Email             :
RPubs            : https://rpubs.com/evelintrivena
Jurusan          : fisika medis
Address         : ARA Center, Matana University Tower
                         Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.


1 Soal 1

Carilah Definisi Algoritma dan Struktur Data dalam berbagai bidang ilmu (Contoh: Sains Data, Fisika, Teknik Informatika, dan Sistem Informasi)!

jawaban

1.1 SAINS DATA

Algoritma merupakan salah satu bentuk pengaplikasian dari sains data yang menggabungkan matematika dan statistika dengan tujuan untuk menggali data (data maining), mendapatkan pola data, serta melakukan prediksi yang akurat.

1.2 FISIKA

Algoritma dan struktur data dalam bidang ilmu fisika merupakan proses pengolahan data yang melibatkan algoritma untuk memecahkan sebuah masalah di bidang fisika, misal rumus perhitungan.

1.3 TEKNIK INFORMATIKA

Dalam bidang teknik informatika, algoritma dan struktur data merupakan proses atau tahapan untuk meyelesaikan permasalahan yang berkaitan dengan ilmu computer.

1.4 SISTEM INFORMASI

Algoritma adalah langkah-langkah logis yang disusun secara berurutan untuk menyelesaikan sebuah masalah atau digunakan untuk menyampaikan sebuah informasi.

2 Soal 2

Sebagai mahasiswa buatlah algoritma dan flowchart yang anda lakukan untuk mencapai kelulusan sarjana dengan IPK minimal 3.5 dari Universitas Matana.!

jawaban

Lulus dari perguruan tinggi atau universitas merupakan hal yang sangat diinginkan oleh para mahasiswa. Untuk mencapai hal tersebut di Matana University ada beberapa syarat yang harus dipenuhi, salah satunya memperoleh IPK minimal 3.5. Berikut bentuk algoritma dan flowchart mencapai kelulusan dengan IPK 3.5

• Mahasiswa memulai perkuliahan di matana university

• Mahasiswa mengikuti perkuliahan semester 1

• Memastikan apakah IP semester 1 ≥ 3.5

• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya

• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 1

• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 2

• Memastikan apakah IP semester 2 ≥ 3.5

• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya

• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 2

• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 3

• Memastikan apakah IP semester 3 ≥ 3.5

• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya

• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 3

• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 4

• Memastikan apakah IP semester 4 ≥ 3.5

• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya

• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 4

• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 5

• Memastikan apakah IP semester 5 ≥ 3.5

• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya

• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 5

• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 6

• Memastikan apakah IP semester 6 ≥ 3.5

• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya

• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 6

• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 7

• Memastikan apakah IP semester 7 ≥ 3.5

• Jika ya (IP ≥ 3.5), maka mahasiswa dapat melanjutkan ke semester selanjutnya

• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 7

• Jika IP ≥ 3.5 mahasiswa mengikuti perkuliahan semester 8

• Memastikan apakah IP semester 8 ≥ 3.5

• Jika ya (IP ≥ 3.5), maka mahasiswa dapat lulus dari Matana University

• Jika tidak (IP < 3.5), mahasiswa harus mengulang di semester 8

3 Soal 3

Mengapa anda harus belajar Algoritma dan Struktur Data?

jawaban

Ada banyak alasan mengapa harus mempelajari algoritma dan struktur data. Misal, saat ini kehidupan manusia sebagian besar berkaitan dengan teknologi, salah satunya komputer. Dengan mengaplikasikan algoritma dan struktur data, kita mampu/dapat menyelesaikan sebuah permasalahan secara lebih mudah dan efisien dengan mengikuti urutan langkah-langkah yang logis dan juga jelas.

4 Soal 4

Sebutkan 3 bahasa pemrograman yang yang paling banyak digunakan dalam Sains Data, Berikan penjelasan kelebihan, kekurangan, dan hubungan bahasa pemrogaman yang satu dengan yang lainnya.

jawaban

4.1 R

R adalah Bahasa pemrograman yang digunakan dalam komputasi statistik untuk keperluan analisa dan dapat dioperasikan pada berbagai system operasi computer.

Kelebihan

