Ipython: Fitur "Unduh sebagai PDF" menunjukkan pesan kesalahan yang tidak membantu dan membutuhkan ketergantungan yang besar

Dibuat pada 8 Feb 2015  ·  40Komentar  ·  Sumber: ipython/ipython

Ini lebih merupakan permintaan fitur karena saya menguji fitur "unduh sebagai PDF" di Ubuntu 14.10 menggunakan notebook baru (Ipython 3) dan berfungsi dengan baik. Masalahnya adalah ketika saya mencobanya untuk pertama kalinya, saya tidak memiliki dependensi yang diperlukan dan menerima kesalahan yang mengatakan ! LaTeX Error: File 'adjustbox.sty' not found . Saya mencoba untuk melewati masalah ini dengan hanya menginstal adjustbox.sty tetapi pada akhirnya saya harus menginstal texlive-latex-extra .

Masalahnya adalah ini memerlukan instalasi, setidaknya, 584 MB. Itu adalah ketergantungan besar untuk fitur yang sangat spesifik. Jadi ada beberapa saran:

  1. Tampilkan pesan kesalahan yang lebih mudah ketika ketergantungan seperti kotak penyesuaian tidak ditemukan di halaman kesalahan 500 buku catatan. Saat ini, kesalahan mengatakan: nbconvert failed: PDF creating failed
  2. Dalam jangka panjang, akan sangat bagus untuk mengonversi ke PDF menggunakan layanan web dengan cara yang sama seperti Google Drive saat mengunduh PDF dari dokumen.
nbconvert

Komentar yang paling membantu

Terima kasih telah ikut serta dalam hal ini, semuanya, saya akan melalui dan membersihkan masalah lama yang telah ditangani, dan yang ini sudah siap untuk ditutup.

Ada banyak diskusi bagus yang terjadi dalam masalah ini, tetapi untuk meringkas:

1. Pesan yang lebih rinci sekarang ditampilkan ketika konversi gagal. Di notebook versi 4.2.2, menghapus file .sty dimaksud di mesin saya menghasilkan pesan kesalahan yang terlihat seperti ini:

screen shot 2016-10-27 at 11 57 41 am

2. kami tidak bermaksud menyediakan konversi buku catatan ke PDF sebagai layanan web
3. jika pihak ketiga menyediakan layanan web seperti itu, unduhan notebook bawaan telah eksplisit tentang penggunaan LaTeX sejak #7951 - dan terlihat seperti ini:

screen shot 2016-10-27 at 12 01 12 pm

4. Adapun ukuran dependensi yang diperlukan, solusi telah diusulkan oleh @iuridiniz tepat di atas komentar ini.

Setiap diskusi di masa mendatang seputar ini dan masalah terkait mungkin harus dilakukan di https://github.com/jupyter/nbconvert .

Selamat meretas! :dasi kupu-kupu:

Semua 40 komentar

Apakah kesalahan lateks muncul di halaman kesalahan HTML, atau hanya di terminal?
Selama pesan kesalahan spesifik sampai ke halaman kesalahan, saya pikir
hanya itu yang bisa kami lakukan. Kami tidak akan mencoba menguraikan mengapa lateks gagal - saya
pasti ada banyak cara yang mungkin.

Akan menarik untuk menyelidiki cara-cara alternatif untuk menghasilkan PDF,
seperti menggunakan reportlab atau wkhtmltopdf. Kita seharusnya tidak memanggil-manggil
ke layanan web secara default.

Kesalahan lateks muncul di terminal. Di halaman kesalahan HTML, satu-satunya pesan yang saya terima adalah nbconvert failed: PDF creating failed . Bagaimana dengan menambahkan traceback ke halaman kesalahan HTML?

Saya lupa menyebutkan bahwa ide menggunakan layanan web dimaksudkan sebagai fallback ketika terjadi kesalahan dalam instalasi lokal. Bukankah seharusnya cukup mudah untuk membuat server yang menerima permintaan untuk mengonversi file ipynb mirip dengan apa yang dilakukan nbviewer?

Layanan web seperti nbviewer adalah orang-orang yang ikut serta secara eksplisit membuat pekerjaan mereka menjadi publik, dan di internet.
Memiliki layanan web untuk PDF secara default akan sangat buruk untuk privasi, dan akan membuat notebook tidak dapat digunakan secara online.

