LyoKICogQ29weXJpZ2h0IDIwMDIgVGlzaGVuZyBDaGVuCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCi8qCiAqIFdBUk5JTkc6IERPIE5PVCBDSEFOR0UgVEhFIFNJWkUgT0YgVEhFIFNUQU5EQVJEIERJQUxPRyBURU1QTEFURVMuCiAqLwoKTEFOR1VBR0UgTEFOR19DSElORVNFLCBTVUJMQU5HX0NISU5FU0VfU0lNUExJRklFRAoKT1BFTl9GSUxFIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjc1LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAitPK/qiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAizsS8/sP7KCZOKToiLCAxMDkwLCA2LCA2LCA3NiwgOQogRURJVFRFWFQgZWR0MSwgNiwgMTYsIDkwLCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBFU19PRU1DT05WRVJUIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogTElTVEJPWCAxMTIwLCA2LCAzMiwgOTAsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAizsS8/rzQKCZEKToiLCAtMSwgMTEwLCA2LCA5MiwgOQogTFRFWFQgIiIsIDEwODgsIDExMCwgMTgsIDkyLCA5LCBTU19OT1BSRUZJWCB8IFdTX0dST1VQCiBMSVNUQk9YIDExMjEsIDExMCwgMzIsIDkyLCA2OCwgTEJTX1NUQU5EQVJEIHwgTEJTX09XTkVSRFJBV0ZJWEVEIHwgTEJTX0hBU1NUUklOR1MgfCBMQlNfRElTQUJMRU5PU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIs7EvP7A4NDNKCZUKToiLCAxMDg5LCA2LCAxMDQsIDkwLCA5CiBDT01CT0JPWCBjbWIxLCA2LCAxMTQsIDkwLCAzNiwgQ0JTX0RST1BET1dOTElTVCB8IENCU19BVVRPSFNDUk9MTCB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAix/22r8b3KCZ2KToiLCAxMDkxLCAxMTAsIDEwNCwgOTIsIDkKIENPTUJPQk9YIGNtYjIsIDExMCwgMTE0LCA5MiwgNjgsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfT1dORVJEUkFXRklYRUQgfCBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IENCU19IQVNTVFJJTkdTIHwgV1NfQk9SREVSIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKIERFRlBVU0hCVVRUT04gIrTyv6oiLCAxLCAyMDgsIDYsIDU2LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiyKHP+yIsIDIsIDIwOCwgMjQsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICKw79b6KCZIKSIsIHBzaEhlbHAsIDIwOCwgNDYsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAi1ru2wSgmUikiLCBjaHgxLCAyMDgsIDY4LCA1MCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKU0FWRV9GSUxFIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjc1LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiwe205s6qIC4uLiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAizsS8/sP7KCZOKToiLCAxMDkwLCA2LCA2LCA3NiwgOQogRURJVFRFWFQgZWR0MSwgNiwgMTYsIDkwLCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBFU19PRU1DT05WRVJUIHwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogTElTVEJPWCAxMTIwLCA2LCAzMiwgOTAsIDY4LCBMQlNfU1RBTkRBUkQgfCBMQlNfT1dORVJEUkFXRklYRUQgfCBMQlNfSEFTU1RSSU5HUyB8IExCU19ESVNBQkxFTk9TQ1JPTEwgfCBXU19UQUJTVE9QCiBMVEVYVCAixL/CvCgmRCk6IiwgLTEsIDExMCwgNiwgOTIsIDkKIExURVhUICIiLCAxMDg4LCAxMTAsIDE4LCA5MiwgOSwgU1NfTk9QUkVGSVggfCBXU19HUk9VUAogTElTVEJPWCAxMTIxLCAxMTAsIDMyLCA5MiwgNjgsIExCU19TVEFOREFSRCB8IExCU19PV05FUkRSQVdGSVhFRCB8IExCU19IQVNTVFJJTkdTIHwgTEJTX0RJU0FCTEVOT1NDUk9MTCB8IFdTX1RBQlNUT1AKIExURVhUICLOxLz+wODQzSgmVCk6IiwgMTA4OSwgNiwgMTA0LCA5MCwgOQogQ09NQk9CT1ggY21iMSwgNiwgMTE0LCA5MCwgMzYsIENCU19EUk9QRE9XTkxJU1QgfCBDQlNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogTFRFWFQgIsf9tq/G9ygmdik6IiwgMTA5MSwgMTEwLCAxMDQsIDkyLCA5CiBDT01CT0JPWCBjbWIyLCAxMTAsIDExNCwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBERUZQVVNIQlVUVE9OICKxo7TmIiwgMSwgMjA4LCA2LCA1NiwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIsihz/siLCAyLCAyMDgsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAisO/W+igmSCkiLCBwc2hIZWxwLCAyMDgsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIta7tsEoJlIpIiwgY2h4MSwgMjA4LCA2OCwgNTAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UIERJQUxPRyBMT0FET05DQUxMIE1PVkVBQkxFIERJU0NBUkRBQkxFIDM2LCAyNCwgMjY0LCAxMzQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAitPLToSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAitPLTobv6OiIsIDEwODgsIDYsIDYsIDQwLCA5CiBMVEVYVCAiIiwgMTA4OSwgNjAsIDYsIDE1MCwgOQogR1JPVVBCT1ggIrTy06G3ts6nIiwgZ3JwMSwgNiwgMzAsIDE2MCwgNjUsIEJTX0dST1VQQk9YCiBSQURJT0JVVFRPTiAiyKuyvygmQSkiLCByYWQxLCAxNiwgNDUsIDYwLCAxMgogUkFESU9CVVRUT04gItGh1PG1xLe2zqcoJmUpIiwgcmFkMiwgMTYsIDYwLCA2MCwgMTIKIFJBRElPQlVUVE9OICLSs8r9KCZHKSIsIHJhZDMsIDE2LCA3NSwgNjAsIDEyCiBERUZQVVNIQlVUVE9OICLIt7aoIiwgMSwgMjA2LCA2LCA1NiwgMTQsIEJTX0RFRlBVU0hCVVRUT04gfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIsihz/siLCAyLCAyMDYsIDI0LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiyejWwygmUykiLCBwc2gxLCAyMDYsIDQ2LCA1NiwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgIrTTKCZGKToiLCAxMDkwLCA2MCwgODAsIDMwLCA5CiBMVEVYVCAitb0oJlQpOiIsIDEwOTEsIDEyMCwgODAsIDMwLCA5CiBMVEVYVCAitPLTodbKwb8oJlEpOiIsIDEwOTIsIDYsIDEwMCwgNzYsIDkKIENPTUJPQk9YIGNtYjEsIDgwLCAxMDAsIDkyLCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIrTy06G1vc7EvP4oJmwpOiIsIGNoeDEsIDIwLCAxMDAsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ29uZGVuc2VkIiwgY2h4MiwgMTYwLCAxMDAsIDUwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCgpQUklOVF9TRVRVUCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDI2NCwgMTM0ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIrTy06HJ6NbDIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIEdST1VQQk9YICK08tOhu/oiLCBncnAxLCA2LCAxMCwgMTgwLCA2NSwgQlNfR1JPVVBCT1gKIFJBRElPQlVUVE9OICLErMjPtPLTobv6KCZEKSIsIHJhZDEsIDE2LCAyMCwgODAsIDEyCiBMVEVYVCAiW25vbmVdIiwgMTA4OCwgMzUsIDM1LCAxMjAsIDkKIFJBRElPQlVUVE9OICLWuLaotcS08tOhu/ooJlApIiwgcmFkMiwgMTYsIDUwLCA4MCwgMTIKIENPTUJPQk9YIGNtYjEsIDM1LCA2NSwgMTQ5LCA2OCwgQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19BVVRPSFNDUk9MTCB8IENCU19TT1JUIHwgQ0JTX0hBU1NUUklOR1MgfCBXU19CT1JERVIgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogREVGUFVTSEJVVFRPTiAiyLe2qCIsIElET0ssIDIwNiwgNiwgNTYsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLIoc/7IiwgSURDQU5DRUwsIDIwNiwgMjQsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICLJ6NbDKCZTKSIsIHBzaDEsIDIwNiwgNDYsIDU2LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBHUk9VUEJPWCAit73P8igmTykiLCBncnAyLCA2LCA4NSwgMTAwLCA1MCwgQlNfR1JPVVBCT1gKIFJBRElPQlVUVE9OICLX3c/yKCZQKSIsIHJhZDMsIDUwLCAxMDAsIDQwLCAxMgogUkFESU9CVVRUT04gIrrhz/IoJkwpIiwgcmFkNCwgNTAsIDExNSwgNDAsIDEyCiBJQ09OICJMQU5EU0NBUCIsIHN0YzEwLCAxMCwgOTUsIDMyLCAzMgogSUNPTiAiUE9SVFJBSVQiLCBzdGMxMSwgMTAsIDk1LCAzMiwgMzIKIEdST1VQQk9YICLWvdXFIiwgZ3JwMywgMTIwLCA4NSwgMTgwLCA1MCwgQlNfR1JPVVBCT1gKIExURVhUICLWvdXFtPPQoSgmWikiLCAxMDg5LCAxMzAsIDk1LCAzMCwgOQogTFRFWFQgIta91cXAtNS0KCZTKSIsIDEwOTAsIDEzMCwgMTEwLCAzMCwgOQogQ09NQk9CT1ggY21iMiwgMTU1LCA5NSwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiBDT01CT0JPWCBjbWIzLCAxNTUsIDExMCwgOTIsIDY4LCBDQlNfRFJPUERPV05MSVNUIHwgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0FVVE9IU0NST0xMIHwgQ0JTX1NPUlQgfCBDQlNfSEFTU1RSSU5HUyB8IFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCn0KCgpDSE9PU0VfRk9OVCBESUFMT0cgRElTQ0FSREFCTEUgIDEzLCA1NCwgMjY0LCAxNDcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi19bM5SIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBMVEVYVCAgICAgICAgICAgItfWzOUoJkYpOiIsMTA4OCAsNiwzLDQwLDkKICAgIENPTUJPQk9YICAgICAgICBjbWIxLCA2LDEzLDk0LDU0LCAgQ0JTX09XTkVSRFJBV0ZJWEVEIHwgQ0JTX0hBU1NUUklOR1MgfCBDQlNfRElTQUJMRU5PU0NST0xMIHwKICAgICAgICAgICAgICAgICAgICBDQlNfQVVUT0hTQ1JPTEwgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NJTVBMRQogICAgTFRFWFQgICAgICAgICAgICLX1szl0fnKvSgmeSk6IiwxMDg5ICwxMDgsMyw0NCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iMiwxMDgsMTMsNjQsNTQsIENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU0lNUExFCiAgICBMVEVYVCAgICAgICAgICAgIrTz0KEoJlMpOiIsMTA5MCwxNzksMywzMCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iMywxNzksMTMsMzIsNTQsIENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgQ0JTX0RJU0FCTEVOT1NDUk9MTCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AgfCBDQlNfU0lNUExFIHwgQ0JTX1NPUlQKICAgIERFRlBVU0hCVVRUT04gICAiyLe2qCIsSURPSywyMTgsNiw0MCwxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QIHwgQlNfREVGUFVTSEJVVFRPTgogICAgUFVTSEJVVFRPTiAgICAgICLIoc/7IixJRENBTkNFTCwyMTgsMjMsNDAsMTQsV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgItOm08MoJkEpIiwgcHNoMywyMTgsNDAsNDAsMTQsV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBQVVNIQlVUVE9OICAgICAgIrDv1vooJkgpIiAsIHBzaEhlbHAsMjE4LDU3LDQwLDE0LFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICLQp7n7IiwxMDcyLDYsNzIsODQsMzQsV1NfR1JPVVAKICAgIENIRUNLQk9YCSAgICAiyb6z/c/fKCZrKSIsIGNoeDEsIDEwLDgyLDUwLDEwLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiAgICBDSEVDS0JPWCAJICAgICLPwruuz98oJlUpIiwgY2h4MiwgMTAsOTQsNTAsMTAsIEJTX0FVVE9DSEVDS0JPWAogICAgTFRFWFQgICAgICAgICAgICLR1cmrKCZDKToiLCAxMDkxICw2LDExMCwzMCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iNCw2LDEyMCw4NCwxMDAsQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwKCQkgICAgQ0JTX0FVVE9IU0NST0xMIHwgIFdTX0JPUkRFUiB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBHUk9VUEJPWCAgICAgICAgIsq+wP0iLGdycDIsOTgsNzIsMTIwLDM2LFdTX0dST1VQCiAgICBDVEVYVCAgICAgICAgICAgItbQzsTX1szlQWFCYll5WnoiLHN0YzUsMTAzLDgwLDEwOSwyNCxTU19OT1BSRUZJWCB8IE5PVCBXU19WSVNJQkxFCiAgICBMVEVYVCAgICAgICAgICAgIlNjciZpcHQgKHRyYW5zbGF0ZSk6IixzdGM3LDk4LDExNCw4MCw5CiAgICBDT01CT0JPWCAgICAgICAgY21iNSw5OCwxMjQsMTIwLDkwLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfSEFTU1RSSU5HUyB8CgkJICAgIENCU19BVVRPSFNDUk9MTCB8ICAgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKfQoKCkNIT09TRV9DT0xPUiBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDMwMCwgMTg1ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItHVyasiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogTFRFWFQgIrv5sb7R1cmrKCZCKToiLCAgIDEwODgsIDQsICAgIDQsICAxNDAsIDEwCiBMVEVYVCAi19S2qNbG0dXJqygmQyk6IiwgIDEwODksIDQsICAgMTA2LCAxNDAsIDEwCiBMVEVYVCAi0dXJq3y0v8mrKCZPKSIsICAxMDkwLCAxNTAsIDE1MSwgIDQ4LCAxMAogTFRFWFQgICAiuuwoJlIpOiIsIDcyNiAvKjEwOTQqLywyNDksMTI2LDI0LDEwCiBFRElUVEVYVCA3MDYsIDI3NSwxMjQsMjEsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICAiwswoJkcpOiIsNzI3LyoxMDk1Ki8sMjQ5LDE0MCwyNCwxMAogRURJVFRFWFQgNzA3LCAyNzUsMTM4LDIxLDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAgIsC2KCZCKToiLDcyOCAvKjEwOTYqLywyNDksMTU0LDI0LDEwCiBFRElUVEVYVCA3MDgsIDI3NSwxNTIsMjEsMTIsIFdTX0JPUkRFUiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogTFRFWFQgICLJq7X3KCZFKToiICw3MjMgLyoxMDkxKi8sMjAyLDEyNiwyMiwxMAogRURJVFRFWFQgNzAzLCAyMjYsMTI0LDIxLDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAisaW6zbbIKCZTKToiICw3MjQgLyoxMDkyKi8sMjAyLDE0MCwyMiwxMAogRURJVFRFWFQgNzA0LCAyMjYsMTM4LDIxLDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIExURVhUICAiwcG2yCgmTCkiICw3MjUgLyoxMDkzKi8sMjAyLDE1NCwyMiwxMAogRURJVFRFWFQgNzA1LCAyMjYsMTUyLDIxLDEyLCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENPTlRST0wgIiIgLDcyMCwiU1RBVElDIixTU19TSU1QTEV8V1NfVEFCU1RPUHxXU19HUk9VUCw0LDE0LDE0MCw4NgogQ09OVFJPTCAiIiAsNzIxLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLDQsMTE2LDE0MCwyOAogQ09OVFJPTCAiIiAsNzEwLCJTVEFUSUMiLFdTX0JPUkRFUnxTU19TSU1QTEV8V1NfVEFCU1RPUHxXU19HUk9VUCwgMTUyLDQsMTE4LDExNgogQ09OVFJPTCAiIiAsNzAyLCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAyNzgsNCw4LDExNgogQ09OVFJPTCAiIiAsNzA5LCJTVEFUSUMiLFNTX1NJTVBMRXxXU19UQUJTVE9QfFdTX0dST1VQLCAxNTIsMTI0LDQwLDI2CiBERUZQVVNIQlVUVE9OICLIt7aoIiwgIDEsICA0LCAxNjYsIDQ0LCAxNCwgQlNfREVGUFVTSEJVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiyKHP+yIsIDIsIDUyLCAxNjYsIDQ0LCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICKw79b6IiwgcHNoSGVscCwxMDAsMTY2LCA0NCwgMTQKIFBVU0hCVVRUT04gIsztvNO1vdfUtqjWxtHVyasoJkEpIiwgICAgNzEyLyoxMDI0Ki8sIDE1MiwgMTY2LCAxNDIsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIrnmtqjX1Lao0uXR1cmrKCZEKT4+IiwgNzE5LyoxMDI1Ki8sICAgNCwgMTUwLCAxNDIsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gICImaSIsNzEzLDMwMCwyMDAsNCwxNCAgIC8qIGp1c3QgYSBkdW1teTogICdpJyBpcyAgbGlrZSAgJmkgIGluICJzb2wmaWQiICAqLwp9CgoKRklORERMR09SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDIzNiwgNjIKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAisunV0iIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAisunV0igmbik6IiwgLTEsIDQsIDgsIDQyLCA4CiBFRElUVEVYVCBlZHQxLCA0NywgNywgMTI4LCAxMiwgRVNfQVVUT0hTQ1JPTEwgfCBXU19CT1JERVIgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICLIq9fWxqXF5CgmVykiLCBjaHgxLCA0LCAyNiwgMTAwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAix/i31rTz0KHQtCgmQykiLCBjaHgyLCA0LCA0MiwgNjQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBHUk9VUEJPWCAit73P8iIsIGdycDEsIDEwNywgMjYsIDY4LCAyOAogQ09OVFJPTCAiz/LJzygmVSkiLCByYWQxLCAiQlVUVE9OIiwgQlNfQVVUT1JBRElPQlVUVE9OIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QLCAxMTEsIDM4LCAyMCwgMTIKIENPTlRST0wgIs/yz8IoJkQpIiwgcmFkMiwgIkJVVFRPTiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSB8IFdTX1RBQlNUT1AsIDEzOCwgMzgsIDMwLCAxMgoKIERFRlBVU0hCVVRUT04gIrLp1dLPwtK7uPYoJkYpIiwgSURPSywgMTgyLCAgNSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AgfCBCU19ERUZQVVNIQlVUVE9OCiBQVVNIQlVUVE9OICLIoc/7IiwgSURDQU5DRUwJICwgMTgyLCAyMywgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIrDv1vooJkgpIiwgcHNoSGVscAkgLCAxODIsIDQ1LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAp9CgoKUkVQTEFDRURMR09SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzNiwgMjQsIDIzMCwgOTQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAizOa7uyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBMVEVYVCAisunV0sTayN0oJm4pOiIsIC0xLCA0LCA5LCA0OCwgOAogRURJVFRFWFQgZWR0MSwgNTQsIDcsIDExNCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBMVEVYVCAizOa7u86qKCZwKToiLCAtMSwgNCwgMjYsIDQ4LCA4CiBFRElUVEVYVCBlZHQyLCA1NCwgMjQsIDExNCwgMTIsIEVTX0FVVE9IU0NST0xMIHwgV1NfQk9SREVSIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiyKvX1salxeQoJlcpIiwgY2h4MSwgNSwgNDYsIDEwNCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIsf4t9a089Ch0LQoJkMpIiwgY2h4MiwgNSwgNjIsIDU5LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAoKIERFRlBVU0hCVVRUT04gIrLp1dLPwtK7uPYoJkYpIiwgSURPSywgMTc0LCAgNCwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AgfCBCU19ERUZQVVNIQlVUVE9OCiBQVVNIQlVUVE9OICLM5ru7KCZSKSIsIHBzaDEJICwgMTc0LCAyMSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKIFBVU0hCVVRUT04gIsirsr/M5ru7KCZBKSIsIHBzaDIgLCAxNzQsIDM4LCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogUFVTSEJVVFRPTiAiyKHP+yIsIElEQ0FOQ0VMCSAsIDE3NCwgNTUsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICKw79b6KCZIKSIsIHBzaEhlbHAJICwgMTc0LCA3NSwgNTAsIDE0LCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKfQoKClBSSU5UMzIgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgIDMyLCAzMiwgMjg4LCAxODYKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwKICAgICAgRFNfQ09OVEVYVEhFTFAgfCBEU18zRExPT0sKQ0FQVElPTiAitPLToSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBERUZQVVNIQlVUVE9OICAgIsi3tqgiLCAgICAgSURPSywgICAgIDE4MCwxNjQsIDQ4LDE0LCBXU19HUk9VUCB8IEJTX0RFRlBVU0hCVVRUT04KICAgIFBVU0hCVVRUT04gICAgICAiyKHP+yIsIElEQ0FOQ0VMLCAyMzIsMTY0LCA0OCwxNCwgV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAisO/W+igmSCkiLCAgcHNoSGVscCwgIDUwLCAxNjEsIDQ4LDE0LCBXU19HUk9VUAoKICAgIEdST1VQQk9YICAgICAgICAitPLTobv6IiwgICAgICAgIGdycDQsICAgOCwgIDQsIDI3Miw4NCwgV1NfR1JPVVAKICAgIENPTlRST0wgICAgICAgICAitPLTobW9zsS8/igmbCkiLCBjaHgxLCAiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjEyLDcwLDY0LDEyCiAgICBQVVNIQlVUVE9OICAgICAgIsr00NQoJlApIiwgICAgcHNoMiwgMjEyLCAxNywgIDYwLDE0LCBXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICLD+7PGKCZOKToiLCAgICAgICAgIHN0YzYsICAxNiwgMjAsICAzNiw4CiAgICBDT01CT0JPWCAgICAgICAgICAgICAgICAgICAgICAgICAgY21iNCwgIDUyLCAxOCwgMTUyLDE1MixDQlNfRFJPUERPV05MSVNUIHwgQ0JTX1NPUlQgfCBXU19WU0NST0xMIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIte0zKw6IiwgICAgICAgIHN0YzgsICAxNiwgMzYsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiRHVtbXkgU3RhdGUiLCAgICBzdGMxMiwgNTIsIDM2LCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAi0M26xToiLCAgICAgICAgICBzdGM3LCAgMTYsIDQ4LCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFR5cGUiLCAgICAgc3RjMTEsIDUyLCA0OCwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVCAgICAgICAgICAgIs671sM6IiwgICAgICAgICBzdGMxMCwgMTYsIDYwLCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IExvY2F0aW9uIiwgc3RjMTQsIDUyLCA2MCwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCiAgICBMVEVYVCAgICAgICAgICAgIrG416I6IiwgICAgICAgc3RjOSwgIDE2LCA3MiwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBSZW1hcmsiLCAgIHN0YzEzLCA1MiwgNzIsIDE1MiwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAoKICAgIEdST1VQQk9YICAgICAgICAit93K/SIsICAgICAgICAgZ3JwMiwgMTYwLCA5MiwgMTIwLDY0LCBXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICK33cr9KCZDKToiLHN0YzUsMTY4LDEwOCw2OCw4CiAgICBJQ09OICAgICAgICAgICAgIiIsICAgICAgICAgICAgICAgaWNvMywgMTYyLDEyNCwgIDc2LDI0LCBXU19HUk9VUCB8IFNTX0NFTlRFUklNQUdFCiAgICBDT05UUk9MICAgICAgICAgIkMmb2xsYXRlIiwgICAgICAgY2h4MiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AsMjQwLDEzMCwzNiwxMgogICAgRURJVFRFWFQgICAgICAgICAgICAgICAgICAgICAgICAgIGVkdDMsIDI0MCwxMDYsICAzMiwxMiwgV1NfR1JPVVAgfCBFU19OVU1CRVIKCiAgICBHUk9VUEJPWCAgICAgICAgIrTy06G3ts6nIiwgICAgZ3JwMSwgICA4LDkyLCAgMTQ0LDY0LCBXU19HUk9VUAogICAgQ09OVFJPTCAgICAgICAgICLIq7K/KCZBKSIsICAgICAgICAgICByYWQxLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUCwxNiwxMDYsNjQsMTIKICAgIENPTlRST0wgICAgICAgICAi0rPK/SgmRykiLCAgICAgICAgIHJhZDMsIkJ1dHRvbiIsQlNfQVVUT1JBRElPQlVUVE9OLDE2LDEyMiwzNiwxMgogICAgQ09OVFJPTCAgICAgICAgICLRodTxtcS3ts6nKCZTKSIsICAgICByYWQyLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiwxNiwxMzgsNjQsMTIKICAgIEVESVRURVhUICAgICAgICAgICAgICAgICAgICAgICAgICBlZHQxLCAgNzQsMTIyLCAgMjYsMTIsIFdTX0dST1VQIHwgRVNfTlVNQkVSCiAgICBFRElUVEVYVCAgICAgICAgICAgICAgICAgICAgICAgICAgZWR0MiwgMTE4LDEyMiwgIDI2LDEyLCBXU19HUk9VUCB8IEVTX05VTUJFUgogICAgUlRFWFQgICAgICAgICAgICK00ygmZik6IiwgICAgICAgICBzdGMyLCAgNTIsMTI0LCAgMjAsOAogICAgUlRFWFQgICAgICAgICAgICK1vSgmdCk6IiwgICAgICAgICAgIHN0YzMsIDEwMCwxMjQsICAxNiw4Cn0KClBSSU5UMzJfU0VUVVAgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgIDMyLCAzMiwgMjg4LCAxNzgKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VIHwKICAgICAgRFNfQ09OVEVYVEhFTFAgfCBEU18zRExPT0sKQ0FQVElPTiAitPLTocno1sMiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiyLe2qCIsSURPSywxODAsMTU2LDQ4LDE0LFdTX0dST1VQCiAgICBQVVNIQlVUVE9OICAgICAgIsihz/siLElEQ0FOQ0VMLDIzMiwxNTYsNDgsMTQKLyogICAgUFVTSEJVVFRPTiAgICAgICJOZXR3b3JrLi4uIiwgcHNoNSwgMjg0LDE1Niw0OCwxNCAqLwoKICAgIEdST1VQQk9YICAgICAgICAitPLTobv6IiwgICAgICAgIGdycDQsICAgOCwgIDQsIDI3Miw4NCwgV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAiyvTQ1CgmUCkiLCAgICBwc2gyLCAyMTIsIDE3LCAgNjAsMTQsIFdTX0dST1VQCiAgICBMVEVYVCAgICAgICAgICAgIsP7s8YoJk4pOiIsICAgICAgICAgc3RjNiwgIDE2LCAyMCwgIDM2LDgKICAgIENPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgICBjbWIxLCAgNTIsIDE4LCAxNTIsMTUyLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAi17TMrDoiLCAgICAgICAgc3RjOCwgIDE2LCAzNiwgIDM2LDEwLCBTU19OT1BSRUZJWAogICAgTFRFWFQgICAgICAgICAgICJEdW1teSBTdGF0ZSIsICAgIHN0YzEyLCA1MiwgMzYsIDIyNCwxMCwgU1NfTk9QUkVGSVggfCBTU19MRUZUTk9XT1JEV1JBUAogICAgTFRFWFQgICAgICAgICAgICLQzbrFOiIsICAgICAgICAgIHN0YzcsICAxNiwgNDgsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiRHVtbXkgVHlwZSIsICAgICBzdGMxMSwgNTIsIDQ4LCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAizrvWwzoiLCAgICAgICAgIHN0YzEwLCAxNiwgNjAsICAzNiwxMCwgU1NfTk9QUkVGSVgKICAgIExURVhUICAgICAgICAgICAiRHVtbXkgTG9jYXRpb24iLCBzdGMxNCwgNTIsIDYwLCAyMjQsMTAsIFNTX05PUFJFRklYIHwgU1NfTEVGVE5PV09SRFdSQVAKICAgIExURVhUICAgICAgICAgICAisbjXojoiLCAgICAgICBzdGM5LCAgMTYsIDcyLCAgMzYsMTAsIFNTX05PUFJFRklYCiAgICBMVEVYVCAgICAgICAgICAgIkR1bW15IFJlbWFyayIsICAgc3RjMTMsIDUyLCA3MiwgMjI0LDEwLCBTU19OT1BSRUZJWCB8IFNTX0xFRlROT1dPUkRXUkFQCgogICAgR1JPVVBCT1ggICAgICAgICLWvdXFIiwgICAgICAgICAgZ3JwMiwgICA4LCA5MiwgMTY0LDU2LCBXU19HUk9VUAogICAgTFRFWFQgICAgICAgICAgICLWvdXFtPPQoSgmeik6IiwgICAgICAgICBzdGMyLCAgMTYsMTA4LCAgMzYsIDgKICAgIENPTUJPQk9YICAgICAgICAgICAgICAgICAgICAgICAgICBjbWIyLCAgNTIsMTA2LCAxMTIsMTEyLENCU19EUk9QRE9XTkxJU1QgfCBDQlNfU09SVCB8IFdTX1ZTQ1JPTEwgfCBXU19HUk9VUCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAi1r3VxcC01LQoJlMpOiIsICAgICAgIHN0YzMsICAxNiwxMjgsICAzNiwgOAogICAgQ09NQk9CT1ggICAgICAgICAgICAgICAgICAgICAgICAgIGNtYjMsICA1MiwxMjYsIDExMiwxMTIsQ0JTX0RST1BET1dOTElTVCB8IENCU19TT1JUIHwgV1NfVlNDUk9MTCB8IFdTX0dST1VQIHwgV1NfVEFCU1RPUAoKICAgIEdST1VQQk9YICAgICAgICAit73P8iIsICAgIGdycDEsIDE4MCwgOTIsIDEwMCw1NiwgV1NfR1JPVVAKICAgIElDT04gICAgICAgICAgICAiIiwgICAgICAgICAgICAgICBpY28xLCAxOTUsMTEyLCAgMTgsMjAsIFdTX0dST1VQCiAgICBDT05UUk9MICAgICAgICAgItfdz/IoJlApIiwgICAgICByYWQxLCJCdXR0b24iLEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQIHxXU19UQUJTVE9QLDIyNCwxMDYsNTIsMTIKICAgIENPTlRST0wgICAgICAgICAiuuHP8igmTCkiLCAgICAgcmFkMiwiQnV0dG9uIixCU19BVVRPUkFESU9CVVRUT04sMjI0LDEyNiw1MiwxMgpFTkQKClBBR0VTRVRVUERMR09SRCBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzMiwgMzIsIDI0MCwgMjQwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICLSs8PmyejWwyIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogIENPTlRST0wgIiIsIHJjdDEsICJTdGF0aWMiLCBTU19XSElURVJFQ1QsIDgwLCA4LCA4MCwgODAKICBDT05UUk9MICIiLCByY3QyLCAiU3RhdGljIiwgU1NfR1JBWVJFQ1QsIDE2MCwgMTIsIDQsIDgwCiAgQ09OVFJPTCAiIiwgcmN0MywgIlN0YXRpYyIsIFNTX0dSQVlSRUNULCAgODQsIDg4LCA4MCwgNAogIEdST1VQQk9YICLWvdXFIiwgZ3JwMiwgOCwgOTYsIDIyNCwgNTYsIEJTX0dST1VQQk9YCiAgTFRFWFQgIrTz0KEoJlMpOiIsIHN0YzIsIDE2LCAxMTIsIDM2LCA4CiAgQ09NQk9CT1ggY21iMiwgNjQsIDExMCwgMTYwLCAxNjAsIENCU19TSU1QTEV8Q0JTX0RST1BET1dOfENCU19TT1JUfFdTX0dST1VQfFdTX1RBQlNUT1B8V1NfVlNDUk9MTAogIExURVhUICLAtNS0KCZTKToiLCBzdGMzLCAxNiwgMTMyLCAzNiwgOAogIENPTUJPQk9YIGNtYjMsIDY0LCAxMzAsIDE2MCwgMTYwLCBDQlNfU0lNUExFfENCU19EUk9QRE9XTnxDQlNfU09SVHxXU19HUk9VUHxXU19UQUJTVE9QfFdTX1ZTQ1JPTEwKICBHUk9VUEJPWCAit73P8igmTykiLCBncnAxLCA4LCAxNTYsIDY0LCA1NiwgQlNfR1JPVVBCT1gKICBBVVRPUkFESU9CVVRUT04gItfdz/IoJlApIiwgcmFkMSwgMTYsIDE3MCwgNTIsIDEyLCBCU19BVVRPUkFESU9CVVRUT04KICBBVVRPUkFESU9CVVRUT04gIrrhz/IoJkwpIiwgcmFkMiwgMTYsIDE5MCwgNTIsIDEyLCBCU19BVVRPUkFESU9CVVRUT04KICBHUk9VUEJPWCAisd++4CIsIGdycDQsIDgwLCAxNTYsIDE1MiwgNTYsIEJTX0dST1VQQk9YCiAgTFRFWFQgItfzKCZlKToiLCBzdGMxNSwgODgsIDE3MiwgMjEsIDgKICBFRElUVEVYVCBlZHQ0LCAxMTEsIDE3MCwgMzksIDEyLCBXU19UQUJTVE9QfFdTX0dST1VQfFdTX0JPUkRFUgogIExURVhUICLT0igmUik6Iiwgc3RjMTYsIDE1OSwgMTcyLCAyNywgOAogIEVESVRURVhUIGVkdDYsIDE4NywgMTcwLCAzOSwgMTIsIFdTX1RBQlNUT1B8V1NfR1JPVVB8V1NfQk9SREVSCiAgTFRFWFQgIsnPKCZvKToiLCBzdGMxNywgODgsIDE5MiwgMjEsIDgKICBFRElUVEVYVCBlZHQ1LCAxMTEsIDE5MCwgMzksIDEyLCBXU19UQUJTVE9QfFdTX0dST1VQfFdTX0JPUkRFUgogIExURVhUICLPwigmQik6Iiwgc3RjMTgsIDE1OSwgMTkyLCAyMywgOAogIEVESVRURVhUIGVkdDcsIDE4NywgMTkwLCAzOSwgMTIsIFdTX1RBQlNUT1B8V1NfR1JPVVB8V1NfQk9SREVSCiAgREVGUFVTSEJVVFRPTiAiyLe2qCIsIElET0ssIDcxLCAyMjAsIDUwLCAxNCwgQlNfUFVTSEJVVFRPTgogIFBVU0hCVVRUT04gIsihz/siLCBJRENBTkNFTCwgMTI2LCAyMjAsIDUwLCAxNAogIFBVU0hCVVRUT04gIrTy06G7+igmUCkuLi4iLCBwc2gzLCAxODQsIDIyMCwgNDgsIDE0CkVORAoKTkVXRklMRU9QRU5PUkQgRElBTE9HIExPQURPTkNBTEwgTU9WRUFCTEUgRElTQ0FSREFCTEUgMCwgMCwgMjgwLCAxNjQKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTX0NPTlRFWFRIRUxQIHwgV1NfVklTSUJMRSB8IFdTX1BPUFVQIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfCBXU19DTElQQ0hJTERSRU4KQ0FQVElPTiAitPK/qiIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiAgICBMVEVYVAkiy9HRsCgmSSkiLElEQ19MT09LSU5TVEFUSUMsNCw2LDQzLDgsIFNTX05PVElGWQogICAgQ09NQk9CT1gJSURDX0xPT0tJTiw0OSwzLDEzMiwxMDAsQ0JTX0RST1BET1dOTElTVCB8IENCU19PV05FUkRSQVdGSVhFRCB8IENCU19IQVNTVFJJTkdTIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBMVEVYVAkiIiAsIElEQ19UT09MQkFSU1RBVElDLCAxODEsIDIsIDEwMiwgMTcsIE5PVCBXU19HUk9VUCB8IE5PVCBXU19WSVNJQkxFCiAgICBMSVNUQk9YCUlEQ19TSEVMTFNUQVRJQyw0LDIwLDI3Miw4NSwgTEJTX1NPUlQgfCBMQlNfTk9JTlRFR1JBTEhFSUdIVCB8IExCU19NVUxUSUNPTFVNTiB8IFdTX0hTQ1JPTEwgfCBOT1QgV1NfVklTSUJMRQoKICAgIExURVhUCSLOxLz+w/soJk4pOiIsSURDX0ZJTEVOQU1FU1RBVElDLDUsMTEyLDQ2LDgsIFNTX05PVElGWQogICAgRURJVFRFWFQJSURDX0ZJTEVOQU1FLDU0LDExMCwxNTUsMTIsRVNfQVVUT0hTQ1JPTEwKCiAgICBMVEVYVAkizsS8/sDg0M0oJnQpIixJRENfRklMRVRZUEVTVEFUSUMsNSwxMjgsNDIsOCwgU1NfTk9USUZZCiAgICBDT01CT0JPWAlJRENfRklMRVRZUEUsNTQsMTI2LDE1NSw1MyxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MCSLWu7bBKCZyKSIsSURDX09QRU5SRUFET05MWSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDU0LDE0NSwxMDAsMTAKCiAgICBERUZQVVNIQlVUVE9OCSK08r+qKCZPKSIsCQkgSURPSywyMjIsMTEwLDUwLDE0CiAgICBQVVNIQlVUVE9OCQkiyKHP+yIsCQkgSURDQU5DRUwsMjIyLDEyOCw1MCwxNAogICAgUFVTSEJVVFRPTgkJIrDv1vooJkgpIiwJCSBwc2hIZWxwLDIyMiwxNDUsNTAsMTQKfQoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKewogICAgSURTX0FCT1VUQk9YICAgICAgICAgICAgIiZBYm91dCBGb2xkZXJQaWNrZXIgVGVzdCIKICAgIElEU19ET0NVTUVOVEZPTERFUlMgICAgICLOxLW1xL/CvCIKICAgIElEU19QRVJTT05BTCAgICAgICAgICAgICLO0rXEzsS1tSIKICAgIElEU19GQVZPUklURVMgICAgICAgICAgICLK1bLYvNAiCiAgICBJRFNfUEFUSCAgICAgICAgICAgICAgICAiz7XNs8K3vrYiCiAgICBJRFNfREVTS1RPUCAgICAgICAgICAgICAi18DD5iIKICAgIElEU19GT05UUyAgICAgICAgICAgICAgICLX1szlIgogICAgSURTX01ZQ09NUFVURVIgICAgICAgICAgIs7StcS158TUIgp9CgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICBJRFNfU1lTVEVNRk9MREVSUyAgICAgICAiz7XNs87EvP680CIKICAgIElEU19MT0NBTEhBUkRSSVZFUyAgICAgICKxvrXY07LFzMf9tq/G9yIKICAgIElEU19GSUxFTk9URk9VTkQgICAgICAgICLV0rK7tb3OxLz+IgogICAgSURTX1ZFUklGWUZJTEUgICAgICAgICAgIsfrvOzR6crHt/G4+NPo1f3It7XEzsS8/sP7s8ahoyIKICAgIElEU19DUkVBVEVGSUxFICAgICAgICAgICLV0rK7tb3OxLz+XG7Kx7fxtLS9qNDCzsS8/j8iCiAgICBJRFNfT1ZFUldSSVRFRklMRSAgICAgICAizsS8/tLRvq205tTaoaNcbtKqzOa7u8LwPyIKICAgIElEU19JTlZBTElEX0ZJTEVOQU1FX1RJVExFICLOxLz+w/vW0LTm1NrO3tCntcTX1rf7IgogICAgSURTX0lOVkFMSURfRklMRU5BTUUgICAgIs7EvP7D+9bQsrvE3LD8uqzIzrrO0rvPwtfWt/s6OiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLyA6IDwgPiB8IgogICAgSURTX1BBVEhOT1RFWElTVElORyAgICAgIs7EvP680LK7tObU2iIKICAgIElEU19GSUxFTk9URVhJU1RJTkcgICAgICLOxLz+sru05tTaIgp9CgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICBJRFNfVVBGT0xERVIgICAgICAgICAiz/LJz9LG0ruy4yIKICAgIElEU19ORVdGT0xERVIgICAgICAgICLQwr2ozsS8/rzQIgogICAgSURTX0xJU1RWSUVXICAgICAgICAgIsHQse0iCiAgICBJRFNfUkVQT1JUVklFVyAgICAgICAiz+rPuNfKwc8iCiAgICBJRFNfVE9ERVNLVE9QICAgICAgICAisum/tNfAw+YiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIFBEMzJfUFJJTlRfVElUTEUgICAgICAgIrTy06EiCgogICAgUEQzMl9WQUxVRV9VUkVBREFCTEUgICAgICAgICAgICAgICAgICAiVW5yZWFkYWJsZSBFbnRyeSIKICAgIFBEMzJfSU5WQUxJRF9QQUdFX1JBTkdFICJUaGlzIHZhbHVlIGRvZXMgbm90IGxpZSB3aXRoaW4gdGhlIHBhZ2UgcmFuZ2UuXG5cClBsZWFzZSBlbnRlciBhIHZhbHVlIGJldHdlZW4gJWQgYW5kICVkLiIKICAgIFBEMzJfRlJPTV9OT1RfQUJPVkVfVE8gICAgICAgICAgICAgICAgIlRoZSAnZnJvbScgZW50cnkgY2Fubm90IGV4Y2VlZCB0aGUgXAondG8nIGVudHJ5LiIKICAgIFBEMzJfTUFSR0lOU19PVkVSTEFQICAgICAgICAgICAgICAgICAgIk1hcmdpbnMgb3ZlcmxhcCBvciBmYWxsIG91dHNpZGUgXApQYXBlciBib3VuZGFyaWVzLlxuUGxlYXNlIHJlZW50ZXIgbWFyZ2lucy4iCiAgICBQRDMyX05SX09GX0NPUElFU19FTVBUWSAgICAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mICdOdW1iZXIgb2YgY29waWVzJyBcCnZhbHVlIGNhbm5vdCBiZSBlbXB0eS4iCiAgICBQRDMyX1RPT19MQVJHRV9DT1BJRVMgICAgICAgICAgICAgICAgICJUaGlzIGxhcmdlIG5tdWJlciBvZiBjb3BpZXMgaXMgbm90IFwKc3VwcG9ydGVkIGJ5IHlvdXIgcHJpbnRlci5cblBsZWFzZSBlbnRlciBhIHZhbHVlIGJldHdlZW4gMSBhbmQgJWQuIgogICAgUEQzMl9QUklOVF9FUlJPUiAgICAgICAgICAgICAgICAgICAgICAiQSBwcmludGVyIGVycm9yIG9jY3VycmVkLiIKICAgIFBEMzJfTk9fREVGQVVMVF9QUklOVEVSICAgICAgICAgICAgICAgIlRoZXJlIGlzIG5vdCBkZWZhdWx0IHByaW50ZXIuIgogICAgUEQzMl9DQU5UX0ZJTkRfUFJJTlRFUiAgICAgICAgICAgICAgICAiQ2Fubm90IGZpbmQgdGhlIHByaW50ZXIuIgogICAgUEQzMl9PVVRfT0ZfTUVNT1JZICAgICAgICAgICAgICAgICAgICAiT3V0IG9mIG1lbW9yeS4iCiAgICBQRDMyX0dFTkVSSUNfRVJST1IgICAgICAgICAgICAgICAgICAgICJTb21lIGVycm9yIG9jY3VycmVkLiIKICAgIFBEMzJfRFJJVkVSX1VOS05PV04gICAgICAgICAgICAgICAgICAgIlVua25vd24gcHJpbnRlciBkcml2ZXIuIgogICAgUEQzMl9OT19ERVZJQ0VTICAgICAgICAgICAgICAgICAgICAgICAiQmVmb3JlIHlvdSBjYW4gcGVyZm9ybSBwcmludGVyLXJlbGF0ZWQgdGFza3MgXApzdWNoIGFzIHBhZ2Ugc2V0dXAgb3IgcHJpbnRpbmcgYSBkb2N1bWVudCwgeW91IG5lZWQgdG8gaW5zdGFsbCBhIHByaW50ZXIuIFwKUGxlYXNlIGluc3RhbGwgb25lIGFuZCByZXRyeS4iCgogICAgUEQzMl9ERUZBVUxUX1BSSU5URVIgICAgICAgICAgICAgICAgICAiRGVmYXVsdCBQcmludGVyOyAiCiAgICBQRDMyX05SX09GX0RPQ1VNRU5UU19JTl9RVUVVRSAgICAgICAgICJUaGVyZSBhcmUgJWQgZG9jdW1lbnRzIGluIHRoZSBxdWV1ZSIKICAgIFBEMzJfTUFSR0lOU19JTl9JTkNIRVMgICAgICAgICAgICAgICAgIk1hcmdpbnMgW2luY2hlc10iCiAgICBQRDMyX01BUkdJTlNfSU5fTUlMSU1FVEVSUyAgICAgICAgICAgICJNYXJnaW5zIFttbV0iCiAgICBQRDMyX01JTElNRVRFUlMgICAgICAgICAgICAgICAgICAgICAgICJtbSIKCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1JFQURZICAgICAgICAgICAgICJSZWFkeSIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEFVU0VEICAgICAgICAgICAgIlBhdXNlZDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19FUlJPUiAgICAgICAgICAgICAiRXJyb3I7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEVORElOR19ERUxFVElPTiAgIlBlbmRpbmcgZGVsZXRpb247ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUEFQRVJfSkFNICAgICAgICAgIlBhcGVyIGphbTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVBFUl9PVVQgICAgICAgICAiT3V0IG9mIHBhcGVyOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX01BTlVBTF9GRUVEICAgICAgICJGZWVkIHBhcGVyIG1hbnVhbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QQVBFUl9QUk9CTEVNICAgICAiUGFwZXIgcHJvYmxlbTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19PRkZMSU5FICAgICAgICAgICAiUHJpbnRlciBvZmZsaW5lOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX0lPX0FDVElWRSAgICAgICAgICJJL08gQWN0aXZlOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX0JVU1kgICAgICAgICAgICAgICJCdXN5OyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BSSU5USU5HICAgICAgICAgICJQcmludGluZzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19PVVRQVVRfQklOX0ZVTEwgICAiT3V0cHV0IHRyYXkgaXMgZnVsbDsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19OT1RfQVZBSUxBQkxFICAgICAiTm90IGF2YWlsYWJsZTsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19XQUlUSU5HICAgICAgICAgICAiV2FpdGluZzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19QUk9DRVNTSU5HICAgICAgICAiUHJvY2Vzc2luZzsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19JTklUSUFMSVpJTkcgICAgICAiSW5pdGlhbGlzaW5nOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1dBUk1JTkdfVVAgICAgICAgICJXYXJtaW5nIHVwOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1RPTkVSX0xPVyAgICAgICAgICJUb25lciBsb3c7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfTk9fVE9ORVIgICAgICAgICAgIk5vIHRvbmVyOyAiCiAgICBQRDMyX1BSSU5URVJfU1RBVFVTX1BBR0VfUFVOVCAgICAgICAgICJQYWdlIHB1bnQ7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfVVNFUl9JTlRFUlZFTlRJT04gIkludGVycnVwdGVkIGJ5IHVzZXI7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfT1VUX09GX01FTU9SWSAgICAgIk91dCBvZiBtZW1vcnk7ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfRE9PUl9PUEVOICAgICAgICAgIlRoZSBwcmludGVyIGRvb3IgaXMgb3BlbjsgIgogICAgUEQzMl9QUklOVEVSX1NUQVRVU19TRVJWRVJfVU5LTk9XTiAgICAiUHJpbnQgc2VydmVyIHVua25vd247ICIKICAgIFBEMzJfUFJJTlRFUl9TVEFUVVNfUE9XRVJfU0FWRSAgICAgICAgIlBvd2VyIHNhZmUgbW9kZTsgIgp9CgojcHJhZ21hIGNvZGVfcGFnZShkZWZhdWx0KQo=