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C2dldF92ZXJzaW9u2g9nZXRfZGVzY3JpcHRpb27aB2dldF91cmxyCAAAANoLZ2V0X2NvbnRhY3TaEWdldF9jb250YWN0X2VtYWlsciAAAAByCQAAANoDUFkyWg1fZW5jb2RlX2ZpZWxk2gtnZXRfbGljZW5zZXIlAAAA2gxwcm9qZWN0X3VybHPaBWl0ZW1zcgcAAADaFGdldF9sb25nX2Rlc2NyaXB0aW9u2gRqb2lu2gxnZXRfa2V5d29yZHPaDWdldF9wbGF0Zm9ybXPaC193cml0ZV9saXN02g9nZXRfY2xhc3NpZmllcnPaDGdldF9yZXF1aXJlc9oMZ2V0X3Byb3ZpZGVz2g1nZXRfb2Jzb2xldGVz2gdoYXNhdHRychsAAAByHAAAAHIdAAAAKQzaBHNlbGbaBGZpbGXaB3ZlcnNpb25aD29wdGlvbmFsX2ZpZWxkc9oFZmllbGTaBGF0dHJaCGF0dHJfdmFsWgtwcm9qZWN0X3VybNoJbG9uZ19kZXNj2ghrZXl3b3Jkc9oIcGxhdGZvcm3aBWV4dHJhchgAAAByGAAAAHIZAAAA2g53cml0ZV9wa2dfZmlsZTcAAABzXAAAAAADCAIOARIBEgESARICDAESARQDAAEAAQABBAMOAQoBBgEKAggBFgISAQgBEAEQARQCDAEOAg4BBgEOAg4BDgEWAhICEgMSARIBEgMMARADCAEEAQIBCgIIAQwBclUAAABjAwAAAAAAAAAEAAAADgAAAEMAAABzUgAAAHkgdABqAWoCZAF8AhcAgwF9A3wDagMMAHMedASCAVcAbiwEAHQFdAZ0B3QEZgRrCnJMAQABAAEAdAhkAnwBfAJmAhYAgwGCAVkAbgJYAGQAUwApA056Ang9ejQlciBtdXN0IGJlIGltcG9ydGFibGUgJ21vZHVsZTphdHRycycgc3RyaW5nIChnb3QgJXIpKQnaDXBrZ19yZXNvdXJjZXPaCkVudHJ5UG9pbnTaBXBhcnNl2gZleHRyYXPaDkFzc2VydGlvbkVycm9y2glUeXBlRXJyb3LaClZhbHVlRXJyb3LaDkF0dHJpYnV0ZUVycm9ycgYAAAApBNoEZGlzdHJQAAAA2gV2YWx1ZdoCZXByGAAAAHIYAAAAchkAAADaEGNoZWNrX2ltcG9ydGFibGWBAAAAcw4AAAAAAQIBEAEQ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ICAgdXNlZCBieSAncGtnX3Jlc291cmNlcy5yZXF1aXJlKCknLiAgVGhleSB3aWxsIGJlIGluc3RhbGxlZAogICAgICAgIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgcGFja2FnZSBpcyBpbnN0YWxsZWQuICBJZiB5b3Ugd2lzaCB0byB1c2UKICAgICAgICBwYWNrYWdlcyB0aGF0IGFyZSBub3QgYXZhaWxhYmxlIGluIFB5UEksIG9yIHdhbnQgdG8gZ2l2ZSB5b3VyIHVzZXJzIGFuCiAgICAgICAgYWx0ZXJuYXRlIGRvd25sb2FkIGxvY2F0aW9uLCB5b3UgY2FuIGFkZCBhICdmaW5kX2xpbmtzJyBvcHRpb24gdG8gdGhlCiAgICAgICAgJ1tlYXN5X2luc3RhbGxdJyBzZWN0aW9uIG9mIHlvdXIgcHJvamVjdCdzICdzZXR1cC5jZmcnIGZpbGUsIGFuZCB0aGVuCiAgICAgICAgc2V0dXB0b29scyB3aWxsIHNjYW4gdGhlIGxpc3RlZCB3ZWIgcGFnZXMgZm9yIGxpbmtzIHRoYXQgc2F0aXNmeSB0aGUKICAgICAgICByZXF1aXJlbWVudHMuCgogICAgICdleHRyYXNfcmVxdWlyZScgLS0gYSBkaWN0aW9uYXJ5IG1hcHBpbmcgbmFtZXMgb2Ygb3B0aW9uYWwgImV4dHJhcyIgdG8gdGhlCiAgICAgICAgYWRkaXRpb25hbCByZXF1aXJlbWVudChzKSB0aGF0IHVzaW5nIHRob3NlIGV4dHJhcyBpbmN1cnMuIEZvciBleGFtcGxlLAogICAgICAgIHRoaXM6OgoKICAgICAgICAgICAgZXh0cmFzX3JlcXVpcmUgPSBkaWN0KHJlU1QgPSBbImRvY3V0aWxzPj0wLjMiLCAicmVTVGVkaXQiXSkKCiAgICAgICAgaW5kaWNhdGVzIHRoYXQgdGhlIGRpc3RyaWJ1dGlvbiBjYW4gb3B0aW9uYWxseSBwcm92aWRlIGFuIGV4dHJhCiAgICAgICAgY2FwYWJpbGl0eSBjYWxsZWQgInJlU1QiLCBidXQgaXQgY2FuIG9ubHkgYmUgdXNlZCBpZiBkb2N1dGlscyBhbmQKICAgICAgICByZVNUZWRpdCBhcmUgaW5zdGFsbGVkLiAgSWYgdGhlIHVzZXIgaW5zdGFsbHMgeW91ciBwYWNrYWdlIHVzaW5nCiAgICAgICAgRWFzeUluc3RhbGwgYW5kIHJlcXVlc3RzIG9uZSBvZiB5b3VyIGV4dHJhcywgdGhlIGNvcnJlc3BvbmRpbmcKICAgICAgICBhZGRpdGlvbmFsIHJlcXVpcmVtZW50cyB3aWxsIGJlIGluc3RhbGxlZCBpZiBuZWVkZWQuCgogICAgICdmZWF0dXJlcycgKipkZXByZWNhdGVkKiogLS0gYSBkaWN0aW9uYXJ5IG1hcHBpbmcgb3B0aW9uIG5hbWVzIHRvCiAgICAgICAgJ3NldHVwdG9vbHMuRmVhdHVyZScKICAgICAgICBvYmplY3RzLiAgRmVhdHVyZXMgYXJlIGEgcG9ydGlvbiBvZiB0aGUgZGlzdHJpYnV0aW9uIHRoYXQgY2FuIGJlCiAgICAgICAgaW5jbHVkZWQgb3IgZXhjbHVkZWQgYmFzZWQgb24gdXNlciBvcHRpb25zLCBpbnRlci1mZWF0dXJlIGRlcGVuZGVuY2llcywKICAgICAgICBhbmQgYXZhaWxhYmlsaXR5IG9uIHRoZSBjdXJyZW50IHN5c3RlbS4gIEV4Y2x1ZGVkIGZlYXR1cmVzIGFyZSBvbWl0dGVkCiAgICAgICAgZnJvbSBhbGwgc2V0dXAgY29tbWFuZHMsIGluY2x1ZGluZyBzb3VyY2UgYW5kIGJpbmFyeSBkaXN0cmlidXRpb25zLCBzbwogICAgICAgIHlvdSBjYW4gY3JlYXRlIG11bHRpcGxlIGRpc3RyaWJ1dGlvbnMgZnJvbSB0aGUgc2FtZSBzb3VyY2UgdHJlZS4KICAgICAgICBGZWF0dXJlIG5hbWVzIHNob3VsZCBiZSB2YWxpZCBQeXRob24gaWRlbnRpZmllcnMsIGV4Y2VwdCB0aGF0IHRoZXkgbWF5CiAgICAgICAgY29udGFpbiB0aGUgJy0nIChtaW51cykgc2lnbi4gIEZlYXR1cmVzIGNhbiBiZSBpbmNsdWRlZCBvciBleGNsdWRlZAogICAgICAgIHZpYSB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbnMgJy0td2l0aC1YJyBhbmQgJy0td2l0aG91dC1YJywgd2hlcmUgJ1gnIGlzCiAgICAgICAgdGhlIG5hbWUgb2YgdGhlIGZlYXR1cmUuICBXaGV0aGVyIGEgZmVhdHVyZSBpcyBpbmNsdWRlZCBieSBkZWZhdWx0LCBhbmQKICAgICAgICB3aGV0aGVyIHlvdSBhcmUgYWxsb3dlZCB0byBjb250cm9sIHRoaXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBpcwogICAgICAgIGRldGVybWluZWQgYnkgdGhlIEZlYXR1cmUgb2JqZWN0LiAgU2VlIHRoZSAnRmVhdHVyZScgY2xhc3MgZm9yIG1vcmUKICAgICAgICBpbmZvcm1hdGlvbi4KCiAgICAgJ3Rlc3Rfc3VpdGUnIC0tIHRoZSBuYW1lIG9mIGEgdGVzdCBzdWl0ZSB0byBydW4gZm9yIHRoZSAndGVzdCcgY29tbWFuZC4KICAgICAgICBJZiB0aGUgdXNlciBydW5zICdweXRob24gc2V0dXAucHkgdGVzdCcsIHRoZSBwYWNrYWdlIHdpbGwgYmUgaW5zdGFsbGVkLAogICAgICAgIGFuZCB0aGUgbmFtZWQgdGVzdCBzdWl0ZSB3aWxsIGJlIHJ1bi4gIFRoZSBmb3JtYXQgaXMgdGhlIHNhbWUgYXMKICAgICAgICB3b3VsZCBiZSB1c2VkIG9uIGEgJ3VuaXR0ZXN0LnB5JyBjb21tYW5kIGxpbmUuICBUaGF0IGlzLCBpdCBpcyB0aGUKICAgICAgICBkb3R0ZWQgbmFtZSBvZiBhbiBvYmplY3QgdG8gaW1wb3J0IGFuZCBjYWxsIHRvIGdlbmVyYXRlIGEgdGVzdCBzdWl0ZS4KCiAgICAgJ3BhY2thZ2VfZGF0YScgLS0gYSBkaWN0aW9uYXJ5IG1hcHBpbmcgcGFja2FnZSBuYW1lcyB0byBsaXN0cyBvZiBmaWxlbmFtZXMKICAgICAgICBvciBnbG9icyB0byB1c2UgdG8gZmluZCBkYXRhIGZpbGVzIGNvbnRhaW5lZCBpbiB0aGUgbmFtZWQgcGFja2FnZXMuCiAgICAgICAgSWYgdGhlIGRpY3Rpb25hcnkgaGFzIGZpbGVuYW1lcyBvciBnbG9icyBsaXN0ZWQgdW5kZXIgJyIiJyAodGhlIGVtcHR5CiAgICAgICAgc3RyaW5nKSwgdGhvc2UgbmFtZXMgd2lsbCBiZSBzZWFyY2hlZCBmb3IgaW4gZXZlcnkgcGFja2FnZSwgaW4gYWRkaXRpb24KICAgICAgICB0byBhbnkgbmFtZXMgZm9yIHRoZSBzcGVjaWZpYyBwYWNrYWdlLiAgRGF0YSBmaWxlcyBmb3VuZCB1c2luZyB0aGVzZQogICAgICAgIG5hbWVzL2dsb2JzIHdpbGwgYmUgaW5zdGFsbGVkIGFsb25nIHdpdGggdGhlIHBhY2thZ2UsIGluIHRoZSBzYW1lCiAgICAgICAgbG9jYXRpb24gYXMgdGhlIHBhY2thZ2UuICBOb3RlIHRoYXQgZ2xvYnMgYXJlIGFsbG93ZWQgdG8gcmVmZXJlbmNlCiAgICAgICAgdGhlIGNvbnRlbnRzIG9mIG5vbi1wYWNrYWdlIHN1YmRpcmVjdG9yaWVzLCBhcyBsb25nIGFzIHlvdSB1c2UgJy8nIGFzCiAgICAgICAgYSBwYXRoIHNlcGFyYXRvci4gIChHbG9icyBhcmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8KICAgICAgICBwbGF0Zm9ybS1zcGVjaWZpYyBwYXRocyBhdCBydW50aW1lLikKCiAgICBJbiBhZGRpdGlvbiB0byB0aGVzZSBuZXcga2V5d29yZHMsIHRoaXMgY2xhc3MgYWxzbyBoYXMgc2V2ZXJhbCBuZXcgbWV0aG9kcwogICAgZm9yIG1hbmlwdWxhdGluZyB0aGUgZGlzdHJpYnV0aW9uJ3MgY29udGVudHMuICBGb3IgZXhhbXBsZSwgdGhlICdpbmNsdWRlKCknCiAgICBhbmQgJ2V4Y2x1ZGUoKScgbWV0aG9kcyBjYW4gYmUgdGhvdWdodCBvZiBhcyBpbi1wbGFjZSBhZGQgYW5kIHN1YnRyYWN0CiAgICBjb21tYW5kcyB0aGF0IGFkZCBvciByZW1vdmUgcGFja2FnZXMsIG1vZHVsZXMsIGV4dGVuc2lvbnMsIGFuZCBzbyBvbiBmcm9tCiAgICB0aGUgZGlzdHJpYnV0aW9uLiAgVGhleSBhcmUgdXNlZCBieSB0aGUgZmVhdHVyZSBzdWJzeXN0ZW0gdG8gY29uZmlndXJlIHRoZQogICAgZGlzdHJpYnV0aW9uIGZvciB0aGUgaW5jbHVkZWQgYW5kIGV4Y2x1ZGVkIGZlYXR1cmVzLgogICAgTikDchwAAAByQAAAAHIdAAAAYwIAAAAAAAAABAAAAAQAAABDAAAAc3AAAAB8AQwAcxZkAXwBawdzFmQCfAFrB3IaZABTAHQAagF0AnwBZAEZAIMBgwFqA4MAfQJ0AGoEagVqBnwCgwF9A3wDZABrCXJsfANqB2QDgwEMAHJsdABqCHQCfAFkAhkAgwGDAXwDXwl8A3wAXwpkAFMAKQROcngAAAByTgAAAHoIUEtHLUlORk8pC3JWAAAA2glzYWZlX25hbWVyjAAAANoFbG93ZXLaC3dvcmtpbmdfc2V02gZieV9rZXnaA2dldNoMaGFzX21ldGFkYXRh2gxzYWZlX3ZlcnNpb27aCF92ZXJzaW9u2g1fcGF0Y2hlZF9kaXN0KQRyTAAAANoFYXR0cnPaA2tleXJeAAAAchgAAAByGAAAAHIZAAAA2hZwYXRjaF9taXNzaW5nX3BrZ19pbmZvUwEAAHMOAAAAAAUWAQQBFgEOARQBFAF6I0Rpc3RyaWJ1dGlvbi5wYXRjaF9taXNzaW5nX3BrZ19pbmZvYwIAAAAAAAAACgAAAAwAAAADAAAAc9IBAAB0AIgAZAGDAn0CfAJzFGkAiABfAXwBcBppAH0BZAJ8AWsGcyxkA3wBawZyNHQCagODAAEAZwCIAF8EaQCIAF8FZwCIAF8GfAFqB2QEZACDAogAXwiIAGoJfAGDAQEAfAFqB2QFZwCDAogAXwp8AWoHZAZnAIMCiABfC3gkdAxqDWQHgwFEAF0WfQN0DogAgwFqD3wDahBkAIMCAQBxhlcAdBFqEogAhwBmAWQIZAmECHwBahODAEQAgwGDAgEAeFyIAGoUahODAEQAXU5cAn0EfQV4NogAahVqFnwBZgJEAF0WfQZ8BHwGawZy4HwGfAQZAH0HUABx4FcAfAWQAXIGfAWDAG4CZAB9B3QXiABqFXwEfAeDAwEAccpXAHQYiABqFWoZdBpqG4MCkAFyPnQciABqFWoZgwGIAGoVXxmIAGoVahlkAGsJkAFyxnlIdB1qGWoeiABqFWoZgwF9CHQcfAiDAX0JiABqFWoZfAlrA5ABcpJ0H2ogZAqIAGoVahl8CWYCFgCDAQEAfAmIAGoVXxlXAG4wBAB0HWoZaiF0ImYCawqQAXLEAQABAAEAdB9qIGQLiABqFWoZFgCDAQEAWQBuAlgAiABqI4MAAQBkAFMAKQxO2gxwYWNrYWdlX2RhdGHaCGZlYXR1cmVz2hByZXF1aXJlX2ZlYXR1cmVz2ghzcmNfcm9vdNoQZGVwZW5kZW5jeV9saW5rc9oOc2V0dXBfcmVxdWlyZXN6GGRpc3R1dGlscy5zZXR1cF9rZXl3b3Jkc2MBAAAAAAAAAAMAAAAEAAAAEwAAAHMgAAAAaQB8AF0YXAJ9AX0CfAGIAGoAawdyBHwCfAGTAnEEUwByGAAAACkB2h9fRElTVFVUSUxTX1VOU1VQUE9SVEVEX01FVEFEQVRBKQPaAi4wco4AAAByjwAAACkBckwAAAByGAAAAHIZAAAA+go8ZGljdGNvbXA+cQEAAHMEAAAABgEGAXopRGlzdHJpYnV0aW9uLl9faW5pdF9fLjxsb2NhbHM+LjxkaWN0Y29tcD56GE5vcm1hbGl6aW5nICclcycgdG8gJyVzJ3qmVGhlIHZlcnNpb24gc3BlY2lmaWVkICglcikgaXMgYW4gaW52YWxpZCB2ZXJzaW9uLCB0aGlzIG1heSBub3Qgd29yayBhcyBleHBlY3RlZCB3aXRoIG5ld2VyIHZlcnNpb25zIG9mIHNldHVwdG9vbHMsIHBpcCwgYW5kIFB5UEkuIFBsZWFzZSBzZWUgUEVQIDQ0MCBmb3IgbW9yZSBkZXRhaWxzLikkcksAAAByoQAAANoHRmVhdHVyZdoPd2Fybl9kZXByZWNhdGVkcqMAAAByogAAANoKZGlzdF9maWxlc9oDcG9wcqQAAAByoAAAAHKlAAAAcqYAAAByVgAAANoRaXRlcl9lbnRyeV9wb2ludHPaBHZhcnPaCnNldGRlZmF1bHRyeAAAANoNX0Rpc3RyaWJ1dGlvbtoIX19pbml0X19yQQAAAHKnAAAA2ghtZXRhZGF0YdoIX19kaWN0X1/aB3NldGF0dHJyfwAAAHJOAAAA2gdudW1iZXJz2gZOdW1iZXJyjAAAAHIKAAAA2gdWZXJzaW9uchQAAAByFQAAANoOSW52YWxpZFZlcnNpb25yWwAAANoSX2ZpbmFsaXplX3JlcXVpcmVzKQpyTAAAAHKeAAAAWhFoYXZlX3BhY2thZ2VfZGF0YXJgAAAA2gZvcHRpb27aB2RlZmF1bHTaBnNvdXJjZXJfAAAA2gN2ZXJaEm5vcm1hbGl6ZWRfdmVyc2lv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IHRoZSBjdXJyZW50IHN5c3RlbS4gIE90aGVyd2lzZSwgdGhlIGZlYXR1cmUgaXMgb25seQogICAgICAgICBpbmNsdWRlZCBpZiByZXF1ZXN0ZWQgdmlhIGEgY29tbWFuZCBsaW5lICctLXdpdGgtWCcgb3B0aW9uLCBvciBpZgogICAgICAgICBhbm90aGVyIGluY2x1ZGVkIGZlYXR1cmUgcmVxdWlyZXMgaXQuICBUaGUgZGVmYXVsdCBzZXR0aW5nIGlzICdGYWxzZScuCgogICAgICAnYXZhaWxhYmxlJyAtLSBpZiB0cnVlLCB0aGUgZmVhdHVyZSBpcyBhdmFpbGFibGUgZm9yIGluc3RhbGxhdGlvbiBvbiB0aGUKICAgICAgICAgY3VycmVudCBzeXN0ZW0uICBUaGUgZGVmYXVsdCBzZXR0aW5nIGlzICdUcnVlJy4KCiAgICAgICdvcHRpb25hbCcgLS0gaWYgdHJ1ZSwgdGhlIGZlYXR1cmUncyBpbmNsdXNpb24gY2FuIGJlIGNvbnRyb2xsZWQgZnJvbSB0aGUKICAgICAgICAgY29tbWFuZCBsaW5lLCB1c2luZyB0aGUgJy0td2l0aC1YJyBvciAnLS13aXRob3V0LVgnIG9wdGlvbnMuICBJZgogICAgICAgICBmYWxzZSwgdGhlIGZlYXR1cmUncyBpbmNsdXNpb24gc3RhdHVzIGlzIGRldGVybWluZWQgYXV0b21hdGljYWxseSwKICAgICAgICAgYmFzZWQgb24gJ2F2YWlsYWJpbGUnLCAnc3RhbmRhcmQnLCBhbmQgd2hldGhlciBhbnkgb3RoZXIgZmVhdHVyZQogICAgICAgICByZXF1aXJlcyBpdC4gIFRoZSBkZWZhdWx0IHNldHRpbmcgaXMgJ1RydWUnLgoKICAgICAgJ3JlcXVpcmVfZmVhdHVyZXMnIC0tIGEgc3RyaW5nIG9yIHNlcXVlbmNlIG9mIHN0cmluZ3MgbmFtaW5nIGZlYXR1cmVzCiAgICAgICAgIHRoYXQgc2hvdWxkIGFsc28gYmUgaW5jbHVkZWQgaWYgdGhpcyBmZWF0dXJlIGlzIGluY2x1ZGVkLiAgRGVmYXVsdHMgdG8KICAgICAgICAgZW1wdHkgbGlzdC4gIE1heSBhbHNvIGNvbnRhaW4gJ1JlcXVpcmUnIG9iamVjdHMgdGhhdCBzaG91bGQgYmUKICAgICAgICAgYWRkZWQvcmVtb3ZlZCBmcm9tIHRoZSBkaXN0cmlidXRpb24uCgogICAgICAncmVtb3ZlJyAtLSBhIHN0cmluZyBvciBsaXN0IG9mIHN0cmluZ3MgbmFtaW5nIHBhY2thZ2VzIHRvIGJlIHJlbW92ZWQKICAgICAgICAgZnJvbSB0aGUgZGlzdHJpYnV0aW9uIGlmIHRoaXMgZmVhdHVyZSBpcyAqbm90KiBpbmNsdWRlZC4gIElmIHRoZQogICAgICAgICBmZWF0dXJlICppcyogaW5jbHVkZWQsIHRoaXMgYXJndW1lbnQgaXMgaWdub3JlZC4gIFRoaXMgYXJndW1lbnQgZXhpc3RzCiAgICAgICAgIHRvIHN1cHBvcnQgcmVtb3ZpbmcgZmVhdHVyZXMgdGhhdCAiY3Jvc3NjdXQiIGEgZGlzdHJpYnV0aW9uLCBzdWNoIGFzCiAgICAgICAgIGRlZmluaW5nIGEgJ3Rlc3RzJyBmZWF0dXJlIHRoYXQgcmVtb3ZlcyBhbGwgdGhlICd0ZXN0cycgc3VicGFja2FnZXMKICAgICAgICAgcHJvdmlkZWQgYnkgb3RoZXIgZmVhdHVyZXMuICBUaGUgZGVmYXVsdCBmb3IgdGhpcyBhcmd1bWVudCBpcyBhbiBlbXB0eQogICAgICAgICBsaXN0LiAgKE5vdGU6IHRoZSBuYW1lZCBwYWNrYWdlKHMpIG9yIG1vZHVsZXMgbXVzdCBleGlzdCBpbiB0aGUgYmFzZQogICAgICAgICBkaXN0cmlidXRpb24gd2hlbiB0aGUgJ3NldHVwKCknIGZ1bmN0aW9uIGlzIGluaXRpYWxseSBjYWxsZWQuKQoKICAgICAgb3RoZXIga2V5d29yZHMgLS0gYW55IG90aGVyIGtleXdvcmQgYXJndW1lbnRzIGFyZSBzYXZlZCwgYW5kIHBhc3NlZCB0bwogICAgICAgICB0aGUgZGlzdHJpYnV0aW9uJ3MgJ2luY2x1ZGUoKScgYW5kICdleGNsdWRlKCknIG1ldGhvZHMgd2hlbiB0aGUKICAgICAgICAgZmVhdHVyZSBpcyBpbmNsdWRlZCBvciBleGNsdWRlZCwgcmVzcGVjdGl2ZWx5LiAgU28sIGZvciBleGFtcGxlLCB5b3UKICAgICAgICAgY291bGQgcGFzcyAncGFja2FnZXM9WyJhIiwiYiJdJyB0byBjYXVzZSBwYWNrYWdlcyAnYScgYW5kICdiJyB0byBiZQogICAgICAgICBhZGRlZCBvciByZW1vdmVkIGZyb20gdGhlIGRpc3RyaWJ1dGlvbiBhcyBhcHByb3ByaWF0ZS4KCiAgICBBIGZlYXR1cmUgbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9uZSAncmVxdWlyZXMnLCAncmVtb3ZlJywgb3Igb3RoZXIKICAgIGtleXdvcmQgYXJndW1lbnQuICBPdGhlcndpc2UsIGl0IGNhbid0IGFmZmVjdCB0aGUgZGlzdHJpYnV0aW9uIGluIGFueSB3YXkuCiAgICBOb3RlIGFsc28gdGhhdCB5b3UgY2FuIHN1YmNsYXNzICdGZWF0dXJlJyB0byBjcmVhdGUgeW91ciBvd24gc3BlY2lhbGl6ZWQKICAgIGZlYXR1cmUgdHlwZXMgdGhhdCBtb2RpZnkgdGhlIGRpc3RyaWJ1dGlvbiBpbiBvdGhlciB3YXlzIHdoZW4gaW5jbHVkZWQgb3IKICAgIGV4Y2x1ZGVkLiAgU2VlIHRoZSBkb2NzdHJpbmdzIGZvciB0aGUgdmFyaW91cyBtZXRob2RzIGhlcmUgZm9yIG1vcmUgZGV0YWlsLgogICAgQXNpZGUgZnJvbSB0aGUgbWV0aG9kcywgdGhlIG9ubHkgZmVhdHVyZSBhdHRyaWJ1dGVzIHRoYXQgZGlzdHJpYnV0aW9ucyBsb29rCiAgICBhdCBhcmUgJ2Rlc2NyaXB0aW9uJyBhbmQgJ29wdGlvbmFsJy4KICAgIGMAAAAAAAAAAAEAAAAFAAAAQwAAAHMYAAAAZAF9AHQAagF8AHQCZAJkA40DAQBkAFMAKQROenJGZWF0dXJlcyBhcmUgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHlwYS9zZXR1cHRvb2xzL2lzc3Vlcy82NS7pAwAAACkB2gpzdGFja2xldmVsKQNyFAAAAHIVAAAAchYAAAApAdoDbXNnchgAAAByGAAAAHIZ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