Satu-satunya layanan yang melakukan itu untuk saat ini adalah matjax, karena terlalu besar. Dan untuk 4.0 kami akan mengirimkannya sebagai bagian dari IPython.

@Carreau Saya tidak mengatakan bahwa PDF akan diterbitkan secara online secara publik, tetapi dikonversi di server yang dikelola oleh Ipython dan dikirimkan sebagai unduhan untuk pengguna sebagai cadangan jika tidak ada instalasi yang tepat di mesin lokal.

Ini sangat disukai di dunia open source untuk memiliki perangkat lunak yang secara otomatis mengirimkan data Anda ke server ketika Anda belum secara eksplisit memintanya untuk melakukan itu. Kami mungkin dapat melakukan sesuatu seperti itu sebagai opsi eksplisit 'konversi ke PDF di server IPython', tetapi kami tidak akan melakukannya sebagai fallback ketika konversi lokal gagal.

Ya, Anda benar, itu akan lebih baik. Mungkin pesan yang mengatakan bahwa ada yang tidak beres dengan konversi dan tombol tambahan untuk mengunduh file menggunakan layanan web eksternal.

Saya pikir itu bisa dilakukan, tetapi dalam hal ini mengapa berhenti di PDF ?
Memiliki layanan konversi (penuh, tetapi masih terbatas) di cloud dapat masuk akal dan telah disebutkan beberapa kali. Itu akan menjadi "nbviewer api". Namun, hal itu menimbulkan pertanyaan hukum yang bermasalah tentang tanggung jawab jika terjadi kebocoran data pengguna, peretasan, atau hal-hal lain yang belum (belum) kami tangani.

Padahal, menulis kode sehingga perusahaan dapat menyebarkannya di jaringan lokal mereka akan baik-baik saja.

Yah, konversi PDF memerlukan unduhan besar (walaupun sebagian besar ukurannya adalah dokumentasi) dan tidak mungkin setiap pengguna Ipython akan menginstal paket itu. Oleh karena itu, saya pikir mengurangi upaya untuk mulai menggunakan fitur itu akan menjadi tambahan yang bagus. Konversi apa lagi yang Anda pikirkan?

Sebenarnya, saya tidak akan terlalu senang untuk mendapatkan layanan konversi besar-besaran karena proyek semacam itu membutuhkan banyak upaya yang akan mengurangi peningkatan notebook dan hukum hasil yang semakin berkurang berlaku dengan cepat dalam kasus itu.

Mengenai kebocoran data pengguna, saya pikir satu-satunya hal yang diperlukan agar ini berfungsi adalah file pynb. Jenis informasi pengguna apa yang diperlukan untuk konversi? Bagaimanapun, server yang menyediakan PDF tidak seharusnya menyimpan informasi pengguna.

Data pengguna termasuk konten notebook itu sendiri. Dan sementara server tidak seharusnya menyimpan informasi itu, Anda tidak tahu kapan Anda mengirimkan permintaan HTTP apa yang akan dilakukan dengannya.

Untuk saat ini, saya tidak punya masalah dengan mengatakan bahwa Anda perlu menginstal Lateks untuk mengonversi buku catatan ke PDF. Ketergantungan bukanlah sesuatu yang perlu kita hindari.

Untuk saat ini, saya tidak punya masalah dengan mengatakan bahwa Anda perlu menginstal Lateks untuk mengonversi buku catatan ke PDF. Ketergantungan bukanlah sesuatu yang perlu kita hindari.

Saya setuju dengan @takluyver , mungkin sesuatu yang lebih rumit dapat dikembangkan nanti, tetapi untuk saat ini, saya baik-baik saja dengan hanya meminta orang untuk menginstal Lateks jika mereka ingin menggunakan fitur ini ...

Kesalahan lateks muncul di terminal. Di halaman kesalahan HTML, satu-satunya pesan yang saya terima adalah nbconvert failed: PDF making failed. Bagaimana dengan menambahkan traceback ke halaman kesalahan HTML?

Ini sepertinya ide yang bagus untuk saya, apa yang orang lain pikirkan tentang ini?

Ini sepertinya ide yang bagus untuk saya, apa yang orang lain pikirkan tentang ini?

Terdengar bagus untukku...

Bagaimana dengan menambahkan traceback ke halaman kesalahan HTML?

