Konsep Dasar Probabilitas

Studi Kasus 1

Penerapan Probabilitas dalam Prediksi Kualitas Produk:

Sebuah perusahaan manufaktur memproduksi barang elektronik dan ingin memprediksi apakah suatu produk akan cacat atau tidak. Data historis menunjukkan bahwa 5% dari produk yang diproduksi adalah cacat. Perusahaan menggunakan data tentang jenis komponen dan proses produksi untuk memprediksi cacat produk menggunakan teknik probabilitas

1.1 Fitur Data

โ€ข Komponen (C): Apakah komponen elektronik yang digunakan adalah berkualitas tinggi atau rendah.

โ€ข Proses Produksi (P): Apakah proses produksi dilakukan di bawah standar atau sesuai standar.

โ€ข Cacat (D): Status cacat produk (ya/tidak)

1.2 Data Historis (Contoh)

โ€ข Probabilitas produk cacat (๐‘ƒ(๐ท = Yes)) = 5%

โ€ข Probabilitas produk tidak cacat (๐‘ƒ(๐ท = No)) = 95%

โ€ข Probabilitas menggunakan komponen berkualitas rendah (๐‘ƒ(๐ถ = Low)) = 30%

โ€ข Probabilitas menggunakan komponen berkualitas tinggi (๐‘ƒ(๐ถ = High)) = 70%

โ€ข Probabilitas proses produksi di bawah standar (๐‘ƒ(๐‘ƒ = Below)) = 40%

โ€ข Probabilitas proses produksi sesuai standar (๐‘ƒ(๐‘ƒ = Standard)) = 60%

Bagaimana probabilitas bahwa suatu produk akan cacat (๐ท = Yes), jika diketahui komponen yang digunakan berkualitas rendah dan proses produksi dibawah standar?

Gunakan Teorema Bayes untuk menghitung probabilitas bersyarat ini:

\[ ๐‘ƒ(D = Yes | C = Low, P = Below)\frac{๐‘ƒ(๐ถ =Low,๐‘ƒ =Belowโˆฃ๐ท=Yes)โ‹…๐‘ƒ(๐ท=Yes)}{๐‘ƒ(๐ถ =Low,๐‘ƒ =Below)} \]

1.3 Jawaban

Menghitung probabilitas produk cacat (D = Yes) jika diketahui:

  • Komponen berkualitas rendah (C = Low)

  • Proses produksi di bawah standar (P = Below)

Gunakan Teorema Bayes:

\[ ๐‘ƒ(D = Yes | C = Low, P = Below)\frac{๐‘ƒ(๐ถ =Low,๐‘ƒ =Belowโˆฃ๐ท=Yes)โ‹…๐‘ƒ(๐ท=Yes)}{๐‘ƒ(๐ถ =Low,๐‘ƒ =Below)} \]

1.4 Data yang Diberikan:

  • \({P(D = Yes) = 0.05}\)

  • \({P(D = No) = 0.95}\)

  • \({P(C = Low) = 0.30}\)

  • \({P(P = Below) = 0.40}\)

1.5 Menghitung P(C = Low, P = Below)

Total probabilitas bisa dihitung dengan aturan probabilitas total:

Asumsikan probabilitas komponen rendah dan proses di bawah standar tergantung pada status cacat.

  • \({P(C = Low, P = Below | D = Yes) = 0.7 \cdot 0.8 = 0.56}\) (komponen rendah lebih mungkin di produk cacat)

  • \({P(C = Low, P = Below | D = No) = 0.2 \cdot 0.3 = 0.06}\) (Komponen rendah lebih jarang di produk cacat)

Subtitusi Nilai:

\({P(C = Low, P = Below) = (0.56 \cdot 0.05) + (0.06 \cdot 0.95) = 0.028 + 0.057 = 0.085}\)

1.6 Menghitung P(D = Yes | C = Low, P = Below):

Subtitusi ke dalam rumus:

\({P(D = Yes | C = Low, P = Below) = \frac{(0.56 \cdot 0.05)}{0.085} = \frac{0.028}{0.085}=0.329}\)

Maka Probabilitas dari sebuah produk akan cacat adalah 32.9% jika komponen berkualitas rendah dan proses produksi di bawah standar.

1.7 Hasil Akhir

Hasil dari Study kasus 1 adalah 32.9%

Studi Kasus 2

Penerapan Probabilitas dalam Deteksi Penipuan Transaksi

