VQ0NCgAAAADJuIxjPacBAOMAAAAAAAAAAAAAAAAAAAAARwAAAEAAAABzoggAAGQAWgBkAWQCbAFtAloCAQBkAWQDbANaA2QBZANsBFoEZAFkA2wFWgVkAWQDbAZaBmQBZANsB1oHZAFkA2wIWghkAWQDbAlaCWQBZANsCloKZAFkA2wLWgtkAWQDbAxaDGQBZANsDVoNZAFkA2wOWg5kAWQDbA9aD2QBZANsEFoQZAFkA2wRWhFkAWQDbBJaEmQBZANsE1oUZAFkA2wVWhVkAWQDbBZaFmQBZANsF1oXZAFkA2wYWhhkAWQDbBlaGWQBZANsGloaZAFkA2wbWhtkAWQEbA5tHFocAQB6DGQBZANsHVodVwBuHgQAZR5rCpABcgYBAAEAAQBkAWQDbB9aHVkAbgJYAHoIZSABAFcAbhoEAGUhawqQAXIqAQABAAEAZSJaIFkAbgJYAGQBZAVsI20kWiQBAGQBZAZsJW0mWiZtJ1onbShaKAEAZAFkB2wEbSlaKQEAehxkAWQIbARtKloqbStaK20sWiwBAGQJWi1XAG4aBABlHmsKkAFyjgEAAQABAGQKWi1ZAG4CWABkAWQLbARtLlovAQBkAWQMbDBtMVoxbTJaMgEAehZkAWQDbDNtNFo1AQBlNWo2AQBXAG4aBABlHmsKkAFy3AEAAQABAGQDWjVZAG4CWABkDWQObDdtOFo4AQBkAWQPbCNtOVo5AQBkAWQQbCNtOlo6AQBlO2QRgwEBAGU7ZBKDAQEAZTtkE4MBAQBlO2QUgwEBAGU8Wj1kFWUDaj4EAAMAawCQAnJAZBZrAJACckxuBAEAbghlP2QXgwGCAWUkakCQAnJcZANaQWQDWkJkA1pDZANaRGQDWkVkA1pGZANaR2QDWkhkA1pJZANaSmQDWktkA1pMZANaTWQDWk5kA1pPZANaUGQDWlFkA1pSZANaU0cAZBhkGYQAZBllVIMDWlVkGmQbhABaVmkAWldkHGQdhABaWGQeZB+EAFpZZCBkIYQAWlpkImQjhABaW2QkZCWEAFpcZCZkJ4QAWl1kKGQphABaXmQqZCuEAAQAWl9aYGQsZC2EAFphZC5kL2QwZDFkMmQzZDRkNWQ2ZDdkOGQ5ZDpkO2Q8ZD1kPmQ/ZEBkQWRCZENkRGRFZEZkR2RIZElkSmRLZExkTWQZZE5kG2RPZFBkUWRSZFNkVGRVZFZkV2RYZFlkWmRbZFxkXWReZF9kYGRhZGJkY2RkZGVkZmRnZGhkaWRqZGtkbGRtZG5kb2RwZHFkcmdHWmJHAGRzZEmEAGRJZWODA1pkRwBkdGRKhABkSmVkgwNaZUcAZHVkdoQAZHZlZYMDWmZHAGR3ZEuEAGRLZWSDA1pnRwBkeGRMhABkTGVkgwNaaGkAWmlkeWpqZQNqPo4AWmtkelpsZHtabWQNWm5kAVpvZHxacGR9ZG2EAFpxZH5kMIQAWnJnAGYBZH9kgIQBWnNkgWSChABadGSDZISEAFp1ZQegdmSFoQFad2UHoHZkhqEBWnhldVp5ZIdkUoQAWnpkiGQvhABae2V7WnxkiWQxhABafWSKZDKEAFp+kAFkAGSLZDOEAVp/ZIxkNIQAWoBHAGSNZGCEAGRggwJagUcAZI5kYYQAZGFlgYMDWoJHAGSPZESEAGREgwJag0cAZJBkkYQAZJFlhIMDWoVHAGSSZEOEAGRDgwJahmWGWodHAGSTZE2EAGRNZT+DA1qIRwBklGRFhABkRYMCWolklWRChABaimSWZE+EAFqLZJdkUIQAWoxkmGRVhABajWSZZFaEAFqOZJpkV4QAWo+QAWQBZJtkWIQBWpBHAGScZGeEAGRngwJakWVxZZJlkYMCAQBHAGSdZGiEAGRoZZGDA1qTRwBknmRphABkaWWTgwNalGWUoJWhAAEARwBkn2RlhABkZWWRgwNalmWWgwBal0cAZKBkoYQAZKFlhIMDWphHAGSiZKOEAGSjZZiDA1qZRwBkpGRqhABkamWTgwNammVxZQpqm2WagwIBAEcAZKVkYoQAZGJlloMDWpxHAGSmZGOEAGRjZZSDA1qdRwBkp2RkhABkZGWagwNanmVYZKhpAGSpjQIBAGSqZGuEAFqfkAFkAmSrZD+EAVqgkAFkA2SsZK2EAVqhZZ9lCmqbZaGDAgEAkAFkBGSuZK+EAVqiZZ9lkmWigwIBAGSwZLGEAFqjkAFkBWSyZLOEAVqkZLRktYQAWqVHAGS2ZLeEAGS3gwJapmS4ZLmEAFqnZLpku4QAWqhkvGS9hABaqWS+ZL+EAFqqZZ9lDmqrZaSDAgEAZaxlNWTAgwKQBnKwZZ9lNWqtZaSDAgEAZVhkqGkAZMGNAgEAZVhkqGkAZMKNAgEAZMNkbIQAWq5kxGTFhABar2TGZMeEAFqwZMhkPIQAWrGQAWQGZMlkboQBWrJkymTLhABas2WuZQ5qq2WzgwIBAGWuZQpqm2WzgwIBAGWsZTVkwIMCkAdyLGWuZTVqrWWzgwIBAGTMZM2EAFq0Za5lkmW0gwIBAGTOZFqEAFq1ZM9k0IQAWrZpAGYBZNFk0oQBWrdk02TUhABauGTVZNaEAFq5ZNdk2IQAWrpk2WRThABau2UHoHZk2qEBarxavWUHoHZk22UHar5lB2q/QgChAmq8WsBHAGTcZEiEAGRIgwJawWTdZN6EAFrCZN9k4IQAWsNHAGThZEaEAGRGgwJaxEcAZOJk44QAZONlxIMDWsVHAGTkZOWEAGTlZcSDA1rGZcRlxWXGZOacA1rHZOdk6IQAWshHAGTpZOqEAGTqZcmDA1rKZOtkToQAWstHAGTsZEeEAGRHZTpqzGrNgwNazWTtZO6EAFrOZO9k8IQAWs9k8WRZhABa0GTyZPOEAFrRZPRkVIQAWtJk9WT2hABa02ULatRk92VVZAlk+I0DAQBk+WT6hABa1WXVZdaDAGYBZPtk/IQBgwFa12XVZP1k/oQAgwFa2EcAZP9kcIQAZHBl2YMDWtpkA1MAKAcBAABhWgIAAApQYWNrYWdlIHJlc291cmNlIEFQSQotLS0tLS0tLS0tLS0tLS0tLS0tLQoKQSByZXNvdXJjZSBpcyBhIGxvZ2ljYWwgZmlsZSBjb250YWluZWQgd2l0aGluIGEgcGFja2FnZSwgb3IgYSBsb2dpY2FsCnN1YmRpcmVjdG9yeSB0aGVyZW9mLiAgVGhlIHBhY2thZ2UgcmVzb3VyY2UgQVBJIGV4cGVjdHMgcmVzb3VyY2UgbmFtZXMKdG8gaGF2ZSB0aGVpciBwYXRoIHBhcnRzIHNlcGFyYXRlZCB3aXRoIGBgL2BgLCAqbm90KiB3aGF0ZXZlciB0aGUgbG9jYWwKcGF0aCBzZXBhcmF0b3IgaXMuICBEbyBub3QgdXNlIG9zLnBhdGggb3BlcmF0aW9ucyB0byBtYW5pcHVsYXRlIHJlc291cmNlCm5hbWVzIGJlaW5nIHBhc3NlZCBpbnRvIHRoZSBBUEkuCgpUaGUgcGFja2FnZSByZXNvdXJjZSBBUEkgaXMgZGVzaWduZWQgdG8gd29yayB3aXRoIG5vcm1hbCBmaWxlc3lzdGVtIHBhY2thZ2VzLAouZWdnIGZpbGVzLCBhbmQgdW5wYWNrZWQgLmVnZyBmaWxlcy4gIEl0IGNhbiBhbHNvIHdvcmsgaW4gYSBsaW1pdGVkIHdheSB3aXRoCi56aXAgZmlsZXMgYW5kIHdpdGggY3VzdG9tIFBFUCAzMDIgbG9hZGVycyB0aGF0IHN1cHBvcnQgdGhlIGBgZ2V0X2RhdGEoKWBgCm1ldGhvZC4K6QAAAAApAdoPYWJzb2x1dGVfaW1wb3J0TikB2gxnZXRfaW1wb3J0ZXIpAdoDc2l4KQPaBnVybGxpYtoDbWFw2gZmaWx0ZXIpAdoFdXRpbWUpA9oFbWtkaXLaBnJlbmFtZdoGdW5saW5rVEYpAdoEb3BlbikC2gVpc2RpctoFc3BsaXTpAQAAACkB2gpweTMxY29tcGF0KQHaB2FwcGRpcnMpAdoJcGFja2FnaW5neiZwa2dfcmVzb3VyY2VzLmV4dGVybi5wYWNrYWdpbmcudmVyc2lvbnopcGtnX3Jlc291cmNlcy5leHRlcm4ucGFja2FnaW5nLnNwZWNpZmllcnN6K3BrZ19yZXNvdXJjZXMuZXh0ZXJuLnBhY2thZ2luZy5yZXF1aXJlbWVudHN6JnBrZ19yZXNvdXJjZXMuZXh0ZXJuLnBhY2thZ2luZy5tYXJrZXJzKQLpAwAAAHIBAAAAKQJyEwAAAOkFAAAAeh9QeXRob24gMy41IG9yIGxhdGVyIGlzIHJlcXVpcmVkYwAAAAAAAAAAAAAAAAAAAAABAAAAQAAAAHMQAAAAZQBaAWQAWgJkAVoDZAJTACkD2g1QRVA0NDBXYXJuaW5nemEKICAgIFVzZWQgd2hlbiB0aGVyZSBpcyBhbiBpc3N1ZSB3aXRoIGEgdmVyc2lvbiBvciBzcGVjaWZpZXIgbm90IGNvbXBseWluZyB3aXRoCiAgICBQRVAgNDQwLgogICAgTqkE2ghfX25hbWVfX9oKX19tb2R1bGVfX9oMX19xdWFsbmFtZV9f2gdfX2RvY19fqQByGwAAAHIbAAAA+jovdG1wL3BpcC11bnBhY2tlZC13aGVlbC14NGM0Ym15Mi9wa2dfcmVzb3VyY2VzL19faW5pdF9fLnB5chUAAAB4AAAAcwIAAAAIAXIVAAAAYwEAAAAAAAAAAAAAAAEAAAAIAAAAQwAAAHM4AAAA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CiAgICBjdXJyZW50IHZlcnNpb24gb2YgdGhlIE9TLgoKICAgIElmIHRoaXMgY29uZGl0aW9uIG9jY3VycyBmb3IgYW55IG90aGVyIHBsYXRmb3JtIHdpdGggYSB2ZXJzaW9uIGluIGl0cwogICAgcGxhdGZvcm0gc3RyaW5ncywgdGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgZXh0ZW5kZWQgYWNjb3JkaW5nbHkuCiAgICBO2gZkYXJ3aW56DG1hY29zeC0lcy0lc9oBLukCAAAAchMAAAApCdoSZ2V0X2J1aWxkX3BsYXRmb3Jt2hJtYWNvc1ZlcnNpb25TdHJpbmfaBW1hdGNo2gNzeXPaCHBsYXRmb3Jt2gRqb2lu2gxfbWFjb3N4X3ZlcnPaBWdyb3Vw2gpWYWx1ZUVycm9yKQLaBHBsYXTaAW1yGwAAAHIbAAAAchwAAADaFmdldF9zdXBwb3J0ZWRfcGxhdGZvcm2xAAAAcxAAAAAADQYBCgESAQIBJgEOAgYBclIAAADaB3JlcXVpcmXaCnJ1bl9zY3JpcHTaDGdldF9wcm92aWRlctoQZ2V0X2Rpc3RyaWJ1dGlvbtoQbG9hZF9lbnRyeV9wb2ludNoNZ2V0X2VudHJ5X21hcNoOZ2V0X2VudHJ5X2luZm/aEWl0ZXJfZW50cnlfcG9pbnRz2g9yZXNvdXJjZV9zdHJpbmfaD3Jlc291cmNlX3N0cmVhbdoRcmVzb3VyY2VfZmlsZW5hbWXaEHJlc291cmNlX2xpc3RkaXLaD3Jlc291cmNlX2V4aXN0c9oOcmVzb3VyY2VfaXNkaXLaEWRlY2xhcmVfbmFtZXNwYWNl2gt3b3JraW5nX3NldNoXYWRkX2FjdGl2YXRpb25fbGlzdGVuZXLaEmZpbmRfZGlzdHJpYnV0aW9uc9oTc2V0X2V4dHJhY3Rpb25fcGF0aNoRY2xlYW51cF9yZXNvdXJjZXPaEWdldF9kZWZhdWx0X2NhY2hl2gtFbnZpcm9ubWVudNoKV29ya2luZ1NldNoPUmVzb3VyY2VNYW5hZ2Vy2gxEaXN0cmlidXRpb27aC1JlcXVpcmVtZW502gpFbnRyeVBvaW502g9SZXNvbHV0aW9uRXJyb3LaD1ZlcnNpb25Db25mbGljdNoURGlzdHJpYnV0aW9uTm90Rm91bmTaDFVua25vd25FeHRyYdoPRXh0cmFjdGlvbkVycm9y2hJwYXJzZV9yZXF1aXJlbWVudHPaCXNhZmVfbmFtZdoMc2FmZV92ZXJzaW9u2gxnZXRfcGxhdGZvcm3aFGNvbXBhdGlibGVfcGxhdGZvcm1z2gt5aWVsZF9saW5lc9oOc3BsaXRfc2VjdGlvbnPaCnNhZmVfZXh0cmHaC3RvX2ZpbGVuYW1l2g5pbnZhbGlkX21hcmtlctoPZXZhbHVhdGVfbWFya2Vy2hBlbnN1cmVfZGlyZWN0b3J52g5ub3JtYWxpemVfcGF0aNoIRUdHX0RJU1TaC0JJTkFSWV9ESVNU2gtTT1VSQ0VfRElTVNoNQ0hFQ0tPVVRfRElTVNoMREVWRUxPUF9ESVNU2hFJTWV0YWRhdGFQcm92aWRlctoRSVJlc291cmNlUHJvdmlkZXLaDEZpbGVNZXRhZGF0YdoMUGF0aE1ldGFkYXRh2gtFZ2dNZXRhZGF0YdoNRW1wdHlQcm92aWRlctoOZW1wdHlfcHJvdmlkZXLaDE51bGxQcm92aWRlctoLRWdnUHJvdmlkZXLaD0RlZmF1bHRQcm92aWRlctoLWmlwUHJvdmlkZXLaD3JlZ2lzdGVyX2ZpbmRlctoacmVnaXN0ZXJfbmFtZXNwYWNlX2hhbmRsZXLaFHJlZ2lzdGVyX2xvYWRlcl90eXBl2hhmaXh1cF9uYW1lc3BhY2VfcGFja2FnZXNyAwAAANoeUGtnUmVzb3VyY2VzRGVwcmVjYXRpb25XYXJuaW5n2ghydW5fbWFpbtoWQXZhaWxhYmxlRGlzdHJpYnV0aW9uc2MAAAAAAAAAAAAAAAAAAAAAAgAAAEAAAABzGAAAAGUAWgFkAFoCZAFaA2QCZAOEAFoEZARTACkFcm4AAAB6LkFic3RyYWN0IGJhc2UgZm9yIGRlcGVuZGVuY3kgcmVzb2x1dGlvbiBlcnJvcnNjAQAAAAAAAAAAAAAAAQAAAAMAAABDAAAAcxIAAAB8AGoAagF0AnwAagODARcAUwByHQAAACkE2glfX2NsYXNzX19yFwAAANoEcmVwcnJBAAAAqQHaBHNlbGZyGwAAAHIbAAAAchwAAADaCF9fcmVwcl9f/gAAAHMCAAAAAAF6GFJlc29sdXRpb25FcnJvci5fX3JlcHJfX04pBXIXAAAAchgAAABy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dXBwbGllZCwgc2hvdWxkIGJlIGFuIGBgRW52aXJvbm1lbnRgYCBpbnN0YW5jZS4gIElmCiAgICAgICAgbm90IHN1cHBsaWVkLCBpdCBkZWZhdWx0cyB0byBhbGwgZGlzdHJpYnV0aW9ucyBhdmFpbGFibGUgd2l0aGluIGFueQogICAgICAgIGVudHJ5IG9yIGRpc3RyaWJ1dGlvbiBpbiB0aGUgd29ya2luZyBzZXQuICBgaW5zdGFsbGVyYCwgaWYgc3VwcGxpZWQsCiAgICAgICAgd2lsbCBiZSBpbnZva2VkIHdpdGggZWFjaCByZXF1aXJlbWVudCB0aGF0IGNhbm5vdCBiZSBtZXQgYnkgYW4KICAgICAgICBhbHJlYWR5LWluc3RhbGxlZCBkaXN0cmlidXRpb247IGl0IHNob3VsZCByZXR1cm4gYSBgYERpc3RyaWJ1dGlvbmBgIG9yCiAgICAgICAgYGBOb25lYGAuCgogICAgICAgIFVubGVzcyBgcmVwbGFjZV9jb25mbGljdGluZz1UcnVlYCwgcmFpc2VzIGEgVmVyc2lvbkNvbmZsaWN0IGV4Y2VwdGlvbgogICAgICAgIGlmCiAgICAgICAgYW55IHJlcXVpcmVtZW50cyBhcmUgZm91bmQgb24gdGhlIHBhdGggdGhhdCBoYXZlIHRoZSBjb3JyZWN0IG5hbWUgYnV0CiAgICAgICAgdGhlIHdyb25nIHZlcnNpb24uICBPdGhlcndpc2UsIGlmIGFuIGBpbnN0YWxsZXJgIGlzIHN1cHBsaWVkIGl0IHdpbGwgYmUKICAgICAgICBpbnZva2VkIHRvIG9idGFpbiB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIHRoZSByZXF1aXJlbWVudCBhbmQgYWN0aXZhdGUKICAgICAgICBpdC4KCiAgICAgICAgYGV4dHJhc2AgaXMgYSBsaXN0IG9mIHRoZSBleHRyYXMgdG8gYmUgdXNlZCB3aXRoIHRoZXNlIHJlcXVpcmVtZW50cy4KICAgICAgICBUaGlzIGlzIGltcG9ydGFudCBiZWNhdXNlIGV4dHJhIHJlcXVpcmVtZW50cyBtYXkgbG9vayBsaWtlIGBteV9yZXE7CiAgICAgICAgZXh0cmEgPSAibXlfZXh0cmEiYCwgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGJlIGludGVycHJldGVkIGFzIGEgcHVyZWx5CiAgICAgICAgb3B0aW9uYWwgcmVxdWlyZW1lbnQuICBJbnN0ZWFkLCB3ZSB3YW50IHRvIGJlIGFibGUgdG8gYXNzZXJ0IHRoYXQgdGhlc2UKICAgICAgICByZXF1aXJlbWVudHMgYXJlIHRydWx5IHJlcXVpcmVkLgogICAgICAgIE5yrAAAAHIBAAAAKQHaE3JlcGxhY2VfY29uZmxpY3RpbmdUKRfaBGxpc3TaCl9SZXFFeHRyYXPaC2NvbGxlY3Rpb25z2gtkZWZhdWx0ZGljdNoDc2V02gNwb3DaDG1hcmtlcnNfcGFzc3LMAAAAcjsAAABy/wAAAHJoAAAAcv0AAAByaQAAANoKYmVzdF9tYXRjaHJwAAAAcsUAAABybwAAAHKnAAAAchgBAADaBmV4dHJhc9oGZXh0ZW5kcgwBAADaDHByb2plY3RfbmFtZSkScpoAAADaDHJlcXVpcmVtZW50c9oDZW522glpbnN0YWxsZXJyIwEAAHIsAQAA2glwcm9jZXNzZWTaBGJlc3TaC3RvX2FjdGl2YXRl2gpyZXFfZXh0cmFzcqYAAABynwAAAHKdAAAAcgkBAAByqQAAANoNZGVwZW5kZW50X3JlcdoQbmV3X3JlcXVpcmVtZW50c9oPbmV3X3JlcXVpcmVtZW50chsAAAByGwAAAHIcAAAAcgsBAADLAgAAc1QAAAAAGxICBAIEAQQCBgQKAgYCCgEIAgICDAECAgwBCgIOARQBBAEIAQgBDAUIAQgBBAECAAIAAgEC/hAECAEMAQoBCgEKAggBEAMWAQoDCAEQAQ4CCgN6EldvcmtpbmdTZXQucmVzb2x2ZWMFAAAAAAAAAAAAAAAPAAAADAAAAEMAAABzCgEAAHQAfAGDAX0FfAWgAaEAAQBpAH0GaQB9B3wCZAFrCHI0dAJ8AGoDgwF9CHwIfAE3AH0Ibgh8AnwBFwB9CHwAoARnAKEBfQl0AHQFfAlqBnwAgwKDAQEAfAVEAF2WfQp8AXwKGQBEAF2IfQt8C6AHoQBnAX0MehJ8CaAIfAx8CHwDoQN9DVcAbkIEAHQJawpyyAEAfQ4BAHokfA58BnwLPAB8BHKuVwBZAKIScWZuClcAWQCiCAEAcVpXADUAZAF9Dn4OWABZAHFmWAB0AHQFfAlqBnwNgwKDAQEAfAegCnQLoAx8DaEBoQEBAAEAcVpxZnFadAB8B4MBfQd8B6ABoQABAHwHfAZmAlMAKQJhcwYAAEZpbmQgYWxsIGFjdGl2YXRhYmxlIGRpc3RyaWJ1dGlvbnMgaW4gYHBsdWdpbl9lbnZgCgogICAgICAgIEV4YW1wbGUgdXNhZ2U6OgoKICAgICAgICAgICAgZGlzdHJpYnV0aW9ucywgZXJyb3JzID0gd29ya2luZ19zZXQuZmluZF9wbHVnaW5zKAogICAgICAgICAgICAgICAgRW52aXJvbm1lbnQocGx1Z2luX2Rpcmxpc3QpCiAgICAgICAgICAgICkKICAgICAgICAgICAgIyBhZGQgcGx1Z2lucytsaWJzIHRvIHN5cy5wYXRoCiAgICAgICAgICAgIG1hcCh3b3JraW5nX3NldC5hZGQsIGRpc3RyaWJ1dGlvbnMpCiAgICAgICAgICAgICMgZGlzcGxheSBlcnJvcnMKICAgICAgICAgICAgcHJpbnQoJ0NvdWxkIG5vdCBsb2FkJywgZXJyb3JzKQoKICAgICAgICBUaGUgYHBsdWdpbl9lbnZgIHNob3VsZCBiZSBhbiBgYEVudmlyb25tZW50YGAgaW5zdGFuY2UgdGhhdCBjb250YWlucwogICAgICAgIG9ubHkgZGlzdHJpYnV0aW9ucyB0aGF0IGFyZSBpbiB0aGUgcHJvamVjdCdzICJwbHVnaW4gZGlyZWN0b3J5IiBvcgogICAgICAgIGRpcmVjdG9yaWVzLiBUaGUgYGZ1bGxfZW52YCwgaWYgc3VwcGxpZWQsIHNob3VsZCBiZSBhbiBgYEVudmlyb25tZW50YGAKICAgICAgICBjb250YWlucyBhbGwgY3VycmVudGx5LWF2YWlsYWJsZSBkaXN0cmlidXRpb25zLiAgSWYgYGZ1bGxfZW52YCBpcyBub3QKICAgICAgICBzdXBwbGllZCwgb25lIGlzIGNyZWF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSBgYFdvcmtpbmdTZXRgYCB0aGlzCiAgICAgICAgbWV0aG9kIGlzIGNhbGxlZCBvbiwgd2hpY2ggd2lsbCB0eXBpY2FsbHkgbWVhbiB0aGF0IGV2ZXJ5IGRpcmVjdG9yeSBvbgogICAgICAgIGBgc3lzLnBhdGhgYCB3aWxsIGJlIHNjYW5uZWQgZm9yIGRpc3RyaWJ1dGlvbnMuCgogICAgICAgIGBpbnN0YWxsZXJgIGlzIGEgc3RhbmRhcmQgaW5zdGFsbGVyIGNhbGxiYWNrIGFzIHVzZWQgYnkgdGhlCiAgICAgICAgYGByZXNvbHZlKClgYCBtZXRob2QuIFRoZSBgZmFsbGJhY2tgIGZsYWcgaW5kaWNhdGVzIHdoZXRoZXIgd2Ugc2hvdWxkCiAgICAgICAgYXR0ZW1wdCB0byByZXNvbHZlIG9sZGVyIHZlcnNpb25zIG9mIGEgcGx1Z2luIGlmIHRoZSBuZXdlc3QgdmVyc2lvbgogICAgICAgIGNhbm5vdCBiZSByZXNvbHZlZC4KCiAgICAgICAgVGhpcyBtZXRob2QgcmV0dXJucyBhIDItdHVwbGU6IChgZGlzdHJpYnV0aW9uc2AsIGBlcnJvcl9pbmZvYCksIHdoZXJlCiAgICAgICAgYGRpc3RyaWJ1dGlvbnNgIGlzIGEgbGlzdCBvZiB0aGUgZGlzdHJpYnV0aW9ucyBmb3VuZCBpbiBgcGx1Z2luX2VudmAKICAgICAgICB0aGF0IHdlcmUgbG9hZGFibGUsIGFsb25nIHdpdGggYW55IG90aGVyIGRpc3RyaWJ1dGlvbnMgdGhhdCBhcmUgbmVlZGVkCiAgICAgICAgdG8gcmVzb2x2ZSB0aGVpciBkZXBlbmRlbmNpZXMuICBgZXJyb3JfaW5mb2AgaXMgYSBkaWN0aW9uYXJ5IG1hcHBpbmcKICAgICAgICB1bmxvYWRhYmxlIHBsdWdpbiBkaXN0cmlidXRpb25zIHRvIGFuIGV4Y2VwdGlvbiBpbnN0YW5jZSBkZXNjcmliaW5nIHRoZQogICAgICAgIGVycm9yIHRoYXQgb2NjdXJyZWQuIFVzdWFsbHkgdGhpcyB3aWxsIGJlIGEgYGBEaXN0cmlidXRpb25Ob3RGb3VuZGBgIG9yCiAgICAgICAgYGBWZXJzaW9uQ29uZmxpY3RgYCBpbnN0YW5jZS4KICAgICAgICBOKQ1yJAEAANoEc29ydHJoAAAAcv0AAABylwAAAHIGAAAAcgwBAADaDmFzX3JlcXVpcmVtZW50cgsBAABybgAAAHIlAAAA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YWNrZXIgdG8KICAgICAgICByZXBsYWNlIGFuIGV4dHJhY3RlZCBmaWxlIHdpdGggYW4gdW5hdXRob3JpemVkIHBheWxvYWQuIFdhcm4gdGhlIHVzZXIKICAgICAgICBpZiBhIGtub3duIGluc2VjdXJlIGxvY2F0aW9uIGlzIHVzZWQuCgogICAgICAgIFNlZSBEaXN0cmlidXRlICMzNzUgZm9yIG1vcmUgZGV0YWlscy4KICAgICAgICDaAm502gZ3aW5kaXJOesslcyBpcyB3cml0YWJsZSBieSBncm91cC9vdGhlcnMgYW5kIHZ1bG5lcmFibGUgdG8gYXR0YWNrIHdoZW4gdXNlZCB3aXRoIGdldF9yZXNvdXJjZV9maWxlbmFtZS4gQ29uc2lkZXIgYSBtb3JlIHNlY3VyZSBsb2NhdGlvbiAoc2V0IHdpdGggLnNldF9leHRyYWN0aW9uX3BhdGggb3IgdGhlIFBZVEhPTl9FR0dfQ0FDSEUgZW52aXJvbm1lbnQgdmFyaWFibGUpLikLcsAAAABy5gAAAHLTAAAA2gdlbnZpcm9u2gRzdGF02gdzdF9tb2Rl2gdTX0lXT1RI2gdTX0lXR1JQ2gh3YXJuaW5nc9oEd2FybtoLVXNlcldhcm5pbmcpA3LBAAAA2gRtb2Rl2gNtc2dyGwAAAHIbAAAAchwAAAByfAEAAMMEAABzEgAAAAAKGgQEAQwBFAICBAL8Av8CB3osUmVzb3VyY2VNYW5hZ2VyLl93YXJuX3Vuc2FmZV9leHRyYWN0aW9uX3BhdGhjAwAAAAAAAAAAAAAABAAAAAQAAABDAAAAcy4AAAB0AGoBZAFrAnIqdACgAnwBoQFqA2QCQgBkA0AAfQN0AKAEfAF8A6ECAQBkBFMAKQVhNAIAAFBlcmZvcm0gYW55IHBsYXRmb3JtLXNwZWNpZmljIHBvc3Rwcm9jZXNzaW5nIG9mIGB0ZW1wbmFtZWAKCiAgICAgICAgVGhpcyBpcyB3aGVyZSBNYWMgaGVhZGVyIHJld3JpdGVzIHNob3VsZCBiZSBkb25lOyBvdGhlciBwbGF0Zm9ybXMgZG9uJ3QKICAgICAgICBoYXZlIGFueXRoaW5nIHNwZWNpYWwgdGhleSBzaG91bGQgZG8uCgogICAgICAgIFJlc291cmNlIHByb3ZpZGVycyBzaG91bGQgY2FsbCB0aGlzIG1ldGhvZCBPTkxZIGFmdGVyIHN1Y2Nlc3NmdWxseQogICAgICAgIGV4dHJhY3RpbmcgYSBjb21wcmVzc2VkIHJlc291cmNlLiAgVGhleSBtdXN0IE5PVCBjYWxsIGl0IG9uIHJlc291cmNlcwogICAgICAgIHRoYXQgYXJlIGFscmVhZHkgaW4gdGhlIGZpbGVzeXN0ZW0uCgogICAgICAgIGB0ZW1wbmFtZWAgaXMgdGhlIGN1cnJlbnQgKHRlbXBvcmFyeSkgbmFtZSBvZiB0aGUgZmlsZSwgYW5kIGBmaWxlbmFtZWAKICAgICAgICBpcyB0aGUgbmFtZSBpdCB3aWxsIGJlIHJlbmFtZWQgdG8gYnkgdGhlIGNhbGxlciBhZnRlciB0aGlzIHJvdXRpbmUKICAgICAgICByZXR1cm5zLgogICAgICAgINoFcG9zaXhpbQEAAGn/DwAATikFcsAAAABy5gAAAHKFAQAAcoYBAADaBWNobW9kKQRymgAAANoIdGVtcG5hbWXaCGZpbGVuYW1lcowBAAByGwAAAHIbAAAAchwAAADaC3Bvc3Rwcm9jZXNz3QQAAHMGAAAAAA8KAhQBehtSZXNvdXJjZU1hbmFnZXIucG9zdHByb2Nlc3NjAgAAAAAAAAAAAAAAAgAAAAIAAABDAAAAcxgAAAB8AGoAcg50AWQBgwGCAXwBfABfAmQCUwApA2HSAwAAU2V0IHRoZSBiYXNlIHBhdGggd2hlcmUgcmVzb3VyY2VzIHdpbGwgYmUgZXh0cmFjdGVkIHRvLCBpZiBuZWVkZWQuCgogICAgICAgIElmIHlvdSBkbyBub3QgY2FsbCB0aGlzIHJvdXRpbmUgYmVmb3JlIGFueSBleHRyYWN0aW9ucyB0YWtlIHBsYWNlLCB0aGUKICAgICAgICBwYXRoIGRlZmF1bHRzIHRvIHRoZSByZXR1cm4gdmFsdWUgb2YgYGBnZXRfZGVmYXVsdF9jYWNoZSgpYGAuICAoV2hpY2gKICAgICAgICBpcyBiYXNlZCBvbiB0aGUgYGBQWVRIT05fRUdHX0NBQ0hFYGAgZW52aXJvbm1lbnQgdmFyaWFibGUsIHdpdGggdmFyaW91cwogICAgICAgIHBsYXRmb3JtLXNwZWNpZmljIGZhbGxiYWNrcy4gIFNlZSB0aGF0IHJvdXRpbmUncyBkb2N1bWVudGF0aW9uIGZvciBtb3JlCiAgICAgICAgZGV0YWlscy4pCgogICAgICAgIFJlc291cmNlcyBhcmUgZXh0cmFjdGVkIHRvIHN1YmRpcmVjdG9yaWVzIG9mIHRoaXMgcGF0aCBiYXNlZCB1cG9uCiAgICAgICAgaW5mb3JtYXRpb24gZ2l2ZW4gYnkgdGhlIGBgSVJlc291cmNlUHJvdmlkZXJgYC4gIFlvdSBtYXkgc2V0IHRoaXMgdG8gYQogICAgICAgIHRlbXBvcmFyeSBkaXJlY3RvcnksIGJ1dCB0aGVuIHlvdSBtdXN0IGNhbGwgYGBjbGVhbnVwX3Jlc291cmNlcygpYGAgdG8KICAgICAgICBkZWxldGUgdGhlIGV4dHJhY3RlZCBmaWxlcyB3aGVuIGRvbmUuICBUaGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdAogICAgICAgIGBgY2xlYW51cF9yZXNvdXJjZXMoKWBgIHdpbGwgYmUgYWJsZSB0byByZW1vdmUgYWxsIGV4dHJhY3RlZCBmaWxlcy4KCiAgICAgICAgKE5vdGU6IHlvdSBtYXkgbm90IGNoYW5nZSB0aGUgZXh0cmFjdGlvbiBwYXRoIGZvciBhIGdpdmVuIHJlc291cmNlCiAgICAgICAgbWFuYWdlciBvbmNlIHJlc291cmNlcyBoYXZlIGJlZW4gZXh0cmFjdGVkLCB1bmxlc3MgeW91IGZpcnN0IGNhbGwKICAgICAgICBgYGNsZWFudXBfcmVzb3VyY2VzKClgYC4pCiAgICAgICAgejVDYW4ndCBjaGFuZ2UgZXh0cmFjdGlvbiBwYXRoLCBmaWxlcyBhbHJlYWR5IGV4dHJhY3RlZE4pA3JsAQAAck8AAABycAEAAKkCcpoAAABywQAAAHIbAAAAchsAAAByHAAAAHJlAAAA8QQAAHMKAAAAABMGAQIBAv8EBHojUmVzb3VyY2VNYW5hZ2VyLnNldF9leHRyYWN0aW9uX3BhdGhGYwIAAAAAAAAAAAAAAAIAAAABAAAAQwAAAHMEAAAAZAFTACkCYUICAAAKICAgICAgICBEZWxldGUgYWxsIGV4dHJhY3RlZCByZXNvdXJjZSBmaWxlcyBhbmQgZGlyZWN0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Pj4gYm9vbCh3YXJuZWQpCiAgICAgICAgVHJ1ZQogICAgICAgID4+PiB3YXJuZWQuY2xlYXIoKQogICAgICAgID4+PiB2cnAoJy9mb28vYmFyLnR4dCcpCiAgICAgICAgPj4+IGJvb2wod2FybmVkKQogICAgICAgIFRydWUKICAgICAgICA+Pj4gdnJwKCdmb28vLi4vLi4vYmFyLnR4dCcpCiAgICAgICAgPj4+IGJvb2wod2FybmVkKQogICAgICAgIFRydWUKICAgICAgICA+Pj4gd2FybmVkLmNsZWFyKCkKICAgICAgICA+Pj4gdnJwKCdmb28vZi4uL2Jhci50eHQnKQogICAgICAgID4+PiBib29sKHdhcm5lZCkKICAgICAgICBGYWxzZQoKICAgICAgICBXaW5kb3dzIHBhdGggc2VwYXJhdG9ycyBhcmUgc3RyYWlnaHQtdXAgZGlzYWxsb3dlZC4KICAgICAgICA+Pj4gdnJwKHInXGZvby9iYXIudHh0JykKICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgICAgLi4uCiAgICAgICAgVmFsdWVFcnJvcjogVXNlIG9mIC4uIG9yIGFic29sdXRlIHBhdGggaW4gYSByZXNvdXJjZSBwYXRoIGlzIG5vdCBhbGxvd2VkLgoKICAgICAgICA+Pj4gdnJwKHInQzpcZm9vL2Jhci50eHQnKQogICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgICAuLi4KICAgICAgICBWYWx1ZUVycm9yOiBVc2Ugb2YgLi4gb3IgYWJzb2x1dGUgcGF0aCBpbiBhIHJlc291cmNlIHBhdGggaXMgbm90IGFsbG93ZWQuCgogICAgICAgIEJsYW5rIHZhbHVlcyBhcmUgYWxsb3dlZAoKICAgICAgICA+Pj4gdnJwKCcnKQogICAgICAgID4+PiBib29sKHdhcm5lZCkKICAgICAgICBGYWxzZQoKICAgICAgICBOb24tc3RyaW5nIHZhbHVlcyBhcmUgbm90LgoKICAgICAgICA+Pj4gdnJwKE5vbmUpCiAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp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AVMAch0AAAByugEAAHKwAQAAchsAAAByGwAAAHIcAAAAcvEAAAB2BwAAcwIAAAAAAXofRmlsZU1ldGFkYXRhLmdldF9tZXRhZGF0YV9saW5lc04pCnIXAAAAchgAAAByGQAAAHIaAAAAcgMBAABysQEAAHLvAAAAcvAAAAByNgIAAHLxAAAAchsAAAByGwAAAHIbAAAAchwAAAByhwAAAFAHAABzDgAAAAgBBAsIAwgDCAMICQgIYwAAAAAAAAAAAAAAAAAAAAACAAAAQAAAAHMYAAAAZQBaAWQAWgJkAVoDZAJkA4QAWgRkBFMAKQVyiAAAAGFzAgAATWV0YWRhdGEgcHJvdmlkZXIgZm9yIGVnZyBkaXJlY3RvcmllcwoKICAgIFVzYWdlOjoKCiAgICAgICAgIyBEZXZlbG9wbWVudCBlZ2dzOgoKICAgICAgICBlZ2dfaW5mbyA9ICIvcGF0aC90by9QYWNrYWdlTmFtZS5lZ2ctaW5mbyIKICAgICAgICBiYXNlX2RpciA9IG9zLnBhdGguZGlybmFtZShlZ2dfaW5mbykKICAgICAgICBtZXRhZGF0YSA9IFBhdGhNZXRhZGF0YShiYXNlX2RpciwgZWdnX2luZm8pCiAgICAgICAgZGlzdF9uYW1lID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKGVnZ19pbmZvKSlbMF0KICAgICAgICBkaXN0ID0gRGlzdHJpYnV0aW9uKGJhc2VkaXIsIHByb2plY3RfbmFtZT1kaXN0X25hbWUsIG1ldGFkYXRhPW1ldGFkYXRhKQoKICAgICAgICAjIFVucGFja2VkIGVnZyBkaXJlY3RvcmllczoKCiAgICAgICAgZWdnX3BhdGggPSAiL3BhdGgvdG8vUGFja2FnZU5hbWUtdmVyLXB5dmVyLWV0Yy5lZ2ciCiAgICAgICAgbWV0YWRhdGEgPSBQYXRoTWV0YWRhdGEoZWdnX3BhdGgsIG9zLnBhdGguam9pbihlZ2dfcGF0aCwnRUdHLUlORk8nKSkKICAgICAgICBkaXN0ID0gRGlzdHJpYnV0aW9uLmZyb21fZmlsZW5hbWUoZWdnX3BhdGgsIG1ldGFkYXRhPW1ldGFkYXRhKQogICAgYwMAAAAAAAAAAAAAAAMAAAACAAAAQwAAAHMQAAAAfAF8AF8AfAJ8AF8BZABTAHIdAAAAKQJypgEAAHKvAQAAKQNymgAAAHLBAAAAcq8BAAByGwAAAHIbAAAAchwAAAByAwEAAI4HAABzBAAAAAABBgF6FVBhdGhNZXRhZGF0YS5fX2luaXRfX06pBXIXAAAAchgAAAByGQAAAHIaAAAAcgMBAAByGwAAAHIbAAAAchsAAAByHAAAAHKIAAAAegcAAHMEAAAACAEEE2MAAAAAAAAAAAAAAAAAAAAAAgAAAEAAAABzGAAAAGUAWgFkAFoCZAFaA2QCZAOEAFoEZARTACkFcokAAAB6IE1ldGFkYXRhIHByb3ZpZGVyIGZvciAuZWdnIGZpbGVzYwIAAAAAAAAAAAAAAAIAAAAEAAAAQwAAAHNEAAAAfAFqAHQBagIXAHwAXwN8AXwAXwR8AWoFcjB0AWoGoAd8AWoAfAFqBaECfABfCG4IfAFqAHwAXwh8AKAJoQABAGQBUwApAnotQ3JlYXRlIGEgbWV0YWRhdGEgcHJvdmlkZXIgZnJvbSBhIHppcGltcG9ydGVyTikKcgACAABywAAAAHLVAQAAcgECAAByuwAAANoGcHJlZml4csEAAAByTAAAAHKmAQAActwBAAApAnKaAAAA2ghpbXBvcnRlcnIbAAAAchsAAAByHAAAAHIDAQAAlgcAAHMMAAAAAAMOAQYBBgEWAggBehRFZ2dNZXRhZGF0YS5fX2luaXRfX05yOQIAAHIbAAAAchsAAAByGwAAAHIcAAAAcokAAACTBwAAcwQAAAAIAQQCcicAAACpAdoVX2Rpc3RyaWJ1dGlvbl9maW5kZXJzYwIAAAAAAAAAAAAAAAIAAAADAAAAQwAAAHMMAAAAfAF0AHwAPABkAVMAKQJheAEAAFJlZ2lzdGVyIGBkaXN0cmlidXRpb25fZmluZGVyYCB0byBmaW5kIGRpc3RyaWJ1dGlvbnMgaW4gc3lzLnBhdGggaXRlbXMKCiAgICBgaW1wb3J0ZXJfdHlwZWAgaXMgdGhlIHR5cGUgb3IgY2xhc3Mgb2YgYSBQRVAgMzAyICJJbXBvcnRlciIgKHN5cy5wYXRoIGl0ZW0KICAgIGhhbmRsZXIpLCBhbmQgYGRpc3RyaWJ1dGlvbl9maW5kZXJgIGlzIGEgY2FsbGFibGUgdGhhdCwgcGFzc2VkIGEgcGF0aAogICAgaXRlbSBhbmQgdGhlIGltcG9ydGVyIGluc3RhbmNlLCB5aWVsZHMgYGBEaXN0cmlidXRpb25gYCBpbnN0YW5jZXMgZm91bmQgb24KICAgIHRoYXQgcGF0aCBpdGVtLiAgU2VlIGBgcGtnX3Jlc291cmNlcy5maW5kX29uX3BhdGhgYCBmb3IgYW4gZXhhbXBsZS5OcjwCAAApAtoNaW1wb3J0ZXJfdHlwZdoTZGlzdHJpYnV0aW9uX2ZpbmRlcnIbAAAAchsAAAByHAAAAHKQAAAApQcAAHMCAAAAAAdjAgAAAAAAAAAAAAAABAAAAAQAAABDAAAAcx4AAAB0AHwAgwF9AnQBdAJ8AoMCfQN8A3wCfAB8AYMDUwApAXouWWllbGQgZGlzdHJpYnV0aW9ucyBhY2Nlc3NpYmxlIHZpYSBgcGF0aF9pdGVtYCkDcgMAAAByuAAAAHI9AgAAKQTaCXBhdGhfaXRlbdoEb25seXI7AgAA2gZmaW5kZXJyGwAAAHIbAAAAchwAAAByZAAAAK8HAABzBgAAAAACCAEKAWMDAAAAAAAAAAAAAAAJAAAABgAAAGMAAABzxgAAAHwAagCgAWQBoQFyEGQCUwB0AnwAgwF9A3wDoANkA6EBcjJ0BGoFfAF8A2QEjQJWAAEAfAJyOmQCUwB8A6AGZAWhAUQAXXx9BHQHfASDAXKAdAhqCaAKfAF8BKECfQV0C3QMoA18BaEBfAWDAn0GfAZEAF0KfQd8B1YAAQBxcnFEfASgDqEAoAFkBqEBckR0CGoJoAp8AXwEoQJ9BXQCdAygDXwFoQGDAX0IfAV8CF8PdASgEHwBfAR8CKEDVgABAHFEZAJTACkHekAKICAgIEZpbmQgZWdncyBpbiB6aXAgZmlsZXM7IHBvc3NpYmx5IG11bHRpcGxlIG5lc3RlZCBlZ2dzLgogICAgegQud2hsTnIzAgAAqQFyNwIAAHK8AAAA+gouZGlzdC1pbmZvKRFyAAIAANoIZW5kc3dpdGhyiQAAAHLvAAAAcmsAAADaDWZyb21fZmlsZW5hbWVyXgAAAHLeAQAAcsAAAABywQAAAHJMAAAA2hBmaW5kX2VnZ3NfaW5femlw2gl6aXBpbXBvcnTaC3ppcGltcG9ydGVyclkBAAByrwEAANoNZnJvbV9sb2NhdGlvbikJcjsCAAByQAIAAHJBAgAAcjcCAADaB3N1Yml0ZW3aB3N1YnBhdGhyDwEAAHKdAAAA2gdzdWJtZXRhchsAAAByGwAAAHIcAAAAckcCAAC2BwAAcyQAAAAABAwDBAEIAQoBEAEEAgQBDgEIAQ4BEAEIAQoBDgEOAQ4BBgFyRwIAAGMDAAAAAAAAAAAAAAADAAAAAQAAAEMAAABzBAAAAGQBUwByMQIAAHIbAAAAKQNyOwIAAHJAAgAAckECAAByGwAAAHIbAAAAchwAAADaDGZpbmRfbm90aGluZ9QHAABzAgAAAAABck4CAABjAQAAAAAAAAAAAAAAAgAAAAUAAABDAAAAcxYAAABkAWQChAB9AXQAfAB8AWQDZASNA1MAKQVhTAIAAAogICAgR2l2ZW4gYSBsaXN0IG9mIGZpbGVuYW1lcywgcmV0dXJuIHRoZW0gaW4gZGVzY2VuZGluZyBvcmRlcgogICAgYnkgdmVyc2lvbiBudW1iZXIuCgogICAgPj4+IG5hbWVzID0gJ2JhcicsICdmb28nLCAnUHl0aG9uLTIuNy4xMC5lZ2cnLCAnUHl0aG9uLTIuNy4yLmVnZycKICAgID4+PiBfYnlfdmVyc2lvbl9kZXNjZW5kaW5nKG5hbWVzKQogICAgWydQeXRob24tMi43LjEwLmVnZycsICdQeXRob24tMi43LjIuZWdnJywgJ2ZvbycsICdiYXInXQogICAgPj4+IG5hbWVzID0gJ1NldHVwdG9vbHMtMS4yLjNiMS5lZ2cnLCAnU2V0dXB0b29scy0xLjIuMy5lZ2cnCiAgICA+Pj4gX2J5X3ZlcnNpb25fZGVzY2VuZGluZyhuYW1lcykKICAgIFsnU2V0dXB0b29scy0xLjIuMy5lZ2cnLCAnU2V0dXB0b29scy0xLjIuM2IxLmVnZyddCiAgICA+Pj4gbmFtZXMgPSAnU2V0dXB0b29scy0xLjIuM2IxLmVnZycsICdTZXR1cHRvb2xzLTEuMi4zLnBvc3QxLmVnZycKICAgID4+PiBfYnlfdmVyc2lvbl9kZXNjZW5kaW5nKG5hbWVzKQogICAgWydTZXR1cHRvb2xzLTEuMi4zLnBvc3QxLmVnZycsICdTZXR1cHRvb2xzLTEuMi4zYjEuZWdnJ10KICAgIGMBAAAAAAAAAAAAAAADAAAABQAAAFMAAABzMgAAAHQAagGgAnwAoQFcAn0AfQF0A6AEfACgBWQBoQF8AWcBoQJ9AmQCZAOEAHwCRACDAVMAKQR6NgogICAgICAgIFBhcnNlIGVhY2ggY29tcG9uZW50IG9mIHRoZSBmaWxlbmFtZQogICAgICAgIHKaAQAAYwEAAAAAAAAAAAAAAAIAAAAFAAAAUwAAAHMYAAAAZwB8AF0QfQF0AGoBoAJ8AaEBkQJxBFMAchsAAAApA3ISAAAAch4AAABy6AAAACkCchQBAADaBHBhcnRyGwAAAHIbAAAAchwAAADaCjxsaXN0Y29tcD7wBwAAcwQAAAAGAAIAej9fYnlfdmVyc2lvbl9kZXNjZW5kaW5nLjxsb2NhbHM+Ll9ieV92ZXJzaW9uLjxsb2NhbHM+LjxsaXN0Y29tcD4pBnLAAAAAcsEAAADaCHNwbGl0ZXh02glpdGVydG9vbHPaBWNoYWlucg4AAAApA3LmAAAA2gNleHRyLwIAAHIbAAAAchsAAAByHAAAANoLX2J5X3ZlcnNpb27qBwAAcwYAAAAABBABFAF6K19ieV92ZXJzaW9uX2Rlc2NlbmRpbmcuPGxvY2Fscz4uX2J5X3ZlcnNpb25Ucl0BAAApAdoGc29ydGVkKQJyfgEAAHJVAgAAchsAAAByGwAAAHIcAAAA2hZfYnlfdmVyc2lvbl9kZXNjZW5kaW5n2wcAAHMEAAAAAA8ICHJXAgAAYwMAAAAAAAAAAAAAAAoAAAAIAAAAIwAAAHOUAAAAdACIAYMBiQF0AYgBgwFyNHQCagOIAXQEiAF0BWoGoAeIAWQBoQKDAmQCjQJWAAEAZANTAHQIiAGDAX0DhwCHAWYCZARkBYQIfANEAIMBfQR0CXwEgwF9BXwFRABdMn0GdAVqBqAHiAF8BqECfQd0CogBfAaIAIMDfQh8CHwHgwFEAF0KfQl8CVYAAQBxgnFcZANTACkGejZZaWVsZCBkaXN0cmlidXRpb25zIGFjY2Vzc2libGUgb24gYSBzeXMucGF0aCBkaXJlY3Rvcnly3QEAAHJDAgAATmMBAAAAAAAAAAAAAAACAAAABQAAADMAAABzHgAAAHwAXRZ9AXQAiAF8AYgAgwNyAnwBVgABAHECZABTAHIdAAAAKQHaDGRpc3RfZmFjdG9yeSkCchQBAAByAgEAAKkCckECAAByQAIAAHIbAAAAchwAAAByFgEAAAYIAABzBgAAAAQCAgEM/nofZmluZF9vbl9wYXRoLjxsb2NhbHM+LjxnZW5leHByPikL2hFfbm9ybWFsaXplX2NhY2hlZNoQX2lzX3VucGFja2VkX2VnZ3JrAAAAckYCAAByiAAAAHLAAAAAcsEAAAByTAAAANoMc2FmZV9saXN0ZGlyclcCAAByWAIAACkKcjsCAAByQAIAAHJBAgAAcv0AAADaCGZpbHRlcmVk2hFwYXRoX2l0ZW1fZW50cmllc3ICAQAA2ghmdWxscGF0aNoHZmFjdG9yeXKdAAAAchsAAAByWQIAAHIcAAAA2gxmaW5kX29uX3BhdGj1BwAAcygAAAAAAggCCAEEAQIAAgECAAz/Av8IBQQCCAUMAgL+BgcIAQgBDgEMAQwBcmECAABjAwAAAAAAAAAAAAAABQAAAAQAAABDAAAAc0gAAAB8AaAAoQB9A3QBdAJ8A2oDZAGDAoMBfQR8BHIgdARTAHwCczB0BXwBgwFyMHQGUwB8AnNCfAOgA2QCoQFyQnQHUwB0CIMAUwApA3o5CiAgICBSZXR1cm4gYSBkaXN0X2ZhY3RvcnkgZm9yIGEgcGF0aF9pdGVtIGFuZCBlbnRyeQogICAgKQL6CS5lZ2ctaW5mb3JEAgAAegkuZWdnLWxpbmspCXJZAQAAck8BAAByBgAAAHJFAgAA2htkaXN0cmlidXRpb25zX2Zyb21fbWV0YWRhdGFy3gEAAHJkAAAA2hByZXNvbHZlX2VnZ19saW5r2gdOb0Rpc3RzKQVyQAIAAHICAQAAckECAAByWQEAANoHaXNfbWV0YXIbAAAAchsAAAByHAAAAHJYAgAAFQgAAHMcAAAAAAQIARADAv8GAwL/AgEG/wYDAv8CAQj/BgIE+XJYAgAAYwAAAAAAAAAAAAAAAAAAAAACAAAAQAAAAHMqAAAAZQBaAWQAWgJkAVoDZAJkA4QAWgRlBWoGch5lBFoHZARkBYQAWghkBlMAKQdyZQIAAHpTCiAgICA+Pj4gYm9vbChOb0Rpc3RzKCkpCiAgICBGYWxzZQoKICAgID4+PiBsaXN0KE5vRGlzdHMoKSgnYW55dGhpbmcnKSkKICAgIFtdCiAgICBjAQAAAAAAAAAAAAAAAQAAAAEAAABDAAAAcwQAAABkAVMAcu0BAAByGwAAAHKZAAAAchsAAAByGwAAAHIcAAAA2ghfX2Jvb2xfXy4IAABzAgAAAAABehBOb0Rpc3RzLl9fYm9vbF9fYwIAAAAAAAAAAAAAAAIAAAACAAAAQwAAAHMIAAAAdABkAYMBUwByMQIAACkB2gRpdGVyKQJymgAAAHJfAgAAchsAAAByGwAAAHIcAAAA2ghfX2NhbGxfXzMIAABzAgAAAAABehBOb0Rpc3RzLl9fY2FsbF9fTikJchcAAAByGAAAAHIZAAAAchoAAAByZwIAAHIEAAAAcrQBAADaC19fbm9uemVyb19fcmkCAAByGwAAAHIbAAAAchsAAAByHAAAAHJlAgAAJggAAHMKAAAACAEEBwgCBgEEAnJlAgAAYwEAAAAAAAAAAAAAAAMAAAAKAAAAQwAAAHN2AAAAegx0AKABfAChAVcAUwAEAHQCdANmAmsKciQBAAEAAQBZAG5OBAB0BGsKcnABAH0BAQB6MHwBagV0BWoGdAVqB3QFaghmA2sGcFh0CXwBZAFkAoMDZANrAn0CfAJzYIIAVwA1AGQCfQF+AVgAWQBuAlgAZARTACkFekkKICAgIEF0dGVtcHQgdG8gbGlzdCBjb250ZW50cyBvZiBwYXRoLCBidXQgc3VwcHJlc3Mgc29tZSBleGNlcHRpb25zLgogICAg2gh3aW5lcnJvck5pCwEAAHIbAAAAKQpywAAAAHLiAQAA2g9QZXJtaXNzaW9uRXJyb3LaEk5vdEFEaXJlY3RvcnlFcnJvctoHT1NFcnJvctoFZXJybm/aB0VOT1RESVLaBkVBQ0NFU9oGRU5PRU5UcrcAAAApA3LBAAAAcqABAADaCWlnbm9yYWJsZXIbAAAAchsAAAByHAAAAHJcAgAANwgAAHMWAAAAAAQCAQwBEgEEARAEFgIO/QIFBAEUAXJcAgAAYwEAAAAAAAAAAAAAAAQAAAAGAAAAYwAAAHNmAAAAdABqAaACfAChAX0BdABqAaADfAChAXI6dAR0AKAFfAChAYMBZAFrAnIuZABTAHQGfAF8AIMCfQJuCHQHfACDAX0CdABqAaAIfAChAX0DdAlqCnwBfAN8AnQLZAKNBFYAAQBkAFMAKQNOcgEAAAApAdoKcHJlY2VkZW5jZSkMcsAAAABywQAAAHKlAQAAcg0AAAByxAEAAHLiAQAAcogAAAByhwAAAHLfAQAAcmsAAABySgIAAHKEAAAAKQRywQAAANoEcm9vdHI3AgAAcgIBAAByGwAAAHIbAAAAchwAAAByYwIAAEwIAABzGgAAAAABDAEMARICBAEMAggBDAEEAQIAAgACAAL/cmMCAABjAQAAAAAAAAAAAAAAAwAAAAkAAABjAAAAczQAAAB0AHwAgwGPIn0BfAFEAF0WfQJ8AqABoQB9AnwCcg58AlYAAQBxDlcANQBRAFIAWABkAVMAKQJ6MQogICAgWWllbGQgbm9uLWVtcHR5IGxpbmVzIGZyb20gZmlsZSBhdCBwYXRoCiAgICBOKQJyDAAAANoFc3RyaXApA3LBAAAAcioCAADaBGxpbmVyGwAAAHIbAAAAchwAAADaD25vbl9lbXB0eV9saW5lc1sIAABzCgAAAAAECgEIAQgBBAFyeAIAAGMBAAAAAAAAAAAAAAAEAAAAAwAAAAMAAABzLgAAAHQAiACDAX0BhwBmAWQBZAKECHwBRACDAX0CdAF0AnwCgwJ9A3QDfANkA4MCUwApBHphCiAgICBHaXZlbiBhIHBhdGggdG8gYW4gLmVnZy1saW5rLCByZXNvbHZlIGRpc3RyaWJ1dGlvbnMKICAgIHByZXNlbnQgaW4gdGhlIHJlZmVyZW5jZWQgcGF0aC4KICAgIGMBAAAAAAAAAAAAAAACAAAABgAAADMAAABzJAAAAHwAXRx9AXQAagGgAnQAagGgA4gAoQF8AaECVgABAHECZABTAHIdAAAAKQRywAAAAHLBAAAAckwAAABypQEAACkCchQBAADaA3JlZnIyAgAAchsAAAByHAAAAHIWAQAAbAgAAHMEAAAABAIC/3ojcmVzb2x2ZV9lZ2dfbGluay48bG9jYWxzPi48Z2VuZXhwcj5yGwAAACkEcngCAAByBgAAAHJkAAAA2gRuZXh0KQRywQAAANoQcmVmZXJlbmNlZF9wYXRoc9oOcmVzb2x2ZWRfcGF0aHPaC2Rpc3RfZ3JvdXBzchsAAAByMgIAAHIcAAAAcmQCAABmCAAAcwwAAAAABQgBCgIC/gYECgFyZAIAANoKRmlsZUZpbmRlcqkB2hNfbmFtZXNwYWNlX2hhbmRsZXJzKQHaE19uYW1lc3BhY2VfcGFja2FnZXNjAgAAAAAAAAAAAAAAAgAAAAMAAABDAAAAcwwAAAB8AXQAfAA8AGQBUwApAmGaAgAAUmVnaXN0ZXIgYG5hbWVzcGFjZV9oYW5kbGVyYCB0byBkZWNsYXJlIG5hbWVzcGFjZSBwYWNrYWdlcwoKICAgIGBpbXBvcnRlcl90eXBlYCBpcyB0aGUgdHlwZSBvciBjbGFzcyBvZiBhIFBFUCAzMDIgIkltcG9ydGVyIiAoc3lzLnBhdGggaXRlbQogICAgaGFuZGxlciksIGFuZCBgbmFtZXNwYWNlX2hhbmRsZXJgIGlzIGEgY2FsbGFibGUgbGlrZSB0aGlzOjoKCiAgICAgICAgZGVmIG5hbWVzcGFjZV9oYW5kbGVyKGltcG9ydGVyLCBwYXRoX2VudHJ5LCBtb2R1bGVOYW1lLCBtb2R1bGUpOgogICAgICAgICAgICAjIHJldHVybiBhIHBhdGhfZW50cnkgdG8gdXNlIGZvciBjaGlsZCBwYWNrYWdlcwoKICAgIE5hbWVzcGFjZSBoYW5kbGVycyBhcmUgb25seSBjYWxsZWQgaWYgdGhlIGltcG9ydGVyIG9iamVjdCBoYXMgYWxyZWFkeQogICAgYWdyZWVkIHRoYXQgaXQgY2FuIGhhbmRsZSB0aGUgcmVsZXZhbnQgcGF0aCBpdGVtLCBhbmQgdGhleSBzaG91bGQgb25seQogICAgcmV0dXJuIGEgc3VicGF0aCBpZiB0aGUgbW9kdWxlIF9fcGF0aF9fIGRvZXMgbm90IGFscmVhZHkgY29udGFpbiBhbgogICAgZXF1aXZhbGVudCBzdWJwYXRoLiAgRm9yIGFuIGV4YW1wbGUgbmFtZXNwYWNlIGhhbmRsZXIsIHNlZQogICAgYGBwa2dfcmVzb3VyY2VzLmZpbGVfbnNfaGFuZGxlcmBgLgogICAgTnJ/AgAAKQJyPgIAANoRbmFtZXNwYWNlX2hhbmRsZXJyGwAAAHIbAAAAchwAAABykQAAAH0IAABzAgAAAAAPYwIAAAAAAAAAAAAAAAgAAAAJAAAAQwAAAHPeAAAAdAB8AYMBfQJ8AmQBawhyFGQBUwB0AaACoQCPGgEAdAGgA2QCoQEBAHwCoAR8AKEBfQNXADUAUQBSAFgAfANkAWsIckhkAVMAdAVqBqAHfAChAX0EfARkAWsIcoB0CKAJfAChAQQAfQR0BWoGfAA8AGcAfARfCnQLfACDAQEAbhR0DHwEZAODAnOUdA1kBHwAgwKCAXQOdA98AoMCfQV8BXwCfAF8AHwEgwR9BnwGZAFrCXLafARqCn0HfAegEHwGoQEBAHwDoBF8AKEBAQB0EnwHfAB8BIMDAQB8BlMAKQV6RUVuc3VyZSB0aGF0IG5hbWVkIHBhY2thZ2UgaW5jbHVkZXMgYSBzdWJwYXRoIG9mIHBhdGhfaXRlbSAoaWYgbmVlZGVkKU7aBmlnbm9yZdoIX19wYXRoX1/6Dk5vdCBhIHBhY2thZ2U6KRNyAwAAAHKJAQAA2g5jYXRjaF93YXJuaW5nc9oMc2ltcGxlZmlsdGVy2gtmaW5kX21vZHVsZXJKAAAAcrQAAAByzAAAANoFdHlwZXPaCk1vZHVsZVR5cGVyhAIAANoOX3NldF9wYXJlbnRfbnNywwAAAHLpAAAAcrgAAABygAIAAHLFAAAA2gtsb2FkX21vZHVsZdoRX3JlYnVpbGRfbW9kX3BhdGgpCNoLcGFja2FnZU5hbWVyQAIAAHI7AgAAcrsAAAByugAAANoHaGFuZGxlcnJMAgAAcsEAAAByGwAAAHIbAAAAchwAAADaCl9oYW5kbGVfbnOPCAAAcy4AAAAAAwgBCAEEAwoBCgEUAggBBAEMAQgBFAEGAQoBCgEKAQoBDgEIAQYBCgEKAQwBcpACAABjAwAAAAAAAAAAAAAABQAAAAQAAAADAAAAc2oAAABkAWQChAB0AGoBRACDAYkChwJmAWQDZASECIkBhwCHAWYCZAVkBoQIfQN0AnwAfANkB40CfQRkCGQChAB8BEQAgwF9BHQDfAJqBHQFgwJyYHwEfAJqBGQJZAmFAjwAbgZ8BHwCXwRkCVMAKQp6cQogICAgUmVidWlsZCBtb2R1bGUuX19wYXRoX18gZW5zdXJpbmcgdGhhdCBhbGwgZW50cmllcyBhcmUgb3JkZXJlZAogICAgY29ycmVzcG9uZGluZyB0byB0aGVpciBzeXMucGF0aCBvcmRlcgogICAgYwEAAAAAAAAAAAAAAAIAAAAEAAAAUwAAAHMUAAAAZwB8AF0MfQF0AHwBgwGRAnEEUwByGwAAAKkBcloCAACpAnIUAQAA2gFwchsAAAByGwAAAHIcAAAAclACAACzCAAAcwQAAAAGAAIAeiVfcmVidWlsZF9tb2RfcGF0aC48bG9jYWxzPi48bGlzdGNvbXA+YwEAAAAAAAAAAAAAAAEAAAAIAAAAEwAAAHMuAAAAegyIAKAAfAChAVcAUwAEAHQBawpyKAEAAQABAHQCZAGDAQYAWQBTAFgAZAJTACkDei8KICAgICAgICBXb3JrYXJvdW5kIGZvciAjNTIwIGFuZCAjNTEzLgogICAgICAgINoDaW5mTikD2gVpbmRleHJPAAAA2gVmbG9hdCkBcgIBAAApAdoIc3lzX3BhdGhyGwAAAHIcAAAA2hNzYWZlX3N5c19wYXRoX2luZGV4tQgAAHMIAAAAAAQCAQwBDgF6Ll9yZWJ1aWxkX21vZF9wYXRoLjxsb2NhbHM+LnNhZmVfc3lzX3BhdGhfaW5kZXhjAQAAAAAAAAAAAAAABAAAAAUAAAATAAAAczwAAAB8AKAAdAFqAqEBfQGIAKADZAGhAWQCFwB9AnwBZAN8AgsAhQIZAH0DiAF0BHQBagKgBXwDoQGDAYMBUwApBHpSCiAgICAgICAgUmV0dXJuIHRoZSBvcmRpbmFsIG9mIHRoZSBwYXRoIGJhc2VkIG9uIGl0cyBwb3NpdGlvbiBpbiBzeXMucGF0aAogICAgICAgIHJFAAAAcg8AAABOKQZyDgAAAHLAAAAActUBAADaBWNvdW50cloCAAByTAAAACkEcsEAAADaCnBhdGhfcGFydHPaDG1vZHVsZV9wYXJ0c3IvAgAAKQLaDHBhY2thZ2VfbmFtZXKYAgAAchsAAAByHAAAANoUcG9zaXRpb25faW5fc3lzX3BhdGi+CAAAcwgAAAAABAwBDgEOAXovX3JlYnVpbGRfbW9kX3BhdGguPGxvY2Fscz4ucG9zaXRpb25faW5fc3lzX3BhdGgpAXI7AAAAYwEAAAAAAAAAAAAAAAIAAAAEAAAAUwAAAHMUAAAAZwB8AF0MfQF0AHwBgwGRAnEEUwByGwAAAHKRAgAAcpICAAByGwAAAHIbAAAAchwAAAByUAIAAMgIAABzBAAAAAYAAgBOKQZySgAAAHLBAAAAclYCAABysQAAAHKEAgAAciQBAAApBdoJb3JpZ19wYXRocpwCAAByugAAAHKdAgAA2ghuZXdfcGF0aHIbAAAAKQNynAIAAHKYAgAAcpcCAAByHAAAAHKNAgAArggAAHMQAAAAAAUQAgwJDgkMAQ4CDAEQAnKNAgAAYwEAAAAAAAAAAAAAAAUAAAAIAAAAQwAAAHPEAAAAdACgAaEAAQB6rHwAdANrBnIaVwCioGQBUwB0BGoFfQF8AKAGZAKhAVwDfQJ9A30DfAJyfHQHfAKDAQEAfAJ0A2sHckx0CHwCgwEBAHoQdARqCXwCGQBqCn0BVwBuHgQAdAtrCnJ6AQABAAEAdAxkA3wCgwKCAVkAbgJYAHQDoA18AnCGZAFnAKECoA58AKEBAQB0A6ANfABnAKECAQB8AUQAXQ59BHQPfAB8BIMCAQBxolcANQB0AKACoQABAFgAZAFTACkEejlEZWNsYXJlIHRoYXQgcGFja2FnZSAncGFja2FnZU5hbWUnIGlzIGEgbmFtZXNwYWNlIHBhY2thZ2VOckUAAAByhQIAACkQ2gRfaW1w2gxhY3F1aXJlX2xvY2vaDHJlbGVhc2VfbG9ja3KBAgAAckoAAABywQAAANoKcnBhcnRpdGlvbnJhAAAAcrYAAABytAAAAHKEAgAAci0CAABy6QAAAHIQAQAAcsUAAABykAIAACkFco4CAABywQAAAHIwAgAActEAAAByQAIAAHIbAAAAchsAAAByHAAAAHJhAAAA0AgAAHMmAAAAAAMIAQIBCAEIAgYBEAIEAQgBCAEIAQIBEAEOARAEFgEMAggDEANjAgAAAAAAAAAAAAAABAAAAAgAAABDAAAAc0YAAAB0AKABoQABAHoudAOgBHwBZAGhAkQAXRx9AnQFfAJ8AIMCfQN8A3IWdAZ8A3wCgwIBAHEWVwA1AHQAoAKhAAEAWABkAlMAKQN6REVuc3VyZSB0aGF0IHByZXZpb3VzbHktZGVjbGFyZWQgbmFtZXNwYWNlIHBhY2thZ2VzIGluY2x1ZGUgcGF0aF9pdGVtchsAAABOKQdyoAIAAHKhAgAAcqICAABygQIAAHLMAAAAcpACAABykwAAACkEckACAAByMAIAANoHcGFja2FnZXJMAgAAchsAAAByGwAAAHIcAAAAcpMAAADyCAAAcw4AAAAAAggBAgEQAQoBBAEQAmMEAAAAAAAAAAAAAAAHAAAABgAAAEMAAABzRAAAAHQAagGgAnwBfAKgA2QBoQFkAhkAoQJ9BHQEfASDAX0FfANqBUQAXRR9BnQEfAaDAXwFawJyJgEAcUBxJnwEUwBkA1MAKQR6QkNvbXB1dGUgYW4gbnMtcGFja2FnZSBzdWJwYXRoIGZvciBhIGZpbGVzeXN0ZW0gb3IgemlwZmlsZSBpbXBvcnRlcnJFAAAAcqwAAABOKQZywAAAAHLBAAAAckwAAAByDgAAAHJaAgAAcoQCAAApB3I7AgAAckACAAByjgIAAHK6AAAAckwCAADaCm5vcm1hbGl6ZWRyGgEAAHIbAAAAchsAAAByHAAAANoPZmlsZV9uc19oYW5kbGVy/ggAAHMMAAAAAAMYAQgBCgEMAQYDcqYCAABjBAAAAAAAAAAAAAAABAAAAAEAAABDAAAAcwQAAABkAFMAch0AAAByGwAAACkEcjsCAAByQAIAAHKOAgAAcroAAAByGwAAAHIbAAAAchwAAADaD251bGxfbnNfaGFuZGxlchIJAABzAgAAAAABcqcCAABjAQAAAAAAAAAAAAAAAQAAAAgAAABDAAAAcyAAAAB0AGoBoAJ0AGoBoAN0AGoBoAR0BXwAgwGhAaEBoQFTACkBejFOb3JtYWxpemUgYSBmaWxlL2RpciBuYW1lIGZvciBjb21wYXJpc29uIHB1cnBvc2VzKQZywAAAAHLBAAAA2ghub3JtY2FzZdoIcmVhbHBhdGhy+wEAANoNX2N5Z3dpbl9wYXRjaKkBcpEBAAByGwAAAHIbAAAAchwAAAByfwAAABkJAABzAgAAAAACYwEAAAAAAAAAAAAAAAEAAAADAAAAQwAAAHMaAAAAdABqAWQBawJyFnQCagOgBHwAoQFTAHwAUwApAmEIAQAACiAgICBDb250cmFyeSB0byBQT1NJWCAyMDA4LCBvbiBDeWd3aW4sIGdldGN3ZCAoMykgY29udGFpbnMKICAgIHN5bWxpbmsgY29tcG9uZW50cy4gVXNpbmcKICAgIG9zLnBhdGguYWJzcGF0aCgpIHdvcmtzIGFyb3VuZCB0aGlzIGxpbWl0YXRpb24uIEEgZml4IGluIG9zLmdldGN3ZCgpCiAgICB3b3VsZCBwcm9iYWJseSBiZXR0ZXIsIGluIEN5Z3dpbiBldmVuIG1vcmUgc28sIGV4Y2VwdAogICAgdGhhdCB0aGlzIHNlZW1zIHRvIGJlIGJ5IGRlc2lnbi4uLgogICAg2gZjeWd3aW4pBXJKAAAAcksAAABywAAAAHLBAAAA2gdhYnNwYXRocqsCAAByGwAAAHIbAAAAchwAAAByqgIAAB4JAABzAgAAAAAIcqoCAABjAgAAAAAAAAAAAAAAAwAAAAgAAABDAAAAczgAAAB6CnwBfAAZAFcAUwAEAHQAawpyMgEAAQABAHQBfACDAQQAfAF8ADwAfQJ8AgYAWQBTAFgAZABTAHIdAAAAKQJytQAAAHJ/AAAAKQNykQEAAHLGAAAA2gZyZXN1bHRyGwAAAHIbAAAAchwAAAByWgIAACkJAABzCgAAAAABAgEKAQ4BEAFyWgIAAGMBAAAAAAAAAAAAAAABAAAAAwAAAEMAAABzDgAAAHwAoAChAKABZAGhAVMAKQJ6NwogICAgRGV0ZXJtaW5lIGlmIGdpdmVuIHBhdGggYXBwZWFycyB0byBiZSBhbiBlZ2cuCiAgICD6BC5lZ2cpAnJZAQAAckUCAAByMgIAAHIbAAAAchsAAAByHAAAAHLeAQAAMQkAAHMCAAAAAARy3gEAAGMBAAAAAAAAAAAAAAABAAAABwAAAEMAAABzIAAAAHQAfACDAW8edAFqAqADdAFqAqAEfABkAWQCoQOhAVMAKQN6QAogICAgRGV0ZXJtaW5lIGlmIGdpdmVuIHBhdGggYXBwZWFycyB0byBiZSBhbiB1bnBhY2tlZCBlZ2cuCiAgICBy3QEAAHIzAgAAKQVy3gEAAHLAAAAAcsEAAAByIgIAAHJMAAAAcjICAAByGwAAAHIbAAAAchwAAAByWwIAADgJAABzBgAAAAAFCAEW/nJbAgAAYwEAAAAAAAAAAAAAAAQAAAAFAAAAQwAAAHM8AAAAfACgAGQBoQF9AXwBoAGhAH0CfAFyOGQBoAJ8AaEBfQN0A3QEagV8AxkAfAJ0BGoFfAAZAIMDAQBkAFMAKQJOckUAAAApBnIOAAAAcikBAAByTAAAANoHc2V0YXR0cnJKAAAAcrQAAAApBHKOAgAAci8CAABy5gAAAHIwAgAAchsAAAByGwAAAHIcAAAAcosCAABCCQAAcwoAAAAAAQoBCAEEAQoBcosCAABjAQAAAAAAAAAAAAAAAwAAAAQAAABjAAAAc1oAAAB0AHwAdAFqAoMCcjh8AKADoQBEAF0gfQF8AaAEoQB9AXwBchR8AaAFZAGhAXMUfAFWAAEAcRRuHnwARABdGH0CdAZ8AoMBRABdCn0BfAFWAAEAcUhxPGQCUwApA3o5WWllbGQgbm9uLWVtcHR5L25vbi1jb21tZW50IGxpbmVzIG9mIGEgc3RyaW5nIG9yIHNlcXVlbmNl+gEjTikHcrEAAAByBAAAAHLnAAAA2gpzcGxpdGxpbmVzcnYCAABy0wAAAHJ4AAAAKQPaBHN0cnPaAXPaAnNzchsAAAByGwAAAHIcAAAAcngAAABKCQAAcxAAAAAAAgwBDAEIAg4BCgIIAQwBegxcdysoXC5cdyspKiR6lgogICAgKD9QPG5hbWU+W14tXSspICgKICAgICAgICAtKD9QPHZlcj5bXi1dKykgKAogICAgICAgICAgICAtcHkoP1A8cHl2ZXI+W14tXSspICgKICAgICAgICAgICAgICAgIC0oP1A8cGxhdD4uKykKICAgICAgICAgICAgKT8KICAgICAgICApPwogICAgKT8KICAgIGMAAAAAAAAAAAAAAAAAAAAABAAAAEAAAABzhgAAAGUAWgFkAFoCZAFaA2QaZARkBYQBWgRkBmQHhABaBWQIZAmEAFoGZBtkC2QMhAFaB2QNZA6EAFoIZBxkD2QQhAFaCWUKoAtkEaEBWgxlDWQdZBJkE4QBgwFaDmUNZBRkFYQAgwFaD2UNZB5kFmQXhAGDAVoQZQ1kH2QYZBmEAYMBWhFkA1MAKSBybQAAAHozT2JqZWN0IHJlcHJlc2VudGluZyBhbiBhZHZlcnRpc2VkIGltcG9ydGFibGUgb2JqZWN0chsAAABOYwYAAAAAAAAAAAAAAAYAAAADAAAAQwAAAHM8AAAAdAB8AoMBcxJ0AWQBfAKDAoIBfAF8AF8CfAJ8AF8DdAR8A4MBfABfBXQEfASDAXwAXwZ8BXwAXwdkAFMAKQJOehNJbnZhbGlkIG1vZHVsZSBuYW1lKQjaBk1PRFVMRXJPAAAAcuYAAADaC21vZHVsZV9uYW1l2gV0dXBsZdoFYXR0cnNyLAEAAHKdAAAAKQZymgAAAHLmAAAAcrcCAAByuQIAAHIsAQAAcp0AAAByGwAAAHIbAAAAchwAAAByAwEAAGoJAABzDgAAAAABCAEKAQYBBgEKAQoBehNFbnRyeVBvaW50Ll9faW5pdF9fYwEAAAAAAAAAAAAAAAIAAAAFAAAAQwAAAHNIAAAAZAF8AGoAfABqAWYCFgB9AXwAagJyKnwBZAJkA6ADfABqAqEBFwA3AH0BfABqBHJEfAFkBGQFoAN8AGoEoQEWADcAfQF8AVMAKQZOegclcyA9ICVz+gE6ckUAAAB6BSBbJXNd+gEsKQVy5gAAAHK3AgAAcrkCAAByTAAAAHIsAQAAKQJymgAAAHK0AgAAchsAAAByGwAAAHIcAAAAcqsAAABzCQAAcwwAAAAAARABBgEUAQYBFAF6EkVudHJ5UG9pbnQuX19zdHJfX2MBAAAAAAAAAAAAAAABAAAAAwAAAEMAAABzDAAAAGQBdAB8AIMBFgBTACkCTnoURW50cnlQb2ludC5wYXJzZSglcimpAXKzAAAAcpkAAAByGwAAAHIbAAAAchwAAABymwAAAHsJAABzAgAAAAABehNFbnRyeVBvaW50Ll9fcmVwcl9fVGMCAAAAAAAAAAAAAAAEAAAABQAAAE8AAABzNAAAAHwBcgx8AnMMfANyHHQAagFkAXQCZAJkA40DAQB8AXIsfABqA3wCfAOOAQEAfACgBKEAUwApBHpICiAgICAgICAgUmVxdWlyZSBwYWNrYWdlcyBmb3IgdGhpcyBFbnRyeVBvaW50LCB0aGVuIHJlc29sdmUgaXQuCiAgICAgICAgekpQYXJhbWV0ZXJzIHRvIGxvYWQgYXJlIGRlcHJlY2F0ZWQuICBDYWxsIC5yZXNvbHZlIGFuZCAucmVxdWlyZSBzZXBhcmF0ZWx5LnJGAAAActEBAAApBXKJAQAAcooBAABylAAAAHJTAAAAcgsBAAApBHKaAAAAclMAAAByQQAAANoGa3dhcmdzchsAAAByGwAAAHIcAAAAcvgBAAB+CQAAcxIAAAAABAwBBAECAgIBAvwGBgQBDAF6D0VudHJ5UG9pbnQubG9hZGMBAAAAAAAAAAAAAAADAAAACgAAAEMAAABzWAAAAHQAfABqAWQBZwFkAmQDjQN9AXoSdAKgA3QEfABqBXwBoQNXAFMABAB0BmsKclIBAH0CAQB6EHQHdAh8AoMBgwGCAVcANQBkBH0CfgJYAFkAbgJYAGQEUwApBXpECiAgICAgICAgUmVzb2x2ZSB0aGUgZW50cnkgcG9pbnQgZnJvbSBpdHMgbW9kdWxlIGFuZCBhdHRycy4KICAgICAgICByFwAAAHIBAAAAKQLaCGZyb21saXN02gVsZXZlbE4pCXK2AAAAcrcCAADaCWZ1bmN0b29sc9oGcmVkdWNlcrcAAAByuQIAAHItAgAAcgYBAAByswAAACkDcpoAAAByugAAAHK5AQAAchsAAAByGwAAAHIcAAAAcgsBAACNCQAAcwoAAAAABBIBAgESARABehJFbnRyeVBvaW50LnJlc29sdmVjAwAAAAAAAAAAAAAABQAAAAYAAABDAAAAc0wAAAB8AGoAchZ8AGoBcxZ0AmQBfACDAoIBfABqAaADfABqAKEBfQN0BGoFfAN8AXwCfABqAGQCjQR9BHQGdAd0BGoIfASDAoMBAQBkAFMAKQNOeiZDYW4ndCByZXF1aXJlKCkgd2l0aG91dCBhIGRpc3RyaWJ1dGlvbikBciwBAAApCXIsAQAAcp0AAABycQAAAHIYAQAAcmIAAAByCwEAAHIkAQAAcgYAAAByDAEAACkFcpoAAAByMAEAAHIxAQAAcg4BAAByLQAAAHIbAAAAchsAAAByHAAAAHJTAAAAlwkAAHMKAAAAAAEMAQoHDgEUAXoSRW50cnlQb2ludC5yZXF1aXJlel1ccyooP1A8bmFtZT4uKz8pXHMqPVxzKig/UDxtb2R1bGU+W1x3Ll0rKVxzKig6XHMqKD9QPGF0dHI+W1x3Ll0rKSk/XHMqKD9QPGV4dHJhcz5cWy4qXF0pP1xzKiRjAwAAAAAAAAAAAAAACAAAAAYAAABDAAAAc2YAAAB8AGoAoAF8AaEBfQN8A3MeZAF9BHQCfAR8AYMCggF8A6ADoQB9BXwAoAR8BWQCGQChAX0GfAVkAxkAckp8BWQDGQCgBWQEoQFuAmQFfQd8AHwFZAYZAHwFZAcZAHwHfAZ8AoMFUwApCGEUAQAAUGFyc2UgYSBzaW5nbGUgZW50cnkgcG9pbnQgZnJvbSBzdHJpbmcgYHNyY2AKCiAgICAgICAgRW50cnkgcG9pbnQgc3ludGF4IGZvbGxvd3MgdGhlIGZvcm06OgoKICAgICAgICAgICAgbmFtZSA9IHNvbWUubW9kdWxlOnNvbWUuYXR0ciBbZXh0cmExLCBleHRyYTJdCgogICAgICAgIFRoZSBlbnRyeSBuYW1lIGFuZCBtb2R1bGUgbmFtZSBhcmUgcmVxdWlyZWQsIGJ1dCB0aGUgYGA6YXR0cnNgYCBhbmQKICAgICAgICBgYFtleHRyYXNdYGAgcGFydHMgYXJlIG9wdGlvbmFsCiAgICAgICAgejlFbnRyeVBvaW50IG11c3QgYmUgaW4gJ25hbWU9bW9kdWxlOmF0dHJzIFtleHRyYXNdJyBmb3JtYXRyLAEAANoEYXR0cnJFAAAAchsAAABy5gAAAHK6AAAAKQbaB3BhdHRlcm5ySQAAAHJPAAAA2glncm91cGRpY3TaDV9wYXJzZV9leHRyYXNyDgAAACkIcggBAADaA3NyY3KdAAAAclEAAAByjQEAANoDcmVzciwBAAByuQIAAHIbAAAAchsAAAByHAAAAHLoAAAArQkAAHMQAAAAAAsMAQQBBAEKAQgBDgEaAXoQRW50cnlQb2ludC5wYXJzZWMCAAAAAAAAAAAAAAADAAAABAAAAEMAAABzKAAAAHwBcwhkAVMAdACgAWQCfAEXAKEBfQJ8AmoCciJ0A4MAggF8AmoEUwApA05yGwAAANoBeCkFcmwAAABy6AAAANoFc3BlY3NyTwAAAHIsAQAAKQNyCAEAANoLZXh0cmFzX3NwZWNynwAAAHIbAAAAchsAAAByHAAAAHLFAgAAwQkAAHMMAAAAAAIEAQQBDgEGAQYBehhFbnRyeVBvaW50Ll9wYXJzZV9leHRyYXNjBAAAAAAAAAAAAAAABwAAAAUAAABDAAAAc1YAAAB0AHwBgwFzEnQBZAF8AYMCggFpAH0EdAJ8AoMBRABdMn0FfACgA3wFfAOhAn0GfAZqBHwEawZyRnQBZAJ8AXwGagSDA4IBfAZ8BHwGagQ8AHEefARTACkDehpQYXJzZSBhbiBlbnRyeSBwb2ludCBncm91cHoSSW52YWxpZCBncm91cCBuYW1lehVEdXBsaWNhdGUgZW50cnkgcG9pbnQpBXK2AgAAck8AAAByeAAAAHLoAAAAcuYAAAApB3IIAQAAck4AAADaBWxpbmVzcp0AAADaBHRoaXNydwIAANoCZXByGwAAAHIbAAAAchwAAADaC3BhcnNlX2dyb3VwygkAAHMSAAAAAAMIAQoBBAEMAQwBCgEOAQwBehZFbnRyeVBvaW50LnBhcnNlX2dyb3VwYwMAAAAAAAAAAAAAAAYAAAAGAAAAQwAAAHN0AAAAdAB8AXQBgwJyFHwBoAKhAH0Bbgh0A3wBgwF9AWkAfQN8AUQAXUpcAn0EfQV8BGQBawhyQnwFczpxJHQEZAKDAYIBfASgBaEAfQR8BHwDawZyXHQEZAN8BIMCggF8AKAGfAR8BXwCoQN8A3wEPABxJHwDUwApBHohUGFyc2UgYSBtYXAgb2YgZW50cnkgcG9pbnQgZ3JvdXBzTnolRW50cnkgcG9pbnRzIG11c3QgYmUgbGlzdGVkIGluIGdyb3Vwc3oURHVwbGljYXRlIGdyb3VwIG5hbWUpB3KxAAAAcicAAAByLQAAAHJ5AAAAck8AAABydgIAAHLOAgAAKQZyCAEAANoEZGF0YXKdAAAA2gRtYXBzck4AAAByywIAAHIbAAAAchsAAAByHAAAANoJcGFyc2VfbWFw1wkAAHMcAAAAAAMKAQoCCAEEAQwBCAEEAQIBCAEIAQgBCgEUAXoURW50cnlQb2ludC5wYXJzZV9tYXApA3IbAAAAchsAAABOKQFUKQJOTikBTikBTikBTikSchcAAAByGAAAAHIZAAAAchoAAAByAwEAAHKrAAAAcpsAAABy+AEAAHILAQAAclMAAABymwEAAHLCAQAAcsMCAABySQEAAHLoAAAAcsUCAAByzgIAAHLRAgAAchsAAAByGwAAAHIbAAAAchwAAABybQAAAGcJAABzJAAAAAgBBAIKCQgICAMKDwgKCg0EAQL/BAkCAQwTAgEKCAIBDAwCAWMBAAAAAAAAAAAAAAACAAAABQAAAEMAAABzPgAAAHwAcwhkAVMAdABqAaACfAChAX0BfAFkAhkAoANkA6EBcjp0AGoBoAR8AWQAZAKFAhkAZAQXAKEBUwB8AFMAKQVOcrwAAAByrAAAAHoEbWQ1PSkBcrwAAAApBXIFAAAAcugAAADaCHVybHBhcnNlctMAAADaCnVybHVucGFyc2UpAnIeAQAA2gZwYXJzZWRyGwAAAHIbAAAAchwAAADaFF9yZW1vdmVfbWQ1X2ZyYWdtZW506wkAAHMMAAAAAAEEAQQBDAEOARgBctUCAABjAQAAAAAAAAAAAAAABgAAAAMAAABDAAAAc0AAAABkAWQChAB9AXQAfAF8AIMCfQJ0AXQCfAKDAWQDgwJ9A3wDoANkBKEBXAN9BH0EfQV0BHwFoAWhAIMBcD5kBVMAKQZ6hAogICAgR2l2ZW4gYW4gaXRlcmFibGUgb2YgbGluZXMgZnJvbSBhIE1ldGFkYXRhIGZpbGUsIHJldHVybgogICAgdGhlIHZhbHVlIG9mIHRoZSBWZXJzaW9uIGZpZWxkLCBpZiBwcmVzZW50LCBvciBOb25lIG90aGVyd2lzZS4KICAgIGMBAAAAAAAAAAAAAAABAAAAAwAAAFMAAABzDgAAAHwAoAChAKABZAGhAVMAKQJOegh2ZXJzaW9uOikCclkBAABy0wAAACkBcncCAAByGwAAAHIbAAAAchwAAADaD2lzX3ZlcnNpb25fbGluZfkJAABzAgAAAAABeitfdmVyc2lvbl9mcm9tX2ZpbGUuPGxvY2Fscz4uaXNfdmVyc2lvbl9saW5lcrwAAAByugIAAE4pBnIHAAAAcnoCAAByaAIAANoJcGFydGl0aW9ucnUAAABydgIAACkGcssCAABy1gIAANoNdmVyc2lvbl9saW5lc3J3AgAActEAAAByuAEAAHIbAAAAchsAAAByHAAAANoSX3ZlcnNpb25fZnJvbV9maWxl9AkAAHMKAAAAAAUIAgoBDgEQAXLZAgAAYwAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAHOaAQAAZQBaAWQAWgJkAVoDZAJaBGQDZANkA2QDZQVkA2UGZgdkBGQFhAFaB2UIZFNkBmQHhAGDAVoJZAhkCYQAWgplC2QKZAuEAIMBWgxkDGQNhABaDWQOZA+EAFoOZBBkEYQAWg9kEmQThABaEGQUZBWEAFoRZBZkF4QAWhJkGGQZhABaE2ULZBpkG4QAgwFaFGULZBxkHYQAgwFaFWQeZB+EAFoWZQtkIGQhhACDAVoXZQtkImQjhACDAVoYZRlkJGQlhACDAVoaZCZkJ4QAWhtkVGQpZCqEAVocZCtkLIQAWh1kLWQuhABaHmQvZDCEAFofZFVkMmQzhAFaIGQ0ZDWEAFohZDZkN4QAWiJkOGQ5hABaI2Q6ZDuEAFokhwBmAWQ8ZD2ECFolZSZlJ2Q+gwKQAXM0WyVlCGRWZD9kQIQBgwFaKGRBZEKEAFopZENkRIQAWipkV2RFZEaEAVorZEdkSIQAWixkWGRJZEqEAVotZEtkTIQAWi5kTWROhABaL2RPZFCEAFowZQtkUWRShACDAVoxhwAEAFoyUwApWXJrAAAAejVXcmFwIGFuIGFjdHVhbCBvciBwb3RlbnRpYWwgc3lzLnBhdGggZW50cnkgdy9tZXRhZGF0YXIzAgAATmMIAAAAAAAAAAAAAAAIAAAAAgAAAEMAAABzRgAAAHQAfANwCGQBgwF8AF8BfARkAGsJciB0AnwEgwF8AF8DfAV8AF8EfAZ8AF8FfAF8AF8GfAd8AF8HfAJwPnQIfABfCWQAUwApAk7aB1Vua25vd24pCnJ0AAAAci4BAABydQAAANoIX3ZlcnNpb25yVQEAAHJLAAAAch4BAABydAIAAHKLAAAA2glfcHJvdmlkZXIpCHKaAAAAch4BAAByNwIAAHIuAQAAch4AAAByVQEAAHJLAAAAcnQCAAByGwAAAHIbAAAAchwAAAByAwEAAAUKAABzEAAAAAAEDgEIAQoBBgEGAQYBBgF6FURpc3RyaWJ1dGlvbi5fX2luaXRfX2MEAAAAAAAAAAAAAAALAAAABwAAAEsAAABzfgAAAGQAZwFkARQAXAR9BX0GfQd9CHQAagGgAnwCoQFcAn0CfQl8CaADoQB0BGsGcl50BHwJoAOhABkAfQB0BXwCgwF9CnwKcl58CqAGZAJkA2QEZAWhBFwEfQV9Bn0HfQh8AHwBfANmAnwFfAZ8B3wIZAacBHwElwKOAaAHoQBTACkHTnLPAAAAcuYAAADaA3ZlctoFcHl2ZXJyUAAAACkEci4BAAByHgAAAHJVAQAAcksAAAApCHLAAAAAcsEAAAByUQIAAHJZAQAA2hFfZGlzdHJpYnV0aW9uSW1wbNoIRUdHX05BTUVyTgAAANoPX3JlbG9hZF92ZXJzaW9uKQtyCAEAAHIeAQAAct8BAAByNwIAAHIqAAAAci4BAAByHgAAAHJVAQAAcksAAAByVAIAAHJJAAAAchsAAAByGwAAAHIcAAAAckoCAAASCgAAcy4AAAAAAhIBEAEMAQwCCAEEAQQBAgACAAIAAv8MAwIBAgAC/wIBAgACAQIAAv4EAgL+ehpEaXN0cmlidXRpb24uZnJvbV9sb2NhdGlvbmMBAAAAAAAAAAAAAAABAAAAAQAAAEMAAABzBAAAAHwAUwByHQAAAHIbAAAAcpkAAAByGwAAAHIbAAAAchwAAABy4QIAACMKAABzAgAAAAABehxEaXN0cmlidXRpb24uX3JlbG9hZF92ZXJzaW9uYwEAAAAAAAAAAAAAAAEAAAAGAAAAQwAAAHMoAAAAfABqAHwAagF8AGoCdAN8AGoEgwF8AGoFcBxkAXwAagZwJGQBZgZTAHLuAQAAKQfaDnBhcnNlZF92ZXJzaW9ucnQCAAByOwAAAHLVAgAAch4BAAByVQEAAHJLAAAAcpkAAAByGwAAAHIbAAAAchwAAAByXAEAACYKAABzDgAAAAADBAEEAQQBCAEIAQj6ehREaXN0cmlidXRpb24uaGFzaGNtcGMBAAAAAAAAAAAAAAABAAAAAgAAAEMAAABzCgAAAHQAfABqAYMBUwByHQAAACkC2gRoYXNoclwBAABymQAAAHIbAAAAchsAAAByHAAAANoIX19oYXNoX18xCgAAcwIAAAAAAXoVRGlzdHJpYnV0aW9uLl9faGFzaF9fYwIAAAAAAAAAAAAAAAIAAAACAAAAQwAAAHMMAAAAfABqAHwBagBrAFMAch0AAACpAXJcAQAAqQJymgAAAHJlAQAAchsAAAByGwAAAHIcAAAA2gZfX2x0X180CgAAcwIAAAAAAXoTRGlzdHJpYnV0aW9uLl9fbHRfX2MCAAAAAAAAAAAAAAACAAAAAgAAAEMAAABzDAAAAHwAagB8AWoAawFTAHIdAAAAcuUCAABy5gIAAHIbAAAAchsAAAByHAAAANoGX19sZV9fNwoAAHMCAAAAAAF6E0Rpc3RyaWJ1dGlvbi5fX2xlX19jAgAAAAAAAAAAAAAAAgAAAAIAAABDAAAAcwwAAAB8AGoAfAFqAGsEUwByHQAAAHLlAgAAcuYCAAByGwAAAHIbAAAAchwAAADaBl9fZ3RfXzoKAABzAgAAAAABehNEaXN0cmlidXRpb24uX19ndF9fYwIAAAAAAAAAAAAAAAIAAAACAAAAQwAAAHMMAAAAfABqAHwBagBrBVMAch0AAABy5QIAAHLmAgAAchsAAAByGwAAAHIcAAAA2gZfX2dlX189CgAAcwIAAAAAAXoTRGlzdHJpYnV0aW9uLl9fZ2VfX2MCAAAAAAAAAAAAAAACAAAAAwAAAEMAAABzHAAAAHQAfAF8AGoBgwJzEGQBUwB8AGoCfAFqAmsCUwBy7QEAACkDcrEAAABylwAAAHJcAQAAcuYCAAByGwAAAHIbAAAAchwAAADaBl9fZXFfX0AKAABzBgAAAAABDAIEAXoTRGlzdHJpYnV0aW9uLl9fZXFfX2MCAAAAAAAAAAAAAAACAAAAAgAAAEMAAABzCgAAAHwAfAFrAgwAUwByHQAAAHIbAAAAcuYCAAByGwAAAHIbAAAAchwAAADaBl9fbmVfX0YKAABzAgAAAAABehNEaXN0cmlidXRpb24uX19uZV9fYwEAAAAAAAAAAAAAAAIAAAAIAAAAQwAAAHM2AAAAegh8AGoAVwBTAAQAdAFrCnIwAQABAAEAfABqAqADoQAEAHwAXwB9AXwBBgBZAFMAWABkAFMAch0AAAApBNoEX2tleXItAgAAci4BAAByWQEAAHJkAQAAchsAAAByGwAAAHIcAAAAcjsAAABNCgAAcwoAAAAAAgIBCAEOARABehBEaXN0cmlidXRpb24ua2V5YwEAAAAAAAAAAAAAAAEAAAADAAAAQwAAAHMcAAAAdAB8AGQBgwJzFnQBfABqAoMBfABfA3wAagNTACkCTtoPX3BhcnNlZF92ZXJzaW9uKQRywwAAAHIjAAAAch4AAABy7gIAAHKZAAAAchsAAAByGwAAAHIcAAAAcuICAABVCgAAcwYAAAAAAgoBDAJ6G0Rpc3RyaWJ1dGlvbi5wYXJzZWRfdmVyc2lvbmMBAAAAAAAAAAAAAAAEAAAABgAAAEMAAABzWAAAAHQAagFqAn0BdAN8AGoEfAGDAn0CfAJzHGQAUwB8AGoBcyZkAFMAdAWgBmQBoQGgB6EAoAhkAmQDoQJ9A3QJoAp8A2oLZgB0DHwAgwGOAXQNoQIBAGQAUwApBE5hPgEAAAogICAgICAgICAgICAne3Byb2plY3RfbmFtZX0gKHt2ZXJzaW9ufSknIGlzIGJlaW5nIHBhcnNlZCBhcyBhIGxlZ2FjeSwKICAgICAgICAgICAgbm9uIFBFUCA0NDAsCiAgICAgICAgICAgIHZlcnNpb24uIFlvdSBtYXkgZmluZCBvZGQgYmVoYXZpb3IgYW5kIHNvcnQgb3JkZXIuCiAgICAgICAgICAgIEluIHBhcnRpY3VsYXIgaXQgd2lsbCBiZSBzb3J0ZWQgYXMgbGVzcyB0aGFuIDAuMC4gSXQKICAgICAgICAgICAgaXMgcmVjb21tZW5kZWQgdG8gbWlncmF0ZSB0byBQRVAgNDQwIGNvbXBhdGlibGUKICAgICAgICAgICAgdmVyc2lvbnMuCiAgICAgICAgICAgIHK9AQAActAAAAApDnISAAAAch4AAAByIQAAAHKxAAAAcu4CAABycQEAAHJyAQAAcnYCAABy1QAAAHKJAQAAcooBAAByogAAANoEdmFyc3IVAAAAKQRymgAAANoCTFbaCWlzX2xlZ2FjeXJ3AQAAchsAAAByGwAAAHIcAAAA2hRfd2Fybl9sZWdhY3lfdmVyc2lvblwKAABzFgAAAAABCAEMAQQBBAgGAQQCDgcCAAL5BAl6IURpc3RyaWJ1dGlvbi5fd2Fybl9sZWdhY3lfdmVyc2lvbmMBAAAAAAAAAAAAAAAEAAAACAAAAEMAAABzWgAAAHoIfABqAFcAUwAEAHQBawpyVAEAAQABAHwAoAKhAH0BfAFkAGsIckx8AKADfABqBKEBfQJkAaAFfABqBHwCoQJ9A3QGfAN8AIMCggF8AQYAWQBTAFgAZABTACkCTno0TWlzc2luZyAnVmVyc2lvbjonIGhlYWRlciBhbmQvb3Ige30gZmlsZSBhdCBwYXRoOiB7fSkHctsCAAByLQIAANoMX2dldF92ZXJzaW9u2h5fZ2V0X21ldGFkYXRhX3BhdGhfZm9yX2Rpc3BsYXnaCFBLR19JTkZPcqIAAAByTwAAACkEcpoAAAByHgAAAHLBAAAAco0BAAByGwAAAHIbAAAAchwAAAByHgAAAHYKAABzGgAAAAACAgEIAQ4BCAEIAQwCAv8CAgQAAv4EAwoCehREaXN0cmlidXRpb24udmVyc2lvbmMBAAAAAAAAAAAAAAABAAAACAAAAEMAAABzNAAAAHoIfABqAFcAUwAEAHQBawpyLAEAAQABAHwAoAJ8AKADoQChAXwAXwBZAG4CWAB8AGoAUwApAXp+CiAgICAgICAgQSBtYXAgb2YgZXh0cmEgdG8gaXRzIGxpc3Qgb2YgKGRpcmVjdCkgcmVxdWlyZW1lbnRzCiAgICAgICAgZm9yIHRoaXMgZGlzdHJpYnV0aW9uLCBpbmNsdWRpbmcgdGhlIG51bGwgZXh0cmEuCiAgICAgICAgKQTaFl9EaXN0cmlidXRpb25fX2RlcF9tYXByLQIAANoOX2ZpbHRlcl9leHRyYXPaDl9idWlsZF9kZXBfbWFwcpkAAAByGwAAAHIbAAAAchwAAADaCF9kZXBfbWFwhQoAAHMKAAAAAAYCAQgBDgEWAXoVRGlzdHJpYnV0aW9uLl9kZXBfbWFwYwEAAAAAAAAAAAAAAAcAAAAFAAAAQwAAAHNyAAAAdAB0AWQBfACDAoMBRABdXn0BfAF9AnwAoAJ8AaEBfQN8AaADZAKhAVwDfQJ9BH0FfAVvRHQEfAWDAXBEdAV8BYMBDAB9BnwGck5nAH0DdAZ8AoMBcFhkAX0CfACgB3wCZwChAqAIfAOhAQEAcQ58AFMAKQN6pAogICAgICAgIEdpdmVuIGEgbWFwcGluZyBvZiBleHRyYXMgdG8gZGVwZW5kZW5jaWVzLCBzdHJpcCBvZmYKICAgICAgICBlbnZpcm9ubWVudCBtYXJrZXJzIGFuZCBmaWx0ZXIgb3V0IGFueSBkZXBlbmRlbmNpZXMKICAgICAgICBub3QgbWF0Y2hpbmcgdGhlIG1hcmtlcnMuCiAgICAgICAgTnK6AgAAKQlyJAEAAHIHAAAAcikBAABy1wIAAHJ8AAAAcn0AAAByegAAAHIQAQAAci0BAAApB9oCZG1ySgEAANoJbmV3X2V4dHJhcg4BAABy0QAAAHJMAQAA2gxmYWlsc19tYXJrZXJyGwAAAHIbAAAAchwAAABy9wIAAJEKAABzGgAAAAAHEgEEAQoBEAEEAQgBCP4CBAQBBAEMAhQBehtEaXN0cmlidXRpb24uX2ZpbHRlcl9leHRyYXNjAQAAAAAAAAAAAAAABQAAAAYAAABDAAAAc0AAAABpAH0BZAFEAF0yfQJ0AHwAoAF8AqEBgwFEAF0eXAJ9A30EfAGgAnwDZwChAqADdAR8BIMBoQEBAHEacQh8AVMAKQJOKQJ6DHJlcXVpcmVzLnR4dHoLZGVwZW5kcy50eHQpBXJ5AAAA2g1fZ2V0X21ldGFkYXRhchABAAByLQEAAHJzAAAAKQVymgAAAHL6AgAAcuYAAABySgEAAHIOAQAAchsAAAByGwAAAHIcAAAAcvgCAACnCgAAcwoAAAAAAQQBCAEWARoBehtEaXN0cmlidXRpb24uX2J1aWxkX2RlcF9tYXByGwAAAGMCAAAAAAAAAAAAAAAFAAAACQAAAEMAAABzZgAAAHwAagB9AmcAfQN8A6ABfAKgAmQBZAKhAqEBAQB8AUQAXUB9BHoWfAOgAXwCdAN8BIMBGQChAQEAVwBxIAQAdARrCnJeAQABAAEAdAVkA3wAfARmAhYAgwGCAVkAcSBYAHEgfANTACkEekBMaXN0IG9mIFJlcXVpcmVtZW50cyBuZWVkZWQgZm9yIHRoaXMgZGlzdHJvIGlmIGBleHRyYXNgIGFyZSB1c2VkTnIbAAAAeh8lcyBoYXMgbm8gc3VjaCBleHRyYSBmZWF0dXJlICVyKQZy+QIAAHItAQAAcswAAAByegAAAHK1AAAAcnEAAAApBXKaAAAAciwBAABy+gIAANoEZGVwc3JUAgAAchsAAAByGwAAAHIcAAAAchgBAACuCgAAcxYAAAAAAgYBBAESAQgBAgEWAQ4BAgEK/wwDehVEaXN0cmlidXRpb24ucmVxdWlyZXNjAgAAAAAAAAAAAAAAAwAAAAgAAABDAAAAcywAAAB6EHwAagCgAXwBoQF9AlcAbhYEAHQCawpyJgEAAQABAFkAZAFTAFgAfAJTACkCeksKICAgICAgICBSZXR1cm4gdGhlIHBhdGggdG8gdGhlIGdpdmVuIG1ldGFkYXRhIGZpbGUsIGlmIGF2YWlsYWJsZS4KICAgICAgICB6Eltjb3VsZCBub3QgZGV0ZWN0XSkDctwCAABysQEAAHJ7AQAAcrIBAAByGwAAAHIbAAAAchwAAABy9AIAALwKAABzCgAAAAAEAgQQBA4BCAJ6K0Rpc3RyaWJ1dGlvbi5fZ2V0X21ldGFkYXRhX3BhdGhfZm9yX2Rpc3BsYXljAgAAAAAAAAAAAAAAAwAAAAMAAABjAAAAcyQAAAB8AKAAfAGhAXIgfACgAXwBoQFEAF0KfQJ8AlYAAQBxFGQAUwByHQAAACkCcu8AAABy8QAAACkDcpoAAABy5gAAAHJ3AgAAchsAAAByGwAAAHIcAAAAcv0CAADNCgAAcwYAAAAAAQoBDgF6GkRpc3RyaWJ1dGlvbi5fZ2V0X21ldGFkYXRhYwEAAAAAAAAAAAAAAAMAAAADAAAAQwAAAHMYAAAAfACgAHwAagGhAX0BdAJ8AYMBfQJ8AlMAch0AAAApA3L9AgAAcvUCAABy2QIAACkDcpoAAAByywIAAHIeAAAAchsAAAByGwAAAHIcAAAAcvMCAADSCgAAcwYAAAAAAQwBCAJ6GURpc3RyaWJ1dGlvbi5fZ2V0X3ZlcnNpb25GYwMAAAAAAAAAAAAAAAQAAAAEAAAAQwAAAHNWAAAAfAFkAWsIcg50AGoBfQF8AGoCfAF8AmQCjQIBAHwBdABqAWsIclJ0A3wAagSDAQEAfACgBWQDoQFEAF0WfQN8A3QAagZrBnI6dAd8A4MBAQBxOmQBUwApBHo+RW5zdXJlIGRpc3RyaWJ1dGlvbiBpcyBpbXBvcnRhYmxlIG9uIGBwYXRoYCAoZGVmYXVsdD1zeXMucGF0aClOchwBAAD6Fm5hbWVzcGFjZV9wYWNrYWdlcy50eHQpCHJKAAAAcsEAAAByHQEAAHKTAAAAch4BAABy/QIAAHK0AAAAcmEAAAApBHKaAAAAcsEAAABy1QAAANoDcGtnchsAAAByGwAAAHIcAAAA2ghhY3RpdmF0ZdgKAABzEAAAAAACCAEGAQ4BCgEKAQ4BCgF6FURpc3RyaWJ1dGlvbi5hY3RpdmF0ZWMBAAAAAAAAAAAAAAACAAAABAAAAEMAAABzOAAAAGQBdAB8AGoBgwF0AHwAagKDAXwAagNwGnQEZgMWAH0BfABqBXI0fAFkAnwAagUXADcAfQF8AVMAKQN6QFJldHVybiB3aGF0IHRoaXMgZGlzdHJpYnV0aW9uJ3Mgc3RhbmRhcmQgLmVnZyBmaWxlbmFtZSBzaG91bGQgYmV6CiVzLSVzLXB5JXNymgEAACkGcnsAAAByLgEAAHIeAAAAclUBAAByawEAAHJLAAAAKQJymgAAAHKRAQAAchsAAAByGwAAAHIcAAAActsBAADjCgAAcxAAAAAAAgIBCAAIAQj+BgUGAQ4BehVEaXN0cmlidXRpb24uZWdnX25hbWVjAQAAAAAAAAAAAAAAAQAAAAMAAABDAAAAcyAAAAB8AGoAchRkAXwAfABqAGYCFgBTAHQBfACDAVMAZABTACkCTnoHJXMgKCVzKSkCch4BAAByswAAAHKZAAAAchsAAAByGwAAAHIcAAAAcpsAAADuCgAAcwYAAAAAAQYBDgJ6FURpc3RyaWJ1dGlvbi5fX3JlcHJfX2MBAAAAAAAAAAAAAAACAAAACAAAAEMAAABzQAAAAHoQdAB8AGQBZACDA30BVwBuGAQAdAFrCnIoAQABAAEAZAB9AVkAbgJYAHwBcDBkAn0BZAN8AGoCfAFmAhYAUwApBE5yHgAAAHoRW3Vua25vd24gdmVyc2lvbl16BSVzICVzKQNytwAAAHJPAAAAci4BAAApAnKaAAAAch4AAAByGwAAAHIbAAAAchwAAAByqwAAAPQKAABzDAAAAAABAgEQAQ4BCgEIAXoURGlzdHJpYnV0aW9uLl9fc3RyX19jAgAAAAAAAAAAAAAAAgAAAAMAAABDAAAAcx4AAAB8AaAAZAGhAXISdAF8AYMBggF0AnwAagN8AYMCUwApAnpBRGVsZWdhdGUgYWxsIHVucmVjb2duaXplZCBwdWJsaWMgYXR0cmlidXRlcyB0byAubWV0YWRhdGEgcHJvdmlkZXJy0QAAACkEctMAAAByLQIAAHK3AAAActwCAAApAnKaAAAAcsICAAByGwAAAHIbAAAAchwAAADaC19fZ2V0YXR0cl9f/AoAAHMGAAAAAAIKAQgBehhEaXN0cmlidXRpb24uX19nZXRhdHRyX19jAQAAAAAAAAAAAAAAAQAAAAYAAAADAAAAcy4AAAB0AHQBdAJ0A3wAgwKgBKEAgwF0AWQBZAKEAHwAagWgBKEARACDAYMBQgCDAVMAKQNOYwEAAAAAAAAAAAAAAAIAAAAEAAAAcwAAAHMcAAAAfABdFH0BfAGgAGQAoQFzAnwBVgABAHECZAFTAKkCctEAAABOKQFy0wAAACkCchQBAABywgIAAHIbAAAAchsAAAByHAAAAHIWAQAABQsAAHMGAAAABAECAQr/eidEaXN0cmlidXRpb24uX19kaXJfXy48bG9jYWxzPi48Z2VuZXhwcj4pBnIkAQAAcigBAADaBXN1cGVycmsAAADaB19fZGlyX19y3AIAAHKZAAAAcmgBAAByGwAAAHIcAAAAcgUDAAACCwAAcw4AAAAAAQIBEAEIAQj/Bv8C/3oURGlzdHJpYnV0aW9uLl9fZGlyX19yBQMAAGMDAAAAAAAAAAAAAAAEAAAABQAAAEsAAABzHgAAAHwAagB0AXwBgwF0AmoDoAR8AaEBfAJmA3wDjgFTAHIdAAAAKQVySgIAAHJaAgAAcsAAAABywQAAAHLfAQAAKQRyCAEAAHKRAQAAcjcCAAByKgAAAHIbAAAAchsAAAByHAAAAHJGAgAADwsAAHMOAAAAAAIEAQYACgAC/wICAv56GkRpc3RyaWJ1dGlvbi5mcm9tX2ZpbGVuYW1lYwEAAAAAAAAAAAAAAAIAAAADAAAAQwAAAHM8AAAAdAB8AGoBdAJqA2oEgwJyImQBfABqBXwAagFmAhYAfQFuEGQCfABqBXwAagFmAhYAfQF0BqAHfAGhAVMAKQN6P1JldHVybiBhIGBgUmVxdWlyZW1lbnRgYCB0aGF0IG1hdGNoZXMgdGhpcyBkaXN0cmlidXRpb24gZXhhY3RseXoGJXM9PSVzegclcz09PSVzKQhysQAAAHLiAgAAchIAAAByHgAAAHIfAAAAci4BAABybAAAAHLoAAAAKQJymgAAANoEc3BlY3IbAAAAchsAAAByHAAAAHI6AQAAFgsAAHMIAAAAAAIQARICEAJ6G0Rpc3RyaWJ1dGlvbi5hc19yZXF1aXJlbWVudGMDAAAAAAAAAAAAAAAEAAAABAAAAEMAAABzLgAAAHwAoAB8AXwCoQJ9A3wDZAFrCHImdAFkAnwBfAJmAmYBFgCDAYIBfAOgAqEAUwApA3o9UmV0dXJuIHRoZSBgbmFtZWAgZW50cnkgcG9pbnQgb2YgYGdyb3VwYCBvciByYWlzZSBJbXBvcnRFcnJvck56GEVudHJ5IHBvaW50ICVyIG5vdCBmb3VuZCkDclkAAAByBgEAAHL4AQAAKQRymgAAAHJOAAAAcuYAAAByzQIAAHIbAAAAchsAAAByHAAAAHJXAAAAHwsAAHMIAAAAAAIMAQgBEgF6HURpc3RyaWJ1dGlvbi5sb2FkX2VudHJ5X3BvaW50YwIAAAAAAAAAAAAAAAMAAAAIAAAAQwAAAHNQAAAAegp8AGoAfQJXAG4sBAB0AWsKcjYBAAEAAQB0AqADfACgBGQBoQF8AKECBAB9AnwAXwBZAG4CWAB8AWQCawlyTHwCoAV8AWkAoQJTAHwCUwApA3LsAAAAehBlbnRyeV9wb2ludHMudHh0TikG2gdfZXBfbWFwci0CAABybQAAAHLRAgAAcv0CAAByzAAAACkDcpoAAAByTgAAANoGZXBfbWFwchsAAAByGwAAAHIcAAAAclgAAAAmCwAAcxQAAAAAAgIBCgEOAQQBCAAC/xADCAEMAXoaRGlzdHJpYnV0aW9uLmdldF9lbnRyeV9tYXBjAwAAAAAAAAAAAAAAAwAAAAMAAABDAAAAcxAAAAB8AKAAfAGhAaABfAKhAVMAcu0AAAApAnJYAAAAcswAAAByFwEAAHIbAAAAchsAAAByHAAAAHJZAAAAMgsAAHMCAAAAAAJ6G0Rpc3RyaWJ1dGlvbi5nZXRfZW50cnlfaW5mb2MEAAAAAAAAAAAAAAAKAAAACAAAAEMAAABzNAEAAHwCcAh8AGoAfQJ8AnMSZAFTAHQBfAKDAX0EdAJqA6AEfAShAX0FZAJkA4QAfAFEAIMBfQZ0BXwGgwFEAF18XAJ9B30IfAh8BGsCcl58A3JWAQBx7HG4AQBkAVMAcTx8CHwFawJyPHwAagZ0B2sCcjx8A3OKfAR8BnwHZAGFAhkAawZyigEAZAFTAHwBdAhqA2sIcpx8AKAJoQABAHwBoAp8B3wCoQIBAHwGoAp8B3wEoQIBAAEAcexxPHwBdAhqA2sIcsx8AKAJoQABAHwDct58AaAKZAR8AqECAQBuCnwBoAt8AqEBAQBkAVMAehR8BqAMfAR8B2QFFwChAn0JVwBuHAQAdA1rCpABchwBAAEAAQBZAJABcTBZAHHsWAB8BnwJPQB8AXwJPQB8CX0HcexkAVMAKQZh5AIAAEVuc3VyZSBzZWxmLmxvY2F0aW9uIGlzIG9uIHBhdGgKCiAgICAgICAgSWYgcmVwbGFjZT1GYWxzZSAoZGVmYXVsdCk6CiAgICAgICAgICAgIC0gSWYgbG9jYXRpb24gaXMgYWxyZWFkeSBpbiBwYXRoIGFueXdoZXJlLCBkbyBub3RoaW5nLgogICAgICAgICAgICAtIEVsc2U6CiAgICAgICAgICAgICAgLSBJZiBpdCdzIGFuIGVnZyBhbmQgaXRzIHBhcmVudCBkaXJlY3RvcnkgaXMgb24gcGF0aCwKICAgICAgICAgICAgICAgIGluc2VydCBqdXN0IGFoZWFkIG9mIHRoZSBwYXJlbnQuCiAgICAgICAgICAgICAgLSBFbHNlOiBhZGQgdG8gdGhlIGVuZCBvZiBwYXRoLgogICAgICAgIElmIHJlcGxhY2U9VHJ1ZToKICAgICAgICAgICAgLSBJZiBsb2NhdGlvbiBpcyBhbHJlYWR5IG9uIHBhdGggYW55d2hlcmUgKG5vdCBlZ2dzKQogICAgICAgICAgICAgIG9yIGhpZ2hlciBwcmlvcml0eSB0aGFuIGl0cyBwYXJlbnQgKGVnZ3MpCiAgICAgICAgICAgICAgZG8gbm90aGluZy4KICAgICAgICAgICAgLSBFbHNlOgogICAgICAgICAgICAgIC0gSWYgaXQncyBhbiBlZ2cgYW5kIGl0cyBwYXJlbnQgZGlyZWN0b3J5IGlzIG9uIHBhdGgsCiAgICAgICAgICAgICAgICBpbnNlcnQganVzdCBhaGVhZCBvZiB0aGUgcGFyZW50LAogICAgICAgICAgICAgICAgcmVtb3ZpbmcgYW55IGxvd2VyLXByaW9yaXR5IGVudHJpZXMuCiAgICAgICAgICAgICAgLSBFbHNlOiBhZGQgaXQgdG8gdGhlIGZyb250IG9mIHBhdGguCiAgICAgICAgTmMBAAAAAAAAAAAAAAACAAAABAAAAFMAAABzHAAAAGcAfABdFH0BfAFyFHQAfAGDAXAWfAGRAnEEUwByGwAAAHKRAgAAcpICAAByGwAAAHIbAAAAchwAAAByUAIAAFALAABzBAAAAAYAAgB6KkRpc3RyaWJ1dGlvbi5pbnNlcnRfb24uPGxvY2Fscz4uPGxpc3Rjb21wPnIBAAAAcg8AAAApDnIeAQAAcloCAABywAAAAHLBAAAAcqUBAADaCWVudW1lcmF0ZXJ0AgAAcoAAAABySgAAANoWY2hlY2tfdmVyc2lvbl9jb25mbGljdHIgAQAAcsUAAABylQIAAHJPAAAAKQpymgAAAHLBAAAA2gNsb2Ny1QAAANoEbmxvY9oEYmRpctoFbnBhdGhykwIAAHIaAQAA2gJucHIbAAAAchsAAAByHAAAAHIdAQAANgsAAHNAAAAAABQKAQQBBAIIAQwBDgIQAQgBBAEGBAgBEgMUAQYBCgEIAQwBDAEGAgoBCAEEAQ4CCgEEBAIBFAEQAQwCDAIGAnoWRGlzdHJpYnV0aW9uLmluc2VydF9vbmMBAAAAAAAAAAAAAAAFAAAABgAAAEMAAABzqAAAAHwAagBkAWsCcg5kAFMAdAGgAnwAoANkAqEBoQF9AXQEfABqBYMBfQJ8AKADZAOhAUQAXXB9A3wDdAZqB2sHczJ8A3wBawZzMnwDdAhrBnJScTJ8A2QEawZyXHEydAl0BmoHfAMZAGQFZACDA30EfARyjnQEfASDAaAKfAKhAXMyfASgCnwAagWhAXKOcTJ0C2QGfAN8BHwAagVmAxYAgwEBAHEyZABTACkHTtoKc2V0dXB0b29sc3L/AgAAeg10b3BfbGV2ZWwudHh0KQPaDXBrZ19yZXNvdXJjZXNyEAMAANoEc2l0ZXKkAQAAeklNb2R1bGUgJXMgd2FzIGFscmVhZHkgaW1wb3J0ZWQgZnJvbSAlcywgYnV0ICVzIGlzIGJlaW5nIGFkZGVkIHRvIHN5cy5wYXRoKQxyOwAAAHInAAAAcigAAABy/QIAAHJ/AAAAch4BAABySgAAAHK0AAAAcoECAABytwAAAHLTAAAA2g1pc3N1ZV93YXJuaW5nKQVymgAAANoDbnNwcgsDAADaB21vZG5hbWXaAmZuchsAAAByGwAAAHIcAAAAcgoDAAB6CwAAcyoAAAAAAQoCBAIQAQoBDgESAQb/AgICAQgBAgESARIBCv8CAgIBAgECAQr/Av96I0Rpc3RyaWJ1dGlvbi5jaGVja192ZXJzaW9uX2NvbmZsaWN0YwEAAAAAAAAAAAAAAAEAAAAIAAAAQwAAAHM2AAAAegp8AGoAAQBXAG4mBAB0AWsKcjABAAEAAQB0AmQBdAN8AIMBFwCDAQEAWQBkAlMAWABkA1MAKQROehBVbmJ1aWx0IGVnZyBmb3IgRlQpBHIeAAAAck8AAAByEwMAAHKYAAAAcpkAAAByGwAAAHIbAAAAchwAAAByXwEAAJALAABzDAAAAAABAgEKAQ4BEAEIAXoYRGlzdHJpYnV0aW9uLmhhc192ZXJzaW9uYwEAAAAAAAAAAAAAAAQAAAAIAAAASwAAAHNAAAAAZAF9AnwCoAChAEQAXRh9A3wBoAF8A3QCfAB8A2QCgwOhAgEAcQx8AaABZAN8AGoDoQIBAHwAagRmAHwBjgFTACkEekBDb3B5IHRoaXMgZGlzdHJpYnV0aW9uLCBzdWJzdGl0dXRpbmcgaW4gYW55IGNoYW5nZWQga2V5d29yZCBhcmdzejxwcm9qZWN0X25hbWUgdmVyc2lvbiBweV92ZXJzaW9uIHBsYXRmb3JtIGxvY2F0aW9uIHByZWNlZGVuY2VOcjcCAAApBXIOAAAAchABAABytwAAAHLcAgAAcpcAAAApBHKaAAAAcioAAAByfgEAAHLCAgAAchsAAAByGwAAAHIcAAAA2gVjbG9uZZgLAABzCgAAAAACBAEMARYBDgF6EkRpc3RyaWJ1dGlvbi5jbG9uZWMBAAAAAAAAAAAAAAABAAAAAgAAAEMAAABzEAAAAGQBZAKEAHwAagBEAIMBUwApA05jAQAAAAAAAAAAAAAAAgAAAAMAAABTAAAAcxQAAABnAHwAXQx9AXwBcgR8AZECcQRTAHIbAAAAchsAAAApAnIUAQAA2gNkZXByGwAAAHIbAAAAchwAAAByUAIAAKILAABzBgAAAAYAAgAEAHonRGlzdHJpYnV0aW9uLmV4dHJhcy48bG9jYWxzPi48bGlzdGNvbXA+KQFy+QIAAHKZAAAAchsAAAByGwAAAHIcAAAAciwBAACgCwAAcwIAAAAAAnoTRGlzdHJpYnV0aW9uLmV4dHJhcykBTikBchsAAAApAk5GKQFOKQFOKQJORikzchcAAAByGAAAAHIZAAAAchoAAABy9QIAAHJrAQAAcoAAAAByAwEAAHJJAQAAckoCAABy4QIAAHKoAAAAclwBAABy5AIAAHLnAgAAcugCAABy6QIAAHLqAgAAcusCAABy7AIAAHI7AAAAcuICAABy8gIAAHIeAAAAcvkCAABylQEAAHL3AgAAcvgCAAByGAEAAHL0AgAAcv0CAABy8wIAAHIBAwAActsBAABymwAAAHKrAAAAcgIDAAByBQMAAHLDAAAA2gZvYmplY3RyRgIAAHI6AQAAclcAAAByWAAAAHJZAAAAch0BAAByCgMAAHJfAQAAchcDAAByLAEAANoNX19jbGFzc2NlbGxfX3IbAAAAchsAAAByaAEAAHIcAAAAcmsAAAABCgAAc3QAAAAIAQQBBAMCAAIAAgECAAIAAgEC/QoNAgEMEAgDAgEKCggDCAMIAwgDCAMIBggHAgEKBwIBCgYIGgIBCg4CAQoLAgEKFQgHCg4IEQgFCAYKCwgLCAYICAgGDAkMAgICAgEMBggJCAcKDAgECkQIFggICAgCAWMAAAAAAAAAAAAAAAAAAAAAAgAAAEAAAABzFAAAAGUAWgFkAFoCZAFkAoQAWgNkA1MAKQTaE0VnZ0luZm9EaXN0cmlidXRpb25jAQAAAAAAAAAAAAAAAgAAAAIAAABDAAAAcxYAAAB8AKAAoQB9AXwBchJ8AXwAXwF8AFMAKQFh8QEAAAogICAgICAgIFBhY2thZ2VzIGluc3RhbGxlZCBieSBkaXN0dXRpbHMgKGUuZy4gbnVtcHkgb3Igc2NpcHkpLAogICAgICAgIHdoaWNoIHVzZXMgYW4gb2xkIHNhZmVfdmVyc2lvbiwgYW5kIHNvCiAgICAgICAgdGhlaXIgdmVyc2lvbiBudW1iZXJzIGNhbiBnZXQgbWFuZ2xlZCB3aGVuCiAgICAgICAgY29udmVydGVkIHRvIGZpbGVuYW1lcyAoZS5nLiwgMS4xMS4wLmRldjArMjMyOWVhZSB0bwogICAgICAgIDEuMTEuMC5kZXYwXzIzMjllYWUpLiBUaGVzZSBkaXN0cmlidXRpb25zIHdpbGwgbm90IGJlCiAgICAgICAgcGFyc2VkIHByb3Blcmx5CiAgICAgICAgZG93bnN0cmVhbSBieSBEaXN0cmlidXRpb24gYW5kIHNhZmVfdmVyc2lvbiwgc28KICAgICAgICB0YWtlIGFuIGV4dHJhIHN0ZXAgYW5kIHRyeSB0byBnZXQgdGhlIHZlcnNpb24gbnVtYmVyIGZyb20KICAgICAgICB0aGUgbWV0YWRhdGEgZmlsZSBpdHNlbGYgaW5zdGVhZCBvZiB0aGUgZmlsZW5hbWUuCiAgICAgICAgKQJy8wIAAHLbAgAAKQJymgAAANoKbWRfdmVyc2lvbnIbAAAAchsAAAByHAAAAHLhAgAApgsAAHMIAAAAAAwIAQQBBgF6I0VnZ0luZm9EaXN0cmlidXRpb24uX3JlbG9hZF92ZXJzaW9uTikEchcAAAByGAAAAHIZAAAAcuECAAByGwAAAHIbAAAAchsAAAByHAAAAHIbAwAApQsAAHMCAAAACAFyGwMAAGMAAAAAAAAAAAAAAAAAAAAAAwAAAEAAAABzPgAAAGUAWgFkAFoCZAFaA2QCWgRlBaAGZAOhAVoHZQhkBGQFhACDAVoJZQhkBmQHhACDAVoKZAhkCYQAWgtkClMAKQvaFERpc3RJbmZvRGlzdHJpYnV0aW9uelYKICAgIFdyYXAgYW4gYWN0dWFsIG9yIHBvdGVudGlhbCBzeXMucGF0aCBlbnRyeQogICAgdy9tZXRhZGF0YSwgLmRpc3QtaW5mbyBzdHlsZS4KICAgINoITUVUQURBVEF6GyhbXCgsXSlccyooXGQuKj8pXHMqKFssXCldKWMBAAAAAAAAAAAAAAACAAAACAAAAEMAAABzRgAAAHoIfABqAFcAUwAEAHQBawpyQAEAAQABAHwAoAJ8AGoDoQF9AXQEagWgBqEAoAd8AaEBfABfAHwAagAGAFkAUwBYAGQBUwApAnoYUGFyc2UgYW5kIGNhY2hlIG1ldGFkYXRhTikI2glfcGtnX2luZm9yLQIAAHLwAAAAcvUCAADaBWVtYWls2gZwYXJzZXLaBlBhcnNlctoIcGFyc2VzdHIpAnKaAAAAcjcCAAByGwAAAHIbAAAAchwAAADaEF9wYXJzZWRfcGtnX2luZm/ACwAAcwwAAAAAAwIBCAEOAQwBEgF6JURpc3RJbmZvRGlzdHJpYnV0aW9uLl9wYXJzZWRfcGtnX2luZm9jAQAAAAAAAAAAAAAAAQAAAAgAAABDAAAAczIAAAB6CHwAagBXAFMABAB0AWsKciwBAAEAAQB8AKACoQB8AF8AfABqAAYAWQBTAFgAZABTAHIdAAAAKQPaHl9EaXN0SW5mb0Rpc3RyaWJ1dGlvbl9fZGVwX21hcHItAgAA2hVfY29tcHV0ZV9kZXBlbmRlbmNpZXNymQAAAHIbAAAAchsAAAByHAAAAHL5AgAAygsAAHMKAAAAAAICAQgBDgEKAXodRGlzdEluZm9EaXN0cmlidXRpb24uX2RlcF9tYXBjAQAAAAAAAAAAAAAABwAAAAUAAAADAAAAc5oAAABkAWcAaQEEAH0BfABfAGcAiQB8AGoBoAJkAqEBcCBnAEQAXRJ9AogAoAN0BHwCgwGhAQEAcSKHAGYBZANkBIQIfQN0BXwDZAGDAYMBfQR8AWQBGQCgA3wEoQEBAHwAagGgAmQFoQFwamcARABdKH0FdAZ8BaAHoQCDAX0GdAh0BXwDfAWDAYMBfAQYAIMBfAF8BjwAcWx8AVMAKQZ6K1JlY29tcHV0ZSB0aGlzIGRpc3RyaWJ1dGlvbidzIGRlcGVuZGVuY2llcy5Oeg1SZXF1aXJlcy1EaXN0YwEAAAAAAAAAAAAAAAIAAAAFAAAAMwAAAHMqAAAAiABEAF0gfQF8AWoAch58AWoAoAFkAXwAaQGhAXIEfAFWAAEAcQRkAFMAKQJOckoBAABySwEAACkCckoBAABynwAAAKkBcg4BAAByGwAAAHIcAAAA2g5yZXFzX2Zvcl9leHRyYdsLAABzBgAAAAABCAEWAXpCRGlzdEluZm9EaXN0cmlidXRpb24uX2NvbXB1dGVfZGVwZW5kZW5jaWVzLjxsb2NhbHM+LnJlcXNfZm9yX2V4dHJheg5Qcm92aWRlcy1FeHRyYSkJciUDAAByJAMAANoHZ2V0X2FsbHItAQAAcnMAAADaCWZyb3plbnNldHJ6AAAAcnYCAAByJAEAACkHcpoAAABy+gIAAHKfAAAAcigDAADaBmNvbW1vbnJKAQAA2gdzX2V4dHJhchsAAAByJwMAAHIcAAAAciYDAADSCwAAcxYAAAAAAg4CBAIUARACDAUMAQ4CFAEMARoCeipEaXN0SW5mb0Rpc3RyaWJ1dGlvbi5fY29tcHV0ZV9kZXBlbmRlbmNpZXNOKQxyFwAAAHIYAAAAchkAAAByGgAAAHL1AgAAcpsBAABywgEAANoERVFFUXKoAAAAciQDAABy+QIAAHImAwAAchsAAAByGwAAAHIbAAAAchwAAAByHQMAALgLAABzEAAAAAgBBAQEAQoCAgEKCQIBCgdyHQMAACkDcq8CAAByYgIAAHJEAgAAYwAAAAAAAAAAAAAAAAQAAAAIAAAATwAAAHNaAAAAZAF9AnQAgwB9A3oedAGgAnwCoQFqA3wDawhyJnwCZAE3AH0CcQxXAG4UBAB0BGsKcjwBAAEAAQBZAG4CWAB0BWoGfABkAnwCZAEXAGkBfAGXAo4BAQBkAFMAKQNOcg8AAABy0gEAACkHciQAAABySgAAAHLiAAAAcuMAAAByTwAAAHKJAQAAcooBAAApBHJBAAAAcioAAAByvwIAAHIwAAAAchsAAAByGwAAAHIcAAAAchMDAADxCwAAcxAAAAAAAQQBBgECAxABDgEOAQYBchMDAABjAAAAAAAAAAAAAAAAAAAAAAIAAABAAAAAcxQAAABlAFoBZABaAmQBZAKEAFoDZANTACkE2hVSZXF1aXJlbWVudFBhcnNlRXJyb3JjAQAAAAAAAAAAAAAAAQAAAAMAAABDAAAAcwwAAABkAaAAfABqAaEBUwApAk5y0AAAACkCckwAAAByQQAAAHKZAAAAchsAAAByGwAAAHIcAAAAcqsAAAD/CwAAcwIAAAAAAXodUmVxdWlyZW1lbnRQYXJzZUVycm9yLl9fc3RyX19OKQRyFwAAAHIYAAAAchkAAAByqwAAAHIbAAAAchsAAAByGwAAAHIcAAAAci4DAAD+CwAAcwIAAAAIAXIuAwAAYwEAAAAAAAAAAAAAAAMAAAAJAAAAYwAAAHOCAAAAdAB0AXwAgwGDAX0BfAFEAF1sfQJkAXwCawZyLnwCZAJ8AqACZAGhAYUCGQB9AnwCoANkA6EBcnJ8AmQCZASFAhkAoAShAH0CehB8AnQFfAGDATcAfQJXAG4YBAB0BmsKcnABAAEAAQBZAAEAZAJTAFgAdAd8AoMBVgABAHEQZAJTACkFeopZaWVsZCBgYFJlcXVpcmVtZW50YGAgb2JqZWN0cyBmb3IgZWFjaCBzcGVjaWZpY2F0aW9uIGluIGBzdHJzYAoKICAgIGBzdHJzYCBtdXN0IGJlIGEgc3RyaW5nLCBvciBhIChwb3NzaWJseS1uZXN0ZWQpIGl0ZXJhYmxlIHRoZXJlb2YuCiAgICB6AiAjTvoBXOn+////KQhyaAIAAHJ4AAAAcrIAAAByRQIAAHJ2AgAAcnoCAADaDVN0b3BJdGVyYXRpb25ybAAAACkDcrMCAAByywIAAHJ3AgAAchsAAAByGwAAAHIcAAAAcnMAAAADDAAAcxYAAAAABgwCCAIIARICCgEQAQIBEAEOAQoBYwAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAHNQAAAAZQBaAWQAWgKHAGYBZAFkAoQIWgNkA2QEhABaBGQFZAaEAFoFZAdkCIQAWgZkCWQKhABaB2QLZAyEAFoIZQlkDWQOhACDAVoKhwAEAFoLUwApD3JsAAAAYwIAAAAAAAAAAAAAAAQAAAAKAAAAAwAAAHPMAAAAehR0AHQBfACDAqACfAGhAQEAVwBuMgQAdANqBGoFawpyRgEAfQIBAHoQdAZ0B3wCgwGDAYIBVwA1AGQBfQJ+AlgAWQBuAlgAfABqCHwAXwl0CnwAagiDAX0DfAN8A6ALoQACAHwAXwx8AF8NZAJkA4QAfABqDkQAgwF8AF8PdBB0EXQSfABqE4MCgwF8AF8TfABqDXwAahR8AGoOdBV8AGoTgwF8AGoWcrR0B3wAahaDAW4CZAFmBXwAXxd0GHwAaheDAXwAXxlkAVMAKQR6PkRPIE5PVCBDQUxMIFRISVMgVU5ET0NVTUVOVEVEIE1FVEhPRDsgdXNlIFJlcXVpcmVtZW50LnBhcnNlKCkhTmMBAAAAAAAAAAAAAAACAAAABAAAAFMAAABzGAAAAGcAfABdEH0BfAFqAHwBagFmApECcQRTAHIbAAAAKQJyYAEAAHIeAAAAKQJyFAEAAHIGAwAAchsAAAByGwAAAHIcAAAAclACAAAjDAAAcwQAAAAGAQIAeihSZXF1aXJlbWVudC5fX2luaXRfXy48bG9jYWxzPi48bGlzdGNvbXA+KRpyBAMAAHJsAAAAcgMBAAByEgAAAHIvAQAA2hJJbnZhbGlkUmVxdWlyZW1lbnRyLgMAAHKzAAAAcuYAAADaC3Vuc2FmZV9uYW1lcnQAAAByWQEAAHIuAQAAcjsAAADaCXNwZWNpZmllcnLJAgAAcrgCAAByBgAAAHJ6AAAAciwBAADaA3VybHIqAwAAckwBAADaB2hhc2hDbXBy4wIAANoSX1JlcXVpcmVtZW50X19oYXNoKQRymgAAANoScmVxdWlyZW1lbnRfc3RyaW5ncqABAAByLgEAAHJoAQAAchsAAAByHAAAAHIDAQAAGgwAAHMkAAAAAAICARQBFAEeAQgBCgESAQYBBP8IAhICBAEEAQQBCAES+wYHehRSZXF1aXJlbWVudC5fX2luaXRfX2MCAAAAAAAAAAAAAAACAAAAAwAAAEMAAABzFgAAAHQAfAF0AYMCbxR8AGoCfAFqAmsCUwByHQAAACkDcrEAAABybAAAAHI2AwAAcuYCAAByGwAAAHIbAAAAchwAAABy6wIAAC8MAABzBgAAAAACCgEK/noSUmVxdWlyZW1lbnQuX19lcV9fYwIAAAAAAAAAAAAAAAIAAAACAAAAQwAAAHMKAAAAfAB8AWsCDABTAHIdAAAAchsAAABy5gIAAHIbAAAAchsAAAByHAAAAHLsAgAANQwAAHMCAAAAAAF6ElJlcXVpcmVtZW50Ll9fbmVfX2MCAAAAAAAAAAAAAAACAAAABAAAAEMAAABzMAAAAHQAfAF0AYMCciB8AWoCfABqAmsDchpkAVMAfAFqA30BfABqBGoFfAFkAmQDjQJTACkETkZUKQHaC3ByZXJlbGVhc2VzKQZysQAAAHJrAAAAcjsAAAByHgAAAHI0AwAA2ghjb250YWlucykCcpoAAAByGgEAAHIbAAAAchsAAAByHAAAAHISAQAAOAwAAHMKAAAAAAEKAQwBBAIGBXoYUmVxdWlyZW1lbnQuX19jb250YWluc19fYwEAAAAAAAAAAAAAAAEAAAABAAAAQwAAAHMGAAAAfABqAFMAch0AAAApAXI3AwAAcpkAAAByGwAAAHIbAAAAchwAAABy5AIAAEQMAABzAgAAAAABehRSZXF1aXJlbWVudC5fX2hhc2hfX2MBAAAAAAAAAAAAAAABAAAAAwAAAEMAAABzDAAAAGQBdAB8AIMBFgBTACkCTnoVUmVxdWlyZW1lbnQucGFyc2UoJXIpcrwCAABymQAAAHIbAAAAchsAAAByHAAAAHKbAAAARwwAAHMCAAAAAAF6FFJlcXVpcmVtZW50Ll9fcmVwcl9fYwEAAAAAAAAAAAAAAAIAAAACAAAAQwAAAHMOAAAAdAB8AIMBXAF9AXwBUwByHQAAACkBcnMAAAApAnK0AgAAcp8AAAByGwAAAHIbAAAAchwAAABy6AAAAEoMAABzBAAAAAACCgF6EVJlcXVpcmVtZW50LnBhcnNlKQxyFwAAAHIYAAAAchkAAAByAwEAAHLrAgAAcuwCAAByEgEAAHLkAgAAcpsAAABylQEAAHLoAAAAchoDAAByGwAAAHIbAAAAcmgBAAByHAAAAHJsAAAAGQwAAHMQAAAACAEMFQgGCAMIDAgDCAMCAWMBAAAAAAAAAAAAAAABAAAAAgAAAEMAAABzFgAAAHQAfABrB3ISfAB0AGYBFwBTAHwAUwApAXpKCiAgICBFbnN1cmUgb2JqZWN0IGFwcGVhcnMgaW4gdGhlIG1ybyBldmVuCiAgICBmb3Igb2xkLXN0eWxlIGNsYXNzZXMuCiAgICApAXIZAwAAKQHaB2NsYXNzZXNyGwAAAHIbAAAAchwAAADaDl9hbHdheXNfb2JqZWN0UAwAAHMGAAAAAAUIAQoBcjwDAABjAgAAAAAAAAAAAAAABAAAAAgAAABDAAAAczwAAAB0AHQBoAJ0A3wBZAF0BHwBgwGDA6EBgwF9AnwCRABdGH0DfAN8AGsGch58AHwDGQACAAEAUwBxHmQCUwApA3oyUmV0dXJuIGFuIGFkYXB0ZXIgZmFjdG9yeSBmb3IgYG9iYCBmcm9tIGByZWdpc3RyeWBylwAAAE4pBXI8AwAA2gdpbnNwZWN02gZnZXRtcm9ytwAAAHLpAQAAKQTaCHJlZ2lzdHJ5cjwAAAByiQIAANoBdHIbAAAAchsAAAByHAAAAHK4AAAAWgwAAHMIAAAAAAIaAQgBCAFyuAAAAGMBAAAAAAAAAAAAAAACAAAABAAAAEMAAABzHgAAAHQAagGgAnwAoQF9AXQDagR8AWQBZAKNAgEAZANTACkEejFFbnN1cmUgdGhhdCB0aGUgcGFyZW50IGRpcmVjdG9yeSBvZiBgcGF0aGAgZXhpc3RzVCkB2ghleGlzdF9va04pBXLAAAAAcsEAAABypQEAAHIQAAAA2ghtYWtlZGlycykCcsEAAABypQEAAHIbAAAAchsAAAByHAAAAHJ+AAAAYgwAAHMEAAAAAAIMAWMBAAAAAAAAAAAAAAADAAAACAAAAEMAAABzWAAAAHQAcwx0AWQBgwGCAXQCfACDAVwCfQF9AnwBclR8AnJUdAN8AYMBc1R0BHwBgwEBAHoOdAV8AWQCgwIBAFcAbhQEAHQGawpyUgEAAQABAFkAbgJYAGQDUwApBHovU2FuZGJveC1ieXBhc3NpbmcgdmVyc2lvbiBvZiBlbnN1cmVfZGlyZWN0b3J5KCl6KiJvcy5ta2RpciIgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLmntAQAATikHchsCAAByHAIAAHIOAAAAcg0AAAByegEAAHIJAAAA2g9GaWxlRXhpc3RzRXJyb3IpA3LBAAAAcqUBAABykQEAAHIbAAAAchsAAAByHAAAAHJ6AQAAaAwAAHMSAAAAAAIEAQgBDAEQAQgBAgEOAQ4BcnoBAABjAQAAAAAAAAAAAAAABAAAAAQAAABjAAAAc3YAAABkAX0BZwB9AnQAfACDAUQAXVZ9A3wDoAFkAqEBclx8A6ACZAOhAXJQfAFzMHwCcjp8AXwCZgJWAAEAfANkBGQFhQIZAKADoQB9AWcAfQJxZnQEZAZ8A4MCggFxEHwCoAV8A6EBAQBxEHwBfAJmAlYAAQBkAVMAKQdhcwEAAFNwbGl0IGEgc3RyaW5nIG9yIGl0ZXJhYmxlIHRoZXJlb2YgaW50byAoc2VjdGlvbiwgY29udGVudCkgcGFpcnMKCiAgICBFYWNoIGBgc2VjdGlvbmBgIGlzIGEgc3RyaXBwZWQgdmVyc2lvbiBvZiB0aGUgc2VjdGlvbiBoZWFkZXIgKCJbc2VjdGlvbl0iKQogICAgYW5kIGVhY2ggYGBjb250ZW50YGAgaXMgYSBsaXN0IG9mIHN0cmlwcGVkIGxpbmVzIGV4Y2x1ZGluZyBibGFuayBsaW5lcyBhbmQKICAgIGNvbW1lbnQtb25seSBsaW5lcy4gIElmIHRoZXJlIGFyZSBhbnkgc3VjaCBsaW5lcyBiZWZvcmUgdGhlIGZpcnN0IHNlY3Rpb24KICAgIGhlYWRlciwgdGhleSdyZSByZXR1cm5lZCBpbiBhIGZpcnN0IGBgc2VjdGlvbmBgIG9mIGBgTm9uZWBgLgogICAgTvoBW/oBXXIPAAAAcqwAAAB6F0ludmFsaWQgc2VjdGlvbiBoZWFkaW5nKQZyeAAAAHLTAAAAckUCAABydgIAAHJPAAAAcsUAAAApBHK0AgAA2gdzZWN0aW9u2gdjb250ZW50cncCAAByGwAAAHIbAAAAchwAAAByeQAAAHUMAABzGAAAAAAIBAEEAQwBCgEKAQgBCgEQAQYCDAIMA2MAAAAAAAAAAAAAAAADAAAACAAAAE8AAABzKgAAAHQAagF9AnoWdAJ0AF8BdANqBHwAfAGOAVcAogJTAHwCdABfAVgAZABTAHIdAAAAKQVywAAAAHIMAAAA2gdvc19vcGVu2gh0ZW1wZmlsZdoHbWtzdGVtcCkDckEAAAByKgAAANoIb2xkX29wZW5yGwAAAHIbAAAAchwAAAByHgIAAI8MAABzCgAAAAABBgECAgYBEANyHgIAAHKDAgAAKQLaCGNhdGVnb3J5csUAAABjAQAAAAAAAAAAAAAAAwAAAAMAAABPAAAAcw4AAAB8AHwBfAKOAQEAfABTAHIdAAAAchsAAAApA3IqAgAAckEAAAByvQIAAHIbAAAAchsAAAByHAAAANoLX2NhbGxfYXNpZGWiDAAAcwQAAAAAAQoBck0DAABjAQAAAAAAAAAAAAAAAQAAAAUAAAADAAAAcy4AAAB0AIMAiQCIAHwAZAE8AHwAoAGHAGYBZAJkA4QIdAKIAIMBRACDAaEBAQBkBFMAKQV6PVNldCB1cCBnbG9iYWwgcmVzb3VyY2UgbWFuYWdlciAoZGVsaWJlcmF0ZWx5IG5vdCBzdGF0ZS1zYXZlZCnaCF9tYW5hZ2VyYwEAAAAAAAAAAAAAAAIAAAAFAAAAMwAAAHMmAAAAfABdHn0BfAGgAGQAoQFzAnwBdAGIAHwBgwJmAlYAAQBxAmQBUwByAwMAACkCctMAAABytwAAAHLxAQAAqQFy9gAAAHIbAAAAchwAAAByFgEAAKwMAABzBgAAAAQCAgEK/noeX2luaXRpYWxpemUuPGxvY2Fscz4uPGdlbmV4cHI+TikDcmoAAAByJQAAAHIZAgAAKQFyMAAAAHIbAAAAck8DAAByHAAAANoLX2luaXRpYWxpemWnDAAAcwoAAAAAAwYBCAEOAgb+clADAABjAAAAAAAAAAAAAAAABgAAAAQAAABDAAAAc3wAAAB0AKABoQB9AHQCZAF8AGQCjQIBAHwAagN9AXwAagR9AnwAagV9A3wAagZ9BHwEfQV0B2QDZASEAHwARACDAYMBAQB8A2QFZAaEAGQHZAiNAgEAZwB8AF8IdAl0CnwAagt0DGoNgwKDAQEAdA6DAKAPdBCDAKEBAQBkCVMAKQphRQEAAAogICAgUHJlcGFyZSB0aGUgbWFzdGVyIHdvcmtpbmcgc2V0IGFuZCBtYWtlIHRoZSBgYHJlcXVpcmUoKWBgCiAgICBBUEkgYXZhaWxhYmxlLgoKICAgIFRoaXMgZnVuY3Rpb24gaGFzIGV4cGxpY2l0IGVmZmVjdHMgb24gdGhlIGdsb2JhbCBzdGF0ZQogICAgb2YgcGtnX3Jlc291cmNlcy4gSXQgaXMgaW50ZW5kZWQgdG8gYmUgaW52b2tlZCBvbmNlIGF0CiAgICB0aGUgaW5pdGlhbGl6YXRpb24gb2YgdGhpcyBtb2R1bGUuCgogICAgSW52b2NhdGlvbiBieSBvdGhlciBwYWNrYWdlcyBpcyB1bnN1cHBvcnRlZCBhbmQgZG9uZQogICAgYXQgdGhlaXIgb3duIHJpc2suCiAgICByGQMAACkBcmIAAABjAQAAAAAAAAAAAAAAAgAAAAQAAABzAAAAcxoAAAB8AF0SfQF8AWoAZABkAY0BVgABAHECZAJTACkDRnIcAQAATqkBcgEDAAApAnIUAQAAcp0AAAByGwAAAHIbAAAAchwAAAByFgEAAM0MAABzBAAAAAQCAv96MV9pbml0aWFsaXplX21hc3Rlcl93b3JraW5nX3NldC48bG9jYWxzPi48Z2VuZXhwcj5jAQAAAAAAAAAAAAAAAQAAAAMAAABTAAAAcwwAAAB8AGoAZAFkAo0BUwApA05UchwBAAByUQMAAHLqAAAAchsAAAByGwAAAHIcAAAAckIAAADSDAAAckMAAAB6MF9pbml0aWFsaXplX21hc3Rlcl93b3JraW5nX3NldC48bG9jYWxzPi48bGFtYmRhPkYpAXJGAQAATikRcmkAAAByCgEAAHIrAAAAclMAAAByWgAAAHJHAQAAclQAAAByuAIAAHL9AAAAciQBAAByBgAAAHIBAQAAckoAAABywQAAAHIkAAAAciUAAAByowAAACkGcmIAAAByUwAAAHJaAAAAcmMAAAByVAAAAHKVAAAAchsAAAByGwAAAHIcAAAA2h5faW5pdGlhbGl6ZV9tYXN0ZXJfd29ya2luZ19zZXSzDAAAcyIAAAAADQgBDAIGAQYBBgEGAgQFCAIC/ggEAgEGAQL+BgQGAhIBclIDAABjAAAAAAAAAAAAAAAAAAAAAAEAAABAAAAAcxAAAABlAFoBZABaAmQBWgNkAlMAKQNylAAAAHqrCiAgICBCYXNlIGNsYXNzIGZvciB3YXJuaW5nIGFib3V0IGRlcHJlY2F0aW9ucyBpbiBgYHBrZ19yZXNvdXJjZXNgYAoKICAgIFRoaXMgY2xhc3MgaXMgbm90IGRlcml2ZWQgZnJvbSBgYERlcHJlY2F0aW9uV2FybmluZ2BgLCBhbmQgYXMgc3VjaCBpcwogICAgdmlzaWJsZSBieSBkZWZhdWx0LgogICAgTnIWAAAAchsAAAByGwAAAHIbAAAAchwAAABylAAAANoMAABzAgAAAAgBKQFOKQFOKQFGKQFGKQFGKQFGKQFOKdtyGgAAANoKX19mdXR1cmVfX3ICAAAAckoAAABywAAAAHKqAQAAchMCAABymwEAAHKJAgAAcvQBAABySAIAAHKJAQAAcoUBAABywAIAANoHcGtndXRpbHJgAQAAcksAAAByJgEAAHLEAAAA2gxlbWFpbC5wYXJzZXJyIAMAAHJvAgAAckkDAABycQEAAHJSAgAAcj0DAABy1wEAAHLUAQAAcgMAAAByoAIAAHIGAQAA2gNpbXByQwMAANoJTmFtZUVycm9ycm4CAADaFHBrZ19yZXNvdXJjZXMuZXh0ZXJucgQAAADaHnBrZ19yZXNvdXJjZXMuZXh0ZXJuLnNpeC5tb3Zlc3IFAAAAcgYAAAByBwAAAHIIAAAAcgkAAAByCgAAAHILAAAAchsCAAByDAAAAHJIAwAA2gdvcy5wYXRocg0AAAByDgAAANoTaW1wb3J0bGliLm1hY2hpbmVyedoJbWFjaGluZXJ5cugBAAByFwAAAHK8AAAAchAAAAByEQAAAHISAAAAcrYAAABy6QEAANoNX19tZXRhY2xhc3NfX9oMdmVyc2lvbl9pbmZv2gxSdW50aW1lRXJyb3JytAEAAHJsAgAAcm0CAAByUwAAAHJiAAAAcmMAAADaEHJlc291cmNlc19zdHJlYW1yZgAAANoMcmVzb3VyY2VfZGlyclwAAAByZQAAAHJgAAAAclsAAAByWgAAAHJeAAAAcl0AAAByXwAAAHI9AgAAcoACAABygQIAANoOUnVudGltZVdhcm5pbmdyFQAAAHIjAAAAciYAAAByKwAAAHIyAAAAcjQAAAByOAAAAHI9AAAAcj4AAAByPwAAANoKX3NnZXRfbm9uZdoKX3NzZXRfbm9uZXJSAAAA2gdfX2FsbF9fcnsBAABybgAAAHJvAAAAcqUAAABycAAAAHJxAAAAcq0AAAByogAAAHJrAQAAcoAAAABygQAAAHKCAAAAcoMAAAByhAAAAHKSAAAAclUAAAByTQAAAHLOAAAAckcAAABywgEAAHJIAAAActkAAABydgAAAHJ3AAAAclQAAABylQAAAHJWAAAAclcAAAByWAAAAHJZAAAAcoUAAAByhgAAAHJpAAAAcicAAAByJQEAAHJoAAAAcpYAAABycgAAAHJqAAAAcmcAAABydAAAAHJ1AAAAcnoAAAByewAAAHJ8AAAAcn0AAAByjAAAAHIZAwAAco0AAAByjgAAAHLsAQAAcooAAAByiwAAAHLvAQAAcvkBAAByjwAAAHJJAgAAcocAAAByiAAAAHKJAAAAcpAAAAByZAAAAHJHAgAAck4CAAByVwIAAHJhAgAAclgCAAByZQIAAHJcAgAAcmMCAAByeAIAAHJkAgAA2gtJbXBJbXBvcnRlcnLDAAAAcn4CAABykQAAAHKQAgAAco0CAAByYQAAAHKTAAAAcqYCAABypwIAAHJ/AAAAcqoCAAByWgIAAHLeAQAAclsCAAByiwIAAHJ4AAAAckkAAABytgIAANoHVkVSQk9TRdoKSUdOT1JFQ0FTRXLgAgAAcm0AAABy1QIAAHLZAgAAcmsAAAByGwMAAHIdAwAAct8CAAByEwMAAHJPAAAAci4DAABycwAAAHIvAQAAcmwAAAByPAMAAHK4AAAAcn4AAAByegEAAHJ5AAAAch4CAADaDmZpbHRlcndhcm5pbmdzck0DAAByJAAAAHJQAwAAclIDAADaB1dhcm5pbmdylAAAAHIbAAAAchsAAAByGwAAAHIcAAAA2gg8bW9kdWxlPgIAAABzWgIAAAQQDAIIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEIAQgBCAEMAgIBDAEQAg4CAgEIARABCgIMARQDDAECARQBCAEQAgoCDAEQAgIBDAIKARABCgIMAQwBDAEIAQgBCAEIAwQDHgEIAggCBAEEBAQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAEEAQQBBAMQBwgHBAMIBQgICAcIBAgFCAQIBAwDCBoCAAIAAgACAQIAAgACAQIBAgACAAIBAgACAAIDAgACAAIBAgACAAIBAgMCAAIAAgECAAIAAgMCAAIAAgECAAIDAgMCAAIAAgACAQIAAgACAAIBAgACAAIAAgMCAAIDAgACAAIAAgACAwIAAgACAQIAAgACAAIBAgACAAIAAgECAAIAAgECAAIDAgMCAALSBDIQBxAgEA0QGxAEBAIMAQQBBAEEAQQBBAMICggNDBAIBAgYCgEKAgQDCC4ICgQDCAsIBQwFCAUOFxAcDn8AfwB/AAUQFA5/ABQEAxAQDn8ANQgMCAgIDAgJCAgIDgwPDn8AQQoDEBYQGwgDEBEGAxAbEBQQfwAtDAMQKhAZEA8MAwgKDAcMGwwDDAQKAwgaDCAIEQ4RCBUIDwgLCA4MAgwBDAIMAQwDCBIIHwgiCCIMDAgNDAEMAgwBDAMIBAoDCAUICwwICAcICggICA4MAQQBAgkK9gYODn8ABQgJCA0OfwB/AH8AJxATEDMCAQIBAv0GBwgNEAUIFhQ3CAoICAgGCA0IGggPEAQIBQIBEAsCAQom