Tugas Pertemuan 11

Logo

1.1 Latihan 1

1.1.1 Hitung Rata-rata, Median, Standart Deviasi Pada Masing-Masing Cabang

Cabang A Cabang B Cabang C Cabang D
50 40 30 70
55 50 30 75
60 60 35 80
65 70 40 85
70 80 45 90

1. Mencari Cabang A: 50, 55, 60, 65, 70

  • Mencari Rata-rata: \[ \text{Rata-rata} = \frac{50 + 55 + 60 + 65 + 70}{5} = \frac{300}{5} = 60 \]

  • Mencari Median:

Mengurutkan data dari yang terkecil ke terbesar : \(50, 55, 60, 65, 70\). Dan mendapatkan nilai median nya : \[ \text{Median} = 60 \]

  • Menghitung Standar Deviasi Populasi:

Menggunakan Rumus : \[ \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^N (x_i - \mu)^2} \] \[ = \sqrt{\frac{(50-60)^2 + (55-60)^2 + (60-60)^2 + (65-60)^2 + (70-60)^2}{5}} \] \[ = \sqrt{\frac{100 + 25 + 0 + 25 + 100}{5}} \] \[ = \sqrt{\frac{250}{5}} = \sqrt{50} \approx 7.07 \]

  • Menghitung Standar Deviasi Sampel :

Menggunakan rumus : \[ s^2 = \sqrt{\frac{1}{N-1} \sum_{i=1}^{N} \left( x_i - \bar{x} \right)^2} \] \[ = \sqrt{\frac{1}{5-1} \left[ (50 - 60)^2 + (55 - 60)^2 + (60 - 60)^2 + (65 - 60)^2 + (70 - 60)^2 \right]} \] \[ = \sqrt{\frac{1}{4} \left[ 100 + 25 + 0 + 25 + 100 \right]} \] \[ = \sqrt{\frac{250}{4}} = \sqrt{62.5} \approx 7.91 \]

2. Mencari Cabang B: 40, 50, 60, 70, 80

  • Mencari Rata-rata: \[ \text{Rata-rata} = \frac{40 + 50 + 60 + 70 + 80}{5} = \frac{300}{5} = 60 \]

  • Mencari Median:

Mengurutkan data dari yang terkecil ke terbesar: \(40, 50, 60, 70, 80\). Dan mendapatkan nilai mediannya: \[ \text{Median} = 60 \]

  • Menghitung Standar Deviasi populasi:

Menggunakan rumus : \[ \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^N (x_i - \mu)^2} \] \[ = \sqrt{\frac{(40-60)^2 + (50-60)^2 + (60-60)^2 + (70-60)^2 + (80-60)^2}{5}} \] \[ = \sqrt{\frac{400 + 100 + 0 + 100 + 400}{5}} \] \[ = \sqrt{\frac{1000}{5}} = \sqrt{200} \approx 14.14 \]

  • Menghitung Standar Deviasi Sampel :

Menggunakan rumus : \[ s^2 = \sqrt{\frac{1}{N-1} \sum_{i=1}^{N} \left( x_i - \bar{x} \right)^2} \] \[ = \sqrt{\frac{1}{5-1} \left[ (40 - 60)^2 + (50 - 60)^2 + (60 - 60)^2 + (70 - 60)^2 + (80 - 60)^2 \right]} \] \[ = \sqrt{\frac{1}{4} \left[ 400 + 100 + 0 + 100 + 400 \right]} \] \[ = \sqrt{\frac{1000}{4}} = \sqrt{250} \approx 15.81 \]

3. Menghitung Cabang C: 30, 30, 35, 40, 45

  • Menghitung Rata-rata: \[ \text{Rata-rata} = \frac{30 + 30 + 35 + 40 + 45}{5} = \frac{180}{5} =36 \]

  • Menghitung Median:

Mengurutkan data dari yang terkecil ke terbesar : \(30,30,35,40,45\). Dan mendapatkan nilai mediannya: \[ \text{Median} =35 \]

  • Menghitung Standar Deviasi Populasi:

Menggunakan rumus : \[ \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^N (x_i - \mu)^2} \] \[ = \sqrt{\frac{(30-36)^2+(30-36)^2+(35-36)^2+(40-36)^2+(45-36)^2}{5}} \] \[ = \sqrt{\frac{36+36+1+16+81}{5}} \] \[ = \sqrt{\frac{170}{5}} = \sqrt{34} \approx5.83 \]

  • Menghitung Standar Deviasi Sampel :

Menggunakan rumus : \[ s^2 = \sqrt{\frac{1}{N-1} \sum_{i=1}^{N} \left( x_i - \bar{x} \right)^2} \] \[ = \sqrt{\frac{1}{5-1} \left[ (30 - 36)^2 + (30 - 36)^2 + (35 - 36)^2 + (40 - 36)^2 + (45 - 36)^2 \right]} \] \[ = \sqrt{\frac{1}{4} \left[ 36 + 36 + 1 + 16 + 81 \right]} \] \[ = \sqrt{\frac{170}{4}} = \sqrt{42.5} \approx 6.52 \]

4. Menghitung Cabang D: 70,75,80,85,90

  • Menghitung Rata-rata: \[ \text{Rata-rata} = \frac{70 +75+80+85+90}{5} = \frac{400}{5}=80 \]

  • Menghitung Median:

Mengurutkan data dari yang terkecil ke terbesar: \(70,75,80,85,90\). Dan mendapatkan nilai mediannya: \[ \text{Median}=80 \]

  • Menghitung Standar Deviasi Populasi:

Menggunakan rumus : \[ \sigma = \sqrt{\frac{1}{N} \sum_{i=1}^N (x_i - \mu)^2} \] \[ = \sqrt{\frac {(70-80)^{2}+(75-80)^{2}+(80-80)^{2}+(85-80)^{2}+(90-80)^{2}} {5}} \] \[ = \sqrt{\frac {100+25+0+25+100}{5}} \] \[ = \sqrt{\frac {250}{5}} = \sqrt {50}\approx7.07 \]

  • Menghitung Standar Deviasi Sampel :

Menggunakan rumus : \[ s^2 = \sqrt{\frac{1}{N-1} \sum_{i=1}^{N} \left( x_i - \bar{x} \right)^2} \] \[ = \sqrt{\frac{1}{5-1} \left[ (70 - 80)^2 + (75 - 80)^2 + (80 - 80)^2 + (85 - 80)^2 + (90 - 80)^2 \right]} \] \[ = \sqrt{\frac{1}{4} \left[ 100 + 25 + 0 + 25 + 100 \right]} \] \[ = \sqrt{\frac{250}{4}} = \sqrt{62.5} \approx 7.91 \]

Tabel ringkasan hasil:

Cabang Rata-Rata Median Standart Deviasi Populasi Standart Deviasi sampel
Cabang A 60 60 7.07 7.91
Cabang B 60 60 14.14 15.81
Cabang C 36 35 5.83 6.52
Cabang D 80 80 7.07 7.91

1.1.2 Cabang mana yang memiliki penyebaran data paling kecil? Jelaskan alasannya

Dari hasil perhitungan yang telah dilakukan, dapat terlihat bahwa Cabang C memiliki penyebaran data yang paling kecil dengan standar deviasi sebesar 5.83, Karena pada data cabang C memiliki 2 nilai yang relatif sama ( 30 ) sehingga cenderung stabil, tidak mengalami fluktuasi yang besar dan data penjualan di cabang ini mencerminkan konsistensi yang lebih baik dibandingkan dengan cabang lainnya. Sebagai perbandingan, Cabang A dan D memiliki standar deviasi masing-masing 7.07, sementara Cabang B memiliki standar deviasi 14.14, yang menunjukkan bahwa variasi penjualan yang lebih signifikan.

1.1.3 jika target penjualan minimum 50 juta rupiah cabang mana yang gagal mencapai target disemua datanya

  • Analisis Penjualan Cabang:

Target penjualan minimum yang ditetapkan adalah 50 juta rupiah. Berikut adalah analisis untuk masing-masing cabang:

  1. Cabang A Nilai penjualan: (50, 55, 60, 65, 70) :

\[\begin{align*} 50 & \geq 50 \quad (\text{Tercapai}) \\ 55 & \geq 50 \quad (\text{Tercapai}) \\ 60 & \geq 50 \quad (\text{Tercapai}) \\ 65 & \geq 50 \quad (\text{Tercapai}) \\ 70 & \geq 50 \quad (\text{Tercapai}) \end{align*}\]

Maka Kesimpulannya adalah : Pada cabang A tidak gagal mencapai target karena semua nilai diatas target.

  1. Cabang B Nilai penjualan: (40, 50, 60, 70, 80)

\[\begin{align*} 40 & < 50 \quad (\text{Tidak tercapai}) \\ 50 & \geq 50 \quad (\text{Tercapai}) \\ 60 & \geq 50 \quad (\text{Tercapai}) \\ 70 & \geq 50 \quad (\text{Tercapai}) \\ 80 & \geq 50 \quad (\text{Tercapai}) \end{align*}\]

Maka Kesimpulannya adalah : Pada Cabang B tidk gagal mencapai target, akan tetapi ada satu nilai di bawah target.

  1. Cabang C Nilai penjualan: (30, 30, 35, 40, 45)

\[\begin{align*} 30 & < 50 \quad (\text{Tidak tercapai}) \\ 30 & < 50 \quad (\text{Tidak tercapai}) \\ 35 & < 50 \quad (\text{Tidak tercapai}) \\ 40 & < 50 \quad (\text{Tidak tercapai}) \\ 45 & < 50 \quad (\text{Tidak tercapai}) \end{align*}\]

Maka Kesimpulannya adalah : Pada Cabang C mengalami gagal mencapai target karena semua nilai di bawah target.

  1. Cabang D Nilai penjualan: (70, 75, 80, 85, 90)

\[\begin{align*} 70 & \geq 50 \quad (\text{Tercapai}) \\ 75 & \geq 50 \quad (\text{Tercapai}) \\ 80 & \geq 50 \quad (\text{Tercapai}) \\ 85 & \geq 50 \quad (\text{Tercapai}) \\ 90 & \geq 50 \quad (\text{Tercapai}) \end{align*}\]

maka kesimpulan nya adalah: Pada cabang D tidak gagal mencapai target karena semua nilai diatas target.

Didapatkan analisis di atas:

  • Cabang A dan Cabang D berhasil mencapai target penjualan minimum sebesar 50 juta rupiah pada semua datanya.
  • Cabang B dapat mencapai target, akan tetapi terdapat satu nilai (40 juta) yang dibawah target penjualan.
  • Cabang C gagal mencapai target pada semua nilai penjualannya.

Kesimpulan :

Dari perhitungan manual ini, dapat disimpulkan bahwa Cabang C tidak memenuhi target penjualan minimum yang ditetapkan karena tidak mencapai target penjualan disemua datanya. Hal ini menunjukkan bahwa perlu adanya evaluasi lebih lanjut terhadap strategi penjualan di cabang tersebut untuk meningkatkan kinerja mereka di masa yang mendatang.

1.1.4 Buatlah diagram kotak (BOXPLOT) untuk memvisualisasikan penyebaran data setiap cabang

1.1.5 Jika anda seorang manager perusahaan, bagaimana anda akan menggunakan informasi ini untuk merencanakan strategi peningkatan jualan?

Sebagai seorang manajer perusahaan, saya akan menggunakan data dari analisis penjualan untuk mengembangkan strategi peningkatan penjualan yang sistematis dan berdasarkan fakta. Langkah pertama adalah menetapkan sasaran strategis yang jelas, termasuk menetapkan sasaran pendapatan dalam jangka pendek maupun jangka panjang. Selanjutnya, penting juga untuk mengidentifikasi segmen pasar yang kemungkinan besar akan dihadapi kedepannya agar strategi yang diterapkan akan lebih efektif.

Dan dengan mengumpulkan data secara rutin baik harian, mingguan, maupun bulanan maka di situ saya memperoleh wawasan yang maksimal tentang kinerja penjualan, seperti tren musiman atau produk yang paling laris . Analisis visual seperti grafik batang, boxplot dll dapat membantu saya untuk mengenali pola penjualan, sementara informasi demografi dari pelanggan dapat memberikan petunjuk tentang kebutuhan dan preferensi mereka.

Selain itu juga, memahami tahap-tahap saluran penjualan dapat membantu saya untuk mengidentifikasi hambatan yang dapat mengurangi tingkat konversi, seperti masalah pada situs web yang perlu diatasi. Penggunaan teknologi, seperti perangkat lunak, yang dapat mengotomatisasi pengumpulan dan analisis data secara efisien serta meminimalkan risiko kehilangan data atau kesalahan manual juga menjadi prioritas. Selain itu, pemantauan aktivitas persaingan juga memberikan peluang untuk memperoleh keunggulan kompetitif di pasar.