Ini mungkin masuk akal, meskipun kesalahan LaTeX adalah beberapa kesalahan terpanjang dan paling tidak informatif yang ada. Kita perlu memastikan bahwa kita menangani 1000 baris keluaran kesalahan dengan benar, ketika biasanya paling banyak satu baris berisi informasi yang berarti.

Konversi apa lagi yang Anda pikirkan?

Semuanya. Jika kita bisa PDF, kenapa tidak HTML, RST, markdown, dan bahkan Just Latex.
Menginstal Pandoc tidak mudah...

Mengenai kebocoran data pengguna, saya pikir satu-satunya hal yang diperlukan agar ini berfungsi adalah file pynb. Jenis informasi pengguna apa yang diperlukan untuk konversi? Bagaimanapun, server yang menyediakan PDF tidak seharusnya menyimpan informasi pengguna.

Jika Anda memiliki file samping, seperti gambar yang ditautkan, mungkin juga perlu diunggah.
Bahkan jika server tidak seharusnya menyimpan sesuatu, jika kita diretas, mungkin,
atau bahkan mungkin memberi Anda PDF yang terinfeksi.

Sulit membayangkan apa yang bisa dilakukan dengan data (atau kekurangannya), lihat [contoh ini])http://mashable.com/2015/01/28/redditor-muslim-cab-drivers/) di mana pola data yang hilang diizinkan untuk menebak agama sopir taksi NY.

Meskipun kami setuju bahwa layanannya bagus, kami mungkin tidak akan mengaktifkannya secara default.
Kami juga membutuhkan waktu operasi pengembang dan pengembang untuk mempertahankan layanan online + dilindungi secara hukum,
jadi kecuali seseorang datang dan melakukannya, atau kami mendapatkan dana untuk itu, hanya ada kemungkinan kecil itu akan terjadi.

Untuk pesan kesalahan itu masuk akal.

Saya setuju bahwa, untuk saat ini, lebih baik menggambarkan dependensi dan memperbaiki pesan kesalahan.

Apakah mungkin untuk mendeteksi jika LaTeX diinstal sebelum mencoba mengonversi file ipynb? Jika memungkinkan, Ipython akan dapat memberikan pesan kesalahan yang bermanfaat alih-alih membuat kesalahan tentang file yang sangat spesifik. Dalam kasus saya, saya berpikir bahwa paket lain telah menginstal distribusi LaTeX karena pdflatex tampaknya berfungsi. Saya kira sebagian besar kesalahan yang dihadapi pengguna Ipython, dalam konteks ini, adalah karena tidak menginstal distribusi LaTeX. Oleh karena itu, deteksi dini masalah ini akan menguntungkan sebagian besar pengguna.

Mungkin, kompromi yang masuk akal adalah menambahkan traceback ke halaman kesalahan HTML tetapi tidak menampilkannya secara default (karena terlalu panjang dan tidak informatif.) Setelah mengklik beberapa teks seperti "Ingin melihat traceback?", traceback bisa ditampilkan. Namun, jika deteksi dini dari ketergantungan yang hilang dimungkinkan, pesan utama di halaman kesalahan harus menyampaikan hal itu.

@takluyver

Data pengguna termasuk konten notebook itu sendiri. Dan sementara server tidak seharusnya menyimpan informasi itu, Anda tidak tahu kapan Anda mengirimkan permintaan HTTP apa yang akan dilakukan dengannya.

Tapi maksud Anda mengintip seperti yang disarankan @Carreau ? Jika tidak, kami tahu apa yang akan dilakukan server dengan permintaan itu.

@Carreau

Semuanya. Jika kita bisa PDF, kenapa tidak HTML, RST, markdown, dan bahkan Just Latex.
Menginstal Pandoc tidak mudah...

Saya tidak berpikir HTML atau RST diperlukan dalam layanan konversi karena mereka sudah tersedia di notebook itu sendiri. Konversi penurunan harga dan LaTeX dapat bermanfaat.

Jika server diretas, semuanya mungkin. Namun, kemungkinan diretas cukup rendah sehingga seharusnya tidak menjadi sesuatu yang mencegah orang meluncurkan layanan. Sebagai gantinya, langkah-langkah keamanan harus diambil (segera menginstal pembaruan keamanan, hanya membuka port yang diperlukan, mengaktifkan firewall, hanya menginstal aplikasi yang diperlukan, SSL, dll)

