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aW4gdGhlIGZvbGxvd2luZwogICAgbGluZToKCiAgICAgICAgaW5jbHVkZS1zeXN0ZW0tc2l0ZS1wYWNrYWdlcyA9IGZhbHNlCgogICAgQWRkaXRpb25hbGx5LCBsb2cgYSB3YXJuaW5nIGlmIGFjY2Vzc2luZyB0aGUgZmlsZSBmYWlscy4KICAgIE56jkNvdWxkIG5vdCBhY2Nlc3MgJ3B5dmVudi5jZmcnIGRlc3BpdGUgYSB2aXJ0dWFsIGVudmlyb25tZW50IGJlaW5nIGFjdGl2ZS4gQXNzdW1pbmcgZ2xvYmFsIHNpdGUtcGFja2FnZXMgaXMgbm90IGFjY2Vzc2libGUgaW4gdGhpcyBlbnZpcm9ubWVudC5U2gV2YWx1ZdoFZmFsc2VGKQZyGQAAANoGbG9nZ2Vy2gd3YXJuaW5n2iNfSU5DTFVERV9TWVNURU1fU0lURV9QQUNLQUdFU19SRUdFWNoFbWF0Y2jaBWdyb3VwKQNaCWNmZ19saW5lc9oEbGluZXIfAAAAcgkAAAByCQAAAHIKAAAA2hVfbm9fZ2xvYmFsX3VuZGVyX3ZlbnYzAAAAcxQAAAAACwYBCAMEAQYEBAIKAQoBFgEIAXIiAAAAYwAAAAAAAAAAAgAAAAMAAABDAAAAczAAAAB0AGoBagJ0AGoBagN0BGoFgwGDAX0AdABqAWoGfABkAYMCfQF0AGoBagd8AYMBUwApAnrFQ2hlY2sgaWYgIm5vLWdsb2JhbC1zaXRlLXBhY2thZ2VzLnR4dCIgZXhpc3RzIGJlc2lkZSBzaXRlLnB5CgogICAgVGhpcyBtaXJyb3JzIGxvZ2ljIGluIHB5cGEvdmlydHVhbGVudiBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBzeXN0ZW0KICAgIHNpdGUtcGFja2FnZXMgYXJlIHZpc2libGUgaW4gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQuCiAgICB6G25vLWdsb2JhbC1zaXRlLXBhY2thZ2VzLnR4dCkIchEAAAByEgAAANoHZGlybmFtZdoHYWJzcGF0aNoEc2l0ZdoIX19maWxlX19yEwAAANoGZXhpc3RzKQLaDHNpdGVfbW9kX2Rpclocbm9fZ2xvYmFsX3NpdGVfcGFja2FnZXNfZmlsZXIJAAAAcgkAAAByCgAAANojX25vX2dsb2JhbF91bmRlcl9yZWd1bGFyX3ZpcnR1YWxlbnZQAAAAcwoAAAAABhYBBgECAQYCcikAAABjAAAAAAAAAAAAAAAAAQAAAEMAAABzHAAAAHQAgwByDHQBgwBTAHQCgwByGHQDgwBTAGQBUwApAnpIUmV0dXJucyBhIGJvb2xlYW4sIHdoZXRoZXIgcnVubmluZyBpbiB2ZW52IHdpdGggbm8gc3lzdGVtIHNpdGUtcGFja2FnZXMuRikEcgsAAAByIgAAAHIOAAAAcikAAAByCQAAAHIJAAAAcgkAAAByCgAAANoUdmlydHVhbGVudl9ub19nbG9iYWxeAAAAcwoAAAAABAYBBgIGAQYCcioAAAApFtoHbG9nZ2luZ3IRAAAA2gJyZXIlAAAAcgYAAABaBnR5cGluZ3ICAAAAcgMAAADaCWdldExvZ2dlctoIX19uYW1lX19yHAAAANoHY29tcGlsZXIeAAAA2gRib29scgsAAAByDgAAAHIPAAAA2gNzdHJyGQAAAHIiAAAAcikAAAByKgAAAHIJAAAAcgkAAAByCQAAAHIKAAAA2gg8bW9kdWxlPgEAAABzHgAAAAgBCAEIAQgBCAEQAgoBBAEGBA4IDgkOBRYPDh0ODg==