Sebuah perusahaan e-commerce ingin mendeteksi transaksi yang berpotensi penipuan. Berdasarkan data historis, 1% dari transaksi yang dilakukan adalah penipuan. Perusahaan ingin menggunakan fitur-fitur tertentu seperti lokasi transaksi, jumlah pembelian, dan metode pembayaran untuk memprediksi apakah suatu transaksi adalah penipuan atau tidak

2.1 Fitur Data

โ€ข Lokasi (L): Negara atau kota tempat transaksi dilakukan.

โ€ข Jumlah Pembelian (A): Jumlah uang yang dibelanjakan.

โ€ข MetodePembayaran (M):Metodepembayaranyangdigunakan (kartu kredit, dompet digital, dll).

โ€ข Penipuan (F): Status transaksi apakah penipuan atau tidak.

2.2 Data Historis (Contoh)

โ€ข Probabilitas transaksi adalah penipuan (๐‘ƒ(๐น = Fraud)) = 1%

โ€ข Probabilitas transaksi bukan penipuan (๐‘ƒ(๐น = Not Fraud)) = 99%

โ€ข Probabilitas lokasi tertentu adalah di luar negeri (๐‘ƒ(๐ฟ = Foreign)) = 20%

โ€ข Probabilitas jumlah pembelian lebih dari 500(P(A = High)$) = 10%

โ€ข Probabilitas menggunakan kartu kredit sebagai metode pembayaran(๐‘ƒ(๐‘€ =Credit Card)) = 50%

Bagaimana probabilitas bahwa suatu transaksi adalah penipuan (๐น = Fraud),jika diketahui transaksi dilakukan dari lokasi luar negeri, jumlah pembelian lebih dari $500, dan metode pembayaran menggunakan kartu kredit?

Gunakan Teorema Bayes untuk menghitung probabilitas bersyarat ini:

\[ ๐‘ƒ(๐น =Fraud โˆฃ ๐ฟ =Foreign,๐ด = High,๐‘€ = Credit Card)=\frac{๐‘ƒ(L = Foreign, A = High, M = Credit Card | F = Fraud) \cdot P (F = Fraud)}{๐‘ƒ(L = Foreign, A = High, M = Credit Card)} \]

2.3 Jawaban

Diketahui:

  1. \({P(F = Fraud) = 0.01}\) (Probabilitas transaksi adalah penipuan)

  2. \({P(F = No Fraud) = 0.99}\) (Probabilitas transaksi bukan penipuan)

  3. \({P(L = Foreign) = 0.2}\) (Probabilitas lokasi transaksi di luar negri)

  4. \({P(A = High) = 0.1}\) (Probabilitas jumlah pembelian lebih dari $500)

  5. \({P(M = Credit Card) = 0.5}\) (Probabilitas menggunakan kartu kredit)

Kita ingin menghitung probabilitas bahwa transaksi adalah penipuan Jika:

  • Lokasi Transaksi dari luar negri

  • Jumlah pembelian lebih dari $500

  • Metode pembayaran menggunakan kartu kredit

Kita akan menggunakan rumus diatas:

\[ ๐‘ƒ(๐น =Fraud โˆฃ ๐ฟ =Foreign,๐ด = High,๐‘€ = Credit Card)=\frac{๐‘ƒ(L = Foreign, A = High, M = Credit Card | F = Fraud) \cdot P (F = Fraud)}{๐‘ƒ(L = Foreign, A = High, M = Credit Card)} \]

2.4 Hitung Pembilang

Asumsikan bahwa dalam kondisi penipuan:

  • Probabilitas transaksi dilakukan di luar negeri adalah 0,6.

  • Probabilitas jumlah pembelian lebih dari $500 adalah 0,7.

  • Probabilitas menggunakan kartu kredit adalah 0,8.

Maka rumusnya :

\[ P(L = Foreign, A = High, M = Credit Card | F = Fraud) = P(L|F) \cdot P(A|F) \cdot P(M|F) \]

Subtitusi Nilai:

\[ P(L = Foreign, A = High, M = Credit Card | F = Fraud) = 0.6 \cdot 0.7 \cdot 0.8 = 0.336 \]

Kalikan dengan P(F = Fraud) = 0.01:

\[ F = 0.336 \cdot 0.01 = 0.00336 \]

2.5 Hitung Penyebut

Cara menghitung penyebut adalah total dari semua probabilitas dari semua skenario yaitu transaksi penipuan dan bukan penipuan:

