Teori Risiko

Aggregate Loss Models


Kontak : \(\downarrow\)
Email
Instagram yyosia
RPubs https://rpubs.com/yosia/

5.2 Model Risiko Individu

Seperti yang telah disebutkan sebelumnya, untuk model risiko individu, kita menganggap \(X_i\) sebagai kerugian dari kontrak ke-i dan menginterpretasikan

\[S_n=X_1 +X_2 +\cdots+X_n ,\]

menjadi kerugian agregat dari semua kontrak dalam portofolio atau kelompok kontrak. Di sini, \(X_i\) sebagai kerugian dari kontrak ke-i dan menginterpretasikantidak harus terdistribusi secara identik dan kita memiliki

\[{\rm E}(S_n) = \sum_{i=1}^{n} {\rm E}(X_i)~.\]

Dengan asumsi independensi pada \(X_i\) (yang mengimplikasikan \(\mathrm{Cov}\left( X_i, X_j \right) = 0\) untuk semua \(i≠j\)), selanjutnya dapat ditunjukkan bahwa

\[\begin{aligned} {\rm Var}(S_n) &= \sum_{i=1}^{n} {\rm Var}(X_i) \\ P_{S_n}(z) &= \prod_{i=1}^{n}P_{X_i}(z) \\ M_{S_n}(t) &= \prod_{i=1}^{n}M_{X_i}(t), \end{aligned}\]

dimana \(P_{S_n}(\cdot)\) dan \(M_{S_n}(\cdot)\) masing-masing adalah probability generating function (pgf) dan moment generating function (mgf) dari \(S_n\). Distribusi dari setiap \(X_i\) mengandung massa probabilitas nol, yang berhubungan dengan tidak adanya klaim dari kontrak ke-i. Salah satu strategi untuk memasukkan massa nol dalam distribusi adalah dengan menggunakan kerangka kerja dua bagian:

