ZGlmZiAtLWdpdCBhL0JVSUxELmduIGIvQlVJTEQuZ24KaW5kZXggNWJjYjljYi4uOGJmZTBjYTU1IDEwMDY0NAotLS0gYS9CVUlMRC5nbgorKysgYi9CVUlMRC5nbgpAQCAtMTIyLDYgKzEyMiw3IEBACiAgICAgInB1YmxpYy9mcGRmX3Byb2dyZXNzaXZlLmgiLAogICAgICJwdWJsaWMvZnBkZl9zYXZlLmgiLAogICAgICJwdWJsaWMvZnBkZl9zZWFyY2hleC5oIiwKKyAgICAicHVibGljL2ZwZGZfc2lnbmF0dXJlLmgiLAogICAgICJwdWJsaWMvZnBkZl9zdHJ1Y3R0cmVlLmgiLAogICAgICJwdWJsaWMvZnBkZl9zeXNmb250aW5mby5oIiwKICAgICAicHVibGljL2ZwZGZfdGV4dC5oIiwKZGlmZiAtLWdpdCBhL2ZwZGZzZGsvQlVJTEQuZ24gYi9mcGRmc2RrL0JVSUxELmduCmluZGV4IDA4MTE1MmUuLjkzY2ZlNWMgMTAwNjQ0Ci0tLSBhL2ZwZGZzZGsvQlVJTEQuZ24KKysrIGIvZnBkZnNkay9CVUlMRC5nbgpAQCAtNjIsNiArNjIsNyBAQAogICAgICJmcGRmX3Byb2dyZXNzaXZlLmNwcCIsCiAgICAgImZwZGZfc2F2ZS5jcHAiLAogICAgICJmcGRmX3NlYXJjaGV4LmNwcCIsCisgICAgImZwZGZfc2lnbmF0dXJlLmNwcCIsCiAgICAgImZwZGZfc3RydWN0dHJlZS5jcHAiLAogICAgICJmcGRmX3N5c2ZvbnRpbmZvLmNwcCIsCiAgICAgImZwZGZfdGV4dC5jcHAiLApAQCAtMTQ1LDYgKzE0Niw3IEBACiAgICAgImZwZGZfcHBvX2VtYmVkZGVydGVzdC5jcHAiLAogICAgICJmcGRmX3NhdmVfZW1iZWRkZXJ0ZXN0LmNwcCIsCiAgICAgImZwZGZfc2VhcmNoZXhfZW1iZWRkZXJ0ZXN0LmNwcCIsCisgICAgImZwZGZfc2lnbmF0dXJlX2VtYmVkZGVydGVzdC5jcHAiLAogICAgICJmcGRmX3N0cnVjdHRyZWVfZW1iZWRkZXJ0ZXN0LmNwcCIsCiAgICAgImZwZGZfc3lzZm9udGluZm9fZW1iZWRkZXJ0ZXN0LmNwcCIsCiAgICAgImZwZGZfdGV4dF9lbWJlZGRlcnRlc3QuY3BwIiwKZGlmZiAtLWdpdCBhL2ZwZGZzZGsvZnBkZl9zaWduYXR1cmUuY3BwIGIvZnBkZnNkay9mcGRmX3NpZ25hdHVyZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ4OThlZgotLS0gL2Rldi9udWxsCisrKyBiL2ZwZGZzZGsvZnBkZl9zaWduYXR1cmUuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8vIENvcHlyaWdodCAyMDIwIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2luY2x1ZGUgInB1YmxpYy9mcGRmX3NpZ25hdHVyZS5oIgorCisjaW5jbHVkZSAiY29yZS9mcGRmYXBpL3BhcnNlci9jcGRmX2FycmF5LmgiCisjaW5jbHVkZSAiY29yZS9mcGRmYXBpL3BhcnNlci9jcGRmX2RpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJjb3JlL2ZwZGZhcGkvcGFyc2VyL2NwZGZfZG9jdW1lbnQuaCIKKyNpbmNsdWRlICJmcGRmc2RrL2NwZGZzZGtfaGVscGVycy5oIgorCitGUERGX0VYUE9SVCBpbnQgRlBERl9DQUxMQ09OViBGUERGX0dldFNpZ25hdHVyZUNvdW50KEZQREZfRE9DVU1FTlQgZG9jdW1lbnQpIHsKKyAgYXV0byogZG9jID0gQ1BERkRvY3VtZW50RnJvbUZQREZEb2N1bWVudChkb2N1bWVudCk7CisgIGlmICghZG9jKQorICAgIHJldHVybiAtMTsKKworICBDUERGX0RpY3Rpb25hcnkqIHJvb3QgPSBkb2MtPkdldFJvb3QoKTsKKyAgaWYgKCFyb290KQorICAgIHJldHVybiAwOworCisgIGNvbnN0IENQREZfRGljdGlvbmFyeSogYWNyb19mb3JtID0gcm9vdC0+R2V0RGljdEZvcigiQWNyb0Zvcm0iKTsKKyAgaWYgKCFhY3JvX2Zvcm0pCisgICAgcmV0dXJuIDA7CisKKyAgY29uc3QgQ1BERl9BcnJheSogZmllbGRzID0gYWNyb19mb3JtLT5HZXRBcnJheUZvcigiRmllbGRzIik7CisgIGlmICghZmllbGRzKQorICAgIHJldHVybiAwOworCisgIGludCBzaWduYXR1cmVfY291bnQgPSAwOworICBDUERGX0FycmF5TG9ja2VyIGxvY2tlcihmaWVsZHMpOworICBmb3IgKGNvbnN0IGF1dG8mIGZpZWxkIDogbG9ja2VyKSB7CisgICAgY29uc3QgQ1BERl9EaWN0aW9uYXJ5KiBmaWVsZF9kaWN0ID0gZmllbGQtPkdldERpY3QoKTsKKyAgICBpZiAoZmllbGRfZGljdCAmJiBmaWVsZF9kaWN0LT5HZXROYW1lRm9yKCJGVCIpID09ICJTaWciKQorICAgICAgKytzaWduYXR1cmVfY291bnQ7CisgIH0KKworICByZXR1cm4gc2lnbmF0dXJlX2NvdW50OworfQpkaWZmIC0tZ2l0IGEvZnBkZnNkay9mcGRmX3NpZ25hdHVyZV9lbWJlZGRlcnRlc3QuY3BwIGIvZnBkZnNkay9mcGRmX3NpZ25hdHVyZV9lbWJlZGRlcnRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiOGJiM2EKLS0tIC9kZXYvbnVsbAorKysgYi9mcGRmc2RrL2ZwZGZfc2lnbmF0dXJlX2VtYmVkZGVydGVzdC5jcHAKQEAgLTAsMCArMSwyMSBAQAorLy8gQ29weXJpZ2h0IDIwMjAgUERGaXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorCisjaW5jbHVkZSAicHVibGljL2ZwZGZfc2lnbmF0dXJlLmgiCisjaW5jbHVkZSAidGVzdGluZy9lbWJlZGRlcl90ZXN0LmgiCisKK2NsYXNzIEZQREZTaWduYXR1cmVFbWJlZGRlclRlc3QgOiBwdWJsaWMgRW1iZWRkZXJUZXN0IHt9OworCitURVNUX0YoRlBERlNpZ25hdHVyZUVtYmVkZGVyVGVzdCwgR2V0U2lnbmF0dXJlQ291bnQpIHsKKyAgRVhQRUNUX1RSVUUoT3BlbkRvY3VtZW50KCJ0d29fc2lnbmF0dXJlcy5wZGYiKSk7CisgIEVYUEVDVF9FUSgyLCBGUERGX0dldFNpZ25hdHVyZUNvdW50KGRvY3VtZW50KCkpKTsKK30KKworVEVTVF9GKEZQREZTaWduYXR1cmVFbWJlZGRlclRlc3QsIEdldFNpZ25hdHVyZUNvdW50WmVybykgeworICBFWFBFQ1RfVFJVRShPcGVuRG9jdW1lbnQoImhlbGxvX3dvcmxkLnBkZiIpKTsKKyAgRVhQRUNUX0VRKDAsIEZQREZfR2V0U2lnbmF0dXJlQ291bnQoZG9jdW1lbnQoKSkpOworCisgIC8vIFByb3ZpZGUgbm8gZG9jdW1lbnQuCisgIEVYUEVDVF9FUSgtMSwgRlBERl9HZXRTaWduYXR1cmVDb3VudChudWxscHRyKSk7Cit9CmRpZmYgLS1naXQgYS9mcGRmc2RrL2ZwZGZfdmlld19jX2FwaV90ZXN0LmMgYi9mcGRmc2RrL2ZwZGZfdmlld19jX2FwaV90ZXN0LmMKaW5kZXggZjc2ZDNkMi4uZDA0ZDFmOCAxMDA2NDQKLS0tIGEvZnBkZnNkay9mcGRmX3ZpZXdfY19hcGlfdGVzdC5jCisrKyBiL2ZwZGZzZGsvZnBkZl92aWV3X2NfYXBpX3Rlc3QuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgInB1YmxpYy9mcGRmX3Byb2dyZXNzaXZlLmgiCiAjaW5jbHVkZSAicHVibGljL2ZwZGZfc2F2ZS5oIgogI2luY2x1ZGUgInB1YmxpYy9mcGRmX3NlYXJjaGV4LmgiCisjaW5jbHVkZSAicHVibGljL2ZwZGZfc2lnbmF0dXJlLmgiCiAjaW5jbHVkZSAicHVibGljL2ZwZGZfc3RydWN0dHJlZS5oIgogI2luY2x1ZGUgInB1YmxpYy9mcGRmX3N5c2ZvbnRpbmZvLmgiCiAjaW5jbHVkZSAicHVibGljL2ZwZGZfdGV4dC5oIgpAQCAtMzE0LDYgKzMxNSw5IEBACiAgICAgQ0hLKEZQREZUZXh0X0dldENoYXJJbmRleEZyb21UZXh0SW5kZXgpOwogICAgIENISyhGUERGVGV4dF9HZXRUZXh0SW5kZXhGcm9tQ2hhckluZGV4KTsKIAorICAgIC8vIGZwZGZfc2lnbmF0dXJlLmgKKyAgICBDSEsoRlBERl9HZXRTaWduYXR1cmVDb3VudCk7CisKICAgICAvLyBmcGRmX3N0cnVjdHRyZWUuaAogICAgIENISyhGUERGX1N0cnVjdEVsZW1lbnRfQ291bnRDaGlsZHJlbik7CiAgICAgQ0hLKEZQREZfU3RydWN0RWxlbWVudF9HZXRBbHRUZXh0KTsKZGlmZiAtLWdpdCBhL3B1YmxpYy9mcGRmX3NpZ25hdHVyZS5oIGIvcHVibGljL2ZwZGZfc2lnbmF0dXJlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzI5MGJjYgotLS0gL2Rldi9udWxsCisrKyBiL3B1YmxpYy9mcGRmX3NpZ25hdHVyZS5oCkBAIC0wLDAgKzEsMjggQEAKKy8vIENvcHlyaWdodCAyMDIwIFBERml1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKworI2lmbmRlZiBQVUJMSUNfRlBERl9TSUdOQVRVUkVfSF8KKyNkZWZpbmUgUFVCTElDX0ZQREZfU0lHTkFUVVJFX0hfCisKKy8vIE5PTElOVE5FWFRMSU5FKGJ1aWxkL2luY2x1ZGUpCisjaW5jbHVkZSAiZnBkZnZpZXcuaCIKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZiAgLy8gX19jcGx1c3BsdXMKKworLy8gRXhwZXJpbWVudGFsIEFQSS4KKy8vIEZ1bmN0aW9uOiBGUERGX0dldFNpZ25hdHVyZUNvdW50CisvLyAgICAgICAgICBHZXQgdG90YWwgbnVtYmVyIG9mIHNpZ25hdHVyZXMgaW4gdGhlIGRvY3VtZW50LgorLy8gUGFyYW1ldGVyczoKKy8vICAgICAgICAgIGRvY3VtZW50ICAgIC0gICBIYW5kbGUgdG8gZG9jdW1lbnQuIFJldHVybmVkIGJ5IEZQREZfTG9hZERvY3VtZW50KCkuCisvLyBSZXR1cm4gdmFsdWU6CisvLyAgICAgICAgICBUb3RhbCBudW1iZXIgb2Ygc2lnbmF0dXJlcyBpbiB0aGUgZG9jdW1lbnQgb24gc3VjY2VzcywgLTEgb24gZXJyb3IuCitGUERGX0VYUE9SVCBpbnQgRlBERl9DQUxMQ09OViBGUERGX0dldFNpZ25hdHVyZUNvdW50KEZQREZfRE9DVU1FTlQgZG9jdW1lbnQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30gIC8vIGV4dGVybiAiQyIKKyNlbmRpZiAgLy8gX19jcGx1c3BsdXMKKworI2VuZGlmICAvLyBQVUJMSUNfRlBERl9TSUdOQVRVUkVfSF8KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvcmVzb3VyY2VzL3R3b19zaWduYXR1cmVzLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvdHdvX3NpZ25hdHVyZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjE4NDk1ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvcmVzb3VyY2VzL3R3b19zaWduYXR1cmVzLmluCkBAIC0wLDAgKzEsMTU1IEBACit7e2hlYWRlcn19Cit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKK3t7b2JqZWN0IDIgMH19IDw8CisgIC9UeXBlIC9QYWdlcworICAvTWVkaWFCb3ggWzAgMCAyMDAgMzAwXQorICAvQ291bnQgMQorICAvS2lkcyBbMyAwIFJdCis+PgorZW5kb2JqCit7e29iamVjdCAzIDB9fSA8PAorICAvVHlwZSAvUGFnZQorICAvUGFyZW50IDIgMCBSCisgIC9Db250ZW50cyA0IDAgUgorPj4KK2VuZG9iagore3tvYmplY3QgNCAwfX0gPDwKKyAge3tzdHJlYW1sZW59fQorPj4KK3N0cmVhbQorcQorMCAwIDAgcmcKKzAgMjkwIDEwIDEwIHJlIEIqCisxMCAxNTAgNTAgMzAgcmUgQioKKzAgMCAxIHJnCisxOTAgMjkwIDEwIDEwIHJlIEIqCis3MCAyMzIgNTAgMzAgcmUgQioKKzAgMSAwIHJnCisxOTAgMCAxMCAxMCByZSBCKgorMTMwIDE1MCA1MCAzMCByZSBCKgorMSAwIDAgcmcKKzAgMCAxMCAxMCByZSBCKgorNzAgNjcgNTAgMzAgcmUgQioKK1EKK2VuZHN0cmVhbQorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCisKKyUlIEZpcnN0IGluY3JlbWVudGFsIHVwZGF0ZSBhZGRzIGFuIGluaXRpYWwgc2lnbmF0dXJlIGFuZCB1cGRhdGUgb2JqZWN0cyB0bworJSUgcmVmZXIgdG8gaXQuCit7e29iamVjdCAxIDB9fSA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKyAgL0Fjcm9Gb3JtIDw8CisgICAgL0ZpZWxkcyBbNyAwIFJdCisgICAgL1NpZ0ZsYWdzIDMKKyAgPj4KKz4+CitlbmRvYmoKK3t7b2JqZWN0IDMgMH19IDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9Bbm5vdHMgWzcgMCBSXQorPj4KK2VuZG9iagorJSUgQnl0ZVJhbmdlIGlzIGEgcGFpcnMgb2YgaW50ZWdlcnMgKHN0YXJ0aW5nIGJ5dGUgb2Zmc2V0LCBsZW5ndGggaW4gYnl0ZXMpCit7e29iamVjdCA1IDB9fSA8PAorICAvVHlwZSAvU2lnCisgIC9GaWx0ZXIgL0Fkb2JlLlBQS01TCisgIC9TdWJGaWx0ZXIgL0VUU0kuQ0FkRVMuZGV0YWNoZWQKKyAgL0J5dGVSYW5nZSBbMCAxMCAzMCAxMF0KKyAgL0NvbnRlbnRzIDwzMDgwMDYwOTJBODY0ODg2RjcwRDAxMDcwMkEwODAzMDgwMDIwMTAxPgorICAvTSAoRDoyMDIwMDYyNDA5MzExNCswMicwMCcpCis+PgorZW5kb2JqCit7e29iamVjdCA2IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbMCAwIDAgMF0KKyAgL0xlbmd0aCAwCis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgNyAwfX0gPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9TaWcKKyAgL0YgMTMyCisgIC9SZWN0IFswIDAgMCAwXQorICAvUCAzIDAgUgorICAvVCAoU2lnbmF0dXJlMSkKKyAgL1YgNSAwIFIKKyAgL0RWIDUgMCBSCisgIC9BUCA8PAorICAgIC9OIDYgMCBSCisgID4+Cis+PgorZW5kb2JqCit7e3hyZWZ9fQore3t0cmFpbGVyfX0KK3t7c3RhcnR4cmVmfX0KKyUlRU9GCisKKyUlIFNlY29uZCBpbmNyZW1lbnRhbCB1cGRhdGUgYWRkcyBhIG5leHQgc2lnbmF0dXJlIGFuZCB1cGRhdGUgb2JqZWN0cyBvbmNlIGFnYWluIHRvIHJlZmVyIHRvIGl0Lgore3tvYmplY3QgMSAwfX0gPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzcgMCBSIDEwIDAgUl0KKyAgICAvU2lnRmxhZ3MgMworICA+PgorPj4KK2VuZG9iagore3tvYmplY3QgMyAwfX0gPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL0Fubm90cyBbNyAwIFIgMTAgMCBSXQorPj4KK2VuZG9iagore3tvYmplY3QgOCAwfX0gPDwKKyAgL1R5cGUgL1NpZworICAvRmlsdGVyIC9BZG9iZS5QUEtNUworICAvU3ViRmlsdGVyIC9FVFNJLkNBZEVTLmRldGFjaGVkCisgIC9CeXRlUmFuZ2UgWzAgNDAgNTAgMTBdCisgIC9Db250ZW50cyA8MzA4MDA2MDkyQTg2NDg4NkY3MEQwMTA3MDJBMDgwMzA4MDAyMDEwMTMxPgorICAvTSAoRDoyMDIwMDYyNDA5MzExOCswMicwMCcpCis+PgorZW5kb2JqCit7e29iamVjdCA5IDB9fSA8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvRm9ybQorICAvQkJveCBbMCAwIDAgMF0KKyAgL0xlbmd0aCAwCis+Pgorc3RyZWFtCitlbmRzdHJlYW0KK2VuZG9iagore3tvYmplY3QgMTAgMH19IDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvU2lnCisgIC9GIDEzMgorICAvUmVjdCBbMCAwIDAgMF0KKyAgL1AgMyAwIFIKKyAgL1QgKFNpZ25hdHVyZTIpCisgIC9WIDggMCBSCisgIC9EViA4IDAgUgorICAvQVAgPDwKKyAgICAvTiA5IDAgUgorICA+PgorPj4KK2VuZG9iagore3t4cmVmfX0KK3t7dHJhaWxlcn19Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvdHdvX3NpZ25hdHVyZXMucGRmIGIvdGVzdGluZy9yZXNvdXJjZXMvdHdvX3NpZ25hdHVyZXMucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhMDMzZDYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL3Jlc291cmNlcy90d29fc2lnbmF0dXJlcy5wZGYKQEAgLTAsMCArMSwxOTUgQEAKKyVQREYtMS43CisloPKk9AorMSAwIG9iaiA8PAorICAvVHlwZSAvQ2F0YWxvZworICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKzIgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2VzCisgIC9NZWRpYUJveCBbMCAwIDIwMCAzMDBdCisgIC9Db3VudCAxCisgIC9LaWRzIFszIDAgUl0KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKz4+CitlbmRvYmoKKzQgMCBvYmogPDwKKyAgL0xlbmd0aCAxODgKKz4+CitzdHJlYW0KK3EKKzAgMCAwIHJnCiswIDI5MCAxMCAxMCByZSBCKgorMTAgMTUwIDUwIDMwIHJlIEIqCiswIDAgMSByZworMTkwIDI5MCAxMCAxMCByZSBCKgorNzAgMjMyIDUwIDMwIHJlIEIqCiswIDEgMCByZworMTkwIDAgMTAgMTAgcmUgQioKKzEzMCAxNTAgNTAgMzAgcmUgQioKKzEgMCAwIHJnCiswIDAgMTAgMTAgcmUgQioKKzcwIDY3IDUwIDMwIHJlIEIqCitRCitlbmRzdHJlYW0KK2VuZG9iagoreHJlZgorMCA1CiswMDAwMDAwMDAwIDY1NTM1IGYgCiswMDAwMDAwMDE1IDAwMDAwIG4gCiswMDAwMDAwMDY4IDAwMDAwIG4gCiswMDAwMDAwMTU3IDAwMDAwIG4gCiswMDAwMDAwMjI2IDAwMDAwIG4gCit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDUKKz4+CitzdGFydHhyZWYKKzQ2NgorJSVFT0YKKworJSUgRmlyc3QgaW5jcmVtZW50YWwgdXBkYXRlIGFkZHMgYW4gaW5pdGlhbCBzaWduYXR1cmUgYW5kIHVwZGF0ZSBvYmplY3RzIHRvCislJSByZWZlciB0byBpdC4KKzEgMCBvYmogPDwKKyAgL1R5cGUgL0NhdGFsb2cKKyAgL1BhZ2VzIDIgMCBSCisgIC9BY3JvRm9ybSA8PAorICAgIC9GaWVsZHMgWzcgMCBSXQorICAgIC9TaWdGbGFncyAzCisgID4+Cis+PgorZW5kb2JqCiszIDAgb2JqIDw8CisgIC9UeXBlIC9QYWdlCisgIC9QYXJlbnQgMiAwIFIKKyAgL0NvbnRlbnRzIDQgMCBSCisgIC9Bbm5vdHMgWzcgMCBSXQorPj4KK2VuZG9iagorJSUgQnl0ZVJhbmdlIGlzIGEgcGFpcnMgb2YgaW50ZWdlcnMgKHN0YXJ0aW5nIGJ5dGUgb2Zmc2V0LCBsZW5ndGggaW4gYnl0ZXMpCis1IDAgb2JqIDw8CisgIC9UeXBlIC9TaWcKKyAgL0ZpbHRlciAvQWRvYmUuUFBLTVMKKyAgL1N1YkZpbHRlciAvRVRTSS5DQWRFUy5kZXRhY2hlZAorICAvQnl0ZVJhbmdlIFswIDEwIDMwIDEwXQorICAvQ29udGVudHMgPDMwODAwNjA5MkE4NjQ4ODZGNzBEMDEwNzAyQTA4MDMwODAwMjAxMDE+CisgIC9NIChEOjIwMjAwNjI0MDkzMTE0KzAyJzAwJykKKz4+CitlbmRvYmoKKzYgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWzAgMCAwIDBdCisgIC9MZW5ndGggMAorPj4KK3N0cmVhbQorZW5kc3RyZWFtCitlbmRvYmoKKzcgMCBvYmogPDwKKyAgL1R5cGUgL0Fubm90CisgIC9TdWJ0eXBlIC9XaWRnZXQKKyAgL0ZUIC9TaWcKKyAgL0YgMTMyCisgIC9SZWN0IFswIDAgMCAwXQorICAvUCAzIDAgUgorICAvVCAoU2lnbmF0dXJlMSkKKyAgL1YgNSAwIFIKKyAgL0RWIDUgMCBSCisgIC9BUCA8PAorICAgIC9OIDYgMCBSCisgID4+Cis+PgorZW5kb2JqCit4cmVmCiswIDgKKzAwMDAwMDAwMDAgNjU1MzUgZiAKKzAwMDAwMDA3MjYgMDAwMDAgbiAKKzAwMDAwMDAwNjggMDAwMDAgbiAKKzAwMDAwMDA4MzUgMDAwMDAgbiAKKzAwMDAwMDAyMjYgMDAwMDAgbiAKKzAwMDAwMDA5OTggMDAwMDAgbiAKKzAwMDAwMDEyMDEgMDAwMDAgbiAKKzAwMDAwMDEzMDMgMDAwMDAgbiAKK3RyYWlsZXIgPDwKKyAgL1Jvb3QgMSAwIFIKKyAgL1NpemUgOAorPj4KK3N0YXJ0eHJlZgorMTQ3NQorJSVFT0YKKworJSUgU2Vjb25kIGluY3JlbWVudGFsIHVwZGF0ZSBhZGRzIGEgbmV4dCBzaWduYXR1cmUgYW5kIHVwZGF0ZSBvYmplY3RzIG9uY2UgYWdhaW4gdG8gcmVmZXIgdG8gaXQuCisxIDAgb2JqIDw8CisgIC9UeXBlIC9DYXRhbG9nCisgIC9QYWdlcyAyIDAgUgorICAvQWNyb0Zvcm0gPDwKKyAgICAvRmllbGRzIFs3IDAgUiAxMCAwIFJdCisgICAgL1NpZ0ZsYWdzIDMKKyAgPj4KKz4+CitlbmRvYmoKKzMgMCBvYmogPDwKKyAgL1R5cGUgL1BhZ2UKKyAgL1BhcmVudCAyIDAgUgorICAvQ29udGVudHMgNCAwIFIKKyAgL0Fubm90cyBbNyAwIFIgMTAgMCBSXQorPj4KK2VuZG9iagorOCAwIG9iaiA8PAorICAvVHlwZSAvU2lnCisgIC9GaWx0ZXIgL0Fkb2JlLlBQS01TCisgIC9TdWJGaWx0ZXIgL0VUU0kuQ0FkRVMuZGV0YWNoZWQKKyAgL0J5dGVSYW5nZSBbMCA0MCA1MCAxMF0KKyAgL0NvbnRlbnRzIDwzMDgwMDYwOTJBODY0ODg2RjcwRDAxMDcwMkEwODAzMDgwMDIwMTAxMzE+CisgIC9NIChEOjIwMjAwNjI0MDkzMTE4KzAyJzAwJykKKz4+CitlbmRvYmoKKzkgMCBvYmogPDwKKyAgL1R5cGUgL1hPYmplY3QKKyAgL1N1YnR5cGUgL0Zvcm0KKyAgL0JCb3ggWzAgMCAwIDBdCisgIC9MZW5ndGggMAorPj4KK3N0cmVhbQorZW5kc3RyZWFtCitlbmRvYmoKKzEwIDAgb2JqIDw8CisgIC9UeXBlIC9Bbm5vdAorICAvU3VidHlwZSAvV2lkZ2V0CisgIC9GVCAvU2lnCisgIC9GIDEzMgorICAvUmVjdCBbMCAwIDAgMF0KKyAgL1AgMyAwIFIKKyAgL1QgKFNpZ25hdHVyZTIpCisgIC9WIDggMCBSCisgIC9EViA4IDAgUgorICAvQVAgPDwKKyAgICAvTiA5IDAgUgorICA+PgorPj4KK2VuZG9iagoreHJlZgorMCAxMQorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMTgwMSAwMDAwMCBuIAorMDAwMDAwMDA2OCAwMDAwMCBuIAorMDAwMDAwMTkxNyAwMDAwMCBuIAorMDAwMDAwMDIyNiAwMDAwMCBuIAorMDAwMDAwMDk5OCAwMDAwMCBuIAorMDAwMDAwMTIwMSAwMDAwMCBuIAorMDAwMDAwMTMwMyAwMDAwMCBuIAorMDAwMDAwMjAxMSAwMDAwMCBuIAorMDAwMDAwMjIxNiAwMDAwMCBuIAorMDAwMDAwMjMxOCAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSAxMQorPj4KK3N0YXJ0eHJlZgorMjQ5MQorJSVFT0YK