\[ P(L = Foreign, A = High, M = Credit Card) = P(L,A,M | F = Fraud) \cdot P(F = Fraud) + P(L,A,M|F = Not Fraud) \cdot P(F = Not Fraud) \]

Untuk F = Not Fraud kita asumsikan:

  • Probabilitas Transaksi Luar Negri adalah 0,1.

  • Probabilitas jumlah pembelian lebih dari $500 adalah 0,05.

  • Probabilitas menggunakan kartu kredit adalah 0,4.

Subtitusi Nilai:

\[ P(L = Foreign, A = High, M = Credit Card | F = Not Fraud) = 0.1 \cdot 0.05 \cdot 0.4 = 0.002 \]

Kalikan dengan P(F = Not Fraud) = 0.99

\[ NF = 0.002 \cdot 0.99 = 0.00198 \]

Gabungkan Semuanya:

\[ P(L = Foreign, A = High, M = Credit Card) = 0.0036 + 0.00198 = 0.00534 \]

2.6 Hitung Probabilitas Bersyarat

Subtitusikan ke Teorema Bayes

\[ P(F = Fraud | L = Foreign, A = High, M = Credit Card) = \frac{N}{NF} \]

\[ P(F = Fraud | L,A,M) = \frac{0.00336}{0.00534} = 0.629 \]

2.7 Hasil Akhir

Maka hasil akhir dari probabilitas bahwa transaksi tersebut adalah penipuan adalah 0.629 atau 62.9%

