gASVAgABAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UKGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlIwKYXR0cmlidXRlc5R9lCiMA2lkc5RdlIw1bW9kdWxlLWV0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnSUYYwHY2xhc3Nlc5RdlIwFbmFtZXOUXZSMCGR1cG5hbWVzlF2UjAhiYWNrcmVmc5RdlIwFaXNtb2SUiHWMB3RhZ25hbWWUaAmMBnNvdXJjZZSMdi9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYnl6YW50aXVtL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3SUjARsaW5llEsBjAZwYXJlbnSUaAOMCV9kb2N1bWVudJRoA3VijA9zcGhpbnguYWRkbm9kZXOUjAVpbmRleJSTlCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwHZW50cmllc5RdlCiMBHBhaXKUjDZtb2R1bGU7IGV0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnSUaBJoBk50lGF1aBxoI2gdaB5oH0sCaCBoA2ghaAN1YmgAjAdzZWN0aW9ulJOUKYGUfZQoaAVoBmgHXZQoaACMBXRpdGxllJOUKYGUfZQoaAWMOUV0aGVyZXVtIFZpcnR1YWwgTWFjaGluZSAoRVZNKSBFbnZpcm9ubWVudGFsIEluc3RydWN0aW9uc5RoB12UaACMBFRleHSUk5SMOUV0aGVyZXVtIFZpcnR1YWwgTWFjaGluZSAoRVZNKSBFbnZpcm9ubWVudGFsIEluc3RydWN0aW9uc5SFlIGUfZQoaAVoBmggaDpoIWgDaB2MXC9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvLnRveC9kb2NzL3N0YWdlMF9vdXQvYXV0b2FwaS8gPT4gZG9jL2RpZmZzlGgfSwB1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ZSBzdGFjay4KCmNhbGxlcgoKUHVzaGVzIHRoZSBhZGRyZXNzIG9mIHRoZSBjYWxsZXIgb250byB0aGUgc3RhY2suCgpjYWxsdmFsdWUKClB1c2ggdGhlIHZhbHVlIChpbiB3ZWkpIHNlbnQgd2l0aCB0aGUgY2FsbCBvbnRvIHRoZSBzdGFjay4KCmNhbGxkYXRhbG9hZAoKUHVzaCBhIHdvcmQgKDMyIGJ5dGVzKSBvZiB0aGUgaW5wdXQgZGF0YSBiZWxvbmdpbmcgdG8gdGhlIGN1cnJlbnQKCmNhbGxkYXRhc2l6ZQoKUHVzaCB0aGUgc2l6ZSBvZiBpbnB1dCBkYXRhIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgb250byB0aGUgc3RhY2suCgpjYWxsZGF0YWNvcHkKCkNvcHkgYSBwb3J0aW9uIG9mIHRoZSBpbnB1dCBkYXRhIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgdG8gbWVtb3J5LgoKY29kZXNpemUKClB1c2ggdGhlIHNpemUgb2YgY29kZSBydW5uaW5nIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgb250byB0aGUgc3RhY2suCgpjb2RlY29weQoKQ29weSBhIHBvcnRpb24gb2YgdGhlIGNvZGUgaW4gY3VycmVudCBlbnZpcm9ubWVudCB0byBtZW1vcnkuCgpnYXNwcmljZQoKUHVzaCB0aGUgZ2FzIHByaWNlIHVzZWQgaW4gY3VycmVudCBlbnZpcm9ubWVudCBvbnRvIHRoZSBzdGFjay4KCmV4dGNvZGVzaXplCgpQdXNoIHRoZSBjb2RlIHNpemUgb2YgYSBnaXZlbiBhY2NvdW50IG9udG8gdGhlIHN0YWNrLgoKZXh0Y29kZWNvcHkKCkNvcHkgYSBwb3J0aW9uIG9mIGFuIGFjY291bnQncyBjb2RlIHRvIG1lbW9yeS4KCnJldHVybmRhdGFzaXplCgpQdXNoZXMgdGhlIHNpemUgb2YgdGhlIHJldHVybiBkYXRhIGJ1ZmZlciBvbnRvIHRoZSBzdGFjay4KCnJldHVybmRhdGFjb3B5CgpDb3BpZXMgZGF0YSBmcm9tIHRoZSByZXR1cm4gZGF0YSBidWZmZXIgY29kZSB0byBtZW1vcnmUaAddlGgAjAV0YWJsZZST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ZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuYmFsYW5jZZSMCHJlZnRpdGxllIw2ZXRoZXJldW0uYnl6YW50aXVtLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5iYWxhbmNllHVoHGhtaB1OaB9OaCBqIgQAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIcvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2J5emFudGl1bS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ1OjxhdXRvc3VtbWFyeT6UaB9LAWggah8EAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcasgDAABoHU5oH05oIGocBAAAdWJqyQMAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYw3UHVzaGVzIHRoZSBiYWxhbmNlIG9mIHRoZSBnaXZlbiBhY2NvdW50IG9udG8gdGhlIHN0YWNrLpRoB12UaD+MN1B1c2hlcyB0aGUgYmFsYW5jZSBvZiB0aGUgZ2l2ZW4gYWNjb3VudCBvbnRvIHRoZSBzdGFjay6UhZSBlH2UKGgFaAZoIGpTBAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mhy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYnl6YW50aXVtL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDU6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqUAQAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqyAMAAGgdTmgfTmggahwEAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcasMDAABoHWhEaB9LAGggasADAABoIWgDdWJqxAMAACmBlH2UKGgFaAZoB12UKGrJAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjEU6b2JqOmBvcmlnaW4gPGV0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQub3JpZ2luPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRq1QMAACmBlH2UKGgFanYEAABoB12UaD+MBm9yaWdpbpSFlIGUfZQoaAVoBmggansEAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGrgAwAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcatQDAABoHU5oH05oIGp4BAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjDVldGhlcmV1bS5ieXphbnRpdW0udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50Lm9yaWdpbpSMCHJlZnRpdGxllIw1ZXRoZXJldW0uYnl6YW50aXVtLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5vcmlnaW6UdWgcaG1oHU5oH05oIGp0BAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mhy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYnl6YW50aXVtL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDU6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqcQQAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqyAMAAGgdTmgfTmggam4EAAB1YmrJAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjENQdXNoZXMgdGhlIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIHRyYW5zYWN0aW9uIHNlbmRlciB0byB0aGUgc3RhY2sulGgHXZRoP4xDUHVzaGVzIHRoZSBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCB0cmFuc2FjdGlvbiBzZW5kZXIgdG8gdGhlIHN0YWNrLpSFlIGUfZQoaAVoBmggaqUEAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyHL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGqiBAAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrIAwAAaB1OaB9OaCBqbgQAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqwwMAAGgdaERoH0sAaCBqwAMAAGghaAN1YmrEAwAAKYGUfZQoaAVoBmgHXZQoaskDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMRTpvYmo6YGNhbGxlciA8ZXRoZXJldW0uYnl6YW50aXVtLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jYWxsZXI+YJRoB12UaG4pgZR9lChoBWgGaAddlGrVAwAAKYGUfZQoaAVqyAQAAGgHXZRoP4wGY2FsbGVylIWUgZR9lChoBWgGaCBqzQQAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoauADAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxq1AMAAGgdTmgfTmggasoEAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMNWV0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuY2FsbGVylIwIcmVmdGl0bGWUjDVldGhlcmV1bS5ieXphbnRpdW0udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmNhbGxlcpR1aBxobWgdTmgfTmggasYEAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyHL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGrDBAAAdWJhaA59lChoEF2UaBNdlGgV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YXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGqYBQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrIAwAAaB1OaB9OaCBqZAUAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqwwMAAGgdaERoH0sAaCBqwAMAAGghaAN1YmrEAwAAKYGUfZQoaAVoBmgHXZQoaskDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMUTpvYmo6YGNhbGxkYXRhc2l6ZSA8ZXRoZXJldW0uYnl6YW50aXVtLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jYWxsZGF0YXNpemU+YJRoB12UaG4pgZR9lChoBWgGaAddlGrVAwAAKYGUfZQoaAVqvgUAAGgHXZRoP4wMY2FsbGRhdGFzaXpllIWUgZR9lChoBWgGaCBqwwUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoauADAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxq1AMAAGgdTmgfTmggasAFAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMO2V0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuY2FsbGRhdGFzaXpllIwIcmVmdGl0bGWUjDtldGhlcmV1bS5ieXphbnRpdW0udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmNhbGxkYXRhc2l6ZZR1aBxobWgdTmgfTmggarwFAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyHL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGq5BQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrIAwAAaB1OaB9OaCBqtgUAAHViaskDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMQlB1c2ggdGhlIHNpemUgb2YgaW5wdXQgZGF0YSBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLpRoB12UaD+MQlB1c2ggdGhlIHNpemUgb2YgaW5wdXQgZGF0YSBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLpSFlIGUfZQoaAVoBmggau0FAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyHL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGrqBQAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrIAwAAaB1OaB9OaCBqtgUAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqwwMAAGgdaERoH0sAaCBqwAMAAGghaAN1YmrEAwAAKYGUfZQoaAVoBmgHXZQoaskDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMUTpvYmo6YGNhbGxkYXRhY29weSA8ZXRoZXJldW0uYnl6YW50aXVtLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jYWxsZGF0YWNvcHk+YJRoB12UaG4pgZR9lChoBWgGaAddlGrVAwAAKYGUfZQoaAVqEAYAAGgHXZRoP4wMY2FsbGRhdGFjb3B5lIWUgZR9lChoBWgGaCBqFQYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoauADAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxq1AMAAGgdTmgfTmggahIGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMO2V0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuY2FsbGRhdGFjb3B5lIwIcmVmdGl0bGWUjDtldGhlcmV1bS5ieXphbnRpdW0udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmNhbGxkYXRhY29weZR1aBxobWgdTmgfTmggag4GAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyHL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGoLBgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrIAwAAaB1OaB9OaCBqCAYAAHViaskDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMQkNvcHkgYSBwb3J0aW9uIG9mIHRoZSBpbnB1dCBkYXRhIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgdG8gbWVtb3J5LpRoB12UaD+MQkNvcHkgYSBwb3J0aW9uIG9mIHRoZSBpbnB1dCBkYXRhIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgdG8gbWVtb3J5LpSFlIGUfZQoaAVoBmggaj8GAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyHL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGo8BgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrIAwAAaB1OaB9OaCBqCAYAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqwwMAAGgdaERoH0sAaCBqwAMAAGghaAN1YmrEAwAAKYGUfZQoaAVoBmgHXZQoaskDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMSTpvYmo6YGNvZGVzaXplIDxldGhlcmV1bS5ieXphbnRpdW0udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmNvZGVzaXplPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRq1QMAACmBlH2UKGgFamIGAABoB12UaD+MCGNvZGVzaXpllIWUgZR9lChoBWgGaCBqZwYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoauADAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxq1AMAAGgdTmgfTmggamQGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMN2V0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuY29kZXNpemWUjAhyZWZ0aXRsZZSMN2V0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuY29kZXNpemWUdWgcaG1oHU5oH05oIGpgBgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mhy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYnl6YW50aXVtL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDU6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqXQYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqyAMAAGgdTmgfTmggaloGAAB1YmrJAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjERQdXNoIHRoZSBzaXplIG9mIGNvZGUgcnVubmluZyBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLpRoB12UaD+MRFB1c2ggdGhlIHNpemUgb2YgY29kZSBydW5uaW5nIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgb250byB0aGUgc3RhY2sulIWUgZR9lChoBWgGaCBqkQYAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIcvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2J5emFudGl1bS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ1OjxhdXRvc3VtbWFyeT6UaB9LAWggao4GAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcasgDAABoHU5oH05oIGpaBgAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrDAwAAaB1oRGgfSwBoIGrAAwAAaCFoA3ViasQDAAApgZR9lChoBWgGaAddlChqyQMAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYxJOm9iajpgY29kZWNvcHkgPGV0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuY29kZWNvcHk+YJRoB12UaG4pgZR9lChoBWgGaAddlGrVAwAAKYGUfZQoaAVqtAYAAGgHXZRoP4wIY29kZWNvcHmUhZSBlH2UKGgFaAZoIGq5BgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChq4AMAAIwCcHmUjAZweS1vYmqUZWgVXZRoF12UaBldlHVoHGrUAwAAaB1OaB9OaCBqtgYAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIw3ZXRoZXJldW0uYnl6YW50aXVtLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jb2RlY29weZSMCHJlZnRpdGxllIw3ZXRoZXJldW0uYnl6YW50aXVtLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5jb2RlY29weZR1aBxobWgdTmgfTmggarIGAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyHL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGqvBgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrIAwAAaB1OaB9OaCBqrAYAAHViaskDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMPENvcHkgYSBwb3J0aW9uIG9mIHRoZSBjb2RlIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgdG8gbWVtb3J5LpRoB12UaD+MPENvcHkgYSBwb3J0aW9uIG9mIHRoZSBjb2RlIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgdG8gbWVtb3J5LpSFlIGUfZQoaAVoBmggauMGAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyHL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGrgBgAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrIAwAAaB1OaB9OaCBqrAYAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqwwMAAGgdaERoH0sAaCBqwAMAAGghaAN1YmrEAwAAKYGUfZQoaAVoBmgHXZQoaskDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMSTpvYmo6YGdhc3ByaWNlIDxldGhlcmV1bS5ieXphbnRpdW0udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50Lmdhc3ByaWNlPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRq1QMAACmBlH2UKGgFagYHAABoB12UaD+MCGdhc3ByaWNllIWUgZR9lChoBWgGaCBqCwcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoauADAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxq1AMAAGgdTmgfTmggaggHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMN2V0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuZ2FzcHJpY2WUjAhyZWZ0aXRsZZSMN2V0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuZ2FzcHJpY2WUdWgcaG1oHU5oH05oIGoEBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mhy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYnl6YW50aXVtL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDU6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqAQcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqyAMAAGgdTmgfTmggav4GAAB1YmrJAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjD5QdXNoIHRoZSBnYXMgcHJpY2UgdXNlZCBpbiBjdXJyZW50IGVudmlyb25tZW50IG9udG8gdGhlIHN0YWNrLpRoB12UaD+MPlB1c2ggdGhlIGdhcyBwcmljZSB1c2VkIGluIGN1cnJlbnQgZW52aXJvbm1lbnQgb250byB0aGUgc3RhY2sulIWUgZR9lChoBWgGaCBqNQcAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIcvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2J5emFudGl1bS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ1OjxhdXRvc3VtbWFyeT6UaB9LAWggajIHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcasgDAABoHU5oH05oIGr+BgAAdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrDAwAAaB1oRGgfSwBoIGrAAwAAaCFoA3ViasQDAAApgZR9lChoBWgGaAddlChqyQMAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYxPOm9iajpgZXh0Y29kZXNpemUgPGV0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQuZXh0Y29kZXNpemU+YJRoB12UaG4pgZR9lChoBWgGaAddlGrVAwAAKYGUfZQoaAVqWAcAAGgHXZRoP4wLZXh0Y29kZXNpemWUhZSBlH2UKGgFaAZoIGpdBwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlChq4AMAAIwCcHmUjAZweS1vYmqUZWgVXZRoF12UaBldlHVoHGrUAwAAaB1OaB9OaCBqWgcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMCGludGVybmFslIiMBXJlZmlklIw6ZXRoZXJldW0uYnl6YW50aXVtLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5leHRjb2Rlc2l6ZZSMCHJlZnRpdGxllIw6ZXRoZXJldW0uYnl6YW50aXVtLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5leHRjb2Rlc2l6ZZR1aBxobWgdTmgfTmggalYHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyHL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGpTBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrIAwAAaB1OaB9OaCBqUAcAAHViaskDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMNVB1c2ggdGhlIGNvZGUgc2l6ZSBvZiBhIGdpdmVuIGFjY291bnQgb250byB0aGUgc3RhY2sulGgHXZRoP4w1UHVzaCB0aGUgY29kZSBzaXplIG9mIGEgZ2l2ZW4gYWNjb3VudCBvbnRvIHRoZSBzdGFjay6UhZSBlH2UKGgFaAZoIGqHBwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mhy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYnl6YW50aXVtL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDU6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqhAcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqyAMAAGgdTmgfTmggalAHAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcasMDAABoHWhEaB9LAGggasADAABoIWgDdWJqxAMAACmBlH2UKGgFaAZoB12UKGrJAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjE86b2JqOmBleHRjb2RlY29weSA8ZXRoZXJldW0uYnl6YW50aXVtLnZtLmluc3RydWN0aW9ucy5lbnZpcm9ubWVudC5leHRjb2RlY29weT5glGgHXZRobimBlH2UKGgFaAZoB12UatUDAAApgZR9lChoBWqqBwAAaAddlGg/jAtleHRjb2RlY29weZSFlIGUfZQoaAVoBmggaq8HAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UKGrgAwAAjAJweZSMBnB5LW9iapRlaBVdlGgXXZRoGV2UdWgcatQDAABoHU5oH05oIGqsBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwIaW50ZXJuYWyUiIwFcmVmaWSUjDpldGhlcmV1bS5ieXphbnRpdW0udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmV4dGNvZGVjb3B5lIwIcmVmdGl0bGWUjDpldGhlcmV1bS5ieXphbnRpdW0udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LmV4dGNvZGVjb3B5lHVoHGhtaB1OaB9OaCBqqAcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxoaGgdjIcvaG9tZS9ydW5uZXIvd29yay9leGVjdXRpb24tc3BlY3MvZXhlY3V0aW9uLXNwZWNzL2RvYy9hdXRvYXBpL2V0aGVyZXVtL2J5emFudGl1bS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQvaW5kZXgucnN0OjQ1OjxhdXRvc3VtbWFyeT6UaB9LAWggaqUHAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcasgDAABoHU5oH05oIGqiBwAAdWJqyQMAACmBlH2UKGgFaAZoB12UaGkpgZR9lChoBYwuQ29weSBhIHBvcnRpb24gb2YgYW4gYWNjb3VudCdzIGNvZGUgdG8gbWVtb3J5LpRoB12UaD+MMENvcHkgYSBwb3J0aW9uIG9mIGFuIGFjY291bnTigJlzIGNvZGUgdG8gbWVtb3J5LpSFlIGUfZQoaAVoBmggatkHAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaGhoHYyHL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9kb2MvYXV0b2FwaS9ldGhlcmV1bS9ieXphbnRpdW0vdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50L2luZGV4LnJzdDo0NTo8YXV0b3N1bW1hcnk+lGgfSwFoIGrWBwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGrIAwAAaB1OaB9OaCBqogcAAHViZWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqwwMAAGgdaERoH0sAaCBqwAMAAGghaAN1YmrEAwAAKYGUfZQoaAVoBmgHXZQoaskDAAApgZR9lChoBWgGaAddlGhpKYGUfZQoaAWMVTpvYmo6YHJldHVybmRhdGFzaXplIDxldGhlcmV1bS5ieXphbnRpdW0udm0uaW5zdHJ1Y3Rpb25zLmVudmlyb25tZW50LnJldHVybmRhdGFzaXplPmCUaAddlGhuKYGUfZQoaAVoBmgHXZRq1QMAACmBlH2UKGgFavwHAABoB12UaD+MDnJldHVybmRhdGFzaXpllIWUgZR9lChoBWgGaCBqAQgAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZQoauADAACMAnB5lIwGcHktb2JqlGVoFV2UaBddlGgZXZR1aBxq1AMAAGgdTmgfTmggav4HAAB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UjAhpbnRlcm5hbJSIjAVyZWZpZJSMPWV0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQucmV0dXJuZGF0YXNpemWUjAhyZWZ0aXRsZZSMPWV0aGVyZXVtLmJ5emFudGl1bS52bS5pbnN0cnVjdGlvbnMuZW52aXJvbm1lbnQucmV0dXJuZGF0YXNpemWUdWgcaG1oHU5oH05oIGr6BwAAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mhy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYnl6YW50aXVtL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDU6PGF1dG9zdW1tYXJ5PpRoH0sBaCBq9wcAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqyAMAAGgdTmgfTmggavQHAAB1YmrJAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjDlQdXNoZXMgdGhlIHNpemUgb2YgdGhlIHJldHVybiBkYXRhIGJ1ZmZlciBvbnRvIHRoZSBzdGFjay6UaAddlGg/jDlQdXNoZXMgdGhlIHNpemUgb2YgdGhlIHJldHVybiBkYXRhIGJ1ZmZlciBvbnRvIHRoZSBzdGFjay6UhZSBlH2UKGgFaAZoIGorCAAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlHVoHGhoaB2Mhy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3MvZG9jL2F1dG9hcGkvZXRoZXJldW0vYnl6YW50aXVtL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5yc3Q6NDU6PGF1dG9zdW1tYXJ5PpRoH0sBaCBqKAgAAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZR1aBxqyAMAAGgdTmgfTmggavQHAAB1YmVoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcasMDAABoHWhEaB9LAGggasADAABoIWgDdWJqxAMAACmBlH2UKGgFaAZoB12UKGrJAwAAKYGUfZQoaAVoBmgHXZRoaSmBlH2UKGgFjFU6b2JqOmByZXR1cm5kYXRhY29weSA8ZXRoZXJldW0uYnl6YW50aXVt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IG1lbW9yeV9zdGFydF9pbmRleCA9IHBvcChldm0uc3RhY2spCiAgICBkYXRhX3N0YXJ0X2luZGV4ID0gcG9wKGV2bS5zdGFjaykKICAgIHNpemUgPSBwb3AoZXZtLnN0YWNrKQoKICAgICMgR0FTCiAgICB3b3JkcyA9IGNlaWwzMihVaW50KHNpemUpKSAvLyAzMgogICAgY29weV9nYXNfY29zdCA9IEdBU19DT1BZICogd29yZHMKICAgIGV4dGVuZF9tZW1vcnkgPSBjYWxjdWxhdGVfZ2FzX2V4dGVuZF9tZW1vcnkoCiAgICAgICAgZXZtLm1lbW9yeSwgWyhtZW1vcnlfc3RhcnRfaW5kZXgsIHNpemUpXQogICAgKQogICAgY2hhcmdlX2dhcyhldm0sIEdBU19WRVJZX0xPVyArIGNvcHlfZ2FzX2Nvc3QgKyBleHRlbmRfbWVtb3J5LmNvc3QpCgogICAgIyBPUEVSQVRJT04KICAgIGV2bS5tZW1vcnkgKz0gYiJceDAwIiAqIGV4dGVuZF9tZW1vcnkuZXhwYW5kX2J5CiAgICB2YWx1ZSA9IGJ1ZmZlcl9yZWFkKGV2bS5tZXNzYWdlLmRhdGEsIGRhdGFfc3RhcnRfaW5kZXgsIHNpemUpCiAgICBtZW1vcnlfd3JpdGUoZXZtLm1lbW9yeSwgbWVtb3J5X3N0YXJ0X2luZGV4LCB2YWx1ZSkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlGgHXZRoP1iCAgAAZGVmIGNhbGxkYXRhY29weShldm06IEV2bSkgLT4gTm9uZToKICAgICMgU1RBQ0sKICAgIG1lbW9yeV9zdGFydF9pbmRleCA9IHBvcChldm0uc3RhY2spCiAgICBkYXRhX3N0YXJ0X2luZGV4ID0gcG9wKGV2bS5zdGFjaykKICAgIHNpemUgPSBwb3AoZXZtLnN0YWNrKQoKICAgICMgR0FTCiAgICB3b3JkcyA9IGNlaWwzMihVaW50KHNpemUpKSAvLyAzMgogICAgY29weV9nYXNfY29zdCA9IEdBU19DT1BZICogd29yZHMKICAgIGV4dGVuZF9tZW1vcnkgPSBjYWxjdWxhdGVfZ2FzX2V4dGVuZF9tZW1vcnkoCiAgICAgICAgZXZt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TlRFUgogICAgZXZtLnBjICs9IDEKlGgHXZRoP1h2AgAAZGVmIGNvZGVjb3B5KGV2bTogRXZtKSAtPiBOb25lOgogICAgIyBTVEFDSwogICAgbWVtb3J5X3N0YXJ0X2luZGV4ID0gcG9wKGV2bS5zdGFjaykKICAgIGNvZGVfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgc2l6ZSA9IHBvcChldm0uc3RhY2spCgogICAgIyBHQVMKICAgIHdvcmRzID0gY2VpbDMyKFVpbnQoc2l6ZSkpIC8vIDMyCiAgICBjb3B5X2dhc19jb3N0ID0gR0FTX0NPUFkgKiB3b3JkcwogICAgZXh0ZW5kX21lbW9yeSA9IGNhbGN1bGF0ZV9nYXNfZXh0ZW5kX21lbW9yeSgKICAgICAgICBldm0ubWVtb3J5LCBbKG1lbW9yeV9zdGFydF9pbmRleCwgc2l6ZSldCiAgICApCiAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX1ZFUllfTE9XICsgY29weV9nYXNfY29zdCArIGV4dGVuZF9tZW1vcnkuY29zdCkKCiAgICAjIE9QRVJBVElPTgogICAgZXZtLm1lbW9yeSArPSBiIlx4MDAiICogZXh0ZW5kX21lbW9yeS5leHBhbmRfYnkKICAgIHZhbHVlID0gYnVmZmVyX3JlYWQoZXZtLmNvZGUsIGNvZGVfc3RhcnRfaW5kZXgsIHNpemUpCiAgICBtZW1vcnlfd3JpdGUoZXZtLm1lbW9yeSwgbWVtb3J5X3N0YXJ0X2luZGV4LCB2YWx1ZSkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlIWUgZR9lChoBWgGaCBqWBIAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMZy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2J5emFudGl1bS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQucHmUjAl4bWw6c3BhY2WUal8DAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OU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aWwzMihVaW50KHNpemUpKSAvLyAzMgogICAgY29weV9nYXNfY29zdCA9IEdBU19DT1BZICogd29yZHMKICAgIGV4dGVuZF9tZW1vcnkgPSBjYWxjdWxhdGVfZ2FzX2V4dGVuZF9tZW1vcnkoCiAgICAgICAgZXZtLm1lbW9yeSwgWyhtZW1vcnlfc3RhcnRfaW5kZXgsIHNpemUpXQogICAgKQogICAgY2hhcmdlX2dhcyhldm0sIEdBU19FWFRFUk5BTCArIGNvcHlfZ2FzX2Nvc3QgKyBleHRlbmRfbWVtb3J5LmNvc3QpCgogICAgIyBPUEVSQVRJT04KICAgIGV2bS5tZW1vcnkgKz0gYiJceDAwIiAqIGV4dGVuZF9tZW1vcnkuZXhwYW5kX2J5CiAgICBjb2RlID0gZ2V0X2FjY291bnQoZXZtLmVudi5zdGF0ZSwgYWRkcmVzcykuY29kZQogICAgdmFsdWUgPSBidWZmZXJfcmVhZChjb2RlLCBjb2RlX3N0YXJ0X2luZGV4LCBzaXplKQogICAgbWVtb3J5X3dyaXRlKGV2bS5tZW1vcnksIG1lbW9yeV9zdGFydF9pbmRleCwgdmFsdWUpCgogICAgIyBQUk9HUkFNIENPVU5URVIKICAgIGV2bS5wYyArPSAxCpRoB12UaD9Y0gIAAGRlZiBleHRjb2RlY29weShldm06IEV2bSkgLT4gTm9uZToKICAgICMgU1RBQ0sKICAgIGFkZHJlc3MgPSB0b19hZGRyZXNzKHBvcChldm0uc3RhY2spKQogICAgbWVtb3J5X3N0YXJ0X2luZGV4ID0gcG9wKGV2bS5zdGFjaykKICAgIGNvZGVfc3RhcnRfaW5kZXggPSBwb3AoZXZtLnN0YWNrKQogICAgc2l6ZSA9IHBvcChldm0uc3RhY2spCgogICAgIyBHQVMKICAgIHdvcmRzID0gY2VpbDMyKFVpbnQoc2l6ZSkpIC8vIDMyCiAgICBjb3B5X2dhc19jb3N0ID0gR0FTX0NPUFkgKiB3b3JkcwogICAgZXh0ZW5kX21lbW9yeSA9IGNhbGN1bGF0ZV9nYXNfZXh0ZW5kX21lbW9yeSgKICAgICAgICBldm0ubWVtb3J5LCBbKG1lbW9yeV9zdGFydF9pbmRleCwgc2l6ZSldCiAgICApCiAgICBjaGFyZ2VfZ2FzKGV2bSwgR0FTX0VYVEVSTkFMICsgY29weV9nYXNfY29zdCArIGV4dGVuZF9tZW1vcnkuY29zdCkKCiAgICAjIE9QRVJBVElPTgogICAgZXZtLm1lbW9yeSArPSBiIlx4MDAiICogZXh0ZW5kX21lbW9yeS5leHBhbmRfYnkKICAgIGNvZGUgPSBnZXRfYWNjb3VudChldm0uZW52LnN0YXRlLCBhZGRyZXNzKS5jb2RlCiAgICB2YWx1ZSA9IGJ1ZmZlcl9yZWFkKGNvZGUsIGNvZGVfc3RhcnRfaW5kZXgsIHNpemUpCiAgICBtZW1vcnlfd3JpdGUoZXZtLm1lbW9yeSwgbWVtb3J5X3N0YXJ0X2luZGV4LCB2YWx1ZSkKCiAgICAjIFBST0dSQU0gQ09VTlRFUgogICAgZXZtLnBjICs9IDEKlIWUgZR9lChoBWgGaCBqEBUAAGghaANoHWhEaB9LAHViYWgOfZQoaBBdlGgTXZRoFV2UaBddlGgZXZSMBnNvdXJjZZSMZy9ob21lL3J1bm5lci93b3JrL2V4ZWN1dGlvbi1zcGVjcy9leGVjdXRpb24tc3BlY3Mvc3JjL2V0aGVyZXVtL2J5emFudGl1bS92bS9pbnN0cnVjdGlvbnMvZW52aXJvbm1lbnQucHmUjAl4bWw6c3BhY2WUal8DAACMBWZvcmNllImMCGxhbmd1YWdllIwGcHl0aG9ulIwOaGlnaGxpZ2h0X2FyZ3OUfZRqKQoAAEsBc4wHbGluZW5vc5SJdWgcahEKAABoHWgeaB9NHwFoIGpGFAAAdWJlaA59lChoEF2UaqQCAABhaBNdlGgVXZSMC2V4dGNvZGVjb3B5lGFoF12UaBldlHVoHGgzaB1oHmgfTRIBaCBqFAkAAGghaAN1Ymg0KYGUfZQoaAVoBmgHXZQoaDkpgZR9lChoBYwOcmV0dXJuZGF0YXNpemWUaAddlGg/jA5yZXR1cm5kYXRhc2l6ZZSFlIGUfZQoaAVoBmggajEVAABoIWgDaB1oRGgfSwB1YmFoDn2UKGgQXZRoE12UaBVdlGgXXZRoGV2UdWgcaDhoHWgeaB9NJAFoIGouFQAAdWJoJCmBlH2UKGgFaAZoB12UaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwHZW50cmllc5RdlHVo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dHlwZZRq2BYAAIwIZGVzY3R5cGWUatgWAACMB25vaW5kZXiUiXVoHGpBCQAAaB1OaB9OaCBqFhYAAHViahIKAAApgZR9lChoBVg9AwAAZGVmIHJldHVybmRhdGFjb3B5KGV2bTogRXZtKSAtPiBOb25lOgogICAgIyBTVEFDSwogICAgbWVtb3J5X3N0YXJ0X2luZGV4ID0gcG9wKGV2bS5zdGFjaykKICAgIHJldHVybl9kYXRhX3N0YXJ0X3Bvc2l0aW9uID0gcG9wKGV2bS5zdGFjaykKICAgIHNpemUgPSBwb3AoZXZtLnN0YWNrKQoKICAgICMgR0FTCiAgICB3b3JkcyA9IGNlaWwzMihVaW50KHNpemUpKSAvLyAzMgogICAgY29weV9nYXNfY29zdCA9IEdBU19SRVRVUk5fREFUQV9DT1BZICogd29yZHMKICAgIGV4dGVuZF9tZW1vcnkgPSBjYWxjdWxhdGVfZ2FzX2V4dGVuZF9tZW1vcnkoCiAgICAgICAgZXZtLm1lbW9yeSwgWyhtZW1vcnlfc3RhcnRfaW5kZXgsIHNpemUpXQogICAgKQogICAgY2hhcmdlX2dhcyhldm0sIEdBU19WRVJZX0xPVyArIGNvcHlfZ2FzX2Nvc3QgKyBleHRlbmRfbWVtb3J5LmNvc3QpCgogICAgIyBPUEVSQVRJT04KICAgIGVuc3VyZSgKICAgICAgICBVaW50KHJldHVybl9kYXRhX3N0YXJ0X3Bvc2l0aW9uKSArIFVpbnQoc2l6ZSkgPD0gbGVuKGV2bS5yZXR1cm5fZGF0YSksCiAgICAgICAgT3V0T2ZCb3VuZHNSZWFkLAogICAgKQoKICAgIGV2bS5tZW1vcnkgKz0gYiJceDAwIiAqIGV4dGVuZF9tZW1vcnkuZXhwYW5kX2J5CiAgICB2YWx1ZSA9IGV2bS5yZXR1cm5fZGF0YVsKICAgICAgICByZXR1cm5fZGF0YV9zdGFydF9wb3NpdGlvbiA6IHJldHVybl9kYXRhX3N0YXJ0X3Bvc2l0aW9uICsgc2l6ZQogICAgXQogICAgbWVtb3J5X3dyaXRlKGV2bS5tZW1vcnksIG1lbW9yeV9zdGFydF9pbmRleCwgdmFsdWUpCgogICAgIyBQUk9HUkFNIENPVU5URVIKICAgIGV2bS5wYyArPSAxCpRoB12UaD9YPQMAAGRlZiByZXR1cm5kYXRhY29weShldm06IEV2bSkgLT4gTm9uZToKICAgICMgU1RBQ0sKICAgIG1lbW9yeV9zdGFydF9pbmRleCA9IHBvcChldm0uc3RhY2spCiAgICByZXR1cm5fZGF0YV9zdGFydF9wb3NpdGlvbiA9IHBvcChldm0uc3RhY2spCiAgICBzaXplID0gcG9wKGV2bS5zdGFjaykKCiAgICAjIEdBUwogICAgd29yZHMgPSBjZWlsMzIoVWludChzaXplKSkgLy8gMzIKICAgIGNvcHlfZ2FzX2Nvc3QgPSBHQVNfUkVUVVJOX0RBVEFfQ09QWSAqIHdvcmRzCiAgICBleHRlbmRfbWVtb3J5ID0gY2FsY3VsYXRlX2dhc19leHRlbmRfbWVtb3J5KAogICAgICAgIGV2bS5tZW1vcnksIFsobWVtb3J5X3N0YXJ0X2luZGV4LCBzaXplKV0KICAgICkKICAgIGNoYXJnZV9nYXMoZXZtLCBHQVNfVkVSWV9MT1cgKyBjb3B5X2dhc19jb3N0ICsgZXh0ZW5kX21lbW9yeS5jb3N0KQoKICAgICMgT1BFUkFUSU9OCiAgICBlbnN1cmUoCiAgICAgICAgVWludChyZXR1cm5fZGF0YV9zdGFydF9wb3NpdGlvbikgKyBVaW50KHNpemUpIDw9IGxlbihldm0ucmV0dXJuX2RhdGEpLAogICAgICAgIE91dE9mQm91bmRzUmVhZCwKICAgICkKCiAgICBldm0ubWVtb3J5ICs9IGIiXHgwMCIgKiBleHRlbmRfbWVtb3J5LmV4cGFuZF9ieQogICAgdmFsdWUgPSBldm0ucmV0dXJuX2RhdGFbCiAgICAgICAgcmV0dXJuX2RhdGFfc3RhcnRfcG9zaXRpb24gOiByZXR1cm5fZGF0YV9zdGFydF9wb3NpdGlvbiArIHNpemUKICAgIF0KICAgIG1lbW9yeV93cml0ZShldm0ubWVtb3J5LCBtZW1vcnlfc3RhcnRfaW5kZXgsIHZhbHVlKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUhZSBlH2UKGgFaAZoIGrgFgAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRo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E12UKGpcFwAAjAhmdW5jdGlvbpRlaBVdlGgXXZRoGV2UjAZkb21haW6UalwXAACMB29ianR5cGWUan4XAACMCGRlc2N0eXBllGp+FwAAjAdub2luZGV4lIl1aBxqQQkAAGgdag8XAABoH05oIGr+FgAAdWJqEgoAACmBlH2UKGgFWJUBAABkZWYgZXh0Y29kZWhhc2goZXZtOiBFdm0pIC0+IE5vbmU6CiAgICAjIFNUQUNLCiAgICBhZGRyZXNzID0gdG9fYWRkcmVzcyhwb3AoZXZtLnN0YWNrKSkKCiAgICAjIEdBUwogICAgY2hhcmdlX2dhcyhldm0sIEdBU19DT0RFX0hBU0gpCgogICAgIyBPUEVSQVRJT04KICAgIGFjY291bnQgPSBnZXRfYWNjb3VudChldm0uZW52LnN0YXRlLCBhZGRyZXNzKQoKICAgIGlmIGFjY291bnQgPT0gRU1QVFlfQUNDT1VOVDoKICAgICAgICBjb2RlaGFzaCA9IFUyNTYoMCkKICAgIGVsc2U6CiAgICAgICAgY29kZWhhc2ggPSBVMjU2LmZyb21fYmVfYnl0ZXMoa2VjY2FrMjU2KGFjY291bnQuY29kZSkpCgogICAgcHVzaChldm0uc3RhY2ssIGNvZGVoYXNoKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUaAddlGg/WJUBAABkZWYgZXh0Y29kZWhhc2goZXZtOiBFdm0pIC0+IE5vbmU6CiAgICAjIFNUQUNLCiAgICBhZGRyZXNzID0gdG9fYWRkcmVzcyhwb3AoZXZtLnN0YWNrKSkKCiAgICAjIEdBUwogICAgY2hhcmdlX2dhcyhldm0sIEdBU19DT0RFX0hBU0gpCgogICAgIyBPUEVSQVRJT04KICAgIGFjY291bnQgPSBnZXRfYWNjb3VudChldm0uZW52LnN0YXRlLCBhZGRyZXNzKQoKICAgIGlmIGFjY291bnQgPT0gRU1QVFlfQUNDT1VOVDoKICAgICAgICBjb2RlaGFzaCA9IFUyNTYoMCkKICAgIGVsc2U6CiAgICAgICAgY29kZWhhc2ggPSBVMjU2LmZyb21fYmVfYnl0ZXMoa2VjY2FrMjU2KGFjY291bnQuY29kZSkpCgogICAgcHVzaChldm0uc3RhY2ssIGNvZGVoYXNoKQoKICAgICMgUFJPR1JBTSBDT1VOVEVSCiAgICBldm0ucGMgKz0gMQqUhZSBlH2UKGgFaAZoIGqGFwAAaCFoA2gdaERoH0sAdWJhaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllIxsL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy9zcmMvZXRoZXJldW0vY29uc3RhbnRpbm9wbGUvdm0vaW5zdHJ1Y3Rpb25zL2Vudmlyb25tZW50LnB5lIwJeG1sOnNwYWNllGpfAwAAjAVmb3JjZZSJjAhsYW5ndWFnZZSMBnB5dGhvbpSMDmhpZ2hsaWdodF9hcmdzlH2UjAtsaW5lbm9zdGFydJRLAXOMB2xpbmVub3OUiXVoHGoRCgAAaB1qDxcAAGgfTVUBaCBq/hYAAHViZWgOfZQoaBBdlGoKAwAAYWgTXZSMDGNoYW5nZS1hZGRlZJRhaBVdlIwLZXh0Y29kZWhhc2iUYWgXXZRoGV2UdWgcaDNoHWoPFwAAaB9NSQFoIGoUCQAAaCFoA3ViZWgOfZQoaBBdlGjtYWgTXZRoFV2UjA5tb2R1bGUgZGV0YWlsc5RhaBddlGgZXZR1aBxoM2gdaB5oH0svaCBoNWghaAN1YmVoDn2UKGgQXZSMN2V0aGVyZXVtLXZpcnR1YWwtbWFjaGluZS1ldm0tZW52aXJvbm1lbnRhbC1pbnN0cnVjdGlvbnOUYWgTXZRoFV2UjDlldGhlcmV1bSB2aXJ0dWFsIG1hY2hpbmUgKGV2bSkgZW52aXJvbm1lbnRhbCBpbnN0cnVjdGlvbnOUYWgXXZRoGV2UdWgcaDNoHWgeaB9LBGggaANoIWgDdWJlaA59lChoEF2UaBNdlGgVXZRoF12UaBldlIwGc291cmNllGhEdWgcaAGMDmN1cnJlbnRfc291cmNllGhEjAxjdXJyZW50X2xpbmWUSwCMCHNldHRpbmdzlIwRZG9jdXRpbHMuZnJvbnRlbmSUjAZWYWx1ZXOUk5QpgZR9lCiMDHJlcG9ydF9sZXZlbJRLAowKaGFsdF9sZXZlbJRLBIwRZXhpdF9zdGF0dXNfbGV2ZWyUSwWMBWRlYnVnlE6MDndhcm5pbmdfc3RyZWFtlE6MCXRyYWNlYmFja5ROjA9vdXRwdXRfZW5jb2RpbmeUjAV1dGYtOJSMHW91dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylIwReG1sY2hhcnJlZnJlcGxhY2WUjA5lcnJvcl9lbmNvZGluZ5SMBXV0Zi04lIwcZXJyb3JfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMEGJhY2tzbGFzaHJlcGxhY2WUjBNyZWNvcmRfZGVwZW5kZW5jaWVzlIwOZG9jdXRpbHMudXRpbHOUjA5EZXBlbmRlbmN5TGlzdJSTlCmBlH2UKIwEbGlzdJRdlIwEZmlsZZROdWKMBmNvbmZpZ5ROjA1kdW1wX3NldHRpbmdzlE6MDmR1bXBfaW50ZXJuYWxzlE6MD2R1bXBfdHJhbnNmb3Jtc5ROjA9kdW1wX3BzZXVkb194bWyUTowQZXhwb3NlX2ludGVybmFsc5ROjA5zdHJpY3RfdmlzaXRvcpROjA9fZGlzYWJsZV9jb25maWeUTowHX3NvdXJjZZROjAxfZGVzdGluYXRpb26UjE1kb2MvZGlmZnMvYnl6YW50aXVtX2NvbnN0YW50aW5vcGxlL3ZtL2luc3RydWN0aW9ucy9lbnZpcm9ubWVudC9pbmRleC5waWNrbGU2NJSMDV9jb25maWdfZmlsZXOUXZSMEWxpbmVfbGVuZ3RoX2xpbWl0lE0QJ4wJdGFiX3dpZHRolEsIjBBzeW50YXhfaGlnaGxpZ2h0lIwEbG9uZ5SMDHNtYXJ0X3F1b3Rlc5SJjBNzbWFydHF1b3Rlc19sb2NhbGVzlE6MHWNoYXJhY3Rlcl9sZXZlbF9pbmxpbmVfbWFya3VwlImMBndyaXRlcpSMA3htbJSMGWNvbXBhcmVfc2VjdGlvbnNfYnlfbmFtZXOUSwGMDGR1bXBfcnN0ZGlmZpROjAVfYm90aJR9lChoOE6MCWdlbmVyYXRvcpROjAlkYXRlc3RhbXCUTowLc291cmNlX2xpbmuUTowKc291cmNlX3VybJROjA10b2NfYmFja2xpbmtzlGrIAwAAjBJmb290bm90ZV9iYWNrbGlua3OUSwGMDXNlY3RudW1feGZvcm2USwGMDmRvY3RpdGxlX3hmb3JtlEsBjA1kb2NpbmZvX3hmb3JtlEsBjBJzZWN0c3VidGl0bGVfeGZvcm2USwCMDnN0cmlwX2NvbW1lbnRzlE6MDmlucHV0X2VuY29kaW5nlE6MHGlucHV0X2VuY29kaW5nX2Vycm9yX2hhbmRsZXKUjAZzdHJpY3SUjA1sYW5ndWFnZV9jb2RllIwCZW6UjA5wZXBfcmVmZXJlbmNlc5ROjAxwZXBfYmFzZV91cmyUjB9odHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvlIwVcGVwX2ZpbGVfdXJsX3RlbXBsYXRllIwIcGVwLSUwNGSUjA5yZmNfcmVmZXJlbmNlc5ROjAxyZmNfYmFzZV91cmyUjBtodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC+UjB10cmltX2Zvb3Rub3RlX3JlZmVyZW5jZV9zcGFjZZROjBZmaWxlX2luc2VydGlvbl9lbmFibGVklEsBjAtyYXdfZW5hYmxlZJRLAYwOYXV0b19pZF9wcmVmaXiUjAJpZJSMCWlkX3ByZWZpeJRoBowbc3RyaXBfZWxlbWVudHNfd2l0aF9jbGFzc2VzlE6MDXN0cmlwX2NsYXNzZXOUTnWMBGJvdGiUfZSMCl9vcHRpb25zVG+UjAVfYm90aJSMC19vbGRfc291cmNllIxPL2hvbWUvcnVubmVyL3dvcmsvZXhlY3V0aW9uLXNwZWNzL2V4ZWN1dGlvbi1zcGVjcy8udG94L2RvY3Mvc3RhZ2UwX291dC9hdXRvYXBpL5SMC19uZXdfc291cmNllIwJZG9jL2RpZmZzlGoDGAAAagQYAACMFmlnbm9yZV9pbl9zZWN0aW9uX25hbWWUXZQojAlieXphbnRpdW2UjA5jb25zdGFudGlub3BsZZRldWKMCHJlcG9ydGVylE6MEGluZGlyZWN0X3RhcmdldHOUXZSMEXN1YnN0aXR1dGlvbl9kZWZzlH2UjBJzdWJzdGl0dXRpb25fbmFtZXOUfZSMCHJlZm5hbWVzlH2UjAZyZWZpZHOUfZSMB25hbWVpZHOUfZSMCW5hbWV0eXBlc5R9lGgQfZSMDWZvb3Rub3RlX3JlZnOUfZSMDWNpdGF0aW9uX3JlZnOUfZSMDWF1dG9mb290bm90ZXOUXZSMEWF1dG9mb290bm90ZV9yZWZzlF2UjBBzeW1ib2xfZm9vdG5vdGVzlF2UjBRzeW1ib2xfZm9vdG5vdGVfcmVmc5RdlIwJZm9vdG5vdGVzlF2UjAljaXRhdGlvbnOUXZSMEmF1dG9mb290bm90ZV9zdGFydJRLAYwVc3ltYm9sX2Zvb3Rub3RlX3N0YXJ0lEsAjAppZF9jb3VudGVylIwLY29sbGVjdGlvbnOUjAdDb3VudGVylJOUfZSFlFKUjA5wYXJzZV9tZXNzYWdlc5RdlIwSdHJhbnNmb3JtX21lc3NhZ2VzlF2UjAt0cmFuc2Zvcm1lcpROjAtpbmNsdWRlX2xvZ5RdlIwKZGVjb3JhdGlvbpROaCFoA3ViLg==