A/MNClJcrFFjAAAAAAAAAAADAAAAQAAAAHO1AAAAZAAAWgAAZAEAZAIAbAEAbQIAWgIAAWQBAGQDAGwDAG0EAFoEAG0FAFoFAG0GAFoGAG0HAFoHAG0IAFoIAG0JAFoJAG0KAFoKAG0LAFoLAAFkAQBkBABsDABtDABaDAABZAEAZAUAbA0AWg0AZAYAhAAAWg4AZAcAhAAAWg8AaQIAZQAAZAgANmUPAGQJADZaEABkCgCEAABaEQBlEgBkCwBrAgBysQBlEQCDAAABbgAAZAUAUygMAAAAc8VSAAAKVGVzdHMgZm9yIHRoZSB0b2tlbml6ZSBtb2R1bGUuCgogICAgPj4+IGltcG9ydCBnbG9iLCByYW5kb20sIHN5cwoKVGhlIHRlc3RzIGNhbiBiZSByZWFsbHkgc2ltcGxlLiBHaXZlbiBhIHNtYWxsIGZyYWdtZW50IG9mIHNvdXJjZQpjb2RlLCBwcmludCBvdXQgYSB0YWJsZSB3aXRoIHRva2Vucy4gVGhlIEVORE1BUksgaXMgb21pdHRlZCBmb3IKYnJldml0eS4KCiAgICA+Pj4gZHVtcF90b2tlbnMoIjEgKyAxIikKICAgIE5VTUJFUiAgICAgJzEnICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgTlVNQkVSICAgICAnMScgICAgICAgICAgICgxLCA0KSAoMSwgNSkKCiAgICA+Pj4gZHVtcF90b2tlbnMoImlmIEZhbHNlOlxuIgogICAgLi4uICAgICAgICAgICAgICIgICAgIyBOTFxuIgogICAgLi4uICAgICAgICAgICAgICIgICAgVHJ1ZSA9IEZhbHNlICMgTkVXTElORVxuIikKICAgIE5BTUUgICAgICAgJ2lmJyAgICAgICAgICAoMSwgMCkgKDEsIDIpCiAgICBOQU1FICAgICAgICdGYWxzZScgICAgICAgKDEsIDMpICgxLCA4KQogICAgT1AgICAgICAgICAnOicgICAgICAgICAgICgxLCA4KSAoMSwgOSkKICAgIE5FV0xJTkUgICAgJ1xuJyAgICAgICAgICAoMSwgOSkgKDEsIDEwKQogICAgQ09NTUVOVCAgICAnIyBOTCcgICAgICAgICgyLCA0KSAoMiwgOCkKICAgIE5MICAgICAgICAgJ1xuJyAgICAgICAgICAoMiwgOCkgKDIsIDkpCiAgICBJTkRFTlQgICAgICcgICAgJyAgICAgICAgKDMsIDApICgzLCA0KQogICAgTkFNRSAgICAgICAnVHJ1ZScgICAgICAgICgzLCA0KSAoMywgOCkKICAgIE9QICAgICAgICAgJz0nICAgICAgICAgICAoMywgOSkgKDMsIDEwKQogICAgTkFNRSAgICAgICAnRmFsc2UnICAgICAgICgzLCAxMSkgKDMsIDE2KQogICAgQ09NTUVOVCAgICAnIyBORVdMSU5FJyAgICgzLCAxNykgKDMsIDI2KQogICAgTkVXTElORSAgICAnXG4nICAgICAgICAgICgzLCAyNikgKDMsIDI3KQogICAgREVERU5UICAgICAnJyAgICAgICAgICAgICg0LCAwKSAoNCwgMCkKCiAgICA+Pj4gaW5kZW50X2Vycm9yX2ZpbGUgPSAiIiIKICAgIC4uLiBkZWYgayh4KToKICAgIC4uLiAgICAgeCArPSAyCiAgICAuLi4gICB4ICs9IDUKICAgIC4uLiAiIiIKCiAgICA+Pj4gZm9yIHRvayBpbiBnZW5lcmF0ZV90b2tlbnMoU3RyaW5nSU8oaW5kZW50X2Vycm9yX2ZpbGUpLnJlYWRsaW5lKTogcGFzcwogICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgIC4uLgogICAgSW5kZW50YXRpb25FcnJvcjogdW5pbmRlbnQgZG9lcyBub3QgbWF0Y2ggYW55IG91dGVyIGluZGVudGF0aW9uIGxldmVsCgpUZXN0IHJvdW5kdHJpcCBmb3IgYHVudG9rZW5pemVgLiBgZmAgaXMgYW4gb3BlbiBmaWxlIG9yIGEgc3RyaW5nLiBUaGUgc291cmNlCmNvZGUgaW4gZiBpcyB0b2tlbml6ZWQsIGNvbnZlcnRlZCBiYWNrIHRvIHNvdXJjZSBjb2RlIHZpYSB0b2tlbml6ZS51bnRva2VuaXplKCksCmFuZCB0b2tlbml6ZWQgYWdhaW4gZnJvbSB0aGUgbGF0dGVyLiBUaGUgdGVzdCBmYWlscyBpZiB0aGUgc2Vjb25kIHRva2VuaXphdGlvbgpkb2Vzbid0IG1hdGNoIHRoZSBmaXJzdC4KCiAgICA+Pj4gZGVmIHJvdW5kdHJpcChmKToKICAgIC4uLiAgICAgaWYgaXNpbnN0YW5jZShmLCBzdHIpOiBmID0gU3RyaW5nSU8oZikKICAgIC4uLiAgICAgdG9rZW5fbGlzdCA9IGxpc3QoZ2VuZXJhdGVfdG9rZW5zKGYucmVhZGxpbmUpKQogICAgLi4uICAgICBmLmNsb3NlKCkKICAgIC4uLiAgICAgdG9rZW5zMSA9IFt0b2tbOjJdIGZvciB0b2sgaW4gdG9rZW5fbGlzdF0KICAgIC4uLiAgICAgbmV3X3RleHQgPSB1bnRva2VuaXplKHRva2VuczEpCiAgICAuLi4gICAgIHJlYWRsaW5lID0gaXRlcihuZXdfdGV4dC5zcGxpdGxpbmVzKDEpKS5uZXh0CiAgICAuLi4gICAgIHRva2VuczIgPSBbdG9rWzoyXSBmb3IgdG9rIGluIGdlbmVyYXRlX3Rva2VucyhyZWFkbGluZSldCiAgICAuLi4gICAgIHJldHVybiB0b2tlbnMxID09IHRva2VuczIKICAgIC4uLgoKVGhlcmUgYXJlIHNvbWUgc3RhbmRhcmQgZm9ybWF0dGluZyBwcmFjdGljZXMgdGhhdCBhcmUgZWFzeSB0byBnZXQgcmlnaHQuCgogICAgPj4+IHJvdW5kdHJpcCgiaWYgeCA9PSAxOlxuIgogICAgLi4uICAgICAgICAgICAiICAgIHByaW50IHhcbiIpCiAgICBUcnVlCgogICAgPj4+IHJvdW5kdHJpcCgiIyBUaGlzIGlzIGEgY29tbWVudFxuIyBUaGlzIGFsc28iKQogICAgVHJ1ZQoKU29tZSBwZW9wbGUgdXNlIGRpZmZlcmVudCBmb3JtYXR0aW5nIGNvbnZlbnRpb25zLCB3aGljaCBtYWtlcwp1bnRva2VuaXplIGEgbGl0dGxlIHRyaWNraWVyLiBOb3RlIHRoYXQgdGhpcyB0ZXN0IGludm9sdmVzIHRyYWlsaW5nCndoaXRlc3BhY2UgYWZ0ZXIgdGhlIGNvbG9uLiBOb3RlIHRoYXQgd2UgdXNlIGhleCBlc2NhcGVzIHRvIG1ha2UgdGhlCnR3byB0cmFpbGluZyBibGFua3MgYXBwZXJhbnQgaW4gdGhlIGV4cGVjdGVkIG91dHB1dC4KCiAgICA+Pj4gcm91bmR0cmlwKCJpZiB4ID09IDEgOiBcbiIKICAgIC4uLiAgICAgICAgICAgIiAgcHJpbnQgeFxuIikKICAgIFRydWUKCiAgICA+Pj4gZiA9IHRlc3Rfc3VwcG9ydC5maW5kZmlsZSgidG9rZW5pemVfdGVzdHMiICsgb3MuZXh0c2VwICsgInR4dCIpCiAgICA+Pj4gcm91bmR0cmlwKG9wZW4oZikpCiAgICBUcnVlCgogICAgPj4+IHJvdW5kdHJpcCgiaWYgeCA9PSAxOlxuIgogICAgLi4uICAgICAgICAgICAiICAgICMgQSBjb21tZW50IGJ5IGl0c2VsZi5cbiIKICAgIC4uLiAgICAgICAgICAgIiAgICBwcmludCB4ICMgQ29tbWVudCBoZXJlLCB0b28uXG4iCiAgICAuLi4gICAgICAgICAgICIgICAgIyBBbm90aGVyIGNvbW1lbnQuXG4iCiAgICAuLi4gICAgICAgICAgICJhZnRlcl9pZiA9IFRydWVcbiIpCiAgICBUcnVlCgogICAgPj4+IHJvdW5kdHJpcCgiaWYgKHggIyBUaGUgY29tbWVudHMgbmVlZCB0byBnbyBpbiB0aGUgcmlnaHQgcGxhY2VcbiIKICAgIC4uLiAgICAgICAgICAgIiAgICA9PSAxKTpcbiIKICAgIC4uLiAgICAgICAgICAgIiAgICBwcmludCAneD09MSdcbiIpCiAgICBUcnVlCgogICAgPj4+IHJvdW5kdHJpcCgiY2xhc3MgVGVzdDogIyBBIGNvbW1lbnQgaGVyZVxuIgogICAgLi4uICAgICAgICAgICAiICAjIEEgY29tbWVudCB3aXRoIHdlaXJkIGluZGVudFxuIgogICAgLi4uICAgICAgICAgICAiICBhZnRlcl9jb20gPSA1XG4iCiAgICAuLi4gICAgICAgICAgICIgIGRlZiB4KG0pOiByZXR1cm4gbSo1ICMgYSBvbmUgbGluZXJcbiIKICAgIC4uLiAgICAgICAgICAgIiAgZGVmIHkobSk6ICMgQSB3aGl0ZXNwYWNlIGFmdGVyIHRoZSBjb2xvblxuIgogICAgLi4uICAgICAgICAgICAiICAgICByZXR1cm4geSo0ICMgMy1zcGFjZSBpbmRlbnRcbiIpCiAgICBUcnVlCgpTb21lIGVycm9yLWhhbmRsaW5nIGNvZGUKCiAgICA+Pj4gcm91bmR0cmlwKCJ0cnk6IGltcG9ydCBzb21lbW9kdWxlXG4iCiAgICAuLi4gICAgICAgICAgICJleGNlcHQgSW1wb3J0RXJyb3I6ICMgY29tbWVudFxuIgogICAgLi4uICAgICAgICAgICAiICAgIHByaW50ICdDYW4gbm90IGltcG9ydCcgIyBjb21tZW50MlxuIgogICAgLi4uICAgICAgICAgICAiZWxzZTogICBwcmludCAnTG9hZGVkJ1xuIikKICAgIFRydWUKCkJhbGFuY2luZyBjb250aW51YXRpb24KCiAgICA+Pj4gcm91bmR0cmlwKCJhID0gKDMsNCwgXG4iCiAgICAuLi4gICAgICAgICAgICI1LDYpXG4iCiAgICAuLi4gICAgICAgICAgICJ5ID0gWzMsIDQsXG4iCiAgICAuLi4gICAgICAgICAgICI1XVxuIgogICAgLi4uICAgICAgICAgICAieiA9IHsnYSc6IDUsXG4iCiAgICAuLi4gICAgICAgICAgICInYic6MTUsICdjJzpUcnVlfVxuIgogICAgLi4uICAgICAgICAgICAieCA9IGxlbih5KSArIDUgLSBhW1xuIgogICAgLi4uICAgICAgICAgICAiM10gLSBhWzJdXG4iCiAgICAuLi4gICAgICAgICAgICIrIGxlbih6KSAtIHpbXG4iCiAgICAuLi4gICAgICAgICAgICInYiddXG4iKQogICAgVHJ1ZQoKT3JkaW5hcnkgaW50ZWdlcnMgYW5kIGJpbmFyeSBvcGVyYXRvcnMKCiAgICA+Pj4gZHVtcF90b2tlbnMoIjB4ZmYgPD0gMjU1IikKICAgIE5VTUJFUiAgICAgJzB4ZmYnICAgICAgICAoMSwgMCkgKDEsIDQpCiAgICBPUCAgICAgICAgICc8PScgICAgICAgICAgKDEsIDUpICgxLCA3KQogICAgTlVNQkVSICAgICAnMjU1JyAgICAgICAgICgxLCA4KSAoMSwgMTEpCiAgICA+Pj4gZHVtcF90b2tlbnMoIjBiMTAgPD0gMjU1IikKICAgIE5VTUJFUiAgICAgJzBiMTAnICAgICAgICAoMSwgMCkgKDEsIDQpCiAgICBPUCAgICAgICAgICc8PScgICAgICAgICAgKDEsIDUpICgxLCA3KQogICAgTlVNQkVSICAgICAnMjU1JyAgICAgICAgICgxLCA4KSAoMSwgMTEpCiAgICA+Pj4gZHVtcF90b2tlbnMoIjBvMTIzIDw9IDAxMjMiKQogICAgTlVNQkVSICAgICAnMG8xMjMnICAgICAgICgxLCAwKSAoMSwgNSkKICAgIE9QICAgICAgICAgJzw9JyAgICAgICAgICAoMSwgNikgKDEsIDgpCiAgICBOVU1CRVIgICAgICcwMTIzJyAgICAgICAgKDEsIDkpICgxLCAxMykKICAgID4+PiBkdW1wX3Rva2VucygiMDEyMzQ1NjcgPiB+MHgxNSIpCiAgICBOVU1CRVIgICAgICcwMTIzNDU2NycgICAgKDEsIDApICgxLCA4KQogICAgT1AgICAgICAgICAnPicgICAgICAgICAgICgxLCA5KSAoMSwgMTApCiAgICBPUCAgICAgICAgICd+JyAgICAgICAgICAgKDEsIDExKSAoMSwgMTIpCiAgICBOVU1CRVIgICAgICcweDE1JyAgICAgICAgKDEsIDEyKSAoMSwgMTYpCiAgICA+Pj4gZHVtcF90b2tlbnMoIjIxMzQ1NjggIT0gMDEyMzE1MTUiKQogICAgTlVNQkVSICAgICAnMjEzNDU2OCcgICAgICgxLCAwKSAoMSwgNykKICAgIE9QICAgICAgICAgJyE9JyAgICAgICAgICAoMSwgOCkgKDEsIDEwKQogICAgTlVNQkVSICAgICAnMDEyMzE1MTUnICAgICgxLCAxMSkgKDEsIDE5KQogICAgPj4+IGR1bXBfdG9rZW5zKCIoLTEyNDU2MS0xKSAmIDAyMDAwMDAwMDAiKQogICAgT1AgICAgICAgICAnKCcgICAgICAgICAgICgxLCAwKSAoMSwgMSkKICAgIE9QICAgICAgICAgJy0nICAgICAgICAgICAoMSwgMSkgKDEsIDIpCiAgICBOVU1CRVIgICAgICcxMjQ1NjEnICAgICAgKDEsIDIpICgxLCA4KQogICAgT1AgICAgICAgICAnLScgICAgICAgICAgICgxLCA4KSAoMSwgOSkKICAgIE5VTUJFUiAgICAgJzEnICAgICAgICAgICAoMSwgOSkgKDEsIDEwKQogICAgT1AgICAgICAgICAnKScgICAgICAgICAgICgxLCAxMCkgKDEsIDExKQogICAgT1AgICAgICAgICAnJicgICAgICAgICAgICgxLCAxMikgKDEsIDEzKQogICAgTlVNQkVSICAgICAnMDIwMDAwMDAwMCcgICgxLCAxNCkgKDEsIDI0KQogICAgPj4+IGR1bXBfdG9rZW5zKCIweGRlYWRiZWVmICE9IC0xIikKICAgIE5VTUJFUiAgICAgJzB4ZGVhZGJlZWYnICAoMSwgMCkgKDEsIDEwKQogICAgT1AgICAgICAgICAnIT0nICAgICAgICAgICgxLCAxMSkgKDEsIDEzKQogICAgT1AgICAgICAgICAnLScgICAgICAgICAgICgxLCAxNCkgKDEsIDE1KQogICAgTlVNQkVSICAgICAnMScgICAgICAgICAgICgxLCAxNSkgKDEsIDE2KQogICAgPj4+IGR1bXBfdG9rZW5zKCIweGRlYWRjMGRlICYgMDEyMzQ1IikKICAgIE5VTUJFUiAgICAgJzB4ZGVhZGMwZGUnICAoMSwgMCkgKDEsIDEwKQogICAgT1AgICAgICAgICAnJicgICAgICAgICAgICgxLCAxMSkgKDEsIDEyKQogICAgTlVNQkVSICAgICAnMDEyMzQ1JyAgICAgICgxLCAxMykgKDEsIDE5KQogICAgPj4+IGR1bXBfdG9rZW5zKCIweEZGICYgMHgxNSB8IDEyMzQiKQogICAgTlVNQkVSICAgICAnMHhGRicgICAgICAgICgxLCAwKSAoMSwgNCkKICAgIE9QICAgICAgICAgJyYnICAgICAgICAgICAoMSwgNSkgKDEsIDYpCiAgICBOVU1CRVIgICAgICcweDE1JyAgICAgICAgKDEsIDcpICgxLCAxMSkKICAgIE9QICAgICAgICAgJ3wnICAgICAgICAgICAoMSwgMTIpICgxLCAxMykKICAgIE5VTUJFUiAgICAgJzEyMzQnICAgICAgICAoMSwgMTQpICgxLCAxOCkKCkxvbmcgaW50ZWdlcnMKCiAgICA+Pj4gZHVtcF90b2tlbnMoInggPSAwTCIpCiAgICBOQU1FICAgICAgICd4JyAgICAgICAgICAgKDEsIDApICgxLCAxKQogICAgT1AgICAgICAgICAnPScgICAgICAgICAgICgxLCAyKSAoMSwgMykKICAgIE5VTUJFUiAgICAgJzBMJyAgICAgICAgICAoMSwgNCkgKDEsIDYpCiAgICA+Pj4gZHVtcF90b2tlbnMoInggPSAweGZmZmZmZmZmZmZmIikKICAgIE5BTUUgICAgICAgJ3gnICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgTlVNQkVSICAgICAnMHhmZmZmZmZmZmZmICgxLCA0KSAoMSwgMTcpCiAgICA+Pj4gZHVtcF90b2tlbnMoInggPSAxMjMxNDEyNDIxNTEyNTE2MTYxMTBsIikKICAgIE5BTUUgICAgICAgJ3gnICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgTlVNQkVSICAgICAnMTIzMTQxMjQyMTUxICgxLCA0KSAoMSwgMjYpCiAgICA+Pj4gZHVtcF90b2tlbnMoInggPSAtMTU5MjE1OTAyMTUwMTI1OTFMIikKICAgIE5BTUUgICAgICAgJ3gnICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgT1AgICAgICAgICAnLScgICAgICAgICAgICgxLCA0KSAoMSwgNSkKICAgIE5VTUJFUiAgICAgJzE1OTIxNTkwMjE1MCAoMSwgNSkgKDEsIDIzKQoKRmxvYXRpbmcgcG9pbnQgbnVtYmVycwoKICAgID4+PiBkdW1wX3Rva2VucygieCA9IDMuMTQxNTkiKQogICAgTkFNRSAgICAgICAneCcgICAgICAgICAgICgxLCAwKSAoMSwgMSkKICAgIE9QICAgICAgICAgJz0nICAgICAgICAgICAoMSwgMikgKDEsIDMpCiAgICBOVU1CRVIgICAgICczLjE0MTU5JyAgICAgKDEsIDQpICgxLCAxMSkKICAgID4+PiBkdW1wX3Rva2VucygieCA9IDMxNDE1OS4iKQogICAgTkFNRSAgICAgICAneCcgICAgICAgICAgICgxLCAwKSAoMSwgMSkKICAgIE9QICAgICAgICAgJz0nICAgICAgICAgICAoMSwgMikgKDEsIDMpCiAgICBOVU1CRVIgICAgICczMTQxNTkuJyAgICAgKDEsIDQpICgxLCAxMSkKICAgID4+PiBkdW1wX3Rva2VucygieCA9IC4zMTQxNTkiKQogICAgTkFNRSAgICAgICAneCcgICAgICAgICAgICgxLCAwKSAoMSwgMSkKICAgIE9QICAgICAgICAgJz0nICAgICAgICAgICAoMSwgMikgKDEsIDMpCiAgICBOVU1CRVIgICAgICcuMzE0MTU5JyAgICAgKDEsIDQpICgxLCAxMSkKICAgID4+PiBkdW1wX3Rva2VucygieCA9IDNlMTQxNTkiKQogICAgTkFNRSAgICAgICAneCcgICAgICAgICAgICgxLCAwKSAoMSwgMSkKICAgIE9QICAgICAgICAgJz0nICAgICAgICAgICAoMSwgMikgKDEsIDMpCiAgICBOVU1CRVIgICAgICczZTE0MTU5JyAgICAgKDEsIDQpICgxLCAxMSkKICAgID4+PiBkdW1wX3Rva2VucygieCA9IDNFMTIzIikKICAgIE5BTUUgICAgICAgJ3gnICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgTlVNQkVSICAgICAnM0UxMjMnICAgICAgICgxLCA0KSAoMSwgOSkKICAgID4+PiBkdW1wX3Rva2VucygieCt5ID0gM2UtMTIzMCIpCiAgICBOQU1FICAgICAgICd4JyAgICAgICAgICAgKDEsIDApICgxLCAxKQogICAgT1AgICAgICAgICAnKycgICAgICAgICAgICgxLCAxKSAoMSwgMikKICAgIE5BTUUgICAgICAgJ3knICAgICAgICAgICAoMSwgMikgKDEsIDMpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDQpICgxLCA1KQogICAgTlVNQkVSICAgICAnM2UtMTIzMCcgICAgICgxLCA2KSAoMSwgMTMpCiAgICA+Pj4gZHVtcF90b2tlbnMoInggPSAzLjE0ZTE1OSIpCiAgICBOQU1FICAgICAgICd4JyAgICAgICAgICAgKDEsIDApICgxLCAxKQogICAgT1AgICAgICAgICAnPScgICAgICAgICAgICgxLCAyKSAoMSwgMykKICAgIE5VTUJFUiAgICAgJzMuMTRlMTU5JyAgICAoMSwgNCkgKDEsIDEyKQoKU3RyaW5nIGxpdGVyYWxzCgogICAgPj4+IGR1bXBfdG9rZW5zKCJ4ID0gJyc7IHkgPSBcIlwiIikKICAgIE5BTUUgICAgICAgJ3gnICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgU1RSSU5HICAgICAiJyciICAgICAgICAgICgxLCA0KSAoMSwgNikKICAgIE9QICAgICAgICAgJzsnICAgICAgICAgICAoMSwgNikgKDEsIDcpCiAgICBOQU1FICAgICAgICd5JyAgICAgICAgICAgKDEsIDgpICgxLCA5KQogICAgT1AgICAgICAgICAnPScgICAgICAgICAgICgxLCAxMCkgKDEsIDExKQogICAgU1RSSU5HICAgICAnIiInICAgICAgICAgICgxLCAxMikgKDEsIDE0KQogICAgPj4+IGR1bXBfdG9rZW5zKCJ4ID0gJ1wiJzsgeSA9IFwiJ1wiIikKICAgIE5BTUUgICAgICAgJ3gnICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgU1RSSU5HICAgICAnXCciXCcnICAgICAgICgxLCA0KSAoMSwgNykKICAgIE9QICAgICAgICAgJzsnICAgICAgICAgICAoMSwgNykgKDEsIDgpCiAgICBOQU1FICAgICAgICd5JyAgICAgICAgICAgKDEsIDkpICgxLCAxMCkKICAgIE9QICAgICAgICAgJz0nICAgICAgICAgICAoMSwgMTEpICgxLCAxMikKICAgIFNUUklORyAgICAgJyJcJyInICAgICAgICAoMSwgMTMpICgxLCAxNikKICAgID4+PiBkdW1wX3Rva2VucygieCA9IFwiZG9lc24ndCBcInNocmlua1wiLCBkb2VzIGl0XCIiKQogICAgTkFNRSAgICAgICAneCcgICAgICAgICAgICgxLCAwKSAoMSwgMSkKICAgIE9QICAgICAgICAgJz0nICAgICAgICAgICAoMSwgMikgKDEsIDMpCiAgICBTVFJJTkcgICAgICciZG9lc25cJ3QgIicgKDEsIDQpICgxLCAxNCkKICAgIE5BTUUgICAgICAgJ3NocmluaycgICAgICAoMSwgMTQpICgxLCAyMCkKICAgIFNUUklORyAgICAgJyIsIGRvZXMgaXQiJyAoMSwgMjApICgxLCAzMSkKICAgID4+PiBkdW1wX3Rva2VucygieCA9IHUnYWJjJyArIFUnQUJDJyIpCiAgICBOQU1FICAgICAgICd4JyAgICAgICAgICAgKDEsIDApICgxLCAxKQogICAgT1AgICAgICAgICAnPScgICAgICAgICAgICgxLCAyKSAoMSwgMykKICAgIFNUUklORyAgICAgInUnYWJjJyIgICAgICAoMSwgNCkgKDEsIDEwKQogICAgT1AgICAgICAgICAnKycgICAgICAgICAgICgxLCAxMSkgKDEsIDEyKQogICAgU1RSSU5HICAgICAiVSdBQkMnIiAgICAgICgxLCAxMykgKDEsIDE5KQogICAgPj4+IGR1bXBfdG9rZW5zKCd5ID0gdSJBQkMiICsgVSJBQkMiJykKICAgIE5BTUUgICAgICAgJ3knICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgU1RSSU5HICAgICAndSJBQkMiJyAgICAgICgxLCA0KSAoMSwgMTApCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDExKSAoMSwgMTIpCiAgICBTVFJJTkcgICAgICdVIkFCQyInICAgICAgKDEsIDEzKSAoMSwgMTkpCiAgICA+Pj4gZHVtcF90b2tlbnMoInggPSB1cidhYmMnICsgVXInQUJDJyArIHVSJ0FCQycgKyBVUidBQkMnIikKICAgIE5BTUUgICAgICAgJ3gnICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgU1RSSU5HICAgICAidXInYWJjJyIgICAgICgxLCA0KSAoMSwgMTEpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDEyKSAoMSwgMTMpCiAgICBTVFJJTkcgICAgICJVcidBQkMnIiAgICAgKDEsIDE0KSAoMSwgMjEpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDIyKSAoMSwgMjMpCiAgICBTVFJJTkcgICAgICJ1UidBQkMnIiAgICAgKDEsIDI0KSAoMSwgMzEpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDMyKSAoMSwgMzMpCiAgICBTVFJJTkcgICAgICJVUidBQkMnIiAgICAgKDEsIDM0KSAoMSwgNDEpCiAgICA+Pj4gZHVtcF90b2tlbnMoJ3kgPSB1ciJhYmMiICsgVXIiQUJDIiArIHVSIkFCQyIgKyBVUiJBQkMiJykKICAgIE5BTUUgICAgICAgJ3knICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgU1RSSU5HICAgICAndXIiYWJjIicgICAgICgxLCA0KSAoMSwgMTEpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDEyKSAoMSwgMTMpCiAgICBTVFJJTkcgICAgICdVciJBQkMiJyAgICAgKDEsIDE0KSAoMSwgMjEpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDIyKSAoMSwgMjMpCiAgICBTVFJJTkcgICAgICd1UiJBQkMiJyAgICAgKDEsIDI0KSAoMSwgMzEpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDMyKSAoMSwgMzMpCiAgICBTVFJJTkcgICAgICdVUiJBQkMiJyAgICAgKDEsIDM0KSAoMSwgNDEpCgogICAgPj4+IGR1bXBfdG9rZW5zKCJiJ2FiYycgKyBCJ2FiYyciKQogICAgU1RSSU5HICAgICAiYidhYmMnIiAgICAgICgxLCAwKSAoMSwgNikKICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgNykgKDEsIDgpCiAgICBTVFJJTkcgICAgICJCJ2FiYyciICAgICAgKDEsIDkpICgxLCAxNSkKICAgID4+PiBkdW1wX3Rva2VucygnYiJhYmMiICsgQiJhYmMiJykKICAgIFNUUklORyAgICAgJ2IiYWJjIicgICAgICAoMSwgMCkgKDEsIDYpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDcpICgxLCA4KQogICAgU1RSSU5HICAgICAnQiJhYmMiJyAgICAgICgxLCA5KSAoMSwgMTUpCiAgICA+Pj4gZHVtcF90b2tlbnMoImJyJ2FiYycgKyBiUidhYmMnICsgQnInYWJjJyArIEJSJ2FiYyciKQogICAgU1RSSU5HICAgICAiYnInYWJjJyIgICAgICgxLCAwKSAoMSwgNykKICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgOCkgKDEsIDkpCiAgICBTVFJJTkcgICAgICJiUidhYmMnIiAgICAgKDEsIDEwKSAoMSwgMTcpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDE4KSAoMSwgMTkpCiAgICBTVFJJTkcgICAgICJCcidhYmMnIiAgICAgKDEsIDIwKSAoMSwgMjcpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDI4KSAoMSwgMjkpCiAgICBTVFJJTkcgICAgICJCUidhYmMnIiAgICAgKDEsIDMwKSAoMSwgMzcpCiAgICA+Pj4gZHVtcF90b2tlbnMoJ2JyImFiYyIgKyBiUiJhYmMiICsgQnIiYWJjIiArIEJSImFiYyInKQogICAgU1RSSU5HICAgICAnYnIiYWJjIicgICAgICgxLCAwKSAoMSwgNykKICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgOCkgKDEsIDkpCiAgICBTVFJJTkcgICAgICdiUiJhYmMiJyAgICAgKDEsIDEwKSAoMSwgMTcpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDE4KSAoMSwgMTkpCiAgICBTVFJJTkcgICAgICdCciJhYmMiJyAgICAgKDEsIDIwKSAoMSwgMjcpCiAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDI4KSAoMSwgMjkpCiAgICBTVFJJTkcgICAgICdCUiJhYmMiJyAgICAgKDEsIDMwKSAoMSwgMzcpCgpPcGVyYXRvcnMKCiAgICA+Pj4gZHVtcF90b2tlbnMoImRlZiBkMjIoYSwgYiwgYz0yLCBkPTIsICprKTogcGFzcyIpCiAgICBOQU1FICAgICAgICdkZWYnICAgICAgICAgKDEsIDApICgxLCAzKQogICAgTkFNRSAgICAgICAnZDIyJyAgICAgICAgICgxLCA0KSAoMSwgNykKICAgIE9QICAgICAgICAgJygnICAgICAgICAgICAoMSwgNykgKDEsIDgpCiAgICBOQU1FICAgICAgICdhJyAgICAgICAgICAgKDEsIDgpICgxLCA5KQogICAgT1AgICAgICAgICAnLCcgICAgICAgICAgICgxLCA5KSAoMSwgMTApCiAgICBOQU1FICAgICAgICdiJyAgICAgICAgICAgKDEsIDExKSAoMSwgMTIpCiAgICBPUCAgICAgICAgICcsJyAgICAgICAgICAgKDEsIDEyKSAoMSwgMTMpCiAgICBOQU1FICAgICAgICdjJyAgICAgICAgICAgKDEsIDE0KSAoMSwgMTUpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDE1KSAoMSwgMTYpCiAgICBOVU1CRVIgICAgICcyJyAgICAgICAgICAgKDEsIDE2KSAoMSwgMTcpCiAgICBPUCAgICAgICAgICcsJyAgICAgICAgICAgKDEsIDE3KSAoMSwgMTgpCiAgICBOQU1FICAgICAgICdkJyAgICAgICAgICAgKDEsIDE5KSAoMSwgMjApCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIwKSAoMSwgMjEpCiAgICBOVU1CRVIgICAgICcyJyAgICAgICAgICAgKDEsIDIxKSAoMSwgMjIpCiAgICBPUCAgICAgICAgICcsJyAgICAgICAgICAgKDEsIDIyKSAoMSwgMjMpCiAgICBPUCAgICAgICAgICcqJyAgICAgICAgICAgKDEsIDI0KSAoMSwgMjUpCiAgICBOQU1FICAgICAgICdrJyAgICAgICAgICAgKDEsIDI1KSAoMSwgMjYpCiAgICBPUCAgICAgICAgICcpJyAgICAgICAgICAgKDEsIDI2KSAoMSwgMjcpCiAgICBPUCAgICAgICAgICc6JyAgICAgICAgICAgKDEsIDI3KSAoMSwgMjgpCiAgICBOQU1FICAgICAgICdwYXNzJyAgICAgICAgKDEsIDI5KSAoMSwgMzMpCiAgICA+Pj4gZHVtcF90b2tlbnMoImRlZiBkMDF2XyhhPTEsICprLCAqKncpOiBwYXNzIikKICAgIE5BTUUgICAgICAgJ2RlZicgICAgICAgICAoMSwgMCkgKDEsIDMpCiAgICBOQU1FICAgICAgICdkMDF2XycgICAgICAgKDEsIDQpICgxLCA5KQogICAgT1AgICAgICAgICAnKCcgICAgICAgICAgICgxLCA5KSAoMSwgMTApCiAgICBOQU1FICAgICAgICdhJyAgICAgICAgICAgKDEsIDEwKSAoMSwgMTEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDExKSAoMSwgMTIpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDEyKSAoMSwgMTMpCiAgICBPUCAgICAgICAgICcsJyAgICAgICAgICAgKDEsIDEzKSAoMSwgMTQpCiAgICBPUCAgICAgICAgICcqJyAgICAgICAgICAgKDEsIDE1KSAoMSwgMTYpCiAgICBOQU1FICAgICAgICdrJyAgICAgICAgICAgKDEsIDE2KSAoMSwgMTcpCiAgICBPUCAgICAgICAgICcsJyAgICAgICAgICAgKDEsIDE3KSAoMSwgMTgpCiAgICBPUCAgICAgICAgICcqKicgICAgICAgICAgKDEsIDE5KSAoMSwgMjEpCiAgICBOQU1FICAgICAgICd3JyAgICAgICAgICAgKDEsIDIxKSAoMSwgMjIpCiAgICBPUCAgICAgICAgICcpJyAgICAgICAgICAgKDEsIDIyKSAoMSwgMjMpCiAgICBPUCAgICAgICAgICc6JyAgICAgICAgICAgKDEsIDIzKSAoMSwgMjQpCiAgICBOQU1FICAgICAgICdwYXNzJyAgICAgICAgKDEsIDI1KSAoMSwgMjkpCgpDb21wYXJpc29uCgogICAgPj4+IGR1bXBfdG9rZW5zKCJpZiAxIDwgMSA+IDEgPT0gMSA+PSA1IDw9IDB4MTUgPD0gMHgxMiAhPSAiICsKICAgIC4uLiAgICAgICAgICAgICAiMSBhbmQgNSBpbiAxIG5vdCBpbiAxIGlzIDEgb3IgNSBpcyBub3QgMTogcGFzcyIpCiAgICBOQU1FICAgICAgICdpZicgICAgICAgICAgKDEsIDApICgxLCAyKQogICAgTlVNQkVSICAgICAnMScgICAgICAgICAgICgxLCAzKSAoMSwgNCkKICAgIE9QICAgICAgICAgJzwnICAgICAgICAgICAoMSwgNSkgKDEsIDYpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDcpICgxLCA4KQogICAgT1AgICAgICAgICAnPicgICAgICAgICAgICgxLCA5KSAoMSwgMTApCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDExKSAoMSwgMTIpCiAgICBPUCAgICAgICAgICc9PScgICAgICAgICAgKDEsIDEzKSAoMSwgMTUpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDE2KSAoMSwgMTcpCiAgICBPUCAgICAgICAgICc+PScgICAgICAgICAgKDEsIDE4KSAoMSwgMjApCiAgICBOVU1CRVIgICAgICc1JyAgICAgICAgICAgKDEsIDIxKSAoMSwgMjIpCiAgICBPUCAgICAgICAgICc8PScgICAgICAgICAgKDEsIDIzKSAoMSwgMjUpCiAgICBOVU1CRVIgICAgICcweDE1JyAgICAgICAgKDEsIDI2KSAoMSwgMzApCiAgICBPUCAgICAgICAgICc8PScgICAgICAgICAgKDEsIDMxKSAoMSwgMzMpCiAgICBOVU1CRVIgICAgICcweDEyJyAgICAgICAgKDEsIDM0KSAoMSwgMzgpCiAgICBPUCAgICAgICAgICchPScgICAgICAgICAgKDEsIDM5KSAoMSwgNDEpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDQyKSAoMSwgNDMpCiAgICBOQU1FICAgICAgICdhbmQnICAgICAgICAgKDEsIDQ0KSAoMSwgNDcpCiAgICBOVU1CRVIgICAgICc1JyAgICAgICAgICAgKDEsIDQ4KSAoMSwgNDkpCiAgICBOQU1FICAgICAgICdpbicgICAgICAgICAgKDEsIDUwKSAoMSwgNTIpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDUzKSAoMSwgNTQpCiAgICBOQU1FICAgICAgICdub3QnICAgICAgICAgKDEsIDU1KSAoMSwgNTgpCiAgICBOQU1FICAgICAgICdpbicgICAgICAgICAgKDEsIDU5KSAoMSwgNjEpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDYyKSAoMSwgNjMpCiAgICBOQU1FICAgICAgICdpcycgICAgICAgICAgKDEsIDY0KSAoMSwgNjYpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDY3KSAoMSwgNjgpCiAgICBOQU1FICAgICAgICdvcicgICAgICAgICAgKDEsIDY5KSAoMSwgNzEpCiAgICBOVU1CRVIgICAgICc1JyAgICAgICAgICAgKDEsIDcyKSAoMSwgNzMpCiAgICBOQU1FICAgICAgICdpcycgICAgICAgICAgKDEsIDc0KSAoMSwgNzYpCiAgICBOQU1FICAgICAgICdub3QnICAgICAgICAgKDEsIDc3KSAoMSwgODApCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDgxKSAoMSwgODIpCiAgICBPUCAgICAgICAgICc6JyAgICAgICAgICAgKDEsIDgyKSAoMSwgODMpCiAgICBOQU1FICAgICAgICdwYXNzJyAgICAgICAgKDEsIDg0KSAoMSwgODgpCgpTaGlmdAoKICAgID4+PiBkdW1wX3Rva2VucygieCA9IDEgPDwgMSA+PiA1IikKICAgIE5BTUUgICAgICAgJ3gnICAgICAgICAgICAoMSwgMCkgKDEsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgTlVNQkVSICAgICAnMScgICAgICAgICAgICgxLCA0KSAoMSwgNSkKICAgIE9QICAgICAgICAgJzw8JyAgICAgICAgICAoMSwgNikgKDEsIDgpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDkpICgxLCAxMCkKICAgIE9QICAgICAgICAgJz4+JyAgICAgICAgICAoMSwgMTEpICgxLCAxMykKICAgIE5VTUJFUiAgICAgJzUnICAgICAgICAgICAoMSwgMTQpICgxLCAxNSkKCkFkZGl0aXZlCgogICAgPj4+IGR1bXBfdG9rZW5zKCJ4ID0gMSAtIHkgKyAxNSAtIDAxICsgMHgxMjQgKyB6ICsgYVs1XSIpCiAgICBOQU1FICAgICAgICd4JyAgICAgICAgICAgKDEsIDApICgxLCAxKQogICAgT1AgICAgICAgICAnPScgICAgICAgICAgICgxLCAyKSAoMSwgMykKICAgIE5VTUJFUiAgICAgJzEnICAgICAgICAgICAoMSwgNCkgKDEsIDUpCiAgICBPUCAgICAgICAgICctJyAgICAgICAgICAgKDEsIDYpICgxLCA3KQogICAgTkFNRSAgICAgICAneScgICAgICAgICAgICgxLCA4KSAoMSwgOSkKICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgMTApICgxLCAxMSkKICAgIE5VTUJFUiAgICAgJzE1JyAgICAgICAgICAoMSwgMTIpICgxLCAxNCkKICAgIE9QICAgICAgICAgJy0nICAgICAgICAgICAoMSwgMTUpICgxLCAxNikKICAgIE5VTUJFUiAgICAgJzAxJyAgICAgICAgICAoMSwgMTcpICgxLCAxOSkKICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgMjApICgxLCAyMSkKICAgIE5VTUJFUiAgICAgJzB4MTI0JyAgICAgICAoMSwgMjIpICgxLCAyNykKICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgMjgpICgxLCAyOSkKICAgIE5BTUUgICAgICAgJ3onICAgICAgICAgICAoMSwgMzApICgxLCAzMSkKICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgMzIpICgxLCAzMykKICAgIE5BTUUgICAgICAgJ2EnICAgICAgICAgICAoMSwgMzQpICgxLCAzNSkKICAgIE9QICAgICAgICAgJ1snICAgICAgICAgICAoMSwgMzUpICgxLCAzNikKICAgIE5VTUJFUiAgICAgJzUnICAgICAgICAgICAoMSwgMzYpICgxLCAzNykKICAgIE9QICAgICAgICAgJ10nICAgICAgICAgICAoMSwgMzcpICgxLCAzOCkKCk11bHRpcGxpY2F0aXZlCgogICAgPj4+IGR1bXBfdG9rZW5zKCJ4ID0gMS8vMSoxLzUqMTIlMHgxMiIpCiAgICBOQU1FICAgICAgICd4JyAgICAgICAgICAgKDEsIDApICgxLCAxKQogICAgT1AgICAgICAgICAnPScgICAgICAgICAgICgxLCAyKSAoMSwgMykKICAgIE5VTUJFUiAgICAgJzEnICAgICAgICAgICAoMSwgNCkgKDEsIDUpCiAgICBPUCAgICAgICAgICcvLycgICAgICAgICAgKDEsIDUpICgxLCA3KQogICAgTlVNQkVSICAgICAnMScgICAgICAgICAgICgxLCA3KSAoMSwgOCkKICAgIE9QICAgICAgICAgJyonICAgICAgICAgICAoMSwgOCkgKDEsIDkpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDkpICgxLCAxMCkKICAgIE9QICAgICAgICAgJy8nICAgICAgICAgICAoMSwgMTApICgxLCAxMSkKICAgIE5VTUJFUiAgICAgJzUnICAgICAgICAgICAoMSwgMTEpICgxLCAxMikKICAgIE9QICAgICAgICAgJyonICAgICAgICAgICAoMSwgMTIpICgxLCAxMykKICAgIE5VTUJFUiAgICAgJzEyJyAgICAgICAgICAoMSwgMTMpICgxLCAxNSkKICAgIE9QICAgICAgICAgJyUnICAgICAgICAgICAoMSwgMTUpICgxLCAxNikKICAgIE5VTUJFUiAgICAgJzB4MTInICAgICAgICAoMSwgMTYpICgxLCAyMCkKClVuYXJ5CgogICAgPj4+IGR1bXBfdG9rZW5zKCJ+MSBeIDEgJiAxIHwxIF4gLTEiKQogICAgT1AgICAgICAgICAnficgICAgICAgICAgICgxLCAwKSAoMSwgMSkKICAgIE5VTUJFUiAgICAgJzEnICAgICAgICAgICAoMSwgMSkgKDEsIDIpCiAgICBPUCAgICAgICAgICdeJyAgICAgICAgICAgKDEsIDMpICgxLCA0KQogICAgTlVNQkVSICAgICAnMScgICAgICAgICAgICgxLCA1KSAoMSwgNikKICAgIE9QICAgICAgICAgJyYnICAgICAgICAgICAoMSwgNykgKDEsIDgpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDkpICgxLCAxMCkKICAgIE9QICAgICAgICAgJ3wnICAgICAgICAgICAoMSwgMTEpICgxLCAxMikKICAgIE5VTUJFUiAgICAgJzEnICAgICAgICAgICAoMSwgMTIpICgxLCAxMykKICAgIE9QICAgICAgICAgJ14nICAgICAgICAgICAoMSwgMTQpICgxLCAxNSkKICAgIE9QICAgICAgICAgJy0nICAgICAgICAgICAoMSwgMTYpICgxLCAxNykKICAgIE5VTUJFUiAgICAgJzEnICAgICAgICAgICAoMSwgMTcpICgxLCAxOCkKICAgID4+PiBkdW1wX3Rva2VucygiLTEqMS8xKzEqMS8vMSAtIC0tLTEqKjEiKQogICAgT1AgICAgICAgICAnLScgICAgICAgICAgICgxLCAwKSAoMSwgMSkKICAgIE5VTUJFUiAgICAgJzEnICAgICAgICAgICAoMSwgMSkgKDEsIDIpCiAgICBPUCAgICAgICAgICcqJyAgICAgICAgICAgKDEsIDIpICgxLCAzKQogICAgTlVNQkVSICAgICAnMScgICAgICAgICAgICgxLCAzKSAoMSwgNCkKICAgIE9QICAgICAgICAgJy8nICAgICAgICAgICAoMSwgNCkgKDEsIDUpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDUpICgxLCA2KQogICAgT1AgICAgICAgICAnKycgICAgICAgICAgICgxLCA2KSAoMSwgNykKICAgIE5VTUJFUiAgICAgJzEnICAgICAgICAgICAoMSwgNykgKDEsIDgpCiAgICBPUCAgICAgICAgICcqJyAgICAgICAgICAgKDEsIDgpICgxLCA5KQogICAgTlVNQkVSICAgICAnMScgICAgICAgICAgICgxLCA5KSAoMSwgMTApCiAgICBPUCAgICAgICAgICcvLycgICAgICAgICAgKDEsIDEwKSAoMSwgMTIpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDEyKSAoMSwgMTMpCiAgICBPUCAgICAgICAgICctJyAgICAgICAgICAgKDEsIDE0KSAoMSwgMTUpCiAgICBPUCAgICAgICAgICctJyAgICAgICAgICAgKDEsIDE2KSAoMSwgMTcpCiAgICBPUCAgICAgICAgICctJyAgICAgICAgICAgKDEsIDE3KSAoMSwgMTgpCiAgICBPUCAgICAgICAgICctJyAgICAgICAgICAgKDEsIDE4KSAoMSwgMTkpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDE5KSAoMSwgMjApCiAgICBPUCAgICAgICAgICcqKicgICAgICAgICAgKDEsIDIwKSAoMSwgMjIpCiAgICBOVU1CRVIgICAgICcxJyAgICAgICAgICAgKDEsIDIyKSAoMSwgMjMpCgpTZWxlY3RvcgoKICAgID4+PiBkdW1wX3Rva2VucygiaW1wb3J0IHN5cywgdGltZVxueCA9IHN5cy5tb2R1bGVzWyd0aW1lJ10udGltZSgpIikKICAgIE5BTUUgICAgICAgJ2ltcG9ydCcgICAgICAoMSwgMCkgKDEsIDYpCiAgICBOQU1FICAgICAgICdzeXMnICAgICAgICAgKDEsIDcpICgxLCAxMCkKICAgIE9QICAgICAgICAgJywnICAgICAgICAgICAoMSwgMTApICgxLCAxMSkKICAgIE5BTUUgICAgICAgJ3RpbWUnICAgICAgICAoMSwgMTIpICgxLCAxNikKICAgIE5FV0xJTkUgICAgJ1xuJyAgICAgICAgICAoMSwgMTYpICgxLCAxNykKICAgIE5BTUUgICAgICAgJ3gnICAgICAgICAgICAoMiwgMCkgKDIsIDEpCiAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDIsIDIpICgyLCAzKQogICAgTkFNRSAgICAgICAnc3lzJyAgICAgICAgICgyLCA0KSAoMiwgNykKICAgIE9QICAgICAgICAgJy4nICAgICAgICAgICAoMiwgNykgKDIsIDgpCiAgICBOQU1FICAgICAgICdtb2R1bGVzJyAgICAgKDIsIDgpICgyLCAxNSkKICAgIE9QICAgICAgICAgJ1snICAgICAgICAgICAoMiwgMTUpICgyLCAxNikKICAgIFNUUklORyAgICAgIid0aW1lJyIgICAgICAoMiwgMTYpICgyLCAyMikKICAgIE9QICAgICAgICAgJ10nICAgICAgICAgICAoMiwgMjIpICgyLCAyMykKICAgIE9QICAgICAgICAgJy4nICAgICAgICAgICAoMiwgMjMpICgyLCAyNCkKICAgIE5BTUUgICAgICAgJ3RpbWUnICAgICAgICAoMiwgMjQpICgyLCAyOCkKICAgIE9QICAgICAgICAgJygnICAgICAgICAgICAoMiwgMjgpICgyLCAyOSkKICAgIE9QICAgICAgICAgJyknICAgICAgICAgICAoMiwgMjkpICgyLCAzMCkKCk1ldGhvZHMKCiAgICA+Pj4gZHVtcF90b2tlbnMoIkBzdGF0aWNtZXRob2RcbmRlZiBmb28oeCx5KTogcGFzcyIpCiAgICBPUCAgICAgICAgICdAJyAgICAgICAgICAgKDEsIDApICgxLCAxKQogICAgTkFNRSAgICAgICAnc3RhdGljbWV0aG9kICgxLCAxKSAoMSwgMTMpCiAgICBORVdMSU5FICAgICdcbicgICAgICAgICAgKDEsIDEzKSAoMSwgMTQpCiAgICBOQU1FICAgICAgICdkZWYnICAgICAgICAgKDIsIDApICgyLCAzKQogICAgTkFNRSAgICAgICAnZm9vJyAgICAgICAgICgyLCA0KSAoMiwgNykKICAgIE9QICAgICAgICAgJygnICAgICAgICAgICAoMiwgNykgKDIsIDgpCiAgICBOQU1FICAgICAgICd4JyAgICAgICAgICAgKDIsIDgpICgyLCA5KQogICAgT1AgICAgICAgICAnLCcgICAgICAgICAgICgyLCA5KSAoMiwgMTApCiAgICBOQU1FICAgICAgICd5JyAgICAgICAgICAgKDIsIDEwKSAoMiwgMTEpCiAgICBPUCAgICAgICAgICcpJyAgICAgICAgICAgKDIsIDExKSAoMiwgMTIpCiAgICBPUCAgICAgICAgICc6JyAgICAgICAgICAgKDIsIDEyKSAoMiwgMTMpCiAgICBOQU1FICAgICAgICdwYXNzJyAgICAgICAgKDIsIDE0KSAoMiwgMTgpCgpCYWNrc2xhc2ggbWVhbnMgbGluZSBjb250aW51YXRpb24sIGV4Y2VwdCBmb3IgY29tbWVudHMKCiAgICA+Pj4gcm91bmR0cmlwKCJ4PTErXFxuIgogICAgLi4uICAgICAgICAgICAiMVxuIgogICAgLi4uICAgICAgICAgICAiIyBUaGlzIGlzIGEgY29tbWVudFxcbiIKICAgIC4uLiAgICAgICAgICAgIiMgVGhpcyBhbHNvXG4iKQogICAgVHJ1ZQogICAgPj4+IHJvdW5kdHJpcCgiIyBDb21tZW50IFxcbnggPSAwIikKICAgIFRydWUKClR3byBzdHJpbmcgbGl0ZXJhbHMgb24gdGhlIHNhbWUgbGluZQoKICAgID4+PiByb3VuZHRyaXAoIicnICcnIikKICAgIFRydWUKClRlc3Qgcm91bmR0cmlwIG9uIHJhbmRvbSBweXRob24gbW9kdWxlcy4KcGFzcyB0aGUgJy11Y3B1JyBvcHRpb24gdG8gcHJvY2VzcyB0aGUgZnVsbCBkaXJlY3RvcnkuCgogICAgPj4+CiAgICA+Pj4gdGVtcGRpciA9IG9zLnBhdGguZGlybmFtZShmKSBvciBvcy5jdXJkaXIKICAgID4+PiB0ZXN0ZmlsZXMgPSBnbG9iLmdsb2Iob3MucGF0aC5qb2luKHRlbXBkaXIsICJ0ZXN0Ki5weSIpKQoKICAgID4+PiBpZiBub3QgdGVzdF9zdXBwb3J0LmlzX3Jlc291cmNlX2VuYWJsZWQoImNwdSIpOgogICAgLi4uICAgICB0ZXN0ZmlsZXMgPSByYW5kb20uc2FtcGxlKHRlc3RmaWxlcywgMTApCiAgICAuLi4KICAgID4+PiBmb3IgdGVzdGZpbGUgaW4gdGVzdGZpbGVzOgogICAgLi4uICAgICBpZiBub3Qgcm91bmR0cmlwKG9wZW4odGVzdGZpbGUpKToKICAgIC4uLiAgICAgICAgIHByaW50ICJSb3VuZHRyaXAgZmFpbGVkIGZvciBmaWxlICVzIiAlIHRlc3RmaWxlCiAgICAuLi4gICAgICAgICBicmVhawogICAgLi4uIGVsc2U6IFRydWUKICAgIFRydWUKCkV2aWwgdGFicwogICAgPj4+IGR1bXBfdG9rZW5zKCJkZWYgZigpOlxuXHRpZiB4XG4gICAgICAgIFx0cGFzcyIpCiAgICBOQU1FICAgICAgICdkZWYnICAgICAgICAgKDEsIDApICgxLCAzKQogICAgTkFNRSAgICAgICAnZicgICAgICAgICAgICgxLCA0KSAoMSwgNSkKICAgIE9QICAgICAgICAgJygnICAgICAgICAgICAoMSwgNSkgKDEsIDYpCiAgICBPUCAgICAgICAgICcpJyAgICAgICAgICAgKDEsIDYpICgxLCA3KQogICAgT1AgICAgICAgICAnOicgICAgICAgICAgICgxLCA3KSAoMSwgOCkKICAgIE5FV0xJTkUgICAgJ1xuJyAgICAgICAgICAoMSwgOCkgKDEsIDkpCiAgICBJTkRFTlQgICAgICdcdCcgICAgICAgICAgKDIsIDApICgyLCAxKQogICAgTkFNRSAgICAgICAnaWYnICAgICAgICAgICgyLCAxKSAoMiwgMykKICAgIE5BTUUgICAgICAgJ3gnICAgICAgICAgICAoMiwgNCkgKDIsIDUpCiAgICBORVdMSU5FICAgICdcbicgICAgICAgICAgKDIsIDUpICgyLCA2KQogICAgSU5ERU5UICAgICAnICAgICAgICBcdCcgICgzLCAwKSAoMywgOSkKICAgIE5BTUUgICAgICAgJ3Bhc3MnICAgICAgICAoMywgOSkgKDMsIDEzKQogICAgREVERU5UICAgICAnJyAgICAgICAgICAgICg0LCAwKSAoNCwgMCkKICAgIERFREVOVCAgICAgJycgICAgICAgICAgICAoNCwgMCkgKDQsIDApCgpQYXRob2xvZ2ljYWwgd2hpdGVzcGFjZSAoaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTE2MTUyKQogICAgPj4+IGR1bXBfdG9rZW5zKCJAICAgICAgICAgICIpCiAgICBPUCAgICAgICAgICdAJyAgICAgICAgICAgKDEsIDApICgxLCAxKQpp/////ygBAAAAdAwAAAB0ZXN0X3N1cHBvcnQoCAAAAHQKAAAAdW50b2tlbml6ZXQPAAAAZ2VuZXJhdGVfdG9rZW5zdAYAAABOVU1CRVJ0BAAAAE5BTUV0AgAAAE9QdAYAAABTVFJJTkd0CQAAAEVORE1BUktFUnQIAAAAdG9rX25hbWUoAQAAAHQIAAAAU3RyaW5nSU9OYwEAAAAHAAAABgAAAEMAAABzXwAAAHQAAHwAAIMBAH0BAHhMAHQB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dGVzdF90b2tlbml6ZSgFAAAAdAQAAAB0ZXN0UiIAAABSAAAAAHQLAAAAcnVuX2RvY3Rlc3R0BAAAAFRydWUoAQAAAFIiAAAAKAAAAAAoAAAAAHNaAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvdGVzdC90ZXN0X3Rva2VuaXplLnB5dAkAAAB0ZXN0X21haW5sAgAAcwQAAAAAARABdAgAAABfX21haW5fXygTAAAAUiEAAABSIwAAAFIAAAAAdAgAAAB0b2tlbml6ZVIBAAAAUgIAAABSAwAAAFIEAAAAUgUAAABSBgAAAFIHAAAAUggAAABSCQAAAHQCAAAAb3NSEwAAAFIgAAAAdAgAAABfX3Rlc3RfX1ImAAAAdAgAAABfX25hbWVfXygAAAAAKAAAAAAoAAAAAHNaAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvdGVzdC90ZXN0X3Rva2VuaXplLnB5dAgAAAA8bW9kdWxlPi0CAABzFAAAAAYDEAE6AhABDAIJDQkmFAMJBAwB