Saya pikir kita sudah memeriksa apakah perintah pdflatex tersedia. Saya ragu ada cara yang baik untuk memeriksa apakah semua file yang perlu memproses Lateks ada, selain menjalankannya.

Saya ragu ada cara yang baik untuk memeriksa apakah semua file yang perlu memproses Lateks ada, selain menjalankannya.

Saya kedua keraguan ini.

Saya tidak berpikir HTML atau RST diperlukan dalam layanan konversi karena mereka sudah tersedia di notebook itu sendiri. Konversi penurunan harga dan LaTeX dapat bermanfaat.

Jangan meremehkan hal-hal yang dilakukan nbconvert/nbviewer :-) jika Anda memiliki SVG, ia bahkan dapat $ inkscape dari SVG ke PNG. Anda hanya belum memukul itu.

Jika server diretas, semuanya mungkin. Namun, kemungkinan diretas cukup rendah sehingga seharusnya tidak menjadi sesuatu yang mencegah orang meluncurkan layanan. Sebagai gantinya, langkah-langkah keamanan harus diambil (segera menginstal pembaruan keamanan, hanya membuka port yang diperlukan, mengaktifkan firewall, hanya menginstal aplikasi yang diperlukan, SSL, dll)

Itu banyak pekerjaan, dan jangan meremehkan firewall hebat dan NSA.
Tapi bagaimanapun ada banyak laboratorium di mana memiliki koneksi jarak jauh ke layanan internet tidak mungkin
juga, tapi saya pikir Anda sangat meremehkan jumlah pekerjaan di "dll" dan "kemungkinan untuk diretas".

Jika orang-orang seperti, katakanlah Peter Norvig, diketahui menggunakan notebook, dan kemudian berpotensi menggunakan layanan tersebut maka kemungkinan 100% akan menjadi target serangan.

Dalam distribusi Debian ini berfungsi:

 ➜  ~  dpkg -s sudo | grep "install ok installed"
 Status: install ok installed
 ➜  ~  dpkg -s texlive | grep "install ok installed"
 Status: install ok installed
 ➜  ~  dpkg -s texlive-latex-extra | grep "install ok installed"

Saya menghapus texlive-latex-extra sebelum menjalankan perintah terakhir. Saya tidak punya ide sedikit pun tentang Windows.

@Carreau Tidak, saya bermaksud mengatakan bahwa nbconvert sudah melakukan banyak konversi yang bermanfaat, jadi kami tidak memerlukan layanan konversi yang menerapkan hal yang sama lagi.

Mengenai masalah keamanan, itu banyak pekerjaan tetapi hampir pekerjaan mekanis. Terhadap badan intelijen, tidak ada yang bisa Anda lakukan. NSA memutuskan koneksi terenkripsi SSL secara rutin sekarang. Jumlah pekerjaan di "dll" tergantung pada persyaratan khusus situs, tetapi dalam kasus ini, karena kesederhanaan layanan, kebutuhan tambahan tidak terlalu menuntut.

Google menjadi target spionase industri secara teratur, dan jika beberapa badan intelijen asing ingin mencuri informasi, hampir 0% kemungkinan vektor serangan yang mereka pilih adalah layanan ipynb->pdf. Mereka tahu bahwa orang yang paham teknologi tidak akan mengunggah informasi sensitif dengan cara yang ceroboh. Lebih jauh lagi, jika mereka ingin mendapatkan data Norvig, mereka akan menginfeksi laptopnya dan setiap tindakan pengamanan tambahan akan sia-sia.

Saya telah menginstal latex dan pdflatex, tetapi pada RHEL 6 dan 7 selalu adjustbox.sty konversi tersandung. Apakah HARUS file gaya ini yang tampaknya non-default?

Ekspor PDF sangat sulit pada Windows 7 (atau Windows apa pun dalam hal ini).

Ini adalah prosesnya:

  1. Mistune hilang - pip install rusak tapi untungnya conda install tersedia hari ini.
  2. Pandok hilang. Tidak tersedia sama sekali dalam pip atau conda jadi cari web untuk penginstal Windows 18 MB.
  3. pdflatex hilang. Di mana seseorang mendapatkan ini untuk Windows? Ada sesuatu yang disebut MiKTeX yang merupakan instalasi 163 MB, dan tidak jelas apakah itu akan melakukan ekspor PDF ini.