Maka analisis data adalah salah satu elemen mendasar dari strategi pemasaran. Data membantu saya untuk memahami tren, mengevaluasi keberhasilan promosi, dan memberikan gambaran aspek yang perlu ditingkatkan. Hal ini tidak hanya memberikan manfaat bagi perusahaan saja akan tetapi dapat menciptakan nilai lebih bagi pelanggan.

1.2 Latihan 2

Data pengiriman barang berdasarkan wilayah dan jenis barang :

Wilayah Jenis Barang Jumlah (unit) Barang Waktu (jam) Pengiriman Biaya per Unit (Rp)
Utara Elektronik 200 5 15000
Selatan Pakaian 150 8 8000
Timur Makanan 180 6 10000
Barat Peralatan 120 7 12000
Tengah Elektronik 250 4 14000
Utara Pakaian 300 9 8500
Selatan Makanan 220 7 9500
Timur Peralatan 140 5 11000
Barat Elektronik 180 6 14500
Tengah Pakaian 350 8 7800
Utara Peralatan 170 4 12000
Selatan Elektronik 250 6 16000
Timur Pakaian 190 7 8200
Barat Makanan 130 5 10500
Tengah Peralatan 180 5 11500

1.2.1 soal 1 (Analisis Efisiensi Pengiriman)

1.2.1.1 (Visualisasikan pengiriman barang berdasarkan jumlah barang, waktu pengiriman, dan biaya per unit dengan menggunakan plot 3D)

1.2.1.2 Tentukan wilayah mana yang memiliki efisiensi pengiriman terendah berdasarkan biaya per unit dan waktu pengiriman.

A. Perhitungan Efisiensi Pengiriman

Efisiensi Pengiriman dapat dihitung menggunakan rumus:

\[ \text{Efisiensi Pengiriman} = \frac{\text{Biaya per Unit (Rp)}}{\text{Waktu Pengiriman (jam)}} \]

  • Perhitungan Efisiensi Pengiriman:
  1. Utara (Elektronik)
    \[ \frac{15,000}{5} \approx 3,000 \]

  2. Selatan (Pakaian)
    \[ \frac{8,000}{8} \approx 1,000 \]

  3. Timur (Makanan)
    \[ \frac{10,000}{6} \approx 1,667 \]

  4. Barat (Peralatan)
    \[ \frac{12,000}{7} \approx 1,714 \]

  5. Tengah (Elektronik)
    \[ \frac{14,000}{4} = 3,500 \]

  6. Utara (Pakaian)
    \[ \frac{8,500}{9} \approx 944 \]

  7. Selatan (Makanan)
    \[ \frac{9,500}{7} \approx 1,357 \]

  8. Timur (Peralatan)
    \[ \frac{11,000}{5} = 2,200 \]

  9. Barat (Elektronik)
    \[ \frac{14,500}{6} \approx 2,417 \]

  10. Tengah (Pakaian)
    \[ \frac{7,800}{8} \approx 975 \]

  11. Utara (Peralatan)
    \[ \frac{12,000}{4} \approx 3,000 \]

  12. Selatan (Elektronik)
    \[ \frac{16,000}{6} \approx 2,667 \]

  13. Timur (Pakaian)
    \[ \frac{8,200}{7} \approx 1,171 \]

  14. Barat (Makanan)
    \[ \frac{10,500}{5} \approx 2,100 \]

  15. Tengah (Peralatan)
    \[ \frac{11,500}{5} \approx 2,300 \]

maka hasil akhir dari perhitungan diatas adalah sebagai berikut :

Wilayah Rasio Efisiensi
Utara 3,000
Selatan 1,000
Timur 1,667
Barat 1,714
Tengah 3,500
Utara 944
Selatan 1,357
Timur 2,200
Barat 2,417
Tengah 975
Utara 3,000
Selatan 2,667
Timur 1,171
Barat 2,100
Tengah 2,300

B. Menghitung Rata-rata Rasio Efisiensi

  • Wilayah Utara

\[ \text{Total Utara} = 3,000 + 944 + 3,000 = 6,944 \] \[ \text{Jumlah Data Utara} = 3 \] \[ \text{Rata-rata Utara} = \frac{6,944}{3} \approx 2.3147 \]

  • Wilayah Selatan

\[ \text{Total Selatan} = 1,000 + 1,357 + 2,667 = 5,024 \] \[ \text{Jumlah Data Selatan} = 3 \] \[ \text{Rata-rata Selatan} = \frac{5,024}{3} \approx 1.6747 \]

  • Wilayah Timur

\[ \text{Total Timur} = 1,667 + 2,200 + 1,171 = 5,038 \] \[ \text{Jumlah Data Timur} = 3 \] \[ \text{Rata-rata Timur} = \frac{5,038}{3} \approx 1.6793 \]

  • Wilayah Barat \[ \text{Total Barat} = 1,714 + 2,417 + 2,100 = 6,231 \] \[ \text{Jumlah Data Barat} = 3 \] \[ \text{Rata-rata Barat} = \frac{6,231}{3} \approx 2.0770 \]

  • Wilayah Tengah

\[ \text{Total Tengah} = 3,500 + 975 + 2,300 = 6,775 \] \[ \text{Jumlah Data Tengah} = 3 \] \[ \text{Rata-rata Tengah} = \frac{6,775}{3} \approx 2.2583 \]

  • Rangkuman Rata-rata Rasio Efisiensi per Wilayah
Wilayah Rata-rata Rasio Efisiensi
Utara 2.3147
Selatan 1.6747
Timur 1.6793
Barat 2.0770
Tengah 2.2583

Kesimpulan Mengenai Efisiensi Pengiriman Berdasarkan Biaya per Unit dan Waktu Pengiriman :

  • Kesimpulan umum
  1. Wilayah Selatan:

    • Dengan rata-rata rasio efisiensi terendah sebesar 1,6747, Wilayah Selatan menunjukkan bahwa biaya per unit dan waktu pengiriman di wilayah ini mungkin tidak optimal. Hal ini dapat disebabkan oleh berbagai faktor, seperti infrastruktur yang kurang memadai, proses logistik yang tidak efisien, atau tantangan dalam manajemen rantai pasokan.
  2. Wilayah Timur:

    • Wilayah Timur juga menunjukkan kinerja yang kurang baik dengan rata-rata rasio efisiensi sekitar 1,6793. Meskipun sedikit lebih baik dibandingkan Wilayah Selatan, masih terdapat potensi untuk perbaikan dalam hal pengurangan biaya dan waktu pengiriman.
  3. Perbandingan dengan Wilayah Lain:

    • Sementara Wilayah Utara dan Tengah menunjukkan kinerja yang jauh lebih baik dalam hal efisiensi pengiriman (masing-masing dengan rasio efisiensi 2,3147 dan 2,2583), Wilayah Barat dengan rasio 2,0770 juga menunjukkan performa yang lebih baik dibandingkan Selatan dan Timur.
  • Kesimpulan Akhir

Secara keseluruhan, Wilayah Selatan adalah wilayah dengan efisiensi pengiriman terendah berdasarkan biaya per unit dan waktu pengiriman. Meskipun ada tantangan di wilayah ini, dengan pendekatan yang tepat dan strategi peningkatan yang terencana, ada peluang signifikan untuk memperbaiki kinerja dan mencapai efisiensi yang lebih baik dalam pengiriman di masa depan.

1.2.2 soal 2 (Rekomendasi Operasional)

1.2.2.1 Berdasarkan hasil analisis, wilayah mana yang memerlukan perhatian khusus untuk meningkatkan efisiensi pengiriman?

Berdasarkan hasil analisis, wilayah yang memerlukan perhatian khusus untuk meningkatkan efisiensi pengiriman adalah Wilayah Selatan. Hal ini disebabkan oleh beberapa faktor, termasuk fakta bahwa Wilayah Selatan mencatatkan rata-rata rasio efisiensi terendah di antara semua wilayah, yaitu sekitar 1,6747, yang menunjukkan bahwa baik biaya per unit maupun waktu pengiriman di wilayah ini tidak optimal.

Selain itu, adanya tantangan infrastruktur yang signifikan, seperti jalan yang tidak memadai dan fasilitas transportasi yang terbatas, sehingga dapat memperlambat proses pengiriman dan meningkatkan biaya operasional. Kesenjangan pertumbuhan dalam distribusi barang dan akses pasar juga dapat menjadi salah satu masalah di wilayah ini, mirip dengan ketimpangan yang dihadapi oleh wilayah barat dan timur Indonesia.

Oleh karena itu, upaya untuk mengoptimalkan rantai pasok di Wilayah Selatan sangat penting untuk mengurangi disparitas harga dan meningkatkan daya saing.

1.2.2.1 Apa rekomendasi untuk mengurangi biaya dan waktu pengiriman di wilayah tersebut?

  1. Optimasi Rute Pengiriman:

Tentukan rute pengiriman paling efisien menggunakan metode seperti Saving Matrix. Dimana metode ini telah terbukti dapat menghemat jarak perjalanan dan waktu pengiriman dengan merencanakan urutan kunjungan yang optimal dan mengurangi biaya transportasi secara keseluruhan.

  1. Penerapan Sistem Manajemen Armada:

Menerapkan sistem manajemen armada yang efektif untuk perencanaan rute yang efisien, pemantauan rute waktu nyata, dan digitalisasi pesanan pengiriman.Hal ini memungkinkan arus pengiriman dikelola dengan lebih efisien, terutama selama periode sibuk.

  1. Berinvestasi dalam teknologi:

Memanfaatkan teknologi informasi untuk meningkatkan visibilitas dan transparansi dalam proses penyampaian.Aplikasi pelacakan paket dan sistem informasi logistik memungkinkan pelanggan memantau status pengiriman secara real time, meningkatkan kepuasan pelanggan dan efisiensi operasional.

  1. Pelatihan Staf:

Memberikan pelatihan kepada pekerja di sektor logistik untuk meningkatkan keterampilan mereka dalam manajemen rantai pasokan dan penggunaan teknologi baru. Personel yang berkualifikasi membantu meningkatkan efisiensi operasional secara keseluruhan.

1.2.3 Soal 3

