
1. Basic Concept of
Probability
Klik gambar untuk menonton video
Rangkuman Penjelasan Probabilitas merupakan ukuran
tentang seberapa besar kemungkinan sebuah peristiwa terjadi, dan konsep
ini dihitung dengan membandingkan jumlah hasil yang diinginkan dengan
jumlah seluruh hasil yang mungkin terjadi. Misalnya saat kita membalik
sebuah koin, hanya ada dua hasil yaitu kepala (H) atau ekor (T),
sehingga peluang munculnya kepala adalah 1 dari 2 kemungkinan atau 0,5
(50%).
Ketika koin dibalik dua kali, setiap lemparan dianggap sebagai
kejadian independen, artinya hasil lemparan pertama tidak memengaruhi
lemparan kedua. Karena peluang mendapatkan satu kepala adalah 0,5, maka
peluang mendapatkan dua kepala berturut- turut adalah 0,5 × 0,5 = 0,25
atau 25%.
Untuk memudahkan analisis, kita dapat membuat ruang sampel, yaitu
daftar seluruh kemungkinan yang bisa terjadi. Pada dua kali lemparan
koin, ruang sampelnya berisi HH, HT, TH, dan TT, dan masing-masing hasil
tersebut memiliki peluang 0,25. Dari ruang sampel ini kita bisa
menentukan berbagai probabilitas, misalnya peluang mendapatkan
setidaknya satu kepala adalah jumlah probabilitas HH, HT, dan TH yang
totalnya 0,75.
Probabilitas juga memiliki dua syarat penting: nilainya harus berada
antara 0 sampai 1, dan jumlah seluruh probabilitas dari semua hasil
harus sama dengan 1. Selain itu, terdapat aturan komplement yang
menyatakan bahwa peluang suatu kejadian tidak terjadi adalah 1 dikurangi
peluang kejadian tersebut. Contohnya, peluang tidak mendapatkan dua ekor
(TT) adalah 1 – 0,25 = 0,75.
Aturan komplement mempermudah perhitungan terutama ketika lebih mudah
menghitung kebalikan dari kejadian utama. Secara keseluruhan, konsep
probabilitas dapat dipahami melalui rumus dasar, ruang sampel, kejadian
independen, dan aturan komplement.
References [1] Khan Academy. (n.d.). Probability and
statistics.
https://www.khanacademy.org/math/statistics-probability
[2] Kemdikbud. (2017). Buku Matematika SMP/MTs Kelas VIII (Kurikulum
2013 Revisi).
Bab Peluang.
[3] Blitzstein, J. K., & Hwang, J. (2014). Introduction to
Probability. Chapman & Hall/CRC.
https://projects.iq.harvard.edu/stat110
[4] Ross, S. (2010). A First Course in Probability. Pearson.
[5] SimpleLearningPro. (n.d.). Basic probability lessons.
https://simplelearningpro.com
2. Independent and
Dependent Events
Klik gambar untuk menonton video
Rangkuman Penjelasan Dalam probabilitas, terdapat
dua jenis kejadian penting yang perlu dipahami, yaitu acara independen
dan acara bergantungan. Keduanya berhubungan dengan bagaimana suatu
peristiwa memengaruhi peristiwa lain dalam konteks kemungkinan. Acara
independen adalah kejadian-kejadian yang hasilnya tidak saling
memengaruhi. Artinya, apa yang terjadi pada peristiwa pertama sama
sekali tidak mengubah peluang hasil dari peristiwa kedua. Contoh yang
paling sederhana adalah ketika kita menggulung dadu dan melempar koin
secara bersamaan. Menggulung angka tertentu pada dadu tidak memengaruhi
peluang koin jatuh pada sisi kepala atau ekor. Peluang mendapatkan angka
5 pada dadu tetap 1/6, dan peluang mendapatkan kepala pada koin tetap
1/2, tanpa saling mengubah. Untuk menghitung peluang dua acara
independen terjadi secara bersamaan, kita menggunakan rumus P(A dan B) =
P(A) × P(B). Misalnya peluang menggulung angka 5 dan mendapatkan kepala
secara bersamaan adalah 1/6 × 1/2 = 1/12.
Berbeda dengan itu, acara bergantungan adalah kejadian-kejadian yang
hasilnya saling memengaruhi. Artinya, hasil dari peristiwa pertama akan
mengubah peluang dari peristiwa kedua. Situasi seperti ini sering muncul
ketika kita mengambil benda tanpa penggantian, sehingga jumlah total
pilihan berubah setelah satu item diambil. Misalnya, terdapat sebuah
kotak berisi 10 kelereng, dengan 7 berwarna merah dan 3 berwarna biru.
Peluang mengambil kelereng merah pada pengambilan pertama adalah 7/10.
Tetapi jika kita mengambil satu kelereng merah dan tidak
mengembalikannya ke dalam kotak, jumlah kelereng berubah menjadi 9, dan
jumlah kelereng merah berubah menjadi 6. Kini peluang mengambil kelereng
merah pada pengambilan berikutnya menjadi 6/9. Karena peluang berubah
setelah pengambilan pertama, kejadian ini disebut acara bergantungan.
Untuk menghitung peluang dua acara bergantungan terjadi secara
berturut-turut, digunakan rumus P(A dan B) = P(A) × P(B setelah A
terjadi). Misalnya peluang mengambil dua kelereng merah berturut-turut
tanpa penggantian adalah 7/10 × 6/9 = 7/15.
Konsep acara bergantungan juga berlaku untuk item berwarna lain. Jika
kita ingin menghitung peluang mengambil kelereng biru lalu biru lagi
tanpa penggantian, peluang pertama adalah 3/10, dan setelah satu
kelereng biru diambil, peluang berikutnya menjadi 2/9. Karena peluang
kedua berubah setelah peristiwa pertama terjadi, ini menunjukkan bahwa
prosesnya bersifat bergantungan. Inilah karakter utama acara
bergantungan: peristiwa pertama mengubah peluang peristiwa
selanjutnya.
Secara keseluruhan, perbedaan mendasar antara kedua konsep ini dapat
dilihat dari apakah suatu peristiwa mengubah peluang peristiwa lain.
Pada acara independen, peristiwa tidak saling memengaruhi, sehingga
rumus yang digunakan cukup perkalian langsung antara peluang
masing-masing kejadian. Sementara pada acara bergantungan, peluang
berubah setelah peristiwa terjadi, sehingga peluang pada langkah
berikutnya harus dihitung ulang berdasarkan kondisi baru. Pemahaman
tentang acara independen dan bergantungan sangat penting dalam statistik
karena membantu kita menentukan strategi perhitungan yang tepat,
terutama dalam kasus yang melibatkan pengambilan sampel, permainan
peluang, dan penghitungan kombinasi kejadian berturut-turut.
References [1] Montgomery, D. C., & Runger, G.
C. (2014). Applied Statistics and Probability for Engineers (6th ed.).
Wiley.
[2] Blitzstein, J., & Hwang, J. (2019). Introduction to
Probability. Chapman & Hall/CRC.
[3] Sullivan, M. (2019). Statistics: Informed Decisions Using Data
(5th ed.). Pearson.
[4] Ross, S. (2014). A First Course in Probability (9th ed.).
Pearson.
[5] SimpleLearningPro. (n.d.). Basic probability lessons. https://simplelearningpro.com
3. Union of Events
Klik gambar untuk menonton video
Rangkuman Penjelasan Ruang sampel adalah keseluruhan
kumpulan hasil yang mungkin terjadi dalam sebuah percobaan statistik dan
menjadi dasar dalam memahami probabilitas. Ketika kita menggulung satu
dadu, ada enam kemungkinan hasil dari angka 1 sampai 6. Namun, ketika
menggulung dua dadu, jumlah kemungkinan bertambah menjadi 36 karena
setiap dadu memiliki enam angka yang dapat berpasangan satu sama lain.
Semua kombinasi inilah yang membentuk ruang sampel dua dadu. Dengan
memahami ruang sampel, kita dapat menentukan probabilitas suatu kejadian
dengan membagi jumlah hasil yang memenuhi kejadian tersebut dengan total
seluruh kemungkinan hasil.
Probabilitas sederhana digunakan untuk menghitung peluang satu
kejadian tertentu, misalnya peluang munculnya dua angka 4 adalah 1/36
karena hanya ada satu kombinasi (4,4) dari 36 hasil yang mungkin. Contoh
lainnya, peluang muncul dua angka yang sama adalah 9/36, sedangkan
peluang munculnya setidaknya satu angka 2 adalah 11/36. Ketika dua
kejadian ingin dilihat secara bersamaan, kita menggunakan konsep
interseksi, yaitu area di mana hasil suatu percobaan berada dalam kedua
kejadian secara sekaligus. Misalnya, hasil yang memenuhi kejadian “dua
angka yang sama” dan “setidaknya satu angka 2” adalah 5 dari 36 hasil.
Kesalahan yang sering terjadi dalam konteks ini adalah mengalikan
probabilitas dua kejadian padahal kejadian tersebut tidak independen,
sehingga cara yang tepat tetap dengan memeriksa ruang sampel dan mencari
hasil yang benar-benar berada dalam perpotongan kedua kejadian.
Untuk kejadian gabungan atau union yang ditandai dengan kata “atau”,
kita menggunakan rumus P(A ∪ B) = P(A) + P(B) − P(A ∩ B). Pengurangan
interseksi ini penting agar hasil yang berada di kedua kejadian tidak
terhitung dua kali. Contohnya, peluang mendapatkan dua angka yang sama
atau setidaknya satu angka 2 adalah 9/36 + 11/36 − 5/36 = 15/36 atau
sekitar 0,4167. Konsep ini juga dapat terlihat melalui diagram Venn, di
mana ruang sampel digambarkan sebagai sebuah area besar, dan dua
kejadian digambarkan sebagai dua lingkaran yang saling tumpang tindih.
Area tumpang tindih tersebut menunjukkan interseksi, yang harus
dikurangi dalam perhitungan union. Melalui pendekatan ini, kita dapat
memahami bahwa perhitungan probabilitas tidak hanya mengandalkan angka,
tetapi juga memerlukan pemahaman visual terhadap struktur ruang
sampel.
References [1] Simple Learning Pro. (n.d.).
Probability: Union of Events – dari isi penjelasan video pembelajaran
probabilitas.
[2] Siregar, B. (n.d.). Introduction to Statistics. dsciencelabs. https://bookdown.org/dsciencelabs/intro_statistics/Preface.html
[3] Triola, M. F. (2018). Elementary Statistics. Pearson Education —
konsep ruang sampel, interseksi, dan union pada probabilitas.
4. Exclusive and
Exhaustive
Klik gambar untuk menonton video
Rangkuman Penjelasan Kejadian saling eksklusif dan
kejadian saling melengkapi adalah dua konsep penting dalam probabilitas
yang menjelaskan hubungan antara dua kejadian di dalam satu ruang
sampel. Kejadian disebut saling eksklusif apabila keduanya tidak
memiliki hasil yang sama sehingga tidak dapat terjadi secara bersamaan;
misalnya pada lempar dua dadu, kejadian A berupa muncul minimal satu
angka 5 dan kejadian B berupa jumlah dadu kurang dari 4 tidak memiliki
hasil yang tumpang tindih, sehingga peluang A dan B terjadi bersamaan
adalah 0 yang menunjukkan sifat eksklusif. Di sisi lain, kejadian
disebut saling melengkapi (exhaustive) apabila gabungan keduanya
mencakup seluruh kemungkinan hasil di dalam ruang sampel, seperti
kejadian minimal satu angka 6 dan kejadian jumlah dadu kurang dari 11
yang jika digabungkan menutupi semua 36 kemungkinan hasil, sehingga
peluang A ∪ B = 1 yang membuktikan bahwa keduanya melengkapi satu sama
lain. Menariknya, suatu pasangan kejadian bisa bersifat eksklusif
sekaligus saling melengkapi, contohnya kejadian jumlah dadu genap dan
jumlah dadu ganjil; keduanya tidak pernah terjadi bersamaan karena suatu
jumlah tidak mungkin sekaligus genap dan ganjil, namun ketika
digabungkan, keduanya mencakup seluruh ruang sampel sehingga peluang
gabungannya sama dengan 1. Dari sini dapat disimpulkan bahwa kejadian
saling eksklusif menekankan ketidakmungkinan terjadi bersama, sedangkan
kejadian saling melengkapi menekankan kelengkapan cakupan seluruh hasil,
dan kedua konsep ini dapat terjadi bersamaan dalam kondisi tertentu.
References [1] SimpleLearningPro. (n.d.). Basic
probability lessons. https://simplelearningpro.com
[2] Ross, S. M. (2014). Introduction to Probability and Statistics
for Engineers and Scientists (5th ed.). Academic Press.
[3] Walpole, R. E., Myers, R. H., Myers, S. L., & Ye, K. (2012).
Probability and Statistics for Engineers and Scientists (9th ed.).
Pearson Education.
[4] Levine, D. M., Stephan, D. F., & Szabat, K. A. (2020).
Statistics for Managers Using Microsoft Excel (9th ed.). Pearson.
[5] Freedman, D., Pisani, R., & Purves, R. (2007). Statistics
(4th ed.). W. W. Norton & Company.
5. Binomial Experiment
and the Formula
Klik gambar untuk menonton video
Rangkuman Penjelasan Binomial adalah konsep dasar
dalam probabilitas yang digunakan ketika suatu percobaan memiliki dua
hasil, yaitu sukses atau gagal, dan dilakukan berulang dengan jumlah
percobaan yang tetap. Suatu percobaan disebut percobaan binomial jika
memenuhi empat syarat penting: jumlah percobaan tetap, setiap percobaan
hanya memiliki dua kemungkinan hasil, peluang sukses selalu konstan pada
setiap percobaan, dan setiap percobaan bersifat independen satu sama
lain. Contohnya, ketika koin dilempar tiga kali, kita ingin mengetahui
peluang munculnya tepat satu kepala. Ada tiga urutan berbeda yang dapat
menghasilkan satu kepala, yaitu KEE, EKE, dan EEK; masing-masing
memiliki probabilitas 0,125 sehingga totalnya 0,375. Percobaan ini
memenuhi seluruh syarat binomial: jumlah percobaan tetap (3 kali), dua
hasil (kepala atau ekor), peluang kepala selalu 0,5, dan setiap lemparan
independen. Contoh lain adalah mengambil lima kelereng dari kotak berisi
sepuluh kelereng dengan penggantian, di mana dua di antaranya berwarna
hijau. Peluang sukses, yaitu mengambil kelereng hijau, adalah 2/10 = 0,2
dan peluang gagal adalah 0,8. Karena dilakukan dengan penggantian,
peluangnya tetap konstan dan percobaan independen. Untuk mendapatkan
tepat dua kelereng hijau, ada sepuluh susunan keberhasilan dan kegagalan
yang mungkin, dan setiap susunan memiliki probabilitas 0,02048 sehingga
totalnya 0,2048. Perhitungan ini bisa dipersingkat menggunakan rumus
binomial: \[P(k) = C(n,k) * p^k *
(1-p)^(n-k)\] Dengan memasukkan n = 5, k = 2, dan p = 0,2 ke
dalam rumus, hasilnya tetap 0,2048. Rumus binomial menjadi metode cepat
dan efisien untuk menghitung peluang dalam percobaan binomial selama
empat syarat binomial dipenuhi.
References [1] SimpleLearningPro. (n.d.). Basic
probability lessons. https://simplelearningpro.com
[2] Siregar, B. (n.d.). Introduction to Statistics.
DScienceLabs.Diakses dari https://bookdown.org/dsciencelabs/intro_statistics/Preface.html
[3] Khan Academy. (n.d.). Binomial probability. https://www.khanacademy.org/math/statistics-probability
[4] OpenStax. (n.d.). Introductory Statistics – Binomial
Distribution. https://openstax.org/books/introductory-statistics/pages/4-4-binomial-distribution
[5] Larson, R., & Farber, B. (2015). Elementary Statistics (8th
ed.). Pearson Education
6. Binomal
Distribution
Klik gambar untuk menonton video
Rangkuman Penjelasan Distribusi binomial adalah
distribusi probabilitas yang menunjukkan peluang terjadinya sejumlah
keberhasilan tertentu dalam sejumlah percobaan yang tetap, di mana
setiap percobaan hanya memiliki dua hasil (sukses atau gagal) dan
probabilitas sukses tetap konstan. Distribusi ini menggunakan rumus
binomial (P(k)= \[\binom{n}{k}p^{k}(1-p)^{n-k})\] , di mana
(k) adalah jumlah keberhasilan, (n) adalah jumlah percobaan, dan (p)
adalah peluang keberhasilan. Contoh sederhana adalah melempar koin dua
kali, sehingga nilai (k) dapat 0, 1, atau 2, dan dari perhitungan rumus
binomial diperoleh probabilitas 0,25; 0,50; dan 0,25. Ketika
divisualisasikan dalam diagram batang, distribusi menunjukkan pola
simetris karena peluang keberhasilan 0,5. Jika jumlah percobaan (n)
ditingkatkan, misalnya menjadi 10, distribusi binomial mulai menyerupai
distribusi normal karena data semakin mengelompok di sekitar nilai
rata-rata. Parameter distribusi binomial dapat dihitung menggunakan
rumus mean \[(\mu = np)\], varians
\[(np(1-p)\], dan standar deviasi
\[(\sigma = \sqrt{np(1-p)})\].
Perubahan nilai (p) memengaruhi bentuk distribusi: apabila (p = 0,5),
distribusi bersifat simetris; jika (p < 0,5), distribusi miring ke
kanan; sebaliknya jika (p > 0,5), distribusi miring ke kiri. Nilai
(p) yang jauh dari 0,5 membuat distribusi semakin miring karena jumlah
keberhasilan yang mungkin cenderung sedikit atau banyak. Untuk membuat
distribusi binomial mendekati distribusi normal, diperlukan nilai (n)
yang cukup besar, dan pendekatan normal dapat digunakan apabila dua
syarat terpenuhi yaitu \[(np \geq
10)\] dan \[(n(1-p) \geq 10)\].
Secara keseluruhan, bentuk distribusi binomial bergantung pada kombinasi
nilai (p) dan (n), dan semakin besar nilai (n), semakin halus dan
simetris distribusinya sehingga mendekati bentuk distribusi normal.
References [1] SimpleLearningPro. (n.d.). Basic
probability lessons. https://simplelearningpro.com
[2] Siregar, B. (n.d.). Introduction to Statistics. DScienceLabs. https://bookdown.org/dsciencelabs/intro_statistics
[3] Khan Academy. (n.d.). Binomial distribution. https://www.khanacademy.org/math/statistics-probability
[4] OpenStax. (n.d.). Introductory Statistics – Binomial
Distribution. https://openstax.org/books/introductory-statistics/pages/4-4-binomial-distribution
[5] Larson, R., & Farber, B. (2015). Elementary Statistics (8th
ed.). Pearson Education.
LS0tDQp0aXRsZTogIkVzc2VudGlhbCBvZiBQcm9iYWJpbGl0eSIgICAgICAgIyBNYWluIHRpdGxlIG9mIHRoZSBkb2N1bWVudA0Kc3VidGl0bGU6ICJBc3NpZ25tZW50ICB+IFdlZWsgMTAiICAjIFN1YnRpdGxlIG9yIHRvcGljIGZvciB3ZWVrIDEwDQphdXRob3I6ICJTYWZpbmEgWmFocmEiIA0KZGF0ZTogICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCIgIyBBdXRvIGRpc3BsYXlzIHRoZSBjdXJyZW50IGRhdGUNCm91dHB1dDoNCiMgT3V0cHV0IHNlY3Rpb24gZGVmaW5lcyB0aGUgZm9ybWF0IGFuZCBsYXlvdXQgDQogIHJtZGZvcm1hdHM6OnJlYWR0aGVkb3duOiAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL2p1YmEvcm1kZm9ybWF0cw0KICAgIHNlbGZfY29udGFpbmVkOiB0cnVlICAgICAgICAjIEVtYmVkcyBhbGwgcmVzb3VyY2VzIChDU1MsIEpTLCBpbWFnZXMpIA0KICAgIHRodW1ibmFpbHM6IHRydWUgICAgICAgICAgICAjIERpc3BsYXlzIGltYWdlIHRodW1ibmFpbHMgaW4gdGhlIGRvYw0KICAgIGxpZ2h0Ym94OiB0cnVlICAgICAgICAgICAgICAjIEVuYWJsZXMgY2xpY2sgdG8gZW5sYXJnZSBpbWFnZXMNCiAgICBnYWxsZXJ5OiB0cnVlICAgICAgICAgICAgICAgIyBHcm91cHMgaW1hZ2VzIGludG8gYW4gaW50ZXJhY3RpdmUgZ2FsbGVyeQ0KICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZSAgICAgICAjIEF1dG9tYXRpY2FsbHkgbnVtYmVycyBhbGwgc2VjdGlvbnMNCiAgICBsaWJfZGlyOiBsaWJzICAgICAgICAgICAgICAgIyBEaXJlY3Rvcnkgd2hlcmUgSmF2YVNjcmlwdC9DU1MgbGlicmFyaWVzDQogICAgZGZfcHJpbnQ6ICJwYWdlZCIgICAgICAgICAgICMgRGlzcGxheXMgZGF0YSBmcmFtZXMgYXMgaW50ZXJhY3RpdmUgcGFnZWQgDQogICAgY29kZV9mb2xkaW5nOiAic2hvdyIgICAgICAgICMgQWxsb3dzIGZvbGRpbmcvdW5mb2xkaW5nIFIgY29kZSBibG9ja3MgDQogICAgY29kZV9kb3dubG9hZDogeWVzICAgICAgICAgICMgQWRkcyBhIGJ1dHRvbiB0byBkb3dubG9hZCBhbGwgUiBjb2RlDQotLS0NCg0KDQo8aW1nIGlkPSJGb3RvIiBzcmM9IkM6L1VzZXJzL0xlbm92by9PbmVEcml2ZS9EZXNrdG9wL2NvZGluZy9zYXBpbmEuanBnIiBhbHQ9IkxvZ28iIHN0eWxlPSJ3aWR0aDoyMDBweDsgZGlzcGxheTogYmxvY2s7IG1hcmdpbjogYXV0bzsiPg0KDQotLS0NCg0KIyAxLiBCYXNpYyBDb25jZXB0IG9mIFByb2JhYmlsaXR5IA0KDQo8cCBhbGlnbj0iY2VudGVyIj4NCjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9eW5qSEtCQ2lHWFkmdD00cyIgdGFyZ2V0PSJfYmxhbmsiPg0KPGltZyBzcmM9Imh0dHBzOi8vaW1nLnlvdXR1YmUuY29tL3ZpL3luakhLQkNpR1hZLzAuanBnIiB3aWR0aD0iNjAlIj4NCjwvYT4NCjwvcD4NCg0KPHAgYWxpZ249ImNlbnRlciI+PGk+S2xpayBnYW1iYXIgdW50dWsgbWVub250b24gdmlkZW88L2k+PC9wPg0KDQoqKlJhbmdrdW1hbiBQZW5qZWxhc2FuKioNClByb2JhYmlsaXRhcyBtZXJ1cGFrYW4gdWt1cmFuIHRlbnRhbmcgc2ViZXJhcGEgYmVzYXIga2VtdW5na2luYW4gc2VidWFoIHBlcmlzdGl3YQ0KdGVyamFkaSwgZGFuIGtvbnNlcCBpbmkgZGloaXR1bmcgZGVuZ2FuIG1lbWJhbmRpbmdrYW4ganVtbGFoIGhhc2lsIHlhbmcgZGlpbmdpbmthbg0KZGVuZ2FuIGp1bWxhaCBzZWx1cnVoIGhhc2lsIHlhbmcgbXVuZ2tpbiB0ZXJqYWRpLiBNaXNhbG55YSBzYWF0IGtpdGEgbWVtYmFsaWsgc2VidWFoDQprb2luLCBoYW55YSBhZGEgZHVhIGhhc2lsIHlhaXR1IGtlcGFsYSAoSCkgYXRhdSBla29yIChUKSwgc2VoaW5nZ2EgcGVsdWFuZyBtdW5jdWxueWENCmtlcGFsYSBhZGFsYWggMSBkYXJpIDIga2VtdW5na2luYW4gYXRhdSAwLDUgKDUwJSkuDQoNCktldGlrYSBrb2luIGRpYmFsaWsgZHVhIGthbGksIHNldGlhcCBsZW1wYXJhbiBkaWFuZ2dhcCBzZWJhZ2FpIGtlamFkaWFuIGluZGVwZW5kZW4sDQphcnRpbnlhIGhhc2lsIGxlbXBhcmFuIHBlcnRhbWEgdGlkYWsgbWVtZW5nYXJ1aGkgbGVtcGFyYW4ga2VkdWEuIEthcmVuYSBwZWx1YW5nDQptZW5kYXBhdGthbiBzYXR1IGtlcGFsYSBhZGFsYWggMCw1LCBtYWthIHBlbHVhbmcgbWVuZGFwYXRrYW4gZHVhIGtlcGFsYSBiZXJ0dXJ1dC0NCnR1cnV0IGFkYWxhaCAwLDUgw5cgMCw1ID0gMCwyNSBhdGF1IDI1JS4NCg0KVW50dWsgbWVtdWRhaGthbiBhbmFsaXNpcywga2l0YSBkYXBhdCBtZW1idWF0IHJ1YW5nIHNhbXBlbCwgeWFpdHUgZGFmdGFyIHNlbHVydWgNCmtlbXVuZ2tpbmFuIHlhbmcgYmlzYSB0ZXJqYWRpLiBQYWRhIGR1YSBrYWxpIGxlbXBhcmFuIGtvaW4sIHJ1YW5nIHNhbXBlbG55YSBiZXJpc2kNCkhILCBIVCwgVEgsIGRhbiBUVCwgZGFuIG1hc2luZy1tYXNpbmcgaGFzaWwgdGVyc2VidXQgbWVtaWxpa2kgcGVsdWFuZyAwLDI1LiBEYXJpDQpydWFuZyBzYW1wZWwgaW5pIGtpdGEgYmlzYSBtZW5lbnR1a2FuIGJlcmJhZ2FpIHByb2JhYmlsaXRhcywgbWlzYWxueWEgcGVsdWFuZw0KbWVuZGFwYXRrYW4gc2V0aWRha255YSBzYXR1IGtlcGFsYSBhZGFsYWgganVtbGFoIHByb2JhYmlsaXRhcyBISCwgSFQsIGRhbiBUSCB5YW5nDQp0b3RhbG55YSAwLDc1Lg0KDQpQcm9iYWJpbGl0YXMganVnYSBtZW1pbGlraSBkdWEgc3lhcmF0IHBlbnRpbmc6IG5pbGFpbnlhIGhhcnVzIGJlcmFkYSBhbnRhcmEgMCBzYW1wYWkgMSwNCmRhbiBqdW1sYWggc2VsdXJ1aCBwcm9iYWJpbGl0YXMgZGFyaSBzZW11YSBoYXNpbCBoYXJ1cyBzYW1hIGRlbmdhbiAxLiBTZWxhaW4gaXR1LA0KdGVyZGFwYXQgYXR1cmFuIGtvbXBsZW1lbnQgeWFuZyBtZW55YXRha2FuIGJhaHdhIHBlbHVhbmcgc3VhdHUga2VqYWRpYW4gdGlkYWsNCnRlcmphZGkgYWRhbGFoIDEgZGlrdXJhbmdpIHBlbHVhbmcga2VqYWRpYW4gdGVyc2VidXQuIENvbnRvaG55YSwgcGVsdWFuZyB0aWRhaw0KbWVuZGFwYXRrYW4gZHVhIGVrb3IgKFRUKSBhZGFsYWggMSDigJMgMCwyNSA9IDAsNzUuDQoNCkF0dXJhbiBrb21wbGVtZW50IG1lbXBlcm11ZGFoIHBlcmhpdHVuZ2FuIHRlcnV0YW1hIGtldGlrYSBsZWJpaCBtdWRhaCBtZW5naGl0dW5nDQprZWJhbGlrYW4gZGFyaSBrZWphZGlhbiB1dGFtYS4gU2VjYXJhIGtlc2VsdXJ1aGFuLCBrb25zZXAgcHJvYmFiaWxpdGFzIGRhcGF0IGRpcGFoYW1pDQptZWxhbHVpIHJ1bXVzIGRhc2FyLCBydWFuZyBzYW1wZWwsIGtlamFkaWFuIGluZGVwZW5kZW4sIGRhbiBhdHVyYW4ga29tcGxlbWVudC4NCg0KKipSZWZlcmVuY2VzKioNClsxXSBLaGFuIEFjYWRlbXkuIChuLmQuKS4gUHJvYmFiaWxpdHkgYW5kIHN0YXRpc3RpY3MuICANCiAgICBodHRwczovL3d3dy5raGFuYWNhZGVteS5vcmcvbWF0aC9zdGF0aXN0aWNzLXByb2JhYmlsaXR5DQoNClsyXSBLZW1kaWtidWQuICgyMDE3KS4gQnVrdSBNYXRlbWF0aWthIFNNUC9NVHMgS2VsYXMgVklJSSAoS3VyaWt1bHVtIDIwMTMgUmV2aXNpKS4gIA0KICAgIEJhYiBQZWx1YW5nLg0KDQpbM10gQmxpdHpzdGVpbiwgSi4gSy4sICYgSHdhbmcsIEouICgyMDE0KS4gSW50cm9kdWN0aW9uIHRvIFByb2JhYmlsaXR5LiBDaGFwbWFuICYgSGFsbC9DUkMuICANCiAgICBodHRwczovL3Byb2plY3RzLmlxLmhhcnZhcmQuZWR1L3N0YXQxMTANCg0KWzRdIFJvc3MsIFMuICgyMDEwKS4gQSBGaXJzdCBDb3Vyc2UgaW4gUHJvYmFiaWxpdHkuIFBlYXJzb24uDQoNCls1XSBTaW1wbGVMZWFybmluZ1Byby4gKG4uZC4pLiBCYXNpYyBwcm9iYWJpbGl0eSBsZXNzb25zLiAgDQogICAgaHR0cHM6Ly9zaW1wbGVsZWFybmluZ3Byby5jb20NCg0KDQojIDIuIEluZGVwZW5kZW50IGFuZCBEZXBlbmRlbnQgRXZlbnRzDQoNCjxwIGFsaWduPSJjZW50ZXIiPg0KPGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1MUy1faWhES3IyTSIgdGFyZ2V0PSJfYmxhbmsiPg0KPGltZyBzcmM9Imh0dHBzOi8vaW1nLnlvdXR1YmUuY29tL3ZpL0xTLV9paERLcjJNLzAuanBnIiB3aWR0aD0iNjAlIj4NCjwvYT4NCjwvcD4gDQoNCjxwIGFsaWduPSJjZW50ZXIiPjxpPktsaWsgZ2FtYmFyIHVudHVrIG1lbm9udG9uIHZpZGVvPC9pPjwvcD4NCg0KKipSYW5na3VtYW4gUGVuamVsYXNhbioqDQpEYWxhbSBwcm9iYWJpbGl0YXMsIHRlcmRhcGF0IGR1YSBqZW5pcyBrZWphZGlhbiBwZW50aW5nIHlhbmcgcGVybHUgZGlwYWhhbWksIHlhaXR1IGFjYXJhIGluZGVwZW5kZW4gZGFuIGFjYXJhIGJlcmdhbnR1bmdhbi4gS2VkdWFueWEgYmVyaHVidW5nYW4gZGVuZ2FuIGJhZ2FpbWFuYSBzdWF0dSBwZXJpc3Rpd2EgbWVtZW5nYXJ1aGkgcGVyaXN0aXdhIGxhaW4gZGFsYW0ga29udGVrcyBrZW11bmdraW5hbi4gQWNhcmEgaW5kZXBlbmRlbiBhZGFsYWgga2VqYWRpYW4ta2VqYWRpYW4geWFuZyBoYXNpbG55YSB0aWRhayBzYWxpbmcgbWVtZW5nYXJ1aGkuIEFydGlueWEsIGFwYSB5YW5nIHRlcmphZGkgcGFkYSBwZXJpc3Rpd2EgcGVydGFtYSBzYW1hIHNla2FsaSB0aWRhayBtZW5ndWJhaCBwZWx1YW5nIGhhc2lsIGRhcmkgcGVyaXN0aXdhIGtlZHVhLiBDb250b2ggeWFuZyBwYWxpbmcgc2VkZXJoYW5hIGFkYWxhaCBrZXRpa2Ega2l0YSBtZW5nZ3VsdW5nIGRhZHUgZGFuIG1lbGVtcGFyIGtvaW4gc2VjYXJhIGJlcnNhbWFhbi4gTWVuZ2d1bHVuZyBhbmdrYSB0ZXJ0ZW50dSBwYWRhIGRhZHUgdGlkYWsgbWVtZW5nYXJ1aGkgcGVsdWFuZyBrb2luIGphdHVoIHBhZGEgc2lzaSBrZXBhbGEgYXRhdSBla29yLiBQZWx1YW5nIG1lbmRhcGF0a2FuIGFuZ2thIDUgcGFkYSBkYWR1IHRldGFwIDEvNiwgZGFuIHBlbHVhbmcgbWVuZGFwYXRrYW4ga2VwYWxhIHBhZGEga29pbiB0ZXRhcCAxLzIsIHRhbnBhIHNhbGluZyBtZW5ndWJhaC4gVW50dWsgbWVuZ2hpdHVuZyBwZWx1YW5nIGR1YSBhY2FyYSBpbmRlcGVuZGVuIHRlcmphZGkgc2VjYXJhIGJlcnNhbWFhbiwga2l0YSBtZW5nZ3VuYWthbiBydW11cyBQKEEgZGFuIEIpID0gUChBKSDDlyBQKEIpLiBNaXNhbG55YSBwZWx1YW5nIG1lbmdndWx1bmcgYW5na2EgNSBkYW4gbWVuZGFwYXRrYW4ga2VwYWxhIHNlY2FyYSBiZXJzYW1hYW4gYWRhbGFoIDEvNiDDlyAxLzIgPSAxLzEyLg0KDQpCZXJiZWRhIGRlbmdhbiBpdHUsIGFjYXJhIGJlcmdhbnR1bmdhbiBhZGFsYWgga2VqYWRpYW4ta2VqYWRpYW4geWFuZyBoYXNpbG55YSBzYWxpbmcgbWVtZW5nYXJ1aGkuIEFydGlueWEsIGhhc2lsIGRhcmkgcGVyaXN0aXdhIHBlcnRhbWEgYWthbiBtZW5ndWJhaCBwZWx1YW5nIGRhcmkgcGVyaXN0aXdhIGtlZHVhLiBTaXR1YXNpIHNlcGVydGkgaW5pIHNlcmluZyBtdW5jdWwga2V0aWthIGtpdGEgbWVuZ2FtYmlsIGJlbmRhIHRhbnBhIHBlbmdnYW50aWFuLCBzZWhpbmdnYSBqdW1sYWggdG90YWwgcGlsaWhhbiBiZXJ1YmFoIHNldGVsYWggc2F0dSBpdGVtIGRpYW1iaWwuIE1pc2FsbnlhLCB0ZXJkYXBhdCBzZWJ1YWgga290YWsgYmVyaXNpIDEwIGtlbGVyZW5nLCBkZW5nYW4gNyBiZXJ3YXJuYSBtZXJhaCBkYW4gMyBiZXJ3YXJuYSBiaXJ1LiBQZWx1YW5nIG1lbmdhbWJpbCBrZWxlcmVuZyBtZXJhaCBwYWRhIHBlbmdhbWJpbGFuIHBlcnRhbWEgYWRhbGFoIDcvMTAuIFRldGFwaSBqaWthIGtpdGEgbWVuZ2FtYmlsIHNhdHUga2VsZXJlbmcgbWVyYWggZGFuIHRpZGFrIG1lbmdlbWJhbGlrYW5ueWEga2UgZGFsYW0ga290YWssIGp1bWxhaCBrZWxlcmVuZyBiZXJ1YmFoIG1lbmphZGkgOSwgZGFuIGp1bWxhaCBrZWxlcmVuZyBtZXJhaCBiZXJ1YmFoIG1lbmphZGkgNi4gS2luaSBwZWx1YW5nIG1lbmdhbWJpbCBrZWxlcmVuZyBtZXJhaCBwYWRhIHBlbmdhbWJpbGFuIGJlcmlrdXRueWEgbWVuamFkaSA2LzkuIEthcmVuYSBwZWx1YW5nIGJlcnViYWggc2V0ZWxhaCBwZW5nYW1iaWxhbiBwZXJ0YW1hLCBrZWphZGlhbiBpbmkgZGlzZWJ1dCBhY2FyYSBiZXJnYW50dW5nYW4uIFVudHVrIG1lbmdoaXR1bmcgcGVsdWFuZyBkdWEgYWNhcmEgYmVyZ2FudHVuZ2FuIHRlcmphZGkgc2VjYXJhIGJlcnR1cnV0LXR1cnV0LCBkaWd1bmFrYW4gcnVtdXMgUChBIGRhbiBCKSA9IFAoQSkgw5cgUChCIHNldGVsYWggQSB0ZXJqYWRpKS4gTWlzYWxueWEgcGVsdWFuZyBtZW5nYW1iaWwgZHVhIGtlbGVyZW5nIG1lcmFoIGJlcnR1cnV0LXR1cnV0IHRhbnBhIHBlbmdnYW50aWFuIGFkYWxhaCA3LzEwIMOXIDYvOSA9IDcvMTUuDQoNCktvbnNlcCBhY2FyYSBiZXJnYW50dW5nYW4ganVnYSBiZXJsYWt1IHVudHVrIGl0ZW0gYmVyd2FybmEgbGFpbi4gSmlrYSBraXRhIGluZ2luIG1lbmdoaXR1bmcgcGVsdWFuZyBtZW5nYW1iaWwga2VsZXJlbmcgYmlydSBsYWx1IGJpcnUgbGFnaSB0YW5wYSBwZW5nZ2FudGlhbiwgcGVsdWFuZyBwZXJ0YW1hIGFkYWxhaCAzLzEwLCBkYW4gc2V0ZWxhaCBzYXR1IGtlbGVyZW5nIGJpcnUgZGlhbWJpbCwgcGVsdWFuZyBiZXJpa3V0bnlhIG1lbmphZGkgMi85LiBLYXJlbmEgcGVsdWFuZyBrZWR1YSBiZXJ1YmFoIHNldGVsYWggcGVyaXN0aXdhIHBlcnRhbWEgdGVyamFkaSwgaW5pIG1lbnVuanVra2FuIGJhaHdhIHByb3Nlc255YSBiZXJzaWZhdCBiZXJnYW50dW5nYW4uIEluaWxhaCBrYXJha3RlciB1dGFtYSBhY2FyYSBiZXJnYW50dW5nYW46IHBlcmlzdGl3YSBwZXJ0YW1hIG1lbmd1YmFoIHBlbHVhbmcgcGVyaXN0aXdhIHNlbGFuanV0bnlhLg0KDQpTZWNhcmEga2VzZWx1cnVoYW4sIHBlcmJlZGFhbiBtZW5kYXNhciBhbnRhcmEga2VkdWEga29uc2VwIGluaSBkYXBhdCBkaWxpaGF0IGRhcmkgYXBha2FoIHN1YXR1IHBlcmlzdGl3YSBtZW5ndWJhaCBwZWx1YW5nIHBlcmlzdGl3YSBsYWluLiBQYWRhIGFjYXJhIGluZGVwZW5kZW4sIHBlcmlzdGl3YSB0aWRhayBzYWxpbmcgbWVtZW5nYXJ1aGksIHNlaGluZ2dhIHJ1bXVzIHlhbmcgZGlndW5ha2FuIGN1a3VwIHBlcmthbGlhbiBsYW5nc3VuZyBhbnRhcmEgcGVsdWFuZyBtYXNpbmctbWFzaW5nIGtlamFkaWFuLiBTZW1lbnRhcmEgcGFkYSBhY2FyYSBiZXJnYW50dW5nYW4sIHBlbHVhbmcgYmVydWJhaCBzZXRlbGFoIHBlcmlzdGl3YSB0ZXJqYWRpLCBzZWhpbmdnYSBwZWx1YW5nIHBhZGEgbGFuZ2thaCBiZXJpa3V0bnlhIGhhcnVzIGRpaGl0dW5nIHVsYW5nIGJlcmRhc2Fya2FuIGtvbmRpc2kgYmFydS4gUGVtYWhhbWFuIHRlbnRhbmcgYWNhcmEgaW5kZXBlbmRlbiBkYW4gYmVyZ2FudHVuZ2FuIHNhbmdhdCBwZW50aW5nIGRhbGFtIHN0YXRpc3RpayBrYXJlbmEgbWVtYmFudHUga2l0YSBtZW5lbnR1a2FuIHN0cmF0ZWdpIHBlcmhpdHVuZ2FuIHlhbmcgdGVwYXQsIHRlcnV0YW1hIGRhbGFtIGthc3VzIHlhbmcgbWVsaWJhdGthbiBwZW5nYW1iaWxhbiBzYW1wZWwsIHBlcm1haW5hbiBwZWx1YW5nLCBkYW4gcGVuZ2hpdHVuZ2FuIGtvbWJpbmFzaSBrZWphZGlhbiBiZXJ0dXJ1dC10dXJ1dC4NCg0KKipSZWZlcmVuY2VzKioNClsxXSBNb250Z29tZXJ5LCBELiBDLiwgJiBSdW5nZXIsIEcuIEMuICgyMDE0KS4gQXBwbGllZCBTdGF0aXN0aWNzIGFuZCBQcm9iYWJpbGl0eSBmb3IgRW5naW5lZXJzICg2dGggZWQuKS4gV2lsZXkuDQoNClsyXSBCbGl0enN0ZWluLCBKLiwgJiBId2FuZywgSi4gKDIwMTkpLiBJbnRyb2R1Y3Rpb24gdG8gUHJvYmFiaWxpdHkuIENoYXBtYW4gJiBIYWxsL0NSQy4NCg0KWzNdIFN1bGxpdmFuLCBNLiAoMjAxOSkuIFN0YXRpc3RpY3M6IEluZm9ybWVkIERlY2lzaW9ucyBVc2luZyBEYXRhICg1dGggZWQuKS4gUGVhcnNvbi4NCg0KWzRdIFJvc3MsIFMuICgyMDE0KS4gQSBGaXJzdCBDb3Vyc2UgaW4gUHJvYmFiaWxpdHkgKDl0aCBlZC4pLiBQZWFyc29uLg0KDQpbNV0gU2ltcGxlTGVhcm5pbmdQcm8uIChuLmQuKS4gQmFzaWMgcHJvYmFiaWxpdHkgbGVzc29ucy4gaHR0cHM6Ly9zaW1wbGVsZWFybmluZ3Byby5jb20NCg0KDQojIDMuIFVuaW9uIG9mIEV2ZW50cw0KDQo8cCBhbGlnbj0iY2VudGVyIj4NCjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9dnFLQWJoQ3FTVGMiIHRhcmdldD0iX2JsYW5rIj4NCjxpbWcgc3JjPSJodHRwczovL2ltZy55b3V0dWJlLmNvbS92aS92cUtBYmhDcVNUYy8wLmpwZyIgd2lkdGg9IjYwJSI+DQo8L2E+DQo8L3A+DQoNCjxwIGFsaWduPSJjZW50ZXIiPjxpPktsaWsgZ2FtYmFyIHVudHVrIG1lbm9udG9uIHZpZGVvPC9pPjwvcD4NCg0KKipSYW5na3VtYW4gUGVuamVsYXNhbioqDQpSdWFuZyBzYW1wZWwgYWRhbGFoIGtlc2VsdXJ1aGFuIGt1bXB1bGFuIGhhc2lsIHlhbmcgbXVuZ2tpbiB0ZXJqYWRpIGRhbGFtIHNlYnVhaCBwZXJjb2JhYW4gc3RhdGlzdGlrIGRhbiBtZW5qYWRpIGRhc2FyIGRhbGFtIG1lbWFoYW1pIHByb2JhYmlsaXRhcy4gS2V0aWthIGtpdGEgbWVuZ2d1bHVuZyBzYXR1IGRhZHUsIGFkYSBlbmFtIGtlbXVuZ2tpbmFuIGhhc2lsIGRhcmkgYW5na2EgMSBzYW1wYWkgNi4gTmFtdW4sIGtldGlrYSBtZW5nZ3VsdW5nIGR1YSBkYWR1LCBqdW1sYWgga2VtdW5na2luYW4gYmVydGFtYmFoIG1lbmphZGkgMzYga2FyZW5hIHNldGlhcCBkYWR1IG1lbWlsaWtpIGVuYW0gYW5na2EgeWFuZyBkYXBhdCBiZXJwYXNhbmdhbiBzYXR1IHNhbWEgbGFpbi4gU2VtdWEga29tYmluYXNpIGluaWxhaCB5YW5nIG1lbWJlbnR1ayBydWFuZyBzYW1wZWwgZHVhIGRhZHUuIERlbmdhbiBtZW1haGFtaSBydWFuZyBzYW1wZWwsIGtpdGEgZGFwYXQgbWVuZW50dWthbiBwcm9iYWJpbGl0YXMgc3VhdHUga2VqYWRpYW4gZGVuZ2FuIG1lbWJhZ2kganVtbGFoIGhhc2lsIHlhbmcgbWVtZW51aGkga2VqYWRpYW4gdGVyc2VidXQgZGVuZ2FuIHRvdGFsIHNlbHVydWgga2VtdW5na2luYW4gaGFzaWwuDQoNClByb2JhYmlsaXRhcyBzZWRlcmhhbmEgZGlndW5ha2FuIHVudHVrIG1lbmdoaXR1bmcgcGVsdWFuZyBzYXR1IGtlamFkaWFuIHRlcnRlbnR1LCBtaXNhbG55YSBwZWx1YW5nIG11bmN1bG55YSBkdWEgYW5na2EgNCBhZGFsYWggMS8zNiBrYXJlbmEgaGFueWEgYWRhIHNhdHUga29tYmluYXNpICg0LDQpIGRhcmkgMzYgaGFzaWwgeWFuZyBtdW5na2luLiBDb250b2ggbGFpbm55YSwgcGVsdWFuZyBtdW5jdWwgZHVhIGFuZ2thIHlhbmcgc2FtYSBhZGFsYWggOS8zNiwgc2VkYW5na2FuIHBlbHVhbmcgbXVuY3VsbnlhIHNldGlkYWtueWEgc2F0dSBhbmdrYSAyIGFkYWxhaCAxMS8zNi4gS2V0aWthIGR1YSBrZWphZGlhbiBpbmdpbiBkaWxpaGF0IHNlY2FyYSBiZXJzYW1hYW4sIGtpdGEgbWVuZ2d1bmFrYW4ga29uc2VwIGludGVyc2Vrc2ksIHlhaXR1IGFyZWEgZGkgbWFuYSBoYXNpbCBzdWF0dSBwZXJjb2JhYW4gYmVyYWRhIGRhbGFtIGtlZHVhIGtlamFkaWFuIHNlY2FyYSBzZWthbGlndXMuIE1pc2FsbnlhLCBoYXNpbCB5YW5nIG1lbWVudWhpIGtlamFkaWFuIOKAnGR1YSBhbmdrYSB5YW5nIHNhbWHigJ0gZGFuIOKAnHNldGlkYWtueWEgc2F0dSBhbmdrYSAy4oCdIGFkYWxhaCA1IGRhcmkgMzYgaGFzaWwuIEtlc2FsYWhhbiB5YW5nIHNlcmluZyB0ZXJqYWRpIGRhbGFtIGtvbnRla3MgaW5pIGFkYWxhaCBtZW5nYWxpa2FuIHByb2JhYmlsaXRhcyBkdWEga2VqYWRpYW4gcGFkYWhhbCBrZWphZGlhbiB0ZXJzZWJ1dCB0aWRhayBpbmRlcGVuZGVuLCBzZWhpbmdnYSBjYXJhIHlhbmcgdGVwYXQgdGV0YXAgZGVuZ2FuIG1lbWVyaWtzYSBydWFuZyBzYW1wZWwgZGFuIG1lbmNhcmkgaGFzaWwgeWFuZyBiZW5hci1iZW5hciBiZXJhZGEgZGFsYW0gcGVycG90b25nYW4ga2VkdWEga2VqYWRpYW4uDQoNClVudHVrIGtlamFkaWFuIGdhYnVuZ2FuIGF0YXUgdW5pb24geWFuZyBkaXRhbmRhaSBkZW5nYW4ga2F0YSDigJxhdGF14oCdLCBraXRhIG1lbmdndW5ha2FuIHJ1bXVzIFAoQSDiiKogQikgPSBQKEEpICsgUChCKSDiiJIgUChBIOKIqSBCKS4gUGVuZ3VyYW5nYW4gaW50ZXJzZWtzaSBpbmkgcGVudGluZyBhZ2FyIGhhc2lsIHlhbmcgYmVyYWRhIGRpIGtlZHVhIGtlamFkaWFuIHRpZGFrIHRlcmhpdHVuZyBkdWEga2FsaS4gQ29udG9obnlhLCBwZWx1YW5nIG1lbmRhcGF0a2FuIGR1YSBhbmdrYSB5YW5nIHNhbWEgYXRhdSBzZXRpZGFrbnlhIHNhdHUgYW5na2EgMiBhZGFsYWggOS8zNiArIDExLzM2IOKIkiA1LzM2ID0gMTUvMzYgYXRhdSBzZWtpdGFyIDAsNDE2Ny4gS29uc2VwIGluaSBqdWdhIGRhcGF0IHRlcmxpaGF0IG1lbGFsdWkgZGlhZ3JhbSBWZW5uLCBkaSBtYW5hIHJ1YW5nIHNhbXBlbCBkaWdhbWJhcmthbiBzZWJhZ2FpIHNlYnVhaCBhcmVhIGJlc2FyLCBkYW4gZHVhIGtlamFkaWFuIGRpZ2FtYmFya2FuIHNlYmFnYWkgZHVhIGxpbmdrYXJhbiB5YW5nIHNhbGluZyB0dW1wYW5nIHRpbmRpaC4gQXJlYSB0dW1wYW5nIHRpbmRpaCB0ZXJzZWJ1dCBtZW51bmp1a2thbiBpbnRlcnNla3NpLCB5YW5nIGhhcnVzIGRpa3VyYW5naSBkYWxhbSBwZXJoaXR1bmdhbiB1bmlvbi4gTWVsYWx1aSBwZW5kZWthdGFuIGluaSwga2l0YSBkYXBhdCBtZW1haGFtaSBiYWh3YSBwZXJoaXR1bmdhbiBwcm9iYWJpbGl0YXMgdGlkYWsgaGFueWEgbWVuZ2FuZGFsa2FuIGFuZ2thLCB0ZXRhcGkganVnYSBtZW1lcmx1a2FuIHBlbWFoYW1hbiB2aXN1YWwgdGVyaGFkYXAgc3RydWt0dXIgcnVhbmcgc2FtcGVsLg0KDQoqKlJlZmVyZW5jZXMqKg0KWzFdIFNpbXBsZSBMZWFybmluZyBQcm8uIChuLmQuKS4gUHJvYmFiaWxpdHk6IFVuaW9uIG9mIEV2ZW50cyDigJMgZGFyaSBpc2kgcGVuamVsYXNhbiB2aWRlbyBwZW1iZWxhamFyYW4gcHJvYmFiaWxpdGFzLg0KDQpbMl0gU2lyZWdhciwgQi4gKG4uZC4pLiBJbnRyb2R1Y3Rpb24gdG8gU3RhdGlzdGljcy4gZHNjaWVuY2VsYWJzLiBodHRwczovL2Jvb2tkb3duLm9yZy9kc2NpZW5jZWxhYnMvaW50cm9fc3RhdGlzdGljcy9QcmVmYWNlLmh0bWwNCg0KWzNdIFRyaW9sYSwgTS4gRi4gKDIwMTgpLiBFbGVtZW50YXJ5IFN0YXRpc3RpY3MuIFBlYXJzb24gRWR1Y2F0aW9uIOKAlCBrb25zZXAgcnVhbmcgc2FtcGVsLCBpbnRlcnNla3NpLCBkYW4gdW5pb24gcGFkYSBwcm9iYWJpbGl0YXMuDQoNCg0KIyA0LiBFeGNsdXNpdmUgYW5kIEV4aGF1c3RpdmUNCg0KPHAgYWxpZ249ImNlbnRlciI+DQo8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWY3YWdUdjluQTVrIiB0YXJnZXQ9Il9ibGFuayI+DQo8aW1nIHNyYz0iaHR0cHM6Ly9pbWcueW91dHViZS5jb20vdmkvZjdhZ1R2OW5BNWsvMC5qcGciIHdpZHRoPSI2MCUiPg0KPC9hPg0KPC9wPg0KDQo8cCBhbGlnbj0iY2VudGVyIj48aT5LbGlrIGdhbWJhciB1bnR1ayBtZW5vbnRvbiB2aWRlbzwvaT48L3A+DQoNCioqUmFuZ2t1bWFuIFBlbmplbGFzYW4qKg0KS2VqYWRpYW4gc2FsaW5nIGVrc2tsdXNpZiBkYW4ga2VqYWRpYW4gc2FsaW5nIG1lbGVuZ2thcGkgYWRhbGFoIGR1YSBrb25zZXAgcGVudGluZyBkYWxhbSBwcm9iYWJpbGl0YXMgeWFuZyBtZW5qZWxhc2thbiBodWJ1bmdhbiBhbnRhcmEgZHVhIGtlamFkaWFuIGRpIGRhbGFtIHNhdHUgcnVhbmcgc2FtcGVsLiBLZWphZGlhbiBkaXNlYnV0IHNhbGluZyBla3NrbHVzaWYgYXBhYmlsYSBrZWR1YW55YSB0aWRhayBtZW1pbGlraSBoYXNpbCB5YW5nIHNhbWEgc2VoaW5nZ2EgdGlkYWsgZGFwYXQgdGVyamFkaSBzZWNhcmEgYmVyc2FtYWFuOyBtaXNhbG55YSBwYWRhIGxlbXBhciBkdWEgZGFkdSwga2VqYWRpYW4gQSBiZXJ1cGEgbXVuY3VsIG1pbmltYWwgc2F0dSBhbmdrYSA1IGRhbiBrZWphZGlhbiBCIGJlcnVwYSBqdW1sYWggZGFkdSBrdXJhbmcgZGFyaSA0IHRpZGFrIG1lbWlsaWtpIGhhc2lsIHlhbmcgdHVtcGFuZyB0aW5kaWgsIHNlaGluZ2dhIHBlbHVhbmcgQSBkYW4gQiB0ZXJqYWRpIGJlcnNhbWFhbiBhZGFsYWggMCB5YW5nIG1lbnVuanVra2FuIHNpZmF0IGVrc2tsdXNpZi4gRGkgc2lzaSBsYWluLCBrZWphZGlhbiBkaXNlYnV0IHNhbGluZyBtZWxlbmdrYXBpIChleGhhdXN0aXZlKSBhcGFiaWxhIGdhYnVuZ2FuIGtlZHVhbnlhIG1lbmNha3VwIHNlbHVydWgga2VtdW5na2luYW4gaGFzaWwgZGkgZGFsYW0gcnVhbmcgc2FtcGVsLCBzZXBlcnRpIGtlamFkaWFuIG1pbmltYWwgc2F0dSBhbmdrYSA2IGRhbiBrZWphZGlhbiBqdW1sYWggZGFkdSBrdXJhbmcgZGFyaSAxMSB5YW5nIGppa2EgZGlnYWJ1bmdrYW4gbWVudXR1cGkgc2VtdWEgMzYga2VtdW5na2luYW4gaGFzaWwsIHNlaGluZ2dhIHBlbHVhbmcgQSDiiKogQiA9IDEgeWFuZyBtZW1idWt0aWthbiBiYWh3YSBrZWR1YW55YSBtZWxlbmdrYXBpIHNhdHUgc2FtYSBsYWluLiBNZW5hcmlrbnlhLCBzdWF0dSBwYXNhbmdhbiBrZWphZGlhbiBiaXNhIGJlcnNpZmF0IGVrc2tsdXNpZiBzZWthbGlndXMgc2FsaW5nIG1lbGVuZ2thcGksIGNvbnRvaG55YSBrZWphZGlhbiBqdW1sYWggZGFkdSBnZW5hcCBkYW4ganVtbGFoIGRhZHUgZ2FuamlsOyBrZWR1YW55YSB0aWRhayBwZXJuYWggdGVyamFkaSBiZXJzYW1hYW4ga2FyZW5hIHN1YXR1IGp1bWxhaCB0aWRhayBtdW5na2luIHNla2FsaWd1cyBnZW5hcCBkYW4gZ2FuamlsLCBuYW11biBrZXRpa2EgZGlnYWJ1bmdrYW4sIGtlZHVhbnlhIG1lbmNha3VwIHNlbHVydWggcnVhbmcgc2FtcGVsIHNlaGluZ2dhIHBlbHVhbmcgZ2FidW5nYW5ueWEgc2FtYSBkZW5nYW4gMS4gRGFyaSBzaW5pIGRhcGF0IGRpc2ltcHVsa2FuIGJhaHdhIGtlamFkaWFuIHNhbGluZyBla3NrbHVzaWYgbWVuZWthbmthbiBrZXRpZGFrbXVuZ2tpbmFuIHRlcmphZGkgYmVyc2FtYSwgc2VkYW5na2FuIGtlamFkaWFuIHNhbGluZyBtZWxlbmdrYXBpIG1lbmVrYW5rYW4ga2VsZW5na2FwYW4gY2FrdXBhbiBzZWx1cnVoIGhhc2lsLCBkYW4ga2VkdWEga29uc2VwIGluaSBkYXBhdCB0ZXJqYWRpIGJlcnNhbWFhbiBkYWxhbSBrb25kaXNpIHRlcnRlbnR1Lg0KDQoqKlJlZmVyZW5jZXMqKg0KWzFdIFNpbXBsZUxlYXJuaW5nUHJvLiAobi5kLikuIEJhc2ljIHByb2JhYmlsaXR5IGxlc3NvbnMuDQpodHRwczovL3NpbXBsZWxlYXJuaW5ncHJvLmNvbQ0KDQpbMl0gUm9zcywgUy4gTS4gKDIwMTQpLiBJbnRyb2R1Y3Rpb24gdG8gUHJvYmFiaWxpdHkgYW5kIFN0YXRpc3RpY3MgZm9yIEVuZ2luZWVycyBhbmQgU2NpZW50aXN0cyAoNXRoIGVkLikuIEFjYWRlbWljIFByZXNzLg0KDQpbM10gV2FscG9sZSwgUi4gRS4sIE15ZXJzLCBSLiBILiwgTXllcnMsIFMuIEwuLCAmIFllLCBLLiAoMjAxMikuIFByb2JhYmlsaXR5IGFuZCBTdGF0aXN0aWNzIGZvciBFbmdpbmVlcnMgYW5kIFNjaWVudGlzdHMgKDl0aCBlZC4pLiBQZWFyc29uIEVkdWNhdGlvbi4NCg0KWzRdIExldmluZSwgRC4gTS4sIFN0ZXBoYW4sIEQuIEYuLCAmIFN6YWJhdCwgSy4gQS4gKDIwMjApLiBTdGF0aXN0aWNzIGZvciBNYW5hZ2VycyBVc2luZyBNaWNyb3NvZnQgRXhjZWwgKDl0aCBlZC4pLiBQZWFyc29uLg0KDQpbNV0gRnJlZWRtYW4sIEQuLCBQaXNhbmksIFIuLCAmIFB1cnZlcywgUi4gKDIwMDcpLiBTdGF0aXN0aWNzICg0dGggZWQuKS4gVy4gVy4gTm9ydG9uICYgQ29tcGFueS4NCg0KIyA1LiBCaW5vbWlhbCBFeHBlcmltZW50IGFuZCB0aGUgRm9ybXVsYQ0KDQo8cCBhbGlnbj0iY2VudGVyIj4NCjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9blJ1UUF0YWpKWWsiIHRhcmdldD0iX2JsYW5rIj4NCjxpbWcgc3JjPSJodHRwczovL2ltZy55b3V0dWJlLmNvbS92aS9uUnVRQXRhakpZay8wLmpwZyIgd2lkdGg9IjYwJSI+DQo8L2E+DQo8L3A+DQoNCjxwIGFsaWduPSJjZW50ZXIiPjxpPktsaWsgZ2FtYmFyIHVudHVrIG1lbm9udG9uIHZpZGVvPC9pPjwvcD4NCg0KKipSYW5na3VtYW4gUGVuamVsYXNhbioqDQpCaW5vbWlhbCBhZGFsYWgga29uc2VwIGRhc2FyIGRhbGFtIHByb2JhYmlsaXRhcyB5YW5nIGRpZ3VuYWthbiBrZXRpa2Egc3VhdHUgcGVyY29iYWFuIG1lbWlsaWtpIGR1YSBoYXNpbCwgeWFpdHUgc3Vrc2VzIGF0YXUgZ2FnYWwsIGRhbiBkaWxha3VrYW4gYmVydWxhbmcgZGVuZ2FuIGp1bWxhaCBwZXJjb2JhYW4geWFuZyB0ZXRhcC4gU3VhdHUgcGVyY29iYWFuIGRpc2VidXQgcGVyY29iYWFuIGJpbm9taWFsIGppa2EgbWVtZW51aGkgZW1wYXQgc3lhcmF0IHBlbnRpbmc6IGp1bWxhaCBwZXJjb2JhYW4gdGV0YXAsIHNldGlhcCBwZXJjb2JhYW4gaGFueWEgbWVtaWxpa2kgZHVhIGtlbXVuZ2tpbmFuIGhhc2lsLCBwZWx1YW5nIHN1a3NlcyBzZWxhbHUga29uc3RhbiBwYWRhIHNldGlhcCBwZXJjb2JhYW4sIGRhbiBzZXRpYXAgcGVyY29iYWFuIGJlcnNpZmF0IGluZGVwZW5kZW4gc2F0dSBzYW1hIGxhaW4uIENvbnRvaG55YSwga2V0aWthIGtvaW4gZGlsZW1wYXIgdGlnYSBrYWxpLCBraXRhIGluZ2luIG1lbmdldGFodWkgcGVsdWFuZyBtdW5jdWxueWEgdGVwYXQgc2F0dSBrZXBhbGEuIEFkYSB0aWdhIHVydXRhbiBiZXJiZWRhIHlhbmcgZGFwYXQgbWVuZ2hhc2lsa2FuIHNhdHUga2VwYWxhLCB5YWl0dSBLRUUsIEVLRSwgZGFuIEVFSzsgbWFzaW5nLW1hc2luZyBtZW1pbGlraSBwcm9iYWJpbGl0YXMgMCwxMjUgc2VoaW5nZ2EgdG90YWxueWEgMCwzNzUuIFBlcmNvYmFhbiBpbmkgbWVtZW51aGkgc2VsdXJ1aCBzeWFyYXQgYmlub21pYWw6IGp1bWxhaCBwZXJjb2JhYW4gdGV0YXAgKDMga2FsaSksIGR1YSBoYXNpbCAoa2VwYWxhIGF0YXUgZWtvciksIHBlbHVhbmcga2VwYWxhIHNlbGFsdSAwLDUsIGRhbiBzZXRpYXAgbGVtcGFyYW4gaW5kZXBlbmRlbi4gQ29udG9oIGxhaW4gYWRhbGFoIG1lbmdhbWJpbCBsaW1hIGtlbGVyZW5nIGRhcmkga290YWsgYmVyaXNpIHNlcHVsdWgga2VsZXJlbmcgZGVuZ2FuIHBlbmdnYW50aWFuLCBkaSBtYW5hIGR1YSBkaSBhbnRhcmFueWEgYmVyd2FybmEgaGlqYXUuIFBlbHVhbmcgc3Vrc2VzLCB5YWl0dSBtZW5nYW1iaWwga2VsZXJlbmcgaGlqYXUsIGFkYWxhaCAyLzEwID0gMCwyIGRhbiBwZWx1YW5nIGdhZ2FsIGFkYWxhaCAwLDguIEthcmVuYSBkaWxha3VrYW4gZGVuZ2FuIHBlbmdnYW50aWFuLCBwZWx1YW5nbnlhIHRldGFwIGtvbnN0YW4gZGFuIHBlcmNvYmFhbiBpbmRlcGVuZGVuLiBVbnR1ayBtZW5kYXBhdGthbiB0ZXBhdCBkdWEga2VsZXJlbmcgaGlqYXUsIGFkYSBzZXB1bHVoIHN1c3VuYW4ga2ViZXJoYXNpbGFuIGRhbiBrZWdhZ2FsYW4geWFuZyBtdW5na2luLCBkYW4gc2V0aWFwIHN1c3VuYW4gbWVtaWxpa2kgcHJvYmFiaWxpdGFzIDAsMDIwNDggc2VoaW5nZ2EgdG90YWxueWEgMCwyMDQ4LiBQZXJoaXR1bmdhbiBpbmkgYmlzYSBkaXBlcnNpbmdrYXQgbWVuZ2d1bmFrYW4gcnVtdXMgYmlub21pYWw6IA0KJCRQKGspID0gQyhuLGspICogcF5rICogKDEtcCleKG4taykkJA0KRGVuZ2FuIG1lbWFzdWtrYW4gbiA9IDUsIGsgPSAyLCBkYW4gcCA9IDAsMiBrZSBkYWxhbSBydW11cywgaGFzaWxueWEgdGV0YXAgMCwyMDQ4LiBSdW11cyBiaW5vbWlhbCBtZW5qYWRpIG1ldG9kZSBjZXBhdCBkYW4gZWZpc2llbiB1bnR1ayBtZW5naGl0dW5nIHBlbHVhbmcgZGFsYW0gcGVyY29iYWFuIGJpbm9taWFsIHNlbGFtYSBlbXBhdCBzeWFyYXQgYmlub21pYWwgZGlwZW51aGkuDQoNCioqUmVmZXJlbmNlcyoqDQpbMV0gU2ltcGxlTGVhcm5pbmdQcm8uIChuLmQuKS4gQmFzaWMgcHJvYmFiaWxpdHkgbGVzc29ucy4NCmh0dHBzOi8vc2ltcGxlbGVhcm5pbmdwcm8uY29tDQoNClsyXSBTaXJlZ2FyLCBCLiAobi5kLikuIEludHJvZHVjdGlvbiB0byBTdGF0aXN0aWNzLiBEU2NpZW5jZUxhYnMuRGlha3NlcyBkYXJpIGh0dHBzOi8vYm9va2Rvd24ub3JnL2RzY2llbmNlbGFicy9pbnRyb19zdGF0aXN0aWNzL1ByZWZhY2UuaHRtbA0KDQpbM10gS2hhbiBBY2FkZW15LiAobi5kLikuIEJpbm9taWFsIHByb2JhYmlsaXR5Lg0KaHR0cHM6Ly93d3cua2hhbmFjYWRlbXkub3JnL21hdGgvc3RhdGlzdGljcy1wcm9iYWJpbGl0eQ0KDQpbNF0gT3BlblN0YXguIChuLmQuKS4gSW50cm9kdWN0b3J5IFN0YXRpc3RpY3Mg4oCTIEJpbm9taWFsIERpc3RyaWJ1dGlvbi4NCmh0dHBzOi8vb3BlbnN0YXgub3JnL2Jvb2tzL2ludHJvZHVjdG9yeS1zdGF0aXN0aWNzL3BhZ2VzLzQtNC1iaW5vbWlhbC1kaXN0cmlidXRpb24NCg0KWzVdIExhcnNvbiwgUi4sICYgRmFyYmVyLCBCLiAoMjAxNSkuIEVsZW1lbnRhcnkgU3RhdGlzdGljcyAoOHRoIGVkLikuIFBlYXJzb24gRWR1Y2F0aW9uDQoNCg0KIyA2LiBCaW5vbWFsIERpc3RyaWJ1dGlvbg0KDQo8cCBhbGlnbj0iY2VudGVyIj4NCjxhIGhyZWY9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9WTItdlNXRm1neUkmdD0zcyIgdGFyZ2V0PSJfYmxhbmsiPg0KPGltZyBzcmM9Imh0dHBzOi8vaW1nLnlvdXR1YmUuY29tL3ZpL1kyLXZTV0ZtZ3lJLzAuanBnIiB3aWR0aD0iNjAlIj4NCjwvYT4NCjwvcD4NCg0KPHAgYWxpZ249ImNlbnRlciI+PGk+S2xpayBnYW1iYXIgdW50dWsgbWVub250b24gdmlkZW88L2k+PC9wPg0KDQoqKlJhbmdrdW1hbiBQZW5qZWxhc2FuKioNCkRpc3RyaWJ1c2kgYmlub21pYWwgYWRhbGFoIGRpc3RyaWJ1c2kgcHJvYmFiaWxpdGFzIHlhbmcgbWVudW5qdWtrYW4gcGVsdWFuZyB0ZXJqYWRpbnlhIHNlanVtbGFoIGtlYmVyaGFzaWxhbiB0ZXJ0ZW50dSBkYWxhbSBzZWp1bWxhaCBwZXJjb2JhYW4geWFuZyB0ZXRhcCwgZGkgbWFuYSBzZXRpYXAgcGVyY29iYWFuIGhhbnlhIG1lbWlsaWtpIGR1YSBoYXNpbCAoc3Vrc2VzIGF0YXUgZ2FnYWwpIGRhbiBwcm9iYWJpbGl0YXMgc3Vrc2VzIHRldGFwIGtvbnN0YW4uIERpc3RyaWJ1c2kgaW5pIG1lbmdndW5ha2FuIHJ1bXVzIGJpbm9taWFsIChQKGspPQ0KJCRcYmlub217bn17a31wXntrfSgxLXApXntuLWt9KSQkDQosIGRpIG1hbmEgKGspIGFkYWxhaCBqdW1sYWgga2ViZXJoYXNpbGFuLCAobikgYWRhbGFoIGp1bWxhaCBwZXJjb2JhYW4sIGRhbiAocCkgYWRhbGFoIHBlbHVhbmcga2ViZXJoYXNpbGFuLiBDb250b2ggc2VkZXJoYW5hIGFkYWxhaCBtZWxlbXBhciBrb2luIGR1YSBrYWxpLCBzZWhpbmdnYSBuaWxhaSAoaykgZGFwYXQgMCwgMSwgYXRhdSAyLCBkYW4gZGFyaSBwZXJoaXR1bmdhbiBydW11cyBiaW5vbWlhbCBkaXBlcm9sZWggcHJvYmFiaWxpdGFzIDAsMjU7IDAsNTA7IGRhbiAwLDI1LiBLZXRpa2EgZGl2aXN1YWxpc2FzaWthbiBkYWxhbSBkaWFncmFtIGJhdGFuZywgZGlzdHJpYnVzaSBtZW51bmp1a2thbiBwb2xhIHNpbWV0cmlzIGthcmVuYSBwZWx1YW5nIGtlYmVyaGFzaWxhbiAwLDUuIEppa2EganVtbGFoIHBlcmNvYmFhbiAobikgZGl0aW5na2F0a2FuLCBtaXNhbG55YSBtZW5qYWRpIDEwLCBkaXN0cmlidXNpIGJpbm9taWFsIG11bGFpIG1lbnllcnVwYWkgZGlzdHJpYnVzaSBub3JtYWwga2FyZW5hIGRhdGEgc2VtYWtpbiBtZW5nZWxvbXBvayBkaSBzZWtpdGFyIG5pbGFpIHJhdGEtcmF0YS4gUGFyYW1ldGVyIGRpc3RyaWJ1c2kgYmlub21pYWwgZGFwYXQgZGloaXR1bmcgbWVuZ2d1bmFrYW4gcnVtdXMgbWVhbiAkJChcbXUgPSBucCkkJCwgdmFyaWFucyAkJChucCgxLXApJCQsIGRhbiBzdGFuZGFyIGRldmlhc2kgJCQoXHNpZ21hID0gXHNxcnR7bnAoMS1wKX0pJCQuIA0KUGVydWJhaGFuIG5pbGFpIChwKSBtZW1lbmdhcnVoaSBiZW50dWsgZGlzdHJpYnVzaTogYXBhYmlsYSAocCA9IDAsNSksIGRpc3RyaWJ1c2kgYmVyc2lmYXQgc2ltZXRyaXM7IGppa2EgKHAgPCAwLDUpLCBkaXN0cmlidXNpIG1pcmluZyBrZSBrYW5hbjsgc2ViYWxpa255YSBqaWthIChwID4gMCw1KSwgZGlzdHJpYnVzaSBtaXJpbmcga2Uga2lyaS4gTmlsYWkgKHApIHlhbmcgamF1aCBkYXJpIDAsNSBtZW1idWF0IGRpc3RyaWJ1c2kgc2VtYWtpbiBtaXJpbmcga2FyZW5hIGp1bWxhaCBrZWJlcmhhc2lsYW4geWFuZyBtdW5na2luIGNlbmRlcnVuZyBzZWRpa2l0IGF0YXUgYmFueWFrLiBVbnR1ayBtZW1idWF0IGRpc3RyaWJ1c2kgYmlub21pYWwgbWVuZGVrYXRpIGRpc3RyaWJ1c2kgbm9ybWFsLCBkaXBlcmx1a2FuIG5pbGFpIChuKSB5YW5nIGN1a3VwIGJlc2FyLCBkYW4gcGVuZGVrYXRhbiBub3JtYWwgZGFwYXQgZGlndW5ha2FuIGFwYWJpbGEgZHVhIHN5YXJhdCB0ZXJwZW51aGkgeWFpdHUgJCQobnAgXGdlcSAxMCkkJCBkYW4gJCQobigxLXApIFxnZXEgMTApJCQuIFNlY2FyYSBrZXNlbHVydWhhbiwgYmVudHVrIGRpc3RyaWJ1c2kgYmlub21pYWwgYmVyZ2FudHVuZyBwYWRhIGtvbWJpbmFzaSBuaWxhaSAocCkgZGFuIChuKSwgZGFuIHNlbWFraW4gYmVzYXIgbmlsYWkgKG4pLCBzZW1ha2luIGhhbHVzIGRhbiBzaW1ldHJpcyBkaXN0cmlidXNpbnlhIHNlaGluZ2dhIG1lbmRla2F0aSBiZW50dWsgZGlzdHJpYnVzaSBub3JtYWwuDQoNCioqUmVmZXJlbmNlcyoqDQpbMV0gU2ltcGxlTGVhcm5pbmdQcm8uIChuLmQuKS4gQmFzaWMgcHJvYmFiaWxpdHkgbGVzc29ucy4NCmh0dHBzOi8vc2ltcGxlbGVhcm5pbmdwcm8uY29tDQoNClsyXSBTaXJlZ2FyLCBCLiAobi5kLikuIEludHJvZHVjdGlvbiB0byBTdGF0aXN0aWNzLiBEU2NpZW5jZUxhYnMuDQpodHRwczovL2Jvb2tkb3duLm9yZy9kc2NpZW5jZWxhYnMvaW50cm9fc3RhdGlzdGljcw0KDQpbM10gS2hhbiBBY2FkZW15LiAobi5kLikuIEJpbm9taWFsIGRpc3RyaWJ1dGlvbi4NCmh0dHBzOi8vd3d3LmtoYW5hY2FkZW15Lm9yZy9tYXRoL3N0YXRpc3RpY3MtcHJvYmFiaWxpdHkNCg0KWzRdIE9wZW5TdGF4LiAobi5kLikuIEludHJvZHVjdG9yeSBTdGF0aXN0aWNzIOKAkyBCaW5vbWlhbCBEaXN0cmlidXRpb24uDQpodHRwczovL29wZW5zdGF4Lm9yZy9ib29rcy9pbnRyb2R1Y3Rvcnktc3RhdGlzdGljcy9wYWdlcy80LTQtYmlub21pYWwtZGlzdHJpYnV0aW9uDQoNCls1XSBMYXJzb24sIFIuLCAmIEZhcmJlciwgQi4gKDIwMTUpLiBFbGVtZW50YXJ5IFN0YXRpc3RpY3MgKDh0aCBlZC4pLiBQZWFyc29uIEVkdWNhdGlvbi4NCg0KDQotLS0NCg0KDQo=