library(htmltools)
HTML('
<div class="profile-card">
<div>
<img src="Almetcokkk.JPG">
</div>
<div class="profile-name">Veronica Maria Lucia F Xavier</div>
<div class="divider"></div>
<div class="profile-nim">NIM: 52250021</div>
</div>
')
Veronica Maria Lucia F Xavier
NIM: 52250021
Apa tujuan utama dari
penelitian ilmu Data dan Pemrograman?
Tujuan Utama
Pemrograman dalam Data Science
Dalam disiplin ilmu Sains Data, pemrograman berfungsi sebagai fondasi
teknis yang memungkinkan transformasi data mentah menjadi wawasan
strategis yang terukur.
Berikut adalah tiga
pilar utama pemperograman dalam bidang ini:
1). Pemrosesan dan Pembersihan Data (Data
Wrangling): Sebagian besar data di dunia nyata bersifat tidak
terstruktur dan inkonsisten. Pemrograman memungkinkan praktisi untuk
menyusun skrip otomatis guna melakukan pembersihan data, menangani nilai
yang hilang, serta memperbaiki anomali format sehingga data siap untuk
dianalisis lebih lanjut secara akurat.
2). Analisis Statistik dan Penemuan Pola (Exploratory Data
Analysis): Pemrograman memfasilitasi komputasi statistik
kompleks pada kumpulan data berskala besar yang tidak mungkin dilakukan
secara manual. Hal ini mencakup pengujian hipotesis, identifikasi
korelasi, dan penemuan tren tersembunyi guna mendukung pengambilan
keputusan berbasis data.
3). Pembelajaran Mesin dan Otomatisasi (Machine
Learning): Melalui algoritma pemrograman, kita dapat membangun
model prediktif yang mampu belajar dari pola data masa lalu. Teknologi
ini memungkinkan otomatisasi dalam memprediksi fenomena masa depan,
seperti prakiraan fluktuasi pasar atau deteksi dini dalam diagnosa
medis.
Mengapa Kita
Mempelajari Jurusan Data Science?
Belajar coding di Data Science itu ibarat menyiapkan “alat tempur”
untuk mengubah tumpukan data berantakan jadi informasi yang berguna.
Ada 3(tiga) alasan,
yaitu ;
1). Bisa Menangani Big Data: Aplikasi biasa seperti
Excel punya batas maksimal; kalau kita buka file dengan 10jt baris,
aplikasinya akan error atau crash. Dengan coding, kita bisa mengolah
data sebesar apa pun dengan cepat karena kita langsung memerintah memori
komputer untuk bekerja.
2). Otomatisasi Alur Kerja dan Efisiensi
Operasional: Dalam praktik profesional di masa depan, seorang
praktisi data akan secara rutin menghadapi proses pembersihan dan
pengolahan data yang bersifat repetitif setiap kali terdapat
pemutakhiran basis data. Dibandingkan dengan melakukan tahapan tersebut
secara manual yang memakan waktu signifikannya (misalnya hingga lima jam
kerja), pemrograman memungkinkan penyusunan skrip algoritma yang
komprehensif. Melalui implementasi skrip ini, seluruh rangkaian prosedur
yang kompleks dapat diselesaikan secara otomatis dalam hitungan detik,
sehingga meningkatkan produktivitas dan meminimalisasi risiko kesalahan
manusia (human error).
3). Transparansi dan Hasil yang Bisa Diuji Ulang :
Sesuai namanya, Sains Data itu bidang ilmiah, jadi hasilnya
harus bisa dibuktikan kebenarannya. Kalau kita cuma klik-klik tombol di
software, orang lain bakal bingung urutan kerjanya seperti apa. Tapi
kalau pakai coding, semuanya jadi transparan. Teman satu tim bisa baca
skrip kita, paham logikanya, dan menjalankan ulang kodenya untuk
memastikan hasilnya memang akurat dan konsisten.
Berikan Pengatahuan
khusus Anda tentang Data Science?
Data Science merupakan bidang ilmu yang menggabungkan statistik,
matematika, dan teknologi informasi untuk mengolah serta menganalisis
data dalam jumlah besar guna menghasilkan informasi yang bernilai dan
mendukung proses pengambilan keputusan. Dan Saya memiliki minat pada
bidang Data Science, khususnya pada konsentrasi Big Data
Engineering.
Big Data Engineering
:
Adalah salah satu bagian dalam Data Science yang berfokus pada
pengelolaan data berskala besar (big data), baik data terstruktur maupun
tidak terstruktur. Bidang ini menitikberatkan pada pembangunan dan
pengelolaan infrastruktur data.
Ruang Lingkup Big
Data Engineering
Ruang lingkup Big Data Engineering meliputi:
Perancangan dan pembangunan sistem penyimpanan data
(database dan data warehouse).
Pengembangan data pipeline untuk proses pengumpulan dan
pengolahan data.
Pengelolaan sistem komputasi terdistribusi dan cloud
computing.
Optimalisasi kinerja sistem agar mampu menangani volume
data yang besar secara efisien.
Keterampilan yang
Dibutuhkan
Seorang Big Data Engineer perlu memiliki kemampuan dalam:
Pemrograman (seperti Python dan SQL).
Manajemen basis data.
Pemahaman tentang sistem terdistribusi.
Penggunaan teknologi pengolahan big
data
KESIMPULAN
Secara keseluruhan, Data Science bukan hanya tentang kemampuan
menulis kode, melainkan sebuah disiplin ilmu strategis yang
menggabungkan kemahiran teknis dengan logika berpikir yang kuat.
Pemrograman berperan sebagai mesin utama yang memungkinkan kita mengolah
data raksasa, mengotomatisasi pekerjaan repetitif, dan menjaga
transparansi hasil analisis agar dapat dipertanggungjawabkan secara
ilmiah.
Dengan menguasai berbagai perangkat seperti Python,
SQL, hingga teknologi Machine Learning, seorang
praktisi data memiliki kemampuan untuk mengubah tumpukan data mentah
yang berantakan menjadi kompas bagi pengambilan keputusan yang
akurat.
Khusus dalam bidang Big Data Engineering, fokus utamanya
bergeser pada pembangunan infrastruktur bagi data tersebut. Tanpa sistem
penyimpanan dan saluran data (data pipeline) yang kokoh, analisis data
berskala besar tidak akan mungkin terjadi. Oleh karena itu, sinergi
antara kemampuan analisis dan ketangguhan infrastruktur adalah kunci
utama untuk menjawab tantangan data di masa depan.
LS0tDQp0aXRsZTogIlBFTVJPR1JBTUFOIFNBSU5TIERBVEEiICAgICAgICMgTWFpbiB0aXRsZSBvZiB0aGUgZG9jdW1lbnQNCnN1YnRpdGxlOiAiRXhlcnNpemUgd2Vla34yIiAgIyBTdWJ0aXRsZSBvciB0b3BpYyBmb3Igd2VlayA0DQphdXRob3I6IA0KLSAiVmVyb25pY2EgTSBMIEYgWGF2aWVyIiAgICAgICAjIFJlcGxhY2Ugd2l0aCB5b3VyIGZ1bGwgbmFtZQ0KZGF0ZTogICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCIgIyBBdXRvIGRpc3BsYXlzIHRoZSBjdXJyZW50IGRhdGUNCm91dHB1dDogICAgICAgICAgICAgICAgICAgICAgICAgIyBPdXRwdXQgc2VjdGlvbiBkZWZpbmVzIHRoZSBmb3JtYXQgYW5kIGxheW91dCANCiAgcm1kZm9ybWF0czo6cmVhZHRoZWRvd246ICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vanViYS9ybWRmb3JtYXRzDQogICAgc2VsZl9jb250YWluZWQ6IHRydWUgICAgICAgICMgRW1iZWRzIGFsbCByZXNvdXJjZXMgKENTUywgSlMsIGltYWdlcykgDQogICAgdGh1bWJuYWlsczogdHJ1ZSAgICAgICAgICAgICMgRGlzcGxheXMgaW1hZ2UgdGh1bWJuYWlscyBpbiB0aGUgZG9jDQogICAgbGlnaHRib3g6IHRydWUgICAgICAgICAgICAgICMgRW5hYmxlcyBjbGljayB0byBlbmxhcmdlIGltYWdlcw0KICAgIGdhbGxlcnk6IHRydWUgICAgICAgICAgICAgICAjIEdyb3VwcyBpbWFnZXMgaW50byBhbiBpbnRlcmFjdGl2ZSBnYWxsZXJ5DQogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlICAgICAgICMgQXV0b21hdGljYWxseSBudW1iZXJzIGFsbCBzZWN0aW9ucw0KICAgIGxpYl9kaXI6IGxpYnMgICAgICAgICAgICAgICAjIERpcmVjdG9yeSB3aGVyZSBKYXZhU2NyaXB0L0NTUyBsaWJyYXJpZXMNCiAgICBkZl9wcmludDogInBhZ2VkIiAgICAgICAgICAgIyBEaXNwbGF5cyBkYXRhIGZyYW1lcyBhcyBpbnRlcmFjdGl2ZSBwYWdlZCANCiAgICBjb2RlX2ZvbGRpbmc6ICJzaG93IiAgICAgICAgIyBBbGxvd3MgZm9sZGluZy91bmZvbGRpbmcgUiBjb2RlIGJsb2NrcyANCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMgICAgICAgICAgIyBBZGRzIGEgYnV0dG9uIHRvIGRvd25sb2FkIGFsbCBSIGNvZGUNCiAgICBjc3M6OlN0eWxlLmNzczoNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQo8Ym9keT4NCjxzdHlsZT4NCg0KLnByb2ZpbGUtY2FyZCB7DQogICAgYmFja2dyb3VuZDogI2ZmZmZmZjsNCiAgICBib3JkZXItcmFkaXVzOiAxNXB4Ow0KICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwgMCwgMCwgMC4xKTsNCiAgICBwYWRkaW5nOiAzMHB4Ow0KICAgIG1heC13aWR0aDogNTAwcHg7DQogICAgbWFyZ2luOiA0MHB4IGF1dG87DQogICAgdGV4dC1hbGlnbjogY2VudGVyOw0KICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMGYwZjA7DQp9DQoNCi5wcm9maWxlLWNhcmQgaW1nIHsNCiAgd2lkdGg6IDE4MHB4Ow0KICBib3JkZXItcmFkaXVzOiA1MCU7DQogIGJvcmRlcjogNHB4IHNvbGlkIHdoaXRlOw0KICBib3gtc2hhZG93OiAwIDAgMTJweCByZ2JhKDAsMCwwLDAuMjUpOw0KfQ0KDQoucHJvZmlsZS1pbWc6aG92ZXIgew0KICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7IC8qIEVmZWsgem9vbSBzYWF0IGt1cnNvciBkaSBhdGFzIGZvdG8gKi8NCn0NCg0KLyogTmFtYSBkYW4gTklNICovDQoucHJvZmlsZS1uYW1lIHsNCiAgICBmb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgc2Fucy1zZXJpZjsNCiAgICBmb250LXNpemU6IDI0cHg7DQogICAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgICBjb2xvcjogIzJjM2U1MDsNCiAgICBtYXJnaW46IDEwcHggMCA1cHggMDsNCn0NCg0KLnByb2ZpbGUtbmltIHsNCiAgICBmb250LWZhbWlseTogJ0NvdXJpZXIgTmV3JywgbW9ub3NwYWNlOw0KICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICBjb2xvcjogIzdmOGM4ZDsNCiAgICBsZXR0ZXItc3BhY2luZzogMXB4Ow0KfQ0KDQovKiBHYXJpcyBQZW1iYXRhcyBFbGVnYW4gKi8NCi5kaXZpZGVyIHsNCiAgICBoZWlnaHQ6IDJweDsNCiAgICB3aWR0aDogNTBweDsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzQ5OGRiOw0KICAgIG1hcmdpbjogMTVweCBhdXRvOw0KfQ0KDQo8L3N0eWxlPg0KDQpgYGB7cn0NCmxpYnJhcnkoaHRtbHRvb2xzKQ0KDQpIVE1MKCcNCjxkaXYgY2xhc3M9InByb2ZpbGUtY2FyZCI+DQogIDxkaXY+DQogICAgPGltZyBzcmM9IkFsbWV0Y29ra2suSlBHIj4NCiAgPC9kaXY+DQogIA0KICA8ZGl2IGNsYXNzPSJwcm9maWxlLW5hbWUiPlZlcm9uaWNhIE1hcmlhIEx1Y2lhIEYgWGF2aWVyPC9kaXY+DQogIA0KICA8ZGl2IGNsYXNzPSJkaXZpZGVyIj48L2Rpdj4NCiAgDQogIDxkaXYgY2xhc3M9InByb2ZpbGUtbmltIj5OSU06IDUyMjUwMDIxPC9kaXY+DQo8L2Rpdj4NCicpDQpgYGANCg0KIyMgQXBhIHR1anVhbiB1dGFtYSBkYXJpIHBlbmVsaXRpYW4gaWxtdSBEYXRhIGRhbiBQZW1yb2dyYW1hbj8NCg0KIyMjIFR1anVhbiBVdGFtYSBQZW1yb2dyYW1hbiBkYWxhbSBEYXRhIFNjaWVuY2UNCg0KRGFsYW0gZGlzaXBsaW4gaWxtdSBTYWlucyBEYXRhLCBwZW1yb2dyYW1hbiBiZXJmdW5nc2kgc2ViYWdhaSBmb25kYXNpIHRla25pcyB5YW5nDQptZW11bmdraW5rYW4gdHJhbnNmb3JtYXNpIGRhdGEgbWVudGFoIG1lbmphZGkgd2F3YXNhbiBzdHJhdGVnaXMgeWFuZyB0ZXJ1a3VyLg0KDQojIyMgQmVyaWt1dCBhZGFsYWggdGlnYSBwaWxhciB1dGFtYSBwZW1wZXJvZ3JhbWFuIGRhbGFtIGJpZGFuZyBpbmk6DQoNCioqMSkuIFBlbXJvc2VzYW4gZGFuIFBlbWJlcnNpaGFuIERhdGEgKERhdGEgV3JhbmdsaW5nKToqKg0KU2ViYWdpYW4gYmVzYXIgZGF0YSBkaSBkdW5pYSBueWF0YSBiZXJzaWZhdCB0aWRhayB0ZXJzdHJ1a3R1ciBkYW4gaW5rb25zaXN0ZW4uDQpQZW1yb2dyYW1hbiBtZW11bmdraW5rYW4gcHJha3Rpc2kgdW50dWsgbWVueXVzdW4gc2tyaXAgb3RvbWF0aXMgZ3VuYSBtZWxha3VrYW4gDQpwZW1iZXJzaWhhbiBkYXRhLCBtZW5hbmdhbmkgbmlsYWkgeWFuZyBoaWxhbmcsIHNlcnRhIG1lbXBlcmJhaWtpIGFub21hbGkgZm9ybWF0IA0Kc2VoaW5nZ2EgZGF0YSBzaWFwIHVudHVrIGRpYW5hbGlzaXMgbGViaWggbGFuanV0IHNlY2FyYSBha3VyYXQuDQoNCioqMikuIEFuYWxpc2lzIFN0YXRpc3RpayBkYW4gUGVuZW11YW4gUG9sYSAoRXhwbG9yYXRvcnkgRGF0YSBBbmFseXNpcyk6KioNClBlbXJvZ3JhbWFuIG1lbWZhc2lsaXRhc2kga29tcHV0YXNpIHN0YXRpc3RpayBrb21wbGVrcyBwYWRhIGt1bXB1bGFuIGRhdGEgYmVyc2thbGENCmJlc2FyIHlhbmcgdGlkYWsgbXVuZ2tpbiBkaWxha3VrYW4gc2VjYXJhIG1hbnVhbC4gSGFsIGluaSBtZW5jYWt1cCBwZW5ndWppYW4gDQpoaXBvdGVzaXMsIGlkZW50aWZpa2FzaSBrb3JlbGFzaSwgZGFuIHBlbmVtdWFuIHRyZW4gdGVyc2VtYnVueWkgZ3VuYSBtZW5kdWt1bmcgDQpwZW5nYW1iaWxhbiBrZXB1dHVzYW4gYmVyYmFzaXMgZGF0YS4NCg0KKiozKS4gUGVtYmVsYWphcmFuIE1lc2luIGRhbiBPdG9tYXRpc2FzaSAoTWFjaGluZSBMZWFybmluZyk6KioNCk1lbGFsdWkgYWxnb3JpdG1hIHBlbXJvZ3JhbWFuLCBraXRhIGRhcGF0IG1lbWJhbmd1biBtb2RlbCBwcmVkaWt0aWYgeWFuZyBtYW1wdQ0KYmVsYWphciBkYXJpIHBvbGEgZGF0YSBtYXNhIGxhbHUuIFRla25vbG9naSBpbmkgbWVtdW5na2lua2FuIG90b21hdGlzYXNpDQpkYWxhbSBtZW1wcmVkaWtzaSBmZW5vbWVuYSBtYXNhIGRlcGFuLCBzZXBlcnRpIHByYWtpcmFhbiBmbHVrdHVhc2kgcGFzYXIgYXRhdSANCmRldGVrc2kgZGluaSBkYWxhbSBkaWFnbm9zYSBtZWRpcy4NCg0KDQojIyBNZW5nYXBhIEtpdGEgTWVtcGVsYWphcmkgSnVydXNhbiBEYXRhIFNjaWVuY2U/DQoNCkJlbGFqYXIgY29kaW5nIGRpIERhdGEgU2NpZW5jZSBpdHUgaWJhcmF0IG1lbnlpYXBrYW4gImFsYXQgdGVtcHVyIiB1bnR1ayBtZW5ndWJhaCANCnR1bXB1a2FuIGRhdGEgYmVyYW50YWthbiBqYWRpIGluZm9ybWFzaSB5YW5nIGJlcmd1bmEuIA0KIA0KIyMjIEFkYSAzKHRpZ2EpIGFsYXNhbiwgeWFpdHUgOw0KDQoqKjEpLiBCaXNhIE1lbmFuZ2FuaSBCaWcgRGF0YToqKg0KQXBsaWthc2kgYmlhc2Egc2VwZXJ0aSBFeGNlbCBwdW55YSBiYXRhcyBtYWtzaW1hbDsga2FsYXUga2l0YSBidWthIGZpbGUNCmRlbmdhbiAxMGp0IGJhcmlzLCBhcGxpa2FzaW55YSBha2FuIGVycm9yIGF0YXUgY3Jhc2guIERlbmdhbiBjb2RpbmcsIGtpdGEgYmlzYQ0KbWVuZ29sYWggZGF0YSBzZWJlc2FyIGFwYSBwdW4gZGVuZ2FuIGNlcGF0IGthcmVuYSBraXRhIGxhbmdzdW5nIG1lbWVyaW50YWggbWVtb3JpIA0Ka29tcHV0ZXIgdW50dWsgYmVrZXJqYS4NCg0KKioyKS4gT3RvbWF0aXNhc2kgQWx1ciBLZXJqYSBkYW4gRWZpc2llbnNpIE9wZXJhc2lvbmFsOioqDQpEYWxhbSBwcmFrdGlrIHByb2Zlc2lvbmFsIGRpIG1hc2EgZGVwYW4sIHNlb3JhbmcgcHJha3Rpc2kgZGF0YSBha2FuIHNlY2FyYSBydXRpbg0KbWVuZ2hhZGFwaSBwcm9zZXMgcGVtYmVyc2loYW4gZGFuIHBlbmdvbGFoYW4gZGF0YSB5YW5nIGJlcnNpZmF0IHJlcGV0aXRpZiBzZXRpYXAga2FsaSANCnRlcmRhcGF0IHBlbXV0YWtoaXJhbiBiYXNpcyBkYXRhLiBEaWJhbmRpbmdrYW4gZGVuZ2FuIG1lbGFrdWthbiB0YWhhcGFuIHRlcnNlYnV0IA0Kc2VjYXJhIG1hbnVhbCB5YW5nIG1lbWFrYW4gd2FrdHUgc2lnbmlmaWthbm55YSAobWlzYWxueWEgaGluZ2dhIGxpbWEgamFtIGtlcmphKSwNCnBlbXJvZ3JhbWFuIG1lbXVuZ2tpbmthbiBwZW55dXN1bmFuIHNrcmlwIGFsZ29yaXRtYSB5YW5nIGtvbXByZWhlbnNpZi4NCk1lbGFsdWkgaW1wbGVtZW50YXNpIHNrcmlwIGluaSwgc2VsdXJ1aCByYW5na2FpYW4gcHJvc2VkdXIgeWFuZyBrb21wbGVrcyBkYXBhdCANCmRpc2VsZXNhaWthbiBzZWNhcmEgb3RvbWF0aXMgZGFsYW0gaGl0dW5nYW4gZGV0aWssIHNlaGluZ2dhIG1lbmluZ2thdGthbg0KcHJvZHVrdGl2aXRhcyBkYW4gbWVtaW5pbWFsaXNhc2kgcmlzaWtvIGtlc2FsYWhhbiBtYW51c2lhIChodW1hbiBlcnJvcikuDQoNCioqMykuIFRyYW5zcGFyYW5zaSBkYW4gSGFzaWwgeWFuZyBCaXNhIERpdWppIFVsYW5nIDoqKg0KU2VzdWFpIG5hbWFueWEsICpTYWlucyBEYXRhKiBpdHUgYmlkYW5nIGlsbWlhaCwgamFkaSBoYXNpbG55YSBoYXJ1cyBiaXNhIGRpYnVrdGlrYW4gDQprZWJlbmFyYW5ueWEuIEthbGF1IGtpdGEgY3VtYSBrbGlrLWtsaWsgdG9tYm9sIGRpIHNvZnR3YXJlLCBvcmFuZyBsYWluIGJha2FsIA0KYmluZ3VuZyB1cnV0YW4ga2VyamFueWEgc2VwZXJ0aSBhcGEuIFRhcGkga2FsYXUgcGFrYWkgY29kaW5nLCBzZW11YW55YSBqYWRpIHRyYW5zcGFyYW4uIA0KVGVtYW4gc2F0dSB0aW0gYmlzYSBiYWNhIHNrcmlwIGtpdGEsIHBhaGFtIGxvZ2lrYW55YSwgZGFuIG1lbmphbGFua2FuIHVsYW5nIA0Ka29kZW55YSB1bnR1ayBtZW1hc3Rpa2FuIGhhc2lsbnlhIG1lbWFuZyBha3VyYXQgZGFuIGtvbnNpc3Rlbi4NCg0KIyMgVG9vbHMgYXBhIGFqYSB5YW5nIGhhcnVzIGRpcGVsYWphcmk/DQoNCiMjIyBUb29scyB5YW5nIFdhamliIERpa3Vhc2FpIGRpIERhdGEgU2NpZW5jZQ0KVW50dWsgamFkaSBhaGxpIGRpIGJpZGFuZyBEYXRhIFNjaWVuY2UsIGtpdGEgYnV0dWgga29tYmluYXNpIGJlcmJhZ2FpIGFsYXQgdW50dWsgbWVuZ29sYWggZGF0YSBtZW50YWggc2FtcGFpIGphZGkga2VjZXJkYXNhbiBidWF0YW4gKEFJKS4gDQoNCiMjIyBCZXJpa3V0IGFkYWxhaCBkYWZ0YXIgdG9vbHMgeWFuZyBoYXJ1cyBraXRhIHBlbGFqYXJpOg0KDQoqKjEpLiBCYWhhc2EgUGVtcm9ncmFtYW4gRGFzYXI6KioNCg0KLSAqUHl0aG9uOiogSW5pIGFkYWxhaCAiYmFoYXNhIGlidSIgYmFnaSBEYXRhIFNjaWVudGlzdC4gUG9wdWxlciBrYXJlbmEga29kZW55YQ0KbXVkYWggZGliYWNhIGRhbiBwdW55YSBqdXRhYW4gcGVycHVzdGFrYWFuIChsaWJyYXJpZXMpIHBlbmR1a3VuZy4NCg0KLSAqU1FMIChTdHJ1Y3R1cmVkIFF1ZXJ5IExhbmd1YWdlKToqIFdhamliIGRpa3Vhc2FpIHVudHVrIG1lbmdhbWJpbCAocXVlcnkpIGRhdGEgZGFyaSBkYXRhYmFzZSBwZXJ1c2FoYWFuLiBUYW5wYSBTUUwsIGthbXUgdGlkYWsgYmlzYSBtZW5nYWtzZXMgZGF0YSB5YW5nIGluZ2luIGRpb2xhaC4NCg0KLSAqUjoqIFNlcmluZyBkaWd1bmFrYW4gb2xlaCBha2FkZW1pc2kgYXRhdSBzdGF0aXN0aWthd2FuIHVudHVrIGFuYWxpc2lzIGRhdGEgeWFuZw0Kc2FuZ2F0IG1lbmRhbGFtIGRhbiB2aXN1YWxpc2FzaSB5YW5nIGVzdHJ1Y3R1cmVkLg0KDQoqKjIpLiBBbGF0IE9sYWggZGFuIEFuYWxpc2lzIERhdGE6KioNCkFkYSBQYW5kYXMgeWFuZyBmdW5nc2lueWEgbWlyaXAgRXhjZWwgdGFwaSB2ZXJzaSBjb2RpbmcsIGd1bmFueWEgdW50dWsgYmVyc2loLWJlcnNpaA0KZGFuIG1lbmdhdHVyIHRhYmVsIGRhdGEuIExhbHUgYWRhIE51bVB5LCBhbGF0IGtodXN1cyB1bnR1ayBtZW5naGl0dW5nIG1hdGVtYXRpa2EgDQp5YW5nIHJ1bWl0IGRhbiBiZXJhdCBkZW5nYW4gc2FuZ2F0IGNlcGF0Lg0KDQoqKjMpLiBNZW1iYW5ndW4gKE1hY2hpbmUgTGVhcm5pbmcgJiBBSSk6KioNClVudHVrIG1lbWJ1YXQgbW9kZWwgcHJlZGlrc2kgeWFuZyBzaW1wZWwsIGtpdGEgcGFrYWkgU2Npa2l0LUxlYXJuLiBUYXBpIGthbGF1DQppbmdpbiBtZW1idWF0IHRla25vbG9naSBjYW5nZ2loIHNlcGVydGkgcGVuZ2VuYWwgd2FqYWggYXRhdSBDaGF0R1BULCBraXRhIGJpYXNhbnlhIG1lbmdndW5ha2FuICpUZW5zb3JGbG93IGF0YXUgUHlUb3JjaC4qDQoNCioqNCkuIFRlbXBhdCBLZXJqYSBEaWdpdGFsIChJREUpOioqDQpLaXRhIGJ1dHVoIEp1cHl0ZXIgTm90ZWJvb2tzIGF0YXUgVlMgQ29kZSBzZWJhZ2FpIHRlbXBhdCBtZW51bGlzIGtvZGUuIA0KRGkgc2luaSwga2l0YSBiaXNhIGxhbmdzdW5nIG1lbGloYXQgaGFzaWwgZ3JhZmlrIGF0YXUgdGFiZWwgdGVwYXQgZGkgYmF3YWgga29kZQ0KeWFuZyBraXRhIHR1bGlzLCBqYWRpIHByb3NlcyBla3NwZXJpbWVubnlhIHRlcmFzYSBsZWJpaCBueWF0YS4NCg0KIyMgQmVyaWthbiBQZW5nYXRhaHVhbiBraHVzdXMgQW5kYSB0ZW50YW5nIERhdGEgU2NpZW5jZT8NCg0KRGF0YSBTY2llbmNlIG1lcnVwYWthbiBiaWRhbmcgaWxtdSB5YW5nIG1lbmdnYWJ1bmdrYW4gDQpzdGF0aXN0aWssIG1hdGVtYXRpa2EsIGRhbiB0ZWtub2xvZ2kgaW5mb3JtYXNpIHVudHVrIG1lbmdvbGFoIHNlcnRhIA0KbWVuZ2FuYWxpc2lzIGRhdGEgZGFsYW0ganVtbGFoIGJlc2FyIGd1bmEgbWVuZ2hhc2lsa2FuIGluZm9ybWFzaSB5YW5nIGJlcm5pbGFpDQpkYW4gbWVuZHVrdW5nIHByb3NlcyBwZW5nYW1iaWxhbiBrZXB1dHVzYW4uDQpEYW4gU2F5YSBtZW1pbGlraSBtaW5hdCBwYWRhIGJpZGFuZyBEYXRhIFNjaWVuY2UsIGtodXN1c255YSBwYWRhIGtvbnNlbnRyYXNpIA0KQmlnIERhdGEgRW5naW5lZXJpbmcuDQoNCiMjIyBCaWcgRGF0YSBFbmdpbmVlcmluZyA6DQpBZGFsYWggc2FsYWggc2F0dSBiYWdpYW4gZGFsYW0gRGF0YSBTY2llbmNlIHlhbmcgYmVyZm9rdXMgcGFkYSANCnBlbmdlbG9sYWFuIGRhdGEgYmVyc2thbGEgYmVzYXIgKGJpZyBkYXRhKSwgYmFpayBkYXRhIHRlcnN0cnVrdHVyIG1hdXB1biB0aWRhayB0ZXJzdHJ1a3R1ci4gDQpCaWRhbmcgaW5pIG1lbml0aWtiZXJhdGthbiBwYWRhIHBlbWJhbmd1bmFuIGRhbiBwZW5nZWxvbGFhbiBpbmZyYXN0cnVrdHVyIGRhdGEuDQoNCiMjIyBSdWFuZyBMaW5na3VwIEJpZyBEYXRhIEVuZ2luZWVyaW5nDQpSdWFuZyBsaW5na3VwIEJpZyBEYXRhIEVuZ2luZWVyaW5nIG1lbGlwdXRpOg0KDQotICoqUGVyYW5jYW5nYW4gZGFuIHBlbWJhbmd1bmFuIHNpc3RlbSBwZW55aW1wYW5hbiBkYXRhIChkYXRhYmFzZSBkYW4gZGF0YSB3YXJlaG91c2UpLioqDQoNCg0KLSAqKlBlbmdlbWJhbmdhbiBkYXRhIHBpcGVsaW5lIHVudHVrIHByb3NlcyBwZW5ndW1wdWxhbiBkYW4gcGVuZ29sYWhhbiBkYXRhLioqDQoNCg0KLSAqKlBlbmdlbG9sYWFuIHNpc3RlbSBrb21wdXRhc2kgdGVyZGlzdHJpYnVzaSBkYW4gY2xvdWQgY29tcHV0aW5nLioqDQoNCg0KLSAqKk9wdGltYWxpc2FzaSBraW5lcmphIHNpc3RlbSBhZ2FyIG1hbXB1IG1lbmFuZ2FuaSB2b2x1bWUgZGF0YSB5YW5nIGJlc2FyIHNlY2FyYSBlZmlzaWVuLioqDQoNCg0KIyMjIEtldGVyYW1waWxhbiB5YW5nIERpYnV0dWhrYW4NClNlb3JhbmcgQmlnIERhdGEgRW5naW5lZXIgcGVybHUgbWVtaWxpa2kga2VtYW1wdWFuIGRhbGFtOg0KDQotICoqUGVtcm9ncmFtYW4gKHNlcGVydGkgUHl0aG9uIGRhbiBTUUwpLioqDQoNCi0gKipNYW5hamVtZW4gYmFzaXMgZGF0YS4qKg0KDQotICoqUGVtYWhhbWFuIHRlbnRhbmcgc2lzdGVtIHRlcmRpc3RyaWJ1c2kuKioNCg0KLSAqKlBlbmdndW5hYW4gdGVrbm9sb2dpIHBlbmdvbGFoYW4gYmlnIGRhdGEqKg0KDQojIyBLRVNJTVBVTEFODQpTZWNhcmEga2VzZWx1cnVoYW4sIERhdGEgU2NpZW5jZSBidWthbiBoYW55YSB0ZW50YW5nIGtlbWFtcHVhbiBtZW51bGlzIGtvZGUsIG1lbGFpbmthbiBzZWJ1YWggZGlzaXBsaW4gaWxtdSBzdHJhdGVnaXMgeWFuZyBtZW5nZ2FidW5na2FuIGtlbWFoaXJhbiB0ZWtuaXMgZGVuZ2FuIGxvZ2lrYSBiZXJwaWtpciB5YW5nIGt1YXQuIFBlbXJvZ3JhbWFuIGJlcnBlcmFuIHNlYmFnYWkgbWVzaW4gdXRhbWEgeWFuZyBtZW11bmdraW5rYW4ga2l0YSBtZW5nb2xhaCBkYXRhIHJha3Nhc2EsIG1lbmdvdG9tYXRpc2FzaSBwZWtlcmphYW4gcmVwZXRpdGlmLCBkYW4gbWVuamFnYSB0cmFuc3BhcmFuc2kgaGFzaWwgYW5hbGlzaXMgYWdhciBkYXBhdCBkaXBlcnRhbmdndW5namF3YWJrYW4gc2VjYXJhIGlsbWlhaC4NCg0KRGVuZ2FuIG1lbmd1YXNhaSBiZXJiYWdhaSBwZXJhbmdrYXQgc2VwZXJ0aSAqUHl0aG9uKiwgKlNRTCosIGhpbmdnYSB0ZWtub2xvZ2kNCipNYWNoaW5lIExlYXJuaW5nKiwgc2VvcmFuZyBwcmFrdGlzaSBkYXRhIG1lbWlsaWtpIGtlbWFtcHVhbiB1bnR1ayBtZW5ndWJhaCB0dW1wdWthbg0KZGF0YSBtZW50YWggeWFuZyBiZXJhbnRha2FuIG1lbmphZGkgKmtvbXBhcyogYmFnaSBwZW5nYW1iaWxhbiBrZXB1dHVzYW4geWFuZyBha3VyYXQuDQoNCktodXN1cyBkYWxhbSBiaWRhbmcgKkJpZyBEYXRhIEVuZ2luZWVyaW5nKiwgZm9rdXMgdXRhbWFueWEgYmVyZ2VzZXIgcGFkYSANCnBlbWJhbmd1bmFuIGluZnJhc3RydWt0dXIgYmFnaSBkYXRhIHRlcnNlYnV0LiBUYW5wYSBzaXN0ZW0gcGVueWltcGFuYW4gDQpkYW4gc2FsdXJhbiBkYXRhIChkYXRhIHBpcGVsaW5lKSB5YW5nIGtva29oLCBhbmFsaXNpcyBkYXRhIGJlcnNrYWxhIGJlc2FyIA0KdGlkYWsgYWthbiBtdW5na2luIHRlcmphZGkuIE9sZWgga2FyZW5hIGl0dSwgc2luZXJnaSBhbnRhcmEga2VtYW1wdWFuIGFuYWxpc2lzDQpkYW4ga2V0YW5nZ3VoYW4gaW5mcmFzdHJ1a3R1ciBhZGFsYWgga3VuY2kgdXRhbWEgdW50dWsgbWVuamF3YWIgdGFudGFuZ2FuIGRhdGEgDQpkaSBtYXNhIGRlcGFuLg0KDQo=