Sejauh ini, itu adalah 1 instalasi dan penghapusan pip yang rusak, 1 instalasi conda yang berhasil, dan 2 unduhan besar-besaran dari pihak ketiga secara acak sebelum kita mendekatinya.

Saya hanya tidak tahu bagaimana orang bisa mempertahankan ini di banyak mesin pengguna, dan ini hanya untuk menampilkan file sebagai PDF. Banyak paket perangkat lunak lain mengelola ekspor PDF tanpa ketergantungan apa pun.
Bukankah ada cara yang lebih baik?

@blokeley Semoga Anda hanya harus berurusan dengannya sekali. Kami harus menghadapinya hampir setiap minggu.
Jika Anda memiliki cara yang lebih baik yang berhasil, maka itu akan sangat bagus.

Saya pikir kita bisa memperbaiki ini salah satu dari dua cara:

  1. Cobalah untuk memverifikasi bahwa lateks dan dependensinya telah diinstal.
  2. Tulis template & eksportir PDF, yang langsung menghasilkan PDF.

Saya pikir (2) sebenarnya lebih mudah daripada (1). Saya tidak tahu apakah ini adalah jenis hal yang tim tertarik untuk mengalokasikan tenaga untuk meskipun ... Saya sudah memiliki template PDF langsung yang bekerja di masa lalu, itu sangat mendasar.

Saya pikir hanya ada dua cara yang masuk akal bagi kita untuk melakukan ekspor PDF:

  • HTML melalui pratinjau cetak browser -> print-to-pdf
  • Getah

Jika seseorang ingin menulis pengekspor PDF lain menggunakan alat yang berbeda, itu akan diterima sebagai pengekspor pihak ketiga khusus, tetapi mungkin bukan sebagai pengekspor baru yang dikirimkan dengan nbconvert itu sendiri.

Mungkin sesuatu yang sederhana seperti mengganti nama dari "PDF" menjadi "PDF Lateks" dan pesan kesalahan yang lebih bertele-tele sudah cukup. Saat ini pesan HTML adalah "500: Kesalahan server internal" tanpa menunjukkan bahwa itu adalah masalah ketergantungan (kecuali di konsol server, yang mungkin tidak dapat diakses oleh pengguna).

Mungkin sesuatu yang sederhana seperti mengganti nama dari "PDF" menjadi "PDF Lateks"

sudah selesai di #7951

Pesan kesalahan masih harus ditingkatkan.

Saya ingin menulis eksportir PDF tetapi waktu saya agak terbatas (saya tidak akan membuat Anda bosan dengan alasan). Jika tidak ada lagi yang terjadi, saya akan mencoba menulis prototipe beberapa waktu musim panas ini.

Atau lebih realistisnya ini bisa menjadi proyek Google Summer of Code? Saya akan dengan senang hati menyumbangkan sedikit uang.

IPython tidak melakukan GSoC - Fernando sangat yakin bahwa waktu kita untuk membimbing orang tidak sepadan.

Saya mengalami masalah yang sama seperti cowok untuk windows 7.
Saya berada di belakang Firewall di tempat kerja saya dan perlu mendapatkan izin khusus untuk menginstal perangkat lunak. Beberapa kolega saya dan saya sendiri sedang mencoba distribusi Anaconda. kami berharap itu akan menjadi satu-satunya hal yang harus kami instal.
Saya kira kita membutuhkan total 3 add-on, mathjax, pandoc, (keduanya didokumentasikan dalam petunjuk pemasangan yang terperinci) dan MiKTeX ketiga yang tidak ada dalam petunjuk pemasangan. Anda tidak menemukan itu sampai Anda pergi ke halaman pandoc. membuat notebook dan nbconvert bekerja dengan sempurna di windows di belakang firewall tidaklah mudah!

Seseorang dapat menulis pengekspor nbconvert PDF yang langsung menuju ke PDF menggunakan reportlab (yang sekarang dapat diinstal pip di Windows), atau menghasilkan HTML dan kemudian mengonversinya ke PDF menggunakan alat seperti wkhtmltopdf atau weasyprint . Jika berjalan cukup baik, kami bahkan dapat memasukkannya ke dalam nbconvert. Tapi saya rasa itu bukan prioritas yang cukup tinggi sehingga kami akan mengerjakannya sendiri dalam waktu dekat.