R mempunyai paket yang lengkap mulai dari persiapan data, berbagai macam analisis, juga proses diseminasi informasi yang digunakan oleh data scientist untuk menjalankan analisis pemodelan dan machine learnig. Selain itu, R dapat menghanandle/mrmbaca bermacam data mulai dari .cvs dan data.txt, excel, gambar, dll. R juga dapat membuat produk yang sama dengan cara menyimpan skrip/RMD, sehingga dapat dengan mudah membuat produk yang sama.

Kekurangan

Kekurangan atau kelemahan bahsa R adalah sulit dipelajari karena tampilan command yang terlalu banyak sehingga sedikit membingungkan. Tidak hanya itu, Pengendalian variabel terkadang tidak rapih dan penamaan variabel sangat rumit.

4.2 Python

Python adalah bahasa pemrograman interpretatif yang bisa dipasang pada berbagai platform, khususnya platform yang berfokus pada keterbacaan kode. Phyton merupakan Bahasa yang berkaitan dengan data science, machine learning, dan Internet Of Thigs (IoT) yang banyak digunakan untuk prototyping, scripting pengelolaan infrastruktur, bahkan pembuatan website berskala besar.

Kelebihan

Python mempunyai kamus yang banyak dan luas dan berisikan berbagai modul yang di dalamnya terdapat bermacam kode untuk digunakan seperti unit testing, CGI, email,dll sehingga tidak perlu menulis secara manual. Phyton juga dapat dijalankan di hamper semua system operasi misal, Windows, Mac, maupun Linux, juga beberapa perangkat seluler. Tidak hanya itu, pemrograman Python juga mendukung ekosistem Internet Of Things (IoT) dengan sangat baik, dimana IoT adalah suatu konsep atau program komputasi tentang objek sehari-hari yang terhubung ke internet dan mampu mengidentifikasi diri ke perangkat lain.

Kekurangan

Python adalah Bahasa pemrograman yang tidak cocok untuk aplikasi mobile, dibandingkan dengan Bahasa lain, python berkerja lebih lambat sehingga kurang relevan jika diperuntukan dalam program besar. Selain itu, python diketik secara dinamis sehingga memiliki banyak batasan desain.

4.3 Java

Java adalah Bahasa pemrograman yang banyak dan umum digunakan oleh para developer untuk mengembangkan aplikasi. Java merupakan Object Oriented Programming (OOP) Yang multiplatform dan multi device.

Kelebihan

Java memiliki sifat dinamis karena pengalokasian dan penghapusan memori dilakukan secara otomatis, Java dapat menjalankan beberapa task sekaligus dalam bersamaan waktu. Tidak hanya itu, Perpustakaan kelas yang lengkap mencakup segala kebutuhan dan keperluan dalam membuat aplikasi sehingga memudahkan programmer/developer.

Kekurangan

Bahasa pemrograman Java menggunakan memori lebih banyak dibandingkan beberapa Bahasa pemrograman yang lain dan membutuhkan komputer yang memiliki kapasitas ram yang besar agar berjalan optimal. Selain itu, Java juga mudah mengalami dekompilasi. Dekompilasi adalah pengambilan source code, sehingga dapat dengan mudah diambil atau dibajak oleh orang lain.

