LyoKICogQ29weXJpZ2h0IDIwMDMgSm9uIEdyaWZmaXRocyAoV2l0aCB0aGFua3MgdG8gVXJhaXdhbiBUdXBzYW5nICdPaScpCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCi8qCiAqIFdBUk5JTkc6IERPIE5PVCBDSEFOR0UgVEhFIFNJWkUgT0YgVEhFIFNUQU5EQVJEIERJQUxPRyBURU1QTEFURVMuCiAqLwoKTEFOR1VBR0UgTEFOR19USEFJLCBTVUJMQU5HX0RFRkFVTFQKCk9QRU5fRklMRSBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI3NSwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIuC71LQiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogTFRFWFQgIqrX6M3hv+nBOiIsIDEwOTAsIDYsIDYsIDc2LCA5CiBFRElUVEVYVCBlZHQxLCA2LCAxNiwgOTAsIDEyLCBFU19BVVRPSFNDUk9MTCB8IEVTX09FTUNPTlZFUlQgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QCiBMSVNUQk9YIDExMjAsIDYsIDMyLCA5MCwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICLktODDobfNw9U6IiwgLTEsIDExMCwgNiwgOTIsIDkKIExURVhUICIiLCAxMDg4LCAxMTAsIDE4LCA5MiwgOSwgU1NfTk9QUkVGSVggfCBXU19HUk9VUAogTElTVEJPWCAxMTIxLCAxMTAsIDMyLCA5MiwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICK10cehw82nOiIsIDEwODksIDYsIDEwNCwgOTAsIDkKIENPTUJPQk9YIGNtYjEsIDYsIDExNCwgOTAsIDM2LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICK01Mqh7DoiLCAxMDkxLCAxMTAsIDEwNCwgOTIsIDkKIENPTUJPQk9YIGNtYjIsIDExMCwgMTE0LCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIuC71LQiLCAxLCAyMDgsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiwqHgxdShIiwgMiwgMjA4LCAyNCwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIqrox8Lgy8XVzSIsIHBzaEhlbHAsIDIwOCwgNDYsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAizejSuc3C6NKn4LTVwsciLCBjaHgxLCAyMDgsIDY4LCA1MCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKU0FWRV9GSUxFIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjc1LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiutG5t9eh4LvnuS4uLiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAiqtfozeG/6cE6IiwgMTA5MCwgNiwgNiwgNzYsIDkKIEVESVRURVhUIGVkdDEsIDYsIDE2LCA5MCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgRVNfT0VNQ09OVkVSVCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AKIExJU1RCT1ggMTEyMCwgNiwgMzIsIDkwLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIuS04MOht83D1ToiLCAtMSwgMTEwLCA2LCA5MiwgOQogTFRFWFQgIiIsIDEwODgsIDExMCwgMTgsIDkyLCA5LCBTU19OT1BSRUZJWCB8IFdTX0dST1VQCiBMSVNUQk9YIDExMjEsIDExMCwgMzIsIDkyLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIrXRx6HDzac6IiwgMTA4OSwgNiwgMTA0LCA5MCwgOQogQ09NQk9CT1ggY21iMSwgNiwgMTE0LCA5MCwgMzYsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIrTUyqHsOiIsIDEwOTEsIDExMCwgMTA0LCA5MiwgOQogQ09NQk9CT1ggY21iMiwgMTEwLCAxMTQsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiutG5t9ehIiwgMSwgMjA4LCA2LCA1NiwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIsKh4MXUoSIsIDIsIDIwOCwgMjQsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICKq6MfC4MvF1c0iLCBwc2hIZWxwLCAyMDgsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIs3o0rnNwujSp+C01cLHIiwgY2h4MSwgMjA4LCA2OCwgNTAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjY0LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAivtTBvuwiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogTFRFWFQgIuCkw9fozae+1MG+7DoiLCAxMDg4LCA2LCA2LCA0MCwgOQogTFRFWFQgIiIsIDEwODksIDYwLCA2LCAxNTAsIDkKIEdST1VQQk9YICLC6M0iLCBncnAxLCA2LCAzMCwgMTYwLCA2NSwgQlNfR1JPVVBCT1gKIFJBRElPQlVUVE9OICK30emny8G0IiwgcmFkMSwgMTYsIDQ1LCA2MCwgMTIKIFJBRElPQlVUVE9OICLC6M3K6Me5t9XjqukiLCByYWQyLCAxNiwgNjAsIDYwLCAxMgogUkFESU9CVVRUT04gIsu50iIsIHJhZDMsIDE2LCA3NSwgNjAsIDEyCiBERUZQVVNIQlVUVE9OICK+1MG+7CIsIDEsIDIwNiwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLCoeDF1KEiLCAyLCAyMDYsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiu8PRuuG16KciLCBwc2gxLCAyMDYsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIqjSoToiLCAxMDkwLCA2MCwgODAsIDMwLCA5CiBMVEVYVCAiyuinttanOiIsIDEwOTEsIDEyMCwgODAsIDMwLCA5CiBMVEVYVCAipNiswNK+odLD46rpOiIsIDEwOTIsIDYsIDEwMCwgNzYsIDkKIENPTUJPQk9YIGNtYjEsIDgwLCAxMDAsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIr7Uwb7s4LvnueG/6cEiLCBjaHgxLCAyMCwgMTAwLCA1MCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIsLozSIsIGNoeDIsIDE2MCwgMTAwLCA1MCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKUFJJTlRfU0VUVVAgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyNjQsIDEzNApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICK7w9G64aTop+Ckw9fozae+1MG+7CIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBHUk9VUEJPWCAi4KTD1+jNp77Uwb7sIiwgZ3JwMSwgNiwgMTAsIDE4MCwgNjUsIEJTX0dST1VQQk9YCiBSQURJT0JVVFRPTiAi4KTD1+jNp77Uwb7sJkRlZmF1bHQiLCByYWQxLCAxNiwgMjAsIDgwLCAxMgogTFRFWFQgIlvkwejktOngxdfNoV0iLCAxMDg4LCAzNSwgMzUsIDEyMCwgOQogUkFESU9CVVRUT04gIuCkw9fozae+1MG+7FNwZWNpZmljIiwgcmFkMiwgMTYsIDUwLCA4MCwgMTIKIENPTUJPQk9YIGNtYjEsIDM1LCA2NSwgMTQ5LCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAitaHFpyIsIElET0ssIDIwNiwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLCoeDF1KEiLCBJRENBTkNFTCwgMjA2LCAyNCwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIrvD0brhteinIiwgcHNoMSwgMjA2LCA0NiwgNTYsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIEdST1VQQk9YICK31ci30qeh0sPH0qciLCBncnAyLCA2LCA4NSwgMTAwLCA1MCwgQlNfR1JPVVBCT1gKIFJBRElPQlVUVE9OICKh0sO10emnIiwgcmFkMywgNTAsIDEwMCwgNDAsIDEyCiBSQURJT0JVVFRPTiAi4bnHuc25IiwgcmFkNCwgNTAsIDExNSwgNDAsIDEyCiBJQ09OICJMQU5EU0NBUCIsIHN0YzEwLCAxMCwgOTUsIDMyLCAzMgogSUNPTiAiUE9SVFJBSVQiLCBzdGMxMSwgMTAsIDk1LCAzMiwgMzIKIEdST1VQQk9YICKhw9C00skiLCBncnAzLCAxMjAsIDg1LCAxODAsIDUwLCBCU19HUk9VUEJPWAogTFRFWFQgIqK50rQiLCAxMDg5LCAxMzAsIDk1LCAzMCwgOQogTFRFWFQgIqjSoSIsIDEwOTAsIDEzMCwgMTEwLCAzMCwgOQogQ09NQk9CT1ggY21iMiwgMTU1LCA5NSwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBDT01CT0JPWCBjbWIzLCAxNTUsIDExMCwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCn0KCgpDSE9PU0VfRk9OVCBESUFMT0cgRElTQ0FSREFCTEUgIDEzLCA1NCwgMjY0LCAxNDcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAitenHzdGhycMiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgTFRFWFQgICAgICAgICAgICK16cfN0aHJwzoiLHN0YzEgLDYsMyw0MCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iMSwgNiwxMyw5NCw1NCwgIENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8CiAgICAgICAgICAgICAgICAgICAgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TSU1QTEUKICAgIExURVhUICAgICAgICAgICAiw9m74bq6tenHzdGhycM6IixzdGMyICwxMDgsMyw0NCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iMiwxMDgsMTMsNjQsNTQsIENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU0lNUExFCiAgICBMVEVYVCAgICAgICAgICAgIqK50rQ6IixzdGMzLDE3OSwzLDMwLDkKICAgIENPTUJPQk9YICAgICAgICBjbWIzLDE3OSwxMywzMiw1NCwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwKICAgICAgICAgICAgICAgICAgICBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TSU1QTEUgfCBDQlNfU09SVAogICAgREVGUFVTSEJVVFRPTiAgICK1ocWnIixJRE9LLDIxOCw2LDQwLDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AgfCBCU19ERUZQVVNIQlVUVE9OCiAgICBQVVNIQlVUVE9OICAgICAgIsKh4MXUoSIsSURDQU5DRUwsMjE4LDIzLDQwLDE0LFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICLB1bzFt9G5t9UiLCBwc2gzLDIxOCw0MCw0MCwxNCxXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiqujHwuDLxdXNIiAsIHBzaEhlbHAsMjE4LDU3LDQwLDE0LFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJFZmZlY3RzIixncnAxLDYsNzIsODQsMzQsV1NfR1JPVVAKICAgIENIRUNLQk9YCSAgICAiU3RyaSZrZW91dCIsIGNoeDEsIDEwLDgyLDUwLDEwLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiAgICBDSEVDS0JPWCAJICAgICKi1bTgyum547XpIiwgY2h4MiwgMTAsOTQsNTAsMTAsIEJTX0FVVE9DSEVDS0JPWAogICAgTFRFWFQgICAgICAgICAgICLK1ToiLCBzdGM0ICw2LDExMCwzMCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iNCw2LDEyMCw4NCwxMDAsQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwKCQkgICAgQ0JTX0FVVE9IU0NST0xMIHwgIFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIrXRx83C6NKnIixncnAyLDk4LDcyLDEyMCwzNixXU19HUk9VUAogICAgQ1RFWFQgICAgICAgICAgICJB2kJDoaKjIixzdGM1LDEwMyw4MCwxMDksMjQsU1NfTk9QUkVGSVggfCBOT1QgV1NfVklTSUJMRQogICAgTFRFWFQgICAgICAgICAgICJTY3ImaXB0OiIsc3RjNyAsOTgsMTE0LDQwLDkKICAgIENPTUJPQk9YICAgICAgICBjbWI1LDk4LDEyNCwxMjAsOTAsQ0JTX0RST1BET1dOTElTVCB8IENCU19IQVNTVFJJTkdTIHwKICAgICAgICAgICAgICAgICAgICBDQlNfQVVUT0hTQ1JPTEwgfCAgIFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCn0KCgpDSE9PU0VfQ09MT1IgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAzMDAsIDE4NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLK1SIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAiJkJhc2ljIENvbG9yczoiLCAgIDEwODgsIDQsICAgIDQsICAxNDAsIDEwCiBMVEVYVCAiJ8rVt9Xooe3Sy7m04M2nJzoiLCAgMTA4OSwgNCwgICAxMDYsIDE0MCwgMTAKIExURVhUICLK1SB8ICDB0ei5pKciLCAgMTA5MCwgMTUwLCAxNTEsICA0OCwgMTAKIExURVhUICAgIsrV4bSnOiIsIDcyNiAvKjEwOTQqLywyNDksMTI2LDI0LDEwCiBFRElUVEVYVCA3MDYsIDI3NSwxMjQsMjEsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICAiytXgotXCxzoiLDcyNy8qMTA5NSovLDI0OSwxNDAsMjQsMTAKIEVESVRURVhUIDcwNywgMjc1LDEzOCwyMSwxMiwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAgICLK1b/p0joiLDcyOCAvKjEwOTYqLywyNDksMTU0LDI0LDEwCiBFRElUVEVYVCA3MDgsIDI3NSwxNTIsMjEsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICImSDoiICw3MjMgLyoxMDkxKi8sMjAyLDEyNiwyMiwxMAogRURJVFRFWFQgNzAzLCAyMjYsMTI0LDIxLDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAiJlM6IiAsNzI0IC8qMTA5MiovLDIwMiwxNDAsMjIsMTAKIEVESVRURVhUIDcwNCwgMjI2LDEzOCwyMSwxMiwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAgIiZMOiIgLDcyNSAvKjEwOTMqLywyMDIsMTU0LDIyLDEwCiBFRElUVEVYVCA3MDUsIDIyNiwxNTIsMjEsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ09OVFJPTCAiIiAsNzIwLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLDQsMTQsMTQwLDg2CiBDT05UUk9MICIiICw3MjEsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsNCwxMTYsMTQwLDI4CiBDT05UUk9MICIiICw3MTAsIlNUQVRJQyIsV1NfQk9SREVSfFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAxNTIsNCwxMTgsMTE2CiBDT05UUk9MICIiICw3MDIsIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDI3OCw0LDgsMTE2CiBDT05UUk9MICIiICw3MDksIlNUQVRJQyIsU1NfU0lNUExFfFdTX1RBQlNUT1B8V1NfR1JPVVAsIDE1MiwxMjQsNDAsMjYKIERFRlBVU0hCVVRUT04gIrWhxaciLCAgMSwgIDQsIDE2NiwgNDQsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLCoeDF1KEiLCAyLCA1MiwgMTY2LCA0NCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiqujHwuDLxdXNIiwgcHNoSGVscCwxMDAsMTY2LCA0NCwgMTQKIFBVU0hCVVRUT04gIuC+1OjB4KLp0uS7ICfK1bfV6KHt0su5tODNpyciLCAgICA3MTIvKjEwMjQqLywgMTUyLCAxNjYsIDE0MiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiu8PRuuG16KcgJ8rVt9Xooe3Sy7m04M2nJyA+PiIsIDcxOS8qMTAyNSovLCAgIDQsIDE1MCwgMTQyLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICAiJmkiLDcxMywzMDAsMjAwLDQsMTQgICAvKiBqdXN0IGEgZHVtbXk6ICAnaScgaXMgIGxpa2UgICZpICBpbiAic29sJmlkIiAgKi8KfQoKCkZJTkRETEdPUkQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMzYsIDI0LCAyMzYsIDYyClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIqTpucvSIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIExURVhUICKi6c2kx9LBt9Wk6bnL0joiLCAtMSwgNCwgOCwgNDIsIDgKIEVESVRURVhUIGVkdDEsIDQ3LCA3LCAxMjgsIDEyLCBFU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIrXDp6HRubfYobXRx83RocnDIiwgY2h4MSwgNCwgMjYsIDEwMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIr7UqNLDs9K10cfgxeehLePLregiLCBjaHgyLCA0LCA0MiwgNjQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBHUk9VUEJPWCAit9KnIiwgZ3JwMSwgMTA3LCAyNiwgNjgsIDI4CiBDT05UUk9MICKi1um5IiwgcmFkMSwgIkJVVFRPTiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwgMTExLCAzOCwgMjAsIDEyCiBDT05UUk9MICLFpyIsIHJhZDIsICJCVVRUT04iLCBCU19BVVRPUkFESU9CVVRUT04gfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUgfCBXU19UQUJTVE9QLCAxMzgsIDM4LCAzMCwgMTIKCiBERUZQVVNIQlVUVE9OICKk6bnL0rXozeS7IiwgSURPSywgMTgyLCAgNSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AgfCBCU19ERUZQVVNIQlVUVE9OCiBQVVNIQlVUVE9OICLCoeDF1KEiLCBJRENBTkNFTAkgLCAxODIsIDIzLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiqujHwuDLxdXNIiwgcHNoSGVscAkgLCAxODIsIDQ1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKUkVQTEFDRURMR09SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDIzMCwgOTQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi4be5t9UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogTFRFWFQgIqLpzaTH0sG31aTpucvSOiIsIC0xLCA0LCA5LCA0OCwgOAogRURJVFRFWFQgZWR0MSwgNTQsIDcsIDExNCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAiodLD4be5t9Wi6c2kx9LBOiIsIC0xLCA0LCAyNiwgNDgsIDgKIEVESVRURVhUIGVkdDIsIDU0LCAyNCwgMTE0LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICK1w6eh0bm32KG10cfN0aHJwyIsIGNoeDEsIDUsIDQ2LCAxMDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICK+1KjSw7PStdHH4MXnoS3jy63oIiwgY2h4MiwgNSwgNjIsIDU5LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAoKIERFRlBVU0hCVVRUT04gIqTpucvStejN5LsiLCBJRE9LLCAxNzQsICA0LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUCB8IEJTX0RFRlBVU0hCVVRUT04KIFBVU0hCVVRUT04gIuG3ubfVIiwgcHNoMQkgLCAxNzQsIDIxLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAi4be5t9W30afLwbQiLCBwc2gyICwgMTc0LCAzOCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIsKh4MXUoSIsIElEQ0FOQ0VMCSAsIDE3NCwgNTUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICKq6MfC4MvF1c0iLCBwc2hIZWxwCSAsIDE3NCwgNzUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpQUklOVDMyIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFICAzMiwgMzIsIDI4OCwgMTg2ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVSB8CiAgICAgIERTX0NPTlRFWFRIRUxQIHwgRFNfM0RMT09LCkNBUFRJT04gIr7Uwb7sIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKICAgIERFRlBVU0hCVVRUT04gICAitaHFpyIsICAgICBJRE9LLCAgICAgMTgwLDE2NCwgNDgsMTQsIFdTX0dST1VQIHwgQlNfREVGUFVTSEJVVFRPTgogICAgUFVTSEJVVFRPTiAgICAgICLCoeDF1KEiLCBJRENBTkNFTCwgMjMyLDE2NCwgNDgsMTQsIFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIqrox8Lgy8XVzSIsICBwc2hIZWxwLCAgNTAsIDE2MSwgNDgsMTQsIFdTX0dST1VQCgogICAgR1JPVVBCT1ggICAgICAgICLgpMPX6M2nvtTBvuwiLCAgICAgICAgZ3JwNCwgICA4LCAgNCwgMjcyLDg0LCBXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICK+1MG+7OC757nhv+nBIiwgY2h4MSwgIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLDIxMiw3MCw2NCwxMgogICAgUFVTSEJVVFRPTiAgICAgICKk2LPKwbrRtdQiLCAgICBwc2gyLCAyMTIsIDE3LCAgNjAsMTQsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIqrX6M06IiwgICAgICAgICBzdGM2LCAgMTYsIDIwLCAgMzYsOAogICAgQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgIGNtYjQsICA1MiwgMTgsIDE1MiwxNTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLN0qHSw+Ckw9fozac6IiwgICAgICAgIHN0YzgsICAxNiwgMzYsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAi5MHowdUiLCAgICBzdGMxMiwgNTIsIDM2LCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAi4bq6OiIsICAgICAgICAgIHN0YzcsICAxNiwgNDgsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAi5MHowdUiLCAgICAgc3RjMTEsIDUyLCA0OCwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVCAgICAgICAgICAgIrfV5Mu5OiIsICAgICAgICAgc3RjMTAsIDE2LCA2MCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICLkwejB1SIsIHN0YzE0LCA1MiwgNjAsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICKi6c2kx9LBOiIsICAgICAgIHN0YzksICAxNiwgNzIsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAi5MHowdUiLCAgIHN0YzEzLCA1MiwgNzIsIDE1MiwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAoKICAgIEdST1VQQk9YICAgICAgICAiyu3S4LnSIiwgICAgICAgICBncnAyLCAxNjAsIDkyLCAxMjAsNjQsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIqHV6Mrt0uC50joiLHN0YzUsMTY4LDEwOCw2OCw4CiAgICBJQ09OICAgICAgICAgICAgIiIsICAgICAgICAgICAgICAgaWNvMywgMTYyLDEyNCwgIDc2LDI0LCBXU19HUk9VUCB8IFNTX0NFTlRFUklNQUdFCiAgICBDT05UUk9MICAgICAgICAgIqjRtODD1cKntdLBxe3StNG6IiwgICAgICAgY2h4MiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjQwLDEzMCwzNiwxMgogICAgRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgIGVkdDMsIDI0MCwxMDYsICAzMiwxMiwgV1NfR1JPVVAgfCBFU19OVU1CRVIKCiAgICBHUk9VUEJPWCAgICAgICAgIsLozSIsICAgIGdycDEsICAgOCw5MiwgIDE0NCw2NCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAit9Hpp8vBtCIsICAgICAgICAgICByYWQxLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwxNiwxMDYsNjQsMTIKICAgIENPTlRST0wgICAgICAgICAiy7nSIiwgICAgICAgICByYWQzLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMjIsMzYsMTIKICAgIENPTlRST0wgICAgICAgICAiwujNyujHubfV46rpIiwgICAgIHJhZDIsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEzOCw2NCwxMgogICAgRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgIGVkdDEsICA3NCwxMjIsICAyNiwxMiwgV1NfR1JPVVAgfCBFU19OVU1CRVIKICAgIEVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICBlZHQyLCAxMTgsMTIyLCAgMjYsMTIsIFdTX0dST1VQIHwgRVNfTlVNQkVSCiAgICBSVEVYVCAgICAgICAgICAgIqjSoToiLCAgICAgICAgIHN0YzIsICA1MiwxMjQsICAyMCw4CiAgICBSVEVYVCAgICAgICAgICAgIsrop7bWpzoiLCAgICAgICAgICAgc3RjMywgMTAwLDEyNCwgIDE2LDgKfQoKUFJJTlQzMl9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAgMzIsIDMyLCAyODgsIDE3OApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgICBEU19DT05URVhUSEVMUCB8IERTXzNETE9PSwpDQVBUSU9OICK7w9G64bXop+Ckw9fozae+1MG+7CIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgREVGUFVTSEJVVFRPTiAgICK1ocWnIixJRE9LLDE4MCwxNTYsNDgsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiwqHgxdShIixJRENBTkNFTCwyMzIsMTU2LDQ4LDE0Ci8qICAgIFBVU0hCVVRUT04gICAgICAiTmV0d29yay4uLiIsIHBzaDUsIDI4NCwxNTYsNDgsMTQgKi8KCiAgICBHUk9VUEJPWCAgICAgICAgIuCkw9fozae+1MG+7CIsICAgICAgICBncnA0LCAgIDgsICA0LCAyNzIsODQsIFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIqTYs8rButG11CIsICAgIHBzaDIsIDIxMiwgMTcsICA2MCwxNCwgV1NfR1JPVVAKICAgIExURVhUICAgICAgICAgICAiqtfozToiLCAgICAgICAgIHN0YzYsICAxNiwgMjAsICAzNiw4CiAgICBDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgY21iMSwgIDUyLCAxOCwgMTUyLDE1MixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIs3SodLD4KTD1+jNpzoiLCAgICAgICAgc3RjOCwgIDE2LCAzNiwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICLkwejB1SIsICAgIHN0YzEyLCA1MiwgMzYsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICLhuro6IiwgICAgICAgICAgc3RjNywgIDE2LCA0OCwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICLkwejB1SIsICAgICBzdGMxMSwgNTIsIDQ4LCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAit9Xky7k6IiwgICAgICAgICBzdGMxMCwgMTYsIDYwLCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIuTB6MHVIiwgc3RjMTQsIDUyLCA2MCwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVCAgICAgICAgICAgIqLpzaTH0sE6IiwgICAgICAgc3RjOSwgIDE2LCA3MiwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICLkwejB1SIsICAgc3RjMTMsIDUyLCA3MiwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCgogICAgR1JPVVBCT1ggICAgICAgICKhw9C00skiLCAgICAgICAgICBncnAyLCAgIDgsIDkyLCAxNjQsNTYsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIqK50rQ6IiwgICAgICAgICBzdGMyLCAgMTYsMTA4LCAgMzYsIDgKICAgIENPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgICBjbWIyLCAgNTIsMTA2LCAxMTIsMTEyLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAiqNKh5Mu5OiIsICAgICAgIHN0YzMsICAxNiwxMjgsICAzNiwgOAogICAgQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgIGNtYjMsICA1MiwxMjYsIDExMiwxMTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAoKICAgIEdST1VQQk9YICAgICAgICAit9XIt9KnodLDx9KnIiwgICAgZ3JwMSwgMTgwLCA5MiwgMTAwLDU2LCBXU19HUk9VUAogICAgSUNPTiAgICAgICAgICAgICIiLCAgICAgICAgICAgICAgIGljbzEsIDE5NSwxMTIsICAxOCwyMCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAiodLDtdHppyIsICAgICAgcmFkMSwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04gfCBXU19HUk9VUCB8V1NfVEFCU1RPUCwyMjQsMTA2LDUyLDEyCiAgICBDT05UUk9MICAgICAgICAgIuG5x7nNuSIsICAgICByYWQyLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwyMjQsMTI2LDUyLDEyCkVORAoKUEFHRVNFVFVQRExHT1JEIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDMyLCAzMiwgMjQwLCAyNDAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIrvD0brhteinIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgQ09OVFJPTCAiIiwgcmN0MSwgIlN0YXRpYyIsIFNTX1dISVRFUkVDVCwgODAsIDgsIDgwLCA4MAogIENPTlRST0wgIiIsIHJjdDIsICJTdGF0aWMiLCBTU19HUkFZUkVDVCwgMTYwLCAxMiwgNCwgODAKICBDT05UUk9MICIiLCByY3QzLCAiU3RhdGljIiwgU1NfR1JBWVJFQ1QsICA4NCwgODgsIDgwLCA0CiAgR1JPVVBCT1ggIqHD0LTSySIsIGdycDIsIDgsIDk2LCAyMjQsIDU2LCBCU19HUk9VUEJPWAogIExURVhUICKiudK0OiIsIHN0YzIsIDE2LCAxMTIsIDM2LCA4CiAgQ09NQk9CT1ggY21iMiwgNjQsIDExMCwgMTYwLCAxNjAsIENCU19TSU1QTEV8Q0JTX0RST1BET1dOfENCU19TT1JUfFdTX0dST1VQfFdTX1RBQlNUT1B8V1NfVlNDUk9MTAogIExURVhUICK20rQ6Iiwgc3RjMywgMTYsIDEzMiwgMzYsIDgKICBDT01CT0JPWCBjbWIzLCA2NCwgMTMwLCAxNjAsIDE2MCwgQ0JTX1NJTVBMRXxDQlNfRFJPUERPV058Q0JTX1NPUlR8V1NfR1JPVVB8V1NfVEFCU1RPUHxXU19WU0NST0xMCiAgR1JPVVBCT1ggIrfVyLfSp6HSw8fSpyIsIGdycDEsIDgsIDE1NiwgNjQsIDU2LCBCU19HUk9VUEJPWAogIEFVVE9SQURJT0JVVFRPTiAiodLDtdHppyIsIHJhZDEsIDE2LCAxNzAsIDUyLCAxMiwgQlNfQVVUT1JBRElPQlVUVE9OCiAgQVVUT1JBRElPQlVUVE9OICLhuce5zbkiLCByYWQyLCAxNiwgMTkwLCA1MiwgMTIsIEJTX0FVVE9SQURJT0JVVFRPTgogIEdST1VQQk9YICKizbqhw9C00skiLCBncnA0LCA4MCwgMTU2LCAxNTIsIDU2LCBCU19HUk9VUEJPWAogIExURVhUICKr6dLCOiIsIHN0YzE1LCA4OCwgMTcyLCAyMSwgOAogIEVESVRURVhUIGVkdDQsIDExMSwgMTcwLCAzOSwgMTIsIFdTX1RBQlNUT1B8V1NfR1JPVVB8V1NfQk9SREVSfEVTX05VTUJFUgogIExURVhUICKix9I6Iiwgc3RjMTYsIDE1OSwgMTcyLCAyNywgOAogIEVESVRURVhUIGVkdDYsIDE4NywgMTcwLCAzOSwgMTIsIFdTX1RBQlNUT1B8V1NfR1JPVVB8V1NfQk9SREVSfEVTX05VTUJFUgogIExURVhUICK6uToiLCBzdGMxNywgODgsIDE5MiwgMjEsIDgKICBFRElUVEVYVCBlZHQ1LCAxMTEsIDE5MCwgMzksIDEyLCBXU19UQUJTVE9QfFdTX0dST1VQfFdTX0JPUkRFUnxFU19OVU1CRVIKICBMVEVYVCAixejSpzoiLCBzdGMxOCwgMTU5LCAxOTIsIDIzLCA4CiAgRURJVFRFWFQgZWR0NywgMTg3LCAxOTAsIDM5LCAxMiwgV1NfVEFCU1RPUHxXU19HUk9VUHxXU19CT1JERVJ8RVNfTlVNQkVSCiAgREVGUFVTSEJVVFRPTiAitaHFpyIsIElET0ssIDcxLCAyMjAsIDUwLCAxNCwgQlNfUFVTSEJVVFRPTgogIFBVU0hCVVRUT04gIsKh4MXUoSIsIElEQ0FOQ0VMLCAxMjYsIDIyMCwgNTAsIDE0CiAgUFVTSEJVVFRPTiAi4KTD1+jNp77Uwb7sLi4uIiwgcHNoMywgMTg0LCAyMjAsIDQ4LCAxNApFTkQKCk5FV0ZJTEVPUEVOT1JEIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDAsIDAsIDI4MCwgMTY0ClNUWUxFIERTX01PREFMRlJBTUUgfCBEU19DT05URVhUSEVMUCB8IFdTX1ZJU0lCTEUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwgV1NfQ0xJUENISUxEUkVOCkNBUFRJT04gIuC71LQiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgTFRFWFQJIrTZounSp+O5OiIsSURDX0xPT0tJTlNUQVRJQyw0LDYsNDMsOCwgU1NfTk9USUZZCiAgICBDT01CT0JPWAlJRENfTE9PS0lOLDQ5LDMsMTMyLDEwMCxDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIExURVhUCSIiICwgSURDX1RPT0xCQVJTVEFUSUMsIDE4MSwgMiwgMTAyLCAxNywgTk9UIFdTX0dST1VQIHwgTk9UIFdTX1ZJU0lCTEUKICAgIExJU1RCT1gJSURDX1NIRUxMU1RBVElDLDQsMjAsMjcyLDg1LCBMQlNfU09SVCB8IExCU19OT0lOVEVHUkFMSEVJR0hUIHwgTEJTX01VTFRJQ09MVU1OIHwgV1NfSFNDUk9MTCB8IE5PVCBXU19WSVNJQkxFCgogICAgTFRFWFQJIqrX6M3hv+nBOiIsSURDX0ZJTEVOQU1FU1RBVElDLDUsMTEyLDQ2LDgsIFNTX05PVElGWQogICAgRURJVFRFWFQJSURDX0ZJTEVOQU1FLDU0LDExMCwxNTUsMTIsRVNfQVVUT0hTQ1JPTEwKCiAgICBMVEVYVAkitdHHocPNpzoiLElEQ19GSUxFVFlQRVNUQVRJQyw1LDEyOCw0Miw4LCBTU19OT1RJRlkKICAgIENPTUJPQk9YCUlEQ19GSUxFVFlQRSw1NCwxMjYsMTU1LDUzLENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAoKICAgIENPTlRST0wJIs3o0rnNwujSp+C01cLHIixJRENfT1BFTlJFQURPTkxZLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNTQsMTQ1LDEwMCwxMAoKICAgIERFRlBVU0hCVVRUT04JIuC71LQiLAkJIElET0ssMjIyLDExMCw1MCwxNAogICAgUFVTSEJVVFRPTgkJIsKh4MXUoSIsCQkgSURDQU5DRUwsMjIyLDEyOCw1MCwxNAogICAgUFVTSEJVVFRPTgkJIqrox8Lgy8XVzSIsCQkgcHNoSGVscCwyMjIsMTQ1LDUwLDE0Cn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19BQk9VVEJPWCAgICAgICAgICAgICLgodXowseh0bogRm9sZGVyUGlja2VyIFRlc3QiCiAgICBJRFNfRE9DVU1FTlRGT0xERVJTICAgICAiRG9jdW1lbnQgRm9sZGVycyIKICAgIElEU19QRVJTT05BTCAgICAgICAgICAgICK+1+m5t9XoyujHubXRxyIKICAgIElEU19GQVZPUklURVMgICAgICAgICAgICK31eik0ei5y7nRp8rXzSIKICAgIElEU19QQVRIICAgICAgICAgICAgICAgICJTeXN0ZW0gUGF0aCIKICAgIElEU19ERVNLVE9QICAgICAgICAgICAgICK+1+m5t9Xot9On0rkiCiAgICBJRFNfRk9OVFMgICAgICAgICAgICAgICAitNHHzdGhycMiCiAgICBJRFNfTVlDT01QVVRFUiAgICAgICAgICAi4KTD1+jNp8rox7m10cciCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19TWVNURU1GT0xERVJTICAgICAgICJTeXN0ZW0gRm9sZGVycyIKICAgIElEU19MT0NBTEhBUkRSSVZFUyAgICAgICLO0sPstLTUyqHs4KTD1+jNp8rox7m10cciCiAgICBJRFNfRklMRU5PVEZPVU5EICAgICAgICAi5MHovrrhv+nBIgogICAgSURTX1ZFUklGWUZJTEUgICAgICAgICAgIlBsZWFzZSB2ZXJpZnkgaWYgdGhlIGNvcnJlY3QgZmlsZSBuYW1lIHdhcyBnaXZlbiIKICAgIElEU19DUkVBVEVGSUxFICAgICAgICAgICJGaWxlIGRvZXMgbm90IGV4aXN0XG5EbyB5b3Ugd2FudCB0byBjcmVhdGUgZmlsZSIKICAgIElEU19PVkVSV1JJVEVGSUxFICAgICAgICJGaWxlIGRvZXMgYWxyZWFkeSBleGlzdC5cbkRvIHlvdSB3YW50IHRvIHJlcGxhY2UgaXQ/IgogICAgSURTX0lOVkFMSURfRklMRU5BTUVfVElUTEUgIkludmFsaWQgY2hhcmFjdGVyKHMpIGluIHBhdGgiCiAgICBJRFNfSU5WQUxJRF9GSUxFTkFNRSAgICAi47mq1+jN4b/pweOq6eTB5LTptenHudXpOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvIDogPCA+IHwiCiAgICBJRFNfUEFUSE5PVEVYSVNUSU5HICAgICAi5MHovrrktODDobfNw9UiCiAgICBJRFNfRklMRU5PVEVYSVNUSU5HICAgICAi5MHovrrhv+nBIgp9CgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICBJRFNfVVBGT0xERVIgICAgICAgICAiotbpucu51uinw9C00boiCiAgICBJRFNfTkVXRk9MREVSICAgICAgICAiysPp0qfktODDobfNw9Xjy8HoIgogICAgSURTX0xJU1RWSUVXICAgICAgICAgIqHt0su5tCIKICAgIElEU19SRVBPUlRWSUVXICAgICAgICLD0sLF0ODN1cK0IgogICAgSURTX1RPREVTS1RPUCAgICAgICAgIqTpucvSw9LCodLDvtfpubfV6LfTp9K5Igp9CgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICBQRDMyX1BSSU5UX1RJVExFICAgICAgICK+1MG+7CIKCiAgICBQRDMyX1ZBTFVFX1VSRUFEQUJMRSAgICAgICAgICAgICAgICAgICLN6NK5w9LCodLD5MHktOkiCiAgICBQRDMyX0lOVkFMSURfUEFHRV9SQU5HRSAiocPYs9LgxdfozaHLwdLC4MWiw9DH0qcgJWQgttanICVkIgogICAgUEQzMl9GUk9NX05PVF9BQk9WRV9UTyAgICAgICAgICAgICAgICAiJ6jSoScgtejNp+C757m56c3CoejH0CAnyuinttanJyIKICAgIFBEMzJfTUFSR0lOU19PVkVSTEFQICAgICAgICAgICAgICAgICAgIqLNuqHD0LTSyePLrejgodS55LtcbqHD2LPS4MXX6M2h48vB6CIKICAgIFBEMzJfTlJfT0ZfQ09QSUVTX0VNUFRZICAgICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgJ051bWJlciBvZiBjb3BpZXMnIFwKdmFsdWUgY2Fubm90IGJlIGVtcHR5LiIKICAgIFBEMzJfVE9PX0xBUkdFX0NPUElFUyAgICAgICAgICAgICAgICAgIlRoaXMgbGFyZ2Ugbm11YmVyIG9mIGNvcGllcyBpcyBub3QgXApzdXBwb3J0ZWQgYnkgeW91ciBwcmludGVyLlxuUGxlYXNlIGVudGVyIGEgdmFsdWUgYmV0d2VlbiAxIGFuZCAlZC4iCiAgICBQRDMyX1BSSU5UX0VSUk9SICAgICAgICAgICAgICAgICAgICAgICKkx9LBu9S04KTD1+jNp77Uwb7sIgogICAgUEQzMl9OT19ERUZBVUxUX1BSSU5URVIgICAgICAgICAgICAgICAi5MHB1eCkw9fozae+1MG+7LuhtdQiCiAgICBQRDMyX0NBTlRfRklORF9QUklOVEVSICAgICAgICAgICAgICAgICLkwei+uuCkw9fozae+1MG+7CIKICAgIFBEMzJfT1VUX09GX01FTU9SWSAgICAgICAgICAgICAgICAgICAgIqTH0sGo7dLsy8G0IgogICAgUEQzMl9HRU5FUklDX0VSUk9SICAgICAgICAgICAgICAgICAgICAi4KHUtKTH0sG71LS+xdK0IgogICAgUEQzMl9EUklWRVJfVU5LTk9XTiAgICAgICAgICAgICAgICAgICAi5MHow9npqNGhtOTD7ODHzcPs7OCkw9fozae+1MG+7CIKICAgIFBEMzJfTk9fREVWSUNFUyAgICAgICAgICAgICAgICAgICAgICAgIkJlZm9yZSB5b3UgY2FuIHBlcmZvcm0gcHJpbnRlci1yZWxhdGVkIHRhc2tzIFwKc3VjaCBhcyBwYWdlIHNldHVwIG9yIHByaW50aW5nIGEgZG9jdW1lbnQsIHlvdSBuZWVkIHRvIGluc3RhbGwgYSBwcmludGVyLiBcClBsZWFzZSBpbnN0YWxsIG9uZSBhbmQgcmV0cnkuIgoKICAgIFBEMzJfREVGQVVMVF9QUklOVEVSICAgICAgICAgICAgICAgICAgIuCkw9fozae+1MG+7LuhtdQ7ICIKICAgIFBEMzJfTlJfT0ZfRE9DVU1FTlRTX0lOX1FVRVVFICAgICAgICAgIsHVICVkIOG/6cHDzc3C2egiCiAgICBQRDMyX01BUkdJTlNfSU5fSU5DSEVTICAgICAgICAgICAgICAgICKizbqhw9C00skgW7nU6cddIgogICAgUEQzMl9NQVJHSU5TX0lOX01JTElNRVRFUlMgICAgICAgICAgICAios26ocPQtNLJIFvBwS5dIgogICAgUEQzMl9NSUxJTUVURVJTICAgICAgICAgICAgICAgICAgICAgICAiwcEuIgoKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUkVBRFkgICAgICAgICAgICAgIr7D6c3BIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVVTRUQgICAgICAgICAgICAiqtDFzTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19FUlJPUiAgICAgICAgICAgICAipMfSwbvUtDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QRU5ESU5HX0RFTEVUSU9OICAioe3SxdGnqNDFujsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVBFUl9KQU0gICAgICAgICAiocPQtNLJtdS0OyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBUEVSX09VVCAgICAgICAgICKhw9C00snLwbQ7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfTUFOVUFMX0ZFRUQgICAgICAgIkZlZWQgcGFwZXIgbWFudWFsOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBUEVSX1BST0JMRU0gICAgICJQYXBlciBwcm9ibGVtOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX09GRkxJTkUgICAgICAgICAgICLgpMPX6M2nvtTBvuy71LQ7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfSU9fQUNUSVZFICAgICAgICAgIkkvTyBBY3RpdmU7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfQlVTWSAgICAgICAgICAgICAgIsLY6Kc7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUFJJTlRJTkcgICAgICAgICAgIqHtwcXRp77Uwb7sOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX09VVFBVVF9CSU5fRlVMTCAgICK20rTgtefBOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX05PVF9BVkFJTEFCTEUgICAgICLjqunkwejktOm1zbm51ek7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfV0FJVElORyAgICAgICAgICAgIuCkw9fozae+1MG+7MPNzcLo2TsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QUk9DRVNTSU5HICAgICAgICAioe3SxdGnt+3Sp9K5OyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX0lOSVRJQUxJWklORyAgICAgICKh7cHF0afQ4MPnwTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19XQVJNSU5HX1VQICAgICAgICAioe3BxdGn0L7DzcE7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfVE9ORVJfTE9XICAgICAgICAgIsvB1qGo0MvBtDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19OT19UT05FUiAgICAgICAgICAiy8HWocvBtOHF6cc7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEFHRV9QVU5UICAgICAgICAgIlBhZ2UgcHVudDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19VU0VSX0lOVEVSVkVOVElPTiAivNnp46rpwqHgxdShOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX09VVF9PRl9NRU1PUlkgICAgICKkx9LBqO3S4KTD1+jNp77Uwb7sy8G0OyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX0RPT1JfT1BFTiAgICAgICAgICK7w9C12eCkw9fozae+1MG+7OC71LQ7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfU0VSVkVSX1VOS05PV04gICAgIuTB6MPZ6ajRoeDKzcPs4MfNw+zsOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BPV0VSX1NBVkUgICAgICAgICLjqunkv+m56c3COyAiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFIC8qIENvbG9yIG5hbWVzICovCnsKICAgIElEU19DT0xPUl9CTEFDSyAgICAgIsrVtO3SIgogICAgSURTX0NPTE9SX01BUk9PTiAgICAiytXgxde0y8HZIgogICAgSURTX0NPTE9SX0dSRUVOICAgICAiytXgotXCxyIKICAgIElEU19DT0xPUl9PTElWRSAgICAgIsrV4KLVwsfgounBIgogICAgSURTX0NPTE9SX05BVlkgICAgICAiytW57dLgp9S5IgogICAgSURTX0NPTE9SX1BVUlBMRSAgICAiytXB6MenIgogICAgSURTX0NPTE9SX1RFQUwgICAgICAiytXgotXCx83Bue3S4KfUuaLpwSIKICAgIElEU19DT0xPUl9HUkFZICAgICAgIsrV4LfSIgogICAgSURTX0NPTE9SX1NJTFZFUiAgICAiytXgp9S5IgogICAgSURTX0NPTE9SX1JFRCAgICAgICAiytXhtKciCiAgICBJRFNfQ09MT1JfTElNRSAgICAgICLK1eCi1cLHzc3ouSIKICAgIElEU19DT0xPUl9ZRUxMT1cgICAgIsrV4MvF182nIgogICAgSURTX0NPTE9SX0JMVUUgICAgICAiytW/6dIiCiAgICBJRFNfQ09MT1JfRlVDSFNJQSAgICJGdWNoc2lhIgogICAgSURTX0NPTE9SX0FRVUEgICAgICAiytW/6dLNzei5IgogICAgSURTX0NPTE9SX1dISVRFICAgICAiytWi0sciCn0K