\[\begin{aligned} X_i = I_i\times B_i = \left\{\begin{array}{ll} 0~, & \text{if }~ I_i=0 \\ B_i~, & \text{if }~ I_i=1 . \end{array} \right. \end{aligned}\]

Di sini, \(I_i\) adalah variabel Bernoulli yang mengindikasikan apakah kerugian terjadi untuk kontrak ke-i atau tidak, dan \(B_i\) adalah variabel acak dengan dukungan non-negatif yang mewakili jumlah kerugian dari kontrak yang mengalami kerugian. Asumsikan bahwa \(I_1 ,\ldots,I_n ,B_1 ,\ldots,B_n\) saling bebas. Nyatakan \({\rm Pr} (I_i =1)=q_i\), dan \(\sigma_i^2={\rm Var}(B_i)\).

\[\begin{aligned} \mathrm{E}(S_n)& =\sum_{i=1}^n ~q_i ~\mu _i \\ \mathrm{Var}(S_n) & =\sum_{i=1}^n \left( q_i \sigma _i^2+q_i (1-q_i)\mu_i^2 \right)\\ P_{S_n}(z) & =\prod_{i=1}^n \left( 1-q_i+q_i P_{B_i}(z) \right)\\ M_{S_n}(t) & =\prod_{i=1}^n \left( 1-q_i+q_i M_{B_i}(t) \right) . \end{aligned}\]

Kasus khusus dari model di atas adalah ketika \(B_i\) mengikuti distribusi degenerasi dengan \(\mu_i=b_i\) dan \(\sigma^2_i=0\). Salah satu contohnya adalah asuransi jiwa berjangka atau asuransi dwiguna murni di mana \(b_i\) merepresentasikan jumlah manfaat asuransi dari kontrak ke-i.

Strategi lain untuk mengakomodasi massa nol dalam kerugian dari setiap kontrak adalah dengan mempertimbangkannya secara agregat di tingkat portofolio, seperti dalam model risiko kolektif. Di sini, kerugian agregat adalah \(S_{N} = X_1 + \cdots + X_N\), di mana \(N\) adalah variabel acak yang merepresentasikan jumlah klaim yang tidak nol yang terjadi dari seluruh kelompok kontrak. Dengan demikian, tidak semua kontrak dalam portofolio dapat diwakili dalam penjumlahan ini, dan \(S_N=0\) ketika \(N=0\) Model risiko kolektif akan dibahas secara rinci pada bagian selanjutnya.

Example 5.2.1

Pertanyaan Ujian Aktuaria. Sebuah perusahaan asuransi menjual 300 polis asuransi kebakaran sebagai berikut:

\[{\small \begin{matrix} \begin{array}{c c c} \hline \text{Number of} & \text{Policy} & \text{Probability of}\\ \text{Policies} & \text{Maximum} & \text{Claim Per Policy}\\ & (M_i) & (q_i) \\ \hline 100 & 400 & 0.05\\ 200 & 300 & 0.06\\ \hline \end{array} \end{matrix} }\]

Diberikan: (i) Jumlah klaim untuk setiap polis, \(X_i\), terdistribusi secara seragam antara \(0\) dan maksimum polis \(M_i\). (ii) Probabilitas terjadinya lebih dari satu klaim per polis adalah \(0\). (iii) Kejadian klaim bersifat independen.

Hitunglah rata-rata (mean), \(E(S_{300})\), dan varians, \(Var(S_{300})\), dari keseluruhan klaim. Bagaimana hasil ini akan berubah jika setiap klaim sama dengan maksimum polis?

Solusi. Klaim keseluruhan adalah \(S_{300} = X_1+\cdots+X_{300}\) dimana \(X_1, \ldots, X_{300}\) adalah independen namun tidak terdistribusi secara identik. Jumlah klaim polis terdistribusi secara seragam pada \((0,M_i)\) sehingga rata-rata jumlah klaim adalah \(M_i/2\) dan variansnya adalah \(M_i^2/12\) . Dengan demikian, untuk polis \(i=1,\ldots,300\) , kita memiliki

\[{\small \begin{matrix} \begin{array}{ccccc} \hline \text{Number of} & \text{Policy} & \text{Probability of} & \text{Mean} & \text{Variance}\\ \text{Policies} & \text{Maximum} & \text{Claim Per Policy} & \text{Amount} & \text{Amount}\\ & (M_i) & (q_{i}) & (\mu_{i}) & (\sigma_{i}^2) \\ \hline 100 & 400 & 0.05 & 200 & 400^2/12\\ 200 & 300 & 0.06 & 150 & 300^2/12 \\ \hline \end{array} \end{matrix} }\]

Rata-rata dari klaim agregat adalah

\[\mathrm{E~} (S_{300}) = \sum_{i=1}^{300} q_i \mu_i = 100\left\{0.05(200)\right\} + 200\left\{0.06 (150) \right\} = 2,800\]

Varians dari klaim agregat adalah

\[\begin{array}{ll} \mathrm{Var~}(S_{300}) &= \sum_{i=1}^{300} \left( q_i \sigma _i^2+q_i (1-q_i)\mu_i^2 \right) ~~~~ \text{since } X_i \text{'s are independent} \\ &= 100\left\{ 0.05 \left(\frac{400^2}{12}\right) +0.05 (1-0.05 )200^2 \right\} \\ & \ \ \ \ + 200\left\{ 0.06 \left(\frac{300^2}{12}\right) +0.06 (1-0.06 )150^2 \right\}\\ &= 600,467. \end{array}\]

Sekarang anggaplah kita menerima \(M_i\) maksimum polis jika terjadi klaim. Berapakah ekspektasi kerugian keseluruhan \(\mathrm{E~}(\tilde{S})\) dan varians kerugian keseluruhan \(\mathrm{Var~}(\tilde{S})\)?

Setiap jumlah klaim polis \(X_i\) sekarang bersifat deterministik dan ditetapkan pada \(M_i\), bukan jumlah yang terdistribusi secara acak, sehingga \(\sigma_i^2 = \mathrm{Var~} (X_i) = 0\) dan \(\mu_i = M_i\). Sekali lagi, probabilitas terjadinya klaim untuk setiap polis adalah \(q_i\). Dalam keadaan ini, kerugian agregat yang diharapkan adalah

\[\begin{aligned} \mathrm{E~}(\tilde{S}) &= \sum_{i=1}^{300} q_i \mu_i = 100 \left\{0.05(400) \right\} + 200 \left\{ 0.06(300) \right\} = 5,600 . \end{aligned}\]

Varians dari kerugian agregat adalah

\[\begin{aligned} \mathrm{Var~}(\tilde{S}) &= \sum_{i=1}^{300} \left( q_i \sigma _i^2+q_i (1-q_i )\mu_i^2 \right) = \sum_{i=1}^{300} \left( q_i (1-q_i) \mu_i^2 \right) \\ &= 100 \left\{(0.05) (1-0.05) 400^2\right\} + 200 \left\{(0.06) (1-0.06)300^2\right\} \\ &= 1,775,200 . \end{aligned}\]

Example 5.2.2

Sebuah perusahaan asuransi menjual portofolio 100 polis asuransi pemilik rumah independen, yang masing-masing memiliki frekuensi klaim mengikuti distribusi Poisson yang dimodifikasi nol, sebagai berikut:

\[{\small \begin{matrix} \begin{array}{cccc} \hline \text{Type of} & \text{Number of} & \text{Probability of} & \lambda \\ \text{Policy} & \text{Policies} & \text{At Least 1 Claim} & \\ \hline \text{Low-risk} & 40 & 0.03 & 1 \\ \text{High-risk} & 60 & 0.05 & 2 \\ \hline \end{array} \end{matrix} }\]

Temukan nilai ekspektasi dan varians frekuensi klaim untuk seluruh portofolio.

Solution. Untuk setiap polis, kita dapat menulis frekuensi klaim Poisson yang dimodifikasi nol \(N_i\) sebagai \(N_i = I_i \times B_i\) dimana,

\[q_i = \Pr(I_i = 1) = \Pr(N_i > 0) = 1-p_{i0} .\]

\[\begin{aligned} \mu_i &={\rm E}(B_i) = {\rm E}(N_i^T) = \frac{\lambda}{1-e^{-\lambda}} \\ \sigma_i^2 &={\rm Var}(B_i) = {\rm Var}(N_i^T) = \frac{\lambda [1-(\lambda+1)e^{-\lambda}]}{(1-e^{-\lambda})^2} . \end{aligned}\]

gunakan \(n=100\) frekuensi klaim portofolio menjadi \(S_{100} = \sum_{i=1}^{100} N_i\). Dengan menggunakan rumus di atas, frekuensi klaim yang diharapkan dari portofolio adalah

\[\begin{aligned} \mathrm{E~} (S_{100}) &= \sum_{i=1}^{100} q_i \mu_i \\ & = 40\left[0.03 \left(\frac{1}{1-e^{-1}} \right) \right] + 60 \left[0.05 \left( \frac{2}{1-e^{-2}} \right) \right] \\ &= 40(0.03)(1.5820) + 60(0.05)(2.3130) = 8.8375 . \end{aligned}\]

Varians dari frekuensi klaim portofolio adalah

\[\begin{aligned} \mathrm{Var~}(S_{100}) &= \sum_{i=1}^{100} \left( q_i \sigma _i^2+q_i (1-q_i )\mu_i^2 \right) \\ &= 40 \left[ 0.03 \left(\frac{1-2e^{-1}}{(1-e^{-1})^2} \right) + 0.03(0.97)(1.5820^2) \right] \\ & \ \ \ + 60 \left[0.05 \left( \frac{2[1-3e^{-2}]}{ (1-e^{-2})^2} \right) + 0.05(0.95)(2.3130^2) \right] \\ &= 23.7214 . \end{aligned}\]

Perhatikan bahwa secara ekuivalen, kita dapat menghitung rata-rata dan varians dari polis individu secara langsung menggunakan hubungan antara distribusi Poisson yang dimodifikasi-nol dan distribusi Poisson terpotong-nol

Example 5.2.3

Seperti pada Contoh 5.2.1 sebelumnya, sebuah perusahaan asuransi menjual 300 polis asuransi kebakaran, dengan jumlah klaim \(X_i\) terdistribusi seragam antara 0 dan maksimum polis \(M_i\). Dengan menggunakan pendekatan normal, hitunglah probabilitas bahwa jumlah klaim keseluruhan \(S_300\) melebihi \(\$3,500\).

Solution. Kita telah melihat sebelumnya bagaimana \(\mathrm{E}(S_{300})=2,800\) dan \(\mathrm{Var}(S_{300}) = 600,467\). Kemudian

\[\begin{aligned} {\rm Pr}(S_{300} > 3,500) &= 1 - {\rm Pr}(S_{300} \leq 3,500) \\ &\approx 1- \Phi \left( \frac{3,500-2,800}{\sqrt{600,467}} \right) = 1 - \Phi \left( 0.90334 \right) \\ &= 1 - 0.8168 = 0.1832 . \end{aligned}\]

Table Distribusi Jumlah Parsial Bentuk Tertutup \[{\small \begin{matrix} \begin{array}{l|l|l} \hline \text{Distribution of } X_i & \text{Abbreviation} & \text{Distribution of } S_n \\ \hline \text{Normal with mean } \mu_i \text{ and variance } \sigma_i^2 & N(\mu_i,\sigma_i^2) & N\left(\sum_{i=1}^{n}\mu_i,~\sum_{i=1}^{n}\sigma_i^2\right) \\ \text{Exponential with mean } \theta & Exp(\theta) & Gam(n,\theta)\\ \text{Gamma with shape } \alpha_i \text{ and scale } \theta & Gam(\alpha_i,\theta) & Gam\left(\sum_{i=1}^n\alpha_i,\theta\right) \\ \text{Poisson with mean (and variance) } \lambda_i & Poi(\lambda_i)& Poi\left(\sum_{i=1}^{n}\lambda_i\right)\\ \text{Binomial with } m_i \text{ trials and } q \text{ success probability} & Bin(m_i, q)& Bin\left(\sum_{i=1}^n m_i, q\right)\\ \text{Geometric with mean } \beta & Geo(\beta) & NB(\beta,n)\\ \text{Negative binomial with mean } r_i \beta~& NB(\beta,r_i)& NB\left(\beta,\sum_{i=1}^n r_i\right)\\ ~ ~ ~ \text{ and variance } ~r_i \beta (1+\beta) & & \\ \hline \end{array} \end{matrix} }\] .

LS0tDQp0aXRsZTogIlRlb3JpIFJpc2lrbyINCnN1YnRpdGxlOiAiQWdncmVnYXRlIExvc3MgTW9kZWxzIg0KYXV0aG9yOiAiWW9zaWEiDQpkYXRlOiAgIjAxLzAzLzIwMjMiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OnJvYm9ib29rOiAgICMgaHR0cHM6Ly9naXRodWIuY29tL2p1YmEvcm1kZm9ybWF0cw0KICAgIHNlbGZfY29udGFpbmVkOiB0cnVlDQogICAgaGlnaGxpZ2h0OiBweWdtZW50cw0KICAgIHRoZW1lOiBzYW5kc3RvbmUNCiAgICB0aHVtYm5haWxzOiB0cnVlDQogICAgbGlnaHRib3g6IHRydWUNCiAgICBnYWxsZXJ5OiB0cnVlDQogICAgbGliX2RpcjogbGlicw0KICAgIGRmX3ByaW50OiAicGFnZWQiDQogICAgY29kZV9mb2xkaW5nOiAic2hvdyINCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICBjc3M6ICJzdHlsZS5jc3MiDQoNCi0tLQ0KDQo8Qk9EWSB7DQogdXNlci1zZWxlY3Q6bm9uZTsNCiAtbW96LXVzZXItc2VsZWN0Om5vbmU7DQogLW1zLXVzZXItc2VsZWN0Om5vbmU7DQogLWtodG1sLXVzZXItc2VsZWN0Om5vbmU7DQogLXdlYmtpdC11c2VyLXNlbGVjdDpub25lDQp9Lz4NCg0KPGJyPg0KDQo8aW1nIHN0eWxlPSJmbG9hdDogcmlnaHQ7IG1hcmdpbjogLTUwcHggNTBweCAwcHggNTBweDsgd2lkdGg6MzAlIiBzcmM9ImRvd25sb2FkLnBuZyIvPiANCg0KfA0KOi0tLS0gfDotLS0tDQoqKktvbnRhayoqfCAqKjogJFxkb3duYXJyb3ckKioNCkVtYWlsfCB5b3NpYS55b3NpYUBzdHVkZW50Lm1hdGFuYXVuaXZlcnNpdHkuYWMuaWQNCkluc3RhZ3JhbSB8IFt5eW9zaWFdKGh0dHBzOi8vd3d3Lmluc3RhZ3JhbS5jb20veXlvc2lhLykgDQpSUHVicyAgfCBodHRwczovL3JwdWJzLmNvbS95b3NpYS8NCg0KKioqDQoNCiMgNS4yIE1vZGVsIFJpc2lrbyBJbmRpdmlkdQ0KDQpTZXBlcnRpIHlhbmcgdGVsYWggZGlzZWJ1dGthbiBzZWJlbHVtbnlhLCB1bnR1ayBtb2RlbCByaXNpa28gaW5kaXZpZHUsIGtpdGEgbWVuZ2FuZ2dhcCAkWF9pJCBzZWJhZ2FpIGtlcnVnaWFuIGRhcmkga29udHJhayBrZS1pIGRhbiBtZW5naW50ZXJwcmV0YXNpa2FuDQoNCiQkU19uPVhfMSArWF8yICtcY2RvdHMrWF9uICwkJA0KDQptZW5qYWRpIGtlcnVnaWFuIGFncmVnYXQgZGFyaSBzZW11YSBrb250cmFrIGRhbGFtIHBvcnRvZm9saW8gYXRhdSBrZWxvbXBvayBrb250cmFrLiBEaSBzaW5pLCAkWF9pJCBzZWJhZ2FpIGtlcnVnaWFuIGRhcmkga29udHJhayBrZS1pIGRhbiBtZW5naW50ZXJwcmV0YXNpa2FudGlkYWsgaGFydXMgdGVyZGlzdHJpYnVzaSBzZWNhcmEgaWRlbnRpayBkYW4ga2l0YSBtZW1pbGlraQ0KDQokJHtccm0gRX0oU19uKSA9IFxzdW1fe2k9MX1ee259IHtccm0gRX0oWF9pKX4uJCQNCg0KRGVuZ2FuIGFzdW1zaSBpbmRlcGVuZGVuc2kgcGFkYSAkWF9pJCAoeWFuZyBtZW5naW1wbGlrYXNpa2FuICRcbWF0aHJte0Nvdn1cbGVmdCggWF9pLCBYX2ogXHJpZ2h0KSA9IDAkIHVudHVrIHNlbXVhICRp4omgaiQpLCBzZWxhbmp1dG55YSBkYXBhdCBkaXR1bmp1a2thbiBiYWh3YQ0KDQokJFxiZWdpbnthbGlnbmVkfQ0KICAgIHtccm0gVmFyfShTX24pICY9IFxzdW1fe2k9MX1ee259IHtccm0gVmFyfShYX2kpIFxcDQogICAgUF97U19ufSh6KSAmPSBccHJvZF97aT0xfV57bn1QX3tYX2l9KHopIFxcDQogICAgTV97U19ufSh0KSAmPSBccHJvZF97aT0xfV57bn1NX3tYX2l9KHQpLCANClxlbmR7YWxpZ25lZH0kJA0KDQpkaW1hbmEgJFBfe1Nfbn0oXGNkb3QpJCBkYW4gJE1fe1Nfbn0oXGNkb3QpJCBtYXNpbmctbWFzaW5nIGFkYWxhaCBwcm9iYWJpbGl0eSBnZW5lcmF0aW5nIGZ1bmN0aW9uIChwZ2YpIGRhbiBtb21lbnQgZ2VuZXJhdGluZyBmdW5jdGlvbiAobWdmKSBkYXJpICRTX24kLiBEaXN0cmlidXNpIGRhcmkgc2V0aWFwICRYX2kkIG1lbmdhbmR1bmcgbWFzc2EgcHJvYmFiaWxpdGFzIG5vbCwgeWFuZyBiZXJodWJ1bmdhbiBkZW5nYW4gdGlkYWsgYWRhbnlhIGtsYWltIGRhcmkga29udHJhayBrZS1pLiBTYWxhaCBzYXR1IHN0cmF0ZWdpIHVudHVrIG1lbWFzdWtrYW4gbWFzc2Egbm9sIGRhbGFtIGRpc3RyaWJ1c2kgYWRhbGFoIGRlbmdhbiBtZW5nZ3VuYWthbiBrZXJhbmdrYSBrZXJqYSBkdWEgYmFnaWFuOg0KDQokJFxiZWdpbnthbGlnbmVkfQ0KWF9pID0gSV9pXHRpbWVzIEJfaSA9IFxsZWZ0XHtcYmVnaW57YXJyYXl9e2xsfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB+LCAmIFx0ZXh0e2lmIH1+IElfaT0wIFxcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQl9pfiwgJiBcdGV4dHtpZiB9fiBJX2k9MSAuDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxlbmR7YXJyYXl9DQogICAgICAgICAgICAgXHJpZ2h0Lg0KXGVuZHthbGlnbmVkfSQkDQoNCkRpIHNpbmksICRJX2kkIGFkYWxhaCB2YXJpYWJlbCBCZXJub3VsbGkgeWFuZyBtZW5naW5kaWthc2lrYW4gYXBha2FoIGtlcnVnaWFuIHRlcmphZGkgdW50dWsga29udHJhayBrZS1pIGF0YXUgdGlkYWssIGRhbiAkQl9pJCBhZGFsYWggdmFyaWFiZWwgYWNhayBkZW5nYW4gZHVrdW5nYW4gbm9uLW5lZ2F0aWYgeWFuZyBtZXdha2lsaSBqdW1sYWgga2VydWdpYW4gZGFyaSBrb250cmFrIHlhbmcgbWVuZ2FsYW1pIGtlcnVnaWFuLiBBc3Vtc2lrYW4gYmFod2EgJElfMSAsXGxkb3RzLElfbiAsQl8xICxcbGRvdHMsQl9uJCBzYWxpbmcgYmViYXMuIE55YXRha2FuICR7XHJtIFByfSAoSV9pID0xKT1xX2kkLCBkYW4gJFxzaWdtYV9pXjI9e1xybSBWYXJ9KEJfaSkkLg0KDQokJFxiZWdpbnthbGlnbmVkfQ0KXG1hdGhybXtFfShTX24pJiA9XHN1bV97aT0xfV5uIH5xX2kgIH5cbXUgX2kgXFwNClxtYXRocm17VmFyfShTX24pICYgPVxzdW1fe2k9MX1ebiBcbGVmdCggcV9pIFxzaWdtYSBfaV4yK3FfaSAoMS1xX2kpXG11X2leMiBccmlnaHQpXFwNClBfe1Nfbn0oeikgJiA9XHByb2Rfe2k9MX1ebiBcbGVmdCggMS1xX2krcV9pIFBfe0JfaX0oeikgXHJpZ2h0KVxcDQpNX3tTX259KHQpICYgPVxwcm9kX3tpPTF9Xm4gXGxlZnQoIDEtcV9pK3FfaSBNX3tCX2l9KHQpIFxyaWdodCkgLg0KXGVuZHthbGlnbmVkfSQkDQoNCkthc3VzIGtodXN1cyBkYXJpIG1vZGVsIGRpIGF0YXMgYWRhbGFoIGtldGlrYSAkQl9pJCBtZW5naWt1dGkgZGlzdHJpYnVzaSBkZWdlbmVyYXNpIGRlbmdhbiAkXG11X2k9Yl9pJCBkYW4gJFxzaWdtYV4yX2k9MCQuIFNhbGFoIHNhdHUgY29udG9obnlhIGFkYWxhaCBhc3VyYW5zaSBqaXdhIGJlcmphbmdrYSBhdGF1IGFzdXJhbnNpIGR3aWd1bmEgbXVybmkgZGkgbWFuYSAkYl9pJCBtZXJlcHJlc2VudGFzaWthbiBqdW1sYWggbWFuZmFhdCBhc3VyYW5zaSBkYXJpIGtvbnRyYWsga2UtaS4NCg0KU3RyYXRlZ2kgbGFpbiB1bnR1ayBtZW5nYWtvbW9kYXNpIG1hc3NhIG5vbCBkYWxhbSBrZXJ1Z2lhbiBkYXJpIHNldGlhcCBrb250cmFrIGFkYWxhaCBkZW5nYW4gbWVtcGVydGltYmFuZ2thbm55YSBzZWNhcmEgYWdyZWdhdCBkaSB0aW5na2F0IHBvcnRvZm9saW8sIHNlcGVydGkgZGFsYW0gbW9kZWwgcmlzaWtvIGtvbGVrdGlmLiBEaSBzaW5pLCBrZXJ1Z2lhbiBhZ3JlZ2F0IGFkYWxhaCAkU197Tn0gPSBYXzEgKyBcY2RvdHMgKyBYX04kLCBkaSBtYW5hICROJCBhZGFsYWggdmFyaWFiZWwgYWNhayB5YW5nIG1lcmVwcmVzZW50YXNpa2FuIGp1bWxhaCBrbGFpbSB5YW5nIHRpZGFrIG5vbCB5YW5nIHRlcmphZGkgZGFyaSBzZWx1cnVoIGtlbG9tcG9rIGtvbnRyYWsuIERlbmdhbiBkZW1pa2lhbiwgdGlkYWsgc2VtdWEga29udHJhayBkYWxhbSBwb3J0b2ZvbGlvIGRhcGF0IGRpd2FraWxpIGRhbGFtIHBlbmp1bWxhaGFuIGluaSwgZGFuICRTX049MCQga2V0aWthICROPTAkIE1vZGVsIHJpc2lrbyBrb2xla3RpZiBha2FuIGRpYmFoYXMgc2VjYXJhIHJpbmNpIHBhZGEgYmFnaWFuIHNlbGFuanV0bnlhLg0KDQojIyBFeGFtcGxlIDUuMi4xDQoNCioqUGVydGFueWFhbiBVamlhbiBBa3R1YXJpYS4qKiBTZWJ1YWggcGVydXNhaGFhbiBhc3VyYW5zaSBtZW5qdWFsIDMwMCBwb2xpcyBhc3VyYW5zaSBrZWJha2FyYW4gc2ViYWdhaSBiZXJpa3V0Og0KDQokJHtcc21hbGwgDQpcYmVnaW57bWF0cml4fQ0KICAgIFxiZWdpbnthcnJheX17YyBjIGN9IFxobGluZQ0KICAgICAgICBcdGV4dHtOdW1iZXIgb2Z9ICYgXHRleHR7UG9saWN5fSAmIFx0ZXh0e1Byb2JhYmlsaXR5IG9mfVxcDQogICAgICAgIFx0ZXh0e1BvbGljaWVzfSAmICBcdGV4dHtNYXhpbXVtfSAmICBcdGV4dHtDbGFpbSBQZXIgUG9saWN5fVxcIA0KICAgICAgICAmIChNX2kpICYgKHFfaSkgXFwgXGhsaW5lDQogICAgICAgIDEwMCAmIDQwMCAmIDAuMDVcXA0KICAgICAgICAyMDAgJiAzMDAgJiAwLjA2XFwgXGhsaW5lDQogICAgXGVuZHthcnJheX0NClxlbmR7bWF0cml4fQ0KfSQkDQoNCkRpYmVyaWthbjogDQooaSkgSnVtbGFoIGtsYWltIHVudHVrIHNldGlhcCBwb2xpcywgJFhfaSQsIHRlcmRpc3RyaWJ1c2kgc2VjYXJhIHNlcmFnYW0gYW50YXJhICQwJCBkYW4gbWFrc2ltdW0gcG9saXMgJE1faSQuDQooaWkpIFByb2JhYmlsaXRhcyB0ZXJqYWRpbnlhIGxlYmloIGRhcmkgc2F0dSBrbGFpbSBwZXIgcG9saXMgYWRhbGFoICQwJC4gDQooaWlpKSBLZWphZGlhbiBrbGFpbSBiZXJzaWZhdCBpbmRlcGVuZGVuLg0KDQpIaXR1bmdsYWggcmF0YS1yYXRhIChtZWFuKSwgJEUoU197MzAwfSkkLCBkYW4gdmFyaWFucywgJFZhcihTX3szMDB9KSQsIGRhcmkga2VzZWx1cnVoYW4ga2xhaW0uIEJhZ2FpbWFuYSBoYXNpbCBpbmkgYWthbiBiZXJ1YmFoIGppa2Egc2V0aWFwIGtsYWltIHNhbWEgZGVuZ2FuIG1ha3NpbXVtIHBvbGlzPw0KDQoqKlNvbHVzaS4qKiBLbGFpbSBrZXNlbHVydWhhbiBhZGFsYWggJFNfezMwMH0gPSBYXzErXGNkb3RzK1hfezMwMH0kIGRpbWFuYSAkWF8xLCBcbGRvdHMsIFhfezMwMH0kIGFkYWxhaCBpbmRlcGVuZGVuIG5hbXVuIHRpZGFrIHRlcmRpc3RyaWJ1c2kgc2VjYXJhIGlkZW50aWsuIEp1bWxhaCBrbGFpbSBwb2xpcyB0ZXJkaXN0cmlidXNpIHNlY2FyYSBzZXJhZ2FtIHBhZGEgJCgwLE1faSkkIHNlaGluZ2dhIHJhdGEtcmF0YSBqdW1sYWgga2xhaW0gYWRhbGFoICRNX2kvMiQgZGFuIHZhcmlhbnNueWEgYWRhbGFoICRNX2leMi8xMiQgLiBEZW5nYW4gZGVtaWtpYW4sIHVudHVrIHBvbGlzICRpPTEsXGxkb3RzLDMwMCQgLCBraXRhIG1lbWlsaWtpDQoNCiQke1xzbWFsbCANClxiZWdpbnttYXRyaXh9DQogICAgXGJlZ2lue2FycmF5fXtjY2NjY30gXGhsaW5lDQogICAgICAgIFx0ZXh0e051bWJlciBvZn0gJiBcdGV4dHtQb2xpY3l9ICYgXHRleHR7UHJvYmFiaWxpdHkgb2Z9ICYgXHRleHR7TWVhbn0gJiBcdGV4dHtWYXJpYW5jZX1cXA0KICAgICAgICBcdGV4dHtQb2xpY2llc30gJiAgXHRleHR7TWF4aW11bX0gJiAgXHRleHR7Q2xhaW0gUGVyIFBvbGljeX0gJiBcdGV4dHtBbW91bnR9ICYgXHRleHR7QW1vdW50fVxcDQogICAgICAgICYgKE1faSkgJiAocV97aX0pICYgKFxtdV97aX0pICYgKFxzaWdtYV97aX1eMikgXFwgXGhsaW5lDQogICAgICAgIDEwMCAmIDQwMCAmIDAuMDUgJiAyMDAgJiA0MDBeMi8xMlxcDQogICAgICAgIDIwMCAmIDMwMCAmIDAuMDYgJiAxNTAgJiAzMDBeMi8xMiBcXCBcaGxpbmUNCiAgICBcZW5ke2FycmF5fQ0KXGVuZHttYXRyaXh9DQp9JCQNCg0KUmF0YS1yYXRhIGRhcmkga2xhaW0gYWdyZWdhdCBhZGFsYWgNCg0KJCRcbWF0aHJte0V+fSAoU197MzAwfSkgPSBcc3VtX3tpPTF9XnszMDB9IHFfaSBcbXVfaSA9IDEwMFxsZWZ0XHswLjA1KDIwMClccmlnaHRcfSArIDIwMFxsZWZ0XHswLjA2ICgxNTApIFxyaWdodFx9ID0gMiw4MDAkJA0KDQpWYXJpYW5zIGRhcmkga2xhaW0gYWdyZWdhdCBhZGFsYWgNCg0KJCRcYmVnaW57YXJyYXl9e2xsfQ0KICAgIFxtYXRocm17VmFyfn0oU197MzAwfSkgJj0gXHN1bV97aT0xfV57MzAwfSBcbGVmdCggcV9pIFxzaWdtYSBfaV4yK3FfaSAoMS1xX2kpXG11X2leMiBccmlnaHQpIH5+fn4gXHRleHR7c2luY2UgfSBYX2kgXHRleHR7J3MgYXJlIGluZGVwZW5kZW50fSBcXA0KICAgICY9IDEwMFxsZWZ0XHsgMC4wNSBcbGVmdChcZnJhY3s0MDBeMn17MTJ9XHJpZ2h0KSArMC4wNSAoMS0wLjA1ICkyMDBeMiBccmlnaHRcfSBcXA0KICAgICYgXCBcIFwgXCArDQogICAgMjAwXGxlZnRcew0KICAgIDAuMDYgXGxlZnQoXGZyYWN7MzAwXjJ9ezEyfVxyaWdodCkgKzAuMDYgKDEtMC4wNiApMTUwXjIgXHJpZ2h0XH1cXA0KICAgICY9IDYwMCw0NjcuDQogICAgXGVuZHthcnJheX0kJA0KDQpTZWthcmFuZyBhbmdnYXBsYWgga2l0YSBtZW5lcmltYSAkTV9pJCBtYWtzaW11bSBwb2xpcyBqaWthIHRlcmphZGkga2xhaW0uIEJlcmFwYWthaCBla3NwZWt0YXNpIGtlcnVnaWFuIGtlc2VsdXJ1aGFuICRcbWF0aHJte0V+fShcdGlsZGV7U30pJCBkYW4gdmFyaWFucyBrZXJ1Z2lhbiBrZXNlbHVydWhhbiAkXG1hdGhybXtWYXJ+fShcdGlsZGV7U30pJD8NCg0KU2V0aWFwIGp1bWxhaCBrbGFpbSBwb2xpcyAkWF9pJCBzZWthcmFuZyBiZXJzaWZhdCBkZXRlcm1pbmlzdGlrIGRhbiBkaXRldGFwa2FuIHBhZGEgJE1faSQsIGJ1a2FuIGp1bWxhaCB5YW5nIHRlcmRpc3RyaWJ1c2kgc2VjYXJhIGFjYWssIHNlaGluZ2dhICRcc2lnbWFfaV4yID0gXG1hdGhybXtWYXJ+fSAoWF9pKSA9IDAkIGRhbiAkXG11X2kgPSBNX2kkLiBTZWthbGkgbGFnaSwgcHJvYmFiaWxpdGFzIHRlcmphZGlueWEga2xhaW0gdW50dWsgc2V0aWFwIHBvbGlzIGFkYWxhaCAkcV9pJC4gRGFsYW0ga2VhZGFhbiBpbmksIGtlcnVnaWFuIGFncmVnYXQgeWFuZyBkaWhhcmFwa2FuIGFkYWxhaA0KDQokJFxiZWdpbnthbGlnbmVkfQ0KXG1hdGhybXtFfn0oXHRpbGRle1N9KSAmPSBcc3VtX3tpPTF9XnszMDB9IHFfaSBcbXVfaSA9IDEwMCBcbGVmdFx7MC4wNSg0MDApIFxyaWdodFx9ICsgMjAwIFxsZWZ0XHsgMC4wNigzMDApIFxyaWdodFx9ID0gNSw2MDAgLg0KXGVuZHthbGlnbmVkfSQkDQoNClZhcmlhbnMgZGFyaSBrZXJ1Z2lhbiBhZ3JlZ2F0IGFkYWxhaA0KDQokJFxiZWdpbnthbGlnbmVkfQ0KXG1hdGhybXtWYXJ+fShcdGlsZGV7U30pICY9IFxzdW1fe2k9MX1eezMwMH0gXGxlZnQoIHFfaSBcc2lnbWEgX2leMitxX2kgKDEtcV9pDQopXG11X2leMiBccmlnaHQpID0gXHN1bV97aT0xfV57MzAwfSBcbGVmdCggcV9pICgxLXFfaSkgXG11X2leMiBccmlnaHQpIFxcDQomPSAxMDAgXGxlZnRceygwLjA1KSAoMS0wLjA1KSA0MDBeMlxyaWdodFx9ICsNCjIwMCBcbGVmdFx7KDAuMDYpICgxLTAuMDYpMzAwXjJccmlnaHRcfSBcXA0KJj0gMSw3NzUsMjAwIC4NClxlbmR7YWxpZ25lZH0kJA0KDQojIyBFeGFtcGxlIDUuMi4yDQoNClNlYnVhaCBwZXJ1c2FoYWFuIGFzdXJhbnNpIG1lbmp1YWwgcG9ydG9mb2xpbyAxMDAgcG9saXMgYXN1cmFuc2kgcGVtaWxpayBydW1haCBpbmRlcGVuZGVuLCB5YW5nIG1hc2luZy1tYXNpbmcgbWVtaWxpa2kgZnJla3VlbnNpIGtsYWltIG1lbmdpa3V0aSBkaXN0cmlidXNpIFBvaXNzb24geWFuZyBkaW1vZGlmaWthc2kgbm9sLCBzZWJhZ2FpIGJlcmlrdXQ6DQoNCiQke1xzbWFsbCANClxiZWdpbnttYXRyaXh9DQogICAgXGJlZ2lue2FycmF5fXtjY2NjfSBcaGxpbmUNCiAgICAgICAgXHRleHR7VHlwZSBvZn0gJiBcdGV4dHtOdW1iZXIgb2Z9ICAmIFx0ZXh0e1Byb2JhYmlsaXR5IG9mfSAmIFxsYW1iZGEgXFwNCiAgICAgICAgXHRleHR7UG9saWN5fSAmIFx0ZXh0e1BvbGljaWVzfSAgJiAgXHRleHR7QXQgTGVhc3QgMSBDbGFpbX0gJiAgXFwgXGhsaW5lDQogICAgICAgIFx0ZXh0e0xvdy1yaXNrfSAmIDQwICYgMC4wMyAmIDEgXFwNCiAgICAgICAgXHRleHR7SGlnaC1yaXNrfSAmIDYwICYgMC4wNSAmIDIgXFwgXGhsaW5lDQogICAgXGVuZHthcnJheX0NClxlbmR7bWF0cml4fQ0KfSQkDQoNClRlbXVrYW4gbmlsYWkgZWtzcGVrdGFzaSBkYW4gdmFyaWFucyBmcmVrdWVuc2kga2xhaW0gdW50dWsgc2VsdXJ1aCBwb3J0b2ZvbGlvLg0KDQoqKlNvbHV0aW9uKiouIFVudHVrIHNldGlhcCBwb2xpcywga2l0YSBkYXBhdCBtZW51bGlzIGZyZWt1ZW5zaSBrbGFpbSBQb2lzc29uIHlhbmcgZGltb2RpZmlrYXNpIG5vbCAkTl9pJCBzZWJhZ2FpICROX2kgPSBJX2kgXHRpbWVzIEJfaSQgZGltYW5hLA0KDQokJHFfaSA9IFxQcihJX2kgPSAxKSA9IFxQcihOX2kgPiAwKSA9IDEtcF97aTB9IC4kJA0KDQokJFxiZWdpbnthbGlnbmVkfQ0KXG11X2kgJj17XHJtIEV9KEJfaSkgPSB7XHJtIEV9KE5faV5UKSA9IFxmcmFje1xsYW1iZGF9ezEtZV57LVxsYW1iZGF9fSBcXA0KXHNpZ21hX2leMiAmPXtccm0gVmFyfShCX2kpID0ge1xybSBWYXJ9KE5faV5UKSA9IFxmcmFje1xsYW1iZGEgWzEtKFxsYW1iZGErMSllXnstXGxhbWJkYX1dfXsoMS1lXnstXGxhbWJkYX0pXjJ9IC4NClxlbmR7YWxpZ25lZH0kJA0KDQpndW5ha2FuICRuPTEwMCQgZnJla3VlbnNpIGtsYWltIHBvcnRvZm9saW8gbWVuamFkaSAkU197MTAwfSA9IFxzdW1fe2k9MX1eezEwMH0gTl9pJC4gRGVuZ2FuIG1lbmdndW5ha2FuIHJ1bXVzIGRpIGF0YXMsIGZyZWt1ZW5zaSBrbGFpbSB5YW5nIGRpaGFyYXBrYW4gZGFyaSBwb3J0b2ZvbGlvIGFkYWxhaA0KDQokJFxiZWdpbnthbGlnbmVkfQ0KICAgIFxtYXRocm17RX59IChTX3sxMDB9KSAmPSBcc3VtX3tpPTF9XnsxMDB9IHFfaSBcbXVfaSBcXA0KICAgICYgPSA0MFxsZWZ0WzAuMDMgXGxlZnQoXGZyYWN7MX17MS1lXnstMX19IFxyaWdodCkgXHJpZ2h0XSArIDYwIFxsZWZ0WzAuMDUgXGxlZnQoIFxmcmFjezJ9ezEtZV57LTJ9fSBccmlnaHQpIFxyaWdodF0gXFwNCiAgICAmPSA0MCgwLjAzKSgxLjU4MjApICsgNjAoMC4wNSkoMi4zMTMwKSA9IDguODM3NSAuDQpcZW5ke2FsaWduZWR9JCQNCg0KVmFyaWFucyBkYXJpIGZyZWt1ZW5zaSBrbGFpbSBwb3J0b2ZvbGlvIGFkYWxhaA0KDQokJFxiZWdpbnthbGlnbmVkfQ0KICAgIFxtYXRocm17VmFyfn0oU197MTAwfSkgJj0gXHN1bV97aT0xfV57MTAwfSBcbGVmdCggcV9pIFxzaWdtYSBfaV4yK3FfaSAoMS1xX2kNCiAgICApXG11X2leMiBccmlnaHQpIFxcDQogICAgJj0gNDAgXGxlZnRbIDAuMDMgXGxlZnQoXGZyYWN7MS0yZV57LTF9fXsoMS1lXnstMX0pXjJ9IFxyaWdodCkgKyAwLjAzKDAuOTcpKDEuNTgyMF4yKSBccmlnaHRdIFxcDQogICAgJiBcIFwgXCArIDYwIFxsZWZ0WzAuMDUgXGxlZnQoIFxmcmFjezJbMS0zZV57LTJ9XX17ICgxLWVeey0yfSleMn0gXHJpZ2h0KSArIDAuMDUoMC45NSkoMi4zMTMwXjIpIFxyaWdodF0gXFwNCiAgICAmPSAyMy43MjE0IC4NClxlbmR7YWxpZ25lZH0kJA0KDQpQZXJoYXRpa2FuIGJhaHdhIHNlY2FyYSBla3VpdmFsZW4sIGtpdGEgZGFwYXQgbWVuZ2hpdHVuZyByYXRhLXJhdGEgZGFuIHZhcmlhbnMgZGFyaSBwb2xpcyBpbmRpdmlkdSBzZWNhcmEgbGFuZ3N1bmcgbWVuZ2d1bmFrYW4gaHVidW5nYW4gYW50YXJhIGRpc3RyaWJ1c2kgUG9pc3NvbiB5YW5nIGRpbW9kaWZpa2FzaS1ub2wgZGFuIGRpc3RyaWJ1c2kgUG9pc3NvbiB0ZXJwb3Rvbmctbm9sDQoNCiMjIEV4YW1wbGUgNS4yLjMNCg0KU2VwZXJ0aSBwYWRhIENvbnRvaCA1LjIuMSBzZWJlbHVtbnlhLCBzZWJ1YWggcGVydXNhaGFhbiBhc3VyYW5zaSBtZW5qdWFsIDMwMCBwb2xpcyBhc3VyYW5zaSBrZWJha2FyYW4sIGRlbmdhbiBqdW1sYWgga2xhaW0gJFhfaSQgdGVyZGlzdHJpYnVzaSBzZXJhZ2FtIGFudGFyYSAwIGRhbiBtYWtzaW11bSBwb2xpcyAkTV9pJC4gRGVuZ2FuIG1lbmdndW5ha2FuIHBlbmRla2F0YW4gbm9ybWFsLCBoaXR1bmdsYWggcHJvYmFiaWxpdGFzIGJhaHdhIGp1bWxhaCBrbGFpbSBrZXNlbHVydWhhbiAkU18zMDAkIG1lbGViaWhpICRcJDMsNTAwJC4NCg0KKipTb2x1dGlvbi4qKiBLaXRhIHRlbGFoIG1lbGloYXQgc2ViZWx1bW55YSBiYWdhaW1hbmEgJFxtYXRocm17RX0oU197MzAwfSk9Miw4MDAkIGRhbiAkXG1hdGhybXtWYXJ9KFNfezMwMH0pID0gNjAwLDQ2NyQuIEtlbXVkaWFuDQoNCiQkXGJlZ2lue2FsaWduZWR9DQp7XHJtIFByfShTX3szMDB9ID4gMyw1MDApICY9IDEgLSB7XHJtIFByfShTX3szMDB9IFxsZXEgMyw1MDApIFxcDQomXGFwcHJveCAxLSBcUGhpIFxsZWZ0KCBcZnJhY3szLDUwMC0yLDgwMH17XHNxcnR7NjAwLDQ2N319IFxyaWdodCkgPSAxIC0gXFBoaSBcbGVmdCggMC45MDMzNCBccmlnaHQpIFxcDQomPSAxIC0gMC44MTY4ID0gMC4xODMyIC4NClxlbmR7YWxpZ25lZH0kJA0KDQoNCioqVGFibGUgRGlzdHJpYnVzaSBKdW1sYWggUGFyc2lhbCBCZW50dWsgVGVydHV0dXAqKg0KJCR7XHNtYWxsDQpcYmVnaW57bWF0cml4fQ0KICAgIFxiZWdpbnthcnJheX17bHxsfGx9IFxobGluZQ0KICAgICAgICBcdGV4dHtEaXN0cmlidXRpb24gb2YgfSBYX2kgJiBcdGV4dHtBYmJyZXZpYXRpb259ICYgXHRleHR7RGlzdHJpYnV0aW9uIG9mIH0gU19uICAgXFwgXGhsaW5lDQpcdGV4dHtOb3JtYWwgd2l0aCBtZWFuIH0gXG11X2kgXHRleHR7IGFuZCB2YXJpYW5jZSB9IFxzaWdtYV9pXjIgJiBOKFxtdV9pLFxzaWdtYV9pXjIpICYgTlxsZWZ0KFxzdW1fe2k9MX1ee259XG11X2ksflxzdW1fe2k9MX1ee259XHNpZ21hX2leMlxyaWdodCkgXFwNClx0ZXh0e0V4cG9uZW50aWFsIHdpdGggbWVhbiB9IFx0aGV0YSAmIEV4cChcdGhldGEpICYgR2FtKG4sXHRoZXRhKVxcICANClx0ZXh0e0dhbW1hIHdpdGggc2hhcGUgfSBcYWxwaGFfaSBcdGV4dHsgYW5kIHNjYWxlIH0gXHRoZXRhICYgR2FtKFxhbHBoYV9pLFx0aGV0YSkgJiBHYW1cbGVmdChcc3VtX3tpPTF9Xm5cYWxwaGFfaSxcdGhldGFccmlnaHQpIFxcICANClx0ZXh0e1BvaXNzb24gd2l0aCBtZWFuIChhbmQgdmFyaWFuY2UpIH0gXGxhbWJkYV9pICAmIFBvaShcbGFtYmRhX2kpJiBQb2lcbGVmdChcc3VtX3tpPTF9XntufVxsYW1iZGFfaVxyaWdodClcXCAgDQpcdGV4dHtCaW5vbWlhbCB3aXRoIH0gbV9pIFx0ZXh0eyB0cmlhbHMgYW5kIH0gcSBcdGV4dHsgc3VjY2VzcyBwcm9iYWJpbGl0eX0gJiBCaW4obV9pLCBxKSYgQmluXGxlZnQoXHN1bV97aT0xfV5uIG1faSwgcVxyaWdodClcXCAgDQpcdGV4dHtHZW9tZXRyaWMgd2l0aCBtZWFuIH0gXGJldGEgJiBHZW8oXGJldGEpICYgTkIoXGJldGEsbilcXCAgDQpcdGV4dHtOZWdhdGl2ZSBiaW5vbWlhbCB3aXRoIG1lYW4gfSAgcl9pIFxiZXRhfiYgTkIoXGJldGEscl9pKSYgTkJcbGVmdChcYmV0YSxcc3VtX3tpPTF9Xm4gcl9pXHJpZ2h0KVxcICANCn4gfiB+ICBcdGV4dHsgYW5kIHZhcmlhbmNlIH0gfnJfaSBcYmV0YSAoMStcYmV0YSkgJiAmIFxcICANClxobGluZQ0KICAgIFxlbmR7YXJyYXl9DQpcZW5ke21hdHJpeH0NCn0kJA0KIC4=