1.2.3.1 Analisis kinerja pengiriman berdasarkan jenis barang dan wilayah. Mana yang memiliki waktu pengiriman lebih cepat dan biaya per unit lebih rendah?

  • Analisis Kinerja Pengiriman
  1. Waktu Pengiriman:
  • Waktu Tercepat:

    • Sentral Elektronik: Waktu pengiriman tercepat untuk produk elektronik adalah 4 jam.

    • Utara - Peralatan: Juga, waktu pengiriman adalah 4 jam.

  1. Biaya per unit:
  • Biaya minimum:

    • Sedang - Garmen: Biaya minimum per unit untuk jenis pakaian ini adalah Rp 7.800.

    • Selatan – Pakaian: Harga satuan adalah Rp 8.000,- yang juga relatif murah.

  • Rangkuman Kinerja Berdasarkan Jenis Barang dan Wilayah

  1. Elektronik:

    • Waktu Pengiriman Tercepat: Tengah (4 jam)

    • Biaya per Unit: Utara (15,000 Rp) dan Barat (14,500 Rp)

  2. Pakaian:

    • Waktu Pengiriman Terlama: Utara (9 jam)

    • Biaya per Unit Terendah: Tengah (7,800 Rp)

  3. Makanan:

    • Waktu Pengiriman: Timur (6 jam) dan Barat (5 jam)

    • Biaya per Unit: Selatan (9,500 Rp)

  4. Peralatan:

    • Waktu Pengiriman Tercepat: Timur dan Utara (5 jam)

    • Biaya per Unit: Barat (12,000 Rp) dan Tengah (11,500 Rp

Kesimpulan

  • Waktu pengiriman tercepat:

    • Waktu pengiriman tercepat untuk elektronik dan peralatan berada di wilayah Tengah dan Utara yaitu 4 jam.
  • Daerah dengan biaya per unit terendah:

    • Biaya per unit jenis pakaian terendah terdapat di wilayah Tengah sebesar Rp 7.800, disusul wilayah Selatan dengan biaya satuan sebesar Rp 8.000.
LS0tDQp0aXRsZTogIlR1Z2FzIFBlcnRlbXVhbiAxMSINCmF1dGhvcjogIldoaXJkeWFuYSBTaGFsZmEgQXl1YmkiDQpkYXRlOiAgImByIGZvcm1hdChTeXMuRGF0ZSgpLCAnJUIgJWQsICVZJylgIg0Kb3V0cHV0OiANCiAgcm1kZm9ybWF0czo6cmVhZHRoZWRvd246ICAgIyBodHRwczovL2dpdGh1Yi5jb20vanViYS9ybWRmb3JtYXRzDQogICAgc2VsZl9jb250YWluZWQ6IHRydWUNCiAgICB0aHVtYm5haWxzOiB0cnVlDQogICAgbGlnaHRib3g6IHRydWUNCiAgICBnYWxsZXJ5OiB0cnVlDQogICAgbGliX2RpcjogbGlicw0KICAgIGRmX3ByaW50OiAicGFnZWQiDQogICAgY29kZV9mb2xkaW5nOiAic2hvdyINCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBjc3M6ICJDOi9Vc2Vycy9TQUxGQS9PbmVEcml2ZS9Eb2N1bWVudHMvcHJha3Rpa3VtL3N0eWxlLmNzcyINCi0tLQ0KPGltZyBpZD0iZm90by1zaGFsZmEiIHNyYz0iQzovVXNlcnMvU0FMRkEvT25lRHJpdmUvRG9jdW1lbnRzL2ZvdG8gc2hhbGZhLmpwZyIgYWx0PSJMb2dvIiBzdHlsZT0id2lkdGg6MjAwcHg7IGRpc3BsYXk6IGJsb2NrOyBtYXJnaW46IGF1dG87Ij4NCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQojIDEuMSBMYXRpaGFuIDENCg0KIyMgMS4xLjEgSGl0dW5nIFJhdGEtcmF0YSwgTWVkaWFuLCBTdGFuZGFydCBEZXZpYXNpIFBhZGEgTWFzaW5nLU1hc2luZyBDYWJhbmcNCg0KfCBDYWJhbmcgQSAgIHwgQ2FiYW5nIEIgfCBDYWJhbmcgQ3wgQ2FiYW5nIEQgfA0KfC0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tfA0KfCA1MCAgICAgICAgIHwgNDAgICAgICAgfCAgMzAgICAgIHwgNzAgICAgICAgfA0KfCA1NSAgICAgICAgIHwgNTAgICAgICAgfCAgMzAgICAgIHwgNzUgICAgICAgfA0KfCA2MCAgICAgICAgIHwgNjAgICAgICAgfCAgMzUgICAgIHwgODAgICAgICAgfA0KfCA2NSAgICAgICAgIHwgNzAgICAgICAgfCAgNDAgICAgIHwgODUgICAgICAgfA0KfCA3MCAgICAgICAgIHwgODAgICAgICAgfCAgNDUgICAgIHwgOTAgICAgICAgfA0KDQogKioqMS4gTWVuY2FyaSBDYWJhbmcgQTogNTAsIDU1LCA2MCwgNjUsIDcwKioqDQoNCg0KLSBNZW5jYXJpIFJhdGEtcmF0YToNCiQkDQpcdGV4dHtSYXRhLXJhdGF9ID0gXGZyYWN7NTAgKyA1NSArIDYwICsgNjUgKyA3MH17NX0gPSBcZnJhY3szMDB9ezV9ID0gNjANCiQkDQoNCi0gTWVuY2FyaSBNZWRpYW46DQoNCiBNZW5ndXJ1dGthbiBkYXRhIGRhcmkgeWFuZyB0ZXJrZWNpbCBrZSB0ZXJiZXNhciA6IFwoNTAsIDU1LCA2MCwgNjUsIDcwXCkuIERhbiBtZW5kYXBhdGthbiBuaWxhaSBtZWRpYW4gbnlhIDoNCiQkDQpcdGV4dHtNZWRpYW59ID0gNjANCiQkDQoNCi0gTWVuZ2hpdHVuZyBTdGFuZGFyIERldmlhc2kgUG9wdWxhc2k6DQoNCk1lbmdndW5ha2FuIFJ1bXVzIDoNCiQkDQpcc2lnbWEgPSBcc3FydHtcZnJhY3sxfXtOfSBcc3VtX3tpPTF9Xk4gKHhfaSAtIFxtdSleMn0NCiQkDQokJA0KPSBcc3FydHtcZnJhY3soNTAtNjApXjIgKyAoNTUtNjApXjIgKyAoNjAtNjApXjIgKyAoNjUtNjApXjIgKyAoNzAtNjApXjJ9ezV9fQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjezEwMCArIDI1ICsgMCArIDI1ICsgMTAwfXs1fX0NCiQkDQokJA0KPSBcc3FydHtcZnJhY3syNTB9ezV9fQ0KPSBcc3FydHs1MH0gXGFwcHJveCA3LjA3DQokJA0KDQotIE1lbmdoaXR1bmcgU3RhbmRhciBEZXZpYXNpIFNhbXBlbCA6DQoNCk1lbmdndW5ha2FuIHJ1bXVzIDoNCiQkDQpzXjIgPSBcc3FydHtcZnJhY3sxfXtOLTF9IFxzdW1fe2k9MX1ee059IFxsZWZ0KCB4X2kgLSBcYmFye3h9IFxyaWdodCleMn0NCiQkDQokJA0KID0gXHNxcnR7XGZyYWN7MX17NS0xfSBcbGVmdFsgKDUwIC0gNjApXjIgKyAoNTUgLSA2MCleMiArICg2MCAtIDYwKV4yICsgKDY1IC0gNjApXjIgKyAoNzAgLSA2MCleMiBccmlnaHRdfQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjezF9ezR9IFxsZWZ0WyAxMDAgKyAyNSArIDAgKyAyNSArIDEwMCBccmlnaHRdfQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjezI1MH17NH19ID0gXHNxcnR7NjIuNX0gXGFwcHJveCA3LjkxDQokJA0KDQoqKioyLiBNZW5jYXJpIENhYmFuZyBCOiA0MCwgNTAsIDYwLCA3MCwgODAqKioNCg0KLSBNZW5jYXJpIFJhdGEtcmF0YToNCiQkDQpcdGV4dHtSYXRhLXJhdGF9ID0gXGZyYWN7NDAgKyA1MCArIDYwICsgNzAgKyA4MH17NX0gPSBcZnJhY3szMDB9ezV9ID0gNjANCiQkDQoNCi0gTWVuY2FyaSBNZWRpYW46DQoNCk1lbmd1cnV0a2FuIGRhdGEgZGFyaSB5YW5nIHRlcmtlY2lsIGtlIHRlcmJlc2FyOiBcKDQwLCA1MCwgNjAsIDcwLCA4MFwpLiBEYW4gbWVuZGFwYXRrYW4gbmlsYWkgbWVkaWFubnlhOg0KJCQNClx0ZXh0e01lZGlhbn0gPSA2MA0KJCQNCg0KLSBNZW5naGl0dW5nIFN0YW5kYXIgRGV2aWFzaSBwb3B1bGFzaToNCg0KTWVuZ2d1bmFrYW4gcnVtdXMgOg0KJCQNClxzaWdtYSA9IFxzcXJ0e1xmcmFjezF9e059IFxzdW1fe2k9MX1eTiAoeF9pIC0gXG11KV4yfQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjeyg0MC02MCleMiArICg1MC02MCleMiArICg2MC02MCleMiArICg3MC02MCleMiArICg4MC02MCleMn17NX19DQokJA0KJCQNCj0gXHNxcnR7XGZyYWN7NDAwICsgMTAwICsgMCArIDEwMCArIDQwMH17NX19DQokJA0KJCQNCj0gXHNxcnR7XGZyYWN7MTAwMH17NX19DQo9IFxzcXJ0ezIwMH0NClxhcHByb3ggMTQuMTQNCiQkDQoNCi0gTWVuZ2hpdHVuZyBTdGFuZGFyIERldmlhc2kgU2FtcGVsIDoNCg0KTWVuZ2d1bmFrYW4gcnVtdXMgOg0KJCQNCnNeMiA9IFxzcXJ0e1xmcmFjezF9e04tMX0gXHN1bV97aT0xfV57Tn0gXGxlZnQoIHhfaSAtIFxiYXJ7eH0gXHJpZ2h0KV4yfQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjezF9ezUtMX0gXGxlZnRbICg0MCAtIDYwKV4yICsgKDUwIC0gNjApXjIgKyAoNjAgLSA2MCleMiArICg3MCAtIDYwKV4yICsgKDgwIC0gNjApXjIgXHJpZ2h0XX0NCiQkDQokJA0KPSBcc3FydHtcZnJhY3sxfXs0fSBcbGVmdFsgNDAwICsgMTAwICsgMCArIDEwMCArIDQwMCBccmlnaHRdfSANCiQkDQokJA0KPSBcc3FydHtcZnJhY3sxMDAwfXs0fX0gPSBcc3FydHsyNTB9IFxhcHByb3ggMTUuODENCiQkDQoNCioqKjMuIE1lbmdoaXR1bmcgQ2FiYW5nIEM6IDMwLCAzMCwgMzUsIDQwLCA0NSoqKg0KDQotIE1lbmdoaXR1bmcgUmF0YS1yYXRhOg0KJCQNClx0ZXh0e1JhdGEtcmF0YX0gPSBcZnJhY3szMCArIDMwICsgMzUgKyA0MCArIDQ1fXs1fSA9IFxmcmFjezE4MH17NX0gPTM2DQokJA0KDQotIE1lbmdoaXR1bmcgTWVkaWFuOg0KDQpNZW5ndXJ1dGthbiBkYXRhIGRhcmkgeWFuZyB0ZXJrZWNpbCBrZSB0ZXJiZXNhciA6IFwoMzAsMzAsMzUsNDAsNDVcKS4gRGFuIG1lbmRhcGF0a2FuIG5pbGFpIG1lZGlhbm55YToNCiQkDQpcdGV4dHtNZWRpYW59ID0zNQ0KJCQNCg0KLSBNZW5naGl0dW5nIFN0YW5kYXIgRGV2aWFzaSBQb3B1bGFzaToNCg0KTWVuZ2d1bmFrYW4gcnVtdXMgOg0KJCQNClxzaWdtYSA9IFxzcXJ0e1xmcmFjezF9e059IFxzdW1fe2k9MX1eTiAoeF9pIC0gXG11KV4yfQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjeygzMC0zNileMisoMzAtMzYpXjIrKDM1LTM2KV4yKyg0MC0zNileMisoNDUtMzYpXjJ9ezV9fQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjezM2KzM2KzErMTYrODF9ezV9fQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjezE3MH17NX19DQo9IFxzcXJ0ezM0fQ0KXGFwcHJveDUuODMNCiQkDQoNCg0KLSBNZW5naGl0dW5nIFN0YW5kYXIgRGV2aWFzaSBTYW1wZWwgOg0KDQpNZW5nZ3VuYWthbiBydW11cyA6DQokJA0Kc14yID0gXHNxcnR7XGZyYWN7MX17Ti0xfSBcc3VtX3tpPTF9XntOfSBcbGVmdCggeF9pIC0gXGJhcnt4fSBccmlnaHQpXjJ9DQokJA0KJCQNCj0gXHNxcnR7XGZyYWN7MX17NS0xfSBcbGVmdFsgKDMwIC0gMzYpXjIgKyAoMzAgLSAzNileMiArICgzNSAtIDM2KV4yICsgKDQwIC0gMzYpXjIgKyAoNDUgLSAzNileMiBccmlnaHRdfQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjezF9ezR9IFxsZWZ0WyAzNiArIDM2ICsgMSArIDE2ICsgODEgXHJpZ2h0XX0NCiQkDQokJA0KPSBcc3FydHtcZnJhY3sxNzB9ezR9fSA9IFxzcXJ0ezQyLjV9IFxhcHByb3ggNi41Mg0KJCQNCg0KKioqNC4gTWVuZ2hpdHVuZyBDYWJhbmcgRDogNzAsNzUsODAsODUsOTAqKioNCg0KLSBNZW5naGl0dW5nIFJhdGEtcmF0YToNCiQkDQpcdGV4dHtSYXRhLXJhdGF9ID0gXGZyYWN7NzAgKzc1KzgwKzg1KzkwfXs1fSA9IFxmcmFjezQwMH17NX09ODANCiQkDQoNCi0gTWVuZ2hpdHVuZyBNZWRpYW46DQoNCk1lbmd1cnV0a2FuIGRhdGEgZGFyaSB5YW5nIHRlcmtlY2lsIGtlIHRlcmJlc2FyOiBcKDcwLDc1LDgwLDg1LDkwXCkuIERhbiBtZW5kYXBhdGthbiBuaWxhaSBtZWRpYW5ueWE6DQokJA0KICAgIFx0ZXh0e01lZGlhbn09ODANCiQkDQoNCg0KLSBNZW5naGl0dW5nIFN0YW5kYXIgRGV2aWFzaSBQb3B1bGFzaToNCg0KTWVuZ2d1bmFrYW4gcnVtdXMgOg0KJCQNClxzaWdtYSA9IFxzcXJ0e1xmcmFjezF9e059IFxzdW1fe2k9MX1eTiAoeF9pIC0gXG11KV4yfQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjIHsoNzAtODApXnsyfSsoNzUtODApXnsyfSsoODAtODApXnsyfSsoODUtODApXnsyfSsoOTAtODApXnsyfX0gezV9fQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjIHsxMDArMjUrMCsyNSsxMDB9ezV9fQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjIHsyNTB9ezV9fQ0KPSBcc3FydCB7NTB9XGFwcHJveDcuMDcNCiQkDQoNCi0gTWVuZ2hpdHVuZyBTdGFuZGFyIERldmlhc2kgU2FtcGVsIDoNCg0KTWVuZ2d1bmFrYW4gcnVtdXMgOg0KJCQNCnNeMiA9IFxzcXJ0e1xmcmFjezF9e04tMX0gXHN1bV97aT0xfV57Tn0gXGxlZnQoIHhfaSAtIFxiYXJ7eH0gXHJpZ2h0KV4yfQ0KJCQNCiQkDQo9IFxzcXJ0e1xmcmFjezF9ezUtMX0gXGxlZnRbICg3MCAtIDgwKV4yICsgKDc1IC0gODApXjIgKyAoODAgLSA4MCleMiArICg4NSAtIDgwKV4yICsgKDkwIC0gODApXjIgXHJpZ2h0XX0NCiQkDQokJA0KPSBcc3FydHtcZnJhY3sxfXs0fSBcbGVmdFsgMTAwICsgMjUgKyAwICsgMjUgKyAxMDAgXHJpZ2h0XX0NCiQkDQokJA0KPSBcc3FydHtcZnJhY3syNTB9ezR9fSA9IFxzcXJ0ezYyLjV9IFxhcHByb3ggNy45MQ0KJCQNCg0KDQoNCioqKlRhYmVsIHJpbmdrYXNhbiBoYXNpbDoqKioNCg0KDQp8IENhYmFuZyAgICAgfCBSYXRhLVJhdGEgfCBNZWRpYW4gfCBTdGFuZGFydCBEZXZpYXNpIFBvcHVsYXNpIHwgU3RhbmRhcnQgRGV2aWFzaSBzYW1wZWwgfA0KfC0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS18DQp8IENhYmFuZyBBICAgfCA2MCAgICAgICB8ICA2MCAgICAgfCA3LjA3ICAgICB8IDcuOTEgIHwNCnwgQ2FiYW5nIEIgICB8IDYwICAgICAgIHwgIDYwICAgICB8IDE0LjE0ICAgIHwgMTUuODEgfA0KfCBDYWJhbmcgQyAgIHwgMzYgICAgICAgfCAgMzUgICAgIHwgNS44MyAgICAgfCA2LjUyICB8DQp8IENhYmFuZyBEICAgfCA4MCAgICAgICB8ICA4MCAgICAgfCA3LjA3ICAgICB8IDcuOTEgIHwNCg0KDQojIyAxLjEuMiBDYWJhbmcgbWFuYSB5YW5nIG1lbWlsaWtpIHBlbnllYmFyYW4gZGF0YSBwYWxpbmcga2VjaWw/IEplbGFza2FuIGFsYXNhbm55YQ0KDQpEYXJpIGhhc2lsIHBlcmhpdHVuZ2FuIHlhbmcgdGVsYWggZGlsYWt1a2FuLCBkYXBhdCB0ZXJsaWhhdCBiYWh3YSBDYWJhbmcgQyBtZW1pbGlraSBwZW55ZWJhcmFuIGRhdGEgeWFuZyBwYWxpbmcga2VjaWwgZGVuZ2FuIHN0YW5kYXIgZGV2aWFzaSBzZWJlc2FyIDUuODMsIEthcmVuYSBwYWRhIGRhdGEgY2FiYW5nIEMgbWVtaWxpa2kgMiBuaWxhaSB5YW5nIHJlbGF0aWYgc2FtYSAoIDMwICkgc2VoaW5nZ2EgY2VuZGVydW5nIHN0YWJpbCwgdGlkYWsgbWVuZ2FsYW1pIGZsdWt0dWFzaSB5YW5nIGJlc2FyIGRhbiBkYXRhIHBlbmp1YWxhbiBkaSBjYWJhbmcgaW5pIG1lbmNlcm1pbmthbiBrb25zaXN0ZW5zaSB5YW5nIGxlYmloIGJhaWsgZGliYW5kaW5na2FuIGRlbmdhbiBjYWJhbmcgbGFpbm55YS4gU2ViYWdhaSBwZXJiYW5kaW5nYW4sIENhYmFuZyBBIGRhbiBEIG1lbWlsaWtpIHN0YW5kYXIgZGV2aWFzaSBtYXNpbmctbWFzaW5nIDcuMDcsIHNlbWVudGFyYSBDYWJhbmcgQiBtZW1pbGlraSBzdGFuZGFyIGRldmlhc2kgMTQuMTQsIHlhbmcgbWVudW5qdWtrYW4gYmFod2EgdmFyaWFzaSBwZW5qdWFsYW4geWFuZyBsZWJpaCBzaWduaWZpa2FuLg0KDQoNCiMjIDEuMS4zIGppa2EgdGFyZ2V0IHBlbmp1YWxhbiBtaW5pbXVtIDUwIGp1dGEgcnVwaWFoIGNhYmFuZyBtYW5hIHlhbmcgZ2FnYWwgbWVuY2FwYWkgdGFyZ2V0IGRpc2VtdWEgZGF0YW55YQ0KDQotIEFuYWxpc2lzIFBlbmp1YWxhbiBDYWJhbmc6DQoNClRhcmdldCBwZW5qdWFsYW4gbWluaW11bSB5YW5nIGRpdGV0YXBrYW4gYWRhbGFoICoqNTAganV0YSBydXBpYWgqKi4gQmVyaWt1dCBhZGFsYWggYW5hbGlzaXMgdW50dWsgbWFzaW5nLW1hc2luZyBjYWJhbmc6DQoNCjEuIENhYmFuZyBBDQpOaWxhaSBwZW5qdWFsYW46ICg1MCwgNTUsIDYwLCA2NSwgNzApIDoNCg0KXGJlZ2lue2FsaWduKn0NCiAgICA1MCAmIFxnZXEgNTAgXHF1YWQgKFx0ZXh0e1RlcmNhcGFpfSkgXFwNCiAgICA1NSAmIFxnZXEgNTAgXHF1YWQgKFx0ZXh0e1RlcmNhcGFpfSkgXFwNCiAgICA2MCAmIFxnZXEgNTAgXHF1YWQgKFx0ZXh0e1RlcmNhcGFpfSkgXFwNCiAgICA2NSAmIFxnZXEgNTAgXHF1YWQgKFx0ZXh0e1RlcmNhcGFpfSkgXFwNCiAgICA3MCAmIFxnZXEgNTAgXHF1YWQgKFx0ZXh0e1RlcmNhcGFpfSkNClxlbmR7YWxpZ24qfQ0KDQpNYWthIEtlc2ltcHVsYW5ueWEgYWRhbGFoIDogUGFkYSBjYWJhbmcgQSB0aWRhayBnYWdhbCBtZW5jYXBhaSB0YXJnZXQga2FyZW5hIHNlbXVhIG5pbGFpIGRpYXRhcyB0YXJnZXQuDQoNCjIuIENhYmFuZyBCDQpOaWxhaSBwZW5qdWFsYW46ICg0MCwgNTAsIDYwLCA3MCwgODApDQoNClxiZWdpbnthbGlnbip9DQogICAgNDAgJiA8IDUwIFxxdWFkIChcdGV4dHtUaWRhayB0ZXJjYXBhaX0pIFxcDQogICAgNTAgJiBcZ2VxIDUwIFxxdWFkIChcdGV4dHtUZXJjYXBhaX0pIFxcDQogICAgNjAgJiBcZ2VxIDUwIFxxdWFkIChcdGV4dHtUZXJjYXBhaX0pIFxcDQogICAgNzAgJiBcZ2VxIDUwIFxxdWFkIChcdGV4dHtUZXJjYXBhaX0pIFxcDQogICAgODAgJiBcZ2VxIDUwIFxxdWFkIChcdGV4dHtUZXJjYXBhaX0pDQpcZW5ke2FsaWduKn0NCg0KTWFrYSBLZXNpbXB1bGFubnlhIGFkYWxhaCA6IFBhZGEgQ2FiYW5nIEIgdGlkayBnYWdhbCBtZW5jYXBhaSB0YXJnZXQsIGFrYW4gdGV0YXBpIGFkYSBzYXR1IG5pbGFpIGRpIGJhd2FoIHRhcmdldC4NCg0KMy4gQ2FiYW5nIEMNCk5pbGFpIHBlbmp1YWxhbjogKDMwLCAzMCwgMzUsIDQwLCA0NSkNCg0KXGJlZ2lue2FsaWduKn0NCiAgICAzMCAmIDwgNTAgXHF1YWQgKFx0ZXh0e1RpZGFrIHRlcmNhcGFpfSkgXFwNCiAgICAzMCAmIDwgNTAgXHF1YWQgKFx0ZXh0e1RpZGFrIHRlcmNhcGFpfSkgXFwNCiAgICAzNSAmIDwgNTAgXHF1YWQgKFx0ZXh0e1RpZGFrIHRlcmNhcGFpfSkgXFwNCiAgICA0MCAmIDwgNTAgXHF1YWQgKFx0ZXh0e1RpZGFrIHRlcmNhcGFpfSkgXFwNCiAgICA0NSAmIDwgNTAgXHF1YWQgKFx0ZXh0e1RpZGFrIHRlcmNhcGFpfSkNClxlbmR7YWxpZ24qfQ0KDQpNYWthIEtlc2ltcHVsYW5ueWEgYWRhbGFoIDogUGFkYSBDYWJhbmcgQyBtZW5nYWxhbWkgZ2FnYWwgbWVuY2FwYWkgdGFyZ2V0IGthcmVuYSBzZW11YSBuaWxhaSBkaSBiYXdhaCB0YXJnZXQuDQoNCjQuIENhYmFuZyBEDQpOaWxhaSBwZW5qdWFsYW46ICg3MCwgNzUsIDgwLCA4NSwgOTApDQoNClxiZWdpbnthbGlnbip9DQogICAgNzAgJiBcZ2VxIDUwIFxxdWFkIChcdGV4dHtUZXJjYXBhaX0pIFxcDQogICAgNzUgJiBcZ2VxIDUwIFxxdWFkIChcdGV4dHtUZXJjYXBhaX0pIFxcDQogICAgODAgJiBcZ2VxIDUwIFxxdWFkIChcdGV4dHtUZXJjYXBhaX0pIFxcDQogICAgODUgJiBcZ2VxIDUwIFxxdWFkIChcdGV4dHtUZXJjYXBhaX0pIFxcDQogICAgOTAgJiBcZ2VxIDUwIFxxdWFkIChcdGV4dHtUZXJjYXBhaX0pDQpcZW5ke2FsaWduKn0NCg0KbWFrYSBrZXNpbXB1bGFuIG55YSBhZGFsYWg6IFBhZGEgY2FiYW5nIEQgdGlkYWsgZ2FnYWwgbWVuY2FwYWkgdGFyZ2V0IGthcmVuYSBzZW11YSBuaWxhaSBkaWF0YXMgdGFyZ2V0Lg0KDQogRGlkYXBhdGthbiBhbmFsaXNpcyAgZGkgYXRhczoNCg0KLSBDYWJhbmcgQSBkYW4gQ2FiYW5nIEQgYmVyaGFzaWwgbWVuY2FwYWkgdGFyZ2V0IHBlbmp1YWxhbiBtaW5pbXVtIHNlYmVzYXIgKio1MCBqdXRhIHJ1cGlhaCoqIHBhZGEgc2VtdWEgZGF0YW55YS4NCi0gQ2FiYW5nIEIgZGFwYXQgbWVuY2FwYWkgdGFyZ2V0LCBha2FuIHRldGFwaSB0ZXJkYXBhdCBzYXR1IG5pbGFpICg0MCBqdXRhKSB5YW5nIGRpYmF3YWggdGFyZ2V0IHBlbmp1YWxhbi4NCi0gQ2FiYW5nIEMgZ2FnYWwgbWVuY2FwYWkgdGFyZ2V0IHBhZGEgc2VtdWEgbmlsYWkgcGVuanVhbGFubnlhLg0KDQpLZXNpbXB1bGFuIDoNCg0KRGFyaSBwZXJoaXR1bmdhbiBtYW51YWwgaW5pLCBkYXBhdCBkaXNpbXB1bGthbiBiYWh3YSBDYWJhbmcgQyB0aWRhayBtZW1lbnVoaSB0YXJnZXQgcGVuanVhbGFuIG1pbmltdW0geWFuZyBkaXRldGFwa2FuIGthcmVuYSB0aWRhayBtZW5jYXBhaSB0YXJnZXQgcGVuanVhbGFuIGRpc2VtdWEgZGF0YW55YS4gSGFsIGluaSBtZW51bmp1a2thbiBiYWh3YSBwZXJsdSBhZGFueWEgZXZhbHVhc2kgbGViaWggbGFuanV0IHRlcmhhZGFwIHN0cmF0ZWdpIHBlbmp1YWxhbiBkaSBjYWJhbmcgdGVyc2VidXQgdW50dWsgbWVuaW5na2F0a2FuIGtpbmVyamEgbWVyZWthIGRpIG1hc2EgeWFuZyBtZW5kYXRhbmcuDQoNCg0KIyMgMS4xLjQgQnVhdGxhaCBkaWFncmFtIGtvdGFrIChCT1hQTE9UKSB1bnR1ayBtZW12aXN1YWxpc2FzaWthbiBwZW55ZWJhcmFuIGRhdGEgc2V0aWFwIGNhYmFuZw0KDQoNCmBgYHtyLCBlY2hvPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KDQpzdXBwcmVzc01lc3NhZ2VzKGxpYnJhcnkocGxvdGx5KSkNCg0KIyBEYXRhIHBlbmp1YWxhbiB1bnR1ayBzZXRpYXAgY2FiYW5nDQpjYWJhbmdfQSA8LSBjKDUwLCA1NSwgNjAsIDY1LCA3MCkNCmNhYmFuZ19CIDwtIGMoNDAsIDUwLCA2MCwgNzAsIDgwKQ0KY2FiYW5nX0MgPC0gYygzMCwgMzAsIDM1LCA0MCwgNDUpDQpjYWJhbmdfRCA8LSBjKDcwLCA3NSwgODAsIDg1LCA5MCkNCg0KIyBNZW1idWF0IEJveCBQbG90IHVudHVrIHNldGlhcCBjYWJhbmcNCmZpZyA8LSBwbG90X2x5KA0KICB0eXBlID0gImJveCIsDQogIHkgPSBjYWJhbmdfQSwNCiAgbmFtZSA9ICJDYWJhbmcgQSIsDQogIGJveG1lYW4gPSAic2QiLCAgIyBNZW5hbXBpbGthbiBtZWFuDQogIG1hcmtlciA9IGxpc3QoY29sb3IgPSAnYmx1ZScpLA0KICBqaXR0ZXIgPSAwLjMsICAjIE1lbWJlcmlrYW4gdmFyaWFzaSBwb3Npc2kgaG9yaXpvbnRhbCB1bnR1ayB0aXRpayBwZW55ZWJhcg0KICBwb2ludHBvcyA9IC0xLjUsICAjIE1lbmdhdHVyIHBvc2lzaSB0aXRpayBwZW55ZWJhciBkaSBsdWFyIGJveHBsb3QNCiAgYm94cG9pbnRzID0gImFsbCIgICMgTWVuYW1waWxrYW4gc2VtdWEgZGF0YSBwb2luDQopICU+JQ0KICBhZGRfdHJhY2UoDQogICAgeSA9IGNhYmFuZ19CLA0KICAgIG5hbWUgPSAiQ2FiYW5nIEIiLA0KICAgIGJveG1lYW4gPSAic2QiLA0KICAgIG1hcmtlciA9IGxpc3QoY29sb3IgPSAnb3JhbmdlJyksDQogICAgaml0dGVyID0gMC4zLA0KICAgIHBvaW50cG9zID0gLTEuNSwNCiAgICBib3hwb2ludHMgPSAiYWxsIg0KICApICU+JQ0KICBhZGRfdHJhY2UoDQogICAgeSA9IGNhYmFuZ19DLA0KICAgIG5hbWUgPSAiQ2FiYW5nIEMiLA0KICAgIGJveG1lYW4gPSAic2QiLA0KICAgIG1hcmtlciA9IGxpc3QoY29sb3IgPSAnZ3JlZW4nKSwNCiAgICBqaXR0ZXIgPSAwLjMsDQogICAgcG9pbnRwb3MgPSAtMS41LA0KICAgIGJveHBvaW50cyA9ICJhbGwiDQogICkgJT4lDQogIGFkZF90cmFjZSgNCiAgICB5ID0gY2FiYW5nX0QsDQogICAgbmFtZSA9ICJDYWJhbmcgRCIsDQogICAgYm94bWVhbiA9ICJzZCIsDQogICAgbWFya2VyID0gbGlzdChjb2xvciA9ICdyZWQnKSwNCiAgICBqaXR0ZXIgPSAwLjMsDQogICAgcG9pbnRwb3MgPSAtMS41LA0KICAgIGJveHBvaW50cyA9ICJhbGwiDQogICkNCg0KIyBNZW5hbWJhaGthbiBsYXlvdXQNCmZpZyA8LSBmaWcgJT4lDQogIGxheW91dCgNCiAgICB0aXRsZSA9ICJCb3ggUGxvdCBQZW5qdWFsYW4gQ2FiYW5nIEEsIEIsIEMsIGRhbiBEIiwNCiAgICB5YXhpcyA9IGxpc3QodGl0bGUgPSAiUGVuanVhbGFuIChKdXRhIFJ1cGlhaCkiKSwNCiAgICB4YXhpcyA9IGxpc3QodGl0bGUgPSAiQ2FiYW5nIikNCiAgKQ0KDQojIE1lbmFtcGlsa2FuIHBsb3QNCmZpZw0KYGBgDQoNCiMjIDEuMS41IEppa2EgYW5kYSBzZW9yYW5nIG1hbmFnZXIgcGVydXNhaGFhbiwgYmFnYWltYW5hIGFuZGEgYWthbiBtZW5nZ3VuYWthbiBpbmZvcm1hc2kgaW5pIHVudHVrIG1lcmVuY2FuYWthbiBzdHJhdGVnaSBwZW5pbmdrYXRhbiBqdWFsYW4/DQoNClNlYmFnYWkgc2VvcmFuZyBtYW5hamVyIHBlcnVzYWhhYW4sIHNheWEgYWthbiBtZW5nZ3VuYWthbiBkYXRhIGRhcmkgYW5hbGlzaXMgcGVuanVhbGFuIHVudHVrIG1lbmdlbWJhbmdrYW4gc3RyYXRlZ2kgcGVuaW5na2F0YW4gcGVuanVhbGFuIHlhbmcgc2lzdGVtYXRpcyBkYW4gYmVyZGFzYXJrYW4gZmFrdGEuIExhbmdrYWggcGVydGFtYSBhZGFsYWggbWVuZXRhcGthbiBzYXNhcmFuIHN0cmF0ZWdpcyB5YW5nIGplbGFzLCB0ZXJtYXN1ayBtZW5ldGFwa2FuIHNhc2FyYW4gcGVuZGFwYXRhbiAgZGFsYW0gamFuZ2thIHBlbmRlayBtYXVwdW4gamFuZ2thIHBhbmphbmcuIFNlbGFuanV0bnlhLCBwZW50aW5nIGp1Z2EgdW50dWsgbWVuZ2lkZW50aWZpa2FzaSBzZWdtZW4gcGFzYXIgeWFuZyBrZW11bmdraW5hbiBiZXNhciBha2FuIGRpaGFkYXBpIGtlZGVwYW5ueWEgYWdhciBzdHJhdGVnaSB5YW5nIGRpdGVyYXBrYW4gYWthbiBsZWJpaCBlZmVrdGlmLg0KDQpEYW4gZGVuZ2FuIG1lbmd1bXB1bGthbiBkYXRhIHNlY2FyYSBydXRpbiBiYWlrIGhhcmlhbiwgbWluZ2d1YW4sIG1hdXB1biBidWxhbmFuIG1ha2EgZGkgc2l0dSBzYXlhIG1lbXBlcm9sZWggd2F3YXNhbiB5YW5nIG1ha3NpbWFsIHRlbnRhbmcga2luZXJqYSBwZW5qdWFsYW4sIHNlcGVydGkgdHJlbiBtdXNpbWFuIGF0YXUgcHJvZHVrIHlhbmcgcGFsaW5nIGxhcmlzIC4gQW5hbGlzaXMgdmlzdWFsIHNlcGVydGkgZ3JhZmlrIGJhdGFuZywgYm94cGxvdCBkbGwgZGFwYXQgbWVtYmFudHUgc2F5YSB1bnR1ayBtZW5nZW5hbGkgcG9sYSBwZW5qdWFsYW4sIHNlbWVudGFyYSBpbmZvcm1hc2kgZGVtb2dyYWZpIGRhcmkgcGVsYW5nZ2FuIGRhcGF0IG1lbWJlcmlrYW4gcGV0dW5qdWsgdGVudGFuZyBrZWJ1dHVoYW4gZGFuIHByZWZlcmVuc2kgbWVyZWthLg0KDQpTZWxhaW4gaXR1IGp1Z2EsIG1lbWFoYW1pIHRhaGFwLXRhaGFwIHNhbHVyYW4gcGVuanVhbGFuIGRhcGF0IG1lbWJhbnR1IHNheWEgdW50dWsgbWVuZ2lkZW50aWZpa2FzaSBoYW1iYXRhbiB5YW5nIGRhcGF0IG1lbmd1cmFuZ2kgdGluZ2thdCBrb252ZXJzaSwgc2VwZXJ0aSBtYXNhbGFoIHBhZGEgc2l0dXMgd2ViIHlhbmcgcGVybHUgZGlhdGFzaS4gUGVuZ2d1bmFhbiB0ZWtub2xvZ2ksIHNlcGVydGkgcGVyYW5na2F0IGx1bmFrLCB5YW5nIGRhcGF0IG1lbmdvdG9tYXRpc2FzaSBwZW5ndW1wdWxhbiBkYW4gYW5hbGlzaXMgZGF0YSBzZWNhcmEgZWZpc2llbiBzZXJ0YSBtZW1pbmltYWxrYW4gcmlzaWtvIGtlaGlsYW5nYW4gZGF0YSBhdGF1IGtlc2FsYWhhbiBtYW51YWwganVnYSBtZW5qYWRpIHByaW9yaXRhcy4gU2VsYWluIGl0dSwgcGVtYW50YXVhbiBha3Rpdml0YXMgcGVyc2FpbmdhbiBqdWdhIG1lbWJlcmlrYW4gcGVsdWFuZyAgdW50dWsgbWVtcGVyb2xlaCBrZXVuZ2d1bGFuIGtvbXBldGl0aWYgZGkgcGFzYXIuDQoNCk1ha2EgYW5hbGlzaXMgZGF0YSBhZGFsYWggc2FsYWggc2F0dSBlbGVtZW4gbWVuZGFzYXIgZGFyaSBzdHJhdGVnaSAgcGVtYXNhcmFuLiBEYXRhIG1lbWJhbnR1IHNheWEgdW50dWsgbWVtYWhhbWkgdHJlbiwgbWVuZ2V2YWx1YXNpIGtlYmVyaGFzaWxhbiBwcm9tb3NpLCBkYW4gbWVtYmVyaWthbiBnYW1iYXJhbiBhc3BlayB5YW5nIHBlcmx1IGRpdGluZ2thdGthbi4gSGFsIGluaSB0aWRhayBoYW55YSBtZW1iZXJpa2FuIG1hbmZhYXQgYmFnaSBwZXJ1c2FoYWFuIHNhamEgYWthbiB0ZXRhcGkgZGFwYXQgbWVuY2lwdGFrYW4gbmlsYWkgbGViaWggYmFnaSBwZWxhbmdnYW4uDQoNCg0KDQojIDEuMiBMYXRpaGFuIDINCg0KRGF0YSBwZW5naXJpbWFuIGJhcmFuZyBiZXJkYXNhcmthbiB3aWxheWFoIGRhbiBqZW5pcyBiYXJhbmcgOg0KDQp8IFdpbGF5YWggICAgfCBKZW5pcyBCYXJhbmcgfCBKdW1sYWggKHVuaXQpIHwgQmFyYW5nIHwgV2FrdHUgKGphbSkgfCBQZW5naXJpbWFuIHwgQmlheWEgcGVyIFVuaXQgKFJwKSB8DQp8LS0tLS0tLS0tLSB8LS0tLS0tLS0tLXwtLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tfC0tLS0tLXwtLS0tLS18DQp8IFV0YXJhICAgICB8IEVsZWt0cm9uaWsgICB8ICAyMDAgICB8ICAgICAgfCA1IHwgIHwgMTUwMDB8DQp8IFNlbGF0YW4gICB8IFBha2FpYW4gICAgICB8ICAxNTAgICB8ICAgICAgfCA4IHwgIHwgODAwMCB8DQp8IFRpbXVyICAgICB8IE1ha2FuYW4gICAgICB8ICAxODAgICB8ICAgICAgfCA2IHwgIHwgMTAwMDB8DQp8IEJhcmF0ICAgICB8IFBlcmFsYXRhbiAgICB8ICAxMjAgICB8ICAgICAgfCA3IHwgIHwgMTIwMDB8DQp8IFRlbmdhaCAgICB8IEVsZWt0cm9uaWsgICB8ICAyNTAgICB8ICAgICAgfCA0IHwgIHwgMTQwMDB8DQp8IFV0YXJhICAgICB8IFBha2FpYW4gICAgICB8ICAzMDAgICB8ICAgICAgfCA5IHwgIHwgODUwMCB8DQp8IFNlbGF0YW4gICB8IE1ha2FuYW4gICAgICB8ICAyMjAgICB8ICAgICAgfCA3IHwgIHwgOTUwMCB8DQp8IFRpbXVyICAgICB8IFBlcmFsYXRhbiAgICB8ICAxNDAgICB8ICAgICAgfCA1IHwgIHwgMTEwMDB8DQp8IEJhcmF0ICAgICB8IEVsZWt0cm9uaWsgICB8ICAxODAgICB8ICAgICAgfCA2IHwgIHwgMTQ1MDB8DQp8IFRlbmdhaCAgICB8IFBha2FpYW4gICAgICB8ICAzNTAgICB8ICAgICAgfCA4IHwgIHwgNzgwMCB8DQp8IFV0YXJhICAgICB8IFBlcmFsYXRhbiAgICB8ICAxNzAgICB8ICAgICAgfCA0IHwgIHwgMTIwMDB8DQp8IFNlbGF0YW4gICB8IEVsZWt0cm9uaWsgICB8ICAyNTAgICB8ICAgICAgfCA2IHwgIHwgMTYwMDB8DQp8IFRpbXVyICAgICB8IFBha2FpYW4gICAgICB8ICAxOTAgICB8ICAgICAgfCA3IHwgIHwgODIwMCB8DQp8IEJhcmF0ICAgICB8IE1ha2FuYW4gICAgICB8ICAxMzAgICB8ICAgICAgfCA1IHwgIHwgMTA1MDB8DQp8IFRlbmdhaCAgICB8IFBlcmFsYXRhbiAgICB8ICAxODAgICB8ICAgICAgfCA1IHwgIHwgMTE1MDB8DQoNCiMjIDEuMi4xIHNvYWwgMSAoQW5hbGlzaXMgRWZpc2llbnNpIFBlbmdpcmltYW4pDQoNCiMjIyAxLjIuMS4xIChWaXN1YWxpc2FzaWthbiBwZW5naXJpbWFuIGJhcmFuZyBiZXJkYXNhcmthbiBqdW1sYWggYmFyYW5nLCB3YWt0dSBwZW5naXJpbWFuLCBkYW4gYmlheWEgcGVyIHVuaXQgZGVuZ2FuIG1lbmdndW5ha2FuIHBsb3QgM0QpDQoNCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkocGxvdGx5KQ0KDQojIERhdGEgeWFuZyBkaWd1bmFrYW4NCmRhdGEgPC0gZGF0YS5mcmFtZSgNCiAgV2lsYXlhaCA9IGMoIlV0YXJhIiwgIlNlbGF0YW4iLCAiVGltdXIiLCAiQmFyYXQiLCAiVGVuZ2FoIiwgDQogICAgICAgICAgICAgICJVdGFyYSIsICJTZWxhdGFuIiwgIlRpbXVyIiwgIkJhcmF0IiwgIlRlbmdhaCIsIA0KICAgICAgICAgICAgICAiVXRhcmEiLCAiU2VsYXRhbiIsICJUaW11ciIsICJCYXJhdCIsICJUZW5nYWgiKSwNCiAgSmVuaXNfQmFyYW5nID0gYygiRWxla3Ryb25payIsICJQYWthaWFuIiwgIk1ha2FuYW4iLCAiUGVyYWxhdGFuIiwgIkVsZWt0cm9uaWsiLCANCiAgICAgICAgICAgICAgICAgICAiUGFrYWlhbiIsICJNYWthbmFuIiwgIlBlcmFsYXRhbiIsICJFbGVrdHJvbmlrIiwgIlBha2FpYW4iLCANCiAgICAgICAgICAgICAgICAgICAiUGVyYWxhdGFuIiwgIkVsZWt0cm9uaWsiLCAiUGFrYWlhbiIsICJNYWthbmFuIiwgIlBlcmFsYXRhbiIpLA0KICBKdW1sYWhfQmFyYW5nID0gYygyMDAsIDE1MCwgMTgwLCAxMjAsIDI1MCwgDQogICAgICAgICAgICAgICAgICAgIDMwMCwgMjIwLCAxNDAsIDE4MCwgMzUwLCANCiAgICAgICAgICAgICAgICAgICAgMTcwLCAyNTAsIDE5MCwgMTMwLCAxODApLA0KICBXYWt0dV9QZW5naXJpbWFuID0gYyg1LCA4LCA2LCA3LCA0LCANCiAgICAgICAgICAgICAgICAgICAgICAgOSwgNywgNSwgNiwgOCwgDQogICAgICAgICAgICAgICAgICAgICAgIDQsIDYsIDcsIDUsIDUpLA0KICBCaWF5YV9QZXJfVW5pdCA9IGMoMTUwMDAsIDgwMDAsIDEwMDAwLCAxMjAwMCwgMTQwMDAsIA0KICAgICAgICAgICAgICAgICAgICAgODUwMCwgOTUwMCwgMTEwMDAsIDE0NTAwLCA3ODAwLCANCiAgICAgICAgICAgICAgICAgICAgIDEyMDAwLCAxNjAwMCwgODIwMCwgMTA1MDAsIDExNTAwKQ0KKQ0KDQojIE1lbWJ1YXQgcGxvdCAzRCBtZW5nZ3VuYWthbiBwbG90bHkNCnBsb3RfM2QgPC0gcGxvdF9seSgNCiAgZGF0YSwNCiAgeCA9IH5KdW1sYWhfQmFyYW5nLA0KICB5ID0gfldha3R1X1BlbmdpcmltYW4sDQogIHogPSB+QmlheWFfUGVyX1VuaXQsDQogIHR5cGUgPSAnc2NhdHRlcjNkJywNCiAgbW9kZSA9ICdtYXJrZXJzJywNCiAgY29sb3IgPSB+V2lsYXlhaCwNCiAgc2l6ZSA9IH5CaWF5YV9QZXJfVW5pdCAqIDAuMDAwMSwgICMgTWVtcGVyYmVzYXIgdWt1cmFuIGJ1YmJsZQ0KICBtYXJrZXIgPSBsaXN0KA0KICAgIHNpemUgPSAxMCwNCiAgICBvcGFjaXR5ID0gMQ0KICApLA0KICB0ZXh0ID0gfnBhc3RlKA0KICAgICJXaWxheWFoOiIsIFdpbGF5YWgsDQogICAgIjxicj5XYWt0dSBQZW5naXJpbWFuOiIsIFdha3R1X1BlbmdpcmltYW4sICJqYW0iLA0KICAgICI8YnI+SnVtbGFoIEJhcmFuZzoiLCBKdW1sYWhfQmFyYW5nLCAidW5pdCIsDQogICAgIjxicj5CaWF5YSBwZXIgVW5pdDogUnAiLCBCaWF5YV9QZXJfVW5pdA0KICApDQopICU+JSBsYXlvdXQoDQogIHRpdGxlID0gIkFuYWxpc2lzIDNEIEVmaXNpZW5zaSBQZW5naXJpbWFuIEJhcmFuZyIsDQogIHNjZW5lID0gbGlzdCgNCiAgICB4YXhpcyA9IGxpc3QoDQogICAgICB0aXRsZSA9ICJKdW1sYWggQmFyYW5nIiwNCiAgICAgIHRpdGxlZm9udCA9IGxpc3Qoc2l6ZSA9IDEyKSwNCiAgICAgIHRpY2tmb250ID0gbGlzdChzaXplID0gMTApDQogICAgKSwNCiAgICB5YXhpcyA9IGxpc3QoDQogICAgICB0aXRsZSA9ICJQZW5naXJpbWFuIChqYW0pIiwNCiAgICAgIHRpdGxlZm9udCA9IGxpc3Qoc2l6ZSA9IDEyKSwNCiAgICAgIHRpY2tmb250ID0gbGlzdChzaXplID0gMTApDQogICAgKSwNCiAgICB6YXhpcyA9IGxpc3QoDQogICAgICB0aXRsZSA9ICJCaWF5YSAoUnApIiwNCiAgICAgIHRpdGxlZm9udCA9IGxpc3Qoc2l6ZSA9IDEyKSwNCiAgICAgIHRpY2tmb250ID0gbGlzdChzaXplID0gMTApDQogICAgKQ0KICApLA0KICBsZWdlbmQgPSBsaXN0KA0KICAgIHRpdGxlID0gbGlzdCh0ZXh0ID0gIldpbGF5YWgiKSwNCiAgICBiZ2NvbG9yID0gIlB1cnBsZXMoMjU1LCAyNTUsIDI1NSwgMC41KSIsDQogICAgYm9yZGVyY29sb3IgPSAiUHVycGxlcygwLCAwLCAwLCAwLjUpIiwNCiAgICBib3JkZXJ3aWR0aCA9IDENCiAgKQ0KKQ0KDQoNCnBsb3RfM2QNCmBgYA0KDQoNCiMjIyAxLjIuMS4yICBUZW50dWthbiB3aWxheWFoIG1hbmEgeWFuZyBtZW1pbGlraSBlZmlzaWVuc2kgcGVuZ2lyaW1hbiB0ZXJlbmRhaCBiZXJkYXNhcmthbiBiaWF5YSBwZXIgdW5pdCBkYW4gd2FrdHUgcGVuZ2lyaW1hbi4NCg0KQS4gUGVyaGl0dW5nYW4gRWZpc2llbnNpIFBlbmdpcmltYW4NCg0KRWZpc2llbnNpIFBlbmdpcmltYW4gZGFwYXQgZGloaXR1bmcgbWVuZ2d1bmFrYW4gcnVtdXM6DQoNCiQkDQpcdGV4dHtFZmlzaWVuc2kgUGVuZ2lyaW1hbn0gPSBcZnJhY3tcdGV4dHtCaWF5YSBwZXIgVW5pdCAoUnApfX17XHRleHR7V2FrdHUgUGVuZ2lyaW1hbiAoamFtKX19DQokJA0KDQotIFBlcmhpdHVuZ2FuIEVmaXNpZW5zaSBQZW5naXJpbWFuOg0KDQoxLiAqKlV0YXJhIChFbGVrdHJvbmlrKSoqICANCiQkDQpcZnJhY3sxNSwwMDB9ezV9IFxhcHByb3ggMywwMDANCiQkDQoNCjIuICoqU2VsYXRhbiAoUGFrYWlhbikqKiAgDQokJA0KXGZyYWN7OCwwMDB9ezh9IFxhcHByb3ggMSwwMDANCiQkDQoNCjMuICoqVGltdXIgKE1ha2FuYW4pKiogIA0KJCQNClxmcmFjezEwLDAwMH17Nn0gXGFwcHJveCAxLDY2Nw0KJCQNCg0KNC4gKipCYXJhdCAoUGVyYWxhdGFuKSoqICANCiQkDQpcZnJhY3sxMiwwMDB9ezd9IFxhcHByb3ggMSw3MTQNCiQkDQoNCjUuICoqVGVuZ2FoIChFbGVrdHJvbmlrKSoqICANCiQkDQpcZnJhY3sxNCwwMDB9ezR9ID0gMyw1MDANCiQkDQoNCjYuICoqVXRhcmEgKFBha2FpYW4pKiogIA0KJCQNClxmcmFjezgsNTAwfXs5fSBcYXBwcm94IDk0NA0KJCQNCg0KNy4gKipTZWxhdGFuIChNYWthbmFuKSoqICANCiQkDQpcZnJhY3s5LDUwMH17N30gXGFwcHJveCAxLDM1Nw0KJCQNCg0KOC4gKipUaW11ciAoUGVyYWxhdGFuKSoqICANCiQkDQpcZnJhY3sxMSwwMDB9ezV9ID0gMiwyMDANCiQkDQoNCjkuICoqQmFyYXQgKEVsZWt0cm9uaWspKiogIA0KJCQNClxmcmFjezE0LDUwMH17Nn0gXGFwcHJveCAyLDQxNw0KJCQNCg0KMTAuICoqVGVuZ2FoIChQYWthaWFuKSoqICANCiQkDQpcZnJhY3s3LDgwMH17OH0gXGFwcHJveCA5NzUNCiQkDQoNCjExLiAqKlV0YXJhIChQZXJhbGF0YW4pKiogIA0KJCQNClxmcmFjezEyLDAwMH17NH0gXGFwcHJveCAzLDAwMA0KJCQNCg0KMTIuICoqU2VsYXRhbiAoRWxla3Ryb25paykqKiAgDQokJA0KXGZyYWN7MTYsMDAwfXs2fSBcYXBwcm94IDIsNjY3DQokJA0KDQoxMy4gKipUaW11ciAoUGFrYWlhbikqKiAgDQokJA0KXGZyYWN7OCwyMDB9ezd9IFxhcHByb3ggMSwxNzENCiQkDQoNCjE0LiAqKkJhcmF0IChNYWthbmFuKSoqICANCiQkDQpcZnJhY3sxMCw1MDB9ezV9IFxhcHByb3ggMiwxMDANCiQkDQoNCjE1LiAqKlRlbmdhaCAoUGVyYWxhdGFuKSoqICANCiQkDQpcZnJhY3sxMSw1MDB9ezV9IFxhcHByb3ggMiwzMDANCiQkDQoNCm1ha2EgaGFzaWwgYWtoaXIgZGFyaSBwZXJoaXR1bmdhbiBkaWF0YXMgYWRhbGFoIHNlYmFnYWkgYmVyaWt1dCA6DQoNCnwgV2lsYXlhaCAgICB8IFJhc2lvIEVmaXNpZW5zaSB8DQp8LS0tLS0tLS0tLSB8LS0tLS0tLS0tLXwNCnwgVXRhcmEgICAgIHwgMywwMDAgIHwgIA0KfCBTZWxhdGFuICAgfCAxLDAwMCAgICAgfCAgDQp8IFRpbXVyICAgICB8IDEsNjY3ICAgICAgfCAgDQp8IEJhcmF0ICAgICB8IDEsNzE0ICAgIHwgIA0KfCBUZW5nYWggICAgfCAzLDUwMCAgIHwgIA0KfCBVdGFyYSAgICAgfCA5NDQgICAgICB8ICANCnwgU2VsYXRhbiAgIHwgMSwzNTcgICAgICB8ICANCnwgVGltdXIgICAgIHwgMiwyMDAgICAgfCAgDQp8IEJhcmF0ICAgICB8IDIsNDE3ICAgfCAgDQp8IFRlbmdhaCAgICB8IDk3NSAgICAgIHwgIA0KfCBVdGFyYSAgICAgfCAzLDAwMCAgICB8ICANCnwgU2VsYXRhbiAgIHwgMiw2NjcgICB8ICANCnwgVGltdXIgICAgIHwgMSwxNzEgICAgICB8ICANCnwgQmFyYXQgICAgIHwgMiwxMDAgICAgICB8ICANCnwgVGVuZ2FoICAgIHwgMiwzMDAgICAgfCAgDQoNCkIuIE1lbmdoaXR1bmcgUmF0YS1yYXRhIFJhc2lvIEVmaXNpZW5zaQ0KDQotIFdpbGF5YWggVXRhcmENCg0KJCQNClx0ZXh0e1RvdGFsIFV0YXJhfSA9IDMsMDAwICsgOTQ0ICsgMywwMDAgPSA2LDk0NA0KJCQNCiQkDQpcdGV4dHtKdW1sYWggRGF0YSBVdGFyYX0gPSAzDQokJA0KJCQNClx0ZXh0e1JhdGEtcmF0YSBVdGFyYX0gPSBcZnJhY3s2LDk0NH17M30gXGFwcHJveCAyLjMxNDcNCiQkDQoNCi0gV2lsYXlhaCBTZWxhdGFuDQoNCiQkDQpcdGV4dHtUb3RhbCBTZWxhdGFufSA9IDEsMDAwICsgMSwzNTcgKyAyLDY2NyA9IDUsMDI0DQokJA0KJCQNClx0ZXh0e0p1bWxhaCBEYXRhIFNlbGF0YW59ID0gMw0KJCQNCiQkDQpcdGV4dHtSYXRhLXJhdGEgU2VsYXRhbn0gPSBcZnJhY3s1LDAyNH17M30gXGFwcHJveCAxLjY3NDcNCiQkDQoNCi0gV2lsYXlhaCBUaW11cg0KDQokJA0KXHRleHR7VG90YWwgVGltdXJ9ID0gMSw2NjcgKyAyLDIwMCArIDEsMTcxID0gNSwwMzgNCiQkDQokJA0KXHRleHR7SnVtbGFoIERhdGEgVGltdXJ9ID0gMw0KJCQNCiQkDQpcdGV4dHtSYXRhLXJhdGEgVGltdXJ9ID0gXGZyYWN7NSwwMzh9ezN9IFxhcHByb3ggMS42NzkzDQokJA0KDQotIFdpbGF5YWggQmFyYXQNCiQkDQpcdGV4dHtUb3RhbCBCYXJhdH0gPSAxLDcxNCArIDIsNDE3ICsgMiwxMDAgPSA2LDIzMQ0KJCQNCiQkDQpcdGV4dHtKdW1sYWggRGF0YSBCYXJhdH0gPSAzDQokJA0KJCQNClx0ZXh0e1JhdGEtcmF0YSBCYXJhdH0gPSBcZnJhY3s2LDIzMX17M30gXGFwcHJveCAyLjA3NzANCiQkDQoNCi0gV2lsYXlhaCBUZW5nYWgNCg0KJCQNClx0ZXh0e1RvdGFsIFRlbmdhaH0gPSAzLDUwMCArIDk3NSArIDIsMzAwID0gNiw3NzUNCiQkDQokJA0KXHRleHR7SnVtbGFoIERhdGEgVGVuZ2FofSA9IDMNCiQkDQokJA0KXHRleHR7UmF0YS1yYXRhIFRlbmdhaH0gPSBcZnJhY3s2LDc3NX17M30gXGFwcHJveCAyLjI1ODMNCiQkDQoNCi0gUmFuZ2t1bWFuIFJhdGEtcmF0YSBSYXNpbyBFZmlzaWVuc2kgcGVyIFdpbGF5YWgNCg0KDQp8V2lsYXlhaCB8UmF0YS1yYXRhIFJhc2lvIEVmaXNpZW5zaSB8DQp8LS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18DQp8VXRhcmEgICB8Mi4zMTQ3fA0KfFNlbGF0YW4gfDEuNjc0NyB8DQp8VGltdXIgICB8MS42NzkzIHwgICAgICANCnxCYXJhdCAgIHwyLjA3NzAgfA0KfFRlbmdhaCAgfDIuMjU4MyB8ICANCg0KDQpLZXNpbXB1bGFuIE1lbmdlbmFpIEVmaXNpZW5zaSBQZW5naXJpbWFuIEJlcmRhc2Fya2FuIEJpYXlhIHBlciBVbml0IGRhbiBXYWt0dSBQZW5naXJpbWFuIDoNCg0KLSBLZXNpbXB1bGFuIHVtdW0NCg0KMS4gKipXaWxheWFoIFNlbGF0YW4qKjogDQoNCiAgIC0gRGVuZ2FuIHJhdGEtcmF0YSByYXNpbyBlZmlzaWVuc2kgdGVyZW5kYWggc2ViZXNhciAxLDY3NDcsIFdpbGF5YWggU2VsYXRhbiBtZW51bmp1a2thbiBiYWh3YSBiaWF5YSBwZXIgdW5pdCBkYW4gd2FrdHUgcGVuZ2lyaW1hbiBkaSB3aWxheWFoIGluaSBtdW5na2luIHRpZGFrIG9wdGltYWwuIEhhbCBpbmkgZGFwYXQgZGlzZWJhYmthbiBvbGVoIGJlcmJhZ2FpIGZha3Rvciwgc2VwZXJ0aSBpbmZyYXN0cnVrdHVyIHlhbmcga3VyYW5nIG1lbWFkYWksIHByb3NlcyBsb2dpc3RpayB5YW5nIHRpZGFrIGVmaXNpZW4sIGF0YXUgdGFudGFuZ2FuIGRhbGFtIG1hbmFqZW1lbiByYW50YWkgcGFzb2thbi4NCg0KMi4gKipXaWxheWFoIFRpbXVyKio6DQoNCiAgIC0gV2lsYXlhaCBUaW11ciBqdWdhIG1lbnVuanVra2FuIGtpbmVyamEgeWFuZyBrdXJhbmcgYmFpayBkZW5nYW4gcmF0YS1yYXRhIHJhc2lvIGVmaXNpZW5zaSBzZWtpdGFyIDEsNjc5My4gTWVza2lwdW4gc2VkaWtpdCBsZWJpaCBiYWlrIGRpYmFuZGluZ2thbiBXaWxheWFoIFNlbGF0YW4sIG1hc2loIHRlcmRhcGF0IHBvdGVuc2kgdW50dWsgcGVyYmFpa2FuIGRhbGFtIGhhbCBwZW5ndXJhbmdhbiBiaWF5YSBkYW4gd2FrdHUgcGVuZ2lyaW1hbi4NCg0KMy4gKipQZXJiYW5kaW5nYW4gZGVuZ2FuIFdpbGF5YWggTGFpbioqOg0KDQogICAtIFNlbWVudGFyYSBXaWxheWFoIFV0YXJhIGRhbiBUZW5nYWggbWVudW5qdWtrYW4ga2luZXJqYSB5YW5nIGphdWggbGViaWggYmFpayBkYWxhbSBoYWwgZWZpc2llbnNpIHBlbmdpcmltYW4gKG1hc2luZy1tYXNpbmcgZGVuZ2FuIHJhc2lvIGVmaXNpZW5zaSAyLDMxNDcgZGFuIDIsMjU4MyksIFdpbGF5YWggQmFyYXQgZGVuZ2FuIHJhc2lvIDIsMDc3MCBqdWdhIG1lbnVuanVra2FuIHBlcmZvcm1hIHlhbmcgbGViaWggYmFpayBkaWJhbmRpbmdrYW4gU2VsYXRhbiBkYW4gVGltdXIuDQoNCi0gIEtlc2ltcHVsYW4gQWtoaXINCg0KU2VjYXJhIGtlc2VsdXJ1aGFuLCBXaWxheWFoIFNlbGF0YW4gYWRhbGFoIHdpbGF5YWggZGVuZ2FuIGVmaXNpZW5zaSBwZW5naXJpbWFuIHRlcmVuZGFoIGJlcmRhc2Fya2FuIGJpYXlhIHBlciB1bml0IGRhbiB3YWt0dSBwZW5naXJpbWFuLiBNZXNraXB1biBhZGEgdGFudGFuZ2FuIGRpIHdpbGF5YWggaW5pLCBkZW5nYW4gcGVuZGVrYXRhbiB5YW5nIHRlcGF0IGRhbiBzdHJhdGVnaSBwZW5pbmdrYXRhbiB5YW5nIHRlcmVuY2FuYSwgYWRhIHBlbHVhbmcgc2lnbmlmaWthbiB1bnR1ayBtZW1wZXJiYWlraSBraW5lcmphIGRhbiBtZW5jYXBhaSBlZmlzaWVuc2kgeWFuZyBsZWJpaCBiYWlrIGRhbGFtIHBlbmdpcmltYW4gZGkgbWFzYSBkZXBhbi4NCg0KIyMgMS4yLjIgc29hbCAyIChSZWtvbWVuZGFzaSBPcGVyYXNpb25hbCkNCg0KIyMjIDEuMi4yLjEgQmVyZGFzYXJrYW4gaGFzaWwgYW5hbGlzaXMsIHdpbGF5YWggbWFuYSB5YW5nIG1lbWVybHVrYW4gcGVyaGF0aWFuIGtodXN1cyB1bnR1ayBtZW5pbmdrYXRrYW4gZWZpc2llbnNpIHBlbmdpcmltYW4/DQoNCkJlcmRhc2Fya2FuIGhhc2lsIGFuYWxpc2lzLCB3aWxheWFoIHlhbmcgbWVtZXJsdWthbiBwZXJoYXRpYW4ga2h1c3VzIHVudHVrIG1lbmluZ2thdGthbiBlZmlzaWVuc2kgcGVuZ2lyaW1hbiBhZGFsYWggKipXaWxheWFoIFNlbGF0YW4qKi4gSGFsIGluaSBkaXNlYmFia2FuIG9sZWggYmViZXJhcGEgZmFrdG9yLCB0ZXJtYXN1ayBmYWt0YSBiYWh3YSBXaWxheWFoIFNlbGF0YW4gbWVuY2F0YXRrYW4gcmF0YS1yYXRhIHJhc2lvIGVmaXNpZW5zaSB0ZXJlbmRhaCBkaSBhbnRhcmEgc2VtdWEgd2lsYXlhaCwgeWFpdHUgc2VraXRhciAxLDY3NDcsIHlhbmcgbWVudW5qdWtrYW4gYmFod2EgYmFpayBiaWF5YSBwZXIgdW5pdCBtYXVwdW4gd2FrdHUgcGVuZ2lyaW1hbiBkaSB3aWxheWFoIGluaSB0aWRhayBvcHRpbWFsLg0KDQpTZWxhaW4gaXR1LCBhZGFueWEgdGFudGFuZ2FuIGluZnJhc3RydWt0dXIgeWFuZyBzaWduaWZpa2FuLCBzZXBlcnRpIGphbGFuIHlhbmcgdGlkYWsgbWVtYWRhaSBkYW4gZmFzaWxpdGFzIHRyYW5zcG9ydGFzaSB5YW5nIHRlcmJhdGFzLCBzZWhpbmdnYSBkYXBhdCBtZW1wZXJsYW1iYXQgcHJvc2VzIHBlbmdpcmltYW4gZGFuIG1lbmluZ2thdGthbiBiaWF5YSBvcGVyYXNpb25hbC4gS2VzZW5qYW5nYW4gcGVydHVtYnVoYW4gZGFsYW0gZGlzdHJpYnVzaSBiYXJhbmcgZGFuIGFrc2VzIHBhc2FyIGp1Z2EgZGFwYXQgIG1lbmphZGkgc2FsYWggc2F0dSBtYXNhbGFoIGRpIHdpbGF5YWggaW5pLCBtaXJpcCBkZW5nYW4ga2V0aW1wYW5nYW4geWFuZyBkaWhhZGFwaSBvbGVoIHdpbGF5YWggYmFyYXQgZGFuIHRpbXVyIEluZG9uZXNpYS4NCg0KT2xlaCBrYXJlbmEgaXR1LCB1cGF5YSB1bnR1ayBtZW5nb3B0aW1hbGthbiByYW50YWkgcGFzb2sgZGkgV2lsYXlhaCBTZWxhdGFuIHNhbmdhdCBwZW50aW5nIHVudHVrIG1lbmd1cmFuZ2kgZGlzcGFyaXRhcyBoYXJnYSBkYW4gbWVuaW5na2F0a2FuIGRheWEgc2FpbmcuDQoNCiMjIyAxLjIuMi4xIEFwYSByZWtvbWVuZGFzaSB1bnR1ayBtZW5ndXJhbmdpIGJpYXlhIGRhbiB3YWt0dSBwZW5naXJpbWFuIGRpIHdpbGF5YWggdGVyc2VidXQ/DQoNCjEuIE9wdGltYXNpIFJ1dGUgUGVuZ2lyaW1hbjoNCg0KVGVudHVrYW4gcnV0ZSBwZW5naXJpbWFuIHBhbGluZyBlZmlzaWVuIG1lbmdndW5ha2FuIG1ldG9kZSBzZXBlcnRpIFNhdmluZyBNYXRyaXguIERpbWFuYSBtZXRvZGUgaW5pIHRlbGFoIHRlcmJ1a3RpIGRhcGF0IG1lbmdoZW1hdCBqYXJhayBwZXJqYWxhbmFuIGRhbiB3YWt0dSBwZW5naXJpbWFuIGRlbmdhbiBtZXJlbmNhbmFrYW4gdXJ1dGFuIGt1bmp1bmdhbiB5YW5nIG9wdGltYWwgZGFuIG1lbmd1cmFuZ2kgIGJpYXlhIHRyYW5zcG9ydGFzaSBzZWNhcmEga2VzZWx1cnVoYW4uDQoNCjIuIFBlbmVyYXBhbiBTaXN0ZW0gTWFuYWplbWVuIEFybWFkYToNCg0KTWVuZXJhcGthbiBzaXN0ZW0gbWFuYWplbWVuIGFybWFkYSB5YW5nIGVmZWt0aWYgdW50dWsgcGVyZW5jYW5hYW4gcnV0ZSB5YW5nIGVmaXNpZW4sIHBlbWFudGF1YW4gcnV0ZSB3YWt0dSBueWF0YSwgZGFuIGRpZ2l0YWxpc2FzaSBwZXNhbmFuIHBlbmdpcmltYW4uSGFsIGluaSBtZW11bmdraW5rYW4gYXJ1cyBwZW5naXJpbWFuIGRpa2Vsb2xhIGRlbmdhbiBsZWJpaCBlZmlzaWVuLCB0ZXJ1dGFtYSBzZWxhbWEgcGVyaW9kZSBzaWJ1ay4NCg0KMy4gQmVyaW52ZXN0YXNpIGRhbGFtIHRla25vbG9naToNCg0KTWVtYW5mYWF0a2FuIHRla25vbG9naSBpbmZvcm1hc2kgdW50dWsgbWVuaW5na2F0a2FuIHZpc2liaWxpdGFzIGRhbiB0cmFuc3BhcmFuc2kgZGFsYW0gcHJvc2VzIHBlbnlhbXBhaWFuLkFwbGlrYXNpIHBlbGFjYWthbiBwYWtldCBkYW4gc2lzdGVtIGluZm9ybWFzaSBsb2dpc3RpayBtZW11bmdraW5rYW4gcGVsYW5nZ2FuIG1lbWFudGF1IHN0YXR1cyBwZW5naXJpbWFuIHNlY2FyYSByZWFsIHRpbWUsIG1lbmluZ2thdGthbiBrZXB1YXNhbiBwZWxhbmdnYW4gZGFuIGVmaXNpZW5zaSBvcGVyYXNpb25hbC4NCg0KNC4gUGVsYXRpaGFuIFN0YWY6DQoNCk1lbWJlcmlrYW4gcGVsYXRpaGFuIGtlcGFkYSBwZWtlcmphIGRpIHNla3RvciBsb2dpc3RpayB1bnR1ayBtZW5pbmdrYXRrYW4ga2V0ZXJhbXBpbGFuIG1lcmVrYSBkYWxhbSBtYW5hamVtZW4gcmFudGFpIHBhc29rYW4gZGFuIHBlbmdndW5hYW4gdGVrbm9sb2dpIGJhcnUuIFBlcnNvbmVsIHlhbmcgYmVya3VhbGlmaWthc2kgbWVtYmFudHUgbWVuaW5na2F0a2FuIGVmaXNpZW5zaSBvcGVyYXNpb25hbCBzZWNhcmEga2VzZWx1cnVoYW4uDQogDQoNCiMjIDEuMi4zIFNvYWwgMw0KDQojIyMgMS4yLjMuMSBBbmFsaXNpcyBraW5lcmphIHBlbmdpcmltYW4gYmVyZGFzYXJrYW4gamVuaXMgYmFyYW5nIGRhbiB3aWxheWFoLiBNYW5hIHlhbmcgbWVtaWxpa2kgd2FrdHUgcGVuZ2lyaW1hbiBsZWJpaCBjZXBhdCBkYW4gYmlheWEgcGVyIHVuaXQgbGViaWggcmVuZGFoPyANCg0KLSBBbmFsaXNpcyBLaW5lcmphIFBlbmdpcmltYW4gDQoNCiAxLiBXYWt0dSBQZW5naXJpbWFuOg0KDQogIC0gV2FrdHUgVGVyY2VwYXQ6IA0KIA0KICAgIC0gU2VudHJhbCBFbGVrdHJvbmlrOiBXYWt0dSBwZW5naXJpbWFuIHRlcmNlcGF0IHVudHVrIHByb2R1ayBlbGVrdHJvbmlrIGFkYWxhaCA0IGphbS4NCiAgDQogICAgLSBVdGFyYSAtIFBlcmFsYXRhbjogSnVnYSwgd2FrdHUgcGVuZ2lyaW1hbiBhZGFsYWggNCBqYW0uDQogIA0KIDIuIEJpYXlhIHBlciB1bml0OiANCg0KICAtIEJpYXlhIG1pbmltdW06IA0KIA0KICAgIC0gU2VkYW5nIC0gR2FybWVuOiAgQmlheWEgbWluaW11bSBwZXIgdW5pdCB1bnR1ayBqZW5pcyBwYWthaWFuIGluaSBhZGFsYWggUnAgNy44MDAuDQogICANCiAgICAtIFNlbGF0YW4g4oCTIFBha2FpYW46IEhhcmdhICBzYXR1YW4gYWRhbGFoIFJwIDguMDAwLC0geWFuZyBqdWdhIHJlbGF0aWYgbXVyYWguDQogICANCiAgIA0KLSBSYW5na3VtYW4gS2luZXJqYSBCZXJkYXNhcmthbiBKZW5pcyBCYXJhbmcgZGFuIFdpbGF5YWgNCg0KIDEuIEVsZWt0cm9uaWs6DQogDQogICAgLSBXYWt0dSBQZW5naXJpbWFuIFRlcmNlcGF0OiBUZW5nYWggKDQgamFtKQ0KICAgIA0KICAgIC0gQmlheWEgcGVyIFVuaXQ6IFV0YXJhICgxNSwwMDAgUnApIGRhbiBCYXJhdCAoMTQsNTAwIFJwKQ0KICAgIA0KIDIuIFBha2FpYW46DQogDQogICAgLSBXYWt0dSBQZW5naXJpbWFuIFRlcmxhbWE6IFV0YXJhICg5IGphbSkNCiAgICANCiAgICAtIEJpYXlhIHBlciBVbml0IFRlcmVuZGFoOiBUZW5nYWggKDcsODAwIFJwKQ0KICAgIA0KIDMuIE1ha2FuYW46DQogDQogICAgLSBXYWt0dSBQZW5naXJpbWFuOiBUaW11ciAoNiBqYW0pIGRhbiBCYXJhdCAoNSBqYW0pDQogICANCiAgICAtIEJpYXlhIHBlciBVbml0OiBTZWxhdGFuICg5LDUwMCBScCkNCiAgIA0KIDQuIFBlcmFsYXRhbjoNCiAgDQogICAgLSBXYWt0dSBQZW5naXJpbWFuIFRlcmNlcGF0OiBUaW11ciBkYW4gVXRhcmEgKDUgamFtKQ0KICAgDQogICAgLSBCaWF5YSBwZXIgVW5pdDogQmFyYXQgKDEyLDAwMCBScCkgZGFuIFRlbmdhaCAoMTEsNTAwIFJwDQogICANCktlc2ltcHVsYW4gDQogIA0KIC0gV2FrdHUgcGVuZ2lyaW1hbiB0ZXJjZXBhdDogDQogDQogICAtIFdha3R1IHBlbmdpcmltYW4gdGVyY2VwYXQgdW50dWsgZWxla3Ryb25payBkYW4gcGVyYWxhdGFuIGJlcmFkYSBkaSB3aWxheWFoIFRlbmdhaCBkYW4gVXRhcmEgeWFpdHUgNCBqYW0uDQogICANCiAtIERhZXJhaCBkZW5nYW4gYmlheWEgcGVyIHVuaXQgdGVyZW5kYWg6IA0KIA0KICAgLSAgQmlheWEgcGVyIHVuaXQgIGplbmlzIHBha2FpYW4gIHRlcmVuZGFoIHRlcmRhcGF0IGRpIHdpbGF5YWggVGVuZ2FoIHNlYmVzYXIgUnAgNy44MDAsIGRpc3VzdWwgd2lsYXlhaCBTZWxhdGFuIGRlbmdhbiBiaWF5YSBzYXR1YW4gc2ViZXNhciAgUnAgOC4wMDAuDQoNCg0KIyAxLjMgUmVmZXJlbnNpIA0KDQpCZXJpa3V0IGFkYWxhaCByZWZlcmVuc2kgeWFuZyBzYXlhIGFtYmlsIHVudHVrIG1lbmdlcmpha2FuIGxhdGloYW4gaW5pOg0KDQoxLiA8YSBocmVmPSJodHRwczovL2Jvb2tkb3duLm9yZy9kc2NpZW5jZWxhYnMvc3RhdGlzdGlrYV9kYXNhci9fYm9vay9Va3VyYW5fUGVueWViYXJhbl9EYXRhLmh0bWwjc3R1ZGkta2FzdXMtMiI+aHR0cHM6Ly9ib29rZG93bi5vcmcvZHNjaWVuY2VsYWJzL3N0YXRpc3Rpa2FfZGFzYXIvX2Jvb2svVWt1cmFuX1BlbnllYmFyYW5fRGF0YS5odG1sI3N0dWRpLWthc3VzLTI8L2E+DQoNCjIuIDxhIGhyZWY9aHR0cHM6Ly93d3cuY2FydHJhY2suaWQvaWQvNS1jYXJhLWZsZWV0LW1hbmFnZW1lbnQtc3lzdGVtLXRpbmdrYXRrYW4tZWZpc2llbnNpLXBlbmdpcmltYW4iPmh0dHBzOi8vd3d3LmNhcnRyYWNrLmlkL2lkLzUtY2FyYS1mbGVldC1tYW5hZ2VtZW50LXN5c3RlbS10aW5na2F0a2FuLWVmaXNpZW5zaS1wZW5naXJpbWFuLzwvYT4NCg0KMy4gPGEgaHJlZj1odHRwczovL3d3dy5saXB1dGFuNi5jb20vYmlzbmlzL3JlYWQvNTM4MDk0NS9qdXJ1cy1pbmR1c3RyaS1rYXJnby1nZW5qb3QtZWZpc2llbnNpLWxvZ2lzdGlrLWRpLWluZG9uZXNpYSI+aHR0cHM6Ly93d3cubGlwdXRhbjYuY29tL2Jpc25pcy9yZWFkLzUzODA5NDUvanVydXMtaW5kdXN0cmkta2FyZ28tZ2Vuam90LWVmaXNpZW5zaS1sb2dpc3Rpay1kaS1pbmRvbmVzaWE8L2E+DQo=