@ drafter250 Anda mungkin juga memerlukan Inkscape jika Anda ingin menggunakan plot matplotlib vektor (svg) yang dikonversi ke pdf.
@takluyver Saya juga melihat sekilas reportlab, tapi saya khawatir mengatur tata letak, terutama dengan adanya persamaan, akan cukup rumit. Itu adalah nilai tambah besar dari LaTeX.

Tentu saja ada banyak ketergantungan di sini. Untuk nbconvert. Lateks, sphinx, jinja, miktex, inkscape. dll im mengalami kesulitan menjaga semua ini lurus. Apakah ada sumber daya di luar sana untuk menjelaskan bagaimana semua ini saling terkait untuk memberikan fungsionalitas penuh nbconvert. Juga mungkin akan lebih baik untuk menonaktifkan berbagai perintah yang dependensinya tidak dapat diselesaikan

Untuk saat ini, saya tidak punya masalah dengan mengatakan bahwa Anda perlu menginstal Lateks untuk mengonversi buku catatan ke PDF. Ketergantungan bukanlah sesuatu yang perlu kita hindari.

Masalahnya adalah bahwa saat ini semua (sebagian besar?) dari distribusi RHEL-ish terkunci dari konversi. Kode lateks yang dihasilkan bergantung pada adjustbox.sty dan tidak ada paket yang tersedia yang menyediakan file itu (mempengaruhi: RHEL6, RHEL7, EPEL6, EPEL7, Scientific, dan seharusnya CentOS juga)

Ini tampaknya merupakan permintaan tarik yang menyinggung mengenai kesalahan asli OP:

  • #3578 Gunakan kotak penyesuaian untuk menentukan ukuran gambar di nbconvert -> lateks
    490

Mungkin menarik untuk bereksperimen dengan jsPDF .

@serverhorror sudah ada laporan bug untuk adjustbox. Jadi semoga segera ada solusi.
Atau, seharusnya tidak sulit untuk menginstal adjustbox.sty secara lokal, lihat komentar di sini

@jakobgager saya sudah melihatnya. Sayangnya RHEL7 (EPEL7) bahkan belum ada di peta jalan (waaaaayyyy di luar kendali saya).

Untuk saat ini saya hanya akan menggunakan versi yang ditambal secara lokal yang pada dasarnya mengembalikan #3578

+1

Jika Anda menggunakan (di ubuntu 15.04):

apt-get install --no-install-recommends texlive-latex-extra texlive-fonts-recommended

Anda mengurangi ukuran unduhan menjadi 24 MB (bukan 606 MB). Itu tidak mengunduh beberapa dokumentasi (sekitar 300 MB)

Terima kasih telah ikut serta dalam hal ini, semuanya, saya akan melalui dan membersihkan masalah lama yang telah ditangani, dan yang ini sudah siap untuk ditutup.

Ada banyak diskusi bagus yang terjadi dalam masalah ini, tetapi untuk meringkas:

1. Pesan yang lebih rinci sekarang ditampilkan ketika konversi gagal. Di notebook versi 4.2.2, menghapus file .sty dimaksud di mesin saya menghasilkan pesan kesalahan yang terlihat seperti ini:

screen shot 2016-10-27 at 11 57 41 am

2. kami tidak bermaksud menyediakan konversi buku catatan ke PDF sebagai layanan web
3. jika pihak ketiga menyediakan layanan web seperti itu, unduhan notebook bawaan telah eksplisit tentang penggunaan LaTeX sejak #7951 - dan terlihat seperti ini:

screen shot 2016-10-27 at 12 01 12 pm

4. Adapun ukuran dependensi yang diperlukan, solusi telah diusulkan oleh @iuridiniz tepat di atas komentar ini.

Setiap diskusi di masa mendatang seputar ini dan masalah terkait mungkin harus dilakukan di https://github.com/jupyter/nbconvert .

Selamat meretas! :dasi kupu-kupu:

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

jwkvam picture jwkvam  ·  4Komentar

lewisacidic picture lewisacidic  ·  3Komentar

RinaldoB picture RinaldoB  ·  3Komentar

sataliulan picture sataliulan  ·  4Komentar

quchunguang picture quchunguang  ·  3Komentar