LS0tDQp0aXRsZTogIlBlbmRhaHVsdWFuIg0Kc3VidGl0bGU6ICJUdWdhcyAxIg0KYXV0aG9yOiAiRXZlbGluIFRyaWVuYSBTICgyMDIxNDUyMDAxMCkiDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy5EYXRlKCksICclQiAlZCwgJVknKWAiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50OiANCiAgICBodG1sX2RvY3VtZW50OiBudWxsDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6DQogICAgICBjb2xsYXBzZWQ6IHllcw0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgdGhlbWU6IHNhbmRzdG9uZQ0KICAgIGNzczogc3R5bGUxLmNzcw0KICAgIGhpZ2hsaWdodDogbW9ub2Nocm9tZQ0KLS0tDQoNCg0KPGltZyBzdHlsZT0iZmxvYXQ6IHJpZ2h0OyBtYXJnaW46IDBweCAxMDBweCAwcHggMHB4OyB3aWR0aDoyNSUiIHNyYz0idmVuYS5qcGciLz4gDQoNCmBgYHtyIGxvZ28sIGVjaG89RkFMU0UsZmlnLmFsaWduPSdjZW50ZXInLCBvdXQud2lkdGggPSAnMzAlJ30NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJsb2dvLnBuZyIpDQpgYGANCg0KRW1haWwgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7OiAgdHJpdmVuYXNhbWFsaXd1QGdtYWlsLmNvbSA8YnI+DQpSUHVicyAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBodHRwczovL3JwdWJzLmNvbS9ldmVsaW50cml2ZW5hIDxicj4NCkp1cnVzYW4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogW2Zpc2lrYSBtZWRpc10oaHR0cHM6Ly9tYXRhbmF1bml2ZXJzaXR5LmFjLmlkLz9seT1hY2FkZW1pYyZjPXNiKSA8YnI+DQpBZGRyZXNzICAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiBBUkEgQ2VudGVyLCBNYXRhbmEgVW5pdmVyc2l0eSBUb3dlciA8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyBKbC4gQ0JEIEJhcmF0IEthdiwgUlQuMSwgQ3VydWcgU2FuZ2VyZW5nLCBLZWxhcGEgRHVhLCBUYW5nZXJhbmcsIEJhbnRlbiAxNTgxMC4NCg0KKioqKg0KDQojIFNvYWwgMQ0KDQpDYXJpbGFoIERlZmluaXNpIEFsZ29yaXRtYSBkYW4gU3RydWt0dXIgRGF0YSBkYWxhbSBiZXJiYWdhaSBiaWRhbmcgaWxtdSAoQ29udG9oOiBTYWlucyBEYXRhLCBGaXNpa2EsIFRla25payBJbmZvcm1hdGlrYSwgZGFuIFNpc3RlbSBJbmZvcm1hc2kpIQ0KDQoqKmphd2FiYW4qKg0KDQojIyBTQUlOUyBEQVRBDQoNCkFsZ29yaXRtYSBtZXJ1cGFrYW4gc2FsYWggc2F0dSBiZW50dWsgcGVuZ2FwbGlrYXNpYW4gZGFyaSBzYWlucyBkYXRhIHlhbmcgbWVuZ2dhYnVuZ2thbiBtYXRlbWF0aWthIGRhbiBzdGF0aXN0aWthIGRlbmdhbiB0dWp1YW4gdW50dWsgbWVuZ2dhbGkgZGF0YSAoZGF0YSBtYWluaW5nKSwgbWVuZGFwYXRrYW4gcG9sYSBkYXRhLCBzZXJ0YSBtZWxha3VrYW4gcHJlZGlrc2kgeWFuZyBha3VyYXQuDQoNCiMjIEZJU0lLQQ0KDQpBbGdvcml0bWEgZGFuIHN0cnVrdHVyIGRhdGEgZGFsYW0gYmlkYW5nIGlsbXUgZmlzaWthIG1lcnVwYWthbiBwcm9zZXMgcGVuZ29sYWhhbiBkYXRhIHlhbmcgbWVsaWJhdGthbiBhbGdvcml0bWEgdW50dWsgbWVtZWNhaGthbiBzZWJ1YWggbWFzYWxhaCBkaSBiaWRhbmcgZmlzaWthLCBtaXNhbCBydW11cyBwZXJoaXR1bmdhbi4NCg0KIyMgVEVLTklLIElORk9STUFUSUtBDQoNCkRhbGFtIGJpZGFuZyB0ZWtuaWsgaW5mb3JtYXRpa2EsIGFsZ29yaXRtYSBkYW4gc3RydWt0dXIgZGF0YSBtZXJ1cGFrYW4gcHJvc2VzIGF0YXUgdGFoYXBhbiB1bnR1ayBtZXllbGVzYWlrYW4gcGVybWFzYWxhaGFuIHlhbmcgYmVya2FpdGFuIGRlbmdhbiBpbG11IGNvbXB1dGVyLg0KDQojIyBTSVNURU0gSU5GT1JNQVNJDQoNCkFsZ29yaXRtYSBhZGFsYWggbGFuZ2thaC1sYW5na2FoIGxvZ2lzIHlhbmcgZGlzdXN1biBzZWNhcmEgYmVydXJ1dGFuIHVudHVrIG1lbnllbGVzYWlrYW4gc2VidWFoIG1hc2FsYWggYXRhdSBkaWd1bmFrYW4gdW50dWsgbWVueWFtcGFpa2FuIHNlYnVhaCBpbmZvcm1hc2kuDQoNCiMgU29hbCAyDQoNClNlYmFnYWkgbWFoYXNpc3dhIGJ1YXRsYWggYWxnb3JpdG1hIGRhbiBmbG93Y2hhcnQgeWFuZyBhbmRhIGxha3VrYW4gdW50dWsgbWVuY2FwYWkga2VsdWx1c2FuIHNhcmphbmEgZGVuZ2FuIElQSyBtaW5pbWFsIDMuNSBkYXJpIFVuaXZlcnNpdGFzIE1hdGFuYS4hDQoNCioqamF3YWJhbioqDQoNCkx1bHVzIGRhcmkgcGVyZ3VydWFuIHRpbmdnaSBhdGF1IHVuaXZlcnNpdGFzIG1lcnVwYWthbiBoYWwgeWFuZyBzYW5nYXQgZGlpbmdpbmthbiBvbGVoIHBhcmEgbWFoYXNpc3dhLiBVbnR1ayBtZW5jYXBhaSBoYWwgdGVyc2VidXQgZGkgTWF0YW5hIFVuaXZlcnNpdHkgYWRhIGJlYmVyYXBhIHN5YXJhdCB5YW5nIGhhcnVzIGRpcGVudWhpLCBzYWxhaCBzYXR1bnlhIG1lbXBlcm9sZWggSVBLIG1pbmltYWwgMy41LiBCZXJpa3V0IGJlbnR1ayBhbGdvcml0bWEgZGFuIGZsb3djaGFydCBtZW5jYXBhaSBrZWx1bHVzYW4gZGVuZ2FuIElQSyAzLjUNCg0K4oCiCU1haGFzaXN3YSBtZW11bGFpIHBlcmt1bGlhaGFuIGRpIG1hdGFuYSB1bml2ZXJzaXR5DQoNCuKAoglNYWhhc2lzd2EgbWVuZ2lrdXRpIHBlcmt1bGlhaGFuIHNlbWVzdGVyIDENCg0K4oCiCU1lbWFzdGlrYW4gYXBha2FoIElQIHNlbWVzdGVyIDEg4omlIDMuNQ0KDQrigKIJSmlrYSB5YSAoSVAg4omlIDMuNSksIG1ha2EgbWFoYXNpc3dhIGRhcGF0ICBtZWxhbmp1dGthbiBrZSBzZW1lc3RlciBzZWxhbmp1dG55YSANCg0K4oCiCUppa2EgdGlkYWsgKElQIDwgMy41KSwgbWFoYXNpc3dhIGhhcnVzIG1lbmd1bGFuZyBkaSBzZW1lc3RlciAxDQoNCuKAoglKaWthIElQIOKJpSAzLjUgbWFoYXNpc3dhIG1lbmdpa3V0aSBwZXJrdWxpYWhhbiBzZW1lc3RlciAyDQoNCuKAoglNZW1hc3Rpa2FuIGFwYWthaCBJUCBzZW1lc3RlciAyIOKJpSAzLjUNCg0K4oCiCUppa2EgeWEgKElQIOKJpSAzLjUpLCBtYWthIG1haGFzaXN3YSBkYXBhdCAgbWVsYW5qdXRrYW4ga2Ugc2VtZXN0ZXIgc2VsYW5qdXRueWEgDQoNCuKAoglKaWthIHRpZGFrIChJUCA8IDMuNSksIG1haGFzaXN3YSBoYXJ1cyBtZW5ndWxhbmcgZGkgc2VtZXN0ZXIgMg0KDQrigKIJSmlrYSBJUCDiiaUgMy41IG1haGFzaXN3YSBtZW5naWt1dGkgcGVya3VsaWFoYW4gc2VtZXN0ZXIgMw0KDQrigKIJTWVtYXN0aWthbiBhcGFrYWggSVAgc2VtZXN0ZXIgMyDiiaUgMy41DQoNCuKAoglKaWthIHlhIChJUCDiiaUgMy41KSwgbWFrYSBtYWhhc2lzd2EgZGFwYXQgIG1lbGFuanV0a2FuIGtlIHNlbWVzdGVyIHNlbGFuanV0bnlhIA0KDQrigKIJSmlrYSB0aWRhayAoSVAgPCAzLjUpLCBtYWhhc2lzd2EgaGFydXMgbWVuZ3VsYW5nIGRpIHNlbWVzdGVyIDMNCg0K4oCiCUppa2EgSVAg4omlIDMuNSBtYWhhc2lzd2EgbWVuZ2lrdXRpIHBlcmt1bGlhaGFuIHNlbWVzdGVyIDQNCg0K4oCiCU1lbWFzdGlrYW4gYXBha2FoIElQIHNlbWVzdGVyIDQg4omlIDMuNQ0KDQrigKIJSmlrYSB5YSAoSVAg4omlIDMuNSksIG1ha2EgbWFoYXNpc3dhIGRhcGF0ICBtZWxhbmp1dGthbiBrZSBzZW1lc3RlciBzZWxhbmp1dG55YSANCg0K4oCiCUppa2EgdGlkYWsgKElQIDwgMy41KSwgbWFoYXNpc3dhIGhhcnVzIG1lbmd1bGFuZyBkaSBzZW1lc3RlciA0DQoNCuKAoglKaWthIElQIOKJpSAzLjUgbWFoYXNpc3dhIG1lbmdpa3V0aSBwZXJrdWxpYWhhbiBzZW1lc3RlciA1DQoNCuKAoglNZW1hc3Rpa2FuIGFwYWthaCBJUCBzZW1lc3RlciA1IOKJpSAzLjUNCg0K4oCiCUppa2EgeWEgKElQIOKJpSAzLjUpLCBtYWthIG1haGFzaXN3YSBkYXBhdCAgbWVsYW5qdXRrYW4ga2Ugc2VtZXN0ZXIgc2VsYW5qdXRueWEgDQoNCuKAoglKaWthIHRpZGFrIChJUCA8IDMuNSksIG1haGFzaXN3YSBoYXJ1cyBtZW5ndWxhbmcgZGkgc2VtZXN0ZXIgNQ0KDQrigKIJSmlrYSBJUCDiiaUgMy41IG1haGFzaXN3YSBtZW5naWt1dGkgcGVya3VsaWFoYW4gc2VtZXN0ZXIgNg0KDQrigKIJTWVtYXN0aWthbiBhcGFrYWggSVAgc2VtZXN0ZXIgNiDiiaUgMy41DQoNCuKAoglKaWthIHlhIChJUCDiiaUgMy41KSwgbWFrYSBtYWhhc2lzd2EgZGFwYXQgIG1lbGFuanV0a2FuIGtlIHNlbWVzdGVyIHNlbGFuanV0bnlhIA0KDQrigKIJSmlrYSB0aWRhayAoSVAgPCAzLjUpLCBtYWhhc2lzd2EgaGFydXMgbWVuZ3VsYW5nIGRpIHNlbWVzdGVyIDYNCg0K4oCiCUppa2EgSVAg4omlIDMuNSBtYWhhc2lzd2EgbWVuZ2lrdXRpIHBlcmt1bGlhaGFuIHNlbWVzdGVyIDcNCg0K4oCiCU1lbWFzdGlrYW4gYXBha2FoIElQIHNlbWVzdGVyIDcg4omlIDMuNQ0KDQrigKIJSmlrYSB5YSAoSVAg4omlIDMuNSksIG1ha2EgbWFoYXNpc3dhIGRhcGF0ICBtZWxhbmp1dGthbiBrZSBzZW1lc3RlciBzZWxhbmp1dG55YSANCg0K4oCiCUppa2EgdGlkYWsgKElQIDwgMy41KSwgbWFoYXNpc3dhIGhhcnVzIG1lbmd1bGFuZyBkaSBzZW1lc3RlciA3DQoNCuKAoglKaWthIElQIOKJpSAzLjUgbWFoYXNpc3dhIG1lbmdpa3V0aSBwZXJrdWxpYWhhbiBzZW1lc3RlciA4DQoNCg0K4oCiCU1lbWFzdGlrYW4gYXBha2FoIElQIHNlbWVzdGVyIDgg4omlIDMuNQ0KDQrigKIJSmlrYSB5YSAoSVAg4omlIDMuNSksIG1ha2EgbWFoYXNpc3dhIGRhcGF0ICBsdWx1cyBkYXJpIE1hdGFuYSBVbml2ZXJzaXR5DQoNCuKAoglKaWthIHRpZGFrIChJUCA8IDMuNSksIG1haGFzaXN3YSBoYXJ1cyBtZW5ndWxhbmcgZGkgc2VtZXN0ZXIgOA0KDQoNCmBgYHtyIGZsb3djaGFydCwgZWNobz1GQUxTRSxmaWcuYWxpZ249J2NlbnRlcicsIG91dC53aWR0aCA9ICcxMDAlJ30NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJmbG93Y2hhcnRmaXgucG5nIikNCmBgYA0KDQojIFNvYWwgMw0KDQpNZW5nYXBhIGFuZGEgaGFydXMgYmVsYWphciBBbGdvcml0bWEgZGFuIFN0cnVrdHVyIERhdGE/DQoNCioqamF3YWJhbioqDQoNCkFkYSBiYW55YWsgYWxhc2FuIG1lbmdhcGEgaGFydXMgbWVtcGVsYWphcmkgYWxnb3JpdG1hIGRhbiBzdHJ1a3R1ciBkYXRhLiBNaXNhbCwgc2FhdCBpbmkga2VoaWR1cGFuIG1hbnVzaWEgc2ViYWdpYW4gYmVzYXIgYmVya2FpdGFuIGRlbmdhbiB0ZWtub2xvZ2ksIHNhbGFoIHNhdHVueWEga29tcHV0ZXIuIERlbmdhbiBtZW5nYXBsaWthc2lrYW4gYWxnb3JpdG1hIGRhbiBzdHJ1a3R1ciBkYXRhLCBraXRhIG1hbXB1L2RhcGF0IG1lbnllbGVzYWlrYW4gc2VidWFoIHBlcm1hc2FsYWhhbiBzZWNhcmEgbGViaWggbXVkYWggZGFuIGVmaXNpZW4gZGVuZ2FuIG1lbmdpa3V0aSB1cnV0YW4gbGFuZ2thaC1sYW5na2FoIHlhbmcgbG9naXMgZGFuIGp1Z2EgamVsYXMuIA0KDQojIFNvYWwgNA0KDQpTZWJ1dGthbiAzIGJhaGFzYSBwZW1yb2dyYW1hbiB5YW5nIHlhbmcgcGFsaW5nIGJhbnlhayBkaWd1bmFrYW4gZGFsYW0gU2FpbnMgRGF0YSwgQmVyaWthbiBwZW5qZWxhc2FuIGtlbGViaWhhbiwga2VrdXJhbmdhbiwgZGFuIGh1YnVuZ2FuIGJhaGFzYSBwZW1yb2dhbWFuIHlhbmcgc2F0dSBkZW5nYW4geWFuZyBsYWlubnlhLg0KDQoqKmphd2FiYW4qKg0KDQojIyBSDQoNClIgYWRhbGFoIEJhaGFzYSBwZW1yb2dyYW1hbiB5YW5nIGRpZ3VuYWthbiBkYWxhbSBrb21wdXRhc2kgc3RhdGlzdGlrIHVudHVrIGtlcGVybHVhbiBhbmFsaXNhIGRhbiBkYXBhdCBkaW9wZXJhc2lrYW4gcGFkYSBiZXJiYWdhaSBzeXN0ZW0gb3BlcmFzaSBjb21wdXRlci4gDQoNCioqS2VsZWJpaGFuKioNCg0KUiBtZW1wdW55YWkgcGFrZXQgeWFuZyBsZW5na2FwIG11bGFpIGRhcmkgcGVyc2lhcGFuIGRhdGEsIGJlcmJhZ2FpIG1hY2FtIGFuYWxpc2lzLCBqdWdhIHByb3NlcyBkaXNlbWluYXNpIGluZm9ybWFzaSB5YW5nIGRpZ3VuYWthbiBvbGVoIGRhdGEgc2NpZW50aXN0IHVudHVrIG1lbmphbGFua2FuIGFuYWxpc2lzIHBlbW9kZWxhbiBkYW4gbWFjaGluZSBsZWFybmlnLiBTZWxhaW4gaXR1LCBSIGRhcGF0IG1lbmdoYW5hbmRsZS9tcm1iYWNhIGJlcm1hY2FtIGRhdGEgbXVsYWkgZGFyaSAuY3ZzIGRhbiBkYXRhLnR4dCwgZXhjZWwsIGdhbWJhciwgZGxsLiBSIGp1Z2EgZGFwYXQgbWVtYnVhdCBwcm9kdWsgeWFuZyBzYW1hIGRlbmdhbiBjYXJhIG1lbnlpbXBhbiBza3JpcC9STUQsIHNlaGluZ2dhIGRhcGF0IGRlbmdhbiBtdWRhaCBtZW1idWF0IHByb2R1ayB5YW5nIHNhbWEuIA0KDQoqKktla3VyYW5nYW4qKg0KDQpLZWt1cmFuZ2FuIGF0YXUga2VsZW1haGFuIGJhaHNhIFIgYWRhbGFoIHN1bGl0IGRpcGVsYWphcmkga2FyZW5hIHRhbXBpbGFuIGNvbW1hbmQgeWFuZyB0ZXJsYWx1IGJhbnlhayBzZWhpbmdnYSBzZWRpa2l0IG1lbWJpbmd1bmdrYW4uICBUaWRhayBoYW55YSBpdHUsIFBlbmdlbmRhbGlhbiB2YXJpYWJlbCB0ZXJrYWRhbmcgdGlkYWsgcmFwaWggZGFuIHBlbmFtYWFuIHZhcmlhYmVsIHNhbmdhdCBydW1pdC4gDQoNCiMjIFB5dGhvbg0KDQpQeXRob24gYWRhbGFoIGJhaGFzYSBwZW1yb2dyYW1hbiBpbnRlcnByZXRhdGlmIHlhbmcgYmlzYSBkaXBhc2FuZyBwYWRhIGJlcmJhZ2FpIHBsYXRmb3JtLCBraHVzdXNueWEgcGxhdGZvcm0geWFuZyBiZXJmb2t1cyBwYWRhIGtldGVyYmFjYWFuIGtvZGUuIFBoeXRvbiBtZXJ1cGFrYW4gQmFoYXNhIHlhbmcgYmVya2FpdGFuIGRlbmdhbiBkYXRhIHNjaWVuY2UsIG1hY2hpbmUgbGVhcm5pbmcsIGRhbiBJbnRlcm5ldCBPZiBUaGlncyAoSW9UKSB5YW5nIGJhbnlhayBkaWd1bmFrYW4gdW50dWsgcHJvdG90eXBpbmcsIHNjcmlwdGluZyBwZW5nZWxvbGFhbiBpbmZyYXN0cnVrdHVyLCBiYWhrYW4gcGVtYnVhdGFuIHdlYnNpdGUgYmVyc2thbGEgYmVzYXIuIA0KDQoqKktlbGViaWhhbioqDQoNClB5dGhvbiBtZW1wdW55YWkga2FtdXMgeWFuZyBiYW55YWsgZGFuIGx1YXMgZGFuIGJlcmlzaWthbiBiZXJiYWdhaSBtb2R1bCB5YW5nIGRpIGRhbGFtbnlhIHRlcmRhcGF0IGJlcm1hY2FtIGtvZGUgdW50dWsgZGlndW5ha2FuIHNlcGVydGkgdW5pdCB0ZXN0aW5nLCBDR0ksIGVtYWlsLGRsbCBzZWhpbmdnYSB0aWRhayBwZXJsdSBtZW51bGlzIHNlY2FyYSBtYW51YWwuIFBoeXRvbiBqdWdhIGRhcGF0IGRpamFsYW5rYW4gZGkgaGFtcGVyIHNlbXVhIHN5c3RlbSBvcGVyYXNpIG1pc2FsLCBXaW5kb3dzLCBNYWMsIG1hdXB1biBMaW51eCwganVnYSBiZWJlcmFwYSBwZXJhbmdrYXQgc2VsdWxlci4gVGlkYWsgaGFueWEgaXR1LCBwZW1yb2dyYW1hbiBQeXRob24ganVnYSBtZW5kdWt1bmcgZWtvc2lzdGVtIEludGVybmV0IE9mIFRoaW5ncyAoSW9UKSBkZW5nYW4gc2FuZ2F0IGJhaWssIGRpbWFuYSBJb1QgYWRhbGFoIHN1YXR1IGtvbnNlcCBhdGF1IHByb2dyYW0ga29tcHV0YXNpIHRlbnRhbmcgb2JqZWsgc2VoYXJpLWhhcmkgeWFuZyB0ZXJodWJ1bmcga2UgaW50ZXJuZXQgZGFuIG1hbXB1IG1lbmdpZGVudGlmaWthc2kgZGlyaSBrZSBwZXJhbmdrYXQgbGFpbi4gDQoNCioqS2VrdXJhbmdhbioqDQoNClB5dGhvbiBhZGFsYWggQmFoYXNhIHBlbXJvZ3JhbWFuIHlhbmcgdGlkYWsgY29jb2sgdW50dWsgYXBsaWthc2kgbW9iaWxlLCBkaWJhbmRpbmdrYW4gZGVuZ2FuIEJhaGFzYSBsYWluLCBweXRob24gYmVya2VyamEgbGViaWggbGFtYmF0IHNlaGluZ2dhIGt1cmFuZyByZWxldmFuIGppa2EgZGlwZXJ1bnR1a2FuIGRhbGFtIHByb2dyYW0gYmVzYXIuIFNlbGFpbiBpdHUsIHB5dGhvbiBkaWtldGlrIHNlY2FyYSBkaW5hbWlzIHNlaGluZ2dhIG1lbWlsaWtpIGJhbnlhayBiYXRhc2FuIGRlc2Fpbi4NCg0KIyMgSmF2YQ0KDQpKYXZhIGFkYWxhaCBCYWhhc2EgcGVtcm9ncmFtYW4geWFuZyBiYW55YWsgZGFuIHVtdW0gZGlndW5ha2FuIG9sZWggcGFyYSBkZXZlbG9wZXIgdW50dWsgbWVuZ2VtYmFuZ2thbiBhcGxpa2FzaS4gSmF2YSBtZXJ1cGFrYW4gT2JqZWN0IE9yaWVudGVkIFByb2dyYW1taW5nIChPT1ApIFlhbmcgbXVsdGlwbGF0Zm9ybSBkYW4gbXVsdGkgZGV2aWNlLiANCg0KKipLZWxlYmloYW4qKg0KDQpKYXZhIG1lbWlsaWtpIHNpZmF0IGRpbmFtaXMga2FyZW5hIHBlbmdhbG9rYXNpYW4gZGFuIHBlbmdoYXB1c2FuIG1lbW9yaSBkaWxha3VrYW4gc2VjYXJhIG90b21hdGlzLCBKYXZhIGRhcGF0IG1lbmphbGFua2FuIGJlYmVyYXBhIHRhc2sgc2VrYWxpZ3VzIGRhbGFtIGJlcnNhbWFhbiB3YWt0dS4gVGlkYWsgaGFueWEgaXR1LCBQZXJwdXN0YWthYW4ga2VsYXMgeWFuZyBsZW5na2FwIG1lbmNha3VwIHNlZ2FsYSBrZWJ1dHVoYW4gZGFuIGtlcGVybHVhbiBkYWxhbSBtZW1idWF0IGFwbGlrYXNpIHNlaGluZ2dhIG1lbXVkYWhrYW4gcHJvZ3JhbW1lci9kZXZlbG9wZXIuDQoNCioqS2VrdXJhbmdhbioqDQoNCkJhaGFzYSBwZW1yb2dyYW1hbiBKYXZhIG1lbmdndW5ha2FuIG1lbW9yaSBsZWJpaCBiYW55YWsgZGliYW5kaW5na2FuIGJlYmVyYXBhIEJhaGFzYSBwZW1yb2dyYW1hbiB5YW5nIGxhaW4gZGFuIG1lbWJ1dHVoa2FuIGtvbXB1dGVyIHlhbmcgbWVtaWxpa2kga2FwYXNpdGFzIHJhbSB5YW5nIGJlc2FyIGFnYXIgYmVyamFsYW4gb3B0aW1hbC4gU2VsYWluIGl0dSwgSmF2YSBqdWdhIG11ZGFoIG1lbmdhbGFtaSBkZWtvbXBpbGFzaS4gRGVrb21waWxhc2kgYWRhbGFoIHBlbmdhbWJpbGFuIHNvdXJjZSBjb2RlLCBzZWhpbmdnYSBkYXBhdCBkZW5nYW4gbXVkYWggZGlhbWJpbCBhdGF1IGRpYmFqYWsgb2xlaCBvcmFuZyBsYWluLg0K