LS0tDQp0aXRsZTogIktvbnNlcCBEYXNhciBQcm9iYWJpbGl0YXMiDQphdXRob3I6IA0KICAtICJaYWluIElxYmFsIFNhcHV0cmEiDQogIC0gIk5JTSA1MjI0MDAyNCINCmRhdGU6ICAiU2FidHUsIDE0LzEyLzIwMjQiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OnJlYWR0aGVkb3duOg0KICAgIHNlbGZfY29udGFpbmVkOiB0cnVlDQogICAgdGh1bWJuYWlsczogdHJ1ZQ0KICAgIGxpZ2h0Ym94OiB0cnVlDQogICAgZ2FsbGVyeTogdHJ1ZQ0KICAgIG51bWJlcl9zZWN0aW9uczogZmFsc2UNCiAgICBsaWJfZGlyOiBsaWJzDQogICAgM2RmX3ByaW50OiAicGFnZWQiDQogICAgY29kZV9mb2xkaW5nOiAic2hvdyINCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBjc3M6ICJzdHlsZS5jc3MiDQotLS0NCg0KPGltZyBzcmM9IkdhbWJhci9Lb25zZXBfRGFzYXJfUHJvYmFiaWxpdGFzLnBuZyIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyB3aWR0aDo1MDBweDsgbWFyZ2luOmF1dG87Ij4NCg0KIyBTdHVkaSBLYXN1cyAxDQoNClBlbmVyYXBhbiBQcm9iYWJpbGl0YXMgZGFsYW0gUHJlZGlrc2kgS3VhbGl0YXMgUHJvZHVrOg0KDQpTZWJ1YWggcGVydXNhaGFhbiBtYW51ZmFrdHVyIG1lbXByb2R1a3NpIGJhcmFuZyBlbGVrdHJvbmlrIGRhbiBpbmdpbiBtZW1wcmVkaWtzaSBhcGFrYWggc3VhdHUgcHJvZHVrIGFrYW4gY2FjYXQgYXRhdSB0aWRhay4gRGF0YSBoaXN0b3JpcyBtZW51bmp1a2thbiBiYWh3YSA1JSBkYXJpIHByb2R1ayB5YW5nIGRpcHJvZHVrc2kgYWRhbGFoIGNhY2F0LiBQZXJ1c2FoYWFuIG1lbmdndW5ha2FuIGRhdGEgdGVudGFuZyBqZW5pcyBrb21wb25lbiBkYW4gcHJvc2VzIHByb2R1a3NpIHVudHVrIG1lbXByZWRpa3NpIGNhY2F0IHByb2R1ayBtZW5nZ3VuYWthbiB0ZWtuaWsgcHJvYmFiaWxpdGFzDQoNCiMjIDEuMSBGaXR1ciBEYXRhDQog4oCiIEtvbXBvbmVuIChDKTogQXBha2FoIGtvbXBvbmVuIGVsZWt0cm9uaWsgeWFuZyBkaWd1bmFrYW4gYWRhbGFoIGJlcmt1YWxpdGFzIHRpbmdnaSBhdGF1IHJlbmRhaC4NCiANCiDigKIgUHJvc2VzIFByb2R1a3NpIChQKTogQXBha2FoIHByb3NlcyBwcm9kdWtzaSBkaWxha3VrYW4gZGkgYmF3YWggc3RhbmRhciBhdGF1IHNlc3VhaSBzdGFuZGFyLg0KIA0KIOKAoiBDYWNhdCAoRCk6IFN0YXR1cyBjYWNhdCBwcm9kdWsgKHlhL3RpZGFrKQ0KIA0KIyMgMS4yIERhdGEgSGlzdG9yaXMgKENvbnRvaCkNCg0KIOKAoiBQcm9iYWJpbGl0YXMgcHJvZHVrIGNhY2F0ICjwnZGDKPCdkLcgPSBZZXMpKSA9IDUlDQogDQog4oCiIFByb2JhYmlsaXRhcyBwcm9kdWsgdGlkYWsgY2FjYXQgKPCdkYMo8J2QtyA9IE5vKSkgPSA5NSUNCiANCiDigKIgUHJvYmFiaWxpdGFzIG1lbmdndW5ha2FuIGtvbXBvbmVuIGJlcmt1YWxpdGFzIHJlbmRhaCAo8J2RgyjwnZC2ID0gTG93KSkgPSAzMCUNCiANCiDigKIgUHJvYmFiaWxpdGFzIG1lbmdndW5ha2FuIGtvbXBvbmVuIGJlcmt1YWxpdGFzIHRpbmdnaSAo8J2RgyjwnZC2ID0gSGlnaCkpID0gNzAlDQogDQog4oCiIFByb2JhYmlsaXRhcyBwcm9zZXMgcHJvZHVrc2kgZGkgYmF3YWggc3RhbmRhciAo8J2RgyjwnZGDID0gQmVsb3cpKSA9IDQwJQ0KIA0KIOKAoiBQcm9iYWJpbGl0YXMgcHJvc2VzIHByb2R1a3NpIHNlc3VhaSBzdGFuZGFyICjwnZGDKPCdkYMgPSBTdGFuZGFyZCkpID0gNjAlDQogDQpCYWdhaW1hbmEgcHJvYmFiaWxpdGFzIGJhaHdhIHN1YXR1IHByb2R1ayBha2FuIGNhY2F0ICjwnZC3ID0gWWVzKSwgamlrYSBkaWtldGFodWkga29tcG9uZW4geWFuZyBkaWd1bmFrYW4gYmVya3VhbGl0YXMgcmVuZGFoIGRhbiBwcm9zZXMgcHJvZHVrc2kgZGliYXdhaCBzdGFuZGFyPw0KDQpHdW5ha2FuIFRlb3JlbWEgQmF5ZXMgdW50dWsgbWVuZ2hpdHVuZyBwcm9iYWJpbGl0YXMgYmVyc3lhcmF0IGluaToNCg0KJCQNCvCdkYMoRCA9IFllcyB8IEMgPSBMb3csIFAgPSBCZWxvdylcZnJhY3vwnZGDKPCdkLYgPUxvdyzwnZGDID1CZWxvd+KIo/CdkLc9WWVzKeKLhfCdkYMo8J2Qtz1ZZXMpfXvwnZGDKPCdkLYgPUxvdyzwnZGDID1CZWxvdyl9DQokJA0KDQojIyAxLjMgSmF3YWJhbg0KDQpNZW5naGl0dW5nIHByb2JhYmlsaXRhcyBwcm9kdWsgY2FjYXQgKEQgPSBZZXMpIGppa2EgZGlrZXRhaHVpOg0KDQotIEtvbXBvbmVuIGJlcmt1YWxpdGFzIHJlbmRhaCAoQyA9IExvdykNCg0KLSBQcm9zZXMgcHJvZHVrc2kgZGkgYmF3YWggc3RhbmRhciAoUCA9IEJlbG93KQ0KDQpHdW5ha2FuIFRlb3JlbWEgQmF5ZXM6DQoNCiQkDQrwnZGDKEQgPSBZZXMgfCBDID0gTG93LCBQID0gQmVsb3cpXGZyYWN78J2RgyjwnZC2ID1Mb3cs8J2RgyA9QmVsb3fiiKPwnZC3PVllcynii4XwnZGDKPCdkLc9WWVzKX178J2RgyjwnZC2ID1Mb3cs8J2RgyA9QmVsb3cpfQ0KJCQNCg0KIyMgMS40IERhdGEgeWFuZyBEaWJlcmlrYW46DQoNCi0gJHtQKEQgPSBZZXMpID0gMC4wNX0kDQoNCi0gJHtQKEQgPSBObykgPSAwLjk1fSQNCg0KLSAke1AoQyA9IExvdykgPSAwLjMwfSQNCg0KLSAke1AoUCA9IEJlbG93KSA9IDAuNDB9JA0KDQojIyAxLjUgTWVuZ2hpdHVuZyBQKEMgPSBMb3csIFAgPSBCZWxvdykNCg0KVG90YWwgcHJvYmFiaWxpdGFzIGJpc2EgZGloaXR1bmcgZGVuZ2FuIGF0dXJhbiBwcm9iYWJpbGl0YXMgdG90YWw6DQoNCkFzdW1zaWthbiBwcm9iYWJpbGl0YXMga29tcG9uZW4gcmVuZGFoIGRhbiBwcm9zZXMgZGkgYmF3YWggc3RhbmRhciB0ZXJnYW50dW5nIHBhZGEgc3RhdHVzIGNhY2F0Lg0KDQotICR7UChDID0gTG93LCBQID0gQmVsb3cgfCBEID0gWWVzKSA9IDAuNyBcY2RvdCAwLjggPSAwLjU2fSQgKGtvbXBvbmVuIHJlbmRhaCBsZWJpaCBtdW5na2luIGRpIHByb2R1ayBjYWNhdCkNCg0KLSAke1AoQyA9IExvdywgUCA9IEJlbG93IHwgRCA9IE5vKSA9IDAuMiBcY2RvdCAwLjMgPSAwLjA2fSQgKEtvbXBvbmVuIHJlbmRhaCBsZWJpaCBqYXJhbmcgZGkgcHJvZHVrIGNhY2F0KQ0KDQoqKlN1YnRpdHVzaSBOaWxhaToqKg0KDQoke1AoQyA9IExvdywgUCA9IEJlbG93KSA9ICgwLjU2IFxjZG90IDAuMDUpICsgKDAuMDYgXGNkb3QgMC45NSkgPSAwLjAyOCArIDAuMDU3ID0gMC4wODV9JA0KDQojIyAxLjYgTWVuZ2hpdHVuZyBQKEQgPSBZZXMgfCBDID0gTG93LCBQID0gQmVsb3cpOg0KDQoqKlN1YnRpdHVzaSBrZSBkYWxhbSBydW11czoqKg0KDQoke1AoRCA9IFllcyB8IEMgPSBMb3csIFAgPSBCZWxvdykgPSBcZnJhY3soMC41NiBcY2RvdCAwLjA1KX17MC4wODV9ID0gXGZyYWN7MC4wMjh9ezAuMDg1fT0wLjMyOX0kDQoNCk1ha2EgUHJvYmFiaWxpdGFzIGRhcmkgc2VidWFoIHByb2R1ayBha2FuIGNhY2F0IGFkYWxhaCAzMi45JSBqaWthIGtvbXBvbmVuIGJlcmt1YWxpdGFzIHJlbmRhaCBkYW4gcHJvc2VzIHByb2R1a3NpIGRpIGJhd2FoIHN0YW5kYXIuDQoNCiMjIDEuNyBIYXNpbCBBa2hpcg0KDQpIYXNpbCBkYXJpIFN0dWR5IGthc3VzIDEgYWRhbGFoIDMyLjklDQoNCiMgU3R1ZGkgS2FzdXMgMg0KDQpQZW5lcmFwYW4gUHJvYmFiaWxpdGFzIGRhbGFtIERldGVrc2kgUGVuaXB1YW4gVHJhbnNha3NpDQoNClNlYnVhaCBwZXJ1c2FoYWFuIGUtY29tbWVyY2UgaW5naW4gbWVuZGV0ZWtzaSB0cmFuc2Frc2kgeWFuZyBiZXJwb3RlbnNpIHBlbmlwdWFuLiBCZXJkYXNhcmthbiBkYXRhIGhpc3RvcmlzLCAxJSBkYXJpIHRyYW5zYWtzaSB5YW5nIGRpbGFrdWthbiBhZGFsYWggcGVuaXB1YW4uIFBlcnVzYWhhYW4gaW5naW4gbWVuZ2d1bmFrYW4gZml0dXItZml0dXIgdGVydGVudHUgc2VwZXJ0aSBsb2thc2kgdHJhbnNha3NpLCBqdW1sYWggcGVtYmVsaWFuLCBkYW4gbWV0b2RlIHBlbWJheWFyYW4gdW50dWsgbWVtcHJlZGlrc2kgYXBha2FoIHN1YXR1IHRyYW5zYWtzaSBhZGFsYWggcGVuaXB1YW4gYXRhdSB0aWRhaw0KDQojIyAyLjEgRml0dXIgRGF0YQ0KDQog4oCiIExva2FzaSAoTCk6IE5lZ2FyYSBhdGF1IGtvdGEgdGVtcGF0IHRyYW5zYWtzaSBkaWxha3VrYW4uDQogDQog4oCiIEp1bWxhaCBQZW1iZWxpYW4gKEEpOiBKdW1sYWggdWFuZyB5YW5nIGRpYmVsYW5qYWthbi4NCiANCiDigKIgTWV0b2RlUGVtYmF5YXJhbiAoTSk6TWV0b2RlcGVtYmF5YXJhbnlhbmdkaWd1bmFrYW4gKGthcnR1IGtyZWRpdCwgZG9tcGV0IGRpZ2l0YWwsIGRsbCkuDQogDQog4oCiIFBlbmlwdWFuIChGKTogU3RhdHVzIHRyYW5zYWtzaSBhcGFrYWggcGVuaXB1YW4gYXRhdSB0aWRhay4NCiANCiMjIDIuMiBEYXRhIEhpc3RvcmlzIChDb250b2gpDQoNCiDigKIgUHJvYmFiaWxpdGFzIHRyYW5zYWtzaSBhZGFsYWggcGVuaXB1YW4gKPCdkYMo8J2QuSA9IEZyYXVkKSkgPSAxJQ0KIA0KIOKAoiBQcm9iYWJpbGl0YXMgdHJhbnNha3NpIGJ1a2FuIHBlbmlwdWFuICjwnZGDKPCdkLkgPSBOb3QgRnJhdWQpKSA9IDk5JQ0KIA0KIOKAoiBQcm9iYWJpbGl0YXMgbG9rYXNpIHRlcnRlbnR1IGFkYWxhaCBkaSBsdWFyIG5lZ2VyaSAo8J2RgyjwnZC/ID0gRm9yZWlnbikpID0gMjAlDQogDQog4oCiIFByb2JhYmlsaXRhcyBqdW1sYWggcGVtYmVsaWFuIGxlYmloIGRhcmkgNTAwKFAoQSA9IEhpZ2gpJCkgPSAxMCUNCiANCiDigKIgUHJvYmFiaWxpdGFzIG1lbmdndW5ha2FuIGthcnR1IGtyZWRpdCBzZWJhZ2FpIG1ldG9kZSBwZW1iYXlhcmFuKPCdkYMo8J2RgCA9Q3JlZGl0IENhcmQpKSA9IDUwJQ0KIA0KQmFnYWltYW5hIHByb2JhYmlsaXRhcyBiYWh3YSBzdWF0dSB0cmFuc2Frc2kgYWRhbGFoIHBlbmlwdWFuICjwnZC5ID0gRnJhdWQpLGppa2EgZGlrZXRhaHVpIHRyYW5zYWtzaSBkaWxha3VrYW4gZGFyaSBsb2thc2kgbHVhciBuZWdlcmksIGp1bWxhaCBwZW1iZWxpYW4gbGViaWggZGFyaSAkNTAwLCBkYW4gbWV0b2RlIHBlbWJheWFyYW4gbWVuZ2d1bmFrYW4ga2FydHUga3JlZGl0Pw0KDQpHdW5ha2FuIFRlb3JlbWEgQmF5ZXMgdW50dWsgbWVuZ2hpdHVuZyBwcm9iYWJpbGl0YXMgYmVyc3lhcmF0IGluaToNCg0KJCQNCvCdkYMo8J2QuSA9RnJhdWQg4oijIPCdkL8gPUZvcmVpZ24s8J2QtCA9IEhpZ2gs8J2RgCA9IENyZWRpdCBDYXJkKT1cZnJhY3vwnZGDKEwgPSBGb3JlaWduLCBBID0gSGlnaCwgTSA9IENyZWRpdCBDYXJkIHwgRiA9IEZyYXVkKSBcY2RvdCBQIChGID0gRnJhdWQpfXvwnZGDKEwgPSBGb3JlaWduLCBBID0gSGlnaCwgTSA9IENyZWRpdCBDYXJkKX0NCiQkDQoNCiMjIDIuMyBKYXdhYmFuIA0KDQoqKkRpa2V0YWh1aToqKg0KDQoxLiAke1AoRiA9IEZyYXVkKSA9IDAuMDF9JCAoUHJvYmFiaWxpdGFzIHRyYW5zYWtzaSBhZGFsYWggcGVuaXB1YW4pDQoNCjIuICR7UChGID0gTm8gRnJhdWQpID0gMC45OX0kIChQcm9iYWJpbGl0YXMgdHJhbnNha3NpIGJ1a2FuIHBlbmlwdWFuKQ0KDQozLiAke1AoTCA9IEZvcmVpZ24pID0gMC4yfSQgKFByb2JhYmlsaXRhcyBsb2thc2kgdHJhbnNha3NpIGRpIGx1YXIgbmVncmkpDQoNCjQuICR7UChBID0gSGlnaCkgPSAwLjF9JCAoUHJvYmFiaWxpdGFzIGp1bWxhaCBwZW1iZWxpYW4gbGViaWggZGFyaSAkNTAwKQ0KDQo1LiAke1AoTSA9IENyZWRpdCBDYXJkKSA9IDAuNX0kIChQcm9iYWJpbGl0YXMgbWVuZ2d1bmFrYW4ga2FydHUga3JlZGl0KSANCg0KS2l0YSBpbmdpbiBtZW5naGl0dW5nIHByb2JhYmlsaXRhcyBiYWh3YSAqKnRyYW5zYWtzaSBhZGFsYWggcGVuaXB1YW4qKiBKaWthOg0KDQotIExva2FzaSBUcmFuc2Frc2kgZGFyaSBsdWFyIG5lZ3JpDQoNCi0gSnVtbGFoIHBlbWJlbGlhbiBsZWJpaCBkYXJpICQ1MDANCg0KLSBNZXRvZGUgcGVtYmF5YXJhbiBtZW5nZ3VuYWthbiBrYXJ0dSBrcmVkaXQNCg0KS2l0YSBha2FuIG1lbmdndW5ha2FuIHJ1bXVzIGRpYXRhczoNCg0KJCQNCvCdkYMo8J2QuSA9RnJhdWQg4oijIPCdkL8gPUZvcmVpZ24s8J2QtCA9IEhpZ2gs8J2RgCA9IENyZWRpdCBDYXJkKT1cZnJhY3vwnZGDKEwgPSBGb3JlaWduLCBBID0gSGlnaCwgTSA9IENyZWRpdCBDYXJkIHwgRiA9IEZyYXVkKSBcY2RvdCBQIChGID0gRnJhdWQpfXvwnZGDKEwgPSBGb3JlaWduLCBBID0gSGlnaCwgTSA9IENyZWRpdCBDYXJkKX0NCiQkDQoNCiMjIDIuNCBIaXR1bmcgUGVtYmlsYW5nDQoNCioqQXN1bXNpa2FuIGJhaHdhIGRhbGFtIGtvbmRpc2kgcGVuaXB1YW46KioNCg0KLSBQcm9iYWJpbGl0YXMgdHJhbnNha3NpIGRpbGFrdWthbiBkaSBsdWFyIG5lZ2VyaSBhZGFsYWggMCw2Lg0KDQotIFByb2JhYmlsaXRhcyBqdW1sYWggcGVtYmVsaWFuIGxlYmloIGRhcmkgJDUwMCBhZGFsYWggMCw3Lg0KDQotIFByb2JhYmlsaXRhcyBtZW5nZ3VuYWthbiBrYXJ0dSBrcmVkaXQgYWRhbGFoIDAsOC4NCg0KTWFrYSBydW11c255YSA6DQoNCiQkDQpQKEwgPSBGb3JlaWduLCBBID0gSGlnaCwgTSA9IENyZWRpdCBDYXJkIHwgRiA9IEZyYXVkKSA9IFAoTHxGKSBcY2RvdCBQKEF8RikgXGNkb3QgUChNfEYpDQokJA0KDQpTdWJ0aXR1c2kgTmlsYWk6DQoNCiQkDQpQKEwgPSBGb3JlaWduLCBBID0gSGlnaCwgTSA9IENyZWRpdCBDYXJkIHwgRiA9IEZyYXVkKSA9IDAuNiBcY2RvdCAwLjcgXGNkb3QgMC44ID0gMC4zMzYNCiQkDQoNCkthbGlrYW4gZGVuZ2FuIFAoRiA9IEZyYXVkKSA9IDAuMDE6DQoNCiQkDQpGID0gMC4zMzYgXGNkb3QgMC4wMSA9IDAuMDAzMzYNCiQkDQoNCiMjIDIuNSBIaXR1bmcgUGVueWVidXQNCg0KQ2FyYSBtZW5naGl0dW5nIHBlbnllYnV0IGFkYWxhaCB0b3RhbCBkYXJpIHNlbXVhIHByb2JhYmlsaXRhcyBkYXJpIHNlbXVhIHNrZW5hcmlvIHlhaXR1IHRyYW5zYWtzaSBwZW5pcHVhbiBkYW4gYnVrYW4gcGVuaXB1YW46DQoNCiQkDQpQKEwgPSBGb3JlaWduLCBBID0gSGlnaCwgTSA9IENyZWRpdCBDYXJkKSA9IFAoTCxBLE0gfCBGID0gRnJhdWQpIFxjZG90IFAoRiA9IEZyYXVkKSArIFAoTCxBLE18RiA9IE5vdCBGcmF1ZCkgXGNkb3QgUChGID0gTm90IEZyYXVkKQ0KJCQNCg0KVW50dWsgRiA9IE5vdCBGcmF1ZCBraXRhIGFzdW1zaWthbjoNCg0KLSBQcm9iYWJpbGl0YXMgVHJhbnNha3NpIEx1YXIgTmVncmkgYWRhbGFoIDAsMS4NCg0KLSBQcm9iYWJpbGl0YXMganVtbGFoIHBlbWJlbGlhbiBsZWJpaCBkYXJpICQ1MDAgYWRhbGFoIDAsMDUuDQoNCi0gUHJvYmFiaWxpdGFzIG1lbmdndW5ha2FuIGthcnR1IGtyZWRpdCBhZGFsYWggMCw0Lg0KDQpTdWJ0aXR1c2kgTmlsYWk6DQoNCiQkDQpQKEwgPSBGb3JlaWduLCBBID0gSGlnaCwgTSA9IENyZWRpdCBDYXJkIHwgRiA9IE5vdCBGcmF1ZCkgPSAwLjEgXGNkb3QgMC4wNSBcY2RvdCAwLjQgPSAwLjAwMg0KJCQNCg0KS2FsaWthbiBkZW5nYW4gUChGID0gTm90IEZyYXVkKSA9IDAuOTkNCg0KJCQNCk5GID0gMC4wMDIgXGNkb3QgMC45OSA9IDAuMDAxOTgNCiQkDQoNCioqR2FidW5na2FuIFNlbXVhbnlhKio6DQoNCiQkDQpQKEwgPSBGb3JlaWduLCBBID0gSGlnaCwgTSA9IENyZWRpdCBDYXJkKSA9IDAuMDAzNiArIDAuMDAxOTggPSAwLjAwNTM0DQokJA0KDQojIyAyLjYgSGl0dW5nIFByb2JhYmlsaXRhcyBCZXJzeWFyYXQNCg0KU3VidGl0dXNpa2FuIGtlIFRlb3JlbWEgQmF5ZXMNCg0KJCQNClAoRiA9IEZyYXVkIHwgTCA9IEZvcmVpZ24sIEEgPSBIaWdoLCBNID0gQ3JlZGl0IENhcmQpID0gXGZyYWN7Tn17TkZ9DQokJA0KDQokJA0KUChGID0gRnJhdWQgfCBMLEEsTSkgPSBcZnJhY3swLjAwMzM2fXswLjAwNTM0fSA9IDAuNjI5DQokJA0KDQojIyAyLjcgSGFzaWwgQWtoaXINCg0KTWFrYSBoYXNpbCBha2hpciBkYXJpIHByb2JhYmlsaXRhcyBiYWh3YSB0cmFuc2Frc2kgdGVyc2VidXQgYWRhbGFoIHBlbmlwdWFuIGFkYWxhaCAwLjYyOSBhdGF1IDYyLjklDQo=