LyoKICogV2luZUNmZyByZXNvdXJjZXMKICogVHVya2lzaCBMYW5ndWFnZSBTdXBwb3J0CiAqCiAqIENvcHlyaWdodCAyMDA2IEZhdGloIEH+/WP9CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKgogKi8KCiNpbmNsdWRlICJjb25maWcuaCIgICAvKiBOZWVkZWQgZm9yIHRoZSBQQUNLQUdFX1NUUklORyBkZWZpbml0aW9uICovCiNpbmNsdWRlICJyZXNvdXJjZS5oIgoKTEFOR1VBR0UgTEFOR19UVVJLSVNILCBTVUJMQU5HX0RFRkFVTFQKCklEUl9XSU5FQ0ZHIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJZYXD9bGFuZP1yIiwgSURDX0FVRElPX0NPTkZJR1VSRQogICAgRU5ECkVORAoKSUREX0FCT1VUQ0ZHIERJQUxPR0VYIDAsIDAsIDI2MCwgMjcwClNUWUxFIFdTX0NISUxECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIExURVhUICAgICAgICAgICBQQUNLQUdFX1NUUklORyxJRENfU1RBVElDLDExOSwxNywxMjAsOAogICAgQ09OVFJPTCAgICAgICAgIElEQl9XSU5FLElEQ19TVEFUSUMsIlN0YXRpYyIsU1NfQklUTUFQICwxNSwxNywxNTcsMTExCiAgICBMVEVYVCAgICAgICAgICAgImh0dHA6Ly93d3cud2luZWhxLm9yZy8iLElEQ19TVEFUSUMsMTE5LDMxLDEwNiw4CiAgICBMVEVYVCAgICAgICAgICAgIlRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDExOSw0NCwxMjQsNzIKICAgIEdST1VQQk9YICAgICAgICAiIFdpbmRvd3MgUmVnaXN0cmF0aW9uIEluZm9ybWF0aW9uICIsIElEQ19TVEFUSUMsIDE1LCAxMTAsIDIzMCwgNTUKICAgIExURVhUICAgICAgICAgICAiT3duZXI6IiwgSURDX1NUQVRJQywgMjIsIDEyNiwgNDAsIDIwCiAgICBFRElUVEVYVCAgICAgICAgSURDX0FCVF9PV05FUiwgNzUsIDEyNiwgMTYwLCAxMywgRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIk9yZ2FuaXphdGlvbjoiLCBJRENfU1RBVElDLCAyMiwgMTQwLCA1MCwgMjAKICAgIEVESVRURVhUICAgICAgICBJRENfQUJUX09SRywgNzUsIDE0MCwgMTYwLCAxMywgRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0FQUENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICIgVXlndWxhbWEgQXlhcmxhcv0gIixJRENfU1RBVElDLCA4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJXaW5lIGhlciB1eWd1bGFtYSBp52luIGRl8Gn+aWsgV2luZG93cyBz/HL8bWxlcmluaSB0YWtsaXQgZWRlYmlsaXIuIEJ1IHNla21lIEtpdGFwbP1rbGFyIHZlIEdyYWZpayBzZWttZWxlcmkgaWxlIGJh8GxhbnT9bP0gb2x1cCBidSBzZWttZWxlcmRlIGRlIHNpc3RlbSDnYXD9bmRha2kgdmV5YSB1eWd1bGFtYXlhIPZ6ZWwgYXlhcmxhcv0geWFwbWFu/XphIGl6aW4gdmVyaXIuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDE1LDIwLDIyNywzMAogICAgQ09OVFJPTCAgICAgICAgICJVeWd1bGFtYWxhciIsSURDX0FQUF9MSVNUVklFVywiU3lzTGlzdFZpZXczMiIsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IExWU19MSVNUIHwgTFZTX1NJTkdMRVNFTCB8IExWU19TSE9XU0VMQUxXQVlTLAogICAgICAgICAgICAgICAgICAgIDE1LDUwLDIzMCwxNTAKICAgIFBVU0hCVVRUT04JICAgICJVeWd1bGFtYSAmRWtsZS4uLiIsSURDX0FQUF9BRERBUFAsIDkwLDIwNCw3NSwxNAogICAgUFVTSEJVVFRPTgkgICAgIlV5Z3VsYW1hICZLYWxk/XIiLElEQ19BUFBfUkVNT1ZFQVBQLCAxNzAsMjA0LDc1LDE0CiAgICBMVEVYVCAgICAgICAgICAgIiZXaW5kb3dzIFP8cvxt/DoiLElEQ19TVEFUSUMsMTcsMjI2LDU4LDgKICAgIENPTUJPQk9YICAgICAgICBJRENfV0lOVkVSLDgzLDIyNCwxNjMsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QICAgIApFTkQKCklERF9HUkFQSENGRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI2MCwgMjUwClNUWUxFIFdTX0NISUxEIHwgV1NfRElTQUJMRUQKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgIiBQZW5jZXJlIGF5YXJsYXL9ICIsSURDX1NUQVRJQyw4LDQsMjQ0LDg0CiAgICBDT05UUk9MICAgICAiRGlyZWN0WCB1eWd1bGFtYWxhcv1u/W4gZmFyZXlpIHBlbmNlcmUgaedpbmUga2lsaXRsZW1lbGVyaW5lIGl6aW4gdmVyIixJRENfRFhfTU9VU0VfR1JBQiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDE1LDIwLDIzMCw4CiAgICBDT05UUk9MICAgICAiQWxsb3cgdGhlIHdpbmRvdyBtYW5hZ2VyIHRvICZkZWNvcmF0ZSB0aGUgd2luZG93cyIsSURDX0VOQUJMRV9ERUNPUkFURUQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxNSwzMiwyMzAsOAogICAgQ09OVFJPTCAgICAgIlBlbmNlcmUgefZuZXRpY2lzaW5pbiBwZW5jZXJlbGVyaSB59m5ldG1lc2luZSBpemluIHZlciIsSURDX0VOQUJMRV9NQU5BR0VELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNDQsMjMwLDgKICAgIENPTlRST0wgICAgICJTYW5hbCBtYXNh/HN0/CBrdWxsYW4iLElEQ19FTkFCTEVfREVTS1RPUCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsNTYsMjMwLDgKICAgIExURVhUICAgICAgICJNYXNh/HN0/CBi/Hn8a2z88Pw6IixJRENfREVTS1RPUF9TSVpFLDE1LDcwLDQ0LDgsV1NfRElTQUJMRUQKICAgIExURVhUICAgICAgICJYIixJRENfREVTS1RPUF9CWSwxMDksNzAsOCw4LFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICBJRENfREVTS1RPUF9XSURUSCw2NCw2OCw0MCwxMixFU19BVVRPSFNDUk9MTCB8IEVTX05VTUJFUiB8IFdTX0RJU0FCTEVECiAgICBFRElUVEVYVCAgICBJRENfREVTS1RPUF9IRUlHSFQsMTE3LDY4LDQwLDEyLEVTX0FVVE9IU0NST0xMIHwgRVNfTlVNQkVSIHwgV1NfRElTQUJMRUQKCiAgICBHUk9VUEJPWCAgICAiIERpcmVjdDNEICIsSURDX1NUQVRJQyw4LDk1LDI0NCw0OQogICAgTFRFWFQgICAgICAgIlZlcnRleCBTaGFkZXIgRGVzdGXwaTogIixJRENfU1RBVElDLDE1LDExMCw4MCwzMgogICAgQ09NQk9CT1ggICAgSURDX0QzRF9WU0hBREVSX01PREUsMTAwLDEwOCwxNDUsNzAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBDT05UUk9MICAgICAiUGl4ZWwgU2hhZGVyJ2EgaXppbiB2ZXIgKGRvbmFu/W0gZGVzdGVrbGl5b3JzYSkiLElEQ19EM0RfUFNIQURFUl9NT0RFLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTUsMTI2LDIzMCwxMAoKICAgIEdST1VQQk9YICAgICIgU2NyZWVuICZSZXNvbHV0aW9uICIsSURDX1NUQVRJQyw4LDE1MSwyNDQsOTMKICAgIENPTlRST0wgICAgICIiLCBJRENfUkVTX1RSQUNLQkFSLCAibXNjdGxzX3RyYWNrYmFyMzIiLFdTX1RBQlNUT1AsMTIsMTYxLDE4NywxNQogICAgRURJVFRFWFQgICAgSURDX1JFU19EUElFRElULDIwNCwxNjEsMjMsMTMsRVNfTlVNQkVSfFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICJkcGkiLElEQ19TVEFUSUMsMjM1LDE2MywxMCw4CiAgICBMVEVYVCAgICAgICAiVGhpcyBpcyBhIHNhbXBsZSB0ZXh0IHVzaW5nIDEwIHBvaW50IFRhaG9tYSIsSURDX1JFU19GT05UX1BSRVZJRVcsMTUsMTgxLDIzMCw1NQpFTkQKCklERF9ETExDRkcgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIERMTCDWbmNlbGlrbGVyaSAiLElEQ19TVEFUSUMsOCw0LDI0NCwyNDAKICAgIExURVhUICAgICAgICAgICAiRGV2aW5nZW4gQmHwbP0gS2l0YXBs/WtsYXL9biBoZXIgYmlyaSB5ZXJsZf5payAoV2luZSBpbGUgZ2VsZW4pIHZleWEgZG/wYWwgKFdpbmRvd3MndGFuIGFs/W5t/f4gdmV5YSB1eWd1bGFtYSB0YXJhZv1uZGFuIHNh8Gxhbm39/ikgb2xhcmFrIGJlbGlydGlsZWJpbGlyLiIKICAgICAgICAgICAgICAgICAgICAsSURDX1NUQVRJQywxNiwxNiwyMjAsMzIKICAgIExURVhUICAgICAgICAgICAiS2l0YXBs/WsgaedpbiB5ZW5pIPZuY2VsaWs6IixJRENfU1RBVElDLDE2LDU4LDEwMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RMTENPTUJPLDE2LDY4LDE0MCwxNCxDQlNfRFJPUERPV04gfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUCB8IENCU19TT1JUIHwgQ0JTX0xPV0VSQ0FTRQogICAgUFVTSEJVVFRPTiAgICAgICImRWtsZSIsSURDX0RMTFNfQURERExMLCAxNjQsNjgsODIsMTMsQlNfREVGUFVTSEJVVFRPTiAKICAgIExURVhUICAgICAgICAgICAiVmFyIG9sYW4g9m5jZWxpa2xlcjoiLElEQ19TVEFUSUMsMTYsODYsMTAwLDgKICAgIExJU1RCT1ggICAgICAgICBJRENfRExMU19MSVNULDE2LDk2LDE0MCwxNDAsV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX1ZTQ1JPTEwKICAgIFBVU0hCVVRUT04gICAgICAiJkT8emVubGUiLElEQ19ETExTX0VESVRETEwsMTY0LDk2LDgyLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZTaWwiLElEQ19ETExTX1JFTU9WRURMTCwxNjQsMTE0LDgyLDE0IApFTkQKCklERF9MT0FET1JERVIgRElBTE9HIERJU0NBUkRBQkxFIDgwLCA5MCwgMTI1LCA5MgpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAi1m5jZWxpayBE/HplbmxlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBZ/GtsZW1lIFP9cmFz/SAiLElEQ19TVEFUSUMsOCw0LDExMCw2NgogICAgQ09OVFJPTCAgICAgICAgICImWWVybGX+aWsgKFdpbmUpIixJRENfUkFEX0JVSUxUSU4sIkJ1dHRvbiIsIEJTX0FVVE9SQURJT0JVVFRPTiB8IFdTX0dST1VQLDE2LDE0LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICImRG/wYWwgKFdpbmRvd3MpIixJRENfUkFEX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDI0LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICLWbmNlIFllciZsZf5payBzb25yYSBEb/BhbCIsSURDX1JBRF9CVUlMVElOX05BVElWRSwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDM0LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICLWbmNlIEQmb/BhbCBzb25yYSBZZXJsZf5payIsSURDX1JBRF9OQVRJVkVfQlVJTFRJTiwiQnV0dG9uIiwgQlNfQVVUT1JBRElPQlVUVE9OLDE2LDQ0LDEwMCwxMAogICAgQ09OVFJPTCAgICAgICAgICImRXRraXNpemxl/nRpciIsSURDX1JBRF9ESVNBQkxFLCJCdXR0b24iLCBCU19BVVRPUkFESU9CVVRUT04sMTYsNTQsMTAwLDEwCiAgICBERUZQVVNIQlVUVE9OICAgIlRhbWFtIixJRE9LLDgsNzQsNTMsMTQsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAgICAi3XB0YWwiLElEQ0FOQ0VMLDY0LDc0LDUzLDE0LFdTX0dST1VQCkVORAoKSUREX0RSSVZFQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBT/HL8Y/wgRf5sZf50aXJtZXNpICIsSURDX1NUQVRJQyw4LDQsMjQ0LDI0MAogICAgTFRFWFQgICAgICAgICAgICJGYWlsZWQgdG8gY29ubmVjdCB0byB0aGUgbW91bnQgbWFuYWdlciwgdGhlIGRyaXZlIGNvbmZpZ3VyYXRpb24gY2Fubm90IGJlIGVkaXRlZC4iLCBJRENfU1RBVElDX01PVU5UTUdSX0VSUk9SLCAxNSwzMCwyMjAsNzYKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX0RSSVZFUywiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8IExWU19BVVRPQVJSQU5HRSB8IExWU19BTElHTkxFRlQgfAogICAgICAgICAgICAgICAgICAgIExWU19TSU5HTEVTRUwgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLCAxNSwxOCwyMzIsNzYKICAgIFBVU0hCVVRUT04gICAgICAiJkVrbGUuLi4iLElEQ19CVVRUT05fQURELDE1LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIiZLYWxk/XIiLElEQ19CVVRUT05fUkVNT1ZFLDU2LDk4LDM3LDE0CiAgICBQVVNIQlVUVE9OICAgICAgIk90b21hdGlrICZBbGf9bGEuLi4iLElEQ19CVVRUT05fQVVUT0RFVEVDVCwxODYsOTgsNjAsMTQKCiAgICAvKiBlZGl0aW5nIGRyaXZlIGRldGFpbHMgKi8KICAgIExURVhUICAgICAgICAgICAiJllvbDoiLElEQ19TVEFUSUNfUEFUSCwxNSwxMjMsMjAsOQogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX1BBVEgsNDEsMTIwLDE2MCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIFBVU0hCVVRUT04gICAgICAiJkf2emF0Li4uIixJRENfQlVUVE9OX0JST1dTRV9QQVRILDIwNiwxMjAsNDAsMTMKICAgIAogICAgTFRFWFQgICAgICAgICAgICImVPxyOiIsSURDX1NUQVRJQ19UWVBFLDE1LDEzOCwyMSwxMAogICAgQ09NQk9CT1ggICAgICAgIElEQ19DT01CT19UWVBFLDQxLDEzNSw3Nyw2MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIAogICAgTFRFWFQgICAgICAgICAgICJFdGlrZXQgdmUgc2VyaSBubyIsSURDX0xBQkVMU0VSSUFMX1NUQVRJQywxNSwxNTUsOTUsMTAKICAgIAogICAgUFVTSEJVVFRPTiAgICAgICJHZWxp/m1p/iAmU2XnZW5la2xlciIsSURDX0JVVFRPTl9TSE9XX0hJREVfQURWQU5DRUQsMTg2LDEzNiw2MCwxMwogICAgQ09OVFJPTCAgICAgICAgICJBeWf9dHRhbiBPdG9tYXRpayBBJmxn/WxhOiIsSURDX1JBRElPX0FVVE9ERVRFQ1QsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT1JBRElPQlVUVE9OLDE1LDE2Niw5MywxMAogICAgRURJVFRFWFQgICAgICAgIElEQ19FRElUX0RFVklDRSwyNywxNzYsMTc0LDEzLEVTX0FVVE9IU0NST0xMCiAgICBQVVNIQlVUVE9OICAgICAgIkf2JnphdC4uLiIsSURDX0JVVFRPTl9CUk9XU0VfREVWSUNFLDIwNiwxNzYsNDAsMTMKICAgIENPTlRST0wgICAgICAgICAiJkVsbGUgQXRhOiIsSURDX1JBRElPX0FTU0lHTiwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPUkFESU9CVVRUT04sMTUsMTk1LDY5LDEwCgogICAgTFRFWFQgICAgICAgICAgICImRXRpa2V0OiIsSURDX1NUQVRJQ19MQUJFTCwzMywyMDgsMjksMTIKICAgIEVESVRURVhUICAgICAgICBJRENfRURJVF9MQUJFTCw2MywyMDUsNzgsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIlMmZXJpIE5vOiIsSURDX1NUQVRJQ19TRVJJQUwsMzMsMjI1LDI5LDEyCiAgICBFRElUVEVYVCAgICAgICAgSURDX0VESVRfU0VSSUFMLDYzLDIyMSw3OCwxMyxFU19BVVRPSFNDUk9MTCB8IFdTX1RBQlNUT1AKCiAgICBDT05UUk9MICAgICAgICAgIk5va3RheWxhIGJh/mxheWFuIGRvc3lhbGFy/SBn9nN0ZXIiLElEQ19TSE9XX0RPVF9GSUxFUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDgsMjYwLDIzMCw4CkVORAoKSUREX0FVRElPQ0ZHIERJQUxPRyBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCAyNTAKU1RZTEUgV1NfQ0hJTEQgfCBXU19ESVNBQkxFRApGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBHUk9VUEJPWCAgICAgICAgIiBT/HL8Y/wgU2XnaW1pICIsSURDX1NUQVRJQyw4LDQsMjQ0LDIxMAogICAgTFRFWFQgICAgICAgICAgICLdc3RlZGnwaW5peiBz/HL8Y/xu/G4ga3V0dXN1bnUgaf5hcmV0bGV5ZXJlayBiaXIgc2VzIHP8cvxj/HP8IHNl52luLiBIaediaXIgc/xy/GP8IHNl521leWVyZWsgc2VzaSBldGtpc2l6bGX+dGlyZWJpbGlyc2luaXouIEJpcmRlbiBmYXpsYSBz/HL8Y/wgc2XnaW1pIPZuZXJpbG1lei4g3HplcmluZSBzYfAgdP1rbGF5YXJhayBiaXIgc/xy/GP8efwgeWFw/WxhbmT9cv1uLiIsSURDX1NUQVRJQywxNSwyMCwyMjcsMzAKICAgIENPTlRST0wgICAgICAgICAiQXln/XRsYXIiLElEQ19BVURJT19UUkVFLCJTeXNUcmVlVmlldzMyIixXU19CT1JERVIgfCBXU19UQUJTVE9QLDE1LDUwLDE0MCwxNTUKICAgIFBVU0hCVVRUT04gICAgICAiJlRlc3QgU291bmQiLElEQ19BVURJT19URVNULDE3MCw1MCw1OSwxNAogICAgUFVTSEJVVFRPTgkgICAgIkRlbmV0aW0gTWFzYXP9IixJRENfQVVESU9fQ09OVFJPTF9QQU5FTCwxNzAsNzAsNTksMTQKICAgIEdST1VQQk9YICAgICAgICAiIERpcmVjdFNvdW5kICIsSURDX1NUQVRJQyw4LDIyMCwyNDQsNDUKICAgIExURVhUICAgICAgICAgICAiRG9uYW79bSBI/XpsYW5k/XJtYXP9OiAiLElEQ19TVEFUSUMsMTUsMjMwLDkwLDEwCiAgICBDT01CT0JPWAkgICAgSURDX0RTT1VORF9IV19BQ0NFTCwxMDAsMjI4LDE1MCw3MCxDQlNfRFJPUERPV05MSVNUIHwgV1NfVlNDUk9MTCB8IFdTX1RBQlNUT1AKICAgIExURVhUICAgICAgICAgICAi1m50YW79bWz9INZybmVrbGVtZSBI/Xr9OiIsSURDX1NUQVRJQywxNSwyNDcsNzAsOAogICAgQ09NQk9CT1ggICAgICAgIElEQ19EU09VTkRfUkFURVMsOTAsMjQ1LDQyLDc2LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICLWcm5layBCYf79bmEgQml0IFNhef1z/ToiLElEQ19TVEFUSUMsMTM3LDI0Nyw4MCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX0RTT1VORF9CSVRTLDIyMCwyNDUsMzAsNTYsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCkVORAoKSUREX0RFU0tUT1BfSU5URUdSQVRJT04gRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjAsIDI1MApTVFlMRSBXU19DSElMRCB8IFdTX0RJU0FCTEVECkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIEdST1VQQk9YICAgICAgICAiIEf2cvxu/G0gIixJRENfU1RBVElDLDgsNCwyNDQsMTA2CiAgICBMVEVYVCAgICAgICAgICAgIlRlbWE6IixJRENfU1RBVElDLDE1LDE2LDEzMCw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX1RIRU1FQ09NQk8sMTUsMjQsMTMwLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAgICAgICJUZW1hIGt1ci4uLiIsSURDX1RIRU1FX0lOU1RBTEwsMTUyLDIzLDkzLDE0CiAgICBMVEVYVCAgICAgICAgICAgIlJlbms6IixJRENfVEhFTUVfQ09MT1JURVhULDE1LDQwLDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1RIRU1FX0NPTE9SQ09NQk8sMTUsNDgsMTEyLDE0LENCU19EUk9QRE9XTkxJU1QgfCBXU19WU0NST0xMIHwgV1NfVEFCU1RPUAogICAgTFRFWFQgICAgICAgICAgICJCb3l1dDoiLElEQ19USEVNRV9TSVpFVEVYVCwxMzUsNDAsMTEwLDgKICAgIENPTUJPQk9YICAgICAgICBJRENfVEhFTUVfU0laRUNPTUJPLDEzNSw0OCwxMTAsMTQsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QCiAgICBMVEVYVCAgICAgICAgICAgIkl0ZW06IixJRENfU1RBVElDLDE1LDY0LDExMiw4CiAgICBDT01CT0JPWCAgICAgICAgSURDX1NZU1BBUkFNX0NPTUJPLDE1LDc0LDExMiwxMjAsQ0JTX0RST1BET1dOTElTVCB8IFdTX1ZTQ1JPTEwgfCBXU19UQUJTVE9QIHwgQ0JTX1NPUlQKICAgIExURVhUICAgICAgICAgICAiQ29sb3I6IixJRENfU1lTUEFSQU1fQ09MT1JfVEVYVCwxMzUsNjQsMjUsOCxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICIiLElEQ19TWVNQQVJBTV9DT0xPUiwxMzUsNzQsMjUsMTMsV1NfRElTQUJMRUQgfCBCU19PV05FUkRSQVcKICAgIExURVhUICAgICAgICAgICAiU2l6ZToiLElEQ19TWVNQQVJBTV9TSVpFX1RFWFQsMTY2LDY0LDMwLDgsV1NfRElTQUJMRUQKICAgIEVESVRURVhUICAgICAgICBJRENfU1lTUEFSQU1fU0laRSwxNjYsNzQsMjMsMTMsRVNfQVVUT0hTQ1JPTEwgfCBXU19UQUJTVE9QIHwgV1NfRElTQUJMRUQKICAgIENPTlRST0wgICAgICAgICAiIixJRENfU1lTUEFSQU1fU0laRV9VRCxVUERPV05fQ0xBU1MsVURTX1NFVEJVRERZSU5UIHwgV1NfRElTQUJMRUQsMTg3LDc0LDE1LDEzCiAgICBQVVNIQlVUVE9OICAgICAgIkZvbnQiLElEQ19TWVNQQVJBTV9GT05ULDIwOCw3NCwzNywxMyxXU19ESVNBQkxFRAogICAgR1JPVVBCT1ggICAgICAgICIg1nplbCBLbGFz9nJsZXIgIixJRENfU1RBVElDLDgsMTE0LDI0NCwxMDAKICAgIENPTlRST0wgICAgICAgICAiTGlzdHZpZXciLElEQ19MSVNUX1NGUEFUSFMsIlN5c0xpc3RWaWV3MzIiLExWU19SRVBPUlQgfCBMVlNfQVVUT0FSUkFOR0UgfCBMVlNfQUxJR05MRUZUIHwKICAgICAgICAgICAgICAgICAgICAgTFZTX1NJTkdMRVNFTCB8IFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AsIDE1LDEyNiwyMzAsNjQKICAgIENPTlRST0wgICAgICAgICAiSGVkZWYgZGl6aW46IixJRENfTElOS19TRlBBVEgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQsMTUsMTk1LDUwLDEzCiAgICBFRElUVEVYVCAgICAgICAgIElEQ19FRElUX1NGUEFUSCw2NSwxOTUsMTQ1LDEzLEVTX0FVVE9IU0NST0xMfFdTX1RBQlNUT1B8V1NfRElTQUJMRUQKICAgIFBVU0hCVVRUT04gICAgICAiR/Z6YXQiLElEQ19CUk9XU0VfU0ZQQVRILDIxNSwxOTUsMzAsMTMsV1NfRElTQUJMRUQKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX1RBQl9BUFBMSUNBVElPTlMgICAgIlV5Z3VsYW1hbGFyIgogICAgSURTX1RBQl9ETExTICAgICAgICAgICAgIktpdGFwbP1rbGFyIgogICAgSURTX1RBQl9EUklWRVMgICAgICAgICAgIlP8cvxj/GxlciIKICAgIElEU19DSE9PU0VfUEFUSCAgICAgICAgICJM/HRmZW4gaGFyaXRhbGFuYWNhayB1bml4IGRpemluaW5pIHNl52luLiIKICAgIElEU19ISURFX0FEVkFOQ0VEICAgICAgICJUZW1lbCBBeWFybGFyIgogICAgSURTX1NIT1dfQURWQU5DRUQgICAgICAgIkdlbGn+bWn+IEF5YXJsYXIiCiAgICBJRFNfTk9USEVNRSAgICAgICAgICAgICAiKFRlbWEgWW9rKSIKICAgIElEU19UQUJfR1JBUEhJQ1MgICAgICAgICJHcmFmaWsiCiAgICBJRFNfVEFCX0RFU0tUT1BfSU5URUdSQVRJT04gIk1hc2H8c3T8IEVudGVncmFzeW9udSIKICAgIElEU19UQUJfQVVESU8gICAgICAgICAgICJTZXMiCiAgICBJRFNfVEFCX0FCT1VUICAgICAgICAgICAiSGFra/1uZGEiCiAgICBJRFNfV0lORUNGR19USVRMRSAgICAgICAiV2luZSB5YXD9bGFuZP1ybWFz/SIKICAgIElEU19XSU5FQ0ZHX1RJVExFX0FQUCAgICIlcyBp52luIFdpbmUgeWFw/WxhbmT9cm1hc/0iCiAgICBJRFNfVEhFTUVGSUxFICAgICAgICAgICAiVGVtYSBkb3N5YWxhcv0gKCoubXNzdHlsZXM7ICoudGhlbWUpIgogICAgSURTX1RIRU1FRklMRV9TRUxFQ1QgICAgIlRlbWEgZG9zeWFz/SBzZedpbiIKICAgIElEU19BVURJT19NSVNTSU5HICAgICAgICJTaXN0ZW0ga2F5ZP1uZGEgYmVsaXJsZW5taf4gYmlyIHNlcyBz/HL8Y/xz/CB5b2suXG5cbtZuZXJpbGVuIGJpciBz/HL8Y/wgc2l6aW4gaedpbiBzZedpbGRpLlxuQnUgc/xy/GP8efwga3VsbGFuYWJpbGlyIHZleWEgdmFyc2EgYmH+a2EgYmlyIHP8cvxj/Hn8IHNl52ViaWxpcnNpbml6LlxuXG5TZedpbWluIGV0a2lsaSBvbGFiaWxtZXNpIGnnaW4gVXlndWxhJ3n9IHT9a2xhbWFs/XP9bv16LiIKICAgIElEU19TSEVMTF9GT0xERVIgICAgICAgICJLbGFz9nIiCiAgICBJRFNfTElOS1NfVE8gICAgICAgICAgICAiSGVkZWYgRGl6aW4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19ETExfV0FSTklORyAgICAgICAgICJCdSBraXRhcGz98P1uIHn8a2xlbWUgc/1yYXP9bv1uIGRl8Gn+dGlyaWxtZXNpIPZuZXJpbG1lei5cbkJ1bnUgeWFwbWFrIGlzdGVkafBpbml6ZGVuIGVtaW4gbWlzaW5pej8iCiAgICBJRFNfRExMX1dBUk5JTkdfQ0FQVElPTiAiVXlhcv06IHNpc3RlbSBraXRhcGz98P0iCiAgICBJRFNfRExMX05BVElWRSAgICAgICAgICAiZG/wYWwiCiAgICBJRFNfRExMX0JVSUxUSU4gICAgICAgICAieWVybGX+aWsiCiAgICBJRFNfRExMX05BVElWRV9CVUlMVElOICAiZG/wYWwsIHllcmxl/mlrIgogICAgSURTX0RMTF9CVUlMVElOX05BVElWRSAgInllcmxl/mlrLCBkb/BhbCIKICAgIElEU19ETExfRElTQUJMRUQgICAgICAgICJkZXZyZSBk/f79IgogICAgSURTX0RFRkFVTFRfU0VUVElOR1MgICAgItZudGFu/W1s/SBBeWFybGFyIgogICAgSURTX0VYRUNVVEFCTEVfRklMVEVSICAgIldpbmUgUHJvZ3JhbWxhcv0gKCouZXhlLCouZXhlLnNvKVwwKi5leGU7Ki5leGUuc29cMCIKICAgIElEU19VU0VfR0xPQkFMX1NFVFRJTkdTICJHZW5lbCBheWFybGFy/SBrdWxsYW4iCiAgICBJRFNfU0VMRUNUX0VYRUNVVEFCTEUgICAix2Fs/f50/XL9bGFiaWxpciBiaXIgZG9zeWEgc2XnaW4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19TSEFERVJfTU9ERV9IQVJEV0FSRSAgICAiRG9uYW79bSIKICAgIElEU19TSEFERVJfTU9ERV9OT05FICAgICAgICAiSGnnYmlyaSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0RSSVZFX1VOS05PV04gICAgICAgICAgICJPdG9tYXRpayBBbGf9bGEiCiAgICBJRFNfRFJJVkVfRklYRUQgICAgICAgICAgICAgIlllcmVsIHNhYml0IGRpc2siCiAgICBJRFNfRFJJVkVfUkVNT1RFICAgICAgICAgICAgIkHwIHBheWxh/v1t/SIKICAgIElEU19EUklWRV9SRU1PVkFCTEUgICAgICAgICAiRGlza2V0IHP8cvxj/CIKICAgIElEU19EUklWRV9DRFJPTSAgICAgICAgICAgICAiQ0QtUk9NIgogICAgSURTX0RSSVZFX0xFVFRFUlNfRVhDRUVERUQgICJEYWhhIGZhemxhIHP8cvxj/CBla2xleWVtZXpzaW5pei5cblxuSGVyIHP8cvxj/G78biBBLVogYXJhbP3w/W5kYSBiaXIgaGFyZmkgb2xtYWz9ZP1yLiBEb2xhef1z/XlsYSAyNidkYW4gZmF6bGEgdGFu/W1sYXlhbWF6c/1u/XouIgogICAgSURTX1NZU1RFTV9EUklWRV9MQUJFTCAgICAgICJTaXN0ZW0gc/xy/GP8c/wiCiAgICBJRFNfQ09ORklSTV9ERUxFVEVfQyAgICAgICAgIkMgc/xy/GP8c/xu/CBzaWxtZWsgaXN0ZWRp8GluaXpkZW4gZW1pbiBtaXNpbml6P1xuXG7Hb/B1IFdpbmRvd3MgdXlndWxhbWFz/SBDIHP8cvxj/HP8bvxuIHZhciBvbG1hc/1u/SBiZWtsZXIgdmUgeW9rc2EgaXN0ZW5tZXllbiBiaXIg/mVraWxkZSBzb25sYW79ci4gRfBlciBkZXZhbSBlZGVyc2VuaXosIGRhaGEgc29ucmEgeWVuaWRlbiBvbHX+dHVybWF5/SB1bnV0bWF5/W4hIgogICAgSURTX0NPTF9EUklWRUxFVFRFUiAgICAgICAgICJIYXJmIgogICAgSURTX0NPTF9EUklWRU1BUFBJTkcgICAgICAgICJT/HL8Y/wgRf5sZW1lIgogICAgSURTX05PX0RSSVZFX0MgICAgICAgICAgICAgICJDIHP8cvxj/G78eiB5b2suIEJ1IGJla2xlbmVuIGJpciBkdXJ1bSBkZfBpbC5cblxuQmlyIHRhbmUgb2x1/nR1cm1hayBp52luIFP8cvxj/GxlciBzZWttZXNpbmRlbiBFa2xlJ3lpIHT9a2xhbWF5/SB1bnV0bWF5/W4hXG4iCkVORAoKU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKQkVHSU4KICAgIElEU19BQ0NFTF9GVUxMICAgICAgICAgICAgICAiVGFtIgogICAgSURTX0FDQ0VMX1NUQU5EQVJEICAgICAgICAgICJTdGFuZGFydCIKICAgIElEU19BQ0NFTF9CQVNJQyAgICAgICAgICAgICAiVGVtZWwiCiAgICBJRFNfQUNDRUxfRU1VTEFUSU9OICAgICAgICAgIlRha2xpdCIKICAgIElEU19EUklWRVJfQUxTQSAgICAgICAgICAgICAiQUxTQSBT/HL8Y/xz/CIKICAgIElEU19EUklWRVJfRVNPVU5EICAgICAgICAgICAiRXNvdW5EIFP8cvxj/HP8IgogICAgSURTX0RSSVZFUl9PU1MgICAgICAgICAgICAgICJPU1MgU/xy/GP8c/wiCiAgICBJRFNfRFJJVkVSX0pBQ0sgICAgICAgICAgICAgIkpBQ0sgU/xy/GP8c/wiCiAgICBJRFNfRFJJVkVSX05BUyAgICAgICAgICAgICAgIk5BUyBT/HL8Y/xz/CIKICAgIElEU19EUklWRVJfQVVESU9JTyAgICAgICAgICAiQXVkaW8gSU8gKFNvbGFyaXMpIFP8cvxj/HP8IgogICAgSURTX0RSSVZFUl9DT1JFQVVESU8gICAgICAgICJDb3JlQXVkaW8gU/xy/GP8c/wiCiAgICBJRFNfT1BFTl9EUklWRVJfRVJST1IgICAgICAgIiVzIGHn/WxhbWFk/SEiCiAgICBJRFNfU09VTkREUklWRVJTICAgICAgICAgICAgIlNlcyBT/HL8Y/xsZXJpIgogICAgSURTX0RFVklDRVNfV0FWRU9VVCAgICAgICAgICJEYWxnYSDH/Wv9/iBBeWf9dGxhcv0iCiAgICBJRFNfREVWSUNFU19XQVZFSU4gICAgICAgICAgIkRhbGdhIEdpcmn+IEF5Z/10bGFy/SIKICAgIElEU19ERVZJQ0VTX01JRElPVVQgICAgICAgICAiTUlESSDH/Wv9/iBBeWf9dGxhcv0iCiAgICBJRFNfREVWSUNFU19NSURJSU4gICAgICAgICAgIk1JREkgR2lyaf4gQXln/XRsYXL9IgogICAgSURTX0RFVklDRVNfQVVYICAgICAgICAgICAgICJBdXggQXln/XRsYXL9IgogICAgSURTX0RFVklDRVNfTUlYRVIgICAgICAgICAgICJNaXhlciBBeWf9dGxhcv0iCiAgICBJRFNfVU5BVkFJTEFCTEVfRFJJVkVSICAgICAgIlNpc3RlbSBrYXlk/W5kYSBrdWxsYW79bGFiaWxpciBvbG1heWFuIGJpciBz/HL8Y/wgYnVsdW5kdSFcblxuXCIlc1wiIGdpcmn+aSBzaXN0ZW0ga2F5ZP1uZGFuIHNpbGluc2luIG1pPyIKICAgIElEU19XQVJOSU5HICAgICAgICAgICAgICAgICAiVXlhcv0iCkVORAo=