
1. PENTINGNYA STATISTIKA
Statistika penting untuk membantu pengambilan keputusan berdasarkan
data yang akurat, meningkatkan pemahaman informasi, dan memecahkan
masalah dengan menemukan pola dan tren. Ini juga berguna dalam
perencanaan keuangan, penelitian akademik, dan pengembangan karir
profesional.
A. Proses Pengumpulan Data
Proses pengumpulan data adalah langkah-langkah untuk mengumpulkan
informasi yang diperlukan. Tujuannya adalah mendapatkan data yang
relevan untuk dianalisis guna menjawab pertanyaan atau mencapai tujuan
penelitian.Ada beberapa metode yang digunakan secara umum, yaitu :
- Survei: Menggunakan kuesioner atau formulir untuk
mengumpulkan data dari responden.
- Wawancara: Pertemuan tatap muka atau telepon untuk
mendapatkan informasi mendalam.
- Observasi: Mengamati dan mencatat kejadian atau
perilaku.
- Eksperimen: Mengendalikan variabel untuk melihat
efeknya.
B. Jenis Data Yang Diperoleh
-Data kualitatif Data yang berbentuk kata-kata atau
deskripsi, bukan angka. Biasanya dipakai untuk memahami pendapat,
pengalaman, atau alasan di balik sesuatu. Contohnya, hasil wawancara
atau review produk.
-Data kuantitatif data yang berbentuk angka dan bisa
dihitung. Biasanya digunakan untuk mengukur sesuatu secara objektif,
seperti jumlah penjualan, tingkat pendapatan, atau nilai rata-rata.
Contohnya, hasil survei jumlah penduduk atau statistik penjualan.
C. Cara Menyajikan Data
1. Tabel
Menyusun data dalam baris dan kolom untuk memudahkan analisis.
2. Grafik dan Diagram
- Grafik yang menggunakan batang vertikal atau horizontal untuk
membandingkan jumlah atau frekuensi dari berbagai kategori atau kelompok
data.
Diagram Lingkaran (Pie Chart): Digunakan untuk
menunjukkan proporsi atau persentase dari keseluruhan data dalam bentuk
irisan lingkaran.
Diagram Garis: Menggambarkan tren atau perubahan data
seiring waktu dengan menghubungkan titik-titik data menggunakan
garis.
3. Statistik Deskriptif Menggunakan ukuran seperti
rata-rata, median, mode, dan standar deviasi untuk menggambarkan
karakteristik utama data.
4. Infografis Kombinasi teks, gambar, dan grafik
untuk menyajikan informasi secara visual yang mudah dipahami.
5. Pengelompokan Data Mengelompokkan data
berdasarkan kategori atau interval tertentu untuk memudahkan
analisis.
D. Contoh Kasus
Penggunaan aplikasi pengingat tugas semakin populer di kalangan
mahasiswa untuk meningkatkan kepatuhan dalam menyelesaikan tugas kuliah.
Penelitian ini mengkaji dampaknya terhadap efektivitas penyelesaian
tugas.
1. Metode Pengumpulan Data Survei online melalui
Google Forms digunakan untuk mengumpulkan data. Mahasiswa diminta
mengisi kuesioner terkait frekuensi penggunaan aplikasi pengingat tugas
(misalnya Google Keep, Todoist) dan dampaknya terhadap kepatuhan mereka
dalam menyelesaikan tugas kuliah. Kuesioner terdiri dari pertanyaan
pilihan ganda dan pertanyaan terbuka.
2. Alasan Memilih Metode Yang Digunakan Survei
online dipilih karena efisien, mudah dijangkau, dan memungkinkan
pengumpulan data dalam jumlah besar dengan cepat. Dengan Google Forms,
data bisa dikumpulkan dari mahasiswa secara anonim, meningkatkan
kejujuran jawaban. Selain itu, mahasiswa dapat mengisi kuesioner kapan
saja, meningkatkan partisipasi.
3. Jenis Data Yang Dihasilkan
Data Kuantitatif Angka yang diukur, seperti frekuensi
penggunaan aplikasi pengingat dan persentase tugas yang diselesaikan
tepat waktu. Data ini memungkinkan analisis statistik objektif.
Frekuensi Penggunaan Aplikasi Pengingat
Setiap hari: 5 mahasiswa
3-4 kali seminggu: 3 mahasiswa
1-2 kali seminggu: 2 mahasiswa
Tingkat Kepatuhan dalam Menyelesaikan Tugas
90% atau lebih tepat waktu: 4 mahasiswa
70%-89% tepat waktu: 4 mahasiswa
Kurang dari 70% tepat waktu: 2 mahasiswa
Data Kualitatif: Deskripsi pengalaman mahasiswa terkait penggunaan
aplikasi pengingat, yang memberikan wawasan mendalam yang tidak bisa
dijelaskan hanya dengan angka.
Dampak Aplikasi Pengingat Tugas Membantu: 6 mahasiswa Cukup membantu:
3 mahasiswa Tidak membantu: 1 mahasiswa
4. Penyajian Data
disajikan dalam diagram lingkaran untuk menggambarkan frekuensi
penggunaan aplikasi pengingat dan tingkat kepatuhan mahasiswa dalam
menyelesaikan tugas. Diagram lingkaran dipilih karena dapat menunjukkan
proporsi masing-masing kategori secara visual, sehingga memudahkan
pemahaman tentang distribusi persentase mahasiswa dalam hal penggunaan
aplikasi pengingat dan kepatuhan dalam menyelesaikan
tugas tepat waktu.
2. TEKNIK ANALISA DATA
Dampak Partisipasi dalam Organisasi Kampus terhadap Prestasi
Akademik Mahasiswa
A. Metode Pengumpulan Data
Survei online melalui alat Google Forms digunakan untuk mengumpulkan
data. Mahasiswa diminta mengisi kuesioner melalui link
Google
Form yang berisi pertanyaan terkait jam partisipasi mereka dalam
organisasi kampus dan dampaknya terhadap prestasi akademik mereka.
Kuesioner terdiri dari 10 pertanyaan kuantitatif dan kualitatif terkait
durasi keterlibatan, dampaknya pada waktu belajar, serta pengaruh
organisasi terhadap IPK. Survei diikuti oleh 10 responden.
B. Alasan Memilih Metode Yang Digunakan
Kami menggunakan Survei online dengan menggunakan alat Google Forms
dipilih karena berikut :
Jangkauan Luas: Menjangkau mahasiswa dari berbagai tempat tanpa
batasan geografis.
Biaya Efisien: Tanpa biaya cetak atau distribusi fisik.
Pengumpulan Data Cepat: Data terkumpul secara real-time.
Kemudahan Analisis: Data langsung dalam format digital. dijadiin
kalimat
C. Jenis Data Yang Dihasilkan
Data yang dihasilkan terdiri dari dua jenis:
Data Kuantitatif: Angka yang diukur, seperti jumlah jam
partisipasi mahasiswa dalam organisasi kampus per minggu dan IPK
mahasiswa. Data ini memungkinkan analisis statistik untuk melihat
hubungan antara tingkat keterlibatan organisasi dan prestasi
akademik.
Data Kualitatif: Deskripsi pengalaman mahasiswa terkait dampak
partisipasi mereka dalam organisasi terhadap prestasi akademik. Data ini
memberikan wawasan mendalam tentang persepsi mahasiswa yang tidak dapat
dijelaskan hanya dengan angka.
Contoh Data Hasil Pengumpulan: Dampak Partisipasi Organisasi terhadap
IPK (tampilin data yang hasil excel)
3. PENYAJIAN DATA DALAM BENTUK DIAGRAM
Data disajikan dalam diagram lingkaran untuk menggambarkan frekuensi
partisipasi mahasiswa dalam organisasi dan distribusi IPK mahasiswa.
Diagram lingkaran dipilih karena visualisasi ini memudahkan pemahaman
tentang proporsi masing-masing kategori dalam hal keterlibatan
organisasi dan dampaknya terhadap prestasi akademik. Dengan diagram ini,
pembaca dapat dengan mudah melihat hubungan antara tingkat partisipasi
dalam organisasi kampus dan tingkat prestasi akademik mahasiswa.
A. DATA KUALITATIF (SURVEY)
Fokus data kualitatif dalam penelitian ini adalah manfaat utama dari
organisasi,tantangan menyeimbangkan waktu,pengembangan keterampilan
akademik,dukungan organisasi terhadap akademik,manfaat utama yang
mahasiswa rasakan dari keikutsertaan dalam organisasi kampus,Berikut
alasan mengapa menggunakan data kualitatif:
- Menggali pengalaman dan persepsi mahasiswa terkait
manfaat dan tantangan dalam organisasi.
- Memahami konteks dan dinamika yang tidak bisa
diukur dengan angka.
- Menangkap faktor subjektif seperti dukungan
organisasi dan keseimbangan waktu.
- Mengungkap keberagaman perspektif dari mahasiswa
mengenai partisipasi dalam organisasi kampus.
Berikut ini merupakan data kualitatif dari penelitian
| Ahmad Fadli |
Laki-laki |
Meningkatkan keterampilan komunikasi |
Kesulitan mengatur jadwal |
Membantu |
Mendukung |
Meningkatkan keterampilan komunikasi |
| Nur Aisyah |
Perempuan |
Menambah pengalaman kepemimpinan |
Beban tugas yang menumpuk |
Sangat membantu |
Sangat mendukung |
Menambah pengalaman kepemimpinan |
| Dika Pratama |
Laki-laki |
Membangun jejaring sosial |
Kehilangan waktu belajar |
Netral |
Kurang mendukung |
Meningkatkan keterampilan manajemen waktu |
| Siti Rahmawati |
Perempuan |
Meningkatkan keterampilan manajemen waktu |
Tidak ada tantangan |
Membantu |
Mendukung |
Meningkatkan keterampilan komunikasi |
| Fajar Maulana |
Laki-laki |
Lainnya |
Stres atau kelelahan |
Kurang membantu |
Netral |
Meningkatkan keterampilan manajemen waktu |
| Lina Kartika |
Perempuan |
Menambah pengalaman kepemimpinan |
Beban tugas yang menumpuk |
Sangat membantu |
Sangat mendukung |
Menambah pengalaman kepemimpinan |
| Arif Setiawan |
Laki-laki |
Meningkatkan keterampilan komunikasi |
Kesulitan mengatur jadwal |
Membantu |
Mendukung |
Meningkatkan keterampilan komunikasi |
| Rina Melati |
Perempuan |
Membangun jejaring sosial |
Kehilangan waktu belajar |
Kurang membantu |
Tidak mendukung |
Meningkatkan keterampilan manajemen waktu |
| Budi Santoso |
Laki-laki |
Meningkatkan keterampilan komunikasi |
Tidak ada tantangan |
Sangat membantu |
Sangat mendukung |
Meningkatkan keterampilan komunikasi |
| Maya Sari |
Perempuan |
Meningkatkan keterampilan manajemen waktu |
Kesulitan mengatur jadwal |
Membantu |
Mendukung |
Meningkatkan keterampilan manajemen waktu |
Tabel kualitatif ini menunjukkan manfaat dan tantangan yang dihadapi
mahasiswa dalam organisasi kampus. Manfaat utama yang dirasakan meliputi
peningkatan keterampilan komunikasi, kepemimpinan, dan manajemen waktu.
Tantangan terbesar adalah kesulitan mengatur jadwal, stres, dan beban
tugas yang menumpuk. Sebagian besar mahasiswa merasa dukungan organisasi
terhadap akademik cukup membantu, meskipun beberapa merasa dukungan
tersebut kurang signifikan. Keikutsertaan dalam organisasi memberikan
manfaat untuk pengembangan keterampilan, namun membutuhkan kemampuan
mengatur waktu yang baik.
B. DATA KUANTITATIF (SURVEY)
Fokus data kuantitatif dalam penelitian ini adalah waktu per minggu
yang dihabiskan oleh mahasiswa dalam organisasi,IPK terbaru,pertemuan
organisasi per bulan,gangguan belajar per minggu,jam belajar di luar
kuliah,Berikut alasan mengapa menggunakan data kuantitatif:
- Mengukur waktu dan frekuensi yang dihabiskan
mahasiswa dalam organisasi dan aktivitas akademik secara objektif.
- Menganalisis hubungan antar variabel seperti waktu
organisasi dan IPK, atau gangguan belajar dengan jam belajar.
- Memberikan data numerik yang dapat dibandingkan dan
dianalisis untuk menemukan pola atau tren.
- Menilai dampak kuantitatif dari keikutsertaan dalam
organisasi terhadap prestasi akademik dan gangguan belajar.
Berikut ini merupakan data kuantitatif dari penelitian
| Ahmad Fadli |
Laki-laki |
6-10 jam |
3.50 - 3.89 |
3-4 kali |
1-2 kali |
6-10 jam |
| Nur Aisyah |
Perempuan |
11-15 jam |
3.00 - 3.49 |
5-6 kali |
3-4 kali |
11-15 jam |
| Dika Pratama |
Laki-laki |
16-20 jam |
2.50 - 2.99 |
7-8 kali |
5-6 kali |
0-5 jam |
| Siti Rahmawati |
Perempuan |
0-5 jam |
3.90 - 4.00 |
1-2 kali |
0 kali |
16-20 jam |
| Fajar Maulana |
Laki-laki |
6-10 jam |
2.00 - 2.49 |
5-6 kali |
3-4 kali |
6-10 jam |
| Lina Kartika |
Perempuan |
16-20 jam |
3.00 - 3.49 |
7-8 kali |
5-6 kali |
0-5 jam |
| Arif Setiawan |
Laki-laki |
11-15 jam |
3.50 - 3.89 |
5-6 kali |
1-2 kali |
6-10 jam |
| Rina Melati |
Perempuan |
Lebih dari 20 jam |
3.00 - 3.49 |
Lebih dari 8 kali |
5-6 kali |
0-5 jam |
| Budi Santoso |
Laki-laki |
6-10 jam |
3.90 - 4.00 |
1-2 kali |
0 kali |
16-20 jam |
| Maya Sari |
Perempuan |
0-5 jam |
3.50 - 3.89 |
3-4 kali |
1-2 kali |
11-15 jam |
Tabel kuantitatif ini menunjukkan data mahasiswa yang terlibat dalam
organisasi kampus dan dampaknya terhadap prestasi akademik mereka. Data
ini menggambarkan hubungan antara jumlah jam yang dihabiskan dalam
organisasi, frekuensi pertemuan, gangguan belajar, dan waktu belajar di
luar kuliah dengan IPK mahasiswa. Secara umum, mahasiswa yang lebih
banyak berpartisipasi dalam organisasi cenderung memiliki waktu belajar
yang lebih sedikit dan IPK yang lebih bervariasi, sementara mahasiswa
dengan keterlibatan organisasi yang lebih sedikit cenderung memiliki
waktu belajar lebih banyak dan IPK yang lebih tinggi.
GRAFIK DATA
Diagram lingkaran ini menunjukkan distribusi jenis kelamin mahasiswa
yang terlibat dalam organisasi kampus terkait dampak partisipasi
terhadap prestasi akademik. Berdasarkan data, jumlah mahasiswa laki-laki
dan perempuan yang berpartisipasi dalam organisasi kampus adalah
seimbang, masing-masing 50%. Ini menunjukkan bahwa dampak partisipasi
dalam organisasi kampus terhadap prestasi akademik dapat dirasakan oleh
mahasiswa dari kedua jenis kelamin secara merata.
Diagram lingkaran ini menunjukkan distribusi waktu yang dihabiskan
mahasiswa dalam organisasi kampus terkait dampak partisipasi terhadap
prestasi akademik. Berdasarkan data persentase, 30% mahasiswa
menghabiskan waktu 6-10 jam per minggu dalam organisasi, sementara 20%
masing-masing menghabiskan waktu 0-5 jam, 11-15 jam, dan 16-20 jam.
Sisanya, 10% mahasiswa menghabiskan lebih dari 20 jam per minggu. Hal
ini menunjukkan bahwa sebagian besar mahasiswa terlibat dalam organisasi
dengan durasi moderat (6-10 jam), dan dampak terhadap prestasi akademik
dapat bervariasi tergantung pada seberapa banyak waktu yang dihabiskan
dalam kegiatan organisasi.
| 3.00 - 3.49 |
3 |
30 |
| 3.50 - 3.89 |
3 |
30 |
| 3.90 - 4.00 |
2 |
20 |
| 2.00 - 2.49 |
1 |
10 |
| 2.50 - 2.99 |
1 |
10 |
Diagram lingkaran ini menunjukkan distribusi IPK mahasiswa yang
terlibat dalam organisasi kampus, dengan 30% mahasiswa memiliki IPK
antara 3.00 - 3.49 dan 30% lainnya memiliki IPK antara 3.50 - 3.89.
Sebanyak 20% mahasiswa memiliki IPK di atas 3.90, sementara 10% memiliki
IPK antara 2.00 - 2.49 dan 2.50 - 2.99. Sebagian besar mahasiswa
memiliki IPK yang baik, menunjukkan bahwa partisipasi dalam organisasi
kampus tidak selalu berdampak negatif terhadap prestasi akademik,
meskipun ada sebagian kecil mahasiswa yang memiliki IPK lebih
rendah.
| 1-2 kali |
3 |
30 |
| 5-6 kali |
3 |
30 |
| 0 kali |
2 |
20 |
| 3-4 kali |
2 |
20 |
Diagram lingkaran ini menunjukkan frekuensi gangguan dalam jam
belajar mahasiswa setiap minggu. Sebanyak 30% mahasiswa mengalami
gangguan 1-2 kali per minggu, 30% lainnya 5-6 kali, sementara 20% tidak
mengalami gangguan sama sekali dan 20% lainnya mengalami gangguan 3-4
kali. Kesimpulannya, sebagian besar mahasiswa mengalami gangguan
belajar, yang menunjukkan tantangan dalam mengatur waktu antara kegiatan
organisasi dan akademik.
KESIMPULAN
Kesimpulan Berdasarkan data ini, dampak partisipasi dalam organisasi
kampus terhadap prestasi akademik dirasakan secara merata oleh mahasiswa
dari kedua jenis kelamin. Mayoritas mahasiswa menghabiskan waktu sedang
dalam organisasi, dengan sebagian lainnya terlibat lebih banyak atau
lebih sedikit. Meskipun sebagian besar mahasiswa memiliki IPK yang baik,
tantangan muncul dalam menjaga keseimbangan antara kegiatan organisasi
dan akademik. Beberapa mahasiswa melaporkan kesulitan dalam mengatur
waktu belajar mereka akibat keterlibatan dalam organisasi, yang dapat
mempengaruhi fokus akademik mereka.
Selain itu, gangguan dalam jam belajar, seperti stres dan kesulitan
mengelola waktu, menjadi masalah utama bagi banyak mahasiswa. Secara
keseluruhan, manajemen waktu yang baik dan menciptakan suasana yang
nyaman untuk belajar sangat penting agar mahasiswa dapat mengoptimalkan
prestasi akademik mereka sambil tetap aktif dalam organisasi kampus.
REFERENSI
Algorit.ma. (2022). Pentingnya statistika dalam kehidupan
sehari-hari. Algoritma. Diakses dari https://algorit.ma/blog/pentingnya-statistika-dalam-kehidupan-sehari-hari-2022/
Sampoerna University. (n.d.). Teknik pengumpulan data: Arti, proses,
dan jenis data. Sampoerna University. Diakses dari https://www.sampoernauniversity.ac.id/id/teknik-pengumpulan-data-arti-proses-dan-jenis-data/
Kazee Blog. (n.d.). Jenis-jenis data dan contohnya. Kazee Blog.
Diakses dari https://blog.kazee.id/jenis-jenis-data-dan-contohnya
Deepublish. (n.d.). Cara menyajikan data. Deepublish. Diakses dari https://penerbitdeepublish.com/cara-menyajikan-data/
Putra, A. W. (2018). Perilaku Akademik Aktivis (Studi Kasus Pada
Mahasiswa Fis UNM Yang Aktif di Organisasi Daerah) (Doctoral
dissertation, UNIVERSITAS NEGERI
MAKASSAR).https://eprints.unm.ac.id/11775/
Haryanti, A., & Santoso, R. (2020). Prokrastinasi akademik pada
mahasiswa organisasi. SUKMA: Jurnal Penelitian Psikologi,
1(1).https://jurnal.untag-sby.ac.id/index.php/sukma/article/view/3592
Al Musawi, H. (2024). Dampak aktivitas organisasi internal kampus
terhadap keaktifan akademik mahasiswa (Doctoral dissertation, UIN Sunan
Gunung Djati Bandung).https://digilib.uinsgd.ac.id/97715/
Ayu, S., Ayu, S. P., Mukjizat, L., Ariesta, A. D., & Jadidah, I.
T. (2023). ANALISIS HUBUNGAN KEAKTIFAN BERORGANISASI TERHADAP HASIL
AKADEMIK MAHASISWA PROGRAM STUDI PENDIDIKAN GURU MADRASAH IBTIDAIYAH UIN
RADEN FATAH PALEMBANG. JIMR: Journal Of International Multidisciplinary
Research, 2(02),
189-196.https://azramedia-indonesia.azramediaindonesia.com/index.php/JIMR/article/view/844
Yazidulfalach, A., & Ludigdo, U. (2013). Dampak kesertaan
mahasiswa pada lembaga kemahasiswaan terhadap prestasi akademik (studi
kasus mahasiswa jurusan akuntansi S1 Fakultas ekonomi dan bisnis
Universitas Brawijaya). Jurnal Ilmiah Mahasiswa FEB,
2(1).https://jimfeb.ub.ac.id/index.php/jimfeb/article/view/904
LS0tDQp0aXRsZTogIlVUUyBTdGF0aXNrYSBEYXNhciBLZWxvbXBvayAzIg0KDQpzdWJ0aXRsZTogIkRhbXBhayBQYXJ0aXNpcGFzaSBEYWxhbSBPcmdhbmlzYXNpIEthbXB1cyBUZXJoYWRhcCBQcmVzdGFzaSBBa2FkZW1payBNYWhhc2lzd2EgKEtlbG9tcG9rIDMpIg0KDQphdXRob3I6IA0KICAtICIgRmlrYSBJcnNhbmRpIERlc3Z5YW50aSAoNTIyNDAwMDEzKSINCiAgLSAiT2xpdmlhIE1laWxpbmRhIERhdnRpbiBQZXNpcmVyb24gKDUyMjQwMDExKSINCiAgLSAiTXVoYW1tYWQgTmFiaWwgUHJhdGFtYSg1MjI0MDAxNikiDQpkYXRlOiAgImByIGZvcm1hdChTeXMuRGF0ZSgpLCAnJUIgJWQsICVZJylgIg0Kb3V0cHV0Og0KICBybWRmb3JtYXRzOjpyZWFkdGhlZG93bjoNCiAgICBzZWxmX2NvbnRhaW5lZDogdHJ1ZQ0KICAgIHRodW1ibmFpbHM6IHRydWUNCiAgICBsaWdodGJveDogdHJ1ZQ0KICAgIGdhbGxlcnk6IHRydWUNCiAgICBsaWJfZGlyOiBsaWJzDQogICAgZGZfcHJpbnQ6ICJwYWdlZCINCiAgICBjb2RlX2ZvbGRpbmc6ICJzaG93Ig0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIGNzczogInN0eWxlL3N0eWxlLmNzcyINCi0tLQ0KDQo8aW1nIGlkPSJsb2dvLXV0YW1hIiBzcmM9ImltZy9mb3RvLXNlay5qcGciIGFsdD0iTG9nbyI+DQoNCg0KLS0tDQoNCiMgMS4gUEVOVElOR05ZQSBTVEFUSVNUSUtBDQpTdGF0aXN0aWthIHBlbnRpbmcgdW50dWsgbWVtYmFudHUgcGVuZ2FtYmlsYW4ga2VwdXR1c2FuIGJlcmRhc2Fya2FuIGRhdGEgeWFuZyBha3VyYXQsIG1lbmluZ2thdGthbiBwZW1haGFtYW4gaW5mb3JtYXNpLCBkYW4gbWVtZWNhaGthbiBtYXNhbGFoIGRlbmdhbiBtZW5lbXVrYW4gcG9sYSBkYW4gdHJlbi4gSW5pIGp1Z2EgYmVyZ3VuYSBkYWxhbSBwZXJlbmNhbmFhbiBrZXVhbmdhbiwgcGVuZWxpdGlhbiBha2FkZW1paywgZGFuIHBlbmdlbWJhbmdhbiBrYXJpciBwcm9mZXNpb25hbC4NCg0KIyMgQS4gUHJvc2VzIFBlbmd1bXB1bGFuIERhdGENCiAgDQogIFByb3NlcyBwZW5ndW1wdWxhbiBkYXRhIGFkYWxhaCBsYW5na2FoLWxhbmdrYWggdW50dWsgbWVuZ3VtcHVsa2FuIGluZm9ybWFzaSB5YW5nIGRpcGVybHVrYW4uIFR1anVhbm55YSBhZGFsYWggbWVuZGFwYXRrYW4gZGF0YSB5YW5nIHJlbGV2YW4gdW50dWsgZGlhbmFsaXNpcyBndW5hIG1lbmphd2FiIHBlcnRhbnlhYW4gYXRhdSBtZW5jYXBhaSB0dWp1YW4gcGVuZWxpdGlhbi5BZGEgYmViZXJhcGEgbWV0b2RlIHlhbmcgZGlndW5ha2FuIHNlY2FyYSB1bXVtLCB5YWl0dSA6DQogIA0KICAgLSAqU3VydmVpOiogTWVuZ2d1bmFrYW4ga3Vlc2lvbmVyIGF0YXUgZm9ybXVsaXIgdW50dWsgbWVuZ3VtcHVsa2FuIGRhdGEgZGFyaSByZXNwb25kZW4uDQogICAtICpXYXdhbmNhcmE6KiBQZXJ0ZW11YW4gdGF0YXAgbXVrYSBhdGF1IHRlbGVwb24gdW50dWsgbWVuZGFwYXRrYW4gaW5mb3JtYXNpIG1lbmRhbGFtLg0KICAgLSAqT2JzZXJ2YXNpOiogTWVuZ2FtYXRpIGRhbiBtZW5jYXRhdCBrZWphZGlhbiBhdGF1IHBlcmlsYWt1Lg0KICAgLSAqRWtzcGVyaW1lbjoqIE1lbmdlbmRhbGlrYW4gdmFyaWFiZWwgdW50dWsgbWVsaWhhdCBlZmVrbnlhLg0KICAgDQojIyBCLiBKZW5pcyBEYXRhIFlhbmcgRGlwZXJvbGVoDQoNCiAgIC0qKkRhdGEga3VhbGl0YXRpZioqIERhdGEgeWFuZyBiZXJiZW50dWsga2F0YS1rYXRhIGF0YXUgZGVza3JpcHNpLCBidWthbiBhbmdrYS4gQmlhc2FueWEgZGlwYWthaSB1bnR1ayBtZW1haGFtaSBwZW5kYXBhdCwgcGVuZ2FsYW1hbiwgYXRhdSBhbGFzYW4gZGkgYmFsaWsgc2VzdWF0dS4gQ29udG9obnlhLCBoYXNpbCB3YXdhbmNhcmEgYXRhdSByZXZpZXcgcHJvZHVrLg0KDQogICAtKipEYXRhIGt1YW50aXRhdGlmKiogZGF0YSB5YW5nIGJlcmJlbnR1ayBhbmdrYSBkYW4gYmlzYSBkaWhpdHVuZy4gQmlhc2FueWEgZGlndW5ha2FuIHVudHVrIG1lbmd1a3VyIHNlc3VhdHUgc2VjYXJhIG9iamVrdGlmLCBzZXBlcnRpIGp1bWxhaCBwZW5qdWFsYW4sIHRpbmdrYXQgcGVuZGFwYXRhbiwgYXRhdSBuaWxhaSByYXRhLXJhdGEuIENvbnRvaG55YSwgaGFzaWwgc3VydmVpIGp1bWxhaCBwZW5kdWR1ayBhdGF1IHN0YXRpc3RpayBwZW5qdWFsYW4uDQogICANCiMjIEMuIENhcmEgTWVueWFqaWthbiBEYXRhDQoNCioqMS4gVGFiZWwqKiAgDQogICBNZW55dXN1biBkYXRhIGRhbGFtIGJhcmlzIGRhbiBrb2xvbSB1bnR1ayBtZW11ZGFoa2FuIGFuYWxpc2lzLg0KDQoqKjIuIEdyYWZpayBkYW4gRGlhZ3JhbSoqICAgIA0KICAgLSBHcmFmaWsgeWFuZyBtZW5nZ3VuYWthbiBiYXRhbmcgdmVydGlrYWwgYXRhdSBob3Jpem9udGFsIHVudHVrIG1lbWJhbmRpbmdrYW4ganVtbGFoIGF0YXUgZnJla3VlbnNpIGRhcmkgYmVyYmFnYWkga2F0ZWdvcmkgYXRhdSBrZWxvbXBvayBkYXRhLg0KICAgDQogICAtICpEaWFncmFtIExpbmdrYXJhbiAoUGllIENoYXJ0KToqIERpZ3VuYWthbiB1bnR1ayBtZW51bmp1a2thbiBwcm9wb3JzaSBhdGF1IHBlcnNlbnRhc2UgZGFyaSBrZXNlbHVydWhhbiBkYXRhIGRhbGFtIGJlbnR1ayBpcmlzYW4gbGluZ2thcmFuLg0KICANCiAgIC0gKkRpYWdyYW0gR2FyaXM6KiBNZW5nZ2FtYmFya2FuIHRyZW4gYXRhdSBwZXJ1YmFoYW4gZGF0YSBzZWlyaW5nIHdha3R1IGRlbmdhbiBtZW5naHVidW5na2FuIHRpdGlrLXRpdGlrIGRhdGEgbWVuZ2d1bmFrYW4gZ2FyaXMuDQogIA0KKiozLiBTdGF0aXN0aWsgRGVza3JpcHRpZioqIE1lbmdndW5ha2FuIHVrdXJhbiBzZXBlcnRpIHJhdGEtcmF0YSwgbWVkaWFuLCBtb2RlLCBkYW4gc3RhbmRhciBkZXZpYXNpIHVudHVrIG1lbmdnYW1iYXJrYW4ga2FyYWt0ZXJpc3RpayB1dGFtYSBkYXRhLg0KDQoqKjQuIEluZm9ncmFmaXMqKiAgICAgS29tYmluYXNpIHRla3MsIGdhbWJhciwgZGFuIGdyYWZpayB1bnR1ayBtZW55YWppa2FuIGluZm9ybWFzaSBzZWNhcmEgdmlzdWFsIHlhbmcgbXVkYWggZGlwYWhhbWkuDQoNCioqNS4gUGVuZ2Vsb21wb2thbiBEYXRhKiogTWVuZ2Vsb21wb2trYW4gZGF0YSBiZXJkYXNhcmthbiBrYXRlZ29yaSBhdGF1IGludGVydmFsIHRlcnRlbnR1IHVudHVrIG1lbXVkYWhrYW4gYW5hbGlzaXMuDQoNCiMjIEQuIENvbnRvaCBLYXN1cyANClBlbmdndW5hYW4gYXBsaWthc2kgcGVuZ2luZ2F0IHR1Z2FzIHNlbWFraW4gcG9wdWxlciBkaSBrYWxhbmdhbiBtYWhhc2lzd2EgdW50dWsgbWVuaW5na2F0a2FuIGtlcGF0dWhhbiBkYWxhbSBtZW55ZWxlc2Fpa2FuIHR1Z2FzIGt1bGlhaC4gUGVuZWxpdGlhbiBpbmkgbWVuZ2thamkgZGFtcGFrbnlhIHRlcmhhZGFwIGVmZWt0aXZpdGFzIHBlbnllbGVzYWlhbiB0dWdhcy4NCg0KKioxLiBNZXRvZGUgUGVuZ3VtcHVsYW4gRGF0YSoqDQpTdXJ2ZWkgb25saW5lIG1lbGFsdWkgR29vZ2xlIEZvcm1zIGRpZ3VuYWthbiB1bnR1ayBtZW5ndW1wdWxrYW4gZGF0YS4gTWFoYXNpc3dhIGRpbWludGEgbWVuZ2lzaSBrdWVzaW9uZXIgdGVya2FpdCBmcmVrdWVuc2kgcGVuZ2d1bmFhbiBhcGxpa2FzaSBwZW5naW5nYXQgdHVnYXMgKG1pc2FsbnlhIEdvb2dsZSBLZWVwLCBUb2RvaXN0KSBkYW4gZGFtcGFrbnlhIHRlcmhhZGFwIGtlcGF0dWhhbiBtZXJla2EgZGFsYW0gbWVueWVsZXNhaWthbiB0dWdhcyBrdWxpYWguIEt1ZXNpb25lciB0ZXJkaXJpIGRhcmkgcGVydGFueWFhbiBwaWxpaGFuIGdhbmRhIGRhbiBwZXJ0YW55YWFuIHRlcmJ1a2EuDQoNCioqMi4gQWxhc2FuIE1lbWlsaWggTWV0b2RlIFlhbmcgRGlndW5ha2FuKioNClN1cnZlaSBvbmxpbmUgZGlwaWxpaCBrYXJlbmEgZWZpc2llbiwgbXVkYWggZGlqYW5na2F1LCBkYW4gbWVtdW5na2lua2FuIHBlbmd1bXB1bGFuIGRhdGEgZGFsYW0ganVtbGFoIGJlc2FyIGRlbmdhbiBjZXBhdC4gRGVuZ2FuIEdvb2dsZSBGb3JtcywgZGF0YSBiaXNhIGRpa3VtcHVsa2FuIGRhcmkgbWFoYXNpc3dhIHNlY2FyYSBhbm9uaW0sIG1lbmluZ2thdGthbiBrZWp1anVyYW4gamF3YWJhbi4gU2VsYWluIGl0dSwgbWFoYXNpc3dhIGRhcGF0IG1lbmdpc2kga3Vlc2lvbmVyIGthcGFuIHNhamEsIG1lbmluZ2thdGthbiBwYXJ0aXNpcGFzaS4NCg0KKiozLiBKZW5pcyBEYXRhIFlhbmcgRGloYXNpbGthbioqDQoNCipEYXRhIEt1YW50aXRhdGlmKiBBbmdrYSB5YW5nIGRpdWt1ciwgc2VwZXJ0aSBmcmVrdWVuc2kgcGVuZ2d1bmFhbiBhcGxpa2FzaSBwZW5naW5nYXQgZGFuIHBlcnNlbnRhc2UgdHVnYXMgeWFuZyBkaXNlbGVzYWlrYW4gdGVwYXQgd2FrdHUuIERhdGEgaW5pIG1lbXVuZ2tpbmthbiBhbmFsaXNpcyBzdGF0aXN0aWsgb2JqZWt0aWYuDQoNCkZyZWt1ZW5zaSBQZW5nZ3VuYWFuIEFwbGlrYXNpIFBlbmdpbmdhdA0KDQpTZXRpYXAgaGFyaTogNSBtYWhhc2lzd2ENCg0KMy00IGthbGkgc2VtaW5nZ3U6IDMgbWFoYXNpc3dhDQoNCjEtMiBrYWxpIHNlbWluZ2d1OiAyIG1haGFzaXN3YQ0KDQpUaW5na2F0IEtlcGF0dWhhbiBkYWxhbSBNZW55ZWxlc2Fpa2FuIFR1Z2FzDQoNCjkwJSBhdGF1IGxlYmloIHRlcGF0IHdha3R1OiA0IG1haGFzaXN3YQ0KDQo3MCUtODklIHRlcGF0IHdha3R1OiA0IG1haGFzaXN3YQ0KDQpLdXJhbmcgZGFyaSA3MCUgdGVwYXQgd2FrdHU6IDIgbWFoYXNpc3dhDQoNCkRhdGEgS3VhbGl0YXRpZjogRGVza3JpcHNpIHBlbmdhbGFtYW4gbWFoYXNpc3dhIHRlcmthaXQgcGVuZ2d1bmFhbiBhcGxpa2FzaSBwZW5naW5nYXQsIHlhbmcgbWVtYmVyaWthbiB3YXdhc2FuIG1lbmRhbGFtIHlhbmcgdGlkYWsgYmlzYSBkaWplbGFza2FuIGhhbnlhIGRlbmdhbiBhbmdrYS4NCg0KDQpEYW1wYWsgQXBsaWthc2kgUGVuZ2luZ2F0IFR1Z2FzDQpNZW1iYW50dTogNiBtYWhhc2lzd2ENCkN1a3VwIG1lbWJhbnR1OiAzIG1haGFzaXN3YQ0KVGlkYWsgbWVtYmFudHU6IDEgbWFoYXNpc3dhDQoNCioqNC4gUGVueWFqaWFuIERhdGEqKg0KDQpkaXNhamlrYW4gZGFsYW0gZGlhZ3JhbSBsaW5na2FyYW4gdW50dWsgbWVuZ2dhbWJhcmthbiBmcmVrdWVuc2kgcGVuZ2d1bmFhbiBhcGxpa2FzaSBwZW5naW5nYXQgZGFuIHRpbmdrYXQga2VwYXR1aGFuIG1haGFzaXN3YSBkYWxhbSBtZW55ZWxlc2Fpa2FuIHR1Z2FzLiBEaWFncmFtIGxpbmdrYXJhbiBkaXBpbGloIGthcmVuYSBkYXBhdCBtZW51bmp1a2thbiBwcm9wb3JzaSBtYXNpbmctbWFzaW5nIGthdGVnb3JpIHNlY2FyYSB2aXN1YWwsIHNlaGluZ2dhIG1lbXVkYWhrYW4gcGVtYWhhbWFuIHRlbnRhbmcgZGlzdHJpYnVzaSBwZXJzZW50YXNlIG1haGFzaXN3YSBkYWxhbSBoYWwgcGVuZ2d1bmFhbiBhcGxpa2FzaSBwZW5naW5nYXQgZGFuIGtlcGF0dWhhbiBkYWxhbSBtZW55ZWxlc2Fpa2FuIHR1Z2FzwqB0ZXBhdMKgd2FrdHUuDQoNCg0KIyAyLiBURUtOSUsgQU5BTElTQSBEQVRBDQoqRGFtcGFrIFBhcnRpc2lwYXNpIGRhbGFtIE9yZ2FuaXNhc2kgS2FtcHVzIHRlcmhhZGFwIFByZXN0YXNpIEFrYWRlbWlrIE1haGFzaXN3YSoNCg0KIyMgQS4gTWV0b2RlIFBlbmd1bXB1bGFuIERhdGENCg0KU3VydmVpIG9ubGluZSBtZWxhbHVpIGFsYXQgR29vZ2xlIEZvcm1zIGRpZ3VuYWthbiB1bnR1ayBtZW5ndW1wdWxrYW4gZGF0YS4gTWFoYXNpc3dhIGRpbWludGEgbWVuZ2lzaSBrdWVzaW9uZXIgbWVsYWx1aSBsaW5rICA8YSBocmVmID0gImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL2Zvcm1zL2QvZS8xRkFJcFFMU2Z5cjJYTXJqUk15YzVFNWtCNnFYbUVTX2pPa3JZdjhyZmJiMTlkRFVuRVBzcDVndy92aWV3Zm9ybT91c3A9c2ZfbGluayI+R29vZ2xlIEZvcm08L2E+ICB5YW5nIGJlcmlzaSBwZXJ0YW55YWFuIHRlcmthaXQgamFtIHBhcnRpc2lwYXNpIG1lcmVrYSBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cyBkYW4gZGFtcGFrbnlhIHRlcmhhZGFwIHByZXN0YXNpIGFrYWRlbWlrIG1lcmVrYS4gS3Vlc2lvbmVyICB0ZXJkaXJpIGRhcmkgMTAgcGVydGFueWFhbiBrdWFudGl0YXRpZiBkYW4ga3VhbGl0YXRpZiB0ZXJrYWl0IGR1cmFzaSBrZXRlcmxpYmF0YW4sIGRhbXBha255YSBwYWRhIHdha3R1IGJlbGFqYXIsIHNlcnRhIHBlbmdhcnVoIG9yZ2FuaXNhc2kgdGVyaGFkYXAgSVBLLiBTdXJ2ZWkgZGlpa3V0aSBvbGVowqAxMMKgcmVzcG9uZGVuLg0KDQojIyBCLiBBbGFzYW4gTWVtaWxpaCBNZXRvZGUgWWFuZyBEaWd1bmFrYW4NCg0KS2FtaSBtZW5nZ3VuYWthbiBTdXJ2ZWkgb25saW5lIGRlbmdhbiBtZW5nZ3VuYWthbiBhbGF0IEdvb2dsZSBGb3JtcyBkaXBpbGloIGthcmVuYSBiZXJpa3V0IDoNCg0KLSBKYW5na2F1YW4gTHVhczogTWVuamFuZ2thdSBtYWhhc2lzd2EgZGFyaSBiZXJiYWdhaSB0ZW1wYXQgdGFucGEgYmF0YXNhbiBnZW9ncmFmaXMuDQoNCi0gQmlheWEgRWZpc2llbjogVGFucGEgYmlheWEgY2V0YWsgYXRhdSBkaXN0cmlidXNpIGZpc2lrLg0KDQotIFBlbmd1bXB1bGFuIERhdGEgQ2VwYXQ6IERhdGEgdGVya3VtcHVsIHNlY2FyYSByZWFsLXRpbWUuDQoNCi0gS2VtdWRhaGFuIEFuYWxpc2lzOiBEYXRhIGxhbmdzdW5nIGRhbGFtIGZvcm1hdCBkaWdpdGFsLg0KZGlqYWRpaW4ga2FsaW1hdA0KDQojIyBDLiBKZW5pcyBEYXRhIFlhbmcgRGloYXNpbGthbiAgICANCkRhdGEgeWFuZyBkaWhhc2lsa2FuIHRlcmRpcmkgZGFyaSBkdWEgamVuaXM6DQoNCi0gRGF0YSBLdWFudGl0YXRpZjogQW5na2EgeWFuZyBkaXVrdXIsIHNlcGVydGkganVtbGFoIGphbSBwYXJ0aXNpcGFzaSBtYWhhc2lzd2EgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMgcGVyIG1pbmdndSBkYW4gSVBLIG1haGFzaXN3YS4gRGF0YSBpbmkgbWVtdW5na2lua2FuIGFuYWxpc2lzIHN0YXRpc3RpayB1bnR1ayBtZWxpaGF0IGh1YnVuZ2FuIGFudGFyYSB0aW5na2F0IGtldGVybGliYXRhbiBvcmdhbmlzYXNpIGRhbiBwcmVzdGFzaSBha2FkZW1pay4NCg0KLSBEYXRhIEt1YWxpdGF0aWY6IERlc2tyaXBzaSBwZW5nYWxhbWFuIG1haGFzaXN3YSB0ZXJrYWl0IGRhbXBhayBwYXJ0aXNpcGFzaSBtZXJla2EgZGFsYW0gb3JnYW5pc2FzaSB0ZXJoYWRhcCBwcmVzdGFzaSBha2FkZW1pay4gRGF0YSBpbmkgbWVtYmVyaWthbiB3YXdhc2FuIG1lbmRhbGFtIHRlbnRhbmcgcGVyc2Vwc2kgbWFoYXNpc3dhIHlhbmcgdGlkYWsgZGFwYXQgZGlqZWxhc2thbiBoYW55YSBkZW5nYW4gYW5na2EuDQoNCiAgQ29udG9oIERhdGEgSGFzaWwgUGVuZ3VtcHVsYW46DQogICBEYW1wYWsgUGFydGlzaXBhc2kgT3JnYW5pc2FzaSB0ZXJoYWRhcCBJUEsNCiAgICAgKHRhbXBpbGluIGRhdGEgeWFuZyBoYXNpbCBleGNlbCkNCg0KDQojIDMuIFBFTllBSklBTiBEQVRBIERBTEFNIEJFTlRVSyBESUFHUkFNDQoNCkRhdGEgZGlzYWppa2FuIGRhbGFtIGRpYWdyYW0gbGluZ2thcmFuIHVudHVrIG1lbmdnYW1iYXJrYW4gZnJla3VlbnNpIHBhcnRpc2lwYXNpIG1haGFzaXN3YSBkYWxhbSBvcmdhbmlzYXNpIGRhbiBkaXN0cmlidXNpIElQSyBtYWhhc2lzd2EuIERpYWdyYW0gbGluZ2thcmFuIGRpcGlsaWgga2FyZW5hIHZpc3VhbGlzYXNpIGluaSBtZW11ZGFoa2FuIHBlbWFoYW1hbiB0ZW50YW5nIHByb3BvcnNpIG1hc2luZy1tYXNpbmcga2F0ZWdvcmkgZGFsYW0gaGFsIGtldGVybGliYXRhbiBvcmdhbmlzYXNpIGRhbiBkYW1wYWtueWEgdGVyaGFkYXAgcHJlc3Rhc2kgYWthZGVtaWsuIERlbmdhbiBkaWFncmFtIGluaSwgcGVtYmFjYSBkYXBhdCBkZW5nYW4gbXVkYWggbWVsaWhhdCBodWJ1bmdhbiBhbnRhcmEgdGluZ2thdCBwYXJ0aXNpcGFzaSBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cyBkYW4gdGluZ2thdCBwcmVzdGFzaSBha2FkZW1pa8KgbWFoYXNpc3dhLg0KDQojIyBBLiBEQVRBIEtVQUxJVEFUSUYgKFNVUlZFWSkNCkZva3VzIGRhdGEga3VhbGl0YXRpZiBkYWxhbSBwZW5lbGl0aWFuIGluaSBhZGFsYWggbWFuZmFhdCB1dGFtYSBkYXJpIG9yZ2FuaXNhc2ksdGFudGFuZ2FuIG1lbnllaW1iYW5na2FuIHdha3R1LHBlbmdlbWJhbmdhbiBrZXRlcmFtcGlsYW4gYWthZGVtaWssZHVrdW5nYW4gb3JnYW5pc2FzaSB0ZXJoYWRhcCBha2FkZW1payxtYW5mYWF0IHV0YW1hIHlhbmcgbWFoYXNpc3dhIHJhc2FrYW4gZGFyaSBrZWlrdXRzZXJ0YWFuIGRhbGFtIG9yZ2FuaXNhc2kga2FtcHVzLEJlcmlrdXQgYWxhc2FuIG1lbmdhcGEgbWVuZ2d1bmFrYW4gZGF0YSBrdWFsaXRhdGlmOg0KDQotICoqTWVuZ2dhbGkgcGVuZ2FsYW1hbiBkYW4gcGVyc2Vwc2kgbWFoYXNpc3dhKiogdGVya2FpdCBtYW5mYWF0IGRhbiB0YW50YW5nYW4gZGFsYW0gb3JnYW5pc2FzaS4NCi0gKipNZW1haGFtaSBrb250ZWtzIGRhbiBkaW5hbWlrYSoqIHlhbmcgdGlkYWsgYmlzYSBkaXVrdXIgZGVuZ2FuIGFuZ2thLg0KLSAqKk1lbmFuZ2thcCBmYWt0b3Igc3ViamVrdGlmKiogc2VwZXJ0aSBkdWt1bmdhbiBvcmdhbmlzYXNpIGRhbiBrZXNlaW1iYW5nYW4gd2FrdHUuDQotICoqTWVuZ3VuZ2thcCBrZWJlcmFnYW1hbiBwZXJzcGVrdGlmKiogZGFyaSBtYWhhc2lzd2EgbWVuZ2VuYWkgcGFydGlzaXBhc2kgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMuDQoNCkJlcmlrdXQgaW5pIG1lcnVwYWthbiBkYXRhIGt1YWxpdGF0aWYgZGFyaSBwZW5lbGl0aWFuDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFfQ0KZGF0YV9rdWFsaSA9IHJlYWQuY3N2KCJkYXRhL2RhdGFfa3VhbGl0YXRpZi5jc3YiKQ0Ka25pdHI6OmthYmxlKGRhdGFfa3VhbGkpDQpgYGANClRhYmVsIGt1YWxpdGF0aWYgaW5pIG1lbnVuanVra2FuIG1hbmZhYXQgZGFuIHRhbnRhbmdhbiB5YW5nIGRpaGFkYXBpIG1haGFzaXN3YSBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cy4gTWFuZmFhdCB1dGFtYSB5YW5nIGRpcmFzYWthbiBtZWxpcHV0aSBwZW5pbmdrYXRhbiBrZXRlcmFtcGlsYW4ga29tdW5pa2FzaSwga2VwZW1pbXBpbmFuLCBkYW4gbWFuYWplbWVuIHdha3R1LiBUYW50YW5nYW4gdGVyYmVzYXIgYWRhbGFoIGtlc3VsaXRhbiBtZW5nYXR1ciBqYWR3YWwsIHN0cmVzLCBkYW4gYmViYW4gdHVnYXMgeWFuZyBtZW51bXB1ay4gU2ViYWdpYW4gYmVzYXIgbWFoYXNpc3dhIG1lcmFzYSBkdWt1bmdhbiBvcmdhbmlzYXNpIHRlcmhhZGFwIGFrYWRlbWlrIGN1a3VwIG1lbWJhbnR1LCBtZXNraXB1biBiZWJlcmFwYSBtZXJhc2EgZHVrdW5nYW4gdGVyc2VidXQga3VyYW5nIHNpZ25pZmlrYW4uIEtlaWt1dHNlcnRhYW4gZGFsYW0gb3JnYW5pc2FzaSBtZW1iZXJpa2FuIG1hbmZhYXQgdW50dWsgcGVuZ2VtYmFuZ2FuIGtldGVyYW1waWxhbiwgbmFtdW4gbWVtYnV0dWhrYW4ga2VtYW1wdWFuIG1lbmdhdHVyIHdha3R1IHlhbmcgYmFpay4NCg0KIyMgQi4gREFUQSBLVUFOVElUQVRJRiAoU1VSVkVZKQ0KRm9rdXMgZGF0YSBrdWFudGl0YXRpZiBkYWxhbSBwZW5lbGl0aWFuIGluaSBhZGFsYWggd2FrdHUgcGVyIG1pbmdndSB5YW5nIGRpaGFiaXNrYW4gb2xlaCBtYWhhc2lzd2EgZGFsYW0gb3JnYW5pc2FzaSxJUEsgdGVyYmFydSxwZXJ0ZW11YW4gb3JnYW5pc2FzaSBwZXIgYnVsYW4sZ2FuZ2d1YW4gYmVsYWphciBwZXIgbWluZ2d1LGphbSBiZWxhamFyIGRpIGx1YXIga3VsaWFoLEJlcmlrdXQgYWxhc2FuIG1lbmdhcGEgbWVuZ2d1bmFrYW4gZGF0YSBrdWFudGl0YXRpZjoNCg0KLSAqKk1lbmd1a3VyIHdha3R1IGRhbiBmcmVrdWVuc2kqKiB5YW5nIGRpaGFiaXNrYW4gbWFoYXNpc3dhIGRhbGFtIG9yZ2FuaXNhc2kgZGFuIGFrdGl2aXRhcyBha2FkZW1payBzZWNhcmEgb2JqZWt0aWYuDQotICoqTWVuZ2FuYWxpc2lzIGh1YnVuZ2FuIGFudGFyIHZhcmlhYmVsKiogc2VwZXJ0aSB3YWt0dSBvcmdhbmlzYXNpIGRhbiBJUEssIGF0YXUgZ2FuZ2d1YW4gYmVsYWphciBkZW5nYW4gamFtIGJlbGFqYXIuDQotICoqTWVtYmVyaWthbiBkYXRhIG51bWVyaWsqKiB5YW5nIGRhcGF0IGRpYmFuZGluZ2thbiBkYW4gZGlhbmFsaXNpcyB1bnR1ayBtZW5lbXVrYW4gcG9sYSBhdGF1IHRyZW4uDQotICoqTWVuaWxhaSBkYW1wYWsga3VhbnRpdGF0aWYqKiBkYXJpIGtlaWt1dHNlcnRhYW4gZGFsYW0gb3JnYW5pc2FzaSB0ZXJoYWRhcCBwcmVzdGFzaSBha2FkZW1payBkYW4gZ2FuZ2d1YW4gYmVsYWphci4NCg0KDQpCZXJpa3V0IGluaSBtZXJ1cGFrYW4gZGF0YSBrdWFudGl0YXRpZiBkYXJpIHBlbmVsaXRpYW4NCmBgYHtyLCBlY2hvPUZBTFNFfQ0KZGF0YSA9IHJlYWQuY3N2KCJkYXRhL2RhdGFfa3VhbnRpdGF0aWYuY3N2IikNCmtuaXRyOjprYWJsZShkYXRhKQ0KYGBgDQoNClRhYmVsIGt1YW50aXRhdGlmIGluaSBtZW51bmp1a2thbiBkYXRhIG1haGFzaXN3YSB5YW5nIHRlcmxpYmF0IGRhbGFtIG9yZ2FuaXNhc2kga2FtcHVzIGRhbiBkYW1wYWtueWEgdGVyaGFkYXAgcHJlc3Rhc2kgYWthZGVtaWsgbWVyZWthLiBEYXRhIGluaSBtZW5nZ2FtYmFya2FuIGh1YnVuZ2FuIGFudGFyYSBqdW1sYWggamFtIHlhbmcgZGloYWJpc2thbiBkYWxhbSBvcmdhbmlzYXNpLCBmcmVrdWVuc2kgcGVydGVtdWFuLCBnYW5nZ3VhbiBiZWxhamFyLCBkYW4gd2FrdHUgYmVsYWphciBkaSBsdWFyIGt1bGlhaCBkZW5nYW4gSVBLIG1haGFzaXN3YS4gU2VjYXJhIHVtdW0sIG1haGFzaXN3YSB5YW5nIGxlYmloIGJhbnlhayBiZXJwYXJ0aXNpcGFzaSBkYWxhbSBvcmdhbmlzYXNpIGNlbmRlcnVuZyBtZW1pbGlraSB3YWt0dSBiZWxhamFyIHlhbmcgbGViaWggc2VkaWtpdCBkYW4gSVBLIHlhbmcgbGViaWggYmVydmFyaWFzaSwgc2VtZW50YXJhIG1haGFzaXN3YSBkZW5nYW4ga2V0ZXJsaWJhdGFuIG9yZ2FuaXNhc2kgeWFuZyBsZWJpaCBzZWRpa2l0IGNlbmRlcnVuZyBtZW1pbGlraSB3YWt0dSBiZWxhamFyIGxlYmloIGJhbnlhayBkYW4gSVBLIHlhbmcgbGViaWggdGluZ2dpLg0KDQojIEdSQUZJSyBEQVRBDQoNCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIE1lbXVhdCBsaWJyYXJ5IHlhbmcgZGlwZXJsdWthbg0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQoNCiMgRnVuZ3NpIHVudHVrIG1lbWJ1YXQgZ3JhZmlrIGRvbmF0DQpidWF0X2RvbnV0X3Bsb3RseSA8LSBmdW5jdGlvbihkYXRhLCBrb2xvbSwganVkdWwpIHsNCiAgIyBNZW5naGl0dW5nIGZyZWt1ZW5zaSBzZXRpYXAga2F0ZWdvcmkgZGkga29sb20NCiAgZGF0YV9kaWFncmFtIDwtIGRhdGEgJT4lDQogICAgY291bnQoISFzeW0oa29sb20pLCBuYW1lID0gIkZyZWt1ZW5zaSIpICU+JQ0KICAgIHJlbmFtZSgiS2F0ZWdvcmkiID0gISFzeW0oa29sb20pKSAlPiUNCiAgICBhcnJhbmdlKGRlc2MoRnJla3VlbnNpKSkNCiAgDQogICMgTWVtYnVhdCBncmFmaWsgZG9uYXQgZGVuZ2FuIFBsb3RseQ0KICBwbG90X2x5KGRhdGFfZGlhZ3JhbSwgDQogICAgICAgICAgbGFiZWxzID0gfkthdGVnb3JpLCANCiAgICAgICAgICB2YWx1ZXMgPSB+RnJla3VlbnNpLCANCiAgICAgICAgICB0eXBlID0gJ3BpZScsIA0KICAgICAgICAgIHRleHRpbmZvID0gJ2xhYmVsK3BlcmNlbnQnLCAgICAgICAgIyBNZW5hbXBpbGthbiBsYWJlbCBkYW4gcGVyc2VudGFzZQ0KICAgICAgICAgIGluc2lkZXRleHRvcmllbnRhdGlvbiA9ICdyYWRpYWwnLCAgIyBPcmllbnRhc2kgdGVrcyBkaSBkYWxhbSBpcmlzYW4NCiAgICAgICAgICBob2xlID0gMC4zLCAgICAgICAgICAgICAgICAgICAgICAgICMgTWVuZ2F0dXIgdWt1cmFuIGx1YmFuZw0KICAgICAgICAgIG1hcmtlciA9IGxpc3QoY29sb3JzID0gUkNvbG9yQnJld2VyOjpicmV3ZXIucGFsKG4gPSBucm93KGRhdGFfZGlhZ3JhbSksIG5hbWUgPSAiU2V0MyIpKSkgJT4lDQogICAgbGF5b3V0KHRpdGxlID0ganVkdWwsIHNob3dsZWdlbmQgPSBUUlVFKQ0KfQ0KYGBgDQoNCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIE1lbXVhdCBsaWJyYXJ5IHlhbmcgZGlwZXJsdWthbg0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQoNCmRhdGFfZGlhZ3JhbSA8LSBkYXRhICU+JQ0KICBjb3VudChKZW5pcy5LZWxhbWluLCBuYW1lID0gIkZyZWt1ZW5zaSIpICU+JQ0KICByZW5hbWUoIkplbmlzIEtlbGFtaW4iID0gSmVuaXMuS2VsYW1pbikgJT4lDQogIGFycmFuZ2UoZGVzYyhGcmVrdWVuc2kpKQ0Ka25pdHI6OmthYmxlKGRhdGFfZGlhZ3JhbSkNCmJ1YXRfZG9udXRfcGxvdGx5KGRhdGEsICJKZW5pcy5LZWxhbWluIiwgIkplbmlzIEtlbGFtaW4iKQ0KYGBgDQpEaWFncmFtIGxpbmdrYXJhbiBpbmkgbWVudW5qdWtrYW4gZGlzdHJpYnVzaSBqZW5pcyBrZWxhbWluIG1haGFzaXN3YSB5YW5nIHRlcmxpYmF0IGRhbGFtIG9yZ2FuaXNhc2kga2FtcHVzIHRlcmthaXQgZGFtcGFrIHBhcnRpc2lwYXNpIHRlcmhhZGFwIHByZXN0YXNpIGFrYWRlbWlrLiBCZXJkYXNhcmthbiBkYXRhLCBqdW1sYWggbWFoYXNpc3dhIGxha2ktbGFraSBkYW4gcGVyZW1wdWFuIHlhbmcgYmVycGFydGlzaXBhc2kgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMgYWRhbGFoIHNlaW1iYW5nLCBtYXNpbmctbWFzaW5nIDUwJS4gSW5pIG1lbnVuanVra2FuIGJhaHdhIGRhbXBhayBwYXJ0aXNpcGFzaSBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cyB0ZXJoYWRhcCBwcmVzdGFzaSBha2FkZW1payBkYXBhdCBkaXJhc2FrYW4gb2xlaCBtYWhhc2lzd2EgZGFyaSBrZWR1YSBqZW5pcyBrZWxhbWluIHNlY2FyYSBtZXJhdGEuDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyBNZW11YXQgbGlicmFyeSB5YW5nIGRpcGVybHVrYW4NCmxpYnJhcnkocGxvdGx5KQ0KDQojIE1lbWJ1YXQgaGlzdG9ncmFtIGRlbmdhbiB2YXJpYXNpIHdhcm5hDQpwbG90X2x5KGRhdGEgPSBkYXRhLCANCiAgICAgICAgeCA9IH5KYW0ucGVyLk1pbmdndS5kaS5PcmdhbmlzYXNpLCAgIyBHYW50aSAnUGVuZGFwYXRhbicgZGVuZ2FuIG5hbWEga29sb20geWFuZyBzZXN1YWkNCiAgICAgICAgdHlwZSA9ICJoaXN0b2dyYW0iLA0KICAgICAgICBtYXJrZXIgPSBsaXN0KGNvbG9yID0gUkNvbG9yQnJld2VyOjpicmV3ZXIucGFsKG4gPSAzLCBuYW1lID0gIlNldDIiKVsxXSwgDQogICAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpc3QoY29sb3IgPSAid2hpdGUiLCB3aWR0aCA9IDEpKSkgJT4lDQogIGxheW91dCh0aXRsZSA9ICJKYW0gcGVyIE1pbmdndSBkaSBPcmdhbmlzYXNpIiwNCiAgICAgICAgIHhheGlzID0gbGlzdCh0aXRsZSA9ICJKYW0gcGVyIE1pbmdndSIpLA0KICAgICAgICAgeWF4aXMgPSBsaXN0KHRpdGxlID0gIkZyZWt1ZW5zaSIpKQ0KYGBgDQoNCkRpYWdyYW0gbGluZ2thcmFuIGluaSBtZW51bmp1a2thbiBkaXN0cmlidXNpIHdha3R1IHlhbmcgZGloYWJpc2thbiBtYWhhc2lzd2EgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMgdGVya2FpdCBkYW1wYWsgcGFydGlzaXBhc2kgdGVyaGFkYXAgcHJlc3Rhc2kgYWthZGVtaWsuIEJlcmRhc2Fya2FuIGRhdGEgcGVyc2VudGFzZSwgMzAlIG1haGFzaXN3YSBtZW5naGFiaXNrYW4gd2FrdHUgNi0xMCBqYW0gcGVyIG1pbmdndSBkYWxhbSBvcmdhbmlzYXNpLCBzZW1lbnRhcmEgMjAlIG1hc2luZy1tYXNpbmcgbWVuZ2hhYmlza2FuIHdha3R1IDAtNSBqYW0sIDExLTE1IGphbSwgZGFuIDE2LTIwIGphbS4gU2lzYW55YSwgMTAlIG1haGFzaXN3YSBtZW5naGFiaXNrYW4gbGViaWggZGFyaSAyMCBqYW0gcGVyIG1pbmdndS4gSGFsIGluaSBtZW51bmp1a2thbiBiYWh3YSBzZWJhZ2lhbiBiZXNhciBtYWhhc2lzd2EgdGVybGliYXQgZGFsYW0gb3JnYW5pc2FzaSBkZW5nYW4gZHVyYXNpIG1vZGVyYXQgKDYtMTAgamFtKSwgZGFuIGRhbXBhayB0ZXJoYWRhcCBwcmVzdGFzaSBha2FkZW1payBkYXBhdCBiZXJ2YXJpYXNpIHRlcmdhbnR1bmcgcGFkYSBzZWJlcmFwYSBiYW55YWsgd2FrdHUgeWFuZyBkaWhhYmlza2FuIGRhbGFtIGtlZ2lhdGFuIG9yZ2FuaXNhc2kuDQoNCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQojIE1lbXVhdCBsaWJyYXJ5IGRwbHlyDQpsaWJyYXJ5KGRwbHlyKQ0KDQojIE1lbWJ1YXQgdGFiZWwgZGlzdHJpYnVzaSBkZW5nYW4ga29sb20gcGVyc2VudGFzZQ0KdGFiZWxfZGF0YSA8LSBkYXRhICU+JQ0KICBjb3VudChJUEsuVGVyYmFydSwgDQogICAgICAgIG5hbWUgPSAiRnJla3VlbnNpIikgJT4lDQogIG11dGF0ZShQZXJzZW50YXNlID0gcm91bmQoKEZyZWt1ZW5zaSAvIHN1bShGcmVrdWVuc2kpKSAqIDEwMCwgMikpICU+JSAgIyBNZW5naGl0dW5nIHBlcnNlbnRhc2UNCiAgcmVuYW1lKCJJUEsgVGVyYmFydSIgPSBJUEsuVGVyYmFydSkgJT4lDQogIGFycmFuZ2UoZGVzYyhGcmVrdWVuc2kpKSAgIyBNZW5ndXJ1dGthbiBkYXJpIHlhbmcgdGVyYmVzYXIga2UgdGVya2VjaWwNCg0KIyBNZW5hbXBpbGthbiB0YWJlbCBkaXN0cmlidXNpDQprbml0cjo6a2FibGUodGFiZWxfZGF0YSkgDQpgYGANCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQojIE1lbXVhdCBsaWJyYXJ5IHlhbmcgZGlwZXJsdWthbg0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShwbG90bHkpDQoNCiMgTWVueWltcGFuIHRhYmVsIGRpc3RyaWJ1c2kgc2ViYWdhaSB0YWJsZV9kYXRhIGFnYXIgc2VzdWFpIGRlbmdhbiBuYW1hIG9iamVrIGRpIHBsb3QNCnRhYmxlX2RhdGEgPC0gdGFiZWxfZGF0YQ0KDQojIE1lbWJ1YXQgZGlhZ3JhbSBiYXRhbmcgZGVuZ2FuIGdncGxvdDINCnAgPC0gZ2dwbG90KHRhYmxlX2RhdGEsIGFlcyh4ID0gYElQSyBUZXJiYXJ1YCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IEZyZWt1ZW5zaSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbCA9IGBJUEsgVGVyYmFydWAsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSBwYXN0ZTAoIlBlcnNlbnRhc2U6ICIsIFBlcnNlbnRhc2UsICIlIikpKSArICAjIE1lbmFtYmFoa2FuIHBlcnNlbnRhc2UgZGkgdG9vbHRpcA0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKw0KICBnZW9tX3RleHQoYWVzKGxhYmVsID0gRnJla3VlbnNpKSwgDQogICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gMS4xKSwgICMgTWVuYW1waWxrYW4gaGFueWEgZnJla3VlbnNpIGRpIGxhYmVsDQogICAgICAgICAgICBjb2xvciA9ICJibGFjayIsIHNpemUgPSAzKSArICAjIE1lbmdhdHVyIHdhcm5hIGRhbiB1a3VyYW4gbGFiZWwNCiAgbGFicyh0aXRsZSA9ICJJUEsgVGVyYmFydSIsDQogICAgICAgeCA9ICJJUEsgVGVyYmFydSIsDQogICAgICAgeSA9ICJGcmVrdWVuc2kiKSArDQogIHNjYWxlX2ZpbGxfYnJld2VyKHBhbGV0dGUgPSAiU2V0MiIpICsgICMgTWVuZ2d1bmFrYW4gcGFsZXQgd2FybmENCiAgdGhlbWVfbWluaW1hbCgpICsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArICAgICAgIyBNZW55ZW1idW55aWthbiBsZWdlbmRhDQogIGNvb3JkX2ZsaXAoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTWVtYnVhdCBkaWFncmFtIG1lbmphZGkgaG9yaXpvbnRhbA0KDQojIE1lbmdvbnZlcnNpIGdncGxvdCBtZW5qYWRpIHBsb3RseSB1bnR1ayBpbnRlcmFrdGlmIGRlbmdhbiB0b29sdGlwIHBlcnNlbnRhc2UNCnBsb3RseV9wbG90IDwtIGdncGxvdGx5KHAsIHRvb2x0aXAgPSBjKCJ4IiwgInkiLCAidGV4dCIpKQ0KDQojIE1lbmFtcGlsa2FuIHBsb3QgaW50ZXJha3RpZg0KcGxvdGx5X3Bsb3QNCmBgYA0KDQoNCkRpYWdyYW0gbGluZ2thcmFuIGluaSBtZW51bmp1a2thbiBkaXN0cmlidXNpIElQSyBtYWhhc2lzd2EgeWFuZyB0ZXJsaWJhdCBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cywgZGVuZ2FuIDMwJSBtYWhhc2lzd2EgbWVtaWxpa2kgSVBLIGFudGFyYSAzLjAwIC0gMy40OSBkYW4gMzAlIGxhaW5ueWEgbWVtaWxpa2kgSVBLIGFudGFyYSAzLjUwIC0gMy44OS4gU2ViYW55YWsgMjAlIG1haGFzaXN3YSBtZW1pbGlraSBJUEsgZGkgYXRhcyAzLjkwLCBzZW1lbnRhcmEgMTAlIG1lbWlsaWtpIElQSyBhbnRhcmEgMi4wMCAtIDIuNDkgZGFuIDIuNTAgLSAyLjk5LiBTZWJhZ2lhbiBiZXNhciBtYWhhc2lzd2EgbWVtaWxpa2kgSVBLIHlhbmcgYmFpaywgbWVudW5qdWtrYW4gYmFod2EgcGFydGlzaXBhc2kgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMgdGlkYWsgc2VsYWx1IGJlcmRhbXBhayBuZWdhdGlmIHRlcmhhZGFwIHByZXN0YXNpIGFrYWRlbWlrLCBtZXNraXB1biBhZGEgc2ViYWdpYW4ga2VjaWwgbWFoYXNpc3dhIHlhbmcgbWVtaWxpa2kgSVBLIGxlYmloIHJlbmRhaC4NCg0KDQpgYGB7ciwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCiMgTWVtdWF0IGxpYnJhcnkgZHBseXINCmxpYnJhcnkoZHBseXIpDQoNCiMgTWVtYnVhdCB0YWJlbCBkaXN0cmlidXNpIGRlbmdhbiBrb2xvbSBwZXJzZW50YXNlDQp0YWJlbF9kYXRhIDwtIGRhdGEgJT4lDQogIGNvdW50KEdhbmdndWFuLkJlbGFqYXIucGVyLk1pbmdndSwgDQogICAgICAgIG5hbWUgPSAiRnJla3VlbnNpIikgJT4lDQogIG11dGF0ZShQZXJzZW50YXNlID0gcm91bmQoKEZyZWt1ZW5zaSAvIHN1bShGcmVrdWVuc2kpKSAqIDEwMCwgMikpICU+JSAgIyBNZW5naGl0dW5nIHBlcnNlbnRhc2UNCiAgcmVuYW1lKCJHYW5nZ3VhbiBCZWxhamFyIiA9IEdhbmdndWFuLkJlbGFqYXIucGVyLk1pbmdndSkgJT4lDQogIGFycmFuZ2UoZGVzYyhGcmVrdWVuc2kpKSAgIyBNZW5ndXJ1dGthbiBkYXJpIHlhbmcgdGVyYmVzYXIga2UgdGVya2VjaWwNCg0KIyBNZW5hbXBpbGthbiB0YWJlbCBkaXN0cmlidXNpDQprbml0cjo6a2FibGUodGFiZWxfZGF0YSkgDQpgYGANCg0KYGBge3IsIGVjaG89RkFMU0UsIG1lc3NhZ2U9RkFMU0V9DQojIE1lbXVhdCBsaWJyYXJ5IHlhbmcgZGlwZXJsdWthbg0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShwbG90bHkpDQoNCiMgTWVueWltcGFuIHRhYmVsIGRpc3RyaWJ1c2kgc2ViYWdhaSB0YWJsZV9kYXRhIGFnYXIgc2VzdWFpIGRlbmdhbiBuYW1hIG9iamVrIGRpIHBsb3QNCnRhYmxlX2RhdGEgPC0gdGFiZWxfZGF0YQ0KDQojIE1lbWJ1YXQgZGlhZ3JhbSBiYXRhbmcgZGVuZ2FuIGdncGxvdDINCnAgPC0gZ2dwbG90KHRhYmxlX2RhdGEsIGFlcyh4ID0gYEdhbmdndWFuIEJlbGFqYXJgLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gRnJla3VlbnNpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsID0gYEdhbmdndWFuIEJlbGFqYXJgLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gcGFzdGUwKCJQZXJzZW50YXNlOiAiLCBQZXJzZW50YXNlLCAiJSIpKSkgKyAgIyBNZW5hbWJhaGthbiBwZXJzZW50YXNlIGRpIHRvb2x0aXANCiAgZ2VvbV9iYXIoc3RhdCA9ICJpZGVudGl0eSIpICsNCiAgZ2VvbV90ZXh0KGFlcyhsYWJlbCA9IEZyZWt1ZW5zaSksIA0KICAgICAgICAgICAgcG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IDEuMSksICAjIE1lbmFtcGlsa2FuIGhhbnlhIGZyZWt1ZW5zaSBkaSBsYWJlbA0KICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siLCBzaXplID0gMykgKyAgIyBNZW5nYXR1ciB3YXJuYSBkYW4gdWt1cmFuIGxhYmVsDQogIGxhYnModGl0bGUgPSAiR2FuZ2d1YW4gQmVsYWphciIsDQogICAgICAgeCA9ICJHYW5nZ3VhbiBCZWxhamFyIiwNCiAgICAgICB5ID0gIkZyZWt1ZW5zaSIpICsNCiAgc2NhbGVfZmlsbF9icmV3ZXIocGFsZXR0ZSA9ICJTZXQyIikgKyAgIyBNZW5nZ3VuYWthbiBwYWxldCB3YXJuYQ0KICB0aGVtZV9taW5pbWFsKCkgKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpDQoNCiMgTWVuZ29udmVyc2kgZ2dwbG90IG1lbmphZGkgcGxvdGx5IHVudHVrIGludGVyYWt0aWYgZGVuZ2FuIHRvb2x0aXAgcGVyc2VudGFzZQ0KcGxvdGx5X3Bsb3QgPC0gZ2dwbG90bHkocCwgdG9vbHRpcCA9IGMoIngiLCAieSIsICJ0ZXh0IikpDQoNCiMgTWVuYW1waWxrYW4gcGxvdCBpbnRlcmFrdGlmDQpwbG90bHlfcGxvdA0KYGBgDQpEaWFncmFtIGxpbmdrYXJhbiBpbmkgbWVudW5qdWtrYW4gZnJla3VlbnNpIGdhbmdndWFuIGRhbGFtIGphbSBiZWxhamFyIG1haGFzaXN3YSBzZXRpYXAgbWluZ2d1LiBTZWJhbnlhayAzMCUgbWFoYXNpc3dhIG1lbmdhbGFtaSBnYW5nZ3VhbiAxLTIga2FsaSBwZXIgbWluZ2d1LCAzMCUgbGFpbm55YSA1LTYga2FsaSwgc2VtZW50YXJhIDIwJSB0aWRhayBtZW5nYWxhbWkgZ2FuZ2d1YW4gc2FtYSBzZWthbGkgZGFuIDIwJSBsYWlubnlhIG1lbmdhbGFtaSBnYW5nZ3VhbiAzLTQga2FsaS4gS2VzaW1wdWxhbm55YSwgc2ViYWdpYW4gYmVzYXIgbWFoYXNpc3dhIG1lbmdhbGFtaSBnYW5nZ3VhbiBiZWxhamFyLCB5YW5nIG1lbnVuanVra2FuIHRhbnRhbmdhbiBkYWxhbSBtZW5nYXR1ciB3YWt0dSBhbnRhcmEga2VnaWF0YW4gb3JnYW5pc2FzaSBkYW4gYWthZGVtaWsuDQoNCiMjIEtFU0lNUFVMQU4NCg0KS2VzaW1wdWxhbg0KQmVyZGFzYXJrYW4gZGF0YSBpbmksIGRhbXBhayBwYXJ0aXNpcGFzaSBkYWxhbSBvcmdhbmlzYXNpIGthbXB1cyB0ZXJoYWRhcCBwcmVzdGFzaSBha2FkZW1payBkaXJhc2FrYW4gc2VjYXJhIG1lcmF0YSBvbGVoIG1haGFzaXN3YSBkYXJpIGtlZHVhIGplbmlzIGtlbGFtaW4uIE1heW9yaXRhcyBtYWhhc2lzd2EgbWVuZ2hhYmlza2FuIHdha3R1IHNlZGFuZyBkYWxhbSBvcmdhbmlzYXNpLCBkZW5nYW4gc2ViYWdpYW4gbGFpbm55YSB0ZXJsaWJhdCBsZWJpaCBiYW55YWsgYXRhdSBsZWJpaCBzZWRpa2l0LiBNZXNraXB1biBzZWJhZ2lhbiBiZXNhciBtYWhhc2lzd2EgbWVtaWxpa2kgSVBLIHlhbmcgYmFpaywgdGFudGFuZ2FuIG11bmN1bCBkYWxhbSBtZW5qYWdhIGtlc2VpbWJhbmdhbiBhbnRhcmEga2VnaWF0YW4gb3JnYW5pc2FzaSBkYW4gYWthZGVtaWsuIEJlYmVyYXBhIG1haGFzaXN3YSBtZWxhcG9ya2FuIGtlc3VsaXRhbiBkYWxhbSBtZW5nYXR1ciB3YWt0dSBiZWxhamFyIG1lcmVrYSBha2liYXQga2V0ZXJsaWJhdGFuIGRhbGFtIG9yZ2FuaXNhc2ksIHlhbmcgZGFwYXQgbWVtcGVuZ2FydWhpIGZva3VzIGFrYWRlbWlrIG1lcmVrYS4NCg0KU2VsYWluIGl0dSwgZ2FuZ2d1YW4gZGFsYW0gamFtIGJlbGFqYXIsIHNlcGVydGkgc3RyZXMgZGFuIGtlc3VsaXRhbiBtZW5nZWxvbGEgd2FrdHUsIG1lbmphZGkgbWFzYWxhaCB1dGFtYSBiYWdpIGJhbnlhayBtYWhhc2lzd2EuIFNlY2FyYSBrZXNlbHVydWhhbiwgbWFuYWplbWVuIHdha3R1IHlhbmcgYmFpayBkYW4gbWVuY2lwdGFrYW4gc3Vhc2FuYSB5YW5nIG55YW1hbiB1bnR1ayBiZWxhamFyIHNhbmdhdCBwZW50aW5nIGFnYXIgbWFoYXNpc3dhIGRhcGF0IG1lbmdvcHRpbWFsa2FuIHByZXN0YXNpIGFrYWRlbWlrIG1lcmVrYSBzYW1iaWwgdGV0YXAgYWt0aWYgZGFsYW0gb3JnYW5pc2FzaSBrYW1wdXMuDQoNCiMgUkVGRVJFTlNJDQoNCkFsZ29yaXQubWEuICgyMDIyKS4gUGVudGluZ255YSBzdGF0aXN0aWthIGRhbGFtIGtlaGlkdXBhbiBzZWhhcmktaGFyaS4gQWxnb3JpdG1hLiBEaWFrc2VzIGRhcmkgaHR0cHM6Ly9hbGdvcml0Lm1hL2Jsb2cvcGVudGluZ255YS1zdGF0aXN0aWthLWRhbGFtLWtlaGlkdXBhbi1zZWhhcmktaGFyaS0yMDIyLw0KDQpTYW1wb2VybmEgVW5pdmVyc2l0eS4gKG4uZC4pLiBUZWtuaWsgcGVuZ3VtcHVsYW4gZGF0YTogQXJ0aSwgcHJvc2VzLCBkYW4gamVuaXMgZGF0YS4gU2FtcG9lcm5hIFVuaXZlcnNpdHkuIERpYWtzZXMgZGFyaSBodHRwczovL3d3dy5zYW1wb2VybmF1bml2ZXJzaXR5LmFjLmlkL2lkL3Rla25pay1wZW5ndW1wdWxhbi1kYXRhLWFydGktcHJvc2VzLWRhbi1qZW5pcy1kYXRhLw0KDQpLYXplZSBCbG9nLiAobi5kLikuIEplbmlzLWplbmlzIGRhdGEgZGFuIGNvbnRvaG55YS4gS2F6ZWUgQmxvZy4gRGlha3NlcyBkYXJpIGh0dHBzOi8vYmxvZy5rYXplZS5pZC9qZW5pcy1qZW5pcy1kYXRhLWRhbi1jb250b2hueWENCg0KRGVlcHVibGlzaC4gKG4uZC4pLiBDYXJhIG1lbnlhamlrYW4gZGF0YS4gRGVlcHVibGlzaC4gRGlha3NlcyBkYXJpIGh0dHBzOi8vcGVuZXJiaXRkZWVwdWJsaXNoLmNvbS9jYXJhLW1lbnlhamlrYW4tZGF0YS8NCg0KUHV0cmEsIEEuIFcuICgyMDE4KS4gUGVyaWxha3UgQWthZGVtaWsgQWt0aXZpcyAoU3R1ZGkgS2FzdXMgUGFkYSBNYWhhc2lzd2EgRmlzIFVOTSBZYW5nIEFrdGlmIGRpIE9yZ2FuaXNhc2kgRGFlcmFoKSAoRG9jdG9yYWwgZGlzc2VydGF0aW9uLCBVTklWRVJTSVRBUyBORUdFUkkgTUFLQVNTQVIpLmh0dHBzOi8vZXByaW50cy51bm0uYWMuaWQvMTE3NzUvIA0KDQpIYXJ5YW50aSwgQS4sICYgU2FudG9zbywgUi4gKDIwMjApLiBQcm9rcmFzdGluYXNpIGFrYWRlbWlrIHBhZGEgbWFoYXNpc3dhIG9yZ2FuaXNhc2kuIFNVS01BOiBKdXJuYWwgUGVuZWxpdGlhbiBQc2lrb2xvZ2ksIDEoMSkuaHR0cHM6Ly9qdXJuYWwudW50YWctc2J5LmFjLmlkL2luZGV4LnBocC9zdWttYS9hcnRpY2xlL3ZpZXcvMzU5MiANCg0KQWwgTXVzYXdpLCBILiAoMjAyNCkuIERhbXBhayBha3Rpdml0YXMgb3JnYW5pc2FzaSBpbnRlcm5hbCBrYW1wdXMgdGVyaGFkYXAga2Vha3RpZmFuIGFrYWRlbWlrIG1haGFzaXN3YSAoRG9jdG9yYWwgZGlzc2VydGF0aW9uLCBVSU4gU3VuYW4gR3VudW5nIERqYXRpIEJhbmR1bmcpLmh0dHBzOi8vZGlnaWxpYi51aW5zZ2QuYWMuaWQvOTc3MTUvIA0KDQpBeXUsIFMuLCBBeXUsIFMuIFAuLCBNdWtqaXphdCwgTC4sIEFyaWVzdGEsIEEuIEQuLCAmIEphZGlkYWgsIEkuIFQuICgyMDIzKS4gQU5BTElTSVMgSFVCVU5HQU4gS0VBS1RJRkFOIEJFUk9SR0FOSVNBU0kgVEVSSEFEQVAgSEFTSUwgQUtBREVNSUsgTUFIQVNJU1dBIFBST0dSQU0gU1RVREkgUEVORElESUtBTiBHVVJVIE1BRFJBU0FIIElCVElEQUlZQUggVUlOIFJBREVOIEZBVEFIIFBBTEVNQkFORy4gSklNUjogSm91cm5hbCBPZiBJbnRlcm5hdGlvbmFsIE11bHRpZGlzY2lwbGluYXJ5IFJlc2VhcmNoLCAyKDAyKSwgMTg5LTE5Ni5odHRwczovL2F6cmFtZWRpYS1pbmRvbmVzaWEuYXpyYW1lZGlhaW5kb25lc2lhLmNvbS9pbmRleC5waHAvSklNUi9hcnRpY2xlL3ZpZXcvODQ0IA0KDQpZYXppZHVsZmFsYWNoLCBBLiwgJiBMdWRpZ2RvLCBVLiAoMjAxMykuIERhbXBhayBrZXNlcnRhYW4gbWFoYXNpc3dhIHBhZGEgbGVtYmFnYSBrZW1haGFzaXN3YWFuIHRlcmhhZGFwIHByZXN0YXNpIGFrYWRlbWlrIChzdHVkaSBrYXN1cyBtYWhhc2lzd2EganVydXNhbiBha3VudGFuc2kgUzEgRmFrdWx0YXMgZWtvbm9taSBkYW4gYmlzbmlzIFVuaXZlcnNpdGFzIEJyYXdpamF5YSkuIEp1cm5hbCBJbG1pYWggTWFoYXNpc3dhIEZFQiwgMigxKS5odHRwczovL2ppbWZlYi51Yi5hYy5pZC9pbmRleC5waHAvamltZmViL2FydGljbGUvdmlldy85MDQgDQoNCg0KDQoNCg0K