ZGlmZiAtLWdpdCBhL0JVSUxESU5HIGIvQlVJTERJTkcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTJhZGM2MgotLS0gL2Rldi9udWxsCisrKyBiL0JVSUxESU5HCkBAIC0wLDAgKzEsMTE5IEBACitCdWlsZGluZyBsd0lQCis9PT09PT09PT09PT09CisKK2x3SVAgdXNlcyBhIENNYWtlIGJhc2VkIGJ1aWxkIHN5c3RlbS4KKworVGhlIENNYWtlIGZpbGVzIGluIHRoaXMgcHJvamVjdCBhcmUgZGVzaWduZWQgdG8KK2JlIGluY2x1ZGVkIGludG8geW91ciBvd24gQ01ha2UgZmlsZXMuIFRoZXkgYXJlCittYWlubHkgdmFyaWFibGUgZGVmaW5pdGlvbnMgY29udGFpbmluZyBhIGxpc3Qgb2YKK3NvdXJjZSBmaWxlcyBhbmQgcHJlZGVmaW5lZCBzdGF0aWMgbGlicmFyaWVzIHRvCitiZSBsaW5rZWQgYWdhaW5zdCBhcHBsaWNhdGlvbiBjb2RlLgorCisxKSBsd0lQIHNvdXJjZXM6CisgICBzcmMvRmlsZWxpc3RzLmNtYWtlIHByb3ZpZGVzIGZpbGUgbGlzdHMgY29udGFpbmluZworICAgdGhlIGx3SVAgY29yZSBsaWJyYXJ5LgorICAgVGhlIGZpbGUgYWxzbyBjb250YWlucyB0d28gc3RhdGljIGxpYnJhcmllcywgbHdpcGNvcmUKKyAgIGFuZCBsd2lwYWxsYXBwcywgd2hlcmUgeW91IGNhbiBsaW5rIHlvdXIgYXBwIGFnYWluc3QuCisgICBUaGlzIGlzIHRoZSBmaWxlIHRoYXQgaXMgdXNlZnVsIHRvIGFsbCBsd0lQIHVzZXJzLgorCisyKSBFeGFtcGxlIGFwcGxpY2F0aW9uczoKKyAgIGNvbnRyaWIvRmlsZWxpc3RzLmNtYWtlIHByb3ZpZGVzIHNldmVyYWwgZmlsZSBsaXN0cworICAgY29udGFpbmluZyB0aGUgZXhhbXBsZSBhcHBsaWNhdGlvbnMuCisgICBUaGUgZmlsZSBhbHNvIGNvbnRhaW5zIHNldmVyYWwgc3RhdGljIGxpYnJhcmllcworICAgZm9yIHRoZXNlIGV4YW1wbGUgYXBwcy4KKyAgIFRoaXMgZmlsZSBpcyBvbmx5IHVzZWZ1bCBmb3IgeW91LCBpZiB5b3UgY2FuIHVzZSBvbmUKKyAgIG9mIHRoZSBleGFtcGxlcyBpbiB5b3VyIGFwcGxpY2F0aW9uLCB3aGljaCBpcyBub3JtYWxseQorICAgbm90IHRoZSBjYXNlLgorCiszKSBPUy9wbGF0Zm9ybSBwb3J0OgorICAgVXN1YWxseSB0aGUgT1MgcG9ydCBuZWVkcyB0byBiZSBwcm92aWRlZCBieSB0aGUgdXNlci4KKyAgIElmIGEgcG9ydCB0byBMaW51eCwgV2luZG93cyBvciBNYWNPUyBpcyB1c2VmdWwgZm9yCisgICB5b3UsIHlvdSBjYW4gdXNlCisgICBjb250cmliL3BvcnRzL3t3aW4zMiwgdW5peH0vRmlsZWxpc3RzLmNtYWtlCisgICB0aGF0IGNvbnRhaW5zIGZpbGUgbGlzdHMgYW5kIGxpYnJhcmllcyBmb3IKKyAgIHRoZXNlIG9wZXJhdGluZyBzeXN0ZW1zLgorCitWQVJJQUJMRVMKKz09PT09PT09PQorSW4gYWxsIGNhc2VzLCB5b3UgbmVlZCB0byBwcm92aWRlIHR3byB2YXJpYWJsZXMuCisKKyJMV0lQX0RJUiIgcG9pbnRpbmcgdG8gdGhlIGx3SVAgZGlyZWN0b3J5CitFeGFtcGxlOgorc2V0KExXSVBfRElSICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS9leHRlcm5hbHMvbHdpcCkKKworIkxXSVBfSU5DTFVERV9ESVJTIiB0aGF0IGNvbnRhaW5zIHRoZSBpbmNsdWRlIGJhc2UgcGF0aHMKKy0gZm9yIGx3SVAgaXRzZWxmICgke0xXSVBfRElSfS9zcmMvaW5jbHVkZSkKKy0gZm9yIGx3SVAgY29udHJpYiBpZiB5b3UgdXNlIGl0ICgke0xXSVBfRElSfS9jb250cmliKQorLSB0byBhIGRpcmVjdG9yeSBjb250YWluaW5nIGFuIE9TIHBvcnQKKy0gdG8gYSBkaXJlY3RvcnkgY29udGFpbmluZyBsd2lwb3B0cy5oCisKK0V4YW1wbGU6CitzZXQgKExXSVBfSU5DTFVERV9ESVJTCisgICAgIiR7TFdJUF9ESVJ9L3NyYy9pbmNsdWRlIgorICAgICIke0xXSVBfRElSfS9jb250cmliIgorICAgICIke0xXSVBfRElSfS9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlIgorICAgICIke0xXSVBfRElSfS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwIgorKQorCitQdXR0aW5nIGl0IGFsbCB0b2dldGhlcgorPT09PT09PT09PT09PT09PT09PT09PT0KK1RvIGdldCBhIHdvcmtpbmcgYXBwbGljYXRpb24sIHlvdXIgQ01ha2Ugc3lzdGVtCituZWVkcyB0byBwcm92aWRlIHRoZSB2YXJpYWJsZXMgZGVzY3JpYmVkIGFib3ZlLCBlLmcuCitzZXQgKExXSVBfRElSIDxwYXRoIHRvIGx3aXAgc291cmNlcz4pCitzZXQgKExXSVBfSU5DTFVERV9ESVJTCisgICAgIiR7TFdJUF9ESVJ9L3NyYy9pbmNsdWRlIgorICAgICIke0xXSVBfRElSfS9jb250cmliIgorICAgICI8cGF0aCB0byBteSBwb3J0Pi9pbmNsdWRlIgorICAgICI8cGF0aCB0byBsd2lwb3B0cy5oPiIKKykKKworWW91IG1heSBhZGQgc29tZSBkZWZpbmVzOgorc2V0IChMV0lQX0RFRklOSVRJT05TIExXSVBfREVCVUc9MSkKKworVGhlbiBpbmNsdWRlIHRoZSBmaWxlbGlzdHMgeW91IG5lZWQ6CitpbmNsdWRlKCR7TFdJUF9ESVJ9L3NyYy9GaWxlbGlzdHMuY21ha2UpCitpbmNsdWRlKCR7TFdJUF9ESVJ9L2NvbnRyaWIvRmlsZWxpc3RzLmNtYWtlKQorCitUaGVuLCBkZWNsYXJlIHlvdSBleGVjdXRhYmxlOgorYWRkX2V4ZWN1dGFibGUobXlfYXBwIDxteSBzb3VyY2UgZmlsZXM+IDxteSBsd2lwIHBvcnQgZmlsZXM+KQorCitBZGQgbHdJUCBpbmNsdWRlIGRpcnMgdG8geW91ciBhcHA6Cit0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhteV9hcHAgUFJJVkFURSAke0xXSVBfSU5DTFVERV9ESVJTfSkKKworTGluayB5b3VyIGFwcCBhZ2FpbnN0IHRoZSBsd0lQIGxpYnMgZnJvbSB0aGUgZmlsZWxpc3RzIHlvdSBuZWVkOgordGFyZ2V0X2xpbmtfbGlicmFyaWVzKG15X2FwcCBsd2lwY29udHJpYmFwcHMgbHdpcGFsbGFwcHMgbHdpcGNvcmUpCisKK1dvcmtpbmcgZXhhbXBsZQorPT09PT09PT09PT09PT09CitXb3JraW5nIGJ1aWxkIGV4YW1wbGVzIGNhbiBiZSBmb3VuZCBpbiB0aGUKK2NvbnRyaWIvcG9ydHMve3dpbjMyLCB1bml4fS9leGFtcGxlX2FwcAorc3ViZGlyZWN0b3J5LgorVG8gdXNlIHRoZW0sIGNyZWF0ZSBhIGJ1aWxkIGRpcmVjdG9yeSBhbmQgY2FsbCBjbWFrZSB3aXRoCit0aGUgbHdJUCByb290IGRpcjoKKworLSBta2RpciBidWlsZAorLSBjZCBidWlsZAorLSBjbWFrZSAuLgorLSBjbWFrZSAtLWJ1aWxkIC4KKworVGhlIENNYWtlTGlzdHMudHh0IHdpbGwgYXV0b3NlbGVjdCB0aGUgY29ycmVjdCBwb3J0Citmb3IgeW91ciBzeXN0ZW0gKHN1cHBvcnRlZDogTGludXgsIFdpbmRvd3MsIERhcndpbikuCisKK1RvIGNvbmZpZ3VyZSB0aGUgZXhhbXBsZSBhcHAgdG8geW91ciBuZWVkcywgeW91IG5lZWQgdG8gY29weSB0aGUgZmlsZQorICAgIGNvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvbHdpcGNmZy5oLmV4YW1wbGUKK3RvCisgICAgY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwY2ZnLmgKK2FuZCBlZGl0IHRvIHlvdXIgbmVlZHMuCisKK01ha2VmaWxlIGJhc2VkIGJ1aWxkIHN5c3RlbQorPT09PT09PT09PT09PT09PT09PT09PT09PT09Citsd0lQIGFsc28gbWFpbnRhaW5zIGZpbGUgbGlzdHMgZm9yIE1ha2VmaWxlLWJhc2VkCitidWlsZCBzeXN0ZW1zLiBMb29rIGZvciBGaWxlbGlzdHMubWsgZmlsZXMKK2luIHRoZSBzb3VyY2UgdHJlZS4gV2UgdHJ5IHRvIG1haW50YWluIHRoZW0sCitidXQgbHdJUCdzIG1haW5seSBmb2N1c2VkIGJ1aWxkIHN5c3RlbSBpcyBDTWFrZS4KKworTVMgVmlzdWFsIFN0dWRpbworPT09PT09PT09PT09PT09PQorbHdJUCBhbHNvIHByb3ZpZGVzIGJhc2ljIHN1cHBvcnQgZm9yIE1TVlMgaW4gdGhlIHdpbjMyIHBvcnQKK2ZvbGRlciB1bmRlciAnbXN2YycuIFdlIHRyeSB0byBtYWludGFpbiB0aGVzZSBmaWxlcywKK2J1dCBsd0lQJ3MgbWFpbmx5IGZvY3VzZWQgYnVpbGQgc3lzdGVtIGlzIENNYWtlLgpkaWZmIC0tZ2l0IGEvQ0hBTkdFTE9HIGIvQ0hBTkdFTE9HCmluZGV4IDVmNzk3ZTcuLjVkNWY4MWEgMTAwNjQ0Ci0tLSBhL0NIQU5HRUxPRworKysgYi9DSEFOR0VMT0cKQEAgLTYsNiArNiw5MyBAQAogCiAgICogW0VudGVyIG5ldyBjaGFuZ2VzIGp1c3QgYWZ0ZXIgdGhpcyBsaW5lIC0gZG8gbm90IHJlbW92ZSB0aGlzIGxpbmVdCiAKKyhTVEFCTEUtMi4yLjApOgorCisgIDIwMTgtMTAtMDI6IERpcmsgWmllZ2VsbWVpZXIKKyAgKiBJbnRlZ3JhdGUgY29udHJpYiByZXBvc2l0b3J5IGludG8gbWFpbiBsd0lQIHJlcG9zaXRvcnkKKworICArKyBOZXcgZmVhdHVyZXM6CisKKyAgMjAyMi0wNC0wNTogRGF2aWQgQ2VybWFrCisgICogY29udHJpYi9hZGRvbnM6IEFkZCBleGFtcGxlIG9mIHVzaW5nIERIQ1AgZXh0cmEgb3B0aW9ucyBob29rcworCisgIDIwMjMtMDUtMTE6IERhdmlkIENlcm1haworICAqIGRoY3A6IEFkZCBtYWNybyBmb3IgYXBwZW5kaW5nIGV4dHJhIGNsaWVudCdzIHJlcXVlc3Qgb3B0aW9ucworCisgIDIwMjMtMDUtMTE6IHh1ZXl1bmZlaQorICAqIGRoY3A6IEVuYWJsZSBjdXN0b20gY29uZmlnIGZvciB0aW1lb3V0cywgdGhyZXNob2xkcywgYmFja29mZiB0aW1lCisKKyAgMjAyMS0wNC0yNgorICAqIHRlc3QvdW5pdDogYWRkZWQgbW9yZSB1bml0IHRlc3RzCisKKyAgMjAyMC0wMy0yNzogU2ltb24gR29sZHNjaG1pZHQKKyAgKiB0ZXN0L2Z1eno6IGltcHJvdmUgZnV6eiB0ZXN0CisKKyAgMjAxOS0xMi0xMTogU2ltb24gR29sZHNjaG1pZHQKKyAgKiBpcDZhZGRyX2F0b246IHN1cHBvcnQgc2NvcGVkIGFkZHJlc3Mgc3RyaW5ncyAodmlhICclJykKKworICAyMDE5LTA4LTI4OiBKb2FuIExsZWTDsworICAqIENvbnRyaWI6IEFkZCBrRnJlZUJTRCB0byB0aGUgVW5peCBwb3J0CisKKyAgMjAxOS0wNy0xNDogSm9hbiBMbGVkw7MKKyAgKiBVbml4IHBvcnQ6IGltcHJvdmUgc3VwcG9ydCBmb3IgdGhlIEh1cmQKKworICArKyBCdWdmaXhlczoKKworICAyMDE5LTEyLTExOiBEYXZpZCBHaXJhdWx0CisgICogYWx0Y3BfdGxzOiBzdXBwb3J0IGZvciBzYXZpbmcvcmVzdG9yaW5nIHNlc3Npb24gaW5mb3JtYXRpb24KKworICAyMDE4LTExLTE2OiBDcmFpZyBNY1FVZWVuCisgICogZG5zOiBhbGxvdyBhIEROUyBsb29rLXVwIHdpdGggYSB0cmFpbGluZyBkb3QgaW4gdGhlIG5hbWUKKworICAyMDE4LTEwLTE5OiBUaW1teSBCcm9saW4KKyAgKiBBZGQgb3V0Z29pbmcgVkxBTiBQQ1Agc3VwcG9ydCBmb3IgRXRoZXJuZXQgbGV2ZWwgUW9TCisKKyAgMjAxOC0xMC0wODogQmVuIFdpamVuCisgICogYXBwcy90ZnRwOiBhZGRlZCBURlRQIGNsaWVudAorCisgIDIwMTgtMTAtMDQ6IEphc3BlciBWZXJzY2h1ZXJlbgorICAqIEltcGxlbWVudCBJUHY0IEFDRCAoQWRkcmVzcyBDb25mbGljdCBEZXRlY3Rpb24pCisKKyAgMjAyMy0wNS0xMAorICAqIGFsdGNwX3Rsc19tYmVkdGxzOiBub3RlIHdoaWNoIHZlcnNpb24gb2YgbWJlZHRscyB3ZSBhcmUgY29tcGF0aWJsZSB0bworICAqIGFsdGNwX3Rsc19tYmVkdGxzOiBtdWx0aXBsZSBjb21wYXRpYmlsaXR5IGZpeGVzCisKKyAgMjAyMy0wNC0yNjogSmFuIEJyZXVlciwgSGFycm9sZCBTcGllciwgT2duamVuIEJqZWxpY2EsIERpcmsgWmllZ2VsbWVpZXIsIFNpbW9uIEdvbGRzY2htaWR0CisgICogYXBwcy9zbm1wOiBtdWx0aXBsZSBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzIHRvIHNubXAKKworICAyMDIyLTAxLTEyOiBTaW1vbiBHb2xkc2NobWlkdAorICAqIGh0dHBkOiBjbGVhbiB1cCBjdXN0b20gZmlsZSBoYW5kbGluZworCisgIDIwMjEtMTEtMjU6IHF1YW5qaWEKKyAgKiBwaW5nOiBmaXggc29ja2FkZHIgbGVuIGluIHBpbmdfc2VuZCgpIGZvciBQSU5HX1VTRV9TT0NLRVRTPT0xCisKKyAgMjAyMS0xMS0xMjogQmFzIFByaW5zCisgICogaHR0cF9jbGllbnQ6IHJlc2V0IHRpbWVvdXQgd2hlbiByZWNlaXZpbmcgZGF0YQorCisgIDIwMjAtMDctMDc6IEVyaWsgRWttYW4KKyAgKiBSZW5hbWUgSVAgYW5kIEV0aGVybmV0IGVxdWFsaXR5IGNoZWNrZXJzIGZyb20gX2NtcCB0byBfZXEKKworICAyMDIwLTAzLTA1OiBTaW1vbiBHb2xkc2NobWlkdAorICAqIHRjcDogdGlnaHRlbiB1cCBjaGVja3MgZm9yIHJlY2VpdmVkIFNZTgorCisgIDIwMjAtMDEtMzA6IFNpbW9uIEdvbGRzY2htaWR0LCBEYXZpZCBHaXJhdWx0LCBEYXZpZCBKLiBGaWRkZXMsIFRvbSBGZXJyaW4KKyAgKiBhcHBzL3NudHA6IG11bHRpcGxlIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMgZm9yIHNudHAKKworICAyMDIwLTAxLTMwOiBTaW1vbiBHb2xkc2NobWlkdAorICAqIGlwX2ZvcndhcmQ6IGZpeCBJUHY0IGZvcndhcmRpbmcgd2l0aCBtdWx0aXBsZSBuZXRpZnMvb2ZmbG9hZGluZworCisgIDIwMTktMDYtMTE6IERhdmlkIEdpcmF1bHQsIEdpdXNlcHBlIE1vZHVnbm8KKyAgKiBhcHBzL21xdHQ6IG11bHRpcGxlIGZpeGVzIGZvciBtcXR0CisKKyAgMjAxOS0wNS0xOTogSm9hbiBMbGVkw7MKKyAgKiBOZXcgZnVuY3Rpb24gdGNwaXBfY2FsbGJhY2tfd2FpdCgpCisgICAgQ2FsbCBhIGZ1bmN0aW9uIGluc2lkZSB0aGUgdGNwaXAgdGhyZWFkIGFuZCBibG9jayB0aGUgY2FsbGluZyB0aHJlYWQgdW50aWwKKyAgICB0aGUgY2FsbGJhY2sgZmluaXNoZXMKKworICAyMDE4LTA4LTE1OiBKYXNwZXIgVmVyc2NodWVyZW4sIERhdmlkIEdpcmF1bHQsIE91ciBBaXIgUXVhbGl0eQorICAqIGFwcHMvbWRuczogZ3JlYXRseSBpbXByb3ZlZCB0aGUgbWRucyBjbGllbnQKKwogKFNUQUJMRS0yLjEuMik6CiAKICAgKysgQnVnZml4ZXM6CkBAIC0xNzcsNyArMjY0LDcgQEAKIAogICAyMDE3LTAxLTIwOiBKb2VsIEN1bm5pbmdoYW0KICAgKiBzb2NrZXRzOiBhZGQgaW50ZXJmYWNlIG5hbWUvaW5kZXggQVBJcyAodGFzayAjMTQzMTQpCi0gIAorCiAgIDIwMTctMDEtMDg6IERhdmlkIHZhbiBNb29sZW5icm9lawogICAqIEV4dGVuc2lvbnMgdG8gUkFXIEFQSSAocGF0Y2ggIzkyMDgpCiAgICAgLSBDb25uZWN0ZWQgUkFXIFBDQnMKQEAgLTI2Niw3ICszNTMsNyBAQAogCiAgIDIwMTctMDgtMDI6IEFicm96IEJpemphay9TaW1vbiBHb2xkc2NobWlkdAogICAqIG11bHRpcGxlIGZpeGVzIGluIElQdjQgcmVhc3NlbWJseSAobGVhZGluZyB0byBjb3JydXB0ZWQgZGF0YWdyYW1zIHJlY2VpdmVkKQotICAKKwogICAyMDE3LTAzLTMwOiBTaW1vbiBHb2xkc2NobWlkdAogICAqIGRoY3AuYzogcmV0dXJuIEVSUl9WQUwgaW5zdGVhZCBvZiBhc3NlcnRpbmcgb24gb2Zmc2V0LW91dC1vZi1wYnVmCiAKQEAgLTQxMSw3ICs0OTgsNyBAQAogCiAgIDIwMTYtMTEtMTQ6IEpvZWwgQ3VubmluZ2hhbQogICAqIHRjcF9vdXQuYzogZml4ZWQgYnVnICM0OTUzMyAoc3RhcnQgcGVyc2lzdCB0aW1lciB3aGVuIHVuc2VudCBzZWcgY2FuJ3QgZml0Ci0gICAgaW4gd2luZG93KSAKKyAgICBpbiB3aW5kb3cpCiAKICAgMjAxNi0xMS0xNjogUm9iZXJ0byBCYXJiaWVyaSBDYXJyZXJhCiAgICogYXV0b2lwLmM6IGZpeGVkIGJ1ZyAjNDk2MTAgKHNvbWV0aW1lcyBBdXRvSVAgZmFpbHMgdG8gcmV1c2UgdGhlIHNhbWUgYWRkcmVzcykKQEAgLTY4Niw3ICs3NzMsNyBAQAogICAgICAgaW1wbGVtZW50YXRpb24gd2hpY2ggaXMgdW5kZXIgYSBCU0QtaXNoIGxpY2Vuc2UuCiAgICAgLSBBbHNvIHN3aXRjaGVkIHRvIFBvbGFyU1NMIE1ENCxNRDUsU0hBMSBpbXBsZW1lbnRhdGlvbnMsIHdoaWNoIGFyZSBtZWFudCB0byBiZQogICAgICAgdXNlZCBpbiBlbWJlZGRlZCBkZXZpY2VzIHdpdGggcmVkdWNlZCBtZW1vcnkgZm9vdHByaW50LgotICAgIC0gUmVtb3ZlZCBQUFAgY29uZmlndXJhdGlvbiBmaWxlIHBhcnNpbmcgc3VwcG9ydC4gCisgICAgLSBSZW1vdmVkIFBQUCBjb25maWd1cmF0aW9uIGZpbGUgcGFyc2luZyBzdXBwb3J0LgogICAgIC0gQWRkZWQgbWFjcm8gZGVmaW5pdGlvbiBFQVBfU1VQUE9SVCB0byBtYWtlIEVBUCBzdXBwb3J0IG9wdGlvbmFsLgogICAgIC0gQWRkZWQgbWFjcm8gZGVmaW5pdGlvbiBDSEFQX1NVUFBPUlQgdG8gbWFrZSBDSEFQIHN1cHBvcnQgb3B0aW9uYWwuCiAgICAgLSBBZGRlZCBtYWNybyBkZWZpbml0aW9uIE1TQ0hBUF9TVVBQT1JUIHRvIG1ha2UgTVNDSEFQIHN1cHBvcnQgb3B0aW9uYWwuCkBAIC0xMjE4LDcgKzEzMDUsNyBAQAogICAyMDEyLTAzLTI1OiBTaW1vbiBHb2xkc2NobWlkdCAoaWRlYSBieSBNYXNvbikKICAgKiBwb3NpeC8qOiBhZGRlZCBwb3NpeC1jb21wYXRpYmlsaXR5IGluY2x1ZGUgZmlsZXMgcG9zaXgvbmV0ZGIuaCBhbmQgcG9zaXgvc3lzL3NvY2tldC5oCiAgICAgd2hpY2ggYXJlIGEgc2ltcGxlIHdyYXBwZXIgdG8gdGhlIGNvcnJlY3QgbHdJUCBpbmNsdWRlIGZpbGVzLgotIAorCiAgIDIwMTItMDEtMTY6IFNpbW9uIEdvbGRzY2htaWR0CiAgICogb3B0LmgsIGljbXAuYzogQWRkZWQgb3B0aW9uIENIRUNLU1VNX0dFTl9JQ01QCiAKQEAgLTEzMDAsMTAgKzEzODcsMTAgQEAKIAogICAyMDEyLTAzLTIyOiBTaW1vbiBHb2xkc2NobWlkdAogICAqIGlwNC5jOiBmaXhlZCBidWcgIzM1OTI3OiBtaXNzaW5nIHJlZnJhZ21lbnRhaW9uIGluIGlwX2ZvcndhcmQKLSAKKwogICAyMDEyLTAzLTIwOiBTaW1vbiBHb2xkc2NobWlkdCAocGF0Y2ggYnkgTWFzb24pCiAgICogbmV0ZGIuYzogZml4ZWQgYnVnICMzNTkwNzogbHdpcF9nZXRob3N0YnluYW1lX3IgcmV0dXJucyBhbiBpbnZhbGlkIGhfYWRkcl9saXN0Ci0gCisKICAgMjAxMi0wMy0xMjogU2ltb24gR29sZHNjaG1pZHQgKHBhdGNoIGJ5IEJvc3RqYW4gTWVnbGljKQogICAqIHBwcC5jOiBmaXhlZCBidWcgIzM1ODA5OiBQUFAgR2V0TWFzaygpOiBDb21waWxlciB3YXJuaW5nIG9uIGJpZyBlbmRpYW4sCiAgICAgcG9zc2libGUgYnVnIG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtCkBAIC0xNzU4LDcgKzE4NDUsNyBAQAogICAyMDExLTAzLTI3OiBTaW1vbiBHb2xkc2NobWlkdAogICAqIHNvY2tldHMuYzogRml4ZWQgYnVnICMzMjkwNjogbHdpcF9jb25uZWN0K2x3aXBfc2VuZCBkaWQgbm90IHdvcmsgZm9yIHVkcCBhbmQKICAgICByYXcgcGNicyB3aXRoIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HPT0xLgotICAKKwogICAyMDExLTAzLTI3OiBTaW1vbiBHb2xkc2NobWlkdAogICAqIHRjcF9vdXQuYzogRml4ZWQgYnVnICMzMjgyMCAoT3V0Z29pbmcgVENQIGNvbm5lY3Rpb25zIGNyZWF0ZWQgYmVmb3JlIHJvdXRlCiAgICAgaXMgcHJlc2VudCBuZXZlciB0aW1lcyBvdXQpIGJ5IHN0YXJ0aW5nIHJldHJhbnNtaXNzaW9uIHRpbWVyIGJlZm9yZSBjaGVja2luZwpAQCAtMTgxMSw3ICsxODk4LDcgQEAKICAgMjAxMC0xMS0yMzogU2ltb24gR29sZHNjaG1pZHQKICAgKiB0Y3BfaW4uYzogRml4ZWQgYnVnICMzMDU3NzogdGNwX2lucHV0OiBkb24ndCBkaXNjYXJkIEFDSy1vbmx5IHBhY2tldHMgYWZ0ZXIKICAgICByZWZ1c2luZyAncmVmdXNlZF9kYXRhJyBhZ2Fpbi4KLSAgCisKICAgMjAxMC0xMS0yMjogU2ltb24gR29sZHNjaG1pZHQKICAgKiBzb2NrZXRzLmM6IEZpeGVkIGJ1ZyAjMzE1OTA6IGdldHNvY2tvcHQoLi4uIFNPX0VSUk9SIC4uLikgZ2l2ZXMgRUlOUFJPR1JFU1MKICAgICBhZnRlciBhIHN1Y2Nlc3NmdWwgbm9uYmxvY2tpbmcgY29ubmVjdGlvbi4KQEAgLTE4NTYsMjEgKzE5NDMsMjEgQEAKICAgMjAxMC0wOC0wMTogU2ltb24gR29sZHNjaG1pZHQgKHBhdGNoIGJ5IEdyZWcgUmVuZGEpCiAgICogcHBwLmM6IEFwcGxpZWQgcGF0Y2ggIzcyNjQgKFBQUCBwcm90b2NvbHMgYXJlIHJlamVjdGVkIGluY29ycmVjdGx5IG9uIGJpZwogICAgIGVuZGlhbiBhcmNoaXRlY3R1cmVzKQotICAKKwogICAyMDEwLTA3LTI4OiBTaW1vbiBHb2xkc2NobWlkdAogICAqIGFwaV9saWIuYywgYXBpX21zZy5jLCBzb2NrZXRzLmMsIG1pYjIuYzogRml4ZWQgY29tcGlsYXRpb24gd2l0aCBUQ1Agb3IgVURQCiAgICAgZGlzYWJsZWQuCi0gIAorCiAgIDIwMTAtMDctMjc6IFNpbW9uIEdvbGRzY2htaWR0CiAgICogdGNwLmM6IEZpeGVkIGJ1ZyAjMzA1NjUgKHRjcF9jb25uZWN0KCkgY2hlY2sgYm91bmQgbGlzdCk6IHRoYXQgY2hlY2sgZGlkIG5vCiAgICAgaGFybSBidXQgbmV2ZXIgZGlkIGFueXRoaW5nCi0gIAorCiAgIDIwMTAtMDctMjE6IFNpbW9uIEdvbGRzY2htaWR0CiAgICogaXAuYzogRml4ZWQgaW52YWxpZCBmaXggZm9yIGJ1ZyAjMzA0MDIgKENIRUNLU1VNX0dFTl9JUF9JTkxJTkUgZG9lcyBub3QKICAgICBhZGQgSVAgb3B0aW9ucykKIAogICAyMDEwLTA3LTE2OiBLaWVyYW4gTWFuc2xleQotICAqIG1zZ19pbi5jOiBGaXhlZCBTTk1QIEFTTiBjb25zdGFudCBkZWZpbmVzIHRvIG5vdCB1c2UgISBvcGVyYXRvciAKKyAgKiBtc2dfaW4uYzogRml4ZWQgU05NUCBBU04gY29uc3RhbnQgZGVmaW5lcyB0byBub3QgdXNlICEgb3BlcmF0b3IKIAogICAyMDEwLTA3LTEwOiBTaW1vbiBHb2xkc2NobWlkdAogICAqIGlwLmM6IEZpeGVkIGJ1ZyAjMzA0MDI6IENIRUNLU1VNX0dFTl9JUF9JTkxJTkUgZG9lcyBub3QgYWRkIElQIG9wdGlvbnMKQEAgLTE5NzQsNyArMjA2MSw3IEBACiAKICAgMjAxMC0wMy0wNTogU2ltb24gR29sZHNjaG1pZHQKICAgKiBhcGlfbXNnLmM6IENvcnJlY3RseSBzZXQgVENQX1dSSVRFX0ZMQUdfTU9SRSB3aGVuIG5ldGNvbm5fd3JpdGUgaXMgc3BsaXQKLSAgICBpbnRvIG11bHRpcGxlIGNhbGxzIHRvIHRjcF93cml0ZS4gICAgCisgICAgaW50byBtdWx0aXBsZSBjYWxscyB0byB0Y3Bfd3JpdGUuCiAKICAgMjAxMC0wMi0yMTogU2ltb24gR29sZHNjaG1pZHQKICAgKiBvcHQuaCwgbWVtLmgsIGRucy5jOiB0YXNrICMxMDE0MDogUmVtb3ZlIEROU19VU0VTX1NUQVRJQ19CVUYgKGtlZXAKQEAgLTI0MzQsNyArMjUyMSw3IEBACiAgICAgc2VudCB0byBtYm94CiAKICAgMjAwOS0wNi0yNSBLaWVyYW4gTWFuc2xleQotICAqIGFwaV9tc2cuYyBhcGkuaDogQlVHMjY3MjI6IGluaXRpYWxpc2UgbmV0Y29ubiB3cml0ZSB2YXJpYWJsZXMgCisgICogYXBpX21zZy5jIGFwaS5oOiBCVUcyNjcyMjogaW5pdGlhbGlzZSBuZXRjb25uIHdyaXRlIHZhcmlhYmxlcwogICAgIGluIG5ldGNvbm5fYWxsb2MKIAogICAyMDA5LTA2LTI1IEtpZXJhbiBNYW5zbGV5CkBAIC0yNDQyLDcgKzI1MjksNyBAQAogCiAgIDIwMDktMDYtMjUgS2llcmFuIE1hbnNsZXkKICAgKiB0Y3AuYywgdGNwX2luLmMsIHRjcF9vdXQuYywgdGNwLmg6IEJVRzI2MzAxIGFuZCBCVUcyNjI2NzogY29ycmVjdAotICAgIHNpbXVsdGFuZW91cyBjbG9zZSBiZWhhdmlvdXIsIGFuZCBtYWtlIHNuZF9ueHQgaGF2ZSB0aGUgc2FtZSBtZWFuaW5nIAorICAgIHNpbXVsdGFuZW91cyBjbG9zZSBiZWhhdmlvdXIsIGFuZCBtYWtlIHNuZF9ueHQgaGF2ZSB0aGUgc2FtZSBtZWFuaW5nCiAgICAgYXMgaW4gdGhlIFJGQ3MuCiAKICAgMjAwOS0wNS0xMiBTaW1vbiBHb2xkc2NobWlkdApAQCAtMjU3OCw3ICsyNjY1LDcgQEAKICAgKiB0Y3AuYywgdGNwX2luLmMsIHRjcC5oOiBhZGQgdGNwX2FiYW5kb24oKSB0byBjb3BlIHdpdGggZHJvcHBpbmcKICAgICBjb25uZWN0aW9ucyB3aGVyZSBubyByZXNldCByZXF1aXJlZCAoYnVnICMyNTYyMikKIAotICAqIHRjcF9vdXQuYzogc2V0IFRDUF9BQ0sgZmxhZyBvbiBrZWVwYWxpdmUgYW5kIHplcm8gd2luZG93IHByb2JlcyAKKyAgKiB0Y3Bfb3V0LmM6IHNldCBUQ1BfQUNLIGZsYWcgb24ga2VlcGFsaXZlIGFuZCB6ZXJvIHdpbmRvdyBwcm9iZXMKICAgICAoYnVnICMyMDc3OSkKIAogICAyMDA5LTAyLTE4IFNpbW9uIEdvbGRzY2htaWR0IChKb25hdGhhbiBMYXJtb3VyIGFuZCBCaWxsIEF1ZXJiYWNoKQpAQCAtMjYxNCw3ICsyNzAxLDcgQEAKICAgICBvdXQgb2YgcG9vbCBwYnVmcy4KIAogICAyMDA4LTEyLTE5IFNpbW9uIEdvbGRzY2htaWR0Ci0gICogbWFueSBmaWxlczogcGF0Y2ggIzY2OTk6IGZpeGVkIHNvbWUgd2FybmluZ3Mgb24gcGxhdGZvcm0gd2hlcmUgc2l6ZW9mKGludCkgPT0gMiAKKyAgKiBtYW55IGZpbGVzOiBwYXRjaCAjNjY5OTogZml4ZWQgc29tZSB3YXJuaW5ncyBvbiBwbGF0Zm9ybSB3aGVyZSBzaXplb2YoaW50KSA9PSAyCiAKICAgMjAwOC0xMi0xMCBUYW1hcyBTb21vZ3lpLCBGcsOpZMOpcmljIEJlcm5vbgogICAqIHNvY2tldHMuYzogZml4ZWQgYnVnICMyNTA1MTogbHdpcF9yZWN2ZnJvbSBwcm9ibGVtIHdpdGggdWRwOiBmcm9tYWRkciBhbmQKQEAgLTI2OTksNyArMjc4Niw3IEBACiAgICAgbWFkZSBmcm9tIGx3aXBvcHRzLmguIEZpeCBjb21tZW50IG9uIGhvdyB0byBvdmVycmlkZSBMV0lQX0NIS1NVTS4KIAogICAyMDA4LTAxLTIyIEZyw6lkw6lyaWMgQmVybm9uCi0gICogdGNwLmMsIHRjcF9pbi5jLCB0Y3AuaCwgb3B0Lmg6IFJlbmFtZSBMV0lQX0NBTENVTEFURV9FRkZfU0VORF9NU1MgaW4gCisgICogdGNwLmMsIHRjcF9pbi5jLCB0Y3AuaCwgb3B0Lmg6IFJlbmFtZSBMV0lQX0NBTENVTEFURV9FRkZfU0VORF9NU1MgaW4KICAgICBUQ1BfQ0FMQ1VMQVRFX0VGRl9TRU5EX01TUyB0byBoYXZlIGNvaGVyZW50IFRDUCBvcHRpb25zIG5hbWVzLgogCiAgIDIwMDgtMDEtMTQgRnLDqWTDqXJpYyBCZXJub24KQEAgLTI3MDksNyArMjc5Niw3IEBACiAKICAgMjAwOC0wMS0xNCBGcsOpZMOpcmljIEJlcm5vbiwgTWFyYyBDaGFsYW5kCiAgICogaXAuYzogSW50ZWdyYXRlIHBhdGNoICM2MzY5IiBpcF9pbnB1dCA6IGNoZWNraW5nIGJlZm9yZSByZWFsbG9jIi4KLSAgCisKICAgMjAwOC0wMS0xMiBGcsOpZMOpcmljIEJlcm5vbgogICAqIHRjcGlwLmgsIHRjcGlwLmMsIGFwaS5oLCBhcGlfbGliLmMsIGFwaV9tc2cuYywgc29ja2V0cy5jOiByZXBsYWNlIHRoZSBmaWVsZAogICAgIG5ldGNvbm46OnNlbSBwZXIgbmV0Y29ubjo6b3BfY29tcGxldGVkIGxpa2Ugc3VnZ2VzdGVkIGZvciB0aGUgdGFzayAjNzQ5MApAQCAtMjczNSw4ICsyODIyLDggQEAKICAgICBJbnRyb2R1Y2UgY2hhbmdlcyBmb3IgdGFzayAjNzQ5MCAiQWRkIHJldHVybiB2YWx1ZSB0byBzeXNfbWJveF9wb3N0IiB3aXRoIHNvbWUKICAgICBtb2RpZmljYXRpb25zIGluIHRoZSBzeXNfbWJveCBhcGk6IHN5c19tYm94X25ldyB0YWtlIGEgInNpemUiIHBhcmFtZXRlcnMgd2hpY2gKICAgICBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIHBvaW50ZXJzIHF1ZXJ5IGJ5IHRoZSBtYWlsYm94LiBUaGVyZSBpcyB0aHJlZSBkZWZpbmVzCi0gICAgaW4gb3B0LmggdG8gaW5kaWNhdGUgc2l6ZXMgZm9yIHRjcGlwOjptYm94LCBuZXRjb25uOjpyZWN2bWJveCwgYW5kIGZvciB0aGUgCi0gICAgbmV0Y29ubjo6YWNjZXB0bWJveC4gUG9ydCBtYWludGFpbmVycywgeW91IGNhbiBkZWNpZGUgdG8ganVzdCBhZGQgdGhpcyBuZXcgCisgICAgaW4gb3B0LmggdG8gaW5kaWNhdGUgc2l6ZXMgZm9yIHRjcGlwOjptYm94LCBuZXRjb25uOjpyZWN2bWJveCwgYW5kIGZvciB0aGUKKyAgICBuZXRjb25uOjphY2NlcHRtYm94LiBQb3J0IG1haW50YWluZXJzLCB5b3UgY2FuIGRlY2lkZSB0byBqdXN0IGFkZCB0aGlzIG5ldwogICAgIHBhcmFtZXRlciBpbiB5b3VyIGltcGxlbWVudGF0aW9uLCBidXQgdG8gaWdub3JlIGl0IHRvIGtlZXAgdGhlIHByZXZpb3VzIGJlaGF2aW9yLgogICAgIFRoZSBuZXcgc3lzX21ib3hfdHJ5cG9zdCBmdW5jdGlvbiByZXR1cm4gYSB2YWx1ZSB0byBrbm93IGlmIHRoZSBtYWlsYm94IGlzCiAgICAgZnVsbCBvciBpZiB0aGUgbWVzc2FnZSBpcyBwb3N0ZWQuIFRha2UgYSBsb29rIHRvIHN5c19hcmNoLnR4dCBmb3IgbW9yZSBkZXRhaWxzLgpAQCAtMjg2MCw3ICsyOTQ3LDcgQEAKICAgICBOb3RlIHRoYXQgcHJldmlvdXMgImNvcHkiIHBhcmFtZXRlciBmb3IgIndyaXRlIiBBUElzIGlzIG5vdyBjYWxsZWQgImFwaWZsYWdzIi4KIAogICAyMDA3LTEwLTI0IEZyw6lkw6lyaWMgQmVybm9uCi0gICogYXBpLmgsIGFwaV9saWIuYywgYXBpX21zZy5jOiBBZGQgbWFjcm8gQVBJX0VWRU5UIGluIHRoZSBzYW1lIHNwaXJpdCB0aGFuIAorICAqIGFwaS5oLCBhcGlfbGliLmMsIGFwaV9tc2cuYzogQWRkIG1hY3JvIEFQSV9FVkVOVCBpbiB0aGUgc2FtZSBzcGlyaXQgdGhhbgogICAgIFRDUF9FVkVOVF94eHggbWFjcm9zIHRvIGdldCBhIGNvZGUgbW9yZSByZWFkYWJsZS4gSXQgY291bGQgYWxzbyBoZWxwIHRvIHJlbW92ZQogICAgIHNvbWUgY29kZSAobGlrZSB3ZSBoYXZlIHRhbGsgaW4gInBhdGNoICM1OTE5IDogQ3JlYXRlIGNvbXBpbGUgc3dpdGNoIHRvIHJlbW92ZQogICAgIHNlbGVjdCBjb2RlIiksIGJ1dCBpdCBjb3VsZCBiZSBkb25lIGxhdGVyLgpAQCAtMjg4MCw3ICsyOTY3LDcgQEAKICAgICBhbGwgbmV0aWZzIChvciBwb3J0cykgY2FuIHVzZSBpdC4KIAogICAyMDA3LTEwLTA1IEZyw6lkw6lyaWMgQmVybm9uCi0gICogbmV0aWZhcGkuaCwgbmV0aWZhcGkuYzogYWRkIGZ1bmN0aW9uIG5ldGlmYXBpX25ldGlmX3NldF9kZWZhdWx0LiBDaGFuZ2UgdGhlIAorICAqIG5ldGlmYXBpLmgsIG5ldGlmYXBpLmM6IGFkZCBmdW5jdGlvbiBuZXRpZmFwaV9uZXRpZl9zZXRfZGVmYXVsdC4gQ2hhbmdlIHRoZQogICAgIGNvbW1vbiBmdW5jdGlvbiB0byByZWR1Y2UgYSBsaXR0bGUgYml0IHRoZSBmb290cHJpbnQgKGZvciBhbGwgZnVuY3Rpb25zIHVzaW5nCiAgICAgb25seSB0aGUgIm5ldGlmIiBwYXJhbWV0ZXIpLgogCkBAIC0yOTA0LDcgKzI5OTEsNyBAQAogICAgIG9yIHNubXBfYWRkX3N5c3VwdGltZSgpLCBhbmQgdG8gZGVmaW5lIHRoZSBTTk1QX0dFVF9TWVNVUFRJTUUoc3lzdXB0aW1lKSBtYWNyby4KICAgICBUaGlzIG9uZSBpcyB1bmRlZmluZWQgYnkgZGVmYXVsdCBpbiBtaWIyLmMuIFNOTVBfR0VUX1NZU1VQVElNRSBpcyBjYWxsZWQgaW5zaWRlCiAgICAgc25tcF9nZXRfc3lzdXB0aW1lKHUzMl90ICp2YWx1ZSksIGFuZCBlbmFibGUgdG8gY2hhbmdlICJzeXN1cHRpbWUiIHZhbHVlIG9ubHkKLSAgICB3aGVuIGl0J3MgcXVlcmllZCAoYW55IGRpcmVjdCBjYWxsIHRvICJzeXN1cHRpbWUiIGlzIGNoYW5nZWQgYnkgYSBjYWxsIHRvIAorICAgIHdoZW4gaXQncyBxdWVyaWVkIChhbnkgZGlyZWN0IGNhbGwgdG8gInN5c3VwdGltZSIgaXMgY2hhbmdlZCBieSBhIGNhbGwgdG8KICAgICBzbm1wX2dldF9zeXN1cHRpbWUpLgogCiAgIDIwMDctMDktMDkgRnLDqWTDqXJpYyBCZXJub24sIEJpbGwgRmxvcmFjCkBAIC0yOTg1LDcgKzMwNzIsNyBAQAogICAyMDA3LTA4LTI2IE1hcmMgQm91Y2hlcgogICAqIGFwaV9tc2cuYzogZG9fY2xvc2VfaW50ZXJuYWwoKTogUmVzZXQgdGhlIGNhbGxiYWNrcyBhbmQgYXJnIChjb25uKSB0byBOVUxMCiAgICAgc2luY2UgdGhleSBjYW4gdW5kZXIgY2VydGFpbiBjaXJjdW1zdGFuY2VzIGJlIGNhbGxlZCB3aXRoIGFuIGludmFsaWQgY29ubgotICAgIHBvaW50ZXIgYWZ0ZXIgdGhlIGNvbm5lY3Rpb24gaGFzIGJlZW4gY2xvc2VkIChhbmQgY29ubiBoYXMgYmVlbiBmcmVlZCkuIAorICAgIHBvaW50ZXIgYWZ0ZXIgdGhlIGNvbm5lY3Rpb24gaGFzIGJlZW4gY2xvc2VkIChhbmQgY29ubiBoYXMgYmVlbiBmcmVlZCkuCiAKICAgMjAwNy0wOC0yNSBGcsOpZMOpcmljIEJlcm5vbiAoQXJ0ZW0gTWlnYWV2J3MgUGF0Y2gpCiAgICogbmV0aWYuaCwgbmV0aWYuYzogSW50ZWdyYXRlICJwYXRjaCAjNjE2MyA6IEZ1bmN0aW9uIHRvIGNoZWNrIGlmIGxpbmsgbGF5ZXIgaXMgdXAiLgpAQCAtMjk5NywxMSArMzA4NCwxMSBAQAogCiAgIDIwMDctMDgtMjIgRnLDqWTDqXJpYyBCZXJub24KICAgKiB0Y3BpcC5oLCB0Y3BpcC5jLCBldGhlcm5ldGlmLmMsIG9wdC5oOiByZW1vdmUgb3B0aW9ucyBFVEhBUlBfVENQSVBfSU5QVVQgJgotICAgIEVUSEFSUF9UQ1BJUF9FVEhJTlBVVCwgbm93LCBvbmx5ICJldGhpbnB1dCIgY29kZSBpcyBzdXBwb3J0ZWQsIGV2ZW4gaWYgdGhlIAorICAgIEVUSEFSUF9UQ1BJUF9FVEhJTlBVVCwgbm93LCBvbmx5ICJldGhpbnB1dCIgY29kZSBpcyBzdXBwb3J0ZWQsIGV2ZW4gaWYgdGhlCiAgICAgbmFtZSBpcyB0Y3BpcF9pbnB1dCAod2Uga2VlcCB0aGUgbmFtZSBvZiAxLjIuMCBmdW5jdGlvbikuCiAKICAgMjAwNy0wOC0xNyBKYXJlZCBHcnViYgotICAqIG1lbXBfc3RkLmgsIG1lbXAuaCwgbWVtcC5jLCBtZW0uYywgc3RhdHMuYzogKFRhc2sgIzcxMzYpIENlbnRyYWxpemUgbWVtcG9vbCAKKyAgKiBtZW1wX3N0ZC5oLCBtZW1wLmgsIG1lbXAuYywgbWVtLmMsIHN0YXRzLmM6IChUYXNrICM3MTM2KSBDZW50cmFsaXplIG1lbXBvb2wKICAgICBzZXR0aW5ncyBpbnRvIG5ldyBtZW1wX3N0ZC5oIGFuZCBvcHRpb25hbCB1c2VyIGZpbGUgbHdpcHBvb2xzLmguIFRoaXMgYWRkcwogICAgIG1vcmUgZHluYW1pYyBtZW1wb29scywgYW5kIGFsbG93cyB0aGUgdXNlciB0byBjcmVhdGUgYW4gYXJiaXRyYXJ5IG51bWJlciBvZgogICAgIG1lbXBvb2xzIGZvciBtZW1fbWFsbG9jLgpAQCAtMzIwOCwzMiArMzI5NSwzMiBAQAogICAgIHNubXBfc2V0X3N5c25hbWUuCiAKICAgMjAwNy0wMy0yOCBGcsOpZMOpcmljIEJlcm5vbgotICAqIG5ldGlmLmgsIG5ldGlmLmM6IEEgbmV3IE5FVElGX0ZMQUdfRVRIQVJQIGZsYWcgaXMgZGVmaW5lZCBpbiBuZXRpZi5oLCB0byBhbGxvdyB0byAKKyAgKiBuZXRpZi5oLCBuZXRpZi5jOiBBIG5ldyBORVRJRl9GTEFHX0VUSEFSUCBmbGFnIGlzIGRlZmluZWQgaW4gbmV0aWYuaCwgdG8gYWxsb3cgdG8KICAgICBpbml0aWFsaXplIGEgbmV0d29yayBpbnRlcmZhY2UncyBmbGFnIHdpdGguIEl0IHRlbGwgdGhpcyBpbnRlcmZhY2UgaXMgYW4gZXRoZXJuZXQKICAgICBkZXZpY2UsIGFuZCB3ZSBjYW4gdXNlIEFSUCB3aXRoIGl0IHRvIGRvIGEgImdyYXR1aXRvdXMgQVJQIiAoUkZDIDMyMjAgIklQIE1vYmlsaXR5CiAgICAgU3VwcG9ydCBmb3IgSVB2NCIgc2VjdGlvbiA0LjYpIHdoZW4gaW50ZXJmYWNlIGlzICJ1cCIgd2l0aCBuZXRpZl9zZXRfdXAoKS4KIAogICAyMDA3LTAzLTI2IEZyw6lkw6lyaWMgQmVybm9uLCBKb25hdGhhbiBMYXJtb3VyCiAgICogb3B0LmgsIHRjcGlwLmM6IE5ldyBjb25maWd1cmF0aW9uIG9wdGlvbiBMV0lQX0FSUCBhbGxvdyB0byBkaXNhYmxlIEFSUCBpbml0IGF0IGJ1aWxkCi0gICAgdGltZSBpZiB5b3Ugb25seSB1c2UgUFBQIG9yIFNMSVAuIFRoZSBkZWZhdWx0IGlzIGVuYWJsZS4gTm90ZSB3ZSBkb24ndCBoYXZlIHRvIGNhbGwgCisgICAgdGltZSBpZiB5b3Ugb25seSB1c2UgUFBQIG9yIFNMSVAuIFRoZSBkZWZhdWx0IGlzIGVuYWJsZS4gTm90ZSB3ZSBkb24ndCBoYXZlIHRvIGNhbGwKICAgICBldGhhcnBfaW5pdCBpbiB5b3VyIHBvcnQncyBpbml0aWxpemF0aW9uIHNlcXVlbmNlIGlmIHlvdSB1c2UgdGNwaXAuYywgYmVjYXVzZSB0aGlzIGNhbGwKICAgICBpcyBkb25lIGluIHRjcGlwX2luaXQgZnVuY3Rpb24uCiAKICAgMjAwNy0wMy0yMiBGcsOpZMOpcmljIEJlcm5vbgogICAqIHN0YXRzLmgsIHN0YXRzLmMsIG1zZ19pbi5jOiBTdGF0cyBjb3VudGVycyBjYW4gYmUgY2hhbmdlIHRvIHUzMl90IGlmIG5lY2Vzc2FyeSB3aXRoIHRoZQogICAgIG5ldyBvcHRpb24gTFdJUF9TVEFUU19MQVJHRS4gSWYgeW91IG5lZWQgdGhpcyBvcHRpb24sIGRlZmluZSBMV0lQX1NUQVRTX0xBUkdFIHRvIDEgaW4KLSAgICB5b3VyIGx3aXBvcHRzLmguIE1vcmUsIHVudXNlZCBjb3VudGVycyBhcmUgbm90IGRlZmluZWQgaW4gdGhlIHN0YXRzIHN0cnVjdHMsIGFuZCBub3QgCisgICAgeW91ciBsd2lwb3B0cy5oLiBNb3JlLCB1bnVzZWQgY291bnRlcnMgYXJlIG5vdCBkZWZpbmVkIGluIHRoZSBzdGF0cyBzdHJ1Y3RzLCBhbmQgbm90CiAgICAgZGlzcGxheSBieSBzdGF0c19kaXNwbGF5KCkuIE5vdGUgdGhhdCBzb21lIG9wdGlvbnMgKFNZU19TVEFUUyBhbmQgUkFXX1NUQVRTKSBhcmUgZGVmaW5lZAogICAgIGJ1dCBuZXZlciB1c2VkLiBGaXggbXNnX2luLmMgd2l0aCB0aGUgY29ycmVjdCAjaWYgdGVzdCBmb3IgYSBzdGF0IGRpc3BsYXkuCiAKICAgMjAwNy0wMy0yMSBLaWVyYW4gTWFuc2xleQotICAqIG5ldGlmLmMsIG5ldGlmLmg6IEFwcGx5IHBhdGNoIzQxOTcgd2l0aCBzb21lIGNoYW5nZXMgKG9yaWdpbmF0b3I6IHJpcmVsYW5kQGhtZ3NsLmNvbSkuIAorICAqIG5ldGlmLmMsIG5ldGlmLmg6IEFwcGx5IHBhdGNoIzQxOTcgd2l0aCBzb21lIGNoYW5nZXMgKG9yaWdpbmF0b3I6IHJpcmVsYW5kQGhtZ3NsLmNvbSkuCiAgICAgUHJvdmlkZXMgY2FsbGJhY2sgb24gbmV0aWYgdXAvZG93biBzdGF0ZSBjaGFuZ2UuCiAKICAgMjAwNy0wMy0xMSBGcsOpZMOpcmljIEJlcm5vbiwgTWFjZSBHYWVsLCBTdGV2ZSBSZXlub2xkcwogICAqIHNvY2tldHMuaCwgc29ja2V0cy5jLCBhcGkuaCwgYXBpX2xpYi5jLCBhcGlfbXNnLmgsIGFwaV9tc2cuYywgaWdtcC5oLCBpZ21wLmMsCiAgICAgaXAuYywgbmV0aWYuaCwgdGNwaXAuYywgb3B0Lmg6Ci0gICAgTmV3IGNvbmZpZ3VyYXRpb24gb3B0aW9uIExXSVBfSUdNUCB0byBlbmFibGUgSUdNUCBwcm9jZXNzaW5nLiBCYXNlZCBvbiBvbmx5IG9uZSAKKyAgICBOZXcgY29uZmlndXJhdGlvbiBvcHRpb24gTFdJUF9JR01QIHRvIGVuYWJsZSBJR01QIHByb2Nlc3NpbmcuIEJhc2VkIG9uIG9ubHkgb25lCiAgICAgZmlsdGVyIHBlciBhbGwgbmV0d29yayBpbnRlcmZhY2VzLiBEZWNsYXJlIGEgbmV3IGZ1bmN0aW9uIGluIG5ldGlmIHRvIGVuYWJsZSB0bwogICAgIGNvbnRyb2wgdGhlIE1BQyBmaWx0ZXIgKHRvIHJlZHVjZSBsd0lQIHRyYWZmaWMgcHJvY2Vzc2luZykuCiAKQEAgLTMyNTYsNyArMzM0Myw3IEBACiAgICogc25tcF9tc2cuaCwgbXNnX2luLmM6IFNOTVAgVURQIHBvcnRzIGNhbiBiZSBjb25maWd1cmVkIGF0IGNvbXBpbGUgdGltZS4KIAogICAyMDA3LTAzLTA2IEZyw6lkw6lyaWMgQmVybm9uCi0gICogYXBpLmgsIGFwaV9saWIuYywgc29ja2V0cy5oLCBzb2NrZXRzLmMsIHRjcGlwLmMsIHN5cy5oLCBzeXMuYywgZXJyLmg6IAorICAqIGFwaS5oLCBhcGlfbGliLmMsIHNvY2tldHMuaCwgc29ja2V0cy5jLCB0Y3BpcC5jLCBzeXMuaCwgc3lzLmMsIGVyci5oOgogICAgIEltcGxlbWVudCBTT19SQ1ZUSU1FTyBvbiBVRFAgc29ja2V0cy9uZXRjb25uLgogCiAgIDIwMDctMDItMjggS2llcmFuIE1hbnNsZXkgKGJhc2VkIG9uIHBhdGNoIGZyb20gU2ltb24gR29sZHNjaG1pZHQpCkBAIC0zMjk4LDcgKzMzODUsNyBAQAogICBhbmQvb3Igd2FybmluZ3Mgb24gc29tZSBzeXN0ZW1zIHdoZXJlIG1lbV9zaXplX3QgYW5kIHNpemVfdCBkaWZmZXIuCiAgICogcGJ1Zi5jLCBwcHAuYzogRml4IHdhcm5pbmdzIG9uIHNvbWUgc3lzdGVtcyB3aXRoIG1lbV9tYWxsb2MuCiAKLSAgMjAwOC0wMy0wNCBLaWVyYW4gTWFuc2xleSAoY29udHJpYnV0aW9ucyBieSBvdGhlcnMpIAorICAyMDA4LTAzLTA0IEtpZXJhbiBNYW5zbGV5IChjb250cmlidXRpb25zIGJ5IG90aGVycykKICAgKiBOdW1lcm91cyBzbWFsbCBjb21waWxlciBlcnJvci93YXJuaW5nIGZpeGVzIGZyb20gY29udHJpYnV0aW9ucyB0bwogICAgIG1haWxpbmcgbGlzdCBhZnRlciAxLjMuMCByZWxlYXNlIGNhbmRpZGF0ZSBtYWRlLgogCkBAIC0zNDE1LDcgKzM1MDIsNyBAQAogICAgIHR5cGUgY2hhbmdlLiBBbnkgY29tcGlsZXIgc2hvdWxkIGNhdXNlIGFuIGVycm9yIHdpdGhvdXQgYW55IGNoYW5nZXMgaW4KICAgICB5b3VycyBuZXRjb25uX3BlZXIgY2FsbHMgKHNvLCBpdCBjYW4ndCBiZSBhICJzaWxlbnQgY2hhbmdlIikuIEl0IGFsc28KICAgICByZWR1Y2UgYSBsaXR0bGUgYml0IHRoZSBmb290cHJpbnQgZm9yIHNvY2tldCBsYXllciAobHdpcF9nZXRwZWVybmFtZSAmCi0gICAgbHdpcF9nZXRzb2NrbmFtZSB1c2Ugbm93IGEgY29tbW9uIGx3aXBfZ2V0YWRkcm5hbWUgZnVuY3Rpb24gc2luY2UgCisgICAgbHdpcF9nZXRzb2NrbmFtZSB1c2Ugbm93IGEgY29tbW9uIGx3aXBfZ2V0YWRkcm5hbWUgZnVuY3Rpb24gc2luY2UKICAgICBuZXRjb25uX3BlZXIgJiBuZXRjb25uX2FkZHIgaGF2ZSB0aGUgc2FtZSBwYXJhbWV0ZXJzKS4KIAogICAyMDA3LTA5LTIwIFNpbW9uIEdvbGRzY2htaWR0CkBAIC0zNDM1LDEzICszNTIyLDEzIEBACiAgICAgaWYgdGhleSBhcmUgbm90IGRlZmluZWQgaW4gY2MuaCwgaW4gdGhlIHNhbWUgc3Bpcml0IHRoYW4gImx3aXAvb3B0LmgiIGZvciBsd2lwb3B0cy5oLgogCiAgIDIwMDctMDgtMzAgRnLDqWTDqXJpYyBCZXJub24KLSAgKiBpZ21wLmgsIGlnbXAuYzogU29tZSBjaGFuZ2VzIHRvIHJlbW92ZSBzb21lIHJlZHVuZGFudCBjb2RlLCBhZGQgc29tZSB0cmFjZXMsIAorICAqIGlnbXAuaCwgaWdtcC5jOiBTb21lIGNoYW5nZXMgdG8gcmVtb3ZlIHNvbWUgcmVkdW5kYW50IGNvZGUsIGFkZCBzb21lIHRyYWNlcywKICAgICBhbmQgZml4IHNvbWUgY29kaW5nIHN0eWxlLgogCiAgIDIwMDctMDgtMjggRnLDqWTDqXJpYyBCZXJub24KICAgKiB0Y3BpcC5jOiBGaXggVENQSVBfTVNHX0lOUEtUIHByb2Nlc3Npbmc6IG5vdywgdGNwaXBfaW5wdXQgY2FuIGJlIHVzZWQgZm9yIGFueQotICAgIGtpbmQgb2YgcGFja2V0cy4gVGhlc2UgcGFja2V0cyBhcmUgY29uc2lkZXJlZCBsaWtlIEV0aGVybmV0IHBhY2tldHMgKHBheWxvYWQgCi0gICAgcG9pbnRpbmcgdG8gZXRoaGRyKSBpZiB0aGUgbmV0aWYgZ290IHRoZSBORVRJRl9GTEFHX0VUSEFSUCBmbGFnLiBFbHNlLCBwYWNrZXRzIAorICAgIGtpbmQgb2YgcGFja2V0cy4gVGhlc2UgcGFja2V0cyBhcmUgY29uc2lkZXJlZCBsaWtlIEV0aGVybmV0IHBhY2tldHMgKHBheWxvYWQKKyAgICBwb2ludGluZyB0byBldGhoZHIpIGlmIHRoZSBuZXRpZiBnb3QgdGhlIE5FVElGX0ZMQUdfRVRIQVJQIGZsYWcuIEVsc2UsIHBhY2tldHMKICAgICBhcmUgY29uc2lkZXJlZCBsaWtlIElQIHBhY2tldHMgKHBheWxvYWQgcG9pbnRpbmcgdG8gaXBoZHIpLgogCiAgIDIwMDctMDgtMjcgRnLDqWTDqXJpYyBCZXJub24KQEAgLTM1MzksNyArMzYyNiw3IEBACiAgIDIwMDctMDYtMjggRnLDqWTDqXJpYyBCZXJub24KICAgKiBuZXRpZmFwaS5oLCBuZXRpZmFwaS5jLCB0Y3BpcC5oLCB0Y3BpcC5jOiBVcGRhdGUgY29kZSB0byBoYW5kbGUgdGhlIG9wdGlvbgogICAgIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HLCBhbmQgZG8gc29tZSBjaGFuZ2VzIHRvIGJlIGNvaGVyZW50IHdpdGggbGFzdCBtb2RpZmljYXRpb25zCi0gICAgaW4gYXBpX2xpYi9hcGlfbXNnICh1c2UgcG9pbnRlcnMgYW5kIG5vdCB0eXBlIHdpdGggdGFibGUsIGV0Yy4uLikgCisgICAgaW4gYXBpX2xpYi9hcGlfbXNnICh1c2UgcG9pbnRlcnMgYW5kIG5vdCB0eXBlIHdpdGggdGFibGUsIGV0Yy4uLikKIAogICAyMDA3LTA2LTI2IFNpbW9uIEdvbGRzY2htaWR0CiAgICogdWRwLmg6IEZpeGVkIGJ1ZyAjMjAyNTk6IHN0cnVjdCB1ZHBfaGRyIHdhcyBsYWNraW5nIHRoZSBwYWNraW4gZGVmaW5lcy4KQEAgLTM2NDEsNyArMzcyOCw3IEBACiAKICAgMjAwNy0wNS0xNiBGcsOpZMOpcmljIEJlcm5vbgogICAqIHRjcGlwLmMsIGlnbXAuaCwgaWdtcC5jOiBGaXhlZCBidWcgIiMxOTgwMCA6IElHTVA6IGlnbXBfdGljaygpIHdpbGwgbm90IHdvcmsKLSAgICB3aXRoIE5PX1NZUz0xIi4gTm90ZSB0aGF0IGlnbXBfaW5pdCBpcyBhbHdheXMgaW4gdGNwaXBfdGhyZWFkIChhbmQgbm90IGluIAorICAgIHdpdGggTk9fU1lTPTEiLiBOb3RlIHRoYXQgaWdtcF9pbml0IGlzIGFsd2F5cyBpbiB0Y3BpcF90aHJlYWQgKGFuZCBub3QgaW4KICAgICB0Y3BpcF9pbml0KSBiZWNhdXNlIHdlIGhhdmUgdG8gYmUgc3VyZSB0aGF0IG5ldHdvcmsgaW50ZXJmYWNlcyBhcmUgYWxyZWFkeQogICAgIGFkZGVkIChtYWMgZmlsdGVyIGlzIHVwZGF0ZWQgb25seSBpbiBpZ21wX2luaXQgZm9yIHRoZSBtb21lbnQpLgogCkBAIC0zNzg4LDcgKzM4NzUsNyBAQAogCiAgIDIwMDctMDMtMjAgRnLDqWTDqXJpYyBCZXJub24KICAgKiB0Y3BpcC5jOiBJbml0aWFsaXplIHRjcGlwJ3MgbWJveCwgYW5kIHZlcmlmeSBpZiBpbml0aWFsaXplZCBpbiB0Y3BpcF9pbnB1dCwKLSAgICB0Y3BpcF9ldGhpbnB1dCwgdGNwaXBfY2FsbGJhY2ssIHRjcGlwX2FwaW1zZywgdG8gZml4IGEgaW5pdCBwcm9ibGVtIHdpdGggCisgICAgdGNwaXBfZXRoaW5wdXQsIHRjcGlwX2NhbGxiYWNrLCB0Y3BpcF9hcGltc2csIHRvIGZpeCBhIGluaXQgcHJvYmxlbSB3aXRoCiAgICAgbmV0d29yayBpbnRlcmZhY2VzLiBBbHNvIGZpeCBhIGNvbXBpbGVyIHdhcm5pbmcuCiAKICAgMjAwNy0wMy0yMCBLaWVyYW4gTWFuc2xleQpAQCAtMzg4MCwxMyArMzk2NywxMyBAQAogICAqIHJhd2FwaS50eHQ6IEZpeCBkb2N1bWVudGF0aW9uIG1pc21hdGNoIHdpdGggZXRoYXJwLmggYWJvdXQgZXRoYXJwX3RtcidzIGNhbGwKICAgICBpbnRlcnZhbC4KIAotICAyMDA3LTAyLTI4IEtpZXJhbiBNYW5zbGV5IAorICAyMDA3LTAyLTI4IEtpZXJhbiBNYW5zbGV5CiAgICogcGJ1Zi5jOiBGaXggQlVHIzE3NjQ1IC0gZW5zdXJlIHBidWYgcGF5bG9hZCBwb2ludGVyIGlzIG5vdCBtb3ZlZAogICAgIG91dHNpZGUgdGhlIHJlZ2lvbiBvZiB0aGUgcGJ1ZiBieSBwYnVmX2hlYWRlcigpCiAKLSAgMjAwNy0wMi0yOCBLaWVyYW4gTWFuc2xleSAKKyAgMjAwNy0wMi0yOCBLaWVyYW4gTWFuc2xleQogICAqIHNvY2tldHMuYzogRml4IEJVRyMxOTE2MSAtIGVuc3VyZSBtaWxsaXNlY29uZHMgdGltZW91dCBpcyBub24temVybwotICAgIHdoZW4gc3VwcGxpZWQgdGltZW91dCBpcyBhbHNvIG5vbi16ZXJvIAorICAgIHdoZW4gc3VwcGxpZWQgdGltZW91dCBpcyBhbHNvIG5vbi16ZXJvCiAKIChTVEFCTEUtMS4yLjApCiAKQEAgLTM5NzAsNyArNDA1Nyw3IEBACiAgICAgaW4gYWNjZXB0KCkgYnkgS2V2aW4gTGF3c29uLgogCiAgIDIwMDYtMDUtMjYgQ2hyaXN0aWFhbiBTaW1vbnMKLSAgKiBhcGlfbGliLmM6IFJlbW92ZWQgY29ubi0+c2VtIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbiAKKyAgKiBhcGlfbGliLmM6IFJlbW92ZWQgY29ubi0+c2VtIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbgogICAgIGZyb20gbmV0Y29ubl93cml0ZSgpIGFuZCBhZGRlZCBzeXNfc2VtX25ldyB0byBuZXRjb25uX25ld18qLgogCiAoU1RBQkxFLTFfMV8xKQpAQCAtNDA0MCw3ICs0MTI3LDcgQEAKICAgKiBkaGNwLmM6IERlY2xpbmUgbWVzc2FnZXMgd2VyZSBub3QgbXVsdGljYXN0IGJ1dCB1bmljYXN0LgogICAqIGV0aGFycC5jOiBFVEhBUlBfQ1JFQVRFIGlzIHJlbmFtZWQgdG8gRVRIQVJQX1RSWV9IQVJELgogICAgIERvIG5vdCB0cnkgaGFyZCB0byBpbnNlcnQgYXJiaXRyYXJ5IHBhY2tldCdzIHNvdXJjZSBhZGRyZXNzLAotICAgIGV0aGFycF9pcF9pbnB1dCgpIG5vdyBjYWxscyBldGhhcnBfdXBkYXRlKCkgd2l0aG91dCBFVEhBUlBfVFJZX0hBUkQuIAorICAgIGV0aGFycF9pcF9pbnB1dCgpIG5vdyBjYWxscyBldGhhcnBfdXBkYXRlKCkgd2l0aG91dCBFVEhBUlBfVFJZX0hBUkQuCiAgICAgZXRoYXJwX3F1ZXJ5KCkgbm93IGFsd2F5cyBET0VTIGNhbGwgRVRIQVJQX1RSWV9IQVJEIHNvIHRoYXQgdXNlcnMKICAgICBxdWVyeWluZyBhbiBhZGRyZXNzIHdpbGwgc2VlIGl0IGFwcGVhciBpbiB0aGUgY2FjaGUgKERIQ1AgY291bGQKICAgICBzdWZmZXIgZnJvbSB0aGlzIHdoZW4gYSBzZXJ2ZXIgaW52YWxpZGx5IGdhdmUgYW4gaW4tdXNlIGFkZHJlc3MuKQpkaWZmIC0tZ2l0IGEvQ01ha2VMaXN0cy50eHQgYi9DTWFrZUxpc3RzLnR4dAppbmRleCBmMDVjMGY2Li41NWZjNDRhIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFrZUxpc3RzLnR4dApAQCAtMSwxMSArMSwyMyBAQAotY21ha2VfbWluaW11bV9yZXF1aXJlZChWRVJTSU9OIDMuNykKK2NtYWtlX21pbmltdW1fcmVxdWlyZWQoVkVSU0lPTiAzLjEwKQorCitzZXQgKENNQUtFX0NPTkZJR1VSQVRJT05fVFlQRVMgIkRlYnVnO1JlbGVhc2UiKQogCiBwcm9qZWN0KGx3SVApCiAKKyMgRXhhbXBsZSBsd0lQIGFwcGxpY2F0aW9uCiBzZXQoTFdJUF9ESVIgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9KQotaW5jbHVkZShzcmMvRmlsZWxpc3RzLmNtYWtlKQogCi0jIFBhY2thZ2UgZ2VuZXJhdGlvbgorc2V0IChMV0lQX0RFRklOSVRJT05TIExXSVBfREVCVUc9MSkKKworaWYgKCR7Q01BS0VfU1lTVEVNX05BTUV9IFNUUkVRVUFMICJXaW5kb3dzIikKKyAgYWRkX3N1YmRpcmVjdG9yeSgke0xXSVBfRElSfS9jb250cmliL3BvcnRzL3dpbjMyL2V4YW1wbGVfYXBwKQorZWxzZWlmKCR7Q01BS0VfU1lTVEVNX05BTUV9IFNUUkVRVUFMICJMaW51eCIgT1IgJHtDTUFLRV9TWVNURU1fTkFNRX0gU1RSRVFVQUwgIkRhcndpbiIpCisgIGFkZF9zdWJkaXJlY3RvcnkoJHtMV0lQX0RJUn0vY29udHJpYi9wb3J0cy91bml4L2V4YW1wbGVfYXBwKQorZWxzZSgpCisgIG1lc3NhZ2UoV0FSTklORyAiSG9zdCAke0NNQUtFX1NZU1RFTV9OQU1FfSBpcyBub3Qgc3VwcG9ydGVkIHRvIGJ1aWxkIGV4YW1wbGVfYXBwIikKK2VuZGlmKCkKKworIyBTb3VyY2UgcGFja2FnZSBnZW5lcmF0aW9uCiBzZXQoQ1BBQ0tfU09VUkNFX0dFTkVSQVRPUiAiWklQIikKIHNldChDUEFDS19TT1VSQ0VfUEFDS0FHRV9ERVNDUklQVElPTl9TVU1NQVJZICJsd0lQIGxpZ2h0d2VpZ2h0IElQIHN0YWNrIikKIHNldChDUEFDS19QQUNLQUdFX1ZFUlNJT05fTUFKT1IgIiR7TFdJUF9WRVJTSU9OX01BSk9SfSIpCkBAIC0xNSw2ICsyNyw5IEBACiBzZXQoQ1BBQ0tfU09VUkNFX1BBQ0tBR0VfRklMRV9OQU1FICJsd2lwLSR7TFdJUF9WRVJTSU9OX01BSk9SfS4ke0xXSVBfVkVSU0lPTl9NSU5PUn0uJHtMV0lQX1ZFUlNJT05fUkVWSVNJT059IikKIGluY2x1ZGUoQ1BhY2spCiAKLSMgVGFyZ2V0IGZvciBwYWNrYWdlIGdlbmVyYXRpb24KKyMgR2VuZXJhdGUgZG9jcyBiZWZvcmUgY3JlYXRpbmcgc291cmNlIHBhY2thZ2UKK2luY2x1ZGUoc3JjL0ZpbGVsaXN0cy5jbWFrZSkKIGFkZF9jdXN0b21fdGFyZ2V0KGRpc3QgQ09NTUFORCAke0NNQUtFX01BS0VfUFJPR1JBTX0gcGFja2FnZV9zb3VyY2UpCi1hZGRfZGVwZW5kZW5jaWVzKGRpc3QgbHdpcGRvY3MpCitpZiAoVEFSR0VUIGx3aXBkb2NzKQorICBhZGRfZGVwZW5kZW5jaWVzKGRpc3QgbHdpcGRvY3MpCitlbmRpZigpCmRpZmYgLS1naXQgYS9DT1BZSU5HIGIvQ09QWUlORwppbmRleCBlMjM4OThiLi45MDQ2NWY1IDEwMDY0NAotLS0gYS9DT1BZSU5HCisrKyBiL0NPUFlJTkcKQEAgLTEsMzMgKzEsMjUgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAotICogCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKLSAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgotICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKLSAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIAotICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCi0gKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKLSAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIAotICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIAotICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAotICogT0YgU1VDSCBEQU1BR0UuCi0gKgotICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgotICogCi0gKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgotICoKLSAqLworQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCitBbGwgcmlnaHRzIHJlc2VydmVkLgogCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorCisxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiszLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECitXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKK1NIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKK0VYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKK09GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KK0NPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKK0lOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorT0YgU1VDSCBEQU1BR0UuCiAKZGlmZiAtLWdpdCBhL0ZFQVRVUkVTIGIvRkVBVFVSRVMKaW5kZXggYTUwYzVhNS4uODc4MDJkMSAxMDA2NDQKLS0tIGEvRkVBVFVSRVMKKysrIGIvRkVBVFVSRVMKQEAgLTQsNyArNCw3IEBACiAKIE1haW4gZmVhdHVyZXMgaW5jbHVkZToKIC0gUHJvdG9jb2xzOiBJUCwgSVB2NiwgSUNNUCwgTkQsIE1MRCwgVURQLCBUQ1AsIElHTVAsIEFSUCwgUFBQb1MsIFBQUG9FLCA2TG93UEFOICh2aWEgSUVFRSA4MDIuMTUuNCwgQkxFIG9yIFpFUDsgc2luY2UgdjIuMS4wKQotLSBESENQIGNsaWVudCwgc3RhdGVsZXNzIERIQ1B2NiAoc2luY2UgdjIuMS4wKSwgRE5TIGNsaWVudCAoaW5jbC4gbUROUyBob3N0bmFtZSByZXNvbHZlciksIEF1dG9JUC9BUElQQSAoWmVyb2NvbmYpLCBTTk1QIGFnZW50ICh2MSwgdjJjLCB2MyAoc2luY2UgdjIuMS4wKSwgcHJpdmF0ZSBNSUIgc3VwcG9ydCAmIE1JQiBjb21waWxlcikKKy0gREhDUCBjbGllbnQsIHN0YXRlbGVzcyBESENQdjYgKHNpbmNlIHYyLjEuMCksIEROUyBjbGllbnQgKGluY2wuIG1ETlMgaG9zdG5hbWUgcmVzb2x2ZXIpLCBBdXRvSVAvQVBJUEEgKFplcm9jb25mKSwgQUNEIChBZGRyZXNzIENvbmZsaWN0IERldGVjdGlvbiksIFNOTVAgYWdlbnQgKHYxLCB2MmMsIHYzIChzaW5jZSB2Mi4xLjApLCBwcml2YXRlIE1JQiBzdXBwb3J0ICYgTUlCIGNvbXBpbGVyKQogLSBBUElzOiBzcGVjaWFsaXplZCBBUElzIGZvciBlbmhhbmNlZCBwZXJmb3JtYW5jZSAmIHplcm8gY29weSwgb3B0aW9uYWwgQmVya2VsZXktYWxpa2Ugc29ja2V0IEFQSQogLSBFeHRlbmRlZCBmZWF0dXJlczogSVAgZm9yd2FyZGluZyBvdmVyIG11bHRpcGxlIG5ldHdvcmsgaW50ZXJmYWNlcwogLSBFeHRlbmRlZCBUQ1AgZmVhdHVyZXM6IGNvbmdlc3Rpb24gY29udHJvbCwgUlRUIGVzdGltYXRpb24gYW5kIGZhc3QgcmVjb3ZlcnkvZmFzdCByZXRyYW5zbWl0LCBzZW5kaW5nIFNBQ0tzIChzaW5jZSB2Mi4xLjApLCAiYWx0Y3AiOiBuZWFybHkgdHJhbnNwYXJlbnQgVExTIGZvciBhbnkgdGNwIHBjYiAoc2luY2UgdjIuMS4wKQpkaWZmIC0tZ2l0IGEvRklMRVMgYi9GSUxFUwppbmRleCBlNmUwOTk4Li4yYTcwODZjIDEwMDY0NAotLS0gYS9GSUxFUworKysgYi9GSUxFUwpAQCAtMSwzICsxLDQgQEAKK2NvbnRyaWIvICAtIGx3SVAgZXhhbXBsZXMsIHBvcnRzLCBhbmQgc21hbGwgYXBwcyAoZm9ybWVybHkgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2NnaXQvbHdpcC9sd2lwLWNvbnRyaWIuZ2l0LykKIHNyYy8gICAgICAtIFRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgogZG9jLyAgICAgIC0gVGhlIGRvY3VtZW50YXRpb24gZm9yIGx3SVAuCiB0ZXN0LyAgICAgLSBTb21lIGNvZGUgdG8gdGVzdCB3aGV0aGVyIHRoZSBzb3VyY2VzIGRvIHdoYXQgdGhleSBzaG91bGQuCmRpZmYgLS1naXQgYS9SRUFETUUgYi9SRUFETUUKaW5kZXggYjk1ZjE1NS4uZjgzMTA1MSAxMDA2NDQKLS0tIGEvUkVBRE1FCisrKyBiL1JFQURNRQpAQCAtMTcsMTIgKzE3LDEzIEBACiAgICAgbXVsdGlwbGUgbmV0d29yayBpbnRlcmZhY2VzCiAgICogSUNNUCAoSW50ZXJuZXQgQ29udHJvbCBNZXNzYWdlIFByb3RvY29sKSBmb3IgbmV0d29yayBtYWludGVuYW5jZSBhbmQgZGVidWdnaW5nCiAgICogSUdNUCAoSW50ZXJuZXQgR3JvdXAgTWFuYWdlbWVudCBQcm90b2NvbCkgZm9yIG11bHRpY2FzdCB0cmFmZmljIG1hbmFnZW1lbnQKLSAgKiBNTEQgKE11bHRpY2FzdCBsaXN0ZW5lciBkaXNjb3ZlcnkgZm9yIElQdjYpLiBBaW1zIHRvIGJlIGNvbXBsaWFudCB3aXRoIAorICAqIE1MRCAoTXVsdGljYXN0IGxpc3RlbmVyIGRpc2NvdmVyeSBmb3IgSVB2NikuIEFpbXMgdG8gYmUgY29tcGxpYW50IHdpdGgKICAgICBSRkMgMjcxMC4gTm8gc3VwcG9ydCBmb3IgTUxEdjIKICAgKiBORCAoTmVpZ2hib3IgZGlzY292ZXJ5IGFuZCBzdGF0ZWxlc3MgYWRkcmVzcyBhdXRvY29uZmlndXJhdGlvbiBmb3IgSVB2NikuCiAgICAgQWltcyB0byBiZSBjb21wbGlhbnQgd2l0aCBSRkMgNDg2MSAoTmVpZ2hib3IgZGlzY292ZXJ5KSBhbmQgUkZDIDQ4NjIKICAgICAoQWRkcmVzcyBhdXRvY29uZmlndXJhdGlvbikKLSAgKiBESENQLCBBdXRvSVAvQVBJUEEgKFplcm9jb25mKSBhbmQgKHN0YXRlbGVzcykgREhDUHY2CisgICogREhDUCwgQXV0b0lQL0FQSVBBIChaZXJvY29uZiksIEFDRCAoQWRkcmVzcyBDb25mbGljdCBEZXRlY3Rpb24pCisgICAgYW5kIChzdGF0ZWxlc3MpIERIQ1B2NgogICAqIFVEUCAoVXNlciBEYXRhZ3JhbSBQcm90b2NvbCkgaW5jbHVkaW5nIGV4cGVyaW1lbnRhbCBVRFAtbGl0ZSBleHRlbnNpb25zCiAgICogVENQIChUcmFuc21pc3Npb24gQ29udHJvbCBQcm90b2NvbCkgd2l0aCBjb25nZXN0aW9uIGNvbnRyb2wsIFJUVCBlc3RpbWF0aW9uCiAgICAgZmFzdCByZWNvdmVyeS9mYXN0IHJldHJhbnNtaXQgYW5kIHNlbmRpbmcgU0FDS3MKQEAgLTYzLDM3ICs2NCwzOSBAQAogbWFpbGluZyBsaXN0LiBBIGNvcmUgdGVhbSBvZiBkZXZlbG9wZXJzIHdpbGwgY29tbWl0IGNoYW5nZXMgdG8gdGhlCiBHaXQgc291cmNlIHRyZWUuCiAKLVRoZSBsd0lQIFRDUC9JUCBzdGFjayBpcyBtYWludGFpbmVkIGluIHRoZSAnbHdpcCcgR2l0IG1vZHVsZSBhbmQKLWNvbnRyaWJ1dGlvbnMgKHN1Y2ggYXMgcGxhdGZvcm0gcG9ydHMpIGFyZSBpbiB0aGUgJ2NvbnRyaWInIEdpdCBtb2R1bGUuCitUaGUgbHdJUCBUQ1AvSVAgc3RhY2sgaXMgbWFpbnRhaW5lZCBpbiB0aGUgJ3NyYycgZGlyZWN0b3J5IGFuZAorY29udHJpYnV0aW9ucyAoc3VjaCBhcyBwbGF0Zm9ybSBwb3J0cyBhbmQgYXBwbGljYXRpb25zKSBhcmUgaW4KK3RoZSAnY29udHJpYicgZGlyZWN0b3J5LgogCiBTZWUgZG9jL3NhdmFubmFoLnR4dCBmb3IgZGV0YWlscyBvbiBHaXQgc2VydmVyIGFjY2VzcyBmb3IgdXNlcnMgYW5kCiBkZXZlbG9wZXJzLgogCi1UaGUgY3VycmVudCBHaXQgdHJlZXMgYXJlIHdlYi1icm93c2FibGU6Ci0gIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9jZ2l0L2x3aXAuZ2l0Ci0gIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9jZ2l0L2x3aXAvbHdpcC1jb250cmliLmdpdAorVGhlIGN1cnJlbnQgR2l0IHRyZWUgaXMgd2ViLWJyb3dzYWJsZToKKyAgaHR0cHM6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9jZ2l0L2x3aXAuZ2l0CiAKIFN1Ym1pdCBwYXRjaGVzIGFuZCBidWdzIHZpYSB0aGUgbHdJUCBwcm9qZWN0IHBhZ2U6Ci0gIGh0dHA6Ly9zYXZhbm5haC5ub25nbnUub3JnL3Byb2plY3RzL2x3aXAvCisgIGh0dHBzOi8vc2F2YW5uYWgubm9uZ251Lm9yZy9wcm9qZWN0cy9sd2lwLwogCiBDb250aW51b3VzIGludGVncmF0aW9uIGJ1aWxkcyAoR0NDLCBjbGFuZyk6Ci0gIGh0dHBzOi8vdHJhdmlzLWNpLm9yZy95YXJyaWNrL2x3aXAtbWVyZ2VkCisgIGh0dHBzOi8vZ2l0aHViLmNvbS9sd2lwLXRjcGlwL2x3aXAvYWN0aW9ucwogCiAKIERPQ1VNRU5UQVRJT04KIAogU2VsZiBkb2N1bWVudGF0aW9uIG9mIHRoZSBzb3VyY2UgY29kZSBpcyByZWd1bGFybHkgZXh0cmFjdGVkIGZyb20gdGhlIGN1cnJlbnQKIEdpdCBzb3VyY2VzIGFuZCBpcyBhdmFpbGFibGUgZnJvbSB0aGlzIHdlYiBwYWdlOgotICBodHRwOi8vd3d3Lm5vbmdudS5vcmcvbHdpcC8KLQotVGhlcmUgaXMgbm93IGEgY29uc3RhbnRseSBncm93aW5nIHdpa2kgYWJvdXQgbHdJUCBhdAotICBodHRwOi8vbHdpcC53aWtpYS5jb20vd2lraS9Md0lQX1dpa2kKKyAgaHR0cHM6Ly93d3cubm9uZ251Lm9yZy9sd2lwLwogCiBBbHNvLCB0aGVyZSBhcmUgbWFpbGluZyBsaXN0cyB5b3UgY2FuIHN1YnNjcmliZSBhdAotICBodHRwOi8vc2F2YW5uYWgubm9uZ251Lm9yZy9tYWlsLz9ncm91cD1sd2lwCisgIGh0dHBzOi8vc2F2YW5uYWgubm9uZ251Lm9yZy9tYWlsLz9ncm91cD1sd2lwCiBwbHVzIHNlYXJjaGFibGUgYXJjaGl2ZXM6Ci0gIGh0dHA6Ly9saXN0cy5ub25nbnUub3JnL2FyY2hpdmUvaHRtbC9sd2lwLXVzZXJzLwotICBodHRwOi8vbGlzdHMubm9uZ251Lm9yZy9hcmNoaXZlL2h0bWwvbHdpcC1kZXZlbC8KKyAgaHR0cHM6Ly9saXN0cy5ub25nbnUub3JnL2FyY2hpdmUvaHRtbC9sd2lwLXVzZXJzLworICBodHRwczovL2xpc3RzLm5vbmdudS5vcmcvYXJjaGl2ZS9odG1sL2x3aXAtZGV2ZWwvCisKK1RoZXJlIGlzIGEgd2lraSBhYm91dCBsd0lQIGF0CisgIGh0dHBzOi8vbHdpcC53aWtpYS5jb20vd2lraS9Md0lQX1dpa2kKK1lvdSBtaWdodCBnZXQgcXVlc3Rpb25zIGFuc3dlcmVkIHRoZXJlLCBidXQgdW5mb3J0dW5hdGVseSwgaXQgaXMgbm90IGFzCit3ZWxsIG1haW50YWluZWQgYXMgaXQgc2hvdWxkIGJlLgogCiBsd0lQIHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQWRhbSBEdW5rZWxzOgogICBodHRwOi8vZHVua2Vscy5jb20vYWRhbS8KZGlmZiAtLWdpdCBhL1VQR1JBRElORyBiL1VQR1JBRElORwppbmRleCAyMWFkOGNjLi4wZDM1NzkwIDEwMDY0NAotLS0gYS9VUEdSQURJTkcKKysrIGIvVVBHUkFESU5HCkBAIC03LDYgKzcsMTYgQEAKIChnaXQgbWFzdGVyKQogCiAgICogW0VudGVyIG5ldyBjaGFuZ2VzIGp1c3QgYWZ0ZXIgdGhpcyBsaW5lIC0gZG8gbm90IHJlbW92ZSB0aGlzIGxpbmVdCisgICogVGhlIGV0aF9hZGRyX2NtcCBhbmQgaXBfYWRkcl9jbXAgc2V0IG9mIGZ1bmN0aW9ucyBoYXZlIGJlZW4gcmVuYW1lZCB0byBldGhfYWRkcl9lcSwgaXBfYWRkcl9lcQorICAgIGFuZCBzbyBvbiwgc2luY2UgdGhleSByZXR1cm4gbm9uLXplcm8gb24gZXF1YWxpdHkuIE1hY3JvcyBmb3IgdGhlIG9sZCBuYW1lcyBleGlzdC4KKyAgKiBUaGUgc2lvX3dyaXRlIGZ1bmN0aW9uIHVzZWQgYnkgUFBQIG5vdyB0YWtlcyB0aGUgZGF0YSBhcmd1bWVudCBhcyBjb25zdC4KKworKDIuMi4wKQorCisgICsrIFJlcG9zaXRvcnkgY2hhbmdlczoKKworICAqIFRoZSBjb250cmliIHJlcG9zaXRvcnkgaGFzIGJlZW4gYWRkZWQgaW50byB0aGUgbWFpbiByZXBvc2l0b3J5IGluIHRoZSBzdWJkaXJlY3RvcnkgJ2NvbnRyaWInCisgICAgKHRoZSBvbGQgY29udHJpYiByZXBvc2l0b3J5IHJlbWFpbnMgb25saW5lIGZvciByZWZlcmVuY2UgYnV0IGlzIG5vdCB1c2VkIGFueSBtb3JlKQogCiAoMi4xLjApCiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvQ292ZXJpdHkvY292ZXJpdHkuYyBiL2NvbnRyaWIvQ292ZXJpdHkvY292ZXJpdHkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWJlYmFlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9Db3Zlcml0eS9jb3Zlcml0eS5jCkBAIC0wLDAgKzEsMTA2IEBACit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgZXJyX3Q7Cit0eXBlZGVmIHVuc2lnbmVkIGludCB1MzJfdDsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgdTE2X3Q7Cit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdThfdDsKK3R5cGVkZWYgdm9pZCBzeXNfc2VtX3Q7Cit0eXBlZGVmIHZvaWQgc3lzX211dGV4X3Q7Cit0eXBlZGVmIHNpemVfdCBtZW1fc2l6ZV90OwordHlwZWRlZiBzaXplX3QgbWVtcF90Oworc3RydWN0IHBidWY7CitzdHJ1Y3QgbmV0aWY7CisKK3ZvaWQqIG1lbV9tYWxsb2MobWVtX3NpemVfdCBzaXplKQoreworICBfX2NvdmVyaXR5X2FsbG9jX18oc2l6ZSk7Cit9Cit2b2lkIG1lbV9mcmVlKHZvaWQqIG1lbSkKK3sKKyAgX19jb3Zlcml0eV9mcmVlX18obWVtKTsKK30KKwordm9pZCogbWVtcF9tYWxsb2MobWVtcF90IHR5cGUpCit7CisgIF9fY292ZXJpdHlfYWxsb2Nfbm9zaXplX18oKTsgIAorfQordm9pZCBtZW1wX2ZyZWUobWVtcF90IHR5cGUsIHZvaWQqIG1lbSkKK3sKKyAgX19jb3Zlcml0eV9mcmVlX18obWVtKTsgIAorfQorCit2b2lkIHN5c19tdXRleF9sb2NrKHN5c19tdXRleF90KiBtdXRleCkKK3sKKyAgX19jb3Zlcml0eV9leGNsdXNpdmVfbG9ja19hY3F1aXJlX18obXV0ZXgpOworfQordm9pZCBzeXNfbXV0ZXhfdW5sb2NrKHN5c19tdXRleF90KiBtdXRleCkKK3sKKyAgX19jb3Zlcml0eV9leGNsdXNpdmVfbG9ja19yZWxlYXNlX18obXV0ZXgpOworfQorCit1MzJfdCBzeXNfYXJjaF9zZW1fd2FpdChzeXNfc2VtX3QgKnNlbSwgdTMyX3QgdGltZW91dCkKK3sKKyAgX19jb3Zlcml0eV9yZWN1cnNpdmVfbG9ja19hY3F1aXJlX18oc2VtKTsKK30KK3ZvaWQgc3lzX3NlbV9zaWduYWwoc3lzX3NlbV90ICpzZW0pCit7CisgIF9fY292ZXJpdHlfcmVjdXJzaXZlX2xvY2tfcmVsZWFzZV9fKHNlbSk7Cit9CisKK2Vycl90IGV0aGVybmV0X2lucHV0KHN0cnVjdCBwYnVmICpwLCBzdHJ1Y3QgbmV0aWYgKmlucCkKK3sKKyAgX19jb3Zlcml0eV90YWludGVkX3N0cmluZ19zaW5rX2NvbnRlbnRfXyhwKTsgCit9CitlcnJfdCB0Y3BpcF9pbnB1dChzdHJ1Y3QgcGJ1ZiAqcCwgc3RydWN0IG5ldGlmICppbnApCit7CisgIF9fY292ZXJpdHlfdGFpbnRlZF9zdHJpbmdfc2lua19jb250ZW50X18ocCk7IAorfQorZXJyX3QgaXBfaW5wdXQoc3RydWN0IHBidWYgKnAsIHN0cnVjdCBuZXRpZiAqaW5wKQoreworICBfX2NvdmVyaXR5X3RhaW50ZWRfc3RyaW5nX3NpbmtfY29udGVudF9fKHApOyAKK30KK2Vycl90IGlwNF9pbnB1dChzdHJ1Y3QgcGJ1ZiAqcCwgc3RydWN0IG5ldGlmICppbnApCit7CisgIF9fY292ZXJpdHlfdGFpbnRlZF9zdHJpbmdfc2lua19jb250ZW50X18ocCk7IAorfQorZXJyX3QgaXA2X2lucHV0KHN0cnVjdCBwYnVmICpwLCBzdHJ1Y3QgbmV0aWYgKmlucCkKK3sKKyAgX19jb3Zlcml0eV90YWludGVkX3N0cmluZ19zaW5rX2NvbnRlbnRfXyhwKTsgCit9CisKK2Vycl90IHBidWZfdGFrZShzdHJ1Y3QgcGJ1ZiAqYnVmLCBjb25zdCB2b2lkICpkYXRhcHRyLCB1MTZfdCBsZW4pCit7CisgIF9fY292ZXJpdHlfdGFpbnRlZF9zdHJpbmdfYXJndW1lbnRfXyhidWYpOworICBfX2NvdmVyaXR5X3RhaW50ZWRfZGF0YV9hcmd1bWVudF9fKGJ1Zik7Cit9CitlcnJfdCBwYnVmX3Rha2VfYXQoc3RydWN0IHBidWYgKmJ1ZiwgY29uc3Qgdm9pZCAqZGF0YXB0ciwgdTE2X3QgbGVuLCB1MTZfdCBvZmZzZXQpCit7CisgIF9fY292ZXJpdHlfdGFpbnRlZF9zdHJpbmdfYXJndW1lbnRfXyhidWYpOworICBfX2NvdmVyaXR5X3RhaW50ZWRfZGF0YV9hcmd1bWVudF9fKGJ1Zik7Cit9CitlcnJfdCBwYnVmX2NvcHkoc3RydWN0IHBidWYgKnBfdG8sIHN0cnVjdCBwYnVmICpwX2Zyb20pCit7CisgIF9fY292ZXJpdHlfdGFpbnRlZF9kYXRhX3RyYW5zaXRpdmVfXyhwX3RvLCBwX2Zyb20pOworfQordTE2X3QgcGJ1Zl9jb3B5X3BhcnRpYWwoc3RydWN0IHBidWYgKnAsIHZvaWQgKmRhdGFwdHIsIHUxNl90IGxlbiwgdTE2X3Qgb2Zmc2V0KQoreworICBfX2NvdmVyaXR5X3RhaW50ZWRfc3RyaW5nX2FyZ3VtZW50X18oZGF0YXB0cik7CisgIF9fY292ZXJpdHlfdGFpbnRlZF9kYXRhX2FyZ3VtZW50X18oZGF0YXB0cik7Cit9Cit1OF90IHBidWZfZ2V0X2F0KHN0cnVjdCBwYnVmKiBwLCB1MTZfdCBvZmZzZXQpCit7CisgIF9fY292ZXJpdHlfdGFpbnRlZF9kYXRhX3JldHVybl9fKCk7Cit9CisKK3ZvaWQgYWJvcnQodm9pZCkKK3sKKyAgX19jb3Zlcml0eV9wYW5pY19fKCk7Cit9CisKK2ludCBjaGVja19wYXRoKGNoYXIqIHBhdGgsIHNpemVfdCBzaXplKQoreworICBpZiAoc2l6ZSkgeworICAgIF9fY292ZXJpdHlfdGFpbnRlZF9kYXRhX3Nhbml0aXplX18ocGF0aCk7CisgICAgcmV0dXJuIDE7CisgIH0gZWxzZSB7CisgICAgcmV0dXJuIDA7CisgIH0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvRmlsZWxpc3RzLmNtYWtlIGIvY29udHJpYi9GaWxlbGlzdHMuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM3NWRkMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvRmlsZWxpc3RzLmNtYWtlCkBAIC0wLDAgKzEsNjEgQEAKKyMgVGhpcyBmaWxlIGlzIGluZGVuZGVkIHRvIGJlIGluY2x1ZGVkIGluIGVuZC11c2VyIENNYWtlTGlzdHMudHh0CisjIGluY2x1ZGUoL3BhdGgvdG8vRmlsZWxpc3RzLmNtYWtlKQorIyBJdCBhc3N1bWVzIHRoZSB2YXJpYWJsZSBMV0lQX0NPTlRSSUJfRElSIGlzIGRlZmluZWQgcG9pbnRpbmcgdG8gdGhlCisjIHJvb3QgcGF0aCBvZiBsd0lQL2NvbnRyaWIgc291cmNlcy4KKyMKKyMgVGhpcyBmaWxlIGlzIE5PVCBkZXNpZ25lZCAob24gcHVycG9zZSkgdG8gYmUgdXNlZCBhcyBjbWFrZQorIyBzdWJkaXIgdmlhIGFkZF9zdWJkaXJlY3RvcnkoKQorIyBUaGUgaW50ZW50aW9uIGlzIHRvIHByb3ZpZGUgZ3JlYXRlciBmbGV4aWJpbGl0eSB0byB1c2VycyB0bworIyBjcmVhdGUgdGhlaXIgb3duIHRhcmdldHMgdXNpbmcgdGhlICpfU1JDUyB2YXJpYWJsZXMuCisKK2lmKE5PVCAke0NNQUtFX1ZFUlNJT059IFZFUlNJT05fTEVTUyAiMy4xMC4wIikKKyAgICBpbmNsdWRlX2d1YXJkKEdMT0JBTCkKK2VuZGlmKCkKKworc2V0KGx3aXBjb250cmliZXhhbXBsZXNfU1JDUworICAgICR7TFdJUF9DT05UUklCX0RJUn0vZXhhbXBsZXMvaHR0cGQvZnNfZXhhbXBsZS9mc19leGFtcGxlLmMKKyAgICAke0xXSVBfQ09OVFJJQl9ESVJ9L2V4YW1wbGVzL2h0dHBkL2h0dHBzX2V4YW1wbGUvaHR0cHNfZXhhbXBsZS5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9leGFtcGxlcy9odHRwZC9zc2lfZXhhbXBsZS9zc2lfZXhhbXBsZS5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9leGFtcGxlcy9sd2lwZXJmL2x3aXBlcmZfZXhhbXBsZS5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9leGFtcGxlcy9tZG5zL21kbnNfZXhhbXBsZS5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9leGFtcGxlcy9tcXR0L21xdHRfZXhhbXBsZS5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9leGFtcGxlcy9wcHAvcHBwb3NfZXhhbXBsZS5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9leGFtcGxlcy9zbm1wL3NubXBfcHJpdmF0ZV9taWIvbHdpcF9wcnZtaWIuYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vZXhhbXBsZXMvc25tcC9zbm1wX3YzL3NubXB2M19kdW1teS5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9leGFtcGxlcy9zbm1wL3NubXBfZXhhbXBsZS5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9leGFtcGxlcy9zbnRwL3NudHBfZXhhbXBsZS5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9leGFtcGxlcy90ZnRwL3RmdHBfZXhhbXBsZS5jCispCithZGRfbGlicmFyeShsd2lwY29udHJpYmV4YW1wbGVzIEVYQ0xVREVfRlJPTV9BTEwgJHtsd2lwY29udHJpYmV4YW1wbGVzX1NSQ1N9KQordGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhsd2lwY29udHJpYmV4YW1wbGVzIFBSSVZBVEUgJHtMV0lQX0NPTVBJTEVSX0ZMQUdTfSkKK3RhcmdldF9jb21waWxlX2RlZmluaXRpb25zKGx3aXBjb250cmliZXhhbXBsZXMgUFJJVkFURSAke0xXSVBfREVGSU5JVElPTlN9ICR7TFdJUF9NQkVEVExTX0RFRklOSVRJT05TfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGx3aXBjb250cmliZXhhbXBsZXMgUFJJVkFURSAke0xXSVBfSU5DTFVERV9ESVJTfSAke0xXSVBfTUJFRFRMU19JTkNMVURFX0RJUlN9KQorCitzZXQobHdpcGNvbnRyaWJhcHBzX1NSQ1MKKyAgICAke0xXSVBfQ09OVFJJQl9ESVJ9L2FwcHMvaHR0cHNlcnZlci9odHRwc2VydmVyLW5ldGNvbm4uYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vYXBwcy9jaGFyZ2VuL2NoYXJnZW4uYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vYXBwcy91ZHBlY2hvL3VkcGVjaG8uYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vYXBwcy90Y3BlY2hvL3RjcGVjaG8uYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vYXBwcy9zaGVsbC9zaGVsbC5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9hcHBzL3VkcGVjaG9fcmF3L3VkcGVjaG9fcmF3LmMKKyAgICAke0xXSVBfQ09OVFJJQl9ESVJ9L2FwcHMvdGNwZWNob19yYXcvdGNwZWNob19yYXcuYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vYXBwcy9uZXRpby9uZXRpby5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9hcHBzL3BpbmcvcGluZy5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9hcHBzL3NvY2tldF9leGFtcGxlcy9zb2NrZXRfZXhhbXBsZXMuYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vYXBwcy9ydHAvcnRwLmMKKykKK2FkZF9saWJyYXJ5KGx3aXBjb250cmliYXBwcyBFWENMVURFX0ZST01fQUxMICR7bHdpcGNvbnRyaWJhcHBzX1NSQ1N9KQordGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhsd2lwY29udHJpYmFwcHMgUFJJVkFURSAke0xXSVBfQ09NUElMRVJfRkxBR1N9KQordGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMobHdpcGNvbnRyaWJhcHBzIFBSSVZBVEUgJHtMV0lQX0RFRklOSVRJT05TfSAke0xXSVBfTUJFRFRMU19ERUZJTklUSU9OU30pCit0YXJnZXRfaW5jbHVkZV9kaXJlY3Rvcmllcyhsd2lwY29udHJpYmFwcHMgUFJJVkFURSAke0xXSVBfSU5DTFVERV9ESVJTfSAke0xXSVBfTUJFRFRMU19JTkNMVURFX0RJUlN9KQorCitzZXQobHdpcGNvbnRyaWJhZGRvbnNfU1JDUworICAgICR7TFdJUF9DT05UUklCX0RJUn0vYWRkb25zL3RjcF9pc24vdGNwX2lzbi5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9hZGRvbnMvaXB2Nl9zdGF0aWNfcm91dGluZy9pcDZfcm91dGVfdGFibGUuYworIyAgICAke0xXSVBfQ09OVFJJQl9ESVJ9L2FkZG9ucy9uZXRjb25uL2V4dGVybmFsX3Jlc29sdmUvZG5zc2QuYworIyAgICAke0xXSVBfQ09OVFJJQl9ESVJ9L2FkZG9ucy90Y3BfbWQ1L3RjcF9tZDUuYworKQorYWRkX2xpYnJhcnkobHdpcGNvbnRyaWJhZGRvbnMgRVhDTFVERV9GUk9NX0FMTCAke2x3aXBjb250cmliYWRkb25zX1NSQ1N9KQordGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhsd2lwY29udHJpYmFkZG9ucyBQUklWQVRFICR7TFdJUF9DT01QSUxFUl9GTEFHU30pCit0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhsd2lwY29udHJpYmFkZG9ucyBQUklWQVRFICR7TFdJUF9ERUZJTklUSU9OU30gJHtMV0lQX01CRURUTFNfREVGSU5JVElPTlN9KQordGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMobHdpcGNvbnRyaWJhZGRvbnMgUFJJVkFURSAke0xXSVBfSU5DTFVERV9ESVJTfSAke0xXSVBfTUJFRFRMU19JTkNMVURFX0RJUlN9KQpkaWZmIC0tZ2l0IGEvY29udHJpYi9GaWxlbGlzdHMubWsgYi9jb250cmliL0ZpbGVsaXN0cy5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGZiNDhiCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9GaWxlbGlzdHMubWsKQEAgLTAsMCArMSw1NyBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMDEsIDIwMDIgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gCisjIAorIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKKyMgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorIworIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisjICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyMgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorIyAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMgMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisjICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCAKKyMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisjIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIAorIyBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIAorIyBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisjIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIAorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIAorIyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgCisjIE9GIFNVQ0ggREFNQUdFLgorIworIyBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisjIAorIyBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorIworCisjIENPTlRSSUJBUFBGSUxFUzogQ29udHJpYiBBcHBsaWNhdGlvbnMuCitDT05UUklCQVBQRklMRVM9JChDT05UUklCRElSKS9hcHBzL2h0dHBzZXJ2ZXIvaHR0cHNlcnZlci1uZXRjb25uLmMgXAorCSQoQ09OVFJJQkRJUikvYXBwcy9jaGFyZ2VuL2NoYXJnZW4uYyBcCisJJChDT05UUklCRElSKS9hcHBzL3VkcGVjaG8vdWRwZWNoby5jIFwKKwkkKENPTlRSSUJESVIpL2FwcHMvdGNwZWNoby90Y3BlY2hvLmMgXAorCSQoQ09OVFJJQkRJUikvYXBwcy9zaGVsbC9zaGVsbC5jIFwKKwkkKENPTlRSSUJESVIpL2FwcHMvdWRwZWNob19yYXcvdWRwZWNob19yYXcuYyBcCisJJChDT05UUklCRElSKS9hcHBzL3RjcGVjaG9fcmF3L3RjcGVjaG9fcmF3LmMgXAorCSQoQ09OVFJJQkRJUikvYXBwcy9uZXRpby9uZXRpby5jIFwKKwkkKENPTlRSSUJESVIpL2FwcHMvcGluZy9waW5nLmMgXAorCSQoQ09OVFJJQkRJUikvYXBwcy9zb2NrZXRfZXhhbXBsZXMvc29ja2V0X2V4YW1wbGVzLmMgXAorCSQoQ09OVFJJQkRJUikvYXBwcy9ydHAvcnRwLmMgXAorCSQoQ09OVFJJQkRJUikvZXhhbXBsZXMvaHR0cGQvZnNfZXhhbXBsZS9mc19leGFtcGxlLmMgXAorCSQoQ09OVFJJQkRJUikvZXhhbXBsZXMvaHR0cGQvaHR0cHNfZXhhbXBsZS9odHRwc19leGFtcGxlLmMgXAorCSQoQ09OVFJJQkRJUikvZXhhbXBsZXMvaHR0cGQvc3NpX2V4YW1wbGUvc3NpX2V4YW1wbGUuYyBcCisJJChDT05UUklCRElSKS9leGFtcGxlcy9sd2lwZXJmL2x3aXBlcmZfZXhhbXBsZS5jIFwKKwkkKENPTlRSSUJESVIpL2V4YW1wbGVzL21kbnMvbWRuc19leGFtcGxlLmMgXAorCSQoQ09OVFJJQkRJUikvZXhhbXBsZXMvbXF0dC9tcXR0X2V4YW1wbGUuYyBcCisJJChDT05UUklCRElSKS9leGFtcGxlcy9wcHAvcHBwb3NfZXhhbXBsZS5jIFwKKwkkKENPTlRSSUJESVIpL2V4YW1wbGVzL3NubXAvc25tcF9wcml2YXRlX21pYi9sd2lwX3Bydm1pYi5jIFwKKwkkKENPTlRSSUJESVIpL2V4YW1wbGVzL3NubXAvc25tcF92My9zbm1wdjNfZHVtbXkuYyBcCisJJChDT05UUklCRElSKS9leGFtcGxlcy9zbm1wL3NubXBfZXhhbXBsZS5jIFwKKwkkKENPTlRSSUJESVIpL2V4YW1wbGVzL3NudHAvc250cF9leGFtcGxlLmMgXAorCSQoQ09OVFJJQkRJUikvZXhhbXBsZXMvdGZ0cC90ZnRwX2V4YW1wbGUuYyBcCisJJChDT05UUklCRElSKS9hZGRvbnMvdGNwX2lzbi90Y3BfaXNuLmMgXAorCSQoQ09OVFJJQkRJUikvYWRkb25zL2lwdjZfc3RhdGljX3JvdXRpbmcvaXA2X3JvdXRlX3RhYmxlLmMKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYWRkb25zL2RoY3BfZXh0cmFfb3B0cy9SRUFETUUgYi9jb250cmliL2FkZG9ucy9kaGNwX2V4dHJhX29wdHMvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxYTdjZWQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FkZG9ucy9kaGNwX2V4dHJhX29wdHMvUkVBRE1FCkBAIC0wLDAgKzEsNSBAQAorQSBzaW1wbGUgZXhhbXBsZSBvZiB1c2luZyBMV0lQX0hPT0tfREhDUF9QQVJTRS9BUFBFTkRfT1BUSU9OIGhvb2tzIHRvIGltcGxlbWVudDoKKyogREhDUF9PUFRJT05fTVRVIChvcHRpb24gMjYpIHRvIHVwZGF0ZSB0aGUgbmV0aWYncyBNVFUKKyogREhDUF9PUFRJT05fQ0xJRU5UX0lEIChvcHRpb24gNjEpIHRvIGFkdmVydGl6ZSBjbGllbnQncyBIVyBpZCBvZiBMV0lQX0lBTkFfSFdUWVBFX0VUSEVSTkVUIHR5cGUKKworUGxlYXNlIGZvbGxvdyB0aGUgaW5zdHJ1Y3Rpb25zIGluIGRoY3BfZXh0cmFfb3B0cy5oIHRvIGFkZCB0aGUgaG9va3MsIGRlZmluaXRpb25zIGluIGx3aXBvcHRzLmggYW5kIGVuYWJsaW5nIHRoZSBleHRyYSBvcHRpb25zLgpkaWZmIC0tZ2l0IGEvY29udHJpYi9hZGRvbnMvZGhjcF9leHRyYV9vcHRzL2RoY3BfZXh0cmFfb3B0cy5jIGIvY29udHJpYi9hZGRvbnMvZGhjcF9leHRyYV9vcHRzL2RoY3BfZXh0cmFfb3B0cy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlMjg3YmYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FkZG9ucy9kaGNwX2V4dHJhX29wdHMvZGhjcF9leHRyYV9vcHRzLmMKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgRXNwcmVzc2lmIFN5c3RlbXMgKFNoYW5naGFpKSBDTyBMVEQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlICJsd2lwL3Byb3QvZGhjcC5oIgorI2luY2x1ZGUgImx3aXAvZGhjcC5oIgorI2luY2x1ZGUgImx3aXAvbmV0aWYuaCIKKyNpbmNsdWRlICJsd2lwL3Byb3QvaWFuYS5oIgorCisKK3ZvaWQgZGhjcF9wYXJzZV9leHRyYV9vcHRzKHN0cnVjdCBkaGNwICpkaGNwLCB1aW50OF90IHN0YXRlLCB1aW50OF90IG9wdGlvbiwgdWludDhfdCBsZW4sIHN0cnVjdCBwYnVmKiBwLCB1aW50MTZfdCBvZmZzZXQpCit7CisgIExXSVBfVU5VU0VEX0FSRyhkaGNwKTsKKyAgTFdJUF9VTlVTRURfQVJHKHN0YXRlKTsKKyAgTFdJUF9VTlVTRURfQVJHKG9wdGlvbik7CisgIExXSVBfVU5VU0VEX0FSRyhsZW4pOworICBMV0lQX1VOVVNFRF9BUkcocCk7CisgIExXSVBfVU5VU0VEX0FSRyhvZmZzZXQpOworI2lmIExXSVBfREhDUF9FTkFCTEVfTVRVX1VQREFURQorICBpZiAoKG9wdGlvbiA9PSBESENQX09QVElPTl9NVFUpICYmCisgICAgIChzdGF0ZSA9PSBESENQX1NUQVRFX1JFQk9PVElORyB8fCBzdGF0ZSA9PSBESENQX1NUQVRFX1JFQklORElORyB8fAorICAgICAgc3RhdGUgPT0gREhDUF9TVEFURV9SRU5FV0lORyAgfHwgc3RhdGUgPT0gREhDUF9TVEFURV9SRVFVRVNUSU5HKSkgeworICAgIHUzMl90IG10dSA9IDA7CisgICAgc3RydWN0IG5ldGlmICpuZXRpZjsKKyAgICBMV0lQX0VSUk9SKCJkaGNwX3BhcnNlX2V4dHJhX29wdHMoKTogTVRVIG9wdGlvbidzIGxlbiAhPSAyIiwgbGVuID09IDIsIHJldHVybjspOworICAgIExXSVBfRVJST1IoImRoY3BfcGFyc2VfZXh0cmFfb3B0cygpOiBleHRyYWN0aW5nIE1UVSBvcHRpb24gZmFpbGVkIiwKKyAgICAgICAgICAgICAgIHBidWZfY29weV9wYXJ0aWFsKHAsICZtdHUsIDIsIG9mZnNldCkgPT0gMiwgcmV0dXJuOyk7CisgICAgbXR1ID0gbHdpcF9odG9ucygodTE2X3QpbXR1KTsKKyAgICBORVRJRl9GT1JFQUNIKG5ldGlmKSB7CisgICAgICAvKiBmaW5kIHRoZSBuZXRpZiByZWxhdGVkIHRvIHRoaXMgZGhjcCAqLworICAgICAgaWYgKGRoY3AgPT0gbmV0aWZfZGhjcF9kYXRhKG5ldGlmKSkgeworICAgICAgICBpZiAobXR1IDwgbmV0aWYtPm10dSkgeworICAgICAgICAgIG5ldGlmLT5tdHUgPSBtdHU7CisgICAgICAgICAgTFdJUF9ERUJVR0YoREhDUF9ERUJVRyB8IExXSVBfREJHX1RSQUNFLCAoImRoY3BfcGFyc2VfZXh0cmFfb3B0cygpOiBOZWdvdGlhdGVkIG5ldGlmIE1UVSBpcyAlZFxuIiwgbmV0aWYtPm10dSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICB9CisgIH0gLyogREhDUF9PUFRJT05fTVRVICovCisjZW5kaWYgLyogTFdJUF9ESENQX0VOQUJMRV9NVFVfVVBEQVRFICovCit9CisKK3ZvaWQgZGhjcF9hcHBlbmRfZXh0cmFfb3B0cyhzdHJ1Y3QgbmV0aWYgKm5ldGlmLCB1aW50OF90IHN0YXRlLCBzdHJ1Y3QgZGhjcF9tc2cgKm1zZ19vdXQsIHVpbnQxNl90ICpvcHRpb25zX291dF9sZW4pCit7CisgIExXSVBfVU5VU0VEX0FSRyhuZXRpZik7CisgIExXSVBfVU5VU0VEX0FSRyhzdGF0ZSk7CisgIExXSVBfVU5VU0VEX0FSRyhtc2dfb3V0KTsKKyAgTFdJUF9VTlVTRURfQVJHKG9wdGlvbnNfb3V0X2xlbik7CisjaWYgTFdJUF9ESENQX0VOQUJMRV9DTElFTlRfSUQKKyAgaWYgKHN0YXRlID09IERIQ1BfU1RBVEVfUkVORVdJTkcgfHwgc3RhdGUgPT0gREhDUF9TVEFURV9SRUJJTkRJTkcgfHwKKyAgICAgIHN0YXRlID09IERIQ1BfU1RBVEVfUkVCT09USU5HIHx8IHN0YXRlID09IERIQ1BfU1RBVEVfT0ZGIHx8CisgICAgICBzdGF0ZSA9PSBESENQX1NUQVRFX1JFUVVFU1RJTkcgfHwgc3RhdGUgPT0gREhDUF9TVEFURV9CQUNLSU5HX09GRiB8fCBzdGF0ZSA9PSBESENQX1NUQVRFX1NFTEVDVElORykgeworICAgIHNpemVfdCBpOworICAgIHU4X3QgKm9wdGlvbnMgPSBtc2dfb3V0LT5vcHRpb25zICsgKm9wdGlvbnNfb3V0X2xlbjsKKyAgICBMV0lQX0VSUk9SKCJkaGNwX2FwcGVuZChjbGllbnRfaWQpOiBvcHRpb25zX291dF9sZW4gKyAzICsgbmV0aWYtPmh3YWRkcl9sZW4gPD0gREhDUF9PUFRJT05TX0xFTiIsCisgICAgICAgICAgICAgICAqb3B0aW9uc19vdXRfbGVuICsgM1UgKyBuZXRpZi0+aHdhZGRyX2xlbiA8PSBESENQX09QVElPTlNfTEVOLCByZXR1cm47KTsKKyAgICAqb3B0aW9uc19vdXRfbGVuID0gKm9wdGlvbnNfb3V0X2xlbiArIG5ldGlmLT5od2FkZHJfbGVuICsgMzsKKyAgICAqb3B0aW9ucysrID0gREhDUF9PUFRJT05fQ0xJRU5UX0lEOworICAgICpvcHRpb25zKysgPSBuZXRpZi0+aHdhZGRyX2xlbiArIDE7IC8qIG9wdGlvbiBzaXplICovCisgICAgKm9wdGlvbnMrKyA9IExXSVBfSUFOQV9IV1RZUEVfRVRIRVJORVQ7CisgICAgZm9yIChpID0gMDsgaSA8IG5ldGlmLT5od2FkZHJfbGVuOyBpKyspIHsKKyAgICAgICpvcHRpb25zKysgPSBuZXRpZi0+aHdhZGRyW2ldOworICAgIH0KKyAgfQorI2VuZGlmIC8qIExXSVBfREhDUF9FTkFCTEVfQ0xJRU5UX0lEICovCit9CmRpZmYgLS1naXQgYS9jb250cmliL2FkZG9ucy9kaGNwX2V4dHJhX29wdHMvZGhjcF9leHRyYV9vcHRzLmggYi9jb250cmliL2FkZG9ucy9kaGNwX2V4dHJhX29wdHMvZGhjcF9leHRyYV9vcHRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU5NDA0ZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYWRkb25zL2RoY3BfZXh0cmFfb3B0cy9kaGNwX2V4dHJhX29wdHMuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChjKSBFc3ByZXNzaWYgU3lzdGVtcyAoU2hhbmdoYWkpIENPIExURAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgorICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorICogT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICogVG8gdXNlIHRoZXNlIGFkZGl0aW9uYWwgREhDUCBvcHRpb25zLCBtYWtlIHN1cmUgdGhpcyBmaWxlIGlzIGluY2x1ZGVkIGluIExXSVBfSE9PS19GSUxFTkFNRQorICogYW5kIGRlZmluZSB0aGVzZSBob29rczoKKyAqCisgKiAjZGVmaW5lIExXSVBfSE9PS19ESENQX1BBUlNFX09QVElPTihuZXRpZiwgZGhjcCwgc3RhdGUsIG1zZywgbXNnX3R5cGUsIG9wdGlvbiwgbGVuLCBwYnVmLCBvZmZzZXQpICAgXAorICogICAgICAgICBkbyB7ICAgIExXSVBfVU5VU0VEX0FSRyhtc2cpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgKiAgICAgICAgICAgICAgICAgZGhjcF9wYXJzZV9leHRyYV9vcHRzKGRoY3AsIHN0YXRlLCBvcHRpb24sIGxlbiwgcGJ1Ziwgb2Zmc2V0KTsgIFwKKyAqICAgICAgICAgICAgIH0gd2hpbGUoMCkKKyAqCisgKiAjZGVmaW5lIExXSVBfSE9PS19ESENQX0FQUEVORF9PUFRJT05TKG5ldGlmLCBkaGNwLCBzdGF0ZSwgbXNnLCBtc2dfdHlwZSwgb3B0aW9uc19sZW5fcHRyKSBcCisgKiAgICAgICAgIGRoY3BfYXBwZW5kX2V4dHJhX29wdHMobmV0aWYsIHN0YXRlLCBtc2csIG9wdGlvbnNfbGVuX3B0cik7CisgKgorICogVG8gZW5hYmxlIChkaXNhYmxlKSB0aGVzZSBvcHRpb24sIHBsZWFzZSBzZXQgb25lIG9yIGJvdGggb2YgdGhlIGJlbG93IG1hY3JvcyB0byAxICgwKQorICogI2RlZmluZSBMV0lQX0RIQ1BfRU5BQkxFX01UVV9VUERBVEUgICAxCisgKiAjZGVmaW5lIExXSVBfREhDUF9FTkFCTEVfQ0xJRU5UX0lEICAgIDEKKyAqLworCisjaWZuZGVmIExXSVBfSERSX0NPTlRSSUJfQURET05TX0RIQ1BfT1BUU19ICisjZGVmaW5lIExXSVBfSERSX0NPTlRSSUJfQURET05TX0RIQ1BfT1BUU19ICisKKy8qIEFkZCBzdGFuZGFyZCBpbnRlZ2VycyBzbyB0aGUgaGVhZGVyIGNvdWxkIGJlIGluY2x1ZGVkIGJlZm9yZSBsd2lwICovCisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKy8qIEZvcndhcmQgZGVjbGFyZSBsd2lwIHN0cnVjdHMgKi8KK3N0cnVjdCBkaGNwOworc3RydWN0IHBidWY7CitzdHJ1Y3QgZGhjcDsKK3N0cnVjdCBuZXRpZjsKK3N0cnVjdCBkaGNwX21zZzsKKworLyogSW50ZXJuYWwgaG9vayBmdW5jdGlvbnMgKi8KK3ZvaWQgZGhjcF9wYXJzZV9leHRyYV9vcHRzKHN0cnVjdCBkaGNwICpkaGNwLCB1aW50OF90IHN0YXRlLCB1aW50OF90IG9wdGlvbiwgdWludDhfdCBsZW4sIHN0cnVjdCBwYnVmKiBwLCB1aW50MTZfdCBvZmZzZXQpOwordm9pZCBkaGNwX2FwcGVuZF9leHRyYV9vcHRzKHN0cnVjdCBuZXRpZiAqbmV0aWYsIHVpbnQ4X3Qgc3RhdGUsIHN0cnVjdCBkaGNwX21zZyAqbXNnX291dCwgdWludDE2X3QgKm9wdGlvbnNfb3V0X2xlbik7CisKKyNlbmRpZiAvKiBMV0lQX0hEUl9DT05UUklCX0FERE9OU19ESENQX09QVFNfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hZGRvbnMvaXB2Nl9zdGF0aWNfcm91dGluZy9SRUFETUUgYi9jb250cmliL2FkZG9ucy9pcHY2X3N0YXRpY19yb3V0aW5nL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzNiMDZjCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hZGRvbnMvaXB2Nl9zdGF0aWNfcm91dGluZy9SRUFETUUKQEAgLTAsMCArMSw0MyBAQAorQSBzaW1wbGUgcm91dGluZyB0YWJsZSBpbXBsZW1lbnRhdGlvbiBmb3IgYWRkaXRpb24sIGRlbGV0aW9uIGFuZCBsb29rdXAgb2YgSVB2NiByb3V0ZXMuwqAKKworQVBJcyBhcmU6CisxKSBzOF90IGlwNl9hZGRfcm91dGVfZW50cnkoc3RydWN0IGlwNl9wcmVmaXggKmlwNl9wcmVmaXgsCivCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBzdHJ1Y3QgbmV0aWYgKm5ldGlmLAorwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaXA2X2FkZHJfdCAqZ2F0ZXdheSwKK8KgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHM4X3QgKmluZGV4KTsKKworMikgZXJyX3QgaXA2X3JlbW92ZV9yb3V0ZV9lbnRyeShzdHJ1Y3QgaXA2X3ByZWZpeCAqaXA2X3ByZWZpeCk7CisKKzMpIHM4X3QgaXA2X2ZpbmRfcm91dGVfZW50cnkoaXA2X2FkZHJfdCAqaXA2X2Rlc3RfYWRkcik7CisKKzQpIHN0cnVjdCBuZXRpZiAqaXA2X3N0YXRpY19yb3V0ZShpcDZfYWRkcl90ICpzcmMsIGlwNl9hZGRyX3QgKmRlc3QpOworCis1KSBpcDZfYWRkcl90ICppcDZfZ2V0X2dhdGV3YXkoc3RydWN0IG5ldGlmICpuZXRpZiwgaXA2X2FkZHJfdCAqZGVzdCk7CisKKzYpIHN0cnVjdCBpcDZfcm91dGVfZW50cnkgKmlwNl9nZXRfcm91dGVfdGFibGUodm9pZCk7CisKK0ZvciByb3V0ZSBsb29rdXAgZnJvbSB0aGUgdGFibGUsIFRoZcKgTFdJUF9IT09LX0lQNl9ST1VURSBob29rIGluIGlwNl9yb3V0ZSguLikgb2YgaXA2LmMKK2NvdWxkIGJlIGFzc2lnbmVkIHRvIHRoZSBpcDZfc3RhdGljX3JvdXRlKCkgQVBJIG9mIHRoaXMgaW1wbGVtZW50YXRpb24gdG8gcmV0dXJuIHRoZSAKK2FwcHJvcHJpYXRlIG5ldGlmLgorCistLSBUaGUgYXBwbGljYXRpb24gY2FuIGFkZCByb3V0ZXMgdXNpbmcgdGhlIEFQSSBpcDZfYWRkX3JvdXRlX2VudHJ5KC4uKS7CoAorwqAgwqBUaGlzIEFQSSBhZGRzIHRoZSBpcDYgcHJlZml4IHJvdXRlIGludG8gdGhlIHN0YXRpYyByb3V0ZSB0YWJsZSB3aGlsZQorwqAgwqBrZWVwaW5nIGFsbCBlbnRyaWVzIHNvcnRlZCBpbiBkZWNyZWFzaW5nIG9yZGVyIG9mIHByZWZpeCBsZW5ndGguCivCoCDCoFN1YnNlcXVlbnRseSwgYSBsaW5lYXIgc2VhcmNoIGRvd24gdGhlIGxpc3QgY2FuIGJlIHBlcmZvcm1lZCB0byByZXRyaWV2ZSBhCivCoCDCoG1hdGNoaW5nIHJvdXRlIGVudHJ5IGZvciBhIExvbmdlc3QgUHJlZml4IE1hdGNoLgorwqAgwqBUaGUgcHJlZml4IGxlbmd0aCBpcyBleHBlY3RlZCB0byBiZSBhdCBhbiA4LWJpdCBib3VuZGFyeS4gV2hpbGUgdGhpcyBpc8KgCivCoCDCoGEgbGltaXRhdGlvbiwgaXQgd291bGQgc2VydmUgbW9zdCBwcmFjdGljYWwgcHVycG9zZXMuCisKKy0tIFRoZSBhcHBsaWNhdGlvbiBjYW4gcmVtb3ZlIHJvdXRlcyB1c2luZyB0aGUgQVBJIGlwNl9yZW1vdmVfcm91dGVfZW50cnkoLi4pLgorCistLSBUaGUgYXBwbGljYXRpb24gY2FuIGZpbmQgYSByb3V0ZSBlbnRyeSBmb3IgYSBzcGVjaWZpYyBhZGRyZXNzIHVzaW5nIHRoZcKgCivCoCDCoGlwNl9maW5kX3JvdXRlX2VudHJ5KCkgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgaW5kZXggb2YgdGhlIGZvdW5kIGVudHJ5LsKgCivCoCDCoFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSByb3V0ZSBsb29rdXAgZnVuY3Rpb24gaXA2X3N0YXRpY19yb3V0ZSgpIEFQSS4KKworLS0gVG8gZmV0Y2ggdGhlIGdhdGV3YXkgSVB2NiBhZGRyZXNzIGZvciBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIElQdjbCoAorwqAgwqBhZGRyZXNzIGFuZCB0YXJnZXQgbmV0aWYsIHRoZSBhcHBsaWNhdGlvbiBjYW4gY2FsbCBpcDZfZ2V0X2dhdGV3YXkoLi4pLgorICAgVGhpcyBBUEkgY291bGQgYmUgYXNzaWduZWQgdG8gdGhlIExXSVBfSE9PS19ORDZfR0VUX0dXKCkgaWYgYSBnYXRld2F5IGhhcworICAgYmVlbiBhZGRlZCBhcyBwYXJ0IG9mIHRoZSBpcDZfYWRkX3JvdXRlX2VudHJ5KCkuCisKKy0tIFRvIGZldGNoIGEgcG9pbnRlciB0byB0aGUgaGVhZCBvZiB0aGUgdGFibGUsIHRoZSBhcHBsaWNhdGlvbiBjYW4gY2FsbMKgCivCoCDCoGlwNl9nZXRfcm91dGVfdGFibGUoKS4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYWRkb25zL2lwdjZfc3RhdGljX3JvdXRpbmcvaXA2X3JvdXRlX3RhYmxlLmMgYi9jb250cmliL2FkZG9ucy9pcHY2X3N0YXRpY19yb3V0aW5nL2lwNl9yb3V0ZV90YWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MmRkMzMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FkZG9ucy9pcHY2X3N0YXRpY19yb3V0aW5nL2lwNl9yb3V0ZV90YWJsZS5jCkBAIC0wLDAgKzEsMjQ4IEBACisvKioKKyAqIEBmaWxlCisgKiBJUHY2IHN0YXRpYyByb3V0ZSB0YWJsZS4KKyAqLworCisvKgorICogQ29weXJpZ2h0IChjKSAyMDE1IE5lc3QgTGFicywgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIEF1dGhvcjogUHJhZGlwIERlIDxwcmFkaXBkQGdvb2dsZS5jb20+CisgKgorICoKKyAqIFBsZWFzZSBjb29yZGluYXRlIGNoYW5nZXMgYW5kIHJlcXVlc3RzIHdpdGggUHJhZGlwIERlCisgKiA8cHJhZGlwZEBnb29nbGUuY29tPgorICovCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorCisjaWYgTFdJUF9JUFY2ICAvKiBkb24ndCBidWlsZCBpZiBub3QgY29uZmlndXJlZCBmb3IgdXNlIGluIGx3aXBvcHRzLmggKi8KKworI2luY2x1ZGUgImlwNl9yb3V0ZV90YWJsZS5oIgorI2luY2x1ZGUgImx3aXAvZGVmLmgiCisjaW5jbHVkZSAibHdpcC9tZW0uaCIKKyNpbmNsdWRlICJsd2lwL25ldGlmLmgiCisjaW5jbHVkZSAibHdpcC9pcDYuaCIKKyNpbmNsdWRlICJsd2lwL2lwNl9hZGRyLmgiCisjaW5jbHVkZSAibHdpcC9uZDYuaCIKKyNpbmNsdWRlICJsd2lwL2RlYnVnLmgiCisjaW5jbHVkZSAibHdpcC9zdGF0cy5oIgorCisjaW5jbHVkZSAic3RyaW5nLmgiCisKK3N0YXRpYyBzdHJ1Y3QgaXA2X3JvdXRlX2VudHJ5IHN0YXRpY19yb3V0ZV90YWJsZVtMV0lQX0lQVjZfTlVNX1JPVVRFX0VOVFJJRVNdOworCisvKioKKyAqIEFkZCB0aGUgaXA2IHByZWZpeCByb3V0ZSBhbmQgdGFyZ2V0IG5ldGlmIGludG8gdGhlIHN0YXRpYyByb3V0ZSB0YWJsZSB3aGlsZQorICoga2VlcGluZyBhbGwgZW50cmllcyBzb3J0ZWQgaW4gZGVjcmVhc2luZyBvcmRlciBvZiBwcmVmaXggbGVuZ3RoLgorICogMS4gU2VhcmNoIGZyb20gdGhlIGxhc3QgZW50cnkgdXAgdG8gZmluZCB0aGUgY29ycmVjdCBzbG90IHRvIGluc2VydCB3aGlsZQorICogICAgbW92aW5nIGVudHJpZXMgb25lIHBvc2l0aW9uIGRvd24gdG8gY3JlYXRlIHJvb20uCisgKiAyLiBJbnNlcnQgaW50byBlbXB0eSBzbG90IGNyZWF0ZWQuCisgKgorICogU3Vic2VxdWVudGx5LCBhIGxpbmVhciBzZWFyY2ggZG93biB0aGUgbGlzdCBjYW4gYmUgcGVyZm9ybWVkIHRvIHJldHJpZXZlIGEKKyAqIG1hdGNoaW5nIHJvdXRlIGVudHJ5IGZvciBhIExvbmdlc3QgUHJlZml4IE1hdGNoLgorICoKKyAqIEBwYXJhbSBpcDZfcHJlZml4IHRoZSByb3V0ZSBwcmVmaXggZW50cnkgdG8gYWRkLgorICogQHBhcmFtIG5ldGlmIHBvaW50ZXIgdG8gdGFyZ2V0IG5ldGlmLgorICogQHBhcmFtIGdhdGV3YXkgdGhlIGdhdGV3YXkgYWRkcmVzcyB0byB1c2UgdG8gc2VuZCB0aHJvdWdoLiBIYXMgdG8gYmUgbGluayBsb2NhbC4KKyAqIEBwYXJhbSBpZHggcmV0dXJuIHZhbHVlIGFyZ3VtZW50IG9mIGluZGV4IHdoZXJlIHJvdXRlIGVudHJ5IHdhcyBhZGRlZCBpbiB0YWJsZS4KKyAqIEByZXR1cm4gRVJSX09LICBpZiBhZGRpdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAqICAgICAgICAgRVJSX01FTSBpZiB0YWJsZSBpcyBhbHJlYWR5IGZ1bGwuCisgKiAgICAgICAgIEVSUl9BUkcgaWYgcGFzc2VkIGFyZ3VtZW50IGlzIGJhZCBvciByb3V0ZSBhbHJlYWR5IGV4aXN0cyBpbiB0YWJsZS4KKyAqLworZXJyX3QKK2lwNl9hZGRfcm91dGVfZW50cnkoY29uc3Qgc3RydWN0IGlwNl9wcmVmaXggKmlwNl9wcmVmaXgsIHN0cnVjdCBuZXRpZiAqbmV0aWYsIGNvbnN0IGlwNl9hZGRyX3QgKmdhdGV3YXksIHM4X3QgKmlkeCkKK3sKKyAgczhfdCBpID0gLTE7CisgIGVycl90IHJldHZhbCA9IEVSUl9PSzsKKworICBpZiAoIWlwNl9wcmVmaXhfdmFsaWQoaXA2X3ByZWZpeC0+cHJlZml4X2xlbikgfHwgKG5ldGlmID09IE5VTEwpKSB7CisgICAgcmV0dmFsID0gRVJSX0FSRzsKKyAgICBnb3RvIGV4aXQ7CisgIH0KKworICAvKiBDaGVjayBpZiBhbiBlbnRyeSBhbHJlYWR5IGV4aXN0cyB3aXRoIG1hdGNoaW5nIHByZWZpeDsgSWYgc28sIHJlcGxhY2UgaXQuICovCisgIGZvciAoaSA9IDA7IGkgPCBMV0lQX0lQVjZfTlVNX1JPVVRFX0VOVFJJRVM7IGkrKykgeworICAgIGlmICgoaXA2X3ByZWZpeC0+cHJlZml4X2xlbiA9PSBzdGF0aWNfcm91dGVfdGFibGVbaV0ucHJlZml4LnByZWZpeF9sZW4pICYmCisgICAgICAgIG1lbWNtcCgmaXA2X3ByZWZpeC0+YWRkciwgJnN0YXRpY19yb3V0ZV90YWJsZVtpXS5wcmVmaXguYWRkciwKKyAgICAgICAgICAgICAgIGlwNl9wcmVmaXgtPnByZWZpeF9sZW4gLyA4KSA9PSAwKSB7CisgICAgICAvKiBQcmVmaXggbWF0Y2hlczsgcmVwbGFjZSB0aGUgbmV0aWYgd2l0aCB0aGUgb25lIGJlaW5nIGFkZGVkLiAqLworICAgICAgZ290byBpbnNlcnQ7CisgICAgfQorICB9CisKKyAgLyogQ2hlY2sgaWYgdGhlIHRhYmxlIGlzIGZ1bGwgKi8KKyAgaWYgKHN0YXRpY19yb3V0ZV90YWJsZVtMV0lQX0lQVjZfTlVNX1JPVVRFX0VOVFJJRVMgLSAxXS5uZXRpZiAhPSBOVUxMKSB7CisgICAgcmV0dmFsID0gRVJSX01FTTsKKyAgICBnb3RvIGV4aXQ7CisgIH0KKworICAvKiBTaGlmdCBhbGwgZW50cmllcyBkb3duIHRoZSB0YWJsZSB1bnRpbCBzbG90IGlzIGZvdW5kICovCisgIGZvciAoaSA9IExXSVBfSVBWNl9OVU1fUk9VVEVfRU5UUklFUyAtIDE7CisgICAgICAgaSA+IDAgJiYgKGlwNl9wcmVmaXgtPnByZWZpeF9sZW4gPiBzdGF0aWNfcm91dGVfdGFibGVbaSAtIDFdLnByZWZpeC5wcmVmaXhfbGVuKTsgaS0tKSB7CisgICAgU01FTUNQWSgmc3RhdGljX3JvdXRlX3RhYmxlW2ldLCAmc3RhdGljX3JvdXRlX3RhYmxlW2kgLSAxXSwgc2l6ZW9mKHN0cnVjdCBpcDZfcm91dGVfZW50cnkpKTsKKyAgfQorCitpbnNlcnQ6CisgIC8qIEluc2VydCBpbnRvIHRoZSBzbG90IHNlbGVjdGVkICovCisgIFNNRU1DUFkoJnN0YXRpY19yb3V0ZV90YWJsZVtpXS5wcmVmaXgsIGlwNl9wcmVmaXgsIHNpemVvZihzdHJ1Y3QgaXA2X3ByZWZpeCkpOworICBzdGF0aWNfcm91dGVfdGFibGVbaV0ubmV0aWYgPSBuZXRpZjsKKworICAvKiBBZGQgZ2F0ZXdheSB0byByb3V0ZSB0YWJsZSAqLworICBzdGF0aWNfcm91dGVfdGFibGVbaV0uZ2F0ZXdheSA9IGdhdGV3YXk7CisKKyAgaWYgKGlkeCAhPSBOVUxMKSB7CisgICAgKmlkeCA9IGk7CisgIH0KKworZXhpdDoKKyAgcmV0dXJuIHJldHZhbDsKK30KKworLyoqCisgKiBSZW1vdmVzIHRoZSByb3V0ZSBlbnRyeSBmcm9tIHRoZSBzdGF0aWMgcm91dGUgdGFibGUuCisgKgorICogQHBhcmFtIGlwNl9wcmVmaXggdGhlIHJvdXRlIHByZWZpeCBlbnRyeSB0byBkZWxldGUuCisgKi8KK3ZvaWQKK2lwNl9yZW1vdmVfcm91dGVfZW50cnkoY29uc3Qgc3RydWN0IGlwNl9wcmVmaXggKmlwNl9wcmVmaXgpCit7CisgIGludCBpLCBwb3MgPSAtMTsKKworICBmb3IgKGkgPSAwOyBpIDwgTFdJUF9JUFY2X05VTV9ST1VURV9FTlRSSUVTOyBpKyspIHsKKyAgICAvKiBjb21wYXJlIHByZWZpeCB0byBmaW5kIHBvc2l0aW9uIHRvIGRlbGV0ZSAqLworICAgIGlmIChpcDZfcHJlZml4LT5wcmVmaXhfbGVuID09IHN0YXRpY19yb3V0ZV90YWJsZVtpXS5wcmVmaXgucHJlZml4X2xlbiAmJgorICAgICAgICBtZW1jbXAoJmlwNl9wcmVmaXgtPmFkZHIsICZzdGF0aWNfcm91dGVfdGFibGVbaV0ucHJlZml4LmFkZHIsCisgICAgICAgICAgICAgICBpcDZfcHJlZml4LT5wcmVmaXhfbGVuIC8gOCkgPT0gMCkgeworICAgICAgcG9zID0gaTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorCisgIGlmIChwb3MgPj0gMCkgeworICAgIC8qIFNoaWZ0IGV2ZXJ5dGhpbmcgYmV5b25kIHBvcyBvbmUgc2xvdCB1cCAqLworICAgIGZvciAoaSA9IHBvczsgaSA8IExXSVBfSVBWNl9OVU1fUk9VVEVfRU5UUklFUyAtIDE7IGkrKykgeworICAgICAgU01FTUNQWSgmc3RhdGljX3JvdXRlX3RhYmxlW2ldLCAmc3RhdGljX3JvdXRlX3RhYmxlW2krMV0sIHNpemVvZihzdHJ1Y3QgaXA2X3JvdXRlX2VudHJ5KSk7CisgICAgICBpZiAoc3RhdGljX3JvdXRlX3RhYmxlW2ldLm5ldGlmID09IE5VTEwpIHsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICAgIC8qIFplcm8gdGhlIHJlbWFpbmluZyBlbnRyaWVzICovCisgICAgZm9yICg7IGkgPCBMV0lQX0lQVjZfTlVNX1JPVVRFX0VOVFJJRVM7IGkrKykgeworICAgICAgaXA2X2FkZHJfc2V0X3plcm8oKCZzdGF0aWNfcm91dGVfdGFibGVbaV0ucHJlZml4LmFkZHIpKTsKKyAgICAgIHN0YXRpY19yb3V0ZV90YWJsZVtpXS5uZXRpZiA9IE5VTEw7CisgICAgfQorICB9Cit9CisKKy8qKgorICogRmluZHMgdGhlIGFwcHJvcHJpYXRlIHJvdXRlIGVudHJ5IGluIHRoZSBzdGF0aWMgcm91dGUgdGFibGUgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4KKyAqIGRlc3RpbmF0aW9uIElQdjYgYWRkcmVzcy4gU2luY2UgdGhlIGVudHJpZXMgaW4gdGhlIHJvdXRlIHRhYmxlIGFyZSBrZXB0IHNvcnRlZCBpbiBkZWNyZWFzaW5nCisgKiBvcmRlciBvZiBwcmVmaXggbGVuZ3RoLCBhIGxpbmVhciBzZWFyY2ggZG93biB0aGUgbGlzdCBpcyBwZXJmb3JtZWQgdG8gcmV0cmlldmUgYSBtYXRjaGluZworICogaW5kZXguCisgKgorICogQHBhcmFtIGlwNl9kZXN0X2FkZHIgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MgdG8gbWF0Y2gKKyAqIEByZXR1cm4gdGhlIGlkeCBvZiB0aGUgZm91bmQgcm91dGUgZW50cnk7IC0xIGlmIG5vdCBmb3VuZC4KKyAqLworczhfdAoraXA2X2ZpbmRfcm91dGVfZW50cnkoY29uc3QgaXA2X2FkZHJfdCAqaXA2X2Rlc3RfYWRkcikKK3sKKyAgczhfdCBpLCBpZHggPSAtMTsKKworICAvKiBTZWFyY2ggcHJlZml4IGluIHRoZSBzb3J0ZWQoZGVjcmVhc2luZyBvcmRlciBvZiBwcmVmaXggbGVuZ3RoKSBsaXN0ICovCisgIGZvcihpID0gMDsgaSA8IExXSVBfSVBWNl9OVU1fUk9VVEVfRU5UUklFUzsgaSsrKSB7CisgICAgaWYgKG1lbWNtcChpcDZfZGVzdF9hZGRyLCAmc3RhdGljX3JvdXRlX3RhYmxlW2ldLnByZWZpeC5hZGRyLAorICAgICAgICBzdGF0aWNfcm91dGVfdGFibGVbaV0ucHJlZml4LnByZWZpeF9sZW4gLyA4KSA9PSAwKSB7CisgICAgICBpZHggPSBpOworICAgICAgYnJlYWs7CisgICAgfQorICB9CisKKyAgcmV0dXJuIGlkeDsKK30KKworLyoqCisgKiBGaW5kcyB0aGUgYXBwcm9wcmlhdGUgbmV0d29yayBpbnRlcmZhY2UgZm9yIGEgZ2l2ZW4gSVB2NiBhZGRyZXNzIGZyb20gYSByb3V0aW5nIHRhYmxlIHdpdGgKKyAqIHN0YXRpYyBJUHY2IHJvdXRlcy4KKyAqCisgKiBAcGFyYW0gc3JjIHRoZSBzb3VyY2UgSVB2NiBhZGRyZXNzLCBpZiBrbm93bgorICogQHBhcmFtIGRlc3QgdGhlIGRlc3RpbmF0aW9uIElQdjYgYWRkcmVzcyBmb3Igd2hpY2ggdG8gZmluZCB0aGUgcm91dGUKKyAqIEByZXR1cm4gdGhlIG5ldGlmIG9uIHdoaWNoIHRvIHNlbmQgdG8gcmVhY2ggZGVzdAorICovCitzdHJ1Y3QgbmV0aWYgKgoraXA2X3N0YXRpY19yb3V0ZShjb25zdCBpcDZfYWRkcl90ICpzcmMsIGNvbnN0IGlwNl9hZGRyX3QgKmRlc3QpCit7CisgIGludCBpOworCisgIExXSVBfVU5VU0VEX0FSRyhzcmMpOworCisgIC8qIFBlcmZvcm0gdGFibGUgbG9va3VwICovCisgIGkgPSBpcDZfZmluZF9yb3V0ZV9lbnRyeShkZXN0KTsKKworICBpZiAoaSA+PSAwKSB7CisgICAgcmV0dXJuIHN0YXRpY19yb3V0ZV90YWJsZVtpXS5uZXRpZjsKKyAgfSBlbHNlIHsKKyAgICByZXR1cm4gTlVMTDsKKyAgfQorfQorCisvKioKKyAqIEZpbmRzIHRoZSBnYXRld2F5IElQNiBhZGRyZXNzIGZvciBhIGdpdmVuIGRlc3RpbmF0aW9uIElQdjYgYWRkcmVzcyBhbmQgdGFyZ2V0IG5ldGlmCisgKiBmcm9tIGEgcm91dGluZyB0YWJsZSB3aXRoIHN0YXRpYyBJUHY2IHJvdXRlcy4KKyAqCisgKiBAcGFyYW0gbmV0aWYgdGhlIG5ldGlmIHVzZWQgZm9yIHNlbmRpbmcKKyAqIEBwYXJhbSBkZXN0IHRoZSBkZXN0aW5hdGlvbiBJUHY2IGFkZHJlc3MKKyAqIEByZXR1cm4gdGhlIGlwNiBhZGRyZXNzIG9mIHRoZSBnYXRld2F5IHRvIGZvcndhcmQgcGFja2V0IHRvCisgKi8KK2NvbnN0IGlwNl9hZGRyX3QgKgoraXA2X2dldF9nYXRld2F5KHN0cnVjdCBuZXRpZiAqbmV0aWYsIGNvbnN0IGlwNl9hZGRyX3QgKmRlc3QpCit7CisgIGNvbnN0IGlwNl9hZGRyX3QgKnJldF9ndyA9IE5VTEw7CisgIGNvbnN0IGludCBpID0gaXA2X2ZpbmRfcm91dGVfZW50cnkoZGVzdCk7CisKKyAgTFdJUF9VTlVTRURfQVJHKG5ldGlmKTsKKworICBpZiAoaSA+PSAwKSB7CisgICAgaWYgKHN0YXRpY19yb3V0ZV90YWJsZVtpXS5nYXRld2F5ICE9IE5VTEwpIHsKKyAgICAgIHJldF9ndyA9IHN0YXRpY19yb3V0ZV90YWJsZVtpXS5nYXRld2F5OworICAgIH0KKyAgfQorCisgIHJldHVybiByZXRfZ3c7Cit9CisKKy8qKgorICogUmV0dXJucyB0aGUgdG9wIG9mIHRoZSByb3V0ZSB0YWJsZS4KKyAqIFRoaXMgc2hvdWxkIGJlIHVzZWQgZm9yIGRlYnVnIHByaW50aW5nIG9ubHkuCisgKgorICogQHJldHVybiB0aGUgdG9wIG9mIHRoZSByb3V0ZSB0YWJsZS4KKyAqLworY29uc3Qgc3RydWN0IGlwNl9yb3V0ZV9lbnRyeSAqCitpcDZfZ2V0X3JvdXRlX3RhYmxlKHZvaWQpCit7CisgICAgcmV0dXJuIHN0YXRpY19yb3V0ZV90YWJsZTsKK30KKworI2VuZGlmIC8qIExXSVBfSVBWNiAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hZGRvbnMvaXB2Nl9zdGF0aWNfcm91dGluZy9pcDZfcm91dGVfdGFibGUuaCBiL2NvbnRyaWIvYWRkb25zL2lwdjZfc3RhdGljX3JvdXRpbmcvaXA2X3JvdXRlX3RhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc4MzI4ZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYWRkb25zL2lwdjZfc3RhdGljX3JvdXRpbmcvaXA2X3JvdXRlX3RhYmxlLmgKQEAgLTAsMCArMSw5NCBAQAorLyoqCisgKiBAZmlsZQorICoKKyAqIElQdjYgc3RhdGljIHJvdXRlIHRhYmxlLgorICovCisKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgTmVzdCBMYWJzLCBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogQXV0aG9yOiBQcmFkaXAgRGUgPHByYWRpcGRAZ29vZ2xlLmNvbT4KKyAqCisgKgorICogUGxlYXNlIGNvb3JkaW5hdGUgY2hhbmdlcyBhbmQgcmVxdWVzdHMgd2l0aCBQcmFkaXAgRGUKKyAqIDxwcmFkaXBkQGdvb2dsZS5jb20+CisgKi8KKworI2lmbmRlZiBfX0xXSVBfSVA2X1JPVVRFX1RBQkxFX0hfXworI2RlZmluZSBfX0xXSVBfSVA2X1JPVVRFX1RBQkxFX0hfXworCisjaW5jbHVkZSAibHdpcC9vcHQuaCIKKworI2lmIExXSVBfSVBWNiAgLyogZG9uJ3QgYnVpbGQgaWYgbm90IGNvbmZpZ3VyZWQgZm9yIHVzZSBpbiBsd2lwb3B0cy5oICovCisKKyNpbmNsdWRlICJsd2lwL2lwNl9hZGRyLmgiCisjaW5jbHVkZSAibHdpcC9lcnIuaCIKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitzdHJ1Y3QgbmV0aWY7CisKKy8qKgorICogTFdJUF9JUFY2X05VTV9ST1VURVM6IE51bWJlciBvZiBJUFY2IHJvdXRlcyB0aGF0IGNhbiBiZSBrZXB0IGluIHRoZSBzdGF0aWMgcm91dGUgdGFibGUuCisgKi8KKyNpZm5kZWYgTFdJUF9JUFY2X05VTV9ST1VURV9FTlRSSUVTCisjZGVmaW5lIExXSVBfSVBWNl9OVU1fUk9VVEVfRU5UUklFUyAgICAgICAgICg4KQorI2VuZGlmCisKKyNkZWZpbmUgSVA2X01BWF9QUkVGSVhfTEVOICAgICAgICAgICAgICAgICAgKDEyOCkKKyNkZWZpbmUgSVA2X1BSRUZJWF9BTExPV0VEX0dSQU5VTEFSSVRZICAgICAgKDgpCisvKiBQcmVmaXggbGVuZ3RoIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gMTI4IGJpdHMgYW5kIG5lZWRzIHRvIGJlIGF0IGEgYnl0ZSBib3VuZGFyeSAqLworI2RlZmluZSBpcDZfcHJlZml4X3ZhbGlkKHByZWZpeF9sZW4pICAgICAgICAoKChwcmVmaXhfbGVuKSA8PSBJUDZfTUFYX1BSRUZJWF9MRU4pICYmICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChwcmVmaXhfbGVuKSAlIElQNl9QUkVGSVhfQUxMT1dFRF9HUkFOVUxBUklUWSkgPT0gMCkpCisKK3N0cnVjdCBpcDZfcHJlZml4IHsKKyAgaXA2X2FkZHJfdCBhZGRyOworICB1OF90IHByZWZpeF9sZW47IC8qIHByZWZpeCBsZW5ndGggaW4gYml0cyBhdCBieXRlIGJvdW5kYXJpZXMgKi8KK307CisKK3N0cnVjdCBpcDZfcm91dGVfZW50cnkgeworICBzdHJ1Y3QgaXA2X3ByZWZpeCBwcmVmaXg7CisgIHN0cnVjdCBuZXRpZiAqbmV0aWY7CisgIGNvbnN0IGlwNl9hZGRyX3QgKmdhdGV3YXk7Cit9OworCitlcnJfdCBpcDZfYWRkX3JvdXRlX2VudHJ5KGNvbnN0IHN0cnVjdCBpcDZfcHJlZml4ICppcDZfcHJlZml4LCBzdHJ1Y3QgbmV0aWYgKm5ldGlmLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpcDZfYWRkcl90ICpnYXRld2F5LCBzOF90ICppZHgpOwordm9pZCBpcDZfcmVtb3ZlX3JvdXRlX2VudHJ5KGNvbnN0IHN0cnVjdCBpcDZfcHJlZml4ICppcDZfcHJlZml4KTsKK3M4X3QgaXA2X2ZpbmRfcm91dGVfZW50cnkoY29uc3QgaXA2X2FkZHJfdCAqaXA2X2Rlc3RfYWRkcik7CitzdHJ1Y3QgbmV0aWYgKmlwNl9zdGF0aWNfcm91dGUoY29uc3QgaXA2X2FkZHJfdCAqc3JjLCBjb25zdCBpcDZfYWRkcl90ICpkZXN0KTsKK2NvbnN0IGlwNl9hZGRyX3QgKmlwNl9nZXRfZ2F0ZXdheShzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBjb25zdCBpcDZfYWRkcl90ICpkZXN0KTsKK2NvbnN0IHN0cnVjdCBpcDZfcm91dGVfZW50cnkgKmlwNl9nZXRfcm91dGVfdGFibGUodm9pZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBMV0lQX0lQVjYgKi8KKworI2VuZGlmIC8qIF9fTFdJUF9JUDZfUk9VVEVfVEFCTEVfSF9fICovCmRpZmYgLS1naXQgYS9jb250cmliL2FkZG9ucy9uZXRjb25uL2V4dGVybmFsX3Jlc29sdmUvZG5zc2QuYyBiL2NvbnRyaWIvYWRkb25zL25ldGNvbm4vZXh0ZXJuYWxfcmVzb2x2ZS9kbnNzZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyNjc0M2IKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FkZG9ucy9uZXRjb25uL2V4dGVybmFsX3Jlc29sdmUvZG5zc2QuYwpAQCAtMCwwICsxLDE2NCBAQAorLyoqCisgKiBAZmlsZQorICogRE5TLVNEIEFQSXMgdXNlZCBieSBMV0lQX0hPT0tfTkVUQ09OTl9FWFRFUk5BTF9SRVNPTFZFCisgKgorICogVGhpcyBpbXBsZW1lbnRhdGlvbiBhc3N1bWVzIHRoZSBETlMtU0QgQVBJIGltcGxlbWVudGF0aW9uIChtb3N0IGxpa2VseSBwcm92aWRlZCBieQorICogbUROU1Jlc3BvbmRlcikgaXMgaW1wbGVtZW50ZWQgaW4gdGhlIHNhbWUgcHJvY2VzcyBzcGFjZSBhcyBMd0lQIGFuZCBjYW4gZGlyZWN0bHkKKyAqIGludm9rZSB0aGUgY2FsbGJhY2sgZm9yIEROU1NlcnZpY2VHZXRBZGRySW5mby4gIFRoaXMgaXMgdGhlIHR5cGljYWwgZGVwbG95bWVudCBpbgorICogYW4gZW1iZWRkZWQgZW52aXJvbm1lbnQgd2hlcmUgYXMgYSB0cmFkaXRpb25hbCBPUyByZXF1aXJlcyBwdW1waW5nIHRoZSBjYWxsYmFjayByZXN1bHRzCisgKiB0aHJvdWdoIGFuIElQQyBtZWNoYW5pc20gKHNlZSBETlNTZXJ2aWNlUmVmU29ja0ZEL0ROU1NlcnZpY2VQcm9jZXNzUmVzdWx0KQorICoKKyAqIEBkZWZncm91cCBkbnNzZCBETlMtU0QKKyAqIEBpbmdyb3VwIGRucworICovCisKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgSm9lbCBDdW5uaW5naGFtLCBHYXJtaW4gSW50ZXJuYXRpb25hbCwgSW5jLiA8am9lbC5jdW5uaW5naGFtQGdhcm1pbi5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogSm9lbCBDdW5uaW5naGFtIDxqb2VsLmN1bm5pbmdoYW1AbWUuY29tPgorICoKKyAqLworI2luY2x1ZGUgImx3aXAvb3B0LmgiCisKKyNpbmNsdWRlICJsd2lwL2Vyci5oIgorI2luY2x1ZGUgImx3aXAvaW5ldC5oIgorI2luY2x1ZGUgImx3aXAvc29ja2V0cy5oIgorI2luY2x1ZGUgImx3aXAvc3lzLmgiCisKKyNpbmNsdWRlICJkbnNzZC5oIgorCisvKiBFeHRlcm5hbCBoZWFkZXJzICovCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8ZG5zX3NkLmg+CisKKy8qIFRoaXMgdGltZW91dCBzaG91bGQgYWxsb3cgZm9yIG11bHRpcGxlIHF1ZXJpZXMuCittRE5TUmVzcG9uZGVyIGhhcyB0aGUgZm9sbG93aW5nIHF1ZXJ5IHRpbWVsaW5lOgorICBRdWVyeSAxOiB0aW1lID0gMHMKKyAgUXVlcnkgMjogdGltZSA9IDFzCisgIFF1ZXJ5IDM6IHRpbWUgPSA0cworKi8KKyNkZWZpbmUgR0VUQUREUl9USU1FT1VUX01TICA1MDAwCisjZGVmaW5lIExPQ0FMX0RPTUFJTiAgICAgICAgIi5sb2NhbCIKKworLyogT25seSBjb25zdW1lIC5sb2NhbCBob3N0cyAqLworI2lmbmRlZiBDT05TVU1FX0xPQ0FMX09OTFkKKyNkZWZpbmUgQ09OU1VNRV9MT0NBTF9PTkxZICAxCisjZW5kaWYKKworc3RydWN0IGFkZHJfY2xia19tc2cgeworICBzeXNfc2VtX3Qgc2VtOworICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBhZGRyOworICBlcnJfdCBlcnI7Cit9OworCitzdGF0aWMgdm9pZCBhZGRyX2luZm9fY2FsbGJhY2soRE5TU2VydmljZVJlZiByZWYsIEROU1NlcnZpY2VGbGFncyBmbGFncywgdTMyX3QgaW50ZXJmYWNlX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEROU1NlcnZpY2VFcnJvclR5cGUgZXJyb3JfY29kZSwgY2hhciBjb25zdCogaG9zdG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvY2thZGRyKiBhZGRyZXNzLCB1MzJfdCB0dGwsIHZvaWQqIGNvbnRleHQpOworCitpbnQKK2x3aXBfZG5zc2RfZ2V0aG9zdGJ5bmFtZShjb25zdCBjaGFyICpuYW1lLCBpcF9hZGRyX3QgKmFkZHIsIHU4X3QgYWRkcnR5cGUsIGVycl90ICplcnIpCit7CisgIEROU1NlcnZpY2VFcnJvclR5cGUgcmVzdWx0OworICBETlNTZXJ2aWNlUmVmIHJlZjsKKyAgc3RydWN0IGFkZHJfY2xia19tc2cgbXNnOworICBjaGFyICpwOworCisgIC8qIEB0b2RvOiB1c2Ugd2l0aCBJUHY2ICovCisgIExXSVBfVU5VU0VEX0FSRyhhZGRydHlwZSk7CisKKyNpZiBDT05TVU1FX0xPQ0FMX09OTFkKKyAgLyogY2hlY2sgaWYgdGhpcyBpcyBhIC5sb2NhbCBob3N0LiBJZiBpdCBpcywgdGhlbiB3ZSBjb25zdW1lIHRoZSBxdWVyeSAqLworICBwID0gc3Ryc3RyKG5hbWUsIExPQ0FMX0RPTUFJTik7CisgIGlmIChwID09IE5VTEwpIHsKKyAgICByZXR1cm4gMDsgLyogbm90IGNvbnN1bWVkICovCisgIH0KKyAgcCArPSAoc2l6ZW9mKExPQ0FMX0RPTUFJTikgLSAxKTsKKyAgLyogY2hlY2sgdG8gbWFrZSBzdXJlIC5sb2NhbCBpc24ndCBhIHN1YnN0cmluZyAob25seSBhbGxvdyAubG9jYWxcMCBvciAubG9jYWwuXDApICovCisgIGlmICgoKnAgIT0gJy4nICYmICpwICE9ICdcMCcpIHx8CisgICAgICAoKnAgPT0gJy4nICYmICoocCArIDEpICE9ICdcMCcpKSB7CisgICAgcmV0dXJuIDA7IC8qIG5vdCBjb25zdW1lZCAqLworICB9CisjZW5kaWYgLyogQ09OU1VNRV9MT0NBTF9PTkxZICovCisKKyAgbXNnLmVyciA9IHN5c19zZW1fbmV3KCZtc2cuc2VtLCAwKTsKKyAgaWYgKG1zZy5lcnIgIT0gRVJSX09LKSB7CisgICAgZ290byBxdWVyeV9kb25lOworICB9CisKKyAgbXNnLmVyciA9IEVSUl9USU1FT1VUOworICByZXN1bHQgPSBETlNTZXJ2aWNlR2V0QWRkckluZm8oJnJlZiwgMCwgMCwga0ROU1NlcnZpY2VQcm90b2NvbF9JUHY0LCBuYW1lLCBhZGRyX2luZm9fY2FsbGJhY2ssICZtc2cpOworICBpZiAocmVzdWx0ID09IGtETlNTZXJ2aWNlRXJyX05vRXJyb3IpIHsKKyAgICBzeXNfYXJjaF9zZW1fd2FpdCgmbXNnLnNlbSwgR0VUQUREUl9USU1FT1VUX01TKTsKKyAgICBETlNTZXJ2aWNlUmVmRGVhbGxvY2F0ZShyZWYpOworCisgICAgLyogV2UgZ290IGEgcmVzcG9uc2UgKi8KKyAgICBpZiAobXNnLmVyciA9PSBFUlJfT0spIHsKKyAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbiogYWRkcl9pbiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikmbXNnLmFkZHI7CisgICAgICBpZiAoYWRkcl9pbi0+c2luX2ZhbWlseSA9PSBBRl9JTkVUKSB7CisgICAgICAgIGluZXRfYWRkcl90b19pcDRhZGRyKGlwXzJfaXA0KGFkZHIpLCAmYWRkcl9pbi0+c2luX2FkZHIpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLyogQHRvZG8gYWRkIElQdjYgc3VwcG9ydCAqLworICAgICAgICBtc2cuZXJyID0gRVJSX1ZBTDsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgc3lzX3NlbV9mcmVlKCZtc2cuc2VtKTsKKworLyogUXVlcnkgaGFzIGJlZW4gY29uc3VtZWQgYW5kIGlzIGZpbmlzaGVkICovCitxdWVyeV9kb25lOgorKmVyciA9IG1zZy5lcnI7CityZXR1cm4gMTsKK30KKworc3RhdGljIHZvaWQKK2FkZHJfaW5mb19jYWxsYmFjayhETlNTZXJ2aWNlUmVmIHJlZiwgRE5TU2VydmljZUZsYWdzIGZsYWdzLCB1MzJfdCBpbnRlcmZhY2VfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgRE5TU2VydmljZUVycm9yVHlwZSBlcnJvcl9jb2RlLCBjaGFyIGNvbnN0KiBob3N0bmFtZSwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIqIGFkZHJlc3MsIHUzMl90IHR0bCwgdm9pZCogY29udGV4dCkKK3sKKyAgc3RydWN0IGFkZHJfY2xia19tc2cqIG1zZyA9IChzdHJ1Y3QgYWRkcl9jbGJrX21zZyopY29udGV4dDsKKyAgc3RydWN0IHNvY2thZGRyX2luKiAgYWRkcl9pbiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilhZGRyZXNzOworCisgIExXSVBfVU5VU0VEX0FSRyhyZWYpOworICBMV0lQX1VOVVNFRF9BUkcoZmxhZ3MpOworICBMV0lQX1VOVVNFRF9BUkcoaW50ZXJmYWNlX2luZGV4KTsKKyAgTFdJUF9VTlVTRURfQVJHKGhvc3RuYW1lKTsKKyAgTFdJUF9VTlVTRURfQVJHKHR0bCk7CisgIExXSVBfVU5VU0VEX0FSRyhjb250ZXh0KTsKKworICBpZiAoKGVycm9yX2NvZGUgPT0ga0ROU1NlcnZpY2VFcnJfTm9FcnJvcikgJiYKKyAgICAgIChhZGRyX2luLT5zaW5fZmFtaWx5ID09IEFGX0lORVQpKSB7CisgICAgTUVNQ1BZKCZtc2ctPmFkZHIsIGFkZHJfaW4sIHNpemVvZigqYWRkcl9pbikpOworICAgIG1zZy0+ZXJyID0gRVJSX09LOworICB9CisgIGVsc2UgeworICAgLyogQHRvZG8gYWRkIElQdjYgc3VwcG9ydCAqLworICAgbXNnLT5lcnIgPSBFUlJfVkFMOworICB9CisKKyAgc3lzX3NlbV9zaWduYWwoJm1zZy0+c2VtKTsKK30gLyogYWRkcl9pbmZvX2NhbGxiYWNrKCkgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYWRkb25zL25ldGNvbm4vZXh0ZXJuYWxfcmVzb2x2ZS9kbnNzZC5oIGIvY29udHJpYi9hZGRvbnMvbmV0Y29ubi9leHRlcm5hbF9yZXNvbHZlL2Ruc3NkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJkNzFkOQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYWRkb25zL25ldGNvbm4vZXh0ZXJuYWxfcmVzb2x2ZS9kbnNzZC5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qKgorICogQGZpbGUKKyAqIEROUy1TRCBBUElzIHVzZWQgYnkgTFdJUF9IT09LX05FVENPTk5fRVhURVJOQUxfUkVTT0xWRQorICoKKyAqIEBkZWZncm91cCBkbnNzZCBETlMtU0QKKyAqIEBpbmdyb3VwIGRucworICovCisKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgSm9lbCBDdW5uaW5naGFtLCBHYXJtaW4gSW50ZXJuYXRpb25hbCwgSW5jLiA8am9lbC5jdW5uaW5naGFtQGdhcm1pbi5jb20+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogSm9lbCBDdW5uaW5naGFtIDxqb2VsLmN1bm5pbmdoYW1AbWUuY29tPgorICoKKyAqLworI2luY2x1ZGUgImx3aXAvb3B0LmgiCisKKyNpZm5kZWYgTFdJUF9IRFJfRE5TU0RfSAorI2RlZmluZSBMV0lQX0hEUl9ETlNTRF9ICisKKyNpbmNsdWRlICJsd2lwL2Vyci5oIgorI2luY2x1ZGUgImx3aXAvaXBfYWRkci5oIgorCitpbnQgbHdpcF9kbnNzZF9nZXRob3N0YnluYW1lKGNvbnN0IGNoYXIgKm5hbWUsIGlwX2FkZHJfdCAqYWRkciwgdThfdCBhZGRydHlwZSwgZXJyX3QgKmVycik7CisKKyNlbmRpZiAvKiBMV0lQX0hEUl9ETlNTRF9IICovCmRpZmYgLS1naXQgYS9jb250cmliL2FkZG9ucy90Y3BfaXNuL3RjcF9pc24uYyBiL2NvbnRyaWIvYWRkb25zL3RjcF9pc24vdGNwX2lzbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxNjE0OTkKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FkZG9ucy90Y3BfaXNuL3RjcF9pc24uYwpAQCAtMCwwICsxLDE4MiBAQAorLyoqCisgKiBAZmlsZQorICoKKyAqIFJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVENQIElTTiBhbGdvcml0aG0gc3RhbmRhcmRpemVkIGluIFJGQyA2NTI4LgorICogUHJvZHVjZSBUQ1AgSW5pdGlhbCBTZXF1ZW5jZSBOdW1iZXJzIGJ5IGNvbWJpbmluZyBhbiBNRDUtZ2VuZXJhdGVkIGhhc2gKKyAqIGJhc2VkIG9uIHRoZSBuZXcgVENQIGNvbm5lY3Rpb24ncyBpZGVudGl0eSBhbmQgYSBzdGFibGUgc2VjcmV0LCB3aXRoIHRoZQorICogY3VycmVudCB0aW1lIGF0IDQtbWljcm9zZWNvbmQgZ3JhbnVsYXJpdHkuCisgKgorICogU3BlY2lmaWNhbGx5LCB0aGUgaW1wbGVtZW50YXRpb24gdXNlcyBNRDUgdG8gY29tcHV0ZSBhIGhhc2ggb2YgdGhlIGlucHV0CisgKiBidWZmZXIsIHdoaWNoIGNvbnRhaW5zIGJvdGggdGhlIGZvdXItdHVwbGUgb2YgdGhlIG5ldyBUQ1AgY29ubmVjdGlvbiAobG9jYWwKKyAqIGFuZCByZW1vdGUgSVAgYWRkcmVzcyBhbmQgcG9ydCksIGFzIHdlbGwgYXMgYSAxNi1ieXRlIHNlY3JldCB0byBtYWtlIHRoZQorICogcmVzdWx0cyB1bnByZWRpY3RhYmxlIHRvIGV4dGVybmFsIHBhcnRpZXMuICBUaGUgc2VjcmV0IG11c3QgYmUgZ2l2ZW4gYXQKKyAqIGluaXRpYWxpemF0aW9uIHRpbWUgYW5kIHNob3VsZCBpZGVhbGx5IHJlbWFpbiB0aGUgc2FtZSBhY3Jvc3Mgc3lzdGVtCisgKiByZWJvb3RzLiAgVG8gYmUgc3VyZTogdGhlIHNwb29maW5nLXJlc2lzdGFuY2Ugb2YgdGhlIHJlc3VsdGluZyBJU04gZGVwZW5kcworICogbWFpbmx5IG9uIHRoZSBzdHJlbmd0aCBvZiB0aGUgc3VwcGxpZWQgc2VjcmV0IQorICoKKyAqIFRoZSBpbXBsZW1lbnRhdGlvbiB0YWtlcyAzMiBiaXRzIGZyb20gdGhlIGNvbXB1dGVkIGhhc2gsIGFuZCBhZGRzIHRvIGl0IHRoZQorICogY3VycmVudCB0aW1lLCBpbiA0LW1pY3Jvc2Vjb25kIHVuaXRzLiAgVGhlIGN1cnJlbnQgdGltZSBpcyBjb21wdXRlZCBmcm9tIGEKKyAqIGJvb3QgdGltZSBnaXZlbiBhdCBpbml0aWFsaXphdGlvbiwgYW5kIHRoZSBjdXJyZW50IHVwdGltZSBhcyBwcm92aWRlZCBieQorICogc3lzX25vdygpLiAgVGh1cywgaXQgYXNzdW1lcyB0aGF0IHN5c19ub3coKSByZXR1cm5zIGEgdGltZSB2YWx1ZSB0aGF0IGlzCisgKiByZWxhdGl2ZSB0byB0aGUgYm9vdCB0aW1lLCBpLmUuLCB0aGF0IGl0IHN0YXJ0cyBhdCAwIGF0IHN5c3RlbSBib290LCBhbmQKKyAqIG9ubHkgZXZlciBpbmNyZWFzZXMgbW9ub3RvbmljYWxseS4KKyAqCisgKiBGb3IgZWZmaWNpZW5jeSByZWFzb25zLCBhIHNpbmdsZSBNRDUgaW5wdXQgYnVmZmVyIGlzIHVzZWQsIGFuZCBwYXJ0aWFsbHkKKyAqIGZpbGxlZCBpbiBhdCBpbml0aWFsaXphdGlvbiB0aW1lLiAgU3BlY2lmaWNhbGx5LCBvZiB0aGlzIDY0LWJ5dGUgYnVmZmVyLCB0aGUKKyAqIGZpcnN0IDM2IGJ5dGVzIGFyZSB1c2VkIGZvciB0aGUgZm91ci13YXkgVENQIHR1cGxlIGRhdGEsIGZvbGxvd2VkIGJ5IHRoZQorICogMTYtYnl0ZSBzZWNyZXQsIGZvbGxvd2VkIGJ5IDEyLWJ5dGUgemVybyBwYWRkaW5nLiAgVGhlIDY0LWJ5dGUgc2l6ZSBvZiB0aGUKKyAqIGJ1ZmZlciBzaG91bGQgYWNoaWV2ZSB0aGUgYmVzdCBwZXJmb3JtYW5jZSBmb3IgdGhlIGFjdHVhbCBNRDUgY29tcHV0YXRpb24uCisgKgorICogQmFzaWMgdXNhZ2U6CisgKgorICogMS4gaW4geW91ciBsd2lwb3B0cy5oLCBhZGQgdGhlIGZvbGxvd2luZyBsaW5lczoKKyAqCisgKiAgICAjaW5jbHVkZSA8bHdpcC9hcmNoLmg+CisgKiAgICBzdHJ1Y3QgaXBfYWRkcjsKKyAqICAgIHUzMl90IGx3aXBfaG9va190Y3BfaXNuKGNvbnN0IHN0cnVjdCBpcF9hZGRyICpsb2NhbF9pcCwgdTE2X3QgbG9jYWxfcG9ydCwKKyAqICAgICAgY29uc3Qgc3RydWN0IGlwX2FkZHIgKnJlbW90ZV9pcCwgdTE2X3QgcmVtb3RlX3BvcnQpOworICogICAiI2RlZmluZSBMV0lQX0hPT0tfVENQX0lTTiBsd2lwX2hvb2tfdGNwX2lzbiI7CisgKgorICogMi4gZnJvbSB5b3VyIG93biBjb2RlLCBjYWxsIGx3aXBfaW5pdF90Y3BfaXNuKCkgYXQgaW5pdGlhbGl6YXRpb24gdGltZSwgd2l0aAorICogICAgYXBwcm9wcmlhdGUgcGFyYW1ldGVycy4KKyAqLworCisvKgorICogQ29weXJpZ2h0IChjKSAyMDE2IFRoZSBNSU5JWCAzIFByb2plY3QuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogQXV0aG9yOiBEYXZpZCB2YW4gTW9vbGVuYnJvZWsgPGRhdmlkQG1pbml4My5vcmc+CisgKi8KKworI2luY2x1ZGUgInRjcF9pc24uaCIKKyNpbmNsdWRlICJsd2lwL2lwX2FkZHIuaCIKKyNpbmNsdWRlICJsd2lwL3N5cy5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWZkZWYgTFdJUF9IT09LX1RDUF9JU04KKworLyogcHVsbCBpbiBtZDUgb2YgcHBwPyAqLworI2luY2x1ZGUgIm5ldGlmL3BwcC9wcHBfb3B0cy5oIgorI2lmICFQUFBfU1VQUE9SVCB8fCAoIUxXSVBfVVNFX0VYVEVSTkFMX1BPTEFSU1NMICYmICFMV0lQX1VTRV9FWFRFUk5BTF9NQkVEVExTKQorI3VuZGVmICBMV0lQX0lOQ0xVREVEX1BPTEFSU1NMX01ENQorI2RlZmluZSBMV0lQX0lOQ0xVREVEX1BPTEFSU1NMX01ENSAxCisjaW5jbHVkZSAibmV0aWYvcHBwL3BvbGFyc3NsL21kNS5oIgorI2VuZGlmCisKK3N0YXRpYyB1OF90IGlucHV0WzY0XTsKK3N0YXRpYyB1MzJfdCBiYXNlX3RpbWU7CisKKy8qKgorICogSW5pdGlhbGl6ZSB0aGUgVENQIElTTiBtb2R1bGUsIHdpdGggdGhlIGJvb3QgdGltZSBhbmQgYSBzZWNyZXQuCisgKgorICogQHBhcmFtIGJvb3RfdGltZSBXYWxsIGNsb2NrIGJvb3QgdGltZSBvZiB0aGUgc3lzdGVtLCBpbiBzZWNvbmRzLgorICogQHBhcmFtIHNlY3JldF8xNl9ieXRlcyBBIDE2LWJ5dGUgc2VjcmV0IHVzZWQgdG8gcmFuZG9taXplIHRoZSBUQ1AgSVNOcy4KKyAqLwordm9pZAorbHdpcF9pbml0X3RjcF9pc24odTMyX3QgYm9vdF90aW1lLCBjb25zdCB1OF90ICpzZWNyZXRfMTZfYnl0ZXMpCit7CisgIC8qIEluaXRpYWxpemUgdGhlIGlucHV0IGJ1ZmZlciB3aXRoIHRoZSBzZWNyZXQgYW5kIHRyYWlsaW5nIHplcm9lcy4gKi8KKyAgbWVtc2V0KGlucHV0LCAwLCBzaXplb2YoaW5wdXQpKTsKKworICBNRU1DUFkoJmlucHV0WzM2XSwgc2VjcmV0XzE2X2J5dGVzLCAxNik7CisKKyAgLyogU2F2ZSB0aGUgYm9vdCB0aW1lIGluIDQtdXMgdW5pdHMuIE92ZXJmbG93IGlzIG5vIHByb2JsZW0gaGVyZS4gKi8KKyAgYmFzZV90aW1lID0gYm9vdF90aW1lICogMjUwMDAwOworfQorCisvKioKKyAqIEhvb2sgdG8gZ2VuZXJhdGUgYW4gSW5pdGlhbCBTZXF1ZW5jZSBOdW1iZXIgKElTTikgZm9yIGEgbmV3IFRDUCBjb25uZWN0aW9uLgorICoKKyAqIEBwYXJhbSBsb2NhbF9pcCBUaGUgbG9jYWwgSVAgYWRkcmVzcy4KKyAqIEBwYXJhbSBsb2NhbF9wb3J0IFRoZSBsb2NhbCBwb3J0IG51bWJlciwgaW4gaG9zdC1ieXRlIG9yZGVyLgorICogQHBhcmFtIHJlbW90ZV9pcCBUaGUgcmVtb3RlIElQIGFkZHJlc3MuCisgKiBAcGFyYW0gcmVtb3RlX3BvcnQgVGhlIHJlbW90ZSBwb3J0IG51bWJlciwgaW4gaG9zdC1ieXRlIG9yZGVyLgorICogQHJldHVybiBUaGUgSVNOIHRvIHVzZSBmb3IgdGhlIG5ldyBUQ1AgY29ubmVjdGlvbi4KKyAqLwordTMyX3QKK2x3aXBfaG9va190Y3BfaXNuKGNvbnN0IGlwX2FkZHJfdCAqbG9jYWxfaXAsIHUxNl90IGxvY2FsX3BvcnQsCisgICAgY29uc3QgaXBfYWRkcl90ICpyZW1vdGVfaXAsIHUxNl90IHJlbW90ZV9wb3J0KQoreworICBtZDVfY29udGV4dCBjdHg7CisgIHU4X3Qgb3V0cHV0WzE2XTsKKyAgdTMyX3QgaXNuOworCisjaWYgTFdJUF9JUFY0ICYmIExXSVBfSVBWNgorICBpZiAoSVBfSVNfVjYobG9jYWxfaXApKQorI2VuZGlmIC8qIExXSVBfSVBWNCAmJiBMV0lQX0lQVjYgKi8KKyNpZiBMV0lQX0lQVjYKKyAgeworICAgIGNvbnN0IGlwNl9hZGRyX3QgKmxvY2FsX2lwNiwgKnJlbW90ZV9pcDY7CisKKyAgICBsb2NhbF9pcDYgID0gaXBfMl9pcDYobG9jYWxfaXApOworICAgIHJlbW90ZV9pcDYgPSBpcF8yX2lwNihyZW1vdGVfaXApOworCisgICAgU01FTUNQWSgmaW5wdXRbMF0sICAmbG9jYWxfaXA2LT5hZGRyLCAgMTYpOworICAgIFNNRU1DUFkoJmlucHV0WzE2XSwgJnJlbW90ZV9pcDYtPmFkZHIsIDE2KTsKKyAgfQorI2VuZGlmIC8qIExXSVBfSVBWNiAqLworI2lmIExXSVBfSVBWNCAmJiBMV0lQX0lQVjYKKyAgZWxzZQorI2VuZGlmIC8qIExXSVBfSVBWNCAmJiBMV0lQX0lQVjYgKi8KKyNpZiBMV0lQX0lQVjQKKyAgeworICAgIGNvbnN0IGlwNF9hZGRyX3QgKmxvY2FsX2lwNCwgKnJlbW90ZV9pcDQ7CisKKyAgICBsb2NhbF9pcDQgID0gaXBfMl9pcDQobG9jYWxfaXApOworICAgIHJlbW90ZV9pcDQgPSBpcF8yX2lwNChyZW1vdGVfaXApOworCisgICAgLyogUmVwcmVzZW50IElQdjQgYWRkcmVzc2VzIGFzIElQdjQtbWFwcGVkIElQdjYgYWRkcmVzc2VzLCB0byBlbnN1cmUgdGhhdAorICAgICAqIHRoZSBJUHY0IGFuZCBJUHY2IGFkZHJlc3Mgc3BhY2VzIGFyZSBjb21wbGV0ZWx5IGRpc2pvaW50LiAqLworICAgIG1lbXNldCgmaW5wdXRbMF0sIDAsIDEwKTsKKyAgICBpbnB1dFsxMF0gPSAweGZmOworICAgIGlucHV0WzExXSA9IDB4ZmY7CisgICAgU01FTUNQWSgmaW5wdXRbMTJdLCAmbG9jYWxfaXA0LT5hZGRyLCA0KTsKKyAgICBtZW1zZXQoJmlucHV0WzE2XSwgMCwgMTApOworICAgIGlucHV0WzI2XSA9IDB4ZmY7CisgICAgaW5wdXRbMjddID0gMHhmZjsKKyAgICBTTUVNQ1BZKCZpbnB1dFsyOF0sICZyZW1vdGVfaXA0LT5hZGRyLCA0KTsKKyAgfQorI2VuZGlmIC8qIExXSVBfSVBWNCAqLworCisgIGlucHV0WzMyXSA9ICh1OF90KShsb2NhbF9wb3J0ID4+IDgpOworICBpbnB1dFszM10gPSAodThfdCkobG9jYWxfcG9ydCAmIDB4ZmYpOworICBpbnB1dFszNF0gPSAodThfdCkocmVtb3RlX3BvcnQgPj4gOCk7CisgIGlucHV0WzM1XSA9ICh1OF90KShyZW1vdGVfcG9ydCAmIDB4ZmYpOworCisgIC8qIFRoZSBzZWNyZXQgYW5kIHBhZGRpbmcgYXJlIGFscmVhZHkgZmlsbGVkIGluLiAqLworCisgIC8qIEdlbmVyYXRlIHRoZSBoYXNoLCB1c2luZyBNRDUuICovCisgIG1kNV9zdGFydHMoJmN0eCk7CisgIG1kNV91cGRhdGUoJmN0eCwgaW5wdXQsIHNpemVvZihpbnB1dCkpOworICBtZDVfZmluaXNoKCZjdHgsIG91dHB1dCk7CisKKyAgLyogQXJiaXRyYXJpbHkgdGFrZSB0aGUgZmlyc3QgMzIgYml0cyBmcm9tIHRoZSBnZW5lcmF0ZWQgaGFzaC4gKi8KKyAgTUVNQ1BZKCZpc24sIG91dHB1dCwgc2l6ZW9mKGlzbikpOworCisgIC8qIEFkZCB0aGUgY3VycmVudCB0aW1lIGluIDQtbWljcm9zZWNvbmQgdW5pdHMuICovCisgIHJldHVybiBpc24gKyBiYXNlX3RpbWUgKyBzeXNfbm93KCkgKiAyNTA7Cit9CisKKyNlbmRpZiAvKiBMV0lQX0hPT0tfVENQX0lTTiAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hZGRvbnMvdGNwX2lzbi90Y3BfaXNuLmggYi9jb250cmliL2FkZG9ucy90Y3BfaXNuL3RjcF9pc24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmFlY2EyCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hZGRvbnMvdGNwX2lzbi90Y3BfaXNuLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNiBUaGUgTUlOSVggMyBQcm9qZWN0LgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIEF1dGhvcjogRGF2aWQgdmFuIE1vb2xlbmJyb2VrIDxkYXZpZEBtaW5peDMub3JnPgorICovCisKKyNpZm5kZWYgTFdJUF9IRFJfQ09OVFJJQl9BRERPTlNfVENQX0lTTl9ICisjZGVmaW5lIExXSVBfSERSX0NPTlRSSUJfQURET05TX1RDUF9JU05fSAorCisjaW5jbHVkZSAibHdpcC9vcHQuaCIKKyNpbmNsdWRlICJsd2lwL2lwX2FkZHIuaCIKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit2b2lkIGx3aXBfaW5pdF90Y3BfaXNuKHUzMl90IGJvb3RfdGltZSwgY29uc3QgdThfdCAqc2VjcmV0XzE2X2J5dGVzKTsKK3UzMl90IGx3aXBfaG9va190Y3BfaXNuKGNvbnN0IGlwX2FkZHJfdCAqbG9jYWxfaXAsIHUxNl90IGxvY2FsX3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpcF9hZGRyX3QgKnJlbW90ZV9pcCwgdTE2X3QgcmVtb3RlX3BvcnQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTFdJUF9IRFJfQ09OVFJJQl9BRERPTlNfVENQX0lTTl9IICovCmRpZmYgLS1naXQgYS9jb250cmliL2FkZG9ucy90Y3BfbWQ1L1JFQURNRSBiL2NvbnRyaWIvYWRkb25zL3RjcF9tZDUvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2NDA4Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FkZG9ucy90Y3BfbWQ1L1JFQURNRQpAQCAtMCwwICsxLDI3IEBACitUaGlzIGZvbGRlciBwcm92aWRlcyBhbiBleGFtcGxlIGltcGxlbWVudGF0aW9uIG9mIGhvdyB0byBhZGQgY3VzdG9tIHRjcCBoZWFkZXIKK29wdGlvbnMgYW5kIGN1c3RvbSBzb2NrZXQgb3B0aW9ucy4KKworSXQgZG9lcyB0aGlzIGJ5IGltcGxlbWVudGluZyB0aGUgKHNlbGRvbSB1c2VkKSB0Y3AgbWQ1IHNpZ25hdHVyZS4KKworVG8gZW5hYmxlIGl0LCBhZGQgYW4gTFdJUF9IT09LX0ZJTEVOQU1FIGhvb2sgZmlsZSwgaW5jbHVkZSB0Y3BfbWQ1LmggaW4gaXQgYW5kCitkZWZpbmUgdGhlc2UgaG9va3M6CisKKyAgI2RlZmluZSBMV0lQX0hPT0tfVENQX0lOUEFDS0VUX1BDQihwY2IsIGhkciwgb3B0bGVuLCBvcHQxbGVuLCBvcHQyLCBwKSB0Y3BfbWQ1X2NoZWNrX2lucGFja2V0KHBjYiwgaGRyLCBvcHRsZW4sIG9wdDFsZW4sIG9wdDIsIHApCisgICNkZWZpbmUgTFdJUF9IT09LX1RDUF9PUFRfTEVOR1RIX1NFR01FTlQocGNiLCBpbnRlcm5hbF9sZW4pICAgICAgICAgICAgdGNwX21kNV9nZXRfYWRkaXRpb25hbF9vcHRpb25fbGVuZ3RoKHBjYiwgaW50ZXJuYWxfbGVuKQorICAjZGVmaW5lIExXSVBfSE9PS19UQ1BfQUREX1RYX09QVElPTlMocCwgaGRyLCBwY2IsIG9wdHMpICAgICAgICAgICAgICAgIHRjcF9tZDVfYWRkX3R4X29wdGlvbnMocCwgaGRyLCBwY2IsICBvcHRzKQorICAjZGVmaW5lIExXSVBfSE9PS19TT0NLRVRTX1NFVFNPQ0tPUFQocywgc29jaywgbGV2ZWwsIG9wdG5hbWUsIG9wdHZhbCwgb3B0bGVuLCBlcnIpIHRjcF9tZDVfc2V0c29ja29wdF9ob29rKHNvY2ssIGxldmVsLCBvcHRuYW1lLCBvcHR2YWwsIG9wdGxlbiwgZXJyKQorCitUaGVuLCBpbiB5b3VyIHNvY2tldHMgYXBwbGljYXRpb24sIGVuYWJsZSBtZDUgc2lnbmF0dXJlIG9uIGEgc29ja2V0IGxpa2UgdGhpczoKKworICBzdHJ1Y3QgdGNwX21kNXNpZyBtZDU7CisgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGFkZHJfcmVtb3RlOyAvKiBJbml0aWFsaXplIHRoaXMgdG8gcmVtb3RlIGFkZHJlc3MgYW5kIHBvcnQgKi8KKyAgbWVtY3B5KCZtZDUudGNwbV9hZGRyLCAmYWRkcl9yZW1vdGUsIHNpemVvZihhZGRyX3JlbW90ZSkpOworICBzdHJjcHkobWQ1LnRjcG1fa2V5LCBrZXkpOyAvKiB0aGlzIGlzIHRoZSBtZDUga2V5IHBlciBjb25uZWN0aW9uICovCisgIG1kNS50Y3BtX2tleWxlbiA9IHN0cmxlbihrZXkpOworICBpZiAoKHJldCA9IHNldHNvY2tvcHQoc29ja2ZkLCBJUFBST1RPX1RDUCwgVENQX01ENVNJRywgJm1kNSwgc2l6ZW9mKG1kNSkpKSA8IDApIHsKKyAgICBwZXJyb3IoInNldHNvY2tvcHQgVENQX01ENVNJRyIpOworICAgIHJldHVybjsKKyAgfQorCitBZnRlciB0aGF0LCB5b3VyIGNvbm5lY3Rpb24gKGNsaWVudCkgb3IgYWxsIGluY29taW5nIGNvbm5lY3Rpb25zIChzZXJ2ZXIpIHJlcXVpcmUKK3RjcCBtZDUgc2lnbmF0dXJlcy4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYWRkb25zL3RjcF9tZDUvdGNwX21kNS5jIGIvY29udHJpYi9hZGRvbnMvdGNwX21kNS90Y3BfbWQ1LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc4MTVkOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYWRkb25zL3RjcF9tZDUvdGNwX21kNS5jCkBAIC0wLDAgKzEsNTM0IEBACisvKioKKyAqIEBmaWxlOiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBUQ1AgTUQ1IHNpZ25hdHVyZXMgYnkgdXNpbmcgdmFyaW91cyBob29rcyBpbgorICogbHdJUCB0byBpbXBsZW1lbnQgY3VzdG9tIHRjcCBvcHRpb25zIGFuZCBjdXN0b20gc29ja2V0IG9wdGlvbnMuCisgKi8KKworLyoKKyAqIENvcHlyaWdodCAoYykgMjAxOCBTaW1vbiBHb2xkc2NobWlkdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIEF1dGhvcjogU2ltb24gR29sZHNjaG1pZHQgPGdvbGRzaW1vbkBnbXguZGU+CisgKi8KKworI2luY2x1ZGUgInRjcF9tZDUuaCIKKyNpbmNsdWRlICJsd2lwL2lwX2FkZHIuaCIKKyNpbmNsdWRlICJsd2lwL3N5cy5oIgorI2luY2x1ZGUgImx3aXAvcHJvdC90Y3AuaCIKKyNpbmNsdWRlICJsd2lwL3ByaXYvdGNwX3ByaXYuaCIKKyNpbmNsdWRlICJsd2lwL3NvY2tldHMuaCIKKyNpbmNsdWRlICJsd2lwL3ByaXYvc29ja2V0c19wcml2LmgiCisjaW5jbHVkZSAibHdpcC9hcGkuaCIKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworLyogcHVsbCBpbiBtZDUgb2YgcHBwPyAqLworI2luY2x1ZGUgIm5ldGlmL3BwcC9wcHBfb3B0cy5oIgorI2lmICFQUFBfU1VQUE9SVCB8fCAoIUxXSVBfVVNFX0VYVEVSTkFMX1BPTEFSU1NMICYmICFMV0lQX1VTRV9FWFRFUk5BTF9NQkVEVExTKQorI3VuZGVmICBMV0lQX0lOQ0xVREVEX1BPTEFSU1NMX01ENQorI2RlZmluZSBMV0lQX0lOQ0xVREVEX1BPTEFSU1NMX01ENSAxCisjaW5jbHVkZSAibmV0aWYvcHBwL3BvbGFyc3NsL21kNS5oIgorI2VuZGlmCisKKyNpZiAhTFdJUF9UQ1BfUENCX05VTV9FWFRfQVJHUworI2Vycm9yIHRjcF9tZDUgbmVlZHMgTFdJUF9UQ1BfUENCX05VTV9FWFRfQVJHUworI2VuZGlmCisKKyNkZWZpbmUgTFdJUF9UQ1BfT1BUX01ENSAgICAgICAgICAxOSAvKiBudW1iZXIgb2YgdGhlIG1kNSBvcHRpb24gKi8KKyNkZWZpbmUgTFdJUF9UQ1BfT1BUX0xFTl9NRDUgICAgICAxOCAvKiBsZW5ndGggb2YgdGhlIG1kNSBvcHRpb24gKi8KKyNkZWZpbmUgTFdJUF9UQ1BfT1BUX0xFTl9NRDVfT1VUICAyMCAvKiAxOCArIGFsaWdubWVudCAqLworCisjZGVmaW5lIExXSVBfVENQX01ENV9ESUdFU1RfTEVOICAgMTYKKworLyogVGhpcyBrZWVwcyB0aGUgbWQ1IHN0YXRlIGludGVybmFsbHkgKi8KK3N0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbyB7CisgIHN0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbyAqbmV4dDsKKyAgaXBfYWRkcl90IHJlbW90ZV9hZGRyOworICB1MTZfdCByZW1vdGVfcG9ydDsKKyAgdThfdCBrZXlbVENQX01ENVNJR19NQVhLRVlMRU5dOworICB1MTZfdCBrZXlfbGVuOworfTsKKworLyogQ2FsbGJhY2sgZnVuY3Rpb24gcHJvdG90eXBlczogKi8KK3N0YXRpYyB2b2lkIHRjcF9tZDVfZXh0YXJnX2Rlc3Ryb3kodThfdCBpZCwgdm9pZCAqZGF0YSk7CitzdGF0aWMgZXJyX3QgdGNwX21kNV9leHRhcmdfcGFzc2l2ZV9vcGVuKHU4X3QgaWQsIHN0cnVjdCB0Y3BfcGNiX2xpc3RlbiAqbHBjYiwgc3RydWN0IHRjcF9wY2IgKmNwY2IpOworLyogRGVmaW5lIG91ciB0Y3AgZXh0IGFyZyBjYWxsYmFjayBzdHJ1Y3R1cmU6ICovCitjb25zdCBzdHJ1Y3QgdGNwX2V4dF9hcmdfY2FsbGJhY2tzIHRjcF9tZDVfZXh0X2FyZ19jYWxsYmFja3MgPSB7CisgIHRjcF9tZDVfZXh0YXJnX2Rlc3Ryb3ksCisgIHRjcF9tZDVfZXh0YXJnX3Bhc3NpdmVfb3BlbgorfTsKKworc3RhdGljIHU4X3QgdGNwX21kNV9leHRhcmdfaWQgPSBMV0lQX1RDUF9QQ0JfTlVNX0VYVF9BUkdfSURfSU5WQUxJRDsKK3N0YXRpYyB1OF90IHRjcF9tZDVfb3B0c19idWZbNDBdOworCisvKiogSW5pdGlhbGl6ZSB0aGlzIG1vZHVsZSAoYWxsb2NhdGVzIGEgdGNwIGV4dCBhcmcgaWQpICovCit2b2lkCit0Y3BfbWQ1X2luaXQodm9pZCkKK3sKKyAgdGNwX21kNV9leHRhcmdfaWQgPSB0Y3BfZXh0X2FyZ19hbGxvY19pZCgpOworfQorCisvKiBDcmVhdGUgYSBjb25uLWluZm8gc3RydWN0dXJlIHRoYXQgaG9sZHMgdGhlIG1kNSBzdGF0ZSBwZXIgY29ubmVjdGlvbiAqLworc3RhdGljIHN0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbyAqCit0Y3BfbWQ1X2Nvbm5faW5mb19hbGxvYyh2b2lkKQoreworICByZXR1cm4gKHN0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbyAqKW1lbV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbykpOworfQorCisvKiBGcmVlcyBhIGNvbm4taW5mbyBzdHJ1Y3R1cmUgdGhhdCBob2xkcyB0aGUgbWQ1IHN0YXRlIHBlciBjb25uZWN0aW9uICovCitzdGF0aWMgdm9pZAordGNwX21kNV9jb25uX2luZm9fZnJlZShzdHJ1Y3QgdGNwX21kNV9jb25uX2luZm8gKmluZm8pCit7CisgIG1lbV9mcmVlKGluZm8pOworfQorCisvKiBBIHBjYiBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWQuIEZyZWUgaXRzIGV4dGRhdGEgKi8KK3N0YXRpYyB2b2lkCit0Y3BfbWQ1X2V4dGFyZ19kZXN0cm95KHU4X3QgaWQsIHZvaWQgKmRhdGEpCit7CisgIHN0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbyAqaXRlcjsKKworICBMV0lQX0FTU0VSVCgidGNwX21kNV9leHRhcmdfaWQgIT0gTFdJUF9UQ1BfUENCX05VTV9FWFRfQVJHX0lEX0lOVkFMSUQiLAorICAgIHRjcF9tZDVfZXh0YXJnX2lkICE9IExXSVBfVENQX1BDQl9OVU1fRVhUX0FSR19JRF9JTlZBTElEKTsKKyAgTFdJUF9BU1NFUlQoImlkID09IHRjcF9tZDVfZXh0YXJnX2lkIiwgaWQgPT0gdGNwX21kNV9leHRhcmdfaWQpOworICBMV0lQX1VOVVNFRF9BUkcoaWQpOworCisgIGl0ZXIgPSAoc3RydWN0IHRjcF9tZDVfY29ubl9pbmZvICopZGF0YTsKKyAgd2hpbGUgKGl0ZXIgIT0gTlVMTCkgeworICAgIHN0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbyAqaW5mbyA9IGl0ZXI7CisgICAgaXRlciA9IGl0ZXItPm5leHQ7CisgICAgdGNwX21kNV9jb25uX2luZm9fZnJlZShpbmZvKTsKKyAgfQorfQorCisvKiBUcnkgdG8gZmluZCBhbiBtZDUgY29ubmVjdGlvbiBpbmZvIGZvciB0aGUgc3BlY2lmaWVkIHJlbW90ZSBjb25uZWN0aW9uICovCitzdGF0aWMgc3RydWN0IHRjcF9tZDVfY29ubl9pbmZvICoKK3RjcF9tZDVfZ2V0X2luZm8oY29uc3Qgc3RydWN0IHRjcF9wY2IgKnBjYiwgY29uc3QgaXBfYWRkcl90ICpyZW1vdGVfaXAsIHUxNl90IHJlbW90ZV9wb3J0KQoreworICBpZiAocGNiICE9IE5VTEwpIHsKKyAgICBzdHJ1Y3QgdGNwX21kNV9jb25uX2luZm8gKmluZm8gPSAoc3RydWN0IHRjcF9tZDVfY29ubl9pbmZvICopdGNwX2V4dF9hcmdfZ2V0KHBjYiwgdGNwX21kNV9leHRhcmdfaWQpOworICAgIHdoaWxlIChpbmZvICE9IE5VTEwpIHsKKyAgICAgIGlmIChpcF9hZGRyX2VxKCZpbmZvLT5yZW1vdGVfYWRkciwgcmVtb3RlX2lwKSkgeworICAgICAgICBpZiAoaW5mby0+cmVtb3RlX3BvcnQgPT0gcmVtb3RlX3BvcnQpIHsKKyAgICAgICAgICByZXR1cm4gaW5mbzsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgaW5mbyA9IGluZm8tPm5leHQ7CisgICAgfQorICB9CisgIHJldHVybiBOVUxMOworfQorCisvKiBQYXNzaXZlIG9wZW46IGNvcHkgbWQ1IGNvbm5lY3Rpb24gaW5mbyBmcm9tIGxpc3RlbiBwY2IgdG8gY29ubmVjdGlvbiBwY2IKKyAqIG9yIHJldHVybiBlcnJvciAoY29ubmVjdGlvbiB3aWxsIGJlIGNsb3NlZCkKKyAqLworc3RhdGljIGVycl90Cit0Y3BfbWQ1X2V4dGFyZ19wYXNzaXZlX29wZW4odThfdCBpZCwgc3RydWN0IHRjcF9wY2JfbGlzdGVuICpscGNiLCBzdHJ1Y3QgdGNwX3BjYiAqY3BjYikKK3sKKyAgc3RydWN0IHRjcF9tZDVfY29ubl9pbmZvICppdGVyOworCisgIExXSVBfQVNTRVJUKCJscGNiICE9IE5VTEwiLCBscGNiICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgiY3BjYiAhPSBOVUxMIiwgY3BjYiAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInRjcF9tZDVfZXh0YXJnX2lkICE9IExXSVBfVENQX1BDQl9OVU1fRVhUX0FSR19JRF9JTlZBTElEIiwKKyAgICB0Y3BfbWQ1X2V4dGFyZ19pZCAhPSBMV0lQX1RDUF9QQ0JfTlVNX0VYVF9BUkdfSURfSU5WQUxJRCk7CisgIExXSVBfQVNTRVJUKCJpZCA9PSB0Y3BfbWQ1X2V4dGFyZ19pZCIsIGlkID09IHRjcF9tZDVfZXh0YXJnX2lkKTsKKyAgTFdJUF9VTlVTRURfQVJHKGlkKTsKKworICBpdGVyID0gKHN0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbyAqKXRjcF9leHRfYXJnX2dldCgoc3RydWN0IHRjcF9wY2IgKilscGNiLCBpZCk7CisgIHdoaWxlIChpdGVyICE9IE5VTEwpIHsKKyAgICBpZiAoaXRlci0+cmVtb3RlX3BvcnQgPT0gY3BjYi0+cmVtb3RlX3BvcnQpIHsKKyAgICAgIGlmIChpcF9hZGRyX2VxKCZpdGVyLT5yZW1vdGVfYWRkciwgJmNwY2ItPnJlbW90ZV9pcCkpIHsKKyAgICAgICAgc3RydWN0IHRjcF9tZDVfY29ubl9pbmZvICppbmZvID0gdGNwX21kNV9jb25uX2luZm9fYWxsb2MoKTsKKyAgICAgICAgaWYgKGluZm8gIT0gTlVMTCkgeworICAgICAgICAgIG1lbWNweShpbmZvLCBpdGVyLCBzaXplb2Yoc3RydWN0IHRjcF9tZDVfY29ubl9pbmZvKSk7CisgICAgICAgICAgdGNwX2V4dF9hcmdfc2V0KGNwY2IsIGlkLCBpbmZvKTsKKyAgICAgICAgICB0Y3BfZXh0X2FyZ19zZXRfY2FsbGJhY2tzKGNwY2IsIGlkLCAmdGNwX21kNV9leHRfYXJnX2NhbGxiYWNrcyk7CisgICAgICAgICAgcmV0dXJuIEVSUl9PSzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICByZXR1cm4gRVJSX01FTTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICBpdGVyID0gaXRlci0+bmV4dDsKKyAgfQorICAvKiByZW1vdGUgY29ubmVjdGlvbiBub3QgZm91bmQgKi8KKyAgcmV0dXJuIEVSUl9WQUw7Cit9CisKKy8qIFBhcnNlIHRjcCBoZWFkZXIgb3B0aW9ucyBhbmQgcmV0dXJuIDEgaWYgYW4gbWQ1IHNpZ25hdHVyZSBvcHRpb24gd2FzIGZvdW5kICovCitzdGF0aWMgaW50Cit0Y3BfbWQ1X3BhcnNlb3B0KGNvbnN0IHU4X3QgKm9wdHMsIHUxNl90IG9wdGxlbiwgdThfdCAqbWQ1X2RpZ2VzdF9vdXQpCit7CisgIHU4X3QgZGF0YTsKKyAgdTE2X3Qgb3B0aWR4OworCisgIC8qIFBhcnNlIHRoZSBUQ1AgTVNTIG9wdGlvbiwgaWYgcHJlc2VudC4gKi8KKyAgaWYgKG9wdGxlbiAhPSAwKSB7CisgICAgZm9yIChvcHRpZHggPSAwOyBvcHRpZHggPCBvcHRsZW47ICkgeworICAgICAgdThfdCBvcHQgPSBvcHRzW29wdGlkeCsrXTsKKyAgICAgIHN3aXRjaCAob3B0KSB7CisgICAgICAgIGNhc2UgTFdJUF9UQ1BfT1BUX0VPTDoKKyAgICAgICAgICAvKiBFbmQgb2Ygb3B0aW9ucy4gKi8KKyAgICAgICAgICBMV0lQX0RFQlVHRihUQ1BfSU5QVVRfREVCVUcsICgidGNwX3BhcnNlb3B0OiBFT0xcbiIpKTsKKyAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSBMV0lQX1RDUF9PUFRfTk9QOgorICAgICAgICAgIC8qIE5PUCBvcHRpb24uICovCisgICAgICAgICAgTFdJUF9ERUJVR0YoVENQX0lOUFVUX0RFQlVHLCAoInRjcF9wYXJzZW9wdDogTk9QXG4iKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTFdJUF9UQ1BfT1BUX01ENToKKyAgICAgICAgICBMV0lQX0RFQlVHRihUQ1BfSU5QVVRfREVCVUcsICgidGNwX3BhcnNlb3B0OiBNRDVcbiIpKTsKKyAgICAgICAgICBpZiAob3B0c1tvcHRpZHgrK10gIT0gTFdJUF9UQ1BfT1BUX0xFTl9NRDUgfHwgKG9wdGlkeCAtIDIgKyBMV0lQX1RDUF9PUFRfTEVOX01ENSkgPiBvcHRsZW4pIHsKKyAgICAgICAgICAgIC8qIEJhZCBsZW5ndGggKi8KKyAgICAgICAgICAgIExXSVBfREVCVUdGKFRDUF9JTlBVVF9ERUJVRywgKCJ0Y3BfcGFyc2VvcHQ6IGJhZCBsZW5ndGhcbiIpKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgIH0KKyAgICAgICAgICAvKiBBbiBNRDUgb3B0aW9uIHdpdGggdGhlIHJpZ2h0IG9wdGlvbiBsZW5ndGguICovCisgICAgICAgICAgbWVtY3B5KG1kNV9kaWdlc3Rfb3V0LCAmb3B0c1tvcHRpZHhdLCBMV0lQX1RDUF9NRDVfRElHRVNUX0xFTik7CisgICAgICAgICAgLyogbm8gbmVlZCB0byBwcm9jZXNzIHRoZSBvcHRpb25zIGZ1cnRoZXIgKi8KKyAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICBMV0lQX0RFQlVHRihUQ1BfSU5QVVRfREVCVUcsICgidGNwX3BhcnNlb3B0OiBvdGhlclxuIikpOworICAgICAgICAgIGRhdGEgPSBvcHRzW29wdGlkeCsrXTsKKyAgICAgICAgICBpZiAoZGF0YSA8IDIpIHsKKyAgICAgICAgICAgIExXSVBfREVCVUdGKFRDUF9JTlBVVF9ERUJVRywgKCJ0Y3BfcGFyc2VvcHQ6IGJhZCBsZW5ndGhcbiIpKTsKKyAgICAgICAgICAgIC8qIElmIHRoZSBsZW5ndGggZmllbGQgaXMgemVybywgdGhlIG9wdGlvbnMgYXJlIG1hbGZvcm1lZAorICAgICAgICAgICAgICAgYW5kIHdlIGRvbid0IHByb2Nlc3MgdGhlbSBmdXJ0aGVyLiAqLworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgfQorICAgICAgICAgIC8qIEFsbCBvdGhlciBvcHRpb25zIGhhdmUgYSBsZW5ndGggZmllbGQsIHNvIHRoYXQgd2UgZWFzaWx5CisgICAgICAgICAgICAgY2FuIHNraXAgcGFzdCB0aGVtLiAqLworICAgICAgICAgIG9wdGlkeCArPSBkYXRhIC0gMjsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgcmV0dXJuIDA7Cit9CisKKy8qIEdldCB0Y3Agb3B0aW9ucyBpbnRvIGNvbnRpZ3VvdXMgbWVtb3J5LiBNYXkgYmUgcmVxdWlyZWQgaWYgaW5wdXQgcGJ1ZnMKKyAqIGFyZSBjaGFpbmVkLgorICovCitzdGF0aWMgY29uc3QgdThfdCoKK3RjcF9tZDVfb3B0aW9uc19zaW5nbGVidWYoc3RydWN0IHRjcF9oZHIgKmhkciwgdTE2X3Qgb3B0bGVuLCB1MTZfdCBvcHQxbGVuLCB1OF90ICpvcHQyKQoreworICBjb25zdCB1OF90ICpvcHRzOworICBMV0lQX0FTU0VSVCgiaGRyICE9IE5VTEwiLCBoZHIgIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJvcHRsZW4gPj0gb3B0MWxlbiIsIG9wdGxlbiA+PSBvcHQxbGVuKTsKKyAgb3B0cyA9IChjb25zdCB1OF90ICopaGRyICsgVENQX0hMRU47CisgIGlmIChvcHRsZW4gPT0gb3B0MWxlbikgeworICAgIC8qIGFybGVhZHkgaW4gb25lIHBpZWNlICovCisgICAgcmV0dXJuIG9wdHM7CisgIH0KKyAgaWYgKG9wdGxlbiA+IHNpemVvZih0Y3BfbWQ1X29wdHNfYnVmKSkgeworICAgIC8qIG9wdGlvbnMgdG9vIGxvbmcgKi8KKyAgICByZXR1cm4gTlVMTDsKKyAgfQorICBMV0lQX0FTU0VSVCgib3B0MiAhPSBOVUxMIiwgb3B0MiAhPSBOVUxMKTsKKyAgLyogY29weSBmaXJzdCBwYXJ0ICovCisgIG1lbWNweSh0Y3BfbWQ1X29wdHNfYnVmLCBvcHRzLCBvcHQxbGVuKTsKKyAgLyogY29weSBzZWNvbmQgcGFydCAqLworICBtZW1jcHkoJnRjcF9tZDVfb3B0c19idWZbb3B0MWxlbl0sIG9wdDIsIG9wdGxlbiAtIG9wdDFsZW4pOworICByZXR1cm4gdGNwX21kNV9vcHRzX2J1ZjsKK30KKworLyogQ3JlYXRlIHRoZSBtZDUgZGlnZXN0IGZvciBhIGdpdmVuIHNlZ21lbnQgKi8KK3N0YXRpYyBpbnQKK3RjcF9tZDVfY3JlYXRlX2RpZ2VzdChjb25zdCBpcF9hZGRyX3QgKmlwX3NyYywgY29uc3QgaXBfYWRkcl90ICppcF9kc3QsIGNvbnN0IHN0cnVjdCB0Y3BfaGRyICpoZHIsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdThfdCAqa2V5LCBzaXplX3Qga2V5X2xlbiwgdThfdCAqZGlnZXN0X291dCwgc3RydWN0IHBidWYgKnApCit7CisgIG1kNV9jb250ZXh0IGN0eDsKKyAgdThfdCB0bXA4OworICB1MTZfdCB0bXAxNjsKKyAgY29uc3Qgc2l6ZV90IGFkZHJfbGVuID0gSVBfQUREUl9SQVdfU0laRSgqaXBfc3JjKTsKKworICBpZiAocCAhPSBOVUxMKSB7CisgICAgTFdJUF9BU1NFUlQoInBidWYgbXVzdCBub3QgcG9pbnQgdG8gdGNwIGhlYWRlciBoZXJlISIsIChjb25zdCB2b2lkICopaGRyICE9IHAtPnBheWxvYWQpOworICB9CisKKyAgLyogR2VuZXJhdGUgdGhlIGhhc2gsIHVzaW5nIE1ENS4gKi8KKyAgbWQ1X3N0YXJ0cygmY3R4KTsKKyAgLyogMS4gdGhlIFRDUCBwc2V1ZG8taGVhZGVyIChpbiB0aGUgb3JkZXI6IHNvdXJjZSBJUCBhZGRyZXNzLAorICAgICAgICAgIGRlc3RpbmF0aW9uIElQIGFkZHJlc3MsIHplcm8tcGFkZGVkIHByb3RvY29sIG51bWJlciwgYW5kCisgICAgICAgICAgc2VnbWVudCBsZW5ndGgpICovCisgIG1kNV91cGRhdGUoJmN0eCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIqKWlwX3NyYywgYWRkcl9sZW4pOworICBtZDVfdXBkYXRlKCZjdHgsIChjb25zdCB1bnNpZ25lZCBjaGFyKilpcF9kc3QsIGFkZHJfbGVuKTsKKyAgdG1wOCA9IDA7IC8qIHplcm8tcGFkZGVkICovCisgIG1kNV91cGRhdGUoJmN0eCwgJnRtcDgsIDEpOworICB0bXA4ID0gSVBfUFJPVE9fVENQOworICBtZDVfdXBkYXRlKCZjdHgsICZ0bXA4LCAxKTsKKyAgdG1wMTYgPSBsd2lwX2h0b25zKFRDUEhfSERSTEVOX0JZVEVTKGhkcikgKyAocCA/IHAtPnRvdF9sZW4gOiAwKSk7CisgIG1kNV91cGRhdGUoJmN0eCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIqKSZ0bXAxNiwgMik7CisgIC8qIDIuIHRoZSBUQ1AgaGVhZGVyLCBleGNsdWRpbmcgb3B0aW9ucywgYW5kIGFzc3VtaW5nIGEgY2hlY2tzdW0gb2YKKyAgICAgICAgICB6ZXJvICovCisgIG1kNV91cGRhdGUoJmN0eCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIqKWhkciwgc2l6ZW9mKHN0cnVjdCB0Y3BfaGRyKSk7CisgIC8qIDMuIHRoZSBUQ1Agc2VnbWVudCBkYXRhIChpZiBhbnkpICovCisgIGlmICgocCAhPSBOVUxMKSAmJiAocC0+dG90X2xlbiAhPSAwKSkgeworICAgIHN0cnVjdCBwYnVmICpxOworICAgIGZvciAocSA9IHA7IHEgIT0gTlVMTDsgcSA9IHEtPm5leHQpIHsKKyAgICAgIG1kNV91cGRhdGUoJmN0eCwgKGNvbnN0IHVuc2lnbmVkIGNoYXIqKXEtPnBheWxvYWQsIHEtPmxlbik7CisgICAgfQorICB9CisgIC8qIDQuIGFuIGluZGVwZW5kZW50bHktc3BlY2lmaWVkIGtleSBvciBwYXNzd29yZCwga25vd24gdG8gYm90aCBUQ1BzCisgICAgICAgICAgYW5kIHByZXN1bWFibHkgY29ubmVjdGlvbi1zcGVjaWZpYyAqLworICBtZDVfdXBkYXRlKCZjdHgsIGtleSwga2V5X2xlbik7CisKKyAgbWQ1X2ZpbmlzaCgmY3R4LCBkaWdlc3Rfb3V0KTsKKyAgcmV0dXJuIDE7Cit9CisKKy8qIER1cGxpY2F0ZSBhIHRjcCBoZWFkZXIgYW5kIG1ha2Ugc3VyZSB0aGUgZmllbGRzIGFyZSBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgKi8KK3N0YXRpYyB2b2lkCit0Y3BfbWQ1X2R1cF90Y3BoZHIoc3RydWN0IHRjcF9oZHIgKnRjcGhkcl9jb3B5LCBjb25zdCBzdHJ1Y3QgdGNwX2hkciAqdGNwaGRyX2luLCBpbnQgdGNwaGRyX2luX2lzX2hvc3Rfb3JkZXIpCit7CisgIG1lbWNweSh0Y3BoZHJfY29weSwgdGNwaGRyX2luLCBzaXplb2Yoc3RydWN0IHRjcF9oZHIpKTsKKyAgdGNwaGRyX2NvcHktPmNoa3N1bSA9IDA7IC8qIGNoZWNrc3VtIGlzIHplcm8gZm9yIHRoZSBwc2V1ZG8gaGVhZGVyICovCisgIGlmICh0Y3BoZHJfaW5faXNfaG9zdF9vcmRlcikgeworICAgIC8qIGx3SVAgd3JpdGVzIHRoZSBUQ1AgaGVhZGVyIHZhbHVlcyBiYWNrIHRvIHRoZSBidWZmZXIsIHdlIG5lZWQgdG8gaW52ZXJ0IHRoYXQgaGVyZTogKi8KKyAgICB0Y3BoZHJfY29weS0+c3JjID0gbHdpcF9odG9ucyh0Y3BoZHJfY29weS0+c3JjKTsKKyAgICB0Y3BoZHJfY29weS0+ZGVzdCA9IGx3aXBfaHRvbnModGNwaGRyX2NvcHktPmRlc3QpOworICAgIHRjcGhkcl9jb3B5LT5zZXFubyA9IGx3aXBfaHRvbmwodGNwaGRyX2NvcHktPnNlcW5vKTsKKyAgICB0Y3BoZHJfY29weS0+YWNrbm8gPSBsd2lwX2h0b25sKHRjcGhkcl9jb3B5LT5hY2tubyk7CisgICAgdGNwaGRyX2NvcHktPnduZCA9IGx3aXBfaHRvbnModGNwaGRyX2NvcHktPnduZCk7CisgICAgdGNwaGRyX2NvcHktPnVyZ3AgPSBsd2lwX2h0b25zKHRjcGhkcl9jb3B5LT51cmdwKTsKKyAgfQorfQorCisvKiBDaGVjayBpZiBtZDUgaXMgZW5hYmxlZCBvbiBhIGdpdmVuIHBjYiAqLworc3RhdGljIGludAordGNwX21kNV9pc19lbmFibGVkX29uX3BjYihjb25zdCBzdHJ1Y3QgdGNwX3BjYiAqcGNiKQoreworICBpZiAodGNwX21kNV9leHRhcmdfaWQgIT0gTFdJUF9UQ1BfUENCX05VTV9FWFRfQVJHX0lEX0lOVkFMSUQpIHsKKyAgICBzdHJ1Y3QgdGNwX21kNV9jb25uX2luZm8gKmluZm8gPSAoc3RydWN0IHRjcF9tZDVfY29ubl9pbmZvICopdGNwX2V4dF9hcmdfZ2V0KHBjYiwgdGNwX21kNV9leHRhcmdfaWQpOworICAgIGlmIChpbmZvICE9IE5VTEwpIHsKKyAgICAgIHJldHVybiAxOworICAgIH0KKyAgfQorICByZXR1cm4gMDsKK30KKworLyogQ2hlY2sgaWYgbWQ1IGlzIGVuYWJsZWQgb24gYSBnaXZlbiBsaXN0ZW4gcGNiICovCitzdGF0aWMgaW50Cit0Y3BfbWQ1X2lzX2VuYWJsZWRfb25fbHBjYihjb25zdCBzdHJ1Y3QgdGNwX3BjYl9saXN0ZW4gKmxwY2IpCit7CisgIC8qIHNhbWUgYXMgZm9yIGNvbm5lY3Rpb24gcGNicyAqLworICByZXR1cm4gdGNwX21kNV9pc19lbmFibGVkX29uX3BjYigoY29uc3Qgc3RydWN0IHRjcF9wY2IgKilscGNiKTsKK30KKworLyogSG9vayBpbXBsZW1lbnRhdGlvbiBmb3IgTFdJUF9IT09LX1RDUF9PUFRfTEVOR1RIX1NFR01FTlQgKi8KK3U4X3QKK3RjcF9tZDVfZ2V0X2FkZGl0aW9uYWxfb3B0aW9uX2xlbmd0aChjb25zdCBzdHJ1Y3QgdGNwX3BjYiAqcGNiLCB1OF90IGludGVybmFsX29wdGlvbl9sZW5ndGgpCit7CisgIGlmICgocGNiICE9IE5VTEwpICYmIHRjcF9tZDVfaXNfZW5hYmxlZF9vbl9wY2IocGNiKSkgeworICAgIHU4X3QgbmV3X29wdGlvbl9sZW5ndGggPSBpbnRlcm5hbF9vcHRpb25fbGVuZ3RoICsgTFdJUF9UQ1BfT1BUX0xFTl9NRDVfT1VUOworICAgIExXSVBfQVNTRVJUKCJvdmVyZmxvdyIsIG5ld19vcHRpb25fbGVuZ3RoID4gaW50ZXJuYWxfb3B0aW9uX2xlbmd0aCk7CisgICAgTFdJUF9BU1NFUlQoIm9wdGlvbnMgdG9vIGxvbmciLCBuZXdfb3B0aW9uX2xlbmd0aCA8PSBUQ1BfTUFYX09QVElPTl9CWVRFUyk7CisgICAgcmV0dXJuIG5ld19vcHRpb25fbGVuZ3RoOworICB9CisgIHJldHVybiBpbnRlcm5hbF9vcHRpb25fbGVuZ3RoOworfQorCisvKiBIb29rIGltcGxlbWVudGF0aW9uIGZvciBMV0lQX0hPT0tfVENQX0lOUEFDS0VUX1BDQiB3aGVuIGNhbGxlZCBmb3IgbGlzdGVuIHBjYnMgKi8KK3N0YXRpYyBlcnJfdAordGNwX21kNV9jaGVja19saXN0ZW4oc3RydWN0IHRjcF9wY2JfbGlzdGVuKiBscGNiLCBzdHJ1Y3QgdGNwX2hkciAqaGRyLCB1MTZfdCBvcHRsZW4sIHUxNl90IG9wdDFsZW4sIHU4X3QgKm9wdDIpCit7CisgIExXSVBfQVNTRVJUKCJscGNiICE9IE5VTEwiLCBscGNiICE9IE5VTEwpOworCisgIGlmICh0Y3BfbWQ1X2lzX2VuYWJsZWRfb25fbHBjYihscGNiKSkgeworICAgIGNvbnN0IHU4X3QgKm9wdHM7CisgICAgdThfdCBkaWdlc3RfcmVjZWl2ZWRbTFdJUF9UQ1BfTUQ1X0RJR0VTVF9MRU5dOworICAgIHU4X3QgZGlnZXN0X2NhbGN1bGF0ZWRbTFdJUF9UQ1BfTUQ1X0RJR0VTVF9MRU5dOworICAgIGNvbnN0IHN0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbyAqaW5mbyA9IHRjcF9tZDVfZ2V0X2luZm8oKHN0cnVjdCB0Y3BfcGNiICopbHBjYiwgaXBfY3VycmVudF9zcmNfYWRkcigpLCBoZHItPnNyYyk7CisgICAgaWYgKGluZm8gIT0gTlVMTCkgeworICAgICAgb3B0cyA9IHRjcF9tZDVfb3B0aW9uc19zaW5nbGVidWYoaGRyLCBvcHRsZW4sIG9wdDFsZW4sIG9wdDIpOworICAgICAgaWYgKG9wdHMgIT0gTlVMTCkgeworICAgICAgICBpZiAodGNwX21kNV9wYXJzZW9wdChvcHRzLCBvcHRsZW4sIGRpZ2VzdF9yZWNlaXZlZCkpIHsKKyAgICAgICAgICBzdHJ1Y3QgdGNwX2hkciB0Y3BoZHJfY29weTsKKyAgICAgICAgICB0Y3BfbWQ1X2R1cF90Y3BoZHIoJnRjcGhkcl9jb3B5LCBoZHIsIDEpOworICAgICAgICAgIGlmICh0Y3BfbWQ1X2NyZWF0ZV9kaWdlc3QoaXBfY3VycmVudF9zcmNfYWRkcigpLCBpcF9jdXJyZW50X2Rlc3RfYWRkcigpLCAmdGNwaGRyX2NvcHksIGluZm8tPmtleSwgaW5mby0+a2V5X2xlbiwgZGlnZXN0X2NhbGN1bGF0ZWQsIE5VTEwpKSB7CisgICAgICAgICAgICAvKiBldmVyeXRoaW5nIHNldCB1cCwgY29tcGFyZSB0aGUgZGlnZXN0cyAqLworICAgICAgICAgICAgaWYgKCFtZW1jbXAoZGlnZXN0X3JlY2VpdmVkLCBkaWdlc3RfY2FsY3VsYXRlZCwgTFdJUF9UQ1BfTUQ1X0RJR0VTVF9MRU4pKSB7CisgICAgICAgICAgICAgIC8qIGVxdWFsICovCisgICAgICAgICAgICAgIHJldHVybiBFUlJfT0s7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBub3QgZXF1YWwgKi8KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgICAgLyogbWQ1IGVuYWJsZWQgb24gdGhpcyBwY2IgYnV0IG5vIG1hdGNoIG9yIG90aGVyIGVycm9yIC0+IGZhaWwgKi8KKyAgICByZXR1cm4gRVJSX1ZBTDsKKyAgfQorICByZXR1cm4gRVJSX09LOworfQorCisvKiBIb29rIGltcGxlbWVudGF0aW9uIGZvciBMV0lQX0hPT0tfVENQX0lOUEFDS0VUX1BDQiAqLworZXJyX3QKK3RjcF9tZDVfY2hlY2tfaW5wYWNrZXQoc3RydWN0IHRjcF9wY2IqIHBjYiwgc3RydWN0IHRjcF9oZHIgKmhkciwgdTE2X3Qgb3B0bGVuLCB1MTZfdCBvcHQxbGVuLCB1OF90ICpvcHQyLCBzdHJ1Y3QgcGJ1ZiAqcCkKK3sKKyAgTFdJUF9BU1NFUlQoInBjYiAhPSBOVUxMIiwgcGNiICE9IE5VTEwpOworCisgIGlmIChwY2ItPnN0YXRlID09IExJU1RFTikgeworICAgIHJldHVybiB0Y3BfbWQ1X2NoZWNrX2xpc3Rlbigoc3RydWN0IHRjcF9wY2JfbGlzdGVuICopcGNiLCBoZHIsIG9wdGxlbiwgb3B0MWxlbiwgb3B0Mik7CisgIH0KKworICBpZiAodGNwX21kNV9pc19lbmFibGVkX29uX3BjYihwY2IpKSB7CisgICAgY29uc3Qgc3RydWN0IHRjcF9tZDVfY29ubl9pbmZvICppbmZvID0gdGNwX21kNV9nZXRfaW5mbyhwY2IsIGlwX2N1cnJlbnRfc3JjX2FkZHIoKSwgaGRyLT5zcmMpOworICAgIGlmIChpbmZvICE9IE5VTEwpIHsKKyAgICAgIGNvbnN0IHU4X3QgKm9wdHM7CisgICAgICB1OF90IGRpZ2VzdF9yZWNlaXZlZFtMV0lQX1RDUF9NRDVfRElHRVNUX0xFTl07CisgICAgICB1OF90IGRpZ2VzdF9jYWxjdWxhdGVkW0xXSVBfVENQX01ENV9ESUdFU1RfTEVOXTsKKyAgICAgIG9wdHMgPSB0Y3BfbWQ1X29wdGlvbnNfc2luZ2xlYnVmKGhkciwgb3B0bGVuLCBvcHQxbGVuLCBvcHQyKTsKKyAgICAgIGlmIChvcHRzICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKHRjcF9tZDVfcGFyc2VvcHQob3B0cywgb3B0bGVuLCBkaWdlc3RfcmVjZWl2ZWQpKSB7CisgICAgICAgICAgc3RydWN0IHRjcF9oZHIgaGRyX2NvcHk7CisgICAgICAgICAgdGNwX21kNV9kdXBfdGNwaGRyKCZoZHJfY29weSwgaGRyLCAxKTsKKyAgICAgICAgICBpZiAodGNwX21kNV9jcmVhdGVfZGlnZXN0KCZwY2ItPnJlbW90ZV9pcCwgJnBjYi0+bG9jYWxfaXAsICZoZHJfY29weSwgaW5mby0+a2V5LCBpbmZvLT5rZXlfbGVuLCBkaWdlc3RfY2FsY3VsYXRlZCwgcCkpIHsKKyAgICAgICAgICAgIC8qIGV2ZXJ5dGhpbmcgc2V0IHVwLCBjb21wYXJlIHRoZSBkaWdlc3RzICovCisgICAgICAgICAgICBpZiAoIW1lbWNtcChkaWdlc3RfcmVjZWl2ZWQsIGRpZ2VzdF9jYWxjdWxhdGVkLCBMV0lQX1RDUF9NRDVfRElHRVNUX0xFTikpIHsKKyAgICAgICAgICAgICAgLyogZXF1YWwgKi8KKyAgICAgICAgICAgICAgcmV0dXJuIEVSUl9PSzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIG5vdCBlcXVhbCAqLworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICAvKiBtZDUgZW5hYmxlZCBvbiB0aGlzIHBjYiBidXQgbm8gbWF0Y2ggb3Igb3RoZXIgZXJyb3IgLT4gZmFpbCAqLworICAgIHJldHVybiBFUlJfVkFMOworICB9CisgIHJldHVybiBFUlJfT0s7Cit9CisKKy8qIEhvb2sgaW1wbGVtZW50YXRpb24gZm9yIExXSVBfSE9PS19UQ1BfQUREX1RYX09QVElPTlMgKi8KK3UzMl90ICoKK3RjcF9tZDVfYWRkX3R4X29wdGlvbnMoc3RydWN0IHBidWYgKnAsIHN0cnVjdCB0Y3BfaGRyICpoZHIsIGNvbnN0IHN0cnVjdCB0Y3BfcGNiICpwY2IsIHUzMl90ICpvcHRzKQoreworICBMV0lQX0FTU0VSVCgicCAhPSBOVUxMIiwgcCAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoImhkciAhPSBOVUxMIiwgaGRyICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgicGNiICE9IE5VTEwiLCBwY2IgIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJvcHRzICE9IE5VTEwiLCBvcHRzICE9IE5VTEwpOworCisgIGlmICh0Y3BfbWQ1X2lzX2VuYWJsZWRfb25fcGNiKHBjYikpIHsKKyAgICB1OF90IGRpZ2VzdF9jYWxjdWxhdGVkW0xXSVBfVENQX01ENV9ESUdFU1RfTEVOXTsKKyAgICB1MzJfdCAqb3B0c19yZXQgPSBvcHRzICsgNTsgLyogd2UgdXNlIDIwIGJ5dGVzOiAyIGJ5dGVzIHBhZGRpbmcgKyAxOCBieXRlcyBmb3IgdGhpcyBvcHRpb24gKi8KKyAgICB1OF90ICpwdHIgPSAodThfdCopb3B0czsKKworICAgIGNvbnN0IHN0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbyAqaW5mbyA9IHRjcF9tZDVfZ2V0X2luZm8ocGNiLCAmcGNiLT5yZW1vdGVfaXAsIHBjYi0+cmVtb3RlX3BvcnQpOworICAgIGlmIChpbmZvICE9IE5VTEwpIHsKKyAgICAgIHN0cnVjdCB0Y3BfaGRyIGhkcl9jb3B5OworICAgICAgc2l6ZV90IGhkcnNpemUgPSBUQ1BIX0hEUkxFTl9CWVRFUyhoZHIpOworICAgICAgdGNwX21kNV9kdXBfdGNwaGRyKCZoZHJfY29weSwgaGRyLCAwKTsKKyAgICAgIC8qIHAtPnBheWxvYWQgcG9pbnRzIHRvIHRoZSB0Y3AgaGVhZGVyICovCisgICAgICBMV0lQX0FTU0VSVCgicC0+cGF5bG9hZCA9PSBoZHIiLCBwLT5wYXlsb2FkID09IGhkcik7CisgICAgICBpZiAoIXBidWZfcmVtb3ZlX2hlYWRlcihwLCBoZHJzaXplKSkgeworICAgICAgICB1OF90IHJldDsKKyAgICAgICAgaWYgKCF0Y3BfbWQ1X2NyZWF0ZV9kaWdlc3QoJnBjYi0+bG9jYWxfaXAsICZwY2ItPnJlbW90ZV9pcCwgJmhkcl9jb3B5LCBpbmZvLT5rZXksIGluZm8tPmtleV9sZW4sIGRpZ2VzdF9jYWxjdWxhdGVkLCBwKSkgeworICAgICAgICAgIGluZm8gPSBOVUxMOworICAgICAgICB9CisgICAgICAgIHJldCA9IHBidWZfYWRkX2hlYWRlcl9mb3JjZShwLCBoZHJzaXplKTsKKyAgICAgICAgTFdJUF9BU1NFUlQoInRjcF9tZDVfYWRkX3R4X29wdGlvbnM6IHBidWZfYWRkX2hlYWRlcl9mb3JjZSBmYWlsZWQiLCAhcmV0KTsKKyAgICAgICAgTFdJUF9VTlVTRURfQVJHKHJldCk7CisgICAgICB9IGVsc2UgIHsKKyAgICAgICAgTFdJUF9BU1NFUlQoImVycm9yIiwgMCk7CisgICAgICB9CisgICAgfQorICAgIGlmIChpbmZvID09IE5VTEwpIHsKKyAgICAgIC8qIGNyZWF0ZSBhbiBpbnZhbGlkIHNpZ25hdHVyZSBieSB6ZXJvaW5nIHRoZSBkaWdlc3QgKi8KKyAgICAgIG1lbXNldCgmZGlnZXN0X2NhbGN1bGF0ZWQsIDAsIHNpemVvZihkaWdlc3RfY2FsY3VsYXRlZCkpOworICAgIH0KKworICAgICpwdHIrKyA9IExXSVBfVENQX09QVF9OT1A7CisgICAgKnB0cisrID0gTFdJUF9UQ1BfT1BUX05PUDsKKyAgICAqcHRyKysgPSBMV0lQX1RDUF9PUFRfTUQ1OworICAgICpwdHIrKyA9IExXSVBfVENQX09QVF9MRU5fTUQ1OworICAgIG1lbWNweShwdHIsIGRpZ2VzdF9jYWxjdWxhdGVkLCBMV0lQX1RDUF9NRDVfRElHRVNUX0xFTik7CisgICAgcHRyICs9IExXSVBfVENQX01ENV9ESUdFU1RfTEVOOworICAgIExXSVBfQVNTRVJUKCJwdHIgPT0gb3B0c19yZXQiLCBwdHIgPT0gKHU4X3QgKilvcHRzX3JldCk7CisgICAgcmV0dXJuIG9wdHNfcmV0OworICB9CisgIHJldHVybiBvcHRzOworfQorCisvKiBIb29rIGltcGxlbWVudGF0aW9uIGZvciBMV0lQX0hPT0tfU09DS0VUU19TRVRTT0NLT1BUICovCitpbnQKK3RjcF9tZDVfc2V0c29ja29wdF9ob29rKHN0cnVjdCBsd2lwX3NvY2sgKnNvY2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsIGNvbnN0IHZvaWQgKm9wdHZhbCwgc29ja2xlbl90IG9wdGxlbiwgaW50ICplcnIpCit7CisgIExXSVBfQVNTRVJUKCJzb2NrICE9IE5VTEwiLCBzb2NrICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgiZXJyICE9IE5VTEwiLCBlcnIgIT0gTlVMTCk7CisKKyAgaWYgKChsZXZlbCA9PSBJUFBST1RPX1RDUCkgJiYgKG9wdG5hbWUgPT0gVENQX01ENVNJRykpIHsKKyAgICBjb25zdCBzdHJ1Y3QgdGNwX21kNXNpZyAqbWQ1ID0gKGNvbnN0IHN0cnVjdCB0Y3BfbWQ1c2lnKilvcHR2YWw7CisgICAgaWYgKChvcHR2YWwgPT0gTlVMTCkgfHwgKG9wdGxlbiA8IHNpemVvZihzdHJ1Y3QgdGNwX21kNXNpZykpKSB7CisgICAgICAqZXJyID0gRUlOVkFMOworICAgIH0gZWxzZSB7CisgICAgICBpZiAoc29jay0+Y29ubiAmJiAoTkVUQ09OTlRZUEVfR1JPVVAobmV0Y29ubl90eXBlKHNvY2stPmNvbm4pKSA9PSBORVRDT05OX1RDUCkgJiYgKHNvY2stPmNvbm4tPnBjYi50Y3AgIT0gTlVMTCkpIHsKKyAgICAgICAgaWYgKHRjcF9tZDVfZXh0YXJnX2lkID09IExXSVBfVENQX1BDQl9OVU1fRVhUX0FSR19JRF9JTlZBTElEKSB7CisgICAgICAgICAgLyogbm90IGluaXRpYWxpemVkICovCisgICAgICAgICAgKmVyciA9IEVJTlZBTDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBzdHJ1Y3QgdGNwX21kNV9jb25uX2luZm8gKmluZm8gPSB0Y3BfbWQ1X2Nvbm5faW5mb19hbGxvYygpOworICAgICAgICAgIGlmIChpbmZvID09IE5VTEwpIHsKKyAgICAgICAgICAgICplcnIgPSBFTk9NRU07CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGludCBhZGRyX3ZhbGlkID0gMDsKKyAgICAgICAgICAgIC8qIE9LLCBmaWxsIGFuZCBsaW5rIHRoaXMgcmVxdWVzdCAqLworICAgICAgICAgICAgbWVtY3B5KGluZm8tPmtleSwgbWQ1LT50Y3BtX2tleSwgVENQX01ENVNJR19NQVhLRVlMRU4pOworICAgICAgICAgICAgaW5mby0+a2V5X2xlbiA9IG1kNS0+dGNwbV9rZXlsZW47CisgICAgICAgICAgICBtZW1zZXQoJmluZm8tPnJlbW90ZV9hZGRyLCAwLCBzaXplb2YoaW5mby0+cmVtb3RlX2FkZHIpKTsKKyAgICAgICAgICAgIGlmIChtZDUtPnRjcG1fYWRkci5zc19mYW1pbHkgPT0gQUZfSU5FVCkgeworI2lmIExXSVBfSVBWNAorICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc29ja2FkZHJfaW4gKnNpbiA9IChjb25zdCBzdHJ1Y3Qgc29ja2FkZHJfaW4gKikmbWQ1LT50Y3BtX2FkZHI7CisgICAgICAgICAgICAgIG1lbWNweSgmaW5mby0+cmVtb3RlX2FkZHIsICZzaW4tPnNpbl9hZGRyLCBzaXplb2Yoc2luLT5zaW5fYWRkcikpOworICAgICAgICAgICAgICBJUF9TRVRfVFlQRV9WQUwoaW5mby0+cmVtb3RlX2FkZHIsIElQQUREUl9UWVBFX1Y0KTsKKyAgICAgICAgICAgICAgaW5mby0+cmVtb3RlX3BvcnQgPSBsd2lwX2h0b25zKHNpbi0+c2luX3BvcnQpOworICAgICAgICAgICAgICBhZGRyX3ZhbGlkID0gMTsKKyNlbmRpZiAvKiBMV0lQX0lQVjQgKi8KKyAgICAgICAgICAgIH0gZWxzZSBpZiAobWQ1LT50Y3BtX2FkZHIuc3NfZmFtaWx5ID09IEFGX0lORVQ2KSB7CisjaWYgTFdJUF9JUFY2CisgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzb2NrYWRkcl9pbjYgKnNpbjYgPSAoY29uc3Qgc3RydWN0IHNvY2thZGRyX2luNiAqKSZtZDUtPnRjcG1fYWRkcjsKKyAgICAgICAgICAgICAgbWVtY3B5KCZpbmZvLT5yZW1vdGVfYWRkciwgJnNpbjYtPnNpbjZfYWRkciwgc2l6ZW9mKHNpbjYtPnNpbjZfYWRkcikpOworICAgICAgICAgICAgICBJUF9TRVRfVFlQRV9WQUwoaW5mby0+cmVtb3RlX2FkZHIsIElQQUREUl9UWVBFX1Y2KTsKKyAgICAgICAgICAgICAgaW5mby0+cmVtb3RlX3BvcnQgPSBsd2lwX2h0b25zKHNpbjYtPnNpbjZfcG9ydCk7CisgICAgICAgICAgICAgIGFkZHJfdmFsaWQgPSAxOworI2VuZGlmIC8qIExXSVBfSVBWNiAqLworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFkZHJfdmFsaWQpIHsKKyAgICAgICAgICAgICAgLyogc3RvcmUgaXQgKi8KKyAgICAgICAgICAgICAgdGNwX2V4dF9hcmdfc2V0X2NhbGxiYWNrcyhzb2NrLT5jb25uLT5wY2IudGNwLCB0Y3BfbWQ1X2V4dGFyZ19pZCwgJnRjcF9tZDVfZXh0X2FyZ19jYWxsYmFja3MpOworICAgICAgICAgICAgICBpbmZvLT5uZXh0ID0gKHN0cnVjdCB0Y3BfbWQ1X2Nvbm5faW5mbyAqKXRjcF9leHRfYXJnX2dldChzb2NrLT5jb25uLT5wY2IudGNwLCB0Y3BfbWQ1X2V4dGFyZ19pZCk7CisgICAgICAgICAgICAgIHRjcF9leHRfYXJnX3NldChzb2NrLT5jb25uLT5wY2IudGNwLCB0Y3BfbWQ1X2V4dGFyZ19pZCwgaW5mbyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAqZXJyID0gRUlOVkFMOworICAgICAgICAgICAgICB0Y3BfbWQ1X2Nvbm5faW5mb19mcmVlKGluZm8pOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgLyogbm90IGEgdGNwIG5ldGNvbm4gKi8KKyAgICAgICAgKmVyciA9IEVJTlZBTDsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDE7CisgIH0KKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FkZG9ucy90Y3BfbWQ1L3RjcF9tZDUuaCBiL2NvbnRyaWIvYWRkb25zL3RjcF9tZDUvdGNwX21kNS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1NTc0MGEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FkZG9ucy90Y3BfbWQ1L3RjcF9tZDUuaApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDE4IFNpbW9uIEdvbGRzY2htaWR0CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogQXV0aG9yOiBTaW1vbiBHb2xkc2NobWlkdCA8Z29sZHNpbW9uQGdteC5kZT4KKyAqCisgKiBUbyB1c2UgdGhlIGhvb2tzIGluIHRoaXMgZmlsZSwgbWFrZSBzdXJlIHRoaXMgZmlsZSBpcyBpbmNsdWRlZCBpbiBMV0lQX0hPT0tfRklMRU5BTUUKKyAqIGFuZCBkZWZpbmUgdGhlc2UgaG9va3M6CisgKgorICogI2RlZmluZSBMV0lQX0hPT0tfVENQX0lOUEFDS0VUX1BDQihwY2IsIGhkciwgb3B0bGVuLCBvcHQxbGVuLCBvcHQyLCBwKSB0Y3BfbWQ1X2NoZWNrX2lucGFja2V0KHBjYiwgaGRyLCBvcHRsZW4sIG9wdDFsZW4sIG9wdDIsIHApCisgKiAjZGVmaW5lIExXSVBfSE9PS19UQ1BfT1BUX0xFTkdUSF9TRUdNRU5UKHBjYiwgaW50ZXJuYWxfbGVuKSAgICAgICAgICAgIHRjcF9tZDVfZ2V0X2FkZGl0aW9uYWxfb3B0aW9uX2xlbmd0aChwY2IsIGludGVybmFsX2xlbikKKyAqICNkZWZpbmUgTFdJUF9IT09LX1RDUF9BRERfVFhfT1BUSU9OUyhwLCBoZHIsIHBjYiwgb3B0cykgICAgICAgICAgICAgICAgdGNwX21kNV9hZGRfdHhfb3B0aW9ucyhwLCBoZHIsIHBjYiwgIG9wdHMpCisgKgorICogI2RlZmluZSBMV0lQX0hPT0tfU09DS0VUU19TRVRTT0NLT1BUKHMsIHNvY2ssIGxldmVsLCBvcHRuYW1lLCBvcHR2YWwsIG9wdGxlbiwgZXJyKSB0Y3BfbWQ1X3NldHNvY2tvcHRfaG9vayhzb2NrLCBsZXZlbCwgb3B0bmFtZSwgb3B0dmFsLCBvcHRsZW4sIGVycikKKyAqLworCisjaWZuZGVmIExXSVBfSERSX0NPTlRSSUJfQURET05TX1RDUF9NRDVfSAorI2RlZmluZSBMV0lQX0hEUl9DT05UUklCX0FERE9OU19UQ1BfTUQ1X0gKKworI2luY2x1ZGUgImx3aXAvb3B0LmgiCisjaW5jbHVkZSAibHdpcC9pcF9hZGRyLmgiCisjaW5jbHVkZSAibHdpcC9lcnIuaCIKKworI2luY2x1ZGUgImx3aXAvcHJpdi9zb2NrZXRzX3ByaXYuaCIKKyNpbmNsdWRlICJsd2lwL3ByaXYvdGNwX3ByaXYuaCIKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKiBzZXRzb2Nrb3B0IGRlZmluaXRpb25zIGFuZCBzdHJ1Y3RzOiAqLworCisvKiBUaGlzIGlzIHRoZSBvcHRuYW1lIChmb3IgbGV2ZWwgPSBJUFBST1RPX1RDUCkgKi8KKyNpZm5kZWYgVENQX01ENVNJRworI2RlZmluZSBUQ1BfTUQ1U0lHIDE0CisjZW5kaWYKKworI2RlZmluZSBUQ1BfTUQ1U0lHX01BWEtFWUxFTiA4MAorCisvKiBUaGlzIGlzIHRoZSBvcHR2YWwgdHlwZSAqLworc3RydWN0IHRjcF9tZDVzaWcgeworICBzdHJ1Y3QgIHNvY2thZGRyX3N0b3JhZ2UgdGNwbV9hZGRyOworICB1MTZfdCAgIF9fdGNwbV9wYWQxOworICB1MTZfdCAgIHRjcG1fa2V5bGVuOworICB1MzJfdCAgIF9fdGNwbV9wYWQyOworICB1OF90ICAgIHRjcG1fa2V5W1RDUF9NRDVTSUdfTUFYS0VZTEVOXTsKK307CisKKy8qIHNvY2tldCBzZXRzb2Nrb3B0IGhvb2s6ICovCitpbnQgdGNwX21kNV9zZXRzb2Nrb3B0X2hvb2soc3RydWN0IGx3aXBfc29jayAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwgY29uc3Qgdm9pZCAqb3B0dmFsLCB1MzJfdCBvcHRsZW4sIGludCAqZXJyKTsKKworLyogSW50ZXJuYWwgaG9vayBmdW5jdGlvbnMgKi8KK3ZvaWQgdGNwX21kNV9pbml0KHZvaWQpOworZXJyX3QgdGNwX21kNV9jaGVja19pbnBhY2tldChzdHJ1Y3QgdGNwX3BjYiogcGNiLCBzdHJ1Y3QgdGNwX2hkciAqaGRyLCB1MTZfdCBvcHRsZW4sIHUxNl90IG9wdDFsZW4sIHU4X3QgKm9wdDIsIHN0cnVjdCBwYnVmICpwKTsKK3U4X3QgdGNwX21kNV9nZXRfYWRkaXRpb25hbF9vcHRpb25fbGVuZ3RoKGNvbnN0IHN0cnVjdCB0Y3BfcGNiICpwY2IsIHU4X3QgaW50ZXJuYWxfb3B0aW9uX2xlbmd0aCk7Cit1MzJfdCAqdGNwX21kNV9hZGRfdHhfb3B0aW9ucyhzdHJ1Y3QgcGJ1ZiAqcCwgc3RydWN0IHRjcF9oZHIgKmhkciwgY29uc3Qgc3RydWN0IHRjcF9wY2IgKnBjYiwgdTMyX3QgKm9wdHMpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTFdJUF9IRFJfQ09OVFJJQl9BRERPTlNfVENQX01ENV9IICovCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9DQ29kZUdlbmVyYXRpb24uY3Nwcm9qIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vQ0NvZGVHZW5lcmF0aW9uLmNzcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmQ1MDc1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vQ0NvZGVHZW5lcmF0aW9uLmNzcHJvagpAQCAtMCwwICsxLDY3IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxDb25maWd1cmF0aW9uIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pJyA9PSAnJyAiPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgIDxQbGF0Zm9ybSBDb25kaXRpb249IiAnJChQbGF0Zm9ybSknID09ICcnICI+QW55Q1BVPC9QbGF0Zm9ybT4KKyAgICA8UHJvZHVjdFZlcnNpb24+OC4wLjMwNzAzPC9Qcm9kdWN0VmVyc2lvbj4KKyAgICA8U2NoZW1hVmVyc2lvbj4yLjA8L1NjaGVtYVZlcnNpb24+CisgICAgPFByb2plY3RHdWlkPns3REE3QzBBQi0wOTgyLTRCRjUtOTMyNC1GNTlBN0EwOEQ2NUJ9PC9Qcm9qZWN0R3VpZD4KKyAgICA8T3V0cHV0VHlwZT5MaWJyYXJ5PC9PdXRwdXRUeXBlPgorICAgIDxBcHBEZXNpZ25lckZvbGRlcj5Qcm9wZXJ0aWVzPC9BcHBEZXNpZ25lckZvbGRlcj4KKyAgICA8Um9vdE5hbWVzcGFjZT5DQ29kZUdlbmVyYXRpb248L1Jvb3ROYW1lc3BhY2U+CisgICAgPEFzc2VtYmx5TmFtZT5DQ29kZUdlbmVyYXRpb248L0Fzc2VtYmx5TmFtZT4KKyAgICA8VGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj52NC4wPC9UYXJnZXRGcmFtZXdvcmtWZXJzaW9uPgorICAgIDxGaWxlQWxpZ25tZW50PjUxMjwvRmlsZUFsaWdubWVudD4KKyAgICA8VGFyZ2V0RnJhbWV3b3JrUHJvZmlsZSAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8QW55Q1BVJyAiPgorICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgorICAgIDxEZWJ1Z1R5cGU+ZnVsbDwvRGVidWdUeXBlPgorICAgIDxPcHRpbWl6ZT5mYWxzZTwvT3B0aW1pemU+CisgICAgPE91dHB1dFBhdGg+YmluXERlYnVnXDwvT3V0cHV0UGF0aD4KKyAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHO1RSQUNFPC9EZWZpbmVDb25zdGFudHM+CisgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CisgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4KKyAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KKyAgICA8T3B0aW1pemU+dHJ1ZTwvT3B0aW1pemU+CisgICAgPE91dHB1dFBhdGg+YmluXFJlbGVhc2VcPC9PdXRwdXRQYXRoPgorICAgIDxEZWZpbmVDb25zdGFudHM+VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJDRmlsZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJDb2RlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IkNvZGVDb250YWluZXJCYXNlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IkNvZGVFbGVtZW50LmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IkNvbW1lbnQuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iRW1wdHlMaW5lLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IkZ1bmN0aW9uLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IkNHZW5lcmF0b3IuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iSWZUaGVuRWxzZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQbGFpblRleHQuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iU3dpdGNoLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlBQX0lmLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlBQX0lmZGVmLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlBQX0luY2x1ZGUuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iRnVuY3Rpb25EZWNsYXJhdGlvbi5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQUF9NYWNyby5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9wZXJ0aWVzXEFzc2VtYmx5SW5mby5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJWYXJpYWJsZURlY2xhcmF0aW9uLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlZhcmlhYmxlUHJvdG90eXBlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlZhcmlhYmxlVHlwZS5jcyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChNU0J1aWxkVG9vbHNQYXRoKVxNaWNyb3NvZnQuQ1NoYXJwLnRhcmdldHMiIC8+CisgIDwhLS0gVG8gbW9kaWZ5IHlvdXIgYnVpbGQgcHJvY2VzcywgYWRkIHlvdXIgdGFzayBpbnNpZGUgb25lIG9mIHRoZSB0YXJnZXRzIGJlbG93IGFuZCB1bmNvbW1lbnQgaXQuIAorICAgICAgIE90aGVyIHNpbWlsYXIgZXh0ZW5zaW9uIHBvaW50cyBleGlzdCwgc2VlIE1pY3Jvc29mdC5Db21tb24udGFyZ2V0cy4KKyAgPFRhcmdldCBOYW1lPSJCZWZvcmVCdWlsZCI+CisgIDwvVGFyZ2V0PgorICA8VGFyZ2V0IE5hbWU9IkFmdGVyQnVpbGQiPgorICA8L1RhcmdldD4KKyAgLS0+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vQ0ZpbGUuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9DRmlsZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjEyMjc0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vQ0ZpbGUuY3MKQEAgLTAsMCArMSw1NCBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCit1c2luZyBTeXN0ZW07CisKK25hbWVzcGFjZSBDQ29kZUdlbmVyYXRpb24KK3sKKwlwdWJsaWMgY2xhc3MgQ0ZpbGU6IENvZGVDb250YWluZXJCYXNlCisJeworCQlwdWJsaWMgQ0ZpbGUoKQorCQl7CisJCQliYXNlLkluY3JlYXNlTGV2ZWwgPSBmYWxzZTsKKwkJfQorCisJCXB1YmxpYyB2b2lkIFNhdmUoQ0dlbmVyYXRvciBnZW5lcmF0b3IpCisJCXsKKwkJCWlmIChnZW5lcmF0b3IgPT0gbnVsbCkKKwkJCXsKKwkJCQl0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJnZW5lcmF0b3IiKTsKKwkJCX0KKworCQkJdGhpcy5HZW5lcmF0ZUNvZGUoMCwgZ2VuZXJhdG9yKTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0NHZW5lcmF0b3IuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9DR2VuZXJhdG9yLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlOGRmYmMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9DR2VuZXJhdG9yLmNzCkBAIC0wLDAgKzEsMTE5IEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5JTzsKKworbmFtZXNwYWNlIENDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBDR2VuZXJhdG9yCisJeworCQlwdWJsaWMgVGV4dFdyaXRlciBPdXRwdXRTdHJlYW0geyBnZXQ7IHByaXZhdGUgc2V0OyB9CisJCXB1YmxpYyBzdHJpbmcgRmlsZSB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0KKwkJcHVibGljIHVpbnQgSW5kZW50Q291bnQgeyBnZXQ7IHByaXZhdGUgc2V0OyB9CisJCXB1YmxpYyBzdHJpbmcgSW5kZW50Q2hhciB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0KKwkJcHVibGljIHN0cmluZyBOZXdMaW5lIHsgZ2V0OyBwcml2YXRlIHNldDsgfQorCisJCXB1YmxpYyBDR2VuZXJhdG9yKFN5c3RlbS5JTy5UZXh0V3JpdGVyIG91dHB1dFN0cmVhbSwgc3RyaW5nIGZpbGUsIHVpbnQgaW5kZW50Q291bnQsIHN0cmluZyBpbmRlbnRDaGFyLCBzdHJpbmcgbmV3TGluZSkKKwkJeworCQkJdGhpcy5PdXRwdXRTdHJlYW0gPSBvdXRwdXRTdHJlYW07CisJCQl0aGlzLkZpbGUgICAgID0gZmlsZTsKKwkJCXRoaXMuSW5kZW50Q291bnQgID0gaW5kZW50Q291bnQ7CisJCQl0aGlzLkluZGVudENoYXIgICA9IGluZGVudENoYXI7CisJCQl0aGlzLk5ld0xpbmUgICAgICA9IG5ld0xpbmU7CisJCX0KKworCQlwdWJsaWMgc3RyaW5nIEZpbGVOYW1lCisJCXsKKwkJCWdldAorCQkJeworCQkJCWlmICghU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh0aGlzLkZpbGUpKQorCQkJCXsKKwkJCQkJcmV0dXJuIFBhdGguR2V0RmlsZU5hbWUodGhpcy5GaWxlKTsKKwkJCQl9CisKKwkJCQlyZXR1cm4gbnVsbDsKKwkJCX0KKwkJfQorCisJCXB1YmxpYyB2b2lkIFdyaXRlU2VxdWVuY2Uoc3RyaW5nIHZhbHVlLCB1aW50IHJlcGV0aXRpb25zKQorCQl7CisJCQl3aGlsZSAocmVwZXRpdGlvbnMgPiAwKQorCQkJeworCQkJCXRoaXMuT3V0cHV0U3RyZWFtLldyaXRlKHZhbHVlKTsKKwkJCQlyZXBldGl0aW9ucy0tOworCQkJfQorCQl9CisKKwkJcHVibGljIHZvaWQgSW5kZW50TGluZShpbnQgbGV2ZWwpCisJCXsKKwkJCXdoaWxlIChsZXZlbCA+IDApCisJCQl7CisJCQkJV3JpdGVTZXF1ZW5jZSh0aGlzLkluZGVudENoYXIsIHRoaXMuSW5kZW50Q291bnQpOworCQkJCWxldmVsLS07CisJCQl9CisJCX0KKworCQlwdWJsaWMgdm9pZCBXcml0ZU5ld0xpbmUoKQorCQl7CisJCQl0aGlzLk91dHB1dFN0cmVhbS5Xcml0ZSh0aGlzLk5ld0xpbmUpOworCQl9CisKKwkJcHVibGljIHZvaWQgV3JpdGVNdWx0aWxpbmVTdHJpbmcoc3RyaW5nIHZhbHVlLCBpbnQgbGV2ZWwgPSAwKQorCQl7CisJCQlpZiAoU3RyaW5nLklzTnVsbE9yRW1wdHkodmFsdWUpKQorCQkJeworCQkJCXJldHVybjsKKwkJCX0KKworCQkJLy8gb25seSBcbiBhbmQgXHJcbiBhcmUgcmVjb2duaXplZCBhcyBsaW5lYnJlYWtzCisJCQlzdHJpbmdbXSBsaW5lcyA9IHZhbHVlLlNwbGl0KG5ldyBjaGFyW10geyAnXG4nIH0sIFN0cmluZ1NwbGl0T3B0aW9ucy5Ob25lKTsKKworCQkJZm9yIChpbnQgbCA9IDA7IGwgPCAobGluZXMuTGVuZ3RoIC0gMSk7IGwrKykKKwkJCXsKKwkJCQlpZiAobGluZXNbbF0uRW5kc1dpdGgoIlxyIikpCisJCQkJeworCQkJCQl0aGlzLk91dHB1dFN0cmVhbS5Xcml0ZShsaW5lc1tsXS5TdWJzdHJpbmcoMCwgbGluZXNbbF0uTGVuZ3RoLTEpKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJdGhpcy5PdXRwdXRTdHJlYW0uV3JpdGUobGluZXNbbF0pOworCQkJCX0KKworCQkJCXRoaXMuV3JpdGVOZXdMaW5lKCk7CisJCQkJdGhpcy5JbmRlbnRMaW5lKGxldmVsKTsKKwkJCX0KKworCQkJdGhpcy5PdXRwdXRTdHJlYW0uV3JpdGUobGluZXNbbGluZXMuTGVuZ3RoIC0gMV0pOworCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vQ29kZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0NvZGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDgzNDUwOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0NvZGUuY3MKQEAgLTAsMCArMSw1NiBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCituYW1lc3BhY2UgQ0NvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIENvZGU6IENvZGVFbGVtZW50CisJeworCQlwdWJsaWMgc3RyaW5nIENvZGVfIHsgZ2V0OyBzZXQ7IH0KKworCQlwdWJsaWMgQ29kZSgpCisJCXsKKwkJfQorCisJCXB1YmxpYyBDb2RlKHN0cmluZyBjb2RlKQorCQl7CisJCQl0aGlzLkNvZGVfID0gY29kZTsKKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShpbnQgbGV2ZWwsIENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQlnZW5lcmF0b3IuSW5kZW50TGluZShsZXZlbCk7CisJCQlnZW5lcmF0b3IuV3JpdGVNdWx0aWxpbmVTdHJpbmcodGhpcy5Db2RlXywgbGV2ZWwpOworCQkJZ2VuZXJhdG9yLldyaXRlTmV3TGluZSgpOworCQl9CisKKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9Db2RlQ29udGFpbmVyQmFzZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0NvZGVDb250YWluZXJCYXNlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzMjdkOTIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9Db2RlQ29udGFpbmVyQmFzZS5jcwpAQCAtMCwwICsxLDEzOSBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKK3VzaW5nIFN5c3RlbTsKKworbmFtZXNwYWNlIENDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBDb2RlQ29udGFpbmVyQmFzZTogQ29kZUVsZW1lbnQKKwl7CisJCXByaXZhdGUgcmVhZG9ubHkgTGlzdDxDb2RlRWxlbWVudD4gZGVjbGFyYXRpb25zID0gbmV3IExpc3Q8Q29kZUVsZW1lbnQ+KCk7CisJCXByaXZhdGUgcmVhZG9ubHkgTGlzdDxDb2RlRWxlbWVudD4gaW5uZXJFbGVtZW50cyA9IG5ldyBMaXN0PENvZGVFbGVtZW50PigpOworCQlwcml2YXRlIGJvb2wgaW5jcmVhc2VMZXZlbCA9IHRydWU7CisKKwkJcHVibGljIExpc3Q8Q29kZUVsZW1lbnQ+IERlY2xhcmF0aW9ucworCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5kZWNsYXJhdGlvbnM7IH0KKwkJfQorCisJCXB1YmxpYyBMaXN0PENvZGVFbGVtZW50PiBJbm5lckVsZW1lbnRzCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLmlubmVyRWxlbWVudHM7IH0KKwkJfQorCisJCXByb3RlY3RlZCBib29sIEluY3JlYXNlTGV2ZWwKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuaW5jcmVhc2VMZXZlbDsgfQorCQkJc2V0IHsgdGhpcy5pbmNyZWFzZUxldmVsID0gdmFsdWU7IH0KKwkJfQorCisJCXB1YmxpYyB2b2lkIEFkZEVsZW1lbnRzKElMaXN0PENvZGVFbGVtZW50PiBlbGVtZW50cywgcGFyYW1zIENvZGVFbGVtZW50W10gc3BhY2VyRWxlbWVudHMpCisJCXsKKwkJCWlmIChlbGVtZW50cyAhPSBudWxsKQorCQkJeworCQkJCWlmICgoc3BhY2VyRWxlbWVudHMgPT0gbnVsbCkgfHwgKHNwYWNlckVsZW1lbnRzLkxlbmd0aCA9PSAwKSkKKwkJCQl7CisJCQkJCXRoaXMuaW5uZXJFbGVtZW50cy5BZGRSYW5nZShlbGVtZW50cyk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWJvb2wgc3BhY2VyQWRkZWQgPSBmYWxzZTsKKworCQkJCQlmb3JlYWNoIChDb2RlRWxlbWVudCBlbGVtZW50IGluIGVsZW1lbnRzKQorCQkJCQl7CisJCQkJCQl0aGlzLmlubmVyRWxlbWVudHMuQWRkKGVsZW1lbnQpOworCQkJCQkJdGhpcy5pbm5lckVsZW1lbnRzLkFkZFJhbmdlKHNwYWNlckVsZW1lbnRzKTsKKwkJCQkJCXNwYWNlckFkZGVkID0gdHJ1ZTsKKwkJCQkJfQorCisJCQkJCWlmIChzcGFjZXJBZGRlZCkKKwkJCQkJeworCQkJCQkJLy8gcmVtb3ZlIGxhc3Qgc3BhY2VyIGFnYWluCisJCQkJCQl0aGlzLmlubmVyRWxlbWVudHMuUmVtb3ZlUmFuZ2UodGhpcy5pbm5lckVsZW1lbnRzLkNvdW50IC0gc3BhY2VyRWxlbWVudHMuTGVuZ3RoLCBzcGFjZXJFbGVtZW50cy5MZW5ndGgpOworCQkJCQl9CQkJCQkKKwkJCQl9CisJCQl9CisJCX0KKyAKKwkJcHVibGljIENvZGVFbGVtZW50IEFkZEVsZW1lbnQoQ29kZUVsZW1lbnQgZWxlbWVudCkKKwkJeworCQkJaWYgKGVsZW1lbnQgIT0gbnVsbCkKKwkJCXsKKwkJCQl0aGlzLmlubmVyRWxlbWVudHMuQWRkKGVsZW1lbnQpOworCQkJfQorCisJCQlyZXR1cm4gZWxlbWVudDsKKwkJfQorCisJCXB1YmxpYyBDb2RlIEFkZENvZGUoc3RyaW5nIGNvZGUpCisJCXsKKwkJCXJldHVybiB0aGlzLkFkZEVsZW1lbnQobmV3IENvZGUoY29kZSkpIGFzIENvZGU7CisJCX0KKworCQlwdWJsaWMgQ29kZSBBZGRDb2RlRm9ybWF0KHN0cmluZyBjb2RlRm9ybWF0LCBwYXJhbXMgb2JqZWN0W10gYXJncykKKwkJeworCQkJcmV0dXJuIHRoaXMuQWRkRWxlbWVudChuZXcgQ29kZShTdHJpbmcuRm9ybWF0KGNvZGVGb3JtYXQsIGFyZ3MpKSkgYXMgQ29kZTsKKwkJfQorCisJCXB1YmxpYyBDb2RlRWxlbWVudCBBZGREZWNsYXJhdGlvbihDb2RlRWxlbWVudCBkZWNsYXJhdGlvbikKKwkJeworCQkJaWYgKGRlY2xhcmF0aW9uICE9IG51bGwpCisJCQl7CisJCQkJdGhpcy5kZWNsYXJhdGlvbnMuQWRkKGRlY2xhcmF0aW9uKTsKKwkJCX0KKworCQkJcmV0dXJuIGRlY2xhcmF0aW9uOworCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVDb2RlKGludCBsZXZlbCwgQ0dlbmVyYXRvciBnZW5lcmF0b3IpCisJCXsKKwkJCWlmICh0aGlzLmluY3JlYXNlTGV2ZWwpCisJCQkJbGV2ZWwrKzsKKworCQkJaWYgKHRoaXMuZGVjbGFyYXRpb25zLkNvdW50ID4gMCkKKwkJCXsKKwkJCQlmb3JlYWNoIChDb2RlRWxlbWVudCBlbGVtZW50IGluIHRoaXMuZGVjbGFyYXRpb25zKQorCQkJCXsKKwkJCQkJZWxlbWVudC5HZW5lcmF0ZUNvZGUobGV2ZWwsIGdlbmVyYXRvcik7CisJCQkJfQorCisJCQkJRW1wdHlMaW5lLlNpbmdsZUxpbmUuR2VuZXJhdGVDb2RlKGxldmVsLCBnZW5lcmF0b3IpOworCQkJfQorCisJCQlmb3JlYWNoIChDb2RlRWxlbWVudCBlbGVtZW50IGluIHRoaXMuaW5uZXJFbGVtZW50cykKKwkJCXsKKwkJCQllbGVtZW50LkdlbmVyYXRlQ29kZShsZXZlbCwgZ2VuZXJhdG9yKTsKKwkJCX0KKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0NvZGVFbGVtZW50LmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vQ29kZUVsZW1lbnQuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFjZjJkMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0NvZGVFbGVtZW50LmNzCkBAIC0wLDAgKzEsNDEgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKworbmFtZXNwYWNlIENDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBDb2RlRWxlbWVudAorCXsKKwkJcHVibGljIHZpcnR1YWwgdm9pZCBHZW5lcmF0ZUNvZGUoaW50IGxldmVsLCBDR2VuZXJhdG9yIGdlbmVyYXRvcikKKwkJeworCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vQ29tbWVudC5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0NvbW1lbnQuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE3NzliZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0NvbW1lbnQuY3MKQEAgLTAsMCArMSw3NSBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCituYW1lc3BhY2UgQ0NvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIENvbW1lbnQ6IENvZGVFbGVtZW50CisJeworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIENvbW1lbnRTdGFydCA9ICIvKiI7CisJCXB1YmxpYyBjb25zdCBzdHJpbmcgQ29tbWVudEVuZCA9ICIqLyI7CisKKwkJcHVibGljIHN0cmluZyBDb21tZW50XyB7IGdldDsgc2V0OyB9CisJCXB1YmxpYyBib29sIFNpbmdsZUxpbmUgeyBnZXQ7IHNldDsgfQorCisJCXB1YmxpYyBDb21tZW50KCkKKwkJeworCQl9CisKKwkJcHVibGljIENvbW1lbnQoc3RyaW5nIGNvbW1lbnQsIGJvb2wgc2luZ2xlTGluZSA9IGZhbHNlKQorCQl7CisJCQl0aGlzLkNvbW1lbnRfICAgPSBjb21tZW50OworCQkJdGhpcy5TaW5nbGVMaW5lID0gc2luZ2xlTGluZTsKKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShpbnQgbGV2ZWwsIENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQlnZW5lcmF0b3IuSW5kZW50TGluZShsZXZlbCk7CisJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKENvbW1lbnRTdGFydCk7CisKKwkJCWlmICghdGhpcy5TaW5nbGVMaW5lKQorCQkJeworCQkJCWdlbmVyYXRvci5Xcml0ZU5ld0xpbmUoKTsKKwkJCQlnZW5lcmF0b3IuSW5kZW50TGluZShsZXZlbCk7CisJCQkJZ2VuZXJhdG9yLldyaXRlTXVsdGlsaW5lU3RyaW5nKHRoaXMuQ29tbWVudF8sIGxldmVsKTsKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCQkJZ2VuZXJhdG9yLkluZGVudExpbmUobGV2ZWwpOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoIiAiICsgQ29tbWVudF8gKyAiICIpOworCQkJfQorCisJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKENvbW1lbnRFbmQpOworCQkJZ2VuZXJhdG9yLldyaXRlTmV3TGluZSgpOworCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vRW1wdHlMaW5lLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vRW1wdHlMaW5lLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwNGM5NDcKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9FbXB0eUxpbmUuY3MKQEAgLTAsMCArMSw2NCBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCituYW1lc3BhY2UgQ0NvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIEVtcHR5TGluZSA6IENvZGVFbGVtZW50CisJeworCQlwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVtcHR5TGluZSBTaW5nbGVMaW5lID0gbmV3IEVtcHR5TGluZSgpOworCQlwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVtcHR5TGluZSBUd29MaW5lcyA9IG5ldyBFbXB0eUxpbmUoMik7CisJCXB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRW1wdHlMaW5lIFRocmVlTGluZXMgPSBuZXcgRW1wdHlMaW5lKDMpOworCisJCXB1YmxpYyB1aW50IENvdW50IHsgZ2V0OyBzZXQ7IH0KKworCQlwdWJsaWMgRW1wdHlMaW5lKCkKKwkJeworCQkJdGhpcy5Db3VudCA9IDE7CisJCX0KKworCQlwdWJsaWMgRW1wdHlMaW5lKHVpbnQgY291bnQpCisJCXsKKwkJCXRoaXMuQ291bnQgPSBjb3VudDsKKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShpbnQgbGV2ZWwsIENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQl1aW50IGMgPSB0aGlzLkNvdW50OworCisJCQl3aGlsZSAoYyA+IDApCisJCQl7CisJCQkJZ2VuZXJhdG9yLldyaXRlTmV3TGluZSgpOworCQkJCWMtLTsKKwkJCX0KKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0Z1bmN0aW9uLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vRnVuY3Rpb24uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgxZjZlNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0Z1bmN0aW9uLmNzCkBAIC0wLDAgKzEsMTI5IEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOworCituYW1lc3BhY2UgQ0NvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIEZ1bmN0aW9uOiBDb2RlQ29udGFpbmVyQmFzZQorCXsKKwkJcHVibGljIHN0cmluZyBOYW1lIHsgZ2V0OyBzZXQ7IH0KKwkJcHVibGljIGJvb2wgSXNTdGF0aWMgeyBnZXQ7IHNldDsgfQorCisJCXByaXZhdGUgcmVhZG9ubHkgTGlzdDxWYXJpYWJsZVR5cGU+IHBhcmFtZXRlciA9IG5ldyBMaXN0PFZhcmlhYmxlVHlwZT4oKTsKKwkJcHJpdmF0ZSBWYXJpYWJsZVR5cGUgcmV0dXJuVHlwZSA9IFZhcmlhYmxlVHlwZS5Wb2lkOworCisJCXB1YmxpYyBGdW5jdGlvbigpCisJCXsKKwkJfQorCisJCXB1YmxpYyBGdW5jdGlvbihzdHJpbmcgbmFtZSwgYm9vbCBpc1N0YXRpYyA9IGZhbHNlKQorCQl7CisJCQl0aGlzLk5hbWUgPSBuYW1lOworCQkJdGhpcy5Jc1N0YXRpYyA9IGlzU3RhdGljOworCQl9CisKKwkJcHVibGljIExpc3Q8VmFyaWFibGVUeXBlPiBQYXJhbWV0ZXIKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMucGFyYW1ldGVyOyB9CisJCX0KKworCQlwdWJsaWMgVmFyaWFibGVUeXBlIFJldHVyblR5cGUKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMucmV0dXJuVHlwZTsgfQorCQkJc2V0CisJCQl7CisJCQkJaWYgKHZhbHVlID09IG51bGwpCisJCQkJeworCQkJCQl0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJSZXR1cm5WYWx1ZSIpOworCQkJCX0KKwkJCQl0aGlzLnJldHVyblR5cGUgPSB2YWx1ZTsKKwkJCX0KKwkJfQorCisJCXB1YmxpYyBzdGF0aWMgRnVuY3Rpb24gRnJvbURlY2xhcmF0aW9uKEZ1bmN0aW9uRGVjbGFyYXRpb24gZGVjbCkKKwkJeworCQkJRnVuY3Rpb24gcmVzdWx0ID0gbmV3IEZ1bmN0aW9uKGRlY2wuTmFtZSwgZGVjbC5Jc1N0YXRpYyk7CisJCQlyZXN1bHQuUmV0dXJuVHlwZSA9IGRlY2wuUmV0dXJuVHlwZS5DbG9uZSgpIGFzIFZhcmlhYmxlVHlwZTsKKworCQkJZm9yZWFjaCAoVmFyaWFibGVUeXBlIHBhcmFtIGluIGRlY2wuUGFyYW1ldGVyKQorCQkJeworCQkJCXJlc3VsdC5wYXJhbWV0ZXIuQWRkKHBhcmFtLkNsb25lKCkgYXMgVmFyaWFibGVUeXBlKTsKKwkJCX0KKworCQkJcmV0dXJuIHJlc3VsdDsKKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShpbnQgbGV2ZWwsIENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQlnZW5lcmF0b3IuSW5kZW50TGluZShsZXZlbCk7CisKKwkJCWlmICh0aGlzLklzU3RhdGljKQorCQkJeworCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoInN0YXRpYyAiKTsKKwkJCX0KKworCQkJdGhpcy5yZXR1cm5UeXBlLkdlbmVyYXRlQ29kZShnZW5lcmF0b3IpOworCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgiICIgKyB0aGlzLk5hbWUgKyAiKCIpOworCisJCQlpZiAodGhpcy5QYXJhbWV0ZXIuQ291bnQgPiAwKQorCQkJeworCQkJCWZvciAoaW50IGkgPSAwOyBpIDwgdGhpcy5wYXJhbWV0ZXIuQ291bnQ7IGkrKykKKwkJCQl7CisJCQkJCXRoaXMucGFyYW1ldGVyW2ldLkdlbmVyYXRlQ29kZShnZW5lcmF0b3IpOworCisJCQkJCWlmIChpIDwgKHRoaXMucGFyYW1ldGVyLkNvdW50IC0gMSkpCisJCQkJCXsKKwkJCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoIiwgIik7CisJCQkJCX0KKwkJCQl9CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgidm9pZCIpOworCQkJfQorCisJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCIpIik7CisJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCQlnZW5lcmF0b3IuSW5kZW50TGluZShsZXZlbCk7CisJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCJ7Iik7CisJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisKKwkJCWJhc2UuR2VuZXJhdGVDb2RlKGxldmVsLCBnZW5lcmF0b3IpOworCisJCQlnZW5lcmF0b3IuSW5kZW50TGluZShsZXZlbCk7CisJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCJ9Iik7CisJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9GdW5jdGlvbkRlY2xhcmF0aW9uLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vRnVuY3Rpb25EZWNsYXJhdGlvbi5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYmM0Mjg4Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vRnVuY3Rpb25EZWNsYXJhdGlvbi5jcwpAQCAtMCwwICsxLDExNCBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCit1c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKKworbmFtZXNwYWNlIENDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBGdW5jdGlvbkRlY2xhcmF0aW9uOiBDb2RlRWxlbWVudAorCXsKKwkJcHVibGljIHN0cmluZyBOYW1lIHsgZ2V0OyBzZXQ7IH0KKwkJcHVibGljIGJvb2wgSXNTdGF0aWMgeyBnZXQ7IHNldDsgfQorCQlwdWJsaWMgYm9vbCBJc0V4dGVybiB7IGdldDsgc2V0OyB9CisKKwkJcHJpdmF0ZSByZWFkb25seSBMaXN0PFZhcmlhYmxlVHlwZT4gcGFyYW1ldGVyID0gbmV3IExpc3Q8VmFyaWFibGVUeXBlPigpOworCQlwcml2YXRlIFZhcmlhYmxlVHlwZSByZXR1cm5UeXBlID0gVmFyaWFibGVUeXBlLlZvaWQ7CisKKwkJcHVibGljIEZ1bmN0aW9uRGVjbGFyYXRpb24oKQorCQl7CisJCX0KKworCQlwdWJsaWMgRnVuY3Rpb25EZWNsYXJhdGlvbihzdHJpbmcgbmFtZSwgYm9vbCBpc1N0YXRpYyA9IGZhbHNlLCBib29sIGlzRXh0ZXJuID0gZmFsc2UpCisJCXsKKwkJCXRoaXMuTmFtZSA9IG5hbWU7CisJCQl0aGlzLklzU3RhdGljID0gaXNTdGF0aWM7CisJCQl0aGlzLklzRXh0ZXJuID0gaXNFeHRlcm47CisJCX0KKworCQlwdWJsaWMgTGlzdDxWYXJpYWJsZVR5cGU+IFBhcmFtZXRlcgorCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5wYXJhbWV0ZXI7IH0KKwkJfQorCisJCXB1YmxpYyBWYXJpYWJsZVR5cGUgUmV0dXJuVHlwZQorCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5yZXR1cm5UeXBlOyB9CisJCQlzZXQKKwkJCXsKKwkJCQlpZiAodmFsdWUgPT0gbnVsbCkKKwkJCQl7CisJCQkJCXRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24oIlJldHVyblZhbHVlIik7CisJCQkJfQorCQkJCXRoaXMucmV0dXJuVHlwZSA9IHZhbHVlOworCQkJfQorCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVDb2RlKGludCBsZXZlbCwgQ0dlbmVyYXRvciBnZW5lcmF0b3IpCisJCXsKKwkJCWdlbmVyYXRvci5JbmRlbnRMaW5lKGxldmVsKTsKKworCQkJaWYgKHRoaXMuSXNFeHRlcm4pCisJCQl7CisJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgiZXh0ZXJuICIpOworCQkJfQorCisJCQlpZiAodGhpcy5Jc1N0YXRpYykKKwkJCXsKKwkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCJzdGF0aWMgIik7CisJCQl9CisKKwkJCXRoaXMucmV0dXJuVHlwZS5HZW5lcmF0ZUNvZGUoZ2VuZXJhdG9yKTsKKwkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoIiAiICsgdGhpcy5OYW1lICsgIigiKTsKKworCQkJaWYgKHRoaXMuUGFyYW1ldGVyLkNvdW50ID4gMCkKKwkJCXsKKwkJCQlmb3IgKGludCBpID0gMDsgaSA8IHRoaXMucGFyYW1ldGVyLkNvdW50OyBpKyspCisJCQkJeworCQkJCQl0aGlzLnBhcmFtZXRlcltpXS5HZW5lcmF0ZUNvZGUoZ2VuZXJhdG9yKTsKKworCQkJCQlpZiAoaSA8ICh0aGlzLnBhcmFtZXRlci5Db3VudCAtIDEpKQorCQkJCQl7CisJCQkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCIsICIpOworCQkJCQl9CisJCQkJfQorCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoInZvaWQiKTsKKwkJCX0KKworCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgiKTsiKTsKKwkJCWdlbmVyYXRvci5Xcml0ZU5ld0xpbmUoKTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL0lmVGhlbkVsc2UuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9JZlRoZW5FbHNlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0NzEwMjIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9JZlRoZW5FbHNlLmNzCkBAIC0wLDAgKzEsMTM3IEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOworCituYW1lc3BhY2UgQ0NvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIEVsc2VJZiA6IENvZGVDb250YWluZXJCYXNlCisJeworCQlwdWJsaWMgc3RyaW5nIENvbmRpdGlvbiB7IGdldDsgc2V0OyB9CisKKwkJcHVibGljIEVsc2VJZigpCisJCXsKKwkJfQorCisJCXB1YmxpYyBFbHNlSWYoc3RyaW5nIGNvbmRpdGlvbikKKwkJeworCQkJdGhpcy5Db25kaXRpb24gPSBjb25kaXRpb247CisJCX0KKworCQlwdWJsaWMgb3ZlcnJpZGUgdm9pZCBHZW5lcmF0ZUNvZGUoaW50IGxldmVsLCBDR2VuZXJhdG9yIGdlbmVyYXRvcikKKwkJeworCQkJaWYgKCFTdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHRoaXMuQ29uZGl0aW9uKSkKKwkJCXsKKwkJCQlnZW5lcmF0b3IuSW5kZW50TGluZShsZXZlbCk7CisJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZShTdHJpbmcuRm9ybWF0KCJlbHNlIGlmICh7MH0pIiwgdGhpcy5Db25kaXRpb24pKTsKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCQkJZ2VuZXJhdG9yLkluZGVudExpbmUobGV2ZWwpOworCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoInsiKTsKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisKKwkJCQliYXNlLkdlbmVyYXRlQ29kZShsZXZlbCwgZ2VuZXJhdG9yKTsKKworCQkJCWdlbmVyYXRvci5JbmRlbnRMaW5lKGxldmVsKTsKKwkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCJ9Iik7CisJCQkJZ2VuZXJhdG9yLldyaXRlTmV3TGluZSgpOworCQkJfQorCQl9CisJfQorCisJcHVibGljIGNsYXNzIElmVGhlbkVsc2U6IENvZGVDb250YWluZXJCYXNlCisJeworCQlwdWJsaWMgc3RyaW5nIENvbmRpdGlvbiB7IGdldDsgc2V0OyB9CisKKwkJcHJpdmF0ZSBMaXN0PEVsc2VJZj4gZWxzZUlmID0gbmV3IExpc3Q8RWxzZUlmPigpOworCQlwcml2YXRlIENvZGVDb250YWluZXJCYXNlIGVsc2VfID0gbmV3IENvZGVDb250YWluZXJCYXNlKCk7CisKKwkJcHVibGljIElmVGhlbkVsc2UoKQorCQl7CisJCX0KKworCQlwdWJsaWMgSWZUaGVuRWxzZShzdHJpbmcgY29uZGl0aW9uKQorCQl7CisJCQl0aGlzLkNvbmRpdGlvbiA9IGNvbmRpdGlvbjsKKwkJfQorCisJCXB1YmxpYyBMaXN0PEVsc2VJZj4gRWxzZUlmCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLmVsc2VJZjsgfQorCQl9CisKKwkJcHVibGljIENvZGVDb250YWluZXJCYXNlIEVsc2UKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuZWxzZV87IH0KKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShpbnQgbGV2ZWwsIENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQlpZiAoIVN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodGhpcy5Db25kaXRpb24pKQorCQkJeworCQkJCWdlbmVyYXRvci5JbmRlbnRMaW5lKGxldmVsKTsKKwkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKFN0cmluZy5Gb3JtYXQoImlmICh7MH0pIiwgdGhpcy5Db25kaXRpb24pKTsKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCQkJZ2VuZXJhdG9yLkluZGVudExpbmUobGV2ZWwpOworCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoInsiKTsKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisKKwkJCQliYXNlLkdlbmVyYXRlQ29kZShsZXZlbCwgZ2VuZXJhdG9yKTsKKworCQkJCWdlbmVyYXRvci5JbmRlbnRMaW5lKGxldmVsKTsKKwkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCJ9Iik7CisJCQkJZ2VuZXJhdG9yLldyaXRlTmV3TGluZSgpOworCisJCQkJZm9yZWFjaCAoRWxzZUlmIGVsaWYgaW4gdGhpcy5lbHNlSWYpCisJCQkJeworCQkJCQllbGlmLkdlbmVyYXRlQ29kZShsZXZlbCwgZ2VuZXJhdG9yKTsKKwkJCQl9CisKKwkJCQlpZiAodGhpcy5lbHNlXy5Jbm5lckVsZW1lbnRzLkNvdW50ID4gMCkKKwkJCQl7CisJCQkJCWdlbmVyYXRvci5JbmRlbnRMaW5lKGxldmVsKTsKKwkJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgiZWxzZSIpOworCQkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCQkJCWdlbmVyYXRvci5JbmRlbnRMaW5lKGxldmVsKTsKKwkJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgieyIpOworCQkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisKKwkJCQkJdGhpcy5lbHNlXy5HZW5lcmF0ZUNvZGUobGV2ZWwsIGdlbmVyYXRvcik7CisKKwkJCQkJZ2VuZXJhdG9yLkluZGVudExpbmUobGV2ZWwpOworCQkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCJ9Iik7CisJCQkJCWdlbmVyYXRvci5Xcml0ZU5ld0xpbmUoKTsKKwkJCQl9CisJCQl9CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9QUF9JZi5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1BQX0lmLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NjgyMTUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9QUF9JZi5jcwpAQCAtMCwwICsxLDY3IEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKKworbmFtZXNwYWNlIENDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBQUF9JZjogQ29kZUNvbnRhaW5lckJhc2UKKwl7CisJCXB1YmxpYyBzdHJpbmcgQ29uZGl0aW9uIHsgZ2V0OyBzZXQ7IH0KKworCQlwdWJsaWMgUFBfSWYoKQorCQl7CisJCQliYXNlLkluY3JlYXNlTGV2ZWwgPSBmYWxzZTsKKwkJfQorCisJCXB1YmxpYyBQUF9JZihzdHJpbmcgY29uZGl0aW9uKQorCQkJOiB0aGlzKCkKKwkJeworCQkJdGhpcy5Db25kaXRpb24gPSBjb25kaXRpb247CisJCX0KKworCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShpbnQgbGV2ZWwsIENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQlpZiAoIVN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodGhpcy5Db25kaXRpb24pKQorCQkJeworCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoIiNpZiAiICsgdGhpcy5Db25kaXRpb24pOworCQkJCWdlbmVyYXRvci5Xcml0ZU5ld0xpbmUoKTsKKworCQkJCWJhc2UuR2VuZXJhdGVDb2RlKGxldmVsLCBnZW5lcmF0b3IpOworCisJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgiI2VuZGlmIC8qICIgKyB0aGlzLkNvbmRpdGlvbiArICIgKi8iKTsKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCQl9CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9QUF9JZmRlZi5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1BQX0lmZGVmLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkNGY0NWEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9QUF9JZmRlZi5jcwpAQCAtMCwwICsxLDc2IEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKKworbmFtZXNwYWNlIENDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBQUF9JZmRlZjogQ29kZUNvbnRhaW5lckJhc2UKKwl7CisJCXB1YmxpYyBzdHJpbmcgTWFjcm8geyBnZXQ7IHNldDsgfQorCQlwdWJsaWMgYm9vbCBJbnZlcnRlZCB7IGdldDsgc2V0OyB9CisKKwkJcHVibGljIFBQX0lmZGVmKCkKKwkJeworCQkJYmFzZS5JbmNyZWFzZUxldmVsID0gZmFsc2U7CisJCX0KKworCQlwdWJsaWMgUFBfSWZkZWYoc3RyaW5nIG1hY3JvLCBib29sIGludmVydGVkID0gZmFsc2UpCisJCQk6IHRoaXMoKQorCQl7CisJCQl0aGlzLk1hY3JvID0gbWFjcm87CisJCQl0aGlzLkludmVydGVkID0gaW52ZXJ0ZWQ7CisJCX0KKworCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShpbnQgbGV2ZWwsIENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQlpZiAoIVN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodGhpcy5NYWNybykpCisJCQl7CisJCQkJaWYgKHRoaXMuSW52ZXJ0ZWQpCisJCQkJeworCQkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCIjaWZuZGVmICIgKyB0aGlzLk1hY3JvKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgiI2lmZGVmICIgKyB0aGlzLk1hY3JvKTsKKwkJCQl9CisJCQkJZ2VuZXJhdG9yLldyaXRlTmV3TGluZSgpOworCisJCQkJYmFzZS5HZW5lcmF0ZUNvZGUobGV2ZWwsIGdlbmVyYXRvcik7CisKKwkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCIjZW5kaWYgLyogIiArIHRoaXMuTWFjcm8gKyAiICovIik7CisJCQkJZ2VuZXJhdG9yLldyaXRlTmV3TGluZSgpOworCQkJfQorCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vUFBfSW5jbHVkZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1BQX0luY2x1ZGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5M2QyNwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1BQX0luY2x1ZGUuY3MKQEAgLTAsMCArMSw3MSBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCit1c2luZyBTeXN0ZW07CisKK25hbWVzcGFjZSBDQ29kZUdlbmVyYXRpb24KK3sKKwlwdWJsaWMgY2xhc3MgUFBfSW5jbHVkZSA6IENvZGVFbGVtZW50CisJeworCQlwdWJsaWMgc3RyaW5nIEZpbGUgeyBnZXQ7IHNldDsgfQorCQlwdWJsaWMgYm9vbCBJc0xvY2FsIHsgZ2V0OyBzZXQ7IH0KKworCQlwdWJsaWMgUFBfSW5jbHVkZSgpCisJCXsKKwkJCXRoaXMuSXNMb2NhbCA9IHRydWU7CQkJCSAKKwkJfQorCisJCXB1YmxpYyBQUF9JbmNsdWRlKHN0cmluZyBmaWxlLCBib29sIGlzTG9jYWwgPSB0cnVlKQorCQl7CisJCQl0aGlzLkZpbGUgPSBmaWxlOworCQkJdGhpcy5Jc0xvY2FsID0gaXNMb2NhbDsKKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShpbnQgbGV2ZWwsIENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQlpZiAoIVN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodGhpcy5GaWxlKSkKKwkJCXsKKwkJCQkvLyBpbmNsdWRlcyBhcmUgbmV2ZXIgaW5kZW50ZWQKKwkJCQlpZiAodGhpcy5Jc0xvY2FsKQorCQkJCXsKKwkJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgiI2luY2x1ZGUgXCIiICsgdGhpcy5GaWxlICsgIlwiIik7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoIiNpbmNsdWRlIDwiICsgdGhpcy5GaWxlICsgIj4iKTsKKwkJCQl9CisKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CQkJCisJCQl9CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9QUF9NYWNyby5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1BQX01hY3JvLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmMzAyYWEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9QUF9NYWNyby5jcwpAQCAtMCwwICsxLDU5IEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK25hbWVzcGFjZSBDQ29kZUdlbmVyYXRpb24KK3sKKwlwdWJsaWMgY2xhc3MgUFBfTWFjcm86IENvZGVFbGVtZW50CisJeworCQlwdWJsaWMgc3RyaW5nIE5hbWUgeyBnZXQ7IHNldDsgfQorCQlwdWJsaWMgc3RyaW5nIFZhbHVlIHsgZ2V0OyBzZXQ7IH0KKworCQlwdWJsaWMgUFBfTWFjcm8oKQorCQl7CisJCX0KKworCQlwdWJsaWMgUFBfTWFjcm8oc3RyaW5nIG5hbWUsIHN0cmluZyB2YWx1ZSkKKwkJeworCQkJdGhpcy5OYW1lICA9IG5hbWU7CisJCQl0aGlzLlZhbHVlID0gdmFsdWU7CisJCX0KKworCQkKKwkJcHVibGljIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVDb2RlKGludCBsZXZlbCwgQ0dlbmVyYXRvciBnZW5lcmF0b3IpCisJCXsKKwkJCS8vIG1hY3JvcyBhcmUgbm90IGluZGVudGVkIGF0IGFsbAorCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgiI2RlZmluZSAiICsgdGhpcy5OYW1lICsgIiAiKTsKKwkJCWdlbmVyYXRvci5Xcml0ZU11bHRpbGluZVN0cmluZyh0aGlzLlZhbHVlKTsKKwkJCWdlbmVyYXRvci5Xcml0ZU5ld0xpbmUoKTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1BsYWluVGV4dC5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1BsYWluVGV4dC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWUwNzZmCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vUGxhaW5UZXh0LmNzCkBAIC0wLDAgKzEsNDkgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKworbmFtZXNwYWNlIENDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBQbGFpblRleHQgOiBDb2RlRWxlbWVudAorCXsKKwkJcHVibGljIHN0cmluZyBWYWx1ZSB7IGdldDsgc2V0OyB9CisKKwkJcHVibGljIFBsYWluVGV4dChzdHJpbmcgdmFsdWUpCisJCXsKKwkJCXRoaXMuVmFsdWUgPSB2YWx1ZTsKKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShpbnQgbGV2ZWwsIENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQlnZW5lcmF0b3IuV3JpdGVNdWx0aWxpbmVTdHJpbmcodGhpcy5WYWx1ZSk7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNzE2YWQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwpAQCAtMCwwICsxLDM2IEBACivvu791c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsKK3VzaW5nIFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXM7Cit1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7CisKKy8vIEFsbGdlbWVpbmUgSW5mb3JtYXRpb25lbiDDvGJlciBlaW5lIEFzc2VtYmx5IHdlcmRlbiDDvGJlciBkaWUgZm9sZ2VuZGVuIAorLy8gQXR0cmlidXRlIGdlc3RldWVydC4gw4RuZGVybiBTaWUgZGllc2UgQXR0cmlidXR3ZXJ0ZSwgdW0gZGllIEluZm9ybWF0aW9uZW4genUgw6RuZGVybiwKKy8vIGRpZSBtaXQgZWluZXIgQXNzZW1ibHkgdmVya27DvHBmdCBzaW5kLgorW2Fzc2VtYmx5OiBBc3NlbWJseVRpdGxlKCJDQ29kZUdlbmVyYXRpb24iKV0KK1thc3NlbWJseTogQXNzZW1ibHlEZXNjcmlwdGlvbigiIildCitbYXNzZW1ibHk6IEFzc2VtYmx5Q29uZmlndXJhdGlvbigiIildCitbYXNzZW1ibHk6IEFzc2VtYmx5Q29tcGFueSgiIildCitbYXNzZW1ibHk6IEFzc2VtYmx5UHJvZHVjdCgiQ0NvZGVHZW5lcmF0aW9uIildCitbYXNzZW1ibHk6IEFzc2VtYmx5Q29weXJpZ2h0KCJDb3B5cmlnaHQgwqkgIDIwMTUiKV0KK1thc3NlbWJseTogQXNzZW1ibHlUcmFkZW1hcmsoIiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseUN1bHR1cmUoIiIpXQorCisvLyBEdXJjaCBGZXN0bGVnZW4gdm9uIENvbVZpc2libGUgYXVmICJmYWxzZSIgd2VyZGVuIGRpZSBUeXBlbiBpbiBkaWVzZXIgQXNzZW1ibHkgdW5zaWNodGJhciAKKy8vIGbDvHIgQ09NLUtvbXBvbmVudGVuLiBXZW5uIFNpZSBhdWYgZWluZW4gVHlwIGluIGRpZXNlciBBc3NlbWJseSB2b24gCisvLyBDT00genVncmVpZmVuIG3DvHNzZW4sIGxlZ2VuIFNpZSBkYXMgQ29tVmlzaWJsZS1BdHRyaWJ1dCBmw7xyIGRpZXNlbiBUeXAgYXVmICJ0cnVlIiBmZXN0LgorW2Fzc2VtYmx5OiBDb21WaXNpYmxlKGZhbHNlKV0KKworLy8gRGllIGZvbGdlbmRlIEdVSUQgYmVzdGltbXQgZGllIElEIGRlciBUeXBiaWJsaW90aGVrLCB3ZW5uIGRpZXNlcyBQcm9qZWt0IGbDvHIgQ09NIHZlcmbDvGdiYXIgZ2VtYWNodCB3aXJkCitbYXNzZW1ibHk6IEd1aWQoIjhmMDdhMGZhLTg2ZjQtNDhhMC05N2M3LWY5NGZjNWMzZjEwMyIpXQorCisvLyBWZXJzaW9uc2luZm9ybWF0aW9uZW4gZsO8ciBlaW5lIEFzc2VtYmx5IGJlc3RlaGVuIGF1cyBkZW4gZm9sZ2VuZGVuIHZpZXIgV2VydGVuOgorLy8KKy8vICAgICAgSGF1cHR2ZXJzaW9uCisvLyAgICAgIE5lYmVudmVyc2lvbiAKKy8vICAgICAgQnVpbGRudW1tZXIKKy8vICAgICAgUmV2aXNpb24KKy8vCisvLyBTaWUga8O2bm5lbiBhbGxlIFdlcnRlIGFuZ2ViZW4gb2RlciBkaWUgc3RhbmRhcmRtw6TDn2lnZW4gQnVpbGQtIHVuZCBSZXZpc2lvbnNudW1tZXJuIAorLy8gw7xiZXJuZWhtZW4sIGluZGVtIFNpZSAiKiIgZWluZ2ViZW46CisvLyBbYXNzZW1ibHk6IEFzc2VtYmx5VmVyc2lvbigiMS4wLioiKV0KK1thc3NlbWJseTogQXNzZW1ibHlWZXJzaW9uKCIxLjAuMC4wIildCitbYXNzZW1ibHk6IEFzc2VtYmx5RmlsZVZlcnNpb24oIjEuMC4wLjAiKV0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1N3aXRjaC5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1N3aXRjaC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTY2ZmI4Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vU3dpdGNoLmNzCkBAIC0wLDAgKzEsMTQ2IEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOworCituYW1lc3BhY2UgQ0NvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIFN3aXRjaENhc2UgOiBDb2RlQ29udGFpbmVyQmFzZQorCXsKKwkJcHVibGljIHN0cmluZyBWYWx1ZSB7IGdldDsgc2V0OyB9CisKKwkJcHVibGljIFN3aXRjaENhc2UoKQorCQl7CisJCX0KKworCQlwdWJsaWMgU3dpdGNoQ2FzZShzdHJpbmcgdmFsdWUpCisJCXsKKwkJCXRoaXMuVmFsdWUgPSB2YWx1ZTsKKwkJfQorCisJCXB1YmxpYyBib29sIElzRGVmYXVsdAorCQl7CisJCQlnZXQgeyByZXR1cm4gKHRoaXMuVmFsdWUuVG9Mb3dlckludmFyaWFudCgpID09ICJkZWZhdWx0Iik7IH0KKwkJfQorCisJCXB1YmxpYyBzdGF0aWMgU3dpdGNoQ2FzZSBHZW5lcmF0ZURlZmF1bHQoKQorCQl7CisJCQlyZXR1cm4gbmV3IFN3aXRjaENhc2UoImRlZmF1bHQiKTsKKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShpbnQgbGV2ZWwsIENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQlpZiAoIVN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodGhpcy5WYWx1ZSkpCisJCQl7CisJCQkJZ2VuZXJhdG9yLkluZGVudExpbmUobGV2ZWwpOworCQkJCWlmICh0aGlzLklzRGVmYXVsdCkKKwkJCQl7CisJCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoImRlZmF1bHQ6Iik7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoU3RyaW5nLkZvcm1hdCgiY2FzZSB7MH06IiwgdGhpcy5WYWx1ZSkpOworCQkJCX0KKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCQkJZ2VuZXJhdG9yLkluZGVudExpbmUobGV2ZWwgKyAxKTsKKwkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCJ7Iik7CisJCQkJZ2VuZXJhdG9yLldyaXRlTmV3TGluZSgpOworCisJCQkJYmFzZS5HZW5lcmF0ZUNvZGUobGV2ZWwgKyAxLCBnZW5lcmF0b3IpOworCisJCQkJZ2VuZXJhdG9yLkluZGVudExpbmUobGV2ZWwgKyAxKTsKKwkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCJ9Iik7CisJCQkJZ2VuZXJhdG9yLldyaXRlTmV3TGluZSgpOworCisJCQkJZ2VuZXJhdG9yLkluZGVudExpbmUobGV2ZWwgKyAxKTsKKwkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCJicmVhazsiKTsKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCQl9CisJCX0KKwl9CisKKwlwdWJsaWMgY2xhc3MgU3dpdGNoOiBDb2RlRWxlbWVudAorCXsKKwkJcHVibGljIHN0cmluZyBTd2l0Y2hWYXIgeyBnZXQ7IHNldDsgfQorCisJCXByaXZhdGUgTGlzdDxTd2l0Y2hDYXNlPiBzd2l0Y2hlcyA9IG5ldyBMaXN0PFN3aXRjaENhc2U+KCk7CisKKwkJcHVibGljIFN3aXRjaCgpCisJCXsKKwkJfQorCisJCXB1YmxpYyBTd2l0Y2goc3RyaW5nIHN3aXRjaFZhcikKKwkJeworCQkJdGhpcy5Td2l0Y2hWYXIgPSBzd2l0Y2hWYXI7CisJCX0KKworCQlwdWJsaWMgTGlzdDxTd2l0Y2hDYXNlPiBTd2l0Y2hlcworCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5zd2l0Y2hlczsgfQorCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVDb2RlKGludCBsZXZlbCwgQ0dlbmVyYXRvciBnZW5lcmF0b3IpCisJCXsKKwkJCWlmICghU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh0aGlzLlN3aXRjaFZhcikpCisJCQl7CisJCQkJZ2VuZXJhdG9yLkluZGVudExpbmUobGV2ZWwpOworCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoU3RyaW5nLkZvcm1hdCgic3dpdGNoICh7MH0pIiwgdGhpcy5Td2l0Y2hWYXIpKTsKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCQkJZ2VuZXJhdG9yLkluZGVudExpbmUobGV2ZWwpOworCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoInsiKTsKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisKKwkJCQlTd2l0Y2hDYXNlIGRlZmF1bHRDYXNlID0gbnVsbDsgLy8gZ2VuZXJhdGUgJ2RlZmF1bHQnIGFsd2F5cyBhcyBsYXN0IGNhc2UKKwkJCQlmb3JlYWNoIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgaW4gdGhpcy5zd2l0Y2hlcykKKwkJCQl7CisJCQkJCWlmIChzd2l0Y2hDYXNlLklzRGVmYXVsdCkKKwkJCQkJeworCQkJCQkJZGVmYXVsdENhc2UgPSBzd2l0Y2hDYXNlOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJc3dpdGNoQ2FzZS5HZW5lcmF0ZUNvZGUobGV2ZWwgKyAxLCBnZW5lcmF0b3IpOworCQkJCQl9CisJCQkJfQorCQkJCWlmIChkZWZhdWx0Q2FzZSAhPSBudWxsKQorCQkJCXsKKwkJCQkJZGVmYXVsdENhc2UuR2VuZXJhdGVDb2RlKGxldmVsICsgMSwgZ2VuZXJhdG9yKTsKKwkJCQl9CisKKwkJCQlnZW5lcmF0b3IuSW5kZW50TGluZShsZXZlbCk7CisJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgifSIpOworCQkJCWdlbmVyYXRvci5Xcml0ZU5ld0xpbmUoKTsKKwkJCX0KKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1ZhcmlhYmxlRGVjbGFyYXRpb24uY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9WYXJpYWJsZURlY2xhcmF0aW9uLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMmM5MDIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0NDb2RlR2VuZXJhdGlvbi9WYXJpYWJsZURlY2xhcmF0aW9uLmNzCkBAIC0wLDAgKzEsODIgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOworCituYW1lc3BhY2UgQ0NvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIFZhcmlhYmxlRGVjbGFyYXRpb24gOiBDb2RlRWxlbWVudAorCXsKKwkJcHVibGljIFZhcmlhYmxlVHlwZSBUeXBlIHsgZ2V0OyBzZXQ7IH0KKwkJcHVibGljIHN0cmluZyBJbml0aWFsVmFsdWUgeyBnZXQ7IHNldDsgfQorCQlwdWJsaWMgYm9vbCBJc1N0YXRpYyB7IGdldDsgc2V0OyB9CisKKwkJcHVibGljIFZhcmlhYmxlRGVjbGFyYXRpb24oKQorCQkJOiBiYXNlKCkKKwkJeworCQl9CisKKwkJcHVibGljIFZhcmlhYmxlRGVjbGFyYXRpb24oVmFyaWFibGVUeXBlIHR5cGUsIHN0cmluZyBpbml0aWFsVmFsdWUgPSBudWxsLCBib29sIGlzU3RhdGljID0gZmFsc2UpIDoKKwkJCWJhc2UoKQorCQl7CisJCQl0aGlzLlR5cGUgICAgICAgICA9IHR5cGU7CisJCQl0aGlzLkluaXRpYWxWYWx1ZSA9IGluaXRpYWxWYWx1ZTsKKwkJCXRoaXMuSXNTdGF0aWMgICAgID0gaXNTdGF0aWM7CisJCX0KKworCQlwdWJsaWMgb3ZlcnJpZGUgdm9pZCBHZW5lcmF0ZUNvZGUoaW50IGxldmVsLCBDR2VuZXJhdG9yIGdlbmVyYXRvcikKKwkJeworCQkJaWYgKHRoaXMuVHlwZSAhPSBudWxsKQorCQkJeworCQkJCWdlbmVyYXRvci5JbmRlbnRMaW5lKGxldmVsKTsKKworCQkJCWlmICh0aGlzLklzU3RhdGljKQorCQkJCXsKKwkJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgic3RhdGljICIpOworCQkJCX0KKworCQkJCS8vIGRlY2xhcmUgdGhlIHZhcmlhYmxlCisJCQkJdGhpcy5UeXBlLkdlbmVyYXRlQ29kZShnZW5lcmF0b3IpOworCisJCQkJaWYgKCFTdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHRoaXMuSW5pdGlhbFZhbHVlKSkKKwkJCQl7CisJCQkJCS8vIGFkZCBpbml0aWFsaXphdGlvbiB2YWx1ZQorCQkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCIgPSAiKTsKKwkJCQkJZ2VuZXJhdG9yLldyaXRlTXVsdGlsaW5lU3RyaW5nKHRoaXMuSW5pdGlhbFZhbHVlLCBsZXZlbCk7CisJCQkJfQorCisJCQkJZ2VuZXJhdG9yLk91dHB1dFN0cmVhbS5Xcml0ZSgiOyIpOworCQkJCWdlbmVyYXRvci5Xcml0ZU5ld0xpbmUoKTsKKwkJCX0KKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1ZhcmlhYmxlUHJvdG90eXBlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vVmFyaWFibGVQcm90b3R5cGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhhNDE2NgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1ZhcmlhYmxlUHJvdG90eXBlLmNzCkBAIC0wLDAgKzEsNzMgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKworbmFtZXNwYWNlIENDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBWYXJpYWJsZVByb3RvdHlwZSA6IENvZGVFbGVtZW50CisJeworCQlwdWJsaWMgVmFyaWFibGVUeXBlIFR5cGUgeyBnZXQ7IHNldDsgfQorCisJCXB1YmxpYyBWYXJpYWJsZVByb3RvdHlwZSgpCisJCQk6IGJhc2UoKQorCQl7CisJCX0KKworCQlwdWJsaWMgVmFyaWFibGVQcm90b3R5cGUoVmFyaWFibGVUeXBlIHR5cGUpIDoKKwkJCWJhc2UoKQorCQl7CisJCQlUeXBlID0gdHlwZTsKKwkJfQorCisJCXB1YmxpYyBzdGF0aWMgVmFyaWFibGVQcm90b3R5cGUgRnJvbVZhcmlhYmxlRGVjbGFyYXRpb24oVmFyaWFibGVEZWNsYXJhdGlvbiBkZWNsYXJhdGlvbikKKwkJeworCQkJcmV0dXJuIG5ldyBWYXJpYWJsZVByb3RvdHlwZShkZWNsYXJhdGlvbi5UeXBlKTsKKwkJfQorCisKKwkJcHVibGljIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVDb2RlKGludCBsZXZlbCwgQ0dlbmVyYXRvciBnZW5lcmF0b3IpCisJCXsKKwkJCWlmICh0aGlzLlR5cGUgIT0gbnVsbCkKKwkJCXsKKwkJCQlnZW5lcmF0b3IuSW5kZW50TGluZShsZXZlbCk7CisKKwkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKCJleHRlcm4gIik7CisKKwkJCQkvLyBkZWNsYXJlIHRoZSB2YXJpYWJsZQorCQkJCXRoaXMuVHlwZS5HZW5lcmF0ZUNvZGUoZ2VuZXJhdG9yKTsKKworCQkJCWdlbmVyYXRvci5PdXRwdXRTdHJlYW0uV3JpdGUoIjsiKTsKKwkJCQlnZW5lcmF0b3IuV3JpdGVOZXdMaW5lKCk7CisJCQl9CisJCX0KKworCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1ZhcmlhYmxlVHlwZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvQ0NvZGVHZW5lcmF0aW9uL1ZhcmlhYmxlVHlwZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTNhYmJlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9DQ29kZUdlbmVyYXRpb24vVmFyaWFibGVUeXBlLmNzCkBAIC0wLDAgKzEsMTMwIEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5UZXh0OworCituYW1lc3BhY2UgQ0NvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGVudW0gQ29uc3RUeXBlCisJeworCQlOb25lLAorCQlWYWx1ZSwKKwkJSW5kaXJlY3Rpb24sCisJCUJvdGgKKwl9CisKKwlwdWJsaWMgY2xhc3MgVmFyaWFibGVUeXBlIDogSUNsb25lYWJsZQorCXsKKwkJcHVibGljIGNvbnN0IHN0cmluZyBWb2lkU3RyaW5nID0gInZvaWQiOworCQlwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFZhcmlhYmxlVHlwZSBWb2lkID0gbmV3IFZhcmlhYmxlVHlwZShudWxsLCAidm9pZCIpOworCisJCXB1YmxpYyBzdHJpbmcgTmFtZSB7IGdldDsgc2V0OyB9CisJCXB1YmxpYyBzdHJpbmcgVHlwZSB7IGdldDsgc2V0OyB9CisJCXB1YmxpYyBzdHJpbmcgSW5kaXJlY3Rpb24geyBnZXQ7IHNldDsgfQorCQlwdWJsaWMgQ29uc3RUeXBlIENvbnN0IHsgZ2V0OyBzZXQ7IH0KKwkJcHVibGljIHN0cmluZyBBcnJheVNwZWNpZmllciB7IGdldDsgc2V0OyB9CisKKwkJcHVibGljIFZhcmlhYmxlVHlwZSgpCisJCXsKKwkJfQorCisJCXB1YmxpYyBWYXJpYWJsZVR5cGUoc3RyaW5nIG5hbWUsIHN0cmluZyB0eXBlLCBzdHJpbmcgaW5kaXJlY3Rpb24gPSBudWxsLCBDb25zdFR5cGUgY29uc3RfID0gQ29uc3RUeXBlLk5vbmUsIHN0cmluZyBhcnJheVNwZWNpZmllciA9IG51bGwpCisJCXsKKwkJCXRoaXMuTmFtZSAgICAgICAgICAgPSBuYW1lOworCQkJdGhpcy5UeXBlICAgICAgICAgICA9IHR5cGU7CisJCQl0aGlzLkluZGlyZWN0aW9uICAgID0gaW5kaXJlY3Rpb247CisJCQl0aGlzLkNvbnN0ICAgICAgICAgID0gY29uc3RfOworCQkJdGhpcy5BcnJheVNwZWNpZmllciA9IGFycmF5U3BlY2lmaWVyOworCQl9CisKKwkJcHVibGljIHZvaWQgR2VuZXJhdGVDb2RlKENHZW5lcmF0b3IgZ2VuZXJhdG9yKQorCQl7CisJCQlpZiAoIVN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodGhpcy5UeXBlKSkKKwkJCXsKKwkJCQlnZW5lcmF0b3IuT3V0cHV0U3RyZWFtLldyaXRlKHRoaXMuVG9TdHJpbmcoKS5UcmltKCkpOworCQkJfQorCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHN0cmluZyBUb1N0cmluZygpCisJCXsKKwkJCWlmICghU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh0aGlzLlR5cGUpKQorCQkJeworCQkJCVN0cmluZ0J1aWxkZXIgdnQgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworCisJCQkJaWYgKCh0aGlzLkNvbnN0ID09IENvbnN0VHlwZS5WYWx1ZSkgfHwgKHRoaXMuQ29uc3QgPT0gQ29uc3RUeXBlLkJvdGgpKQorCQkJCXsKKwkJCQkJdnQuQXBwZW5kKCJjb25zdCAiKTsKKwkJCQl9CisKKwkJCQl2dC5BcHBlbmQodGhpcy5UeXBlKTsKKwkJCQl2dC5BcHBlbmQoIiAiKTsKKworCQkJCWlmICghU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh0aGlzLkluZGlyZWN0aW9uKSkKKwkJCQl7CisJCQkJCXZ0LkFwcGVuZCh0aGlzLkluZGlyZWN0aW9uKTsKKwkJCQl9CisKKwkJCQlpZiAoKHRoaXMuQ29uc3QgPT0gQ29uc3RUeXBlLkluZGlyZWN0aW9uKSB8fCAodGhpcy5Db25zdCA9PSBDb25zdFR5cGUuQm90aCkpCisJCQkJeworCQkJCQl2dC5BcHBlbmQoImNvbnN0ICIpOworCQkJCX0KKworCQkJCWlmICghU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh0aGlzLk5hbWUpKQorCQkJCXsKKwkJCQkJdnQuQXBwZW5kKHRoaXMuTmFtZSk7CisJCQkJfQorCisJCQkJaWYgKHRoaXMuQXJyYXlTcGVjaWZpZXIgIT0gbnVsbCkKKwkJCQl7CisJCQkJCXZ0LkFwcGVuZCgiWyIpOworCQkJCQl2dC5BcHBlbmQodGhpcy5BcnJheVNwZWNpZmllcik7CisJCQkJCXZ0LkFwcGVuZCgiXSIpOworCQkJCX0KKworCQkJCXJldHVybiB2dC5Ub1N0cmluZygpLlRyaW0oKTsKKwkJCX0KKworCQkJcmV0dXJuIGJhc2UuVG9TdHJpbmcoKTsKKwkJfQorCisJCSNyZWdpb24gSUNsb25lYWJsZSBNZW1iZXIKKworCQlwdWJsaWMgb2JqZWN0IENsb25lKCkKKwkJeworCQkJLy8gd2Ugb25seSBoYXZlIHZhbHVlIHR5cGVzIGFzIG1lbWJlcnMgLT4gc2ltcGx5IHVzZSAubmV0IGJhc2UgZnVuY3Rpb24KKwkJCXJldHVybiB0aGlzLk1lbWJlcndpc2VDbG9uZSgpOworCQl9CisKKwkJI2VuZHJlZ2lvbgorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcE1pYkNvbXBpbGVyLnNsbiBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcE1pYkNvbXBpbGVyLnNsbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZTA0MTQxCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwTWliQ29tcGlsZXIuc2xuCkBAIC0wLDAgKzEsNDcgQEAKK++7vworTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gMTEuMDAKKyMgVmlzdWFsIFN0dWRpbyAyMDEwCitQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIkx3aXBNaWJDb21waWxlciIsICJMd2lwTWliQ29tcGlsZXJcTHdpcE1pYkNvbXBpbGVyLmNzcHJvaiIsICJ7QzI1RDU2NDAtRDk5OS00OUJELTgyRTAtQTE5NzUyOTZBOTFFfSIKK0VuZFByb2plY3QKK1Byb2plY3QoIntGQUUwNEVDMC0zMDFGLTExRDMtQkY0Qi0wMEMwNEY3OUVGQkN9IikgPSAiTHdpcFNubXBDb2RlR2VuZXJhdGlvbiIsICJMd2lwU25tcENvZGVHZW5lcmF0aW9uXEx3aXBTbm1wQ29kZUdlbmVyYXRpb24uY3Nwcm9qIiwgIntBQUJDQUI5MC0xNTQwLTQ1RDQtQTE1OS0xNDgzMUE1NEU5QTN9IgorRW5kUHJvamVjdAorUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJDQ29kZUdlbmVyYXRpb24iLCAiQ0NvZGVHZW5lcmF0aW9uXENDb2RlR2VuZXJhdGlvbi5jc3Byb2oiLCAiezdEQTdDMEFCLTA5ODItNEJGNS05MzI0LUY1OUE3QTA4RDY1Qn0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7RkFFMDRFQzAtMzAxRi0xMUQzLUJGNEItMDBDMDRGNzlFRkJDfSIpID0gIlNoYXJwU25tcExpYi5NaWIiLCAiU2hhcnBTbm1wTGliXFNoYXJwU25tcExpYi5NaWIuY3Nwcm9qIiwgIntDQkUyMDQxMS01REI3LTQ4N0QtODI1RC03Njk0MjY3QkI2RjV9IgorRW5kUHJvamVjdAorUHJvamVjdCgie0ZBRTA0RUMwLTMwMUYtMTFEMy1CRjRCLTAwQzA0Rjc5RUZCQ30iKSA9ICJNaWJWaWV3ZXIiLCAiTWliVmlld2VyXE1pYlZpZXdlci5jc3Byb2oiLCAiezg2Q0MwQjY1LTc5ODUtNDAxNy1BMjUyLTBBN0ExOERDQUVGM30iCitFbmRQcm9qZWN0CitHbG9iYWwKKwlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbgorCQlEZWJ1Z3xBbnkgQ1BVID0gRGVidWd8QW55IENQVQorCQlSZWxlYXNlfEFueSBDUFUgPSBSZWxlYXNlfEFueSBDUFUKKwlFbmRHbG9iYWxTZWN0aW9uCisJR2xvYmFsU2VjdGlvbihQcm9qZWN0Q29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwb3N0U29sdXRpb24KKwkJezdEQTdDMEFCLTA5ODItNEJGNS05MzI0LUY1OUE3QTA4RDY1Qn0uRGVidWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCisJCXs3REE3QzBBQi0wOTgyLTRCRjUtOTMyNC1GNTlBN0EwOEQ2NUJ9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUKKwkJezdEQTdDMEFCLTA5ODItNEJGNS05MzI0LUY1OUE3QTA4RDY1Qn0uUmVsZWFzZXxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQorCQl7N0RBN0MwQUItMDk4Mi00QkY1LTkzMjQtRjU5QTdBMDhENjVCfS5SZWxlYXNlfEFueSBDUFUuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQorCQl7ODZDQzBCNjUtNzk4NS00MDE3LUEyNTItMEE3QTE4RENBRUYzfS5EZWJ1Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKKwkJezg2Q0MwQjY1LTc5ODUtNDAxNy1BMjUyLTBBN0ExOERDQUVGM30uRGVidWd8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQorCQl7ODZDQzBCNjUtNzk4NS00MDE3LUEyNTItMEE3QTE4RENBRUYzfS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCisJCXs4NkNDMEI2NS03OTg1LTQwMTctQTI1Mi0wQTdBMThEQ0FFRjN9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCisJCXtBQUJDQUI5MC0xNTQwLTQ1RDQtQTE1OS0xNDgzMUE1NEU5QTN9LkRlYnVnfEFueSBDUFUuQWN0aXZlQ2ZnID0gRGVidWd8QW55IENQVQorCQl7QUFCQ0FCOTAtMTU0MC00NUQ0LUExNTktMTQ4MzFBNTRFOUEzfS5EZWJ1Z3xBbnkgQ1BVLkJ1aWxkLjAgPSBEZWJ1Z3xBbnkgQ1BVCisJCXtBQUJDQUI5MC0xNTQwLTQ1RDQtQTE1OS0xNDgzMUE1NEU5QTN9LlJlbGVhc2V8QW55IENQVS5BY3RpdmVDZmcgPSBSZWxlYXNlfEFueSBDUFUKKwkJe0FBQkNBQjkwLTE1NDAtNDVENC1BMTU5LTE0ODMxQTU0RTlBM30uUmVsZWFzZXxBbnkgQ1BVLkJ1aWxkLjAgPSBSZWxlYXNlfEFueSBDUFUKKwkJe0MyNUQ1NjQwLUQ5OTktNDlCRC04MkUwLUExOTc1Mjk2QTkxRX0uRGVidWd8QW55IENQVS5BY3RpdmVDZmcgPSBEZWJ1Z3xBbnkgQ1BVCisJCXtDMjVENTY0MC1EOTk5LTQ5QkQtODJFMC1BMTk3NTI5NkE5MUV9LkRlYnVnfEFueSBDUFUuQnVpbGQuMCA9IERlYnVnfEFueSBDUFUKKwkJe0MyNUQ1NjQwLUQ5OTktNDlCRC04MkUwLUExOTc1Mjk2QTkxRX0uUmVsZWFzZXxBbnkgQ1BVLkFjdGl2ZUNmZyA9IFJlbGVhc2V8QW55IENQVQorCQl7QzI1RDU2NDAtRDk5OS00OUJELTgyRTAtQTE5NzUyOTZBOTFFfS5SZWxlYXNlfEFueSBDUFUuQnVpbGQuMCA9IFJlbGVhc2V8QW55IENQVQorCQl7Q0JFMjA0MTEtNURCNy00ODdELTgyNUQtNzY5NDI2N0JCNkY1fS5EZWJ1Z3xBbnkgQ1BVLkFjdGl2ZUNmZyA9IERlYnVnfEFueSBDUFUKKwkJe0NCRTIwNDExLTVEQjctNDg3RC04MjVELTc2OTQyNjdCQjZGNX0uRGVidWd8QW55IENQVS5CdWlsZC4wID0gRGVidWd8QW55IENQVQorCQl7Q0JFMjA0MTEtNURCNy00ODdELTgyNUQtNzY5NDI2N0JCNkY1fS5SZWxlYXNlfEFueSBDUFUuQWN0aXZlQ2ZnID0gUmVsZWFzZXxBbnkgQ1BVCisJCXtDQkUyMDQxMS01REI3LTQ4N0QtODI1RC03Njk0MjY3QkI2RjV9LlJlbGVhc2V8QW55IENQVS5CdWlsZC4wID0gUmVsZWFzZXxBbnkgQ1BVCisJRW5kR2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24oTW9ub0RldmVsb3BQcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uCisJCVN0YXJ0dXBJdGVtID0gTHdpcE1pYkNvbXBpbGVyXEx3aXBNaWJDb21waWxlci5jc3Byb2oKKwlFbmRHbG9iYWxTZWN0aW9uCisJR2xvYmFsU2VjdGlvbihTb2x1dGlvblByb3BlcnRpZXMpID0gcHJlU29sdXRpb24KKwkJSGlkZVNvbHV0aW9uTm9kZSA9IEZBTFNFCisJRW5kR2xvYmFsU2VjdGlvbgorRW5kR2xvYmFsCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBNaWJDb21waWxlci9Md2lwTWliQ29tcGlsZXIuY3Nwcm9qIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwTWliQ29tcGlsZXIvTHdpcE1pYkNvbXBpbGVyLmNzcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTQyNjNhCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwTWliQ29tcGlsZXIvTHdpcE1pYkNvbXBpbGVyLmNzcHJvagpAQCAtMCwwICsxLDczIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxDb25maWd1cmF0aW9uIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pJyA9PSAnJyAiPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgIDxQbGF0Zm9ybSBDb25kaXRpb249IiAnJChQbGF0Zm9ybSknID09ICcnICI+QW55Q1BVPC9QbGF0Zm9ybT4KKyAgICA8UHJvZHVjdFZlcnNpb24+OC4wLjMwNzAzPC9Qcm9kdWN0VmVyc2lvbj4KKyAgICA8U2NoZW1hVmVyc2lvbj4yLjA8L1NjaGVtYVZlcnNpb24+CisgICAgPFByb2plY3RHdWlkPntDMjVENTY0MC1EOTk5LTQ5QkQtODJFMC1BMTk3NTI5NkE5MUV9PC9Qcm9qZWN0R3VpZD4KKyAgICA8T3V0cHV0VHlwZT5FeGU8L091dHB1dFR5cGU+CisgICAgPEFwcERlc2lnbmVyRm9sZGVyPlByb3BlcnRpZXM8L0FwcERlc2lnbmVyRm9sZGVyPgorICAgIDxSb290TmFtZXNwYWNlPkx3aXBNaWJDb21waWxlcjwvUm9vdE5hbWVzcGFjZT4KKyAgICA8QXNzZW1ibHlOYW1lPkx3aXBNaWJDb21waWxlcjwvQXNzZW1ibHlOYW1lPgorICAgIDxUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPnY0LjA8L1RhcmdldEZyYW1ld29ya1ZlcnNpb24+CisgICAgPEZpbGVBbGlnbm1lbnQ+NTEyPC9GaWxlQWxpZ25tZW50PgorICAgIDxUYXJnZXRGcmFtZXdvcmtQcm9maWxlIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ0RlYnVnfEFueUNQVSciPgorICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgorICAgIDxPdXRwdXRQYXRoPmJpblxEZWJ1Z1w8L091dHB1dFBhdGg+CisgICAgPERlZmluZUNvbnN0YW50cz5ERUJVRztUUkFDRTwvRGVmaW5lQ29uc3RhbnRzPgorICAgIDxEZWJ1Z1R5cGU+ZnVsbDwvRGVidWdUeXBlPgorICAgIDxQbGF0Zm9ybVRhcmdldD5BbnlDUFU8L1BsYXRmb3JtVGFyZ2V0PgorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgorICAgIDxDb2RlQW5hbHlzaXNJZ25vcmVCdWlsdEluUnVsZVNldHM+ZmFsc2U8L0NvZGVBbmFseXNpc0lnbm9yZUJ1aWx0SW5SdWxlU2V0cz4KKyAgICA8Q29kZUFuYWx5c2lzSWdub3JlQnVpbHRJblJ1bGVzPmZhbHNlPC9Db2RlQW5hbHlzaXNJZ25vcmVCdWlsdEluUnVsZXM+CisgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+CisgICAgPE9wdGltaXplPmZhbHNlPC9PcHRpbWl6ZT4KKyAgICA8VXNlVlNIb3N0aW5nUHJvY2Vzcz5mYWxzZTwvVXNlVlNIb3N0aW5nUHJvY2Vzcz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlDUFUnIj4KKyAgICA8T3V0cHV0UGF0aD5iaW5cUmVsZWFzZVw8L091dHB1dFBhdGg+CisgICAgPERlZmluZUNvbnN0YW50cz5UUkFDRTwvRGVmaW5lQ29uc3RhbnRzPgorICAgIDxPcHRpbWl6ZT50cnVlPC9PcHRpbWl6ZT4KKyAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KKyAgICA8UGxhdGZvcm1UYXJnZXQ+QW55Q1BVPC9QbGF0Zm9ybVRhcmdldD4KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KKyAgICA8VXNlVlNIb3N0aW5nUHJvY2Vzcz5mYWxzZTwvVXNlVlNIb3N0aW5nUHJvY2Vzcz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9ncmFtLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlByb3BlcnRpZXNcQXNzZW1ibHlJbmZvLmNzIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Tm9uZSBJbmNsdWRlPSJhcHAuY29uZmlnIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSIuLlxDQ29kZUdlbmVyYXRpb25cQ0NvZGVHZW5lcmF0aW9uLmNzcHJvaiI+CisgICAgICA8UHJvamVjdD57N0RBN0MwQUItMDk4Mi00QkY1LTkzMjQtRjU5QTdBMDhENjVCfTwvUHJvamVjdD4KKyAgICAgIDxOYW1lPkNDb2RlR2VuZXJhdGlvbjwvTmFtZT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cTHdpcFNubXBDb2RlR2VuZXJhdGlvblxMd2lwU25tcENvZGVHZW5lcmF0aW9uLmNzcHJvaiI+CisgICAgICA8UHJvamVjdD57QUFCQ0FCOTAtMTU0MC00NUQ0LUExNTktMTQ4MzFBNTRFOUEzfTwvUHJvamVjdD4KKyAgICAgIDxOYW1lPkx3aXBTbm1wQ29kZUdlbmVyYXRpb248L05hbWU+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Ii4uXFNoYXJwU25tcExpYlxTaGFycFNubXBMaWIuTWliLmNzcHJvaiI+CisgICAgICA8UHJvamVjdD57Q0JFMjA0MTEtNURCNy00ODdELTgyNUQtNzY5NDI2N0JCNkY1fTwvUHJvamVjdD4KKyAgICAgIDxOYW1lPlNoYXJwU25tcExpYi5NaWI8L05hbWU+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRUb29sc1BhdGgpXE1pY3Jvc29mdC5DU2hhcnAudGFyZ2V0cyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgLz4KKyAgPCEtLSBUbyBtb2RpZnkgeW91ciBidWlsZCBwcm9jZXNzLCBhZGQgeW91ciB0YXNrIGluc2lkZSBvbmUgb2YgdGhlIHRhcmdldHMgYmVsb3cgYW5kIHVuY29tbWVudCBpdC4gCisgICAgICAgT3RoZXIgc2ltaWxhciBleHRlbnNpb24gcG9pbnRzIGV4aXN0LCBzZWUgTWljcm9zb2Z0LkNvbW1vbi50YXJnZXRzLgorICA8VGFyZ2V0IE5hbWU9IkJlZm9yZUJ1aWxkIj4KKyAgPC9UYXJnZXQ+CisgIDxUYXJnZXQgTmFtZT0iQWZ0ZXJCdWlsZCI+CisgIDwvVGFyZ2V0PgorICAtLT4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBNaWJDb21waWxlci9Qcm9ncmFtLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwTWliQ29tcGlsZXIvUHJvZ3JhbS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGZmODQwCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwTWliQ29tcGlsZXIvUHJvZ3JhbS5jcwpAQCAtMCwwICsxLDQ4MCBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCit1c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKK3VzaW5nIFN5c3RlbS5JTzsKK3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOwordXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwordXNpbmcgQ0NvZGVHZW5lcmF0aW9uOwordXNpbmcgTGV4dG0uU2hhcnBTbm1wTGliLk1pYjsKK3VzaW5nIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuRW50aXRpZXM7Cit1c2luZyBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLlR5cGVzOwordXNpbmcgTHdpcFNubXBDb2RlR2VuZXJhdGlvbjsKKworbmFtZXNwYWNlIEx3aXBNaWJDb21waWxlcgoreworCWNsYXNzIFByb2dyYW0KKwl7CisJCXByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFJlZ2V4IF9hbHBoYU51bWVyaWNSZWdleCA9IG5ldyBSZWdleCgiW15hLXpBLVowLTldIik7CisKKwkJc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQorCQl7CisJCQlDb25zb2xlLldyaXRlTGluZSgibHdJUCBNSUIgQ29tcGlsZXIiKTsKKwkJCUNvbnNvbGUuV3JpdGVMaW5lKCIiKTsKKworCQkJLy8gY2hlY2sgYXJncworCQkJaWYgKChhcmdzLkxlbmd0aCA8IDIpIHx8IFN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYXJnc1swXSkgfHwgU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShhcmdzWzFdKSkKKwkJCXsKKwkJCQlQcmludFVzYWdlKCk7CisJCQkJcmV0dXJuOworCQkJfQorCisJCQlzdHJpbmcgbWliRmlsZSA9IGFyZ3NbMF07CisJCQlpZiAoIUZpbGUuRXhpc3RzKG1pYkZpbGUpKQorCQkJeworCQkJCUNvbnNvbGUuV3JpdGVMaW5lKFN0cmluZy5Gb3JtYXQoIlVuYWJsZSB0byBmaW5kIGZpbGUgJ3swfSchIiwgbWliRmlsZSkpOworCQkJfQorCisJCQlzdHJpbmcgZGVzdEZpbGUgPSBhcmdzWzFdOworCQkJc3RyaW5nIGRlc3RIZWFkZXJGaWxlOworCisJCQlpZiAoRGlyZWN0b3J5LkV4aXN0cyhkZXN0RmlsZSkpCisJCQl7CisJCQkJLy8gb25seSBkaXJlY3RvcnkgcGFzc2VkIC0+IGNyZWF0ZSBkZXN0IGZpbGVuYW1lIGZyb20gbWliIGZpbGVuYW1lCisJCQkJc3RyaW5nIG1pYkZpbGVOYW1lID0gUGF0aC5HZXRGaWxlTmFtZVdpdGhvdXRFeHRlbnNpb24obWliRmlsZSkuVG9Mb3dlckludmFyaWFudCgpOworCQkJCWRlc3RGaWxlID0gUGF0aC5Db21iaW5lKGRlc3RGaWxlLCBtaWJGaWxlTmFtZSArICIuYyIpOworCQkJfQorCQkJCisJCQlzdHJpbmcgZGVzdEZpbGVFeHQgPSBQYXRoLkdldEV4dGVuc2lvbihkZXN0RmlsZSk7CisJCQlpZiAoIVN0cmluZy5Jc051bGxPckVtcHR5KGRlc3RGaWxlRXh0KSkKKwkJCXsKKwkJCQlkZXN0SGVhZGVyRmlsZSA9IGRlc3RGaWxlLlN1YnN0cmluZygwLCBkZXN0RmlsZS5MZW5ndGggLSBkZXN0RmlsZUV4dC5MZW5ndGgpOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWRlc3RIZWFkZXJGaWxlID0gZGVzdEZpbGU7CisJCQl9CisJCQlkZXN0SGVhZGVyRmlsZSArPSAiLmgiOworCisJCQlmb3IgKGludCBpPTI7IGk8YXJncy5MZW5ndGg7IGkrKykKKwkJCXsKKwkJCQlpZiAoIVN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UoYXJnc1tpXSkgJiYgRGlyZWN0b3J5LkV4aXN0cyhhcmdzW2ldKSkKKwkJCQl7CisJCQkJCU1pYlR5cGVzUmVzb2x2ZXIuUmVnaXN0ZXJSZXNvbHZlcihuZXcgRmlsZVN5c3RlbU1pYlJlc29sdmVyKGFyZ3NbaV0sIHRydWUpKTsKKwkJCQl9CisJCQl9CisKKwkJCQorCQkJLy8gcmVhZCBhbmQgcmVzb2x2ZSBNSUIKKwkJCUNvbnNvbGUuV3JpdGVMaW5lKCIgUmVhZGluZyBNSUIgZmlsZS4uLiIpOworCQkJCisJCQlNaWJEb2N1bWVudCBtZCA9IG5ldyBNaWJEb2N1bWVudChtaWJGaWxlKTsKKwkJCU1pYlR5cGVzUmVzb2x2ZXIuUmVzb2x2ZVR5cGVzKG1kLk1vZHVsZXNbMF0pOworCQkJTWliVHJlZSBtdCA9IG5ldyBNaWJUcmVlKG1kLk1vZHVsZXNbMF0gYXMgTWliTW9kdWxlKTsKKworCQkJaWYgKG10LlJvb3QuQ291bnQgPT0gMCkKKwkJCXsKKwkJCQlDb25zb2xlLldyaXRlTGluZSgiTm8gcm9vdCBlbGVtZW50IGZvdW5kIGluc2lkZSBNSUIhIik7CisJCQkJcmV0dXJuOworCQkJfQorCisJCQlNaWJDRmlsZSBnZW5lcmF0ZWRGaWxlID0gbmV3IE1pYkNGaWxlKCk7CisJCQlNaWJIZWFkZXJGaWxlIGdlbmVyYXRlZEhlYWRlckZpbGUgPSBuZXcgTWliSGVhZGVyRmlsZSgpOworCisJCQlmb3JlYWNoIChNaWJUcmVlTm9kZSBtaWJUcmVlTm9kZSBpbiBtdC5Sb290KQorCQkJeworCQkJCS8vIGNyZWF0ZSBMV0lQIG9iamVjdCB0cmVlIGZyb20gTUlCIHN0cnVjdHVyZQorCQkJCUNvbnNvbGUuV3JpdGVMaW5lKCIgQ3JlYXRpbmcgbHdJUCBvYmplY3QgdHJlZSAiICsgbWliVHJlZU5vZGUuRW50aXR5Lk5hbWUpOworCisJCQkJU25tcE1pYiBzbm1wTWliID0gbmV3IFNubXBNaWIoKTsKKwkJCQlzbm1wTWliLk9pZCA9IG1pYlRyZWVOb2RlLkVudGl0eS5WYWx1ZTsKKwkJCQlzbm1wTWliLkJhc2VPaWQgPSBNaWJUeXBlc1Jlc29sdmVyLlJlc29sdmVPaWQobWliVHJlZU5vZGUuRW50aXR5KS5HZXRPaWRWYWx1ZXMoKTsKKwkJCQlzbm1wTWliLk5hbWUgPSBtaWJUcmVlTm9kZS5FbnRpdHkuTmFtZTsKKworCQkJCVByb2Nlc3NNaWJUcmVlTm9kZShtaWJUcmVlTm9kZSwgc25tcE1pYik7CisKKwkJCQkvLyBsZXQgdGhlIHRyZWUgdHJhbnNmb3JtIGl0c2VsZiBkZXBlbmRpbmcgb24gbm9kZSBzdHJ1Y3R1cmUKKwkJCQlzbm1wTWliLkFuYWx5emUoKTsKKworCQkJCWlmIChzbm1wTWliLkNoaWxkTm9kZXMuQ291bnQgIT0gMCkKKwkJCQl7CisJCQkJCS8vIGdlbmVyYXRlIGNvZGUgZnJvbSBMV0lQIG9iamVjdCB0cmVlCisJCQkJCUNvbnNvbGUuV3JpdGVMaW5lKCIgR2VuZXJhdGluZyBjb2RlICIgKyBzbm1wTWliLk5hbWUpOworCQkJCQlzbm1wTWliLkdlbmVyYXRlKGdlbmVyYXRlZEZpbGUsIGdlbmVyYXRlZEhlYWRlckZpbGUpOworCQkJCX0KKwkJCX0KKworCQkJc3RyaW5nIHByZXNlcnZlZENvZGUgPSBNaWJDRmlsZS5HZXRQcmVzZXJ2ZWRDb2RlKGRlc3RGaWxlKTsKKwkJCWlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkocHJlc2VydmVkQ29kZSkpCisJCQl7CisJCQkJZ2VuZXJhdGVkRmlsZS5QcmVzZXJ2ZWRDb2RlLkFkZChuZXcgUGxhaW5UZXh0KHByZXNlcnZlZENvZGUpKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlnZW5lcmF0ZWRGaWxlLlByZXNlcnZlZENvZGUuQWRkUmFuZ2UoZ2VuZXJhdGVkRmlsZS5JbXBsZW1lbnRhdGlvbik7CisJCQl9CisJCQlnZW5lcmF0ZWRGaWxlLkltcGxlbWVudGF0aW9uLkNsZWFyKCk7CisKKworCQkJdXNpbmcgKFN0cmVhbVdyaXRlciBmaWxlV3JpdGVyID0gbmV3IFN0cmVhbVdyaXRlcihkZXN0SGVhZGVyRmlsZSkpCisJCQl7CisJCQkJQ0dlbmVyYXRvciBjR2VuZXJhdG9yID0gbmV3IENHZW5lcmF0b3IoZmlsZVdyaXRlciwgZGVzdEhlYWRlckZpbGUsIDMsICIgIiwgRW52aXJvbm1lbnQuTmV3TGluZSk7CisJCQkJZ2VuZXJhdGVkSGVhZGVyRmlsZS5TYXZlKGNHZW5lcmF0b3IpOworCQkJfQorCQkJdXNpbmcgKFN0cmVhbVdyaXRlciBmaWxlV3JpdGVyID0gbmV3IFN0cmVhbVdyaXRlcihkZXN0RmlsZSkpCisJCQl7CisJCQkJQ0dlbmVyYXRvciBjR2VuZXJhdG9yID0gbmV3IENHZW5lcmF0b3IoZmlsZVdyaXRlciwgZGVzdEZpbGUsIDMsICIgIiwgRW52aXJvbm1lbnQuTmV3TGluZSk7CisJCQkJZ2VuZXJhdGVkRmlsZS5TYXZlKGNHZW5lcmF0b3IpOworCQkJfQorCisJCQlDb25zb2xlLldyaXRlTGluZSgiIERvbmUiKTsKKwkJfQorCisJCXByaXZhdGUgc3RhdGljIHZvaWQgUHJpbnRVc2FnZSgpCisJCXsKKwkJCXN0cmluZyBjb2RlQmFzZSA9IEFzc2VtYmx5LkdldEV4ZWN1dGluZ0Fzc2VtYmx5KCkuQ29kZUJhc2U7CisJCQlzdHJpbmcgYXBwTmFtZSA9IFBhdGguR2V0RmlsZU5hbWUoY29kZUJhc2UpOworCisJCQlDb25zb2xlLldyaXRlTGluZSgiVXNhZ2U6Iik7CisJCQlDb25zb2xlLldyaXRlTGluZShTdHJpbmcuRm9ybWF0KCIgIHswfSA8c291cmNlIE1JQiBmaWxlPiA8ZGVzdCBDIGZpbGU+IFs8c2VhcmNoIHBhdGggMSBmb3IgcmVmZXJyZWQgTUlCJ3M+IDxzZWFyY2ggcGF0aCAyIGZvciByZWZlcnJlZCBNSUIncz4gLi4uXSIsIGFwcE5hbWUpKTsKKwkJCUNvbnNvbGUuV3JpdGVMaW5lKCIiKTsKKwkJCUNvbnNvbGUuV3JpdGVMaW5lKCIgICAgPHNvdXJjZSBNSUIgZmlsZT4iKTsKKwkJCUNvbnNvbGUuV3JpdGVMaW5lKCIgICAgICBQYXRoIGFuZCBmaWxlbmFtZSBvZiBNSUIgZmlsZSB0byBjb252ZXJ0LiIpOworCQkJQ29uc29sZS5Xcml0ZUxpbmUoIiIpOworCQkJQ29uc29sZS5Xcml0ZUxpbmUoIiAgICA8ZGVzdCBDIGZpbGU+Iik7CisJCQlDb25zb2xlLldyaXRlTGluZSgiICAgICAgRGVzdGluYXRpb24gcGF0aCBhbmQgZmlsZS4gSWYgYSBwYXRoIGlzIHBhc3NlZCBvbmx5LCBmaWxlbmFtZSBpcyBhdXRvIik7CisJCQlDb25zb2xlLldyaXRlTGluZSgiICAgICAgZ2VuZXJhdGVkIGZyb20gTUlCIGZpbGUgbmFtZS4iKTsKKwkJCUNvbnNvbGUuV3JpdGVMaW5lKCIiKTsKKwkJCUNvbnNvbGUuV3JpdGVMaW5lKCIgICAgPHNlYXJjaCBwYXRoIFggZm9yIHJlZmVycmVkIE1JQidzPiIpOworCQkJQ29uc29sZS5Xcml0ZUxpbmUoIiAgICAgIEl0J3MgaW1wb3J0YW50IHRvIHByb3ZpZGUgYWxsIHJlZmVycmVkIE1JQidzIGluIG9yZGVyIHRvIGNvcnJlY3RseSAiKTsKKwkJCUNvbnNvbGUuV3JpdGVMaW5lKCIgICAgICByZXNvbHZlIGFsbCB1c2VkIHR5cGVzLiIpOworCQkJQ29uc29sZS5Xcml0ZUxpbmUoIiIpOworCQl9CisKKworCQkjcmVnaW9uIEdlbmVyYXRpb24gb2YgTFdJUCBPYmplY3QgVHJlZQorCisJCXByaXZhdGUgc3RhdGljIHZvaWQgUHJvY2Vzc01pYlRyZWVOb2RlKE1pYlRyZWVOb2RlIG1pYlRyZWVOb2RlLCBTbm1wVHJlZU5vZGUgYXNzaWduZWRTbm1wTm9kZSkKKwkJeworCQkJZm9yZWFjaCAoTWliVHJlZU5vZGUgbXRuIGluIG1pYlRyZWVOb2RlLkNoaWxkTm9kZXMpCisJCQl7CisJCQkJLy8gaW4gdGhlb3J5IGNvbnRhaW5lciBub2RlcyBtYXkgYWxzbyBiZSBzY2FsYXJzIG9yIHRhYmxlcyBhdCB0aGUgc2FtZSB0aW1lIChmb3Igbm93IG9ubHkgcHJvY2VzcyByZWFsIGNvbnRhaW5lcnMpCisJCQkJaWYgKG10bi5Ob2RlVHlwZSA9PSBNaWJUcmVlTm9kZVR5cGUuQ29udGFpbmVyKQorCQkJCXsKKwkJCQkJU25tcFRyZWVOb2RlIHNubXBUcmVlTm9kZSA9IEdlbmVyYXRlU25tcFRyZWVOb2RlKG10biwgYXNzaWduZWRTbm1wTm9kZSk7CisJCQkJCWFzc2lnbmVkU25tcE5vZGUuQ2hpbGROb2Rlcy5BZGQoc25tcFRyZWVOb2RlKTsKKworCQkJCQlQcm9jZXNzTWliVHJlZU5vZGUobXRuLCBzbm1wVHJlZU5vZGUpOworCQkJCX0KKwkJCQllbHNlIGlmICgobXRuLk5vZGVUeXBlICYgTWliVHJlZU5vZGVUeXBlLlNjYWxhcikgIT0gMCkKKwkJCQl7CisJCQkJCVNubXBTY2FsYXJOb2RlIHNubXBTY2FsYXJOb2RlID0gR2VuZXJhdGVTbm1wU2NhbGFyTm9kZShtdG4sIGFzc2lnbmVkU25tcE5vZGUpOworCQkJCQlpZiAoc25tcFNjYWxhck5vZGUgIT0gbnVsbCkKKwkJCQkJeworCQkJCQkJYXNzaWduZWRTbm1wTm9kZS5DaGlsZE5vZGVzLkFkZChzbm1wU2NhbGFyTm9kZSk7CisJCQkJCX0KKwkJCQl9CisJCQkJZWxzZSBpZiAoKG10bi5Ob2RlVHlwZSAmIE1pYlRyZWVOb2RlVHlwZS5UYWJsZSkgIT0gMCkKKwkJCQl7CisJCQkJCVNubXBUYWJsZU5vZGUgc25tcFRhYmxlTm9kZSA9IEdlbmVyYXRlU25tcFRhYmxlTm9kZShtdG4sIGFzc2lnbmVkU25tcE5vZGUpOworCQkJCQlpZiAoc25tcFRhYmxlTm9kZSAhPSBudWxsKQorCQkJCQl7CisJCQkJCQlhc3NpZ25lZFNubXBOb2RlLkNoaWxkTm9kZXMuQWRkKHNubXBUYWJsZU5vZGUpOworCQkJCQl9CisJCQkJfQorCQkJfQorCQl9CisKKwkJcHJpdmF0ZSBzdGF0aWMgU25tcFRyZWVOb2RlIEdlbmVyYXRlU25tcFRyZWVOb2RlKE1pYlRyZWVOb2RlIG1pYlRyZWVOb2RlLCBTbm1wVHJlZU5vZGUgcGFyZW50Tm9kZSkKKwkJeworCQkJU25tcFRyZWVOb2RlIHJlc3VsdCA9IG5ldyBTbm1wVHJlZU5vZGUocGFyZW50Tm9kZSk7CisJCQlyZXN1bHQuTmFtZSAgICA9IF9hbHBoYU51bWVyaWNSZWdleC5SZXBsYWNlIChtaWJUcmVlTm9kZS5FbnRpdHkuTmFtZSwgIiIpOworCQkJcmVzdWx0Lk9pZCAgICAgPSBtaWJUcmVlTm9kZS5FbnRpdHkuVmFsdWU7CisJCQlyZXN1bHQuRnVsbE9pZCA9IE1pYlR5cGVzUmVzb2x2ZXIuUmVzb2x2ZU9pZChtaWJUcmVlTm9kZS5FbnRpdHkpLkdldE9pZFN0cmluZygpOworCisJCQlyZXR1cm4gcmVzdWx0OworCQl9CisKKwkJcHJpdmF0ZSBzdGF0aWMgU25tcFNjYWxhck5vZGUgR2VuZXJhdGVTbm1wU2NhbGFyTm9kZShNaWJUcmVlTm9kZSBtaWJUcmVlTm9kZSwgU25tcFRyZWVOb2RlIHBhcmVudE5vZGUsIGJvb2wgaWdub3JlQWNjZXNzaWJsZUZsYWcgPSBmYWxzZSkKKwkJeworCQkJT2JqZWN0VHlwZSBvdGUgPSBtaWJUcmVlTm9kZS5FbnRpdHkgYXMgT2JqZWN0VHlwZTsKKwkJCWlmIChvdGUgIT0gbnVsbCkKKwkJCXsKKwkJCQlyZXR1cm4gR2VuZXJhdGVTbm1wU2NhbGFyTm9kZShvdGUsIHBhcmVudE5vZGUsIGlnbm9yZUFjY2Vzc2libGVGbGFnKTsKKwkJCX0KKworCQkJcmV0dXJuIG51bGw7CisJCX0KKworCQlwcml2YXRlIHN0YXRpYyBTbm1wU2NhbGFyTm9kZSBHZW5lcmF0ZVNubXBTY2FsYXJOb2RlKE9iamVjdFR5cGUgb3RlLCBTbm1wVHJlZU5vZGUgcGFyZW50Tm9kZSwgYm9vbCBpZ25vcmVBY2Nlc3NpYmxlRmxhZyA9IGZhbHNlKQorCQl7CisJCQlTbm1wU2NhbGFyTm9kZSByZXN1bHQ7CisKKwkJCUlUeXBlQXNzaWdubWVudCBtaWJUeXBlID0gb3RlLkJhc2VUeXBlOworCQkJSW50ZWdlclR5cGUgaXQgPSAobWliVHlwZSBhcyBJbnRlZ2VyVHlwZSk7CisJCQlpZiAoaXQgIT0gbnVsbCkKKwkJCXsKKwkJCQlpZiAob3RlLlJlZmVycmVkVHlwZS5OYW1lID09IFN5bWJvbC5UcnV0aFZhbHVlLlRvU3RyaW5nKCkpCisJCQkJeworCQkJCQlyZXN1bHQgPSBuZXcgU25tcFNjYWxhck5vZGVUcnV0aFZhbHVlKHBhcmVudE5vZGUpOworCQkJCX0KKwkJCQllbHNlIGlmICgoaXQuVHlwZSA9PSBJbnRlZ2VyVHlwZS5UeXBlcy5JbnRlZ2VyKSB8fCAoaXQuVHlwZSA9PSBJbnRlZ2VyVHlwZS5UeXBlcy5JbnRlZ2VyMzIpKQorCQkJCXsKKwkJCQkJcmVzdWx0ID0gbmV3IFNubXBTY2FsYXJOb2RlSW50KHBhcmVudE5vZGUpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlDb25zb2xlLldyaXRlTGluZShTdHJpbmcuRm9ybWF0KCJVbnN1cHBvcnRlZCBJbnRlZ2VyVHlwZSAnezB9JyEiLCBpdC5UeXBlKSk7CisJCQkJCXJldHVybiBudWxsOworCQkJCX0KKwkJCQlpZiAoaXQuSXNFbnVtZXJhdGlvbikKKwkJCQl7CisJCQkJCXJlc3VsdC5SZXN0cmljdGlvbnMuQWRkUmFuZ2UoQ3JlYXRlUmVzdHJpY3Rpb25zKGl0LkVudW1lcmF0aW9uKSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCXJlc3VsdC5SZXN0cmljdGlvbnMuQWRkUmFuZ2UoQ3JlYXRlUmVzdHJpY3Rpb25zKGl0LlJhbmdlcykpOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlVbnNpZ25lZFR5cGUgdXQgPSAobWliVHlwZSBhcyBVbnNpZ25lZFR5cGUpOworCQkJCWlmICh1dCAhPSBudWxsKQorCQkJCXsKKwkJCQkJaWYgKCh1dC5UeXBlID09IFVuc2lnbmVkVHlwZS5UeXBlcy5VbnNpZ25lZDMyKSB8fAorCQkJCQkJCSAgKHV0LlR5cGUgPT0gVW5zaWduZWRUeXBlLlR5cGVzLkdhdWdlMzIpKQorCQkJCQl7CisJCQkJCQlyZXN1bHQgPSBuZXcgU25tcFNjYWxhck5vZGVVaW50KFNubXBEYXRhVHlwZS5HYXVnZSwgcGFyZW50Tm9kZSk7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAodXQuVHlwZSA9PSBVbnNpZ25lZFR5cGUuVHlwZXMuQ291bnRlcjMyKQorCQkJCQl7CisJCQkJCQlyZXN1bHQgPSBuZXcgU25tcFNjYWxhck5vZGVVaW50KFNubXBEYXRhVHlwZS5Db3VudGVyLCBwYXJlbnROb2RlKTsKKwkJCQkJfQorCQkJCQllbHNlIGlmICh1dC5UeXBlID09IFVuc2lnbmVkVHlwZS5UeXBlcy5UaW1lVGlja3MpCisJCQkJCXsKKwkJCQkJCXJlc3VsdCA9IG5ldyBTbm1wU2NhbGFyTm9kZVVpbnQoU25tcERhdGFUeXBlLlRpbWVUaWNrcywgcGFyZW50Tm9kZSk7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAodXQuVHlwZSA9PSBVbnNpZ25lZFR5cGUuVHlwZXMuQ291bnRlcjY0KQorCQkJCQl7CisJCQkJCQlyZXN1bHQgPSBuZXcgU25tcFNjYWxhck5vZGVDb3VudGVyNjQocGFyZW50Tm9kZSk7CisJCQkJCQlpZiAoKHV0LlJhbmdlcyAhPSBudWxsKSAmJiAodXQuUmFuZ2VzLkNvdW50ID4gMCkpCisJCQkJCQl7CisJCQkJCQkJQ29uc29sZS5Xcml0ZUxpbmUoU3RyaW5nLkZvcm1hdCgiR2VuZXJhdGlvbiBvZiByYW5nZXMgaXMgbm90IHN1cHBvcnRlZCBmb3IgQ291bnRlcjY0IHR5cGUhIikpOworCQkJCQkJCXJldHVybiBudWxsOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQ29uc29sZS5Xcml0ZUxpbmUoU3RyaW5nLkZvcm1hdCgiVW5zdXBwb3J0ZWQgVW5zaWduZWRUeXBlICd7MH0nISIsIHV0LlR5cGUpKTsKKwkJCQkJCXJldHVybiBudWxsOworCQkJCQl9CisJCQkJCXJlc3VsdC5SZXN0cmljdGlvbnMuQWRkUmFuZ2UoQ3JlYXRlUmVzdHJpY3Rpb25zKHV0LlJhbmdlcykpOworCQkJCX0KKwkJCQllbHNlIGlmIChtaWJUeXBlIGlzIElwQWRkcmVzc1R5cGUpCisJCQkJeworCQkJCQlyZXN1bHQgPSBuZXcgU25tcFNjYWxhck5vZGVPY3RldFN0cmluZyhTbm1wRGF0YVR5cGUuSXBBZGRyZXNzLCBwYXJlbnROb2RlKTsKKwkJCQkJcmVzdWx0LlJlc3RyaWN0aW9ucy5BZGRSYW5nZShDcmVhdGVSZXN0cmljdGlvbnMoKG1pYlR5cGUgYXMgT2N0ZXRTdHJpbmdUeXBlKS5TaXplKSk7CisJCQkJfQorCQkJCWVsc2UgaWYgKG1pYlR5cGUgaXMgT3BhcXVlVHlwZSkKKwkJCQl7CisJCQkJCXJlc3VsdCA9IG5ldyBTbm1wU2NhbGFyTm9kZU9jdGV0U3RyaW5nKFNubXBEYXRhVHlwZS5PcGFxdWUsIHBhcmVudE5vZGUpOworCQkJCQlyZXN1bHQuUmVzdHJpY3Rpb25zLkFkZFJhbmdlKENyZWF0ZVJlc3RyaWN0aW9ucygobWliVHlwZSBhcyBPY3RldFN0cmluZ1R5cGUpLlNpemUpKTsKKwkJCQl9CisJCQkJZWxzZSBpZiAobWliVHlwZSBpcyBPY3RldFN0cmluZ1R5cGUpCisJCQkJeworCQkJCQlyZXN1bHQgPSBuZXcgU25tcFNjYWxhck5vZGVPY3RldFN0cmluZyhTbm1wRGF0YVR5cGUuT2N0ZXRTdHJpbmcsIHBhcmVudE5vZGUpOworCQkJCQlyZXN1bHQuUmVzdHJpY3Rpb25zLkFkZFJhbmdlKENyZWF0ZVJlc3RyaWN0aW9ucygobWliVHlwZSBhcyBPY3RldFN0cmluZ1R5cGUpLlNpemUpKTsKKwkJCQl9CisJCQkJZWxzZSBpZiAobWliVHlwZSBpcyBPYmplY3RJZGVudGlmaWVyVHlwZSkKKwkJCQl7CisJCQkJCXJlc3VsdCA9IG5ldyBTbm1wU2NhbGFyTm9kZU9iamVjdElkZW50aWZpZXIocGFyZW50Tm9kZSk7CisJCQkJfQorCQkJCWVsc2UgaWYgKG1pYlR5cGUgaXMgQml0c1R5cGUpCisJCQkJeworCQkJCQlyZXN1bHQgPSBuZXcgU25tcFNjYWxhck5vZGVCaXRzKHBhcmVudE5vZGUsICh1aW50KSgobWliVHlwZSBhcyBCaXRzVHlwZSkuTWFwLkdldEhpZ2hlc3RWYWx1ZSgpICsgMSkpOworCQkJCQlyZXN1bHQuUmVzdHJpY3Rpb25zLkFkZFJhbmdlKENyZWF0ZVJlc3RyaWN0aW9ucyhtaWJUeXBlIGFzIEJpdHNUeXBlKSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCVR5cGVBc3NpZ25tZW50IHRhID0gbWliVHlwZSBhcyBUeXBlQXNzaWdubWVudDsKKwkJCQkJaWYgKHRhICE9IG51bGwpCisJCQkJCXsKKwkJCQkJCUNvbnNvbGUuV3JpdGVMaW5lKFN0cmluZy5Gb3JtYXQoIlVuc3VwcG9ydGVkIEJhc2VUeXBlOiBNb2R1bGU9J3swfScsIE5hbWU9J3sxfScsIFR5cGU9J3syfSchIiwgdGEuTW9kdWxlLk5hbWUsIHRhLk5hbWUsIHRhLlR5cGUpKTsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCUNvbnNvbGUuV3JpdGVMaW5lKFN0cmluZy5Gb3JtYXQoIlVuc3VwcG9ydGVkIEJhc2VUeXBlOiBNb2R1bGU9J3swfScsIE5hbWU9J3sxfSchIiwgbWliVHlwZS5Nb2R1bGUsIG1pYlR5cGUuTmFtZSkpOworCQkJCQl9CisJCQkJCQorCQkJCQlyZXR1cm4gbnVsbDsKKwkJCQl9CisJCQl9CisKKwkJCXJlc3VsdC5OYW1lID0gX2FscGhhTnVtZXJpY1JlZ2V4LlJlcGxhY2Uob3RlLk5hbWUsICIiKTsKKwkJCXJlc3VsdC5PaWQgID0gb3RlLlZhbHVlOworCisJCQlpZiAob3RlLkFjY2VzcyA9PSBNYXhBY2Nlc3MucmVhZFdyaXRlKQorCQkJeworCQkJCXJlc3VsdC5BY2Nlc3NNb2RlID0gU25tcEFjY2Vzc01vZGUuUmVhZFdyaXRlOworCQkJfQorCQkJZWxzZSBpZiAob3RlLkFjY2VzcyA9PSBNYXhBY2Nlc3MucmVhZE9ubHkpCisJCQl7CisJCQkJcmVzdWx0LkFjY2Vzc01vZGUgPSBTbm1wQWNjZXNzTW9kZS5SZWFkT25seTsKKwkJCX0KKwkJCWVsc2UgaWYgKG90ZS5BY2Nlc3MgPT0gTWF4QWNjZXNzLnJlYWRDcmVhdGUpCisJCQl7CisJCQkJcmVzdWx0LkFjY2Vzc01vZGUgPSBTbm1wQWNjZXNzTW9kZS5SZWFkT25seTsKKwkJCX0KKwkJCWVsc2UgaWYgKGlnbm9yZUFjY2Vzc2libGVGbGFnICYmIChvdGUuQWNjZXNzID09IE1heEFjY2Vzcy5ub3RBY2Nlc3NpYmxlKSkKKwkJCXsKKwkJCQlyZXN1bHQuQWNjZXNzTW9kZSA9IFNubXBBY2Nlc3NNb2RlLk5vdEFjY2Vzc2libGU7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJLy8gbm90IGFjY2Vzc2libGUgb3IgdW5zdXBwb3J0ZWQgYWNjZXNzIHR5cGUKKwkJCQlyZXR1cm4gbnVsbDsKKwkJCX0KKworCQkJcmV0dXJuIHJlc3VsdDsKKwkJfQorCisJCXByaXZhdGUgc3RhdGljIElFbnVtZXJhYmxlPElSZXN0cmljdGlvbj4gQ3JlYXRlUmVzdHJpY3Rpb25zKFZhbHVlUmFuZ2VzIHJhbmdlcykKKwkJeworCQkJTGlzdDxJUmVzdHJpY3Rpb24+IHJlc3VsdCA9IG5ldyBMaXN0PElSZXN0cmljdGlvbj4oKTsKKworCQkJaWYgKHJhbmdlcyAhPSBudWxsKQorCQkJeworCQkJCWZvcmVhY2ggKFZhbHVlUmFuZ2UgcmFuZ2UgaW4gcmFuZ2VzKQorCQkJCXsKKwkJCQkJaWYgKCFyYW5nZS5FbmQuSGFzVmFsdWUpCisJCQkJCXsKKwkJCQkJCXJlc3VsdC5BZGQobmV3IElzRXF1YWxSZXN0cmljdGlvbihyYW5nZS5TdGFydCkpOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJcmVzdWx0LkFkZChuZXcgSXNJblJhbmdlUmVzdHJpY3Rpb24ocmFuZ2UuU3RhcnQsIHJhbmdlLkVuZC5WYWx1ZSkpOworCQkJCQl9CisJCQkJfQorCQkJfQorCisJCQlyZXR1cm4gcmVzdWx0OworCQl9CisKKwkJcHJpdmF0ZSBzdGF0aWMgSUVudW1lcmFibGU8SVJlc3RyaWN0aW9uPiBDcmVhdGVSZXN0cmljdGlvbnMoVmFsdWVNYXAgbWFwKQorCQl7CisJCQlpZiAoKG1hcCAhPSBudWxsKSAmJiAobWFwLkNvdW50ID4gMCkpCisJCQl7CisJCQkJcmV0dXJuIENyZWF0ZVJlc3RyaWN0aW9ucyhtYXAuR2V0Q29udGlub3VzUmFuZ2VzKCkpOworCQkJfQorCisJCQlyZXR1cm4gbmV3IExpc3Q8SVJlc3RyaWN0aW9uPigpOworCQl9CisKKwkJcHJpdmF0ZSBzdGF0aWMgSUVudW1lcmFibGU8SVJlc3RyaWN0aW9uPiBDcmVhdGVSZXN0cmljdGlvbnMoQml0c1R5cGUgYnQpCisJCXsKKwkJCUxpc3Q8SVJlc3RyaWN0aW9uPiByZXN1bHQgPSBuZXcgTGlzdDxJUmVzdHJpY3Rpb24+KCk7CisKKwkJCWlmICgoYnQgIT0gbnVsbCkgJiYgKGJ0Lk1hcCAhPSBudWxsKSkKKwkJCXsKKwkJCQlyZXN1bHQuQWRkKG5ldyBCaXRNYXNrUmVzdHJpY3Rpb24oYnQuTWFwLkdldEJpdE1hc2soKSkpOworCQkJfQorCisJCQlyZXR1cm4gcmVzdWx0OworCQl9CisKKwkJcHJpdmF0ZSBzdGF0aWMgU25tcFRhYmxlTm9kZSBHZW5lcmF0ZVNubXBUYWJsZU5vZGUoTWliVHJlZU5vZGUgbWliVHJlZU5vZGUsIFNubXBUcmVlTm9kZSBwYXJlbnROb2RlKQorCQl7CisJCQlTbm1wVGFibGVOb2RlIHJlc3VsdCA9IG5ldyBTbm1wVGFibGVOb2RlKHBhcmVudE5vZGUpOworCQkJcmVzdWx0Lk5hbWUgPSBtaWJUcmVlTm9kZS5FbnRpdHkuTmFtZTsKKwkJCXJlc3VsdC5PaWQgID0gbWliVHJlZU5vZGUuRW50aXR5LlZhbHVlOworCisJCQkvLyBleHBlY3QgZXhhY3RseSBvbmUgcm93IGVudHJ5CisJCQlpZiAoKG1pYlRyZWVOb2RlLkNoaWxkTm9kZXMuQ291bnQgIT0gMSkgfHwgKChtaWJUcmVlTm9kZS5DaGlsZE5vZGVzWzBdLk5vZGVUeXBlICYgTWliVHJlZU5vZGVUeXBlLlRhYmxlUm93KSA9PSAwKSB8fCAobWliVHJlZU5vZGUuQ2hpbGROb2Rlc1swXS5FbnRpdHkuVmFsdWUgIT0gMSkpCisJCQl7CisJCQkJQ29uc29sZS5Xcml0ZUxpbmUoIkZvdW5kIHRhYmxlIHdpdGggdW5zdXBwb3J0ZWQgcHJvcGVydGllcyEgVGFibGUgbmVlZHMgZXhhY3RseSBvbmUgKGZpeGVkKSBUYWJsZVJvdyB3aXRoIE9JRD0xICEgKCIgKyBtaWJUcmVlTm9kZS5FbnRpdHkuTmFtZSArICIpIik7CisJCQkJcmV0dXJuIG51bGw7CisJCQl9CisKKwkJCU1pYlRyZWVOb2RlIHJvd05vZGUgPSBtaWJUcmVlTm9kZS5DaGlsZE5vZGVzWzBdOworCQkJCisJCQlPYmplY3RUeXBlIHJvdCA9IHJvd05vZGUuRW50aXR5IGFzIE9iamVjdFR5cGU7CisJCQlpZiAocm90ICE9IG51bGwpCisJCQl7CisJCQkJaWYgKCFTdHJpbmcuSXNOdWxsT3JXaGl0ZVNwYWNlKHJvdC5BdWdtZW50cykpCisJCQkJeworCQkJCQlyZXN1bHQuQXVnbWVudGVkVGFibGVSb3cgPSByb3QuQXVnbWVudHM7CisKKwkJCQkJLy8gdGhlIGluZGljZXMgZnJvbSBhbm90aGVyIHRhYmxlIHNoYWxsIGJlIHVzZWQgYmVjYXVzZSB0aGlzIHRhYmxlIGlzIG9ubHkgYW4gZXh0ZW5zaW9uIG9mIGl0CisJCQkJCXJvdCA9IE1pYlR5cGVzUmVzb2x2ZXIuUmVzb2x2ZURlY2xhcmF0aW9uKHJvdC5Nb2R1bGUsIHJvdC5BdWdtZW50cykgYXMgT2JqZWN0VHlwZTsKKwkJCQl9CisKKwkJCQlpZiAocm90LkluZGljZXMgIT0gbnVsbCkKKwkJCQl7CisJCQkJCWZvcmVhY2ggKHN0cmluZyBpbmRleCBpbiByb3QuSW5kaWNlcykKKwkJCQkJeworCQkJCQkJT2JqZWN0VHlwZSBpbmRleEVudGl0eSA9IE1pYlR5cGVzUmVzb2x2ZXIuUmVzb2x2ZURlY2xhcmF0aW9uKHJvdC5Nb2R1bGUsIGluZGV4KSBhcyBPYmplY3RUeXBlOworCQkJCQkJaWYgKGluZGV4RW50aXR5ID09IG51bGwpCisJCQkJCQl7CisJCQkJCQkJQ29uc29sZS5Xcml0ZUxpbmUoU3RyaW5nLkZvcm1hdCgiQ291bGQgbm90IHJlc29sdmUgaW5kZXggJ3swfScgZm9yIHRhYmxlICd7MX0nISBUYWJsZSBvbWl0dGVkISIsIGluZGV4LCByZXN1bHQuTmFtZSkpOworCQkJCQkJCXJldHVybiBudWxsOworCQkJCQkJfQorCisJCQkJCQlyZXN1bHQuSW5kZXhOb2Rlcy5BZGQoR2VuZXJhdGVTbm1wU2NhbGFyTm9kZShpbmRleEVudGl0eSwgcGFyZW50Tm9kZSwgaWdub3JlQWNjZXNzaWJsZUZsYWc6IHRydWUpKTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKworCQkJaWYgKHJlc3VsdC5JbmRleE5vZGVzLkNvdW50ID09IDApCisJCQl7CisJCQkJLy8gYSB0YWJsZSBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IGluZGV4CisJCQkJQ29uc29sZS5Xcml0ZUxpbmUoIkZvdW5kIHRhYmxlIHdpdGhvdXQgYW55IGluZGV4IGNvbHVtbiAhICgiICsgbWliVHJlZU5vZGUuRW50aXR5Lk5hbWUgKyAiKSIpOworCQkJCXJldHVybiBudWxsOworCQkJfQorCisJCQkvLyBhZGQgY2hpbGQgbm9kZXMKKwkJCWZvcmVhY2ggKE1pYlRyZWVOb2RlIGNlbGxOb2RlIGluIHJvd05vZGUuQ2hpbGROb2RlcykKKwkJCXsKKwkJCQlTbm1wU2NhbGFyTm9kZSBzc24gPSBHZW5lcmF0ZVNubXBTY2FsYXJOb2RlKGNlbGxOb2RlLCBwYXJlbnROb2RlKTsKKwkJCQlpZiAoc3NuICE9IG51bGwpCisJCQkJeworCQkJCQlyZXN1bHQuQ2VsbE5vZGVzLkFkZChzc24pOworCQkJCX0KKwkJCX0KKworCQkJcmV0dXJuIHJlc3VsdDsKKwkJfQorCisJCSNlbmRyZWdpb24KKworCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcE1pYkNvbXBpbGVyL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwTWliQ29tcGlsZXIvUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDMwYjg0MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcE1pYkNvbXBpbGVyL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzCkBAIC0wLDAgKzEsMzYgQEAKK++7v3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOwordXNpbmcgU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlczsKK3VzaW5nIFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlczsKKworLy8gQWxsZ2VtZWluZSBJbmZvcm1hdGlvbmVuIMO8YmVyIGVpbmUgQXNzZW1ibHkgd2VyZGVuIMO8YmVyIGRpZSBmb2xnZW5kZW4gCisvLyBBdHRyaWJ1dGUgZ2VzdGV1ZXJ0LiDDhG5kZXJuIFNpZSBkaWVzZSBBdHRyaWJ1dHdlcnRlLCB1bSBkaWUgSW5mb3JtYXRpb25lbiB6dSDDpG5kZXJuLAorLy8gZGllIG1pdCBlaW5lciBBc3NlbWJseSB2ZXJrbsO8cGZ0IHNpbmQuCitbYXNzZW1ibHk6IEFzc2VtYmx5VGl0bGUoIkNvbnNvbGVBcHBsaWNhdGlvbjI4IildCitbYXNzZW1ibHk6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseUNvbmZpZ3VyYXRpb24oIiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseUNvbXBhbnkoIiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseVByb2R1Y3QoIkNvbnNvbGVBcHBsaWNhdGlvbjI4IildCitbYXNzZW1ibHk6IEFzc2VtYmx5Q29weXJpZ2h0KCJDb3B5cmlnaHQgwqkgIDIwMTUiKV0KK1thc3NlbWJseTogQXNzZW1ibHlUcmFkZW1hcmsoIiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseUN1bHR1cmUoIiIpXQorCisvLyBEdXJjaCBGZXN0bGVnZW4gdm9uIENvbVZpc2libGUgYXVmICJmYWxzZSIgd2VyZGVuIGRpZSBUeXBlbiBpbiBkaWVzZXIgQXNzZW1ibHkgdW5zaWNodGJhciAKKy8vIGbDvHIgQ09NLUtvbXBvbmVudGVuLiBXZW5uIFNpZSBhdWYgZWluZW4gVHlwIGluIGRpZXNlciBBc3NlbWJseSB2b24gCisvLyBDT00genVncmVpZmVuIG3DvHNzZW4sIGxlZ2VuIFNpZSBkYXMgQ29tVmlzaWJsZS1BdHRyaWJ1dCBmw7xyIGRpZXNlbiBUeXAgYXVmICJ0cnVlIiBmZXN0LgorW2Fzc2VtYmx5OiBDb21WaXNpYmxlKGZhbHNlKV0KKworLy8gRGllIGZvbGdlbmRlIEdVSUQgYmVzdGltbXQgZGllIElEIGRlciBUeXBiaWJsaW90aGVrLCB3ZW5uIGRpZXNlcyBQcm9qZWt0IGbDvHIgQ09NIHZlcmbDvGdiYXIgZ2VtYWNodCB3aXJkCitbYXNzZW1ibHk6IEd1aWQoIjBhYmY3NTQxLTZhOTYtNDNjZC05ZTI0LTQ2MmUwNzRiMmM5NiIpXQorCisvLyBWZXJzaW9uc2luZm9ybWF0aW9uZW4gZsO8ciBlaW5lIEFzc2VtYmx5IGJlc3RlaGVuIGF1cyBkZW4gZm9sZ2VuZGVuIHZpZXIgV2VydGVuOgorLy8KKy8vICAgICAgSGF1cHR2ZXJzaW9uCisvLyAgICAgIE5lYmVudmVyc2lvbiAKKy8vICAgICAgQnVpbGRudW1tZXIKKy8vICAgICAgUmV2aXNpb24KKy8vCisvLyBTaWUga8O2bm5lbiBhbGxlIFdlcnRlIGFuZ2ViZW4gb2RlciBkaWUgc3RhbmRhcmRtw6TDn2lnZW4gQnVpbGQtIHVuZCBSZXZpc2lvbnNudW1tZXJuIAorLy8gw7xiZXJuZWhtZW4sIGluZGVtIFNpZSAiKiIgZWluZ2ViZW46CisvLyBbYXNzZW1ibHk6IEFzc2VtYmx5VmVyc2lvbigiMS4wLioiKV0KK1thc3NlbWJseTogQXNzZW1ibHlWZXJzaW9uKCIxLjAuMC4wIildCitbYXNzZW1ibHk6IEFzc2VtYmx5RmlsZVZlcnNpb24oIjEuMC4wLjAiKV0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcE1pYkNvbXBpbGVyL2FwcC5jb25maWcgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBNaWJDb21waWxlci9hcHAuY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzNjU2MDMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBNaWJDb21waWxlci9hcHAuY29uZmlnCkBAIC0wLDAgKzEsMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8Y29uZmlndXJhdGlvbj4KKzxzdGFydHVwPjxzdXBwb3J0ZWRSdW50aW1lIHZlcnNpb249InY0LjAiIHNrdT0iLk5FVEZyYW1ld29yayxWZXJzaW9uPXY0LjAiLz48L3N0YXJ0dXA+PC9jb25maWd1cmF0aW9uPgpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL0lSZXN0cmljdGlvbi5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9JUmVzdHJpY3Rpb24uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWUyZjQ1MwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9JUmVzdHJpY3Rpb24uY3MKQEAgLTAsMCArMSwxMjAgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOworCituYW1lc3BhY2UgTHdpcFNubXBDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBpbnRlcmZhY2UgSVJlc3RyaWN0aW9uCisJeworCQlzdHJpbmcgR2V0Q2hlY2tDb2RlVmFsaWQoc3RyaW5nIHZhck5hbWVUb0NoZWNrKTsKKwkJc3RyaW5nIEdldENoZWNrQ29kZUludmFsaWQoc3RyaW5nIHZhck5hbWVUb0NoZWNrKTsKKwl9CisKKwlwdWJsaWMgY2xhc3MgQml0TWFza1Jlc3RyaWN0aW9uIDogSVJlc3RyaWN0aW9uCisJeworCQlVSW50MzIgbWFzazsKKworCQlwdWJsaWMgQml0TWFza1Jlc3RyaWN0aW9uKFVJbnQzMiBtYXNrKQorCQl7CisJCQl0aGlzLm1hc2sgPSBtYXNrOworCQl9CisKKwkJcHVibGljIHN0cmluZyBHZXRDaGVja0NvZGVWYWxpZChzdHJpbmcgdmFyTmFtZVRvQ2hlY2spCisJCXsKKwkJCXJldHVybiBTdHJpbmcuRm9ybWF0KCIoKHswfSAmIHsxfSkgPT0gezB9KSIsIHZhck5hbWVUb0NoZWNrLCB0aGlzLm1hc2spOworCQl9CisKKwkJcHVibGljIHN0cmluZyBHZXRDaGVja0NvZGVJbnZhbGlkKHN0cmluZyB2YXJOYW1lVG9DaGVjaykKKwkJeworCQkJcmV0dXJuIFN0cmluZy5Gb3JtYXQoIigoezB9ICYgezF9KSAhPSB7MH0pIiwgdmFyTmFtZVRvQ2hlY2ssIHRoaXMubWFzayk7CisJCX0KKwl9CisKKwlwdWJsaWMgY2xhc3MgSXNFcXVhbFJlc3RyaWN0aW9uIDogSVJlc3RyaWN0aW9uCisJeworCQlwcml2YXRlIEludDY0IHZhbHVlOworCisJCXB1YmxpYyBJc0VxdWFsUmVzdHJpY3Rpb24oSW50NjQgdmFsdWUpCisJCXsKKwkJCXRoaXMudmFsdWUgPSB2YWx1ZTsKKwkJfQorCisJCXB1YmxpYyBsb25nIFZhbHVlCisJCXsKKwkJCWdldCB7IHJldHVybiB2YWx1ZTsgfQorCQl9CisKKwkJcHVibGljIHN0cmluZyBHZXRDaGVja0NvZGVWYWxpZChzdHJpbmcgdmFyTmFtZVRvQ2hlY2spCisJCXsKKwkJCXJldHVybiBTdHJpbmcuRm9ybWF0KCIoezB9ID09IHsxfSkiLCB2YXJOYW1lVG9DaGVjaywgdGhpcy52YWx1ZSk7CisJCX0KKworCQlwdWJsaWMgc3RyaW5nIEdldENoZWNrQ29kZUludmFsaWQoc3RyaW5nIHZhck5hbWVUb0NoZWNrKQorCQl7CisJCQlyZXR1cm4gU3RyaW5nLkZvcm1hdCgiKHswfSAhPSB7MX0pIiwgdmFyTmFtZVRvQ2hlY2ssIHRoaXMudmFsdWUpOworCQl9CisJfQorCisJcHVibGljIGNsYXNzIElzSW5SYW5nZVJlc3RyaWN0aW9uIDogSVJlc3RyaWN0aW9uCisJeworCQlwcml2YXRlIEludDY0IHJhbmdlU3RhcnQ7CisJCXByaXZhdGUgSW50NjQgcmFuZ2VFbmQ7CisKKwkJcHVibGljIElzSW5SYW5nZVJlc3RyaWN0aW9uKEludDY0IHJhbmdlU3RhcnQsIEludDY0IHJhbmdlRW5kKQorCQl7CisJCQl0aGlzLnJhbmdlU3RhcnQgPSByYW5nZVN0YXJ0OworCQkJdGhpcy5yYW5nZUVuZCAgID0gcmFuZ2VFbmQ7CisJCX0KKworCQlwdWJsaWMgbG9uZyBSYW5nZVN0YXJ0CisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLnJhbmdlU3RhcnQ7IH0KKwkJfQorCisJCXB1YmxpYyBsb25nIFJhbmdlRW5kCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLnJhbmdlRW5kOyB9CisJCX0KKworCQlwdWJsaWMgc3RyaW5nIEdldENoZWNrQ29kZVZhbGlkKHN0cmluZyB2YXJOYW1lVG9DaGVjaykKKwkJeworCQkJcmV0dXJuIFN0cmluZy5Gb3JtYXQoIigoezB9ID49IHsxfSkgJiYgKHswfSA8PSB7Mn0pKSIsIHZhck5hbWVUb0NoZWNrLCB0aGlzLnJhbmdlU3RhcnQsIHRoaXMucmFuZ2VFbmQpOworCQl9CisKKwkJcHVibGljIHN0cmluZyBHZXRDaGVja0NvZGVJbnZhbGlkKHN0cmluZyB2YXJOYW1lVG9DaGVjaykKKwkJeworCQkJcmV0dXJuIFN0cmluZy5Gb3JtYXQoIigoezB9IDwgezF9KSB8fCAoezB9ID4gezJ9KSkiLCB2YXJOYW1lVG9DaGVjaywgdGhpcy5yYW5nZVN0YXJ0LCB0aGlzLnJhbmdlRW5kKTsKKwkJfQorCX0KKworfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL0x3aXBTbm1wLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL0x3aXBTbm1wLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYWM1OWUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vTHdpcFNubXAuY3MKQEAgLTAsMCArMSwxOTkgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOworCituYW1lc3BhY2UgTHdpcFNubXBDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBzdGF0aWMgY2xhc3MgTHdpcE9wdHMKKwl7CisJCXB1YmxpYyBzdGF0aWMgYm9vbCBHZW5lcmF0ZUVtcHR5Rm9sZGVycyA9IGZhbHNlOworCQkvLy8gPHN1bW1hcnk+CisJCS8vLyBJZiBhIHRyZWUgbm9kZSBvbmx5IGhhcyBzY2FsYXIgbm9kZXMgYXMgY2hpbGQgbm9kZXMsIGl0IGlzIHJlcGxhY2VkIGJ5CisJCS8vLyBhIHNpbmdsZSBzY2FsYXIgYXJyYXkgbm9kZSBpbiBvcmRlciB0byBzYXZlIG1lbW9yeSBhbmQgaGF2ZSBvbmx5IG9uZSBzaW5nbGUgZ2V0L3Rlc3Qvc2V0IG1ldGhvZCBmb3IgYWxsIHNjYWxhcnMuCisJCS8vLyA8L3N1bW1hcnk+CisJCXB1YmxpYyBzdGF0aWMgYm9vbCBHZW5lcmF0ZVNjYWxhckFycmF5cyA9IHRydWU7CisJCS8vLyA8c3VtbWFyeT4KKwkJLy8vIElmIGEgdHJlZSBub2RlIGhhcyBtdWx0aXBsZSBzY2FsYXJzIGFzIHN1Ym5vZGVzIGFzIHdlbGwgYXMgb3RoZXIgdHJlZW5vZGVzIGl0CisJCS8vLyBkZWZpbmVzIGEgc2luZ2xlIGdldC90ZXN0L3NldCBtZXRob2QgZm9yIGFsbCBzY2FsYXIgY2hpbGQgbm9kZS4KKwkJLy8vICh3aXRob3V0IG90aGVyIHRyZWVub2RlcyBhcyBjaGlsZCBpdCB3b3VsZCBoYXZlIGJlZW4gY29udmVydGVkIHRvIHNjYWxhciBhcnJheSBub2RlKS4KKwkJLy8vIDwvc3VtbWFyeT4KKwkJcHVibGljIHN0YXRpYyBib29sIEdlbmVyYXRlU2luZ2xlQWNjZXNzTWV0aG9kc0ZvclRyZWVOb2RlU2NhbGFycyA9IEdlbmVyYXRlU2NhbGFyQXJyYXlzOworCX0KKworCXB1YmxpYyBzdGF0aWMgY2xhc3MgTHdpcERlZnMKKwl7CisJCXB1YmxpYyBjb25zdCBzdHJpbmcgTnVsbCAgICAgICAgPSAiTlVMTCI7CisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVnRfVTggICAgICAgPSAidThfdCI7CisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVnRfVTE2ICAgICAgPSAidTE2X3QiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFZ0X1UzMiAgICAgID0gInUzMl90IjsKKwkJcHVibGljIGNvbnN0IHN0cmluZyBWdF9TOCAgICAgICA9ICJzOF90IjsKKwkJcHVibGljIGNvbnN0IHN0cmluZyBWdF9TMTYgICAgICA9ICJzMTZfdCI7CisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVnRfUzMyICAgICAgPSAiczMyX3QiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFZ0X1NubXBfZXJyID0gInNubXBfZXJyX3QiOworCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgSW5jbF9Tbm1wT3B0cyA9ICJsd2lwL2FwcHMvc25tcF9vcHRzLmgiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIE9wdF9Tbm1wRW5hYmxlZCA9ICJMV0lQX1NOTVAiOworCisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVnRfU3RNaWIgICAgICAgICAgICAgICAgPSAic3RydWN0IHNubXBfbWliIjsKKwkJcHVibGljIGNvbnN0IHN0cmluZyBWdF9TdE9iamVjdElkICAgICAgICAgICA9ICJzdHJ1Y3Qgc25tcF9vYmpfaWQiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFZ0X1N0Tm9kZSAgICAgICAgICAgICAgID0gInN0cnVjdCBzbm1wX25vZGUiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFZ0X1N0Tm9kZUluc3RhbmNlICAgICAgID0gInN0cnVjdCBzbm1wX25vZGVfaW5zdGFuY2UiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFZ0X1N0VHJlZU5vZGUgICAgICAgICAgID0gInN0cnVjdCBzbm1wX3RyZWVfbm9kZSI7CisJCXB1YmxpYyBjb25zdCBzdHJpbmcgVnRfU3RTY2FsYXJOb2RlICAgICAgICAgPSAic3RydWN0IHNubXBfc2NhbGFyX25vZGUiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFZ0X1N0U2NhbGFyQXJyYXlOb2RlICAgID0gInN0cnVjdCBzbm1wX3NjYWxhcl9hcnJheV9ub2RlIjsKKwkJcHVibGljIGNvbnN0IHN0cmluZyBWdF9TdFNjYWxhckFycmF5Tm9kZURlZiA9ICJzdHJ1Y3Qgc25tcF9zY2FsYXJfYXJyYXlfbm9kZV9kZWYiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFZ0X1N0VGFibGVOb2RlICAgICAgICAgID0gInN0cnVjdCBzbm1wX3RhYmxlX25vZGUiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFZ0X1N0VGFibGVDb2x1bW5EZWYgICAgID0gInN0cnVjdCBzbm1wX3RhYmxlX2NvbF9kZWYiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIFZ0X1N0TmV4dE9pZFN0YXRlICAgICAgID0gInN0cnVjdCBzbm1wX25leHRfb2lkX3N0YXRlIjsKKworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIERlZl9Ob2RlQWNjZXNzUmVhZE9ubHkgICAgICA9ICJTTk1QX05PREVfSU5TVEFOQ0VfUkVBRF9PTkxZIjsKKwkJcHVibGljIGNvbnN0IHN0cmluZyBEZWZfTm9kZUFjY2Vzc1JlYWRXcml0ZSAgICAgPSAiU05NUF9OT0RFX0lOU1RBTkNFX1JFQURfV1JJVEUiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIERlZl9Ob2RlQWNjZXNzV3JpdGVPbmx5ICAgICA9ICJTTk1QX05PREVfSU5TVEFOQ0VfV1JJVEVfT05MWSI7CisJCXB1YmxpYyBjb25zdCBzdHJpbmcgRGVmX05vZGVBY2Nlc3NOb3RBY2Nlc3NpYmxlID0gIlNOTVBfTk9ERV9JTlNUQU5DRV9OT1RfQUNDRVNTSUJMRSI7CisKKwkJcHVibGljIGNvbnN0IHN0cmluZyBEZWZfRXJyb3JDb2RlX09rICAgICAgICAgICAgID0gIlNOTVBfRVJSX05PRVJST1IiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIERlZl9FcnJvckNvZGVfV3JvbmdWYWx1ZSAgICAgPSAiU05NUF9FUlJfV1JPTkdWQUxVRSI7CisJCXB1YmxpYyBjb25zdCBzdHJpbmcgRGVmX0Vycm9yQ29kZV9Ob1N1Y2hJbnN0YW5jZSA9ICJTTk1QX0VSUl9OT1NVQ0hJTlNUQU5DRSI7CisKKwkJcHVibGljIGNvbnN0IHN0cmluZyBGbmN0U3VmZml4X0dldFZhbHVlICAgICAgICA9ICJfZ2V0X3ZhbHVlIjsKKwkJcHVibGljIGNvbnN0IHN0cmluZyBGbmN0U3VmZml4X1NldFRlc3QgICAgICAgICA9ICJfc2V0X3Rlc3QiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEZuY3RTdWZmaXhfU2V0VmFsdWUgICAgICAgID0gIl9zZXRfdmFsdWUiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEZuY3RTdWZmaXhfR2V0SW5zdGFuY2UgICAgID0gIl9nZXRfaW5zdGFuY2UiOworCQlwdWJsaWMgY29uc3Qgc3RyaW5nIEZuY3RTdWZmaXhfR2V0TmV4dEluc3RhbmNlID0gIl9nZXRfbmV4dF9pbnN0YW5jZSI7CisKKwkJcHVibGljIGNvbnN0IHN0cmluZyBGbmN0TmFtZV9TZXRUZXN0X09rICAgICAgICAgPSAic25tcF9zZXRfdGVzdF9vayI7CisKKwkJcHVibGljIHN0YXRpYyBzdHJpbmcgR2V0THdpcERlZkZvclNubXBBY2Nlc3NNb2RlKFNubXBBY2Nlc3NNb2RlIGFtKQorCQl7CisJCQlzd2l0Y2ggKGFtKQorCQkJeworCQkJCWNhc2UgU25tcEFjY2Vzc01vZGUuUmVhZE9ubHk6IHJldHVybiBEZWZfTm9kZUFjY2Vzc1JlYWRPbmx5OworCQkJCWNhc2UgU25tcEFjY2Vzc01vZGUuUmVhZFdyaXRlOiByZXR1cm4gRGVmX05vZGVBY2Nlc3NSZWFkV3JpdGU7CisJCQkJY2FzZSBTbm1wQWNjZXNzTW9kZS5Ob3RBY2Nlc3NpYmxlOiByZXR1cm4gRGVmX05vZGVBY2Nlc3NOb3RBY2Nlc3NpYmxlOworCQkJCWNhc2UgU25tcEFjY2Vzc01vZGUuV3JpdGVPbmx5OiByZXR1cm4gRGVmX05vZGVBY2Nlc3NXcml0ZU9ubHk7CisJCQkJZGVmYXVsdDogdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEV4Y2VwdGlvbigiVW5rbm93biBTbm1wQWNjZXNzTW9kZSEiKTsKKwkJCX0KKwkJfQorCisJCXB1YmxpYyBzdGF0aWMgc3RyaW5nIEdldEFzbjFEZWZGb3JTbm1wRGF0YVR5cGUoU25tcERhdGFUeXBlIGR0KQorCQl7CisJCQlzd2l0Y2ggKGR0KQorCQkJeworCQkJCS8vIHByaW1pdGl2ZQorCQkJCWNhc2UgU25tcERhdGFUeXBlLk51bGw6CisJCQkJCXJldHVybiAiU05NUF9BU04xX1RZUEVfTlVMTCI7CisJCQkJY2FzZSBTbm1wRGF0YVR5cGUuQml0czoKKwkJCQljYXNlIFNubXBEYXRhVHlwZS5PY3RldFN0cmluZzoKKwkJCQkJcmV0dXJuICJTTk1QX0FTTjFfVFlQRV9PQ1RFVF9TVFJJTkciOworCQkJCWNhc2UgU25tcERhdGFUeXBlLk9iamVjdElkZW50aWZpZXI6CisJCQkJCXJldHVybiAiU05NUF9BU04xX1RZUEVfT0JKRUNUX0lEIjsJCQkJCisJCQkJY2FzZSBTbm1wRGF0YVR5cGUuSW50ZWdlcjoKKwkJCQkJcmV0dXJuICJTTk1QX0FTTjFfVFlQRV9JTlRFR0VSIjsKKworCQkJCS8vIGFwcGxpY2F0aW9uCisJCQkJY2FzZSBTbm1wRGF0YVR5cGUuSXBBZGRyZXNzOgorCQkJCQlyZXR1cm4gIlNOTVBfQVNOMV9UWVBFX0lQQUREUiI7CisJCQkJY2FzZSBTbm1wRGF0YVR5cGUuQ291bnRlcjoKKwkJCQkJcmV0dXJuICJTTk1QX0FTTjFfVFlQRV9DT1VOVEVSIjsKKwkJCQljYXNlIFNubXBEYXRhVHlwZS5HYXVnZToKKwkJCQkJcmV0dXJuICJTTk1QX0FTTjFfVFlQRV9HQVVHRSI7CisJCQkJY2FzZSBTbm1wRGF0YVR5cGUuVGltZVRpY2tzOgorCQkJCQlyZXR1cm4gIlNOTVBfQVNOMV9UWVBFX1RJTUVUSUNLUyI7CisJCQkJY2FzZSBTbm1wRGF0YVR5cGUuT3BhcXVlOgorCQkJCQlyZXR1cm4gIlNOTVBfQVNOMV9UWVBFX09QQVFVRSI7CisJCQkJY2FzZSBTbm1wRGF0YVR5cGUuQ291bnRlcjY0OgorCQkJCQlyZXR1cm4gIlNOTVBfQVNOMV9UWVBFX0NPVU5URVI2NCI7CisJCQkJZGVmYXVsdDoKKwkJCQkJdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEV4Y2VwdGlvbigiVW5rbm93biBTbm1wRGF0YVR5cGUhIik7CisJCQl9CisJCX0KKworCQlwdWJsaWMgc3RhdGljIHN0cmluZyBHZXRMZW5ndGhGb3JTbm1wRGF0YVR5cGUoU25tcERhdGFUeXBlIGR0KQorCQl7CisJCQlzd2l0Y2ggKGR0KQorCQkJeworCQkJCWNhc2UgU25tcERhdGFUeXBlLk51bGw6CisJCQkJCXJldHVybiAiMCI7CisKKwkJCQljYXNlIFNubXBEYXRhVHlwZS5JbnRlZ2VyOgorCQkJCWNhc2UgU25tcERhdGFUeXBlLkNvdW50ZXI6CisJCQkJY2FzZSBTbm1wRGF0YVR5cGUuSXBBZGRyZXNzOgorCQkJCWNhc2UgU25tcERhdGFUeXBlLkdhdWdlOgorCQkJCWNhc2UgU25tcERhdGFUeXBlLlRpbWVUaWNrczoKKwkJCQkJcmV0dXJuICI0IjsKKworCQkJCWNhc2UgU25tcERhdGFUeXBlLkNvdW50ZXI2NDoKKwkJCQkJcmV0dXJuICI4IjsKKworCQkJCWNhc2UgU25tcERhdGFUeXBlLk9jdGV0U3RyaW5nOgorCQkJCWNhc2UgU25tcERhdGFUeXBlLk9iamVjdElkZW50aWZpZXI6CisJCQkJY2FzZSBTbm1wRGF0YVR5cGUuQml0czoKKwkJCQljYXNlIFNubXBEYXRhVHlwZS5PcGFxdWU6CisJCQkJCXJldHVybiBudWxsOworCisJCQkJZGVmYXVsdDoKKwkJCQkJdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEV4Y2VwdGlvbigiVW5rbm93biBTbm1wRGF0YVR5cGUhIik7CisJCQl9CisJCX0KKwl9CisKKwlwdWJsaWMgZW51bSBTbm1wRGF0YVR5cGUKKwl7CisJCU51bGwsCisKKwkJSW50ZWdlciwgLy8gSU5URUdFUiwgSW50ZWdlcjMyCisKKwkJQ291bnRlciwgLy8gQ291bnRlciwgQ291bnRlcjMyCisJCUdhdWdlLCAgLy8gR2F1Z2UsIEdhdWdlMzIsIFVuc2lnbmVkMzIKKwkJVGltZVRpY2tzLAorCisJCUNvdW50ZXI2NCwKKworCQlPY3RldFN0cmluZywKKwkJT3BhcXVlLAorCQlCaXRzLAorCisJCU9iamVjdElkZW50aWZpZXIsCisJCQorCQlJcEFkZHJlc3MsCisJfQorCisJcHVibGljIGVudW0gU25tcEFjY2Vzc01vZGUKKwl7CisJCVJlYWRPbmx5LAorCQlSZWFkV3JpdGUsCisJCVdyaXRlT25seSwKKwkJTm90QWNjZXNzaWJsZQorCX0KKworfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24uY3Nwcm9qIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24uY3Nwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0NTQxYzAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vTHdpcFNubXBDb2RlR2VuZXJhdGlvbi5jc3Byb2oKQEAgLTAsMCArMSw3MiBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8Q29uZmlndXJhdGlvbiBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKScgPT0gJycgIj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICA8UGxhdGZvcm0gQ29uZGl0aW9uPSIgJyQoUGxhdGZvcm0pJyA9PSAnJyAiPkFueUNQVTwvUGxhdGZvcm0+CisgICAgPFByb2R1Y3RWZXJzaW9uPjguMC4zMDcwMzwvUHJvZHVjdFZlcnNpb24+CisgICAgPFNjaGVtYVZlcnNpb24+Mi4wPC9TY2hlbWFWZXJzaW9uPgorICAgIDxQcm9qZWN0R3VpZD57QUFCQ0FCOTAtMTU0MC00NUQ0LUExNTktMTQ4MzFBNTRFOUEzfTwvUHJvamVjdEd1aWQ+CisgICAgPE91dHB1dFR5cGU+TGlicmFyeTwvT3V0cHV0VHlwZT4KKyAgICA8QXBwRGVzaWduZXJGb2xkZXI+UHJvcGVydGllczwvQXBwRGVzaWduZXJGb2xkZXI+CisgICAgPFJvb3ROYW1lc3BhY2U+THdpcFNubXBDb2RlR2VuZXJhdGlvbjwvUm9vdE5hbWVzcGFjZT4KKyAgICA8QXNzZW1ibHlOYW1lPkx3aXBTbm1wQ29kZUdlbmVyYXRpb248L0Fzc2VtYmx5TmFtZT4KKyAgICA8VGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj52NC4wPC9UYXJnZXRGcmFtZXdvcmtWZXJzaW9uPgorICAgIDxGaWxlQWxpZ25tZW50PjUxMjwvRmlsZUFsaWdubWVudD4KKyAgICA8VGFyZ2V0RnJhbWV3b3JrUHJvZmlsZSAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnRGVidWd8QW55Q1BVJyAiPgorICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgorICAgIDxEZWJ1Z1R5cGU+ZnVsbDwvRGVidWdUeXBlPgorICAgIDxPcHRpbWl6ZT5mYWxzZTwvT3B0aW1pemU+CisgICAgPE91dHB1dFBhdGg+YmluXERlYnVnXDwvT3V0cHV0UGF0aD4KKyAgICA8RGVmaW5lQ29uc3RhbnRzPkRFQlVHO1RSQUNFPC9EZWZpbmVDb25zdGFudHM+CisgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CisgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknID09ICdSZWxlYXNlfEFueUNQVScgIj4KKyAgICA8RGVidWdUeXBlPnBkYm9ubHk8L0RlYnVnVHlwZT4KKyAgICA8T3B0aW1pemU+dHJ1ZTwvT3B0aW1pemU+CisgICAgPE91dHB1dFBhdGg+YmluXFJlbGVhc2VcPC9PdXRwdXRQYXRoPgorICAgIDxEZWZpbmVDb25zdGFudHM+VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4KKyAgICA8RXJyb3JSZXBvcnQ+cHJvbXB0PC9FcnJvclJlcG9ydD4KKyAgICA8V2FybmluZ0xldmVsPjQ8L1dhcm5pbmdMZXZlbD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJJUmVzdHJpY3Rpb24uY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iU25tcFNjYWxhck5vZGVDb3VudGVyNjQuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iU25tcFNjYWxhck5vZGVUcnV0aFZhbHVlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlNubXBTY2FsYXJBZ2dyZWdhdGlvbk5vZGUuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iU25tcFRhYmxlTm9kZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJTbm1wU2NhbGFyQXJyYXlOb2RlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYkhlYWRlckZpbGUuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iU25tcFNjYWxhck5vZGVCaXRzLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlNubXBNaWIuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iU25tcFNjYWxhck5vZGVJbnQuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iU25tcFNjYWxhck5vZGVPYmplY3RJZGVudGlmaWVyLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlNubXBTY2FsYXJOb2RlT2N0ZXRTdHJpbmcuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iU25tcFNjYWxhck5vZGVVaW50LmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlNubXBUcmVlTm9kZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJMd2lwU25tcC5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJDRmlsZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9wZXJ0aWVzXEFzc2VtYmx5SW5mby5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJTbm1wTm9kZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJTbm1wU2NhbGFyTm9kZS5jcyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cQ0NvZGVHZW5lcmF0aW9uXENDb2RlR2VuZXJhdGlvbi5jc3Byb2oiPgorICAgICAgPFByb2plY3Q+ezdEQTdDMEFCLTA5ODItNEJGNS05MzI0LUY1OUE3QTA4RDY1Qn08L1Byb2plY3Q+CisgICAgICA8TmFtZT5DQ29kZUdlbmVyYXRpb248L05hbWU+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKE1TQnVpbGRUb29sc1BhdGgpXE1pY3Jvc29mdC5DU2hhcnAudGFyZ2V0cyIgLz4KKyAgPCEtLSBUbyBtb2RpZnkgeW91ciBidWlsZCBwcm9jZXNzLCBhZGQgeW91ciB0YXNrIGluc2lkZSBvbmUgb2YgdGhlIHRhcmdldHMgYmVsb3cgYW5kIHVuY29tbWVudCBpdC4gCisgICAgICAgT3RoZXIgc2ltaWxhciBleHRlbnNpb24gcG9pbnRzIGV4aXN0LCBzZWUgTWljcm9zb2Z0LkNvbW1vbi50YXJnZXRzLgorICA8VGFyZ2V0IE5hbWU9IkJlZm9yZUJ1aWxkIj4KKyAgPC9UYXJnZXQ+CisgIDxUYXJnZXQgTmFtZT0iQWZ0ZXJCdWlsZCI+CisgIDwvVGFyZ2V0PgorICAtLT4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vTWliQ0ZpbGUuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vTWliQ0ZpbGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ4ZWMyOQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9NaWJDRmlsZS5jcwpAQCAtMCwwICsxLDE5NiBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKK3VzaW5nIENDb2RlR2VuZXJhdGlvbjsKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5JTzsKKworbmFtZXNwYWNlIEx3aXBTbm1wQ29kZUdlbmVyYXRpb24KK3sKKwlwdWJsaWMgY2xhc3MgTWliQ0ZpbGUKKwl7CisJCSNyZWdpb24gRmllbGRzCisKKwkJcHJpdmF0ZSBjb25zdCBzdHJpbmcgUHJlc2VydmVkU2VjdGlvbk1hcmtlciA9ICJMV0lQIE1JQiBnZW5lcmF0b3IgLSBwcmVzZXJ2ZWQgc2VjdGlvbiBiZWdpbiI7CisJCXByaXZhdGUgY29uc3Qgc3RyaW5nIFByZXNlcnZlZFNlY3Rpb25IZWFkZXIgPSAKKwkJCSIrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrK1xuIiArCisJCQlQcmVzZXJ2ZWRTZWN0aW9uTWFya2VyICsgIlxuIiArCisJCQkiQ29kZSBiZWxvdyBpcyBwcmVzZXJ2ZWQgb24gcmVnZW5lcmF0aW9uLiBSZW1vdmUgdGhlc2UgY29tbWVudCBsaW5lcyB0byByZWdlbmVyYXRlIGNvZGUuXG4iICsKKwkJCSIrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyI7CisKKwkJcHJpdmF0ZSByZWFkb25seSBMaXN0PENvZGVFbGVtZW50PiBpbmNsdWRlcyA9IG5ldyBMaXN0PENvZGVFbGVtZW50PigpOworCQlwcml2YXRlIHJlYWRvbmx5IExpc3Q8Q29kZUVsZW1lbnQ+IGRlZmluZXMgPSBuZXcgTGlzdDxDb2RlRWxlbWVudD4oKTsKKwkJcHJpdmF0ZSByZWFkb25seSBMaXN0PENvZGVFbGVtZW50PiBkZWNsYXJhdGlvbnMgPSBuZXcgTGlzdDxDb2RlRWxlbWVudD4oKTsKKwkJcHJpdmF0ZSByZWFkb25seSBMaXN0PENvZGVFbGVtZW50PiBpbXBsZW1lbnRhdGlvbiA9IG5ldyBMaXN0PENvZGVFbGVtZW50PigpOworCQlwcml2YXRlIHJlYWRvbmx5IExpc3Q8Q29kZUVsZW1lbnQ+IHByZXNlcnZlZENvZGUgPSBuZXcgTGlzdDxDb2RlRWxlbWVudD4oKTsKKworCQkjZW5kcmVnaW9uCisKKwkJcHVibGljIE1pYkNGaWxlKCkKKwkJeworCQl9CisKKwkJI3JlZ2lvbiBBY2Nlc3NvcnMKKworCQlwdWJsaWMgTGlzdDxDb2RlRWxlbWVudD4gSW5jbHVkZXMKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuaW5jbHVkZXM7IH0KKwkJfQorCisJCXB1YmxpYyBMaXN0PENvZGVFbGVtZW50PiBEZWZpbmVzCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLmRlZmluZXM7IH0KKwkJfQorCisJCXB1YmxpYyBMaXN0PENvZGVFbGVtZW50PiBEZWNsYXJhdGlvbnMKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuZGVjbGFyYXRpb25zOyB9CisJCX0KKworCQlwdWJsaWMgTGlzdDxDb2RlRWxlbWVudD4gSW1wbGVtZW50YXRpb24KKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuaW1wbGVtZW50YXRpb247IH0KKwkJfQorCisJCXB1YmxpYyBMaXN0PENvZGVFbGVtZW50PiBQcmVzZXJ2ZWRDb2RlCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLnByZXNlcnZlZENvZGU7IH0KKwkJfQorCisJCSNlbmRyZWdpb24KKworCQkjcmVnaW9uIE1ldGhvZHMKKworCQlwdWJsaWMgdm9pZCBTYXZlKENHZW5lcmF0b3IgY0dlbmVyYXRvcikKKwkJeworCQkJQ0ZpbGUgY0ZpbGUgPSBuZXcgQ0ZpbGUoKTsKKworCQkJY0ZpbGUuQWRkRWxlbWVudChuZXcgQ29tbWVudCgiR2VuZXJhdGVkIGJ5IEx3aXBNaWJDb21waWxlciIpKTsKKwkJCWNGaWxlLkFkZEVsZW1lbnQoRW1wdHlMaW5lLlNpbmdsZUxpbmUpOworCisJCQljRmlsZS5BZGRFbGVtZW50KG5ldyBQUF9JbmNsdWRlKEx3aXBEZWZzLkluY2xfU25tcE9wdHMpKTsKKwkJCUNvZGVDb250YWluZXJCYXNlIGUgPSBjRmlsZS5BZGRFbGVtZW50KG5ldyBQUF9JZihMd2lwRGVmcy5PcHRfU25tcEVuYWJsZWQpKSBhcyBDb2RlQ29udGFpbmVyQmFzZTsKKwkJCWUuQWRkRWxlbWVudChFbXB0eUxpbmUuU2luZ2xlTGluZSk7CisKKwkJCS8vIGluY2x1ZGUgaGVhZGVyIGZpbGUKKwkJCXN0cmluZyBmaWxlID0gY0dlbmVyYXRvci5GaWxlTmFtZTsKKwkJCWlmICghU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZShmaWxlKSkKKwkJCXsKKwkJCQlzdHJpbmcgZXh0ID0gU3lzdGVtLklPLlBhdGguR2V0RXh0ZW5zaW9uKGZpbGUpOworCisJCQkJc3RyaW5nIGhlYWRlckZpbGUgPSAhU3RyaW5nLklzTnVsbE9yRW1wdHkoZXh0KSA/IGZpbGUuU3Vic3RyaW5nKDAsIGZpbGUuTGVuZ3RoIC0gZXh0Lkxlbmd0aCkgOiBmaWxlOworCQkJCWhlYWRlckZpbGUgKz0gIi5oIjsKKworCQkJCWUuQWRkRWxlbWVudChuZXcgUFBfSW5jbHVkZShoZWFkZXJGaWxlKSk7CQkJCQkJCQkKKwkJCX0KKworCQkJLy8gaW5jbHVkZSBjb21tb24gc25tcCBmaWxlcworCQkJZS5BZGRFbGVtZW50KG5ldyBQUF9JbmNsdWRlKCJsd2lwL2FwcHMvc25tcC5oIikpOworCQkJZS5BZGRFbGVtZW50KG5ldyBQUF9JbmNsdWRlKCJsd2lwL2FwcHMvc25tcF9jb3JlLmgiKSk7CisJCQllLkFkZEVsZW1lbnQobmV3IFBQX0luY2x1ZGUoImx3aXAvYXBwcy9zbm1wX3NjYWxhci5oIikpOworCQkJZS5BZGRFbGVtZW50KG5ldyBQUF9JbmNsdWRlKCJsd2lwL2FwcHMvc25tcF90YWJsZS5oIikpOworCisJCQlpZiAodGhpcy5pbmNsdWRlcy5Db3VudCA+IDApCisJCQl7CisJCQkJZS5BZGRFbGVtZW50KEVtcHR5TGluZS5TaW5nbGVMaW5lKTsKKwkJCQllLkFkZEVsZW1lbnRzKHRoaXMuaW5jbHVkZXMpOworCQkJfQorCisJCQlpZiAodGhpcy5kZWZpbmVzLkNvdW50ID4gMCkKKwkJCXsKKwkJCQllLkFkZEVsZW1lbnQoRW1wdHlMaW5lLlNpbmdsZUxpbmUpOworCQkJCWUuQWRkRWxlbWVudHModGhpcy5kZWZpbmVzKTsKKwkJCX0KKworCQkJaWYgKHRoaXMuZGVjbGFyYXRpb25zLkNvdW50ID4gMCkKKwkJCXsKKwkJCQllLkFkZEVsZW1lbnQoRW1wdHlMaW5lLlR3b0xpbmVzKTsKKwkJCQllLkFkZEVsZW1lbnRzKHRoaXMuZGVjbGFyYXRpb25zKTsKKwkJCX0KKworCQkJaWYgKHRoaXMuaW1wbGVtZW50YXRpb24uQ291bnQgPiAwKQorCQkJeworCQkJCWUuQWRkRWxlbWVudChFbXB0eUxpbmUuVHdvTGluZXMpOworCQkJCWUuQWRkRWxlbWVudHModGhpcy5pbXBsZW1lbnRhdGlvbik7CisJCQl9CisKKwkJCWlmICh0aGlzLnByZXNlcnZlZENvZGUuQ291bnQgPiAwKQorCQkJeworCQkJCWUuQWRkRWxlbWVudChFbXB0eUxpbmUuVHdvTGluZXMpOworCQkJCWUuQWRkRWxlbWVudChuZXcgQ29tbWVudChQcmVzZXJ2ZWRTZWN0aW9uSGVhZGVyKSk7CisJCQkJZS5BZGRFbGVtZW50KEVtcHR5TGluZS5TaW5nbGVMaW5lKTsKKwkJCQllLkFkZEVsZW1lbnRzKHRoaXMucHJlc2VydmVkQ29kZSk7CisJCQl9CisKKwkJCWNGaWxlLlNhdmUoY0dlbmVyYXRvcik7CisJCX0KKworCQlwdWJsaWMgc3RhdGljIHN0cmluZyBHZXRQcmVzZXJ2ZWRDb2RlKHN0cmluZyBmaWxlKQorCQl7CisJCQlpZiAoRmlsZS5FeGlzdHMoZmlsZSkpCisJCQl7CisJCQkJdXNpbmcgKFN0cmVhbVJlYWRlciBmaWxlU3RyZWFtID0gbmV3IFN0cmVhbVJlYWRlcihmaWxlKSkKKwkJCQl7CisJCQkJCXdoaWxlICghZmlsZVN0cmVhbS5FbmRPZlN0cmVhbSkKKwkJCQkJeworCQkJCQkJc3RyaW5nIGxpbmUgPSBmaWxlU3RyZWFtLlJlYWRMaW5lKCk7CisJCQkJCQlpZiAobGluZSA9PSBQcmVzZXJ2ZWRTZWN0aW9uTWFya2VyKQorCQkJCQkJeworCQkJCQkJCWJyZWFrOworCQkJCQkJfQorCQkJCQl9CisKKwkJCQkJaWYgKCFmaWxlU3RyZWFtLkVuZE9mU3RyZWFtKQorCQkJCQl7CisJCQkJCQkvLyBza2lwIHRoZSByZXN0IG9mIHRoZSBjb21tZW50ICsgc3BhY2VyIGxpbmUKKwkJCQkJCWZpbGVTdHJlYW0uUmVhZExpbmUoKTsgLy8gIkNvZGUgYmVsb3cgaXMgcHJlc2VydmVkLi4uCisJCQkJCQlmaWxlU3RyZWFtLlJlYWRMaW5lKCk7IC8vICIrKysrKysrKysrKysrKysrKysrKysrKy4uLgorCQkJCQkJZmlsZVN0cmVhbS5SZWFkTGluZSgpOyAvLyAqLworCQkJCQkJZmlsZVN0cmVhbS5SZWFkTGluZSgpOyAvLworCisJCQkJCQlzdHJpbmcgcHJlc2VydmVkQ29kZSA9IGZpbGVTdHJlYW0uUmVhZFRvRW5kKCk7CisKKwkJCQkJCWludCBsYXN0RW5kaWYgICAgPSBwcmVzZXJ2ZWRDb2RlLkxhc3RJbmRleE9mKCIjZW5kaWYiLCBTdHJpbmdDb21wYXJpc29uLk9yZGluYWwpOworCQkJCQkJcHJlc2VydmVkQ29kZSAgICA9IHByZXNlcnZlZENvZGUuUmVtb3ZlKGxhc3RFbmRpZik7CisKKwkJCQkJCXJldHVybiBwcmVzZXJ2ZWRDb2RlOworCQkJCQl9CisJCQkJfQorCQkJfQorCisJCQlyZXR1cm4gbnVsbDsKKwkJfQorCisJCSNlbmRyZWdpb24KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vTWliSGVhZGVyRmlsZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9NaWJIZWFkZXJGaWxlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1ZjJhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vTWliSGVhZGVyRmlsZS5jcwpAQCAtMCwwICsxLDEyOSBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKK3VzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKK3VzaW5nIENDb2RlR2VuZXJhdGlvbjsKKworbmFtZXNwYWNlIEx3aXBTbm1wQ29kZUdlbmVyYXRpb24KK3sKKwlwdWJsaWMgY2xhc3MgTWliSGVhZGVyRmlsZQorCXsKKworCQkjcmVnaW9uIEZpZWxkcworCisJCXByaXZhdGUgcmVhZG9ubHkgTGlzdDxDb2RlRWxlbWVudD4gZGVmaW5lcyA9IG5ldyBMaXN0PENvZGVFbGVtZW50PigpOworCQlwcml2YXRlIHJlYWRvbmx5IExpc3Q8Q29kZUVsZW1lbnQ+IGluY2x1ZGVzID0gbmV3IExpc3Q8Q29kZUVsZW1lbnQ+KCk7CisJCXByaXZhdGUgcmVhZG9ubHkgTGlzdDxDb2RlRWxlbWVudD4gZnVuY3Rpb25EZWNsYXJhdGlvbnMgPSBuZXcgTGlzdDxDb2RlRWxlbWVudD4oKTsKKwkJcHJpdmF0ZSByZWFkb25seSBMaXN0PENvZGVFbGVtZW50PiB2YXJpYWJsZURlY2xhcmF0aW9ucyA9IG5ldyBMaXN0PENvZGVFbGVtZW50PigpOworCisJCSNlbmRyZWdpb24KKworCQlwdWJsaWMgTWliSGVhZGVyRmlsZSgpCisJCXsKKwkJfQorCisJCSNyZWdpb24gQWNjZXNzb3JzCisKKwkJcHVibGljIExpc3Q8Q29kZUVsZW1lbnQ+IERlZmluZXMKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuZGVmaW5lczsgfQorCQl9CisKKwkJcHVibGljIExpc3Q8Q29kZUVsZW1lbnQ+IEluY2x1ZGVzCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLmluY2x1ZGVzOyB9CisJCX0KKworCQlwdWJsaWMgTGlzdDxDb2RlRWxlbWVudD4gRnVuY3Rpb25EZWNsYXJhdGlvbnMKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuZnVuY3Rpb25EZWNsYXJhdGlvbnM7IH0KKwkJfQorCisJCXB1YmxpYyBMaXN0PENvZGVFbGVtZW50PiBWYXJpYWJsZURlY2xhcmF0aW9ucworCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy52YXJpYWJsZURlY2xhcmF0aW9uczsgfQorCQl9CisKKwkJI2VuZHJlZ2lvbgorCisJCSNyZWdpb24gTWV0aG9kcworCisJCXB1YmxpYyB2b2lkIFNhdmUoQ0dlbmVyYXRvciBjR2VuZXJhdG9yKQorCQl7CisJCQlDRmlsZSBjRmlsZSA9IG5ldyBDRmlsZSgpOworCisJCQljRmlsZS5BZGRFbGVtZW50KG5ldyBDb21tZW50KCJHZW5lcmF0ZWQgYnkgTHdpcE1pYkNvbXBpbGVyIikpOworCQkJY0ZpbGUuQWRkRWxlbWVudChFbXB0eUxpbmUuU2luZ2xlTGluZSk7CisJCQkKKwkJCXN0cmluZyBoZWFkZXJEZWZpbmUgPSBjR2VuZXJhdG9yLkZpbGVOYW1lOworCQkJaGVhZGVyRGVmaW5lID0gbmV3IFJlZ2V4KCJbXmEtekEtWjAtOV0iKS5SZXBsYWNlKGhlYWRlckRlZmluZSwgIl8iKTsKKwkJCWhlYWRlckRlZmluZSA9IGhlYWRlckRlZmluZS5Ub1VwcGVySW52YXJpYW50KCk7CisKKwkJCUNvZGVDb250YWluZXJCYXNlIGUgPSBjRmlsZS5BZGRFbGVtZW50KG5ldyBQUF9JZmRlZihoZWFkZXJEZWZpbmUsIGludmVydGVkOiB0cnVlKSkgYXMgQ29kZUNvbnRhaW5lckJhc2U7CisJCQllLkFkZEVsZW1lbnQobmV3IFBQX01hY3JvKGhlYWRlckRlZmluZSwgaGVhZGVyRGVmaW5lKSk7CisJCQllLkFkZEVsZW1lbnQoRW1wdHlMaW5lLlNpbmdsZUxpbmUpOworCisJCQllLkFkZEVsZW1lbnQobmV3IFBQX0luY2x1ZGUoTHdpcERlZnMuSW5jbF9Tbm1wT3B0cykpOworCQkJZSA9IGUuQWRkRWxlbWVudChuZXcgUFBfSWYoTHdpcERlZnMuT3B0X1NubXBFbmFibGVkKSkgYXMgQ29kZUNvbnRhaW5lckJhc2U7CisJCQllLkFkZEVsZW1lbnQoRW1wdHlMaW5lLlNpbmdsZUxpbmUpOworCisJCQlDb2RlQ29udGFpbmVyQmFzZSBjcGx1c3BsdXNvcGVuID0gZS5BZGRFbGVtZW50KG5ldyBQUF9JZmRlZigiX19jcGx1c3BsdXMiKSkgYXMgQ29kZUNvbnRhaW5lckJhc2U7CisJCQljcGx1c3BsdXNvcGVuLkFkZEVsZW1lbnQobmV3IENvZGUoImV4dGVybiBcIkNcIiB7IikpOworCQkJZS5BZGRFbGVtZW50KEVtcHR5TGluZS5TaW5nbGVMaW5lKTsKKworCQkJaWYgKHRoaXMuaW5jbHVkZXMuQ291bnQgPiAwKQorCQkJeworCQkJCWUuQWRkRWxlbWVudHModGhpcy5pbmNsdWRlcyk7CisJCQkJZS5BZGRFbGVtZW50KEVtcHR5TGluZS5TaW5nbGVMaW5lKTsKKwkJCX0KKworCQkJaWYgKHRoaXMuZGVmaW5lcy5Db3VudCA+IDApCisJCQl7CisJCQkJZS5BZGRFbGVtZW50cyh0aGlzLmRlZmluZXMpOworCQkJCWUuQWRkRWxlbWVudChFbXB0eUxpbmUuU2luZ2xlTGluZSk7CisJCQl9CisJCQkKKwkJCWUuQWRkRWxlbWVudHModGhpcy5mdW5jdGlvbkRlY2xhcmF0aW9ucywgRW1wdHlMaW5lLlNpbmdsZUxpbmUpOworCQkJZS5BZGRFbGVtZW50cyh0aGlzLnZhcmlhYmxlRGVjbGFyYXRpb25zLCBFbXB0eUxpbmUuU2luZ2xlTGluZSk7CisKKwkJCWUuQWRkRWxlbWVudChFbXB0eUxpbmUuU2luZ2xlTGluZSk7CisJCQlDb2RlQ29udGFpbmVyQmFzZSBjcGx1c3BsdXNjbG9zZSA9IGUuQWRkRWxlbWVudChuZXcgUFBfSWZkZWYoIl9fY3BsdXNwbHVzIikpIGFzIENvZGVDb250YWluZXJCYXNlOworCQkJY3BsdXNwbHVzY2xvc2UuQWRkRWxlbWVudChuZXcgQ29kZSgifSIpKTsKKworCQkJZS5BZGRFbGVtZW50KEVtcHR5TGluZS5TaW5nbGVMaW5lKTsKKwkJCWNGaWxlLlNhdmUoY0dlbmVyYXRvcik7CisJCX0KKworCQkjZW5kcmVnaW9uCisJfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OGI0M2QKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MKQEAgLTAsMCArMSwzNiBAQAor77u/dXNpbmcgU3lzdGVtLlJlZmxlY3Rpb247Cit1c2luZyBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzOwordXNpbmcgU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzOworCisvLyBBbGxnZW1laW5lIEluZm9ybWF0aW9uZW4gw7xiZXIgZWluZSBBc3NlbWJseSB3ZXJkZW4gw7xiZXIgZGllIGZvbGdlbmRlbiAKKy8vIEF0dHJpYnV0ZSBnZXN0ZXVlcnQuIMOEbmRlcm4gU2llIGRpZXNlIEF0dHJpYnV0d2VydGUsIHVtIGRpZSBJbmZvcm1hdGlvbmVuIHp1IMOkbmRlcm4sCisvLyBkaWUgbWl0IGVpbmVyIEFzc2VtYmx5IHZlcmtuw7xwZnQgc2luZC4KK1thc3NlbWJseTogQXNzZW1ibHlUaXRsZSgiTHdpcFNubXBDb2RlR2VuZXJhdGlvbiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseURlc2NyaXB0aW9uKCIiKV0KK1thc3NlbWJseTogQXNzZW1ibHlDb25maWd1cmF0aW9uKCIiKV0KK1thc3NlbWJseTogQXNzZW1ibHlDb21wYW55KCIiKV0KK1thc3NlbWJseTogQXNzZW1ibHlQcm9kdWN0KCJMd2lwU25tcENvZGVHZW5lcmF0aW9uIildCitbYXNzZW1ibHk6IEFzc2VtYmx5Q29weXJpZ2h0KCJDb3B5cmlnaHQgwqkgIDIwMTUiKV0KK1thc3NlbWJseTogQXNzZW1ibHlUcmFkZW1hcmsoIiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseUN1bHR1cmUoIiIpXQorCisvLyBEdXJjaCBGZXN0bGVnZW4gdm9uIENvbVZpc2libGUgYXVmICJmYWxzZSIgd2VyZGVuIGRpZSBUeXBlbiBpbiBkaWVzZXIgQXNzZW1ibHkgdW5zaWNodGJhciAKKy8vIGbDvHIgQ09NLUtvbXBvbmVudGVuLiBXZW5uIFNpZSBhdWYgZWluZW4gVHlwIGluIGRpZXNlciBBc3NlbWJseSB2b24gCisvLyBDT00genVncmVpZmVuIG3DvHNzZW4sIGxlZ2VuIFNpZSBkYXMgQ29tVmlzaWJsZS1BdHRyaWJ1dCBmw7xyIGRpZXNlbiBUeXAgYXVmICJ0cnVlIiBmZXN0LgorW2Fzc2VtYmx5OiBDb21WaXNpYmxlKGZhbHNlKV0KKworLy8gRGllIGZvbGdlbmRlIEdVSUQgYmVzdGltbXQgZGllIElEIGRlciBUeXBiaWJsaW90aGVrLCB3ZW5uIGRpZXNlcyBQcm9qZWt0IGbDvHIgQ09NIHZlcmbDvGdiYXIgZ2VtYWNodCB3aXJkCitbYXNzZW1ibHk6IEd1aWQoIjhjZmJiYjhiLWRmYmItNGRkNS04MGM5LWUwNzg0NWRkNThjOSIpXQorCisvLyBWZXJzaW9uc2luZm9ybWF0aW9uZW4gZsO8ciBlaW5lIEFzc2VtYmx5IGJlc3RlaGVuIGF1cyBkZW4gZm9sZ2VuZGVuIHZpZXIgV2VydGVuOgorLy8KKy8vICAgICAgSGF1cHR2ZXJzaW9uCisvLyAgICAgIE5lYmVudmVyc2lvbiAKKy8vICAgICAgQnVpbGRudW1tZXIKKy8vICAgICAgUmV2aXNpb24KKy8vCisvLyBTaWUga8O2bm5lbiBhbGxlIFdlcnRlIGFuZ2ViZW4gb2RlciBkaWUgc3RhbmRhcmRtw6TDn2lnZW4gQnVpbGQtIHVuZCBSZXZpc2lvbnNudW1tZXJuIAorLy8gw7xiZXJuZWhtZW4sIGluZGVtIFNpZSAiKiIgZWluZ2ViZW46CisvLyBbYXNzZW1ibHk6IEFzc2VtYmx5VmVyc2lvbigiMS4wLioiKV0KK1thc3NlbWJseTogQXNzZW1ibHlWZXJzaW9uKCIxLjAuMC4wIildCitbYXNzZW1ibHk6IEFzc2VtYmx5RmlsZVZlcnNpb24oIjEuMC4wLjAiKV0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wTWliLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1NubXBNaWIuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc3YTE4YgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wTWliLmNzCkBAIC0wLDAgKzEsOTcgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLlRleHQ7Cit1c2luZyBDQ29kZUdlbmVyYXRpb247CisKK25hbWVzcGFjZSBMd2lwU25tcENvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIFNubXBNaWIgOiBTbm1wVHJlZU5vZGUKKwl7CisJCXB1YmxpYyB1aW50W10gQmFzZU9pZCB7IGdldDsgc2V0OyB9CisKKwkJcHVibGljIFNubXBNaWIoKQorCQkJOiBiYXNlKG51bGwpCisJCXsKKwkJfQorCisJCXB1YmxpYyBTbm1wTWliKHVpbnRbXSBiYXNlT2lkKQorCQkJOiBiYXNlKG51bGwpCisJCXsKKwkJCXRoaXMuQmFzZU9pZCA9IGJhc2VPaWQ7CisJCX0KKworCQlwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIEZ1bGxOb2RlTmFtZQorCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5OYW1lLlRvTG93ZXJJbnZhcmlhbnQoKSArICJfcm9vdCI7IH0KKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShNaWJDRmlsZSBtaWJGaWxlKQorCQl7CisJCQliYXNlLkdlbmVyYXRlQ29kZShtaWJGaWxlKTsKKworCQkJU3lzdGVtLkRpYWdub3N0aWNzLkRlYnVnLkFzc2VydCgodGhpcy5CYXNlT2lkICE9IG51bGwpICYmICh0aGlzLkJhc2VPaWQuTGVuZ3RoID4gMCkpOworCQkJCisJCQkvLyBjcmVhdGUgYW5kIGFkZCBCYXNlT0lEIGRlY2xhcmF0aW9ucworCQkJU3RyaW5nQnVpbGRlciBib2lkSW5pdGlhbGl6YXRpb24gPSBuZXcgU3RyaW5nQnVpbGRlcigieyIpOworCQkJZm9yZWFjaCAodWludCB0IGluIHRoaXMuQmFzZU9pZCkKKwkJCXsKKwkJCQlib2lkSW5pdGlhbGl6YXRpb24uQXBwZW5kKHQpOworCQkJCWJvaWRJbml0aWFsaXphdGlvbi5BcHBlbmQoIiwiKTsKKwkJCX0KKwkJCWJvaWRJbml0aWFsaXphdGlvbi5MZW5ndGggLT0gMTsKKwkJCWJvaWRJbml0aWFsaXphdGlvbi5BcHBlbmQoIn0iKTsKKworCQkJVmFyaWFibGVEZWNsYXJhdGlvbiBib2lkRGVjbCA9IG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKAorCQkJCW5ldyBWYXJpYWJsZVR5cGUodGhpcy5OYW1lLlRvTG93ZXJJbnZhcmlhbnQoKSArICJfYmFzZV9vaWQiLCBMd2lwRGVmcy5WdF9VMzIsIG51bGwsIENvbnN0VHlwZS5WYWx1ZSwgU3RyaW5nLkVtcHR5KSwKKwkJCQlib2lkSW5pdGlhbGl6YXRpb24uVG9TdHJpbmcoKSwgdHJ1ZSk7CisKKwkJCW1pYkZpbGUuRGVjbGFyYXRpb25zLkFkZChib2lkRGVjbCk7CisJCQltaWJGaWxlLkRlY2xhcmF0aW9ucy5BZGQoR2V0RXhwb3J0RGVjbGFyYXRpb24oKSk7CisJCX0KKworCQlwdWJsaWMgb3ZlcnJpZGUgdm9pZCBHZW5lcmF0ZUhlYWRlckNvZGUoTWliSGVhZGVyRmlsZSBtaWJIZWFkZXJGaWxlKQorCQl7CisJCQltaWJIZWFkZXJGaWxlLkluY2x1ZGVzLkFkZChuZXcgUFBfSW5jbHVkZSgibHdpcC9hcHBzL3NubXBfY29yZS5oIikpOworCisJCQltaWJIZWFkZXJGaWxlLlZhcmlhYmxlRGVjbGFyYXRpb25zLkFkZChWYXJpYWJsZVByb3RvdHlwZS5Gcm9tVmFyaWFibGVEZWNsYXJhdGlvbihHZXRFeHBvcnREZWNsYXJhdGlvbigpKSk7CisJCX0KKworCQlWYXJpYWJsZURlY2xhcmF0aW9uIEdldEV4cG9ydERlY2xhcmF0aW9uKCkKKwkJeworCQkJcmV0dXJuIG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKAorCQkJCW5ldyBWYXJpYWJsZVR5cGUodGhpcy5OYW1lLlRvTG93ZXJJbnZhcmlhbnQoKSwgTHdpcERlZnMuVnRfU3RNaWIsIG51bGwsIENvbnN0VHlwZS5WYWx1ZSksCisJCQkJU3RyaW5nLkZvcm1hdCgie3t7MH1fYmFzZV9vaWQsIExXSVBfQVJSQVlTSVpFKHswfV9iYXNlX29pZCksICZ7MX0ubm9kZX19IiwgdGhpcy5OYW1lLlRvTG93ZXJJbnZhcmlhbnQoKSwgdGhpcy5GdWxsTm9kZU5hbWUpKTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wTm9kZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wTm9kZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2ViNGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1NubXBOb2RlLmNzCkBAIC0wLDAgKzEsMTE5IEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKK3VzaW5nIENDb2RlR2VuZXJhdGlvbjsKKworbmFtZXNwYWNlIEx3aXBTbm1wQ29kZUdlbmVyYXRpb24KK3sKKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgU25tcE5vZGUKKwl7CisJCXB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgUmVnZXggTmFtZVZhbGlkYXRpb25SZWdleCA9IG5ldyBSZWdleChAIl5cdyskIik7CisKKwkJcHJpdmF0ZSBzdHJpbmcgbmFtZTsKKwkJcHJpdmF0ZSByZWFkb25seSBTbm1wVHJlZU5vZGUgcGFyZW50Tm9kZTsKKworCQlwcm90ZWN0ZWQgU25tcE5vZGUoU25tcFRyZWVOb2RlIHBhcmVudE5vZGUpCisJCXsKKwkJCXRoaXMucGFyZW50Tm9kZSA9IHBhcmVudE5vZGU7CisJCX0KKworCQlwdWJsaWMgU25tcFRyZWVOb2RlIFBhcmVudE5vZGUKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMucGFyZW50Tm9kZTsgfQorCQl9CisKKwkJcHVibGljIHZpcnR1YWwgdWludCBPaWQgeyBnZXQ7IHNldDsgfQorCisJCXB1YmxpYyBhYnN0cmFjdCBzdHJpbmcgRnVsbE5vZGVOYW1lCisJCXsKKwkJCWdldDsKKwkJfQorCisJCXB1YmxpYyB2aXJ0dWFsIHN0cmluZyBOYW1lCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLm5hbWU7IH0KKwkJCXNldAorCQkJeworCQkJCWlmICh2YWx1ZSAhPSB0aGlzLm5hbWUpCisJCQkJeworCQkJCQkvLyBjaGVjayBmb3IgdmFsaWQgbmFtZQorCQkJCQlpZiAoIU5hbWVWYWxpZGF0aW9uUmVnZXguSXNNYXRjaCh2YWx1ZSkpCisJCQkJCXsKKwkJCQkJCXRocm93IG5ldyBBcmd1bWVudE91dE9mUmFuZ2VFeGNlcHRpb24oIk5hbWUiKTsKKwkJCQkJfQorCisJCQkJCXRoaXMubmFtZSA9IHZhbHVlOworCQkJCX0KKwkJCX0KKwkJfQorCisJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgR2VuZXJhdGUoTWliQ0ZpbGUgZ2VuZXJhdGVkRmlsZSwgTWliSGVhZGVyRmlsZSBnZW5lcmF0ZWRIZWFkZXJGaWxlKQorCQl7CisJCQlpbnQgZGVjbENvdW50ID0gZ2VuZXJhdGVkRmlsZS5EZWNsYXJhdGlvbnMuQ291bnQ7CisJCQlpbnQgaW1wbENvdW50ID0gZ2VuZXJhdGVkRmlsZS5JbXBsZW1lbnRhdGlvbi5Db3VudDsKKworCQkJdGhpcy5HZW5lcmF0ZUhlYWRlckNvZGUoZ2VuZXJhdGVkSGVhZGVyRmlsZSk7CisJCQl0aGlzLkdlbmVyYXRlQ29kZShnZW5lcmF0ZWRGaWxlKTsKKworCQkJaWYgKGdlbmVyYXRlZEZpbGUuRGVjbGFyYXRpb25zLkNvdW50ICE9IGRlY2xDb3VudCkKKwkJCXsKKwkJCQlnZW5lcmF0ZWRGaWxlLkRlY2xhcmF0aW9ucy5BZGQoRW1wdHlMaW5lLlNpbmdsZUxpbmUpOworCQkJfQorCQkJaWYgKGdlbmVyYXRlZEZpbGUuSW1wbGVtZW50YXRpb24uQ291bnQgIT0gaW1wbENvdW50KQorCQkJeworCQkJCWdlbmVyYXRlZEZpbGUuSW1wbGVtZW50YXRpb24uQWRkKEVtcHR5TGluZS5TaW5nbGVMaW5lKTsKKwkJCX0KKwkJfQorCisJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIEdlbmVyYXRlQ29kZShNaWJDRmlsZSBtaWJGaWxlKTsKKworCQlwdWJsaWMgdmlydHVhbCB2b2lkIEdlbmVyYXRlSGVhZGVyQ29kZShNaWJIZWFkZXJGaWxlIG1pYkhlYWRlckZpbGUpCisJCXsKKwkJfQorCisJCS8vLyA8c3VtbWFyeT4KKwkJLy8vIENhbGxlZCBhZnRlciBub2RlIHN0cnVjdHVyZSBjcmVhdGlvbiBpcyBjb21wbGV0ZWQgYW5kIGJlZm9yZSBjb2RlIGlzIGNyZWF0ZWQuCisJCS8vLyBPZmZlcnMgdGhlIHBvc3NpYmlsaXR5IHRvIHBlcmZvcm0gb3BlcmF0aW9ucyBkZXBlbmRpbmcgb24gcHJvcGVydGllcy9zdWJub2Rlcy4KKwkJLy8vIElmIHRoZSBub2RlIHNoYWxsIGJlIHRyYW5zZm9ybWVkIHRvIGFub3RoZXIgbm9kZSgtdHlwZSkgdGhhbiB0aGUgb3duIGluc3RhbmNlCisJCS8vLyBtYXkgYmUgcmVwbGFjZWQgb24gcGFyZW50IG5vZGUgYnkgdGhlIHRyYW5zZm9ybWVkIGluc3RhbmNlLgorCQkvLy8gQ2FsbGluZyBzZXF1ZW5jZSBpcyBhbHdheXMgZnJvbSBsZWFmcyB1cCB0byByb290LiBTbyBhIHRyZWUgbm9kZSBjYW4gYXNzdW1lCisJCS8vLyB0aGF0IHRoZSBhbmFseXplIG1ldGhvZCB3YXMgYWxyZWFkeSBjYWxsZWQgb24gYWxsIGNoaWxkIG5vZGVzLgorCQkvLy8gRS5nLiBhIHRyZWUgbm9kZSBvbmx5IGhhcyBzY2FsYXIgc3ViIG5vZGVzIC0+IGl0IHRyYW5zZm9ybXMgaXRzZWxmIHRvIGEgc2NhbGFyIGFycmF5IG5vZGUKKwkJLy8vIDwvc3VtbWFyeT4KKwkJLy8vIDxyZXR1cm5zPlRoZSB0cmFuc2Zvcm1lZCBub2RlIG9yIG51bGwgaWYgbm90aGluZyBzaGFsbCBiZSBjaGFuZ2VkIGluIHBhcmVudCBzdHJ1Y3R1cmUuPC9yZXR1cm5zPgorCQlwdWJsaWMgdmlydHVhbCB2b2lkIEFuYWx5emUoKQorCQl7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhckFnZ3JlZ2F0aW9uTm9kZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wU2NhbGFyQWdncmVnYXRpb25Ob2RlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1YzU1OGMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhckFnZ3JlZ2F0aW9uTm9kZS5jcwpAQCAtMCwwICsxLDI5MyBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKK3VzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOwordXNpbmcgQ0NvZGVHZW5lcmF0aW9uOworCituYW1lc3BhY2UgTHdpcFNubXBDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBTbm1wU2NhbGFyQWdncmVnYXRpb25Ob2RlOiBTbm1wTm9kZQorCXsKKwkJcHJpdmF0ZSBib29sIGdldE1ldGhvZFJlcXVpcmVkICA9IGZhbHNlOworCQlwcml2YXRlIGJvb2wgdGVzdE1ldGhvZFJlcXVpcmVkID0gZmFsc2U7CisJCXByaXZhdGUgYm9vbCBzZXRNZXRob2RSZXF1aXJlZCAgPSBmYWxzZTsKKworCQlwcm90ZWN0ZWQgU25tcFNjYWxhckFnZ3JlZ2F0aW9uTm9kZShTbm1wVHJlZU5vZGUgcGFyZW50Tm9kZSkKKwkJCTogYmFzZShwYXJlbnROb2RlKQorCQl7CisJCX0KKworCQlwcm90ZWN0ZWQgdmlydHVhbCBzdHJpbmcgR2V0TWV0aG9kTmFtZQorCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5GdWxsTm9kZU5hbWUgKyBMd2lwRGVmcy5GbmN0U3VmZml4X0dldFZhbHVlOyB9CisJCX0KKworCQlwcm90ZWN0ZWQgYm9vbCBHZXRNZXRob2RSZXF1aXJlZAorCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5nZXRNZXRob2RSZXF1aXJlZDsgfQorCQl9CisKKwkJcHJvdGVjdGVkIHZpcnR1YWwgc3RyaW5nIFRlc3RNZXRob2ROYW1lCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLkZ1bGxOb2RlTmFtZSArIEx3aXBEZWZzLkZuY3RTdWZmaXhfU2V0VGVzdDsgfQorCQl9CisKKwkJcHJvdGVjdGVkIGJvb2wgVGVzdE1ldGhvZFJlcXVpcmVkCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLnRlc3RNZXRob2RSZXF1aXJlZDsgfQorCQl9CisKKwkJcHJvdGVjdGVkIHZpcnR1YWwgc3RyaW5nIFNldE1ldGhvZE5hbWUKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuRnVsbE5vZGVOYW1lICsgTHdpcERlZnMuRm5jdFN1ZmZpeF9TZXRWYWx1ZTsgfQorCQl9CisKKwkJcHJvdGVjdGVkIGJvb2wgU2V0TWV0aG9kUmVxdWlyZWQKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuc2V0TWV0aG9kUmVxdWlyZWQ7IH0KKwkJfQorCisJCXByb3RlY3RlZCBhYnN0cmFjdCBJRW51bWVyYWJsZTxTbm1wU2NhbGFyTm9kZT4gQWdncmVnYXRlZFNjYWxhck5vZGVzCisJCXsKKwkJCWdldDsKKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEFuYWx5emUoKQorCQl7CisJCQliYXNlLkFuYWx5emUoKTsKKworCQkJdGhpcy5nZXRNZXRob2RSZXF1aXJlZCAgPSBmYWxzZTsKKwkJCXRoaXMudGVzdE1ldGhvZFJlcXVpcmVkID0gZmFsc2U7CisJCQl0aGlzLnNldE1ldGhvZFJlcXVpcmVkICA9IGZhbHNlOworCisJCQlmb3JlYWNoIChTbm1wU2NhbGFyTm9kZSBzY2FsYXJOb2RlIGluIHRoaXMuQWdncmVnYXRlZFNjYWxhck5vZGVzKQorCQkJeworCQkJCWlmICgoc2NhbGFyTm9kZS5BY2Nlc3NNb2RlID09IFNubXBBY2Nlc3NNb2RlLlJlYWRPbmx5KSB8fCAoc2NhbGFyTm9kZS5BY2Nlc3NNb2RlID09IFNubXBBY2Nlc3NNb2RlLlJlYWRXcml0ZSkpCisJCQkJeworCQkJCQl0aGlzLmdldE1ldGhvZFJlcXVpcmVkID0gdHJ1ZTsKKwkJCQl9CisJCQkJaWYgKChzY2FsYXJOb2RlLkFjY2Vzc01vZGUgPT0gU25tcEFjY2Vzc01vZGUuV3JpdGVPbmx5KSB8fCAoc2NhbGFyTm9kZS5BY2Nlc3NNb2RlID09IFNubXBBY2Nlc3NNb2RlLlJlYWRXcml0ZSkpCisJCQkJeworCQkJCQl0aGlzLnRlc3RNZXRob2RSZXF1aXJlZCA9IHRydWU7CisJCQkJCXRoaXMuc2V0TWV0aG9kUmVxdWlyZWQgPSB0cnVlOworCQkJCX0KKworCQkJCWlmICh0aGlzLmdldE1ldGhvZFJlcXVpcmVkICYmIHRoaXMuc2V0TWV0aG9kUmVxdWlyZWQpCisJCQkJeworCQkJCQlicmVhazsKKwkJCQl9CisJCQl9CisJCX0KKworCQlwcm90ZWN0ZWQgdm9pZCBHZW5lcmF0ZUFnZ3JlZ2F0ZWRDb2RlKE1pYkNGaWxlIG1pYkZpbGUsIFZhcmlhYmxlVHlwZSBpbnN0YW5jZVR5cGUsIHN0cmluZyBzd2l0Y2hTZWxlY3RvciwgYm9vbCBnZW5lcmF0ZURlY2xhcmF0aW9ucyA9IHRydWUsIGJvb2wgZ2VuZXJhdGVJbXBsZW1lbnRhdGlvbnMgPSB0cnVlKQorCQl7CisJCQlpZiAodGhpcy5nZXRNZXRob2RSZXF1aXJlZCkKKwkJCXsKKwkJCQlGdW5jdGlvbkRlY2xhcmF0aW9uIGdldE1ldGhvZERlY2wgPSBuZXcgRnVuY3Rpb25EZWNsYXJhdGlvbih0aGlzLkdldE1ldGhvZE5hbWUsIGlzU3RhdGljOiB0cnVlKTsKKwkJCQlnZXRNZXRob2REZWNsLlBhcmFtZXRlci5BZGQoaW5zdGFuY2VUeXBlKTsKKwkJCQlnZXRNZXRob2REZWNsLlBhcmFtZXRlci5BZGQobmV3IFZhcmlhYmxlVHlwZSgidmFsdWUiLCBWYXJpYWJsZVR5cGUuVm9pZFN0cmluZywgIioiKSk7CisJCQkJZ2V0TWV0aG9kRGVjbC5SZXR1cm5UeXBlID0gbmV3IFZhcmlhYmxlVHlwZShudWxsLCBMd2lwRGVmcy5WdF9TMTYpOworCisJCQkJaWYgKGdlbmVyYXRlRGVjbGFyYXRpb25zKQorCQkJCXsKKwkJCQkJbWliRmlsZS5EZWNsYXJhdGlvbnMuQWRkKGdldE1ldGhvZERlY2wpOworCQkJCX0KKwkJCQlpZiAoZ2VuZXJhdGVJbXBsZW1lbnRhdGlvbnMpCisJCQkJeworCQkJCQlGdW5jdGlvbiBnZXRNZXRob2QgPSBGdW5jdGlvbi5Gcm9tRGVjbGFyYXRpb24oZ2V0TWV0aG9kRGVjbCk7CisJCQkJCUdlbmVyYXRlR2V0TWV0aG9kQ29kZShnZXRNZXRob2QsIHN3aXRjaFNlbGVjdG9yKTsKKwkJCQkJbWliRmlsZS5JbXBsZW1lbnRhdGlvbi5BZGQoZ2V0TWV0aG9kKTsKKwkJCQl9CisJCQl9CisJCisJCQlpZiAodGhpcy50ZXN0TWV0aG9kUmVxdWlyZWQpCisJCQl7CisJCQkJRnVuY3Rpb25EZWNsYXJhdGlvbiB0ZXN0TWV0aG9kRGVjbCA9IG5ldyBGdW5jdGlvbkRlY2xhcmF0aW9uKHRoaXMuVGVzdE1ldGhvZE5hbWUsIGlzU3RhdGljOiB0cnVlKTsKKwkJCQl0ZXN0TWV0aG9kRGVjbC5QYXJhbWV0ZXIuQWRkKGluc3RhbmNlVHlwZSk7CisJCQkJdGVzdE1ldGhvZERlY2wuUGFyYW1ldGVyLkFkZChuZXcgVmFyaWFibGVUeXBlKCJsZW4iLCBMd2lwRGVmcy5WdF9VMTYpKTsKKwkJCQl0ZXN0TWV0aG9kRGVjbC5QYXJhbWV0ZXIuQWRkKG5ldyBWYXJpYWJsZVR5cGUoInZhbHVlIiwgVmFyaWFibGVUeXBlLlZvaWRTdHJpbmcsICIqIikpOworCQkJCXRlc3RNZXRob2REZWNsLlJldHVyblR5cGUgPSBuZXcgVmFyaWFibGVUeXBlKG51bGwsIEx3aXBEZWZzLlZ0X1NubXBfZXJyKTsKKworCQkJCWlmIChnZW5lcmF0ZURlY2xhcmF0aW9ucykKKwkJCQl7CisJCQkJCW1pYkZpbGUuRGVjbGFyYXRpb25zLkFkZCh0ZXN0TWV0aG9kRGVjbCk7CisJCQkJfQorCQkJCWlmIChnZW5lcmF0ZUltcGxlbWVudGF0aW9ucykKKwkJCQl7CisJCQkJCUZ1bmN0aW9uIHRlc3RNZXRob2QgPSBGdW5jdGlvbi5Gcm9tRGVjbGFyYXRpb24odGVzdE1ldGhvZERlY2wpOworCQkJCQlHZW5lcmF0ZVRlc3RNZXRob2RDb2RlKHRlc3RNZXRob2QsIHN3aXRjaFNlbGVjdG9yKTsKKwkJCQkJbWliRmlsZS5JbXBsZW1lbnRhdGlvbi5BZGQodGVzdE1ldGhvZCk7CisJCQkJfQorCQkJfQorCisJCQlpZiAodGhpcy5zZXRNZXRob2RSZXF1aXJlZCkKKwkJCXsKKwkJCQlGdW5jdGlvbkRlY2xhcmF0aW9uIHNldE1ldGhvZERlY2wgPSBuZXcgRnVuY3Rpb25EZWNsYXJhdGlvbih0aGlzLlNldE1ldGhvZE5hbWUsIGlzU3RhdGljOiB0cnVlKTsKKwkJCQlzZXRNZXRob2REZWNsLlBhcmFtZXRlci5BZGQoaW5zdGFuY2VUeXBlKTsKKwkJCQlzZXRNZXRob2REZWNsLlBhcmFtZXRlci5BZGQobmV3IFZhcmlhYmxlVHlwZSgibGVuIiwgTHdpcERlZnMuVnRfVTE2KSk7CisJCQkJc2V0TWV0aG9kRGVjbC5QYXJhbWV0ZXIuQWRkKG5ldyBWYXJpYWJsZVR5cGUoInZhbHVlIiwgVmFyaWFibGVUeXBlLlZvaWRTdHJpbmcsICIqIikpOworCQkJCXNldE1ldGhvZERlY2wuUmV0dXJuVHlwZSA9IG5ldyBWYXJpYWJsZVR5cGUobnVsbCwgTHdpcERlZnMuVnRfU25tcF9lcnIpOworCQkJCQorCQkJCWlmIChnZW5lcmF0ZURlY2xhcmF0aW9ucykKKwkJCQl7CisJCQkJCW1pYkZpbGUuRGVjbGFyYXRpb25zLkFkZChzZXRNZXRob2REZWNsKTsKKwkJCQl9CisJCQkJaWYgKGdlbmVyYXRlSW1wbGVtZW50YXRpb25zKQorCQkJCXsKKwkJCQkJRnVuY3Rpb24gc2V0TWV0aG9kID0gRnVuY3Rpb24uRnJvbURlY2xhcmF0aW9uKHNldE1ldGhvZERlY2wpOworCQkJCQlHZW5lcmF0ZVNldE1ldGhvZENvZGUoc2V0TWV0aG9kLCBzd2l0Y2hTZWxlY3Rvcik7CisJCQkJCW1pYkZpbGUuSW1wbGVtZW50YXRpb24uQWRkKHNldE1ldGhvZCk7CisJCQkJfQorCQkJfQorCQl9CisKKwkJcHJvdGVjdGVkIHZpcnR1YWwgdm9pZCBHZW5lcmF0ZUdldE1ldGhvZENvZGUoRnVuY3Rpb24gZ2V0TWV0aG9kLCBzdHJpbmcgc3dpdGNoU2VsZWN0b3IpCisJCXsKKwkJCVZhcmlhYmxlRGVjbGFyYXRpb24gcmV0dXJuVmFsdWUgPSBuZXcgVmFyaWFibGVEZWNsYXJhdGlvbigoVmFyaWFibGVUeXBlKWdldE1ldGhvZC5SZXR1cm5UeXBlLkNsb25lKCkpOworCQkJcmV0dXJuVmFsdWUuVHlwZS5OYW1lID0gInZhbHVlX2xlbiI7CisJCQlnZXRNZXRob2QuRGVjbGFyYXRpb25zLkFkZChyZXR1cm5WYWx1ZSk7CisJCQlTd2l0Y2ggc3cgPSBuZXcgU3dpdGNoKHN3aXRjaFNlbGVjdG9yKTsKKworCQkJYm9vbCB2YWx1ZVZhclVzZWQgPSBmYWxzZTsKKworCQkJZm9yZWFjaCAoU25tcFNjYWxhck5vZGUgc2NhbGFyTm9kZSBpbiB0aGlzLkFnZ3JlZ2F0ZWRTY2FsYXJOb2RlcykKKwkJCXsKKwkJCQlpZiAoKHNjYWxhck5vZGUuQWNjZXNzTW9kZSA9PSBTbm1wQWNjZXNzTW9kZS5SZWFkT25seSkgfHwgKHNjYWxhck5vZGUuQWNjZXNzTW9kZSA9PSBTbm1wQWNjZXNzTW9kZS5SZWFkV3JpdGUpKQorCQkJCXsKKwkJCQkJU3dpdGNoQ2FzZSBzYyA9IG5ldyBTd2l0Y2hDYXNlKHNjYWxhck5vZGUuT2lkLlRvU3RyaW5nKEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUpKTsKKwkJCQkJc2MuRGVjbGFyYXRpb25zLkFkZChuZXcgQ29tbWVudChzY2FsYXJOb2RlLk5hbWUsIHNpbmdsZUxpbmU6IHRydWUpKTsKKworCQkJCQlzY2FsYXJOb2RlLkdlbmVyYXRlR2V0TWV0aG9kQ29kZShzYywgZ2V0TWV0aG9kLlBhcmFtZXRlclsxXS5OYW1lLCByZWYgdmFsdWVWYXJVc2VkLCByZXR1cm5WYWx1ZS5UeXBlLk5hbWUpOworCisJCQkJCXN3LlN3aXRjaGVzLkFkZChzYyk7CisJCQkJfQorCQkJfQorCisJCQlTd2l0Y2hDYXNlIHNjZCA9IFN3aXRjaENhc2UuR2VuZXJhdGVEZWZhdWx0KCk7CisJCQlzY2QuQWRkQ29kZUZvcm1hdCgiTFdJUF9ERUJVR0YoU05NUF9NSUJfREVCVUcsKFwiezB9KCk6IHVua25vd24gaWQ6ICVcIlMzMl9GXCJcXG5cIiwgezF9KSk7IiwgZ2V0TWV0aG9kLk5hbWUsIHN3aXRjaFNlbGVjdG9yKTsKKwkJCXNjZC5BZGRDb2RlRm9ybWF0KCJ7MH0gPSAwOyIsIHJldHVyblZhbHVlLlR5cGUuTmFtZSk7CisJCQlzdy5Td2l0Y2hlcy5BZGQoc2NkKTsKKworCQkJaWYgKCF2YWx1ZVZhclVzZWQpCisJCQl7CisJCQkJZ2V0TWV0aG9kLkFkZENvZGVGb3JtYXQoIkxXSVBfVU5VU0VEX0FSRyh7MH0pOyIsIGdldE1ldGhvZC5QYXJhbWV0ZXJbMV0uTmFtZSk7CisJCQl9CisKKwkJCWdldE1ldGhvZC5BZGRFbGVtZW50KHN3KTsKKworCQkJZ2V0TWV0aG9kLkFkZENvZGVGb3JtYXQoInJldHVybiB7MH07IiwgcmV0dXJuVmFsdWUuVHlwZS5OYW1lKTsKKwkJfQorCisJCXByb3RlY3RlZCB2aXJ0dWFsIHZvaWQgR2VuZXJhdGVUZXN0TWV0aG9kQ29kZShGdW5jdGlvbiB0ZXN0TWV0aG9kLCBzdHJpbmcgc3dpdGNoU2VsZWN0b3IpCisJCXsKKwkJCVZhcmlhYmxlRGVjbGFyYXRpb24gcmV0dXJuVmFsdWUgPSBuZXcgVmFyaWFibGVEZWNsYXJhdGlvbigoVmFyaWFibGVUeXBlKXRlc3RNZXRob2QuUmV0dXJuVHlwZS5DbG9uZSgpLCBMd2lwRGVmcy5EZWZfRXJyb3JDb2RlX1dyb25nVmFsdWUpOworCQkJcmV0dXJuVmFsdWUuVHlwZS5OYW1lID0gImVyciI7CisJCQl0ZXN0TWV0aG9kLkRlY2xhcmF0aW9ucy5BZGQocmV0dXJuVmFsdWUpOworCQkJU3dpdGNoIHN3ID0gbmV3IFN3aXRjaChzd2l0Y2hTZWxlY3Rvcik7CisKKwkJCWJvb2wgdmFsdWVWYXJVc2VkID0gZmFsc2U7CisJCQlib29sIGxlblZhclVzZWQgPSBmYWxzZTsKKworCQkJZm9yZWFjaCAoU25tcFNjYWxhck5vZGUgc2NhbGFyTm9kZSBpbiB0aGlzLkFnZ3JlZ2F0ZWRTY2FsYXJOb2RlcykKKwkJCXsKKwkJCQlpZiAoKHNjYWxhck5vZGUuQWNjZXNzTW9kZSA9PSBTbm1wQWNjZXNzTW9kZS5Xcml0ZU9ubHkpIHx8IChzY2FsYXJOb2RlLkFjY2Vzc01vZGUgPT0gU25tcEFjY2Vzc01vZGUuUmVhZFdyaXRlKSkKKwkJCQl7CisJCQkJCVN3aXRjaENhc2Ugc2MgPSBuZXcgU3dpdGNoQ2FzZShzY2FsYXJOb2RlLk9pZC5Ub1N0cmluZyhDdWx0dXJlSW5mby5JbnZhcmlhbnRDdWx0dXJlKSk7CisJCQkJCXNjLkRlY2xhcmF0aW9ucy5BZGQobmV3IENvbW1lbnQoc2NhbGFyTm9kZS5OYW1lLCBzaW5nbGVMaW5lOiB0cnVlKSk7CisKKwkJCQkJc2NhbGFyTm9kZS5HZW5lcmF0ZVRlc3RNZXRob2RDb2RlKHNjLCB0ZXN0TWV0aG9kLlBhcmFtZXRlclsyXS5OYW1lLCByZWYgdmFsdWVWYXJVc2VkLCB0ZXN0TWV0aG9kLlBhcmFtZXRlclsxXS5OYW1lLCByZWYgbGVuVmFyVXNlZCwgcmV0dXJuVmFsdWUuVHlwZS5OYW1lKTsKKworCQkJCQlzdy5Td2l0Y2hlcy5BZGQoc2MpOworCQkJCX0KKwkJCX0KKworCQkJU3dpdGNoQ2FzZSBzY2QgPSBTd2l0Y2hDYXNlLkdlbmVyYXRlRGVmYXVsdCgpOworCQkJc2NkLkFkZENvZGVGb3JtYXQoIkxXSVBfREVCVUdGKFNOTVBfTUlCX0RFQlVHLChcInswfSgpOiB1bmtub3duIGlkOiAlXCJTMzJfRlwiXFxuXCIsIHsxfSkpOyIsIHRlc3RNZXRob2QuTmFtZSwgc3dpdGNoU2VsZWN0b3IpOworCQkJc3cuU3dpdGNoZXMuQWRkKHNjZCk7CisKKwkJCWlmICghdmFsdWVWYXJVc2VkKQorCQkJeworCQkJCXRlc3RNZXRob2QuQWRkQ29kZUZvcm1hdCgiTFdJUF9VTlVTRURfQVJHKHswfSk7IiwgdGVzdE1ldGhvZC5QYXJhbWV0ZXJbMl0uTmFtZSk7CisJCQl9CisJCQlpZiAoIWxlblZhclVzZWQpCisJCQl7CisJCQkJdGVzdE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCB0ZXN0TWV0aG9kLlBhcmFtZXRlclsxXS5OYW1lKTsKKwkJCX0KKworCQkJdGVzdE1ldGhvZC5BZGRFbGVtZW50KHN3KTsKKworCQkJdGVzdE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJyZXR1cm4gezB9OyIsIHJldHVyblZhbHVlLlR5cGUuTmFtZSk7CisJCX0KKworCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEdlbmVyYXRlU2V0TWV0aG9kQ29kZShGdW5jdGlvbiBzZXRNZXRob2QsIHN0cmluZyBzd2l0Y2hTZWxlY3RvcikKKwkJeworCQkJVmFyaWFibGVEZWNsYXJhdGlvbiByZXR1cm5WYWx1ZSA9IG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKChWYXJpYWJsZVR5cGUpc2V0TWV0aG9kLlJldHVyblR5cGUuQ2xvbmUoKSwgTHdpcERlZnMuRGVmX0Vycm9yQ29kZV9Payk7CisJCQlyZXR1cm5WYWx1ZS5UeXBlLk5hbWUgPSAiZXJyIjsKKwkJCXNldE1ldGhvZC5EZWNsYXJhdGlvbnMuQWRkKHJldHVyblZhbHVlKTsKKwkJCVN3aXRjaCBzdyA9IG5ldyBTd2l0Y2goc3dpdGNoU2VsZWN0b3IpOworCisJCQlib29sIHZhbHVlVmFyVXNlZCA9IGZhbHNlOworCQkJYm9vbCBsZW5WYXJVc2VkID0gZmFsc2U7CisJCQkKKwkJCWZvcmVhY2ggKFNubXBTY2FsYXJOb2RlIHNjYWxhck5vZGUgaW4gdGhpcy5BZ2dyZWdhdGVkU2NhbGFyTm9kZXMpCisJCQl7CisJCQkJaWYgKChzY2FsYXJOb2RlLkFjY2Vzc01vZGUgPT0gU25tcEFjY2Vzc01vZGUuV3JpdGVPbmx5KSB8fCAoc2NhbGFyTm9kZS5BY2Nlc3NNb2RlID09IFNubXBBY2Nlc3NNb2RlLlJlYWRXcml0ZSkpCisJCQkJeworCQkJCQlTd2l0Y2hDYXNlIHNjID0gbmV3IFN3aXRjaENhc2Uoc2NhbGFyTm9kZS5PaWQuVG9TdHJpbmcoQ3VsdHVyZUluZm8uSW52YXJpYW50Q3VsdHVyZSkpOworCQkJCQlzYy5EZWNsYXJhdGlvbnMuQWRkKG5ldyBDb21tZW50KHNjYWxhck5vZGUuTmFtZSwgc2luZ2xlTGluZTogdHJ1ZSkpOworCisJCQkJCXNjYWxhck5vZGUuR2VuZXJhdGVTZXRNZXRob2RDb2RlKHNjLCBzZXRNZXRob2QuUGFyYW1ldGVyWzJdLk5hbWUsIHJlZiB2YWx1ZVZhclVzZWQsIHNldE1ldGhvZC5QYXJhbWV0ZXJbMV0uTmFtZSwgcmVmIGxlblZhclVzZWQsIHJldHVyblZhbHVlLlR5cGUuTmFtZSk7CisKKwkJCQkJc3cuU3dpdGNoZXMuQWRkKHNjKTsKKwkJCQl9CisJCQl9CisKKwkJCVN3aXRjaENhc2Ugc2NkID0gU3dpdGNoQ2FzZS5HZW5lcmF0ZURlZmF1bHQoKTsKKwkJCXNjZC5BZGRDb2RlRm9ybWF0KCJMV0lQX0RFQlVHRihTTk1QX01JQl9ERUJVRywoXCJ7MH0oKTogdW5rbm93biBpZDogJVwiUzMyX0ZcIlxcblwiLCB7MX0pKTsiLCBzZXRNZXRob2QuTmFtZSwgc3dpdGNoU2VsZWN0b3IpOworCQkJc3cuU3dpdGNoZXMuQWRkKHNjZCk7CisKKwkJCWlmICghdmFsdWVWYXJVc2VkKQorCQkJeworCQkJCXNldE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCBzZXRNZXRob2QuUGFyYW1ldGVyWzJdLk5hbWUpOworCQkJfQorCQkJaWYgKCFsZW5WYXJVc2VkKQorCQkJeworCQkJCXNldE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCBzZXRNZXRob2QuUGFyYW1ldGVyWzFdLk5hbWUpOworCQkJfQorCisJCQlzZXRNZXRob2QuQWRkRWxlbWVudChzdyk7CisKKwkJCXNldE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJyZXR1cm4gezB9OyIsIHJldHVyblZhbHVlLlR5cGUuTmFtZSk7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhckFycmF5Tm9kZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wU2NhbGFyQXJyYXlOb2RlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4NmZiYjkKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhckFycmF5Tm9kZS5jcwpAQCAtMCwwICsxLDEwNSBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCit1c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKK3VzaW5nIFN5c3RlbS5UZXh0OwordXNpbmcgQ0NvZGVHZW5lcmF0aW9uOworCituYW1lc3BhY2UgTHdpcFNubXBDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBTbm1wU2NhbGFyQXJyYXlOb2RlIDogU25tcFNjYWxhckFnZ3JlZ2F0aW9uTm9kZQorCXsKKwkJcHJpdmF0ZSByZWFkb25seSBMaXN0PFNubXBTY2FsYXJOb2RlPiBzY2FsYXJOb2RlczsKKworCQlwdWJsaWMgU25tcFNjYWxhckFycmF5Tm9kZShMaXN0PFNubXBTY2FsYXJOb2RlPiBzY2FsYXJOb2RlcywgU25tcFRyZWVOb2RlIHBhcmVudE5vZGUpCisJCQk6IGJhc2UocGFyZW50Tm9kZSkKKwkJeworCQkJdGhpcy5zY2FsYXJOb2RlcyA9IHNjYWxhck5vZGVzOworCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHN0cmluZyBGdWxsTm9kZU5hbWUKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuTmFtZS5Ub0xvd2VySW52YXJpYW50KCkgKyAiX3NjYWxhcnMiOyB9CisJCX0KKworCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgSUVudW1lcmFibGU8U25tcFNjYWxhck5vZGU+IEFnZ3JlZ2F0ZWRTY2FsYXJOb2RlcworCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5zY2FsYXJOb2RlczsgfQorCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVDb2RlKE1pYkNGaWxlIG1pYkZpbGUpCisJCXsKKwkJCVZhcmlhYmxlVHlwZSBpbnN0YW5jZVR5cGUgPSBuZXcgVmFyaWFibGVUeXBlKCJub2RlIiwgTHdpcERlZnMuVnRfU3RTY2FsYXJBcnJheU5vZGVEZWYsICIqIiwgQ29uc3RUeXBlLlZhbHVlKTsKKwkJCUdlbmVyYXRlQWdncmVnYXRlZENvZGUoCisJCQkJbWliRmlsZSwKKwkJCQlpbnN0YW5jZVR5cGUsCisJCQkJaW5zdGFuY2VUeXBlLk5hbWUgKyAiLT5vaWQiKTsKKworCisJCQkvLyBjcmVhdGUgYW5kIGFkZCBub2RlIGRlZmluaXRpb25zCisJCQlTdHJpbmdCdWlsZGVyIG5vZGVEZWZzID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKwkJCWZvcmVhY2ggKFNubXBTY2FsYXJOb2RlIHNjYWxhck5vZGUgaW4gdGhpcy5zY2FsYXJOb2RlcykKKwkJCXsKKwkJCQlub2RlRGVmcy5BcHBlbmRGb3JtYXQoIiAge3t7MH0sIHsxfSwgezJ9fX0sIC8qIHszfSAqLyBcbiIsCisJCQkJCXNjYWxhck5vZGUuT2lkLAorCQkJCQlMd2lwRGVmcy5HZXRBc24xRGVmRm9yU25tcERhdGFUeXBlKHNjYWxhck5vZGUuRGF0YVR5cGUpLAorCQkJCQlMd2lwRGVmcy5HZXRMd2lwRGVmRm9yU25tcEFjY2Vzc01vZGUoc2NhbGFyTm9kZS5BY2Nlc3NNb2RlKSwKKwkJCQkJc2NhbGFyTm9kZS5OYW1lKTsKKwkJCX0KKwkJCWlmIChub2RlRGVmcy5MZW5ndGggPiAwKQorCQkJCW5vZGVEZWZzLkxlbmd0aC0tOworCisJCQlWYXJpYWJsZURlY2xhcmF0aW9uIG5vZGVEZWZzRGVjbCA9IG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKAorCQkJCW5ldyBWYXJpYWJsZVR5cGUodGhpcy5GdWxsTm9kZU5hbWUgKyAiX25vZGVzIiwgTHdpcERlZnMuVnRfU3RTY2FsYXJBcnJheU5vZGVEZWYsIG51bGwsIENvbnN0VHlwZS5WYWx1ZSwgU3RyaW5nLkVtcHR5KSwKKwkJCQkie1xuIiArIG5vZGVEZWZzICsgIlxufSIgLAorCQkJCWlzU3RhdGljOiB0cnVlKTsKKworCQkJbWliRmlsZS5EZWNsYXJhdGlvbnMuQWRkKG5vZGVEZWZzRGVjbCk7CisKKworCQkJLy8gY3JlYXRlIGFuZCBhZGQgbm9kZSBkZWNsYXJhdGlvbgorCQkJc3RyaW5nIG5vZGVJbml0aWFsaXphdGlvbiA9IFN0cmluZy5Gb3JtYXQoIlNOTVBfU0NBTEFSX0NSRUFURV9BUlJBWV9OT0RFKHswfSwgezF9LCB7Mn0sIHszfSwgezR9KSIsCisJCQkJdGhpcy5PaWQsCisJCQkJbm9kZURlZnNEZWNsLlR5cGUuTmFtZSwKKwkJCQkodGhpcy5HZXRNZXRob2RSZXF1aXJlZCkgPyB0aGlzLkdldE1ldGhvZE5hbWUgOiBMd2lwRGVmcy5OdWxsLAorCQkJCSh0aGlzLlRlc3RNZXRob2RSZXF1aXJlZCkgPyB0aGlzLlRlc3RNZXRob2ROYW1lIDogTHdpcERlZnMuTnVsbCwKKwkJCQkodGhpcy5TZXRNZXRob2RSZXF1aXJlZCkgPyB0aGlzLlNldE1ldGhvZE5hbWUgOiBMd2lwRGVmcy5OdWxsCisJCQkJKTsKKworCQkJbWliRmlsZS5EZWNsYXJhdGlvbnMuQWRkKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKAorCQkJCW5ldyBWYXJpYWJsZVR5cGUodGhpcy5GdWxsTm9kZU5hbWUsIEx3aXBEZWZzLlZ0X1N0U2NhbGFyQXJyYXlOb2RlLCBudWxsLCBDb25zdFR5cGUuVmFsdWUpLAorCQkJCW5vZGVJbml0aWFsaXphdGlvbiwKKwkJCQlpc1N0YXRpYzogdHJ1ZSkpOworCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1NubXBTY2FsYXJOb2RlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1NubXBTY2FsYXJOb2RlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiZTU0YzQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhck5vZGUuY3MKQEAgLTAsMCArMSwzOTUgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cit1c2luZyBDQ29kZUdlbmVyYXRpb247CisKK25hbWVzcGFjZSBMd2lwU25tcENvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIFNubXBTY2FsYXJOb2RlOiBTbm1wTm9kZQorCXsKKwkJcHJvdGVjdGVkIGNvbnN0IHN0cmluZyBMb2NhbFZhbHVlTmFtZSA9ICJ2IjsgLy8gbmFtZSBvZiAoY2FzdGVkKSBsb2NhbCB2YWx1ZSB2YXJpYWJsZQorCisJCXByaXZhdGUgU25tcERhdGFUeXBlIGRhdGFUeXBlOworCQlwcml2YXRlIFNubXBBY2Nlc3NNb2RlIGFjY2Vzc01vZGU7CisJCXByaXZhdGUgcmVhZG9ubHkgTGlzdDxJUmVzdHJpY3Rpb24+IHJlc3RyaWN0aW9ucyA9IG5ldyBMaXN0PElSZXN0cmljdGlvbj4oKTsKKworCQlwcml2YXRlIGJvb2wgICB1c2VFeHRlcm5hbE1ldGhvZHMgPSBmYWxzZTsKKwkJcHJpdmF0ZSBzdHJpbmcgZXh0ZXJuYWxHZXRNZXRob2Q7CisJCXByaXZhdGUgc3RyaW5nIGV4dGVybmFsVGVzdE1ldGhvZDsKKwkJcHJpdmF0ZSBzdHJpbmcgZXh0ZXJuYWxTZXRNZXRob2Q7CisKKworCQlwdWJsaWMgU25tcFNjYWxhck5vZGUoU25tcFRyZWVOb2RlIHBhcmVudE5vZGUpCisJCQk6IGJhc2UocGFyZW50Tm9kZSkKKwkJeworCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHN0cmluZyBGdWxsTm9kZU5hbWUKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuTmFtZS5Ub0xvd2VySW52YXJpYW50KCkgKyAiX3NjYWxhciI7IH0KKwkJfQorCisJCXB1YmxpYyBTbm1wRGF0YVR5cGUgRGF0YVR5cGUKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuZGF0YVR5cGU7IH0KKwkJCXNldCB7IHRoaXMuZGF0YVR5cGUgPSB2YWx1ZTsgfQorCQl9CisKKwkJcHVibGljIExpc3Q8SVJlc3RyaWN0aW9uPiBSZXN0cmljdGlvbnMKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMucmVzdHJpY3Rpb25zOyB9CisJCX0KKworCQlwdWJsaWMgU25tcEFjY2Vzc01vZGUgQWNjZXNzTW9kZQorCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5hY2Nlc3NNb2RlOyB9CisJCQlzZXQgeyB0aGlzLmFjY2Vzc01vZGUgPSB2YWx1ZTsgfQorCQl9CisKKwkJcHVibGljIHZpcnR1YWwgc3RyaW5nIEZpeGVkVmFsdWVMZW5ndGgKKwkJeworCQkJZ2V0IHsgcmV0dXJuIG51bGw7IH0KKwkJfQorCisJCS8vLyA8c3VtbWFyeT4KKwkJLy8vIElmIHNjYWxhciBpcyB1c2VkIGFzIGEgdGFibGUgaW5kZXggaXRzIHZhbHVlIGJlY29tZXMgcGFydCBvZiB0aGUgT0lELiBUaGlzIHZhbHVlIHJldHVybnMgaG93IG1hbnkgT0lEIHBhcnRzIGFyZSByZXF1aXJlZCB0byByZXByZXNlbnQgdGhpcyB2YWx1ZS4KKwkJLy8vIDwvc3VtbWFyeT4KKwkJcHVibGljIHZpcnR1YWwgaW50IE9pZFJlcHJlc2VudGF0aW9uTGVuCisJCXsKKwkJCWdldCB7IHJldHVybiAtMTsgfQorCQl9CisKKwkJcHVibGljIGJvb2wgVXNlRXh0ZXJuYWxNZXRob2RzCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLnVzZUV4dGVybmFsTWV0aG9kczsgfQorCQkJc2V0IHsgdGhpcy51c2VFeHRlcm5hbE1ldGhvZHMgPSB2YWx1ZTsgfQorCQl9CisKKwkJcHVibGljIHN0cmluZyBFeHRlcm5hbEdldE1ldGhvZAorCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5leHRlcm5hbEdldE1ldGhvZDsgfQorCQkJc2V0IHsgdGhpcy5leHRlcm5hbEdldE1ldGhvZCA9IHZhbHVlOyB9CisJCX0KKwkJcHVibGljIHN0cmluZyBFeHRlcm5hbFRlc3RNZXRob2QKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuZXh0ZXJuYWxUZXN0TWV0aG9kOyB9CisJCQlzZXQgeyB0aGlzLmV4dGVybmFsVGVzdE1ldGhvZCA9IHZhbHVlOyB9CisJCX0KKwkJcHVibGljIHN0cmluZyBFeHRlcm5hbFNldE1ldGhvZAorCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5leHRlcm5hbFNldE1ldGhvZDsgfQorCQkJc2V0IHsgdGhpcy5leHRlcm5hbFNldE1ldGhvZCA9IHZhbHVlOyB9CisJCX0KKworCQlwdWJsaWMgb3ZlcnJpZGUgdm9pZCBHZW5lcmF0ZUNvZGUoTWliQ0ZpbGUgbWliRmlsZSkKKwkJeworCQkJc3RyaW5nIGdldE1ldGhvZE5hbWU7CisJCQlzdHJpbmcgdGVzdE1ldGhvZE5hbWU7CisJCQlzdHJpbmcgc2V0TWV0aG9kTmFtZTsKKworCQkJaWYgKHRoaXMudXNlRXh0ZXJuYWxNZXRob2RzKQorCQkJeworCQkJCWdldE1ldGhvZE5hbWUgID0gdGhpcy5leHRlcm5hbEdldE1ldGhvZDsKKwkJCQl0ZXN0TWV0aG9kTmFtZSA9IHRoaXMuZXh0ZXJuYWxUZXN0TWV0aG9kOworCQkJCXNldE1ldGhvZE5hbWUgID0gdGhpcy5leHRlcm5hbFNldE1ldGhvZDsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlnZXRNZXRob2ROYW1lICA9IEx3aXBEZWZzLk51bGw7CisJCQkJdGVzdE1ldGhvZE5hbWUgPSBMd2lwRGVmcy5OdWxsOworCQkJCXNldE1ldGhvZE5hbWUgID0gTHdpcERlZnMuTnVsbDsKKwkJCQkKKwkJCQlpZiAoKHRoaXMuYWNjZXNzTW9kZSA9PSBTbm1wQWNjZXNzTW9kZS5SZWFkV3JpdGUpIHx8ICh0aGlzLmFjY2Vzc01vZGUgPT0gU25tcEFjY2Vzc01vZGUuUmVhZE9ubHkpKQorCQkJCXsKKwkJCQkJRnVuY3Rpb25EZWNsYXJhdGlvbiAgZ2V0TWV0aG9kRGVjbCA9IG5ldyBGdW5jdGlvbkRlY2xhcmF0aW9uKHRoaXMuTmFtZSArIEx3aXBEZWZzLkZuY3RTdWZmaXhfR2V0VmFsdWUsIGlzU3RhdGljOiB0cnVlKTsKKwkJCQkJZ2V0TWV0aG9kRGVjbC5QYXJhbWV0ZXIuQWRkKG5ldyBWYXJpYWJsZVR5cGUoImluc3RhbmNlIiwgTHdpcERlZnMuVnRfU3ROb2RlSW5zdGFuY2UsICIqIikpOworCQkJCQlnZXRNZXRob2REZWNsLlBhcmFtZXRlci5BZGQobmV3IFZhcmlhYmxlVHlwZSgidmFsdWUiLCBWYXJpYWJsZVR5cGUuVm9pZFN0cmluZywgIioiKSk7CisJCQkJCWdldE1ldGhvZERlY2wuUmV0dXJuVHlwZSA9IG5ldyBWYXJpYWJsZVR5cGUobnVsbCwgTHdpcERlZnMuVnRfUzE2KTsKKwkJCQkJbWliRmlsZS5EZWNsYXJhdGlvbnMuQWRkKGdldE1ldGhvZERlY2wpOworCisJCQkJCUZ1bmN0aW9uIGdldE1ldGhvZCA9IEZ1bmN0aW9uLkZyb21EZWNsYXJhdGlvbihnZXRNZXRob2REZWNsKTsKKwkJCQkJZ2V0TWV0aG9kTmFtZSA9IGdldE1ldGhvZC5OYW1lOworCisJCQkJCVZhcmlhYmxlRGVjbGFyYXRpb24gcmV0dXJuVmFsdWUgPSBuZXcgVmFyaWFibGVEZWNsYXJhdGlvbigoVmFyaWFibGVUeXBlKWdldE1ldGhvZC5SZXR1cm5UeXBlLkNsb25lKCkpOworCQkJCQlyZXR1cm5WYWx1ZS5UeXBlLk5hbWUgPSAidmFsdWVfbGVuIjsKKwkJCQkJZ2V0TWV0aG9kLkRlY2xhcmF0aW9ucy5BZGQocmV0dXJuVmFsdWUpOworCQkJCQlnZXRNZXRob2QuQWRkQ29kZUZvcm1hdCgiTFdJUF9VTlVTRURfQVJHKHswfSk7IiwgZ2V0TWV0aG9kLlBhcmFtZXRlclswXS5OYW1lKTsKKworCQkJCQlib29sIHZhbHVlVmFyVXNlZCA9IGZhbHNlOworCQkJCQlHZW5lcmF0ZUdldE1ldGhvZENvZGUoZ2V0TWV0aG9kLCBnZXRNZXRob2QuUGFyYW1ldGVyWzFdLk5hbWUsIHJlZiB2YWx1ZVZhclVzZWQsIHJldHVyblZhbHVlLlR5cGUuTmFtZSk7CisJCQkJCWlmICghdmFsdWVWYXJVc2VkKQorCQkJCQl7CisJCQkJCQlnZXRNZXRob2QuQWRkQ29kZUZvcm1hdCgiTFdJUF9VTlVTRURfQVJHKHswfSk7IiwgZ2V0TWV0aG9kLlBhcmFtZXRlclsxXS5OYW1lKTsKKwkJCQkJfQorCisJCQkJCWdldE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJyZXR1cm4gezB9OyIsIHJldHVyblZhbHVlLlR5cGUuTmFtZSk7CisKKwkJCQkJbWliRmlsZS5JbXBsZW1lbnRhdGlvbi5BZGQoZ2V0TWV0aG9kKTsKKwkJCQl9CisKKwkJCQlpZiAoKHRoaXMuYWNjZXNzTW9kZSA9PSBTbm1wQWNjZXNzTW9kZS5SZWFkV3JpdGUpIHx8ICh0aGlzLmFjY2Vzc01vZGUgPT0gU25tcEFjY2Vzc01vZGUuV3JpdGVPbmx5KSkKKwkJCQl7CisJCQkJCWJvb2wgdmFsdWVWYXJVc2VkOworCQkJCQlib29sIGxlblZhclVzZWQ7CisJCQkJCVZhcmlhYmxlRGVjbGFyYXRpb24gcmV0dXJuVmFsdWU7CisKKwkJCQkJaWYgKHRoaXMucmVzdHJpY3Rpb25zLkNvdW50ID4gMCkKKwkJCQkJeworCQkJCQkJRnVuY3Rpb25EZWNsYXJhdGlvbiB0ZXN0TWV0aG9kRGVjbCA9IG5ldyBGdW5jdGlvbkRlY2xhcmF0aW9uKHRoaXMuTmFtZSArIEx3aXBEZWZzLkZuY3RTdWZmaXhfU2V0VGVzdCwgaXNTdGF0aWM6IHRydWUpOworCQkJCQkJdGVzdE1ldGhvZERlY2wuUGFyYW1ldGVyLkFkZChuZXcgVmFyaWFibGVUeXBlKCJpbnN0YW5jZSIsIEx3aXBEZWZzLlZ0X1N0Tm9kZUluc3RhbmNlLCAiKiIpKTsKKwkJCQkJCXRlc3RNZXRob2REZWNsLlBhcmFtZXRlci5BZGQobmV3IFZhcmlhYmxlVHlwZSgibGVuIiwgTHdpcERlZnMuVnRfVTE2KSk7CisJCQkJCQl0ZXN0TWV0aG9kRGVjbC5QYXJhbWV0ZXIuQWRkKG5ldyBWYXJpYWJsZVR5cGUoInZhbHVlIiwgVmFyaWFibGVUeXBlLlZvaWRTdHJpbmcsICIqIikpOworCQkJCQkJdGVzdE1ldGhvZERlY2wuUmV0dXJuVHlwZSA9IG5ldyBWYXJpYWJsZVR5cGUobnVsbCwgTHdpcERlZnMuVnRfU25tcF9lcnIpOworCQkJCQkJbWliRmlsZS5EZWNsYXJhdGlvbnMuQWRkKHRlc3RNZXRob2REZWNsKTsKKworCQkJCQkJRnVuY3Rpb24gdGVzdE1ldGhvZCA9IEZ1bmN0aW9uLkZyb21EZWNsYXJhdGlvbih0ZXN0TWV0aG9kRGVjbCk7CisJCQkJCQl0ZXN0TWV0aG9kTmFtZSA9IHRlc3RNZXRob2QuTmFtZTsKKworCQkJCQkJcmV0dXJuVmFsdWUgPSBuZXcgVmFyaWFibGVEZWNsYXJhdGlvbigoVmFyaWFibGVUeXBlKXRlc3RNZXRob2QuUmV0dXJuVHlwZS5DbG9uZSgpLCBMd2lwRGVmcy5EZWZfRXJyb3JDb2RlX1dyb25nVmFsdWUpOworCQkJCQkJcmV0dXJuVmFsdWUuVHlwZS5OYW1lID0gImVyciI7CisJCQkJCQl0ZXN0TWV0aG9kLkRlY2xhcmF0aW9ucy5BZGQocmV0dXJuVmFsdWUpOworCQkJCQkJdGVzdE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCB0ZXN0TWV0aG9kLlBhcmFtZXRlclswXS5OYW1lKTsKKworCQkJCQkJdmFsdWVWYXJVc2VkID0gZmFsc2U7CisJCQkJCQlsZW5WYXJVc2VkID0gZmFsc2U7CisKKwkJCQkJCUdlbmVyYXRlVGVzdE1ldGhvZENvZGUodGVzdE1ldGhvZCwgdGVzdE1ldGhvZC5QYXJhbWV0ZXJbMl0uTmFtZSwgcmVmIHZhbHVlVmFyVXNlZCwgdGVzdE1ldGhvZC5QYXJhbWV0ZXJbMV0uTmFtZSwgcmVmIGxlblZhclVzZWQsIHJldHVyblZhbHVlLlR5cGUuTmFtZSk7CisKKwkJCQkJCWlmICghdmFsdWVWYXJVc2VkKQorCQkJCQkJeworCQkJCQkJCXRlc3RNZXRob2QuQWRkQ29kZUZvcm1hdCgiTFdJUF9VTlVTRURfQVJHKHswfSk7IiwgdGVzdE1ldGhvZC5QYXJhbWV0ZXJbMl0uTmFtZSk7CisJCQkJCQl9CisJCQkJCQlpZiAoIWxlblZhclVzZWQpCisJCQkJCQl7CisJCQkJCQkJdGVzdE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCB0ZXN0TWV0aG9kLlBhcmFtZXRlclsxXS5OYW1lKTsKKwkJCQkJCX0KKworCQkJCQkJdGVzdE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJyZXR1cm4gezB9OyIsIHJldHVyblZhbHVlLlR5cGUuTmFtZSk7CisKKwkJCQkJCW1pYkZpbGUuSW1wbGVtZW50YXRpb24uQWRkKHRlc3RNZXRob2QpOworCisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQl0ZXN0TWV0aG9kTmFtZSA9IEx3aXBEZWZzLkZuY3ROYW1lX1NldFRlc3RfT2s7CisJCQkJCX0KKworCQkJCQlGdW5jdGlvbkRlY2xhcmF0aW9uIHNldE1ldGhvZERlY2wgID0gbnVsbDsKKwkJCQkJc2V0TWV0aG9kRGVjbCA9IG5ldyBGdW5jdGlvbkRlY2xhcmF0aW9uKHRoaXMuTmFtZSArIEx3aXBEZWZzLkZuY3RTdWZmaXhfU2V0VmFsdWUsIGlzU3RhdGljOiB0cnVlKTsKKwkJCQkJc2V0TWV0aG9kRGVjbC5QYXJhbWV0ZXIuQWRkKG5ldyBWYXJpYWJsZVR5cGUoImluc3RhbmNlIiwgTHdpcERlZnMuVnRfU3ROb2RlSW5zdGFuY2UsICIqIikpOworCQkJCQlzZXRNZXRob2REZWNsLlBhcmFtZXRlci5BZGQobmV3IFZhcmlhYmxlVHlwZSgibGVuIiwgTHdpcERlZnMuVnRfVTE2KSk7CisJCQkJCXNldE1ldGhvZERlY2wuUGFyYW1ldGVyLkFkZChuZXcgVmFyaWFibGVUeXBlKCJ2YWx1ZSIsIFZhcmlhYmxlVHlwZS5Wb2lkU3RyaW5nLCAiKiIpKTsKKwkJCQkJc2V0TWV0aG9kRGVjbC5SZXR1cm5UeXBlID0gbmV3IFZhcmlhYmxlVHlwZShudWxsLCBMd2lwRGVmcy5WdF9Tbm1wX2Vycik7CisJCQkJCW1pYkZpbGUuRGVjbGFyYXRpb25zLkFkZChzZXRNZXRob2REZWNsKTsKKworCQkJCQlGdW5jdGlvbiBzZXRNZXRob2QgPSBGdW5jdGlvbi5Gcm9tRGVjbGFyYXRpb24oc2V0TWV0aG9kRGVjbCk7CisJCQkJCXNldE1ldGhvZE5hbWUgPSBzZXRNZXRob2QuTmFtZTsKKworCQkJCQlyZXR1cm5WYWx1ZSA9IG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKChWYXJpYWJsZVR5cGUpc2V0TWV0aG9kLlJldHVyblR5cGUuQ2xvbmUoKSwgTHdpcERlZnMuRGVmX0Vycm9yQ29kZV9Payk7CisJCQkJCXJldHVyblZhbHVlLlR5cGUuTmFtZSA9ICJlcnIiOworCQkJCQlzZXRNZXRob2QuRGVjbGFyYXRpb25zLkFkZChyZXR1cm5WYWx1ZSk7CisJCQkJCXNldE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCBzZXRNZXRob2QuUGFyYW1ldGVyWzBdLk5hbWUpOworCisJCQkJCXZhbHVlVmFyVXNlZCA9IGZhbHNlOworCQkJCQlsZW5WYXJVc2VkID0gZmFsc2U7CisKKwkJCQkJR2VuZXJhdGVTZXRNZXRob2RDb2RlKHNldE1ldGhvZCwgc2V0TWV0aG9kLlBhcmFtZXRlclsyXS5OYW1lLCByZWYgdmFsdWVWYXJVc2VkLCBzZXRNZXRob2QuUGFyYW1ldGVyWzFdLk5hbWUsIHJlZiBsZW5WYXJVc2VkLCByZXR1cm5WYWx1ZS5UeXBlLk5hbWUpOworCisJCQkJCWlmICghdmFsdWVWYXJVc2VkKQorCQkJCQl7CisJCQkJCQlzZXRNZXRob2QuQWRkQ29kZUZvcm1hdCgiTFdJUF9VTlVTRURfQVJHKHswfSk7Iiwgc2V0TWV0aG9kLlBhcmFtZXRlclsyXS5OYW1lKTsKKwkJCQkJfQorCQkJCQlpZiAoIWxlblZhclVzZWQpCisJCQkJCXsKKwkJCQkJCXNldE1ldGhvZC5BZGRDb2RlRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCBzZXRNZXRob2QuUGFyYW1ldGVyWzFdLk5hbWUpOworCQkJCQl9CisKKwkJCQkJc2V0TWV0aG9kLkFkZENvZGVGb3JtYXQoInJldHVybiB7MH07IiwgcmV0dXJuVmFsdWUuVHlwZS5OYW1lKTsKKworCQkJCQltaWJGaWxlLkltcGxlbWVudGF0aW9uLkFkZChzZXRNZXRob2QpOworCQkJCX0KKwkJCX0KKworCQkJLy8gY3JlYXRlIGFuZCBhZGQgbm9kZSBkZWNsYXJhdGlvbgorCQkJc3RyaW5nIG5vZGVJbml0aWFsaXphdGlvbjsKKwkJCWlmICh0aGlzLmFjY2Vzc01vZGUgPT0gU25tcEFjY2Vzc01vZGUuUmVhZE9ubHkpCisJCQl7CisJCQkJbm9kZUluaXRpYWxpemF0aW9uID0gU3RyaW5nLkZvcm1hdCgiU05NUF9TQ0FMQVJfQ1JFQVRFX05PREVfUkVBRE9OTFkoezB9LCB7MX0sIHsyfSkiLAorCQkJCQl0aGlzLk9pZCwKKwkJCQkJTHdpcERlZnMuR2V0QXNuMURlZkZvclNubXBEYXRhVHlwZSh0aGlzLmRhdGFUeXBlKSwKKwkJCQkJZ2V0TWV0aG9kTmFtZSk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJbm9kZUluaXRpYWxpemF0aW9uID0gU3RyaW5nLkZvcm1hdCgiU05NUF9TQ0FMQVJfQ1JFQVRFX05PREUoezB9LCB7MX0sIHsyfSwgezN9LCB7NH0sIHs1fSkiLAorCQkJCQl0aGlzLk9pZCwKKwkJCQkJTHdpcERlZnMuR2V0THdpcERlZkZvclNubXBBY2Nlc3NNb2RlKHRoaXMuYWNjZXNzTW9kZSksCisJCQkJCUx3aXBEZWZzLkdldEFzbjFEZWZGb3JTbm1wRGF0YVR5cGUodGhpcy5kYXRhVHlwZSksCisJCQkJCWdldE1ldGhvZE5hbWUsCisJCQkJCXRlc3RNZXRob2ROYW1lLAorCQkJCQlzZXRNZXRob2ROYW1lKTsKKwkJCX0KKworCQkJbWliRmlsZS5EZWNsYXJhdGlvbnMuQWRkKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKAorCQkJCW5ldyBWYXJpYWJsZVR5cGUodGhpcy5GdWxsTm9kZU5hbWUsIEx3aXBEZWZzLlZ0X1N0U2NhbGFyTm9kZSwgbnVsbCwgQ29uc3RUeXBlLlZhbHVlKSwKKwkJCQlub2RlSW5pdGlhbGl6YXRpb24sIGlzU3RhdGljOiB0cnVlKSk7CisJCX0KKworCQlwdWJsaWMgdmlydHVhbCB2b2lkIEdlbmVyYXRlR2V0TWV0aG9kQ29kZShDb2RlQ29udGFpbmVyQmFzZSBjb250YWluZXIsIHN0cmluZyB2YWx1ZVZhck5hbWUsIHJlZiBib29sIHZhbHVlVmFyVXNlZCwgc3RyaW5nIHJldExlblZhck5hbWUpCisJCXsKKwkJCWJvb2wgbG9jYWxWYWx1ZVZhclVzZWQ7CisJCQlpZiAoR2VuZXJhdGVWYWx1ZURlY2xhcmF0aW9uKGNvbnRhaW5lciwgTG9jYWxWYWx1ZU5hbWUsIHZhbHVlVmFyTmFtZSkpCisJCQl7CisJCQkJdmFsdWVWYXJVc2VkID0gdHJ1ZTsKKwkJCQlsb2NhbFZhbHVlVmFyVXNlZCA9IGZhbHNlOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWxvY2FsVmFsdWVWYXJVc2VkID0gdHJ1ZTsgIC8vIGRvIG5vdCBnZW5lcmF0ZSBVTlVTRURfQVJHIGNvZGUKKwkJCX0KKworCQkJaWYgKHRoaXMuRml4ZWRWYWx1ZUxlbmd0aCA9PSBudWxsKQorCQkJeworCQkJCS8vIGNoZWNrIHRoYXQgdmFsdWUgd2l0aCB2YXJpYWJsZSBsZW5ndGggZml0cyBpbnRvIGJ1ZmZlcgorCQkJCWNvbnRhaW5lci5BZGRFbGVtZW50KG5ldyBDb21tZW50KFN0cmluZy5Gb3JtYXQoIlRPRE86IHRha2UgY2FyZSB0aGF0IHZhbHVlIHdpdGggdmFyaWFibGUgbGVuZ3RoIGZpdHMgaW50byBidWZmZXI6ICh7MH0gPD0gU05NUF9NQVhfVkFMVUVfU0laRSkiLCByZXRMZW5WYXJOYW1lKSwgc2luZ2xlTGluZTogdHJ1ZSkpOworCQkJfQorCisJCQlHZW5lcmF0ZUdldE1ldGhvZENvZGVDb3JlKGNvbnRhaW5lciwgTG9jYWxWYWx1ZU5hbWUsIHJlZiBsb2NhbFZhbHVlVmFyVXNlZCwgcmV0TGVuVmFyTmFtZSk7CisJCQlpZiAoIWxvY2FsVmFsdWVWYXJVc2VkKQorCQkJeworCQkJCWNvbnRhaW5lci5BZGRDb2RlKFN0cmluZy5Gb3JtYXQoIkxXSVBfVU5VU0VEX0FSRyh7MH0pOyIsIExvY2FsVmFsdWVOYW1lKSk7CisJCQl9CisJCX0KKworCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEdlbmVyYXRlR2V0TWV0aG9kQ29kZUNvcmUoQ29kZUNvbnRhaW5lckJhc2UgY29udGFpbmVyLCBzdHJpbmcgbG9jYWxWYWx1ZVZhck5hbWUsIHJlZiBib29sIGxvY2FsVmFsdWVWYXJVc2VkLCBzdHJpbmcgcmV0TGVuVmFyTmFtZSkKKwkJeworCQkJY29udGFpbmVyLkFkZEVsZW1lbnQobmV3IENvbW1lbnQoU3RyaW5nLkZvcm1hdCgiVE9ETzogcHV0IHJlcXVlc3RlZCB2YWx1ZSB0byAnKnswfScgaGVyZSIsIGxvY2FsVmFsdWVWYXJOYW1lKSwgc2luZ2xlTGluZTogdHJ1ZSkpOworCQkJY29udGFpbmVyLkFkZENvZGVGb3JtYXQoInswfSA9IHsxfTsiLCAKKwkJCQlyZXRMZW5WYXJOYW1lLAorCQkJCSghU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh0aGlzLkZpeGVkVmFsdWVMZW5ndGgpKSA/IHRoaXMuRml4ZWRWYWx1ZUxlbmd0aCA6ICIwIik7CisJCX0KKworCQlwdWJsaWMgdmlydHVhbCB2b2lkIEdlbmVyYXRlVGVzdE1ldGhvZENvZGUoQ29kZUNvbnRhaW5lckJhc2UgY29udGFpbmVyLCBzdHJpbmcgdmFsdWVWYXJOYW1lLCByZWYgYm9vbCB2YWx1ZVZhclVzZWQsIHN0cmluZyBsZW5WYXJOYW1lLCByZWYgYm9vbCBsZW5WYXJVc2VkLCBzdHJpbmcgcmV0RXJyVmFyTmFtZSkKKwkJeworCQkJaWYgKHRoaXMuUmVzdHJpY3Rpb25zLkNvdW50ID4gMCkKKwkJCXsKKwkJCQlib29sIGxvY2FsVmFyVXNlZDsKKwkJCQlpZiAoR2VuZXJhdGVWYWx1ZURlY2xhcmF0aW9uKGNvbnRhaW5lciwgTG9jYWxWYWx1ZU5hbWUsIHZhbHVlVmFyTmFtZSkpCisJCQkJeworCQkJCQl2YWx1ZVZhclVzZWQgPSB0cnVlOworCQkJCQlsb2NhbFZhclVzZWQgPSBmYWxzZTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJbG9jYWxWYXJVc2VkID0gdHJ1ZTsgIC8vIGRvIG5vdCBnZW5lcmF0ZSBVTlVTRURfQVJHIGNvZGUKKwkJCQl9CisKKwkJCQlpZiAoIVN0cmluZy5Jc051bGxPcldoaXRlU3BhY2UodGhpcy5GaXhlZFZhbHVlTGVuZ3RoKSkKKwkJCQl7CisJCQkJCS8vIGNoZWNrIGZvciBmaXhlZCB2YWx1ZQorCQkJCQljb250YWluZXIuQWRkQ29kZUZvcm1hdCgiTFdJUF9BU1NFUlQoXCJJbnZhbGlkIGxlbmd0aCBmb3IgZGF0YXR5cGVcIiwgKHswfSA9PSB7MX0pKTsiLCBsZW5WYXJOYW1lLCB0aGlzLkZpeGVkVmFsdWVMZW5ndGgpOworCQkJCQlsZW5WYXJVc2VkID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlHZW5lcmF0ZVRlc3RNZXRob2RDb2RlQ29yZShjb250YWluZXIsIExvY2FsVmFsdWVOYW1lLCByZWYgbG9jYWxWYXJVc2VkLCBsZW5WYXJOYW1lLCByZWYgbGVuVmFyVXNlZCwgcmV0RXJyVmFyTmFtZSk7CisKKwkJCQlpZiAoIWxvY2FsVmFyVXNlZCkKKwkJCQl7CisJCQkJCWNvbnRhaW5lci5BZGRDb2RlKFN0cmluZy5Gb3JtYXQoIkxXSVBfVU5VU0VEX0FSRyh7MH0pOyIsIExvY2FsVmFsdWVOYW1lKSk7CisJCQkJfQorCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWNvbnRhaW5lci5BZGRDb2RlRm9ybWF0KCJ7MH0gPSB7MX07IiwgcmV0RXJyVmFyTmFtZSwgTHdpcERlZnMuRGVmX0Vycm9yQ29kZV9Payk7CisJCQl9CisJCX0KKworCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEdlbmVyYXRlVGVzdE1ldGhvZENvZGVDb3JlKENvZGVDb250YWluZXJCYXNlIGNvbnRhaW5lciwgc3RyaW5nIGxvY2FsVmFsdWVWYXJOYW1lLCByZWYgYm9vbCBsb2NhbFZhbHVlVmFyVXNlZCwgc3RyaW5nIGxlblZhck5hbWUsIHJlZiBib29sIGxlblZhclVzZWQsIHN0cmluZyByZXRFcnJWYXJOYW1lKQorCQl7CisJCQljb250YWluZXIuQWRkRWxlbWVudChuZXcgQ29tbWVudChTdHJpbmcuRm9ybWF0KCJUT0RPOiB0ZXN0IG5ldyB2YWx1ZSBoZXJlOlxuaWYgKCp7MH0gPT0gKSB7MX0gPSB7Mn07IiwgbG9jYWxWYWx1ZVZhck5hbWUsIHJldEVyclZhck5hbWUsIEx3aXBEZWZzLkRlZl9FcnJvckNvZGVfT2spKSk7CisJCX0KKworCQlwdWJsaWMgdmlydHVhbCB2b2lkIEdlbmVyYXRlU2V0TWV0aG9kQ29kZShDb2RlQ29udGFpbmVyQmFzZSBjb250YWluZXIsIHN0cmluZyB2YWx1ZVZhck5hbWUsIHJlZiBib29sIHZhbHVlVmFyVXNlZCwgc3RyaW5nIGxlblZhck5hbWUsIHJlZiBib29sIGxlblZhclVzZWQsIHN0cmluZyByZXRFcnJWYXJOYW1lKQorCQl7CisJCQlib29sIGxvY2FsVmFyVXNlZDsKKwkJCWlmIChHZW5lcmF0ZVZhbHVlRGVjbGFyYXRpb24oY29udGFpbmVyLCBMb2NhbFZhbHVlTmFtZSwgdmFsdWVWYXJOYW1lKSkKKwkJCXsKKwkJCQl2YWx1ZVZhclVzZWQgPSB0cnVlOworCQkJCWxvY2FsVmFyVXNlZCA9IGZhbHNlOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWxvY2FsVmFyVXNlZCA9IHRydWU7IC8vIGRvIG5vdCBnZW5lcmF0ZSBVTlVTRURfQVJHIGNvZGUKKwkJCX0KKworCQkJR2VuZXJhdGVTZXRNZXRob2RDb2RlQ29yZShjb250YWluZXIsIExvY2FsVmFsdWVOYW1lLCByZWYgbG9jYWxWYXJVc2VkLCBsZW5WYXJOYW1lLCByZWYgbGVuVmFyVXNlZCwgcmV0RXJyVmFyTmFtZSk7CisKKwkJCWlmICghbG9jYWxWYXJVc2VkKQorCQkJeworCQkJCWNvbnRhaW5lci5BZGRDb2RlKFN0cmluZy5Gb3JtYXQoIkxXSVBfVU5VU0VEX0FSRyh7MH0pOyIsIExvY2FsVmFsdWVOYW1lKSk7CisJCQl9CisJCX0KKworCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEdlbmVyYXRlU2V0TWV0aG9kQ29kZUNvcmUoQ29kZUNvbnRhaW5lckJhc2UgY29udGFpbmVyLCBzdHJpbmcgbG9jYWxWYWx1ZVZhck5hbWUsIHJlZiBib29sIGxvY2FsVmFsdWVWYXJVc2VkLCBzdHJpbmcgbGVuVmFyTmFtZSwgcmVmIGJvb2wgbGVuVmFyVXNlZCwgc3RyaW5nIHJldEVyclZhck5hbWUpCisJCXsKKwkJCWNvbnRhaW5lci5BZGRFbGVtZW50KG5ldyBDb21tZW50KFN0cmluZy5Gb3JtYXQoIlRPRE86IHN0b3JlIG5ldyB2YWx1ZSBjb250YWluZWQgaW4gJyp7MH0nIGhlcmUiLCBsb2NhbFZhbHVlVmFyTmFtZSksIHNpbmdsZUxpbmU6IHRydWUpKTsgCisJCX0KKworCisJCXByb3RlY3RlZCB2aXJ0dWFsIGJvb2wgR2VuZXJhdGVWYWx1ZURlY2xhcmF0aW9uKENvZGVDb250YWluZXJCYXNlIGNvbnRhaW5lciwgc3RyaW5nIHZhcmlhYmxlTmFtZSwgc3RyaW5nIHNvdXJjZU5hbWUpCisJCXsKKwkJCWNvbnRhaW5lci5BZGREZWNsYXJhdGlvbihuZXcgVmFyaWFibGVEZWNsYXJhdGlvbigKKwkJCQluZXcgVmFyaWFibGVUeXBlKHZhcmlhYmxlTmFtZSwgTHdpcERlZnMuVnRfVTgsICIqIiksCisJCQkJIigiICsgbmV3IFZhcmlhYmxlVHlwZShudWxsLCBMd2lwRGVmcy5WdF9VOCwgIioiKSArICIpIiArIHNvdXJjZU5hbWUpKTsKKworCQkJcmV0dXJuIHRydWU7CisJCX0KKworCQlwdWJsaWMgc3RhdGljIFNubXBTY2FsYXJOb2RlIENyZWF0ZUZyb21EYXRhdHlwZShTbm1wRGF0YVR5cGUgZGF0YVR5cGUsIFNubXBUcmVlTm9kZSBwYXJlbnROb2RlKQorCQl7CisJCQlzd2l0Y2ggKGRhdGFUeXBlKQorCQkJeworCQkJCWNhc2UgU25tcERhdGFUeXBlLkludGVnZXI6CisJCQkJCXJldHVybiBuZXcgU25tcFNjYWxhck5vZGVJbnQocGFyZW50Tm9kZSk7CisKKwkJCQljYXNlIFNubXBEYXRhVHlwZS5HYXVnZToKKwkJCQljYXNlIFNubXBEYXRhVHlwZS5Db3VudGVyOgorCQkJCWNhc2UgU25tcERhdGFUeXBlLlRpbWVUaWNrczoKKwkJCQkJcmV0dXJuIG5ldyBTbm1wU2NhbGFyTm9kZVVpbnQoZGF0YVR5cGUsIHBhcmVudE5vZGUpOworCQkJfQorCisJCQlyZXR1cm4gbmV3IFNubXBTY2FsYXJOb2RlKHBhcmVudE5vZGUpOworCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1NubXBTY2FsYXJOb2RlQml0cy5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wU2NhbGFyTm9kZUJpdHMuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA2YTVhNgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wU2NhbGFyTm9kZUJpdHMuY3MKQEAgLTAsMCArMSwxMjEgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLlRleHQ7Cit1c2luZyBDQ29kZUdlbmVyYXRpb247CisKK25hbWVzcGFjZSBMd2lwU25tcENvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIFNubXBTY2FsYXJOb2RlQml0cyA6IFNubXBTY2FsYXJOb2RlCisJeworCQlwcml2YXRlIHJlYWRvbmx5IHVpbnQgYml0Q291bnQ7CisKKwkJcHVibGljIFNubXBTY2FsYXJOb2RlQml0cyhTbm1wVHJlZU5vZGUgcGFyZW50Tm9kZSwgdWludCBiaXRDb3VudCkKKwkJCTogYmFzZShwYXJlbnROb2RlKQorCQl7CisJCQl0aGlzLkRhdGFUeXBlID0gU25tcERhdGFUeXBlLkJpdHM7CisJCQl0aGlzLmJpdENvdW50ID0gYml0Q291bnQ7CisJCX0KKworCQlwdWJsaWMgb3ZlcnJpZGUgdm9pZCBHZW5lcmF0ZUdldE1ldGhvZENvZGUoQ29kZUNvbnRhaW5lckJhc2UgY29udGFpbmVyLCBzdHJpbmcgdmFsdWVWYXJOYW1lLCByZWYgYm9vbCB2YWx1ZVZhclVzZWQsIHN0cmluZyByZXRMZW5WYXJOYW1lKQorCQl7CisJCQljb250YWluZXIuQWRkQ29kZShTdHJpbmcuRm9ybWF0KAorCQkJCSJ7MH0gPSBzbm1wX2VuY29kZV9iaXRzKCh7MX0gKil7Mn0sIFNOTVBfTUFYX1ZBTFVFX1NJWkUsIDAgLyogVE9ETzogcGFzcyByZWFsIHZhbHVlIGhlcmUgKi8sIHszfSk7IiwKKwkJCQlyZXRMZW5WYXJOYW1lLCAKKwkJCQlMd2lwRGVmcy5WdF9VOCwKKwkJCQl2YWx1ZVZhck5hbWUsCisJCQkJdGhpcy5iaXRDb3VudCkpOworCQkJCisJCQl2YWx1ZVZhclVzZWQgPSB0cnVlOworCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVUZXN0TWV0aG9kQ29kZShDb2RlQ29udGFpbmVyQmFzZSBjb250YWluZXIsIHN0cmluZyB2YWx1ZVZhck5hbWUsIHJlZiBib29sIHZhbHVlVmFyVXNlZCwgc3RyaW5nIGxlblZhck5hbWUsIHJlZiBib29sIGxlblZhclVzZWQsIHN0cmluZyByZXRFcnJWYXJOYW1lKQorCQl7CisJCQlpZiAodGhpcy5SZXN0cmljdGlvbnMuQ291bnQgPiAwKQorCQkJeworCQkJCWNvbnN0IHN0cmluZyBiaXRWYXJOYW1lID0gImJpdHMiOworCisJCQkJY29udGFpbmVyLkRlY2xhcmF0aW9ucy5BZGQobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24obmV3IFZhcmlhYmxlVHlwZShiaXRWYXJOYW1lLCBMd2lwRGVmcy5WdF9VMzIpKSk7CisKKwkJCQlJZlRoZW5FbHNlIGl0ZSA9IG5ldyBJZlRoZW5FbHNlKFN0cmluZy5Gb3JtYXQoCisJCQkJCSJzbm1wX2RlY29kZV9iaXRzKCh7MH0gKil7MX0sIHsyfSwgJnszfSkgPT0gRVJSX09LIiwKKwkJCQkJTHdpcERlZnMuVnRfVTgsCisJCQkJCXZhbHVlVmFyTmFtZSwKKwkJCQkJbGVuVmFyTmFtZSwKKwkJCQkJYml0VmFyTmFtZSkpOworCisJCQkJdmFsdWVWYXJVc2VkID0gdHJ1ZTsKKwkJCQlsZW5WYXJVc2VkID0gdHJ1ZTsKKworCQkJCVN0cmluZ0J1aWxkZXIgaW5uZXJJZkNvbmQgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworCQkJCWZvcmVhY2ggKElSZXN0cmljdGlvbiByZXN0cmljdGlvbiBpbiB0aGlzLlJlc3RyaWN0aW9ucykKKwkJCQl7CisJCQkJCWlubmVySWZDb25kLkFwcGVuZChyZXN0cmljdGlvbi5HZXRDaGVja0NvZGVWYWxpZChiaXRWYXJOYW1lKSk7CisJCQkJCWlubmVySWZDb25kLkFwcGVuZCgiIHx8ICIpOworCQkJCX0KKworCQkJCWlubmVySWZDb25kLkxlbmd0aCAtPSA0OworCisJCQkJSWZUaGVuRWxzZSBpbm5lckl0ZSA9IG5ldyBJZlRoZW5FbHNlKGlubmVySWZDb25kLlRvU3RyaW5nKCkpOworCQkJCWlubmVySXRlLkFkZENvZGUoU3RyaW5nLkZvcm1hdCgiezB9ID0gezF9OyIsIHJldEVyclZhck5hbWUsIEx3aXBEZWZzLkRlZl9FcnJvckNvZGVfT2spKTsKKwkJCQlpdGUuQWRkRWxlbWVudChpbm5lckl0ZSk7CisJCQkJY29udGFpbmVyLkFkZEVsZW1lbnQoaXRlKTsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQliYXNlLkdlbmVyYXRlVGVzdE1ldGhvZENvZGUoY29udGFpbmVyLCB2YWx1ZVZhck5hbWUsIHJlZiB2YWx1ZVZhclVzZWQsIGxlblZhck5hbWUsIHJlZiBsZW5WYXJVc2VkLCByZXRFcnJWYXJOYW1lKTsKKwkJCX0KKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlU2V0TWV0aG9kQ29kZShDb2RlQ29udGFpbmVyQmFzZSBjb250YWluZXIsIHN0cmluZyB2YWx1ZVZhck5hbWUsIHJlZiBib29sIHZhbHVlVmFyVXNlZCwgc3RyaW5nIGxlblZhck5hbWUsIHJlZiBib29sIGxlblZhclVzZWQsIHN0cmluZyByZXRFcnJWYXJOYW1lKQorCQl7CisJCQljb25zdCBzdHJpbmcgYml0VmFyTmFtZSA9ICJiaXRzIjsKKworCQkJY29udGFpbmVyLkRlY2xhcmF0aW9ucy5BZGQobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24obmV3IFZhcmlhYmxlVHlwZShiaXRWYXJOYW1lLCBMd2lwRGVmcy5WdF9VMzIpKSk7CisKKwkJCUlmVGhlbkVsc2UgaXRlID0gbmV3IElmVGhlbkVsc2UoU3RyaW5nLkZvcm1hdCgKKwkJCQkic25tcF9kZWNvZGVfYml0cygoezB9ICopezF9LCB7Mn0sICZ7M30pID09IEVSUl9PSyIsCisJCQkJTHdpcERlZnMuVnRfVTgsCisJCQkJdmFsdWVWYXJOYW1lLAorCQkJCWxlblZhck5hbWUsCisJCQkJYml0VmFyTmFtZSkpOworCisJCQl2YWx1ZVZhclVzZWQgPSB0cnVlOworCQkJbGVuVmFyVXNlZCA9IHRydWU7CisKKwkJCWl0ZS5BZGRFbGVtZW50KG5ldyBDb21tZW50KFN0cmluZy5Gb3JtYXQoIlRPRE86IHN0b3JlIG5ldyB2YWx1ZSBjb250YWluZWQgaW4gJ3swfScgaGVyZSIsIGJpdFZhck5hbWUpLCBzaW5nbGVMaW5lOiB0cnVlKSk7CisKKwkJCWNvbnRhaW5lci5BZGRFbGVtZW50KGl0ZSk7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhck5vZGVDb3VudGVyNjQuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhck5vZGVDb3VudGVyNjQuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY0NTBjOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wU2NhbGFyTm9kZUNvdW50ZXI2NC5jcwpAQCAtMCwwICsxLDcyIEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5UZXh0OwordXNpbmcgQ0NvZGVHZW5lcmF0aW9uOworCituYW1lc3BhY2UgTHdpcFNubXBDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBTbm1wU2NhbGFyTm9kZUNvdW50ZXI2NCA6IFNubXBTY2FsYXJOb2RlCisJeworCQlwdWJsaWMgU25tcFNjYWxhck5vZGVDb3VudGVyNjQoU25tcFRyZWVOb2RlIHBhcmVudE5vZGUpCisJCQk6IGJhc2UocGFyZW50Tm9kZSkKKwkJeworCQkJdGhpcy5EYXRhVHlwZSA9IFNubXBEYXRhVHlwZS5Db3VudGVyNjQ7CisJCX0KKworCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgYm9vbCBHZW5lcmF0ZVZhbHVlRGVjbGFyYXRpb24oQ29kZUNvbnRhaW5lckJhc2UgY29udGFpbmVyLCBzdHJpbmcgdmFyaWFibGVOYW1lLCBzdHJpbmcgc291cmNlTmFtZSkKKwkJeworCQkJY29udGFpbmVyLkFkZERlY2xhcmF0aW9uKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKAorCQkJCW5ldyBWYXJpYWJsZVR5cGUodmFyaWFibGVOYW1lICsgIl9oaWdoIiwgTHdpcERlZnMuVnRfVTMyLCAiKiIpLAorCQkJCSIoIiArIG5ldyBWYXJpYWJsZVR5cGUobnVsbCwgTHdpcERlZnMuVnRfVTMyLCAiKiIpLlRvU3RyaW5nKCkgKyAiKSIgKyBzb3VyY2VOYW1lKSk7CisJCQljb250YWluZXIuQWRkRGVjbGFyYXRpb24obmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oCisJCQkJbmV3IFZhcmlhYmxlVHlwZSh2YXJpYWJsZU5hbWUgKyAiX2xvdyIsIEx3aXBEZWZzLlZ0X1UzMiwgIioiKSwKKwkJCQl2YXJpYWJsZU5hbWUgKyAiX2hpZ2ggKyAxIikpOworCisJCQljb250YWluZXIuQWRkQ29kZShTdHJpbmcuRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9X2hpZ2gpOyIsIHZhcmlhYmxlTmFtZSkpOworCQkJY29udGFpbmVyLkFkZENvZGUoU3RyaW5nLkZvcm1hdCgiTFdJUF9VTlVTRURfQVJHKHswfV9sb3cpOyIsIHZhcmlhYmxlTmFtZSkpOworCisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQlwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIEZpeGVkVmFsdWVMZW5ndGgKKwkJeworCQkJZ2V0IHsgcmV0dXJuIFN0cmluZy5Gb3JtYXQoIigyICogc2l6ZW9mKHswfSkpIiwgTHdpcERlZnMuVnRfVTMyKTsgfQorCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIGludCBPaWRSZXByZXNlbnRhdGlvbkxlbgorCQl7CisJCQlnZXQgeyByZXR1cm4gMTsgfQorCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1NubXBTY2FsYXJOb2RlSW50LmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1NubXBTY2FsYXJOb2RlSW50LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzODEyMzQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhck5vZGVJbnQuY3MKQEAgLTAsMCArMSw4NiBAQAor77u/LyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDA0IFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogTWFydGluIEhlbnRzY2hlbCA8aW5mb0BjbC1zb2Z0LmRlPgorICoKKyAqLworCit1c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uVGV4dDsKK3VzaW5nIENDb2RlR2VuZXJhdGlvbjsKKworbmFtZXNwYWNlIEx3aXBTbm1wQ29kZUdlbmVyYXRpb24KK3sKKwlwdWJsaWMgY2xhc3MgU25tcFNjYWxhck5vZGVJbnQgOiBTbm1wU2NhbGFyTm9kZQorCXsKKwkJcHVibGljIFNubXBTY2FsYXJOb2RlSW50KFNubXBUcmVlTm9kZSBwYXJlbnROb2RlKQorCQkJOiBiYXNlKHBhcmVudE5vZGUpCisJCXsKKwkJCXRoaXMuRGF0YVR5cGUgPSBTbm1wRGF0YVR5cGUuSW50ZWdlcjsKKwkJfQorCisJCXByb3RlY3RlZCBvdmVycmlkZSB2b2lkIEdlbmVyYXRlVGVzdE1ldGhvZENvZGVDb3JlKENvZGVDb250YWluZXJCYXNlIGNvbnRhaW5lciwgc3RyaW5nIGxvY2FsVmFsdWVWYXJOYW1lLCByZWYgYm9vbCBsb2NhbFZhbHVlVmFyVXNlZCwgc3RyaW5nIGxlblZhck5hbWUsIHJlZiBib29sIGxlblZhclVzZWQsIHN0cmluZyByZXRFcnJWYXJOYW1lKQorCQl7CisJCQlTeXN0ZW0uRGlhZ25vc3RpY3MuVHJhY2UuQXNzZXJ0KHRoaXMuUmVzdHJpY3Rpb25zLkNvdW50ID4gMCk7CisKKwkJCVN0cmluZ0J1aWxkZXIgaWZDb25kID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKwkJCWZvcmVhY2ggKElSZXN0cmljdGlvbiByZXN0cmljdGlvbiBpbiB0aGlzLlJlc3RyaWN0aW9ucykKKwkJCXsKKwkJCQlpZkNvbmQuQXBwZW5kKHJlc3RyaWN0aW9uLkdldENoZWNrQ29kZVZhbGlkKCIqIiArIGxvY2FsVmFsdWVWYXJOYW1lKSk7CisJCQkJaWZDb25kLkFwcGVuZCgiIHx8ICIpOworCisJCQkJbG9jYWxWYWx1ZVZhclVzZWQgPSB0cnVlOworCQkJfQorCisJCQlpZkNvbmQuTGVuZ3RoIC09IDQ7CisKKwkJCUlmVGhlbkVsc2UgaXRlID0gbmV3IElmVGhlbkVsc2UoaWZDb25kLlRvU3RyaW5nKCkpOworCQkJaXRlLkFkZENvZGUoU3RyaW5nLkZvcm1hdCgiezB9ID0gezF9OyIsIHJldEVyclZhck5hbWUsIEx3aXBEZWZzLkRlZl9FcnJvckNvZGVfT2spKTsKKwkJCWNvbnRhaW5lci5BZGRFbGVtZW50KGl0ZSk7CisJCX0KKworCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgYm9vbCBHZW5lcmF0ZVZhbHVlRGVjbGFyYXRpb24oQ29kZUNvbnRhaW5lckJhc2UgY29udGFpbmVyLCBzdHJpbmcgdmFyaWFibGVOYW1lLCBzdHJpbmcgc291cmNlTmFtZSkKKwkJeworCQkJY29udGFpbmVyLkFkZERlY2xhcmF0aW9uKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKAorCQkJCW5ldyBWYXJpYWJsZVR5cGUodmFyaWFibGVOYW1lLCBMd2lwRGVmcy5WdF9TMzIsICIqIiksCisJCQkJIigiICsgbmV3IFZhcmlhYmxlVHlwZShudWxsLCBMd2lwRGVmcy5WdF9TMzIsICIqIikgKyAiKSIgKyBzb3VyY2VOYW1lKSk7CisKKwkJCXJldHVybiB0cnVlOworCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHN0cmluZyBGaXhlZFZhbHVlTGVuZ3RoCisJCXsKKwkJCWdldCB7IHJldHVybiBTdHJpbmcuRm9ybWF0KCJzaXplb2YoezB9KSIsIEx3aXBEZWZzLlZ0X1MzMik7IH0KKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSBpbnQgT2lkUmVwcmVzZW50YXRpb25MZW4KKwkJeworCQkJZ2V0IHsgcmV0dXJuIDE7IH0KKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wU2NhbGFyTm9kZU9iamVjdElkZW50aWZpZXIuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhck5vZGVPYmplY3RJZGVudGlmaWVyLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVjZThkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhck5vZGVPYmplY3RJZGVudGlmaWVyLmNzCkBAIC0wLDAgKzEsOTAgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOwordXNpbmcgQ0NvZGVHZW5lcmF0aW9uOworCituYW1lc3BhY2UgTHdpcFNubXBDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBTbm1wU2NhbGFyTm9kZU9iamVjdElkZW50aWZpZXI6IFNubXBTY2FsYXJOb2RlCisJeworCQlwdWJsaWMgU25tcFNjYWxhck5vZGVPYmplY3RJZGVudGlmaWVyKFNubXBUcmVlTm9kZSBwYXJlbnROb2RlKQorCQkJOiBiYXNlKHBhcmVudE5vZGUpCisJCXsKKwkJCXRoaXMuRGF0YVR5cGUgPSBTbm1wRGF0YVR5cGUuT2JqZWN0SWRlbnRpZmllcjsKKwkJfQorCisJCXByb3RlY3RlZCBvdmVycmlkZSBib29sIEdlbmVyYXRlVmFsdWVEZWNsYXJhdGlvbihDb2RlQ29udGFpbmVyQmFzZSBjb250YWluZXIsIHN0cmluZyB2YXJpYWJsZU5hbWUsIHN0cmluZyBzb3VyY2VOYW1lKQorCQl7CisJCQljb250YWluZXIuQWRkRGVjbGFyYXRpb24obmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oCisJCQkJbmV3IFZhcmlhYmxlVHlwZSh2YXJpYWJsZU5hbWUsIEx3aXBEZWZzLlZ0X1UzMiwgIioiKSwKKwkJCQkiKCIgKyBuZXcgVmFyaWFibGVUeXBlKG51bGwsIEx3aXBEZWZzLlZ0X1UzMiwgIioiKSArICIpIiArIHNvdXJjZU5hbWUpKTsKKworCQkJcmV0dXJuIHRydWU7CisJCX0KKworCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBHZW5lcmF0ZUdldE1ldGhvZENvZGVDb3JlKENvZGVDb250YWluZXJCYXNlIGNvbnRhaW5lciwgc3RyaW5nIGxvY2FsVmFsdWVWYXJOYW1lLCByZWYgYm9vbCBsb2NhbFZhbHVlVmFyVXNlZCwgc3RyaW5nIHJldExlblZhck5hbWUpCisJCXsKKwkJCWNvbnRhaW5lci5BZGRFbGVtZW50KG5ldyBDb21tZW50KFN0cmluZy5Gb3JtYXQoIlRPRE86IHB1dCByZXF1ZXN0ZWQgdmFsdWUgdG8gJyp7MH0nIGhlcmUuICd7MH0nIGhhcyB0byBiZSBpbnRlcnByZXRlZCBhcyB7MX1bXSIsIGxvY2FsVmFsdWVWYXJOYW1lLCBMd2lwRGVmcy5WdF9VMzIpLCBzaW5nbGVMaW5lOiB0cnVlKSk7CisJCQljb250YWluZXIuQWRkRWxlbWVudChFbXB0eUxpbmUuU2luZ2xlTGluZSk7CisJCQljb250YWluZXIuQWRkQ29kZShTdHJpbmcuRm9ybWF0KCJ7MH0gPSAwOyAvLyBUT0RPOiByZXR1cm4gcmVhbCB2YWx1ZSBsZW5ndGggaGVyZSAoc2hvdWxkIGJlICdudW1PZkVsZW1lbnRzICogc2l6ZW9mKHsxfSknKSIsIHJldExlblZhck5hbWUsIEx3aXBEZWZzLlZ0X1UzMikpOworCQl9CisKKwkJcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVUZXN0TWV0aG9kQ29kZUNvcmUoQ29kZUNvbnRhaW5lckJhc2UgY29udGFpbmVyLCBzdHJpbmcgbG9jYWxWYWx1ZVZhck5hbWUsIHJlZiBib29sIGxvY2FsVmFsdWVWYXJVc2VkLCBzdHJpbmcgbGVuVmFyTmFtZSwgcmVmIGJvb2wgbGVuVmFyVXNlZCwgc3RyaW5nIHJldEVyclZhck5hbWUpCisJCXsKKwkJCVZhcmlhYmxlRGVjbGFyYXRpb24gb2JqSWRMZW5WYXIgPSBuZXcgVmFyaWFibGVEZWNsYXJhdGlvbigKKwkJCQluZXcgVmFyaWFibGVUeXBlKGxvY2FsVmFsdWVWYXJOYW1lICsgIl9sZW4iLCBMd2lwRGVmcy5WdF9VOCksCisJCQkJU3RyaW5nLkZvcm1hdCgiezB9IC8gc2l6ZW9mKHsxfSkiLCBsZW5WYXJOYW1lLCBMd2lwRGVmcy5WdF9VMzIpKTsKKwkJCWxlblZhclVzZWQgPSB0cnVlOworCisJCQljb250YWluZXIuRGVjbGFyYXRpb25zLkFkZChvYmpJZExlblZhcik7CisKKwkJCWJhc2UuR2VuZXJhdGVUZXN0TWV0aG9kQ29kZUNvcmUoY29udGFpbmVyLCBsb2NhbFZhbHVlVmFyTmFtZSwgcmVmIGxvY2FsVmFsdWVWYXJVc2VkLCBsZW5WYXJOYW1lLCByZWYgbGVuVmFyVXNlZCwgcmV0RXJyVmFyTmFtZSk7CisKKwkJCWNvbnRhaW5lci5BZGRDb2RlKFN0cmluZy5Gb3JtYXQoIkxXSVBfVU5VU0VEX0FSRyh7MH0pOyIsIG9iaklkTGVuVmFyLlR5cGUuTmFtZSkpOworCQl9CisKKwkJcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVTZXRNZXRob2RDb2RlQ29yZShDb2RlQ29udGFpbmVyQmFzZSBjb250YWluZXIsIHN0cmluZyBsb2NhbFZhbHVlVmFyTmFtZSwgcmVmIGJvb2wgbG9jYWxWYWx1ZVZhclVzZWQsIHN0cmluZyBsZW5WYXJOYW1lLCByZWYgYm9vbCBsZW5WYXJVc2VkLCBzdHJpbmcgcmV0RXJyVmFyTmFtZSkKKwkJeworCQkJVmFyaWFibGVEZWNsYXJhdGlvbiBvYmpJZExlblZhciA9IG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKAorCQkJCW5ldyBWYXJpYWJsZVR5cGUobG9jYWxWYWx1ZVZhck5hbWUgKyAiX2xlbiIsIEx3aXBEZWZzLlZ0X1U4KSwKKwkJCQlTdHJpbmcuRm9ybWF0KCJ7MH0gLyBzaXplb2YoezF9KSIsIGxlblZhck5hbWUsIEx3aXBEZWZzLlZ0X1UzMikpOworCQkJbGVuVmFyVXNlZCA9IHRydWU7CisKKwkJCWNvbnRhaW5lci5EZWNsYXJhdGlvbnMuQWRkKG9iaklkTGVuVmFyKTsKKworCQkJYmFzZS5HZW5lcmF0ZVNldE1ldGhvZENvZGVDb3JlKGNvbnRhaW5lciwgbG9jYWxWYWx1ZVZhck5hbWUsIHJlZiBsb2NhbFZhbHVlVmFyVXNlZCwgbGVuVmFyTmFtZSwgcmVmIGxlblZhclVzZWQsIHJldEVyclZhck5hbWUpOworCisJCQljb250YWluZXIuQWRkQ29kZShTdHJpbmcuRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCBvYmpJZExlblZhci5UeXBlLk5hbWUpKTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wU2NhbGFyTm9kZU9jdGV0U3RyaW5nLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1NubXBTY2FsYXJOb2RlT2N0ZXRTdHJpbmcuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmYxMGY5YQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wU2NhbGFyTm9kZU9jdGV0U3RyaW5nLmNzCkBAIC0wLDAgKzEsMTE4IEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5UZXh0OwordXNpbmcgQ0NvZGVHZW5lcmF0aW9uOworCituYW1lc3BhY2UgTHdpcFNubXBDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBTbm1wU2NhbGFyTm9kZU9jdGV0U3RyaW5nIDogU25tcFNjYWxhck5vZGUKKwl7CisJCXB1YmxpYyBTbm1wU2NhbGFyTm9kZU9jdGV0U3RyaW5nKFNubXBEYXRhVHlwZSBkYXRhVHlwZSwgU25tcFRyZWVOb2RlIHBhcmVudE5vZGUpCisJCQk6IGJhc2UocGFyZW50Tm9kZSkKKwkJeworCQkJU3lzdGVtLkRpYWdub3N0aWNzLkRlYnVnLkFzc2VydCgKKwkJCQkoZGF0YVR5cGUgPT0gU25tcERhdGFUeXBlLk9jdGV0U3RyaW5nKSB8fCAKKwkJCQkgKGRhdGFUeXBlID09IFNubXBEYXRhVHlwZS5PcGFxdWUpIHx8IAorCQkJCSAoZGF0YVR5cGUgPT0gU25tcERhdGFUeXBlLklwQWRkcmVzcykpOworCisJCQl0aGlzLkRhdGFUeXBlID0gZGF0YVR5cGU7CisJCX0KKworCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBHZW5lcmF0ZUdldE1ldGhvZENvZGVDb3JlKENvZGVDb250YWluZXJCYXNlIGNvbnRhaW5lciwgc3RyaW5nIGxvY2FsVmFsdWVWYXJOYW1lLCByZWYgYm9vbCBsb2NhbFZhbHVlVmFyVXNlZCwgc3RyaW5nIHJldExlblZhck5hbWUpCisJCXsKKwkJCWlmICh0aGlzLlJlc3RyaWN0aW9ucy5Db3VudCA+IDApCisJCQl7CisJCQkJU3RyaW5nQnVpbGRlciBpZkNvbmQgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworCQkJCWZvcmVhY2ggKElSZXN0cmljdGlvbiByZXN0cmljdGlvbiBpbiB0aGlzLlJlc3RyaWN0aW9ucykKKwkJCQl7CisJCQkJCWlmQ29uZC5BcHBlbmQocmVzdHJpY3Rpb24uR2V0Q2hlY2tDb2RlVmFsaWQocmV0TGVuVmFyTmFtZSkpOworCQkJCQlpZkNvbmQuQXBwZW5kKCIgfHwgIik7CisJCQkJfQorCisJCQkJaWZDb25kLkxlbmd0aCAtPSA0OworCQkJCWNvbnRhaW5lci5BZGRFbGVtZW50KG5ldyBDb21tZW50KCJUT0RPOiB0YWtlIGNhcmUgb2YgbGVuIHJlc3RyaWN0aW9ucyBkZWZpbmVkIGluIE1JQjogIiArIGlmQ29uZCwgc2luZ2xlTGluZTogdHJ1ZSkpOworCQkJfQorCQkJYmFzZS5HZW5lcmF0ZUdldE1ldGhvZENvZGVDb3JlKGNvbnRhaW5lciwgbG9jYWxWYWx1ZVZhck5hbWUsIHJlZiBsb2NhbFZhbHVlVmFyVXNlZCwgcmV0TGVuVmFyTmFtZSk7CisJCX0KKworCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBHZW5lcmF0ZVRlc3RNZXRob2RDb2RlQ29yZShDb2RlQ29udGFpbmVyQmFzZSBjb250YWluZXIsIHN0cmluZyBsb2NhbFZhbHVlVmFyTmFtZSwgcmVmIGJvb2wgbG9jYWxWYWx1ZVZhclVzZWQsIHN0cmluZyBsZW5WYXJOYW1lLCByZWYgYm9vbCBsZW5WYXJVc2VkLCBzdHJpbmcgcmV0RXJyVmFyTmFtZSkKKwkJeworCQkJU3lzdGVtLkRpYWdub3N0aWNzLlRyYWNlLkFzc2VydCh0aGlzLlJlc3RyaWN0aW9ucy5Db3VudCA+IDApOworCisJCQkvLyBjaGVja3MgcmVmZXIgdG8gbGVuZ3RoIG9mIG9jdGV0IHN0cmluZworCQkJU3RyaW5nQnVpbGRlciBpZkNvbmQgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworCQkJZm9yZWFjaCAoSVJlc3RyaWN0aW9uIHJlc3RyaWN0aW9uIGluIHRoaXMuUmVzdHJpY3Rpb25zKQorCQkJeworCQkJCWlmQ29uZC5BcHBlbmQocmVzdHJpY3Rpb24uR2V0Q2hlY2tDb2RlVmFsaWQobGVuVmFyTmFtZSkpOworCQkJCWlmQ29uZC5BcHBlbmQoIiB8fCAiKTsKKworCQkJCWxlblZhclVzZWQgPSB0cnVlOworCQkJfQorCisJCQlpZkNvbmQuTGVuZ3RoIC09IDQ7CisKKwkJCUlmVGhlbkVsc2UgaXRlID0gbmV3IElmVGhlbkVsc2UoaWZDb25kLlRvU3RyaW5nKCkpOworCQkJaXRlLkFkZENvZGUoU3RyaW5nLkZvcm1hdCgiezB9ID0gezF9OyIsIHJldEVyclZhck5hbWUsIEx3aXBEZWZzLkRlZl9FcnJvckNvZGVfT2spKTsKKwkJCWNvbnRhaW5lci5BZGRFbGVtZW50KGl0ZSk7CisJCX0KKworCQlwdWJsaWMgb3ZlcnJpZGUgaW50IE9pZFJlcHJlc2VudGF0aW9uTGVuCisJCXsKKwkJCWdldAorCQkJeworCQkJCS8vIGNoZWNrIHJlc3RyaWN0aW9ucyBpZiB3ZSBhcmUgc2V0IHRvIG9uZSBmaXhlZCBsZW5ndGgKKwkJCQlpZiAoKHRoaXMuUmVzdHJpY3Rpb25zICE9IG51bGwpICYmICh0aGlzLlJlc3RyaWN0aW9ucy5Db3VudCA+IDApKQorCQkJCXsKKwkJCQkJZm9yZWFjaCAoSVJlc3RyaWN0aW9uIHJlc3RyaWN0aW9uIGluIHRoaXMuUmVzdHJpY3Rpb25zKQorCQkJCQl7CisJCQkJCQlpZiAocmVzdHJpY3Rpb24gaXMgSXNJblJhbmdlUmVzdHJpY3Rpb24pCisJCQkJCQl7CisJCQkJCQkJaWYgKChyZXN0cmljdGlvbiBhcyBJc0luUmFuZ2VSZXN0cmljdGlvbikuUmFuZ2VTdGFydCA9PSAocmVzdHJpY3Rpb24gYXMgSXNJblJhbmdlUmVzdHJpY3Rpb24pLlJhbmdlRW5kKQorCQkJCQkJCXsKKwkJCQkJCQkJcmV0dXJuIChpbnQpKHJlc3RyaWN0aW9uIGFzIElzSW5SYW5nZVJlc3RyaWN0aW9uKS5SYW5nZVN0YXJ0OworCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJCWVsc2UgaWYgKHJlc3RyaWN0aW9uIGlzIElzRXF1YWxSZXN0cmljdGlvbikKKwkJCQkJCXsKKwkJCQkJCQlyZXR1cm4gKGludCkocmVzdHJpY3Rpb24gYXMgSXNFcXVhbFJlc3RyaWN0aW9uKS5WYWx1ZTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCX0KKworCQkJCXJldHVybiAtMTsgLy8gdmFyaWFibGUgbGVuZ3RoCisJCQl9CisJCX0KKworCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wU2NhbGFyTm9kZVRydXRoVmFsdWUuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhck5vZGVUcnV0aFZhbHVlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmNTU3NTIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhck5vZGVUcnV0aFZhbHVlLmNzCkBAIC0wLDAgKzEsNjYgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOwordXNpbmcgQ0NvZGVHZW5lcmF0aW9uOworCituYW1lc3BhY2UgTHdpcFNubXBDb2RlR2VuZXJhdGlvbgoreworCXB1YmxpYyBjbGFzcyBTbm1wU2NhbGFyTm9kZVRydXRoVmFsdWUgOiBTbm1wU2NhbGFyTm9kZUludAorCXsKKwkJcHVibGljIFNubXBTY2FsYXJOb2RlVHJ1dGhWYWx1ZShTbm1wVHJlZU5vZGUgcGFyZW50Tm9kZSkKKwkJCTogYmFzZShwYXJlbnROb2RlKQorCQl7CisJCX0KKworCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBHZW5lcmF0ZUdldE1ldGhvZENvZGVDb3JlKENvZGVDb250YWluZXJCYXNlIGNvbnRhaW5lciwgc3RyaW5nIGxvY2FsVmFsdWVWYXJOYW1lLCByZWYgYm9vbCBsb2NhbFZhbHVlVmFyVXNlZCwgc3RyaW5nIHJldExlblZhck5hbWUpCisJCXsKKwkJCWNvbnRhaW5lci5BZGRDb2RlRm9ybWF0KCJzbm1wX2VuY29kZV90cnV0aHZhbHVlKHswfSwgLyogVE9ETzogcHV0IHJlcXVlc3RlZCBib29sIHZhbHVlIGhlcmUgKi8gMCk7IiwgbG9jYWxWYWx1ZVZhck5hbWUpOworCQkJbG9jYWxWYWx1ZVZhclVzZWQgPSB0cnVlOworCQkJCisJCQljb250YWluZXIuQWRkQ29kZShTdHJpbmcuRm9ybWF0KCJ7MH0gPSB7MX07IiwKKwkJCQlyZXRMZW5WYXJOYW1lLAorCQkJCSghU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh0aGlzLkZpeGVkVmFsdWVMZW5ndGgpKSA/IHRoaXMuRml4ZWRWYWx1ZUxlbmd0aCA6ICIwIikpOworCQl9CisKKwkJcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVTZXRNZXRob2RDb2RlQ29yZShDb2RlQ29udGFpbmVyQmFzZSBjb250YWluZXIsIHN0cmluZyBsb2NhbFZhbHVlVmFyTmFtZSwgcmVmIGJvb2wgbG9jYWxWYWx1ZVZhclVzZWQsIHN0cmluZyBsZW5WYXJOYW1lLCByZWYgYm9vbCBsZW5WYXJVc2VkLCBzdHJpbmcgcmV0RXJyVmFyTmFtZSkKKwkJeworCQkJVmFyaWFibGVUeXBlIHRydXRoVmFyID0gbmV3IFZhcmlhYmxlVHlwZSgiYm9vbF92YWx1ZSIsIEx3aXBEZWZzLlZ0X1U4KTsKKwkJCWNvbnRhaW5lci5EZWNsYXJhdGlvbnMuQWRkKG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKHRydXRoVmFyKSk7CisKKwkJCWNvbnRhaW5lci5BZGRDb2RlRm9ybWF0KCJzbm1wX2RlY29kZV90cnV0aHZhbHVlKHswfSwgJnsxfSk7IiwgbG9jYWxWYWx1ZVZhck5hbWUsIHRydXRoVmFyLk5hbWUpOworCQkJbG9jYWxWYWx1ZVZhclVzZWQgPSB0cnVlOworCisJCQljb250YWluZXIuQWRkRWxlbWVudChuZXcgQ29tbWVudChTdHJpbmcuRm9ybWF0KCJUT0RPOiBzdG9yZSBuZXcgdmFsdWUgY29udGFpbmVkIGluICd7MH0nIGhlcmUiLCB0cnV0aFZhci5OYW1lKSwgc2luZ2xlTGluZTogdHJ1ZSkpOyAKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wU2NhbGFyTm9kZVVpbnQuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhck5vZGVVaW50LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYzE2MWEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFNjYWxhck5vZGVVaW50LmNzCkBAIC0wLDAgKzEsOTEgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLlRleHQ7Cit1c2luZyBDQ29kZUdlbmVyYXRpb247CisKK25hbWVzcGFjZSBMd2lwU25tcENvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIFNubXBTY2FsYXJOb2RlVWludCA6IFNubXBTY2FsYXJOb2RlCisJeworCQlwdWJsaWMgU25tcFNjYWxhck5vZGVVaW50KFNubXBEYXRhVHlwZSBkYXRhVHlwZSwgU25tcFRyZWVOb2RlIHBhcmVudE5vZGUpCisJCQk6IGJhc2UocGFyZW50Tm9kZSkKKwkJeworCQkJU3lzdGVtLkRpYWdub3N0aWNzLkRlYnVnLkFzc2VydCgKKwkJCQkoZGF0YVR5cGUgPT0gU25tcERhdGFUeXBlLkNvdW50ZXIpIHx8IAorCQkJCSAoZGF0YVR5cGUgPT0gU25tcERhdGFUeXBlLkdhdWdlKSB8fCAKKwkJCQkgKGRhdGFUeXBlID09IFNubXBEYXRhVHlwZS5UaW1lVGlja3MpKTsKKworCQkJdGhpcy5EYXRhVHlwZSA9IGRhdGFUeXBlOworCQl9CisKKwkJcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGVUZXN0TWV0aG9kQ29kZUNvcmUoQ29kZUNvbnRhaW5lckJhc2UgY29udGFpbmVyLCBzdHJpbmcgbG9jYWxWYWx1ZVZhck5hbWUsIHJlZiBib29sIGxvY2FsVmFsdWVWYXJVc2VkLCBzdHJpbmcgbGVuVmFyTmFtZSwgcmVmIGJvb2wgbGVuVmFyVXNlZCwgc3RyaW5nIHJldEVyclZhck5hbWUpCisJCXsKKwkJCVN5c3RlbS5EaWFnbm9zdGljcy5UcmFjZS5Bc3NlcnQodGhpcy5SZXN0cmljdGlvbnMuQ291bnQgPiAwKTsKKworCQkJU3RyaW5nQnVpbGRlciBpZkNvbmQgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworCQkJZm9yZWFjaCAoSVJlc3RyaWN0aW9uIHJlc3RyaWN0aW9uIGluIHRoaXMuUmVzdHJpY3Rpb25zKQorCQkJeworCQkJCWlmQ29uZC5BcHBlbmQocmVzdHJpY3Rpb24uR2V0Q2hlY2tDb2RlVmFsaWQoIioiICsgbG9jYWxWYWx1ZVZhck5hbWUpKTsKKwkJCQlpZkNvbmQuQXBwZW5kKCIgfHwgIik7CisKKwkJCQlsb2NhbFZhbHVlVmFyVXNlZCA9IHRydWU7CisJCQl9CisKKwkJCWlmQ29uZC5MZW5ndGggLT0gNDsKKworCQkJSWZUaGVuRWxzZSBpdGUgPSBuZXcgSWZUaGVuRWxzZShpZkNvbmQuVG9TdHJpbmcoKSk7CisJCQlpdGUuQWRkQ29kZShTdHJpbmcuRm9ybWF0KCJ7MH0gPSB7MX07IiwgcmV0RXJyVmFyTmFtZSwgTHdpcERlZnMuRGVmX0Vycm9yQ29kZV9PaykpOworCQkJY29udGFpbmVyLkFkZEVsZW1lbnQoaXRlKTsKKwkJfQorCisJCXByb3RlY3RlZCBvdmVycmlkZSBib29sIEdlbmVyYXRlVmFsdWVEZWNsYXJhdGlvbihDb2RlQ29udGFpbmVyQmFzZSBjb250YWluZXIsIHN0cmluZyB2YXJpYWJsZU5hbWUsIHN0cmluZyBzb3VyY2VOYW1lKQorCQl7CisJCQljb250YWluZXIuQWRkRGVjbGFyYXRpb24obmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oCisJCQkJbmV3IFZhcmlhYmxlVHlwZSh2YXJpYWJsZU5hbWUsIEx3aXBEZWZzLlZ0X1UzMiwgIioiKSwKKwkJCQkiKCIgKyBuZXcgVmFyaWFibGVUeXBlKG51bGwsIEx3aXBEZWZzLlZ0X1UzMiwgIioiKSArICIpIiArIHNvdXJjZU5hbWUpKTsKKworCQkJcmV0dXJuIHRydWU7CisJCX0KKworCQlwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIEZpeGVkVmFsdWVMZW5ndGgKKwkJeworCQkJZ2V0IHsgcmV0dXJuIFN0cmluZy5Gb3JtYXQoInNpemVvZih7MH0pIiwgTHdpcERlZnMuVnRfVTMyKTsgfQorCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIGludCBPaWRSZXByZXNlbnRhdGlvbkxlbgorCQl7CisJCQlnZXQgeyByZXR1cm4gMTsgfQorCQl9CisJfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1NubXBUYWJsZU5vZGUuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFRhYmxlTm9kZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xM2EzYmYyCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9Md2lwU25tcENvZGVHZW5lcmF0aW9uL1NubXBUYWJsZU5vZGUuY3MKQEAgLTAsMCArMSwzMzIgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cit1c2luZyBTeXN0ZW0uVGV4dDsKK3VzaW5nIENDb2RlR2VuZXJhdGlvbjsKKworbmFtZXNwYWNlIEx3aXBTbm1wQ29kZUdlbmVyYXRpb24KK3sKKwlwdWJsaWMgY2xhc3MgU25tcFRhYmxlTm9kZTogU25tcFNjYWxhckFnZ3JlZ2F0aW9uTm9kZQorCXsKKwkJcHJpdmF0ZSByZWFkb25seSBMaXN0PFNubXBTY2FsYXJOb2RlPiBjZWxsTm9kZXMgPSBuZXcgTGlzdDxTbm1wU2NhbGFyTm9kZT4oKTsKKwkJcHJpdmF0ZSByZWFkb25seSBMaXN0PFNubXBTY2FsYXJOb2RlPiBpbmRleE5vZGVzID0gbmV3IExpc3Q8U25tcFNjYWxhck5vZGU+KCk7CisJCXByaXZhdGUgc3RyaW5nIGF1Z21lbnRlZFRhYmxlUm93ID0gbnVsbDsKKworCisJCXB1YmxpYyBTbm1wVGFibGVOb2RlKFNubXBUcmVlTm9kZSBwYXJlbnROb2RlKQorCQkJOiBiYXNlKHBhcmVudE5vZGUpCisJCXsKKwkJfQorCisJCXB1YmxpYyBMaXN0PFNubXBTY2FsYXJOb2RlPiBDZWxsTm9kZXMKKwkJeworCQkJZ2V0IHsgcmV0dXJuIGNlbGxOb2RlczsgfQorCQl9CisKKwkJcHVibGljIExpc3Q8U25tcFNjYWxhck5vZGU+IEluZGV4Tm9kZXMKKwkJeworCQkJZ2V0IHsgcmV0dXJuIGluZGV4Tm9kZXM7IH0KKwkJfQorCisJCXB1YmxpYyBzdHJpbmcgQXVnbWVudGVkVGFibGVSb3cKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuYXVnbWVudGVkVGFibGVSb3c7IH0KKwkJCXNldCB7IHRoaXMuYXVnbWVudGVkVGFibGVSb3cgPSB2YWx1ZTsgfQorCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHN0cmluZyBGdWxsTm9kZU5hbWUKKwkJeworCQkJZ2V0CisJCQl7CisJCQkJc3RyaW5nIHJlc3VsdCA9IHRoaXMuTmFtZS5Ub0xvd2VySW52YXJpYW50KCk7CisJCQkJaWYgKCFyZXN1bHQuQ29udGFpbnMoInRhYmxlIikpCisJCQkJeworCQkJCQlyZXN1bHQgKz0gIl90YWJsZSI7CisJCQkJfQorCisJCQkJcmV0dXJuIHJlc3VsdDsJCQkJCisJCQl9CisJCX0KKworCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgSUVudW1lcmFibGU8U25tcFNjYWxhck5vZGU+IEFnZ3JlZ2F0ZWRTY2FsYXJOb2RlcworCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5jZWxsTm9kZXM7IH0KKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShNaWJDRmlsZSBtaWJGaWxlKQorCQl7CisJCQlGdW5jdGlvbkRlY2xhcmF0aW9uIGdldEluc3RhbmNlTWV0aG9kRGVjbCA9IG5ldyBGdW5jdGlvbkRlY2xhcmF0aW9uKHRoaXMuRnVsbE5vZGVOYW1lICsgTHdpcERlZnMuRm5jdFN1ZmZpeF9HZXRJbnN0YW5jZSwgaXNTdGF0aWM6IHRydWUpOworCQkJZ2V0SW5zdGFuY2VNZXRob2REZWNsLlBhcmFtZXRlci5BZGQobmV3IFZhcmlhYmxlVHlwZSgiY29sdW1uIiwgTHdpcERlZnMuVnRfVTMyLCAiKiIsIENvbnN0VHlwZS5WYWx1ZSkpOworCQkJZ2V0SW5zdGFuY2VNZXRob2REZWNsLlBhcmFtZXRlci5BZGQobmV3IFZhcmlhYmxlVHlwZSgicm93X29pZCIsIEx3aXBEZWZzLlZ0X1UzMiwgIioiLCBDb25zdFR5cGUuVmFsdWUpKTsKKwkJCWdldEluc3RhbmNlTWV0aG9kRGVjbC5QYXJhbWV0ZXIuQWRkKG5ldyBWYXJpYWJsZVR5cGUoInJvd19vaWRfbGVuIiwgTHdpcERlZnMuVnRfVTgsICIiKSk7CisJCQlnZXRJbnN0YW5jZU1ldGhvZERlY2wuUGFyYW1ldGVyLkFkZChuZXcgVmFyaWFibGVUeXBlKCJjZWxsX2luc3RhbmNlIiwgTHdpcERlZnMuVnRfU3ROb2RlSW5zdGFuY2UsICIqIikpOworCQkJZ2V0SW5zdGFuY2VNZXRob2REZWNsLlJldHVyblR5cGUgPSBuZXcgVmFyaWFibGVUeXBlKG51bGwsIEx3aXBEZWZzLlZ0X1NubXBfZXJyKTsKKwkJCW1pYkZpbGUuRGVjbGFyYXRpb25zLkFkZChnZXRJbnN0YW5jZU1ldGhvZERlY2wpOworCisJCQlGdW5jdGlvbiBnZXRJbnN0YW5jZU1ldGhvZCA9IEZ1bmN0aW9uLkZyb21EZWNsYXJhdGlvbihnZXRJbnN0YW5jZU1ldGhvZERlY2wpOworCQkJR2VuZXJhdGVHZXRJbnN0YW5jZU1ldGhvZENvZGUoZ2V0SW5zdGFuY2VNZXRob2QpOworCQkJbWliRmlsZS5JbXBsZW1lbnRhdGlvbi5BZGQoZ2V0SW5zdGFuY2VNZXRob2QpOworCisKKwkJCUZ1bmN0aW9uRGVjbGFyYXRpb24gZ2V0TmV4dEluc3RhbmNlTWV0aG9kRGVjbCA9IG5ldyBGdW5jdGlvbkRlY2xhcmF0aW9uKHRoaXMuRnVsbE5vZGVOYW1lICsgTHdpcERlZnMuRm5jdFN1ZmZpeF9HZXROZXh0SW5zdGFuY2UsIGlzU3RhdGljOiB0cnVlKTsKKwkJCWdldE5leHRJbnN0YW5jZU1ldGhvZERlY2wuUGFyYW1ldGVyLkFkZChuZXcgVmFyaWFibGVUeXBlKCJjb2x1bW4iLCBMd2lwRGVmcy5WdF9VMzIsICIqIiwgQ29uc3RUeXBlLlZhbHVlKSk7CisJCQlnZXROZXh0SW5zdGFuY2VNZXRob2REZWNsLlBhcmFtZXRlci5BZGQobmV3IFZhcmlhYmxlVHlwZSgicm93X29pZCIsIEx3aXBEZWZzLlZ0X1N0T2JqZWN0SWQsICIqIikpOworCQkJZ2V0TmV4dEluc3RhbmNlTWV0aG9kRGVjbC5QYXJhbWV0ZXIuQWRkKG5ldyBWYXJpYWJsZVR5cGUoImNlbGxfaW5zdGFuY2UiLCBMd2lwRGVmcy5WdF9TdE5vZGVJbnN0YW5jZSwgIioiKSk7CisJCQlnZXROZXh0SW5zdGFuY2VNZXRob2REZWNsLlJldHVyblR5cGUgPSBuZXcgVmFyaWFibGVUeXBlKG51bGwsIEx3aXBEZWZzLlZ0X1NubXBfZXJyKTsKKwkJCW1pYkZpbGUuRGVjbGFyYXRpb25zLkFkZChnZXROZXh0SW5zdGFuY2VNZXRob2REZWNsKTsKKworCQkJRnVuY3Rpb24gZ2V0TmV4dEluc3RhbmNlTWV0aG9kID0gRnVuY3Rpb24uRnJvbURlY2xhcmF0aW9uKGdldE5leHRJbnN0YW5jZU1ldGhvZERlY2wpOworCQkJR2VuZXJhdGVHZXROZXh0SW5zdGFuY2VNZXRob2RDb2RlKGdldE5leHRJbnN0YW5jZU1ldGhvZCk7CisJCQltaWJGaWxlLkltcGxlbWVudGF0aW9uLkFkZChnZXROZXh0SW5zdGFuY2VNZXRob2QpOworCisJCQkKKwkJCVZhcmlhYmxlVHlwZSBpbnN0YW5jZVR5cGUgPSBuZXcgVmFyaWFibGVUeXBlKCJjZWxsX2luc3RhbmNlIiwgTHdpcERlZnMuVnRfU3ROb2RlSW5zdGFuY2UsICIqIik7CisJCQlHZW5lcmF0ZUFnZ3JlZ2F0ZWRDb2RlKAorCQkJCW1pYkZpbGUsCisJCQkJaW5zdGFuY2VUeXBlLAorCQkJCVN0cmluZy5Gb3JtYXQoIlNOTVBfVEFCTEVfR0VUX0NPTFVNTl9GUk9NX09JRCh7MH0tPmluc3RhbmNlX29pZC5pZCkiLCBpbnN0YW5jZVR5cGUuTmFtZSkpOworCisKKwkJCSNyZWdpb24gY3JlYXRlIGFuZCBhZGQgY29sdW1uL3RhYmxlIGRlZmluaXRpb25zCisKKwkJCVN0cmluZ0J1aWxkZXIgY29sRGVmcyA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CisJCQlmb3JlYWNoIChTbm1wU2NhbGFyTm9kZSBjb2xOb2RlIGluIHRoaXMuY2VsbE5vZGVzKQorCQkJeworCQkJCWNvbERlZnMuQXBwZW5kRm9ybWF0KCIgIHt7ezB9LCB7MX0sIHsyfX19LCAvKiB7M30gKi8gXG4iLAorCQkJCQljb2xOb2RlLk9pZCwKKwkJCQkJTHdpcERlZnMuR2V0QXNuMURlZkZvclNubXBEYXRhVHlwZShjb2xOb2RlLkRhdGFUeXBlKSwKKwkJCQkJTHdpcERlZnMuR2V0THdpcERlZkZvclNubXBBY2Nlc3NNb2RlKGNvbE5vZGUuQWNjZXNzTW9kZSksCisJCQkJCWNvbE5vZGUuTmFtZSk7CisJCQl9CisJCQlpZiAoY29sRGVmcy5MZW5ndGggPiAwKQorCQkJeworCQkJCWNvbERlZnMuTGVuZ3RoLS07CisJCQl9CisKKwkJCVZhcmlhYmxlRGVjbGFyYXRpb24gY29sRGVmc0RlY2wgPSBuZXcgVmFyaWFibGVEZWNsYXJhdGlvbigKKwkJCQluZXcgVmFyaWFibGVUeXBlKHRoaXMuRnVsbE5vZGVOYW1lICsgIl9jb2x1bW5zIiwgTHdpcERlZnMuVnRfU3RUYWJsZUNvbHVtbkRlZiwgbnVsbCwgQ29uc3RUeXBlLlZhbHVlLCBTdHJpbmcuRW1wdHkpLAorCQkJCSJ7XG4iICsgY29sRGVmcyArICJcbn0iLAorCQkJCWlzU3RhdGljOiB0cnVlKTsKKworCQkJbWliRmlsZS5EZWNsYXJhdGlvbnMuQWRkKGNvbERlZnNEZWNsKTsKKworCQkJc3RyaW5nIG5vZGVJbml0aWFsaXphdGlvbiA9IFN0cmluZy5Gb3JtYXQoIlNOTVBfVEFCTEVfQ1JFQVRFKHswfSwgezF9LCB7Mn0sIHszfSwgezR9LCB7NX0sIHs2fSkiLAorCQkJCXRoaXMuT2lkLAorCQkJCWNvbERlZnNEZWNsLlR5cGUuTmFtZSwKKwkJCQlnZXRJbnN0YW5jZU1ldGhvZERlY2wuTmFtZSwgZ2V0TmV4dEluc3RhbmNlTWV0aG9kRGVjbC5OYW1lLAorCQkJCSh0aGlzLkdldE1ldGhvZFJlcXVpcmVkKSA/IHRoaXMuR2V0TWV0aG9kTmFtZSA6IEx3aXBEZWZzLk51bGwsCisJCQkJKHRoaXMuVGVzdE1ldGhvZFJlcXVpcmVkKSA/IHRoaXMuVGVzdE1ldGhvZE5hbWUgOiBMd2lwRGVmcy5OdWxsLAorCQkJCSh0aGlzLlNldE1ldGhvZFJlcXVpcmVkKSA/IHRoaXMuU2V0TWV0aG9kTmFtZSA6IEx3aXBEZWZzLk51bGwKKwkJCQkpOworCisJCQltaWJGaWxlLkRlY2xhcmF0aW9ucy5BZGQobmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oCisJCQkJbmV3IFZhcmlhYmxlVHlwZSh0aGlzLkZ1bGxOb2RlTmFtZSwgTHdpcERlZnMuVnRfU3RUYWJsZU5vZGUsIG51bGwsIENvbnN0VHlwZS5WYWx1ZSksCisJCQkJbm9kZUluaXRpYWxpemF0aW9uLAorCQkJCWlzU3RhdGljOiB0cnVlKSk7CisJCQkJCQkJCisJCQkjZW5kcmVnaW9uCisJCX0KKworCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEdlbmVyYXRlR2V0SW5zdGFuY2VNZXRob2RDb2RlKEZ1bmN0aW9uIGdldEluc3RhbmNlTWV0aG9kKQorCQl7CisJCQlWYXJpYWJsZURlY2xhcmF0aW9uIHJldHVyblZhbHVlID0gbmV3IFZhcmlhYmxlRGVjbGFyYXRpb24oKFZhcmlhYmxlVHlwZSlnZXRJbnN0YW5jZU1ldGhvZC5SZXR1cm5UeXBlLkNsb25lKCksIEx3aXBEZWZzLkRlZl9FcnJvckNvZGVfTm9TdWNoSW5zdGFuY2UpOworCQkJcmV0dXJuVmFsdWUuVHlwZS5OYW1lID0gImVyciI7CisJCQlnZXRJbnN0YW5jZU1ldGhvZC5EZWNsYXJhdGlvbnMuQWRkKHJldHVyblZhbHVlKTsKKworCQkJaW50IGluc3RhbmNlT2lkTGVuZ3RoID0gMDsKKwkJCVN0cmluZ0J1aWxkZXIgaW5kZXhDb2x1bW5zID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKwkJCWZvcmVhY2ggKFNubXBTY2FsYXJOb2RlIGluZGV4Tm9kZSBpbiB0aGlzLmluZGV4Tm9kZXMpCisJCQl7CisJCQkJaWYgKGluc3RhbmNlT2lkTGVuZ3RoID49IDApCisJCQkJeworCQkJCQlpZiAoaW5kZXhOb2RlLk9pZFJlcHJlc2VudGF0aW9uTGVuID49IDApCisJCQkJCXsKKwkJCQkJCWluc3RhbmNlT2lkTGVuZ3RoICs9IGluZGV4Tm9kZS5PaWRSZXByZXNlbnRhdGlvbkxlbjsKKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCS8vIGF0IGxlYXN0IG9uZSBpbmRleCBjb2x1bW4gaGFzIGEgdmFyaWFibGUgbGVuZ3RoIC0+IHdlIGNhbm5vdCBwZXJmb3JtIGEgc3RhdGljIGNoZWNrCisJCQkJCQlpbnN0YW5jZU9pZExlbmd0aCA9IC0xOworCQkJCQl9CisJCQkJfQorCisJCQkJaW5kZXhDb2x1bW5zLkFwcGVuZEZvcm1hdCgKKwkJCQkJIiB7MH0gKHsxfSwgT0lEIGxlbmd0aCA9IHsyfSlcbiIsCisJCQkJCWluZGV4Tm9kZS5OYW1lLAorCQkJCQlpbmRleE5vZGUuRGF0YVR5cGUsCisJCQkJCShpbmRleE5vZGUuT2lkUmVwcmVzZW50YXRpb25MZW4gPj0gMCkgPyBpbmRleE5vZGUuT2lkUmVwcmVzZW50YXRpb25MZW4uVG9TdHJpbmcoKSA6ICJ2YXJpYWJsZSIpOworCQkJfQorCQkJaWYgKGluZGV4Q29sdW1ucy5MZW5ndGggPiAwKQorCQkJeworCQkJCWluZGV4Q29sdW1ucy5MZW5ndGgtLTsKKworCQkJCWdldEluc3RhbmNlTWV0aG9kLkRlY2xhcmF0aW9ucy5JbnNlcnQoMCwgbmV3IENvbW1lbnQoU3RyaW5nLkZvcm1hdCgKKwkJCQkJIlRoZSBpbnN0YW5jZSBPSUQgb2YgdGhpcyB0YWJsZSBjb25zaXN0cyBvZiBmb2xsb3dpbmcgKGluZGV4KSBjb2x1bW4ocyk6XG57MH0iLAorCQkJCQlpbmRleENvbHVtbnMpKSk7CisJCQl9CisKKwkJCXN0cmluZyBhdWdtZW50c0hpbnQgPSAiIjsKKwkJCWlmICghU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh0aGlzLmF1Z21lbnRlZFRhYmxlUm93KSkKKwkJCXsKKwkJCQlhdWdtZW50c0hpbnQgPSBTdHJpbmcuRm9ybWF0KAorCQkJCQkiVGhpcyB0YWJsZSBhdWdtZW50cyB0YWJsZSAnezB9JyEgSW5kZXggY29sdW1ucyB0aGVyZWZvcmUgYmVsb25nIHRvIHRhYmxlICd7MH0nIVxuIiArIAorCQkJCQkiWW91IG1heSBzaW1wbHkgY2FsbCB0aGUgJyp7MX0nIG1ldGhvZCBvZiB0aGlzIHRhYmxlLlxuXG4iLAorCQkJCQkodGhpcy5hdWdtZW50ZWRUYWJsZVJvdy5Ub0xvd2VySW52YXJpYW50KCkuRW5kc1dpdGgoImVudHJ5IikpID8gdGhpcy5hdWdtZW50ZWRUYWJsZVJvdy5TdWJzdHJpbmcoMCwgdGhpcy5hdWdtZW50ZWRUYWJsZVJvdy5MZW5ndGgtNSkgOiB0aGlzLmF1Z21lbnRlZFRhYmxlUm93LAorCQkJCQlMd2lwRGVmcy5GbmN0U3VmZml4X0dldEluc3RhbmNlKTsKKwkJCX0KKworCQkJQ29kZUNvbnRhaW5lckJhc2UgY2NiID0gZ2V0SW5zdGFuY2VNZXRob2Q7CisJCQlpZiAoaW5zdGFuY2VPaWRMZW5ndGggPiAwKQorCQkJeworCQkJCUlmVGhlbkVsc2UgaXRlID0gbmV3IElmVGhlbkVsc2UoU3RyaW5nLkZvcm1hdCgiezB9ID09IHsxfSIsIGdldEluc3RhbmNlTWV0aG9kLlBhcmFtZXRlclsyXS5OYW1lLCBpbnN0YW5jZU9pZExlbmd0aCkpOworCQkJCWdldEluc3RhbmNlTWV0aG9kLkFkZEVsZW1lbnQoaXRlKTsKKwkJCQljY2IgPSBpdGU7CisJCQl9CisKKwkJCWNjYi5BZGRDb2RlRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCBnZXRJbnN0YW5jZU1ldGhvZC5QYXJhbWV0ZXJbMF0uTmFtZSk7CisJCQljY2IuQWRkQ29kZUZvcm1hdCgiTFdJUF9VTlVTRURfQVJHKHswfSk7IiwgZ2V0SW5zdGFuY2VNZXRob2QuUGFyYW1ldGVyWzFdLk5hbWUpOworCQkJaWYgKGluc3RhbmNlT2lkTGVuZ3RoIDw9IDApCisJCQl7CisJCQkJY2NiLkFkZENvZGVGb3JtYXQoIkxXSVBfVU5VU0VEX0FSRyh7MH0pOyIsIGdldEluc3RhbmNlTWV0aG9kLlBhcmFtZXRlclsyXS5OYW1lKTsKKwkJCX0KKwkJCWNjYi5BZGRDb2RlRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCBnZXRJbnN0YW5jZU1ldGhvZC5QYXJhbWV0ZXJbM10uTmFtZSk7CisKKwkJCWNjYi5BZGRFbGVtZW50KG5ldyBDb21tZW50KFN0cmluZy5Gb3JtYXQoCisJCQkJIlRPRE86IGNoZWNrIGlmICd7MH0nLyd7MX0nIHBhcmFtcyBjb250YWluIGEgdmFsaWQgaW5zdGFuY2Ugb2lkIGZvciBhIHJvd1xuIiArCisJCQkJIklmIHNvLCBzZXQgJ3syfSA9IHszfTsnXG5cbiIgKyAKKwkJCQkic25tcF9vaWRfKiBtZXRob2RzIG1heSBiZSB1c2VkIGZvciBlYXNpZXIgcHJvY2Vzc2luZyBvZiBvaWRcblxuIiArIAorCQkJCSJ7NH0iICsgCisJCQkJIkluIG9yZGVyIHRvIGF2b2lkIGRlY29kaW5nIE9JRCBhIHNlY29uZCB0aW1lIGluIHN1YnNlcXVlbnQgZ2V0X3ZhbHVlL3NldF90ZXN0L3NldF92YWx1ZSBtZXRob2RzLFxuIiArCisJCQkJInlvdSBtYXkgc3RvcmUgYW4gYXJiaXRyYXJ5IHZhbHVlIChsaWtlIGEgcG9pbnRlciB0byB0YXJnZXQgdmFsdWUgb2JqZWN0KSBpbiAnezV9LT5yZWZlcmVuY2UnLyd7NX0tPnJlZmVyZW5jZV9sZW4nLlxuIiArCisJCQkJIkJ1dCBiZSBhd2FyZSB0aGF0IG5vdCBhbHdheXMgYSBzdWJzZXF1ZW50IG1ldGhvZCBpcyBjYWxsZWQgLT4gRG8gTk9UIGFsbG9jYXRlIG1lbW9yeSBoZXJlIGFuZCB0cnkgdG8gcmVsZWFzZSBpdCBpbiBzdWJzZXF1ZW50IG1ldGhvZHMhXG5cbiIgKworCQkJCSJZb3UgYWxzbyBtYXkgcmVwbGFjZSBmdW5jdGlvbiBwb2ludGVycyBpbiAnezV9JyBwYXJhbSBmb3IgZ2V0L3Rlc3Qvc2V0IG1ldGhvZHMgd2hpY2ggY29udGFpbiB0aGUgZGVmYXVsdCB2YWx1ZXMgZnJvbSB0YWJsZSBkZWZpbml0aW9uLFxuIiArCisJCQkJImluIG9yZGVyIHRvIHByb3ZpZGUgc3BlY2lhbCBtZXRob2RzLCBmb3IgdGhlIGN1cnJlbnRseSBwcm9jZXNzZWQgY2VsbC4gQ2hhbmdlZCBwb2ludGVycyBhcmUgb25seSB2YWxpZCBmb3IgY3VycmVudCByZXF1ZXN0LiIsCisJCQkJZ2V0SW5zdGFuY2VNZXRob2QuUGFyYW1ldGVyWzFdLk5hbWUsCisJCQkJZ2V0SW5zdGFuY2VNZXRob2QuUGFyYW1ldGVyWzJdLk5hbWUsCisJCQkJcmV0dXJuVmFsdWUuVHlwZS5OYW1lLAorCQkJCUx3aXBEZWZzLkRlZl9FcnJvckNvZGVfT2ssCisJCQkJYXVnbWVudHNIaW50LAorCQkJCWdldEluc3RhbmNlTWV0aG9kLlBhcmFtZXRlclszXS5OYW1lCisJCQkJKSkpOworCisJCQlnZXRJbnN0YW5jZU1ldGhvZC5BZGRDb2RlRm9ybWF0KCJyZXR1cm4gezB9OyIsIHJldHVyblZhbHVlLlR5cGUuTmFtZSk7CisJCX0KKworCQlwcm90ZWN0ZWQgdmlydHVhbCB2b2lkIEdlbmVyYXRlR2V0TmV4dEluc3RhbmNlTWV0aG9kQ29kZShGdW5jdGlvbiBnZXROZXh0SW5zdGFuY2VNZXRob2QpCisJCXsKKwkJCWdldE5leHRJbnN0YW5jZU1ldGhvZC5BZGRDb2RlRm9ybWF0KCJMV0lQX1VOVVNFRF9BUkcoezB9KTsiLCBnZXROZXh0SW5zdGFuY2VNZXRob2QuUGFyYW1ldGVyWzBdLk5hbWUpOworCQkJZ2V0TmV4dEluc3RhbmNlTWV0aG9kLkFkZENvZGVGb3JtYXQoIkxXSVBfVU5VU0VEX0FSRyh7MH0pOyIsIGdldE5leHRJbnN0YW5jZU1ldGhvZC5QYXJhbWV0ZXJbMV0uTmFtZSk7CisJCQlnZXROZXh0SW5zdGFuY2VNZXRob2QuQWRkQ29kZUZvcm1hdCgiTFdJUF9VTlVTRURfQVJHKHswfSk7IiwgZ2V0TmV4dEluc3RhbmNlTWV0aG9kLlBhcmFtZXRlclsyXS5OYW1lKTsKKworCQkJVmFyaWFibGVEZWNsYXJhdGlvbiByZXR1cm5WYWx1ZSA9IG5ldyBWYXJpYWJsZURlY2xhcmF0aW9uKChWYXJpYWJsZVR5cGUpZ2V0TmV4dEluc3RhbmNlTWV0aG9kLlJldHVyblR5cGUuQ2xvbmUoKSwgTHdpcERlZnMuRGVmX0Vycm9yQ29kZV9Ob1N1Y2hJbnN0YW5jZSk7CisJCQlyZXR1cm5WYWx1ZS5UeXBlLk5hbWUgPSAiZXJyIjsKKwkJCWdldE5leHRJbnN0YW5jZU1ldGhvZC5EZWNsYXJhdGlvbnMuQWRkKHJldHVyblZhbHVlKTsKKworCQkJU3RyaW5nQnVpbGRlciBpbmRleENvbHVtbnMgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworCQkJZm9yZWFjaCAoU25tcFNjYWxhck5vZGUgaW5kZXhOb2RlIGluIHRoaXMuaW5kZXhOb2RlcykKKwkJCXsKKwkJCQlpbmRleENvbHVtbnMuQXBwZW5kRm9ybWF0KAorCQkJCQkiIHswfSAoezF9LCBPSUQgbGVuZ3RoID0gezJ9KVxuIiwKKwkJCQkJaW5kZXhOb2RlLk5hbWUsCisJCQkJCWluZGV4Tm9kZS5EYXRhVHlwZSwKKwkJCQkJKGluZGV4Tm9kZS5PaWRSZXByZXNlbnRhdGlvbkxlbiA+PSAwKSA/IGluZGV4Tm9kZS5PaWRSZXByZXNlbnRhdGlvbkxlbi5Ub1N0cmluZygpIDogInZhcmlhYmxlIik7CisJCQl9CisJCQlpZiAoaW5kZXhDb2x1bW5zLkxlbmd0aCA+IDApCisJCQl7CisJCQkJaW5kZXhDb2x1bW5zLkxlbmd0aC0tOworCisJCQkJZ2V0TmV4dEluc3RhbmNlTWV0aG9kLkRlY2xhcmF0aW9ucy5JbnNlcnQoMCwgbmV3IENvbW1lbnQoU3RyaW5nLkZvcm1hdCgKKwkJCQkJIlRoZSBpbnN0YW5jZSBPSUQgb2YgdGhpcyB0YWJsZSBjb25zaXN0cyBvZiBmb2xsb3dpbmcgKGluZGV4KSBjb2x1bW4ocyk6XG57MH0iLAorCQkJCQlpbmRleENvbHVtbnMpKSk7CisJCQl9CisKKwkJCXN0cmluZyBhdWdtZW50c0hpbnQgPSAiIjsKKwkJCWlmICghU3RyaW5nLklzTnVsbE9yV2hpdGVTcGFjZSh0aGlzLmF1Z21lbnRlZFRhYmxlUm93KSkKKwkJCXsKKwkJCQlhdWdtZW50c0hpbnQgPSBTdHJpbmcuRm9ybWF0KAorCQkJCQkiVGhpcyB0YWJsZSBhdWdtZW50cyB0YWJsZSAnezB9JyEgSW5kZXggY29sdW1ucyB0aGVyZWZvcmUgYmVsb25nIHRvIHRhYmxlICd7MH0nIVxuIiArIAorCQkJCQkiWW91IG1heSBzaW1wbHkgY2FsbCB0aGUgJyp7MX0nIG1ldGhvZCBvZiB0aGlzIHRhYmxlLlxuXG4iLAorCQkJCQkodGhpcy5hdWdtZW50ZWRUYWJsZVJvdy5Ub0xvd2VySW52YXJpYW50KCkuRW5kc1dpdGgoImVudHJ5IikpID8gdGhpcy5hdWdtZW50ZWRUYWJsZVJvdy5TdWJzdHJpbmcoMCwgdGhpcy5hdWdtZW50ZWRUYWJsZVJvdy5MZW5ndGgtNSkgOiB0aGlzLmF1Z21lbnRlZFRhYmxlUm93LAorCQkJCQlMd2lwRGVmcy5GbmN0U3VmZml4X0dldE5leHRJbnN0YW5jZSk7CisJCQl9CisKKwkJCWdldE5leHRJbnN0YW5jZU1ldGhvZC5BZGRFbGVtZW50KG5ldyBDb21tZW50KFN0cmluZy5Gb3JtYXQoCisJCQkJIlRPRE86IGFuYWx5emUgJ3swfS0+aWQnLyd7MH0tPmxlbicgYW5kIHJldHVybiB0aGUgc3Vic2VxdWVudCByb3cgaW5zdGFuY2VcbiIgKworCQkJCSJCZSBhd2FyZSB0aGF0ICd7MH0tPmlkJy8nezB9LT5sZW4nIG11c3Qgbm90IHBvaW50IHRvIGEgdmFsaWQgaW5zdGFuY2Ugb3IgaGF2ZSBjb3JyZWN0IGluc3RhbmNlIGxlbmd0aC5cbiIgKworCQkJCSJJZiAnezB9LT5sZW4nIGlzIDAsIHJldHVybiB0aGUgZmlyc3QgaW5zdGFuY2UuIElmICd7MH0tPmxlbicgaXMgbG9uZ2VyIHRoYW4gZXhwZWN0ZWQsIGN1dCBzdXBlcmZsdW91cyBPSUQgcGFydHMuXG4iICsKKwkJCQkiSWYgYSB2YWxpZCBuZXh0IGluc3RhbmNlIGlzIGZvdW5kLCBzdG9yZSBpdCBpbiAnezB9LT5pZCcvJ3swfS0+bGVuJyBhbmQgc2V0ICd7MX0gPSB7Mn07J1xuXG4iICsgCisJCQkJInNubXBfb2lkXyogbWV0aG9kcyBtYXkgYmUgdXNlZCBmb3IgZWFzaWVyIHByb2Nlc3Npbmcgb2Ygb2lkXG5cbiIgKyAKKwkJCQkiezN9IiArIAorCQkJCSJJbiBvcmRlciB0byBhdm9pZCBkZWNvZGluZyBPSUQgYSBzZWNvbmQgdGltZSBpbiBzdWJzZXF1ZW50IGdldF92YWx1ZS9zZXRfdGVzdC9zZXRfdmFsdWUgbWV0aG9kcyxcbiIgKworCQkJCSJ5b3UgbWF5IHN0b3JlIGFuIGFyYml0cmFyeSB2YWx1ZSAobGlrZSBhIHBvaW50ZXIgdG8gdGFyZ2V0IHZhbHVlIG9iamVjdCkgaW4gJ3s0fS0+cmVmZXJlbmNlJy8nezR9LT5yZWZlcmVuY2VfbGVuJy5cbiIgKworCQkJCSJCdXQgYmUgYXdhcmUgdGhhdCBub3QgYWx3YXlzIGEgc3Vic2VxdWVudCBtZXRob2QgaXMgY2FsbGVkIC0+IERvIE5PVCBhbGxvY2F0ZSBtZW1vcnkgaGVyZSBhbmQgdHJ5IHRvIHJlbGVhc2UgaXQgaW4gc3Vic2VxdWVudCBtZXRob2RzIVxuXG4iICsKKwkJCQkiWW91IGFsc28gbWF5IHJlcGxhY2UgZnVuY3Rpb24gcG9pbnRlcnMgaW4gJ3s0fScgcGFyYW0gZm9yIGdldC90ZXN0L3NldCBtZXRob2RzIHdoaWNoIGNvbnRhaW4gdGhlIGRlZmF1bHQgdmFsdWVzIGZyb20gdGFibGUgZGVmaW5pdGlvbixcbiIgKworCQkJCSJpbiBvcmRlciB0byBwcm92aWRlIHNwZWNpYWwgbWV0aG9kcywgZm9yIHRoZSBjdXJyZW50bHkgcHJvY2Vzc2VkIGNlbGwuIENoYW5nZWQgcG9pbnRlcnMgYXJlIG9ubHkgdmFsaWQgZm9yIGN1cnJlbnQgcmVxdWVzdC4iLAorCQkJCWdldE5leHRJbnN0YW5jZU1ldGhvZC5QYXJhbWV0ZXJbMV0uTmFtZSwKKwkJCQlyZXR1cm5WYWx1ZS5UeXBlLk5hbWUsCisJCQkJTHdpcERlZnMuRGVmX0Vycm9yQ29kZV9PaywKKwkJCQlhdWdtZW50c0hpbnQsCisJCQkJZ2V0TmV4dEluc3RhbmNlTWV0aG9kLlBhcmFtZXRlclsyXS5OYW1lCisJCQkJKSkpOworCisJCQlnZXROZXh0SW5zdGFuY2VNZXRob2QuQWRkRWxlbWVudChuZXcgQ29tbWVudChTdHJpbmcuRm9ybWF0KAorCQkJCSJGb3IgZWFzaWVyIHByb2Nlc3NpbmcgYW5kIGdldHRpbmcgdGhlIG5leHQgaW5zdGFuY2UsIHlvdSBtYXkgdXNlIHRoZSAnc25tcF9uZXh0X29pZF8qJyBlbnVtZXJhdG9yLlxuIiArCisJCQkJIlNpbXBseSBwYXNzIGFsbCBrbm93biBpbnN0YW5jZSBPSUQncyB0byBpdCBhbmQgaXQgcmV0dXJucyB0aGUgbmV4dCB2YWxpZCBvbmU6XG5cbiIgKworCQkJCSJ7MH0gc3RhdGU7XG4iICsKKwkJCQkiezF9IHJlc3VsdF9idWY7XG4iICsKKwkJCQkic25tcF9uZXh0X29pZF9pbml0KCZzdGF0ZSwgezJ9LT5pZCwgezJ9LT5sZW4sIHJlc3VsdF9idWYuaWQsIFNOTVBfTUFYX09CSl9JRF9MRU4pO1xuIiArIAorCQkJCSJ3aGlsZSAoe3tub3QgYWxsIGluc3RhbmNlcyBwYXNzZWR9fSkge3tcbiIgKyAKKwkJCQkiICB7MX0gdGVzdF9vaWQ7XG4iICsgCisJCQkJIiAge3tmaWxsIHRlc3Rfb2lkIHRvIGNyZWF0ZSBpbnN0YW5jZSBvaWQgZm9yIG5leHQgaW5zdGFuY2V9fVxuIiArIAorCQkJCSIgIHNubXBfbmV4dF9vaWRfY2hlY2soJnN0YXRlLCB0ZXN0X29pZC5pZCwgdGVzdF9vaWQubGVuLCB7e3RhcmdldF9kYXRhX3B0cn19KTtcbiIgKyAKKwkJCQkifX1cbiIgKyAKKwkJCQkiaWYoc3RhdGUuc3RhdHVzID09IFNOTVBfTkVYVF9PSURfU1RBVFVTX1NVQ0NFU1MpIHt7XG4iICsgCisJCQkJIiAgc25tcF9vaWRfYXNzaWduKHJvd19vaWQsIHN0YXRlLm5leHRfb2lkLCBzdGF0ZS5uZXh0X29pZF9sZW4pO1xuIiArCisJCQkJIiAgezN9LT5yZWZlcmVuY2UucHRyID0gc3RhdGUucmVmZXJlbmNlOyAvLz09dGFyZ2V0X2RhdGFfcHRyLCBmb3IgdXNhZ2UgaW4gc3Vic2VxdWVudCBnZXQvdGVzdC9zZXRcbiIgKyAKKwkJCQkiICB7NH0gPSB7NX07XG4iICsgCisJCQkJIn19IgorCQkJCSwKKwkJCQlMd2lwRGVmcy5WdF9TdE5leHRPaWRTdGF0ZSwKKwkJCQlMd2lwRGVmcy5WdF9TdE9iamVjdElkLAorCQkJCWdldE5leHRJbnN0YW5jZU1ldGhvZC5QYXJhbWV0ZXJbMV0uTmFtZSwKKwkJCQlnZXROZXh0SW5zdGFuY2VNZXRob2QuUGFyYW1ldGVyWzJdLk5hbWUsCisJCQkJcmV0dXJuVmFsdWUuVHlwZS5OYW1lLAorCQkJCUx3aXBEZWZzLkRlZl9FcnJvckNvZGVfT2sKKwkJCQkpKSk7CisKKwkJCWdldE5leHRJbnN0YW5jZU1ldGhvZC5BZGRDb2RlRm9ybWF0KCJyZXR1cm4gezB9OyIsIHJldHVyblZhbHVlLlR5cGUuTmFtZSk7CisJCX0KKworCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTHdpcFNubXBDb2RlR2VuZXJhdGlvbi9Tbm1wVHJlZU5vZGUuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFRyZWVOb2RlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmMGM2MDQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL0x3aXBTbm1wQ29kZUdlbmVyYXRpb24vU25tcFRyZWVOb2RlLmNzCkBAIC0wLDAgKzEsMjQyIEBACivvu78vKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBNYXJ0aW4gSGVudHNjaGVsIDxpbmZvQGNsLXNvZnQuZGU+CisgKgorICovCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwordXNpbmcgU3lzdGVtLlRleHQ7Cit1c2luZyBDQ29kZUdlbmVyYXRpb247CisKK25hbWVzcGFjZSBMd2lwU25tcENvZGVHZW5lcmF0aW9uCit7CisJcHVibGljIGNsYXNzIFNubXBUcmVlTm9kZTogU25tcFNjYWxhckFnZ3JlZ2F0aW9uTm9kZQorCXsKKwkJcHJpdmF0ZSByZWFkb25seSBMaXN0PFNubXBOb2RlPiBjaGlsZE5vZGVzICAgICAgID0gbmV3IExpc3Q8U25tcE5vZGU+KCk7CisJCXByaXZhdGUgcmVhZG9ubHkgTGlzdDxTbm1wU2NhbGFyTm9kZT4gY2hpbGRTY2FsYXJOb2RlcyA9IG5ldyBMaXN0PFNubXBTY2FsYXJOb2RlPigpOworCQlwcml2YXRlIHN0cmluZyBmdWxsT2lkID0gIiI7CisKKwkJcHVibGljIFNubXBUcmVlTm9kZShTbm1wVHJlZU5vZGUgcGFyZW50Tm9kZSkKKwkJCTogYmFzZShwYXJlbnROb2RlKQorCQl7CisJCX0KKworCQlwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIEZ1bGxOb2RlTmFtZQorCQl7CisJCQlnZXQgeyByZXR1cm4gdGhpcy5OYW1lLlRvTG93ZXJJbnZhcmlhbnQoKSArICJfdHJlZW5vZGUiOyB9CisJCX0KKworCQlwdWJsaWMgc3RyaW5nIEZ1bGxPaWQKKwkJeworCQkJZ2V0IHsgcmV0dXJuIHRoaXMuZnVsbE9pZDsgfQorCQkJc2V0IHsgdGhpcy5mdWxsT2lkID0gdmFsdWU7IH0KKwkJfQorCisJCXB1YmxpYyBMaXN0PFNubXBOb2RlPiBDaGlsZE5vZGVzCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLmNoaWxkTm9kZXM7IH0KKwkJfQorCisJCXByb3RlY3RlZCBvdmVycmlkZSBJRW51bWVyYWJsZTxTbm1wU2NhbGFyTm9kZT4gQWdncmVnYXRlZFNjYWxhck5vZGVzCisJCXsKKwkJCWdldCB7IHJldHVybiB0aGlzLmNoaWxkU2NhbGFyTm9kZXM7IH0KKwkJfQorCisJCXByaXZhdGUgdm9pZCBHZW5lcmF0ZUFnZ3JlZ2F0ZWRDb2RlKE1pYkNGaWxlIG1pYkZpbGUsIGJvb2wgZ2VuZXJhdGVEZWNsYXJhdGlvbnMsIGJvb2wgZ2VuZXJhdGVJbXBsZW1lbnRhdGlvbnMpCisJCXsKKwkJCVZhcmlhYmxlVHlwZSBpbnN0YW5jZVR5cGUgPSBuZXcgVmFyaWFibGVUeXBlKCJpbnN0YW5jZSIsIEx3aXBEZWZzLlZ0X1N0Tm9kZUluc3RhbmNlLCAiKiIpOworCQkJYmFzZS5HZW5lcmF0ZUFnZ3JlZ2F0ZWRDb2RlKAorCQkJCW1pYkZpbGUsCisJCQkJaW5zdGFuY2VUeXBlLAorCQkJCVN0cmluZy5Gb3JtYXQoInswfS0+bm9kZS0+b2lkIiwgaW5zdGFuY2VUeXBlLk5hbWUpLAorCQkJCWdlbmVyYXRlRGVjbGFyYXRpb25zLAorCQkJCWdlbmVyYXRlSW1wbGVtZW50YXRpb25zKTsKKwkJfQorCisJCXByaXZhdGUgdm9pZCBHZW5lcmF0ZUFnZ3JlZ2F0ZU1ldGhvZERlY2xhcmF0aW9ucyhNaWJDRmlsZSBtaWJGaWxlKQorCQl7CisJCQlpZiAoTHdpcE9wdHMuR2VuZXJhdGVTaW5nbGVBY2Nlc3NNZXRob2RzRm9yVHJlZU5vZGVTY2FsYXJzICYmICh0aGlzLmNoaWxkU2NhbGFyTm9kZXMuQ291bnQgPiAxKSkKKwkJCXsKKwkJCQlHZW5lcmF0ZUFnZ3JlZ2F0ZWRDb2RlKG1pYkZpbGUsIHRydWUsIGZhbHNlKTsKKwkJCX0KKwkJfQorCisJCXB1YmxpYyBvdmVycmlkZSB2b2lkIEdlbmVyYXRlQ29kZShNaWJDRmlsZSBtaWJGaWxlKQorCQl7CisJCQlzdHJpbmcgbm9kZUluaXRpYWxpemF0aW9uOworCisJCQlpZiAoTHdpcE9wdHMuR2VuZXJhdGVTaW5nbGVBY2Nlc3NNZXRob2RzRm9yVHJlZU5vZGVTY2FsYXJzICYmICh0aGlzLmNoaWxkU2NhbGFyTm9kZXMuQ291bnQgPiAxKSkKKwkJCXsKKwkJCQlHZW5lcmF0ZUFnZ3JlZ2F0ZWRDb2RlKG1pYkZpbGUsIGZhbHNlLCB0cnVlKTsKKwkJCX0KKworCQkJLy8gY3JlYXRlIGFuZCBhZGQgbm9kZSBkZWNsYXJhdGlvbgorCQkJaWYgKHRoaXMuY2hpbGROb2Rlcy5Db3VudCA+IDApCisJCQl7CisJCQkJU3RyaW5nQnVpbGRlciBzdWJub2RlQXJyYXlJbml0aWFsaXphdGlvbiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CisKKwkJCQlmb3IgKGludCBpPTA7IGk8dGhpcy5jaGlsZE5vZGVzLkNvdW50OyBpKyspCisJCQkJeworCQkJCQlzdWJub2RlQXJyYXlJbml0aWFsaXphdGlvbi5BcHBlbmQoIiAgJiIpOworCQkJCQlzdWJub2RlQXJyYXlJbml0aWFsaXphdGlvbi5BcHBlbmQodGhpcy5jaGlsZE5vZGVzW2ldLkZ1bGxOb2RlTmFtZSk7CisJCQkJCXN1Ym5vZGVBcnJheUluaXRpYWxpemF0aW9uLkFwcGVuZCgiLm5vZGUiKTsKKwkJCQkJaWYgKCEodGhpcy5jaGlsZE5vZGVzW2ldIGlzIFNubXBUcmVlTm9kZSkpCisJCQkJCXsKKwkJCQkJCXN1Ym5vZGVBcnJheUluaXRpYWxpemF0aW9uLkFwcGVuZCgiLm5vZGUiKTsKKwkJCQkJfQorCisJCQkJCWlmIChpIDwgKHRoaXMuY2hpbGROb2Rlcy5Db3VudCAtIDEpKQorCQkJCQl7CisJCQkJCQlzdWJub2RlQXJyYXlJbml0aWFsaXphdGlvbi5BcHBlbmQoIixcbiIpOworCQkJCQl9CisJCQkJfQorCisJCQkJVmFyaWFibGVEZWNsYXJhdGlvbiBzdWJub2RlQXJyYXkgPSBuZXcgVmFyaWFibGVEZWNsYXJhdGlvbigKKwkJCQkJbmV3IFZhcmlhYmxlVHlwZSh0aGlzLk5hbWUuVG9Mb3dlckludmFyaWFudCgpICsgIl9zdWJub2RlcyIsIEx3aXBEZWZzLlZ0X1N0Tm9kZSwgIioiLCBDb25zdFR5cGUuQm90aCwgU3RyaW5nLkVtcHR5KSwKKwkJCQkJIntcbiIgKyBzdWJub2RlQXJyYXlJbml0aWFsaXphdGlvbiArICJcbn0iLAorCQkJCQlpc1N0YXRpYzogdHJ1ZSk7CisKKwkJCQltaWJGaWxlLkRlY2xhcmF0aW9ucy5BZGQoc3Vibm9kZUFycmF5KTsKKworCQkJCW5vZGVJbml0aWFsaXphdGlvbiA9IFN0cmluZy5Gb3JtYXQoIlNOTVBfQ1JFQVRFX1RSRUVfTk9ERSh7MH0sIHsxfSkiLCB0aGlzLk9pZCwgc3Vibm9kZUFycmF5LlR5cGUuTmFtZSk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJbm9kZUluaXRpYWxpemF0aW9uID0gU3RyaW5nLkZvcm1hdCgiU05NUF9DUkVBVEVfRU1QVFlfVFJFRV9OT0RFKHswfSkiLCB0aGlzLk9pZCk7CisJCQl9CisKKwkJCW1pYkZpbGUuRGVjbGFyYXRpb25zLkFkZChuZXcgVmFyaWFibGVEZWNsYXJhdGlvbigKKwkJCQluZXcgVmFyaWFibGVUeXBlKHRoaXMuRnVsbE5vZGVOYW1lLCBMd2lwRGVmcy5WdF9TdFRyZWVOb2RlLCBudWxsLCBDb25zdFR5cGUuVmFsdWUpLAorCQkJCW5vZGVJbml0aWFsaXphdGlvbiwKKwkJCQlpc1N0YXRpYzogdHJ1ZSkpOworCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHZvaWQgQW5hbHl6ZSgpCisJCXsKKwkJCXRoaXMuY2hpbGRTY2FsYXJOb2Rlcy5DbGVhcigpOworCisJCQkvLyBkZWxlZ2F0ZSBhbmFseXplIChkb24ndCB1c2UgZW51bWVyYXRvciBiZWNhdXNlIHRoZSBjaGlsZCBub2RlIG1heSBjaGFuZ2Ugb3VyIGNoaWxkIGNvbGxlY3Rpb24gYnkgZS5nLiByZW1vdmluZyBvciByZXBsYWNpbmcgaXRzZWxmKQorCQkJZm9yIChpbnQgaT10aGlzLkNoaWxkTm9kZXMuQ291bnQtMTsgaT49MDsgaS0tKQorCQkJeworCQkJCXRoaXMuQ2hpbGROb2Rlc1tpXS5BbmFseXplKCk7CisJCQl9CisKKwkJCS8vIGNvbGxlY3Qgc2NhbGFyIG5vZGVzCisJCQlmb3JlYWNoIChTbm1wTm9kZSBjaGlsZE5vZGUgaW4gdGhpcy5jaGlsZE5vZGVzKQorCQkJeworCQkJCVNubXBTY2FsYXJOb2RlIHNjYWxhck5vZGUgPSBjaGlsZE5vZGUgYXMgU25tcFNjYWxhck5vZGU7CisJCQkJaWYgKHNjYWxhck5vZGUgIT0gbnVsbCkKKwkJCQl7CisJCQkJCXRoaXMuY2hpbGRTY2FsYXJOb2Rlcy5BZGQoc2NhbGFyTm9kZSk7CisJCQkJfQorCQkJfQorCisJCQliYXNlLkFuYWx5emUoKTsKKworCQkJLy8gY2hlY2sgaWYgd2UgY2FuIG1lcmdlIHRoaXMgbm9kZSB0byBhIHNjYWxhciBhcnJheSBub2RlIChhbGwgY2hpbGRzIG5lZWQgdG8gYmUgc2NhbGFycykKKwkJCWlmICh0aGlzLmNoaWxkTm9kZXMuQ291bnQgPiAwKQorCQkJeworCQkJCWlmIChMd2lwT3B0cy5HZW5lcmF0ZVNjYWxhckFycmF5cyAmJiAodGhpcy5jaGlsZFNjYWxhck5vZGVzLkNvdW50ID09IHRoaXMuY2hpbGROb2Rlcy5Db3VudCkgJiYgKHRoaXMuUGFyZW50Tm9kZSAhPSBudWxsKSkKKwkJCQl7CisJCQkJCVNubXBTY2FsYXJBcnJheU5vZGUgc2NhbGFyQXJyYXlOb2RlID0gbmV3IFNubXBTY2FsYXJBcnJheU5vZGUodGhpcy5jaGlsZFNjYWxhck5vZGVzLCB0aGlzLlBhcmVudE5vZGUpOworCQkJCQlzY2FsYXJBcnJheU5vZGUuT2lkICA9IHRoaXMuT2lkOworCQkJCQlzY2FsYXJBcnJheU5vZGUuTmFtZSA9IHRoaXMuTmFtZTsKKwkJCQkJc2NhbGFyQXJyYXlOb2RlLkFuYWx5emUoKTsKKworCQkJCQlmb3IgKGludCBpPTA7IGk8dGhpcy5QYXJlbnROb2RlLkNoaWxkTm9kZXMuQ291bnQ7IGkrKykKKwkJCQkJeworCQkJCQkJaWYgKHRoaXMuUGFyZW50Tm9kZS5DaGlsZE5vZGVzW2ldID09IHRoaXMpCisJCQkJCQl7CisJCQkJCQkJdGhpcy5QYXJlbnROb2RlLkNoaWxkTm9kZXMuUmVtb3ZlQXQoaSk7CisJCQkJCQkJdGhpcy5QYXJlbnROb2RlLkNoaWxkTm9kZXMuSW5zZXJ0KGksIHNjYWxhckFycmF5Tm9kZSk7CisJCQkJCQkJYnJlYWs7CisJCQkJCQl9CisJCQkJCX0KKwkJCQl9CisJCQkJZWxzZSBpZiAoTHdpcE9wdHMuR2VuZXJhdGVTaW5nbGVBY2Nlc3NNZXRob2RzRm9yVHJlZU5vZGVTY2FsYXJzICYmICh0aGlzLmNoaWxkU2NhbGFyTm9kZXMuQ291bnQgPiAxKSkKKwkJCQl7CisJCQkJCWZvcmVhY2ggKFNubXBTY2FsYXJOb2RlIHNjYWxhck5vZGUgaW4gdGhpcy5jaGlsZFNjYWxhck5vZGVzKQorCQkJCQl7CisJCQkJCQlzY2FsYXJOb2RlLlVzZUV4dGVybmFsTWV0aG9kcyA9IHRydWU7CisJCQkJCQlzY2FsYXJOb2RlLkV4dGVybmFsR2V0TWV0aG9kICA9IHRoaXMuR2V0TWV0aG9kTmFtZTsKKwkJCQkJCXNjYWxhck5vZGUuRXh0ZXJuYWxUZXN0TWV0aG9kID0gdGhpcy5UZXN0TWV0aG9kTmFtZTsKKwkJCQkJCXNjYWxhck5vZGUuRXh0ZXJuYWxTZXRNZXRob2QgID0gdGhpcy5TZXRNZXRob2ROYW1lOworCQkJCQl9CisJCQkJfQorCQkJfQorCQkJZWxzZSAvLyBpZiAodGhpcy5jaGlsZE5vZGVzLkNvdW50ID09IDApCisJCQl7CisJCQkJaWYgKCFMd2lwT3B0cy5HZW5lcmF0ZUVtcHR5Rm9sZGVycyAmJiAodGhpcy5QYXJlbnROb2RlICE9IG51bGwpKQorCQkJCXsKKwkJCQkJLy8gZG8gbm90IGdlbmVyYXRlIHRoaXMgZW1wdHkgZm9sZGVyIGJlY2F1c2UgaXQgb25seSB3YXN0ZSAoc3RhdGljKSBtZW1vcnkKKwkJCQkJZm9yIChpbnQgaT0wOyBpPHRoaXMuUGFyZW50Tm9kZS5DaGlsZE5vZGVzLkNvdW50OyBpKyspCisJCQkJCXsKKwkJCQkJCWlmICh0aGlzLlBhcmVudE5vZGUuQ2hpbGROb2Rlc1tpXSA9PSB0aGlzKQorCQkJCQkJeworCQkJCQkJCXRoaXMuUGFyZW50Tm9kZS5DaGlsZE5vZGVzLlJlbW92ZUF0KGkpOworCQkJCQkJCWJyZWFrOworCQkJCQkJfQorCQkJCQl9CisJCQkJfQorCQkJfQorCQl9CisKKwkJcHVibGljIG92ZXJyaWRlIHZvaWQgR2VuZXJhdGUoTWliQ0ZpbGUgZ2VuZXJhdGVkRmlsZSwgTWliSGVhZGVyRmlsZSBnZW5lcmF0ZWRIZWFkZXJGaWxlKQorCQl7CisJCQkvLyBnZW5lcmF0ZSBjb2RlIG9mIGNoaWxkIG5vZGVzCisJCQlmb3JlYWNoIChTbm1wTm9kZSBjaGlsZE5vZGUgaW4gdGhpcy5jaGlsZE5vZGVzKQorCQkJeworCQkJCWlmIChjaGlsZE5vZGUgaXMgU25tcFRyZWVOb2RlKQorCQkJCXsKKwkJCQkJY2hpbGROb2RlLkdlbmVyYXRlKGdlbmVyYXRlZEZpbGUsIGdlbmVyYXRlZEhlYWRlckZpbGUpOworCQkJCX0KKwkJCX0KKworCQkJQ29tbWVudCBkaXZpZGVyQ29tbWVudCA9IG5ldyBDb21tZW50KAorCQkJCVN0cmluZy5Gb3JtYXQoIi0tLSB7MH0gezF9IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiwgdGhpcy5OYW1lLCB0aGlzLmZ1bGxPaWQpLAorCQkJCXNpbmdsZUxpbmU6IHRydWUpOworCisJCQlnZW5lcmF0ZWRGaWxlLkRlY2xhcmF0aW9ucy5BZGQoZGl2aWRlckNvbW1lbnQpOworCQkJZ2VuZXJhdGVkRmlsZS5JbXBsZW1lbnRhdGlvbi5BZGQoZGl2aWRlckNvbW1lbnQpOworCisJCQl0aGlzLkdlbmVyYXRlQWdncmVnYXRlTWV0aG9kRGVjbGFyYXRpb25zKGdlbmVyYXRlZEZpbGUpOworCisJCQlmb3JlYWNoIChTbm1wTm9kZSBjaGlsZE5vZGUgaW4gdGhpcy5jaGlsZE5vZGVzKQorCQkJeworCQkJCWlmICghKGNoaWxkTm9kZSBpcyBTbm1wVHJlZU5vZGUpKQorCQkJCXsKKwkJCQkJY2hpbGROb2RlLkdlbmVyYXRlKGdlbmVyYXRlZEZpbGUsIGdlbmVyYXRlZEhlYWRlckZpbGUpOworCQkJCX0KKwkJCX0KKworCQkJYmFzZS5HZW5lcmF0ZShnZW5lcmF0ZWRGaWxlLCBnZW5lcmF0ZWRIZWFkZXJGaWxlKTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL0Zvcm1NYWluLkRlc2lnbmVyLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJWaWV3ZXIvRm9ybU1haW4uRGVzaWduZXIuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGNkMTlhYQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL0Zvcm1NYWluLkRlc2lnbmVyLmNzCkBAIC0wLDAgKzEsMTY2IEBACivvu79uYW1lc3BhY2UgTHdpcE1pYlZpZXdlcgoreworCXBhcnRpYWwgY2xhc3MgRm9ybU1haW4KKwl7CisJCS8vLyA8c3VtbWFyeT4KKwkJLy8vIEVyZm9yZGVybGljaGUgRGVzaWduZXJ2YXJpYWJsZS4KKwkJLy8vIDwvc3VtbWFyeT4KKwkJcHJpdmF0ZSBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuSUNvbnRhaW5lciBjb21wb25lbnRzID0gbnVsbDsKKworCQkvLy8gPHN1bW1hcnk+CisJCS8vLyBWZXJ3ZW5kZXRlIFJlc3NvdXJjZW4gYmVyZWluaWdlbi4KKwkJLy8vIDwvc3VtbWFyeT4KKwkJLy8vIDxwYXJhbSBuYW1lPSJkaXNwb3NpbmciPlRydWUsIHdlbm4gdmVyd2FsdGV0ZSBSZXNzb3VyY2VuIGdlbMO2c2NodCB3ZXJkZW4gc29sbGVuOyBhbmRlcm5mYWxscyBGYWxzZS48L3BhcmFtPgorCQlwcm90ZWN0ZWQgb3ZlcnJpZGUgdm9pZCBEaXNwb3NlKGJvb2wgZGlzcG9zaW5nKQorCQl7CisJCQlpZiAoZGlzcG9zaW5nICYmIChjb21wb25lbnRzICE9IG51bGwpKQorCQkJeworCQkJCWNvbXBvbmVudHMuRGlzcG9zZSgpOworCQkJfQorCQkJYmFzZS5EaXNwb3NlKGRpc3Bvc2luZyk7CisJCX0KKworCQkjcmVnaW9uIFZvbSBXaW5kb3dzIEZvcm0tRGVzaWduZXIgZ2VuZXJpZXJ0ZXIgQ29kZQorCisJCS8vLyA8c3VtbWFyeT4KKwkJLy8vIEVyZm9yZGVybGljaGUgTWV0aG9kZSBmw7xyIGRpZSBEZXNpZ25lcnVudGVyc3TDvHR6dW5nLgorCQkvLy8gRGVyIEluaGFsdCBkZXIgTWV0aG9kZSBkYXJmIG5pY2h0IG1pdCBkZW0gQ29kZS1FZGl0b3IgZ2XDpG5kZXJ0IHdlcmRlbi4KKwkJLy8vIDwvc3VtbWFyeT4KKwkJcHJpdmF0ZSB2b2lkIEluaXRpYWxpemVDb21wb25lbnQoKQorCQl7CisgICAgICAgICAgICB0aGlzLmNvbXBvbmVudHMgPSBuZXcgU3lzdGVtLkNvbXBvbmVudE1vZGVsLkNvbnRhaW5lcigpOworICAgICAgICAgICAgU3lzdGVtLkNvbXBvbmVudE1vZGVsLkNvbXBvbmVudFJlc291cmNlTWFuYWdlciByZXNvdXJjZXMgPSBuZXcgU3lzdGVtLkNvbXBvbmVudE1vZGVsLkNvbXBvbmVudFJlc291cmNlTWFuYWdlcih0eXBlb2YoRm9ybU1haW4pKTsKKyAgICAgICAgICAgIHRoaXMudHJlZU1pYiA9IG5ldyBTeXN0ZW0uV2luZG93cy5Gb3Jtcy5UcmVlVmlldygpOworICAgICAgICAgICAgdGhpcy5pbWFnZWxpc3RUcmVlTm9kZUltYWdlcyA9IG5ldyBTeXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3QodGhpcy5jb21wb25lbnRzKTsKKyAgICAgICAgICAgIHRoaXMuc3BsaXRDb250YWluZXJNYWluID0gbmV3IFN5c3RlbS5XaW5kb3dzLkZvcm1zLlNwbGl0Q29udGFpbmVyKCk7CisgICAgICAgICAgICB0aGlzLmxpc3R2aWV3Tm9kZURldGFpbHMgPSBuZXcgU3lzdGVtLldpbmRvd3MuRm9ybXMuTGlzdFZpZXcoKTsKKyAgICAgICAgICAgIHRoaXMuY29sdW1uSGVhZGVyMSA9ICgoU3lzdGVtLldpbmRvd3MuRm9ybXMuQ29sdW1uSGVhZGVyKShuZXcgU3lzdGVtLldpbmRvd3MuRm9ybXMuQ29sdW1uSGVhZGVyKCkpKTsKKyAgICAgICAgICAgIHRoaXMuY29sdW1uSGVhZGVyMiA9ICgoU3lzdGVtLldpbmRvd3MuRm9ybXMuQ29sdW1uSGVhZGVyKShuZXcgU3lzdGVtLldpbmRvd3MuRm9ybXMuQ29sdW1uSGVhZGVyKCkpKTsKKyAgICAgICAgICAgIHRoaXMudG9vbFN0cmlwTWFpbiA9IG5ldyBTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ub29sU3RyaXAoKTsKKyAgICAgICAgICAgIHRoaXMudG9vbGJ1dHRvbk9wZW5NaWIgPSBuZXcgU3lzdGVtLldpbmRvd3MuRm9ybXMuVG9vbFN0cmlwQnV0dG9uKCk7CisgICAgICAgICAgICB0aGlzLmRpYWxvZ09wZW5NaWIgPSBuZXcgU3lzdGVtLldpbmRvd3MuRm9ybXMuT3BlbkZpbGVEaWFsb2coKTsKKyAgICAgICAgICAgICgoU3lzdGVtLkNvbXBvbmVudE1vZGVsLklTdXBwb3J0SW5pdGlhbGl6ZSkodGhpcy5zcGxpdENvbnRhaW5lck1haW4pKS5CZWdpbkluaXQoKTsKKyAgICAgICAgICAgIHRoaXMuc3BsaXRDb250YWluZXJNYWluLlBhbmVsMS5TdXNwZW5kTGF5b3V0KCk7CisgICAgICAgICAgICB0aGlzLnNwbGl0Q29udGFpbmVyTWFpbi5QYW5lbDIuU3VzcGVuZExheW91dCgpOworICAgICAgICAgICAgdGhpcy5zcGxpdENvbnRhaW5lck1haW4uU3VzcGVuZExheW91dCgpOworICAgICAgICAgICAgdGhpcy50b29sU3RyaXBNYWluLlN1c3BlbmRMYXlvdXQoKTsKKyAgICAgICAgICAgIHRoaXMuU3VzcGVuZExheW91dCgpOworICAgICAgICAgICAgLy8gCisgICAgICAgICAgICAvLyB0cmVlTWliCisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIHRoaXMudHJlZU1pYi5Eb2NrID0gU3lzdGVtLldpbmRvd3MuRm9ybXMuRG9ja1N0eWxlLkZpbGw7CisgICAgICAgICAgICB0aGlzLnRyZWVNaWIuSW1hZ2VJbmRleCA9IDA7CisgICAgICAgICAgICB0aGlzLnRyZWVNaWIuSW1hZ2VMaXN0ID0gdGhpcy5pbWFnZWxpc3RUcmVlTm9kZUltYWdlczsKKyAgICAgICAgICAgIHRoaXMudHJlZU1pYi5Mb2NhdGlvbiA9IG5ldyBTeXN0ZW0uRHJhd2luZy5Qb2ludCgwLCAwKTsKKyAgICAgICAgICAgIHRoaXMudHJlZU1pYi5OYW1lID0gInRyZWVNaWIiOworICAgICAgICAgICAgdGhpcy50cmVlTWliLlNlbGVjdGVkSW1hZ2VJbmRleCA9IDA7CisgICAgICAgICAgICB0aGlzLnRyZWVNaWIuU2l6ZSA9IG5ldyBTeXN0ZW0uRHJhd2luZy5TaXplKDEwMjgsIDQxOCk7CisgICAgICAgICAgICB0aGlzLnRyZWVNaWIuVGFiSW5kZXggPSAwOworICAgICAgICAgICAgdGhpcy50cmVlTWliLkFmdGVyU2VsZWN0ICs9IG5ldyBTeXN0ZW0uV2luZG93cy5Gb3Jtcy5UcmVlVmlld0V2ZW50SGFuZGxlcih0aGlzLnRyZWVNaWJfQWZ0ZXJTZWxlY3QpOworICAgICAgICAgICAgLy8gCisgICAgICAgICAgICAvLyBpbWFnZWxpc3RUcmVlTm9kZUltYWdlcworICAgICAgICAgICAgLy8gCisgICAgICAgICAgICB0aGlzLmltYWdlbGlzdFRyZWVOb2RlSW1hZ2VzLkltYWdlU3RyZWFtID0gKChTeXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcikocmVzb3VyY2VzLkdldE9iamVjdCgiaW1hZ2VsaXN0VHJlZU5vZGVJbWFnZXMuSW1hZ2VTdHJlYW0iKSkpOworICAgICAgICAgICAgdGhpcy5pbWFnZWxpc3RUcmVlTm9kZUltYWdlcy5UcmFuc3BhcmVudENvbG9yID0gU3lzdGVtLkRyYXdpbmcuQ29sb3IuVHJhbnNwYXJlbnQ7CisgICAgICAgICAgICB0aGlzLmltYWdlbGlzdFRyZWVOb2RlSW1hZ2VzLkltYWdlcy5TZXRLZXlOYW1lKDAsICJudGltZ0NvbnRhaW5lciIpOworICAgICAgICAgICAgdGhpcy5pbWFnZWxpc3RUcmVlTm9kZUltYWdlcy5JbWFnZXMuU2V0S2V5TmFtZSgxLCAibnRpbWdUYWJsZSIpOworICAgICAgICAgICAgdGhpcy5pbWFnZWxpc3RUcmVlTm9kZUltYWdlcy5JbWFnZXMuU2V0S2V5TmFtZSgyLCAibnRpbWdSb3ciKTsKKyAgICAgICAgICAgIHRoaXMuaW1hZ2VsaXN0VHJlZU5vZGVJbWFnZXMuSW1hZ2VzLlNldEtleU5hbWUoMywgIm50aW1nQ29sdW1uIik7CisgICAgICAgICAgICB0aGlzLmltYWdlbGlzdFRyZWVOb2RlSW1hZ2VzLkltYWdlcy5TZXRLZXlOYW1lKDQsICJudGltZ1NjYWxhciIpOworICAgICAgICAgICAgdGhpcy5pbWFnZWxpc3RUcmVlTm9kZUltYWdlcy5JbWFnZXMuU2V0S2V5TmFtZSg1LCAibnRpbWdVbmtub3duIik7CisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIC8vIHNwbGl0Q29udGFpbmVyTWFpbgorICAgICAgICAgICAgLy8gCisgICAgICAgICAgICB0aGlzLnNwbGl0Q29udGFpbmVyTWFpbi5Eb2NrID0gU3lzdGVtLldpbmRvd3MuRm9ybXMuRG9ja1N0eWxlLkZpbGw7CisgICAgICAgICAgICB0aGlzLnNwbGl0Q29udGFpbmVyTWFpbi5Mb2NhdGlvbiA9IG5ldyBTeXN0ZW0uRHJhd2luZy5Qb2ludCgwLCAyNSk7CisgICAgICAgICAgICB0aGlzLnNwbGl0Q29udGFpbmVyTWFpbi5OYW1lID0gInNwbGl0Q29udGFpbmVyTWFpbiI7CisgICAgICAgICAgICB0aGlzLnNwbGl0Q29udGFpbmVyTWFpbi5PcmllbnRhdGlvbiA9IFN5c3RlbS5XaW5kb3dzLkZvcm1zLk9yaWVudGF0aW9uLkhvcml6b250YWw7CisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIC8vIHNwbGl0Q29udGFpbmVyTWFpbi5QYW5lbDEKKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgdGhpcy5zcGxpdENvbnRhaW5lck1haW4uUGFuZWwxLkNvbnRyb2xzLkFkZCh0aGlzLnRyZWVNaWIpOworICAgICAgICAgICAgLy8gCisgICAgICAgICAgICAvLyBzcGxpdENvbnRhaW5lck1haW4uUGFuZWwyCisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIHRoaXMuc3BsaXRDb250YWluZXJNYWluLlBhbmVsMi5Db250cm9scy5BZGQodGhpcy5saXN0dmlld05vZGVEZXRhaWxzKTsKKyAgICAgICAgICAgIHRoaXMuc3BsaXRDb250YWluZXJNYWluLlNpemUgPSBuZXcgU3lzdGVtLkRyYXdpbmcuU2l6ZSgxMDI4LCA2MjUpOworICAgICAgICAgICAgdGhpcy5zcGxpdENvbnRhaW5lck1haW4uU3BsaXR0ZXJEaXN0YW5jZSA9IDQxODsKKyAgICAgICAgICAgIHRoaXMuc3BsaXRDb250YWluZXJNYWluLlRhYkluZGV4ID0gMTsKKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gbGlzdHZpZXdOb2RlRGV0YWlscworICAgICAgICAgICAgLy8gCisgICAgICAgICAgICB0aGlzLmxpc3R2aWV3Tm9kZURldGFpbHMuQ29sdW1ucy5BZGRSYW5nZShuZXcgU3lzdGVtLldpbmRvd3MuRm9ybXMuQ29sdW1uSGVhZGVyW10geworICAgICAgICAgICAgdGhpcy5jb2x1bW5IZWFkZXIxLAorICAgICAgICAgICAgdGhpcy5jb2x1bW5IZWFkZXIyfSk7CisgICAgICAgICAgICB0aGlzLmxpc3R2aWV3Tm9kZURldGFpbHMuRG9jayA9IFN5c3RlbS5XaW5kb3dzLkZvcm1zLkRvY2tTdHlsZS5GaWxsOworICAgICAgICAgICAgdGhpcy5saXN0dmlld05vZGVEZXRhaWxzLkZ1bGxSb3dTZWxlY3QgPSB0cnVlOworICAgICAgICAgICAgdGhpcy5saXN0dmlld05vZGVEZXRhaWxzLkhlYWRlclN0eWxlID0gU3lzdGVtLldpbmRvd3MuRm9ybXMuQ29sdW1uSGVhZGVyU3R5bGUuTm9uZTsKKyAgICAgICAgICAgIHRoaXMubGlzdHZpZXdOb2RlRGV0YWlscy5Mb2NhdGlvbiA9IG5ldyBTeXN0ZW0uRHJhd2luZy5Qb2ludCgwLCAwKTsKKyAgICAgICAgICAgIHRoaXMubGlzdHZpZXdOb2RlRGV0YWlscy5OYW1lID0gImxpc3R2aWV3Tm9kZURldGFpbHMiOworICAgICAgICAgICAgdGhpcy5saXN0dmlld05vZGVEZXRhaWxzLlNpemUgPSBuZXcgU3lzdGVtLkRyYXdpbmcuU2l6ZSgxMDI4LCAyMDMpOworICAgICAgICAgICAgdGhpcy5saXN0dmlld05vZGVEZXRhaWxzLlRhYkluZGV4ID0gMDsKKyAgICAgICAgICAgIHRoaXMubGlzdHZpZXdOb2RlRGV0YWlscy5Vc2VDb21wYXRpYmxlU3RhdGVJbWFnZUJlaGF2aW9yID0gZmFsc2U7CisgICAgICAgICAgICB0aGlzLmxpc3R2aWV3Tm9kZURldGFpbHMuVmlldyA9IFN5c3RlbS5XaW5kb3dzLkZvcm1zLlZpZXcuRGV0YWlsczsKKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgLy8gY29sdW1uSGVhZGVyMQorICAgICAgICAgICAgLy8gCisgICAgICAgICAgICB0aGlzLmNvbHVtbkhlYWRlcjEuVGV4dCA9ICIiOworICAgICAgICAgICAgdGhpcy5jb2x1bW5IZWFkZXIxLldpZHRoID0gMTUwOworICAgICAgICAgICAgLy8gCisgICAgICAgICAgICAvLyBjb2x1bW5IZWFkZXIyCisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIHRoaXMuY29sdW1uSGVhZGVyMi5UZXh0ID0gIiI7CisgICAgICAgICAgICB0aGlzLmNvbHVtbkhlYWRlcjIuV2lkdGggPSA3Nzc7CisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIC8vIHRvb2xTdHJpcE1haW4KKyAgICAgICAgICAgIC8vIAorICAgICAgICAgICAgdGhpcy50b29sU3RyaXBNYWluLkl0ZW1zLkFkZFJhbmdlKG5ldyBTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ub29sU3RyaXBJdGVtW10geworICAgICAgICAgICAgdGhpcy50b29sYnV0dG9uT3Blbk1pYn0pOworICAgICAgICAgICAgdGhpcy50b29sU3RyaXBNYWluLkxvY2F0aW9uID0gbmV3IFN5c3RlbS5EcmF3aW5nLlBvaW50KDAsIDApOworICAgICAgICAgICAgdGhpcy50b29sU3RyaXBNYWluLk5hbWUgPSAidG9vbFN0cmlwTWFpbiI7CisgICAgICAgICAgICB0aGlzLnRvb2xTdHJpcE1haW4uU2l6ZSA9IG5ldyBTeXN0ZW0uRHJhd2luZy5TaXplKDEwMjgsIDI1KTsKKyAgICAgICAgICAgIHRoaXMudG9vbFN0cmlwTWFpbi5UYWJJbmRleCA9IDI7CisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIC8vIHRvb2xidXR0b25PcGVuTWliCisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIHRoaXMudG9vbGJ1dHRvbk9wZW5NaWIuSW1hZ2UgPSAoKFN5c3RlbS5EcmF3aW5nLkltYWdlKShyZXNvdXJjZXMuR2V0T2JqZWN0KCJ0b29sYnV0dG9uT3Blbk1pYi5JbWFnZSIpKSk7CisgICAgICAgICAgICB0aGlzLnRvb2xidXR0b25PcGVuTWliLk5hbWUgPSAidG9vbGJ1dHRvbk9wZW5NaWIiOworICAgICAgICAgICAgdGhpcy50b29sYnV0dG9uT3Blbk1pYi5TaXplID0gbmV3IFN5c3RlbS5EcmF3aW5nLlNpemUoNjUsIDIyKTsKKyAgICAgICAgICAgIHRoaXMudG9vbGJ1dHRvbk9wZW5NaWIuVGV4dCA9ICJPcGVuLi4uIjsKKyAgICAgICAgICAgIHRoaXMudG9vbGJ1dHRvbk9wZW5NaWIuQ2xpY2sgKz0gbmV3IFN5c3RlbS5FdmVudEhhbmRsZXIodGhpcy50b29sYnV0dG9uT3Blbk1pYl9DbGljayk7CisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIC8vIEZvcm1NYWluCisgICAgICAgICAgICAvLyAKKyAgICAgICAgICAgIHRoaXMuQXV0b1NjYWxlRGltZW5zaW9ucyA9IG5ldyBTeXN0ZW0uRHJhd2luZy5TaXplRig2RiwgMTNGKTsKKyAgICAgICAgICAgIHRoaXMuQXV0b1NjYWxlTW9kZSA9IFN5c3RlbS5XaW5kb3dzLkZvcm1zLkF1dG9TY2FsZU1vZGUuRm9udDsKKyAgICAgICAgICAgIHRoaXMuQ2xpZW50U2l6ZSA9IG5ldyBTeXN0ZW0uRHJhd2luZy5TaXplKDEwMjgsIDY1MCk7CisgICAgICAgICAgICB0aGlzLkNvbnRyb2xzLkFkZCh0aGlzLnNwbGl0Q29udGFpbmVyTWFpbik7CisgICAgICAgICAgICB0aGlzLkNvbnRyb2xzLkFkZCh0aGlzLnRvb2xTdHJpcE1haW4pOworICAgICAgICAgICAgdGhpcy5OYW1lID0gIkZvcm1NYWluIjsKKyAgICAgICAgICAgIHRoaXMuVGV4dCA9ICJNSUIgVmlld2VyIjsKKyAgICAgICAgICAgIHRoaXMuV2luZG93U3RhdGUgPSBTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Gb3JtV2luZG93U3RhdGUuTWF4aW1pemVkOworICAgICAgICAgICAgdGhpcy5zcGxpdENvbnRhaW5lck1haW4uUGFuZWwxLlJlc3VtZUxheW91dChmYWxzZSk7CisgICAgICAgICAgICB0aGlzLnNwbGl0Q29udGFpbmVyTWFpbi5QYW5lbDIuUmVzdW1lTGF5b3V0KGZhbHNlKTsKKyAgICAgICAgICAgICgoU3lzdGVtLkNvbXBvbmVudE1vZGVsLklTdXBwb3J0SW5pdGlhbGl6ZSkodGhpcy5zcGxpdENvbnRhaW5lck1haW4pKS5FbmRJbml0KCk7CisgICAgICAgICAgICB0aGlzLnNwbGl0Q29udGFpbmVyTWFpbi5SZXN1bWVMYXlvdXQoZmFsc2UpOworICAgICAgICAgICAgdGhpcy50b29sU3RyaXBNYWluLlJlc3VtZUxheW91dChmYWxzZSk7CisgICAgICAgICAgICB0aGlzLnRvb2xTdHJpcE1haW4uUGVyZm9ybUxheW91dCgpOworICAgICAgICAgICAgdGhpcy5SZXN1bWVMYXlvdXQoZmFsc2UpOworICAgICAgICAgICAgdGhpcy5QZXJmb3JtTGF5b3V0KCk7CisKKwkJfQorCisJCSNlbmRyZWdpb24KKworCQlwcml2YXRlIFN5c3RlbS5XaW5kb3dzLkZvcm1zLlRyZWVWaWV3IHRyZWVNaWI7CisgICAgICAgIHByaXZhdGUgU3lzdGVtLldpbmRvd3MuRm9ybXMuU3BsaXRDb250YWluZXIgc3BsaXRDb250YWluZXJNYWluOworICAgICAgICBwcml2YXRlIFN5c3RlbS5XaW5kb3dzLkZvcm1zLkxpc3RWaWV3IGxpc3R2aWV3Tm9kZURldGFpbHM7CisgICAgICAgIHByaXZhdGUgU3lzdGVtLldpbmRvd3MuRm9ybXMuQ29sdW1uSGVhZGVyIGNvbHVtbkhlYWRlcjE7CisgICAgICAgIHByaXZhdGUgU3lzdGVtLldpbmRvd3MuRm9ybXMuQ29sdW1uSGVhZGVyIGNvbHVtbkhlYWRlcjI7CisgICAgICAgIHByaXZhdGUgU3lzdGVtLldpbmRvd3MuRm9ybXMuSW1hZ2VMaXN0IGltYWdlbGlzdFRyZWVOb2RlSW1hZ2VzOworICAgICAgICBwcml2YXRlIFN5c3RlbS5XaW5kb3dzLkZvcm1zLlRvb2xTdHJpcCB0b29sU3RyaXBNYWluOworICAgICAgICBwcml2YXRlIFN5c3RlbS5XaW5kb3dzLkZvcm1zLlRvb2xTdHJpcEJ1dHRvbiB0b29sYnV0dG9uT3Blbk1pYjsKKyAgICAgICAgcHJpdmF0ZSBTeXN0ZW0uV2luZG93cy5Gb3Jtcy5PcGVuRmlsZURpYWxvZyBkaWFsb2dPcGVuTWliOworCX0KK30KKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJWaWV3ZXIvRm9ybU1haW4uY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9Gb3JtTWFpbi5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDI0OTBkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJWaWV3ZXIvRm9ybU1haW4uY3MKQEAgLTAsMCArMSwyMTcgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtLldpbmRvd3MuRm9ybXM7Cit1c2luZyBMZXh0bS5TaGFycFNubXBMaWIuTWliOwordXNpbmcgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50czsKK3VzaW5nIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXM7Cit1c2luZyBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLkVudGl0aWVzOwordXNpbmcgU3lzdGVtLklPOworCituYW1lc3BhY2UgTHdpcE1pYlZpZXdlcgoreworCXB1YmxpYyBwYXJ0aWFsIGNsYXNzIEZvcm1NYWluIDogRm9ybQorCXsKKwkJcmVhZG9ubHkgTGlzdFZpZXdHcm91cCBsaXN0dmlld2dyb3VwQWJzdHJhY3Q7CisJCXJlYWRvbmx5IExpc3RWaWV3R3JvdXAgbGlzdHZpZXdncm91cEVsZW1lbnQ7CisJCXJlYWRvbmx5IExpc3RWaWV3R3JvdXAgbGlzdHZpZXdncm91cEJhc2VUeXBlOworCQlyZWFkb25seSBMaXN0Vmlld0dyb3VwIGxpc3R2aWV3Z3JvdXBUeXBlQ2hhaW47CisKKwkJcHVibGljIEZvcm1NYWluKCkKKwkJeworCQkJdGhpcy5Gb250ID0gU3lzdGVtSW5mb3JtYXRpb24uTWVudUZvbnQ7CisJCQlJbml0aWFsaXplQ29tcG9uZW50KCk7CisKKwkJCXRoaXMubGlzdHZpZXdncm91cEFic3RyYWN0ID0gbmV3IExpc3RWaWV3R3JvdXAoIkFic3RyYWN0IiwgU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVudC5MZWZ0KTsKKwkJCXRoaXMubGlzdHZpZXdncm91cEVsZW1lbnQgPSBuZXcgTGlzdFZpZXdHcm91cCgiRWxlbWVudCBQcm9wZXJ0aWVzIiwgU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVudC5MZWZ0KTsKKwkJCXRoaXMubGlzdHZpZXdncm91cEJhc2VUeXBlID0gbmV3IExpc3RWaWV3R3JvdXAoIkVsZW1lbnQgQmFzZSBUeXBlIiwgU3lzdGVtLldpbmRvd3MuRm9ybXMuSG9yaXpvbnRhbEFsaWdubWVudC5MZWZ0KTsKKwkJCXRoaXMubGlzdHZpZXdncm91cFR5cGVDaGFpbiA9IG5ldyBMaXN0Vmlld0dyb3VwKCJFbGVtZW50IFR5cGUgQ2hhaW4iLCBTeXN0ZW0uV2luZG93cy5Gb3Jtcy5Ib3Jpem9udGFsQWxpZ25tZW50LkxlZnQpOworCQkJdGhpcy5saXN0dmlld05vZGVEZXRhaWxzLkdyb3Vwcy5BZGRSYW5nZShuZXcgU3lzdGVtLldpbmRvd3MuRm9ybXMuTGlzdFZpZXdHcm91cFtdIHsKKwkJCQkJIGxpc3R2aWV3Z3JvdXBBYnN0cmFjdCwKKwkJCQkJIGxpc3R2aWV3Z3JvdXBFbGVtZW50LAorCQkJCQkgbGlzdHZpZXdncm91cEJhc2VUeXBlLAorCQkJCQkgbGlzdHZpZXdncm91cFR5cGVDaGFpbn0pOworCisJCQl0cnkKKwkJCXsKKwkJCQlEaXJlY3RvcnlJbmZvIGRpckluZm8gPSBuZXcgRGlyZWN0b3J5SW5mbyhQYXRoLkdldERpcmVjdG9yeU5hbWUoQXBwbGljYXRpb24uRXhlY3V0YWJsZVBhdGgpKTsKKwkJCQlpZiAoZGlySW5mbyAhPSBudWxsKQorCQkJCXsKKwkJCQkJZGlySW5mbyA9IGRpckluZm8uUGFyZW50OworCQkJCQlpZiAoZGlySW5mbyAhPSBudWxsKQorCQkJCQl7CisJCQkJCQlkaXJJbmZvID0gZGlySW5mby5QYXJlbnQ7CisJCQkJCQlpZiAoZGlySW5mbyAhPSBudWxsKQorCQkJCQkJeworCQkJCQkJCWRpckluZm8gPSBuZXcgRGlyZWN0b3J5SW5mbyhQYXRoLkNvbWJpbmUoZGlySW5mby5GdWxsTmFtZSwgIk1pYnMiKSk7CisJCQkJCQkJaWYgKGRpckluZm8uRXhpc3RzKQorCQkJCQkJCXsKKwkJCQkJCQkJTWliVHlwZXNSZXNvbHZlci5SZWdpc3RlclJlc29sdmVyKG5ldyBGaWxlU3lzdGVtTWliUmVzb2x2ZXIoZGlySW5mby5GdWxsTmFtZSwgdHJ1ZSkpOworCQkJCQkJCX0KKwkJCQkJCX0KKwkJCQkJfQorCQkJCX0KKwkJCX0KKwkJCWNhdGNoCisJCQl7IH0KKwkJfQorCisJCSNyZWdpb24gR1VJIEV2ZW50IEhhbmRsZXIKKworCQlwcml2YXRlIHZvaWQgdG9vbGJ1dHRvbk9wZW5NaWJfQ2xpY2sob2JqZWN0IHNlbmRlciwgU3lzdGVtLkV2ZW50QXJncyBlKQorCQl7CisJCQlpZiAodGhpcy5kaWFsb2dPcGVuTWliLlNob3dEaWFsb2coKSA9PSBEaWFsb2dSZXN1bHQuT0spCisJCQl7CisJCQkJT3Blbk1pYih0aGlzLmRpYWxvZ09wZW5NaWIuRmlsZU5hbWUpOworCQkJfQorCQl9CisKKwkJcHJpdmF0ZSB2b2lkIHRyZWVNaWJfQWZ0ZXJTZWxlY3Qob2JqZWN0IHNlbmRlciwgVHJlZVZpZXdFdmVudEFyZ3MgZSkKKwkJeworCQkJbGlzdHZpZXdOb2RlRGV0YWlscy5JdGVtcy5DbGVhcigpOworCisJCQlpZiAoZS5Ob2RlICE9IG51bGwpCisJCQl7CisJCQkJTWliVHJlZU5vZGUgbXRuID0gZS5Ob2RlLlRhZyBhcyBNaWJUcmVlTm9kZTsKKwkJCQlpZiAobXRuICE9IG51bGwpCisJCQkJeworCQkJCQlsaXN0dmlld05vZGVEZXRhaWxzLkl0ZW1zLkFkZChuZXcgTGlzdFZpZXdJdGVtKG5ldyBzdHJpbmdbXSB7ICJBYnN0cmFjdCIsIG10bi5Ob2RlVHlwZS5Ub1N0cmluZygpIH0sIHRoaXMubGlzdHZpZXdncm91cEFic3RyYWN0KSk7CisKKwkJCQkJbGlzdHZpZXdOb2RlRGV0YWlscy5JdGVtcy5BZGQobmV3IExpc3RWaWV3SXRlbShuZXcgc3RyaW5nW10geyAiTW9kdWxlIiwgKG10bi5FbnRpdHkuTW9kdWxlICE9IG51bGwpID8gbXRuLkVudGl0eS5Nb2R1bGUuTmFtZSA6ICIiIH0sIHRoaXMubGlzdHZpZXdncm91cEVsZW1lbnQpKTsKKwkJCQkJbGlzdHZpZXdOb2RlRGV0YWlscy5JdGVtcy5BZGQobmV3IExpc3RWaWV3SXRlbShuZXcgc3RyaW5nW10geyAiVHlwZSIsIG10bi5FbnRpdHkuR2V0VHlwZSgpLk5hbWUgfSwgdGhpcy5saXN0dmlld2dyb3VwRWxlbWVudCkpOworCQkJCQlsaXN0dmlld05vZGVEZXRhaWxzLkl0ZW1zLkFkZChuZXcgTGlzdFZpZXdJdGVtKG5ldyBzdHJpbmdbXSB7ICJOYW1lIiwgbXRuLkVudGl0eS5OYW1lIH0sIHRoaXMubGlzdHZpZXdncm91cEVsZW1lbnQpKTsKKwkJCQkJbGlzdHZpZXdOb2RlRGV0YWlscy5JdGVtcy5BZGQobmV3IExpc3RWaWV3SXRlbShuZXcgc3RyaW5nW10geyAiRGVzY3JpcHRpb24iLCBtdG4uRW50aXR5LkRlc2NyaXB0aW9uIH0sIHRoaXMubGlzdHZpZXdncm91cEVsZW1lbnQpKTsKKwkJCQkJbGlzdHZpZXdOb2RlRGV0YWlscy5JdGVtcy5BZGQobmV3IExpc3RWaWV3SXRlbShuZXcgc3RyaW5nW10geyAiT0lEIiwgbXRuLkVudGl0eS5WYWx1ZS5Ub1N0cmluZygpIH0sIHRoaXMubGlzdHZpZXdncm91cEVsZW1lbnQpKTsKKwkJCQkJbGlzdHZpZXdOb2RlRGV0YWlscy5JdGVtcy5BZGQobmV3IExpc3RWaWV3SXRlbShuZXcgc3RyaW5nW10geyAiRnVsbCBPSUQiLCBNaWJUeXBlc1Jlc29sdmVyLlJlc29sdmVPaWQobXRuLkVudGl0eSkuR2V0T2lkU3RyaW5nKCkgfSwgdGhpcy5saXN0dmlld2dyb3VwRWxlbWVudCkpOworCQkJCQlpZiAobXRuLkVudGl0eSBpcyBPYmplY3RUeXBlKQorCQkJCQl7CisJCQkJCQlsaXN0dmlld05vZGVEZXRhaWxzLkl0ZW1zLkFkZChuZXcgTGlzdFZpZXdJdGVtKG5ldyBzdHJpbmdbXSB7ICJBY2Nlc3MiLCAobXRuLkVudGl0eSBhcyBPYmplY3RUeXBlKS5BY2Nlc3MuVG9TdHJpbmcoKSB9LCB0aGlzLmxpc3R2aWV3Z3JvdXBFbGVtZW50KSk7CisJCQkJCX0KKworCQkJCQlJVHlwZVJlZmVycmVyIHRyID0gbXRuLkVudGl0eSBhcyBJVHlwZVJlZmVycmVyOworCQkJCQlpZiAodHIgIT0gbnVsbCkKKwkJCQkJeworCQkJCQkJU2hvd1R5cGVEZXRhaWxzKGxpc3R2aWV3Tm9kZURldGFpbHMsIHRoaXMubGlzdHZpZXdncm91cEJhc2VUeXBlLCB0ci5CYXNlVHlwZSk7CisJCQkJCQlTaG93VHlwZUNoYWluKGxpc3R2aWV3Tm9kZURldGFpbHMsIHRyLlJlZmVycmVkVHlwZSk7CisJCQkJCX0KKwkJCQl9CisJCQl9CisJCX0KKworCQkjZW5kcmVnaW9uCisKKwkJI3JlZ2lvbiBNZXRob2RzCisKKwkJcHJpdmF0ZSB2b2lkIE9wZW5NaWIoc3RyaW5nIGZpbGUpCisJCXsKKwkJCXRyeQorCQkJeworCQkJCU1pYkRvY3VtZW50IG1kID0gbmV3IE1pYkRvY3VtZW50KGZpbGUpOworCQkJCU1pYlR5cGVzUmVzb2x2ZXIuUmVzb2x2ZVR5cGVzKG1kLk1vZHVsZXNbMF0pOworCisJCQkJdGhpcy50cmVlTWliLk5vZGVzLkNsZWFyKCk7CisJCQkJdGhpcy5saXN0dmlld05vZGVEZXRhaWxzLkl0ZW1zLkNsZWFyKCk7CisKKwkJCQlNaWJUcmVlIG10ID0gbmV3IE1pYlRyZWUobWQuTW9kdWxlc1swXSBhcyBNaWJNb2R1bGUpOworCQkJCWZvcmVhY2ggKE1pYlRyZWVOb2RlIG1pYlRyZWVOb2RlIGluIG10LlJvb3QpCisJCQkJeworCQkJCQlBZGROb2RlKG1pYlRyZWVOb2RlLCB0aGlzLnRyZWVNaWIuTm9kZXMpOworCisJCQkJCWZvcmVhY2ggKFRyZWVOb2RlIG5vZGUgaW4gdGhpcy50cmVlTWliLk5vZGVzKQorCQkJCQl7CisJCQkJCQlub2RlLkV4cGFuZCgpOworCQkJCQl9CisJCQkJfQorCQkJfQorCQkJY2F0Y2gKKwkJCXsKKwkJCX0KKwkJfQorCisJCXByaXZhdGUgdm9pZCBBZGROb2RlKE1pYlRyZWVOb2RlIG1pYk5vZGUsIFRyZWVOb2RlQ29sbGVjdGlvbiBwYXJlbnROb2RlcykKKwkJeworCQkJaW50IGltZ0luZGV4ID0gNTsgLy91bmtub3duCisJCQlpZiAoKG1pYk5vZGUuTm9kZVR5cGUgJiBNaWJUcmVlTm9kZVR5cGUuVGFibGUpICE9IDApCisJCQl7CisJCQkJaW1nSW5kZXggPSAxOworCQkJfQorCQkJZWxzZSBpZiAoKG1pYk5vZGUuTm9kZVR5cGUgJiBNaWJUcmVlTm9kZVR5cGUuVGFibGVSb3cpICE9IDApCisJCQl7CisJCQkJaW1nSW5kZXggPSAyOworCQkJfQorCQkJZWxzZSBpZiAoKG1pYk5vZGUuTm9kZVR5cGUgJiBNaWJUcmVlTm9kZVR5cGUuVGFibGVDZWxsKSAhPSAwKQorCQkJeworCQkJCWltZ0luZGV4ID0gMzsKKwkJCX0KKwkJCWVsc2UgaWYgKChtaWJOb2RlLk5vZGVUeXBlICYgTWliVHJlZU5vZGVUeXBlLlNjYWxhcikgIT0gMCkKKwkJCXsKKwkJCQlpbWdJbmRleCA9IDQ7CisJCQl9CisJCQllbHNlIGlmICgobWliTm9kZS5Ob2RlVHlwZSAmIE1pYlRyZWVOb2RlVHlwZS5Db250YWluZXIpICE9IDApCisJCQl7CisJCQkJaW1nSW5kZXggPSAwOworCQkJfQorCisJCQlUcmVlTm9kZSBuZXdOb2RlID0gbmV3IFRyZWVOb2RlKG1pYk5vZGUuRW50aXR5Lk5hbWUsIGltZ0luZGV4LCBpbWdJbmRleCk7CisJCQluZXdOb2RlLlRhZyA9IG1pYk5vZGU7CisKKwkJCXBhcmVudE5vZGVzLkFkZChuZXdOb2RlKTsKKworCQkJZm9yZWFjaCAoTWliVHJlZU5vZGUgY2hpbGQgaW4gbWliTm9kZS5DaGlsZE5vZGVzKQorCQkJeworCQkJCUFkZE5vZGUoY2hpbGQsIG5ld05vZGUuTm9kZXMpOworCQkJfQorCQl9CisKKwkJcHJpdmF0ZSB2b2lkIFNob3dUeXBlQ2hhaW4oTGlzdFZpZXcgbHYsIElUeXBlQXNzaWdubWVudCB0eXBlKQorCQl7CisJCQlTaG93VHlwZURldGFpbHMobHYsIHRoaXMubGlzdHZpZXdncm91cFR5cGVDaGFpbiwgdHlwZSk7CisKKwkJCUlUeXBlUmVmZXJyZXIgdHIgPSB0eXBlIGFzIElUeXBlUmVmZXJyZXI7CisJCQlpZiAoKHRyICE9IG51bGwpICYmICh0ci5SZWZlcnJlZFR5cGUgIT0gbnVsbCkpCisJCQl7CisJCQkJbHYuSXRlbXMuQWRkKG5ldyBMaXN0Vmlld0l0ZW0obmV3IHN0cmluZ1tdIHsgIiA+Pj4iLCAiIiB9LCB0aGlzLmxpc3R2aWV3Z3JvdXBUeXBlQ2hhaW4pKTsKKwkJCQlTaG93VHlwZUNoYWluKGxpc3R2aWV3Tm9kZURldGFpbHMsIHRyLlJlZmVycmVkVHlwZSk7CisJCQl9CisJCX0KKworCQlwcml2YXRlIHZvaWQgU2hvd1R5cGVEZXRhaWxzKExpc3RWaWV3IGx2LCBMaXN0Vmlld0dyb3VwIGx2ZywgSVR5cGVBc3NpZ25tZW50IHR5cGUpCisJCXsKKwkJCWx2Lkl0ZW1zLkFkZChuZXcgTGlzdFZpZXdJdGVtKG5ldyBzdHJpbmdbXSB7ICJNb2R1bGUiLCAodHlwZS5Nb2R1bGUgIT0gbnVsbCkgPyB0eXBlLk1vZHVsZS5OYW1lIDogIiIgfSwgbHZnKSk7CisJCQlsdi5JdGVtcy5BZGQobmV3IExpc3RWaWV3SXRlbShuZXcgc3RyaW5nW10geyAiVHlwZSIsIHR5cGUuR2V0VHlwZSgpLk5hbWUgfSwgbHZnKSk7CisJCQlsdi5JdGVtcy5BZGQobmV3IExpc3RWaWV3SXRlbShuZXcgc3RyaW5nW10geyAiTmFtZSIsIHR5cGUuTmFtZSB9LCBsdmcpKTsKKwkJfQorCisJCSNlbmRyZWdpb24KKworCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL0Zvcm1NYWluLnJlc3ggYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9Gb3JtTWFpbi5yZXN4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3M2Y1NDYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9Gb3JtTWFpbi5yZXN4CkBAIC0wLDAgKzEsMjk4IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPHJvb3Q+CisgIDwhLS0gCisgICAgTWljcm9zb2Z0IFJlc1ggU2NoZW1hIAorICAgIAorICAgIFZlcnNpb24gMi4wCisgICAgCisgICAgVGhlIHByaW1hcnkgZ29hbHMgb2YgdGhpcyBmb3JtYXQgaXMgdG8gYWxsb3cgYSBzaW1wbGUgWE1MIGZvcm1hdCAKKyAgICB0aGF0IGlzIG1vc3RseSBodW1hbiByZWFkYWJsZS4gVGhlIGdlbmVyYXRpb24gYW5kIHBhcnNpbmcgb2YgdGhlIAorICAgIHZhcmlvdXMgZGF0YSB0eXBlcyBhcmUgZG9uZSB0aHJvdWdoIHRoZSBUeXBlQ29udmVydGVyIGNsYXNzZXMgCisgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhIHR5cGVzLgorICAgIAorICAgIEV4YW1wbGU6CisgICAgCisgICAgLi4uIGFkby5uZXQvWE1MIGhlYWRlcnMgJiBzY2hlbWEgLi4uCisgICAgPHJlc2hlYWRlciBuYW1lPSJyZXNtaW1ldHlwZSI+dGV4dC9taWNyb3NvZnQtcmVzeDwvcmVzaGVhZGVyPgorICAgIDxyZXNoZWFkZXIgbmFtZT0idmVyc2lvbiI+Mi4wPC9yZXNoZWFkZXI+CisgICAgPHJlc2hlYWRlciBuYW1lPSJyZWFkZXIiPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlUmVhZGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgLi4uPC9yZXNoZWFkZXI+CisgICAgPHJlc2hlYWRlciBuYW1lPSJ3cml0ZXIiPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlV3JpdGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgLi4uPC9yZXNoZWFkZXI+CisgICAgPGRhdGEgbmFtZT0iTmFtZTEiPjx2YWx1ZT50aGlzIGlzIG15IGxvbmcgc3RyaW5nPC92YWx1ZT48Y29tbWVudD50aGlzIGlzIGEgY29tbWVudDwvY29tbWVudD48L2RhdGE+CisgICAgPGRhdGEgbmFtZT0iQ29sb3IxIiB0eXBlPSJTeXN0ZW0uRHJhd2luZy5Db2xvciwgU3lzdGVtLkRyYXdpbmciPkJsdWU8L2RhdGE+CisgICAgPGRhdGEgbmFtZT0iQml0bWFwMSIgbWltZXR5cGU9ImFwcGxpY2F0aW9uL3gtbWljcm9zb2Z0Lm5ldC5vYmplY3QuYmluYXJ5LmJhc2U2NCI+CisgICAgICAgIDx2YWx1ZT5bYmFzZTY0IG1pbWUgZW5jb2RlZCBzZXJpYWxpemVkIC5ORVQgRnJhbWV3b3JrIG9iamVjdF08L3ZhbHVlPgorICAgIDwvZGF0YT4KKyAgICA8ZGF0YSBuYW1lPSJJY29uMSIgdHlwZT0iU3lzdGVtLkRyYXdpbmcuSWNvbiwgU3lzdGVtLkRyYXdpbmciIG1pbWV0eXBlPSJhcHBsaWNhdGlvbi94LW1pY3Jvc29mdC5uZXQub2JqZWN0LmJ5dGVhcnJheS5iYXNlNjQiPgorICAgICAgICA8dmFsdWU+W2Jhc2U2NCBtaW1lIGVuY29kZWQgc3RyaW5nIHJlcHJlc2VudGluZyBhIGJ5dGUgYXJyYXkgZm9ybSBvZiB0aGUgLk5FVCBGcmFtZXdvcmsgb2JqZWN0XTwvdmFsdWU+CisgICAgICAgIDxjb21tZW50PlRoaXMgaXMgYSBjb21tZW50PC9jb21tZW50PgorICAgIDwvZGF0YT4KKyAgICAgICAgICAgICAgICAKKyAgICBUaGVyZSBhcmUgYW55IG51bWJlciBvZiAicmVzaGVhZGVyIiByb3dzIHRoYXQgY29udGFpbiBzaW1wbGUgCisgICAgbmFtZS92YWx1ZSBwYWlycy4KKyAgICAKKyAgICBFYWNoIGRhdGEgcm93IGNvbnRhaW5zIGEgbmFtZSwgYW5kIHZhbHVlLiBUaGUgcm93IGFsc28gY29udGFpbnMgYSAKKyAgICB0eXBlIG9yIG1pbWV0eXBlLiBUeXBlIGNvcnJlc3BvbmRzIHRvIGEgLk5FVCBjbGFzcyB0aGF0IHN1cHBvcnQgCisgICAgdGV4dC92YWx1ZSBjb252ZXJzaW9uIHRocm91Z2ggdGhlIFR5cGVDb252ZXJ0ZXIgYXJjaGl0ZWN0dXJlLiAKKyAgICBDbGFzc2VzIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGlzIGFyZSBzZXJpYWxpemVkIGFuZCBzdG9yZWQgd2l0aCB0aGUgCisgICAgbWltZXR5cGUgc2V0LgorICAgIAorICAgIFRoZSBtaW1ldHlwZSBpcyB1c2VkIGZvciBzZXJpYWxpemVkIG9iamVjdHMsIGFuZCB0ZWxscyB0aGUgCisgICAgUmVzWFJlc291cmNlUmVhZGVyIGhvdyB0byBkZXBlcnNpc3QgdGhlIG9iamVjdC4gVGhpcyBpcyBjdXJyZW50bHkgbm90IAorICAgIGV4dGVuc2libGUuIEZvciBhIGdpdmVuIG1pbWV0eXBlIHRoZSB2YWx1ZSBtdXN0IGJlIHNldCBhY2NvcmRpbmdseToKKyAgICAKKyAgICBOb3RlIC0gYXBwbGljYXRpb24veC1taWNyb3NvZnQubmV0Lm9iamVjdC5iaW5hcnkuYmFzZTY0IGlzIHRoZSBmb3JtYXQgCisgICAgdGhhdCB0aGUgUmVzWFJlc291cmNlV3JpdGVyIHdpbGwgZ2VuZXJhdGUsIGhvd2V2ZXIgdGhlIHJlYWRlciBjYW4gCisgICAgcmVhZCBhbnkgb2YgdGhlIGZvcm1hdHMgbGlzdGVkIGJlbG93LgorICAgIAorICAgIG1pbWV0eXBlOiBhcHBsaWNhdGlvbi94LW1pY3Jvc29mdC5uZXQub2JqZWN0LmJpbmFyeS5iYXNlNjQKKyAgICB2YWx1ZSAgIDogVGhlIG9iamVjdCBtdXN0IGJlIHNlcmlhbGl6ZWQgd2l0aCAKKyAgICAgICAgICAgIDogU3lzdGVtLlJ1bnRpbWUuU2VyaWFsaXphdGlvbi5Gb3JtYXR0ZXJzLkJpbmFyeS5CaW5hcnlGb3JtYXR0ZXIKKyAgICAgICAgICAgIDogYW5kIHRoZW4gZW5jb2RlZCB3aXRoIGJhc2U2NCBlbmNvZGluZy4KKyAgICAKKyAgICBtaW1ldHlwZTogYXBwbGljYXRpb24veC1taWNyb3NvZnQubmV0Lm9iamVjdC5zb2FwLmJhc2U2NAorICAgIHZhbHVlICAgOiBUaGUgb2JqZWN0IG11c3QgYmUgc2VyaWFsaXplZCB3aXRoIAorICAgICAgICAgICAgOiBTeXN0ZW0uUnVudGltZS5TZXJpYWxpemF0aW9uLkZvcm1hdHRlcnMuU29hcC5Tb2FwRm9ybWF0dGVyCisgICAgICAgICAgICA6IGFuZCB0aGVuIGVuY29kZWQgd2l0aCBiYXNlNjQgZW5jb2RpbmcuCisKKyAgICBtaW1ldHlwZTogYXBwbGljYXRpb24veC1taWNyb3NvZnQubmV0Lm9iamVjdC5ieXRlYXJyYXkuYmFzZTY0CisgICAgdmFsdWUgICA6IFRoZSBvYmplY3QgbXVzdCBiZSBzZXJpYWxpemVkIGludG8gYSBieXRlIGFycmF5IAorICAgICAgICAgICAgOiB1c2luZyBhIFN5c3RlbS5Db21wb25lbnRNb2RlbC5UeXBlQ29udmVydGVyCisgICAgICAgICAgICA6IGFuZCB0aGVuIGVuY29kZWQgd2l0aCBiYXNlNjQgZW5jb2RpbmcuCisgICAgLS0+CisgIDx4c2Q6c2NoZW1hIGlkPSJyb290IiB4bWxucz0iIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSI+CisgICAgPHhzZDppbXBvcnQgbmFtZXNwYWNlPSJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UiIC8+CisgICAgPHhzZDplbGVtZW50IG5hbWU9InJvb3QiIG1zZGF0YTpJc0RhdGFTZXQ9InRydWUiPgorICAgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgPHhzZDpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJtZXRhZGF0YSI+CisgICAgICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiAvPgorICAgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdXNlPSJyZXF1aXJlZCIgdHlwZT0ieHNkOnN0cmluZyIgLz4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ibWltZXR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIHJlZj0ieG1sOnNwYWNlIiAvPgorICAgICAgICAgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgPC94c2Q6ZWxlbWVudD4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iYXNzZW1ibHkiPgorICAgICAgICAgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0iYWxpYXMiIHR5cGU9InhzZDpzdHJpbmciIC8+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIC8+CisgICAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJkYXRhIj4KKyAgICAgICAgICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPgorICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJjb21tZW50IiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIyIiAvPgorICAgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9InR5cGUiIHR5cGU9InhzZDpzdHJpbmciIG1zZGF0YTpPcmRpbmFsPSIzIiAvPgorICAgICAgICAgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJtaW1ldHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgbXNkYXRhOk9yZGluYWw9IjQiIC8+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIHJlZj0ieG1sOnNwYWNlIiAvPgorICAgICAgICAgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgPC94c2Q6ZWxlbWVudD4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0icmVzaGVhZGVyIj4KKyAgICAgICAgICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgICAgIDx4c2Q6c2VxdWVuY2U+CisgICAgICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InZhbHVlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtaW5PY2N1cnM9IjAiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPgorICAgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgdXNlPSJyZXF1aXJlZCIgLz4KKyAgICAgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgIDwveHNkOmNob2ljZT4KKyAgICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICAgIDwveHNkOmVsZW1lbnQ+CisgIDwveHNkOnNjaGVtYT4KKyAgPHJlc2hlYWRlciBuYW1lPSJyZXNtaW1ldHlwZSI+CisgICAgPHZhbHVlPnRleHQvbWljcm9zb2Z0LXJlc3g8L3ZhbHVlPgorICA8L3Jlc2hlYWRlcj4KKyAgPHJlc2hlYWRlciBuYW1lPSJ2ZXJzaW9uIj4KKyAgICA8dmFsdWU+Mi4wPC92YWx1ZT4KKyAgPC9yZXNoZWFkZXI+CisgIDxyZXNoZWFkZXIgbmFtZT0icmVhZGVyIj4KKyAgICA8dmFsdWU+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VSZWFkZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OTwvdmFsdWU+CisgIDwvcmVzaGVhZGVyPgorICA8cmVzaGVhZGVyIG5hbWU9IndyaXRlciI+CisgICAgPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlV3JpdGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPgorICA8L3Jlc2hlYWRlcj4KKyAgPG1ldGFkYXRhIG5hbWU9ImltYWdlbGlzdFRyZWVOb2RlSW1hZ2VzLlRyYXlMb2NhdGlvbiIgdHlwZT0iU3lzdGVtLkRyYXdpbmcuUG9pbnQsIFN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYSI+CisgICAgPHZhbHVlPjE3LCAxNzwvdmFsdWU+CisgIDwvbWV0YWRhdGE+CisgIDxkYXRhIG5hbWU9ImltYWdlbGlzdFRyZWVOb2RlSW1hZ2VzLkltYWdlU3RyZWFtIiBtaW1ldHlwZT0iYXBwbGljYXRpb24veC1taWNyb3NvZnQubmV0Lm9iamVjdC5iaW5hcnkuYmFzZTY0Ij4KKyAgICA8dmFsdWU+CisgICAgICAgIEFBRUFBQUQvLy8vL0FRQUFBQUFBQUFBTUFnQUFBRmRUZVhOMFpXMHVWMmx1Wkc5M2N5NUdiM0p0Y3l3Z1ZtVnljMmx2YmowMExqQXVNQzR3CisgICAgICAgIExDQkRkV3gwZFhKbFBXNWxkWFJ5WVd3c0lGQjFZbXhwWTB0bGVWUnZhMlZ1UFdJM04yRTFZelUyTVRrek5HVXdPRGtGQVFBQUFDWlRlWE4wCisgICAgICAgIFpXMHVWMmx1Wkc5M2N5NUdiM0p0Y3k1SmJXRm5aVXhwYzNSVGRISmxZVzFsY2dFQUFBQUVSR0YwWVFjQ0FnQUFBQWtEQUFBQUR3TUFBQUJvCisgICAgICAgIElRQUFBazFUUm5RQlNRRk1BZ0VCQmdFQUFSQUJBQUVRQVFBQkVBRUFBUkFCQUFUL0FTRUJBQWovQVVJQlRRRTJCd0FCTmdNQUFTZ0RBQUZBCisgICAgICAgIEF3QUJJQU1BQVFFQkFBRWdCZ0FCSUJJQUF3UUJCUU1XQVI0RElnRXlBekVCVHdKR0FVUUJod012QVVzREhnRXJBeHNCSmdNWUFTSURGUUVkCisgICAgICAgIEF4SUJHQU1OQVJJRENnRU5Bd2NCQ1FNRUFRVURBUUVDQXdRQkJRTVdBUjRESWdFeUF6RUJUZ0pHQVVRQmh3TXZBVXNESGdFckF4c0JKZ01iCisgICAgICAgIEFTWURJUUV4QXlFQk1BTWRBU29ER3dFbUF4Z0JJUU1MQVE4REFRRUNnQUFEQWdFREF3d0JFQU1yQVVNQ1JnRkVBWUlDL3dId0FmOENSZ0ZFCisgICAgICAgIEFZSURLZ0ZBQXc4QkZBTU5BUkVEQ3dFUEF3a0JEQU1IQVFvREJRRUhBd1FCQlFNQ0FRTURBQUVCQXdJQkF3TUxBUThES3dGREFrWUJSQUdDCisgICAgICAgIEF2OEI4QUgvQWtZQlJBR0NBeW9CUUFNT0FSTURFZ0VaQVQwQ093RnBBVndCUlFGQ0Fhd0Jad0UrQVRvQnhBRmFBVVVCUXdHcUFUd0JPd0U2CisgICAgICAgIEFXWURFQUVXQXdBQkFZUUFBeDRCS3dKRUFVSUJld0wvQWZBQi93THBBZG9EL3dIeEFmOENSQUZDQVhzREhnRXJKQUFESGdFckFrUUJRZ0Y3CisgICAgICAgIEF2OEI4QUgvQXVrQjJnUC9BZkVCL3dKRUFVSUJld01lQVNzQkxnSXRBVWNCZHdGSEFUd0J5UUc3QVZRQlBRSHhBKzRCL3dHN0FWTUJQQUh4CisgICAgICAgIEFYY0JSZ0U4QWNrQkxnSXRBVWVFQUFNZEFTb0NSQUZDQVhjQy93SHdBZjhCNndIZEFiRUIvd0gzQWNFQk53SC9BZTBCM3dHekEvOEI4Z0gvCisgICAgICAgIEFrUUJRZ0YzQXgwQktod0FBeDBCS2dKRUFVSUJkd0wvQWZBQi93THBBZG9CL3dMcUFkd0Ivd0xyQWQ0RC93SHlBZjhDUkFGQ0FYY0JaQUZKCisgICAgICAgIEFVSUJyd0cyQVZrQlFRSHhBYzBCVkFFeUFmOEJ2UUY1QVdJQi93SEZBVkFCTGdIL0FiRUJVUUUxQWZFQlhBRklBVVFCbjRRQUFrTUJRUUYyCisgICAgICAgIEF2OEI4QUgvQXVrQjJnSC9BZWNCcXdFaEFmOEI1d0dyQVNFQi93SG5BYXNCSVFIL0Flb0Iyd0d3QS84QjlBSC9Ba01CUVFGMkF4MEJLaGdBCisgICAgICAgIEFrTUJRUUYyQXY4QjhBSC9BdWtCMmdIL0F1b0IzQUgvQXVzQjNnSC9BdXdCM3dIL0F1MEI0UVAvQWZRQi93R0FBVVFCTVFIYUFjNEJjQUZOCisgICAgICAgIEFmd0J1Z0ZNQVNvQi93UFNBZjhCdmdHTEFYZ0Ivd0c3QVZJQk1nSDhBVzhCU1FFL0FicUVBQU1kQVNrQ1F3RkJBWFFDL3dIeEFmOEI1d0hYCisgICAgICAgIEFhc0Ivd0hYQVpZQkRBSC9BZGNCbGdFTUFmOEIxd0dXQVF3Qi93SG9BZGdCcmdQL0FmVUIvd0pEQVVFQmRBTWRBU2tVQUFNZEFTa0NRd0ZCCisgICAgICAgIEFYUUMvd0h4QWY4QzZ3SGVBZjhDN0FIZkFmOEM3UUhoQWY4QzdnSGpBZjhDN3dIbEFmOEJ6UUY1QVY0Qi93SE9BWGNCV0FIM0Fid0JWQUV5CisgICAgICAgIEFmOEJ0QUZNQVNvQi93UG1BZjhCdHdGbEFVc0I4QUZkQVVrQlJBR2RpQUFESFFFcEFrSUJRUUZ5QXY4QjhnSC9BZVVCMUFHcEFmOEJ6UUdKCisgICAgICAgIEFRQUIvd0hOQVlrQkFBSC9BYzBCaVFFQUFmOEI2QUhYQWE4RC93SDNBZjhDUWdGQkFYSURIQUVvRkFBREhRRXBBa0lCUVFGeUF2OEI4Z0gvCisgICAgICAgIEF1MEI0UUgvQXU0QjR3SC9BdThCNVFIL0F2QUI1d0gvQWVBQnV3R3FBZjhCemdGcEFVZ0Ivd0hqQWNzQndRSDVCUDhCM2dISEFiMEI5UUYrCisgICAgICAgIEFVOEJRZ0hFQWkwQkxBRkZqQUFESEFFb0FrRUJRQUZ4QXY4QjlBSC9BZWNCMWdHc0FmOEIwUUdPQVFRQi93SFJBWTRCQkFIL0FkRUJqZ0VFCisgICAgICAgIEFmOEI3QUhiQWJNRC93SDRBZjhDUVFGQUFYRURIQUVvRkFBREhBRW9Ba0VCUUFGeEF2OEI5QUgvQXU4QjVRSC9BdkFCNXdIL0F2RUI2UUgvCisgICAgICAgIEF2TUI2Z0gvQWVRQnZnR3NBZjhCMUFHQkFXSUIvd0dHQVVvQk5BSFhBV1lCVFFGRUFhb0NMUUVzQVVXVUFBTWNBU2NDUVFGQUFXOEMvd0gxCisgICAgICAgIEFmOEI3QUhjQWJNQi93SGZBYUVCRndIL0FkOEJvUUVYQWY4QjN3R2hBUmNCL3dIeEFlSUJ1d1AvQWZvQi93SkJBVUFCYndNY0FTY1VBQU1jCisgICAgICAgIEFTY0NRUUZBQVc4Qy93SDFBZjhDOFFIcEFmOEM4d0hxQWY4QzlBSHNBZjhDOVFIdUFmOEM5Z0h3QS84QitnSC9Ba0VCUUFGdkF4d0JKNWdBCisgICAgICAgIEF4d0JKd0pBQVQ4QmJRTC9BZmNCL3dIeUFlTUJ1d0gvQWZBQnVBRXVBZjhCOEFHNEFTNEIvd0h3QWJnQkxnSC9BdmdCOUFQL0Fmc0Ivd0pBCisgICAgICAgIEFUOEJiUU1jQVNjVUFBTWNBU2NDUUFFL0FXMEMvd0gzQWY4QzlBSHNBZjhDOVFIdUFmOEM5Z0h3QWY4Qzl3SHlBZjhDK0FIMEEvOEIrd0gvCisgICAgICAgIEFrQUJQd0Z0QXh3Qko1Z0FBeHNCSmdKQUFUOEJiQUwvQWZnQi93SDNBZW9Cd3dIL0FmMEJ5UUUvQWY4QitRSHNBY2NCL3dMN0FmY0Ivd0w4CisgICAgICAgIEFma0Qvd0g4QWY4Q1FBRS9BV3dER3dFbUZBQURHd0VtQWtBQlB3RnNBdjhCK0FIL0F2WUI4QUgvQXZjQjhnSC9BdmdCOUFIL0F2c0I5d0gvCisgICAgICAgIEF2d0IrUVAvQWZ3Qi93SkFBVDhCYkFNYkFTYVlBQU1iQVNZQ1B3RStBV3NDL3dINkFmOEMrQUgwQWY4Qyt3SDNBZjhDM3dIVkFmOEN5UUc1CisgICAgICAgIEFmOEM0QUhXQS84Qi9nSC9BajhCUGdGckdBQURHd0VtQWo4QlBnRnJBdjhCK2dIL0F2Z0I5QUgvQXZzQjl3SC9BdDhCMVFIL0Fza0J1UUgvCisgICAgICAgIEF1QUIxZ1AvQWY0Qi93SS9BVDRCYTV3QUF4b0JKUUkvQVQwQmFRTC9BZnNCL3dMOEFma0Ivd0s4QWF3Qi93UUFBcndCckFQL0FmNEIvd0kvCisgICAgICAgIEFUMEJhUndBQXhvQkpRSS9BVDBCYVFML0Fmc0Ivd0w4QWZrQi93SzhBYXdCL3dRQUFyd0JyQVAvQWY0Qi93SS9BVDBCYWFBQUF4b0JKUUkrCisgICAgICAgIEFUMEJhQUwvQWZ3Qi93TExBY0VCL3dLZ0FaQUIvd0xMQWNFRC93SCtBZjhDUGdFOUFXZ2dBQU1hQVNVQ1BnRTlBV2dDL3dIOEFmOEN5d0hCCisgICAgICAgIEFmOENvQUdRQWY4Q3l3SEJBLzhCL2dIL0FqNEJQUUZvcEFBREdnRWxBajRCUFFGbkF2OEIvZ1AvQWY0RC93SCtCZjhDUGdFOUFXY2tBQU1hCisgICAgICAgIEFTVUNQZ0U5QVdjQy93SCtBLzhCL2dQL0FmNEYvd0krQVQwQlo2Z0FBeG9CSkFJK0FUMEJaZ0krQVQwQlpnSStBVDBCWmdJK0FUMEJaZ014CisgICAgICAgIEFVMG9BQU1hQVNRQ1BnRTlBV1lDUGdFOUFXWUNQZ0U5QVdZQ1BnRTlBV1lETVFGTmxBQURJUUV3QVVBQlJnRklBWHdCUXdGT0FWSUJrZ01GCisgICAgICAgIEFRY2NBQU1IQVFrREVBRVdBeE1CR2dNVEFSb0RFd0VhQXhNQkdnTVRBUm9ERXdFYUF4TUJHZ01UQVJvREV3RWFBeE1CR2dNVEFSb0RFd0VhCisgICAgICAgIEF4QUJGZ01IQVFrREJ3RUpBeEFCRmdNVEFSb0RFd0VhQXhNQkdnTVRBUm9ERXdFYUF4TUJHZ01UQVJvREV3RWFBeE1CR2dNVEFSb0RFd0VhCisgICAgICAgIEF4TUJHZ01RQVJZREJ3RUpBd2NCQ1FNUUFSWURFd0VhQXhNQkdnTVRBUm9ERXdFYUF4TUJHZ01UQVJvREV3RWFBeE1CR2dNVEFSb0RFd0VhCisgICAgICAgIEF4TUJHZ01UQVJvREVBRVdBd2NCQ1F3QUFqSUJNd0ZRQVVNQlVRRlhBWmtCUlFGa0FYUUJ3QUZZQVlzQm9nSGdBVHdCV0FGcUFjRURFd0VhCisgICAgICAgIEF3VUJCeGdBQWp3Qk93RnBBa1lCUkFHSEFrWUJSQUdIQWtZQlJBR0hBa1lCUkFHSEFrWUJSQUdIQWtZQlJBR0hBa1lCUkFHSEFrWUJSQUdICisgICAgICAgIEFrWUJSQUdIQWtZQlJBR0hBa1lCUkFHSEFrWUJSQUdIQWtZQlJBR0hBa1lCUkFHSEFqd0JPd0ZwQWprQk5BRnBBa0FCTndHSEFrQUJOd0dICisgICAgICAgIEFrQUJOd0dIQWtBQk53R0hBa0FCTndHSEFrQUJOd0dIQWtBQk53R0hBa0FCTndHSEFrQUJOd0dIQWtBQk53R0hBa0FCTndHSEFrQUJOd0dICisgICAgICAgIEFrQUJOd0dIQWtBQk53R0hBamtCTkFGcEFqd0JPd0ZwQWtZQlJBR0hBa1lCUkFHSEFrWUJSQUdIQWtZQlJBR0hBa1lCUkFHSEFrWUJSQUdICisgICAgICAgIEFrWUJSQUdIQWtZQlJBR0hBa1lCUkFHSEFrWUJSQUdIQWtZQlJBR0hBa1lCUkFHSEFrWUJSQUdIQWtZQlJBR0hBandCT3dGcEF3MEJFUU1hCisgICAgICAgIEFTUUJSQUZOQVZFQm1BRThBWWtCckFIeUFXY0Jyd0hUQWZvQmdnSExBZXdCL3dHRkFjNEI3Z0gvQVJVQld3R0NBZThCT2dGWEFXWUJ4QUU2CisgICAgICAgIEFWY0JaZ0hFQVQ0QldnRnFBYjRCUGdGYUFXb0J2Z0UrQVZvQmFnRytBVVFCVFFGUkFaZ0RHZ0VrQXcwQkVRSkdBVU1CZ1FMNUFla0Ivd0x6CisgICAgICAgIEFlSUIvd0x6QWVJQi93THpBZUlCL3dMekFlSUIvd0x6QWVJQi93THpBZUlCL3dMekFlSUIvd0x6QWVJQi93THpBZUlCL3dMekFlSUIvd0x6CisgICAgICAgIEFlSUIvd0x6QWVJQi93TDVBZWtCL3dKR0FVTUJnUUpEQVRvQmdRTDVBZWtCL3dMekFlSUIvd0x6QWVJQi93THpBZUlCL3dMekFlSUIvd0x6CisgICAgICAgIEFlSUIvd0x6QWVJQi93THpBZUlCL3dMekFlSUIvd0x6QWVJQi93THpBZUlCL3dMekFlSUIvd0x6QWVJQi93TDVBZWtCL3dKREFUb0JnUUpHCisgICAgICAgIEFVTUJnUUw1QWVrQi93THpBZUlCL3dMekFlSUIvd0x6QWVJQi93THpBZUlCL3dMekFlSUIvd0x6QWVJQi93THpBZUlCL3dMekFlSUIvd0x6CisgICAgICAgIEFlSUIvd0x6QWVJQi93THpBZUlCL3dMekFlSUIvd0w1QWVrQi93SkdBVU1CZ1FNSEFRa0REUUVTQVVJQld3Rm1BYklCaUFIUUFlOEIvd0Y5CisgICAgICAgIEFjb0I2UUgvQVgwQnlnSHBBZjhCaHdIUUFlOEIvd0VrQVhzQnFRSC9BWDBCdkFIYkFmOEJmUUc4QWRzQi93R05BZEVCOHdIL0FZMEIwUUh6CisgICAgICAgIEFmOEJrQUhVQWZVQi93RkNBVnNCWmdHeUFUQUNNUUZOQXdjQkNRSkVBVU1CZWdMMEFlUUMvd0hNQVVJQi93SCtBY3NCUVFIL0Fld0IwZ0dHCisgICAgICAgIEFmOEMyZ0hKQWY4QzJBSEhBZjhDMWdIRkFmOEMxQUhEQWY4QzB3SENBZjhDMFFIQUFmOEN6d0crQWY4Q3pnRzlBZjhDelFHOEFmOEM5QUhrCisgICAgICAgIEFmOENSQUZEQVhvQ1JnRStBWG9DOUFIa0F2OEJ6QUZEQWY4Qi9nSExBVUlCL3dIc0FkSUJoZ0gvQXRvQnlRSC9BdGdCeHdIL0F0WUJ4UUgvCisgICAgICAgIEF0UUJ3d0gvQXRNQndnSC9BdEVCd0FIL0FzOEJ2Z0gvQXM0QnZRSC9BczBCdkFIL0F2UUI1QUgvQWtZQlBnRjZBa1FCUXdGNkF2UUI1QUwvCisgICAgICAgIEFjd0JRZ0gvQWY0Qnl3RkJBZjhCN0FIU0FZWUIvd0xhQWNrQi93TFlBY2NCL3dIbkFXRUJQd0gvQWVjQllRRS9BZjhCNXdGaEFUOEIvd0huCisgICAgICAgIEFXRUJQd0gvQXM4QnZnSC9BczRCdlFIL0FzMEJ2QUgvQXZRQjVBSC9Ba1FCUXdGNkNBQUJRd0ZYQVdBQnBBR0tBZE1COEFIL0FZSUJ6UUhyCisgICAgICAgIEFmOEJnZ0hOQWVzQi93R0tBZE1COEFIL0FTUUJmQUdyQWY4QmVnRzVBZGdCL3dGNkFia0IyQUgvQVlvQnpnSHdBZjhCaWdIT0FmQUIvd0dQCisgICAgICAgIEFkTUI5QUgvQWZRQnRnRXNBZjhCUXdGWEFXQUJwQVFBQWtRQlFnRjNBdlVCNWdML0Fjd0JRZ0wvQWU0QmlBSC9BZXdCMGdHR0FmOEM5UUh1CisgICAgICAgIEFmOEM5UUh1QWY4QzFnSEZBZjhDOVFIdUFmOEM5UUh1QWY4QzBRSEFBZjhDOVFIdUFmOEM5UUh1QWY4Q3pRRzhBZjhDOVFIbUFmOENSQUZDCisgICAgICAgIEFYY0NSd0UvQVhjQzlRSG1BdjhCekFGREF2OEI3Z0dJQWY4QjdBSFNBWVlCL3dMMUFlNEIvd0wxQWU0Qi93TFdBY1VCL3dMMUFlNEIvd0wxCisgICAgICAgIEFlNEIvd0xSQWNBQi93TDFBZTRCL3dMMUFlNEIvd0xOQWJ3Qi93TDFBZVlCL3dKSEFUOEJkd0pFQVVJQmR3TDFBZVlDL3dITUFVSUMvd0h1CisgICAgICAgIEFZZ0Ivd0hzQWRJQmhnSC9BdlVCN2dIL0F2VUI3Z0gvQWRrQldBRTJBZjhCOGdISkFiZ0Ivd0h5QWNrQnVBSC9BZGtCV0FFMkFmOEM5UUh1CisgICAgICAgIEFmOEM5UUh1QWY4Q3pRRzhBZjhDOVFIbUFmOENSQUZDQVhjSUFBRkRBVlVCWGdHZUFZNEIxZ0h5QWY4Qmh3SFFBZTBCL3dHSEFkQUI3UUgvCisgICAgICAgIEFZNEIxZ0h5QWY4QkpnR0NBYThCL3dGN0Fib0IyQUgvQVhzQnVnSFlBZjhCaXdIUEFmRUIvd0dMQWM4QjhRSC9BWkVCMVFIMUFmOEIvZ0hKCisgICAgICAgIEFUOEIvd0ZEQVZVQlhnR2VCQUFDUXdGQkFYVUM5Z0hwQXY4QnpBRkNBZjhCL2dITEFVRUIvd0hzQWRJQmhnSC9BdG9CeVFIL0F0Z0J4d0gvCisgICAgICAgIEF0d0J6QUgvQXRRQnd3SC9BdE1Cd2dIL0F0Z0J5QUgvQXM4QnZnSC9BczRCdlFIL0FzMEJ2QUgvQXZZQjZRSC9Ba01CUVFGMUFrY0JQd0YxCisgICAgICAgIEF2WUI2UUwvQWN3QlF3SC9BZjRCeXdGQ0FmOEI3QUhTQVlZQi93TGFBY2tCL3dMWUFjY0Ivd0xjQWN3Qi93TFVBY01CL3dMVEFjSUIvd0xZCisgICAgICAgIEFjZ0Ivd0xQQWI0Qi93TE9BYjBCL3dMTkFid0Ivd0wyQWVrQi93SkhBVDhCZFFKREFVRUJkUUwyQWVrQy93SE1BVUlCL3dIK0Fjc0JRUUgvCisgICAgICAgIEFld0IwZ0dHQWY4QzJnSEpBZjhDMkFISEFmOEJ5QUZQQVMwQi93SGVBYllCbmdIL0FkNEJ0UUdkQWY4QnlBRlBBUzBCL3dMUEFiNEIvd0xPCisgICAgICAgIEFiMEIvd0xOQWJ3Qi93TDJBZWtCL3dKREFVRUJkUWdBQVVRQlZRRmRBWnNCa2dIYUFmUUIvd0dMQWRRQjhBSC9BWXNCMUFId0FmOEJrZ0hhCisgICAgICAgIEFmUUIvd0VwQVlVQnN3SC9BWDBCdkFIYUFmOEJmUUc4QWRvQi93R05BZEVCOHdIL0FZMEIwUUh6QWY4Qmt3SFhBZllCL3dMckFkMEIvd0ZFCisgICAgICAgIEFWVUJYUUdiQkFBQ1FnRkJBWE1DOXdIckF2OEJ6QUZDQXY4QjdnR0lBZjhCN0FIU0FZWUIvd0wzQWZFQi93TDNBZkVCL3dMV0FjVUIvd0wzCisgICAgICAgIEFmRUIvd0wzQWZFQi93TFJBY0FCL3dMM0FmRUIvd0wzQWZFQi93TE5BYndCL3dMM0Flc0Ivd0pDQVVFQmN3SkhBVDhCY3dMM0Flc0Mvd0hNCisgICAgICAgIEFVTUMvd0h1QVlnQi93SHNBZElCaGdIL0F2Y0I4UUgvQXZjQjhRSC9BdFlCeFFIL0F2Y0I4UUgvQXZjQjhRSC9BdEVCd0FIL0F2Y0I4UUgvCisgICAgICAgIEF2Y0I4UUgvQXMwQnZBSC9BdmNCNndIL0FrY0JQd0Z6QWtJQlFRRnpBdmNCNndML0Fjd0JRZ0wvQWU0QmlBSC9BZXdCMGdHR0FmOEM5d0h4CisgICAgICAgIEFmOEM5d0h4QWY4QnVBRkhBU1VCL3dIekFjc0J1UUgvQWZNQnl3RzVBZjhCdUFGSEFTVUIvd0wzQWZFQi93TDNBZkVCL3dMTkFid0Ivd0wzCisgICAgICAgIEFlc0Ivd0pDQVVFQmN3Z0FBVVFCVXdGYkFwY0IzZ0gyQWY4QmtBSFlBZklCL3dHUUFkZ0I4Z0gvQVpjQjNnSDJBZjhCS3dHSkFiY0Ivd0dBCisgICAgICAgIEFiMEIzQUgvQVlBQnZRSGNBZjhCandIVEFmVUIvd0dQQWRNQjlRSC9BWlVCMlFINEFmOEM5UUh1QWY4QlJBRlRBVnNCbHdRQUFrSUJRUUZ5CisgICAgICAgIEF2Z0I3Z0wvQWN3QlFnSC9BZjRCeXdGQkFmOEI3QUhTQVlZQi93TGFBY2tCL3dMWUFjY0Ivd0xkQWM0Qi93TFVBY01CL3dMVEFjSUIvd0xaCisgICAgICAgIEFjb0Ivd0xQQWI0Qi93TE9BYjBCL3dMTkFid0Ivd0w0QWU0Qi93SkNBVUVCY2dKSUFVQUJjZ0w0QWU0Qi93SHNBWVlCWXdIL0FlSUJld0ZaCisgICAgICAgIEFmOEIxQUZ1QVV3Qi93SEVBV0FCUGdIL0FiWUJVZ0V3QWY4QnJRRkhBU1VCL3dHckFVTUJJUUgvQWJFQlJBRWlBZjhCdlFGS0FTZ0Ivd0hNCisgICAgICAgIEFWSUJNQUgvQWRzQldnRTRBZjhCNkFGaUFVQUIvd0w0QWU0Qi93SklBVUFCY2dKQ0FVRUJjZ0w0QWU0Qy93SE1BVUlCL3dIK0Fjc0JRUUgvCisgICAgICAgIEFld0IwZ0dHQWY4QzJnSEpBZjhDMkFISEFmOEJyUUZDQVNBQi93SGVBYllCbmdIL0FkNEJ0UUdkQWY4QnJRRkNBU0FCL3dMUEFiNEIvd0xPCisgICAgICAgIEFiMEIvd0xOQWJ3Qi93TDRBZTRCL3dKQ0FVRUJjZ2dBQVVRQlV3RmFBWlFCbXdIaEFmY0Ivd0dVQWRzQjlBSC9BWlFCMndIMEFmOEJtd0hoCisgICAgICAgIEFmY0Ivd0V1QVkwQnZBSC9BWUVCdmdIZEFmOEJnUUcrQWQwQi93R1FBZFFCOWdIL0FaQUIxQUgyQWY4Qmx3SGJBZmtCL3dMK0FmMEIvd0ZFCisgICAgICAgIEFWTUJXZ0dVQkFBQ1FRRkFBWEFDK1FIeEF2OEJ6QUZDQXY4QjdnR0lBZjhCN0FIU0FZWUIvd0w1QWZVQi93TDVBZlVCL3dMV0FjVUIvd0w1CisgICAgICAgIEFmVUIvd0w1QWZVQi93TFJBY0FCL3dMNUFmVUIvd0w1QWZVQi93TE5BYndCL3dMNUFmRUIvd0pCQVVBQmNBSkhBVUFCY0FMNUFmRUIvd0hzCisgICAgICAgIEFZWUJZd0gvQWZnQnhRRjVBZjhCN1FHMUFYZ0Ivd0gxQWN3QnZBSC9BZlVCekFHOEFmOEI0QUczQVo4Qi93SDFBY3dCdkFIL0FmVUJ6QUc4CisgICAgICAgIEFmOEIzUUcwQVp3Qi93SDFBY3dCdkFIL0FmVUJ6QUc4QWY4QjZBRmlBVUFCL3dMNUFmRUIvd0pIQVVBQmNBSkJBVUFCY0FMNUFmRUMvd0hNCisgICAgICAgIEFVSUMvd0h1QVlnQi93SHNBZElCaGdIL0F2a0I5UUgvQXZrQjlRSC9BYXNCUkFFaUFmOEI5UUhNQWJ3Qi93SDFBY3dCdkFIL0Fhc0JSQUVpCisgICAgICAgIEFmOEMrUUgxQWY4QytRSDFBZjhDelFHOEFmOEMrUUh4QWY4Q1FRRkFBWEFJQUFGRUFWRUJWd0dRQVo0QjVRSDVBZjhCbUFIZkFmWUIvd0dZCisgICAgICAgIEFkOEI5Z0gvQVo0QjVRSDVBZjhCTUFHUUFjQUIvd0dEQWNBQjN3SC9BWU1Cd0FIZkFmOEJrZ0hXQWZnQi93R1NBZFlCK0FIL0Faa0IzUUg2CisgICAgICAgIEFmOEJSQUZSQVZjQmtBTWpBVE1FQUFKQkFVQUJiZ0w3QWZRQy93SE1BVUlCL3dIK0Fjc0JRUUgvQWV3QjBnR0dBZjhDMmdISkFmOEMyQUhICisgICAgICAgIEFmOEMzZ0hRQWY4QzFBSERBZjhDMHdIQ0FmOEMyZ0hNQWY4Q3p3RytBZjhDemdHOUFmOEN6UUc4QWY4Qyt3SDBBZjhDUVFGQUFXNENSd0ZBCisgICAgICAgIEFXNEMrd0gwQWY4QjdBR0dBV01CL3dIaUFYc0JXUUgvQWRRQmJnRk1BZjhCeEFGZ0FUNEIvd0cyQVZJQk1BSC9BYTBCUndFbEFmOEJxd0ZECisgICAgICAgIEFTRUIvd0d4QVVRQklnSC9BYjBCU2dFb0FmOEJ6QUZTQVRBQi93SGJBVm9CT0FIL0FlZ0JZZ0ZBQWY4Qyt3SDBBZjhDUndGQUFXNENRUUZBCisgICAgICAgIEFXNEMrd0gwQXY4QnpBRkNBZjhCL2dITEFVRUIvd0hzQWRJQmhnSC9BdG9CeVFIL0F0Z0J4d0gvQWJJQlRBRXFBZjhCM2dHMkFaNEIvd0hlCisgICAgICAgIEFiVUJuUUgvQWJJQlRBRXFBZjhDendHK0FmOEN6Z0c5QWY4Q3pRRzhBZjhDK3dIMEFmOENRUUZBQVc0SUFBRkRBVThCVlFHTkFhTUI2QUg3CisgICAgICAgIEFmOEJuUUhqQWZrQi93R2RBZU1CK1FIL0FhTUI2QUg3QWY4Qk13R1VBY1VCL3dHRkFjSUI0UUgvQVlVQndnSGhBZjhCbEFIWUFmb0Ivd0dVCisgICAgICAgIEFkZ0IrZ0gvQVpzQjN3SDhBZjhCUXdGUEFWVUJqUWdBQWtBQlB3RnRBdndCOXdML0Fjd0JRZ0wvQWU0QmlBSC9BZXdCMGdHR0FmOEMvQUg2CisgICAgICAgIEFmOEMvQUg2QWY4QzFnSEZBZjhDL0FINkFmOEMvQUg2QWY4QzBRSEFBZjhDL0FINkFmOEMvQUg2QWY4Q3pRRzhBZjhDL0FIM0FmOENRQUUvCisgICAgICAgIEFXMENSd0ZBQVcwQy9BSDNBdjhCekFGREF2OEI3Z0dJQWY4QjdBSFNBWVlCL3dMOEFmb0Ivd0w4QWZvQi93TFdBY1VCL3dMOEFmb0Ivd0w4CisgICAgICAgIEFmb0Ivd0xSQWNBQi93TDhBZm9CL3dMOEFmb0Ivd0xOQWJ3Qi93TDhBZmNCL3dKSEFVQUJiUUpBQVQ4QmJRTDhBZmNDL3dITUFVSUMvd0h1CisgICAgICAgIEFZZ0Ivd0hzQWRJQmhnSC9BdndCK2dIL0F2d0IrZ0gvQWNBQldnRTRBZjhCOWdIT0FiOEIvd0gyQWM0QnZ3SC9BY0FCV2dFNEFmOEMvQUg2CisgICAgICAgIEFmOEMvQUg2QWY4Q3pRRzhBZjhDL0FIM0FmOENRQUUvQVcwSUFBRkRBVThCVkFHS0FhWUI2d0g4QWY4Qm9RSG1BZnNCL3dHaEFlWUIrd0gvCisgICAgICAgIEFhWUI2d0g4QWY4Qk9nR2RBYzhCL3dHSEFjUUI0Z0gvQVljQnhBSGlBZjhCbGdIYUFmd0Ivd0dXQWRvQi9BSC9BWjRCNGdIOUFmOEJRd0ZQCisgICAgICAgIEFWUUJpZ2dBQWo4QlBnRnJBdjBCK1FML0Fjd0JRZ0gvQWY0Qnl3RkJBZjhCOVFIT0FXSUIvd0hyQWRJQmhRSC9BZWtCMEFHREFmOEI1d0hPCisgICAgICAgIEFZRUIvd0hsQWN3QmdBSC9BZVFCeXdGOEFmOEI0Z0hKQVhvQi93SGdBY2NCZUFIL0FkOEJ4Z0YzQWY4QjNnSEZBWFlCL3dMOUFma0Ivd0kvCisgICAgICAgIEFUNEJhd0pIQVVBQmF3TDlBZmtDL3dITUFVTUIvd0grQWNzQlFnSC9BZlVCemdGakFmOEI2d0hTQVlVQi93SHBBZEFCZ3dIL0FlY0J6Z0dCCisgICAgICAgIEFmOEI1UUhNQVlBQi93SGtBY3NCZlFIL0FlSUJ5UUY3QWY4QjRBSEhBWGtCL3dIZkFjWUJlQUgvQWQ0QnhRRjNBZjhDL1FINUFmOENSd0ZBCisgICAgICAgIEFXc0NQd0UrQVdzQy9RSDVBdjhCekFGQ0FmOEIvZ0hMQVVFQi93SDFBYzRCWWdIL0Flc0IwZ0dGQWY4QjZRSFFBWU1CL3dIUkFXb0JTQUgvCisgICAgICAgIEFla0JzUUYwQWY4QjZBR3dBWE1CL3dIUkFXb0JTQUgvQWVBQnh3RjRBZjhCM3dIR0FYY0Ivd0hlQWNVQmRnSC9BdjBCK1FIL0FqOEJQZ0ZyCisgICAgICAgIENBQUJRZ0ZOQVZJQmh3R3BBZTRCL1FIL0FhUUI2UUg4QWY4QnBBSHBBZndCL3dHcUFlOEIvUUgvQVVBQm9RSFJBZjhCa0FIUkFmRUIvd0dXCisgICAgICAgIEFkb0Ird0gvQVpjQjJ3SDlBZjhCbHdIYkFmMEIvd0dmQWVNQi9nSC9BVUlCVFFGU0FZY0lBQUkvQVQ0QmFnTCtBZndDL3dITUFVSUMvd0h1CisgICAgICAgIEFZZ0Ivd0g5QWNvQlFBSC9BZndCNndHRkFmOEIrd0hxQVlRQi93SDRBY1VCT3dIL0FmWUI1UUY5QWY4QjlBSGpBWHNCL3dIekFjQUJOZ0gvCisgICAgICAgIEFmRUI0QUY0QWY4Qjd3SGVBWFlCL3dIdkFid0JNZ0gvQXY0Qi9BSC9BajhCUGdGcUFrY0JRQUZxQXY0Qi9BTC9BY3dCUXdML0FlNEJpQUgvCisgICAgICAgIEFmMEJ5Z0ZCQWY4Qi9BSHJBWVVCL3dIN0Flb0JoQUgvQWZnQnhRRThBZjhCOWdIbEFYNEIvd0gwQWVNQmZBSC9BZk1Cd0FFM0FmOEI4UUhnCisgICAgICAgIEFYa0Ivd0h2QWQ0QmR3SC9BZThCdkFFekFmOEMvZ0g4QWY4Q1J3RkFBV29DUHdFK0FXb0MvZ0g4QXY4QnpBRkNBdjhCN2dHSUFmOEIvUUhLCisgICAgICAgIEFVQUIvd0g4QWVzQmhRSC9BZnNCNmdHRUFmOEI0UUY1QVZjQi93SHpBY0FCY3dIL0FmSUJ2d0Z5QWY4QjRRRjVBVmNCL3dIeEFlQUJlQUgvCisgICAgICAgIEFlOEIzZ0YyQWY4Qjd3RzhBVElCL3dMK0Fmd0Ivd0kvQVQ0QmFnZ0FBVU1CVEFGU0FZVUJyUUh4QXY4QnF3SHZBZjRCL3dHVkFlSUIrQUgvCisgICAgICAgIEFXd0J5UUh0QWY4QlJnR3BBZGtCL3dHWUFkd0IvZ0gvQVpnQjNBSCtBZjhCbUFIY0FmNEIvd0dZQWR3Qi9nSC9BYUVCNVFML0FVTUJUQUZTCisgICAgICAgIEFZVUlBQUkrQVQwQmFBTC9BZjRDL3dITUFVSUIvd0grQWNzQlFRSC9BZjBCeWdGQUFmOEIvQUhKQVQ4Qi93SDZBY2NCUFFIL0FmZ0J4UUU3CisgICAgICAgIEFmOEI5Z0hEQVRvQi93SDFBY0lCT0FIL0FmTUJ3QUUyQWY4QjhRRytBVFFCL3dId0FiMEJNd0gvQWU4QnZBRXlBLzhCL2dIL0FqNEJQUUZvCisgICAgICAgIEFrY0JRQUZvQXY4Qi9nTC9BY3dCUXdIL0FmNEJ5d0ZDQWY4Qi9RSEtBVUVCL3dIOEFja0JRQUgvQWZvQnh3RStBZjhCK0FIRkFUd0Ivd0gyCisgICAgICAgIEFjTUJPd0gvQWZVQndnRTVBZjhCOHdIQUFUY0Ivd0h4QWI0Qk5RSC9BZkFCdlFFMEFmOEI3d0c4QVRNRC93SCtBZjhDUndGQUFXZ0NQZ0U5CisgICAgICAgIEFXZ0Mvd0grQXY4QnpBRkNBZjhCL2dITEFVRUIvd0g5QWNvQlFBSC9BZndCeVFFL0FmOEIrZ0hIQVQwQi93SHNBWVlCWWdIL0Fld0JoZ0ZpCisgICAgICAgIEFmOEI3QUdHQVdJQi93SHNBWVlCWWdIL0FmRUJ2Z0UwQWY4QjhBRzlBVE1CL3dIdkFid0JNZ1AvQWY0Qi93SStBVDBCYUFnQUFVTUJUQUZRCisgICAgICAgIEFZTUJpQUhjQWZRQi93RmVBY0FCNlFIL0FWMEJ2d0hxQWY4QmdBSFRBZlFCL3dHY0FlTUIvUUgvQWFJQjVnTC9BYUlCNWdML0FhSUI1Z0wvCisgICAgICAgIEFhSUI1Z0wvQWFZQjZnTC9BVU1CVEFGUUFZTUlBQUkrQVQwQlp6ai9BajRCUFFGbkFrY0JRQUZuT1A4Q1J3RkFBV2NDUGdFOUFXYzQvd0krCisgICAgICAgIEFUMEJad2dBQVRrQk93RTlBV0VCUWdGTEFVOEJnUUZDQVVzQlR3R0JBVUlCU3dGUEFZRUJRZ0ZMQVU4QmdRRkNBVXNCVHdHQkFVSUJTd0ZQCisgICAgICAgIEFZRUJRZ0ZMQVU4QmdRRkNBVXNCVHdHQkFVSUJTd0ZQQVlFQlFnRkxBVThCZ1FFNUFUc0JQUUZoQ0FBRE1RRk5BajRCUFFGbUFqNEJQUUZtCisgICAgICAgIEFqNEJQUUZtQWo0QlBRRm1BajRCUFFGbUFqNEJQUUZtQWo0QlBRRm1BajRCUFFGbUFqNEJQUUZtQWo0QlBRRm1BajRCUFFGbUFqNEJQUUZtCisgICAgICAgIEFqNEJQUUZtQWo0QlBRRm1BekVCVFFJM0FUUUJUUUpIQVVBQlpnSkhBVUFCWmdKSEFVQUJaZ0pIQVVBQlpnSkhBVUFCWmdKSEFVQUJaZ0pICisgICAgICAgIEFVQUJaZ0pIQVVBQlpnSkhBVUFCWmdKSEFVQUJaZ0pIQVVBQlpnSkhBVUFCWmdKSEFVQUJaZ0pIQVVBQlpnSTNBVFFCVFFNeEFVMENQZ0U5CisgICAgICAgIEFXWUNQZ0U5QVdZQ1BnRTlBV1lDUGdFOUFXWUNQZ0U5QVdZQ1BnRTlBV1lDUGdFOUFXWUNQZ0U5QVdZQ1BnRTlBV1lDUGdFOUFXWUNQZ0U5CisgICAgICAgIEFXWUNQZ0U5QVdZQ1BnRTlBV1lDUGdFOUFXWURNUUZOQVVJQlRRRStCd0FCUGdNQUFTZ0RBQUZBQXdBQklBTUFBUUVCQUFFQkJnQUJBUllBCisgICAgICAgIEEvOFJBQUdBQWY4QmdBRUJCUUFCZndFQUFRRUZBQUUvQVFBQkFRVUFBUjhCQUFFQkJBQUJnQUVQQVlBQkFRUUFBY0FCQndIQUFRTUVBQUhnCisgICAgICAgIEFRTUI0QUVEQkFBQjhBRUJBZkFCQVFRQUFmZ0JBQUg0QlFBQi9BRUFBZndGQUFIK0FRZ0IvZ0VJQkFBQi93RUFBZjhGQUFIL0FZQUIvd0dBCisgICAgICAgIEJBQUIvd0hBQWY4QndBUUFBZmdCZndZQUFlQUJQeFlBQWNBQkFRWUFBY0FCQVFZQUFjQUJBUVlBQWNBQkFRWUFBY0FCQVFZQUFjQUJBUVlBCisgICAgICAgIEFjQUJBd1lBQWNBQkF3WUFBY0FCQXdZQUFjQUJBd1lBQWNBQkF3WUFBY0FCQXdZQUN3PT0KKzwvdmFsdWU+CisgIDwvZGF0YT4KKyAgPG1ldGFkYXRhIG5hbWU9InRvb2xTdHJpcE1haW4uVHJheUxvY2F0aW9uIiB0eXBlPSJTeXN0ZW0uRHJhd2luZy5Qb2ludCwgU3lzdGVtLkRyYXdpbmcsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhIj4KKyAgICA8dmFsdWU+MjExLCAxNzwvdmFsdWU+CisgIDwvbWV0YWRhdGE+CisgIDxhc3NlbWJseSBhbGlhcz0iU3lzdGVtLkRyYXdpbmciIG5hbWU9IlN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYSIgLz4KKyAgPGRhdGEgbmFtZT0idG9vbGJ1dHRvbk9wZW5NaWIuSW1hZ2UiIHR5cGU9IlN5c3RlbS5EcmF3aW5nLkJpdG1hcCwgU3lzdGVtLkRyYXdpbmciIG1pbWV0eXBlPSJhcHBsaWNhdGlvbi94LW1pY3Jvc29mdC5uZXQub2JqZWN0LmJ5dGVhcnJheS5iYXNlNjQiPgorICAgIDx2YWx1ZT4KKyAgICAgICAgaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djgKKyAgICAgICAgWVFVQUFBQUpjRWhaY3dBQURzSUFBQTdDQVJVb1NvQUFBQUs2U1VSQlZEaFBqWk5iU05OUkhNZlBVOUR0d1I3MW9aZjVJZ2tGMFlNRUVZYjIKKyAgICAgICAgRUdnRzVZTmdHUW1HU1VvWWltYmVsNUtLbWxNMHUzakpTcHYzYWQ3V25Ha3piMnlPNGJCeUYzV3V1VG5ubkx2NDdady85WWNsUVFjKy9MLy8KKyAgICAgICAgUCtkOC9yL2YrWjgvSWIvSGpKRGNtaGFTM1ArQnpmMnpqcjhxaWtpK1F5dUU2ZE5OYkl6Rnc2RjhESisrQVZoOTdjOUdLOWpjQTRMSkFsS0kKKyAgICAgICAgclE3c1c5L0RwYXVHWlNvRmc2SndmSlNVK1RFMFhJWE9ncUNhQXdKNUFTbjJiYjZGMTlUTTRiTyt3NHo0SGd3V0M5WWNEdWdwSzNZN3VtUXkKKyAgICAgICAgRk9aRURNUmtaUVg3U1dTNXBNUnJib1ZuOVJVSHkxL2FFcURTYWpHbjBXRFpiSVo2YlEwdC9mMWdJem9qSThsUE12YUlQUFdzTjJGUC81eUQKKyAgICAgICAgWmRtTFdMd1VpL0ZoWkFTU3FTbE9VdFhjekJNY0dabkZWekdVVFNyMmpJMXdmcS9sWUhtczRUcWtjM01ZbloyRjBtREFxczNHVjhMYWlVaE4KKyAgICAgICAgVGVZRkE1bWtlbmVsSGc1dE5RZkx3M1V4YU9ycFFaZFVpdTd4Y2E1L01jMGRvNlBRYjI4alBEazVoUmYwUGlRaTV6Y1I3Sm9LRHBZSGFxSWcKKyAgICAgICAgVnlvaFcxamcrbGNaalZ3bEN6b2QxcDFPWEVoTXZNOExPdE5KdldPcEVqWlZLUWZML1pWWDBOclhoMTY1SFAyVGs1aFFxekd1VW1GUW9jQ20KKyAgICAgICAgeTRYekNRbHB2S0E5alRUYTFXV3d6QmR6c054ZGZobWZGeGN4UVJjdDBRM1VtRXpZMnQyRmRXY0hkcmNiNStMaUh2Q0MxaFRTYkZPV3dEeVQKKyAgICAgICAgeDhHeXVEUUNiUklKM3RCUHA2Q2ZVMHBiY2RBM000bURDczdFeHFZendXSEtpYm83cE5zNlQ0K3lJb2ZEU3F0b2YzSUpCdHF6VHErSHgrdUYKKyAgICAgICAgeStPQmt5NWtraDJhVDBWRlpUTkJBRVdRRkVGcWh5dk8ycGNsU2U2ZjAzblluQzFFVzlGRkdPbkdHU2krL1gxNEtXNmZEM3RVdGtkellGaVkKKyAgICAgICAgME84MDFpV1NhTkZ0VXRlV0dTVDkybkwxUi9xMVE3b2pBa0hWMFpDUWt1T2hvY1YvYzB3Z3VIdmduMkFQeXVQSjZkSTRrcFYvZ3p5anR5Y3AKKyAgICAgICAgZ2Y4ZzRCZWdzMUI2S2JqM2NRQUFBQUJKUlU1RXJrSmdnZz09Cis8L3ZhbHVlPgorICA8L2RhdGE+CisgIDxtZXRhZGF0YSBuYW1lPSJkaWFsb2dPcGVuTWliLlRyYXlMb2NhdGlvbiIgdHlwZT0iU3lzdGVtLkRyYXdpbmcuUG9pbnQsIFN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYSI+CisgICAgPHZhbHVlPjMzNywgMTc8L3ZhbHVlPgorICA8L21ldGFkYXRhPgorPC9yb290PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL01pYlZpZXdlci5jc3Byb2ogYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9NaWJWaWV3ZXIuY3Nwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1N2MwNTgKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9NaWJWaWV3ZXIuY3Nwcm9qCkBAIC0wLDAgKzEsOTQgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPENvbmZpZ3VyYXRpb24gQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbiknID09ICcnICI+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgPFBsYXRmb3JtIENvbmRpdGlvbj0iICckKFBsYXRmb3JtKScgPT0gJycgIj5BbnlDUFU8L1BsYXRmb3JtPgorICAgIDxQcm9kdWN0VmVyc2lvbj44LjAuMzA3MDM8L1Byb2R1Y3RWZXJzaW9uPgorICAgIDxTY2hlbWFWZXJzaW9uPjIuMDwvU2NoZW1hVmVyc2lvbj4KKyAgICA8UHJvamVjdEd1aWQ+ezg2Q0MwQjY1LTc5ODUtNDAxNy1BMjUyLTBBN0ExOERDQUVGM308L1Byb2plY3RHdWlkPgorICAgIDxPdXRwdXRUeXBlPldpbkV4ZTwvT3V0cHV0VHlwZT4KKyAgICA8QXBwRGVzaWduZXJGb2xkZXI+UHJvcGVydGllczwvQXBwRGVzaWduZXJGb2xkZXI+CisgICAgPFJvb3ROYW1lc3BhY2U+THdpcE1pYlZpZXdlcjwvUm9vdE5hbWVzcGFjZT4KKyAgICA8QXNzZW1ibHlOYW1lPk1pYlZpZXdlcjwvQXNzZW1ibHlOYW1lPgorICAgIDxUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPnY0LjA8L1RhcmdldEZyYW1ld29ya1ZlcnNpb24+CisgICAgPEZpbGVBbGlnbm1lbnQ+NTEyPC9GaWxlQWxpZ25tZW50PgorICAgIDxUYXJnZXRGcmFtZXdvcmtQcm9maWxlIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ0RlYnVnfEFueUNQVSciPgorICAgIDxEZWJ1Z1N5bWJvbHM+dHJ1ZTwvRGVidWdTeW1ib2xzPgorICAgIDxPdXRwdXRQYXRoPmJpblxEZWJ1Z1w8L091dHB1dFBhdGg+CisgICAgPERlZmluZUNvbnN0YW50cz5ERUJVRztUUkFDRTwvRGVmaW5lQ29uc3RhbnRzPgorICAgIDxEZWJ1Z1R5cGU+ZnVsbDwvRGVidWdUeXBlPgorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgorICAgIDxDb2RlQW5hbHlzaXNJZ25vcmVCdWlsdEluUnVsZVNldHM+dHJ1ZTwvQ29kZUFuYWx5c2lzSWdub3JlQnVpbHRJblJ1bGVTZXRzPgorICAgIDxDb2RlQW5hbHlzaXNJZ25vcmVCdWlsdEluUnVsZXM+dHJ1ZTwvQ29kZUFuYWx5c2lzSWdub3JlQnVpbHRJblJ1bGVzPgorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgorICAgIDxPcHRpbWl6ZT5mYWxzZTwvT3B0aW1pemU+CisgICAgPFVzZVZTSG9zdGluZ1Byb2Nlc3M+ZmFsc2U8L1VzZVZTSG9zdGluZ1Byb2Nlc3M+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ1JlbGVhc2V8QW55Q1BVJyI+CisgICAgPE91dHB1dFBhdGg+YmluXFJlbGVhc2VcPC9PdXRwdXRQYXRoPgorICAgIDxEZWZpbmVDb25zdGFudHM+VFJBQ0U8L0RlZmluZUNvbnN0YW50cz4KKyAgICA8T3B0aW1pemU+dHJ1ZTwvT3B0aW1pemU+CisgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CisgICAgPFBsYXRmb3JtVGFyZ2V0PkFueUNQVTwvUGxhdGZvcm1UYXJnZXQ+CisgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CisgICAgPENvZGVBbmFseXNpc0lnbm9yZUJ1aWx0SW5SdWxlU2V0cz50cnVlPC9Db2RlQW5hbHlzaXNJZ25vcmVCdWlsdEluUnVsZVNldHM+CisgICAgPENvZGVBbmFseXNpc0lnbm9yZUJ1aWx0SW5SdWxlcz50cnVlPC9Db2RlQW5hbHlzaXNJZ25vcmVCdWlsdEluUnVsZXM+CisgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+CisgICAgPFVzZVZTSG9zdGluZ1Byb2Nlc3M+ZmFsc2U8L1VzZVZTSG9zdGluZ1Byb2Nlc3M+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbSIgLz4KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbS5EcmF3aW5nIiAvPgorICAgIDxSZWZlcmVuY2UgSW5jbHVkZT0iU3lzdGVtLldpbmRvd3MuRm9ybXMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDb21waWxlIEluY2x1ZGU9IkZvcm1NYWluLmNzIj4KKyAgICAgIDxTdWJUeXBlPkZvcm08L1N1YlR5cGU+CisgICAgPC9Db21waWxlPgorICAgIDxDb21waWxlIEluY2x1ZGU9IkZvcm1NYWluLkRlc2lnbmVyLmNzIj4KKyAgICAgIDxEZXBlbmRlbnRVcG9uPkZvcm1NYWluLmNzPC9EZXBlbmRlbnRVcG9uPgorICAgIDwvQ29tcGlsZT4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9ncmFtLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9IlByb3BlcnRpZXNcQXNzZW1ibHlJbmZvLmNzIiAvPgorICAgIDxFbWJlZGRlZFJlc291cmNlIEluY2x1ZGU9IkZvcm1NYWluLnJlc3giPgorICAgICAgPERlcGVuZGVudFVwb24+Rm9ybU1haW4uY3M8L0RlcGVuZGVudFVwb24+CisgICAgPC9FbWJlZGRlZFJlc291cmNlPgorICAgIDxFbWJlZGRlZFJlc291cmNlIEluY2x1ZGU9IlByb3BlcnRpZXNcUmVzb3VyY2VzLnJlc3giPgorICAgICAgPEdlbmVyYXRvcj5SZXNYRmlsZUNvZGVHZW5lcmF0b3I8L0dlbmVyYXRvcj4KKyAgICAgIDxMYXN0R2VuT3V0cHV0PlJlc291cmNlcy5EZXNpZ25lci5jczwvTGFzdEdlbk91dHB1dD4KKyAgICAgIDxTdWJUeXBlPkRlc2lnbmVyPC9TdWJUeXBlPgorICAgIDwvRW1iZWRkZWRSZXNvdXJjZT4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9wZXJ0aWVzXFJlc291cmNlcy5EZXNpZ25lci5jcyI+CisgICAgICA8QXV0b0dlbj5UcnVlPC9BdXRvR2VuPgorICAgICAgPERlcGVuZGVudFVwb24+UmVzb3VyY2VzLnJlc3g8L0RlcGVuZGVudFVwb24+CisgICAgICA8RGVzaWduVGltZT5UcnVlPC9EZXNpZ25UaW1lPgorICAgIDwvQ29tcGlsZT4KKyAgICA8Tm9uZSBJbmNsdWRlPSJhcHAuY29uZmlnIiAvPgorICAgIDxOb25lIEluY2x1ZGU9IlByb3BlcnRpZXNcU2V0dGluZ3Muc2V0dGluZ3MiPgorICAgICAgPEdlbmVyYXRvcj5TZXR0aW5nc1NpbmdsZUZpbGVHZW5lcmF0b3I8L0dlbmVyYXRvcj4KKyAgICAgIDxMYXN0R2VuT3V0cHV0PlNldHRpbmdzLkRlc2lnbmVyLmNzPC9MYXN0R2VuT3V0cHV0PgorICAgIDwvTm9uZT4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9wZXJ0aWVzXFNldHRpbmdzLkRlc2lnbmVyLmNzIj4KKyAgICAgIDxBdXRvR2VuPlRydWU8L0F1dG9HZW4+CisgICAgICA8RGVwZW5kZW50VXBvbj5TZXR0aW5ncy5zZXR0aW5nczwvRGVwZW5kZW50VXBvbj4KKyAgICAgIDxEZXNpZ25UaW1lU2hhcmVkSW5wdXQ+VHJ1ZTwvRGVzaWduVGltZVNoYXJlZElucHV0PgorICAgIDwvQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0iLi5cU2hhcnBTbm1wTGliXFNoYXJwU25tcExpYi5NaWIuY3Nwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntDQkUyMDQxMS01REI3LTQ4N0QtODI1RC03Njk0MjY3QkI2RjV9PC9Qcm9qZWN0PgorICAgICAgPE5hbWU+U2hhcnBTbm1wTGliLk1pYjwvTmFtZT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoTVNCdWlsZFRvb2xzUGF0aClcTWljcm9zb2Z0LkNTaGFycC50YXJnZXRzIiAvPgorICA8UHJvcGVydHlHcm91cCAvPgorICA8IS0tIFRvIG1vZGlmeSB5b3VyIGJ1aWxkIHByb2Nlc3MsIGFkZCB5b3VyIHRhc2sgaW5zaWRlIG9uZSBvZiB0aGUgdGFyZ2V0cyBiZWxvdyBhbmQgdW5jb21tZW50IGl0LiAKKyAgICAgICBPdGhlciBzaW1pbGFyIGV4dGVuc2lvbiBwb2ludHMgZXhpc3QsIHNlZSBNaWNyb3NvZnQuQ29tbW9uLnRhcmdldHMuCisgIDxUYXJnZXQgTmFtZT0iQmVmb3JlQnVpbGQiPgorICA8L1RhcmdldD4KKyAgPFRhcmdldCBOYW1lPSJBZnRlckJ1aWxkIj4KKyAgPC9UYXJnZXQ+CisgIC0tPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL1Byb2dyYW0uY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9Qcm9ncmFtLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkM2VmMzEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9Qcm9ncmFtLmNzCkBAIC0wLDAgKzEsNTEgQEAKK++7vy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IE1hcnRpbiBIZW50c2NoZWwgPGluZm9AY2wtc29mdC5kZT4KKyAqCisgKi8KKwordXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLldpbmRvd3MuRm9ybXM7CisKK25hbWVzcGFjZSBMd2lwTWliVmlld2VyCit7CisJc3RhdGljIGNsYXNzIFByb2dyYW0KKwl7CisJCS8vLyA8c3VtbWFyeT4KKwkJLy8vIERlciBIYXVwdGVpbnN0aWVnc3B1bmt0IGbDvHIgZGllIEFud2VuZHVuZy4KKwkJLy8vIDwvc3VtbWFyeT4KKwkJW1NUQVRocmVhZF0KKwkJc3RhdGljIHZvaWQgTWFpbigpCisJCXsKKwkJCUFwcGxpY2F0aW9uLkVuYWJsZVZpc3VhbFN0eWxlcygpOworCQkJQXBwbGljYXRpb24uU2V0Q29tcGF0aWJsZVRleHRSZW5kZXJpbmdEZWZhdWx0KGZhbHNlKTsKKwkJCUFwcGxpY2F0aW9uLlJ1bihuZXcgRm9ybU1haW4oKSk7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2ZTcyODYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9Qcm9wZXJ0aWVzL0Fzc2VtYmx5SW5mby5jcwpAQCAtMCwwICsxLDM2IEBACivvu791c2luZyBTeXN0ZW0uUmVmbGVjdGlvbjsKK3VzaW5nIFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXM7Cit1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7CisKKy8vIEFsbGdlbWVpbmUgSW5mb3JtYXRpb25lbiDDvGJlciBlaW5lIEFzc2VtYmx5IHdlcmRlbiDDvGJlciBkaWUgZm9sZ2VuZGVuIAorLy8gQXR0cmlidXRlIGdlc3RldWVydC4gw4RuZGVybiBTaWUgZGllc2UgQXR0cmlidXR3ZXJ0ZSwgdW0gZGllIEluZm9ybWF0aW9uZW4genUgw6RuZGVybiwKKy8vIGRpZSBtaXQgZWluZXIgQXNzZW1ibHkgdmVya27DvHBmdCBzaW5kLgorW2Fzc2VtYmx5OiBBc3NlbWJseVRpdGxlKCJMd2lwTWliVmlld2VyIildCitbYXNzZW1ibHk6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseUNvbmZpZ3VyYXRpb24oIiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseUNvbXBhbnkoIiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseVByb2R1Y3QoIkx3aXBNaWJWaWV3ZXIiKV0KK1thc3NlbWJseTogQXNzZW1ibHlDb3B5cmlnaHQoIkNvcHlyaWdodCDCqSAgMjAxNSIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseVRyYWRlbWFyaygiIildCitbYXNzZW1ibHk6IEFzc2VtYmx5Q3VsdHVyZSgiIildCisKKy8vIER1cmNoIEZlc3RsZWdlbiB2b24gQ29tVmlzaWJsZSBhdWYgImZhbHNlIiB3ZXJkZW4gZGllIFR5cGVuIGluIGRpZXNlciBBc3NlbWJseSB1bnNpY2h0YmFyIAorLy8gZsO8ciBDT00tS29tcG9uZW50ZW4uIFdlbm4gU2llIGF1ZiBlaW5lbiBUeXAgaW4gZGllc2VyIEFzc2VtYmx5IHZvbiAKKy8vIENPTSB6dWdyZWlmZW4gbcO8c3NlbiwgbGVnZW4gU2llIGRhcyBDb21WaXNpYmxlLUF0dHJpYnV0IGbDvHIgZGllc2VuIFR5cCBhdWYgInRydWUiIGZlc3QuCitbYXNzZW1ibHk6IENvbVZpc2libGUoZmFsc2UpXQorCisvLyBEaWUgZm9sZ2VuZGUgR1VJRCBiZXN0aW1tdCBkaWUgSUQgZGVyIFR5cGJpYmxpb3RoZWssIHdlbm4gZGllc2VzIFByb2pla3QgZsO8ciBDT00gdmVyZsO8Z2JhciBnZW1hY2h0IHdpcmQKK1thc3NlbWJseTogR3VpZCgiN2ZmYmQxYzEtMWM2NC00NWJiLWIyNDMtMjQwMDQ0NmM2NDlkIildCisKKy8vIFZlcnNpb25zaW5mb3JtYXRpb25lbiBmw7xyIGVpbmUgQXNzZW1ibHkgYmVzdGVoZW4gYXVzIGRlbiBmb2xnZW5kZW4gdmllciBXZXJ0ZW46CisvLworLy8gICAgICBIYXVwdHZlcnNpb24KKy8vICAgICAgTmViZW52ZXJzaW9uIAorLy8gICAgICBCdWlsZG51bW1lcgorLy8gICAgICBSZXZpc2lvbgorLy8KKy8vIFNpZSBrw7ZubmVuIGFsbGUgV2VydGUgYW5nZWJlbiBvZGVyIGRpZSBzdGFuZGFyZG3DpMOfaWdlbiBCdWlsZC0gdW5kIFJldmlzaW9uc251bW1lcm4gCisvLyDDvGJlcm5laG1lbiwgaW5kZW0gU2llICIqIiBlaW5nZWJlbjoKKy8vIFthc3NlbWJseTogQXNzZW1ibHlWZXJzaW9uKCIxLjAuKiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseVZlcnNpb24oIjEuMC4wLjAiKV0KK1thc3NlbWJseTogQXNzZW1ibHlGaWxlVmVyc2lvbigiMS4wLjAuMCIpXQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJWaWV3ZXIvUHJvcGVydGllcy9SZXNvdXJjZXMuRGVzaWduZXIuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9Qcm9wZXJ0aWVzL1Jlc291cmNlcy5EZXNpZ25lci5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjE1NzE3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJWaWV3ZXIvUHJvcGVydGllcy9SZXNvdXJjZXMuRGVzaWduZXIuY3MKQEAgLTAsMCArMSw2MyBAQAor77u/Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIDxhdXRvLWdlbmVyYXRlZD4KKy8vICAgICBEaWVzZXIgQ29kZSB3dXJkZSB2b24gZWluZW0gVG9vbCBnZW5lcmllcnQuCisvLyAgICAgTGF1ZnplaXR2ZXJzaW9uOjQuMC4zMDMxOS4yMjUKKy8vCisvLyAgICAgw4RuZGVydW5nZW4gYW4gZGllc2VyIERhdGVpIGvDtm5uZW4gZmFsc2NoZXMgVmVyaGFsdGVuIHZlcnVyc2FjaGVuIHVuZCBnZWhlbiB2ZXJsb3Jlbiwgd2VubgorLy8gICAgIGRlciBDb2RlIGVybmV1dCBnZW5lcmllcnQgd2lyZC4KKy8vIDwvYXV0by1nZW5lcmF0ZWQ+CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCituYW1lc3BhY2UgTHdpcE1pYlZpZXdlci5Qcm9wZXJ0aWVzIHsKKyAgICB1c2luZyBTeXN0ZW07CisgICAgCisgICAgCisgICAgLy8vIDxzdW1tYXJ5PgorICAgIC8vLyAgIEVpbmUgc3RhcmsgdHlwaXNpZXJ0ZSBSZXNzb3VyY2Vua2xhc3NlIHp1bSBTdWNoZW4gdm9uIGxva2FsaXNpZXJ0ZW4gWmVpY2hlbmZvbGdlbiB1c3cuCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICAvLyBEaWVzZSBLbGFzc2Ugd3VyZGUgdm9uIGRlciBTdHJvbmdseVR5cGVkUmVzb3VyY2VCdWlsZGVyIGF1dG9tYXRpc2NoIGdlbmVyaWVydAorICAgIC8vIC1LbGFzc2Ugw7xiZXIgZWluIFRvb2wgd2llIFJlc0dlbiBvZGVyIFZpc3VhbCBTdHVkaW8gYXV0b21hdGlzY2ggZ2VuZXJpZXJ0LgorICAgIC8vIFVtIGVpbmVuIE1lbWJlciBoaW56dXp1ZsO8Z2VuIG9kZXIgenUgZW50ZmVybmVuLCBiZWFyYmVpdGVuIFNpZSBkaWUgLlJlc1gtRGF0ZWkgdW5kIGbDvGhyZW4gZGFubiBSZXNHZW4KKyAgICAvLyBtaXQgZGVyIC9zdHItT3B0aW9uIGVybmV1dCBhdXMsIG9kZXIgU2llIGVyc3RlbGxlbiBJaHIgVlMtUHJvamVrdCBuZXUuCisgICAgW2dsb2JhbDo6U3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZSgiU3lzdGVtLlJlc291cmNlcy5Ub29scy5TdHJvbmdseVR5cGVkUmVzb3VyY2VCdWlsZGVyIiwgIjQuMC4wLjAiKV0KKyAgICBbZ2xvYmFsOjpTeXN0ZW0uRGlhZ25vc3RpY3MuRGVidWdnZXJOb25Vc2VyQ29kZUF0dHJpYnV0ZSgpXQorICAgIFtnbG9iYWw6OlN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMuQ29tcGlsZXJHZW5lcmF0ZWRBdHRyaWJ1dGUoKV0KKyAgICBpbnRlcm5hbCBjbGFzcyBSZXNvdXJjZXMgeworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZ2xvYmFsOjpTeXN0ZW0uUmVzb3VyY2VzLlJlc291cmNlTWFuYWdlciByZXNvdXJjZU1hbjsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgc3RhdGljIGdsb2JhbDo6U3lzdGVtLkdsb2JhbGl6YXRpb24uQ3VsdHVyZUluZm8gcmVzb3VyY2VDdWx0dXJlOworICAgICAgICAKKyAgICAgICAgW2dsb2JhbDo6U3lzdGVtLkRpYWdub3N0aWNzLkNvZGVBbmFseXNpcy5TdXBwcmVzc01lc3NhZ2VBdHRyaWJ1dGUoIk1pY3Jvc29mdC5QZXJmb3JtYW5jZSIsICJDQTE4MTE6QXZvaWRVbmNhbGxlZFByaXZhdGVDb2RlIildCisgICAgICAgIGludGVybmFsIFJlc291cmNlcygpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gICBHaWJ0IGRpZSB6d2lzY2hlbmdlc3BlaWNoZXJ0ZSBSZXNvdXJjZU1hbmFnZXItSW5zdGFueiB6dXLDvGNrLCBkaWUgdm9uIGRpZXNlciBLbGFzc2UgdmVyd2VuZGV0IHdpcmQuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIFtnbG9iYWw6OlN5c3RlbS5Db21wb25lbnRNb2RlbC5FZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUoZ2xvYmFsOjpTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRWRpdG9yQnJvd3NhYmxlU3RhdGUuQWR2YW5jZWQpXQorICAgICAgICBpbnRlcm5hbCBzdGF0aWMgZ2xvYmFsOjpTeXN0ZW0uUmVzb3VyY2VzLlJlc291cmNlTWFuYWdlciBSZXNvdXJjZU1hbmFnZXIgeworICAgICAgICAgICAgZ2V0IHsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0LlJlZmVyZW5jZUVxdWFscyhyZXNvdXJjZU1hbiwgbnVsbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ2xvYmFsOjpTeXN0ZW0uUmVzb3VyY2VzLlJlc291cmNlTWFuYWdlciB0ZW1wID0gbmV3IGdsb2JhbDo6U3lzdGVtLlJlc291cmNlcy5SZXNvdXJjZU1hbmFnZXIoIkx3aXBNaWJWaWV3ZXIuUHJvcGVydGllcy5SZXNvdXJjZXMiLCB0eXBlb2YoUmVzb3VyY2VzKS5Bc3NlbWJseSk7CisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlTWFuID0gdGVtcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlTWFuOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyAgIMOcYmVyc2NocmVpYnQgZGllIEN1cnJlbnRVSUN1bHR1cmUtRWlnZW5zY2hhZnQgZGVzIGFrdHVlbGxlbiBUaHJlYWRzIGbDvHIgYWxsZQorICAgICAgICAvLy8gICBSZXNzb3VyY2VuenVvcmRudW5nZW4sIGRpZSBkaWVzZSBzdGFyayB0eXBpc2llcnRlIFJlc3NvdXJjZW5rbGFzc2UgdmVyd2VuZGVuLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICBbZ2xvYmFsOjpTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlKGdsb2JhbDo6U3lzdGVtLkNvbXBvbmVudE1vZGVsLkVkaXRvckJyb3dzYWJsZVN0YXRlLkFkdmFuY2VkKV0KKyAgICAgICAgaW50ZXJuYWwgc3RhdGljIGdsb2JhbDo6U3lzdGVtLkdsb2JhbGl6YXRpb24uQ3VsdHVyZUluZm8gQ3VsdHVyZSB7CisgICAgICAgICAgICBnZXQgeworICAgICAgICAgICAgICAgIHJldHVybiByZXNvdXJjZUN1bHR1cmU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZXQgeworICAgICAgICAgICAgICAgIHJlc291cmNlQ3VsdHVyZSA9IHZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJWaWV3ZXIvUHJvcGVydGllcy9SZXNvdXJjZXMucmVzeCBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL1Byb3BlcnRpZXMvUmVzb3VyY2VzLnJlc3gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY3ZGJlYgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL1Byb3BlcnRpZXMvUmVzb3VyY2VzLnJlc3gKQEAgLTAsMCArMSwxMTcgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8cm9vdD4KKyAgPCEtLSAKKyAgICBNaWNyb3NvZnQgUmVzWCBTY2hlbWEgCisgICAgCisgICAgVmVyc2lvbiAyLjAKKyAgICAKKyAgICBUaGUgcHJpbWFyeSBnb2FscyBvZiB0aGlzIGZvcm1hdCBpcyB0byBhbGxvdyBhIHNpbXBsZSBYTUwgZm9ybWF0IAorICAgIHRoYXQgaXMgbW9zdGx5IGh1bWFuIHJlYWRhYmxlLiBUaGUgZ2VuZXJhdGlvbiBhbmQgcGFyc2luZyBvZiB0aGUgCisgICAgdmFyaW91cyBkYXRhIHR5cGVzIGFyZSBkb25lIHRocm91Z2ggdGhlIFR5cGVDb252ZXJ0ZXIgY2xhc3NlcyAKKyAgICBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGEgdHlwZXMuCisgICAgCisgICAgRXhhbXBsZToKKyAgICAKKyAgICAuLi4gYWRvLm5ldC9YTUwgaGVhZGVycyAmIHNjaGVtYSAuLi4KKyAgICA8cmVzaGVhZGVyIG5hbWU9InJlc21pbWV0eXBlIj50ZXh0L21pY3Jvc29mdC1yZXN4PC9yZXNoZWFkZXI+CisgICAgPHJlc2hlYWRlciBuYW1lPSJ2ZXJzaW9uIj4yLjA8L3Jlc2hlYWRlcj4KKyAgICA8cmVzaGVhZGVyIG5hbWU9InJlYWRlciI+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VSZWFkZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCAuLi48L3Jlc2hlYWRlcj4KKyAgICA8cmVzaGVhZGVyIG5hbWU9IndyaXRlciI+U3lzdGVtLlJlc291cmNlcy5SZXNYUmVzb3VyY2VXcml0ZXIsIFN5c3RlbS5XaW5kb3dzLkZvcm1zLCAuLi48L3Jlc2hlYWRlcj4KKyAgICA8ZGF0YSBuYW1lPSJOYW1lMSI+PHZhbHVlPnRoaXMgaXMgbXkgbG9uZyBzdHJpbmc8L3ZhbHVlPjxjb21tZW50PnRoaXMgaXMgYSBjb21tZW50PC9jb21tZW50PjwvZGF0YT4KKyAgICA8ZGF0YSBuYW1lPSJDb2xvcjEiIHR5cGU9IlN5c3RlbS5EcmF3aW5nLkNvbG9yLCBTeXN0ZW0uRHJhd2luZyI+Qmx1ZTwvZGF0YT4KKyAgICA8ZGF0YSBuYW1lPSJCaXRtYXAxIiBtaW1ldHlwZT0iYXBwbGljYXRpb24veC1taWNyb3NvZnQubmV0Lm9iamVjdC5iaW5hcnkuYmFzZTY0Ij4KKyAgICAgICAgPHZhbHVlPltiYXNlNjQgbWltZSBlbmNvZGVkIHNlcmlhbGl6ZWQgLk5FVCBGcmFtZXdvcmsgb2JqZWN0XTwvdmFsdWU+CisgICAgPC9kYXRhPgorICAgIDxkYXRhIG5hbWU9Ikljb24xIiB0eXBlPSJTeXN0ZW0uRHJhd2luZy5JY29uLCBTeXN0ZW0uRHJhd2luZyIgbWltZXR5cGU9ImFwcGxpY2F0aW9uL3gtbWljcm9zb2Z0Lm5ldC5vYmplY3QuYnl0ZWFycmF5LmJhc2U2NCI+CisgICAgICAgIDx2YWx1ZT5bYmFzZTY0IG1pbWUgZW5jb2RlZCBzdHJpbmcgcmVwcmVzZW50aW5nIGEgYnl0ZSBhcnJheSBmb3JtIG9mIHRoZSAuTkVUIEZyYW1ld29yayBvYmplY3RdPC92YWx1ZT4KKyAgICAgICAgPGNvbW1lbnQ+VGhpcyBpcyBhIGNvbW1lbnQ8L2NvbW1lbnQ+CisgICAgPC9kYXRhPgorICAgICAgICAgICAgICAgIAorICAgIFRoZXJlIGFyZSBhbnkgbnVtYmVyIG9mICJyZXNoZWFkZXIiIHJvd3MgdGhhdCBjb250YWluIHNpbXBsZSAKKyAgICBuYW1lL3ZhbHVlIHBhaXJzLgorICAgIAorICAgIEVhY2ggZGF0YSByb3cgY29udGFpbnMgYSBuYW1lLCBhbmQgdmFsdWUuIFRoZSByb3cgYWxzbyBjb250YWlucyBhIAorICAgIHR5cGUgb3IgbWltZXR5cGUuIFR5cGUgY29ycmVzcG9uZHMgdG8gYSAuTkVUIGNsYXNzIHRoYXQgc3VwcG9ydCAKKyAgICB0ZXh0L3ZhbHVlIGNvbnZlcnNpb24gdGhyb3VnaCB0aGUgVHlwZUNvbnZlcnRlciBhcmNoaXRlY3R1cmUuIAorICAgIENsYXNzZXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoaXMgYXJlIHNlcmlhbGl6ZWQgYW5kIHN0b3JlZCB3aXRoIHRoZSAKKyAgICBtaW1ldHlwZSBzZXQuCisgICAgCisgICAgVGhlIG1pbWV0eXBlIGlzIHVzZWQgZm9yIHNlcmlhbGl6ZWQgb2JqZWN0cywgYW5kIHRlbGxzIHRoZSAKKyAgICBSZXNYUmVzb3VyY2VSZWFkZXIgaG93IHRvIGRlcGVyc2lzdCB0aGUgb2JqZWN0LiBUaGlzIGlzIGN1cnJlbnRseSBub3QgCisgICAgZXh0ZW5zaWJsZS4gRm9yIGEgZ2l2ZW4gbWltZXR5cGUgdGhlIHZhbHVlIG11c3QgYmUgc2V0IGFjY29yZGluZ2x5OgorICAgIAorICAgIE5vdGUgLSBhcHBsaWNhdGlvbi94LW1pY3Jvc29mdC5uZXQub2JqZWN0LmJpbmFyeS5iYXNlNjQgaXMgdGhlIGZvcm1hdCAKKyAgICB0aGF0IHRoZSBSZXNYUmVzb3VyY2VXcml0ZXIgd2lsbCBnZW5lcmF0ZSwgaG93ZXZlciB0aGUgcmVhZGVyIGNhbiAKKyAgICByZWFkIGFueSBvZiB0aGUgZm9ybWF0cyBsaXN0ZWQgYmVsb3cuCisgICAgCisgICAgbWltZXR5cGU6IGFwcGxpY2F0aW9uL3gtbWljcm9zb2Z0Lm5ldC5vYmplY3QuYmluYXJ5LmJhc2U2NAorICAgIHZhbHVlICAgOiBUaGUgb2JqZWN0IG11c3QgYmUgc2VyaWFsaXplZCB3aXRoIAorICAgICAgICAgICAgOiBTeXN0ZW0uU2VyaWFsaXphdGlvbi5Gb3JtYXR0ZXJzLkJpbmFyeS5CaW5hcnlGb3JtYXR0ZXIKKyAgICAgICAgICAgIDogYW5kIHRoZW4gZW5jb2RlZCB3aXRoIGJhc2U2NCBlbmNvZGluZy4KKyAgICAKKyAgICBtaW1ldHlwZTogYXBwbGljYXRpb24veC1taWNyb3NvZnQubmV0Lm9iamVjdC5zb2FwLmJhc2U2NAorICAgIHZhbHVlICAgOiBUaGUgb2JqZWN0IG11c3QgYmUgc2VyaWFsaXplZCB3aXRoIAorICAgICAgICAgICAgOiBTeXN0ZW0uUnVudGltZS5TZXJpYWxpemF0aW9uLkZvcm1hdHRlcnMuU29hcC5Tb2FwRm9ybWF0dGVyCisgICAgICAgICAgICA6IGFuZCB0aGVuIGVuY29kZWQgd2l0aCBiYXNlNjQgZW5jb2RpbmcuCisKKyAgICBtaW1ldHlwZTogYXBwbGljYXRpb24veC1taWNyb3NvZnQubmV0Lm9iamVjdC5ieXRlYXJyYXkuYmFzZTY0CisgICAgdmFsdWUgICA6IFRoZSBvYmplY3QgbXVzdCBiZSBzZXJpYWxpemVkIGludG8gYSBieXRlIGFycmF5IAorICAgICAgICAgICAgOiB1c2luZyBhIFN5c3RlbS5Db21wb25lbnRNb2RlbC5UeXBlQ29udmVydGVyCisgICAgICAgICAgICA6IGFuZCB0aGVuIGVuY29kZWQgd2l0aCBiYXNlNjQgZW5jb2RpbmcuCisgICAgLS0+CisgIDx4c2Q6c2NoZW1hIGlkPSJyb290IiB4bWxucz0iIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczptc2RhdGE9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206eG1sLW1zZGF0YSI+CisgICAgPHhzZDplbGVtZW50IG5hbWU9InJvb3QiIG1zZGF0YTpJc0RhdGFTZXQ9InRydWUiPgorICAgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgPHhzZDpjaG9pY2UgbWF4T2NjdXJzPSJ1bmJvdW5kZWQiPgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJtZXRhZGF0YSI+CisgICAgICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiAvPgorICAgICAgICAgICAgICA8L3hzZDpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ibWltZXR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+CisgICAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJhc3NlbWJseSI+CisgICAgICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJhbGlhcyIgdHlwZT0ieHNkOnN0cmluZyIgLz4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ibmFtZSIgdHlwZT0ieHNkOnN0cmluZyIgLz4KKyAgICAgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImRhdGEiPgorICAgICAgICAgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgICAgPHhzZDpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjEiIC8+CisgICAgICAgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImNvbW1lbnQiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgbXNkYXRhOk9yZGluYWw9IjIiIC8+CisgICAgICAgICAgICAgIDwveHNkOnNlcXVlbmNlPgorICAgICAgICAgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0idHlwZSIgdHlwZT0ieHNkOnN0cmluZyIgbXNkYXRhOk9yZGluYWw9IjMiIC8+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9Im1pbWV0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtc2RhdGE6T3JkaW5hbD0iNCIgLz4KKyAgICAgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InJlc2hlYWRlciI+CisgICAgICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4KKyAgICAgICAgICAgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIHVzZT0icmVxdWlyZWQiIC8+CisgICAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICA8L3hzZDpjaG9pY2U+CisgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICA8L3hzZDplbGVtZW50PgorICA8L3hzZDpzY2hlbWE+CisgIDxyZXNoZWFkZXIgbmFtZT0icmVzbWltZXR5cGUiPgorICAgIDx2YWx1ZT50ZXh0L21pY3Jvc29mdC1yZXN4PC92YWx1ZT4KKyAgPC9yZXNoZWFkZXI+CisgIDxyZXNoZWFkZXIgbmFtZT0idmVyc2lvbiI+CisgICAgPHZhbHVlPjIuMDwvdmFsdWU+CisgIDwvcmVzaGVhZGVyPgorICA8cmVzaGVhZGVyIG5hbWU9InJlYWRlciI+CisgICAgPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlUmVhZGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPgorICA8L3Jlc2hlYWRlcj4KKyAgPHJlc2hlYWRlciBuYW1lPSJ3cml0ZXIiPgorICAgIDx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVdyaXRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4KKyAgPC9yZXNoZWFkZXI+Cis8L3Jvb3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJWaWV3ZXIvUHJvcGVydGllcy9TZXR0aW5ncy5EZXNpZ25lci5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL1Byb3BlcnRpZXMvU2V0dGluZ3MuRGVzaWduZXIuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTgzMWIyMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL1Byb3BlcnRpZXMvU2V0dGluZ3MuRGVzaWduZXIuY3MKQEAgLTAsMCArMSwyNiBAQAor77u/Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy8vIDxhdXRvLWdlbmVyYXRlZD4KKy8vICAgICBEaWVzZXIgQ29kZSB3dXJkZSB2b24gZWluZW0gVG9vbCBnZW5lcmllcnQuCisvLyAgICAgTGF1ZnplaXR2ZXJzaW9uOjQuMC4zMDMxOS4yMjUKKy8vCisvLyAgICAgw4RuZGVydW5nZW4gYW4gZGllc2VyIERhdGVpIGvDtm5uZW4gZmFsc2NoZXMgVmVyaGFsdGVuIHZlcnVyc2FjaGVuIHVuZCBnZWhlbiB2ZXJsb3Jlbiwgd2VubgorLy8gICAgIGRlciBDb2RlIGVybmV1dCBnZW5lcmllcnQgd2lyZC4KKy8vIDwvYXV0by1nZW5lcmF0ZWQ+CisvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCituYW1lc3BhY2UgTHdpcE1pYlZpZXdlci5Qcm9wZXJ0aWVzIHsKKyAgICAKKyAgICAKKyAgICBbZ2xvYmFsOjpTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzLkNvbXBpbGVyR2VuZXJhdGVkQXR0cmlidXRlKCldCisgICAgW2dsb2JhbDo6U3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZSgiTWljcm9zb2Z0LlZpc3VhbFN0dWRpby5FZGl0b3JzLlNldHRpbmdzRGVzaWduZXIuU2V0dGluZ3NTaW5nbGVGaWxlR2VuZXJhdG9yIiwgIjEwLjAuMC4wIildCisgICAgaW50ZXJuYWwgc2VhbGVkIHBhcnRpYWwgY2xhc3MgU2V0dGluZ3MgOiBnbG9iYWw6OlN5c3RlbS5Db25maWd1cmF0aW9uLkFwcGxpY2F0aW9uU2V0dGluZ3NCYXNlIHsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgc3RhdGljIFNldHRpbmdzIGRlZmF1bHRJbnN0YW5jZSA9ICgoU2V0dGluZ3MpKGdsb2JhbDo6U3lzdGVtLkNvbmZpZ3VyYXRpb24uQXBwbGljYXRpb25TZXR0aW5nc0Jhc2UuU3luY2hyb25pemVkKG5ldyBTZXR0aW5ncygpKSkpOworICAgICAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyBTZXR0aW5ncyBEZWZhdWx0IHsKKyAgICAgICAgICAgIGdldCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRJbnN0YW5jZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL1Byb3BlcnRpZXMvU2V0dGluZ3Muc2V0dGluZ3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9Qcm9wZXJ0aWVzL1NldHRpbmdzLnNldHRpbmdzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5NjQ1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYlZpZXdlci9Qcm9wZXJ0aWVzL1NldHRpbmdzLnNldHRpbmdzCkBAIC0wLDAgKzEsNyBAQAor77u/PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KKzxTZXR0aW5nc0ZpbGUgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vVmlzdWFsU3R1ZGlvLzIwMDQvMDEvc2V0dGluZ3MiIEN1cnJlbnRQcm9maWxlPSIoRGVmYXVsdCkiPgorICA8UHJvZmlsZXM+CisgICAgPFByb2ZpbGUgTmFtZT0iKERlZmF1bHQpIiAvPgorICA8L1Byb2ZpbGVzPgorICA8U2V0dGluZ3MgLz4KKzwvU2V0dGluZ3NGaWxlPgpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJWaWV3ZXIvYXBwLmNvbmZpZyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL2FwcC5jb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM2NTYwMwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWliVmlld2VyL2FwcC5jb25maWcKQEAgLTAsMCArMSwzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxjb25maWd1cmF0aW9uPgorPHN0YXJ0dXA+PHN1cHBvcnRlZFJ1bnRpbWUgdmVyc2lvbj0idjQuMCIgc2t1PSIuTkVURnJhbWV3b3JrLFZlcnNpb249djQuMCIvPjwvc3RhcnR1cD48L2NvbmZpZ3VyYXRpb24+CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQiBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwMTA3OTUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQgpAQCAtMCwwICsxLDEzMSBAQAorCisKKyAgSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQiBERUZJTklUSU9OUyA6Oj0gQkVHSU4KKworICBJTVBPUlRTCisgICAgICBNT0RVTEUtSURFTlRJVFksCisgICAgICBtaWItMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIFNOTVB2Mi1TTUkKKyAgICAgIFRFWFRVQUwtQ09OVkVOVElPTiAgICAgICAgICAgICAgICAgIEZST00gU05NUHYyLVRDOworCisgIGlhbmFBZGRyZXNzRmFtaWx5TnVtYmVycyBNT0RVTEUtSURFTlRJVFkKKyAgICAgIExBU1QtVVBEQVRFRCAiMjAwMjAzMTQwMDAwWiIgIC0tIE1hcmNoIDE0LCAyMDAyCisgICAgICBPUkdBTklaQVRJT04gIklBTkEiCisgICAgICBDT05UQUNULUlORk8KKyAgICAgICAgICAiUG9zdGFsOiAgICBJbnRlcm5ldCBBc3NpZ25lZCBOdW1iZXJzIEF1dGhvcml0eQorICAgICAgICAgICAgICAgICAgICAgIEludGVybmV0IENvcnBvcmF0aW9uIGZvciBBc3NpZ25lZCBOYW1lcworCQkgICAgICBhbmQgTnVtYmVycworICAgICAgICAgICAgICAgICAgICAgIDQ2NzYgQWRtaXJhbHR5IFdheSwgU3VpdGUgMzMwCisgICAgICAgICAgICAgICAgICAgICAgTWFyaW5hIGRlbCBSZXksIENBIDkwMjkyLTY2MDEKKyAgICAgICAgICAgICAgICAgICAgICBVU0EKKworICAgICAgICAgIFRlbDogICAgKzEgIDMxMC04MjMtOTM1OAorICAgICAgICAgIEUtTWFpbDogaWFuYSZpYW5hLm9yZyIKKyAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgIlRoZSBNSUIgbW9kdWxlIGRlZmluZXMgdGhlIEFkZHJlc3NGYW1pbHlOdW1iZXJzCisgICAgICAgICAgdGV4dHVhbCBjb252ZW50aW9uLiIKKworICAgICAgLS0gcmV2aXNpb24gaGlzdG9yeQorCisgICAgICBSRVZJU0lPTiAgICAgIjIwMDIwMzE0MDAwMFoiICAtLSBNYXJjaCAxNCwgMjAwMgorICAgICAgREVTQ1JJUFRJT04gICJBZGRyZXNzRmFtaWx5TnVtYmVycyBhc3NpZ25tZW50IDIyIHRvIAorICAgICAgICAgICAgICAgICAgIGZpYnJlQ2hhbm5lbFdXUE4uIEFkZHJlc3NGYW1pbHlOdW1iZXJzIAorICAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQgMjMgdG8gZmlicmVDaGFubmVsV1dOTi4KKyAgICAgICAgICAgICAgICAgICBBZGRyZXNzRmFtaWx5TnVtZXJzIGFzc2lnbm1lbnQgMjQgdG8gZ3dpZC4iCisKKyAgICAgIFJFVklTSU9OICAgICAiMjAwMDA5MDgwMDAwWiIgIC0tIFNlcHRlbWJlciA4LCAyMDAwCisgICAgICBERVNDUklQVElPTiAgIkFkZHJlc3NGYW1pbHlOdW1iZXJzIGFzc2lnbm1lbnQgMTkgdG8geHRwT3ZlcklwdjQuICAKKyAgICAgICAgICAgICAgICAgICBBZGRyZXNzRmFtaWx5TnVtYmVycyBhc3NpZ25tZW50IDIwIHRvIHh0cE92ZXJJcHY2LiAgCisgICAgICAgICAgICAgICAgICAgQWRkcmVzc0ZhbWlseU51bWJlcnMgYXNzaWdubWVudCAyMSB0byB4dHBOYXRpdmVNb2RlWFRQLiIKKworICAgICAgUkVWSVNJT04gICAgICIyMDAwMDMwMTAwMDBaIiAgLS0gTWFyY2ggMSwgMjAwMAorICAgICAgREVTQ1JJUFRJT04gICJBZGRyZXNzRmFtaWx5TnVtYmVycyBhc3NpZ25tZW50IDE3IHRvIGRpc3Rpbmd1aXNoZWROYW1lLiAKKyAgICAgICAgICAgICAgICAgICBBZGRyZXNzRmFtaWx5TnVtYmVycyBhc3NpZ25tZW50IDE4IHRvIGFzTnVtYmVyLiIKKworICAgICAgUkVWSVNJT04gICAgICIyMDAwMDIwNDAwMDBaIiAgLS0gRmVicnVhcnkgNCwgMjAwMAorICAgICAgREVTQ1JJUFRJT04gICJBZGRyZXNzRmFtaWx5TnVtYmVycyBhc3NpZ25tZW50IDE2IHRvIGRucy4iCisKKyAgICAgIFJFVklTSU9OICAgICAiOTkwODI2MDAwMFoiICAtLSBBdWd1c3QgMjYsIDE5OTkKKyAgICAgIERFU0NSSVBUSU9OICAiSW5pdGlhbCB2ZXJzaW9uLCBwdWJsaXNoZWQgYXMgUkZDIDI2NzcuIgorCisgICAgICA6Oj0geyBtaWItMiA3MiB9CisKKworICBBZGRyZXNzRmFtaWx5TnVtYmVycyA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisKKyAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgICBERVNDUklQVElPTgorICAgICAgICAgICJUaGUgZGVmaW5pdGlvbiBvZiB0aGlzIHRleHR1YWwgY29udmVudGlvbiB3aXRoIHRoZQorICAgICAgICAgIGFkZGl0aW9uIG9mIG5ld2x5IGFzc2lnbmVkIHZhbHVlcyBpcyBwdWJsaXNoZWQKKyAgICAgICAgICBwZXJpb2RpY2FsbHkgYnkgdGhlIElBTkEsIGluIGVpdGhlciB0aGUgQXNzaWduZWQKKyAgICAgICAgICBOdW1iZXJzIFJGQywgb3Igc29tZSBkZXJpdmF0aXZlIG9mIGl0IHNwZWNpZmljIHRvCisgICAgICAgICAgSW50ZXJuZXQgTmV0d29yayBNYW5hZ2VtZW50IG51bWJlciBhc3NpZ25tZW50cy4KKyAgICAgICAgICAoVGhlIGxhdGVzdCBhcnJhbmdlbWVudHMgY2FuIGJlIG9idGFpbmVkIGJ5CisgICAgICAgICAgY29udGFjdGluZyB0aGUgSUFOQS4pCisKKyAgICAgICAgICBUaGUgZW51bWVyYXRpb25zIGFyZSBkZXNjcmliZWQgYXM6CisKKyAgICAgICAgICBvdGhlcigwKSwgICAgLS0gbm9uZSBvZiB0aGUgZm9sbG93aW5nCisgICAgICAgICAgaXBWNCgxKSwgICAgIC0tIElQIFZlcnNpb24gNAorICAgICAgICAgIGlwVjYoMiksICAgICAtLSBJUCBWZXJzaW9uIDYKKyAgICAgICAgICBuc2FwKDMpLCAgICAgLS0gTlNBUAorICAgICAgICAgIGhkbGMoNCksICAgICAtLSAoOC1iaXQgbXVsdGlkcm9wKQorICAgICAgICAgIGJibjE4MjIoNSksCisgICAgICAgICAgYWxsODAyKDYpLCAgIC0tIChpbmNsdWRlcyBhbGwgODAyIG1lZGlhCisgICAgICAgICAgICAgICAgICAgICAgIC0tICAgcGx1cyBFdGhlcm5ldCAnY2Fub25pY2FsIGZvcm1hdCcpCisgICAgICAgICAgZTE2Myg3KSwKKyAgICAgICAgICBlMTY0KDgpLCAgICAgLS0gKFNNRFMsIEZyYW1lIFJlbGF5LCBBVE0pCisgICAgICAgICAgZjY5KDkpLCAgICAgIC0tIChUZWxleCkKKyAgICAgICAgICB4MTIxKDEwKSwgICAgLS0gKFguMjUsIEZyYW1lIFJlbGF5KQorICAgICAgICAgIGlweCgxMSksICAgICAtLSBJUFggKEludGVybmV0IFByb3RvY29sIEV4Y2hhbmdlKQorICAgICAgICAgIGFwcGxlVGFsaygxMiksICAtLSBBcHBsZSBUYWxrCisgICAgICAgICAgZGVjbmV0SVYoMTMpLCAgIC0tIERFQyBOZXQgUGhhc2UgSVYKKyAgICAgICAgICBiYW55YW5WaW5lcygxNCksICAtLSBCYW55YW4gVmluZXMKKyAgICAgICAgICBlMTY0d2l0aE5zYXAoMTUpLAorICAgICAgICAgICAgICAgICAgICAgICAtLSAoRS4xNjQgd2l0aCBOU0FQIGZvcm1hdCBzdWJhZGRyZXNzKQorICAgICAgICAgIGRucygxNiksICAgICAtLSAoRG9tYWluIE5hbWUgU3lzdGVtKQorICAgICAgICAgIGRpc3Rpbmd1aXNoZWROYW1lKDE3KSwgLS0gKERpc3Rpbmd1aXNoZWQgTmFtZSwgcGVyIFguNTAwKQorICAgICAgICAgIGFzTnVtYmVyKDE4KSwgLS0gKDE2LWJpdCBxdWFudGl0eSwgcGVyIHRoZSBBUyBudW1iZXIgc3BhY2UpCisgICAgICAgICAgeHRwT3ZlcklwdjQoMTkpLCAgLS0gWFRQIG92ZXIgSVAgdmVyc2lvbiA0CisgICAgICAgICAgeHRwT3ZlcklwdjYoMjApLCAgLS0gWFRQIG92ZXIgSVAgdmVyc2lvbiA2CisgICAgICAgICAgeHRwTmF0aXZlTW9kZVhUUCgyMSksICAtLSBYVFAgbmF0aXZlIG1vZGUgWFRQCisgICAgICAgICAgZmlicmVDaGFubmVsV1dQTigyMiksICAtLSBGaWJyZSBDaGFubmVsIFdvcmxkLVdpZGUgUG9ydCBOYW1lIAorICAgICAgICAgIGZpYnJlQ2hhbm5lbFdXTk4oMjMpLCAgLS0gRmlicmUgQ2hhbm5lbCBXb3JsZC1XaWRlIE5vZGUgTmFtZQorICAgICAgICAgIGd3aWQoMjQpLCAgICAtLSBHYXRld2F5IElkZW50aWZpZXIgCisgICAgICAgICAgYWZpKDI1KSwgIC0tIEFGSSBmb3IgTDJWUE4gaW5mb3JtYXRpb24KKyAgICAgICAgICByZXNlcnZlZCg2NTUzNSkKKworCisKKyAgICAgICAgICBSZXF1ZXN0cyBmb3IgbmV3IHZhbHVlcyBzaG91bGQgYmUgbWFkZSB0byBJQU5BIHZpYQorICAgICAgICAgIGVtYWlsIChpYW5hJmlhbmEub3JnKS4iCisKKyAgICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICBvdGhlcigwKSwKKyAgICAgICAgICAgICAgICAgIGlwVjQoMSksCisgICAgICAgICAgICAgICAgICBpcFY2KDIpLAorICAgICAgICAgICAgICAgICAgbnNhcCgzKSwKKyAgICAgICAgICAgICAgICAgIGhkbGMoNCksCisgICAgICAgICAgICAgICAgICBiYm4xODIyKDUpLAorICAgICAgICAgICAgICAgICAgYWxsODAyKDYpLAorICAgICAgICAgICAgICAgICAgZTE2Myg3KSwKKyAgICAgICAgICAgICAgICAgIGUxNjQoOCksCisgICAgICAgICAgICAgICAgICBmNjkoOSksCisgICAgICAgICAgICAgICAgICB4MTIxKDEwKSwKKyAgICAgICAgICAgICAgICAgIGlweCgxMSksCisgICAgICAgICAgICAgICAgICBhcHBsZVRhbGsoMTIpLAorICAgICAgICAgICAgICAgICAgZGVjbmV0SVYoMTMpLAorICAgICAgICAgICAgICAgICAgYmFueWFuVmluZXMoMTQpLAorICAgICAgICAgICAgICAgICAgZTE2NHdpdGhOc2FwKDE1KSwKKyAgICAgICAgICAgICAgICAgIGRucygxNiksCisgICAgICAgICAgICAgICAgICBkaXN0aW5ndWlzaGVkTmFtZSgxNyksIC0tIChEaXN0aW5ndWlzaGVkIE5hbWUsIHBlciBYLjUwMCkKKyAgICAgICAgICAgICAgICAgIGFzTnVtYmVyKDE4KSwgLS0gKDE2LWJpdCBxdWFudGl0eSwgcGVyIHRoZSBBUyBudW1iZXIgc3BhY2UpCisgICAgICAgICAgICAgICAgICB4dHBPdmVySXB2NCgxOSksCisgICAgICAgICAgICAgICAgICB4dHBPdmVySXB2NigyMCksCisgICAgICAgICAgICAgICAgICB4dHBOYXRpdmVNb2RlWFRQKDIxKSwKKyAgICAgICAgICAgICAgICAgIGZpYnJlQ2hhbm5lbFdXUE4oMjIpLAorICAgICAgICAgICAgICAgICAgZmlicmVDaGFubmVsV1dOTigyMyksCisgICAgICAgICAgICAgICAgICBnd2lkKDI0KSwKKyAgICAgICAgICAgICAgICAgIGFmaSgyNSksCisgICAgICAgICAgICAgICAgICByZXNlcnZlZCg2NTUzNSkKKyAgICAgICAgICAgICAgfQorICAgICAgRU5ECmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvSUFOQS1DSEFSU0VULU1JQiBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BLUNIQVJTRVQtTUlCCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5OWQ1NGUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvSUFOQS1DSEFSU0VULU1JQgpAQCAtMCwwICsxLDM0NSBAQAorSUFOQS1DSEFSU0VULU1JQiBERUZJTklUSU9OUyA6Oj0gQkVHSU4KKy0tICBodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2lhbmFjaGFyc2V0LW1pYgorCitJTVBPUlRTCisgICAgTU9EVUxFLUlERU5USVRZLAorICAgICAgICBtaWItMgorICAgICAgICAgICAgRlJPTSBTTk1QdjItU01JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gW1JGQzI1NzhdCisgICAgVEVYVFVBTC1DT05WRU5USU9OCisgICAgICAgICAgICBGUk9NIFNOTVB2Mi1UQzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBbUkZDMjU3OV0KKworaWFuYUNoYXJzZXRNSUIgTU9EVUxFLUlERU5USVRZCisgICAgTEFTVC1VUERBVEVEICAgICIyMDA3MDUxNDAwMDBaIgorICAgIE9SR0FOSVpBVElPTiAgICAiSUFOQSIKKyAgICBDT05UQUNULUlORk8gICAgIiAgICAgICBJbnRlcm5ldCBBc3NpZ25lZCBOdW1iZXJzIEF1dGhvcml0eQorCisgICAgICAgICAgICAgICAgICAgIFBvc3RhbDogSUNBTk4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Njc2IEFkbWlyYWx0eSBXYXksIFN1aXRlIDMzMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmluYSBkZWwgUmV5LCBDQSA5MDI5MgorCisgICAgICAgICAgICAgICAgICAgIFRlbDogICAgKzEgMzEwIDgyMyA5MzU4CisgICAgICAgICAgICAgICAgICAgIEUtTWFpbDogaWFuYSZpYW5hLm9yZyIKKworICAgIERFU0NSSVBUSU9OICAgICAiVGhpcyBNSUIgbW9kdWxlIGRlZmluZXMgdGhlIElBTkFDaGFyc2V0CisgICAgICAgICAgICAgICAgICAgIFRFWFRVQUwtQ09OVkVOVElPTi4gIFRoZSBJQU5BQ2hhcnNldCBUQyBpcyB1c2VkIHRvCisgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgdGhlIGVuY29kaW5nIG9mIHN0cmluZyBvYmplY3RzIGRlZmluZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgYSBNSUIuCisKKyAgICAgICAgICAgICAgICAgICAgRWFjaCB2ZXJzaW9uIG9mIHRoaXMgTUlCIHdpbGwgYmUgcmVsZWFzZWQgYmFzZWQgb24KKyAgICAgICAgICAgICAgICAgICAgdGhlIElBTkEgQ2hhcnNldCBSZWdpc3RyeSBmaWxlIChzZWUgUkZDIDI5NzgpIGF0CisgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvY2hhcmFjdGVyLXNldHMuCisKKyAgICAgICAgICAgICAgICAgICAgTm90ZTogIFRoZSBJQU5BQ2hhcnNldCBUQywgb3JpZ2luYWxseSBkZWZpbmVkIGluCisgICAgICAgICAgICAgICAgICAgIFJGQyAxNzU5LCB3YXMgaW5hY2N1cmF0ZWx5IG5hbWVkIENvZGVkQ2hhclNldC4KKworICAgICAgICAgICAgICAgICAgICBOb3RlOiAgQmVzdCBwcmFjdGljZSBpcyB0byBkZWZpbmUgbmV3IE1JQiBzdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgb2JqZWN0cyB3aXRoIGludmFyaWFudCBVVEYtOCAoUkZDIDM2MjkpIHN5bnRheAorICAgICAgICAgICAgICAgICAgICB1c2luZyB0aGUgU25tcEFkbWluU3RyaW5nIFRDIChkZWZpbmVkIGluIFJGQyAzNDExKQorICAgICAgICAgICAgICAgICAgICBpbiBhY2NvcmRhbmNlIHdpdGggSUVURiBQb2xpY3kgb24gQ2hhcmFjdGVyIFNldHMgYW5kCisgICAgICAgICAgICAgICAgICAgIExhbmd1YWdlcyAoUkZDIDIyNzcpLgorCisgICAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgVGhlIEludGVybmV0IFNvY2lldHkgKDIwMDQpLiAgVGhlCisgICAgICAgICAgICAgICAgICAgIGluaXRpYWwgdmVyc2lvbiBvZiB0aGlzIE1JQiBtb2R1bGUgd2FzIHB1Ymxpc2hlZAorICAgICAgICAgICAgICAgICAgICBpbiBSRkMgMzgwODsgZm9yIGZ1bGwgbGVnYWwgbm90aWNlcyBzZWUgdGhlIFJGQworICAgICAgICAgICAgICAgICAgICBpdHNlbGYuICBTdXBwbGVtZW50YXJ5IGluZm9ybWF0aW9uIG1heSBiZQorICAgICAgICAgICAgICAgICAgICBhdmFpbGFibGUgb24KKyAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5pZXRmLm9yZy9jb3B5cmlnaHRzL2lhbmFtaWIuaHRtbC4iCisKKyAgICAtLSAgcmV2aXNpb24gaGlzdG9yeQorICAgIAorICAgIFJFVklTSU9OICAgICAgICAiMjAwNzA1MTQwMDAwWiIKKyAgICBERVNDUklQVElPTiAgICAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgY2hhcnNldCAyMTA3LiIKKworICAgIFJFVklTSU9OICAgICAgICAiMjAwNjEyMDcwMDAwWiIKKyAgICBERVNDUklQVElPTiAgICAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgY2hhcnNldHMgbnVtYmVyZWQgMTE4LCAxMTksIAorICAgICAgICAgICAgICAgICAgICBhbmQgMjEwNi4iCisKKyAgICBSRVZJU0lPTiAgICAgICAgIjIwMDQwNjA4MDAwMFoiCisgICAgREVTQ1JJUFRJT04gICAgICJPcmlnaW5hbCB2ZXJzaW9uIHRyYW5zZmVycmVkIGZyb20gUHJpbnRlciBNSUIsCisgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZCBmcm9tIHRoZSBJQU5BIG1haW50YWluZWQgYXNzaWdubWVudHMKKyAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9jaGFyYWN0ZXItc2V0cy4iCisKKyAgICA6Oj0geyBtaWItMiAxMDYgfQorCitJQU5BQ2hhcnNldCA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgU1RBVFVTICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlNwZWNpZmllcyBhbiBJQU5BIHJlZ2lzdGVyZWQgJ2NoYXJzZXQnIC0gY29kZWQgY2hhcmFjdGVyIHNldAorICAgICAgICAoQ0NTKSBwbHVzIG9wdGlvbmFsIGNoYXJhY3RlciBlbmNvZGluZyBzY2hlbWUgKENFUykgLSB0ZXJtcworICAgICAgICBkZWZpbmVkIGluICdJQU5BIENoYXJzZXQgUmVnaXN0cmF0aW9uIFByb2NlZHVyZXMnIChSRkMgMjk3OCkuCisKKyAgICAgICAgT2JqZWN0cyBvZiB0aGlzIHN5bnRheCBhcmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBlbmNvZGluZyBmb3IKKyAgICAgICAgc3RyaW5nIG9iamVjdHMgZGVmaW5lZCBpbiBvbmUgb3IgbW9yZSBNSUJzLiAgRm9yIGV4YW1wbGUsIHRoZQorICAgICAgICBwcnRMb2NhbGl6YXRpb25DaGFyYWN0ZXJTZXQsIHBydEludGVycHJldGVyRGVmYXVsdENoYXJTZXRJbiwgYW5kCisgICAgICAgIHBydEludGVycHJldGVyRGVmYXVsdENoYXJTZXRPdXQgb2JqZWN0cyBkZWZpbmVkIGluIFByaW50ZXIgTUlCLgorCisgICAgICAgIFRoZSBjdXJyZW50IGxpc3Qgb2YgJ2NoYXJzZXQnIG5hbWVzIGFuZCBlbnVtZXJhdGVkIHZhbHVlcworICAgICAgICBpcyBjb250YWluZWQgaW4gdGhlIElBTkEgQ2hhcmFjdGVyIFNldCBSZWdpc3RyeSBhdDoKKworICAgICAgICAgICBodHRwOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL2NoYXJhY3Rlci1zZXRzCisKKyAgICAgICAgRW51bSBuYW1lcyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBJQU5BIENoYXJzZXQgUmVnaXN0cnkgJ0FsaWFzJworICAgICAgICBmaWVsZHMgdGhhdCBiZWdpbiB3aXRoICdjcycgKGZvciBjaGFyYWN0ZXIgc2V0KS4KKyAgICAgICAgRW51bSB2YWx1ZXMgYXJlIGRlcml2ZWQgZnJvbSB0aGUgcGFyYWxsZWwgJ01JQmVudW0nIGZpZWxkcy4iCisgICAgU1lOVEFYICBJTlRFR0VSIHsKKyAgICAgICAgb3RoZXIoMSksICAgLS0gdXNlZCBpZiB0aGUgZGVzaWduYXRlZAorICAgICAgICAgICAgICAgICAgICAtLSBjaGFyYWN0ZXIgc2V0IGlzIG5vdCBjdXJyZW50bHkKKyAgICAgICAgICAgICAgICAgICAgLS0gcmVnaXN0ZXJlZCBieSBJQU5BCisgICAgICAgIHVua25vd24oMiksIC0tIHVzZWQgYXMgYSBkZWZhdWx0IHZhbHVlCisgICAgICAgIGNzQVNDSUkoMyksCisgICAgICAgIGNzSVNPTGF0aW4xKDQpLAorICAgICAgICBjc0lTT0xhdGluMig1KSwKKyAgICAgICAgY3NJU09MYXRpbjMoNiksCisgICAgICAgIGNzSVNPTGF0aW40KDcpLAorICAgICAgICBjc0lTT0xhdGluQ3lyaWxsaWMoOCksCisgICAgICAgIGNzSVNPTGF0aW5BcmFiaWMoOSksCisgICAgICAgIGNzSVNPTGF0aW5HcmVlaygxMCksCisgICAgICAgIGNzSVNPTGF0aW5IZWJyZXcoMTEpLAorICAgICAgICBjc0lTT0xhdGluNSgxMiksCisgICAgICAgIGNzSVNPTGF0aW42KDEzKSwKKyAgICAgICAgY3NJU09UZXh0Q29tbSgxNCksCisgICAgICAgIGNzSGFsZldpZHRoS2F0YWthbmEoMTUpLAorICAgICAgICBjc0pJU0VuY29kaW5nKDE2KSwKKyAgICAgICAgY3NTaGlmdEpJUygxNyksCisgICAgICAgIGNzRVVDUGtkRm10SmFwYW5lc2UoMTgpLAorICAgICAgICBjc0VVQ0ZpeFdpZEphcGFuZXNlKDE5KSwKKyAgICAgICAgY3NJU080VW5pdGVkS2luZ2RvbSgyMCksCisgICAgICAgIGNzSVNPMTFTd2VkaXNoRm9yTmFtZXMoMjEpLAorICAgICAgICBjc0lTTzE1SXRhbGlhbigyMiksCisgICAgICAgIGNzSVNPMTdTcGFuaXNoKDIzKSwKKyAgICAgICAgY3NJU08yMUdlcm1hbigyNCksCisgICAgICAgIGNzSVNPNjBEYW5pc2hOb3J3ZWdpYW4oMjUpLAorICAgICAgICBjc0lTTzY5RnJlbmNoKDI2KSwKKyAgICAgICAgY3NJU08xMDY0NlVURjEoMjcpLAorICAgICAgICBjc0lTTzY0NmJhc2ljMTk4MygyOCksCisgICAgICAgIGNzSU5WQVJJQU5UKDI5KSwKKyAgICAgICAgY3NJU08ySW50bFJlZlZlcnNpb24oMzApLAorICAgICAgICBjc05BVFNTRUZJKDMxKSwKKyAgICAgICAgY3NOQVRTU0VGSUFERCgzMiksCisgICAgICAgIGNzTkFUU0RBTk8oMzMpLAorICAgICAgICBjc05BVFNEQU5PQUREKDM0KSwKKyAgICAgICAgY3NJU08xMFN3ZWRpc2goMzUpLAorICAgICAgICBjc0tTQzU2MDExOTg3KDM2KSwKKyAgICAgICAgY3NJU08yMDIyS1IoMzcpLAorICAgICAgICBjc0VVQ0tSKDM4KSwKKyAgICAgICAgY3NJU08yMDIySlAoMzkpLAorICAgICAgICBjc0lTTzIwMjJKUDIoNDApLAorICAgICAgICBjc0lTTzEzSklTQzYyMjBqcCg0MSksCisgICAgICAgIGNzSVNPMTRKSVNDNjIyMHJvKDQyKSwKKyAgICAgICAgY3NJU08xNlBvcnR1Z3Vlc2UoNDMpLAorICAgICAgICBjc0lTTzE4R3JlZWs3T2xkKDQ0KSwKKyAgICAgICAgY3NJU08xOUxhdGluR3JlZWsoNDUpLAorICAgICAgICBjc0lTTzI1RnJlbmNoKDQ2KSwKKyAgICAgICAgY3NJU08yN0xhdGluR3JlZWsxKDQ3KSwKKyAgICAgICAgY3NJU081NDI3Q3lyaWxsaWMoNDgpLAorICAgICAgICBjc0lTTzQySklTQzYyMjYxOTc4KDQ5KSwKKyAgICAgICAgY3NJU080N0JTVmlld2RhdGEoNTApLAorICAgICAgICBjc0lTTzQ5SU5JUyg1MSksCisgICAgICAgIGNzSVNPNTBJTklTOCg1MiksCisgICAgICAgIGNzSVNPNTFJTklTQ3lyaWxsaWMoNTMpLAorICAgICAgICBjc0lTTzU0MjcxOTgxKDU0KSwKKyAgICAgICAgY3NJU081NDI4R3JlZWsoNTUpLAorICAgICAgICBjc0lTTzU3R0IxOTg4KDU2KSwKKyAgICAgICAgY3NJU081OEdCMjMxMjgwKDU3KSwKKyAgICAgICAgY3NJU082MU5vcndlZ2lhbjIoNTgpLAorICAgICAgICBjc0lTTzcwVmlkZW90ZXhTdXBwMSg1OSksCisgICAgICAgIGNzSVNPODRQb3J0dWd1ZXNlMig2MCksCisgICAgICAgIGNzSVNPODVTcGFuaXNoMig2MSksCisgICAgICAgIGNzSVNPODZIdW5nYXJpYW4oNjIpLAorICAgICAgICBjc0lTTzg3SklTWDAyMDgoNjMpLAorICAgICAgICBjc0lTTzg4R3JlZWs3KDY0KSwKKyAgICAgICAgY3NJU084OUFTTU80NDkoNjUpLAorICAgICAgICBjc0lTTzkwKDY2KSwKKyAgICAgICAgY3NJU085MUpJU0M2MjI5MTk4NGEoNjcpLAorICAgICAgICBjc0lTTzkySklTQzYyOTkxOTg0Yig2OCksCisgICAgICAgIGNzSVNPOTNKSVM2MjI5MTk4NGJhZGQoNjkpLAorICAgICAgICBjc0lTTzk0SklTNjIyOTE5ODRoYW5kKDcwKSwKKyAgICAgICAgY3NJU085NUpJUzYyMjkxOTg0aGFuZGFkZCg3MSksCisgICAgICAgIGNzSVNPOTZKSVNDNjIyOTE5ODRrYW5hKDcyKSwKKyAgICAgICAgY3NJU08yMDMzKDczKSwKKyAgICAgICAgY3NJU085OU5BUExQUyg3NCksCisgICAgICAgIGNzSVNPMTAyVDYxN2JpdCg3NSksCisgICAgICAgIGNzSVNPMTAzVDYxOGJpdCg3NiksCisgICAgICAgIGNzSVNPMTExRUNNQUN5cmlsbGljKDc3KSwKKyAgICAgICAgY3NhNzEoNzgpLAorICAgICAgICBjc2E3Mig3OSksCisgICAgICAgIGNzSVNPMTIzQ1NBWjI0MzQxOTg1Z3IoODApLAorICAgICAgICBjc0lTTzg4NTk2RSg4MSksCisgICAgICAgIGNzSVNPODg1OTZJKDgyKSwKKyAgICAgICAgY3NJU08xMjhUMTAxRzIoODMpLAorICAgICAgICBjc0lTTzg4NTk4RSg4NCksCisgICAgICAgIGNzSVNPODg1OThJKDg1KSwKKyAgICAgICAgY3NJU08xMzlDU04zNjkxMDMoODYpLAorICAgICAgICBjc0lTTzE0MUpVU0lCMTAwMig4NyksCisgICAgICAgIGNzSVNPMTQzSUVDUDI3MSg4OCksCisgICAgICAgIGNzSVNPMTQ2U2VyYmlhbig4OSksCisgICAgICAgIGNzSVNPMTQ3TWFjZWRvbmlhbig5MCksCisgICAgICAgIGNzSVNPMTUwKDkxKSwKKyAgICAgICAgY3NJU08xNTFDdWJhKDkyKSwKKyAgICAgICAgY3NJU082OTM3QWRkKDkzKSwKKyAgICAgICAgY3NJU08xNTNHT1NUMTk3Njg3NCg5NCksCisgICAgICAgIGNzSVNPODg1OVN1cHAoOTUpLAorICAgICAgICBjc0lTTzEwMzY3Qm94KDk2KSwKKyAgICAgICAgY3NJU08xNThMYXAoOTcpLAorICAgICAgICBjc0lTTzE1OUpJU1gwMjEyMTk5MCg5OCksCisgICAgICAgIGNzSVNPNjQ2RGFuaXNoKDk5KSwKKyAgICAgICAgY3NVU0RLKDEwMCksCisgICAgICAgIGNzREtVUygxMDEpLAorICAgICAgICBjc0tTQzU2MzYoMTAyKSwKKyAgICAgICAgY3NVbmljb2RlMTFVVEY3KDEwMyksCisgICAgICAgIGNzSVNPMjAyMkNOKDEwNCksCisgICAgICAgIGNzSVNPMjAyMkNORVhUKDEwNSksCisgICAgICAgIGNzVVRGOCgxMDYpLAorICAgICAgICBjc0lTTzg4NTkxMygxMDkpLAorICAgICAgICBjc0lTTzg4NTkxNCgxMTApLAorICAgICAgICBjc0lTTzg4NTkxNSgxMTEpLAorICAgICAgICBjc0lTTzg4NTkxNigxMTIpLAorICAgICAgICBjc0dCSygxMTMpLAorICAgICAgICBjc0dCMTgwMzAoMTE0KSwKKyAgICAgICAgY3NPU0RFQkNESUNERjA0MTUoMTE1KSwKKyAgICAgICAgY3NPU0RFQkNESUNERjAzSVJWKDExNiksCisgICAgICAgIGNzT1NERUJDRElDREYwNDEoMTE3KSwKKyAgICAgICAgY3NJU08xMTU0ODEoMTE4KSwKKyAgICAgICAgY3NLWjEwNDgoMTE5KSwKKyAgICAgICAgY3NVbmljb2RlKDEwMDApLAorICAgICAgICBjc1VDUzQoMTAwMSksCisgICAgICAgIGNzVW5pY29kZUFTQ0lJKDEwMDIpLAorICAgICAgICBjc1VuaWNvZGVMYXRpbjEoMTAwMyksCisgICAgICAgIGNzVW5pY29kZUlCTTEyNjEoMTAwNSksCisgICAgICAgIGNzVW5pY29kZUlCTTEyNjgoMTAwNiksCisgICAgICAgIGNzVW5pY29kZUlCTTEyNzYoMTAwNyksCisgICAgICAgIGNzVW5pY29kZUlCTTEyNjQoMTAwOCksCisgICAgICAgIGNzVW5pY29kZUlCTTEyNjUoMTAwOSksCisgICAgICAgIGNzVW5pY29kZTExKDEwMTApLAorICAgICAgICBjc1NDU1UoMTAxMSksCisgICAgICAgIGNzVVRGNygxMDEyKSwKKyAgICAgICAgY3NVVEYxNkJFKDEwMTMpLAorICAgICAgICBjc1VURjE2TEUoMTAxNCksCisgICAgICAgIGNzVVRGMTYoMTAxNSksCisgICAgICAgIGNzQ0VTVTgoMTAxNiksCisgICAgICAgIGNzVVRGMzIoMTAxNyksCisgICAgICAgIGNzVVRGMzJCRSgxMDE4KSwKKyAgICAgICAgY3NVVEYzMkxFKDEwMTkpLAorICAgICAgICBjc0JPQ1UxKDEwMjApLAorICAgICAgICBjc1dpbmRvd3MzMExhdGluMSgyMDAwKSwKKyAgICAgICAgY3NXaW5kb3dzMzFMYXRpbjEoMjAwMSksCisgICAgICAgIGNzV2luZG93czMxTGF0aW4yKDIwMDIpLAorICAgICAgICBjc1dpbmRvd3MzMUxhdGluNSgyMDAzKSwKKyAgICAgICAgY3NIUFJvbWFuOCgyMDA0KSwKKyAgICAgICAgY3NBZG9iZVN0YW5kYXJkRW5jb2RpbmcoMjAwNSksCisgICAgICAgIGNzVmVudHVyYVVTKDIwMDYpLAorICAgICAgICBjc1ZlbnR1cmFJbnRlcm5hdGlvbmFsKDIwMDcpLAorICAgICAgICBjc0RFQ01DUygyMDA4KSwKKyAgICAgICAgY3NQQzg1ME11bHRpbGluZ3VhbCgyMDA5KSwKKyAgICAgICAgY3NQQ3A4NTIoMjAxMCksCisgICAgICAgIGNzUEM4Q29kZVBhZ2U0MzcoMjAxMSksCisgICAgICAgIGNzUEM4RGFuaXNoTm9yd2VnaWFuKDIwMTIpLAorICAgICAgICBjc1BDODYyTGF0aW5IZWJyZXcoMjAxMyksCisgICAgICAgIGNzUEM4VHVya2lzaCgyMDE0KSwKKyAgICAgICAgY3NJQk1TeW1ib2xzKDIwMTUpLAorICAgICAgICBjc0lCTVRoYWkoMjAxNiksCisgICAgICAgIGNzSFBMZWdhbCgyMDE3KSwKKyAgICAgICAgY3NIUFBpRm9udCgyMDE4KSwKKyAgICAgICAgY3NIUE1hdGg4KDIwMTkpLAorICAgICAgICBjc0hQUFNNYXRoKDIwMjApLAorICAgICAgICBjc0hQRGVza3RvcCgyMDIxKSwKKyAgICAgICAgY3NWZW50dXJhTWF0aCgyMDIyKSwKKyAgICAgICAgY3NNaWNyb3NvZnRQdWJsaXNoaW5nKDIwMjMpLAorICAgICAgICBjc1dpbmRvd3MzMUooMjAyNCksCisgICAgICAgIGNzR0IyMzEyKDIwMjUpLAorICAgICAgICBjc0JpZzUoMjAyNiksCisgICAgICAgIGNzTWFjaW50b3NoKDIwMjcpLAorICAgICAgICBjc0lCTTAzNygyMDI4KSwKKyAgICAgICAgY3NJQk0wMzgoMjAyOSksCisgICAgICAgIGNzSUJNMjczKDIwMzApLAorICAgICAgICBjc0lCTTI3NCgyMDMxKSwKKyAgICAgICAgY3NJQk0yNzUoMjAzMiksCisgICAgICAgIGNzSUJNMjc3KDIwMzMpLAorICAgICAgICBjc0lCTTI3OCgyMDM0KSwKKyAgICAgICAgY3NJQk0yODAoMjAzNSksCisgICAgICAgIGNzSUJNMjgxKDIwMzYpLAorICAgICAgICBjc0lCTTI4NCgyMDM3KSwKKyAgICAgICAgY3NJQk0yODUoMjAzOCksCisgICAgICAgIGNzSUJNMjkwKDIwMzkpLAorICAgICAgICBjc0lCTTI5NygyMDQwKSwKKyAgICAgICAgY3NJQk00MjAoMjA0MSksCisgICAgICAgIGNzSUJNNDIzKDIwNDIpLAorICAgICAgICBjc0lCTTQyNCgyMDQzKSwKKyAgICAgICAgY3NJQk01MDAoMjA0NCksCisgICAgICAgIGNzSUJNODUxKDIwNDUpLAorICAgICAgICBjc0lCTTg1NSgyMDQ2KSwKKyAgICAgICAgY3NJQk04NTcoMjA0NyksCisgICAgICAgIGNzSUJNODYwKDIwNDgpLAorICAgICAgICBjc0lCTTg2MSgyMDQ5KSwKKyAgICAgICAgY3NJQk04NjMoMjA1MCksCisgICAgICAgIGNzSUJNODY0KDIwNTEpLAorICAgICAgICBjc0lCTTg2NSgyMDUyKSwKKyAgICAgICAgY3NJQk04NjgoMjA1MyksCisgICAgICAgIGNzSUJNODY5KDIwNTQpLAorICAgICAgICBjc0lCTTg3MCgyMDU1KSwKKyAgICAgICAgY3NJQk04NzEoMjA1NiksCisgICAgICAgIGNzSUJNODgwKDIwNTcpLAorICAgICAgICBjc0lCTTg5MSgyMDU4KSwKKyAgICAgICAgY3NJQk05MDMoMjA1OSksCisgICAgICAgIGNzSUJCTTkwNCgyMDYwKSwKKyAgICAgICAgY3NJQk05MDUoMjA2MSksCisgICAgICAgIGNzSUJNOTE4KDIwNjIpLAorICAgICAgICBjc0lCTTEwMjYoMjA2MyksCisgICAgICAgIGNzSUJNRUJDRElDQVRERSgyMDY0KSwKKyAgICAgICAgY3NFQkNESUNBVERFQSgyMDY1KSwKKyAgICAgICAgY3NFQkNESUNDQUZSKDIwNjYpLAorICAgICAgICBjc0VCQ0RJQ0RLTk8oMjA2NyksCisgICAgICAgIGNzRUJDRElDREtOT0EoMjA2OCksCisgICAgICAgIGNzRUJDRElDRklTRSgyMDY5KSwKKyAgICAgICAgY3NFQkNESUNGSVNFQSgyMDcwKSwKKyAgICAgICAgY3NFQkNESUNGUigyMDcxKSwKKyAgICAgICAgY3NFQkNESUNJVCgyMDcyKSwKKyAgICAgICAgY3NFQkNESUNQVCgyMDczKSwKKyAgICAgICAgY3NFQkNESUNFUygyMDc0KSwKKyAgICAgICAgY3NFQkNESUNFU0EoMjA3NSksCisgICAgICAgIGNzRUJDRElDRVNTKDIwNzYpLAorICAgICAgICBjc0VCQ0RJQ1VLKDIwNzcpLAorICAgICAgICBjc0VCQ0RJQ1VTKDIwNzgpLAorICAgICAgICBjc1Vua25vd244QmlUKDIwNzkpLAorICAgICAgICBjc01uZW1vbmljKDIwODApLAorICAgICAgICBjc01uZW0oMjA4MSksCisgICAgICAgIGNzVklTQ0lJKDIwODIpLAorICAgICAgICBjc1ZJUVIoMjA4MyksCisgICAgICAgIGNzS09JOFIoMjA4NCksCisgICAgICAgIGNzSFpHQjIzMTIoMjA4NSksCisgICAgICAgIGNzSUJNODY2KDIwODYpLAorICAgICAgICBjc1BDNzc1QmFsdGljKDIwODcpLAorICAgICAgICBjc0tPSThVKDIwODgpLAorICAgICAgICBjc0lCTTAwODU4KDIwODkpLAorICAgICAgICBjc0lCTTAwOTI0KDIwOTApLAorICAgICAgICBjc0lCTTAxMTQwKDIwOTEpLAorICAgICAgICBjc0lCTTAxMTQxKDIwOTIpLAorICAgICAgICBjc0lCTTAxMTQyKDIwOTMpLAorICAgICAgICBjc0lCTTAxMTQzKDIwOTQpLAorICAgICAgICBjc0lCTTAxMTQ0KDIwOTUpLAorICAgICAgICBjc0lCTTAxMTQ1KDIwOTYpLAorICAgICAgICBjc0lCTTAxMTQ2KDIwOTcpLAorICAgICAgICBjc0lCTTAxMTQ3KDIwOTgpLAorICAgICAgICBjc0lCTTAxMTQ4KDIwOTkpLAorICAgICAgICBjc0lCTTAxMTQ5KDIxMDApLAorICAgICAgICBjc0JpZzVIS1NDUygyMTAxKSwKKyAgICAgICAgY3NJQk0xMDQ3KDIxMDIpLAorICAgICAgICBjc1BUQ1AxNTQoMjEwMyksCisgICAgICAgIGNzQW1pZ2ExMjUxKDIxMDQpLAorICAgICAgICBjc0tPSTdzd2l0Y2hlZCgyMTA1KSwKKyAgICAgICAgY3NCUkYoMjEwNiksCisgICAgICAgIGNzVFNDSUkoMjEwNyksCisgICAgICAgIGNzd2luZG93czEyNTAoMjI1MCksCisgICAgICAgIGNzd2luZG93czEyNTEoMjI1MSksCisgICAgICAgIGNzd2luZG93czEyNTIoMjI1MiksCisgICAgICAgIGNzd2luZG93czEyNTMoMjI1MyksCisgICAgICAgIGNzd2luZG93czEyNTQoMjI1NCksCisgICAgICAgIGNzd2luZG93czEyNTUoMjI1NSksCisgICAgICAgIGNzd2luZG93czEyNTYoMjI1NiksCisgICAgICAgIGNzd2luZG93czEyNTcoMjI1NyksCisgICAgICAgIGNzd2luZG93czEyNTgoMjI1OCksCisgICAgICAgIGNzVElTNjIwKDIyNTkpLAorICAgICAgICByZXNlcnZlZCgzMDAwKQorICAgIH0KK0VORAorCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvSUFOQS9JQU5BLUlUVS1BTEFSTS1UQy1NSUIgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvSUFOQS9JQU5BLUlUVS1BTEFSTS1UQy1NSUIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU3OTQ4NQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BL0lBTkEtSVRVLUFMQVJNLVRDLU1JQgpAQCAtMCwwICsxLDMzMyBAQAorSUFOQS1JVFUtQUxBUk0tVEMtTUlCIERFRklOSVRJT05TIDo6PSBCRUdJTgorCisgICBJTVBPUlRTCisgICAgICBNT0RVTEUtSURFTlRJVFksIG1pYi0yICAgICAgIEZST00gU05NUHYyLVNNSQorICAgICAgVEVYVFVBTC1DT05WRU5USU9OICAgICAgICAgICBGUk9NIFNOTVB2Mi1UQzsKKworICAgIGlhbmFJdHVBbGFybU51bWJlcnMgTU9EVUxFLUlERU5USVRZCisgICAgICAgIExBU1QtVVBEQVRFRCAiMjAwNDA5MDkwMDAwWiIgIC0tIFNlcHRlbWJlciAwOSwgMjAwNAorICAgICAgICBPUkdBTklaQVRJT04gIklBTkEiCisgICAgICAgIENPTlRBQ1QtSU5GTworICAgICAgICAgICAgIlBvc3RhbDogICAgSW50ZXJuZXQgQXNzaWduZWQgTnVtYmVycyBBdXRob3JpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmV0IENvcnBvcmF0aW9uIGZvciBBc3NpZ25lZCBOYW1lcworICAgICAgICAgICAgICAgICAgICAgICAgYW5kIE51bWJlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgIDQ2NzYgQWRtaXJhbHR5IFdheSwgU3VpdGUgMzMwCisgICAgICAgICAgICAgICAgICAgICAgICBNYXJpbmEgZGVsIFJleSwgQ0EgOTAyOTItNjYwMQorICAgICAgICAgICAgICAgICAgICAgICAgVVNBCisKKyAgICAgICAgICAgIFRlbDogICAgKzEgIDMxMC04MjMtOTM1OAorICAgICAgICAgICAgRS1NYWlsOiBpYW5hJmlhbmEub3JnIgorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBNSUIgbW9kdWxlIGRlZmluZXMgdGhlIElUVSBBbGFybQorICAgICAgICAgICAgdGV4dHVhbCBjb252ZW50aW9uIGZvciBvYmplY3RzIGV4cGVjdGVkIHRvIHJlcXVpcmUKKyAgICAgICAgICAgIHJlZ3VsYXIgZXh0ZW5zaW9uLgorCisgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIFRoZSBJbnRlcm5ldCBTb2NpZXR5ICgyMDA0KS4gIFRoZQorICAgICAgICAgICAgaW5pdGlhbCB2ZXJzaW9uIG9mIHRoaXMgTUlCIG1vZHVsZSB3YXMgcHVibGlzaGVkCisgICAgICAgICAgICBpbiBSRkMgMzg3Ny4gRm9yIGZ1bGwgbGVnYWwgbm90aWNlcyBzZWUgdGhlIFJGQworICAgICAgICAgICAgaXRzZWxmLiBTdXBwbGVtZW50YXJ5IGluZm9ybWF0aW9uIG1heSBiZSBhdmFpbGFibGUgb246CisgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuaWV0Zi5vcmcvY29weXJpZ2h0cy9pYW5hbWliLmh0bWwiCisgICAgICAgICBSRVZJU0lPTiAgICAiMjAwNDA5MDkwMDAwWiIKKyAgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAgIkluaXRpYWwgdmVyc2lvbiwgcHVibGlzaGVkIGFzIFJGQyAzODc3LiIKKyAgICAgICAgOjo9IHsgbWliLTIgMTE5IH0gCisKKworICAgSUFOQUl0dVByb2JhYmxlQ2F1c2UgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgICAgIFNUQVRVUyBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIklUVS1UIHByb2JhYmxlIGNhdXNlIHZhbHVlcy4gRHVwbGljYXRlIHZhbHVlcyBkZWZpbmVkIGluCisgICAgICAgICAgICBYLjczMyBhcmUgYXBwZW5kZWQgd2l0aCBYNzMzIHRvIGVuc3VyZSBzeW50YWN0aWMgdW5pcXVlbmVzcy4KKyAgICAgICAgICAgIFByb2JhYmxlIGNhdXNlIHZhbHVlIDAgaXMgcmVzZXJ2ZWQgZm9yIHNwZWNpYWwgcHVycG9zZXMuCisKKyAgICAgICAgICAgIFRoZSBJbnRlcm5ldCBBc3NpZ25lZCBOdW1iZXIgQXV0aG9yaXR5IChJQU5BKSBpcyByZXNwb25zaWJsZQorICAgICAgICAgICAgZm9yIHRoZSBhc3NpZ25tZW50IG9mIHRoZSBlbnVtZXJhdGlvbnMgaW4gdGhpcyBUQy4KKyAgICAgICAgICAgIElBTkFJdHVQcm9iYWJsZUNhdXNlIHZhbHVlIG9mIDAgaXMgcmVzZXJ2ZWQgZm9yIHNwZWNpYWwKKyAgICAgICAgICAgIHB1cnBvc2VzIGFuZCBNVVNUIE5PVCBiZSBhc3NpZ25lZC4KKworICAgICAgICAgICAgVmFsdWVzIG9mIElBTkFJdHVQcm9iYWJsZUNhdXNlIGluIHRoZSByYW5nZSAxIHRvIDEwMjMgYXJlCisgICAgICAgICAgICByZXNlcnZlZCBmb3IgY2F1c2VzIHRoYXQgY29ycmVzcG9uZCB0byBJVFUtVCBwcm9iYWJsZSBjYXVzZS4KKworICAgICAgICAgICAgQWxsIG90aGVyIHJlcXVlc3RzIGZvciBuZXcgY2F1c2VzIHdpbGwgYmUgaGFuZGxlZCBvbiBhCisgICAgICAgICAgICBmaXJzdC1jb21lLCBmaXJzdCBzZXJ2ZWQgYmFzaXMgYW5kIHdpbGwgYmUgYXNzaWduZWQKKyAgICAgICAgICAgIGVudW1lcmF0aW9uIHZhbHVlcyBzdGFydGluZyB3aXRoIDEwMjUuCisKKyAgICAgICAgICAgIFJlcXVlc3Qgc2hvdWxkICBjb21lIGluIHRoZSBmb3JtIG9mIHdlbGwtZm9ybWVkCisgICAgICAgICAgICBTTUkgW1JGQzI1NzhdIGZvciBlbnVtZXJhdGlvbiBuYW1lcyB0aGF0IGFyZSB1bmlxdWUgYW5kCisgICAgICAgICAgICBzdWZmaWNpZW50bHkgZGVzY3JpcHRpdmUuCisKKyAgICAgICAgICAgIFdoaWxlIHNvbWUgZWZmb3J0IHdpbGwgYmUgdGFrZW4gdG8gZW5zdXJlIHRoYXQgbmV3IHByb2JhYmxlCisgICAgICAgICAgICBjYXVzZXMgZG8gbm90IGNvbmNlcHR1YWxseSBkdXBsaWNhdGUgZXhpc3RpbmcgcHJvYmFibGUKKyAgICAgICAgICAgIGNhdXNlcyBpdCBpcyBhY2tub3dsZWRnZWQgdGhhdCB0aGUgZXhpc3RlbmNlIG9mIGNvbmNlcHR1YWwKKyAgICAgICAgICAgIGR1cGxpY2F0ZXMgaW4gdGhlIHN0YXJ0aW5nIHByb2JhYmxlIGNhdXNlIGxpc3QgaXMgYW4ga25vd24KKyAgICAgICAgICAgIGluZHVzdHJ5IHJlYWxpdHkuCisKKyAgICAgICAgICAgIFRvIGFpZCBJQU5BIGluIHRoZSBhZG1pbmlzdHJhdGlvbiBvZiBwcm9iYWJsZSBjYXVzZSBuYW1lcworICAgICAgICAgICAgYW5kIHZhbHVlcywgdGhlIE9QUyBBcmVhIERpcmVjdG9yIHdpbGwgYXBwb2ludCBvbmUgb3IgbW9yZQorICAgICAgICAgICAgZXhwZXJ0cyB0byBoZWxwIHJldmlldyByZXF1ZXN0cy4KKworICAgICAgICAgICAgU2VlIGh0dHA6Ly93d3cuaWFuYS5vcmciCisgICAgICAgUkVGRVJFTkNFCisgICAgICAgICAgICJJVFUgUmVjb21tZW5kYXRpb24gTS4zMTAwLCAnR2VuZXJpYyBOZXR3b3JrIEluZm9ybWF0aW9uCisgICAgICAgICAgICAgICBNb2RlbCcsIDE5OTUKKyAgICAgICAgICAgIElUVSBSZWNvbW1lbmRhdGlvbiBYLjczMywgJ0luZm9ybWF0aW9uIFRlY2hub2xvZ3kgLSBPcGVuCisgICAgICAgICAgICAgICBTeXN0ZW1zIEludGVyY29ubmVjdGlvbiAtIFN5c3RlbSBNYW5hZ2VtZW50OiBBbGFybQorICAgICAgICAgICAgICAgUmVwb3J0aW5nIEZ1bmN0aW9uJywgMTk5MgorICAgICAgICAgICAgSVRVIFJlY29tbWVuZGF0aW9uIFguNzM2LCAnSW5mb3JtYXRpb24gVGVjaG5vbG9neSAtIE9wZW4KKyAgICAgICAgICAgICAgIFN5c3RlbXMgSW50ZXJjb25uZWN0aW9uIC0gU3lzdGVtIE1hbmFnZW1lbnQ6IFNlY3VyaXR5CisgICAgICAgICAgICAgICBBbGFybSBSZXBvcnRpbmcgRnVuY3Rpb24nLCAxOTkyIgorCisgICAgICAgU1lOVEFYICAgICAgICAgSU5URUdFUgorICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgLS0gVGhlIGZvbGxvd2luZyBwcm9iYWJsZSBjYXVzZXMgd2VyZSBkZWZpbmVkIGluIE0uMzEwMAorICAgICAgICAgICAgICAgIGFJUyAgKDEpLAorICAgICAgICAgICAgICAgIGNhbGxTZXRVcEZhaWx1cmUgICgyKSwKKyAgICAgICAgICAgICAgICBkZWdyYWRlZFNpZ25hbCAgKDMpLAorICAgICAgICAgICAgICAgIGZhckVuZFJlY2VpdmVyRmFpbHVyZSAgKDQpLAorICAgICAgICAgICAgICAgIGZyYW1pbmdFcnJvciAgKDUpLAorICAgICAgICAgICAgICAgIGxvc3NPZkZyYW1lICg2KSwKKyAgICAgICAgICAgICAgICBsb3NzT2ZQb2ludGVyICAoNyksCisgICAgICAgICAgICAgICAgbG9zc09mU2lnbmFsICAoOCksCisgICAgICAgICAgICAgICAgcGF5bG9hZFR5cGVNaXNtYXRjaCAoOSksCisgICAgICAgICAgICAgICAgdHJhbnNtaXNzaW9uRXJyb3IgKDEwKSwKKyAgICAgICAgICAgICAgICByZW1vdGVBbGFybUludGVyZmFjZSAoMTEpLAorICAgICAgICAgICAgICAgIGV4Y2Vzc2l2ZUJFUiAgKDEyKSwKKyAgICAgICAgICAgICAgICBwYXRoVHJhY2VNaXNtYXRjaCAgKDEzKSwKKyAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZSAgKDE0KSwKKyAgICAgICAgICAgICAgICBzaWduYWxMYWJlbE1pc21hdGNoICgxNSksCisgICAgICAgICAgICAgICAgbG9zc09mTXVsdGlGcmFtZSAoMTYpLAorICAgICAgICAgICAgICAgIHJlY2VpdmVGYWlsdXJlICgxNyksCisgICAgICAgICAgICAgICAgdHJhbnNtaXRGYWlsdXJlICgxOCksCisgICAgICAgICAgICAgICAgbW9kdWxhdGlvbkZhaWx1cmUgKDE5KSwKKyAgICAgICAgICAgICAgICBkZW1vZHVsYXRpb25GYWlsdXJlICgyMCksCisgICAgICAgICAgICAgICAgYnJvYWRjYXN0Q2hhbm5lbEZhaWx1cmUgKDIxKSwKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uRXN0YWJsaXNobWVudEVycm9yICgyMiksCisgICAgICAgICAgICAgICAgaW52YWxpZE1lc3NhZ2VSZWNlaXZlZCAoMjMpLAorICAgICAgICAgICAgICAgIGxvY2FsTm9kZVRyYW5zbWlzc2lvbkVycm9yICgyNCksCisgICAgICAgICAgICAgICAgcmVtb3RlTm9kZVRyYW5zbWlzc2lvbkVycm9yICgyNSksCisgICAgICAgICAgICAgICAgcm91dGluZ0ZhaWx1cmUgKDI2KSwKKyAgICAtLVZhbHVlcyAyNy01MCBhcmUgcmVzZXJ2ZWQgZm9yIGNvbW11bmljYXRpb25zIGFsYXJtIHJlbGF0ZWQKKyAgICAtLXByb2JhYmxlIGNhdXNlcworICAgIC0tIFRoZSBmb2xsb3dpbmcgYXJlIHVzZWQgd2l0aCBlcXVpcG1lbnQgYWxhcm0uCisgICAgICAgICAgICAgICAgYmFja3BsYW5lRmFpbHVyZSAoNTEpLAorICAgICAgICAgICAgICAgIGRhdGFTZXRQcm9ibGVtICAoNTIpLAorICAgICAgICAgICAgICAgIGVxdWlwbWVudElkZW50aWZpZXJEdXBsaWNhdGlvbiAgKDUzKSwKKyAgICAgICAgICAgICAgICBleHRlcm5hbElGRGV2aWNlUHJvYmxlbSAgKDU0KSwKKyAgICAgICAgICAgICAgICBsaW5lQ2FyZFByb2JsZW0gKDU1KSwKKyAgICAgICAgICAgICAgICBtdWx0aXBsZXhlclByb2JsZW0gICg1NiksCisgICAgICAgICAgICAgICAgbkVJZGVudGlmaWVyRHVwbGljYXRpb24gICg1NyksCisgICAgICAgICAgICAgICAgcG93ZXJQcm9ibGVtICAoNTgpLAorICAgICAgICAgICAgICAgIHByb2Nlc3NvclByb2JsZW0gICg1OSksCisgICAgICAgICAgICAgICAgcHJvdGVjdGlvblBhdGhGYWlsdXJlICAoNjApLAorICAgICAgICAgICAgICAgIHJlY2VpdmVyRmFpbHVyZSAgKDYxKSwKKyAgICAgICAgICAgICAgICByZXBsYWNlYWJsZVVuaXRNaXNzaW5nICAoNjIpLAorICAgICAgICAgICAgICAgIHJlcGxhY2VhYmxlVW5pdFR5cGVNaXNtYXRjaCAoNjMpLAorICAgICAgICAgICAgICAgIHN5bmNocm9uaXphdGlvblNvdXJjZU1pc21hdGNoICAoNjQpLAorICAgICAgICAgICAgICAgIHRlcm1pbmFsUHJvYmxlbSAgICg2NSksCisgICAgICAgICAgICAgICAgdGltaW5nUHJvYmxlbSAgICg2NiksCisgICAgICAgICAgICAgICAgdHJhbnNtaXR0ZXJGYWlsdXJlICAoNjcpLAorICAgICAgICAgICAgICAgIHRydW5rQ2FyZFByb2JsZW0gICg2OCksCisgICAgICAgICAgICAgICAgcmVwbGFjZWFibGVVbml0UHJvYmxlbSAgKDY5KSwKKyAgICAgICAgICAgICAgICByZWFsVGltZUNsb2NrRmFpbHVyZSAoNzApLAorICAgIC0tQW4gZXF1aXBtZW50IGFsYXJtIHRvIGJlIGlzc3VlZCBpZiB0aGUgc3lzdGVtIGRldGVjdHMgdGhhdCB0aGUKKyAgICAtLXJlYWwgdGltZSBjbG9jayBoYXMgZmFpbGVkCisgICAgICAgICAgICAgICAgYW50ZW5uYUZhaWx1cmUgKDcxKSwKKyAgICAgICAgICAgICAgICBiYXR0ZXJ5Q2hhcmdpbmdGYWlsdXJlICg3MiksCisgICAgICAgICAgICAgICAgZGlza0ZhaWx1cmUgKDczKSwKKyAgICAgICAgICAgICAgICBmcmVxdWVuY3lIb3BwaW5nRmFpbHVyZSAoNzQpLAorICAgICAgICAgICAgICAgIGlPRGV2aWNlRXJyb3IgKDc1KSwKKyAgICAgICAgICAgICAgICBsb3NzT2ZTeW5jaHJvbmlzYXRpb24gKDc2KSwKKyAgICAgICAgICAgICAgICBsb3NzT2ZSZWR1bmRhbmN5ICg3NyksCisgICAgICAgICAgICAgICAgcG93ZXJTdXBwbHlGYWlsdXJlICg3OCksCisgICAgICAgICAgICAgICAgc2lnbmFsUXVhbGl0eUV2YWx1YXRpb25GYWlsdXJlICg3OSksCisgICAgICAgICAgICAgICAgdHJhbmNlaXZlckZhaWx1cmUgKDgwKSwKKyAgICAgICAgICAgICAgICBwcm90ZWN0aW9uTWVjaGFuaXNtRmFpbHVyZSAoODEpLAorICAgICAgICAgICAgICAgIHByb3RlY3RpbmdSZXNvdXJjZUZhaWx1cmUgKDgyKSwKKyAgICAtLSBWYWx1ZXMgODMtMTAwIGFyZSByZXNlcnZlZCBmb3IgZXF1aXBtZW50IGFsYXJtIHJlbGF0ZWQgcHJvYmFibGUKKyAgICAtLSBjYXVzZXMKKyAgICAtLSBUaGUgZm9sbG93aW5nIGFyZSB1c2VkIHdpdGggZW52aXJvbm1lbnRhbCBhbGFybS4KKyAgICAgICAgICAgICAgICBhaXJDb21wcmVzc29yRmFpbHVyZSAgKDEwMSksCisgICAgICAgICAgICAgICAgYWlyQ29uZGl0aW9uaW5nRmFpbHVyZSAgKDEwMiksCisgICAgICAgICAgICAgICAgYWlyRHJ5ZXJGYWlsdXJlICAgKDEwMyksCisgICAgICAgICAgICAgICAgYmF0dGVyeURpc2NoYXJnaW5nICAoMTA0KSwKKyAgICAgICAgICAgICAgICBiYXR0ZXJ5RmFpbHVyZSAgICgxMDUpLAorICAgICAgICAgICAgICAgIGNvbW1lcmNpYWxQb3dlckZhaWx1cmUgICgxMDYpLAorICAgICAgICAgICAgICAgIGNvb2xpbmdGYW5GYWlsdXJlICAoMTA3KSwKKyAgICAgICAgICAgICAgICBlbmdpbmVGYWlsdXJlICAoMTA4KSwKKyAgICAgICAgICAgICAgICBmaXJlRGV0ZWN0b3JGYWlsdXJlICAoMTA5KSwKKyAgICAgICAgICAgICAgICBmdXNlRmFpbHVyZSAgKDExMCksCisgICAgICAgICAgICAgICAgZ2VuZXJhdG9yRmFpbHVyZSAgKDExMSksCisgICAgICAgICAgICAgICAgbG93QmF0dGVyeVRocmVzaG9sZCAoMTEyKSwKKyAgICAgICAgICAgICAgICBwdW1wRmFpbHVyZSAgKDExMyksCisgICAgICAgICAgICAgICAgcmVjdGlmaWVyRmFpbHVyZSAgKDExNCksCisgICAgICAgICAgICAgICAgcmVjdGlmaWVySGlnaFZvbHRhZ2UgICgxMTUpLAorICAgICAgICAgICAgICAgIHJlY3RpZmllckxvd0ZWb2x0YWdlICAoMTE2KSwKKyAgICAgICAgICAgICAgICB2ZW50aWxhdGlvbnNTeXN0ZW1GYWlsdXJlICAoMTE3KSwKKyAgICAgICAgICAgICAgICBlbmNsb3N1cmVEb29yT3BlbiAgKDExOCksCisgICAgICAgICAgICAgICAgZXhwbG9zaXZlR2FzICAoMTE5KSwKKyAgICAgICAgICAgICAgICBmaXJlICgxMjApLAorICAgICAgICAgICAgICAgIGZsb29kICAgKDEyMSksCisgICAgICAgICAgICAgICAgaGlnaEh1bWlkaXR5ICAoMTIyKSwKKyAgICAgICAgICAgICAgICBoaWdoVGVtcGVyYXR1cmUgICgxMjMpLAorICAgICAgICAgICAgICAgIGhpZ2hXaW5kICAoMTI0KSwKKyAgICAgICAgICAgICAgICBpY2VCdWlsZFVwICAoMTI1KSwKKyAgICAgICAgICAgICAgICBpbnRydXNpb25EZXRlY3Rpb24gICgxMjYpLAorICAgICAgICAgICAgICAgIGxvd0Z1ZWwgICgxMjcpLAorICAgICAgICAgICAgICAgIGxvd0h1bWlkaXR5ICAoMTI4KSwKKyAgICAgICAgICAgICAgICBsb3dDYWJsZVByZXNzdXJlICAoMTI5KSwKKyAgICAgICAgICAgICAgICBsb3dUZW1wZXJhdHVlICAoMTMwKSwKKyAgICAgICAgICAgICAgICBsb3dXYXRlciAgKDEzMSksCisgICAgICAgICAgICAgICAgc21va2UgICgxMzIpLAorICAgICAgICAgICAgICAgIHRveGljR2FzICAoMTMzKSwKKyAgICAgICAgICAgICAgICBjb29saW5nU3lzdGVtRmFpbHVyZSAoMTM0KSwKKyAgICAgICAgICAgICAgICBleHRlcm5hbEVxdWlwbWVudEZhaWx1cmUgKDEzNSksCisgICAgICAgICAgICAgICAgZXh0ZXJuYWxQb2ludEZhaWx1cmUgKDEzNiksCisgICAgLS0gVmFsdWVzIDEzNy0xNTAgYXJlIHJlc2VydmVkIGZvciBlbnZpcm9ubWVudGFsIGFsYXJtIHJlbGF0ZWQKKyAgICAtLSBwcm9iYWJsZSBjYXVzZXMKKyAgICAtLSBUaGUgZm9sbG93aW5nIGFyZSB1c2VkIHdpdGggUHJvY2Vzc2luZyBlcnJvciBhbGFybS4KKyAgICAgICAgICAgICAgICBzdG9yYWdlQ2FwYWNpdHlQcm9ibGVtICgxNTEpLAorICAgICAgICAgICAgICAgIG1lbW9yeU1pc21hdGNoICAoMTUyKSwKKyAgICAgICAgICAgICAgICBjb3JydXB0RGF0YSAgKDE1MyksCisgICAgICAgICAgICAgICAgb3V0T2ZDUFVDeWNsZXMgICAoMTU0KSwKKyAgICAgICAgICAgICAgICBzZndyRW52aXJvbm1lbnRQcm9ibGVtICAoMTU1KSwKKyAgICAgICAgICAgICAgICBzZndyRG93bmxvYWRGYWlsdXJlICAoMTU2KSwKKyAgICAgICAgICAgICAgICBsb3NzT2ZSZWFsVGltZWwgKDE1NyksCisgICAgLS1BIHByb2Nlc3NpbmcgZXJyb3IgYWxhcm0gdG8gYmUgaXNzdWVkIGFmdGVyIHRoZSBzeXN0ZW0gaGFzCisgICAgLS1yZWluaXRpYWxpc2VkLiBUaGlzIHdpbGwgaW5kaWNhdGUKKyAgICAtLXRvIHRoZSBtYW5hZ2VtZW50IHN5c3RlbXMgdGhhdCB0aGUgdmlldyB0aGV5IGhhdmUgb2YgdGhlIG1hbmFnZWQKKyAgICAtLXN5c3RlbSBtYXkgbm8gbG9uZ2VyCisgICAgLS1iZSB2YWxpZC4gVXNhZ2UgZXhhbXBsZTogVGhlIG1hbmFnZWQKKyAgICAtLXN5c3RlbSBpc3N1ZXMgdGhpcyBhbGFybSBhZnRlciBhIHJlaW5pdGlhbGl6YXRpb24gd2l0aCBzZXZlcml0eQorICAgIC0td2FybmluZyB0byBpbmZvcm0gdGhlCisgICAgLS1tYW5hZ2VtZW50IHN5c3RlbSBhYm91dCB0aGUgZXZlbnQuIE5vIGNsZWFyaW5nIG5vdGlmaWNhdGlvbiB3aWxsCisgICAgLS1iZSBzZW50LgorICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uU3Vic3lzdGVtRmFpbHVyZSAoMTU4KSwKKyAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uT3JDdXN0b21pc2F0aW9uRXJyb3IgKDE1OSksCisgICAgICAgICAgICAgICAgZGF0YWJhc2VJbmNvbnNpc3RlbmN5ICgxNjApLAorICAgICAgICAgICAgICAgIGZpbGVFcnJvciAoMTYxKSwKKyAgICAgICAgICAgICAgICBvdXRPZk1lbW9yeSAoMTYyKSwKKyAgICAgICAgICAgICAgICBzb2Z0d2FyZUVycm9yICgxNjMpLAorICAgICAgICAgICAgICAgIHRpbWVvdXRFeHBpcmVkICgxNjQpLAorICAgICAgICAgICAgICAgIHVuZGVybGF5aW5nUmVzb3VyY2VVbmF2YWlsYWJsZSAoMTY1KSwKKyAgICAgICAgICAgICAgICB2ZXJzaW9uTWlzbWF0Y2ggKDE2NiksCisgICAgLS1WYWx1ZXMgMTY4LTIwMCBhcmUgcmVzZXJ2ZWQgZm9yIHByb2Nlc3NpbmcgZXJyb3IgYWxhcm0gcmVsYXRlZAorICAgIC0tIHByb2JhYmxlIGNhdXNlcy4KKyAgICAgICAgICAgICAgICBiYW5kd2lkdGhSZWR1Y2VkICgyMDEpLAorICAgICAgICAgICAgICAgIGNvbmdlc3Rpb24gKDIwMiksCisgICAgICAgICAgICAgICAgZXhjZXNzaXZlRXJyb3JSYXRlICgyMDMpLAorICAgICAgICAgICAgICAgIGV4Y2Vzc2l2ZVJlc3BvbnNlVGltZSAoMjA0KSwKKyAgICAgICAgICAgICAgICBleGNlc3NpdmVSZXRyYW5zbWlzc2lvblJhdGUgKDIwNSksCisgICAgICAgICAgICAgICAgcmVkdWNlZExvZ2dpbmdDYXBhYmlsaXR5ICgyMDYpLAorICAgICAgICAgICAgICAgIHN5c3RlbVJlc291cmNlc092ZXJsb2FkICgyMDcgKSwKKyAgICAgICAgICAgICAgICAtLSBUaGUgZm9sbG93aW5nIHdlcmUgZGVmaW5lZCBYLjczMworICAgICAgICAgICAgICAgIGFkYXB0ZXJFcnJvciAoNTAwKSwKKyAgICAgICAgICAgICAgICBhcHBsaWNhdGlvblN1YnN5c3RlbUZhaWx0dXJlICg1MDEpLAorICAgICAgICAgICAgICAgIGJhbmR3aWR0aFJlZHVjZWRYNzMzICg1MDIpLAorICAgICAgICAgICAgICAgIGNhbGxFc3RhYmxpc2htZW50RXJyb3IgKDUwMyksCisgICAgICAgICAgICAgICAgY29tbXVuaWNhdGlvbnNQcm90b2NvbEVycm9yICg1MDQpLAorICAgICAgICAgICAgICAgIGNvbW11bmljYXRpb25zU3Vic3lzdGVtRmFpbHVyZSAoNTA1KSwKKyAgICAgICAgICAgICAgICBjb25maWd1cmF0aW9uT3JDdXN0b21pemF0aW9uRXJyb3IgKDUwNiksCisgICAgICAgICAgICAgICAgY29uZ2VzdGlvblg3MzMgKDUwNyksCisgICAgICAgICAgICAgICAgY29ydXB0RGF0YSAoNTA4KSwKKyAgICAgICAgICAgICAgICBjcHVDeWNsZXNMaW1pdEV4Y2VlZGVkICg1MDkpLAorICAgICAgICAgICAgICAgIGRhdGFTZXRPck1vZGVtRXJyb3IgKDUxMCksCisgICAgICAgICAgICAgICAgZGVncmFkZWRTaWduYWxYNzMzICg1MTEpLAorICAgICAgICAgICAgICAgIGR0ZURjZUludGVyZmFjZUVycm9yICg1MTIpLAorICAgICAgICAgICAgICAgIGVuY2xvc3VyZURvb3JPcGVuWDczMyAoNTEzKSwKKyAgICAgICAgICAgICAgICBlcXVpcG1lbnRNYWxmdW5jdGlvbiAoNTE0KSwKKyAgICAgICAgICAgICAgICBleGNlc3NpdmVWaWJyYXRpb24gKDUxNSksCisgICAgICAgICAgICAgICAgZmlsZUVycm9yWDczMyAoNTE2KSwKKyAgICAgICAgICAgICAgICBmaXJlRGV0ZWN0ZWQgKDUxNyksCisgICAgICAgICAgICAgICAgZnJhbWluZ0Vycm9yWDczMyAoNTE4KSwKKyAgICAgICAgICAgICAgICBoZWF0aW5nVmVudENvb2xpbmdTeXN0ZW1Qcm9ibGVtICg1MTkpLAorICAgICAgICAgICAgICAgIGh1bWlkaXR5VW5hY2NlcHRhYmxlICg1MjApLAorICAgICAgICAgICAgICAgIGlucHV0T3V0cHV0RGV2aWNlRXJyb3IgKDUyMSksCisgICAgICAgICAgICAgICAgaW5wdXREZXZpY2VFcnJvciAoNTIyKSwKKyAgICAgICAgICAgICAgICBsYW5FcnJvciAoNTIzKSwKKyAgICAgICAgICAgICAgICBsZWFrRGV0ZWN0ZWQgKDUyNCksCisgICAgICAgICAgICAgICAgbG9jYWxOb2RlVHJhbnNtaXNzaW9uRXJyb3JYNzMzICg1MjUpLAorICAgICAgICAgICAgICAgIGxvc3NPZkZyYW1lWDczMyAoNTI2KSwKKyAgICAgICAgICAgICAgICBsb3NzT2ZTaWduYWxYNzMzICg1MjcpLAorICAgICAgICAgICAgICAgIG1hdGVyaWFsU3VwcGx5RXhoYXVzdGVkICg1MjgpLAorICAgICAgICAgICAgICAgIG11bHRpcGxleGVyUHJvYmxlbVg3MzMgKDUyOSksCisgICAgICAgICAgICAgICAgb3V0T2ZNZW1vcnlYNzMzICg1MzApLAorICAgICAgICAgICAgICAgIG91cHV0RGV2aWNlRXJyb3IgKDUzMSksCisgICAgICAgICAgICAgICAgcGVyZm9ybWFuY2VEZWdyYWRlZCAoNTMyKSwKKyAgICAgICAgICAgICAgICBwb3dlclByb2JsZW1zICg1MzMpLAorICAgICAgICAgICAgICAgIHByZXNzdXJlVW5hY2NlcHRhYmxlICg1MzQpLAorICAgICAgICAgICAgICAgIHByb2Nlc3NvclByb2JsZW1zICg1MzUpLAorICAgICAgICAgICAgICAgIHB1bXBGYWlsdXJlWDczMyAoNTM2KSwKKyAgICAgICAgICAgICAgICBxdWV1ZVNpemVFeGNlZWRlZCAoNTM3KSwKKyAgICAgICAgICAgICAgICByZWNlaXZlRmFpbHVyZVg3MzMgKDUzOCksCisgICAgICAgICAgICAgICAgcmVjZWl2ZXJGYWlsdXJlWDczMyAoNTM5KSwKKyAgICAgICAgICAgICAgICByZW1vdGVOb2RlVHJhbnNtaXNzaW9uRXJyb3JYNzMzICg1NDApLAorICAgICAgICAgICAgICAgIHJlc291cmNlQXRPck5lYXJpbmdDYXBhY2l0eSAoNTQxKSwKKyAgICAgICAgICAgICAgICByZXNwb25zZVRpbWVFeGVjZXNzaXZlICg1NDIpLAorICAgICAgICAgICAgICAgIHJldHJhbnNtaXNzaW9uUmF0ZUV4Y2Vzc2l2ZSAoNTQzKSwKKyAgICAgICAgICAgICAgICBzb2Z0d2FyZUVycm9yWDczMyAoNTQ0KSwKKyAgICAgICAgICAgICAgICBzb2Z0d2FyZVByb2dyYW1BYm5vcm1hbGx5VGVybWluYXRlZCAoNTQ1KSwKKyAgICAgICAgICAgICAgICBzb2Z0d2FyZVByb2dyYW1FcnJvciAoNTQ2KSwKKyAgICAgICAgICAgICAgICBzdG9yYWdlQ2FwYWNpdHlQcm9ibGVtWDczMyAoNTQ3KSwKKyAgICAgICAgICAgICAgICB0ZW1wZXJhdHVyZVVuYWNjZXB0YWJsZSAoNTQ4KSwKKyAgICAgICAgICAgICAgICB0aHJlc2hvbGRDcm9zc2VkICg1NDkpLAorICAgICAgICAgICAgICAgIHRpbWluZ1Byb2JsZW1YNzMzICg1NTApLAorICAgICAgICAgICAgICAgIHRveGljTGVha0RldGVjdGVkICg1NTEpLAorICAgICAgICAgICAgICAgIHRyYW5zbWl0RmFpbHVyZVg3MzMgKDU1MiksCisgICAgICAgICAgICAgICAgdHJhbnNtaXRlckZhaWx1cmUgKDU1MyksCisgICAgICAgICAgICAgICAgdW5kZXJseWluZ1Jlc291cmNlVW5hdmFpbGFibGUgKDU1NCksCisgICAgICAgICAgICAgICAgdmVyc2lvbk1pc21hdGNoWDczMyAoNTU1KSwKKyAgICAgICAgICAgICAgICAtLSBUaGUgZm9sbG93aW5nIGFyZSBkZWZpbmVkIGluIFguNzM2CisgICAgICAgICAgICAgICAgYXV0aGVudGljYXRpb25GYWlsdXJlICg2MDApLAorICAgICAgICAgICAgICAgIGJyZWFjaE9mQ29uZmlkZW50aWFsaXR5ICg2MDEpLAorICAgICAgICAgICAgICAgIGNhYmxlVGFtcGVyICg2MDIpLAorICAgICAgICAgICAgICAgIGRlbGF5ZWRJbmZvcm1hdGlvbiAoNjAzKSwKKyAgICAgICAgICAgICAgICBkZW5pYWxPZlNlcnZpY2UgKDYwNCksCisgICAgICAgICAgICAgICAgZHVwbGljYXRlSW5mb3JtYXRpb24gKDYwNSksCisgICAgICAgICAgICAgICAgaW5mb3JtYXRpb25NaXNzaW5nICg2MDYpLAorICAgICAgICAgICAgICAgIGluZm9ybWF0aW9uTW9kaWZpY2F0aW9uRGV0ZWN0ZWQgKDYwNyksCisgICAgICAgICAgICAgICAgaW5mb3JtYXRpb25PdXRPZlNlcXVlbmNlICg2MDgpLAorICAgICAgICAgICAgICAgIGtleUV4cGlyZWQgKDYwOSksCisgICAgICAgICAgICAgICAgbm9uUmVwdWRpYXRpb25GYWlsdXJlICg2MTApLAorICAgICAgICAgICAgICAgIG91dE9mSG91cnNBY3Rpdml0eSAoNjExKSwKKyAgICAgICAgICAgICAgICBvdXRPZlNlcnZpY2UgKDYxMiksCisgICAgICAgICAgICAgICAgcHJvY2VkdXJhbEVycm9yICg2MTMpLAorICAgICAgICAgICAgICAgIHVuYXV0aG9yaXplZEFjY2Vzc0F0dGVtcHQgKDYxNCksCisgICAgICAgICAgICAgICAgdW5leHBlY3RlZEluZm9ybWF0aW9uICg2MTUpLAorCisgICAgICAgICAgICAgICAgb3RoZXIgKDEwMjQpCisgICAgICAgICAgICAgICAgfQorCisgICBJQU5BSXR1RXZlbnRUeXBlIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAgICBTVEFUVVMgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAgICAiVGhlIElUVSBldmVudCBUeXBlIHZhbHVlcy4KKworICAgICAgICAgICAgICAgVGhlIEludGVybmV0IEFzc2lnbmVkIE51bWJlciBBdXRob3JpdHkgKElBTkEpIGlzCisgICAgICAgICAgICAgICByZXNwb25zaWJsZSBmb3IgdGhlIGFzc2lnbm1lbnQgb2YgdGhlIGVudW1lcmF0aW9ucworICAgICAgICAgICAgICAgaW4gdGhpcyBUQy4KKworICAgICAgICAgICAgICAgUmVxdWVzdCBzaG91bGQgIGNvbWUgaW4gdGhlIGZvcm0gb2Ygd2VsbC1mb3JtZWQKKyAgICAgICAgICAgICAgIFNNSSBbUkZDMjU3OF0gZm9yIGVudW1lcmF0aW9uIG5hbWVzIHRoYXQgYXJlIHVuaXF1ZQorICAgICAgICAgICAgICAgYW5kIHN1ZmZpY2llbnRseSBkZXNjcmlwdGl2ZS4KKworICAgICAgICAgICAgICAgU2VlIGh0dHA6Ly93d3cuaWFuYS5vcmcgIgorICAgICAgIFJFRkVSRU5DRQorICAgICAgICAgICAgICAiSVRVIFJlY29tbWVuZGF0aW9uIFguNzM2LCAnSW5mb3JtYXRpb24gVGVjaG5vbG9neSAtIE9wZW4KKyAgICAgICAgICAgICAgIFN5c3RlbXMgSW50ZXJjb25uZWN0aW9uIC0gU3lzdGVtIE1hbmFnZW1lbnQ6IFNlY3VyaXR5CisgICAgICAgICAgICAgICBBbGFybSBSZXBvcnRpbmcgRnVuY3Rpb24nLCAxOTkyIgorICAgICAgIFNZTlRBWCAgICAgICAgIElOVEVHRVIKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICBvdGhlciAoMSksCisgICAgICAgICAgICAgIGNvbW11bmljYXRpb25zQWxhcm0gKDIpLAorICAgICAgICAgICAgICBxdWFsaXR5T2ZTZXJ2aWNlQWxhcm0gKDMpLAorICAgICAgICAgICAgICBwcm9jZXNzaW5nRXJyb3JBbGFybSAoNCksCisgICAgICAgICAgICAgIGVxdWlwbWVudEFsYXJtICg1KSwKKyAgICAgICAgICAgICAgZW52aXJvbm1lbnRhbEFsYXJtICg2KSwKKyAgICAgICAgICAgICAgaW50ZWdyaXR5VmlvbGF0aW9uICg3KSwKKyAgICAgICAgICAgICAgb3BlcmF0aW9uYWxWaW9sYXRpb24gKDgpLAorICAgICAgICAgICAgICBwaHlzaWNhbFZpb2xhdGlvbiAoOSksCisgICAgICAgICAgICAgIHNlY3VyaXR5U2VydmljZU9yTWVjaGFuaXNtVmlvbGF0aW9uICgxMCksCisgICAgICAgICAgICAgIHRpbWVEb21haW5WaW9sYXRpb24gKDExKQorICAgICAgICAgICAgICB9CisKKyAgIEVORApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lBTkEvSUFOQS1MQU5HVUFHRS1NSUIgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvSUFOQS9JQU5BLUxBTkdVQUdFLU1JQgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjEwZjcyCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lBTkEvSUFOQS1MQU5HVUFHRS1NSUIKQEAgLTAsMCArMSwxMjcgQEAKKworICAgSUFOQS1MQU5HVUFHRS1NSUIgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKKyAgIElNUE9SVFMKKyAgICAgICBNT0RVTEUtSURFTlRJVFksIE9CSkVDVC1JREVOVElUWSwgbWliLTIKKyAgICAgICAgICAgRlJPTSBTTk1QdjItU01JOworCisgICBpYW5hTGFuZ3VhZ2VzIE1PRFVMRS1JREVOVElUWQorICAgICAgIExBU1QtVVBEQVRFRCAiMjAwMDA1MTAwMDAwWiIgIC0tIE1heSAxMCwgMjAwMAorICAgICAgIE9SR0FOSVpBVElPTiAiSUFOQSIKKyAgICAgICBDT05UQUNULUlORk8KKyAgICAgICAgICAgIkludGVybmV0IEFzc2lnbmVkIE51bWJlcnMgQXV0aG9yaXR5IChJQU5BKQorCisgICAgICAgICAgICBQb3N0YWw6IElDQU5OCisgICAgICAgICAgICAgICAgICAgIDQ2NzYgQWRtaXJhbHR5IFdheSwgU3VpdGUgMzMwCisgICAgICAgICAgICAgICAgICAgIE1hcmluYSBkZWwgUmV5LCBDQSA5MDI5MgorCisgICAgICAgICAgICBUZWw6ICAgICsxIDMxMCA4MjMgOTM1OCB4MjAKKyAgICAgICAgICAgIEUtTWFpbDogaWFuYSZpYW5hLm9yZyIKKyAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIE1JQiBtb2R1bGUgcmVnaXN0ZXJzIG9iamVjdCBpZGVudGlmaWVyIHZhbHVlcyBmb3IKKyAgICAgICAgICAgIHdlbGwta25vd24gcHJvZ3JhbW1pbmcgYW5kIHNjcmlwdGluZyBsYW5ndWFnZXMuIEV2ZXJ5CisgICAgICAgICAgICBsYW5ndWFnZSByZWdpc3RyYXRpb24gTVVTVCBkZXNjcmliZSB0aGUgZm9ybWF0IHVzZWQKKyAgICAgICAgICAgIHdoZW4gdHJhbnNmZXJyaW5nIHNjcmlwdHMgd3JpdHRlbiBpbiB0aGlzIGxhbmd1YWdlLgorCisgICAgICAgICAgICBBbnkgYWRkaXRpb25zIG9yIGNoYW5nZXMgdG8gdGhlIGNvbnRlbnRzIG9mIHRoaXMgTUlCCisgICAgICAgICAgICBtb2R1bGUgcmVxdWlyZSBEZXNpZ25hdGVkIEV4cGVydCBSZXZpZXcgYXMgZGVmaW5lZCBpbgorICAgICAgICAgICAgdGhlIEd1aWRlbGluZXMgZm9yIFdyaXRpbmcgSUFOQSBDb25zaWRlcmF0aW9ucyBTZWN0aW9uCisgICAgICAgICAgICBkb2N1bWVudC4gVGhlIERlc2lnbmF0ZWQgRXhwZXJ0IHdpbGwgYmUgc2VsZWN0ZWQgYnkKKyAgICAgICAgICAgIHRoZSBJRVNHIEFyZWEgRGlyZWN0b3Igb2YgdGhlIE9QUyBBcmVhLgorCisgICAgICAgICAgICBOb3RlLCB0aGlzIG1vZHVsZSBkb2VzIG5vdCBoYXZlIHRvIHJlZ2lzdGVyIGFsbCBwb3NzaWJsZQorICAgICAgICAgICAgbGFuZ3VhZ2VzIHNpbmNlIGxhbmd1YWdlcyBhcmUgaWRlbnRpZmllZCBieSBvYmplY3QKKyAgICAgICAgICAgIGlkZW50aWZpZXIgdmFsdWVzLiBJdCBpcyB0aGVyZWZvcmUgcG9zc2libGUgdG8gcmVnaXN0ZXJlZCAKKyAgICAgICAgICAgIGxhbmd1YWdlcyBpbiBwcml2YXRlIE9JRCB0cmVlcy4gVGhlIHJlZmVyZW5jZXMgZ2l2ZW4gYmVsb3cgYXJlIG5vdAorICAgICAgICAgICAgbm9ybWF0aXZlIHdpdGggcmVnYXJkIHRvIHRoZSBsYW5ndWFnZSB2ZXJzaW9uLiBPdGhlcgorICAgICAgICAgICAgcmVmZXJlbmNlcyBtaWdodCBiZSBiZXR0ZXIgc3VpdGVkIHRvIGRlc2NyaWJlIHNvbWUgbmV3ZXIgCisgICAgICAgICAgICB2ZXJzaW9ucyBvZiB0aGlzIGxhbmd1YWdlLiBUaGUgcmVmZXJlbmNlcyBhcmUgb25seQorICAgICAgICAgICAgcHJvdmlkZWQgYXMgYGEgcG9pbnRlciBpbnRvIHRoZSByaWdodCBkaXJlY3Rpb24nLiIKKworICAgIC0tIFJldmlzaW9uIGxvZywgaW4gcmV2ZXJzZSBjaHJvbm9sb2dpY2FsIG9yZGVyCisKKyAgICAgICBSRVZJU0lPTiAgICAiMjAwMDA1MTAwMDAwWiIgLS0gTWF5IDEwLCAyMDAwCisgICAgICAgREVTQ1JJUFRJT04gIkltcG9ydCBtaWItMiBpbnN0ZWFkIG9mIGV4cGVyaW1lbnRhbCwgc28gdGhhdAorICAgICAgICAgICAgICAgICAgICB0aGlzIG1vZHVsZSBjb21waWxlcyIKKworICAgICAgIFJFVklTSU9OICAgICIxOTk5MDkwOTA5MDBaIiAtLSBTZXB0ZW1iZXIgOSwgMTk5OQorICAgICAgIERFU0NSSVBUSU9OICJJbml0aWFsIHZlcnNpb24gYXMgcHVibGlzaGVkIGF0IHRpbWUgb2YKKyAgICAgICAgICAgICAgICAgICAgcHVibGljYXRpb24gb2YgUkZDIDI1OTEuIgorCisgICAgICAgOjo9IHsgbWliLTIgNzMgfQorCisKKyAgIGlhbmFMYW5nSmF2YUJ5dGVDb2RlIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJKYXZhIGJ5dGUgY29kZSB0byBiZSBwcm9jZXNzZWQgYnkgYSBKYXZhIHZpcnR1YWwgbWFjaGluZS4KKyAgICAgICAgICAgIEEgc2NyaXB0IHdyaXR0ZW4gaW4gSmF2YSBieXRlIGNvZGUgaXMgdHJhbnNmZXJyZWQgYnkgdXNpbmcKKyAgICAgICAgICAgIHRoZSBKYXZhIGFyY2hpdmUgZmlsZSBmb3JtYXQgKEpBUikuIgorICAgICAgIFJFRkVSRU5DRQorICAgICAgICAgICAiVGhlIEphdmEgVmlydHVhbCBNYWNoaW5lIFNwZWNpZmljYXRpb24uCisgICAgICAgICAgICBJU0JOIDAtMjAxLTYzNDUyLVgiCisgICAgICAgOjo9IHsgaWFuYUxhbmd1YWdlcyAxIH0KKworICAgaWFuYUxhbmdUY2wgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBUb29sIENvbW1hbmQgTGFuZ3VhZ2UgKFRjbCkuIEEgc2NyaXB0IHdyaXR0ZW4gaW4gdGhlCisgICAgICAgICAgICBUY2wgbGFuZ3VhZ2UgaXMgdHJhbnNmZXJyZWQgaW4gVGNsIHNvdXJjZSBjb2RlIGZvcm1hdC4iCisgICAgICAgUkVGRVJFTkNFCisgICAgICAgICAgICJUY2wgYW5kIHRoZSBUayBUb29sa2l0LgorICAgICAgICAgICAgSVNCTiAwLTIwMS02MzMzNy1YIgorICAgICAgIDo6PSB7IGlhbmFMYW5ndWFnZXMgMiB9CisKKyAgIGlhbmFMYW5nUGVybCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIFBlcmwgbGFuZ3VhZ2UuIEEgc2NyaXB0IHdyaXR0ZW4gaW4gdGhlIFBlcmwgbGFuZ3VhZ2UKKyAgICAgICAgICAgIGlzIHRyYW5zZmVycmVkIGluIFBlcmwgc291cmNlIGNvZGUgZm9ybWF0LiIKKyAgICAgICBSRUZFUkVOQ0UKKyAgICAgICAgICAgIlByb2dyYW1taW5nIFBlcmwuCisgICAgICAgICAgICBJU0JOIDEtNTY1OTItMTQ5LTYiCisgICAgICAgOjo9IHsgaWFuYUxhbmd1YWdlcyAzIH0KKworICAgaWFuYUxhbmdTY2hlbWUgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBTY2hlbWUgbGFuZ3VhZ2UuIEEgc2NyaXB0IHdyaXR0ZW4gaW4gdGhlIFNjaGVtZQorICAgICAgICAgICAgbGFuZ3VhZ2UgaXMgdHJhbnNmZXJyZWQgaW4gU2NoZW1lIHNvdXJjZSBjb2RlIGZvcm1hdC4iCisgICAgICAgUkVGRVJFTkNFCisgICAgICAgICAgICJUaGUgUmV2aXNlZF40IFJlcG9ydCBvbiB0aGUgQWxnb3JpdGhtaWMgTGFuZ3VhZ2UgU2NoZW1lLgorICAgICAgICAgICAgTUlUIFByZXNzIgorICAgICAgIDo6PSB7IGlhbmFMYW5ndWFnZXMgNCB9CisKKyAgIGlhbmFMYW5nU1JTTCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIFNOTVAgU2NyaXB0IExhbmd1YWdlIGRlZmluZWQgYnkgU05NUCBSZXNlYXJjaC4gQQorICAgICAgICAgICAgc2NyaXB0IHdyaXR0ZW4gaW4gdGhlIFNOTVAgU2NyaXB0IExhbmd1YWdlIGlzIHRyYW5zZmVycmVkCisgICAgICAgICAgICBpbiB0aGUgU05NUCBTY3JpcHQgTGFuZ3VhZ2Ugc291cmNlIGNvZGUgZm9ybWF0LiIKKyAgICAgICA6Oj0geyBpYW5hTGFuZ3VhZ2VzIDUgfQorCisgICBpYW5hTGFuZ1BTTCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIFBhdHJvbCBTY3JpcHQgTGFuZ3VhZ2UgZGVmaW5lZCBieSBCTUMgU29mdHdhcmUuIEEgc2NyaXB0CisgICAgICAgICAgICB3cml0dGVuIGluIHRoZSBQYXRyb2wgU2NyaXB0IExhbmd1YWdlIGlzIHRyYW5zZmVycmVkIGluIHRoZQorICAgICAgICAgICAgUGF0cm9sIFNjcmlwdCBMYW5ndWFnZSBzb3VyY2UgY29kZSBmb3JtYXQuIgorICAgICAgIFJFRkVSRU5DRQorICAgICAgICAgICAiUEFUUk9MIFNjcmlwdCBMYW5ndWFnZSBSZWZlcmVuY2UgTWFudWFsLCBWZXJzaW9uIDMuMCwKKyAgICAgICAgICAgIE5vdmVtYmVyIDMwLCAxOTk1LiBCTUMgU29mdHdhcmUsIEluYy4gMjEwMSBDaXR5IFdlc3QgQmx2ZC4sCisgICAgICAgICAgICBIb3VzdG9uLCBUZXhhcyA3NzA0Mi4iCisgICAgICAgOjo9IHsgaWFuYUxhbmd1YWdlcyA2IH0KKworICAgaWFuYUxhbmdTTVNMIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgU3lzdGVtcyBNYW5hZ2VtZW50IFNjcmlwdGluZyBMYW5ndWFnZS4gQSBzY3JpcHQgd3JpdHRlbgorICAgICAgICAgICAgaW4gdGhlIFNNU0wgbGFuZ3VhZ2UgaXMgdHJhbnNmZXJyZWQgaW4gdGhlIFNNU0wgc291cmNlIGNvZGUKKyAgICAgICAgICAgIGZvcm1hdC4iCisgICAgICAgUkVGRVJFTkNFCisgICAgICAgICAgICJJU08vSVRVIENvbW1hbmQgU2VxdWVuY2VyLgorICAgICAgICAgICAgSVNPIDEwMTY0LTIxIG9yIElUVSBYLjc1MyIKKyAgICAgICA6Oj0geyBpYW5hTGFuZ3VhZ2VzIDcgfQorCisgICBFTkQKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lBTkEvSUFOQS1NQUxMT0MtTUlCIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lBTkEvSUFOQS1NQUxMT0MtTUlCCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NjlhMzYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvSUFOQS9JQU5BLU1BTExPQy1NSUIKQEAgLTAsMCArMSw2NyBAQAorCitJQU5BLU1BTExPQy1NSUIgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKK0lNUE9SVFMKKyAgICBNT0RVTEUtSURFTlRJVFksIG1pYi0yICAgICAgICAgICBGUk9NIFNOTVB2Mi1TTUkKKyAgICBURVhUVUFMLUNPTlZFTlRJT04gICAgICAgICAgICAgICBGUk9NIFNOTVB2Mi1UQzsKKworaWFuYU1hbGxvY01JQiBNT0RVTEUtSURFTlRJVFkKKyAgICBMQVNULVVQREFURUQgIjIwMDMwMTI3MTIwMFoiIC0tIEphbnVhcnkgMjcsIDIwMDMKKyAgICBPUkdBTklaQVRJT04gIklBTkEiCisgICAgQ09OVEFDVC1JTkZPCisgICAgICAgICAgICAiIEludGVybmV0IEFzc2lnbmVkIE51bWJlcnMgQXV0aG9yaXR5CisgICAgICAgICAgICAgIEludGVybmV0IENvcnBvcmF0aW9uIGZvciBBc3NpZ25lZCBOYW1lcyBhbmQgTnVtYmVycworICAgICAgICAgICAgICA0Njc2IEFkbWlyYWx0eSBXYXksIFN1aXRlIDMzMAorICAgICAgICAgICAgICBNYXJpbmEgZGVsIFJleSwgQ0EgOTAyOTItNjYwMQorCisgICAgICAgICAgICAgIFBob25lOiArMSAzMTAgODIzIDkzNTgKKyAgICAgICAgICAgICAgRU1haWw6IGlhbmEmaWFuYS5vcmciCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIE1JQiBtb2R1bGUgZGVmaW5lcyB0aGUgSUFOQXNjb3BlU291cmNlIGFuZAorICAgICAgICAgICAgSUFOQW1hbGxvY1JhbmdlU291cmNlIHRleHR1YWwgY29udmVudGlvbnMgZm9yIHVzZSBpbiBNSUJzCisgICAgICAgICAgICB3aGljaCBuZWVkIHRvIGlkZW50aWZ5IHdheXMgb2YgbGVhcm5pbmcgbXVsdGljYXN0IHNjb3BlIGFuZAorICAgICAgICAgICAgcmFuZ2UgaW5mb3JtYXRpb24uCisKKyAgICAgICAgICAgIEFueSBhZGRpdGlvbnMgb3IgY2hhbmdlcyB0byB0aGUgY29udGVudHMgb2YgdGhpcyBNSUIgbW9kdWxlCisgICAgICAgICAgICByZXF1aXJlIGVpdGhlciBwdWJsaWNhdGlvbiBvZiBhbiBSRkMsIG9yIERlc2lnbmF0ZWQgRXhwZXJ0CisgICAgICAgICAgICBSZXZpZXcgYXMgZGVmaW5lZCBpbiB0aGUgR3VpZGVsaW5lcyBmb3IgV3JpdGluZyBJQU5BCisgICAgICAgICAgICBDb25zaWRlcmF0aW9ucyBTZWN0aW9uIGRvY3VtZW50LiAgVGhlIERlc2lnbmF0ZWQgRXhwZXJ0IHdpbGwKKyAgICAgICAgICAgIGJlIHNlbGVjdGVkIGJ5IHRoZSBJRVNHIEFyZWEgRGlyZWN0b3Iocykgb2YgdGhlIFRyYW5zcG9ydAorICAgICAgICAgICAgQXJlYS4iCisKKyAgICAtLSByZXZpc2lvbiBsb2cKKworICAgIFJFVklTSU9OICAgICAiMjAwMzAxMjcxMjAwWiIgLS0gSmFudWFyeSAyNywgMjAwMworICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiSW5pdGlhbCB2ZXJzaW9uLiIKKyAgICA6Oj0geyBtaWItMiAxMDIgfSAKKworSUFOQXNjb3BlU291cmNlIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgIFNUQVRVUyAgY3VycmVudAorICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgc291cmNlIG9mIG11bHRpY2FzdCBzY29wZSBpbmZvcm1hdGlvbi4iCisgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICBvdGhlcigxKSwgIC0tIG5vbmUgb2YgdGhlIGZvbGxvd2luZworICAgICAgICAgICAgICBtYW51YWwoMiksIC0tIHN0YXRpY2FsbHkgY29uZmlndXJlZAorICAgICAgICAgICAgICBsb2NhbCgzKSwgIC0tIGF1dG9tYXRpY2FsbHkgYWRkZWQgYnkgdGhlIHN5c3RlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAtLSBzdWNoIGFzIGEgU291cmNlLVNwZWNpZmljIE11bHRpY2FzdAorICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHNjb3BlCisgICAgICAgICAgICAgIG16YXAoNCksICAgLS0gTVpBUAorICAgICAgICAgICAgICBtYWRjYXAoNSkgIC0tIE1BRENBUAorICAgICAgICAgICB9CisKK0lBTkFtYWxsb2NSYW5nZVNvdXJjZSA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICBTVEFUVVMgIGN1cnJlbnQKKyAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHNvdXJjZSBvZiBtdWx0aWNhc3QgYWRkcmVzcyBhbGxvY2F0aW9uIHJhbmdlCisgICAgICAgICAgICBpbmZvcm1hdGlvbi4iCisgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICBvdGhlcigxKSwgIC0tIG5vbmUgb2YgdGhlIGZvbGxvd2luZworICAgICAgICAgICAgICBtYW51YWwoMiksIC0tIHN0YXRpY2FsbHkgY29uZmlndXJlZAorICAgICAgICAgICAgICBsb2NhbCgzKSAgIC0tIGF1dG9tYXRpY2FsbHkgYWRkZWQgYnkgdGhlIHN5c3RlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAtLSBzdWNoIGFzIGEgU291cmNlLVNwZWNpZmljIE11bHRpY2FzdAorICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHJhbmdlCisgICAgICAgICAgIH0KKworRU5ECisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BL0lBTkEtTUFVLU1JQiBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BL0lBTkEtTUFVLU1JQgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWMzZjRhCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lBTkEvSUFOQS1NQVUtTUlCCkBAIC0wLDAgKzEsNzcwIEBACitJQU5BLU1BVS1NSUIgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKKyAgICAgSU1QT1JUUworICAgICAgIE1PRFVMRS1JREVOVElUWSwgT0JKRUNULUlERU5USVRZLCBtaWItMgorICAgICAgICAgRlJPTSBTTk1QdjItU01JCisgICAgICAgVEVYVFVBTC1DT05WRU5USU9OCisgICAgICAgICBGUk9NIFNOTVB2Mi1UQworICAgICAgIDsKKworICAgICBpYW5hTWF1TUlCIE1PRFVMRS1JREVOVElUWQorICAgICAgIExBU1QtVVBEQVRFRCAiMjAwNzA0MjEwMDAwWiIgIC0tIEFwcmlsIDIxLCAyMDA3CisgICAgICAgT1JHQU5JWkFUSU9OICJJQU5BIgorICAgICAgIENPTlRBQ1QtSU5GTyAiICAgICAgICBJbnRlcm5ldCBBc3NpZ25lZCBOdW1iZXJzIEF1dGhvcml0eQorCisgICAgICAgICAgICAgICAgICAgICBQb3N0YWw6IElDQU5OCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ2NzYgQWRtaXJhbHR5IFdheSwgU3VpdGUgMzMwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmluYSBkZWwgUmV5LCBDQSA5MDI5MgorCisgICAgICAgICAgICAgICAgICAgICAgICBUZWw6ICsxLTMxMC04MjMtOTM1OAorICAgICAgICAgICAgICAgICAgICAgIEVNYWlsOiBpYW5hJmlhbmEub3JnIgorCisgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICJUaGlzIE1JQiBtb2R1bGUgZGVmaW5lcyBkb3QzTWF1VHlwZSBPQkpFQ1QtSURFTlRJVElFUyBhbmQKKyAgICAgICAgIElBTkFpZk1hdUxpc3RCaXRzLCBJQU5BaWZNYXVNZWRpYUF2YWlsYWJsZSwKKyAgICAgICAgIElBTkFpZk1hdUF1dG9OZWdDYXBCaXRzLCBhbmQgSUFOQWlmSmFja1R5cGUKKworICAgICAgICAgVEVYVFVBTC1DT05WRU5USU9Ocywgc3BlY2lmeWluZyBlbnVtZXJhdGVkIHZhbHVlcyBvZiB0aGUKKyAgICAgICAgIGlmTWF1VHlwZUxpc3RCaXRzLCBpZk1hdU1lZGlhQXZhaWxhYmxlIC8gcnBNYXVNZWRpYUF2YWlsYWJsZSwKKyAgICAgICAgIGlmTWF1QXV0b05lZ0NhcGFiaWxpdHlCaXRzIC8gaWZNYXVBdXRvTmVnQ2FwQWR2ZXJ0aXNlZEJpdHMgLworICAgICAgICAgaWZNYXVBdXRvTmVnQ2FwUmVjZWl2ZWRCaXRzIGFuZCBpZkphY2tUeXBlIC8gcnBKYWNrVHlwZSBvYmplY3RzCisgICAgICAgICByZXNwZWN0aXZlbHksIGRlZmluZWQgaW4gdGhlIE1BVS1NSUIuCisKKyAgICAgICAgIEl0IGlzIGludGVuZGVkIHRoYXQgZWFjaCBuZXcgTUFVIHR5cGUsIE1lZGlhIEF2YWlsYWJpbGl0eQorICAgICAgICAgc3RhdGUsIEF1dG8gTmVnb3RpYXRpb24gY2FwYWJpbGl0eSBhbmQvb3IgSmFjayB0eXBlIGRlZmluZWQgYnkKKyAgICAgICAgIHRoZSBJRUVFIDgwMi4zIHdvcmtpbmcgZ3JvdXAgYW5kIGFwcHJvdmVkIGZvciBwdWJsaWNhdGlvbiBpbiBhCisgICAgICAgICByZXZpc2lvbiBvZiBJRUVFIFN0ZCA4MDIuMyB3aWxsIGJlIGFkZGVkIHRvIHRoaXMgTUlCIG1vZHVsZSwKKyAgICAgICAgIHByb3ZpZGVkIHRoYXQgaXQgaXMgc3VpdGFibGUgZm9yIGJlaW5nIG1hbmFnZWQgYnkgdGhlIGJhc2UKKyAgICAgICAgIG9iamVjdHMgaW4gdGhlIE1BVS1NSUIuICBBbiBFeHBlcnQgUmV2aWV3LCBhcyBkZWZpbmVkIGluCisgICAgICAgICBSRkMgMjQzNCBbUkZDMjQzNF0sIGlzIFJFUVVJUkVEIGZvciBzdWNoIGFkZGl0aW9ucy4KKworICAgICAgICAgVGhlIGZvbGxvd2luZyByZWZlcmVuY2UgaXMgdXNlZCB0aHJvdWdob3V0IHRoaXMgTUlCIG1vZHVsZToKKworICAgICAgICAgW0lFRUU4MDIuM10gcmVmZXJzIHRvOgorICAgICAgICAgICAgSUVFRSBTdGQgODAyLjMsIDIwMDUgRWRpdGlvbjogJ0lFRUUgU3RhbmRhcmQgZm9yCisgICAgICAgICAgICBJbmZvcm1hdGlvbiB0ZWNobm9sb2d5IC0gVGVsZWNvbW11bmljYXRpb25zIGFuZCBpbmZvcm1hdGlvbgorICAgICAgICAgICAgZXhjaGFuZ2UgYmV0d2VlbiBzeXN0ZW1zIC0gTG9jYWwgYW5kIG1ldHJvcG9saXRhbiBhcmVhCisgICAgICAgICAgICBuZXR3b3JrcyAtIFNwZWNpZmljIHJlcXVpcmVtZW50cyAtCisgICAgICAgICAgICBQYXJ0IDM6IENhcnJpZXIgc2Vuc2UgbXVsdGlwbGUgYWNjZXNzIHdpdGggY29sbGlzaW9uCisgICAgICAgICAgICBkZXRlY3Rpb24gKENTTUEvQ0QpIGFjY2VzcyBtZXRob2QgYW5kIHBoeXNpY2FsIGxheWVyCisgICAgICAgICAgICBzcGVjaWZpY2F0aW9ucycuCisKKyAgICAgICAgIFRoaXMgcmVmZXJlbmNlIHNob3VsZCBiZSB1cGRhdGVkIGFzIGFwcHJvcHJpYXRlIHdoZW4gbmV3CisgICAgICAgICBNQVUgdHlwZXMsIE1lZGlhIEF2YWlsYWJpbGl0eSBzdGF0ZXMsIEF1dG8gTmVnb3RpYXRpb24KKyAgICAgICAgIGNhcGFiaWxpdGllcywgYW5kL29yIEphY2sgdHlwZXMgYXJlIGFkZGVkIHRvIHRoaXMgTUlCIG1vZHVsZS4KKworICAgICAgICAgQ29weXJpZ2h0IChDKSBUaGUgSUVURiBUcnVzdCAoMjAwNykuCisgICAgICAgICBUaGUgaW5pdGlhbCB2ZXJzaW9uIG9mIHRoaXMgTUlCIG1vZHVsZSB3YXMgcHVibGlzaGVkIGluCisgICAgICAgICBSRkMgNDgzNjsgZm9yIGZ1bGwgbGVnYWwgbm90aWNlcyBzZWUgdGhlIFJGQyBpdHNlbGYuCisgICAgICAgICBTdXBwbGVtZW50YXJ5IGluZm9ybWF0aW9uIG1heSBiZSBhdmFpbGFibGUgYXQ6CisgICAgICAgICBodHRwOi8vd3d3LmlldGYub3JnL2NvcHlyaWdodHMvaWFuYW1pYi5odG1sIgorCisgICAgICAgUkVWSVNJT04gICAgICIyMDA3MDQyMTAwMDBaIiAgLS0gQXByaWwgMjEsIDIwMDcKKyAgICAgICBERVNDUklQVElPTiAgIkluaXRpYWwgdmVyc2lvbiBvZiB0aGlzIE1JQiBhcyBwdWJsaXNoZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgIFJGQyA0ODM2LiIKKyAgICAgICA6Oj0geyBtaWItMiAxNTQgfQorCisgICAgIC0tIFRleHR1YWwgQ29udmVudGlvbnMKKworICAgICBJQU5BaWZNYXVUeXBlTGlzdEJpdHMgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICJUaGlzIGRhdGEgdHlwZSBpcyB1c2VkIGFzIHRoZSBzeW50YXggb2YgdGhlIGlmTWF1VHlwZUxpc3RCaXRzCisgICAgICAgICBvYmplY3QgaW4gdGhlICh1cGRhdGVkKSBkZWZpbml0aW9uIG9mIE1BVS1NSUIncyBpZk1hdVRhYmxlLgorCisgICAgICAgICBUaGUgbW9zdCByZWNlbnQgdmVyc2lvbiBvZiB0aGlzIHRleHR1YWwgY29udmVudGlvbiBpcyBhdmFpbGFibGUKKyAgICAgICAgIGluIHRoZSBvbmxpbmUgdmVyc2lvbiBvZiB0aGlzIE1JQiBtb2R1bGUgb24gdGhlIElBTkEgd2ViIHNpdGUuCisKKyAgICAgICAgIFJlcXVlc3RzIGZvciBuZXcgdmFsdWVzIHNob3VsZCBiZSBtYWRlIHRvIElBTkEgdmlhIGVtYWlsCisgICAgICAgICAoaWFuYSZpYW5hLm9yZykuCisKKyAgICAgICAgIE5vdGUgdGhhdCBjaGFuZ2VzIGluIHRoaXMgdGV4dHVhbCBjb252ZW50aW9uIFNIQUxMIGJlCisgICAgICAgICBzeW5jaHJvbml6ZWQgd2l0aCByZWxldmFudCBjaGFuZ2VzIGluIHRoZSBkb3QzTWF1VHlwZQorICAgICAgICAgT0JKRUNULUlERU5USVRJRVMuIgorICAgICAgIFJFRkVSRU5DRQorICAgICAgICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDMwLjUuMS4xLjIiCisgICAgICAgU1lOVEFYICAgICAgIEJJVFMgeworICAgICAgICAgICAgICBiT3RoZXIoMCksICAgICAgICAgIC0tIG90aGVyIG9yIHVua25vd24KKyAgICAgICAgICAgICAgYkFVSSgxKSwgICAgICAgICAgICAtLSBBVUkKKyAgICAgICAgICAgICAgYjEwYmFzZTUoMiksICAgICAgICAtLSAxMEJBU0UtNQorICAgICAgICAgICAgICBiRm9pcmwoMyksICAgICAgICAgIC0tIEZPSVJMCisKKyAgICAgICAgICAgICAgYjEwYmFzZTIoNCksICAgICAgICAtLSAxMEJBU0UtMgorICAgICAgICAgICAgICBiMTBiYXNlVCg1KSwgICAgICAgIC0tIDEwQkFTRS1UIGR1cGxleCBtb2RlIHVua25vd24KKyAgICAgICAgICAgICAgYjEwYmFzZUZQKDYpLCAgICAgICAtLSAxMEJBU0UtRlAKKyAgICAgICAgICAgICAgYjEwYmFzZUZCKDcpLCAgICAgICAtLSAxMEJBU0UtRkIKKyAgICAgICAgICAgICAgYjEwYmFzZUZMKDgpLCAgICAgICAtLSAxMEJBU0UtRkwgZHVwbGV4IG1vZGUgdW5rbm93bgorICAgICAgICAgICAgICBiMTBicm9hZDM2KDkpLCAgICAgIC0tIDEwQlJPQUQzNgorICAgICAgICAgICAgICBiMTBiYXNlVEhEKDEwKSwgICAgIC0tIDEwQkFTRS1UICBoYWxmIGR1cGxleCBtb2RlCisgICAgICAgICAgICAgIGIxMGJhc2VURkQoMTEpLCAgICAgLS0gMTBCQVNFLVQgIGZ1bGwgZHVwbGV4IG1vZGUKKyAgICAgICAgICAgICAgYjEwYmFzZUZMSEQoMTIpLCAgICAtLSAxMEJBU0UtRkwgaGFsZiBkdXBsZXggbW9kZQorICAgICAgICAgICAgICBiMTBiYXNlRkxGRCgxMyksICAgIC0tIDEwQkFTRS1GTCBmdWxsIGR1cGxleCBtb2RlCisgICAgICAgICAgICAgIGIxMDBiYXNlVDQoMTQpLCAgICAgLS0gMTAwQkFTRS1UNAorICAgICAgICAgICAgICBiMTAwYmFzZVRYSEQoMTUpLCAgIC0tIDEwMEJBU0UtVFggaGFsZiBkdXBsZXggbW9kZQorICAgICAgICAgICAgICBiMTAwYmFzZVRYRkQoMTYpLCAgIC0tIDEwMEJBU0UtVFggZnVsbCBkdXBsZXggbW9kZQorICAgICAgICAgICAgICBiMTAwYmFzZUZYSEQoMTcpLCAgIC0tIDEwMEJBU0UtRlggaGFsZiBkdXBsZXggbW9kZQorICAgICAgICAgICAgICBiMTAwYmFzZUZYRkQoMTgpLCAgIC0tIDEwMEJBU0UtRlggZnVsbCBkdXBsZXggbW9kZQorICAgICAgICAgICAgICBiMTAwYmFzZVQySEQoMTkpLCAgIC0tIDEwMEJBU0UtVDIgaGFsZiBkdXBsZXggbW9kZQorICAgICAgICAgICAgICBiMTAwYmFzZVQyRkQoMjApLCAgIC0tIDEwMEJBU0UtVDIgZnVsbCBkdXBsZXggbW9kZQorCisgICAgICAgICAgICAgIGIxMDAwYmFzZVhIRCgyMSksICAgLS0gMTAwMEJBU0UtWCBoYWxmIGR1cGxleCBtb2RlCisgICAgICAgICAgICAgIGIxMDAwYmFzZVhGRCgyMiksICAgLS0gMTAwMEJBU0UtWCBmdWxsIGR1cGxleCBtb2RlCisgICAgICAgICAgICAgIGIxMDAwYmFzZUxYSEQoMjMpLCAgLS0gMTAwMEJBU0UtTFggaGFsZiBkdXBsZXggbW9kZQorICAgICAgICAgICAgICBiMTAwMGJhc2VMWEZEKDI0KSwgIC0tIDEwMDBCQVNFLUxYIGZ1bGwgZHVwbGV4IG1vZGUKKyAgICAgICAgICAgICAgYjEwMDBiYXNlU1hIRCgyNSksICAtLSAxMDAwQkFTRS1TWCBoYWxmIGR1cGxleCBtb2RlCisgICAgICAgICAgICAgIGIxMDAwYmFzZVNYRkQoMjYpLCAgLS0gMTAwMEJBU0UtU1ggZnVsbCBkdXBsZXggbW9kZQorICAgICAgICAgICAgICBiMTAwMGJhc2VDWEhEKDI3KSwgIC0tIDEwMDBCQVNFLUNYIGhhbGYgZHVwbGV4IG1vZGUKKyAgICAgICAgICAgICAgYjEwMDBiYXNlQ1hGRCgyOCksICAtLSAxMDAwQkFTRS1DWCBmdWxsIGR1cGxleCBtb2RlCisgICAgICAgICAgICAgIGIxMDAwYmFzZVRIRCgyOSksICAgLS0gMTAwMEJBU0UtVCBoYWxmIGR1cGxleCBtb2RlCisgICAgICAgICAgICAgIGIxMDAwYmFzZVRGRCgzMCksICAgLS0gMTAwMEJBU0UtVCBmdWxsIGR1cGxleCBtb2RlCisKKyAgICAgICAgICAgICAgYjEwR2Jhc2VYKDMxKSwgICAgICAtLSAxMEdCQVNFLVgKKyAgICAgICAgICAgICAgYjEwR2Jhc2VMWDQoMzIpLCAgICAtLSAxMEdCQVNFLUxYNAorCisgICAgICAgICAgICAgIGIxMEdiYXNlUigzMyksICAgICAgLS0gMTBHQkFTRS1SCisgICAgICAgICAgICAgIGIxMEdiYXNlRVIoMzQpLCAgICAgLS0gMTBHQkFTRS1FUgorICAgICAgICAgICAgICBiMTBHYmFzZUxSKDM1KSwgICAgIC0tIDEwR0JBU0UtTFIKKyAgICAgICAgICAgICAgYjEwR2Jhc2VTUigzNiksICAgICAtLSAxMEdCQVNFLVNSCisgICAgICAgICAgICAgIGIxMEdiYXNlVygzNyksICAgICAgLS0gMTBHQkFTRS1XCisgICAgICAgICAgICAgIGIxMEdiYXNlRVcoMzgpLCAgICAgLS0gMTBHQkFTRS1FVworICAgICAgICAgICAgICBiMTBHYmFzZUxXKDM5KSwgICAgIC0tIDEwR0JBU0UtTFcKKyAgICAgICAgICAgICAgYjEwR2Jhc2VTVyg0MCksICAgICAtLSAxMEdCQVNFLVNXCisgICAgICAgICAgICAgIC0tIG5ldyBzaW5jZSBSRkMgMzYzNgorICAgICAgICAgICAgICBiMTBHYmFzZUNYNCg0MSksICAgIC0tIDEwR0JBU0UtQ1g0CisgICAgICAgICAgICAgIGIyQmFzZVRMKDQyKSwgICAgICAgLS0gMkJBU0UtVEwKKyAgICAgICAgICAgICAgYjEwUGFzc1RTKDQzKSwgICAgICAtLSAxMFBBU1MtVFMKKyAgICAgICAgICAgICAgYjEwMEJhc2VCWDEwRCg0NCksICAtLSAxMDBCQVNFLUJYMTBECisgICAgICAgICAgICAgIGIxMDBCYXNlQlgxMFUoNDUpLCAgLS0gMTAwQkFTRS1CWDEwVQorICAgICAgICAgICAgICBiMTAwQmFzZUxYMTAoNDYpLCAgIC0tIDEwMEJBU0UtTFgxMAorICAgICAgICAgICAgICBiMTAwMEJhc2VCWDEwRCg0NyksIC0tIDEwMDBCQVNFLUJYMTBECisgICAgICAgICAgICAgIGIxMDAwQmFzZUJYMTBVKDQ4KSwgLS0gMTAwMEJBU0UtQlgxMFUKKyAgICAgICAgICAgICAgYjEwMDBCYXNlTFgxMCg0OSksICAtLSAxMDAwQkFTRS1MWDEwCisgICAgICAgICAgICAgIGIxMDAwQmFzZVBYMTBEKDUwKSwgLS0gMTAwMEJBU0UtUFgxMEQKKyAgICAgICAgICAgICAgYjEwMDBCYXNlUFgxMFUoNTEpLCAtLSAxMDAwQkFTRS1QWDEwVQorICAgICAgICAgICAgICBiMTAwMEJhc2VQWDIwRCg1MiksIC0tIDEwMDBCQVNFLVBYMjBECisgICAgICAgICAgICAgIGIxMDAwQmFzZVBYMjBVKDUzKSAgLS0gMTAwMEJBU0UtUFgyMFUKKyAgICAgICAgIH0KKworICAgICBJQU5BaWZNYXVNZWRpYUF2YWlsYWJsZSA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTgorICAgICAgICAgIlRoaXMgZGF0YSB0eXBlIGlzIHVzZWQgYXMgdGhlIHN5bnRheCBvZiB0aGUKKyAgICAgICAgIGlmTWF1TWVkaWFBdmFpbGFibGUgYW5kIHJwTWF1TWVkaWFBdmFpbGFibGUgb2JqZWN0cyBpbiB0aGUKKyAgICAgICAgICh1cGRhdGVkKSBkZWZpbml0aW9uIG9mIE1BVS1NSUIncyBpZk1hdVRhYmxlIGFuZCBycE1hdVRhYmxlCisgICAgICAgICByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisgICAgICAgICAgIG90aGVyKDEpICAgICAgICAgICAgIC0gdW5kZWZpbmVkIChub3QgbGlzdGVkIGJlbG93KQorICAgICAgICAgICB1bmtub3duKDIpICAgICAgICAgICAtIE1BVSdzIHRydWUgc3RhdGUgaXMgdW5rbm93bjsgZS5nLiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXJpbmcgaW5pdGlhbGl6YXRpb24KKyAgICAgICAgICAgYXZhaWxhYmxlKDMpICAgICAgICAgLSBsaW5rLCBsaWdodCwgb3IgbG9vcGJhY2sgaXMgbm9ybWFsCisgICAgICAgICAgIG5vdEF2YWlsYWJsZSg0KSAgICAgIC0gbGluayBsb3NzLCBsb3cgbGlnaHQsIG9yIG5vIGxvb3BiYWNrCisgICAgICAgICAgIHJlbW90ZUZhdWx0KDUpICAgICAgIC0gYSBmYXVsdCBoYXMgYmVlbiBkZXRlY3RlZCBhdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGUgZW5kIG9mIHRoZSBsaW5rLiAgVGhpcyB2YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZXMgdG8gMTBCQVNFLUZCLCAxMDBCQVNFLVQ0IEZhcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZCBGYXVsdCBJbmRpY2F0aW9uIGFuZCBub24tc3BlY2lmaWVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3RlIGZhdWx0cyBmcm9tIGEgc3lzdGVtIHJ1bm5pbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvLW5lZ290aWF0aW9uCisgICAgICAgICAgIGludmFsaWRTaWduYWwoNikgICAgIC0gaW52YWxpZCBzaWduYWwgaGFzIGJlZW4gcmVjZWl2ZWQgZnJvbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvdGhlciBlbmQgb2YgdGhlIGxpbmssIDEwQkFTRS1GQgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHkKKyAgICAgICAgICAgcmVtb3RlSmFiYmVyKDcpICAgICAgLSByZW1vdGUgZmF1bHQsIGR1ZSB0byBqYWJiZXIKKworICAgICAgICAgICByZW1vdGVMaW5rTG9zcyg4KSAgICAtIHJlbW90ZSBmYXVsdCwgZHVlIHRvIGxpbmsgbG9zcworICAgICAgICAgICByZW1vdGVUZXN0KDkpICAgICAgICAtIHJlbW90ZSBmYXVsdCwgZHVlIHRvIHRlc3QKKyAgICAgICAgICAgb2ZmbGluZSgxMCkgICAgICAgICAgLSBvZmZsaW5lLCBDbGF1c2UgMzcgQXV0by1OZWdvdGlhdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHkKKyAgICAgICAgICAgYXV0b05lZ0Vycm9yKDExKSAgICAgLSBBdXRvLU5lZ290aWF0aW9uIEVycm9yLCBDbGF1c2UgMzcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRvLU5lZ290aWF0aW9uIG9ubHkKKyAgICAgICAgICAgcG1kTGlua0ZhdWx0KDEyKSAgICAgLSBQTUEvUE1EIHJlY2VpdmUgbGluayBmYXVsdC4gIEluIGNhc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBQQUYgKDJCQVNFLVRMIC8gMTBQQVNTLVRTIFBIWXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbCBQTUVzIGluIHRoZSBhZ2dyZWdhdGlvbiBncm91cCBoYXZlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0ZWN0ZWQgYSBsaW5rIGZhdWx0CisgICAgICAgICAgIHdpc0ZyYW1lTG9zcygxMykgICAgIC0gV0lTIGxvc3Mgb2YgZnJhbWUsIDEwR0JBU0UtVyBvbmx5CisgICAgICAgICAgIHdpc1NpZ25hbExvc3MoMTQpICAgIC0gV0lTIGxvc3Mgb2Ygc2lnbmFsLCAxMEdCQVNFLVcgb25seQorICAgICAgICAgICBwY3NMaW5rRmF1bHQoMTUpICAgICAtIFBDUyByZWNlaXZlIGxpbmsgZmF1bHQKKyAgICAgICAgICAgZXhjZXNzaXZlQkVSKDE2KSAgICAgLSBQQ1MgQml0IEVycm9yIFJhdGlvIG1vbml0b3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBvcnRpbmcgZXhjZXNzaXZlIGVycm9yIHJhdGlvCisgICAgICAgICAgIGR4c0xpbmtGYXVsdCgxNykgICAgIC0gRFRFIFhHWFMgcmVjZWl2ZSBsaW5rIGZhdWx0LCBYQVVJIG9ubHkKKyAgICAgICAgICAgcHhzTGlua0ZhdWx0KDE4KSAgICAgLSBQSFkgWEdYUyByZWNlaXZlIGxpbmsgZmF1bHQsIFhBVUkgb25seQorICAgICAgICAgICBhdmFpbGFibGVSZWR1Y2VkKDE5KSAtIGxpbmsgbm9ybWFsLCByZWR1Y2VkIGJhbmR3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyQkFTRS1UTCAvIDEwUEFTUy1UUyBvbmx5CisgICAgICAgICAgIHJlYWR5KDIwKSAgICAgICAgICAgIC0gYXQgbGVhc3Qgb25lIFBNRSBpbiB0aGUgYWdncmVnYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncm91cCBpcyBkZXRlY3RpbmcgaGFuZHNoYWtlIHRvbmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDJCQVNFLVRMIC8gMTBQQVNTLVRTIG9ubHkKKworICAgICAgICAgSWYgdGhlIE1BVSBpcyBhIDEwTSBiL3MgbGluayBvciBmaWJlciB0eXBlIChGT0lSTCwgMTBCQVNFLVQsCisgICAgICAgICAxMEJBU0UtRiksIHRoZW4gdGhpcyBpcyBlcXVpdmFsZW50IHRvIHRoZSBsaW5rIHRlc3QgZmFpbAorICAgICAgICAgc3RhdGUvbG93IGxpZ2h0IGZ1bmN0aW9uLiAgRm9yIGFuIEFVSSwgMTBCQVNFMiwgMTBCQVNFNSwgb3IKKyAgICAgICAgIDEwQlJPQUQzNiBNQVUsIHRoaXMgaW5kaWNhdGVzIHdoZXRoZXIgbG9vcGJhY2sgaXMgZGV0ZWN0ZWQgb24KKyAgICAgICAgIHRoZSBESSBjaXJjdWl0LiAgVGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIHBlcnNpc3RzIGJldHdlZW4KKyAgICAgICAgIHBhY2tldHMgZm9yIE1BVSB0eXBlcyBBVUksIDEwQkFTRTUsIDEwQkFTRTIsIDEwQlJPQUQzNiwgYW5kCisgICAgICAgICAxMEJBU0VGUC4KKworICAgICAgICAgQXQgcG93ZXItdXAgb3IgZm9sbG93aW5nIGEgcmVzZXQsIHRoZSBNZWRpYSBBdmFpbGFibGUgc3RhdGUKKyAgICAgICAgIHdpbGwgYmUgdW5rbm93bigyKSBmb3IgQVVJLCAxMEJBU0U1LCAxMEJBU0UyLCAxMEJST0FEMzYsIGFuZAorICAgICAgICAgMTBCQVNFLUZQIE1BVXMuICBGb3IgdGhlc2UgTUFVcyBsb29wYmFjayB3aWxsIGJlIHRlc3RlZCBvbiBlYWNoCisgICAgICAgICB0cmFuc21pc3Npb24gZHVyaW5nIHdoaWNoIG5vIGNvbGxpc2lvbiBpcyBkZXRlY3RlZC4KKyAgICAgICAgIElmIERJIGlzIHJlY2VpdmluZyBpbnB1dCB3aGVuIERPIHJldHVybnMgdG8gSURMIGFmdGVyIGEKKyAgICAgICAgIHRyYW5zbWlzc2lvbiBhbmQgdGhlcmUgaGFzIGJlZW4gbm8gY29sbGlzaW9uIGR1cmluZyB0aGUKKyAgICAgICAgIHRyYW5zbWlzc2lvbiwgdGhlbiBsb29wYmFjayB3aWxsIGJlIGRldGVjdGVkLiAgVGhlIE1lZGlhCisgICAgICAgICBBdmFpbGFibGUgc3RhdGUgd2lsbCBvbmx5IGNoYW5nZSBkdXJpbmcgbm9uY29sbGlkZWQKKyAgICAgICAgIHRyYW5zbWlzc2lvbnMgZm9yIEFVSSwgMTBCQVNFMiwgMTBCQVNFNSwgMTBCUk9BRDM2LCBhbmQKKyAgICAgICAgIDEwQkFTRS1GUCBNQVVzLgorCisgICAgICAgICBGb3IgMTAwQkFTRS1UMiwgMTAwQkFTRS1UNCwgMTAwQkFTRS1UWCwgMTAwQkFTRS1GWCwKKyAgICAgICAgIDEwMEJBU0UtTFgxMCwgYW5kIDEwMEJBU0UtQlgxMCBQSFlzIHRoZSBlbnVtZXJhdGlvbnMgbWF0Y2ggdGhlCisgICAgICAgICBzdGF0ZXMgd2l0aGluIHRoZSBsaW5rIGludGVncml0eSBzdGF0ZSBkaWFncmFtLgorICAgICAgICAgQW55IE1BVSB0aGF0IGltcGxlbWVudHMgbWFuYWdlbWVudCBvZiBbSUVFRTgwMi4zXSBDbGF1c2UKKyAgICAgICAgIDI4IEF1dG8tTmVnb3RpYXRpb24sIHdpbGwgbWFwIHJlbW90ZSBmYXVsdCBpbmRpY2F0aW9uIHRvCisgICAgICAgICByZW1vdGVGYXVsdCg1KS4KKworICAgICAgICAgQW55IE1BVSB0aGF0IGltcGxlbWVudHMgbWFuYWdlbWVudCBvZiBDbGF1c2UgMzcKKyAgICAgICAgIEF1dG8tTmVnb3RpYXRpb24sIHdpbGwgbWFwIHRoZSByZWNlaXZlZCBSRjEgYW5kIFJGMiBiaXRzIGFzCisgICAgICAgICBmb2xsb3dzOiBPZmZsaW5lIG1hcHMgdG8gb2ZmbGluZSgxMCksIExpbmtfRmFpbHVyZSBtYXBzIHRvCisgICAgICAgICByZW1vdGVGYXVsdCg1KSwgYW5kIEF1dG8tTmVnb3RpYXRpb24gRXJyb3IgbWFwcyB0bworICAgICAgICAgYXV0b05lZ0Vycm9yKDExKS4KKworICAgICAgICAgVGhlIHZhbHVlIHJlbW90ZUZhdWx0KDUpIGFwcGxpZXMgdG8gMTBCQVNFLUZCIHJlbW90ZQorICAgICAgICAgZmF1bHQgaW5kaWNhdGlvbiwgdGhlIDEwMEJBU0UtWCBmYXItZW5kIGZhdWx0IGluZGljYXRpb24sIGFuZAorICAgICAgICAgbm9uc3BlY2lmaWVkIHJlbW90ZSBmYXVsdHMgZnJvbSBhIHN5c3RlbSBydW5uaW5nIENsYXVzZSAyOAorICAgICAgICAgQXV0by1OZWdvdGlhdGlvbi4KKworICAgICAgICAgVGhlIHZhbHVlIHJlbW90ZUphYmJlcig3KSwgcmVtb3RlTGluayBsb3NzKDgpLCBvciByZW1vdGVUZXN0KDkpCisgICAgICAgICBTSE9VTEQgYmUgdXNlZCBpbnN0ZWFkIG9mIHJlbW90ZUZhdWx0KDUpIHdoZXJlIHRoZSByZWFzb24gZm9yCisgICAgICAgICByZW1vdGUgZmF1bHQgaXMgaWRlbnRpZmllZCBpbiB0aGUgcmVtb3RlIHNpZ25hbGluZyBwcm90b2NvbC4KKyAgICAgICAgIFdoZXJlIGEgQ2xhdXNlIDIyIE1JSSBvciBDbGF1c2UgMzUgR01JSSBpcyBwcmVzZW50LCBhIGxvZ2ljCisgICAgICAgICBvbmUgaW4gdGhlIHJlbW90ZSBmYXVsdCBiaXQgbWFwcyB0byB0aGUgdmFsdWUgcmVtb3RlRmF1bHQoNSksCisgICAgICAgICBhIGxvZ2ljIHplcm8gaW4gdGhlIGxpbmsgc3RhdHVzIGJpdCBtYXBzIHRvIHRoZSBlbnVtZXJhdGlvbgorICAgICAgICAgbm90QXZhaWxhYmxlKDQpLiAgVGhlIHZhbHVlIG5vdEF2YWlsYWJsZSg0KSB0YWtlcyBwcmVjZWRlbmNlCisgICAgICAgICBvdmVyIHJlbW90ZUZhdWx0KDUpLgorCisgICAgICAgICBGb3IgMkJBU0UtVEwgYW5kIDEwUEFTUy1UUyBQSFlzLCB0aGUgdmFsdWUgdW5rbm93bigyKSBtYXBzIHRvCisgICAgICAgICB0aGUgY29uZGl0aW9uIHdoZXJlIHRoZSBQSFkgKFBDUyB3aXRoIGNvbm5lY3RlZCBQTUVzKSBpcworICAgICAgICAgaW5pdGlhbGl6aW5nLCB0aGUgdmFsdWUgcmVhZHkoMjApIG1hcHMgdG8gdGhlIGNvbmRpdGlvbiB3aGVyZQorICAgICAgICAgdGhlIGludGVyZmFjZSBpcyBkb3duIGFuZCBhdCBsZWFzdCBvbmUgUE1FIGluIHRoZSBhZ2dyZWdhdGlvbgorICAgICAgICAgZ3JvdXAgaXMgcmVhZHkgZm9yIGhhbmRzaGFrZSwgdGhlIHZhbHVlIGF2YWlsYWJsZSgzKSBtYXBzIHRvCisgICAgICAgICB0aGUgY29uZGl0aW9uIHdoZXJlIGFsbCB0aGUgUE1FcyBpbiB0aGUgYWdncmVnYXRpb24gZ3JvdXAgYXJlCisgICAgICAgICB1cCwgdGhlIHZhbHVlIG5vdEF2YWlsYWJsZSg0KSBtYXBzIHRvIHRoZSBjb25kaXRpb24gd2hlcmUgYWxsCisgICAgICAgICB0aGUgUE1FcyBpbiB0aGUgYWdncmVnYXRpb24gZ3JvdXAgYXJlIGRvd24gYW5kIG5vIGhhbmRzaGFrZQorICAgICAgICAgdG9uZXMgYXJlIGRldGVjdGVkLCB0aGUgdmFsdWUgYXZhaWxhYmxlUmVkdWNlZCgxOSkgbWFwcyB0byB0aGUKKyAgICAgICAgIGNvbmRpdGlvbiB3aGVyZSB0aGUgaW50ZXJmYWNlIGlzIHVwLCBhIGxpbmsgZmF1bHQgaXMgZGV0ZWN0ZWQKKyAgICAgICAgIGF0IHRoZSByZWNlaXZlIGRpcmVjdGlvbiBieSBvbmUgb3IgbW9yZSBQTUVzIGluIHRoZQorICAgICAgICAgYWdncmVnYXRpb24gZ3JvdXAsIGJ1dCBhdCBsZWFzdCBvbmUgUE1FIGlzIHVwIGFuZCB0aGUKKyAgICAgICAgIGVudW1lcmF0aW9uIHBtZExpbmtGYXVsdCgxMikgbWFwcyB0byB0aGUgY29uZGl0aW9uIHdoZXJlIGEgbGluaworICAgICAgICAgZmF1bHQgaXMgZGV0ZWN0ZWQgYXQgdGhlIHJlY2VpdmUgZGlyZWN0aW9uIGJ5IGFsbCBvZiB0aGUgUE1FcworICAgICAgICAgaW4gdGhlIGFnZ3JlZ2F0aW9uIGdyb3VwLgorCisgICAgICAgICBGb3IgMTAgR2IvcyB0aGUgZW51bWVyYXRpb25zIG1hcCB0byB2YWx1ZSBvZiB0aGUgbGlua19mYXVsdAorICAgICAgICAgdmFyaWFibGUgd2l0aGluIHRoZSBMaW5rIEZhdWx0IFNpZ25hbGluZyBzdGF0ZSBkaWFncmFtCisgICAgICAgICBhcyBmb2xsb3dzOiB0aGUgdmFsdWUgT0sgbWFwcyB0byB0aGUgdmFsdWUgYXZhaWxhYmxlKDMpLAorICAgICAgICAgdGhlIHZhbHVlIExvY2FsIEZhdWx0IG1hcHMgdG8gdGhlIHZhbHVlIG5vdEF2YWlsYWJsZSg0KSwKKyAgICAgICAgIGFuZCB0aGUgdmFsdWUgUmVtb3RlIEZhdWx0IG1hcHMgdG8gdGhlIHZhbHVlIHJlbW90ZUZhdWx0KDUpLgorICAgICAgICAgVGhlIHZhbHVlIHBtZExpbmtGYXVsdCgxMiksIHdpc0ZyYW1lTG9zcygxMyksCisgICAgICAgICB3aXNTaWduYWxMb3NzKDE0KSwgcGNzTGlua0ZhdWx0KDE1KSwgZXhjZXNzaXZlQkVSKDE2KSwgb3IKKyAgICAgICAgIGR4c0xpbmtGYXVsdCgxNykgU0hPVUxEIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgdmFsdWUKKyAgICAgICAgIG5vdEF2YWlsYWJsZSg0KSwgd2hlcmUgdGhlIHJlYXNvbiBmb3IgdGhlIExvY2FsIEZhdWx0IHN0YXRlIGNhbgorICAgICAgICAgYmUgaWRlbnRpZmllZCB0aHJvdWdoIHRoZSB1c2Ugb2YgdGhlIENsYXVzZSA0NSBNRElPIEludGVyZmFjZS4KKyAgICAgICAgIFdoZXJlIG11bHRpcGxlIHJlYXNvbnMgZm9yIHRoZSBMb2NhbCBGYXVsdCBzdGF0ZSBjYW4gYmUKKyAgICAgICAgIGlkZW50aWZpZWQsIG9ubHkgdGhlIGhpZ2hlc3QgcHJlY2VkZW5jZSBlcnJvciBTSE9VTEQgYmUKKworICAgICAgICAgcmVwb3J0ZWQuICBUaGlzIHByZWNlZGVuY2UgaW4gZGVzY2VuZGluZyBvcmRlciBpcyBhcyBmb2xsb3dzOgorCisgICAgICAgICAgIHB4c0xpbmtGYXVsdAorICAgICAgICAgICBwbWRMaW5rRmF1bHQKKyAgICAgICAgICAgd2lzRnJhbWVMb3NzCisgICAgICAgICAgIHdpc1NpZ25hbExvc3MKKyAgICAgICAgICAgcGNzTGlua0ZhdWx0CisgICAgICAgICAgIGV4Y2Vzc2l2ZUJFUgorICAgICAgICAgICBkeHNMaW5rRmF1bHQuCisKKyAgICAgICAgIFdoZXJlIGEgQ2xhdXNlIDQ1IE1ESU8gaW50ZXJmYWNlIGlzIHByZXNlbnQgYSBsb2dpYyB6ZXJvIGluCisgICAgICAgICB0aGUgUE1BL1BNRCBSZWNlaXZlIGxpbmsgc3RhdHVzIGJpdCAoW0lFRUU4MDIuM10KKyAgICAgICAgIFNlY3Rpb24gNDUuMi4xLjIuMikgbWFwcyB0byB0aGUgdmFsdWUgcG1kTGlua0ZhdWx0KDEyKSwKKyAgICAgICAgIGxvZ2ljIG9uZSBpbiB0aGUgTE9GIHN0YXR1cyBiaXQgKFNlY3Rpb24gNDUuMi4yLjEwLjQpIG1hcHMKKyAgICAgICAgIHRvIHRoZSB2YWx1ZSB3aXNGcmFtZUxvc3MoMTMpLCBhIGxvZ2ljIG9uZSBpbiB0aGUgTE9TCisgICAgICAgICBzdGF0dXMgYml0IChTZWN0aW9uIDQ1LjIuMi4xMC41KSBtYXBzIHRvIHRoZSB2YWx1ZQorICAgICAgICAgd2lzU2lnbmFsTG9zcywgYSBsb2dpYyB6ZXJvIGluIHRoZSBQQ1MgUmVjZWl2ZQorICAgICAgICAgbGluayBzdGF0dXMgYml0IChTZWN0aW9uIDQ1LjIuMy4yLjIpIG1hcHMgdG8gdGhlIHZhbHVlCisgICAgICAgICBwY3NMaW5rRmF1bHQoMTUpLCBhIGxvZ2ljIG9uZSBpbiB0aGUgMTBHQkFTRS1SIFBDUyBMYXRjaGVkCisgICAgICAgICBoaWdoIEJFUiBzdGF0dXMgYml0IChTZWN0aW9uIDQ1LjIuMy4xMi4yKSBtYXBzIHRvIHRoZSB2YWx1ZQorICAgICAgICAgZXhjZXNzaXZlQkVSLCBhIGxvZ2ljIHplcm8gaW4gdGhlIERURSBYUyByZWNlaXZlIGxpbmsgc3RhdHVzCisgICAgICAgICBiaXQgKFNlY3Rpb24gNDUuMi41LjIuMikgbWFwcyB0byB0aGUgdmFsdWUgZHhzTGlua0ZhdWx0KDE3KQorICAgICAgICAgYW5kIGEgbG9naWMgemVybyBpbiB0aGUgUEhZIFhTIHRyYW5zbWl0IGxpbmsgc3RhdHVzIGJpdAorICAgICAgICAgKFNlY3Rpb24gNDUuMi40LjIuMikgbWFwcyB0byB0aGUgdmFsdWUgcHhzTGlua0ZhdWx0KDE4KS4KKworICAgICAgICAgVGhlIG1vc3QgcmVjZW50IHZlcnNpb24gb2YgdGhpcyB0ZXh0dWFsIGNvbnZlbnRpb24gaXMgYXZhaWxhYmxlCisgICAgICAgICBpbiB0aGUgb25saW5lIHZlcnNpb24gb2YgdGhpcyBNSUIgbW9kdWxlIG9uIHRoZSBJQU5BIHdlYiBzaXRlLgorCisgICAgICAgICBSZXF1ZXN0cyBmb3IgbmV3IHZhbHVlcyBzaG91bGQgYmUgbWFkZSB0byBJQU5BIHZpYSBlbWFpbAorICAgICAgICAgKGlhbmEmaWFuYS5vcmcpLiIKKyAgICAgICBSRUZFUkVOQ0UKKyAgICAgICAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAzMC41LjEuMS40IgorICAgICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgb3RoZXIoMSksCisgICAgICAgICAgICAgIHVua25vd24oMiksCisgICAgICAgICAgICAgIGF2YWlsYWJsZSgzKSwKKyAgICAgICAgICAgICAgbm90QXZhaWxhYmxlKDQpLAorICAgICAgICAgICAgICByZW1vdGVGYXVsdCg1KSwKKyAgICAgICAgICAgICAgaW52YWxpZFNpZ25hbCg2KSwKKyAgICAgICAgICAgICAgcmVtb3RlSmFiYmVyKDcpLAorICAgICAgICAgICAgICByZW1vdGVMaW5rTG9zcyg4KSwKKyAgICAgICAgICAgICAgcmVtb3RlVGVzdCg5KSwKKyAgICAgICAgICAgICAgb2ZmbGluZSgxMCksCisgICAgICAgICAgICAgIGF1dG9OZWdFcnJvcigxMSksCisgICAgICAgICAgICAgIHBtZExpbmtGYXVsdCgxMiksCisgICAgICAgICAgICAgIHdpc0ZyYW1lTG9zcygxMyksCisgICAgICAgICAgICAgIHdpc1NpZ25hbExvc3MoMTQpLAorICAgICAgICAgICAgICBwY3NMaW5rRmF1bHQoMTUpLAorCisgICAgICAgICAgICAgIGV4Y2Vzc2l2ZUJFUigxNiksCisgICAgICAgICAgICAgIGR4c0xpbmtGYXVsdCgxNyksCisgICAgICAgICAgICAgIHB4c0xpbmtGYXVsdCgxOCksCisgICAgICAgICAgICAgIGF2YWlsYWJsZVJlZHVjZWQoMTkpLAorICAgICAgICAgICAgICByZWFkeSgyMCkKKyAgICAgICAgIH0KKworICAgICBJQU5BaWZNYXVBdXRvTmVnQ2FwQml0cyA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTgorICAgICAgICAgIlRoaXMgZGF0YSB0eXBlIGlzIHVzZWQgYXMgdGhlIHN5bnRheCBvZiB0aGUKKyAgICAgICAgIGlmTWF1QXV0b05lZ0NhcGFiaWxpdHlCaXRzLCBpZk1hdUF1dG9OZWdDYXBBZHZlcnRpc2VkQml0cywgYW5kCisgICAgICAgICBpZk1hdUF1dG9OZWdDYXBSZWNlaXZlZEJpdHMgb2JqZWN0cyBpbiB0aGUgKHVwZGF0ZWQpIGRlZmluaXRpb24KKyAgICAgICAgIG9mIE1BVS1NSUIncyBpZk1hdUF1dG9OZWdUYWJsZS4KKworICAgICAgICAgVGhlIG1vc3QgcmVjZW50IHZlcnNpb24gb2YgdGhpcyB0ZXh0dWFsIGNvbnZlbnRpb24gaXMgYXZhaWxhYmxlCisgICAgICAgICBpbiB0aGUgb25saW5lIHZlcnNpb24gb2YgdGhpcyBNSUIgbW9kdWxlIG9uIHRoZSBJQU5BIHdlYiBzaXRlLgorCisgICAgICAgICBSZXF1ZXN0cyBmb3IgbmV3IHZhbHVlcyBzaG91bGQgYmUgbWFkZSB0byBJQU5BIHZpYSBlbWFpbAorICAgICAgICAgKGlhbmEmaWFuYS5vcmcpLiIKKyAgICAgICBSRUZFUkVOQ0UKKyAgICAgICAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAzMC42LjEuMS41IgorICAgICAgIFNZTlRBWCAgICAgICBCSVRTIHsKKyAgICAgICAgICAgICAgYk90aGVyKDApLCAgICAgICAgICAtLSBvdGhlciBvciB1bmtub3duCisgICAgICAgICAgICAgIGIxMGJhc2VUKDEpLCAgICAgICAgLS0gMTBCQVNFLVQgIGhhbGYgZHVwbGV4IG1vZGUKKyAgICAgICAgICAgICAgYjEwYmFzZVRGRCgyKSwgICAgICAtLSAxMEJBU0UtVCAgZnVsbCBkdXBsZXggbW9kZQorICAgICAgICAgICAgICBiMTAwYmFzZVQ0KDMpLCAgICAgIC0tIDEwMEJBU0UtVDQKKyAgICAgICAgICAgICAgYjEwMGJhc2VUWCg0KSwgICAgICAtLSAxMDBCQVNFLVRYIGhhbGYgZHVwbGV4IG1vZGUKKyAgICAgICAgICAgICAgYjEwMGJhc2VUWEZEKDUpLCAgICAtLSAxMDBCQVNFLVRYIGZ1bGwgZHVwbGV4IG1vZGUKKyAgICAgICAgICAgICAgYjEwMGJhc2VUMig2KSwgICAgICAtLSAxMDBCQVNFLVQyIGhhbGYgZHVwbGV4IG1vZGUKKyAgICAgICAgICAgICAgYjEwMGJhc2VUMkZEKDcpLCAgICAtLSAxMDBCQVNFLVQyIGZ1bGwgZHVwbGV4IG1vZGUKKyAgICAgICAgICAgICAgYkZkeFBhdXNlKDgpLCAgICAgICAtLSBQQVVTRSBmb3IgZnVsbC1kdXBsZXggbGlua3MKKyAgICAgICAgICAgICAgYkZkeEFQYXVzZSg5KSwgICAgICAtLSBBc3ltbWV0cmljIFBBVVNFIGZvciBmdWxsLWR1cGxleAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tICAgICBsaW5rcworICAgICAgICAgICAgICBiRmR4U1BhdXNlKDEwKSwgICAgIC0tIFN5bW1ldHJpYyBQQVVTRSBmb3IgZnVsbC1kdXBsZXgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgbGlua3MKKyAgICAgICAgICAgICAgYkZkeEJQYXVzZSgxMSksICAgICAtLSBBc3ltbWV0cmljIGFuZCBTeW1tZXRyaWMgUEFVU0UgZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIGZ1bGwtZHVwbGV4IGxpbmtzCisgICAgICAgICAgICAgIGIxMDAwYmFzZVgoMTIpLCAgICAgLS0gMTAwMEJBU0UtWCwgLUxYLCAtU1gsIC1DWCBoYWxmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIGR1cGxleCBtb2RlCisgICAgICAgICAgICAgIGIxMDAwYmFzZVhGRCgxMyksICAgLS0gMTAwMEJBU0UtWCwgLUxYLCAtU1gsIC1DWCBmdWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIGR1cGxleCBtb2RlCisgICAgICAgICAgICAgIGIxMDAwYmFzZVQoMTQpLCAgICAgLS0gMTAwMEJBU0UtVCBoYWxmIGR1cGxleCBtb2RlCisgICAgICAgICAgICAgIGIxMDAwYmFzZVRGRCgxNSkgICAgLS0gMTAwMEJBU0UtVCBmdWxsIGR1cGxleCBtb2RlCisgICAgICAgICB9CisKKyAgICAgSUFOQWlmSmFja1R5cGUgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisKKyAgICAgICBERVNDUklQVElPTgorICAgICAgICAgIkNvbW1vbiBlbnVtZXJhdGlvbiB2YWx1ZXMgZm9yIHJlcGVhdGVyIGFuZCBpbnRlcmZhY2UgTUFVCisgICAgICAgICBqYWNrIHR5cGVzLiAgVGhpcyBkYXRhIHR5cGUgaXMgdXNlZCBhcyB0aGUgc3ludGF4IG9mIHRoZQorICAgICAgICAgaWZKYWNrVHlwZSBhbmQgcnBKYWNrVHlwZSBvYmplY3RzIGluIHRoZSAodXBkYXRlZCkgZGVmaW5pdGlvbgorICAgICAgICAgb2YgTUFVLU1JQidzIGlmSmFja1RhYmxlIGFuZCBycEphY2tUYWJsZSByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisgICAgICAgICAgICAgIG90aGVyKDEpICAgICAgICAgIC0gdW5kZWZpbmVkIG9yIHVua25vd24KKyAgICAgICAgICAgICAgcmo0NSgyKSAgICAgICAgICAgLSBSSjQ1CisgICAgICAgICAgICAgIHJqNDVTKDMpICAgICAgICAgIC0gUko0NSBzaGllbGRlZAorICAgICAgICAgICAgICBkYjkoNCkgICAgICAgICAgICAtIERCOQorICAgICAgICAgICAgICBibmMoNSkgICAgICAgICAgICAtIEJOQworICAgICAgICAgICAgICBmQVVJKDYpICAgICAgICAgICAtIEFVSSBmZW1hbGUKKyAgICAgICAgICAgICAgbUFVSSg3KSAgICAgICAgICAgLSBBVUkgbWFsZQorICAgICAgICAgICAgICBmaWJlclNDKDgpICAgICAgICAtIFNDIGZpYmVyCisgICAgICAgICAgICAgIGZpYmVyTUlDKDkpICAgICAgIC0gTUlDIGZpYmVyCisgICAgICAgICAgICAgIGZpYmVyU1QoMTApICAgICAgIC0gU1QgZmliZXIKKyAgICAgICAgICAgICAgdGVsY28oMTEpICAgICAgICAgLSBUZWxjbworICAgICAgICAgICAgICBtdHJqKDEyKSAgICAgICAgICAtIE1ULVJKIGZpYmVyCisgICAgICAgICAgICAgIGhzc2RjKDEzKSAgICAgICAgIC0gZmliZXIgY2hhbm5lbCBzdHlsZS0yCisgICAgICAgICAgICAgIGZpYmVyTEMoMTQpICAgICAgIC0gTEMgZmliZXIKKyAgICAgICAgICAgICAgY3g0KDE1KSAgICAgICAgICAgLSBJQjRYIGZvciAxMEdCQVNFLUNYNAorCisgICAgICAgICBUaGUgbW9zdCByZWNlbnQgdmVyc2lvbiBvZiB0aGlzIHRleHR1YWwgY29udmVudGlvbiBpcyBhdmFpbGFibGUKKyAgICAgICAgIGluIHRoZSBvbmxpbmUgdmVyc2lvbiBvZiB0aGlzIE1JQiBtb2R1bGUgb24gdGhlIElBTkEgd2ViIHNpdGUuCisKKyAgICAgICAgIFJlcXVlc3RzIGZvciBuZXcgdmFsdWVzIHNob3VsZCBiZSBtYWRlIHRvIElBTkEgdmlhIGVtYWlsCisgICAgICAgICAoaWFuYSZpYW5hLm9yZykuIgorICAgICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgb3RoZXIoMSksCisgICAgICAgICAgICAgIHJqNDUoMiksCisgICAgICAgICAgICAgIHJqNDVTKDMpLAorICAgICAgICAgICAgICBkYjkoNCksCisgICAgICAgICAgICAgIGJuYyg1KSwKKyAgICAgICAgICAgICAgZkFVSSg2KSwKKyAgICAgICAgICAgICAgbUFVSSg3KSwKKyAgICAgICAgICAgICAgZmliZXJTQyg4KSwKKyAgICAgICAgICAgICAgZmliZXJNSUMoOSksCisgICAgICAgICAgICAgIGZpYmVyU1QoMTApLAorICAgICAgICAgICAgICB0ZWxjbygxMSksCisgICAgICAgICAgICAgIG10cmooMTIpLAorICAgICAgICAgICAgICBoc3NkYygxMyksCisgICAgICAgICAgICAgIGZpYmVyTEMoMTQpLAorICAgICAgICAgICAgICAtLSBuZXcgc2luY2UgUkZDIDM2MzYKKyAgICAgICAgICAgICAgY3g0KDE1KQorICAgICAgICAgfQorCisgICAgIC0tIE9CSkVDVCBJREVOVElUSUVTIGZvciBNQVUgdHlwZXMKKworICAgICAtLSAgKHNlZSBycE1hdVR5cGUgYW5kIGlmTWF1VHlwZSBvZiBNQVUtTUlCIGZvciB1c2FnZSkKKyAgICAgLS0gVGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyBoYXMgYmVlbiBtb3ZlZCBmcm9tIFJGQyAzNjM2IGFuZAorICAgICAtLSBubyBsb25nZXIgYXBwZWFyIGluIGl0cyByZXZpc2lvbi4KKworICAgICBkb3QzTWF1VHlwZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBtaWItMiBzbm1wRG90M01hdU1ndCgyNikgNCB9CisKKyAgICAgZG90M01hdVR5cGVBVUkgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJubyBpbnRlcm5hbCBNQVUsIHZpZXcgZnJvbSBBVUkiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDciCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMSB9CisKKyAgICAgZG90M01hdVR5cGUxMEJhc2U1IE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAidGhpY2sgY29heCBNQVUiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDciCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMiB9CisKKyAgICAgZG90M01hdVR5cGVGb2lybCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIkZPSVJMIE1BVSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gOS45IgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDMgfQorCisgICAgIGRvdDNNYXVUeXBlMTBCYXNlMiBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gInRoaW4gY29heCBNQVUiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDEwIgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDQgfQorCisgICAgIGRvdDNNYXVUeXBlMTBCYXNlVCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIlVUUCBNQVUuCisgICAgICAgICAgICAgICAgICAgTm90ZSB0aGF0IGl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRoYXQKKyAgICAgICAgICAgICAgICAgICBhZ2VudHMgcmV0dXJuIGVpdGhlciBkb3QzTWF1VHlwZTEwQmFzZVRIRCBvcgorICAgICAgICAgICAgICAgICAgIGRvdDNNYXVUeXBlMTBCYXNlVEZEIGlmIHRoZSBkdXBsZXggbW9kZSBpcworICAgICAgICAgICAgICAgICAgIGtub3duLiAgSG93ZXZlciwgbWFuYWdlbWVudCBhcHBsaWNhdGlvbnMgc2hvdWxkCisgICAgICAgICAgICAgICAgICAgYmUgcHJlcGFyZWQgdG8gcmVjZWl2ZSB0aGlzIE1BVSB0eXBlIHZhbHVlIGZyb20KKyAgICAgICAgICAgICAgICAgICBvbGRlciBhZ2VudCBpbXBsZW1lbnRhdGlvbnMuIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAxNCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSA1IH0KKworICAgICBkb3QzTWF1VHlwZTEwQmFzZUZQIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAicGFzc2l2ZSBmaWJlciBNQVUiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDE2IgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDYgfQorCisgICAgIGRvdDNNYXVUeXBlMTBCYXNlRkIgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJzeW5jIGZpYmVyIE1BVSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gMTciCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgNyB9CisKKyAgICAgZG90M01hdVR5cGUxMEJhc2VGTCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gImFzeW5jIGZpYmVyIE1BVS4KKyAgICAgICAgICAgICAgICAgICBOb3RlIHRoYXQgaXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdGhhdAorICAgICAgICAgICAgICAgICAgIGFnZW50cyByZXR1cm4gZWl0aGVyIGRvdDNNYXVUeXBlMTBCYXNlRkxIRCBvcgorICAgICAgICAgICAgICAgICAgIGRvdDNNYXVUeXBlMTBCYXNlRkxGRCBpZiB0aGUgZHVwbGV4IG1vZGUgaXMKKyAgICAgICAgICAgICAgICAgICBrbm93bi4gIEhvd2V2ZXIsIG1hbmFnZW1lbnQgYXBwbGljYXRpb25zIHNob3VsZAorICAgICAgICAgICAgICAgICAgIGJlIHByZXBhcmVkIHRvIHJlY2VpdmUgdGhpcyBNQVUgdHlwZSB2YWx1ZSBmcm9tCisgICAgICAgICAgICAgICAgICAgb2xkZXIgYWdlbnQgaW1wbGVtZW50YXRpb25zLiIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gMTgiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgOCB9CisKKyAgICAgZG90M01hdVR5cGUxMEJyb2FkMzYgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJicm9hZGJhbmQgRFRFIE1BVS4KKyAgICAgICAgICAgICAgICAgICBOb3RlIHRoYXQgMTBCUk9BRDM2IE1BVXMgY2FuIGJlIGF0dGFjaGVkIHRvCisgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlcyBidXQgbm90IHRvIHJlcGVhdGVycy4iCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDExIgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDkgfQorCisgICAgIC0tLS0tLSBuZXcgc2luY2UgUkZDIDE1MTU6CisgICAgIGRvdDNNYXVUeXBlMTBCYXNlVEhEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiVVRQIE1BVSwgaGFsZiBkdXBsZXggbW9kZSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gMTQiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMTAgfQorCisgICAgIGRvdDNNYXVUeXBlMTBCYXNlVEZEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiVVRQIE1BVSwgZnVsbCBkdXBsZXggbW9kZSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gMTQiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMTEgfQorCisgICAgIGRvdDNNYXVUeXBlMTBCYXNlRkxIRCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gImFzeW5jIGZpYmVyIE1BVSwgaGFsZiBkdXBsZXggbW9kZSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gMTgiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMTIgfQorCisgICAgIGRvdDNNYXVUeXBlMTBCYXNlRkxGRCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gImFzeW5jIGZpYmVyIE1BVSwgZnVsbCBkdXBsZXggbW9kZSIKKworICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAxOCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAxMyB9CisKKyAgICAgZG90M01hdVR5cGUxMDBCYXNlVDQgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICI0IHBhaXIgY2F0ZWdvcnkgMyBVVFAiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDIzIgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDE0IH0KKworICAgICBkb3QzTWF1VHlwZTEwMEJhc2VUWEhEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiMiBwYWlyIGNhdGVnb3J5IDUgVVRQLCBoYWxmIGR1cGxleCBtb2RlIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAyNSIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAxNSB9CisKKyAgICAgZG90M01hdVR5cGUxMDBCYXNlVFhGRCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIjIgcGFpciBjYXRlZ29yeSA1IFVUUCwgZnVsbCBkdXBsZXggbW9kZSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gMjUiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMTYgfQorCisgICAgIGRvdDNNYXVUeXBlMTAwQmFzZUZYSEQgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJYIGZpYmVyIG92ZXIgUE1ULCBoYWxmIGR1cGxleCBtb2RlIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAyNiIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAxNyB9CisKKyAgICAgZG90M01hdVR5cGUxMDBCYXNlRlhGRCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIlggZmliZXIgb3ZlciBQTVQsIGZ1bGwgZHVwbGV4IG1vZGUiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDI2IgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDE4IH0KKworICAgICBkb3QzTWF1VHlwZTEwMEJhc2VUMkhEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiMiBwYWlyIGNhdGVnb3J5IDMgVVRQLCBoYWxmIGR1cGxleCBtb2RlIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAzMiIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAxOSB9CisKKyAgICAgZG90M01hdVR5cGUxMDBCYXNlVDJGRCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIjIgcGFpciBjYXRlZ29yeSAzIFVUUCwgZnVsbCBkdXBsZXggbW9kZSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gMzIiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMjAgfQorCisgICAgIC0tLS0tLSBuZXcgc2luY2UgUkZDIDIyMzk6CisgICAgIGRvdDNNYXVUeXBlMTAwMEJhc2VYSEQgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorCisgICAgICAgREVTQ1JJUFRJT04gIlBDUy9QTUEsIHVua25vd24gUE1ELCBoYWxmIGR1cGxleCBtb2RlIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAzNiIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAyMSB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZVhGRCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIlBDUy9QTUEsIHVua25vd24gUE1ELCBmdWxsIGR1cGxleCBtb2RlIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAzNiIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAyMiB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZUxYSEQgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJGaWJlciBvdmVyIGxvbmctd2F2ZWxlbmd0aCBsYXNlciwgaGFsZiBkdXBsZXgKKyAgICAgICAgICAgICAgICAgICBtb2RlIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAzOCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAyMyB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZUxYRkQgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJGaWJlciBvdmVyIGxvbmctd2F2ZWxlbmd0aCBsYXNlciwgZnVsbCBkdXBsZXgKKyAgICAgICAgICAgICAgICAgICBtb2RlIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiAzOCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAyNCB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZVNYSEQgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJGaWJlciBvdmVyIHNob3J0LXdhdmVsZW5ndGggbGFzZXIsIGhhbGYKKyAgICAgICAgICAgICAgICAgICBkdXBsZXggbW9kZSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gMzgiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMjUgfQorCisgICAgIGRvdDNNYXVUeXBlMTAwMEJhc2VTWEZEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiRmliZXIgb3ZlciBzaG9ydC13YXZlbGVuZ3RoIGxhc2VyLCBmdWxsCisgICAgICAgICAgICAgICAgICAgZHVwbGV4IG1vZGUiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDM4IgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDI2IH0KKworICAgICBkb3QzTWF1VHlwZTEwMDBCYXNlQ1hIRCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIkNvcHBlciBvdmVyIDE1MC1PaG0gYmFsYW5jZWQgY2FibGUsIGhhbGYKKyAgICAgICAgICAgICAgICAgICBkdXBsZXggbW9kZSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gMzkiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMjcgfQorCisgICAgIGRvdDNNYXVUeXBlMTAwMEJhc2VDWEZEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiQ29wcGVyIG92ZXIgMTUwLU9obSBiYWxhbmNlZCBjYWJsZSwgZnVsbAorCisgICAgICAgICAgICAgICAgICAgZHVwbGV4IG1vZGUiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDM5IgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDI4IH0KKworICAgICBkb3QzTWF1VHlwZTEwMDBCYXNlVEhEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiRm91ci1wYWlyIENhdGVnb3J5IDUgVVRQLCBoYWxmIGR1cGxleCBtb2RlIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA0MCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAyOSB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZVRGRCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIkZvdXItcGFpciBDYXRlZ29yeSA1IFVUUCwgZnVsbCBkdXBsZXggbW9kZSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gNDAiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMzAgfQorCisgICAgIC0tLS0tLSBuZXcgc2luY2UgUkZDIDI2Njg6CisgICAgIGRvdDNNYXVUeXBlMTBHaWdCYXNlWCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIlggUENTL1BNQSwgdW5rbm93biBQTUQuIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA0OCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAzMSB9CisKKyAgICAgZG90M01hdVR5cGUxMEdpZ0Jhc2VMWDQgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJYIGZpYmVyIG92ZXIgV1dETSBvcHRpY3MiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDUzIgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDMyIH0KKworICAgICBkb3QzTWF1VHlwZTEwR2lnQmFzZVIgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJSIFBDUy9QTUEsIHVua25vd24gUE1ELiIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gNDkiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMzMgfQorCisgICAgIGRvdDNNYXVUeXBlMTBHaWdCYXNlRVIgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJSIGZpYmVyIG92ZXIgMTU1MCBubSBvcHRpY3MiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDUyIgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDM0IH0KKworICAgICBkb3QzTWF1VHlwZTEwR2lnQmFzZUxSIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiUiBmaWJlciBvdmVyIDEzMTAgbm0gb3B0aWNzIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA1MiIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAzNSB9CisKKyAgICAgZG90M01hdVR5cGUxMEdpZ0Jhc2VTUiBPQkpFQ1QtSURFTlRJVFkKKworICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiUiBmaWJlciBvdmVyIDg1MCBubSBvcHRpY3MiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDUyIgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDM2IH0KKworICAgICBkb3QzTWF1VHlwZTEwR2lnQmFzZVcgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJXIFBDUy9QTUEsIHVua25vd24gUE1ELiIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gNDkgYW5kIDUwIgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDM3IH0KKworICAgICBkb3QzTWF1VHlwZTEwR2lnQmFzZUVXIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiVyBmaWJlciBvdmVyIDE1NTAgbm0gb3B0aWNzIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA1MiIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSAzOCB9CisKKyAgICAgZG90M01hdVR5cGUxMEdpZ0Jhc2VMVyBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIlcgZmliZXIgb3ZlciAxMzEwIG5tIG9wdGljcyIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gNTIiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgMzkgfQorCisgICAgIGRvdDNNYXVUeXBlMTBHaWdCYXNlU1cgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJXIGZpYmVyIG92ZXIgODUwIG5tIG9wdGljcyIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gNTIiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgNDAgfQorCisgICAgIC0tLS0tLSBuZXcgc2luY2UgUkZDIDM2MzY6CisgICAgIGRvdDNNYXVUeXBlMTBHaWdCYXNlQ1g0IE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiWCBjb3BwZXIgb3ZlciA4IHBhaXIgMTAwLU9obSBiYWxhbmNlZCBjYWJsZSIKKyAgICAgICBSRUZFUkVOQ0UgICAiW0lFRUU4MDIuM10sIFNlY3Rpb24gNTQiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgNDEgfQorCisgICAgIGRvdDNNYXVUeXBlMkJhc2VUTCBPQkpFQ1QtSURFTlRJVFkKKyAgICAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgICAgREVTQ1JJUFRJT04gIlZvaWNlIGdyYWRlIFVUUCBjb3BwZXIsIHVwIHRvIDI3MDBtLCBvcHRpb25hbCBQQUYiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9ucyA2MSBhbmQgNjMiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgNDIgfQorCisgICAgIGRvdDNNYXVUeXBlMTBQYXNzVFMgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJWb2ljZSBncmFkZSBVVFAgY29wcGVyLCB1cCB0byA3NTBtLCBvcHRpb25hbCBQQUYiCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9ucyA2MSBhbmQgNjIiCisgICAgICAgOjo9IHsgZG90M01hdVR5cGUgNDMgfQorCisgICAgIGRvdDNNYXVUeXBlMTAwQmFzZUJYMTBEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiT25lIHNpbmdsZS1tb2RlIGZpYmVyIE9MVCwgbG9uZyB3YXZlbGVuZ3RoLCAxMGttIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA1OCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSA0NCB9CisKKyAgICAgZG90M01hdVR5cGUxMDBCYXNlQlgxMFUgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJPbmUgc2luZ2xlLW1vZGUgZmliZXIgT05VLCBsb25nIHdhdmVsZW5ndGgsIDEwa20iCisgICAgICAgUkVGRVJFTkNFICAgIltJRUVFODAyLjNdLCBTZWN0aW9uIDU4IgorICAgICAgIDo6PSB7IGRvdDNNYXVUeXBlIDQ1IH0KKworICAgICBkb3QzTWF1VHlwZTEwMEJhc2VMWDEwIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiVHdvIHNpbmdsZS1tb2RlIGZpYmVycywgbG9uZyB3YXZlbGVuZ3RoLCAxMGttIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA1OCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSA0NiB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZUJYMTBEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiT25lIHNpbmdsZS1tb2RlIGZpYmVyIE9MVCwgbG9uZyB3YXZlbGVuZ3RoLCAxMGttIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA1OSIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSA0NyB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZUJYMTBVIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiT25lIHNpbmdsZS1tb2RlIGZpYmVyIE9OVSwgbG9uZyB3YXZlbGVuZ3RoLCAxMGttIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA1OSIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSA0OCB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZUxYMTAgT0JKRUNULUlERU5USVRZCisgICAgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgICAgIERFU0NSSVBUSU9OICJUd28gc2lnbGUtbW9kZSBmaWJlciwgbG9uZyB3YXZlbGVuZ3RoLCAxMGttIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA1OSIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSA0OSB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZVBYMTBEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiT25lIHNpbmdsZS1tb2RlIGZpYmVyIEVQT04gT0xULCAxMGttIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA2MCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSA1MCB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZVBYMTBVIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiT25lIHNpbmdsZS1tb2RlIGZpYmVyIEVQT04gT05VLCAxMGttIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA2MCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSA1MSB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZVBYMjBEIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiT25lIHNpbmdsZS1tb2RlIGZpYmVyIEVQT04gT0xULCAyMGttIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA2MCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSA1MiB9CisKKyAgICAgZG90M01hdVR5cGUxMDAwQmFzZVBYMjBVIE9CSkVDVC1JREVOVElUWQorICAgICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTiAiT25lIHNpbmdsZS1tb2RlIGZpYmVyIEVQT04gT05VLCAyMGttIgorICAgICAgIFJFRkVSRU5DRSAgICJbSUVFRTgwMi4zXSwgU2VjdGlvbiA2MCIKKyAgICAgICA6Oj0geyBkb3QzTWF1VHlwZSA1MyB9CisKK0VORApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lBTkEvSUFOQS1QUklOVEVSLU1JQiBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BL0lBTkEtUFJJTlRFUi1NSUIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU2ZWQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BL0lBTkEtUFJJTlRFUi1NSUIKQEAgLTAsMCArMSwxMzE5IEBACitJQU5BLVBSSU5URVItTUlCIERFRklOSVRJT05TIDo6PSBCRUdJTgorIC0tIGh0dHA6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvaWFuYXByaW50ZXItbWliCisKK0lNUE9SVFMKKyAgICBNT0RVTEUtSURFTlRJVFksCisgICAgICAgIG1pYi0yCisgICAgICAgICAgICBGUk9NIFNOTVB2Mi1TTUkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBbUkZDMjU3OF0KKyAgICBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAgICAgICAgIEZST00gU05NUHYyLVRDOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFtSRkMyNTc5XQorCitpYW5hUHJpbnRlck1JQiBNT0RVTEUtSURFTlRJVFkKKyAgICBMQVNULVVQREFURUQgICIyMDA1MDkxNDAwMDBaIiAtLSBTZXB0ZW1iZXIgMTQsIDIwMDUKKworICAgIE9SR0FOSVpBVElPTiAgIklBTkEiCisgICAgQ09OVEFDVC1JTkZPICAiSW50ZXJuZXQgQXNzaWduZWQgTnVtYmVycyBBdXRob3JpdHkKKyAgICAgICAgICAgICAgICAgIFBvc3RhbDogSUNBTk4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgNDY3NiBBZG1pcmFsdHkgV2F5LCBTdWl0ZSAzMzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgTWFyaW5hIGRlbCBSZXksIENBIDkwMjkyCisKKyAgICAgICAgICAgICAgICAgIFRlbDogICAgKzEgMzEwIDgyMyA5MzU4CisgICAgICAgICAgICAgICAgICBFLU1haWw6IGlhbmEmaWFuYS5vcmciCisKKyAgICBERVNDUklQVElPTiAgICJUaGlzIE1JQiBtb2R1bGUgZGVmaW5lcyBhIHNldCBvZiBwcmludGluZy1yZWxhdGVkCisgICAgICAgICAgICAgICAgICBURVhUVUFMLUNPTlZFTlRJT05zIGZvciB1c2UgaW4gUHJpbnRlciBNSUIgKFJGQyAzODA1KSwKKyAgICAgICAgICAgICAgICAgIEZpbmlzaGVyIE1JQiAoUkZDIDM4MDYpLCBhbmQgb3RoZXIgTUlCcyB3aGljaCBuZWVkIHRvCisgICAgICAgICAgICAgICAgICBzcGVjaWZ5IHByaW50aW5nIG1lY2hhbmlzbSBkZXRhaWxzLgorCisgICAgICAgICAgICAgICAgICBBbnkgYWRkaXRpb25zIG9yIGNoYW5nZXMgdG8gdGhlIGNvbnRlbnRzIG9mIHRoaXMgTUlCCisgICAgICAgICAgICAgICAgICBtb2R1bGUgcmVxdWlyZSBlaXRoZXIgcHVibGljYXRpb24gb2YgYW4gUkZDLCBvcgorICAgICAgICAgICAgICAgICAgRGVzaWduYXRlZCBFeHBlcnQgUmV2aWV3IGFzIGRlZmluZWQgaW4gUkZDIDI0MzQsCisgICAgICAgICAgICAgICAgICBHdWlkZWxpbmVzIGZvciBXcml0aW5nIGFuIElBTkEgQ29uc2lkZXJhdGlvbnMgU2VjdGlvbgorICAgICAgICAgICAgICAgICAgaW4gUkZDcy4gIFRoZSBEZXNpZ25hdGVkIEV4cGVydCB3aWxsIGJlIHNlbGVjdGVkIGJ5CisgICAgICAgICAgICAgICAgICB0aGUgSUVTRyBBcmVhIERpcmVjdG9yKHMpIG9mIHRoZSBBcHBsaWNhdGlvbnMgQXJlYS4KKworICAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSBUaGUgSW50ZXJuZXQgU29jaWV0eSAoMjAwNCkuIFRoZQorICAgICAgICAgICAgICAgICAgaW5pdGlhbCB2ZXJzaW9uIG9mIHRoaXMgTUlCIG1vZHVsZSB3YXMgcHVibGlzaGVkCisgICAgICAgICAgICAgICAgICBpbiBSRkMgMzgwNS4gIEZvciBmdWxsIGxlZ2FsIG5vdGljZXMgc2VlIHRoZSBSRkMKKyAgICAgICAgICAgICAgICAgIGl0c2VsZiBvciBzZWU6CisgICAgICAgICAgICAgICAgICBodHRwOi8vd3d3LmlldGYub3JnL2NvcHlyaWdodHMvaWFuYW1pYi5odG1sIgorCisgICAgUkVWSVNJT04gICAgICAiMjAwNTA5MTQwMDAwWiIgIC0tIFNlcHRlbWJlciAxNCwgMjAwNQorICAgIERFU0NSSVBUSU9OICAgIlVwZGF0ZXMgdG8gaW5jbHVkZSBtaXNzaW5nICd1bmtub3duJyB2YWx1ZXMKKwkgICAgICAgICAgICAgICBmb3IgUHJ0Q292ZXJTdGF0dXNUQywgUHJ0Q2hhbm5lbFR5cGVUQywgCisgICAgICAgICAgICAgICAgICAgUHJ0QWxlcnRHcm91cFRDIGFuZCByZW1vdmFsIG9mIGNvbW1lbnQgZm9yCisgICAgICAgICAgICAgICAgICAgZm9yIFBydEFsZXJ0R3JvdXBUQy4iCisKKyAgICBSRVZJU0lPTiAgICAgICIyMDA0MDYwMjAwMDBaIiAgLS0gSnVuZSAyLCAyMDA0CisgICAgREVTQ1JJUFRJT04gICAiT3JpZ2luYWwgdmVyc2lvbiwgcHVibGlzaGVkIGluIGNvb3JkaW5hdGlvbgorICAgICAgICAgICAgICAgICAgd2l0aCBQcmludGVyIE1JQiAoUkZDIDM4MDUpLiIKKyAgICA6Oj0geyBtaWItMiAxMDkgfQorCistLQorLS0gR2VuZXJpYyBURVhUVUFMLUNPTlZFTlRJT05zCistLQorCitQcnRDb3ZlclN0YXR1c1RDIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAtLSBUaGlzIFRDIHdhcyBleHRyYWN0ZWQgZnJvbSBwcnRDb3ZlclN0YXR1cyBpbiBSRkMgMTc1OS4KKyAgICBTVEFUVVMgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJWYWx1ZXMgZm9yIGVuY29kaW5nIHRoZSBzdGF0ZSBvZiBhIHBhcnRpY3VsYXIgY292ZXIgb3IKKyAgICAgICAgYWNjZXNzIHBhbmVsIG9uIHRoZSBwcmludGVyIGNhc2Ugb3IgZW5jbG9zdXJlLiIKKyAgICBTWU5UQVggICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICBvdGhlcigxKSwKKyAgICAgICAgICAgICAgICAgIHVua25vd24oMiksCisgICAgICAgICAgICAgICAgICBjb3Zlck9wZW4oMyksCisgICAgICAgICAgICAgICAgICBjb3ZlckNsb3NlZCg0KSwKKyAgICAgICAgICAgICAgICAgIGludGVybG9ja09wZW4oNSksCisgICAgICAgICAgICAgICAgICBpbnRlcmxvY2tDbG9zZWQoNikKKworICAgICAgICAgICAgICAgICAgfQorCistLQorLS0gR2VuZXJhbCBHcm91cCBURVhUVUFMLUNPTlZFTlRJT05zCistLQorCitQcnRHZW5lcmFsUmVzZXRUQyA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgLS0gVGhpcyBUQyB3YXMgZXh0cmFjdGVkIGZyb20gcHJ0R2VuZXJhbFJlc2V0IGluIFJGQyAxNzU5LgorICAgIFNUQVRVUyAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlZhbHVlcyBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyB0aGUgcHJ0R2VuZXJhbFJlc2V0IG9iamVjdC4KKworICAgICAgICBJZiBhIGRldmljZSBkb2VzIG5vdCBoYXZlIE5WUkFNLCB0aGUgZGV2aWNlIHNoYWxsIG5vbmUgdGhlCisgICAgICAgIGxlc3MgcmVzcG9uZCB0byBhIFNFVCB3aXRoIHRoZSB2YWx1ZSByZXNldFRvTlZSQU0oNSkgd2l0aCBhCisgICAgICAgIHNvcnQgb2Ygd2FybSByZXNldCB0aGF0IHJlc2V0cyB0aGUgZGV2aWNlIHRvIGltcGxlbWVudGF0aW9uLQorICAgICAgICBkZWZpbmVkIHN0YXRlIHRoYXQgaXMgcHJlZmVyYWJseSB1bmRlciBjb250cm9sIG9mIHRoZSBzeXN0ZW0KKyAgICAgICAgYWRtaW5pc3RyYXRvciBieSBzb21lIG1lYW5zIG91dHNpZGUgdGhlIHNjb3BlIG9mIHRoZSBQcmludGVyCisgICAgICAgIE1JQiBzcGVjaWZpY2F0aW9uLiIKKworICAgIFNZTlRBWCAgICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgIG5vdFJlc2V0dGluZygzKSwKKyAgICAgICAgICAgICAgICAgIHBvd2VyQ3ljbGVSZXNldCg0KSwgLS0gQ29sZCBTdGFydAorICAgICAgICAgICAgICAgICAgcmVzZXRUb05WUkFNKDUpLCAtLSBXYXJtIFN0YXJ0CisgICAgICAgICAgICAgICAgICByZXNldFRvRmFjdG9yeURlZmF1bHRzKDYpIC0tIFJlc2V0IGNvbnRlbnRzIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIE5WUkFNIHRvIGZhY3RvcnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gZGVmYXVsdHMKKyAgICAgICAgICAgICAgICAgIH0KKy0tCistLSBDaGFubmVsIEdyb3VwIFRFWFRVQUwtQ09OVkVOVElPTnMKKy0tCisKK1BydENoYW5uZWxUeXBlVEMgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIC0tIFRoaXMgVEMgd2FzIGV4dHJhY3RlZCBmcm9tIHBydENoYW5uZWxUeXBlIGluIFJGQyAxNzU5LgorICAgIFNUQVRVUyAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlRoaXMgZW51bWVyYXRpb24gaW5kaWNhdGVzIHRoZSB0eXBlIG9mIGNoYW5uZWwgdGhhdCBpcworICAgICAgICByZWNlaXZpbmcgam9icy4iCisgICAgU1lOVEFYICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgb3RoZXIoMSksCisgICAgICAgICAgICAgICAgICB1bmtub3duKDIpLAorICAgICAgICAgICAgICAgICAgY2hTZXJpYWxQb3J0KDMpLAorICAgICAgICAgICAgICAgICAgY2hQYXJhbGxlbFBvcnQoNCksCisgICAgICAgICAgICAgICAgICBjaElFRUUxMjg0UG9ydCg1KSwKKyAgICAgICAgICAgICAgICAgIGNoU0NTSVBvcnQoNiksCisgICAgICAgICAgICAgICAgICBjaEFwcGxlVGFsa1BBUCg3KSwKKyAgICAgICAgICAgICAgICAgICAgICAtLSBBcHBsZVRhbGsgUHJpbnRlcgorICAgICAgICAgICAgICAgICAgICAgIC0tIEFjY2VzcyBQcm90b2NvbCAoUEFQKQorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gcHJ0Q2hhbm5lbEluZm9ybWF0aW9uIGVudHJ5OgorCisgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgICAgICAgICAtLSBQcmludGVyIE5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgTmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3ludGF4OiAgICAgICBOYW1lCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTdGF0dXM6ICAgICAgIE9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBNdWx0aXBsaWNpdHk6IFNpbmdsZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgRGVzY3JpcHRpb246ICBUaGUgbmFtZSBvZiB0aGUgcHJpbnRlcgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICB3aXRoaW4gdGhlIEFwcGxlVGFsayBuYW1pbmcgc2NvcGUKKyAgICAgICAgICAgICAgICAgIGNoTFBEU2VydmVyKDgpLAorICAgICAgICAgICAgICAgICAgICAgIC0tIHBydENoYW5uZWxJbmZvcm1hdGlvbiBlbnRyeToKKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIFByaW50ZXIgcXVldWUgbmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBRdWV1ZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3ludGF4OiAgICAgICBOYW1lCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTdGF0dXM6ICAgICAgIE1hbmRhdG9yeQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgTXVsdGlwbGljaXR5OiBTaW5nbGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIERlc2NyaXB0aW9uOiBxdWV1ZSBuYW1lIGFzCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIGRlZmluZWQgaW4gW1JGQzExNzldLgorICAgICAgICAgICAgICAgICAgY2hOZXR3YXJlUlByaW50ZXIoOSksCisgICAgICAgICAgICAgICAgICAgICAgLS0gTm92ZWxsLCBJbmMuCisgICAgICAgICAgICAgICAgICAgICAgLS0gRm9yIGVhY2ggZW50cnkgb2YgdGhpcyB0eXBlLCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSBwcnRDaGFubmVsSW5mb3JtYXRpb24gbXVzdCBoYXZlIGEgcGFpciBvZgorICAgICAgICAgICAgICAgICAgICAgIC0tIGtleXdvcmRzLiAgRm9yIE5ldHdhcmUgMy54IGNoYW5uZWxzIHRoaXMgbXVzdAorICAgICAgICAgICAgICAgICAgICAgIC0tIGJlIGEgKFBTZXJ2ZXIsIFByaW50ZXIpIHBhaXIuICBGb3IgTmV0d2FyZQorICAgICAgICAgICAgICAgICAgICAgIC0tIDQueCBjaGFubmVscyBhbmQgZm9yIEludHJhbmV0V2FyZSBjaGFubmVscworICAgICAgICAgICAgICAgICAgICAgIC0tIHRoaXMgbXVzdCBiZSBhIChORFNUcmVlLCBORFNQcmludGVyKSBwYWlyLgorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gcHJ0Q2hhbm5lbEluZm9ybWF0aW9uIGVudHJpZXM6CisKKyAgICAgICAgICAgICAgICAgICAgICAtLSBQcmludCBTZXJ2ZXIgTmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBQU2VydmVyCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIE5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIFN0YXR1czogICAgICAgTWFuZGF0b3J5CisgICAgICAgICAgICAgICAgICAgICAgLS0gICBNdWx0aXBsaWNpdHk6IFNpbmdsZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgRGVzY3JpcHRpb246ICBUaGUgUHNlcnZlcidzIFNBUCBuYW1lCisgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgICAgICAgICAtLSBQcmludGVyIE51bWJlcgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBQcmludGVyCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIEludGVnZXIKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIFN0YXR1czogICAgICAgTWFuZGF0b3J5CisgICAgICAgICAgICAgICAgICAgICAgLS0gICBNdWx0aXBsaWNpdHk6IFNpbmdsZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgRGVzY3JpcHRpb246ICBUaGUgcHJpbnRlciBudW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIE5EU1RyZWUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgTkRTVHJlZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3ludGF4OiAgICAgICBOYW1lCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBNdWx0aXBsaWNpdHk6IFNpbmdsZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgRGVzY3JpcHRpb246ICBUaGUgdHJlZSdzIFNBUCBuYW1lCisKKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIE5EUyBQcmludGVyIG9iamVjdAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBORFNQcmludGVyCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIFRleHQgKFVuaWNvZGUpCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTdGF0dXM6ICAgICAgIE1hbmRhdG9yeQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgTXVsdGlwbGljaXR5OiBTaW5nbGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIERlc2NyaXB0aW9uOiAgVGhlIGZ1bGx5IHF1YWxpZmllZAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICAgICAgICAgICAgICBuYW1lIG9mIHRoZSBQcmludGVyCisgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgICAgICAgICAtLSBJbiB0aGUgTmV0d2FyZSAzLnggZW52aXJvbm1lbnQsIHRoZQorICAgICAgICAgICAgICAgICAgICAgIC0tIGNsaWVudCBjaGVja3MgdGhlIEJpbmRlcnkgb2JqZWN0CisgICAgICAgICAgICAgICAgICAgICAgLS0gcmVwcmVzZW50aW5nIHRoZSBuYW1lZCBQU2VydmVyLiAgVGhlCisgICAgICAgICAgICAgICAgICAgICAgLS0gY2xpZW50IHRoZW4gY2hlY2tzIGZvciBxdWV1ZXMgd2hpY2gKKyAgICAgICAgICAgICAgICAgICAgICAtLSBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBudW1iZXJlZAorICAgICAgICAgICAgICAgICAgICAgIC0tIHByaW50ZXIuICBJbiB0aGUgNC54IGFuZCBJbnRyYU5ldHdhcmUKKyAgICAgICAgICAgICAgICAgICAgICAtLSBlbnZpcm9ubWVudCwgdGhlIGNsaWVudCBsb29rcyB1cCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSBxdWV1ZXMgd2hpY2ggYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSBORFMgUHJpbnRlciBPYmplY3QgaW4gdGhlIG5hbWVkIFRyZWUuCisgICAgICAgICAgICAgICAgICAgICAgLS0gRGVwZW5kaW5nIG9uIGNsaWVudCBhY2Nlc3MgcmlnaHRzIHRvCisgICAgICAgICAgICAgICAgICAgICAgLS0gdGhvc2UgcXVldWVzLCB0aGUgY2xpZW50IHN1Ym1pdHMgam9icworICAgICAgICAgICAgICAgICAgICAgIC0tIHRvIHRoZSBhcHByb3ByaWF0ZSBxdWV1ZS4KKyAgICAgICAgICAgICAgICAgIGNoTmV0d2FyZVBTZXJ2ZXIoMTApLAorICAgICAgICAgICAgICAgICAgICAgIC0tIE5vdmVsbCxJbmMuCisgICAgICAgICAgICAgICAgICAgICAgLS0gRm9yIGVhY2ggZW50cnkgb2YgdGhpcyB0eXBlLCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSBwcnRDaGFubmVsSW5mb3JtYXRpb24gbXVzdCBoYXZlIGEgcGFpcgorICAgICAgICAgICAgICAgICAgICAgIC0tIG9mIGtleXdvcmRzLiAgRm9yIE5ldHdhcmUgMy54IGNoYW5uZWxzCisgICAgICAgICAgICAgICAgICAgICAgLS0gdGhpcyBtdXN0IGJlIGEgKFNlcnZlciwgUFNlcnZlcikgcGFpci4KKyAgICAgICAgICAgICAgICAgICAgICAtLSBGb3IgTmV0d2FyZSA0LnggYW5kIEludHJhbmV0V2FyZQorICAgICAgICAgICAgICAgICAgICAgIC0tIGNoYW5uZWxzLCB0aGlzIG11c3QgYmUgYQorICAgICAgICAgICAgICAgICAgICAgIC0tIChORFNUcmVlLCBORFNQU2VydmVyKSBwYWlyLgorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gcHJ0Q2hhbm5lbEluZm9ybWF0aW9uIGVudHJpZXM6CisgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgICAgICAgICAtLSBTZXJ2ZXIgTmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBTZXJ2ZXIKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIFN5bnRheDogICAgICAgTmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3RhdHVzOiAgICAgICBNYW5kYXRvcnkKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIE11bHRpcGxpY2l0eTogU2luZ2xlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZXNjcmlwdGlvbjogIFRoZSBTQVAgbmFtZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIHNlcnZlciBmb3Igd2hpY2ggdGhlIFBTZXJ2ZXIgaXMgZGVmaW5lZC4KKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIFBTZXJ2ZXIKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgUFNlcnZlcgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3ludGF4OiAgICAgICBOYW1lCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTdGF0dXM6ICAgICAgIE1hbmRhdG9yeQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgTXVsdGlwbGljaXR5OiBTaW5nbGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIERlc2NyaXB0aW9uOiAgVGhlIGJpbmRlcnkgbmFtZSBvZgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICAgICAgICAgICAgICB0aGUgUFNlcnZlcgorCisgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgICAgICAgICAtLSBORFMgVHJlZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBORFNUcmVlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIE5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIFN0YXR1czogICAgICAgTWFuZGF0b3J5CisgICAgICAgICAgICAgICAgICAgICAgLS0gICBNdWx0aXBsaWNpdHk6IFNpbmdsZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgRGVzY3JpcHRpb246ICBUaGUgTkRTIFRyZWUgbmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gUFNlcnZlcgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBORFNQU2VydmVyCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIFRleHQgKFVuaWNvZGUpCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTdGF0dXM6ICAgICAgIE1hbmRhdG9yeQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgTXVsdGlwbGljaXR5OiBTaW5nbGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIERlc2NyaXB0aW9uOiAgVGhlIGZ1bGx5IHF1YWxpZmllZAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICBuYW1lIG9mIHRoZSBQU2VydmVyIG9iamVjdCBpbiB0aGUgdHJlZS4KKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIEluIHRoZSAzLnggZW52aXJvbm1lbnQsIHRoZSBjbGllbnQKKyAgICAgICAgICAgICAgICAgICAgICAtLSBjaGVja3MgdGhlIGJpbmRlcnkgb2JqZWN0CisgICAgICAgICAgICAgICAgICAgICAgLS0gcmVwcmVzZW50aW5nIHRoZSBuYW1lZCBQU2VydmVyIG9uIHRoZQorICAgICAgICAgICAgICAgICAgICAgIC0tIG5hbWVkIFNlcnZlci4gIEluIHRoZSA0LnggYW5kCisgICAgICAgICAgICAgICAgICAgICAgLS0gSW50cmFuZXRXYXJlIGVudmlyb25tZW50LAorICAgICAgICAgICAgICAgICAgICAgIC0tIHRoZSBjbGllbnQgY2hlY2tzIHRoZSBORFMgb2JqZWN0CisgICAgICAgICAgICAgICAgICAgICAgLS0gcmVwcmVzZW50aW5nIHRoZSBuYW1lZCBQU2VydmVyIGluIHRoZQorICAgICAgICAgICAgICAgICAgICAgIC0tIG5hbWVkIFRyZWUuICBJbiBlaXRoZXIgY2FzZSwgdGhlCisgICAgICAgICAgICAgICAgICAgICAgLS0gY2xpZW50IHRoZW4gY2hlY2tzIGZvciBhbGwgcXVldWVzCisgICAgICAgICAgICAgICAgICAgICAgLS0gYXNzb2NpYXRlZCB3aXRoIHRoZSBQc2VydmVyIG9iamVjdC4KKyAgICAgICAgICAgICAgICAgICAgICAtLSBEZXBlbmRpbmcgb24gY2xpZW50IGFjY2VzcyByaWdodHMKKyAgICAgICAgICAgICAgICAgICAgICAtLSB0byB0aG9zZSBxdWV1ZXMsIHRoZSBjbGllbnQgc3VibWl0cworICAgICAgICAgICAgICAgICAgICAgIC0tIGpvYnMgdG8gdGhlIGFwcHJvcHJpYXRlIHF1ZXVlLgorICAgICAgICAgICAgICAgICAgY2hQb3J0OTEwMCgxMSksCisgICAgICAgICAgICAgICAgICAgICAgLS0gREVQUkVDQVRFRAorICAgICAgICAgICAgICAgICAgICAgIC0tIChzZWUgY2hQb3J0VENQIC0gMzc7IGNoQmlkaXJQb3J0VENQIC0gMzgpCisgICAgICAgICAgICAgICAgICBjaEFwcFNvY2tldCgxMiksCisgICAgICAgICAgICAgICAgICAgICAgLS0gQSBiaS1kaXJlY3Rpb25hbCwgTFBELWxpa2UsIHByb3RvY29sIHVzaW5nCisgICAgICAgICAgICAgICAgICAgICAgLS0gOTEwMSBmb3IgY29udHJvbCBhbmQgOTEwMCBmb3IgZGF0YS4KKyAgICAgICAgICAgICAgICAgICAgICAtLSBBZG9iZSBTeXN0ZW1zLCBJbmMuCisgICAgICAgICAgICAgICAgICBjaEZUUCgxMyksICAgICAgICAgLS0gW1JGQzk1OV0KKyAgICAgICAgICAgICAgICAgIGNoVEZUUCgxNCksICAgICAgICAtLSBbUkZDMTM1MF0KKyAgICAgICAgICAgICAgICAgIGNoRExDTExDUG9ydCgxNSksCisgICAgICAgICAgICAgICAgICBjaElCTTMyNzAoMTYpLCAgICAgLS0gSUJNIENvYXgKKyAgICAgICAgICAgICAgICAgIGNoSUJNNTI1MCgxNyksICAgICAtLSBJQk0gVHdpbmF4CisgICAgICAgICAgICAgICAgICBjaEZheCgxOCksCisgICAgICAgICAgICAgICAgICBjaElFRUUxMzk0KDE5KSwKKyAgICAgICAgICAgICAgICAgIGNoVHJhbnNwb3J0MSgyMCksCisgICAgICAgICAgICAgICAgICAgICAgLS0gVENQIHBvcnQgMzUsIGZvciByZXNlcnZlZCBUQ1AgcG9ydCBsaXN0IHNlZQorICAgICAgICAgICAgICAgICAgICAgIC0tIFtSRkMzMjMyXS4gIFRoaXMgUkZDIHNob3VsZCBhbHNvIGJlCisgICAgICAgICAgICAgICAgICAgICAgLS0gcmVmZXJlbmNlZCBmb3Igb3RoZXIgY2hhbm5lbAorICAgICAgICAgICAgICAgICAgICAgIC0tIGVudW1lcmF0aW9ucyB1dGlsaXppbmcgVENQIHBvcnQKKworICAgICAgICAgICAgICAgICAgICAgIC0tIG51bWJlcnMgMCB0aHJvdWdoIDEwMjQuCisgICAgICAgICAgICAgICAgICBjaENQQVAoMjEpLCAgICAgIC0tIFRDUCBwb3J0IDE3MAorICAgICAgICAgICAgICAgICAgICAgIC0tIERpZ2l0YWwgRXF1aXBtZW50IENvcnAuCisgICAgICAgICAgICAgICAgICBjaERDRVJlbW90ZVByb2NDYWxsKDIyKSwgLS0gT1NGCisgICAgICAgICAgICAgICAgICAgICAgLS0gREVQUkVDQVRFRAorICAgICAgICAgICAgICAgICAgY2hPTkNSZW1vdGVQcm9jQ2FsbCgyMyksIC0tIFNVTiBNaWNyb3N5c3RlbXMKKyAgICAgICAgICAgICAgICAgICAgICAtLSBERVBSRUNBVEVECisgICAgICAgICAgICAgICAgICBjaE9MRSgyNCksICAgICAgICAgLS0gTWljcm9zb2Z0CisgICAgICAgICAgICAgICAgICAgICAgLS0gREVQUkVDQVRFRAorICAgICAgICAgICAgICAgICAgY2hOYW1lZFBpcGUoMjUpLAorICAgICAgICAgICAgICAgICAgY2hQQ1ByaW50KDI2KSwgICAtLSBCYW55YW4KKyAgICAgICAgICAgICAgICAgIGNoU2VydmVyTWVzc2FnZUJsb2NrKDI3KSwKKyAgICAgICAgICAgICAgICAgICAgICAtLSBGaWxlL1ByaW50IHNoYXJpbmcgcHJvdG9jb2wgdXNlZCBieQorICAgICAgICAgICAgICAgICAgICAgIC0tIHZhcmlvdXMgbmV0d29yayBvcGVyYXRpbmcgc3lzdGVtcworICAgICAgICAgICAgICAgICAgICAgIC0tIGZyb20gSUJNIDNDb20sIE1pY3Jvc29mdCBhbmQgb3RoZXJzCisgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgICAgICAgICAtLSBwcnRDaGFubmVsSW5mb3JtYXRpb24gZW50cnk6CisgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgICAgICAgICAtLSBTZXJ2aWNlIE5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgTmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3ludGF4OiAgICAgICBOYW1lCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTdGF0dXM6ICAgICAgIE9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBNdWx0aXBsaWNpdHk6IFNpbmdsZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgRGVzY3JpcHRpb246ICBUaGUgc2VydmljZSBuYW1lIG9mCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICAgICAgICAgIHRoZSBwcmludGVyCisgICAgICAgICAgICAgICAgICBjaERQTUYoMjgpLCAgIC0tIElCTSBJbmZvcHJpbnQKKyAgICAgICAgICAgICAgICAgIGNoRExMQVBJKDI5KSwgLS0gTWljcm9zb2Z0CisgICAgICAgICAgICAgICAgICAgICAgLS0gREVQUkVDQVRFRAorICAgICAgICAgICAgICAgICAgY2hWeERBUEkoMzApLCAtLSBNaWNyb3NvZnQKKyAgICAgICAgICAgICAgICAgICAgICAtLSBERVBSRUNBVEVECisgICAgICAgICAgICAgICAgICBjaFN5c3RlbU9iamVjdE1hbmFnZXIoMzEpLCAtLSBJQk0KKyAgICAgICAgICAgICAgICAgIGNoREVDTEFUKDMyKSwKKyAgICAgICAgICAgICAgICAgICAgICAtLSBEaWdpdGFsIEVxdWlwbWVudCBDb3JwLgorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gcHJ0Q2hhbm5lbEluZm9ybWF0aW9uIGVudHJpZXM6CisgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgICAgICAgICAtLSBQb3J0IE5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgUG9ydAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3ludGF4OiAgICAgICBOYW1lCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTdGF0dXM6ICAgICAgIENvbmRpdGlvbmFsbHkKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgICAgICAgICAgICAgTWFuZGF0b3J5CisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICAgICAgICAgIChzZWUgbm90ZSBiZWxvdykKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIE11bHRpcGxpY2l0eTogU2luZ2xlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZXNjcmlwdGlvbjogIExBVCBwb3J0IG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIFNlcnZpY2UgTmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBTZXJ2aWNlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIE5hbWUKKworICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3RhdHVzOiAgICAgICBDb25kaXRpb25hbGx5CisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICAgICAgICAgIE1hbmRhdG9yeQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgTXVsdGlwbGljaXR5OiBTaW5nbGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIERlc2NyaXB0aW9uOiAgTEFUIHNlcnZpY2UgbmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gVGhlIExBVCBjaGFubmVsIG1heSBiZQorICAgICAgICAgICAgICAgICAgICAgIC0tIGlkZW50aWZpZWQgYnkgZWl0aGVyIGEgcG9ydCBvcgorICAgICAgICAgICAgICAgICAgICAgIC0tIHNlcnZpY2UsIHNvIGVpdGhlciBhCisgICAgICAgICAgICAgICAgICAgICAgLS0gUG9ydCBvciBTZXJ2aWNlIGVudHJ5IG11c3QgYmUKKyAgICAgICAgICAgICAgICAgICAgICAtLSBzcGVjaWZpZWQsIGJ1dCBub3QgYm90aC4KKyAgICAgICAgICAgICAgICAgIGNoTlBBUCgzMyksCisgICAgICAgICAgICAgICAgICBjaFVTQigzNCksIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBVbml2ZXJzYWwgU2VyaWFsIEJ1cworICAgICAgICAgICAgICAgICAgY2hJUkRBKDM1KSwgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBJbmZyYXJlZCBEYXRhIEFzc29jLiBQcm90LgorICAgICAgICAgICAgICAgICAgY2hQcmludFhDaGFuZ2UoMzYpLCAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBQcmludFhDaGFuZ2UgUHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgIGNoUG9ydFRDUCgzNyksICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgICAgICAtLSBBIHVuaWRpcmVjdGlvbmFsICJyYXciIFRDUAorICAgICAgICAgICAgICAgICAgICAgIC0tIGNoYW5uZWwgdGhhdCB1c2VzIGFuIGFkbWluaXN0cmF0aXZlbHkKKyAgICAgICAgICAgICAgICAgICAgICAtLSBhc3NpZ25lZCBUQ1AgcG9ydCBhZGRyZXNzLgorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gcHJ0Q2hhbm5lbEluZm9ybWF0aW9uIGVudHJ5OgorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gUG9ydCBOdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgUG9ydAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3ludGF4OiAgICAgICBkZWNpbWFsIG51bWJlcgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3RhdHVzOiAgICAgICBNYW5kYXRvcnkKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIE11bHRpcGxpY2l0eTogU2luZ2xlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZXNjcmlwdGlvbjogIFRDUCBwb3J0IG51bWJlcgorICAgICAgICAgICAgICAgICAgY2hCaWRpclBvcnRUQ1AoMzgpLCAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgLS0gQSBiaS1kaXJlY3Rpb25hbCB2ZXJzaW9uIG9mIGNoUG9ydFRDUAorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gcHJ0Q2hhbm5lbEluZm9ybWF0aW9uIGVudHJpZXM6CisgICAgICAgICAgICAgICAgICAgICAgLS0gKFNlZSBjaFBvcnRUQ1ApCisgICAgICAgICAgICAgICAgICBjaFVOUFAoMzkpLCAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgLS0gVW5pdmVyc2FsIE5ldHdvcmsgUHJpbnRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAtLSBQcm90b2NvbChVTlBQKS4gQSBiaS1kaXJlY3Rpb25hbCwKKyAgICAgICAgICAgICAgICAgICAgICAtLSBtdWx0aXBvcnQgbmV0d29yayBwcmludGluZworICAgICAgICAgICAgICAgICAgICAgIC0tIGFwcGxpY2F0aW9uIHByb3RvY29sIGF2YWlsYWJsZSBvbgorICAgICAgICAgICAgICAgICAgICAgIC0tIG11bHRpcGxlIHRyYW5zcG9ydCBwcm90b2NvbHMuCisgICAgICAgICAgICAgICAgICAgICAgLS0gVW5kZXJzY29yZSwgSW5jLgorICAgICAgICAgICAgICAgICAgICAgIC0tIENvbnRhY3Q6IGluZm8mdW5kZXJzY29yZS5jb20KKyAgICAgICAgICAgICAgICAgIGNoQXBwbGVUYWxrQURTUCg0MCksICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgICAgICAtLSBBcHBsZVRhbGsgRGF0YSBTdHJlYW0gUHJvdG9jb2wuCisgICAgICAgICAgICAgICAgICAgICAgLS0gQURTUCBpcyBwYXJ0IG9mIHRoZSBBcHBsZVRhbGsKKyAgICAgICAgICAgICAgICAgICAgICAtLSBzdWl0ZSBvZiBwcm90b2NvbHMuCisgICAgICAgICAgICAgICAgICAgICAgLS0gSXQgaXMgYSBzeW1tZXRyaWMsIGNvbm5lY3Rpb24tCisKKyAgICAgICAgICAgICAgICAgICAgICAtLSBvcmllbnRlZCBwcm90b2NvbCB0aGF0IG1ha2VzCisgICAgICAgICAgICAgICAgICAgICAgLS0gcG9zc2libGUgdGhlIGVzdGFibGlzaG1lbnQKKyAgICAgICAgICAgICAgICAgICAgICAtLSBhbmQgbWFpbnRlbmFuY2Ugb2YgZnVsbC1kdXBsZXgKKyAgICAgICAgICAgICAgICAgICAgICAtLSBzdHJlYW1zIG9mIGRhdGEgYnl0ZXMgYmV0d2VlbgorICAgICAgICAgICAgICAgICAgICAgIC0tIHR3byBzb2NrZXRzIGluIGFuIEFwcGxlVGFsaworICAgICAgICAgICAgICAgICAgICAgIC0tIGludGVybmV0LgorICAgICAgICAgICAgICAgICAgICAgIC0tIFNlZSBbQVBQTEVNQUNdLgorICAgICAgICAgICAgICAgICAgY2hQb3J0U1BYKDQxKSwgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgIC0tIFNlcXVlbmNlZCBQYWNrZXQgRXhjaGFuZ2UgKFNQWCkKKyAgICAgICAgICAgICAgICAgICAgICAtLSBzb2NrZXQuCisgICAgICAgICAgICAgICAgICAgICAgLS0gTm92ZWxsLCBJbmMuIFNpbWlsYXIgdG8gVENQLCBhCisgICAgICAgICAgICAgICAgICAgICAgLS0gYmktZGlyZWN0aW9uYWwgZGF0YSBwaXBlIHVzaW5nCisgICAgICAgICAgICAgICAgICAgICAgLS0gTm92ZWxsIFNQWCBhcyBhIHRyYW5zcG9ydC4KKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIHBydENoYW5uZWxJbmZvcm1hdGlvbiBlbnRyaWVzOgorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gTmV0d29yayBOdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgTmV0CisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIEhleFN0cmluZworICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3RhdHVzOiAgICAgICBNYW5kYXRvcnkKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIE11bHRpcGxpY2l0eTogU2luZ2xlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZXNjcmlwdGlvbjogIFRoZSBuZXR3b3JrIG51bWJlcgorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gTm9kZSBOdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgTm9kZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3ludGF4OiAgICAgICBIZXhTdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIFN0YXR1czogICAgICAgTWFuZGF0b3J5CisgICAgICAgICAgICAgICAgICAgICAgLS0gICBNdWx0aXBsaWNpdHk6IFNpbmdsZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgRGVzY3JpcHRpb246ICBUaGUgbm9kZSBudW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIFNvY2tldCBOdW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgU29ja2V0CisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIEhleFN0cmluZworICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3RhdHVzOiAgICAgICBNYW5kYXRvcnkKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIE11bHRpcGxpY2l0eTogU2luZ2xlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZXNjcmlwdGlvbjogIFRoZSBTUFggc29ja2V0IG51bWJlcgorICAgICAgICAgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgICAgICAgICAgLS0gVGhlcmUgbXVzdCBiZSBleGFjdGx5IG9uZSAiTmV0IiBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAtLSBvbmUgIk5vZGUiIGFuZCBvbmUgIlNvY2tldCIgZW50cnkuICBBCisgICAgICAgICAgICAgICAgICAgICAgLS0gSGV4U3RyaW5nIGlzIGEgYmluYXJ5IHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgLS0gcmVwcmVzZW50ZWQgYXMgYSBzdHJpbmcgb2YKKyAgICAgICAgICAgICAgICAgICAgICAtLSBBU0NJSSBjaGFyYWN0ZXJzIHVzaW5nIGhleGFkZWNpbWFsCisgICAgICAgICAgICAgICAgICAgICAgLS0gbm90YXRpb24uCisgICAgICAgICAgICAgICAgICBjaFBvcnRIVFRQKDQyKSwgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgIC0tIEh5cGVydGV4dCBUcmFuc2ZlciBQcm90b2NvbC4gU2VlIFtSRkMxOTQ1XQorICAgICAgICAgICAgICAgICAgICAgIC0tIGFuZCBbUkZDMjYxNl0uCisgICAgICAgICAgICAgICAgICBjaE5EUFMoNDMpLCAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgLS0gTm92ZWxsLCBJbmMuCisKKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIHBydENoYW5uZWxJbmZvcm1hdGlvbiBlbnRyeToKKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIFByaW50ZXIgQWdlbnQgTmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBQQQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3ludGF4OiAgICAgICBOYW1lCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTdGF0dXM6ICAgICAgIE1hbmRhdG9yeQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgTXVsdGlwbGljaXR5OiBTaW5nbGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIERlc2NyaXB0aW9uOiAgVGhlIE5EUFMgUHJpbnRlcgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICAgICAgICAgICAgICBBZ2VudCBOYW1lCisgICAgICAgICAgICAgICAgICBjaElQUCg0NCksICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgICAgICAtLSBJbnRlcm5ldCBQcmludGluZyBQcm90b2NvbCAoSVBQKSwKKyAgICAgICAgICAgICAgICAgICAgICAtLSAoSVBQLzEuMSAtIHNlZSBbUkZDMjkxMF0gYW5kIFtSRkMyOTExXSkKKyAgICAgICAgICAgICAgICAgICAgICAtLSBhbHNvIGFwcGxpZXMgdG8gYWxsIGZ1dHVyZSB2ZXJzaW9ucyBvZiBJUFAuCisgICAgICAgICAgICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgICAgICAgICAtLSBJUFAgUHJpbnRlciBVUkkKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgVVJJCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIFVSSSAoVW5pY29kZSBVVEYtOCBwZXIKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgICAgICAgICAgICAgW1JGQzIzOTZdKQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3RhdHVzOiAgICAgICBNYW5kYXRvcnkKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIE11bHRpcGxpY2l0eTogU2luZ2xlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZWZhdWx0OiAgICAgIG5vdCBhcHBsaWNhYmxlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZXNjcmlwdGlvbjogIFVSSSBvZiB0aGlzIElQUCBQcmludGVyCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIHdpdGhpbiBJbnRlcm5ldCBuYW1pbmcgc2NvcGUuICBVbmljb2RlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIFVURi04IFtSRkMzNjI5XSBzdHJpbmcgd2l0aAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICBoZXhhZGVjaW1hbCBlc2NhcGVzIGZvciBhbnkgbm9uLUFTQ0lJCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIGNoYXJhY3RlcnMgKHBlciBbUkZDMjM5Nl0pLgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgQ29uZm9ybWFuY2U6IEFuIElQUCBQcmludGVyIHNoYWxsIGxpc3QgYWxsCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIElQUCBVUkkgaXQgc3VwcG9ydHMgKG9uZSBwZXIgSVBQIENoYW5uZWwKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgZW50cnkpLiAgSWYgYSBVUkkgY29udGFpbnMgdGhlICdodHRwOicKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgc2NoZW1lIGl0IG11c3QgaGF2ZSBhbiBleHBsaWNpdCBwb3J0LgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU2VlOiBbUkZDMzYyOV0sIFtSRkMyMzk2XSwgW1JGQzI5MTBdLAorICAgICAgICAgICAgICAgICAgICAgLS0gICAgIFtSRkMyOTExXS4KKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIElQUCBQcmludGVyIENsaWVudCBBdXRoZW50aWNhdGlvbgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBBdXRoCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIEtleXdvcmQKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIFN0YXR1czogICAgICAgT3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIE11bHRpcGxpY2l0eTogU2luZ2xlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZWZhdWx0OiAgICAgICdub25lJworICAgICAgICAgICAgICAgICAgICAgIC0tICAgRGVzY3JpcHRpb246ICBBIGNsaWVudCBhdXRoZW50aWNhdGlvbgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICBtZWNoYW5pc20gc3VwcG9ydGVkIGZvciB0aGlzIElQUCBQcmludGVyCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIFVSSToKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgICAnbm9uZScKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgICAgIG5vIGNsaWVudCBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc20KKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgICAncmVxdWVzdGluZy11c2VyLW5hbWUnCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICBhdXRoZW50aWNhdGVkIHVzZXIgaW4gJ3JlcXVlc3RpbmctCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICB1c2VyLW5hbWUnCisKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgICAnYmFzaWMnCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICBhdXRoZW50aWNhdGVkIHVzZXIgdmlhIEhUVFAgQmFzaWMKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgICAgIG1lY2hhbmlzbQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICAgICdkaWdlc3QnCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICBhdXRoZW50aWNhdGVkIHVzZXIgdmlhIEhUVFAgRGlnZXN0CisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICBtZWNoYW5pc20KKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgICAnY2VydGlmaWNhdGUnCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICBhdXRoZW50aWNhdGVkIHVzZXIgdmlhIGNlcnRpZmljYXRlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgICBtZWNoYW5pc20KKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIENvbmZvcm1hbmNlOiBBbiBJUFAgUHJpbnRlciBzaG91bGQgbGlzdAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICBhbGwgSVBQIGNsaWVudCBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIGl0IHN1cHBvcnRzIChvbmUgcGVyIElQUCBDaGFubmVsIGVudHJ5KS4KKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgU2VlOiBbUkZDMjkxMV0gYW5kIFtSRkMyOTEwXS4KKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIElQUCBQcmludGVyIFNlY3VyaXR5CisgICAgICAgICAgICAgICAgICAgICAgLS0gICBLZXl3b3JkOiAgICAgIFNlY3VyaXR5CisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTeW50YXg6ICAgICAgIEtleXdvcmQKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIFN0YXR1czogICAgICAgT3B0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIE11bHRpcGxpY2l0eTogU2luZ2xlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZWZhdWx0OiAgICAgICdub25lJworICAgICAgICAgICAgICAgICAgICAgIC0tICAgRGVzY3JpcHRpb246ICBBIHNlY3VyaXR5IG1lY2hhbmlzbQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICBzdXBwb3J0ZWQgZm9yIHRoaXMgSVBQIFByaW50ZXIgVVJJOgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICAnbm9uZScKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgICBubyBzZWN1cml0eSBtZWNoYW5pc20KKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgJ3NzbDMnCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgU1NMMyBzZWN1cmUgY29tbXVuaWNhdGlvbnMgY2hhbm5lbAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICAgIHByb3RvY29sCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICd0bHMnCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgVExTIHNlY3VyZSBjb21tdW5pY2F0aW9ucyBjaGFubmVsCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgICAgcHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIENvbmZvcm1hbmNlOiBBbiBJUFAgUHJpbnRlciBzaG91bGQgbGlzdAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICBhbGwgSVBQIHNlY3VyaXR5IG1lY2hhbmlzbXMgaXQgc3VwcG9ydHMKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgKG9uZSBwZXIgSVBQIENoYW5uZWwgZW50cnkpLgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU2VlOiBbUkZDMjI0Nl0sIFtSRkMyOTExXS4KKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIElQUCBQcmludGVyIFByb3RvY29sIFZlcnNpb24KKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIEtleXdvcmQ6ICAgICAgVmVyc2lvbgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3ludGF4OiAgICAgICBLZXl3b3JkCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBTdGF0dXM6ICAgICAgIE9wdGlvbmFsCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBNdWx0aXBsaWNpdHk6IE11bHRpcGxlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZWZhdWx0OiAgICAgICcxLjEnCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZXNjcmlwdGlvbjogIEFsbCBvZiB0aGUgSVBQIHByb3RvY29sCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIHZlcnNpb25zIChtYWpvci5taW5vcikgc3VwcG9ydGVkIGZvcgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICB0aGlzIElQUCBQcmludGVyIFVSSToKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgJzEuMCcKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgICBJUFAvMS4wIGNvbmZvcm1pbmcgUHJpbnRlcgorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICAnMS4xJworICAgICAgICAgICAgICAgICAgICAgIC0tICAgICAgIElQUC8xLjEgY29uZm9ybWluZyBQcmludGVyCisKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIENvbmZvcm1hbmNlOiAgQW4gSVBQIFByaW50ZXIgc2hvdWxkIGxpc3QKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgYWxsIElQUCB2ZXJzaW9ucyBpdCBzdXBwb3J0cyAoYWxsIGxpc3RlZAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICBpbiBlYWNoIElQUCBDaGFubmVsIGVudHJ5KS4gIEFuIElQUAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICBDbGllbnQgc2hvdWxkIHNlbGVjdCB0aGUgaGlnaGVzdAorICAgICAgICAgICAgICAgICAgICAgIC0tICAgICBudW1iZXJlZCB2ZXJzaW9uIHRoZSBJUFAgQ2xpZW50IHN1cHBvcnRzCisgICAgICAgICAgICAgICAgICAgICAgLS0gICAgIGZvciB1c2UgaW4gYWxsIElQUCBSZXF1ZXN0cyAoZm9yIG9wdGltdW0KKyAgICAgICAgICAgICAgICAgICAgICAtLSAgICAgaW50ZXJ3b3JraW5nKS4KKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIFNlZTogW1JGQzI5MTFdLgorICAgICAgICAgICAgICAgICAgY2hTTVRQKDQ1KQorICAgICAgICAgICAgICAgICAgICAgIC0tIFByaW50IEpvYiBzdWJtaXNzaW9uIHZpYSBTaW1wbGUgTWFpbAorICAgICAgICAgICAgICAgICAgICAgIC0tIFRyYW5zZmVyIFByb3RvY29sIChTTVRQKSAtIHNlZSBbUkZDMjgyMV0KKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tIHBydENoYW5uZWxJbmZvcm1hdGlvbiBlbnRyeToKKyAgICAgICAgICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgS2V5d29yZDogICAgICBNYWlsdG8KKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIFN5bnRheDogICAgICAgTmFtZQorICAgICAgICAgICAgICAgICAgICAgIC0tICAgU3RhdHVzOiAgICAgICBNYW5kYXRvcnkKKyAgICAgICAgICAgICAgICAgICAgICAtLSAgIE11bHRpcGxpY2l0eTogU2luZ2xlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZWZhdWx0OiAgICAgIG5vdCBhcHBsaWNhYmxlCisgICAgICAgICAgICAgICAgICAgICAgLS0gICBEZXNjcmlwdGlvbjogIFRoZSBTTVRQIFVSTCBvZiB0aGUgcHJpbnRlci4KK30KKworLS0KKy0tIEludGVycHJldGVyIEdyb3VwIFRFWFRVQUwtQ09OVkVOVElPTnMKKy0tCisKK1BydEludGVycHJldGVyTGFuZ0ZhbWlseVRDIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAtLSBUaGlzIFRDIHdhcyBleHRyYWN0ZWQgZnJvbSBwcnRJbnRlcnByZXRlckxhbmdGYW1pbHkgaW4gUkZDIDE3NTkuCisgICAgU1RBVFVTICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAiVGhpcyBlbnVtZXJhdGlvbiBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgaW50ZXJwcmV0ZXIgdGhhdCBpcworICAgICAgICByZWNlaXZpbmcgam9icy4iCisgICAgU1lOVEFYICAgIElOVEVHRVIgeworICAgICAgICBvdGhlcigxKSwKKyAgICAgICAgdW5rbm93bigyKSwgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgIGxhbmdQQ0woMyksICAgICAgICAgIC0tIFBDTC4gIFN0YXJ0aW5nIHdpdGggUENMIHZlcnNpb24gNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gSFAtR0wvMiBpcyBpbmNsdWRlZCBhcyBwYXJ0IG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBQQ0wgbGFuZ3VhZ2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFBDTCBhbmQgSFAtR0wvMiBhcmUgcmVnaXN0ZXJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSB0cmFkZW1hcmtzIG9mIEhld2xldHQtUGFja2FyZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBDb21wYW55LgorICAgICAgICBsYW5nSFBHTCg0KSwgICAgICAgICAtLSBIZXdsZXR0LVBhY2thcmQgR3JhcGhpY3MgTGFuZ3VhZ2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEhQLUdMIGlzIGEgcmVnaXN0ZXJlZCB0cmFkZW1hcmsgb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkuCisgICAgICAgIGxhbmdQSkwoNSksICAgICAgICAgIC0tIFBlcmlwaGVyYWwgSm9iIExhbmd1YWdlLiAgQXBwZWFycyBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSB0aGUgZGF0YSBzdHJlYW0gYmV0d2VlbiBkYXRhIGludGVuZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGZvciBhIHBhZ2UgZGVzY3JpcHRpb24gbGFuZ3VhZ2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEhld2xldHQtUGFja2FyZCBDby4KKworICAgICAgICBsYW5nUFMoNiksICAgICAgICAgICAtLSBQb3N0U2NyaXB0ICh0bSkgTGFuZ3VhZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gUG9zdHNjcmlwdCAtIGEgdHJhZGVtYXJrIG9mIEFkb2JlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFN5c3RlbXMgSW5jb3Jwb3JhdGVkIHdoaWNoIG1heSBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSByZWdpc3RlcmVkIGluIGNlcnRhaW4ganVyaXNkaWN0aW9ucworICAgICAgICBsYW5nSVBEUyg3KSwgICAgICAgICAtLSBJbnRlbGxpZ2VudCBQcmludGVyIERhdGEgU3RyZWFtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEJpLWRpcmVjdGlvbmFsIHByaW50IGRhdGEgc3RyZWFtIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBkb2N1bWVudHMgY29uc2lzdGluZyBvZiBkYXRhIG9iamVjdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gKHRleHQsIGltYWdlLCBncmFwaGljcywgYmFyIGNvZGVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gcmVzb3VyY2VzIChmb250cywgb3ZlcmxheXMpIGFuZCBwYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBmb3JtIGFuZCBmaW5pc2hpbmcgaW5zdHJ1Y3Rpb25zLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBGYWNpbGl0YXRlcyBzeXN0ZW0gbGV2ZWwgZGV2aWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGNvbnRyb2wsIGRvY3VtZW50IHRyYWNraW5nIGFuZCBlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSByZWNvdmVyeSB0aHJvdWdob3V0IHRoZSBwcmludAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBwcm9jZXNzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBJQk0gQ29ycG9yYXRpb24uCisgICAgICAgIGxhbmdQUERTKDgpLCAgICAgICAgIC0tIElCTSBQZXJzb25hbCBQcmludGVyIERhdGEgU3RyZWFtLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBPcmlnaW5hbGx5IGNhbGxlZCBJQk0gQVNDSUksIHRoZSBuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHdhcyBjaGFuZ2VkIHRvIFBQRFMgd2hlbiB0aGUgTGFzZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gUHJpbnRlciB3YXMgaW50cm9kdWNlZCBpbiAxOTg5LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBMZXhtYXJrIEludGVybmF0aW9uYWwsIEluYy4KKyAgICAgICAgbGFuZ0VzY2FwZVAoOSksICAgICAgLS0gRXBzb24gQ29ycC4KKyAgICAgICAgbGFuZ0Vwc29uKDEwKSwKKyAgICAgICAgbGFuZ0RESUYoMTEpLCAgICAgICAgLS0gRGlnaXRhbCBEb2N1bWVudCBJbnRlcmNoYW5nZSBGb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRGlnaXRhbCBFcXVpcG1lbnQgQ29ycC4sIE1heW5hcmQgTUEKKyAgICAgICAgbGFuZ0ludGVycHJlc3MoMTIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBYZXJveCBDb3JwLgorICAgICAgICBsYW5nSVNPNjQyOSgxMyksICAgICAtLSBJU08gNjQyOS4gIENvbnRyb2wgZnVuY3Rpb25zIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBDb2RlZCBDaGFyYWN0ZXIgU2V0cyAoaGFzIEFTQ0lJCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGNvbnRyb2wgY2hhcmFjdGVycywgcGx1cyBhZGRpdGlvbmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGNvbnRyb2xzIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBjaGFyYWN0ZXIgaW1hZ2luZyBkZXZpY2VzLikKKyAgICAgICAgbGFuZ0xpbmVEYXRhKDE0KSwgICAgLS0gbGluZS1kYXRhOiAgTGluZXMgb2YgZGF0YSBhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBzZXBhcmF0ZSBBU0NJSSBvciBFQkNESUMgcmVjb3JkcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBhbmQgY29udGFpbmluZyBubyBjb250cm9sIGZ1bmN0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSAobm8gQ1IsIExGLCBIVCwgRkYsIGV0Yy4pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEZvciB1c2Ugd2l0aCB0cmFkaXRpb25hbCBsaW5lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHByaW50ZXJzLiAgTWF5IHVzZSBDUiBhbmQvb3IgTEYgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gZGVsaW1pdCBsaW5lcywgaW5zdGVhZCBvZiByZWNvcmRzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBTZWUgSVNPIDEwMTc1IERvY3VtZW50IFByaW50aW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEFwcGxpY2F0aW9uIChEUEEpIFtJU08xMDE3NV0uCisgICAgICAgIGxhbmdNT0RDQSgxNSksICAgICAgIC0tIE1peGVkIE9iamVjdCBEb2N1bWVudCBDb250ZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEFyY2hpdGVjdHVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBEZWZpbml0aW9ucyB0aGF0IGFsbG93IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBjb21wb3NpdGlvbiwgaW50ZXJjaGFuZ2UsIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBwcmVzZW50YXRpb24gb2YgZmluYWwgZm9ybQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBkb2N1bWVudHMgYXMgYSBjb2xsZWN0aW9uIG9mIGRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gb2JqZWN0cyAodGV4dCwgaW1hZ2UsIGdyYXBoaWNzLCBiYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gY29kZXMpLCByZXNvdXJjZXMgKGZvbnRzLCBvdmVybGF5cykKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBhbmQgcGFnZSwgZm9ybSBhbmQgZmluaXNoaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGluc3RydWN0aW9ucy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gSUJNIENvcnBvcmF0aW9uLgorICAgICAgICBsYW5nUkVHSVMoMTYpLCAgICAgICAtLSBSZW1vdGUgR3JhcGhpY3MgSW5zdHJ1Y3Rpb24gU2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBEaWdpdGFsIEVxdWlwbWVudCBDb3JwLiwgTWF5bmFyZCBNQQorICAgICAgICBsYW5nU0NTKDE3KSwgICAgICAgICAtLSBTTkEgQ2hhcmFjdGVyIFN0cmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBCaS1kaXJlY3Rpb25hbCBwcmludCBkYXRhIHN0cmVhbSBmb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gU05BIExVLTEgbW9kZSBvZiBjb21tdW5pY2F0aW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBJQk0KKyAgICAgICAgbGFuZ1NQREwoMTgpLCAgICAgICAgLS0gSVNPIDEwMTgwIFN0YW5kYXJkIFBhZ2UgRGVzY3JpcHRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gTGFuZ3VhZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gSVNPIFN0YW5kYXJkCisgICAgICAgIGxhbmdURUs0MDE0KDE5KSwgICAgIC0tIFRla3Ryb25peCBDb3JwLgorICAgICAgICBsYW5nUERTKDIwKSwKKyAgICAgICAgbGFuZ0lHUCgyMSksICAgICAgICAgLS0gUHJpbnRyb25peCBDb3JwLgorICAgICAgICBsYW5nQ29kZVYoMjIpLCAgICAgICAtLSBNYWdudW0gQ29kZS1WLCBJbWFnZSBhbmQgcHJpbnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBjb250cm9sIGxhbmd1YWdlIHVzZWQgdG8gY29udHJvbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBpbXBhY3QvZG90LW1hdHJpeCBwcmludGVycy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gUU1TLCBJbmMuLCBNb2JpbGUgQUwKKyAgICAgICAgbGFuZ0RTQ0RTRSgyMyksICAgICAgLS0gRFNDLURTRTogIERhdGEgU3RyZWFtIENvbXBhdGlibGUgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEVtdWxhdGlvbiBCaS1kaXJlY3Rpb25hbCBwcmludCBkYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHN0cmVhbSBmb3Igbm9uLVNOQSAoRFNDKSBhbmQgU05BIExVLTMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gMzI3MCBjb250cm9sbGVyIChEU0UpIGNvbW11bmljYXRpb25zCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIElCTQorICAgICAgICBsYW5nV1BTKDI0KSwgICAgICAgICAtLSBXaW5kb3dzIFByaW50aW5nIFN5c3RlbSwgUmVzb3VyY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gYmFzZWQgY29tbWFuZC9kYXRhIHN0cmVhbSB1c2VkIGJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIE1pY3Jvc29mdCBBdCBXb3JrIFBlcmlwaGVyYWxzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBEZXZlbG9wZWQgYnkgdGhlIE1pY3Jvc29mdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBDb3Jwb3JhdGlvbi4KKyAgICAgICAgbGFuZ0xOMDMoMjUpLCAgICAgICAgLS0gRWFybHkgREVDLVBQTDMsIERpZ2l0YWwgRXF1aXBtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIENvcnAuCisgICAgICAgIGxhbmdDQ0lUVCgyNiksCisgICAgICAgIGxhbmdRVUlDKDI3KSwgICAgICAgIC0tIFFVSUMgKFF1YWxpdHkgSW5mb3JtYXRpb24gQ29kZSksIFBhZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRGVzY3JpcHRpb24gTGFuZ3VhZ2UgZm9yIGxhc2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHByaW50ZXJzLiAgSW5jbHVkZWQgZ3JhcGhpY3MsIHByaW50ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gY29udHJvbCBjYXBhYmlsaXR5IGFuZCBlbXVsYXRpb24gb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gb3RoZXIgd2VsbC1rbm93biBwcmludGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBRTVMsIEluYy4KKyAgICAgICAgbGFuZ0NQQVAoMjgpLCAgICAgICAgLS0gQ29tbW9uIFByaW50ZXIgQWNjZXNzIFByb3RvY29sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIERpZ2l0YWwgRXF1aXBtZW50IENvcnAuCisgICAgICAgIGxhbmdEZWNQUEwoMjkpLCAgICAgIC0tIERpZ2l0YWwgQU5TSS1Db21wbGlhbnQgUHJpbnRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gUHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gKERFQy1QUEwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIERpZ2l0YWwgRXF1aXBtZW50IENvcnAuCisgICAgICAgIGxhbmdTaW1wbGVUZXh0KDMwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc2ltcGxlLXRleHQ6ICBjaGFyYWN0ZXIgY29kZWQgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gaW5jbHVkaW5nIE5VTCwgQ1IgLCBMRiwgSFQsIGFuZCBGRgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBjb250cm9sIGNoYXJhY3RlcnMuICBTZWUgSVNPIDEwMTc1CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRG9jdW1lbnQgUHJpbnRpbmcgQXBwbGljYXRpb24gKERQQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gW0lTTzEwMTc1XS4KKyAgICAgICAgbGFuZ05QQVAoMzEpLCAgICAgICAgLS0gTmV0d29yayBQcmludGVyIEFsbGlhbmNlIFByb3RvY29sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIChOUEFQKS4gIFRoaXMgcHJvdG9jb2wgaGFzIGJlZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc3VwZXJzZWRlZCBieSB0aGUgSUVFRSAxMjg0LjEgVElQU0kKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gU3RkIChyZWYuIExhbmdUSVBTSSg0OSkpLgorICAgICAgICBsYW5nRE9DKDMyKSwgICAgICAgICAtLSBEb2N1bWVudCBPcHRpb24gQ29tbWFuZHMsIEFwcGVhcnMgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gdGhlIGRhdGEgc3RyZWFtIGJldHdlZW4gZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBpbnRlbmRlZCBmb3IgYSBwYWdlIGRlc2NyaXB0aW9uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBRTVMsIEluYy4KKyAgICAgICAgbGFuZ2ltUHJlc3MoMzMpLCAgICAgLS0gaW1QUkVTUywgUGFnZSBkZXNjcmlwdGlvbiBsYW5ndWFnZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBvcmlnaW5hbGx5IGRldmVsb3BlZCBmb3IgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEltYWdlU2VydmVyIHByb2R1Y3QgbGluZS4gQSBiaW5hcnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gbGFuZ3VhZ2UgcHJvdmlkaW5nIHJlcHJlc2VudGF0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBvZiB0ZXh0LCBzaW1wbGUgZ3JhcGhpY3MsIGFuZCBzb21lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGxhcmdlIGZvcm1zIChzaW1wbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gYml0LW1hcCBhbmQgQ0NJVFQgZ3JvdXAgMy80CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGVuY29kZWQpLlRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBsYW5ndWFnZSB3YXMgaW50ZW5kZWQgdG8gYmUgc2VudCBvdmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGFuIDgtYml0IGNoYW5uZWwgYW5kIHN1cHBvcnRlZCBlYXJseQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBkb2N1bWVudCBwcmVwYXJhdGlvbiBsYW5ndWFnZXMgKGUuZy4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFRlWCBhbmQgVFJPRkYpLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBRTVMsIEluYy4KKyAgICAgICAgbGFuZ1BpbndyaXRlcigzNCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIDI0IHdpcmUgZG90IG1hdHJpeCBwcmludGVyICBmb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gVVNBLCBFdXJvcGUsIGFuZCBBc2lhIGV4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBKYXBhbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gTW9yZSB3aWRlbHkgdXNlZCBpbiBHZXJtYW55LCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc29tZSBBc2lhbiBjb3VudHJpZXMgdGhhbiBpbiBVUy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gTkVDCisgICAgICAgIGxhbmdOUERMKDM1KSwgICAgICAgIC0tIFBhZ2UgcHJpbnRlciAgZm9yIEphcGFuZXNlIG1hcmtldC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gTkVDCisgICAgICAgIGxhbmdORUMyMDFQTCgzNiksICAgIC0tIFNlcmlhbCBwcmludGVyIGxhbmd1YWdlIHVzZWQgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gdGhlIEphcGFuZXNlIG1hcmtldC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gTkVDCisgICAgICAgIGxhbmdBdXRvbWF0aWMoMzcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBBdXRvbWF0aWMgUERMIHNlbnNpbmcuICBBdXRvbWF0aWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc2Vuc2luZyBvZiB0aGUgaW50ZXJwcmV0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gbGFuZ3VhZ2UgZmFtaWx5IGJ5IHRoZSBwcmludGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGV4YW1pbmluZyB0aGUgZG9jdW1lbnQgY29udGVudC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gV2hpY2ggYWN0dWFsIGludGVycHJldGVyIGxhbmd1YWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGZhbWlsaWVzIGFyZSBzZW5zZWQgZGVwZW5kcyBvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSB0aGUgcHJpbnRlciBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgbGFuZ1BhZ2VzKDM4KSwgICAgICAgLS0gUGFnZSBwcmludGVyIEFkdmFuY2VkIEdyYXBoaWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRXNjYXBlIFNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBJQk0gSmFwYW4KKyAgICAgICAgbGFuZ0xJUFMoMzkpLCAgICAgICAgLS0gTEJQIEltYWdlIFByb2Nlc3NpbmcgU3lzdGVtCisgICAgICAgIGxhbmdUSUZGKDQwKSwgICAgICAgIC0tIFRhZ2dlZCBJbWFnZSBGaWxlIEZvcm1hdCAoQWxkdXMpCisKKyAgICAgICAgbGFuZ0RpYWdub3N0aWMoNDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBBIGhleCBkdW1wIG9mIHRoZSBpbnB1dCB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gaW50ZXJwcmV0ZXIKKyAgICAgICAgbGFuZ1BTUHJpbnRlcig0MiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFRoZSBQb3N0U2NyaXB0IExhbmd1YWdlIHVzZWQgZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGNvbnRyb2wgKHdpdGggYW55IFBETHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkCisgICAgICAgIGxhbmdDYVBTTCg0MyksICAgICAgIC0tIENhbm9uIFByaW50IFN5c3RlbXMgTGFuZ3VhZ2UKKyAgICAgICAgbGFuZ0VYQ0woNDQpLCAgICAgICAgLS0gRXh0ZW5kZWQgQ29tbWFuZCBMYW5ndWFnZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBUYWxhcmlzIFN5c3RlbXMgSW5jLgorICAgICAgICBsYW5nTENEUyg0NSksICAgICAgICAtLSBMaW5lIENvbmRpdGlvbmVkIERhdGEgU3RyZWFtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFhlcm94IENvcnBvcmF0aW9uCisgICAgICAgIGxhbmdYRVMoNDYpLCAgICAgICAgIC0tIFhlcm94IEVzY2FwZSBTZXF1ZW5jZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gWGVyb3ggQ29ycG9yYXRpb24KKyAgICAgICAgbGFuZ1BDTFhMKDQ3KSwgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFByaW50ZXIgQ29udHJvbCBMYW5ndWFnZS4gRXh0ZW5kZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gbGFuZ3VhZ2UgZmVhdHVyZXMgZm9yIHByaW50aW5nLCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gcHJpbnRlciBjb250cm9sLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBIZXdsZXR0LVBhY2thcmQgQ28uCisgICAgICAgIGxhbmdBUlQoNDgpLCAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBBZHZhbmNlZCBSZW5kZXJpbmcgVG9vbHMgKEFSVCkuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFBhZ2UgRGVzY3JpcHRpb24gbGFuZ3VhZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gb3JpZ2luYWxseSBkZXZlbG9wZWQgZm9yIHRoZSBMYXNlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBQcmVzcyBwcmludGVycy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gVGVjaG5pY2FsIHJlZmVyZW5jZSBtYW51YWw6ICJBUlQgSVYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gUmVmZXJlbmNlIE1hbnVhbCIsIE5vIEYzM00uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEZ1amkgWGVyb3ggQ28uLCBMdGQuCisgICAgICAgIGxhbmdUSVBTSSg0OSksICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBUcmFuc3BvcnQgSW5kZXBlbmRlbnQgUHJpbnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBTeXN0ZW0gSW50ZXJmYWNlIChyZWYuIElFRUUgU3RkLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSAxMjg0LjEpCisgICAgICAgIGxhbmdQcmVzY3JpYmUoNTApLCAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBQYWdlIGRlc2NyaXB0aW9uIGFuZCBwcmludGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGNvbnRyb2wgbGFuZ3VhZ2UuIEl0IGNhbiBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBkZXNjcmliZWQgd2l0aCBvcmRpbmFyeSBBU0NJSQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBUZWNobmljYWwgcmVmZXJlbmNlIG1hbnVhbDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gIlBSRVNDUklCRSBJSSBQcm9ncmFtbWluZyBNYW51YWwiCisgICAgICAgIGxhbmdMaW5lUHJpbnRlcig1MSksIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBBIHNpbXBsZS10ZXh0IGNoYXJhY3RlciBzdHJlYW0gd2hpY2gKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc3VwcG9ydHMgdGhlIGNvbnRyb2wgY29kZXMgTEYsIFZULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBGRiwgYW5kIHBsdXMgQ2VudHJvbmljcyBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBEYXRhcHJvZHVjdHMgVmVydGljYWwgRm9ybWF0IFVuaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gKFZGVSkgbGFuZ3VhZ2UgaXMgY29tbW9ubHkgdXNlZCBvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBtYW55IG9sZGVyIG1vZGVsIGxpbmUgYW5kIG1hdHJpeAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBwcmludGVycy4KKyAgICAgICAgbGFuZ0lEUCg1MiksICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEltYWdpbmcgRGV2aWNlIFByb3RvY29sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEFwcGxlIENvbXB1dGVyLgorCisgICAgICAgIGxhbmdYSkNMKDUzKSwgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBYZXJveCBKb2IgQ29udHJvbCBMYW5ndWFnZSAoSkNMKS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gQSBKb2IgQ29udHJvbCBsYW5ndWFnZSBvcmlnaW5hbGx5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGRldmVsb3BlZCBmb3IgdGhlIExhc2VyUHJlc3MgcHJpbnRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gYW5kIGlzIGNhcGFibGUgb2Ygc3dpdGNoaW5nIFBETHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFRlY2huaWNhbCByZWZlcmVuY2UgbWFudWFsOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSAiQVJUIElWIFJlZmVyZW5jZSBNYW51YWwiLCBObyBGMzNNLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBGdWppIFhlcm94IENvLiwgTHRkLgorICAgICAgICBsYW5nUERGKDU0KSwgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gQWRvYmUgUG9ydGFibGUgRG9jdW1lbnQgRm9ybWF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEFkb2JlIFN5c3RlbXMsIEluYy4KKyAgICAgICAgbGFuZ1JQREwoNTUpLCAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFJpY29oIFBhZ2UgRGVzY3JpcHRpb24gTGFuZ3VhZ2UgZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHByaW50ZXJzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBUZWNobmljYWwgbWFudWFsICJSUERMIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gcmVmZXJlbmNlIiBOby4zMDcwMjkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gUklDT0gsIENvLiBMVEQKKyAgICAgICAgbGFuZ0ludGVybWVjSVBMKDU2KSwgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEludGVybWVjIFByaW50ZXIgTGFuZ3VhZ2UgZm9yIGxhYmVsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHByaW50ZXJzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBUZWNobmljYWwgTWFudWFsOiAiSVBMIFByb2dyYW1tZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFJlZmVyZW5jZSBNYW51YWwiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEludGVybWVjIENvcnBvcmF0aW9uCisgICAgICAgIGxhbmdVQklGaW5nZXJwcmludCg1NyksICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gQW4gaW50ZWxsaWdlbnQgYmFzaWMtbGlrZSBwcm9ncmFtbWluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBsYW5ndWFnZSBmb3IgbGFiZWwgcHJpbnRlcnMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFJlZmVyZW5jZSBNYW51YWw6ICJVQkkgRmluZ2VycHJpbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gNy4xIiwgTm8uIDEtOTYwNDM0LTAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFVuaXRlZCBCYXJjb2RlIEluZHVzdHJpZXMKKyAgICAgICAgbGFuZ1VCSURpcmVjdFByb3RvY29sKDU4KSwgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBBbiBpbnRlbGxpZ2VudCBjb250cm9sIGxhbmd1YWdlIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBsYWJlbCBwcmludGVycy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gUHJvZ3JhbW1lcnMgZ3VpZGU6ICIgVUJJIERpcmVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBQcm90b2NvbCIsIE5vLiAxLTk2MDQxOS0wMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBVbml0ZWQgQmFyY29kZSBJbmR1c3RyaWVzCisgICAgICAgIGxhbmdGdWppdHN1KDU5KSwgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBGdWppdHN1IFByaW50ZXIgTGFuZ3VhZ2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gUmVmZXJlbmNlIE1hbnVhbDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gIkZNIFByaW50ZXIgU2VxdWVuY2UiIE5vLiA4MEhQLTA3NzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRlVKSVRTVSBMSU1JVEVECisgICAgICAgIGxhbmdDR00oNjApLCAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBDb21wdXRlciBHcmFwaGljcyBNZXRhZmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBNSU1FIHR5cGUgJ2ltYWdlL2NnbScKKyAgICAgICAgbGFuZ0pQRUcoNjEpLCAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEpvaW50IFBob3RvZ3JhcGhpYyBFeHBlcnRzIEdyb3VwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIE1JTUUgdHlwZSAnaW1hZ2UvanBlZycKKyAgICAgICAgbGFuZ0NBTFMxKDYyKSwgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFVTIERPRCBDQUxTMSAoc2VlIE1JTC1TVEQtMTg0MCkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBNSU1FIHR5cGUgJ2FwcGxpY2F0aW9uL2NhbHMtMTg0MCcKKyAgICAgICAgbGFuZ0NBTFMyKDYzKSwgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIFVTIERPRCBDQUxTMiAoc2VlIE1JTC1TVEQtMTg0MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gTUlNRSB0eXBlICdhcHBsaWNhdGlvbi9jYWxzLTE4NDAnCisgICAgICAgIGxhbmdOSVJTKDY0KSwgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBVUyBET0QgTklSUyAoc2VlIE1JTC1TVEQtMTg0MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gTUlNRSB0eXBlICdhcHBsaWNhdGlvbi9jYWxzLTE4NDAnCisgICAgICAgIGxhbmdDNCg2NSkgICAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBVUyBET0QgQzQgKHNlZSBNSUwtU1RELTE4NDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIE1JTUUgdHlwZSAnYXBwbGljYXRpb24vY2Fscy0xODQwJworfQorCistLQorLS0gSW5wdXQvT3V0cHV0IEdyb3VwIFRFWFRVQUwtQ09OVkVOVElPTnMKKy0tCisKK1BydElucHV0VHlwZVRDIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAtLSBUaGlzIFRDIHdhcyBleHRyYWN0ZWQgZnJvbSBwcnRJbnB1dFR5cGUgaW4gUkZDIDE3NTkuCisgICAgU1RBVFVTICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAiVGhlIHR5cGUgb2YgdGVjaG5vbG9neSAoZGlzY3JpbWluYXRlZCBwcmltYXJpbHkgYWNjb3JkaW5nIHRvCisgICAgICAgIGZlZWRlciBtZWNoYW5pc20gdHlwZSkgZW1wbG95ZWQgYnkgYSBzcGVjaWZpYyBjb21wb25lbnQgb3IKKyAgICAgICAgY29tcG9uZW50cy4iCisgICAgU1lOVEFYICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgb3RoZXIoMSksCisgICAgICAgICAgICAgICAgICB1bmtub3duKDIpLAorICAgICAgICAgICAgICAgICAgc2hlZXRGZWVkQXV0b1JlbW92YWJsZVRyYXkoMyksCisgICAgICAgICAgICAgICAgICBzaGVldEZlZWRBdXRvTm9uUmVtb3ZhYmxlVHJheSg0KSwKKyAgICAgICAgICAgICAgICAgIHNoZWV0RmVlZE1hbnVhbCg1KSwKKyAgICAgICAgICAgICAgICAgIGNvbnRpbnVvdXNSb2xsKDYpLAorICAgICAgICAgICAgICAgICAgY29udGludW91c0ZhbkZvbGQoNykKKyAgICAgICAgICAgICAgICAgIH0KKworUHJ0T3V0cHV0VHlwZVRDIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAtLSBUaGlzIFRDIHdhcyBleHRyYWN0ZWQgZnJvbSBwcnRPdXRwdXRUeXBlIGluIFJGQyAxNzU5LgorICAgIFNUQVRVUyAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlRoZSBUeXBlIG9mIHRlY2hub2xvZ3kgc3VwcG9ydGVkIGJ5IHRoaXMgb3V0cHV0IHN1YnVuaXQuIgorICAgIFNZTlRBWCAgICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgIG90aGVyKDEpLAorICAgICAgICAgICAgICAgICAgdW5rbm93bigyKSwKKyAgICAgICAgICAgICAgICAgIHJlbW92YWJsZUJpbigzKSwKKyAgICAgICAgICAgICAgICAgIHVuUmVtb3ZhYmxlQmluKDQpLAorICAgICAgICAgICAgICAgICAgY29udGludW91c1JvbGxEZXZpY2UoNSksCisgICAgICAgICAgICAgICAgICBtYWlsQm94KDYpLAorICAgICAgICAgICAgICAgICAgY29udGludW91c0ZhbkZvbGQoNykKKyAgICAgICAgICAgICAgICAgIH0KKworLS0KKy0tIE1hcmtlciBHcm91cCBURVhUVUFMLUNPTlZFTlRJT05zCistLQorCitQcnRNYXJrZXJNYXJrVGVjaFRDIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAtLSBUaGlzIFRDIHdhcyBleHRyYWN0ZWQgZnJvbSBwcnRNYXJrZXJNYXJrVGVjaCBpbiBSRkMgMTc1OS4KKyAgICBTVEFUVVMgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJUaGUgdHlwZSBvZiBtYXJraW5nIHRlY2hub2xvZ3kgdXNlZCBmb3IgdGhpcyBtYXJraW5nCisgICAgICAgIHN1YnVuaXQuIgorICAgIFNZTlRBWCAgICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgIG90aGVyKDEpLAorICAgICAgICAgICAgICAgICAgdW5rbm93bigyKSwKKyAgICAgICAgICAgICAgICAgIGVsZWN0cm9waG90b2dyYXBoaWNMRUQoMyksCisgICAgICAgICAgICAgICAgICBlbGVjdHJvcGhvdG9ncmFwaGljTGFzZXIoNCksCisgICAgICAgICAgICAgICAgICBlbGVjdHJvcGhvdG9ncmFwaGljT3RoZXIoNSksCisgICAgICAgICAgICAgICAgICBpbXBhY3RNb3ZpbmdIZWFkRG90TWF0cml4OXBpbig2KSwKKyAgICAgICAgICAgICAgICAgIGltcGFjdE1vdmluZ0hlYWREb3RNYXRyaXgyNHBpbig3KSwKKyAgICAgICAgICAgICAgICAgIGltcGFjdE1vdmluZ0hlYWREb3RNYXRyaXhPdGhlcig4KSwKKyAgICAgICAgICAgICAgICAgIGltcGFjdE1vdmluZ0hlYWRGdWxseUZvcm1lZCg5KSwKKyAgICAgICAgICAgICAgICAgIGltcGFjdEJhbmQoMTApLAorICAgICAgICAgICAgICAgICAgaW1wYWN0T3RoZXIoMTEpLAorICAgICAgICAgICAgICAgICAgaW5ramV0QXF1ZW91cygxMiksCisgICAgICAgICAgICAgICAgICBpbmtqZXRTb2xpZCgxMyksCisgICAgICAgICAgICAgICAgICBpbmtqZXRPdGhlcigxNCksCisgICAgICAgICAgICAgICAgICBwZW4oMTUpLAorICAgICAgICAgICAgICAgICAgdGhlcm1hbFRyYW5zZmVyKDE2KSwKKyAgICAgICAgICAgICAgICAgIHRoZXJtYWxTZW5zaXRpdmUoMTcpLAorICAgICAgICAgICAgICAgICAgdGhlcm1hbERpZmZ1c2lvbigxOCksCisgICAgICAgICAgICAgICAgICB0aGVybWFsT3RoZXIoMTkpLAorICAgICAgICAgICAgICAgICAgZWxlY3Ryb2Vyb3Npb24oMjApLAorICAgICAgICAgICAgICAgICAgZWxlY3Ryb3N0YXRpYygyMSksCisgICAgICAgICAgICAgICAgICBwaG90b2dyYXBoaWNNaWNyb2ZpY2hlKDIyKSwKKyAgICAgICAgICAgICAgICAgIHBob3RvZ3JhcGhpY0ltYWdlc2V0dGVyKDIzKSwKKyAgICAgICAgICAgICAgICAgIHBob3RvZ3JhcGhpY090aGVyKDI0KSwKKyAgICAgICAgICAgICAgICAgIGlvbkRlcG9zaXRpb24oMjUpLAorICAgICAgICAgICAgICAgICAgZUJlYW0oMjYpLAorICAgICAgICAgICAgICAgICAgdHlwZXNldHRlcigyNykKKyAgICAgICAgICAgICAgICAgIH0KKworUHJ0TWFya2VyU3VwcGxpZXNUeXBlVEMgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIC0tIFRoaXMgVEMgd2FzIGV4dHJhY3RlZCBmcm9tIHBydE1hcmtlclN1cHBsaWVzVHlwZSBpbiBSRkMgMTc1OS4KKyAgICBTVEFUVVMgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJUaGUgdHlwZSBvZiB0aGlzIHN1cHBseS4iCisgICAgU1lOVEFYICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgb3RoZXIoMSksCisgICAgICAgICAgICAgICAgICB1bmtub3duKDIpLAorCisgICAgICAgICAgICAgICAgLS0gVmFsdWVzIGZvciBQcmludGVyIE1JQgorICAgICAgICAgICAgICAgICAgdG9uZXIoMyksCisgICAgICAgICAgICAgICAgICB3YXN0ZVRvbmVyKDQpLAorICAgICAgICAgICAgICAgICAgaW5rKDUpLAorICAgICAgICAgICAgICAgICAgaW5rQ2FydHJpZGdlKDYpLAorICAgICAgICAgICAgICAgICAgaW5rUmliYm9uKDcpLAorICAgICAgICAgICAgICAgICAgd2FzdGVJbmsoOCksCisgICAgICAgICAgICAgICAgICBvcGMoOSksICAgICAgICAgICAgICAgLS0gcGhvdG8gY29uZHVjdG9yCisgICAgICAgICAgICAgICAgICBkZXZlbG9wZXIoMTApLAorICAgICAgICAgICAgICAgICAgZnVzZXJPaWwoMTEpLAorICAgICAgICAgICAgICAgICAgc29saWRXYXgoMTIpLAorICAgICAgICAgICAgICAgICAgcmliYm9uV2F4KDEzKSwKKyAgICAgICAgICAgICAgICAgIHdhc3RlV2F4KDE0KSwKKyAgICAgICAgICAgICAgICAgIGZ1c2VyKDE1KSwgICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIGNvcm9uYVdpcmUoMTYpLCAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIGZ1c2VyT2lsV2ljaygxNyksICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIGNsZWFuZXJVbml0KDE4KSwgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIGZ1c2VyQ2xlYW5pbmdQYWQoMTkpLCAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIHRyYW5zZmVyVW5pdCgyMCksICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIHRvbmVyQ2FydHJpZGdlKDIxKSwgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIGZ1c2VyT2lsZXIoMjIpLCAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAtLSBFbmQgb2YgdmFsdWVzIGZvciBQcmludGVyIE1JQgorICAgICAgICAgICAgICAgIC0tIFZhbHVlcyBmb3IgRmluaXNoZXIgTUlCCisgICAgICAgICAgICAgICAgICB3YXRlcigyMyksICAgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICB3YXN0ZVdhdGVyKDI0KSwgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBnbHVlV2F0ZXJBZGRpdGl2ZSgyNSksLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICB3YXN0ZVBhcGVyKDI2KSwgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBiaW5kaW5nU3VwcGx5KDI3KSwgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBiYW5kaW5nU3VwcGx5KDI4KSwgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdGl0Y2hpbmdXaXJlKDI5KSwgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzaHJpbmtXcmFwKDMwKSwgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBwYXBlcldyYXAoMzEpLCAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdGFwbGVzKDMyKSwgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBpbnNlcnRzKDMzKSwgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBjb3ZlcnMoMzQpICAgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgLS0gRW5kIG9mIHZhbHVlcyBmb3IgRmluaXNoZXIgTUlCCisgICAgICAgICAgICAgICAgICB9CisKKy0tCistLSBNZWRpYSBQYXRoIFRFWFRVQUwtQ09OVkVOVElPTnMKKy0tCisKK1BydE1lZGlhUGF0aFR5cGVUQyA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgLS0gVGhpcyBUQyB3YXMgZXh0cmFjdGVkIGZyb20gcHJ0TWVkaWFQYXRoVHlwZSBpbiBSRkMgMTc1OS4KKyAgICBTVEFUVVMgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJUaGUgdHlwZSBvZiB0aGUgbWVkaWEgcGF0aCBmb3IgdGhpcyBtZWRpYSBwYXRoLiIKKyAgICBTWU5UQVggICAgSU5URUdFUiB7CisKKyAgICAgICAgICAgICAgICAgIG90aGVyKDEpLAorICAgICAgICAgICAgICAgICAgdW5rbm93bigyKSwKKyAgICAgICAgICAgICAgICAgIGxvbmdFZGdlQmluZGluZ0R1cGxleCgzKSwKKyAgICAgICAgICAgICAgICAgIHNob3J0RWRnZUJpbmRpbmdEdXBsZXgoNCksCisgICAgICAgICAgICAgICAgICBzaW1wbGV4KDUpCisgICAgICAgICAgICAgICAgICB9CisKKy0tCistLSBDb25zb2xlIEdyb3VwIFRFWFRVQUwtQ09OVkVOVElPTnMKKy0tCisKK1BydENvbnNvbGVDb2xvclRDIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAtLSBUaGlzIFRDIHdhcyBleHRyYWN0ZWQgZnJvbSBwcnRDb25zb2xlQ29sb3IgaW4gUkZDIDE3NTkuCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlRoZSBjb2xvciBvZiB0aGlzIGxpZ2h0LiIKKyAgICBTWU5UQVggICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICBvdGhlcigxKSwKKyAgICAgICAgICAgICAgICAgIHVua25vd24oMiksCisgICAgICAgICAgICAgICAgICB3aGl0ZSgzKSwKKyAgICAgICAgICAgICAgICAgIHJlZCg0KSwKKyAgICAgICAgICAgICAgICAgIGdyZWVuKDUpLAorICAgICAgICAgICAgICAgICAgYmx1ZSg2KSwKKyAgICAgICAgICAgICAgICAgIGN5YW4oNyksCisgICAgICAgICAgICAgICAgICBtYWdlbnRhKDgpLAorICAgICAgICAgICAgICAgICAgeWVsbG93KDkpLAorICAgICAgICAgICAgICAgICAgb3JhbmdlKDEwKSAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICB9CisKK1BydENvbnNvbGVEaXNhYmxlVEMgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIC0tIFRoaXMgVEMgd2FzIGV4dHJhY3RlZCBmcm9tIHBydENvbnNvbGVEaXNhYmxlIGluIFJGQyAxNzU5LgorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJUaGlzIHZhbHVlIGluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBpbnB1dCBpcyBhY2NlcHRlZCBmcm9tCisgICAgICAgIHRoZSBvcGVyYXRvciBjb25zb2xlLiAgQSB2YWx1ZSBvZiAnZW5hYmxlZCcgaW5kaWNhdGVzIHRoYXQKKyAgICAgICAgaW5wdXQgaXMgYWNjZXB0ZWQgZnJvbSB0aGUgY29uc29sZSwgYW5kIGEgdmFsdWUgb2YgJ2Rpc2FibGVkJworICAgICAgICBpbmRpY2F0ZXMgdGhhdCBpbnB1dCBpcyBub3QgYWNjZXB0ZWQgZnJvbSB0aGUgY29uc29sZS4gIgorICAgIFNZTlRBWCAgICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgIGVuYWJsZWQoMyksCisgICAgICAgICAgICAgICAgICBkaXNhYmxlZCg0KQorICAgICAgICAgICAgICAgICAgfQorCistLQorLS0gQWxlcnQgR3JvdXAgVEVYVFVBTC1DT05WRU5USU9OcworLS0KKworUHJ0QWxlcnRUcmFpbmluZ0xldmVsVEMgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIC0tIFRoaXMgVEMgd2FzIGV4dHJhY3RlZCBmcm9tIHBydEFsZXJ0VHJhaW5pbmdMZXZlbCBpbiBSRkMgMTc1OS4KKworICAgIFNUQVRVUyAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlRoZSBsZXZlbCBvZiB0cmFpbmluZyByZXF1aXJlZCB0byBoYW5kbGUgdGhpcyBhbGVydCwgaWYKKyAgICAgICAgaHVtYW4gaW50ZXJ2ZW50aW9uIGlzIHJlcXVpcmVkLiAgVGhlIG5vSW50ZXJ2ZW50aW9uUmVxdWlyZWQKKyAgICAgICAgdmFsdWUgc2hvdWxkIGJlIHVzZWQgaWYgdGhlIGV2ZW50IGRvZXMgbm90IHJlcXVpcmUgYW55IGh1bWFuCisgICAgICAgIGludGVydmVudGlvbi4gIFRoZSB0cmFpbmluZyBsZXZlbCBpcyBhbiBlbnVtZXJhdGlvbiB0aGF0IGlzCisgICAgICAgIGRldGVybWluZWQgYW5kIGFzc2lnbmVkIGJ5IHRoZSBwcmludGVyIG1hbnVmYWN0dXJlciBiYXNlZCBvbgorICAgICAgICB0aGUgaW5mb3JtYXRpb24gb3IgdHJhaW5pbmcgcmVxdWlyZWQgdG8gaGFuZGxlIHRoaXMgYWxlcnQuCisgICAgICAgIFRoZSBwcmludGVyIHdpbGwgYnJlYWsgYWxlcnRzIGludG8gdGhlc2UgZGlmZmVyZW50IHRyYWluaW5nCisgICAgICAgIGxldmVscy4gIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiBhIG1hbmFnZW1lbnQgYXBwbGljYXRpb24KKyAgICAgICAgaW4gdGhlIHN5c3RlbSB0byBkZXRlcm1pbmUgaG93IGEgcGFydGljdWxhciBhbGVydCBpcyBoYW5kbGVkCisgICAgICAgIGFuZCBob3cgYW5kIHRvIHdob20gdGhhdCBhbGVydCBpcyByb3V0ZWQuICBUaGUgZm9sbG93aW5nIGFyZQorICAgICAgICB0aGUgZm91ciB0cmFpbmluZyBsZXZlbHMgb2YgYWxlcnRzOgorCisgICAgICAgIEZpZWxkIFNlcnZpY2UgLSBBbGVydHMgdGhhdCB0eXBpY2FsbHkgcmVxdWlyZSBhZHZhbmNlZAorICAgICAgICAgICAgdHJhaW5pbmcgYW5kIHRlY2huaWNhbCBrbm93bGVkZ2Ugb2YgdGhlIHByaW50ZXIgYW5kIGl0cworICAgICAgICAgICAgc3VidW5pdHMuICBBbiBleGFtcGxlIG9mIGEgdGVjaG5pY2FsIHBlcnNvbiB3b3VsZCBiZSBhCisgICAgICAgICAgICBtYW51ZmFjdHVyZXIncyBGaWVsZCBTZXJ2aWNlIHJlcHJlc2VudGF0aXZlLCBvciBvdGhlcgorICAgICAgICAgICAgcGVyc29uIGZvcm1hbGx5IHRyYWluZWQgYnkgdGhlIG1hbnVmYWN0dXJlciBvciBzaW1pbGFyCisgICAgICAgICAgICByZXByZXNlbnRhdGl2ZS4KKyAgICAgICAgVHJhaW5lZCAtIEFsZXJ0cyB0aGF0IHJlcXVpcmUgYW4gaW50ZXJtZWRpYXRlIG9yIG1vZGVyYXRlCisgICAgICAgICAgICBrbm93bGVkZ2Ugb2YgdGhlIHByaW50ZXIgYW5kIGl0cyBzdWJ1bml0cy4gIEEgdHlwaWNhbAorICAgICAgICAgICAgZXhhbXBsZSBvZiBzdWNoIGFuIGFsZXJ0IGlzIHJlcGxhY2luZyBhIHRvbmVyIGNhcnRyaWRnZS4KKyAgICAgICAgVW50cmFpbmVkIC0gICAgIEFsZXJ0cyB0aGF0IGNhbiBiZSBmaXhlZCB3aXRob3V0IHByaW9yCisgICAgICAgICAgICB0cmFpbmluZyBlaXRoZXIgYmVjYXVzZSB0aGUgYWN0aW9uIHRvIGNvcnJlY3QgdGhlIGFsZXJ0CisgICAgICAgICAgICBpcyBvYnZpb3VzIG9yIHRoZSBwcmludGVyIGNhbiBoZWxwIHRoZSB1bnRyYWluZWQgcGVyc29uCisgICAgICAgICAgICBmaXggdGhlIHByb2JsZW0uICBBIHR5cGljYWwgZXhhbXBsZSBvZiBzdWNoIGFuIGFsZXJ0IGlzCisgICAgICAgICAgICByZWxvYWRpbmcgcGFwZXIgdHJheXMgb3IgZW1wdHlpbmcgb3V0cHV0IGJpbnMgb24gYSBsb3cKKyAgICAgICAgICAgIGVuZCBwcmludGVyLgorICAgICAgICBNYW5hZ2VtZW50IC0gICAgQWxlcnRzIHRoYXQgaGF2ZSB0byBkbyB3aXRoIG92ZXJhbGwgb3BlcmF0aW9uCisgICAgICAgICAgICBvZiBhbmQgY29uZmlndXJhdGlvbiBvZiB0aGUgcHJpbnRlci4gIEV4YW1wbGVzIG9mIHN1Y2gKKyAgICAgICAgICAgIG1hbmFnZW1lbnQgZXZlbnRzIGFyZSBjb25maWd1cmF0aW9uIGNoYW5nZSBvZiBzdWJ1bml0cy4iCisgICAgU1lOVEFYICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgb3RoZXIoMSksCisgICAgICAgICAgICAgICAgICB1bmtub3duKDIpLAorICAgICAgICAgICAgICAgICAgdW50cmFpbmVkKDMpLAorICAgICAgICAgICAgICAgICAgdHJhaW5lZCg0KSwKKyAgICAgICAgICAgICAgICAgIGZpZWxkU2VydmljZSg1KSwKKyAgICAgICAgICAgICAgICAgIG1hbmFnZW1lbnQoNiksCisgICAgICAgICAgICAgICAgICBub0ludGVydmVudGlvblJlcXVpcmVkKDcpICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgfQorCitQcnRBbGVydEdyb3VwVEMgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIC0tIFZhbHVlcyBpbiB0aGUgcmFuZ2UgMSB0byAyOSBtdXN0IG5vdCBiZSBJQU5BLWFzc2lnbmVkIHdpdGhvdXQKKyAgICAtLSByZS1wdWJsaXNoaW5nIFByaW50ZXIgTUlCLgorICAgIC0tIFZhbHVlcyBvZiAzMCBhbmQgZ3JlYXRlciBhcmUgZm9yIHVzZSBpbiBNSUJzIHRoYXQgYXVnbWVudAorICAgIC0tIHRoZSBQcmludGVyIE1JQiwgc3VjaCBhcyB0aGUgRmluaXNoZXIgTUlCLgorICAgIC0tIFRoaXMgVEMgZXh0cmFjdGVkIGZyb20gcHJ0QWxlcnRHcm91cCBpbiBSRkMgMTc1OS4KKworICAgIFNUQVRVUyAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlRoZSB0eXBlIG9mIHN1YnVuaXQgd2l0aGluIHRoZSBwcmludGVyIG1vZGVsIHRoYXQgdGhpcyBhbGVydAorICAgICAgICBpcyByZWxhdGVkLiAgSW5wdXQsIG91dHB1dCwgYW5kIG1hcmtlcnMgYXJlIGV4YW1wbGVzIG9mCisgICAgICAgIHByaW50ZXIgbW9kZWwgZ3JvdXBzLCBpLmUuLCBleGFtcGxlcyBvZiB0eXBlcyBvZiBzdWJ1bml0cy4KKyAgICAgICAgV2hlcmV2ZXIgcG9zc2libGUsIHRoZSBlbnVtZXJhdGlvbnMgbWF0Y2ggdGhlIHN1Yi1pZGVudGlmaWVyCisgICAgICAgIHRoYXQgaWRlbnRpZmllcyB0aGUgcmVsZXZhbnQgdGFibGUgaW4gdGhlIFByaW50ZXIgTUlCLgorCisgICAgICAgIE5PVEU6IEFsZXJ0IHR5cGUgY29kZXMgaGF2ZSBiZWVuIGFkZGVkIGZvciB0aGUgSG9zdCBSZXNvdXJjZXMKKyAgICAgICAgTUlCIHN0b3JhZ2UgdGFibGUgYW5kIGRldmljZSB0YWJsZS4gIFRoZXNlIGFkZGl0aW9uYWwgdHlwZXMKKyAgICAgICAgYXJlIGZvciBzaXR1YXRpb25zIGluIHdoaWNoIHRoZSBwcmludGVyJ3Mgc3RvcmFnZSBhbmQgZGV2aWNlCisgICAgICAgIG9iamVjdHMgbXVzdCBnZW5lcmF0ZSBhbGVydHMgKGFuZCBwb3NzaWJseSB0cmFwcyBmb3IgY3JpdGljYWwKKyAgICAgICAgYWxlcnRzKS4iCisgICAgU1lOVEFYICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgb3RoZXIoMSksCisgICAgICAgICAgICAgICAgICB1bmtub3duKDIpLAorICAgICAgICAgICAgICAgIC0tIFZhbHVlcyBmb3IgSG9zdCBSZXNvdXJjZXMgTUlCCisgICAgICAgICAgICAgICAgICBob3N0UmVzb3VyY2VzTUlCU3RvcmFnZVRhYmxlKDMpLAorICAgICAgICAgICAgICAgICAgaG9zdFJlc291cmNlc01JQkRldmljZVRhYmxlKDQpLAorICAgICAgICAgICAgICAgIC0tIFZhbHVlcyBmb3IgUHJpbnRlciBNSUIKKyAgICAgICAgICAgICAgICAgIGdlbmVyYWxQcmludGVyKDUpLAorICAgICAgICAgICAgICAgICAgY292ZXIoNiksCisgICAgICAgICAgICAgICAgICBsb2NhbGl6YXRpb24oNyksCisgICAgICAgICAgICAgICAgICBpbnB1dCg4KSwKKyAgICAgICAgICAgICAgICAgIG91dHB1dCg5KSwKKyAgICAgICAgICAgICAgICAgIG1hcmtlcigxMCksCisgICAgICAgICAgICAgICAgICBtYXJrZXJTdXBwbGllcygxMSksCisgICAgICAgICAgICAgICAgICBtYXJrZXJDb2xvcmFudCgxMiksCisgICAgICAgICAgICAgICAgICBtZWRpYVBhdGgoMTMpLAorICAgICAgICAgICAgICAgICAgY2hhbm5lbCgxNCksCisgICAgICAgICAgICAgICAgICBpbnRlcnByZXRlcigxNSksCisgICAgICAgICAgICAgICAgICBjb25zb2xlRGlzcGxheUJ1ZmZlcigxNiksCisgICAgICAgICAgICAgICAgICBjb25zb2xlTGlnaHRzKDE3KSwKKyAgICAgICAgICAgICAgICAgIGFsZXJ0KDE4KSwgICAgICAgICAgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgLS0gVmFsdWVzICg1KSB0byAoMjkpIHJlc2VydmVkIGZvciBQcmludGVyIE1JQgorICAgICAgICAgICAgICAgIC0tIFZhbHVlcyBmb3IgRmluaXNoZXIgTUlCCisgICAgICAgICAgICAgICAgICBmaW5EZXZpY2UoMzApLCAgICAgICAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgZmluU3VwcGx5KDMxKSwgICAgICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIGZpblN1cHBseU1lZGlhSW5wdXQoMzIpLCAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBmaW5BdHRyaWJ1dGUoMzMpICAgICAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgIC0tIFZhbHVlcyAoMzApIHRvICgzOSkgcmVzZXJ2ZWQgZm9yIEZpbmlzaGVyIE1JQgorICAgICAgICAgICAgICAgICAgfQorCitQcnRBbGVydENvZGVUQyA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgLS0gVGhpcyBUQyB3YXMgZXh0cmFjdGVkIGZyb20gcHJ0QWxlcnRDb2RlIGluIFJGQyAxNzU5LgorICAgIFNUQVRVUyAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlRoZSBjb2RlIHRoYXQgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIGFsZXJ0IGZvciB0aGlzIGVudHJ5IGluCisKKyAgICAgICAgdGhlIHRhYmxlLiAgQmluYXJ5IGNoYW5nZSBldmVudCBhbGVydHMgZGVzY3JpYmUgc3RhdGVzIG9mIHRoZQorICAgICAgICBzdWJ1bml0IHdoaWxlIHVuYXJ5IGNoYW5nZSBldmVudCBhbGVydHMgZGVzY3JpYmUgYSBzaW5nbGUKKyAgICAgICAgZXZlbnQuICBUaGUgc2FtZSBhbGVydCBjb2RlIGNhbiBiZSB1c2VkIGZvciBhIGJpbmFyeSBjaGFuZ2UKKyAgICAgICAgZXZlbnQgb3IgYSB1bmFyeSBjaGFuZ2UgZXZlbnQsIGRlcGVuZGluZyBvbiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgQWxzbywgdGhlIHNhbWUgYWxlcnQgY29kZSBjYW4gYmUgdXNlZCB0byBpbmRpY2F0ZSBhIGNyaXRpY2FsCisgICAgICAgIG9yIG5vbi1jcml0aWNhbCAod2FybmluZykgYWxlcnQsIGRlcGVuZGluZyBvbiBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgVGhlIHZhbHVlIG9mIHBydEFsZXJ0U2V2ZXJpdHlMZXZlbCBzcGVjaWZpZXMgYmluYXJ5IHZzLiB1bmFyeQorICAgICAgICBhbmQgY3JpdGljYWwgdnMuIG5vbi1jcml0aWNhbCBmb3IgZWFjaCBldmVudCBmb3IgdGhlCisgICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIFdoaWxlIHRoZXJlIGFyZSBzb21lIHNwZWNpZmljIGNvZGVzIGZvciBtYW55IHN1YnVuaXRzLCB0aGUKKyAgICAgICAgZ2VuZXJpYyBjb2RlcyBzaG91bGQgYmUgdXNlZCBmb3IgbW9zdCBzdWJ1bml0IGFsZXJ0cy4gIFRoZQorICAgICAgICBuZXR3b3JrIG1hbmFnZW1lbnQgc3RhdGlvbiBjYW4gdGhlbiBxdWVyeSB0aGUgc3VidW5pdAorICAgICAgICBzcGVjaWZpZWQgYnkgcHJ0QWxlcnRHcm91cCB0byBkZXRlcm1pbmUgZnVydGhlciBzdWJ1bml0CisgICAgICAgIHN0YXR1cyBhbmQgb3RoZXIgc3VidW5pdCBpbmZvcm1hdGlvbi4KKworICAgICAgICBBbiBhZ2VudCBzaGFsbCBub3QgYWRkIHR3byBlbnRyaWVzIHRvIHRoZSBhbGVydCB0YWJsZSBmb3IgdGhlCisgICAgICAgIHNhbWUgZXZlbnQsIG9uZSBjb250YWluaW5nIGEgZ2VuZXJpYyBldmVudCBjb2RlIGFuZCB0aGUgb3RoZXIKKyAgICAgICAgY29udGFpbmluZyBhIHNwZWNpZmljIGV2ZW50IGNvZGU7IHRoZSBhZ2VudCBzaGFsbCBhZGQgb25seQorICAgICAgICBvbmUgZW50cnkgaW4gdGhlIGFsZXJ0IHRhYmxlIGZvciBlYWNoIGV2ZW50OyBlaXRoZXIgZ2VuZXJpYworICAgICAgICAocHJlZmVycmVkKSBvciBzcGVjaWZpYywgbm90IGJvdGguCisKKyAgICAgICAgSW1wbGVtZW50YXRpb24gb2YgdGhlIHVuYXJ5IGNoYW5nZSBldmVudAorICAgICAgICBhbGVydFJlbW92YWxPZkJpbmFyeUNoYW5nZUVudHJ5KDE4MDEpIGlzIG9wdGlvbmFsLiAgV2hlbgorICAgICAgICBpbXBsZW1lbnRlZCwgdGhpcyBhbGVydCBjb2RlIHNoYWxsIGluZGljYXRlIHRvIG5ldHdvcmsKKyAgICAgICAgbWFuYWdlbWVudCBzdGF0aW9ucyB0aGF0IHRoZSB0cmFpbGluZyBlZGdlIG9mIGEgYmluYXJ5IGNoYW5nZQorICAgICAgICBldmVudCBoYXMgb2NjdXJyZWQgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGFsZXJ0IGVudHJ5IGhhcyBiZWVuCisgICAgICAgIHJlbW92ZWQgZnJvbSB0aGUgYWxlcnQgdGFibGUuICBBcyB3aXRoIGFsbCBldmVudHMsIHRoZQorICAgICAgICBhbGVydFJlbW92YWxPZkJpbmFyeUNoYW5nZUVudHJ5KDE4MDEpIGFsZXJ0IHNoYWxsIGJlIHBsYWNlZAorICAgICAgICBhdCB0aGUgZW5kIG9mIHRoZSBhbGVydCB0YWJsZS4gIFN1Y2ggYW4gYWxlcnQgdGFibGUgZW50cnkKKyAgICAgICAgc2hhbGwgc3BlY2lmeSB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgorCisgICAgICAgIHBydEFsZXJ0U2V2ZXJpdHlMZXZlbCAgIHdhcm5pbmdVbmFyeUNoYW5nZUV2ZW50KDQpCisgICAgICAgIHBydEFsZXJ0VHJhaW5pbmdMZXZlbCAgIG5vSW50ZXJ2ZW50aW9uUmVxdWlyZWQoNykKKyAgICAgICAgcHJ0QWxlcnRHcm91cCAgICAgICAgICAgYWxlcnQoMTgpCisgICAgICAgIHBydEFsZXJ0R3JvdXBJbmRleCAgICAgIHRoZSBpbmRleCBvZiB0aGUgcm93IGluIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydCB0YWJsZSBvZiB0aGUgYmluYXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZSBldmVudCB0aGF0IHRoaXMgZXZlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzIHJlbW92ZWQuCisgICAgICAgIHBydEFsZXJ0TG9jYXRpb24gICAgICAgIHVua25vd24gKC0yKQorICAgICAgICBwcnRBbGVydENvZGUgICAgICAgICAgICBhbGVydFJlbW92YWxPZkJpbmFyeUNoYW5nZUVudHJ5KDE4MDEpCisgICAgICAgIHBydEFsZXJ0RGVzY3JpcHRpb24gICAgIDxkZXNjcmlwdGlvbiBvciBudWxsIHN0cmluZz4KKyAgICAgICAgcHJ0QWxlcnRUaW1lICAgICAgICAgICAgdGhlIHZhbHVlIG9mIHN5c1VwVGltZSBhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdGltZSBvZiB0aGUgcmVtb3ZhbCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5IGNoYW5nZSBldmVudCBmcm9tIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGVydCB0YWJsZS4KKworICAgICAgICBPcHRpb25hbGx5LCB0aGUgYWdlbnQgbWF5IGdlbmVyYXRlIGEgdHJhcCBjb2luY2lkZW50IHdpdGgKKworICAgICAgICByZW1vdmluZyB0aGUgYmluYXJ5IGNoYW5nZSBldmVudCBhbmQgcGxhY2luZyB0aGUgdW5hcnkgY2hhbmdlCisgICAgICAgIGV2ZW50IGFsZXJ0UmVtb3ZhbE9mQmluYXJ5Q2hhbmdlRW50cnkoMTgwMSkgaW4gdGhlIGFsZXJ0CisgICAgICAgIHRhYmxlLiAgRm9yIHN1Y2ggYSB0cmFwLCB0aGUgcHJ0QWxlcnRJbmRleCBzZW50IHdpdGggdGhlIGFib3ZlCisgICAgICAgIHRyYXAgcGFyYW1ldGVycyBzaGFsbCBiZSB0aGUgaW5kZXggb2YgdGhlCisgICAgICAgIGFsZXJ0UmVtb3ZhbE9mQmluYXJ5Q2hhbmdlRXZlbnQgcm93IHRoYXQgd2FzIGFkZGVkIHRvIHRoZQorICAgICAgICBwcnRBbGVydFRhYmxlOyBub3QgdGhlIGluZGV4IG9mIHRoZSByb3cgdGhhdCB3YXMgcmVtb3ZlZCBmcm9tCisgICAgICAgIHRoZSBwcnRBbGVydFRhYmxlLiIKKyAgICBTWU5UQVggICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICBvdGhlcigxKSwKKyAgICAgICAgICAgICAgICAgICAgICAtLSBhbiBldmVudCB0aGF0IGlzIG5vdCByZXByZXNlbnRlZAorICAgICAgICAgICAgICAgICAgICAgIC0tIGJ5IG9uZSBvZiB0aGUgYWxlcnQgY29kZXMKKyAgICAgICAgICAgICAgICAgICAgICAtLSBzcGVjaWZpZWQgYmVsb3cuCisgICAgICAgICAgICAgICAgICB1bmtub3duKDIpLAorICAgICAgICAgICAgICAgICAgICAgIC0tIFRoZSBmb2xsb3dpbmcgZ2VuZXJpYyBjb2RlcyBhcmUgY29tbW9uIHRvCisgICAgICAgICAgICAgICAgICAgICAgLS0gbXVsdGlwbGUgZ3JvdXBzLiAgVGhlIE5NUyBtYXkgZXhhbWluZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSBwcnRBbGVydEdyb3VwIG9iamVjdCB0byBkZXRlcm1pbmUgd2hhdCBncm91cAorICAgICAgICAgICAgICAgICAgICAgIC0tIHRvIHF1ZXJ5IGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uLgorICAgICAgICAgICAgICAgICAgY292ZXJPcGVuKDMpLAorICAgICAgICAgICAgICAgICAgY292ZXJDbG9zZWQoNCksCisgICAgICAgICAgICAgICAgICBpbnRlcmxvY2tPcGVuKDUpLAorICAgICAgICAgICAgICAgICAgaW50ZXJsb2NrQ2xvc2VkKDYpLAorICAgICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbkNoYW5nZSg3KSwKKyAgICAgICAgICAgICAgICAgIGphbSg4KSwKKyAgICAgICAgICAgICAgICAgIHN1YnVuaXRNaXNzaW5nKDkpLCAgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgLS0gVGhlIHN1YnVuaXQgdHJheSwgYmluLCBldGMuCisgICAgICAgICAgICAgICAgICAgICAgLS0gaGFzIGJlZW4gcmVtb3ZlZC4KKyAgICAgICAgICAgICAgICAgIHN1YnVuaXRMaWZlQWxtb3N0T3ZlcigxMCksICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0TGlmZU92ZXIoMTEpLCAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgc3VidW5pdEFsbW9zdEVtcHR5KDEyKSwgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIHN1YnVuaXRFbXB0eSgxMyksICAgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0QWxtb3N0RnVsbCgxNCksICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgc3VidW5pdEZ1bGwoMTUpLCAgICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIHN1YnVuaXROZWFyTGltaXQoMTYpLCAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0QXRMaW1pdCgxNyksICAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgc3VidW5pdE9wZW5lZCgxOCksICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIHN1YnVuaXRDbG9zZWQoMTkpLCAgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0VHVybmVkT24oMjApLCAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgc3VidW5pdFR1cm5lZE9mZigyMSksICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIHN1YnVuaXRPZmZsaW5lKDIyKSwgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0UG93ZXJTYXZlcigyMyksICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgc3VidW5pdFdhcm1pbmdVcCgyNCksICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIHN1YnVuaXRBZGRlZCgyNSksICAgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0UmVtb3ZlZCgyNiksICAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgc3VidW5pdFJlc291cmNlQWRkZWQoMjcpLCAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIHN1YnVuaXRSZXNvdXJjZVJlbW92ZWQoMjgpLCAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0UmVjb3ZlcmFibGVGYWlsdXJlKDI5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0VW5yZWNvdmVyYWJsZUZhaWx1cmUoMzApLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgc3VidW5pdFJlY292ZXJhYmxlU3RvcmFnZUVycm9yKDMxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0VW5yZWNvdmVyYWJsZVN0b3JhZ2VFcnJvcigzMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgc3VidW5pdE1vdG9yRmFpbHVyZSgzMyksICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIHN1YnVuaXRNZW1vcnlFeGhhdXN0ZWQoMzQpLCAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0VW5kZXJUZW1wZXJhdHVyZSgzNSksIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgc3VidW5pdE92ZXJUZW1wZXJhdHVyZSgzNiksICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIHN1YnVuaXRUaW1pbmdGYWlsdXJlKDM3KSwgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICBzdWJ1bml0VGhlcm1pc3RvckZhaWx1cmUoMzgpLCAtLSBOb3QgaW4gUkZDIDE3NTkKKworICAgICAgICAgICAgICAgIC0tIEdlbmVyYWwgUHJpbnRlciBncm91cAorICAgICAgICAgICAgICAgICAgZG9vck9wZW4oNTAxKSwgICAgLS0gREVQUkVDQVRFRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gVXNlIGNvdmVyT3BlbmVkKDMpCisgICAgICAgICAgICAgICAgICBkb29yQ2xvc2VkKDUwMiksICAtLSBERVBSRUNBVEVECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBVc2UgY292ZXJDbG9zZWQoNCkKKyAgICAgICAgICAgICAgICAgIHBvd2VyVXAoNTAzKSwKKyAgICAgICAgICAgICAgICAgIHBvd2VyRG93big1MDQpLAorICAgICAgICAgICAgICAgICAgcHJpbnRlck5NU1Jlc2V0KDUwNSksICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgICAgICAtLSBUaGUgcHJpbnRlciBoYXMgYmVlbiByZXNldCBieSBzb21lCisgICAgICAgICAgICAgICAgICAgICAgLS0gbmV0d29yayBtYW5hZ2VtZW50IHN0YXRpb24oTk1TKQorICAgICAgICAgICAgICAgICAgICAgIC0tIHdyaXRpbmcgaW50byAncHJ0R2VuZXJhbFJlc2V0Jy4KKyAgICAgICAgICAgICAgICAgIHByaW50ZXJNYW51YWxSZXNldCg1MDYpLCAgICAgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgLS0gVGhlIHByaW50ZXIgaGFzIGJlZW4gcmVzZXQgbWFudWFsbHkuCisgICAgICAgICAgICAgICAgICBwcmludGVyUmVhZHlUb1ByaW50KDUwNyksICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgICAgIC0tIFRoZSBwcmludGVyIGlzIHJlYWR5IHRvIHByaW50LiAoaS5lLiwKKyAgICAgICAgICAgICAgICAgICAgICAtLSBub3Qgd2FybWluZyB1cCwgbm90IGluIHBvd2VyIHNhdmUKKyAgICAgICAgICAgICAgICAgICAgICAtLSBzdGF0ZSwgbm90IGFkanVzdGluZyBwcmludCBxdWFsaXR5LAorICAgICAgICAgICAgICAgICAgICAgIC0tIGV0Yy4pLgorCisgICAgICAgICAgICAgICAgLS0gSW5wdXQgR3JvdXAKKyAgICAgICAgICAgICAgICAgIGlucHV0TWVkaWFUcmF5TWlzc2luZyg4MDEpLAorICAgICAgICAgICAgICAgICAgaW5wdXRNZWRpYVNpemVDaGFuZ2UoODAyKSwKKyAgICAgICAgICAgICAgICAgIGlucHV0TWVkaWFXZWlnaHRDaGFuZ2UoODAzKSwKKyAgICAgICAgICAgICAgICAgIGlucHV0TWVkaWFUeXBlQ2hhbmdlKDgwNCksCisgICAgICAgICAgICAgICAgICBpbnB1dE1lZGlhQ29sb3JDaGFuZ2UoODA1KSwKKyAgICAgICAgICAgICAgICAgIGlucHV0TWVkaWFGb3JtUGFydHNDaGFuZ2UoODA2KSwKKyAgICAgICAgICAgICAgICAgIGlucHV0TWVkaWFTdXBwbHlMb3coODA3KSwKKyAgICAgICAgICAgICAgICAgIGlucHV0TWVkaWFTdXBwbHlFbXB0eSg4MDgpLAorICAgICAgICAgICAgICAgICAgaW5wdXRNZWRpYUNoYW5nZVJlcXVlc3QoODA5KSwgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgLS0gQW4gaW50ZXJwcmV0ZXIgaGFzIGRldGVjdGVkIHRoYXQgYQorICAgICAgICAgICAgICAgICAgICAgIC0tIGRpZmZlcmVudCBtZWRpdW0gaXMgbmVlZCBpbiB0aGlzIGlucHV0CisgICAgICAgICAgICAgICAgICAgICAgLS0gdHJheSBzdWJ1bml0LiAgVGhlIHBydEFsZXJ0RGVzY3JpcHRpb24gbWF5CisgICAgICAgICAgICAgICAgICAgICAgLS0gYmUgdXNlZCB0byBjb252ZXkgYSBodW1hbiByZWFkYWJsZQorICAgICAgICAgICAgICAgICAgICAgIC0tIGRlc2NyaXB0aW9uIG9mIHRoZSBtZWRpdW0gcmVxdWlyZWQgdG8KKyAgICAgICAgICAgICAgICAgICAgICAtLSBzYXRpc2Z5IHRoZSByZXF1ZXN0LgorICAgICAgICAgICAgICAgICAgaW5wdXRNYW51YWxJbnB1dFJlcXVlc3QoODEwKSwgLS0gTm90IGluIFJGQyAxNzU5CisKKyAgICAgICAgICAgICAgICAgICAgICAtLSBBbiBpbnRlcnByZXRlciBoYXMgZGV0ZWN0ZWQgdGhhdCBtYW51YWwKKyAgICAgICAgICAgICAgICAgICAgICAtLSBpbnB1dCBpcyByZXF1aXJlZCBpbiB0aGlzIHN1YnVuaXQuICBUaGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSBwcnRBbGVydERlc2NyaXB0aW9uIG1heSBiZSB1c2VkIHRvIGNvbnZleQorICAgICAgICAgICAgICAgICAgICAgIC0tIGEgaHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgdGhlIG1lZGl1bQorICAgICAgICAgICAgICAgICAgICAgIC0tIHJlcXVpcmVkIHRvIHNhdGlzZnkgdGhlIHJlcXVlc3QuCisgICAgICAgICAgICAgICAgICBpbnB1dFRyYXlQb3NpdGlvbkZhaWx1cmUoODExKSwgLS0gTm90IGluIFJGQyAxNzU5CisgICAgICAgICAgICAgICAgICAgICAgLS0gVGhlIGlucHV0IHRyYXkgZmFpbGVkIHRvIHBvc2l0aW9uIGNvcnJlY3RseS4KKyAgICAgICAgICAgICAgICAgIGlucHV0VHJheUVsZXZhdGlvbkZhaWx1cmUoODEyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIGlucHV0Q2Fubm90RmVlZFNpemVTZWxlY3RlZCg4MTMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgIC0tIE91dHB1dCBHcm91cAorICAgICAgICAgICAgICAgICAgb3V0cHV0TWVkaWFUcmF5TWlzc2luZyg5MDEpLAorICAgICAgICAgICAgICAgICAgb3V0cHV0TWVkaWFUcmF5QWxtb3N0RnVsbCg5MDIpLAorICAgICAgICAgICAgICAgICAgb3V0cHV0TWVkaWFUcmF5RnVsbCg5MDMpLAorICAgICAgICAgICAgICAgICAgb3V0cHV0TWFpbGJveFNlbGVjdEZhaWx1cmUoOTA0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAtLSBNYXJrZXIgZ3JvdXAKKyAgICAgICAgICAgICAgICAgIG1hcmtlckZ1c2VyVW5kZXJUZW1wZXJhdHVyZSgxMDAxKSwKKyAgICAgICAgICAgICAgICAgIG1hcmtlckZ1c2VyT3ZlclRlbXBlcmF0dXJlKDEwMDIpLAorICAgICAgICAgICAgICAgICAgbWFya2VyRnVzZXJUaW1pbmdGYWlsdXJlKDEwMDMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgICAgbWFya2VyRnVzZXJUaGVybWlzdG9yRmFpbHVyZSgxMDA0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgIG1hcmtlckFkanVzdGluZ1ByaW50UXVhbGl0eSgxMDA1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAtLSBNYXJrZXIgU3VwcGxpZXMgZ3JvdXAKKyAgICAgICAgICAgICAgICAgIG1hcmtlclRvbmVyRW1wdHkoMTEwMSksCisgICAgICAgICAgICAgICAgICBtYXJrZXJJbmtFbXB0eSgxMTAyKSwKKyAgICAgICAgICAgICAgICAgIG1hcmtlclByaW50UmliYm9uRW1wdHkoMTEwMyksCisgICAgICAgICAgICAgICAgICBtYXJrZXJUb25lckFsbW9zdEVtcHR5KDExMDQpLAorICAgICAgICAgICAgICAgICAgbWFya2VySW5rQWxtb3N0RW1wdHkoMTEwNSksCisgICAgICAgICAgICAgICAgICBtYXJrZXJQcmludFJpYmJvbkFsbW9zdEVtcHR5KDExMDYpLAorICAgICAgICAgICAgICAgICAgbWFya2VyV2FzdGVUb25lclJlY2VwdGFjbGVBbG1vc3RGdWxsKDExMDcpLAorICAgICAgICAgICAgICAgICAgbWFya2VyV2FzdGVJbmtSZWNlcHRhY2xlQWxtb3N0RnVsbCgxMTA4KSwKKyAgICAgICAgICAgICAgICAgIG1hcmtlcldhc3RlVG9uZXJSZWNlcHRhY2xlRnVsbCgxMTA5KSwKKyAgICAgICAgICAgICAgICAgIG1hcmtlcldhc3RlSW5rUmVjZXB0YWNsZUZ1bGwoMTExMCksCisgICAgICAgICAgICAgICAgICBtYXJrZXJPcGNMaWZlQWxtb3N0T3ZlcigxMTExKSwKKyAgICAgICAgICAgICAgICAgIG1hcmtlck9wY0xpZmVPdmVyKDExMTIpLAorICAgICAgICAgICAgICAgICAgbWFya2VyRGV2ZWxvcGVyQWxtb3N0RW1wdHkoMTExMyksCisgICAgICAgICAgICAgICAgICBtYXJrZXJEZXZlbG9wZXJFbXB0eSgxMTE0KSwKKyAgICAgICAgICAgICAgICAgIG1hcmtlclRvbmVyQ2FydHJpZGdlTWlzc2luZygxMTE1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAtLSBNZWRpYSBQYXRoIERldmljZSBHcm91cAorICAgICAgICAgICAgICAgICAgbWVkaWFQYXRoTWVkaWFUcmF5TWlzc2luZygxMzAxKSwKKyAgICAgICAgICAgICAgICAgIG1lZGlhUGF0aE1lZGlhVHJheUFsbW9zdEZ1bGwoMTMwMiksCisgICAgICAgICAgICAgICAgICBtZWRpYVBhdGhNZWRpYVRyYXlGdWxsKDEzMDMpLAorICAgICAgICAgICAgICAgICAgbWVkaWFQYXRoQ2Fubm90RHVwbGV4TWVkaWFTZWxlY3RlZCgxMzA0KSwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIE5vdCBpbiBSRkMgMTc1OQorICAgICAgICAgICAgICAgIC0tIEludGVycHJldGVyIEdyb3VwCisgICAgICAgICAgICAgICAgICBpbnRlcnByZXRlck1lbW9yeUluY3JlYXNlKDE1MDEpLAorICAgICAgICAgICAgICAgICAgaW50ZXJwcmV0ZXJNZW1vcnlEZWNyZWFzZSgxNTAyKSwKKyAgICAgICAgICAgICAgICAgIGludGVycHJldGVyQ2FydHJpZGdlQWRkZWQoMTUwMyksCisgICAgICAgICAgICAgICAgICBpbnRlcnByZXRlckNhcnRyaWRnZURlbGV0ZWQoMTUwNCksCisgICAgICAgICAgICAgICAgICBpbnRlcnByZXRlclJlc291cmNlQWRkZWQoMTUwNSksCisgICAgICAgICAgICAgICAgICBpbnRlcnByZXRlclJlc291cmNlRGVsZXRlZCgxNTA2KSwKKyAgICAgICAgICAgICAgICAgIGludGVycHJldGVyUmVzb3VyY2VVbmF2YWlsYWJsZSgxNTA3KSwKKyAgICAgICAgICAgICAgICAgIGludGVycHJldGVyQ29tcGxleFBhZ2VFbmNvdW50ZXJlZCgxNTA5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgICAgICAtLSBUaGUgaW50ZXJwcmV0ZXIgaGFzIGVuY291bnRlcmVkIGEgcGFnZQorICAgICAgICAgICAgICAgICAgICAgIC0tIHRoYXQgaXMgdG9vIGNvbXBsZXggZm9yIHRoZSByZXNvdXJjZXMgdGhhdAorICAgICAgICAgICAgICAgICAgICAgIC0tIGFyZSBhdmFpbGFibGUuCisgICAgICAgICAgICAgICAgLS0gQWxlcnQgR3JvdXAKKyAgICAgICAgICAgICAgICAgIGFsZXJ0UmVtb3ZhbE9mQmluYXJ5Q2hhbmdlRW50cnkoMTgwMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBOb3QgaW4gUkZDIDE3NTkKKyAgICAgICAgICAgICAgICAgICAgICAtLSBBIGJpbmFyeSBjaGFuZ2UgZXZlbnQgZW50cnkgaGFzIGJlZW4KKyAgICAgICAgICAgICAgICAgICAgICAtLSByZW1vdmVkIGZyb20gdGhlIGFsZXJ0IHRhYmxlLiAgVGhpcyB1bmFyeQorICAgICAgICAgICAgICAgICAgICAgIC0tIGNoYW5nZSBhbGVydCB0YWJsZSBlbnRyeSBpcyBhZGRlZCB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAtLSBlbmQgb2YgdGhlIGFsZXJ0IHRhYmxlLgorICAgICAgICAgICAgICAgICAgfQorRU5ECisKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lBTkEvSUFOQS1SVFBST1RPLU1JQiBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BL0lBTkEtUlRQUk9UTy1NSUIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUyYzg0ZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BL0lBTkEtUlRQUk9UTy1NSUIKQEAgLTAsMCArMSw5MiBAQAorCitJQU5BLVJUUFJPVE8tTUlCIERFRklOSVRJT05TIDo6PSBCRUdJTgorCitJTVBPUlRTCisgICAgTU9EVUxFLUlERU5USVRZLCBtaWItMiAgICAgICAgICAgRlJPTSBTTk1QdjItU01JCisgICAgVEVYVFVBTC1DT05WRU5USU9OICAgICAgICAgICAgICAgRlJPTSBTTk1QdjItVEM7CisKK2lhbmFSdFByb3RvTUlCICBNT0RVTEUtSURFTlRJVFkKKyAgICBMQVNULVVQREFURUQgIjIwMDAwOTI2MDAwMFoiIC0tIFNlcHRlbWJlciAyNiwgMjAwMAorICAgIE9SR0FOSVpBVElPTiAiSUFOQSIKKyAgICBDT05UQUNULUlORk8KKyAgICAgICAgICAgICIgSW50ZXJuZXQgQXNzaWduZWQgTnVtYmVycyBBdXRob3JpdHkKKyAgICAgICAgICAgICAgSW50ZXJuZXQgQ29ycG9yYXRpb24gZm9yIEFzc2lnbmVkIE5hbWVzIGFuZCBOdW1iZXJzCisgICAgICAgICAgICAgIDQ2NzYgQWRtaXJhbHR5IFdheSwgU3VpdGUgMzMwCisgICAgICAgICAgICAgIE1hcmluYSBkZWwgUmV5LCBDQSA5MDI5Mi02NjAxCisKKyAgICAgICAgICAgICAgUGhvbmU6ICsxIDMxMCA4MjMgOTM1OAorICAgICAgICAgICAgICBFTWFpbDogaWFuYSZpYW5hLm9yZyIKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgTUlCIG1vZHVsZSBkZWZpbmVzIHRoZSBJQU5BaXBSb3V0ZVByb3RvY29sIGFuZAorICAgICAgICAgICAgSUFOQWlwTVJvdXRlUHJvdG9jb2wgdGV4dHVhbCBjb252ZW50aW9ucyBmb3IgdXNlIGluIE1JQnMKKyAgICAgICAgICAgIHdoaWNoIG5lZWQgdG8gaWRlbnRpZnkgdW5pY2FzdCBvciBtdWx0aWNhc3Qgcm91dGluZworICAgICAgICAgICAgbWVjaGFuaXNtcy4KKworICAgICAgICAgICAgQW55IGFkZGl0aW9ucyBvciBjaGFuZ2VzIHRvIHRoZSBjb250ZW50cyBvZiB0aGlzIE1JQiBtb2R1bGUKKyAgICAgICAgICAgIHJlcXVpcmUgZWl0aGVyIHB1YmxpY2F0aW9uIG9mIGFuIFJGQywgb3IgRGVzaWduYXRlZCBFeHBlcnQKKyAgICAgICAgICAgIFJldmlldyBhcyBkZWZpbmVkIGluIFJGQyAyNDM0LCBHdWlkZWxpbmVzIGZvciBXcml0aW5nIGFuCisgICAgICAgICAgICBJQU5BIENvbnNpZGVyYXRpb25zIFNlY3Rpb24gaW4gUkZDcy4gIFRoZSBEZXNpZ25hdGVkIEV4cGVydCAKKyAgICAgICAgICAgIHdpbGwgYmUgc2VsZWN0ZWQgYnkgdGhlIElFU0cgQXJlYSBEaXJlY3RvcihzKSBvZiB0aGUgUm91dGluZworICAgICAgICAgICAgQXJlYS4iCisKKyAgICBSRVZJU0lPTiAgICAgIjIwMDAwOTI2MDAwMFoiICAtLSBTZXB0ZW1iZXIgMjYsIDIwMDAgCisgICAgREVTQ1JJUFRJT04gICJPcmlnaW5hbCB2ZXJzaW9uLCBwdWJsaXNoZWQgaW4gY29vcmRpbmF0aW9uCisgICAgICAgICAgICAgICAgIHdpdGggUkZDIDI5MzIuIgorCisgICAgOjo9IHsgbWliLTIgODQgfQorCitJQU5BaXBSb3V0ZVByb3RvY29sIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKworICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIG1lY2hhbmlzbSBmb3IgbGVhcm5pbmcgcm91dGVzLiAgSW5jbHVzaW9uIG9mIHZhbHVlcyBmb3IKKyAgICAgICAgICAgIHJvdXRpbmcgcHJvdG9jb2xzIGlzIG5vdCBpbnRlbmRlZCB0byBpbXBseSB0aGF0IHRob3NlCisgICAgICAgICAgICBwcm90b2NvbHMgbmVlZCBiZSBzdXBwb3J0ZWQuIgorICAgU1lOVEFYICAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgb3RoZXIgICAgICgxKSwgIC0tIG5vdCBzcGVjaWZpZWQKKyAgICAgICAgICAgICAgICBsb2NhbCAgICAgKDIpLCAgLS0gbG9jYWwgaW50ZXJmYWNlCisgICAgICAgICAgICAgICAgbmV0bWdtdCAgICgzKSwgIC0tIHN0YXRpYyByb3V0ZQorICAgICAgICAgICAgICAgIGljbXAgICAgICAoNCksICAtLSByZXN1bHQgb2YgSUNNUCBSZWRpcmVjdAorCisgICAgICAgICAgICAgICAgICAgICAgICAtLSB0aGUgZm9sbG93aW5nIGFyZSBhbGwgZHluYW1pYworICAgICAgICAgICAgICAgICAgICAgICAgLS0gcm91dGluZyBwcm90b2NvbHMKKworICAgICAgICAgICAgICAgIGVncCAgICAgICAgKDUpLCAgLS0gRXh0ZXJpb3IgR2F0ZXdheSBQcm90b2NvbAorICAgICAgICAgICAgICAgIGdncCAgICAgICAgKDYpLCAgLS0gR2F0ZXdheS1HYXRld2F5IFByb3RvY29sCisgICAgICAgICAgICAgICAgaGVsbG8gICAgICAoNyksICAtLSBGdXp6QmFsbCBIZWxsb1NwZWFrCisgICAgICAgICAgICAgICAgcmlwICAgICAgICAoOCksICAtLSBCZXJrZWxleSBSSVAgb3IgUklQLUlJCisgICAgICAgICAgICAgICAgaXNJcyAgICAgICAoOSksICAtLSBEdWFsIElTLUlTCisgICAgICAgICAgICAgICAgZXNJcyAgICAgICAoMTApLCAtLSBJU08gOTU0MgorICAgICAgICAgICAgICAgIGNpc2NvSWdycCAgKDExKSwgLS0gQ2lzY28gSUdSUAorICAgICAgICAgICAgICAgIGJiblNwZklncCAgKDEyKSwgLS0gQkJOIFNQRiBJR1AKKyAgICAgICAgICAgICAgICBvc3BmICAgICAgICgxMyksIC0tIE9wZW4gU2hvcnRlc3QgUGF0aCBGaXJzdAorICAgICAgICAgICAgICAgIGJncCAgICAgICAgKDE0KSwgLS0gQm9yZGVyIEdhdGV3YXkgUHJvdG9jb2wKKyAgICAgICAgICAgICAgICBpZHByICAgICAgICgxNSksIC0tIEludGVyRG9tYWluIFBvbGljeSBSb3V0aW5nCisgICAgICAgICAgICAgICAgY2lzY29FaWdycCAoMTYpLCAtLSBDaXNjbyBFSUdSUAorICAgICAgICAgICAgICAgIGR2bXJwICAgICAgKDE3KSAgLS0gRFZNUlAKKyAgICAgICAgICAgICAgIH0KKworSUFOQWlwTVJvdXRlUHJvdG9jb2wgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgU1RBVFVTICAgICAgY3VycmVudAorICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbXVsdGljYXN0IHJvdXRpbmcgcHJvdG9jb2wuICBJbmNsdXNpb24gb2YgdmFsdWVzIGZvcgorICAgICAgICAgICAgbXVsdGljYXN0IHJvdXRpbmcgcHJvdG9jb2xzIGlzIG5vdCBpbnRlbmRlZCB0byBpbXBseSB0aGF0CisgICAgICAgICAgICB0aG9zZSBwcm90b2NvbHMgbmVlZCBiZSBzdXBwb3J0ZWQuIgorICAgU1lOVEFYICAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgb3RoZXIoMSksICAgICAgICAgIC0tIG5vbmUgb2YgdGhlIGZvbGxvd2luZworICAgICAgICAgICAgICAgICAgIGxvY2FsKDIpLCAgICAgICAgICAtLSBlLmcuLCBtYW51YWxseSBjb25maWd1cmVkCisgICAgICAgICAgICAgICAgICAgbmV0bWdtdCgzKSwgICAgICAgIC0tIHNldCB2aWEgbmV0Lm1nbXQgcHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgICBkdm1ycCg0KSwKKyAgICAgICAgICAgICAgICAgICBtb3NwZig1KSwKKyAgICAgICAgICAgICAgICAgICBwaW1TcGFyc2VEZW5zZSg2KSwgLS0gUElNdjEsIGJvdGggRE0gYW5kIFNNCisgICAgICAgICAgICAgICAgICAgY2J0KDcpLAorICAgICAgICAgICAgICAgICAgIHBpbVNwYXJzZU1vZGUoOCksICAtLSBQSU0tU00KKyAgICAgICAgICAgICAgICAgICBwaW1EZW5zZU1vZGUoOSksICAgLS0gUElNLURNCisgICAgICAgICAgICAgICAgICAgaWdtcE9ubHkoMTApLAorICAgICAgICAgICAgICAgICAgIGJnbXAoMTEpLAorICAgICAgICAgICAgICAgICAgIG1zZHAoMTIpCisgICAgICAgICAgICAgICB9CisKK0VORAorCisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BL0lBTkFUbjMyNzBlVEMtTUlCIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lBTkEvSUFOQVRuMzI3MGVUQy1NSUIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc3NGFjMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JQU5BL0lBTkFUbjMyNzBlVEMtTUlCCkBAIC0wLDAgKzEsMzA2IEBACisKKyAgSUFOQVRuMzI3MGVUQy1NSUIgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKKyBJTVBPUlRTCisgICAgICBNT0RVTEUtSURFTlRJVFksIG1pYi0yCisgICAgICAgICAgRlJPTSBTTk1QdjItU01JCisgICAgICBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAgICAgICBGUk9NIFNOTVB2Mi1UQzsKKworICAgIGlhbmFUbjMyNzBlVGNNaWIgTU9EVUxFLUlERU5USVRZCisgICAgICAgIExBU1QtVVBEQVRFRCAiMjAwMDA1MTAwMDAwWiIgIC0tIE1heSAxMCwgMjAwMAorICAgICAgICBPUkdBTklaQVRJT04gIklBTkEiCisgICAgICAgIENPTlRBQ1QtSU5GTworICAgICAgICAgICAgIkludGVybmV0IEFzc2lnbmVkIE51bWJlcnMgQXV0aG9yaXR5CisKKyAgICAgICAgICAgICBQb3N0YWw6IElDQU5OCisgICAgICAgICAgICAgICAgICAgICA0Njc2IEFkbWlyYWx0eSBXYXksIFN1aXRlIDMzMAorICAgICAgICAgICAgICAgICAgICAgTWFyaW5hIGRlbCBSZXksIENBIDkwMjkyCisKKyAgICAgICAgICAgICBUZWw6ICAgICsxICAzMTAgODIzIDkzNTggeDIwCisgICAgICAgICAgICAgRS1NYWlsOiBpYW5hJmlhbmEub3JnIgorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgbW9kdWxlIGRlZmluZXMgYSBzZXQgb2YgdGV4dHVhbCBjb252ZW50aW9ucworICAgICAgICAgICAgZm9yIHVzZSBieSB0aGUgVE4zMjcwRS1NSUIgYW5kIHRoZSBUTjMyNzBFLVJULU1JQi4KKworICAgICAgICAgICAgQW55IGFkZGl0aW9ucyBvciBjaGFuZ2VzIHRvIHRoZSBjb250ZW50cyBvZiB0aGlzCisgICAgICAgICAgICBNSUIgbW9kdWxlIG11c3QgZmlyc3QgYmUgZGlzY3Vzc2VkIG9uIHRoZSB0bjMyNzBlCisgICAgICAgICAgICB3b3JraW5nIGdyb3VwIGxpc3QgYXQ6IHRuMzI3MGUmbGlzdC5uaWguZ292CisgICAgICAgICAgICBhbmQgYXBwcm92ZWQgYnkgb25lIG9mIHRoZSBmb2xsb3dpbmcgVE4zMjcwRQorICAgICAgICAgICAgd29ya2luZyBncm91cCBjb250YWN0czoKKworICAgICAgICAgICAgICAgIEVkIEJhaWxleSAoY28tY2hhaXIpIC0gZWxiYWlsZXkmdXMuaWJtLmNvbQorICAgICAgICAgICAgICAgIE1pY2hhZWwgQm9lIChjby1jaGFpcikgLSBtYm9lJmNpc2NvLmNvbQorICAgICAgICAgICAgICAgIEtlbiBXaGl0ZSAtIGtlbm5ldGh3JnZuZXQuaWJtLmNvbQorICAgICAgICAgICAgICAgIFJvYmVydCBNb29yZSAtIHJlbW9vcmUmdXMuaWJtLmNvbQorCisgICAgICAgICAgICBUaGUgYWJvdmUgbGlzdCBvZiBjb250YWN0cyBjYW4gYmUgYWx0ZXJlZCB3aXRoCisgICAgICAgICAgICB0aGUgYXBwcm92YWwgb2YgdGhlIHR3byBjby1jaGFpcnMuCisKKyAgICAgICAgICAgIFRoZSBUZXh0dWFsIENvbnZlbnRpb25zIGRlZmluZWQgd2l0aGluIHRoaXMgTUlCIGhhdmUKKyAgICAgICAgICAgIG5vIHNlY3VyaXR5IGlzc3VlcyBhc3NvY2lhdGVkIHdpdGggdGhlbSB1bmxlc3MKKyAgICAgICAgICAgIGV4cGxpY2l0bHkgc3RhdGVkIGluIHRoZWlyIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgIERFU0NSSVBUSU9OIGNsYXVzZS4iCisKKyAgICAgLS0gcmV2aXNpb24gbG9nLCBpbiByZXZlcnNlIGNocm9ub2xvZ2ljYWwgb3JkZXIKKworICAgICAgICBSRVZJU0lPTiAgICAiMjAwMDA1MTAwMDAwWiIgIC0tIE1heSAxMCwgMjAwMAorICAgICAgICBERVNDUklQVElPTiAiRml4IHRvIGltcG9ydCBtaWItMiBpbnN0ZWFkIG9mIGV4cGVyaW1lbnRhbC4iCisKKyAgICAgICAgUkVWSVNJT04gICAgIjE5OTkwOTAxMTAwMFoiICAtLSBTZXB0ZW1iZXIgMSwgMTk5OQorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkluaXRpYWwgdmVyc2lvbiB0cmFuc2ZlcnJlZCBmcm9tIHRoZSBUTjMyNzBFCisgICAgICAgICAgICB3b3JraW5nIGdyb3VwIHRvIElBTkEuIgorCisgICAgICAgIDo6PSB7IG1pYi0yIDYxIH0KKworCisgIC0tIFRleHR1YWwgQ29udmVudGlvbnMKKworICBJQU5BVG4zMjcwZUFkZHJUeXBlIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAgIFNUQVRVUyBjdXJyZW50CisgICAgICBERVNDUklQVElPTgorICAgICAgICAgICJUaGUgdGV4dHVhbCBjb252ZW50aW9uIGZvciBkZWZpbmluZyB0aGUgdHlwZSBvZiBhCisgICAgICAgICAgY2xpZW50IGFkZHJlc3MuICBUaGUgZW51bWVyYXRpb24gdmFsdWUgdW5rbm93bigwKSBpcworICAgICAgICAgIGFsc28gdXNlZCB0byBpbmRpY2F0ZSB0aGF0IG5vIGFjdHVhbCBhZGRyZXNzIGlzIHByZXNlbnQuIgorICAgICAgU1lOVEFYIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgICAgIHVua25vd24oMCksCisgICAgICAgICAgICAgICAgICAgICAgaXB2NCgxKSwKKyAgICAgICAgICAgICAgICAgICAgICBpcHY2KDIpCisgICAgICAgICAgICAgICAgICAgICB9CisKKyAgSUFOQVRuMzI3MGVBZGRyZXNzIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAgIFNUQVRVUyBjdXJyZW50CisgICAgICBERVNDUklQVElPTgorICAgICAgICAgICJEZW5vdGVzIGEgY2xpZW50IGFkZHJlc3MuICBUaGUgdHlwZSBvZiBjbGllbnQgYWRkcmVzcyBpcworICAgICAgICAgIGRldGVybWluZWQgYnkgdXNlIG9mIHRoZSBJQU5BVG4zMjcwZUFkZHJUeXBlIHRleHR1YWwKK2NvbnZlbnRpb24uCisgICAgICAgICAgVGhlIGxlbmd0aCBpbiBvY3RldHMgb2YgYSBJQU5BVG4zMjcwZUFkZHJlc3Mgb2JqZWN0IGlzOgorCisgICAgICAgICAgICBJQU5BVG4zMjcwZUFkZHJUeXBlICAgQWRkcmVzcyBMZW5ndGgKKyAgICAgICAgICAgICsrKysrKysrKysrKysrKysrKysgICArKysrKysrKysrKysrKworICAgICAgICAgICAgICAgICAgICAgdW5rbm93bigwKSAgIG5vdCBzcGVjaWZpZWQgb3IgdW5rbm93bjsgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsIGxlbmd0aCBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQU5BVG4zMjcwZUFkZHJlc3Mgb2N0ZXQgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaWNhdGVzIGlmIGFuIGFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBwcmVzZW50CisgICAgICAgICAgICAgICAgICAgICAgICBpcHY0KDEpICAgNCBPQ1RFVFMKKyAgICAgICAgICAgICAgICAgICAgICAgIGlwdjYoMikgICAxNiBPQ1RFVFMKKworICAgICAgICAgIFRoaXMgdGV4dHVhbCBjb252ZW50aW9uIGlzIHNpbWlsYXIgdG8gdGhlIFRBZGRyZXNzCisgICAgICAgICAgVEMgZGVmaW5lZCBieSBSRkMxOTAzIGV4Y2VwdCB0aGF0IGl0IGFsbG93cyBhCisgICAgICAgICAgemVyby1sZW5ndGggb2N0ZXQgc3RyaW5nIGFuZCBpcyBub3QgYSBmdWxsIHRyYW5zcG9ydAorICAgICAgICAgIGxheWVyIGFkZHJlc3MuIgorICAgICAgU1lOVEFYIE9DVEVUIFNUUklORyAoU0laRSAoMC4uMjU1KSkKKworICBJQU5BVG4zMjcwZUNsaWVudFR5cGUgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgICAgU1RBVFVTIGN1cnJlbnQKKyAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgIlRoZSB0ZXh0dWFsIGNvbnZlbnRpb24gZm9yIGRlZmluaW5nIHRoZSBzZXQgb2YKKyAgICAgICAgICAgZW51bWVyYXRpb25zIHVzZWQgYnkgdG4zMjcwZVRjcENvbm5DbGllbnRJZEZvcm1hdAorICAgICAgICAgICBpbiB0aGUgVE4zMjcwRS1NSUI6CisKKyAgICAgICAgICAgRU5VTUVSQVRJT04gICAgICAgIE9DVEVUcyAgREVTQ1JJUFRJT04KKworICAgICAgICAgICBub25lKDEpICAgICAgICAgICAgICAwICAgICBOb3Qgc3BlY2lmaWVkCisgICAgICAgICAgIG90aGVyKDIpICAgICAgICAgICAxLi41MTIgIEltcGxlbWVudGF0aW9uIHNwZWNpZmljCisgICAgICAgICAgIGlwdjQoMykgICAgICAgICAgICAgIDYgICAgIDQtb2N0ZXQgSVAgQWRkcmVzcyBwbHVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDItb2N0ZXQgVENQIFBvcnQKKyAgICAgICAgICAgaXB2Nig0KSAgICAgICAgICAgICAgMTggICAgMTYtb2N0ZXQgSVB2NiBBZGRyZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdXMgMi1vY3RldCBUQ1AgUG9ydAorICAgICAgICAgICBkb21haW5OYW1lKDUpICAgICAgMS4uNTEyICBUaGUgRE5TIG5hbWUgb2YgYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQuCisgICAgICAgICAgIHRydW5jRG9tYWluTmFtZSg2KSAxLi41MTIgIFRoZSAodHJ1bmNhdGVkKSBETlMgbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBhIGNsaWVudC4KKyAgICAgICAgICAgc3RyaW5nKDcpICAgICAgICAgIDEuLjUxMiAgVW5rbm93biBVdGY4U3RyaW5nCisgICAgICAgICAgIGNlcnRpZmljYXRlKDgpICAgICAxLi41MTIgIGNlcnRpZmljYXRlCisgICAgICAgICAgIHVzZXJJZCg5KSAgICAgICAgICAxLi44ICAgIENsaWVudCdzIHVzZXJpZAorICAgICAgICAgICB4NTA5ZG4oMTApICAgICAgICAgMS4uNTEyICBYLjUwOSBEaXN0aW5ndWlzaGVkIE5hbWUKKworICAgICAgICAgICBSZXByZXNlbnRhdGlvbiBvZiBhIGNlcnRpZmljYXRlKDgpIG1heSBiZSBsZWFkIHRvCisgICAgICAgICAgIGEgc2VjdXJpdHkgZXhwb3N1cmUgYW5kIGlzIE5PVCBSRUNPTU1FTkRFRCB3aXRob3V0CisgICAgICAgICAgIGFkZXF1YXRlIHNlY3VyaXR5LiIKKyAgICAgIFNZTlRBWCBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAgICBub25lKDEpLAorICAgICAgICAgICAgICAgICAgICAgIG90aGVyKDIpLAorICAgICAgICAgICAgICAgICAgICAgIGlwdjQoMyksCisgICAgICAgICAgICAgICAgICAgICAgaXB2Nig0KSwKKyAgICAgICAgICAgICAgICAgICAgICBkb21haW5OYW1lKDUpLAorICAgICAgICAgICAgICAgICAgICAgIHRydW5jRG9tYWluTmFtZSg2KSwKKyAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcoNyksCisgICAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGUoOCksCisgICAgICAgICAgICAgICAgICAgICAgdXNlcklkKDkpLAorICAgICAgICAgICAgICAgICAgICAgIHg1MDlkbigxMCkKKyAgICAgICAgICAgICAgICAgICAgIH0KKworICBJQU5BVG4zMjcwRnVuY3Rpb25zIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAgIFNUQVRVUyBjdXJyZW50CisgICAgICBERVNDUklQVElPTgorICAgICAgICAgICJUaGlzIHRleHR1YWwgY29udmVudGlvbiByZWZsZWN0cyB0aGUgY3VycmVudCBzZXQgb2YKKyAgICAgICAgICBUTjMyNzAgYW5kIFROMzI3MEUgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIG5lZ290aWF0ZWQKKyAgICAgICAgICBiZXR3ZWVuIGEgc2VydmVyIGFuZCBpdHMgY2xpZW50OgorCisgICAgICAgICAgUkZDODU2CisgICAgICAgICAgdHJhbnNtaXRCaW5hcnkgIFRoZSBzZW5kZXIgb2YgdGhpcyBjb21tYW5kIFJFUVVFU1RTCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb24gdG8gYmVnaW4gdHJhbnNtaXR0aW5nLCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtcyB0aGF0IGl0IHdpbGwgbm93IGJlZ2luCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbWl0dGluZyBjaGFyYWN0ZXJzIHdoaWNoIGFyZSB0bworICAgICAgICAgICAgICAgICAgICAgICAgICBiZSBpbnRlcnByZXRlZCBhcyA4IGJpdHMgb2YgYmluYXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgYnkgdGhlIHJlY2VpdmVyIG9mIHRoZSBkYXRhLgorICAgICAgICAgIFJGQzg2MAorICAgICAgICAgIHRpbWluZ01hcmsgICAgICBUaGUgc2VuZGVyIG9mIHRoaXMgY29tbWFuZCBSRVFVRVNUUworICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHRoZSByZWNlaXZlciBvZiB0aGlzIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGEgV0lMTCBUSU1JTkctTUFSSyBpbiB0aGUgZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0gYXQgdGhlICdhcHByb3ByaWF0ZSBwbGFjZScuCisgICAgICAgICAgUkZDODg1CisgICAgICAgICAgZW5kT2ZSZWNvcmQgICAgIFRoZSBzZW5kZXIgb2YgdGhpcyBjb21tYW5kIHJlcXVlc3RzCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb24gdG8gYmVnaW4gdHJhbnNtaXNzaW9uIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBUZWxuZXQgRU5ELU9GLVJFQ09SRCAoRU9SKSBjb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gdHJhbnNtaXR0aW5nIGRhdGEgY2hhcmFjdGVycywgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNlbmRlciBvZiB0aGlzIGNvbW1hbmQgY29uZmlybXMgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBub3cgYmVnaW4gdHJhbnNtaXNzaW9uIG9mIEVPUnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCB0cmFuc21pdHRlZCBkYXRhIGNoYXJhY3RlcnMuCisgICAgICAgICAgUkZDMTA5MQorICAgICAgICAgIHRlcm1pbmFsVHlwZSAgICBTZW5kZXIgaXMgd2lsbGluZyB0byBzZW5kIHRlcm1pbmFsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgaW5mb3JtYXRpb24gaW4gYSBzdWJzZXF1ZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Yi1uZWdvdGlhdGlvbi4KKworICAgICAgICAgIFJGQzEwNDEKKyAgICAgICAgICB0bjMyNzBSZWdpbWUgICAgU2VuZGVyIGlzIHdpbGxpbmcgdG8gc2VuZCBsaXN0IG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZCAzMjcwIFJlZ2ltZXMgaW4gYQorICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzZXF1ZW50IHN1Yi1uZWdvdGlhdGlvbi4KKyAgICAgICAgICBSRkMyMzU1CisgICAgICAgICAgc2NzQ3RsQ29kZXMgICAgIChQcmludGVyIHNlc3Npb25zIG9ubHkpLiAgQWxsb3dzIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Ugb2YgdGhlIFNOQSBDaGFyYWN0ZXIgU3RyZWFtIChTQ1MpCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBTQ1MgY29udHJvbCBjb2RlcyBvbiB0aGUgc2Vzc2lvbi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgU0NTIGlzIHVzZWQgd2l0aCBMVSB0eXBlIDEgU05BIHNlc3Npb25zLgorICAgICAgICAgIGRhdGFTdHJlYW1DdGwgICAoUHJpbnRlciBzZXNzaW9ucyBvbmx5KS4gIEFsbG93cyB0aGUgdXNlCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSBzdGFuZGFyZCAzMjcwIGRhdGEgc3RyZWFtLiAgVGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JyZXNwb25kcyB0byBMVSB0eXBlIDMgU05BIHNlc3Npb25zLgorICAgICAgICAgIHJlc3BvbnNlcyAgICAgICBQcm92aWRlcyBzdXBwb3J0IGZvciBwb3NpdGl2ZSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmVnYXRpdmUgcmVzcG9uc2UgaGFuZGxpbmcuICBBbGxvd3MgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlciB0byByZWZsZWN0IHRvIHRoZSBjbGllbnQgYW55IGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbGwgZGVmaW5pdGUsIGV4Y2VwdGlvbiwgYW5kIG5vIHJlc3BvbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RzIHNlbnQgYnkgdGhlIGhvc3QgYXBwbGljYXRpb24uCisgICAgICAgICAgYmluZEltYWdlICAgICAgIEFsbG93cyB0aGUgc2VydmVyIHRvIHNlbmQgdGhlIFNOQSBCaW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlIGFuZCBVbmJpbmQgbm90aWZpY2F0aW9uIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnQuCisgICAgICAgICAgc3lzcmVxICAgICAgICAgIEFsbG93cyB0aGUgY2xpZW50IGFuZCBzZXJ2ZXIgdG8gZW11bGF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICBzb21lIChvciBhbGwsIGRlcGVuZGluZyBvbiB0aGUgc2VydmVyKSBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgZnVuY3Rpb25zIG9mIHRoZSBTWVNSRVEga2V5IGluIGFuIFNOQQorICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudC4iCisgICAgICBTWU5UQVggQklUUyB7CisgICAgICAgICAgICAgICAgICAgdHJhbnNtaXRCaW5hcnkoMCksLS0gcmZjODU2CisgICAgICAgICAgICAgICAgICAgdGltZW1hcmsoMSksICAgICAgLS0gcmZjODYwCisgICAgICAgICAgICAgICAgICAgZW5kT2ZSZWNvcmQoMiksICAgLS0gcmZjODg1CisgICAgICAgICAgICAgICAgICAgdGVybWluYWxUeXBlKDMpLCAgLS0gcmZjMTA5MQorICAgICAgICAgICAgICAgICAgIHRuMzI3MFJlZ2ltZSg0KSwgIC0tIHJmYzEwNDEKKyAgICAgICAgICAgICAgICAgICBzY3NDdGxDb2Rlcyg1KSwgICAtLSByZmMyMzU1CisgICAgICAgICAgICAgICAgICAgZGF0YVN0cmVhbUN0bCg2KSwgLS0gcmZjMjM1NQorICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlcyg3KSwgICAgIC0tIHJmYzIzNTUKKyAgICAgICAgICAgICAgICAgICBiaW5kSW1hZ2UoOCksICAgICAtLSByZmMyMzU1CisgICAgICAgICAgICAgICAgICAgc3lzcmVxKDkpICAgICAgICAgLS0gcmZjMjM1NQorICAgICAgICAgICAgICAgICAgfQorCisgIElBTkFUbjMyNzBSZXNvdXJjZVR5cGUgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgICAgU1RBVFVTIGN1cnJlbnQKKyAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgIlRoZSB0eXBlIG9mIHJlc291cmNlIGRlZmluZWQgYnkgYSByZXNvdXJjZSBwb29sLiAgUmVmZXIKKyAgICAgICAgICB0byB0bjMyNzBlUmVzUG9vbFRhYmxlLiIKKyAgICAgIFNZTlRBWCBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAgICBvdGhlcigxKSwKKyAgICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hbCgyKSwKKyAgICAgICAgICAgICAgICAgICAgICBwcmludGVyKDMpLAorICAgICAgICAgICAgICAgICAgICAgIHRlcm1pbmFsT3JQcmludGVyKDQpCisgICAgICAgICAgICAgICAgICAgICB9CisKKyAgSUFOQVRuMzI3MERldmljZVR5cGUgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgICAgU1RBVFVTIGN1cnJlbnQKKyAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgIlRoaXMgdGV4dHVhbCBjb252ZW50aW9uIGRlZmluZXMgdGhlIGxpc3Qgb2YgZGV2aWNlCisgICAgICAgICAgdHlwZXMgdGhhdCBjYW4gYmUgc2V0LCBhcyBkZWZpbmVkIGJ5IFJGQyAyMzU1LiIKKyAgICAgIFNZTlRBWCBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAtLSB0ZXJtaW5hbHMKKyAgICAgICAgICAgICAgICAgICAgICBpYm0zMjc4ZDIoMSksICAgIC0tICgyNCByb3cgeCA4MCBjb2wgZGlzcGxheSkKKyAgICAgICAgICAgICAgICAgICAgICBpYm0zMjc4ZDJFKDIpLCAgIC0tICgyNCByb3cgeCA4MCBjb2wgZGlzcGxheSkKKyAgICAgICAgICAgICAgICAgICAgICBpYm0zMjc4ZDMoMyksICAgIC0tICgzMiByb3cgeCA4MCBjb2wgZGlzcGxheSkKKyAgICAgICAgICAgICAgICAgICAgICBpYm0zMjc4ZDNFKDQpLCAgIC0tICgzMiByb3cgeCA4MCBjb2wgZGlzcGxheSkKKyAgICAgICAgICAgICAgICAgICAgICBpYm0zMjc4ZDQoNSksICAgIC0tICg0MyByb3cgeCA4MCBjb2wgZGlzcGxheSkKKyAgICAgICAgICAgICAgICAgICAgICBpYm0zMjc4ZDRFKDYpLCAgIC0tICg0MyByb3cgeCA4MCBjb2wgZGlzcGxheSkKKyAgICAgICAgICAgICAgICAgICAgICBpYm0zMjc4ZDUoNyksICAgIC0tICgyNyByb3cgeCAxMzIgY29sIGRpc3BsYXkpCisgICAgICAgICAgICAgICAgICAgICAgaWJtMzI3OGQ1RSg4KSwgICAtLSAoMjcgcm93IHggMTMyIGNvbCBkaXNwbGF5KQorICAgICAgICAgICAgICAgICAgICAgIGlibUR5bmFtaWMoOSksICAgLS0gKG5vIHByZS1kZWZpbmVkIGRpc3BsYXkgc2l6ZSkKKworICAgICAgICAgICAgICAgICAgIC0tIHByaW50ZXJzCisgICAgICAgICAgICAgICAgICAgICAgaWJtMzI4N2QxKDEwKSwKKworICAgICAgICAgICAgICAgICAgICAgIHVua25vd24oMTAwKQorICAgICAgICAgICAgICAgICAgICAgfQorCisgIElBTkFUbjMyNzBlTG9nRGF0YSA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgICBTVEFUVVMgY3VycmVudAorICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIkFuIG9jdGV0IHN0cmluZyByZXByZXNlbnRpbmcgbG9nIGRhdGEgYXMgcGVydGFpbmluZyB0bworICAgICAgICBlaXRoZXIgYSBUTjMyNzAgb3IgVE4zMjcwRSBTZXNzaW9uIGFzIHJlcG9ydGVkIGZyb20gYQorICAgICAgICBUTjMyNzBFIFNlcnZlci4gTG9nIGRhdGEgaXMgc3RvcmVkIGluIGFuIG9jdGV0IHN0cmluZworICAgICAgICBpbiB0aW1lIG9yZGVyIChmcm9tIGVhcmxpZXN0IHRvIGxhdGVzdCkuCisKKyAgICAgICAgRWFjaCBsb2cgZWxlbWVudCBoYXMgdGhlIGZvbGxvd2luZyBmb3JtOgorCisgICAgICAgICstLS0tLS0rLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKworICAgICAgICAhbGVuZ3RoIXR5cGUhVGltZVN0YW1wISBkYXRhICAgICAgICEKKyAgICAgICAgKy0tLS0tLSstLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rCisKKyAgICAgICAgd2hlcmUKKworICAgICAgICBsZW5ndGggICAgPSBvbmUtb2N0ZXQgbGVuZ3RoIG9mIHRoZSBkYXRhIHBvcnRpb24gb2YgdGhlCisgICAgICAgICAgICAgICAgICAgIHRyYWNlIGVsZW1lbnQsIG5vdCBpbmNsdWRpbmcgdGhlIGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZSwgYW5kIFRpbWVTdGFtcCBmaWVsZHMKKyAgICAgICAgdHlwZSAgICAgID0gb25lLW9jdGV0IGNvZGUgcG9pbnQgY2hhcmFjdGVyaXppbmcgdGhlIGRhdGEuCisgICAgICAgIFRpbWVTdGFtcCA9IEEgNC1vY3RldCBmaWVsZCByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZgorICAgICAgICAgICAgICAgICAgICBUaW1lVGlja3Mgc2luY2UgdGhlIFROMzI3MEUgc2VydmVyIHdhcyBsYXN0CisgICAgICAgICAgICAgICAgICAgIGFjdGl2YXRlZC4gIFRoZSBzZXJ2ZXIncyBsYXN0IGFjdGl2YXRpb24gdGltZQorICAgICAgICAgICAgICAgICAgICBpcyBhdmFpbGFibGUgaW4gdGhlIHRuMzI3MGVTcnZyQ29uZkxhc3RBY3RUaW1lCisgICAgICAgICAgICAgICAgICAgIG9iamVjdCBpbiB0aGUgVE4zMjcwRSBNSUIsIHdoaWNoIGhhcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgc3ludGF4IERhdGVBbmRUaW1lLgorICAgICAgICBkYXRhICAgICAgPSBpbml0aWFsIHBhcnQgb2YgYSBQRFUuCisKKyAgICAgICAgbGVuZ3RoICAgdHlwZQorCisgICAgICAgICAgMC0yNTUgIHgnMDAnIC0gdW5rbm93bgorICAgICAgICAgIDAgICAgICB4JzAxJyAtIGluYWN0aXZpdHkgdGltZXIgZXhwaXJlZAorICAgICAgICAgIDAgICAgICB4JzAyJyAtIGR5bmFtaWMgdGltZXIgZXhwaXJlZAorICAgICAgICAgIDAgICAgICB4JzAzJyAtIGFjdGx1IHJlcQorICAgICAgICAgIDAgICAgICB4JzA0JyAtIGJpbmQgcmVxCisgICAgICAgICAgMCAgICAgIHgnMDUnIC0gY2xlYXIgcmVxCisgICAgICAgICAgMCAgICAgIHgnMDYnIC0gZGFjdGx1IHJlcQorICAgICAgICAgIDAgICAgICB4JzA3JyAtIHdhcm0gYWN0cHUgcmVxCisgICAgICAgICAgMCAgICAgIHgnMDgnIC0gc2R0IHJlcQorICAgICAgICAgIDAgICAgICB4JzA5JyAtIHVuYmluZCByZXEKKyAgICAgICAgICAwICAgICAgeCcwQScgLSBub3RpZnkgcmVzcAorICAgICAgICAgIDAgICAgICB4JzBCJyAtIHJlcGx5IFBTSUQgbmVnIHJzcAorICAgICAgICAgIDAgICAgICB4JzBDJyAtIHJlcGx5IFBTSUQgcG9zIHJzcAorICAgICAgICAgIDAgICAgICB4JzBEJyAtIHVuYmluZCByc3AKKyAgICAgICAgICAwICAgICAgeCcwRScgLSBoaWVyYXJjaGljYWwgcmVzZXQKKyAgICAgICAgICAwICAgICAgeCcwRicgLSBjbGllbnQgY29ubmVjdCByZXEKKyAgICAgICAgICAwICAgICAgeCcxMCcgLSBjbGllbnQgZGlzY29ubmVjdCByZXEKKyAgICAgICAgICAwICAgICAgeCcxMScgLSB0aW1pbmdtYXJrIHJlY2VpdmVkCisgICAgICAgICAgMCAgICAgIHgnMTInIC0gZmxvd0NvbnRyb2wgdGltZXIgZXhwaXJlZAorICAgICAgICAgIDAgICAgICB4JzEzJyAtIG5lZyByc3AgdG8gaG9zdAorICAgICAgICAgIDAgICAgICB4JzE0JyAtIG5lZyByc3AgZnJvbSBob3N0CisgICAgICAgICAgMCAgICAgIHgnMTUnIC0gZGF0YSBjb250ZW50aW9uCisgICAgICAgICAgMCAgICAgIHgnMTYnIC0gbm8gYnVmZmVyIHRvIHNlbmQgU05BIGRhdGEKKyAgICAgICAgICAwICAgICAgeCcxNycgLSByZWNlaXZlIHJlc3BvbnNlIHdoaWxlIGluYm91bmQKKyAgICAgICAgICAwICAgICAgeCcxOCcgLSBjbGllbnQgcHJvdG9jb2wgZXJyb3IKKyAgICAgICAgICAwICAgICAgeCcxOScgLSBiYWRDbGllbnRTZXF1ZW5jZVJlY2VpdmVkCisgICAgICAgICAgMS0yNTUgIHgnMUEnIC0gdXRmOFN0cmluZworICAgICAgICAgIDIgICAgICB4JzFCJyAtIGhleENvZGUsIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudAorCisgICAgICAgICAgTG9nIGVsZW1lbnQgZW50cmllcyBoYXZlIGEgbWluaW11bSBsZW5ndGggb2YgNiBvY3RldHMuCisgICAgICAgICAgVGhlIHplcm8tbGVuZ3RoIHN0cmluZyBpbmRpY2F0ZXMgdGhhdCBubyBsb2cgZGF0YSBpcworICAgICAgICAgIGF2YWlsYWJsZS4iCisgICAgICBTWU5UQVggT0NURVQgU1RSSU5HIChTSVpFICgwIHwgNi4uMjA0OCkpCisKKyAgRU5ECisKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lBTkEvSUFOQWlmVHlwZS1NSUIgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvSUFOQS9JQU5BaWZUeXBlLU1JQgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWRkZGY5Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lBTkEvSUFOQWlmVHlwZS1NSUIKQEAgLTAsMCArMSw1NzIgQEAKKyAgIElBTkFpZlR5cGUtTUlCIERFRklOSVRJT05TIDo6PSBCRUdJTgorCisgICBJTVBPUlRTCisgICAgICAgTU9EVUxFLUlERU5USVRZLCBtaWItMiAgICAgIEZST00gU05NUHYyLVNNSQorICAgICAgIFRFWFRVQUwtQ09OVkVOVElPTiAgICAgICAgICBGUk9NIFNOTVB2Mi1UQzsKKworICAgaWFuYWlmVHlwZSBNT0RVTEUtSURFTlRJVFkKKyAgICAgICBMQVNULVVQREFURUQgIjIwMDcwOTEzMDAwMFoiICAtLSBTZXB0ZW1iZXIgMTMsIDIwMDcKKyAgICAgICBPUkdBTklaQVRJT04gIklBTkEiCisgICAgICAgQ09OVEFDVC1JTkZPICIgICAgICAgIEludGVybmV0IEFzc2lnbmVkIE51bWJlcnMgQXV0aG9yaXR5CisKKyAgICAgICAgICAgICAgICAgICAgIFBvc3RhbDogSUNBTk4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDY3NiBBZG1pcmFsdHkgV2F5LCBTdWl0ZSAzMzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFyaW5hIGRlbCBSZXksIENBIDkwMjkyCisKKyAgICAgICAgICAgICAgICAgICAgIFRlbDogICAgKzEgMzEwIDgyMyA5MzU4CisgICAgICAgICAgICAgICAgICAgICBFLU1haWw6IGlhbmEmaWFuYS5vcmciCisKKyAgICAgICBERVNDUklQVElPTiAgIlRoaXMgTUlCIG1vZHVsZSBkZWZpbmVzIHRoZSBJQU5BaWZUeXBlIFRleHR1YWwKKyAgICAgICAgICAgICAgICAgICAgIENvbnZlbnRpb24sIGFuZCB0aHVzIHRoZSBlbnVtZXJhdGVkIHZhbHVlcyBvZgorICAgICAgICAgICAgICAgICAgICAgdGhlIGlmVHlwZSBvYmplY3QgZGVmaW5lZCBpbiBNSUItSUkncyBpZlRhYmxlLiIKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwNzA5MTMwMDAwWiIgIC0tIFNlcHRlbWJlciAxMywgMjAwNworICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BaWZUeXBlcyAyNDMgYW5kIDI0NC4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDcwNTI5MDAwMFoiICAtLSBNYXkgMjksIDIwMDcKKyAgICAgICBERVNDUklQVElPTiAgIkNoYW5nZWQgdGhlIGRlc2NyaXB0aW9uIGZvciBJQU5BaWZUeXBlIDIyOC4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDcwMzA4MDAwMFoiICAtLSBNYXJjaCAwOCwgMjAwNworICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BaWZUeXBlIDI0Mi4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDcwMTIzMDAwMFoiICAtLSBKYW51YXJ5IDIzLCAyMDA3CisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkFpZlR5cGVzIDIzOSwgMjQwLCBhbmQgMjQxLiIgCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDYxMDE3MDAwMFoiICAtLSBPY3RvYmVyIDE3LCAyMDA2CisgICAgICAgREVTQ1JJUFRJT04gICJEZXByZWNhdGVkL09ic29sZXRlZCBJQU5BaWZUeXBlIDIzMC4gIFJlZ2lzdHJhdGlvbiBvZiAKKyAgICAgICAgICAgICAgICAgICAgIElBTkFpZlR5cGUgMjM4LiIgCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDYwOTI1MDAwMFoiICAtLSBTZXB0ZW1iZXIgMjUsIDIwMDYKKyAgICAgICBERVNDUklQVElPTiAgIkNoYW5nZWQgdGhlIGRlc2NyaXB0aW9uIGZvciBJQU5BIGlmVHlwZSAKKyAgICAgICAgICAgICAgICAgICAgIDE4NCBhbmQgYWRkZWQgbmV3IElBTkEgaWZUeXBlIDIzNy4iICAKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwNjA4MTcwMDAwWiIgIC0tIEF1Z3VzdCAxNywgMjAwNgorICAgICAgIERFU0NSSVBUSU9OICAiQ2hhbmdlZCB0aGUgZGVzY3JpcHRpb25zIGZvciBJQU5BaWZUeXBlcworICAgICAgICAgICAgICAgICAgICAgMjAgYW5kIDIxLiIgICAKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwNjA4MTEwMDAwWiIgIC0tIEF1Z3VzdCAxMSwgMjAwNgorICAgICAgIERFU0NSSVBUSU9OICAiQ2hhbmdlZCB0aGUgZGVzY3JpcHRpb25zIGZvciBJQU5BaWZUeXBlcworICAgICAgICAgICAgICAgICAgICAgNywgMTEsIDYyLCA2OSwgYW5kIDExNy4iICAgCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDYwNzI1MDAwMFoiICAtLSBKdWx5IDI1LCAyMDA2CisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkEgaWZUeXBlIDIzNi4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDYwNjE0MDAwMFoiICAtLSBKdW5lIDE0LCAyMDA2CisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkEgaWZUeXBlIDIzNS4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDYwMzMxMDAwMFoiICAtLSBNYXJjaCAzMSwgMjAwNgorICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BIGlmVHlwZSAyMzQuIgorCSAgIAorICAgICAgIFJFVklTSU9OICAgICAiMjAwNjAzMzAwMDAwWiIgIC0tIE1hcmNoIDMwLCAyMDA2CisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkEgaWZUeXBlIDIzMy4iCisgICAgICAgCisgICAgICAgUkVWSVNJT04gICAgICIyMDA1MTIyMjAwMDBaIiAgLS0gRGVjZW1iZXIgMjIsIDIwMDUKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQSBpZlR5cGVzIDIzMSBhbmQgMjMyLiIKKwkgICAKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDUxMDEwMDAwMFoiICAtLSBPY3RvYmVyIDEwLCAyMDA1CisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkEgaWZUeXBlIDIzMC4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDUwOTA5MDAwMFoiICAtLSBTZXB0ZW1iZXIgMDksIDIwMDUKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQSBpZlR5cGUgMjI5LiIKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwNTA1MjcwMDAwWiIgIC0tIE1heSAyNywgMjAwNQorICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BIGlmVHlwZSAyMjguIgorCisgICAgICAgUkVWSVNJT04gICAgICIyMDA1MDMwMzAwMDBaIiAgLS0gTWFyY2ggMywgMjAwNQorICAgICAgIERFU0NSSVBUSU9OICAiQWRkZWQgdGhlIElBTkF0dW5uZWxUeXBlIFRDIGFuZCBkZXByZWNhdGVkCisJICAgICAgICAgICAgICAgICBJQU5BaWZUeXBlIHNpeFRvRm91ciAoMjE1KSBwZXIgUkZDNDA4Ny4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDQxMTIyMDAwMFoiICAtLSBOb3ZlbWJlciAyMiwgMjAwNAorICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BIGlmVHlwZSAyMjcgcGVyIFJGQzQ2MzEuIgorCisgICAgICAgUkVWSVNJT04gICAgICIyMDA0MDYxNzAwMDBaIiAgLS0gSnVuZSAxNywgMjAwNAorICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BIGlmVHlwZSAyMjYuIgorCisgICAgICAgUkVWSVNJT04gICAgICIyMDA0MDUxMjAwMDBaIiAgLS0gTWF5IDEyLCAyMDA0CisgICAgICAgREVTQ1JJUFRJT04gICJBZGRlZCBkZXNjcmlwdGlvbiBmb3IgSUFOQWlmVHlwZSA2LCBhbmQgCisJICAgICAgICAgICAgICAgICBjaGFuZ2VkIHRoZSBkZXNjcmlwdGlvbnMgZm9yIElBTkFpZlR5cGVzCisgICAgICAgICAgICAgICAgICAgICAxODAsIDE4MSwgYW5kIDE4Mi4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDQwNTA3MDAwMFoiICAtLSBNYXkgNywgMjAwNAorICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BaWZUeXBlIDIyNS4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDMwODI1MDAwMFoiICAtLSBBdWcgMjUsIDIwMDMKKyAgICAgICBERVNDUklQVElPTiAgIkRlcHJlY2F0ZWQgSUFOQWlmVHlwZXMgNyBhbmQgMTEuIE9ic29sZXRlZAorICAgICAgICAgICAgICAgICAgICAgSUFOQWlmVHlwZXMgNjIsIDY5LCBhbmQgMTE3LiAgZXRoZXJuZXRDc21hY2QgKDYpCisgICAgICAgICAgICAgICAgICAgICBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZXNlIHZhbHVlcyIKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwMzA4MTgwMDAwWiIgIC0tIEF1ZyAxOCwgMjAwMworICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BaWZUeXBlCisgICAgICAgICAgICAgICAgICAgICAyMjQuIgorCisgICAgICAgUkVWSVNJT04gICAgICIyMDAzMDgwNzAwMDBaIiAgLS0gQXVnIDcsIDIwMDMKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZXMKKyAgICAgICAgICAgICAgICAgICAgIDIyMiBhbmQgMjIzLiIKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwMzAzMTgwMDAwWiIgIC0tIE1hciAxOCwgMjAwMworICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BaWZUeXBlCisgICAgICAgICAgICAgICAgICAgICAyMjEuIgorCisgICAgICAgUkVWSVNJT04gICAgICIyMDAzMDExMzAwMDBaIiAgLS0gSmFuIDEzLCAyMDAzCisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkFpZlR5cGUKKyAgICAgICAgICAgICAgICAgICAgIDIyMC4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDIxMDE3MDAwMFoiICAtLSBPY3QgMTcsIDIwMDIKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZQorICAgICAgICAgICAgICAgICAgICAgMjE5LiIKKwkgICAKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDIwNzE2MDAwMFoiICAtLSBKdWwgMTYsIDIwMDIKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZXMKKyAgICAgICAgICAgICAgICAgICAgIDIxNyBhbmQgMjE4LiIKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwMjA3MTAwMDAwWiIgIC0tIEp1bCAxMCwgMjAwMgorICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BaWZUeXBlcworICAgICAgICAgICAgICAgICAgICAgMjE1IGFuZCAyMTYuIgorCisgICAgICAgUkVWSVNJT04gICAgICIyMDAyMDYxOTAwMDBaIiAgLS0gSnVuIDE5LCAyMDAyCisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkFpZlR5cGUKKyAgICAgICAgICAgICAgICAgICAgIDIxNC4iCisJICAgCisgICAgICAgUkVWSVNJT04gICAgICIyMDAyMDEwNDAwMDBaIiAgLS0gSmFuIDQsIDIwMDIKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZXMKKyAgICAgICAgICAgICAgICAgICAgIDIxMSwgMjEyIGFuZCAyMTMuIgorCisgICAgICAgUkVWSVNJT04gICAgICIyMDAxMTIyMDAwMDBaIiAgLS0gRGVjIDIwLCAyMDAxCisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkFpZlR5cGVzCisgICAgICAgICAgICAgICAgICAgICAyMDkgYW5kIDIxMC4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDExMTE1MDAwMFoiICAtLSBOb3YgMTUsIDIwMDEKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZXMKKyAgICAgICAgICAgICAgICAgICAgIDIwNyBhbmQgMjA4LiIKKworCisgICAgICAgUkVWSVNJT04gICAgICIyMDAxMTEwNjAwMDBaIiAgLS0gTm92IDYsIDIwMDEKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZQorICAgICAgICAgICAgICAgICAgICAgMjA2LiIKKworCisgICAgICAgUkVWSVNJT04gICAgICIyMDAxMTEwMjAwMDBaIiAgLS0gTm92IDIsIDIwMDEKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZQorICAgICAgICAgICAgICAgICAgICAgMjA1LiIKKworCisgICAgICAgUkVWSVNJT04gICAgICIyMDAxMTAxNjAwMDBaIiAgLS0gT2N0IDE2LCAyMDAxCisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkFpZlR5cGVzCisgICAgICAgICAgICAgICAgICAgICAxOTksIDIwMCwgMjAxLCAyMDIsIDIwMywgYW5kIDIwNC4iCisKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwMTA5MTkwMDAwWiIgIC0tIFNlcHQgMTksIDIwMDEKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZQorICAgICAgICAgICAgICAgICAgICAgMTk4LiIKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwMTA1MTEwMDAwWiIgIC0tIE1heSAxMSwgMjAwMQorICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BaWZUeXBlCisgICAgICAgICAgICAgICAgICAgICAxOTcuIgorCisgICAgICAgCisgICAgICAgUkVWSVNJT04gICAgICIyMDAxMDExMjAwMDBaIiAgLS0gSmFuIDEyLCAyMDAxCisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkFpZlR5cGVzCisgICAgICAgICAgICAgICAgICAgICAxOTUgYW5kIDE5Ni4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDAxMjE5MDAwMFoiICAtLSBEZWMgMTksIDIwMDAKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZXMKKyAgICAgICAgICAgICAgICAgICAgIDE5MyBhbmQgMTk0LiIKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwMDEyMDcwMDAwWiIgIC0tIERlYyAwNywgMjAwMAorICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BaWZUeXBlcworICAgICAgICAgICAgICAgICAgICAgMTkxIGFuZCAxOTIuIgorCisgICAgICAgUkVWSVNJT04gICAgICIyMDAwMTIwNDAwMDBaIiAgLS0gRGVjIDA0LCAyMDAwCisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkFpZlR5cGUKKyAgICAgICAgICAgICAgICAgICAgIDE5MC4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDAxMDE3MDAwMFoiICAtLSBPY3QgMTcsIDIwMDAKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZXMKKyAgICAgICAgICAgICAgICAgICAgIDE4OCBhbmQgMTg5LiIgIAorCisgICAgICAgUkVWSVNJT04gICAgICIyMDAwMTAwMjAwMDBaIiAgLS0gT2N0IDAyLCAyMDAwCisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkFpZlR5cGUgMTg3LiIgCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDAwOTAxMDAwMFoiICAtLSBTZXB0IDAxLCAyMDAwCisgICAgICAgREVTQ1JJUFRJT04gICJSZWdpc3RyYXRpb24gb2YgbmV3IElBTkFpZlR5cGVzCisgICAgICAgICAgICAgICAgICAgICAxODQsIDE4NSwgYW5kIDE4Ni4iCQkJCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDAwODI0MDAwMFoiICAtLSBBdWcgMjQsIDIwMDAKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZSAxODMuIiAKKworICAgICAgIFJFVklTSU9OICAgICAiMjAwMDA4MjMwMDAwWiIgIC0tIEF1ZyAyMywgMjAwMAorICAgICAgIERFU0NSSVBUSU9OICAiUmVnaXN0cmF0aW9uIG9mIG5ldyBJQU5BaWZUeXBlcworICAgICAgICAgICAgICAgICAgICAgMTc0LTE4Mi4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDAwODIyMDAwMFoiICAtLSBBdWcgMjIsIDIwMDAKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZXMgMTcwLAorICAgICAgICAgICAgICAgICAgICAgMTcxLCAxNzIgYW5kIDE3My4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDAwNDI1MDAwMFoiICAtLSBBcHIgMjUsIDIwMDAKKyAgICAgICBERVNDUklQVElPTiAgIlJlZ2lzdHJhdGlvbiBvZiBuZXcgSUFOQWlmVHlwZXMgMTY4IGFuZCAxNjkuIiAgICAgICAKKwkKKyAgICAgICBSRVZJU0lPTiAgICAgIjIwMDAwMzA2MDAwMFoiICAtLSBNYXIgNiwgMjAwMAorICAgICAgIERFU0NSSVBUSU9OICAiRml4ZWQgYSBtaXNzaW5nIHNlbWktY29sb24gaW4gdGhlIElNUE9SVC4KKyAgICAgICAgICAgICAgICAgICAgIEFsc28gY2xlYW5lZCB1cCB0aGUgUkVWSVNJT04gbG9nIGEgYml0LgorICAgICAgICAgICAgICAgICAgICAgSXQgaXMgbm90IGNvbXBsZXRlLCBidXQgZnJvbSBub3cgb24gaXQgd2lsbAorICAgICAgICAgICAgICAgICAgICAgYmUgbWFpbnRhaW5lZCBhbmQga2VwdCB1cCB0byBkYXRlIHdpdGggZWFjaAorICAgICAgICAgICAgICAgICAgICAgY2hhbmdlIHRvIHRoaXMgTUlCIG1vZHVsZS4iCisKKyAgICAgICBSRVZJU0lPTiAgICAgIjE5OTkxMDA4MTQzMFoiICAtLSBPY3QgMDgsIDE5OTkKKyAgICAgICBERVNDUklQVElPTiAgIkluY2x1ZGUgbmV3IG5hbWUgYXNzaWdubWVudHMgdXAgdG8gY25yKDg1KS4KKyAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHZlcnNpb24gYXZhaWxhYmxlIHZpYSB0aGUgV1dXCisgICAgICAgICAgICAgICAgICAgICBhdDogZnRwOi8vZnRwLmlzaS5lZHUvbWliL2lhbmFpZnR5cGUubWliIgorCisgICAgICAgUkVWSVNJT04gICAgICIxOTk0MDEzMTAwMDBaIiAgLS0gSmFuIDMxLCAxOTk0CisgICAgICAgREVTQ1JJUFRJT04gICJJbml0aWFsIHZlcnNpb24gb2YgdGhpcyBNSUIgYXMgcHVibGlzaGVkIGluCisgICAgICAgICAgICAgICAgICAgICBSRkMgMTU3My4iCisKKyAgICAgICA6Oj0geyBtaWItMiAzMCB9CisKKworICAgSUFOQWlmVHlwZSA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgICAgIlRoaXMgZGF0YSB0eXBlIGlzIHVzZWQgYXMgdGhlIHN5bnRheCBvZiB0aGUgaWZUeXBlCisgICAgICAgICAgICAgICBvYmplY3QgaW4gdGhlICh1cGRhdGVkKSBkZWZpbml0aW9uIG9mIE1JQi1JSSdzCisgICAgICAgICAgICAgICBpZlRhYmxlLgorCisgICAgICAgICAgICAgICBUaGUgZGVmaW5pdGlvbiBvZiB0aGlzIHRleHR1YWwgY29udmVudGlvbiB3aXRoIHRoZQorICAgICAgICAgICAgICAgYWRkaXRpb24gb2YgbmV3bHkgYXNzaWduZWQgdmFsdWVzIGlzIHB1Ymxpc2hlZAorICAgICAgICAgICAgICAgcGVyaW9kaWNhbGx5IGJ5IHRoZSBJQU5BLCBpbiBlaXRoZXIgdGhlIEFzc2lnbmVkCisgICAgICAgICAgICAgICBOdW1iZXJzIFJGQywgb3Igc29tZSBkZXJpdmF0aXZlIG9mIGl0IHNwZWNpZmljIHRvCisgICAgICAgICAgICAgICBJbnRlcm5ldCBOZXR3b3JrIE1hbmFnZW1lbnQgbnVtYmVyIGFzc2lnbm1lbnRzLiAgKFRoZQorICAgICAgICAgICAgICAgbGF0ZXN0IGFycmFuZ2VtZW50cyBjYW4gYmUgb2J0YWluZWQgYnkgY29udGFjdGluZyB0aGUKKyAgICAgICAgICAgICAgIElBTkEuKQorCisgICAgICAgICAgICAgICBSZXF1ZXN0cyBmb3IgbmV3IHZhbHVlcyBzaG91bGQgYmUgbWFkZSB0byBJQU5BIHZpYQorICAgICAgICAgICAgICAgZW1haWwgKGlhbmEmaWFuYS5vcmcpLgorCisgICAgICAgICAgICAgICBUaGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGFzc2lnbm1lbnQgb2YgaWZUeXBlCisgICAgICAgICAgICAgICB2YWx1ZXMgYW5kIG9mIE9JRHMgdG8gcGFydGljdWxhciBtZWRpYS1zcGVjaWZpYyBNSUJzCisgICAgICAgICAgICAgICBpcyBzb2xlbHkgdGhlIHB1cnZpZXcgb2YgSUFOQSBhbmQgaXMgc3ViamVjdCB0byBjaGFuZ2UKKyAgICAgICAgICAgICAgIHdpdGhvdXQgbm90aWNlLiAgUXVpdGUgb2Z0ZW4sIGEgbWVkaWEtc3BlY2lmaWMgTUlCJ3MKKyAgICAgICAgICAgICAgIE9JRC1zdWJ0cmVlIGFzc2lnbm1lbnQgd2l0aGluIE1JQi1JSSdzICd0cmFuc21pc3Npb24nCisgICAgICAgICAgICAgICBzdWJ0cmVlIHdpbGwgYmUgdGhlIHNhbWUgYXMgaXRzIGlmVHlwZSB2YWx1ZS4KKyAgICAgICAgICAgICAgIEhvd2V2ZXIsIGluIHNvbWUgY2lyY3Vtc3RhbmNlcyB0aGlzIHdpbGwgbm90IGJlIHRoZQorICAgICAgICAgICAgICAgY2FzZSwgYW5kIGltcGxlbWVudG9ycyBtdXN0IG5vdCBwcmUtYXNzdW1lIGFueQorICAgICAgICAgICAgICAgc3BlY2lmaWMgcmVsYXRpb25zaGlwIGJldHdlZW4gaWZUeXBlIHZhbHVlcyBhbmQKKyAgICAgICAgICAgICAgIHRyYW5zbWlzc2lvbiBzdWJ0cmVlIE9JRHMuIgorICAgICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgb3RoZXIoMSksICAgICAgICAgIC0tIG5vbmUgb2YgdGhlIGZvbGxvd2luZworICAgICAgICAgICAgICAgICAgIHJlZ3VsYXIxODIyKDIpLAorICAgICAgICAgICAgICAgICAgIGhkaDE4MjIoMyksCisgICAgICAgICAgICAgICAgICAgZGRuWDI1KDQpLAorICAgICAgICAgICAgICAgICAgIHJmYzg3N3gyNSg1KSwKKyAgICAgICAgICAgICAgICAgICBldGhlcm5ldENzbWFjZCg2KSwgLS0gZm9yIGFsbCBldGhlcm5ldC1saWtlIGludGVyZmFjZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHJlZ2FyZGxlc3Mgb2Ygc3BlZWQsIGFzIHBlciBSRkMzNjM1CisgICAgICAgICAgICAgICAgICAgaXNvODgwMjNDc21hY2QoNyksIC0tIERlcHJlY2F0ZWQgdmlhIFJGQzM2MzUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gZXRoZXJuZXRDc21hY2QgKDYpIHNob3VsZCBiZSB1c2VkIGluc3RlYWQKKyAgICAgICAgICAgICAgICAgICBpc284ODAyNFRva2VuQnVzKDgpLAorICAgICAgICAgICAgICAgICAgIGlzbzg4MDI1VG9rZW5SaW5nKDkpLAorICAgICAgICAgICAgICAgICAgIGlzbzg4MDI2TWFuKDEwKSwKKyAgICAgICAgICAgICAgICAgICBzdGFyTGFuKDExKSwgLS0gRGVwcmVjYXRlZCB2aWEgUkZDMzYzNQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBldGhlcm5ldENzbWFjZCAoNikgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZAorICAgICAgICAgICAgICAgICAgIHByb3Rlb24xME1iaXQoMTIpLAorICAgICAgICAgICAgICAgICAgIHByb3Rlb244ME1iaXQoMTMpLAorICAgICAgICAgICAgICAgICAgIGh5cGVyY2hhbm5lbCgxNCksCisgICAgICAgICAgICAgICAgICAgZmRkaSgxNSksCisgICAgICAgICAgICAgICAgICAgbGFwYigxNiksCisgICAgICAgICAgICAgICAgICAgc2RsYygxNyksCisgICAgICAgICAgICAgICAgICAgZHMxKDE4KSwgICAgICAgICAgICAtLSBEUzEtTUlCCisgICAgICAgICAgICAgICAgICAgZTEoMTkpLCAgICAgICAgICAgICAtLSBPYnNvbGV0ZSBzZWUgRFMxLU1JQgorICAgICAgICAgICAgICAgICAgIGJhc2ljSVNETigyMCksICAgICAgICAgICAgICAtLSBubyBsb25nZXIgdXNlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBzZWUgYWxzbyBSRkMyMTI3CisgICAgICAgICAgICAgICAgICAgcHJpbWFyeUlTRE4oMjEpLCAgICAgICAgICAgIC0tIG5vIGxvbmdlciB1c2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHNlZSBhbHNvIFJGQzIxMjcKKyAgICAgICAgICAgICAgICAgICBwcm9wUG9pbnRUb1BvaW50U2VyaWFsKDIyKSwgLS0gcHJvcHJpZXRhcnkgc2VyaWFsCisgICAgICAgICAgICAgICAgICAgcHBwKDIzKSwKKyAgICAgICAgICAgICAgICAgICBzb2Z0d2FyZUxvb3BiYWNrKDI0KSwKKyAgICAgICAgICAgICAgICAgICBlb24oMjUpLCAgICAgICAgICAgIC0tIENMTlAgb3ZlciBJUCAKKyAgICAgICAgICAgICAgICAgICBldGhlcm5ldDNNYml0KDI2KSwKKyAgICAgICAgICAgICAgICAgICBuc2lwKDI3KSwgICAgICAgICAgIC0tIFhOUyBvdmVyIElQCisgICAgICAgICAgICAgICAgICAgc2xpcCgyOCksICAgICAgICAgICAtLSBnZW5lcmljIFNMSVAKKyAgICAgICAgICAgICAgICAgICB1bHRyYSgyOSksICAgICAgICAgIC0tIFVMVFJBIHRlY2hub2xvZ2llcworICAgICAgICAgICAgICAgICAgIGRzMygzMCksICAgICAgICAgICAgLS0gRFMzLU1JQgorICAgICAgICAgICAgICAgICAgIHNpcCgzMSksICAgICAgICAgICAgLS0gU01EUywgY29mZmVlCisgICAgICAgICAgICAgICAgICAgZnJhbWVSZWxheSgzMiksICAgICAtLSBEVEUgb25seS4gCisgICAgICAgICAgICAgICAgICAgcnMyMzIoMzMpLAorICAgICAgICAgICAgICAgICAgIHBhcmEoMzQpLCAgICAgICAgICAgLS0gcGFyYWxsZWwtcG9ydAorICAgICAgICAgICAgICAgICAgIGFyY25ldCgzNSksICAgICAgICAgLS0gYXJjbmV0CisgICAgICAgICAgICAgICAgICAgYXJjbmV0UGx1cygzNiksICAgICAtLSBhcmNuZXQgcGx1cworICAgICAgICAgICAgICAgICAgIGF0bSgzNyksICAgICAgICAgICAgLS0gQVRNIGNlbGxzCisgICAgICAgICAgICAgICAgICAgbWlveDI1KDM4KSwKKyAgICAgICAgICAgICAgICAgICBzb25ldCgzOSksICAgICAgICAgIC0tIFNPTkVUIG9yIFNESCAKKyAgICAgICAgICAgICAgICAgICB4MjVwbGUoNDApLAorICAgICAgICAgICAgICAgICAgIGlzbzg4MDIybGxjKDQxKSwKKyAgICAgICAgICAgICAgICAgICBsb2NhbFRhbGsoNDIpLAorICAgICAgICAgICAgICAgICAgIHNtZHNEeGkoNDMpLAorICAgICAgICAgICAgICAgICAgIGZyYW1lUmVsYXlTZXJ2aWNlKDQ0KSwgIC0tIEZSTkVUU0VSVi1NSUIKKyAgICAgICAgICAgICAgICAgICB2MzUoNDUpLAorICAgICAgICAgICAgICAgICAgIGhzc2koNDYpLAorICAgICAgICAgICAgICAgICAgIGhpcHBpKDQ3KSwKKyAgICAgICAgICAgICAgICAgICBtb2RlbSg0OCksICAgICAgICAgIC0tIEdlbmVyaWMgbW9kZW0KKyAgICAgICAgICAgICAgICAgICBhYWw1KDQ5KSwgICAgICAgICAgIC0tIEFBTDUgb3ZlciBBVE0KKyAgICAgICAgICAgICAgICAgICBzb25ldFBhdGgoNTApLAorICAgICAgICAgICAgICAgICAgIHNvbmV0VlQoNTEpLAorICAgICAgICAgICAgICAgICAgIHNtZHNJY2lwKDUyKSwgICAgICAgLS0gU01EUyBJbnRlckNhcnJpZXIgSW50ZXJmYWNlCisgICAgICAgICAgICAgICAgICAgcHJvcFZpcnR1YWwoNTMpLCAgICAtLSBwcm9wcmlldGFyeSB2aXJ0dWFsL2ludGVybmFsCisgICAgICAgICAgICAgICAgICAgcHJvcE11bHRpcGxleG9yKDU0KSwtLSBwcm9wcmlldGFyeSBtdWx0aXBsZXhpbmcKKyAgICAgICAgICAgICAgICAgICBpZWVlODAyMTIoNTUpLCAgICAgIC0tIDEwMEJhc2VWRworICAgICAgICAgICAgICAgICAgIGZpYnJlQ2hhbm5lbCg1NiksICAgLS0gRmlicmUgQ2hhbm5lbAorICAgICAgICAgICAgICAgICAgIGhpcHBpSW50ZXJmYWNlKDU3KSwgLS0gSElQUEkgaW50ZXJmYWNlcyAgICAgCisgICAgICAgICAgICAgICAgICAgZnJhbWVSZWxheUludGVyY29ubmVjdCg1OCksIC0tIE9ic29sZXRlIHVzZSBlaXRoZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGZyYW1lUmVsYXkoMzIpIG9yIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gZnJhbWVSZWxheVNlcnZpY2UoNDQpLgorICAgICAgICAgICAgICAgICAgIGFmbGFuZTgwMjMoNTkpLCAgICAgLS0gQVRNIEVtdWxhdGVkIExBTiBmb3IgODAyLjMKKyAgICAgICAgICAgICAgICAgICBhZmxhbmU4MDI1KDYwKSwgICAgIC0tIEFUTSBFbXVsYXRlZCBMQU4gZm9yIDgwMi41CisgICAgICAgICAgICAgICAgICAgY2N0RW11bCg2MSksICAgICAgICAtLSBBVE0gRW11bGF0ZWQgY2lyY3VpdCAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICBmYXN0RXRoZXIoNjIpLCAgICAgIC0tIE9ic29sZXRlZCB2aWEgUkZDMzYzNQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gZXRoZXJuZXRDc21hY2QgKDYpIHNob3VsZCBiZSB1c2VkIGluc3RlYWQKKyAgICAgICAgICAgICAgICAgICBpc2RuKDYzKSwgICAgICAgICAgIC0tIElTRE4gYW5kIFguMjUgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgIHYxMSg2NCksICAgICAgICAgICAgLS0gQ0NJVFQgVi4xMS9YLjIxICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgIHYzNig2NSksICAgICAgICAgICAgLS0gQ0NJVFQgVi4zNiAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgIGc3MDNhdDY0ayg2NiksICAgICAgLS0gQ0NJVFQgRzcwMyBhdCA2NEticHMKKyAgICAgICAgICAgICAgICAgICBnNzAzYXQybWIoNjcpLCAgICAgIC0tIE9ic29sZXRlIHNlZSBEUzEtTUlCCisgICAgICAgICAgICAgICAgICAgcWxsYyg2OCksICAgICAgICAgICAtLSBTTkEgUUxMQyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgZmFzdEV0aGVyRlgoNjkpLCAgICAtLSBPYnNvbGV0ZWQgdmlhIFJGQzM2MzUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGV0aGVybmV0Q3NtYWNkICg2KSBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkCisgICAgICAgICAgICAgICAgICAgY2hhbm5lbCg3MCksICAgICAgICAtLSBjaGFubmVsICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgaWVlZTgwMjExKDcxKSwgICAgICAtLSByYWRpbyBzcHJlYWQgc3BlY3RydW0gICAgICAgCisgICAgICAgICAgICAgICAgICAgaWJtMzcwcGFyQ2hhbig3MiksICAtLSBJQk0gU3lzdGVtIDM2MC8zNzAgT0VNSSBDaGFubmVsCisgICAgICAgICAgICAgICAgICAgZXNjb24oNzMpLCAgICAgICAgICAtLSBJQk0gRW50ZXJwcmlzZSBTeXN0ZW1zIENvbm5lY3Rpb24KKyAgICAgICAgICAgICAgICAgICBkbHN3KDc0KSwgICAgICAgICAgIC0tIERhdGEgTGluayBTd2l0Y2hpbmcKKyAgICAgICAgICAgICAgICAgICBpc2Rucyg3NSksICAgICAgICAgIC0tIElTRE4gUy9UIGludGVyZmFjZQorICAgICAgICAgICAgICAgICAgIGlzZG51KDc2KSwgICAgICAgICAgLS0gSVNETiBVIGludGVyZmFjZQorICAgICAgICAgICAgICAgICAgIGxhcGQoNzcpLCAgICAgICAgICAgLS0gTGluayBBY2Nlc3MgUHJvdG9jb2wgRAorICAgICAgICAgICAgICAgICAgIGlwU3dpdGNoKDc4KSwgICAgICAgLS0gSVAgU3dpdGNoaW5nIE9iamVjdHMKKyAgICAgICAgICAgICAgICAgICByc3JiKDc5KSwgICAgICAgICAgIC0tIFJlbW90ZSBTb3VyY2UgUm91dGUgQnJpZGdpbmcKKyAgICAgICAgICAgICAgICAgICBhdG1Mb2dpY2FsKDgwKSwgICAgIC0tIEFUTSBMb2dpY2FsIFBvcnQKKyAgICAgICAgICAgICAgICAgICBkczAoODEpLCAgICAgICAgICAgIC0tIERpZ2l0YWwgU2lnbmFsIExldmVsIDAKKyAgICAgICAgICAgICAgICAgICBkczBCdW5kbGUoODIpLCAgICAgIC0tIGdyb3VwIG9mIGRzMHMgb24gdGhlIHNhbWUgZHMxCisgICAgICAgICAgICAgICAgICAgYnNjKDgzKSwgICAgICAgICAgICAtLSBCaXN5bmNocm9ub3VzIFByb3RvY29sCisgICAgICAgICAgICAgICAgICAgYXN5bmMoODQpLCAgICAgICAgICAtLSBBc3luY2hyb25vdXMgUHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgICBjbnIoODUpLCAgICAgICAgICAgIC0tIENvbWJhdCBOZXQgUmFkaW8KKyAgICAgICAgICAgICAgICAgICBpc284ODAyNUR0cig4NiksICAgIC0tIElTTyA4MDIuNXIgRFRSCisgICAgICAgICAgICAgICAgICAgZXBscnMoODcpLCAgICAgICAgICAtLSBFeHQgUG9zIExvYyBSZXBvcnQgU3lzCisgICAgICAgICAgICAgICAgICAgYXJhcCg4OCksICAgICAgICAgICAtLSBBcHBsZXRhbGsgUmVtb3RlIEFjY2VzcyBQcm90b2NvbAorICAgICAgICAgICAgICAgICAgIHByb3BDbmxzKDg5KSwgICAgICAgLS0gUHJvcHJpZXRhcnkgQ29ubmVjdGlvbmxlc3MgUHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgICBob3N0UGFkKDkwKSwgICAgICAgIC0tIENDSVRULUlUVSBYLjI5IFBBRCBQcm90b2NvbAorICAgICAgICAgICAgICAgICAgIHRlcm1QYWQoOTEpLCAgICAgICAgLS0gQ0NJVFQtSVRVIFguMyBQQUQgRmFjaWxpdHkKKyAgICAgICAgICAgICAgICAgICBmcmFtZVJlbGF5TVBJKDkyKSwgIC0tIE11bHRpcHJvdG8gSW50ZXJjb25uZWN0IG92ZXIgRlIKKyAgICAgICAgICAgICAgICAgICB4MjEzKDkzKSwgICAgICAgICAgIC0tIENDSVRULUlUVSBYMjEzCisgICAgICAgICAgICAgICAgICAgYWRzbCg5NCksICAgICAgICAgICAtLSBBc3ltbWV0cmljIERpZ2l0YWwgU3Vic2NyaWJlciBMb29wCisgICAgICAgICAgICAgICAgICAgcmFkc2woOTUpLCAgICAgICAgICAtLSBSYXRlLUFkYXB0LiBEaWdpdGFsIFN1YnNjcmliZXIgTG9vcAorICAgICAgICAgICAgICAgICAgIHNkc2woOTYpLCAgICAgICAgICAgLS0gU3ltbWV0cmljIERpZ2l0YWwgU3Vic2NyaWJlciBMb29wCisgICAgICAgICAgICAgICAgICAgdmRzbCg5NyksICAgICAgICAgICAtLSBWZXJ5IEgtU3BlZWQgRGlnaXRhbCBTdWJzY3JpYi4gTG9vcAorICAgICAgICAgICAgICAgICAgIGlzbzg4MDI1Q1JGUEludCg5OCksIC0tIElTTyA4MDIuNSBDUkZQCisgICAgICAgICAgICAgICAgICAgbXlyaW5ldCg5OSksICAgICAgICAtLSBNeXJpY29tIE15cmluZXQKKyAgICAgICAgICAgICAgICAgICB2b2ljZUVNKDEwMCksICAgICAgIC0tIHZvaWNlIHJlY0VpdmUgYW5kIHRyYW5zTWl0CisgICAgICAgICAgICAgICAgICAgdm9pY2VGWE8oMTAxKSwgICAgICAtLSB2b2ljZSBGb3JlaWduIEV4Y2hhbmdlIE9mZmljZQorICAgICAgICAgICAgICAgICAgIHZvaWNlRlhTKDEwMiksICAgICAgLS0gdm9pY2UgRm9yZWlnbiBFeGNoYW5nZSBTdGF0aW9uCisgICAgICAgICAgICAgICAgICAgdm9pY2VFbmNhcCgxMDMpLCAgICAtLSB2b2ljZSBlbmNhcHN1bGF0aW9uCisgICAgICAgICAgICAgICAgICAgdm9pY2VPdmVySXAoMTA0KSwgICAtLSB2b2ljZSBvdmVyIElQIGVuY2Fwc3VsYXRpb24KKyAgICAgICAgICAgICAgICAgICBhdG1EeGkoMTA1KSwgICAgICAgIC0tIEFUTSBEWEkKKyAgICAgICAgICAgICAgICAgICBhdG1GdW5pKDEwNiksICAgICAgIC0tIEFUTSBGVU5JCisgICAgICAgICAgICAgICAgICAgYXRtSW1hICgxMDcpLCAgICAgICAtLSBBVE0gSU1BCQkgICAKKyAgICAgICAgICAgICAgICAgICBwcHBNdWx0aWxpbmtCdW5kbGUoMTA4KSwgLS0gUFBQIE11bHRpbGluayBCdW5kbGUKKyAgICAgICAgICAgICAgICAgICBpcE92ZXJDZGxjICgxMDkpLCAgIC0tIElCTSBpcE92ZXJDZGxjCisgICAgICAgICAgICAgICAgICAgaXBPdmVyQ2xhdyAoMTEwKSwgICAtLSBJQk0gQ29tbW9uIExpbmsgQWNjZXNzIHRvIFdvcmtzdG4KKyAgICAgICAgICAgICAgICAgICBzdGFja1RvU3RhY2sgKDExMSksIC0tIElCTSBzdGFja1RvU3RhY2sKKyAgICAgICAgICAgICAgICAgICB2aXJ0dWFsSXBBZGRyZXNzICgxMTIpLCAtLSBJQk0gVklQQQorICAgICAgICAgICAgICAgICAgIG1wYyAoMTEzKSwgICAgICAgICAgLS0gSUJNIG11bHRpLXByb3RvY29sIGNoYW5uZWwgc3VwcG9ydAorICAgICAgICAgICAgICAgICAgIGlwT3ZlckF0bSAoMTE0KSwgICAgLS0gSUJNIGlwT3ZlckF0bQorICAgICAgICAgICAgICAgICAgIGlzbzg4MDI1RmliZXIgKDExNSksIC0tIElTTyA4MDIuNWogRmliZXIgVG9rZW4gUmluZworICAgICAgICAgICAgICAgICAgIHRkbGMgKDExNiksCSAgICAgICAtLSBJQk0gdHdpbmF4aWFsIGRhdGEgbGluayBjb250cm9sCisgICAgICAgICAgICAgICAgICAgZ2lnYWJpdEV0aGVybmV0ICgxMTcpLCAtLSBPYnNvbGV0ZWQgdmlhIFJGQzM2MzUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGV0aGVybmV0Q3NtYWNkICg2KSBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkCisgICAgICAgICAgICAgICAgICAgaGRsYyAoMTE4KSwgICAgICAgICAtLSBIRExDCisgICAgICAgICAgICAgICAgICAgbGFwZiAoMTE5KSwJICAgICAgIC0tIExBUCBGCisgICAgICAgICAgICAgICAgICAgdjM3ICgxMjApLAkgICAgICAgLS0gVi4zNworICAgICAgICAgICAgICAgICAgIHgyNW1scCAoMTIxKSwgICAgICAgLS0gTXVsdGktTGluayBQcm90b2NvbAorICAgICAgICAgICAgICAgICAgIHgyNWh1bnRHcm91cCAoMTIyKSwgLS0gWDI1IEh1bnQgR3JvdXAKKyAgICAgICAgICAgICAgICAgICB0cmFzbnBIZGxjICgxMjMpLCAgIC0tIFRyYW5zcCBIRExDCisgICAgICAgICAgICAgICAgICAgaW50ZXJsZWF2ZSAoMTI0KSwgICAtLSBJbnRlcmxlYXZlIGNoYW5uZWwKKyAgICAgICAgICAgICAgICAgICBmYXN0ICgxMjUpLCAgICAgICAgIC0tIEZhc3QgY2hhbm5lbAorICAgICAgICAgICAgICAgICAgIGlwICgxMjYpLAkgICAgICAgLS0gSVAgKGZvciBBUFBOIEhQUiBpbiBJUCBuZXR3b3JrcykKKyAgICAgICAgICAgICAgICAgICBkb2NzQ2FibGVNYWNsYXllciAoMTI3KSwgIC0tIENBVFYgTWFjIExheWVyCisgICAgICAgICAgICAgICAgICAgZG9jc0NhYmxlRG93bnN0cmVhbSAoMTI4KSwgLS0gQ0FUViBEb3duc3RyZWFtIGludGVyZmFjZQorICAgICAgICAgICAgICAgICAgIGRvY3NDYWJsZVVwc3RyZWFtICgxMjkpLCAgLS0gQ0FUViBVcHN0cmVhbSBpbnRlcmZhY2UKKyAgICAgICAgICAgICAgICAgICBhMTJNcHBTd2l0Y2ggKDEzMCksIC0tIEF2YWxvbiBQYXJhbGxlbCBQcm9jZXNzb3IKKyAgICAgICAgICAgICAgICAgICB0dW5uZWwgKDEzMSksICAgICAgIC0tIEVuY2Fwc3VsYXRpb24gaW50ZXJmYWNlCisgICAgICAgICAgICAgICAgICAgY29mZmVlICgxMzIpLCAgICAgICAtLSBjb2ZmZWUgcG90CisgICAgICAgICAgICAgICAgICAgY2VzICgxMzMpLCAgICAgICAgICAtLSBDaXJjdWl0IEVtdWxhdGlvbiBTZXJ2aWNlCisgICAgICAgICAgICAgICAgICAgYXRtU3ViSW50ZXJmYWNlICgxMzQpLCAtLSBBVE0gU3ViIEludGVyZmFjZQorICAgICAgICAgICAgICAgICAgIGwydmxhbiAoMTM1KSwgICAgICAgLS0gTGF5ZXIgMiBWaXJ0dWFsIExBTiB1c2luZyA4MDIuMVEKKyAgICAgICAgICAgICAgICAgICBsM2lwdmxhbiAoMTM2KSwgICAgIC0tIExheWVyIDMgVmlydHVhbCBMQU4gdXNpbmcgSVAKKyAgICAgICAgICAgICAgICAgICBsM2lweHZsYW4gKDEzNyksICAgIC0tIExheWVyIDMgVmlydHVhbCBMQU4gdXNpbmcgSVBYCisgICAgICAgICAgICAgICAgICAgZGlnaXRhbFBvd2VybGluZSAoMTM4KSwgLS0gSVAgb3ZlciBQb3dlciBMaW5lcwkKKyAgICAgICAgICAgICAgICAgICBtZWRpYU1haWxPdmVySXAgKDEzOSksIC0tIE11bHRpbWVkaWEgTWFpbCBvdmVyIElQCisgICAgICAgICAgICAgICAgICAgZHRtICgxNDApLCAgICAgICAgLS0gRHluYW1pYyBzeW5jcm9ub3VzIFRyYW5zZmVyIE1vZGUKKyAgICAgICAgICAgICAgICAgICBkY24gKDE0MSksICAgIC0tIERhdGEgQ29tbXVuaWNhdGlvbnMgTmV0d29yaworICAgICAgICAgICAgICAgICAgIGlwRm9yd2FyZCAoMTQyKSwgICAgLS0gSVAgRm9yd2FyZGluZyBJbnRlcmZhY2UKKyAgICAgICAgICAgICAgICAgICBtc2RzbCAoMTQzKSwgICAgICAgLS0gTXVsdGktcmF0ZSBTeW1tZXRyaWMgRFNMCisgICAgICAgICAgICAgICAgICAgaWVlZTEzOTQgKDE0NCksIC0tIElFRUUxMzk0IEhpZ2ggUGVyZm9ybWFuY2UgU2VyaWFsIEJ1cworICAgICAgICAgICAgICAgICAgIGlmLWdzbiAoMTQ1KSwgICAgICAgLS0gICBISVBQSS02NDAwIAorICAgICAgICAgICAgICAgICAgIGR2YlJjY01hY0xheWVyICgxNDYpLCAtLSBEVkItUkNDIE1BQyBMYXllcgorICAgICAgICAgICAgICAgICAgIGR2YlJjY0Rvd25zdHJlYW0gKDE0NyksICAtLSBEVkItUkNDIERvd25zdHJlYW0gQ2hhbm5lbAorICAgICAgICAgICAgICAgICAgIGR2YlJjY1Vwc3RyZWFtICgxNDgpLCAgLS0gRFZCLVJDQyBVcHN0cmVhbSBDaGFubmVsCisgICAgICAgICAgICAgICAgICAgYXRtVmlydHVhbCAoMTQ5KSwgICAtLSBBVE0gVmlydHVhbCBJbnRlcmZhY2UKKyAgICAgICAgICAgICAgICAgICBtcGxzVHVubmVsICgxNTApLCAgIC0tIE1QTFMgVHVubmVsIFZpcnR1YWwgSW50ZXJmYWNlCisgICAgICAgICAgICAgICAgICAgc3JwICgxNTEpLAktLSBTcGF0aWFsIFJldXNlIFByb3RvY29sCQorICAgICAgICAgICAgICAgICAgIHZvaWNlT3ZlckF0bSAoMTUyKSwgIC0tIFZvaWNlIE92ZXIgQVRNCisgICAgICAgICAgICAgICAgICAgdm9pY2VPdmVyRnJhbWVSZWxheSAoMTUzKSwgICAtLSBWb2ljZSBPdmVyIEZyYW1lIFJlbGF5IAorICAgICAgICAgICAgICAgICAgIGlkc2wgKDE1NCksCQktLSBEaWdpdGFsIFN1YnNjcmliZXIgTG9vcCBvdmVyIElTRE4KKyAgICAgICAgICAgICAgICAgICBjb21wb3NpdGVMaW5rICgxNTUpLCAgLS0gQXZpY2kgQ29tcG9zaXRlIExpbmsgSW50ZXJmYWNlCisgICAgICAgICAgICAgICAgICAgc3M3U2lnTGluayAoMTU2KSwgICAgIC0tIFNTNyBTaWduYWxpbmcgTGluayAKKyAgICAgICAgICAgICAgICAgICBwcm9wV2lyZWxlc3NQMlAgKDE1NyksICAtLSAgUHJvcC4gUDJQIHdpcmVsZXNzIGludGVyZmFjZQorICAgICAgICAgICAgICAgICAgIGZyRm9yd2FyZCAoMTU4KSwgICAgLS0gRnJhbWUgRm9yd2FyZCBJbnRlcmZhY2UKKyAgICAgICAgICAgICAgICAgICByZmMxNDgzICgxNTkpLAktLSBNdWx0aXByb3RvY29sIG92ZXIgQVRNIEFBTDUKKyAgICAgICAgICAgICAgICAgICB1c2IgKDE2MCksCQktLSBVU0IgSW50ZXJmYWNlCisgICAgICAgICAgICAgICAgICAgaWVlZTgwMjNhZExhZyAoMTYxKSwgIC0tIElFRUUgODAyLjNhZCBMaW5rIEFnZ3JlZ2F0ZQorICAgICAgICAgICAgICAgICAgIGJncHBvbGljeWFjY291bnRpbmcgKDE2MiksIC0tIEJHUCBQb2xpY3kgQWNjb3VudGluZworICAgICAgICAgICAgICAgICAgIGZyZjE2TWZyQnVuZGxlICgxNjMpLCAtLSBGUkYgLjE2IE11bHRpbGluayBGcmFtZSBSZWxheSAKKyAgICAgICAgICAgICAgICAgICBoMzIzR2F0ZWtlZXBlciAoMTY0KSwgLS0gSDMyMyBHYXRla2VlcGVyCisgICAgICAgICAgICAgICAgICAgaDMyM1Byb3h5ICgxNjUpLCAtLSBIMzIzIFZvaWNlIGFuZCBWaWRlbyBQcm94eQorICAgICAgICAgICAgICAgICAgIG1wbHMgKDE2NiksIC0tIE1QTFMgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgbWZTaWdMaW5rICgxNjcpLCAtLSBNdWx0aS1mcmVxdWVuY3kgc2lnbmFsaW5nIGxpbmsKKyAgICAgICAgICAgICAgICAgICBoZHNsMiAoMTY4KSwgLS0gSGlnaCBCaXQtUmF0ZSBEU0wgLSAybmQgZ2VuZXJhdGlvbgorICAgICAgICAgICAgICAgICAgIHNoZHNsICgxNjkpLCAtLSBNdWx0aXJhdGUgSERTTDIKKyAgICAgICAgICAgICAgICAgICBkczFGREwgKDE3MCksIC0tIEZhY2lsaXR5IERhdGEgTGluayA0S2JwcyBvbiBhIERTMQorICAgICAgICAgICAgICAgICAgIHBvcyAoMTcxKSwgLS0gUGFja2V0IG92ZXIgU09ORVQvU0RIIEludGVyZmFjZQorICAgICAgICAgICAgICAgICAgIGR2YkFzaUluICgxNzIpLCAtLSBEVkItQVNJIElucHV0CisgICAgICAgICAgICAgICAgICAgZHZiQXNpT3V0ICgxNzMpLCAtLSBEVkItQVNJIE91dHB1dCAKKyAgICAgICAgICAgICAgICAgICBwbGMgKDE3NCksIC0tIFBvd2VyIExpbmUgQ29tbXVudGljYXRpb25zCisgICAgICAgICAgICAgICAgICAgbmZhcyAoMTc1KSwgLS0gTm9uIEZhY2lsaXR5IEFzc29jaWF0ZWQgU2lnbmFsaW5nCisgICAgICAgICAgICAgICAgICAgdHIwMDggKDE3NiksIC0tIFRSMDA4CisgICAgICAgICAgICAgICAgICAgZ3IzMDNSRFQgKDE3NyksIC0tIFJlbW90ZSBEaWdpdGFsIFRlcm1pbmFsCisgICAgICAgICAgICAgICAgICAgZ3IzMDNJRFQgKDE3OCksIC0tIEludGVncmF0ZWQgRGlnaXRhbCBUZXJtaW5hbAorICAgICAgICAgICAgICAgICAgIGlzdXAgKDE3OSksIC0tIElTVVAKKyAgICAgICAgICAgICAgICAgICBwcm9wRG9jc1dpcmVsZXNzTWFjbGF5ZXIgKDE4MCksIC0tIENpc2NvIHByb3ByaWV0YXJ5IE1hY2xheWVyCisgICAgICAgICAgICAgICAgICAgcHJvcERvY3NXaXJlbGVzc0Rvd25zdHJlYW0gKDE4MSksIC0tIENpc2NvIHByb3ByaWV0YXJ5IERvd25zdHJlYW0KKyAgICAgICAgICAgICAgICAgICBwcm9wRG9jc1dpcmVsZXNzVXBzdHJlYW0gKDE4MiksIC0tIENpc2NvIHByb3ByaWV0YXJ5IFVwc3RyZWFtCisgICAgICAgICAgICAgICAgICAgaGlwZXJsYW4yICgxODMpLCAtLSBISVBFUkxBTiBUeXBlIDIgUmFkaW8gSW50ZXJmYWNlCisgICAgICAgICAgICAgICAgICAgcHJvcEJXQXAyTXAgKDE4NCksIC0tIFByb3BCcm9hZGJhbmRXaXJlbGVzc0FjY2Vzc3B0Mm11bHRpcHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gdXNlIG9mIHRoaXMgaWZ0eXBlIGZvciBJRUVFIDgwMi4xNiBXTUFOCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGludGVyZmFjZXMgYXMgcGVyIElFRUUgU3RkIDgwMi4xNmYgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gZGVwcmVjYXRlZCBhbmQgaWZUeXBlIDIzNyBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkLgorICAgICAgICAgICAgICAgICAgIHNvbmV0T3ZlcmhlYWRDaGFubmVsICgxODUpLCAtLSBTT05FVCBPdmVyaGVhZCBDaGFubmVsCisgICAgICAgICAgICAgICAgICAgZGlnaXRhbFdyYXBwZXJPdmVyaGVhZENoYW5uZWwgKDE4NiksIC0tIERpZ2l0YWwgV3JhcHBlcgorICAgICAgICAgICAgICAgICAgIGFhbDIgKDE4NyksIC0tIEFUTSBhZGFwdGF0aW9uIGxheWVyIDIKKyAgICAgICAgICAgICAgICAgICByYWRpb01BQyAoMTg4KSwgLS0gTUFDIGxheWVyIG92ZXIgcmFkaW8gbGlua3MKKyAgICAgICAgICAgICAgICAgICBhdG1SYWRpbyAoMTg5KSwgLS0gQVRNIG92ZXIgcmFkaW8gbGlua3MgICAKKyAgICAgICAgICAgICAgICAgICBpbXQgKDE5MCksIC0tIEludGVyIE1hY2hpbmUgVHJ1bmtzCisgICAgICAgICAgICAgICAgICAgbXZsICgxOTEpLCAtLSBNdWx0aXBsZSBWaXJ0dWFsIExpbmVzIERTTAorICAgICAgICAgICAgICAgICAgIHJlYWNoRFNMICgxOTIpLCAtLSBMb25nIFJlYWNoIERTTAorICAgICAgICAgICAgICAgICAgIGZyRGxjaUVuZFB0ICgxOTMpLCAtLSBGcmFtZSBSZWxheSBETENJIEVuZCBQb2ludAorICAgICAgICAgICAgICAgICAgIGF0bVZjaUVuZFB0ICgxOTQpLCAtLSBBVE0gVkNJIEVuZCBQb2ludAorICAgICAgICAgICAgICAgICAgIG9wdGljYWxDaGFubmVsICgxOTUpLCAtLSBPcHRpY2FsIENoYW5uZWwKKyAgICAgICAgICAgICAgICAgICBvcHRpY2FsVHJhbnNwb3J0ICgxOTYpLCAtLSBPcHRpY2FsIFRyYW5zcG9ydAorICAgICAgICAgICAgICAgICAgIHByb3BBdG0gKDE5NyksIC0tICBQcm9wcmlldGFyeSBBVE0gICAgICAgCisgICAgICAgICAgICAgICAgICAgdm9pY2VPdmVyQ2FibGUgKDE5OCksIC0tIFZvaWNlIE92ZXIgQ2FibGUgSW50ZXJmYWNlCisgICAgICAgICAgICAgICAgICAgaW5maW5pYmFuZCAoMTk5KSwgLS0gSW5maW5pYmFuZAorICAgICAgICAgICAgICAgICAgIHRlTGluayAoMjAwKSwgLS0gVEUgTGluaworICAgICAgICAgICAgICAgICAgIHEyOTMxICgyMDEpLCAtLSBRLjI5MzEKKyAgICAgICAgICAgICAgICAgICB2aXJ0dWFsVGcgKDIwMiksIC0tIFZpcnR1YWwgVHJ1bmsgR3JvdXAKKyAgICAgICAgICAgICAgICAgICBzaXBUZyAoMjAzKSwgLS0gU0lQIFRydW5rIEdyb3VwCisgICAgICAgICAgICAgICAgICAgc2lwU2lnICgyMDQpLCAtLSBTSVAgU2lnbmFsaW5nICAgCisgICAgICAgICAgICAgICAgICAgZG9jc0NhYmxlVXBzdHJlYW1DaGFubmVsICgyMDUpLCAtLSBDQVRWIFVwc3RyZWFtIENoYW5uZWwKKyAgICAgICAgICAgICAgICAgICBlY29uZXQgKDIwNiksIC0tIEFjb3JuIEVjb25ldAorICAgICAgICAgICAgICAgICAgIHBvbjE1NSAoMjA3KSwgLS0gRlNBTiAxNTVNYiBTeW1ldHJpY2FsIFBPTiBpbnRlcmZhY2UKKyAgICAgICAgICAgICAgICAgICBwb242MjIgKDIwOCksIC0tIEZTQU42MjJNYiBTeW1ldHJpY2FsIFBPTiBpbnRlcmZhY2UKKyAgICAgICAgICAgICAgICAgICBicmlkZ2UgKDIwOSksIC0tIFRyYW5zcGFyZW50IGJyaWRnZSBpbnRlcmZhY2UKKyAgICAgICAgICAgICAgICAgICBsaW5lZ3JvdXAgKDIxMCksIC0tIEludGVyZmFjZSBjb21tb24gdG8gbXVsdGlwbGUgbGluZXMJCSAgIAorICAgICAgICAgICAgICAgICAgIHZvaWNlRU1GR0QgKDIxMSksIC0tIHZvaWNlIEUmTSBGZWF0dXJlIEdyb3VwIEQKKyAgICAgICAgICAgICAgICAgICB2b2ljZUZHREVBTkEgKDIxMiksIC0tIHZvaWNlIEZHRCBFeGNoYW5nZSBBY2Nlc3MgTm9ydGggQW1lcmljYW4KKyAgICAgICAgICAgICAgICAgICB2b2ljZURJRCAoMjEzKSwgLS0gdm9pY2UgRGlyZWN0IElud2FyZCBEaWFsaW5nCisgICAgICAgICAgICAgICAgICAgbXBlZ1RyYW5zcG9ydCAoMjE0KSwgLS0gTVBFRyB0cmFuc3BvcnQgaW50ZXJmYWNlCisgICAgICAgICAgICAgICAgICAgc2l4VG9Gb3VyICgyMTUpLCAtLSA2dG80IGludGVyZmFjZSAoREVQUkVDQVRFRCkKKyAgICAgICAgICAgICAgICAgICBndHAgKDIxNiksIC0tIEdUUCAoR1BSUyBUdW5uZWxpbmcgUHJvdG9jb2wpCisgICAgICAgICAgICAgICAgICAgcGRuRXRoZXJMb29wMSAoMjE3KSwgLS0gUGFyYWR5bmUgRXRoZXJMb29wIDEKKyAgICAgICAgICAgICAgICAgICBwZG5FdGhlckxvb3AyICgyMTgpLCAtLSBQYXJhZHluZSBFdGhlckxvb3AgMgorICAgICAgICAgICAgICAgICAgIG9wdGljYWxDaGFubmVsR3JvdXAgKDIxOSksIC0tIE9wdGljYWwgQ2hhbm5lbCBHcm91cAorICAgICAgICAgICAgICAgICAgIGhvbWVwbmEgKDIyMCksIC0tIEhvbWVQTkEgSVRVLVQgRy45ODkJCQkJICAgCisgICAgICAgICAgICAgICAgICAgZ2ZwICgyMjEpLCAtLSBHZW5lcmljIEZyYW1pbmcgUHJvY2VkdXJlIChHRlApCisgICAgICAgICAgICAgICAgICAgY2lzY29JU0x2bGFuICgyMjIpLCAtLSBMYXllciAyIFZpcnR1YWwgTEFOIHVzaW5nIENpc2NvIElTTAorICAgICAgICAgICAgICAgICAgIGFjdGVsaXNNZXRhTE9PUCAoMjIzKSwgLS0gQWN0ZWxlaXMgcHJvcHJpZXRhcnkgTWV0YUxPT1AgSGlnaCBTcGVlZCBMaW5rIAorICAgICAgICAgICAgICAgICAgIGZjaXBMaW5rICgyMjQpLCAtLSBGQ0lQIExpbmsgCisgICAgICAgICAgICAgICAgICAgcnByICgyMjUpLCAtLSBSZXNpbGllbnQgUGFja2V0IFJpbmcgSW50ZXJmYWNlIFR5cGUKKyAgICAgICAgICAgICAgICAgICBxYW0gKDIyNiksIC0tIFJGIFFhbSBJbnRlcmZhY2UKKyAgICAgICAgICAgICAgICAgICBsbXAgKDIyNyksIC0tIExpbmsgTWFuYWdlbWVudCBQcm90b2NvbAorICAgICAgICAgICAgICAgICAgIGNibFZlY3RhU3RhciAoMjI4KSwgLS0gQ2FtYnJpZGdlIEJyb2FkYmFuZCBOZXR3b3JrcyBMaW1pdGVkIFZlY3RhU3RhcgorICAgICAgICAgICAgICAgICAgIGRvY3NDYWJsZU1DbXRzRG93bnN0cmVhbSAoMjI5KSwgLS0gQ0FUViBNb2R1bGFyIENNVFMgRG93bnN0cmVhbSBJbnRlcmZhY2UKKyAgICAgICAgICAgICAgICAgICBhZHNsMiAoMjMwKSwgLS0gQXN5bW1ldHJpYyBEaWdpdGFsIFN1YnNjcmliZXIgTG9vcCBWZXJzaW9uIDIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIChERVBSRUNBVEVEL09CU09MRVRFRCAtIHBsZWFzZSB1c2UgYWRzbDJwbHVzIDIzOCBpbnN0ZWFkKQorICAgICAgICAgICAgICAgICAgIG1hY1NlY0NvbnRyb2xsZWRJRiAoMjMxKSwgLS0gTUFDU2VjQ29udHJvbGxlZCAKKyAgICAgICAgICAgICAgICAgICBtYWNTZWNVbmNvbnRyb2xsZWRJRiAoMjMyKSwgLS0gTUFDU2VjVW5jb250cm9sbGVkCisgICAgICAgICAgICAgICAgICAgYXZpY2lPcHRpY2FsRXRoZXIgKDIzMyksIC0tIEF2aWNpIE9wdGljYWwgRXRoZXJuZXQgQWdncmVnYXRlCisgICAgICAgICAgICAgICAgICAgYXRtYm9uZCAoMjM0KSwgLS0gYXRtYm9uZAorICAgICAgICAgICAgICAgICAgIHZvaWNlRkdET1MgKDIzNSksIC0tIHZvaWNlIEZHRCBPcGVyYXRvciBTZXJ2aWNlcworICAgICAgICAgICAgICAgICAgIG1vY2FWZXJzaW9uMSAoMjM2KSwgLS0gTXVsdGlNZWRpYSBvdmVyIENvYXggQWxsaWFuY2UgKE1vQ0EpIEludGVyZmFjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBhcyBkb2N1bWVudGVkIGluIGluZm9ybWF0aW9uIHByb3ZpZGVkIHByaXZhdGVseSB0byBJQU5BCisgICAgICAgICAgICAgICAgICAgaWVlZTgwMjE2V01BTiAoMjM3KSwgLS0gSUVFRSA4MDIuMTYgV01BTiBpbnRlcmZhY2UKKyAgICAgICAgICAgICAgICAgICBhZHNsMnBsdXMgKDIzOCksIC0tIEFzeW1tZXRyaWMgRGlnaXRhbCBTdWJzY3JpYmVyIExvb3AgVmVyc2lvbiAyLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gVmVyc2lvbiAyIFBsdXMgYW5kIGFsbCB2YXJpYW50cworICAgICAgICAgICAgICAgICAgIGR2YlJjc01hY0xheWVyICgyMzkpLCAtLSBEVkItUkNTIE1BQyBMYXllcgorICAgICAgICAgICAgICAgICAgIGR2YlRkbSAoMjQwKSwgLS0gRFZCIFNhdGVsbGl0ZSBURE0KKyAgICAgICAgICAgICAgICAgICBkdmJSY3NUZG1hICgyNDEpLCAtLSBEVkItUkNTIFRETUEKKyAgICAgICAgICAgICAgICAgICB4ODZMYXBzICgyNDIpLCAtLSBMQVBTIGJhc2VkIG9uIElUVS1UIFguODYvWS4xMzIzCisgICAgICAgICAgICAgICAgICAgd3dhblBQICgyNDMpLCAtLSAzR1BQIFdXQU4KKyAgICAgICAgICAgICAgICAgICB3d2FuUFAyICgyNDQpIC0tIDNHUFAyIFdXQU4KKyAgICAgICAgICAgICAgICAgICB9CisKK0lBTkF0dW5uZWxUeXBlIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBlbmNhcHN1bGF0aW9uIG1ldGhvZCB1c2VkIGJ5IGEgdHVubmVsLiBUaGUgdmFsdWUKKyAgICAgICAgICAgIGRpcmVjdCBpbmRpY2F0ZXMgdGhhdCBhIHBhY2tldCBpcyBlbmNhcHN1bGF0ZWQKKyAgICAgICAgICAgIGRpcmVjdGx5IHdpdGhpbiBhIG5vcm1hbCBJUCBoZWFkZXIsIHdpdGggbm8KKyAgICAgICAgICAgIGludGVybWVkaWF0ZSBoZWFkZXIsIGFuZCB1bmljYXN0IHRvIHRoZSByZW1vdGUgdHVubmVsCisgICAgICAgICAgICBlbmRwb2ludCAoZS5nLiwgYW4gUkZDIDIwMDMgSVAtaW4tSVAgdHVubmVsLCBvciBhbiBSRkMKKyAgICAgICAgICAgIDE5MzMgSVB2Ni1pbi1JUHY0IHR1bm5lbCkuIFRoZSB2YWx1ZSBtaW5pbWFsIGluZGljYXRlcworICAgICAgICAgICAgdGhhdCBhIE1pbmltYWwgRm9yd2FyZGluZyBIZWFkZXIgKFJGQyAyMDA0KSBpcworICAgICAgICAgICAgaW5zZXJ0ZWQgYmV0d2VlbiB0aGUgb3V0ZXIgaGVhZGVyIGFuZCB0aGUgcGF5bG9hZAorICAgICAgICAgICAgcGFja2V0LiBUaGUgdmFsdWUgVURQIGluZGljYXRlcyB0aGF0IHRoZSBwYXlsb2FkCisgICAgICAgICAgICBwYWNrZXQgaXMgZW5jYXBzdWxhdGVkIHdpdGhpbiBhIG5vcm1hbCBVRFAgcGFja2V0CisgICAgICAgICAgICAoZS5nLiwgUkZDIDEyMzQpLgorCisgICAgICAgICAgICBUaGUgdmFsdWVzIHNpeFRvRm91ciwgc2l4T3ZlckZvdXIsIGFuZCBpc2F0YXAKKyAgICAgICAgICAgIGluZGljYXRlcyB0aGF0IGFuIElQdjYgcGFja2V0IGlzIGVuY2Fwc3VsYXRlZCBkaXJlY3RseQorICAgICAgICAgICAgd2l0aGluIGFuIElQdjQgaGVhZGVyLCB3aXRoIG5vIGludGVybWVkaWF0ZSBoZWFkZXIsCisgICAgICAgICAgICBhbmQgdW5pY2FzdCB0byB0aGUgZGVzdGluYXRpb24gZGV0ZXJtaW5lZCBieSB0aGUgNnRvNCwKKyAgICAgICAgICAgIDZvdmVyNCwgb3IgSVNBVEFQIHByb3RvY29sLgorCisgICAgICAgICAgICBUaGUgcmVtYWluaW5nIHByb3RvY29sLXNwZWNpZmljIHZhbHVlcyBpbmRpY2F0ZSB0aGF0IGEKKyAgICAgICAgICAgIGhlYWRlciBvZiB0aGUgcHJvdG9jb2wgb2YgdGhhdCBuYW1lIGlzIGluc2VydGVkCisgICAgICAgICAgICBiZXR3ZWVuIHRoZSBvdXRlciBoZWFkZXIgYW5kIHRoZSBwYXlsb2FkIGhlYWRlci4KKworICAgICAgICAgICAgVGhlIGFzc2lnbm1lbnQgcG9saWN5IGZvciBJQU5BdHVubmVsVHlwZSB2YWx1ZXMgaXMKKyAgICAgICAgICAgIGlkZW50aWNhbCB0byB0aGUgcG9saWN5IGZvciBhc3NpZ25pbmcgSUFOQWlmVHlwZQorICAgICAgICAgICAgdmFsdWVzLiIKKyAgICBTWU5UQVggICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgIG90aGVyKDEpLCAgICAgICAgLS0gbm9uZSBvZiB0aGUgZm9sbG93aW5nCisgICAgICAgICAgICAgICAgICAgZGlyZWN0KDIpLCAgICAgICAtLSBubyBpbnRlcm1lZGlhdGUgaGVhZGVyCisgICAgICAgICAgICAgICAgICAgZ3JlKDMpLCAgICAgICAgICAtLSBHUkUgZW5jYXBzdWxhdGlvbgorICAgICAgICAgICAgICAgICAgIG1pbmltYWwoNCksICAgICAgLS0gTWluaW1hbCBlbmNhcHN1bGF0aW9uCisgICAgICAgICAgICAgICAgICAgbDJ0cCg1KSwgICAgICAgICAtLSBMMlRQIGVuY2Fwc3VsYXRpb24KKyAgICAgICAgICAgICAgICAgICBwcHRwKDYpLCAgICAgICAgIC0tIFBQVFAgZW5jYXBzdWxhdGlvbgorICAgICAgICAgICAgICAgICAgIGwyZig3KSwgICAgICAgICAgLS0gTDJGIGVuY2Fwc3VsYXRpb24KKyAgICAgICAgICAgICAgICAgICB1ZHAoOCksICAgICAgICAgIC0tIFVEUCBlbmNhcHN1bGF0aW9uCisgICAgICAgICAgICAgICAgICAgYXRtcCg5KSwgICAgICAgICAtLSBBVE1QIGVuY2Fwc3VsYXRpb24KKyAgICAgICAgICAgICAgICAgICBtc2RwKDEwKSwgICAgICAgIC0tIE1TRFAgZW5jYXBzdWxhdGlvbgorICAgICAgICAgICAgICAgICAgIHNpeFRvRm91cigxMSksICAgLS0gNnRvNCBlbmNhcHN1bGF0aW9uCisgICAgICAgICAgICAgICAgICAgc2l4T3ZlckZvdXIoMTIpLCAtLSA2b3ZlcjQgZW5jYXBzdWxhdGlvbgorICAgICAgICAgICAgICAgICAgIGlzYXRhcCgxMyksICAgICAgLS0gSVNBVEFQIGVuY2Fwc3VsYXRpb24KKyAgICAgICAgICAgICAgICAgICB0ZXJlZG8oMTQpICAgICAgIC0tIFRlcmVkbyBlbmNhcHN1bGF0aW9uCisgICAgICAgICAgICAgICB9CisKKyAgIEVORAorCisKKworCisKKworCisKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lGLU1JQiBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JRi1NSUIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODcxMzg5NAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JRi1NSUIKQEAgLTAsMCArMSwxODk5IEBACitJRi1NSUIgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKK0lNUE9SVFMKKyAgICBNT0RVTEUtSURFTlRJVFksIE9CSkVDVC1UWVBFLCBDb3VudGVyMzIsIEdhdWdlMzIsIENvdW50ZXI2NCwKKyAgICBJbnRlZ2VyMzIsIFRpbWVUaWNrcywgbWliLTIsCisgICAgTk9USUZJQ0FUSU9OLVRZUEUgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIFNOTVB2Mi1TTUkKKyAgICBURVhUVUFMLUNPTlZFTlRJT04sIERpc3BsYXlTdHJpbmcsCisgICAgUGh5c0FkZHJlc3MsIFRydXRoVmFsdWUsIFJvd1N0YXR1cywKKyAgICBUaW1lU3RhbXAsIEF1dG9ub21vdXNUeXBlLCBUZXN0QW5kSW5jciAgIEZST00gU05NUHYyLVRDCisgICAgTU9EVUxFLUNPTVBMSUFOQ0UsIE9CSkVDVC1HUk9VUCwKKyAgICBOT1RJRklDQVRJT04tR1JPVVAgICAgICAgICAgICAgICAgICAgICAgIEZST00gU05NUHYyLUNPTkYKKyAgICBzbm1wVHJhcHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gU05NUHYyLU1JQgorICAgIElBTkFpZlR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSBJQU5BaWZUeXBlLU1JQjsKKworCitpZk1JQiBNT0RVTEUtSURFTlRJVFkKKyAgICBMQVNULVVQREFURUQgIjIwMDAwNjE0MDAwMFoiCisgICAgT1JHQU5JWkFUSU9OICJJRVRGIEludGVyZmFjZXMgTUlCIFdvcmtpbmcgR3JvdXAiCisgICAgQ09OVEFDVC1JTkZPCisgICAgICAgICAgICAiICAgS2VpdGggTWNDbG9naHJpZQorICAgICAgICAgICAgICAgIENpc2NvIFN5c3RlbXMsIEluYy4KKyAgICAgICAgICAgICAgICAxNzAgV2VzdCBUYXNtYW4gRHJpdmUKKyAgICAgICAgICAgICAgICBTYW4gSm9zZSwgQ0EgIDk1MTM0LTE3MDYKKyAgICAgICAgICAgICAgICBVUworCisgICAgICAgICAgICAgICAgNDA4LTUyNi01MjYwCisgICAgICAgICAgICAgICAga3ptQGNpc2NvLmNvbSIKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBNSUIgbW9kdWxlIHRvIGRlc2NyaWJlIGdlbmVyaWMgb2JqZWN0cyBmb3IgbmV0d29yaworICAgICAgICAgICAgaW50ZXJmYWNlIHN1Yi1sYXllcnMuICBUaGlzIE1JQiBpcyBhbiB1cGRhdGVkIHZlcnNpb24gb2YKKyAgICAgICAgICAgIE1JQi1JSSdzIGlmVGFibGUsIGFuZCBpbmNvcnBvcmF0ZXMgdGhlIGV4dGVuc2lvbnMgZGVmaW5lZCBpbgorICAgICAgICAgICAgUkZDIDEyMjkuIgorCisKKyAgICBSRVZJU0lPTiAgICAgICIyMDAwMDYxNDAwMDBaIgorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQ2xhcmlmaWNhdGlvbnMgYWdyZWVkIHVwb24gYnkgdGhlIEludGVyZmFjZXMgTUlCIFdHLCBhbmQKKyAgICAgICAgICAgIHB1Ymxpc2hlZCBhcyBSRkMgMjg2My4iCisgICAgUkVWSVNJT04gICAgICAiMTk5NjAyMjgyMTU1WiIKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlJldmlzaW9ucyBtYWRlIGJ5IHRoZSBJbnRlcmZhY2VzIE1JQiBXRywgYW5kIHB1Ymxpc2hlZCBpbgorICAgICAgICAgICAgUkZDIDIyMzMuIgorICAgIFJFVklTSU9OICAgICAgIjE5OTMxMTA4MjE1NVoiCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJJbml0aWFsIHJldmlzaW9uLCBwdWJsaXNoZWQgYXMgcGFydCBvZiBSRkMgMTU3My4iCisgICAgOjo9IHsgbWliLTIgMzEgfQorCisKK2lmTUlCT2JqZWN0cyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpZk1JQiAxIH0KKworaW50ZXJmYWNlcyAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDIgfQorCistLQorLS0gVGV4dHVhbCBDb252ZW50aW9ucworLS0KKworCistLSBPd25lclN0cmluZyBoYXMgdGhlIHNhbWUgc2VtYW50aWNzIGFzIHVzZWQgaW4gUkZDIDEyNzEKKworT3duZXJTdHJpbmcgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIERJU1BMQVktSElOVCAiMjU1YSIKKyAgICBTVEFUVVMgICAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhpcyBkYXRhIHR5cGUgaXMgdXNlZCB0byBtb2RlbCBhbiBhZG1pbmlzdHJhdGl2ZWx5CisgICAgICAgICAgICBhc3NpZ25lZCBuYW1lIG9mIHRoZSBvd25lciBvZiBhIHJlc291cmNlLiAgVGhpcyBpbmZvcm1hdGlvbgorICAgICAgICAgICAgaXMgdGFrZW4gZnJvbSB0aGUgTlZUIEFTQ0lJIGNoYXJhY3RlciBzZXQuICBJdCBpcyBzdWdnZXN0ZWQKKyAgICAgICAgICAgIHRoYXQgdGhpcyBuYW1lIGNvbnRhaW4gb25lIG9yIG1vcmUgb2YgdGhlIGZvbGxvd2luZzogQVNDSUkKKyAgICAgICAgICAgIGZvcm0gb2YgdGhlIG1hbmFnZXIgc3RhdGlvbidzIHRyYW5zcG9ydCBhZGRyZXNzLCBtYW5hZ2VtZW50CisgICAgICAgICAgICBzdGF0aW9uIG5hbWUgKGUuZy4sIGRvbWFpbiBuYW1lKSwgbmV0d29yayBtYW5hZ2VtZW50CisgICAgICAgICAgICBwZXJzb25uZWwncyBuYW1lLCBsb2NhdGlvbiwgb3IgcGhvbmUgbnVtYmVyLiAgSW4gc29tZSBjYXNlcworICAgICAgICAgICAgdGhlIGFnZW50IGl0c2VsZiB3aWxsIGJlIHRoZSBvd25lciBvZiBhbiBlbnRyeS4gIEluIHRoZXNlCisgICAgICAgICAgICBjYXNlcywgdGhpcyBzdHJpbmcgc2hhbGwgYmUgc2V0IHRvIGEgc3RyaW5nIHN0YXJ0aW5nIHdpdGgKKyAgICAgICAgICAgICdhZ2VudCcuIgorICAgIFNZTlRBWCAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUoMC4uMjU1KSkKKworLS0gSW50ZXJmYWNlSW5kZXggY29udGFpbnMgdGhlIHNlbWFudGljcyBvZiBpZkluZGV4IGFuZCBzaG91bGQgYmUgdXNlZAorLS0gZm9yIGFueSBvYmplY3RzIGRlZmluZWQgaW4gb3RoZXIgTUlCIG1vZHVsZXMgdGhhdCBuZWVkIHRoZXNlIHNlbWFudGljcy4KKworSW50ZXJmYWNlSW5kZXggOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIERJU1BMQVktSElOVCAiZCIKKyAgICBTVEFUVVMgICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisKKworICAgICAgICAgICAgIkEgdW5pcXVlIHZhbHVlLCBncmVhdGVyIHRoYW4gemVybywgZm9yIGVhY2ggaW50ZXJmYWNlIG9yCisgICAgICAgICAgICBpbnRlcmZhY2Ugc3ViLWxheWVyIGluIHRoZSBtYW5hZ2VkIHN5c3RlbS4gIEl0IGlzCisgICAgICAgICAgICByZWNvbW1lbmRlZCB0aGF0IHZhbHVlcyBhcmUgYXNzaWduZWQgY29udGlndW91c2x5IHN0YXJ0aW5nCisgICAgICAgICAgICBmcm9tIDEuICBUaGUgdmFsdWUgZm9yIGVhY2ggaW50ZXJmYWNlIHN1Yi1sYXllciBtdXN0IHJlbWFpbgorICAgICAgICAgICAgY29uc3RhbnQgYXQgbGVhc3QgZnJvbSBvbmUgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIGVudGl0eSdzCisgICAgICAgICAgICBuZXR3b3JrIG1hbmFnZW1lbnQgc3lzdGVtIHRvIHRoZSBuZXh0IHJlLWluaXRpYWxpemF0aW9uLiIKKyAgICBTWU5UQVggICAgICAgSW50ZWdlcjMyICgxLi4yMTQ3NDgzNjQ3KQorCitJbnRlcmZhY2VJbmRleE9yWmVybyA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgRElTUExBWS1ISU5UICJkIgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIHRleHR1YWwgY29udmVudGlvbiBpcyBhbiBleHRlbnNpb24gb2YgdGhlCisgICAgICAgICAgICBJbnRlcmZhY2VJbmRleCBjb252ZW50aW9uLiAgVGhlIGxhdHRlciBkZWZpbmVzIGEgZ3JlYXRlcgorICAgICAgICAgICAgdGhhbiB6ZXJvIHZhbHVlIHVzZWQgdG8gaWRlbnRpZnkgYW4gaW50ZXJmYWNlIG9yIGludGVyZmFjZQorICAgICAgICAgICAgc3ViLWxheWVyIGluIHRoZSBtYW5hZ2VkIHN5c3RlbS4gIFRoaXMgZXh0ZW5zaW9uIHBlcm1pdHMgdGhlCisgICAgICAgICAgICBhZGRpdGlvbmFsIHZhbHVlIG9mIHplcm8uICB0aGUgdmFsdWUgemVybyBpcyBvYmplY3Qtc3BlY2lmaWMKKyAgICAgICAgICAgIGFuZCBtdXN0IHRoZXJlZm9yZSBiZSBkZWZpbmVkIGFzIHBhcnQgb2YgdGhlIGRlc2NyaXB0aW9uIG9mCisgICAgICAgICAgICBhbnkgb2JqZWN0IHdoaWNoIHVzZXMgdGhpcyBzeW50YXguICBFeGFtcGxlcyBvZiB0aGUgdXNhZ2Ugb2YKKyAgICAgICAgICAgIHplcm8gbWlnaHQgaW5jbHVkZSBzaXR1YXRpb25zIHdoZXJlIGludGVyZmFjZSB3YXMgdW5rbm93biwKKyAgICAgICAgICAgIG9yIHdoZW4gbm9uZSBvciBhbGwgaW50ZXJmYWNlcyBuZWVkIHRvIGJlIHJlZmVyZW5jZWQuIgorICAgIFNZTlRBWCAgICAgICBJbnRlZ2VyMzIgKDAuLjIxNDc0ODM2NDcpCisKK2lmTnVtYmVyICBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIEludGVnZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzIChyZWdhcmRsZXNzIG9mIHRoZWlyCisgICAgICAgICAgICBjdXJyZW50IHN0YXRlKSBwcmVzZW50IG9uIHRoaXMgc3lzdGVtLiIKKyAgICA6Oj0geyBpbnRlcmZhY2VzIDEgfQorCitpZlRhYmxlTGFzdENoYW5nZSAgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBUaW1lVGlja3MKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdmFsdWUgb2Ygc3lzVXBUaW1lIGF0IHRoZSB0aW1lIG9mIHRoZSBsYXN0IGNyZWF0aW9uIG9yCisgICAgICAgICAgICBkZWxldGlvbiBvZiBhbiBlbnRyeSBpbiB0aGUgaWZUYWJsZS4gIElmIHRoZSBudW1iZXIgb2YKKyAgICAgICAgICAgIGVudHJpZXMgaGFzIGJlZW4gdW5jaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IHJlLWluaXRpYWxpemF0aW9uCisgICAgICAgICAgICBvZiB0aGUgbG9jYWwgbmV0d29yayBtYW5hZ2VtZW50IHN1YnN5c3RlbSwgdGhlbiB0aGlzIG9iamVjdAorICAgICAgICAgICAgY29udGFpbnMgYSB6ZXJvIHZhbHVlLiIKKyAgICA6Oj0geyBpZk1JQk9iamVjdHMgNSB9CisKKworLS0gdGhlIEludGVyZmFjZXMgdGFibGUKKworLS0gVGhlIEludGVyZmFjZXMgdGFibGUgY29udGFpbnMgaW5mb3JtYXRpb24gb24gdGhlIGVudGl0eSdzCisKKworLS0gaW50ZXJmYWNlcy4gIEVhY2ggc3ViLWxheWVyIGJlbG93IHRoZSBpbnRlcm5ldHdvcmstbGF5ZXIKKy0tIG9mIGEgbmV0d29yayBpbnRlcmZhY2UgaXMgY29uc2lkZXJlZCB0byBiZSBhbiBpbnRlcmZhY2UuCisKK2lmVGFibGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBTRVFVRU5DRSBPRiBJZkVudHJ5CisgICAgTUFYLUFDQ0VTUyAgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIGxpc3Qgb2YgaW50ZXJmYWNlIGVudHJpZXMuICBUaGUgbnVtYmVyIG9mIGVudHJpZXMgaXMKKyAgICAgICAgICAgIGdpdmVuIGJ5IHRoZSB2YWx1ZSBvZiBpZk51bWJlci4iCisgICAgOjo9IHsgaW50ZXJmYWNlcyAyIH0KKworaWZFbnRyeSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIElmRW50cnkKKyAgICBNQVgtQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkFuIGVudHJ5IGNvbnRhaW5pbmcgbWFuYWdlbWVudCBpbmZvcm1hdGlvbiBhcHBsaWNhYmxlIHRvIGEKKyAgICAgICAgICAgIHBhcnRpY3VsYXIgaW50ZXJmYWNlLiIKKyAgICBJTkRFWCAgIHsgaWZJbmRleCB9CisgICAgOjo9IHsgaWZUYWJsZSAxIH0KKworSWZFbnRyeSA6Oj0KKyAgICBTRVFVRU5DRSB7CisgICAgICAgIGlmSW5kZXggICAgICAgICAgICAgICAgIEludGVyZmFjZUluZGV4LAorICAgICAgICBpZkRlc2NyICAgICAgICAgICAgICAgICBEaXNwbGF5U3RyaW5nLAorICAgICAgICBpZlR5cGUgICAgICAgICAgICAgICAgICBJQU5BaWZUeXBlLAorICAgICAgICBpZk10dSAgICAgICAgICAgICAgICAgICBJbnRlZ2VyMzIsCisgICAgICAgIGlmU3BlZWQgICAgICAgICAgICAgICAgIEdhdWdlMzIsCisgICAgICAgIGlmUGh5c0FkZHJlc3MgICAgICAgICAgIFBoeXNBZGRyZXNzLAorICAgICAgICBpZkFkbWluU3RhdHVzICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICBpZk9wZXJTdGF0dXMgICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICBpZkxhc3RDaGFuZ2UgICAgICAgICAgICBUaW1lVGlja3MsCisgICAgICAgIGlmSW5PY3RldHMgICAgICAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaWZJblVjYXN0UGt0cyAgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpZkluTlVjYXN0UGt0cyAgICAgICAgICBDb3VudGVyMzIsICAtLSBkZXByZWNhdGVkCisgICAgICAgIGlmSW5EaXNjYXJkcyAgICAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaWZJbkVycm9ycyAgICAgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpZkluVW5rbm93blByb3RvcyAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlmT3V0T2N0ZXRzICAgICAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaWZPdXRVY2FzdFBrdHMgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpZk91dE5VY2FzdFBrdHMgICAgICAgICBDb3VudGVyMzIsICAtLSBkZXByZWNhdGVkCisgICAgICAgIGlmT3V0RGlzY2FyZHMgICAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaWZPdXRFcnJvcnMgICAgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpZk91dFFMZW4gICAgICAgICAgICAgICBHYXVnZTMyLCAgICAtLSBkZXByZWNhdGVkCisgICAgICAgIGlmU3BlY2lmaWMgICAgICAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIC0tIGRlcHJlY2F0ZWQKKyAgICB9CisKKworCitpZkluZGV4IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgSW50ZXJmYWNlSW5kZXgKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIHVuaXF1ZSB2YWx1ZSwgZ3JlYXRlciB0aGFuIHplcm8sIGZvciBlYWNoIGludGVyZmFjZS4gIEl0CisgICAgICAgICAgICBpcyByZWNvbW1lbmRlZCB0aGF0IHZhbHVlcyBhcmUgYXNzaWduZWQgY29udGlndW91c2x5CisgICAgICAgICAgICBzdGFydGluZyBmcm9tIDEuICBUaGUgdmFsdWUgZm9yIGVhY2ggaW50ZXJmYWNlIHN1Yi1sYXllcgorICAgICAgICAgICAgbXVzdCByZW1haW4gY29uc3RhbnQgYXQgbGVhc3QgZnJvbSBvbmUgcmUtaW5pdGlhbGl6YXRpb24gb2YKKyAgICAgICAgICAgIHRoZSBlbnRpdHkncyBuZXR3b3JrIG1hbmFnZW1lbnQgc3lzdGVtIHRvIHRoZSBuZXh0IHJlLQorICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24uIgorICAgIDo6PSB7IGlmRW50cnkgMSB9CisKK2lmRGVzY3IgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBEaXNwbGF5U3RyaW5nIChTSVpFICgwLi4yNTUpKQorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgdGV4dHVhbCBzdHJpbmcgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZS4gIFRoaXMgc3RyaW5nIHNob3VsZCBpbmNsdWRlIHRoZSBuYW1lIG9mIHRoZQorICAgICAgICAgICAgbWFudWZhY3R1cmVyLCB0aGUgcHJvZHVjdCBuYW1lIGFuZCB0aGUgdmVyc2lvbiBvZiB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSBoYXJkd2FyZS9zb2Z0d2FyZS4iCisgICAgOjo9IHsgaWZFbnRyeSAyIH0KKworaWZUeXBlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgSUFOQWlmVHlwZQorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0eXBlIG9mIGludGVyZmFjZS4gIEFkZGl0aW9uYWwgdmFsdWVzIGZvciBpZlR5cGUgYXJlCisgICAgICAgICAgICBhc3NpZ25lZCBieSB0aGUgSW50ZXJuZXQgQXNzaWduZWQgTnVtYmVycyBBdXRob3JpdHkgKElBTkEpLAorICAgICAgICAgICAgdGhyb3VnaCB1cGRhdGluZyB0aGUgc3ludGF4IG9mIHRoZSBJQU5BaWZUeXBlIHRleHR1YWwKKyAgICAgICAgICAgIGNvbnZlbnRpb24uIgorICAgIDo6PSB7IGlmRW50cnkgMyB9CisKK2lmTXR1IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgSW50ZWdlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHNpemUgb2YgdGhlIGxhcmdlc3QgcGFja2V0IHdoaWNoIGNhbiBiZSBzZW50L3JlY2VpdmVkCisgICAgICAgICAgICBvbiB0aGUgaW50ZXJmYWNlLCBzcGVjaWZpZWQgaW4gb2N0ZXRzLiAgRm9yIGludGVyZmFjZXMgdGhhdAorICAgICAgICAgICAgYXJlIHVzZWQgZm9yIHRyYW5zbWl0dGluZyBuZXR3b3JrIGRhdGFncmFtcywgdGhpcyBpcyB0aGUKKyAgICAgICAgICAgIHNpemUgb2YgdGhlIGxhcmdlc3QgbmV0d29yayBkYXRhZ3JhbSB0aGF0IGNhbiBiZSBzZW50IG9uIHRoZQorICAgICAgICAgICAgaW50ZXJmYWNlLiIKKyAgICA6Oj0geyBpZkVudHJ5IDQgfQorCitpZlNwZWVkIE9CSkVDVC1UWVBFCisKKworICAgIFNZTlRBWCAgICAgIEdhdWdlMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBbiBlc3RpbWF0ZSBvZiB0aGUgaW50ZXJmYWNlJ3MgY3VycmVudCBiYW5kd2lkdGggaW4gYml0cworICAgICAgICAgICAgcGVyIHNlY29uZC4gIEZvciBpbnRlcmZhY2VzIHdoaWNoIGRvIG5vdCB2YXJ5IGluIGJhbmR3aWR0aAorICAgICAgICAgICAgb3IgZm9yIHRob3NlIHdoZXJlIG5vIGFjY3VyYXRlIGVzdGltYXRpb24gY2FuIGJlIG1hZGUsIHRoaXMKKyAgICAgICAgICAgIG9iamVjdCBzaG91bGQgY29udGFpbiB0aGUgbm9taW5hbCBiYW5kd2lkdGguICBJZiB0aGUKKyAgICAgICAgICAgIGJhbmR3aWR0aCBvZiB0aGUgaW50ZXJmYWNlIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSB2YWx1ZQorICAgICAgICAgICAgcmVwb3J0YWJsZSBieSB0aGlzIG9iamVjdCB0aGVuIHRoaXMgb2JqZWN0IHNob3VsZCByZXBvcnQgaXRzCisgICAgICAgICAgICBtYXhpbXVtIHZhbHVlICg0LDI5NCw5NjcsMjk1KSBhbmQgaWZIaWdoU3BlZWQgbXVzdCBiZSB1c2VkCisgICAgICAgICAgICB0byByZXBvcnQgdGhlIGludGVyYWNlJ3Mgc3BlZWQuICBGb3IgYSBzdWItbGF5ZXIgd2hpY2ggaGFzCisgICAgICAgICAgICBubyBjb25jZXB0IG9mIGJhbmR3aWR0aCwgdGhpcyBvYmplY3Qgc2hvdWxkIGJlIHplcm8uIgorICAgIDo6PSB7IGlmRW50cnkgNSB9CisKK2lmUGh5c0FkZHJlc3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBQaHlzQWRkcmVzcworICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBpbnRlcmZhY2UncyBhZGRyZXNzIGF0IGl0cyBwcm90b2NvbCBzdWItbGF5ZXIuICBGb3IKKyAgICAgICAgICAgIGV4YW1wbGUsIGZvciBhbiA4MDIueCBpbnRlcmZhY2UsIHRoaXMgb2JqZWN0IG5vcm1hbGx5CisgICAgICAgICAgICBjb250YWlucyBhIE1BQyBhZGRyZXNzLiAgVGhlIGludGVyZmFjZSdzIG1lZGlhLXNwZWNpZmljIE1JQgorICAgICAgICAgICAgbXVzdCBkZWZpbmUgdGhlIGJpdCBhbmQgYnl0ZSBvcmRlcmluZyBhbmQgdGhlIGZvcm1hdCBvZiB0aGUKKyAgICAgICAgICAgIHZhbHVlIG9mIHRoaXMgb2JqZWN0LiAgRm9yIGludGVyZmFjZXMgd2hpY2ggZG8gbm90IGhhdmUgc3VjaAorICAgICAgICAgICAgYW4gYWRkcmVzcyAoZS5nLiwgYSBzZXJpYWwgbGluZSksIHRoaXMgb2JqZWN0IHNob3VsZCBjb250YWluCisgICAgICAgICAgICBhbiBvY3RldCBzdHJpbmcgb2YgemVybyBsZW5ndGguIgorICAgIDo6PSB7IGlmRW50cnkgNiB9CisKK2lmQWRtaW5TdGF0dXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICAgIHVwKDEpLCAgICAgICAtLSByZWFkeSB0byBwYXNzIHBhY2tldHMKKyAgICAgICAgICAgICAgICBkb3duKDIpLAorICAgICAgICAgICAgICAgIHRlc3RpbmcoMykgICAtLSBpbiBzb21lIHRlc3QgbW9kZQorICAgICAgICAgICAgfQorICAgIE1BWC1BQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgZGVzaXJlZCBzdGF0ZSBvZiB0aGUgaW50ZXJmYWNlLiAgVGhlIHRlc3RpbmcoMykgc3RhdGUKKyAgICAgICAgICAgIGluZGljYXRlcyB0aGF0IG5vIG9wZXJhdGlvbmFsIHBhY2tldHMgY2FuIGJlIHBhc3NlZC4gIFdoZW4gYQorICAgICAgICAgICAgbWFuYWdlZCBzeXN0ZW0gaW5pdGlhbGl6ZXMsIGFsbCBpbnRlcmZhY2VzIHN0YXJ0IHdpdGgKKyAgICAgICAgICAgIGlmQWRtaW5TdGF0dXMgaW4gdGhlIGRvd24oMikgc3RhdGUuICBBcyBhIHJlc3VsdCBvZiBlaXRoZXIKKyAgICAgICAgICAgIGV4cGxpY2l0IG1hbmFnZW1lbnQgYWN0aW9uIG9yIHBlciBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uCisgICAgICAgICAgICByZXRhaW5lZCBieSB0aGUgbWFuYWdlZCBzeXN0ZW0sIGlmQWRtaW5TdGF0dXMgaXMgdGhlbgorICAgICAgICAgICAgY2hhbmdlZCB0byBlaXRoZXIgdGhlIHVwKDEpIG9yIHRlc3RpbmcoMykgc3RhdGVzIChvciByZW1haW5zCisgICAgICAgICAgICBpbiB0aGUgZG93bigyKSBzdGF0ZSkuIgorICAgIDo6PSB7IGlmRW50cnkgNyB9CisKKworCitpZk9wZXJTdGF0dXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICAgIHVwKDEpLCAgICAgICAgLS0gcmVhZHkgdG8gcGFzcyBwYWNrZXRzCisgICAgICAgICAgICAgICAgZG93bigyKSwKKyAgICAgICAgICAgICAgICB0ZXN0aW5nKDMpLCAgIC0tIGluIHNvbWUgdGVzdCBtb2RlCisgICAgICAgICAgICAgICAgdW5rbm93big0KSwgICAtLSBzdGF0dXMgY2FuIG5vdCBiZSBkZXRlcm1pbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBmb3Igc29tZSByZWFzb24uCisgICAgICAgICAgICAgICAgZG9ybWFudCg1KSwKKyAgICAgICAgICAgICAgICBub3RQcmVzZW50KDYpLCAgICAtLSBzb21lIGNvbXBvbmVudCBpcyBtaXNzaW5nCisgICAgICAgICAgICAgICAgbG93ZXJMYXllckRvd24oNykgLS0gZG93biBkdWUgdG8gc3RhdGUgb2YKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBsb3dlci1sYXllciBpbnRlcmZhY2UocykKKyAgICAgICAgICAgIH0KKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgY3VycmVudCBvcGVyYXRpb25hbCBzdGF0ZSBvZiB0aGUgaW50ZXJmYWNlLiAgVGhlCisgICAgICAgICAgICB0ZXN0aW5nKDMpIHN0YXRlIGluZGljYXRlcyB0aGF0IG5vIG9wZXJhdGlvbmFsIHBhY2tldHMgY2FuCisgICAgICAgICAgICBiZSBwYXNzZWQuICBJZiBpZkFkbWluU3RhdHVzIGlzIGRvd24oMikgdGhlbiBpZk9wZXJTdGF0dXMKKyAgICAgICAgICAgIHNob3VsZCBiZSBkb3duKDIpLiAgSWYgaWZBZG1pblN0YXR1cyBpcyBjaGFuZ2VkIHRvIHVwKDEpCisgICAgICAgICAgICB0aGVuIGlmT3BlclN0YXR1cyBzaG91bGQgY2hhbmdlIHRvIHVwKDEpIGlmIHRoZSBpbnRlcmZhY2UgaXMKKyAgICAgICAgICAgIHJlYWR5IHRvIHRyYW5zbWl0IGFuZCByZWNlaXZlIG5ldHdvcmsgdHJhZmZpYzsgaXQgc2hvdWxkCisgICAgICAgICAgICBjaGFuZ2UgdG8gZG9ybWFudCg1KSBpZiB0aGUgaW50ZXJmYWNlIGlzIHdhaXRpbmcgZm9yCisgICAgICAgICAgICBleHRlcm5hbCBhY3Rpb25zIChzdWNoIGFzIGEgc2VyaWFsIGxpbmUgd2FpdGluZyBmb3IgYW4KKyAgICAgICAgICAgIGluY29taW5nIGNvbm5lY3Rpb24pOyBpdCBzaG91bGQgcmVtYWluIGluIHRoZSBkb3duKDIpIHN0YXRlCisgICAgICAgICAgICBpZiBhbmQgb25seSBpZiB0aGVyZSBpcyBhIGZhdWx0IHRoYXQgcHJldmVudHMgaXQgZnJvbSBnb2luZworICAgICAgICAgICAgdG8gdGhlIHVwKDEpIHN0YXRlOyBpdCBzaG91bGQgcmVtYWluIGluIHRoZSBub3RQcmVzZW50KDYpCisgICAgICAgICAgICBzdGF0ZSBpZiB0aGUgaW50ZXJmYWNlIGhhcyBtaXNzaW5nICh0eXBpY2FsbHksIGhhcmR3YXJlKQorICAgICAgICAgICAgY29tcG9uZW50cy4iCisgICAgOjo9IHsgaWZFbnRyeSA4IH0KKworaWZMYXN0Q2hhbmdlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgVGltZVRpY2tzCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHN5c1VwVGltZSBhdCB0aGUgdGltZSB0aGUgaW50ZXJmYWNlIGVudGVyZWQKKyAgICAgICAgICAgIGl0cyBjdXJyZW50IG9wZXJhdGlvbmFsIHN0YXRlLiAgSWYgdGhlIGN1cnJlbnQgc3RhdGUgd2FzCisgICAgICAgICAgICBlbnRlcmVkIHByaW9yIHRvIHRoZSBsYXN0IHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBsb2NhbAorICAgICAgICAgICAgbmV0d29yayBtYW5hZ2VtZW50IHN1YnN5c3RlbSwgdGhlbiB0aGlzIG9iamVjdCBjb250YWlucyBhCisgICAgICAgICAgICB6ZXJvIHZhbHVlLiIKKyAgICA6Oj0geyBpZkVudHJ5IDkgfQorCitpZkluT2N0ZXRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgcmVjZWl2ZWQgb24gdGhlIGludGVyZmFjZSwKKworCisgICAgICAgICAgICBpbmNsdWRpbmcgZnJhbWluZyBjaGFyYWN0ZXJzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaWZFbnRyeSAxMCB9CisKK2lmSW5VY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHBhY2tldHMsIGRlbGl2ZXJlZCBieSB0aGlzIHN1Yi1sYXllciB0byBhCisgICAgICAgICAgICBoaWdoZXIgKHN1Yi0pbGF5ZXIsIHdoaWNoIHdlcmUgbm90IGFkZHJlc3NlZCB0byBhIG11bHRpY2FzdAorICAgICAgICAgICAgb3IgYnJvYWRjYXN0IGFkZHJlc3MgYXQgdGhpcyBzdWItbGF5ZXIuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpZkVudHJ5IDExIH0KKworaWZJbk5VY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgcGFja2V0cywgZGVsaXZlcmVkIGJ5IHRoaXMgc3ViLWxheWVyIHRvIGEKKyAgICAgICAgICAgIGhpZ2hlciAoc3ViLSlsYXllciwgd2hpY2ggd2VyZSBhZGRyZXNzZWQgdG8gYSBtdWx0aWNhc3Qgb3IKKyAgICAgICAgICAgIGJyb2FkY2FzdCBhZGRyZXNzIGF0IHRoaXMgc3ViLWxheWVyLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZS4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgaWZJbk11bHRpY2FzdFBrdHMgYW5kCisgICAgICAgICAgICBpZkluQnJvYWRjYXN0UGt0cy4iCisgICAgOjo9IHsgaWZFbnRyeSAxMiB9CisKK2lmSW5EaXNjYXJkcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgaW5ib3VuZCBwYWNrZXRzIHdoaWNoIHdlcmUgY2hvc2VuIHRvIGJlCisgICAgICAgICAgICBkaXNjYXJkZWQgZXZlbiB0aG91Z2ggbm8gZXJyb3JzIGhhZCBiZWVuIGRldGVjdGVkIHRvIHByZXZlbnQKKworCisgICAgICAgICAgICB0aGVpciBiZWluZyBkZWxpdmVyYWJsZSB0byBhIGhpZ2hlci1sYXllciBwcm90b2NvbC4gIE9uZQorICAgICAgICAgICAgcG9zc2libGUgcmVhc29uIGZvciBkaXNjYXJkaW5nIHN1Y2ggYSBwYWNrZXQgY291bGQgYmUgdG8KKyAgICAgICAgICAgIGZyZWUgdXAgYnVmZmVyIHNwYWNlLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaWZFbnRyeSAxMyB9CisKK2lmSW5FcnJvcnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJGb3IgcGFja2V0LW9yaWVudGVkIGludGVyZmFjZXMsIHRoZSBudW1iZXIgb2YgaW5ib3VuZAorICAgICAgICAgICAgcGFja2V0cyB0aGF0IGNvbnRhaW5lZCBlcnJvcnMgcHJldmVudGluZyB0aGVtIGZyb20gYmVpbmcKKyAgICAgICAgICAgIGRlbGl2ZXJhYmxlIHRvIGEgaGlnaGVyLWxheWVyIHByb3RvY29sLiAgRm9yIGNoYXJhY3Rlci0KKyAgICAgICAgICAgIG9yaWVudGVkIG9yIGZpeGVkLWxlbmd0aCBpbnRlcmZhY2VzLCB0aGUgbnVtYmVyIG9mIGluYm91bmQKKyAgICAgICAgICAgIHRyYW5zbWlzc2lvbiB1bml0cyB0aGF0IGNvbnRhaW5lZCBlcnJvcnMgcHJldmVudGluZyB0aGVtCisgICAgICAgICAgICBmcm9tIGJlaW5nIGRlbGl2ZXJhYmxlIHRvIGEgaGlnaGVyLWxheWVyIHByb3RvY29sLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaWZFbnRyeSAxNCB9CisKK2lmSW5Vbmtub3duUHJvdG9zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiRm9yIHBhY2tldC1vcmllbnRlZCBpbnRlcmZhY2VzLCB0aGUgbnVtYmVyIG9mIHBhY2tldHMKKyAgICAgICAgICAgIHJlY2VpdmVkIHZpYSB0aGUgaW50ZXJmYWNlIHdoaWNoIHdlcmUgZGlzY2FyZGVkIGJlY2F1c2Ugb2YKKyAgICAgICAgICAgIGFuIHVua25vd24gb3IgdW5zdXBwb3J0ZWQgcHJvdG9jb2wuICBGb3IgY2hhcmFjdGVyLW9yaWVudGVkCisgICAgICAgICAgICBvciBmaXhlZC1sZW5ndGggaW50ZXJmYWNlcyB0aGF0IHN1cHBvcnQgcHJvdG9jb2wKKyAgICAgICAgICAgIG11bHRpcGxleGluZyB0aGUgbnVtYmVyIG9mIHRyYW5zbWlzc2lvbiB1bml0cyByZWNlaXZlZCB2aWEKKyAgICAgICAgICAgIHRoZSBpbnRlcmZhY2Ugd2hpY2ggd2VyZSBkaXNjYXJkZWQgYmVjYXVzZSBvZiBhbiB1bmtub3duIG9yCisgICAgICAgICAgICB1bnN1cHBvcnRlZCBwcm90b2NvbC4gIEZvciBhbnkgaW50ZXJmYWNlIHRoYXQgZG9lcyBub3QKKyAgICAgICAgICAgIHN1cHBvcnQgcHJvdG9jb2wgbXVsdGlwbGV4aW5nLCB0aGlzIGNvdW50ZXIgd2lsbCBhbHdheXMgYmUKKyAgICAgICAgICAgIDAuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpZkVudHJ5IDE1IH0KKworCitpZk91dE9jdGV0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHRyYW5zbWl0dGVkIG91dCBvZiB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSwgaW5jbHVkaW5nIGZyYW1pbmcgY2hhcmFjdGVycy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaWZDb3VudGVyRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlmRW50cnkgMTYgfQorCitpZk91dFVjYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgcGFja2V0cyB0aGF0IGhpZ2hlci1sZXZlbCBwcm90b2NvbHMKKyAgICAgICAgICAgIHJlcXVlc3RlZCBiZSB0cmFuc21pdHRlZCwgYW5kIHdoaWNoIHdlcmUgbm90IGFkZHJlc3NlZCB0byBhCisgICAgICAgICAgICBtdWx0aWNhc3Qgb3IgYnJvYWRjYXN0IGFkZHJlc3MgYXQgdGhpcyBzdWItbGF5ZXIsIGluY2x1ZGluZworICAgICAgICAgICAgdGhvc2UgdGhhdCB3ZXJlIGRpc2NhcmRlZCBvciBub3Qgc2VudC4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaWZDb3VudGVyRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlmRW50cnkgMTcgfQorCitpZk91dE5VY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIHBhY2tldHMgdGhhdCBoaWdoZXItbGV2ZWwgcHJvdG9jb2xzCisgICAgICAgICAgICByZXF1ZXN0ZWQgYmUgdHJhbnNtaXR0ZWQsIGFuZCB3aGljaCB3ZXJlIGFkZHJlc3NlZCB0byBhCisgICAgICAgICAgICBtdWx0aWNhc3Qgb3IgYnJvYWRjYXN0IGFkZHJlc3MgYXQgdGhpcyBzdWItbGF5ZXIsIGluY2x1ZGluZworICAgICAgICAgICAgdGhvc2UgdGhhdCB3ZXJlIGRpc2NhcmRlZCBvciBub3Qgc2VudC4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaWZDb3VudGVyRGlzY29udGludWl0eVRpbWUuCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIGlmT3V0TXVsdGljYXN0UGt0cworICAgICAgICAgICAgYW5kIGlmT3V0QnJvYWRjYXN0UGt0cy4iCisgICAgOjo9IHsgaWZFbnRyeSAxOCB9CisKKworaWZPdXREaXNjYXJkcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2Ygb3V0Ym91bmQgcGFja2V0cyB3aGljaCB3ZXJlIGNob3NlbiB0byBiZQorICAgICAgICAgICAgZGlzY2FyZGVkIGV2ZW4gdGhvdWdoIG5vIGVycm9ycyBoYWQgYmVlbiBkZXRlY3RlZCB0byBwcmV2ZW50CisgICAgICAgICAgICB0aGVpciBiZWluZyB0cmFuc21pdHRlZC4gIE9uZSBwb3NzaWJsZSByZWFzb24gZm9yIGRpc2NhcmRpbmcKKyAgICAgICAgICAgIHN1Y2ggYSBwYWNrZXQgY291bGQgYmUgdG8gZnJlZSB1cCBidWZmZXIgc3BhY2UuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpZkVudHJ5IDE5IH0KKworaWZPdXRFcnJvcnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJGb3IgcGFja2V0LW9yaWVudGVkIGludGVyZmFjZXMsIHRoZSBudW1iZXIgb2Ygb3V0Ym91bmQKKyAgICAgICAgICAgIHBhY2tldHMgdGhhdCBjb3VsZCBub3QgYmUgdHJhbnNtaXR0ZWQgYmVjYXVzZSBvZiBlcnJvcnMuCisgICAgICAgICAgICBGb3IgY2hhcmFjdGVyLW9yaWVudGVkIG9yIGZpeGVkLWxlbmd0aCBpbnRlcmZhY2VzLCB0aGUKKyAgICAgICAgICAgIG51bWJlciBvZiBvdXRib3VuZCB0cmFuc21pc3Npb24gdW5pdHMgdGhhdCBjb3VsZCBub3QgYmUKKyAgICAgICAgICAgIHRyYW5zbWl0dGVkIGJlY2F1c2Ugb2YgZXJyb3JzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaWZFbnRyeSAyMCB9CisKK2lmT3V0UUxlbiBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIEdhdWdlMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbGVuZ3RoIG9mIHRoZSBvdXRwdXQgcGFja2V0IHF1ZXVlIChpbiBwYWNrZXRzKS4iCisgICAgOjo9IHsgaWZFbnRyeSAyMSB9CisKK2lmU3BlY2lmaWMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBPQkpFQ1QgSURFTlRJRklFUgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgcmVmZXJlbmNlIHRvIE1JQiBkZWZpbml0aW9ucyBzcGVjaWZpYyB0byB0aGUgcGFydGljdWxhcgorICAgICAgICAgICAgbWVkaWEgYmVpbmcgdXNlZCB0byByZWFsaXplIHRoZSBpbnRlcmZhY2UuICBJdCBpcworCisKKyAgICAgICAgICAgIHJlY29tbWVuZGVkIHRoYXQgdGhpcyB2YWx1ZSBwb2ludCB0byBhbiBpbnN0YW5jZSBvZiBhIE1JQgorICAgICAgICAgICAgb2JqZWN0IGluIHRoZSBtZWRpYS1zcGVjaWZpYyBNSUIsIGkuZS4sIHRoYXQgdGhpcyBvYmplY3QKKyAgICAgICAgICAgIGhhdmUgdGhlIHNlbWFudGljcyBhc3NvY2lhdGVkIHdpdGggdGhlIEluc3RhbmNlUG9pbnRlcgorICAgICAgICAgICAgdGV4dHVhbCBjb252ZW50aW9uIGRlZmluZWQgaW4gUkZDIDI1NzkuICBJbiBmYWN0LCBpdCBpcworICAgICAgICAgICAgcmVjb21tZW5kZWQgdGhhdCB0aGUgbWVkaWEtc3BlY2lmaWMgTUlCIHNwZWNpZnkgd2hhdCB2YWx1ZQorICAgICAgICAgICAgaWZTcGVjaWZpYyBzaG91bGQvY2FuIHRha2UgZm9yIHZhbHVlcyBvZiBpZlR5cGUuICBJZiBubyBNSUIKKyAgICAgICAgICAgIGRlZmluaXRpb25zIHNwZWNpZmljIHRvIHRoZSBwYXJ0aWN1bGFyIG1lZGlhIGFyZSBhdmFpbGFibGUsCisgICAgICAgICAgICB0aGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0byB0aGUgT0JKRUNUIElERU5USUZJRVIgeyAwIDAgfS4iCisgICAgOjo9IHsgaWZFbnRyeSAyMiB9CisKKworCistLQorLS0gICBFeHRlbnNpb24gdG8gdGhlIGludGVyZmFjZSB0YWJsZQorLS0KKy0tIFRoaXMgdGFibGUgcmVwbGFjZXMgdGhlIGlmRXh0bnNUYWJsZSB0YWJsZS4KKy0tCisKK2lmWFRhYmxlICAgICAgICBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIFNFUVVFTkNFIE9GIElmWEVudHJ5CisgICAgTUFYLUFDQ0VTUyAgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIGxpc3Qgb2YgaW50ZXJmYWNlIGVudHJpZXMuICBUaGUgbnVtYmVyIG9mIGVudHJpZXMgaXMKKyAgICAgICAgICAgIGdpdmVuIGJ5IHRoZSB2YWx1ZSBvZiBpZk51bWJlci4gIFRoaXMgdGFibGUgY29udGFpbnMKKyAgICAgICAgICAgIGFkZGl0aW9uYWwgb2JqZWN0cyBmb3IgdGhlIGludGVyZmFjZSB0YWJsZS4iCisgICAgOjo9IHsgaWZNSUJPYmplY3RzIDEgfQorCitpZlhFbnRyeSAgICAgICAgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBJZlhFbnRyeQorICAgIE1BWC1BQ0NFU1MgIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQW4gZW50cnkgY29udGFpbmluZyBhZGRpdGlvbmFsIG1hbmFnZW1lbnQgaW5mb3JtYXRpb24KKyAgICAgICAgICAgIGFwcGxpY2FibGUgdG8gYSBwYXJ0aWN1bGFyIGludGVyZmFjZS4iCisgICAgQVVHTUVOVFMgICAgeyBpZkVudHJ5IH0KKyAgICA6Oj0geyBpZlhUYWJsZSAxIH0KKworSWZYRW50cnkgOjo9CisgICAgU0VRVUVOQ0UgeworICAgICAgICBpZk5hbWUgICAgICAgICAgICAgICAgICBEaXNwbGF5U3RyaW5nLAorICAgICAgICBpZkluTXVsdGljYXN0UGt0cyAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlmSW5Ccm9hZGNhc3RQa3RzICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaWZPdXRNdWx0aWNhc3RQa3RzICAgICAgQ291bnRlcjMyLAorICAgICAgICBpZk91dEJyb2FkY2FzdFBrdHMgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlmSENJbk9jdGV0cyAgICAgICAgICAgIENvdW50ZXI2NCwKKyAgICAgICAgaWZIQ0luVWNhc3RQa3RzICAgICAgICAgQ291bnRlcjY0LAorICAgICAgICBpZkhDSW5NdWx0aWNhc3RQa3RzICAgICBDb3VudGVyNjQsCisKKworICAgICAgICBpZkhDSW5Ccm9hZGNhc3RQa3RzICAgICBDb3VudGVyNjQsCisgICAgICAgIGlmSENPdXRPY3RldHMgICAgICAgICAgIENvdW50ZXI2NCwKKyAgICAgICAgaWZIQ091dFVjYXN0UGt0cyAgICAgICAgQ291bnRlcjY0LAorICAgICAgICBpZkhDT3V0TXVsdGljYXN0UGt0cyAgICBDb3VudGVyNjQsCisgICAgICAgIGlmSENPdXRCcm9hZGNhc3RQa3RzICAgIENvdW50ZXI2NCwKKyAgICAgICAgaWZMaW5rVXBEb3duVHJhcEVuYWJsZSAgSU5URUdFUiwKKyAgICAgICAgaWZIaWdoU3BlZWQgICAgICAgICAgICAgR2F1Z2UzMiwKKyAgICAgICAgaWZQcm9taXNjdW91c01vZGUgICAgICAgVHJ1dGhWYWx1ZSwKKyAgICAgICAgaWZDb25uZWN0b3JQcmVzZW50ICAgICAgVHJ1dGhWYWx1ZSwKKyAgICAgICAgaWZBbGlhcyAgICAgICAgICAgICAgICAgRGlzcGxheVN0cmluZywKKyAgICAgICAgaWZDb3VudGVyRGlzY29udGludWl0eVRpbWUgVGltZVN0YW1wCisgICAgfQorCisKK2lmTmFtZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIERpc3BsYXlTdHJpbmcKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdGV4dHVhbCBuYW1lIG9mIHRoZSBpbnRlcmZhY2UuICBUaGUgdmFsdWUgb2YgdGhpcworICAgICAgICAgICAgb2JqZWN0IHNob3VsZCBiZSB0aGUgbmFtZSBvZiB0aGUgaW50ZXJmYWNlIGFzIGFzc2lnbmVkIGJ5CisgICAgICAgICAgICB0aGUgbG9jYWwgZGV2aWNlIGFuZCBzaG91bGQgYmUgc3VpdGFibGUgZm9yIHVzZSBpbiBjb21tYW5kcworICAgICAgICAgICAgZW50ZXJlZCBhdCB0aGUgZGV2aWNlJ3MgYGNvbnNvbGUnLiAgVGhpcyBtaWdodCBiZSBhIHRleHQKKyAgICAgICAgICAgIG5hbWUsIHN1Y2ggYXMgYGxlMCcgb3IgYSBzaW1wbGUgcG9ydCBudW1iZXIsIHN1Y2ggYXMgYDEnLAorICAgICAgICAgICAgZGVwZW5kaW5nIG9uIHRoZSBpbnRlcmZhY2UgbmFtaW5nIHN5bnRheCBvZiB0aGUgZGV2aWNlLiAgSWYKKyAgICAgICAgICAgIHNldmVyYWwgZW50cmllcyBpbiB0aGUgaWZUYWJsZSB0b2dldGhlciByZXByZXNlbnQgYSBzaW5nbGUKKyAgICAgICAgICAgIGludGVyZmFjZSBhcyBuYW1lZCBieSB0aGUgZGV2aWNlLCB0aGVuIGVhY2ggd2lsbCBoYXZlIHRoZQorICAgICAgICAgICAgc2FtZSB2YWx1ZSBvZiBpZk5hbWUuICBOb3RlIHRoYXQgZm9yIGFuIGFnZW50IHdoaWNoIHJlc3BvbmRzCisgICAgICAgICAgICB0byBTTk1QIHF1ZXJpZXMgY29uY2VybmluZyBhbiBpbnRlcmZhY2Ugb24gc29tZSBvdGhlcgorICAgICAgICAgICAgKHByb3hpZWQpIGRldmljZSwgdGhlbiB0aGUgdmFsdWUgb2YgaWZOYW1lIGZvciBzdWNoIGFuCisgICAgICAgICAgICBpbnRlcmZhY2UgaXMgdGhlIHByb3hpZWQgZGV2aWNlJ3MgbG9jYWwgbmFtZSBmb3IgaXQuCisKKyAgICAgICAgICAgIElmIHRoZXJlIGlzIG5vIGxvY2FsIG5hbWUsIG9yIHRoaXMgb2JqZWN0IGlzIG90aGVyd2lzZSBub3QKKyAgICAgICAgICAgIGFwcGxpY2FibGUsIHRoZW4gdGhpcyBvYmplY3QgY29udGFpbnMgYSB6ZXJvLWxlbmd0aCBzdHJpbmcuIgorICAgIDo6PSB7IGlmWEVudHJ5IDEgfQorCitpZkluTXVsdGljYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgcGFja2V0cywgZGVsaXZlcmVkIGJ5IHRoaXMgc3ViLWxheWVyIHRvIGEKKyAgICAgICAgICAgIGhpZ2hlciAoc3ViLSlsYXllciwgd2hpY2ggd2VyZSBhZGRyZXNzZWQgdG8gYSBtdWx0aWNhc3QKKyAgICAgICAgICAgIGFkZHJlc3MgYXQgdGhpcyBzdWItbGF5ZXIuICBGb3IgYSBNQUMgbGF5ZXIgcHJvdG9jb2wsIHRoaXMKKyAgICAgICAgICAgIGluY2x1ZGVzIGJvdGggR3JvdXAgYW5kIEZ1bmN0aW9uYWwgYWRkcmVzc2VzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisKKworICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaWZDb3VudGVyRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlmWEVudHJ5IDIgfQorCitpZkluQnJvYWRjYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgcGFja2V0cywgZGVsaXZlcmVkIGJ5IHRoaXMgc3ViLWxheWVyIHRvIGEKKyAgICAgICAgICAgIGhpZ2hlciAoc3ViLSlsYXllciwgd2hpY2ggd2VyZSBhZGRyZXNzZWQgdG8gYSBicm9hZGNhc3QKKyAgICAgICAgICAgIGFkZHJlc3MgYXQgdGhpcyBzdWItbGF5ZXIuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpZlhFbnRyeSAzIH0KKworaWZPdXRNdWx0aWNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBwYWNrZXRzIHRoYXQgaGlnaGVyLWxldmVsIHByb3RvY29scworICAgICAgICAgICAgcmVxdWVzdGVkIGJlIHRyYW5zbWl0dGVkLCBhbmQgd2hpY2ggd2VyZSBhZGRyZXNzZWQgdG8gYQorICAgICAgICAgICAgbXVsdGljYXN0IGFkZHJlc3MgYXQgdGhpcyBzdWItbGF5ZXIsIGluY2x1ZGluZyB0aG9zZSB0aGF0CisgICAgICAgICAgICB3ZXJlIGRpc2NhcmRlZCBvciBub3Qgc2VudC4gIEZvciBhIE1BQyBsYXllciBwcm90b2NvbCwgdGhpcworICAgICAgICAgICAgaW5jbHVkZXMgYm90aCBHcm91cCBhbmQgRnVuY3Rpb25hbCBhZGRyZXNzZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpZlhFbnRyeSA0IH0KKworaWZPdXRCcm9hZGNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBwYWNrZXRzIHRoYXQgaGlnaGVyLWxldmVsIHByb3RvY29scworICAgICAgICAgICAgcmVxdWVzdGVkIGJlIHRyYW5zbWl0dGVkLCBhbmQgd2hpY2ggd2VyZSBhZGRyZXNzZWQgdG8gYQorICAgICAgICAgICAgYnJvYWRjYXN0IGFkZHJlc3MgYXQgdGhpcyBzdWItbGF5ZXIsIGluY2x1ZGluZyB0aG9zZSB0aGF0CisgICAgICAgICAgICB3ZXJlIGRpc2NhcmRlZCBvciBub3Qgc2VudC4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorCisKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpZlhFbnRyeSA1IH0KKworLS0KKy0tIEhpZ2ggQ2FwYWNpdHkgQ291bnRlciBvYmplY3RzLiAgVGhlc2Ugb2JqZWN0cyBhcmUgYWxsCistLSA2NCBiaXQgdmVyc2lvbnMgb2YgdGhlICJiYXNpYyIgaWZUYWJsZSBjb3VudGVycy4gIFRoZXNlCistLSBvYmplY3RzIGFsbCBoYXZlIHRoZSBzYW1lIGJhc2ljIHNlbWFudGljcyBhcyB0aGVpciAzMi1iaXQKKy0tIGNvdW50ZXJwYXJ0cywgaG93ZXZlciwgdGhlaXIgc3ludGF4IGhhcyBiZWVuIGV4dGVuZGVkCistLSB0byA2NCBiaXRzLgorLS0KKworaWZIQ0luT2N0ZXRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgcmVjZWl2ZWQgb24gdGhlIGludGVyZmFjZSwKKyAgICAgICAgICAgIGluY2x1ZGluZyBmcmFtaW5nIGNoYXJhY3RlcnMuICBUaGlzIG9iamVjdCBpcyBhIDY0LWJpdAorICAgICAgICAgICAgdmVyc2lvbiBvZiBpZkluT2N0ZXRzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaWZYRW50cnkgNiB9CisKK2lmSENJblVjYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgcGFja2V0cywgZGVsaXZlcmVkIGJ5IHRoaXMgc3ViLWxheWVyIHRvIGEKKyAgICAgICAgICAgIGhpZ2hlciAoc3ViLSlsYXllciwgd2hpY2ggd2VyZSBub3QgYWRkcmVzc2VkIHRvIGEgbXVsdGljYXN0CisgICAgICAgICAgICBvciBicm9hZGNhc3QgYWRkcmVzcyBhdCB0aGlzIHN1Yi1sYXllci4gIFRoaXMgb2JqZWN0IGlzIGEKKyAgICAgICAgICAgIDY0LWJpdCB2ZXJzaW9uIG9mIGlmSW5VY2FzdFBrdHMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpZlhFbnRyeSA3IH0KKworaWZIQ0luTXVsdGljYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorCisKKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHBhY2tldHMsIGRlbGl2ZXJlZCBieSB0aGlzIHN1Yi1sYXllciB0byBhCisgICAgICAgICAgICBoaWdoZXIgKHN1Yi0pbGF5ZXIsIHdoaWNoIHdlcmUgYWRkcmVzc2VkIHRvIGEgbXVsdGljYXN0CisgICAgICAgICAgICBhZGRyZXNzIGF0IHRoaXMgc3ViLWxheWVyLiAgRm9yIGEgTUFDIGxheWVyIHByb3RvY29sLCB0aGlzCisgICAgICAgICAgICBpbmNsdWRlcyBib3RoIEdyb3VwIGFuZCBGdW5jdGlvbmFsIGFkZHJlc3Nlcy4gIFRoaXMgb2JqZWN0CisgICAgICAgICAgICBpcyBhIDY0LWJpdCB2ZXJzaW9uIG9mIGlmSW5NdWx0aWNhc3RQa3RzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaWZYRW50cnkgOCB9CisKK2lmSENJbkJyb2FkY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyNjQKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHBhY2tldHMsIGRlbGl2ZXJlZCBieSB0aGlzIHN1Yi1sYXllciB0byBhCisgICAgICAgICAgICBoaWdoZXIgKHN1Yi0pbGF5ZXIsIHdoaWNoIHdlcmUgYWRkcmVzc2VkIHRvIGEgYnJvYWRjYXN0CisgICAgICAgICAgICBhZGRyZXNzIGF0IHRoaXMgc3ViLWxheWVyLiAgVGhpcyBvYmplY3QgaXMgYSA2NC1iaXQgdmVyc2lvbgorICAgICAgICAgICAgb2YgaWZJbkJyb2FkY2FzdFBrdHMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpZlhFbnRyeSA5IH0KKworaWZIQ091dE9jdGV0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHRyYW5zbWl0dGVkIG91dCBvZiB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSwgaW5jbHVkaW5nIGZyYW1pbmcgY2hhcmFjdGVycy4gIFRoaXMgb2JqZWN0IGlzIGEKKyAgICAgICAgICAgIDY0LWJpdCB2ZXJzaW9uIG9mIGlmT3V0T2N0ZXRzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaWZYRW50cnkgMTAgfQorCitpZkhDT3V0VWNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisKKworICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgcGFja2V0cyB0aGF0IGhpZ2hlci1sZXZlbCBwcm90b2NvbHMKKyAgICAgICAgICAgIHJlcXVlc3RlZCBiZSB0cmFuc21pdHRlZCwgYW5kIHdoaWNoIHdlcmUgbm90IGFkZHJlc3NlZCB0byBhCisgICAgICAgICAgICBtdWx0aWNhc3Qgb3IgYnJvYWRjYXN0IGFkZHJlc3MgYXQgdGhpcyBzdWItbGF5ZXIsIGluY2x1ZGluZworICAgICAgICAgICAgdGhvc2UgdGhhdCB3ZXJlIGRpc2NhcmRlZCBvciBub3Qgc2VudC4gIFRoaXMgb2JqZWN0IGlzIGEKKyAgICAgICAgICAgIDY0LWJpdCB2ZXJzaW9uIG9mIGlmT3V0VWNhc3RQa3RzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaWZYRW50cnkgMTEgfQorCitpZkhDT3V0TXVsdGljYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgcGFja2V0cyB0aGF0IGhpZ2hlci1sZXZlbCBwcm90b2NvbHMKKyAgICAgICAgICAgIHJlcXVlc3RlZCBiZSB0cmFuc21pdHRlZCwgYW5kIHdoaWNoIHdlcmUgYWRkcmVzc2VkIHRvIGEKKyAgICAgICAgICAgIG11bHRpY2FzdCBhZGRyZXNzIGF0IHRoaXMgc3ViLWxheWVyLCBpbmNsdWRpbmcgdGhvc2UgdGhhdAorICAgICAgICAgICAgd2VyZSBkaXNjYXJkZWQgb3Igbm90IHNlbnQuICBGb3IgYSBNQUMgbGF5ZXIgcHJvdG9jb2wsIHRoaXMKKyAgICAgICAgICAgIGluY2x1ZGVzIGJvdGggR3JvdXAgYW5kIEZ1bmN0aW9uYWwgYWRkcmVzc2VzLiAgVGhpcyBvYmplY3QKKyAgICAgICAgICAgIGlzIGEgNjQtYml0IHZlcnNpb24gb2YgaWZPdXRNdWx0aWNhc3RQa3RzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaWZYRW50cnkgMTIgfQorCitpZkhDT3V0QnJvYWRjYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgcGFja2V0cyB0aGF0IGhpZ2hlci1sZXZlbCBwcm90b2NvbHMKKyAgICAgICAgICAgIHJlcXVlc3RlZCBiZSB0cmFuc21pdHRlZCwgYW5kIHdoaWNoIHdlcmUgYWRkcmVzc2VkIHRvIGEKKyAgICAgICAgICAgIGJyb2FkY2FzdCBhZGRyZXNzIGF0IHRoaXMgc3ViLWxheWVyLCBpbmNsdWRpbmcgdGhvc2UgdGhhdAorICAgICAgICAgICAgd2VyZSBkaXNjYXJkZWQgb3Igbm90IHNlbnQuICBUaGlzIG9iamVjdCBpcyBhIDY0LWJpdCB2ZXJzaW9uCisgICAgICAgICAgICBvZiBpZk91dEJyb2FkY2FzdFBrdHMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpZlhFbnRyeSAxMyB9CisKK2lmTGlua1VwRG93blRyYXBFbmFibGUgIE9CSkVDVC1UWVBFCisKKworICAgIFNZTlRBWCAgICAgIElOVEVHRVIgeyBlbmFibGVkKDEpLCBkaXNhYmxlZCgyKSB9CisgICAgTUFYLUFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkluZGljYXRlcyB3aGV0aGVyIGxpbmtVcC9saW5rRG93biB0cmFwcyBzaG91bGQgYmUgZ2VuZXJhdGVkCisgICAgICAgICAgICBmb3IgdGhpcyBpbnRlcmZhY2UuCisKKyAgICAgICAgICAgIEJ5IGRlZmF1bHQsIHRoaXMgb2JqZWN0IHNob3VsZCBoYXZlIHRoZSB2YWx1ZSBlbmFibGVkKDEpIGZvcgorICAgICAgICAgICAgaW50ZXJmYWNlcyB3aGljaCBkbyBub3Qgb3BlcmF0ZSBvbiAndG9wJyBvZiBhbnkgb3RoZXIKKyAgICAgICAgICAgIGludGVyZmFjZSAoYXMgZGVmaW5lZCBpbiB0aGUgaWZTdGFja1RhYmxlKSwgYW5kIGRpc2FibGVkKDIpCisgICAgICAgICAgICBvdGhlcndpc2UuIgorICAgIDo6PSB7IGlmWEVudHJ5IDE0IH0KKworaWZIaWdoU3BlZWQgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBHYXVnZTMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQW4gZXN0aW1hdGUgb2YgdGhlIGludGVyZmFjZSdzIGN1cnJlbnQgYmFuZHdpZHRoIGluIHVuaXRzCisgICAgICAgICAgICBvZiAxLDAwMCwwMDAgYml0cyBwZXIgc2Vjb25kLiAgSWYgdGhpcyBvYmplY3QgcmVwb3J0cyBhCisgICAgICAgICAgICB2YWx1ZSBvZiBgbicgdGhlbiB0aGUgc3BlZWQgb2YgdGhlIGludGVyZmFjZSBpcyBzb21ld2hlcmUgaW4KKyAgICAgICAgICAgIHRoZSByYW5nZSBvZiBgbi01MDAsMDAwJyB0byBgbis0OTksOTk5Jy4gIEZvciBpbnRlcmZhY2VzCisgICAgICAgICAgICB3aGljaCBkbyBub3QgdmFyeSBpbiBiYW5kd2lkdGggb3IgZm9yIHRob3NlIHdoZXJlIG5vCisgICAgICAgICAgICBhY2N1cmF0ZSBlc3RpbWF0aW9uIGNhbiBiZSBtYWRlLCB0aGlzIG9iamVjdCBzaG91bGQgY29udGFpbgorICAgICAgICAgICAgdGhlIG5vbWluYWwgYmFuZHdpZHRoLiAgRm9yIGEgc3ViLWxheWVyIHdoaWNoIGhhcyBubyBjb25jZXB0CisgICAgICAgICAgICBvZiBiYW5kd2lkdGgsIHRoaXMgb2JqZWN0IHNob3VsZCBiZSB6ZXJvLiIKKyAgICA6Oj0geyBpZlhFbnRyeSAxNSB9CisKK2lmUHJvbWlzY3VvdXNNb2RlICBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIFRydXRoVmFsdWUKKyAgICBNQVgtQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhpcyBvYmplY3QgaGFzIGEgdmFsdWUgb2YgZmFsc2UoMikgaWYgdGhpcyBpbnRlcmZhY2Ugb25seQorICAgICAgICAgICAgYWNjZXB0cyBwYWNrZXRzL2ZyYW1lcyB0aGF0IGFyZSBhZGRyZXNzZWQgdG8gdGhpcyBzdGF0aW9uLgorICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGEgdmFsdWUgb2YgdHJ1ZSgxKSB3aGVuIHRoZSBzdGF0aW9uIGFjY2VwdHMKKyAgICAgICAgICAgIGFsbCBwYWNrZXRzL2ZyYW1lcyB0cmFuc21pdHRlZCBvbiB0aGUgbWVkaWEuICBUaGUgdmFsdWUKKyAgICAgICAgICAgIHRydWUoMSkgaXMgb25seSBsZWdhbCBvbiBjZXJ0YWluIHR5cGVzIG9mIG1lZGlhLiAgSWYgbGVnYWwsCisgICAgICAgICAgICBzZXR0aW5nIHRoaXMgb2JqZWN0IHRvIGEgdmFsdWUgb2YgdHJ1ZSgxKSBtYXkgcmVxdWlyZSB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSB0byBiZSByZXNldCBiZWZvcmUgYmVjb21pbmcgZWZmZWN0aXZlLgorCisgICAgICAgICAgICBUaGUgdmFsdWUgb2YgaWZQcm9taXNjdW91c01vZGUgZG9lcyBub3QgYWZmZWN0IHRoZSByZWNlcHRpb24KKyAgICAgICAgICAgIG9mIGJyb2FkY2FzdCBhbmQgbXVsdGljYXN0IHBhY2tldHMvZnJhbWVzIGJ5IHRoZSBpbnRlcmZhY2UuIgorICAgIDo6PSB7IGlmWEVudHJ5IDE2IH0KKworaWZDb25uZWN0b3JQcmVzZW50ICAgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBUcnV0aFZhbHVlCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisKKworICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgb2JqZWN0IGhhcyB0aGUgdmFsdWUgJ3RydWUoMSknIGlmIHRoZSBpbnRlcmZhY2UKKyAgICAgICAgICAgIHN1YmxheWVyIGhhcyBhIHBoeXNpY2FsIGNvbm5lY3RvciBhbmQgdGhlIHZhbHVlICdmYWxzZSgyKScKKyAgICAgICAgICAgIG90aGVyd2lzZS4iCisgICAgOjo9IHsgaWZYRW50cnkgMTcgfQorCitpZkFsaWFzICAgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBEaXNwbGF5U3RyaW5nIChTSVpFKDAuLjY0KSkKKyAgICBNQVgtQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhpcyBvYmplY3QgaXMgYW4gJ2FsaWFzJyBuYW1lIGZvciB0aGUgaW50ZXJmYWNlIGFzCisgICAgICAgICAgICBzcGVjaWZpZWQgYnkgYSBuZXR3b3JrIG1hbmFnZXIsIGFuZCBwcm92aWRlcyBhIG5vbi12b2xhdGlsZQorICAgICAgICAgICAgJ2hhbmRsZScgZm9yIHRoZSBpbnRlcmZhY2UuCisKKyAgICAgICAgICAgIE9uIHRoZSBmaXJzdCBpbnN0YW50aWF0aW9uIG9mIGFuIGludGVyZmFjZSwgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZkFsaWFzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGludGVyZmFjZSBpcyB0aGUgemVyby1sZW5ndGgKKyAgICAgICAgICAgIHN0cmluZy4gIEFzIGFuZCB3aGVuIGEgdmFsdWUgaXMgd3JpdHRlbiBpbnRvIGFuIGluc3RhbmNlIG9mCisgICAgICAgICAgICBpZkFsaWFzIHRocm91Z2ggYSBuZXR3b3JrIG1hbmFnZW1lbnQgc2V0IG9wZXJhdGlvbiwgdGhlbiB0aGUKKyAgICAgICAgICAgIGFnZW50IG11c3QgcmV0YWluIHRoZSBzdXBwbGllZCB2YWx1ZSBpbiB0aGUgaWZBbGlhcyBpbnN0YW5jZQorICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIGludGVyZmFjZSBmb3IgYXMgbG9uZyBhcyB0aGF0CisgICAgICAgICAgICBpbnRlcmZhY2UgcmVtYWlucyBpbnN0YW50aWF0ZWQsIGluY2x1ZGluZyBhY3Jvc3MgYWxsIHJlLQorICAgICAgICAgICAgaW5pdGlhbGl6YXRpb25zL3JlYm9vdHMgb2YgdGhlIG5ldHdvcmsgbWFuYWdlbWVudCBzeXN0ZW0sCisgICAgICAgICAgICBpbmNsdWRpbmcgdGhvc2Ugd2hpY2ggcmVzdWx0IGluIGEgY2hhbmdlIG9mIHRoZSBpbnRlcmZhY2UncworICAgICAgICAgICAgaWZJbmRleCB2YWx1ZS4KKworICAgICAgICAgICAgQW4gZXhhbXBsZSBvZiB0aGUgdmFsdWUgd2hpY2ggYSBuZXR3b3JrIG1hbmFnZXIgbWlnaHQgc3RvcmUKKyAgICAgICAgICAgIGluIHRoaXMgb2JqZWN0IGZvciBhIFdBTiBpbnRlcmZhY2UgaXMgdGhlIChUZWxjbydzKSBjaXJjdWl0CisgICAgICAgICAgICBudW1iZXIvaWRlbnRpZmllciBvZiB0aGUgaW50ZXJmYWNlLgorCisgICAgICAgICAgICBTb21lIGFnZW50cyBtYXkgc3VwcG9ydCB3cml0ZS1hY2Nlc3Mgb25seSBmb3IgaW50ZXJmYWNlcworICAgICAgICAgICAgaGF2aW5nIHBhcnRpY3VsYXIgdmFsdWVzIG9mIGlmVHlwZS4gIEFuIGFnZW50IHdoaWNoIHN1cHBvcnRzCisgICAgICAgICAgICB3cml0ZSBhY2Nlc3MgdG8gdGhpcyBvYmplY3QgaXMgcmVxdWlyZWQgdG8ga2VlcCB0aGUgdmFsdWUgaW4KKyAgICAgICAgICAgIG5vbi12b2xhdGlsZSBzdG9yYWdlLCBidXQgaXQgbWF5IGxpbWl0IHRoZSBsZW5ndGggb2YgbmV3CisgICAgICAgICAgICB2YWx1ZXMgZGVwZW5kaW5nIG9uIGhvdyBtdWNoIHN0b3JhZ2UgaXMgYWxyZWFkeSBvY2N1cGllZCBieQorICAgICAgICAgICAgdGhlIGN1cnJlbnQgdmFsdWVzIGZvciBvdGhlciBpbnRlcmZhY2VzLiIKKyAgICA6Oj0geyBpZlhFbnRyeSAxOCB9CisKK2lmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgVGltZVN0YW1wCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHN5c1VwVGltZSBvbiB0aGUgbW9zdCByZWNlbnQgb2NjYXNpb24gYXQgd2hpY2gKKyAgICAgICAgICAgIGFueSBvbmUgb3IgbW9yZSBvZiB0aGlzIGludGVyZmFjZSdzIGNvdW50ZXJzIHN1ZmZlcmVkIGEKKyAgICAgICAgICAgIGRpc2NvbnRpbnVpdHkuICBUaGUgcmVsZXZhbnQgY291bnRlcnMgYXJlIHRoZSBzcGVjaWZpYworICAgICAgICAgICAgaW5zdGFuY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGludGVyZmFjZSBvZiBhbnkgQ291bnRlcjMyIG9yCisKKworICAgICAgICAgICAgQ291bnRlcjY0IG9iamVjdCBjb250YWluZWQgaW4gdGhlIGlmVGFibGUgb3IgaWZYVGFibGUuICBJZgorICAgICAgICAgICAgbm8gc3VjaCBkaXNjb250aW51aXRpZXMgaGF2ZSBvY2N1cnJlZCBzaW5jZSB0aGUgbGFzdCByZS0KKyAgICAgICAgICAgIGluaXRpYWxpemF0aW9uIG9mIHRoZSBsb2NhbCBtYW5hZ2VtZW50IHN1YnN5c3RlbSwgdGhlbiB0aGlzCisgICAgICAgICAgICBvYmplY3QgY29udGFpbnMgYSB6ZXJvIHZhbHVlLiIKKyAgICA6Oj0geyBpZlhFbnRyeSAxOSB9CisKKy0tICAgICAgICAgICBUaGUgSW50ZXJmYWNlIFN0YWNrIEdyb3VwCistLQorLS0gSW1wbGVtZW50YXRpb24gb2YgdGhpcyBncm91cCBpcyBvcHRpb25hbCwgYnV0IHN0cm9uZ2x5IHJlY29tbWVuZGVkCistLSBmb3IgYWxsIHN5c3RlbXMKKy0tCisKK2lmU3RhY2tUYWJsZSAgT0JKRUNULVRZUEUKKyAgICAgU1lOVEFYICAgICAgICBTRVFVRU5DRSBPRiBJZlN0YWNrRW50cnkKKyAgICAgTUFYLUFDQ0VTUyAgICBub3QtYWNjZXNzaWJsZQorICAgICBTVEFUVVMgICAgICAgIGN1cnJlbnQKKyAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdGFibGUgY29udGFpbmluZyBpbmZvcm1hdGlvbiBvbiB0aGUgcmVsYXRpb25zaGlwcworICAgICAgICAgICAgYmV0d2VlbiB0aGUgbXVsdGlwbGUgc3ViLWxheWVycyBvZiBuZXR3b3JrIGludGVyZmFjZXMuICBJbgorICAgICAgICAgICAgcGFydGljdWxhciwgaXQgY29udGFpbnMgaW5mb3JtYXRpb24gb24gd2hpY2ggc3ViLWxheWVycyBydW4KKyAgICAgICAgICAgICdvbiB0b3Agb2YnIHdoaWNoIG90aGVyIHN1Yi1sYXllcnMsIHdoZXJlIGVhY2ggc3ViLWxheWVyCisgICAgICAgICAgICBjb3JyZXNwb25kcyB0byBhIGNvbmNlcHR1YWwgcm93IGluIHRoZSBpZlRhYmxlLiAgRm9yCisgICAgICAgICAgICBleGFtcGxlLCB3aGVuIHRoZSBzdWItbGF5ZXIgd2l0aCBpZkluZGV4IHZhbHVlIHggcnVucyBvdmVyCisgICAgICAgICAgICB0aGUgc3ViLWxheWVyIHdpdGggaWZJbmRleCB2YWx1ZSB5LCB0aGVuIHRoaXMgdGFibGUKKyAgICAgICAgICAgIGNvbnRhaW5zOgorCisgICAgICAgICAgICAgIGlmU3RhY2tTdGF0dXMueC55PWFjdGl2ZQorCisgICAgICAgICAgICBGb3IgZWFjaCBpZkluZGV4IHZhbHVlLCBJLCB3aGljaCBpZGVudGlmaWVzIGFuIGFjdGl2ZQorICAgICAgICAgICAgaW50ZXJmYWNlLCB0aGVyZSBhcmUgYWx3YXlzIGF0IGxlYXN0IHR3byBpbnN0YW50aWF0ZWQgcm93cworICAgICAgICAgICAgaW4gdGhpcyB0YWJsZSBhc3NvY2lhdGVkIHdpdGggSS4gIEZvciBvbmUgb2YgdGhlc2Ugcm93cywgSQorICAgICAgICAgICAgaXMgdGhlIHZhbHVlIG9mIGlmU3RhY2tIaWdoZXJMYXllcjsgZm9yIHRoZSBvdGhlciwgSSBpcyB0aGUKKyAgICAgICAgICAgIHZhbHVlIG9mIGlmU3RhY2tMb3dlckxheWVyLiAgKElmIEkgaXMgbm90IGludm9sdmVkIGluCisgICAgICAgICAgICBtdWx0aXBsZXhpbmcsIHRoZW4gdGhlc2UgYXJlIHRoZSBvbmx5IHR3byByb3dzIGFzc29jaWF0ZWQKKyAgICAgICAgICAgIHdpdGggSS4pCisKKyAgICAgICAgICAgIEZvciBleGFtcGxlLCB0d28gcm93cyBleGlzdCBldmVuIGZvciBhbiBpbnRlcmZhY2Ugd2hpY2ggaGFzCisgICAgICAgICAgICBubyBvdGhlcnMgc3RhY2tlZCBvbiB0b3Agb3IgYmVsb3cgaXQ6CisKKyAgICAgICAgICAgICAgaWZTdGFja1N0YXR1cy4wLng9YWN0aXZlCisgICAgICAgICAgICAgIGlmU3RhY2tTdGF0dXMueC4wPWFjdGl2ZSAiCisgICAgIDo6PSB7IGlmTUlCT2JqZWN0cyAyIH0KKworCitpZlN0YWNrRW50cnkgIE9CSkVDVC1UWVBFCisgICAgIFNZTlRBWCAgICAgICAgSWZTdGFja0VudHJ5CisgICAgIE1BWC1BQ0NFU1MgICAgbm90LWFjY2Vzc2libGUKKyAgICAgU1RBVFVTICAgICAgICBjdXJyZW50CisKKworICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkluZm9ybWF0aW9uIG9uIGEgcGFydGljdWxhciByZWxhdGlvbnNoaXAgYmV0d2VlbiB0d28gc3ViLQorICAgICAgICAgICAgbGF5ZXJzLCBzcGVjaWZ5aW5nIHRoYXQgb25lIHN1Yi1sYXllciBydW5zIG9uICd0b3AnIG9mIHRoZQorICAgICAgICAgICAgb3RoZXIgc3ViLWxheWVyLiAgRWFjaCBzdWItbGF5ZXIgY29ycmVzcG9uZHMgdG8gYSBjb25jZXB0dWFsCisgICAgICAgICAgICByb3cgaW4gdGhlIGlmVGFibGUuIgorICAgICBJTkRFWCB7IGlmU3RhY2tIaWdoZXJMYXllciwgaWZTdGFja0xvd2VyTGF5ZXIgfQorICAgICA6Oj0geyBpZlN0YWNrVGFibGUgMSB9CisKKworSWZTdGFja0VudHJ5IDo6PQorICAgIFNFUVVFTkNFIHsKKyAgICAgICAgaWZTdGFja0hpZ2hlckxheWVyICBJbnRlcmZhY2VJbmRleE9yWmVybywKKyAgICAgICAgaWZTdGFja0xvd2VyTGF5ZXIgICBJbnRlcmZhY2VJbmRleE9yWmVybywKKyAgICAgICAgaWZTdGFja1N0YXR1cyAgICAgICBSb3dTdGF0dXMKKyAgICAgfQorCisKK2lmU3RhY2tIaWdoZXJMYXllciAgT0JKRUNULVRZUEUKKyAgICAgU1lOVEFYICAgICAgICBJbnRlcmZhY2VJbmRleE9yWmVybworICAgICBNQVgtQUNDRVNTICAgIG5vdC1hY2Nlc3NpYmxlCisgICAgIFNUQVRVUyAgICAgICAgY3VycmVudAorICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB2YWx1ZSBvZiBpZkluZGV4IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhpZ2hlciBzdWItbGF5ZXIKKyAgICAgICAgICAgIG9mIHRoZSByZWxhdGlvbnNoaXAsIGkuZS4sIHRoZSBzdWItbGF5ZXIgd2hpY2ggcnVucyBvbiAndG9wJworICAgICAgICAgICAgb2YgdGhlIHN1Yi1sYXllciBpZGVudGlmaWVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGluc3RhbmNlIG9mCisgICAgICAgICAgICBpZlN0YWNrTG93ZXJMYXllci4gIElmIHRoZXJlIGlzIG5vIGhpZ2hlciBzdWItbGF5ZXIgKGJlbG93CisgICAgICAgICAgICB0aGUgaW50ZXJuZXR3b3JrIGxheWVyKSwgdGhlbiB0aGlzIG9iamVjdCBoYXMgdGhlIHZhbHVlIDAuIgorICAgICA6Oj0geyBpZlN0YWNrRW50cnkgMSB9CisKKworaWZTdGFja0xvd2VyTGF5ZXIgIE9CSkVDVC1UWVBFCisgICAgIFNZTlRBWCAgICAgICAgSW50ZXJmYWNlSW5kZXhPclplcm8KKyAgICAgTUFYLUFDQ0VTUyAgICBub3QtYWNjZXNzaWJsZQorICAgICBTVEFUVVMgICAgICAgIGN1cnJlbnQKKyAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdmFsdWUgb2YgaWZJbmRleCBjb3JyZXNwb25kaW5nIHRvIHRoZSBsb3dlciBzdWItbGF5ZXIKKyAgICAgICAgICAgIG9mIHRoZSByZWxhdGlvbnNoaXAsIGkuZS4sIHRoZSBzdWItbGF5ZXIgd2hpY2ggcnVucyAnYmVsb3cnCisgICAgICAgICAgICB0aGUgc3ViLWxheWVyIGlkZW50aWZpZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgaW5zdGFuY2Ugb2YKKyAgICAgICAgICAgIGlmU3RhY2tIaWdoZXJMYXllci4gIElmIHRoZXJlIGlzIG5vIGxvd2VyIHN1Yi1sYXllciwgdGhlbgorICAgICAgICAgICAgdGhpcyBvYmplY3QgaGFzIHRoZSB2YWx1ZSAwLiIKKyAgICAgOjo9IHsgaWZTdGFja0VudHJ5IDIgfQorCisKK2lmU3RhY2tTdGF0dXMgIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgICAgUm93U3RhdHVzCisgICAgTUFYLUFDQ0VTUyAgICAgcmVhZC1jcmVhdGUKKyAgICBTVEFUVVMgICAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKworCisgICAgICAgICAgICAiVGhlIHN0YXR1cyBvZiB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdHdvIHN1Yi1sYXllcnMuCisKKyAgICAgICAgICAgIENoYW5naW5nIHRoZSB2YWx1ZSBvZiB0aGlzIG9iamVjdCBmcm9tICdhY3RpdmUnIHRvCisgICAgICAgICAgICAnbm90SW5TZXJ2aWNlJyBvciAnZGVzdHJveScgd2lsbCBsaWtlbHkgaGF2ZSBjb25zZXF1ZW5jZXMgdXAKKyAgICAgICAgICAgIGFuZCBkb3duIHRoZSBpbnRlcmZhY2Ugc3RhY2suICBUaHVzLCB3cml0ZSBhY2Nlc3MgdG8gdGhpcworICAgICAgICAgICAgb2JqZWN0IGlzIGxpa2VseSB0byBiZSBpbmFwcHJvcHJpYXRlIGZvciBzb21lIHR5cGVzIG9mCisgICAgICAgICAgICBpbnRlcmZhY2VzLCBhbmQgbWFueSBpbXBsZW1lbnRhdGlvbnMgd2lsbCBjaG9vc2Ugbm90IHRvCisgICAgICAgICAgICBzdXBwb3J0IHdyaXRlLWFjY2VzcyBmb3IgYW55IHR5cGUgb2YgaW50ZXJmYWNlLiIKKyAgICA6Oj0geyBpZlN0YWNrRW50cnkgMyB9CisKK2lmU3RhY2tMYXN0Q2hhbmdlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgICAgVGltZVRpY2tzCisgICAgTUFYLUFDQ0VTUyAgICAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHN5c1VwVGltZSBhdCB0aGUgdGltZSBvZiB0aGUgbGFzdCBjaGFuZ2Ugb2YKKyAgICAgICAgICAgIHRoZSAod2hvbGUpIGludGVyZmFjZSBzdGFjay4gIEEgY2hhbmdlIG9mIHRoZSBpbnRlcmZhY2UKKyAgICAgICAgICAgIHN0YWNrIGlzIGRlZmluZWQgdG8gYmUgYW55IGNyZWF0aW9uLCBkZWxldGlvbiwgb3IgY2hhbmdlIGluCisgICAgICAgICAgICB2YWx1ZSBvZiBhbnkgaW5zdGFuY2Ugb2YgaWZTdGFja1N0YXR1cy4gIElmIHRoZSBpbnRlcmZhY2UKKyAgICAgICAgICAgIHN0YWNrIGhhcyBiZWVuIHVuY2hhbmdlZCBzaW5jZSB0aGUgbGFzdCByZS1pbml0aWFsaXphdGlvbiBvZgorICAgICAgICAgICAgdGhlIGxvY2FsIG5ldHdvcmsgbWFuYWdlbWVudCBzdWJzeXN0ZW0sIHRoZW4gdGhpcyBvYmplY3QKKyAgICAgICAgICAgIGNvbnRhaW5zIGEgemVybyB2YWx1ZS4iCisgICAgOjo9IHsgaWZNSUJPYmplY3RzIDYgfQorCisKKy0tICAgR2VuZXJpYyBSZWNlaXZlIEFkZHJlc3MgVGFibGUKKy0tCistLSBUaGlzIGdyb3VwIG9mIG9iamVjdHMgaXMgbWFuZGF0b3J5IGZvciBhbGwgdHlwZXMgb2YKKy0tIGludGVyZmFjZXMgd2hpY2ggY2FuIHJlY2VpdmUgcGFja2V0cy9mcmFtZXMgYWRkcmVzc2VkIHRvCistLSBtb3JlIHRoYW4gb25lIGFkZHJlc3MuCistLQorLS0gVGhpcyB0YWJsZSByZXBsYWNlcyB0aGUgaWZFeHRuc1JjdkFkZHIgdGFibGUuICBUaGUgbWFpbgorLS0gZGlmZmVyZW5jZSBpcyB0aGF0IHRoaXMgdGFibGUgbWFrZXMgdXNlIG9mIHRoZSBSb3dTdGF0dXMKKy0tIHRleHR1YWwgY29udmVudGlvbiwgd2hpbGUgaWZFeHRuc1JjdkFkZHIgZGlkIG5vdC4KKworaWZSY3ZBZGRyZXNzVGFibGUgIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgU0VRVUVOQ0UgT0YgSWZSY3ZBZGRyZXNzRW50cnkKKyAgICBNQVgtQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgdGFibGUgY29udGFpbnMgYW4gZW50cnkgZm9yIGVhY2ggYWRkcmVzcyAoYnJvYWRjYXN0LAorICAgICAgICAgICAgbXVsdGljYXN0LCBvciB1bmktY2FzdCkgZm9yIHdoaWNoIHRoZSBzeXN0ZW0gd2lsbCByZWNlaXZlCisgICAgICAgICAgICBwYWNrZXRzL2ZyYW1lcyBvbiBhIHBhcnRpY3VsYXIgaW50ZXJmYWNlLCBleGNlcHQgYXMgZm9sbG93czoKKworICAgICAgICAgICAgLSBmb3IgYW4gaW50ZXJmYWNlIG9wZXJhdGluZyBpbiBwcm9taXNjdW91cyBtb2RlLCBlbnRyaWVzCisgICAgICAgICAgICBhcmUgb25seSByZXF1aXJlZCBmb3IgdGhvc2UgYWRkcmVzc2VzIGZvciB3aGljaCB0aGUgc3lzdGVtCisgICAgICAgICAgICB3b3VsZCByZWNlaXZlIGZyYW1lcyB3ZXJlIGl0IG5vdCBvcGVyYXRpbmcgaW4gcHJvbWlzY3VvdXMKKyAgICAgICAgICAgIG1vZGUuCisKKworICAgICAgICAgICAgLSBmb3IgODAyLjUgZnVuY3Rpb25hbCBhZGRyZXNzZXMsIG9ubHkgb25lIGVudHJ5IGlzCisgICAgICAgICAgICByZXF1aXJlZCwgZm9yIHRoZSBhZGRyZXNzIHdoaWNoIGhhcyB0aGUgZnVuY3Rpb25hbCBhZGRyZXNzCisgICAgICAgICAgICBiaXQgQU5EZWQgd2l0aCB0aGUgYml0IG1hc2sgb2YgYWxsIGZ1bmN0aW9uYWwgYWRkcmVzc2VzIGZvcgorICAgICAgICAgICAgd2hpY2ggdGhlIGludGVyZmFjZSB3aWxsIGFjY2VwdCBmcmFtZXMuCisKKyAgICAgICAgICAgIEEgc3lzdGVtIGlzIG5vcm1hbGx5IGFibGUgdG8gdXNlIGFueSB1bmljYXN0IGFkZHJlc3Mgd2hpY2gKKyAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIGFuIGVudHJ5IGluIHRoaXMgdGFibGUgYXMgYSBzb3VyY2UgYWRkcmVzcy4iCisgICAgOjo9IHsgaWZNSUJPYmplY3RzIDQgfQorCitpZlJjdkFkZHJlc3NFbnRyeSAgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBJZlJjdkFkZHJlc3NFbnRyeQorICAgIE1BWC1BQ0NFU1MgIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBsaXN0IG9mIG9iamVjdHMgaWRlbnRpZnlpbmcgYW4gYWRkcmVzcyBmb3Igd2hpY2ggdGhlCisgICAgICAgICAgICBzeXN0ZW0gd2lsbCBhY2NlcHQgcGFja2V0cy9mcmFtZXMgb24gdGhlIHBhcnRpY3VsYXIKKyAgICAgICAgICAgIGludGVyZmFjZSBpZGVudGlmaWVkIGJ5IHRoZSBpbmRleCB2YWx1ZSBpZkluZGV4LiIKKyAgICBJTkRFWCAgeyBpZkluZGV4LCBpZlJjdkFkZHJlc3NBZGRyZXNzIH0KKyAgICA6Oj0geyBpZlJjdkFkZHJlc3NUYWJsZSAxIH0KKworSWZSY3ZBZGRyZXNzRW50cnkgOjo9CisgICAgU0VRVUVOQ0UgeworICAgICAgICBpZlJjdkFkZHJlc3NBZGRyZXNzICAgUGh5c0FkZHJlc3MsCisgICAgICAgIGlmUmN2QWRkcmVzc1N0YXR1cyAgICBSb3dTdGF0dXMsCisgICAgICAgIGlmUmN2QWRkcmVzc1R5cGUgICAgICBJTlRFR0VSCisgICAgfQorCitpZlJjdkFkZHJlc3NBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgUGh5c0FkZHJlc3MKKyAgICBNQVgtQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkFuIGFkZHJlc3MgZm9yIHdoaWNoIHRoZSBzeXN0ZW0gd2lsbCBhY2NlcHQgcGFja2V0cy9mcmFtZXMKKyAgICAgICAgICAgIG9uIHRoaXMgZW50cnkncyBpbnRlcmZhY2UuIgorICAgIDo6PSB7IGlmUmN2QWRkcmVzc0VudHJ5IDEgfQorCitpZlJjdkFkZHJlc3NTdGF0dXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBSb3dTdGF0dXMKKyAgICBNQVgtQUNDRVNTICByZWFkLWNyZWF0ZQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgb2JqZWN0IGlzIHVzZWQgdG8gY3JlYXRlIGFuZCBkZWxldGUgcm93cyBpbiB0aGUKKyAgICAgICAgICAgIGlmUmN2QWRkcmVzc1RhYmxlLiIKKworICAgIDo6PSB7IGlmUmN2QWRkcmVzc0VudHJ5IDIgfQorCitpZlJjdkFkZHJlc3NUeXBlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgSU5URUdFUiB7CisKKworICAgICAgICAgICAgICAgICAgICBvdGhlcigxKSwKKyAgICAgICAgICAgICAgICAgICAgdm9sYXRpbGUoMiksCisgICAgICAgICAgICAgICAgICAgIG5vblZvbGF0aWxlKDMpCisgICAgICAgICAgICAgICAgfQorCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1jcmVhdGUKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIG9iamVjdCBoYXMgdGhlIHZhbHVlIG5vblZvbGF0aWxlKDMpIGZvciB0aG9zZSBlbnRyaWVzCisgICAgICAgICAgICBpbiB0aGUgdGFibGUgd2hpY2ggYXJlIHZhbGlkIGFuZCB3aWxsIG5vdCBiZSBkZWxldGVkIGJ5IHRoZQorICAgICAgICAgICAgbmV4dCByZXN0YXJ0IG9mIHRoZSBtYW5hZ2VkIHN5c3RlbS4gIEVudHJpZXMgaGF2aW5nIHRoZQorICAgICAgICAgICAgdmFsdWUgdm9sYXRpbGUoMikgYXJlIHZhbGlkIGFuZCBleGlzdCwgYnV0IGhhdmUgbm90IGJlZW4KKyAgICAgICAgICAgIHNhdmVkLCBzbyB0aGF0IHdpbGwgbm90IGV4aXN0IGFmdGVyIHRoZSBuZXh0IHJlc3RhcnQgb2YgdGhlCisgICAgICAgICAgICBtYW5hZ2VkIHN5c3RlbS4gIEVudHJpZXMgaGF2aW5nIHRoZSB2YWx1ZSBvdGhlcigxKSBhcmUgdmFsaWQKKyAgICAgICAgICAgIGFuZCBleGlzdCBidXQgYXJlIG5vdCBjbGFzc2lmaWVkIGFzIHRvIHdoZXRoZXIgdGhleSB3aWxsCisgICAgICAgICAgICBjb250aW51ZSB0byBleGlzdCBhZnRlciB0aGUgbmV4dCByZXN0YXJ0LiIKKworICAgIERFRlZBTCAgeyB2b2xhdGlsZSB9CisgICAgOjo9IHsgaWZSY3ZBZGRyZXNzRW50cnkgMyB9CisKKy0tIGRlZmluaXRpb24gb2YgaW50ZXJmYWNlLXJlbGF0ZWQgdHJhcHMuCisKK2xpbmtEb3duIE5PVElGSUNBVElPTi1UWVBFCisgICAgT0JKRUNUUyB7IGlmSW5kZXgsIGlmQWRtaW5TdGF0dXMsIGlmT3BlclN0YXR1cyB9CisgICAgU1RBVFVTICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIGxpbmtEb3duIHRyYXAgc2lnbmlmaWVzIHRoYXQgdGhlIFNOTVAgZW50aXR5LCBhY3RpbmcgaW4KKyAgICAgICAgICAgIGFuIGFnZW50IHJvbGUsIGhhcyBkZXRlY3RlZCB0aGF0IHRoZSBpZk9wZXJTdGF0dXMgb2JqZWN0IGZvcgorICAgICAgICAgICAgb25lIG9mIGl0cyBjb21tdW5pY2F0aW9uIGxpbmtzIGlzIGFib3V0IHRvIGVudGVyIHRoZSBkb3duCisgICAgICAgICAgICBzdGF0ZSBmcm9tIHNvbWUgb3RoZXIgc3RhdGUgKGJ1dCBub3QgZnJvbSB0aGUgbm90UHJlc2VudAorICAgICAgICAgICAgc3RhdGUpLiAgVGhpcyBvdGhlciBzdGF0ZSBpcyBpbmRpY2F0ZWQgYnkgdGhlIGluY2x1ZGVkIHZhbHVlCisgICAgICAgICAgICBvZiBpZk9wZXJTdGF0dXMuIgorICAgIDo6PSB7IHNubXBUcmFwcyAzIH0KKworbGlua1VwIE5PVElGSUNBVElPTi1UWVBFCisgICAgT0JKRUNUUyB7IGlmSW5kZXgsIGlmQWRtaW5TdGF0dXMsIGlmT3BlclN0YXR1cyB9CisgICAgU1RBVFVTICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIGxpbmtVcCB0cmFwIHNpZ25pZmllcyB0aGF0IHRoZSBTTk1QIGVudGl0eSwgYWN0aW5nIGluIGFuCisgICAgICAgICAgICBhZ2VudCByb2xlLCBoYXMgZGV0ZWN0ZWQgdGhhdCB0aGUgaWZPcGVyU3RhdHVzIG9iamVjdCBmb3IKKyAgICAgICAgICAgIG9uZSBvZiBpdHMgY29tbXVuaWNhdGlvbiBsaW5rcyBsZWZ0IHRoZSBkb3duIHN0YXRlIGFuZAorICAgICAgICAgICAgdHJhbnNpdGlvbmVkIGludG8gc29tZSBvdGhlciBzdGF0ZSAoYnV0IG5vdCBpbnRvIHRoZQorICAgICAgICAgICAgbm90UHJlc2VudCBzdGF0ZSkuICBUaGlzIG90aGVyIHN0YXRlIGlzIGluZGljYXRlZCBieSB0aGUKKyAgICAgICAgICAgIGluY2x1ZGVkIHZhbHVlIG9mIGlmT3BlclN0YXR1cy4iCisgICAgOjo9IHsgc25tcFRyYXBzIDQgfQorCistLSBjb25mb3JtYW5jZSBpbmZvcm1hdGlvbgorCisKKworaWZDb25mb3JtYW5jZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpZk1JQiAyIH0KKworaWZHcm91cHMgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpZkNvbmZvcm1hbmNlIDEgfQoraWZDb21wbGlhbmNlcyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpZkNvbmZvcm1hbmNlIDIgfQorCisKKy0tIGNvbXBsaWFuY2Ugc3RhdGVtZW50cworCitpZkNvbXBsaWFuY2UzIE1PRFVMRS1DT01QTElBTkNFCisgICAgU1RBVFVTICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgY29tcGxpYW5jZSBzdGF0ZW1lbnQgZm9yIFNOTVAgZW50aXRpZXMgd2hpY2ggaGF2ZQorICAgICAgICAgICAgbmV0d29yayBpbnRlcmZhY2VzLiIKKworICAgIE1PRFVMRSAgLS0gdGhpcyBtb2R1bGUKKyAgICAgICAgTUFOREFUT1JZLUdST1VQUyB7IGlmR2VuZXJhbEluZm9ybWF0aW9uR3JvdXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rVXBEb3duTm90aWZpY2F0aW9uc0dyb3VwIH0KKworLS0gVGhlIGdyb3VwczoKKy0tICAgICAgICBpZkZpeGVkTGVuZ3RoR3JvdXAKKy0tICAgICAgICBpZkhDRml4ZWRMZW5ndGhHcm91cAorLS0gICAgICAgIGlmUGFja2V0R3JvdXAKKy0tICAgICAgICBpZkhDUGFja2V0R3JvdXAKKy0tICAgICAgICBpZlZIQ1BhY2tldEdyb3VwCistLSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlOyBhdCBtb3N0IG9uZSBvZiB0aGVzZSBncm91cHMgaXMgaW1wbGVtZW50ZWQKKy0tIGZvciBhIHBhcnRpY3VsYXIgaW50ZXJmYWNlLiAgV2hlbiBhbnkgb2YgdGhlc2UgZ3JvdXBzIGlzIGltcGxlbWVudGVkCistLSBmb3IgYSBwYXJ0aWN1bGFyIGludGVyZmFjZSwgdGhlbiBpZkNvdW50ZXJEaXNjb250aW51aXR5R3JvdXAgbXVzdAorLS0gYWxzbyBiZSBpbXBsZW1lbnRlZCBmb3IgdGhhdCBpbnRlcmZhY2UuCisKKworICAgICAgICBHUk9VUCAgICAgICBpZkZpeGVkTGVuZ3RoR3JvdXAKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgdGhvc2UgbmV0d29yayBpbnRlcmZhY2VzIHdoaWNoCisgICAgICAgICAgICBhcmUgY2hhcmFjdGVyLW9yaWVudGVkIG9yIHRyYW5zbWl0IGRhdGEgaW4gZml4ZWQtbGVuZ3RoCisgICAgICAgICAgICB0cmFuc21pc3Npb24gdW5pdHMsIGFuZCBmb3Igd2hpY2ggdGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgY29ycmVzcG9uZGluZyBpbnN0YW5jZSBvZiBpZlNwZWVkIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0bworICAgICAgICAgICAgMjAsMDAwLDAwMCBiaXRzL3NlY29uZC4iCisKKyAgICAgICAgR1JPVVAgICAgICAgaWZIQ0ZpeGVkTGVuZ3RoR3JvdXAKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgdGhvc2UgbmV0d29yayBpbnRlcmZhY2VzIHdoaWNoCisgICAgICAgICAgICBhcmUgY2hhcmFjdGVyLW9yaWVudGVkIG9yIHRyYW5zbWl0IGRhdGEgaW4gZml4ZWQtbGVuZ3RoCisgICAgICAgICAgICB0cmFuc21pc3Npb24gdW5pdHMsIGFuZCBmb3Igd2hpY2ggdGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgY29ycmVzcG9uZGluZyBpbnN0YW5jZSBvZiBpZlNwZWVkIGlzIGdyZWF0ZXIgdGhhbiAyMCwwMDAsMDAwCisgICAgICAgICAgICBiaXRzL3NlY29uZC4iCisKKyAgICAgICAgR1JPVVAgICAgICAgaWZQYWNrZXRHcm91cAorICAgICAgICBERVNDUklQVElPTgorCisKKyAgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgdGhvc2UgbmV0d29yayBpbnRlcmZhY2VzIHdoaWNoCisgICAgICAgICAgICBhcmUgcGFja2V0LW9yaWVudGVkLCBhbmQgZm9yIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgaW5zdGFuY2Ugb2YgaWZTcGVlZCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8KKyAgICAgICAgICAgIDIwLDAwMCwwMDAgYml0cy9zZWNvbmQuIgorCisgICAgICAgIEdST1VQICAgICAgIGlmSENQYWNrZXRHcm91cAorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IG9ubHkgZm9yIHRob3NlIG5ldHdvcmsgaW50ZXJmYWNlcworICAgICAgICAgICAgd2hpY2ggYXJlIHBhY2tldC1vcmllbnRlZCBhbmQgZm9yIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgaW5zdGFuY2Ugb2YgaWZTcGVlZCBpcyBncmVhdGVyIHRoYW4gMjAsMDAwLDAwMAorICAgICAgICAgICAgYml0cy9zZWNvbmQgYnV0IGxlc3MgdGhhbiBvciBlcXVhbCB0byA2NTAsMDAwLDAwMAorICAgICAgICAgICAgYml0cy9zZWNvbmQuIgorCisgICAgICAgIEdST1VQICAgICAgIGlmVkhDUGFja2V0R3JvdXAKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBvbmx5IGZvciB0aG9zZSBuZXR3b3JrIGludGVyZmFjZXMKKyAgICAgICAgICAgIHdoaWNoIGFyZSBwYWNrZXQtb3JpZW50ZWQgYW5kIGZvciB3aGljaCB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGluc3RhbmNlIG9mIGlmU3BlZWQgaXMgZ3JlYXRlciB0aGFuCisgICAgICAgICAgICA2NTAsMDAwLDAwMCBiaXRzL3NlY29uZC4iCisKKworICAgICAgICBHUk9VUCAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5R3JvdXAKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgdGhvc2UgbmV0d29yayBpbnRlcmZhY2VzIHRoYXQKKyAgICAgICAgICAgIGFyZSByZXF1aXJlZCB0byBtYWludGFpbiBjb3VudGVycyAoaS5lLiwgdGhvc2UgZm9yIHdoaWNoIG9uZQorICAgICAgICAgICAgb2YgdGhlIGlmRml4ZWRMZW5ndGhHcm91cCwgaWZIQ0ZpeGVkTGVuZ3RoR3JvdXAsCisgICAgICAgICAgICBpZlBhY2tldEdyb3VwLCBpZkhDUGFja2V0R3JvdXAsIG9yIGlmVkhDUGFja2V0R3JvdXAgaXMKKyAgICAgICAgICAgIG1hbmRhdG9yeSkuIgorCisKKyAgICAgICAgR1JPVVAgICAgICAgaWZSY3ZBZGRyZXNzR3JvdXAKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgYXBwbGljYWJpbGl0eSBvZiB0aGlzIGdyb3VwIE1VU1QgYmUgZGVmaW5lZCBieSB0aGUKKyAgICAgICAgICAgIG1lZGlhLXNwZWNpZmljIE1JQnMuICBNZWRpYS1zcGVjaWZpYyBNSUJzIG11c3QgZGVmaW5lIHRoZQorICAgICAgICAgICAgZXhhY3QgbWVhbmluZywgdXNlLCBhbmQgc2VtYW50aWNzIG9mIHRoZSBhZGRyZXNzZXMgaW4gdGhpcworICAgICAgICAgICAgZ3JvdXAuIgorCisgICAgICAgIE9CSkVDVCAgICAgIGlmTGlua1VwRG93blRyYXBFbmFibGUKKyAgICAgICAgTUlOLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiV3JpdGUgYWNjZXNzIGlzIG5vdCByZXF1aXJlZC4iCisKKyAgICAgICAgT0JKRUNUICAgICAgaWZQcm9taXNjdW91c01vZGUKKyAgICAgICAgTUlOLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiV3JpdGUgYWNjZXNzIGlzIG5vdCByZXF1aXJlZC4iCisKKyAgICAgICAgT0JKRUNUICAgICAgIGlmQWRtaW5TdGF0dXMKKworCisgICAgICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsgdXAoMSksIGRvd24oMikgfQorICAgICAgICBNSU4tQUNDRVNTICAgcmVhZC1vbmx5CisgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiV3JpdGUgYWNjZXNzIGlzIG5vdCByZXF1aXJlZCwgbm9yIGlzIHN1cHBvcnQgZm9yIHRoZSB2YWx1ZQorICAgICAgICAgICAgdGVzdGluZygzKS4iCisKKyAgICAgICAgT0JKRUNUICAgICAgIGlmQWxpYXMKKyAgICAgICAgTUlOLUFDQ0VTUyAgIHJlYWQtb25seQorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIldyaXRlIGFjY2VzcyBpcyBub3QgcmVxdWlyZWQuIgorCisgICAgOjo9IHsgaWZDb21wbGlhbmNlcyAzIH0KKworLS0gdW5pdHMgb2YgY29uZm9ybWFuY2UKKworaWZHZW5lcmFsSW5mb3JtYXRpb25Hcm91cCAgICBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTIHsgaWZJbmRleCwgaWZEZXNjciwgaWZUeXBlLCBpZlNwZWVkLCBpZlBoeXNBZGRyZXNzLAorICAgICAgICAgICAgICBpZkFkbWluU3RhdHVzLCBpZk9wZXJTdGF0dXMsIGlmTGFzdENoYW5nZSwKKyAgICAgICAgICAgICAgaWZMaW5rVXBEb3duVHJhcEVuYWJsZSwgaWZDb25uZWN0b3JQcmVzZW50LAorICAgICAgICAgICAgICBpZkhpZ2hTcGVlZCwgaWZOYW1lLCBpZk51bWJlciwgaWZBbGlhcywKKyAgICAgICAgICAgICAgaWZUYWJsZUxhc3RDaGFuZ2UgfQorICAgIFNUQVRVUyAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgcHJvdmlkaW5nIGluZm9ybWF0aW9uIGFwcGxpY2FibGUgdG8KKyAgICAgICAgICAgIGFsbCBuZXR3b3JrIGludGVyZmFjZXMuIgorICAgIDo6PSB7IGlmR3JvdXBzIDEwIH0KKworLS0gdGhlIGZvbGxvd2luZyBmaXZlIGdyb3VwcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlOyBhdCBtb3N0CistLSBvbmUgb2YgdGhlc2UgZ3JvdXBzIGlzIGltcGxlbWVudGVkIGZvciBhbnkgaW50ZXJmYWNlCisKK2lmRml4ZWRMZW5ndGhHcm91cCAgICBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTIHsgaWZJbk9jdGV0cywgaWZPdXRPY3RldHMsIGlmSW5Vbmtub3duUHJvdG9zLAorICAgICAgICAgICAgICBpZkluRXJyb3JzLCBpZk91dEVycm9ycyB9CisgICAgU1RBVFVTICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIGNvbGxlY3Rpb24gb2Ygb2JqZWN0cyBwcm92aWRpbmcgaW5mb3JtYXRpb24gc3BlY2lmaWMgdG8KKyAgICAgICAgICAgIG5vbi1oaWdoIHNwZWVkIChub24taGlnaCBzcGVlZCBpbnRlcmZhY2VzIHRyYW5zbWl0IGFuZAorICAgICAgICAgICAgcmVjZWl2ZSBhdCBzcGVlZHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDIwLDAwMCwwMDAKKyAgICAgICAgICAgIGJpdHMvc2Vjb25kKSBjaGFyYWN0ZXItb3JpZW50ZWQgb3IgZml4ZWQtbGVuZ3RoLXRyYW5zbWlzc2lvbgorICAgICAgICAgICAgbmV0d29yayBpbnRlcmZhY2VzLiIKKyAgICA6Oj0geyBpZkdyb3VwcyAyIH0KKworaWZIQ0ZpeGVkTGVuZ3RoR3JvdXAgICAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyB7IGlmSENJbk9jdGV0cywgaWZIQ091dE9jdGV0cywKKyAgICAgICAgICAgICAgaWZJbk9jdGV0cywgaWZPdXRPY3RldHMsIGlmSW5Vbmtub3duUHJvdG9zLAorICAgICAgICAgICAgICBpZkluRXJyb3JzLCBpZk91dEVycm9ycyB9CisgICAgU1RBVFVTICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKworCisgICAgICAgICAgICAiQSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgcHJvdmlkaW5nIGluZm9ybWF0aW9uIHNwZWNpZmljIHRvCisgICAgICAgICAgICBoaWdoIHNwZWVkIChncmVhdGVyIHRoYW4gMjAsMDAwLDAwMCBiaXRzL3NlY29uZCkgY2hhcmFjdGVyLQorICAgICAgICAgICAgb3JpZW50ZWQgb3IgZml4ZWQtbGVuZ3RoLXRyYW5zbWlzc2lvbiBuZXR3b3JrIGludGVyZmFjZXMuIgorICAgIDo6PSB7IGlmR3JvdXBzIDMgfQorCitpZlBhY2tldEdyb3VwICAgIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgeyBpZkluT2N0ZXRzLCBpZk91dE9jdGV0cywgaWZJblVua25vd25Qcm90b3MsCisgICAgICAgICAgICAgIGlmSW5FcnJvcnMsIGlmT3V0RXJyb3JzLAorICAgICAgICAgICAgICBpZk10dSwgaWZJblVjYXN0UGt0cywgaWZJbk11bHRpY2FzdFBrdHMsCisgICAgICAgICAgICAgIGlmSW5Ccm9hZGNhc3RQa3RzLCBpZkluRGlzY2FyZHMsCisgICAgICAgICAgICAgIGlmT3V0VWNhc3RQa3RzLCBpZk91dE11bHRpY2FzdFBrdHMsCisgICAgICAgICAgICAgIGlmT3V0QnJvYWRjYXN0UGt0cywgaWZPdXREaXNjYXJkcywKKyAgICAgICAgICAgICAgaWZQcm9taXNjdW91c01vZGUgfQorICAgIFNUQVRVUyAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgcHJvdmlkaW5nIGluZm9ybWF0aW9uIHNwZWNpZmljIHRvCisgICAgICAgICAgICBub24taGlnaCBzcGVlZCAobm9uLWhpZ2ggc3BlZWQgaW50ZXJmYWNlcyB0cmFuc21pdCBhbmQKKyAgICAgICAgICAgIHJlY2VpdmUgYXQgc3BlZWRzIGxlc3MgdGhhbiBvciBlcXVhbCB0byAyMCwwMDAsMDAwCisgICAgICAgICAgICBiaXRzL3NlY29uZCkgcGFja2V0LW9yaWVudGVkIG5ldHdvcmsgaW50ZXJmYWNlcy4iCisgICAgOjo9IHsgaWZHcm91cHMgNCB9CisKK2lmSENQYWNrZXRHcm91cCAgICBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTIHsgaWZIQ0luT2N0ZXRzLCBpZkhDT3V0T2N0ZXRzLAorICAgICAgICAgICAgICBpZkluT2N0ZXRzLCBpZk91dE9jdGV0cywgaWZJblVua25vd25Qcm90b3MsCisgICAgICAgICAgICAgIGlmSW5FcnJvcnMsIGlmT3V0RXJyb3JzLAorICAgICAgICAgICAgICBpZk10dSwgaWZJblVjYXN0UGt0cywgaWZJbk11bHRpY2FzdFBrdHMsCisgICAgICAgICAgICAgIGlmSW5Ccm9hZGNhc3RQa3RzLCBpZkluRGlzY2FyZHMsCisgICAgICAgICAgICAgIGlmT3V0VWNhc3RQa3RzLCBpZk91dE11bHRpY2FzdFBrdHMsCisgICAgICAgICAgICAgIGlmT3V0QnJvYWRjYXN0UGt0cywgaWZPdXREaXNjYXJkcywKKyAgICAgICAgICAgICAgaWZQcm9taXNjdW91c01vZGUgfQorICAgIFNUQVRVUyAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgcHJvdmlkaW5nIGluZm9ybWF0aW9uIHNwZWNpZmljIHRvCisgICAgICAgICAgICBoaWdoIHNwZWVkIChncmVhdGVyIHRoYW4gMjAsMDAwLDAwMCBiaXRzL3NlY29uZCBidXQgbGVzcworICAgICAgICAgICAgdGhhbiBvciBlcXVhbCB0byA2NTAsMDAwLDAwMCBiaXRzL3NlY29uZCkgcGFja2V0LW9yaWVudGVkCisgICAgICAgICAgICBuZXR3b3JrIGludGVyZmFjZXMuIgorICAgIDo6PSB7IGlmR3JvdXBzIDUgfQorCitpZlZIQ1BhY2tldEdyb3VwICAgIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgeyBpZkhDSW5VY2FzdFBrdHMsIGlmSENJbk11bHRpY2FzdFBrdHMsCisgICAgICAgICAgICAgIGlmSENJbkJyb2FkY2FzdFBrdHMsIGlmSENPdXRVY2FzdFBrdHMsCisgICAgICAgICAgICAgIGlmSENPdXRNdWx0aWNhc3RQa3RzLCBpZkhDT3V0QnJvYWRjYXN0UGt0cywKKyAgICAgICAgICAgICAgaWZIQ0luT2N0ZXRzLCBpZkhDT3V0T2N0ZXRzLAorICAgICAgICAgICAgICBpZkluT2N0ZXRzLCBpZk91dE9jdGV0cywgaWZJblVua25vd25Qcm90b3MsCisgICAgICAgICAgICAgIGlmSW5FcnJvcnMsIGlmT3V0RXJyb3JzLAorICAgICAgICAgICAgICBpZk10dSwgaWZJblVjYXN0UGt0cywgaWZJbk11bHRpY2FzdFBrdHMsCisgICAgICAgICAgICAgIGlmSW5Ccm9hZGNhc3RQa3RzLCBpZkluRGlzY2FyZHMsCisgICAgICAgICAgICAgIGlmT3V0VWNhc3RQa3RzLCBpZk91dE11bHRpY2FzdFBrdHMsCisKKworICAgICAgICAgICAgICBpZk91dEJyb2FkY2FzdFBrdHMsIGlmT3V0RGlzY2FyZHMsCisgICAgICAgICAgICAgIGlmUHJvbWlzY3VvdXNNb2RlIH0KKyAgICBTVEFUVVMgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgY29sbGVjdGlvbiBvZiBvYmplY3RzIHByb3ZpZGluZyBpbmZvcm1hdGlvbiBzcGVjaWZpYyB0bworICAgICAgICAgICAgaGlnaGVyIHNwZWVkIChncmVhdGVyIHRoYW4gNjUwLDAwMCwwMDAgYml0cy9zZWNvbmQpIHBhY2tldC0KKyAgICAgICAgICAgIG9yaWVudGVkIG5ldHdvcmsgaW50ZXJmYWNlcy4iCisgICAgOjo9IHsgaWZHcm91cHMgNiB9CisKK2lmUmN2QWRkcmVzc0dyb3VwICAgIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgeyBpZlJjdkFkZHJlc3NTdGF0dXMsIGlmUmN2QWRkcmVzc1R5cGUgfQorICAgIFNUQVRVUyAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgcHJvdmlkaW5nIGluZm9ybWF0aW9uIG9uIHRoZQorICAgICAgICAgICAgbXVsdGlwbGUgYWRkcmVzc2VzIHdoaWNoIGFuIGludGVyZmFjZSByZWNlaXZlcy4iCisgICAgOjo9IHsgaWZHcm91cHMgNyB9CisKK2lmU3RhY2tHcm91cDIgICAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyB7IGlmU3RhY2tTdGF0dXMsIGlmU3RhY2tMYXN0Q2hhbmdlIH0KKyAgICBTVEFUVVMgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgY29sbGVjdGlvbiBvZiBvYmplY3RzIHByb3ZpZGluZyBpbmZvcm1hdGlvbiBvbiB0aGUKKyAgICAgICAgICAgIGxheWVyaW5nIG9mIE1JQi1JSSBpbnRlcmZhY2VzLiIKKyAgICA6Oj0geyBpZkdyb3VwcyAxMSB9CisKK2lmQ291bnRlckRpc2NvbnRpbnVpdHlHcm91cCAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyB7IGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lIH0KKyAgICBTVEFUVVMgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgY29sbGVjdGlvbiBvZiBvYmplY3RzIHByb3ZpZGluZyBpbmZvcm1hdGlvbiBzcGVjaWZpYyB0bworICAgICAgICAgICAgaW50ZXJmYWNlIGNvdW50ZXIgZGlzY29udGludWl0aWVzLiIKKyAgICA6Oj0geyBpZkdyb3VwcyAxMyB9CisKK2xpbmtVcERvd25Ob3RpZmljYXRpb25zR3JvdXAgIE5PVElGSUNBVElPTi1HUk9VUAorICAgIE5PVElGSUNBVElPTlMgeyBsaW5rVXAsIGxpbmtEb3duIH0KKyAgICBTVEFUVVMgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBub3RpZmljYXRpb25zIHdoaWNoIGluZGljYXRlIHNwZWNpZmljIGNoYW5nZXMgaW4gdGhlCisgICAgICAgICAgICB2YWx1ZSBvZiBpZk9wZXJTdGF0dXMuIgorICAgIDo6PSB7IGlmR3JvdXBzIDE0IH0KKworLS0gRGVwcmVjYXRlZCBEZWZpbml0aW9ucyAtIE9iamVjdHMKKworCistLQorLS0gICAgVGhlIEludGVyZmFjZSBUZXN0IFRhYmxlCistLQorLS0gVGhpcyBncm91cCBvZiBvYmplY3RzIGlzIG9wdGlvbmFsLiAgSG93ZXZlciwgYSBtZWRpYS1zcGVjaWZpYworCisKKy0tIE1JQiBtYXkgbWFrZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGdyb3VwIG1hbmRhdG9yeS4KKy0tCistLSBUaGlzIHRhYmxlIHJlcGxhY2VzIHRoZSBpZkV4dG5zVGVzdFRhYmxlCistLQorCitpZlRlc3RUYWJsZSAgIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgU0VRVUVOQ0UgT0YgSWZUZXN0RW50cnkKKyAgICBNQVgtQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgdGFibGUgY29udGFpbnMgb25lIGVudHJ5IHBlciBpbnRlcmZhY2UuICBJdCBkZWZpbmVzCisgICAgICAgICAgICBvYmplY3RzIHdoaWNoIGFsbG93IGEgbmV0d29yayBtYW5hZ2VyIHRvIGluc3RydWN0IGFuIGFnZW50CisgICAgICAgICAgICB0byB0ZXN0IGFuIGludGVyZmFjZSBmb3IgdmFyaW91cyBmYXVsdHMuICBUZXN0cyBmb3IgYW4KKyAgICAgICAgICAgIGludGVyZmFjZSBhcmUgZGVmaW5lZCBpbiB0aGUgbWVkaWEtc3BlY2lmaWMgTUlCIGZvciB0aGF0CisgICAgICAgICAgICBpbnRlcmZhY2UuICBBZnRlciBpbnZva2luZyBhIHRlc3QsIHRoZSBvYmplY3QgaWZUZXN0UmVzdWx0CisgICAgICAgICAgICBjYW4gYmUgcmVhZCB0byBkZXRlcm1pbmUgdGhlIG91dGNvbWUuICBJZiBhbiBhZ2VudCBjYW4gbm90CisgICAgICAgICAgICBwZXJmb3JtIHRoZSB0ZXN0LCBpZlRlc3RSZXN1bHQgaXMgc2V0IHRvIHNvIGluZGljYXRlLiAgVGhlCisgICAgICAgICAgICBvYmplY3QgaWZUZXN0Q29kZSBjYW4gYmUgdXNlZCB0byBwcm92aWRlIGZ1cnRoZXIgdGVzdC0KKyAgICAgICAgICAgIHNwZWNpZmljIG9yIGludGVyZmFjZS1zcGVjaWZpYyAob3IgZXZlbiBlbnRlcnByaXNlLXNwZWNpZmljKQorICAgICAgICAgICAgaW5mb3JtYXRpb24gY29uY2VybmluZyB0aGUgb3V0Y29tZSBvZiB0aGUgdGVzdC4gIE9ubHkgb25lCisgICAgICAgICAgICB0ZXN0IGNhbiBiZSBpbiBwcm9ncmVzcyBvbiBlYWNoIGludGVyZmFjZSBhdCBhbnkgb25lIHRpbWUuCisgICAgICAgICAgICBJZiBvbmUgdGVzdCBpcyBpbiBwcm9ncmVzcyB3aGVuIGFub3RoZXIgdGVzdCBpcyBpbnZva2VkLCB0aGUKKyAgICAgICAgICAgIHNlY29uZCB0ZXN0IGlzIHJlamVjdGVkLiAgU29tZSBhZ2VudHMgbWF5IHJlamVjdCBhIHRlc3Qgd2hlbgorICAgICAgICAgICAgYSBwcmlvciB0ZXN0IGlzIGFjdGl2ZSBvbiBhbm90aGVyIGludGVyZmFjZS4KKworICAgICAgICAgICAgQmVmb3JlIHN0YXJ0aW5nIGEgdGVzdCwgYSBtYW5hZ2VyLXN0YXRpb24gbXVzdCBmaXJzdCBvYnRhaW4KKyAgICAgICAgICAgICdvd25lcnNoaXAnIG9mIHRoZSBlbnRyeSBpbiB0aGUgaWZUZXN0VGFibGUgZm9yIHRoZQorICAgICAgICAgICAgaW50ZXJmYWNlIHRvIGJlIHRlc3RlZC4gIFRoaXMgaXMgYWNjb21wbGlzaGVkIHdpdGggdGhlCisgICAgICAgICAgICBpZlRlc3RJZCBhbmQgaWZUZXN0U3RhdHVzIG9iamVjdHMgYXMgZm9sbG93czoKKworICAgICAgICAgIHRyeV9hZ2FpbjoKKyAgICAgICAgICAgICAgZ2V0IChpZlRlc3RJZCwgaWZUZXN0U3RhdHVzKQorICAgICAgICAgICAgICB3aGlsZSAoaWZUZXN0U3RhdHVzICE9IG5vdEluVXNlKQorICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAqIExvb3Agd2hpbGUgYSB0ZXN0IGlzIHJ1bm5pbmcgb3Igc29tZSBvdGhlcgorICAgICAgICAgICAgICAgICAgICogbWFuYWdlciBpcyBjb25maWd1cmluZyBhIHRlc3QuCisgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgIHNob3J0IGRlbGF5CisgICAgICAgICAgICAgICAgICBnZXQgKGlmVGVzdElkLCBpZlRlc3RTdGF0dXMpCisgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgKiBJcyBub3QgYmVpbmcgdXNlZCByaWdodCBub3cgLS0gbGV0J3MgY29tcGV0ZQorICAgICAgICAgICAgICAgKiB0byBzZWUgd2hvIGdldHMgaXQuCisgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICBsb2NrX3ZhbHVlID0gaWZUZXN0SWQKKworICAgICAgICAgICAgICBpZiAoIHNldChpZlRlc3RJZCA9IGxvY2tfdmFsdWUsIGlmVGVzdFN0YXR1cyA9IGluVXNlLAorCisKKyAgICAgICAgICAgICAgICAgICAgICAgaWZUZXN0T3duZXIgPSAnbXktSVAtYWRkcmVzcycpID09IEZBSUxVUkUpCisgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICogQW5vdGhlciBtYW5hZ2VyIGdvdCB0aGUgaWZUZXN0RW50cnkgLS0gZ28KKyAgICAgICAgICAgICAgICAgICAqIHRyeSBhZ2FpbgorICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICBnb3RvIHRyeV9hZ2FpbjsKKworICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgKiBJIGhhdmUgdGhlIGxvY2sKKyAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIHNldCB1cCBhbnkgdGVzdCBwYXJhbWV0ZXJzLgorCisgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAqIFRoaXMgc3RhcnRzIHRoZSB0ZXN0CisgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICBzZXQoaWZUZXN0VHlwZSA9IHRlc3RfdG9fcnVuKTsKKworICAgICAgICAgICAgICB3YWl0IGZvciB0ZXN0IGNvbXBsZXRpb24gYnkgcG9sbGluZyBpZlRlc3RSZXN1bHQKKworICAgICAgICAgICAgICB3aGVuIHRlc3QgY29tcGxldGVzLCBhZ2VudCBzZXRzIGlmVGVzdFJlc3VsdAorICAgICAgICAgICAgICAgICAgIGFnZW50IGFsc28gc2V0cyBpZlRlc3RTdGF0dXMgPSAnbm90SW5Vc2UnCisKKyAgICAgICAgICAgICAgcmV0cmlldmUgYW55IGFkZGl0aW9uYWwgdGVzdCByZXN1bHRzLCBhbmQgaWZUZXN0SWQKKworICAgICAgICAgICAgICBpZiAoaWZUZXN0SWQgPT0gbG9ja192YWx1ZSsxKSByZXN1bHRzIGFyZSB2YWxpZAorCisgICAgICAgICAgICBBIG1hbmFnZXIgc3RhdGlvbiBmaXJzdCByZXRyaWV2ZXMgdGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgYXBwcm9wcmlhdGUgaWZUZXN0SWQgYW5kIGlmVGVzdFN0YXR1cyBvYmplY3RzLCBwZXJpb2RpY2FsbHkKKyAgICAgICAgICAgIHJlcGVhdGluZyB0aGUgcmV0cmlldmFsIGlmIG5lY2Vzc2FyeSwgdW50aWwgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpZlRlc3RTdGF0dXMgaXMgJ25vdEluVXNlJy4gIFRoZSBtYW5hZ2VyIHN0YXRpb24gdGhlbiB0cmllcworICAgICAgICAgICAgdG8gc2V0IHRoZSBzYW1lIGlmVGVzdElkIG9iamVjdCB0byB0aGUgdmFsdWUgaXQganVzdAorICAgICAgICAgICAgcmV0cmlldmVkLCB0aGUgc2FtZSBpZlRlc3RTdGF0dXMgb2JqZWN0IHRvICdpblVzZScsIGFuZCB0aGUKKyAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgaWZUZXN0T3duZXIgb2JqZWN0IHRvIGEgdmFsdWUgaW5kaWNhdGluZworICAgICAgICAgICAgaXRzZWxmLiAgSWYgdGhlIHNldCBvcGVyYXRpb24gc3VjY2VlZHMgdGhlbiB0aGUgbWFuYWdlciBoYXMKKyAgICAgICAgICAgIG9idGFpbmVkIG93bmVyc2hpcCBvZiB0aGUgaWZUZXN0RW50cnksIGFuZCB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICBpZlRlc3RJZCBvYmplY3QgaXMgaW5jcmVtZW50ZWQgYnkgdGhlIGFnZW50IChwZXIgdGhlCisgICAgICAgICAgICBzZW1hbnRpY3Mgb2YgVGVzdEFuZEluY3IpLiAgRmFpbHVyZSBvZiB0aGUgc2V0IG9wZXJhdGlvbgorICAgICAgICAgICAgaW5kaWNhdGVzIHRoYXQgc29tZSBvdGhlciBtYW5hZ2VyIGhhcyBvYnRhaW5lZCBvd25lcnNoaXAgb2YKKyAgICAgICAgICAgIHRoZSBpZlRlc3RFbnRyeS4KKworICAgICAgICAgICAgT25jZSBvd25lcnNoaXAgaXMgb2J0YWluZWQsIGFueSB0ZXN0IHBhcmFtZXRlcnMgY2FuIGJlCisgICAgICAgICAgICBzZXR1cCwgYW5kIHRoZW4gdGhlIHRlc3QgaXMgaW5pdGlhdGVkIGJ5IHNldHRpbmcgaWZUZXN0VHlwZS4KKyAgICAgICAgICAgIE9uIGNvbXBsZXRpb24gb2YgdGhlIHRlc3QsIHRoZSBhZ2VudCBzZXRzIGlmVGVzdFN0YXR1cyB0bworICAgICAgICAgICAgJ25vdEluVXNlJy4gIE9uY2UgdGhpcyBvY2N1cnMsIHRoZSBtYW5hZ2VyIGNhbiByZXRyaWV2ZSB0aGUKKyAgICAgICAgICAgIHJlc3VsdHMuICBJbiB0aGUgKHJhcmUpIGV2ZW50IHRoYXQgdGhlIGludm9jYXRpb24gb2YgdGVzdHMKKyAgICAgICAgICAgIGJ5IHR3byBuZXR3b3JrIG1hbmFnZXJzIHdlcmUgdG8gb3ZlcmxhcCwgdGhlbiB0aGVyZSB3b3VsZCBiZQorICAgICAgICAgICAgYSBwb3NzaWJpbGl0eSB0aGF0IHRoZSBmaXJzdCB0ZXN0J3MgcmVzdWx0cyBtaWdodCBiZQorICAgICAgICAgICAgb3ZlcndyaXR0ZW4gYnkgdGhlIHNlY29uZCB0ZXN0J3MgcmVzdWx0cyBwcmlvciB0byB0aGUgZmlyc3QKKworCisgICAgICAgICAgICByZXN1bHRzIGJlaW5nIHJlYWQuICBUaGlzIHVubGlrZWx5IGNpcmN1bXN0YW5jZSBjYW4gYmUKKyAgICAgICAgICAgIGRldGVjdGVkIGJ5IGEgbmV0d29yayBtYW5hZ2VyIHJldHJpZXZpbmcgaWZUZXN0SWQgYXQgdGhlCisgICAgICAgICAgICBzYW1lIHRpbWUgYXMgcmV0cmlldmluZyB0aGUgdGVzdCByZXN1bHRzLCBhbmQgZW5zdXJpbmcgdGhhdAorICAgICAgICAgICAgdGhlIHJlc3VsdHMgYXJlIGZvciB0aGUgZGVzaXJlZCByZXF1ZXN0LgorCisgICAgICAgICAgICBJZiBpZlRlc3RUeXBlIGlzIG5vdCBzZXQgd2l0aGluIGFuIGFibm9ybWFsbHkgbG9uZyBwZXJpb2Qgb2YKKyAgICAgICAgICAgIHRpbWUgYWZ0ZXIgb3duZXJzaGlwIGlzIG9idGFpbmVkLCB0aGUgYWdlbnQgc2hvdWxkIHRpbWUtb3V0CisgICAgICAgICAgICB0aGUgbWFuYWdlciwgYW5kIHJlc2V0IHRoZSB2YWx1ZSBvZiB0aGUgaWZUZXN0U3RhdHVzIG9iamVjdAorICAgICAgICAgICAgYmFjayB0byAnbm90SW5Vc2UnLiAgSXQgaXMgc3VnZ2VzdGVkIHRoYXQgdGhpcyB0aW1lLW91dAorICAgICAgICAgICAgcGVyaW9kIGJlIDUgbWludXRlcy4KKworICAgICAgICAgICAgSW4gZ2VuZXJhbCwgYSBtYW5hZ2VtZW50IHN0YXRpb24gbXVzdCBub3QgcmV0cmFuc21pdCBhCisgICAgICAgICAgICByZXF1ZXN0IHRvIGludm9rZSBhIHRlc3QgZm9yIHdoaWNoIGl0IGRvZXMgbm90IHJlY2VpdmUgYQorICAgICAgICAgICAgcmVzcG9uc2U7IGluc3RlYWQsIGl0IHByb3Blcmx5IGluc3BlY3RzIGFuIGFnZW50J3MgTUlCIHRvCisgICAgICAgICAgICBkZXRlcm1pbmUgaWYgdGhlIGludm9jYXRpb24gd2FzIHN1Y2Nlc3NmdWwuICBPbmx5IGlmIHRoZQorICAgICAgICAgICAgaW52b2NhdGlvbiB3YXMgdW5zdWNjZXNzZnVsLCBpcyB0aGUgaW52b2NhdGlvbiByZXF1ZXN0CisgICAgICAgICAgICByZXRyYW5zbWl0dGVkLgorCisgICAgICAgICAgICBTb21lIHRlc3RzIG1heSByZXF1aXJlIHRoZSBpbnRlcmZhY2UgdG8gYmUgdGFrZW4gb2ZmLWxpbmUgaW4KKyAgICAgICAgICAgIG9yZGVyIHRvIGV4ZWN1dGUgdGhlbSwgb3IgbWF5IGV2ZW4gcmVxdWlyZSB0aGUgYWdlbnQgdG8KKyAgICAgICAgICAgIHJlYm9vdCBhZnRlciBjb21wbGV0aW9uIG9mIHRoZSB0ZXN0LiAgSW4gdGhlc2UKKyAgICAgICAgICAgIGNpcmN1bXN0YW5jZXMsIGNvbW11bmljYXRpb24gd2l0aCB0aGUgbWFuYWdlbWVudCBzdGF0aW9uCisgICAgICAgICAgICBpbnZva2luZyB0aGUgdGVzdCBtYXkgYmUgbG9zdCB1bnRpbCBhZnRlciBjb21wbGV0aW9uIG9mIHRoZQorICAgICAgICAgICAgdGVzdC4gIEFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBzdXBwb3J0IHN1Y2ggdGVzdHMuCisgICAgICAgICAgICBIb3dldmVyLCBpZiBzdWNoIHRlc3RzIGFyZSBzdXBwb3J0ZWQsIHRoZW4gdGhlIGFnZW50IHNob3VsZAorICAgICAgICAgICAgbWFrZSBldmVyeSBlZmZvcnQgdG8gdHJhbnNtaXQgYSByZXNwb25zZSB0byB0aGUgcmVxdWVzdAorICAgICAgICAgICAgd2hpY2ggaW52b2tlZCB0aGUgdGVzdCBwcmlvciB0byBsb3NpbmcgY29tbXVuaWNhdGlvbi4gIFdoZW4KKyAgICAgICAgICAgIHRoZSBhZ2VudCBpcyByZXN0b3JlZCB0byBub3JtYWwgc2VydmljZSwgdGhlIHJlc3VsdHMgb2YgdGhlCisgICAgICAgICAgICB0ZXN0IGFyZSBwcm9wZXJseSBtYWRlIGF2YWlsYWJsZSBpbiB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0cy4KKyAgICAgICAgICAgIE5vdGUgdGhhdCB0aGlzIHJlcXVpcmVzIHRoYXQgdGhlIGlmSW5kZXggdmFsdWUgYXNzaWduZWQgdG8KKyAgICAgICAgICAgIGFuIGludGVyZmFjZSBtdXN0IGJlIHVuY2hhbmdlZCBldmVuIGlmIHRoZSB0ZXN0IGNhdXNlcyBhCisgICAgICAgICAgICByZWJvb3QuICBBbiBhZ2VudCBtdXN0IHJlamVjdCBhbnkgdGVzdCBmb3Igd2hpY2ggaXQgY2Fubm90LAorICAgICAgICAgICAgcGVyaGFwcyBkdWUgdG8gcmVzb3VyY2UgY29uc3RyYWludHMsIG1ha2UgYXZhaWxhYmxlIGF0IGxlYXN0CisgICAgICAgICAgICB0aGUgbWluaW11bSBhbW91bnQgb2YgaW5mb3JtYXRpb24gYWZ0ZXIgdGhhdCB0ZXN0CisgICAgICAgICAgICBjb21wbGV0ZXMuIgorICAgIDo6PSB7IGlmTUlCT2JqZWN0cyAzIH0KKworaWZUZXN0RW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICAgSWZUZXN0RW50cnkKKyAgICBNQVgtQUNDRVNTICAgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQW4gZW50cnkgY29udGFpbmluZyBvYmplY3RzIGZvciBpbnZva2luZyB0ZXN0cyBvbiBhbgorICAgICAgICAgICAgaW50ZXJmYWNlLiIKKyAgICBBVUdNRU5UUyAgeyBpZkVudHJ5IH0KKyAgICA6Oj0geyBpZlRlc3RUYWJsZSAxIH0KKworSWZUZXN0RW50cnkgOjo9CisKKworICAgIFNFUVVFTkNFIHsKKyAgICAgICAgaWZUZXN0SWQgICAgICAgICAgIFRlc3RBbmRJbmNyLAorICAgICAgICBpZlRlc3RTdGF0dXMgICAgICAgSU5URUdFUiwKKyAgICAgICAgaWZUZXN0VHlwZSAgICAgICAgIEF1dG9ub21vdXNUeXBlLAorICAgICAgICBpZlRlc3RSZXN1bHQgICAgICAgSU5URUdFUiwKKyAgICAgICAgaWZUZXN0Q29kZSAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSLAorICAgICAgICBpZlRlc3RPd25lciAgICAgICAgT3duZXJTdHJpbmcKKyAgICB9CisKK2lmVGVzdElkICAgICAgICAgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICAgVGVzdEFuZEluY3IKKyAgICBNQVgtQUNDRVNTICAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIG9iamVjdCBpZGVudGlmaWVzIHRoZSBjdXJyZW50IGludm9jYXRpb24gb2YgdGhlCisgICAgICAgICAgICBpbnRlcmZhY2UncyB0ZXN0LiIKKyAgICA6Oj0geyBpZlRlc3RFbnRyeSAxIH0KKworaWZUZXN0U3RhdHVzICAgICBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsgbm90SW5Vc2UoMSksIGluVXNlKDIpIH0KKyAgICBNQVgtQUNDRVNTICAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIG9iamVjdCBpbmRpY2F0ZXMgd2hldGhlciBvciBub3Qgc29tZSBtYW5hZ2VyIGN1cnJlbnRseQorICAgICAgICAgICAgaGFzIHRoZSBuZWNlc3NhcnkgJ293bmVyc2hpcCcgcmVxdWlyZWQgdG8gaW52b2tlIGEgdGVzdCBvbgorICAgICAgICAgICAgdGhpcyBpbnRlcmZhY2UuICBBIHdyaXRlIHRvIHRoaXMgb2JqZWN0IGlzIG9ubHkgc3VjY2Vzc2Z1bAorICAgICAgICAgICAgd2hlbiBpdCBjaGFuZ2VzIGl0cyB2YWx1ZSBmcm9tICdub3RJblVzZSgxKScgdG8gJ2luVXNlKDIpJy4KKyAgICAgICAgICAgIEFmdGVyIGNvbXBsZXRpb24gb2YgYSB0ZXN0LCB0aGUgYWdlbnQgcmVzZXRzIHRoZSB2YWx1ZSBiYWNrCisgICAgICAgICAgICB0byAnbm90SW5Vc2UoMSknLiIKKyAgICA6Oj0geyBpZlRlc3RFbnRyeSAyIH0KKworaWZUZXN0VHlwZSAgICAgICBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgICBBdXRvbm9tb3VzVHlwZQorICAgIE1BWC1BQ0NFU1MgICByZWFkLXdyaXRlCisgICAgU1RBVFVTICAgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgY29udHJvbCB2YXJpYWJsZSB1c2VkIHRvIHN0YXJ0IGFuZCBzdG9wIG9wZXJhdG9yLQorICAgICAgICAgICAgaW5pdGlhdGVkIGludGVyZmFjZSB0ZXN0cy4gIE1vc3QgT0JKRUNUIElERU5USUZJRVIgdmFsdWVzCisgICAgICAgICAgICBhc3NpZ25lZCB0byB0ZXN0cyBhcmUgZGVmaW5lZCBlbHNld2hlcmUsIGluIGFzc29jaWF0aW9uIHdpdGgKKyAgICAgICAgICAgIHNwZWNpZmljIHR5cGVzIG9mIGludGVyZmFjZS4gIEhvd2V2ZXIsIHRoaXMgZG9jdW1lbnQgYXNzaWducworICAgICAgICAgICAgYSB2YWx1ZSBmb3IgYSBmdWxsLWR1cGxleCBsb29wYmFjayB0ZXN0LCBhbmQgZGVmaW5lcyB0aGUKKyAgICAgICAgICAgIHNwZWNpYWwgbWVhbmluZ3Mgb2YgdGhlIHN1YmplY3QgaWRlbnRpZmllcjoKKworICAgICAgICAgICAgICAgIG5vVGVzdCAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgMCAwIH0KKworICAgICAgICAgICAgV2hlbiB0aGUgdmFsdWUgbm9UZXN0IGlzIHdyaXR0ZW4gdG8gdGhpcyBvYmplY3QsIG5vIGFjdGlvbgorICAgICAgICAgICAgaXMgdGFrZW4gdW5sZXNzIGEgdGVzdCBpcyBpbiBwcm9ncmVzcywgaW4gd2hpY2ggY2FzZSB0aGUKKyAgICAgICAgICAgIHRlc3QgaXMgYWJvcnRlZC4gIFdyaXRpbmcgYW55IG90aGVyIHZhbHVlIHRvIHRoaXMgb2JqZWN0IGlzCisKKworICAgICAgICAgICAgb25seSB2YWxpZCB3aGVuIG5vIHRlc3QgaXMgY3VycmVudGx5IGluIHByb2dyZXNzLCBpbiB3aGljaAorICAgICAgICAgICAgY2FzZSB0aGUgaW5kaWNhdGVkIHRlc3QgaXMgaW5pdGlhdGVkLgorCisgICAgICAgICAgICBXaGVuIHJlYWQsIHRoaXMgb2JqZWN0IGFsd2F5cyByZXR1cm5zIHRoZSBtb3N0IHJlY2VudCB2YWx1ZQorICAgICAgICAgICAgdGhhdCBpZlRlc3RUeXBlIHdhcyBzZXQgdG8uICBJZiBpdCBoYXMgbm90IGJlZW4gc2V0IHNpbmNlCisgICAgICAgICAgICB0aGUgbGFzdCBpbml0aWFsaXphdGlvbiBvZiB0aGUgbmV0d29yayBtYW5hZ2VtZW50IHN1YnN5c3RlbQorICAgICAgICAgICAgb24gdGhlIGFnZW50LCBhIHZhbHVlIG9mIG5vVGVzdCBpcyByZXR1cm5lZC4iCisgICAgOjo9IHsgaWZUZXN0RW50cnkgMyB9CisKK2lmVGVzdFJlc3VsdCAgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgICBub25lKDEpLCAgICAgICAgICAtLSBubyB0ZXN0IHlldCByZXF1ZXN0ZWQKKyAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MoMiksCisgICAgICAgICAgICAgICAgICAgICBpblByb2dyZXNzKDMpLAorICAgICAgICAgICAgICAgICAgICAgbm90U3VwcG9ydGVkKDQpLAorICAgICAgICAgICAgICAgICAgICAgdW5BYmxlVG9SdW4oNSksICAgLS0gZHVlIHRvIHN0YXRlIG9mIHN5c3RlbQorICAgICAgICAgICAgICAgICAgICAgYWJvcnRlZCg2KSwKKyAgICAgICAgICAgICAgICAgICAgIGZhaWxlZCg3KQorICAgICAgICAgICAgICAgICB9CisgICAgTUFYLUFDQ0VTUyAgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIG9iamVjdCBjb250YWlucyB0aGUgcmVzdWx0IG9mIHRoZSBtb3N0IHJlY2VudGx5CisgICAgICAgICAgICByZXF1ZXN0ZWQgdGVzdCwgb3IgdGhlIHZhbHVlIG5vbmUoMSkgaWYgbm8gdGVzdHMgaGF2ZSBiZWVuCisgICAgICAgICAgICByZXF1ZXN0ZWQgc2luY2UgdGhlIGxhc3QgcmVzZXQuICBOb3RlIHRoYXQgdGhpcyBmYWNpbGl0eQorICAgICAgICAgICAgcHJvdmlkZXMgbm8gcHJvdmlzaW9uIGZvciBzYXZpbmcgdGhlIHJlc3VsdHMgb2Ygb25lIHRlc3QKKyAgICAgICAgICAgIHdoZW4gc3RhcnRpbmcgYW5vdGhlciwgYXMgY291bGQgYmUgcmVxdWlyZWQgaWYgdXNlZCBieQorICAgICAgICAgICAgbXVsdGlwbGUgbWFuYWdlcnMgY29uY3VycmVudGx5LiIKKyAgICA6Oj0geyBpZlRlc3RFbnRyeSA0IH0KKworaWZUZXN0Q29kZSAgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICAgT0JKRUNUIElERU5USUZJRVIKKyAgICBNQVgtQUNDRVNTICAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgb2JqZWN0IGNvbnRhaW5zIGEgY29kZSB3aGljaCBjb250YWlucyBtb3JlIHNwZWNpZmljCisgICAgICAgICAgICBpbmZvcm1hdGlvbiBvbiB0aGUgdGVzdCByZXN1bHQsIGZvciBleGFtcGxlIGFuIGVycm9yLWNvZGUKKyAgICAgICAgICAgIGFmdGVyIGEgZmFpbGVkIHRlc3QuICBFcnJvciBjb2RlcyBhbmQgb3RoZXIgdmFsdWVzIHRoaXMKKyAgICAgICAgICAgIG9iamVjdCBtYXkgdGFrZSBhcmUgc3BlY2lmaWMgdG8gdGhlIHR5cGUgb2YgaW50ZXJmYWNlIGFuZC9vcgorICAgICAgICAgICAgdGVzdC4gIFRoZSB2YWx1ZSBtYXkgaGF2ZSB0aGUgc2VtYW50aWNzIG9mIGVpdGhlciB0aGUKKyAgICAgICAgICAgIEF1dG9ub21vdXNUeXBlIG9yIEluc3RhbmNlUG9pbnRlciB0ZXh0dWFsIGNvbnZlbnRpb25zIGFzCisgICAgICAgICAgICBkZWZpbmVkIGluIFJGQyAyNTc5LiAgVGhlIGlkZW50aWZpZXI6CisKKyAgICAgICAgICAgICAgICB0ZXN0Q29kZVVua25vd24gIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IDAgMCB9CisKKyAgICAgICAgICAgIGlzIGRlZmluZWQgZm9yIHVzZSBpZiBubyBhZGRpdGlvbmFsIHJlc3VsdCBjb2RlIGlzCisgICAgICAgICAgICBhdmFpbGFibGUuIgorICAgIDo6PSB7IGlmVGVzdEVudHJ5IDUgfQorCisKK2lmVGVzdE93bmVyICAgICAgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICAgT3duZXJTdHJpbmcKKyAgICBNQVgtQUNDRVNTICAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgZW50aXR5IHdoaWNoIGN1cnJlbnRseSBoYXMgdGhlICdvd25lcnNoaXAnIHJlcXVpcmVkIHRvCisgICAgICAgICAgICBpbnZva2UgYSB0ZXN0IG9uIHRoaXMgaW50ZXJmYWNlLiIKKyAgICA6Oj0geyBpZlRlc3RFbnRyeSA2IH0KKworLS0gRGVwcmVjYXRlZCBEZWZpbml0aW9ucyAtIEdyb3VwcworCisKK2lmR2VuZXJhbEdyb3VwICAgIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgeyBpZkRlc2NyLCBpZlR5cGUsIGlmU3BlZWQsIGlmUGh5c0FkZHJlc3MsCisgICAgICAgICAgICAgIGlmQWRtaW5TdGF0dXMsIGlmT3BlclN0YXR1cywgaWZMYXN0Q2hhbmdlLAorICAgICAgICAgICAgICBpZkxpbmtVcERvd25UcmFwRW5hYmxlLCBpZkNvbm5lY3RvclByZXNlbnQsCisgICAgICAgICAgICAgIGlmSGlnaFNwZWVkLCBpZk5hbWUgfQorICAgIFNUQVRVUyAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YKKyAgICAgICAgICAgIGlmR2VuZXJhbEluZm9ybWF0aW9uR3JvdXAuIgorICAgIDo6PSB7IGlmR3JvdXBzIDEgfQorCisKK2lmVGVzdEdyb3VwICAgIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgeyBpZlRlc3RJZCwgaWZUZXN0U3RhdHVzLCBpZlRlc3RUeXBlLAorICAgICAgICAgICAgICBpZlRlc3RSZXN1bHQsIGlmVGVzdENvZGUsIGlmVGVzdE93bmVyIH0KKyAgICBTVEFUVVMgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgY29sbGVjdGlvbiBvZiBvYmplY3RzIHByb3ZpZGluZyB0aGUgYWJpbGl0eSB0byBpbnZva2UKKyAgICAgICAgICAgIHRlc3RzIG9uIGFuIGludGVyZmFjZS4iCisgICAgOjo9IHsgaWZHcm91cHMgOCB9CisKKworaWZTdGFja0dyb3VwICAgIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgeyBpZlN0YWNrU3RhdHVzIH0KKyAgICBTVEFUVVMgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBwcmV2aW91cyBjb2xsZWN0aW9uIG9mIG9iamVjdHMgcHJvdmlkaW5nIGluZm9ybWF0aW9uIG9uCisgICAgICAgICAgICB0aGUgbGF5ZXJpbmcgb2YgTUlCLUlJIGludGVyZmFjZXMuIgorICAgIDo6PSB7IGlmR3JvdXBzIDkgfQorCisKK2lmT2xkT2JqZWN0c0dyb3VwICAgIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgeyBpZkluTlVjYXN0UGt0cywgaWZPdXROVWNhc3RQa3RzLAorICAgICAgICAgICAgICBpZk91dFFMZW4sIGlmU3BlY2lmaWMgfQorICAgIFNUQVRVUyAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisKKworICAgICAgICAgICAgIlRoZSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgZGVwcmVjYXRlZCBmcm9tIHRoZSBvcmlnaW5hbCBNSUItCisgICAgICAgICAgICBJSSBpbnRlcmZhY2VzIGdyb3VwLiIKKyAgICA6Oj0geyBpZkdyb3VwcyAxMiB9CisKKy0tIERlcHJlY2F0ZWQgRGVmaW5pdGlvbnMgLSBDb21wbGlhbmNlCisKK2lmQ29tcGxpYW5jZSBNT0RVTEUtQ09NUExJQU5DRQorICAgIFNUQVRVUyAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBjb21wbGlhbmNlIHN0YXRlbWVudCBkZWZpbmVkIGluIGEgcHJldmlvdXMgdmVyc2lvbiBvZgorICAgICAgICAgICAgdGhpcyBNSUIgbW9kdWxlLCBmb3IgU05NUCBlbnRpdGllcyB3aGljaCBoYXZlIG5ldHdvcmsKKyAgICAgICAgICAgIGludGVyZmFjZXMuIgorCisgICAgTU9EVUxFICAtLSB0aGlzIG1vZHVsZQorICAgICAgICBNQU5EQVRPUlktR1JPVVBTIHsgaWZHZW5lcmFsR3JvdXAsIGlmU3RhY2tHcm91cCB9CisKKyAgICAgICAgR1JPVVAgICAgICAgaWZGaXhlZExlbmd0aEdyb3VwCisgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhpcyBncm91cCBpcyBtYW5kYXRvcnkgZm9yIGFsbCBuZXR3b3JrIGludGVyZmFjZXMgd2hpY2gKKyAgICAgICAgICAgIGFyZSBjaGFyYWN0ZXItb3JpZW50ZWQgb3IgdHJhbnNtaXQgZGF0YSBpbiBmaXhlZC1sZW5ndGgKKyAgICAgICAgICAgIHRyYW5zbWlzc2lvbiB1bml0cy4iCisKKyAgICAgICAgR1JPVVAgICAgICAgaWZIQ0ZpeGVkTGVuZ3RoR3JvdXAKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBvbmx5IGZvciB0aG9zZSBuZXR3b3JrIGludGVyZmFjZXMKKyAgICAgICAgICAgIHdoaWNoIGFyZSBjaGFyYWN0ZXItb3JpZW50ZWQgb3IgdHJhbnNtaXQgZGF0YSBpbiBmaXhlZC0KKyAgICAgICAgICAgIGxlbmd0aCB0cmFuc21pc3Npb24gdW5pdHMsIGFuZCBmb3Igd2hpY2ggdGhlIHZhbHVlIG9mIHRoZQorICAgICAgICAgICAgY29ycmVzcG9uZGluZyBpbnN0YW5jZSBvZiBpZlNwZWVkIGlzIGdyZWF0ZXIgdGhhbiAyMCwwMDAsMDAwCisgICAgICAgICAgICBiaXRzL3NlY29uZC4iCisKKyAgICAgICAgR1JPVVAgICAgICAgaWZQYWNrZXRHcm91cAorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBhbGwgbmV0d29yayBpbnRlcmZhY2VzIHdoaWNoCisgICAgICAgICAgICBhcmUgcGFja2V0LW9yaWVudGVkLiIKKworICAgICAgICBHUk9VUCAgICAgICBpZkhDUGFja2V0R3JvdXAKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBvbmx5IGZvciB0aG9zZSBuZXR3b3JrIGludGVyZmFjZXMKKyAgICAgICAgICAgIHdoaWNoIGFyZSBwYWNrZXQtb3JpZW50ZWQgYW5kIGZvciB3aGljaCB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGluc3RhbmNlIG9mIGlmU3BlZWQgaXMgZ3JlYXRlciB0aGFuCisgICAgICAgICAgICA2NTAsMDAwLDAwMCBiaXRzL3NlY29uZC4iCisKKyAgICAgICAgR1JPVVAgICAgICAgaWZUZXN0R3JvdXAKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG9wdGlvbmFsLiAgTWVkaWEtc3BlY2lmaWMgTUlCcyB3aGljaCByZXF1aXJlCisgICAgICAgICAgICBpbnRlcmZhY2UgdGVzdHMgYXJlIHN0cm9uZ2x5IGVuY291cmFnZWQgdG8gdXNlIHRoaXMgZ3JvdXAKKyAgICAgICAgICAgIGZvciBpbnZva2luZyB0ZXN0cyBhbmQgcmVwb3J0aW5nIHJlc3VsdHMuICBBIG1lZGl1bSBzcGVjaWZpYworICAgICAgICAgICAgTUlCIHdoaWNoIGhhcyBtYW5kYXRvcnkgdGVzdHMgbWF5IG1ha2UgaW1wbGVtZW50YXRpb24gb2YKKworCisgICAgICAgICAgICB0aGlzIGdyb3VwIG1hbmRhdG9yeS4iCisKKyAgICAgICAgR1JPVVAgICAgICAgaWZSY3ZBZGRyZXNzR3JvdXAKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgYXBwbGljYWJpbGl0eSBvZiB0aGlzIGdyb3VwIE1VU1QgYmUgZGVmaW5lZCBieSB0aGUKKyAgICAgICAgICAgIG1lZGlhLXNwZWNpZmljIE1JQnMuICBNZWRpYS1zcGVjaWZpYyBNSUJzIG11c3QgZGVmaW5lIHRoZQorICAgICAgICAgICAgZXhhY3QgbWVhbmluZywgdXNlLCBhbmQgc2VtYW50aWNzIG9mIHRoZSBhZGRyZXNzZXMgaW4gdGhpcworICAgICAgICAgICAgZ3JvdXAuIgorCisgICAgICAgIE9CSkVDVCAgICAgIGlmTGlua1VwRG93blRyYXBFbmFibGUKKyAgICAgICAgTUlOLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiV3JpdGUgYWNjZXNzIGlzIG5vdCByZXF1aXJlZC4iCisKKyAgICAgICAgT0JKRUNUICAgICAgaWZQcm9taXNjdW91c01vZGUKKyAgICAgICAgTUlOLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiV3JpdGUgYWNjZXNzIGlzIG5vdCByZXF1aXJlZC4iCisKKyAgICAgICAgT0JKRUNUICAgICAgaWZTdGFja1N0YXR1cworICAgICAgICBTWU5UQVggICAgICBJTlRFR0VSIHsgYWN0aXZlKDEpIH0gLS0gc3Vic2V0IG9mIFJvd1N0YXR1cworICAgICAgICBNSU4tQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJXcml0ZSBhY2Nlc3MgaXMgbm90IHJlcXVpcmVkLCBhbmQgb25seSBvbmUgb2YgdGhlIHNpeAorICAgICAgICAgICAgZW51bWVyYXRlZCB2YWx1ZXMgZm9yIHRoZSBSb3dTdGF0dXMgdGV4dHVhbCBjb252ZW50aW9uIG5lZWQKKyAgICAgICAgICAgIGJlIHN1cHBvcnRlZCwgc3BlY2lmaWNhbGx5OiBhY3RpdmUoMSkuIgorCisgICAgICAgIE9CSkVDVCAgICAgICBpZkFkbWluU3RhdHVzCisgICAgICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsgdXAoMSksIGRvd24oMikgfQorICAgICAgICBNSU4tQUNDRVNTICAgcmVhZC1vbmx5CisgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiV3JpdGUgYWNjZXNzIGlzIG5vdCByZXF1aXJlZCwgbm9yIGlzIHN1cHBvcnQgZm9yIHRoZSB2YWx1ZQorICAgICAgICAgICAgdGVzdGluZygzKS4iCisgICAgOjo9IHsgaWZDb21wbGlhbmNlcyAxIH0KKworaWZDb21wbGlhbmNlMiBNT0RVTEUtQ09NUExJQU5DRQorICAgIFNUQVRVUyAgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgY29tcGxpYW5jZSBzdGF0ZW1lbnQgZGVmaW5lZCBpbiBhIHByZXZpb3VzIHZlcnNpb24gb2YKKyAgICAgICAgICAgIHRoaXMgTUlCIG1vZHVsZSwgZm9yIFNOTVAgZW50aXRpZXMgd2hpY2ggaGF2ZSBuZXR3b3JrCisgICAgICAgICAgICBpbnRlcmZhY2VzLiIKKworICAgIE1PRFVMRSAgLS0gdGhpcyBtb2R1bGUKKyAgICAgICAgTUFOREFUT1JZLUdST1VQUyB7IGlmR2VuZXJhbEluZm9ybWF0aW9uR3JvdXAsIGlmU3RhY2tHcm91cDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpZkNvdW50ZXJEaXNjb250aW51aXR5R3JvdXAgfQorCisgICAgICAgIEdST1VQICAgICAgIGlmRml4ZWRMZW5ndGhHcm91cAorICAgICAgICBERVNDUklQVElPTgorCisKKyAgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgYWxsIG5ldHdvcmsgaW50ZXJmYWNlcyB3aGljaAorICAgICAgICAgICAgYXJlIGNoYXJhY3Rlci1vcmllbnRlZCBvciB0cmFuc21pdCBkYXRhIGluIGZpeGVkLWxlbmd0aAorICAgICAgICAgICAgdHJhbnNtaXNzaW9uIHVuaXRzLiIKKworICAgICAgICBHUk9VUCAgICAgICBpZkhDRml4ZWRMZW5ndGhHcm91cAorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IG9ubHkgZm9yIHRob3NlIG5ldHdvcmsgaW50ZXJmYWNlcworICAgICAgICAgICAgd2hpY2ggYXJlIGNoYXJhY3Rlci1vcmllbnRlZCBvciB0cmFuc21pdCBkYXRhIGluIGZpeGVkLQorICAgICAgICAgICAgbGVuZ3RoIHRyYW5zbWlzc2lvbiB1bml0cywgYW5kIGZvciB3aGljaCB0aGUgdmFsdWUgb2YgdGhlCisgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGluc3RhbmNlIG9mIGlmU3BlZWQgaXMgZ3JlYXRlciB0aGFuIDIwLDAwMCwwMDAKKyAgICAgICAgICAgIGJpdHMvc2Vjb25kLiIKKworICAgICAgICBHUk9VUCAgICAgICBpZlBhY2tldEdyb3VwCisgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhpcyBncm91cCBpcyBtYW5kYXRvcnkgZm9yIGFsbCBuZXR3b3JrIGludGVyZmFjZXMgd2hpY2gKKyAgICAgICAgICAgIGFyZSBwYWNrZXQtb3JpZW50ZWQuIgorCisgICAgICAgIEdST1VQICAgICAgIGlmSENQYWNrZXRHcm91cAorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IG9ubHkgZm9yIHRob3NlIG5ldHdvcmsgaW50ZXJmYWNlcworICAgICAgICAgICAgd2hpY2ggYXJlIHBhY2tldC1vcmllbnRlZCBhbmQgZm9yIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgaW5zdGFuY2Ugb2YgaWZTcGVlZCBpcyBncmVhdGVyIHRoYW4KKyAgICAgICAgICAgIDY1MCwwMDAsMDAwIGJpdHMvc2Vjb25kLiIKKworICAgICAgICBHUk9VUCAgICAgICBpZlJjdkFkZHJlc3NHcm91cAorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBhcHBsaWNhYmlsaXR5IG9mIHRoaXMgZ3JvdXAgTVVTVCBiZSBkZWZpbmVkIGJ5IHRoZQorICAgICAgICAgICAgbWVkaWEtc3BlY2lmaWMgTUlCcy4gIE1lZGlhLXNwZWNpZmljIE1JQnMgbXVzdCBkZWZpbmUgdGhlCisgICAgICAgICAgICBleGFjdCBtZWFuaW5nLCB1c2UsIGFuZCBzZW1hbnRpY3Mgb2YgdGhlIGFkZHJlc3NlcyBpbiB0aGlzCisgICAgICAgICAgICBncm91cC4iCisKKyAgICAgICAgT0JKRUNUICAgICAgaWZMaW5rVXBEb3duVHJhcEVuYWJsZQorICAgICAgICBNSU4tQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJXcml0ZSBhY2Nlc3MgaXMgbm90IHJlcXVpcmVkLiIKKworICAgICAgICBPQkpFQ1QgICAgICBpZlByb21pc2N1b3VzTW9kZQorICAgICAgICBNSU4tQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJXcml0ZSBhY2Nlc3MgaXMgbm90IHJlcXVpcmVkLiIKKworICAgICAgICBPQkpFQ1QgICAgICBpZlN0YWNrU3RhdHVzCisgICAgICAgIFNZTlRBWCAgICAgIElOVEVHRVIgeyBhY3RpdmUoMSkgfSAtLSBzdWJzZXQgb2YgUm93U3RhdHVzCisgICAgICAgIE1JTi1BQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIldyaXRlIGFjY2VzcyBpcyBub3QgcmVxdWlyZWQsIGFuZCBvbmx5IG9uZSBvZiB0aGUgc2l4CisgICAgICAgICAgICBlbnVtZXJhdGVkIHZhbHVlcyBmb3IgdGhlIFJvd1N0YXR1cyB0ZXh0dWFsIGNvbnZlbnRpb24gbmVlZAorICAgICAgICAgICAgYmUgc3VwcG9ydGVkLCBzcGVjaWZpY2FsbHk6IGFjdGl2ZSgxKS4iCisKKworICAgICAgICBPQkpFQ1QgICAgICAgaWZBZG1pblN0YXR1cworICAgICAgICBTWU5UQVggICAgICAgSU5URUdFUiB7IHVwKDEpLCBkb3duKDIpIH0KKyAgICAgICAgTUlOLUFDQ0VTUyAgIHJlYWQtb25seQorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIldyaXRlIGFjY2VzcyBpcyBub3QgcmVxdWlyZWQsIG5vciBpcyBzdXBwb3J0IGZvciB0aGUgdmFsdWUKKyAgICAgICAgICAgIHRlc3RpbmcoMykuIgorCisgICAgICAgIE9CSkVDVCAgICAgICBpZkFsaWFzCisgICAgICAgIE1JTi1BQ0NFU1MgICByZWFkLW9ubHkKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJXcml0ZSBhY2Nlc3MgaXMgbm90IHJlcXVpcmVkLiIKKworICAgIDo6PSB7IGlmQ29tcGxpYW5jZXMgMiB9CisKK0VORApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lORVQtQUREUkVTUy1NSUIgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvSU5FVC1BRERSRVNTLU1JQgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTliOGQyCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lORVQtQUREUkVTUy1NSUIKQEAgLTAsMCArMSw0MjEgQEAKK0lORVQtQUREUkVTUy1NSUIgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKK0lNUE9SVFMKKyAgICBNT0RVTEUtSURFTlRJVFksIG1pYi0yLCBVbnNpZ25lZDMyIEZST00gU05NUHYyLVNNSQorICAgIFRFWFRVQUwtQ09OVkVOVElPTiAgICAgICAgICAgICAgICAgRlJPTSBTTk1QdjItVEM7CisKK2luZXRBZGRyZXNzTUlCIE1PRFVMRS1JREVOVElUWQorICAgIExBU1QtVVBEQVRFRCAiMjAwNTAyMDQwMDAwWiIKKyAgICBPUkdBTklaQVRJT04KKyAgICAgICAgIklFVEYgT3BlcmF0aW9ucyBhbmQgTWFuYWdlbWVudCBBcmVhIgorICAgIENPTlRBQ1QtSU5GTworICAgICAgICAiSnVlcmdlbiBTY2hvZW53YWVsZGVyIChFZGl0b3IpCisgICAgICAgICBJbnRlcm5hdGlvbmFsIFVuaXZlcnNpdHkgQnJlbWVuCisgICAgICAgICBQLk8uIEJveCA3NTAgNTYxCisgICAgICAgICAyODcyNSBCcmVtZW4sIEdlcm1hbnkKKworICAgICAgICAgUGhvbmU6ICs0OSA0MjEgMjAwLTM1ODcKKyAgICAgICAgIEVNYWlsOiBqLnNjaG9lbndhZWxkZXJAaXUtYnJlbWVuLmRlCisKKyAgICAgICAgIFNlbmQgY29tbWVudHMgdG8gPGlldGZtaWJzQG9wcy5pZXRmLm9yZz4uIgorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJUaGlzIE1JQiBtb2R1bGUgZGVmaW5lcyB0ZXh0dWFsIGNvbnZlbnRpb25zIGZvcgorICAgICAgICAgcmVwcmVzZW50aW5nIEludGVybmV0IGFkZHJlc3Nlcy4gIEFuIEludGVybmV0CisgICAgICAgICBhZGRyZXNzIGNhbiBiZSBhbiBJUHY0IGFkZHJlc3MsIGFuIElQdjYgYWRkcmVzcywKKyAgICAgICAgIG9yIGEgRE5TIGRvbWFpbiBuYW1lLiAgVGhpcyBtb2R1bGUgYWxzbyBkZWZpbmVzCisgICAgICAgICB0ZXh0dWFsIGNvbnZlbnRpb25zIGZvciBJbnRlcm5ldCBwb3J0IG51bWJlcnMsCisgICAgICAgICBhdXRvbm9tb3VzIHN5c3RlbSBudW1iZXJzLCBhbmQgdGhlIGxlbmd0aCBvZiBhbgorICAgICAgICAgSW50ZXJuZXQgYWRkcmVzcyBwcmVmaXguCisKKyAgICAgICAgIENvcHlyaWdodCAoQykgVGhlIEludGVybmV0IFNvY2lldHkgKDIwMDUpLiAgVGhpcyB2ZXJzaW9uCisgICAgICAgICBvZiB0aGlzIE1JQiBtb2R1bGUgaXMgcGFydCBvZiBSRkMgNDAwMSwgc2VlIHRoZSBSRkMKKyAgICAgICAgIGl0c2VsZiBmb3IgZnVsbCBsZWdhbCBub3RpY2VzLiIKKyAgICBSRVZJU0lPTiAgICAgIjIwMDUwMjA0MDAwMFoiCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlRoaXJkIHZlcnNpb24sIHB1Ymxpc2hlZCBhcyBSRkMgNDAwMS4gIFRoaXMgcmV2aXNpb24KKyAgICAgICAgIGludHJvZHVjZXMgdGhlIEluZXRab25lSW5kZXgsIEluZXRTY29wZVR5cGUsIGFuZAorICAgICAgICAgSW5ldFZlcnNpb24gdGV4dHVhbCBjb252ZW50aW9ucy4iCisgICAgUkVWSVNJT04gICAgICIyMDAyMDUwOTAwMDBaIgorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJTZWNvbmQgdmVyc2lvbiwgcHVibGlzaGVkIGFzIFJGQyAzMjkxLiAgVGhpcworICAgICAgICAgcmV2aXNpb24gY29udGFpbnMgc2V2ZXJhbCBjbGFyaWZpY2F0aW9ucyBhbmQKKyAgICAgICAgIGludHJvZHVjZXMgc2V2ZXJhbCBuZXcgdGV4dHVhbCBjb252ZW50aW9uczoKKyAgICAgICAgIEluZXRBZGRyZXNzUHJlZml4TGVuZ3RoLCBJbmV0UG9ydE51bWJlciwKKyAgICAgICAgIEluZXRBdXRvbm9tb3VzU3lzdGVtTnVtYmVyLCBJbmV0QWRkcmVzc0lQdjR6LAorICAgICAgICAgYW5kIEluZXRBZGRyZXNzSVB2NnouIgorICAgIFJFVklTSU9OICAgICAiMjAwMDA2MDgwMDAwWiIKKworCisKKyAgICBERVNDUklQVElPTgorICAgICAgICAiSW5pdGlhbCB2ZXJzaW9uLCBwdWJsaXNoZWQgYXMgUkZDIDI4NTEuIgorICAgIDo6PSB7IG1pYi0yIDc2IH0KKworSW5ldEFkZHJlc3NUeXBlIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIkEgdmFsdWUgdGhhdCByZXByZXNlbnRzIGEgdHlwZSBvZiBJbnRlcm5ldCBhZGRyZXNzLgorCisgICAgICAgICB1bmtub3duKDApICBBbiB1bmtub3duIGFkZHJlc3MgdHlwZS4gIFRoaXMgdmFsdWUgTVVTVAorICAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCBpZiB0aGUgdmFsdWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgICAgICAgICAgIEluZXRBZGRyZXNzIG9iamVjdCBpcyBhIHplcm8tbGVuZ3RoIHN0cmluZy4KKyAgICAgICAgICAgICAgICAgICAgIEl0IG1heSBhbHNvIGJlIHVzZWQgdG8gaW5kaWNhdGUgYW4gSVAgYWRkcmVzcworICAgICAgICAgICAgICAgICAgICAgdGhhdCBpcyBub3QgaW4gb25lIG9mIHRoZSBmb3JtYXRzIGRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgIGJlbG93LgorCisgICAgICAgICBpcHY0KDEpICAgICBBbiBJUHY0IGFkZHJlc3MgYXMgZGVmaW5lZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgICAgIEluZXRBZGRyZXNzSVB2NCB0ZXh0dWFsIGNvbnZlbnRpb24uCisKKyAgICAgICAgIGlwdjYoMikgICAgIEFuIElQdjYgYWRkcmVzcyBhcyBkZWZpbmVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3NJUHY2IHRleHR1YWwgY29udmVudGlvbi4KKworICAgICAgICAgaXB2NHooMykgICAgQSBub24tZ2xvYmFsIElQdjQgYWRkcmVzcyBpbmNsdWRpbmcgYSB6b25lCisgICAgICAgICAgICAgICAgICAgICBpbmRleCBhcyBkZWZpbmVkIGJ5IHRoZSBJbmV0QWRkcmVzc0lQdjR6CisgICAgICAgICAgICAgICAgICAgICB0ZXh0dWFsIGNvbnZlbnRpb24uCisKKyAgICAgICAgIGlwdjZ6KDQpICAgIEEgbm9uLWdsb2JhbCBJUHY2IGFkZHJlc3MgaW5jbHVkaW5nIGEgem9uZQorICAgICAgICAgICAgICAgICAgICAgaW5kZXggYXMgZGVmaW5lZCBieSB0aGUgSW5ldEFkZHJlc3NJUHY2egorICAgICAgICAgICAgICAgICAgICAgdGV4dHVhbCBjb252ZW50aW9uLgorCisgICAgICAgICBkbnMoMTYpICAgICBBIEROUyBkb21haW4gbmFtZSBhcyBkZWZpbmVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgICAgSW5ldEFkZHJlc3NETlMgdGV4dHVhbCBjb252ZW50aW9uLgorCisgICAgICAgICBFYWNoIGRlZmluaXRpb24gb2YgYSBjb25jcmV0ZSBJbmV0QWRkcmVzc1R5cGUgdmFsdWUgbXVzdCBiZQorICAgICAgICAgYWNjb21wYW5pZWQgYnkgYSBkZWZpbml0aW9uIG9mIGEgdGV4dHVhbCBjb252ZW50aW9uIGZvciB1c2UKKyAgICAgICAgIHdpdGggdGhhdCBJbmV0QWRkcmVzc1R5cGUuCisKKyAgICAgICAgIFRvIHN1cHBvcnQgZnV0dXJlIGV4dGVuc2lvbnMsIHRoZSBJbmV0QWRkcmVzc1R5cGUgdGV4dHVhbAorICAgICAgICAgY29udmVudGlvbiBTSE9VTEQgTk9UIGJlIHN1Yi10eXBlZCBpbiBvYmplY3QgdHlwZSBkZWZpbml0aW9ucy4KKyAgICAgICAgIEl0IE1BWSBiZSBzdWItdHlwZWQgaW4gY29tcGxpYW5jZSBzdGF0ZW1lbnRzIGluIG9yZGVyIHRvCisgICAgICAgICByZXF1aXJlIG9ubHkgYSBzdWJzZXQgb2YgdGhlc2UgYWRkcmVzcyB0eXBlcyBmb3IgYSBjb21wbGlhbnQKKyAgICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAgICBJbXBsZW1lbnRhdGlvbnMgbXVzdCBlbnN1cmUgdGhhdCBJbmV0QWRkcmVzc1R5cGUgb2JqZWN0cworICAgICAgICAgYW5kIGFueSBkZXBlbmRlbnQgb2JqZWN0cyAoZS5nLiwgSW5ldEFkZHJlc3Mgb2JqZWN0cykgYXJlCisgICAgICAgICBjb25zaXN0ZW50LiAgQW4gaW5jb25zaXN0ZW50VmFsdWUgZXJyb3IgbXVzdCBiZSBnZW5lcmF0ZWQKKyAgICAgICAgIGlmIGFuIGF0dGVtcHQgdG8gY2hhbmdlIGFuIEluZXRBZGRyZXNzVHlwZSBvYmplY3Qgd291bGQsCisgICAgICAgICBmb3IgZXhhbXBsZSwgbGVhZCB0byBhbiB1bmRlZmluZWQgSW5ldEFkZHJlc3MgdmFsdWUuICBJbgorCisKKworICAgICAgICAgcGFydGljdWxhciwgSW5ldEFkZHJlc3NUeXBlL0luZXRBZGRyZXNzIHBhaXJzIG11c3QgYmUKKyAgICAgICAgIGNoYW5nZWQgdG9nZXRoZXIgaWYgdGhlIGFkZHJlc3MgdHlwZSBjaGFuZ2VzIChlLmcuLCBmcm9tCisgICAgICAgICBpcHY2KDIpIHRvIGlwdjQoMSkpLiIKKyAgICBTWU5UQVggICAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgICB1bmtub3duKDApLAorICAgICAgICAgICAgICAgICAgICAgaXB2NCgxKSwKKyAgICAgICAgICAgICAgICAgICAgIGlwdjYoMiksCisgICAgICAgICAgICAgICAgICAgICBpcHY0eigzKSwKKyAgICAgICAgICAgICAgICAgICAgIGlwdjZ6KDQpLAorICAgICAgICAgICAgICAgICAgICAgZG5zKDE2KQorICAgICAgICAgICAgICAgICB9CisKK0luZXRBZGRyZXNzIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIkRlbm90ZXMgYSBnZW5lcmljIEludGVybmV0IGFkZHJlc3MuCisKKyAgICAgICAgIEFuIEluZXRBZGRyZXNzIHZhbHVlIGlzIGFsd2F5cyBpbnRlcnByZXRlZCB3aXRoaW4gdGhlIGNvbnRleHQKKyAgICAgICAgIG9mIGFuIEluZXRBZGRyZXNzVHlwZSB2YWx1ZS4gIEV2ZXJ5IHVzYWdlIG9mIHRoZSBJbmV0QWRkcmVzcworICAgICAgICAgdGV4dHVhbCBjb252ZW50aW9uIGlzIHJlcXVpcmVkIHRvIHNwZWNpZnkgdGhlIEluZXRBZGRyZXNzVHlwZQorICAgICAgICAgb2JqZWN0IHRoYXQgcHJvdmlkZXMgdGhlIGNvbnRleHQuICBJdCBpcyBzdWdnZXN0ZWQgdGhhdCB0aGUKKyAgICAgICAgIEluZXRBZGRyZXNzVHlwZSBvYmplY3QgYmUgbG9naWNhbGx5IHJlZ2lzdGVyZWQgYmVmb3JlIHRoZQorICAgICAgICAgb2JqZWN0KHMpIHRoYXQgdXNlIHRoZSBJbmV0QWRkcmVzcyB0ZXh0dWFsIGNvbnZlbnRpb24sIGlmCisgICAgICAgICB0aGV5IGFwcGVhciBpbiB0aGUgc2FtZSBsb2dpY2FsIHJvdy4KKworICAgICAgICAgVGhlIHZhbHVlIG9mIGFuIEluZXRBZGRyZXNzIG9iamVjdCBtdXN0IGFsd2F5cyBiZQorICAgICAgICAgY29uc2lzdGVudCB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgYXNzb2NpYXRlZCBJbmV0QWRkcmVzc1R5cGUKKyAgICAgICAgIG9iamVjdC4gIEF0dGVtcHRzIHRvIHNldCBhbiBJbmV0QWRkcmVzcyBvYmplY3QgdG8gYSB2YWx1ZQorICAgICAgICAgaW5jb25zaXN0ZW50IHdpdGggdGhlIGFzc29jaWF0ZWQgSW5ldEFkZHJlc3NUeXBlCisgICAgICAgICBtdXN0IGZhaWwgd2l0aCBhbiBpbmNvbnNpc3RlbnRWYWx1ZSBlcnJvci4KKworICAgICAgICAgV2hlbiB0aGlzIHRleHR1YWwgY29udmVudGlvbiBpcyB1c2VkIGFzIHRoZSBzeW50YXggb2YgYW4KKyAgICAgICAgIGluZGV4IG9iamVjdCwgdGhlcmUgbWF5IGJlIGlzc3VlcyB3aXRoIHRoZSBsaW1pdCBvZiAxMjgKKyAgICAgICAgIHN1Yi1pZGVudGlmaWVycyBzcGVjaWZpZWQgaW4gU01JdjIsIFNURCA1OC4gIEluIHRoaXMgY2FzZSwKKyAgICAgICAgIHRoZSBvYmplY3QgZGVmaW5pdGlvbiBNVVNUIGluY2x1ZGUgYSAnU0laRScgY2xhdXNlIHRvCisgICAgICAgICBsaW1pdCB0aGUgbnVtYmVyIG9mIHBvdGVudGlhbCBpbnN0YW5jZSBzdWItaWRlbnRpZmllcnM7CisgICAgICAgICBvdGhlcndpc2UgdGhlIGFwcGxpY2FibGUgY29uc3RyYWludHMgTVVTVCBiZSBzdGF0ZWQgaW4KKyAgICAgICAgIHRoZSBhcHByb3ByaWF0ZSBjb25jZXB0dWFsIHJvdyBERVNDUklQVElPTiBjbGF1c2VzLCBvcgorICAgICAgICAgaW4gdGhlIHN1cnJvdW5kaW5nIGRvY3VtZW50YXRpb24gaWYgdGhlcmUgaXMgbm8gc2luZ2xlCisgICAgICAgICBERVNDUklQVElPTiBjbGF1c2UgdGhhdCBpcyBhcHByb3ByaWF0ZS4iCisgICAgU1lOVEFYICAgICAgIE9DVEVUIFNUUklORyAoU0laRSAoMC4uMjU1KSkKKworSW5ldEFkZHJlc3NJUHY0IDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBESVNQTEFZLUhJTlQgIjFkLjFkLjFkLjFkIgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlJlcHJlc2VudHMgYW4gSVB2NCBuZXR3b3JrIGFkZHJlc3M6CisKKworCisKKyAgICAgICAgICAgT2N0ZXRzICAgQ29udGVudHMgICAgICAgICBFbmNvZGluZworICAgICAgICAgICAgMS00ICAgICBJUHY0IGFkZHJlc3MgICAgIG5ldHdvcmstYnl0ZSBvcmRlcgorCisgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBJbmV0QWRkcmVzc1R5cGUgdmFsdWUgaXMgaXB2NCgxKS4KKworICAgICAgICAgVGhpcyB0ZXh0dWFsIGNvbnZlbnRpb24gU0hPVUxEIE5PVCBiZSB1c2VkIGRpcmVjdGx5IGluIG9iamVjdAorICAgICAgICAgZGVmaW5pdGlvbnMsIGFzIGl0IHJlc3RyaWN0cyBhZGRyZXNzZXMgdG8gYSBzcGVjaWZpYyBmb3JtYXQuCisgICAgICAgICBIb3dldmVyLCBpZiBpdCBpcyB1c2VkLCBpdCBNQVkgYmUgdXNlZCBlaXRoZXIgb24gaXRzIG93biBvciBpbgorICAgICAgICAgY29uanVuY3Rpb24gd2l0aCBJbmV0QWRkcmVzc1R5cGUsIGFzIGEgcGFpci4iCisgICAgU1lOVEFYICAgICAgIE9DVEVUIFNUUklORyAoU0laRSAoNCkpCisKK0luZXRBZGRyZXNzSVB2NiA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgRElTUExBWS1ISU5UICIyeDoyeDoyeDoyeDoyeDoyeDoyeDoyeCIKKyAgICBTVEFUVVMgICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJSZXByZXNlbnRzIGFuIElQdjYgbmV0d29yayBhZGRyZXNzOgorCisgICAgICAgICAgIE9jdGV0cyAgIENvbnRlbnRzICAgICAgICAgRW5jb2RpbmcKKyAgICAgICAgICAgIDEtMTYgICAgSVB2NiBhZGRyZXNzICAgICBuZXR3b3JrLWJ5dGUgb3JkZXIKKworICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgSW5ldEFkZHJlc3NUeXBlIHZhbHVlIGlzIGlwdjYoMikuCisKKyAgICAgICAgIFRoaXMgdGV4dHVhbCBjb252ZW50aW9uIFNIT1VMRCBOT1QgYmUgdXNlZCBkaXJlY3RseSBpbiBvYmplY3QKKyAgICAgICAgIGRlZmluaXRpb25zLCBhcyBpdCByZXN0cmljdHMgYWRkcmVzc2VzIHRvIGEgc3BlY2lmaWMgZm9ybWF0LgorICAgICAgICAgSG93ZXZlciwgaWYgaXQgaXMgdXNlZCwgaXQgTUFZIGJlIHVzZWQgZWl0aGVyIG9uIGl0cyBvd24gb3IgaW4KKyAgICAgICAgIGNvbmp1bmN0aW9uIHdpdGggSW5ldEFkZHJlc3NUeXBlLCBhcyBhIHBhaXIuIgorICAgIFNZTlRBWCAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDE2KSkKKworSW5ldEFkZHJlc3NJUHY0eiA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgRElTUExBWS1ISU5UICIxZC4xZC4xZC4xZCU0ZCIKKyAgICBTVEFUVVMgICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICJSZXByZXNlbnRzIGEgbm9uLWdsb2JhbCBJUHY0IG5ldHdvcmsgYWRkcmVzcywgdG9nZXRoZXIKKyAgICAgICAgIHdpdGggaXRzIHpvbmUgaW5kZXg6CisKKyAgICAgICAgICAgT2N0ZXRzICAgQ29udGVudHMgICAgICAgICBFbmNvZGluZworICAgICAgICAgICAgMS00ICAgICBJUHY0IGFkZHJlc3MgICAgIG5ldHdvcmstYnl0ZSBvcmRlcgorICAgICAgICAgICAgNS04ICAgICB6b25lIGluZGV4ICAgICAgIG5ldHdvcmstYnl0ZSBvcmRlcgorCisgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBJbmV0QWRkcmVzc1R5cGUgdmFsdWUgaXMgaXB2NHooMykuCisKKyAgICAgICAgIFRoZSB6b25lIGluZGV4IChieXRlcyA1LTgpIGlzIHVzZWQgdG8gZGlzYW1iaWd1YXRlIGlkZW50aWNhbAorICAgICAgICAgYWRkcmVzcyB2YWx1ZXMgb24gbm9kZXMgdGhhdCBoYXZlIGludGVyZmFjZXMgYXR0YWNoZWQgdG8KKyAgICAgICAgIGRpZmZlcmVudCB6b25lcyBvZiB0aGUgc2FtZSBzY29wZS4gIFRoZSB6b25lIGluZGV4IG1heSBjb250YWluCisgICAgICAgICB0aGUgc3BlY2lhbCB2YWx1ZSAwLCB3aGljaCByZWZlcnMgdG8gdGhlIGRlZmF1bHQgem9uZSBmb3IgZWFjaAorICAgICAgICAgc2NvcGUuCisKKyAgICAgICAgIFRoaXMgdGV4dHVhbCBjb252ZW50aW9uIFNIT1VMRCBOT1QgYmUgdXNlZCBkaXJlY3RseSBpbiBvYmplY3QKKworCisKKyAgICAgICAgIGRlZmluaXRpb25zLCBhcyBpdCByZXN0cmljdHMgYWRkcmVzc2VzIHRvIGEgc3BlY2lmaWMgZm9ybWF0LgorICAgICAgICAgSG93ZXZlciwgaWYgaXQgaXMgdXNlZCwgaXQgTUFZIGJlIHVzZWQgZWl0aGVyIG9uIGl0cyBvd24gb3IgaW4KKyAgICAgICAgIGNvbmp1bmN0aW9uIHdpdGggSW5ldEFkZHJlc3NUeXBlLCBhcyBhIHBhaXIuIgorICAgIFNZTlRBWCAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDgpKQorCitJbmV0QWRkcmVzc0lQdjZ6IDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBESVNQTEFZLUhJTlQgIjJ4OjJ4OjJ4OjJ4OjJ4OjJ4OjJ4OjJ4JTRkIgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlJlcHJlc2VudHMgYSBub24tZ2xvYmFsIElQdjYgbmV0d29yayBhZGRyZXNzLCB0b2dldGhlcgorICAgICAgICAgd2l0aCBpdHMgem9uZSBpbmRleDoKKworICAgICAgICAgICBPY3RldHMgICBDb250ZW50cyAgICAgICAgIEVuY29kaW5nCisgICAgICAgICAgICAxLTE2ICAgIElQdjYgYWRkcmVzcyAgICAgbmV0d29yay1ieXRlIG9yZGVyCisgICAgICAgICAgIDE3LTIwICAgIHpvbmUgaW5kZXggICAgICAgbmV0d29yay1ieXRlIG9yZGVyCisKKyAgICAgICAgIFRoZSBjb3JyZXNwb25kaW5nIEluZXRBZGRyZXNzVHlwZSB2YWx1ZSBpcyBpcHY2eig0KS4KKworICAgICAgICAgVGhlIHpvbmUgaW5kZXggKGJ5dGVzIDE3LTIwKSBpcyB1c2VkIHRvIGRpc2FtYmlndWF0ZQorICAgICAgICAgaWRlbnRpY2FsIGFkZHJlc3MgdmFsdWVzIG9uIG5vZGVzIHRoYXQgaGF2ZSBpbnRlcmZhY2VzCisgICAgICAgICBhdHRhY2hlZCB0byBkaWZmZXJlbnQgem9uZXMgb2YgdGhlIHNhbWUgc2NvcGUuICBUaGUgem9uZSBpbmRleAorICAgICAgICAgbWF5IGNvbnRhaW4gdGhlIHNwZWNpYWwgdmFsdWUgMCwgd2hpY2ggcmVmZXJzIHRvIHRoZSBkZWZhdWx0CisgICAgICAgICB6b25lIGZvciBlYWNoIHNjb3BlLgorCisgICAgICAgICBUaGlzIHRleHR1YWwgY29udmVudGlvbiBTSE9VTEQgTk9UIGJlIHVzZWQgZGlyZWN0bHkgaW4gb2JqZWN0CisgICAgICAgICBkZWZpbml0aW9ucywgYXMgaXQgcmVzdHJpY3RzIGFkZHJlc3NlcyB0byBhIHNwZWNpZmljIGZvcm1hdC4KKyAgICAgICAgIEhvd2V2ZXIsIGlmIGl0IGlzIHVzZWQsIGl0IE1BWSBiZSB1c2VkIGVpdGhlciBvbiBpdHMgb3duIG9yIGluCisgICAgICAgICBjb25qdW5jdGlvbiB3aXRoIEluZXRBZGRyZXNzVHlwZSwgYXMgYSBwYWlyLiIKKyAgICBTWU5UQVggICAgICAgT0NURVQgU1RSSU5HIChTSVpFICgyMCkpCisKK0luZXRBZGRyZXNzRE5TIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBESVNQTEFZLUhJTlQgIjI1NWEiCisgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAiUmVwcmVzZW50cyBhIEROUyBkb21haW4gbmFtZS4gIFRoZSBuYW1lIFNIT1VMRCBiZSBmdWxseQorICAgICAgICAgcXVhbGlmaWVkIHdoZW5ldmVyIHBvc3NpYmxlLgorCisgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyBJbmV0QWRkcmVzc1R5cGUgaXMgZG5zKDE2KS4KKworICAgICAgICAgVGhlIERFU0NSSVBUSU9OIGNsYXVzZSBvZiBJbmV0QWRkcmVzcyBvYmplY3RzIHRoYXQgbWF5IGhhdmUKKyAgICAgICAgIEluZXRBZGRyZXNzRE5TIHZhbHVlcyBNVVNUIGZ1bGx5IGRlc2NyaWJlIGhvdyAoYW5kIHdoZW4pCisgICAgICAgICB0aGVzZSBuYW1lcyBhcmUgdG8gYmUgcmVzb2x2ZWQgdG8gSVAgYWRkcmVzc2VzLgorCisgICAgICAgICBUaGUgcmVzb2x1dGlvbiBvZiBhbiBJbmV0QWRkcmVzc0ROUyB2YWx1ZSBtYXkgcmVxdWlyZSB0bworICAgICAgICAgcXVlcnkgbXVsdGlwbGUgRE5TIHJlY29yZHMgKGUuZy4sIEEgZm9yIElQdjQgYW5kIEFBQUEgZm9yCisgICAgICAgICBJUHY2KS4gIFRoZSBvcmRlciBvZiB0aGUgcmVzb2x1dGlvbiBwcm9jZXNzIGFuZCB3aGljaCBETlMKKyAgICAgICAgIHJlY29yZCB0YWtlcyBwcmVjZWRlbmNlIGRlcGVuZHMgb24gdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlCisgICAgICAgICByZXNvbHZlci4KKworCisKKyAgICAgICAgIFRoaXMgdGV4dHVhbCBjb252ZW50aW9uIFNIT1VMRCBOT1QgYmUgdXNlZCBkaXJlY3RseSBpbiBvYmplY3QKKyAgICAgICAgIGRlZmluaXRpb25zLCBhcyBpdCByZXN0cmljdHMgYWRkcmVzc2VzIHRvIGEgc3BlY2lmaWMgZm9ybWF0LgorICAgICAgICAgSG93ZXZlciwgaWYgaXQgaXMgdXNlZCwgaXQgTUFZIGJlIHVzZWQgZWl0aGVyIG9uIGl0cyBvd24gb3IgaW4KKyAgICAgICAgIGNvbmp1bmN0aW9uIHdpdGggSW5ldEFkZHJlc3NUeXBlLCBhcyBhIHBhaXIuIgorICAgIFNZTlRBWCAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDEuLjI1NSkpCisKK0luZXRBZGRyZXNzUHJlZml4TGVuZ3RoIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBESVNQTEFZLUhJTlQgImQiCisgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAiRGVub3RlcyB0aGUgbGVuZ3RoIG9mIGEgZ2VuZXJpYyBJbnRlcm5ldCBuZXR3b3JrIGFkZHJlc3MKKyAgICAgICAgIHByZWZpeC4gIEEgdmFsdWUgb2YgbiBjb3JyZXNwb25kcyB0byBhbiBJUCBhZGRyZXNzIG1hc2sKKyAgICAgICAgIHRoYXQgaGFzIG4gY29udGlndW91cyAxLWJpdHMgZnJvbSB0aGUgbW9zdCBzaWduaWZpY2FudAorICAgICAgICAgYml0IChNU0IpLCB3aXRoIGFsbCBvdGhlciBiaXRzIHNldCB0byAwLgorCisgICAgICAgICBBbiBJbmV0QWRkcmVzc1ByZWZpeExlbmd0aCB2YWx1ZSBpcyBhbHdheXMgaW50ZXJwcmV0ZWQgd2l0aGluCisgICAgICAgICB0aGUgY29udGV4dCBvZiBhbiBJbmV0QWRkcmVzc1R5cGUgdmFsdWUuICBFdmVyeSB1c2FnZSBvZiB0aGUKKyAgICAgICAgIEluZXRBZGRyZXNzUHJlZml4TGVuZ3RoIHRleHR1YWwgY29udmVudGlvbiBpcyByZXF1aXJlZCB0bworICAgICAgICAgc3BlY2lmeSB0aGUgSW5ldEFkZHJlc3NUeXBlIG9iamVjdCB0aGF0IHByb3ZpZGVzIHRoZQorICAgICAgICAgY29udGV4dC4gIEl0IGlzIHN1Z2dlc3RlZCB0aGF0IHRoZSBJbmV0QWRkcmVzc1R5cGUgb2JqZWN0IGJlCisgICAgICAgICBsb2dpY2FsbHkgcmVnaXN0ZXJlZCBiZWZvcmUgdGhlIG9iamVjdChzKSB0aGF0IHVzZSB0aGUKKyAgICAgICAgIEluZXRBZGRyZXNzUHJlZml4TGVuZ3RoIHRleHR1YWwgY29udmVudGlvbiwgaWYgdGhleSBhcHBlYXIKKyAgICAgICAgIGluIHRoZSBzYW1lIGxvZ2ljYWwgcm93LgorCisgICAgICAgICBJbmV0QWRkcmVzc1ByZWZpeExlbmd0aCB2YWx1ZXMgbGFyZ2VyIHRoYW4KKyAgICAgICAgIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbiBJUCBhZGRyZXNzIGZvciBhIHNwZWNpZmljCisgICAgICAgICBJbmV0QWRkcmVzc1R5cGUgYXJlIHRyZWF0ZWQgYXMgdGhlIG1heGltdW0gc2lnbmlmaWNhbnQKKyAgICAgICAgIHZhbHVlIGFwcGxpY2FibGUgZm9yIHRoZSBJbmV0QWRkcmVzc1R5cGUuICBUaGUgbWF4aW11bQorICAgICAgICAgc2lnbmlmaWNhbnQgdmFsdWUgaXMgMzIgZm9yIHRoZSBJbmV0QWRkcmVzc1R5cGUKKyAgICAgICAgICdpcHY0KDEpJyBhbmQgJ2lwdjR6KDMpJyBhbmQgMTI4IGZvciB0aGUgSW5ldEFkZHJlc3NUeXBlCisgICAgICAgICAnaXB2NigyKScgYW5kICdpcHY2eig0KScuICBUaGUgbWF4aW11bSBzaWduaWZpY2FudCB2YWx1ZQorICAgICAgICAgZm9yIHRoZSBJbmV0QWRkcmVzc1R5cGUgJ2RucygxNiknIGlzIDAuCisKKyAgICAgICAgIFRoZSB2YWx1ZSB6ZXJvIGlzIG9iamVjdC1zcGVjaWZpYyBhbmQgbXVzdCBiZSBkZWZpbmVkIGFzCisgICAgICAgICBwYXJ0IG9mIHRoZSBkZXNjcmlwdGlvbiBvZiBhbnkgb2JqZWN0IHRoYXQgdXNlcyB0aGlzCisgICAgICAgICBzeW50YXguICBFeGFtcGxlcyBvZiB0aGUgdXNhZ2Ugb2YgemVybyBtaWdodCBpbmNsdWRlCisgICAgICAgICBzaXR1YXRpb25zIHdoZXJlIHRoZSBJbnRlcm5ldCBuZXR3b3JrIGFkZHJlc3MgcHJlZml4CisgICAgICAgICBpcyB1bmtub3duIG9yIGRvZXMgbm90IGFwcGx5LgorCisgICAgICAgICBUaGUgdXBwZXIgYm91bmQgb2YgdGhlIHByZWZpeCBsZW5ndGggaGFzIGJlZW4gY2hvc2VuIHRvCisgICAgICAgICBiZSBjb25zaXN0ZW50IHdpdGggdGhlIG1heGltdW0gc2l6ZSBvZiBhbiBJbmV0QWRkcmVzcy4iCisgICAgU1lOVEFYICAgICAgIFVuc2lnbmVkMzIgKDAuLjIwNDApCisKK0luZXRQb3J0TnVtYmVyIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBESVNQTEFZLUhJTlQgImQiCisgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAiUmVwcmVzZW50cyBhIDE2IGJpdCBwb3J0IG51bWJlciBvZiBhbiBJbnRlcm5ldCB0cmFuc3BvcnQKKworCisKKyAgICAgICAgIGxheWVyIHByb3RvY29sLiAgUG9ydCBudW1iZXJzIGFyZSBhc3NpZ25lZCBieSBJQU5BLiAgQQorICAgICAgICAgY3VycmVudCBsaXN0IG9mIGFsbCBhc3NpZ25tZW50cyBpcyBhdmFpbGFibGUgZnJvbQorICAgICAgICAgPGh0dHA6Ly93d3cuaWFuYS5vcmcvPi4KKworICAgICAgICAgVGhlIHZhbHVlIHplcm8gaXMgb2JqZWN0LXNwZWNpZmljIGFuZCBtdXN0IGJlIGRlZmluZWQgYXMKKyAgICAgICAgIHBhcnQgb2YgdGhlIGRlc2NyaXB0aW9uIG9mIGFueSBvYmplY3QgdGhhdCB1c2VzIHRoaXMKKyAgICAgICAgIHN5bnRheC4gIEV4YW1wbGVzIG9mIHRoZSB1c2FnZSBvZiB6ZXJvIG1pZ2h0IGluY2x1ZGUKKyAgICAgICAgIHNpdHVhdGlvbnMgd2hlcmUgYSBwb3J0IG51bWJlciBpcyB1bmtub3duLCBvciB3aGVuIHRoZQorICAgICAgICAgdmFsdWUgemVybyBpcyB1c2VkIGFzIGEgd2lsZGNhcmQgaW4gYSBmaWx0ZXIuIgorICAgIFJFRkVSRU5DRSAgICJTVEQgNiAoUkZDIDc2OCksIFNURCA3IChSRkMgNzkzKSBhbmQgUkZDIDI5NjAiCisgICAgU1lOVEFYICAgICAgIFVuc2lnbmVkMzIgKDAuLjY1NTM1KQorCitJbmV0QXV0b25vbW91c1N5c3RlbU51bWJlciA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgRElTUExBWS1ISU5UICJkIgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgIlJlcHJlc2VudHMgYW4gYXV0b25vbW91cyBzeXN0ZW0gbnVtYmVyIHRoYXQgaWRlbnRpZmllcyBhbgorICAgICAgICAgQXV0b25vbW91cyBTeXN0ZW0gKEFTKS4gIEFuIEFTIGlzIGEgc2V0IG9mIHJvdXRlcnMgdW5kZXIgYQorICAgICAgICAgc2luZ2xlIHRlY2huaWNhbCBhZG1pbmlzdHJhdGlvbiwgdXNpbmcgYW4gaW50ZXJpb3IgZ2F0ZXdheQorICAgICAgICAgcHJvdG9jb2wgYW5kIGNvbW1vbiBtZXRyaWNzIHRvIHJvdXRlIHBhY2tldHMgd2l0aGluIHRoZSBBUywKKyAgICAgICAgIGFuZCB1c2luZyBhbiBleHRlcmlvciBnYXRld2F5IHByb3RvY29sIHRvIHJvdXRlIHBhY2tldHMgdG8KKyAgICAgICAgIG90aGVyIEFTZXMnLiAgSUFOQSBtYWludGFpbnMgdGhlIEFTIG51bWJlciBzcGFjZSBhbmQgaGFzCisgICAgICAgICBkZWxlZ2F0ZWQgbGFyZ2UgcGFydHMgdG8gdGhlIHJlZ2lvbmFsIHJlZ2lzdHJpZXMuCisKKyAgICAgICAgIEF1dG9ub21vdXMgc3lzdGVtIG51bWJlcnMgYXJlIGN1cnJlbnRseSBsaW1pdGVkIHRvIDE2IGJpdHMKKyAgICAgICAgICgwLi42NTUzNSkuICBUaGVyZSBpcywgaG93ZXZlciwgd29yayBpbiBwcm9ncmVzcyB0byBlbmxhcmdlIHRoZQorICAgICAgICAgYXV0b25vbW91cyBzeXN0ZW0gbnVtYmVyIHNwYWNlIHRvIDMyIGJpdHMuICBUaGVyZWZvcmUsIHRoaXMKKyAgICAgICAgIHRleHR1YWwgY29udmVudGlvbiB1c2VzIGFuIFVuc2lnbmVkMzIgdmFsdWUgd2l0aG91dCBhCisgICAgICAgICByYW5nZSByZXN0cmljdGlvbiBpbiBvcmRlciB0byBzdXBwb3J0IGEgbGFyZ2VyIGF1dG9ub21vdXMKKyAgICAgICAgIHN5c3RlbSBudW1iZXIgc3BhY2UuIgorICAgIFJFRkVSRU5DRSAgICJSRkMgMTc3MSwgUkZDIDE5MzAiCisgICAgU1lOVEFYICAgICAgIFVuc2lnbmVkMzIKKworSW5ldFNjb3BlVHlwZSA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAiUmVwcmVzZW50cyBhIHNjb3BlIHR5cGUuICBUaGlzIHRleHR1YWwgY29udmVudGlvbiBjYW4gYmUgdXNlZAorICAgICAgICAgaW4gY2FzZXMgd2hlcmUgYSBNSUIgaGFzIHRvIHJlcHJlc2VudCBkaWZmZXJlbnQgc2NvcGUgdHlwZXMKKyAgICAgICAgIGFuZCB0aGVyZSBpcyBubyBjb250ZXh0IGluZm9ybWF0aW9uLCBzdWNoIGFzIGFuIEluZXRBZGRyZXNzCisgICAgICAgICBvYmplY3QsIHRoYXQgaW1wbGljaXRseSBkZWZpbmVzIHRoZSBzY29wZSB0eXBlLgorCisgICAgICAgICBOb3RlIHRoYXQgbm90IGFsbCBwb3NzaWJsZSB2YWx1ZXMgaGF2ZSBiZWVuIGFzc2lnbmVkIHlldCwgYnV0CisgICAgICAgICB0aGV5IG1heSBiZSBhc3NpZ25lZCBpbiBmdXR1cmUgcmV2aXNpb25zIG9mIHRoaXMgc3BlY2lmaWNhdGlvbi4KKyAgICAgICAgIEFwcGxpY2F0aW9ucyBzaG91bGQgdGhlcmVmb3JlIGJlIGFibGUgdG8gZGVhbCB3aXRoIHZhbHVlcworICAgICAgICAgbm90IHlldCBhc3NpZ25lZC4iCisgICAgUkVGRVJFTkNFICAgIlJGQyAzNTEzIgorICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAgIC0tIHJlc2VydmVkKDApLAorCisKKworICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlTG9jYWwoMSksCisgICAgICAgICAgICAgICAgICAgICBsaW5rTG9jYWwoMiksCisgICAgICAgICAgICAgICAgICAgICBzdWJuZXRMb2NhbCgzKSwKKyAgICAgICAgICAgICAgICAgICAgIGFkbWluTG9jYWwoNCksCisgICAgICAgICAgICAgICAgICAgICBzaXRlTG9jYWwoNSksIC0tIHNpdGUtbG9jYWwgdW5pY2FzdCBhZGRyZXNzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYnkgUkZDIDM4NzkKKyAgICAgICAgICAgICAgICAgICAgIC0tIHVuYXNzaWduZWQoNiksCisgICAgICAgICAgICAgICAgICAgICAtLSB1bmFzc2lnbmVkKDcpLAorICAgICAgICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uTG9jYWwoOCksCisgICAgICAgICAgICAgICAgICAgICAtLSB1bmFzc2lnbmVkKDkpLAorICAgICAgICAgICAgICAgICAgICAgLS0gdW5hc3NpZ25lZCgxMCksCisgICAgICAgICAgICAgICAgICAgICAtLSB1bmFzc2lnbmVkKDExKSwKKyAgICAgICAgICAgICAgICAgICAgIC0tIHVuYXNzaWduZWQoMTIpLAorICAgICAgICAgICAgICAgICAgICAgLS0gdW5hc3NpZ25lZCgxMyksCisgICAgICAgICAgICAgICAgICAgICBnbG9iYWwoMTQpCisgICAgICAgICAgICAgICAgICAgICAtLSByZXNlcnZlZCgxNSkKKyAgICAgICAgICAgICAgICAgfQorCitJbmV0Wm9uZUluZGV4IDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBESVNQTEFZLUhJTlQgImQiCisgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAiQSB6b25lIGluZGV4IGlkZW50aWZpZXMgYW4gaW5zdGFuY2Ugb2YgYSB6b25lIG9mIGEKKyAgICAgICAgIHNwZWNpZmljIHNjb3BlLgorCisgICAgICAgICBUaGUgem9uZSBpbmRleCBNVVNUIGRpc2FtYmlndWF0ZSBpZGVudGljYWwgYWRkcmVzcworICAgICAgICAgdmFsdWVzLiAgRm9yIGxpbmstbG9jYWwgYWRkcmVzc2VzLCB0aGUgem9uZSBpbmRleCB3aWxsCisgICAgICAgICB0eXBpY2FsbHkgYmUgdGhlIGludGVyZmFjZSBpbmRleCAoaWZJbmRleCBhcyBkZWZpbmVkIGluIHRoZQorICAgICAgICAgSUYtTUlCKSBvZiB0aGUgaW50ZXJmYWNlIG9uIHdoaWNoIHRoZSBhZGRyZXNzIGlzIGNvbmZpZ3VyZWQuCisKKyAgICAgICAgIFRoZSB6b25lIGluZGV4IG1heSBjb250YWluIHRoZSBzcGVjaWFsIHZhbHVlIDAsIHdoaWNoIHJlZmVycworICAgICAgICAgdG8gdGhlIGRlZmF1bHQgem9uZS4gIFRoZSBkZWZhdWx0IHpvbmUgbWF5IGJlIHVzZWQgaW4gY2FzZXMKKyAgICAgICAgIHdoZXJlIHRoZSB2YWxpZCB6b25lIGluZGV4IGlzIG5vdCBrbm93biAoZS5nLiwgd2hlbiBhCisgICAgICAgICBtYW5hZ2VtZW50IGFwcGxpY2F0aW9uIGhhcyB0byB3cml0ZSBhIGxpbmstbG9jYWwgSVB2NgorICAgICAgICAgYWRkcmVzcyB3aXRob3V0IGtub3dpbmcgdGhlIGludGVyZmFjZSBpbmRleCB2YWx1ZSkuICBUaGUKKyAgICAgICAgIGRlZmF1bHQgem9uZSBTSE9VTEQgTk9UIGJlIHVzZWQgYXMgYW4gZWFzeSB3YXkgb3V0IGluCisgICAgICAgICBjYXNlcyB3aGVyZSB0aGUgem9uZSBpbmRleCBmb3IgYSBub24tZ2xvYmFsIElQdjYgYWRkcmVzcworICAgICAgICAgaXMga25vd24uIgorICAgIFJFRkVSRU5DRSAgICJSRkM0MDA3IgorICAgIFNZTlRBWCAgICAgICBVbnNpZ25lZDMyCisKK0luZXRWZXJzaW9uIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAiQSB2YWx1ZSByZXByZXNlbnRpbmcgYSB2ZXJzaW9uIG9mIHRoZSBJUCBwcm90b2NvbC4KKworICAgICAgICAgdW5rbm93bigwKSAgQW4gdW5rbm93biBvciB1bnNwZWNpZmllZCB2ZXJzaW9uIG9mIHRoZSBJUAorICAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2wuCisKKworCisgICAgICAgICBpcHY0KDEpICAgICBUaGUgSVB2NCBwcm90b2NvbCBhcyBkZWZpbmVkIGluIFJGQyA3OTEgKFNURCA1KS4KKworICAgICAgICAgaXB2NigyKSAgICAgVGhlIElQdjYgcHJvdG9jb2wgYXMgZGVmaW5lZCBpbiBSRkMgMjQ2MC4KKworICAgICAgICAgTm90ZSB0aGF0IHRoaXMgdGV4dHVhbCBjb252ZW50aW9uIFNIT1VMRCBOT1QgYmUgdXNlZCB0bworICAgICAgICAgZGlzdGluZ3Vpc2ggZGlmZmVyZW50IGFkZHJlc3MgdHlwZXMgYXNzb2NpYXRlZCB3aXRoIElQCisgICAgICAgICBwcm90b2NvbHMuICBUaGUgSW5ldEFkZHJlc3NUeXBlIGhhcyBiZWVuIGRlc2lnbmVkIGZvciB0aGlzCisgICAgICAgICBwdXJwb3NlLiIKKyAgICBSRUZFUkVOQ0UgICAiUkZDIDc5MSwgUkZDIDI0NjAiCisgICAgU1lOVEFYICAgICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgICAgdW5rbm93bigwKSwKKyAgICAgICAgICAgICAgICAgICAgIGlwdjQoMSksCisgICAgICAgICAgICAgICAgICAgICBpcHY2KDIpCisgICAgICAgICAgICAgICAgIH0KK0VORApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL0lQLU1JQiBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JUC1NSUIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE5MzUwMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9JUC1NSUIKQEAgLTAsMCArMSw1MjU0IEBACitJUC1NSUIgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKK0lNUE9SVFMKKyAgICBNT0RVTEUtSURFTlRJVFksIE9CSkVDVC1UWVBFLAorICAgIEludGVnZXIzMiwgQ291bnRlcjMyLCBJcEFkZHJlc3MsCisgICAgbWliLTIsIFVuc2lnbmVkMzIsIENvdW50ZXI2NCwKKyAgICB6ZXJvRG90WmVybyAgICAgICAgICAgICAgICAgICAgICAgIEZST00gU05NUHYyLVNNSQorICAgIFBoeXNBZGRyZXNzLCBUcnV0aFZhbHVlLAorICAgIFRpbWVTdGFtcCwgUm93UG9pbnRlciwKKyAgICBURVhUVUFMLUNPTlZFTlRJT04sIFRlc3RBbmRJbmNyLAorICAgIFJvd1N0YXR1cywgU3RvcmFnZVR5cGUgICAgICAgICAgICAgRlJPTSBTTk1QdjItVEMKKyAgICBNT0RVTEUtQ09NUExJQU5DRSwgT0JKRUNULUdST1VQICAgIEZST00gU05NUHYyLUNPTkYKKyAgICBJbmV0QWRkcmVzcywgSW5ldEFkZHJlc3NUeXBlLAorICAgIEluZXRBZGRyZXNzUHJlZml4TGVuZ3RoLAorICAgIEluZXRWZXJzaW9uLCBJbmV0Wm9uZUluZGV4ICAgICAgICAgRlJPTSBJTkVULUFERFJFU1MtTUlCCisgICAgSW50ZXJmYWNlSW5kZXggICAgICAgICAgICAgICAgICAgICBGUk9NIElGLU1JQjsKKworaXBNSUIgTU9EVUxFLUlERU5USVRZCisgICAgTEFTVC1VUERBVEVEICIyMDA2MDIwMjAwMDBaIgorICAgIE9SR0FOSVpBVElPTiAiSUVURiBJUHY2IE1JQiBSZXZpc2lvbiBUZWFtIgorICAgIENPTlRBQ1QtSU5GTworICAgICAgICAgICAiRWRpdG9yOgorCisKKworICAgICAgICAgICAgU2hhd24gQS4gUm91dGhpZXIKKyAgICAgICAgICAgIEludGVyd29ya2luZyBMYWJzCisgICAgICAgICAgICAxMDggV2hpc3BlcmluZyBQaW5lcyBEci4gU3VpdGUgMjM1CisgICAgICAgICAgICBTY290dHMgVmFsbGV5LCBDQSA5NTA2NgorICAgICAgICAgICAgVVNBCisgICAgICAgICAgICBFTWFpbDogPHNhckBpd2wuY29tPiIKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIE1JQiBtb2R1bGUgZm9yIG1hbmFnaW5nIElQIGFuZCBJQ01QIGltcGxlbWVudGF0aW9ucywgYnV0CisgICAgICAgICAgICBleGNsdWRpbmcgdGhlaXIgbWFuYWdlbWVudCBvZiBJUCByb3V0ZXMuCisKKyAgICAgICAgICAgIENvcHlyaWdodCAoQykgVGhlIEludGVybmV0IFNvY2lldHkgKDIwMDYpLiAgVGhpcyB2ZXJzaW9uIG9mCisgICAgICAgICAgICB0aGlzIE1JQiBtb2R1bGUgaXMgcGFydCBvZiBSRkMgNDI5Mzsgc2VlIHRoZSBSRkMgaXRzZWxmIGZvcgorICAgICAgICAgICAgZnVsbCBsZWdhbCBub3RpY2VzLiIKKworICAgIFJFVklTSU9OICAgICAgIjIwMDYwMjAyMDAwMFoiCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBJUCB2ZXJzaW9uIG5ldXRyYWwgcmV2aXNpb24gd2l0aCBhZGRlZCBJUHY2IG9iamVjdHMgZm9yCisgICAgICAgICAgICBORCwgZGVmYXVsdCByb3V0ZXJzLCBhbmQgcm91dGVyIGFkdmVydGlzZW1lbnRzLiAgQXMgd2VsbCBhcworICAgICAgICAgICAgYmVpbmcgdGhlIHN1Y2Nlc3NvciB0byBSRkMgMjAxMSwgdGhpcyBNSUIgaXMgYWxzbyB0aGUKKyAgICAgICAgICAgIHN1Y2Nlc3NvciB0byBSRkNzIDI0NjUgYW5kIDI0NjYuICBQdWJsaXNoZWQgYXMgUkZDIDQyOTMuIgorCisgICAgUkVWSVNJT04gICAgICAiMTk5NDExMDEwMDAwWiIKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQSBzZXBhcmF0ZSBNSUIgbW9kdWxlIChJUC1NSUIpIGZvciBJUCBhbmQgSUNNUCBtYW5hZ2VtZW50CisgICAgICAgICAgICBvYmplY3RzLiAgUHVibGlzaGVkIGFzIFJGQyAyMDExLiIKKworICAgIFJFVklTSU9OICAgICAgIjE5OTEwMzMxMDAwMFoiCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBpbml0aWFsIHJldmlzaW9uIG9mIHRoaXMgTUlCIG1vZHVsZSB3YXMgcGFydCBvZiBNSUItSUksCisgICAgICAgICAgICB3aGljaCB3YXMgcHVibGlzaGVkIGFzIFJGQyAxMjEzLiIKKyAgICA6Oj0geyBtaWItMiA0OH0KKworLS0KKy0tIFRoZSB0ZXh0dWFsIGNvbnZlbnRpb25zIHdlIGRlZmluZSBhbmQgdXNlIGluIHRoaXMgTUlCLgorLS0KKworSXBBZGRyZXNzT3JpZ2luVEMgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgb3JpZ2luIG9mIHRoZSBhZGRyZXNzLgorCisgICAgICAgICAgICBtYW51YWwoMikgaW5kaWNhdGVzIHRoYXQgdGhlIGFkZHJlc3Mgd2FzIG1hbnVhbGx5IGNvbmZpZ3VyZWQKKyAgICAgICAgICAgIHRvIGEgc3BlY2lmaWVkIGFkZHJlc3MsIGUuZy4sIGJ5IHVzZXIgY29uZmlndXJhdGlvbi4KKworICAgICAgICAgICAgZGhjcCg0KSBpbmRpY2F0ZXMgYW4gYWRkcmVzcyB0aGF0IHdhcyBhc3NpZ25lZCB0byB0aGlzCisgICAgICAgICAgICBzeXN0ZW0gYnkgYSBESENQIHNlcnZlci4KKworICAgICAgICAgICAgbGlua2xheWVyKDUpIGluZGljYXRlcyBhbiBhZGRyZXNzIGNyZWF0ZWQgYnkgSVB2NiBzdGF0ZWxlc3MKKworCisKKyAgICAgICAgICAgIGF1dG8tY29uZmlndXJhdGlvbi4KKworICAgICAgICAgICAgcmFuZG9tKDYpIGluZGljYXRlcyBhbiBhZGRyZXNzIGNob3NlbiBieSB0aGUgc3lzdGVtIGF0CisgICAgICAgICAgICByYW5kb20sIGUuZy4sIGFuIElQdjQgYWRkcmVzcyB3aXRoaW4gMTY5LjI1NC8xNiwgb3IgYW4gUkZDCisgICAgICAgICAgICAzMDQxIHByaXZhY3kgYWRkcmVzcy4iCisgICAgU1lOVEFYICAgICBJTlRFR0VSIHsKKyAgICAgICAgb3RoZXIoMSksCisgICAgICAgIG1hbnVhbCgyKSwKKyAgICAgICAgZGhjcCg0KSwKKyAgICAgICAgbGlua2xheWVyKDUpLAorICAgICAgICByYW5kb20oNikKKyAgICB9CisKK0lwQWRkcmVzc1N0YXR1c1RDIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHN0YXR1cyBvZiBhbiBhZGRyZXNzLiAgTW9zdCBvZiB0aGUgc3RhdGVzIGNvcnJlc3BvbmQgdG8KKyAgICAgICAgICAgIHN0YXRlcyBmcm9tIHRoZSBJUHY2IFN0YXRlbGVzcyBBZGRyZXNzIEF1dG9jb25maWd1cmF0aW9uCisgICAgICAgICAgICBwcm90b2NvbC4KKworICAgICAgICAgICAgVGhlIHByZWZlcnJlZCgxKSBzdGF0ZSBpbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIGEgdmFsaWQKKyAgICAgICAgICAgIGFkZHJlc3MgdGhhdCBjYW4gYXBwZWFyIGFzIHRoZSBkZXN0aW5hdGlvbiBvciBzb3VyY2UgYWRkcmVzcworICAgICAgICAgICAgb2YgYSBwYWNrZXQuCisKKyAgICAgICAgICAgIFRoZSBkZXByZWNhdGVkKDIpIHN0YXRlIGluZGljYXRlcyB0aGF0IHRoaXMgaXMgYSB2YWxpZCBidXQKKyAgICAgICAgICAgIGRlcHJlY2F0ZWQgYWRkcmVzcyB0aGF0IHNob3VsZCBubyBsb25nZXIgYmUgdXNlZCBhcyBhIHNvdXJjZQorICAgICAgICAgICAgYWRkcmVzcyBpbiBuZXcgY29tbXVuaWNhdGlvbnMsIGJ1dCBwYWNrZXRzIGFkZHJlc3NlZCB0byBzdWNoCisgICAgICAgICAgICBhbiBhZGRyZXNzIGFyZSBwcm9jZXNzZWQgYXMgZXhwZWN0ZWQuCisKKyAgICAgICAgICAgIFRoZSBpbnZhbGlkKDMpIHN0YXRlIGluZGljYXRlcyB0aGF0IHRoaXMgaXNuJ3QgYSB2YWxpZAorICAgICAgICAgICAgYWRkcmVzcyBhbmQgaXQgc2hvdWxkbid0IGFwcGVhciBhcyB0aGUgZGVzdGluYXRpb24gb3Igc291cmNlCisgICAgICAgICAgICBhZGRyZXNzIG9mIGEgcGFja2V0LgorCisgICAgICAgICAgICBUaGUgaW5hY2Nlc3NpYmxlKDQpIHN0YXRlIGluZGljYXRlcyB0aGF0IHRoZSBhZGRyZXNzIGlzIG5vdAorICAgICAgICAgICAgYWNjZXNzaWJsZSBiZWNhdXNlIHRoZSBpbnRlcmZhY2UgdG8gd2hpY2ggdGhpcyBhZGRyZXNzIGlzCisgICAgICAgICAgICBhc3NpZ25lZCBpcyBub3Qgb3BlcmF0aW9uYWwuCisKKyAgICAgICAgICAgIFRoZSB1bmtub3duKDUpIHN0YXRlIGluZGljYXRlcyB0aGF0IHRoZSBzdGF0dXMgY2Fubm90IGJlCisgICAgICAgICAgICBkZXRlcm1pbmVkIGZvciBzb21lIHJlYXNvbi4KKworICAgICAgICAgICAgVGhlIHRlbnRhdGl2ZSg2KSBzdGF0ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgdW5pcXVlbmVzcyBvZiB0aGUKKyAgICAgICAgICAgIGFkZHJlc3Mgb24gdGhlIGxpbmsgaXMgYmVpbmcgdmVyaWZpZWQuICBBZGRyZXNzZXMgaW4gdGhpcworICAgICAgICAgICAgc3RhdGUgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBnZW5lcmFsIGNvbW11bmljYXRpb24gYW5kCisgICAgICAgICAgICBzaG91bGQgb25seSBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgdW5pcXVlbmVzcyBvZiB0aGUKKyAgICAgICAgICAgIGFkZHJlc3MuCisKKyAgICAgICAgICAgIFRoZSBkdXBsaWNhdGUoNykgc3RhdGUgaW5kaWNhdGVzIHRoZSBhZGRyZXNzIGhhcyBiZWVuCisgICAgICAgICAgICBkZXRlcm1pbmVkIHRvIGJlIG5vbi11bmlxdWUgb24gdGhlIGxpbmsgYW5kIHNvIG11c3Qgbm90IGJlCisKKworCisgICAgICAgICAgICB1c2VkLgorCisgICAgICAgICAgICBUaGUgb3B0aW1pc3RpYyg4KSBzdGF0ZSBpbmRpY2F0ZXMgdGhlIGFkZHJlc3MgaXMgYXZhaWxhYmxlCisgICAgICAgICAgICBmb3IgdXNlLCBzdWJqZWN0IHRvIHJlc3RyaWN0aW9ucywgd2hpbGUgaXRzIHVuaXF1ZW5lc3Mgb24KKyAgICAgICAgICAgIGEgbGluayBpcyBiZWluZyB2ZXJpZmllZC4KKworICAgICAgICAgICAgSW4gdGhlIGFic2VuY2Ugb2Ygb3RoZXIgaW5mb3JtYXRpb24sIGFuIElQdjQgYWRkcmVzcyBpcworICAgICAgICAgICAgYWx3YXlzIHByZWZlcnJlZCgxKS4iCisgICAgUkVGRVJFTkNFICJSRkMgMjQ2MiIKKyAgICBTWU5UQVggICAgIElOVEVHRVIgeworICAgICAgICBwcmVmZXJyZWQoMSksCisgICAgICAgIGRlcHJlY2F0ZWQoMiksCisgICAgICAgIGludmFsaWQoMyksCisgICAgICAgIGluYWNjZXNzaWJsZSg0KSwKKyAgICAgICAgdW5rbm93big1KSwKKyAgICAgICAgdGVudGF0aXZlKDYpLAorICAgICAgICBkdXBsaWNhdGUoNyksCisgICAgICAgIG9wdGltaXN0aWMoOCkKKyAgICB9CisKK0lwQWRkcmVzc1ByZWZpeE9yaWdpblRDIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG9yaWdpbiBvZiB0aGlzIHByZWZpeC4KKworICAgICAgICAgICAgbWFudWFsKDIpIGluZGljYXRlcyBhIHByZWZpeCB0aGF0IHdhcyBtYW51YWxseSBjb25maWd1cmVkLgorCisgICAgICAgICAgICB3ZWxsa25vd24oMykgaW5kaWNhdGVzIGEgd2VsbC1rbm93biBwcmVmaXgsIGUuZy4sIDE2OS4yNTQvMTYKKyAgICAgICAgICAgIGZvciBJUHY0IGF1dG8tY29uZmlndXJhdGlvbiBvciBmZTgwOjovMTAgZm9yIElQdjYgbGluay1sb2NhbAorICAgICAgICAgICAgYWRkcmVzc2VzLiAgV2VsbCBrbm93biBwcmVmaXhlcyBtYXkgYmUgYXNzaWduZWQgYnkgSUFOQSwKKyAgICAgICAgICAgIHRoZSBhZGRyZXNzIHJlZ2lzdHJpZXMsIG9yIGJ5IHNwZWNpZmljYXRpb24gaW4gYSBzdGFuZGFyZHMKKyAgICAgICAgICAgIHRyYWNrIFJGQy4KKworICAgICAgICAgICAgZGhjcCg0KSBpbmRpY2F0ZXMgYSBwcmVmaXggdGhhdCB3YXMgYXNzaWduZWQgYnkgYSBESENQCisgICAgICAgICAgICBzZXJ2ZXIuCisKKyAgICAgICAgICAgIHJvdXRlcmFkdig1KSBpbmRpY2F0ZXMgYSBwcmVmaXggbGVhcm5lZCBmcm9tIGEgcm91dGVyCisgICAgICAgICAgICBhZHZlcnRpc2VtZW50LgorCisgICAgICAgICAgICBOb3RlOiB3aGlsZSBJcEFkZHJlc3NPcmlnaW5UQyBhbmQgSXBBZGRyZXNzUHJlZml4T3JpZ2luVEMKKyAgICAgICAgICAgIGFyZSBzaW1pbGFyLCB0aGV5IGFyZSBub3QgaWRlbnRpY2FsLiAgVGhlIGZpcnN0IGRlZmluZXMgaG93CisgICAgICAgICAgICBhbiBhZGRyZXNzIHdhcyBjcmVhdGVkLCB3aGlsZSB0aGUgc2Vjb25kIGRlZmluZXMgaG93IGEKKyAgICAgICAgICAgIHByZWZpeCB3YXMgZm91bmQuIgorICAgIFNZTlRBWCAgICAgSU5URUdFUiB7CisgICAgICAgIG90aGVyKDEpLAorICAgICAgICBtYW51YWwoMiksCisgICAgICAgIHdlbGxrbm93bigzKSwKKyAgICAgICAgZGhjcCg0KSwKKworCisKKyAgICAgICAgcm91dGVyYWR2KDUpCisgICAgfQorCitJcHY2QWRkcmVzc0lmSWRlbnRpZmllclRDIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICAgRElTUExBWS1ISU5UICIyeDoiCisgICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgIERFU0NSSVBUSU9OCisgICAgICAgIlRoaXMgZGF0YSB0eXBlIGlzIHVzZWQgdG8gbW9kZWwgSVB2NiBhZGRyZXNzCisgICAgICAgaW50ZXJmYWNlIGlkZW50aWZpZXJzLiAgVGhpcyBpcyBhIGJpbmFyeSBzdHJpbmcKKyAgICAgICBvZiB1cCB0byA4IG9jdGV0cyBpbiBuZXR3b3JrIGJ5dGUtb3JkZXIuIgorICAgICBTWU5UQVggICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDAuLjgpKQorCistLQorLS0gdGhlIElQIGdlbmVyYWwgZ3JvdXAKKy0tIHNvbWUgb2JqZWN0cyB0aGF0IGFmZmVjdCBhbGwgb2YgSVB2NAorLS0KKworaXAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgNCB9CisKK2lwRm9yd2FyZGluZyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgIGZvcndhcmRpbmcoMSksICAgIC0tIGFjdGluZyBhcyBhIHJvdXRlcgorICAgICAgICAgICAgICAgICAgICBub3RGb3J3YXJkaW5nKDIpICAtLSBOT1QgYWN0aW5nIGFzIGEgcm91dGVyCisgICAgICAgICAgICAgICB9CisgICAgTUFYLUFDQ0VTUyByZWFkLXdyaXRlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBpbmRpY2F0aW9uIG9mIHdoZXRoZXIgdGhpcyBlbnRpdHkgaXMgYWN0aW5nIGFzIGFuIElQdjQKKyAgICAgICAgICAgIHJvdXRlciBpbiByZXNwZWN0IHRvIHRoZSBmb3J3YXJkaW5nIG9mIGRhdGFncmFtcyByZWNlaXZlZAorICAgICAgICAgICAgYnksIGJ1dCBub3QgYWRkcmVzc2VkIHRvLCB0aGlzIGVudGl0eS4gIElQdjQgcm91dGVycyBmb3J3YXJkCisgICAgICAgICAgICBkYXRhZ3JhbXMuICBJUHY0IGhvc3RzIGRvIG5vdCAoZXhjZXB0IHRob3NlIHNvdXJjZS1yb3V0ZWQKKyAgICAgICAgICAgIHZpYSB0aGUgaG9zdCkuCisKKyAgICAgICAgICAgIFdoZW4gdGhpcyBvYmplY3QgaXMgd3JpdHRlbiwgdGhlIGVudGl0eSBzaG91bGQgc2F2ZSB0aGUKKyAgICAgICAgICAgIGNoYW5nZSB0byBub24tdm9sYXRpbGUgc3RvcmFnZSBhbmQgcmVzdG9yZSB0aGUgb2JqZWN0IGZyb20KKyAgICAgICAgICAgIG5vbi12b2xhdGlsZSBzdG9yYWdlIHVwb24gcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIHN5c3RlbS4KKyAgICAgICAgICAgIE5vdGU6IGEgc3Ryb25nZXIgcmVxdWlyZW1lbnQgaXMgbm90IHVzZWQgYmVjYXVzZSB0aGlzIG9iamVjdAorICAgICAgICAgICAgd2FzIHByZXZpb3VzbHkgZGVmaW5lZC4iCisgICAgOjo9IHsgaXAgMSB9CisKK2lwRGVmYXVsdFRUTCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW50ZWdlcjMyICgxLi4yNTUpCisgICAgTUFYLUFDQ0VTUyByZWFkLXdyaXRlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBkZWZhdWx0IHZhbHVlIGluc2VydGVkIGludG8gdGhlIFRpbWUtVG8tTGl2ZSBmaWVsZCBvZgorICAgICAgICAgICAgdGhlIElQdjQgaGVhZGVyIG9mIGRhdGFncmFtcyBvcmlnaW5hdGVkIGF0IHRoaXMgZW50aXR5LAorICAgICAgICAgICAgd2hlbmV2ZXIgYSBUVEwgdmFsdWUgaXMgbm90IHN1cHBsaWVkIGJ5IHRoZSB0cmFuc3BvcnQgbGF5ZXIKKworCisKKyAgICAgICAgICAgIHByb3RvY29sLgorCisgICAgICAgICAgICBXaGVuIHRoaXMgb2JqZWN0IGlzIHdyaXR0ZW4sIHRoZSBlbnRpdHkgc2hvdWxkIHNhdmUgdGhlCisgICAgICAgICAgICBjaGFuZ2UgdG8gbm9uLXZvbGF0aWxlIHN0b3JhZ2UgYW5kIHJlc3RvcmUgdGhlIG9iamVjdCBmcm9tCisgICAgICAgICAgICBub24tdm9sYXRpbGUgc3RvcmFnZSB1cG9uIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBzeXN0ZW0uCisgICAgICAgICAgICBOb3RlOiBhIHN0cm9uZ2VyIHJlcXVpcmVtZW50IGlzIG5vdCB1c2VkIGJlY2F1c2UgdGhpcyBvYmplY3QKKyAgICAgICAgICAgIHdhcyBwcmV2aW91c2x5IGRlZmluZWQuIgorICAgIDo6PSB7IGlwIDIgfQorCitpcFJlYXNtVGltZW91dCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW50ZWdlcjMyCisgICAgVU5JVFMgICAgICAic2Vjb25kcyIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbWF4aW11bSBudW1iZXIgb2Ygc2Vjb25kcyB0aGF0IHJlY2VpdmVkIGZyYWdtZW50cyBhcmUKKyAgICAgICAgICAgIGhlbGQgd2hpbGUgdGhleSBhcmUgYXdhaXRpbmcgcmVhc3NlbWJseSBhdCB0aGlzIGVudGl0eS4iCisgICAgOjo9IHsgaXAgMTMgfQorCistLQorLS0gdGhlIElQdjYgZ2VuZXJhbCBncm91cAorLS0gU29tZSBvYmplY3RzIHRoYXQgYWZmZWN0IGFsbCBvZiBJUHY2CistLQorCitpcHY2SXBGb3J3YXJkaW5nIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yd2FyZGluZygxKSwgICAgLS0gYWN0aW5nIGFzIGEgcm91dGVyCisgICAgICAgICAgICAgICAgICAgIG5vdEZvcndhcmRpbmcoMikgIC0tIE5PVCBhY3RpbmcgYXMgYSByb3V0ZXIKKyAgICAgICAgICAgICAgIH0KKyAgICBNQVgtQUNDRVNTIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGluZGljYXRpb24gb2Ygd2hldGhlciB0aGlzIGVudGl0eSBpcyBhY3RpbmcgYXMgYW4gSVB2NgorICAgICAgICAgICAgcm91dGVyIG9uIGFueSBpbnRlcmZhY2UgaW4gcmVzcGVjdCB0byB0aGUgZm9yd2FyZGluZyBvZgorICAgICAgICAgICAgZGF0YWdyYW1zIHJlY2VpdmVkIGJ5LCBidXQgbm90IGFkZHJlc3NlZCB0bywgdGhpcyBlbnRpdHkuCisgICAgICAgICAgICBJUHY2IHJvdXRlcnMgZm9yd2FyZCBkYXRhZ3JhbXMuICBJUHY2IGhvc3RzIGRvIG5vdCAoZXhjZXB0CisgICAgICAgICAgICB0aG9zZSBzb3VyY2Utcm91dGVkIHZpYSB0aGUgaG9zdCkuCisKKyAgICAgICAgICAgIFdoZW4gdGhpcyBvYmplY3QgaXMgd3JpdHRlbiwgdGhlIGVudGl0eSBTSE9VTEQgc2F2ZSB0aGUKKyAgICAgICAgICAgIGNoYW5nZSB0byBub24tdm9sYXRpbGUgc3RvcmFnZSBhbmQgcmVzdG9yZSB0aGUgb2JqZWN0IGZyb20KKyAgICAgICAgICAgIG5vbi12b2xhdGlsZSBzdG9yYWdlIHVwb24gcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIHN5c3RlbS4iCisgICAgOjo9IHsgaXAgMjUgfQorCitpcHY2SXBEZWZhdWx0SG9wTGltaXQgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEludGVnZXIzMiAoMC4uMjU1KQorICAgIE1BWC1BQ0NFU1MgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisKKworCisgICAgICAgICAgICJUaGUgZGVmYXVsdCB2YWx1ZSBpbnNlcnRlZCBpbnRvIHRoZSBIb3AgTGltaXQgZmllbGQgb2YgdGhlCisgICAgICAgICAgICBJUHY2IGhlYWRlciBvZiBkYXRhZ3JhbXMgb3JpZ2luYXRlZCBhdCB0aGlzIGVudGl0eSB3aGVuZXZlcgorICAgICAgICAgICAgYSBIb3AgTGltaXQgdmFsdWUgaXMgbm90IHN1cHBsaWVkIGJ5IHRoZSB0cmFuc3BvcnQgbGF5ZXIKKyAgICAgICAgICAgIHByb3RvY29sLgorCisgICAgICAgICAgICBXaGVuIHRoaXMgb2JqZWN0IGlzIHdyaXR0ZW4sIHRoZSBlbnRpdHkgU0hPVUxEIHNhdmUgdGhlCisgICAgICAgICAgICBjaGFuZ2UgdG8gbm9uLXZvbGF0aWxlIHN0b3JhZ2UgYW5kIHJlc3RvcmUgdGhlIG9iamVjdCBmcm9tCisgICAgICAgICAgICBub24tdm9sYXRpbGUgc3RvcmFnZSB1cG9uIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBzeXN0ZW0uIgorICAgIFJFRkVSRU5DRSAiUkZDIDI0NjEgU2VjdGlvbiA2LjMuMiIKKyAgICA6Oj0geyBpcCAyNiB9CisKKy0tCistLSBJUHY0IEludGVyZmFjZSBUYWJsZQorLS0KKworaXB2NEludGVyZmFjZVRhYmxlTGFzdENoYW5nZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVGltZVN0YW1wCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHN5c1VwVGltZSBvbiB0aGUgbW9zdCByZWNlbnQgb2NjYXNpb24gYXQgd2hpY2gKKyAgICAgICAgICAgIGEgcm93IGluIHRoZSBpcHY0SW50ZXJmYWNlVGFibGUgd2FzIGFkZGVkIG9yIGRlbGV0ZWQsIG9yCisgICAgICAgICAgICB3aGVuIGFuIGlwdjRJbnRlcmZhY2VSZWFzbU1heFNpemUgb3IgYW4KKyAgICAgICAgICAgIGlwdjRJbnRlcmZhY2VFbmFibGVTdGF0dXMgb2JqZWN0IHdhcyBtb2RpZmllZC4KKworICAgICAgICAgICAgSWYgbmV3IG9iamVjdHMgYXJlIGFkZGVkIHRvIHRoZSBpcHY0SW50ZXJmYWNlVGFibGUgdGhhdAorICAgICAgICAgICAgcmVxdWlyZSB0aGUgaXB2NEludGVyZmFjZVRhYmxlTGFzdENoYW5nZSB0byBiZSB1cGRhdGVkIHdoZW4KKyAgICAgICAgICAgIHRoZXkgYXJlIG1vZGlmaWVkLCB0aGV5IG11c3Qgc3BlY2lmeSB0aGF0IHJlcXVpcmVtZW50IGluCisgICAgICAgICAgICB0aGVpciBkZXNjcmlwdGlvbiBjbGF1c2UuIgorICAgIDo6PSB7IGlwIDI3IH0KKworaXB2NEludGVyZmFjZVRhYmxlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBTRVFVRU5DRSBPRiBJcHY0SW50ZXJmYWNlRW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0YWJsZSBjb250YWluaW5nIHBlci1pbnRlcmZhY2UgSVB2NC1zcGVjaWZpYworICAgICAgICAgICAgaW5mb3JtYXRpb24uIgorICAgIDo6PSB7IGlwIDI4IH0KKworaXB2NEludGVyZmFjZUVudHJ5IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJcHY0SW50ZXJmYWNlRW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGVudHJ5IGNvbnRhaW5pbmcgSVB2NC1zcGVjaWZpYyBpbmZvcm1hdGlvbiBmb3IgYSBzcGVjaWZpYworICAgICAgICAgICAgaW50ZXJmYWNlLiIKKyAgICBJTkRFWCB7IGlwdjRJbnRlcmZhY2VJZkluZGV4IH0KKworCisKKyAgICA6Oj0geyBpcHY0SW50ZXJmYWNlVGFibGUgMSB9CisKK0lwdjRJbnRlcmZhY2VFbnRyeSA6Oj0gU0VRVUVOQ0UgeworICAgICAgICBpcHY0SW50ZXJmYWNlSWZJbmRleCAgICAgICAgIEludGVyZmFjZUluZGV4LAorICAgICAgICBpcHY0SW50ZXJmYWNlUmVhc21NYXhTaXplICAgIEludGVnZXIzMiwKKyAgICAgICAgaXB2NEludGVyZmFjZUVuYWJsZVN0YXR1cyAgICBJTlRFR0VSLAorICAgICAgICBpcHY0SW50ZXJmYWNlUmV0cmFuc21pdFRpbWUgIFVuc2lnbmVkMzIKKyAgICB9CisKK2lwdjRJbnRlcmZhY2VJZkluZGV4IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbnRlcmZhY2VJbmRleAorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGluZGV4IHZhbHVlIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgaW50ZXJmYWNlIHRvCisgICAgICAgICAgICB3aGljaCB0aGlzIGVudHJ5IGlzIGFwcGxpY2FibGUuICBUaGUgaW50ZXJmYWNlIGlkZW50aWZpZWQgYnkKKyAgICAgICAgICAgIGEgcGFydGljdWxhciB2YWx1ZSBvZiB0aGlzIGluZGV4IGlzIHRoZSBzYW1lIGludGVyZmFjZSBhcworICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgc2FtZSB2YWx1ZSBvZiB0aGUgSUYtTUlCJ3MgaWZJbmRleC4iCisgICAgOjo9IHsgaXB2NEludGVyZmFjZUVudHJ5IDEgfQorCitpcHY0SW50ZXJmYWNlUmVhc21NYXhTaXplIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbnRlZ2VyMzIgKDAuLjY1NTM1KQorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBzaXplIG9mIHRoZSBsYXJnZXN0IElQdjQgZGF0YWdyYW0gdGhhdCB0aGlzIGVudGl0eSBjYW4KKyAgICAgICAgICAgIHJlLWFzc2VtYmxlIGZyb20gaW5jb21pbmcgSVB2NCBmcmFnbWVudGVkIGRhdGFncmFtcyByZWNlaXZlZAorICAgICAgICAgICAgb24gdGhpcyBpbnRlcmZhY2UuIgorICAgIDo6PSB7IGlwdjRJbnRlcmZhY2VFbnRyeSAyIH0KKworaXB2NEludGVyZmFjZUVuYWJsZVN0YXR1cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgIHVwKDEpLAorICAgICAgICAgICAgICAgICBkb3duKDIpCisgICAgfQorICAgIE1BWC1BQ0NFU1MgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgaW5kaWNhdGlvbiBvZiB3aGV0aGVyIElQdjQgaXMgZW5hYmxlZCAodXApIG9yIGRpc2FibGVkCisgICAgICAgICAgICAoZG93bikgb24gdGhpcyBpbnRlcmZhY2UuICBUaGlzIG9iamVjdCBkb2VzIG5vdCBhZmZlY3QgdGhlCisgICAgICAgICAgICBzdGF0ZSBvZiB0aGUgaW50ZXJmYWNlIGl0c2VsZiwgb25seSBpdHMgY29ubmVjdGlvbiB0byBhbgorICAgICAgICAgICAgSVB2NCBzdGFjay4gIFRoZSBJRi1NSUIgc2hvdWxkIGJlIHVzZWQgdG8gY29udHJvbCB0aGUgc3RhdGUKKyAgICAgICAgICAgIG9mIHRoZSBpbnRlcmZhY2UuIgorICAgIDo6PSB7IGlwdjRJbnRlcmZhY2VFbnRyeSAzIH0KKworaXB2NEludGVyZmFjZVJldHJhbnNtaXRUaW1lIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBVbnNpZ25lZDMyCisgICAgVU5JVFMgICAgICAibWlsbGlzZWNvbmRzIgorCisKKworICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0aW1lIGJldHdlZW4gcmV0cmFuc21pc3Npb25zIG9mIEFSUCByZXF1ZXN0cyB0byBhCisgICAgICAgICAgICBuZWlnaGJvciB3aGVuIHJlc29sdmluZyB0aGUgYWRkcmVzcyBvciB3aGVuIHByb2JpbmcgdGhlCisgICAgICAgICAgICByZWFjaGFiaWxpdHkgb2YgYSBuZWlnaGJvci4iCisgICAgUkVGRVJFTkNFICJSRkMgMTEyMiIKKyAgICBERUZWQUwgeyAxMDAwIH0KKyAgICA6Oj0geyBpcHY0SW50ZXJmYWNlRW50cnkgNCB9CisKKy0tCistLSB2NiBpbnRlcmZhY2UgdGFibGUKKy0tCisKK2lwdjZJbnRlcmZhY2VUYWJsZUxhc3RDaGFuZ2UgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFRpbWVTdGFtcAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB2YWx1ZSBvZiBzeXNVcFRpbWUgb24gdGhlIG1vc3QgcmVjZW50IG9jY2FzaW9uIGF0IHdoaWNoCisgICAgICAgICAgICBhIHJvdyBpbiB0aGUgaXB2NkludGVyZmFjZVRhYmxlIHdhcyBhZGRlZCBvciBkZWxldGVkIG9yIHdoZW4KKyAgICAgICAgICAgIGFuIGlwdjZJbnRlcmZhY2VSZWFzbU1heFNpemUsIGlwdjZJbnRlcmZhY2VJZGVudGlmaWVyLAorICAgICAgICAgICAgaXB2NkludGVyZmFjZUVuYWJsZVN0YXR1cywgaXB2NkludGVyZmFjZVJlYWNoYWJsZVRpbWUsCisgICAgICAgICAgICBpcHY2SW50ZXJmYWNlUmV0cmFuc21pdFRpbWUsIG9yIGlwdjZJbnRlcmZhY2VGb3J3YXJkaW5nCisgICAgICAgICAgICBvYmplY3Qgd2FzIG1vZGlmaWVkLgorCisgICAgICAgICAgICBJZiBuZXcgb2JqZWN0cyBhcmUgYWRkZWQgdG8gdGhlIGlwdjZJbnRlcmZhY2VUYWJsZSB0aGF0CisgICAgICAgICAgICByZXF1aXJlIHRoZSBpcHY2SW50ZXJmYWNlVGFibGVMYXN0Q2hhbmdlIHRvIGJlIHVwZGF0ZWQgd2hlbgorICAgICAgICAgICAgdGhleSBhcmUgbW9kaWZpZWQsIHRoZXkgbXVzdCBzcGVjaWZ5IHRoYXQgcmVxdWlyZW1lbnQgaW4KKyAgICAgICAgICAgIHRoZWlyIGRlc2NyaXB0aW9uIGNsYXVzZS4iCisgICAgOjo9IHsgaXAgMjkgfQorCitpcHY2SW50ZXJmYWNlVGFibGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFNFUVVFTkNFIE9GIElwdjZJbnRlcmZhY2VFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRhYmxlIGNvbnRhaW5pbmcgcGVyLWludGVyZmFjZSBJUHY2LXNwZWNpZmljCisgICAgICAgICAgICBpbmZvcm1hdGlvbi4iCisgICAgOjo9IHsgaXAgMzAgfQorCitpcHY2SW50ZXJmYWNlRW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElwdjZJbnRlcmZhY2VFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQW4gZW50cnkgY29udGFpbmluZyBJUHY2LXNwZWNpZmljIGluZm9ybWF0aW9uIGZvciBhIGdpdmVuCisgICAgICAgICAgICBpbnRlcmZhY2UuIgorCisKKworICAgIElOREVYIHsgaXB2NkludGVyZmFjZUlmSW5kZXggfQorICAgIDo6PSB7IGlwdjZJbnRlcmZhY2VUYWJsZSAxIH0KKworSXB2NkludGVyZmFjZUVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgICAgIGlwdjZJbnRlcmZhY2VJZkluZGV4ICAgICAgICAgSW50ZXJmYWNlSW5kZXgsCisgICAgICAgIGlwdjZJbnRlcmZhY2VSZWFzbU1heFNpemUgICAgVW5zaWduZWQzMiwKKyAgICAgICAgaXB2NkludGVyZmFjZUlkZW50aWZpZXIgICAgICBJcHY2QWRkcmVzc0lmSWRlbnRpZmllclRDLAorICAgICAgICBpcHY2SW50ZXJmYWNlRW5hYmxlU3RhdHVzICAgIElOVEVHRVIsCisgICAgICAgIGlwdjZJbnRlcmZhY2VSZWFjaGFibGVUaW1lICAgVW5zaWduZWQzMiwKKyAgICAgICAgaXB2NkludGVyZmFjZVJldHJhbnNtaXRUaW1lICBVbnNpZ25lZDMyLAorICAgICAgICBpcHY2SW50ZXJmYWNlRm9yd2FyZGluZyAgICAgIElOVEVHRVIKKyAgICB9CisKK2lwdjZJbnRlcmZhY2VJZkluZGV4IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbnRlcmZhY2VJbmRleAorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGluZGV4IHZhbHVlIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgaW50ZXJmYWNlIHRvCisgICAgICAgICAgICB3aGljaCB0aGlzIGVudHJ5IGlzIGFwcGxpY2FibGUuICBUaGUgaW50ZXJmYWNlIGlkZW50aWZpZWQgYnkKKyAgICAgICAgICAgIGEgcGFydGljdWxhciB2YWx1ZSBvZiB0aGlzIGluZGV4IGlzIHRoZSBzYW1lIGludGVyZmFjZSBhcworICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgc2FtZSB2YWx1ZSBvZiB0aGUgSUYtTUlCJ3MgaWZJbmRleC4iCisgICAgOjo9IHsgaXB2NkludGVyZmFjZUVudHJ5IDEgfQorCitpcHY2SW50ZXJmYWNlUmVhc21NYXhTaXplIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBVbnNpZ25lZDMyICgxNTAwLi42NTUzNSkKKyAgICBVTklUUyAgICAgICJvY3RldHMiCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHNpemUgb2YgdGhlIGxhcmdlc3QgSVB2NiBkYXRhZ3JhbSB0aGF0IHRoaXMgZW50aXR5IGNhbgorICAgICAgICAgICAgcmUtYXNzZW1ibGUgZnJvbSBpbmNvbWluZyBJUHY2IGZyYWdtZW50ZWQgZGF0YWdyYW1zIHJlY2VpdmVkCisgICAgICAgICAgICBvbiB0aGlzIGludGVyZmFjZS4iCisgICAgOjo9IHsgaXB2NkludGVyZmFjZUVudHJ5IDIgfQorCitpcHY2SW50ZXJmYWNlSWRlbnRpZmllciBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSXB2NkFkZHJlc3NJZklkZW50aWZpZXJUQworICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBJbnRlcmZhY2UgSWRlbnRpZmllciBmb3IgdGhpcyBpbnRlcmZhY2UuICBUaGUgSW50ZXJmYWNlCisgICAgICAgICAgICBJZGVudGlmaWVyIGlzIGNvbWJpbmVkIHdpdGggYW4gYWRkcmVzcyBwcmVmaXggdG8gZm9ybSBhbgorICAgICAgICAgICAgaW50ZXJmYWNlIGFkZHJlc3MuCisKKyAgICAgICAgICAgIEJ5IGRlZmF1bHQsIHRoZSBJbnRlcmZhY2UgSWRlbnRpZmllciBpcyBhdXRvLWNvbmZpZ3VyZWQKKyAgICAgICAgICAgIGFjY29yZGluZyB0byB0aGUgcnVsZXMgb2YgdGhlIGxpbmsgdHlwZSB0byB3aGljaCB0aGlzCisgICAgICAgICAgICBpbnRlcmZhY2UgaXMgYXR0YWNoZWQuCisKKworCisKKyAgICAgICAgICAgIEEgemVybyBsZW5ndGggaWRlbnRpZmllciBtYXkgYmUgdXNlZCB3aGVyZSBhcHByb3ByaWF0ZS4gIE9uZQorICAgICAgICAgICAgcG9zc2libGUgZXhhbXBsZSBpcyBhIGxvb3BiYWNrIGludGVyZmFjZS4iCisgICAgOjo9IHsgaXB2NkludGVyZmFjZUVudHJ5IDMgfQorCistLSBUaGlzIG9iamVjdCBJRCBpcyByZXNlcnZlZCBhcyBpdCB3YXMgdXNlZCBpbiBlYXJsaWVyIHZlcnNpb25zIG9mCistLSB0aGUgTUlCIG1vZHVsZS4gIEluIHRoZW9yeSwgT0lEcyBhcmUgbm90IGFzc2lnbmVkIHVudGlsIHRoZQorLS0gc3BlY2lmaWNhdGlvbiBpcyByZWxlYXNlZCBhcyBhbiBSRkM7IGhvd2V2ZXIsIGFzIHNvbWUgY29tcGFuaWVzCistLSBtYXkgaGF2ZSBzaGlwcGVkIGNvZGUgYmFzZWQgb24gZWFybGllciB2ZXJzaW9ucyBvZiB0aGUgTUlCLCBpdAorLS0gc2VlbXMgYmVzdCB0byByZXNlcnZlIHRoaXMgT0lELiAgVGhpcyBPSUQgaGFkIGJlZW4KKy0tIGlwdjZJbnRlcmZhY2VQaHlzaWNhbEFkZHJlc3MuCistLSA6Oj0geyBpcHY2SW50ZXJmYWNlRW50cnkgNH0KKworaXB2NkludGVyZmFjZUVuYWJsZVN0YXR1cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgIHVwKDEpLAorICAgICAgICAgICAgICAgICBkb3duKDIpCisgICAgfQorICAgIE1BWC1BQ0NFU1MgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgaW5kaWNhdGlvbiBvZiB3aGV0aGVyIElQdjYgaXMgZW5hYmxlZCAodXApIG9yIGRpc2FibGVkCisgICAgICAgICAgICAoZG93bikgb24gdGhpcyBpbnRlcmZhY2UuICBUaGlzIG9iamVjdCBkb2VzIG5vdCBhZmZlY3QgdGhlCisgICAgICAgICAgICBzdGF0ZSBvZiB0aGUgaW50ZXJmYWNlIGl0c2VsZiwgb25seSBpdHMgY29ubmVjdGlvbiB0byBhbgorICAgICAgICAgICAgSVB2NiBzdGFjay4gIFRoZSBJRi1NSUIgc2hvdWxkIGJlIHVzZWQgdG8gY29udHJvbCB0aGUgc3RhdGUKKyAgICAgICAgICAgIG9mIHRoZSBpbnRlcmZhY2UuCisKKyAgICAgICAgICAgIFdoZW4gdGhpcyBvYmplY3QgaXMgd3JpdHRlbiwgdGhlIGVudGl0eSBTSE9VTEQgc2F2ZSB0aGUKKyAgICAgICAgICAgIGNoYW5nZSB0byBub24tdm9sYXRpbGUgc3RvcmFnZSBhbmQgcmVzdG9yZSB0aGUgb2JqZWN0IGZyb20KKyAgICAgICAgICAgIG5vbi12b2xhdGlsZSBzdG9yYWdlIHVwb24gcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIHN5c3RlbS4iCisgICAgOjo9IHsgaXB2NkludGVyZmFjZUVudHJ5IDUgfQorCitpcHY2SW50ZXJmYWNlUmVhY2hhYmxlVGltZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVW5zaWduZWQzMgorICAgIFVOSVRTICAgICAgIm1pbGxpc2Vjb25kcyIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdGltZSBhIG5laWdoYm9yIGlzIGNvbnNpZGVyZWQgcmVhY2hhYmxlIGFmdGVyIHJlY2VpdmluZworICAgICAgICAgICAgYSByZWFjaGFiaWxpdHkgY29uZmlybWF0aW9uLiIKKyAgICBSRUZFUkVOQ0UgIlJGQyAyNDYxLCBTZWN0aW9uIDYuMy4yIgorICAgIDo6PSB7IGlwdjZJbnRlcmZhY2VFbnRyeSA2IH0KKworaXB2NkludGVyZmFjZVJldHJhbnNtaXRUaW1lIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBVbnNpZ25lZDMyCisgICAgVU5JVFMgICAgICAibWlsbGlzZWNvbmRzIgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKworCisKKyAgICAgICAgICAgIlRoZSB0aW1lIGJldHdlZW4gcmV0cmFuc21pc3Npb25zIG9mIE5laWdoYm9yIFNvbGljaXRhdGlvbgorICAgICAgICAgICAgbWVzc2FnZXMgdG8gYSBuZWlnaGJvciB3aGVuIHJlc29sdmluZyB0aGUgYWRkcmVzcyBvciB3aGVuCisgICAgICAgICAgICBwcm9iaW5nIHRoZSByZWFjaGFiaWxpdHkgb2YgYSBuZWlnaGJvci4iCisgICAgUkVGRVJFTkNFICJSRkMgMjQ2MSwgU2VjdGlvbiA2LjMuMiIKKyAgICA6Oj0geyBpcHY2SW50ZXJmYWNlRW50cnkgNyB9CisKK2lwdjZJbnRlcmZhY2VGb3J3YXJkaW5nIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yd2FyZGluZygxKSwgICAgLS0gYWN0aW5nIGFzIGEgcm91dGVyCisgICAgICAgICAgICAgICAgICAgIG5vdEZvcndhcmRpbmcoMikgIC0tIE5PVCBhY3RpbmcgYXMgYSByb3V0ZXIKKyAgICAgICAgICAgICAgIH0KKyAgICBNQVgtQUNDRVNTIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGluZGljYXRpb24gb2Ygd2hldGhlciB0aGlzIGVudGl0eSBpcyBhY3RpbmcgYXMgYW4gSVB2NgorICAgICAgICAgICAgcm91dGVyIG9uIHRoaXMgaW50ZXJmYWNlIHdpdGggcmVzcGVjdCB0byB0aGUgZm9yd2FyZGluZyBvZgorICAgICAgICAgICAgZGF0YWdyYW1zIHJlY2VpdmVkIGJ5LCBidXQgbm90IGFkZHJlc3NlZCB0bywgdGhpcyBlbnRpdHkuCisgICAgICAgICAgICBJUHY2IHJvdXRlcnMgZm9yd2FyZCBkYXRhZ3JhbXMuICBJUHY2IGhvc3RzIGRvIG5vdCAoZXhjZXB0CisgICAgICAgICAgICB0aG9zZSBzb3VyY2Utcm91dGVkIHZpYSB0aGUgaG9zdCkuCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGlzIGNvbnN0cmFpbmVkIGJ5IGlwdjZJcEZvcndhcmRpbmcgYW5kIGlzCisgICAgICAgICAgICBpZ25vcmVkIGlmIGlwdjZJcEZvcndhcmRpbmcgaXMgc2V0IHRvIG5vdEZvcndhcmRpbmcuICBUaG9zZQorICAgICAgICAgICAgc3lzdGVtcyB0aGF0IGRvIG5vdCBwcm92aWRlIHBlci1pbnRlcmZhY2UgY29udHJvbCBvZiB0aGUKKyAgICAgICAgICAgIGZvcndhcmRpbmcgZnVuY3Rpb24gc2hvdWxkIHNldCB0aGlzIG9iamVjdCB0byBmb3J3YXJkaW5nIGZvcgorICAgICAgICAgICAgYWxsIGludGVyZmFjZXMgYW5kIGFsbG93IHRoZSBpcHY2SXBGb3J3YXJkaW5nIG9iamVjdCB0bworICAgICAgICAgICAgY29udHJvbCB0aGUgZm9yd2FyZGluZyBjYXBhYmlsaXR5LgorCisgICAgICAgICAgICBXaGVuIHRoaXMgb2JqZWN0IGlzIHdyaXR0ZW4sIHRoZSBlbnRpdHkgU0hPVUxEIHNhdmUgdGhlCisgICAgICAgICAgICBjaGFuZ2UgdG8gbm9uLXZvbGF0aWxlIHN0b3JhZ2UgYW5kIHJlc3RvcmUgdGhlIG9iamVjdCBmcm9tCisgICAgICAgICAgICBub24tdm9sYXRpbGUgc3RvcmFnZSB1cG9uIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBzeXN0ZW0uIgorICAgIDo6PSB7IGlwdjZJbnRlcmZhY2VFbnRyeSA4IH0KKworLS0KKy0tIFBlci1JbnRlcmZhY2Ugb3IgU3lzdGVtLVdpZGUgSVAgc3RhdGlzdGljcy4KKy0tCistLSBUaGUgZm9sbG93aW5nIHR3byB0YWJsZXMsIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQgaXBJZlN0YXRzVGFibGUsCistLSBhcmUgaW50ZW5kZWQgdG8gcHJvdmlkZSB0aGUgc2FtZSBjb3VudGVycyBhdCBkaWZmZXJlbnQgZ3JhbnVsYXJpdGllcy4KKy0tIFRoZSBpcFN5c3RlbVN0YXRzVGFibGUgcHJvdmlkZXMgc3lzdGVtIHdpZGUgY291bnRlcnMgYWdncmVnYXRpbmcKKy0tIHRoZSB0cmFmZmljIGNvdW50ZXJzIGZvciBhbGwgaW50ZXJmYWNlcyBmb3IgYSBnaXZlbiBhZGRyZXNzIHR5cGUuCistLSBUaGUgaXBJZlN0YXRzVGFibGUgcHJvdmlkZXMgdGhlIHNhbWUgY291bnRlcnMgYnV0IGZvciBzcGVjaWZpYworLS0gaW50ZXJmYWNlcyByYXRoZXIgdGhhbiBhcyBhbiBhZ2dyZWdhdGUuCistLQorLS0gTm90ZSB3ZWxsOiBJZiBhIHN5c3RlbSBwcm92aWRlcyBib3RoIHN5c3RlbS13aWRlIGFuZCBpbnRlcmZhY2UtCistLSBzcGVjaWZpYyB2YWx1ZXMsIHRoZSBzeXN0ZW0td2lkZSB2YWx1ZSBtYXkgbm90IGJlIGVxdWFsIHRvIHRoZSBzdW0KKy0tIG9mIHRoZSBpbnRlcmZhY2Utc3BlY2lmaWMgdmFsdWVzIGFjcm9zcyBhbGwgaW50ZXJmYWNlcyBkdWUgdG8gZS5nLiwKKy0tIGR5bmFtaWMgaW50ZXJmYWNlIGNyZWF0aW9uL2RlbGV0aW9uLgorLS0KKy0tIE5vdGUgd2VsbDogQm90aCBvZiB0aGVzZSB0YWJsZXMgY29udGFpbiBzb21lIGl0ZW1zIHRoYXQgYXJlCisKKworCistLSByZXByZXNlbnRlZCBieSB0d28gb2JqZWN0cywgcmVwcmVzZW50aW5nIHRoZSB2YWx1ZSBpbiBlaXRoZXIgMzIKKy0tIG9yIDY0IGJpdHMuICBGb3IgdGhvc2Ugb2JqZWN0cywgdGhlIDMyLWJpdCB2YWx1ZSBNVVNUIGJlIHRoZSBsb3cKKy0tIG9yZGVyIDMyIGJpdHMgb2YgdGhlIDY0LWJpdCB2YWx1ZS4gIEFsc28gbm90ZSB0aGF0IHRoZSAzMi1iaXQKKy0tIGNvdW50ZXJzIG11c3QgYmUgaW5jbHVkZWQgd2hlbiB0aGUgNjQtYml0IGNvdW50ZXJzIGFyZSBpbmNsdWRlZC4KKworaXBUcmFmZmljU3RhdHMgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgaXAgMzEgfQorCitpcFN5c3RlbVN0YXRzVGFibGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFNFUVVFTkNFIE9GIElwU3lzdGVtU3RhdHNFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRhYmxlIGNvbnRhaW5pbmcgc3lzdGVtIHdpZGUsIElQIHZlcnNpb24gc3BlY2lmaWMKKyAgICAgICAgICAgIHRyYWZmaWMgc3RhdGlzdGljcy4gIFRoaXMgdGFibGUgYW5kIHRoZSBpcElmU3RhdHNUYWJsZQorICAgICAgICAgICAgY29udGFpbiBzaW1pbGFyIG9iamVjdHMgd2hvc2UgZGlmZmVyZW5jZSBpcyBpbiB0aGVpcgorICAgICAgICAgICAgZ3JhbnVsYXJpdHkuICBXaGVyZSB0aGlzIHRhYmxlIGNvbnRhaW5zIHN5c3RlbSB3aWRlIHRyYWZmaWMKKyAgICAgICAgICAgIHN0YXRpc3RpY3MsIHRoZSBpcElmU3RhdHNUYWJsZSBjb250YWlucyB0aGUgc2FtZSBzdGF0aXN0aWNzCisgICAgICAgICAgICBidXQgY291bnRlZCBvbiBhIHBlci1pbnRlcmZhY2UgYmFzaXMuIgorICAgIDo6PSB7IGlwVHJhZmZpY1N0YXRzIDEgfQorCitpcFN5c3RlbVN0YXRzRW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElwU3lzdGVtU3RhdHNFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQSBzdGF0aXN0aWNzIGVudHJ5IGNvbnRhaW5pbmcgc3lzdGVtLXdpZGUgb2JqZWN0cyBmb3IgYQorICAgICAgICAgICAgcGFydGljdWxhciBJUCB2ZXJzaW9uLiIKKyAgICBJTkRFWCB7IGlwU3lzdGVtU3RhdHNJUFZlcnNpb24gfQorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNUYWJsZSAxIH0KKworSXBTeXN0ZW1TdGF0c0VudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgICAgIGlwU3lzdGVtU3RhdHNJUFZlcnNpb24gICAgICAgICAgIEluZXRWZXJzaW9uLAorICAgICAgICBpcFN5c3RlbVN0YXRzSW5SZWNlaXZlcyAgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luUmVjZWl2ZXMgICAgICAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c0luT2N0ZXRzICAgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzSENJbk9jdGV0cyAgICAgICAgICBDb3VudGVyNjQsCisgICAgICAgIGlwU3lzdGVtU3RhdHNJbkhkckVycm9ycyAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c0luTm9Sb3V0ZXMgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzSW5BZGRyRXJyb3JzICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwU3lzdGVtU3RhdHNJblVua25vd25Qcm90b3MgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c0luVHJ1bmNhdGVkUGt0cyAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzSW5Gb3J3RGF0YWdyYW1zICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luRm9yd0RhdGFncmFtcyAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c1JlYXNtUmVxZHMgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzUmVhc21PS3MgICAgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwU3lzdGVtU3RhdHNSZWFzbUZhaWxzICAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c0luRGlzY2FyZHMgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzSW5EZWxpdmVycyAgICAgICAgICBDb3VudGVyMzIsCisKKworCisgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luRGVsaXZlcnMgICAgICAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c091dFJlcXVlc3RzICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzSENPdXRSZXF1ZXN0cyAgICAgICBDb3VudGVyNjQsCisgICAgICAgIGlwU3lzdGVtU3RhdHNPdXROb1JvdXRlcyAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZvcndEYXRhZ3JhbXMgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzSENPdXRGb3J3RGF0YWdyYW1zICBDb3VudGVyNjQsCisgICAgICAgIGlwU3lzdGVtU3RhdHNPdXREaXNjYXJkcyAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdSZXFkcyAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzT3V0RnJhZ09LcyAgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRGcmFnRmFpbHMgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdDcmVhdGVzICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzT3V0VHJhbnNtaXRzICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dFRyYW5zbWl0cyAgICAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c091dE9jdGV0cyAgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzSENPdXRPY3RldHMgICAgICAgICBDb3VudGVyNjQsCisgICAgICAgIGlwU3lzdGVtU3RhdHNJbk1jYXN0UGt0cyAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHMgICAgICAgQ291bnRlcjY0LAorICAgICAgICBpcFN5c3RlbVN0YXRzSW5NY2FzdE9jdGV0cyAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luTWNhc3RPY3RldHMgICAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c091dE1jYXN0UGt0cyAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzSENPdXRNY2FzdFBrdHMgICAgICBDb3VudGVyNjQsCisgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRNY2FzdE9jdGV0cyAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RPY3RldHMgICAgQ291bnRlcjY0LAorICAgICAgICBpcFN5c3RlbVN0YXRzSW5CY2FzdFBrdHMgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luQmNhc3RQa3RzICAgICAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c091dEJjYXN0UGt0cyAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcFN5c3RlbVN0YXRzSENPdXRCY2FzdFBrdHMgICAgICBDb3VudGVyNjQsCisgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZSAgIFRpbWVTdGFtcCwKKyAgICAgICAgaXBTeXN0ZW1TdGF0c1JlZnJlc2hSYXRlICAgICAgICAgVW5zaWduZWQzMgorICAgIH0KKworaXBTeXN0ZW1TdGF0c0lQVmVyc2lvbiBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldFZlcnNpb24KKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBJUCB2ZXJzaW9uIG9mIHRoaXMgcm93LiIKKyAgICA6Oj0geyBpcFN5c3RlbVN0YXRzRW50cnkgMSB9CisKKy0tIFRoaXMgb2JqZWN0IElEIGlzIHJlc2VydmVkIHRvIGFsbG93IHRoZSBJRHMgZm9yIHRoaXMgdGFibGUncyBvYmplY3RzCistLSB0byBhbGlnbiB3aXRoIHRoZSBvYmplY3RzIGluIHRoZSBpcElmU3RhdHNUYWJsZS4KKy0tIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAyIH0KKworaXBTeXN0ZW1TdGF0c0luUmVjZWl2ZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKworCisKKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgaW5wdXQgSVAgZGF0YWdyYW1zIHJlY2VpdmVkLCBpbmNsdWRpbmcKKyAgICAgICAgICAgIHRob3NlIHJlY2VpdmVkIGluIGVycm9yLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAzIH0KKworaXBTeXN0ZW1TdGF0c0hDSW5SZWNlaXZlcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBpbnB1dCBJUCBkYXRhZ3JhbXMgcmVjZWl2ZWQsIGluY2x1ZGluZworICAgICAgICAgICAgdGhvc2UgcmVjZWl2ZWQgaW4gZXJyb3IuICBUaGlzIG9iamVjdCBjb3VudHMgdGhlIHNhbWUKKyAgICAgICAgICAgIGRhdGFncmFtcyBhcyBpcFN5c3RlbVN0YXRzSW5SZWNlaXZlcywgYnV0IGFsbG93cyBmb3IgbGFyZ2VyCisgICAgICAgICAgICB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDQgfQorCitpcFN5c3RlbVN0YXRzSW5PY3RldHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIGluIGlucHV0IElQIGRhdGFncmFtcywKKyAgICAgICAgICAgIGluY2x1ZGluZyB0aG9zZSByZWNlaXZlZCBpbiBlcnJvci4gIE9jdGV0cyBmcm9tIGRhdGFncmFtcworICAgICAgICAgICAgY291bnRlZCBpbiBpcFN5c3RlbVN0YXRzSW5SZWNlaXZlcyBNVVNUIGJlIGNvdW50ZWQgaGVyZS4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcFN5c3RlbVN0YXRzRW50cnkgNSB9CisKK2lwU3lzdGVtU3RhdHNIQ0luT2N0ZXRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyNjQKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIG9jdGV0cyByZWNlaXZlZCBpbiBpbnB1dCBJUCBkYXRhZ3JhbXMsCisgICAgICAgICAgICBpbmNsdWRpbmcgdGhvc2UgcmVjZWl2ZWQgaW4gZXJyb3IuICBUaGlzIG9iamVjdCBjb3VudHMgdGhlCisgICAgICAgICAgICBzYW1lIG9jdGV0cyBhcyBpcFN5c3RlbVN0YXRzSW5PY3RldHMsIGJ1dCBhbGxvd3MgZm9yIGxhcmdlcgorCisKKworICAgICAgICAgICAgdmFsdWVzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSA2IH0KKworaXBTeXN0ZW1TdGF0c0luSGRyRXJyb3JzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGlucHV0IElQIGRhdGFncmFtcyBkaXNjYXJkZWQgZHVlIHRvIGVycm9ycyBpbgorICAgICAgICAgICAgdGhlaXIgSVAgaGVhZGVycywgaW5jbHVkaW5nIHZlcnNpb24gbnVtYmVyIG1pc21hdGNoLCBvdGhlcgorICAgICAgICAgICAgZm9ybWF0IGVycm9ycywgaG9wIGNvdW50IGV4Y2VlZGVkLCBlcnJvcnMgZGlzY292ZXJlZCBpbgorICAgICAgICAgICAgcHJvY2Vzc2luZyB0aGVpciBJUCBvcHRpb25zLCBldGMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDcgfQorCitpcFN5c3RlbVN0YXRzSW5Ob1JvdXRlcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBpbnB1dCBJUCBkYXRhZ3JhbXMgZGlzY2FyZGVkIGJlY2F1c2Ugbm8gcm91dGUKKyAgICAgICAgICAgIGNvdWxkIGJlIGZvdW5kIHRvIHRyYW5zbWl0IHRoZW0gdG8gdGhlaXIgZGVzdGluYXRpb24uCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDggfQorCitpcFN5c3RlbVN0YXRzSW5BZGRyRXJyb3JzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGlucHV0IElQIGRhdGFncmFtcyBkaXNjYXJkZWQgYmVjYXVzZSB0aGUgSVAKKyAgICAgICAgICAgIGFkZHJlc3MgaW4gdGhlaXIgSVAgaGVhZGVyJ3MgZGVzdGluYXRpb24gZmllbGQgd2FzIG5vdCBhCisgICAgICAgICAgICB2YWxpZCBhZGRyZXNzIHRvIGJlIHJlY2VpdmVkIGF0IHRoaXMgZW50aXR5LiAgVGhpcyBjb3VudAorICAgICAgICAgICAgaW5jbHVkZXMgaW52YWxpZCBhZGRyZXNzZXMgKGUuZy4sIDo6MCkuICBGb3IgZW50aXRpZXMKKyAgICAgICAgICAgIHRoYXQgYXJlIG5vdCBJUCByb3V0ZXJzIGFuZCB0aGVyZWZvcmUgZG8gbm90IGZvcndhcmQKKworCisKKyAgICAgICAgICAgIGRhdGFncmFtcywgdGhpcyBjb3VudGVyIGluY2x1ZGVzIGRhdGFncmFtcyBkaXNjYXJkZWQKKyAgICAgICAgICAgIGJlY2F1c2UgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3Mgd2FzIG5vdCBhIGxvY2FsIGFkZHJlc3MuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDkgfQorCitpcFN5c3RlbVN0YXRzSW5Vbmtub3duUHJvdG9zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGxvY2FsbHktYWRkcmVzc2VkIElQIGRhdGFncmFtcyByZWNlaXZlZAorICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IGJ1dCBkaXNjYXJkZWQgYmVjYXVzZSBvZiBhbiB1bmtub3duIG9yCisgICAgICAgICAgICB1bnN1cHBvcnRlZCBwcm90b2NvbC4KKworICAgICAgICAgICAgV2hlbiB0cmFja2luZyBpbnRlcmZhY2Ugc3RhdGlzdGljcywgdGhlIGNvdW50ZXIgb2YgdGhlCisgICAgICAgICAgICBpbnRlcmZhY2UgdG8gd2hpY2ggdGhlc2UgZGF0YWdyYW1zIHdlcmUgYWRkcmVzc2VkIGlzCisgICAgICAgICAgICBpbmNyZW1lbnRlZC4gIFRoaXMgaW50ZXJmYWNlIG1pZ2h0IG5vdCBiZSB0aGUgc2FtZSBhcyB0aGUKKyAgICAgICAgICAgIGlucHV0IGludGVyZmFjZSBmb3Igc29tZSBvZiB0aGUgZGF0YWdyYW1zLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAxMCB9CisKK2lwU3lzdGVtU3RhdHNJblRydW5jYXRlZFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgaW5wdXQgSVAgZGF0YWdyYW1zIGRpc2NhcmRlZCBiZWNhdXNlIHRoZQorICAgICAgICAgICAgZGF0YWdyYW0gZnJhbWUgZGlkbid0IGNhcnJ5IGVub3VnaCBkYXRhLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAxMSB9CisKK2lwU3lzdGVtU3RhdHNJbkZvcndEYXRhZ3JhbXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKworCisKKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgaW5wdXQgZGF0YWdyYW1zIGZvciB3aGljaCB0aGlzIGVudGl0eSB3YXMgbm90CisgICAgICAgICAgICB0aGVpciBmaW5hbCBJUCBkZXN0aW5hdGlvbiBhbmQgZm9yIHdoaWNoIHRoaXMgZW50aXR5CisgICAgICAgICAgICBhdHRlbXB0ZWQgdG8gZmluZCBhIHJvdXRlIHRvIGZvcndhcmQgdGhlbSB0byB0aGF0IGZpbmFsCisgICAgICAgICAgICBkZXN0aW5hdGlvbi4gIEluIGVudGl0aWVzIHRoYXQgZG8gbm90IGFjdCBhcyBJUCByb3V0ZXJzLAorICAgICAgICAgICAgdGhpcyBjb3VudGVyIHdpbGwgaW5jbHVkZSBvbmx5IHRob3NlIGRhdGFncmFtcyB0aGF0IHdlcmUKKyAgICAgICAgICAgIFNvdXJjZS1Sb3V0ZWQgdmlhIHRoaXMgZW50aXR5LCBhbmQgdGhlIFNvdXJjZS1Sb3V0ZQorICAgICAgICAgICAgcHJvY2Vzc2luZyB3YXMgc3VjY2Vzc2Z1bC4KKworICAgICAgICAgICAgV2hlbiB0cmFja2luZyBpbnRlcmZhY2Ugc3RhdGlzdGljcywgdGhlIGNvdW50ZXIgb2YgdGhlCisgICAgICAgICAgICBpbmNvbWluZyBpbnRlcmZhY2UgaXMgaW5jcmVtZW50ZWQgZm9yIGVhY2ggZGF0YWdyYW0uCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDEyIH0KKworaXBTeXN0ZW1TdGF0c0hDSW5Gb3J3RGF0YWdyYW1zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyNjQKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGlucHV0IGRhdGFncmFtcyBmb3Igd2hpY2ggdGhpcyBlbnRpdHkgd2FzIG5vdAorICAgICAgICAgICAgdGhlaXIgZmluYWwgSVAgZGVzdGluYXRpb24gYW5kIGZvciB3aGljaCB0aGlzIGVudGl0eQorICAgICAgICAgICAgYXR0ZW1wdGVkIHRvIGZpbmQgYSByb3V0ZSB0byBmb3J3YXJkIHRoZW0gdG8gdGhhdCBmaW5hbAorICAgICAgICAgICAgZGVzdGluYXRpb24uICBUaGlzIG9iamVjdCBjb3VudHMgdGhlIHNhbWUgcGFja2V0cyBhcworICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luRm9yd0RhdGFncmFtcywgYnV0IGFsbG93cyBmb3IgbGFyZ2VyIHZhbHVlcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcFN5c3RlbVN0YXRzRW50cnkgMTMgfQorCitpcFN5c3RlbVN0YXRzUmVhc21SZXFkcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUCBmcmFnbWVudHMgcmVjZWl2ZWQgdGhhdCBuZWVkZWQgdG8gYmUKKyAgICAgICAgICAgIHJlYXNzZW1ibGVkIGF0IHRoaXMgaW50ZXJmYWNlLgorCisgICAgICAgICAgICBXaGVuIHRyYWNraW5nIGludGVyZmFjZSBzdGF0aXN0aWNzLCB0aGUgY291bnRlciBvZiB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSB0byB3aGljaCB0aGVzZSBmcmFnbWVudHMgd2VyZSBhZGRyZXNzZWQgaXMKKyAgICAgICAgICAgIGluY3JlbWVudGVkLiAgVGhpcyBpbnRlcmZhY2UgbWlnaHQgbm90IGJlIHRoZSBzYW1lIGFzIHRoZQorICAgICAgICAgICAgaW5wdXQgaW50ZXJmYWNlIGZvciBzb21lIG9mIHRoZSBmcmFnbWVudHMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorCisKKworICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDE0IH0KKworaXBTeXN0ZW1TdGF0c1JlYXNtT0tzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIGRhdGFncmFtcyBzdWNjZXNzZnVsbHkgcmVhc3NlbWJsZWQuCisKKyAgICAgICAgICAgIFdoZW4gdHJhY2tpbmcgaW50ZXJmYWNlIHN0YXRpc3RpY3MsIHRoZSBjb3VudGVyIG9mIHRoZQorICAgICAgICAgICAgaW50ZXJmYWNlIHRvIHdoaWNoIHRoZXNlIGRhdGFncmFtcyB3ZXJlIGFkZHJlc3NlZCBpcworICAgICAgICAgICAgaW5jcmVtZW50ZWQuICBUaGlzIGludGVyZmFjZSBtaWdodCBub3QgYmUgdGhlIHNhbWUgYXMgdGhlCisgICAgICAgICAgICBpbnB1dCBpbnRlcmZhY2UgZm9yIHNvbWUgb2YgdGhlIGRhdGFncmFtcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcFN5c3RlbVN0YXRzRW50cnkgMTUgfQorCitpcFN5c3RlbVN0YXRzUmVhc21GYWlscyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBmYWlsdXJlcyBkZXRlY3RlZCBieSB0aGUgSVAgcmUtYXNzZW1ibHkKKyAgICAgICAgICAgIGFsZ29yaXRobSAoZm9yIHdoYXRldmVyIHJlYXNvbjogdGltZWQgb3V0LCBlcnJvcnMsIGV0Yy4pLgorICAgICAgICAgICAgTm90ZSB0aGF0IHRoaXMgaXMgbm90IG5lY2Vzc2FyaWx5IGEgY291bnQgb2YgZGlzY2FyZGVkIElQCisgICAgICAgICAgICBmcmFnbWVudHMgc2luY2Ugc29tZSBhbGdvcml0aG1zIChub3RhYmx5IHRoZSBhbGdvcml0aG0gaW4KKyAgICAgICAgICAgIFJGQyA4MTUpIGNhbiBsb3NlIHRyYWNrIG9mIHRoZSBudW1iZXIgb2YgZnJhZ21lbnRzIGJ5CisgICAgICAgICAgICBjb21iaW5pbmcgdGhlbSBhcyB0aGV5IGFyZSByZWNlaXZlZC4KKworICAgICAgICAgICAgV2hlbiB0cmFja2luZyBpbnRlcmZhY2Ugc3RhdGlzdGljcywgdGhlIGNvdW50ZXIgb2YgdGhlCisgICAgICAgICAgICBpbnRlcmZhY2UgdG8gd2hpY2ggdGhlc2UgZnJhZ21lbnRzIHdlcmUgYWRkcmVzc2VkIGlzCisgICAgICAgICAgICBpbmNyZW1lbnRlZC4gIFRoaXMgaW50ZXJmYWNlIG1pZ2h0IG5vdCBiZSB0aGUgc2FtZSBhcyB0aGUKKyAgICAgICAgICAgIGlucHV0IGludGVyZmFjZSBmb3Igc29tZSBvZiB0aGUgZnJhZ21lbnRzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAxNiB9CisKK2lwU3lzdGVtU3RhdHNJbkRpc2NhcmRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKworCisKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGlucHV0IElQIGRhdGFncmFtcyBmb3Igd2hpY2ggbm8gcHJvYmxlbXMgd2VyZQorICAgICAgICAgICAgZW5jb3VudGVyZWQgdG8gcHJldmVudCB0aGVpciBjb250aW51ZWQgcHJvY2Vzc2luZywgYnV0CisgICAgICAgICAgICB3ZXJlIGRpc2NhcmRlZCAoZS5nLiwgZm9yIGxhY2sgb2YgYnVmZmVyIHNwYWNlKS4gIE5vdGUgdGhhdAorICAgICAgICAgICAgdGhpcyBjb3VudGVyIGRvZXMgbm90IGluY2x1ZGUgYW55IGRhdGFncmFtcyBkaXNjYXJkZWQgd2hpbGUKKyAgICAgICAgICAgIGF3YWl0aW5nIHJlLWFzc2VtYmx5LgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAxNyB9CisKK2lwU3lzdGVtU3RhdHNJbkRlbGl2ZXJzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIGRhdGFncmFtcyBzdWNjZXNzZnVsbHkgZGVsaXZlcmVkIHRvIElQCisgICAgICAgICAgICB1c2VyLXByb3RvY29scyAoaW5jbHVkaW5nIElDTVApLgorCisgICAgICAgICAgICBXaGVuIHRyYWNraW5nIGludGVyZmFjZSBzdGF0aXN0aWNzLCB0aGUgY291bnRlciBvZiB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSB0byB3aGljaCB0aGVzZSBkYXRhZ3JhbXMgd2VyZSBhZGRyZXNzZWQgaXMKKyAgICAgICAgICAgIGluY3JlbWVudGVkLiAgVGhpcyBpbnRlcmZhY2UgbWlnaHQgbm90IGJlIHRoZSBzYW1lIGFzIHRoZQorICAgICAgICAgICAgaW5wdXQgaW50ZXJmYWNlIGZvciBzb21lIG9mIHRoZSBkYXRhZ3JhbXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDE4IH0KKworaXBTeXN0ZW1TdGF0c0hDSW5EZWxpdmVycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBkYXRhZ3JhbXMgc3VjY2Vzc2Z1bGx5IGRlbGl2ZXJlZCB0byBJUAorICAgICAgICAgICAgdXNlci1wcm90b2NvbHMgKGluY2x1ZGluZyBJQ01QKS4gIFRoaXMgb2JqZWN0IGNvdW50cyB0aGUKKyAgICAgICAgICAgIHNhbWUgcGFja2V0cyBhcyBpcFN5c3RlbVN0YXRzSW5EZWxpdmVycywgYnV0IGFsbG93cyBmb3IKKyAgICAgICAgICAgIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisKKworCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDE5IH0KKworaXBTeXN0ZW1TdGF0c091dFJlcXVlc3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIElQIGRhdGFncmFtcyB0aGF0IGxvY2FsIElQIHVzZXItCisgICAgICAgICAgICBwcm90b2NvbHMgKGluY2x1ZGluZyBJQ01QKSBzdXBwbGllZCB0byBJUCBpbiByZXF1ZXN0cyBmb3IKKyAgICAgICAgICAgIHRyYW5zbWlzc2lvbi4gIE5vdGUgdGhhdCB0aGlzIGNvdW50ZXIgZG9lcyBub3QgaW5jbHVkZSBhbnkKKyAgICAgICAgICAgIGRhdGFncmFtcyBjb3VudGVkIGluIGlwU3lzdGVtU3RhdHNPdXRGb3J3RGF0YWdyYW1zLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAyMCB9CisKK2lwU3lzdGVtU3RhdHNIQ091dFJlcXVlc3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyNjQKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIElQIGRhdGFncmFtcyB0aGF0IGxvY2FsIElQIHVzZXItCisgICAgICAgICAgICBwcm90b2NvbHMgKGluY2x1ZGluZyBJQ01QKSBzdXBwbGllZCB0byBJUCBpbiByZXF1ZXN0cyBmb3IKKyAgICAgICAgICAgIHRyYW5zbWlzc2lvbi4gIFRoaXMgb2JqZWN0IGNvdW50cyB0aGUgc2FtZSBwYWNrZXRzIGFzCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0UmVxdWVzdHMsIGJ1dCBhbGxvd3MgZm9yIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDIxIH0KKworaXBTeXN0ZW1TdGF0c091dE5vUm91dGVzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGxvY2FsbHkgZ2VuZXJhdGVkIElQIGRhdGFncmFtcyBkaXNjYXJkZWQKKyAgICAgICAgICAgIGJlY2F1c2Ugbm8gcm91dGUgY291bGQgYmUgZm91bmQgdG8gdHJhbnNtaXQgdGhlbSB0byB0aGVpcgorICAgICAgICAgICAgZGVzdGluYXRpb24uCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDIyIH0KKworCisKK2lwU3lzdGVtU3RhdHNPdXRGb3J3RGF0YWdyYW1zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGRhdGFncmFtcyBmb3Igd2hpY2ggdGhpcyBlbnRpdHkgd2FzIG5vdCB0aGVpcgorICAgICAgICAgICAgZmluYWwgSVAgZGVzdGluYXRpb24gYW5kIGZvciB3aGljaCBpdCB3YXMgc3VjY2Vzc2Z1bCBpbgorICAgICAgICAgICAgZmluZGluZyBhIHBhdGggdG8gdGhlaXIgZmluYWwgZGVzdGluYXRpb24uICBJbiBlbnRpdGllcworICAgICAgICAgICAgdGhhdCBkbyBub3QgYWN0IGFzIElQIHJvdXRlcnMsIHRoaXMgY291bnRlciB3aWxsIGluY2x1ZGUKKyAgICAgICAgICAgIG9ubHkgdGhvc2UgZGF0YWdyYW1zIHRoYXQgd2VyZSBTb3VyY2UtUm91dGVkIHZpYSB0aGlzCisgICAgICAgICAgICBlbnRpdHksIGFuZCB0aGUgU291cmNlLVJvdXRlIHByb2Nlc3Npbmcgd2FzIHN1Y2Nlc3NmdWwuCisKKyAgICAgICAgICAgIFdoZW4gdHJhY2tpbmcgaW50ZXJmYWNlIHN0YXRpc3RpY3MsIHRoZSBjb3VudGVyIG9mIHRoZQorICAgICAgICAgICAgb3V0Z29pbmcgaW50ZXJmYWNlIGlzIGluY3JlbWVudGVkIGZvciBhIHN1Y2Nlc3NmdWxseQorICAgICAgICAgICAgZm9yd2FyZGVkIGRhdGFncmFtLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAyMyB9CisKK2lwU3lzdGVtU3RhdHNIQ091dEZvcndEYXRhZ3JhbXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgZGF0YWdyYW1zIGZvciB3aGljaCB0aGlzIGVudGl0eSB3YXMgbm90IHRoZWlyCisgICAgICAgICAgICBmaW5hbCBJUCBkZXN0aW5hdGlvbiBhbmQgZm9yIHdoaWNoIGl0IHdhcyBzdWNjZXNzZnVsIGluCisgICAgICAgICAgICBmaW5kaW5nIGEgcGF0aCB0byB0aGVpciBmaW5hbCBkZXN0aW5hdGlvbi4gIFRoaXMgb2JqZWN0CisgICAgICAgICAgICBjb3VudHMgdGhlIHNhbWUgcGFja2V0cyBhcyBpcFN5c3RlbVN0YXRzT3V0Rm9yd0RhdGFncmFtcywKKyAgICAgICAgICAgIGJ1dCBhbGxvd3MgZm9yIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDI0IH0KKworaXBTeXN0ZW1TdGF0c091dERpc2NhcmRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIG91dHB1dCBJUCBkYXRhZ3JhbXMgZm9yIHdoaWNoIG5vIHByb2JsZW0gd2FzCisgICAgICAgICAgICBlbmNvdW50ZXJlZCB0byBwcmV2ZW50IHRoZWlyIHRyYW5zbWlzc2lvbiB0byB0aGVpcgorICAgICAgICAgICAgZGVzdGluYXRpb24sIGJ1dCB3ZXJlIGRpc2NhcmRlZCAoZS5nLiwgZm9yIGxhY2sgb2YKKyAgICAgICAgICAgIGJ1ZmZlciBzcGFjZSkuICBOb3RlIHRoYXQgdGhpcyBjb3VudGVyIHdvdWxkIGluY2x1ZGUKKworCisKKyAgICAgICAgICAgIGRhdGFncmFtcyBjb3VudGVkIGluIGlwU3lzdGVtU3RhdHNPdXRGb3J3RGF0YWdyYW1zIGlmIGFueQorICAgICAgICAgICAgc3VjaCBkYXRhZ3JhbXMgbWV0IHRoaXMgKGRpc2NyZXRpb25hcnkpIGRpc2NhcmQgY3JpdGVyaW9uLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAyNSB9CisKK2lwU3lzdGVtU3RhdHNPdXRGcmFnUmVxZHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHRoYXQgd291bGQgcmVxdWlyZSBmcmFnbWVudGF0aW9uCisgICAgICAgICAgICBpbiBvcmRlciB0byBiZSB0cmFuc21pdHRlZC4KKworICAgICAgICAgICAgV2hlbiB0cmFja2luZyBpbnRlcmZhY2Ugc3RhdGlzdGljcywgdGhlIGNvdW50ZXIgb2YgdGhlCisgICAgICAgICAgICBvdXRnb2luZyBpbnRlcmZhY2UgaXMgaW5jcmVtZW50ZWQgZm9yIGEgc3VjY2Vzc2Z1bGx5CisgICAgICAgICAgICBmcmFnbWVudGVkIGRhdGFncmFtLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAyNiB9CisKK2lwU3lzdGVtU3RhdHNPdXRGcmFnT0tzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIGRhdGFncmFtcyB0aGF0IGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkKKyAgICAgICAgICAgIGZyYWdtZW50ZWQuCisKKyAgICAgICAgICAgIFdoZW4gdHJhY2tpbmcgaW50ZXJmYWNlIHN0YXRpc3RpY3MsIHRoZSBjb3VudGVyIG9mIHRoZQorICAgICAgICAgICAgb3V0Z29pbmcgaW50ZXJmYWNlIGlzIGluY3JlbWVudGVkIGZvciBhIHN1Y2Nlc3NmdWxseQorICAgICAgICAgICAgZnJhZ21lbnRlZCBkYXRhZ3JhbS4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcFN5c3RlbVN0YXRzRW50cnkgMjcgfQorCitpcFN5c3RlbVN0YXRzT3V0RnJhZ0ZhaWxzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorCisKKworICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIGRhdGFncmFtcyB0aGF0IGhhdmUgYmVlbiBkaXNjYXJkZWQgYmVjYXVzZQorICAgICAgICAgICAgdGhleSBuZWVkZWQgdG8gYmUgZnJhZ21lbnRlZCBidXQgY291bGQgbm90IGJlLiAgVGhpcworICAgICAgICAgICAgaW5jbHVkZXMgSVB2NCBwYWNrZXRzIHRoYXQgaGF2ZSB0aGUgREYgYml0IHNldCBhbmQgSVB2NgorICAgICAgICAgICAgcGFja2V0cyB0aGF0IGFyZSBiZWluZyBmb3J3YXJkZWQgYW5kIGV4Y2VlZCB0aGUgb3V0Z29pbmcKKyAgICAgICAgICAgIGxpbmsgTVRVLgorCisgICAgICAgICAgICBXaGVuIHRyYWNraW5nIGludGVyZmFjZSBzdGF0aXN0aWNzLCB0aGUgY291bnRlciBvZiB0aGUKKyAgICAgICAgICAgIG91dGdvaW5nIGludGVyZmFjZSBpcyBpbmNyZW1lbnRlZCBmb3IgYW4gdW5zdWNjZXNzZnVsbHkKKyAgICAgICAgICAgIGZyYWdtZW50ZWQgZGF0YWdyYW0uCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDI4IH0KKworaXBTeXN0ZW1TdGF0c091dEZyYWdDcmVhdGVzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIG91dHB1dCBkYXRhZ3JhbSBmcmFnbWVudHMgdGhhdCBoYXZlIGJlZW4KKyAgICAgICAgICAgIGdlbmVyYXRlZCBhcyBhIHJlc3VsdCBvZiBJUCBmcmFnbWVudGF0aW9uLgorCisgICAgICAgICAgICBXaGVuIHRyYWNraW5nIGludGVyZmFjZSBzdGF0aXN0aWNzLCB0aGUgY291bnRlciBvZiB0aGUKKyAgICAgICAgICAgIG91dGdvaW5nIGludGVyZmFjZSBpcyBpbmNyZW1lbnRlZCBmb3IgYSBzdWNjZXNzZnVsbHkKKyAgICAgICAgICAgIGZyYWdtZW50ZWQgZGF0YWdyYW0uCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDI5IH0KKworaXBTeXN0ZW1TdGF0c091dFRyYW5zbWl0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBJUCBkYXRhZ3JhbXMgdGhhdCB0aGlzIGVudGl0eSBzdXBwbGllZAorICAgICAgICAgICAgdG8gdGhlIGxvd2VyIGxheWVycyBmb3IgdHJhbnNtaXNzaW9uLiAgVGhpcyBpbmNsdWRlcworICAgICAgICAgICAgZGF0YWdyYW1zIGdlbmVyYXRlZCBsb2NhbGx5IGFuZCB0aG9zZSBmb3J3YXJkZWQgYnkgdGhpcworICAgICAgICAgICAgZW50aXR5LgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisKKworCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAzMCB9CisKK2lwU3lzdGVtU3RhdHNIQ091dFRyYW5zbWl0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBJUCBkYXRhZ3JhbXMgdGhhdCB0aGlzIGVudGl0eSBzdXBwbGllZAorICAgICAgICAgICAgdG8gdGhlIGxvd2VyIGxheWVycyBmb3IgdHJhbnNtaXNzaW9uLiAgVGhpcyBvYmplY3QgY291bnRzCisgICAgICAgICAgICB0aGUgc2FtZSBkYXRhZ3JhbXMgYXMgaXBTeXN0ZW1TdGF0c091dFRyYW5zbWl0cywgYnV0IGFsbG93cworICAgICAgICAgICAgZm9yIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDMxIH0KKworaXBTeXN0ZW1TdGF0c091dE9jdGV0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgaW4gSVAgZGF0YWdyYW1zIGRlbGl2ZXJlZCB0byB0aGUKKyAgICAgICAgICAgIGxvd2VyIGxheWVycyBmb3IgdHJhbnNtaXNzaW9uLiAgT2N0ZXRzIGZyb20gZGF0YWdyYW1zCisgICAgICAgICAgICBjb3VudGVkIGluIGlwU3lzdGVtU3RhdHNPdXRUcmFuc21pdHMgTVVTVCBiZSBjb3VudGVkIGhlcmUuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDMyIH0KKworaXBTeXN0ZW1TdGF0c0hDT3V0T2N0ZXRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyNjQKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIG9jdGV0cyBpbiBJUCBkYXRhZ3JhbXMgZGVsaXZlcmVkIHRvIHRoZQorICAgICAgICAgICAgbG93ZXIgbGF5ZXJzIGZvciB0cmFuc21pc3Npb24uICBUaGlzIG9iamVjdHMgY291bnRzIHRoZSBzYW1lCisgICAgICAgICAgICBvY3RldHMgYXMgaXBTeXN0ZW1TdGF0c091dE9jdGV0cywgYnV0IGFsbG93cyBmb3IgbGFyZ2VyCisgICAgICAgICAgICB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKworCisKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDMzIH0KKworaXBTeXN0ZW1TdGF0c0luTWNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIG11bHRpY2FzdCBkYXRhZ3JhbXMgcmVjZWl2ZWQuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDM0IH0KKworaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgbXVsdGljYXN0IGRhdGFncmFtcyByZWNlaXZlZC4gIFRoaXMgb2JqZWN0CisgICAgICAgICAgICBjb3VudHMgdGhlIHNhbWUgZGF0YWdyYW1zIGFzIGlwU3lzdGVtU3RhdHNJbk1jYXN0UGt0cyBidXQKKyAgICAgICAgICAgIGFsbG93cyBmb3IgbGFyZ2VyIHZhbHVlcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcFN5c3RlbVN0YXRzRW50cnkgMzUgfQorCitpcFN5c3RlbVN0YXRzSW5NY2FzdE9jdGV0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgcmVjZWl2ZWQgaW4gSVAgbXVsdGljYXN0CisgICAgICAgICAgICBkYXRhZ3JhbXMuICBPY3RldHMgZnJvbSBkYXRhZ3JhbXMgY291bnRlZCBpbgorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luTWNhc3RQa3RzIE1VU1QgYmUgY291bnRlZCBoZXJlLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAzNiB9CisKK2lwU3lzdGVtU3RhdHNIQ0luTWNhc3RPY3RldHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorCisKKworICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIGluIElQIG11bHRpY2FzdAorICAgICAgICAgICAgZGF0YWdyYW1zLiAgVGhpcyBvYmplY3QgY291bnRzIHRoZSBzYW1lIG9jdGV0cyBhcworICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luTWNhc3RPY3RldHMsIGJ1dCBhbGxvd3MgZm9yIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDM3IH0KKworaXBTeXN0ZW1TdGF0c091dE1jYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUCBtdWx0aWNhc3QgZGF0YWdyYW1zIHRyYW5zbWl0dGVkLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSAzOCB9CisKK2lwU3lzdGVtU3RhdHNIQ091dE1jYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUCBtdWx0aWNhc3QgZGF0YWdyYW1zIHRyYW5zbWl0dGVkLiAgVGhpcworICAgICAgICAgICAgb2JqZWN0IGNvdW50cyB0aGUgc2FtZSBkYXRhZ3JhbXMgYXMKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRNY2FzdFBrdHMsIGJ1dCBhbGxvd3MgZm9yIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDM5IH0KKworaXBTeXN0ZW1TdGF0c091dE1jYXN0T2N0ZXRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIG9jdGV0cyB0cmFuc21pdHRlZCBpbiBJUCBtdWx0aWNhc3QKKyAgICAgICAgICAgIGRhdGFncmFtcy4gIE9jdGV0cyBmcm9tIGRhdGFncmFtcyBjb3VudGVkIGluCisKKworCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0TWNhc3RQa3RzIE1VU1QgYmUgY291bnRlZCBoZXJlLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSA0MCB9CisKK2lwU3lzdGVtU3RhdHNIQ091dE1jYXN0T2N0ZXRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyNjQKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIG9jdGV0cyB0cmFuc21pdHRlZCBpbiBJUCBtdWx0aWNhc3QKKyAgICAgICAgICAgIGRhdGFncmFtcy4gIFRoaXMgb2JqZWN0IGNvdW50cyB0aGUgc2FtZSBvY3RldHMgYXMKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRNY2FzdE9jdGV0cywgYnV0IGFsbG93cyBmb3IgbGFyZ2VyIHZhbHVlcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcFN5c3RlbVN0YXRzRW50cnkgNDEgfQorCitpcFN5c3RlbVN0YXRzSW5CY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgYnJvYWRjYXN0IGRhdGFncmFtcyByZWNlaXZlZC4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcFN5c3RlbVN0YXRzRW50cnkgNDIgfQorCitpcFN5c3RlbVN0YXRzSENJbkJjYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUCBicm9hZGNhc3QgZGF0YWdyYW1zIHJlY2VpdmVkLiAgVGhpcyBvYmplY3QKKyAgICAgICAgICAgIGNvdW50cyB0aGUgc2FtZSBkYXRhZ3JhbXMgYXMgaXBTeXN0ZW1TdGF0c0luQmNhc3RQa3RzIGJ1dAorICAgICAgICAgICAgYWxsb3dzIGZvciBsYXJnZXIgdmFsdWVzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisKKworCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSA0MyB9CisKK2lwU3lzdGVtU3RhdHNPdXRCY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgYnJvYWRjYXN0IGRhdGFncmFtcyB0cmFuc21pdHRlZC4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcFN5c3RlbVN0YXRzRW50cnkgNDQgfQorCitpcFN5c3RlbVN0YXRzSENPdXRCY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgYnJvYWRjYXN0IGRhdGFncmFtcyB0cmFuc21pdHRlZC4gIFRoaXMKKyAgICAgICAgICAgIG9iamVjdCBjb3VudHMgdGhlIHNhbWUgZGF0YWdyYW1zIGFzCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0QmNhc3RQa3RzLCBidXQgYWxsb3dzIGZvciBsYXJnZXIgdmFsdWVzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwU3lzdGVtU3RhdHNFbnRyeSA0NSB9CisKK2lwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVGltZVN0YW1wCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHN5c1VwVGltZSBvbiB0aGUgbW9zdCByZWNlbnQgb2NjYXNpb24gYXQgd2hpY2gKKyAgICAgICAgICAgIGFueSBvbmUgb3IgbW9yZSBvZiB0aGlzIGVudHJ5J3MgY291bnRlcnMgc3VmZmVyZWQgYQorICAgICAgICAgICAgZGlzY29udGludWl0eS4KKworICAgICAgICAgICAgSWYgbm8gc3VjaCBkaXNjb250aW51aXRpZXMgaGF2ZSBvY2N1cnJlZCBzaW5jZSB0aGUgbGFzdCByZS0KKyAgICAgICAgICAgIGluaXRpYWxpemF0aW9uIG9mIHRoZSBsb2NhbCBtYW5hZ2VtZW50IHN1YnN5c3RlbSwgdGhlbiB0aGlzCisgICAgICAgICAgICBvYmplY3QgY29udGFpbnMgYSB6ZXJvIHZhbHVlLiIKKyAgICA6Oj0geyBpcFN5c3RlbVN0YXRzRW50cnkgNDYgfQorCitpcFN5c3RlbVN0YXRzUmVmcmVzaFJhdGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFVuc2lnbmVkMzIKKyAgICBVTklUUyAgICAgICJtaWxsaS1zZWNvbmRzIgorCisKKworICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBtaW5pbXVtIHJlYXNvbmFibGUgcG9sbGluZyBpbnRlcnZhbCBmb3IgdGhpcyBlbnRyeS4KKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IHByb3ZpZGVzIGFuIGluZGljYXRpb24gb2YgdGhlIG1pbmltdW0gYW1vdW50IG9mCisgICAgICAgICAgICB0aW1lIHJlcXVpcmVkIHRvIHVwZGF0ZSB0aGUgY291bnRlcnMgaW4gdGhpcyBlbnRyeS4iCisgICAgOjo9IHsgaXBTeXN0ZW1TdGF0c0VudHJ5IDQ3IH0KKworaXBJZlN0YXRzVGFibGVMYXN0Q2hhbmdlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBUaW1lU3RhbXAKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdmFsdWUgb2Ygc3lzVXBUaW1lIG9uIHRoZSBtb3N0IHJlY2VudCBvY2Nhc2lvbiBhdCB3aGljaAorICAgICAgICAgICAgYSByb3cgaW4gdGhlIGlwSWZTdGF0c1RhYmxlIHdhcyBhZGRlZCBvciBkZWxldGVkLgorCisgICAgICAgICAgICBJZiBuZXcgb2JqZWN0cyBhcmUgYWRkZWQgdG8gdGhlIGlwSWZTdGF0c1RhYmxlIHRoYXQgcmVxdWlyZQorICAgICAgICAgICAgdGhlIGlwSWZTdGF0c1RhYmxlTGFzdENoYW5nZSB0byBiZSB1cGRhdGVkIHdoZW4gdGhleSBhcmUKKyAgICAgICAgICAgIG1vZGlmaWVkLCB0aGV5IG11c3Qgc3BlY2lmeSB0aGF0IHJlcXVpcmVtZW50IGluIHRoZWlyCisgICAgICAgICAgICBkZXNjcmlwdGlvbiBjbGF1c2UuIgorICAgIDo6PSB7IGlwVHJhZmZpY1N0YXRzIDIgfQorCitpcElmU3RhdHNUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgU0VRVUVOQ0UgT0YgSXBJZlN0YXRzRW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0YWJsZSBjb250YWluaW5nIHBlci1pbnRlcmZhY2UgdHJhZmZpYyBzdGF0aXN0aWNzLiAgVGhpcworICAgICAgICAgICAgdGFibGUgYW5kIHRoZSBpcFN5c3RlbVN0YXRzVGFibGUgY29udGFpbiBzaW1pbGFyIG9iamVjdHMKKyAgICAgICAgICAgIHdob3NlIGRpZmZlcmVuY2UgaXMgaW4gdGhlaXIgZ3JhbnVsYXJpdHkuICBXaGVyZSB0aGlzIHRhYmxlCisgICAgICAgICAgICBjb250YWlucyBwZXItaW50ZXJmYWNlIHN0YXRpc3RpY3MsIHRoZSBpcFN5c3RlbVN0YXRzVGFibGUKKyAgICAgICAgICAgIGNvbnRhaW5zIHRoZSBzYW1lIHN0YXRpc3RpY3MsIGJ1dCBjb3VudGVkIG9uIGEgc3lzdGVtIHdpZGUKKyAgICAgICAgICAgIGJhc2lzLiIKKyAgICA6Oj0geyBpcFRyYWZmaWNTdGF0cyAzIH0KKworaXBJZlN0YXRzRW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElwSWZTdGF0c0VudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBpbnRlcmZhY2Ugc3RhdGlzdGljcyBlbnRyeSBjb250YWluaW5nIG9iamVjdHMgZm9yIGEKKyAgICAgICAgICAgIHBhcnRpY3VsYXIgaW50ZXJmYWNlIGFuZCB2ZXJzaW9uIG9mIElQLiIKKyAgICBJTkRFWCB7IGlwSWZTdGF0c0lQVmVyc2lvbiwgaXBJZlN0YXRzSWZJbmRleCB9CisgICAgOjo9IHsgaXBJZlN0YXRzVGFibGUgMSB9CisKK0lwSWZTdGF0c0VudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgICAgIGlwSWZTdGF0c0lQVmVyc2lvbiAgICAgICAgICAgSW5ldFZlcnNpb24sCisgICAgICAgIGlwSWZTdGF0c0lmSW5kZXggICAgICAgICAgICAgSW50ZXJmYWNlSW5kZXgsCisKKworCisgICAgICAgIGlwSWZTdGF0c0luUmVjZWl2ZXMgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcElmU3RhdHNIQ0luUmVjZWl2ZXMgICAgICAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBJZlN0YXRzSW5PY3RldHMgICAgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwSWZTdGF0c0hDSW5PY3RldHMgICAgICAgICAgQ291bnRlcjY0LAorICAgICAgICBpcElmU3RhdHNJbkhkckVycm9ycyAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBJZlN0YXRzSW5Ob1JvdXRlcyAgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwSWZTdGF0c0luQWRkckVycm9ycyAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcElmU3RhdHNJblVua25vd25Qcm90b3MgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBJZlN0YXRzSW5UcnVuY2F0ZWRQa3RzICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwSWZTdGF0c0luRm9yd0RhdGFncmFtcyAgICAgQ291bnRlcjMyLAorICAgICAgICBpcElmU3RhdHNIQ0luRm9yd0RhdGFncmFtcyAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBJZlN0YXRzUmVhc21SZXFkcyAgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwSWZTdGF0c1JlYXNtT0tzICAgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcElmU3RhdHNSZWFzbUZhaWxzICAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBJZlN0YXRzSW5EaXNjYXJkcyAgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwSWZTdGF0c0luRGVsaXZlcnMgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcElmU3RhdHNIQ0luRGVsaXZlcnMgICAgICAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBJZlN0YXRzT3V0UmVxdWVzdHMgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwSWZTdGF0c0hDT3V0UmVxdWVzdHMgICAgICAgQ291bnRlcjY0LAorICAgICAgICBpcElmU3RhdHNPdXRGb3J3RGF0YWdyYW1zICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBJZlN0YXRzSENPdXRGb3J3RGF0YWdyYW1zICBDb3VudGVyNjQsCisgICAgICAgIGlwSWZTdGF0c091dERpc2NhcmRzICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcElmU3RhdHNPdXRGcmFnUmVxZHMgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBJZlN0YXRzT3V0RnJhZ09LcyAgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwSWZTdGF0c091dEZyYWdGYWlscyAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcElmU3RhdHNPdXRGcmFnQ3JlYXRlcyAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBJZlN0YXRzT3V0VHJhbnNtaXRzICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwSWZTdGF0c0hDT3V0VHJhbnNtaXRzICAgICAgQ291bnRlcjY0LAorICAgICAgICBpcElmU3RhdHNPdXRPY3RldHMgICAgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBJZlN0YXRzSENPdXRPY3RldHMgICAgICAgICBDb3VudGVyNjQsCisgICAgICAgIGlwSWZTdGF0c0luTWNhc3RQa3RzICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcElmU3RhdHNIQ0luTWNhc3RQa3RzICAgICAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBJZlN0YXRzSW5NY2FzdE9jdGV0cyAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwSWZTdGF0c0hDSW5NY2FzdE9jdGV0cyAgICAgQ291bnRlcjY0LAorICAgICAgICBpcElmU3RhdHNPdXRNY2FzdFBrdHMgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBJZlN0YXRzSENPdXRNY2FzdFBrdHMgICAgICBDb3VudGVyNjQsCisgICAgICAgIGlwSWZTdGF0c091dE1jYXN0T2N0ZXRzICAgICAgQ291bnRlcjMyLAorICAgICAgICBpcElmU3RhdHNIQ091dE1jYXN0T2N0ZXRzICAgIENvdW50ZXI2NCwKKyAgICAgICAgaXBJZlN0YXRzSW5CY2FzdFBrdHMgICAgICAgICBDb3VudGVyMzIsCisgICAgICAgIGlwSWZTdGF0c0hDSW5CY2FzdFBrdHMgICAgICAgQ291bnRlcjY0LAorICAgICAgICBpcElmU3RhdHNPdXRCY2FzdFBrdHMgICAgICAgIENvdW50ZXIzMiwKKyAgICAgICAgaXBJZlN0YXRzSENPdXRCY2FzdFBrdHMgICAgICBDb3VudGVyNjQsCisgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lICAgVGltZVN0YW1wLAorICAgICAgICBpcElmU3RhdHNSZWZyZXNoUmF0ZSAgICAgICAgIFVuc2lnbmVkMzIKKyAgICB9CisKK2lwSWZTdGF0c0lQVmVyc2lvbiBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldFZlcnNpb24KKworCisKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBJUCB2ZXJzaW9uIG9mIHRoaXMgcm93LiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSAxIH0KKworaXBJZlN0YXRzSWZJbmRleCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW50ZXJmYWNlSW5kZXgKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBpbmRleCB2YWx1ZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIGludGVyZmFjZSB0bworICAgICAgICAgICAgd2hpY2ggdGhpcyBlbnRyeSBpcyBhcHBsaWNhYmxlLiAgVGhlIGludGVyZmFjZSBpZGVudGlmaWVkIGJ5CisgICAgICAgICAgICBhIHBhcnRpY3VsYXIgdmFsdWUgb2YgdGhpcyBpbmRleCBpcyB0aGUgc2FtZSBpbnRlcmZhY2UgYXMKKyAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIHNhbWUgdmFsdWUgb2YgdGhlIElGLU1JQidzIGlmSW5kZXguIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDIgfQorCitpcElmU3RhdHNJblJlY2VpdmVzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIGlucHV0IElQIGRhdGFncmFtcyByZWNlaXZlZCwgaW5jbHVkaW5nCisgICAgICAgICAgICB0aG9zZSByZWNlaXZlZCBpbiBlcnJvci4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDMgfQorCitpcElmU3RhdHNIQ0luUmVjZWl2ZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgaW5wdXQgSVAgZGF0YWdyYW1zIHJlY2VpdmVkLCBpbmNsdWRpbmcKKyAgICAgICAgICAgIHRob3NlIHJlY2VpdmVkIGluIGVycm9yLiAgVGhpcyBvYmplY3QgY291bnRzIHRoZSBzYW1lCisgICAgICAgICAgICBkYXRhZ3JhbXMgYXMgaXBJZlN0YXRzSW5SZWNlaXZlcywgYnV0IGFsbG93cyBmb3IgbGFyZ2VyCisgICAgICAgICAgICB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSA0IH0KKworaXBJZlN0YXRzSW5PY3RldHMgT0JKRUNULVRZUEUKKworCisKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIGluIGlucHV0IElQIGRhdGFncmFtcywKKyAgICAgICAgICAgIGluY2x1ZGluZyB0aG9zZSByZWNlaXZlZCBpbiBlcnJvci4gIE9jdGV0cyBmcm9tIGRhdGFncmFtcworICAgICAgICAgICAgY291bnRlZCBpbiBpcElmU3RhdHNJblJlY2VpdmVzIE1VU1QgYmUgY291bnRlZCBoZXJlLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgNSB9CisKK2lwSWZTdGF0c0hDSW5PY3RldHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHJlY2VpdmVkIGluIGlucHV0IElQIGRhdGFncmFtcywKKyAgICAgICAgICAgIGluY2x1ZGluZyB0aG9zZSByZWNlaXZlZCBpbiBlcnJvci4gIFRoaXMgb2JqZWN0IGNvdW50cyB0aGUKKyAgICAgICAgICAgIHNhbWUgb2N0ZXRzIGFzIGlwSWZTdGF0c0luT2N0ZXRzLCBidXQgYWxsb3dzIGZvciBsYXJnZXIKKyAgICAgICAgICAgIHZhbHVlcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDYgfQorCitpcElmU3RhdHNJbkhkckVycm9ycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBpbnB1dCBJUCBkYXRhZ3JhbXMgZGlzY2FyZGVkIGR1ZSB0byBlcnJvcnMgaW4KKyAgICAgICAgICAgIHRoZWlyIElQIGhlYWRlcnMsIGluY2x1ZGluZyB2ZXJzaW9uIG51bWJlciBtaXNtYXRjaCwgb3RoZXIKKyAgICAgICAgICAgIGZvcm1hdCBlcnJvcnMsIGhvcCBjb3VudCBleGNlZWRlZCwgZXJyb3JzIGRpc2NvdmVyZWQgaW4KKyAgICAgICAgICAgIHByb2Nlc3NpbmcgdGhlaXIgSVAgb3B0aW9ucywgZXRjLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgNyB9CisKK2lwSWZTdGF0c0luTm9Sb3V0ZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorCisKKworICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgaW5wdXQgSVAgZGF0YWdyYW1zIGRpc2NhcmRlZCBiZWNhdXNlIG5vIHJvdXRlCisgICAgICAgICAgICBjb3VsZCBiZSBmb3VuZCB0byB0cmFuc21pdCB0aGVtIHRvIHRoZWlyIGRlc3RpbmF0aW9uLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgOCB9CisKK2lwSWZTdGF0c0luQWRkckVycm9ycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBpbnB1dCBJUCBkYXRhZ3JhbXMgZGlzY2FyZGVkIGJlY2F1c2UgdGhlIElQCisgICAgICAgICAgICBhZGRyZXNzIGluIHRoZWlyIElQIGhlYWRlcidzIGRlc3RpbmF0aW9uIGZpZWxkIHdhcyBub3QgYQorICAgICAgICAgICAgdmFsaWQgYWRkcmVzcyB0byBiZSByZWNlaXZlZCBhdCB0aGlzIGVudGl0eS4gIFRoaXMgY291bnQKKyAgICAgICAgICAgIGluY2x1ZGVzIGludmFsaWQgYWRkcmVzc2VzIChlLmcuLCA6OjApLiAgRm9yIGVudGl0aWVzIHRoYXQKKyAgICAgICAgICAgIGFyZSBub3QgSVAgcm91dGVycyBhbmQgdGhlcmVmb3JlIGRvIG5vdCBmb3J3YXJkIGRhdGFncmFtcywKKyAgICAgICAgICAgIHRoaXMgY291bnRlciBpbmNsdWRlcyBkYXRhZ3JhbXMgZGlzY2FyZGVkIGJlY2F1c2UgdGhlCisgICAgICAgICAgICBkZXN0aW5hdGlvbiBhZGRyZXNzIHdhcyBub3QgYSBsb2NhbCBhZGRyZXNzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgOSB9CisKK2lwSWZTdGF0c0luVW5rbm93blByb3RvcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBsb2NhbGx5LWFkZHJlc3NlZCBJUCBkYXRhZ3JhbXMgcmVjZWl2ZWQKKyAgICAgICAgICAgIHN1Y2Nlc3NmdWxseSBidXQgZGlzY2FyZGVkIGJlY2F1c2Ugb2YgYW4gdW5rbm93biBvcgorICAgICAgICAgICAgdW5zdXBwb3J0ZWQgcHJvdG9jb2wuCisKKyAgICAgICAgICAgIFdoZW4gdHJhY2tpbmcgaW50ZXJmYWNlIHN0YXRpc3RpY3MsIHRoZSBjb3VudGVyIG9mIHRoZQorICAgICAgICAgICAgaW50ZXJmYWNlIHRvIHdoaWNoIHRoZXNlIGRhdGFncmFtcyB3ZXJlIGFkZHJlc3NlZCBpcworICAgICAgICAgICAgaW5jcmVtZW50ZWQuICBUaGlzIGludGVyZmFjZSBtaWdodCBub3QgYmUgdGhlIHNhbWUgYXMgdGhlCisgICAgICAgICAgICBpbnB1dCBpbnRlcmZhY2UgZm9yIHNvbWUgb2YgdGhlIGRhdGFncmFtcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorCisKKworICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDEwIH0KKworaXBJZlN0YXRzSW5UcnVuY2F0ZWRQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGlucHV0IElQIGRhdGFncmFtcyBkaXNjYXJkZWQgYmVjYXVzZSB0aGUKKyAgICAgICAgICAgIGRhdGFncmFtIGZyYW1lIGRpZG4ndCBjYXJyeSBlbm91Z2ggZGF0YS4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDExIH0KKworaXBJZlN0YXRzSW5Gb3J3RGF0YWdyYW1zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGlucHV0IGRhdGFncmFtcyBmb3Igd2hpY2ggdGhpcyBlbnRpdHkgd2FzIG5vdAorICAgICAgICAgICAgdGhlaXIgZmluYWwgSVAgZGVzdGluYXRpb24gYW5kIGZvciB3aGljaCB0aGlzIGVudGl0eQorICAgICAgICAgICAgYXR0ZW1wdGVkIHRvIGZpbmQgYSByb3V0ZSB0byBmb3J3YXJkIHRoZW0gdG8gdGhhdCBmaW5hbAorICAgICAgICAgICAgZGVzdGluYXRpb24uICBJbiBlbnRpdGllcyB0aGF0IGRvIG5vdCBhY3QgYXMgSVAgcm91dGVycywKKyAgICAgICAgICAgIHRoaXMgY291bnRlciB3aWxsIGluY2x1ZGUgb25seSB0aG9zZSBkYXRhZ3JhbXMgdGhhdCB3ZXJlCisgICAgICAgICAgICBTb3VyY2UtUm91dGVkIHZpYSB0aGlzIGVudGl0eSwgYW5kIHRoZSBTb3VyY2UtUm91dGUKKyAgICAgICAgICAgIHByb2Nlc3Npbmcgd2FzIHN1Y2Nlc3NmdWwuCisKKyAgICAgICAgICAgIFdoZW4gdHJhY2tpbmcgaW50ZXJmYWNlIHN0YXRpc3RpY3MsIHRoZSBjb3VudGVyIG9mIHRoZQorICAgICAgICAgICAgaW5jb21pbmcgaW50ZXJmYWNlIGlzIGluY3JlbWVudGVkIGZvciBlYWNoIGRhdGFncmFtLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgMTIgfQorCitpcElmU3RhdHNIQ0luRm9yd0RhdGFncmFtcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBpbnB1dCBkYXRhZ3JhbXMgZm9yIHdoaWNoIHRoaXMgZW50aXR5IHdhcyBub3QKKyAgICAgICAgICAgIHRoZWlyIGZpbmFsIElQIGRlc3RpbmF0aW9uIGFuZCBmb3Igd2hpY2ggdGhpcyBlbnRpdHkKKyAgICAgICAgICAgIGF0dGVtcHRlZCB0byBmaW5kIGEgcm91dGUgdG8gZm9yd2FyZCB0aGVtIHRvIHRoYXQgZmluYWwKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uLiAgVGhpcyBvYmplY3QgY291bnRzIHRoZSBzYW1lIHBhY2tldHMgYXMKKworCisKKyAgICAgICAgICAgIGlwSWZTdGF0c0luRm9yd0RhdGFncmFtcywgYnV0IGFsbG93cyBmb3IgbGFyZ2VyIHZhbHVlcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDEzIH0KKworaXBJZlN0YXRzUmVhc21SZXFkcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUCBmcmFnbWVudHMgcmVjZWl2ZWQgdGhhdCBuZWVkZWQgdG8gYmUKKyAgICAgICAgICAgIHJlYXNzZW1ibGVkIGF0IHRoaXMgaW50ZXJmYWNlLgorCisgICAgICAgICAgICBXaGVuIHRyYWNraW5nIGludGVyZmFjZSBzdGF0aXN0aWNzLCB0aGUgY291bnRlciBvZiB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSB0byB3aGljaCB0aGVzZSBmcmFnbWVudHMgd2VyZSBhZGRyZXNzZWQgaXMKKyAgICAgICAgICAgIGluY3JlbWVudGVkLiAgVGhpcyBpbnRlcmZhY2UgbWlnaHQgbm90IGJlIHRoZSBzYW1lIGFzIHRoZQorICAgICAgICAgICAgaW5wdXQgaW50ZXJmYWNlIGZvciBzb21lIG9mIHRoZSBmcmFnbWVudHMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSAxNCB9CisKK2lwSWZTdGF0c1JlYXNtT0tzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIGRhdGFncmFtcyBzdWNjZXNzZnVsbHkgcmVhc3NlbWJsZWQuCisKKyAgICAgICAgICAgIFdoZW4gdHJhY2tpbmcgaW50ZXJmYWNlIHN0YXRpc3RpY3MsIHRoZSBjb3VudGVyIG9mIHRoZQorICAgICAgICAgICAgaW50ZXJmYWNlIHRvIHdoaWNoIHRoZXNlIGRhdGFncmFtcyB3ZXJlIGFkZHJlc3NlZCBpcworICAgICAgICAgICAgaW5jcmVtZW50ZWQuICBUaGlzIGludGVyZmFjZSBtaWdodCBub3QgYmUgdGhlIHNhbWUgYXMgdGhlCisgICAgICAgICAgICBpbnB1dCBpbnRlcmZhY2UgZm9yIHNvbWUgb2YgdGhlIGRhdGFncmFtcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDE1IH0KKworaXBJZlN0YXRzUmVhc21GYWlscyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKworCisKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBmYWlsdXJlcyBkZXRlY3RlZCBieSB0aGUgSVAgcmUtYXNzZW1ibHkKKyAgICAgICAgICAgIGFsZ29yaXRobSAoZm9yIHdoYXRldmVyIHJlYXNvbjogdGltZWQgb3V0LCBlcnJvcnMsIGV0Yy4pLgorICAgICAgICAgICAgTm90ZSB0aGF0IHRoaXMgaXMgbm90IG5lY2Vzc2FyaWx5IGEgY291bnQgb2YgZGlzY2FyZGVkIElQCisgICAgICAgICAgICBmcmFnbWVudHMgc2luY2Ugc29tZSBhbGdvcml0aG1zIChub3RhYmx5IHRoZSBhbGdvcml0aG0gaW4KKyAgICAgICAgICAgIFJGQyA4MTUpIGNhbiBsb3NlIHRyYWNrIG9mIHRoZSBudW1iZXIgb2YgZnJhZ21lbnRzIGJ5CisgICAgICAgICAgICBjb21iaW5pbmcgdGhlbSBhcyB0aGV5IGFyZSByZWNlaXZlZC4KKworICAgICAgICAgICAgV2hlbiB0cmFja2luZyBpbnRlcmZhY2Ugc3RhdGlzdGljcywgdGhlIGNvdW50ZXIgb2YgdGhlCisgICAgICAgICAgICBpbnRlcmZhY2UgdG8gd2hpY2ggdGhlc2UgZnJhZ21lbnRzIHdlcmUgYWRkcmVzc2VkIGlzCisgICAgICAgICAgICBpbmNyZW1lbnRlZC4gIFRoaXMgaW50ZXJmYWNlIG1pZ2h0IG5vdCBiZSB0aGUgc2FtZSBhcyB0aGUKKyAgICAgICAgICAgIGlucHV0IGludGVyZmFjZSBmb3Igc29tZSBvZiB0aGUgZnJhZ21lbnRzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgMTYgfQorCitpcElmU3RhdHNJbkRpc2NhcmRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGlucHV0IElQIGRhdGFncmFtcyBmb3Igd2hpY2ggbm8gcHJvYmxlbXMgd2VyZQorICAgICAgICAgICAgZW5jb3VudGVyZWQgdG8gcHJldmVudCB0aGVpciBjb250aW51ZWQgcHJvY2Vzc2luZywgYnV0CisgICAgICAgICAgICB3ZXJlIGRpc2NhcmRlZCAoZS5nLiwgZm9yIGxhY2sgb2YgYnVmZmVyIHNwYWNlKS4gIE5vdGUgdGhhdAorICAgICAgICAgICAgdGhpcyBjb3VudGVyIGRvZXMgbm90IGluY2x1ZGUgYW55IGRhdGFncmFtcyBkaXNjYXJkZWQgd2hpbGUKKyAgICAgICAgICAgIGF3YWl0aW5nIHJlLWFzc2VtYmx5LgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgMTcgfQorCitpcElmU3RhdHNJbkRlbGl2ZXJzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIGRhdGFncmFtcyBzdWNjZXNzZnVsbHkgZGVsaXZlcmVkIHRvIElQCisgICAgICAgICAgICB1c2VyLXByb3RvY29scyAoaW5jbHVkaW5nIElDTVApLgorCisgICAgICAgICAgICBXaGVuIHRyYWNraW5nIGludGVyZmFjZSBzdGF0aXN0aWNzLCB0aGUgY291bnRlciBvZiB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSB0byB3aGljaCB0aGVzZSBkYXRhZ3JhbXMgd2VyZSBhZGRyZXNzZWQgaXMKKyAgICAgICAgICAgIGluY3JlbWVudGVkLiAgVGhpcyBpbnRlcmZhY2UgbWlnaHQgbm90IGJlIHRoZSBzYW1lIGFzIHRoZQorCisKKworICAgICAgICAgICAgaW5wdXQgaW50ZXJmYWNlIGZvciBzb21lIG9mIHRoZSBkYXRhZ3JhbXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSAxOCB9CisKK2lwSWZTdGF0c0hDSW5EZWxpdmVycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBkYXRhZ3JhbXMgc3VjY2Vzc2Z1bGx5IGRlbGl2ZXJlZCB0byBJUAorICAgICAgICAgICAgdXNlci1wcm90b2NvbHMgKGluY2x1ZGluZyBJQ01QKS4gIFRoaXMgb2JqZWN0IGNvdW50cyB0aGUKKyAgICAgICAgICAgIHNhbWUgcGFja2V0cyBhcyBpcElmU3RhdHNJbkRlbGl2ZXJzLCBidXQgYWxsb3dzIGZvciBsYXJnZXIKKyAgICAgICAgICAgIHZhbHVlcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDE5IH0KKworaXBJZlN0YXRzT3V0UmVxdWVzdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHRoYXQgbG9jYWwgSVAgdXNlci0KKyAgICAgICAgICAgIHByb3RvY29scyAoaW5jbHVkaW5nIElDTVApIHN1cHBsaWVkIHRvIElQIGluIHJlcXVlc3RzIGZvcgorICAgICAgICAgICAgdHJhbnNtaXNzaW9uLiAgTm90ZSB0aGF0IHRoaXMgY291bnRlciBkb2VzIG5vdCBpbmNsdWRlIGFueQorICAgICAgICAgICAgZGF0YWdyYW1zIGNvdW50ZWQgaW4gaXBJZlN0YXRzT3V0Rm9yd0RhdGFncmFtcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDIwIH0KKworaXBJZlN0YXRzSENPdXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBJUCBkYXRhZ3JhbXMgdGhhdCBsb2NhbCBJUCB1c2VyLQorICAgICAgICAgICAgcHJvdG9jb2xzIChpbmNsdWRpbmcgSUNNUCkgc3VwcGxpZWQgdG8gSVAgaW4gcmVxdWVzdHMgZm9yCisgICAgICAgICAgICB0cmFuc21pc3Npb24uICBUaGlzIG9iamVjdCBjb3VudHMgdGhlIHNhbWUgcGFja2V0cyBhcworCisKKworICAgICAgICAgICAgaXBJZlN0YXRzT3V0UmVxdWVzdHMsIGJ1dCBhbGxvd3MgZm9yIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSAyMSB9CisKKy0tIFRoaXMgb2JqZWN0IElEIGlzIHJlc2VydmVkIHRvIGFsbG93IHRoZSBJRHMgZm9yIHRoaXMgdGFibGUncyBvYmplY3RzCistLSB0byBhbGlnbiB3aXRoIHRoZSBvYmplY3RzIGluIHRoZSBpcFN5c3RlbVN0YXRzVGFibGUuCistLSA6Oj0ge2lwSWZTdGF0c0VudHJ5IDIyfQorCitpcElmU3RhdHNPdXRGb3J3RGF0YWdyYW1zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGRhdGFncmFtcyBmb3Igd2hpY2ggdGhpcyBlbnRpdHkgd2FzIG5vdCB0aGVpcgorICAgICAgICAgICAgZmluYWwgSVAgZGVzdGluYXRpb24gYW5kIGZvciB3aGljaCBpdCB3YXMgc3VjY2Vzc2Z1bCBpbgorICAgICAgICAgICAgZmluZGluZyBhIHBhdGggdG8gdGhlaXIgZmluYWwgZGVzdGluYXRpb24uICBJbiBlbnRpdGllcworICAgICAgICAgICAgdGhhdCBkbyBub3QgYWN0IGFzIElQIHJvdXRlcnMsIHRoaXMgY291bnRlciB3aWxsIGluY2x1ZGUKKyAgICAgICAgICAgIG9ubHkgdGhvc2UgZGF0YWdyYW1zIHRoYXQgd2VyZSBTb3VyY2UtUm91dGVkIHZpYSB0aGlzCisgICAgICAgICAgICBlbnRpdHksIGFuZCB0aGUgU291cmNlLVJvdXRlIHByb2Nlc3Npbmcgd2FzIHN1Y2Nlc3NmdWwuCisKKyAgICAgICAgICAgIFdoZW4gdHJhY2tpbmcgaW50ZXJmYWNlIHN0YXRpc3RpY3MsIHRoZSBjb3VudGVyIG9mIHRoZQorICAgICAgICAgICAgb3V0Z29pbmcgaW50ZXJmYWNlIGlzIGluY3JlbWVudGVkIGZvciBhIHN1Y2Nlc3NmdWxseQorICAgICAgICAgICAgZm9yd2FyZGVkIGRhdGFncmFtLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgMjMgfQorCitpcElmU3RhdHNIQ091dEZvcndEYXRhZ3JhbXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgZGF0YWdyYW1zIGZvciB3aGljaCB0aGlzIGVudGl0eSB3YXMgbm90IHRoZWlyCisgICAgICAgICAgICBmaW5hbCBJUCBkZXN0aW5hdGlvbiBhbmQgZm9yIHdoaWNoIGl0IHdhcyBzdWNjZXNzZnVsIGluCisgICAgICAgICAgICBmaW5kaW5nIGEgcGF0aCB0byB0aGVpciBmaW5hbCBkZXN0aW5hdGlvbi4gIFRoaXMgb2JqZWN0CisgICAgICAgICAgICBjb3VudHMgdGhlIHNhbWUgcGFja2V0cyBhcyBpcElmU3RhdHNPdXRGb3J3RGF0YWdyYW1zLCBidXQKKyAgICAgICAgICAgIGFsbG93cyBmb3IgbGFyZ2VyIHZhbHVlcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorCisKKworICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDI0IH0KKworaXBJZlN0YXRzT3V0RGlzY2FyZHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2Ygb3V0cHV0IElQIGRhdGFncmFtcyBmb3Igd2hpY2ggbm8gcHJvYmxlbSB3YXMKKyAgICAgICAgICAgIGVuY291bnRlcmVkIHRvIHByZXZlbnQgdGhlaXIgdHJhbnNtaXNzaW9uIHRvIHRoZWlyCisgICAgICAgICAgICBkZXN0aW5hdGlvbiwgYnV0IHdlcmUgZGlzY2FyZGVkIChlLmcuLCBmb3IgbGFjayBvZgorICAgICAgICAgICAgYnVmZmVyIHNwYWNlKS4gIE5vdGUgdGhhdCB0aGlzIGNvdW50ZXIgd291bGQgaW5jbHVkZQorICAgICAgICAgICAgZGF0YWdyYW1zIGNvdW50ZWQgaW4gaXBJZlN0YXRzT3V0Rm9yd0RhdGFncmFtcyBpZiBhbnkgc3VjaAorICAgICAgICAgICAgZGF0YWdyYW1zIG1ldCB0aGlzIChkaXNjcmV0aW9uYXJ5KSBkaXNjYXJkIGNyaXRlcmlvbi4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDI1IH0KKworaXBJZlN0YXRzT3V0RnJhZ1JlcWRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIGRhdGFncmFtcyB0aGF0IHdvdWxkIHJlcXVpcmUgZnJhZ21lbnRhdGlvbgorICAgICAgICAgICAgaW4gb3JkZXIgdG8gYmUgdHJhbnNtaXR0ZWQuCisKKyAgICAgICAgICAgIFdoZW4gdHJhY2tpbmcgaW50ZXJmYWNlIHN0YXRpc3RpY3MsIHRoZSBjb3VudGVyIG9mIHRoZQorICAgICAgICAgICAgb3V0Z29pbmcgaW50ZXJmYWNlIGlzIGluY3JlbWVudGVkIGZvciBhIHN1Y2Nlc3NmdWxseQorICAgICAgICAgICAgZnJhZ21lbnRlZCBkYXRhZ3JhbS4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDI2IH0KKworaXBJZlN0YXRzT3V0RnJhZ09LcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUCBkYXRhZ3JhbXMgdGhhdCBoYXZlIGJlZW4gc3VjY2Vzc2Z1bGx5CisgICAgICAgICAgICBmcmFnbWVudGVkLgorCisgICAgICAgICAgICBXaGVuIHRyYWNraW5nIGludGVyZmFjZSBzdGF0aXN0aWNzLCB0aGUgY291bnRlciBvZiB0aGUKKworCisKKyAgICAgICAgICAgIG91dGdvaW5nIGludGVyZmFjZSBpcyBpbmNyZW1lbnRlZCBmb3IgYSBzdWNjZXNzZnVsbHkKKyAgICAgICAgICAgIGZyYWdtZW50ZWQgZGF0YWdyYW0uCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSAyNyB9CisKK2lwSWZTdGF0c091dEZyYWdGYWlscyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUCBkYXRhZ3JhbXMgdGhhdCBoYXZlIGJlZW4gZGlzY2FyZGVkIGJlY2F1c2UKKyAgICAgICAgICAgIHRoZXkgbmVlZGVkIHRvIGJlIGZyYWdtZW50ZWQgYnV0IGNvdWxkIG5vdCBiZS4gIFRoaXMKKyAgICAgICAgICAgIGluY2x1ZGVzIElQdjQgcGFja2V0cyB0aGF0IGhhdmUgdGhlIERGIGJpdCBzZXQgYW5kIElQdjYKKyAgICAgICAgICAgIHBhY2tldHMgdGhhdCBhcmUgYmVpbmcgZm9yd2FyZGVkIGFuZCBleGNlZWQgdGhlIG91dGdvaW5nCisgICAgICAgICAgICBsaW5rIE1UVS4KKworICAgICAgICAgICAgV2hlbiB0cmFja2luZyBpbnRlcmZhY2Ugc3RhdGlzdGljcywgdGhlIGNvdW50ZXIgb2YgdGhlCisgICAgICAgICAgICBvdXRnb2luZyBpbnRlcmZhY2UgaXMgaW5jcmVtZW50ZWQgZm9yIGFuIHVuc3VjY2Vzc2Z1bGx5CisgICAgICAgICAgICBmcmFnbWVudGVkIGRhdGFncmFtLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgMjggfQorCitpcElmU3RhdHNPdXRGcmFnQ3JlYXRlcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBvdXRwdXQgZGF0YWdyYW0gZnJhZ21lbnRzIHRoYXQgaGF2ZSBiZWVuCisgICAgICAgICAgICBnZW5lcmF0ZWQgYXMgYSByZXN1bHQgb2YgSVAgZnJhZ21lbnRhdGlvbi4KKworICAgICAgICAgICAgV2hlbiB0cmFja2luZyBpbnRlcmZhY2Ugc3RhdGlzdGljcywgdGhlIGNvdW50ZXIgb2YgdGhlCisgICAgICAgICAgICBvdXRnb2luZyBpbnRlcmZhY2UgaXMgaW5jcmVtZW50ZWQgZm9yIGEgc3VjY2Vzc2Z1bGx5CisgICAgICAgICAgICBmcmFnbWVudGVkIGRhdGFncmFtLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgMjkgfQorCisKKworCitpcElmU3RhdHNPdXRUcmFuc21pdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHRoYXQgdGhpcyBlbnRpdHkgc3VwcGxpZWQKKyAgICAgICAgICAgIHRvIHRoZSBsb3dlciBsYXllcnMgZm9yIHRyYW5zbWlzc2lvbi4gIFRoaXMgaW5jbHVkZXMKKyAgICAgICAgICAgIGRhdGFncmFtcyBnZW5lcmF0ZWQgbG9jYWxseSBhbmQgdGhvc2UgZm9yd2FyZGVkIGJ5IHRoaXMKKyAgICAgICAgICAgIGVudGl0eS4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDMwIH0KKworaXBJZlN0YXRzSENPdXRUcmFuc21pdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHRoYXQgdGhpcyBlbnRpdHkgc3VwcGxpZWQKKyAgICAgICAgICAgIHRvIHRoZSBsb3dlciBsYXllcnMgZm9yIHRyYW5zbWlzc2lvbi4gIFRoaXMgb2JqZWN0IGNvdW50cworICAgICAgICAgICAgdGhlIHNhbWUgZGF0YWdyYW1zIGFzIGlwSWZTdGF0c091dFRyYW5zbWl0cywgYnV0IGFsbG93cyBmb3IKKyAgICAgICAgICAgIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSAzMSB9CisKK2lwSWZTdGF0c091dE9jdGV0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgaW4gSVAgZGF0YWdyYW1zIGRlbGl2ZXJlZCB0byB0aGUKKyAgICAgICAgICAgIGxvd2VyIGxheWVycyBmb3IgdHJhbnNtaXNzaW9uLiAgT2N0ZXRzIGZyb20gZGF0YWdyYW1zCisgICAgICAgICAgICBjb3VudGVkIGluIGlwSWZTdGF0c091dFRyYW5zbWl0cyBNVVNUIGJlIGNvdW50ZWQgaGVyZS4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDMyIH0KKworaXBJZlN0YXRzSENPdXRPY3RldHMgT0JKRUNULVRZUEUKKworCisKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIGluIElQIGRhdGFncmFtcyBkZWxpdmVyZWQgdG8gdGhlCisgICAgICAgICAgICBsb3dlciBsYXllcnMgZm9yIHRyYW5zbWlzc2lvbi4gIFRoaXMgb2JqZWN0cyBjb3VudHMgdGhlIHNhbWUKKyAgICAgICAgICAgIG9jdGV0cyBhcyBpcElmU3RhdHNPdXRPY3RldHMsIGJ1dCBhbGxvd3MgZm9yIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSAzMyB9CisKK2lwSWZTdGF0c0luTWNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIG11bHRpY2FzdCBkYXRhZ3JhbXMgcmVjZWl2ZWQuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSAzNCB9CisKK2lwSWZTdGF0c0hDSW5NY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgbXVsdGljYXN0IGRhdGFncmFtcyByZWNlaXZlZC4gIFRoaXMgb2JqZWN0CisgICAgICAgICAgICBjb3VudHMgdGhlIHNhbWUgZGF0YWdyYW1zIGFzIGlwSWZTdGF0c0luTWNhc3RQa3RzLCBidXQKKyAgICAgICAgICAgIGFsbG93cyBmb3IgbGFyZ2VyIHZhbHVlcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDM1IH0KKworaXBJZlN0YXRzSW5NY2FzdE9jdGV0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgcmVjZWl2ZWQgaW4gSVAgbXVsdGljYXN0CisKKworCisgICAgICAgICAgICBkYXRhZ3JhbXMuICBPY3RldHMgZnJvbSBkYXRhZ3JhbXMgY291bnRlZCBpbgorICAgICAgICAgICAgaXBJZlN0YXRzSW5NY2FzdFBrdHMgTVVTVCBiZSBjb3VudGVkIGhlcmUuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSAzNiB9CisKK2lwSWZTdGF0c0hDSW5NY2FzdE9jdGV0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBvY3RldHMgcmVjZWl2ZWQgaW4gSVAgbXVsdGljYXN0CisgICAgICAgICAgICBkYXRhZ3JhbXMuICBUaGlzIG9iamVjdCBjb3VudHMgdGhlIHNhbWUgb2N0ZXRzIGFzCisgICAgICAgICAgICBpcElmU3RhdHNJbk1jYXN0T2N0ZXRzLCBidXQgYWxsb3dzIGZvciBsYXJnZXIgdmFsdWVzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgMzcgfQorCitpcElmU3RhdHNPdXRNY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgbXVsdGljYXN0IGRhdGFncmFtcyB0cmFuc21pdHRlZC4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDM4IH0KKworaXBJZlN0YXRzSENPdXRNY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgbXVsdGljYXN0IGRhdGFncmFtcyB0cmFuc21pdHRlZC4gIFRoaXMKKyAgICAgICAgICAgIG9iamVjdCBjb3VudHMgdGhlIHNhbWUgZGF0YWdyYW1zIGFzIGlwSWZTdGF0c091dE1jYXN0UGt0cywKKyAgICAgICAgICAgIGJ1dCBhbGxvd3MgZm9yIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKworCisKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSAzOSB9CisKK2lwSWZTdGF0c091dE1jYXN0T2N0ZXRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIG9jdGV0cyB0cmFuc21pdHRlZCBpbiBJUCBtdWx0aWNhc3QKKyAgICAgICAgICAgIGRhdGFncmFtcy4gIE9jdGV0cyBmcm9tIGRhdGFncmFtcyBjb3VudGVkIGluCisgICAgICAgICAgICBpcElmU3RhdHNPdXRNY2FzdFBrdHMgTVVTVCBiZSBjb3VudGVkIGhlcmUuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSA0MCB9CisKK2lwSWZTdGF0c0hDT3V0TWNhc3RPY3RldHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHRyYW5zbWl0dGVkIGluIElQIG11bHRpY2FzdAorICAgICAgICAgICAgZGF0YWdyYW1zLiAgVGhpcyBvYmplY3QgY291bnRzIHRoZSBzYW1lIG9jdGV0cyBhcworICAgICAgICAgICAgaXBJZlN0YXRzT3V0TWNhc3RPY3RldHMsIGJ1dCBhbGxvd3MgZm9yIGxhcmdlciB2YWx1ZXMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSA0MSB9CisKK2lwSWZTdGF0c0luQmNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIGJyb2FkY2FzdCBkYXRhZ3JhbXMgcmVjZWl2ZWQuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSA0MiB9CisKK2lwSWZTdGF0c0hDSW5CY2FzdFBrdHMgT0JKRUNULVRZUEUKKworCisKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgYnJvYWRjYXN0IGRhdGFncmFtcyByZWNlaXZlZC4gIFRoaXMgb2JqZWN0CisgICAgICAgICAgICBjb3VudHMgdGhlIHNhbWUgZGF0YWdyYW1zIGFzIGlwSWZTdGF0c0luQmNhc3RQa3RzLCBidXQKKyAgICAgICAgICAgIGFsbG93cyBmb3IgbGFyZ2VyIHZhbHVlcy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyIGF0CisgICAgICAgICAgICByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdCBvdGhlcgorICAgICAgICAgICAgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUuIgorICAgIDo6PSB7IGlwSWZTdGF0c0VudHJ5IDQzIH0KKworaXBJZlN0YXRzT3V0QmNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIGJyb2FkY2FzdCBkYXRhZ3JhbXMgdHJhbnNtaXR0ZWQuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1ciBhdAorICAgICAgICAgICAgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQgb3RoZXIKKyAgICAgICAgICAgIHRpbWVzIGFzIGluZGljYXRlZCBieSB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwSWZTdGF0c0Rpc2NvbnRpbnVpdHlUaW1lLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSA0NCB9CisKK2lwSWZTdGF0c0hDT3V0QmNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyNjQKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIGJyb2FkY2FzdCBkYXRhZ3JhbXMgdHJhbnNtaXR0ZWQuICBUaGlzCisgICAgICAgICAgICBvYmplY3QgY291bnRzIHRoZSBzYW1lIGRhdGFncmFtcyBhcyBpcElmU3RhdHNPdXRCY2FzdFBrdHMsCisgICAgICAgICAgICBidXQgYWxsb3dzIGZvciBsYXJnZXIgdmFsdWVzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIgYXQKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0IG90aGVyCisgICAgICAgICAgICB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICBpcElmU3RhdHNEaXNjb250aW51aXR5VGltZS4iCisgICAgOjo9IHsgaXBJZlN0YXRzRW50cnkgNDUgfQorCitpcElmU3RhdHNEaXNjb250aW51aXR5VGltZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVGltZVN0YW1wCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHN5c1VwVGltZSBvbiB0aGUgbW9zdCByZWNlbnQgb2NjYXNpb24gYXQgd2hpY2gKKworCisKKyAgICAgICAgICAgIGFueSBvbmUgb3IgbW9yZSBvZiB0aGlzIGVudHJ5J3MgY291bnRlcnMgc3VmZmVyZWQgYQorICAgICAgICAgICAgZGlzY29udGludWl0eS4KKworICAgICAgICAgICAgSWYgbm8gc3VjaCBkaXNjb250aW51aXRpZXMgaGF2ZSBvY2N1cnJlZCBzaW5jZSB0aGUgbGFzdCByZS0KKyAgICAgICAgICAgIGluaXRpYWxpemF0aW9uIG9mIHRoZSBsb2NhbCBtYW5hZ2VtZW50IHN1YnN5c3RlbSwgdGhlbiB0aGlzCisgICAgICAgICAgICBvYmplY3QgY29udGFpbnMgYSB6ZXJvIHZhbHVlLiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSA0NiB9CisKK2lwSWZTdGF0c1JlZnJlc2hSYXRlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBVbnNpZ25lZDMyCisgICAgVU5JVFMgIm1pbGxpLXNlY29uZHMiCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG1pbmltdW0gcmVhc29uYWJsZSBwb2xsaW5nIGludGVydmFsIGZvciB0aGlzIGVudHJ5LgorICAgICAgICAgICAgVGhpcyBvYmplY3QgcHJvdmlkZXMgYW4gaW5kaWNhdGlvbiBvZiB0aGUgbWluaW11bSBhbW91bnQgb2YKKyAgICAgICAgICAgIHRpbWUgcmVxdWlyZWQgdG8gdXBkYXRlIHRoZSBjb3VudGVycyBpbiB0aGlzIGVudHJ5LiIKKyAgICA6Oj0geyBpcElmU3RhdHNFbnRyeSA0NyB9CisKKy0tCistLSBJbnRlcm5ldCBBZGRyZXNzIFByZWZpeCB0YWJsZQorLS0KKworaXBBZGRyZXNzUHJlZml4VGFibGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFNFUVVFTkNFIE9GIElwQWRkcmVzc1ByZWZpeEVudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGlzIHRhYmxlIGFsbG93cyB0aGUgdXNlciB0byBkZXRlcm1pbmUgdGhlIHNvdXJjZSBvZiBhbiBJUAorICAgICAgICAgICAgYWRkcmVzcyBvciBzZXQgb2YgSVAgYWRkcmVzc2VzLCBhbmQgYWxsb3dzIG90aGVyIHRhYmxlcyB0bworICAgICAgICAgICAgc2hhcmUgdGhlIGluZm9ybWF0aW9uIHZpYSBwb2ludGVyIHJhdGhlciB0aGFuIGJ5IGNvcHlpbmcuCisKKyAgICAgICAgICAgIEZvciBleGFtcGxlLCB3aGVuIHRoZSBub2RlIGNvbmZpZ3VyZXMgYm90aCBhIHVuaWNhc3QgYW5kCisgICAgICAgICAgICBhbnljYXN0IGFkZHJlc3MgZm9yIGEgcHJlZml4LCB0aGUgaXBBZGRyZXNzUHJlZml4IG9iamVjdHMKKyAgICAgICAgICAgIGZvciB0aG9zZSBhZGRyZXNzZXMgd2lsbCBwb2ludCB0byBhIHNpbmdsZSByb3cgaW4gdGhpcworICAgICAgICAgICAgdGFibGUuCisKKyAgICAgICAgICAgIFRoaXMgdGFibGUgcHJpbWFyaWx5IHByb3ZpZGVzIHN1cHBvcnQgZm9yIElQdjYgcHJlZml4ZXMsIGFuZAorICAgICAgICAgICAgc2V2ZXJhbCBvZiB0aGUgb2JqZWN0cyBhcmUgbGVzcyBtZWFuaW5nZnVsIGZvciBJUHY0LiAgVGhlCisgICAgICAgICAgICB0YWJsZSBjb250aW51ZXMgdG8gYWxsb3cgSVB2NCBhZGRyZXNzZXMgdG8gYWxsb3cgZnV0dXJlCisgICAgICAgICAgICBmbGV4aWJpbGl0eS4gIEluIG9yZGVyIHRvIHByb21vdGUgYSBjb21tb24gY29uZmlndXJhdGlvbiwKKyAgICAgICAgICAgIHRoaXMgZG9jdW1lbnQgaW5jbHVkZXMgc3VnZ2VzdGlvbnMgZm9yIGRlZmF1bHQgdmFsdWVzIGZvcgorICAgICAgICAgICAgSVB2NCBwcmVmaXhlcy4gIEVhY2ggb2YgdGhlc2UgdmFsdWVzIG1heSBiZSBvdmVycmlkZGVuIGlmIGFuCisgICAgICAgICAgICBvYmplY3QgaXMgbWVhbmluZ2Z1bCB0byB0aGUgbm9kZS4KKworICAgICAgICAgICAgQWxsIHByZWZpeGVzIHVzZWQgYnkgdGhpcyBlbnRpdHkgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoaXMKKyAgICAgICAgICAgIHRhYmxlIGluZGVwZW5kZW50IG9mIGhvdyB0aGUgZW50aXR5IGxlYXJuZWQgdGhlIHByZWZpeC4KKyAgICAgICAgICAgIChUaGlzIHRhYmxlIGlzbid0IGxpbWl0ZWQgdG8gcHJlZml4ZXMgbGVhcm5lZCBmcm9tIHJvdXRlcgorCisKKworICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudHMuKSIKKyAgICA6Oj0geyBpcCAzMiB9CisKK2lwQWRkcmVzc1ByZWZpeEVudHJ5IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJcEFkZHJlc3NQcmVmaXhFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQW4gZW50cnkgaW4gdGhlIGlwQWRkcmVzc1ByZWZpeFRhYmxlLiIKKyAgICBJTkRFWCAgICB7IGlwQWRkcmVzc1ByZWZpeElmSW5kZXgsIGlwQWRkcmVzc1ByZWZpeFR5cGUsCisgICAgICAgICAgICAgICBpcEFkZHJlc3NQcmVmaXhQcmVmaXgsIGlwQWRkcmVzc1ByZWZpeExlbmd0aCB9CisgICAgOjo9IHsgaXBBZGRyZXNzUHJlZml4VGFibGUgMSB9CisKK0lwQWRkcmVzc1ByZWZpeEVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgICAgIGlwQWRkcmVzc1ByZWZpeElmSW5kZXggICAgICAgICAgICAgICBJbnRlcmZhY2VJbmRleCwKKyAgICAgICAgaXBBZGRyZXNzUHJlZml4VHlwZSAgICAgICAgICAgICAgICAgIEluZXRBZGRyZXNzVHlwZSwKKyAgICAgICAgaXBBZGRyZXNzUHJlZml4UHJlZml4ICAgICAgICAgICAgICAgIEluZXRBZGRyZXNzLAorICAgICAgICBpcEFkZHJlc3NQcmVmaXhMZW5ndGggICAgICAgICAgICAgICAgSW5ldEFkZHJlc3NQcmVmaXhMZW5ndGgsCisgICAgICAgIGlwQWRkcmVzc1ByZWZpeE9yaWdpbiAgICAgICAgICAgICAgICBJcEFkZHJlc3NQcmVmaXhPcmlnaW5UQywKKyAgICAgICAgaXBBZGRyZXNzUHJlZml4T25MaW5rRmxhZyAgICAgICAgICAgIFRydXRoVmFsdWUsCisgICAgICAgIGlwQWRkcmVzc1ByZWZpeEF1dG9ub21vdXNGbGFnICAgICAgICBUcnV0aFZhbHVlLAorICAgICAgICBpcEFkZHJlc3NQcmVmaXhBZHZQcmVmZXJyZWRMaWZldGltZSAgVW5zaWduZWQzMiwKKyAgICAgICAgaXBBZGRyZXNzUHJlZml4QWR2VmFsaWRMaWZldGltZSAgICAgIFVuc2lnbmVkMzIKKyAgICB9CisKK2lwQWRkcmVzc1ByZWZpeElmSW5kZXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEludGVyZmFjZUluZGV4CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgaW5kZXggdmFsdWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBpbnRlcmZhY2Ugb24KKyAgICAgICAgICAgIHdoaWNoIHRoaXMgcHJlZml4IGlzIGNvbmZpZ3VyZWQuICBUaGUgaW50ZXJmYWNlIGlkZW50aWZpZWQKKyAgICAgICAgICAgIGJ5IGEgcGFydGljdWxhciB2YWx1ZSBvZiB0aGlzIGluZGV4IGlzIHRoZSBzYW1lIGludGVyZmFjZSBhcworICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgc2FtZSB2YWx1ZSBvZiB0aGUgSUYtTUlCJ3MgaWZJbmRleC4iCisgICAgOjo9IHsgaXBBZGRyZXNzUHJlZml4RW50cnkgMSB9CisKK2lwQWRkcmVzc1ByZWZpeFR5cGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRBZGRyZXNzVHlwZQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGFkZHJlc3MgdHlwZSBvZiBpcEFkZHJlc3NQcmVmaXguIgorICAgIDo6PSB7IGlwQWRkcmVzc1ByZWZpeEVudHJ5IDIgfQorCitpcEFkZHJlc3NQcmVmaXhQcmVmaXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRBZGRyZXNzCisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorCisKKworICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgYWRkcmVzcyBwcmVmaXguICBUaGUgYWRkcmVzcyB0eXBlIG9mIHRoaXMgb2JqZWN0IGlzCisgICAgICAgICAgICBzcGVjaWZpZWQgaW4gaXBBZGRyZXNzUHJlZml4VHlwZS4gIFRoZSBsZW5ndGggb2YgdGhpcyBvYmplY3QKKyAgICAgICAgICAgIGlzIHRoZSBzdGFuZGFyZCBsZW5ndGggZm9yIG9iamVjdHMgb2YgdGhhdCB0eXBlICg0IG9yIDE2CisgICAgICAgICAgICBieXRlcykuICBBbnkgYml0cyBhZnRlciBpcEFkZHJlc3NQcmVmaXhMZW5ndGggbXVzdCBiZSB6ZXJvLgorCisgICAgICAgICAgICBJbXBsZW1lbnRvcnMgbmVlZCB0byBiZSBhd2FyZSB0aGF0LCBpZiB0aGUgc2l6ZSBvZgorICAgICAgICAgICAgaXBBZGRyZXNzUHJlZml4UHJlZml4IGV4Y2VlZHMgMTE0IG9jdGV0cywgdGhlbiBPSURTIG9mCisgICAgICAgICAgICBpbnN0YW5jZXMgb2YgY29sdW1ucyBpbiB0aGlzIHJvdyB3aWxsIGhhdmUgbW9yZSB0aGFuIDEyOAorICAgICAgICAgICAgc3ViLWlkZW50aWZpZXJzIGFuZCBjYW5ub3QgYmUgYWNjZXNzZWQgdXNpbmcgU05NUHYxLAorICAgICAgICAgICAgU05NUHYyYywgb3IgU05NUHYzLiIKKyAgICA6Oj0geyBpcEFkZHJlc3NQcmVmaXhFbnRyeSAzIH0KKworaXBBZGRyZXNzUHJlZml4TGVuZ3RoIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0QWRkcmVzc1ByZWZpeExlbmd0aAorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHByZWZpeCBsZW5ndGggYXNzb2NpYXRlZCB3aXRoIHRoaXMgcHJlZml4LgorCisgICAgICAgICAgICBUaGUgdmFsdWUgMCBoYXMgbm8gc3BlY2lhbCBtZWFuaW5nIGZvciB0aGlzIG9iamVjdC4gIEl0CisgICAgICAgICAgICBzaW1wbHkgcmVmZXJzIHRvIGFkZHJlc3MgJzo6LzAnLiIKKyAgICA6Oj0geyBpcEFkZHJlc3NQcmVmaXhFbnRyeSA0IH0KKworaXBBZGRyZXNzUHJlZml4T3JpZ2luIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJcEFkZHJlc3NQcmVmaXhPcmlnaW5UQworICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBvcmlnaW4gb2YgdGhpcyBwcmVmaXguIgorICAgIDo6PSB7IGlwQWRkcmVzc1ByZWZpeEVudHJ5IDUgfQorCitpcEFkZHJlc3NQcmVmaXhPbkxpbmtGbGFnIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBUcnV0aFZhbHVlCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhpcyBvYmplY3QgaGFzIHRoZSB2YWx1ZSAndHJ1ZSgxKScsIGlmIHRoaXMgcHJlZml4IGNhbiBiZQorICAgICAgICAgICAgdXNlZCBmb3Igb24tbGluayBkZXRlcm1pbmF0aW9uOyBvdGhlcndpc2UsIHRoZSB2YWx1ZSBpcworICAgICAgICAgICAgJ2ZhbHNlKDIpJy4KKworICAgICAgICAgICAgVGhlIGRlZmF1bHQgZm9yIElQdjQgcHJlZml4ZXMgaXMgJ3RydWUoMSknLiIKKyAgICBSRUZFUkVOQ0UgIkZvciBJUHY2IFJGQyAyNDYxLCBlc3BlY2lhbGx5IHNlY3Rpb25zIDIgYW5kIDQuNi4yIGFuZAorICAgICAgICAgICAgICAgUkZDIDI0NjIiCisgICAgOjo9IHsgaXBBZGRyZXNzUHJlZml4RW50cnkgNiB9CisKK2lwQWRkcmVzc1ByZWZpeEF1dG9ub21vdXNGbGFnIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBUcnV0aFZhbHVlCisKKworCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQXV0b25vbW91cyBhZGRyZXNzIGNvbmZpZ3VyYXRpb24gZmxhZy4gIFdoZW4gdHJ1ZSgxKSwKKyAgICAgICAgICAgIGluZGljYXRlcyB0aGF0IHRoaXMgcHJlZml4IGNhbiBiZSB1c2VkIGZvciBhdXRvbm9tb3VzCisgICAgICAgICAgICBhZGRyZXNzIGNvbmZpZ3VyYXRpb24gKGkuZS4sIGNhbiBiZSB1c2VkIHRvIGZvcm0gYSBsb2NhbAorICAgICAgICAgICAgaW50ZXJmYWNlIGFkZHJlc3MpLiAgSWYgZmFsc2UoMiksIGl0IGlzIG5vdCB1c2VkIHRvIGF1dG8tCisgICAgICAgICAgICBjb25maWd1cmUgYSBsb2NhbCBpbnRlcmZhY2UgYWRkcmVzcy4KKworICAgICAgICAgICAgVGhlIGRlZmF1bHQgZm9yIElQdjQgcHJlZml4ZXMgaXMgJ2ZhbHNlKDIpJy4iCisgICAgUkVGRVJFTkNFICJGb3IgSVB2NiBSRkMgMjQ2MSwgZXNwZWNpYWxseSBzZWN0aW9ucyAyIGFuZCA0LjYuMiBhbmQKKyAgICAgICAgICAgICAgIFJGQyAyNDYyIgorICAgIDo6PSB7IGlwQWRkcmVzc1ByZWZpeEVudHJ5IDcgfQorCitpcEFkZHJlc3NQcmVmaXhBZHZQcmVmZXJyZWRMaWZldGltZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVW5zaWduZWQzMgorICAgIFVOSVRTICAgICAgInNlY29uZHMiCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHJlbWFpbmluZyBsZW5ndGggb2YgdGltZSwgaW4gc2Vjb25kcywgdGhhdCB0aGlzIHByZWZpeAorICAgICAgICAgICAgd2lsbCBjb250aW51ZSB0byBiZSBwcmVmZXJyZWQsIGkuZS4sIHRpbWUgdW50aWwgZGVwcmVjYXRpb24uCisKKyAgICAgICAgICAgIEEgdmFsdWUgb2YgNCwyOTQsOTY3LDI5NSByZXByZXNlbnRzIGluZmluaXR5LgorCisgICAgICAgICAgICBUaGUgYWRkcmVzcyBnZW5lcmF0ZWQgZnJvbSBhIGRlcHJlY2F0ZWQgcHJlZml4IHNob3VsZCBubworICAgICAgICAgICAgbG9uZ2VyIGJlIHVzZWQgYXMgYSBzb3VyY2UgYWRkcmVzcyBpbiBuZXcgY29tbXVuaWNhdGlvbnMsCisgICAgICAgICAgICBidXQgcGFja2V0cyByZWNlaXZlZCBvbiBzdWNoIGFuIGludGVyZmFjZSBhcmUgcHJvY2Vzc2VkIGFzCisgICAgICAgICAgICBleHBlY3RlZC4KKworICAgICAgICAgICAgVGhlIGRlZmF1bHQgZm9yIElQdjQgcHJlZml4ZXMgaXMgNCwyOTQsOTY3LDI5NSAoaW5maW5pdHkpLiIKKyAgICBSRUZFUkVOQ0UgIkZvciBJUHY2IFJGQyAyNDYxLCBlc3BlY2lhbGx5IHNlY3Rpb25zIDIgYW5kIDQuNi4yIGFuZAorICAgICAgICAgICAgICAgUkZDIDI0NjIiCisgICAgOjo9IHsgaXBBZGRyZXNzUHJlZml4RW50cnkgOCB9CisKK2lwQWRkcmVzc1ByZWZpeEFkdlZhbGlkTGlmZXRpbWUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFVuc2lnbmVkMzIKKyAgICBVTklUUyAgICAgICAic2Vjb25kcyIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgcmVtYWluaW5nIGxlbmd0aCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0aGF0IHRoaXMgcHJlZml4CisgICAgICAgICAgICB3aWxsIGNvbnRpbnVlIHRvIGJlIHZhbGlkLCBpLmUuLCB0aW1lIHVudGlsIGludmFsaWRhdGlvbi4gIEEKKyAgICAgICAgICAgIHZhbHVlIG9mIDQsMjk0LDk2NywyOTUgcmVwcmVzZW50cyBpbmZpbml0eS4KKworICAgICAgICAgICAgVGhlIGFkZHJlc3MgZ2VuZXJhdGVkIGZyb20gYW4gaW52YWxpZGF0ZWQgcHJlZml4IHNob3VsZCBub3QKKyAgICAgICAgICAgIGFwcGVhciBhcyB0aGUgZGVzdGluYXRpb24gb3Igc291cmNlIGFkZHJlc3Mgb2YgYSBwYWNrZXQuCisKKworCisKKyAgICAgICAgICAgIFRoZSBkZWZhdWx0IGZvciBJUHY0IHByZWZpeGVzIGlzIDQsMjk0LDk2NywyOTUgKGluZmluaXR5KS4iCisgICAgUkVGRVJFTkNFICJGb3IgSVB2NiBSRkMgMjQ2MSwgZXNwZWNpYWxseSBzZWN0aW9ucyAyIGFuZCA0LjYuMiBhbmQKKyAgICAgICAgICAgICAgIFJGQyAyNDYyIgorICAgIDo6PSB7IGlwQWRkcmVzc1ByZWZpeEVudHJ5IDkgfQorCistLQorLS0gSW50ZXJuZXQgQWRkcmVzcyBUYWJsZQorLS0KKworaXBBZGRyZXNzU3BpbkxvY2sgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFRlc3RBbmRJbmNyCisgICAgTUFYLUFDQ0VTUyByZWFkLXdyaXRlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFkdmlzb3J5IGxvY2sgdXNlZCB0byBhbGxvdyBjb29wZXJhdGluZyBTTk1QIG1hbmFnZXJzIHRvCisgICAgICAgICAgICBjb29yZGluYXRlIHRoZWlyIHVzZSBvZiB0aGUgc2V0IG9wZXJhdGlvbiBpbiBjcmVhdGluZyBvcgorICAgICAgICAgICAgbW9kaWZ5aW5nIHJvd3Mgd2l0aGluIHRoaXMgdGFibGUuCisKKyAgICAgICAgICAgIEluIG9yZGVyIHRvIHVzZSB0aGlzIGxvY2sgdG8gY29vcmRpbmF0ZSB0aGUgdXNlIG9mIHNldAorICAgICAgICAgICAgb3BlcmF0aW9ucywgbWFuYWdlcnMgc2hvdWxkIGZpcnN0IHJldHJpZXZlCisgICAgICAgICAgICBpcEFkZHJlc3NUYWJsZVNwaW5Mb2NrLiAgVGhleSBzaG91bGQgdGhlbiBkZXRlcm1pbmUgdGhlCisgICAgICAgICAgICBhcHByb3ByaWF0ZSByb3cgdG8gY3JlYXRlIG9yIG1vZGlmeS4gIEZpbmFsbHksIHRoZXkgc2hvdWxkCisgICAgICAgICAgICBpc3N1ZSB0aGUgYXBwcm9wcmlhdGUgc2V0IGNvbW1hbmQsIGluY2x1ZGluZyB0aGUgcmV0cmlldmVkCisgICAgICAgICAgICB2YWx1ZSBvZiBpcEFkZHJlc3NTcGluTG9jay4gIElmIGFub3RoZXIgbWFuYWdlciBoYXMgYWx0ZXJlZAorICAgICAgICAgICAgdGhlIHRhYmxlIGluIHRoZSBtZWFudGltZSwgdGhlbiB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwQWRkcmVzc1NwaW5Mb2NrIHdpbGwgaGF2ZSBjaGFuZ2VkLCBhbmQgdGhlIGNyZWF0aW9uIHdpbGwKKyAgICAgICAgICAgIGZhaWwgYXMgaXQgd2lsbCBiZSBzcGVjaWZ5aW5nIGFuIGluY29ycmVjdCB2YWx1ZSBmb3IKKyAgICAgICAgICAgIGlwQWRkcmVzc1NwaW5Mb2NrLiAgSXQgaXMgc3VnZ2VzdGVkLCBidXQgbm90IHJlcXVpcmVkLCB0aGF0CisgICAgICAgICAgICB0aGUgaXBBZGRyZXNzU3BpbkxvY2sgYmUgdGhlIGZpcnN0IHZhciBiaW5kIGZvciBlYWNoIHNldCBvZgorICAgICAgICAgICAgb2JqZWN0cyByZXByZXNlbnRpbmcgYSAncm93JyBpbiBhIFBEVS4iCisgICAgOjo9IHsgaXAgMzMgfQorCitpcEFkZHJlc3NUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgU0VRVUVOQ0UgT0YgSXBBZGRyZXNzRW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoaXMgdGFibGUgY29udGFpbnMgYWRkcmVzc2luZyBpbmZvcm1hdGlvbiByZWxldmFudCB0byB0aGUKKyAgICAgICAgICAgIGVudGl0eSdzIGludGVyZmFjZXMuCisKKyAgICAgICAgICAgIFRoaXMgdGFibGUgZG9lcyBub3QgY29udGFpbiBtdWx0aWNhc3QgYWRkcmVzcyBpbmZvcm1hdGlvbi4KKyAgICAgICAgICAgIFRhYmxlcyBmb3Igc3VjaCBpbmZvcm1hdGlvbiBzaG91bGQgYmUgY29udGFpbmVkIGluIG11bHRpY2FzdAorICAgICAgICAgICAgc3BlY2lmaWMgTUlCcywgc3VjaCBhcyBSRkMgMzAxOS4KKworICAgICAgICAgICAgV2hpbGUgdGhpcyB0YWJsZSBpcyB3cml0YWJsZSwgdGhlIHVzZXIgd2lsbCBub3RlIHRoYXQKKyAgICAgICAgICAgIHNldmVyYWwgb2JqZWN0cywgc3VjaCBhcyBpcEFkZHJlc3NPcmlnaW4sIGFyZSBub3QuICBUaGUKKyAgICAgICAgICAgIGludGVudGlvbiBpbiBhbGxvd2luZyBhIHVzZXIgdG8gd3JpdGUgdG8gdGhpcyB0YWJsZSBpcyB0bworICAgICAgICAgICAgYWxsb3cgdGhlbSB0byBhZGQgb3IgcmVtb3ZlIGFueSBlbnRyeSB0aGF0IGlzbid0CisKKworCisgICAgICAgICAgICBwZXJtYW5lbnQuICBUaGUgdXNlciBzaG91bGQgYmUgYWxsb3dlZCB0byBtb2RpZnkgb2JqZWN0cworICAgICAgICAgICAgYW5kIGVudHJpZXMgd2hlbiB0aGF0IHdvdWxkIG5vdCBjYXVzZSBpbmNvbnNpc3RlbmNpZXMKKyAgICAgICAgICAgIHdpdGhpbiB0aGUgdGFibGUuICBBbGxvd2luZyB3cml0ZSBhY2Nlc3MgdG8gb2JqZWN0cywgc3VjaAorICAgICAgICAgICAgYXMgaXBBZGRyZXNzT3JpZ2luLCBjb3VsZCBhbGxvdyBhIHVzZXIgdG8gaW5zZXJ0IGFuIGVudHJ5CisgICAgICAgICAgICBhbmQgdGhlbiBsYWJlbCBpdCBpbmNvcnJlY3RseS4KKworICAgICAgICAgICAgTm90ZSB3ZWxsOiBXaGVuIGluY2x1ZGluZyBJUHY2IGxpbmstbG9jYWwgYWRkcmVzc2VzIGluIHRoaXMKKyAgICAgICAgICAgIHRhYmxlLCB0aGUgZW50cnkgbXVzdCB1c2UgYW4gSW5ldEFkZHJlc3NUeXBlIG9mICdpcHY2eicgaW4KKyAgICAgICAgICAgIG9yZGVyIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB0aGUgcG9zc2libGUgaW50ZXJmYWNlcy4iCisgICAgOjo9IHsgaXAgMzQgfQorCitpcEFkZHJlc3NFbnRyeSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSXBBZGRyZXNzRW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFkZHJlc3MgbWFwcGluZyBmb3IgYSBwYXJ0aWN1bGFyIGludGVyZmFjZS4iCisgICAgSU5ERVggeyBpcEFkZHJlc3NBZGRyVHlwZSwgaXBBZGRyZXNzQWRkciB9CisgICAgOjo9IHsgaXBBZGRyZXNzVGFibGUgMSB9CisKK0lwQWRkcmVzc0VudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgICAgIGlwQWRkcmVzc0FkZHJUeXBlICAgICBJbmV0QWRkcmVzc1R5cGUsCisgICAgICAgIGlwQWRkcmVzc0FkZHIgICAgICAgICBJbmV0QWRkcmVzcywKKyAgICAgICAgaXBBZGRyZXNzSWZJbmRleCAgICAgIEludGVyZmFjZUluZGV4LAorICAgICAgICBpcEFkZHJlc3NUeXBlICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgaXBBZGRyZXNzUHJlZml4ICAgICAgIFJvd1BvaW50ZXIsCisgICAgICAgIGlwQWRkcmVzc09yaWdpbiAgICAgICBJcEFkZHJlc3NPcmlnaW5UQywKKyAgICAgICAgaXBBZGRyZXNzU3RhdHVzICAgICAgIElwQWRkcmVzc1N0YXR1c1RDLAorICAgICAgICBpcEFkZHJlc3NDcmVhdGVkICAgICAgVGltZVN0YW1wLAorICAgICAgICBpcEFkZHJlc3NMYXN0Q2hhbmdlZCAgVGltZVN0YW1wLAorICAgICAgICBpcEFkZHJlc3NSb3dTdGF0dXMgICAgUm93U3RhdHVzLAorICAgICAgICBpcEFkZHJlc3NTdG9yYWdlVHlwZSAgU3RvcmFnZVR5cGUKKyAgICB9CisKK2lwQWRkcmVzc0FkZHJUeXBlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0QWRkcmVzc1R5cGUKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBhZGRyZXNzIHR5cGUgb2YgaXBBZGRyZXNzQWRkci4iCisgICAgOjo9IHsgaXBBZGRyZXNzRW50cnkgMSB9CisKK2lwQWRkcmVzc0FkZHIgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRBZGRyZXNzCisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgSVAgYWRkcmVzcyB0byB3aGljaCB0aGlzIGVudHJ5J3MgYWRkcmVzc2luZyBpbmZvcm1hdGlvbgorCisKKworICAgICAgICAgICAgcGVydGFpbnMuICBUaGUgYWRkcmVzcyB0eXBlIG9mIHRoaXMgb2JqZWN0IGlzIHNwZWNpZmllZCBpbgorICAgICAgICAgICAgaXBBZGRyZXNzQWRkclR5cGUuCisKKyAgICAgICAgICAgIEltcGxlbWVudG9ycyBuZWVkIHRvIGJlIGF3YXJlIHRoYXQgaWYgdGhlIHNpemUgb2YKKyAgICAgICAgICAgIGlwQWRkcmVzc0FkZHIgZXhjZWVkcyAxMTYgb2N0ZXRzLCB0aGVuIE9JRFMgb2YgaW5zdGFuY2VzIG9mCisgICAgICAgICAgICBjb2x1bW5zIGluIHRoaXMgcm93IHdpbGwgaGF2ZSBtb3JlIHRoYW4gMTI4IHN1Yi1pZGVudGlmaWVycworICAgICAgICAgICAgYW5kIGNhbm5vdCBiZSBhY2Nlc3NlZCB1c2luZyBTTk1QdjEsIFNOTVB2MmMsIG9yIFNOTVB2My4iCisgICAgOjo9IHsgaXBBZGRyZXNzRW50cnkgMiB9CisKK2lwQWRkcmVzc0lmSW5kZXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEludGVyZmFjZUluZGV4CisgICAgTUFYLUFDQ0VTUyByZWFkLWNyZWF0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgaW5kZXggdmFsdWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBpbnRlcmZhY2UgdG8KKyAgICAgICAgICAgIHdoaWNoIHRoaXMgZW50cnkgaXMgYXBwbGljYWJsZS4gIFRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieQorICAgICAgICAgICAgYSBwYXJ0aWN1bGFyIHZhbHVlIG9mIHRoaXMgaW5kZXggaXMgdGhlIHNhbWUgaW50ZXJmYWNlIGFzCisgICAgICAgICAgICBpZGVudGlmaWVkIGJ5IHRoZSBzYW1lIHZhbHVlIG9mIHRoZSBJRi1NSUIncyBpZkluZGV4LiIKKyAgICA6Oj0geyBpcEFkZHJlc3NFbnRyeSAzIH0KKworaXBBZGRyZXNzVHlwZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgIHVuaWNhc3QoMSksCisgICAgICAgICAgICAgICAgIGFueWNhc3QoMiksCisgICAgICAgICAgICAgICAgIGJyb2FkY2FzdCgzKQorICAgIH0KKyAgICBNQVgtQUNDRVNTIHJlYWQtY3JlYXRlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0eXBlIG9mIGFkZHJlc3MuICBicm9hZGNhc3QoMykgaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yCisgICAgICAgICAgICBJUHY2IGFkZHJlc3NlcyAoUkZDIDM1MTMpLiIKKyAgICBERUZWQUwgeyB1bmljYXN0IH0KKyAgICA6Oj0geyBpcEFkZHJlc3NFbnRyeSA0IH0KKworaXBBZGRyZXNzUHJlZml4IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBSb3dQb2ludGVyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQSBwb2ludGVyIHRvIHRoZSByb3cgaW4gdGhlIHByZWZpeCB0YWJsZSB0byB3aGljaCB0aGlzCisgICAgICAgICAgICBhZGRyZXNzIGJlbG9uZ3MuICBNYXkgYmUgeyAwIDAgfSBpZiB0aGVyZSBpcyBubyBzdWNoIHJvdy4iCisgICAgREVGVkFMIHsgemVyb0RvdFplcm8gfQorICAgIDo6PSB7IGlwQWRkcmVzc0VudHJ5IDUgfQorCitpcEFkZHJlc3NPcmlnaW4gT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElwQWRkcmVzc09yaWdpblRDCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKworCisKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG9yaWdpbiBvZiB0aGUgYWRkcmVzcy4iCisgICAgOjo9IHsgaXBBZGRyZXNzRW50cnkgNiB9CisKK2lwQWRkcmVzc1N0YXR1cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSXBBZGRyZXNzU3RhdHVzVEMKKyAgICBNQVgtQUNDRVNTIHJlYWQtY3JlYXRlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBzdGF0dXMgb2YgdGhlIGFkZHJlc3MsIGRlc2NyaWJpbmcgaWYgdGhlIGFkZHJlc3MgY2FuIGJlCisgICAgICAgICAgICB1c2VkIGZvciBjb21tdW5pY2F0aW9uLgorCisgICAgICAgICAgICBJbiB0aGUgYWJzZW5jZSBvZiBvdGhlciBpbmZvcm1hdGlvbiwgYW4gSVB2NCBhZGRyZXNzIGlzCisgICAgICAgICAgICBhbHdheXMgcHJlZmVycmVkKDEpLiIKKyAgICBERUZWQUwgeyBwcmVmZXJyZWQgfQorICAgIDo6PSB7IGlwQWRkcmVzc0VudHJ5IDcgfQorCitpcEFkZHJlc3NDcmVhdGVkIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBUaW1lU3RhbXAKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdmFsdWUgb2Ygc3lzVXBUaW1lIGF0IHRoZSB0aW1lIHRoaXMgZW50cnkgd2FzIGNyZWF0ZWQuCisgICAgICAgICAgICBJZiB0aGlzIGVudHJ5IHdhcyBjcmVhdGVkIHByaW9yIHRvIHRoZSBsYXN0IHJlLQorICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGxvY2FsIG5ldHdvcmsgbWFuYWdlbWVudCBzdWJzeXN0ZW0sCisgICAgICAgICAgICB0aGVuIHRoaXMgb2JqZWN0IGNvbnRhaW5zIGEgemVybyB2YWx1ZS4iCisgICAgOjo9IHsgaXBBZGRyZXNzRW50cnkgOCB9CisKK2lwQWRkcmVzc0xhc3RDaGFuZ2VkIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBUaW1lU3RhbXAKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdmFsdWUgb2Ygc3lzVXBUaW1lIGF0IHRoZSB0aW1lIHRoaXMgZW50cnkgd2FzIGxhc3QKKyAgICAgICAgICAgIHVwZGF0ZWQuICBJZiB0aGlzIGVudHJ5IHdhcyB1cGRhdGVkIHByaW9yIHRvIHRoZSBsYXN0IHJlLQorICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGxvY2FsIG5ldHdvcmsgbWFuYWdlbWVudCBzdWJzeXN0ZW0sCisgICAgICAgICAgICB0aGVuIHRoaXMgb2JqZWN0IGNvbnRhaW5zIGEgemVybyB2YWx1ZS4iCisgICAgOjo9IHsgaXBBZGRyZXNzRW50cnkgOSB9CisKK2lwQWRkcmVzc1Jvd1N0YXR1cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgUm93U3RhdHVzCisgICAgTUFYLUFDQ0VTUyByZWFkLWNyZWF0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgc3RhdHVzIG9mIHRoaXMgY29uY2VwdHVhbCByb3cuCisKKyAgICAgICAgICAgIFRoZSBSb3dTdGF0dXMgVEMgcmVxdWlyZXMgdGhhdCB0aGlzIERFU0NSSVBUSU9OIGNsYXVzZQorICAgICAgICAgICAgc3RhdGVzIHVuZGVyIHdoaWNoIGNpcmN1bXN0YW5jZXMgb3RoZXIgb2JqZWN0cyBpbiB0aGlzIHJvdworCisKKworICAgICAgICAgICAgY2FuIGJlIG1vZGlmaWVkLiAgVGhlIHZhbHVlIG9mIHRoaXMgb2JqZWN0IGhhcyBubyBlZmZlY3Qgb24KKyAgICAgICAgICAgIHdoZXRoZXIgb3RoZXIgb2JqZWN0cyBpbiB0aGlzIGNvbmNlcHR1YWwgcm93IGNhbiBiZQorICAgICAgICAgICAgbW9kaWZpZWQuCisKKyAgICAgICAgICAgIEEgY29uY2VwdHVhbCByb3cgY2FuIG5vdCBiZSBtYWRlIGFjdGl2ZSB1bnRpbCB0aGUKKyAgICAgICAgICAgIGlwQWRkcmVzc0lmSW5kZXggaGFzIGJlZW4gc2V0IHRvIGEgdmFsaWQgaW5kZXguIgorICAgIDo6PSB7IGlwQWRkcmVzc0VudHJ5IDEwIH0KKworaXBBZGRyZXNzU3RvcmFnZVR5cGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFN0b3JhZ2VUeXBlCisgICAgTUFYLUFDQ0VTUyByZWFkLWNyZWF0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgc3RvcmFnZSB0eXBlIGZvciB0aGlzIGNvbmNlcHR1YWwgcm93LiAgSWYgdGhpcyBvYmplY3QKKyAgICAgICAgICAgIGhhcyBhIHZhbHVlIG9mICdwZXJtYW5lbnQnLCB0aGVuIG5vIG90aGVyIG9iamVjdHMgYXJlCisgICAgICAgICAgICByZXF1aXJlZCB0byBiZSBhYmxlIHRvIGJlIG1vZGlmaWVkLiIKKyAgICBERUZWQUwgeyB2b2xhdGlsZSB9CisgICAgOjo9IHsgaXBBZGRyZXNzRW50cnkgMTEgfQorCistLQorLS0gdGhlIEludGVybmV0IEFkZHJlc3MgVHJhbnNsYXRpb24gdGFibGUKKy0tCisKK2lwTmV0VG9QaHlzaWNhbFRhYmxlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBTRVFVRU5DRSBPRiBJcE5ldFRvUGh5c2ljYWxFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIElQIEFkZHJlc3MgVHJhbnNsYXRpb24gdGFibGUgdXNlZCBmb3IgbWFwcGluZyBmcm9tIElQCisgICAgICAgICAgICBhZGRyZXNzZXMgdG8gcGh5c2ljYWwgYWRkcmVzc2VzLgorCisgICAgICAgICAgICBUaGUgQWRkcmVzcyBUcmFuc2xhdGlvbiB0YWJsZXMgY29udGFpbiB0aGUgSVAgYWRkcmVzcyB0bworICAgICAgICAgICAgJ3BoeXNpY2FsJyBhZGRyZXNzIGVxdWl2YWxlbmNlcy4gIFNvbWUgaW50ZXJmYWNlcyBkbyBub3QgdXNlCisgICAgICAgICAgICB0cmFuc2xhdGlvbiB0YWJsZXMgZm9yIGRldGVybWluaW5nIGFkZHJlc3MgZXF1aXZhbGVuY2VzCisgICAgICAgICAgICAoZS5nLiwgREROLVguMjUgaGFzIGFuIGFsZ29yaXRobWljIG1ldGhvZCk7IGlmIGFsbAorICAgICAgICAgICAgaW50ZXJmYWNlcyBhcmUgb2YgdGhpcyB0eXBlLCB0aGVuIHRoZSBBZGRyZXNzIFRyYW5zbGF0aW9uCisgICAgICAgICAgICB0YWJsZSBpcyBlbXB0eSwgaS5lLiwgaGFzIHplcm8gZW50cmllcy4KKworICAgICAgICAgICAgV2hpbGUgbWFueSBwcm90b2NvbHMgbWF5IGJlIHVzZWQgdG8gcG9wdWxhdGUgdGhpcyB0YWJsZSwgQVJQCisgICAgICAgICAgICBhbmQgTmVpZ2hib3IgRGlzY292ZXJ5IGFyZSB0aGUgbW9zdCBsaWtlbHkKKyAgICAgICAgICAgIG9wdGlvbnMuIgorICAgIFJFRkVSRU5DRSAiUkZDIDgyNiBhbmQgUkZDIDI0NjEiCisgICAgOjo9IHsgaXAgMzUgfQorCitpcE5ldFRvUGh5c2ljYWxFbnRyeSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSXBOZXRUb1BoeXNpY2FsRW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisKKworCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkVhY2ggZW50cnkgY29udGFpbnMgb25lIElQIGFkZHJlc3MgdG8gYHBoeXNpY2FsJyBhZGRyZXNzCisgICAgICAgICAgICBlcXVpdmFsZW5jZS4iCisgICAgSU5ERVggICAgICAgeyBpcE5ldFRvUGh5c2ljYWxJZkluZGV4LAorICAgICAgICAgICAgICAgICAgaXBOZXRUb1BoeXNpY2FsTmV0QWRkcmVzc1R5cGUsCisgICAgICAgICAgICAgICAgICBpcE5ldFRvUGh5c2ljYWxOZXRBZGRyZXNzIH0KKyAgICA6Oj0geyBpcE5ldFRvUGh5c2ljYWxUYWJsZSAxIH0KKworSXBOZXRUb1BoeXNpY2FsRW50cnkgOjo9IFNFUVVFTkNFIHsKKyAgICAgICAgaXBOZXRUb1BoeXNpY2FsSWZJbmRleCAgICAgICAgIEludGVyZmFjZUluZGV4LAorICAgICAgICBpcE5ldFRvUGh5c2ljYWxOZXRBZGRyZXNzVHlwZSAgSW5ldEFkZHJlc3NUeXBlLAorICAgICAgICBpcE5ldFRvUGh5c2ljYWxOZXRBZGRyZXNzICAgICAgSW5ldEFkZHJlc3MsCisgICAgICAgIGlwTmV0VG9QaHlzaWNhbFBoeXNBZGRyZXNzICAgICBQaHlzQWRkcmVzcywKKyAgICAgICAgaXBOZXRUb1BoeXNpY2FsTGFzdFVwZGF0ZWQgICAgIFRpbWVTdGFtcCwKKyAgICAgICAgaXBOZXRUb1BoeXNpY2FsVHlwZSAgICAgICAgICAgIElOVEVHRVIsCisgICAgICAgIGlwTmV0VG9QaHlzaWNhbFN0YXRlICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICBpcE5ldFRvUGh5c2ljYWxSb3dTdGF0dXMgICAgICAgUm93U3RhdHVzCisgICAgfQorCitpcE5ldFRvUGh5c2ljYWxJZkluZGV4IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbnRlcmZhY2VJbmRleAorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGluZGV4IHZhbHVlIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgaW50ZXJmYWNlIHRvCisgICAgICAgICAgICB3aGljaCB0aGlzIGVudHJ5IGlzIGFwcGxpY2FibGUuICBUaGUgaW50ZXJmYWNlIGlkZW50aWZpZWQgYnkKKyAgICAgICAgICAgIGEgcGFydGljdWxhciB2YWx1ZSBvZiB0aGlzIGluZGV4IGlzIHRoZSBzYW1lIGludGVyZmFjZSBhcworICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgc2FtZSB2YWx1ZSBvZiB0aGUgSUYtTUlCJ3MgaWZJbmRleC4iCisgICAgOjo9IHsgaXBOZXRUb1BoeXNpY2FsRW50cnkgMSB9CisKK2lwTmV0VG9QaHlzaWNhbE5ldEFkZHJlc3NUeXBlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0QWRkcmVzc1R5cGUKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0eXBlIG9mIGlwTmV0VG9QaHlzaWNhbE5ldEFkZHJlc3MuIgorICAgIDo6PSB7IGlwTmV0VG9QaHlzaWNhbEVudHJ5IDIgfQorCitpcE5ldFRvUGh5c2ljYWxOZXRBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0QWRkcmVzcworICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIElQIEFkZHJlc3MgY29ycmVzcG9uZGluZyB0byB0aGUgbWVkaWEtZGVwZW5kZW50CisgICAgICAgICAgICBgcGh5c2ljYWwnIGFkZHJlc3MuICBUaGUgYWRkcmVzcyB0eXBlIG9mIHRoaXMgb2JqZWN0IGlzCisgICAgICAgICAgICBzcGVjaWZpZWQgaW4gaXBOZXRUb1BoeXNpY2FsQWRkcmVzc1R5cGUuCisKKyAgICAgICAgICAgIEltcGxlbWVudG9ycyBuZWVkIHRvIGJlIGF3YXJlIHRoYXQgaWYgdGhlIHNpemUgb2YKKworCisKKyAgICAgICAgICAgIGlwTmV0VG9QaHlzaWNhbE5ldEFkZHJlc3MgZXhjZWVkcyAxMTUgb2N0ZXRzLCB0aGVuIE9JRFMgb2YKKyAgICAgICAgICAgIGluc3RhbmNlcyBvZiBjb2x1bW5zIGluIHRoaXMgcm93IHdpbGwgaGF2ZSBtb3JlIHRoYW4gMTI4CisgICAgICAgICAgICBzdWItaWRlbnRpZmllcnMgYW5kIGNhbm5vdCBiZSBhY2Nlc3NlZCB1c2luZyBTTk1QdjEsCisgICAgICAgICAgICBTTk1QdjJjLCBvciBTTk1QdjMuIgorICAgIDo6PSB7IGlwTmV0VG9QaHlzaWNhbEVudHJ5IDMgfQorCitpcE5ldFRvUGh5c2ljYWxQaHlzQWRkcmVzcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgUGh5c0FkZHJlc3MgKFNJWkUoMC4uNjU1MzUpKQorICAgIE1BWC1BQ0NFU1MgcmVhZC1jcmVhdGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG1lZGlhLWRlcGVuZGVudCBgcGh5c2ljYWwnIGFkZHJlc3MuCisKKyAgICAgICAgICAgIEFzIHRoZSBlbnRyaWVzIGluIHRoaXMgdGFibGUgYXJlIHR5cGljYWxseSBub3QgcGVyc2lzdGVudAorICAgICAgICAgICAgd2hlbiB0aGlzIG9iamVjdCBpcyB3cml0dGVuIHRoZSBlbnRpdHkgU0hPVUxEIE5PVCBzYXZlIHRoZQorICAgICAgICAgICAgY2hhbmdlIHRvIG5vbi12b2xhdGlsZSBzdG9yYWdlLiIKKyAgICA6Oj0geyBpcE5ldFRvUGh5c2ljYWxFbnRyeSA0IH0KKworaXBOZXRUb1BoeXNpY2FsTGFzdFVwZGF0ZWQgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFRpbWVTdGFtcAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB2YWx1ZSBvZiBzeXNVcFRpbWUgYXQgdGhlIHRpbWUgdGhpcyBlbnRyeSB3YXMgbGFzdAorICAgICAgICAgICAgdXBkYXRlZC4gIElmIHRoaXMgZW50cnkgd2FzIHVwZGF0ZWQgcHJpb3IgdG8gdGhlIGxhc3QgcmUtCisgICAgICAgICAgICBpbml0aWFsaXphdGlvbiBvZiB0aGUgbG9jYWwgbmV0d29yayBtYW5hZ2VtZW50IHN1YnN5c3RlbSwKKyAgICAgICAgICAgIHRoZW4gdGhpcyBvYmplY3QgY29udGFpbnMgYSB6ZXJvIHZhbHVlLiIKKyAgICA6Oj0geyBpcE5ldFRvUGh5c2ljYWxFbnRyeSA1IH0KKworaXBOZXRUb1BoeXNpY2FsVHlwZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgb3RoZXIoMSksICAgICAgICAtLSBub25lIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgICAgICAgICBpbnZhbGlkKDIpLCAgICAgIC0tIGFuIGludmFsaWRhdGVkIG1hcHBpbmcKKyAgICAgICAgICAgICAgICBkeW5hbWljKDMpLAorICAgICAgICAgICAgICAgIHN0YXRpYyg0KSwKKyAgICAgICAgICAgICAgICBsb2NhbCg1KSAgICAgICAgIC0tIGxvY2FsIGludGVyZmFjZQorICAgICAgICAgICAgfQorICAgIE1BWC1BQ0NFU1MgcmVhZC1jcmVhdGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHR5cGUgb2YgbWFwcGluZy4KKworICAgICAgICAgICAgU2V0dGluZyB0aGlzIG9iamVjdCB0byB0aGUgdmFsdWUgaW52YWxpZCgyKSBoYXMgdGhlIGVmZmVjdAorICAgICAgICAgICAgb2YgaW52YWxpZGF0aW5nIHRoZSBjb3JyZXNwb25kaW5nIGVudHJ5IGluIHRoZQorICAgICAgICAgICAgaXBOZXRUb1BoeXNpY2FsVGFibGUuICBUaGF0IGlzLCBpdCBlZmZlY3RpdmVseSBkaXMtCisgICAgICAgICAgICBhc3NvY2lhdGVzIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCB3aXRoIHNhaWQgZW50cnkgZnJvbSB0aGUKKyAgICAgICAgICAgIG1hcHBpbmcgaWRlbnRpZmllZCB3aXRoIHNhaWQgZW50cnkuICBJdCBpcyBhbgorICAgICAgICAgICAgaW1wbGVtZW50YXRpb24tc3BlY2lmaWMgbWF0dGVyIGFzIHRvIHdoZXRoZXIgdGhlIGFnZW50CisKKworCisgICAgICAgICAgICByZW1vdmVzIGFuIGludmFsaWRhdGVkIGVudHJ5IGZyb20gdGhlIHRhYmxlLiAgQWNjb3JkaW5nbHksCisgICAgICAgICAgICBtYW5hZ2VtZW50IHN0YXRpb25zIG11c3QgYmUgcHJlcGFyZWQgdG8gcmVjZWl2ZSB0YWJ1bGFyCisgICAgICAgICAgICBpbmZvcm1hdGlvbiBmcm9tIGFnZW50cyB0aGF0IGNvcnJlc3BvbmRzIHRvIGVudHJpZXMgbm90CisgICAgICAgICAgICBjdXJyZW50bHkgaW4gdXNlLiAgUHJvcGVyIGludGVycHJldGF0aW9uIG9mIHN1Y2ggZW50cmllcworICAgICAgICAgICAgcmVxdWlyZXMgZXhhbWluYXRpb24gb2YgdGhlIHJlbGV2YW50IGlwTmV0VG9QaHlzaWNhbFR5cGUKKyAgICAgICAgICAgIG9iamVjdC4KKworICAgICAgICAgICAgVGhlICdkeW5hbWljKDMpJyB0eXBlIGluZGljYXRlcyB0aGF0IHRoZSBJUCBhZGRyZXNzIHRvCisgICAgICAgICAgICBwaHlzaWNhbCBhZGRyZXNzZXMgbWFwcGluZyBoYXMgYmVlbiBkeW5hbWljYWxseSByZXNvbHZlZAorICAgICAgICAgICAgdXNpbmcgZS5nLiwgSVB2NCBBUlAgb3IgdGhlIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5CisgICAgICAgICAgICBwcm90b2NvbC4KKworICAgICAgICAgICAgVGhlICdzdGF0aWMoNCknIHR5cGUgaW5kaWNhdGVzIHRoYXQgdGhlIG1hcHBpbmcgaGFzIGJlZW4KKyAgICAgICAgICAgIHN0YXRpY2FsbHkgY29uZmlndXJlZC4gIEJvdGggb2YgdGhlc2UgcmVmZXIgdG8gZW50cmllcyB0aGF0CisgICAgICAgICAgICBwcm92aWRlIG1hcHBpbmdzIGZvciBvdGhlciBlbnRpdGllcyBhZGRyZXNzZXMuCisKKyAgICAgICAgICAgIFRoZSAnbG9jYWwoNSknIHR5cGUgaW5kaWNhdGVzIHRoYXQgdGhlIG1hcHBpbmcgaXMgcHJvdmlkZWQKKyAgICAgICAgICAgIGZvciBhbiBlbnRpdHkncyBvd24gaW50ZXJmYWNlIGFkZHJlc3MuCisKKyAgICAgICAgICAgIEFzIHRoZSBlbnRyaWVzIGluIHRoaXMgdGFibGUgYXJlIHR5cGljYWxseSBub3QgcGVyc2lzdGVudAorICAgICAgICAgICAgd2hlbiB0aGlzIG9iamVjdCBpcyB3cml0dGVuIHRoZSBlbnRpdHkgU0hPVUxEIE5PVCBzYXZlIHRoZQorICAgICAgICAgICAgY2hhbmdlIHRvIG5vbi12b2xhdGlsZSBzdG9yYWdlLiIKKyAgICBERUZWQUwgeyBzdGF0aWMgfQorICAgIDo6PSB7IGlwTmV0VG9QaHlzaWNhbEVudHJ5IDYgfQorCitpcE5ldFRvUGh5c2ljYWxTdGF0ZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgICByZWFjaGFibGUoMSksIC0tIGNvbmZpcm1lZCByZWFjaGFiaWxpdHkKKworICAgICAgICAgICAgICAgICAgICAgc3RhbGUoMiksICAgICAtLSB1bmNvbmZpcm1lZCByZWFjaGFiaWxpdHkKKworICAgICAgICAgICAgICAgICAgICAgZGVsYXkoMyksICAgICAtLSB3YWl0aW5nIGZvciByZWFjaGFiaWxpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gY29uZmlybWF0aW9uIGJlZm9yZSBlbnRlcmluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSB0aGUgcHJvYmUgc3RhdGUKKworICAgICAgICAgICAgICAgICAgICAgcHJvYmUoNCksICAgICAtLSBhY3RpdmVseSBwcm9iaW5nCisKKyAgICAgICAgICAgICAgICAgICAgIGludmFsaWQoNSksICAgLS0gYW4gaW52YWxpZGF0ZWQgbWFwcGluZworCisgICAgICAgICAgICAgICAgICAgICB1bmtub3duKDYpLCAgIC0tIHN0YXRlIGNhbiBub3QgYmUgZGV0ZXJtaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBmb3Igc29tZSByZWFzb24uCisKKyAgICAgICAgICAgICAgICAgICAgIGluY29tcGxldGUoNykgLS0gYWRkcmVzcyByZXNvbHV0aW9uIGlzIGJlaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHBlcmZvcm1lZC4KKyAgICAgICAgICAgICAgICAgICAgfQorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKworCisKKyAgICAgICAgICAgIlRoZSBOZWlnaGJvciBVbnJlYWNoYWJpbGl0eSBEZXRlY3Rpb24gc3RhdGUgZm9yIHRoZQorICAgICAgICAgICAgaW50ZXJmYWNlIHdoZW4gdGhlIGFkZHJlc3MgbWFwcGluZyBpbiB0aGlzIGVudHJ5IGlzIHVzZWQuCisgICAgICAgICAgICBJZiBOZWlnaGJvciBVbnJlYWNoYWJpbGl0eSBEZXRlY3Rpb24gaXMgbm90IGluIHVzZSAoZS5nLiBmb3IKKyAgICAgICAgICAgIElQdjQpLCB0aGlzIG9iamVjdCBpcyBhbHdheXMgdW5rbm93big2KS4iCisgICAgUkVGRVJFTkNFICJSRkMgMjQ2MSIKKyAgICA6Oj0geyBpcE5ldFRvUGh5c2ljYWxFbnRyeSA3IH0KKworaXBOZXRUb1BoeXNpY2FsUm93U3RhdHVzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBSb3dTdGF0dXMKKyAgICBNQVgtQUNDRVNTIHJlYWQtY3JlYXRlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBzdGF0dXMgb2YgdGhpcyBjb25jZXB0dWFsIHJvdy4KKworICAgICAgICAgICAgVGhlIFJvd1N0YXR1cyBUQyByZXF1aXJlcyB0aGF0IHRoaXMgREVTQ1JJUFRJT04gY2xhdXNlCisgICAgICAgICAgICBzdGF0ZXMgdW5kZXIgd2hpY2ggY2lyY3Vtc3RhbmNlcyBvdGhlciBvYmplY3RzIGluIHRoaXMgcm93CisgICAgICAgICAgICBjYW4gYmUgbW9kaWZpZWQuICBUaGUgdmFsdWUgb2YgdGhpcyBvYmplY3QgaGFzIG5vIGVmZmVjdCBvbgorICAgICAgICAgICAgd2hldGhlciBvdGhlciBvYmplY3RzIGluIHRoaXMgY29uY2VwdHVhbCByb3cgY2FuIGJlCisgICAgICAgICAgICBtb2RpZmllZC4KKworICAgICAgICAgICAgQSBjb25jZXB0dWFsIHJvdyBjYW4gbm90IGJlIG1hZGUgYWN0aXZlIHVudGlsIHRoZQorICAgICAgICAgICAgaXBOZXRUb1BoeXNpY2FsUGh5c0FkZHJlc3Mgb2JqZWN0IGhhcyBiZWVuIHNldC4KKworICAgICAgICAgICAgTm90ZSB0aGF0IGlmIHRoZSBpcE5ldFRvUGh5c2ljYWxUeXBlIGlzIHNldCB0byAnaW52YWxpZCcsCisgICAgICAgICAgICB0aGUgbWFuYWdlZCBub2RlIG1heSBkZWxldGUgdGhlIGVudHJ5IGluZGVwZW5kZW50IG9mIHRoZQorICAgICAgICAgICAgc3RhdGUgb2YgdGhpcyBvYmplY3QuIgorICAgIDo6PSB7IGlwTmV0VG9QaHlzaWNhbEVudHJ5IDggfQorCistLQorLS0gVGhlIElQdjYgU2NvcGUgWm9uZSBJbmRleCBUYWJsZS4KKy0tCisKK2lwdjZTY29wZVpvbmVJbmRleFRhYmxlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBTRVFVRU5DRSBPRiBJcHY2U2NvcGVab25lSW5kZXhFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRhYmxlIHVzZWQgdG8gZGVzY3JpYmUgSVB2NiB1bmljYXN0IGFuZCBtdWx0aWNhc3Qgc2NvcGUKKyAgICAgICAgICAgIHpvbmVzLgorCisgICAgICAgICAgICBGb3IgdGhvc2Ugb2JqZWN0cyB0aGF0IGhhdmUgbmFtZXMgcmF0aGVyIHRoYW4gbnVtYmVycywgdGhlCisgICAgICAgICAgICBuYW1lcyB3ZXJlIGNob3NlbiB0byBjb2luY2lkZSB3aXRoIHRoZSBuYW1lcyB1c2VkIGluIHRoZQorICAgICAgICAgICAgSVB2NiBhZGRyZXNzIGFyY2hpdGVjdHVyZSBkb2N1bWVudC4gIgorICAgIFJFRkVSRU5DRSAiU2VjdGlvbiAyLjcgb2YgUkZDIDQyOTEiCisgICAgOjo9IHsgaXAgMzYgfQorCitpcHY2U2NvcGVab25lSW5kZXhFbnRyeSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSXB2NlNjb3BlWm9uZUluZGV4RW50cnkKKworCisKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkVhY2ggZW50cnkgY29udGFpbnMgdGhlIGxpc3Qgb2Ygc2NvcGUgaWRlbnRpZmllcnMgb24gYSBnaXZlbgorICAgICAgICAgICAgaW50ZXJmYWNlLiIKKyAgICBJTkRFWCB7IGlwdjZTY29wZVpvbmVJbmRleElmSW5kZXggfQorICAgIDo6PSB7IGlwdjZTY29wZVpvbmVJbmRleFRhYmxlIDEgfQorCitJcHY2U2NvcGVab25lSW5kZXhFbnRyeSA6Oj0gU0VRVUVOQ0UgeworICAgICAgICBpcHY2U2NvcGVab25lSW5kZXhJZkluZGV4ICAgICAgICAgICAgSW50ZXJmYWNlSW5kZXgsCisgICAgICAgIGlwdjZTY29wZVpvbmVJbmRleExpbmtMb2NhbCAgICAgICAgICBJbmV0Wm9uZUluZGV4LAorICAgICAgICBpcHY2U2NvcGVab25lSW5kZXgzICAgICAgICAgICAgICAgICAgSW5ldFpvbmVJbmRleCwKKyAgICAgICAgaXB2NlNjb3BlWm9uZUluZGV4QWRtaW5Mb2NhbCAgICAgICAgIEluZXRab25lSW5kZXgsCisgICAgICAgIGlwdjZTY29wZVpvbmVJbmRleFNpdGVMb2NhbCAgICAgICAgICBJbmV0Wm9uZUluZGV4LAorICAgICAgICBpcHY2U2NvcGVab25lSW5kZXg2ICAgICAgICAgICAgICAgICAgSW5ldFpvbmVJbmRleCwKKyAgICAgICAgaXB2NlNjb3BlWm9uZUluZGV4NyAgICAgICAgICAgICAgICAgIEluZXRab25lSW5kZXgsCisgICAgICAgIGlwdjZTY29wZVpvbmVJbmRleE9yZ2FuaXphdGlvbkxvY2FsICBJbmV0Wm9uZUluZGV4LAorICAgICAgICBpcHY2U2NvcGVab25lSW5kZXg5ICAgICAgICAgICAgICAgICAgSW5ldFpvbmVJbmRleCwKKyAgICAgICAgaXB2NlNjb3BlWm9uZUluZGV4QSAgICAgICAgICAgICAgICAgIEluZXRab25lSW5kZXgsCisgICAgICAgIGlwdjZTY29wZVpvbmVJbmRleEIgICAgICAgICAgICAgICAgICBJbmV0Wm9uZUluZGV4LAorICAgICAgICBpcHY2U2NvcGVab25lSW5kZXhDICAgICAgICAgICAgICAgICAgSW5ldFpvbmVJbmRleCwKKyAgICAgICAgaXB2NlNjb3BlWm9uZUluZGV4RCAgICAgICAgICAgICAgICAgIEluZXRab25lSW5kZXgKKyAgICB9CisKK2lwdjZTY29wZVpvbmVJbmRleElmSW5kZXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEludGVyZmFjZUluZGV4CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgaW5kZXggdmFsdWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBpbnRlcmZhY2UgdG8KKyAgICAgICAgICAgIHdoaWNoIHRoZXNlIHNjb3BlcyBiZWxvbmcuICBUaGUgaW50ZXJmYWNlIGlkZW50aWZpZWQgYnkgYQorICAgICAgICAgICAgcGFydGljdWxhciB2YWx1ZSBvZiB0aGlzIGluZGV4IGlzIHRoZSBzYW1lIGludGVyZmFjZSBhcworICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgc2FtZSB2YWx1ZSBvZiB0aGUgSUYtTUlCJ3MgaWZJbmRleC4iCisgICAgOjo9IHsgaXB2NlNjb3BlWm9uZUluZGV4RW50cnkgMSB9CisKK2lwdjZTY29wZVpvbmVJbmRleExpbmtMb2NhbCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldFpvbmVJbmRleAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB6b25lIGluZGV4IGZvciB0aGUgbGluay1sb2NhbCBzY29wZSBvbiB0aGlzIGludGVyZmFjZS4iCisgICAgOjo9IHsgaXB2NlNjb3BlWm9uZUluZGV4RW50cnkgMiB9CisKK2lwdjZTY29wZVpvbmVJbmRleDMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRab25lSW5kZXgKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisKKworCisgICAgICAgICAgICJUaGUgem9uZSBpbmRleCBmb3Igc2NvcGUgMyBvbiB0aGlzIGludGVyZmFjZS4iCisgICAgOjo9IHsgaXB2NlNjb3BlWm9uZUluZGV4RW50cnkgMyB9CisKK2lwdjZTY29wZVpvbmVJbmRleEFkbWluTG9jYWwgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRab25lSW5kZXgKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgem9uZSBpbmRleCBmb3IgdGhlIGFkbWluLWxvY2FsIHNjb3BlIG9uIHRoaXMgaW50ZXJmYWNlLiIKKyAgICA6Oj0geyBpcHY2U2NvcGVab25lSW5kZXhFbnRyeSA0IH0KKworaXB2NlNjb3BlWm9uZUluZGV4U2l0ZUxvY2FsIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0Wm9uZUluZGV4CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHpvbmUgaW5kZXggZm9yIHRoZSBzaXRlLWxvY2FsIHNjb3BlIG9uIHRoaXMgaW50ZXJmYWNlLiIKKyAgICA6Oj0geyBpcHY2U2NvcGVab25lSW5kZXhFbnRyeSA1IH0KKworaXB2NlNjb3BlWm9uZUluZGV4NiBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldFpvbmVJbmRleAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB6b25lIGluZGV4IGZvciBzY29wZSA2IG9uIHRoaXMgaW50ZXJmYWNlLiIKKyAgICA6Oj0geyBpcHY2U2NvcGVab25lSW5kZXhFbnRyeSA2IH0KKworaXB2NlNjb3BlWm9uZUluZGV4NyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldFpvbmVJbmRleAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB6b25lIGluZGV4IGZvciBzY29wZSA3IG9uIHRoaXMgaW50ZXJmYWNlLiIKKyAgICA6Oj0geyBpcHY2U2NvcGVab25lSW5kZXhFbnRyeSA3IH0KKworaXB2NlNjb3BlWm9uZUluZGV4T3JnYW5pemF0aW9uTG9jYWwgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRab25lSW5kZXgKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgem9uZSBpbmRleCBmb3IgdGhlIG9yZ2FuaXphdGlvbi1sb2NhbCBzY29wZSBvbiB0aGlzCisgICAgICAgICAgICBpbnRlcmZhY2UuIgorICAgIDo6PSB7IGlwdjZTY29wZVpvbmVJbmRleEVudHJ5IDggfQorCitpcHY2U2NvcGVab25lSW5kZXg5IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0Wm9uZUluZGV4CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKworCisKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHpvbmUgaW5kZXggZm9yIHNjb3BlIDkgb24gdGhpcyBpbnRlcmZhY2UuIgorICAgIDo6PSB7IGlwdjZTY29wZVpvbmVJbmRleEVudHJ5IDkgfQorCitpcHY2U2NvcGVab25lSW5kZXhBIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0Wm9uZUluZGV4CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHpvbmUgaW5kZXggZm9yIHNjb3BlIEEgb24gdGhpcyBpbnRlcmZhY2UuIgorICAgIDo6PSB7IGlwdjZTY29wZVpvbmVJbmRleEVudHJ5IDEwIH0KKworaXB2NlNjb3BlWm9uZUluZGV4QiBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldFpvbmVJbmRleAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB6b25lIGluZGV4IGZvciBzY29wZSBCIG9uIHRoaXMgaW50ZXJmYWNlLiIKKyAgICA6Oj0geyBpcHY2U2NvcGVab25lSW5kZXhFbnRyeSAxMSB9CisKK2lwdjZTY29wZVpvbmVJbmRleEMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRab25lSW5kZXgKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgem9uZSBpbmRleCBmb3Igc2NvcGUgQyBvbiB0aGlzIGludGVyZmFjZS4iCisgICAgOjo9IHsgaXB2NlNjb3BlWm9uZUluZGV4RW50cnkgMTIgfQorCitpcHY2U2NvcGVab25lSW5kZXhEIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0Wm9uZUluZGV4CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHpvbmUgaW5kZXggZm9yIHNjb3BlIEQgb24gdGhpcyBpbnRlcmZhY2UuIgorICAgIDo6PSB7IGlwdjZTY29wZVpvbmVJbmRleEVudHJ5IDEzIH0KKworLS0KKy0tIFRoZSBEZWZhdWx0IFJvdXRlciBUYWJsZQorLS0gVGhpcyB0YWJsZSBzaW1wbHkgbGlzdHMgdGhlIGRlZmF1bHQgcm91dGVyczsgZm9yIG1vcmUgaW5mb3JtYXRpb24KKy0tIGFib3V0IHJvdXRpbmcgdGFibGVzLCBzZWUgdGhlIHJvdXRpbmcgTUlCcworLS0KKworaXBEZWZhdWx0Um91dGVyVGFibGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFNFUVVFTkNFIE9GIElwRGVmYXVsdFJvdXRlckVudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdGFibGUgdXNlZCB0byBkZXNjcmliZSB0aGUgZGVmYXVsdCByb3V0ZXJzIGtub3duIHRvIHRoaXMKKworCisKKyAgICAgICAgICAgIGVudGl0eS4iCisgICAgOjo9IHsgaXAgMzcgfQorCitpcERlZmF1bHRSb3V0ZXJFbnRyeSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSXBEZWZhdWx0Um91dGVyRW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkVhY2ggZW50cnkgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYSBkZWZhdWx0IHJvdXRlciBrbm93bgorICAgICAgICAgICAgdG8gdGhpcyBlbnRpdHkuIgorICAgIElOREVYIHtpcERlZmF1bHRSb3V0ZXJBZGRyZXNzVHlwZSwgaXBEZWZhdWx0Um91dGVyQWRkcmVzcywKKyAgICAgICAgICAgaXBEZWZhdWx0Um91dGVySWZJbmRleH0KKyAgICA6Oj0geyBpcERlZmF1bHRSb3V0ZXJUYWJsZSAxIH0KKworSXBEZWZhdWx0Um91dGVyRW50cnkgOjo9IFNFUVVFTkNFIHsKKyAgICAgICAgaXBEZWZhdWx0Um91dGVyQWRkcmVzc1R5cGUgIEluZXRBZGRyZXNzVHlwZSwKKyAgICAgICAgaXBEZWZhdWx0Um91dGVyQWRkcmVzcyAgICAgIEluZXRBZGRyZXNzLAorICAgICAgICBpcERlZmF1bHRSb3V0ZXJJZkluZGV4ICAgICAgSW50ZXJmYWNlSW5kZXgsCisgICAgICAgIGlwRGVmYXVsdFJvdXRlckxpZmV0aW1lICAgICBVbnNpZ25lZDMyLAorICAgICAgICBpcERlZmF1bHRSb3V0ZXJQcmVmZXJlbmNlICAgSU5URUdFUgorICAgIH0KKworaXBEZWZhdWx0Um91dGVyQWRkcmVzc1R5cGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRBZGRyZXNzVHlwZQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGFkZHJlc3MgdHlwZSBmb3IgdGhpcyByb3cuIgorICAgIDo6PSB7IGlwRGVmYXVsdFJvdXRlckVudHJ5IDEgfQorCitpcERlZmF1bHRSb3V0ZXJBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0QWRkcmVzcworICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIElQIGFkZHJlc3Mgb2YgdGhlIGRlZmF1bHQgcm91dGVyIHJlcHJlc2VudGVkIGJ5IHRoaXMKKyAgICAgICAgICAgIHJvdy4gIFRoZSBhZGRyZXNzIHR5cGUgb2YgdGhpcyBvYmplY3QgaXMgc3BlY2lmaWVkIGluCisgICAgICAgICAgICBpcERlZmF1bHRSb3V0ZXJBZGRyZXNzVHlwZS4KKworICAgICAgICAgICAgSW1wbGVtZW50ZXJzIG5lZWQgdG8gYmUgYXdhcmUgdGhhdCBpZiB0aGUgc2l6ZSBvZgorICAgICAgICAgICAgaXBEZWZhdWx0Um91dGVyQWRkcmVzcyBleGNlZWRzIDExNSBvY3RldHMsIHRoZW4gT0lEUyBvZgorICAgICAgICAgICAgaW5zdGFuY2VzIG9mIGNvbHVtbnMgaW4gdGhpcyByb3cgd2lsbCBoYXZlIG1vcmUgdGhhbiAxMjgKKyAgICAgICAgICAgIHN1Yi1pZGVudGlmaWVycyBhbmQgY2Fubm90IGJlIGFjY2Vzc2VkIHVzaW5nIFNOTVB2MSwKKyAgICAgICAgICAgIFNOTVB2MmMsIG9yIFNOTVB2My4iCisgICAgOjo9IHsgaXBEZWZhdWx0Um91dGVyRW50cnkgMiB9CisKK2lwRGVmYXVsdFJvdXRlcklmSW5kZXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEludGVyZmFjZUluZGV4CisKKworCisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgaW5kZXggdmFsdWUgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBpbnRlcmZhY2UgYnkKKyAgICAgICAgICAgIHdoaWNoIHRoZSByb3V0ZXIgY2FuIGJlIHJlYWNoZWQuICBUaGUgaW50ZXJmYWNlIGlkZW50aWZpZWQKKyAgICAgICAgICAgIGJ5IGEgcGFydGljdWxhciB2YWx1ZSBvZiB0aGlzIGluZGV4IGlzIHRoZSBzYW1lIGludGVyZmFjZSBhcworICAgICAgICAgICAgaWRlbnRpZmllZCBieSB0aGUgc2FtZSB2YWx1ZSBvZiB0aGUgSUYtTUlCJ3MgaWZJbmRleC4iCisgICAgOjo9IHsgaXBEZWZhdWx0Um91dGVyRW50cnkgMyB9CisKK2lwRGVmYXVsdFJvdXRlckxpZmV0aW1lIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBVbnNpZ25lZDMyICgwLi42NTUzNSkKKyAgICBVTklUUyAgICAgICJzZWNvbmRzIgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSByZW1haW5pbmcgbGVuZ3RoIG9mIHRpbWUsIGluIHNlY29uZHMsIHRoYXQgdGhpcyByb3V0ZXIKKyAgICAgICAgICAgIHdpbGwgY29udGludWUgdG8gYmUgdXNlZnVsIGFzIGEgZGVmYXVsdCByb3V0ZXIuICBBIHZhbHVlIG9mCisgICAgICAgICAgICB6ZXJvIGluZGljYXRlcyB0aGF0IGl0IGlzIG5vIGxvbmdlciB1c2VmdWwgYXMgYSBkZWZhdWx0CisgICAgICAgICAgICByb3V0ZXIuICBJdCBpcyBsZWZ0IHRvIHRoZSBpbXBsZW1lbnRlciBvZiB0aGUgTUlCIGFzIHRvCisgICAgICAgICAgICB3aGV0aGVyIGEgcm91dGVyIHdpdGggYSBsaWZldGltZSBvZiB6ZXJvIGlzIHJlbW92ZWQgZnJvbSB0aGUKKyAgICAgICAgICAgIGxpc3QuCisKKyAgICAgICAgICAgIEZvciBJUHY2LCB0aGlzIHZhbHVlIHNob3VsZCBiZSBleHRyYWN0ZWQgZnJvbSB0aGUgcm91dGVyCisgICAgICAgICAgICBhZHZlcnRpc2VtZW50IG1lc3NhZ2VzLiIKKyAgICBSRUZFUkVOQ0UgIkZvciBJUHY2IFJGQyAyNDYyIHNlY3Rpb25zIDQuMiBhbmQgNi4zLjQiCisgICAgOjo9IHsgaXBEZWZhdWx0Um91dGVyRW50cnkgNCB9CisKK2lwRGVmYXVsdFJvdXRlclByZWZlcmVuY2UgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgKC0yKSwKKyAgICAgICAgICAgICAgICAgICAgIGxvdyAoLTEpLAorICAgICAgICAgICAgICAgICAgICAgbWVkaXVtICgwKSwKKyAgICAgICAgICAgICAgICAgICAgIGhpZ2ggKDEpCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBpbmRpY2F0aW9uIG9mIHByZWZlcmVuY2UgZ2l2ZW4gdG8gdGhpcyByb3V0ZXIgYXMgYQorICAgICAgICAgICAgZGVmYXVsdCByb3V0ZXIgYXMgZGVzY3JpYmVkIGluIGhlIERlZmF1bHQgUm91dGVyCisgICAgICAgICAgICBQcmVmZXJlbmNlcyBkb2N1bWVudC4gIFRyZWF0aW5nIHRoZSB2YWx1ZSBhcyBhCisgICAgICAgICAgICAyIGJpdCBzaWduZWQgaW50ZWdlciBhbGxvd3MgZm9yIHNpbXBsZSBhcml0aG1ldGljCisgICAgICAgICAgICBjb21wYXJpc29ucy4KKworICAgICAgICAgICAgRm9yIElQdjQgcm91dGVycyBvciBJUHY2IHJvdXRlcnMgdGhhdCBhcmUgbm90IHVzaW5nIHRoZQorICAgICAgICAgICAgdXBkYXRlZCByb3V0ZXIgYWR2ZXJ0aXNlbWVudCBmb3JtYXQsIHRoaXMgb2JqZWN0IGlzIHNldCB0bworICAgICAgICAgICAgbWVkaXVtICgwKS4iCisgICAgUkVGRVJFTkNFICJSRkMgNDI5MSwgc2VjdGlvbiAyLjEiCisgICAgOjo9IHsgaXBEZWZhdWx0Um91dGVyRW50cnkgNSB9CisKKworCistLQorLS0gQ29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiBmb3IgY29uc3RydWN0aW5nIHJvdXRlciBhZHZlcnRpc2VtZW50cworLS0KKworaXB2NlJvdXRlckFkdmVydFNwaW5Mb2NrIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBUZXN0QW5kSW5jcgorICAgIE1BWC1BQ0NFU1MgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBhZHZpc29yeSBsb2NrIHVzZWQgdG8gYWxsb3cgY29vcGVyYXRpbmcgU05NUCBtYW5hZ2VycyB0bworICAgICAgICAgICAgY29vcmRpbmF0ZSB0aGVpciB1c2Ugb2YgdGhlIHNldCBvcGVyYXRpb24gaW4gY3JlYXRpbmcgb3IKKyAgICAgICAgICAgIG1vZGlmeWluZyByb3dzIHdpdGhpbiB0aGlzIHRhYmxlLgorCisgICAgICAgICAgICBJbiBvcmRlciB0byB1c2UgdGhpcyBsb2NrIHRvIGNvb3JkaW5hdGUgdGhlIHVzZSBvZiBzZXQKKyAgICAgICAgICAgIG9wZXJhdGlvbnMsIG1hbmFnZXJzIHNob3VsZCBmaXJzdCByZXRyaWV2ZQorICAgICAgICAgICAgaXB2NlJvdXRlckFkdmVydFNwaW5Mb2NrLiAgVGhleSBzaG91bGQgdGhlbiBkZXRlcm1pbmUgdGhlCisgICAgICAgICAgICBhcHByb3ByaWF0ZSByb3cgdG8gY3JlYXRlIG9yIG1vZGlmeS4gIEZpbmFsbHksIHRoZXkgc2hvdWxkCisgICAgICAgICAgICBpc3N1ZSB0aGUgYXBwcm9wcmlhdGUgc2V0IGNvbW1hbmQgaW5jbHVkaW5nIHRoZSByZXRyaWV2ZWQKKyAgICAgICAgICAgIHZhbHVlIG9mIGlwdjZSb3V0ZXJBZHZlcnRTcGluTG9jay4gIElmIGFub3RoZXIgbWFuYWdlciBoYXMKKyAgICAgICAgICAgIGFsdGVyZWQgdGhlIHRhYmxlIGluIHRoZSBtZWFudGltZSwgdGhlbiB0aGUgdmFsdWUgb2YKKyAgICAgICAgICAgIGlwdjZSb3V0ZXJBZHZlcnRTcGluTG9jayB3aWxsIGhhdmUgY2hhbmdlZCBhbmQgdGhlIGNyZWF0aW9uCisgICAgICAgICAgICB3aWxsIGZhaWwgYXMgaXQgd2lsbCBiZSBzcGVjaWZ5aW5nIGFuIGluY29ycmVjdCB2YWx1ZSBmb3IKKyAgICAgICAgICAgIGlwdjZSb3V0ZXJBZHZlcnRTcGluTG9jay4gIEl0IGlzIHN1Z2dlc3RlZCwgYnV0IG5vdAorICAgICAgICAgICAgcmVxdWlyZWQsIHRoYXQgdGhlIGlwdjZSb3V0ZXJBZHZlcnRTcGluTG9jayBiZSB0aGUgZmlyc3QgdmFyCisgICAgICAgICAgICBiaW5kIGZvciBlYWNoIHNldCBvZiBvYmplY3RzIHJlcHJlc2VudGluZyBhICdyb3cnIGluIGEgUERVLiIKKyAgICA6Oj0geyBpcCAzOCB9CisKK2lwdjZSb3V0ZXJBZHZlcnRUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgU0VRVUVOQ0UgT0YgSXB2NlJvdXRlckFkdmVydEVudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdGFibGUgY29udGFpbmluZyBpbmZvcm1hdGlvbiB1c2VkIHRvIGNvbnN0cnVjdCByb3V0ZXIKKyAgICAgICAgICAgIGFkdmVydGlzZW1lbnRzLiIKKyAgICA6Oj0geyBpcCAzOSB9CisKK2lwdjZSb3V0ZXJBZHZlcnRFbnRyeSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSXB2NlJvdXRlckFkdmVydEVudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBlbnRyeSBjb250YWluaW5nIGluZm9ybWF0aW9uIHVzZWQgdG8gY29uc3RydWN0IHJvdXRlcgorICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudHMuCisKKyAgICAgICAgICAgIEluZm9ybWF0aW9uIGluIHRoaXMgdGFibGUgaXMgcGVyc2lzdGVudCwgYW5kIHdoZW4gdGhpcworICAgICAgICAgICAgb2JqZWN0IGlzIHdyaXR0ZW4sIHRoZSBlbnRpdHkgU0hPVUxEIHNhdmUgdGhlIGNoYW5nZSB0bworICAgICAgICAgICAgbm9uLXZvbGF0aWxlIHN0b3JhZ2UuIgorICAgIElOREVYIHsgaXB2NlJvdXRlckFkdmVydElmSW5kZXggfQorCisKKworICAgIDo6PSB7IGlwdjZSb3V0ZXJBZHZlcnRUYWJsZSAxIH0KKworSXB2NlJvdXRlckFkdmVydEVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgICAgIGlwdjZSb3V0ZXJBZHZlcnRJZkluZGV4ICAgICAgICAgIEludGVyZmFjZUluZGV4LAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0U2VuZEFkdmVydHMgICAgICBUcnV0aFZhbHVlLAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0TWF4SW50ZXJ2YWwgICAgICBVbnNpZ25lZDMyLAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0TWluSW50ZXJ2YWwgICAgICBVbnNpZ25lZDMyLAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0TWFuYWdlZEZsYWcgICAgICBUcnV0aFZhbHVlLAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0T3RoZXJDb25maWdGbGFnICBUcnV0aFZhbHVlLAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0TGlua01UVSAgICAgICAgICBVbnNpZ25lZDMyLAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0UmVhY2hhYmxlVGltZSAgICBVbnNpZ25lZDMyLAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0UmV0cmFuc21pdFRpbWUgICBVbnNpZ25lZDMyLAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0Q3VySG9wTGltaXQgICAgICBVbnNpZ25lZDMyLAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0RGVmYXVsdExpZmV0aW1lICBVbnNpZ25lZDMyLAorICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0Um93U3RhdHVzICAgICAgICBSb3dTdGF0dXMKKyAgICB9CisKK2lwdjZSb3V0ZXJBZHZlcnRJZkluZGV4IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbnRlcmZhY2VJbmRleAorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGluZGV4IHZhbHVlIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgaW50ZXJmYWNlIG9uCisgICAgICAgICAgICB3aGljaCByb3V0ZXIgYWR2ZXJ0aXNlbWVudHMgY29uc3RydWN0ZWQgd2l0aCB0aGlzCisgICAgICAgICAgICBpbmZvcm1hdGlvbiB3aWxsIGJlIHRyYW5zbWl0dGVkLiAgVGhlIGludGVyZmFjZSBpZGVudGlmaWVkCisgICAgICAgICAgICBieSBhIHBhcnRpY3VsYXIgdmFsdWUgb2YgdGhpcyBpbmRleCBpcyB0aGUgc2FtZSBpbnRlcmZhY2UgYXMKKyAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIHNhbWUgdmFsdWUgb2YgdGhlIElGLU1JQidzIGlmSW5kZXguIgorICAgIDo6PSB7IGlwdjZSb3V0ZXJBZHZlcnRFbnRyeSAxIH0KKworaXB2NlJvdXRlckFkdmVydFNlbmRBZHZlcnRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBUcnV0aFZhbHVlCisgICAgTUFYLUFDQ0VTUyByZWFkLWNyZWF0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSByb3V0ZXIgc2VuZHMgcGVyaW9kaWMKKyAgICAgICAgICAgIHJvdXRlciBhZHZlcnRpc2VtZW50cyBhbmQgcmVzcG9uZHMgdG8gcm91dGVyIHNvbGljaXRhdGlvbnMKKyAgICAgICAgICAgIG9uIHRoaXMgaW50ZXJmYWNlLiIKKyAgICBSRUZFUkVOQ0UgIlJGQyAyNDYxIFNlY3Rpb24gNi4yLjEiCisgICAgREVGVkFMIHsgZmFsc2UgfQorICAgIDo6PSB7IGlwdjZSb3V0ZXJBZHZlcnRFbnRyeSAyIH0KKworaXB2NlJvdXRlckFkdmVydE1heEludGVydmFsIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBVbnNpZ25lZDMyICg0Li4xODAwKQorICAgIFVOSVRTICAgICAgInNlY29uZHMiCisgICAgTUFYLUFDQ0VTUyByZWFkLWNyZWF0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbWF4aW11bSB0aW1lIGFsbG93ZWQgYmV0d2VlbiBzZW5kaW5nIHVuc29saWNpdGVkIHJvdXRlcgorCisKKworICAgICAgICAgICAgYWR2ZXJ0aXNlbWVudHMgZnJvbSB0aGlzIGludGVyZmFjZS4iCisgICAgUkVGRVJFTkNFICJSRkMgMjQ2MSBTZWN0aW9uIDYuMi4xIgorICAgIERFRlZBTCB7IDYwMCB9CisgICAgOjo9IHsgaXB2NlJvdXRlckFkdmVydEVudHJ5IDMgfQorCitpcHY2Um91dGVyQWR2ZXJ0TWluSW50ZXJ2YWwgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFVuc2lnbmVkMzIgKDMuLjEzNTApCisgICAgVU5JVFMgICAgICAic2Vjb25kcyIKKyAgICBNQVgtQUNDRVNTIHJlYWQtY3JlYXRlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBtaW5pbXVtIHRpbWUgYWxsb3dlZCBiZXR3ZWVuIHNlbmRpbmcgdW5zb2xpY2l0ZWQgcm91dGVyCisgICAgICAgICAgICBhZHZlcnRpc2VtZW50cyBmcm9tIHRoaXMgaW50ZXJmYWNlLgorCisgICAgICAgICAgICBUaGUgZGVmYXVsdCBpcyAwLjMzICogaXB2NlJvdXRlckFkdmVydE1heEludGVydmFsLCBob3dldmVyLAorICAgICAgICAgICAgaW4gdGhlIGNhc2Ugb2YgYSBsb3cgdmFsdWUgZm9yIGlwdjZSb3V0ZXJBZHZlcnRNYXhJbnRlcnZhbCwKKyAgICAgICAgICAgIHRoZSBtaW5pbXVtIHZhbHVlIGZvciB0aGlzIG9iamVjdCBpcyByZXN0cmljdGVkIHRvIDMuIgorICAgIFJFRkVSRU5DRSAiUkZDIDI0NjEgU2VjdGlvbiA2LjIuMSIKKyAgICA6Oj0geyBpcHY2Um91dGVyQWR2ZXJ0RW50cnkgNCB9CisKK2lwdjZSb3V0ZXJBZHZlcnRNYW5hZ2VkRmxhZyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVHJ1dGhWYWx1ZQorICAgIE1BWC1BQ0NFU1MgcmVhZC1jcmVhdGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRydWUvZmFsc2UgdmFsdWUgdG8gYmUgcGxhY2VkIGludG8gdGhlICdtYW5hZ2VkIGFkZHJlc3MKKyAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24nIGZsYWcgZmllbGQgaW4gcm91dGVyIGFkdmVydGlzZW1lbnRzIHNlbnQgZnJvbQorICAgICAgICAgICAgdGhpcyBpbnRlcmZhY2UuIgorICAgIFJFRkVSRU5DRSAiUkZDIDI0NjEgU2VjdGlvbiA2LjIuMSIKKyAgICBERUZWQUwgeyBmYWxzZSB9CisgICAgOjo9IHsgaXB2NlJvdXRlckFkdmVydEVudHJ5IDUgfQorCitpcHY2Um91dGVyQWR2ZXJ0T3RoZXJDb25maWdGbGFnIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBUcnV0aFZhbHVlCisgICAgTUFYLUFDQ0VTUyByZWFkLWNyZWF0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdHJ1ZS9mYWxzZSB2YWx1ZSB0byBiZSBwbGFjZWQgaW50byB0aGUgJ290aGVyIHN0YXRlZnVsCisgICAgICAgICAgICBjb25maWd1cmF0aW9uJyBmbGFnIGZpZWxkIGluIHJvdXRlciBhZHZlcnRpc2VtZW50cyBzZW50IGZyb20KKyAgICAgICAgICAgIHRoaXMgaW50ZXJmYWNlLiIKKyAgICBSRUZFUkVOQ0UgIlJGQyAyNDYxIFNlY3Rpb24gNi4yLjEiCisgICAgREVGVkFMIHsgZmFsc2UgfQorICAgIDo6PSB7IGlwdjZSb3V0ZXJBZHZlcnRFbnRyeSA2IH0KKworaXB2NlJvdXRlckFkdmVydExpbmtNVFUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFVuc2lnbmVkMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtY3JlYXRlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisKKworCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB2YWx1ZSB0byBiZSBwbGFjZWQgaW4gTVRVIG9wdGlvbnMgc2VudCBieSB0aGUgcm91dGVyIG9uCisgICAgICAgICAgICB0aGlzIGludGVyZmFjZS4KKworICAgICAgICAgICAgQSB2YWx1ZSBvZiB6ZXJvIGluZGljYXRlcyB0aGF0IG5vIE1UVSBvcHRpb25zIGFyZSBzZW50LiIKKyAgICBSRUZFUkVOQ0UgIlJGQyAyNDYxIFNlY3Rpb24gNi4yLjEiCisgICAgREVGVkFMIHsgMCB9CisgICAgOjo9IHsgaXB2NlJvdXRlckFkdmVydEVudHJ5IDcgfQorCitpcHY2Um91dGVyQWR2ZXJ0UmVhY2hhYmxlVGltZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVW5zaWduZWQzMiAoMC4uMzYwMDAwMCkKKyAgICBVTklUUyAgICAgICJtaWxsaXNlY29uZHMiCisgICAgTUFYLUFDQ0VTUyByZWFkLWNyZWF0ZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdmFsdWUgdG8gYmUgcGxhY2VkIGluIHRoZSByZWFjaGFibGUgdGltZSBmaWVsZCBpbiByb3V0ZXIKKyAgICAgICAgICAgIGFkdmVydGlzZW1lbnQgbWVzc2FnZXMgc2VudCBmcm9tIHRoaXMgaW50ZXJmYWNlLgorCisgICAgICAgICAgICBBIHZhbHVlIG9mIHplcm8gaW4gdGhlIHJvdXRlciBhZHZlcnRpc2VtZW50IGluZGljYXRlcyB0aGF0CisgICAgICAgICAgICB0aGUgYWR2ZXJ0aXNlbWVudCBpc24ndCBzcGVjaWZ5aW5nIGEgdmFsdWUgZm9yIHJlYWNoYWJsZQorICAgICAgICAgICAgdGltZS4iCisgICAgUkVGRVJFTkNFICJSRkMgMjQ2MSBTZWN0aW9uIDYuMi4xIgorICAgIERFRlZBTCB7IDAgfQorICAgIDo6PSB7IGlwdjZSb3V0ZXJBZHZlcnRFbnRyeSA4IH0KKworaXB2NlJvdXRlckFkdmVydFJldHJhbnNtaXRUaW1lIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBVbnNpZ25lZDMyCisgICAgVU5JVFMgICAgICAibWlsbGlzZWNvbmRzIgorICAgIE1BWC1BQ0NFU1MgcmVhZC1jcmVhdGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHZhbHVlIHRvIGJlIHBsYWNlZCBpbiB0aGUgcmV0cmFuc21pdCB0aW1lciBmaWVsZCBpbgorICAgICAgICAgICAgcm91dGVyIGFkdmVydGlzZW1lbnRzIHNlbnQgZnJvbSB0aGlzIGludGVyZmFjZS4KKworICAgICAgICAgICAgQSB2YWx1ZSBvZiB6ZXJvIGluIHRoZSByb3V0ZXIgYWR2ZXJ0aXNlbWVudCBpbmRpY2F0ZXMgdGhhdAorICAgICAgICAgICAgdGhlIGFkdmVydGlzZW1lbnQgaXNuJ3Qgc3BlY2lmeWluZyBhIHZhbHVlIGZvciByZXRyYW5zCisgICAgICAgICAgICB0aW1lLiIKKyAgICBSRUZFUkVOQ0UgIlJGQyAyNDYxIFNlY3Rpb24gNi4yLjEiCisgICAgREVGVkFMIHsgMCB9CisgICAgOjo9IHsgaXB2NlJvdXRlckFkdmVydEVudHJ5IDkgfQorCitpcHY2Um91dGVyQWR2ZXJ0Q3VySG9wTGltaXQgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFVuc2lnbmVkMzIgKDAuLjI1NSkKKyAgICBNQVgtQUNDRVNTIHJlYWQtY3JlYXRlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBkZWZhdWx0IHZhbHVlIHRvIGJlIHBsYWNlZCBpbiB0aGUgY3VycmVudCBob3AgbGltaXQKKyAgICAgICAgICAgIGZpZWxkIGluIHJvdXRlciBhZHZlcnRpc2VtZW50cyBzZW50IGZyb20gdGhpcyBpbnRlcmZhY2UuCisKKworCisgICAgICAgICAgICBUaGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0byB0aGUgY3VycmVudCBkaWFtZXRlciBvZiB0aGUKKyAgICAgICAgICAgIEludGVybmV0LgorCisgICAgICAgICAgICBBIHZhbHVlIG9mIHplcm8gaW4gdGhlIHJvdXRlciBhZHZlcnRpc2VtZW50IGluZGljYXRlcyB0aGF0CisgICAgICAgICAgICB0aGUgYWR2ZXJ0aXNlbWVudCBpc24ndCBzcGVjaWZ5aW5nIGEgdmFsdWUgZm9yIGN1ckhvcExpbWl0LgorCisgICAgICAgICAgICBUaGUgZGVmYXVsdCBzaG91bGQgYmUgc2V0IHRvIHRoZSB2YWx1ZSBzcGVjaWZpZWQgaW4gdGhlIElBTkEKKyAgICAgICAgICAgIHdlYiBwYWdlcyAod3d3LmlhbmEub3JnKSBhdCB0aGUgdGltZSBvZiBpbXBsZW1lbnRhdGlvbi4iCisgICAgUkVGRVJFTkNFICJSRkMgMjQ2MSBTZWN0aW9uIDYuMi4xIgorICAgIDo6PSB7IGlwdjZSb3V0ZXJBZHZlcnRFbnRyeSAxMCB9CisKK2lwdjZSb3V0ZXJBZHZlcnREZWZhdWx0TGlmZXRpbWUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFVuc2lnbmVkMzIgKDB8NC4uOTAwMCkKKyAgICBVTklUUyAgICAgICJzZWNvbmRzIgorICAgIE1BWC1BQ0NFU1MgcmVhZC1jcmVhdGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHZhbHVlIHRvIGJlIHBsYWNlZCBpbiB0aGUgcm91dGVyIGxpZmV0aW1lIGZpZWxkIG9mCisgICAgICAgICAgICByb3V0ZXIgYWR2ZXJ0aXNlbWVudHMgc2VudCBmcm9tIHRoaXMgaW50ZXJmYWNlLiAgVGhpcyB2YWx1ZQorICAgICAgICAgICAgTVVTVCBiZSBlaXRoZXIgMCBvciBiZXR3ZWVuIGlwdjZSb3V0ZXJBZHZlcnRNYXhJbnRlcnZhbCBhbmQKKyAgICAgICAgICAgIDkwMDAgc2Vjb25kcy4KKworICAgICAgICAgICAgQSB2YWx1ZSBvZiB6ZXJvIGluZGljYXRlcyB0aGF0IHRoZSByb3V0ZXIgaXMgbm90IHRvIGJlIHVzZWQKKyAgICAgICAgICAgIGFzIGEgZGVmYXVsdCByb3V0ZXIuCisKKyAgICAgICAgICAgIFRoZSBkZWZhdWx0IGlzIDMgKiBpcHY2Um91dGVyQWR2ZXJ0TWF4SW50ZXJ2YWwuIgorICAgIFJFRkVSRU5DRSAiUkZDIDI0NjEgU2VjdGlvbiA2LjIuMSIKKyAgICA6Oj0geyBpcHY2Um91dGVyQWR2ZXJ0RW50cnkgMTEgfQorCitpcHY2Um91dGVyQWR2ZXJ0Um93U3RhdHVzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBSb3dTdGF0dXMKKyAgICBNQVgtQUNDRVNTIHJlYWQtY3JlYXRlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBzdGF0dXMgb2YgdGhpcyBjb25jZXB0dWFsIHJvdy4KKworICAgICAgICAgICAgQXMgYWxsIG9iamVjdHMgaW4gdGhpcyBjb25jZXB0dWFsIHJvdyBoYXZlIGRlZmF1bHQgdmFsdWVzLCBhCisgICAgICAgICAgICByb3cgY2FuIGJlIGNyZWF0ZWQgYW5kIG1hZGUgYWN0aXZlIGJ5IHNldHRpbmcgdGhpcyBvYmplY3QKKyAgICAgICAgICAgIGFwcHJvcHJpYXRlbHkuCisKKyAgICAgICAgICAgIFRoZSBSb3dTdGF0dXMgVEMgcmVxdWlyZXMgdGhhdCB0aGlzIERFU0NSSVBUSU9OIGNsYXVzZQorICAgICAgICAgICAgc3RhdGVzIHVuZGVyIHdoaWNoIGNpcmN1bXN0YW5jZXMgb3RoZXIgb2JqZWN0cyBpbiB0aGlzIHJvdworICAgICAgICAgICAgY2FuIGJlIG1vZGlmaWVkLiAgVGhlIHZhbHVlIG9mIHRoaXMgb2JqZWN0IGhhcyBubyBlZmZlY3Qgb24KKyAgICAgICAgICAgIHdoZXRoZXIgb3RoZXIgb2JqZWN0cyBpbiB0aGlzIGNvbmNlcHR1YWwgcm93IGNhbiBiZQorICAgICAgICAgICAgbW9kaWZpZWQuIgorICAgIDo6PSB7IGlwdjZSb3V0ZXJBZHZlcnRFbnRyeSAxMiB9CisKKy0tCisKKworCistLSBJQ01QIHNlY3Rpb24KKy0tCisKK2ljbXAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDUgfQorCistLQorLS0gSUNNUCBub24tbWVzc2FnZS1zcGVjaWZpYyBjb3VudGVycworLS0KKworLS0gVGhlc2Ugb2JqZWN0IElEcyBhcmUgcmVzZXJ2ZWQsIGFzIHRoZXkgd2VyZSB1c2VkIGluIGVhcmxpZXIKKy0tIHZlcnNpb25zIG9mIHRoZSBNSUIgbW9kdWxlLiAgSW4gdGhlb3J5LCBPSURzIGFyZSBub3QgYXNzaWduZWQKKy0tIHVudGlsIHRoZSBzcGVjaWZpY2F0aW9uIGlzIHJlbGVhc2VkIGFzIGFuIFJGQzsgaG93ZXZlciwgYXMgc29tZQorLS0gY29tcGFuaWVzIG1heSBoYXZlIHNoaXBwZWQgY29kZSBiYXNlZCBvbiBlYXJsaWVyIHZlcnNpb25zIG9mCistLSB0aGUgTUlCLCBpdCBzZWVtcyBiZXN0IHRvIHJlc2VydmUgdGhlc2UgT0lEcy4KKy0tIDo6PSB7IGljbXAgMjcgfQorLS0gOjo9IHsgaWNtcCAyOCB9CisKK2ljbXBTdGF0c1RhYmxlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBTRVFVRU5DRSBPRiBJY21wU3RhdHNFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRhYmxlIG9mIGdlbmVyaWMgc3lzdGVtLXdpZGUgSUNNUCBjb3VudGVycy4iCisgICAgOjo9IHsgaWNtcCAyOSB9CisKK2ljbXBTdGF0c0VudHJ5IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJY21wU3RhdHNFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQSBjb25jZXB0dWFsIHJvdyBpbiB0aGUgaWNtcFN0YXRzVGFibGUuIgorICAgIElOREVYICAgIHsgaWNtcFN0YXRzSVBWZXJzaW9uIH0KKyAgICA6Oj0geyBpY21wU3RhdHNUYWJsZSAxIH0KKworSWNtcFN0YXRzRW50cnkgOjo9IFNFUVVFTkNFIHsKKyAgICAgICAgaWNtcFN0YXRzSVBWZXJzaW9uICBJbmV0VmVyc2lvbiwKKyAgICAgICAgaWNtcFN0YXRzSW5Nc2dzICAgICBDb3VudGVyMzIsCisgICAgICAgIGljbXBTdGF0c0luRXJyb3JzICAgQ291bnRlcjMyLAorICAgICAgICBpY21wU3RhdHNPdXRNc2dzICAgIENvdW50ZXIzMiwKKyAgICAgICAgaWNtcFN0YXRzT3V0RXJyb3JzICBDb3VudGVyMzIKKyAgICB9CisKK2ljbXBTdGF0c0lQVmVyc2lvbiBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldFZlcnNpb24KKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBJUCB2ZXJzaW9uIG9mIHRoZSBzdGF0aXN0aWNzLiIKKworCisKKyAgICA6Oj0geyBpY21wU3RhdHNFbnRyeSAxIH0KKworaWNtcFN0YXRzSW5Nc2dzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIElDTVAgbWVzc2FnZXMgdGhhdCB0aGUgZW50aXR5IHJlY2VpdmVkLgorICAgICAgICAgICAgTm90ZSB0aGF0IHRoaXMgY291bnRlciBpbmNsdWRlcyBhbGwgdGhvc2UgY291bnRlZCBieQorICAgICAgICAgICAgaWNtcFN0YXRzSW5FcnJvcnMuIgorICAgIDo6PSB7IGljbXBTdGF0c0VudHJ5IDIgfQorCitpY21wU3RhdHNJbkVycm9ycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIG1lc3NhZ2VzIHRoYXQgdGhlIGVudGl0eSByZWNlaXZlZCBidXQKKyAgICAgICAgICAgIGRldGVybWluZWQgYXMgaGF2aW5nIElDTVAtc3BlY2lmaWMgZXJyb3JzIChiYWQgSUNNUAorICAgICAgICAgICAgY2hlY2tzdW1zLCBiYWQgbGVuZ3RoLCBldGMuKS4iCisgICAgOjo9IHsgaWNtcFN0YXRzRW50cnkgMyB9CisKK2ljbXBTdGF0c091dE1zZ3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgSUNNUCBtZXNzYWdlcyB0aGF0IHRoZSBlbnRpdHkgYXR0ZW1wdGVkCisgICAgICAgICAgICB0byBzZW5kLiAgTm90ZSB0aGF0IHRoaXMgY291bnRlciBpbmNsdWRlcyBhbGwgdGhvc2UgY291bnRlZAorICAgICAgICAgICAgYnkgaWNtcFN0YXRzT3V0RXJyb3JzLiIKKyAgICA6Oj0geyBpY21wU3RhdHNFbnRyeSA0IH0KKworaWNtcFN0YXRzT3V0RXJyb3JzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgbWVzc2FnZXMgdGhhdCB0aGlzIGVudGl0eSBkaWQgbm90IHNlbmQKKyAgICAgICAgICAgIGR1ZSB0byBwcm9ibGVtcyBkaXNjb3ZlcmVkIHdpdGhpbiBJQ01QLCBzdWNoIGFzIGEgbGFjayBvZgorICAgICAgICAgICAgYnVmZmVycy4gIFRoaXMgdmFsdWUgc2hvdWxkIG5vdCBpbmNsdWRlIGVycm9ycyBkaXNjb3ZlcmVkCisgICAgICAgICAgICBvdXRzaWRlIHRoZSBJQ01QIGxheWVyLCBzdWNoIGFzIHRoZSBpbmFiaWxpdHkgb2YgSVAgdG8gcm91dGUKKyAgICAgICAgICAgIHRoZSByZXN1bHRhbnQgZGF0YWdyYW0uICBJbiBzb21lIGltcGxlbWVudGF0aW9ucywgdGhlcmUgbWF5CisgICAgICAgICAgICBiZSBubyB0eXBlcyBvZiBlcnJvciB0aGF0IGNvbnRyaWJ1dGUgdG8gdGhpcyBjb3VudGVyJ3MKKyAgICAgICAgICAgIHZhbHVlLiIKKyAgICA6Oj0geyBpY21wU3RhdHNFbnRyeSA1IH0KKworLS0KKy0tIHBlci12ZXJzaW9uLCBwZXItbWVzc2FnZSB0eXBlIElDTVAgY291bnRlcnMKKworCisKKy0tCisKK2ljbXBNc2dTdGF0c1RhYmxlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBTRVFVRU5DRSBPRiBJY21wTXNnU3RhdHNFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRhYmxlIG9mIHN5c3RlbS13aWRlIHBlci12ZXJzaW9uLCBwZXItbWVzc2FnZSB0eXBlIElDTVAKKyAgICAgICAgICAgIGNvdW50ZXJzLiIKKyAgICA6Oj0geyBpY21wIDMwIH0KKworaWNtcE1zZ1N0YXRzRW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEljbXBNc2dTdGF0c0VudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBIGNvbmNlcHR1YWwgcm93IGluIHRoZSBpY21wTXNnU3RhdHNUYWJsZS4KKworICAgICAgICAgICAgVGhlIHN5c3RlbSBzaG91bGQgdHJhY2sgZWFjaCBJQ01QIHR5cGUgdmFsdWUsIGV2ZW4gaWYgdGhhdAorICAgICAgICAgICAgSUNNUCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHN5c3RlbS4gIEhvd2V2ZXIsIGEKKyAgICAgICAgICAgIGdpdmVuIHJvdyBuZWVkIG5vdCBiZSBpbnN0YW50aWF0ZWQgdW5sZXNzIGEgbWVzc2FnZSBvZiB0aGF0CisgICAgICAgICAgICB0eXBlIGhhcyBiZWVuIHByb2Nlc3NlZCwgaS5lLiwgdGhlIHJvdyBmb3IKKyAgICAgICAgICAgIGljbXBNc2dTdGF0c1R5cGU9WCBNQVkgYmUgaW5zdGFudGlhdGVkIGJlZm9yZSBidXQgTVVTVCBiZQorICAgICAgICAgICAgaW5zdGFudGlhdGVkIGFmdGVyIHRoZSBmaXJzdCBtZXNzYWdlIHdpdGggVHlwZT1YIGlzCisgICAgICAgICAgICByZWNlaXZlZCBvciB0cmFuc21pdHRlZC4gIEFmdGVyIHJlY2VpdmluZyBvciB0cmFuc21pdHRpbmcKKyAgICAgICAgICAgIGFueSBzdWNjZWVkaW5nIG1lc3NhZ2VzIHdpdGggVHlwZT1YLCB0aGUgcmVsZXZhbnQgY291bnRlcgorICAgICAgICAgICAgbXVzdCBiZSBpbmNyZW1lbnRlZC4iCisgICAgSU5ERVggeyBpY21wTXNnU3RhdHNJUFZlcnNpb24sIGljbXBNc2dTdGF0c1R5cGUgfQorICAgIDo6PSB7IGljbXBNc2dTdGF0c1RhYmxlIDEgfQorCitJY21wTXNnU3RhdHNFbnRyeSA6Oj0gU0VRVUVOQ0UgeworICAgICAgICBpY21wTXNnU3RhdHNJUFZlcnNpb24gIEluZXRWZXJzaW9uLAorICAgICAgICBpY21wTXNnU3RhdHNUeXBlICAgICAgIEludGVnZXIzMiwKKyAgICAgICAgaWNtcE1zZ1N0YXRzSW5Qa3RzICAgICBDb3VudGVyMzIsCisgICAgICAgIGljbXBNc2dTdGF0c091dFBrdHMgICAgQ291bnRlcjMyCisgICAgfQorCitpY21wTXNnU3RhdHNJUFZlcnNpb24gT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRWZXJzaW9uCisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgSVAgdmVyc2lvbiBvZiB0aGUgc3RhdGlzdGljcy4iCisgICAgOjo9IHsgaWNtcE1zZ1N0YXRzRW50cnkgMSB9CisKK2ljbXBNc2dTdGF0c1R5cGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEludGVnZXIzMiAoMC4uMjU1KQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKworCisKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIElDTVAgdHlwZSBmaWVsZCBvZiB0aGUgbWVzc2FnZSB0eXBlIGJlaW5nIGNvdW50ZWQgYnkKKyAgICAgICAgICAgIHRoaXMgcm93LgorCisgICAgICAgICAgICBOb3RlIHRoYXQgSUNNUCBtZXNzYWdlIHR5cGVzIGFyZSBzY29wZWQgYnkgdGhlIGFkZHJlc3MgdHlwZQorICAgICAgICAgICAgaW4gdXNlLiIKKyAgICBSRUZFUkVOQ0UgImh0dHA6Ly93d3cuaWFuYS5vcmcvYXNzaWdubWVudHMvaWNtcC1wYXJhbWV0ZXJzIGFuZAorICAgICAgICAgICAgICAgaHR0cDovL3d3dy5pYW5hLm9yZy9hc3NpZ25tZW50cy9pY21wdjYtcGFyYW1ldGVycyIKKyAgICA6Oj0geyBpY21wTXNnU3RhdHNFbnRyeSAyIH0KKworaWNtcE1zZ1N0YXRzSW5Qa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGlucHV0IHBhY2tldHMgZm9yIHRoaXMgQUYgYW5kIHR5cGUuIgorICAgIDo6PSB7IGljbXBNc2dTdGF0c0VudHJ5IDMgfQorCitpY21wTXNnU3RhdHNPdXRQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIG91dHB1dCBwYWNrZXRzIGZvciB0aGlzIEFGIGFuZCB0eXBlLiIKKyAgICA6Oj0geyBpY21wTXNnU3RhdHNFbnRyeSA0IH0KKy0tCistLSBjb25mb3JtYW5jZSBpbmZvcm1hdGlvbgorLS0KKworaXBNSUJDb25mb3JtYW5jZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpcE1JQiAyIH0KKworaXBNSUJDb21wbGlhbmNlcyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpcE1JQkNvbmZvcm1hbmNlIDEgfQoraXBNSUJHcm91cHMgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpcE1JQkNvbmZvcm1hbmNlIDIgfQorCistLSBjb21wbGlhbmNlIHN0YXRlbWVudHMKK2lwTUlCQ29tcGxpYW5jZTIgTU9EVUxFLUNPTVBMSUFOQ0UKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBjb21wbGlhbmNlIHN0YXRlbWVudCBmb3Igc3lzdGVtcyB0aGF0IGltcGxlbWVudCBJUCAtCisgICAgICAgICAgICAgZWl0aGVyIElQdjQgb3IgSVB2Ni4KKworICAgICAgICAgICAgVGhlcmUgYXJlIGEgbnVtYmVyIG9mIElOREVYIG9iamVjdHMgdGhhdCBjYW5ub3QgYmUKKyAgICAgICAgICAgIHJlcHJlc2VudGVkIGluIHRoZSBmb3JtIG9mIE9CSkVDVCBjbGF1c2VzIGluIFNNSXYyLCBidXQKKyAgICAgICAgICAgIGZvciB3aGljaCB3ZSBoYXZlIHRoZSBmb2xsb3dpbmcgY29tcGxpYW5jZSByZXF1aXJlbWVudHMsCisgICAgICAgICAgICBleHByZXNzZWQgaW4gT0JKRUNUIGNsYXVzZSBmb3JtIGluIHRoaXMgZGVzY3JpcHRpb24KKyAgICAgICAgICAgIGNsYXVzZToKKworCisKKworICAgICAgICAgICAgLS0gT0JKRUNUICAgICAgICBpcFN5c3RlbVN0YXRzSVBWZXJzaW9uCisgICAgICAgICAgICAtLSBTWU5UQVggICAgICAgIEluZXRWZXJzaW9uIHtpcHY0KDEpLCBpcHY2KDIpfQorICAgICAgICAgICAgLS0gREVTQ1JJUFRJT04KKyAgICAgICAgICAgIC0tICAgICBUaGlzIE1JQiByZXF1aXJlcyBzdXBwb3J0IGZvciBvbmx5IElQdjQgYW5kIElQdjYKKyAgICAgICAgICAgIC0tICAgICB2ZXJzaW9ucy4KKyAgICAgICAgICAgIC0tCisgICAgICAgICAgICAtLSBPQkpFQ1QgICAgICAgIGlwSWZTdGF0c0lQVmVyc2lvbgorICAgICAgICAgICAgLS0gU1lOVEFYICAgICAgICBJbmV0VmVyc2lvbiB7aXB2NCgxKSwgaXB2NigyKX0KKyAgICAgICAgICAgIC0tIERFU0NSSVBUSU9OCisgICAgICAgICAgICAtLSAgICAgVGhpcyBNSUIgcmVxdWlyZXMgc3VwcG9ydCBmb3Igb25seSBJUHY0IGFuZCBJUHY2CisgICAgICAgICAgICAtLSAgICAgdmVyc2lvbnMuCisgICAgICAgICAgICAtLQorICAgICAgICAgICAgLS0gT0JKRUNUICAgICAgICBpY21wU3RhdHNJUFZlcnNpb24KKyAgICAgICAgICAgIC0tIFNZTlRBWCAgICAgICAgSW5ldFZlcnNpb24ge2lwdjQoMSksIGlwdjYoMil9CisgICAgICAgICAgICAtLSBERVNDUklQVElPTgorICAgICAgICAgICAgLS0gICAgIFRoaXMgTUlCIHJlcXVpcmVzIHN1cHBvcnQgZm9yIG9ubHkgSVB2NCBhbmQgSVB2NgorICAgICAgICAgICAgLS0gICAgIHZlcnNpb25zLgorICAgICAgICAgICAgLS0KKyAgICAgICAgICAgIC0tIE9CSkVDVCAgICAgICAgaWNtcE1zZ1N0YXRzSVBWZXJzaW9uCisgICAgICAgICAgICAtLSBTWU5UQVggICAgICAgIEluZXRWZXJzaW9uIHtpcHY0KDEpLCBpcHY2KDIpfQorICAgICAgICAgICAgLS0gREVTQ1JJUFRJT04KKyAgICAgICAgICAgIC0tICAgICBUaGlzIE1JQiByZXF1aXJlcyBzdXBwb3J0IGZvciBvbmx5IElQdjQgYW5kIElQdjYKKyAgICAgICAgICAgIC0tICAgICB2ZXJzaW9ucy4KKyAgICAgICAgICAgIC0tCisgICAgICAgICAgICAtLSBPQkpFQ1QgICAgICAgIGlwQWRkcmVzc1ByZWZpeFR5cGUKKyAgICAgICAgICAgIC0tIFNZTlRBWCAgICAgICAgSW5ldEFkZHJlc3NUeXBlIHtpcHY0KDEpLCBpcHY2KDIpfQorICAgICAgICAgICAgLS0gREVTQ1JJUFRJT04KKyAgICAgICAgICAgIC0tICAgICBUaGlzIE1JQiByZXF1aXJlcyBzdXBwb3J0IGZvciBvbmx5IGdsb2JhbCBJUHY0IGFuZAorICAgICAgICAgICAgLS0gICAgIElQdjYgYWRkcmVzcyB0eXBlcy4KKyAgICAgICAgICAgIC0tCisgICAgICAgICAgICAtLSBPQkpFQ1QgICAgICAgIGlwQWRkcmVzc1ByZWZpeFByZWZpeAorICAgICAgICAgICAgLS0gU1lOVEFYICAgICAgICBJbmV0QWRkcmVzcyAoU2l6ZSg0IHwgMTYpKQorICAgICAgICAgICAgLS0gREVTQ1JJUFRJT04KKyAgICAgICAgICAgIC0tICAgICBUaGlzIE1JQiByZXF1aXJlcyBzdXBwb3J0IGZvciBvbmx5IGdsb2JhbCBJUHY0IGFuZAorICAgICAgICAgICAgLS0gICAgIElQdjYgYWRkcmVzc2VzIGFuZCBzbyB0aGUgc2l6ZSBjYW4gYmUgZWl0aGVyIDQgb3IKKyAgICAgICAgICAgIC0tICAgICAxNiBieXRlcy4KKyAgICAgICAgICAgIC0tCisgICAgICAgICAgICAtLSBPQkpFQ1QgICAgICAgIGlwQWRkcmVzc0FkZHJUeXBlCisgICAgICAgICAgICAtLSBTWU5UQVggICAgICAgIEluZXRBZGRyZXNzVHlwZSB7aXB2NCgxKSwgaXB2NigyKSwKKyAgICAgICAgICAgIC0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcHY0eigzKSwgaXB2NnooNCl9CisgICAgICAgICAgICAtLSBERVNDUklQVElPTgorICAgICAgICAgICAgLS0gICAgIFRoaXMgTUlCIHJlcXVpcmVzIHN1cHBvcnQgZm9yIG9ubHkgZ2xvYmFsIGFuZAorICAgICAgICAgICAgLS0gICAgIG5vbi1nbG9iYWwgSVB2NCBhbmQgSVB2NiBhZGRyZXNzIHR5cGVzLgorICAgICAgICAgICAgLS0KKyAgICAgICAgICAgIC0tIE9CSkVDVCAgICAgICAgaXBBZGRyZXNzQWRkcgorICAgICAgICAgICAgLS0gU1lOVEFYICAgICAgICBJbmV0QWRkcmVzcyAoU2l6ZSg0IHwgOCB8IDE2IHwgMjApKQorICAgICAgICAgICAgLS0gREVTQ1JJUFRJT04KKyAgICAgICAgICAgIC0tICAgICBUaGlzIE1JQiByZXF1aXJlcyBzdXBwb3J0IGZvciBvbmx5IGdsb2JhbCBhbmQKKworCisKKyAgICAgICAgICAgIC0tICAgICBub24tZ2xvYmFsIElQdjQgYW5kIElQdjYgYWRkcmVzc2VzIGFuZCBzbyB0aGUgc2l6ZQorICAgICAgICAgICAgLS0gICAgIGNhbiBiZSA0LCA4LCAxNiwgb3IgMjAgYnl0ZXMuCisgICAgICAgICAgICAtLQorICAgICAgICAgICAgLS0gT0JKRUNUICAgICAgICBpcE5ldFRvUGh5c2ljYWxOZXRBZGRyZXNzVHlwZQorICAgICAgICAgICAgLS0gU1lOVEFYICAgICAgICBJbmV0QWRkcmVzc1R5cGUge2lwdjQoMSksIGlwdjYoMiksCisgICAgICAgICAgICAtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXB2NHooMyksIGlwdjZ6KDQpfQorICAgICAgICAgICAgLS0gREVTQ1JJUFRJT04KKyAgICAgICAgICAgIC0tICAgICBUaGlzIE1JQiByZXF1aXJlcyBzdXBwb3J0IGZvciBvbmx5IGdsb2JhbCBhbmQKKyAgICAgICAgICAgIC0tICAgICBub24tZ2xvYmFsIElQdjQgYW5kIElQdjYgYWRkcmVzcyB0eXBlcy4KKyAgICAgICAgICAgIC0tCisgICAgICAgICAgICAtLSBPQkpFQ1QgICAgICAgIGlwTmV0VG9QaHlzaWNhbE5ldEFkZHJlc3MKKyAgICAgICAgICAgIC0tIFNZTlRBWCAgICAgICAgSW5ldEFkZHJlc3MgKFNpemUoNCB8IDggfCAxNiB8IDIwKSkKKyAgICAgICAgICAgIC0tIERFU0NSSVBUSU9OCisgICAgICAgICAgICAtLSAgICAgVGhpcyBNSUIgcmVxdWlyZXMgc3VwcG9ydCBmb3Igb25seSBnbG9iYWwgYW5kCisgICAgICAgICAgICAtLSAgICAgbm9uLWdsb2JhbCBJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcyBhbmQgc28gdGhlIHNpemUKKyAgICAgICAgICAgIC0tICAgICBjYW4gYmUgNCwgOCwgMTYsIG9yIDIwIGJ5dGVzLgorICAgICAgICAgICAgLS0KKyAgICAgICAgICAgIC0tIE9CSkVDVCAgICAgICAgaXBEZWZhdWx0Um91dGVyQWRkcmVzc1R5cGUKKyAgICAgICAgICAgIC0tIFNZTlRBWCAgICAgICAgSW5ldEFkZHJlc3NUeXBlIHtpcHY0KDEpLCBpcHY2KDIpLAorICAgICAgICAgICAgLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwdjR6KDMpLCBpcHY2eig0KX0KKyAgICAgICAgICAgIC0tIERFU0NSSVBUSU9OCisgICAgICAgICAgICAtLSAgICAgVGhpcyBNSUIgcmVxdWlyZXMgc3VwcG9ydCBmb3Igb25seSBnbG9iYWwgYW5kCisgICAgICAgICAgICAtLSAgICAgbm9uLWdsb2JhbCBJUHY0IGFuZCBJUHY2IGFkZHJlc3MgdHlwZXMuCisgICAgICAgICAgICAtLQorICAgICAgICAgICAgLS0gT0JKRUNUICAgICAgICBpcERlZmF1bHRSb3V0ZXJBZGRyZXNzCisgICAgICAgICAgICAtLSBTWU5UQVggICAgICAgIEluZXRBZGRyZXNzIChTaXplKDQgfCA4IHwgMTYgfCAyMCkpCisgICAgICAgICAgICAtLSBERVNDUklQVElPTgorICAgICAgICAgICAgLS0gICAgIFRoaXMgTUlCIHJlcXVpcmVzIHN1cHBvcnQgZm9yIG9ubHkgZ2xvYmFsIGFuZAorICAgICAgICAgICAgLS0gICAgIG5vbi1nbG9iYWwgSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMgYW5kIHNvIHRoZSBzaXplCisgICAgICAgICAgICAtLSAgICAgY2FuIGJlIDQsIDgsIDE2LCBvciAyMCBieXRlcy4iCisKKyAgICBNT0RVTEUgLS0gdGhpcyBtb2R1bGUKKworICAgIE1BTkRBVE9SWS1HUk9VUFMgeyBpcFN5c3RlbVN0YXRzR3JvdXAsICAgaXBBZGRyZXNzR3JvdXAsCisgICAgICAgICAgICAgICAgICAgICAgIGlwTmV0VG9QaHlzaWNhbEdyb3VwLCBpcERlZmF1bHRSb3V0ZXJHcm91cCwKKyAgICAgICAgICAgICAgICAgICAgICAgaWNtcFN0YXRzR3JvdXAgfQorCisgICAgR1JPVVAgaXBTeXN0ZW1TdGF0c0hDT2N0ZXRHcm91cAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3Igc3lzdGVtcyB0aGF0IGhhdmUgYW4gYWdncmVnYXRlCisgICAgICAgICAgICBiYW5kd2lkdGggb2YgZ3JlYXRlciB0aGFuIDIwTUIuICBJbmNsdWRpbmcgdGhpcyBncm91cCBkb2VzCisgICAgICAgICAgICBub3QgYWxsb3cgYW4gZW50aXR5IHRvIG5lZ2xlY3QgdGhlIDMyIGJpdCB2ZXJzaW9ucyBvZiB0aGVzZQorICAgICAgICAgICAgb2JqZWN0cy4iCisKKyAgICBHUk9VUCBpcFN5c3RlbVN0YXRzSENQYWNrZXRHcm91cAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3Igc3lzdGVtcyB0aGF0IGhhdmUgYW4gYWdncmVnYXRlCisgICAgICAgICAgICBiYW5kd2lkdGggb2YgZ3JlYXRlciB0aGFuIDY1ME1CLiAgSW5jbHVkaW5nIHRoaXMgZ3JvdXAKKworCisKKyAgICAgICAgICAgIGRvZXMgbm90IGFsbG93IGFuIGVudGl0eSB0byBuZWdsZWN0IHRoZSAzMiBiaXQgdmVyc2lvbnMgb2YKKyAgICAgICAgICAgIHRoZXNlIG9iamVjdHMuIgorCisgICAgR1JPVVAgaXBJZlN0YXRzR3JvdXAKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhpcyBncm91cCBpcyBvcHRpb25hbCBmb3IgYWxsIHN5c3RlbXMuIgorCisgICAgR1JPVVAgaXBJZlN0YXRzSENPY3RldEdyb3VwCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBzeXN0ZW1zIHRoYXQgaW5jbHVkZSB0aGUKKyAgICAgICAgICAgIGlwSWZTdGF0c0dyb3VwIGFuZCBpbmNsdWRlIGxpbmtzIHdpdGggYmFuZHdpZHRocyBvZiBncmVhdGVyCisgICAgICAgICAgICB0aGFuIDIwTUIuICBJbmNsdWRpbmcgdGhpcyBncm91cCBkb2VzIG5vdCBhbGxvdyBhbiBlbnRpdHkgdG8KKyAgICAgICAgICAgIG5lZ2xlY3QgdGhlIDMyIGJpdCB2ZXJzaW9ucyBvZiB0aGVzZSBvYmplY3RzLiIKKworICAgIEdST1VQIGlwSWZTdGF0c0hDUGFja2V0R3JvdXAKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhpcyBncm91cCBpcyBtYW5kYXRvcnkgZm9yIHN5c3RlbXMgdGhhdCBpbmNsdWRlIHRoZQorICAgICAgICAgICAgaXBJZlN0YXRzR3JvdXAgYW5kIGluY2x1ZGUgbGlua3Mgd2l0aCBiYW5kd2lkdGhzIG9mIGdyZWF0ZXIKKyAgICAgICAgICAgIHRoYW4gNjUwTUIuICBJbmNsdWRpbmcgdGhpcyBncm91cCBkb2VzIG5vdCBhbGxvdyBhbiBlbnRpdHkKKyAgICAgICAgICAgIHRvIG5lZ2xlY3QgdGhlIDMyIGJpdCB2ZXJzaW9ucyBvZiB0aGVzZSBvYmplY3RzLiIKKworICAgIEdST1VQIGlwdjRHZW5lcmFsR3JvdXAKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhpcyBncm91cCBpcyBtYW5kYXRvcnkgZm9yIGFsbCBzeXN0ZW1zIHN1cHBvcnRpbmcgSVB2NC4iCisKKyAgICBHUk9VUCBpcHY0SWZHcm91cAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgYWxsIHN5c3RlbXMgc3VwcG9ydGluZyBJUHY0LiIKKworICAgIEdST1VQIGlwdjRTeXN0ZW1TdGF0c0dyb3VwCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBhbGwgc3lzdGVtcyBzdXBwb3J0aW5nIElQdjQuIgorCisgICAgR1JPVVAgaXB2NFN5c3RlbVN0YXRzSENQYWNrZXRHcm91cAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgYWxsIHN5c3RlbXMgc3VwcG9ydGluZyBJUHY0IGFuZAorICAgICAgICAgICAgdGhhdCBoYXZlIGFuIGFnZ3JlZ2F0ZSBiYW5kd2lkdGggb2YgZ3JlYXRlciB0aGFuIDY1ME1CLgorICAgICAgICAgICAgSW5jbHVkaW5nIHRoaXMgZ3JvdXAgZG9lcyBub3QgYWxsb3cgYW4gZW50aXR5IHRvIG5lZ2xlY3QgdGhlCisgICAgICAgICAgICAzMiBiaXQgdmVyc2lvbnMgb2YgdGhlc2Ugb2JqZWN0cy4iCisKKyAgICBHUk9VUCBpcHY0SWZTdGF0c0dyb3VwCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBhbGwgc3lzdGVtcyBzdXBwb3J0aW5nIElQdjQgYW5kCisgICAgICAgICAgICBpbmNsdWRpbmcgdGhlIGlwSWZTdGF0c0dyb3VwLiIKKworICAgIEdST1VQIGlwdjRJZlN0YXRzSENQYWNrZXRHcm91cAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgYWxsIHN5c3RlbXMgc3VwcG9ydGluZyBJUHY0IGFuZAorCisKKworICAgICAgICAgICAgaW5jbHVkaW5nIHRoZSBpcElmU3RhdHNIQ1BhY2tldEdyb3VwLiAgSW5jbHVkaW5nIHRoaXMgZ3JvdXAKKyAgICAgICAgICAgIGRvZXMgbm90IGFsbG93IGFuIGVudGl0eSB0byBuZWdsZWN0IHRoZSAzMiBiaXQgdmVyc2lvbnMgb2YKKyAgICAgICAgICAgIHRoZXNlIG9iamVjdHMuIgorCisgICAgR1JPVVAgaXB2NkdlbmVyYWxHcm91cDIKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhpcyBncm91cCBpcyBtYW5kYXRvcnkgZm9yIGFsbCBzeXN0ZW1zIHN1cHBvcnRpbmcgSVB2Ni4iCisKKyAgICBHUk9VUCBpcHY2SWZHcm91cAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGlzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgYWxsIHN5c3RlbXMgc3VwcG9ydGluZyBJUHY2LiIKKworICAgIEdST1VQIGlwQWRkcmVzc1ByZWZpeEdyb3VwCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBhbGwgc3lzdGVtcyBzdXBwb3J0aW5nIElQdjYuIgorCisgICAgR1JPVVAgaXB2NlNjb3BlR3JvdXAKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhpcyBncm91cCBpcyBtYW5kYXRvcnkgZm9yIGFsbCBzeXN0ZW1zIHN1cHBvcnRpbmcgSVB2Ni4iCisKKyAgICBHUk9VUCBpcHY2Um91dGVyQWR2ZXJ0R3JvdXAKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhpcyBncm91cCBpcyBtYW5kYXRvcnkgZm9yIGFsbCBJUHY2IHJvdXRlcnMuIgorCisgICAgR1JPVVAgaXBMYXN0Q2hhbmdlR3JvdXAKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhpcyBncm91cCBpcyBvcHRpb25hbCBmb3IgYWxsIGFnZW50cy4iCisKKyAgICBPQkpFQ1QgICAgIGlwdjZJcEZvcndhcmRpbmcKKyAgICBNSU4tQUNDRVNTIHJlYWQtb25seQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBhZ2VudCBpcyBub3QgcmVxdWlyZWQgdG8gcHJvdmlkZSB3cml0ZSBhY2Nlc3MgdG8gdGhpcworICAgICAgICAgICAgb2JqZWN0LiIKKworICAgIE9CSkVDVCAgICAgaXB2NklwRGVmYXVsdEhvcExpbWl0CisgICAgTUlOLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQW4gYWdlbnQgaXMgbm90IHJlcXVpcmVkIHRvIHByb3ZpZGUgd3JpdGUgYWNjZXNzIHRvIHRoaXMKKyAgICAgICAgICAgIG9iamVjdC4iCisKKyAgICBPQkpFQ1QgICAgIGlwdjRJbnRlcmZhY2VFbmFibGVTdGF0dXMKKyAgICBNSU4tQUNDRVNTIHJlYWQtb25seQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBhZ2VudCBpcyBub3QgcmVxdWlyZWQgdG8gcHJvdmlkZSB3cml0ZSBhY2Nlc3MgdG8gdGhpcworICAgICAgICAgICAgb2JqZWN0LiIKKworICAgIE9CSkVDVCAgICAgaXB2NkludGVyZmFjZUVuYWJsZVN0YXR1cworICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisKKworCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIGFjY2VzcyB0byB0aGlzCisgICAgICAgICAgICBvYmplY3QuIgorCisgICAgT0JKRUNUICAgICBpcHY2SW50ZXJmYWNlRm9yd2FyZGluZworICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIGFjY2VzcyB0byB0aGlzCisgICAgICAgICAgICBvYmplY3QuIgorCisgICAgT0JKRUNUICAgICBpcEFkZHJlc3NTcGluTG9jaworICAgIE1JTi1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQW4gYWdlbnQgaXMgbm90IHJlcXVpcmVkIHRvIHByb3ZpZGUgd3JpdGUgYWNjZXNzIHRvIHRoaXMKKyAgICAgICAgICAgIG9iamVjdC4gIEhvd2V2ZXIsIGlmIGFuIGFnZW50IHByb3ZpZGVzIHdyaXRlIGFjY2VzcyB0byBhbnkKKyAgICAgICAgICAgIG9mIHRoZSBvdGhlciBvYmplY3RzIGluIHRoZSBpcEFkZHJlc3NHcm91cCwgaXQgU0hPVUxECisgICAgICAgICAgICBwcm92aWRlIHdyaXRlIGFjY2VzcyB0byB0aGlzIG9iamVjdCBhcyB3ZWxsLiIKKworICAgIE9CSkVDVCAgICAgaXBBZGRyZXNzSWZJbmRleAorICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIG9yIGNyZWF0ZSBhY2Nlc3MKKyAgICAgICAgICAgIHRvIHRoaXMgb2JqZWN0LiIKKworICAgIE9CSkVDVCAgICAgaXBBZGRyZXNzVHlwZQorICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIG9yIGNyZWF0ZSBhY2Nlc3MKKyAgICAgICAgICAgIHRvIHRoaXMgb2JqZWN0LiIKKworICAgIE9CSkVDVCAgICAgaXBBZGRyZXNzU3RhdHVzCisgICAgTUlOLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQW4gYWdlbnQgaXMgbm90IHJlcXVpcmVkIHRvIHByb3ZpZGUgd3JpdGUgb3IgY3JlYXRlIGFjY2VzcworICAgICAgICAgICAgdG8gdGhpcyBvYmplY3QuIgorCisgICAgT0JKRUNUICAgICBpcEFkZHJlc3NSb3dTdGF0dXMKKyAgICBTWU5UQVggICAgIFJvd1N0YXR1cyB7IGFjdGl2ZSgxKSB9CisgICAgTUlOLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQW4gYWdlbnQgaXMgbm90IHJlcXVpcmVkIHRvIHByb3ZpZGUgd3JpdGUgb3IgY3JlYXRlIGFjY2VzcworICAgICAgICAgICAgdG8gdGhpcyBvYmplY3QuIgorCisgICAgT0JKRUNUICAgICBpcEFkZHJlc3NTdG9yYWdlVHlwZQorICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIG9yIGNyZWF0ZSBhY2Nlc3MKKyAgICAgICAgICAgIHRvIHRoaXMgb2JqZWN0LgorCisKKworICAgICAgICAgICAgSWYgYW4gYWdlbnQgYWxsb3dzIHRoaXMgb2JqZWN0IHRvIGJlIHdyaXR0ZW4gb3IgY3JlYXRlZCwgaXQKKyAgICAgICAgICAgIGlzIG5vdCByZXF1aXJlZCB0byBhbGxvdyB0aGlzIG9iamVjdCB0byBiZSBzZXQgdG8gcmVhZE9ubHksCisgICAgICAgICAgICBwZXJtYW5lbnQsIG9yIG5vblZvbGF0aWxlLiIKKworICAgIE9CSkVDVCAgICAgaXBOZXRUb1BoeXNpY2FsUGh5c0FkZHJlc3MKKyAgICBNSU4tQUNDRVNTIHJlYWQtb25seQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBhZ2VudCBpcyBub3QgcmVxdWlyZWQgdG8gcHJvdmlkZSB3cml0ZSBvciBjcmVhdGUgYWNjZXNzCisgICAgICAgICAgICB0byB0aGlzIG9iamVjdC4iCisKKyAgICBPQkpFQ1QgICAgIGlwTmV0VG9QaHlzaWNhbFR5cGUKKyAgICBNSU4tQUNDRVNTIHJlYWQtb25seQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBhZ2VudCBpcyBub3QgcmVxdWlyZWQgdG8gcHJvdmlkZSB3cml0ZSBvciBjcmVhdGUgYWNjZXNzCisgICAgICAgICAgICB0byB0aGlzIG9iamVjdC4iCisKKyAgICBPQkpFQ1QgICAgIGlwdjZSb3V0ZXJBZHZlcnRTcGluTG9jaworICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIGFjY2VzcyB0byB0aGlzCisgICAgICAgICAgICBvYmplY3QuICBIb3dldmVyLCBpZiBhbiBhZ2VudCBwcm92aWRlcyB3cml0ZSBhY2Nlc3MgdG8KKyAgICAgICAgICAgIGFueSBvZiB0aGUgb3RoZXIgb2JqZWN0cyBpbiB0aGUgaXB2NlJvdXRlckFkdmVydEdyb3VwLCBpdAorICAgICAgICAgICAgU0hPVUxEIHByb3ZpZGUgd3JpdGUgYWNjZXNzIHRvIHRoaXMgb2JqZWN0IGFzIHdlbGwuIgorCisgICAgT0JKRUNUICAgICBpcHY2Um91dGVyQWR2ZXJ0U2VuZEFkdmVydHMKKyAgICBNSU4tQUNDRVNTIHJlYWQtb25seQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBhZ2VudCBpcyBub3QgcmVxdWlyZWQgdG8gcHJvdmlkZSB3cml0ZSBhY2Nlc3MgdG8gdGhpcworICAgICAgICAgICAgb2JqZWN0LiIKKworICAgIE9CSkVDVCAgICAgaXB2NlJvdXRlckFkdmVydE1heEludGVydmFsCisgICAgTUlOLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQW4gYWdlbnQgaXMgbm90IHJlcXVpcmVkIHRvIHByb3ZpZGUgd3JpdGUgYWNjZXNzIHRvIHRoaXMKKyAgICAgICAgICAgIG9iamVjdC4iCisKKyAgICBPQkpFQ1QgICAgIGlwdjZSb3V0ZXJBZHZlcnRNaW5JbnRlcnZhbAorICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIGFjY2VzcyB0byB0aGlzCisgICAgICAgICAgICBvYmplY3QuIgorCisgICAgT0JKRUNUICAgICBpcHY2Um91dGVyQWR2ZXJ0TWFuYWdlZEZsYWcKKyAgICBNSU4tQUNDRVNTIHJlYWQtb25seQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBhZ2VudCBpcyBub3QgcmVxdWlyZWQgdG8gcHJvdmlkZSB3cml0ZSBhY2Nlc3MgdG8gdGhpcworICAgICAgICAgICAgb2JqZWN0LiIKKworCisKKworICAgIE9CSkVDVCAgICAgaXB2NlJvdXRlckFkdmVydE90aGVyQ29uZmlnRmxhZworICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIGFjY2VzcyB0byB0aGlzCisgICAgICAgICAgICBvYmplY3QuIgorCisgICAgT0JKRUNUICAgICBpcHY2Um91dGVyQWR2ZXJ0TGlua01UVQorICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIGFjY2VzcyB0byB0aGlzCisgICAgICAgICAgICBvYmplY3QuIgorCisgICAgT0JKRUNUICAgICBpcHY2Um91dGVyQWR2ZXJ0UmVhY2hhYmxlVGltZQorICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIGFjY2VzcyB0byB0aGlzCisgICAgICAgICAgICBvYmplY3QuIgorCisgICAgT0JKRUNUICAgICBpcHY2Um91dGVyQWR2ZXJ0UmV0cmFuc21pdFRpbWUKKyAgICBNSU4tQUNDRVNTIHJlYWQtb25seQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBhZ2VudCBpcyBub3QgcmVxdWlyZWQgdG8gcHJvdmlkZSB3cml0ZSBhY2Nlc3MgdG8gdGhpcworICAgICAgICAgICAgb2JqZWN0LiIKKworICAgIE9CSkVDVCAgICAgaXB2NlJvdXRlckFkdmVydEN1ckhvcExpbWl0CisgICAgTUlOLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQW4gYWdlbnQgaXMgbm90IHJlcXVpcmVkIHRvIHByb3ZpZGUgd3JpdGUgYWNjZXNzIHRvIHRoaXMKKyAgICAgICAgICAgIG9iamVjdC4iCisKKyAgICBPQkpFQ1QgICAgIGlwdjZSb3V0ZXJBZHZlcnREZWZhdWx0TGlmZXRpbWUKKyAgICBNSU4tQUNDRVNTIHJlYWQtb25seQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBbiBhZ2VudCBpcyBub3QgcmVxdWlyZWQgdG8gcHJvdmlkZSB3cml0ZSBhY2Nlc3MgdG8gdGhpcworICAgICAgICAgICAgb2JqZWN0LiIKKworICAgIE9CSkVDVCAgICAgaXB2NlJvdXRlckFkdmVydFJvd1N0YXR1cworICAgIE1JTi1BQ0NFU1MgcmVhZC1vbmx5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkFuIGFnZW50IGlzIG5vdCByZXF1aXJlZCB0byBwcm92aWRlIHdyaXRlIG9yIGNyZWF0ZSBhY2Nlc3MKKyAgICAgICAgICAgIHRvIHRoaXMgb2JqZWN0LiIKKworICAgIDo6PSB7IGlwTUlCQ29tcGxpYW5jZXMgMiB9CisKKy0tIHVuaXRzIG9mIGNvbmZvcm1hbmNlCisKK2lwdjRHZW5lcmFsR3JvdXAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyAgIHsgaXBGb3J3YXJkaW5nLCBpcERlZmF1bHRUVEwsIGlwUmVhc21UaW1lb3V0IH0KKworCisKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGdyb3VwIG9mIElQdjQtc3BlY2lmaWMgb2JqZWN0cyBmb3IgYmFzaWMgbWFuYWdlbWVudCBvZgorICAgICAgICAgICAgSVB2NCBlbnRpdGllcy4iCisgICAgOjo9IHsgaXBNSUJHcm91cHMgMyB9CisKK2lwdjRJZkdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGlwdjRJbnRlcmZhY2VSZWFzbU1heFNpemUsIGlwdjRJbnRlcmZhY2VFbmFibGVTdGF0dXMsCisgICAgICAgICAgICAgICAgaXB2NEludGVyZmFjZVJldHJhbnNtaXRUaW1lIH0KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGdyb3VwIG9mIElQdjQtc3BlY2lmaWMgb2JqZWN0cyBmb3IgYmFzaWMgbWFuYWdlbWVudCBvZgorICAgICAgICAgICAgSVB2NCBpbnRlcmZhY2VzLiIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyA0IH0KKworaXB2NkdlbmVyYWxHcm91cDIgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyB7IGlwdjZJcEZvcndhcmRpbmcsIGlwdjZJcERlZmF1bHRIb3BMaW1pdCB9CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBJUHY2IGdyb3VwIG9mIG9iamVjdHMgcHJvdmlkaW5nIGZvciBiYXNpYyBtYW5hZ2VtZW50IG9mCisgICAgICAgICAgICBJUHY2IGVudGl0aWVzLiIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyA1IH0KKworaXB2NklmR3JvdXAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyAgIHsgaXB2NkludGVyZmFjZVJlYXNtTWF4U2l6ZSwgICBpcHY2SW50ZXJmYWNlSWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICBpcHY2SW50ZXJmYWNlRW5hYmxlU3RhdHVzLCAgIGlwdjZJbnRlcmZhY2VSZWFjaGFibGVUaW1lLAorICAgICAgICAgICAgICAgIGlwdjZJbnRlcmZhY2VSZXRyYW5zbWl0VGltZSwgaXB2NkludGVyZmFjZUZvcndhcmRpbmcgfQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgZ3JvdXAgb2YgSVB2Ni1zcGVjaWZpYyBvYmplY3RzIGZvciBiYXNpYyBtYW5hZ2VtZW50IG9mCisgICAgICAgICAgICBJUHY2IGludGVyZmFjZXMuIgorICAgIDo6PSB7IGlwTUlCR3JvdXBzIDYgfQorCitpcExhc3RDaGFuZ2VHcm91cCBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTICAgeyBpcHY0SW50ZXJmYWNlVGFibGVMYXN0Q2hhbmdlLAorICAgICAgICAgICAgICAgIGlwdjZJbnRlcmZhY2VUYWJsZUxhc3RDaGFuZ2UsCisgICAgICAgICAgICAgICAgaXBJZlN0YXRzVGFibGVMYXN0Q2hhbmdlIH0KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGxhc3QgY2hhbmdlIG9iamVjdHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgTUlCLiAgVGhlc2UKKyAgICAgICAgICAgIG9iamVjdHMgYXJlIG9wdGlvbmFsIGZvciBhbGwgYWdlbnRzLiAgVGhleSBTSE9VTEQgYmUKKyAgICAgICAgICAgIGltcGxlbWVudGVkIG9uIGFnZW50cyB3aGVyZSBpdCBpcyBwb3NzaWJsZSB0byBkZXRlcm1pbmUgdGhlCisgICAgICAgICAgICBwcm9wZXIgdmFsdWVzLiAgV2hlcmUgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGRldGVybWluZSB0aGUKKyAgICAgICAgICAgIHByb3BlciB2YWx1ZXMsIGZvciBleGFtcGxlIHdoZW4gdGhlIHRhYmxlcyBhcmUgc3BsaXQgYW1vbmdzdAorICAgICAgICAgICAgc2V2ZXJhbCBzdWItYWdlbnRzIHVzaW5nIEFnZW50WCwgdGhlIGFnZW50IE1VU1QgTk9UCisgICAgICAgICAgICBpbXBsZW1lbnQgdGhlc2Ugb2JqZWN0cyB0byByZXR1cm4gYW4gaW5jb3JyZWN0IG9yIHN0YXRpYworICAgICAgICAgICAgdmFsdWUuIgorICAgIDo6PSB7IGlwTUlCR3JvdXBzIDcgfQorCisKKworaXBTeXN0ZW1TdGF0c0dyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGlwU3lzdGVtU3RhdHNJblJlY2VpdmVzLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbk9jdGV0cywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5IZHJFcnJvcnMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luTm9Sb3V0ZXMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luQWRkckVycm9ycywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSW5Vbmtub3duUHJvdG9zLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJblRydW5jYXRlZFBrdHMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luRm9yd0RhdGFncmFtcywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzUmVhc21SZXFkcywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzUmVhc21PS3MsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c1JlYXNtRmFpbHMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luRGlzY2FyZHMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luRGVsaXZlcnMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dFJlcXVlc3RzLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXROb1JvdXRlcywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0Rm9yd0RhdGFncmFtcywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0RGlzY2FyZHMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdSZXFkcywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0RnJhZ09LcywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0RnJhZ0ZhaWxzLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRGcmFnQ3JlYXRlcywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0VHJhbnNtaXRzLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRPY3RldHMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luTWNhc3RQa3RzLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbk1jYXN0T2N0ZXRzLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNPdXRNY2FzdFBrdHMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dE1jYXN0T2N0ZXRzLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNEaXNjb250aW51aXR5VGltZSwKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzUmVmcmVzaFJhdGUgfQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJJUCBzeXN0ZW0gd2lkZSBzdGF0aXN0aWNzLiIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyA4IH0KKworaXB2NFN5c3RlbVN0YXRzR3JvdXAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyAgIHsgaXBTeXN0ZW1TdGF0c0luQmNhc3RQa3RzLCBpcFN5c3RlbVN0YXRzT3V0QmNhc3RQa3RzIH0KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiSVB2NCBvbmx5IHN5c3RlbSB3aWRlIHN0YXRpc3RpY3MuIgorICAgIDo6PSB7IGlwTUlCR3JvdXBzIDkgfQorCitpcFN5c3RlbVN0YXRzSENPY3RldEdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGlwU3lzdGVtU3RhdHNIQ0luT2N0ZXRzLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dE9jdGV0cywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSENJbk1jYXN0T2N0ZXRzLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dE1jYXN0T2N0ZXRzCit9CisKKworCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIklQIHN5c3RlbSB3aWRlIHN0YXRpc3RpY3MgZm9yIHN5c3RlbXMgdGhhdCBtYXkgb3ZlcmZsb3cgdGhlCisgICAgICAgICAgICBzdGFuZGFyZCBvY3RldCBjb3VudGVycyB3aXRoaW4gMSBob3VyLiIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyAxMCB9CisKK2lwU3lzdGVtU3RhdHNIQ1BhY2tldEdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGlwU3lzdGVtU3RhdHNIQ0luUmVjZWl2ZXMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5Gb3J3RGF0YWdyYW1zLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ0luRGVsaXZlcnMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0UmVxdWVzdHMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0Rm9yd0RhdGFncmFtcywKKyAgICAgICAgICAgICAgICBpcFN5c3RlbVN0YXRzSENPdXRUcmFuc21pdHMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDSW5NY2FzdFBrdHMsCisgICAgICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0hDT3V0TWNhc3RQa3RzCit9CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIklQIHN5c3RlbSB3aWRlIHN0YXRpc3RpY3MgZm9yIHN5c3RlbXMgdGhhdCBtYXkgb3ZlcmZsb3cgdGhlCisgICAgICAgICAgICBzdGFuZGFyZCBwYWNrZXQgY291bnRlcnMgd2l0aGluIDEgaG91ci4iCisgICAgOjo9IHsgaXBNSUJHcm91cHMgMTEgfQorCitpcHY0U3lzdGVtU3RhdHNIQ1BhY2tldEdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGlwU3lzdGVtU3RhdHNIQ0luQmNhc3RQa3RzLAorICAgICAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNIQ091dEJjYXN0UGt0cyB9CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIklQdjQgb25seSBzeXN0ZW0gd2lkZSBzdGF0aXN0aWNzIGZvciBzeXN0ZW1zIHRoYXQgbWF5CisgICAgICAgICAgICBvdmVyZmxvdyB0aGUgc3RhbmRhcmQgcGFja2V0IGNvdW50ZXJzIHdpdGhpbiAxIGhvdXIuIgorICAgIDo6PSB7IGlwTUlCR3JvdXBzIDEyIH0KKworaXBJZlN0YXRzR3JvdXAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyAgIHsgaXBJZlN0YXRzSW5SZWNlaXZlcywgICAgICAgIGlwSWZTdGF0c0luT2N0ZXRzLAorICAgICAgICAgICAgICAgIGlwSWZTdGF0c0luSGRyRXJyb3JzLCAgICAgICBpcElmU3RhdHNJbk5vUm91dGVzLAorICAgICAgICAgICAgICAgIGlwSWZTdGF0c0luQWRkckVycm9ycywgICAgICBpcElmU3RhdHNJblVua25vd25Qcm90b3MsCisgICAgICAgICAgICAgICAgaXBJZlN0YXRzSW5UcnVuY2F0ZWRQa3RzLCAgIGlwSWZTdGF0c0luRm9yd0RhdGFncmFtcywKKyAgICAgICAgICAgICAgICBpcElmU3RhdHNSZWFzbVJlcWRzLCAgICAgICAgaXBJZlN0YXRzUmVhc21PS3MsCisgICAgICAgICAgICAgICAgaXBJZlN0YXRzUmVhc21GYWlscywgICAgICAgIGlwSWZTdGF0c0luRGlzY2FyZHMsCisgICAgICAgICAgICAgICAgaXBJZlN0YXRzSW5EZWxpdmVycywgICAgICAgIGlwSWZTdGF0c091dFJlcXVlc3RzLAorICAgICAgICAgICAgICAgIGlwSWZTdGF0c091dEZvcndEYXRhZ3JhbXMsICBpcElmU3RhdHNPdXREaXNjYXJkcywKKyAgICAgICAgICAgICAgICBpcElmU3RhdHNPdXRGcmFnUmVxZHMsICAgICAgaXBJZlN0YXRzT3V0RnJhZ09LcywKKyAgICAgICAgICAgICAgICBpcElmU3RhdHNPdXRGcmFnRmFpbHMsICAgICAgaXBJZlN0YXRzT3V0RnJhZ0NyZWF0ZXMsCisgICAgICAgICAgICAgICAgaXBJZlN0YXRzT3V0VHJhbnNtaXRzLCAgICAgIGlwSWZTdGF0c091dE9jdGV0cywKKyAgICAgICAgICAgICAgICBpcElmU3RhdHNJbk1jYXN0UGt0cywgICAgICAgaXBJZlN0YXRzSW5NY2FzdE9jdGV0cywKKyAgICAgICAgICAgICAgICBpcElmU3RhdHNPdXRNY2FzdFBrdHMsICAgICAgaXBJZlN0YXRzT3V0TWNhc3RPY3RldHMsCisgICAgICAgICAgICAgICAgaXBJZlN0YXRzRGlzY29udGludWl0eVRpbWUsIGlwSWZTdGF0c1JlZnJlc2hSYXRlIH0KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorCisKKworICAgICAgICAgICAiSVAgcGVyLWludGVyZmFjZSBzdGF0aXN0aWNzLiIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyAxMyB9CisKK2lwdjRJZlN0YXRzR3JvdXAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyAgIHsgaXBJZlN0YXRzSW5CY2FzdFBrdHMsIGlwSWZTdGF0c091dEJjYXN0UGt0cyB9CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIklQdjQgb25seSBwZXItaW50ZXJmYWNlIHN0YXRpc3RpY3MuIgorICAgIDo6PSB7IGlwTUlCR3JvdXBzIDE0IH0KKworaXBJZlN0YXRzSENPY3RldEdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGlwSWZTdGF0c0hDSW5PY3RldHMsICAgICAgaXBJZlN0YXRzSENPdXRPY3RldHMsCisgICAgICAgICAgICAgICAgaXBJZlN0YXRzSENJbk1jYXN0T2N0ZXRzLCBpcElmU3RhdHNIQ091dE1jYXN0T2N0ZXRzIH0KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiSVAgcGVyLWludGVyZmFjZXMgc3RhdGlzdGljcyBmb3Igc3lzdGVtcyB0aGF0IGluY2x1ZGUKKyAgICAgICAgICAgIGludGVyZmFjZXMgdGhhdCBtYXkgb3ZlcmZsb3cgdGhlIHN0YW5kYXJkIG9jdGV0CisgICAgICAgICAgICBjb3VudGVycyB3aXRoaW4gMSBob3VyLiIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyAxNSB9CisKK2lwSWZTdGF0c0hDUGFja2V0R3JvdXAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyAgIHsgaXBJZlN0YXRzSENJblJlY2VpdmVzLCAgICAgICBpcElmU3RhdHNIQ0luRm9yd0RhdGFncmFtcywKKyAgICAgICAgICAgICAgICBpcElmU3RhdHNIQ0luRGVsaXZlcnMsICAgICAgIGlwSWZTdGF0c0hDT3V0UmVxdWVzdHMsCisgICAgICAgICAgICAgICAgaXBJZlN0YXRzSENPdXRGb3J3RGF0YWdyYW1zLCBpcElmU3RhdHNIQ091dFRyYW5zbWl0cywKKyAgICAgICAgICAgICAgICBpcElmU3RhdHNIQ0luTWNhc3RQa3RzLCAgICAgIGlwSWZTdGF0c0hDT3V0TWNhc3RQa3RzIH0KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiSVAgcGVyLWludGVyZmFjZXMgc3RhdGlzdGljcyBmb3Igc3lzdGVtcyB0aGF0IGluY2x1ZGUKKyAgICAgICAgICAgIGludGVyZmFjZXMgdGhhdCBtYXkgb3ZlcmZsb3cgdGhlIHN0YW5kYXJkIHBhY2tldCBjb3VudGVycworICAgICAgICAgICAgd2l0aGluIDEgaG91ci4iCisgICAgOjo9IHsgaXBNSUJHcm91cHMgMTYgfQorCitpcHY0SWZTdGF0c0hDUGFja2V0R3JvdXAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyAgIHsgaXBJZlN0YXRzSENJbkJjYXN0UGt0cywgaXBJZlN0YXRzSENPdXRCY2FzdFBrdHMgfQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJJUHY0IG9ubHkgcGVyLWludGVyZmFjZSBzdGF0aXN0aWNzIGZvciBzeXN0ZW1zIHRoYXQgaW5jbHVkZQorICAgICAgICAgICAgaW50ZXJmYWNlcyB0aGF0IG1heSBvdmVyZmxvdyB0aGUgc3RhbmRhcmQgcGFja2V0IGNvdW50ZXJzCisgICAgICAgICAgICB3aXRoaW4gMSBob3VyLiIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyAxNyB9CisKK2lwQWRkcmVzc1ByZWZpeEdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGlwQWRkcmVzc1ByZWZpeE9yaWdpbiwKKyAgICAgICAgICAgICAgICBpcEFkZHJlc3NQcmVmaXhPbkxpbmtGbGFnLAorICAgICAgICAgICAgICAgIGlwQWRkcmVzc1ByZWZpeEF1dG9ub21vdXNGbGFnLAorICAgICAgICAgICAgICAgIGlwQWRkcmVzc1ByZWZpeEFkdlByZWZlcnJlZExpZmV0aW1lLAorICAgICAgICAgICAgICAgIGlwQWRkcmVzc1ByZWZpeEFkdlZhbGlkTGlmZXRpbWUgfQorICAgIFNUQVRVUyAgICAgY3VycmVudAorCisKKworICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgZ3JvdXAgb2Ygb2JqZWN0cyBmb3IgcHJvdmlkaW5nIGluZm9ybWF0aW9uIGFib3V0IGFkZHJlc3MKKyAgICAgICAgICAgIHByZWZpeGVzIHVzZWQgYnkgdGhpcyBub2RlLiIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyAxOCB9CisKK2lwQWRkcmVzc0dyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGlwQWRkcmVzc1NwaW5Mb2NrLCAgaXBBZGRyZXNzSWZJbmRleCwKKyAgICAgICAgICAgICAgICBpcEFkZHJlc3NUeXBlLCAgICAgIGlwQWRkcmVzc1ByZWZpeCwKKyAgICAgICAgICAgICAgICBpcEFkZHJlc3NPcmlnaW4sICAgIGlwQWRkcmVzc1N0YXR1cywKKyAgICAgICAgICAgICAgICBpcEFkZHJlc3NDcmVhdGVkLCAgIGlwQWRkcmVzc0xhc3RDaGFuZ2VkLAorICAgICAgICAgICAgICAgIGlwQWRkcmVzc1Jvd1N0YXR1cywgaXBBZGRyZXNzU3RvcmFnZVR5cGUgfQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgZ3JvdXAgb2Ygb2JqZWN0cyBmb3IgcHJvdmlkaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICAgICAgICAgICAgYWRkcmVzc2VzIHJlbGV2YW50IHRvIHRoaXMgZW50aXR5J3MgaW50ZXJmYWNlcy4iCisgICAgOjo9IHsgaXBNSUJHcm91cHMgMTkgfQorCitpcE5ldFRvUGh5c2ljYWxHcm91cCBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTICAgeyBpcE5ldFRvUGh5c2ljYWxQaHlzQWRkcmVzcywgaXBOZXRUb1BoeXNpY2FsTGFzdFVwZGF0ZWQsCisgICAgICAgICAgICAgICAgaXBOZXRUb1BoeXNpY2FsVHlwZSwgICAgICAgIGlwTmV0VG9QaHlzaWNhbFN0YXRlLAorICAgICAgICAgICAgICAgIGlwTmV0VG9QaHlzaWNhbFJvd1N0YXR1cyB9CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBncm91cCBvZiBvYmplY3RzIGZvciBwcm92aWRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlCisgICAgICAgICAgICBtYXBwaW5ncyBvZiBuZXR3b3JrIGFkZHJlc3MgdG8gcGh5c2ljYWwgYWRkcmVzcyBrbm93biB0bworICAgICAgICAgICAgdGhpcyBub2RlLiIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyAyMCB9CisKK2lwdjZTY29wZUdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGlwdjZTY29wZVpvbmVJbmRleExpbmtMb2NhbCwKKyAgICAgICAgICAgICAgICBpcHY2U2NvcGVab25lSW5kZXgzLAorICAgICAgICAgICAgICAgIGlwdjZTY29wZVpvbmVJbmRleEFkbWluTG9jYWwsCisgICAgICAgICAgICAgICAgaXB2NlNjb3BlWm9uZUluZGV4U2l0ZUxvY2FsLAorICAgICAgICAgICAgICAgIGlwdjZTY29wZVpvbmVJbmRleDYsCisgICAgICAgICAgICAgICAgaXB2NlNjb3BlWm9uZUluZGV4NywKKyAgICAgICAgICAgICAgICBpcHY2U2NvcGVab25lSW5kZXhPcmdhbml6YXRpb25Mb2NhbCwKKyAgICAgICAgICAgICAgICBpcHY2U2NvcGVab25lSW5kZXg5LAorICAgICAgICAgICAgICAgIGlwdjZTY29wZVpvbmVJbmRleEEsCisgICAgICAgICAgICAgICAgaXB2NlNjb3BlWm9uZUluZGV4QiwKKyAgICAgICAgICAgICAgICBpcHY2U2NvcGVab25lSW5kZXhDLAorICAgICAgICAgICAgICAgIGlwdjZTY29wZVpvbmVJbmRleEQgfQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgZ3JvdXAgb2Ygb2JqZWN0cyBmb3IgbWFuYWdpbmcgSVB2NiBzY29wZSB6b25lcy4iCisgICAgOjo9IHsgaXBNSUJHcm91cHMgMjEgfQorCitpcERlZmF1bHRSb3V0ZXJHcm91cCBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTICAgeyBpcERlZmF1bHRSb3V0ZXJMaWZldGltZSwgaXBEZWZhdWx0Um91dGVyUHJlZmVyZW5jZSB9CisKKworCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBncm91cCBvZiBvYmplY3RzIGZvciBwcm92aWRpbmcgaW5mb3JtYXRpb24gYWJvdXQgZGVmYXVsdAorICAgICAgICAgICAgcm91dGVycyBrbm93biB0byB0aGlzIG5vZGUuIgorICAgIDo6PSB7IGlwTUlCR3JvdXBzIDIyIH0KKworaXB2NlJvdXRlckFkdmVydEdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGlwdjZSb3V0ZXJBZHZlcnRTcGluTG9jaywKKyAgICAgICAgICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0U2VuZEFkdmVydHMsCisgICAgICAgICAgICAgICAgaXB2NlJvdXRlckFkdmVydE1heEludGVydmFsLAorICAgICAgICAgICAgICAgIGlwdjZSb3V0ZXJBZHZlcnRNaW5JbnRlcnZhbCwKKyAgICAgICAgICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0TWFuYWdlZEZsYWcsCisgICAgICAgICAgICAgICAgaXB2NlJvdXRlckFkdmVydE90aGVyQ29uZmlnRmxhZywKKyAgICAgICAgICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0TGlua01UVSwKKyAgICAgICAgICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0UmVhY2hhYmxlVGltZSwKKyAgICAgICAgICAgICAgICBpcHY2Um91dGVyQWR2ZXJ0UmV0cmFuc21pdFRpbWUsCisgICAgICAgICAgICAgICAgaXB2NlJvdXRlckFkdmVydEN1ckhvcExpbWl0LAorICAgICAgICAgICAgICAgIGlwdjZSb3V0ZXJBZHZlcnREZWZhdWx0TGlmZXRpbWUsCisgICAgICAgICAgICAgICAgaXB2NlJvdXRlckFkdmVydFJvd1N0YXR1cworfQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgZ3JvdXAgb2Ygb2JqZWN0cyBmb3IgY29udHJvbGxpbmcgaW5mb3JtYXRpb24gYWR2ZXJ0aXNlZAorICAgICAgICAgICAgYnkgSVB2NiByb3V0ZXJzLiIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyAyMyB9CisKK2ljbXBTdGF0c0dyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7aWNtcFN0YXRzSW5Nc2dzLCAgICBpY21wU3RhdHNJbkVycm9ycywKKyAgICAgICAgICAgICAgIGljbXBTdGF0c091dE1zZ3MsICAgaWNtcFN0YXRzT3V0RXJyb3JzLAorICAgICAgICAgICAgICAgaWNtcE1zZ1N0YXRzSW5Qa3RzLCBpY21wTXNnU3RhdHNPdXRQa3RzIH0KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGdyb3VwIG9mIG9iamVjdHMgcHJvdmlkaW5nIElDTVAgc3RhdGlzdGljcy4iCisgICAgOjo9IHsgaXBNSUJHcm91cHMgMjQgfQorCistLQorLS0gRGVwcmVjYXRlZCBvYmplY3RzCistLQorCitpcEluUmVjZWl2ZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgaW5wdXQgZGF0YWdyYW1zIHJlY2VpdmVkIGZyb20KKyAgICAgICAgICAgIGludGVyZmFjZXMsIGluY2x1ZGluZyB0aG9zZSByZWNlaXZlZCBpbiBlcnJvci4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisKKworCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJblJlY2lldmVzLiIKKyAgICA6Oj0geyBpcCAzIH0KKworaXBJbkhkckVycm9ycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBpbnB1dCBkYXRhZ3JhbXMgZGlzY2FyZGVkIGR1ZSB0byBlcnJvcnMgaW4KKyAgICAgICAgICAgIHRoZWlyIElQdjQgaGVhZGVycywgaW5jbHVkaW5nIGJhZCBjaGVja3N1bXMsIHZlcnNpb24gbnVtYmVyCisgICAgICAgICAgICBtaXNtYXRjaCwgb3RoZXIgZm9ybWF0IGVycm9ycywgdGltZS10by1saXZlIGV4Y2VlZGVkLCBlcnJvcnMKKyAgICAgICAgICAgIGRpc2NvdmVyZWQgaW4gcHJvY2Vzc2luZyB0aGVpciBJUHY0IG9wdGlvbnMsIGV0Yy4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieQorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luSGRyRXJyb3JzLiIKKyAgICA6Oj0geyBpcCA0IH0KKworaXBJbkFkZHJFcnJvcnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgaW5wdXQgZGF0YWdyYW1zIGRpc2NhcmRlZCBiZWNhdXNlIHRoZSBJUHY0CisgICAgICAgICAgICBhZGRyZXNzIGluIHRoZWlyIElQdjQgaGVhZGVyJ3MgZGVzdGluYXRpb24gZmllbGQgd2FzIG5vdCBhCisgICAgICAgICAgICB2YWxpZCBhZGRyZXNzIHRvIGJlIHJlY2VpdmVkIGF0IHRoaXMgZW50aXR5LiAgVGhpcyBjb3VudAorICAgICAgICAgICAgaW5jbHVkZXMgaW52YWxpZCBhZGRyZXNzZXMgKGUuZy4sIDAuMC4wLjApIGFuZCBhZGRyZXNzZXMgb2YKKyAgICAgICAgICAgIHVuc3VwcG9ydGVkIENsYXNzZXMgKGUuZy4sIENsYXNzIEUpLiAgRm9yIGVudGl0aWVzIHdoaWNoIGFyZQorICAgICAgICAgICAgbm90IElQdjQgcm91dGVycywgYW5kIHRoZXJlZm9yZSBkbyBub3QgZm9yd2FyZCBkYXRhZ3JhbXMsCisgICAgICAgICAgICB0aGlzIGNvdW50ZXIgaW5jbHVkZXMgZGF0YWdyYW1zIGRpc2NhcmRlZCBiZWNhdXNlIHRoZQorICAgICAgICAgICAgZGVzdGluYXRpb24gYWRkcmVzcyB3YXMgbm90IGEgbG9jYWwgYWRkcmVzcy4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbkFkZHJFcnJvcnMuIgorICAgIDo6PSB7IGlwIDUgfQorCitpcEZvcndEYXRhZ3JhbXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgaW5wdXQgZGF0YWdyYW1zIGZvciB3aGljaCB0aGlzIGVudGl0eSB3YXMgbm90CisgICAgICAgICAgICB0aGVpciBmaW5hbCBJUHY0IGRlc3RpbmF0aW9uLCBhcyBhIHJlc3VsdCBvZiB3aGljaCBhbgorICAgICAgICAgICAgYXR0ZW1wdCB3YXMgbWFkZSB0byBmaW5kIGEgcm91dGUgdG8gZm9yd2FyZCB0aGVtIHRvIHRoYXQKKyAgICAgICAgICAgIGZpbmFsIGRlc3RpbmF0aW9uLiAgSW4gZW50aXRpZXMgd2hpY2ggZG8gbm90IGFjdCBhcyBJUHY0CisgICAgICAgICAgICByb3V0ZXJzLCB0aGlzIGNvdW50ZXIgd2lsbCBpbmNsdWRlIG9ubHkgdGhvc2UgcGFja2V0cyB3aGljaAorCisKKworICAgICAgICAgICAgd2VyZSBTb3VyY2UtUm91dGVkIHZpYSB0aGlzIGVudGl0eSwgYW5kIHRoZSBTb3VyY2UtUm91dGUKKyAgICAgICAgICAgIG9wdGlvbiBwcm9jZXNzaW5nIHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieQorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c0luRm9yd0RhdGFncmFtcy4iCisgICAgOjo9IHsgaXAgNiB9CisKK2lwSW5Vbmtub3duUHJvdG9zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGxvY2FsbHktYWRkcmVzc2VkIGRhdGFncmFtcyByZWNlaXZlZAorICAgICAgICAgICAgc3VjY2Vzc2Z1bGx5IGJ1dCBkaXNjYXJkZWQgYmVjYXVzZSBvZiBhbiB1bmtub3duIG9yCisgICAgICAgICAgICB1bnN1cHBvcnRlZCBwcm90b2NvbC4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJblVua25vd25Qcm90b3MuIgorICAgIDo6PSB7IGlwIDcgfQorCitpcEluRGlzY2FyZHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgaW5wdXQgSVB2NCBkYXRhZ3JhbXMgZm9yIHdoaWNoIG5vIHByb2JsZW1zCisgICAgICAgICAgICB3ZXJlIGVuY291bnRlcmVkIHRvIHByZXZlbnQgdGhlaXIgY29udGludWVkIHByb2Nlc3NpbmcsIGJ1dAorICAgICAgICAgICAgd2hpY2ggd2VyZSBkaXNjYXJkZWQgKGUuZy4sIGZvciBsYWNrIG9mIGJ1ZmZlciBzcGFjZSkuICBOb3RlCisgICAgICAgICAgICB0aGF0IHRoaXMgY291bnRlciBkb2VzIG5vdCBpbmNsdWRlIGFueSBkYXRhZ3JhbXMgZGlzY2FyZGVkCisgICAgICAgICAgICB3aGlsZSBhd2FpdGluZyByZS1hc3NlbWJseS4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbkRpc2NhcmRzLiIKKyAgICA6Oj0geyBpcCA4IH0KKworaXBJbkRlbGl2ZXJzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIGlucHV0IGRhdGFncmFtcyBzdWNjZXNzZnVsbHkgZGVsaXZlcmVkCisgICAgICAgICAgICB0byBJUHY0IHVzZXItcHJvdG9jb2xzIChpbmNsdWRpbmcgSUNNUCkuCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQgYXMgYSBuZXcgSVAgdmVyc2lvbiBuZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkKKworCisKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNJbmRlbGl2ZXJzLiIKKyAgICA6Oj0geyBpcCA5IH0KKworaXBPdXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBJUHY0IGRhdGFncmFtcyB3aGljaCBsb2NhbCBJUHY0IHVzZXIKKyAgICAgICAgICAgIHByb3RvY29scyAoaW5jbHVkaW5nIElDTVApIHN1cHBsaWVkIHRvIElQdjQgaW4gcmVxdWVzdHMgZm9yCisgICAgICAgICAgICB0cmFuc21pc3Npb24uICBOb3RlIHRoYXQgdGhpcyBjb3VudGVyIGRvZXMgbm90IGluY2x1ZGUgYW55CisgICAgICAgICAgICBkYXRhZ3JhbXMgY291bnRlZCBpbiBpcEZvcndEYXRhZ3JhbXMuCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFzIGEgbmV3IElQIHZlcnNpb24tbmV1dHJhbAorICAgICAgICAgICAgdGFibGUgaGFzIGJlZW4gYWRkZWQuICBJdCBpcyBsb29zZWx5IHJlcGxhY2VkIGJ5CisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0UmVxdWVzdHMuIgorICAgIDo6PSB7IGlwIDEwIH0KKworaXBPdXREaXNjYXJkcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBvdXRwdXQgSVB2NCBkYXRhZ3JhbXMgZm9yIHdoaWNoIG5vIHByb2JsZW0gd2FzCisgICAgICAgICAgICBlbmNvdW50ZXJlZCB0byBwcmV2ZW50IHRoZWlyIHRyYW5zbWlzc2lvbiB0byB0aGVpcgorICAgICAgICAgICAgZGVzdGluYXRpb24sIGJ1dCB3aGljaCB3ZXJlIGRpc2NhcmRlZCAoZS5nLiwgZm9yIGxhY2sgb2YKKyAgICAgICAgICAgIGJ1ZmZlciBzcGFjZSkuICBOb3RlIHRoYXQgdGhpcyBjb3VudGVyIHdvdWxkIGluY2x1ZGUKKyAgICAgICAgICAgIGRhdGFncmFtcyBjb3VudGVkIGluIGlwRm9yd0RhdGFncmFtcyBpZiBhbnkgc3VjaCBwYWNrZXRzIG1ldAorICAgICAgICAgICAgdGhpcyAoZGlzY3JldGlvbmFyeSkgZGlzY2FyZCBjcml0ZXJpb24uCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFzIGEgbmV3IElQIHZlcnNpb24tbmV1dHJhbAorICAgICAgICAgICAgdGFibGUgaGFzIGJlZW4gYWRkZWQuICBJdCBpcyBsb29zZWx5IHJlcGxhY2VkIGJ5CisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0RGlzY2FyZHMuIgorICAgIDo6PSB7IGlwIDExIH0KKworaXBPdXROb1JvdXRlcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUHY0IGRhdGFncmFtcyBkaXNjYXJkZWQgYmVjYXVzZSBubyByb3V0ZQorICAgICAgICAgICAgY291bGQgYmUgZm91bmQgdG8gdHJhbnNtaXQgdGhlbSB0byB0aGVpciBkZXN0aW5hdGlvbi4gIE5vdGUKKyAgICAgICAgICAgIHRoYXQgdGhpcyBjb3VudGVyIGluY2x1ZGVzIGFueSBwYWNrZXRzIGNvdW50ZWQgaW4KKyAgICAgICAgICAgIGlwRm9yd0RhdGFncmFtcyB3aGljaCBtZWV0IHRoaXMgYG5vLXJvdXRlJyBjcml0ZXJpb24uICBOb3RlCisgICAgICAgICAgICB0aGF0IHRoaXMgaW5jbHVkZXMgYW55IGRhdGFncmFtcyB3aGljaCBhIGhvc3QgY2Fubm90IHJvdXRlCisgICAgICAgICAgICBiZWNhdXNlIGFsbCBvZiBpdHMgZGVmYXVsdCByb3V0ZXJzIGFyZSBkb3duLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKworCisKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieQorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dE5vUm91dGVzLiIKKyAgICA6Oj0geyBpcCAxMiB9CisKK2lwUmVhc21SZXFkcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUHY0IGZyYWdtZW50cyByZWNlaXZlZCB3aGljaCBuZWVkZWQgdG8gYmUKKyAgICAgICAgICAgIHJlYXNzZW1ibGVkIGF0IHRoaXMgZW50aXR5LgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieQorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c1JlYXNtUmVxZHMuIgorICAgIDo6PSB7IGlwIDE0IH0KKworaXBSZWFzbU9LcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUHY0IGRhdGFncmFtcyBzdWNjZXNzZnVsbHkgcmUtYXNzZW1ibGVkLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieQorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c1JlYXNtT0tzLiIKKyAgICA6Oj0geyBpcCAxNSB9CisKK2lwUmVhc21GYWlscyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBmYWlsdXJlcyBkZXRlY3RlZCBieSB0aGUgSVB2NCByZS1hc3NlbWJseQorICAgICAgICAgICAgYWxnb3JpdGhtIChmb3Igd2hhdGV2ZXIgcmVhc29uOiB0aW1lZCBvdXQsIGVycm9ycywgZXRjKS4KKyAgICAgICAgICAgIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBuZWNlc3NhcmlseSBhIGNvdW50IG9mIGRpc2NhcmRlZCBJUHY0CisgICAgICAgICAgICBmcmFnbWVudHMgc2luY2Ugc29tZSBhbGdvcml0aG1zIChub3RhYmx5IHRoZSBhbGdvcml0aG0gaW4KKyAgICAgICAgICAgIFJGQyA4MTUpIGNhbiBsb3NlIHRyYWNrIG9mIHRoZSBudW1iZXIgb2YgZnJhZ21lbnRzIGJ5CisgICAgICAgICAgICBjb21iaW5pbmcgdGhlbSBhcyB0aGV5IGFyZSByZWNlaXZlZC4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkKKyAgICAgICAgICAgIGlwU3lzdGVtU3RhdHNSZWFzbUZhaWxzLiIKKyAgICA6Oj0geyBpcCAxNiB9CisKK2lwRnJhZ09LcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisKKworCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUHY0IGRhdGFncmFtcyB0aGF0IGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkKKyAgICAgICAgICAgIGZyYWdtZW50ZWQgYXQgdGhpcyBlbnRpdHkuCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFzIGEgbmV3IElQIHZlcnNpb24tbmV1dHJhbAorICAgICAgICAgICAgdGFibGUgaGFzIGJlZW4gYWRkZWQuICBJdCBpcyBsb29zZWx5IHJlcGxhY2VkIGJ5CisgICAgICAgICAgICBpcFN5c3RlbVN0YXRzT3V0RnJhZ09Lcy4iCisgICAgOjo9IHsgaXAgMTcgfQorCitpcEZyYWdGYWlscyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUHY0IGRhdGFncmFtcyB0aGF0IGhhdmUgYmVlbiBkaXNjYXJkZWQKKyAgICAgICAgICAgIGJlY2F1c2UgdGhleSBuZWVkZWQgdG8gYmUgZnJhZ21lbnRlZCBhdCB0aGlzIGVudGl0eSBidXQKKyAgICAgICAgICAgIGNvdWxkIG5vdCBiZSwgZS5nLiwgYmVjYXVzZSB0aGVpciBEb24ndCBGcmFnbWVudCBmbGFnIHdhcworICAgICAgICAgICAgc2V0LgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieQorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdGYWlscy4iCisgICAgOjo9IHsgaXAgMTggfQorCitpcEZyYWdDcmVhdGVzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQdjQgZGF0YWdyYW0gZnJhZ21lbnRzIHRoYXQgaGF2ZSBiZWVuCisgICAgICAgICAgICBnZW5lcmF0ZWQgYXMgYSByZXN1bHQgb2YgZnJhZ21lbnRhdGlvbiBhdCB0aGlzIGVudGl0eS4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCBhcyBhIG5ldyBJUCB2ZXJzaW9uIG5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieQorICAgICAgICAgICAgaXBTeXN0ZW1TdGF0c091dEZyYWdDcmVhdGVzLiIKKyAgICA6Oj0geyBpcCAxOSB9CisKK2lwUm91dGluZ0Rpc2NhcmRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHJvdXRpbmcgZW50cmllcyB3aGljaCB3ZXJlIGNob3NlbiB0byBiZQorICAgICAgICAgICAgZGlzY2FyZGVkIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHZhbGlkLiAgT25lIHBvc3NpYmxlIHJlYXNvbgorICAgICAgICAgICAgZm9yIGRpc2NhcmRpbmcgc3VjaCBhbiBlbnRyeSBjb3VsZCBiZSB0byBmcmVlLXVwIGJ1ZmZlcgorICAgICAgICAgICAgc3BhY2UgZm9yIG90aGVyIHJvdXRpbmcgZW50cmllcy4KKworCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IHdhcyBkZWZpbmVkIGluIHByZS1JUHY2IHZlcnNpb25zIG9mIHRoZSBJUCBNSUIuCisgICAgICAgICAgICBJdCB3YXMgaW1wbGljaXRseSBJUHY0IG9ubHksIGJ1dCB0aGUgb3JpZ2luYWwgc3BlY2lmaWNhdGlvbnMKKyAgICAgICAgICAgIGRpZCBub3QgaW5kaWNhdGUgdGhpcyBwcm90b2NvbCByZXN0cmljdGlvbi4gIEluIG9yZGVyIHRvCisgICAgICAgICAgICBjbGFyaWZ5IHRoZSBzcGVjaWZpY2F0aW9ucywgdGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZAorICAgICAgICAgICAgYW5kIGEgc2ltaWxhciwgYnV0IG1vcmUgdGhvcm91Z2hseSBjbGFyaWZpZWQsIG9iamVjdCBoYXMKKyAgICAgICAgICAgIGJlZW4gYWRkZWQgdG8gdGhlIElQLUZPUldBUkQtTUlCLiIKKyAgICA6Oj0geyBpcCAyMyB9CisKKy0tIHRoZSBkZXByZWNhdGVkIElQdjQgYWRkcmVzcyB0YWJsZQorCitpcEFkZHJUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgU0VRVUVOQ0UgT0YgSXBBZGRyRW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0YWJsZSBvZiBhZGRyZXNzaW5nIGluZm9ybWF0aW9uIHJlbGV2YW50IHRvIHRoaXMKKyAgICAgICAgICAgIGVudGl0eSdzIElQdjQgYWRkcmVzc2VzLgorCisgICAgICAgICAgICBUaGlzIHRhYmxlIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFzIGEgbmV3IElQIHZlcnNpb24tbmV1dHJhbAorICAgICAgICAgICAgdGFibGUgaGFzIGJlZW4gYWRkZWQuICBJdCBpcyBsb29zZWx5IHJlcGxhY2VkIGJ5IHRoZQorICAgICAgICAgICAgaXBBZGRyZXNzVGFibGUgYWx0aG91Z2ggc2V2ZXJhbCBvYmplY3RzIHRoYXQgd2VyZW4ndCBkZWVtZWQKKyAgICAgICAgICAgIHVzZWZ1bCB3ZXJlbid0IGNhcnJpZWQgZm9yd2FyZCB3aGlsZSBhbm90aGVyCisgICAgICAgICAgICAoaXBBZEVudFJlYXNtTWF4U2l6ZSkgd2FzIG1vdmVkIHRvIHRoZSBpcHY0SW50ZXJmYWNlVGFibGUuIgorICAgIDo6PSB7IGlwIDIwIH0KKworaXBBZGRyRW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElwQWRkckVudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgYWRkcmVzc2luZyBpbmZvcm1hdGlvbiBmb3Igb25lIG9mIHRoaXMgZW50aXR5J3MgSVB2NAorICAgICAgICAgICAgYWRkcmVzc2VzLiIKKyAgICBJTkRFWCAgICAgIHsgaXBBZEVudEFkZHIgfQorICAgIDo6PSB7IGlwQWRkclRhYmxlIDEgfQorCitJcEFkZHJFbnRyeSA6Oj0gU0VRVUVOQ0UgeworICAgICAgICBpcEFkRW50QWRkciAgICAgICAgICBJcEFkZHJlc3MsCisgICAgICAgIGlwQWRFbnRJZkluZGV4ICAgICAgIElOVEVHRVIsCisgICAgICAgIGlwQWRFbnROZXRNYXNrICAgICAgIElwQWRkcmVzcywKKyAgICAgICAgaXBBZEVudEJjYXN0QWRkciAgICAgSU5URUdFUiwKKyAgICAgICAgaXBBZEVudFJlYXNtTWF4U2l6ZSAgSU5URUdFUgorICAgIH0KKworaXBBZEVudEFkZHIgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElwQWRkcmVzcworICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKworCisKKyAgICAgICAgICAgIlRoZSBJUHY0IGFkZHJlc3MgdG8gd2hpY2ggdGhpcyBlbnRyeSdzIGFkZHJlc3NpbmcKKyAgICAgICAgICAgIGluZm9ybWF0aW9uIHBlcnRhaW5zLiIKKyAgICA6Oj0geyBpcEFkZHJFbnRyeSAxIH0KKworaXBBZEVudElmSW5kZXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElOVEVHRVIgKDEuLjIxNDc0ODM2NDcpCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGluZGV4IHZhbHVlIHdoaWNoIHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIGludGVyZmFjZSB0bworICAgICAgICAgICAgd2hpY2ggdGhpcyBlbnRyeSBpcyBhcHBsaWNhYmxlLiAgVGhlIGludGVyZmFjZSBpZGVudGlmaWVkIGJ5CisgICAgICAgICAgICBhIHBhcnRpY3VsYXIgdmFsdWUgb2YgdGhpcyBpbmRleCBpcyB0aGUgc2FtZSBpbnRlcmZhY2UgYXMKKyAgICAgICAgICAgIGlkZW50aWZpZWQgYnkgdGhlIHNhbWUgdmFsdWUgb2YgdGhlIElGLU1JQidzIGlmSW5kZXguIgorICAgIDo6PSB7IGlwQWRkckVudHJ5IDIgfQorCitpcEFkRW50TmV0TWFzayBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSXBBZGRyZXNzCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHN1Ym5ldCBtYXNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgSVB2NCBhZGRyZXNzIG9mIHRoaXMKKyAgICAgICAgICAgIGVudHJ5LiAgVGhlIHZhbHVlIG9mIHRoZSBtYXNrIGlzIGFuIElQdjQgYWRkcmVzcyB3aXRoIGFsbAorICAgICAgICAgICAgdGhlIG5ldHdvcmsgYml0cyBzZXQgdG8gMSBhbmQgYWxsIHRoZSBob3N0cyBiaXRzIHNldCB0byAwLiIKKyAgICA6Oj0geyBpcEFkZHJFbnRyeSAzIH0KKworaXBBZEVudEJjYXN0QWRkciBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSU5URUdFUiAoMC4uMSkKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdmFsdWUgb2YgdGhlIGxlYXN0LXNpZ25pZmljYW50IGJpdCBpbiB0aGUgSVB2NCBicm9hZGNhc3QKKyAgICAgICAgICAgIGFkZHJlc3MgdXNlZCBmb3Igc2VuZGluZyBkYXRhZ3JhbXMgb24gdGhlIChsb2dpY2FsKQorICAgICAgICAgICAgaW50ZXJmYWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgSVB2NCBhZGRyZXNzIG9mIHRoaXMgZW50cnkuCisgICAgICAgICAgICBGb3IgZXhhbXBsZSwgd2hlbiB0aGUgSW50ZXJuZXQgc3RhbmRhcmQgYWxsLW9uZXMgYnJvYWRjYXN0CisgICAgICAgICAgICBhZGRyZXNzIGlzIHVzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIDEuICBUaGlzIHZhbHVlIGFwcGxpZXMgdG8KKyAgICAgICAgICAgIGJvdGggdGhlIHN1Ym5ldCBhbmQgbmV0d29yayBicm9hZGNhc3QgYWRkcmVzc2VzIHVzZWQgYnkgdGhlCisgICAgICAgICAgICBlbnRpdHkgb24gdGhpcyAobG9naWNhbCkgaW50ZXJmYWNlLiIKKyAgICA6Oj0geyBpcEFkZHJFbnRyeSA0IH0KKworaXBBZEVudFJlYXNtTWF4U2l6ZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSU5URUdFUiAoMC4uNjU1MzUpCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHNpemUgb2YgdGhlIGxhcmdlc3QgSVB2NCBkYXRhZ3JhbSB3aGljaCB0aGlzIGVudGl0eSBjYW4KKyAgICAgICAgICAgIHJlLWFzc2VtYmxlIGZyb20gaW5jb21pbmcgSVB2NCBmcmFnbWVudGVkIGRhdGFncmFtcyByZWNlaXZlZAorICAgICAgICAgICAgb24gdGhpcyBpbnRlcmZhY2UuIgorICAgIDo6PSB7IGlwQWRkckVudHJ5IDUgfQorCisKKworLS0gdGhlIGRlcHJlY2F0ZWQgSVB2NCBBZGRyZXNzIFRyYW5zbGF0aW9uIHRhYmxlCisKKy0tIFRoZSBBZGRyZXNzIFRyYW5zbGF0aW9uIHRhYmxlcyBjb250YWluIHRoZSBJcEFkZHJlc3MgdG8KKy0tICJwaHlzaWNhbCIgYWRkcmVzcyBlcXVpdmFsZW5jZXMuICBTb21lIGludGVyZmFjZXMgZG8gbm90CistLSB1c2UgdHJhbnNsYXRpb24gdGFibGVzIGZvciBkZXRlcm1pbmluZyBhZGRyZXNzCistLSBlcXVpdmFsZW5jZXMgKGUuZy4sIERETi1YLjI1IGhhcyBhbiBhbGdvcml0aG1pYyBtZXRob2QpOworLS0gaWYgYWxsIGludGVyZmFjZXMgYXJlIG9mIHRoaXMgdHlwZSwgdGhlbiB0aGUgQWRkcmVzcworLS0gVHJhbnNsYXRpb24gdGFibGUgaXMgZW1wdHksIGkuZS4sIGhhcyB6ZXJvIGVudHJpZXMuCisKK2lwTmV0VG9NZWRpYVRhYmxlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBTRVFVRU5DRSBPRiBJcE5ldFRvTWVkaWFFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIElQdjQgQWRkcmVzcyBUcmFuc2xhdGlvbiB0YWJsZSB1c2VkIGZvciBtYXBwaW5nIGZyb20KKyAgICAgICAgICAgIElQdjQgYWRkcmVzc2VzIHRvIHBoeXNpY2FsIGFkZHJlc3Nlcy4KKworICAgICAgICAgICAgVGhpcyB0YWJsZSBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSB0aGUKKyAgICAgICAgICAgIGlwTmV0VG9QaHlzaWNhbFRhYmxlLiIKKyAgICA6Oj0geyBpcCAyMiB9CisKK2lwTmV0VG9NZWRpYUVudHJ5IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJcE5ldFRvTWVkaWFFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiRWFjaCBlbnRyeSBjb250YWlucyBvbmUgSXBBZGRyZXNzIHRvIGBwaHlzaWNhbCcgYWRkcmVzcworICAgICAgICAgICAgZXF1aXZhbGVuY2UuIgorICAgIElOREVYICAgICAgIHsgaXBOZXRUb01lZGlhSWZJbmRleCwKKyAgICAgICAgICAgICAgICAgIGlwTmV0VG9NZWRpYU5ldEFkZHJlc3MgfQorICAgIDo6PSB7IGlwTmV0VG9NZWRpYVRhYmxlIDEgfQorCitJcE5ldFRvTWVkaWFFbnRyeSA6Oj0gU0VRVUVOQ0UgeworICAgICAgICBpcE5ldFRvTWVkaWFJZkluZGV4ICAgICAgSU5URUdFUiwKKyAgICAgICAgaXBOZXRUb01lZGlhUGh5c0FkZHJlc3MgIFBoeXNBZGRyZXNzLAorICAgICAgICBpcE5ldFRvTWVkaWFOZXRBZGRyZXNzICAgSXBBZGRyZXNzLAorICAgICAgICBpcE5ldFRvTWVkaWFUeXBlICAgICAgICAgSU5URUdFUgorICAgIH0KKworaXBOZXRUb01lZGlhSWZJbmRleCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSU5URUdFUiAoMS4uMjE0NzQ4MzY0NykKKyAgICBNQVgtQUNDRVNTIHJlYWQtY3JlYXRlCisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBpbnRlcmZhY2Ugb24gd2hpY2ggdGhpcyBlbnRyeSdzIGVxdWl2YWxlbmNlIGlzCisgICAgICAgICAgICBlZmZlY3RpdmUuICBUaGUgaW50ZXJmYWNlIGlkZW50aWZpZWQgYnkgYSBwYXJ0aWN1bGFyIHZhbHVlCisgICAgICAgICAgICBvZiB0aGlzIGluZGV4IGlzIHRoZSBzYW1lIGludGVyZmFjZSBhcyBpZGVudGlmaWVkIGJ5IHRoZQorCisKKworICAgICAgICAgICAgc2FtZSB2YWx1ZSBvZiB0aGUgSUYtTUlCJ3MgaWZJbmRleC4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgcHJlZGF0ZXMgdGhlIHJ1bGUgbGltaXRpbmcgaW5kZXggb2JqZWN0cyB0byBhCisgICAgICAgICAgICBtYXggYWNjZXNzIHZhbHVlIG9mICdub3QtYWNjZXNzaWJsZScgYW5kIHNvIGNvbnRpbnVlcyB0byB1c2UKKyAgICAgICAgICAgIGEgdmFsdWUgb2YgJ3JlYWQtY3JlYXRlJy4iCisgICAgOjo9IHsgaXBOZXRUb01lZGlhRW50cnkgMSB9CisKK2lwTmV0VG9NZWRpYVBoeXNBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBQaHlzQWRkcmVzcyAoU0laRSgwLi42NTUzNSkpCisgICAgTUFYLUFDQ0VTUyByZWFkLWNyZWF0ZQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbWVkaWEtZGVwZW5kZW50IGBwaHlzaWNhbCcgYWRkcmVzcy4gIFRoaXMgb2JqZWN0IHNob3VsZAorICAgICAgICAgICAgcmV0dXJuIDAgd2hlbiB0aGlzIGVudHJ5IGlzIGluIHRoZSAnaW5jb21wbGV0ZScgc3RhdGUuCisKKyAgICAgICAgICAgIEFzIHRoZSBlbnRyaWVzIGluIHRoaXMgdGFibGUgYXJlIHR5cGljYWxseSBub3QgcGVyc2lzdGVudAorICAgICAgICAgICAgd2hlbiB0aGlzIG9iamVjdCBpcyB3cml0dGVuIHRoZSBlbnRpdHkgc2hvdWxkIG5vdCBzYXZlIHRoZQorICAgICAgICAgICAgY2hhbmdlIHRvIG5vbi12b2xhdGlsZSBzdG9yYWdlLiAgTm90ZTogYSBzdHJvbmdlcgorICAgICAgICAgICAgcmVxdWlyZW1lbnQgaXMgbm90IHVzZWQgYmVjYXVzZSB0aGlzIG9iamVjdCB3YXMgcHJldmlvdXNseQorICAgICAgICAgICAgZGVmaW5lZC4iCisgICAgOjo9IHsgaXBOZXRUb01lZGlhRW50cnkgMiB9CisKK2lwTmV0VG9NZWRpYU5ldEFkZHJlc3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElwQWRkcmVzcworICAgIE1BWC1BQ0NFU1MgcmVhZC1jcmVhdGUKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIElwQWRkcmVzcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBtZWRpYS1kZXBlbmRlbnQKKyAgICAgICAgICAgIGBwaHlzaWNhbCcgYWRkcmVzcy4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgcHJlZGF0ZXMgdGhlIHJ1bGUgbGltaXRpbmcgaW5kZXggb2JqZWN0cyB0byBhCisgICAgICAgICAgICBtYXggYWNjZXNzIHZhbHVlIG9mICdub3QtYWNjZXNzaWJsZScgYW5kIHNvIGNvbnRpbnVlcyB0byB1c2UKKyAgICAgICAgICAgIGEgdmFsdWUgb2YgJ3JlYWQtY3JlYXRlJy4iCisgICAgOjo9IHsgaXBOZXRUb01lZGlhRW50cnkgMyB9CisKK2lwTmV0VG9NZWRpYVR5cGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgIG90aGVyKDEpLCAgICAgICAgLS0gbm9uZSBvZiB0aGUgZm9sbG93aW5nCisgICAgICAgICAgICAgICAgaW52YWxpZCgyKSwgICAgICAtLSBhbiBpbnZhbGlkYXRlZCBtYXBwaW5nCisgICAgICAgICAgICAgICAgZHluYW1pYygzKSwKKyAgICAgICAgICAgICAgICBzdGF0aWMoNCkKKyAgICAgICAgICAgIH0KKyAgICBNQVgtQUNDRVNTIHJlYWQtY3JlYXRlCisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0eXBlIG9mIG1hcHBpbmcuCisKKyAgICAgICAgICAgIFNldHRpbmcgdGhpcyBvYmplY3QgdG8gdGhlIHZhbHVlIGludmFsaWQoMikgaGFzIHRoZSBlZmZlY3QKKworCisKKyAgICAgICAgICAgIG9mIGludmFsaWRhdGluZyB0aGUgY29ycmVzcG9uZGluZyBlbnRyeSBpbiB0aGUKKyAgICAgICAgICAgIGlwTmV0VG9NZWRpYVRhYmxlLiAgVGhhdCBpcywgaXQgZWZmZWN0aXZlbHkgZGlzLWFzc29jaWF0ZXMKKyAgICAgICAgICAgIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCB3aXRoIHNhaWQgZW50cnkgZnJvbSB0aGUgbWFwcGluZworICAgICAgICAgICAgaWRlbnRpZmllZCB3aXRoIHNhaWQgZW50cnkuICBJdCBpcyBhbiBpbXBsZW1lbnRhdGlvbi0KKyAgICAgICAgICAgIHNwZWNpZmljIG1hdHRlciBhcyB0byB3aGV0aGVyIHRoZSBhZ2VudCByZW1vdmVzIGFuCisgICAgICAgICAgICBpbnZhbGlkYXRlZCBlbnRyeSBmcm9tIHRoZSB0YWJsZS4gIEFjY29yZGluZ2x5LCBtYW5hZ2VtZW50CisgICAgICAgICAgICBzdGF0aW9ucyBtdXN0IGJlIHByZXBhcmVkIHRvIHJlY2VpdmUgdGFidWxhciBpbmZvcm1hdGlvbgorICAgICAgICAgICAgZnJvbSBhZ2VudHMgdGhhdCBjb3JyZXNwb25kcyB0byBlbnRyaWVzIG5vdCBjdXJyZW50bHkgaW4KKyAgICAgICAgICAgIHVzZS4gIFByb3BlciBpbnRlcnByZXRhdGlvbiBvZiBzdWNoIGVudHJpZXMgcmVxdWlyZXMKKyAgICAgICAgICAgIGV4YW1pbmF0aW9uIG9mIHRoZSByZWxldmFudCBpcE5ldFRvTWVkaWFUeXBlIG9iamVjdC4KKworICAgICAgICAgICAgQXMgdGhlIGVudHJpZXMgaW4gdGhpcyB0YWJsZSBhcmUgdHlwaWNhbGx5IG5vdCBwZXJzaXN0ZW50CisgICAgICAgICAgICB3aGVuIHRoaXMgb2JqZWN0IGlzIHdyaXR0ZW4gdGhlIGVudGl0eSBzaG91bGQgbm90IHNhdmUgdGhlCisgICAgICAgICAgICBjaGFuZ2UgdG8gbm9uLXZvbGF0aWxlIHN0b3JhZ2UuICBOb3RlOiBhIHN0cm9uZ2VyCisgICAgICAgICAgICByZXF1aXJlbWVudCBpcyBub3QgdXNlZCBiZWNhdXNlIHRoaXMgb2JqZWN0IHdhcyBwcmV2aW91c2x5CisgICAgICAgICAgICBkZWZpbmVkLiIKKyAgICA6Oj0geyBpcE5ldFRvTWVkaWFFbnRyeSA0IH0KKworLS0gdGhlIGRlcHJlY2F0ZWQgSUNNUCBncm91cAorCitpY21wSW5Nc2dzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIElDTVAgbWVzc2FnZXMgd2hpY2ggdGhlIGVudGl0eSByZWNlaXZlZC4KKyAgICAgICAgICAgIE5vdGUgdGhhdCB0aGlzIGNvdW50ZXIgaW5jbHVkZXMgYWxsIHRob3NlIGNvdW50ZWQgYnkKKyAgICAgICAgICAgIGljbXBJbkVycm9ycy4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkKKyAgICAgICAgICAgIGljbXBTdGF0c0luTXNncy4iCisgICAgOjo9IHsgaWNtcCAxIH0KKworaWNtcEluRXJyb3JzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgbWVzc2FnZXMgd2hpY2ggdGhlIGVudGl0eSByZWNlaXZlZCBidXQKKyAgICAgICAgICAgIGRldGVybWluZWQgYXMgaGF2aW5nIElDTVAtc3BlY2lmaWMgZXJyb3JzIChiYWQgSUNNUAorICAgICAgICAgICAgY2hlY2tzdW1zLCBiYWQgbGVuZ3RoLCBldGMuKS4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkKKyAgICAgICAgICAgIGljbXBTdGF0c0luRXJyb3JzLiIKKyAgICA6Oj0geyBpY21wIDIgfQorCisKKworCitpY21wSW5EZXN0VW5yZWFjaHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBEZXN0aW5hdGlvbiBVbnJlYWNoYWJsZSBtZXNzYWdlcworICAgICAgICAgICAgcmVjZWl2ZWQuCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFzIGEgbmV3IElQIHZlcnNpb24tbmV1dHJhbAorICAgICAgICAgICAgdGFibGUgaGFzIGJlZW4gYWRkZWQuICBJdCBpcyBsb29zZWx5IHJlcGxhY2VkIGJ5IGEgY29sdW1uIGluCisgICAgICAgICAgICB0aGUgaWNtcE1zZ1N0YXRzVGFibGUuIgorICAgIDo6PSB7IGljbXAgMyB9CisKK2ljbXBJblRpbWVFeGNkcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIFRpbWUgRXhjZWVkZWQgbWVzc2FnZXMgcmVjZWl2ZWQuCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFzIGEgbmV3IElQIHZlcnNpb24tbmV1dHJhbAorICAgICAgICAgICAgdGFibGUgaGFzIGJlZW4gYWRkZWQuICBJdCBpcyBsb29zZWx5IHJlcGxhY2VkIGJ5IGEgY29sdW1uIGluCisgICAgICAgICAgICB0aGUgaWNtcE1zZ1N0YXRzVGFibGUuIgorICAgIDo6PSB7IGljbXAgNCB9CisKK2ljbXBJblBhcm1Qcm9icyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIFBhcmFtZXRlciBQcm9ibGVtIG1lc3NhZ2VzIHJlY2VpdmVkLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDUgfQorCitpY21wSW5TcmNRdWVuY2hzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgU291cmNlIFF1ZW5jaCBtZXNzYWdlcyByZWNlaXZlZC4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkgYSBjb2x1bW4gaW4KKyAgICAgICAgICAgIHRoZSBpY21wTXNnU3RhdHNUYWJsZS4iCisgICAgOjo9IHsgaWNtcCA2IH0KKworCisKK2ljbXBJblJlZGlyZWN0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIFJlZGlyZWN0IG1lc3NhZ2VzIHJlY2VpdmVkLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDcgfQorCitpY21wSW5FY2hvcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIEVjaG8gKHJlcXVlc3QpIG1lc3NhZ2VzIHJlY2VpdmVkLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDggfQorCitpY21wSW5FY2hvUmVwcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIEVjaG8gUmVwbHkgbWVzc2FnZXMgcmVjZWl2ZWQuCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFzIGEgbmV3IElQIHZlcnNpb24tbmV1dHJhbAorICAgICAgICAgICAgdGFibGUgaGFzIGJlZW4gYWRkZWQuICBJdCBpcyBsb29zZWx5IHJlcGxhY2VkIGJ5IGEgY29sdW1uIGluCisgICAgICAgICAgICB0aGUgaWNtcE1zZ1N0YXRzVGFibGUuIgorICAgIDo6PSB7IGljbXAgOSB9CisKK2ljbXBJblRpbWVzdGFtcHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBUaW1lc3RhbXAgKHJlcXVlc3QpIG1lc3NhZ2VzIHJlY2VpdmVkLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDEwIH0KKworCisKKworaWNtcEluVGltZXN0YW1wUmVwcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIFRpbWVzdGFtcCBSZXBseSBtZXNzYWdlcyByZWNlaXZlZC4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkgYSBjb2x1bW4gaW4KKyAgICAgICAgICAgIHRoZSBpY21wTXNnU3RhdHNUYWJsZS4iCisgICAgOjo9IHsgaWNtcCAxMSB9CisKK2ljbXBJbkFkZHJNYXNrcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIEFkZHJlc3MgTWFzayBSZXF1ZXN0IG1lc3NhZ2VzIHJlY2VpdmVkLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDEyIH0KKworaWNtcEluQWRkck1hc2tSZXBzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgQWRkcmVzcyBNYXNrIFJlcGx5IG1lc3NhZ2VzIHJlY2VpdmVkLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDEzIH0KKworaWNtcE91dE1zZ3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgSUNNUCBtZXNzYWdlcyB3aGljaCB0aGlzIGVudGl0eQorICAgICAgICAgICAgYXR0ZW1wdGVkIHRvIHNlbmQuICBOb3RlIHRoYXQgdGhpcyBjb3VudGVyIGluY2x1ZGVzIGFsbAorICAgICAgICAgICAgdGhvc2UgY291bnRlZCBieSBpY21wT3V0RXJyb3JzLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieQorICAgICAgICAgICAgaWNtcFN0YXRzT3V0TXNncy4iCisKKworCisgICAgOjo9IHsgaWNtcCAxNCB9CisKK2ljbXBPdXRFcnJvcnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBtZXNzYWdlcyB3aGljaCB0aGlzIGVudGl0eSBkaWQgbm90IHNlbmQKKyAgICAgICAgICAgIGR1ZSB0byBwcm9ibGVtcyBkaXNjb3ZlcmVkIHdpdGhpbiBJQ01QLCBzdWNoIGFzIGEgbGFjayBvZgorICAgICAgICAgICAgYnVmZmVycy4gIFRoaXMgdmFsdWUgc2hvdWxkIG5vdCBpbmNsdWRlIGVycm9ycyBkaXNjb3ZlcmVkCisgICAgICAgICAgICBvdXRzaWRlIHRoZSBJQ01QIGxheWVyLCBzdWNoIGFzIHRoZSBpbmFiaWxpdHkgb2YgSVAgdG8gcm91dGUKKyAgICAgICAgICAgIHRoZSByZXN1bHRhbnQgZGF0YWdyYW0uICBJbiBzb21lIGltcGxlbWVudGF0aW9ucywgdGhlcmUgbWF5CisgICAgICAgICAgICBiZSBubyB0eXBlcyBvZiBlcnJvciB3aGljaCBjb250cmlidXRlIHRvIHRoaXMgY291bnRlcidzCisgICAgICAgICAgICB2YWx1ZS4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkKKyAgICAgICAgICAgIGljbXBTdGF0c091dEVycm9ycy4iCisgICAgOjo9IHsgaWNtcCAxNSB9CisKK2ljbXBPdXREZXN0VW5yZWFjaHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBEZXN0aW5hdGlvbiBVbnJlYWNoYWJsZSBtZXNzYWdlcyBzZW50LgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDE2IH0KKworaWNtcE91dFRpbWVFeGNkcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIFRpbWUgRXhjZWVkZWQgbWVzc2FnZXMgc2VudC4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkgYSBjb2x1bW4gaW4KKyAgICAgICAgICAgIHRoZSBpY21wTXNnU3RhdHNUYWJsZS4iCisgICAgOjo9IHsgaWNtcCAxNyB9CisKK2ljbXBPdXRQYXJtUHJvYnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisKKworCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBQYXJhbWV0ZXIgUHJvYmxlbSBtZXNzYWdlcyBzZW50LgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDE4IH0KKworaWNtcE91dFNyY1F1ZW5jaHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBTb3VyY2UgUXVlbmNoIG1lc3NhZ2VzIHNlbnQuCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGhhcyBiZWVuIGRlcHJlY2F0ZWQsIGFzIGEgbmV3IElQIHZlcnNpb24tbmV1dHJhbAorICAgICAgICAgICAgdGFibGUgaGFzIGJlZW4gYWRkZWQuICBJdCBpcyBsb29zZWx5IHJlcGxhY2VkIGJ5IGEgY29sdW1uIGluCisgICAgICAgICAgICB0aGUgaWNtcE1zZ1N0YXRzVGFibGUuIgorICAgIDo6PSB7IGljbXAgMTkgfQorCitpY21wT3V0UmVkaXJlY3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgUmVkaXJlY3QgbWVzc2FnZXMgc2VudC4gIEZvciBhIGhvc3QsIHRoaXMKKyAgICAgICAgICAgIG9iamVjdCB3aWxsIGFsd2F5cyBiZSB6ZXJvLCBzaW5jZSBob3N0cyBkbyBub3Qgc2VuZAorICAgICAgICAgICAgcmVkaXJlY3RzLgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDIwIH0KKworaWNtcE91dEVjaG9zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgRWNobyAocmVxdWVzdCkgbWVzc2FnZXMgc2VudC4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkgYSBjb2x1bW4gaW4KKyAgICAgICAgICAgIHRoZSBpY21wTXNnU3RhdHNUYWJsZS4iCisgICAgOjo9IHsgaWNtcCAyMSB9CisKK2ljbXBPdXRFY2hvUmVwcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisKKworCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIEVjaG8gUmVwbHkgbWVzc2FnZXMgc2VudC4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkgYSBjb2x1bW4gaW4KKyAgICAgICAgICAgIHRoZSBpY21wTXNnU3RhdHNUYWJsZS4iCisgICAgOjo9IHsgaWNtcCAyMiB9CisKK2ljbXBPdXRUaW1lc3RhbXBzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgVGltZXN0YW1wIChyZXF1ZXN0KSBtZXNzYWdlcyBzZW50LgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDIzIH0KKworaWNtcE91dFRpbWVzdGFtcFJlcHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBUaW1lc3RhbXAgUmVwbHkgbWVzc2FnZXMgc2VudC4KKworICAgICAgICAgICAgVGhpcyBvYmplY3QgaGFzIGJlZW4gZGVwcmVjYXRlZCwgYXMgYSBuZXcgSVAgdmVyc2lvbi1uZXV0cmFsCisgICAgICAgICAgICB0YWJsZSBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIGxvb3NlbHkgcmVwbGFjZWQgYnkgYSBjb2x1bW4gaW4KKyAgICAgICAgICAgIHRoZSBpY21wTXNnU3RhdHNUYWJsZS4iCisgICAgOjo9IHsgaWNtcCAyNCB9CisKK2ljbXBPdXRBZGRyTWFza3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBBZGRyZXNzIE1hc2sgUmVxdWVzdCBtZXNzYWdlcyBzZW50LgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDI1IH0KKworaWNtcE91dEFkZHJNYXNrUmVwcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisKKworCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIEFkZHJlc3MgTWFzayBSZXBseSBtZXNzYWdlcyBzZW50LgorCisgICAgICAgICAgICBUaGlzIG9iamVjdCBoYXMgYmVlbiBkZXByZWNhdGVkLCBhcyBhIG5ldyBJUCB2ZXJzaW9uLW5ldXRyYWwKKyAgICAgICAgICAgIHRhYmxlIGhhcyBiZWVuIGFkZGVkLiAgSXQgaXMgbG9vc2VseSByZXBsYWNlZCBieSBhIGNvbHVtbiBpbgorICAgICAgICAgICAgdGhlIGljbXBNc2dTdGF0c1RhYmxlLiIKKyAgICA6Oj0geyBpY21wIDI2IH0KKworLS0gZGVwcmVjYXRlZCBjb25mb3JtYW5jZSBpbmZvcm1hdGlvbgorLS0gZGVwcmVjYXRlZCBjb21wbGlhbmNlIHN0YXRlbWVudHMKKworaXBNSUJDb21wbGlhbmNlIE1PRFVMRS1DT01QTElBTkNFCisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBjb21wbGlhbmNlIHN0YXRlbWVudCBmb3Igc3lzdGVtcyB0aGF0IGltcGxlbWVudCBvbmx5CisgICAgICAgICAgICBJUHY0LiAgRm9yIHZlcnNpb24taW5kZXBlbmRlbmNlLCB0aGlzIGNvbXBsaWFuY2Ugc3RhdGVtZW50CisgICAgICAgICAgICBpcyBkZXByZWNhdGVkIGluIGZhdm9yIG9mIGlwTUlCQ29tcGxpYW5jZTIuIgorICAgIE1PRFVMRSAgLS0gdGhpcyBtb2R1bGUKKyAgICAgICAgTUFOREFUT1JZLUdST1VQUyB7IGlwR3JvdXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpY21wR3JvdXAgfQorICAgIDo6PSB7IGlwTUlCQ29tcGxpYW5jZXMgMSB9CisKKy0tIGRlcHJlY2F0ZWQgdW5pdHMgb2YgY29uZm9ybWFuY2UKKworaXBHcm91cCBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTICAgeyBpcEZvcndhcmRpbmcsICAgICAgICAgICBpcERlZmF1bHRUVEwsCisgICAgICAgICAgICAgICAgaXBJblJlY2VpdmVzLCAgICAgICAgICAgaXBJbkhkckVycm9ycywKKyAgICAgICAgICAgICAgICBpcEluQWRkckVycm9ycywgICAgICAgICBpcEZvcndEYXRhZ3JhbXMsCisgICAgICAgICAgICAgICAgaXBJblVua25vd25Qcm90b3MsICAgICAgaXBJbkRpc2NhcmRzLAorICAgICAgICAgICAgICAgIGlwSW5EZWxpdmVycywgICAgICAgICAgIGlwT3V0UmVxdWVzdHMsCisgICAgICAgICAgICAgICAgaXBPdXREaXNjYXJkcywgICAgICAgICAgaXBPdXROb1JvdXRlcywKKyAgICAgICAgICAgICAgICBpcFJlYXNtVGltZW91dCwgICAgICAgICBpcFJlYXNtUmVxZHMsCisgICAgICAgICAgICAgICAgaXBSZWFzbU9LcywgICAgICAgICAgICAgaXBSZWFzbUZhaWxzLAorICAgICAgICAgICAgICAgIGlwRnJhZ09LcywgICAgICAgICAgICAgIGlwRnJhZ0ZhaWxzLAorICAgICAgICAgICAgICAgIGlwRnJhZ0NyZWF0ZXMsICAgICAgICAgIGlwQWRFbnRBZGRyLAorICAgICAgICAgICAgICAgIGlwQWRFbnRJZkluZGV4LCAgICAgICAgIGlwQWRFbnROZXRNYXNrLAorICAgICAgICAgICAgICAgIGlwQWRFbnRCY2FzdEFkZHIsICAgICAgIGlwQWRFbnRSZWFzbU1heFNpemUsCisgICAgICAgICAgICAgICAgaXBOZXRUb01lZGlhSWZJbmRleCwgICAgaXBOZXRUb01lZGlhUGh5c0FkZHJlc3MsCisgICAgICAgICAgICAgICAgaXBOZXRUb01lZGlhTmV0QWRkcmVzcywgaXBOZXRUb01lZGlhVHlwZSwKKyAgICAgICAgICAgICAgICBpcFJvdXRpbmdEaXNjYXJkcworfQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgaXAgZ3JvdXAgb2Ygb2JqZWN0cyBwcm92aWRpbmcgZm9yIGJhc2ljIG1hbmFnZW1lbnQgb2YgSVAKKyAgICAgICAgICAgIGVudGl0aWVzLCBleGNsdXNpdmUgb2YgdGhlIG1hbmFnZW1lbnQgb2YgSVAgcm91dGVzLgorCisKKworCisgICAgICAgICAgICBBcyBwYXJ0IG9mIHRoZSB2ZXJzaW9uIGluZGVwZW5kZW5jZSwgdGhpcyBncm91cCBoYXMgYmVlbgorICAgICAgICAgICAgZGVwcmVjYXRlZC4gICIKKyAgICA6Oj0geyBpcE1JQkdyb3VwcyAxIH0KKworaWNtcEdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IGljbXBJbk1zZ3MsICAgICAgICAgIGljbXBJbkVycm9ycywKKyAgICAgICAgICAgICAgICBpY21wSW5EZXN0VW5yZWFjaHMsICBpY21wSW5UaW1lRXhjZHMsCisgICAgICAgICAgICAgICAgaWNtcEluUGFybVByb2JzLCAgICAgaWNtcEluU3JjUXVlbmNocywKKyAgICAgICAgICAgICAgICBpY21wSW5SZWRpcmVjdHMsICAgICBpY21wSW5FY2hvcywKKyAgICAgICAgICAgICAgICBpY21wSW5FY2hvUmVwcywgICAgICBpY21wSW5UaW1lc3RhbXBzLAorICAgICAgICAgICAgICAgIGljbXBJblRpbWVzdGFtcFJlcHMsIGljbXBJbkFkZHJNYXNrcywKKyAgICAgICAgICAgICAgICBpY21wSW5BZGRyTWFza1JlcHMsICBpY21wT3V0TXNncywKKyAgICAgICAgICAgICAgICBpY21wT3V0RXJyb3JzLCAgICAgICBpY21wT3V0RGVzdFVucmVhY2hzLAorICAgICAgICAgICAgICAgIGljbXBPdXRUaW1lRXhjZHMsICAgIGljbXBPdXRQYXJtUHJvYnMsCisgICAgICAgICAgICAgICAgaWNtcE91dFNyY1F1ZW5jaHMsICAgaWNtcE91dFJlZGlyZWN0cywKKyAgICAgICAgICAgICAgICBpY21wT3V0RWNob3MsICAgICAgICBpY21wT3V0RWNob1JlcHMsCisgICAgICAgICAgICAgICAgaWNtcE91dFRpbWVzdGFtcHMsICAgaWNtcE91dFRpbWVzdGFtcFJlcHMsCisgICAgICAgICAgICAgICAgaWNtcE91dEFkZHJNYXNrcywgICAgaWNtcE91dEFkZHJNYXNrUmVwcyB9CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBpY21wIGdyb3VwIG9mIG9iamVjdHMgcHJvdmlkaW5nIElDTVAgc3RhdGlzdGljcy4KKworICAgICAgICAgICAgQXMgcGFydCBvZiB0aGUgdmVyc2lvbiBpbmRlcGVuZGVuY2UsIHRoaXMgZ3JvdXAgaGFzIGJlZW4KKyAgICAgICAgICAgIGRlcHJlY2F0ZWQuICAiCisgICAgOjo9IHsgaXBNSUJHcm91cHMgMiB9CisKK0VORApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1JGQy0xMjEyIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1JGQy0xMjEyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiMWJkY2YKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvUkZDLTEyMTIKQEAgLTAsMCArMSw3NSBAQAorUkZDLTEyMTIgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKKyAgICAgICAgICBJTVBPUlRTCisgICAgICAgICAgICAgIE9iamVjdE5hbWUKKyAgICAgICAgICAgICAgICAgIEZST00gUkZDMTE1NS1TTUk7CistLSAgICAgICAgICAgIERpc3BsYXlTdHJpbmcKKy0tICAgICAgICAgICAgICAgIEZST00gUkZDMTE1OC1NSUI7CisKKyAgICAgICAgICBPQkpFQ1QtVFlQRSBNQUNSTyA6Oj0KKyAgICAgICAgICBCRUdJTgorICAgICAgICAgICAgICBUWVBFIE5PVEFUSU9OIDo6PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gbXVzdCBjb25mb3JtIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBSRkMxMTU1J3MgT2JqZWN0U3ludGF4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTWU5UQVgiIHR5cGUoT2JqZWN0U3ludGF4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQUNDRVNTIiBBY2Nlc3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNUQVRVUyIgU3RhdHVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlc2NyUGFydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWZlclBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXhQYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZlZhbFBhcnQKKyAgICAgICAgICAgICAgVkFMVUUgTk9UQVRJT04gOjo9IHZhbHVlIChWQUxVRSBPYmplY3ROYW1lKQorCisgICAgICAgICAgICAgIEFjY2VzcyA6Oj0gInJlYWQtb25seSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgInJlYWQtd3JpdGUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICJ3cml0ZS1vbmx5IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAibm90LWFjY2Vzc2libGUiCisgICAgICAgICAgICAgIFN0YXR1cyA6Oj0gIm1hbmRhdG9yeSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIm9wdGlvbmFsIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAib2Jzb2xldGUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICJkZXByZWNhdGVkIgorCisgICAgICAgICAgICAgIERlc2NyUGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgICAgICAgICAiREVTQ1JJUFRJT04iIHZhbHVlIChkZXNjcmlwdGlvbiBEaXNwbGF5U3RyaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBlbXB0eQorCisgICAgICAgICAgICAgIFJlZmVyUGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgICAgICAgICAiUkVGRVJFTkNFIiB2YWx1ZSAocmVmZXJlbmNlIERpc3BsYXlTdHJpbmcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGVtcHR5CisKKyAgICAgICAgICAgICAgSW5kZXhQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAgICAgICAgICJJTkRFWCIgInsiIEluZGV4VHlwZXMgIn0iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGVtcHR5CisgICAgICAgICAgICAgIEluZGV4VHlwZXMgOjo9CisgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZXhUeXBlIHwgSW5kZXhUeXBlcyAiLCIgSW5kZXhUeXBlCisgICAgICAgICAgICAgIEluZGV4VHlwZSA6Oj0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBpZiBpbmRleG9iamVjdCwgdXNlIHRoZSBTWU5UQVgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSB2YWx1ZSBvZiB0aGUgY29ycmVzcG9uZGVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIE9CSkVDVC1UWVBFIGludm9jYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSAoaW5kZXhvYmplY3QgT2JqZWN0TmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBvdGhlcndpc2UgdXNlIG5hbWVkIFNNSSB0eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gbXVzdCBjb25mb3JtIHRvIEluZGV4U3ludGF4IGJlbG93CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHR5cGUgKGluZGV4dHlwZSkKKworICAgICAgICAgICAgICBEZWZWYWxQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAgICAgICAgICJERUZWQUwiICJ7IiB2YWx1ZSAoZGVmdmFsdWUgT2JqZWN0U3ludGF4KSAifSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZW1wdHkKKworICAgICAgICAgIEVORAorCisgICAgICAgICAgSW5kZXhTeW50YXggOjo9CisgICAgICAgICAgICAgIENIT0lDRSB7CisgICAgICAgICAgICAgICAgICBudW1iZXIKKyAgICAgICAgICAgICAgICAgICAgICBJTlRFR0VSICgwLi5NQVgpLAorICAgICAgICAgICAgICAgICAgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgICAgT0NURVQgU1RSSU5HLAorICAgICAgICAgICAgICAgICAgb2JqZWN0CisgICAgICAgICAgICAgICAgICAgICAgT0JKRUNUIElERU5USUZJRVIsCisgICAgICAgICAgICAgICAgICBhZGRyZXNzCisgICAgICAgICAgICAgICAgICAgICAgTmV0d29ya0FkZHJlc3MsCisgICAgICAgICAgICAgICAgICBpcEFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICAgICBJcEFkZHJlc3MKKyAgICAgICAgICAgICAgfQorCitFTkQKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1JGQy0xMjE1IGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1JGQy0xMjE1Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjZGNmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvUkZDLTEyMTUKQEAgLTAsMCArMSwzNCBAQAorUkZDLTEyMTUgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKKyAgSU1QT1JUUworICAgICAgT2JqZWN0TmFtZQorICAgICAgICAgIEZST00gUkZDMTE1NS1TTUk7CisKKyAgVFJBUC1UWVBFIE1BQ1JPIDo6PQorICBCRUdJTgorICAgICAgVFlQRSBOT1RBVElPTiA6Oj0gIkVOVEVSUFJJU0UiIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVudGVycHJpc2UgT0JKRUNUIElERU5USUZJRVIpCisgICAgICAgICAgICAgICAgICAgICAgICBWYXJQYXJ0CisgICAgICAgICAgICAgICAgICAgICAgICBEZXNjclBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgIFJlZmVyUGFydAorICAgICAgVkFMVUUgTk9UQVRJT04gOjo9IHZhbHVlIChWQUxVRSBJTlRFR0VSKQorCisgICAgICBWYXJQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAiVkFSSUFCTEVTIiAieyIgVmFyVHlwZXMgIn0iCisgICAgICAgICAgICAgICAgICAgICAgfCBlbXB0eQorICAgICAgVmFyVHlwZXMgOjo9CisgICAgICAgICAgICAgICAgIFZhclR5cGUgfCBWYXJUeXBlcyAiLCIgVmFyVHlwZQorICAgICAgVmFyVHlwZSA6Oj0KKyAgICAgICAgICAgICAgICAgdmFsdWUgKHZhcnR5cGUgT2JqZWN0TmFtZSkKKworICAgICAgRGVzY3JQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAiREVTQ1JJUFRJT04iIHZhbHVlIChkZXNjcmlwdGlvbiBEaXNwbGF5U3RyaW5nKQorICAgICAgICAgICAgICAgICAgICAgIHwgZW1wdHkKKworICAgICAgUmVmZXJQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAiUkVGRVJFTkNFIiB2YWx1ZSAocmVmZXJlbmNlIERpc3BsYXlTdHJpbmcpCisgICAgICAgICAgICAgICAgICAgICAgfCBlbXB0eQorCisgIEVORAorCitFTkQKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9SRkMxMDY1LVNNSSBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9SRkMxMDY1LVNNSQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MGU1NWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1JGQzEwNjUtU01JCkBAIC0wLDAgKzEsMTMyIEBACitSRkMxMDY1LVNNSSBERUZJTklUSU9OUyA6Oj0gQkVHSU4KKworRVhQT1JUUyAtLSBFVkVSWVRISU5HCisgICAgICAgIGludGVybmV0LCBkaXJlY3RvcnksIG1nbXQsCisgICAgICAgIGV4cGVyaW1lbnRhbCwgcHJpdmF0ZSwgZW50ZXJwcmlzZXMsCisgICAgICAgIE9CSkVDVC1UWVBFLCBPYmplY3ROYW1lLCBPYmplY3RTeW50YXgsIFNpbXBsZVN5bnRheCwKKyAgICAgICAgQXBwbGljYXRpb25TeW50YXgsIE5ldHdvcmtBZGRyZXNzLCBJcEFkZHJlc3MsCisgICAgICAgIENvdW50ZXIsIEdhdWdlLCBUaW1lVGlja3MsIE9wYXF1ZTsKKworIC0tIHRoZSBwYXRoIHRvIHRoZSByb290CisKKyBpbnRlcm5ldCAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGlzbyBvcmcoMykgZG9kKDYpIDEgfQorCisgZGlyZWN0b3J5ICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpbnRlcm5ldCAxIH0KKworIG1nbXQgICAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgaW50ZXJuZXQgMiB9CisKKyBleHBlcmltZW50YWwgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGludGVybmV0IDMgfQorCisgcHJpdmF0ZSAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpbnRlcm5ldCA0IH0KKyBlbnRlcnByaXNlcyAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IHByaXZhdGUgMSB9CisKKworIC0tIGRlZmluaXRpb24gb2Ygb2JqZWN0IHR5cGVzCisKKyBPQkpFQ1QtVFlQRSBNQUNSTyA6Oj0KKyBCRUdJTgorICAgICBUWVBFIE5PVEFUSU9OIDo6PSAiU1lOVEFYIiB0eXBlIChUWVBFIE9iamVjdFN5bnRheCkKKyAgICAgICAgICAgICAgICAgICAgICAgIkFDQ0VTUyIgQWNjZXNzCisgICAgICAgICAgICAgICAgICAgICAgICJTVEFUVVMiIFN0YXR1cworICAgICBWQUxVRSBOT1RBVElPTiA6Oj0gdmFsdWUgKFZBTFVFIE9iamVjdE5hbWUpCisKKyAgICAgQWNjZXNzIDo6PSAicmVhZC1vbmx5IgorICAgICAgICAgICAgICAgICAgICAgfCAicmVhZC13cml0ZSIKKyAgICAgICAgICAgICAgICAgICAgIHwgIndyaXRlLW9ubHkiCisgICAgICAgICAgICAgICAgICAgICB8ICJub3QtYWNjZXNzaWJsZSIKKyAgICAgU3RhdHVzIDo6PSAibWFuZGF0b3J5IgorICAgICAgICAgICAgICAgICAgICAgfCAib3B0aW9uYWwiCisgICAgICAgICAgICAgICAgICAgICB8ICJvYnNvbGV0ZSIKKyBFTkQKKworICAgIC0tIG5hbWVzIG9mIG9iamVjdHMgaW4gdGhlIE1JQgorCisgICAgT2JqZWN0TmFtZSA6Oj0KKyAgICAgICAgT0JKRUNUIElERU5USUZJRVIKKworCisKKyAgICAtLSBzeW50YXggb2Ygb2JqZWN0cyBpbiB0aGUgTUlCCisKKyAgICBPYmplY3RTeW50YXggOjo9CisgICAgICAgIENIT0lDRSB7CisgICAgICAgICAgICBzaW1wbGUKKyAgICAgICAgICAgICAgICBTaW1wbGVTeW50YXgsCisKKyAgICAtLSBub3RlIHRoYXQgc2ltcGxlIFNFUVVFTkNFcyBhcmUgbm90IGRpcmVjdGx5CisgICAgLS0gbWVudGlvbmVkIGhlcmUgdG8ga2VlcCB0aGluZ3Mgc2ltcGxlIChpLmUuLAorICAgIC0tIHByZXZlbnQgbWlzLXVzZSkuICBIb3dldmVyLCBhcHBsaWNhdGlvbi13aWRlCisgICAgLS0gdHlwZXMgd2hpY2ggYXJlIElNUExJQ0lUbHkgZW5jb2RlZCBzaW1wbGUKKyAgICAtLSBTRVFVRU5DRXMgbWF5IGFwcGVhciBpbiB0aGUgZm9sbG93aW5nIENIT0lDRQorCisgICAgICAgICAgICAgICBhcHBsaWNhdGlvbi13aWRlCisgICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb25TeW50YXgKKyAgICAgICAgICAgfQorCisgICAgICAgU2ltcGxlU3ludGF4IDo6PQorICAgICAgICAgICBDSE9JQ0UgeworICAgICAgICAgICAgICAgbnVtYmVyCisgICAgICAgICAgICAgICAgICAgSU5URUdFUiwKKworICAgICAgICAgICAgICAgc3RyaW5nCisgICAgICAgICAgICAgICAgICAgT0NURVQgU1RSSU5HLAorCisgICAgICAgICAgICAgICBvYmplY3QKKyAgICAgICAgICAgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiwKKworICAgICAgICAgICAgICAgZW1wdHkKKyAgICAgICAgICAgICAgICAgICBOVUxMCisgICAgICAgICAgIH0KKworICAgICAgIEFwcGxpY2F0aW9uU3ludGF4IDo6PQorICAgICAgICAgICBDSE9JQ0UgeworICAgICAgICAgICAgICAgYWRkcmVzcworICAgICAgICAgICAgICAgICAgIE5ldHdvcmtBZGRyZXNzLAorCisgICAgICAgICAgICAgICBjb3VudGVyCisgICAgICAgICAgICAgICAgICAgQ291bnRlciwKKworICAgICAgICAgICAgICAgZ2F1Z2UKKyAgICAgICAgICAgICAgICAgICBHYXVnZSwKKworICAgICAgICAgICAgICAgdGlja3MKKyAgICAgICAgICAgICAgICAgICBUaW1lVGlja3MsCisKKyAgICAgICAgICAgICAgIGFyYml0cmFyeQorICAgICAgICAgICAgICAgICAgIE9wYXF1ZQorCisKKyAgICAgICAtLSBvdGhlciBhcHBsaWNhdGlvbi13aWRlIHR5cGVzLCBhcyB0aGV5IGFyZQorICAgICAgIC0tIGRlZmluZWQsIHdpbGwgYmUgYWRkZWQgaGVyZQorICAgICAgICAgICB9CisKKworICAgICAgIC0tIGFwcGxpY2F0aW9uLXdpZGUgdHlwZXMKKworICAgICAgIE5ldHdvcmtBZGRyZXNzIDo6PQorICAgICAgICAgICBDSE9JQ0UgeworICAgICAgICAgICAgICAgaW50ZXJuZXQKKyAgICAgICAgICAgICAgICAgICBJcEFkZHJlc3MKKyAgICAgICAgICAgfQorCisgICAgICAgSXBBZGRyZXNzIDo6PQorICAgICAgICAgICBbQVBQTElDQVRJT04gMF0gICAgICAgICAgLS0gaW4gbmV0d29yay1ieXRlIG9yZGVyCisgICAgICAgICAgICAgICBJTVBMSUNJVCBPQ1RFVCBTVFJJTkcgKFNJWkUgKDQpKQorCisgICAgICAgQ291bnRlciA6Oj0KKyAgICAgICAgICAgW0FQUExJQ0FUSU9OIDFdCisgICAgICAgICAgICAgICBJTVBMSUNJVCBJTlRFR0VSICgwLi40Mjk0OTY3Mjk1KQorCisgICAgICAgR2F1Z2UgOjo9CisgICAgICAgICAgIFtBUFBMSUNBVElPTiAyXQorICAgICAgICAgICAgICAgSU1QTElDSVQgSU5URUdFUiAoMC4uNDI5NDk2NzI5NSkKKworICAgICAgIFRpbWVUaWNrcyA6Oj0KKyAgICAgICAgICAgW0FQUExJQ0FUSU9OIDNdCisgICAgICAgICAgICAgICBJTVBMSUNJVCBJTlRFR0VSCisKKyAgICAgICBPcGFxdWUgOjo9CisgICAgICAgICAgIFtBUFBMSUNBVElPTiA0XSAgICAgICAgICAtLSBhcmJpdHJhcnkgQVNOLjEgdmFsdWUsCisgICAgICAgICAgICAgICBJTVBMSUNJVCBPQ1RFVCBTVFJJTkcgICAtLSAgICJkb3VibGUtd3JhcHBlZCIKKworICAgICAgIEVORApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1JGQzExNTUtU01JIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1JGQzExNTUtU01JCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2YzNiZjYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvUkZDMTE1NS1TTUkKQEAgLTAsMCArMSwxMjkgQEAKK1JGQzExNTUtU01JIERFRklOSVRJT05TIDo6PSBCRUdJTgorCitFWFBPUlRTIC0tIEVWRVJZVEhJTkcKKyAgICAgICAgaW50ZXJuZXQsIGRpcmVjdG9yeSwgbWdtdCwKKyAgICAgICAgZXhwZXJpbWVudGFsLCBwcml2YXRlLCBlbnRlcnByaXNlcywKKyAgICAgICAgT0JKRUNULVRZUEUsIE9iamVjdE5hbWUsIE9iamVjdFN5bnRheCwgU2ltcGxlU3ludGF4LAorICAgICAgICBBcHBsaWNhdGlvblN5bnRheCwgTmV0d29ya0FkZHJlc3MsIElwQWRkcmVzcywKKyAgICAgICAgQ291bnRlciwgR2F1Z2UsIFRpbWVUaWNrcywgT3BhcXVlOworCisgLS0gdGhlIHBhdGggdG8gdGhlIHJvb3QKKworIGludGVybmV0ICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgaXNvIG9yZygzKSBkb2QoNikgMSB9CisKKyBkaXJlY3RvcnkgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGludGVybmV0IDEgfQorCisgbWdtdCAgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBpbnRlcm5ldCAyIH0KKworIGV4cGVyaW1lbnRhbCAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgaW50ZXJuZXQgMyB9CisKKyBwcml2YXRlICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGludGVybmV0IDQgfQorIGVudGVycHJpc2VzICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgcHJpdmF0ZSAxIH0KKworCisgLS0gZGVmaW5pdGlvbiBvZiBvYmplY3QgdHlwZXMKKworIE9CSkVDVC1UWVBFIE1BQ1JPIDo6PQorIEJFR0lOCisgICAgIFRZUEUgTk9UQVRJT04gOjo9ICJTWU5UQVgiIHR5cGUgKFRZUEUgT2JqZWN0U3ludGF4KQorICAgICAgICAgICAgICAgICAgICAgICAiQUNDRVNTIiBBY2Nlc3MKKyAgICAgICAgICAgICAgICAgICAgICAgIlNUQVRVUyIgU3RhdHVzCisgICAgIFZBTFVFIE5PVEFUSU9OIDo6PSB2YWx1ZSAoVkFMVUUgT2JqZWN0TmFtZSkKKworICAgICBBY2Nlc3MgOjo9ICJyZWFkLW9ubHkiCisgICAgICAgICAgICAgICAgICAgICB8ICJyZWFkLXdyaXRlIgorICAgICAgICAgICAgICAgICAgICAgfCAid3JpdGUtb25seSIKKyAgICAgICAgICAgICAgICAgICAgIHwgIm5vdC1hY2Nlc3NpYmxlIgorICAgICBTdGF0dXMgOjo9ICJtYW5kYXRvcnkiCisgICAgICAgICAgICAgICAgICAgICB8ICJvcHRpb25hbCIKKyAgICAgICAgICAgICAgICAgICAgIHwgIm9ic29sZXRlIgorIEVORAorCisgICAgLS0gbmFtZXMgb2Ygb2JqZWN0cyBpbiB0aGUgTUlCCisKKyAgICBPYmplY3ROYW1lIDo6PQorICAgICAgICBPQkpFQ1QgSURFTlRJRklFUgorCisgICAgLS0gc3ludGF4IG9mIG9iamVjdHMgaW4gdGhlIE1JQgorCisgICAgT2JqZWN0U3ludGF4IDo6PQorICAgICAgICBDSE9JQ0UgeworICAgICAgICAgICAgc2ltcGxlCisgICAgICAgICAgICAgICAgU2ltcGxlU3ludGF4LAorCisgICAgLS0gbm90ZSB0aGF0IHNpbXBsZSBTRVFVRU5DRXMgYXJlIG5vdCBkaXJlY3RseQorICAgIC0tIG1lbnRpb25lZCBoZXJlIHRvIGtlZXAgdGhpbmdzIHNpbXBsZSAoaS5lLiwKKyAgICAtLSBwcmV2ZW50IG1pcy11c2UpLiAgSG93ZXZlciwgYXBwbGljYXRpb24td2lkZQorICAgIC0tIHR5cGVzIHdoaWNoIGFyZSBJTVBMSUNJVGx5IGVuY29kZWQgc2ltcGxlCisgICAgLS0gU0VRVUVOQ0VzIG1heSBhcHBlYXIgaW4gdGhlIGZvbGxvd2luZyBDSE9JQ0UKKworICAgICAgICAgICAgYXBwbGljYXRpb24td2lkZQorICAgICAgICAgICAgICAgIEFwcGxpY2F0aW9uU3ludGF4CisgICAgICAgIH0KKworICAgICAgIFNpbXBsZVN5bnRheCA6Oj0KKyAgICAgICAgICAgQ0hPSUNFIHsKKyAgICAgICAgICAgICAgIG51bWJlcgorICAgICAgICAgICAgICAgICAgIElOVEVHRVIsCisKKyAgICAgICAgICAgICAgIHN0cmluZworICAgICAgICAgICAgICAgICAgIE9DVEVUIFNUUklORywKKworICAgICAgICAgICAgICAgb2JqZWN0CisgICAgICAgICAgICAgICAgICAgT0JKRUNUIElERU5USUZJRVIsCisKKyAgICAgICAgICAgICAgIGVtcHR5CisgICAgICAgICAgICAgICAgICAgTlVMTAorICAgICAgICAgICB9CisKKyAgICAgICBBcHBsaWNhdGlvblN5bnRheCA6Oj0KKyAgICAgICAgICAgQ0hPSUNFIHsKKyAgICAgICAgICAgICAgIGFkZHJlc3MKKyAgICAgICAgICAgICAgICAgICBOZXR3b3JrQWRkcmVzcywKKworICAgICAgICAgICAgICAgY291bnRlcgorICAgICAgICAgICAgICAgICAgIENvdW50ZXIsCisKKyAgICAgICAgICAgICAgIGdhdWdlCisgICAgICAgICAgICAgICAgICAgR2F1Z2UsCisKKyAgICAgICAgICAgICAgIHRpY2tzCisgICAgICAgICAgICAgICAgICAgVGltZVRpY2tzLAorCisgICAgICAgICAgICAgICBhcmJpdHJhcnkKKyAgICAgICAgICAgICAgICAgICBPcGFxdWUKKworICAgICAgIC0tIG90aGVyIGFwcGxpY2F0aW9uLXdpZGUgdHlwZXMsIGFzIHRoZXkgYXJlCisgICAgICAgLS0gZGVmaW5lZCwgd2lsbCBiZSBhZGRlZCBoZXJlCisgICAgICAgICAgIH0KKworCisgICAgICAgLS0gYXBwbGljYXRpb24td2lkZSB0eXBlcworCisgICAgICAgTmV0d29ya0FkZHJlc3MgOjo9CisgICAgICAgICAgIENIT0lDRSB7CisgICAgICAgICAgICAgICBpbnRlcm5ldAorICAgICAgICAgICAgICAgICAgIElwQWRkcmVzcworICAgICAgICAgICB9CisKKyAgICAgICBJcEFkZHJlc3MgOjo9CisgICAgICAgICAgIFtBUFBMSUNBVElPTiAwXSAgICAgICAgICAtLSBpbiBuZXR3b3JrLWJ5dGUgb3JkZXIKKyAgICAgICAgICAgICAgIElNUExJQ0lUIE9DVEVUIFNUUklORyAoU0laRSAoNCkpCisKKyAgICAgICBDb3VudGVyIDo6PQorICAgICAgICAgICBbQVBQTElDQVRJT04gMV0KKyAgICAgICAgICAgICAgIElNUExJQ0lUIElOVEVHRVIgKDAuLjQyOTQ5NjcyOTUpCisKKyAgICAgICBHYXVnZSA6Oj0KKyAgICAgICAgICAgW0FQUExJQ0FUSU9OIDJdCisgICAgICAgICAgICAgICBJTVBMSUNJVCBJTlRFR0VSICgwLi40Mjk0OTY3Mjk1KQorCisgICAgICAgVGltZVRpY2tzIDo6PQorICAgICAgICAgICBbQVBQTElDQVRJT04gM10KKyAgICAgICAgICAgICAgIElNUExJQ0lUIElOVEVHRVIgKDAuLjQyOTQ5NjcyOTUpCisKKyAgICAgICBPcGFxdWUgOjo9CisgICAgICAgICAgIFtBUFBMSUNBVElPTiA0XSAgICAgICAgICAtLSBhcmJpdHJhcnkgQVNOLjEgdmFsdWUsCisgICAgICAgICAgICAgICBJTVBMSUNJVCBPQ1RFVCBTVFJJTkcgICAtLSAgICJkb3VibGUtd3JhcHBlZCIKKworICAgICAgIEVORApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1JGQzExNTgtTUlCIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1JGQzExNTgtTUlCCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhY2YzNGEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvUkZDMTE1OC1NSUIKQEAgLTAsMCArMSwxNDkzIEBACitSRkMxMTU4LU1JQiBERUZJTklUSU9OUyA6Oj0gQkVHSU4KKworSU1QT1JUUworICAgICAgICBtZ210LCBPQkpFQ1QtVFlQRSwgTmV0d29ya0FkZHJlc3MsIElwQWRkcmVzcywKKyAgICAgICAgQ291bnRlciwgR2F1Z2UsIFRpbWVUaWNrcworICAgICAgICAgICAgRlJPTSBSRkMxMTU1LVNNSTsKKworRGlzcGxheVN0cmluZyA6Oj0KKyAgICAgICAgICAgIE9DVEVUIFNUUklORworCittaWItMiAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1nbXQgMSB9ICAgIC0tIE1JQi1JSQorICAgICAgICAgICAtLSAoc2FtZSBwcmVmaXggYXMgTUlCLUkpCisKK3N5c3RlbSAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgMSB9CitpbnRlcmZhY2VzIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDIgfQorYXQgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBtaWItMiAzIH0KK2lwICAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgNCB9CitpY21wICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDUgfQordGNwICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBtaWItMiA2IH0KK3VkcCAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgNyB9CitlZ3AgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDggfQorLS0gY21vdCAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBtaWItMiA5IH0KK3RyYW5zbWlzc2lvbiBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBtaWItMiAxMCB9Citzbm1wICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDExIH0KKworCistLSBvYmplY3QgdHlwZXMKKworLS0gdGhlIFN5c3RlbSBncm91cAorCitzeXNEZXNjciBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIERpc3BsYXlTdHJpbmcgKFNJWkUgKDAuLjI1NSkpCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHN5c3RlbSAxIH0KKworc3lzT2JqZWN0SUQgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBPQkpFQ1QgSURFTlRJRklFUgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBzeXN0ZW0gMiB9CisKK3N5c1VwVGltZSBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIFRpbWVUaWNrcworICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBzeXN0ZW0gMyB9CisKK3N5c0NvbnRhY3QgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBEaXNwbGF5U3RyaW5nIChTSVpFICgwLi4yNTUpKQorICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgc3lzdGVtIDQgfQorCitzeXNOYW1lIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgRGlzcGxheVN0cmluZyAoU0laRSAoMC4uMjU1KSkKKyAgICAgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHN5c3RlbSA1IH0KKworc3lzTG9jYXRpb24gT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBEaXNwbGF5U3RyaW5nIChTSVpFICgwLi4yNTUpKQorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBzeXN0ZW0gNiB9CisKK3N5c1NlcnZpY2VzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUiAoMC4uMTI3KQorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBzeXN0ZW0gNyB9CisKKworLS0gdGhlIEludGVyZmFjZXMgZ3JvdXAKKworaWZOdW1iZXIgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGludGVyZmFjZXMgMSB9CisKKy0tIHRoZSBJbnRlcmZhY2VzIHRhYmxlCisKK2lmVGFibGUgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBTRVFVRU5DRSBPRiBJZkVudHJ5CisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGludGVyZmFjZXMgMiB9CisKK2lmRW50cnkgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJZkVudHJ5CisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlmVGFibGUgMSB9CisKK0lmRW50cnkgOjo9IFNFUVVFTkNFIHsKKyAgICBpZkluZGV4CisgICAgICAgIElOVEVHRVIsCisgICAgaWZEZXNjcgorICAgICAgICBEaXNwbGF5U3RyaW5nLAorICAgIGlmVHlwZQorICAgICAgICBJTlRFR0VSLAorICAgIGlmTXR1CisgICAgICAgIElOVEVHRVIsCisgICAgaWZTcGVlZAorICAgICAgICBHYXVnZSwKKyAgICBpZlBoeXNBZGRyZXNzCisgICAgICAgIE9DVEVUIFNUUklORywKKyAgICBpZkFkbWluU3RhdHVzCisgICAgICAgIElOVEVHRVIsCisgICAgaWZPcGVyU3RhdHVzCisgICAgICAgIElOVEVHRVIsCisgICAgaWZMYXN0Q2hhbmdlCisgICAgICAgIFRpbWVUaWNrcywKKyAgICBpZkluT2N0ZXRzCisgICAgICAgIENvdW50ZXIsCisgICAgaWZJblVjYXN0UGt0cworICAgICAgICBDb3VudGVyLAorICAgIGlmSW5OVWNhc3RQa3RzCisgICAgICAgIENvdW50ZXIsCisgICAgaWZJbkRpc2NhcmRzCisgICAgICAgIENvdW50ZXIsCisgICAgaWZJbkVycm9ycworICAgICAgICBDb3VudGVyLAorICAgIGlmSW5Vbmtub3duUHJvdG9zCisgICAgICAgIENvdW50ZXIsCisgICAgaWZPdXRPY3RldHMKKyAgICAgICAgQ291bnRlciwKKyAgICBpZk91dFVjYXN0UGt0cworICAgICAgICBDb3VudGVyLAorICAgIGlmT3V0TlVjYXN0UGt0cworICAgICAgICBDb3VudGVyLAorICAgIGlmT3V0RGlzY2FyZHMKKyAgICAgICAgQ291bnRlciwKKyAgICBpZk91dEVycm9ycworICAgICAgICBDb3VudGVyLAorICAgIGlmT3V0UUxlbgorICAgICAgICBHYXVnZSwKKyAgICBpZlNwZWNpZmljCisgICAgICAgIE9CSkVDVCBJREVOVElGSUVSCit9CisKK2lmSW5kZXggT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlmRW50cnkgMSB9CisKK2lmRGVzY3IgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBEaXNwbGF5U3RyaW5nIChTSVpFICgwLi4yNTUpKQorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpZkVudHJ5IDIgfQorCitpZlR5cGUgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAgb3RoZXIoMSksICAgICAgICAgICAgIC0tIG5vbmUgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBmb2xsb3dpbmcKKyAgICAgICAgICAgICAgICAgICAgcmVndWxhcjE4MjIoMiksCisgICAgICAgICAgICAgICAgICAgIGhkaDE4MjIoMyksCisgICAgICAgICAgICAgICAgICAgIGRkbi14MjUoNCksCisgICAgICAgICAgICAgICAgICAgIHJmYzg3Ny14MjUoNSksCisgICAgICAgICAgICAgICAgICAgIGV0aGVybmV0LWNzbWFjZCg2KSwKKyAgICAgICAgICAgICAgICAgICAgaXNvODgwMjMtY3NtYWNkKDcpLAorICAgICAgICAgICAgICAgICAgICBpc284ODAyNC10b2tlbkJ1cyg4KSwKKyAgICAgICAgICAgICAgICAgICAgaXNvODgwMjUtdG9rZW5SaW5nKDkpLAorICAgICAgICAgICAgICAgICAgICBpc284ODAyNi1tYW4oMTApLAorICAgICAgICAgICAgICAgICAgICBzdGFyTGFuKDExKSwKKyAgICAgICAgICAgICAgICAgICAgcHJvdGVvbi0xME1iaXQoMTIpLAorICAgICAgICAgICAgICAgICAgICBwcm90ZW9uLTgwTWJpdCgxMyksCisgICAgICAgICAgICAgICAgICAgIGh5cGVyY2hhbm5lbCgxNCksCisgICAgICAgICAgICAgICAgICAgIGZkZGkoMTUpLAorICAgICAgICAgICAgICAgICAgICBsYXBiKDE2KSwKKyAgICAgICAgICAgICAgICAgICAgc2RsYygxNyksCisgICAgICAgICAgICAgICAgICAgIHQxLWNhcnJpZXIoMTgpLAorICAgICAgICAgICAgICAgICAgICBjZXB0KDE5KSwgICAgICAgIC0tIGV1cm9wZWFuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1lcXVpdmFsZW50IG9mIFQtMQorICAgICAgICAgICAgICAgICAgICBiYXNpY0lTRE4oMjApLAorICAgICAgICAgICAgICAgICAgICBwcmltYXJ5SVNETigyMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBwcm9wcmlldGFyeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc2VyaWFsCisgICAgICAgICAgICAgICAgICAgIHByb3BQb2ludFRvUG9pbnRTZXJpYWwoMjIpLAorICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hbFNlcnZlci1hc3luY1BvcnQoMjMpLAorICAgICAgICAgICAgICAgICAgICBzb2Z0d2FyZUxvb3BiYWNrKDI0KSwKKyAgICAgICAgICAgICAgICAgICAgZW9uKDI1KSwgICAgICAgICAgICAgIC0tIENMTlAgb3ZlciBJUAorICAgICAgICAgICAgICAgICAgICBldGhlcm5ldC0zTWJpdCgyNiksCisgICAgICAgICAgICAgICAgICAgIG5zaXAoMjcpLCAgICAgICAgICAgICAtLSBYTlMgb3ZlciBJUAorICAgICAgICAgICAgICAgICAgICBzbGlwKDI4KSAgICAgICAgICAgICAgLS0gZ2VuZXJpYyBTTElQCisgICAgICAgICAgICB9CisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlmRW50cnkgMyB9CisKK2lmTXR1IE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpZkVudHJ5IDQgfQorCitpZlNwZWVkIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgR2F1Z2UKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWZFbnRyeSA1IH0KKworaWZQaHlzQWRkcmVzcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIE9DVEVUIFNUUklORworICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpZkVudHJ5IDYgfQorCitpZkFkbWluU3RhdHVzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgIHVwKDEpLCAgICAgLS0gcmVhZHkgdG8gcGFzcyBwYWNrZXRzCisgICAgICAgICAgICAgICAgICAgIGRvd24oMiksCisgICAgICAgICAgICAgICAgICAgIHRlc3RpbmcoMykgLS0gaW4gc29tZSB0ZXN0IG1vZGUKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpZkVudHJ5IDcgfQorCitpZk9wZXJTdGF0dXMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAgdXAoMSksICAgICAtLSByZWFkeSB0byBwYXNzIHBhY2tldHMKKyAgICAgICAgICAgICAgICAgICAgZG93bigyKSwKKyAgICAgICAgICAgICAgICAgICAgdGVzdGluZygzKSAtLSBpbiBzb21lIHRlc3QgbW9kZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWZFbnRyeSA4IH0KKworaWZMYXN0Q2hhbmdlIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgVGltZVRpY2tzCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlmRW50cnkgOSB9CisKK2lmSW5PY3RldHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlmRW50cnkgMTAgfQorCitpZkluVWNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgaWZFbnRyeSAxMSB9CisKK2lmSW5OVWNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpZkVudHJ5IDEyIH0KKworaWZJbkRpc2NhcmRzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpZkVudHJ5IDEzIH0KKworaWZJbkVycm9ycyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWZFbnRyeSAxNCB9CisKK2lmSW5Vbmtub3duUHJvdG9zIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpZkVudHJ5IDE1IH0KKworaWZPdXRPY3RldHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlmRW50cnkgMTYgfQorCitpZk91dFVjYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWZFbnRyeSAxNyB9CisKK2lmT3V0TlVjYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWZFbnRyeSAxOCB9CisKK2lmT3V0RGlzY2FyZHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlmRW50cnkgMTkgfQorCitpZk91dEVycm9ycyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWZFbnRyeSAyMCB9CisKK2lmT3V0UUxlbiBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIEdhdWdlCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlmRW50cnkgMjEgfQorCitpZlNwZWNpZmljIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgT0JKRUNUIElERU5USUZJRVIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWZFbnRyeSAyMiB9CisKK251bGxTcGVjaWZpYyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyAwIDAgfQorCistLSB0aGUgQWRkcmVzcyBUcmFuc2xhdGlvbiBncm91cCAoZGVwcmVjYXRlZCkKKworYXRUYWJsZSBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIFNFUVVFTkNFIE9GIEF0RW50cnkKKyAgICAgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgICAgIFNUQVRVUyAgZGVwcmVjYXRlZAorICAgICAgICA6Oj0geyBhdCAxIH0KKworYXRFbnRyeSBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIEF0RW50cnkKKyAgICAgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgICAgIFNUQVRVUyAgZGVwcmVjYXRlZAorICAgICAgICA6Oj0geyBhdFRhYmxlIDEgfQorCitBdEVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgYXRJZkluZGV4CisgICAgICAgIElOVEVHRVIsCisgICAgYXRQaHlzQWRkcmVzcworICAgICAgICBPQ1RFVCBTVFJJTkcsCisgICAgYXROZXRBZGRyZXNzCisgICAgICAgIE5ldHdvcmtBZGRyZXNzCit9CisKK2F0SWZJbmRleCBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIKKyAgICAgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgICAgIFNUQVRVUyAgZGVwcmVjYXRlZAorICAgICAgICA6Oj0geyBhdEVudHJ5IDEgfQorCithdFBoeXNBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgT0NURVQgU1RSSU5HCisgICAgICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgICAgICBTVEFUVVMgIGRlcHJlY2F0ZWQKKyAgICAgICAgOjo9IHsgYXRFbnRyeSAyIH0KKworYXROZXRBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgTmV0d29ya0FkZHJlc3MKKyAgICAgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgICAgIFNUQVRVUyAgZGVwcmVjYXRlZAorICAgICAgICA6Oj0geyBhdEVudHJ5IDMgfQorCisKKy0tIHRoZSBJUCBncm91cAorCitpcEZvcndhcmRpbmcgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAgZ2F0ZXdheSgxKSwgLS0gZW50aXR5IGZvcndhcmRzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGRhdGFncmFtcworICAgICAgICAgICAgICAgICAgICBob3N0KDIpICAgICAtLSBlbnRpdHkgZG9lcyBOT1QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gZm9yd2FyZCBkYXRhZ3JhbXMKKyAgICAgICAgICAgICAgICB9CisgICAgICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcCAxIH0KKworaXBEZWZhdWx0VFRMIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUgorICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXAgMiB9CisKK2lwSW5SZWNlaXZlcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXAgMyB9CisKK2lwSW5IZHJFcnJvcnMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlwIDQgfQorCitpcEluQWRkckVycm9ycyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXAgNSB9CisKK2lwRm9yd0RhdGFncmFtcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXAgNiB9CisKK2lwSW5Vbmtub3duUHJvdG9zIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcCA3IH0KKworaXBJbkRpc2NhcmRzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcCA4IH0KKworaXBJbkRlbGl2ZXJzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcCA5IH0KKworaXBPdXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXAgMTAgfQorCitpcE91dERpc2NhcmRzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcCAxMSB9CisKK2lwT3V0Tm9Sb3V0ZXMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlwIDEyIH0KKworaXBSZWFzbVRpbWVvdXQgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlwIDEzIH0KKworaXBSZWFzbVJlcWRzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcCAxNCB9CisKK2lwUmVhc21PS3MgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlwIDE1IH0KKworaXBSZWFzbUZhaWxzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcCAxNiB9CisKK2lwRnJhZ09LcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXAgMTcgfQorCitpcEZyYWdGYWlscyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXAgMTggfQorCitpcEZyYWdDcmVhdGVzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcCAxOSB9CisKKy0tIHRoZSBJUCBJbnRlcmZhY2UgdGFibGUKKworaXBBZGRyVGFibGUgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBTRVFVRU5DRSBPRiBJcEFkZHJFbnRyeQorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcCAyMCB9CisKK2lwQWRkckVudHJ5IE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSXBBZGRyRW50cnkKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBBZGRyVGFibGUgMSB9CisKK0lwQWRkckVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgaXBBZEVudEFkZHIKKyAgICAgICAgSXBBZGRyZXNzLAorICAgIGlwQWRFbnRJZkluZGV4CisgICAgICAgIElOVEVHRVIsCisgICAgaXBBZEVudE5ldE1hc2sKKyAgICAgICAgSXBBZGRyZXNzLAorICAgIGlwQWRFbnRCY2FzdEFkZHIKKyAgICAgICAgSU5URUdFUiwKKyAgICBpcEFkRW50UmVhc21NYXhTaXplCisgICAgICAgIElOVEVHRVIgKDAuLjY1NTM1KQorfQorCitpcEFkRW50QWRkciBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElwQWRkcmVzcworICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgaXBBZGRyRW50cnkgMSB9CisKK2lwQWRFbnRJZkluZGV4IE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgaXBBZGRyRW50cnkgMiB9CisKK2lwQWRFbnROZXRNYXNrIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSXBBZGRyZXNzCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBpcEFkZHJFbnRyeSAzIH0KKworaXBBZEVudEJjYXN0QWRkciBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBBZGRyRW50cnkgNCB9CisKK2lwQWRFbnRSZWFzbU1heFNpemUgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSICgwLi42NTUzNSkKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBBZGRyRW50cnkgNSB9CisKKy0tIHRoZSBJUCBSb3V0aW5nIHRhYmxlCisKK2lwUm91dGluZ1RhYmxlIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgU0VRVUVOQ0UgT0YgSXBSb3V0ZUVudHJ5CisgICAgICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcCAyMSB9CisKK2lwUm91dGVFbnRyeSBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElwUm91dGVFbnRyeQorICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBSb3V0aW5nVGFibGUgMSB9CisKK0lwUm91dGVFbnRyeSA6Oj0gU0VRVUVOQ0UgeworICAgIGlwUm91dGVEZXN0CisgICAgICAgIElwQWRkcmVzcywKKyAgICBpcFJvdXRlSWZJbmRleAorICAgICAgICBJTlRFR0VSLAorICAgIGlwUm91dGVNZXRyaWMxCisgICAgICAgIElOVEVHRVIsCisgICAgaXBSb3V0ZU1ldHJpYzIKKyAgICAgICAgSU5URUdFUiwKKyAgICBpcFJvdXRlTWV0cmljMworICAgICAgICBJTlRFR0VSLAorICAgIGlwUm91dGVNZXRyaWM0CisgICAgICAgIElOVEVHRVIsCisgICAgaXBSb3V0ZU5leHRIb3AKKyAgICAgICAgSXBBZGRyZXNzLAorICAgIGlwUm91dGVUeXBlCisgICAgICAgIElOVEVHRVIsCisgICAgaXBSb3V0ZVByb3RvCisgICAgICAgIElOVEVHRVIsCisgICAgaXBSb3V0ZUFnZQorICAgICAgICBJTlRFR0VSLAorICAgIGlwUm91dGVNYXNrCisgICAgICAgIElwQWRkcmVzcworfQorCitpcFJvdXRlRGVzdCBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElwQWRkcmVzcworICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBSb3V0ZUVudHJ5IDEgfQorCitpcFJvdXRlSWZJbmRleCAgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSCisgICAgICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcFJvdXRlRW50cnkgMiB9CisKK2lwUm91dGVNZXRyaWMxIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUgorICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBSb3V0ZUVudHJ5IDMgfQorCitpcFJvdXRlTWV0cmljMiBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIKKyAgICAgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlwUm91dGVFbnRyeSA0IH0KKworaXBSb3V0ZU1ldHJpYzMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSCisgICAgICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcFJvdXRlRW50cnkgNSB9CisKK2lwUm91dGVNZXRyaWM0IE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUgorICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBSb3V0ZUVudHJ5IDYgfQorCitpcFJvdXRlTmV4dEhvcCBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElwQWRkcmVzcworICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBSb3V0ZUVudHJ5IDcgfQorCitpcFJvdXRlVHlwZSBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgICBvdGhlcigxKSwgICAgLS0gbm9uZSBvZiB0aGUgZm9sbG93aW5nCisKKyAgICAgICAgICAgICAgICAgICAgaW52YWxpZCgyKSwgIC0tIGFuIGludmFsaWRhdGVkIHJvdXRlCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHJvdXRlIHRvIGRpcmVjdGx5CisgICAgICAgICAgICAgICAgICAgIGRpcmVjdCgzKSwgICAtLSBjb25uZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIChzdWItKW5ldHdvcmsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gcm91dGUgdG8gYSBub24tbG9jYWwKKyAgICAgICAgICAgICAgICAgICAgcmVtb3RlKDQpICAgIC0tIGhvc3QvbmV0d29yay8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHN1Yi1uZXR3b3JrCisgICAgICAgICAgICB9CisgICAgICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcFJvdXRlRW50cnkgOCB9CisKK2lwUm91dGVQcm90byBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgICBvdGhlcigxKSwgICAgLS0gbm9uZSBvZiB0aGUgZm9sbG93aW5nCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIG5vbi1wcm90b2NvbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gaW5mb3JtYXRpb24KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gICBlLmcuLCBtYW51YWxseQorICAgICAgICAgICAgICAgICAgICBsb2NhbCgyKSwgICAgLS0gICBjb25maWd1cmVkIGVudHJpZXMKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc2V0IHZpYSBhIG5ldHdvcmsKKyAgICAgICAgICAgICAgICAgICAgbmV0bWdtdCgzKSwgIC0tICAgbWFuYWdlbWVudCBwcm90b2NvbAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBvYnRhaW5lZCB2aWEgSUNNUCwKKyAgICAgICAgICAgICAgICAgICAgaWNtcCg0KSwgICAgIC0tICAgZS5nLiwgUmVkaXJlY3QKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gdGhlIGZvbGxvd2luZyBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIGdhdGV3YXkgcm91dGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gcHJvdG9jb2xzCisgICAgICAgICAgICAgICAgICAgIGVncCg1KSwKKyAgICAgICAgICAgICAgICAgICAgZ2dwKDYpLAorICAgICAgICAgICAgICAgICAgICBoZWxsbyg3KSwKKyAgICAgICAgICAgICAgICAgICAgcmlwKDgpLAorICAgICAgICAgICAgICAgICAgICBpcy1pcyg5KSwKKyAgICAgICAgICAgICAgICAgICAgZXMtaXMoMTApLAorICAgICAgICAgICAgICAgICAgICBjaXNjb0lncnAoMTEpLAorICAgICAgICAgICAgICAgICAgICBiYm5TcGZJZ3AoMTIpLAorICAgICAgICAgICAgICAgICAgICBvc3BmKDEzKSwKKyAgICAgICAgICAgICAgICAgICAgYmdwKDE0KQorICAgICAgICAgICAgfQorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcFJvdXRlRW50cnkgOSB9CisKK2lwUm91dGVBZ2UgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSCisgICAgICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpcFJvdXRlRW50cnkgMTAgfQorCitpcFJvdXRlTWFzayBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElwQWRkcmVzcworICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBSb3V0ZUVudHJ5IDExIH0KKworLS0gdGhlIElQIEFkZHJlc3MgVHJhbnNsYXRpb24gdGFibGVzCisKK2lwTmV0VG9NZWRpYVRhYmxlIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgU0VRVUVOQ0UgT0YgSXBOZXRUb01lZGlhRW50cnkKKyAgICAgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlwIDIyIH0KKworaXBOZXRUb01lZGlhRW50cnkgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJcE5ldFRvTWVkaWFFbnRyeQorICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBOZXRUb01lZGlhVGFibGUgMSB9CisKK0lwTmV0VG9NZWRpYUVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgaXBOZXRUb01lZGlhSWZJbmRleAorICAgICAgICBJTlRFR0VSLAorICAgIGlwTmV0VG9NZWRpYVBoeXNBZGRyZXNzCisgICAgICAgIE9DVEVUIFNUUklORywKKyAgICBpcE5ldFRvTWVkaWFOZXRBZGRyZXNzCisgICAgICAgIElwQWRkcmVzcywKKyAgICBpcE5ldFRvTWVkaWFUeXBlCisgICAgICAgIElOVEVHRVIKK30KKworaXBOZXRUb01lZGlhSWZJbmRleCBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIKKyAgICAgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlwTmV0VG9NZWRpYUVudHJ5IDEgfQorCitpcE5ldFRvTWVkaWFQaHlzQWRkcmVzcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIE9DVEVUIFNUUklORworICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaXBOZXRUb01lZGlhRW50cnkgMiB9CisKK2lwTmV0VG9NZWRpYU5ldEFkZHJlc3MgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJcEFkZHJlc3MKKyAgICAgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlwTmV0VG9NZWRpYUVudHJ5IDMgfQorCitpcE5ldFRvTWVkaWFUeXBlIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgIG90aGVyKDEpLCAgIC0tIG5vbmUgb2YgdGhlIGZvbGxvd2luZworCisgICAgICAgICAgICAgICAgICAgIGludmFsaWQoMiksIC0tIGFuIGludmFsaWRhdGVkIG1hcHBpbmcKKyAgICAgICAgICAgICAgICAgICAgZHluYW1pYygzKSwgLS0gY29ubmVjdGVkIChzdWItKW5ldHdvcmsKKworICAgICAgICAgICAgICAgICAgICBzdGF0aWMoNCkKKyAgICAgICAgICAgIH0KKyAgICAgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGlwTmV0VG9NZWRpYUVudHJ5IDQgfQorCistLSB0aGUgSUNNUCBncm91cAorCitpY21wSW5Nc2dzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpY21wIDEgfQorCitpY21wSW5FcnJvcnMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGljbXAgMiB9CisKK2ljbXBJbkRlc3RVbnJlYWNocyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCAzIH0KKworaWNtcEluVGltZUV4Y2RzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpY21wIDQgfQorCitpY21wSW5QYXJtUHJvYnMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGljbXAgNSB9CisKK2ljbXBJblNyY1F1ZW5jaHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGljbXAgNiB9CisKK2ljbXBJblJlZGlyZWN0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCA3IH0KKworaWNtcEluRWNob3MgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGljbXAgOCB9CisKK2ljbXBJbkVjaG9SZXBzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpY21wIDkgfQorCitpY21wSW5UaW1lc3RhbXBzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpY21wIDEwIH0KKworaWNtcEluVGltZXN0YW1wUmVwcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCAxMSB9CisKK2ljbXBJbkFkZHJNYXNrcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCAxMiB9CisKK2ljbXBJbkFkZHJNYXNrUmVwcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCAxMyB9CisKK2ljbXBPdXRNc2dzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpY21wIDE0IH0KKworaWNtcE91dEVycm9ycyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCAxNSB9CisKK2ljbXBPdXREZXN0VW5yZWFjaHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGljbXAgMTYgfQorCitpY21wT3V0VGltZUV4Y2RzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpY21wIDE3IH0KKworaWNtcE91dFBhcm1Qcm9icyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCAxOCB9CisKK2ljbXBPdXRTcmNRdWVuY2hzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpY21wIDE5IH0KKworaWNtcE91dFJlZGlyZWN0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCAyMCB9CisKK2ljbXBPdXRFY2hvcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCAyMSB9CisKK2ljbXBPdXRFY2hvUmVwcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCAyMiB9CisKK2ljbXBPdXRUaW1lc3RhbXBzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpY21wIDIzIH0KKworaWNtcE91dFRpbWVzdGFtcFJlcHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGljbXAgMjQgfQorCitpY21wT3V0QWRkck1hc2tzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBpY21wIDI1IH0KKworaWNtcE91dEFkZHJNYXNrUmVwcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgaWNtcCAyNiB9CisKKworLS0gdGhlIFRDUCBncm91cAorCit0Y3BSdG9BbGdvcml0aG0gT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAgb3RoZXIoMSksICAgIC0tIG5vbmUgb2YgdGhlIGZvbGxvd2luZworICAgICAgICAgICAgICAgICAgICBjb25zdGFudCgyKSwgLS0gYSBjb25zdGFudCBydG8KKyAgICAgICAgICAgICAgICAgICAgcnNyZSgzKSwgICAgIC0tIE1JTC1TVEQtMTc3OCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIEFwcGVuZGl4IEIKKyAgICAgICAgICAgICAgICAgICAgdmFuaig0KSAgICAgIC0tIFZhbiBKYWNvYnNvbidzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBhbGdvcml0aG0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHRjcCAxIH0KKwordGNwUnRvTWluIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyB0Y3AgMiB9CisKK3RjcFJ0b01heCBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgdGNwIDMgfQorCit0Y3BNYXhDb25uIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyB0Y3AgNCB9CisKK3RjcEFjdGl2ZU9wZW5zIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyB0Y3AgNSB9CisKK3RjcFBhc3NpdmVPcGVucyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgdGNwIDYgfQorCit0Y3BBdHRlbXB0RmFpbHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHRjcCA3IH0KKwordGNwRXN0YWJSZXNldHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHRjcCA4IH0KKwordGNwQ3VyckVzdGFiIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgR2F1Z2UKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgdGNwIDkgfQorCit0Y3BJblNlZ3MgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHRjcCAxMCB9CisKK3RjcE91dFNlZ3MgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHRjcCAxMSB9CisKK3RjcFJldHJhbnNTZWdzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyB0Y3AgMTIgfQorCistLSB0aGUgVENQIGNvbm5lY3Rpb25zIHRhYmxlCisKK3RjcENvbm5UYWJsZSBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIFNFUVVFTkNFIE9GIFRjcENvbm5FbnRyeQorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyB0Y3AgMTMgfQorCit0Y3BDb25uRW50cnkgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBUY3BDb25uRW50cnkKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgdGNwQ29ublRhYmxlIDEgfQorCitUY3BDb25uRW50cnkgOjo9IFNFUVVFTkNFIHsKKyAgICB0Y3BDb25uU3RhdGUKKyAgICAgICAgSU5URUdFUiwKKyAgICB0Y3BDb25uTG9jYWxBZGRyZXNzCisgICAgICAgIElwQWRkcmVzcywKKyAgICB0Y3BDb25uTG9jYWxQb3J0CisgICAgICAgIElOVEVHRVIgKDAuLjY1NTM1KSwKKyAgICB0Y3BDb25uUmVtQWRkcmVzcworICAgICAgICBJcEFkZHJlc3MsCisgICAgdGNwQ29ublJlbVBvcnQKKyAgICAgICAgSU5URUdFUiAoMC4uNjU1MzUpCit9CisKK3RjcENvbm5TdGF0ZSBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgICBjbG9zZWQoMSksCisgICAgICAgICAgICAgICAgICAgIGxpc3RlbigyKSwKKyAgICAgICAgICAgICAgICAgICAgc3luU2VudCgzKSwKKyAgICAgICAgICAgICAgICAgICAgc3luUmVjZWl2ZWQoNCksCisgICAgICAgICAgICAgICAgICAgIGVzdGFibGlzaGVkKDUpLAorICAgICAgICAgICAgICAgICAgICBmaW5XYWl0MSg2KSwKKyAgICAgICAgICAgICAgICAgICAgZmluV2FpdDIoNyksCisgICAgICAgICAgICAgICAgICAgIGNsb3NlV2FpdCg4KSwKKyAgICAgICAgICAgICAgICAgICAgbGFzdEFjayg5KSwKKyAgICAgICAgICAgICAgICAgICAgY2xvc2luZygxMCksCisgICAgICAgICAgICAgICAgICAgIHRpbWVXYWl0KDExKQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgdGNwQ29ubkVudHJ5IDEgfQorCit0Y3BDb25uTG9jYWxBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSXBBZGRyZXNzCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHRjcENvbm5FbnRyeSAyIH0KKwordGNwQ29ubkxvY2FsUG9ydCBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIgKDAuLjY1NTM1KQorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyB0Y3BDb25uRW50cnkgMyB9CisKK3RjcENvbm5SZW1BZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSXBBZGRyZXNzCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHRjcENvbm5FbnRyeSA0IH0KKwordGNwQ29ublJlbVBvcnQgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSICgwLi42NTUzNSkKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgdGNwQ29ubkVudHJ5IDUgfQorCistLSBhZGRpdGlvbmFsIFRDUCB2YXJpYWJsZXMKKwordGNwSW5FcnJzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyB0Y3AgMTQgfQorCit0Y3BPdXRSc3RzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyB0Y3AgMTUgfQorCisKKy0tIHRoZSBVRFAgZ3JvdXAKKwordWRwSW5EYXRhZ3JhbXMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHVkcCAxIH0KKwordWRwTm9Qb3J0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgdWRwIDIgfQorCit1ZHBJbkVycm9ycyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgdWRwIDMgfQorCit1ZHBPdXREYXRhZ3JhbXMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHVkcCA0IH0KKworLS0gdGhlIFVEUCBsaXN0ZW5lciB0YWJsZQorCit1ZHBUYWJsZSBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIFNFUVVFTkNFIE9GIFVkcEVudHJ5CisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHVkcCA1IH0KKwordWRwRW50cnkgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBVZHBFbnRyeQorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyB1ZHBUYWJsZSAxIH0KKworVWRwRW50cnkgOjo9IFNFUVVFTkNFIHsKKyAgICB1ZHBMb2NhbEFkZHJlc3MKKyAgICAgICAgSXBBZGRyZXNzLAorICAgIHVkcExvY2FsUG9ydAorICAgICAgICBJTlRFR0VSICgwLi42NTUzNSkKK30KKwordWRwTG9jYWxBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSXBBZGRyZXNzCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IHVkcEVudHJ5IDEgfQorCit1ZHBMb2NhbFBvcnQgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJTlRFR0VSICgwLi42NTUzNSkKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgdWRwRW50cnkgMiB9CisKKy0tIHRoZSBFR1AgZ3JvdXAKKworZWdwSW5Nc2dzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBlZ3AgMSB9CisKK2VncEluRXJyb3JzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBlZ3AgMiB9CisKK2VncE91dE1zZ3MgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGVncCAzIH0KKworZWdwT3V0RXJyb3JzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBlZ3AgNCB9CisKKy0tIHRoZSBFR1AgTmVpZ2hib3IgdGFibGUKKworZWdwTmVpZ2hUYWJsZSBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIFNFUVVFTkNFIE9GIEVncE5laWdoRW50cnkKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwIDUgfQorCitlZ3BOZWlnaEVudHJ5IE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgRWdwTmVpZ2hFbnRyeQorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBlZ3BOZWlnaFRhYmxlIDEgfQorCitFZ3BOZWlnaEVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgZWdwTmVpZ2hTdGF0ZQorICAgICAgICBJTlRFR0VSLAorICAgIGVncE5laWdoQWRkcgorICAgICAgICBJcEFkZHJlc3MsCisgICAgZWdwTmVpZ2hBcworICAgICAgICBJTlRFR0VSLAorICAgIGVncE5laWdoSW5Nc2dzCisgICAgICAgIENvdW50ZXIsCisgICAgZWdwTmVpZ2hJbkVycnMKKyAgICAgICAgQ291bnRlciwKKyAgICBlZ3BOZWlnaE91dE1zZ3MKKyAgICAgICAgQ291bnRlciwKKyAgICBlZ3BOZWlnaE91dEVycnMKKyAgICAgICAgQ291bnRlciwKKyAgICBlZ3BOZWlnaEluRXJyTXNncworICAgICAgICBDb3VudGVyLAorICAgIGVncE5laWdoT3V0RXJyTXNncworICAgICAgICBDb3VudGVyLAorICAgIGVncE5laWdoU3RhdGVVcHMKKyAgICAgICAgQ291bnRlciwKKyAgICBlZ3BOZWlnaFN0YXRlRG93bnMKKyAgICAgICAgQ291bnRlciwKKyAgICBlZ3BOZWlnaEludGVydmFsSGVsbG8KKyAgICAgICAgSU5URUdFUiwKKyAgICBlZ3BOZWlnaEludGVydmFsUG9sbAorICAgICAgICBJTlRFR0VSLAorICAgIGVncE5laWdoTW9kZQorICAgICAgICBJTlRFR0VSLAorICAgIGVncE5laWdoRXZlbnRUcmlnZ2VyCisgICAgICAgIElOVEVHRVIKK30KKworZWdwTmVpZ2hTdGF0ZSBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgICBpZGxlKDEpLAorICAgICAgICAgICAgICAgICAgICBhY3F1aXNpdGlvbigyKSwKKyAgICAgICAgICAgICAgICAgICAgZG93bigzKSwKKyAgICAgICAgICAgICAgICAgICAgdXAoNCksCisgICAgICAgICAgICAgICAgICAgIGNlYXNlKDUpCisgICAgICAgICAgICAgICAgfQorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDEgfQorCitlZ3BOZWlnaEFkZHIgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBJcEFkZHJlc3MKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSAyIH0KKworZWdwTmVpZ2hBcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSAzIH0KKworZWdwTmVpZ2hJbk1zZ3MgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGVncE5laWdoRW50cnkgNCB9CisKK2VncE5laWdoSW5FcnJzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDUgfQorCitlZ3BOZWlnaE91dE1zZ3MgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGVncE5laWdoRW50cnkgNiB9CisKK2VncE5laWdoT3V0RXJycyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSA3IH0KKworZWdwTmVpZ2hJbkVyck1zZ3MgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSB7IGVncE5laWdoRW50cnkgOCB9CisKK2VncE5laWdoT3V0RXJyTXNncyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSA5IH0KKworZWdwTmVpZ2hTdGF0ZVVwcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSAxMCB9CisKK2VncE5laWdoU3RhdGVEb3ducyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSAxMSB9CisKK2VncE5laWdoSW50ZXJ2YWxIZWxsbyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSAxMiB9CisKK2VncE5laWdoSW50ZXJ2YWxQb2xsIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDEzIH0KKworZWdwTmVpZ2hNb2RlIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSgxKSwKKyAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZSgyKQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSAxNCB9CisKK2VncE5laWdoRXZlbnRUcmlnZ2VyIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0KDEpLAorICAgICAgICAgICAgICAgICAgICBzdG9wKDIpCisgICAgICAgICAgICAgICAgfQorICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSAxNSB9CisKKy0tIGFkZGl0aW9uYWwgRUdQIHZhcmlhYmxlcworCitlZ3BBcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIElOVEVHRVIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9IHsgZWdwIDYgfQorCisKKy0tIHRoZSBUcmFuc21pc3Npb24gZ3JvdXAgKGVtcHR5IGF0IHByZXNlbnQpCisKKy0tIHRoZSBTTk1QIGdyb3VwCisKK3NubXBJblBrdHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDEgfQorCitzbm1wT3V0UGt0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9ICB7IHNubXAgMiB9CisKK3NubXBJbkJhZFZlcnNpb25zIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgc25tcCAzIH0KKworc25tcEluQmFkQ29tbXVuaXR5TmFtZXMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDQgfQorCitzbm1wSW5CYWRDb21tdW5pdHlVc2VzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgc25tcCA1IH0KKworc25tcEluQVNOUGFyc2VFcnJzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgc25tcCA2IH0KKworc25tcEluQmFkVHlwZXMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDcgfQorCitzbm1wSW5Ub29CaWdzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgc25tcCA4IH0KKworc25tcEluTm9TdWNoTmFtZXMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDkgfQorCitzbm1wSW5CYWRWYWx1ZXMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDEwIH0KKworc25tcEluUmVhZE9ubHlzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgc25tcCAxMSB9CisKK3NubXBJbkdlbkVycnMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDEyIH0KKworc25tcEluVG90YWxSZXFWYXJzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgc25tcCAxMyB9CisKK3NubXBJblRvdGFsU2V0VmFycyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9ICB7IHNubXAgMTQgfQorCitzbm1wSW5HZXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9ICB7IHNubXAgMTUgfQorCitzbm1wSW5HZXROZXh0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9ICB7IHNubXAgMTYgfQorCitzbm1wSW5TZXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9ICB7IHNubXAgMTcgfQorCitzbm1wSW5HZXRSZXNwb25zZXMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDE4IH0KKworc25tcEluVHJhcHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDE5IH0KKworc25tcE91dFRvb0JpZ3MgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDIwIH0KKworc25tcE91dE5vU3VjaE5hbWVzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgc25tcCAyMSB9CisKK3NubXBPdXRCYWRWYWx1ZXMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDIyIH0KKworc25tcE91dFJlYWRPbmx5cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9ICB7IHNubXAgMjMgfQorCitzbm1wT3V0R2VuRXJycyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9ICB7IHNubXAgMjQgfQorCitzbm1wT3V0R2V0UmVxdWVzdHMgT0JKRUNULVRZUEUKKyAgICAgICAgU1lOVEFYICBDb3VudGVyCisgICAgICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgICAgIDo6PSAgeyBzbm1wIDI1IH0KKworc25tcE91dEdldE5leHRzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgc25tcCAyNiB9CisKK3NubXBPdXRTZXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9ICB7IHNubXAgMjcgfQorCitzbm1wT3V0R2V0UmVzcG9uc2VzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgQ291bnRlcgorICAgICAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgICAgICA6Oj0gIHsgc25tcCAyOCB9CisKK3NubXBPdXRUcmFwcyBPQkpFQ1QtVFlQRQorICAgICAgICBTWU5UQVggIENvdW50ZXIKKyAgICAgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9ICB7IHNubXAgMjkgfQorCitzbm1wRW5hYmxlQXV0aFRyYXBzIE9CSkVDVC1UWVBFCisgICAgICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQoMSksCisgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkKDIpCisgICAgICAgICAgICAgICAgfQorICAgICAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICAgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICAgICAgOjo9ICB7IHNubXAgMzAgfQorCitFTkQKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9SRkMxMjEzLU1JQiBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9SRkMxMjEzLU1JQgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTg0OWRlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1JGQzEyMTMtTUlCCkBAIC0wLDAgKzEsMjYyMSBAQAorUkZDMTIxMy1NSUIgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKK0lNUE9SVFMKKyAgICAgICAgbWdtdCwgTmV0d29ya0FkZHJlc3MsIElwQWRkcmVzcywgQ291bnRlciwgR2F1Z2UsCisgICAgICAgICAgICAgICAgVGltZVRpY2tzCisgICAgICAgICAgICBGUk9NIFJGQzExNTUtU01JCisgICAgICAgIE9CSkVDVC1UWVBFCisgICAgICAgICAgICAgICAgRlJPTSBSRkMtMTIxMjsKKworLS0gIFRoaXMgTUlCIG1vZHVsZSB1c2VzIHRoZSBleHRlbmRlZCBPQkpFQ1QtVFlQRSBtYWNybyBhcworLS0gIGRlZmluZWQgaW4gWzE0XTsKKworCistLSAgTUlCLUlJIChzYW1lIHByZWZpeCBhcyBNSUItSSkKKworbWliLTIgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBtZ210IDEgfQorCistLSB0ZXh0dWFsIGNvbnZlbnRpb25zCisKK0Rpc3BsYXlTdHJpbmcgOjo9CisgICAgT0NURVQgU1RSSU5HCistLSBUaGlzIGRhdGEgdHlwZSBpcyB1c2VkIHRvIG1vZGVsIHRleHR1YWwgaW5mb3JtYXRpb24gdGFrZW4KKy0tIGZyb20gdGhlIE5WVCBBU0NJSSBjaGFyYWN0ZXIgc2V0LiAgQnkgY29udmVudGlvbiwgb2JqZWN0cworLS0gd2l0aCB0aGlzIHN5bnRheCBhcmUgZGVjbGFyZWQgYXMgaGF2aW5nCisKKy0tCistLSAgICAgIFNJWkUgKDAuLjI1NSkKKworUGh5c0FkZHJlc3MgOjo9CisgICAgT0NURVQgU1RSSU5HCistLSBUaGlzIGRhdGEgdHlwZSBpcyB1c2VkIHRvIG1vZGVsIG1lZGlhIGFkZHJlc3Nlcy4gIEZvciBtYW55CistLSB0eXBlcyBvZiBtZWRpYSwgdGhpcyB3aWxsIGJlIGluIGEgYmluYXJ5IHJlcHJlc2VudGF0aW9uLgorLS0gRm9yIGV4YW1wbGUsIGFuIGV0aGVybmV0IGFkZHJlc3Mgd291bGQgYmUgcmVwcmVzZW50ZWQgYXMKKy0tIGEgc3RyaW5nIG9mIDYgb2N0ZXRzLgorCisKKy0tIGdyb3VwcyBpbiBNSUItSUkKKworc3lzdGVtICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDEgfQorCitpbnRlcmZhY2VzICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgMiB9CisKK2F0ICAgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBtaWItMiAzIH0KKworaXAgICAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDQgfQorCitpY21wICAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgNSB9CisKK3RjcCAgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBtaWItMiA2IH0KKwordWRwICAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDcgfQorCitlZ3AgICAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgOCB9CisKKy0tIGhpc3RvcmljYWwgKHNvbWUgc2F5IGh5c3RlcmljYWwpCistLSBjbW90ICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgOSB9CisKK3RyYW5zbWlzc2lvbiBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBtaWItMiAxMCB9CisKK3NubXAgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBtaWItMiAxMSB9CisKKworLS0gdGhlIFN5c3RlbSBncm91cAorCistLSBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgU3lzdGVtIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgYWxsCistLSBzeXN0ZW1zLiAgSWYgYW4gYWdlbnQgaXMgbm90IGNvbmZpZ3VyZWQgdG8gaGF2ZSBhIHZhbHVlCistLSBmb3IgYW55IG9mIHRoZXNlIHZhcmlhYmxlcywgYSBzdHJpbmcgb2YgbGVuZ3RoIDAgaXMKKy0tIHJldHVybmVkLgorCitzeXNEZXNjciBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgRGlzcGxheVN0cmluZyAoU0laRSAoMC4uMjU1KSkKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIHRleHR1YWwgZGVzY3JpcHRpb24gb2YgdGhlIGVudGl0eS4gIFRoaXMgdmFsdWUKKyAgICAgICAgICAgIHNob3VsZCBpbmNsdWRlIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24KKyAgICAgICAgICAgIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBzeXN0ZW0ncyBoYXJkd2FyZSB0eXBlLAorICAgICAgICAgICAgc29mdHdhcmUgb3BlcmF0aW5nLXN5c3RlbSwgYW5kIG5ldHdvcmtpbmcKKyAgICAgICAgICAgIHNvZnR3YXJlLiAgSXQgaXMgbWFuZGF0b3J5IHRoYXQgdGhpcyBvbmx5IGNvbnRhaW4KKyAgICAgICAgICAgIHByaW50YWJsZSBBU0NJSSBjaGFyYWN0ZXJzLiIKKyAgICA6Oj0geyBzeXN0ZW0gMSB9CisKK3N5c09iamVjdElEIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBPQkpFQ1QgSURFTlRJRklFUgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB2ZW5kb3IncyBhdXRob3JpdGF0aXZlIGlkZW50aWZpY2F0aW9uIG9mIHRoZQorICAgICAgICAgICAgbmV0d29yayBtYW5hZ2VtZW50IHN1YnN5c3RlbSBjb250YWluZWQgaW4gdGhlCisgICAgICAgICAgICBlbnRpdHkuICBUaGlzIHZhbHVlIGlzIGFsbG9jYXRlZCB3aXRoaW4gdGhlIFNNSQorICAgICAgICAgICAgZW50ZXJwcmlzZXMgc3VidHJlZSAoMS4zLjYuMS40LjEpIGFuZCBwcm92aWRlcyBhbgorICAgICAgICAgICAgZWFzeSBhbmQgdW5hbWJpZ3VvdXMgbWVhbnMgZm9yIGRldGVybWluaW5nIGB3aGF0CisgICAgICAgICAgICBraW5kIG9mIGJveCcgaXMgYmVpbmcgbWFuYWdlZC4gIEZvciBleGFtcGxlLCBpZgorICAgICAgICAgICAgdmVuZG9yIGBGbGludHN0b25lcywgSW5jLicgd2FzIGFzc2lnbmVkIHRoZQorICAgICAgICAgICAgc3VidHJlZSAxLjMuNi4xLjQuMS40MjQyLCBpdCBjb3VsZCBhc3NpZ24gdGhlCisgICAgICAgICAgICBpZGVudGlmaWVyIDEuMy42LjEuNC4xLjQyNDIuMS4xIHRvIGl0cyBgRnJlZAorICAgICAgICAgICAgUm91dGVyJy4iCisgICAgOjo9IHsgc3lzdGVtIDIgfQorCitzeXNVcFRpbWUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIFRpbWVUaWNrcworICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0aW1lIChpbiBodW5kcmVkdGhzIG9mIGEgc2Vjb25kKSBzaW5jZSB0aGUKKyAgICAgICAgICAgIG5ldHdvcmsgbWFuYWdlbWVudCBwb3J0aW9uIG9mIHRoZSBzeXN0ZW0gd2FzIGxhc3QKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemVkLiIKKyAgICA6Oj0geyBzeXN0ZW0gMyB9CisKK3N5c0NvbnRhY3QgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIERpc3BsYXlTdHJpbmcgKFNJWkUgKDAuLjI1NSkpCisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0ZXh0dWFsIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBjb250YWN0IHBlcnNvbgorICAgICAgICAgICAgZm9yIHRoaXMgbWFuYWdlZCBub2RlLCB0b2dldGhlciB3aXRoIGluZm9ybWF0aW9uCisgICAgICAgICAgICBvbiBob3cgdG8gY29udGFjdCB0aGlzIHBlcnNvbi4iCisgICAgOjo9IHsgc3lzdGVtIDQgfQorCitzeXNOYW1lIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBEaXNwbGF5U3RyaW5nIChTSVpFICgwLi4yNTUpKQorICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBbiBhZG1pbmlzdHJhdGl2ZWx5LWFzc2lnbmVkIG5hbWUgZm9yIHRoaXMKKyAgICAgICAgICAgIG1hbmFnZWQgbm9kZS4gIEJ5IGNvbnZlbnRpb24sIHRoaXMgaXMgdGhlIG5vZGUncworICAgICAgICAgICAgZnVsbHktcXVhbGlmaWVkIGRvbWFpbiBuYW1lLiIKKyAgICA6Oj0geyBzeXN0ZW0gNSB9CisKK3N5c0xvY2F0aW9uIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBEaXNwbGF5U3RyaW5nIChTSVpFICgwLi4yNTUpKQorICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgcGh5c2ljYWwgbG9jYXRpb24gb2YgdGhpcyBub2RlIChlLmcuLAorICAgICAgICAgICAgYHRlbGVwaG9uZSBjbG9zZXQsIDNyZCBmbG9vcicpLiIKKyAgICA6Oj0geyBzeXN0ZW0gNiB9CisKK3N5c1NlcnZpY2VzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSICgwLi4xMjcpCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSB2YWx1ZSB3aGljaCBpbmRpY2F0ZXMgdGhlIHNldCBvZiBzZXJ2aWNlcyB0aGF0CisgICAgICAgICAgICB0aGlzIGVudGl0eSBwcmltYXJpbHkgb2ZmZXJzLgorCisgICAgICAgICAgICBUaGUgdmFsdWUgaXMgYSBzdW0uICBUaGlzIHN1bSBpbml0aWFsbHkgdGFrZXMgdGhlCisgICAgICAgICAgICB2YWx1ZSB6ZXJvLCBUaGVuLCBmb3IgZWFjaCBsYXllciwgTCwgaW4gdGhlIHJhbmdlCisgICAgICAgICAgICAxIHRocm91Z2ggNywgdGhhdCB0aGlzIG5vZGUgcGVyZm9ybXMgdHJhbnNhY3Rpb25zCisgICAgICAgICAgICBmb3IsIDIgcmFpc2VkIHRvIChMIC0gMSkgaXMgYWRkZWQgdG8gdGhlIHN1bS4gIEZvcgorICAgICAgICAgICAgZXhhbXBsZSwgYSBub2RlIHdoaWNoIHBlcmZvcm1zIHByaW1hcmlseSByb3V0aW5nCisgICAgICAgICAgICBmdW5jdGlvbnMgd291bGQgaGF2ZSBhIHZhbHVlIG9mIDQgKDJeKDMtMSkpLiAgSW4KKyAgICAgICAgICAgIGNvbnRyYXN0LCBhIG5vZGUgd2hpY2ggaXMgYSBob3N0IG9mZmVyaW5nCisgICAgICAgICAgICBhcHBsaWNhdGlvbiBzZXJ2aWNlcyB3b3VsZCBoYXZlIGEgdmFsdWUgb2YgNzIKKyAgICAgICAgICAgICgyXig0LTEpICsgMl4oNy0xKSkuICBOb3RlIHRoYXQgaW4gdGhlIGNvbnRleHQgb2YKKyAgICAgICAgICAgIHRoZSBJbnRlcm5ldCBzdWl0ZSBvZiBwcm90b2NvbHMsIHZhbHVlcyBzaG91bGQgYmUKKyAgICAgICAgICAgIGNhbGN1bGF0ZWQgYWNjb3JkaW5nbHk6CisKKyAgICAgICAgICAgICAgICAgbGF5ZXIgIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgICAgICAgICAgICAgIDEgIHBoeXNpY2FsIChlLmcuLCByZXBlYXRlcnMpCisgICAgICAgICAgICAgICAgICAgICAyICBkYXRhbGluay9zdWJuZXR3b3JrIChlLmcuLCBicmlkZ2VzKQorICAgICAgICAgICAgICAgICAgICAgMyAgaW50ZXJuZXQgKGUuZy4sIElQIGdhdGV3YXlzKQorICAgICAgICAgICAgICAgICAgICAgNCAgZW5kLXRvLWVuZCAgKGUuZy4sIElQIGhvc3RzKQorICAgICAgICAgICAgICAgICAgICAgNyAgYXBwbGljYXRpb25zIChlLmcuLCBtYWlsIHJlbGF5cykKKworICAgICAgICAgICAgRm9yIHN5c3RlbXMgaW5jbHVkaW5nIE9TSSBwcm90b2NvbHMsIGxheWVycyA1IGFuZAorICAgICAgICAgICAgNiBtYXkgYWxzbyBiZSBjb3VudGVkLiIKKyAgICA6Oj0geyBzeXN0ZW0gNyB9CisKKy0tIHRoZSBJbnRlcmZhY2VzIGdyb3VwCisKKy0tIEltcGxlbWVudGF0aW9uIG9mIHRoZSBJbnRlcmZhY2VzIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IKKy0tIGFsbCBzeXN0ZW1zLgorCitpZk51bWJlciBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzIChyZWdhcmRsZXNzIG9mCisgICAgICAgICAgICB0aGVpciBjdXJyZW50IHN0YXRlKSBwcmVzZW50IG9uIHRoaXMgc3lzdGVtLiIKKyAgICA6Oj0geyBpbnRlcmZhY2VzIDEgfQorCisKKy0tIHRoZSBJbnRlcmZhY2VzIHRhYmxlCisKKy0tIFRoZSBJbnRlcmZhY2VzIHRhYmxlIGNvbnRhaW5zIGluZm9ybWF0aW9uIG9uIHRoZSBlbnRpdHkncworLS0gaW50ZXJmYWNlcy4gIEVhY2ggaW50ZXJmYWNlIGlzIHRob3VnaHQgb2YgYXMgYmVpbmcKKy0tIGF0dGFjaGVkIHRvIGEgYHN1Ym5ldHdvcmsnLiAgTm90ZSB0aGF0IHRoaXMgdGVybSBzaG91bGQKKy0tIG5vdCBiZSBjb25mdXNlZCB3aXRoIGBzdWJuZXQnIHdoaWNoIHJlZmVycyB0byBhbgorLS0gYWRkcmVzc2luZyBwYXJ0aXRpb25pbmcgc2NoZW1lIHVzZWQgaW4gdGhlIEludGVybmV0IHN1aXRlCistLSBvZiBwcm90b2NvbHMuCisKK2lmVGFibGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIFNFUVVFTkNFIE9GIElmRW50cnkKKyAgICBBQ0NFU1MgIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgbGlzdCBvZiBpbnRlcmZhY2UgZW50cmllcy4gIFRoZSBudW1iZXIgb2YKKyAgICAgICAgICAgIGVudHJpZXMgaXMgZ2l2ZW4gYnkgdGhlIHZhbHVlIG9mIGlmTnVtYmVyLiIKKyAgICA6Oj0geyBpbnRlcmZhY2VzIDIgfQorCitpZkVudHJ5IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJZkVudHJ5CisgICAgQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBbiBpbnRlcmZhY2UgZW50cnkgY29udGFpbmluZyBvYmplY3RzIGF0IHRoZQorICAgICAgICAgICAgc3VibmV0d29yayBsYXllciBhbmQgYmVsb3cgZm9yIGEgcGFydGljdWxhcgorICAgICAgICAgICAgaW50ZXJmYWNlLiIKKyAgICBJTkRFWCAgIHsgaWZJbmRleCB9CisgICAgOjo9IHsgaWZUYWJsZSAxIH0KKworSWZFbnRyeSA6Oj0KKyAgICBTRVFVRU5DRSB7CisgICAgICAgIGlmSW5kZXgKKyAgICAgICAgICAgIElOVEVHRVIsCisgICAgICAgIGlmRGVzY3IKKyAgICAgICAgICAgIERpc3BsYXlTdHJpbmcsCisgICAgICAgIGlmVHlwZQorICAgICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgaWZNdHUKKyAgICAgICAgICAgIElOVEVHRVIsCisgICAgICAgIGlmU3BlZWQKKyAgICAgICAgICAgIEdhdWdlLAorICAgICAgICBpZlBoeXNBZGRyZXNzCisgICAgICAgICAgICBQaHlzQWRkcmVzcywKKyAgICAgICAgaWZBZG1pblN0YXR1cworICAgICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgaWZPcGVyU3RhdHVzCisgICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICBpZkxhc3RDaGFuZ2UKKyAgICAgICAgICAgIFRpbWVUaWNrcywKKyAgICAgICAgaWZJbk9jdGV0cworICAgICAgICAgICAgQ291bnRlciwKKyAgICAgICAgaWZJblVjYXN0UGt0cworICAgICAgICAgICAgQ291bnRlciwKKyAgICAgICAgaWZJbk5VY2FzdFBrdHMKKyAgICAgICAgICAgIENvdW50ZXIsCisgICAgICAgIGlmSW5EaXNjYXJkcworICAgICAgICAgICAgQ291bnRlciwKKyAgICAgICAgaWZJbkVycm9ycworICAgICAgICAgICAgQ291bnRlciwKKyAgICAgICAgaWZJblVua25vd25Qcm90b3MKKyAgICAgICAgICAgIENvdW50ZXIsCisgICAgICAgIGlmT3V0T2N0ZXRzCisgICAgICAgICAgICBDb3VudGVyLAorICAgICAgICBpZk91dFVjYXN0UGt0cworICAgICAgICAgICAgQ291bnRlciwKKyAgICAgICAgaWZPdXROVWNhc3RQa3RzCisgICAgICAgICAgICBDb3VudGVyLAorICAgICAgICBpZk91dERpc2NhcmRzCisgICAgICAgICAgICBDb3VudGVyLAorICAgICAgICBpZk91dEVycm9ycworICAgICAgICAgICAgQ291bnRlciwKKyAgICAgICAgaWZPdXRRTGVuCisgICAgICAgICAgICBHYXVnZSwKKyAgICAgICAgaWZTcGVjaWZpYworICAgICAgICAgICAgT0JKRUNUIElERU5USUZJRVIKKyAgICB9CisKK2lmSW5kZXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIHVuaXF1ZSB2YWx1ZSBmb3IgZWFjaCBpbnRlcmZhY2UuICBJdHMgdmFsdWUKKyAgICAgICAgICAgIHJhbmdlcyBiZXR3ZWVuIDEgYW5kIHRoZSB2YWx1ZSBvZiBpZk51bWJlci4gIFRoZQorICAgICAgICAgICAgdmFsdWUgZm9yIGVhY2ggaW50ZXJmYWNlIG11c3QgcmVtYWluIGNvbnN0YW50IGF0CisgICAgICAgICAgICBsZWFzdCBmcm9tIG9uZSByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgZW50aXR5J3MKKyAgICAgICAgICAgIG5ldHdvcmsgbWFuYWdlbWVudCBzeXN0ZW0gdG8gdGhlIG5leHQgcmUtCisgICAgICAgICAgICBpbml0aWFsaXphdGlvbi4iCisgICAgOjo9IHsgaWZFbnRyeSAxIH0KKworaWZEZXNjciBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgRGlzcGxheVN0cmluZyAoU0laRSAoMC4uMjU1KSkKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIHRleHR1YWwgc3RyaW5nIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlCisgICAgICAgICAgICBpbnRlcmZhY2UuICBUaGlzIHN0cmluZyBzaG91bGQgaW5jbHVkZSB0aGUgbmFtZSBvZgorICAgICAgICAgICAgdGhlIG1hbnVmYWN0dXJlciwgdGhlIHByb2R1Y3QgbmFtZSBhbmQgdGhlIHZlcnNpb24KKyAgICAgICAgICAgIG9mIHRoZSBoYXJkd2FyZSBpbnRlcmZhY2UuIgorICAgIDo6PSB7IGlmRW50cnkgMiB9CisKK2lmVHlwZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgb3RoZXIoMSksICAgICAgICAgIC0tIG5vbmUgb2YgdGhlIGZvbGxvd2luZworICAgICAgICAgICAgICAgIHJlZ3VsYXIxODIyKDIpLAorICAgICAgICAgICAgICAgIGhkaDE4MjIoMyksCisgICAgICAgICAgICAgICAgZGRuLXgyNSg0KSwKKyAgICAgICAgICAgICAgICByZmM4NzcteDI1KDUpLAorICAgICAgICAgICAgICAgIGV0aGVybmV0LWNzbWFjZCg2KSwKKyAgICAgICAgICAgICAgICBpc284ODAyMy1jc21hY2QoNyksCisgICAgICAgICAgICAgICAgaXNvODgwMjQtdG9rZW5CdXMoOCksCisgICAgICAgICAgICAgICAgaXNvODgwMjUtdG9rZW5SaW5nKDkpLAorICAgICAgICAgICAgICAgIGlzbzg4MDI2LW1hbigxMCksCisgICAgICAgICAgICAgICAgc3RhckxhbigxMSksCisgICAgICAgICAgICAgICAgcHJvdGVvbi0xME1iaXQoMTIpLAorICAgICAgICAgICAgICAgIHByb3Rlb24tODBNYml0KDEzKSwKKyAgICAgICAgICAgICAgICBoeXBlcmNoYW5uZWwoMTQpLAorICAgICAgICAgICAgICAgIGZkZGkoMTUpLAorICAgICAgICAgICAgICAgIGxhcGIoMTYpLAorICAgICAgICAgICAgICAgIHNkbGMoMTcpLAorICAgICAgICAgICAgICAgIGRzMSgxOCksICAgICAgICAgICAtLSBULTEKKyAgICAgICAgICAgICAgICBlMSgxOSksICAgICAgICAgICAgLS0gZXVyb3BlYW4gZXF1aXYuIG9mIFQtMQorICAgICAgICAgICAgICAgIGJhc2ljSVNETigyMCksCisgICAgICAgICAgICAgICAgcHJpbWFyeUlTRE4oMjEpLCAgIC0tIHByb3ByaWV0YXJ5IHNlcmlhbAorICAgICAgICAgICAgICAgIHByb3BQb2ludFRvUG9pbnRTZXJpYWwoMjIpLAorICAgICAgICAgICAgICAgIHBwcCgyMyksCisgICAgICAgICAgICAgICAgc29mdHdhcmVMb29wYmFjaygyNCksCisgICAgICAgICAgICAgICAgZW9uKDI1KSwgICAgICAgICAgICAtLSBDTE5QIG92ZXIgSVAgWzExXQorICAgICAgICAgICAgICAgIGV0aGVybmV0LTNNYml0KDI2KSwKKyAgICAgICAgICAgICAgICBuc2lwKDI3KSwgICAgICAgICAgIC0tIFhOUyBvdmVyIElQCisgICAgICAgICAgICAgICAgc2xpcCgyOCksICAgICAgICAgICAtLSBnZW5lcmljIFNMSVAKKyAgICAgICAgICAgICAgICB1bHRyYSgyOSksICAgICAgICAgIC0tIFVMVFJBIHRlY2hub2xvZ2llcworICAgICAgICAgICAgICAgIGRzMygzMCksICAgICAgICAgICAgLS0gVC0zCisgICAgICAgICAgICAgICAgc2lwKDMxKSwgICAgICAgICAgICAtLSBTTURTCisgICAgICAgICAgICAgICAgZnJhbWUtcmVsYXkoMzIpCisgICAgICAgICAgICB9CisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHR5cGUgb2YgaW50ZXJmYWNlLCBkaXN0aW5ndWlzaGVkIGFjY29yZGluZyB0bworICAgICAgICAgICAgdGhlIHBoeXNpY2FsL2xpbmsgcHJvdG9jb2wocykgaW1tZWRpYXRlbHkgYGJlbG93JworICAgICAgICAgICAgdGhlIG5ldHdvcmsgbGF5ZXIgaW4gdGhlIHByb3RvY29sIHN0YWNrLiIKKyAgICA6Oj0geyBpZkVudHJ5IDMgfQorCitpZk10dSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBzaXplIG9mIHRoZSBsYXJnZXN0IGRhdGFncmFtIHdoaWNoIGNhbiBiZQorICAgICAgICAgICAgc2VudC9yZWNlaXZlZCBvbiB0aGUgaW50ZXJmYWNlLCBzcGVjaWZpZWQgaW4KKyAgICAgICAgICAgIG9jdGV0cy4gIEZvciBpbnRlcmZhY2VzIHRoYXQgYXJlIHVzZWQgZm9yCisgICAgICAgICAgICB0cmFuc21pdHRpbmcgbmV0d29yayBkYXRhZ3JhbXMsIHRoaXMgaXMgdGhlIHNpemUKKyAgICAgICAgICAgIG9mIHRoZSBsYXJnZXN0IG5ldHdvcmsgZGF0YWdyYW0gdGhhdCBjYW4gYmUgc2VudAorICAgICAgICAgICAgb24gdGhlIGludGVyZmFjZS4iCisgICAgOjo9IHsgaWZFbnRyeSA0IH0KKworaWZTcGVlZCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgR2F1Z2UKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBbiBlc3RpbWF0ZSBvZiB0aGUgaW50ZXJmYWNlJ3MgY3VycmVudCBiYW5kd2lkdGgKKyAgICAgICAgICAgIGluIGJpdHMgcGVyIHNlY29uZC4gIEZvciBpbnRlcmZhY2VzIHdoaWNoIGRvIG5vdAorICAgICAgICAgICAgdmFyeSBpbiBiYW5kd2lkdGggb3IgZm9yIHRob3NlIHdoZXJlIG5vIGFjY3VyYXRlCisgICAgICAgICAgICBlc3RpbWF0aW9uIGNhbiBiZSBtYWRlLCB0aGlzIG9iamVjdCBzaG91bGQgY29udGFpbgorICAgICAgICAgICAgdGhlIG5vbWluYWwgYmFuZHdpZHRoLiIKKyAgICA6Oj0geyBpZkVudHJ5IDUgfQorCitpZlBoeXNBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBQaHlzQWRkcmVzcworICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBpbnRlcmZhY2UncyBhZGRyZXNzIGF0IHRoZSBwcm90b2NvbCBsYXllcgorICAgICAgICAgICAgaW1tZWRpYXRlbHkgYGJlbG93JyB0aGUgbmV0d29yayBsYXllciBpbiB0aGUKKyAgICAgICAgICAgIHByb3RvY29sIHN0YWNrLiAgRm9yIGludGVyZmFjZXMgd2hpY2ggZG8gbm90IGhhdmUKKyAgICAgICAgICAgIHN1Y2ggYW4gYWRkcmVzcyAoZS5nLiwgYSBzZXJpYWwgbGluZSksIHRoaXMgb2JqZWN0CisgICAgICAgICAgICBzaG91bGQgY29udGFpbiBhbiBvY3RldCBzdHJpbmcgb2YgemVybyBsZW5ndGguIgorICAgIDo6PSB7IGlmRW50cnkgNiB9CisKK2lmQWRtaW5TdGF0dXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICAgIHVwKDEpLCAgICAgICAtLSByZWFkeSB0byBwYXNzIHBhY2tldHMKKyAgICAgICAgICAgICAgICBkb3duKDIpLAorICAgICAgICAgICAgICAgIHRlc3RpbmcoMykgICAtLSBpbiBzb21lIHRlc3QgbW9kZQorICAgICAgICAgICAgfQorICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgZGVzaXJlZCBzdGF0ZSBvZiB0aGUgaW50ZXJmYWNlLiAgVGhlCisgICAgICAgICAgICB0ZXN0aW5nKDMpIHN0YXRlIGluZGljYXRlcyB0aGF0IG5vIG9wZXJhdGlvbmFsCisgICAgICAgICAgICBwYWNrZXRzIGNhbiBiZSBwYXNzZWQuIgorICAgIDo6PSB7IGlmRW50cnkgNyB9CisKK2lmT3BlclN0YXR1cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgdXAoMSksICAgICAgIC0tIHJlYWR5IHRvIHBhc3MgcGFja2V0cworICAgICAgICAgICAgICAgIGRvd24oMiksCisgICAgICAgICAgICAgICAgdGVzdGluZygzKSAgIC0tIGluIHNvbWUgdGVzdCBtb2RlCisgICAgICAgICAgICB9CisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIGN1cnJlbnQgb3BlcmF0aW9uYWwgc3RhdGUgb2YgdGhlIGludGVyZmFjZS4KKyAgICAgICAgICAgIFRoZSB0ZXN0aW5nKDMpIHN0YXRlIGluZGljYXRlcyB0aGF0IG5vIG9wZXJhdGlvbmFsCisgICAgICAgICAgICBwYWNrZXRzIGNhbiBiZSBwYXNzZWQuIgorICAgIDo6PSB7IGlmRW50cnkgOCB9CisKK2lmTGFzdENoYW5nZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgVGltZVRpY2tzCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHN5c1VwVGltZSBhdCB0aGUgdGltZSB0aGUgaW50ZXJmYWNlCisgICAgICAgICAgICBlbnRlcmVkIGl0cyBjdXJyZW50IG9wZXJhdGlvbmFsIHN0YXRlLiAgSWYgdGhlCisgICAgICAgICAgICBjdXJyZW50IHN0YXRlIHdhcyBlbnRlcmVkIHByaW9yIHRvIHRoZSBsYXN0IHJlLQorICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGxvY2FsIG5ldHdvcmsgbWFuYWdlbWVudAorICAgICAgICAgICAgc3Vic3lzdGVtLCB0aGVuIHRoaXMgb2JqZWN0IGNvbnRhaW5zIGEgemVybworICAgICAgICAgICAgdmFsdWUuIgorICAgIDo6PSB7IGlmRW50cnkgOSB9CisKK2lmSW5PY3RldHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIG9jdGV0cyByZWNlaXZlZCBvbiB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSwgaW5jbHVkaW5nIGZyYW1pbmcgY2hhcmFjdGVycy4iCisgICAgOjo9IHsgaWZFbnRyeSAxMCB9CisKK2lmSW5VY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHN1Ym5ldHdvcmstdW5pY2FzdCBwYWNrZXRzCisgICAgICAgICAgICBkZWxpdmVyZWQgdG8gYSBoaWdoZXItbGF5ZXIgcHJvdG9jb2wuIgorICAgIDo6PSB7IGlmRW50cnkgMTEgfQorCitpZkluTlVjYXN0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2Ygbm9uLXVuaWNhc3QgKGkuZS4sIHN1Ym5ldHdvcmstCisgICAgICAgICAgICBicm9hZGNhc3Qgb3Igc3VibmV0d29yay1tdWx0aWNhc3QpIHBhY2tldHMKKyAgICAgICAgICAgIGRlbGl2ZXJlZCB0byBhIGhpZ2hlci1sYXllciBwcm90b2NvbC4iCisgICAgOjo9IHsgaWZFbnRyeSAxMiB9CisKK2lmSW5EaXNjYXJkcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgaW5ib3VuZCBwYWNrZXRzIHdoaWNoIHdlcmUgY2hvc2VuCisgICAgICAgICAgICB0byBiZSBkaXNjYXJkZWQgZXZlbiB0aG91Z2ggbm8gZXJyb3JzIGhhZCBiZWVuCisgICAgICAgICAgICBkZXRlY3RlZCB0byBwcmV2ZW50IHRoZWlyIGJlaW5nIGRlbGl2ZXJhYmxlIHRvIGEKKyAgICAgICAgICAgIGhpZ2hlci1sYXllciBwcm90b2NvbC4gIE9uZSBwb3NzaWJsZSByZWFzb24gZm9yCisgICAgICAgICAgICBkaXNjYXJkaW5nIHN1Y2ggYSBwYWNrZXQgY291bGQgYmUgdG8gZnJlZSB1cAorICAgICAgICAgICAgYnVmZmVyIHNwYWNlLiIKKyAgICA6Oj0geyBpZkVudHJ5IDEzIH0KKworaWZJbkVycm9ycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgaW5ib3VuZCBwYWNrZXRzIHRoYXQgY29udGFpbmVkCisgICAgICAgICAgICBlcnJvcnMgcHJldmVudGluZyB0aGVtIGZyb20gYmVpbmcgZGVsaXZlcmFibGUgdG8gYQorICAgICAgICAgICAgaGlnaGVyLWxheWVyIHByb3RvY29sLiIKKyAgICA6Oj0geyBpZkVudHJ5IDE0IH0KKworaWZJblVua25vd25Qcm90b3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHBhY2tldHMgcmVjZWl2ZWQgdmlhIHRoZSBpbnRlcmZhY2UKKyAgICAgICAgICAgIHdoaWNoIHdlcmUgZGlzY2FyZGVkIGJlY2F1c2Ugb2YgYW4gdW5rbm93biBvcgorICAgICAgICAgICAgdW5zdXBwb3J0ZWQgcHJvdG9jb2wuIgorICAgIDo6PSB7IGlmRW50cnkgMTUgfQorCitpZk91dE9jdGV0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygb2N0ZXRzIHRyYW5zbWl0dGVkIG91dCBvZiB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSwgaW5jbHVkaW5nIGZyYW1pbmcgY2hhcmFjdGVycy4iCisgICAgOjo9IHsgaWZFbnRyeSAxNiB9CisKK2lmT3V0VWNhc3RQa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBwYWNrZXRzIHRoYXQgaGlnaGVyLWxldmVsCisgICAgICAgICAgICBwcm90b2NvbHMgcmVxdWVzdGVkIGJlIHRyYW5zbWl0dGVkIHRvIGEKKyAgICAgICAgICAgIHN1Ym5ldHdvcmstdW5pY2FzdCBhZGRyZXNzLCBpbmNsdWRpbmcgdGhvc2UgdGhhdAorICAgICAgICAgICAgd2VyZSBkaXNjYXJkZWQgb3Igbm90IHNlbnQuIgorICAgIDo6PSB7IGlmRW50cnkgMTcgfQorCitpZk91dE5VY2FzdFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIHBhY2tldHMgdGhhdCBoaWdoZXItbGV2ZWwKKyAgICAgICAgICAgIHByb3RvY29scyByZXF1ZXN0ZWQgYmUgdHJhbnNtaXR0ZWQgdG8gYSBub24tCisgICAgICAgICAgICB1bmljYXN0IChpLmUuLCBhIHN1Ym5ldHdvcmstYnJvYWRjYXN0IG9yCisgICAgICAgICAgICBzdWJuZXR3b3JrLW11bHRpY2FzdCkgYWRkcmVzcywgaW5jbHVkaW5nIHRob3NlCisgICAgICAgICAgICB0aGF0IHdlcmUgZGlzY2FyZGVkIG9yIG5vdCBzZW50LiIKKyAgICA6Oj0geyBpZkVudHJ5IDE4IH0KKworaWZPdXREaXNjYXJkcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2Ygb3V0Ym91bmQgcGFja2V0cyB3aGljaCB3ZXJlIGNob3NlbgorICAgICAgICAgICAgdG8gYmUgZGlzY2FyZGVkIGV2ZW4gdGhvdWdoIG5vIGVycm9ycyBoYWQgYmVlbgorICAgICAgICAgICAgZGV0ZWN0ZWQgdG8gcHJldmVudCB0aGVpciBiZWluZyB0cmFuc21pdHRlZC4gIE9uZQorICAgICAgICAgICAgcG9zc2libGUgcmVhc29uIGZvciBkaXNjYXJkaW5nIHN1Y2ggYSBwYWNrZXQgY291bGQKKyAgICAgICAgICAgIGJlIHRvIGZyZWUgdXAgYnVmZmVyIHNwYWNlLiIKKyAgICA6Oj0geyBpZkVudHJ5IDE5IH0KKworaWZPdXRFcnJvcnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIG91dGJvdW5kIHBhY2tldHMgdGhhdCBjb3VsZCBub3QgYmUKKyAgICAgICAgICAgIHRyYW5zbWl0dGVkIGJlY2F1c2Ugb2YgZXJyb3JzLiIKKyAgICA6Oj0geyBpZkVudHJ5IDIwIH0KKworaWZPdXRRTGVuIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBHYXVnZQorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBsZW5ndGggb2YgdGhlIG91dHB1dCBwYWNrZXQgcXVldWUgKGluCisgICAgICAgICAgICBwYWNrZXRzKS4iCisgICAgOjo9IHsgaWZFbnRyeSAyMSB9CisKK2lmU3BlY2lmaWMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIE9CSkVDVCBJREVOVElGSUVSCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSByZWZlcmVuY2UgdG8gTUlCIGRlZmluaXRpb25zIHNwZWNpZmljIHRvIHRoZQorICAgICAgICAgICAgcGFydGljdWxhciBtZWRpYSBiZWluZyB1c2VkIHRvIHJlYWxpemUgdGhlCisgICAgICAgICAgICBpbnRlcmZhY2UuICBGb3IgZXhhbXBsZSwgaWYgdGhlIGludGVyZmFjZSBpcworICAgICAgICAgICAgcmVhbGl6ZWQgYnkgYW4gZXRoZXJuZXQsIHRoZW4gdGhlIHZhbHVlIG9mIHRoaXMKKyAgICAgICAgICAgIG9iamVjdCByZWZlcnMgdG8gYSBkb2N1bWVudCBkZWZpbmluZyBvYmplY3RzCisgICAgICAgICAgICBzcGVjaWZpYyB0byBldGhlcm5ldC4gIElmIHRoaXMgaW5mb3JtYXRpb24gaXMgbm90CisgICAgICAgICAgICBwcmVzZW50LCBpdHMgdmFsdWUgc2hvdWxkIGJlIHNldCB0byB0aGUgT0JKRUNUCisgICAgICAgICAgICBJREVOVElGSUVSIHsgMCAwIH0sIHdoaWNoIGlzIGEgc3ludGF0aWNhbGx5IHZhbGlkCisgICAgICAgICAgICBvYmplY3QgaWRlbnRpZmllciwgYW5kIGFueSBjb25mb3JtYW50CisgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBBU04uMSBhbmQgQkVSIG11c3QgYmUgYWJsZSB0bworICAgICAgICAgICAgZ2VuZXJhdGUgYW5kIHJlY29nbml6ZSB0aGlzIHZhbHVlLiIKKyAgICA6Oj0geyBpZkVudHJ5IDIyIH0KKworCistLSB0aGUgQWRkcmVzcyBUcmFuc2xhdGlvbiBncm91cAorCistLSBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgQWRkcmVzcyBUcmFuc2xhdGlvbiBncm91cCBpcworLS0gbWFuZGF0b3J5IGZvciBhbGwgc3lzdGVtcy4gIE5vdGUgaG93ZXZlciB0aGF0IHRoaXMgZ3JvdXAKKy0tIGlzIGRlcHJlY2F0ZWQgYnkgTUlCLUlJLiBUaGF0IGlzLCBpdCBpcyBiZWluZyBpbmNsdWRlZAorCistLSBzb2xlbHkgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBNSUItSSBub2RlcywgYW5kIHdpbGwgbW9zdAorLS0gbGlrZWx5IGJlIGV4Y2x1ZGVkIGZyb20gTUlCLUlJSSBub2Rlcy4gIEZyb20gTUlCLUlJIGFuZAorLS0gb253YXJkcywgZWFjaCBuZXR3b3JrIHByb3RvY29sIGdyb3VwIGNvbnRhaW5zIGl0cyBvd24KKy0tIGFkZHJlc3MgdHJhbnNsYXRpb24gdGFibGVzLgorCistLSBUaGUgQWRkcmVzcyBUcmFuc2xhdGlvbiBncm91cCBjb250YWlucyBvbmUgdGFibGUgd2hpY2ggaXMKKy0tIHRoZSB1bmlvbiBhY3Jvc3MgYWxsIGludGVyZmFjZXMgb2YgdGhlIHRyYW5zbGF0aW9uIHRhYmxlcworLS0gZm9yIGNvbnZlcnRpbmcgYSBOZXR3b3JrQWRkcmVzcyAoZS5nLiwgYW4gSVAgYWRkcmVzcykgaW50bworLS0gYSBzdWJuZXR3b3JrLXNwZWNpZmljIGFkZHJlc3MuICBGb3IgbGFjayBvZiBhIGJldHRlciB0ZXJtLAorLS0gdGhpcyBkb2N1bWVudCByZWZlcnMgdG8gc3VjaCBhIHN1Ym5ldHdvcmstc3BlY2lmaWMgYWRkcmVzcworLS0gYXMgYSBgcGh5c2ljYWwnIGFkZHJlc3MuCisKKy0tIEV4YW1wbGVzIG9mIHN1Y2ggdHJhbnNsYXRpb24gdGFibGVzIGFyZTogZm9yIGJyb2FkY2FzdAorLS0gbWVkaWEgd2hlcmUgQVJQIGlzIGluIHVzZSwgdGhlIHRyYW5zbGF0aW9uIHRhYmxlIGlzCistLSBlcXVpdmFsZW50IHRvIHRoZSBBUlAgY2FjaGU7IG9yLCBvbiBhbiBYLjI1IG5ldHdvcmsgd2hlcmUKKy0tIG5vbi1hbGdvcml0aG1pYyB0cmFuc2xhdGlvbiB0byBYLjEyMSBhZGRyZXNzZXMgaXMKKy0tIHJlcXVpcmVkLCB0aGUgdHJhbnNsYXRpb24gdGFibGUgY29udGFpbnMgdGhlCistLSBOZXR3b3JrQWRkcmVzcyB0byBYLjEyMSBhZGRyZXNzIGVxdWl2YWxlbmNlcy4KKworYXRUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgU0VRVUVOQ0UgT0YgQXRFbnRyeQorICAgIEFDQ0VTUyAgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBBZGRyZXNzIFRyYW5zbGF0aW9uIHRhYmxlcyBjb250YWluIHRoZQorICAgICAgICAgICAgTmV0d29ya0FkZHJlc3MgdG8gYHBoeXNpY2FsJyBhZGRyZXNzIGVxdWl2YWxlbmNlcy4KKyAgICAgICAgICAgIFNvbWUgaW50ZXJmYWNlcyBkbyBub3QgdXNlIHRyYW5zbGF0aW9uIHRhYmxlcyBmb3IKKyAgICAgICAgICAgIGRldGVybWluaW5nIGFkZHJlc3MgZXF1aXZhbGVuY2VzIChlLmcuLCBERE4tWC4yNQorICAgICAgICAgICAgaGFzIGFuIGFsZ29yaXRobWljIG1ldGhvZCk7IGlmIGFsbCBpbnRlcmZhY2VzIGFyZQorICAgICAgICAgICAgb2YgdGhpcyB0eXBlLCB0aGVuIHRoZSBBZGRyZXNzIFRyYW5zbGF0aW9uIHRhYmxlCisgICAgICAgICAgICBpcyBlbXB0eSwgaS5lLiwgaGFzIHplcm8gZW50cmllcy4iCisgICAgOjo9IHsgYXQgMSB9CisKK2F0RW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIEF0RW50cnkKKyAgICBBQ0NFU1MgIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJFYWNoIGVudHJ5IGNvbnRhaW5zIG9uZSBOZXR3b3JrQWRkcmVzcyB0bworICAgICAgICAgICAgYHBoeXNpY2FsJyBhZGRyZXNzIGVxdWl2YWxlbmNlLiIKKyAgICBJTkRFWCAgIHsgYXRJZkluZGV4LAorICAgICAgICAgICAgICBhdE5ldEFkZHJlc3MgfQorICAgIDo6PSB7IGF0VGFibGUgMSB9CisKK0F0RW50cnkgOjo9CisgICAgU0VRVUVOQ0UgeworICAgICAgICBhdElmSW5kZXgKKyAgICAgICAgICAgIElOVEVHRVIsCisgICAgICAgIGF0UGh5c0FkZHJlc3MKKyAgICAgICAgICAgIFBoeXNBZGRyZXNzLAorICAgICAgICBhdE5ldEFkZHJlc3MKKyAgICAgICAgICAgIE5ldHdvcmtBZGRyZXNzCisgICAgfQorCithdElmSW5kZXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIKKyAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBpbnRlcmZhY2Ugb24gd2hpY2ggdGhpcyBlbnRyeSdzIGVxdWl2YWxlbmNlCisgICAgICAgICAgICBpcyBlZmZlY3RpdmUuICBUaGUgaW50ZXJmYWNlIGlkZW50aWZpZWQgYnkgYQorICAgICAgICAgICAgcGFydGljdWxhciB2YWx1ZSBvZiB0aGlzIGluZGV4IGlzIHRoZSBzYW1lCisgICAgICAgICAgICBpbnRlcmZhY2UgYXMgaWRlbnRpZmllZCBieSB0aGUgc2FtZSB2YWx1ZSBvZgorICAgICAgICAgICAgaWZJbmRleC4iCisgICAgOjo9IHsgYXRFbnRyeSAxIH0KKworYXRQaHlzQWRkcmVzcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgUGh5c0FkZHJlc3MKKyAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBtZWRpYS1kZXBlbmRlbnQgYHBoeXNpY2FsJyBhZGRyZXNzLgorCisgICAgICAgICAgICBTZXR0aW5nIHRoaXMgb2JqZWN0IHRvIGEgbnVsbCBzdHJpbmcgKG9uZSBvZiB6ZXJvCisgICAgICAgICAgICBsZW5ndGgpIGhhcyB0aGUgZWZmZWN0IG9mIGludmFsaWRpbmcgdGhlCisgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGVudHJ5IGluIHRoZSBhdFRhYmxlIG9iamVjdC4gIFRoYXQKKyAgICAgICAgICAgIGlzLCBpdCBlZmZlY3RpdmVseSBkaXNzYXNvY2lhdGVzIHRoZSBpbnRlcmZhY2UKKyAgICAgICAgICAgIGlkZW50aWZpZWQgd2l0aCBzYWlkIGVudHJ5IGZyb20gdGhlIG1hcHBpbmcKKyAgICAgICAgICAgIGlkZW50aWZpZWQgd2l0aCBzYWlkIGVudHJ5LiAgSXQgaXMgYW4KKyAgICAgICAgICAgIGltcGxlbWVudGF0aW9uLXNwZWNpZmljIG1hdHRlciBhcyB0byB3aGV0aGVyIHRoZQorICAgICAgICAgICAgYWdlbnQgcmVtb3ZlcyBhbiBpbnZhbGlkYXRlZCBlbnRyeSBmcm9tIHRoZSB0YWJsZS4KKyAgICAgICAgICAgIEFjY29yZGluZ2x5LCBtYW5hZ2VtZW50IHN0YXRpb25zIG11c3QgYmUgcHJlcGFyZWQKKyAgICAgICAgICAgIHRvIHJlY2VpdmUgdGFidWxhciBpbmZvcm1hdGlvbiBmcm9tIGFnZW50cyB0aGF0CisgICAgICAgICAgICBjb3JyZXNwb25kcyB0byBlbnRyaWVzIG5vdCBjdXJyZW50bHkgaW4gdXNlLgorICAgICAgICAgICAgUHJvcGVyIGludGVycHJldGF0aW9uIG9mIHN1Y2ggZW50cmllcyByZXF1aXJlcworICAgICAgICAgICAgZXhhbWluYXRpb24gb2YgdGhlIHJlbGV2YW50IGF0UGh5c0FkZHJlc3Mgb2JqZWN0LiIKKyAgICA6Oj0geyBhdEVudHJ5IDIgfQorCithdE5ldEFkZHJlc3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIE5ldHdvcmtBZGRyZXNzCisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgTmV0d29ya0FkZHJlc3MgKGUuZy4sIHRoZSBJUCBhZGRyZXNzKQorICAgICAgICAgICAgY29ycmVzcG9uZGluZyB0byB0aGUgbWVkaWEtZGVwZW5kZW50IGBwaHlzaWNhbCcKKyAgICAgICAgICAgIGFkZHJlc3MuIgorICAgIDo6PSB7IGF0RW50cnkgMyB9CisKKworLS0gdGhlIElQIGdyb3VwCisKKy0tIEltcGxlbWVudGF0aW9uIG9mIHRoZSBJUCBncm91cCBpcyBtYW5kYXRvcnkgZm9yIGFsbAorLS0gc3lzdGVtcy4KKworaXBGb3J3YXJkaW5nIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICBmb3J3YXJkaW5nKDEpLCAgICAtLSBhY3RpbmcgYXMgYSBnYXRld2F5CisgICAgICAgICAgICAgICAgbm90LWZvcndhcmRpbmcoMikgLS0gTk9UIGFjdGluZyBhcyBhIGdhdGV3YXkKKyAgICAgICAgICAgIH0KKyAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIGluZGljYXRpb24gb2Ygd2hldGhlciB0aGlzIGVudGl0eSBpcyBhY3RpbmcKKyAgICAgICAgICAgIGFzIGFuIElQIGdhdGV3YXkgaW4gcmVzcGVjdCB0byB0aGUgZm9yd2FyZGluZyBvZgorICAgICAgICAgICAgZGF0YWdyYW1zIHJlY2VpdmVkIGJ5LCBidXQgbm90IGFkZHJlc3NlZCB0bywgdGhpcworICAgICAgICAgICAgZW50aXR5LiAgSVAgZ2F0ZXdheXMgZm9yd2FyZCBkYXRhZ3JhbXMuICBJUCBob3N0cworICAgICAgICAgICAgZG8gbm90IChleGNlcHQgdGhvc2Ugc291cmNlLXJvdXRlZCB2aWEgdGhlIGhvc3QpLgorCisgICAgICAgICAgICBOb3RlIHRoYXQgZm9yIHNvbWUgbWFuYWdlZCBub2RlcywgdGhpcyBvYmplY3QgbWF5CisgICAgICAgICAgICB0YWtlIG9uIG9ubHkgYSBzdWJzZXQgb2YgdGhlIHZhbHVlcyBwb3NzaWJsZS4KKyAgICAgICAgICAgIEFjY29yZGluZ2x5LCBpdCBpcyBhcHByb3ByaWF0ZSBmb3IgYW4gYWdlbnQgdG8KKyAgICAgICAgICAgIHJldHVybiBhIGBiYWRWYWx1ZScgcmVzcG9uc2UgaWYgYSBtYW5hZ2VtZW50CisgICAgICAgICAgICBzdGF0aW9uIGF0dGVtcHRzIHRvIGNoYW5nZSB0aGlzIG9iamVjdCB0byBhbgorICAgICAgICAgICAgaW5hcHByb3ByaWF0ZSB2YWx1ZS4iCisgICAgOjo9IHsgaXAgMSB9CisKK2lwRGVmYXVsdFRUTCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUgorICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgZGVmYXVsdCB2YWx1ZSBpbnNlcnRlZCBpbnRvIHRoZSBUaW1lLVRvLUxpdmUKKyAgICAgICAgICAgIGZpZWxkIG9mIHRoZSBJUCBoZWFkZXIgb2YgZGF0YWdyYW1zIG9yaWdpbmF0ZWQgYXQKKyAgICAgICAgICAgIHRoaXMgZW50aXR5LCB3aGVuZXZlciBhIFRUTCB2YWx1ZSBpcyBub3Qgc3VwcGxpZWQKKyAgICAgICAgICAgIGJ5IHRoZSB0cmFuc3BvcnQgbGF5ZXIgcHJvdG9jb2wuIgorICAgIDo6PSB7IGlwIDIgfQorCitpcEluUmVjZWl2ZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIGlucHV0IGRhdGFncmFtcyByZWNlaXZlZCBmcm9tCisgICAgICAgICAgICBpbnRlcmZhY2VzLCBpbmNsdWRpbmcgdGhvc2UgcmVjZWl2ZWQgaW4gZXJyb3IuIgorICAgIDo6PSB7IGlwIDMgfQorCitpcEluSGRyRXJyb3JzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBpbnB1dCBkYXRhZ3JhbXMgZGlzY2FyZGVkIGR1ZSB0bworICAgICAgICAgICAgZXJyb3JzIGluIHRoZWlyIElQIGhlYWRlcnMsIGluY2x1ZGluZyBiYWQKKyAgICAgICAgICAgIGNoZWNrc3VtcywgdmVyc2lvbiBudW1iZXIgbWlzbWF0Y2gsIG90aGVyIGZvcm1hdAorICAgICAgICAgICAgZXJyb3JzLCB0aW1lLXRvLWxpdmUgZXhjZWVkZWQsIGVycm9ycyBkaXNjb3ZlcmVkCisgICAgICAgICAgICBpbiBwcm9jZXNzaW5nIHRoZWlyIElQIG9wdGlvbnMsIGV0Yy4iCisgICAgOjo9IHsgaXAgNCB9CisKK2lwSW5BZGRyRXJyb3JzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBpbnB1dCBkYXRhZ3JhbXMgZGlzY2FyZGVkIGJlY2F1c2UKKyAgICAgICAgICAgIHRoZSBJUCBhZGRyZXNzIGluIHRoZWlyIElQIGhlYWRlcidzIGRlc3RpbmF0aW9uCisgICAgICAgICAgICBmaWVsZCB3YXMgbm90IGEgdmFsaWQgYWRkcmVzcyB0byBiZSByZWNlaXZlZCBhdAorICAgICAgICAgICAgdGhpcyBlbnRpdHkuICBUaGlzIGNvdW50IGluY2x1ZGVzIGludmFsaWQKKyAgICAgICAgICAgIGFkZHJlc3NlcyAoZS5nLiwgMC4wLjAuMCkgYW5kIGFkZHJlc3NlcyBvZgorICAgICAgICAgICAgdW5zdXBwb3J0ZWQgQ2xhc3NlcyAoZS5nLiwgQ2xhc3MgRSkuICBGb3IgZW50aXRpZXMKKyAgICAgICAgICAgIHdoaWNoIGFyZSBub3QgSVAgR2F0ZXdheXMgYW5kIHRoZXJlZm9yZSBkbyBub3QKKyAgICAgICAgICAgIGZvcndhcmQgZGF0YWdyYW1zLCB0aGlzIGNvdW50ZXIgaW5jbHVkZXMgZGF0YWdyYW1zCisgICAgICAgICAgICBkaXNjYXJkZWQgYmVjYXVzZSB0aGUgZGVzdGluYXRpb24gYWRkcmVzcyB3YXMgbm90CisgICAgICAgICAgICBhIGxvY2FsIGFkZHJlc3MuIgorICAgIDo6PSB7IGlwIDUgfQorCitpcEZvcndEYXRhZ3JhbXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGlucHV0IGRhdGFncmFtcyBmb3Igd2hpY2ggdGhpcworICAgICAgICAgICAgZW50aXR5IHdhcyBub3QgdGhlaXIgZmluYWwgSVAgZGVzdGluYXRpb24sIGFzIGEKKyAgICAgICAgICAgIHJlc3VsdCBvZiB3aGljaCBhbiBhdHRlbXB0IHdhcyBtYWRlIHRvIGZpbmQgYQorICAgICAgICAgICAgcm91dGUgdG8gZm9yd2FyZCB0aGVtIHRvIHRoYXQgZmluYWwgZGVzdGluYXRpb24uCisgICAgICAgICAgICBJbiBlbnRpdGllcyB3aGljaCBkbyBub3QgYWN0IGFzIElQIEdhdGV3YXlzLCB0aGlzCisgICAgICAgICAgICBjb3VudGVyIHdpbGwgaW5jbHVkZSBvbmx5IHRob3NlIHBhY2tldHMgd2hpY2ggd2VyZQorICAgICAgICAgICAgU291cmNlLVJvdXRlZCB2aWEgdGhpcyBlbnRpdHksIGFuZCB0aGUgU291cmNlLQorICAgICAgICAgICAgUm91dGUgb3B0aW9uIHByb2Nlc3Npbmcgd2FzIHN1Y2Nlc3NmdWwuIgorICAgIDo6PSB7IGlwIDYgfQorCitpcEluVW5rbm93blByb3RvcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgbG9jYWxseS1hZGRyZXNzZWQgZGF0YWdyYW1zCisgICAgICAgICAgICByZWNlaXZlZCBzdWNjZXNzZnVsbHkgYnV0IGRpc2NhcmRlZCBiZWNhdXNlIG9mIGFuCisgICAgICAgICAgICB1bmtub3duIG9yIHVuc3VwcG9ydGVkIHByb3RvY29sLiIKKyAgICA6Oj0geyBpcCA3IH0KKworaXBJbkRpc2NhcmRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBpbnB1dCBJUCBkYXRhZ3JhbXMgZm9yIHdoaWNoIG5vCisgICAgICAgICAgICBwcm9ibGVtcyB3ZXJlIGVuY291bnRlcmVkIHRvIHByZXZlbnQgdGhlaXIKKyAgICAgICAgICAgIGNvbnRpbnVlZCBwcm9jZXNzaW5nLCBidXQgd2hpY2ggd2VyZSBkaXNjYXJkZWQKKyAgICAgICAgICAgIChlLmcuLCBmb3IgbGFjayBvZiBidWZmZXIgc3BhY2UpLiAgTm90ZSB0aGF0IHRoaXMKKyAgICAgICAgICAgIGNvdW50ZXIgZG9lcyBub3QgaW5jbHVkZSBhbnkgZGF0YWdyYW1zIGRpc2NhcmRlZAorICAgICAgICAgICAgd2hpbGUgYXdhaXRpbmcgcmUtYXNzZW1ibHkuIgorICAgIDo6PSB7IGlwIDggfQorCitpcEluRGVsaXZlcnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIGlucHV0IGRhdGFncmFtcyBzdWNjZXNzZnVsbHkKKyAgICAgICAgICAgIGRlbGl2ZXJlZCB0byBJUCB1c2VyLXByb3RvY29scyAoaW5jbHVkaW5nIElDTVApLiIKKyAgICA6Oj0geyBpcCA5IH0KKworaXBPdXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHdoaWNoIGxvY2FsIElQCisgICAgICAgICAgICB1c2VyLXByb3RvY29scyAoaW5jbHVkaW5nIElDTVApIHN1cHBsaWVkIHRvIElQIGluCisgICAgICAgICAgICByZXF1ZXN0cyBmb3IgdHJhbnNtaXNzaW9uLiAgTm90ZSB0aGF0IHRoaXMgY291bnRlcgorICAgICAgICAgICAgZG9lcyBub3QgaW5jbHVkZSBhbnkgZGF0YWdyYW1zIGNvdW50ZWQgaW4KKyAgICAgICAgICAgIGlwRm9yd0RhdGFncmFtcy4iCisgICAgOjo9IHsgaXAgMTAgfQorCitpcE91dERpc2NhcmRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBvdXRwdXQgSVAgZGF0YWdyYW1zIGZvciB3aGljaCBubworICAgICAgICAgICAgcHJvYmxlbSB3YXMgZW5jb3VudGVyZWQgdG8gcHJldmVudCB0aGVpcgorICAgICAgICAgICAgdHJhbnNtaXNzaW9uIHRvIHRoZWlyIGRlc3RpbmF0aW9uLCBidXQgd2hpY2ggd2VyZQorICAgICAgICAgICAgZGlzY2FyZGVkIChlLmcuLCBmb3IgbGFjayBvZiBidWZmZXIgc3BhY2UpLiAgTm90ZQorICAgICAgICAgICAgdGhhdCB0aGlzIGNvdW50ZXIgd291bGQgaW5jbHVkZSBkYXRhZ3JhbXMgY291bnRlZAorICAgICAgICAgICAgaW4gaXBGb3J3RGF0YWdyYW1zIGlmIGFueSBzdWNoIHBhY2tldHMgbWV0IHRoaXMKKyAgICAgICAgICAgIChkaXNjcmV0aW9uYXJ5KSBkaXNjYXJkIGNyaXRlcmlvbi4iCisgICAgOjo9IHsgaXAgMTEgfQorCitpcE91dE5vUm91dGVzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJUCBkYXRhZ3JhbXMgZGlzY2FyZGVkIGJlY2F1c2Ugbm8KKyAgICAgICAgICAgIHJvdXRlIGNvdWxkIGJlIGZvdW5kIHRvIHRyYW5zbWl0IHRoZW0gdG8gdGhlaXIKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uLiAgTm90ZSB0aGF0IHRoaXMgY291bnRlciBpbmNsdWRlcyBhbnkKKyAgICAgICAgICAgIHBhY2tldHMgY291bnRlZCBpbiBpcEZvcndEYXRhZ3JhbXMgd2hpY2ggbWVldCB0aGlzCisgICAgICAgICAgICBgbm8tcm91dGUnIGNyaXRlcmlvbi4gIE5vdGUgdGhhdCB0aGlzIGluY2x1ZGVzIGFueQorICAgICAgICAgICAgZGF0YWdhcm1zIHdoaWNoIGEgaG9zdCBjYW5ub3Qgcm91dGUgYmVjYXVzZSBhbGwgb2YKKyAgICAgICAgICAgIGl0cyBkZWZhdWx0IGdhdGV3YXlzIGFyZSBkb3duLiIKKyAgICA6Oj0geyBpcCAxMiB9CisKK2lwUmVhc21UaW1lb3V0IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG1heGltdW0gbnVtYmVyIG9mIHNlY29uZHMgd2hpY2ggcmVjZWl2ZWQKKyAgICAgICAgICAgIGZyYWdtZW50cyBhcmUgaGVsZCB3aGlsZSB0aGV5IGFyZSBhd2FpdGluZworICAgICAgICAgICAgcmVhc3NlbWJseSBhdCB0aGlzIGVudGl0eS4iCisgICAgOjo9IHsgaXAgMTMgfQorCitpcFJlYXNtUmVxZHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIGZyYWdtZW50cyByZWNlaXZlZCB3aGljaCBuZWVkZWQKKyAgICAgICAgICAgIHRvIGJlIHJlYXNzZW1ibGVkIGF0IHRoaXMgZW50aXR5LiIKKyAgICA6Oj0geyBpcCAxNCB9CisKK2lwUmVhc21PS3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElQIGRhdGFncmFtcyBzdWNjZXNzZnVsbHkgcmUtCisgICAgICAgICAgICBhc3NlbWJsZWQuIgorICAgIDo6PSB7IGlwIDE1IH0KKworaXBSZWFzbUZhaWxzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBmYWlsdXJlcyBkZXRlY3RlZCBieSB0aGUgSVAgcmUtCisgICAgICAgICAgICBhc3NlbWJseSBhbGdvcml0aG0gKGZvciB3aGF0ZXZlciByZWFzb246IHRpbWVkCisgICAgICAgICAgICBvdXQsIGVycm9ycywgZXRjKS4gIE5vdGUgdGhhdCB0aGlzIGlzIG5vdAorICAgICAgICAgICAgbmVjZXNzYXJpbHkgYSBjb3VudCBvZiBkaXNjYXJkZWQgSVAgZnJhZ21lbnRzCisgICAgICAgICAgICBzaW5jZSBzb21lIGFsZ29yaXRobXMgKG5vdGFibHkgdGhlIGFsZ29yaXRobSBpbgorICAgICAgICAgICAgUkZDIDgxNSkgY2FuIGxvc2UgdHJhY2sgb2YgdGhlIG51bWJlciBvZiBmcmFnbWVudHMKKyAgICAgICAgICAgIGJ5IGNvbWJpbmluZyB0aGVtIGFzIHRoZXkgYXJlIHJlY2VpdmVkLiIKKyAgICA6Oj0geyBpcCAxNiB9CisKK2lwRnJhZ09LcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHRoYXQgaGF2ZSBiZWVuCisgICAgICAgICAgICBzdWNjZXNzZnVsbHkgZnJhZ21lbnRlZCBhdCB0aGlzIGVudGl0eS4iCisgICAgOjo9IHsgaXAgMTcgfQorCitpcEZyYWdGYWlscyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgZGF0YWdyYW1zIHRoYXQgaGF2ZSBiZWVuCisgICAgICAgICAgICBkaXNjYXJkZWQgYmVjYXVzZSB0aGV5IG5lZWRlZCB0byBiZSBmcmFnbWVudGVkIGF0CisgICAgICAgICAgICB0aGlzIGVudGl0eSBidXQgY291bGQgbm90IGJlLCBlLmcuLCBiZWNhdXNlIHRoZWlyCisgICAgICAgICAgICBEb24ndCBGcmFnbWVudCBmbGFnIHdhcyBzZXQuIgorICAgIDo6PSB7IGlwIDE4IH0KKworaXBGcmFnQ3JlYXRlcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSVAgZGF0YWdyYW0gZnJhZ21lbnRzIHRoYXQgaGF2ZQorICAgICAgICAgICAgYmVlbiBnZW5lcmF0ZWQgYXMgYSByZXN1bHQgb2YgZnJhZ21lbnRhdGlvbiBhdAorICAgICAgICAgICAgdGhpcyBlbnRpdHkuIgorICAgIDo6PSB7IGlwIDE5IH0KKworLS0gdGhlIElQIGFkZHJlc3MgdGFibGUKKworLS0gVGhlIElQIGFkZHJlc3MgdGFibGUgY29udGFpbnMgdGhpcyBlbnRpdHkncyBJUCBhZGRyZXNzaW5nCistLSBpbmZvcm1hdGlvbi4KKworaXBBZGRyVGFibGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIFNFUVVFTkNFIE9GIElwQWRkckVudHJ5CisgICAgQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdGFibGUgb2YgYWRkcmVzc2luZyBpbmZvcm1hdGlvbiByZWxldmFudCB0bworICAgICAgICAgICAgdGhpcyBlbnRpdHkncyBJUCBhZGRyZXNzZXMuIgorICAgIDo6PSB7IGlwIDIwIH0KKworaXBBZGRyRW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElwQWRkckVudHJ5CisgICAgQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgYWRkcmVzc2luZyBpbmZvcm1hdGlvbiBmb3Igb25lIG9mIHRoaXMKKyAgICAgICAgICAgIGVudGl0eSdzIElQIGFkZHJlc3Nlcy4iCisgICAgSU5ERVggICB7IGlwQWRFbnRBZGRyIH0KKyAgICA6Oj0geyBpcEFkZHJUYWJsZSAxIH0KKworSXBBZGRyRW50cnkgOjo9CisgICAgU0VRVUVOQ0UgeworICAgICAgICBpcEFkRW50QWRkcgorICAgICAgICAgICAgSXBBZGRyZXNzLAorICAgICAgICBpcEFkRW50SWZJbmRleAorICAgICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgaXBBZEVudE5ldE1hc2sKKyAgICAgICAgICAgIElwQWRkcmVzcywKKyAgICAgICAgaXBBZEVudEJjYXN0QWRkcgorICAgICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgaXBBZEVudFJlYXNtTWF4U2l6ZQorICAgICAgICAgICAgSU5URUdFUiAoMC4uNjU1MzUpCisgICAgfQorCitpcEFkRW50QWRkciBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSXBBZGRyZXNzCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIElQIGFkZHJlc3MgdG8gd2hpY2ggdGhpcyBlbnRyeSdzIGFkZHJlc3NpbmcKKyAgICAgICAgICAgIGluZm9ybWF0aW9uIHBlcnRhaW5zLiIKKyAgICA6Oj0geyBpcEFkZHJFbnRyeSAxIH0KKworaXBBZEVudElmSW5kZXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgaW5kZXggdmFsdWUgd2hpY2ggdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUKKyAgICAgICAgICAgIGludGVyZmFjZSB0byB3aGljaCB0aGlzIGVudHJ5IGlzIGFwcGxpY2FibGUuICBUaGUKKyAgICAgICAgICAgIGludGVyZmFjZSBpZGVudGlmaWVkIGJ5IGEgcGFydGljdWxhciB2YWx1ZSBvZiB0aGlzCisgICAgICAgICAgICBpbmRleCBpcyB0aGUgc2FtZSBpbnRlcmZhY2UgYXMgaWRlbnRpZmllZCBieSB0aGUKKyAgICAgICAgICAgIHNhbWUgdmFsdWUgb2YgaWZJbmRleC4iCisgICAgOjo9IHsgaXBBZGRyRW50cnkgMiB9CisKK2lwQWRFbnROZXRNYXNrIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJcEFkZHJlc3MKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgc3VibmV0IG1hc2sgYXNzb2NpYXRlZCB3aXRoIHRoZSBJUCBhZGRyZXNzIG9mCisgICAgICAgICAgICB0aGlzIGVudHJ5LiAgVGhlIHZhbHVlIG9mIHRoZSBtYXNrIGlzIGFuIElQCisgICAgICAgICAgICBhZGRyZXNzIHdpdGggYWxsIHRoZSBuZXR3b3JrIGJpdHMgc2V0IHRvIDEgYW5kIGFsbAorICAgICAgICAgICAgdGhlIGhvc3RzIGJpdHMgc2V0IHRvIDAuIgorICAgIDo6PSB7IGlwQWRkckVudHJ5IDMgfQorCitpcEFkRW50QmNhc3RBZGRyIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHRoZSBsZWFzdC1zaWduaWZpY2FudCBiaXQgaW4gdGhlIElQCisgICAgICAgICAgICBicm9hZGNhc3QgYWRkcmVzcyB1c2VkIGZvciBzZW5kaW5nIGRhdGFncmFtcyBvbgorICAgICAgICAgICAgdGhlIChsb2dpY2FsKSBpbnRlcmZhY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBJUAorICAgICAgICAgICAgYWRkcmVzcyBvZiB0aGlzIGVudHJ5LiAgRm9yIGV4YW1wbGUsIHdoZW4gdGhlCisgICAgICAgICAgICBJbnRlcm5ldCBzdGFuZGFyZCBhbGwtb25lcyBicm9hZGNhc3QgYWRkcmVzcyBpcworICAgICAgICAgICAgdXNlZCwgdGhlIHZhbHVlIHdpbGwgYmUgMS4gIFRoaXMgdmFsdWUgYXBwbGllcyB0bworICAgICAgICAgICAgYm90aCB0aGUgc3VibmV0IGFuZCBuZXR3b3JrIGJyb2FkY2FzdHMgYWRkcmVzc2VzCisgICAgICAgICAgICB1c2VkIGJ5IHRoZSBlbnRpdHkgb24gdGhpcyAobG9naWNhbCkgaW50ZXJmYWNlLiIKKyAgICA6Oj0geyBpcEFkZHJFbnRyeSA0IH0KKworaXBBZEVudFJlYXNtTWF4U2l6ZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUiAoMC4uNjU1MzUpCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHNpemUgb2YgdGhlIGxhcmdlc3QgSVAgZGF0YWdyYW0gd2hpY2ggdGhpcworICAgICAgICAgICAgZW50aXR5IGNhbiByZS1hc3NlbWJsZSBmcm9tIGluY29taW5nIElQIGZyYWdtZW50ZWQKKyAgICAgICAgICAgIGRhdGFncmFtcyByZWNlaXZlZCBvbiB0aGlzIGludGVyZmFjZS4iCisgICAgOjo9IHsgaXBBZGRyRW50cnkgNSB9CisKKy0tIHRoZSBJUCByb3V0aW5nIHRhYmxlCisKKy0tIFRoZSBJUCByb3V0aW5nIHRhYmxlIGNvbnRhaW5zIGFuIGVudHJ5IGZvciBlYWNoIHJvdXRlCistLSBwcmVzZW50bHkga25vd24gdG8gdGhpcyBlbnRpdHkuCisKK2lwUm91dGVUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgU0VRVUVOQ0UgT0YgSXBSb3V0ZUVudHJ5CisgICAgQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIGVudGl0eSdzIElQIFJvdXRpbmcgdGFibGUuIgorICAgIDo6PSB7IGlwIDIxIH0KKworaXBSb3V0ZUVudHJ5IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJcFJvdXRlRW50cnkKKyAgICBBQ0NFU1MgIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgcm91dGUgdG8gYSBwYXJ0aWN1bGFyIGRlc3RpbmF0aW9uLiIKKyAgICBJTkRFWCAgIHsgaXBSb3V0ZURlc3QgfQorICAgIDo6PSB7IGlwUm91dGVUYWJsZSAxIH0KKworSXBSb3V0ZUVudHJ5IDo6PQorICAgIFNFUVVFTkNFIHsKKyAgICAgICAgaXBSb3V0ZURlc3QKKyAgICAgICAgICAgIElwQWRkcmVzcywKKyAgICAgICAgaXBSb3V0ZUlmSW5kZXgKKyAgICAgICAgICAgIElOVEVHRVIsCisgICAgICAgIGlwUm91dGVNZXRyaWMxCisgICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICBpcFJvdXRlTWV0cmljMgorICAgICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgaXBSb3V0ZU1ldHJpYzMKKyAgICAgICAgICAgIElOVEVHRVIsCisgICAgICAgIGlwUm91dGVNZXRyaWM0CisgICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICBpcFJvdXRlTmV4dEhvcAorICAgICAgICAgICAgSXBBZGRyZXNzLAorICAgICAgICBpcFJvdXRlVHlwZQorICAgICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgaXBSb3V0ZVByb3RvCisgICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICBpcFJvdXRlQWdlCisgICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICBpcFJvdXRlTWFzaworICAgICAgICAgICAgSXBBZGRyZXNzLAorICAgICAgICBpcFJvdXRlTWV0cmljNQorICAgICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgaXBSb3V0ZUluZm8KKyAgICAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSCisgICAgfQorCitpcFJvdXRlRGVzdCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSXBBZGRyZXNzCisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBkZXN0aW5hdGlvbiBJUCBhZGRyZXNzIG9mIHRoaXMgcm91dGUuICBBbgorICAgICAgICAgICAgZW50cnkgd2l0aCBhIHZhbHVlIG9mIDAuMC4wLjAgaXMgY29uc2lkZXJlZCBhCisgICAgICAgICAgICBkZWZhdWx0IHJvdXRlLiAgTXVsdGlwbGUgcm91dGVzIHRvIGEgc2luZ2xlCisgICAgICAgICAgICBkZXN0aW5hdGlvbiBjYW4gYXBwZWFyIGluIHRoZSB0YWJsZSwgYnV0IGFjY2VzcyB0bworICAgICAgICAgICAgc3VjaCBtdWx0aXBsZSBlbnRyaWVzIGlzIGRlcGVuZGVudCBvbiB0aGUgdGFibGUtCisgICAgICAgICAgICBhY2Nlc3MgbWVjaGFuaXNtcyBkZWZpbmVkIGJ5IHRoZSBuZXR3b3JrCisgICAgICAgICAgICBtYW5hZ2VtZW50IHByb3RvY29sIGluIHVzZS4iCisgICAgOjo9IHsgaXBSb3V0ZUVudHJ5IDEgfQorCitpcFJvdXRlSWZJbmRleCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUgorICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgaW5kZXggdmFsdWUgd2hpY2ggdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUKKyAgICAgICAgICAgIGxvY2FsIGludGVyZmFjZSB0aHJvdWdoIHdoaWNoIHRoZSBuZXh0IGhvcCBvZiB0aGlzCisgICAgICAgICAgICByb3V0ZSBzaG91bGQgYmUgcmVhY2hlZC4gIFRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZAorICAgICAgICAgICAgYnkgYSBwYXJ0aWN1bGFyIHZhbHVlIG9mIHRoaXMgaW5kZXggaXMgdGhlIHNhbWUKKyAgICAgICAgICAgIGludGVyZmFjZSBhcyBpZGVudGlmaWVkIGJ5IHRoZSBzYW1lIHZhbHVlIG9mCisgICAgICAgICAgICBpZkluZGV4LiIKKyAgICA6Oj0geyBpcFJvdXRlRW50cnkgMiB9CisKK2lwUm91dGVNZXRyaWMxIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSCisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBwcmltYXJ5IHJvdXRpbmcgbWV0cmljIGZvciB0aGlzIHJvdXRlLiAgVGhlCisgICAgICAgICAgICBzZW1hbnRpY3Mgb2YgdGhpcyBtZXRyaWMgYXJlIGRldGVybWluZWQgYnkgdGhlCisgICAgICAgICAgICByb3V0aW5nLXByb3RvY29sIHNwZWNpZmllZCBpbiB0aGUgcm91dGUncworICAgICAgICAgICAgaXBSb3V0ZVByb3RvIHZhbHVlLiAgSWYgdGhpcyBtZXRyaWMgaXMgbm90IHVzZWQsCisgICAgICAgICAgICBpdHMgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAtMS4iCisgICAgOjo9IHsgaXBSb3V0ZUVudHJ5IDMgfQorCitpcFJvdXRlTWV0cmljMiBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUgorICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBbiBhbHRlcm5hdGUgcm91dGluZyBtZXRyaWMgZm9yIHRoaXMgcm91dGUuICBUaGUKKyAgICAgICAgICAgIHNlbWFudGljcyBvZiB0aGlzIG1ldHJpYyBhcmUgZGV0ZXJtaW5lZCBieSB0aGUKKyAgICAgICAgICAgIHJvdXRpbmctcHJvdG9jb2wgc3BlY2lmaWVkIGluIHRoZSByb3V0ZSdzCisgICAgICAgICAgICBpcFJvdXRlUHJvdG8gdmFsdWUuICBJZiB0aGlzIG1ldHJpYyBpcyBub3QgdXNlZCwKKyAgICAgICAgICAgIGl0cyB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIC0xLiIKKyAgICA6Oj0geyBpcFJvdXRlRW50cnkgNCB9CisKK2lwUm91dGVNZXRyaWMzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSCisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkFuIGFsdGVybmF0ZSByb3V0aW5nIG1ldHJpYyBmb3IgdGhpcyByb3V0ZS4gIFRoZQorICAgICAgICAgICAgc2VtYW50aWNzIG9mIHRoaXMgbWV0cmljIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZQorICAgICAgICAgICAgcm91dGluZy1wcm90b2NvbCBzcGVjaWZpZWQgaW4gdGhlIHJvdXRlJ3MKKyAgICAgICAgICAgIGlwUm91dGVQcm90byB2YWx1ZS4gIElmIHRoaXMgbWV0cmljIGlzIG5vdCB1c2VkLAorICAgICAgICAgICAgaXRzIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gLTEuIgorICAgIDo6PSB7IGlwUm91dGVFbnRyeSA1IH0KKworaXBSb3V0ZU1ldHJpYzQgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIKKyAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQW4gYWx0ZXJuYXRlIHJvdXRpbmcgbWV0cmljIGZvciB0aGlzIHJvdXRlLiAgVGhlCisgICAgICAgICAgICBzZW1hbnRpY3Mgb2YgdGhpcyBtZXRyaWMgYXJlIGRldGVybWluZWQgYnkgdGhlCisgICAgICAgICAgICByb3V0aW5nLXByb3RvY29sIHNwZWNpZmllZCBpbiB0aGUgcm91dGUncworICAgICAgICAgICAgaXBSb3V0ZVByb3RvIHZhbHVlLiAgSWYgdGhpcyBtZXRyaWMgaXMgbm90IHVzZWQsCisgICAgICAgICAgICBpdHMgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAtMS4iCisgICAgOjo9IHsgaXBSb3V0ZUVudHJ5IDYgfQorCitpcFJvdXRlTmV4dEhvcCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSXBBZGRyZXNzCisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBJUCBhZGRyZXNzIG9mIHRoZSBuZXh0IGhvcCBvZiB0aGlzIHJvdXRlLgorICAgICAgICAgICAgKEluIHRoZSBjYXNlIG9mIGEgcm91dGUgYm91bmQgdG8gYW4gaW50ZXJmYWNlCisgICAgICAgICAgICB3aGljaCBpcyByZWFsaXplZCB2aWEgYSBicm9hZGNhc3QgbWVkaWEsIHRoZSB2YWx1ZQorICAgICAgICAgICAgb2YgdGhpcyBmaWVsZCBpcyB0aGUgYWdlbnQncyBJUCBhZGRyZXNzIG9uIHRoYXQKKyAgICAgICAgICAgIGludGVyZmFjZS4pIgorICAgIDo6PSB7IGlwUm91dGVFbnRyeSA3IH0KKworaXBSb3V0ZVR5cGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICAgIG90aGVyKDEpLCAgICAgICAgLS0gbm9uZSBvZiB0aGUgZm9sbG93aW5nCisKKyAgICAgICAgICAgICAgICBpbnZhbGlkKDIpLCAgICAgIC0tIGFuIGludmFsaWRhdGVkIHJvdXRlCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHJvdXRlIHRvIGRpcmVjdGx5CisgICAgICAgICAgICAgICAgZGlyZWN0KDMpLCAgICAgICAtLSBjb25uZWN0ZWQgKHN1Yi0pbmV0d29yaworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSByb3V0ZSB0byBhIG5vbi1sb2NhbAorICAgICAgICAgICAgICAgIGluZGlyZWN0KDQpICAgICAgLS0gaG9zdC9uZXR3b3JrL3N1Yi1uZXR3b3JrCisgICAgICAgICAgICB9CisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0eXBlIG9mIHJvdXRlLiAgTm90ZSB0aGF0IHRoZSB2YWx1ZXMKKyAgICAgICAgICAgIGRpcmVjdCgzKSBhbmQgaW5kaXJlY3QoNCkgcmVmZXIgdG8gdGhlIG5vdGlvbiBvZgorICAgICAgICAgICAgZGlyZWN0IGFuZCBpbmRpcmVjdCByb3V0aW5nIGluIHRoZSBJUAorICAgICAgICAgICAgYXJjaGl0ZWN0dXJlLgorCisgICAgICAgICAgICBTZXR0aW5nIHRoaXMgb2JqZWN0IHRvIHRoZSB2YWx1ZSBpbnZhbGlkKDIpIGhhcworICAgICAgICAgICAgdGhlIGVmZmVjdCBvZiBpbnZhbGlkYXRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgZW50cnkKKyAgICAgICAgICAgIGluIHRoZSBpcFJvdXRlVGFibGUgb2JqZWN0LiAgVGhhdCBpcywgaXQKKyAgICAgICAgICAgIGVmZmVjdGl2ZWx5IGRpc3Nhc29jaWF0ZXMgdGhlIGRlc3RpbmF0aW9uCisgICAgICAgICAgICBpZGVudGlmaWVkIHdpdGggc2FpZCBlbnRyeSBmcm9tIHRoZSByb3V0ZQorICAgICAgICAgICAgaWRlbnRpZmllZCB3aXRoIHNhaWQgZW50cnkuICBJdCBpcyBhbgorICAgICAgICAgICAgaW1wbGVtZW50YXRpb24tc3BlY2lmaWMgbWF0dGVyIGFzIHRvIHdoZXRoZXIgdGhlCisgICAgICAgICAgICBhZ2VudCByZW1vdmVzIGFuIGludmFsaWRhdGVkIGVudHJ5IGZyb20gdGhlIHRhYmxlLgorICAgICAgICAgICAgQWNjb3JkaW5nbHksIG1hbmFnZW1lbnQgc3RhdGlvbnMgbXVzdCBiZSBwcmVwYXJlZAorICAgICAgICAgICAgdG8gcmVjZWl2ZSB0YWJ1bGFyIGluZm9ybWF0aW9uIGZyb20gYWdlbnRzIHRoYXQKKyAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIGVudHJpZXMgbm90IGN1cnJlbnRseSBpbiB1c2UuCisgICAgICAgICAgICBQcm9wZXIgaW50ZXJwcmV0YXRpb24gb2Ygc3VjaCBlbnRyaWVzIHJlcXVpcmVzCisgICAgICAgICAgICBleGFtaW5hdGlvbiBvZiB0aGUgcmVsZXZhbnQgaXBSb3V0ZVR5cGUgb2JqZWN0LiIKKyAgICA6Oj0geyBpcFJvdXRlRW50cnkgOCB9CisKK2lwUm91dGVQcm90byBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgb3RoZXIoMSksICAgICAgIC0tIG5vbmUgb2YgdGhlIGZvbGxvd2luZworCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIG5vbi1wcm90b2NvbCBpbmZvcm1hdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gZS5nLiwgbWFudWFsbHkgY29uZmlndXJlZAorICAgICAgICAgICAgICAgIGxvY2FsKDIpLCAgICAgICAtLSBlbnRyaWVzCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gc2V0IHZpYSBhIG5ldHdvcmsKKyAgICAgICAgICAgICAgICBuZXRtZ210KDMpLCAgICAgLS0gbWFuYWdlbWVudCBwcm90b2NvbAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIG9idGFpbmVkIHZpYSBJQ01QLAorICAgICAgICAgICAgICAgIGljbXAoNCksICAgICAgICAtLSBlLmcuLCBSZWRpcmVjdAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHRoZSByZW1haW5pbmcgdmFsdWVzIGFyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBhbGwgZ2F0ZXdheSByb3V0aW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tIHByb3RvY29scworICAgICAgICAgICAgICAgIGVncCg1KSwKKyAgICAgICAgICAgICAgICBnZ3AoNiksCisgICAgICAgICAgICAgICAgaGVsbG8oNyksCisgICAgICAgICAgICAgICAgcmlwKDgpLAorICAgICAgICAgICAgICAgIGlzLWlzKDkpLAorICAgICAgICAgICAgICAgIGVzLWlzKDEwKSwKKyAgICAgICAgICAgICAgICBjaXNjb0lncnAoMTEpLAorICAgICAgICAgICAgICAgIGJiblNwZklncCgxMiksCisgICAgICAgICAgICAgICAgb3NwZigxMyksCisgICAgICAgICAgICAgICAgYmdwKDE0KQorICAgICAgICAgICAgfQorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSByb3V0aW5nIG1lY2hhbmlzbSB2aWEgd2hpY2ggdGhpcyByb3V0ZSB3YXMKKyAgICAgICAgICAgIGxlYXJuZWQuICBJbmNsdXNpb24gb2YgdmFsdWVzIGZvciBnYXRld2F5IHJvdXRpbmcKKyAgICAgICAgICAgIHByb3RvY29scyBpcyBub3QgaW50ZW5kZWQgdG8gaW1wbHkgdGhhdCBob3N0cworICAgICAgICAgICAgc2hvdWxkIHN1cHBvcnQgdGhvc2UgcHJvdG9jb2xzLiIKKyAgICA6Oj0geyBpcFJvdXRlRW50cnkgOSB9CisKK2lwUm91dGVBZ2UgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIKKyAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIHRoaXMgcm91dGUgd2FzIGxhc3QKKyAgICAgICAgICAgIHVwZGF0ZWQgb3Igb3RoZXJ3aXNlIGRldGVybWluZWQgdG8gYmUgY29ycmVjdC4KKyAgICAgICAgICAgIE5vdGUgdGhhdCBubyBzZW1hbnRpY3Mgb2YgYHRvbyBvbGQnIGNhbiBiZSBpbXBsaWVkCisgICAgICAgICAgICBleGNlcHQgdGhyb3VnaCBrbm93bGVkZ2Ugb2YgdGhlIHJvdXRpbmcgcHJvdG9jb2wKKyAgICAgICAgICAgIGJ5IHdoaWNoIHRoZSByb3V0ZSB3YXMgbGVhcm5lZC4iCisgICAgOjo9IHsgaXBSb3V0ZUVudHJ5IDEwIH0KKworaXBSb3V0ZU1hc2sgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElwQWRkcmVzcworICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJJbmRpY2F0ZSB0aGUgbWFzayB0byBiZSBsb2dpY2FsLUFORGVkIHdpdGggdGhlCisgICAgICAgICAgICBkZXN0aW5hdGlvbiBhZGRyZXNzIGJlZm9yZSBiZWluZyBjb21wYXJlZCB0byB0aGUKKyAgICAgICAgICAgIHZhbHVlIGluIHRoZSBpcFJvdXRlRGVzdCBmaWVsZC4gIEZvciB0aG9zZSBzeXN0ZW1zCisgICAgICAgICAgICB0aGF0IGRvIG5vdCBzdXBwb3J0IGFyYml0cmFyeSBzdWJuZXQgbWFza3MsIGFuCisgICAgICAgICAgICBhZ2VudCBjb25zdHJ1Y3RzIHRoZSB2YWx1ZSBvZiB0aGUgaXBSb3V0ZU1hc2sgYnkKKyAgICAgICAgICAgIGRldGVybWluaW5nIHdoZXRoZXIgdGhlIHZhbHVlIG9mIHRoZSBjb3JyZXNwb25kZW50CisgICAgICAgICAgICBpcFJvdXRlRGVzdCBmaWVsZCBiZWxvbmcgdG8gYSBjbGFzcy1BLCBCLCBvciBDCisgICAgICAgICAgICBuZXR3b3JrLCBhbmQgdGhlbiB1c2luZyBvbmUgb2Y6CisKKyAgICAgICAgICAgICAgICAgbWFzayAgICAgICAgICAgbmV0d29yaworICAgICAgICAgICAgICAgICAyNTUuMC4wLjAgICAgICBjbGFzcy1BCisgICAgICAgICAgICAgICAgIDI1NS4yNTUuMC4wICAgIGNsYXNzLUIKKyAgICAgICAgICAgICAgICAgMjU1LjI1NS4yNTUuMCAgY2xhc3MtQworICAgICAgICAgICAgSWYgdGhlIHZhbHVlIG9mIHRoZSBpcFJvdXRlRGVzdCBpcyAwLjAuMC4wIChhCisgICAgICAgICAgICBkZWZhdWx0IHJvdXRlKSwgdGhlbiB0aGUgbWFzayB2YWx1ZSBpcyBhbHNvCisgICAgICAgICAgICAwLjAuMC4wLiAgSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgYWxsIElQIHJvdXRpbmcKKyAgICAgICAgICAgIHN1YnN5c3RlbXMgaW1wbGljaXRseSB1c2UgdGhpcyBtZWNoYW5pc20uIgorICAgIDo6PSB7IGlwUm91dGVFbnRyeSAxMSB9CisKK2lwUm91dGVNZXRyaWM1IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSCisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkFuIGFsdGVybmF0ZSByb3V0aW5nIG1ldHJpYyBmb3IgdGhpcyByb3V0ZS4gIFRoZQorICAgICAgICAgICAgc2VtYW50aWNzIG9mIHRoaXMgbWV0cmljIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZQorICAgICAgICAgICAgcm91dGluZy1wcm90b2NvbCBzcGVjaWZpZWQgaW4gdGhlIHJvdXRlJ3MKKyAgICAgICAgICAgIGlwUm91dGVQcm90byB2YWx1ZS4gIElmIHRoaXMgbWV0cmljIGlzIG5vdCB1c2VkLAorICAgICAgICAgICAgaXRzIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gLTEuIgorICAgIDo6PSB7IGlwUm91dGVFbnRyeSAxMiB9CisKK2lwUm91dGVJbmZvIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBPQkpFQ1QgSURFTlRJRklFUgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgcmVmZXJlbmNlIHRvIE1JQiBkZWZpbml0aW9ucyBzcGVjaWZpYyB0byB0aGUKKyAgICAgICAgICAgIHBhcnRpY3VsYXIgcm91dGluZyBwcm90b2NvbCB3aGljaCBpcyByZXNwb25zaWJsZQorICAgICAgICAgICAgZm9yIHRoaXMgcm91dGUsIGFzIGRldGVybWluZWQgYnkgdGhlIHZhbHVlCisgICAgICAgICAgICBzcGVjaWZpZWQgaW4gdGhlIHJvdXRlJ3MgaXBSb3V0ZVByb3RvIHZhbHVlLiAgSWYKKyAgICAgICAgICAgIHRoaXMgaW5mb3JtYXRpb24gaXMgbm90IHByZXNlbnQsIGl0cyB2YWx1ZSBzaG91bGQKKyAgICAgICAgICAgIGJlIHNldCB0byB0aGUgT0JKRUNUIElERU5USUZJRVIgeyAwIDAgfSwgd2hpY2ggaXMKKyAgICAgICAgICAgIGEgc3ludGF0aWNhbGx5IHZhbGlkIG9iamVjdCBpZGVudGlmaWVyLCBhbmQgYW55CisgICAgICAgICAgICBjb25mb3JtYW50IGltcGxlbWVudGF0aW9uIG9mIEFTTi4xIGFuZCBCRVIgbXVzdCBiZQorICAgICAgICAgICAgYWJsZSB0byBnZW5lcmF0ZSBhbmQgcmVjb2duaXplIHRoaXMgdmFsdWUuIgorICAgIDo6PSB7IGlwUm91dGVFbnRyeSAxMyB9CisKKworLS0gdGhlIElQIEFkZHJlc3MgVHJhbnNsYXRpb24gdGFibGUKKworLS0gVGhlIElQIGFkZHJlc3MgdHJhbnNsYXRpb24gdGFibGUgY29udGFpbiB0aGUgSXBBZGRyZXNzIHRvCistLSBgcGh5c2ljYWwnIGFkZHJlc3MgZXF1aXZhbGVuY2VzLiAgU29tZSBpbnRlcmZhY2VzIGRvIG5vdAorLS0gdXNlIHRyYW5zbGF0aW9uIHRhYmxlcyBmb3IgZGV0ZXJtaW5pbmcgYWRkcmVzcworLS0gZXF1aXZhbGVuY2VzIChlLmcuLCBERE4tWC4yNSBoYXMgYW4gYWxnb3JpdGhtaWMgbWV0aG9kKTsKKy0tIGlmIGFsbCBpbnRlcmZhY2VzIGFyZSBvZiB0aGlzIHR5cGUsIHRoZW4gdGhlIEFkZHJlc3MKKy0tIFRyYW5zbGF0aW9uIHRhYmxlIGlzIGVtcHR5LCBpLmUuLCBoYXMgemVybyBlbnRyaWVzLgorCitpcE5ldFRvTWVkaWFUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgU0VRVUVOQ0UgT0YgSXBOZXRUb01lZGlhRW50cnkKKyAgICBBQ0NFU1MgIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBJUCBBZGRyZXNzIFRyYW5zbGF0aW9uIHRhYmxlIHVzZWQgZm9yIG1hcHBpbmcKKyAgICAgICAgICAgIGZyb20gSVAgYWRkcmVzc2VzIHRvIHBoeXNpY2FsIGFkZHJlc3Nlcy4iCisgICAgOjo9IHsgaXAgMjIgfQorCitpcE5ldFRvTWVkaWFFbnRyeSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSXBOZXRUb01lZGlhRW50cnkKKyAgICBBQ0NFU1MgIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkVhY2ggZW50cnkgY29udGFpbnMgb25lIElwQWRkcmVzcyB0byBgcGh5c2ljYWwnCisgICAgICAgICAgICBhZGRyZXNzIGVxdWl2YWxlbmNlLiIKKyAgICBJTkRFWCAgIHsgaXBOZXRUb01lZGlhSWZJbmRleCwKKyAgICAgICAgICAgICAgaXBOZXRUb01lZGlhTmV0QWRkcmVzcyB9CisgICAgOjo9IHsgaXBOZXRUb01lZGlhVGFibGUgMSB9CisKK0lwTmV0VG9NZWRpYUVudHJ5IDo6PQorICAgIFNFUVVFTkNFIHsKKyAgICAgICAgaXBOZXRUb01lZGlhSWZJbmRleAorICAgICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgaXBOZXRUb01lZGlhUGh5c0FkZHJlc3MKKyAgICAgICAgICAgIFBoeXNBZGRyZXNzLAorICAgICAgICBpcE5ldFRvTWVkaWFOZXRBZGRyZXNzCisgICAgICAgICAgICBJcEFkZHJlc3MsCisgICAgICAgIGlwTmV0VG9NZWRpYVR5cGUKKyAgICAgICAgICAgIElOVEVHRVIKKyAgICB9CisKK2lwTmV0VG9NZWRpYUlmSW5kZXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIKKyAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIGludGVyZmFjZSBvbiB3aGljaCB0aGlzIGVudHJ5J3MgZXF1aXZhbGVuY2UKKyAgICAgICAgICAgIGlzIGVmZmVjdGl2ZS4gIFRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCBieSBhCisgICAgICAgICAgICBwYXJ0aWN1bGFyIHZhbHVlIG9mIHRoaXMgaW5kZXggaXMgdGhlIHNhbWUKKyAgICAgICAgICAgIGludGVyZmFjZSBhcyBpZGVudGlmaWVkIGJ5IHRoZSBzYW1lIHZhbHVlIG9mCisgICAgICAgICAgICBpZkluZGV4LiIKKyAgICA6Oj0geyBpcE5ldFRvTWVkaWFFbnRyeSAxIH0KKworaXBOZXRUb01lZGlhUGh5c0FkZHJlc3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIFBoeXNBZGRyZXNzCisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBtZWRpYS1kZXBlbmRlbnQgYHBoeXNpY2FsJyBhZGRyZXNzLiIKKyAgICA6Oj0geyBpcE5ldFRvTWVkaWFFbnRyeSAyIH0KKworaXBOZXRUb01lZGlhTmV0QWRkcmVzcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSXBBZGRyZXNzCisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBJcEFkZHJlc3MgY29ycmVzcG9uZGluZyB0byB0aGUgbWVkaWEtCisgICAgICAgICAgICBkZXBlbmRlbnQgYHBoeXNpY2FsJyBhZGRyZXNzLiIKKyAgICA6Oj0geyBpcE5ldFRvTWVkaWFFbnRyeSAzIH0KKworaXBOZXRUb01lZGlhVHlwZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgb3RoZXIoMSksICAgICAgICAtLSBub25lIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgICAgICAgICBpbnZhbGlkKDIpLCAgICAgIC0tIGFuIGludmFsaWRhdGVkIG1hcHBpbmcKKyAgICAgICAgICAgICAgICBkeW5hbWljKDMpLAorICAgICAgICAgICAgICAgIHN0YXRpYyg0KQorICAgICAgICAgICAgfQorICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdHlwZSBvZiBtYXBwaW5nLgorCisgICAgICAgICAgICBTZXR0aW5nIHRoaXMgb2JqZWN0IHRvIHRoZSB2YWx1ZSBpbnZhbGlkKDIpIGhhcworICAgICAgICAgICAgdGhlIGVmZmVjdCBvZiBpbnZhbGlkYXRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgZW50cnkKKyAgICAgICAgICAgIGluIHRoZSBpcE5ldFRvTWVkaWFUYWJsZS4gIFRoYXQgaXMsIGl0IGVmZmVjdGl2ZWx5CisgICAgICAgICAgICBkaXNzYXNvY2lhdGVzIHRoZSBpbnRlcmZhY2UgaWRlbnRpZmllZCB3aXRoIHNhaWQKKyAgICAgICAgICAgIGVudHJ5IGZyb20gdGhlIG1hcHBpbmcgaWRlbnRpZmllZCB3aXRoIHNhaWQgZW50cnkuCisgICAgICAgICAgICBJdCBpcyBhbiBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBtYXR0ZXIgYXMgdG8KKyAgICAgICAgICAgIHdoZXRoZXIgdGhlIGFnZW50IHJlbW92ZXMgYW4gaW52YWxpZGF0ZWQgZW50cnkKKyAgICAgICAgICAgIGZyb20gdGhlIHRhYmxlLiAgQWNjb3JkaW5nbHksIG1hbmFnZW1lbnQgc3RhdGlvbnMKKyAgICAgICAgICAgIG11c3QgYmUgcHJlcGFyZWQgdG8gcmVjZWl2ZSB0YWJ1bGFyIGluZm9ybWF0aW9uCisgICAgICAgICAgICBmcm9tIGFnZW50cyB0aGF0IGNvcnJlc3BvbmRzIHRvIGVudHJpZXMgbm90CisgICAgICAgICAgICBjdXJyZW50bHkgaW4gdXNlLiAgUHJvcGVyIGludGVycHJldGF0aW9uIG9mIHN1Y2gKKyAgICAgICAgICAgIGVudHJpZXMgcmVxdWlyZXMgZXhhbWluYXRpb24gb2YgdGhlIHJlbGV2YW50CisgICAgICAgICAgICBpcE5ldFRvTWVkaWFUeXBlIG9iamVjdC4iCisgICAgOjo9IHsgaXBOZXRUb01lZGlhRW50cnkgNCB9CisKKworLS0gYWRkaXRpb25hbCBJUCBvYmplY3RzCisKK2lwUm91dGluZ0Rpc2NhcmRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiByb3V0aW5nIGVudHJpZXMgd2hpY2ggd2VyZSBjaG9zZW4KKyAgICAgICAgICAgIHRvIGJlIGRpc2NhcmRlZCBldmVuIHRob3VnaCB0aGV5IGFyZSB2YWxpZC4gIE9uZQorICAgICAgICAgICAgcG9zc2libGUgcmVhc29uIGZvciBkaXNjYXJkaW5nIHN1Y2ggYW4gZW50cnkgY291bGQKKyAgICAgICAgICAgIGJlIHRvIGZyZWUtdXAgYnVmZmVyIHNwYWNlIGZvciBvdGhlciByb3V0aW5nCisgICAgICAgICAgICBlbnRyaWVzLiIKKyAgICA6Oj0geyBpcCAyMyB9CisKKworLS0gdGhlIElDTVAgZ3JvdXAKKworLS0gSW1wbGVtZW50YXRpb24gb2YgdGhlIElDTVAgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBhbGwKKy0tIHN5c3RlbXMuCisKK2ljbXBJbk1zZ3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIElDTVAgbWVzc2FnZXMgd2hpY2ggdGhlCisgICAgICAgICAgICBlbnRpdHkgcmVjZWl2ZWQuICBOb3RlIHRoYXQgdGhpcyBjb3VudGVyIGluY2x1ZGVzCisgICAgICAgICAgICBhbGwgdGhvc2UgY291bnRlZCBieSBpY21wSW5FcnJvcnMuIgorICAgIDo6PSB7IGljbXAgMSB9CisKK2ljbXBJbkVycm9ycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBtZXNzYWdlcyB3aGljaCB0aGUgZW50aXR5CisgICAgICAgICAgICByZWNlaXZlZCBidXQgZGV0ZXJtaW5lZCBhcyBoYXZpbmcgSUNNUC1zcGVjaWZpYworICAgICAgICAgICAgZXJyb3JzIChiYWQgSUNNUCBjaGVja3N1bXMsIGJhZCBsZW5ndGgsIGV0Yy4pLiIKKyAgICA6Oj0geyBpY21wIDIgfQorCitpY21wSW5EZXN0VW5yZWFjaHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgRGVzdGluYXRpb24gVW5yZWFjaGFibGUKKyAgICAgICAgICAgIG1lc3NhZ2VzIHJlY2VpdmVkLiIKKyAgICA6Oj0geyBpY21wIDMgfQorCitpY21wSW5UaW1lRXhjZHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgVGltZSBFeGNlZWRlZCBtZXNzYWdlcworICAgICAgICAgICAgcmVjZWl2ZWQuIgorICAgIDo6PSB7IGljbXAgNCB9CisKK2ljbXBJblBhcm1Qcm9icyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBQYXJhbWV0ZXIgUHJvYmxlbSBtZXNzYWdlcworICAgICAgICAgICAgcmVjZWl2ZWQuIgorICAgIDo6PSB7IGljbXAgNSB9CisKK2ljbXBJblNyY1F1ZW5jaHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgU291cmNlIFF1ZW5jaCBtZXNzYWdlcworICAgICAgICAgICAgcmVjZWl2ZWQuIgorICAgIDo6PSB7IGljbXAgNiB9CisKK2ljbXBJblJlZGlyZWN0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBSZWRpcmVjdCBtZXNzYWdlcyByZWNlaXZlZC4iCisgICAgOjo9IHsgaWNtcCA3IH0KKworaWNtcEluRWNob3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgRWNobyAocmVxdWVzdCkgbWVzc2FnZXMKKyAgICAgICAgICAgIHJlY2VpdmVkLiIKKyAgICA6Oj0geyBpY21wIDggfQorCitpY21wSW5FY2hvUmVwcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBFY2hvIFJlcGx5IG1lc3NhZ2VzIHJlY2VpdmVkLiIKKyAgICA6Oj0geyBpY21wIDkgfQorCitpY21wSW5UaW1lc3RhbXBzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIFRpbWVzdGFtcCAocmVxdWVzdCkgbWVzc2FnZXMKKyAgICAgICAgICAgIHJlY2VpdmVkLiIKKyAgICA6Oj0geyBpY21wIDEwIH0KKworaWNtcEluVGltZXN0YW1wUmVwcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBUaW1lc3RhbXAgUmVwbHkgbWVzc2FnZXMKKyAgICAgICAgICAgIHJlY2VpdmVkLiIKKyAgICA6Oj0geyBpY21wIDExIH0KKworaWNtcEluQWRkck1hc2tzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIEFkZHJlc3MgTWFzayBSZXF1ZXN0IG1lc3NhZ2VzCisgICAgICAgICAgICByZWNlaXZlZC4iCisgICAgOjo9IHsgaWNtcCAxMiB9CisKK2ljbXBJbkFkZHJNYXNrUmVwcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBBZGRyZXNzIE1hc2sgUmVwbHkgbWVzc2FnZXMKKyAgICAgICAgICAgIHJlY2VpdmVkLiIKKyAgICA6Oj0geyBpY21wIDEzIH0KKworaWNtcE91dE1zZ3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIElDTVAgbWVzc2FnZXMgd2hpY2ggdGhpcworICAgICAgICAgICAgZW50aXR5IGF0dGVtcHRlZCB0byBzZW5kLiAgTm90ZSB0aGF0IHRoaXMgY291bnRlcgorICAgICAgICAgICAgaW5jbHVkZXMgYWxsIHRob3NlIGNvdW50ZWQgYnkgaWNtcE91dEVycm9ycy4iCisgICAgOjo9IHsgaWNtcCAxNCB9CisKK2ljbXBPdXRFcnJvcnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgbWVzc2FnZXMgd2hpY2ggdGhpcyBlbnRpdHkgZGlkCisgICAgICAgICAgICBub3Qgc2VuZCBkdWUgdG8gcHJvYmxlbXMgZGlzY292ZXJlZCB3aXRoaW4gSUNNUAorICAgICAgICAgICAgc3VjaCBhcyBhIGxhY2sgb2YgYnVmZmVycy4gIFRoaXMgdmFsdWUgc2hvdWxkIG5vdAorICAgICAgICAgICAgaW5jbHVkZSBlcnJvcnMgZGlzY292ZXJlZCBvdXRzaWRlIHRoZSBJQ01QIGxheWVyCisgICAgICAgICAgICBzdWNoIGFzIHRoZSBpbmFiaWxpdHkgb2YgSVAgdG8gcm91dGUgdGhlIHJlc3VsdGFudAorICAgICAgICAgICAgZGF0YWdyYW0uICBJbiBzb21lIGltcGxlbWVudGF0aW9ucyB0aGVyZSBtYXkgYmUgbm8KKyAgICAgICAgICAgIHR5cGVzIG9mIGVycm9yIHdoaWNoIGNvbnRyaWJ1dGUgdG8gdGhpcyBjb3VudGVyJ3MKKyAgICAgICAgICAgIHZhbHVlLiIKKyAgICA6Oj0geyBpY21wIDE1IH0KKworaWNtcE91dERlc3RVbnJlYWNocyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBEZXN0aW5hdGlvbiBVbnJlYWNoYWJsZQorICAgICAgICAgICAgbWVzc2FnZXMgc2VudC4iCisgICAgOjo9IHsgaWNtcCAxNiB9CisKK2ljbXBPdXRUaW1lRXhjZHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgVGltZSBFeGNlZWRlZCBtZXNzYWdlcyBzZW50LiIKKyAgICA6Oj0geyBpY21wIDE3IH0KKworaWNtcE91dFBhcm1Qcm9icyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgSUNNUCBQYXJhbWV0ZXIgUHJvYmxlbSBtZXNzYWdlcworICAgICAgICAgICAgc2VudC4iCisgICAgOjo9IHsgaWNtcCAxOCB9CisKK2ljbXBPdXRTcmNRdWVuY2hzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIFNvdXJjZSBRdWVuY2ggbWVzc2FnZXMgc2VudC4iCisgICAgOjo9IHsgaWNtcCAxOSB9CisKK2ljbXBPdXRSZWRpcmVjdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgUmVkaXJlY3QgbWVzc2FnZXMgc2VudC4gIEZvciBhCisgICAgICAgICAgICBob3N0LCB0aGlzIG9iamVjdCB3aWxsIGFsd2F5cyBiZSB6ZXJvLCBzaW5jZSBob3N0cworICAgICAgICAgICAgZG8gbm90IHNlbmQgcmVkaXJlY3RzLiIKKyAgICA6Oj0geyBpY21wIDIwIH0KKworaWNtcE91dEVjaG9zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIEVjaG8gKHJlcXVlc3QpIG1lc3NhZ2VzIHNlbnQuIgorICAgIDo6PSB7IGljbXAgMjEgfQorCitpY21wT3V0RWNob1JlcHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgRWNobyBSZXBseSBtZXNzYWdlcyBzZW50LiIKKyAgICA6Oj0geyBpY21wIDIyIH0KKworaWNtcE91dFRpbWVzdGFtcHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgVGltZXN0YW1wIChyZXF1ZXN0KSBtZXNzYWdlcworICAgICAgICAgICAgc2VudC4iCisgICAgOjo9IHsgaWNtcCAyMyB9CisKK2ljbXBPdXRUaW1lc3RhbXBSZXBzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIFRpbWVzdGFtcCBSZXBseSBtZXNzYWdlcworICAgICAgICAgICAgc2VudC4iCisgICAgOjo9IHsgaWNtcCAyNCB9CisKK2ljbXBPdXRBZGRyTWFza3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIElDTVAgQWRkcmVzcyBNYXNrIFJlcXVlc3QgbWVzc2FnZXMKKyAgICAgICAgICAgIHNlbnQuIgorICAgIDo6PSB7IGljbXAgMjUgfQorCitpY21wT3V0QWRkck1hc2tSZXBzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBJQ01QIEFkZHJlc3MgTWFzayBSZXBseSBtZXNzYWdlcworICAgICAgICAgICAgc2VudC4iCisgICAgOjo9IHsgaWNtcCAyNiB9CisKKworLS0gdGhlIFRDUCBncm91cAorCistLSBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgVENQIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgYWxsCistLSBzeXN0ZW1zIHRoYXQgaW1wbGVtZW50IHRoZSBUQ1AuCisKKy0tIE5vdGUgdGhhdCBpbnN0YW5jZXMgb2Ygb2JqZWN0IHR5cGVzIHRoYXQgcmVwcmVzZW50CistLSBpbmZvcm1hdGlvbiBhYm91dCBhIHBhcnRpY3VsYXIgVENQIGNvbm5lY3Rpb24gYXJlCistLSB0cmFuc2llbnQ7IHRoZXkgcGVyc2lzdCBvbmx5IGFzIGxvbmcgYXMgdGhlIGNvbm5lY3Rpb24KKy0tIGluIHF1ZXN0aW9uLgorCit0Y3BSdG9BbGdvcml0aG0gT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIgeworICAgICAgICAgICAgICAgIG90aGVyKDEpLCAgICAtLSBub25lIG9mIHRoZSBmb2xsb3dpbmcKKworICAgICAgICAgICAgICAgIGNvbnN0YW50KDIpLCAtLSBhIGNvbnN0YW50IHJ0bworICAgICAgICAgICAgICAgIHJzcmUoMyksICAgICAtLSBNSUwtU1RELTE3NzgsIEFwcGVuZGl4IEIKKyAgICAgICAgICAgICAgICB2YW5qKDQpICAgICAgLS0gVmFuIEphY29ic29uJ3MgYWxnb3JpdGhtIFsxMF0KKyAgICAgICAgICAgIH0KKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgYWxnb3JpdGhtIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB0aW1lb3V0IHZhbHVlCisgICAgICAgICAgICB1c2VkIGZvciByZXRyYW5zbWl0dGluZyB1bmFja25vd2xlZGdlZCBvY3RldHMuIgorICAgIDo6PSB7IHRjcCAxIH0KKwordGNwUnRvTWluIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG1pbmltdW0gdmFsdWUgcGVybWl0dGVkIGJ5IGEgVENQCisgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIHJldHJhbnNtaXNzaW9uIHRpbWVvdXQsCisgICAgICAgICAgICBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMuICBNb3JlIHJlZmluZWQgc2VtYW50aWNzCisgICAgICAgICAgICBmb3Igb2JqZWN0cyBvZiB0aGlzIHR5cGUgZGVwZW5kIHVwb24gdGhlIGFsZ29yaXRobQorICAgICAgICAgICAgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHJldHJhbnNtaXNzaW9uIHRpbWVvdXQuICBJbgorICAgICAgICAgICAgcGFydGljdWxhciwgd2hlbiB0aGUgdGltZW91dCBhbGdvcml0aG0gaXMgcnNyZSgzKSwKKyAgICAgICAgICAgIGFuIG9iamVjdCBvZiB0aGlzIHR5cGUgaGFzIHRoZSBzZW1hbnRpY3Mgb2YgdGhlCisgICAgICAgICAgICBMQk9VTkQgcXVhbnRpdHkgZGVzY3JpYmVkIGluIFJGQyA3OTMuIgorICAgIDo6PSB7IHRjcCAyIH0KKworCit0Y3BSdG9NYXggT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbWF4aW11bSB2YWx1ZSBwZXJtaXR0ZWQgYnkgYSBUQ1AKKyAgICAgICAgICAgIGltcGxlbWVudGF0aW9uIGZvciB0aGUgcmV0cmFuc21pc3Npb24gdGltZW91dCwKKyAgICAgICAgICAgIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcy4gIE1vcmUgcmVmaW5lZCBzZW1hbnRpY3MKKyAgICAgICAgICAgIGZvciBvYmplY3RzIG9mIHRoaXMgdHlwZSBkZXBlbmQgdXBvbiB0aGUgYWxnb3JpdGhtCisgICAgICAgICAgICB1c2VkIHRvIGRldGVybWluZSB0aGUgcmV0cmFuc21pc3Npb24gdGltZW91dC4gIEluCisgICAgICAgICAgICBwYXJ0aWN1bGFyLCB3aGVuIHRoZSB0aW1lb3V0IGFsZ29yaXRobSBpcyByc3JlKDMpLAorICAgICAgICAgICAgYW4gb2JqZWN0IG9mIHRoaXMgdHlwZSBoYXMgdGhlIHNlbWFudGljcyBvZiB0aGUKKyAgICAgICAgICAgIFVCT1VORCBxdWFudGl0eSBkZXNjcmliZWQgaW4gUkZDIDc5My4iCisgICAgOjo9IHsgdGNwIDMgfQorCit0Y3BNYXhDb25uIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIGxpbWl0IG9uIHRoZSB0b3RhbCBudW1iZXIgb2YgVENQIGNvbm5lY3Rpb25zCisgICAgICAgICAgICB0aGUgZW50aXR5IGNhbiBzdXBwb3J0LiAgSW4gZW50aXRpZXMgd2hlcmUgdGhlCisgICAgICAgICAgICBtYXhpbXVtIG51bWJlciBvZiBjb25uZWN0aW9ucyBpcyBkeW5hbWljLCB0aGlzCisgICAgICAgICAgICBvYmplY3Qgc2hvdWxkIGNvbnRhaW4gdGhlIHZhbHVlIC0xLiIKKyAgICA6Oj0geyB0Y3AgNCB9CisKK3RjcEFjdGl2ZU9wZW5zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiB0aW1lcyBUQ1AgY29ubmVjdGlvbnMgaGF2ZSBtYWRlIGEKKyAgICAgICAgICAgIGRpcmVjdCB0cmFuc2l0aW9uIHRvIHRoZSBTWU4tU0VOVCBzdGF0ZSBmcm9tIHRoZQorICAgICAgICAgICAgQ0xPU0VEIHN0YXRlLiIKKyAgICA6Oj0geyB0Y3AgNSB9CisKK3RjcFBhc3NpdmVPcGVucyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgdGltZXMgVENQIGNvbm5lY3Rpb25zIGhhdmUgbWFkZSBhCisgICAgICAgICAgICBkaXJlY3QgdHJhbnNpdGlvbiB0byB0aGUgU1lOLVJDVkQgc3RhdGUgZnJvbSB0aGUKKyAgICAgICAgICAgIExJU1RFTiBzdGF0ZS4iCisgICAgOjo9IHsgdGNwIDYgfQorCit0Y3BBdHRlbXB0RmFpbHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHRpbWVzIFRDUCBjb25uZWN0aW9ucyBoYXZlIG1hZGUgYQorICAgICAgICAgICAgZGlyZWN0IHRyYW5zaXRpb24gdG8gdGhlIENMT1NFRCBzdGF0ZSBmcm9tIGVpdGhlcgorICAgICAgICAgICAgdGhlIFNZTi1TRU5UIHN0YXRlIG9yIHRoZSBTWU4tUkNWRCBzdGF0ZSwgcGx1cyB0aGUKKyAgICAgICAgICAgIG51bWJlciBvZiB0aW1lcyBUQ1AgY29ubmVjdGlvbnMgaGF2ZSBtYWRlIGEgZGlyZWN0CisgICAgICAgICAgICB0cmFuc2l0aW9uIHRvIHRoZSBMSVNURU4gc3RhdGUgZnJvbSB0aGUgU1lOLVJDVkQKKyAgICAgICAgICAgIHN0YXRlLiIKKyAgICA6Oj0geyB0Y3AgNyB9CisKK3RjcEVzdGFiUmVzZXRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiB0aW1lcyBUQ1AgY29ubmVjdGlvbnMgaGF2ZSBtYWRlIGEKKyAgICAgICAgICAgIGRpcmVjdCB0cmFuc2l0aW9uIHRvIHRoZSBDTE9TRUQgc3RhdGUgZnJvbSBlaXRoZXIKKyAgICAgICAgICAgIHRoZSBFU1RBQkxJU0hFRCBzdGF0ZSBvciB0aGUgQ0xPU0UtV0FJVCBzdGF0ZS4iCisgICAgOjo9IHsgdGNwIDggfQorCit0Y3BDdXJyRXN0YWIgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIEdhdWdlCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBUQ1AgY29ubmVjdGlvbnMgZm9yIHdoaWNoIHRoZQorICAgICAgICAgICAgY3VycmVudCBzdGF0ZSBpcyBlaXRoZXIgRVNUQUJMSVNIRUQgb3IgQ0xPU0UtCisgICAgICAgICAgICBXQUlULiIKKyAgICA6Oj0geyB0Y3AgOSB9CisKK3RjcEluU2VncyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygc2VnbWVudHMgcmVjZWl2ZWQsIGluY2x1ZGluZworICAgICAgICAgICAgdGhvc2UgcmVjZWl2ZWQgaW4gZXJyb3IuICBUaGlzIGNvdW50IGluY2x1ZGVzCisgICAgICAgICAgICBzZWdtZW50cyByZWNlaXZlZCBvbiBjdXJyZW50bHkgZXN0YWJsaXNoZWQKKyAgICAgICAgICAgIGNvbm5lY3Rpb25zLiIKKyAgICA6Oj0geyB0Y3AgMTAgfQorCit0Y3BPdXRTZWdzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBzZWdtZW50cyBzZW50LCBpbmNsdWRpbmcKKyAgICAgICAgICAgIHRob3NlIG9uIGN1cnJlbnQgY29ubmVjdGlvbnMgYnV0IGV4Y2x1ZGluZyB0aG9zZQorICAgICAgICAgICAgY29udGFpbmluZyBvbmx5IHJldHJhbnNtaXR0ZWQgb2N0ZXRzLiIKKyAgICA6Oj0geyB0Y3AgMTEgfQorCit0Y3BSZXRyYW5zU2VncyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygc2VnbWVudHMgcmV0cmFuc21pdHRlZCAtIHRoYXQKKyAgICAgICAgICAgIGlzLCB0aGUgbnVtYmVyIG9mIFRDUCBzZWdtZW50cyB0cmFuc21pdHRlZAorICAgICAgICAgICAgY29udGFpbmluZyBvbmUgb3IgbW9yZSBwcmV2aW91c2x5IHRyYW5zbWl0dGVkCisgICAgICAgICAgICBvY3RldHMuIgorICAgIDo6PSB7IHRjcCAxMiB9CisKKworLS0gdGhlIFRDUCBDb25uZWN0aW9uIHRhYmxlCisKKy0tIFRoZSBUQ1AgY29ubmVjdGlvbiB0YWJsZSBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGlzCistLSBlbnRpdHkncyBleGlzdGluZyBUQ1AgY29ubmVjdGlvbnMuCisKK3RjcENvbm5UYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgU0VRVUVOQ0UgT0YgVGNwQ29ubkVudHJ5CisgICAgQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIHRhYmxlIGNvbnRhaW5pbmcgVENQIGNvbm5lY3Rpb24tc3BlY2lmaWMKKyAgICAgICAgICAgIGluZm9ybWF0aW9uLiIKKyAgICA6Oj0geyB0Y3AgMTMgfQorCit0Y3BDb25uRW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIFRjcENvbm5FbnRyeQorICAgIEFDQ0VTUyAgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiSW5mb3JtYXRpb24gYWJvdXQgYSBwYXJ0aWN1bGFyIGN1cnJlbnQgVENQCisgICAgICAgICAgICBjb25uZWN0aW9uLiAgQW4gb2JqZWN0IG9mIHRoaXMgdHlwZSBpcyB0cmFuc2llbnQsCisgICAgICAgICAgICBpbiB0aGF0IGl0IGNlYXNlcyB0byBleGlzdCB3aGVuIChvciBzb29uIGFmdGVyKQorICAgICAgICAgICAgdGhlIGNvbm5lY3Rpb24gbWFrZXMgdGhlIHRyYW5zaXRpb24gdG8gdGhlIENMT1NFRAorICAgICAgICAgICAgc3RhdGUuIgorICAgIElOREVYICAgeyB0Y3BDb25uTG9jYWxBZGRyZXNzLAorICAgICAgICAgICAgICB0Y3BDb25uTG9jYWxQb3J0LAorICAgICAgICAgICAgICB0Y3BDb25uUmVtQWRkcmVzcywKKyAgICAgICAgICAgICAgdGNwQ29ublJlbVBvcnQgfQorICAgIDo6PSB7IHRjcENvbm5UYWJsZSAxIH0KKworVGNwQ29ubkVudHJ5IDo6PQorICAgIFNFUVVFTkNFIHsKKyAgICAgICAgdGNwQ29ublN0YXRlCisgICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICB0Y3BDb25uTG9jYWxBZGRyZXNzCisgICAgICAgICAgICBJcEFkZHJlc3MsCisgICAgICAgIHRjcENvbm5Mb2NhbFBvcnQKKyAgICAgICAgICAgIElOVEVHRVIgKDAuLjY1NTM1KSwKKyAgICAgICAgdGNwQ29ublJlbUFkZHJlc3MKKyAgICAgICAgICAgIElwQWRkcmVzcywKKyAgICAgICAgdGNwQ29ublJlbVBvcnQKKyAgICAgICAgICAgIElOVEVHRVIgKDAuLjY1NTM1KQorICAgIH0KKwordGNwQ29ublN0YXRlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICBjbG9zZWQoMSksCisgICAgICAgICAgICAgICAgbGlzdGVuKDIpLAorICAgICAgICAgICAgICAgIHN5blNlbnQoMyksCisgICAgICAgICAgICAgICAgc3luUmVjZWl2ZWQoNCksCisgICAgICAgICAgICAgICAgZXN0YWJsaXNoZWQoNSksCisgICAgICAgICAgICAgICAgZmluV2FpdDEoNiksCisgICAgICAgICAgICAgICAgZmluV2FpdDIoNyksCisgICAgICAgICAgICAgICAgY2xvc2VXYWl0KDgpLAorICAgICAgICAgICAgICAgIGxhc3RBY2soOSksCisgICAgICAgICAgICAgICAgY2xvc2luZygxMCksCisgICAgICAgICAgICAgICAgdGltZVdhaXQoMTEpLAorICAgICAgICAgICAgICAgIGRlbGV0ZVRDQigxMikKKyAgICAgICAgICAgIH0KKyAgICBBQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHN0YXRlIG9mIHRoaXMgVENQIGNvbm5lY3Rpb24uCisKKyAgICAgICAgICAgIFRoZSBvbmx5IHZhbHVlIHdoaWNoIG1heSBiZSBzZXQgYnkgYSBtYW5hZ2VtZW50CisgICAgICAgICAgICBzdGF0aW9uIGlzIGRlbGV0ZVRDQigxMikuICBBY2NvcmRpbmdseSwgaXQgaXMKKyAgICAgICAgICAgIGFwcHJvcHJpYXRlIGZvciBhbiBhZ2VudCB0byByZXR1cm4gYSBgYmFkVmFsdWUnCisgICAgICAgICAgICByZXNwb25zZSBpZiBhIG1hbmFnZW1lbnQgc3RhdGlvbiBhdHRlbXB0cyB0byBzZXQKKyAgICAgICAgICAgIHRoaXMgb2JqZWN0IHRvIGFueSBvdGhlciB2YWx1ZS4KKworICAgICAgICAgICAgSWYgYSBtYW5hZ2VtZW50IHN0YXRpb24gc2V0cyB0aGlzIG9iamVjdCB0byB0aGUKKyAgICAgICAgICAgIHZhbHVlIGRlbGV0ZVRDQigxMiksIHRoZW4gdGhpcyBoYXMgdGhlIGVmZmVjdCBvZgorICAgICAgICAgICAgZGVsZXRpbmcgdGhlIFRDQiAoYXMgZGVmaW5lZCBpbiBSRkMgNzkzKSBvZiB0aGUKKyAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgY29ubmVjdGlvbiBvbiB0aGUgbWFuYWdlZCBub2RlLAorICAgICAgICAgICAgcmVzdWx0aW5nIGluIGltbWVkaWF0ZSB0ZXJtaW5hdGlvbiBvZiB0aGUKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uCisKKyAgICAgICAgICAgIEFzIGFuIGltcGxlbWVudGF0aW9uLXNwZWNpZmljIG9wdGlvbiwgYSBSU1QKKyAgICAgICAgICAgIHNlZ21lbnQgbWF5IGJlIHNlbnQgZnJvbSB0aGUgbWFuYWdlZCBub2RlIHRvIHRoZQorICAgICAgICAgICAgb3RoZXIgVENQIGVuZHBvaW50IChub3RlIGhvd2V2ZXIgdGhhdCBSU1Qgc2VnbWVudHMKKyAgICAgICAgICAgIGFyZSBub3Qgc2VudCByZWxpYWJseSkuIgorICAgIDo6PSB7IHRjcENvbm5FbnRyeSAxIH0KKwordGNwQ29ubkxvY2FsQWRkcmVzcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSXBBZGRyZXNzCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIGxvY2FsIElQIGFkZHJlc3MgZm9yIHRoaXMgVENQIGNvbm5lY3Rpb24uICBJbgorICAgICAgICAgICAgdGhlIGNhc2Ugb2YgYSBjb25uZWN0aW9uIGluIHRoZSBsaXN0ZW4gc3RhdGUgd2hpY2gKKyAgICAgICAgICAgIGlzIHdpbGxpbmcgdG8gYWNjZXB0IGNvbm5lY3Rpb25zIGZvciBhbnkgSVAKKyAgICAgICAgICAgIGludGVyZmFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIG5vZGUsIHRoZSB2YWx1ZQorICAgICAgICAgICAgMC4wLjAuMCBpcyB1c2VkLiIKKyAgICA6Oj0geyB0Y3BDb25uRW50cnkgMiB9CisKK3RjcENvbm5Mb2NhbFBvcnQgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIgKDAuLjY1NTM1KQorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBsb2NhbCBwb3J0IG51bWJlciBmb3IgdGhpcyBUQ1AgY29ubmVjdGlvbi4iCisgICAgOjo9IHsgdGNwQ29ubkVudHJ5IDMgfQorCit0Y3BDb25uUmVtQWRkcmVzcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSXBBZGRyZXNzCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHJlbW90ZSBJUCBhZGRyZXNzIGZvciB0aGlzIFRDUCBjb25uZWN0aW9uLiIKKyAgICA6Oj0geyB0Y3BDb25uRW50cnkgNCB9CisKK3RjcENvbm5SZW1Qb3J0IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSICgwLi42NTUzNSkKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgcmVtb3RlIHBvcnQgbnVtYmVyIGZvciB0aGlzIFRDUCBjb25uZWN0aW9uLiIKKyAgICA6Oj0geyB0Y3BDb25uRW50cnkgNSB9CisKKworLS0gYWRkaXRpb25hbCBUQ1Agb2JqZWN0cworCit0Y3BJbkVycnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIHNlZ21lbnRzIHJlY2VpdmVkIGluIGVycm9yCisgICAgICAgICAgICAoZS5nLiwgYmFkIFRDUCBjaGVja3N1bXMpLiIKKyAgICA6Oj0geyB0Y3AgMTQgfQorCit0Y3BPdXRSc3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBUQ1Agc2VnbWVudHMgc2VudCBjb250YWluaW5nIHRoZQorICAgICAgICAgICAgUlNUIGZsYWcuIgorICAgIDo6PSB7IHRjcCAxNSB9CisKKworLS0gdGhlIFVEUCBncm91cAorCistLSBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgVURQIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgYWxsCistLSBzeXN0ZW1zIHdoaWNoIGltcGxlbWVudCB0aGUgVURQLgorCit1ZHBJbkRhdGFncmFtcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgVURQIGRhdGFncmFtcyBkZWxpdmVyZWQgdG8KKyAgICAgICAgICAgIFVEUCB1c2Vycy4iCisgICAgOjo9IHsgdWRwIDEgfQorCit1ZHBOb1BvcnRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiByZWNlaXZlZCBVRFAgZGF0YWdyYW1zIGZvcgorICAgICAgICAgICAgd2hpY2ggdGhlcmUgd2FzIG5vIGFwcGxpY2F0aW9uIGF0IHRoZSBkZXN0aW5hdGlvbgorICAgICAgICAgICAgcG9ydC4iCisgICAgOjo9IHsgdWRwIDIgfQorCit1ZHBJbkVycm9ycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgcmVjZWl2ZWQgVURQIGRhdGFncmFtcyB0aGF0IGNvdWxkCisgICAgICAgICAgICBub3QgYmUgZGVsaXZlcmVkIGZvciByZWFzb25zIG90aGVyIHRoYW4gdGhlIGxhY2sKKyAgICAgICAgICAgIG9mIGFuIGFwcGxpY2F0aW9uIGF0IHRoZSBkZXN0aW5hdGlvbiBwb3J0LiIKKyAgICA6Oj0geyB1ZHAgMyB9CisKK3VkcE91dERhdGFncmFtcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgVURQIGRhdGFncmFtcyBzZW50IGZyb20gdGhpcworICAgICAgICAgICAgZW50aXR5LiIKKyAgICA6Oj0geyB1ZHAgNCB9CisKKworLS0gdGhlIFVEUCBMaXN0ZW5lciB0YWJsZQorCistLSBUaGUgVURQIGxpc3RlbmVyIHRhYmxlIGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoaXMKKy0tIGVudGl0eSdzIFVEUCBlbmQtcG9pbnRzIG9uIHdoaWNoIGEgbG9jYWwgYXBwbGljYXRpb24gaXMKKy0tIGN1cnJlbnRseSBhY2NlcHRpbmcgZGF0YWdyYW1zLgorCit1ZHBUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgU0VRVUVOQ0UgT0YgVWRwRW50cnkKKyAgICBBQ0NFU1MgIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgdGFibGUgY29udGFpbmluZyBVRFAgbGlzdGVuZXIgaW5mb3JtYXRpb24uIgorICAgIDo6PSB7IHVkcCA1IH0KKwordWRwRW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIFVkcEVudHJ5CisgICAgQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJJbmZvcm1hdGlvbiBhYm91dCBhIHBhcnRpY3VsYXIgY3VycmVudCBVRFAKKyAgICAgICAgICAgIGxpc3RlbmVyLiIKKyAgICBJTkRFWCAgIHsgdWRwTG9jYWxBZGRyZXNzLCB1ZHBMb2NhbFBvcnQgfQorICAgIDo6PSB7IHVkcFRhYmxlIDEgfQorCitVZHBFbnRyeSA6Oj0KKyAgICBTRVFVRU5DRSB7CisgICAgICAgIHVkcExvY2FsQWRkcmVzcworICAgICAgICAgICAgSXBBZGRyZXNzLAorICAgICAgICB1ZHBMb2NhbFBvcnQKKyAgICAgICAgICAgIElOVEVHRVIgKDAuLjY1NTM1KQorICAgIH0KKwordWRwTG9jYWxBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJcEFkZHJlc3MKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbG9jYWwgSVAgYWRkcmVzcyBmb3IgdGhpcyBVRFAgbGlzdGVuZXIuICBJbgorICAgICAgICAgICAgdGhlIGNhc2Ugb2YgYSBVRFAgbGlzdGVuZXIgd2hpY2ggaXMgd2lsbGluZyB0bworICAgICAgICAgICAgYWNjZXB0IGRhdGFncmFtcyBmb3IgYW55IElQIGludGVyZmFjZSBhc3NvY2lhdGVkCisgICAgICAgICAgICB3aXRoIHRoZSBub2RlLCB0aGUgdmFsdWUgMC4wLjAuMCBpcyB1c2VkLiIKKyAgICA6Oj0geyB1ZHBFbnRyeSAxIH0KKwordWRwTG9jYWxQb3J0IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSICgwLi42NTUzNSkKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbG9jYWwgcG9ydCBudW1iZXIgZm9yIHRoaXMgVURQIGxpc3RlbmVyLiIKKyAgICA6Oj0geyB1ZHBFbnRyeSAyIH0KKworCistLSB0aGUgRUdQIGdyb3VwCisKKy0tIEltcGxlbWVudGF0aW9uIG9mIHRoZSBFR1AgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBhbGwKKy0tIHN5c3RlbXMgd2hpY2ggaW1wbGVtZW50IHRoZSBFR1AuCisKK2VncEluTXNncyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgRUdQIG1lc3NhZ2VzIHJlY2VpdmVkIHdpdGhvdXQKKyAgICAgICAgICAgIGVycm9yLiIKKyAgICA6Oj0geyBlZ3AgMSB9CisKK2VncEluRXJyb3JzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBFR1AgbWVzc2FnZXMgcmVjZWl2ZWQgdGhhdCBwcm92ZWQKKyAgICAgICAgICAgIHRvIGJlIGluIGVycm9yLiIKKyAgICA6Oj0geyBlZ3AgMiB9CisKK2VncE91dE1zZ3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIGxvY2FsbHkgZ2VuZXJhdGVkIEVHUAorICAgICAgICAgICAgbWVzc2FnZXMuIgorICAgIDo6PSB7IGVncCAzIH0KKworZWdwT3V0RXJyb3JzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBsb2NhbGx5IGdlbmVyYXRlZCBFR1AgbWVzc2FnZXMgbm90CisgICAgICAgICAgICBzZW50IGR1ZSB0byByZXNvdXJjZSBsaW1pdGF0aW9ucyB3aXRoaW4gYW4gRUdQCisgICAgICAgICAgICBlbnRpdHkuIgorICAgIDo6PSB7IGVncCA0IH0KKworCistLSB0aGUgRUdQIE5laWdoYm9yIHRhYmxlCisKKy0tIFRoZSBFR1AgbmVpZ2hib3IgdGFibGUgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhpcworLS0gZW50aXR5J3MgRUdQIG5laWdoYm9ycy4KKworZWdwTmVpZ2hUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgU0VRVUVOQ0UgT0YgRWdwTmVpZ2hFbnRyeQorICAgIEFDQ0VTUyAgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIEVHUCBuZWlnaGJvciB0YWJsZS4iCisgICAgOjo9IHsgZWdwIDUgfQorCitlZ3BOZWlnaEVudHJ5IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBFZ3BOZWlnaEVudHJ5CisgICAgQUNDRVNTICBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJJbmZvcm1hdGlvbiBhYm91dCB0aGlzIGVudGl0eSdzIHJlbGF0aW9uc2hpcCB3aXRoCisgICAgICAgICAgICBhIHBhcnRpY3VsYXIgRUdQIG5laWdoYm9yLiIKKyAgICBJTkRFWCAgIHsgZWdwTmVpZ2hBZGRyIH0KKyAgICA6Oj0geyBlZ3BOZWlnaFRhYmxlIDEgfQorCitFZ3BOZWlnaEVudHJ5IDo6PQorICAgIFNFUVVFTkNFIHsKKyAgICAgICAgZWdwTmVpZ2hTdGF0ZQorICAgICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgZWdwTmVpZ2hBZGRyCisgICAgICAgICAgICBJcEFkZHJlc3MsCisgICAgICAgIGVncE5laWdoQXMKKyAgICAgICAgICAgIElOVEVHRVIsCisgICAgICAgIGVncE5laWdoSW5Nc2dzCisgICAgICAgICAgICBDb3VudGVyLAorICAgICAgICBlZ3BOZWlnaEluRXJycworICAgICAgICAgICAgQ291bnRlciwKKyAgICAgICAgZWdwTmVpZ2hPdXRNc2dzCisgICAgICAgICAgICBDb3VudGVyLAorICAgICAgICBlZ3BOZWlnaE91dEVycnMKKyAgICAgICAgICAgIENvdW50ZXIsCisgICAgICAgIGVncE5laWdoSW5FcnJNc2dzCisgICAgICAgICAgICBDb3VudGVyLAorICAgICAgICBlZ3BOZWlnaE91dEVyck1zZ3MKKyAgICAgICAgICAgIENvdW50ZXIsCisgICAgICAgIGVncE5laWdoU3RhdGVVcHMKKyAgICAgICAgICAgIENvdW50ZXIsCisgICAgICAgIGVncE5laWdoU3RhdGVEb3ducworICAgICAgICAgICAgQ291bnRlciwKKyAgICAgICAgZWdwTmVpZ2hJbnRlcnZhbEhlbGxvCisgICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICBlZ3BOZWlnaEludGVydmFsUG9sbAorICAgICAgICAgICAgSU5URUdFUiwKKyAgICAgICAgZWdwTmVpZ2hNb2RlCisgICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICBlZ3BOZWlnaEV2ZW50VHJpZ2dlcgorICAgICAgICAgICAgSU5URUdFUgorICAgIH0KKworZWdwTmVpZ2hTdGF0ZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgaWRsZSgxKSwKKyAgICAgICAgICAgICAgICBhY3F1aXNpdGlvbigyKSwKKyAgICAgICAgICAgICAgICBkb3duKDMpLAorICAgICAgICAgICAgICAgIHVwKDQpLAorICAgICAgICAgICAgICAgIGNlYXNlKDUpCisgICAgICAgICAgICB9CisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIEVHUCBzdGF0ZSBvZiB0aGUgbG9jYWwgc3lzdGVtIHdpdGggcmVzcGVjdCB0bworICAgICAgICAgICAgdGhpcyBlbnRyeSdzIEVHUCBuZWlnaGJvci4gIEVhY2ggRUdQIHN0YXRlIGlzCisgICAgICAgICAgICByZXByZXNlbnRlZCBieSBhIHZhbHVlIHRoYXQgaXMgb25lIGdyZWF0ZXIgdGhhbgorICAgICAgICAgICAgdGhlIG51bWVyaWNhbCB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggc2FpZCBzdGF0ZSBpbgorICAgICAgICAgICAgUkZDIDkwNC4iCisgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSAxIH0KKworZWdwTmVpZ2hBZGRyIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJcEFkZHJlc3MKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgSVAgYWRkcmVzcyBvZiB0aGlzIGVudHJ5J3MgRUdQIG5laWdoYm9yLiIKKyAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDIgfQorCitlZ3BOZWlnaEFzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIGF1dG9ub21vdXMgc3lzdGVtIG9mIHRoaXMgRUdQIHBlZXIuICBaZXJvCisgICAgICAgICAgICBzaG91bGQgYmUgc3BlY2lmaWVkIGlmIHRoZSBhdXRvbm9tb3VzIHN5c3RlbQorICAgICAgICAgICAgbnVtYmVyIG9mIHRoZSBuZWlnaGJvciBpcyBub3QgeWV0IGtub3duLiIKKyAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDMgfQorCitlZ3BOZWlnaEluTXNncyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgRUdQIG1lc3NhZ2VzIHJlY2VpdmVkIHdpdGhvdXQgZXJyb3IKKyAgICAgICAgICAgIGZyb20gdGhpcyBFR1AgcGVlci4iCisgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSA0IH0KKworZWdwTmVpZ2hJbkVycnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIEVHUCBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIHRoaXMgRUdQCisgICAgICAgICAgICBwZWVyIHRoYXQgcHJvdmVkIHRvIGJlIGluIGVycm9yIChlLmcuLCBiYWQgRUdQCisgICAgICAgICAgICBjaGVja3N1bSkuIgorICAgIDo6PSB7IGVncE5laWdoRW50cnkgNSB9CisKK2VncE5laWdoT3V0TXNncyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgbG9jYWxseSBnZW5lcmF0ZWQgRUdQIG1lc3NhZ2VzIHRvCisgICAgICAgICAgICB0aGlzIEVHUCBwZWVyLiIKKyAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDYgfQorCitlZ3BOZWlnaE91dEVycnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIGxvY2FsbHkgZ2VuZXJhdGVkIEVHUCBtZXNzYWdlcyBub3QKKyAgICAgICAgICAgIHNlbnQgdG8gdGhpcyBFR1AgcGVlciBkdWUgdG8gcmVzb3VyY2UgbGltaXRhdGlvbnMKKyAgICAgICAgICAgIHdpdGhpbiBhbiBFR1AgZW50aXR5LiIKKyAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDcgfQorCitlZ3BOZWlnaEluRXJyTXNncyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgRUdQLWRlZmluZWQgZXJyb3IgbWVzc2FnZXMgcmVjZWl2ZWQKKyAgICAgICAgICAgIGZyb20gdGhpcyBFR1AgcGVlci4iCisgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSA4IH0KKworZWdwTmVpZ2hPdXRFcnJNc2dzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBFR1AtZGVmaW5lZCBlcnJvciBtZXNzYWdlcyBzZW50IHRvCisgICAgICAgICAgICB0aGlzIEVHUCBwZWVyLiIKKyAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDkgfQorCitlZ3BOZWlnaFN0YXRlVXBzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIG51bWJlciBvZiBFR1Agc3RhdGUgdHJhbnNpdGlvbnMgdG8gdGhlIFVQCisgICAgICAgICAgICBzdGF0ZSB3aXRoIHRoaXMgRUdQIHBlZXIuIgorICAgIDo6PSB7IGVncE5laWdoRW50cnkgMTAgfQorCitlZ3BOZWlnaFN0YXRlRG93bnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIEVHUCBzdGF0ZSB0cmFuc2l0aW9ucyBmcm9tIHRoZSBVUAorICAgICAgICAgICAgc3RhdGUgdG8gYW55IG90aGVyIHN0YXRlIHdpdGggdGhpcyBFR1AgcGVlci4iCisgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSAxMSB9CisKK2VncE5laWdoSW50ZXJ2YWxIZWxsbyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgSU5URUdFUgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBpbnRlcnZhbCBiZXR3ZWVuIEVHUCBIZWxsbyBjb21tYW5kCisgICAgICAgICAgICByZXRyYW5zbWlzc2lvbnMgKGluIGh1bmRyZWR0aHMgb2YgYSBzZWNvbmQpLiAgVGhpcworICAgICAgICAgICAgcmVwcmVzZW50cyB0aGUgdDEgdGltZXIgYXMgZGVmaW5lZCBpbiBSRkMgOTA0LiIKKyAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDEyIH0KKworZWdwTmVpZ2hJbnRlcnZhbFBvbGwgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgaW50ZXJ2YWwgYmV0d2VlbiBFR1AgcG9sbCBjb21tYW5kCisgICAgICAgICAgICByZXRyYW5zbWlzc2lvbnMgKGluIGh1bmRyZWR0aHMgb2YgYSBzZWNvbmQpLiAgVGhpcworICAgICAgICAgICAgcmVwcmVzZW50cyB0aGUgdDMgdGltZXIgYXMgZGVmaW5lZCBpbiBSRkMgOTA0LiIKKyAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDEzIH0KKworZWdwTmVpZ2hNb2RlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSIHsgYWN0aXZlKDEpLCBwYXNzaXZlKDIpIH0KKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgcG9sbGluZyBtb2RlIG9mIHRoaXMgRUdQIGVudGl0eSwgZWl0aGVyCisgICAgICAgICAgICBwYXNzaXZlIG9yIGFjdGl2ZS4iCisgICAgOjo9IHsgZWdwTmVpZ2hFbnRyeSAxNCB9CisKK2VncE5laWdoRXZlbnRUcmlnZ2VyIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSIHsgc3RhcnQoMSksIHN0b3AoMikgfQorICAgIEFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIGNvbnRyb2wgdmFyaWFibGUgdXNlZCB0byB0cmlnZ2VyIG9wZXJhdG9yLQorICAgICAgICAgICAgaW5pdGlhdGVkIFN0YXJ0IGFuZCBTdG9wIGV2ZW50cy4gIFdoZW4gcmVhZCwgdGhpcworICAgICAgICAgICAgdmFyaWFibGUgYWx3YXlzIHJldHVybnMgdGhlIG1vc3QgcmVjZW50IHZhbHVlIHRoYXQKKyAgICAgICAgICAgIGVncE5laWdoRXZlbnRUcmlnZ2VyIHdhcyBzZXQgdG8uICBJZiBpdCBoYXMgbm90CisgICAgICAgICAgICBiZWVuIHNldCBzaW5jZSB0aGUgbGFzdCBpbml0aWFsaXphdGlvbiBvZiB0aGUKKyAgICAgICAgICAgIG5ldHdvcmsgbWFuYWdlbWVudCBzdWJzeXN0ZW0gb24gdGhlIG5vZGUsIGl0CisgICAgICAgICAgICByZXR1cm5zIGEgdmFsdWUgb2YgYHN0b3AnLgorCisgICAgICAgICAgICBXaGVuIHNldCwgdGhpcyB2YXJpYWJsZSBjYXVzZXMgYSBTdGFydCBvciBTdG9wCisgICAgICAgICAgICBldmVudCBvbiB0aGUgc3BlY2lmaWVkIG5laWdoYm9yLCBhcyBzcGVjaWZpZWQgb24KKyAgICAgICAgICAgIHBhZ2VzIDgtMTAgb2YgUkZDIDkwNC4gIEJyaWVmbHksIGEgU3RhcnQgZXZlbnQKKyAgICAgICAgICAgIGNhdXNlcyBhbiBJZGxlIHBlZXIgdG8gYmVnaW4gbmVpZ2hib3IgYWNxdWlzaXRpb24KKyAgICAgICAgICAgIGFuZCBhIG5vbi1JZGxlIHBlZXIgdG8gcmVpbml0aWF0ZSBuZWlnaGJvcgorICAgICAgICAgICAgYWNxdWlzaXRpb24uICBBIHN0b3AgZXZlbnQgY2F1c2VzIGEgbm9uLUlkbGUgcGVlcgorICAgICAgICAgICAgdG8gcmV0dXJuIHRvIHRoZSBJZGxlIHN0YXRlIHVudGlsIGEgU3RhcnQgZXZlbnQKKyAgICAgICAgICAgIG9jY3VycywgZWl0aGVyIHZpYSBlZ3BOZWlnaEV2ZW50VHJpZ2dlciBvcgorICAgICAgICAgICAgb3RoZXJ3aXNlLiIKKyAgICA6Oj0geyBlZ3BOZWlnaEVudHJ5IDE1IH0KKworCistLSBhZGRpdGlvbmFsIEVHUCBvYmplY3RzCisKK2VncEFzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBJTlRFR0VSCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIGF1dG9ub21vdXMgc3lzdGVtIG51bWJlciBvZiB0aGlzIEVHUCBlbnRpdHkuIgorICAgIDo6PSB7IGVncCA2IH0KKworLS0gdGhlIFRyYW5zbWlzc2lvbiBncm91cAorCistLSBCYXNlZCBvbiB0aGUgdHJhbnNtaXNzaW9uIG1lZGlhIHVuZGVybHlpbmcgZWFjaCBpbnRlcmZhY2UKKy0tIG9uIGEgc3lzdGVtLCB0aGUgY29ycmVzcG9uZGluZyBwb3J0aW9uIG9mIHRoZSBUcmFuc21pc3Npb24KKy0tIGdyb3VwIGlzIG1hbmRhdG9yeSBmb3IgdGhhdCBzeXN0ZW0uCisKKy0tIFdoZW4gSW50ZXJuZXQtc3RhbmRhcmQgZGVmaW5pdGlvbnMgZm9yIG1hbmFnaW5nCistLSB0cmFuc21pc3Npb24gbWVkaWEgYXJlIGRlZmluZWQsIHRoZSB0cmFuc21pc3Npb24gZ3JvdXAgaXMKKy0tIHVzZWQgdG8gcHJvdmlkZSBhIHByZWZpeCBmb3IgdGhlIG5hbWVzIG9mIHRob3NlIG9iamVjdHMuCisKKy0tIFR5cGljYWxseSwgc3VjaCBkZWZpbml0aW9ucyByZXNpZGUgaW4gdGhlIGV4cGVyaW1lbnRhbAorLS0gcG9ydGlvbiBvZiB0aGUgTUlCIHVudGlsIHRoZXkgYXJlICJwcm92ZW4iLCB0aGVuIGFzIGEKKy0tIHBhcnQgb2YgdGhlIEludGVybmV0IHN0YW5kYXJkaXphdGlvbiBwcm9jZXNzLCB0aGUKKy0tIGRlZmluaXRpb25zIGFyZSBhY2NvcmRpbmdseSBlbGV2YXRlZCBhbmQgYSBuZXcgb2JqZWN0CistLSBpZGVudGlmaWVyLCB1bmRlciB0aGUgdHJhbnNtaXNzaW9uIGdyb3VwIGlzIGRlZmluZWQuIEJ5CistLSBjb252ZW50aW9uLCB0aGUgbmFtZSBhc3NpZ25lZCBpczoKKy0tCistLSAgICAgdHlwZSBPQkpFQ1QgSURFTlRJRklFUiAgICA6Oj0geyB0cmFuc21pc3Npb24gbnVtYmVyIH0KKy0tCistLSB3aGVyZSAidHlwZSIgaXMgdGhlIHN5bWJvbGljIHZhbHVlIHVzZWQgZm9yIHRoZSBtZWRpYSBpbgorLS0gdGhlIGlmVHlwZSBjb2x1bW4gb2YgdGhlIGlmVGFibGUgb2JqZWN0LCBhbmQgIm51bWJlciIgaXMKKy0tIHRoZSBhY3R1YWwgaW50ZWdlciB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBzeW1ib2wuCisKKworLS0gdGhlIFNOTVAgZ3JvdXAKKworLS0gSW1wbGVtZW50YXRpb24gb2YgdGhlIFNOTVAgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBhbGwKKy0tIHN5c3RlbXMgd2hpY2ggc3VwcG9ydCBhbiBTTk1QIHByb3RvY29sIGVudGl0eS4gIFNvbWUgb2YKKy0tIHRoZSBvYmplY3RzIGRlZmluZWQgYmVsb3cgd2lsbCBiZSB6ZXJvLXZhbHVlZCBpbiB0aG9zZQorLS0gU05NUCBpbXBsZW1lbnRhdGlvbnMgdGhhdCBhcmUgb3B0aW1pemVkIHRvIHN1cHBvcnQgb25seQorLS0gdGhvc2UgZnVuY3Rpb25zIHNwZWNpZmljIHRvIGVpdGhlciBhIG1hbmFnZW1lbnQgYWdlbnQgb3IKKy0tIGEgbWFuYWdlbWVudCBzdGF0aW9uLiAgSW4gcGFydGljdWxhciwgaXQgc2hvdWxkIGJlCistLSBvYnNlcnZlZCB0aGF0IHRoZSBvYmplY3RzIGJlbG93IHJlZmVyIHRvIGFuIFNOTVAgZW50aXR5LAorLS0gYW5kIHRoZXJlIG1heSBiZSBzZXZlcmFsIFNOTVAgZW50aXRpZXMgcmVzaWRpbmcgb24gYQorLS0gbWFuYWdlZCBub2RlIChlLmcuLCBpZiB0aGUgbm9kZSBpcyBob3N0aW5nIGFjdGluZyBhcworLS0gYSBtYW5hZ2VtZW50IHN0YXRpb24pLgorCitzbm1wSW5Qa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBNZXNzYWdlcyBkZWxpdmVyZWQgdG8gdGhlCisgICAgICAgICAgICBTTk1QIGVudGl0eSBmcm9tIHRoZSB0cmFuc3BvcnQgc2VydmljZS4iCisgICAgOjo9IHsgc25tcCAxIH0KKworc25tcE91dFBrdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgTWVzc2FnZXMgd2hpY2ggd2VyZQorICAgICAgICAgICAgcGFzc2VkIGZyb20gdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IHRvIHRoZQorICAgICAgICAgICAgdHJhbnNwb3J0IHNlcnZpY2UuIgorICAgIDo6PSB7IHNubXAgMiB9CisKK3NubXBJbkJhZFZlcnNpb25zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIE1lc3NhZ2VzIHdoaWNoIHdlcmUKKyAgICAgICAgICAgIGRlbGl2ZXJlZCB0byB0aGUgU05NUCBwcm90b2NvbCBlbnRpdHkgYW5kIHdlcmUgZm9yCisgICAgICAgICAgICBhbiB1bnN1cHBvcnRlZCBTTk1QIHZlcnNpb24uIgorICAgIDo6PSB7IHNubXAgMyB9CisKK3NubXBJbkJhZENvbW11bml0eU5hbWVzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIE1lc3NhZ2VzIGRlbGl2ZXJlZCB0bworICAgICAgICAgICAgdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IHdoaWNoIHVzZWQgYSBTTk1QCisgICAgICAgICAgICBjb21tdW5pdHkgbmFtZSBub3Qga25vd24gdG8gc2FpZCBlbnRpdHkuIgorICAgIDo6PSB7IHNubXAgNCB9CisKK3NubXBJbkJhZENvbW11bml0eVVzZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgTWVzc2FnZXMgZGVsaXZlcmVkIHRvCisgICAgICAgICAgICB0aGUgU05NUCBwcm90b2NvbCBlbnRpdHkgd2hpY2ggcmVwcmVzZW50ZWQgYW4gU05NUAorICAgICAgICAgICAgb3BlcmF0aW9uIHdoaWNoIHdhcyBub3QgYWxsb3dlZCBieSB0aGUgU05NUAorICAgICAgICAgICAgY29tbXVuaXR5IG5hbWVkIGluIHRoZSBNZXNzYWdlLiIKKyAgICA6Oj0geyBzbm1wIDUgfQorCitzbm1wSW5BU05QYXJzZUVycnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIEFTTi4xIG9yIEJFUiBlcnJvcnMKKyAgICAgICAgICAgIGVuY291bnRlcmVkIGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eSB3aGVuCisgICAgICAgICAgICBkZWNvZGluZyByZWNlaXZlZCBTTk1QIE1lc3NhZ2VzLiIKKyAgICA6Oj0geyBzbm1wIDYgfQorCistLSB7IHNubXAgNyB9IGlzIG5vdCB1c2VkCisKK3NubXBJblRvb0JpZ3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgUERVcyB3aGljaCB3ZXJlCisgICAgICAgICAgICBkZWxpdmVyZWQgdG8gdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IGFuZCBmb3IKKyAgICAgICAgICAgIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUgZXJyb3Itc3RhdHVzIGZpZWxkIGlzCisgICAgICAgICAgICBgdG9vQmlnJy4iCisgICAgOjo9IHsgc25tcCA4IH0KKworc25tcEluTm9TdWNoTmFtZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgUERVcyB3aGljaCB3ZXJlCisgICAgICAgICAgICBkZWxpdmVyZWQgdG8gdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IGFuZCBmb3IKKyAgICAgICAgICAgIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUgZXJyb3Itc3RhdHVzIGZpZWxkIGlzCisgICAgICAgICAgICBgbm9TdWNoTmFtZScuIgorICAgIDo6PSB7IHNubXAgOSB9CisKK3NubXBJbkJhZFZhbHVlcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBQRFVzIHdoaWNoIHdlcmUKKyAgICAgICAgICAgIGRlbGl2ZXJlZCB0byB0aGUgU05NUCBwcm90b2NvbCBlbnRpdHkgYW5kIGZvcgorICAgICAgICAgICAgd2hpY2ggdGhlIHZhbHVlIG9mIHRoZSBlcnJvci1zdGF0dXMgZmllbGQgaXMKKyAgICAgICAgICAgIGBiYWRWYWx1ZScuIgorICAgIDo6PSB7IHNubXAgMTAgfQorCitzbm1wSW5SZWFkT25seXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIHZhbGlkIFNOTVAgUERVcyB3aGljaCB3ZXJlCisgICAgICAgICAgICBkZWxpdmVyZWQgdG8gdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IGFuZCBmb3IKKyAgICAgICAgICAgIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUgZXJyb3Itc3RhdHVzIGZpZWxkIGlzCisgICAgICAgICAgICBgcmVhZE9ubHknLiAgSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgaXQgaXMgYQorICAgICAgICAgICAgcHJvdG9jb2wgZXJyb3IgdG8gZ2VuZXJhdGUgYW4gU05NUCBQRFUgd2hpY2gKKyAgICAgICAgICAgIGNvbnRhaW5zIHRoZSB2YWx1ZSBgcmVhZE9ubHknIGluIHRoZSBlcnJvci1zdGF0dXMKKyAgICAgICAgICAgIGZpZWxkLCBhcyBzdWNoIHRoaXMgb2JqZWN0IGlzIHByb3ZpZGVkIGFzIGEgbWVhbnMKKyAgICAgICAgICAgIG9mIGRldGVjdGluZyBpbmNvcnJlY3QgaW1wbGVtZW50YXRpb25zIG9mIHRoZQorICAgICAgICAgICAgU05NUC4iCisgICAgOjo9IHsgc25tcCAxMSB9CisKK3NubXBJbkdlbkVycnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgUERVcyB3aGljaCB3ZXJlCisgICAgICAgICAgICBkZWxpdmVyZWQgdG8gdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IGFuZCBmb3IKKyAgICAgICAgICAgIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUgZXJyb3Itc3RhdHVzIGZpZWxkIGlzCisgICAgICAgICAgICBgZ2VuRXJyJy4iCisgICAgOjo9IHsgc25tcCAxMiB9CisKK3NubXBJblRvdGFsUmVxVmFycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgTUlCIG9iamVjdHMgd2hpY2ggaGF2ZSBiZWVuCisgICAgICAgICAgICByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5IGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eQorICAgICAgICAgICAgYXMgdGhlIHJlc3VsdCBvZiByZWNlaXZpbmcgdmFsaWQgU05NUCBHZXQtUmVxdWVzdAorICAgICAgICAgICAgYW5kIEdldC1OZXh0IFBEVXMuIgorICAgIDo6PSB7IHNubXAgMTMgfQorCitzbm1wSW5Ub3RhbFNldFZhcnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIE1JQiBvYmplY3RzIHdoaWNoIGhhdmUgYmVlbgorICAgICAgICAgICAgYWx0ZXJlZCBzdWNjZXNzZnVsbHkgYnkgdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5CisgICAgICAgICAgICBhcyB0aGUgcmVzdWx0IG9mIHJlY2VpdmluZyB2YWxpZCBTTk1QIFNldC1SZXF1ZXN0CisgICAgICAgICAgICBQRFVzLiIKKyAgICA6Oj0geyBzbm1wIDE0IH0KKworc25tcEluR2V0UmVxdWVzdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgR2V0LVJlcXVlc3QgUERVcyB3aGljaAorICAgICAgICAgICAgaGF2ZSBiZWVuIGFjY2VwdGVkIGFuZCBwcm9jZXNzZWQgYnkgdGhlIFNOTVAKKyAgICAgICAgICAgIHByb3RvY29sIGVudGl0eS4iCisgICAgOjo9IHsgc25tcCAxNSB9CisKK3NubXBJbkdldE5leHRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIEdldC1OZXh0IFBEVXMgd2hpY2ggaGF2ZQorICAgICAgICAgICAgYmVlbiBhY2NlcHRlZCBhbmQgcHJvY2Vzc2VkIGJ5IHRoZSBTTk1QIHByb3RvY29sCisgICAgICAgICAgICBlbnRpdHkuIgorICAgIDo6PSB7IHNubXAgMTYgfQorCitzbm1wSW5TZXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBTZXQtUmVxdWVzdCBQRFVzIHdoaWNoCisgICAgICAgICAgICBoYXZlIGJlZW4gYWNjZXB0ZWQgYW5kIHByb2Nlc3NlZCBieSB0aGUgU05NUAorICAgICAgICAgICAgcHJvdG9jb2wgZW50aXR5LiIKKyAgICA6Oj0geyBzbm1wIDE3IH0KKworc25tcEluR2V0UmVzcG9uc2VzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIEdldC1SZXNwb25zZSBQRFVzIHdoaWNoCisgICAgICAgICAgICBoYXZlIGJlZW4gYWNjZXB0ZWQgYW5kIHByb2Nlc3NlZCBieSB0aGUgU05NUAorICAgICAgICAgICAgcHJvdG9jb2wgZW50aXR5LiIKKyAgICA6Oj0geyBzbm1wIDE4IH0KKworc25tcEluVHJhcHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgVHJhcCBQRFVzIHdoaWNoIGhhdmUKKyAgICAgICAgICAgIGJlZW4gYWNjZXB0ZWQgYW5kIHByb2Nlc3NlZCBieSB0aGUgU05NUCBwcm90b2NvbAorICAgICAgICAgICAgZW50aXR5LiIKKyAgICA6Oj0geyBzbm1wIDE5IH0KKworc25tcE91dFRvb0JpZ3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgUERVcyB3aGljaCB3ZXJlCisgICAgICAgICAgICBnZW5lcmF0ZWQgYnkgdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IGFuZCBmb3IKKyAgICAgICAgICAgIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUgZXJyb3Itc3RhdHVzIGZpZWxkIGlzCisgICAgICAgICAgICBgdG9vQmlnLiciCisgICAgOjo9IHsgc25tcCAyMCB9CisKK3NubXBPdXROb1N1Y2hOYW1lcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBQRFVzIHdoaWNoIHdlcmUKKyAgICAgICAgICAgIGdlbmVyYXRlZCBieSB0aGUgU05NUCBwcm90b2NvbCBlbnRpdHkgYW5kIGZvcgorICAgICAgICAgICAgd2hpY2ggdGhlIHZhbHVlIG9mIHRoZSBlcnJvci1zdGF0dXMgaXMKKyAgICAgICAgICAgIGBub1N1Y2hOYW1lJy4iCisgICAgOjo9IHsgc25tcCAyMSB9CisKK3NubXBPdXRCYWRWYWx1ZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgUERVcyB3aGljaCB3ZXJlCisgICAgICAgICAgICBnZW5lcmF0ZWQgYnkgdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IGFuZCBmb3IKKyAgICAgICAgICAgIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUgZXJyb3Itc3RhdHVzIGZpZWxkIGlzCisgICAgICAgICAgICBgYmFkVmFsdWUnLiIKKyAgICA6Oj0geyBzbm1wIDIyIH0KKworLS0geyBzbm1wIDIzIH0gaXMgbm90IHVzZWQKKworc25tcE91dEdlbkVycnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgUERVcyB3aGljaCB3ZXJlCisgICAgICAgICAgICBnZW5lcmF0ZWQgYnkgdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IGFuZCBmb3IKKyAgICAgICAgICAgIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUgZXJyb3Itc3RhdHVzIGZpZWxkIGlzCisgICAgICAgICAgICBgZ2VuRXJyJy4iCisgICAgOjo9IHsgc25tcCAyNCB9CisKK3NubXBPdXRHZXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBHZXQtUmVxdWVzdCBQRFVzIHdoaWNoCisgICAgICAgICAgICBoYXZlIGJlZW4gZ2VuZXJhdGVkIGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eS4iCisgICAgOjo9IHsgc25tcCAyNSB9CisKK3NubXBPdXRHZXROZXh0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBHZXQtTmV4dCBQRFVzIHdoaWNoIGhhdmUKKyAgICAgICAgICAgIGJlZW4gZ2VuZXJhdGVkIGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eS4iCisgICAgOjo9IHsgc25tcCAyNiB9CisKK3NubXBPdXRTZXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgQ291bnRlcgorICAgIEFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBTZXQtUmVxdWVzdCBQRFVzIHdoaWNoCisgICAgICAgICAgICBoYXZlIGJlZW4gZ2VuZXJhdGVkIGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eS4iCisgICAgOjo9IHsgc25tcCAyNyB9CisKK3NubXBPdXRHZXRSZXNwb25zZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIENvdW50ZXIKKyAgICBBQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgbWFuZGF0b3J5CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgR2V0LVJlc3BvbnNlIFBEVXMgd2hpY2gKKyAgICAgICAgICAgIGhhdmUgYmVlbiBnZW5lcmF0ZWQgYnkgdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5LiIKKyAgICA6Oj0geyBzbm1wIDI4IH0KKworc25tcE91dFRyYXBzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICBDb3VudGVyCisgICAgQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgIG1hbmRhdG9yeQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIFRyYXAgUERVcyB3aGljaCBoYXZlCisgICAgICAgICAgICBiZWVuIGdlbmVyYXRlZCBieSB0aGUgU05NUCBwcm90b2NvbCBlbnRpdHkuIgorICAgIDo6PSB7IHNubXAgMjkgfQorCitzbm1wRW5hYmxlQXV0aGVuVHJhcHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggIElOVEVHRVIgeyBlbmFibGVkKDEpLCBkaXNhYmxlZCgyKSB9CisgICAgQUNDRVNTICByZWFkLXdyaXRlCisgICAgU1RBVFVTICBtYW5kYXRvcnkKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkluZGljYXRlcyB3aGV0aGVyIHRoZSBTTk1QIGFnZW50IHByb2Nlc3MgaXMKKyAgICAgICAgICAgIHBlcm1pdHRlZCB0byBnZW5lcmF0ZSBhdXRoZW50aWNhdGlvbi1mYWlsdXJlCisgICAgICAgICAgICB0cmFwcy4gIFRoZSB2YWx1ZSBvZiB0aGlzIG9iamVjdCBvdmVycmlkZXMgYW55CisgICAgICAgICAgICBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uOyBhcyBzdWNoLCBpdCBwcm92aWRlcyBhCisgICAgICAgICAgICBtZWFucyB3aGVyZWJ5IGFsbCBhdXRoZW50aWNhdGlvbi1mYWlsdXJlIHRyYXBzIG1heQorICAgICAgICAgICAgYmUgZGlzYWJsZWQuCisKKyAgICAgICAgICAgIE5vdGUgdGhhdCBpdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0aGF0IHRoaXMKKyAgICAgICAgICAgIG9iamVjdCBiZSBzdG9yZWQgaW4gbm9uLXZvbGF0aWxlIG1lbW9yeSBzbyB0aGF0IGl0CisgICAgICAgICAgICByZW1haW5zIGNvbnN0YW50IGJldHdlZW4gcmUtaW5pdGlhbGl6YXRpb25zIG9mIHRoZQorICAgICAgICAgICAgbmV0d29yayBtYW5hZ2VtZW50IHN5c3RlbS4iCisgICAgOjo9IHsgc25tcCAzMCB9CisKK0VORApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1NOTVB2Mi1DT05GIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1NOTVB2Mi1DT05GCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNGRiYmIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvU05NUHYyLUNPTkYKQEAgLTAsMCArMSwzMTggQEAKK1NOTVB2Mi1DT05GIERFRklOSVRJT05TIDo6PSBCRUdJTgorCitJTVBPUlRTIE9iamVjdE5hbWUsIE5vdGlmaWNhdGlvbk5hbWUsIE9iamVjdFN5bnRheAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIFNOTVB2Mi1TTUk7CisKKy0tIGRlZmluaXRpb25zIGZvciBjb25mb3JtYW5jZSBncm91cHMKKworT0JKRUNULUdST1VQIE1BQ1JPIDo6PQorQkVHSU4KKyAgICBUWVBFIE5PVEFUSU9OIDo6PQorICAgICAgICAgICAgICAgICAgT2JqZWN0c1BhcnQKKyAgICAgICAgICAgICAgICAgICJTVEFUVVMiIFN0YXR1cworICAgICAgICAgICAgICAgICAgIkRFU0NSSVBUSU9OIiBUZXh0CisgICAgICAgICAgICAgICAgICBSZWZlclBhcnQKKworICAgIFZBTFVFIE5PVEFUSU9OIDo6PQorICAgICAgICAgICAgICAgICAgdmFsdWUoVkFMVUUgT0JKRUNUIElERU5USUZJRVIpCisKKyAgICBPYmplY3RzUGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgICJPQkpFQ1RTIiAieyIgT2JqZWN0cyAifSIKKyAgICBPYmplY3RzIDo6PQorICAgICAgICAgICAgICAgICAgT2JqZWN0CisgICAgICAgICAgICAgICAgfCBPYmplY3RzICIsIiBPYmplY3QKKyAgICBPYmplY3QgOjo9CisgICAgICAgICAgICAgICAgICB2YWx1ZShPYmplY3ROYW1lKQorCisgICAgU3RhdHVzIDo6PQorICAgICAgICAgICAgICAgICAgImN1cnJlbnQiCisgICAgICAgICAgICAgICAgfCAiZGVwcmVjYXRlZCIKKyAgICAgICAgICAgICAgICB8ICJvYnNvbGV0ZSIKKworICAgIFJlZmVyUGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgICJSRUZFUkVOQ0UiIFRleHQKKyAgICAgICAgICAgICAgICB8IGVtcHR5CisKKyAgICAtLSBhIGNoYXJhY3RlciBzdHJpbmcgYXMgZGVmaW5lZCBpbiBbMl0KKyAgICBUZXh0IDo6PSB2YWx1ZShJQTVTdHJpbmcpCitFTkQKKworLS0gbW9yZSBkZWZpbml0aW9ucyBmb3IgY29uZm9ybWFuY2UgZ3JvdXBzCisKK05PVElGSUNBVElPTi1HUk9VUCBNQUNSTyA6Oj0KK0JFR0lOCisgICAgVFlQRSBOT1RBVElPTiA6Oj0KKyAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbnNQYXJ0CisgICAgICAgICAgICAgICAgICAiU1RBVFVTIiBTdGF0dXMKKyAgICAgICAgICAgICAgICAgICJERVNDUklQVElPTiIgVGV4dAorICAgICAgICAgICAgICAgICAgUmVmZXJQYXJ0CisKKyAgICBWQUxVRSBOT1RBVElPTiA6Oj0KKyAgICAgICAgICAgICAgICAgIHZhbHVlKFZBTFVFIE9CSkVDVCBJREVOVElGSUVSKQorCisgICAgTm90aWZpY2F0aW9uc1BhcnQgOjo9CisgICAgICAgICAgICAgICAgICAiTk9USUZJQ0FUSU9OUyIgInsiIE5vdGlmaWNhdGlvbnMgIn0iCisgICAgTm90aWZpY2F0aW9ucyA6Oj0KKyAgICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvbgorICAgICAgICAgICAgICAgIHwgTm90aWZpY2F0aW9ucyAiLCIgTm90aWZpY2F0aW9uCisgICAgTm90aWZpY2F0aW9uIDo6PQorICAgICAgICAgICAgICAgICAgdmFsdWUoTm90aWZpY2F0aW9uTmFtZSkKKworICAgIFN0YXR1cyA6Oj0KKyAgICAgICAgICAgICAgICAgICJjdXJyZW50IgorICAgICAgICAgICAgICAgIHwgImRlcHJlY2F0ZWQiCisgICAgICAgICAgICAgICAgfCAib2Jzb2xldGUiCisKKyAgICBSZWZlclBhcnQgOjo9CisgICAgICAgICAgICAgICAgICAiUkVGRVJFTkNFIiBUZXh0CisgICAgICAgICAgICAgICAgfCBlbXB0eQorCisgICAgLS0gYSBjaGFyYWN0ZXIgc3RyaW5nIGFzIGRlZmluZWQgaW4gWzJdCisgICAgVGV4dCA6Oj0gdmFsdWUoSUE1U3RyaW5nKQorRU5ECisKKy0tIGRlZmluaXRpb25zIGZvciBjb21wbGlhbmNlIHN0YXRlbWVudHMKKworTU9EVUxFLUNPTVBMSUFOQ0UgTUFDUk8gOjo9CitCRUdJTgorICAgIFRZUEUgTk9UQVRJT04gOjo9CisgICAgICAgICAgICAgICAgICAiU1RBVFVTIiBTdGF0dXMKKyAgICAgICAgICAgICAgICAgICJERVNDUklQVElPTiIgVGV4dAorICAgICAgICAgICAgICAgICAgUmVmZXJQYXJ0CisgICAgICAgICAgICAgICAgICBNb2R1bGVQYXJ0CisKKyAgICBWQUxVRSBOT1RBVElPTiA6Oj0KKyAgICAgICAgICAgICAgICAgIHZhbHVlKFZBTFVFIE9CSkVDVCBJREVOVElGSUVSKQorCisgICAgU3RhdHVzIDo6PQorICAgICAgICAgICAgICAgICAgImN1cnJlbnQiCisgICAgICAgICAgICAgICAgfCAiZGVwcmVjYXRlZCIKKyAgICAgICAgICAgICAgICB8ICJvYnNvbGV0ZSIKKworICAgIFJlZmVyUGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgICJSRUZFUkVOQ0UiIFRleHQKKyAgICAgICAgICAgICAgICB8IGVtcHR5CisKKyAgICBNb2R1bGVQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAgTW9kdWxlcworICAgIE1vZHVsZXMgOjo9CisgICAgICAgICAgICAgICAgICBNb2R1bGUKKyAgICAgICAgICAgICAgICB8IE1vZHVsZXMgTW9kdWxlCisgICAgTW9kdWxlIDo6PQorICAgICAgICAgICAgICAgICAgLS0gbmFtZSBvZiBtb2R1bGUgLS0KKyAgICAgICAgICAgICAgICAgICJNT0RVTEUiIE1vZHVsZU5hbWUKKyAgICAgICAgICAgICAgICAgIE1hbmRhdG9yeVBhcnQKKyAgICAgICAgICAgICAgICAgIENvbXBsaWFuY2VQYXJ0CisKKyAgICBNb2R1bGVOYW1lIDo6PQorICAgICAgICAgICAgICAgICAgLS0gaWRlbnRpZmllciBtdXN0IHN0YXJ0IHdpdGggdXBwZXJjYXNlIGxldHRlcgorICAgICAgICAgICAgICAgICAgaWRlbnRpZmllciBNb2R1bGVJZGVudGlmaWVyCisgICAgICAgICAgICAgICAgICAtLSBtdXN0IG5vdCBiZSBlbXB0eSB1bmxlc3MgY29udGFpbmVkCisgICAgICAgICAgICAgICAgICAtLSBpbiBNSUIgTW9kdWxlCisgICAgICAgICAgICAgICAgfCBlbXB0eQorICAgIE1vZHVsZUlkZW50aWZpZXIgOjo9CisgICAgICAgICAgICAgICAgICB2YWx1ZShPQkpFQ1QgSURFTlRJRklFUikKKyAgICAgICAgICAgICAgICB8IGVtcHR5CisKKyAgICBNYW5kYXRvcnlQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAgIk1BTkRBVE9SWS1HUk9VUFMiICJ7IiBHcm91cHMgIn0iCisgICAgICAgICAgICAgICAgfCBlbXB0eQorCisgICAgR3JvdXBzIDo6PQorICAgICAgICAgICAgICAgICAgR3JvdXAKKyAgICAgICAgICAgICAgICB8IEdyb3VwcyAiLCIgR3JvdXAKKyAgICBHcm91cCA6Oj0KKyAgICAgICAgICAgICAgICAgIHZhbHVlKE9CSkVDVCBJREVOVElGSUVSKQorCisgICAgQ29tcGxpYW5jZVBhcnQgOjo9CisgICAgICAgICAgICAgICAgICBDb21wbGlhbmNlcworICAgICAgICAgICAgICAgIHwgZW1wdHkKKworICAgIENvbXBsaWFuY2VzIDo6PQorICAgICAgICAgICAgICAgICAgQ29tcGxpYW5jZQorICAgICAgICAgICAgICAgIHwgQ29tcGxpYW5jZXMgQ29tcGxpYW5jZQorICAgIENvbXBsaWFuY2UgOjo9CisgICAgICAgICAgICAgICAgICBDb21wbGlhbmNlR3JvdXAKKyAgICAgICAgICAgICAgICB8IE9iamVjdAorCisgICAgQ29tcGxpYW5jZUdyb3VwIDo6PQorICAgICAgICAgICAgICAgICAgIkdST1VQIiB2YWx1ZShPQkpFQ1QgSURFTlRJRklFUikKKyAgICAgICAgICAgICAgICAgICJERVNDUklQVElPTiIgVGV4dAorCisgICAgT2JqZWN0IDo6PQorICAgICAgICAgICAgICAgICAgIk9CSkVDVCIgdmFsdWUoT2JqZWN0TmFtZSkKKyAgICAgICAgICAgICAgICAgIFN5bnRheFBhcnQKKyAgICAgICAgICAgICAgICAgIFdyaXRlU3ludGF4UGFydAorICAgICAgICAgICAgICAgICAgQWNjZXNzUGFydAorICAgICAgICAgICAgICAgICAgIkRFU0NSSVBUSU9OIiBUZXh0CisKKyAgICAtLSBtdXN0IGJlIGEgcmVmaW5lbWVudCBmb3Igb2JqZWN0J3MgU1lOVEFYIGNsYXVzZQorICAgIFN5bnRheFBhcnQgOjo9ICJTWU5UQVgiIFN5bnRheAorICAgICAgICAgICAgICAgIHwgZW1wdHkKKworICAgIC0tIG11c3QgYmUgYSByZWZpbmVtZW50IGZvciBvYmplY3QncyBTWU5UQVggY2xhdXNlCisgICAgV3JpdGVTeW50YXhQYXJ0IDo6PSAiV1JJVEUtU1lOVEFYIiBTeW50YXgKKyAgICAgICAgICAgICAgICB8IGVtcHR5CisKKyAgICBTeW50YXggOjo9ICAgIC0tIE11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6CisgICAgICAgICAgICAgICAgICAgICAgIC0tIGEgYmFzZSB0eXBlIChvciBpdHMgcmVmaW5lbWVudCksCisgICAgICAgICAgICAgICAgICAgICAgIC0tIGEgdGV4dHVhbCBjb252ZW50aW9uIChvciBpdHMgcmVmaW5lbWVudCksIG9yCisgICAgICAgICAgICAgICAgICAgICAgIC0tIGEgQklUUyBwc2V1ZG8tdHlwZQorICAgICAgICAgICAgICAgICAgdHlwZQorICAgICAgICAgICAgICAgIHwgIkJJVFMiICJ7IiBOYW1lZEJpdHMgIn0iCisKKyAgICBOYW1lZEJpdHMgOjo9IE5hbWVkQml0CisgICAgICAgICAgICAgICAgfCBOYW1lZEJpdHMgIiwiIE5hbWVkQml0CisKKyAgICBOYW1lZEJpdCA6Oj0gaWRlbnRpZmllciAiKCIgbnVtYmVyICIpIiAtLSBudW1iZXIgaXMgbm9ubmVnYXRpdmUKKworICAgIEFjY2Vzc1BhcnQgOjo9CisgICAgICAgICAgICAgICAgICAiTUlOLUFDQ0VTUyIgQWNjZXNzCisgICAgICAgICAgICAgICAgfCBlbXB0eQorICAgIEFjY2VzcyA6Oj0KKyAgICAgICAgICAgICAgICAgICJub3QtYWNjZXNzaWJsZSIKKyAgICAgICAgICAgICAgICB8ICJhY2Nlc3NpYmxlLWZvci1ub3RpZnkiCisgICAgICAgICAgICAgICAgfCAicmVhZC1vbmx5IgorICAgICAgICAgICAgICAgIHwgInJlYWQtd3JpdGUiCisgICAgICAgICAgICAgICAgfCAicmVhZC1jcmVhdGUiCisKKyAgICAtLSBhIGNoYXJhY3RlciBzdHJpbmcgYXMgZGVmaW5lZCBpbiBbMl0KKyAgICBUZXh0IDo6PSB2YWx1ZShJQTVTdHJpbmcpCitFTkQKKworLS0gZGVmaW5pdGlvbnMgZm9yIGNhcGFiaWxpdGllcyBzdGF0ZW1lbnRzCisKK0FHRU5ULUNBUEFCSUxJVElFUyBNQUNSTyA6Oj0KK0JFR0lOCisgICAgVFlQRSBOT1RBVElPTiA6Oj0KKyAgICAgICAgICAgICAgICAgICJQUk9EVUNULVJFTEVBU0UiIFRleHQKKyAgICAgICAgICAgICAgICAgICJTVEFUVVMiIFN0YXR1cworICAgICAgICAgICAgICAgICAgIkRFU0NSSVBUSU9OIiBUZXh0CisgICAgICAgICAgICAgICAgICBSZWZlclBhcnQKKyAgICAgICAgICAgICAgICAgIE1vZHVsZVBhcnQKKworICAgIFZBTFVFIE5PVEFUSU9OIDo6PQorICAgICAgICAgICAgICAgICAgdmFsdWUoVkFMVUUgT0JKRUNUIElERU5USUZJRVIpCisKKyAgICBTdGF0dXMgOjo9CisgICAgICAgICAgICAgICAgICAiY3VycmVudCIKKyAgICAgICAgICAgICAgICB8ICJvYnNvbGV0ZSIKKworICAgIFJlZmVyUGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgICJSRUZFUkVOQ0UiIFRleHQKKyAgICAgICAgICAgICAgICB8IGVtcHR5CisKKyAgICBNb2R1bGVQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAgTW9kdWxlcworICAgICAgICAgICAgICAgIHwgZW1wdHkKKyAgICBNb2R1bGVzIDo6PQorICAgICAgICAgICAgICAgICAgTW9kdWxlCisgICAgICAgICAgICAgICAgfCBNb2R1bGVzIE1vZHVsZQorICAgIE1vZHVsZSA6Oj0KKyAgICAgICAgICAgICAgICAgIC0tIG5hbWUgb2YgbW9kdWxlIC0tCisgICAgICAgICAgICAgICAgICAiU1VQUE9SVFMiIE1vZHVsZU5hbWUKKyAgICAgICAgICAgICAgICAgICJJTkNMVURFUyIgInsiIEdyb3VwcyAifSIKKyAgICAgICAgICAgICAgICAgIFZhcmlhdGlvblBhcnQKKworICAgIE1vZHVsZU5hbWUgOjo9CisgICAgICAgICAgICAgICAgICAtLSBpZGVudGlmaWVyIG11c3Qgc3RhcnQgd2l0aCB1cHBlcmNhc2UgbGV0dGVyCisgICAgICAgICAgICAgICAgICBpZGVudGlmaWVyIE1vZHVsZUlkZW50aWZpZXIKKyAgICBNb2R1bGVJZGVudGlmaWVyIDo6PQorICAgICAgICAgICAgICAgICAgdmFsdWUoT0JKRUNUIElERU5USUZJRVIpCisgICAgICAgICAgICAgICAgfCBlbXB0eQorCisgICAgR3JvdXBzIDo6PQorICAgICAgICAgICAgICAgICAgR3JvdXAKKyAgICAgICAgICAgICAgICB8IEdyb3VwcyAiLCIgR3JvdXAKKyAgICBHcm91cCA6Oj0KKyAgICAgICAgICAgICAgICAgIHZhbHVlKE9CSkVDVCBJREVOVElGSUVSKQorCisgICAgVmFyaWF0aW9uUGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgIFZhcmlhdGlvbnMKKyAgICAgICAgICAgICAgICB8IGVtcHR5CisgICAgVmFyaWF0aW9ucyA6Oj0KKyAgICAgICAgICAgICAgICAgIFZhcmlhdGlvbgorICAgICAgICAgICAgICAgIHwgVmFyaWF0aW9ucyBWYXJpYXRpb24KKworICAgIFZhcmlhdGlvbiA6Oj0KKyAgICAgICAgICAgICAgICAgIE9iamVjdFZhcmlhdGlvbgorICAgICAgICAgICAgICAgIHwgTm90aWZpY2F0aW9uVmFyaWF0aW9uCisKKyAgICBOb3RpZmljYXRpb25WYXJpYXRpb24gOjo9CisgICAgICAgICAgICAgICAgICAiVkFSSUFUSU9OIiB2YWx1ZShOb3RpZmljYXRpb25OYW1lKQorICAgICAgICAgICAgICAgICAgQWNjZXNzUGFydAorICAgICAgICAgICAgICAgICAgIkRFU0NSSVBUSU9OIiBUZXh0CisKKyAgICBPYmplY3RWYXJpYXRpb24gOjo9CisgICAgICAgICAgICAgICAgICAiVkFSSUFUSU9OIiB2YWx1ZShPYmplY3ROYW1lKQorICAgICAgICAgICAgICAgICAgU3ludGF4UGFydAorICAgICAgICAgICAgICAgICAgV3JpdGVTeW50YXhQYXJ0CisgICAgICAgICAgICAgICAgICBBY2Nlc3NQYXJ0CisgICAgICAgICAgICAgICAgICBDcmVhdGlvblBhcnQKKyAgICAgICAgICAgICAgICAgIERlZlZhbFBhcnQKKyAgICAgICAgICAgICAgICAgICJERVNDUklQVElPTiIgVGV4dAorCisgICAgLS0gbXVzdCBiZSBhIHJlZmluZW1lbnQgZm9yIG9iamVjdCdzIFNZTlRBWCBjbGF1c2UKKyAgICBTeW50YXhQYXJ0IDo6PSAiU1lOVEFYIiBTeW50YXgKKyAgICAgICAgICAgICAgICB8IGVtcHR5CisKKyAgICBXcml0ZVN5bnRheFBhcnQgOjo9ICJXUklURS1TWU5UQVgiIFN5bnRheAorICAgICAgICAgICAgICAgIHwgZW1wdHkKKworICAgIFN5bnRheCA6Oj0gICAgLS0gTXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgICAgICAgICAgICAgICAgLS0gYSBiYXNlIHR5cGUgKG9yIGl0cyByZWZpbmVtZW50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgLS0gYSB0ZXh0dWFsIGNvbnZlbnRpb24gKG9yIGl0cyByZWZpbmVtZW50KSwgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgLS0gYSBCSVRTIHBzZXVkby10eXBlCisgICAgICAgICAgICAgICAgICB0eXBlCisgICAgICAgICAgICAgICAgfCAiQklUUyIgInsiIE5hbWVkQml0cyAifSIKKworICAgIE5hbWVkQml0cyA6Oj0gTmFtZWRCaXQKKyAgICAgICAgICAgICAgICB8IE5hbWVkQml0cyAiLCIgTmFtZWRCaXQKKworICAgIE5hbWVkQml0IDo6PSBpZGVudGlmaWVyICIoIiBudW1iZXIgIikiIC0tIG51bWJlciBpcyBub25uZWdhdGl2ZQorCisgICAgQWNjZXNzUGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgICJBQ0NFU1MiIEFjY2VzcworICAgICAgICAgICAgICAgIHwgZW1wdHkKKworICAgIEFjY2VzcyA6Oj0KKyAgICAgICAgICAgICAgICAgICJub3QtaW1wbGVtZW50ZWQiCisgICAgICAgICAgICAgICAgLS0gb25seSAibm90LWltcGxlbWVudGVkIiBmb3Igbm90aWZpY2F0aW9ucworICAgICAgICAgICAgICAgIHwgImFjY2Vzc2libGUtZm9yLW5vdGlmeSIKKyAgICAgICAgICAgICAgICB8ICJyZWFkLW9ubHkiCisgICAgICAgICAgICAgICAgfCAicmVhZC13cml0ZSIKKyAgICAgICAgICAgICAgICB8ICJyZWFkLWNyZWF0ZSIKKyAgICAgICAgICAgICAgICAtLSBmb2xsb3dpbmcgaXMgZm9yIGJhY2t3YXJkLWNvbXBhdGliaWxpdHkgb25seQorICAgICAgICAgICAgICAgIHwgIndyaXRlLW9ubHkiCisKKyAgICBDcmVhdGlvblBhcnQgOjo9CisgICAgICAgICAgICAgICAgICAiQ1JFQVRJT04tUkVRVUlSRVMiICJ7IiBDZWxscyAifSIKKyAgICAgICAgICAgICAgICB8IGVtcHR5CisgICAgQ2VsbHMgOjo9CisgICAgICAgICAgICAgICAgICBDZWxsCisgICAgICAgICAgICAgICAgfCBDZWxscyAiLCIgQ2VsbAorICAgIENlbGwgOjo9CisgICAgICAgICAgICAgICAgICB2YWx1ZShPYmplY3ROYW1lKQorCisgICAgRGVmVmFsUGFydCA6Oj0gIkRFRlZBTCIgInsiIERlZnZhbHVlICJ9IgorICAgICAgICAgICAgICAgIHwgZW1wdHkKKworICAgIERlZnZhbHVlIDo6PSAgLS0gbXVzdCBiZSB2YWxpZCBmb3IgdGhlIG9iamVjdCdzIHN5bnRheAorICAgICAgICAgICAgICAgICAgLS0gaW4gdGhpcyBtYWNybydzIFNZTlRBWCBjbGF1c2UsIGlmIHByZXNlbnQsCisgICAgICAgICAgICAgICAgICAtLSBvciBpZiBub3QsIGluIG9iamVjdCdzIE9CSkVDVC1UWVBFIG1hY3JvCisgICAgICAgICAgICAgICAgICB2YWx1ZShPYmplY3RTeW50YXgpCisgICAgICAgICAgICAgICAgfCAieyIgQml0c1ZhbHVlICJ9IgorCisgICAgQml0c1ZhbHVlIDo6PSBCaXROYW1lcworICAgICAgICAgICAgICAgIHwgZW1wdHkKKworICAgIEJpdE5hbWVzIDo6PSAgQml0TmFtZQorICAgICAgICAgICAgICAgIHwgQml0TmFtZXMgIiwiIEJpdE5hbWUKKworICAgIEJpdE5hbWUgOjo9IGlkZW50aWZpZXIKKworICAgIC0tIGEgY2hhcmFjdGVyIHN0cmluZyBhcyBkZWZpbmVkIGluIFsyXQorICAgIFRleHQgOjo9IHZhbHVlKElBNVN0cmluZykKK0VORAorCitFTkQKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9TTk1QdjItTUlCIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1NOTVB2Mi1NSUIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ5NGU0MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9TTk1QdjItTUlCCkBAIC0wLDAgKzEsOTAzIEBACitTTk1QdjItTUlCIERFRklOSVRJT05TIDo6PSBCRUdJTgorCitJTVBPUlRTCisgICAgTU9EVUxFLUlERU5USVRZLCBPQkpFQ1QtVFlQRSwgTk9USUZJQ0FUSU9OLVRZUEUsCisgICAgVGltZVRpY2tzLCBDb3VudGVyMzIsIHNubXBNb2R1bGVzLCBtaWItMgorICAgICAgICBGUk9NIFNOTVB2Mi1TTUkKKyAgICBEaXNwbGF5U3RyaW5nLCBUZXN0QW5kSW5jciwgVGltZVN0YW1wCisKKworCisgICAgICAgIEZST00gU05NUHYyLVRDCisgICAgTU9EVUxFLUNPTVBMSUFOQ0UsIE9CSkVDVC1HUk9VUCwgTk9USUZJQ0FUSU9OLUdST1VQCisgICAgICAgIEZST00gU05NUHYyLUNPTkY7CisKK3NubXBNSUIgTU9EVUxFLUlERU5USVRZCisgICAgTEFTVC1VUERBVEVEICIyMDAyMTAxNjAwMDBaIgorICAgIE9SR0FOSVpBVElPTiAiSUVURiBTTk1QdjMgV29ya2luZyBHcm91cCIKKyAgICBDT05UQUNULUlORk8KKyAgICAgICAgICAgICJXRy1FTWFpbDogICBzbm1wdjNAbGlzdHMudGlzbGFicy5jb20KKyAgICAgICAgICAgICBTdWJzY3JpYmU6ICBzbm1wdjMtcmVxdWVzdEBsaXN0cy50aXNsYWJzLmNvbQorCisgICAgICAgICAgICAgQ28tQ2hhaXI6ICAgUnVzcyBNdW5keQorICAgICAgICAgICAgICAgICAgICAgICAgIE5ldHdvcmsgQXNzb2NpYXRlcyBMYWJvcmF0b3JpZXMKKyAgICAgICAgICAgICBwb3N0YWw6ICAgICAxNTIwNCBPbWVnYSBEcml2ZSwgU3VpdGUgMzAwCisgICAgICAgICAgICAgICAgICAgICAgICAgUm9ja3ZpbGxlLCBNRCAyMDg1MC00NjAxCisgICAgICAgICAgICAgICAgICAgICAgICAgVVNBCisgICAgICAgICAgICAgRU1haWw6ICAgICAgbXVuZHlAdGlzbGFicy5jb20KKyAgICAgICAgICAgICBwaG9uZTogICAgICArMSAzMDEgOTQ3LTcxMDcKKworICAgICAgICAgICAgIENvLUNoYWlyOiAgIERhdmlkIEhhcnJpbmd0b24KKyAgICAgICAgICAgICAgICAgICAgICAgICBFbnRlcmFzeXMgTmV0d29ya3MKKyAgICAgICAgICAgICBwb3N0YWw6ICAgICAzNSBJbmR1c3RyaWFsIFdheQorICAgICAgICAgICAgICAgICAgICAgICAgIFAuIE8uIEJveCA1MDA1CisgICAgICAgICAgICAgICAgICAgICAgICAgUm9jaGVzdGVyLCBOSCAwMzg2Ni01MDA1CisgICAgICAgICAgICAgICAgICAgICAgICAgVVNBCisgICAgICAgICAgICAgRU1haWw6ICAgICAgZGJoQGVudGVyYXN5cy5jb20KKyAgICAgICAgICAgICBwaG9uZTogICAgICArMSA2MDMgMzM3LTI2MTQKKworICAgICAgICAgICAgIEVkaXRvcjogICAgIFJhbmR5IFByZXN1aG4KKyAgICAgICAgICAgICAgICAgICAgICAgICBCTUMgU29mdHdhcmUsIEluYy4KKyAgICAgICAgICAgICBwb3N0YWw6ICAgICAyMTQxIE5vcnRoIEZpcnN0IFN0cmVldAorICAgICAgICAgICAgICAgICAgICAgICAgIFNhbiBKb3NlLCBDQSA5NTEzMQorICAgICAgICAgICAgICAgICAgICAgICAgIFVTQQorICAgICAgICAgICAgIEVNYWlsOiAgICAgIHJhbmR5X3ByZXN1aG5AYm1jLmNvbQorICAgICAgICAgICAgIHBob25lOiAgICAgICsxIDQwOCA1NDYtMTAwNiIKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBNSUIgbW9kdWxlIGZvciBTTk1QIGVudGl0aWVzLgorCisgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSBUaGUgSW50ZXJuZXQgU29jaWV0eSAoMjAwMikuIFRoaXMKKyAgICAgICAgICAgICB2ZXJzaW9uIG9mIHRoaXMgTUlCIG1vZHVsZSBpcyBwYXJ0IG9mIFJGQyAzNDE4OworICAgICAgICAgICAgIHNlZSB0aGUgUkZDIGl0c2VsZiBmb3IgZnVsbCBsZWdhbCBub3RpY2VzLgorICAgICAgICAgICAgIgorICAgIFJFVklTSU9OICAgICAgIjIwMDIxMDE2MDAwMFoiCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGlzIHJldmlzaW9uIG9mIHRoaXMgTUlCIG1vZHVsZSB3YXMgcHVibGlzaGVkIGFzCisgICAgICAgICAgICAgUkZDIDM0MTguIgorICAgIFJFVklTSU9OICAgICAgIjE5OTUxMTA5MDAwMFoiCisgICAgREVTQ1JJUFRJT04KKworCisKKyAgICAgICAgICAgICJUaGlzIHJldmlzaW9uIG9mIHRoaXMgTUlCIG1vZHVsZSB3YXMgcHVibGlzaGVkIGFzCisgICAgICAgICAgICAgUkZDIDE5MDcuIgorICAgIFJFVklTSU9OICAgICAgIjE5OTMwNDAxMDAwMFoiCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgaW5pdGlhbCByZXZpc2lvbiBvZiB0aGlzIE1JQiBtb2R1bGUgd2FzIHB1Ymxpc2hlZAorICAgICAgICAgICAgYXMgUkZDIDE0NTAuIgorICAgIDo6PSB7IHNubXBNb2R1bGVzIDEgfQorCitzbm1wTUlCT2JqZWN0cyBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBzbm1wTUlCIDEgfQorCistLSAgOjo9IHsgc25tcE1JQk9iamVjdHMgMSB9ICAgICAgICB0aGlzIE9JRCBpcyBvYnNvbGV0ZQorLS0gIDo6PSB7IHNubXBNSUJPYmplY3RzIDIgfSAgICAgICAgdGhpcyBPSUQgaXMgb2Jzb2xldGUKKy0tICA6Oj0geyBzbm1wTUlCT2JqZWN0cyAzIH0gICAgICAgIHRoaXMgT0lEIGlzIG9ic29sZXRlCisKKy0tIHRoZSBTeXN0ZW0gZ3JvdXAKKy0tCistLSBhIGNvbGxlY3Rpb24gb2Ygb2JqZWN0cyBjb21tb24gdG8gYWxsIG1hbmFnZWQgc3lzdGVtcy4KKworc3lzdGVtICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgMSB9CisKK3N5c0Rlc2NyIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgRGlzcGxheVN0cmluZyAoU0laRSAoMC4uMjU1KSkKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIHRleHR1YWwgZGVzY3JpcHRpb24gb2YgdGhlIGVudGl0eS4gIFRoaXMgdmFsdWUgc2hvdWxkCisgICAgICAgICAgICBpbmNsdWRlIHRoZSBmdWxsIG5hbWUgYW5kIHZlcnNpb24gaWRlbnRpZmljYXRpb24gb2YKKyAgICAgICAgICAgIHRoZSBzeXN0ZW0ncyBoYXJkd2FyZSB0eXBlLCBzb2Z0d2FyZSBvcGVyYXRpbmctc3lzdGVtLAorICAgICAgICAgICAgYW5kIG5ldHdvcmtpbmcgc29mdHdhcmUuIgorICAgIDo6PSB7IHN5c3RlbSAxIH0KKworc3lzT2JqZWN0SUQgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBPQkpFQ1QgSURFTlRJRklFUgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB2ZW5kb3IncyBhdXRob3JpdGF0aXZlIGlkZW50aWZpY2F0aW9uIG9mIHRoZQorICAgICAgICAgICAgbmV0d29yayBtYW5hZ2VtZW50IHN1YnN5c3RlbSBjb250YWluZWQgaW4gdGhlIGVudGl0eS4KKyAgICAgICAgICAgIFRoaXMgdmFsdWUgaXMgYWxsb2NhdGVkIHdpdGhpbiB0aGUgU01JIGVudGVycHJpc2VzCisgICAgICAgICAgICBzdWJ0cmVlICgxLjMuNi4xLjQuMSkgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYW5kCisgICAgICAgICAgICB1bmFtYmlndW91cyBtZWFucyBmb3IgZGV0ZXJtaW5pbmcgYHdoYXQga2luZCBvZiBib3gnIGlzCisgICAgICAgICAgICBiZWluZyBtYW5hZ2VkLiAgRm9yIGV4YW1wbGUsIGlmIHZlbmRvciBgRmxpbnRzdG9uZXMsCisgICAgICAgICAgICBJbmMuJyB3YXMgYXNzaWduZWQgdGhlIHN1YnRyZWUgMS4zLjYuMS40LjEuNDI0MjQyLAorICAgICAgICAgICAgaXQgY291bGQgYXNzaWduIHRoZSBpZGVudGlmaWVyIDEuMy42LjEuNC4xLjQyNDI0Mi4xLjEKKyAgICAgICAgICAgIHRvIGl0cyBgRnJlZCBSb3V0ZXInLiIKKyAgICA6Oj0geyBzeXN0ZW0gMiB9CisKK3N5c1VwVGltZSBPQkpFQ1QtVFlQRQorCisKKworICAgIFNZTlRBWCAgICAgIFRpbWVUaWNrcworICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0aW1lIChpbiBodW5kcmVkdGhzIG9mIGEgc2Vjb25kKSBzaW5jZSB0aGUKKyAgICAgICAgICAgIG5ldHdvcmsgbWFuYWdlbWVudCBwb3J0aW9uIG9mIHRoZSBzeXN0ZW0gd2FzIGxhc3QKKyAgICAgICAgICAgIHJlLWluaXRpYWxpemVkLiIKKyAgICA6Oj0geyBzeXN0ZW0gMyB9CisKK3N5c0NvbnRhY3QgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBEaXNwbGF5U3RyaW5nIChTSVpFICgwLi4yNTUpKQorICAgIE1BWC1BQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdGV4dHVhbCBpZGVudGlmaWNhdGlvbiBvZiB0aGUgY29udGFjdCBwZXJzb24gZm9yCisgICAgICAgICAgICB0aGlzIG1hbmFnZWQgbm9kZSwgdG9nZXRoZXIgd2l0aCBpbmZvcm1hdGlvbiBvbiBob3cKKyAgICAgICAgICAgIHRvIGNvbnRhY3QgdGhpcyBwZXJzb24uICBJZiBubyBjb250YWN0IGluZm9ybWF0aW9uIGlzCisgICAgICAgICAgICBrbm93biwgdGhlIHZhbHVlIGlzIHRoZSB6ZXJvLWxlbmd0aCBzdHJpbmcuIgorICAgIDo6PSB7IHN5c3RlbSA0IH0KKworc3lzTmFtZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIERpc3BsYXlTdHJpbmcgKFNJWkUgKDAuLjI1NSkpCisgICAgTUFYLUFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkFuIGFkbWluaXN0cmF0aXZlbHktYXNzaWduZWQgbmFtZSBmb3IgdGhpcyBtYW5hZ2VkCisgICAgICAgICAgICBub2RlLiAgQnkgY29udmVudGlvbiwgdGhpcyBpcyB0aGUgbm9kZSdzIGZ1bGx5LXF1YWxpZmllZAorICAgICAgICAgICAgZG9tYWluIG5hbWUuICBJZiB0aGUgbmFtZSBpcyB1bmtub3duLCB0aGUgdmFsdWUgaXMKKyAgICAgICAgICAgIHRoZSB6ZXJvLWxlbmd0aCBzdHJpbmcuIgorICAgIDo6PSB7IHN5c3RlbSA1IH0KKworc3lzTG9jYXRpb24gT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBEaXNwbGF5U3RyaW5nIChTSVpFICgwLi4yNTUpKQorICAgIE1BWC1BQ0NFU1MgIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgcGh5c2ljYWwgbG9jYXRpb24gb2YgdGhpcyBub2RlIChlLmcuLCAndGVsZXBob25lCisgICAgICAgICAgICBjbG9zZXQsIDNyZCBmbG9vcicpLiAgSWYgdGhlIGxvY2F0aW9uIGlzIHVua25vd24sIHRoZQorICAgICAgICAgICAgdmFsdWUgaXMgdGhlIHplcm8tbGVuZ3RoIHN0cmluZy4iCisgICAgOjo9IHsgc3lzdGVtIDYgfQorCitzeXNTZXJ2aWNlcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIElOVEVHRVIgKDAuLjEyNykKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIHZhbHVlIHdoaWNoIGluZGljYXRlcyB0aGUgc2V0IG9mIHNlcnZpY2VzIHRoYXQgdGhpcworICAgICAgICAgICAgZW50aXR5IG1heSBwb3RlbnRpYWxseSBvZmZlci4gIFRoZSB2YWx1ZSBpcyBhIHN1bS4KKworCisKKyAgICAgICAgICAgIFRoaXMgc3VtIGluaXRpYWxseSB0YWtlcyB0aGUgdmFsdWUgemVyby4gVGhlbiwgZm9yCisgICAgICAgICAgICBlYWNoIGxheWVyLCBMLCBpbiB0aGUgcmFuZ2UgMSB0aHJvdWdoIDcsIHRoYXQgdGhpcyBub2RlCisgICAgICAgICAgICBwZXJmb3JtcyB0cmFuc2FjdGlvbnMgZm9yLCAyIHJhaXNlZCB0byAoTCAtIDEpIGlzIGFkZGVkCisgICAgICAgICAgICB0byB0aGUgc3VtLiAgRm9yIGV4YW1wbGUsIGEgbm9kZSB3aGljaCBwZXJmb3JtcyBvbmx5CisgICAgICAgICAgICByb3V0aW5nIGZ1bmN0aW9ucyB3b3VsZCBoYXZlIGEgdmFsdWUgb2YgNCAoMl4oMy0xKSkuCisgICAgICAgICAgICBJbiBjb250cmFzdCwgYSBub2RlIHdoaWNoIGlzIGEgaG9zdCBvZmZlcmluZyBhcHBsaWNhdGlvbgorICAgICAgICAgICAgc2VydmljZXMgd291bGQgaGF2ZSBhIHZhbHVlIG9mIDcyICgyXig0LTEpICsgMl4oNy0xKSkuCisgICAgICAgICAgICBOb3RlIHRoYXQgaW4gdGhlIGNvbnRleHQgb2YgdGhlIEludGVybmV0IHN1aXRlIG9mCisgICAgICAgICAgICBwcm90b2NvbHMsIHZhbHVlcyBzaG91bGQgYmUgY2FsY3VsYXRlZCBhY2NvcmRpbmdseToKKworICAgICAgICAgICAgICAgICBsYXllciAgICAgIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgICAgICAgICAgICAxICAgICAgICBwaHlzaWNhbCAoZS5nLiwgcmVwZWF0ZXJzKQorICAgICAgICAgICAgICAgICAgIDIgICAgICAgIGRhdGFsaW5rL3N1Ym5ldHdvcmsgKGUuZy4sIGJyaWRnZXMpCisgICAgICAgICAgICAgICAgICAgMyAgICAgICAgaW50ZXJuZXQgKGUuZy4sIHN1cHBvcnRzIHRoZSBJUCkKKyAgICAgICAgICAgICAgICAgICA0ICAgICAgICBlbmQtdG8tZW5kICAoZS5nLiwgc3VwcG9ydHMgdGhlIFRDUCkKKyAgICAgICAgICAgICAgICAgICA3ICAgICAgICBhcHBsaWNhdGlvbnMgKGUuZy4sIHN1cHBvcnRzIHRoZSBTTVRQKQorCisgICAgICAgICAgICBGb3Igc3lzdGVtcyBpbmNsdWRpbmcgT1NJIHByb3RvY29scywgbGF5ZXJzIDUgYW5kIDYKKyAgICAgICAgICAgIG1heSBhbHNvIGJlIGNvdW50ZWQuIgorICAgIDo6PSB7IHN5c3RlbSA3IH0KKworLS0gb2JqZWN0IHJlc291cmNlIGluZm9ybWF0aW9uCistLQorLS0gYSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgd2hpY2ggZGVzY3JpYmUgdGhlIFNOTVAgZW50aXR5J3MKKy0tIChzdGF0aWNhbGx5IGFuZCBkeW5hbWljYWxseSBjb25maWd1cmFibGUpIHN1cHBvcnQgb2YKKy0tIHZhcmlvdXMgTUlCIG1vZHVsZXMuCisKK3N5c09STGFzdENoYW5nZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVGltZVN0YW1wCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB2YWx1ZSBvZiBzeXNVcFRpbWUgYXQgdGhlIHRpbWUgb2YgdGhlIG1vc3QgcmVjZW50CisgICAgICAgICAgICBjaGFuZ2UgaW4gc3RhdGUgb3IgdmFsdWUgb2YgYW55IGluc3RhbmNlIG9mIHN5c09SSUQuIgorICAgIDo6PSB7IHN5c3RlbSA4IH0KKworc3lzT1JUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgU0VRVUVOQ0UgT0YgU3lzT1JFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSAoY29uY2VwdHVhbCkgdGFibGUgbGlzdGluZyB0aGUgY2FwYWJpbGl0aWVzIG9mCisgICAgICAgICAgICB0aGUgbG9jYWwgU05NUCBhcHBsaWNhdGlvbiBhY3RpbmcgYXMgYSBjb21tYW5kCisgICAgICAgICAgICByZXNwb25kZXIgd2l0aCByZXNwZWN0IHRvIHZhcmlvdXMgTUlCIG1vZHVsZXMuCisgICAgICAgICAgICBTTk1QIGVudGl0aWVzIGhhdmluZyBkeW5hbWljYWxseS1jb25maWd1cmFibGUgc3VwcG9ydAorICAgICAgICAgICAgb2YgTUlCIG1vZHVsZXMgd2lsbCBoYXZlIGEgZHluYW1pY2FsbHktdmFyeWluZyBudW1iZXIKKyAgICAgICAgICAgIG9mIGNvbmNlcHR1YWwgcm93cy4iCisgICAgOjo9IHsgc3lzdGVtIDkgfQorCisKKworc3lzT1JFbnRyeSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgU3lzT1JFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkFuIGVudHJ5IChjb25jZXB0dWFsIHJvdykgaW4gdGhlIHN5c09SVGFibGUuIgorICAgIElOREVYICAgICAgeyBzeXNPUkluZGV4IH0KKyAgICA6Oj0geyBzeXNPUlRhYmxlIDEgfQorCitTeXNPUkVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgc3lzT1JJbmRleCAgICAgSU5URUdFUiwKKyAgICBzeXNPUklEICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiwKKyAgICBzeXNPUkRlc2NyICAgICBEaXNwbGF5U3RyaW5nLAorICAgIHN5c09SVXBUaW1lICAgIFRpbWVTdGFtcAorfQorCitzeXNPUkluZGV4IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJTlRFR0VSICgxLi4yMTQ3NDgzNjQ3KQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBhdXhpbGlhcnkgdmFyaWFibGUgdXNlZCBmb3IgaWRlbnRpZnlpbmcgaW5zdGFuY2VzCisgICAgICAgICAgICBvZiB0aGUgY29sdW1uYXIgb2JqZWN0cyBpbiB0aGUgc3lzT1JUYWJsZS4iCisgICAgOjo9IHsgc3lzT1JFbnRyeSAxIH0KKworc3lzT1JJRCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgT0JKRUNUIElERU5USUZJRVIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQW4gYXV0aG9yaXRhdGl2ZSBpZGVudGlmaWNhdGlvbiBvZiBhIGNhcGFiaWxpdGllcworICAgICAgICAgICAgc3RhdGVtZW50IHdpdGggcmVzcGVjdCB0byB2YXJpb3VzIE1JQiBtb2R1bGVzIHN1cHBvcnRlZAorICAgICAgICAgICAgYnkgdGhlIGxvY2FsIFNOTVAgYXBwbGljYXRpb24gYWN0aW5nIGFzIGEgY29tbWFuZAorICAgICAgICAgICAgcmVzcG9uZGVyLiIKKyAgICA6Oj0geyBzeXNPUkVudHJ5IDIgfQorCitzeXNPUkRlc2NyIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBEaXNwbGF5U3RyaW5nCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGUgY2FwYWJpbGl0aWVzIGlkZW50aWZpZWQKKyAgICAgICAgICAgIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGluc3RhbmNlIG9mIHN5c09SSUQuIgorICAgIDo6PSB7IHN5c09SRW50cnkgMyB9CisKK3N5c09SVXBUaW1lIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBUaW1lU3RhbXAKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorCisKKworICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHZhbHVlIG9mIHN5c1VwVGltZSBhdCB0aGUgdGltZSB0aGlzIGNvbmNlcHR1YWwKKyAgICAgICAgICAgIHJvdyB3YXMgbGFzdCBpbnN0YW50aWF0ZWQuIgorICAgIDo6PSB7IHN5c09SRW50cnkgNCB9CisKKworLS0gdGhlIFNOTVAgZ3JvdXAKKy0tCistLSBhIGNvbGxlY3Rpb24gb2Ygb2JqZWN0cyBwcm92aWRpbmcgYmFzaWMgaW5zdHJ1bWVudGF0aW9uIGFuZAorLS0gY29udHJvbCBvZiBhbiBTTk1QIGVudGl0eS4KKworc25tcCAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgMTEgfQorCitzbm1wSW5Qa3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBtZXNzYWdlcyBkZWxpdmVyZWQgdG8gdGhlIFNOTVAKKyAgICAgICAgICAgIGVudGl0eSBmcm9tIHRoZSB0cmFuc3BvcnQgc2VydmljZS4iCisgICAgOjo9IHsgc25tcCAxIH0KKworc25tcEluQmFkVmVyc2lvbnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgbWVzc2FnZXMgd2hpY2ggd2VyZSBkZWxpdmVyZWQKKyAgICAgICAgICAgIHRvIHRoZSBTTk1QIGVudGl0eSBhbmQgd2VyZSBmb3IgYW4gdW5zdXBwb3J0ZWQgU05NUAorICAgICAgICAgICAgdmVyc2lvbi4iCisgICAgOjo9IHsgc25tcCAzIH0KKworc25tcEluQmFkQ29tbXVuaXR5TmFtZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgY29tbXVuaXR5LWJhc2VkIFNOTVAgbWVzc2FnZXMgKGZvcgorICAgICAgICAgICBleGFtcGxlLCAgU05NUHYxKSBkZWxpdmVyZWQgdG8gdGhlIFNOTVAgZW50aXR5IHdoaWNoCisgICAgICAgICAgIHVzZWQgYW4gU05NUCBjb21tdW5pdHkgbmFtZSBub3Qga25vd24gdG8gc2FpZCBlbnRpdHkuCisgICAgICAgICAgIEFsc28sIGltcGxlbWVudGF0aW9ucyB3aGljaCBhdXRoZW50aWNhdGUgY29tbXVuaXR5LWJhc2VkCisgICAgICAgICAgIFNOTVAgbWVzc2FnZXMgdXNpbmcgY2hlY2socykgaW4gYWRkaXRpb24gdG8gbWF0Y2hpbmcKKyAgICAgICAgICAgdGhlIGNvbW11bml0eSBuYW1lIChmb3IgZXhhbXBsZSwgYnkgYWxzbyBjaGVja2luZworICAgICAgICAgICB3aGV0aGVyIHRoZSBtZXNzYWdlIG9yaWdpbmF0ZWQgZnJvbSBhIHRyYW5zcG9ydCBhZGRyZXNzCisgICAgICAgICAgIGFsbG93ZWQgdG8gdXNlIGEgc3BlY2lmaWVkIGNvbW11bml0eSBuYW1lKSBNQVkgaW5jbHVkZQorICAgICAgICAgICBpbiB0aGlzIHZhbHVlIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgd2hpY2ggZmFpbGVkIHRoZQorICAgICAgICAgICBhZGRpdGlvbmFsIGNoZWNrKHMpLiAgSXQgaXMgc3Ryb25nbHkgUkVDT01NRU5ERUQgdGhhdAorCisKKworICAgICAgICAgICB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgYW55IHNlY3VyaXR5IG1vZGVsIHdoaWNoIGlzIHVzZWQKKyAgICAgICAgICAgdG8gYXV0aGVudGljYXRlIGNvbW11bml0eS1iYXNlZCBTTk1QIG1lc3NhZ2VzIHNwZWNpZnkKKyAgICAgICAgICAgdGhlIHByZWNpc2UgY29uZGl0aW9ucyB0aGF0IGNvbnRyaWJ1dGUgdG8gdGhpcyB2YWx1ZS4iCisgICAgOjo9IHsgc25tcCA0IH0KKworc25tcEluQmFkQ29tbXVuaXR5VXNlcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBjb21tdW5pdHktYmFzZWQgU05NUCBtZXNzYWdlcyAoZm9yCisgICAgICAgICAgIGV4YW1wbGUsIFNOTVB2MSkgZGVsaXZlcmVkIHRvIHRoZSBTTk1QIGVudGl0eSB3aGljaAorICAgICAgICAgICByZXByZXNlbnRlZCBhbiBTTk1QIG9wZXJhdGlvbiB0aGF0IHdhcyBub3QgYWxsb3dlZCBmb3IKKyAgICAgICAgICAgdGhlIFNOTVAgY29tbXVuaXR5IG5hbWVkIGluIHRoZSBtZXNzYWdlLiAgVGhlIHByZWNpc2UKKyAgICAgICAgICAgY29uZGl0aW9ucyB1bmRlciB3aGljaCB0aGlzIGNvdW50ZXIgaXMgaW5jcmVtZW50ZWQKKyAgICAgICAgICAgKGlmIGF0IGFsbCkgZGVwZW5kIG9uIGhvdyB0aGUgU05NUCBlbnRpdHkgaW1wbGVtZW50cworICAgICAgICAgICBpdHMgYWNjZXNzIGNvbnRyb2wgbWVjaGFuaXNtIGFuZCBob3cgaXRzIGFwcGxpY2F0aW9ucworICAgICAgICAgICBpbnRlcmFjdCB3aXRoIHRoYXQgYWNjZXNzIGNvbnRyb2wgbWVjaGFuaXNtLiAgSXQgaXMKKyAgICAgICAgICAgc3Ryb25nbHkgUkVDT01NRU5ERUQgdGhhdCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgYW55CisgICAgICAgICAgIGFjY2VzcyBjb250cm9sIG1lY2hhbmlzbSB3aGljaCBpcyB1c2VkIHRvIGNvbnRyb2wgYWNjZXNzCisgICAgICAgICAgIHRvIGFuZCB2aXNpYmlsaXR5IG9mIE1JQiBpbnN0cnVtZW50YXRpb24gc3BlY2lmeSB0aGUKKyAgICAgICAgICAgcHJlY2lzZSBjb25kaXRpb25zIHRoYXQgY29udHJpYnV0ZSB0byB0aGlzIHZhbHVlLiIKKyAgICA6Oj0geyBzbm1wIDUgfQorCitzbm1wSW5BU05QYXJzZUVycnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIEFTTi4xIG9yIEJFUiBlcnJvcnMgZW5jb3VudGVyZWQgYnkKKyAgICAgICAgICAgIHRoZSBTTk1QIGVudGl0eSB3aGVuIGRlY29kaW5nIHJlY2VpdmVkIFNOTVAgbWVzc2FnZXMuIgorICAgIDo6PSB7IHNubXAgNiB9CisKK3NubXBFbmFibGVBdXRoZW5UcmFwcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIElOVEVHRVIgeyBlbmFibGVkKDEpLCBkaXNhYmxlZCgyKSB9CisgICAgTUFYLUFDQ0VTUyAgcmVhZC13cml0ZQorICAgIFNUQVRVUyAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkluZGljYXRlcyB3aGV0aGVyIHRoZSBTTk1QIGVudGl0eSBpcyBwZXJtaXR0ZWQgdG8KKyAgICAgICAgICAgIGdlbmVyYXRlIGF1dGhlbnRpY2F0aW9uRmFpbHVyZSB0cmFwcy4gIFRoZSB2YWx1ZSBvZiB0aGlzCisgICAgICAgICAgICBvYmplY3Qgb3ZlcnJpZGVzIGFueSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uOyBhcyBzdWNoLAorICAgICAgICAgICAgaXQgcHJvdmlkZXMgYSBtZWFucyB3aGVyZWJ5IGFsbCBhdXRoZW50aWNhdGlvbkZhaWx1cmUKKyAgICAgICAgICAgIHRyYXBzIG1heSBiZSBkaXNhYmxlZC4KKworICAgICAgICAgICAgTm90ZSB0aGF0IGl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRoYXQgdGhpcyBvYmplY3QKKyAgICAgICAgICAgIGJlIHN0b3JlZCBpbiBub24tdm9sYXRpbGUgbWVtb3J5IHNvIHRoYXQgaXQgcmVtYWlucworICAgICAgICAgICAgY29uc3RhbnQgYWNyb3NzIHJlLWluaXRpYWxpemF0aW9ucyBvZiB0aGUgbmV0d29yaworICAgICAgICAgICAgbWFuYWdlbWVudCBzeXN0ZW0uIgorCisKKworICAgIDo6PSB7IHNubXAgMzAgfQorCitzbm1wU2lsZW50RHJvcHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgQ29uZmlybWVkIENsYXNzIFBEVXMgKHN1Y2ggYXMKKyAgICAgICAgICAgR2V0UmVxdWVzdC1QRFVzLCBHZXROZXh0UmVxdWVzdC1QRFVzLAorICAgICAgICAgICBHZXRCdWxrUmVxdWVzdC1QRFVzLCBTZXRSZXF1ZXN0LVBEVXMsIGFuZAorICAgICAgICAgICBJbmZvcm1SZXF1ZXN0LVBEVXMpIGRlbGl2ZXJlZCB0byB0aGUgU05NUCBlbnRpdHkgd2hpY2gKKyAgICAgICAgICAgd2VyZSBzaWxlbnRseSBkcm9wcGVkIGJlY2F1c2UgdGhlIHNpemUgb2YgYSByZXBseQorICAgICAgICAgICBjb250YWluaW5nIGFuIGFsdGVybmF0ZSBSZXNwb25zZSBDbGFzcyBQRFUgKHN1Y2ggYXMgYQorICAgICAgICAgICBSZXNwb25zZS1QRFUpIHdpdGggYW4gZW1wdHkgdmFyaWFibGUtYmluZGluZ3MgZmllbGQKKyAgICAgICAgICAgd2FzIGdyZWF0ZXIgdGhhbiBlaXRoZXIgYSBsb2NhbCBjb25zdHJhaW50IG9yIHRoZQorICAgICAgICAgICBtYXhpbXVtIG1lc3NhZ2Ugc2l6ZSBhc3NvY2lhdGVkIHdpdGggdGhlIG9yaWdpbmF0b3Igb2YKKyAgICAgICAgICAgdGhlIHJlcXVlc3QuIgorICAgIDo6PSB7IHNubXAgMzEgfQorCitzbm1wUHJveHlEcm9wcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgQ29uZmlybWVkIENsYXNzIFBEVXMKKyAgICAgICAgICAgIChzdWNoIGFzIEdldFJlcXVlc3QtUERVcywgR2V0TmV4dFJlcXVlc3QtUERVcywKKyAgICAgICAgICAgIEdldEJ1bGtSZXF1ZXN0LVBEVXMsIFNldFJlcXVlc3QtUERVcywgYW5kCisgICAgICAgICAgICBJbmZvcm1SZXF1ZXN0LVBEVXMpIGRlbGl2ZXJlZCB0byB0aGUgU05NUCBlbnRpdHkgd2hpY2gKKyAgICAgICAgICAgIHdlcmUgc2lsZW50bHkgZHJvcHBlZCBiZWNhdXNlIHRoZSB0cmFuc21pc3Npb24gb2YKKyAgICAgICAgICAgIHRoZSAocG9zc2libHkgdHJhbnNsYXRlZCkgbWVzc2FnZSB0byBhIHByb3h5IHRhcmdldAorICAgICAgICAgICAgZmFpbGVkIGluIGEgbWFubmVyIChvdGhlciB0aGFuIGEgdGltZS1vdXQpIHN1Y2ggdGhhdAorICAgICAgICAgICAgbm8gUmVzcG9uc2UgQ2xhc3MgUERVIChzdWNoIGFzIGEgUmVzcG9uc2UtUERVKSBjb3VsZAorICAgICAgICAgICAgYmUgcmV0dXJuZWQuIgorICAgIDo6PSB7IHNubXAgMzIgfQorCistLSBpbmZvcm1hdGlvbiBmb3Igbm90aWZpY2F0aW9ucworLS0KKy0tIGEgY29sbGVjdGlvbiBvZiBvYmplY3RzIHdoaWNoIGFsbG93IHRoZSBTTk1QIGVudGl0eSwgd2hlbgorLS0gc3VwcG9ydGluZyBhIG5vdGlmaWNhdGlvbiBvcmlnaW5hdG9yIGFwcGxpY2F0aW9uLAorLS0gdG8gYmUgY29uZmlndXJlZCB0byBnZW5lcmF0ZSBTTk1QdjItVHJhcC1QRFVzLgorCitzbm1wVHJhcCAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBzbm1wTUlCT2JqZWN0cyA0IH0KKworc25tcFRyYXBPSUQgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIE9CSkVDVCBJREVOVElGSUVSCisgICAgTUFYLUFDQ0VTUyBhY2Nlc3NpYmxlLWZvci1ub3RpZnkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorCisKKworICAgICAgICAgICAgIlRoZSBhdXRob3JpdGF0aXZlIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBub3RpZmljYXRpb24KKyAgICAgICAgICAgIGN1cnJlbnRseSBiZWluZyBzZW50LiAgVGhpcyB2YXJpYWJsZSBvY2N1cnMgYXMKKyAgICAgICAgICAgIHRoZSBzZWNvbmQgdmFyYmluZCBpbiBldmVyeSBTTk1QdjItVHJhcC1QRFUgYW5kCisgICAgICAgICAgICBJbmZvcm1SZXF1ZXN0LVBEVS4iCisgICAgOjo9IHsgc25tcFRyYXAgMSB9CisKKy0tICA6Oj0geyBzbm1wVHJhcCAyIH0gICB0aGlzIE9JRCBpcyBvYnNvbGV0ZQorCitzbm1wVHJhcEVudGVycHJpc2UgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIE9CSkVDVCBJREVOVElGSUVSCisgICAgTUFYLUFDQ0VTUyBhY2Nlc3NpYmxlLWZvci1ub3RpZnkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBhdXRob3JpdGF0aXZlIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBlbnRlcnByaXNlCisgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIHRyYXAgY3VycmVudGx5IGJlaW5nIHNlbnQuICBXaGVuIGFuCisgICAgICAgICAgICBTTk1QIHByb3h5IGFnZW50IGlzIG1hcHBpbmcgYW4gUkZDMTE1NyBUcmFwLVBEVQorICAgICAgICAgICAgaW50byBhIFNOTVB2Mi1UcmFwLVBEVSwgdGhpcyB2YXJpYWJsZSBvY2N1cnMgYXMgdGhlCisgICAgICAgICAgICBsYXN0IHZhcmJpbmQuIgorICAgIDo6PSB7IHNubXBUcmFwIDMgfQorCistLSAgOjo9IHsgc25tcFRyYXAgNCB9ICAgdGhpcyBPSUQgaXMgb2Jzb2xldGUKKworCistLSB3ZWxsLWtub3duIHRyYXBzCisKK3NubXBUcmFwcyAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IHNubXBNSUJPYmplY3RzIDUgfQorCitjb2xkU3RhcnQgTk9USUZJQ0FUSU9OLVRZUEUKKyAgICBTVEFUVVMgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgY29sZFN0YXJ0IHRyYXAgc2lnbmlmaWVzIHRoYXQgdGhlIFNOTVAgZW50aXR5LAorICAgICAgICAgICAgc3VwcG9ydGluZyBhIG5vdGlmaWNhdGlvbiBvcmlnaW5hdG9yIGFwcGxpY2F0aW9uLCBpcworICAgICAgICAgICAgcmVpbml0aWFsaXppbmcgaXRzZWxmIGFuZCB0aGF0IGl0cyBjb25maWd1cmF0aW9uIG1heQorICAgICAgICAgICAgaGF2ZSBiZWVuIGFsdGVyZWQuIgorICAgIDo6PSB7IHNubXBUcmFwcyAxIH0KKword2FybVN0YXJ0IE5PVElGSUNBVElPTi1UWVBFCisgICAgU1RBVFVTICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIHdhcm1TdGFydCB0cmFwIHNpZ25pZmllcyB0aGF0IHRoZSBTTk1QIGVudGl0eSwKKyAgICAgICAgICAgIHN1cHBvcnRpbmcgYSBub3RpZmljYXRpb24gb3JpZ2luYXRvciBhcHBsaWNhdGlvbiwKKyAgICAgICAgICAgIGlzIHJlaW5pdGlhbGl6aW5nIGl0c2VsZiBzdWNoIHRoYXQgaXRzIGNvbmZpZ3VyYXRpb24KKyAgICAgICAgICAgIGlzIHVuYWx0ZXJlZC4iCisgICAgOjo9IHsgc25tcFRyYXBzIDIgfQorCistLSBOb3RlIHRoZSBsaW5rRG93biBOT1RJRklDQVRJT04tVFlQRSA6Oj0geyBzbm1wVHJhcHMgMyB9CistLSBhbmQgdGhlIGxpbmtVcCBOT1RJRklDQVRJT04tVFlQRSA6Oj0geyBzbm1wVHJhcHMgNCB9CistLSBhcmUgZGVmaW5lZCBpbiBSRkMgMjg2MyBbUkZDMjg2M10KKworCisKK2F1dGhlbnRpY2F0aW9uRmFpbHVyZSBOT1RJRklDQVRJT04tVFlQRQorICAgIFNUQVRVUyAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQW4gYXV0aGVudGljYXRpb25GYWlsdXJlIHRyYXAgc2lnbmlmaWVzIHRoYXQgdGhlIFNOTVAKKyAgICAgICAgICAgICBlbnRpdHkgaGFzIHJlY2VpdmVkIGEgcHJvdG9jb2wgbWVzc2FnZSB0aGF0IGlzIG5vdAorICAgICAgICAgICAgIHByb3Blcmx5IGF1dGhlbnRpY2F0ZWQuICBXaGlsZSBhbGwgaW1wbGVtZW50YXRpb25zCisgICAgICAgICAgICAgb2YgU05NUCBlbnRpdGllcyBNQVkgYmUgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRoaXMKKyAgICAgICAgICAgICB0cmFwLCB0aGUgc25tcEVuYWJsZUF1dGhlblRyYXBzIG9iamVjdCBpbmRpY2F0ZXMKKyAgICAgICAgICAgICB3aGV0aGVyIHRoaXMgdHJhcCB3aWxsIGJlIGdlbmVyYXRlZC4iCisgICAgOjo9IHsgc25tcFRyYXBzIDUgfQorCistLSBOb3RlIHRoZSBlZ3BOZWlnaGJvckxvc3Mgbm90aWZpY2F0aW9uIGlzIGRlZmluZWQKKy0tIGFzIHsgc25tcFRyYXBzIDYgfSBpbiBSRkMgMTIxMworCistLSB0aGUgc2V0IGdyb3VwCistLQorLS0gYSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgd2hpY2ggYWxsb3cgc2V2ZXJhbCBjb29wZXJhdGluZworLS0gY29tbWFuZCBnZW5lcmF0b3IgYXBwbGljYXRpb25zIHRvIGNvb3JkaW5hdGUgdGhlaXIgdXNlIG9mIHRoZQorLS0gc2V0IG9wZXJhdGlvbi4KKworc25tcFNldCAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgc25tcE1JQk9iamVjdHMgNiB9CisKK3NubXBTZXRTZXJpYWxObyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVGVzdEFuZEluY3IKKyAgICBNQVgtQUNDRVNTIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkFuIGFkdmlzb3J5IGxvY2sgdXNlZCB0byBhbGxvdyBzZXZlcmFsIGNvb3BlcmF0aW5nCisgICAgICAgICAgICBjb21tYW5kIGdlbmVyYXRvciBhcHBsaWNhdGlvbnMgdG8gY29vcmRpbmF0ZSB0aGVpcgorICAgICAgICAgICAgdXNlIG9mIHRoZSBTTk1QIHNldCBvcGVyYXRpb24uCisKKyAgICAgICAgICAgIFRoaXMgb2JqZWN0IGlzIHVzZWQgZm9yIGNvYXJzZS1ncmFpbiBjb29yZGluYXRpb24uCisgICAgICAgICAgICBUbyBhY2hpZXZlIGZpbmUtZ3JhaW4gY29vcmRpbmF0aW9uLCBvbmUgb3IgbW9yZSBzaW1pbGFyCisgICAgICAgICAgICBvYmplY3RzIG1pZ2h0IGJlIGRlZmluZWQgd2l0aGluIGVhY2ggTUlCIGdyb3VwLCBhcworICAgICAgICAgICAgYXBwcm9wcmlhdGUuIgorICAgIDo6PSB7IHNubXBTZXQgMSB9CisKKy0tIGNvbmZvcm1hbmNlIGluZm9ybWF0aW9uCisKK3NubXBNSUJDb25mb3JtYW5jZQorICAgICAgICAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgc25tcE1JQiAyIH0KKworc25tcE1JQkNvbXBsaWFuY2VzCisgICAgICAgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBzbm1wTUlCQ29uZm9ybWFuY2UgMSB9Citzbm1wTUlCR3JvdXBzICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBzbm1wTUlCQ29uZm9ybWFuY2UgMiB9CisKKy0tIGNvbXBsaWFuY2Ugc3RhdGVtZW50cworCisKKworCistLSAgICA6Oj0geyBzbm1wTUlCQ29tcGxpYW5jZXMgMSB9ICAgICAgdGhpcyBPSUQgaXMgb2Jzb2xldGUKK3NubXBCYXNpY0NvbXBsaWFuY2UgTU9EVUxFLUNPTVBMSUFOQ0UKKyAgICBTVEFUVVMgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBjb21wbGlhbmNlIHN0YXRlbWVudCBmb3IgU05NUHYyIGVudGl0aWVzIHdoaWNoCisgICAgICAgICAgICBpbXBsZW1lbnQgdGhlIFNOTVB2MiBNSUIuCisKKyAgICAgICAgICAgIFRoaXMgY29tcGxpYW5jZSBzdGF0ZW1lbnQgaXMgcmVwbGFjZWQgYnkKKyAgICAgICAgICAgIHNubXBCYXNpY0NvbXBsaWFuY2VSZXYyLiIKKyAgICBNT0RVTEUgIC0tIHRoaXMgbW9kdWxlCisgICAgICAgIE1BTkRBVE9SWS1HUk9VUFMgeyBzbm1wR3JvdXAsIHNubXBTZXRHcm91cCwgc3lzdGVtR3JvdXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzbm1wQmFzaWNOb3RpZmljYXRpb25zR3JvdXAgfQorCisgICAgICAgIEdST1VQICAgc25tcENvbW11bml0eUdyb3VwCisgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhpcyBncm91cCBpcyBtYW5kYXRvcnkgZm9yIFNOTVB2MiBlbnRpdGllcyB3aGljaAorICAgICAgICAgICAgc3VwcG9ydCBjb21tdW5pdHktYmFzZWQgYXV0aGVudGljYXRpb24uIgorCisgICAgOjo9IHsgc25tcE1JQkNvbXBsaWFuY2VzIDIgfQorCitzbm1wQmFzaWNDb21wbGlhbmNlUmV2MiBNT0RVTEUtQ09NUExJQU5DRQorICAgIFNUQVRVUyAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIGNvbXBsaWFuY2Ugc3RhdGVtZW50IGZvciBTTk1QIGVudGl0aWVzIHdoaWNoCisgICAgICAgICAgICBpbXBsZW1lbnQgdGhpcyBNSUIgbW9kdWxlLiIKKyAgICBNT0RVTEUgIC0tIHRoaXMgbW9kdWxlCisgICAgICAgIE1BTkRBVE9SWS1HUk9VUFMgeyBzbm1wR3JvdXAsIHNubXBTZXRHcm91cCwgc3lzdGVtR3JvdXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzbm1wQmFzaWNOb3RpZmljYXRpb25zR3JvdXAgfQorCisgICAgICAgIEdST1VQICAgc25tcENvbW11bml0eUdyb3VwCisgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhpcyBncm91cCBpcyBtYW5kYXRvcnkgZm9yIFNOTVAgZW50aXRpZXMgd2hpY2gKKyAgICAgICAgICAgIHN1cHBvcnQgY29tbXVuaXR5LWJhc2VkIGF1dGhlbnRpY2F0aW9uLiIKKworICAgICAgICBHUk9VUCAgIHNubXBXYXJtU3RhcnROb3RpZmljYXRpb25Hcm91cAorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBhbiBTTk1QIGVudGl0eSB3aGljaAorICAgICAgICAgICAgc3VwcG9ydHMgY29tbWFuZCByZXNwb25kZXIgYXBwbGljYXRpb25zLCBhbmQgaXMKKyAgICAgICAgICAgIGFibGUgdG8gcmVpbml0aWFsaXplIGl0c2VsZiBzdWNoIHRoYXQgaXRzCisgICAgICAgICAgICBjb25maWd1cmF0aW9uIGlzIHVuYWx0ZXJlZC4iCisKKyAgICA6Oj0geyBzbm1wTUlCQ29tcGxpYW5jZXMgMyB9CisKKy0tIHVuaXRzIG9mIGNvbmZvcm1hbmNlCisKKy0tICA6Oj0geyBzbm1wTUlCR3JvdXBzIDEgfSAgICAgICAgICAgdGhpcyBPSUQgaXMgb2Jzb2xldGUKKy0tICA6Oj0geyBzbm1wTUlCR3JvdXBzIDIgfSAgICAgICAgICAgdGhpcyBPSUQgaXMgb2Jzb2xldGUKKy0tICA6Oj0geyBzbm1wTUlCR3JvdXBzIDMgfSAgICAgICAgICAgdGhpcyBPSUQgaXMgb2Jzb2xldGUKKworCisKKy0tICA6Oj0geyBzbm1wTUlCR3JvdXBzIDQgfSAgICAgICAgICAgdGhpcyBPSUQgaXMgb2Jzb2xldGUKKworc25tcEdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgeyBzbm1wSW5Qa3RzLAorICAgICAgICAgICAgICBzbm1wSW5CYWRWZXJzaW9ucywKKyAgICAgICAgICAgICAgc25tcEluQVNOUGFyc2VFcnJzLAorICAgICAgICAgICAgICBzbm1wU2lsZW50RHJvcHMsCisgICAgICAgICAgICAgIHNubXBQcm94eURyb3BzLAorICAgICAgICAgICAgICBzbm1wRW5hYmxlQXV0aGVuVHJhcHMgfQorICAgIFNUQVRVUyAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgcHJvdmlkaW5nIGJhc2ljIGluc3RydW1lbnRhdGlvbgorICAgICAgICAgICAgYW5kIGNvbnRyb2wgb2YgYW4gU05NUCBlbnRpdHkuIgorICAgIDo6PSB7IHNubXBNSUJHcm91cHMgOCB9CisKK3NubXBDb21tdW5pdHlHcm91cCBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTIHsgc25tcEluQmFkQ29tbXVuaXR5TmFtZXMsCisgICAgICAgICAgICAgIHNubXBJbkJhZENvbW11bml0eVVzZXMgfQorICAgIFNUQVRVUyAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgcHJvdmlkaW5nIGJhc2ljIGluc3RydW1lbnRhdGlvbgorICAgICAgICAgICAgb2YgYSBTTk1QIGVudGl0eSB3aGljaCBzdXBwb3J0cyBjb21tdW5pdHktYmFzZWQKKyAgICAgICAgICAgIGF1dGhlbnRpY2F0aW9uLiIKKyAgICA6Oj0geyBzbm1wTUlCR3JvdXBzIDkgfQorCitzbm1wU2V0R3JvdXAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyB7IHNubXBTZXRTZXJpYWxObyB9CisgICAgU1RBVFVTICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIGNvbGxlY3Rpb24gb2Ygb2JqZWN0cyB3aGljaCBhbGxvdyBzZXZlcmFsIGNvb3BlcmF0aW5nCisgICAgICAgICAgICBjb21tYW5kIGdlbmVyYXRvciBhcHBsaWNhdGlvbnMgdG8gY29vcmRpbmF0ZSB0aGVpcgorICAgICAgICAgICAgdXNlIG9mIHRoZSBzZXQgb3BlcmF0aW9uLiIKKyAgICA6Oj0geyBzbm1wTUlCR3JvdXBzIDUgfQorCitzeXN0ZW1Hcm91cCBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTIHsgc3lzRGVzY3IsIHN5c09iamVjdElELCBzeXNVcFRpbWUsCisgICAgICAgICAgICAgIHN5c0NvbnRhY3QsIHN5c05hbWUsIHN5c0xvY2F0aW9uLAorICAgICAgICAgICAgICBzeXNTZXJ2aWNlcywKKyAgICAgICAgICAgICAgc3lzT1JMYXN0Q2hhbmdlLCBzeXNPUklELAorICAgICAgICAgICAgICBzeXNPUlVwVGltZSwgc3lzT1JEZXNjciB9CisgICAgU1RBVFVTICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgc3lzdGVtIGdyb3VwIGRlZmluZXMgb2JqZWN0cyB3aGljaCBhcmUgY29tbW9uIHRvIGFsbAorICAgICAgICAgICAgbWFuYWdlZCBzeXN0ZW1zLiIKKyAgICA6Oj0geyBzbm1wTUlCR3JvdXBzIDYgfQorCitzbm1wQmFzaWNOb3RpZmljYXRpb25zR3JvdXAgTk9USUZJQ0FUSU9OLUdST1VQCisgICAgTk9USUZJQ0FUSU9OUyB7IGNvbGRTdGFydCwgYXV0aGVudGljYXRpb25GYWlsdXJlIH0KKworCisKKyAgICBTVEFUVVMgICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICJUaGUgYmFzaWMgbm90aWZpY2F0aW9ucyBpbXBsZW1lbnRlZCBieSBhbiBTTk1QIGVudGl0eQorICAgICAgICBzdXBwb3J0aW5nIGNvbW1hbmQgcmVzcG9uZGVyIGFwcGxpY2F0aW9ucy4iCisgICAgOjo9IHsgc25tcE1JQkdyb3VwcyA3IH0KKworc25tcFdhcm1TdGFydE5vdGlmaWNhdGlvbkdyb3VwIE5PVElGSUNBVElPTi1HUk9VUAorICAgTk9USUZJQ0FUSU9OUyB7IHdhcm1TdGFydCB9CisgICBTVEFUVVMgICAgICAgIGN1cnJlbnQKKyAgIERFU0NSSVBUSU9OCisgICAgICJBbiBhZGRpdGlvbmFsIG5vdGlmaWNhdGlvbiBmb3IgYW4gU05NUCBlbnRpdHkgc3VwcG9ydGluZworICAgICBjb21tYW5kIHJlc3BvbmRlciBhcHBsaWNhdGlvbnMsIGlmIGl0IGlzIGFibGUgdG8gcmVpbml0aWFsaXplCisgICAgIGl0c2VsZiBzdWNoIHRoYXQgaXRzIGNvbmZpZ3VyYXRpb24gaXMgdW5hbHRlcmVkLiIKKyAgOjo9IHsgc25tcE1JQkdyb3VwcyAxMSB9CisKK3NubXBOb3RpZmljYXRpb25Hcm91cCBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTIHsgc25tcFRyYXBPSUQsIHNubXBUcmFwRW50ZXJwcmlzZSB9CisgICAgU1RBVFVTICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGVzZSBvYmplY3RzIGFyZSByZXF1aXJlZCBmb3IgZW50aXRpZXMKKyAgICAgICAgICAgIHdoaWNoIHN1cHBvcnQgbm90aWZpY2F0aW9uIG9yaWdpbmF0b3IgYXBwbGljYXRpb25zLiIKKyAgICA6Oj0geyBzbm1wTUlCR3JvdXBzIDEyIH0KKworLS0gZGVmaW5pdGlvbnMgaW4gUkZDIDEyMTMgbWFkZSBvYnNvbGV0ZSBieSB0aGUgaW5jbHVzaW9uIG9mIGEKKy0tIHN1YnNldCBvZiB0aGUgc25tcCBncm91cCBpbiB0aGlzIE1JQgorCitzbm1wT3V0UGt0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIG9ic29sZXRlCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgTWVzc2FnZXMgd2hpY2ggd2VyZQorICAgICAgICAgICAgcGFzc2VkIGZyb20gdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IHRvIHRoZQorICAgICAgICAgICAgdHJhbnNwb3J0IHNlcnZpY2UuIgorICAgIDo6PSB7IHNubXAgMiB9CisKKy0tIHsgc25tcCA3IH0gaXMgbm90IHVzZWQKKworc25tcEluVG9vQmlncyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIG9ic29sZXRlCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgUERVcyB3aGljaCB3ZXJlCisgICAgICAgICAgICBkZWxpdmVyZWQgdG8gdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IGFuZCBmb3IKKyAgICAgICAgICAgIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUgZXJyb3Itc3RhdHVzIGZpZWxkIHdhcworICAgICAgICAgICAgYHRvb0JpZycuIgorICAgIDo6PSB7IHNubXAgOCB9CisKKworCitzbm1wSW5Ob1N1Y2hOYW1lcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIG9ic29sZXRlCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgUERVcyB3aGljaCB3ZXJlCisgICAgICAgICAgICBkZWxpdmVyZWQgdG8gdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IGFuZCBmb3IKKyAgICAgICAgICAgIHdoaWNoIHRoZSB2YWx1ZSBvZiB0aGUgZXJyb3Itc3RhdHVzIGZpZWxkIHdhcworICAgICAgICAgICAgYG5vU3VjaE5hbWUnLiIKKyAgICA6Oj0geyBzbm1wIDkgfQorCitzbm1wSW5CYWRWYWx1ZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBvYnNvbGV0ZQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIFBEVXMgd2hpY2ggd2VyZQorICAgICAgICAgICAgZGVsaXZlcmVkIHRvIHRoZSBTTk1QIHByb3RvY29sIGVudGl0eSBhbmQgZm9yCisgICAgICAgICAgICB3aGljaCB0aGUgdmFsdWUgb2YgdGhlIGVycm9yLXN0YXR1cyBmaWVsZCB3YXMKKyAgICAgICAgICAgIGBiYWRWYWx1ZScuIgorICAgIDo6PSB7IHNubXAgMTAgfQorCitzbm1wSW5SZWFkT25seXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBvYnNvbGV0ZQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciB2YWxpZCBTTk1QIFBEVXMgd2hpY2ggd2VyZSBkZWxpdmVyZWQKKyAgICAgICAgICAgIHRvIHRoZSBTTk1QIHByb3RvY29sIGVudGl0eSBhbmQgZm9yIHdoaWNoIHRoZSB2YWx1ZQorICAgICAgICAgICAgb2YgdGhlIGVycm9yLXN0YXR1cyBmaWVsZCB3YXMgYHJlYWRPbmx5Jy4gIEl0IHNob3VsZAorICAgICAgICAgICAgYmUgbm90ZWQgdGhhdCBpdCBpcyBhIHByb3RvY29sIGVycm9yIHRvIGdlbmVyYXRlIGFuCisgICAgICAgICAgICBTTk1QIFBEVSB3aGljaCBjb250YWlucyB0aGUgdmFsdWUgYHJlYWRPbmx5JyBpbiB0aGUKKyAgICAgICAgICAgIGVycm9yLXN0YXR1cyBmaWVsZCwgYXMgc3VjaCB0aGlzIG9iamVjdCBpcyBwcm92aWRlZAorICAgICAgICAgICAgYXMgYSBtZWFucyBvZiBkZXRlY3RpbmcgaW5jb3JyZWN0IGltcGxlbWVudGF0aW9ucyBvZgorICAgICAgICAgICAgdGhlIFNOTVAuIgorICAgIDo6PSB7IHNubXAgMTEgfQorCitzbm1wSW5HZW5FcnJzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgb2Jzb2xldGUKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBQRFVzIHdoaWNoIHdlcmUgZGVsaXZlcmVkCisgICAgICAgICAgICB0byB0aGUgU05NUCBwcm90b2NvbCBlbnRpdHkgYW5kIGZvciB3aGljaCB0aGUgdmFsdWUKKyAgICAgICAgICAgIG9mIHRoZSBlcnJvci1zdGF0dXMgZmllbGQgd2FzIGBnZW5FcnInLiIKKyAgICA6Oj0geyBzbm1wIDEyIH0KKworc25tcEluVG90YWxSZXFWYXJzIE9CSkVDVC1UWVBFCisKKworCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgb2Jzb2xldGUKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgTUlCIG9iamVjdHMgd2hpY2ggaGF2ZSBiZWVuCisgICAgICAgICAgICByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5IGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eQorICAgICAgICAgICAgYXMgdGhlIHJlc3VsdCBvZiByZWNlaXZpbmcgdmFsaWQgU05NUCBHZXQtUmVxdWVzdAorICAgICAgICAgICAgYW5kIEdldC1OZXh0IFBEVXMuIgorICAgIDo6PSB7IHNubXAgMTMgfQorCitzbm1wSW5Ub3RhbFNldFZhcnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBvYnNvbGV0ZQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBNSUIgb2JqZWN0cyB3aGljaCBoYXZlIGJlZW4KKyAgICAgICAgICAgIGFsdGVyZWQgc3VjY2Vzc2Z1bGx5IGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eSBhcworICAgICAgICAgICAgdGhlIHJlc3VsdCBvZiByZWNlaXZpbmcgdmFsaWQgU05NUCBTZXQtUmVxdWVzdCBQRFVzLiIKKyAgICA6Oj0geyBzbm1wIDE0IH0KKworc25tcEluR2V0UmVxdWVzdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBvYnNvbGV0ZQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIEdldC1SZXF1ZXN0IFBEVXMgd2hpY2gKKyAgICAgICAgICAgIGhhdmUgYmVlbiBhY2NlcHRlZCBhbmQgcHJvY2Vzc2VkIGJ5IHRoZSBTTk1QCisgICAgICAgICAgICBwcm90b2NvbCBlbnRpdHkuIgorICAgIDo6PSB7IHNubXAgMTUgfQorCitzbm1wSW5HZXROZXh0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIG9ic29sZXRlCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgR2V0LU5leHQgUERVcyB3aGljaCBoYXZlIGJlZW4KKyAgICAgICAgICAgIGFjY2VwdGVkIGFuZCBwcm9jZXNzZWQgYnkgdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5LiIKKyAgICA6Oj0geyBzbm1wIDE2IH0KKworc25tcEluU2V0UmVxdWVzdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBvYnNvbGV0ZQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIFNldC1SZXF1ZXN0IFBEVXMgd2hpY2gKKyAgICAgICAgICAgIGhhdmUgYmVlbiBhY2NlcHRlZCBhbmQgcHJvY2Vzc2VkIGJ5IHRoZSBTTk1QIHByb3RvY29sCisgICAgICAgICAgICBlbnRpdHkuIgorICAgIDo6PSB7IHNubXAgMTcgfQorCisKKworc25tcEluR2V0UmVzcG9uc2VzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgb2Jzb2xldGUKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBHZXQtUmVzcG9uc2UgUERVcyB3aGljaAorICAgICAgICAgICAgaGF2ZSBiZWVuIGFjY2VwdGVkIGFuZCBwcm9jZXNzZWQgYnkgdGhlIFNOTVAgcHJvdG9jb2wKKyAgICAgICAgICAgIGVudGl0eS4iCisgICAgOjo9IHsgc25tcCAxOCB9CisKK3NubXBJblRyYXBzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgb2Jzb2xldGUKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBUcmFwIFBEVXMgd2hpY2ggaGF2ZSBiZWVuCisgICAgICAgICAgICBhY2NlcHRlZCBhbmQgcHJvY2Vzc2VkIGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eS4iCisgICAgOjo9IHsgc25tcCAxOSB9CisKK3NubXBPdXRUb29CaWdzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgb2Jzb2xldGUKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBQRFVzIHdoaWNoIHdlcmUgZ2VuZXJhdGVkCisgICAgICAgICAgICBieSB0aGUgU05NUCBwcm90b2NvbCBlbnRpdHkgYW5kIGZvciB3aGljaCB0aGUgdmFsdWUKKyAgICAgICAgICAgIG9mIHRoZSBlcnJvci1zdGF0dXMgZmllbGQgd2FzIGB0b29CaWcuJyIKKyAgICA6Oj0geyBzbm1wIDIwIH0KKworc25tcE91dE5vU3VjaE5hbWVzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgb2Jzb2xldGUKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBQRFVzIHdoaWNoIHdlcmUgZ2VuZXJhdGVkCisgICAgICAgICAgICBieSB0aGUgU05NUCBwcm90b2NvbCBlbnRpdHkgYW5kIGZvciB3aGljaCB0aGUgdmFsdWUKKyAgICAgICAgICAgIG9mIHRoZSBlcnJvci1zdGF0dXMgd2FzIGBub1N1Y2hOYW1lJy4iCisgICAgOjo9IHsgc25tcCAyMSB9CisKK3NubXBPdXRCYWRWYWx1ZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBvYnNvbGV0ZQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIFBEVXMgd2hpY2ggd2VyZSBnZW5lcmF0ZWQKKyAgICAgICAgICAgIGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eSBhbmQgZm9yIHdoaWNoIHRoZSB2YWx1ZQorICAgICAgICAgICAgb2YgdGhlIGVycm9yLXN0YXR1cyBmaWVsZCB3YXMgYGJhZFZhbHVlJy4iCisgICAgOjo9IHsgc25tcCAyMiB9CisKKworCistLSB7IHNubXAgMjMgfSBpcyBub3QgdXNlZAorCitzbm1wT3V0R2VuRXJycyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIG9ic29sZXRlCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgUERVcyB3aGljaCB3ZXJlIGdlbmVyYXRlZAorICAgICAgICAgICAgYnkgdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5IGFuZCBmb3Igd2hpY2ggdGhlIHZhbHVlCisgICAgICAgICAgICBvZiB0aGUgZXJyb3Itc3RhdHVzIGZpZWxkIHdhcyBgZ2VuRXJyJy4iCisgICAgOjo9IHsgc25tcCAyNCB9CisKK3NubXBPdXRHZXRSZXF1ZXN0cyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIG9ic29sZXRlCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgR2V0LVJlcXVlc3QgUERVcyB3aGljaAorICAgICAgICAgICAgaGF2ZSBiZWVuIGdlbmVyYXRlZCBieSB0aGUgU05NUCBwcm90b2NvbCBlbnRpdHkuIgorICAgIDo6PSB7IHNubXAgMjUgfQorCitzbm1wT3V0R2V0TmV4dHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBvYnNvbGV0ZQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIEdldC1OZXh0IFBEVXMgd2hpY2ggaGF2ZQorICAgICAgICAgICAgYmVlbiBnZW5lcmF0ZWQgYnkgdGhlIFNOTVAgcHJvdG9jb2wgZW50aXR5LiIKKyAgICA6Oj0geyBzbm1wIDI2IH0KKworc25tcE91dFNldFJlcXVlc3RzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyAgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICAgb2Jzb2xldGUKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgU05NUCBTZXQtUmVxdWVzdCBQRFVzIHdoaWNoCisgICAgICAgICAgICBoYXZlIGJlZW4gZ2VuZXJhdGVkIGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eS4iCisgICAgOjo9IHsgc25tcCAyNyB9CisKK3NubXBPdXRHZXRSZXNwb25zZXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTICByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgICBvYnNvbGV0ZQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBTTk1QIEdldC1SZXNwb25zZSBQRFVzIHdoaWNoCisgICAgICAgICAgICBoYXZlIGJlZW4gZ2VuZXJhdGVkIGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eS4iCisgICAgOjo9IHsgc25tcCAyOCB9CisKKworCisKK3NubXBPdXRUcmFwcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgIG9ic29sZXRlCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFNOTVAgVHJhcCBQRFVzIHdoaWNoIGhhdmUKKyAgICAgICAgICAgIGJlZW4gZ2VuZXJhdGVkIGJ5IHRoZSBTTk1QIHByb3RvY29sIGVudGl0eS4iCisgICAgOjo9IHsgc25tcCAyOSB9CisKK3NubXBPYnNvbGV0ZUdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgeyBzbm1wT3V0UGt0cywgc25tcEluVG9vQmlncywgc25tcEluTm9TdWNoTmFtZXMsCisgICAgICAgICAgICAgIHNubXBJbkJhZFZhbHVlcywgc25tcEluUmVhZE9ubHlzLCBzbm1wSW5HZW5FcnJzLAorICAgICAgICAgICAgICBzbm1wSW5Ub3RhbFJlcVZhcnMsIHNubXBJblRvdGFsU2V0VmFycywKKyAgICAgICAgICAgICAgc25tcEluR2V0UmVxdWVzdHMsIHNubXBJbkdldE5leHRzLCBzbm1wSW5TZXRSZXF1ZXN0cywKKyAgICAgICAgICAgICAgc25tcEluR2V0UmVzcG9uc2VzLCBzbm1wSW5UcmFwcywgc25tcE91dFRvb0JpZ3MsCisgICAgICAgICAgICAgIHNubXBPdXROb1N1Y2hOYW1lcywgc25tcE91dEJhZFZhbHVlcywKKyAgICAgICAgICAgICAgc25tcE91dEdlbkVycnMsIHNubXBPdXRHZXRSZXF1ZXN0cywgc25tcE91dEdldE5leHRzLAorICAgICAgICAgICAgICBzbm1wT3V0U2V0UmVxdWVzdHMsIHNubXBPdXRHZXRSZXNwb25zZXMsIHNubXBPdXRUcmFwcworICAgICAgICAgICAgICB9CisgICAgU1RBVFVTICBvYnNvbGV0ZQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBjb2xsZWN0aW9uIG9mIG9iamVjdHMgZnJvbSBSRkMgMTIxMyBtYWRlIG9ic29sZXRlCisgICAgICAgICAgICBieSB0aGlzIE1JQiBtb2R1bGUuIgorICAgIDo6PSB7IHNubXBNSUJHcm91cHMgMTAgfQorCitFTkQKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9TTk1QdjItU01JIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1NOTVB2Mi1TTUkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjEzMjY0NgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9TTk1QdjItU01JCkBAIC0wLDAgKzEsMzUyIEBACitTTk1QdjItU01JIERFRklOSVRJT05TIDo6PSBCRUdJTgorCisKKy0tIHRoZSBwYXRoIHRvIHRoZSByb290CisKK29yZyAgICAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGlzbyAzIH0gIC0tICAiaXNvIiA9IDEKK2RvZCAgICAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG9yZyA2IH0KK2ludGVybmV0ICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGRvZCAxIH0KKworZGlyZWN0b3J5ICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgaW50ZXJuZXQgMSB9CisKK21nbXQgICAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGludGVybmV0IDIgfQorbWliLTIgICAgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWdtdCAxIH0KK3RyYW5zbWlzc2lvbiAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDEwIH0KKworZXhwZXJpbWVudGFsICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgaW50ZXJuZXQgMyB9CisKK3ByaXZhdGUgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGludGVybmV0IDQgfQorZW50ZXJwcmlzZXMgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgcHJpdmF0ZSAxIH0KKworc2VjdXJpdHkgICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgaW50ZXJuZXQgNSB9CisKK3NubXBWMiAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGludGVybmV0IDYgfQorCistLSB0cmFuc3BvcnQgZG9tYWlucworc25tcERvbWFpbnMgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgc25tcFYyIDEgfQorCistLSB0cmFuc3BvcnQgcHJveGllcworc25tcFByb3h5cyAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgc25tcFYyIDIgfQorCistLSBtb2R1bGUgaWRlbnRpdGllcworc25tcE1vZHVsZXMgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgc25tcFYyIDMgfQorCistLSBFeHRlbmRlZCBVVENUaW1lLCB0byBhbGxvdyBkYXRlcyB3aXRoIGZvdXItZGlnaXQgeWVhcnMKKy0tIChOb3RlIHRoYXQgdGhpcyBkZWZpbml0aW9uIG9mIEV4dFVUQ1RpbWUgaXMgbm90IHRvIGJlIElNUE9SVGVkCistLSAgYnkgTUlCIG1vZHVsZXMuKQorRXh0VVRDVGltZSA6Oj0gT0NURVQgU1RSSU5HKFNJWkUoMTEgfCAxMykpCisgICAgLS0gZm9ybWF0IGlzIFlZTU1EREhITU1aIG9yIFlZWVlNTURESEhNTVoKKyAgICAtLSAgIHdoZXJlOiBZWSAgIC0gbGFzdCB0d28gZGlnaXRzIG9mIHllYXIgKG9ubHkgeWVhcnMKKyAgICAtLSAgICAgICAgICAgICAgICAgYmV0d2VlbiAxOTAwLTE5OTkpCisgICAgLS0gICAgICAgICAgWVlZWSAtIGxhc3QgZm91ciBkaWdpdHMgb2YgdGhlIHllYXIgKGFueSB5ZWFyKQorICAgIC0tICAgICAgICAgIE1NICAgLSBtb250aCAoMDEgdGhyb3VnaCAxMikKKyAgICAtLSAgICAgICAgICBERCAgIC0gZGF5IG9mIG1vbnRoICgwMSB0aHJvdWdoIDMxKQorICAgIC0tICAgICAgICAgIEhIICAgLSBob3VycyAoMDAgdGhyb3VnaCAyMykKKyAgICAtLSAgICAgICAgICBNTSAgIC0gbWludXRlcyAoMDAgdGhyb3VnaCA1OSkKKyAgICAtLSAgICAgICAgICBaICAgIC0gZGVub3RlcyBHTVQgKHRoZSBBU0NJSSBjaGFyYWN0ZXIgWikKKyAgICAtLQorICAgIC0tIEZvciBleGFtcGxlLCAiOTUwMjE5MjAxNVoiIGFuZCAiMTk5NTAyMTkyMDE1WiIgcmVwcmVzZW50CisgICAgLS0gODoxNXBtIEdNVCBvbiAxOSBGZWJydWFyeSAxOTk1LiBZZWFycyBhZnRlciAxOTk5IG11c3QgdXNlCisgICAgLS0gdGhlIGZvdXIgZGlnaXQgeWVhciBmb3JtYXQuIFllYXJzIDE5MDAtMTk5OSBtYXkgdXNlIHRoZQorICAgIC0tIHR3byBvciBmb3VyIGRpZ2l0IGZvcm1hdC4KKworLS0gZGVmaW5pdGlvbnMgZm9yIGluZm9ybWF0aW9uIG1vZHVsZXMKKworTU9EVUxFLUlERU5USVRZIE1BQ1JPIDo6PQorQkVHSU4KKyAgICBUWVBFIE5PVEFUSU9OIDo6PQorICAgICAgICAgICAgICAgICAgIkxBU1QtVVBEQVRFRCIgdmFsdWUoVXBkYXRlIEV4dFVUQ1RpbWUpCisgICAgICAgICAgICAgICAgICAiT1JHQU5JWkFUSU9OIiBUZXh0CisgICAgICAgICAgICAgICAgICAiQ09OVEFDVC1JTkZPIiBUZXh0CisgICAgICAgICAgICAgICAgICAiREVTQ1JJUFRJT04iIFRleHQKKyAgICAgICAgICAgICAgICAgIFJldmlzaW9uUGFydAorCisgICAgVkFMVUUgTk9UQVRJT04gOjo9CisgICAgICAgICAgICAgICAgICB2YWx1ZShWQUxVRSBPQkpFQ1QgSURFTlRJRklFUikKKworICAgIFJldmlzaW9uUGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgIFJldmlzaW9ucworICAgICAgICAgICAgICAgIHwgZW1wdHkKKyAgICBSZXZpc2lvbnMgOjo9CisgICAgICAgICAgICAgICAgICBSZXZpc2lvbgorICAgICAgICAgICAgICAgIHwgUmV2aXNpb25zIFJldmlzaW9uCisgICAgUmV2aXNpb24gOjo9CisgICAgICAgICAgICAgICAgICAiUkVWSVNJT04iIHZhbHVlKFVwZGF0ZSBFeHRVVENUaW1lKQorICAgICAgICAgICAgICAgICAgIkRFU0NSSVBUSU9OIiBUZXh0CisKKyAgICAtLSBhIGNoYXJhY3RlciBzdHJpbmcgYXMgZGVmaW5lZCBpbiBzZWN0aW9uIDMuMS4xCisgICAgVGV4dCA6Oj0gdmFsdWUoSUE1U3RyaW5nKQorRU5ECisKKworT0JKRUNULUlERU5USVRZIE1BQ1JPIDo6PQorQkVHSU4KKyAgICBUWVBFIE5PVEFUSU9OIDo6PQorICAgICAgICAgICAgICAgICAgIlNUQVRVUyIgU3RhdHVzCisgICAgICAgICAgICAgICAgICAiREVTQ1JJUFRJT04iIFRleHQKKyAgICAgICAgICAgICAgICAgIFJlZmVyUGFydAorCisgICAgVkFMVUUgTk9UQVRJT04gOjo9CisgICAgICAgICAgICAgICAgICB2YWx1ZShWQUxVRSBPQkpFQ1QgSURFTlRJRklFUikKKworICAgIFN0YXR1cyA6Oj0KKyAgICAgICAgICAgICAgICAgICJjdXJyZW50IgorICAgICAgICAgICAgICAgIHwgImRlcHJlY2F0ZWQiCisgICAgICAgICAgICAgICAgfCAib2Jzb2xldGUiCisKKyAgICBSZWZlclBhcnQgOjo9CisgICAgICAgICAgICAgICAgICAiUkVGRVJFTkNFIiBUZXh0CisgICAgICAgICAgICAgICAgfCBlbXB0eQorCisgICAgLS0gYSBjaGFyYWN0ZXIgc3RyaW5nIGFzIGRlZmluZWQgaW4gc2VjdGlvbiAzLjEuMQorICAgIFRleHQgOjo9IHZhbHVlKElBNVN0cmluZykKK0VORAorCisKKy0tIG5hbWVzIG9mIG9iamVjdHMKKy0tIChOb3RlIHRoYXQgdGhlc2UgZGVmaW5pdGlvbnMgb2YgT2JqZWN0TmFtZSBhbmQgTm90aWZpY2F0aW9uTmFtZQorLS0gIGFyZSBub3QgdG8gYmUgSU1QT1JUZWQgYnkgTUlCIG1vZHVsZXMuKQorCitPYmplY3ROYW1lIDo6PQorICAgIE9CSkVDVCBJREVOVElGSUVSCisKK05vdGlmaWNhdGlvbk5hbWUgOjo9CisgICAgT0JKRUNUIElERU5USUZJRVIKKworLS0gc3ludGF4IG9mIG9iamVjdHMKKworLS0gdGhlICJiYXNlIHR5cGVzIiBkZWZpbmVkIGhlcmUgYXJlOgorLS0gICAzIGJ1aWx0LWluIEFTTi4xIHR5cGVzOiBJTlRFR0VSLCBPQ1RFVCBTVFJJTkcsIE9CSkVDVCBJREVOVElGSUVSCistLSAgIDggYXBwbGljYXRpb24tZGVmaW5lZCB0eXBlczogSW50ZWdlcjMyLCBJcEFkZHJlc3MsIENvdW50ZXIzMiwKKy0tICAgICAgICAgICAgICBHYXVnZTMyLCBVbnNpZ25lZDMyLCBUaW1lVGlja3MsIE9wYXF1ZSwgYW5kIENvdW50ZXI2NAorCitPYmplY3RTeW50YXggOjo9CisgICAgQ0hPSUNFIHsKKyAgICAgICAgc2ltcGxlCisgICAgICAgICAgICBTaW1wbGVTeW50YXgsCisKKyAgICAgICAgICAtLSBub3RlIHRoYXQgU0VRVUVOQ0VzIGZvciBjb25jZXB0dWFsIHRhYmxlcyBhbmQKKyAgICAgICAgICAtLSByb3dzIGFyZSBub3QgbWVudGlvbmVkIGhlcmUuLi4KKworICAgICAgICBhcHBsaWNhdGlvbi13aWRlCisgICAgICAgICAgICBBcHBsaWNhdGlvblN5bnRheAorICAgIH0KKworLS0gYnVpbHQtaW4gQVNOLjEgdHlwZXMKKworU2ltcGxlU3ludGF4IDo6PQorICAgIENIT0lDRSB7CisgICAgICAgIC0tIElOVEVHRVJzIHdpdGggYSBtb3JlIHJlc3RyaWN0aXZlIHJhbmdlCisgICAgICAgIC0tIG1heSBhbHNvIGJlIHVzZWQKKyAgICAgICAgaW50ZWdlci12YWx1ZSAgICAgICAgICAgICAgIC0tIGluY2x1ZGVzIEludGVnZXIzMgorICAgICAgICAgICAgSU5URUdFUiAoLTIxNDc0ODM2NDguLjIxNDc0ODM2NDcpLAorCisgICAgICAgIC0tIE9DVEVUIFNUUklOR3Mgd2l0aCBhIG1vcmUgcmVzdHJpY3RpdmUgc2l6ZQorICAgICAgICAtLSBtYXkgYWxzbyBiZSB1c2VkCisgICAgICAgIHN0cmluZy12YWx1ZQorICAgICAgICAgICAgT0NURVQgU1RSSU5HIChTSVpFICgwLi42NTUzNSkpLAorCisgICAgICAgIG9iamVjdElELXZhbHVlCisgICAgICAgICAgICBPQkpFQ1QgSURFTlRJRklFUgorICAgIH0KKworLS0gaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBJTlRFR0VSLCBidXQgbmV2ZXIgbmVlZHMgbW9yZSB0aGFuCistLSAzMi1iaXRzIGZvciBhIHR3bydzIGNvbXBsZW1lbnQgcmVwcmVzZW50YXRpb24KK0ludGVnZXIzMiA6Oj0KKyAgICAgICAgSU5URUdFUiAoLTIxNDc0ODM2NDguLjIxNDc0ODM2NDcpCisKKworLS0gYXBwbGljYXRpb24td2lkZSB0eXBlcworCitBcHBsaWNhdGlvblN5bnRheCA6Oj0KKyAgICBDSE9JQ0UgeworICAgICAgICBpcEFkZHJlc3MtdmFsdWUKKyAgICAgICAgICAgIElwQWRkcmVzcywKKworICAgICAgICBjb3VudGVyLXZhbHVlCisgICAgICAgICAgICBDb3VudGVyMzIsCisKKyAgICAgICAgdGltZXRpY2tzLXZhbHVlCisgICAgICAgICAgICBUaW1lVGlja3MsCisKKyAgICAgICAgYXJiaXRyYXJ5LXZhbHVlCisgICAgICAgICAgICBPcGFxdWUsCisKKyAgICAgICAgYmlnLWNvdW50ZXItdmFsdWUKKyAgICAgICAgICAgIENvdW50ZXI2NCwKKworICAgICAgICB1bnNpZ25lZC1pbnRlZ2VyLXZhbHVlICAtLSBpbmNsdWRlcyBHYXVnZTMyCisgICAgICAgICAgICBVbnNpZ25lZDMyCisgICAgfQorCistLSBpbiBuZXR3b3JrLWJ5dGUgb3JkZXIKKy0tICh0aGlzIGlzIGEgdGFnZ2VkIHR5cGUgZm9yIGhpc3RvcmljYWwgcmVhc29ucykKK0lwQWRkcmVzcyA6Oj0KKyAgICBbQVBQTElDQVRJT04gMF0KKyAgICAgICAgSU1QTElDSVQgT0NURVQgU1RSSU5HIChTSVpFICg0KSkKKworLS0gdGhpcyB3cmFwcworQ291bnRlcjMyIDo6PQorICAgIFtBUFBMSUNBVElPTiAxXQorICAgICAgICBJTVBMSUNJVCBJTlRFR0VSICgwLi40Mjk0OTY3Mjk1KQorCistLSB0aGlzIGRvZXNuJ3Qgd3JhcAorR2F1Z2UzMiA6Oj0KKyAgICBbQVBQTElDQVRJT04gMl0KKyAgICAgICAgSU1QTElDSVQgSU5URUdFUiAoMC4uNDI5NDk2NzI5NSkKKworLS0gYW4gdW5zaWduZWQgMzItYml0IHF1YW50aXR5CistLSBpbmRpc3Rpbmd1aXNoYWJsZSBmcm9tIEdhdWdlMzIKK1Vuc2lnbmVkMzIgOjo9CisgICAgW0FQUExJQ0FUSU9OIDJdCisgICAgICAgIElNUExJQ0lUIElOVEVHRVIgKDAuLjQyOTQ5NjcyOTUpCisKKy0tIGh1bmRyZWR0aHMgb2Ygc2Vjb25kcyBzaW5jZSBhbiBlcG9jaAorVGltZVRpY2tzIDo6PQorICAgIFtBUFBMSUNBVElPTiAzXQorICAgICAgICBJTVBMSUNJVCBJTlRFR0VSICgwLi40Mjk0OTY3Mjk1KQorCistLSBmb3IgYmFja3dhcmQtY29tcGF0aWJpbGl0eSBvbmx5CitPcGFxdWUgOjo9CisgICAgW0FQUExJQ0FUSU9OIDRdCisgICAgICAgIElNUExJQ0lUIE9DVEVUIFNUUklORworCistLSBmb3IgY291bnRlcnMgdGhhdCB3cmFwIGluIGxlc3MgdGhhbiBvbmUgaG91ciB3aXRoIG9ubHkgMzIgYml0cworQ291bnRlcjY0IDo6PQorICAgIFtBUFBMSUNBVElPTiA2XQorICAgICAgICBJTVBMSUNJVCBJTlRFR0VSICgwLi4xODQ0Njc0NDA3MzcwOTU1MTYxNSkKKworCistLSBkZWZpbml0aW9uIGZvciBvYmplY3RzCisKK09CSkVDVC1UWVBFIE1BQ1JPIDo6PQorQkVHSU4KKyAgICBUWVBFIE5PVEFUSU9OIDo6PQorICAgICAgICAgICAgICAgICAgIlNZTlRBWCIgU3ludGF4CisgICAgICAgICAgICAgICAgICBVbml0c1BhcnQKKyAgICAgICAgICAgICAgICAgICJNQVgtQUNDRVNTIiBBY2Nlc3MKKyAgICAgICAgICAgICAgICAgICJTVEFUVVMiIFN0YXR1cworICAgICAgICAgICAgICAgICAgIkRFU0NSSVBUSU9OIiBUZXh0CisgICAgICAgICAgICAgICAgICBSZWZlclBhcnQKKyAgICAgICAgICAgICAgICAgIEluZGV4UGFydAorICAgICAgICAgICAgICAgICAgRGVmVmFsUGFydAorCisgICAgVkFMVUUgTk9UQVRJT04gOjo9CisgICAgICAgICAgICAgICAgICB2YWx1ZShWQUxVRSBPYmplY3ROYW1lKQorCisgICAgU3ludGF4IDo6PSAgIC0tIE11c3QgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmc6CisgICAgICAgICAgICAgICAgICAgICAgIC0tIGEgYmFzZSB0eXBlIChvciBpdHMgcmVmaW5lbWVudCksCisgICAgICAgICAgICAgICAgICAgICAgIC0tIGEgdGV4dHVhbCBjb252ZW50aW9uIChvciBpdHMgcmVmaW5lbWVudCksIG9yCisgICAgICAgICAgICAgICAgICAgICAgIC0tIGEgQklUUyBwc2V1ZG8tdHlwZQorICAgICAgICAgICAgICAgICAgIHR5cGUKKyAgICAgICAgICAgICAgICB8ICJCSVRTIiAieyIgTmFtZWRCaXRzICJ9IgorCisgICAgTmFtZWRCaXRzIDo6PSBOYW1lZEJpdAorICAgICAgICAgICAgICAgIHwgTmFtZWRCaXRzICIsIiBOYW1lZEJpdAorCisgICAgTmFtZWRCaXQgOjo9ICBpZGVudGlmaWVyICIoIiBudW1iZXIgIikiIC0tIG51bWJlciBpcyBub25uZWdhdGl2ZQorCisgICAgVW5pdHNQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAgIlVOSVRTIiBUZXh0CisgICAgICAgICAgICAgICAgfCBlbXB0eQorCisgICAgQWNjZXNzIDo6PQorICAgICAgICAgICAgICAgICAgIm5vdC1hY2Nlc3NpYmxlIgorICAgICAgICAgICAgICAgIHwgImFjY2Vzc2libGUtZm9yLW5vdGlmeSIKKyAgICAgICAgICAgICAgICB8ICJyZWFkLW9ubHkiCisgICAgICAgICAgICAgICAgfCAicmVhZC13cml0ZSIKKyAgICAgICAgICAgICAgICB8ICJyZWFkLWNyZWF0ZSIKKworICAgIFN0YXR1cyA6Oj0KKyAgICAgICAgICAgICAgICAgICJjdXJyZW50IgorICAgICAgICAgICAgICAgIHwgImRlcHJlY2F0ZWQiCisgICAgICAgICAgICAgICAgfCAib2Jzb2xldGUiCisKKyAgICBSZWZlclBhcnQgOjo9CisgICAgICAgICAgICAgICAgICAiUkVGRVJFTkNFIiBUZXh0CisgICAgICAgICAgICAgICAgfCBlbXB0eQorCisgICAgSW5kZXhQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAgIklOREVYIiAgICAieyIgSW5kZXhUeXBlcyAifSIKKyAgICAgICAgICAgICAgICB8ICJBVUdNRU5UUyIgInsiIEVudHJ5ICAgICAgIn0iCisgICAgICAgICAgICAgICAgfCBlbXB0eQorICAgIEluZGV4VHlwZXMgOjo9CisgICAgICAgICAgICAgICAgICBJbmRleFR5cGUKKyAgICAgICAgICAgICAgICB8IEluZGV4VHlwZXMgIiwiIEluZGV4VHlwZQorICAgIEluZGV4VHlwZSA6Oj0KKyAgICAgICAgICAgICAgICAgICJJTVBMSUVEIiBJbmRleAorICAgICAgICAgICAgICAgIHwgSW5kZXgKKyAgICBJbmRleCA6Oj0KKyAgICAgICAgICAgICAgICAgICAgLS0gdXNlIHRoZSBTWU5UQVggdmFsdWUgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgIC0tIGNvcnJlc3BvbmRlbnQgT0JKRUNULVRZUEUgaW52b2NhdGlvbgorICAgICAgICAgICAgICAgICAgdmFsdWUoT2JqZWN0TmFtZSkKKyAgICBFbnRyeSA6Oj0KKyAgICAgICAgICAgICAgICAgICAgLS0gdXNlIHRoZSBJTkRFWCB2YWx1ZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgLS0gY29ycmVzcG9uZGVudCBPQkpFQ1QtVFlQRSBpbnZvY2F0aW9uCisgICAgICAgICAgICAgICAgICB2YWx1ZShPYmplY3ROYW1lKQorCisgICAgRGVmVmFsUGFydCA6Oj0gIkRFRlZBTCIgInsiIERlZnZhbHVlICJ9IgorICAgICAgICAgICAgICAgIHwgZW1wdHkKKworICAgIERlZnZhbHVlIDo6PSAgLS0gbXVzdCBiZSB2YWxpZCBmb3IgdGhlIHR5cGUgc3BlY2lmaWVkIGluCisgICAgICAgICAgICAgICAgICAtLSBTWU5UQVggY2xhdXNlIG9mIHNhbWUgT0JKRUNULVRZUEUgbWFjcm8KKyAgICAgICAgICAgICAgICAgIHZhbHVlKE9iamVjdFN5bnRheCkKKyAgICAgICAgICAgICAgICB8ICJ7IiBCaXRzVmFsdWUgIn0iCisKKyAgICBCaXRzVmFsdWUgOjo9IEJpdE5hbWVzCisgICAgICAgICAgICAgICAgfCBlbXB0eQorCisgICAgQml0TmFtZXMgOjo9ICBCaXROYW1lCisgICAgICAgICAgICAgICAgfCBCaXROYW1lcyAiLCIgQml0TmFtZQorCisgICAgQml0TmFtZSA6Oj0gaWRlbnRpZmllcgorCisgICAgLS0gYSBjaGFyYWN0ZXIgc3RyaW5nIGFzIGRlZmluZWQgaW4gc2VjdGlvbiAzLjEuMQorICAgIFRleHQgOjo9IHZhbHVlKElBNVN0cmluZykKK0VORAorCisKKy0tIGRlZmluaXRpb25zIGZvciBub3RpZmljYXRpb25zCisKK05PVElGSUNBVElPTi1UWVBFIE1BQ1JPIDo6PQorQkVHSU4KKyAgICBUWVBFIE5PVEFUSU9OIDo6PQorICAgICAgICAgICAgICAgICAgT2JqZWN0c1BhcnQKKyAgICAgICAgICAgICAgICAgICJTVEFUVVMiIFN0YXR1cworICAgICAgICAgICAgICAgICAgIkRFU0NSSVBUSU9OIiBUZXh0CisgICAgICAgICAgICAgICAgICBSZWZlclBhcnQKKworICAgIFZBTFVFIE5PVEFUSU9OIDo6PQorICAgICAgICAgICAgICAgICAgdmFsdWUoVkFMVUUgTm90aWZpY2F0aW9uTmFtZSkKKworICAgIE9iamVjdHNQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAgIk9CSkVDVFMiICJ7IiBPYmplY3RzICJ9IgorICAgICAgICAgICAgICAgIHwgZW1wdHkKKyAgICBPYmplY3RzIDo6PQorICAgICAgICAgICAgICAgICAgT2JqZWN0CisgICAgICAgICAgICAgICAgfCBPYmplY3RzICIsIiBPYmplY3QKKyAgICBPYmplY3QgOjo9CisgICAgICAgICAgICAgICAgICB2YWx1ZShPYmplY3ROYW1lKQorCisgICAgU3RhdHVzIDo6PQorICAgICAgICAgICAgICAgICAgImN1cnJlbnQiCisgICAgICAgICAgICAgICAgfCAiZGVwcmVjYXRlZCIKKyAgICAgICAgICAgICAgICB8ICJvYnNvbGV0ZSIKKworICAgIFJlZmVyUGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgICJSRUZFUkVOQ0UiIFRleHQKKyAgICAgICAgICAgICAgICB8IGVtcHR5CisKKyAgICAtLSBhIGNoYXJhY3RlciBzdHJpbmcgYXMgZGVmaW5lZCBpbiBzZWN0aW9uIDMuMS4xCisgICAgVGV4dCA6Oj0gdmFsdWUoSUE1U3RyaW5nKQorRU5ECisKKy0tIGRlZmluaXRpb25zIG9mIGFkbWluaXN0cmF0aXZlIGlkZW50aWZpZXJzCisKK3plcm9Eb3RaZXJvICAgIE9CSkVDVC1JREVOVElUWQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSB2YWx1ZSB1c2VkIGZvciBudWxsIGlkZW50aWZpZXJzLiIKKyAgICA6Oj0geyAwIDAgfQorCitFTkQKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9TTk1QdjItVEMgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvU05NUHYyLVRDCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2OGY5NjkKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvU05NUHYyLVRDCkBAIC0wLDAgKzEsNzg2IEBACitTTk1QdjItVEMgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKK0lNUE9SVFMKKyAgICBUaW1lVGlja3MgICAgICAgICBGUk9NIFNOTVB2Mi1TTUk7CisKKworLS0gZGVmaW5pdGlvbiBvZiB0ZXh0dWFsIGNvbnZlbnRpb25zCisKK1RFWFRVQUwtQ09OVkVOVElPTiBNQUNSTyA6Oj0KK0JFR0lOCisgICAgVFlQRSBOT1RBVElPTiA6Oj0KKyAgICAgICAgICAgICAgICAgIERpc3BsYXlQYXJ0CisgICAgICAgICAgICAgICAgICAiU1RBVFVTIiBTdGF0dXMKKyAgICAgICAgICAgICAgICAgICJERVNDUklQVElPTiIgVGV4dAorICAgICAgICAgICAgICAgICAgUmVmZXJQYXJ0CisgICAgICAgICAgICAgICAgICAiU1lOVEFYIiBTeW50YXgKKworICAgIFZBTFVFIE5PVEFUSU9OIDo6PQorICAgICAgICAgICAgICAgICAgIHZhbHVlKFZBTFVFIFN5bnRheCkgICAgICAtLSBhZGFwdGVkIEFTTi4xCisKKyAgICBEaXNwbGF5UGFydCA6Oj0KKyAgICAgICAgICAgICAgICAgICJESVNQTEFZLUhJTlQiIFRleHQKKyAgICAgICAgICAgICAgICB8IGVtcHR5CisKKyAgICBTdGF0dXMgOjo9CisgICAgICAgICAgICAgICAgICAiY3VycmVudCIKKyAgICAgICAgICAgICAgICB8ICJkZXByZWNhdGVkIgorICAgICAgICAgICAgICAgIHwgIm9ic29sZXRlIgorCisgICAgUmVmZXJQYXJ0IDo6PQorICAgICAgICAgICAgICAgICAgIlJFRkVSRU5DRSIgVGV4dAorICAgICAgICAgICAgICAgIHwgZW1wdHkKKworICAgIC0tIGEgY2hhcmFjdGVyIHN0cmluZyBhcyBkZWZpbmVkIGluIFsyXQorICAgIFRleHQgOjo9IHZhbHVlKElBNVN0cmluZykKKworICAgIFN5bnRheCA6Oj0gICAtLSBNdXN0IGJlIG9uZSBvZiB0aGUgZm9sbG93aW5nOgorICAgICAgICAgICAgICAgICAgICAgICAtLSBhIGJhc2UgdHlwZSAob3IgaXRzIHJlZmluZW1lbnQpLCBvcgorICAgICAgICAgICAgICAgICAgICAgICAtLSBhIEJJVFMgcHNldWRvLXR5cGUKKyAgICAgICAgICAgICAgICAgIHR5cGUKKyAgICAgICAgICAgICAgICB8ICJCSVRTIiAieyIgTmFtZWRCaXRzICJ9IgorCisgICAgTmFtZWRCaXRzIDo6PSBOYW1lZEJpdAorICAgICAgICAgICAgICAgIHwgTmFtZWRCaXRzICIsIiBOYW1lZEJpdAorCisgICAgTmFtZWRCaXQgOjo9ICBpZGVudGlmaWVyICIoIiBudW1iZXIgIikiIC0tIG51bWJlciBpcyBub25uZWdhdGl2ZQorCitFTkQKKworCisKKworRGlzcGxheVN0cmluZyA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgRElTUExBWS1ISU5UICIyNTVhIgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJSZXByZXNlbnRzIHRleHR1YWwgaW5mb3JtYXRpb24gdGFrZW4gZnJvbSB0aGUgTlZUIEFTQ0lJCisgICAgICAgICAgICBjaGFyYWN0ZXIgc2V0LCBhcyBkZWZpbmVkIGluIHBhZ2VzIDQsIDEwLTExIG9mIFJGQyA4NTQuCisKKyAgICAgICAgICAgIFRvIHN1bW1hcml6ZSBSRkMgODU0LCB0aGUgTlZUIEFTQ0lJIHJlcGVydG9pcmUgc3BlY2lmaWVzOgorCisgICAgICAgICAgICAgIC0gdGhlIHVzZSBvZiBjaGFyYWN0ZXIgY29kZXMgMC0xMjcgKGRlY2ltYWwpCisKKyAgICAgICAgICAgICAgLSB0aGUgZ3JhcGhpY3MgY2hhcmFjdGVycyAoMzItMTI2KSBhcmUgaW50ZXJwcmV0ZWQgYXMKKyAgICAgICAgICAgICAgICBVUyBBU0NJSQorCisgICAgICAgICAgICAgIC0gTlVMLCBMRiwgQ1IsIEJFTCwgQlMsIEhULCBWVCBhbmQgRkYgaGF2ZSB0aGUgc3BlY2lhbAorICAgICAgICAgICAgICAgIG1lYW5pbmdzIHNwZWNpZmllZCBpbiBSRkMgODU0CisKKyAgICAgICAgICAgICAgLSB0aGUgb3RoZXIgMjUgY29kZXMgaGF2ZSBubyBzdGFuZGFyZCBpbnRlcnByZXRhdGlvbgorCisgICAgICAgICAgICAgIC0gdGhlIHNlcXVlbmNlICdDUiBMRicgbWVhbnMgbmV3bGluZQorCisgICAgICAgICAgICAgIC0gdGhlIHNlcXVlbmNlICdDUiBOVUwnIG1lYW5zIGNhcnJpYWdlLXJldHVybgorCisgICAgICAgICAgICAgIC0gYW4gJ0xGJyBub3QgcHJlY2VkZWQgYnkgYSAnQ1InIG1lYW5zIG1vdmluZyB0byB0aGUKKyAgICAgICAgICAgICAgICBzYW1lIGNvbHVtbiBvbiB0aGUgbmV4dCBsaW5lLgorCisgICAgICAgICAgICAgIC0gdGhlIHNlcXVlbmNlICdDUiB4JyBmb3IgYW55IHggb3RoZXIgdGhhbiBMRiBvciBOVUwgaXMKKyAgICAgICAgICAgICAgICBpbGxlZ2FsLiAgKE5vdGUgdGhhdCB0aGlzIGFsc28gbWVhbnMgdGhhdCBhIHN0cmluZyBtYXkKKyAgICAgICAgICAgICAgICBlbmQgd2l0aCBlaXRoZXIgJ0NSIExGJyBvciAnQ1IgTlVMJywgYnV0IG5vdCB3aXRoIENSLikKKworICAgICAgICAgICAgQW55IG9iamVjdCBkZWZpbmVkIHVzaW5nIHRoaXMgc3ludGF4IG1heSBub3QgZXhjZWVkIDI1NQorICAgICAgICAgICAgY2hhcmFjdGVycyBpbiBsZW5ndGguIgorICAgIFNZTlRBWCAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDAuLjI1NSkpCisKK1BoeXNBZGRyZXNzIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBESVNQTEFZLUhJTlQgIjF4OiIKKyAgICBTVEFUVVMgICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiUmVwcmVzZW50cyBtZWRpYS0gb3IgcGh5c2ljYWwtbGV2ZWwgYWRkcmVzc2VzLiIKKyAgICBTWU5UQVggICAgICAgT0NURVQgU1RSSU5HCisKKworTWFjQWRkcmVzcyA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgRElTUExBWS1ISU5UICIxeDoiCisgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlJlcHJlc2VudHMgYW4gODAyIE1BQyBhZGRyZXNzIHJlcHJlc2VudGVkIGluIHRoZQorICAgICAgICAgICAgYGNhbm9uaWNhbCcgb3JkZXIgZGVmaW5lZCBieSBJRUVFIDgwMi4xYSwgaS5lLiwgYXMgaWYgaXQKKyAgICAgICAgICAgIHdlcmUgdHJhbnNtaXR0ZWQgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IGZpcnN0LCBldmVuIHRob3VnaAorICAgICAgICAgICAgODAyLjUgKGluIGNvbnRyYXN0IHRvIG90aGVyIDgwMi54IHByb3RvY29scykgcmVxdWlyZXMgTUFDCisgICAgICAgICAgICBhZGRyZXNzZXMgdG8gYmUgdHJhbnNtaXR0ZWQgbW9zdCBzaWduaWZpY2FudCBiaXQgZmlyc3QuIgorICAgIFNZTlRBWCAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDYpKQorCitUcnV0aFZhbHVlIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiUmVwcmVzZW50cyBhIGJvb2xlYW4gdmFsdWUuIgorICAgIFNZTlRBWCAgICAgICBJTlRFR0VSIHsgdHJ1ZSgxKSwgZmFsc2UoMikgfQorCitUZXN0QW5kSW5jciA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlJlcHJlc2VudHMgaW50ZWdlci12YWx1ZWQgaW5mb3JtYXRpb24gdXNlZCBmb3IgYXRvbWljCisgICAgICAgICAgICBvcGVyYXRpb25zLiAgV2hlbiB0aGUgbWFuYWdlbWVudCBwcm90b2NvbCBpcyB1c2VkIHRvIHNwZWNpZnkKKyAgICAgICAgICAgIHRoYXQgYW4gb2JqZWN0IGluc3RhbmNlIGhhdmluZyB0aGlzIHN5bnRheCBpcyB0byBiZQorICAgICAgICAgICAgbW9kaWZpZWQsIHRoZSBuZXcgdmFsdWUgc3VwcGxpZWQgdmlhIHRoZSBtYW5hZ2VtZW50IHByb3RvY29sCisgICAgICAgICAgICBtdXN0IHByZWNpc2VseSBtYXRjaCB0aGUgdmFsdWUgcHJlc2VudGx5IGhlbGQgYnkgdGhlCisgICAgICAgICAgICBpbnN0YW5jZS4gIElmIG5vdCwgdGhlIG1hbmFnZW1lbnQgcHJvdG9jb2wgc2V0IG9wZXJhdGlvbgorICAgICAgICAgICAgZmFpbHMgd2l0aCBhbiBlcnJvciBvZiBgaW5jb25zaXN0ZW50VmFsdWUnLiAgT3RoZXJ3aXNlLCBpZgorICAgICAgICAgICAgdGhlIGN1cnJlbnQgdmFsdWUgaXMgdGhlIG1heGltdW0gdmFsdWUgb2YgMl4zMS0xICgyMTQ3NDgzNjQ3CisgICAgICAgICAgICBkZWNpbWFsKSwgdGhlbiB0aGUgdmFsdWUgaGVsZCBieSB0aGUgaW5zdGFuY2UgaXMgd3JhcHBlZCB0bworICAgICAgICAgICAgemVybzsgb3RoZXJ3aXNlLCB0aGUgdmFsdWUgaGVsZCBieSB0aGUgaW5zdGFuY2UgaXMKKyAgICAgICAgICAgIGluY3JlbWVudGVkIGJ5IG9uZS4gIChOb3RlIHRoYXQgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZQorICAgICAgICAgICAgbWFuYWdlbWVudCBwcm90b2NvbCBzZXQgb3BlcmF0aW9uIHN1Y2NlZWRzLCB0aGUgdmFyaWFibGUtCisgICAgICAgICAgICBiaW5kaW5nIGluIHRoZSByZXF1ZXN0IGFuZCByZXNwb25zZSBQRFVzIGFyZSBpZGVudGljYWwuKQorCisgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhlIEFDQ0VTUyBjbGF1c2UgZm9yIG9iamVjdHMgaGF2aW5nIHRoaXMKKyAgICAgICAgICAgIHN5bnRheCBpcyBlaXRoZXIgYHJlYWQtd3JpdGUnIG9yIGByZWFkLWNyZWF0ZScuICBXaGVuIGFuCisgICAgICAgICAgICBpbnN0YW5jZSBvZiBhIGNvbHVtbmFyIG9iamVjdCBoYXZpbmcgdGhpcyBzeW50YXggaXMgY3JlYXRlZCwKKyAgICAgICAgICAgIGFueSB2YWx1ZSBtYXkgYmUgc3VwcGxpZWQgdmlhIHRoZSBtYW5hZ2VtZW50IHByb3RvY29sLgorCisgICAgICAgICAgICBXaGVuIHRoZSBuZXR3b3JrIG1hbmFnZW1lbnQgcG9ydGlvbiBvZiB0aGUgc3lzdGVtIGlzIHJlLQorICAgICAgICAgICAgaW5pdGlhbGl6ZWQsIHRoZSB2YWx1ZSBvZiBldmVyeSBvYmplY3QgaW5zdGFuY2UgaGF2aW5nIHRoaXMKKyAgICAgICAgICAgIHN5bnRheCBtdXN0IGVpdGhlciBiZSBpbmNyZW1lbnRlZCBmcm9tIGl0cyB2YWx1ZSBwcmlvciB0bworICAgICAgICAgICAgdGhlIHJlLWluaXRpYWxpemF0aW9uLCBvciAoaWYgdGhlIHZhbHVlIHByaW9yIHRvIHRoZSByZS0KKyAgICAgICAgICAgIGluaXRpYWxpemF0aW9uIGlzIHVua25vd24pIGJlIHNldCB0byBhIHBzZXVkby1yYW5kb21seQorICAgICAgICAgICAgZ2VuZXJhdGVkIHZhbHVlLiIKKyAgICBTWU5UQVggICAgICAgSU5URUdFUiAoMC4uMjE0NzQ4MzY0NykKKworQXV0b25vbW91c1R5cGUgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJSZXByZXNlbnRzIGFuIGluZGVwZW5kZW50bHkgZXh0ZW5zaWJsZSB0eXBlIGlkZW50aWZpY2F0aW9uCisgICAgICAgICAgICB2YWx1ZS4gIEl0IG1heSwgZm9yIGV4YW1wbGUsIGluZGljYXRlIGEgcGFydGljdWxhciBzdWItdHJlZQorICAgICAgICAgICAgd2l0aCBmdXJ0aGVyIE1JQiBkZWZpbml0aW9ucywgb3IgZGVmaW5lIGEgcGFydGljdWxhciB0eXBlIG9mCisgICAgICAgICAgICBwcm90b2NvbCBvciBoYXJkd2FyZS4iCisgICAgU1lOVEFYICAgICAgIE9CSkVDVCBJREVOVElGSUVSCisKKworSW5zdGFuY2VQb2ludGVyIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgICAgICAgb2Jzb2xldGUKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkEgcG9pbnRlciB0byBlaXRoZXIgYSBzcGVjaWZpYyBpbnN0YW5jZSBvZiBhIE1JQiBvYmplY3Qgb3IKKyAgICAgICAgICAgIGEgY29uY2VwdHVhbCByb3cgb2YgYSBNSUIgdGFibGUgaW4gdGhlIG1hbmFnZWQgZGV2aWNlLiAgSW4KKyAgICAgICAgICAgIHRoZSBsYXR0ZXIgY2FzZSwgYnkgY29udmVudGlvbiwgaXQgaXMgdGhlIG5hbWUgb2YgdGhlCisgICAgICAgICAgICBwYXJ0aWN1bGFyIGluc3RhbmNlIG9mIHRoZSBmaXJzdCBhY2Nlc3NpYmxlIGNvbHVtbmFyIG9iamVjdAorICAgICAgICAgICAgaW4gdGhlIGNvbmNlcHR1YWwgcm93LgorCisgICAgICAgICAgICBUaGUgdHdvIHVzZXMgb2YgdGhpcyB0ZXh0dWFsIGNvbnZlbnRpb24gYXJlIHJlcGxhY2VkIGJ5CisgICAgICAgICAgICBWYXJpYWJsZVBvaW50ZXIgYW5kIFJvd1BvaW50ZXIsIHJlc3BlY3RpdmVseS4iCisgICAgU1lOVEFYICAgICAgIE9CSkVDVCBJREVOVElGSUVSCisKKworVmFyaWFibGVQb2ludGVyIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiQSBwb2ludGVyIHRvIGEgc3BlY2lmaWMgb2JqZWN0IGluc3RhbmNlLiAgRm9yIGV4YW1wbGUsCisgICAgICAgICAgICBzeXNDb250YWN0LjAgb3IgaWZJbk9jdGV0cy4zLiIKKyAgICBTWU5UQVggICAgICAgT0JKRUNUIElERU5USUZJRVIKKworCitSb3dQb2ludGVyIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiUmVwcmVzZW50cyBhIHBvaW50ZXIgdG8gYSBjb25jZXB0dWFsIHJvdy4gIFRoZSB2YWx1ZSBpcyB0aGUKKyAgICAgICAgICAgIG5hbWUgb2YgdGhlIGluc3RhbmNlIG9mIHRoZSBmaXJzdCBhY2Nlc3NpYmxlIGNvbHVtbmFyIG9iamVjdAorICAgICAgICAgICAgaW4gdGhlIGNvbmNlcHR1YWwgcm93LgorCisgICAgICAgICAgICBGb3IgZXhhbXBsZSwgaWZJbmRleC4zIHdvdWxkIHBvaW50IHRvIHRoZSAzcmQgcm93IGluIHRoZQorICAgICAgICAgICAgaWZUYWJsZSAobm90ZSB0aGF0IGlmIGlmSW5kZXggd2VyZSBub3QtYWNjZXNzaWJsZSwgdGhlbgorICAgICAgICAgICAgaWZEZXNjci4zIHdvdWxkIGJlIHVzZWQgaW5zdGVhZCkuIgorICAgIFNZTlRBWCAgICAgICBPQkpFQ1QgSURFTlRJRklFUgorCitSb3dTdGF0dXMgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgUm93U3RhdHVzIHRleHR1YWwgY29udmVudGlvbiBpcyB1c2VkIHRvIG1hbmFnZSB0aGUKKyAgICAgICAgICAgIGNyZWF0aW9uIGFuZCBkZWxldGlvbiBvZiBjb25jZXB0dWFsIHJvd3MsIGFuZCBpcyB1c2VkIGFzIHRoZQorICAgICAgICAgICAgdmFsdWUgb2YgdGhlIFNZTlRBWCBjbGF1c2UgZm9yIHRoZSBzdGF0dXMgY29sdW1uIG9mIGEKKyAgICAgICAgICAgIGNvbmNlcHR1YWwgcm93IChhcyBkZXNjcmliZWQgaW4gU2VjdGlvbiA3LjcuMSBvZiBbMl0uKQorICAgICAgICAgICAgVGhlIHN0YXR1cyBjb2x1bW4gaGFzIHNpeCBkZWZpbmVkIHZhbHVlczoKKworICAgICAgICAgICAgICAgICAtIGBhY3RpdmUnLCB3aGljaCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29uY2VwdHVhbCByb3cgaXMKKyAgICAgICAgICAgICAgICAgYXZhaWxhYmxlIGZvciB1c2UgYnkgdGhlIG1hbmFnZWQgZGV2aWNlOworCisgICAgICAgICAgICAgICAgIC0gYG5vdEluU2VydmljZScsIHdoaWNoIGluZGljYXRlcyB0aGF0IHRoZSBjb25jZXB0dWFsCisgICAgICAgICAgICAgICAgIHJvdyBleGlzdHMgaW4gdGhlIGFnZW50LCBidXQgaXMgdW5hdmFpbGFibGUgZm9yIHVzZSBieQorICAgICAgICAgICAgICAgICB0aGUgbWFuYWdlZCBkZXZpY2UgKHNlZSBOT1RFIGJlbG93KTsgJ25vdEluU2VydmljZScgaGFzCisgICAgICAgICAgICAgICAgIG5vIGltcGxpY2F0aW9uIHJlZ2FyZGluZyB0aGUgaW50ZXJuYWwgY29uc2lzdGVuY3kgb2YKKyAgICAgICAgICAgICAgICAgdGhlIHJvdywgYXZhaWxhYmlsaXR5IG9mIHJlc291cmNlcywgb3IgY29uc2lzdGVuY3kgd2l0aAorICAgICAgICAgICAgICAgICB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgbWFuYWdlZCBkZXZpY2U7CisKKyAgICAgICAgICAgICAgICAgLSBgbm90UmVhZHknLCB3aGljaCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29uY2VwdHVhbCByb3cKKyAgICAgICAgICAgICAgICAgZXhpc3RzIGluIHRoZSBhZ2VudCwgYnV0IGlzIG1pc3NpbmcgaW5mb3JtYXRpb24KKyAgICAgICAgICAgICAgICAgbmVjZXNzYXJ5IGluIG9yZGVyIHRvIGJlIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IHRoZQorICAgICAgICAgICAgICAgICBtYW5hZ2VkIGRldmljZSAoaS5lLiwgb25lIG9yIG1vcmUgcmVxdWlyZWQgY29sdW1ucyBpbgorICAgICAgICAgICAgICAgICB0aGUgY29uY2VwdHVhbCByb3cgaGF2ZSBub3QgYmVlbiBpbnN0YW5jaWF0ZWQpOworCisgICAgICAgICAgICAgICAgIC0gYGNyZWF0ZUFuZEdvJywgd2hpY2ggaXMgc3VwcGxpZWQgYnkgYSBtYW5hZ2VtZW50CisgICAgICAgICAgICAgICAgIHN0YXRpb24gd2lzaGluZyB0byBjcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgYQorICAgICAgICAgICAgICAgICBjb25jZXB0dWFsIHJvdyBhbmQgdG8gaGF2ZSBpdHMgc3RhdHVzIGF1dG9tYXRpY2FsbHkgc2V0CisgICAgICAgICAgICAgICAgIHRvIGFjdGl2ZSwgbWFraW5nIGl0IGF2YWlsYWJsZSBmb3IgdXNlIGJ5IHRoZSBtYW5hZ2VkCisgICAgICAgICAgICAgICAgIGRldmljZTsKKworICAgICAgICAgICAgICAgICAtIGBjcmVhdGVBbmRXYWl0Jywgd2hpY2ggaXMgc3VwcGxpZWQgYnkgYSBtYW5hZ2VtZW50CisgICAgICAgICAgICAgICAgIHN0YXRpb24gd2lzaGluZyB0byBjcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgYQorICAgICAgICAgICAgICAgICBjb25jZXB0dWFsIHJvdyAoYnV0IG5vdCBtYWtlIGl0IGF2YWlsYWJsZSBmb3IgdXNlIGJ5CisgICAgICAgICAgICAgICAgIHRoZSBtYW5hZ2VkIGRldmljZSk7IGFuZCwKKworICAgICAgICAgICAgICAgICAtIGBkZXN0cm95Jywgd2hpY2ggaXMgc3VwcGxpZWQgYnkgYSBtYW5hZ2VtZW50IHN0YXRpb24KKyAgICAgICAgICAgICAgICAgd2lzaGluZyB0byBkZWxldGUgYWxsIG9mIHRoZSBpbnN0YW5jZXMgYXNzb2NpYXRlZCB3aXRoCisgICAgICAgICAgICAgICAgIGFuIGV4aXN0aW5nIGNvbmNlcHR1YWwgcm93LgorCisgICAgICAgICAgICBXaGVyZWFzIGZpdmUgb2YgdGhlIHNpeCB2YWx1ZXMgKGFsbCBleGNlcHQgYG5vdFJlYWR5JykgbWF5CisgICAgICAgICAgICBiZSBzcGVjaWZpZWQgaW4gYSBtYW5hZ2VtZW50IHByb3RvY29sIHNldCBvcGVyYXRpb24sIG9ubHkKKyAgICAgICAgICAgIHRocmVlIHZhbHVlcyB3aWxsIGJlIHJldHVybmVkIGluIHJlc3BvbnNlIHRvIGEgbWFuYWdlbWVudAorICAgICAgICAgICAgcHJvdG9jb2wgcmV0cmlldmFsIG9wZXJhdGlvbjogIGBub3RSZWFkeScsIGBub3RJblNlcnZpY2UnIG9yCisgICAgICAgICAgICBgYWN0aXZlJy4gIFRoYXQgaXMsIHdoZW4gcXVlcmllZCwgYW4gZXhpc3RpbmcgY29uY2VwdHVhbCByb3cKKyAgICAgICAgICAgIGhhcyBvbmx5IHRocmVlIHN0YXRlczogIGl0IGlzIGVpdGhlciBhdmFpbGFibGUgZm9yIHVzZSBieQorICAgICAgICAgICAgdGhlIG1hbmFnZWQgZGV2aWNlICh0aGUgc3RhdHVzIGNvbHVtbiBoYXMgdmFsdWUgYGFjdGl2ZScpOworICAgICAgICAgICAgaXQgaXMgbm90IGF2YWlsYWJsZSBmb3IgdXNlIGJ5IHRoZSBtYW5hZ2VkIGRldmljZSwgdGhvdWdoCisgICAgICAgICAgICB0aGUgYWdlbnQgaGFzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gYXR0ZW1wdCB0byBtYWtlIGl0CisgICAgICAgICAgICBzbyAodGhlIHN0YXR1cyBjb2x1bW4gaGFzIHZhbHVlIGBub3RJblNlcnZpY2UnKTsgb3IsIGl0IGlzCisgICAgICAgICAgICBub3QgYXZhaWxhYmxlIGZvciB1c2UgYnkgdGhlIG1hbmFnZWQgZGV2aWNlLCBhbmQgYW4gYXR0ZW1wdAorICAgICAgICAgICAgdG8gbWFrZSBpdCBzbyB3b3VsZCBmYWlsIGJlY2F1c2UgdGhlIGFnZW50IGhhcyBpbnN1ZmZpY2llbnQKKyAgICAgICAgICAgIGluZm9ybWF0aW9uICh0aGUgc3RhdGUgY29sdW1uIGhhcyB2YWx1ZSBgbm90UmVhZHknKS4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PVEUgV0VMTAorCisgICAgICAgICAgICAgICAgIFRoaXMgdGV4dHVhbCBjb252ZW50aW9uIG1heSBiZSB1c2VkIGZvciBhIE1JQiB0YWJsZSwKKyAgICAgICAgICAgICAgICAgaXJyZXNwZWN0aXZlIG9mIHdoZXRoZXIgdGhlIHZhbHVlcyBvZiB0aGF0IHRhYmxlJ3MKKyAgICAgICAgICAgICAgICAgY29uY2VwdHVhbCByb3dzIGFyZSBhYmxlIHRvIGJlIG1vZGlmaWVkIHdoaWxlIGl0IGlzCisgICAgICAgICAgICAgICAgIGFjdGl2ZSwgb3Igd2hldGhlciBpdHMgY29uY2VwdHVhbCByb3dzIG11c3QgYmUgdGFrZW4KKyAgICAgICAgICAgICAgICAgb3V0IG9mIHNlcnZpY2UgaW4gb3JkZXIgdG8gYmUgbW9kaWZpZWQuICBUaGF0IGlzLCBpdCBpcworICAgICAgICAgICAgICAgICB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIERFU0NSSVBUSU9OIGNsYXVzZSBvZiB0aGUKKyAgICAgICAgICAgICAgICAgc3RhdHVzIGNvbHVtbiB0byBzcGVjaWZ5IHdoZXRoZXIgdGhlIHN0YXR1cyBjb2x1bW4gbXVzdAorICAgICAgICAgICAgICAgICBub3QgYmUgYGFjdGl2ZScgaW4gb3JkZXIgZm9yIHRoZSB2YWx1ZSBvZiBzb21lIG90aGVyCisgICAgICAgICAgICAgICAgIGNvbHVtbiBvZiB0aGUgc2FtZSBjb25jZXB0dWFsIHJvdyB0byBiZSBtb2RpZmllZC4gIElmCisgICAgICAgICAgICAgICAgIHN1Y2ggYSBzcGVjaWZpY2F0aW9uIGlzIG1hZGUsIGFmZmVjdGVkIGNvbHVtbnMgbWF5IGJlCisgICAgICAgICAgICAgICAgIGNoYW5nZWQgYnkgYW4gU05NUCBzZXQgUERVIGlmIHRoZSBSb3dTdGF0dXMgd291bGQgbm90CisgICAgICAgICAgICAgICAgIGJlIGVxdWFsIHRvIGBhY3RpdmUnIGVpdGhlciBpbW1lZGlhdGVseSBiZWZvcmUgb3IgYWZ0ZXIKKyAgICAgICAgICAgICAgICAgcHJvY2Vzc2luZyB0aGUgUERVLiAgSW4gb3RoZXIgd29yZHMsIGlmIHRoZSBQRFUgYWxzbworICAgICAgICAgICAgICAgICBjb250YWluZWQgYSB2YXJiaW5kIHRoYXQgd291bGQgY2hhbmdlIHRoZSBSb3dTdGF0dXMKKyAgICAgICAgICAgICAgICAgdmFsdWUsIHRoZSBjb2x1bW4gaW4gcXVlc3Rpb24gbWF5IGJlIGNoYW5nZWQgaWYgdGhlCisgICAgICAgICAgICAgICAgIFJvd1N0YXR1cyB3YXMgbm90IGVxdWFsIHRvIGBhY3RpdmUnIGFzIHRoZSBQRFUgd2FzCisgICAgICAgICAgICAgICAgIHJlY2VpdmVkLCBvciBpZiB0aGUgdmFyYmluZCBzZXRzIHRoZSBzdGF0dXMgdG8gYSB2YWx1ZQorICAgICAgICAgICAgICAgICBvdGhlciB0aGFuICdhY3RpdmUnLgorCisKKyAgICAgICAgICAgIEFsc28gbm90ZSB0aGF0IHdoZW5ldmVyIGFueSBlbGVtZW50cyBvZiBhIHJvdyBleGlzdCwgdGhlCisgICAgICAgICAgICBSb3dTdGF0dXMgY29sdW1uIG11c3QgYWxzbyBleGlzdC4KKworICAgICAgICAgICAgVG8gc3VtbWFyaXplIHRoZSBlZmZlY3Qgb2YgaGF2aW5nIGEgY29uY2VwdHVhbCByb3cgd2l0aCBhCisgICAgICAgICAgICBzdGF0dXMgY29sdW1uIGhhdmluZyBhIFNZTlRBWCBjbGF1c2UgdmFsdWUgb2YgUm93U3RhdHVzLAorICAgICAgICAgICAgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBzdGF0ZSBkaWFncmFtOgorCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBVEUKKyAgICAgICAgICAgICAgKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICB8ICAgICAgQSAgICAgICB8ICAgICBCICAgICB8ICAgICAgQyAgICAgIHwgICAgICBECisgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHxzdGF0dXMgY29sLnxzdGF0dXMgY29sdW1ufAorICAgICAgICAgICAgICB8c3RhdHVzIGNvbHVtbiB8ICAgIGlzICAgICB8ICAgICAgaXMgICAgIHxzdGF0dXMgY29sdW1uCisgICAgQUNUSU9OICAgIHxkb2VzIG5vdCBleGlzdHwgIG5vdFJlYWR5IHwgbm90SW5TZXJ2aWNlfCAgaXMgYWN0aXZlCistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KK3NldCBzdGF0dXMgICAgfG5vRXJyb3IgICAgLT5EfGluY29uc2lzdC0gfGluY29uc2lzdGVudC18aW5jb25zaXN0ZW50LQorY29sdW1uIHRvICAgICB8ICAgICAgIG9yICAgICB8ICAgZW50VmFsdWV8ICAgICAgICBWYWx1ZXwgICAgICAgIFZhbHVlCitjcmVhdGVBbmRHbyAgIHxpbmNvbnNpc3RlbnQtIHwgICAgICAgICAgIHwgICAgICAgICAgICAgfAorICAgICAgICAgICAgICB8ICAgICAgICAgVmFsdWV8ICAgICAgICAgICB8ICAgICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorc2V0IHN0YXR1cyAgICB8bm9FcnJvciAgc2VlIDF8aW5jb25zaXN0LSB8aW5jb25zaXN0ZW50LXxpbmNvbnNpc3RlbnQtCitjb2x1bW4gdG8gICAgIHwgICAgICAgb3IgICAgIHwgICBlbnRWYWx1ZXwgICAgICAgIFZhbHVlfCAgICAgICAgVmFsdWUKK2NyZWF0ZUFuZFdhaXQgfHdyb25nVmFsdWUgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICB8CistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KK3NldCBzdGF0dXMgICAgfGluY29uc2lzdGVudC0gfGluY29uc2lzdC0gfG5vRXJyb3IgICAgICB8bm9FcnJvcgorY29sdW1uIHRvICAgICB8ICAgICAgICAgVmFsdWV8ICAgZW50VmFsdWV8ICAgICAgICAgICAgIHwKK2FjdGl2ZSAgICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICB8CisgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgIG9yICAgIHwgICAgICAgICAgICAgfAorICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfHNlZSAyICAgLT5EfHNlZSA4ICAgICAtPkR8ICAgICAgICAgIC0+RAorLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCitzZXQgc3RhdHVzICAgIHxpbmNvbnNpc3RlbnQtIHxpbmNvbnNpc3QtIHxub0Vycm9yICAgICAgfG5vRXJyb3IgICAtPkMKK2NvbHVtbiB0byAgICAgfCAgICAgICAgIFZhbHVlfCAgIGVudFZhbHVlfCAgICAgICAgICAgICB8Citub3RJblNlcnZpY2UgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgfAorICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICBvciAgICB8ICAgICAgICAgICAgIHwgICAgICBvcgorICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgfHNlZSAzICAgLT5DfCAgICAgICAgICAtPkN8c2VlIDYKKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorc2V0IHN0YXR1cyAgICB8bm9FcnJvciAgICAgICB8bm9FcnJvciAgICB8bm9FcnJvciAgICAgIHxub0Vycm9yICAgLT5BCitjb2x1bW4gdG8gICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgIG9yCitkZXN0cm95ICAgICAgIHwgICAgICAgICAgIC0+QXwgICAgICAgIC0+QXwgICAgICAgICAgLT5BfHNlZSA3CistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KK3NldCBhbnkgb3RoZXIgfHNlZSA0ICAgICAgICAgfG5vRXJyb3IgICAgfG5vRXJyb3IgICAgICB8c2VlIDUKK2NvbHVtbiB0byBzb21lfCAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICB8Cit2YWx1ZSAgICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICBzZWUgMXwgICAgICAgICAgLT5DfCAgICAgICAgICAtPkQKKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorCisgICAgICAgICAgICAoMSkgZ290byBCIG9yIEMsIGRlcGVuZGluZyBvbiBpbmZvcm1hdGlvbiBhdmFpbGFibGUgdG8gdGhlCisgICAgICAgICAgICBhZ2VudC4KKworICAgICAgICAgICAgKDIpIGlmIG90aGVyIHZhcmlhYmxlIGJpbmRpbmdzIGluY2x1ZGVkIGluIHRoZSBzYW1lIFBEVSwKKyAgICAgICAgICAgIHByb3ZpZGUgdmFsdWVzIGZvciBhbGwgY29sdW1ucyB3aGljaCBhcmUgbWlzc2luZyBidXQKKyAgICAgICAgICAgIHJlcXVpcmVkLCBhbmQgYWxsIGNvbHVtbnMgaGF2ZSBhY2NlcHRhYmxlIHZhbHVlcywgdGhlbgorICAgICAgICAgICAgcmV0dXJuIG5vRXJyb3IgYW5kIGdvdG8gRC4KKworICAgICAgICAgICAgKDMpIGlmIG90aGVyIHZhcmlhYmxlIGJpbmRpbmdzIGluY2x1ZGVkIGluIHRoZSBzYW1lIFBEVSwKKyAgICAgICAgICAgIHByb3ZpZGUgbGVnYWwgdmFsdWVzIGZvciBhbGwgY29sdW1ucyB3aGljaCBhcmUgbWlzc2luZyBidXQKKyAgICAgICAgICAgIHJlcXVpcmVkLCB0aGVuIHJldHVybiBub0Vycm9yIGFuZCBnb3RvIEMuCisKKyAgICAgICAgICAgICg0KSBhdCB0aGUgZGlzY3JldGlvbiBvZiB0aGUgYWdlbnQsIHRoZSByZXR1cm4gdmFsdWUgbWF5IGJlCisgICAgICAgICAgICBlaXRoZXI6CisKKyAgICAgICAgICAgICAgICAgaW5jb25zaXN0ZW50TmFtZTogIGJlY2F1c2UgdGhlIGFnZW50IGRvZXMgbm90IGNob29zZSB0bworICAgICAgICAgICAgICAgICBjcmVhdGUgc3VjaCBhbiBpbnN0YW5jZSB3aGVuIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgIFJvd1N0YXR1cyBpbnN0YW5jZSBkb2VzIG5vdCBleGlzdCwgb3IKKworICAgICAgICAgICAgICAgICBpbmNvbnNpc3RlbnRWYWx1ZTogIGlmIHRoZSBzdXBwbGllZCB2YWx1ZSBpcworICAgICAgICAgICAgICAgICBpbmNvbnNpc3RlbnQgd2l0aCB0aGUgc3RhdGUgb2Ygc29tZSBvdGhlciBNSUIgb2JqZWN0J3MKKyAgICAgICAgICAgICAgICAgdmFsdWUsIG9yCisKKyAgICAgICAgICAgICAgICAgbm9FcnJvcjogYmVjYXVzZSB0aGUgYWdlbnQgY2hvb3NlcyB0byBjcmVhdGUgdGhlCisgICAgICAgICAgICAgICAgIGluc3RhbmNlLgorCisgICAgICAgICAgICBJZiBub0Vycm9yIGlzIHJldHVybmVkLCB0aGVuIHRoZSBpbnN0YW5jZSBvZiB0aGUgc3RhdHVzCisgICAgICAgICAgICBjb2x1bW4gbXVzdCBhbHNvIGJlIGNyZWF0ZWQsIGFuZCB0aGUgbmV3IHN0YXRlIGlzIEIgb3IgQywKKyAgICAgICAgICAgIGRlcGVuZGluZyBvbiB0aGUgaW5mb3JtYXRpb24gYXZhaWxhYmxlIHRvIHRoZSBhZ2VudC4gIElmCisgICAgICAgICAgICBpbmNvbnNpc3RlbnROYW1lIG9yIGluY29uc2lzdGVudFZhbHVlIGlzIHJldHVybmVkLCB0aGUgcm93CisgICAgICAgICAgICByZW1haW5zIGluIHN0YXRlIEEuCisKKyAgICAgICAgICAgICg1KSBkZXBlbmRpbmcgb24gdGhlIE1JQiBkZWZpbml0aW9uIGZvciB0aGUgY29sdW1uL3RhYmxlLAorICAgICAgICAgICAgZWl0aGVyIG5vRXJyb3Igb3IgaW5jb25zaXN0ZW50VmFsdWUgbWF5IGJlIHJldHVybmVkLgorCisgICAgICAgICAgICAoNikgdGhlIHJldHVybiB2YWx1ZSBjYW4gaW5kaWNhdGUgb25lIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgICAgICAgIGVycm9yczoKKworICAgICAgICAgICAgICAgICB3cm9uZ1ZhbHVlOiBiZWNhdXNlIHRoZSBhZ2VudCBkb2VzIG5vdCBzdXBwb3J0CisgICAgICAgICAgICAgICAgIG5vdEluU2VydmljZSAoZS5nLiwgYW4gYWdlbnQgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydAorICAgICAgICAgICAgICAgICBjcmVhdGVBbmRXYWl0KSwgb3IKKworICAgICAgICAgICAgICAgICBpbmNvbnNpc3RlbnRWYWx1ZTogYmVjYXVzZSB0aGUgYWdlbnQgaXMgdW5hYmxlIHRvIHRha2UKKyAgICAgICAgICAgICAgICAgdGhlIHJvdyBvdXQgb2Ygc2VydmljZSBhdCB0aGlzIHRpbWUsIHBlcmhhcHMgYmVjYXVzZSBpdAorICAgICAgICAgICAgICAgICBpcyBpbiB1c2UgYW5kIGNhbm5vdCBiZSBkZS1hY3RpdmF0ZWQuCisKKyAgICAgICAgICAgICg3KSB0aGUgcmV0dXJuIHZhbHVlIGNhbiBpbmRpY2F0ZSB0aGUgZm9sbG93aW5nIGVycm9yOgorCisgICAgICAgICAgICAgICAgIGluY29uc2lzdGVudFZhbHVlOiBiZWNhdXNlIHRoZSBhZ2VudCBpcyB1bmFibGUgdG8KKyAgICAgICAgICAgICAgICAgcmVtb3ZlIHRoZSByb3cgYXQgdGhpcyB0aW1lLCBwZXJoYXBzIGJlY2F1c2UgaXQgaXMgaW4KKyAgICAgICAgICAgICAgICAgdXNlIGFuZCBjYW5ub3QgYmUgZGUtYWN0aXZhdGVkLgorCisgICAgICAgICAgICAoOCkgdGhlIHRyYW5zaXRpb24gdG8gRCBjYW4gZmFpbCwgZS5nLiwgaWYgdGhlIHZhbHVlcyBvZiB0aGUKKyAgICAgICAgICAgIGNvbmNlcHR1YWwgcm93IGFyZSBpbmNvbnNpc3RlbnQsIHRoZW4gdGhlIGVycm9yIGNvZGUgd291bGQKKyAgICAgICAgICAgIGJlIGluY29uc2lzdGVudFZhbHVlLgorCisgICAgICAgICAgICBOT1RFOiBPdGhlciBwcm9jZXNzaW5nIG9mICh0aGlzIGFuZCBvdGhlciB2YXJiaW5kcyBvZikgdGhlCisgICAgICAgICAgICBzZXQgcmVxdWVzdCBtYXkgcmVzdWx0IGluIGEgcmVzcG9uc2Ugb3RoZXIgdGhhbiBub0Vycm9yCisgICAgICAgICAgICBiZWluZyByZXR1cm5lZCwgZS5nLiwgd3JvbmdWYWx1ZSwgbm9DcmVhdGlvbiwgZXRjLgorCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbmNlcHR1YWwgUm93IENyZWF0aW9uCisKKyAgICAgICAgICAgIFRoZXJlIGFyZSBmb3VyIHBvdGVudGlhbCBpbnRlcmFjdGlvbnMgd2hlbiBjcmVhdGluZyBhCisgICAgICAgICAgICBjb25jZXB0dWFsIHJvdzogIHNlbGVjdGluZyBhbiBpbnN0YW5jZS1pZGVudGlmaWVyIHdoaWNoIGlzCisgICAgICAgICAgICBub3QgaW4gdXNlOyBjcmVhdGluZyB0aGUgY29uY2VwdHVhbCByb3c7IGluaXRpYWxpemluZyBhbnkKKyAgICAgICAgICAgIG9iamVjdHMgZm9yIHdoaWNoIHRoZSBhZ2VudCBkb2VzIG5vdCBzdXBwbHkgYSBkZWZhdWx0OyBhbmQsCisgICAgICAgICAgICBtYWtpbmcgdGhlIGNvbmNlcHR1YWwgcm93IGF2YWlsYWJsZSBmb3IgdXNlIGJ5IHRoZSBtYW5hZ2VkCisgICAgICAgICAgICBkZXZpY2UuCisKKyAgICAgICAgICAgIEludGVyYWN0aW9uIDE6IFNlbGVjdGluZyBhbiBJbnN0YW5jZS1JZGVudGlmaWVyCisKKyAgICAgICAgICAgIFRoZSBhbGdvcml0aG0gdXNlZCB0byBzZWxlY3QgYW4gaW5zdGFuY2UtaWRlbnRpZmllciB2YXJpZXMKKyAgICAgICAgICAgIGZvciBlYWNoIGNvbmNlcHR1YWwgcm93LiAgSW4gc29tZSBjYXNlcywgdGhlIGluc3RhbmNlLQorICAgICAgICAgICAgaWRlbnRpZmllciBpcyBzZW1hbnRpY2FsbHkgc2lnbmlmaWNhbnQsIGUuZy4sIHRoZQorICAgICAgICAgICAgZGVzdGluYXRpb24gYWRkcmVzcyBvZiBhIHJvdXRlLCBhbmQgYSBtYW5hZ2VtZW50IHN0YXRpb24KKyAgICAgICAgICAgIHNlbGVjdHMgdGhlIGluc3RhbmNlLWlkZW50aWZpZXIgYWNjb3JkaW5nIHRvIHRoZSBzZW1hbnRpY3MuCisKKyAgICAgICAgICAgIEluIG90aGVyIGNhc2VzLCB0aGUgaW5zdGFuY2UtaWRlbnRpZmllciBpcyB1c2VkIHNvbGVseSB0bworICAgICAgICAgICAgZGlzdGluZ3Vpc2ggY29uY2VwdHVhbCByb3dzLCBhbmQgYSBtYW5hZ2VtZW50IHN0YXRpb24KKyAgICAgICAgICAgIHdpdGhvdXQgc3BlY2lmaWMga25vd2xlZGdlIG9mIHRoZSBjb25jZXB0dWFsIHJvdyBtaWdodAorICAgICAgICAgICAgZXhhbWluZSB0aGUgaW5zdGFuY2VzIHByZXNlbnQgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGFuCisgICAgICAgICAgICB1bnVzZWQgaW5zdGFuY2UtaWRlbnRpZmllci4gIChUaGlzIGFwcHJvYWNoIG1heSBiZSB1c2VkLCBidXQKKyAgICAgICAgICAgIGl0IGlzIG9mdGVuIGhpZ2hseSBzdWItb3B0aW1hbDsgaG93ZXZlciwgaXQgaXMgYWxzbyBhCisgICAgICAgICAgICBxdWVzdGlvbmFibGUgcHJhY3RpY2UgZm9yIGEgbmFpdmUgbWFuYWdlbWVudCBzdGF0aW9uIHRvCisgICAgICAgICAgICBhdHRlbXB0IGNvbmNlcHR1YWwgcm93IGNyZWF0aW9uLikKKworICAgICAgICAgICAgQWx0ZXJuYXRlbHksIHRoZSBNSUIgbW9kdWxlIHdoaWNoIGRlZmluZXMgdGhlIGNvbmNlcHR1YWwgcm93CisgICAgICAgICAgICBtaWdodCBwcm92aWRlIG9uZSBvciBtb3JlIG9iamVjdHMgd2hpY2ggcHJvdmlkZSBhc3Npc3RhbmNlCisgICAgICAgICAgICBpbiBkZXRlcm1pbmluZyBhbiB1bnVzZWQgaW5zdGFuY2UtaWRlbnRpZmllci4gIEZvciBleGFtcGxlLAorICAgICAgICAgICAgaWYgdGhlIGNvbmNlcHR1YWwgcm93IGlzIGluZGV4ZWQgYnkgYW4gaW50ZWdlci12YWx1ZSwgdGhlbgorICAgICAgICAgICAgYW4gb2JqZWN0IGhhdmluZyBhbiBpbnRlZ2VyLXZhbHVlZCBTWU5UQVggY2xhdXNlIG1pZ2h0IGJlCisgICAgICAgICAgICBkZWZpbmVkIGZvciBzdWNoIGEgcHVycG9zZSwgYWxsb3dpbmcgYSBtYW5hZ2VtZW50IHN0YXRpb24gdG8KKyAgICAgICAgICAgIGlzc3VlIGEgbWFuYWdlbWVudCBwcm90b2NvbCByZXRyaWV2YWwgb3BlcmF0aW9uLiAgSW4gb3JkZXIKKyAgICAgICAgICAgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNvbGxpc2lvbnMgYmV0d2VlbiBjb21wZXRpbmcgbWFuYWdlbWVudAorICAgICAgICAgICAgc3RhdGlvbnMsIGBhZGphY2VudCcgcmV0cmlldmFscyBvZiB0aGlzIG9iamVjdCBzaG91bGQgYmUKKyAgICAgICAgICAgIGRpZmZlcmVudC4KKworICAgICAgICAgICAgRmluYWxseSwgdGhlIG1hbmFnZW1lbnQgc3RhdGlvbiBjb3VsZCBzZWxlY3QgYSBwc2V1ZG8tcmFuZG9tCisgICAgICAgICAgICBudW1iZXIgdG8gdXNlIGFzIHRoZSBpbmRleC4gIEluIHRoZSBldmVudCB0aGF0IHRoaXMgaW5kZXgKKyAgICAgICAgICAgIHdhcyBhbHJlYWR5IGluIHVzZSBhbmQgYW4gaW5jb25zaXN0ZW50VmFsdWUgd2FzIHJldHVybmVkIGluCisgICAgICAgICAgICByZXNwb25zZSB0byB0aGUgbWFuYWdlbWVudCBwcm90b2NvbCBzZXQgb3BlcmF0aW9uLCB0aGUKKyAgICAgICAgICAgIG1hbmFnZW1lbnQgc3RhdGlvbiBzaG91bGQgc2ltcGx5IHNlbGVjdCBhIG5ldyBwc2V1ZG8tcmFuZG9tCisgICAgICAgICAgICBudW1iZXIgYW5kIHJldHJ5IHRoZSBvcGVyYXRpb24uCisKKyAgICAgICAgICAgIEEgTUlCIGRlc2lnbmVyIHNob3VsZCBjaG9vc2UgYmV0d2VlbiB0aGUgdHdvIGxhdHRlcgorICAgICAgICAgICAgYWxnb3JpdGhtcyBiYXNlZCBvbiB0aGUgc2l6ZSBvZiB0aGUgdGFibGUgKGFuZCB0aGVyZWZvcmUgdGhlCisgICAgICAgICAgICBlZmZpY2llbmN5IG9mIGVhY2ggYWxnb3JpdGhtKS4gIEZvciB0YWJsZXMgaW4gd2hpY2ggYSBsYXJnZQorICAgICAgICAgICAgbnVtYmVyIG9mIGVudHJpZXMgYXJlIGV4cGVjdGVkLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IGEgTUlCCisgICAgICAgICAgICBvYmplY3QgYmUgZGVmaW5lZCB0aGF0IHJldHVybnMgYW4gYWNjZXB0YWJsZSBpbmRleCBmb3IKKyAgICAgICAgICAgIGNyZWF0aW9uLiAgRm9yIHRhYmxlcyB3aXRoIHNtYWxsIG51bWJlcnMgb2YgZW50cmllcywgaXQgaXMKKyAgICAgICAgICAgIHJlY29tbWVuZGVkIHRoYXQgdGhlIGxhdHRlciBwc2V1ZG8tcmFuZG9tIGluZGV4IG1lY2hhbmlzbSBiZQorICAgICAgICAgICAgdXNlZC4KKworICAgICAgICAgICAgSW50ZXJhY3Rpb24gMjogQ3JlYXRpbmcgdGhlIENvbmNlcHR1YWwgUm93CisKKyAgICAgICAgICAgIE9uY2UgYW4gdW51c2VkIGluc3RhbmNlLWlkZW50aWZpZXIgaGFzIGJlZW4gc2VsZWN0ZWQsIHRoZQorICAgICAgICAgICAgbWFuYWdlbWVudCBzdGF0aW9uIGRldGVybWluZXMgaWYgaXQgd2lzaGVzIHRvIGNyZWF0ZSBhbmQKKyAgICAgICAgICAgIGFjdGl2YXRlIHRoZSBjb25jZXB0dWFsIHJvdyBpbiBvbmUgdHJhbnNhY3Rpb24gb3IgaW4gYQorICAgICAgICAgICAgbmVnb3RpYXRlZCBzZXQgb2YgaW50ZXJhY3Rpb25zLgorCisgICAgICAgICAgICBJbnRlcmFjdGlvbiAyYTogQ3JlYXRpbmcgYW5kIEFjdGl2YXRpbmcgdGhlIENvbmNlcHR1YWwgUm93CisKKyAgICAgICAgICAgIFRoZSBtYW5hZ2VtZW50IHN0YXRpb24gbXVzdCBmaXJzdCBkZXRlcm1pbmUgdGhlIGNvbHVtbgorICAgICAgICAgICAgcmVxdWlyZW1lbnRzLCBpLmUuLCBpdCBtdXN0IGRldGVybWluZSB0aG9zZSBjb2x1bW5zIGZvcgorICAgICAgICAgICAgd2hpY2ggaXQgbXVzdCBvciBtdXN0IG5vdCBwcm92aWRlIHZhbHVlcy4gIERlcGVuZGluZyBvbiB0aGUKKyAgICAgICAgICAgIGNvbXBsZXhpdHkgb2YgdGhlIHRhYmxlIGFuZCB0aGUgbWFuYWdlbWVudCBzdGF0aW9uJ3MKKyAgICAgICAgICAgIGtub3dsZWRnZSBvZiB0aGUgYWdlbnQncyBjYXBhYmlsaXRpZXMsIHRoaXMgZGV0ZXJtaW5hdGlvbgorICAgICAgICAgICAgY2FuIGJlIG1hZGUgbG9jYWxseSBieSB0aGUgbWFuYWdlbWVudCBzdGF0aW9uLiAgQWx0ZXJuYXRlbHksCisgICAgICAgICAgICB0aGUgbWFuYWdlbWVudCBzdGF0aW9uIGlzc3VlcyBhIG1hbmFnZW1lbnQgcHJvdG9jb2wgZ2V0CisgICAgICAgICAgICBvcGVyYXRpb24gdG8gZXhhbWluZSBhbGwgY29sdW1ucyBpbiB0aGUgY29uY2VwdHVhbCByb3cgdGhhdAorICAgICAgICAgICAgaXQgd2lzaGVzIHRvIGNyZWF0ZS4gIEluIHJlc3BvbnNlLCBmb3IgZWFjaCBjb2x1bW4sIHRoZXJlCisgICAgICAgICAgICBhcmUgdGhyZWUgcG9zc2libGUgb3V0Y29tZXM6CisKKyAgICAgICAgICAgICAgICAgLSBhIHZhbHVlIGlzIHJldHVybmVkLCBpbmRpY2F0aW5nIHRoYXQgc29tZSBvdGhlcgorICAgICAgICAgICAgICAgICBtYW5hZ2VtZW50IHN0YXRpb24gaGFzIGFscmVhZHkgY3JlYXRlZCB0aGlzIGNvbmNlcHR1YWwKKyAgICAgICAgICAgICAgICAgcm93LiAgV2UgcmV0dXJuIHRvIGludGVyYWN0aW9uIDEuCisKKyAgICAgICAgICAgICAgICAgLSB0aGUgZXhjZXB0aW9uIGBub1N1Y2hJbnN0YW5jZScgaXMgcmV0dXJuZWQsCisgICAgICAgICAgICAgICAgIGluZGljYXRpbmcgdGhhdCB0aGUgYWdlbnQgaW1wbGVtZW50cyB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgICAgICAgICAgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1uLCBhbmQgdGhhdCB0aGlzIGNvbHVtbiBpbiBhdAorICAgICAgICAgICAgICAgICBsZWFzdCBvbmUgY29uY2VwdHVhbCByb3cgd291bGQgYmUgYWNjZXNzaWJsZSBpbiB0aGUgTUlCCisgICAgICAgICAgICAgICAgIHZpZXcgdXNlZCBieSB0aGUgcmV0cmlldmFsIHdlcmUgaXQgdG8gZXhpc3QuIEZvciB0aG9zZQorICAgICAgICAgICAgICAgICBjb2x1bW5zIHRvIHdoaWNoIHRoZSBhZ2VudCBwcm92aWRlcyByZWFkLWNyZWF0ZSBhY2Nlc3MsCisgICAgICAgICAgICAgICAgIHRoZSBgbm9TdWNoSW5zdGFuY2UnIGV4Y2VwdGlvbiB0ZWxscyB0aGUgbWFuYWdlbWVudAorICAgICAgICAgICAgICAgICBzdGF0aW9uIHRoYXQgaXQgc2hvdWxkIHN1cHBseSBhIHZhbHVlIGZvciB0aGlzIGNvbHVtbgorICAgICAgICAgICAgICAgICB3aGVuIHRoZSBjb25jZXB0dWFsIHJvdyBpcyB0byBiZSBjcmVhdGVkLgorCisgICAgICAgICAgICAgICAgIC0gdGhlIGV4Y2VwdGlvbiBgbm9TdWNoT2JqZWN0JyBpcyByZXR1cm5lZCwgaW5kaWNhdGluZworICAgICAgICAgICAgICAgICB0aGF0IHRoZSBhZ2VudCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIG9iamVjdC10eXBlCisgICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbHVtbiBvciB0aGF0IHRoZXJlIGlzIG5vCisgICAgICAgICAgICAgICAgIGNvbmNlcHR1YWwgcm93IGZvciB3aGljaCB0aGlzIGNvbHVtbiB3b3VsZCBiZQorICAgICAgICAgICAgICAgICBhY2Nlc3NpYmxlIGluIHRoZSBNSUIgdmlldyB1c2VkIGJ5IHRoZSByZXRyaWV2YWwuICBBcworICAgICAgICAgICAgICAgICBzdWNoLCB0aGUgbWFuYWdlbWVudCBzdGF0aW9uIGNhbiBub3QgaXNzdWUgYW55CisgICAgICAgICAgICAgICAgIG1hbmFnZW1lbnQgcHJvdG9jb2wgc2V0IG9wZXJhdGlvbnMgdG8gY3JlYXRlIGFuCisgICAgICAgICAgICAgICAgIGluc3RhbmNlIG9mIHRoaXMgY29sdW1uLgorCisgICAgICAgICAgICBPbmNlIHRoZSBjb2x1bW4gcmVxdWlyZW1lbnRzIGhhdmUgYmVlbiBkZXRlcm1pbmVkLCBhCisgICAgICAgICAgICBtYW5hZ2VtZW50IHByb3RvY29sIHNldCBvcGVyYXRpb24gaXMgYWNjb3JkaW5nbHkgaXNzdWVkLgorICAgICAgICAgICAgVGhpcyBvcGVyYXRpb24gYWxzbyBzZXRzIHRoZSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHN0YXR1cworICAgICAgICAgICAgY29sdW1uIHRvIGBjcmVhdGVBbmRHbycuCisKKyAgICAgICAgICAgIFdoZW4gdGhlIGFnZW50IHByb2Nlc3NlcyB0aGUgc2V0IG9wZXJhdGlvbiwgaXQgdmVyaWZpZXMgdGhhdAorICAgICAgICAgICAgaXQgaGFzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gbWFrZSB0aGUgY29uY2VwdHVhbCByb3cKKyAgICAgICAgICAgIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IHRoZSBtYW5hZ2VkIGRldmljZS4gIFRoZSBpbmZvcm1hdGlvbgorICAgICAgICAgICAgYXZhaWxhYmxlIHRvIHRoZSBhZ2VudCBpcyBwcm92aWRlZCBieSB0d28gc291cmNlczogIHRoZQorICAgICAgICAgICAgbWFuYWdlbWVudCBwcm90b2NvbCBzZXQgb3BlcmF0aW9uIHdoaWNoIGNyZWF0ZXMgdGhlCisgICAgICAgICAgICBjb25jZXB0dWFsIHJvdywgYW5kLCBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBkZWZhdWx0cworICAgICAgICAgICAgc3VwcGxpZWQgYnkgdGhlIGFnZW50IChub3RlIHRoYXQgYW4gYWdlbnQgbXVzdCBwcm92aWRlCisgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBkZWZhdWx0cyBmb3IgYXQgbGVhc3QgdGhvc2Ugb2JqZWN0cworICAgICAgICAgICAgd2hpY2ggaXQgaW1wbGVtZW50cyBhcyByZWFkLW9ubHkpLiAgSWYgdGhlcmUgaXMgc3VmZmljaWVudAorICAgICAgICAgICAgaW5mb3JtYXRpb24gYXZhaWxhYmxlLCB0aGVuIHRoZSBjb25jZXB0dWFsIHJvdyBpcyBjcmVhdGVkLCBhCisgICAgICAgICAgICBgbm9FcnJvcicgcmVzcG9uc2UgaXMgcmV0dXJuZWQsIHRoZSBzdGF0dXMgY29sdW1uIGlzIHNldCB0bworICAgICAgICAgICAgYGFjdGl2ZScsIGFuZCBubyBmdXJ0aGVyIGludGVyYWN0aW9ucyBhcmUgbmVjZXNzYXJ5IChpLmUuLAorICAgICAgICAgICAgaW50ZXJhY3Rpb25zIDMgYW5kIDQgYXJlIHNraXBwZWQpLiAgSWYgdGhlcmUgaXMgaW5zdWZmaWNpZW50CisgICAgICAgICAgICBpbmZvcm1hdGlvbiwgdGhlbiB0aGUgY29uY2VwdHVhbCByb3cgaXMgbm90IGNyZWF0ZWQsIGFuZCB0aGUKKyAgICAgICAgICAgIHNldCBvcGVyYXRpb24gZmFpbHMgd2l0aCBhbiBlcnJvciBvZiBgaW5jb25zaXN0ZW50VmFsdWUnLgorICAgICAgICAgICAgT24gdGhpcyBlcnJvciwgdGhlIG1hbmFnZW1lbnQgc3RhdGlvbiBjYW4gaXNzdWUgYSBtYW5hZ2VtZW50CisgICAgICAgICAgICBwcm90b2NvbCByZXRyaWV2YWwgb3BlcmF0aW9uIHRvIGRldGVybWluZSBpZiB0aGlzIHdhcworICAgICAgICAgICAgYmVjYXVzZSBpdCBmYWlsZWQgdG8gc3BlY2lmeSBhIHZhbHVlIGZvciBhIHJlcXVpcmVkIGNvbHVtbiwKKyAgICAgICAgICAgIG9yLCBiZWNhdXNlIHRoZSBzZWxlY3RlZCBpbnN0YW5jZSBvZiB0aGUgc3RhdHVzIGNvbHVtbgorICAgICAgICAgICAgYWxyZWFkeSBleGlzdGVkLiAgSW4gdGhlIGxhdHRlciBjYXNlLCB3ZSByZXR1cm4gdG8KKyAgICAgICAgICAgIGludGVyYWN0aW9uIDEuICBJbiB0aGUgZm9ybWVyIGNhc2UsIHRoZSBtYW5hZ2VtZW50IHN0YXRpb24KKyAgICAgICAgICAgIGNhbiByZS1pc3N1ZSB0aGUgc2V0IG9wZXJhdGlvbiB3aXRoIHRoZSBhZGRpdGlvbmFsCisgICAgICAgICAgICBpbmZvcm1hdGlvbiwgb3IgYmVnaW4gaW50ZXJhY3Rpb24gMiBhZ2FpbiB1c2luZworICAgICAgICAgICAgYGNyZWF0ZUFuZFdhaXQnIGluIG9yZGVyIHRvIG5lZ290aWF0ZSBjcmVhdGlvbiBvZiB0aGUKKyAgICAgICAgICAgIGNvbmNlcHR1YWwgcm93LgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTk9URSBXRUxMCisKKyAgICAgICAgICAgICAgICAgUmVnYXJkbGVzcyBvZiB0aGUgbWV0aG9kIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBjb2x1bW4KKyAgICAgICAgICAgICAgICAgcmVxdWlyZW1lbnRzLCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRoZSBtYW5hZ2VtZW50CisgICAgICAgICAgICAgICAgIHN0YXRpb24gbWlnaHQgZGVlbSBhIGNvbHVtbiBuZWNlc3Nhcnkgd2hlbiwgaW4gZmFjdCwKKyAgICAgICAgICAgICAgICAgdGhlIGFnZW50IHdpbGwgbm90IGFsbG93IHRoYXQgcGFydGljdWxhciBjb2x1bW5hcgorICAgICAgICAgICAgICAgICBpbnN0YW5jZSB0byBiZSBjcmVhdGVkIG9yIHdyaXR0ZW4uICBJbiB0aGlzIGNhc2UsIHRoZQorICAgICAgICAgICAgICAgICBtYW5hZ2VtZW50IHByb3RvY29sIHNldCBvcGVyYXRpb24gd2lsbCBmYWlsIHdpdGggYW4KKyAgICAgICAgICAgICAgICAgZXJyb3Igc3VjaCBhcyBgbm9DcmVhdGlvbicgb3IgYG5vdFdyaXRhYmxlJy4gIEluIHRoaXMKKyAgICAgICAgICAgICAgICAgY2FzZSwgdGhlIG1hbmFnZW1lbnQgc3RhdGlvbiBkZWNpZGVzIHdoZXRoZXIgaXQgbmVlZHMKKyAgICAgICAgICAgICAgICAgdG8gYmUgYWJsZSB0byBzZXQgYSB2YWx1ZSBmb3IgdGhhdCBwYXJ0aWN1bGFyIGNvbHVtbmFyCisgICAgICAgICAgICAgICAgIGluc3RhbmNlLiAgSWYgbm90LCB0aGUgbWFuYWdlbWVudCBzdGF0aW9uIHJlLWlzc3VlcyB0aGUKKyAgICAgICAgICAgICAgICAgbWFuYWdlbWVudCBwcm90b2NvbCBzZXQgb3BlcmF0aW9uLCBidXQgd2l0aG91dCBzZXR0aW5nCisgICAgICAgICAgICAgICAgIGEgdmFsdWUgZm9yIHRoYXQgcGFydGljdWxhciBjb2x1bW5hciBpbnN0YW5jZTsKKyAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlLCB0aGUgbWFuYWdlbWVudCBzdGF0aW9uIGFib3J0cyB0aGUgcm93CisgICAgICAgICAgICAgICAgIGNyZWF0aW9uIGFsZ29yaXRobS4KKworICAgICAgICAgICAgSW50ZXJhY3Rpb24gMmI6IE5lZ290aWF0aW5nIHRoZSBDcmVhdGlvbiBvZiB0aGUgQ29uY2VwdHVhbAorICAgICAgICAgICAgUm93CisKKyAgICAgICAgICAgIFRoZSBtYW5hZ2VtZW50IHN0YXRpb24gaXNzdWVzIGEgbWFuYWdlbWVudCBwcm90b2NvbCBzZXQKKyAgICAgICAgICAgIG9wZXJhdGlvbiB3aGljaCBzZXRzIHRoZSBkZXNpcmVkIGluc3RhbmNlIG9mIHRoZSBzdGF0dXMKKyAgICAgICAgICAgIGNvbHVtbiB0byBgY3JlYXRlQW5kV2FpdCcuICBJZiB0aGUgYWdlbnQgaXMgdW53aWxsaW5nIHRvCisgICAgICAgICAgICBwcm9jZXNzIGEgcmVxdWVzdCBvZiB0aGlzIHNvcnQsIHRoZSBzZXQgb3BlcmF0aW9uIGZhaWxzIHdpdGgKKyAgICAgICAgICAgIGFuIGVycm9yIG9mIGB3cm9uZ1ZhbHVlJy4gIChBcyBhIGNvbnNlcXVlbmNlLCBzdWNoIGFuIGFnZW50CisgICAgICAgICAgICBtdXN0IGJlIHByZXBhcmVkIHRvIGFjY2VwdCBhIHNpbmdsZSBtYW5hZ2VtZW50IHByb3RvY29sIHNldAorICAgICAgICAgICAgb3BlcmF0aW9uLCBpLmUuLCBpbnRlcmFjdGlvbiAyYSBhYm92ZSwgY29udGFpbmluZyBhbGwgb2YgdGhlCisgICAgICAgICAgICBjb2x1bW5zIGluZGljYXRlZCBieSBpdHMgY29sdW1uIHJlcXVpcmVtZW50cy4pICBPdGhlcndpc2UsCisgICAgICAgICAgICB0aGUgY29uY2VwdHVhbCByb3cgaXMgY3JlYXRlZCwgYSBgbm9FcnJvcicgcmVzcG9uc2UgaXMKKyAgICAgICAgICAgIHJldHVybmVkLCBhbmQgdGhlIHN0YXR1cyBjb2x1bW4gaXMgaW1tZWRpYXRlbHkgc2V0IHRvIGVpdGhlcgorICAgICAgICAgICAgYG5vdEluU2VydmljZScgb3IgYG5vdFJlYWR5JywgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQgaGFzCisgICAgICAgICAgICBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvIChhdHRlbXB0IHRvKSBtYWtlIHRoZSBjb25jZXB0dWFsCisgICAgICAgICAgICByb3cgYXZhaWxhYmxlIGZvciB1c2UgYnkgdGhlIG1hbmFnZWQgZGV2aWNlLiAgSWYgdGhlcmUgaXMKKyAgICAgICAgICAgIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gYXZhaWxhYmxlLCB0aGVuIHRoZSBzdGF0dXMgY29sdW1uIGlzCisgICAgICAgICAgICBzZXQgdG8gYG5vdEluU2VydmljZSc7IG90aGVyd2lzZSwgaWYgdGhlcmUgaXMgaW5zdWZmaWNpZW50CisgICAgICAgICAgICBpbmZvcm1hdGlvbiwgdGhlbiB0aGUgc3RhdHVzIGNvbHVtbiBpcyBzZXQgdG8gYG5vdFJlYWR5Jy4KKyAgICAgICAgICAgIFJlZ2FyZGxlc3MsIHdlIHByb2NlZWQgdG8gaW50ZXJhY3Rpb24gMy4KKworICAgICAgICAgICAgSW50ZXJhY3Rpb24gMzogSW5pdGlhbGl6aW5nIG5vbi1kZWZhdWx0ZWQgT2JqZWN0cworCisgICAgICAgICAgICBUaGUgbWFuYWdlbWVudCBzdGF0aW9uIG11c3Qgbm93IGRldGVybWluZSB0aGUgY29sdW1uCisgICAgICAgICAgICByZXF1aXJlbWVudHMuICBJdCBpc3N1ZXMgYSBtYW5hZ2VtZW50IHByb3RvY29sIGdldCBvcGVyYXRpb24KKyAgICAgICAgICAgIHRvIGV4YW1pbmUgYWxsIGNvbHVtbnMgaW4gdGhlIGNyZWF0ZWQgY29uY2VwdHVhbCByb3cuICBJbgorICAgICAgICAgICAgdGhlIHJlc3BvbnNlLCBmb3IgZWFjaCBjb2x1bW4sIHRoZXJlIGFyZSB0aHJlZSBwb3NzaWJsZQorICAgICAgICAgICAgb3V0Y29tZXM6CisKKyAgICAgICAgICAgICAgICAgLSBhIHZhbHVlIGlzIHJldHVybmVkLCBpbmRpY2F0aW5nIHRoYXQgdGhlIGFnZW50CisgICAgICAgICAgICAgICAgIGltcGxlbWVudHMgdGhlIG9iamVjdC10eXBlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbHVtbgorICAgICAgICAgICAgICAgICBhbmQgaGFkIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gcHJvdmlkZSBhIHZhbHVlLiAgRm9yCisgICAgICAgICAgICAgICAgIHRob3NlIGNvbHVtbnMgdG8gd2hpY2ggdGhlIGFnZW50IHByb3ZpZGVzIHJlYWQtY3JlYXRlCisgICAgICAgICAgICAgICAgIGFjY2VzcyAoYW5kIGZvciB3aGljaCB0aGUgYWdlbnQgYWxsb3dzIHRoZWlyIHZhbHVlcyB0bworICAgICAgICAgICAgICAgICBiZSBjaGFuZ2VkIGFmdGVyIHRoZWlyIGNyZWF0aW9uKSwgYSB2YWx1ZSByZXR1cm4gdGVsbHMKKyAgICAgICAgICAgICAgICAgdGhlIG1hbmFnZW1lbnQgc3RhdGlvbiB0aGF0IGl0IG1heSBpc3N1ZSBhZGRpdGlvbmFsCisgICAgICAgICAgICAgICAgIG1hbmFnZW1lbnQgcHJvdG9jb2wgc2V0IG9wZXJhdGlvbnMsIGlmIGl0IGRlc2lyZXMsIGluCisgICAgICAgICAgICAgICAgIG9yZGVyIHRvIGNoYW5nZSB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1uLgorCisgICAgICAgICAgICAgICAgIC0gdGhlIGV4Y2VwdGlvbiBgbm9TdWNoSW5zdGFuY2UnIGlzIHJldHVybmVkLAorICAgICAgICAgICAgICAgICBpbmRpY2F0aW5nIHRoYXQgdGhlIGFnZW50IGltcGxlbWVudHMgdGhlIG9iamVjdC10eXBlCisgICAgICAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbHVtbiwgYW5kIHRoYXQgdGhpcyBjb2x1bW4gaW4gYXQKKyAgICAgICAgICAgICAgICAgbGVhc3Qgb25lIGNvbmNlcHR1YWwgcm93IHdvdWxkIGJlIGFjY2Vzc2libGUgaW4gdGhlIE1JQgorICAgICAgICAgICAgICAgICB2aWV3IHVzZWQgYnkgdGhlIHJldHJpZXZhbCB3ZXJlIGl0IHRvIGV4aXN0LiBIb3dldmVyLAorICAgICAgICAgICAgICAgICB0aGUgYWdlbnQgZG9lcyBub3QgaGF2ZSBzdWZmaWNpZW50IGluZm9ybWF0aW9uIHRvCisgICAgICAgICAgICAgICAgIHByb3ZpZGUgYSB2YWx1ZSwgYW5kIHVudGlsIGEgdmFsdWUgaXMgcHJvdmlkZWQsIHRoZQorICAgICAgICAgICAgICAgICBjb25jZXB0dWFsIHJvdyBtYXkgbm90IGJlIG1hZGUgYXZhaWxhYmxlIGZvciB1c2UgYnkgdGhlCisgICAgICAgICAgICAgICAgIG1hbmFnZWQgZGV2aWNlLiAgRm9yIHRob3NlIGNvbHVtbnMgdG8gd2hpY2ggdGhlIGFnZW50CisgICAgICAgICAgICAgICAgIHByb3ZpZGVzIHJlYWQtY3JlYXRlIGFjY2VzcywgdGhlIGBub1N1Y2hJbnN0YW5jZScKKyAgICAgICAgICAgICAgICAgZXhjZXB0aW9uIHRlbGxzIHRoZSBtYW5hZ2VtZW50IHN0YXRpb24gdGhhdCBpdCBtdXN0CisgICAgICAgICAgICAgICAgIGlzc3VlIGFkZGl0aW9uYWwgbWFuYWdlbWVudCBwcm90b2NvbCBzZXQgb3BlcmF0aW9ucywgaW4KKyAgICAgICAgICAgICAgICAgb3JkZXIgdG8gcHJvdmlkZSBhIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbHVtbi4KKworICAgICAgICAgICAgICAgICAtIHRoZSBleGNlcHRpb24gYG5vU3VjaE9iamVjdCcgaXMgcmV0dXJuZWQsIGluZGljYXRpbmcKKyAgICAgICAgICAgICAgICAgdGhhdCB0aGUgYWdlbnQgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBvYmplY3QtdHlwZQorICAgICAgICAgICAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb2x1bW4gb3IgdGhhdCB0aGVyZSBpcyBubworICAgICAgICAgICAgICAgICBjb25jZXB0dWFsIHJvdyBmb3Igd2hpY2ggdGhpcyBjb2x1bW4gd291bGQgYmUKKyAgICAgICAgICAgICAgICAgYWNjZXNzaWJsZSBpbiB0aGUgTUlCIHZpZXcgdXNlZCBieSB0aGUgcmV0cmlldmFsLiAgQXMKKyAgICAgICAgICAgICAgICAgc3VjaCwgdGhlIG1hbmFnZW1lbnQgc3RhdGlvbiBjYW4gbm90IGlzc3VlIGFueQorICAgICAgICAgICAgICAgICBtYW5hZ2VtZW50IHByb3RvY29sIHNldCBvcGVyYXRpb25zIHRvIGNyZWF0ZSBhbgorICAgICAgICAgICAgICAgICBpbnN0YW5jZSBvZiB0aGlzIGNvbHVtbi4KKworICAgICAgICAgICAgSWYgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3RhdHVzIGNvbHVtbiBpcworICAgICAgICAgICAgYG5vdFJlYWR5JywgdGhlbiB0aGUgbWFuYWdlbWVudCBzdGF0aW9uIG11c3QgZmlyc3QgZGVhbCB3aXRoCisgICAgICAgICAgICBhbGwgYG5vU3VjaEluc3RhbmNlJyBjb2x1bW5zLCBpZiBhbnkuICBIYXZpbmcgZG9uZSBzbywgdGhlCisgICAgICAgICAgICB2YWx1ZSBvZiB0aGUgc3RhdHVzIGNvbHVtbiBiZWNvbWVzIGBub3RJblNlcnZpY2UnLCBhbmQgd2UKKyAgICAgICAgICAgIHByb2NlZWQgdG8gaW50ZXJhY3Rpb24gNC4KKworICAgICAgICAgICAgSW50ZXJhY3Rpb24gNDogTWFraW5nIHRoZSBDb25jZXB0dWFsIFJvdyBBdmFpbGFibGUKKworICAgICAgICAgICAgT25jZSB0aGUgbWFuYWdlbWVudCBzdGF0aW9uIGlzIHNhdGlzZmllZCB3aXRoIHRoZSB2YWx1ZXMKKyAgICAgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29sdW1ucyBvZiB0aGUgY29uY2VwdHVhbCByb3csIGl0IGlzc3VlcworICAgICAgICAgICAgYSBtYW5hZ2VtZW50IHByb3RvY29sIHNldCBvcGVyYXRpb24gdG8gc2V0IHRoZSBzdGF0dXMgY29sdW1uCisgICAgICAgICAgICB0byBgYWN0aXZlJy4gIElmIHRoZSBhZ2VudCBoYXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0bworICAgICAgICAgICAgbWFrZSB0aGUgY29uY2VwdHVhbCByb3cgYXZhaWxhYmxlIGZvciB1c2UgYnkgdGhlIG1hbmFnZWQKKyAgICAgICAgICAgIGRldmljZSwgdGhlIG1hbmFnZW1lbnQgcHJvdG9jb2wgc2V0IG9wZXJhdGlvbiBzdWNjZWVkcyAoYQorICAgICAgICAgICAgYG5vRXJyb3InIHJlc3BvbnNlIGlzIHJldHVybmVkKS4gIE90aGVyd2lzZSwgdGhlIG1hbmFnZW1lbnQKKyAgICAgICAgICAgIHByb3RvY29sIHNldCBvcGVyYXRpb24gZmFpbHMgd2l0aCBhbiBlcnJvciBvZgorICAgICAgICAgICAgYGluY29uc2lzdGVudFZhbHVlJy4KKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PVEUgV0VMTAorCisgICAgICAgICAgICAgICAgIEEgY29uY2VwdHVhbCByb3cgaGF2aW5nIGEgc3RhdHVzIGNvbHVtbiB3aXRoIHZhbHVlCisgICAgICAgICAgICAgICAgIGBub3RJblNlcnZpY2UnIG9yIGBub3RSZWFkeScgaXMgdW5hdmFpbGFibGUgdG8gdGhlCisgICAgICAgICAgICAgICAgIG1hbmFnZWQgZGV2aWNlLiAgQXMgc3VjaCwgaXQgaXMgcG9zc2libGUgZm9yIHRoZQorICAgICAgICAgICAgICAgICBtYW5hZ2VkIGRldmljZSB0byBjcmVhdGUgaXRzIG93biBpbnN0YW5jZXMgZHVyaW5nIHRoZQorICAgICAgICAgICAgICAgICB0aW1lIGJldHdlZW4gdGhlIG1hbmFnZW1lbnQgcHJvdG9jb2wgc2V0IG9wZXJhdGlvbgorICAgICAgICAgICAgICAgICB3aGljaCBzZXRzIHRoZSBzdGF0dXMgY29sdW1uIHRvIGBjcmVhdGVBbmRXYWl0JyBhbmQgdGhlCisgICAgICAgICAgICAgICAgIG1hbmFnZW1lbnQgcHJvdG9jb2wgc2V0IG9wZXJhdGlvbiB3aGljaCBzZXRzIHRoZSBzdGF0dXMKKyAgICAgICAgICAgICAgICAgY29sdW1uIHRvIGBhY3RpdmUnLiAgSW4gdGhpcyBjYXNlLCB3aGVuIHRoZSBtYW5hZ2VtZW50CisgICAgICAgICAgICAgICAgIHByb3RvY29sIHNldCBvcGVyYXRpb24gaXMgaXNzdWVkIHRvIHNldCB0aGUgc3RhdHVzCisgICAgICAgICAgICAgICAgIGNvbHVtbiB0byBgYWN0aXZlJywgdGhlIHZhbHVlcyBoZWxkIGluIHRoZSBhZ2VudAorICAgICAgICAgICAgICAgICBzdXBlcnNlZGUgdGhvc2UgdXNlZCBieSB0aGUgbWFuYWdlZCBkZXZpY2UuCisKKyAgICAgICAgICAgIElmIHRoZSBtYW5hZ2VtZW50IHN0YXRpb24gaXMgcHJldmVudGVkIGZyb20gc2V0dGluZyB0aGUKKyAgICAgICAgICAgIHN0YXR1cyBjb2x1bW4gdG8gYGFjdGl2ZScgKGUuZy4sIGR1ZSB0byBtYW5hZ2VtZW50IHN0YXRpb24KKyAgICAgICAgICAgIG9yIG5ldHdvcmsgZmFpbHVyZSkgdGhlIGNvbmNlcHR1YWwgcm93IHdpbGwgYmUgbGVmdCBpbiB0aGUKKyAgICAgICAgICAgIGBub3RJblNlcnZpY2UnIG9yIGBub3RSZWFkeScgc3RhdGUsIGNvbnN1bWluZyByZXNvdXJjZXMKKyAgICAgICAgICAgIGluZGVmaW5pdGVseS4gIFRoZSBhZ2VudCBtdXN0IGRldGVjdCBjb25jZXB0dWFsIHJvd3MgdGhhdAorICAgICAgICAgICAgaGF2ZSBiZWVuIGluIGVpdGhlciBzdGF0ZSBmb3IgYW4gYWJub3JtYWxseSBsb25nIHBlcmlvZCBvZgorICAgICAgICAgICAgdGltZSBhbmQgcmVtb3ZlIHRoZW0uICBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlCisgICAgICAgICAgICBERVNDUklQVElPTiBjbGF1c2Ugb2YgdGhlIHN0YXR1cyBjb2x1bW4gdG8gaW5kaWNhdGUgd2hhdCBhbgorICAgICAgICAgICAgYWJub3JtYWxseSBsb25nIHBlcmlvZCBvZiB0aW1lIHdvdWxkIGJlLiAgVGhpcyBwZXJpb2Qgb2YKKyAgICAgICAgICAgIHRpbWUgc2hvdWxkIGJlIGxvbmcgZW5vdWdoIHRvIGFsbG93IGZvciBodW1hbiByZXNwb25zZSB0aW1lCisgICAgICAgICAgICAoaW5jbHVkaW5nIGB0aGluayB0aW1lJykgYmV0d2VlbiB0aGUgY3JlYXRpb24gb2YgdGhlCisgICAgICAgICAgICBjb25jZXB0dWFsIHJvdyBhbmQgdGhlIHNldHRpbmcgb2YgdGhlIHN0YXR1cyB0byBgYWN0aXZlJy4KKyAgICAgICAgICAgIEluIHRoZSBhYnNlbmNlIG9mIHN1Y2ggaW5mb3JtYXRpb24gaW4gdGhlIERFU0NSSVBUSU9OCisgICAgICAgICAgICBjbGF1c2UsIGl0IGlzIHN1Z2dlc3RlZCB0aGF0IHRoaXMgcGVyaW9kIGJlIGFwcHJveGltYXRlbHkgNQorICAgICAgICAgICAgbWludXRlcyBpbiBsZW5ndGguICBUaGlzIHJlbW92YWwgYWN0aW9uIGFwcGxpZXMgbm90IG9ubHkgdG8KKyAgICAgICAgICAgIG5ld2x5LWNyZWF0ZWQgcm93cywgYnV0IGFsc28gdG8gcHJldmlvdXNseSBhY3RpdmUgcm93cyB3aGljaAorICAgICAgICAgICAgYXJlIHNldCB0bywgYW5kIGxlZnQgaW4sIHRoZSBub3RJblNlcnZpY2Ugc3RhdGUgZm9yIGEKKyAgICAgICAgICAgIHByb2xvbmdlZCBwZXJpb2QgZXhjZWVkaW5nIHRoYXQgd2hpY2ggaXMgY29uc2lkZXJlZCBub3JtYWwKKyAgICAgICAgICAgIGZvciBzdWNoIGEgY29uY2VwdHVhbCByb3cuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2VwdHVhbCBSb3cgU3VzcGVuc2lvbgorCisgICAgICAgICAgICBXaGVuIGEgY29uY2VwdHVhbCByb3cgaXMgYGFjdGl2ZScsIHRoZSBtYW5hZ2VtZW50IHN0YXRpb24KKyAgICAgICAgICAgIG1heSBpc3N1ZSBhIG1hbmFnZW1lbnQgcHJvdG9jb2wgc2V0IG9wZXJhdGlvbiB3aGljaCBzZXRzIHRoZQorICAgICAgICAgICAgaW5zdGFuY2Ugb2YgdGhlIHN0YXR1cyBjb2x1bW4gdG8gYG5vdEluU2VydmljZScuICBJZiB0aGUKKyAgICAgICAgICAgIGFnZW50IGlzIHVud2lsbGluZyB0byBkbyBzbywgdGhlIHNldCBvcGVyYXRpb24gZmFpbHMgd2l0aCBhbgorICAgICAgICAgICAgZXJyb3Igb2YgYHdyb25nVmFsdWUnIG9yIGBpbmNvbnNpc3RlbnRWYWx1ZScuICBPdGhlcndpc2UsCisgICAgICAgICAgICB0aGUgY29uY2VwdHVhbCByb3cgaXMgdGFrZW4gb3V0IG9mIHNlcnZpY2UsIGFuZCBhIGBub0Vycm9yJworICAgICAgICAgICAgcmVzcG9uc2UgaXMgcmV0dXJuZWQuICBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlCisgICAgICAgICAgICBERVNDUklQVElPTiBjbGF1c2Ugb2YgdGhlIHN0YXR1cyBjb2x1bW4gdG8gaW5kaWNhdGUgdW5kZXIKKyAgICAgICAgICAgIHdoYXQgY2lyY3Vtc3RhbmNlcyB0aGUgc3RhdHVzIGNvbHVtbiBzaG91bGQgYmUgdGFrZW4gb3V0IG9mCisgICAgICAgICAgICBzZXJ2aWNlIChlLmcuLCBpbiBvcmRlciBmb3IgdGhlIHZhbHVlIG9mIHNvbWUgb3RoZXIgY29sdW1uCisgICAgICAgICAgICBvZiB0aGUgc2FtZSBjb25jZXB0dWFsIHJvdyB0byBiZSBtb2RpZmllZCkuCisKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uY2VwdHVhbCBSb3cgRGVsZXRpb24KKworICAgICAgICAgICAgRm9yIGRlbGV0aW9uIG9mIGNvbmNlcHR1YWwgcm93cywgYSBtYW5hZ2VtZW50IHByb3RvY29sIHNldAorICAgICAgICAgICAgb3BlcmF0aW9uIGlzIGlzc3VlZCB3aGljaCBzZXRzIHRoZSBpbnN0YW5jZSBvZiB0aGUgc3RhdHVzCisgICAgICAgICAgICBjb2x1bW4gdG8gYGRlc3Ryb3knLiAgVGhpcyByZXF1ZXN0IG1heSBiZSBtYWRlIHJlZ2FyZGxlc3Mgb2YKKyAgICAgICAgICAgIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzdGF0dXMgY29sdW1uIChlLmcuLCBpdCBpcyBwb3NzaWJsZQorICAgICAgICAgICAgdG8gZGVsZXRlIGNvbmNlcHR1YWwgcm93cyB3aGljaCBhcmUgZWl0aGVyIGBub3RSZWFkeScsCisgICAgICAgICAgICBgbm90SW5TZXJ2aWNlJyBvciBgYWN0aXZlJy4pICBJZiB0aGUgb3BlcmF0aW9uIHN1Y2NlZWRzLAorICAgICAgICAgICAgdGhlbiBhbGwgaW5zdGFuY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29uY2VwdHVhbCByb3cgYXJlCisgICAgICAgICAgICBpbW1lZGlhdGVseSByZW1vdmVkLiIKKyAgICBTWU5UQVggICAgICAgSU5URUdFUiB7CisgICAgICAgICAgICAgICAgICAgICAtLSB0aGUgZm9sbG93aW5nIHR3byB2YWx1ZXMgYXJlIHN0YXRlczoKKyAgICAgICAgICAgICAgICAgICAgIC0tIHRoZXNlIHZhbHVlcyBtYXkgYmUgcmVhZCBvciB3cml0dGVuCisgICAgICAgICAgICAgICAgICAgICBhY3RpdmUoMSksCisgICAgICAgICAgICAgICAgICAgICBub3RJblNlcnZpY2UoMiksCisKKyAgICAgICAgICAgICAgICAgICAgIC0tIHRoZSBmb2xsb3dpbmcgdmFsdWUgaXMgYSBzdGF0ZToKKyAgICAgICAgICAgICAgICAgICAgIC0tIHRoaXMgdmFsdWUgbWF5IGJlIHJlYWQsIGJ1dCBub3Qgd3JpdHRlbgorICAgICAgICAgICAgICAgICAgICAgbm90UmVhZHkoMyksCisKKyAgICAgICAgICAgICAgICAgICAgIC0tIHRoZSBmb2xsb3dpbmcgdGhyZWUgdmFsdWVzIGFyZQorICAgICAgICAgICAgICAgICAgICAgLS0gYWN0aW9uczogdGhlc2UgdmFsdWVzIG1heSBiZSB3cml0dGVuLAorICAgICAgICAgICAgICAgICAgICAgLS0gICBidXQgYXJlIG5ldmVyIHJlYWQKKyAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUFuZEdvKDQpLAorICAgICAgICAgICAgICAgICAgICAgY3JlYXRlQW5kV2FpdCg1KSwKKyAgICAgICAgICAgICAgICAgICAgIGRlc3Ryb3koNikKKyAgICAgICAgICAgICAgICAgfQorCitUaW1lU3RhbXAgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgdmFsdWUgb2YgdGhlIHN5c1VwVGltZSBvYmplY3QgYXQgd2hpY2ggYSBzcGVjaWZpYworICAgICAgICAgICAgb2NjdXJyZW5jZSBoYXBwZW5lZC4gIFRoZSBzcGVjaWZpYyBvY2N1cnJlbmNlIG11c3QgYmUKKyAgICAgICAgICAgIGRlZmluZWQgaW4gdGhlIGRlc2NyaXB0aW9uIG9mIGFueSBvYmplY3QgZGVmaW5lZCB1c2luZyB0aGlzCisgICAgICAgICAgICB0eXBlLgorCisgICAgICAgICAgICBJZiBzeXNVcFRpbWUgaXMgcmVzZXQgdG8gemVybyBhcyBhIHJlc3VsdCBvZiBhIHJlLQorICAgICAgICAgICAgaW5pdGlhbGl6YXRpb24gb2YgdGhlIG5ldHdvcmsgbWFuYWdlbWVudCAoc3ViKXN5c3RlbSwgdGhlbgorICAgICAgICAgICAgdGhlIHZhbHVlcyBvZiBhbGwgVGltZVN0YW1wIG9iamVjdHMgYXJlIGFsc28gcmVzZXQuCisgICAgICAgICAgICBIb3dldmVyLCBhZnRlciBhcHByb3hpbWF0ZWx5IDQ5NyBkYXlzIHdpdGhvdXQgYSByZS0KKyAgICAgICAgICAgIGluaXRpYWxpemF0aW9uLCB0aGUgc3lzVXBUaW1lIG9iamVjdCB3aWxsIHJlYWNoIDJeXjMyLTEgYW5kCisgICAgICAgICAgICB0aGVuIGluY3JlbWVudCBhcm91bmQgdG8gemVybzsgaW4gdGhpcyBjYXNlLCBleGlzdGluZyB2YWx1ZXMKKyAgICAgICAgICAgIG9mIFRpbWVTdGFtcCBvYmplY3RzIGRvIG5vdCBjaGFuZ2UuICBUaGlzIGNhbiBsZWFkIHRvCisgICAgICAgICAgICBhbWJpZ3VpdGllcyBpbiB0aGUgdmFsdWUgb2YgVGltZVN0YW1wIG9iamVjdHMuIgorICAgIFNZTlRBWCAgICAgICBUaW1lVGlja3MKKworCitUaW1lSW50ZXJ2YWwgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIHBlcmlvZCBvZiB0aW1lLCBtZWFzdXJlZCBpbiB1bml0cyBvZiAwLjAxIHNlY29uZHMuIgorICAgIFNZTlRBWCAgICAgICBJTlRFR0VSICgwLi4yMTQ3NDgzNjQ3KQorCitEYXRlQW5kVGltZSA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgRElTUExBWS1ISU5UICIyZC0xZC0xZCwxZDoxZDoxZC4xZCwxYTFkOjFkIgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJBIGRhdGUtdGltZSBzcGVjaWZpY2F0aW9uLgorCisgICAgICAgICAgICBmaWVsZCAgb2N0ZXRzICBjb250ZW50cyAgICAgICAgICAgICAgICAgIHJhbmdlCisgICAgICAgICAgICAtLS0tLSAgLS0tLS0tICAtLS0tLS0tLSAgICAgICAgICAgICAgICAgIC0tLS0tCisgICAgICAgICAgICAgIDEgICAgICAxLTIgICB5ZWFyKiAgICAgICAgICAgICAgICAgICAgIDAuLjY1NTM2CisgICAgICAgICAgICAgIDIgICAgICAgMyAgICBtb250aCAgICAgICAgICAgICAgICAgICAgIDEuLjEyCisgICAgICAgICAgICAgIDMgICAgICAgNCAgICBkYXkgICAgICAgICAgICAgICAgICAgICAgIDEuLjMxCisgICAgICAgICAgICAgIDQgICAgICAgNSAgICBob3VyICAgICAgICAgICAgICAgICAgICAgIDAuLjIzCisgICAgICAgICAgICAgIDUgICAgICAgNiAgICBtaW51dGVzICAgICAgICAgICAgICAgICAgIDAuLjU5CisgICAgICAgICAgICAgIDYgICAgICAgNyAgICBzZWNvbmRzICAgICAgICAgICAgICAgICAgIDAuLjYwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAodXNlIDYwIGZvciBsZWFwLXNlY29uZCkKKyAgICAgICAgICAgICAgNyAgICAgICA4ICAgIGRlY2ktc2Vjb25kcyAgICAgICAgICAgICAgMC4uOQorICAgICAgICAgICAgICA4ICAgICAgIDkgICAgZGlyZWN0aW9uIGZyb20gVVRDICAgICAgICAnKycgLyAnLScKKyAgICAgICAgICAgICAgOSAgICAgIDEwICAgIGhvdXJzIGZyb20gVVRDKiAgICAgICAgICAgMC4uMTMKKyAgICAgICAgICAgICAxMCAgICAgIDExICAgIG1pbnV0ZXMgZnJvbSBVVEMgICAgICAgICAgMC4uNTkKKworICAgICAgICAgICAgKiBOb3RlczoKKyAgICAgICAgICAgIC0gdGhlIHZhbHVlIG9mIHllYXIgaXMgaW4gbmV0d29yay1ieXRlIG9yZGVyCisgICAgICAgICAgICAtIGRheWxpZ2h0IHNhdmluZyB0aW1lIGluIE5ldyBaZWFsYW5kIGlzICsxMworCisgICAgICAgICAgICBGb3IgZXhhbXBsZSwgVHVlc2RheSBNYXkgMjYsIDE5OTIgYXQgMTozMDoxNSBQTSBFRFQgd291bGQgYmUKKyAgICAgICAgICAgIGRpc3BsYXllZCBhczoKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOTkyLTUtMjYsMTM6MzA6MTUuMCwtNDowCisKKyAgICAgICAgICAgIE5vdGUgdGhhdCBpZiBvbmx5IGxvY2FsIHRpbWUgaXMga25vd24sIHRoZW4gdGltZXpvbmUKKyAgICAgICAgICAgIGluZm9ybWF0aW9uIChmaWVsZHMgOC0xMCkgaXMgbm90IHByZXNlbnQuIgorICAgIFNZTlRBWCAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDggfCAxMSkpCisKKworU3RvcmFnZVR5cGUgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJEZXNjcmliZXMgdGhlIG1lbW9yeSByZWFsaXphdGlvbiBvZiBhIGNvbmNlcHR1YWwgcm93LiAgQQorICAgICAgICAgICAgcm93IHdoaWNoIGlzIHZvbGF0aWxlKDIpIGlzIGxvc3QgdXBvbiByZWJvb3QuICBBIHJvdyB3aGljaAorICAgICAgICAgICAgaXMgZWl0aGVyIG5vblZvbGF0aWxlKDMpLCBwZXJtYW5lbnQoNCkgb3IgcmVhZE9ubHkoNSksIGlzCisgICAgICAgICAgICBiYWNrZWQgdXAgYnkgc3RhYmxlIHN0b3JhZ2UuICBBIHJvdyB3aGljaCBpcyBwZXJtYW5lbnQoNCkKKyAgICAgICAgICAgIGNhbiBiZSBjaGFuZ2VkIGJ1dCBub3QgZGVsZXRlZC4gIEEgcm93IHdoaWNoIGlzIHJlYWRPbmx5KDUpCisgICAgICAgICAgICBjYW5ub3QgYmUgY2hhbmdlZCBub3IgZGVsZXRlZC4KKworICAgICAgICAgICAgSWYgdGhlIHZhbHVlIG9mIGFuIG9iamVjdCB3aXRoIHRoaXMgc3ludGF4IGlzIGVpdGhlcgorICAgICAgICAgICAgcGVybWFuZW50KDQpIG9yIHJlYWRPbmx5KDUpLCBpdCBjYW5ub3QgYmUgd3JpdHRlbi4KKyAgICAgICAgICAgIENvbnZlcnNlbHksIGlmIHRoZSB2YWx1ZSBpcyBlaXRoZXIgb3RoZXIoMSksIHZvbGF0aWxlKDIpIG9yCisgICAgICAgICAgICBub25Wb2xhdGlsZSgzKSwgaXQgY2Fubm90IGJlIG1vZGlmaWVkIHRvIGJlIHBlcm1hbmVudCg0KSBvcgorICAgICAgICAgICAgcmVhZE9ubHkoNSkuICAoQWxsIGlsbGVnYWwgbW9kaWZpY2F0aW9ucyByZXN1bHQgaW4gYQorICAgICAgICAgICAgJ3dyb25nVmFsdWUnIGVycm9yLikKKworICAgICAgICAgICAgRXZlcnkgdXNhZ2Ugb2YgdGhpcyB0ZXh0dWFsIGNvbnZlbnRpb24gaXMgcmVxdWlyZWQgdG8KKyAgICAgICAgICAgIHNwZWNpZnkgdGhlIGNvbHVtbmFyIG9iamVjdHMgd2hpY2ggYSBwZXJtYW5lbnQoNCkgcm93IG11c3QKKyAgICAgICAgICAgIGF0IGEgbWluaW11bSBhbGxvdyB0byBiZSB3cml0YWJsZS4iCisgICAgU1lOVEFYICAgICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgICAgb3RoZXIoMSksICAgICAgIC0tIGVoPworICAgICAgICAgICAgICAgICAgICAgdm9sYXRpbGUoMiksICAgIC0tIGUuZy4sIGluIFJBTQorICAgICAgICAgICAgICAgICAgICAgbm9uVm9sYXRpbGUoMyksIC0tIGUuZy4sIGluIE5WUkFNCisgICAgICAgICAgICAgICAgICAgICBwZXJtYW5lbnQoNCksICAgLS0gZS5nLiwgcGFydGlhbGx5IGluIFJPTQorICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHkoNSkgICAgIC0tIGUuZy4sIGNvbXBsZXRlbHkgaW4gUk9NCisgICAgICAgICAgICAgICAgIH0KKworVERvbWFpbiA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICJEZW5vdGVzIGEga2luZCBvZiB0cmFuc3BvcnQgc2VydmljZS4KKworICAgICAgICAgIFNvbWUgcG9zc2libGUgdmFsdWVzLCBzdWNoIGFzIHNubXBVRFBEb21haW4sIGFyZSBkZWZpbmVkIGluCisgICAgICAgICAgdGhlIFNOTVB2Mi1UTSBNSUIgbW9kdWxlLiAgT3RoZXIgcG9zc2libGUgdmFsdWVzIGFyZSBkZWZpbmVkCisgICAgICAgICAgaW4gb3RoZXIgTUlCIG1vZHVsZXMuIgorICAgIFJFRkVSRU5DRSAgICAiVGhlIFNOTVB2Mi1UTSBNSUIgbW9kdWxlIGlzIGRlZmluZWQgaW4gUkZDIDE5MDYuIgorICAgIFNZTlRBWCAgICAgICBPQkpFQ1QgSURFTlRJRklFUgorCisKK1RBZGRyZXNzIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBTVEFUVVMgICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgIkRlbm90ZXMgYSB0cmFuc3BvcnQgc2VydmljZSBhZGRyZXNzLgorCisgICAgICAgICAgQSBUQWRkcmVzcyB2YWx1ZSBpcyBhbHdheXMgaW50ZXJwcmV0ZWQgd2l0aGluIHRoZSBjb250ZXh0IG9mIGEKKyAgICAgICAgICBURG9tYWluIHZhbHVlLiAgVGh1cywgZWFjaCBkZWZpbml0aW9uIG9mIGEgVERvbWFpbiB2YWx1ZSBtdXN0CisgICAgICAgICAgYmUgYWNjb21wYW5pZWQgYnkgYSBkZWZpbml0aW9uIG9mIGEgdGV4dHVhbCBjb252ZW50aW9uIGZvciB1c2UKKyAgICAgICAgICB3aXRoIHRoYXQgVERvbWFpbi4gIFNvbWUgcG9zc2libGUgdGV4dHVhbCBjb252ZW50aW9ucywgc3VjaCBhcworICAgICAgICAgIFNubXBVRFBBZGRyZXNzIGZvciBzbm1wVURQRG9tYWluLCBhcmUgZGVmaW5lZCBpbiB0aGUgU05NUHYyLVRNCisgICAgICAgICAgTUlCIG1vZHVsZS4gIE90aGVyIHBvc3NpYmxlIHRleHR1YWwgY29udmVudGlvbnMgYXJlIGRlZmluZWQgaW4KKyAgICAgICAgICBvdGhlciBNSUIgbW9kdWxlcy4iCisgICAgUkVGRVJFTkNFICAgICJUaGUgU05NUHYyLVRNIE1JQiBtb2R1bGUgaXMgZGVmaW5lZCBpbiBSRkMgMTkwNi4iCisgICAgU1lOVEFYICAgICAgIE9DVEVUIFNUUklORyAoU0laRSAoMS4uMjU1KSkKKworCitFTkQKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9TTk1QdjItVE0gYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvU05NUHYyLVRNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZGJjNGEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvU05NUHYyLVRNCkBAIC0wLDAgKzEsMTk0IEBACitTTk1QdjItVE0gREVGSU5JVElPTlMgOjo9IEJFR0lOCisKK0lNUE9SVFMKKyAgICBNT0RVTEUtSURFTlRJVFksIE9CSkVDVC1JREVOVElUWSwKKyAgICBzbm1wTW9kdWxlcywgc25tcERvbWFpbnMsIHNubXBQcm94eXMKKyAgICAgICAgRlJPTSBTTk1QdjItU01JCisgICAgVEVYVFVBTC1DT05WRU5USU9OCisgICAgICAgIEZST00gU05NUHYyLVRDOworCitzbm1wdjJ0bSBNT0RVTEUtSURFTlRJVFkKKyAgICBMQVNULVVQREFURUQgIjIwMDIxMDE2MDAwMFoiCisgICAgT1JHQU5JWkFUSU9OICJJRVRGIFNOTVB2MyBXb3JraW5nIEdyb3VwIgorICAgIENPTlRBQ1QtSU5GTworICAgICAgICAgICAgIldHLUVNYWlsOiAgIHNubXB2M0BsaXN0cy50aXNsYWJzLmNvbQorICAgICAgICAgICAgIFN1YnNjcmliZTogIHNubXB2My1yZXF1ZXN0QGxpc3RzLnRpc2xhYnMuY29tCisKKyAgICAgICAgICAgICBDby1DaGFpcjogICBSdXNzIE11bmR5CisgICAgICAgICAgICAgICAgICAgICAgICAgTmV0d29yayBBc3NvY2lhdGVzIExhYm9yYXRvcmllcworICAgICAgICAgICAgIHBvc3RhbDogICAgIDE1MjA0IE9tZWdhIERyaXZlLCBTdWl0ZSAzMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICBSb2NrdmlsbGUsIE1EIDIwODUwLTQ2MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICBVU0EKKyAgICAgICAgICAgICBFTWFpbDogICAgICBtdW5keUB0aXNsYWJzLmNvbQorICAgICAgICAgICAgIHBob25lOiAgICAgICsxIDMwMSA5NDctNzEwNworCisKKworICAgICAgICAgICAgIENvLUNoYWlyOiAgIERhdmlkIEhhcnJpbmd0b24KKyAgICAgICAgICAgICAgICAgICAgICAgICBFbnRlcmFzeXMgTmV0d29ya3MKKyAgICAgICAgICAgICBwb3N0YWw6ICAgICAzNSBJbmR1c3RyaWFsIFdheQorICAgICAgICAgICAgICAgICAgICAgICAgIFAuIE8uIEJveCA1MDA1CisgICAgICAgICAgICAgICAgICAgICAgICAgUm9jaGVzdGVyLCBOSCAwMzg2Ni01MDA1CisgICAgICAgICAgICAgICAgICAgICAgICAgVVNBCisgICAgICAgICAgICAgRU1haWw6ICAgICAgZGJoQGVudGVyYXN5cy5jb20KKyAgICAgICAgICAgICBwaG9uZTogICAgICArMSA2MDMgMzM3LTI2MTQKKworICAgICAgICAgICAgIEVkaXRvcjogICAgIFJhbmR5IFByZXN1aG4KKyAgICAgICAgICAgICAgICAgICAgICAgICBCTUMgU29mdHdhcmUsIEluYy4KKyAgICAgICAgICAgICBwb3N0YWw6ICAgICAyMTQxIE5vcnRoIEZpcnN0IFN0cmVldAorICAgICAgICAgICAgICAgICAgICAgICAgIFNhbiBKb3NlLCBDQSA5NTEzMQorICAgICAgICAgICAgICAgICAgICAgICAgIFVTQQorICAgICAgICAgICAgIEVNYWlsOiAgICAgIHJhbmR5X3ByZXN1aG5AYm1jLmNvbQorICAgICAgICAgICAgIHBob25lOiAgICAgICsxIDQwOCA1NDYtMTAwNiIKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSBNSUIgbW9kdWxlIGZvciBTTk1QIHRyYW5zcG9ydCBtYXBwaW5ncy4KKworICAgICAgICAgICAgIENvcHlyaWdodCAoQykgVGhlIEludGVybmV0IFNvY2lldHkgKDIwMDIpLiBUaGlzCisgICAgICAgICAgICAgdmVyc2lvbiBvZiB0aGlzIE1JQiBtb2R1bGUgaXMgcGFydCBvZiBSRkMgMzQxNzsKKyAgICAgICAgICAgICBzZWUgdGhlIFJGQyBpdHNlbGYgZm9yIGZ1bGwgbGVnYWwgbm90aWNlcy4KKyAgICAgICAgICAgICIKKyAgICBSRVZJU0lPTiAgICAgIjIwMDIxMDE2MDAwMFoiCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJDbGFyaWZpY2F0aW9ucywgcHVibGlzaGVkIGFzIFJGQyAzNDE3LiIKKyAgICBSRVZJU0lPTiAgICAiMTk5NjAxMDEwMDAwWiIKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIkNsYXJpZmljYXRpb25zLCBwdWJsaXNoZWQgYXMgUkZDIDE5MDYuIgorICAgIFJFVklTSU9OICAgICIxOTkzMDQwMTAwMDBaIgorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIGluaXRpYWwgdmVyc2lvbiwgcHVibGlzaGVkIGFzIFJGQyAxNDQ5LiIKKyAgICA6Oj0geyBzbm1wTW9kdWxlcyAxOSB9CisKKy0tIFNOTVAgb3ZlciBVRFAgb3ZlciBJUHY0CisKK3NubXBVRFBEb21haW4gIE9CSkVDVC1JREVOVElUWQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIFNOTVAgb3ZlciBVRFAgb3ZlciBJUHY0IHRyYW5zcG9ydCBkb21haW4uCisgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyB0cmFuc3BvcnQgYWRkcmVzcyBpcyBvZiB0eXBlCisgICAgICAgICAgICBTbm1wVURQQWRkcmVzcy4iCisgICAgOjo9IHsgc25tcERvbWFpbnMgMSB9CisKKworCisKKworCisKKworU25tcFVEUEFkZHJlc3MgOjo9IFRFWFRVQUwtQ09OVkVOVElPTgorICAgIERJU1BMQVktSElOVCAiMWQuMWQuMWQuMWQvMmQiCisgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlJlcHJlc2VudHMgYSBVRFAgb3ZlciBJUHY0IGFkZHJlc3M6CisKKyAgICAgICAgICAgICAgIG9jdGV0cyAgIGNvbnRlbnRzICAgICAgICBlbmNvZGluZworICAgICAgICAgICAgICAgIDEtNCAgICAgSVAtYWRkcmVzcyAgICAgIG5ldHdvcmstYnl0ZSBvcmRlcgorICAgICAgICAgICAgICAgIDUtNiAgICAgVURQLXBvcnQgICAgICAgIG5ldHdvcmstYnl0ZSBvcmRlcgorICAgICAgICAgICAgIgorICAgIFNZTlRBWCAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDYpKQorCistLSBTTk1QIG92ZXIgT1NJCisKK3NubXBDTE5TRG9tYWluIE9CSkVDVC1JREVOVElUWQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIFNOTVAgb3ZlciBDTE5TIHRyYW5zcG9ydCBkb21haW4uCisgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyB0cmFuc3BvcnQgYWRkcmVzcyBpcyBvZiB0eXBlCisgICAgICAgICAgICBTbm1wT1NJQWRkcmVzcy4iCisgICAgOjo9IHsgc25tcERvbWFpbnMgMiB9CisKK3NubXBDT05TRG9tYWluIE9CSkVDVC1JREVOVElUWQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiVGhlIFNOTVAgb3ZlciBDT05TIHRyYW5zcG9ydCBkb21haW4uCisgICAgICAgICAgICBUaGUgY29ycmVzcG9uZGluZyB0cmFuc3BvcnQgYWRkcmVzcyBpcyBvZiB0eXBlCisgICAgICAgICAgICBTbm1wT1NJQWRkcmVzcy4iCisgICAgOjo9IHsgc25tcERvbWFpbnMgMyB9CisKK1NubXBPU0lBZGRyZXNzIDo6PSBURVhUVUFMLUNPTlZFTlRJT04KKyAgICBESVNQTEFZLUhJTlQgIioxeDovMXg6IgorICAgIFNUQVRVUyAgICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJSZXByZXNlbnRzIGFuIE9TSSB0cmFuc3BvcnQtYWRkcmVzczoKKworICAgICAgICAgIG9jdGV0cyAgIGNvbnRlbnRzICAgICAgICAgICBlbmNvZGluZworICAgICAgICAgICAgIDEgICAgIGxlbmd0aCBvZiBOU0FQICAgICAnbicgYXMgYW4gdW5zaWduZWQtaW50ZWdlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWl0aGVyIDAgb3IgZnJvbSAzIHRvIDIwKQorICAgICAgICAgIDIuLihuKzEpIE5TQVAgICAgICAgICAgICAgICAgY29uY3JldGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uCisgICAgICAgICAgKG4rMikuLm0gVFNFTCAgICAgICAgICAgICAgICBzdHJpbmcgb2YgKHVwIHRvIDY0KSBvY3RldHMKKyAgICAgICAgICAgICIKKyAgICBTWU5UQVggICAgICAgT0NURVQgU1RSSU5HIChTSVpFICgxIHwgNC4uODUpKQorCisKKworCisKKworCisKKy0tIFNOTVAgb3ZlciBERFAKKworc25tcEREUERvbWFpbiAgT0JKRUNULUlERU5USVRZCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgU05NUCBvdmVyIEREUCB0cmFuc3BvcnQgZG9tYWluLiAgVGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgIHRyYW5zcG9ydCBhZGRyZXNzIGlzIG9mIHR5cGUgU25tcE5CUEFkZHJlc3MuIgorICAgIDo6PSB7IHNubXBEb21haW5zIDQgfQorCitTbm1wTkJQQWRkcmVzcyA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgU1RBVFVTICAgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlJlcHJlc2VudHMgYW4gTkJQIG5hbWU6CisKKyAgICAgICAgIG9jdGV0cyAgICAgICAgY29udGVudHMgICAgICAgICAgZW5jb2RpbmcKKyAgICAgICAgICAgIDEgICAgICAgICAgbGVuZ3RoIG9mIG9iamVjdCAgJ24nIGFzIGFuIHVuc2lnbmVkIGludGVnZXIKKyAgICAgICAgICAyLi4obisxKSAgICAgb2JqZWN0ICAgICAgICAgICAgc3RyaW5nIG9mICh1cCB0byAzMikgb2N0ZXRzCisgICAgICAgICAgIG4rMiAgICAgICAgIGxlbmd0aCBvZiB0eXBlICAgICdwJyBhcyBhbiB1bnNpZ25lZCBpbnRlZ2VyCisgICAgICAobiszKS4uKG4rMitwKSAgIHR5cGUgICAgICAgICAgICAgIHN0cmluZyBvZiAodXAgdG8gMzIpIG9jdGV0cworICAgICAgICAgIG4rMytwICAgICAgICBsZW5ndGggb2Ygem9uZSAgICAncScgYXMgYW4gdW5zaWduZWQgaW50ZWdlcgorICAgIChuKzQrcCkuLihuKzMrcCtxKSB6b25lICAgICAgICAgICAgICBzdHJpbmcgb2YgKHVwIHRvIDMyKSBvY3RldHMKKworICAgICAgICAgICAgRm9yIGNvbXBhcmlzb24gcHVycG9zZXMsIHN0cmluZ3MgYXJlCisgICAgICAgICAgICBjYXNlLWluc2Vuc2l0aXZlLiBBbGwgc3RyaW5ncyBtYXkgY29udGFpbiBhbnkgb2N0ZXQKKyAgICAgICAgICAgIG90aGVyIHRoYW4gMjU1IChoZXggZmYpLiIKKyAgICBTWU5UQVggICAgICAgT0NURVQgU1RSSU5HIChTSVpFICgzLi45OSkpCisKKy0tIFNOTVAgb3ZlciBJUFgKKworc25tcElQWERvbWFpbiAgT0JKRUNULUlERU5USVRZCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgICJUaGUgU05NUCBvdmVyIElQWCB0cmFuc3BvcnQgZG9tYWluLiAgVGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgIHRyYW5zcG9ydCBhZGRyZXNzIGlzIG9mIHR5cGUgU25tcElQWEFkZHJlc3MuIgorICAgIDo6PSB7IHNubXBEb21haW5zIDUgfQorCitTbm1wSVBYQWRkcmVzcyA6Oj0gVEVYVFVBTC1DT05WRU5USU9OCisgICAgRElTUExBWS1ISU5UICI0eC4xeDoxeDoxeDoxeDoxeDoxeC4yZCIKKyAgICBTVEFUVVMgICAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAiUmVwcmVzZW50cyBhbiBJUFggYWRkcmVzczoKKworICAgICAgICAgICAgICAgb2N0ZXRzICAgY29udGVudHMgICAgICAgICAgICBlbmNvZGluZworICAgICAgICAgICAgICAgIDEtNCAgICAgbmV0d29yay1udW1iZXIgICAgICBuZXR3b3JrLWJ5dGUgb3JkZXIKKyAgICAgICAgICAgICAgICA1LTEwICAgIHBoeXNpY2FsLWFkZHJlc3MgICAgbmV0d29yay1ieXRlIG9yZGVyCisgICAgICAgICAgICAgICAxMS0xMiAgICBzb2NrZXQtbnVtYmVyICAgICAgIG5ldHdvcmstYnl0ZSBvcmRlcgorICAgICAgICAgICAgIgorICAgIFNZTlRBWCAgICAgICBPQ1RFVCBTVFJJTkcgKFNJWkUgKDEyKSkKKworCisKKy0tIGZvciBwcm94eSB0byBTTk1QdjEgKFJGQyAxMTU3KQorCityZmMxMTU3UHJveHkgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyBzbm1wUHJveHlzIDEgfQorCityZmMxMTU3RG9tYWluICBPQkpFQ1QtSURFTlRJVFkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAgIlRoZSB0cmFuc3BvcnQgZG9tYWluIGZvciBTTk1QdjEgb3ZlciBVRFAgb3ZlciBJUHY0LgorICAgICAgICAgICAgVGhlIGNvcnJlc3BvbmRpbmcgdHJhbnNwb3J0IGFkZHJlc3MgaXMgb2YgdHlwZQorICAgICAgICAgICAgU25tcFVEUEFkZHJlc3MuIgorICAgIDo6PSB7IHJmYzExNTdQcm94eSAxIH0KKworLS0gIDo6PSB7IHJmYzExNTdQcm94eSAyIH0gICAgICAgICAgICB0aGlzIE9JRCBpcyBvYnNvbGV0ZQorCitFTkQKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9UQ1AtTUlCIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1RDUC1NSUIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWI5ZTBiZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvTWlicy9UQ1AtTUlCCkBAIC0wLDAgKzEsODI5IEBACitUQ1AtTUlCIERFRklOSVRJT05TIDo6PSBCRUdJTgorCitJTVBPUlRTCisgICAgTU9EVUxFLUlERU5USVRZLCBPQkpFQ1QtVFlQRSwgSW50ZWdlcjMyLCBVbnNpZ25lZDMyLAorICAgIEdhdWdlMzIsIENvdW50ZXIzMiwgQ291bnRlcjY0LCBJcEFkZHJlc3MsIG1pYi0yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NIFNOTVB2Mi1TTUkKKyAgICBNT0RVTEUtQ09NUExJQU5DRSwgT0JKRUNULUdST1VQICAgIEZST00gU05NUHYyLUNPTkYKKyAgICBJbmV0QWRkcmVzcywgSW5ldEFkZHJlc3NUeXBlLAorICAgIEluZXRQb3J0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgRlJPTSBJTkVULUFERFJFU1MtTUlCOworCit0Y3BNSUIgTU9EVUxFLUlERU5USVRZCisgICAgTEFTVC1VUERBVEVEICIyMDA1MDIxODAwMDBaIiAgLS0gMTggRmVicnVhcnkgMjAwNQorICAgIE9SR0FOSVpBVElPTgorICAgICAgICAgICAiSUVURiBJUHY2IE1JQiBSZXZpc2lvbiBUZWFtCisgICAgICAgICAgICBodHRwOi8vd3d3LmlldGYub3JnL2h0bWwuY2hhcnRlcnMvaXB2Ni1jaGFydGVyLmh0bWwiCisgICAgQ09OVEFDVC1JTkZPCisgICAgICAgICAgICJSYWppdiBSYWdodW5hcmF5YW4gKGVkaXRvcikKKworICAgICAgICAgICAgQ2lzY28gU3lzdGVtcyBJbmMuCisgICAgICAgICAgICAxNzAgV2VzdCBUYXNtYW4gRHJpdmUKKyAgICAgICAgICAgIFNhbiBKb3NlLCBDQSA5NTEzNAorCisgICAgICAgICAgICBQaG9uZTogKzEgNDA4IDg1MyA5NjEyCisgICAgICAgICAgICBFbWFpbDogPHJhcmFnaHVuQGNpc2NvLmNvbT4KKworICAgICAgICAgICAgU2VuZCBjb21tZW50cyB0byA8aXB2NkBpZXRmLm9yZz4iCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBNSUIgbW9kdWxlIGZvciBtYW5hZ2luZyBUQ1AgaW1wbGVtZW50YXRpb25zLgorCisgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIFRoZSBJbnRlcm5ldCBTb2NpZXR5ICgyMDA1KS4gVGhpcyB2ZXJzaW9uCisgICAgICAgICAgICBvZiB0aGlzIE1JQiBtb2R1bGUgaXMgYSBwYXJ0IG9mIFJGQyA0MDIyOyBzZWUgdGhlIFJGQworICAgICAgICAgICAgaXRzZWxmIGZvciBmdWxsIGxlZ2FsIG5vdGljZXMuIgorICAgIFJFVklTSU9OICAgICAgIjIwMDUwMjE4MDAwMFoiICAtLSAxOCBGZWJydWFyeSAyMDA1CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIklQIHZlcnNpb24gbmV1dHJhbCByZXZpc2lvbiwgcHVibGlzaGVkIGFzIFJGQyA0MDIyLiIKKyAgICBSRVZJU0lPTiAgICAgICI5NDExMDEwMDAwWiIKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiSW5pdGlhbCBTTUl2MiB2ZXJzaW9uLCBwdWJsaXNoZWQgYXMgUkZDIDIwMTIuIgorICAgIFJFVklTSU9OICAgICAgIjkxMDMzMTAwMDBaIgorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgaW5pdGlhbCByZXZpc2lvbiBvZiB0aGlzIE1JQiBtb2R1bGUgd2FzIHBhcnQgb2YKKyAgICAgICAgICAgIE1JQi1JSS4iCisgICAgOjo9IHsgbWliLTIgNDkgfQorCistLSB0aGUgVENQIGJhc2UgdmFyaWFibGVzIGdyb3VwCisKKworCisKK3RjcCAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IG1pYi0yIDYgfQorCistLSBTY2FsYXJzCisKK3RjcFJ0b0FsZ29yaXRobSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgICBvdGhlcigxKSwgICAgLS0gbm9uZSBvZiB0aGUgZm9sbG93aW5nCisgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50KDIpLCAtLSBhIGNvbnN0YW50IHJ0bworICAgICAgICAgICAgICAgICAgICByc3JlKDMpLCAgICAgLS0gTUlMLVNURC0xNzc4LCBBcHBlbmRpeCBCCisgICAgICAgICAgICAgICAgICAgIHZhbmooNCksICAgICAtLSBWYW4gSmFjb2Jzb24ncyBhbGdvcml0aG0KKyAgICAgICAgICAgICAgICAgICAgcmZjMjk4OCg1KSAgIC0tIFJGQyAyOTg4CisgICAgICAgICAgICAgICAgfQorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBhbGdvcml0aG0gdXNlZCB0byBkZXRlcm1pbmUgdGhlIHRpbWVvdXQgdmFsdWUgdXNlZCBmb3IKKyAgICAgICAgICAgIHJldHJhbnNtaXR0aW5nIHVuYWNrbm93bGVkZ2VkIG9jdGV0cy4iCisgICAgOjo9IHsgdGNwIDEgfQorCit0Y3BSdG9NaW4gT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEludGVnZXIzMiAoMC4uMjE0NzQ4MzY0NykKKyAgICBVTklUUyAgICAgICJtaWxsaXNlY29uZHMiCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIG1pbmltdW0gdmFsdWUgcGVybWl0dGVkIGJ5IGEgVENQIGltcGxlbWVudGF0aW9uIGZvcgorICAgICAgICAgICAgdGhlIHJldHJhbnNtaXNzaW9uIHRpbWVvdXQsIG1lYXN1cmVkIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgICAgICAgIE1vcmUgcmVmaW5lZCBzZW1hbnRpY3MgZm9yIG9iamVjdHMgb2YgdGhpcyB0eXBlIGRlcGVuZAorICAgICAgICAgICAgb24gdGhlIGFsZ29yaXRobSB1c2VkIHRvIGRldGVybWluZSB0aGUgcmV0cmFuc21pc3Npb24KKyAgICAgICAgICAgIHRpbWVvdXQ7IGluIHBhcnRpY3VsYXIsIHRoZSBJRVRGIHN0YW5kYXJkIGFsZ29yaXRobQorICAgICAgICAgICAgcmZjMjk4OCg1KSBwcm92aWRlcyBhIG1pbmltdW0gdmFsdWUuIgorICAgIDo6PSB7IHRjcCAyIH0KKwordGNwUnRvTWF4IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbnRlZ2VyMzIgKDAuLjIxNDc0ODM2NDcpCisgICAgVU5JVFMgICAgICAibWlsbGlzZWNvbmRzIgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBtYXhpbXVtIHZhbHVlIHBlcm1pdHRlZCBieSBhIFRDUCBpbXBsZW1lbnRhdGlvbiBmb3IKKyAgICAgICAgICAgIHRoZSByZXRyYW5zbWlzc2lvbiB0aW1lb3V0LCBtZWFzdXJlZCBpbiBtaWxsaXNlY29uZHMuCisgICAgICAgICAgICBNb3JlIHJlZmluZWQgc2VtYW50aWNzIGZvciBvYmplY3RzIG9mIHRoaXMgdHlwZSBkZXBlbmQKKyAgICAgICAgICAgIG9uIHRoZSBhbGdvcml0aG0gdXNlZCB0byBkZXRlcm1pbmUgdGhlIHJldHJhbnNtaXNzaW9uCisgICAgICAgICAgICB0aW1lb3V0OyBpbiBwYXJ0aWN1bGFyLCB0aGUgSUVURiBzdGFuZGFyZCBhbGdvcml0aG0KKyAgICAgICAgICAgIHJmYzI5ODgoNSkgcHJvdmlkZXMgYW4gdXBwZXIgYm91bmQgKGFzIHBhcnQgb2YgYW4KKyAgICAgICAgICAgIGFkYXB0aXZlIGJhY2tvZmYgYWxnb3JpdGhtKS4iCisgICAgOjo9IHsgdGNwIDMgfQorCisKKworCit0Y3BNYXhDb25uIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbnRlZ2VyMzIgKC0xIHwgMC4uMjE0NzQ4MzY0NykKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbGltaXQgb24gdGhlIHRvdGFsIG51bWJlciBvZiBUQ1AgY29ubmVjdGlvbnMgdGhlIGVudGl0eQorICAgICAgICAgICAgY2FuIHN1cHBvcnQuICBJbiBlbnRpdGllcyB3aGVyZSB0aGUgbWF4aW11bSBudW1iZXIgb2YKKyAgICAgICAgICAgIGNvbm5lY3Rpb25zIGlzIGR5bmFtaWMsIHRoaXMgb2JqZWN0IHNob3VsZCBjb250YWluIHRoZQorICAgICAgICAgICAgdmFsdWUgLTEuIgorICAgIDo6PSB7IHRjcCA0IH0KKwordGNwQWN0aXZlT3BlbnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgdGltZXMgdGhhdCBUQ1AgY29ubmVjdGlvbnMgaGF2ZSBtYWRlIGEgZGlyZWN0CisgICAgICAgICAgICB0cmFuc2l0aW9uIHRvIHRoZSBTWU4tU0VOVCBzdGF0ZSBmcm9tIHRoZSBDTE9TRUQgc3RhdGUuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGFyZQorICAgICAgICAgICAgaW5kaWNhdGVkIHZpYSBkaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHN5c1VwVGltZS4iCisgICAgOjo9IHsgdGNwIDUgfQorCit0Y3BQYXNzaXZlT3BlbnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgdGltZXMgVENQIGNvbm5lY3Rpb25zIGhhdmUgbWFkZSBhIGRpcmVjdAorICAgICAgICAgICAgdHJhbnNpdGlvbiB0byB0aGUgU1lOLVJDVkQgc3RhdGUgZnJvbSB0aGUgTElTVEVOIHN0YXRlLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBhcmUKKyAgICAgICAgICAgIGluZGljYXRlZCB2aWEgZGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiBzeXNVcFRpbWUuIgorICAgIDo6PSB7IHRjcCA2IH0KKwordGNwQXR0ZW1wdEZhaWxzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbnVtYmVyIG9mIHRpbWVzIHRoYXQgVENQIGNvbm5lY3Rpb25zIGhhdmUgbWFkZSBhIGRpcmVjdAorICAgICAgICAgICAgdHJhbnNpdGlvbiB0byB0aGUgQ0xPU0VEIHN0YXRlIGZyb20gZWl0aGVyIHRoZSBTWU4tU0VOVAorICAgICAgICAgICAgc3RhdGUgb3IgdGhlIFNZTi1SQ1ZEIHN0YXRlLCBwbHVzIHRoZSBudW1iZXIgb2YgdGltZXMgdGhhdAorICAgICAgICAgICAgVENQIGNvbm5lY3Rpb25zIGhhdmUgbWFkZSBhIGRpcmVjdCB0cmFuc2l0aW9uIHRvIHRoZQorICAgICAgICAgICAgTElTVEVOIHN0YXRlIGZyb20gdGhlIFNZTi1SQ1ZEIHN0YXRlLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBhcmUKKyAgICAgICAgICAgIGluZGljYXRlZCB2aWEgZGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiBzeXNVcFRpbWUuIgorCisKKworICAgIDo6PSB7IHRjcCA3IH0KKwordGNwRXN0YWJSZXNldHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgdGltZXMgdGhhdCBUQ1AgY29ubmVjdGlvbnMgaGF2ZSBtYWRlIGEgZGlyZWN0CisgICAgICAgICAgICB0cmFuc2l0aW9uIHRvIHRoZSBDTE9TRUQgc3RhdGUgZnJvbSBlaXRoZXIgdGhlIEVTVEFCTElTSEVECisgICAgICAgICAgICBzdGF0ZSBvciB0aGUgQ0xPU0UtV0FJVCBzdGF0ZS4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgYXJlCisgICAgICAgICAgICBpbmRpY2F0ZWQgdmlhIGRpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2Ygc3lzVXBUaW1lLiIKKyAgICA6Oj0geyB0Y3AgOCB9CisKK3RjcEN1cnJFc3RhYiBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgR2F1Z2UzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgVENQIGNvbm5lY3Rpb25zIGZvciB3aGljaCB0aGUgY3VycmVudCBzdGF0ZQorICAgICAgICAgICAgaXMgZWl0aGVyIEVTVEFCTElTSEVEIG9yIENMT1NFLVdBSVQuIgorICAgIDo6PSB7IHRjcCA5IH0KKwordGNwSW5TZWdzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIHNlZ21lbnRzIHJlY2VpdmVkLCBpbmNsdWRpbmcgdGhvc2UKKyAgICAgICAgICAgIHJlY2VpdmVkIGluIGVycm9yLiAgVGhpcyBjb3VudCBpbmNsdWRlcyBzZWdtZW50cyByZWNlaXZlZAorICAgICAgICAgICAgb24gY3VycmVudGx5IGVzdGFibGlzaGVkIGNvbm5lY3Rpb25zLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBhcmUKKyAgICAgICAgICAgIGluZGljYXRlZCB2aWEgZGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiBzeXNVcFRpbWUuIgorICAgIDo6PSB7IHRjcCAxMCB9CisKK3RjcE91dFNlZ3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2Ygc2VnbWVudHMgc2VudCwgaW5jbHVkaW5nIHRob3NlIG9uCisgICAgICAgICAgICBjdXJyZW50IGNvbm5lY3Rpb25zIGJ1dCBleGNsdWRpbmcgdGhvc2UgY29udGFpbmluZyBvbmx5CisgICAgICAgICAgICByZXRyYW5zbWl0dGVkIG9jdGV0cy4KKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgYXJlCisgICAgICAgICAgICBpbmRpY2F0ZWQgdmlhIGRpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2Ygc3lzVXBUaW1lLiIKKworCisKKyAgICA6Oj0geyB0Y3AgMTEgfQorCit0Y3BSZXRyYW5zU2VncyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBzZWdtZW50cyByZXRyYW5zbWl0dGVkOyB0aGF0IGlzLCB0aGUKKyAgICAgICAgICAgIG51bWJlciBvZiBUQ1Agc2VnbWVudHMgdHJhbnNtaXR0ZWQgY29udGFpbmluZyBvbmUgb3IgbW9yZQorICAgICAgICAgICAgcHJldmlvdXNseSB0cmFuc21pdHRlZCBvY3RldHMuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGFyZQorICAgICAgICAgICAgaW5kaWNhdGVkIHZpYSBkaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHN5c1VwVGltZS4iCisgICAgOjo9IHsgdGNwIDEyIH0KKwordGNwSW5FcnJzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIHNlZ21lbnRzIHJlY2VpdmVkIGluIGVycm9yIChlLmcuLCBiYWQKKyAgICAgICAgICAgIFRDUCBjaGVja3N1bXMpLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBhcmUKKyAgICAgICAgICAgIGluZGljYXRlZCB2aWEgZGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiBzeXNVcFRpbWUuIgorICAgIDo6PSB7IHRjcCAxNCB9CisKK3RjcE91dFJzdHMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgVENQIHNlZ21lbnRzIHNlbnQgY29udGFpbmluZyB0aGUgUlNUIGZsYWcuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGFyZQorICAgICAgICAgICAgaW5kaWNhdGVkIHZpYSBkaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHN5c1VwVGltZS4iCisgICAgOjo9IHsgdGNwIDE1IH0KKworLS0geyB0Y3AgMTYgfSB3YXMgdXNlZCB0byByZXByZXNlbnQgdGhlIGlwdjZUY3BDb25uVGFibGUgaW4gUkZDIDI0NTIsCistLSB3aGljaCBoYXMgc2luY2UgYmVlbiBvYnNvbGV0ZWQuICBJdCBNVVNUIG5vdCBiZSB1c2VkLgorCit0Y3BIQ0luU2VncyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBzZWdtZW50cyByZWNlaXZlZCwgaW5jbHVkaW5nIHRob3NlCisgICAgICAgICAgICByZWNlaXZlZCBpbiBlcnJvci4gIFRoaXMgY291bnQgaW5jbHVkZXMgc2VnbWVudHMgcmVjZWl2ZWQKKworCisKKyAgICAgICAgICAgIG9uIGN1cnJlbnRseSBlc3RhYmxpc2hlZCBjb25uZWN0aW9ucy4gIFRoaXMgb2JqZWN0IGlzCisgICAgICAgICAgICB0aGUgNjQtYml0IGVxdWl2YWxlbnQgb2YgdGNwSW5TZWdzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBhcmUKKyAgICAgICAgICAgIGluZGljYXRlZCB2aWEgZGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiBzeXNVcFRpbWUuIgorICAgIDo6PSB7IHRjcCAxNyB9CisKK3RjcEhDT3V0U2VncyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjY0CisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBzZWdtZW50cyBzZW50LCBpbmNsdWRpbmcgdGhvc2Ugb24KKyAgICAgICAgICAgIGN1cnJlbnQgY29ubmVjdGlvbnMgYnV0IGV4Y2x1ZGluZyB0aG9zZSBjb250YWluaW5nIG9ubHkKKyAgICAgICAgICAgIHJldHJhbnNtaXR0ZWQgb2N0ZXRzLiAgVGhpcyBvYmplY3QgaXMgdGhlIDY0LWJpdAorICAgICAgICAgICAgZXF1aXZhbGVudCBvZiB0Y3BPdXRTZWdzLgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBhcmUKKyAgICAgICAgICAgIGluZGljYXRlZCB2aWEgZGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiBzeXNVcFRpbWUuIgorICAgIDo6PSB7IHRjcCAxOCB9CisKKworLS0gVGhlIFRDUCBDb25uZWN0aW9uIHRhYmxlCisKK3RjcENvbm5lY3Rpb25UYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgU0VRVUVOQ0UgT0YgVGNwQ29ubmVjdGlvbkVudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBIHRhYmxlIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgZXhpc3RpbmcgVENQCisgICAgICAgICAgICBjb25uZWN0aW9ucy4gIE5vdGUgdGhhdCB1bmxpa2UgZWFybGllciBUQ1AgTUlCcywgdGhlcmUKKyAgICAgICAgICAgIGlzIGEgc2VwYXJhdGUgdGFibGUgZm9yIGNvbm5lY3Rpb25zIGluIHRoZSBMSVNURU4gc3RhdGUuIgorICAgIDo6PSB7IHRjcCAxOSB9CisKK3RjcENvbm5lY3Rpb25FbnRyeSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVGNwQ29ubmVjdGlvbkVudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBIGNvbmNlcHR1YWwgcm93IG9mIHRoZSB0Y3BDb25uZWN0aW9uVGFibGUgY29udGFpbmluZworICAgICAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgYSBwYXJ0aWN1bGFyIGN1cnJlbnQgVENQIGNvbm5lY3Rpb24uCisgICAgICAgICAgICBFYWNoIHJvdyBvZiB0aGlzIHRhYmxlIGlzIHRyYW5zaWVudCBpbiB0aGF0IGl0IGNlYXNlcyB0bworICAgICAgICAgICAgZXhpc3Qgd2hlbiAob3Igc29vbiBhZnRlcikgdGhlIGNvbm5lY3Rpb24gbWFrZXMgdGhlCisgICAgICAgICAgICB0cmFuc2l0aW9uIHRvIHRoZSBDTE9TRUQgc3RhdGUuIgorICAgIElOREVYICAgeyB0Y3BDb25uZWN0aW9uTG9jYWxBZGRyZXNzVHlwZSwKKyAgICAgICAgICAgICAgdGNwQ29ubmVjdGlvbkxvY2FsQWRkcmVzcywKKyAgICAgICAgICAgICAgdGNwQ29ubmVjdGlvbkxvY2FsUG9ydCwKKyAgICAgICAgICAgICAgdGNwQ29ubmVjdGlvblJlbUFkZHJlc3NUeXBlLAorCisKKworICAgICAgICAgICAgICB0Y3BDb25uZWN0aW9uUmVtQWRkcmVzcywKKyAgICAgICAgICAgICAgdGNwQ29ubmVjdGlvblJlbVBvcnQgfQorICAgIDo6PSB7IHRjcENvbm5lY3Rpb25UYWJsZSAxIH0KKworVGNwQ29ubmVjdGlvbkVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgICAgIHRjcENvbm5lY3Rpb25Mb2NhbEFkZHJlc3NUeXBlICAgSW5ldEFkZHJlc3NUeXBlLAorICAgICAgICB0Y3BDb25uZWN0aW9uTG9jYWxBZGRyZXNzICAgICAgIEluZXRBZGRyZXNzLAorICAgICAgICB0Y3BDb25uZWN0aW9uTG9jYWxQb3J0ICAgICAgICAgIEluZXRQb3J0TnVtYmVyLAorICAgICAgICB0Y3BDb25uZWN0aW9uUmVtQWRkcmVzc1R5cGUgICAgIEluZXRBZGRyZXNzVHlwZSwKKyAgICAgICAgdGNwQ29ubmVjdGlvblJlbUFkZHJlc3MgICAgICAgICBJbmV0QWRkcmVzcywKKyAgICAgICAgdGNwQ29ubmVjdGlvblJlbVBvcnQgICAgICAgICAgICBJbmV0UG9ydE51bWJlciwKKyAgICAgICAgdGNwQ29ubmVjdGlvblN0YXRlICAgICAgICAgICAgICBJTlRFR0VSLAorICAgICAgICB0Y3BDb25uZWN0aW9uUHJvY2VzcyAgICAgICAgICAgIFVuc2lnbmVkMzIKKyAgICB9CisKK3RjcENvbm5lY3Rpb25Mb2NhbEFkZHJlc3NUeXBlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0QWRkcmVzc1R5cGUKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBhZGRyZXNzIHR5cGUgb2YgdGNwQ29ubmVjdGlvbkxvY2FsQWRkcmVzcy4iCisgICAgOjo9IHsgdGNwQ29ubmVjdGlvbkVudHJ5IDEgfQorCit0Y3BDb25uZWN0aW9uTG9jYWxBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0QWRkcmVzcworICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGxvY2FsIElQIGFkZHJlc3MgZm9yIHRoaXMgVENQIGNvbm5lY3Rpb24uICBUaGUgdHlwZQorICAgICAgICAgICAgb2YgdGhpcyBhZGRyZXNzIGlzIGRldGVybWluZWQgYnkgdGhlIHZhbHVlIG9mCisgICAgICAgICAgICB0Y3BDb25uZWN0aW9uTG9jYWxBZGRyZXNzVHlwZS4KKworICAgICAgICAgICAgQXMgdGhpcyBvYmplY3QgaXMgdXNlZCBpbiB0aGUgaW5kZXggZm9yIHRoZQorICAgICAgICAgICAgdGNwQ29ubmVjdGlvblRhYmxlLCBpbXBsZW1lbnRvcnMgc2hvdWxkIGJlCisgICAgICAgICAgICBjYXJlZnVsIG5vdCB0byBjcmVhdGUgZW50cmllcyB0aGF0IHdvdWxkIHJlc3VsdCBpbiBPSURzCisgICAgICAgICAgICB3aXRoIG1vcmUgdGhhbiAxMjggc3ViaWRlbnRpZmllcnM7IG90aGVyd2lzZSB0aGUgaW5mb3JtYXRpb24KKyAgICAgICAgICAgIGNhbm5vdCBiZSBhY2Nlc3NlZCBieSB1c2luZyBTTk1QdjEsIFNOTVB2MmMsIG9yIFNOTVB2My4iCisgICAgOjo9IHsgdGNwQ29ubmVjdGlvbkVudHJ5IDIgfQorCit0Y3BDb25uZWN0aW9uTG9jYWxQb3J0IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0UG9ydE51bWJlcgorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGxvY2FsIHBvcnQgbnVtYmVyIGZvciB0aGlzIFRDUCBjb25uZWN0aW9uLiIKKyAgICA6Oj0geyB0Y3BDb25uZWN0aW9uRW50cnkgMyB9CisKK3RjcENvbm5lY3Rpb25SZW1BZGRyZXNzVHlwZSBPQkpFQ1QtVFlQRQorCisKKworICAgIFNZTlRBWCAgICAgSW5ldEFkZHJlc3NUeXBlCisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgYWRkcmVzcyB0eXBlIG9mIHRjcENvbm5lY3Rpb25SZW1BZGRyZXNzLiIKKyAgICA6Oj0geyB0Y3BDb25uZWN0aW9uRW50cnkgNCB9CisKK3RjcENvbm5lY3Rpb25SZW1BZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0QWRkcmVzcworICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHJlbW90ZSBJUCBhZGRyZXNzIGZvciB0aGlzIFRDUCBjb25uZWN0aW9uLiAgVGhlIHR5cGUKKyAgICAgICAgICAgIG9mIHRoaXMgYWRkcmVzcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZSBvZgorICAgICAgICAgICAgdGNwQ29ubmVjdGlvblJlbUFkZHJlc3NUeXBlLgorCisgICAgICAgICAgICBBcyB0aGlzIG9iamVjdCBpcyB1c2VkIGluIHRoZSBpbmRleCBmb3IgdGhlCisgICAgICAgICAgICB0Y3BDb25uZWN0aW9uVGFibGUsIGltcGxlbWVudG9ycyBzaG91bGQgYmUKKyAgICAgICAgICAgIGNhcmVmdWwgbm90IHRvIGNyZWF0ZSBlbnRyaWVzIHRoYXQgd291bGQgcmVzdWx0IGluIE9JRHMKKyAgICAgICAgICAgIHdpdGggbW9yZSB0aGFuIDEyOCBzdWJpZGVudGlmaWVyczsgb3RoZXJ3aXNlIHRoZSBpbmZvcm1hdGlvbgorICAgICAgICAgICAgY2Fubm90IGJlIGFjY2Vzc2VkIGJ5IHVzaW5nIFNOTVB2MSwgU05NUHYyYywgb3IgU05NUHYzLiIKKyAgICA6Oj0geyB0Y3BDb25uZWN0aW9uRW50cnkgNSB9CisKK3RjcENvbm5lY3Rpb25SZW1Qb3J0IE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0UG9ydE51bWJlcgorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHJlbW90ZSBwb3J0IG51bWJlciBmb3IgdGhpcyBUQ1AgY29ubmVjdGlvbi4iCisgICAgOjo9IHsgdGNwQ29ubmVjdGlvbkVudHJ5IDYgfQorCit0Y3BDb25uZWN0aW9uU3RhdGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElOVEVHRVIgeworICAgICAgICAgICAgICAgICAgICBjbG9zZWQoMSksCisgICAgICAgICAgICAgICAgICAgIGxpc3RlbigyKSwKKyAgICAgICAgICAgICAgICAgICAgc3luU2VudCgzKSwKKyAgICAgICAgICAgICAgICAgICAgc3luUmVjZWl2ZWQoNCksCisgICAgICAgICAgICAgICAgICAgIGVzdGFibGlzaGVkKDUpLAorICAgICAgICAgICAgICAgICAgICBmaW5XYWl0MSg2KSwKKyAgICAgICAgICAgICAgICAgICAgZmluV2FpdDIoNyksCisgICAgICAgICAgICAgICAgICAgIGNsb3NlV2FpdCg4KSwKKyAgICAgICAgICAgICAgICAgICAgbGFzdEFjayg5KSwKKyAgICAgICAgICAgICAgICAgICAgY2xvc2luZygxMCksCisgICAgICAgICAgICAgICAgICAgIHRpbWVXYWl0KDExKSwKKyAgICAgICAgICAgICAgICAgICAgZGVsZXRlVENCKDEyKQorICAgICAgICAgICAgICAgIH0KKyAgICBNQVgtQUNDRVNTIHJlYWQtd3JpdGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKworCisKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHN0YXRlIG9mIHRoaXMgVENQIGNvbm5lY3Rpb24uCisKKyAgICAgICAgICAgIFRoZSB2YWx1ZSBsaXN0ZW4oMikgaXMgaW5jbHVkZWQgb25seSBmb3IgcGFyYWxsZWxpc20gdG8gdGhlCisgICAgICAgICAgICBvbGQgdGNwQ29ublRhYmxlIGFuZCBzaG91bGQgbm90IGJlIHVzZWQuICBBIGNvbm5lY3Rpb24gaW4KKyAgICAgICAgICAgIExJU1RFTiBzdGF0ZSBzaG91bGQgYmUgcHJlc2VudCBpbiB0aGUgdGNwTGlzdGVuZXJUYWJsZS4KKworICAgICAgICAgICAgVGhlIG9ubHkgdmFsdWUgdGhhdCBtYXkgYmUgc2V0IGJ5IGEgbWFuYWdlbWVudCBzdGF0aW9uIGlzCisgICAgICAgICAgICBkZWxldGVUQ0IoMTIpLiAgQWNjb3JkaW5nbHksIGl0IGlzIGFwcHJvcHJpYXRlIGZvciBhbiBhZ2VudAorICAgICAgICAgICAgdG8gcmV0dXJuIGEgYGJhZFZhbHVlJyByZXNwb25zZSBpZiBhIG1hbmFnZW1lbnQgc3RhdGlvbgorICAgICAgICAgICAgYXR0ZW1wdHMgdG8gc2V0IHRoaXMgb2JqZWN0IHRvIGFueSBvdGhlciB2YWx1ZS4KKworICAgICAgICAgICAgSWYgYSBtYW5hZ2VtZW50IHN0YXRpb24gc2V0cyB0aGlzIG9iamVjdCB0byB0aGUgdmFsdWUKKyAgICAgICAgICAgIGRlbGV0ZVRDQigxMiksIHRoZW4gdGhlIFRDQiAoYXMgZGVmaW5lZCBpbiBbUkZDNzkzXSkgb2YKKyAgICAgICAgICAgIHRoZSBjb3JyZXNwb25kaW5nIGNvbm5lY3Rpb24gb24gdGhlIG1hbmFnZWQgbm9kZSBpcworICAgICAgICAgICAgZGVsZXRlZCwgcmVzdWx0aW5nIGluIGltbWVkaWF0ZSB0ZXJtaW5hdGlvbiBvZiB0aGUKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uCisKKyAgICAgICAgICAgIEFzIGFuIGltcGxlbWVudGF0aW9uLXNwZWNpZmljIG9wdGlvbiwgYSBSU1Qgc2VnbWVudCBtYXkgYmUKKyAgICAgICAgICAgIHNlbnQgZnJvbSB0aGUgbWFuYWdlZCBub2RlIHRvIHRoZSBvdGhlciBUQ1AgZW5kcG9pbnQgKG5vdGUsCisgICAgICAgICAgICBob3dldmVyLCB0aGF0IFJTVCBzZWdtZW50cyBhcmUgbm90IHNlbnQgcmVsaWFibHkpLiIKKyAgICA6Oj0geyB0Y3BDb25uZWN0aW9uRW50cnkgNyB9CisKK3RjcENvbm5lY3Rpb25Qcm9jZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBVbnNpZ25lZDMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHN5c3RlbSdzIHByb2Nlc3MgSUQgZm9yIHRoZSBwcm9jZXNzIGFzc29jaWF0ZWQgd2l0aAorICAgICAgICAgICAgdGhpcyBjb25uZWN0aW9uLCBvciB6ZXJvIGlmIHRoZXJlIGlzIG5vIHN1Y2ggcHJvY2Vzcy4gIFRoaXMKKyAgICAgICAgICAgIHZhbHVlIGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBzYW1lIGFzIEhPU1QtUkVTT1VSQ0VTLU1JQjo6CisgICAgICAgICAgICBoclNXUnVuSW5kZXggb3IgU1lTQVBQTC1NSUI6OnN5c0FwcGxFbG10UnVuSW5kZXggZm9yIHNvbWUKKyAgICAgICAgICAgIHJvdyBpbiB0aGUgYXBwcm9wcmlhdGUgdGFibGVzLiIKKyAgICA6Oj0geyB0Y3BDb25uZWN0aW9uRW50cnkgOCB9CisKKy0tIFRoZSBUQ1AgTGlzdGVuZXIgdGFibGUKKwordGNwTGlzdGVuZXJUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgU0VRVUVOQ0UgT0YgVGNwTGlzdGVuZXJFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQSB0YWJsZSBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IFRDUCBsaXN0ZW5lcnMuICBBCisgICAgICAgICAgICBsaXN0ZW5pbmcgYXBwbGljYXRpb24gY2FuIGJlIHJlcHJlc2VudGVkIGluIHRocmVlCisgICAgICAgICAgICBwb3NzaWJsZSB3YXlzOgorCisgICAgICAgICAgICAxLiBBbiBhcHBsaWNhdGlvbiB0aGF0IGlzIHdpbGxpbmcgdG8gYWNjZXB0IGJvdGggSVB2NCBhbmQKKyAgICAgICAgICAgICAgIElQdjYgZGF0YWdyYW1zIGlzIHJlcHJlc2VudGVkIGJ5CisKKworCisgICAgICAgICAgICAgICBhIHRjcExpc3RlbmVyTG9jYWxBZGRyZXNzVHlwZSBvZiB1bmtub3duICgwKSBhbmQKKyAgICAgICAgICAgICAgIGEgdGNwTGlzdGVuZXJMb2NhbEFkZHJlc3Mgb2YgJydoIChhIHplcm8tbGVuZ3RoCisgICAgICAgICAgICAgICBvY3RldC1zdHJpbmcpLgorCisgICAgICAgICAgICAyLiBBbiBhcHBsaWNhdGlvbiB0aGF0IGlzIHdpbGxpbmcgdG8gYWNjZXB0IG9ubHkgSVB2NCBvcgorICAgICAgICAgICAgICAgSVB2NiBkYXRhZ3JhbXMgaXMgcmVwcmVzZW50ZWQgYnkgYQorICAgICAgICAgICAgICAgdGNwTGlzdGVuZXJMb2NhbEFkZHJlc3NUeXBlIG9mIHRoZSBhcHByb3ByaWF0ZSBhZGRyZXNzCisgICAgICAgICAgICAgICB0eXBlIGFuZCBhIHRjcExpc3RlbmVyTG9jYWxBZGRyZXNzIG9mICcwLjAuMC4wJyBvciAnOjonCisgICAgICAgICAgICAgICByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgICAgIDMuIEFuIGFwcGxpY2F0aW9uIHRoYXQgaXMgbGlzdGVuaW5nIGZvciBkYXRhIGRlc3RpbmVkCisgICAgICAgICAgICAgICBvbmx5IHRvIGEgc3BlY2lmaWMgSVAgYWRkcmVzcywgYnV0IGZyb20gYW55IHJlbW90ZQorICAgICAgICAgICAgICAgc3lzdGVtLCBpcyByZXByZXNlbnRlZCBieSBhIHRjcExpc3RlbmVyTG9jYWxBZGRyZXNzVHlwZQorICAgICAgICAgICAgICAgb2YgYW4gYXBwcm9wcmlhdGUgYWRkcmVzcyB0eXBlLCB3aXRoCisgICAgICAgICAgICAgICB0Y3BMaXN0ZW5lckxvY2FsQWRkcmVzcyBhcyB0aGUgc3BlY2lmaWMgbG9jYWwgYWRkcmVzcy4KKworICAgICAgICAgICAgTk9URTogVGhlIGFkZHJlc3MgdHlwZSBpbiB0aGlzIHRhYmxlIHJlcHJlc2VudHMgdGhlCisgICAgICAgICAgICBhZGRyZXNzIHR5cGUgdXNlZCBmb3IgdGhlIGNvbW11bmljYXRpb24sIGlycmVzcGVjdGl2ZQorICAgICAgICAgICAgb2YgdGhlIGhpZ2hlci1sYXllciBhYnN0cmFjdGlvbi4gIEZvciBleGFtcGxlLCBhbgorICAgICAgICAgICAgYXBwbGljYXRpb24gdXNpbmcgSVB2NiAnc29ja2V0cycgdG8gY29tbXVuaWNhdGUgdmlhCisgICAgICAgICAgICBJUHY0IGJldHdlZW4gOjpmZmZmOjEwLjAuMC4xIGFuZCA6OmZmZmY6MTAuMC4wLjIgd291bGQKKyAgICAgICAgICAgIHVzZSBJbmV0QWRkcmVzc1R5cGUgaXB2NCgxKSkuIgorICAgIDo6PSB7IHRjcCAyMCB9CisKK3RjcExpc3RlbmVyRW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFRjcExpc3RlbmVyRW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkEgY29uY2VwdHVhbCByb3cgb2YgdGhlIHRjcExpc3RlbmVyVGFibGUgY29udGFpbmluZworICAgICAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgYSBwYXJ0aWN1bGFyIFRDUCBsaXN0ZW5lci4iCisgICAgSU5ERVggICB7IHRjcExpc3RlbmVyTG9jYWxBZGRyZXNzVHlwZSwKKyAgICAgICAgICAgICAgdGNwTGlzdGVuZXJMb2NhbEFkZHJlc3MsCisgICAgICAgICAgICAgIHRjcExpc3RlbmVyTG9jYWxQb3J0IH0KKyAgICA6Oj0geyB0Y3BMaXN0ZW5lclRhYmxlIDEgfQorCitUY3BMaXN0ZW5lckVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgICAgIHRjcExpc3RlbmVyTG9jYWxBZGRyZXNzVHlwZSAgICAgICBJbmV0QWRkcmVzc1R5cGUsCisgICAgICAgIHRjcExpc3RlbmVyTG9jYWxBZGRyZXNzICAgICAgICAgICBJbmV0QWRkcmVzcywKKyAgICAgICAgdGNwTGlzdGVuZXJMb2NhbFBvcnQgICAgICAgICAgICAgIEluZXRQb3J0TnVtYmVyLAorICAgICAgICB0Y3BMaXN0ZW5lclByb2Nlc3MgICAgICAgICAgICAgICAgVW5zaWduZWQzMgorICAgIH0KKwordGNwTGlzdGVuZXJMb2NhbEFkZHJlc3NUeXBlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0QWRkcmVzc1R5cGUKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKworCisKKyAgICAgICAgICAgIlRoZSBhZGRyZXNzIHR5cGUgb2YgdGNwTGlzdGVuZXJMb2NhbEFkZHJlc3MuICBUaGUgdmFsdWUKKyAgICAgICAgICAgIHNob3VsZCBiZSB1bmtub3duICgwKSBpZiBjb25uZWN0aW9uIGluaXRpYXRpb25zIHRvIGFsbAorICAgICAgICAgICAgbG9jYWwgSVAgYWRkcmVzc2VzIGFyZSBhY2NlcHRlZC4iCisgICAgOjo9IHsgdGNwTGlzdGVuZXJFbnRyeSAxIH0KKwordGNwTGlzdGVuZXJMb2NhbEFkZHJlc3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRBZGRyZXNzCisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbG9jYWwgSVAgYWRkcmVzcyBmb3IgdGhpcyBUQ1AgY29ubmVjdGlvbi4KKworICAgICAgICAgICAgVGhlIHZhbHVlIG9mIHRoaXMgb2JqZWN0IGNhbiBiZSByZXByZXNlbnRlZCBpbiB0aHJlZQorICAgICAgICAgICAgcG9zc2libGUgd2F5cywgZGVwZW5kaW5nIG9uIHRoZSBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhlCisgICAgICAgICAgICBsaXN0ZW5pbmcgYXBwbGljYXRpb246CisKKyAgICAgICAgICAgIDEuIEZvciBhbiBhcHBsaWNhdGlvbiB3aWxsaW5nIHRvIGFjY2VwdCBib3RoIElQdjQgYW5kCisgICAgICAgICAgICAgICBJUHY2IGRhdGFncmFtcywgdGhlIHZhbHVlIG9mIHRoaXMgb2JqZWN0IG11c3QgYmUKKyAgICAgICAgICAgICAgICcnaCAoYSB6ZXJvLWxlbmd0aCBvY3RldC1zdHJpbmcpLCB3aXRoIHRoZSB2YWx1ZQorICAgICAgICAgICAgICAgb2YgdGhlIGNvcnJlc3BvbmRpbmcgdGNwTGlzdGVuZXJMb2NhbEFkZHJlc3NUeXBlCisgICAgICAgICAgICAgICBvYmplY3QgYmVpbmcgdW5rbm93biAoMCkuCisKKyAgICAgICAgICAgIDIuIEZvciBhbiBhcHBsaWNhdGlvbiB3aWxsaW5nIHRvIGFjY2VwdCBvbmx5IElQdjQgb3IKKyAgICAgICAgICAgICAgIElQdjYgZGF0YWdyYW1zLCB0aGUgdmFsdWUgb2YgdGhpcyBvYmplY3QgbXVzdCBiZQorICAgICAgICAgICAgICAgJzAuMC4wLjAnIG9yICc6OicgcmVzcGVjdGl2ZWx5LCB3aXRoCisgICAgICAgICAgICAgICB0Y3BMaXN0ZW5lckxvY2FsQWRkcmVzc1R5cGUgcmVwcmVzZW50aW5nIHRoZQorICAgICAgICAgICAgICAgYXBwcm9wcmlhdGUgYWRkcmVzcyB0eXBlLgorCisgICAgICAgICAgICAzLiBGb3IgYW4gYXBwbGljYXRpb24gd2hpY2ggaXMgbGlzdGVuaW5nIGZvciBkYXRhCisgICAgICAgICAgICAgICBkZXN0aW5lZCBvbmx5IHRvIGEgc3BlY2lmaWMgSVAgYWRkcmVzcywgdGhlIHZhbHVlCisgICAgICAgICAgICAgICBvZiB0aGlzIG9iamVjdCBpcyB0aGUgc3BlY2lmaWMgbG9jYWwgYWRkcmVzcywgd2l0aAorICAgICAgICAgICAgICAgdGNwTGlzdGVuZXJMb2NhbEFkZHJlc3NUeXBlIHJlcHJlc2VudGluZyB0aGUKKyAgICAgICAgICAgICAgIGFwcHJvcHJpYXRlIGFkZHJlc3MgdHlwZS4KKworICAgICAgICAgICAgQXMgdGhpcyBvYmplY3QgaXMgdXNlZCBpbiB0aGUgaW5kZXggZm9yIHRoZQorICAgICAgICAgICAgdGNwTGlzdGVuZXJUYWJsZSwgaW1wbGVtZW50b3JzIHNob3VsZCBiZQorICAgICAgICAgICAgY2FyZWZ1bCBub3QgdG8gY3JlYXRlIGVudHJpZXMgdGhhdCB3b3VsZCByZXN1bHQgaW4gT0lEcworICAgICAgICAgICAgd2l0aCBtb3JlIHRoYW4gMTI4IHN1YmlkZW50aWZpZXJzOyBvdGhlcndpc2UgdGhlIGluZm9ybWF0aW9uCisgICAgICAgICAgICBjYW5ub3QgYmUgYWNjZXNzZWQsIHVzaW5nIFNOTVB2MSwgU05NUHYyYywgb3IgU05NUHYzLiIKKyAgICA6Oj0geyB0Y3BMaXN0ZW5lckVudHJ5IDIgfQorCit0Y3BMaXN0ZW5lckxvY2FsUG9ydCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldFBvcnROdW1iZXIKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBsb2NhbCBwb3J0IG51bWJlciBmb3IgdGhpcyBUQ1AgY29ubmVjdGlvbi4iCisgICAgOjo9IHsgdGNwTGlzdGVuZXJFbnRyeSAzIH0KKworCisKK3RjcExpc3RlbmVyUHJvY2VzcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVW5zaWduZWQzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBzeXN0ZW0ncyBwcm9jZXNzIElEIGZvciB0aGUgcHJvY2VzcyBhc3NvY2lhdGVkIHdpdGgKKyAgICAgICAgICAgIHRoaXMgbGlzdGVuZXIsIG9yIHplcm8gaWYgdGhlcmUgaXMgbm8gc3VjaCBwcm9jZXNzLiAgVGhpcworICAgICAgICAgICAgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgdGhlIHNhbWUgYXMgSE9TVC1SRVNPVVJDRVMtTUlCOjoKKyAgICAgICAgICAgIGhyU1dSdW5JbmRleCBvciBTWVNBUFBMLU1JQjo6c3lzQXBwbEVsbXRSdW5JbmRleCBmb3Igc29tZQorICAgICAgICAgICAgcm93IGluIHRoZSBhcHByb3ByaWF0ZSB0YWJsZXMuIgorICAgIDo6PSB7IHRjcExpc3RlbmVyRW50cnkgNCB9CisKKworLS0gVGhlIGRlcHJlY2F0ZWQgVENQIENvbm5lY3Rpb24gdGFibGUKKwordGNwQ29ublRhYmxlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBTRVFVRU5DRSBPRiBUY3BDb25uRW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkEgdGFibGUgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCBleGlzdGluZyBJUHY0LXNwZWNpZmljCisgICAgICAgICAgICBUQ1AgY29ubmVjdGlvbnMgb3IgbGlzdGVuZXJzLiAgVGhpcyB0YWJsZSBoYXMgYmVlbgorICAgICAgICAgICAgZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB0aGUgdmVyc2lvbiBuZXV0cmFsCisgICAgICAgICAgICB0Y3BDb25uZWN0aW9uVGFibGUuIgorICAgIDo6PSB7IHRjcCAxMyB9CisKK3RjcENvbm5FbnRyeSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVGNwQ29ubkVudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJBIGNvbmNlcHR1YWwgcm93IG9mIHRoZSB0Y3BDb25uVGFibGUgY29udGFpbmluZyBpbmZvcm1hdGlvbgorICAgICAgICAgICAgYWJvdXQgYSBwYXJ0aWN1bGFyIGN1cnJlbnQgSVB2NCBUQ1AgY29ubmVjdGlvbi4gIEVhY2ggcm93CisgICAgICAgICAgICBvZiB0aGlzIHRhYmxlIGlzIHRyYW5zaWVudCBpbiB0aGF0IGl0IGNlYXNlcyB0byBleGlzdCB3aGVuCisgICAgICAgICAgICAob3Igc29vbiBhZnRlcikgdGhlIGNvbm5lY3Rpb24gbWFrZXMgdGhlIHRyYW5zaXRpb24gdG8gdGhlCisgICAgICAgICAgICBDTE9TRUQgc3RhdGUuIgorICAgIElOREVYICAgeyB0Y3BDb25uTG9jYWxBZGRyZXNzLAorICAgICAgICAgICAgICB0Y3BDb25uTG9jYWxQb3J0LAorICAgICAgICAgICAgICB0Y3BDb25uUmVtQWRkcmVzcywKKyAgICAgICAgICAgICAgdGNwQ29ublJlbVBvcnQgfQorICAgIDo6PSB7IHRjcENvbm5UYWJsZSAxIH0KKworVGNwQ29ubkVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgICAgIHRjcENvbm5TdGF0ZSAgICAgICAgIElOVEVHRVIsCisgICAgICAgIHRjcENvbm5Mb2NhbEFkZHJlc3MgIElwQWRkcmVzcywKKyAgICAgICAgdGNwQ29ubkxvY2FsUG9ydCAgICAgSW50ZWdlcjMyLAorICAgICAgICB0Y3BDb25uUmVtQWRkcmVzcyAgICBJcEFkZHJlc3MsCisgICAgICAgIHRjcENvbm5SZW1Qb3J0ICAgICAgIEludGVnZXIzMgorCisKKworICAgIH0KKwordGNwQ29ublN0YXRlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJTlRFR0VSIHsKKyAgICAgICAgICAgICAgICAgICAgY2xvc2VkKDEpLAorICAgICAgICAgICAgICAgICAgICBsaXN0ZW4oMiksCisgICAgICAgICAgICAgICAgICAgIHN5blNlbnQoMyksCisgICAgICAgICAgICAgICAgICAgIHN5blJlY2VpdmVkKDQpLAorICAgICAgICAgICAgICAgICAgICBlc3RhYmxpc2hlZCg1KSwKKyAgICAgICAgICAgICAgICAgICAgZmluV2FpdDEoNiksCisgICAgICAgICAgICAgICAgICAgIGZpbldhaXQyKDcpLAorICAgICAgICAgICAgICAgICAgICBjbG9zZVdhaXQoOCksCisgICAgICAgICAgICAgICAgICAgIGxhc3RBY2soOSksCisgICAgICAgICAgICAgICAgICAgIGNsb3NpbmcoMTApLAorICAgICAgICAgICAgICAgICAgICB0aW1lV2FpdCgxMSksCisgICAgICAgICAgICAgICAgICAgIGRlbGV0ZVRDQigxMikKKyAgICAgICAgICAgICAgICB9CisgICAgTUFYLUFDQ0VTUyByZWFkLXdyaXRlCisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBzdGF0ZSBvZiB0aGlzIFRDUCBjb25uZWN0aW9uLgorCisgICAgICAgICAgICBUaGUgb25seSB2YWx1ZSB0aGF0IG1heSBiZSBzZXQgYnkgYSBtYW5hZ2VtZW50IHN0YXRpb24gaXMKKyAgICAgICAgICAgIGRlbGV0ZVRDQigxMikuICBBY2NvcmRpbmdseSwgaXQgaXMgYXBwcm9wcmlhdGUgZm9yIGFuIGFnZW50CisgICAgICAgICAgICB0byByZXR1cm4gYSBgYmFkVmFsdWUnIHJlc3BvbnNlIGlmIGEgbWFuYWdlbWVudCBzdGF0aW9uCisgICAgICAgICAgICBhdHRlbXB0cyB0byBzZXQgdGhpcyBvYmplY3QgdG8gYW55IG90aGVyIHZhbHVlLgorCisgICAgICAgICAgICBJZiBhIG1hbmFnZW1lbnQgc3RhdGlvbiBzZXRzIHRoaXMgb2JqZWN0IHRvIHRoZSB2YWx1ZQorICAgICAgICAgICAgZGVsZXRlVENCKDEyKSwgdGhlbiB0aGUgVENCIChhcyBkZWZpbmVkIGluIFtSRkM3OTNdKSBvZgorICAgICAgICAgICAgdGhlIGNvcnJlc3BvbmRpbmcgY29ubmVjdGlvbiBvbiB0aGUgbWFuYWdlZCBub2RlIGlzCisgICAgICAgICAgICBkZWxldGVkLCByZXN1bHRpbmcgaW4gaW1tZWRpYXRlIHRlcm1pbmF0aW9uIG9mIHRoZQorICAgICAgICAgICAgY29ubmVjdGlvbi4KKworICAgICAgICAgICAgQXMgYW4gaW1wbGVtZW50YXRpb24tc3BlY2lmaWMgb3B0aW9uLCBhIFJTVCBzZWdtZW50IG1heSBiZQorICAgICAgICAgICAgc2VudCBmcm9tIHRoZSBtYW5hZ2VkIG5vZGUgdG8gdGhlIG90aGVyIFRDUCBlbmRwb2ludCAobm90ZSwKKyAgICAgICAgICAgIGhvd2V2ZXIsIHRoYXQgUlNUIHNlZ21lbnRzIGFyZSBub3Qgc2VudCByZWxpYWJseSkuIgorICAgIDo6PSB7IHRjcENvbm5FbnRyeSAxIH0KKwordGNwQ29ubkxvY2FsQWRkcmVzcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSXBBZGRyZXNzCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGxvY2FsIElQIGFkZHJlc3MgZm9yIHRoaXMgVENQIGNvbm5lY3Rpb24uICBJbiB0aGUgY2FzZQorICAgICAgICAgICAgb2YgYSBjb25uZWN0aW9uIGluIHRoZSBsaXN0ZW4gc3RhdGUgd2lsbGluZyB0bworICAgICAgICAgICAgYWNjZXB0IGNvbm5lY3Rpb25zIGZvciBhbnkgSVAgaW50ZXJmYWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUKKyAgICAgICAgICAgIG5vZGUsIHRoZSB2YWx1ZSAwLjAuMC4wIGlzIHVzZWQuIgorICAgIDo6PSB7IHRjcENvbm5FbnRyeSAyIH0KKworCisKK3RjcENvbm5Mb2NhbFBvcnQgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEludGVnZXIzMiAoMC4uNjU1MzUpCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGxvY2FsIHBvcnQgbnVtYmVyIGZvciB0aGlzIFRDUCBjb25uZWN0aW9uLiIKKyAgICA6Oj0geyB0Y3BDb25uRW50cnkgMyB9CisKK3RjcENvbm5SZW1BZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJcEFkZHJlc3MKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgcmVtb3RlIElQIGFkZHJlc3MgZm9yIHRoaXMgVENQIGNvbm5lY3Rpb24uIgorICAgIDo6PSB7IHRjcENvbm5FbnRyeSA0IH0KKwordGNwQ29ublJlbVBvcnQgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEludGVnZXIzMiAoMC4uNjU1MzUpCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHJlbW90ZSBwb3J0IG51bWJlciBmb3IgdGhpcyBUQ1AgY29ubmVjdGlvbi4iCisgICAgOjo9IHsgdGNwQ29ubkVudHJ5IDUgfQorCistLSBjb25mb3JtYW5jZSBpbmZvcm1hdGlvbgorCit0Y3BNSUJDb25mb3JtYW5jZSBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyB0Y3BNSUIgMiB9CisKK3RjcE1JQkNvbXBsaWFuY2VzIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IHRjcE1JQkNvbmZvcm1hbmNlIDEgfQordGNwTUlCR3JvdXBzICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgdGNwTUlCQ29uZm9ybWFuY2UgMiB9CisKKy0tIGNvbXBsaWFuY2Ugc3RhdGVtZW50cworCit0Y3BNSUJDb21wbGlhbmNlMiBNT0RVTEUtQ09NUExJQU5DRQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgY29tcGxpYW5jZSBzdGF0ZW1lbnQgZm9yIHN5c3RlbXMgdGhhdCBpbXBsZW1lbnQgVENQLgorCisgICAgICAgICAgICBBIG51bWJlciBvZiBJTkRFWCBvYmplY3RzIGNhbm5vdCBiZQorICAgICAgICAgICAgcmVwcmVzZW50ZWQgaW4gdGhlIGZvcm0gb2YgT0JKRUNUIGNsYXVzZXMgaW4gU01JdjIgYnV0CisgICAgICAgICAgICBoYXZlIHRoZSBmb2xsb3dpbmcgY29tcGxpYW5jZSByZXF1aXJlbWVudHMsCisgICAgICAgICAgICBleHByZXNzZWQgaW4gT0JKRUNUIGNsYXVzZSBmb3JtIGluIHRoaXMgZGVzY3JpcHRpb24KKyAgICAgICAgICAgIGNsYXVzZToKKworICAgICAgICAgICAgLS0gT0JKRUNUICAgICAgdGNwQ29ubmVjdGlvbkxvY2FsQWRkcmVzc1R5cGUKKyAgICAgICAgICAgIC0tIFNZTlRBWCAgICAgIEluZXRBZGRyZXNzVHlwZSB7IGlwdjQoMSksIGlwdjYoMikgfQorICAgICAgICAgICAgLS0gREVTQ1JJUFRJT04KKyAgICAgICAgICAgIC0tICAgICBUaGlzIE1JQiByZXF1aXJlcyBzdXBwb3J0IGZvciBvbmx5IGdsb2JhbCBJUHY0CisKKworCisgICAgICAgICAgICAtLSAgICAgYW5kIElQdjYgYWRkcmVzcyB0eXBlcy4KKyAgICAgICAgICAgIC0tCisgICAgICAgICAgICAtLSBPQkpFQ1QgICAgICB0Y3BDb25uZWN0aW9uUmVtQWRkcmVzc1R5cGUKKyAgICAgICAgICAgIC0tIFNZTlRBWCAgICAgIEluZXRBZGRyZXNzVHlwZSB7IGlwdjQoMSksIGlwdjYoMikgfQorICAgICAgICAgICAgLS0gREVTQ1JJUFRJT04KKyAgICAgICAgICAgIC0tICAgICBUaGlzIE1JQiByZXF1aXJlcyBzdXBwb3J0IGZvciBvbmx5IGdsb2JhbCBJUHY0CisgICAgICAgICAgICAtLSAgICAgYW5kIElQdjYgYWRkcmVzcyB0eXBlcy4KKyAgICAgICAgICAgIC0tCisgICAgICAgICAgICAtLSBPQkpFQ1QgICAgICB0Y3BMaXN0ZW5lckxvY2FsQWRkcmVzc1R5cGUKKyAgICAgICAgICAgIC0tIFNZTlRBWCAgICAgIEluZXRBZGRyZXNzVHlwZSB7IHVua25vd24oMCksIGlwdjQoMSksCisgICAgICAgICAgICAtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcHY2KDIpIH0KKyAgICAgICAgICAgIC0tIERFU0NSSVBUSU9OCisgICAgICAgICAgICAtLSAgICAgVGhpcyBNSUIgcmVxdWlyZXMgc3VwcG9ydCBmb3Igb25seSBnbG9iYWwgSVB2NAorICAgICAgICAgICAgLS0gICAgIGFuZCBJUHY2IGFkZHJlc3MgdHlwZXMuICBUaGUgdHlwZSB1bmtub3duIGFsc28KKyAgICAgICAgICAgIC0tICAgICBuZWVkcyB0byBiZSBzdXBwb3J0ZWQgdG8gaWRlbnRpZnkgYSBzcGVjaWFsCisgICAgICAgICAgICAtLSAgICAgY2FzZSBpbiB0aGUgbGlzdGVuZXIgdGFibGU6IGEgbGlzdGVuIHVzaW5nCisgICAgICAgICAgICAtLSAgICAgYm90aCBJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcyBvbiB0aGUgZGV2aWNlLgorICAgICAgICAgICAgLS0KKyAgICAgICAgICAgIgorICAgIE1PRFVMRSAgLS0gdGhpcyBtb2R1bGUKKyAgICAgICAgTUFOREFUT1JZLUdST1VQUyB7IHRjcEJhc2VHcm91cCwgdGNwQ29ubmVjdGlvbkdyb3VwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGNwTGlzdGVuZXJHcm91cCB9CisgICAgICAgIEdST1VQICAgICAgIHRjcEhDR3JvdXAKKyAgICAgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBzeXN0ZW1zIHRoYXQgYXJlIGNhcGFibGUKKyAgICAgICAgICAgIG9mIHJlY2VpdmluZyBvciB0cmFuc21pdHRpbmcgbW9yZSB0aGFuIDEgbWlsbGlvbiBUQ1AKKyAgICAgICAgICAgIHNlZ21lbnRzIHBlciBzZWNvbmQuICAxIG1pbGxpb24gc2VnbWVudHMgcGVyIHNlY29uZCB3aWxsCisgICAgICAgICAgICBjYXVzZSBhIENvdW50ZXIzMiB0byB3cmFwIGluIGp1c3Qgb3ZlciBhbiBob3VyLiIKKyAgICAgICAgT0JKRUNUICAgICAgdGNwQ29ubmVjdGlvblN0YXRlCisgICAgICAgIFNZTlRBWCAgICAgIElOVEVHRVIgeyBjbG9zZWQoMSksIGxpc3RlbigyKSwgc3luU2VudCgzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5blJlY2VpdmVkKDQpLCBlc3RhYmxpc2hlZCg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbldhaXQxKDYpLCBmaW5XYWl0Mig3KSwgY2xvc2VXYWl0KDgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEFjayg5KSwgY2xvc2luZygxMCksIHRpbWVXYWl0KDExKSB9CisgICAgICAgIE1JTi1BQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAiV3JpdGUgYWNjZXNzIGlzIG5vdCByZXF1aXJlZCwgbm9yIGlzIHN1cHBvcnQgZm9yIHRoZSB2YWx1ZQorICAgICAgICAgICAgZGVsZXRlVENCICgxMikuIgorICAgIDo6PSB7IHRjcE1JQkNvbXBsaWFuY2VzIDIgfQorCit0Y3BNSUJDb21wbGlhbmNlIE1PRFVMRS1DT01QTElBTkNFCisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBjb21wbGlhbmNlIHN0YXRlbWVudCBmb3IgSVB2NC1vbmx5IHN5c3RlbXMgdGhhdAorICAgICAgICAgICAgaW1wbGVtZW50IFRDUC4gIEluIG9yZGVyIHRvIGJlIElQIHZlcnNpb24gaW5kZXBlbmRlbnQsIHRoaXMKKyAgICAgICAgICAgIGNvbXBsaWFuY2Ugc3RhdGVtZW50IGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YKKyAgICAgICAgICAgIHRjcE1JQkNvbXBsaWFuY2UyLiAgSG93ZXZlciwgYWdlbnRzIGFyZSBzdGlsbCBlbmNvdXJhZ2VkCisgICAgICAgICAgICB0byBpbXBsZW1lbnQgdGhlc2Ugb2JqZWN0cyBpbiBvcmRlciB0byBpbnRlcm9wZXJhdGUgd2l0aAorICAgICAgICAgICAgdGhlIGRlcGxveWVkIGJhc2Ugb2YgbWFuYWdlcnMuIgorCisKKworICAgIE1PRFVMRSAgLS0gdGhpcyBtb2R1bGUKKyAgICAgICAgTUFOREFUT1JZLUdST1VQUyB7IHRjcEdyb3VwIH0KKyAgICAgICAgT0JKRUNUICAgICAgdGNwQ29ublN0YXRlCisgICAgICAgIE1JTi1BQ0NFU1MgIHJlYWQtb25seQorICAgICAgICBERVNDUklQVElPTgorICAgICAgICAgICAiV3JpdGUgYWNjZXNzIGlzIG5vdCByZXF1aXJlZC4iCisgICAgOjo9IHsgdGNwTUlCQ29tcGxpYW5jZXMgMSB9CisKKworLS0gdW5pdHMgb2YgY29uZm9ybWFuY2UKKwordGNwR3JvdXAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyAgIHsgdGNwUnRvQWxnb3JpdGhtLCB0Y3BSdG9NaW4sIHRjcFJ0b01heCwKKyAgICAgICAgICAgICAgICB0Y3BNYXhDb25uLCB0Y3BBY3RpdmVPcGVucywKKyAgICAgICAgICAgICAgICB0Y3BQYXNzaXZlT3BlbnMsIHRjcEF0dGVtcHRGYWlscywKKyAgICAgICAgICAgICAgICB0Y3BFc3RhYlJlc2V0cywgdGNwQ3VyckVzdGFiLCB0Y3BJblNlZ3MsCisgICAgICAgICAgICAgICAgdGNwT3V0U2VncywgdGNwUmV0cmFuc1NlZ3MsIHRjcENvbm5TdGF0ZSwKKyAgICAgICAgICAgICAgICB0Y3BDb25uTG9jYWxBZGRyZXNzLCB0Y3BDb25uTG9jYWxQb3J0LAorICAgICAgICAgICAgICAgIHRjcENvbm5SZW1BZGRyZXNzLCB0Y3BDb25uUmVtUG9ydCwKKyAgICAgICAgICAgICAgICB0Y3BJbkVycnMsIHRjcE91dFJzdHMgfQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdGNwIGdyb3VwIG9mIG9iamVjdHMgcHJvdmlkaW5nIGZvciBtYW5hZ2VtZW50IG9mIFRDUAorICAgICAgICAgICAgZW50aXRpZXMuIgorICAgIDo6PSB7IHRjcE1JQkdyb3VwcyAxIH0KKwordGNwQmFzZUdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IHRjcFJ0b0FsZ29yaXRobSwgdGNwUnRvTWluLCB0Y3BSdG9NYXgsCisgICAgICAgICAgICAgICAgdGNwTWF4Q29ubiwgdGNwQWN0aXZlT3BlbnMsCisgICAgICAgICAgICAgICAgdGNwUGFzc2l2ZU9wZW5zLCB0Y3BBdHRlbXB0RmFpbHMsCisgICAgICAgICAgICAgICAgdGNwRXN0YWJSZXNldHMsIHRjcEN1cnJFc3RhYiwgdGNwSW5TZWdzLAorICAgICAgICAgICAgICAgIHRjcE91dFNlZ3MsIHRjcFJldHJhbnNTZWdzLAorICAgICAgICAgICAgICAgIHRjcEluRXJycywgdGNwT3V0UnN0cyB9CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBncm91cCBvZiBjb3VudGVycyBjb21tb24gdG8gVENQIGVudGl0aWVzLiIKKyAgICA6Oj0geyB0Y3BNSUJHcm91cHMgMiB9CisKK3RjcENvbm5lY3Rpb25Hcm91cCBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTICAgIHsgdGNwQ29ubmVjdGlvblN0YXRlLCB0Y3BDb25uZWN0aW9uUHJvY2VzcyB9CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBncm91cCBwcm92aWRlcyBnZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IFRDUAorICAgICAgICAgICAgY29ubmVjdGlvbnMuIgorICAgIDo6PSB7IHRjcE1JQkdyb3VwcyAzIH0KKwordGNwTGlzdGVuZXJHcm91cCBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTICAgIHsgdGNwTGlzdGVuZXJQcm9jZXNzIH0KKworCisKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhpcyBncm91cCBoYXMgb2JqZWN0cyBwcm92aWRpbmcgZ2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91dAorICAgICAgICAgICAgVENQIGxpc3RlbmVycy4iCisgICAgOjo9IHsgdGNwTUlCR3JvdXBzIDQgfQorCit0Y3BIQ0dyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICAgeyB0Y3BIQ0luU2VncywgdGNwSENPdXRTZWdzIH0KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGdyb3VwIG9mIG9iamVjdHMgcHJvdmlkaW5nIGZvciBjb3VudGVycyBvZiBoaWdoIHNwZWVkCisgICAgICAgICAgICBUQ1AgaW1wbGVtZW50YXRpb25zLiIKKyAgICA6Oj0geyB0Y3BNSUJHcm91cHMgNSB9CisKK0VORApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1VEUC1NSUIgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL01pYnMvVURQLU1JQgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTQ3YjgxCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9NaWJzL1VEUC1NSUIKQEAgLTAsMCArMSw1NzkgQEAKK1VEUC1NSUIgREVGSU5JVElPTlMgOjo9IEJFR0lOCisKK0lNUE9SVFMKKyAgICBNT0RVTEUtSURFTlRJVFksIE9CSkVDVC1UWVBFLCBJbnRlZ2VyMzIsIENvdW50ZXIzMiwgQ291bnRlcjY0LAorICAgIFVuc2lnbmVkMzIsIElwQWRkcmVzcywgbWliLTIgICAgICAgRlJPTSBTTk1QdjItU01JCisgICAgTU9EVUxFLUNPTVBMSUFOQ0UsIE9CSkVDVC1HUk9VUCAgICBGUk9NIFNOTVB2Mi1DT05GCisgICAgSW5ldEFkZHJlc3MsIEluZXRBZGRyZXNzVHlwZSwKKyAgICBJbmV0UG9ydE51bWJlciAgICAgICAgICAgICAgICAgICAgIEZST00gSU5FVC1BRERSRVNTLU1JQjsKKwordWRwTUlCIE1PRFVMRS1JREVOVElUWQorICAgIExBU1QtVVBEQVRFRCAiMjAwNTA1MjAwMDAwWiIgIC0tIE1heSAyMCwgMjAwNQorICAgIE9SR0FOSVpBVElPTgorICAgICAgICAgICAiSUVURiBJUHY2IFdvcmtpbmcgR3JvdXAKKyAgICAgICAgICAgIGh0dHA6Ly93d3cuaWV0Zi5vcmcvaHRtbC5jaGFydGVycy9pcHY2LWNoYXJ0ZXIuaHRtbCIKKyAgICBDT05UQUNULUlORk8KKyAgICAgICAgICAgIkJpbGwgRmVubmVyIChlZGl0b3IpCisKKyAgICAgICAgICAgIEFUJlQgTGFicyAtLSBSZXNlYXJjaAorICAgICAgICAgICAgNzUgV2lsbG93IFJkLgorICAgICAgICAgICAgTWVubG8gUGFyaywgQ0EgOTQwMjUKKworICAgICAgICAgICAgUGhvbmU6ICsxIDY1MCAzMzAtNzg5MworICAgICAgICAgICAgRW1haWw6IDxmZW5uZXJAcmVzZWFyY2guYXR0LmNvbT4KKworICAgICAgICAgICAgSm9obiBGbGljayAoZWRpdG9yKQorCisgICAgICAgICAgICBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorICAgICAgICAgICAgODAwMCBGb290aGlsbHMgQmx2ZC4gTS9TIDU1NTcKKyAgICAgICAgICAgIFJvc2V2aWxsZSwgQ0EgOTU3NDcKKworICAgICAgICAgICAgUGhvbmU6ICsxIDkxNiA3ODUgNDAxOAorICAgICAgICAgICAgRW1haWw6IDxqb2huLmZsaWNrQGhwLmNvbT4KKworICAgICAgICAgICAgU2VuZCBjb21tZW50cyB0byA8aXB2NkBpZXRmLm9yZz4iCisKKworCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBNSUIgbW9kdWxlIGZvciBtYW5hZ2luZyBVRFAgaW1wbGVtZW50YXRpb25zLgorICAgICAgICAgICAgQ29weXJpZ2h0IChDKSBUaGUgSW50ZXJuZXQgU29jaWV0eSAoMjAwNSkuICBUaGlzCisgICAgICAgICAgICB2ZXJzaW9uIG9mIHRoaXMgTUlCIG1vZHVsZSBpcyBwYXJ0IG9mIFJGQyA0MTEzOworICAgICAgICAgICAgc2VlIHRoZSBSRkMgaXRzZWxmIGZvciBmdWxsIGxlZ2FsIG5vdGljZXMuIgorICAgIFJFVklTSU9OICAgICAgIjIwMDUwNTIwMDAwMFoiICAtLSBNYXkgMjAsIDIwMDUKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiSVAgdmVyc2lvbiBuZXV0cmFsIHJldmlzaW9uLCBpbmNvcnBvcmF0aW5nIHRoZQorICAgICAgICAgICAgZm9sbG93aW5nIHJldmlzaW9uczoKKworICAgICAgICAgICAgLSBBZGRlZCB1ZHBIQ0luRGF0YWdyYW1zIGFuZCB1ZHBIQ091dERhdGFncmFtcyBpbiBvcmRlcgorICAgICAgICAgICAgICB0byBwcm92aWRlIGhpZ2gtY2FwYWNpdHkgY291bnRlcnMgZm9yIGZhc3QgbmV0d29ya3MuCisgICAgICAgICAgICAtIEFkZGVkIHRleHQgdG8gdGhlIGRlc2NyaXB0aW9ucyBvZiBhbGwgY291bnRlciBvYmplY3RzCisgICAgICAgICAgICAgIHRvIGluZGljYXRlIGhvdyBkaXNjb250aW51aXRpZXMgYXJlIGRldGVjdGVkLgorICAgICAgICAgICAgLSBEZXByZWNhdGVkIHRoZSBJUHY0LXNwZWNpZmljIHVkcFRhYmxlIGFuZCByZXBsYWNlZCBpdAorICAgICAgICAgICAgICB3aXRoIHRoZSB2ZXJzaW9uIG5ldXRyYWwgdWRwRW5kcG9pbnRUYWJsZS4gIFRoaXMKKyAgICAgICAgICAgICAgdGFibGUgaW5jbHVkZXMgc3VwcG9ydCBmb3IgY29ubmVjdGVkIFVEUCBlbmRwb2ludHMKKyAgICAgICAgICAgICAgYW5kIHN1cHBvcnQgZm9yIGlkZW50aWZpY2F0aW9uIG9mIHRoZSBvcGVyYXRpbmcKKyAgICAgICAgICAgICAgc3lzdGVtIHByb2Nlc3MgYXNzb2NpYXRlZCB3aXRoIGEgVURQIGVuZHBvaW50LgorICAgICAgICAgICAgLSBEZXByZWNhdGVkIHRoZSB1ZHBHcm91cCBhbmQgcmVwbGFjZWQgaXQgd2l0aCBvYmplY3QKKyAgICAgICAgICAgICAgZ3JvdXBzIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBzZXQgb2Ygb2JqZWN0cy4KKyAgICAgICAgICAgIC0gRGVwcmVjYXRlZCB1ZHBNSUJDb21wbGlhbmNlIGFuZCByZXBsYWNlZCBpdCB3aXRoCisgICAgICAgICAgICAgIHVkcE1JQkNvbXBsaWFuY2UyLCB3aGljaCBpbmNsdWRlcyB0aGUgY29tcGxpYW5jZQorICAgICAgICAgICAgICBpbmZvcm1hdGlvbiBmb3IgdGhlIG5ldyBvYmplY3QgZ3JvdXBzLgorCisgICAgICAgICAgICBUaGlzIHZlcnNpb24gcHVibGlzaGVkIGFzIFJGQyA0MTEzLiIKKyAgICBSRVZJU0lPTiAgICAgICIxOTk0MTEwMTAwMDBaIiAgICAtLSBOb3ZlbWJlciAxLCAxOTk0CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkluaXRpYWwgU01JdjIgdmVyc2lvbiwgcHVibGlzaGVkIGFzIFJGQyAyMDEzLiIKKyAgICBSRVZJU0lPTiAgICAgICIxOTkxMDMzMTAwMDBaIiAgICAtLSBNYXJjaCAzMSwgMTk5MQorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgaW5pdGlhbCByZXZpc2lvbiBvZiB0aGlzIE1JQiBtb2R1bGUgd2FzIHBhcnQgb2YKKyAgICAgICAgICAgIE1JQi1JSSwgcHVibGlzaGVkIGFzIFJGQyAxMjEzLiIKKyAgICA6Oj0geyBtaWItMiA1MCB9CisKKy0tIHRoZSBVRFAgZ3JvdXAKKwordWRwICAgICAgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgbWliLTIgNyB9CisKK3VkcEluRGF0YWdyYW1zIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIFVEUCBkYXRhZ3JhbXMgZGVsaXZlcmVkIHRvIFVEUAorICAgICAgICAgICAgdXNlcnMuCisKKworCisKKworICAgICAgICAgICAgRGlzY29udGludWl0aWVzIGluIHRoZSB2YWx1ZSBvZiB0aGlzIGNvdW50ZXIgY2FuIG9jY3VyCisgICAgICAgICAgICBhdCByZS1pbml0aWFsaXphdGlvbiBvZiB0aGUgbWFuYWdlbWVudCBzeXN0ZW0sIGFuZCBhdAorICAgICAgICAgICAgb3RoZXIgdGltZXMgYXMgaW5kaWNhdGVkIGJ5IGRpc2NvbnRpbnVpdGllcyBpbiB0aGUKKyAgICAgICAgICAgIHZhbHVlIG9mIHN5c1VwVGltZS4iCisgICAgOjo9IHsgdWRwIDEgfQorCit1ZHBOb1BvcnRzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBDb3VudGVyMzIKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgdG90YWwgbnVtYmVyIG9mIHJlY2VpdmVkIFVEUCBkYXRhZ3JhbXMgZm9yIHdoaWNoCisgICAgICAgICAgICB0aGVyZSB3YXMgbm8gYXBwbGljYXRpb24gYXQgdGhlIGRlc3RpbmF0aW9uIHBvcnQuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1cgorICAgICAgICAgICAgYXQgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQKKyAgICAgICAgICAgIG90aGVyIHRpbWVzIGFzIGluZGljYXRlZCBieSBkaXNjb250aW51aXRpZXMgaW4gdGhlCisgICAgICAgICAgICB2YWx1ZSBvZiBzeXNVcFRpbWUuIgorICAgIDo6PSB7IHVkcCAyIH0KKwordWRwSW5FcnJvcnMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXIzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBudW1iZXIgb2YgcmVjZWl2ZWQgVURQIGRhdGFncmFtcyB0aGF0IGNvdWxkIG5vdCBiZQorICAgICAgICAgICAgZGVsaXZlcmVkIGZvciByZWFzb25zIG90aGVyIHRoYW4gdGhlIGxhY2sgb2YgYW4KKyAgICAgICAgICAgIGFwcGxpY2F0aW9uIGF0IHRoZSBkZXN0aW5hdGlvbiBwb3J0LgorCisgICAgICAgICAgICBEaXNjb250aW51aXRpZXMgaW4gdGhlIHZhbHVlIG9mIHRoaXMgY291bnRlciBjYW4gb2NjdXIKKyAgICAgICAgICAgIGF0IHJlLWluaXRpYWxpemF0aW9uIG9mIHRoZSBtYW5hZ2VtZW50IHN5c3RlbSwgYW5kIGF0CisgICAgICAgICAgICBvdGhlciB0aW1lcyBhcyBpbmRpY2F0ZWQgYnkgZGlzY29udGludWl0aWVzIGluIHRoZQorICAgICAgICAgICAgdmFsdWUgb2Ygc3lzVXBUaW1lLiIKKyAgICA6Oj0geyB1ZHAgMyB9CisKK3VkcE91dERhdGFncmFtcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgQ291bnRlcjMyCisgICAgTUFYLUFDQ0VTUyByZWFkLW9ubHkKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIHRvdGFsIG51bWJlciBvZiBVRFAgZGF0YWdyYW1zIHNlbnQgZnJvbSB0aGlzCisgICAgICAgICAgICBlbnRpdHkuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1cgorICAgICAgICAgICAgYXQgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQKKyAgICAgICAgICAgIG90aGVyIHRpbWVzIGFzIGluZGljYXRlZCBieSBkaXNjb250aW51aXRpZXMgaW4gdGhlCisgICAgICAgICAgICB2YWx1ZSBvZiBzeXNVcFRpbWUuIgorICAgIDo6PSB7IHVkcCA0IH0KKworCisKK3VkcEhDSW5EYXRhZ3JhbXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgVURQIGRhdGFncmFtcyBkZWxpdmVyZWQgdG8gVURQCisgICAgICAgICAgICB1c2VycywgZm9yIGRldmljZXMgdGhhdCBjYW4gcmVjZWl2ZSBtb3JlIHRoYW4gMQorICAgICAgICAgICAgbWlsbGlvbiBVRFAgZGF0YWdyYW1zIHBlciBzZWNvbmQuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1cgorICAgICAgICAgICAgYXQgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQKKyAgICAgICAgICAgIG90aGVyIHRpbWVzIGFzIGluZGljYXRlZCBieSBkaXNjb250aW51aXRpZXMgaW4gdGhlCisgICAgICAgICAgICB2YWx1ZSBvZiBzeXNVcFRpbWUuIgorICAgIDo6PSB7IHVkcCA4IH0KKwordWRwSENPdXREYXRhZ3JhbXMgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIENvdW50ZXI2NAorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSB0b3RhbCBudW1iZXIgb2YgVURQIGRhdGFncmFtcyBzZW50IGZyb20gdGhpcworICAgICAgICAgICAgZW50aXR5LCBmb3IgZGV2aWNlcyB0aGF0IGNhbiB0cmFuc21pdCBtb3JlIHRoYW4gMQorICAgICAgICAgICAgbWlsbGlvbiBVRFAgZGF0YWdyYW1zIHBlciBzZWNvbmQuCisKKyAgICAgICAgICAgIERpc2NvbnRpbnVpdGllcyBpbiB0aGUgdmFsdWUgb2YgdGhpcyBjb3VudGVyIGNhbiBvY2N1cgorICAgICAgICAgICAgYXQgcmUtaW5pdGlhbGl6YXRpb24gb2YgdGhlIG1hbmFnZW1lbnQgc3lzdGVtLCBhbmQgYXQKKyAgICAgICAgICAgIG90aGVyIHRpbWVzIGFzIGluZGljYXRlZCBieSBkaXNjb250aW51aXRpZXMgaW4gdGhlCisgICAgICAgICAgICB2YWx1ZSBvZiBzeXNVcFRpbWUuIgorICAgIDo6PSB7IHVkcCA5IH0KKworLS0KKy0tIHsgdWRwIDYgfSB3YXMgZGVmaW5lZCBhcyB0aGUgaXB2NlVkcFRhYmxlIGluIFJGQzI0NTQncworLS0gSVBWNi1VRFAtTUlCLiAgVGhpcyBSRkMgb2Jzb2xldGVzIFJGQyAyNDU0LCBzbyB7IHVkcCA2IH0gaXMKKy0tIG9ic29sZXRlZC4KKy0tCisKKy0tIFRoZSBVRFAgIkVuZHBvaW50IiB0YWJsZS4KKwordWRwRW5kcG9pbnRUYWJsZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgU0VRVUVOQ0UgT0YgVWRwRW5kcG9pbnRFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQSB0YWJsZSBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgZW50aXR5J3MgVURQCisgICAgICAgICAgICBlbmRwb2ludHMgb24gd2hpY2ggYSBsb2NhbCBhcHBsaWNhdGlvbiBpcyBjdXJyZW50bHkKKyAgICAgICAgICAgIGFjY2VwdGluZyBvciBzZW5kaW5nIGRhdGFncmFtcy4KKworCisKKworCisgICAgICAgICAgICBUaGUgYWRkcmVzcyB0eXBlIGluIHRoaXMgdGFibGUgcmVwcmVzZW50cyB0aGUgYWRkcmVzcworICAgICAgICAgICAgdHlwZSB1c2VkIGZvciB0aGUgY29tbXVuaWNhdGlvbiwgaXJyZXNwZWN0aXZlIG9mIHRoZQorICAgICAgICAgICAgaGlnaGVyLWxheWVyIGFic3RyYWN0aW9uLiAgRm9yIGV4YW1wbGUsIGFuIGFwcGxpY2F0aW9uCisgICAgICAgICAgICB1c2luZyBJUHY2ICdzb2NrZXRzJyB0byBjb21tdW5pY2F0ZSB2aWEgSVB2NCBiZXR3ZWVuCisgICAgICAgICAgICA6OmZmZmY6MTAuMC4wLjEgYW5kIDo6ZmZmZjoxMC4wLjAuMiB3b3VsZCB1c2UKKyAgICAgICAgICAgIEluZXRBZGRyZXNzVHlwZSBpcHY0KDEpLgorCisgICAgICAgICAgICBVbmxpa2UgdGhlIHVkcFRhYmxlIGluIFJGQyAyMDEzLCB0aGlzIHRhYmxlIGFsc28gYWxsb3dzCisgICAgICAgICAgICB0aGUgcmVwcmVzZW50YXRpb24gb2YgYW4gYXBwbGljYXRpb24gdGhhdCBjb21wbGV0ZWx5CisgICAgICAgICAgICBzcGVjaWZpZXMgYm90aCBsb2NhbCBhbmQgcmVtb3RlIGFkZHJlc3NlcyBhbmQgcG9ydHMuICBBCisgICAgICAgICAgICBsaXN0ZW5pbmcgYXBwbGljYXRpb24gaXMgcmVwcmVzZW50ZWQgaW4gdGhyZWUgcG9zc2libGUKKyAgICAgICAgICAgIHdheXM6CisKKyAgICAgICAgICAgIDEpIEFuIGFwcGxpY2F0aW9uIHRoYXQgaXMgd2lsbGluZyB0byBhY2NlcHQgYm90aCBJUHY0CisgICAgICAgICAgICAgICBhbmQgSVB2NiBkYXRhZ3JhbXMgaXMgcmVwcmVzZW50ZWQgYnkgYQorICAgICAgICAgICAgICAgdWRwRW5kcG9pbnRMb2NhbEFkZHJlc3NUeXBlIG9mIHVua25vd24oMCkgYW5kIGEKKyAgICAgICAgICAgICAgIHVkcEVuZHBvaW50TG9jYWxBZGRyZXNzIG9mICcnaCAoYSB6ZXJvLWxlbmd0aAorICAgICAgICAgICAgICAgb2N0ZXQtc3RyaW5nKS4KKworICAgICAgICAgICAgMikgQW4gYXBwbGljYXRpb24gdGhhdCBpcyB3aWxsaW5nIHRvIGFjY2VwdCBvbmx5IElQdjQKKyAgICAgICAgICAgICAgIG9yIG9ubHkgSVB2NiBkYXRhZ3JhbXMgaXMgcmVwcmVzZW50ZWQgYnkgYQorICAgICAgICAgICAgICAgdWRwRW5kcG9pbnRMb2NhbEFkZHJlc3NUeXBlIG9mIHRoZSBhcHByb3ByaWF0ZQorICAgICAgICAgICAgICAgYWRkcmVzcyB0eXBlIGFuZCBhIHVkcEVuZHBvaW50TG9jYWxBZGRyZXNzIG9mCisgICAgICAgICAgICAgICAnMC4wLjAuMCcgb3IgJzo6JyByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgICAgIDMpIEFuIGFwcGxpY2F0aW9uIHRoYXQgaXMgbGlzdGVuaW5nIGZvciBkYXRhZ3JhbXMgb25seQorICAgICAgICAgICAgICAgZm9yIGEgc3BlY2lmaWMgSVAgYWRkcmVzcyBidXQgZnJvbSBhbnkgcmVtb3RlCisgICAgICAgICAgICAgICBzeXN0ZW0gaXMgcmVwcmVzZW50ZWQgYnkgYQorICAgICAgICAgICAgICAgdWRwRW5kcG9pbnRMb2NhbEFkZHJlc3NUeXBlIG9mIHRoZSBhcHByb3ByaWF0ZQorICAgICAgICAgICAgICAgYWRkcmVzcyB0eXBlLCB3aXRoIHVkcEVuZHBvaW50TG9jYWxBZGRyZXNzCisgICAgICAgICAgICAgICBzcGVjaWZ5aW5nIHRoZSBsb2NhbCBhZGRyZXNzLgorCisgICAgICAgICAgICBJbiBhbGwgY2FzZXMgd2hlcmUgdGhlIHJlbW90ZSBpcyBhIHdpbGRjYXJkLCB0aGUKKyAgICAgICAgICAgIHVkcEVuZHBvaW50UmVtb3RlQWRkcmVzc1R5cGUgaXMgdW5rbm93bigwKSwgdGhlCisgICAgICAgICAgICB1ZHBFbmRwb2ludFJlbW90ZUFkZHJlc3MgaXMgJydoIChhIHplcm8tbGVuZ3RoCisgICAgICAgICAgICBvY3RldC1zdHJpbmcpLCBhbmQgdGhlIHVkcEVuZHBvaW50UmVtb3RlUG9ydCBpcyAwLgorCisgICAgICAgICAgICBJZiB0aGUgb3BlcmF0aW5nIHN5c3RlbSBpcyBkZW11bHRpcGxleGluZyBVRFAgcGFja2V0cworICAgICAgICAgICAgYnkgcmVtb3RlIGFkZHJlc3MgYW5kIHBvcnQsIG9yIGlmIHRoZSBhcHBsaWNhdGlvbiBoYXMKKyAgICAgICAgICAgICdjb25uZWN0ZWQnIHRoZSBzb2NrZXQgc3BlY2lmeWluZyBhIGRlZmF1bHQgcmVtb3RlCisgICAgICAgICAgICBhZGRyZXNzIGFuZCBwb3J0LCB0aGUgdWRwRW5kcG9pbnRSZW1vdGUqIHZhbHVlcyBzaG91bGQKKyAgICAgICAgICAgIGJlIHVzZWQgdG8gcmVmbGVjdCB0aGlzLiIKKyAgICA6Oj0geyB1ZHAgNyB9CisKK3VkcEVuZHBvaW50RW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFVkcEVuZHBvaW50RW50cnkKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisKKworCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIkluZm9ybWF0aW9uIGFib3V0IGEgcGFydGljdWxhciBjdXJyZW50IFVEUCBlbmRwb2ludC4KKworICAgICAgICAgICAgSW1wbGVtZW50ZXJzIG5lZWQgdG8gYmUgYXdhcmUgdGhhdCBpZiB0aGUgdG90YWwgbnVtYmVyCisgICAgICAgICAgICBvZiBlbGVtZW50cyAob2N0ZXRzIG9yIHN1Yi1pZGVudGlmaWVycykgaW4KKyAgICAgICAgICAgIHVkcEVuZHBvaW50TG9jYWxBZGRyZXNzIGFuZCB1ZHBFbmRwb2ludFJlbW90ZUFkZHJlc3MKKyAgICAgICAgICAgIGV4Y2VlZHMgMTExLCB0aGVuIE9JRHMgb2YgY29sdW1uIGluc3RhbmNlcyBpbiB0aGlzIHRhYmxlCisgICAgICAgICAgICB3aWxsIGhhdmUgbW9yZSB0aGFuIDEyOCBzdWItaWRlbnRpZmllcnMgYW5kIGNhbm5vdCBiZQorICAgICAgICAgICAgYWNjZXNzZWQgdXNpbmcgU05NUHYxLCBTTk1QdjJjLCBvciBTTk1QdjMuIgorICAgIElOREVYICAgeyB1ZHBFbmRwb2ludExvY2FsQWRkcmVzc1R5cGUsCisgICAgICAgICAgICAgIHVkcEVuZHBvaW50TG9jYWxBZGRyZXNzLAorICAgICAgICAgICAgICB1ZHBFbmRwb2ludExvY2FsUG9ydCwKKyAgICAgICAgICAgICAgdWRwRW5kcG9pbnRSZW1vdGVBZGRyZXNzVHlwZSwKKyAgICAgICAgICAgICAgdWRwRW5kcG9pbnRSZW1vdGVBZGRyZXNzLAorICAgICAgICAgICAgICB1ZHBFbmRwb2ludFJlbW90ZVBvcnQsCisgICAgICAgICAgICAgIHVkcEVuZHBvaW50SW5zdGFuY2UgfQorICAgIDo6PSB7IHVkcEVuZHBvaW50VGFibGUgMSB9CisKK1VkcEVuZHBvaW50RW50cnkgOjo9IFNFUVVFTkNFIHsKKyAgICAgICAgdWRwRW5kcG9pbnRMb2NhbEFkZHJlc3NUeXBlICAgSW5ldEFkZHJlc3NUeXBlLAorICAgICAgICB1ZHBFbmRwb2ludExvY2FsQWRkcmVzcyAgICAgICBJbmV0QWRkcmVzcywKKyAgICAgICAgdWRwRW5kcG9pbnRMb2NhbFBvcnQgICAgICAgICAgSW5ldFBvcnROdW1iZXIsCisgICAgICAgIHVkcEVuZHBvaW50UmVtb3RlQWRkcmVzc1R5cGUgIEluZXRBZGRyZXNzVHlwZSwKKyAgICAgICAgdWRwRW5kcG9pbnRSZW1vdGVBZGRyZXNzICAgICAgSW5ldEFkZHJlc3MsCisgICAgICAgIHVkcEVuZHBvaW50UmVtb3RlUG9ydCAgICAgICAgIEluZXRQb3J0TnVtYmVyLAorICAgICAgICB1ZHBFbmRwb2ludEluc3RhbmNlICAgICAgICAgICBVbnNpZ25lZDMyLAorICAgICAgICB1ZHBFbmRwb2ludFByb2Nlc3MgICAgICAgICAgICBVbnNpZ25lZDMyCisgICAgfQorCit1ZHBFbmRwb2ludExvY2FsQWRkcmVzc1R5cGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRBZGRyZXNzVHlwZQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGFkZHJlc3MgdHlwZSBvZiB1ZHBFbmRwb2ludExvY2FsQWRkcmVzcy4gIE9ubHkKKyAgICAgICAgICAgIElQdjQsIElQdjR6LCBJUHY2LCBhbmQgSVB2NnogYWRkcmVzc2VzIGFyZSBleHBlY3RlZCwgb3IKKyAgICAgICAgICAgIHVua25vd24oMCkgaWYgZGF0YWdyYW1zIGZvciBhbGwgbG9jYWwgSVAgYWRkcmVzc2VzIGFyZQorICAgICAgICAgICAgYWNjZXB0ZWQuIgorICAgIDo6PSB7IHVkcEVuZHBvaW50RW50cnkgMSB9CisKK3VkcEVuZHBvaW50TG9jYWxBZGRyZXNzIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBJbmV0QWRkcmVzcworICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGxvY2FsIElQIGFkZHJlc3MgZm9yIHRoaXMgVURQIGVuZHBvaW50LgorCisgICAgICAgICAgICBUaGUgdmFsdWUgb2YgdGhpcyBvYmplY3QgY2FuIGJlIHJlcHJlc2VudGVkIGluIHRocmVlCisKKworCisgICAgICAgICAgICBwb3NzaWJsZSB3YXlzLCBkZXBlbmRpbmcgb24gdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUKKyAgICAgICAgICAgIGxpc3RlbmluZyBhcHBsaWNhdGlvbjoKKworICAgICAgICAgICAgMS4gRm9yIGFuIGFwcGxpY2F0aW9uIHRoYXQgaXMgd2lsbGluZyB0byBhY2NlcHQgYm90aAorICAgICAgICAgICAgICAgSVB2NCBhbmQgSVB2NiBkYXRhZ3JhbXMsIHRoZSB2YWx1ZSBvZiB0aGlzIG9iamVjdAorICAgICAgICAgICAgICAgbXVzdCBiZSAnJ2ggKGEgemVyby1sZW5ndGggb2N0ZXQtc3RyaW5nKSwgd2l0aAorICAgICAgICAgICAgICAgdGhlIHZhbHVlIG9mIHRoZSBjb3JyZXNwb25kaW5nIGluc3RhbmNlIG9mIHRoZQorICAgICAgICAgICAgICAgdWRwRW5kcG9pbnRMb2NhbEFkZHJlc3NUeXBlIG9iamVjdCBiZWluZyB1bmtub3duKDApLgorCisgICAgICAgICAgICAyLiBGb3IgYW4gYXBwbGljYXRpb24gdGhhdCBpcyB3aWxsaW5nIHRvIGFjY2VwdCBvbmx5IElQdjQKKyAgICAgICAgICAgICAgIG9yIG9ubHkgSVB2NiBkYXRhZ3JhbXMsIHRoZSB2YWx1ZSBvZiB0aGlzIG9iamVjdAorICAgICAgICAgICAgICAgbXVzdCBiZSAnMC4wLjAuMCcgb3IgJzo6JywgcmVzcGVjdGl2ZWx5LCB3aGlsZSB0aGUKKyAgICAgICAgICAgICAgIGNvcnJlc3BvbmRpbmcgaW5zdGFuY2Ugb2YgdGhlCisgICAgICAgICAgICAgICB1ZHBFbmRwb2ludExvY2FsQWRkcmVzc1R5cGUgb2JqZWN0IHJlcHJlc2VudHMgdGhlCisgICAgICAgICAgICAgICBhcHByb3ByaWF0ZSBhZGRyZXNzIHR5cGUuCisKKyAgICAgICAgICAgIDMuIEZvciBhbiBhcHBsaWNhdGlvbiB0aGF0IGlzIGxpc3RlbmluZyBmb3IgZGF0YQorICAgICAgICAgICAgICAgZGVzdGluZWQgb25seSB0byBhIHNwZWNpZmljIElQIGFkZHJlc3MsIHRoZSB2YWx1ZQorICAgICAgICAgICAgICAgb2YgdGhpcyBvYmplY3QgaXMgdGhlIHNwZWNpZmljIElQIGFkZHJlc3MgZm9yIHdoaWNoCisgICAgICAgICAgICAgICB0aGlzIG5vZGUgaXMgcmVjZWl2aW5nIHBhY2tldHMsIHdpdGggdGhlCisgICAgICAgICAgICAgICBjb3JyZXNwb25kaW5nIGluc3RhbmNlIG9mIHRoZQorICAgICAgICAgICAgICAgdWRwRW5kcG9pbnRMb2NhbEFkZHJlc3NUeXBlIG9iamVjdCByZXByZXNlbnRpbmcgdGhlCisgICAgICAgICAgICAgICBhcHByb3ByaWF0ZSBhZGRyZXNzIHR5cGUuCisKKyAgICAgICAgICAgIEFzIHRoaXMgb2JqZWN0IGlzIHVzZWQgaW4gdGhlIGluZGV4IGZvciB0aGUKKyAgICAgICAgICAgIHVkcEVuZHBvaW50VGFibGUsIGltcGxlbWVudG9ycyBvZiB0aGlzIHRhYmxlIHNob3VsZCBiZQorICAgICAgICAgICAgY2FyZWZ1bCBub3QgdG8gY3JlYXRlIGVudHJpZXMgdGhhdCB3b3VsZCByZXN1bHQgaW4gT0lEcworICAgICAgICAgICAgd2l0aCBtb3JlIHRoYW4gMTI4IHN1YmlkZW50aWZpZXJzOyBlbHNlIHRoZSBpbmZvcm1hdGlvbgorICAgICAgICAgICAgY2Fubm90IGJlIGFjY2Vzc2VkIHVzaW5nIFNOTVB2MSwgU05NUHYyYywgb3IgU05NUHYzLiIKKyAgICA6Oj0geyB1ZHBFbmRwb2ludEVudHJ5IDIgfQorCit1ZHBFbmRwb2ludExvY2FsUG9ydCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldFBvcnROdW1iZXIKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBsb2NhbCBwb3J0IG51bWJlciBmb3IgdGhpcyBVRFAgZW5kcG9pbnQuIgorICAgIDo6PSB7IHVkcEVuZHBvaW50RW50cnkgMyB9CisKK3VkcEVuZHBvaW50UmVtb3RlQWRkcmVzc1R5cGUgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIEluZXRBZGRyZXNzVHlwZQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGFkZHJlc3MgdHlwZSBvZiB1ZHBFbmRwb2ludFJlbW90ZUFkZHJlc3MuICBPbmx5CisgICAgICAgICAgICBJUHY0LCBJUHY0eiwgSVB2NiwgYW5kIElQdjZ6IGFkZHJlc3NlcyBhcmUgZXhwZWN0ZWQsIG9yCisgICAgICAgICAgICB1bmtub3duKDApIGlmIGRhdGFncmFtcyBmb3IgYWxsIHJlbW90ZSBJUCBhZGRyZXNzZXMgYXJlCisgICAgICAgICAgICBhY2NlcHRlZC4gIEFsc28sIG5vdGUgdGhhdCBzb21lIGNvbWJpbmF0aW9ucyBvZgorCisKKworICAgICAgICAgICAgdWRwRW5kcG9pbnRMb2NhbEFkcmVzc1R5cGUgYW5kCisgICAgICAgICAgICB1ZHBFbmRwb2ludFJlbW90ZUFkZHJlc3NUeXBlIGFyZSBub3Qgc3VwcG9ydGVkLiAgSW4KKyAgICAgICAgICAgIHBhcnRpY3VsYXIsIGlmIHRoZSB2YWx1ZSBvZiB0aGlzIG9iamVjdCBpcyBub3QKKyAgICAgICAgICAgIHVua25vd24oMCksIGl0IGlzIGV4cGVjdGVkIHRvIGFsd2F5cyByZWZlciB0byB0aGUKKyAgICAgICAgICAgIHNhbWUgSVAgdmVyc2lvbiBhcyB1ZHBFbmRwb2ludExvY2FsQWRkcmVzc1R5cGUuIgorICAgIDo6PSB7IHVkcEVuZHBvaW50RW50cnkgNCB9CisKK3VkcEVuZHBvaW50UmVtb3RlQWRkcmVzcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldEFkZHJlc3MKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSByZW1vdGUgSVAgYWRkcmVzcyBmb3IgdGhpcyBVRFAgZW5kcG9pbnQuICBJZgorICAgICAgICAgICAgZGF0YWdyYW1zIGZyb20gYW55IHJlbW90ZSBzeXN0ZW0gYXJlIHRvIGJlIGFjY2VwdGVkLAorICAgICAgICAgICAgdGhpcyB2YWx1ZSBpcyAnJ2ggKGEgemVyby1sZW5ndGggb2N0ZXQtc3RyaW5nKS4KKyAgICAgICAgICAgIE90aGVyd2lzZSwgaXQgaGFzIHRoZSB0eXBlIGRlc2NyaWJlZCBieQorICAgICAgICAgICAgdWRwRW5kcG9pbnRSZW1vdGVBZGRyZXNzVHlwZSBhbmQgaXMgdGhlIGFkZHJlc3Mgb2YgdGhlCisgICAgICAgICAgICByZW1vdGUgc3lzdGVtIGZyb20gd2hpY2ggZGF0YWdyYW1zIGFyZSB0byBiZSBhY2NlcHRlZAorICAgICAgICAgICAgKG9yIHRvIHdoaWNoIGFsbCBkYXRhZ3JhbXMgd2lsbCBiZSBzZW50KS4KKworICAgICAgICAgICAgQXMgdGhpcyBvYmplY3QgaXMgdXNlZCBpbiB0aGUgaW5kZXggZm9yIHRoZQorICAgICAgICAgICAgdWRwRW5kcG9pbnRUYWJsZSwgaW1wbGVtZW50b3JzIG9mIHRoaXMgdGFibGUgc2hvdWxkIGJlCisgICAgICAgICAgICBjYXJlZnVsIG5vdCB0byBjcmVhdGUgZW50cmllcyB0aGF0IHdvdWxkIHJlc3VsdCBpbiBPSURzCisgICAgICAgICAgICB3aXRoIG1vcmUgdGhhbiAxMjggc3ViaWRlbnRpZmllcnM7IGVsc2UgdGhlIGluZm9ybWF0aW9uCisgICAgICAgICAgICBjYW5ub3QgYmUgYWNjZXNzZWQgdXNpbmcgU05NUHYxLCBTTk1QdjJjLCBvciBTTk1QdjMuIgorICAgIDo6PSB7IHVkcEVuZHBvaW50RW50cnkgNSB9CisKK3VkcEVuZHBvaW50UmVtb3RlUG9ydCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW5ldFBvcnROdW1iZXIKKyAgICBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSByZW1vdGUgcG9ydCBudW1iZXIgZm9yIHRoaXMgVURQIGVuZHBvaW50LiAgSWYKKyAgICAgICAgICAgIGRhdGFncmFtcyBmcm9tIGFueSByZW1vdGUgc3lzdGVtIGFyZSB0byBiZSBhY2NlcHRlZCwKKyAgICAgICAgICAgIHRoaXMgdmFsdWUgaXMgemVyby4iCisgICAgOjo9IHsgdWRwRW5kcG9pbnRFbnRyeSA2IH0KKwordWRwRW5kcG9pbnRJbnN0YW5jZSBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVW5zaWduZWQzMiAoMS4uJ2ZmZmZmZmZmJ2gpCisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgaW5zdGFuY2Ugb2YgdGhpcyB0dXBsZS4gIFRoaXMgb2JqZWN0IGlzIHVzZWQgdG8KKyAgICAgICAgICAgIGRpc3Rpbmd1aXNoIGFtb25nIG11bHRpcGxlIHByb2Nlc3NlcyAnY29ubmVjdGVkJyB0bworICAgICAgICAgICAgdGhlIHNhbWUgVURQIGVuZHBvaW50LiAgRm9yIGV4YW1wbGUsIG9uIGEgc3lzdGVtCisgICAgICAgICAgICBpbXBsZW1lbnRpbmcgdGhlIEJTRCBzb2NrZXRzIGludGVyZmFjZSwgdGhpcyB3b3VsZCBiZQorICAgICAgICAgICAgdXNlZCB0byBzdXBwb3J0IHRoZSBTT19SRVVTRUFERFIgYW5kIFNPX1JFVVNFUE9SVAorICAgICAgICAgICAgc29ja2V0IG9wdGlvbnMuIgorCisKKworICAgIDo6PSB7IHVkcEVuZHBvaW50RW50cnkgNyB9CisKK3VkcEVuZHBvaW50UHJvY2VzcyBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgVW5zaWduZWQzMgorICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBzeXN0ZW0ncyBwcm9jZXNzIElEIGZvciB0aGUgcHJvY2VzcyBhc3NvY2lhdGVkIHdpdGgKKyAgICAgICAgICAgIHRoaXMgZW5kcG9pbnQsIG9yIHplcm8gaWYgdGhlcmUgaXMgbm8gc3VjaCBwcm9jZXNzLgorICAgICAgICAgICAgVGhpcyB2YWx1ZSBpcyBleHBlY3RlZCB0byBiZSB0aGUgc2FtZSBhcworICAgICAgICAgICAgSE9TVC1SRVNPVVJDRVMtTUlCOjpoclNXUnVuSW5kZXggb3IgU1lTQVBQTC1NSUI6OgorICAgICAgICAgICAgc3lzQXBwbEVsbXRSdW5JbmRleCBmb3Igc29tZSByb3cgaW4gdGhlIGFwcHJvcHJpYXRlCisgICAgICAgICAgICB0YWJsZXMuIgorICAgIDo6PSB7IHVkcEVuZHBvaW50RW50cnkgOCB9CisKKy0tIFRoZSBkZXByZWNhdGVkIFVEUCBMaXN0ZW5lciB0YWJsZQorCistLSBUaGUgZGVwcmVjYXRlZCBVRFAgbGlzdGVuZXIgdGFibGUgb25seSBjb250YWlucyBpbmZvcm1hdGlvbgorLS0gYWJvdXQgdGhpcyBlbnRpdHkncyBJUHY0IFVEUCBlbmQtcG9pbnRzIG9uIHdoaWNoIGEgbG9jYWwKKy0tIGFwcGxpY2F0aW9uIGlzIGN1cnJlbnRseSBhY2NlcHRpbmcgZGF0YWdyYW1zLiAgSXQgZG9lcyBub3QKKy0tIHByb3ZpZGUgbW9yZSBkZXRhaWxlZCBjb25uZWN0aW9uIGluZm9ybWF0aW9uLCBvciBpbmZvcm1hdGlvbgorLS0gYWJvdXQgSVB2NiBlbmRwb2ludHMuCisKK3VkcFRhYmxlIE9CSkVDVC1UWVBFCisgICAgU1lOVEFYICAgICBTRVFVRU5DRSBPRiBVZHBFbnRyeQorICAgIE1BWC1BQ0NFU1Mgbm90LWFjY2Vzc2libGUKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiQSB0YWJsZSBjb250YWluaW5nIElQdjQtc3BlY2lmaWMgVURQIGxpc3RlbmVyCisgICAgICAgICAgICBpbmZvcm1hdGlvbi4gIEl0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IGFsbCBsb2NhbAorICAgICAgICAgICAgSVB2NCBVRFAgZW5kLXBvaW50cyBvbiB3aGljaCBhbiBhcHBsaWNhdGlvbiBpcworICAgICAgICAgICAgY3VycmVudGx5IGFjY2VwdGluZyBkYXRhZ3JhbXMuICBUaGlzIHRhYmxlIGhhcyBiZWVuCisgICAgICAgICAgICBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHRoZSB2ZXJzaW9uIG5ldXRyYWwKKyAgICAgICAgICAgIHVkcEVuZHBvaW50VGFibGUuIgorICAgIDo6PSB7IHVkcCA1IH0KKwordWRwRW50cnkgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIFVkcEVudHJ5CisgICAgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJJbmZvcm1hdGlvbiBhYm91dCBhIHBhcnRpY3VsYXIgY3VycmVudCBVRFAgbGlzdGVuZXIuIgorICAgIElOREVYICAgeyB1ZHBMb2NhbEFkZHJlc3MsIHVkcExvY2FsUG9ydCB9CisgICAgOjo9IHsgdWRwVGFibGUgMSB9CisKK1VkcEVudHJ5IDo6PSBTRVFVRU5DRSB7CisgICAgdWRwTG9jYWxBZGRyZXNzICAgSXBBZGRyZXNzLAorICAgIHVkcExvY2FsUG9ydCAgICAgIEludGVnZXIzMgorCisKKworfQorCit1ZHBMb2NhbEFkZHJlc3MgT0JKRUNULVRZUEUKKyAgICBTWU5UQVggICAgIElwQWRkcmVzcworICAgIE1BWC1BQ0NFU1MgcmVhZC1vbmx5CisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBsb2NhbCBJUCBhZGRyZXNzIGZvciB0aGlzIFVEUCBsaXN0ZW5lci4gIEluIHRoZQorICAgICAgICAgICAgY2FzZSBvZiBhIFVEUCBsaXN0ZW5lciB0aGF0IGlzIHdpbGxpbmcgdG8gYWNjZXB0CisgICAgICAgICAgICBkYXRhZ3JhbXMgZm9yIGFueSBJUCBpbnRlcmZhY2UgYXNzb2NpYXRlZCB3aXRoIHRoZQorICAgICAgICAgICAgbm9kZSwgdGhlIHZhbHVlIDAuMC4wLjAgaXMgdXNlZC4iCisgICAgOjo9IHsgdWRwRW50cnkgMSB9CisKK3VkcExvY2FsUG9ydCBPQkpFQ1QtVFlQRQorICAgIFNZTlRBWCAgICAgSW50ZWdlcjMyICgwLi42NTUzNSkKKyAgICBNQVgtQUNDRVNTIHJlYWQtb25seQorICAgIFNUQVRVUyAgICAgZGVwcmVjYXRlZAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgbG9jYWwgcG9ydCBudW1iZXIgZm9yIHRoaXMgVURQIGxpc3RlbmVyLiIKKyAgICA6Oj0geyB1ZHBFbnRyeSAyIH0KKworLS0gY29uZm9ybWFuY2UgaW5mb3JtYXRpb24KKwordWRwTUlCQ29uZm9ybWFuY2UgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgdWRwTUlCIDIgfQordWRwTUlCQ29tcGxpYW5jZXMgT0JKRUNUIElERU5USUZJRVIgOjo9IHsgdWRwTUlCQ29uZm9ybWFuY2UgMSB9Cit1ZHBNSUJHcm91cHMgICAgICBPQkpFQ1QgSURFTlRJRklFUiA6Oj0geyB1ZHBNSUJDb25mb3JtYW5jZSAyIH0KKworLS0gY29tcGxpYW5jZSBzdGF0ZW1lbnRzCisKK3VkcE1JQkNvbXBsaWFuY2UyIE1PRFVMRS1DT01QTElBTkNFCisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBjb21wbGlhbmNlIHN0YXRlbWVudCBmb3Igc3lzdGVtcyB0aGF0IGltcGxlbWVudAorICAgICAgICAgICAgVURQLgorCisgICAgICAgICAgICBUaGVyZSBhcmUgYSBudW1iZXIgb2YgSU5ERVggb2JqZWN0cyB0aGF0IGNhbm5vdCBiZQorICAgICAgICAgICAgcmVwcmVzZW50ZWQgaW4gdGhlIGZvcm0gb2YgT0JKRUNUIGNsYXVzZXMgaW4gU01JdjIsIGJ1dAorICAgICAgICAgICAgZm9yIHdoaWNoIHdlIGhhdmUgdGhlIGZvbGxvd2luZyBjb21wbGlhbmNlCisgICAgICAgICAgICByZXF1aXJlbWVudHMsIGV4cHJlc3NlZCBpbiBPQkpFQ1QgY2xhdXNlIGZvcm0gaW4gdGhpcworICAgICAgICAgICAgZGVzY3JpcHRpb24gY2xhdXNlOgorCisgICAgICAgICAgICAtLSBPQkpFQ1QgICAgICB1ZHBFbmRwb2ludExvY2FsQWRkcmVzc1R5cGUKKyAgICAgICAgICAgIC0tIFNZTlRBWCAgICAgIEluZXRBZGRyZXNzVHlwZSB7IHVua25vd24oMCksIGlwdjQoMSksCisgICAgICAgICAgICAtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcHY2KDIpLCBpcHY0eigzKSwKKyAgICAgICAgICAgIC0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwdjZ6KDQpIH0KKyAgICAgICAgICAgIC0tIERFU0NSSVBUSU9OCisgICAgICAgICAgICAtLSAgICAgU3VwcG9ydCBmb3IgZG5zKDUpIGlzIG5vdCByZXF1aXJlZC4KKyAgICAgICAgICAgIC0tIE9CSkVDVCAgICAgIHVkcEVuZHBvaW50TG9jYWxBZGRyZXNzCisKKworCisgICAgICAgICAgICAtLSBTWU5UQVggICAgICBJbmV0QWRkcmVzcyAoU0laRSgwfDR8OHwxNnwyMCkpCisgICAgICAgICAgICAtLSBERVNDUklQVElPTgorICAgICAgICAgICAgLS0gICAgIFN1cHBvcnQgaXMgb25seSByZXF1aXJlZCBmb3IgemVyby1sZW5ndGgKKyAgICAgICAgICAgIC0tICAgICBvY3RldC1zdHJpbmdzLCBhbmQgZm9yIHNjb3BlZCBhbmQgdW5zY29wZWQKKyAgICAgICAgICAgIC0tICAgICBJUHY0IGFuZCBJUHY2IGFkZHJlc3Nlcy4KKyAgICAgICAgICAgIC0tIE9CSkVDVCAgICAgIHVkcEVuZHBvaW50UmVtb3RlQWRkcmVzc1R5cGUKKyAgICAgICAgICAgIC0tIFNZTlRBWCAgICAgIEluZXRBZGRyZXNzVHlwZSB7IHVua25vd24oMCksIGlwdjQoMSksCisgICAgICAgICAgICAtLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcHY2KDIpLCBpcHY0eigzKSwKKyAgICAgICAgICAgIC0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwdjZ6KDQpIH0KKyAgICAgICAgICAgIC0tIERFU0NSSVBUSU9OCisgICAgICAgICAgICAtLSAgICAgU3VwcG9ydCBmb3IgZG5zKDUpIGlzIG5vdCByZXF1aXJlZC4KKyAgICAgICAgICAgIC0tIE9CSkVDVCAgICAgIHVkcEVuZHBvaW50UmVtb3RlQWRkcmVzcworICAgICAgICAgICAgLS0gU1lOVEFYICAgICAgSW5ldEFkZHJlc3MgKFNJWkUoMHw0fDh8MTZ8MjApKQorICAgICAgICAgICAgLS0gREVTQ1JJUFRJT04KKyAgICAgICAgICAgIC0tICAgICBTdXBwb3J0IGlzIG9ubHkgcmVxdWlyZWQgZm9yIHplcm8tbGVuZ3RoCisgICAgICAgICAgICAtLSAgICAgb2N0ZXQtc3RyaW5ncywgYW5kIGZvciBzY29wZWQgYW5kIHVuc2NvcGVkCisgICAgICAgICAgICAtLSAgICAgSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMuCisgICAgICAgICAgICIKKyAgICBNT0RVTEUgIC0tIHRoaXMgbW9kdWxlCisgICAgICAgICBNQU5EQVRPUlktR1JPVVBTIHsgdWRwQmFzZUdyb3VwLCB1ZHBFbmRwb2ludEdyb3VwIH0KKyAgICAgICAgIEdST1VQICAgICAgIHVkcEhDR3JvdXAKKyAgICAgICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICAgICAgIlRoaXMgZ3JvdXAgaXMgbWFuZGF0b3J5IGZvciBzeXN0ZW1zIHRoYXQKKyAgICAgICAgICAgICAgICAgYXJlIGNhcGFibGUgb2YgcmVjZWl2aW5nIG9yIHRyYW5zbWl0dGluZyBtb3JlIHRoYW4KKyAgICAgICAgICAgICAgICAgMSBtaWxsaW9uIFVEUCBkYXRhZ3JhbXMgcGVyIHNlY29uZC4gIDEgbWlsbGlvbgorICAgICAgICAgICAgICAgICBkYXRhZ3JhbXMgcGVyIHNlY29uZCB3aWxsIGNhdXNlIGEgQ291bnRlcjMyIHRvCisgICAgICAgICAgICAgICAgIHdyYXAgaW4ganVzdCBvdmVyIGFuIGhvdXIuIgorICAgIDo6PSB7IHVkcE1JQkNvbXBsaWFuY2VzIDIgfQorCit1ZHBNSUJDb21wbGlhbmNlIE1PRFVMRS1DT01QTElBTkNFCisgICAgU1RBVFVTICAgICBkZXByZWNhdGVkCisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBjb21wbGlhbmNlIHN0YXRlbWVudCBmb3IgSVB2NC1vbmx5IHN5c3RlbXMgdGhhdAorICAgICAgICAgICAgaW1wbGVtZW50IFVEUC4gIEZvciBJUCB2ZXJzaW9uIGluZGVwZW5kZW5jZSwgdGhpcworICAgICAgICAgICAgY29tcGxpYW5jZSBzdGF0ZW1lbnQgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZgorICAgICAgICAgICAgdWRwTUlCQ29tcGxpYW5jZTIuICBIb3dldmVyLCBhZ2VudHMgYXJlIHN0aWxsCisgICAgICAgICAgICBlbmNvdXJhZ2VkIHRvIGltcGxlbWVudCB0aGVzZSBvYmplY3RzIGluIG9yZGVyIHRvCisgICAgICAgICAgICBpbnRlcm9wZXJhdGUgd2l0aCB0aGUgZGVwbG95ZWQgYmFzZSBvZiBtYW5hZ2Vycy4iCisgICAgTU9EVUxFICAtLSB0aGlzIG1vZHVsZQorICAgICAgICBNQU5EQVRPUlktR1JPVVBTIHsgdWRwR3JvdXAgfQorICAgIDo6PSB7IHVkcE1JQkNvbXBsaWFuY2VzIDEgfQorCistLSB1bml0cyBvZiBjb25mb3JtYW5jZQorCit1ZHBHcm91cCBPQkpFQ1QtR1JPVVAKKyAgICBPQkpFQ1RTICAgeyB1ZHBJbkRhdGFncmFtcywgdWRwTm9Qb3J0cywKKyAgICAgICAgICAgICAgICB1ZHBJbkVycm9ycywgdWRwT3V0RGF0YWdyYW1zLAorICAgICAgICAgICAgICAgIHVkcExvY2FsQWRkcmVzcywgdWRwTG9jYWxQb3J0IH0KKworCisKKyAgICBTVEFUVVMgICAgIGRlcHJlY2F0ZWQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGRlcHJlY2F0ZWQgZ3JvdXAgb2Ygb2JqZWN0cyBwcm92aWRpbmcgZm9yCisgICAgICAgICAgICBtYW5hZ2VtZW50IG9mIFVEUCBvdmVyIElQdjQuIgorICAgIDo6PSB7IHVkcE1JQkdyb3VwcyAxIH0KKwordWRwQmFzZUdyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IHVkcEluRGF0YWdyYW1zLCB1ZHBOb1BvcnRzLCB1ZHBJbkVycm9ycywKKyAgICAgICAgICAgICAgICB1ZHBPdXREYXRhZ3JhbXMgfQorICAgIFNUQVRVUyAgICAgY3VycmVudAorICAgIERFU0NSSVBUSU9OCisgICAgICAgICAgICJUaGUgZ3JvdXAgb2Ygb2JqZWN0cyBwcm92aWRpbmcgZm9yIGNvdW50ZXJzIG9mIFVEUAorICAgICAgICAgICAgc3RhdGlzdGljcy4iCisgICAgOjo9IHsgdWRwTUlCR3JvdXBzIDIgfQorCit1ZHBIQ0dyb3VwIE9CSkVDVC1HUk9VUAorICAgIE9CSkVDVFMgICB7IHVkcEhDSW5EYXRhZ3JhbXMsIHVkcEhDT3V0RGF0YWdyYW1zIH0KKyAgICBTVEFUVVMgICAgIGN1cnJlbnQKKyAgICBERVNDUklQVElPTgorICAgICAgICAgICAiVGhlIGdyb3VwIG9mIG9iamVjdHMgcHJvdmlkaW5nIGZvciBjb3VudGVycyBvZiBoaWdoCisgICAgICAgICAgICBzcGVlZCBVRFAgaW1wbGVtZW50YXRpb25zLiIKKyAgICA6Oj0geyB1ZHBNSUJHcm91cHMgMyB9CisKK3VkcEVuZHBvaW50R3JvdXAgT0JKRUNULUdST1VQCisgICAgT0JKRUNUUyAgICB7IHVkcEVuZHBvaW50UHJvY2VzcyB9CisgICAgU1RBVFVTICAgICBjdXJyZW50CisgICAgREVTQ1JJUFRJT04KKyAgICAgICAgICAgIlRoZSBncm91cCBvZiBvYmplY3RzIHByb3ZpZGluZyBmb3IgdGhlIElQIHZlcnNpb24KKyAgICAgICAgICAgIGluZGVwZW5kZW50IG1hbmFnZW1lbnQgb2YgVURQICdlbmRwb2ludHMnLiIKKyAgICA6Oj0geyB1ZHBNSUJHcm91cHMgNCB9CisKK0VORApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0Rpc3BsYXlIaW50LmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0Rpc3BsYXlIaW50LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMWYxMTcKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRGlzcGxheUhpbnQuY3MKQEAgLTAsMCArMSw4NCBAQAor77u/dXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnM7CisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliCit7CisgICAgcHVibGljIGNsYXNzIERpc3BsYXlIaW50CisgICAgeworICAgICAgICBwcml2YXRlIGVudW0gTnVtVHlwZSB7CisgICAgICAgICAgICBkZWMsCisgICAgICAgICAgICBoZXgsCisgICAgICAgICAgICBvY3QsCisgICAgICAgICAgICBiaW4sCisgICAgICAgICAgICBzdHIKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RyaW5nIF9zdHI7CisgICAgICAgIHByaXZhdGUgTnVtVHlwZSBfdHlwZTsKKyAgICAgICAgcHJpdmF0ZSBpbnQgX2RlY2ltYWxQb2ludHMgPSAwOworCisgICAgICAgIHB1YmxpYyBEaXNwbGF5SGludChzdHJpbmcgc3RyKQorICAgICAgICB7CisgICAgICAgICAgICBfc3RyID0gc3RyOworICAgICAgICAgICAgaWYgKHN0ci5TdGFydHNXaXRoKCJkIikpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgX3R5cGUgPSBOdW1UeXBlLmRlYzsKKyAgICAgICAgICAgICAgICBpZiAoc3RyLlN0YXJ0c1dpdGgoImQtIikpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBfZGVjaW1hbFBvaW50cyA9IENvbnZlcnQuVG9JbnQzMihzdHIuU3Vic3RyaW5nKDIpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzdHIuU3RhcnRzV2l0aCgibyIpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF90eXBlID0gTnVtVHlwZS5vY3Q7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzdHIuU3RhcnRzV2l0aCgiaCIpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF90eXBlID0gTnVtVHlwZS5oZXg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzdHIuU3RhcnRzV2l0aCgiYiIpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF90eXBlID0gTnVtVHlwZS5iaW47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgX3R5cGUgPSBOdW1UeXBlLnN0cjsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIChjaGFyIGMgaW4gc3RyKQorICAgICAgICAgICAgICAgIHsKKworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIG92ZXJyaWRlIHN0cmluZyBUb1N0cmluZygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBfc3RyOworICAgICAgICB9CisKKyAgICAgICAgaW50ZXJuYWwgb2JqZWN0IERlY29kZShpbnQgaSkKKyAgICAgICAgeworICAgICAgICAgICAgc3dpdGNoIChfdHlwZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYXNlIE51bVR5cGUuZGVjOgorICAgICAgICAgICAgICAgICAgICBpZiAoX2RlY2ltYWxQb2ludHMgPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaSAvIE1hdGguUG93KDEwLjAsIF9kZWNpbWFsUG9pbnRzKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhc2UgTnVtVHlwZS5oZXg6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW0uQ29udmVydC5Ub1N0cmluZyhpLCAxNik7CisgICAgICAgICAgICAgICAgY2FzZSBOdW1UeXBlLm9jdDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN5c3RlbS5Db252ZXJ0LlRvU3RyaW5nKGksIDgpOworICAgICAgICAgICAgICAgIGNhc2UgTnVtVHlwZS5iaW46CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTeXN0ZW0uQ29udmVydC5Ub1N0cmluZyhpLCAyKTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9BZ2VudENhcGFiaWxpdGllcy5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9BZ2VudENhcGFiaWxpdGllcy5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjc5Y2NlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0VudGl0aWVzL0FnZW50Q2FwYWJpbGl0aWVzLmNzCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDcmVhdGVkIGJ5IFNoYXJwRGV2ZWxvcC4KKyAqIFVzZXI6IGxleHRtCisgKiBEYXRlOiAyMDA4LzUvMzEKKyAqIFRpbWU6IDEzOjE4CisgKiAKKyAqIFRvIGNoYW5nZSB0aGlzIHRlbXBsYXRlIHVzZSBUb29scyB8IE9wdGlvbnMgfCBDb2RpbmcgfCBFZGl0IFN0YW5kYXJkIEhlYWRlcnMuCisgKi8KKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuRW50aXRpZXMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIFRoZSBBR0VOVC1DQVBBQklMSVRJRVMgY29uc3RydWN0IGlzIHVzZWQgdG8gc3BlY2lmeSBpbXBsZW1lbnRhdGlvbiBjaGFyYWN0ZXJpc3RpY3Mgb2YgYW4gU05NUCBhZ2VudCBzdWItc3lzdGVtIHdpdGggcmVzcGVjdCB0byBvYmplY3QgdHlwZXMgYW5kIGV2ZW50cy4KKyAgICAvLy8gPC9zdW1tYXJ5PgorICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgQWdlbnRDYXBhYmlsaXRpZXMgOiBFbnRpdHlCYXNlCisgICAgeyAgICAgICAKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gQ3JlYXRlcyBhbiA8c2VlIGNyZWY9IkFnZW50Q2FwYWJpbGl0aWVzIi8+IGluc3RhbmNlLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1vZHVsZSI+PC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJoZWFkZXIiPjwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibGV4ZXIiPjwvcGFyYW0+CisgICAgICAgIHB1YmxpYyBBZ2VudENhcGFiaWxpdGllcyhJTW9kdWxlIG1vZHVsZSwgU3ltYm9sTGlzdCBwcmVBc3NpZ25TeW1ib2xzLCBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICAgICAgOiBiYXNlKG1vZHVsZSwgcHJlQXNzaWduU3ltYm9scywgc3ltYm9scykKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgCisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9FbnRpdHlCYXNlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0VudGl0aWVzL0VudGl0eUJhc2UuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRhOWIxOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9FbnRpdHlCYXNlLmNzCkBAIC0wLDAgKzEsNDYgQEAKK++7v3VzaW5nIFN5c3RlbTsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuRW50aXRpZXMKK3sKKyAgICBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRW50aXR5QmFzZTogSUVudGl0eQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSByZWFkb25seSBJTW9kdWxlIF9tb2R1bGU7CisgICAgICAgIHByaXZhdGUgc3RyaW5nIF9wYXJlbnQ7CisgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdWludCAgIF92YWx1ZTsKKyAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzdHJpbmcgX25hbWU7CisKKyAgICAgICAgcHVibGljIEVudGl0eUJhc2UoSU1vZHVsZSBtb2R1bGUsIFN5bWJvbExpc3QgcHJlQXNzaWduU3ltYm9scywgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgeworICAgICAgICAgICAgX21vZHVsZSA9IG1vZHVsZTsKKyAgICAgICAgICAgIF9uYW1lICAgPSBwcmVBc3NpZ25TeW1ib2xzWzBdLlRvU3RyaW5nKCk7CisKKyAgICAgICAgICAgIExleGVyLlBhcnNlT2lkVmFsdWUoc3ltYm9scywgb3V0IF9wYXJlbnQsIG91dCBfdmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIElNb2R1bGUgTW9kdWxlCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfbW9kdWxlOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RyaW5nIFBhcmVudAorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX3BhcmVudDsgfQorICAgICAgICAgICAgc2V0IHsgX3BhcmVudCA9IHZhbHVlOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdWludCBWYWx1ZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX3ZhbHVlOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RyaW5nIE5hbWUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9uYW1lOyB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2aXJ0dWFsIHN0cmluZyBEZXNjcmlwdGlvbgorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gc3RyaW5nLkVtcHR5OyB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvRW50aXRpZXMvSUVudGl0eS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9JRW50aXR5LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczNjBhNDcKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvRW50aXRpZXMvSUVudGl0eS5jcwpAQCAtMCwwICsxLDYyIEBACisvLyBFbnRpdHkgaW50ZXJmYWNlLgorLy8gQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgTWFsY29sbSBDcm93ZSwgTGV4IExpLCBhbmQgb3RoZXIgY29udHJpYnV0b3JzLgorLy8gCisvLyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisvLyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisvLyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKy8vIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLy8gCisvLyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisvLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorLy8gTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKy8vIAorLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworLy8gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorCisvKgorICogQ3JlYXRlZCBieSBTaGFycERldmVsb3AuCisgKiBVc2VyOiBsZXh0bQorICogRGF0ZTogMjAwOC81LzE5CisgKiBUaW1lOiAyMDoxMAorICogCisgKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSB1c2UgVG9vbHMgfCBPcHRpb25zIHwgQ29kaW5nIHwgRWRpdCBTdGFuZGFyZCBIZWFkZXJzLgorICovCisKK3VzaW5nIFN5c3RlbTsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuRW50aXRpZXMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIEJhc2ljIGludGVyZmFjZSBmb3IgYWxsIGVsZW1lbnRzIGJ1aWxkaW5nIHVwIHRoZSBNSUIgdHJlZSwgdGh1cyBoYXZpbmcgYW4gT0lEIGFzIHZhbHVlLgorICAgIC8vLyA8L3N1bW1hcnk+CisgICAgcHVibGljIGludGVyZmFjZSBJRW50aXR5IDogSURlY2xhcmF0aW9uCisgICAgeworICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyBQYXJlbnQgbmFtZS4KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4KKyAgICAgICAgc3RyaW5nIFBhcmVudAorICAgICAgICB7CisgICAgICAgICAgICBnZXQ7CisgICAgICAgICAgICBzZXQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIFZhbHVlLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICB1aW50IFZhbHVlCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldDsgICAgICAgICAgICAKKyAgICAgICAgfQorCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIEdldHMgdGhlIGRlc2NyaXB0aW9uLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHZhbHVlPlRoZSBkZXNjcmlwdGlvbi48L3ZhbHVlPgorICAgICAgICBzdHJpbmcgRGVzY3JpcHRpb24KKyAgICAgICAgeworICAgICAgICAgICAgZ2V0OworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9Nb2R1bGVDb21wbGlhbmNlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0VudGl0aWVzL01vZHVsZUNvbXBsaWFuY2UuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA4YzM1NAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9Nb2R1bGVDb21wbGlhbmNlLmNzCkBAIC0wLDAgKzEsMjMgQEAKKy8qCisgKiBDcmVhdGVkIGJ5IFNoYXJwRGV2ZWxvcC4KKyAqIFVzZXI6IGxleHRtCisgKiBEYXRlOiAyMDA4LzUvMjEKKyAqIFRpbWU6IDE5OjM1CisgKiAKKyAqIFRvIGNoYW5nZSB0aGlzIHRlbXBsYXRlIHVzZSBUb29scyB8IE9wdGlvbnMgfCBDb2RpbmcgfCBFZGl0IFN0YW5kYXJkIEhlYWRlcnMuCisgKi8KKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuRW50aXRpZXMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIERlc2NyaXB0aW9uIG9mIE1vZHVsZUNvbXBsaWFuY2VOb2RlLgorICAgIC8vLyA8L3N1bW1hcnk+CisgICAgcHVibGljIHNlYWxlZCBjbGFzcyBNb2R1bGVDb21wbGlhbmNlIDogRW50aXR5QmFzZQorICAgIHsKKyAgICAgICAgcHVibGljIE1vZHVsZUNvbXBsaWFuY2UoSU1vZHVsZSBtb2R1bGUsIFN5bWJvbExpc3QgcHJlQXNzaWduU3ltYm9scywgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgICAgIDogYmFzZShtb2R1bGUsIHByZUFzc2lnblN5bWJvbHMsIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgICAgIAorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvRW50aXRpZXMvTW9kdWxlSWRlbnRpdHkuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvRW50aXRpZXMvTW9kdWxlSWRlbnRpdHkuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRlMjhjZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9Nb2R1bGVJZGVudGl0eS5jcwpAQCAtMCwwICsxLDEwIEBACituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5FbnRpdGllcworeworICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgTW9kdWxlSWRlbnRpdHkgOiBFbnRpdHlCYXNlCisgICAgeworICAgICAgICBwdWJsaWMgTW9kdWxlSWRlbnRpdHkoSU1vZHVsZSBtb2R1bGUsIFN5bWJvbExpc3QgcHJlQXNzaWduU3ltYm9scywgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgICAgIDogYmFzZShtb2R1bGUsIHByZUFzc2lnblN5bWJvbHMsIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvRW50aXRpZXMvTm90aWZpY2F0aW9uR3JvdXAuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvRW50aXRpZXMvTm90aWZpY2F0aW9uR3JvdXAuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdkM2U0YwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9Ob3RpZmljYXRpb25Hcm91cC5jcwpAQCAtMCwwICsxLDIyIEBACisvKgorICogQ3JlYXRlZCBieSBTaGFycERldmVsb3AuCisgKiBVc2VyOiBsZXh0bQorICogRGF0ZTogMjAwOC81LzIxCisgKiBUaW1lOiAxOTozNAorICogCisgKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSB1c2UgVG9vbHMgfCBPcHRpb25zIHwgQ29kaW5nIHwgRWRpdCBTdGFuZGFyZCBIZWFkZXJzLgorICovCisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLkVudGl0aWVzCit7CisgICAgLy8vIDxzdW1tYXJ5PgorICAgIC8vLyBEZXNjcmlwdGlvbiBvZiBOb3RpZmljYXRpb25Hcm91cE5vZGUuCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICBwdWJsaWMgc2VhbGVkIGNsYXNzIE5vdGlmaWNhdGlvbkdyb3VwIDogRW50aXR5QmFzZQorICAgIHsKKyAgICAgICAgcHVibGljIE5vdGlmaWNhdGlvbkdyb3VwKElNb2R1bGUgbW9kdWxlLCBTeW1ib2xMaXN0IHByZUFzc2lnblN5bWJvbHMsIElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgICAgICA6IGJhc2UobW9kdWxlLCBwcmVBc3NpZ25TeW1ib2xzLCBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgIH0KKyAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvRW50aXRpZXMvTm90aWZpY2F0aW9uVHlwZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9Ob3RpZmljYXRpb25UeXBlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczODZlMjEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvRW50aXRpZXMvTm90aWZpY2F0aW9uVHlwZS5jcwpAQCAtMCwwICsxLDExIEBACisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLkVudGl0aWVzCit7CisgICAgcHVibGljIHNlYWxlZCBjbGFzcyBOb3RpZmljYXRpb25UeXBlIDogRW50aXR5QmFzZQorICAgIHsKKyAgICAgICAgcHVibGljIE5vdGlmaWNhdGlvblR5cGUoSU1vZHVsZSBtb2R1bGUsIFN5bWJvbExpc3QgcHJlQXNzaWduU3ltYm9scywgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgICAgIDogYmFzZShtb2R1bGUsIHByZUFzc2lnblN5bWJvbHMsIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9PYmplY3RHcm91cC5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9PYmplY3RHcm91cC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODQ2Y2RiCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0VudGl0aWVzL09iamVjdEdyb3VwLmNzCkBAIC0wLDAgKzEsMjIgQEAKKy8qCisgKiBDcmVhdGVkIGJ5IFNoYXJwRGV2ZWxvcC4KKyAqIFVzZXI6IGxleHRtCisgKiBEYXRlOiAyMDA4LzUvMjEKKyAqIFRpbWU6IDE5OjI3CisgKiAKKyAqIFRvIGNoYW5nZSB0aGlzIHRlbXBsYXRlIHVzZSBUb29scyB8IE9wdGlvbnMgfCBDb2RpbmcgfCBFZGl0IFN0YW5kYXJkIEhlYWRlcnMuCisgKi8KKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuRW50aXRpZXMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIERlc2NyaXB0aW9uIG9mIE9iamVjdEdyb3VwTm9kZS4KKyAgICAvLy8gPC9zdW1tYXJ5PgorICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgT2JqZWN0R3JvdXAgOiBFbnRpdHlCYXNlCisgICAgeworICAgICAgICBwdWJsaWMgT2JqZWN0R3JvdXAoSU1vZHVsZSBtb2R1bGUsIFN5bWJvbExpc3QgcHJlQXNzaWduU3ltYm9scywgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgICAgIDogYmFzZShtb2R1bGUsIHByZUFzc2lnblN5bWJvbHMsIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9PYmplY3RJZGVudGl0eS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9PYmplY3RJZGVudGl0eS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzFlMDg0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0VudGl0aWVzL09iamVjdElkZW50aXR5LmNzCkBAIC0wLDAgKzEsMjEgQEAKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuRW50aXRpZXMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIE9iamVjdCBpZGVudGlmaWVyIG5vZGUuCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICBwdWJsaWMgc2VhbGVkIGNsYXNzIE9iamVjdElkZW50aXR5IDogRW50aXR5QmFzZQorICAgIHsKKyAgICAgICAKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gQ3JlYXRlcyBhIDxzZWUgY3JlZj0iT2JqZWN0SWRlbnRpdHkiLz4uCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibW9kdWxlIj5Nb2R1bGUgbmFtZTwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaGVhZGVyIj5IZWFkZXI8L3BhcmFtPgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxleGVyIj5MZXhlcjwvcGFyYW0+CisgICAgICAgIHB1YmxpYyBPYmplY3RJZGVudGl0eShJTW9kdWxlIG1vZHVsZSwgU3ltYm9sTGlzdCBwcmVBc3NpZ25TeW1ib2xzLCBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICAgICAgOiBiYXNlKG1vZHVsZSwgcHJlQXNzaWduU3ltYm9scywgc3ltYm9scykKKyAgICAgICAgeworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9PYmplY3RUeXBlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0VudGl0aWVzL09iamVjdFR5cGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E4YjU2NwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FbnRpdGllcy9PYmplY3RUeXBlLmNzCkBAIC0wLDAgKzEsMzM2IEBACit1c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKK3VzaW5nIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXM7CisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLkVudGl0aWVzCit7CisgICAgcHVibGljIHNlYWxlZCBjbGFzcyBPYmplY3RUeXBlIDogRW50aXR5QmFzZSwgSVR5cGVSZWZlcnJlcgorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBJVHlwZUFzc2lnbm1lbnQgX3N5bnRheDsKKyAgICAgICAgcHJpdmF0ZSBzdHJpbmcgX3VuaXRzOworICAgICAgICBwcml2YXRlIE1heEFjY2VzcyBfYWNjZXNzOworICAgICAgICBwcml2YXRlIFN0YXR1cyBfc3RhdHVzOworICAgICAgICBwcml2YXRlIHN0cmluZyBfZGVzY3JpcHRpb247CisgICAgICAgIHByaXZhdGUgc3RyaW5nIF9yZWZlcmVuY2U7CisgICAgICAgIHByaXZhdGUgSUxpc3Q8c3RyaW5nPiBfaW5kaWNlczsKKyAgICAgICAgcHJpdmF0ZSBzdHJpbmcgX2F1Z21lbnRzOworICAgICAgICBwcml2YXRlIHN0cmluZyBfZGVmVmFsOworCisgICAgICAgIHB1YmxpYyBPYmplY3RUeXBlKElNb2R1bGUgbW9kdWxlLCBTeW1ib2xMaXN0IHByZUFzc2lnblN5bWJvbHMsIElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgICAgICA6IGJhc2UobW9kdWxlLCBwcmVBc3NpZ25TeW1ib2xzLCBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBQYXJzZVByb3BlcnRpZXMocHJlQXNzaWduU3ltYm9scyk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VQcm9wZXJ0aWVzKFN5bWJvbExpc3QgaGVhZGVyKQorICAgICAgICB7CisgICAgICAgICAgICBJU3ltYm9sRW51bWVyYXRvciBoZWFkZXJTeW1ib2xzID0gaGVhZGVyLkdldFN5bWJvbEVudW1lcmF0b3IoKTsKKyAgICAgICAgICAgIFN5bWJvbCB0ZW1wID0gaGVhZGVyU3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisKKyAgICAgICAgICAgIC8vIFNraXAgbmFtZQorICAgICAgICAgICAgdGVtcCA9IGhlYWRlclN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgdGVtcC5FeHBlY3QoU3ltYm9sLk9iamVjdFR5cGUpOworCisgICAgICAgICAgICBfc3ludGF4ICAgICAgICAgPSBQYXJzZVN5bnRheCAgICAgICAoTW9kdWxlLCBoZWFkZXJTeW1ib2xzKTsKKyAgICAgICAgICAgIF91bml0cyAgICAgICAgICA9IFBhcnNlVW5pdHMgICAgICAgIChoZWFkZXJTeW1ib2xzKTsKKyAgICAgICAgICAgIF9hY2Nlc3MgICAgICAgICA9IFBhcnNlQWNjZXNzICAgICAgIChoZWFkZXJTeW1ib2xzKTsKKyAgICAgICAgICAgIF9zdGF0dXMgICAgICAgICA9IFBhcnNlU3RhdHVzICAgICAgIChoZWFkZXJTeW1ib2xzKTsKKyAgICAgICAgICAgIF9kZXNjcmlwdGlvbiAgICA9IFBhcnNlRGVzY3JpcHRpb24gIChoZWFkZXJTeW1ib2xzKTsKKyAgICAgICAgICAgIF9yZWZlcmVuY2UgICAgICA9IFBhcnNlUmVmZXJlbmNlICAgIChoZWFkZXJTeW1ib2xzKTsKKyAgICAgICAgICAgIF9pbmRpY2VzICAgICAgICA9IFBhcnNlSW5kaWNlcyAgICAgIChoZWFkZXJTeW1ib2xzKTsKKyAgICAgICAgICAgIF9hdWdtZW50cyAgICAgICAgPSBQYXJzZUF1Z21lbnRzICAgICAoaGVhZGVyU3ltYm9scyk7CisgICAgICAgICAgICBfZGVmVmFsICAgICAgICAgPSBQYXJzZURlZlZhbCAgICAgICAoaGVhZGVyU3ltYm9scyk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgUGFyc2VBdWdtZW50cyhJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBTeW1ib2wgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworCisgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuQXVnbWVudHMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RyaW5nIGF1Z21lbnQgPSBudWxsOworCisgICAgICAgICAgICAgICAgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgICAgIGN1cnJlbnQuRXhwZWN0KFN5bWJvbC5PcGVuQnJhY2tldCk7CisKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICAgICAgYXVnbWVudCA9IGN1cnJlbnQuVG9TdHJpbmcoKTsKKworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50LkV4cGVjdChTeW1ib2wuQ2xvc2VCcmFja2V0KTsKKworICAgICAgICAgICAgICAgIHJldHVybiBhdWdtZW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCAhPSBudWxsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN5bWJvbHMuUHV0QmFjayhjdXJyZW50KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgUGFyc2VEZWZWYWwoSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgeworICAgICAgICAgICAgU3ltYm9sIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKworICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLkRlZlZhbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLk9wZW5CcmFja2V0KTsKKworICAgICAgICAgICAgICAgIHN0cmluZyBkZWZWYWwgPSBudWxsOworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ID09IFN5bWJvbC5PcGVuQnJhY2tldCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGludCBkZXB0aCA9IDE7CisgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGRlY29kZSB0aGlzLgorICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZGVwdGggPiAwKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuT3BlbkJyYWNrZXQpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwdGgrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLkNsb3NlQnJhY2tldCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXB0aC0tOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGRlZlZhbCA9IGN1cnJlbnQuVG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgICAgICAgICBjdXJyZW50LkV4cGVjdChTeW1ib2wuQ2xvc2VCcmFja2V0KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVmVmFsOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCAhPSBudWxsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN5bWJvbHMuUHV0QmFjayhjdXJyZW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBJTGlzdDxzdHJpbmc+IFBhcnNlSW5kaWNlcyhJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBTeW1ib2wgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworCisgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuSW5kZXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgICAgIGN1cnJlbnQuRXhwZWN0KFN5bWJvbC5PcGVuQnJhY2tldCk7CisKKyAgICAgICAgICAgICAgICBMaXN0PHN0cmluZz4gaW5kaWNlcyA9IG5ldyBMaXN0PHN0cmluZz4oKTsKKworICAgICAgICAgICAgICAgIHdoaWxlIChjdXJyZW50ICE9IFN5bWJvbC5DbG9zZUJyYWNrZXQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICBib29sIGxhc3RJbmRleCA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuSW1wbGllZCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gdHJ1ZTsgLy8gJ0lNUExJRUQnIG1heSBvbmx5IGJlIHVzZWQgZm9yIGxhc3QgaW5kZXggCisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBjdXJyZW50LkFzc2VydCgoY3VycmVudCAhPSBTeW1ib2wuQ29tbWEpICYmIChjdXJyZW50ICE9IFN5bWJvbC5DbG9zZUJyYWNrZXQpLCAiRXhwZWN0ZWQgaW5kZXggbmFtZSBidXQgZm91bmQgc3ltYm9sISIpOworICAgICAgICAgICAgICAgICAgICBpbmRpY2VzLkFkZChjdXJyZW50LlRvU3RyaW5nKCkpOworCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RJbmRleCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LkV4cGVjdChTeW1ib2wuQ2xvc2VCcmFja2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLkNvbW1hLCBTeW1ib2wuQ2xvc2VCcmFja2V0KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBpbmRpY2VzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCAhPSBudWxsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN5bWJvbHMuUHV0QmFjayhjdXJyZW50KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgUGFyc2VSZWZlcmVuY2UoSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgeworICAgICAgICAgICAgU3ltYm9sIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKworICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLlJlZmVyZW5jZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCkuVG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQgIT0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2soY3VycmVudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgc3RyaW5nIFBhcnNlRGVzY3JpcHRpb24oSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgeworICAgICAgICAgICAgU3ltYm9sIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKworICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLkRlc2NyaXB0aW9uKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKS5Ub1N0cmluZygpLlRyaW0obmV3IGNoYXJbXSB7ICciJyB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQgIT0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2soY3VycmVudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgU3RhdHVzIFBhcnNlU3RhdHVzKElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBTdGF0dXMub2Jzb2xldGU7CisKKyAgICAgICAgICAgIFN5bWJvbCBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICBjdXJyZW50LkV4cGVjdChTeW1ib2wuU3RhdHVzKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgdHJ5CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gKFN0YXR1cylFbnVtLlBhcnNlKHR5cGVvZihTdGF0dXMpLCBjdXJyZW50LlRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEFyZ3VtZW50RXhjZXB0aW9uKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGN1cnJlbnQuQXNzZXJ0KGZhbHNlLCAiSW52YWxpZC9Vbmtub3duIHN0YXR1cyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gc3RhdHVzOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgTWF4QWNjZXNzIFBhcnNlQWNjZXNzKElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIE1heEFjY2VzcyBhY2Nlc3MgPSBNYXhBY2Nlc3Mubm90QWNjZXNzaWJsZTsKKworICAgICAgICAgICAgU3ltYm9sIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgIGN1cnJlbnQuRXhwZWN0KFN5bWJvbC5NYXhBY2Nlc3MsIFN5bWJvbC5BY2Nlc3MpOworCisgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICBzd2l0Y2ggKGN1cnJlbnQuVG9TdHJpbmcoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYXNlICJub3QtYWNjZXNzaWJsZSI6CisgICAgICAgICAgICAgICAgICAgIGFjY2VzcyA9IE1heEFjY2Vzcy5ub3RBY2Nlc3NpYmxlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICJhY2Nlc3NpYmxlLWZvci1ub3RpZnkiOgorICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgPSBNYXhBY2Nlc3MuYWNjZXNzaWJsZUZvck5vdGlmeTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAicmVhZC1vbmx5IjoKKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzID0gTWF4QWNjZXNzLnJlYWRPbmx5OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICJyZWFkLXdyaXRlIjoKKyAgICAgICAgICAgICAgICAgICAgYWNjZXNzID0gTWF4QWNjZXNzLnJlYWRXcml0ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAicmVhZC1jcmVhdGUiOgorICAgICAgICAgICAgICAgICAgICBhY2Nlc3MgPSBNYXhBY2Nlc3MucmVhZENyZWF0ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAid3JpdGUtb25seSI6CisgICAgICAgICAgICAgICAgICAgIGFjY2VzcyA9IE1heEFjY2Vzcy5yZWFkV3JpdGU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuQXNzZXJ0KGZhbHNlLCAiSW52YWxpZC9Vbmtub3duIGFjY2VzcyIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGFjY2VzczsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIHN0cmluZyBQYXJzZVVuaXRzKElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN5bWJvbCBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisKKyAgICAgICAgICAgIGlmIChjdXJyZW50ID09IFN5bWJvbC5Vbml0cykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCkuVG9TdHJpbmcoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQgIT0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2soY3VycmVudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgSVR5cGVBc3NpZ25tZW50IFBhcnNlU3ludGF4KElNb2R1bGUgbW9kdWxlLCBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBTeW1ib2wgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLlN5bnRheCk7CisKKyAgICAgICAgICAgIHJldHVybiBMZXhlci5QYXJzZUJhc2ljVHlwZURlZihtb2R1bGUsIFN0cmluZy5FbXB0eSwgc3ltYm9scywgaXNNYWNyb1N5bnRheDogdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sIElzUHJvcGVydHkoU3ltYm9sIHN5bSkKKyAgICAgICAgeworICAgICAgICAgICAgc3RyaW5nIHMgPSBzeW0uVG9TdHJpbmcoKTsKKyAgICAgICAgICAgIHJldHVybiBzID09ICJTWU5UQVgiIHx8IHMgPT0gIk1BWC1BQ0NFU1MiIHx8IHMgPT0gIlNUQVRVUyIgfHwgcyA9PSAiREVTQ1JJUFRJT04iOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIElUeXBlQXNzaWdubWVudCBTeW50YXgKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9zeW50YXg7IH0KKyAgICAgICAgICAgIGludGVybmFsIHNldCB7IF9zeW50YXggPSB2YWx1ZTsgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIG92ZXJyaWRlIHN0cmluZyBEZXNjcmlwdGlvbgorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX2Rlc2NyaXB0aW9uOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTWF4QWNjZXNzIEFjY2VzcworICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX2FjY2VzczsgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIElMaXN0PHN0cmluZz4gSW5kaWNlcworICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX2luZGljZXM7IH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdHJpbmcgQXVnbWVudHMKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9hdWdtZW50czsgfQorICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbiBJVHlwZVJlZmVycmVyIE1lbWJlcgorCisgICAgICAgIHB1YmxpYyBJVHlwZUFzc2lnbm1lbnQgUmVmZXJyZWRUeXBlCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfc3ludGF4OyB9CisgICAgICAgICAgICBzZXQgeyBfc3ludGF4ID0gdmFsdWU7IH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBJVHlwZUFzc2lnbm1lbnQgQmFzZVR5cGUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSVR5cGVSZWZlcnJlciAgIHRyICAgICA9IHRoaXM7CisgICAgICAgICAgICAgICAgSVR5cGVBc3NpZ25tZW50IHJlc3VsdCA9IG51bGw7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAoKHRyICE9IG51bGwpICYmICh0ci5SZWZlcnJlZFR5cGUgIT0gbnVsbCkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ci5SZWZlcnJlZFR5cGU7CisgICAgICAgICAgICAgICAgICAgIHRyID0gdHIuUmVmZXJyZWRUeXBlIGFzIElUeXBlUmVmZXJyZXI7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICNlbmRyZWdpb24KKworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvRW50aXRpZXMvT2lkVmFsdWVBc3NpZ25tZW50LmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0VudGl0aWVzL09pZFZhbHVlQXNzaWdubWVudC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzY1OTQwCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0VudGl0aWVzL09pZFZhbHVlQXNzaWdubWVudC5jcwpAQCAtMCwwICsxLDMwIEBACisvKgorICogQ3JlYXRlZCBieSBTaGFycERldmVsb3AuCisgKiBVc2VyOiBsZXh0bQorICogRGF0ZTogMjAwOC81LzE3CisgKiBUaW1lOiAyMDo0OQorICogCisgKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSB1c2UgVG9vbHMgfCBPcHRpb25zIHwgQ29kaW5nIHwgRWRpdCBTdGFuZGFyZCBIZWFkZXJzLgorICovCisKK3VzaW5nIFN5c3RlbTsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuRW50aXRpZXMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIE9iamVjdCBpZGVudGlmaWVyIG5vZGUuCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICBwdWJsaWMgc2VhbGVkIGNsYXNzIE9pZFZhbHVlQXNzaWdubWVudCA6IEVudGl0eUJhc2UKKyAgICB7CisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIENyZWF0ZXMgYSA8c2VlIGNyZWY9Ik9pZFZhbHVlQXNzaWdubWVudCIvPi4KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtb2R1bGUiPk1vZHVsZTwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibmFtZSI+TmFtZTwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibGV4ZXIiPkxleGVyPC9wYXJhbT4KKyAgICAgICAgcHVibGljIE9pZFZhbHVlQXNzaWdubWVudChJTW9kdWxlIG1vZHVsZSwgU3ltYm9sTGlzdCBwcmVBc3NpZ25TeW1ib2xzLCBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICAgICAgOiBiYXNlKG1vZHVsZSwgcHJlQXNzaWduU3ltYm9scywgc3ltYm9scykKKyAgICAgICAgeworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FeHBvcnRzLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0V4cG9ydHMuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlNjZlMwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9FeHBvcnRzLmNzCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDcmVhdGVkIGJ5IFNoYXJwRGV2ZWxvcC4KKyAqIFVzZXI6IGxleHRtCisgKiBEYXRlOiAyMDA4LzYvNworICogVGltZTogMTc6MzQKKyAqIAorICogVG8gY2hhbmdlIHRoaXMgdGVtcGxhdGUgdXNlIFRvb2xzIHwgT3B0aW9ucyB8IENvZGluZyB8IEVkaXQgU3RhbmRhcmQgSGVhZGVycy4KKyAqLworCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIERlc2NyaXB0aW9uIG9mIEV4cG9ydHMuCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICBwdWJsaWMgc2VhbGVkIGNsYXNzIEV4cG9ydHM6IElFbGVtZW50CisgICAgeworICAgICAgICBwcml2YXRlIElNb2R1bGUgX21vZHVsZTsKKyAgICAgICAgcHJpdmF0ZSByZWFkb25seSBJTGlzdDxzdHJpbmc+IF90eXBlcyA9IG5ldyBMaXN0PHN0cmluZz4oKTsKKworICAgICAgICBwdWJsaWMgRXhwb3J0cyhJTW9kdWxlIG1vZHVsZSwgSVN5bWJvbEVudW1lcmF0b3IgcykKKyAgICAgICAgeworICAgICAgICAgICAgX21vZHVsZSA9IG1vZHVsZTsKKworICAgICAgICAgICAgU3ltYm9sIHByZXZpb3VzID0gbnVsbDsKKyAgICAgICAgICAgIFN5bWJvbCBjdXJyZW50OworICAgICAgICAgICAgZG8KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gcy5OZXh0U3ltYm9sKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuRU9MKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKCgoY3VycmVudCA9PSBTeW1ib2wuQ29tbWEpIHx8IChjdXJyZW50ID09IFN5bWJvbC5TZW1pY29sb24pKSAmJiAocHJldmlvdXMgIT0gbnVsbCkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBwcmV2aW91cy5Bc3NlcnRJc1ZhbGlkSWRlbnRpZmllcigpOworICAgICAgICAgICAgICAgICAgICBfdHlwZXMuQWRkKHByZXZpb3VzLlRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHByZXZpb3VzID0gY3VycmVudDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdoaWxlIChjdXJyZW50ICE9IFN5bWJvbC5TZW1pY29sb24pOworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbiBJRWxlbWVudCBNZW1iZXIKKworICAgICAgICBwdWJsaWMgSU1vZHVsZSBNb2R1bGUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9tb2R1bGU7IH0KKyAgICAgICAgfQorCisgICAgICAgICNlbmRyZWdpb24KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0lEZWNsYXJhdGlvbi5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9JRGVjbGFyYXRpb24uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDk1OGFjNgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9JRGVjbGFyYXRpb24uY3MKQEAgLTAsMCArMSwxOCBAQAor77u/dXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cit1c2luZyBTeXN0ZW0uTGlucTsKK3VzaW5nIFN5c3RlbS5UZXh0OworCituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cworeworICAgIHB1YmxpYyBpbnRlcmZhY2UgSURlY2xhcmF0aW9uOiBJRWxlbWVudAorICAgIHsKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gTmFtZS4KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4KKyAgICAgICAgc3RyaW5nIE5hbWUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0OworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0lFbGVtZW50LmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0lFbGVtZW50LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyZGI3ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvSUVsZW1lbnQuY3MKQEAgLTAsMCArMSwzNSBAQAor77u/Ly8gQ29uc3RydWN0IGludGVyZmFjZS4KKy8vIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIE1hbGNvbG0gQ3Jvd2UsIExleCBMaSwgYW5kIG90aGVyIGNvbnRyaWJ1dG9ycy4KKy8vIAorLy8gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorLy8gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworLy8gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisvLyB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy8vIAorLy8gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisvLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKy8vIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisvLyAKKy8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKy8vIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKy8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIENvbnN0cnVjdCBpbnRlcmZhY2UuCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICBbU3lzdGVtLkRpYWdub3N0aWNzLkNvZGVBbmFseXNpcy5TdXBwcmVzc01lc3NhZ2UoIk1pY3Jvc29mdC5EZXNpZ24iLCAiQ0ExMDQwOkF2b2lkRW1wdHlJbnRlcmZhY2VzIildCisgICAgcHVibGljIGludGVyZmFjZSBJRWxlbWVudAorICAgIHsKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gQ29udGFpbmluZyBtb2R1bGUuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIElNb2R1bGUgTW9kdWxlCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldDsKKyAgICAgICAgfQorCisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9JVHlwZVJlZmVycmVyLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0lUeXBlUmVmZXJyZXIuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBmNTcwNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9JVHlwZVJlZmVycmVyLmNzCkBAIC0wLDAgKzEsMTAgQEAKK++7v3VzaW5nIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXM7CisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzCit7CisgICAgcHVibGljIGludGVyZmFjZSBJVHlwZVJlZmVycmVyCisgICAgeworICAgICAgICBJVHlwZUFzc2lnbm1lbnQgUmVmZXJyZWRUeXBlIHsgZ2V0OyBzZXQ7IH0KKyAgICAgICAgSVR5cGVBc3NpZ25tZW50IEJhc2VUeXBlIHsgZ2V0OyB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0ltcG9ydHMuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvSW1wb3J0cy5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTRlYzZlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL0ltcG9ydHMuY3MKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENyZWF0ZWQgYnkgU2hhcnBEZXZlbG9wLgorICogVXNlcjogbGV4dG0KKyAqIERhdGU6IDIwMDgvNS8zMQorICogVGltZTogMTI6MDcKKyAqIAorICogVG8gY2hhbmdlIHRoaXMgdGVtcGxhdGUgdXNlIFRvb2xzIHwgT3B0aW9ucyB8IENvZGluZyB8IEVkaXQgU3RhbmRhcmQgSGVhZGVycy4KKyAqLworCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIFRoZSBJTVBPUlRTIGNvbnN0cnVjdCBpcyB1c2VkIHRvIHNwZWNpZnkgaXRlbXMgdXNlZCBpbiB0aGUgY3VycmVudCBNSUIgbW9kdWxlIHdoaWNoIGFyZSBkZWZpbmVkIGluIGFub3RoZXIgTUlCIG1vZHVsZSBvciBBU04uMSBtb2R1bGUuCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICBwdWJsaWMgc2VhbGVkIGNsYXNzIEltcG9ydHMgOiBMaXN0PEltcG9ydHNGcm9tPiwgSUVsZW1lbnQKKyAgICB7CisgICAgICAgIHByaXZhdGUgSU1vZHVsZSBfbW9kdWxlOworCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIENyZWF0ZXMgYW4gPHNlZSBjcmVmPSJJbXBvcnRzIi8+IGluc3RhbmNlLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxleGVyIj48L3BhcmFtPgorICAgICAgICBwdWJsaWMgSW1wb3J0cyhJTW9kdWxlIG1vZHVsZSwgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgeworICAgICAgICAgICAgX21vZHVsZSA9IG1vZHVsZTsKKworICAgICAgICAgICAgU3ltYm9sIGN1cnJlbnQ7CisgICAgICAgICAgICB3aGlsZSAoKGN1cnJlbnQgPSBzeW1ib2xzLk5leHRTeW1ib2woKSkgIT0gU3ltYm9sLlNlbWljb2xvbikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuRU9MKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgSW1wb3J0c0Zyb20gaW1wb3J0cyA9IG5ldyBJbXBvcnRzRnJvbShjdXJyZW50LCBzeW1ib2xzKTsKKworICAgICAgICAgICAgICAgIHRoaXMuQWRkKGltcG9ydHMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIElMaXN0PHN0cmluZz4gRGVwZW5kZW50cworICAgICAgICB7CisgICAgICAgICAgICBnZXQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBMaXN0PHN0cmluZz4gcmVzdWx0ID0gbmV3IExpc3Q8c3RyaW5nPigpOworCisgICAgICAgICAgICAgICAgZm9yZWFjaCAoSW1wb3J0c0Zyb20gaW1wb3J0IGluIHRoaXMpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQuQWRkKGltcG9ydC5Nb2R1bGUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSW1wb3J0c0Zyb20gR2V0SW1wb3J0RnJvbVR5cGUoc3RyaW5nIHR5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvcmVhY2ggKEltcG9ydHNGcm9tIGltcG9ydCBpbiB0aGlzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChpbXBvcnQuVHlwZXMuQ29udGFpbnModHlwZSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW1wb3J0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAKKyAgICAgICAgI3JlZ2lvbiBJRWxlbWVudCBNZW1iZXIKKworICAgICAgICBwdWJsaWMgSU1vZHVsZSBNb2R1bGUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9tb2R1bGU7IH0KKyAgICAgICAgfQorCisgICAgICAgICNlbmRyZWdpb24KKworICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvSW1wb3J0c0Zyb20uY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvSW1wb3J0c0Zyb20uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2Q1MTU0YgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9JbXBvcnRzRnJvbS5jcwpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ3JlYXRlZCBieSBTaGFycERldmVsb3AuCisgKiBVc2VyOiBsZXh0bQorICogRGF0ZTogMjAwOC81LzMxCisgKiBUaW1lOiAxMjowNworICogCisgKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSB1c2UgVG9vbHMgfCBPcHRpb25zIHwgQ29kaW5nIHwgRWRpdCBTdGFuZGFyZCBIZWFkZXJzLgorICovCisKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOworCituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cworeworICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgSW1wb3J0c0Zyb20KKyAgICB7CisgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc3RyaW5nIF9tb2R1bGU7CisgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgTGlzdDxzdHJpbmc+IF90eXBlcyA9IG5ldyBMaXN0PHN0cmluZz4oKTsKKworICAgICAgICBwdWJsaWMgSW1wb3J0c0Zyb20oU3ltYm9sIGxhc3QsIElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN5bWJvbCBwcmV2aW91cyA9IGxhc3Q7CisgICAgICAgICAgICBTeW1ib2wgY3VycmVudDsKKyAgICAgICAgICAgIHdoaWxlICgoY3VycmVudCA9IHN5bWJvbHMuTmV4dFN5bWJvbCgpKSAhPSBTeW1ib2wuRnJvbSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuRU9MKSAKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuQ29tbWEpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBwcmV2aW91cy5Bc3NlcnRJc1ZhbGlkSWRlbnRpZmllcigpOworICAgICAgICAgICAgICAgICAgICBfdHlwZXMuQWRkKHByZXZpb3VzLlRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwcmV2aW91cyA9IGN1cnJlbnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHByZXZpb3VzLkFzc2VydElzVmFsaWRJZGVudGlmaWVyKCk7CisgICAgICAgICAgICBfdHlwZXMuQWRkKHByZXZpb3VzLlRvU3RyaW5nKCkpOworCisgICAgICAgICAgICBfbW9kdWxlID0gc3ltYm9scy5OZXh0U3ltYm9sKCkuVG9TdHJpbmcoKS5Ub1VwcGVySW52YXJpYW50KCk7IC8vIG1vZHVsZSBuYW1lcyBhcmUgdXBwZXJjYXNlCisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdHJpbmcgTW9kdWxlCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfbW9kdWxlOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSUxpc3Q8c3RyaW5nPiBUeXBlcworICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX3R5cGVzOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgb3ZlcnJpZGUgc3RyaW5nIFRvU3RyaW5nKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5Kb2luKCIsICIsIF90eXBlcy5Ub0FycmF5KCkpICsgIiBGUk9NICIgKyBfbW9kdWxlOworICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UcmFwVHlwZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UcmFwVHlwZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzVjYTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1RyYXBUeXBlLmNzCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDcmVhdGVkIGJ5IFNoYXJwRGV2ZWxvcC4KKyAqIFVzZXI6IGxleHRtCisgKiBEYXRlOiAyMDA4LzUvMzEKKyAqIFRpbWU6IDEyOjIwCisgKiAKKyAqIFRvIGNoYW5nZSB0aGlzIHRlbXBsYXRlIHVzZSBUb29scyB8IE9wdGlvbnMgfCBDb2RpbmcgfCBFZGl0IFN0YW5kYXJkIEhlYWRlcnMuCisgKi8KKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMKK3sKKyAgICBwdWJsaWMgc2VhbGVkIGNsYXNzIFRyYXBUeXBlIDogSURlY2xhcmF0aW9uCisgICAgeworICAgICAgICBwcml2YXRlIHJlYWRvbmx5IElNb2R1bGUgX21vZHVsZTsKKyAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzdHJpbmcgX25hbWU7CisgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW50IF92YWx1ZTsKKworICAgICAgICBwdWJsaWMgVHJhcFR5cGUoSU1vZHVsZSBtb2R1bGUsIFN5bWJvbExpc3QgcHJlQXNzaWduU3ltYm9scywgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgeworICAgICAgICAgICAgX21vZHVsZSA9IG1vZHVsZTsKKyAgICAgICAgICAgIF9uYW1lID0gcHJlQXNzaWduU3ltYm9sc1swXS5Ub1N0cmluZygpOworCisgICAgICAgICAgICBTeW1ib2wgdmFsdWVTeW1ib2wgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKworICAgICAgICAgICAgYm9vbCBzdWNjZWVkZWQgPSBpbnQuVHJ5UGFyc2UodmFsdWVTeW1ib2wuVG9TdHJpbmcoKSwgb3V0IF92YWx1ZSk7CisgICAgICAgICAgICB2YWx1ZVN5bWJvbC5Bc3NlcnQoc3VjY2VlZGVkLCAibm90IGEgZGVjaW1hbCIpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGludCBWYWx1ZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX3ZhbHVlOyB9CisgICAgICAgIH0KKworICAgICAgICAjcmVnaW9uIElEZWNsYXJhdGlvbiBNZW1iZXIKKworICAgICAgICBwdWJsaWMgSU1vZHVsZSBNb2R1bGUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9tb2R1bGU7IH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdHJpbmcgTmFtZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX25hbWU7IH0KKyAgICAgICAgfQorCisgICAgICAgICNlbmRyZWdpb24KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL0Jhc2VUeXBlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL0Jhc2VUeXBlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0NDEyODEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvQmFzZVR5cGUuY3MKQEAgLTAsMCArMSw1NCBAQAor77u/CituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5UeXBlcworeworICAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCYXNlVHlwZSA6IElUeXBlQXNzaWdubWVudAorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBJTW9kdWxlIF9tb2R1bGU7CisgICAgICAgIHByaXZhdGUgc3RyaW5nIF9uYW1lOworCisgICAgICAgIHByb3RlY3RlZCBCYXNlVHlwZShJTW9kdWxlIG1vZHVsZSwgc3RyaW5nIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIF9tb2R1bGUgPSBtb2R1bGU7CisgICAgICAgICAgICBfbmFtZSAgID0gbmFtZTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2aXJ0dWFsIElNb2R1bGUgTW9kdWxlCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIGRpZmZlcmVudGlhdGUgYmV0d2VlbjoKKyAgICAgICAgICAgIC8vICAgIEZkZGlUaW1lTmFubyA6Oj0gSU5URUdFUiAoMC4uMjE0NzQ4MzY0NykgCisgICAgICAgICAgICAvLyAgICB3aGljaCBpcyBhbiBJbnRlZ2VyVHlwZSB3aGljaCBhcHBlYXJzIHVuZGVyIFR5cGVzIGluIGEgTWliTW9kdWxlIGFuZCB0aGVyZWZvcmUgaGFzIGEgbmFtZSBhbmQgbW9kdWxlCisgICAgICAgICAgICAvLyBhbmQKKyAgICAgICAgICAgIC8vICAgIFNZTlRBWCBJTlRFR0VSICgwLi4yMTQ3NDgzNjQ3KSAKKyAgICAgICAgICAgIC8vICAgIHdoaWNoIGlzIGFsc28gYW4gSW50ZWdlclR5cGUgYnV0IG5vdCBkZWZpbmVkIGFzIGEgc2VwYXJhdGUgdHlwZSBhbmQgdGhlcmVmb3JlIGhhcyBOTyBuYW1lIGFuZCBOTyBtb2R1bGUKKyAgICAgICAgICAgIGdldAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICghc3RyaW5nLklzTnVsbE9yRW1wdHkoX25hbWUpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9tb2R1bGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgc2V0IHsgX21vZHVsZSA9IHZhbHVlOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdmlydHVhbCBzdHJpbmcgTmFtZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0cmluZy5Jc051bGxPckVtcHR5KF9uYW1lKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBfbmFtZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJ7IEltcGxpY2l0IEJhc2UgVHlwZSB9IjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90ZWN0ZWQgc2V0IHsgX25hbWUgPSB2YWx1ZTsgfQorICAgICAgICB9CisKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvQml0c1R5cGUuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvQml0c1R5cGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY0YzhkYgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UeXBlcy9CaXRzVHlwZS5jcwpAQCAtMCwwICsxLDI2IEBACivvu791c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXMKK3sKKyAgICBwdWJsaWMgY2xhc3MgQml0c1R5cGUgOiBCYXNlVHlwZQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBWYWx1ZU1hcCBfbWFwOworCisgICAgICAgIHB1YmxpYyBCaXRzVHlwZShJTW9kdWxlIG1vZHVsZSwgc3RyaW5nIG5hbWUsIElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgICAgICA6IGJhc2UobW9kdWxlLCBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBfbWFwID0gTGV4ZXIuRGVjb2RlRW51bWVyYXRpb25zKHN5bWJvbHMpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFZhbHVlTWFwIE1hcAorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX21hcDsgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0cmluZyB0aGlzW2ludCB2YWx1ZV0KKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9tYXBbdmFsdWVdOyB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvQ2hvaWNlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL0Nob2ljZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjZkMWYzCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL0Nob2ljZS5jcwpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ3JlYXRlZCBieSBTaGFycERldmVsb3AuCisgKiBVc2VyOiBsZXh0bQorICogRGF0ZTogMjAwOC81LzMxCisgKiBUaW1lOiAxMTozOQorICogCisgKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSB1c2UgVG9vbHMgfCBPcHRpb25zIHwgQ29kaW5nIHwgRWRpdCBTdGFuZGFyZCBIZWFkZXJzLgorICovCisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLlR5cGVzCit7CisgICAgLy8vIDxzdW1tYXJ5PgorICAgIC8vLyBUaGUgQ0hPSUNFIHR5cGUgcmVwcmVzZW50cyBhIGxpc3Qgb2YgYWx0ZXJuYXRpdmVzLi4KKyAgICAvLy8gPC9zdW1tYXJ5PgorICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgQ2hvaWNlIDogQmFzZVR5cGUKKyAgICB7CisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIENyZWF0ZXMgYSA8c2VlIGNyZWY9IkNob2ljZSIvPiBpbnN0YW5jZS4KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJtb2R1bGUiPjwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibmFtZSI+PC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJsZXhlciI+PC9wYXJhbT4KKyAgICAgICAgcHVibGljIENob2ljZShJTW9kdWxlIG1vZHVsZSwgc3RyaW5nIG5hbWUsIElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgICAgICA6IGJhc2UobW9kdWxlLCBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICB3aGlsZSAoc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCkgIT0gU3ltYm9sLk9wZW5CcmFja2V0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aGlsZSAoc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCkgIT0gU3ltYm9sLkNsb3NlQnJhY2tldCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvSVR5cGVBc3NpZ25tZW50LmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL0lUeXBlQXNzaWdubWVudC5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTYyZjlkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL0lUeXBlQXNzaWdubWVudC5jcwpAQCAtMCwwICsxLDYgQEAKK++7v25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLlR5cGVzCit7CisgICAgcHVibGljIGludGVyZmFjZSBJVHlwZUFzc2lnbm1lbnQgOiBJRGVjbGFyYXRpb24KKyAgICB7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL0ludGVnZXJUeXBlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL0ludGVnZXJUeXBlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4NDFhZDUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvSW50ZWdlclR5cGUuY3MKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDcmVhdGVkIGJ5IFNoYXJwRGV2ZWxvcC4KKyAqIFVzZXI6IGxleHRtCisgKiBEYXRlOiAyMDA4LzcvMjUKKyAqIFRpbWU6IDIwOjQxCisgKiAKKyAqIFRvIGNoYW5nZSB0aGlzIHRlbXBsYXRlIHVzZSBUb29scyB8IE9wdGlvbnMgfCBDb2RpbmcgfCBFZGl0IFN0YW5kYXJkIEhlYWRlcnMuCisgKi8KKwordXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLlR5cGVzCit7CisgICAgLy8vIDxzdW1tYXJ5PgorICAgIC8vLyBUaGUgSU5URUdFUiB0eXBlIHJlcHJlc2VudHMgYSBsaXN0IG9mIGFsdGVybmF0aXZlcywgb3IgYSByYW5nZSBvZiBudW1iZXJzLi4KKyAgICAvLy8gSW5jbHVkZXMgSW50ZWdlcjMyIGFzIGl0J3MgaW5kaXN0aW5ndWlzaGFibGUgZnJvbSBJTlRFR0VSLgorICAgIC8vLyA8L3N1bW1hcnk+CisgICAgLyoqCisgICAgICogQXMgdGhpcyB0eXBlIGlzIHVzZWQgZm9yIEludGVnZXIzMiBhcyB3ZWxsIGFzIElOVEVHRVIgaXQgaW5jb3JyZWN0bHkKKyAgICAgKiBhbGxvd3MgZW51bWVyYXRpb24gc3ViLXR5cGluZyBvZiBJbnRlZ2VyMzIuICBUaGlzIGlzIG9rIGFzIGN1cnJlbnRseSB3ZQorICAgICAqIGRvIG5vdCBjYXJlIGFib3V0IGRldGVjdGluZyBpbmNvcnJlY3QgTUlCcyBhbmQgdGhpcyBkb2Vzbid0IGJsb2NrIHRoZQorICAgICAqIGRlY29kaW5nIG9mIGNvcnJlY3QgTUlCcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgc2VhbGVkIGNsYXNzIEludGVnZXJUeXBlIDogQmFzZVR5cGUKKyAgICB7CisgICAgICAgIHB1YmxpYyBlbnVtIFR5cGVzCisgICAgICAgIHsKKyAgICAgICAgICAgIEludGVnZXIsCisgICAgICAgICAgICBJbnRlZ2VyMzIKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgVHlwZXMgX3R5cGU7CisgICAgICAgIHByaXZhdGUgYm9vbCBfaXNFbnVtZXJhdGlvbjsKKyAgICAgICAgcHJpdmF0ZSBWYWx1ZU1hcCBfbWFwOworICAgICAgICBwcml2YXRlIFZhbHVlUmFuZ2VzIF9yYW5nZXM7CisKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gQ3JlYXRlcyBhbiA8c2VlIGNyZWY9IkludGVnZXJUeXBlIi8+IGluc3RhbmNlLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1vZHVsZSI+PC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJuYW1lIj48L3BhcmFtPgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImVudW1lcmF0b3IiPjwvcGFyYW0+CisgICAgICAgIHB1YmxpYyBJbnRlZ2VyVHlwZShJTW9kdWxlIG1vZHVsZSwgc3RyaW5nIG5hbWUsIFN5bWJvbCB0eXBlLCBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICAgICAgOiBiYXNlIChtb2R1bGUsIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIFR5cGVzPyB0ID0gR2V0RXhhY3RUeXBlKHR5cGUpOworICAgICAgICAgICAgdHlwZS5Bc3NlcnQodC5IYXNWYWx1ZSwgIlVua25vd24gc3ltYm9sIGZvciB1bnNpZ25lZCB0eXBlISIpOworICAgICAgICAgICAgX3R5cGUgPSB0LlZhbHVlOworCisgICAgICAgICAgICBfaXNFbnVtZXJhdGlvbiA9IGZhbHNlOworCisgICAgICAgICAgICBTeW1ib2wgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLk9wZW5CcmFja2V0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF9pc0VudW1lcmF0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2soY3VycmVudCk7CisgICAgICAgICAgICAgICAgX21hcCA9IExleGVyLkRlY29kZUVudW1lcmF0aW9ucyhzeW1ib2xzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLk9wZW5QYXJlbnRoZXNlcykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2soY3VycmVudCk7CisgICAgICAgICAgICAgICAgX3JhbmdlcyA9IExleGVyLkRlY29kZVJhbmdlcyhzeW1ib2xzKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50LkFzc2VydCghX3Jhbmdlcy5Jc1NpemVEZWNsYXJhdGlvbiwgIlNJWkUga2V5d29yZCBpcyBub3QgYWxsb3dlZCBmb3IgcmFuZ2VzIG9mIGludGVnZXIgdHlwZXMhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3ltYm9scy5QdXRCYWNrKGN1cnJlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFR5cGVzIFR5cGUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF90eXBlOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVmFsdWVSYW5nZXMgUmFuZ2VzCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfcmFuZ2VzOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgYm9vbCBJc0VudW1lcmF0aW9uCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBfaXNFbnVtZXJhdGlvbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBWYWx1ZU1hcCBFbnVtZXJhdGlvbgorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX2lzRW51bWVyYXRpb24gPyBfbWFwIDogbnVsbDsgfQorICAgICAgICB9CisKKyAgICAgICAgaW50ZXJuYWwgc3RhdGljIFR5cGVzPyBHZXRFeGFjdFR5cGUoU3ltYm9sIHN5bWJvbCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHN5bWJvbCA9PSBTeW1ib2wuSW50ZWdlcikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyByZXByZXNlbnRzIHRoZSBBU04uMSBidWlsdGluIElOVEVHRVIgdHlwZToKKyAgICAgICAgICAgICAgICAvLyAgbWF5IGJlIHJlcHJlc2VudCBhbnkgYXJiaXRyYXJ5IChzaWduZWQvdW5zaWduZWQpIGludGVnZXIgKGluIHRoZW9yeSBtYXkgaGF2ZSBhbnkgc2l6ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gVHlwZXMuSW50ZWdlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHN5bWJvbCA9PSBTeW1ib2wuSW50ZWdlcjMyKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIEludGVnZXIzMiA6Oj0gSU5URUdFUiAoLTIxNDc0ODM2NDguLjIxNDc0ODM2NDcpIC8vIGZyb20gU05NUHYyLVNNSQorICAgICAgICAgICAgICAgIHJldHVybiBUeXBlcy5JbnRlZ2VyMzI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgaW50ZXJuYWwgc3RhdGljIGJvb2wgSXNJbnRlZ2VyVHlwZShTeW1ib2wgc3ltYm9sKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gR2V0RXhhY3RUeXBlKHN5bWJvbCkuSGFzVmFsdWU7CisgICAgICAgIH0KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL0lwQWRkcmVzc1R5cGUuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvSXBBZGRyZXNzVHlwZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NGQ3OGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL0lwQWRkcmVzc1R5cGUuY3MKQEAgLTAsMCArMSwyMSBAQAor77u/CituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5UeXBlcworeworICAgIHB1YmxpYyBjbGFzcyBJcEFkZHJlc3NUeXBlIDogT2N0ZXRTdHJpbmdUeXBlCisgICAgeworICAgICAgICBwdWJsaWMgSXBBZGRyZXNzVHlwZShJTW9kdWxlIG1vZHVsZSwgc3RyaW5nIG5hbWUsIElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgICAgICA6IGJhc2UobW9kdWxlLCBuYW1lLCBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAodGhpcy5TaXplLkNvdW50ICE9IDApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1pYkV4Y2VwdGlvbigiU2l6ZSBkZWZpbml0aW9uIG5vdCBhbGxvd2VkIGZvciBJcEFkZHJlc3MgdHlwZSEiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gSXBBZGRyZXNzIHR5cGUgaXMgZGVmaW5lZCBhczoKKyAgICAgICAgICAgIC8vIElwQWRkcmVzcyA6Oj0KKyAgICAgICAgICAgIC8vICAgIFtBUFBMSUNBVElPTiAwXQorICAgICAgICAgICAgLy8gICAgICAgIElNUExJQ0lUIE9DVEVUIFNUUklORyAoU0laRSAoNCkpCisgICAgICAgICAgICB0aGlzLlNpemUuQWRkKG5ldyBWYWx1ZVJhbmdlKDQsIG51bGwpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UeXBlcy9NYWNyby5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UeXBlcy9NYWNyby5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjkxMWFjCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL01hY3JvLmNzCkBAIC0wLDAgKzEsMzQgQEAKK++7vworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXMKK3sKKyAgICBwdWJsaWMgc2VhbGVkIGNsYXNzIE1hY3JvIDogSVR5cGVBc3NpZ25tZW50CisgICAgeworICAgICAgICBwcml2YXRlIElNb2R1bGUgX21vZHVsZTsKKyAgICAgICAgcHJpdmF0ZSBzdHJpbmcgX25hbWU7CisKKyAgICAgICAgW1N5c3RlbS5EaWFnbm9zdGljcy5Db2RlQW5hbHlzaXMuU3VwcHJlc3NNZXNzYWdlKCJNaWNyb3NvZnQuUGVyZm9ybWFuY2UiLCAiQ0ExODA0OlJlbW92ZVVudXNlZExvY2FscyIsIE1lc3NhZ2VJZCA9ICJ0ZW1wIildCisgICAgICAgIHB1YmxpYyBNYWNybyhJTW9kdWxlIG1vZHVsZSwgU3ltYm9sTGlzdCBwcmVBc3NpZ25TeW1ib2xzLCBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBfbW9kdWxlID0gbW9kdWxlOworICAgICAgICAgICAgX25hbWUgPSBwcmVBc3NpZ25TeW1ib2xzWzBdLlRvU3RyaW5nKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHdoaWxlIChzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKSAhPSBTeW1ib2wuQmVnaW4pCisgICAgICAgICAgICB7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICB3aGlsZSAoc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCkgIT0gU3ltYm9sLkVuZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBJTW9kdWxlIE1vZHVsZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX21vZHVsZTsgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0cmluZyBOYW1lCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfbmFtZTsgfQorICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UeXBlcy9PYmplY3RJZGVudGlmaWVyVHlwZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UeXBlcy9PYmplY3RJZGVudGlmaWVyVHlwZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWNkNDE1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL09iamVjdElkZW50aWZpZXJUeXBlLmNzCkBAIC0wLDAgKzEsMTEgQEAKK++7vworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXMKK3sKKyAgICBwdWJsaWMgY2xhc3MgT2JqZWN0SWRlbnRpZmllclR5cGUgOiBCYXNlVHlwZQorICAgIHsKKyAgICAgICAgcHVibGljIE9iamVjdElkZW50aWZpZXJUeXBlKElNb2R1bGUgbW9kdWxlLCBzdHJpbmcgbmFtZSwgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgICAgIDogYmFzZShtb2R1bGUsIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UeXBlcy9PY3RldFN0cmluZ1R5cGUuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvT2N0ZXRTdHJpbmdUeXBlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2NDUzY2UKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvT2N0ZXRTdHJpbmdUeXBlLmNzCkBAIC0wLDAgKzEsMzEgQEAKK++7v3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOworCituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5UeXBlcworeworICAgIHB1YmxpYyBjbGFzcyBPY3RldFN0cmluZ1R5cGUgOiBCYXNlVHlwZQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBWYWx1ZVJhbmdlcyBfc2l6ZTsKKworICAgICAgICBwdWJsaWMgT2N0ZXRTdHJpbmdUeXBlKElNb2R1bGUgbW9kdWxlLCBzdHJpbmcgbmFtZSwgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgICAgIDogYmFzZShtb2R1bGUsIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN5bWJvbCBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuT3BlblBhcmVudGhlc2VzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN5bWJvbHMuUHV0QmFjayhjdXJyZW50KTsKKyAgICAgICAgICAgICAgICBfc2l6ZSA9IExleGVyLkRlY29kZVJhbmdlcyhzeW1ib2xzKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50LkFzc2VydChfc2l6ZS5Jc1NpemVEZWNsYXJhdGlvbiwgIlNJWkUga2V5d29yZCBpcyByZXF1aXJlZCBmb3IgcmFuZ2VzIG9mIG9jdGV0IHN0cmluZyEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2soY3VycmVudCk7CisgICAgICAgICAgICAgICAgX3NpemUgICA9IG5ldyBWYWx1ZVJhbmdlcyhpc1NpemVEZWNsOiB0cnVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBWYWx1ZVJhbmdlcyBTaXplCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfc2l6ZTsgfQorICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL09wYXF1ZVR5cGUuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvT3BhcXVlVHlwZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTdlZGEzCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL09wYXF1ZVR5cGUuY3MKQEAgLTAsMCArMSwxMSBAQAor77u/CituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5UeXBlcworeworICAgIHB1YmxpYyBjbGFzcyBPcGFxdWVUeXBlIDogT2N0ZXRTdHJpbmdUeXBlCisgICAgeworICAgICAgICBwdWJsaWMgT3BhcXVlVHlwZShJTW9kdWxlIG1vZHVsZSwgc3RyaW5nIG5hbWUsIElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgICAgICA6IGJhc2UobW9kdWxlLCBuYW1lLCBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvU2VxdWVuY2UuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvU2VxdWVuY2UuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI5MTJhNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UeXBlcy9TZXF1ZW5jZS5jcwpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ3JlYXRlZCBieSBTaGFycERldmVsb3AuCisgKiBVc2VyOiBsZXh0bQorICogRGF0ZTogMjAwOC81LzIxCisgKiBUaW1lOiAxOTo0MworICogCisgKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSB1c2UgVG9vbHMgfCBPcHRpb25zIHwgQ29kaW5nIHwgRWRpdCBTdGFuZGFyZCBIZWFkZXJzLgorICovCisKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIFRoZSBTRVFVRU5DRSB0eXBlIHJlcHJlc2VudHMgYSBzZXQgb2Ygc3BlY2lmaWVkIHR5cGVzLiBUaGlzIGlzIHJvdWdobHkgYW5hbG9nb3VzIHRvIGEgPGNvZGU+c3RydWN0PC9jb2RlPiBpbiBDLgorICAgIC8vLyA8L3N1bW1hcnk+CisgICAgcHVibGljIHNlYWxlZCBjbGFzcyBTZXF1ZW5jZSA6IEJhc2VUeXBlCisgICAgeworICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyBDcmVhdGVzIGEgPHNlZSBjcmVmPSJTZXF1ZW5jZSIgLz4gaW5zdGFuY2UuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibW9kdWxlIj5UaGUgbW9kdWxlLjwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibmFtZSI+VGhlIG5hbWUuPC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzeW1ib2xzIj5UaGUgZW51bWVyYXRvci48L3BhcmFtPgorICAgICAgICBwdWJsaWMgU2VxdWVuY2UoSU1vZHVsZSBtb2R1bGUsIHN0cmluZyBuYW1lLCBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICAgICAgOiBiYXNlKG1vZHVsZSwgbmFtZSkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gcGFyc2UgYmV0d2VlbiAoICkKKyAgICAgICAgICAgIFN5bWJvbCB0ZW1wID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICBpbnQgYnJhY2tldFNlY3Rpb24gPSAwOworICAgICAgICAgICAgdGVtcC5FeHBlY3QoU3ltYm9sLk9wZW5CcmFja2V0KTsKKyAgICAgICAgICAgIGJyYWNrZXRTZWN0aW9uKys7CisgICAgICAgICAgICB3aGlsZSAoYnJhY2tldFNlY3Rpb24gPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlbXAgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgICAgICBpZiAodGVtcCA9PSBTeW1ib2wuT3BlbkJyYWNrZXQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBicmFja2V0U2VjdGlvbisrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmICh0ZW1wID09IFN5bWJvbC5DbG9zZUJyYWNrZXQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBicmFja2V0U2VjdGlvbi0tOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvU2VxdWVuY2VPZi5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UeXBlcy9TZXF1ZW5jZU9mLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxNjBjYTQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvU2VxdWVuY2VPZi5jcwpAQCAtMCwwICsxLDIzIEBACit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXMKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIFRoZSBTRVFVRU5DRSBPRiB0eXBlIHJlcHJlc2VudHMgYSBsaXN0IG9mIGRhdGEgc2V0cy4uCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICBwdWJsaWMgc2VhbGVkIGNsYXNzIFNlcXVlbmNlT2YgOiBCYXNlVHlwZQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSBzdHJpbmcgX3R5cGU7CisKKyAgICAgICAgcHVibGljIFNlcXVlbmNlT2YoSU1vZHVsZSBtb2R1bGUsIHN0cmluZyBuYW1lLCBJU3ltYm9sRW51bWVyYXRvciBzeW0pCisgICAgICAgICAgICA6IGJhc2UobW9kdWxlLCBuYW1lKQorICAgICAgICB7CisgICAgICAgICAgICBfdHlwZSA9IHN5bS5OZXh0Tm9uRU9MU3ltYm9sKCkuVG9TdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdHJpbmcgVHlwZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX3R5cGU7IH0KKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvVGV4dHVhbENvbnZlbnRpb24uY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvVGV4dHVhbENvbnZlbnRpb24uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWI0NzczMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9FbGVtZW50cy9UeXBlcy9UZXh0dWFsQ29udmVudGlvbi5jcwpAQCAtMCwwICsxLDIzOCBAQAor77u/dXNpbmcgU3lzdGVtOworCituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5UeXBlcworeworICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgVGV4dHVhbENvbnZlbnRpb24gOiBJVHlwZUFzc2lnbm1lbnQsIElUeXBlUmVmZXJyZXIKKyAgICB7CisgICAgICAgIHByaXZhdGUgSU1vZHVsZSBfbW9kdWxlOworICAgICAgICBwcml2YXRlIHN0cmluZyBfbmFtZTsKKyAgICAgICAgcHJpdmF0ZSBEaXNwbGF5SGludCBfZGlzcGxheUhpbnQ7CisgICAgICAgIHByaXZhdGUgU3RhdHVzIF9zdGF0dXM7CisgICAgICAgIHByaXZhdGUgc3RyaW5nIF9kZXNjcmlwdGlvbjsKKyAgICAgICAgcHJpdmF0ZSBzdHJpbmcgX3JlZmVyZW5jZTsKKyAgICAgICAgcHJpdmF0ZSBJVHlwZUFzc2lnbm1lbnQgX3N5bnRheDsKKworICAgICAgICBbU3lzdGVtLkRpYWdub3N0aWNzLkNvZGVBbmFseXNpcy5TdXBwcmVzc01lc3NhZ2UoIk1pY3Jvc29mdC5Vc2FnZSIsICJDQTE4MDE6UmV2aWV3VW51c2VkUGFyYW1ldGVycyIsIE1lc3NhZ2VJZCA9ICJtb2R1bGUiKV0KKyAgICAgICAgcHVibGljIFRleHR1YWxDb252ZW50aW9uKElNb2R1bGUgbW9kdWxlLCBzdHJpbmcgbmFtZSwgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgeworICAgICAgICAgICAgX21vZHVsZSA9IG1vZHVsZTsKKyAgICAgICAgICAgIF9uYW1lID0gbmFtZTsKKworICAgICAgICAgICAgX2Rpc3BsYXlIaW50ID0gUGFyc2VEaXNwbGF5SGludChzeW1ib2xzKTsKKyAgICAgICAgICAgIF9zdGF0dXMgICAgICA9IFBhcnNlU3RhdHVzKHN5bWJvbHMpOworICAgICAgICAgICAgX2Rlc2NyaXB0aW9uID0gUGFyc2VEZXNjcmlwdGlvbihzeW1ib2xzKTsKKyAgICAgICAgICAgIF9yZWZlcmVuY2UgICA9IFBhcnNlUmVmZXJlbmNlKHN5bWJvbHMpOworICAgICAgICAgICAgX3N5bnRheCAgICAgID0gUGFyc2VTeW50YXgobW9kdWxlLCBzeW1ib2xzKTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIERpc3BsYXlIaW50IFBhcnNlRGlzcGxheUhpbnQoSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgeworICAgICAgICAgICAgU3ltYm9sIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKworICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLkRpc3BsYXlIaW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGlzcGxheUhpbnQoc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCkuVG9TdHJpbmcoKS5UcmltKG5ldyBjaGFyW10geyAnIicgfSkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2soY3VycmVudCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIFN0YXR1cyBQYXJzZVN0YXR1cyhJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBTeW1ib2wgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLlN0YXR1cyk7CisKKyAgICAgICAgICAgIHRyeQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiAoU3RhdHVzKUVudW0uUGFyc2UodHlwZW9mKFN0YXR1cyksIHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpLlRvU3RyaW5nKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2F0Y2ggKEFyZ3VtZW50RXhjZXB0aW9uKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGN1cnJlbnQuQXNzZXJ0KGZhbHNlLCAiSW52YWxpZC9Vbmtub3duIHN0YXR1cyIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gU3RhdHVzLmN1cnJlbnQ7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBzdHJpbmcgUGFyc2VEZXNjcmlwdGlvbihJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBTeW1ib2wgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLkRlc2NyaXB0aW9uKTsKKworICAgICAgICAgICAgcmV0dXJuIHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpLlRvU3RyaW5nKCkuVHJpbShuZXcgY2hhcltdIHsgJyInIH0pOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgc3RyaW5nIFBhcnNlUmVmZXJlbmNlKElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN5bWJvbCBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisKKyAgICAgICAgICAgIGlmIChjdXJyZW50ID09IFN5bWJvbC5SZWZlcmVuY2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RyaW5nIHJlZmVyZW5jZSA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpLlRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgaWYgKChyZWZlcmVuY2UuTGVuZ3RoID49IDIpICYmIHJlZmVyZW5jZS5TdGFydHNXaXRoKCJcIiIpICYmIHJlZmVyZW5jZS5FbmRzV2l0aCgiXCIiKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWZlcmVuY2UuU3Vic3RyaW5nKDEsIHJlZmVyZW5jZS5MZW5ndGgtMik7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3ltYm9scy5QdXRCYWNrKGN1cnJlbnQpOworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBJVHlwZUFzc2lnbm1lbnQgUGFyc2VTeW50YXgoSU1vZHVsZSBtb2R1bGUsIElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN5bWJvbCBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICBjdXJyZW50LkV4cGVjdChTeW1ib2wuU3ludGF4KTsKKworICAgICAgICAgICAgLyogCisgICAgICAgICAgICAgKiBSRkMyNTc5IGRlZmluaXRpb246CisgICAgICAgICAgICAgKiAgICAgICBTeW50YXggOjo9ICAgLS0gTXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgICAgICAqICAgICAgICAgICAgICAgICAgICAtLSBhIGJhc2UgdHlwZSAob3IgaXRzIHJlZmluZW1lbnQpLCBvcgorICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgIC0tIGEgQklUUyBwc2V1ZG8tdHlwZQorICAgICAgICAgICAgICogICAgICAgICAgICAgICB0eXBlCisgICAgICAgICAgICAgKiAgICAgICAgICAgICB8ICJCSVRTIiAieyIgTmFtZWRCaXRzICJ9IgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIEZyb20gc2VjdGlvbiAzLjU6CisgICAgICAgICAgICAgKiAgICAgIFRoZSBkYXRhIHN0cnVjdHVyZSBtdXN0IGJlIG9uZSBvZiB0aGUgYWx0ZXJuYXRpdmVzIGRlZmluZWQKKyAgICAgICAgICAgICAqICAgICAgaW4gdGhlIE9iamVjdFN5bnRheCBDSE9JQ0Ugb3IgdGhlIEJJVFMgY29uc3RydWN0LiAgTm90ZQorICAgICAgICAgICAgICogICAgICB0aGF0IHRoaXMgbWVhbnMgdGhhdCB0aGUgU1lOVEFYIGNsYXVzZSBvZiBhIFRleHR1YWwKKyAgICAgICAgICAgICAqICAgICAgQ29udmVudGlvbiBjYW4gbm90IHJlZmVyIHRvIGEgcHJldmlvdXNseSBkZWZpbmVkIFRleHR1YWwKKyAgICAgICAgICAgICAqICAgICAgQ29udmVudGlvbi4KKyAgICAgICAgICAgICAqICAgICAgCisgICAgICAgICAgICAgKiAgICAgIFRoZSBTWU5UQVggY2xhdXNlIG9mIGEgVEVYVFVBTCBDT05WRU5USU9OIG1hY3JvIG1heSBiZQorICAgICAgICAgICAgICogICAgICBzdWItdHlwZWQgaW4gdGhlIHNhbWUgd2F5IGFzIHRoZSBTWU5UQVggY2xhdXNlIG9mIGFuCisgICAgICAgICAgICAgKiAgICAgIE9CSkVDVC1UWVBFIG1hY3JvLgorICAgICAgICAgICAgICogCisgICAgICAgICAgICAgKiBUaGVyZWZvcmUgdGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgKGdyb3VwZWQgYnkgdW5kZXJseWluZyB0eXBlKToKKyAgICAgICAgICAgICAqICAgICAgSU5URUdFUiwgSW50ZWdlcjMyCisgICAgICAgICAgICAgKiAgICAgIE9DVEVUIFNUUklORywgT3BhcXVlCisgICAgICAgICAgICAgKiAgICAgIE9CSkVDVCBJREVOVElGSUVSCisgICAgICAgICAgICAgKiAgICAgIElwQWRkcmVzcworICAgICAgICAgICAgICogICAgICBDb3VudGVyNjQKKyAgICAgICAgICAgICAqICAgICAgVW5zaWduZWQzMiwgQ291bnRlcjMyLCBHYXVnZTMyLCBUaW1lVGlja3MKKyAgICAgICAgICAgICAqICAgICAgQklUUworICAgICAgICAgICAgICogV2l0aCBhcHByb3ByaWF0ZSBzdWItdHlwaW5nLgorICAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIHJldHVybiBMZXhlci5QYXJzZUJhc2ljVHlwZURlZihtb2R1bGUsIFN0cmluZy5FbXB0eSwgc3ltYm9scywgaXNNYWNyb1N5bnRheDogdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSU1vZHVsZSBNb2R1bGUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9tb2R1bGU7IH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdHJpbmcgTmFtZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX25hbWU7IH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdHJpbmcgRGlzcGxheUhpbnQKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9kaXNwbGF5SGludCA9PSBudWxsID8gbnVsbCA6IF9kaXNwbGF5SGludC5Ub1N0cmluZygpOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgU3RhdHVzIFN0YXR1cworICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX3N0YXR1czsgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0cmluZyBEZXNjcmlwdGlvbgorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX2Rlc2NyaXB0aW9uOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RyaW5nIFJlZmVyZW5jZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX3JlZmVyZW5jZTsgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIElUeXBlQXNzaWdubWVudCBTeW50YXgKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9zeW50YXg7IH0KKyAgICAgICAgfQorCisgICAgICAgIC8vaW50ZXJuYWwgb2JqZWN0IERlY29kZShWYXJpYWJsZSB2KQorICAgICAgICAvL3sKKyAgICAgICAgLy8gICAgaWYgKF9zeW50YXggaXMgSW50ZWdlclR5cGUpCisgICAgICAgIC8vICAgIHsKKyAgICAgICAgLy8gICAgICAgIEludGVnZXIzMiBpID0gdi5EYXRhIGFzIEludGVnZXIzMjsKKyAgICAgICAgLy8gICAgICAgIGlmIChpID09IG51bGwgfHwgKF9zeW50YXggYXMgSW50ZWdlclR5cGUpLklzRW51bWVyYXRpb24pCisgICAgICAgIC8vICAgICAgICB7CisgICAgICAgIC8vICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIC8vICAgICAgICB9CisgICAgICAgIC8vICAgICAgICBlbHNlIGlmIChfZGlzcGxheUhpbnQgIT0gbnVsbCkKKyAgICAgICAgLy8gICAgICAgIHsKKyAgICAgICAgLy8gICAgICAgICAgICByZXR1cm4gX2Rpc3BsYXlIaW50LkRlY29kZShpLlRvSW50MzIoKSk7CisgICAgICAgIC8vICAgICAgICB9CisgICAgICAgIC8vICAgICAgICBlbHNlCisgICAgICAgIC8vICAgICAgICB7CisgICAgICAgIC8vICAgICAgICAgICAgcmV0dXJuIGkuVG9JbnQzMigpOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgICAvLyAgICB9CisgICAgICAgIC8vICAgIGVsc2UgaWYgKF9zeW50YXggaXMgVW5zaWduZWRUeXBlKQorICAgICAgICAvLyAgICB7CisgICAgICAgIC8vICAgICAgICBJbnRlZ2VyMzIgaSA9IHYuRGF0YSBhcyBJbnRlZ2VyMzI7CisgICAgICAgIC8vICAgICAgICBpZiAoaSA9PSBudWxsKQorICAgICAgICAvLyAgICAgICAgeworICAgICAgICAvLyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgICAvLyAgICAgICAgZWxzZSBpZiAoX2Rpc3BsYXlIaW50ICE9IG51bGwpCisgICAgICAgIC8vICAgICAgICB7CisgICAgICAgIC8vICAgICAgICAgICAgcmV0dXJuIF9kaXNwbGF5SGludC5EZWNvZGUoaS5Ub0ludDMyKCkpOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgICAvLyAgICAgICAgZWxzZQorICAgICAgICAvLyAgICAgICAgeworICAgICAgICAvLyAgICAgICAgICAgIHJldHVybiBpLlRvSW50MzIoKTsKKyAgICAgICAgLy8gICAgICAgIH0KKyAgICAgICAgLy8gICAgfQorICAgICAgICAvLyAgICBlbHNlIGlmIChfc3ludGF4IGlzIE9jdGV0U3RyaW5nVHlwZSkKKyAgICAgICAgLy8gICAgeworICAgICAgICAvLyAgICAgICAgT2N0ZXRTdHJpbmcgbyA9IHYuRGF0YSBhcyBPY3RldFN0cmluZzsKKyAgICAgICAgLy8gICAgICAgIGlmIChvID09IG51bGwpCisgICAgICAgIC8vICAgICAgICB7CisgICAgICAgIC8vICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIC8vICAgICAgICB9CisgICAgICAgIC8vICAgICAgICBlbHNlCisgICAgICAgIC8vICAgICAgICB7CisgICAgICAgIC8vICAgICAgICAgICAgLy8gVE9ETzogRm9sbG93IHRoZSBmb3JtYXQgc3BlY2lmaWVyIGZvciBvY3RldCBzdHJpbmdzLgorICAgICAgICAvLyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAvLyAgICAgICAgfQorICAgICAgICAvLyAgICB9CisgICAgICAgIC8vICAgIGVsc2UKKyAgICAgICAgLy8gICAgeworICAgICAgICAvLyAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIC8vICAgIH0KKyAgICAgICAgLy99CisKKyAgICAgICAgI3JlZ2lvbiBJVHlwZVJlZmVycmVyIE1lbWJlcgorCisgICAgICAgIHB1YmxpYyBJVHlwZUFzc2lnbm1lbnQgUmVmZXJyZWRUeXBlCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfc3ludGF4OyB9CisgICAgICAgICAgICBzZXQgeyBfc3ludGF4ID0gdmFsdWU7IH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBJVHlwZUFzc2lnbm1lbnQgQmFzZVR5cGUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSVR5cGVSZWZlcnJlciAgIHRyICAgICA9IHRoaXM7CisgICAgICAgICAgICAgICAgSVR5cGVBc3NpZ25tZW50IHJlc3VsdCA9IHRoaXM7CisKKyAgICAgICAgICAgICAgICB3aGlsZSAoKHRyICE9IG51bGwpICYmICh0ci5SZWZlcnJlZFR5cGUgIT0gbnVsbCkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0ci5SZWZlcnJlZFR5cGU7CisgICAgICAgICAgICAgICAgICAgIHRyID0gdHIuUmVmZXJyZWRUeXBlIGFzIElUeXBlUmVmZXJyZXI7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICNlbmRyZWdpb24KKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL1R5cGVBc3NpZ25tZW50LmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL1R5cGVBc3NpZ25tZW50LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNzRlZjYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvVHlwZUFzc2lnbm1lbnQuY3MKQEAgLTAsMCArMSwxNDcgQEAKKy8qCisgKiBDcmVhdGVkIGJ5IFNoYXJwRGV2ZWxvcC4KKyAqIFVzZXI6IGxleHRtCisgKiBEYXRlOiAyMDA4LzUvMTgKKyAqIFRpbWU6IDEzOjI0CisgKiAKKyAqIFRvIGNoYW5nZSB0aGlzIHRlbXBsYXRlIHVzZSBUb29scyB8IE9wdGlvbnMgfCBDb2RpbmcgfCBFZGl0IFN0YW5kYXJkIEhlYWRlcnMuCisgKi8KK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOworCituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5UeXBlcworeworICAgIC8qIFBsZWFzZSBiZSBhd2FyZSBvZiB0aGUgZm9sbG93aW5nIHBvc3NpYmxlIGNvbnN0cnVjdHM6CisgICAgICogCisgICAgICogICAgaXNuc1JlZ0VudGl0eUluZGV4ICAgICAgICAgIE9CSkVDVC1UWVBFCisgICAgICogICAgU1lOVEFYICAgICAgICAgICAgICAgICAgICAgIElzbnNFbnRpdHlJbmRleElkT3JaZXJvCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggMSAuLiA0Mjk0OTY3Mjk1ICkKKyAgICAgKiAgICBNQVgtQUNDRVNTICAgICAgICAgICAgICBub3QtYWNjZXNzaWJsZQorICAgICAqIAorICAgICAqIAorICAgICAqLworCisgICAgLy8vIDxzdW1tYXJ5Lz4KKyAgICAvLy8gPC9zdW1tYXJ5PgorICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgVHlwZUFzc2lnbm1lbnQgOiBJVHlwZUFzc2lnbm1lbnQKKyAgICB7CisgICAgICAgIHByaXZhdGUgSU1vZHVsZSBfbW9kdWxlOworICAgICAgICBwcml2YXRlIHN0cmluZyBfbmFtZTsKKyAgICAgICAgcHJpdmF0ZSBzdHJpbmcgX3R5cGU7CisgICAgICAgIHByaXZhdGUgVmFsdWVSYW5nZXMgX3JhbmdlczsKKyAgICAgICAgcHJpdmF0ZSBWYWx1ZU1hcCBfbWFwOworCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIENyZWF0ZXMgYW4gPHNlZSBjcmVmPSJUeXBlQXNzaWdubWVudCIgLz4uCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibW9kdWxlIj5UaGUgbW9kdWxlLjwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibmFtZSI+VGhlIG5hbWUuPC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJ0eXBlIj5UaGUgdHlwZS48L3BhcmFtPgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN5bWJvbHMiPlRoZSBzeW1ib2xzLjwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaXNNYWNyb1N5bnRheCI+aWYgc2V0IHRvIDxjPnRydWU8L2M+IGluZGljYXRlcyB0aGF0IHRoZSBzeW50YXggY2xhdXNlIG9mIGEgbWFjcm8gaXMgcGFyc2VkIChlLmcuIE9CSkVDVC1UWVBFLCBURVhUVUFMLUNPTlZFTlRJT04pLjwvcGFyYW0+CisgICAgICAgIHB1YmxpYyBUeXBlQXNzaWdubWVudChJTW9kdWxlIG1vZHVsZSwgc3RyaW5nIG5hbWUsIFN5bWJvbCB0eXBlLCBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzLCBib29sIGlzTWFjcm9TeW50YXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIF9tb2R1bGUgPSBtb2R1bGU7CisgICAgICAgICAgICBfbmFtZSAgID0gbmFtZTsKKworICAgICAgICAgICAgU3ltYm9sTGlzdCB0eXBlU3ltYm9scyA9IG5ldyBTeW1ib2xMaXN0KCk7CisgICAgICAgICAgICB0eXBlU3ltYm9scy5BZGQodHlwZSk7CisKKyAgICAgICAgICAgIFN5bWJvbCBjdXJyZW50ID0gc3ltYm9scy5OZXh0U3ltYm9sKCk7CisgICAgICAgICAgICB3aGlsZSAoY3VycmVudCAhPSBTeW1ib2wuRU9MKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ID09IFN5bWJvbC5PcGVuUGFyZW50aGVzZXMpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBwYXJzZSByYW5nZSBvZiB1bmtub3duIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgc3ltYm9scy5QdXRCYWNrKGN1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBfcmFuZ2VzID0gTGV4ZXIuRGVjb2RlUmFuZ2VzKHN5bWJvbHMpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCA9PSBTeW1ib2wuT3BlbkJyYWNrZXQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2soY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgIF9tYXAgPSBMZXhlci5EZWNvZGVFbnVtZXJhdGlvbnMoc3ltYm9scyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHR5cGVTeW1ib2xzLkFkZChjdXJyZW50KTsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0U3ltYm9sKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIF90eXBlID0gdHlwZVN5bWJvbHMuSm9pbigiICIpOworCisgICAgICAgICAgICBpZiAoKF9yYW5nZXMgPT0gbnVsbCkgJiYgKF9tYXAgPT0gbnVsbCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ID09IFN5bWJvbC5PcGVuUGFyZW50aGVzZXMpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBwYXJzZSByYW5nZSBvZiB1bmtub3duIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgc3ltYm9scy5QdXRCYWNrKGN1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICBfcmFuZ2VzID0gTGV4ZXIuRGVjb2RlUmFuZ2VzKHN5bWJvbHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChjdXJyZW50ID09IFN5bWJvbC5PcGVuQnJhY2tldCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHN5bWJvbHMuUHV0QmFjayhjdXJyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgX21hcCA9IExleGVyLkRlY29kZUVudW1lcmF0aW9ucyhzeW1ib2xzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudCAhPSBudWxsKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc3ltYm9scy5QdXRCYWNrKGN1cnJlbnQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzTWFjcm9TeW50YXgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gaW5zaWRlIGEgbWFjcm8gdGhlIHN5bnRheCBpcyBsaW1pdGVkIHRvIG9uZSBsaW5lLCBleGNlcHQgdGhlcmUgYXJlIGJyYWNrZXRzIHVzZWQgZm9yIHJhbmdlcy9lbnVtcworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gb3V0c2lkZSBtYWNybyBTeW50YXggY2xhdXNlIHdlICB3YWl0IGZvciB0d28gY29uc2VjdXRpdmUgbGluZWJyZWFrcyB3aXRoIGEgZm9sbG93aW5nIHZhbGlkIGlkZW50aWZpZXIgYXMgZW5kIGNvbmRpdGlvbiAgICAgICAgIAorICAgICAgICAgICAgU3ltYm9sIHByZXZpb3VzID0gY3VycmVudDsKKyAgICAgICAgICAgIFN5bWJvbCB2ZXJ5UHJldmlvdXMgPSBudWxsOworCisgICAgICAgICAgICB3aGlsZSAoKGN1cnJlbnQgPSBzeW1ib2xzLk5leHRTeW1ib2woKSkgIT0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoKHZlcnlQcmV2aW91cyA9PSBTeW1ib2wuRU9MKSAmJiAocHJldmlvdXMgPT0gU3ltYm9sLkVPTCkgJiYgY3VycmVudC5Jc1ZhbGlkSWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc3ltYm9scy5QdXRCYWNrKGN1cnJlbnQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdmVyeVByZXZpb3VzID0gcHJldmlvdXM7CisgICAgICAgICAgICAgICAgcHJldmlvdXMgPSBjdXJyZW50OworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwcmV2aW91cy5Bc3NlcnQoZmFsc2UsICJlbmQgb2YgZmlsZSByZWFjaGVkIik7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RyaW5nIFR5cGUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF90eXBlOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVmFsdWVSYW5nZXMgUmFuZ2VzCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfcmFuZ2VzOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSURpY3Rpb25hcnk8bG9uZywgc3RyaW5nPiBNYXAKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9tYXA7IH0KKyAgICAgICAgfQorCisgICAgICAgICNyZWdpb24gSVR5cGVBc3NpZ25tZW50IE1lbWJlcgorCisgICAgICAgIHB1YmxpYyBJTW9kdWxlIE1vZHVsZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX21vZHVsZTsgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0cmluZyBOYW1lCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfbmFtZTsgfQorICAgICAgICB9CisKKyAgICAgICAgI2VuZHJlZ2lvbgorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvRWxlbWVudHMvVHlwZXMvVW5zaWduZWRUeXBlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL1Vuc2lnbmVkVHlwZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODY2ZmM5Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0VsZW1lbnRzL1R5cGVzL1Vuc2lnbmVkVHlwZS5jcwpAQCAtMCwwICsxLDEwMyBAQAor77u/dXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLlR5cGVzCit7CisgICAgLyoqCisgICAgICogQXMgdGhpcyB0eXBlIGlzIHVzZWQgZm9yIENvdW50ZXIzMiBhbmQgVGltZVRpY2tzIGFzIHdlbGwgYXMgVW5zaWduZWQzMgorICAgICAqIGFuZCBHYXVnZTMyIGl0IGluY29ycmVjdGx5IGFsbG93cyByYW5nZSByZXN0cmljdGlvbnMgb2YgQ291bnRlcjMyIGFuZAorICAgICAqIFRpbWVUaWNrcy4gIFRoaXMgaXMgb2sgYXMgY3VycmVudGx5IHdlIGRvIG5vdCBjYXJlIGFib3V0IGRldGVjdGluZworICAgICAqIGluY29ycmVjdCBNSUJzIGFuZCB0aGlzIGRvZXNuJ3QgYmxvY2sgdGhlIGRlY29kaW5nIG9mIGNvcnJlY3QgTUlCcy4KKyAgICAgKi8KKyAgICBwdWJsaWMgY2xhc3MgVW5zaWduZWRUeXBlIDogQmFzZVR5cGUKKyAgICB7CisgICAgICAgIHB1YmxpYyBlbnVtIFR5cGVzCisgICAgICAgIHsKKyAgICAgICAgICAgIFVuc2lnbmVkMzIsCisgICAgICAgICAgICBHYXVnZTMyLAorICAgICAgICAgICAgQ291bnRlcjMyLAorICAgICAgICAgICAgVGltZVRpY2tzLAorICAgICAgICAgICAgQ291bnRlcjY0LAorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBUeXBlcyBfdHlwZTsKKyAgICAgICAgcHJpdmF0ZSBWYWx1ZVJhbmdlcyBfcmFuZ2VzOworCisgICAgICAgIHB1YmxpYyBVbnNpZ25lZFR5cGUoSU1vZHVsZSBtb2R1bGUsIHN0cmluZyBuYW1lLCBTeW1ib2wgdHlwZSwgSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgICAgIDogYmFzZShtb2R1bGUsIG5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIFR5cGVzPyB0ID0gR2V0RXhhY3RUeXBlKHR5cGUpOworICAgICAgICAgICAgdHlwZS5Bc3NlcnQodC5IYXNWYWx1ZSwgIlVua25vd24gc3ltYm9sIGZvciB1bnNpZ25lZCB0eXBlISIpOworICAgICAgICAgICAgX3R5cGUgPSB0LlZhbHVlOworCisgICAgICAgICAgICBTeW1ib2wgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLk9wZW5QYXJlbnRoZXNlcykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50LkFzc2VydCgoX3R5cGUgIT0gVHlwZXMuQ291bnRlcjY0KSwgIlJhbmdlcyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgQ291bnRlcjY0IHR5cGUhIik7IC8vIG91ciBpbnRlcm5hbCBzdHJ1Y3QgY2FuIG9ubHkgaG9sZCBpbnQ2NCB2YWx1ZXMKKworICAgICAgICAgICAgICAgIHN5bWJvbHMuUHV0QmFjayhjdXJyZW50KTsKKyAgICAgICAgICAgICAgICBfcmFuZ2VzID0gTGV4ZXIuRGVjb2RlUmFuZ2VzKHN5bWJvbHMpOworICAgICAgICAgICAgICAgIGN1cnJlbnQuQXNzZXJ0KCFfcmFuZ2VzLklzU2l6ZURlY2xhcmF0aW9uLCAiU0laRSBrZXl3b3JkIGlzIG5vdCBhbGxvd2VkIGZvciByYW5nZXMgb2YgdW5zaWduZWQgdHlwZXMhIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3ltYm9scy5QdXRCYWNrKGN1cnJlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIFR5cGVzIFR5cGUKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF90eXBlOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgVmFsdWVSYW5nZXMgUmFuZ2VzCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfcmFuZ2VzOyB9CisgICAgICAgIH0KKworICAgICAgICBpbnRlcm5hbCBzdGF0aWMgVHlwZXM/IEdldEV4YWN0VHlwZShTeW1ib2wgc3ltYm9sKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoc3ltYm9sID09IFN5bWJvbC5VbnNpZ25lZDMyKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFtBUFBMSUNBVElPTiAyXSBJTVBMSUNJVCBJTlRFR0VSICgwLi40Mjk0OTY3Mjk1KSAvLyBmcm9tIFNOTVB2Mi1TTUkKKyAgICAgICAgICAgICAgICByZXR1cm4gVHlwZXMuVW5zaWduZWQzMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHN5bWJvbCA9PSBTeW1ib2wuR2F1Z2UzMikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBbQVBQTElDQVRJT04gMl0gSU1QTElDSVQgSU5URUdFUiAoMC4uNDI5NDk2NzI5NSkgLy8gZnJvbSBTTk1QdjItU01JCisgICAgICAgICAgICAgICAgcmV0dXJuIFR5cGVzLkdhdWdlMzI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzeW1ib2wgPT0gU3ltYm9sLkNvdW50ZXIzMikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBbQVBQTElDQVRJT04gMV0gSU1QTElDSVQgSU5URUdFUiAoMC4uNDI5NDk2NzI5NSkgLy8gZnJvbSBTTk1QdjItU01JCisgICAgICAgICAgICAgICAgcmV0dXJuIFR5cGVzLkNvdW50ZXIzMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHN5bWJvbCA9PSBTeW1ib2wuVGltZVRpY2tzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFtBUFBMSUNBVElPTiAzXSBJTVBMSUNJVCBJTlRFR0VSICgwLi40Mjk0OTY3Mjk1KSAvLyBmcm9tIFNOTVB2Mi1TTUkgKyBSRkMxMTU1LVNNSQorICAgICAgICAgICAgICAgIHJldHVybiBUeXBlcy5UaW1lVGlja3M7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzeW1ib2wgPT0gU3ltYm9sLkdhdWdlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIFtBUFBMSUNBVElPTiAyXSBJTVBMSUNJVCBJTlRFR0VSICgwLi40Mjk0OTY3Mjk1KSAvLyBmcm9tIFJGQzExNTUtU01JCisgICAgICAgICAgICAgICAgcmV0dXJuIFR5cGVzLkdhdWdlMzI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChzeW1ib2wgPT0gU3ltYm9sLkNvdW50ZXIpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gW0FQUExJQ0FUSU9OIDFdIElNUExJQ0lUIElOVEVHRVIgKDAuLjQyOTQ5NjcyOTUpIC8vIGZyb20gUkZDMTE1NS1TTUkKKyAgICAgICAgICAgICAgICByZXR1cm4gVHlwZXMuQ291bnRlcjMyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoc3ltYm9sID09IFN5bWJvbC5Db3VudGVyNjQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAvLyBbQVBQTElDQVRJT04gNl0gSU1QTElDSVQgSU5URUdFUiAoMC4uMTg0NDY3NDQwNzM3MDk1NTE2MTUpIC8vIGZyb20gU05NUHYyLVNNSQorICAgICAgICAgICAgICAgcmV0dXJuIFR5cGVzLkNvdW50ZXI2NDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBpbnRlcm5hbCBzdGF0aWMgYm9vbCBJc1Vuc2lnbmVkVHlwZShTeW1ib2wgc3ltYm9sKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gR2V0RXhhY3RUeXBlKHN5bWJvbCkuSGFzVmFsdWU7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvSU1vZHVsZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9JTW9kdWxlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MWFiMTIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvSU1vZHVsZS5jcwpAQCAtMCwwICsxLDgxIEBACisvLyBNb2R1bGUgaW50ZXJmYWNlLgorLy8gQ29weXJpZ2h0IChDKSAyMDA4LTIwMTAgTWFsY29sbSBDcm93ZSwgTGV4IExpLCBhbmQgb3RoZXIgY29udHJpYnV0b3JzLgorLy8gCisvLyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisvLyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisvLyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKy8vIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLy8gCisvLyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisvLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorLy8gTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKy8vIAorLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworLy8gTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorCisvKgorICogQ3JlYXRlZCBieSBTaGFycERldmVsb3AuCisgKiBVc2VyOiBsZXh0bQorICogRGF0ZTogNS8xLzIwMDkKKyAqIFRpbWU6IDEwOjQwIEFNCisgKiAKKyAqIFRvIGNoYW5nZSB0aGlzIHRlbXBsYXRlIHVzZSBUb29scyB8IE9wdGlvbnMgfCBDb2RpbmcgfCBFZGl0IFN0YW5kYXJkIEhlYWRlcnMuCisgKi8KK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwordXNpbmcgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5FbnRpdGllczsKK3VzaW5nIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXM7Cit1c2luZyBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzOworCituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYgoreworICAgIC8vLyA8c3VtbWFyeT4KKyAgICAvLy8gTUlCIE1vZHVsZSBpbnRlcmZhY2UuCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICBwdWJsaWMgaW50ZXJmYWNlIElNb2R1bGUKKyAgICB7CisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIE1vZHVsZSBuYW1lLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICBzdHJpbmcgTmFtZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQ7CisgICAgICAgIH0KKworICAgICAgICBFeHBvcnRzIEV4cG9ydHMKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0OworICAgICAgICB9CisKKyAgICAgICAgSW1wb3J0cyBJbXBvcnRzCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldDsKKyAgICAgICAgfQorCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIEVudGl0aWVzICsgVHlwZXMgKyBhbGwgb3RoZXIgZWxlbWVudHMgaW1wbGVtZW50aW5nIElEZWNsYXJhdGlvbgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICBJTGlzdDxJRGVjbGFyYXRpb24+IERlY2xhcmF0aW9ucworICAgICAgICB7CisgICAgICAgICAgICBnZXQ7CisgICAgICAgIH0KKworICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyBFbnRpdGllcy4KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4KKyAgICAgICAgSUxpc3Q8SUVudGl0eT4gRW50aXRpZXMKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0OworICAgICAgICB9CisKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gS25vd24gdHlwZXMuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIElMaXN0PElUeXBlQXNzaWdubWVudD4gVHlwZXMKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0OworICAgICAgICB9CisgICAgICAgCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0lTeW1ib2xFbnVtZXJhdG9yLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0lTeW1ib2xFbnVtZXJhdG9yLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZGQ1OTIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvSVN5bWJvbEVudW1lcmF0b3IuY3MKQEAgLTAsMCArMSw5IEBACivvu791c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIKK3sKKyAgICBwdWJsaWMgaW50ZXJmYWNlIElTeW1ib2xFbnVtZXJhdG9yOiBJRW51bWVyYXRvcjxTeW1ib2w+CisgICAgeworICAgICAgICBib29sIFB1dEJhY2soU3ltYm9sIGl0ZW0pOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9MZXhlci5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9MZXhlci5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmYyODQ0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL0xleGVyLmNzCkBAIC0wLDAgKzEsNTgxIEBACisvKgorICogQ3JlYXRlZCBieSBTaGFycERldmVsb3AuCisgKiBVc2VyOiBsZXh0bQorICogRGF0ZTogMjAwOC81LzE3CisgKiBUaW1lOiAxNjo1MAorICoKKyAqIFRvIGNoYW5nZSB0aGlzIHRlbXBsYXRlIHVzZSBUb29scyB8IE9wdGlvbnMgfCBDb2RpbmcgfCBFZGl0IFN0YW5kYXJkIEhlYWRlcnMuCisgKi8KKwordXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cit1c2luZyBTeXN0ZW0uSU87Cit1c2luZyBTeXN0ZW0uVGV4dDsKK3VzaW5nIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXM7CisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliCit7CisgICAgLy8vIDxzdW1tYXJ5PgorICAgIC8vLyBMZXhlciBjbGFzcyB0aGF0IHBhcnNlcyBNSUIgZmlsZXMgaW50byBzeW1ib2wgbGlzdC4KKyAgICAvLy8gPC9zdW1tYXJ5PgorICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgTGV4ZXIKKyAgICB7CisgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgU3ltYm9sTGlzdCBfc3ltYm9scyA9IG5ldyBTeW1ib2xMaXN0KCk7CisKKyAgICAgICAgcHVibGljIExleGVyKHN0cmluZyBmaWxlKQorICAgICAgICAgICAgOiB0aGlzKGZpbGUsIG5ldyBTdHJlYW1SZWFkZXIoZmlsZSkpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBMZXhlcihzdHJpbmcgZmlsZSwgVGV4dFJlYWRlciBzdHJlYW0pCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuUGFyc2UoZmlsZSwgc3RyZWFtKTsKKyAgICAgICAgfQorCisKKyAgICAgICAgcHVibGljIElTeW1ib2xFbnVtZXJhdG9yIEdldEVudW1lcmF0b3IoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gX3N5bWJvbHMuR2V0U3ltYm9sRW51bWVyYXRvcigpOworICAgICAgICB9CisKKworICAgICAgICAjcmVnaW9uIFBhcnNpbmcgb2YgTUlCIEZpbGUKKworICAgICAgICBwcml2YXRlIGNsYXNzIFBhcnNlUGFyYW1zCisgICAgICAgIHsKKyAgICAgICAgICAgIHB1YmxpYyBzdHJpbmcgRmlsZTsKKyAgICAgICAgICAgIHB1YmxpYyBTdHJpbmdCdWlsZGVyIFRlbXAgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworICAgICAgICAgICAgcHVibGljIGJvb2wgU3RyaW5nU2VjdGlvbiA9IGZhbHNlOworICAgICAgICAgICAgcHVibGljIGJvb2wgQXNzaWduU2VjdGlvbiA9IGZhbHNlOworICAgICAgICAgICAgcHVibGljIGJvb2wgQXNzaWduQWhlYWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHB1YmxpYyBib29sIERvdFNlY3Rpb24gPSBmYWxzZTsKKworICAgICAgICB9CisKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gUGFyc2VzIE1JQiBmaWxlIHRvIHN5bWJvbCBsaXN0LgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpbGUiPkZpbGU8L3BhcmFtPgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9InN0cmVhbSI+RmlsZSBzdHJlYW08L3BhcmFtPgorICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2Uoc3RyaW5nIGZpbGUsIFRleHRSZWFkZXIgc3RyZWFtKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoc3RyZWFtID09IG51bGwpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbigic3RyZWFtIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFBhcnNlUGFyYW1zIHBwID0gbmV3IFBhcnNlUGFyYW1zKCk7CisgICAgICAgICAgICBwcC5GaWxlID0gZmlsZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgc3RyaW5nIGxpbmU7CisgICAgICAgICAgICBpbnQgcm93ID0gMDsKKyAgICAgICAgICAgIHdoaWxlICgobGluZSA9IHN0cmVhbS5SZWFkTGluZSgpKSAhPSBudWxsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICghcHAuU3RyaW5nU2VjdGlvbiAmJiBsaW5lLlRyaW1TdGFydCgpLlN0YXJ0c1dpdGgoIi0tIiwgU3RyaW5nQ29tcGFyaXNvbi5PcmRpbmFsKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJvdysrOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgLy8gY29tbWVudGVkIGxpbmUKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBQYXJzZUxpbmUocHAsIGxpbmUsIHJvdyk7CisgICAgICAgICAgICAgICAgcm93Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VMaW5lKFBhcnNlUGFyYW1zIHBwLCBzdHJpbmcgbGluZSwgaW50IHJvdykKKyAgICAgICAgeworICAgICAgICAgICAgbGluZSA9IGxpbmUgKyAiXG4iOworICAgICAgICAgICAgaW50IGNvdW50ID0gbGluZS5MZW5ndGg7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNvdW50OyBpKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY2hhciBjdXJyZW50ID0gbGluZVtpXTsKKyAgICAgICAgICAgICAgICBib29sIG1vdmVOZXh0ID0gUGFyc2UocHAsIGN1cnJlbnQsIHJvdywgaSk7CisgICAgICAgICAgICAgICAgaWYgKG1vdmVOZXh0KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBib29sIFBhcnNlKFBhcnNlUGFyYW1zIHBwLCBjaGFyIGN1cnJlbnQsIGludCByb3csIGludCBjb2x1bW4pCisgICAgICAgIHsKKyAgICAgICAgICAgIHN3aXRjaCAoY3VycmVudCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYXNlICdcbic6CisgICAgICAgICAgICAgICAgY2FzZSAneyc6CisgICAgICAgICAgICAgICAgY2FzZSAnfSc6CisgICAgICAgICAgICAgICAgY2FzZSAnKCc6CisgICAgICAgICAgICAgICAgY2FzZSAnKSc6CisgICAgICAgICAgICAgICAgY2FzZSAnWyc6CisgICAgICAgICAgICAgICAgY2FzZSAnXSc6CisgICAgICAgICAgICAgICAgY2FzZSAnOyc6CisgICAgICAgICAgICAgICAgY2FzZSAnLCc6CisgICAgICAgICAgICAgICAgY2FzZSAnfCc6CisgICAgICAgICAgICAgICAgICAgIGlmICghcHAuU3RyaW5nU2VjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBtb3ZlTmV4dCA9IFBhcnNlTGFzdFN5bWJvbChwcCwgcm93LCBjb2x1bW4pOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1vdmVOZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zeW1ib2xzLkFkZChDcmVhdGVTcGVjaWFsU3ltYm9sKHBwLkZpbGUsICdcbicsIHJvdywgY29sdW1uKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIF9zeW1ib2xzLkFkZChDcmVhdGVTcGVjaWFsU3ltYm9sKHBwLkZpbGUsIGN1cnJlbnQsIHJvdywgY29sdW1uKSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICciJzoKKyAgICAgICAgICAgICAgICAgICAgcHAuU3RyaW5nU2VjdGlvbiA9ICFwcC5TdHJpbmdTZWN0aW9uOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdccic6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBpZiAoKGludCljdXJyZW50ID09IDB4MUEpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElNUE9SVEFOVDogaWdub3JlIGludmlzaWJsZSBjaGFyYWN0ZXJzIHN1Y2ggYXMgU1VCLgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAoQ2hhci5Jc1doaXRlU3BhY2UoY3VycmVudCkgJiYgIXBwLkFzc2lnblNlY3Rpb24gJiYgIXBwLlN0cmluZ1NlY3Rpb24pCisgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgbW92ZU5leHQgPSBQYXJzZUxhc3RTeW1ib2wocHAsIHJvdywgY29sdW1uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtb3ZlTmV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc3ltYm9scy5BZGQoQ3JlYXRlU3BlY2lhbFN5bWJvbChwcC5GaWxlLCAnXG4nLCByb3csIGNvbHVtbikpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIChwcC5Bc3NpZ25BaGVhZCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcHAuQXNzaWduQWhlYWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlTGFzdFN5bWJvbChwcCwgcm93LCBjb2x1bW4pOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAocHAuRG90U2VjdGlvbiAmJiBjdXJyZW50ICE9ICcuJykKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VMYXN0U3ltYm9sKHBwLCByb3csIGNvbHVtbik7CisgICAgICAgICAgICAgICAgICAgICAgICBwcC5Eb3RTZWN0aW9uID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSAnLicgJiYgIXBwLlN0cmluZ1NlY3Rpb24pCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcHAuRG90U2VjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZUxhc3RTeW1ib2wocHAsIHJvdywgY29sdW1uKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcC5Eb3RTZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gJzonICYmICFwcC5TdHJpbmdTZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICB7ICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcC5Bc3NpZ25TZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlTGFzdFN5bWJvbChwcCwgcm93LCBjb2x1bW4pOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBwcC5Bc3NpZ25TZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gJz0nICYmICFwcC5TdHJpbmdTZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcC5Bc3NpZ25TZWN0aW9uID0gZmFsc2U7IAorICAgICAgICAgICAgICAgICAgICAgICAgcHAuQXNzaWduQWhlYWQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBwLlRlbXAuQXBwZW5kKGN1cnJlbnQpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBib29sIFBhcnNlTGFzdFN5bWJvbChQYXJzZVBhcmFtcyBwcCwgaW50IHJvdywgaW50IGNvbHVtbikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBwLlRlbXAuTGVuZ3RoID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBTeW1ib2wgcyA9IG5ldyBTeW1ib2wocHAuRmlsZSwgcHAuVGVtcC5Ub1N0cmluZygpLCByb3csIGNvbHVtbik7CisKKyAgICAgICAgICAgICAgICBwcC5UZW1wLkxlbmd0aCA9IDA7CisKKyAgICAgICAgICAgICAgICBpZiAocy5Ub1N0cmluZygpLlN0YXJ0c1dpdGgoU3ltYm9sLkNvbW1lbnQuVG9TdHJpbmcoKSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvLyBpZ25vcmUgdGhlIHJlc3Qgc3ltYm9scyBvbiB0aGlzIGxpbmUgYmVjYXVzZSB0aGV5IGFyZSBpbiBjb21tZW50LgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBfc3ltYm9scy5BZGQocyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIFN5bWJvbCBDcmVhdGVTcGVjaWFsU3ltYm9sKHN0cmluZyBmaWxlLCBjaGFyIHZhbHVlLCBpbnQgcm93LCBpbnQgY29sdW1uKQorICAgICAgICB7CisgICAgICAgICAgICBzdHJpbmcgc3RyOworICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjYXNlICdcbic6CisgICAgICAgICAgICAgICAgICAgIHN0ciA9IEVudmlyb25tZW50Lk5ld0xpbmU7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3snOgorICAgICAgICAgICAgICAgICAgICBzdHIgPSAieyI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ30nOgorICAgICAgICAgICAgICAgICAgICBzdHIgPSAifSI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJygnOgorICAgICAgICAgICAgICAgICAgICBzdHIgPSAiKCI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJyknOgorICAgICAgICAgICAgICAgICAgICBzdHIgPSAiKSI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1snOgorICAgICAgICAgICAgICAgICAgICBzdHIgPSAiWyI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ10nOgorICAgICAgICAgICAgICAgICAgICBzdHIgPSAiXSI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJzsnOgorICAgICAgICAgICAgICAgICAgICBzdHIgPSAiOyI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJywnOgorICAgICAgICAgICAgICAgICAgICBzdHIgPSAiLCI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ3wnOgorICAgICAgICAgICAgICAgICAgICBzdHIgPSAifCI7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudEV4Y2VwdGlvbigidmFsdWUgaXMgbm90IGEgc3BlY2lhbCBjaGFyYWN0ZXIiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG5ldyBTeW1ib2woZmlsZSwgc3RyLCByb3csIGNvbHVtbik7CisgICAgICAgIH0KKworICAgICAgICAjZW5kcmVnaW9uCisKKyAgICAgICAgI3JlZ2lvbiBTdGF0aWMgUGFyc2UgSGVscGVyCisKKyAgICAgICAgcHVibGljIHN0YXRpYyBJVHlwZUFzc2lnbm1lbnQgUGFyc2VCYXNpY1R5cGVEZWYoSU1vZHVsZSBtb2R1bGUsIHN0cmluZyBuYW1lLCBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzLCBib29sIGlzTWFjcm9TeW50YXggPSBmYWxzZSkKKyAgICAgICAgeworICAgICAgICAgICAgU3ltYm9sIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKworICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLkJpdHMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCaXRzVHlwZShtb2R1bGUsIG5hbWUsIHN5bWJvbHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKEludGVnZXJUeXBlLklzSW50ZWdlclR5cGUoY3VycmVudCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnRlZ2VyVHlwZShtb2R1bGUsIG5hbWUsIGN1cnJlbnQsIHN5bWJvbHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKFVuc2lnbmVkVHlwZS5Jc1Vuc2lnbmVkVHlwZShjdXJyZW50KSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFVuc2lnbmVkVHlwZShtb2R1bGUsIG5hbWUsIGN1cnJlbnQsIHN5bWJvbHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLk9wYXF1ZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE9wYXF1ZVR5cGUobW9kdWxlLCBuYW1lLCBzeW1ib2xzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjdXJyZW50ID09IFN5bWJvbC5JcEFkZHJlc3MpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBJcEFkZHJlc3NUeXBlKG1vZHVsZSwgbmFtZSwgc3ltYm9scyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuVGV4dHVhbENvbnZlbnRpb24pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBUZXh0dWFsQ29udmVudGlvbihtb2R1bGUsIG5hbWUsIHN5bWJvbHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLk9jdGV0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFN5bWJvbCBuZXh0ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisKKyAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSBTeW1ib2wuU3RyaW5nKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBPY3RldFN0cmluZ1R5cGUobW9kdWxlLCBuYW1lLCBzeW1ib2xzKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2sobmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuT2JqZWN0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFN5bWJvbCBuZXh0ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisKKyAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSBTeW1ib2wuSWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgT2JqZWN0SWRlbnRpZmllclR5cGUobW9kdWxlLCBuYW1lLCBzeW1ib2xzKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2sobmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuU2VxdWVuY2UpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgU3ltYm9sIG5leHQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKworICAgICAgICAgICAgICAgIGlmIChuZXh0ID09IFN5bWJvbC5PZikKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2VxdWVuY2VPZihtb2R1bGUsIG5hbWUsIHN5bWJvbHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBzeW1ib2xzLlB1dEJhY2sobmV4dCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU2VxdWVuY2UobW9kdWxlLCBuYW1lLCBzeW1ib2xzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuQ2hvaWNlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ2hvaWNlKG1vZHVsZSwgbmFtZSwgc3ltYm9scyk7CisgICAgICAgICAgICB9CisKKworICAgICAgICAgICAgcmV0dXJuIG5ldyBUeXBlQXNzaWdubWVudChtb2R1bGUsIG5hbWUsIGN1cnJlbnQsIHN5bWJvbHMsIGlzTWFjcm9TeW50YXgpOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIFBhcnNlT2lkVmFsdWUoSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scywgb3V0IHN0cmluZyBwYXJlbnQsIG91dCB1aW50IHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBwYXJlbnQgPSBudWxsOworICAgICAgICAgICAgdmFsdWUgPSAwOworICAgICAgICAgICAgCisgICAgICAgICAgICBTeW1ib2wgY3VycmVudCAgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgIGN1cnJlbnQuRXhwZWN0KFN5bWJvbC5PcGVuQnJhY2tldCk7CisKKyAgICAgICAgICAgIFN5bWJvbCBwcmV2aW91cyA9IG51bGw7CisgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIGxvbmdQYXJlbnQgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworCisgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICBsb25nUGFyZW50LkFwcGVuZChjdXJyZW50KTsKKworICAgICAgICAgICAgd2hpbGUgKChjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCkpICE9IG51bGwpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYm9vbCBzdWNjZWVkZWQ7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuT3BlblBhcmVudGhlc2VzKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbG9uZ1BhcmVudC5BcHBlbmQoY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICAgICAgICAgIHN1Y2NlZWRlZCA9IFVJbnQzMi5UcnlQYXJzZShjdXJyZW50LlRvU3RyaW5nKCksIG91dCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuQXNzZXJ0KHN1Y2NlZWRlZCwgIm5vdCBhIGRlY2ltYWwiKTsKKyAgICAgICAgICAgICAgICAgICAgbG9uZ1BhcmVudC5BcHBlbmQoY3VycmVudCk7CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLkNsb3NlUGFyZW50aGVzZXMpOworICAgICAgICAgICAgICAgICAgICBsb25nUGFyZW50LkFwcGVuZChjdXJyZW50KTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgPT0gU3ltYm9sLkNsb3NlQnJhY2tldCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHBhcmVudCA9IGxvbmdQYXJlbnQuVG9TdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHN1Y2NlZWRlZCA9IFVJbnQzMi5UcnlQYXJzZShjdXJyZW50LlRvU3RyaW5nKCksIG91dCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKHN1Y2NlZWRlZCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIG51bWVyaWNhbCB3YXkKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKChjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCkpICE9IFN5bWJvbC5DbG9zZUJyYWNrZXQpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdQYXJlbnQuQXBwZW5kKCIuIikuQXBwZW5kKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2NlZWRlZCA9IFVJbnQzMi5UcnlQYXJzZShjdXJyZW50LlRvU3RyaW5nKCksIG91dCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LkFzc2VydChzdWNjZWVkZWQsICJub3QgYSBkZWNpbWFsIik7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBjdXJyZW50LkV4cGVjdChTeW1ib2wuQ2xvc2VCcmFja2V0KTsKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50ID0gbG9uZ1BhcmVudC5Ub1N0cmluZygpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgbG9uZ1BhcmVudC5BcHBlbmQoIi4iKTsKKyAgICAgICAgICAgICAgICBsb25nUGFyZW50LkFwcGVuZChjdXJyZW50KTsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLk9wZW5QYXJlbnRoZXNlcyk7CisgICAgICAgICAgICAgICAgbG9uZ1BhcmVudC5BcHBlbmQoY3VycmVudCk7CisgICAgICAgICAgICAgICAgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgICAgIHN1Y2NlZWRlZCA9IFVJbnQzMi5UcnlQYXJzZShjdXJyZW50LlRvU3RyaW5nKCksIG91dCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgY3VycmVudC5Bc3NlcnQoc3VjY2VlZGVkLCAibm90IGEgZGVjaW1hbCIpOworICAgICAgICAgICAgICAgIGxvbmdQYXJlbnQuQXBwZW5kKGN1cnJlbnQpOworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50LkV4cGVjdChTeW1ib2wuQ2xvc2VQYXJlbnRoZXNlcyk7CisgICAgICAgICAgICAgICAgbG9uZ1BhcmVudC5BcHBlbmQoY3VycmVudCk7CisgICAgICAgICAgICAgICAgcHJldmlvdXMgPSBjdXJyZW50OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0aHJvdyBNaWJFeGNlcHRpb24uQ3JlYXRlKCJlbmQgb2YgZmlsZSByZWFjaGVkIiwgcHJldmlvdXMpOworICAgICAgICB9CisKKworICAgICAgICBwdWJsaWMgc3RhdGljIFZhbHVlUmFuZ2VzIERlY29kZVJhbmdlcyhJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBWYWx1ZVJhbmdlcyByZXN1bHQgPSBuZXcgVmFsdWVSYW5nZXMoKTsKKworICAgICAgICAgICAgU3ltYm9sIHN0YXJ0U3ltYm9sID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICBTeW1ib2wgY3VycmVudCA9IHN0YXJ0U3ltYm9sOworICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLk9wZW5QYXJlbnRoZXNlcyk7CisKKyAgICAgICAgICAgIHdoaWxlIChjdXJyZW50ICE9IFN5bWJvbC5DbG9zZVBhcmVudGhlc2VzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIFN5bWJvbCB2YWx1ZTFTeW1ib2wgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKworICAgICAgICAgICAgICAgIGlmICgodmFsdWUxU3ltYm9sID09IFN5bWJvbC5TaXplKSAmJiAhcmVzdWx0LklzU2l6ZURlY2xhcmF0aW9uKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LklzU2l6ZURlY2xhcmF0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCkuRXhwZWN0KFN5bWJvbC5PcGVuUGFyZW50aGVzZXMpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBjaGVjayBmb3IgdmFsaWQgbnVtYmVyCisgICAgICAgICAgICAgICAgSW50NjQ/IHZhbHVlMSA9IERlY29kZU51bWJlcih2YWx1ZTFTeW1ib2wpOworICAgICAgICAgICAgICAgIGlmICghdmFsdWUxLkhhc1ZhbHVlKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUxU3ltYm9sLkFzc2VydChmYWxzZSwgIkludmFsaWQgcmFuZ2UgZGVjbGFyYXRpb24hIik7ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBwcm9jZXNzIG5leHQgc3ltYm9sCisgICAgICAgICAgICAgICAgVmFsdWVSYW5nZSByYW5nZTsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudCA9PSBTeW1ib2wuRG91YmxlRG90KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gaXRzIGEgY29udGludW91cyByYW5nZQorICAgICAgICAgICAgICAgICAgICBTeW1ib2wgdmFsdWUyU3ltYm9sID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICAgICAgICAgIEludDY0PyB2YWx1ZTIgPSBEZWNvZGVOdW1iZXIodmFsdWUyU3ltYm9sKTsKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUyU3ltYm9sLkFzc2VydCh2YWx1ZTIuSGFzVmFsdWUgJiYgKHZhbHVlMi5WYWx1ZSA+PSB2YWx1ZTEuVmFsdWUpLCAiSW52YWxpZCByYW5nZSBkZWNsYXJhdGlvbiEiKTsKKworICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUyLlZhbHVlID09IHZhbHVlMS5WYWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBuZXcgVmFsdWVSYW5nZSh2YWx1ZTEuVmFsdWUsIG51bGwpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBuZXcgVmFsdWVSYW5nZSh2YWx1ZTEuVmFsdWUsIHZhbHVlMi5WYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIGl0cyBhIHNpbmdsZSBudW1iZXIKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2UgPSBuZXcgVmFsdWVSYW5nZSh2YWx1ZTEuVmFsdWUsIG51bGwpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIHZhbGlkYXRlIHJhbmdlCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5Jc1NpemVEZWNsYXJhdGlvbikKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHZhbHVlMVN5bWJvbC5Bc3NlcnQocmFuZ2UuU3RhcnQgPj0gMCwgIkludmFsaWQgcmFuZ2UgZGVjbGFyYXRpb24hIFNpemUgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJlc3VsdC5BZGQocmFuZ2UpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIGNoZWNrIG5leHQgc3ltYm9sCisgICAgICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLlBpcGUsIFN5bWJvbC5DbG9zZVBhcmVudGhlc2VzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJlc3VsdC5Jc1NpemVEZWNsYXJhdGlvbikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLkNsb3NlUGFyZW50aGVzZXMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyB2YWxpZGF0ZSByYW5nZXMgaW4gYmV0d2VlbgorICAgICAgICAgICAgZm9yIChpbnQgaT0wOyBpPHJlc3VsdC5Db3VudDsgaSsrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZvciAoaW50IGs9aSsxOyBrPHJlc3VsdC5Db3VudDsgaysrKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgc3RhcnRTeW1ib2wuQXNzZXJ0KCFyZXN1bHRbaV0uSW50ZXJzZWN0c1dpdGgocmVzdWx0W2tdKSwgIkludmFsaWQgcmFuZ2UgZGVjbGFyYXRpb24hIE92ZXJsYXBwaW5nIG9mIHJhbmdlcyEiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RhdGljIEludDY0PyBEZWNvZGVOdW1iZXIoU3ltYm9sIG51bWJlcikKKyAgICAgICAgeworICAgICAgICAgICAgSW50NjQgIHJlc3VsdDsKKyAgICAgICAgICAgIHN0cmluZyBudW1TdHJpbmcgPSAobnVtYmVyICE9IG51bGwpID8gbnVtYmVyLlRvU3RyaW5nKCkgOiBudWxsOworCisgICAgICAgICAgICBpZiAoIVN0cmluZy5Jc051bGxPckVtcHR5KG51bVN0cmluZykpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKG51bVN0cmluZy5TdGFydHNXaXRoKCInIikgJiYgKG51bVN0cmluZy5MZW5ndGggPiAzKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIHNlYXJjaCBzZWNvbmQgYXBvc3Ryb3BoZQorICAgICAgICAgICAgICAgICAgICBpbnQgZW5kID0gbnVtU3RyaW5nLkluZGV4T2YoJ1wnJywgMSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbmQgPT0gKG51bVN0cmluZy5MZW5ndGggLSAyKSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5CisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChudW1TdHJpbmdbbnVtU3RyaW5nLkxlbmd0aCAtIDFdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnYic6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ0InOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gQ29udmVydC5Ub0ludDY0KG51bVN0cmluZy5TdWJzdHJpbmcoMSwgbnVtU3RyaW5nLkxlbmd0aCAtIDMpLCAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2gnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdIJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IENvbnZlcnQuVG9JbnQ2NChudW1TdHJpbmcuU3Vic3RyaW5nKDEsIG51bVN0cmluZy5MZW5ndGggLSAzKSwgMTYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKEludDY0LlRyeVBhcnNlKG51bVN0cmluZywgb3V0IHJlc3VsdCkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RhdGljIFZhbHVlTWFwIERlY29kZUVudW1lcmF0aW9ucyhJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBTeW1ib2wgY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgY3VycmVudC5FeHBlY3QoU3ltYm9sLk9wZW5CcmFja2V0KTsKKworICAgICAgICAgICAgVmFsdWVNYXAgbWFwID0gbmV3IFZhbHVlTWFwKCk7CisgICAgICAgICAgICBkbworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgICAgICBzdHJpbmcgaWRlbnRpZmllciA9IGN1cnJlbnQuVG9TdHJpbmcoKTsKKworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50LkV4cGVjdChTeW1ib2wuT3BlblBhcmVudGhlc2VzKTsKKworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgICAgICBJbnQ2NCBlbnVtVmFsdWU7CisgICAgICAgICAgICAgICAgaWYgKEludDY0LlRyeVBhcnNlKGN1cnJlbnQuVG9TdHJpbmcoKSwgb3V0IGVudW1WYWx1ZSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0cnkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGF2ZSB0byBpbmNsdWRlIHRoZSBudW1iZXIgYXMgaXQgc2VlbXMgcmVwZWF0ZWQgaWRlbnRpZmllcnMgYXJlIGFsbG93ZWQgPz8KKyAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5BZGQoZW51bVZhbHVlLCBTdHJpbmcuRm9ybWF0KCJ7MH0oezF9KSIsIGlkZW50aWZpZXIsIGVudW1WYWx1ZSkpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGNhdGNoIChBcmd1bWVudEV4Y2VwdGlvbiBleCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5Bc3NlcnQoZmFsc2UsIGV4Lk1lc3NhZ2UpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIC8vIE5lZWQgdG8gZ2V0ICJEZWZpbmVkVmFsdWUiLgorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBzeW1ib2xzLk5leHROb25FT0xTeW1ib2woKTsKKyAgICAgICAgICAgICAgICBjdXJyZW50LkV4cGVjdChTeW1ib2wuQ2xvc2VQYXJlbnRoZXNlcyk7CisKKyAgICAgICAgICAgICAgICBjdXJyZW50ID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICB9IHdoaWxlIChjdXJyZW50ID09IFN5bWJvbC5Db21tYSk7CisKKyAgICAgICAgICAgIGN1cnJlbnQuRXhwZWN0KFN5bWJvbC5DbG9zZUJyYWNrZXQpOworCisgICAgICAgICAgICByZXR1cm4gbWFwOworICAgICAgICB9CisKKyAgICAgICAgI2VuZHJlZ2lvbgorCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL01heEFjY2Vzcy5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9NYXhBY2Nlc3MuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjgwMjk5MAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9NYXhBY2Nlc3MuY3MKQEAgLTAsMCArMSwxNyBAQAor77u/dXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cit1c2luZyBTeXN0ZW0uTGlucTsKK3VzaW5nIFN5c3RlbS5UZXh0OworCituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYgoreworICAgIHB1YmxpYyBlbnVtIE1heEFjY2VzcworICAgIHsKKyAgICAgICAgbm90QWNjZXNzaWJsZSwKKyAgICAgICAgYWNjZXNzaWJsZUZvck5vdGlmeSwKKyAgICAgICAgcmVhZE9ubHksCisgICAgICAgIHJlYWRXcml0ZSwKKyAgICAgICAgcmVhZENyZWF0ZQorICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL01pYkRvY3VtZW50LmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL01pYkRvY3VtZW50LmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhYzNiMjgKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvTWliRG9jdW1lbnQuY3MKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENyZWF0ZWQgYnkgU2hhcnBEZXZlbG9wLgorICogVXNlcjogbGV4dG0KKyAqIERhdGU6IDIwMDgvNS8xNworICogVGltZTogMTc6MzgKKyAqIAorICogVG8gY2hhbmdlIHRoaXMgdGVtcGxhdGUgdXNlIFRvb2xzIHwgT3B0aW9ucyB8IENvZGluZyB8IEVkaXQgU3RhbmRhcmQgSGVhZGVycy4KKyAqLworCit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIE1JQiBkb2N1bWVudC4KKyAgICAvLy8gPC9zdW1tYXJ5PgorICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgTWliRG9jdW1lbnQKKyAgICB7CisgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgTGlzdDxJTW9kdWxlPiBfbW9kdWxlcyA9IG5ldyBMaXN0PElNb2R1bGU+KCk7CisKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iTWliRG9jdW1lbnQiIC8+IGNsYXNzLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImZpbGUiPlRoZSBmaWxlLjwvcGFyYW0+CisgICAgICAgIHB1YmxpYyBNaWJEb2N1bWVudChzdHJpbmcgZmlsZSkKKyAgICAgICAgICAgIDogdGhpcyhuZXcgTGV4ZXIoZmlsZSkpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA8c2VlIGNyZWY9Ik1pYkRvY3VtZW50Ii8+IGNsYXNzLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxleGVyIj5UaGUgbGV4ZXIuPC9wYXJhbT4KKyAgICAgICAgcHVibGljIE1pYkRvY3VtZW50KExleGVyIGxleGVyKQorICAgICAgICB7CisgICAgICAgICAgICBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzID0gbGV4ZXIuR2V0RW51bWVyYXRvcigpOworCisgICAgICAgICAgICBTeW1ib2wgY3VycmVudDsKKyAgICAgICAgICAgIHdoaWxlICgoY3VycmVudCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpKSAhPSBudWxsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN5bWJvbHMuUHV0QmFjayhjdXJyZW50KTsKKyAgICAgICAgICAgICAgICBfbW9kdWxlcy5BZGQobmV3IE1pYk1vZHVsZShzeW1ib2xzKSk7ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyA8c2VlIGNyZWY9Ik1pYk1vZHVsZSIvPiBjb250YWluaW5nIGluIHRoaXMgZG9jdW1lbnQuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIHB1YmxpYyBJTGlzdDxJTW9kdWxlPiBNb2R1bGVzCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBfbW9kdWxlczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvTWliRXhjZXB0aW9uLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL01pYkV4Y2VwdGlvbi5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZmQ4OWIzCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL01pYkV4Y2VwdGlvbi5jcwpAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIENyZWF0ZWQgYnkgU2hhcnBEZXZlbG9wLgorICogVXNlcjogbGV4dG0KKyAqIERhdGU6IDIwMDgvNS8xNworICogVGltZTogMTY6MzMKKyAqIAorICogVG8gY2hhbmdlIHRoaXMgdGVtcGxhdGUgdXNlIFRvb2xzIHwgT3B0aW9ucyB8IENvZGluZyB8IEVkaXQgU3RhbmRhcmQgSGVhZGVycy4KKyAqLworCit1c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uR2xvYmFsaXphdGlvbjsKKyNpZiAoIVNJTFZFUkxJR0hUKQordXNpbmcgU3lzdGVtLlJ1bnRpbWUuU2VyaWFsaXphdGlvbjsKK3VzaW5nIFN5c3RlbS5TZWN1cml0eS5QZXJtaXNzaW9uczsgCisjZW5kaWYKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIERlc2NyaXB0aW9uIG9mIE1pYkV4Y2VwdGlvbi4KKyAgICAvLy8gPC9zdW1tYXJ5PgorICAgIFtTZXJpYWxpemFibGVdCisgICAgW1N5c3RlbS5EaWFnbm9zdGljcy5Db2RlQW5hbHlzaXMuU3VwcHJlc3NNZXNzYWdlKCJNaWNyb3NvZnQuTmFtaW5nIiwgIkNBMTcwNDpJZGVudGlmaWVyc1Nob3VsZEJlU3BlbGxlZENvcnJlY3RseSIsIE1lc3NhZ2VJZCA9ICJNaWIiKV0KKyAgICBwdWJsaWMgc2VhbGVkIGNsYXNzIE1pYkV4Y2VwdGlvbiA6IEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gU3ltYm9sLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICBwdWJsaWMgU3ltYm9sIFN5bWJvbCB7IGdldDsgcHJpdmF0ZSBzZXQ7IH0KKworICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyBDcmVhdGVzIGEgPHNlZSBjcmVmPSJNaWJFeGNlcHRpb24iLz4uCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIHB1YmxpYyBNaWJFeGNlcHRpb24oKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIENyZWF0ZXMgYSA8c2VlIGNyZWY9IlNubXBFeGNlcHRpb24iLz4gaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmljIDxzZWUgY3JlZj0ic3RyaW5nIi8+LgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im1lc3NhZ2UiPk1lc3NhZ2U8L3BhcmFtPgorICAgICAgICBwdWJsaWMgTWliRXhjZXB0aW9uKHN0cmluZyBtZXNzYWdlKSA6IGJhc2UobWVzc2FnZSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gQ3JlYXRlcyBhIDxzZWUgY3JlZj0iTWliRXhjZXB0aW9uIi8+IGluc3RhbmNlIHdpdGggYSBzcGVjaWZpYyA8c2VlIGNyZWY9InN0cmluZyIvPiBhbmQgYW4gPHNlZSBjcmVmPSJFeGNlcHRpb24iLz4uCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibWVzc2FnZSI+TWVzc2FnZTwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaW5uZXIiPklubmVyIGV4Y2VwdGlvbjwvcGFyYW0+CisgICAgICAgIHB1YmxpYyBNaWJFeGNlcHRpb24oc3RyaW5nIG1lc3NhZ2UsIEV4Y2VwdGlvbiBpbm5lcikKKyAgICAgICAgICAgIDogYmFzZShtZXNzYWdlLCBpbm5lcikKKyAgICAgICAgeworICAgICAgICB9CisjaWYgKCFTSUxWRVJMSUdIVCkgICAgICAgIAorICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyBDcmVhdGVzIGEgPHNlZSBjcmVmPSJNaWJFeGNlcHRpb24iLz4gaW5zdGFuY2UuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iaW5mbyI+SW5mbzwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iY29udGV4dCI+Q29udGV4dDwvcGFyYW0+CisgICAgICAgIHByaXZhdGUgTWliRXhjZXB0aW9uKFNlcmlhbGl6YXRpb25JbmZvIGluZm8sIFN0cmVhbWluZ0NvbnRleHQgY29udGV4dCkgOiBiYXNlKGluZm8sIGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChpbmZvID09IG51bGwpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbigiaW5mbyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBTeW1ib2wgPSAoU3ltYm9sKWluZm8uR2V0VmFsdWUoIlN5bWJvbCIsIHR5cGVvZihTeW1ib2wpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gR2V0cyBvYmplY3QgZGF0YS4KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJpbmZvIj5JbmZvPC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjb250ZXh0Ij5Db250ZXh0PC9wYXJhbT4KKyAgICAgICAgW1NlY3VyaXR5UGVybWlzc2lvbihTZWN1cml0eUFjdGlvbi5EZW1hbmQsIFNlcmlhbGl6YXRpb25Gb3JtYXR0ZXIgPSB0cnVlKV0KKyAgICAgICAgcHVibGljIG92ZXJyaWRlIHZvaWQgR2V0T2JqZWN0RGF0YShTZXJpYWxpemF0aW9uSW5mbyBpbmZvLCBTdHJlYW1pbmdDb250ZXh0IGNvbnRleHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGJhc2UuR2V0T2JqZWN0RGF0YShpbmZvLCBjb250ZXh0KTsKKyAgICAgICAgICAgIGluZm8uQWRkVmFsdWUoIlN5bWJvbCIsIFN5bWJvbCk7CisgICAgICAgIH0KKyNlbmRpZgorCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIENyZWF0ZXMgYSA8c2VlIGNyZWY9Ik1pYkV4Y2VwdGlvbiIvPiB3aXRoIGEgc3BlY2lmaWMgPHNlZSBjcmVmPSJTeW1ib2wiLz4uCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ibWVzc2FnZSI+TWVzc2FnZTwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0ic3ltYm9sIj5TeW1ib2w8L3BhcmFtPgorICAgICAgICAvLy8gPHJldHVybnM+PC9yZXR1cm5zPgorICAgICAgICBwdWJsaWMgc3RhdGljIE1pYkV4Y2VwdGlvbiBDcmVhdGUoc3RyaW5nIG1lc3NhZ2UsIFN5bWJvbCBzeW1ib2wpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChzeW1ib2wgPT0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJzeW1ib2wiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKFN0cmluZy5Jc051bGxPckVtcHR5KG1lc3NhZ2UpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiVW5rbm93biBNSUIgRXhjZXB0aW9uIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVzc2FnZSA9IFN0cmluZy5Gb3JtYXQoCisgICAgICAgICAgICAgICAgInswfSAoZmlsZTogXCJ7MX1cIjsgcm93OiB7Mn07IGNvbHVtbjogezN9KSIsCisgICAgICAgICAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICBzeW1ib2wuRmlsZSwKKyAgICAgICAgICAgICAgICBzeW1ib2wuUm93ICsgMSwKKyAgICAgICAgICAgICAgICBzeW1ib2wuQ29sdW1uICsgMSk7CisKKyAgICAgICAgICAgIE1pYkV4Y2VwdGlvbiBleCA9IG5ldyBNaWJFeGNlcHRpb24obWVzc2FnZSkgeyBTeW1ib2wgPSBzeW1ib2wgfTsKKyAgICAgICAgICAgIHJldHVybiBleDsKKyAgICAgICAgfQorICAgIH0KK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvTWliTW9kdWxlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL01pYk1vZHVsZS5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWNmZDA0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL01pYk1vZHVsZS5jcwpAQCAtMCwwICsxLDI5NCBAQAorLyoKKyAqIENyZWF0ZWQgYnkgU2hhcnBEZXZlbG9wLgorICogVXNlcjogbGV4dG0KKyAqIERhdGU6IDIwMDgvNS8xNworICogVGltZTogMTc6MzgKKyAqIAorICogVG8gY2hhbmdlIHRoaXMgdGVtcGxhdGUgdXNlIFRvb2xzIHwgT3B0aW9ucyB8IENvZGluZyB8IEVkaXQgU3RhbmRhcmQgSGVhZGVycy4KKyAqLworCit1c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKK3VzaW5nIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHM7Cit1c2luZyBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLkVudGl0aWVzOwordXNpbmcgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5UeXBlczsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIE1JQiBtb2R1bGUgY2xhc3MuCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICBbU3lzdGVtLkRpYWdub3N0aWNzLkNvZGVBbmFseXNpcy5TdXBwcmVzc01lc3NhZ2UoIk1pY3Jvc29mdC5OYW1pbmciLCAiQ0ExNzA0OklkZW50aWZpZXJzU2hvdWxkQmVTcGVsbGVkQ29ycmVjdGx5IiwgTWVzc2FnZUlkID0gIk1pYiIpXQorICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgTWliTW9kdWxlIDogSU1vZHVsZQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzdHJpbmcgX25hbWU7CisgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgSW1wb3J0cyBfaW1wb3J0czsKKyAgICAgICAgcHJpdmF0ZSByZWFkb25seSBFeHBvcnRzIF9leHBvcnRzOworICAgICAgICBwcml2YXRlIHJlYWRvbmx5IExpc3Q8SUVsZW1lbnQ+IF90b2tlbnMgPSBuZXcgTGlzdDxJRWxlbWVudD4oKTsKKyAgICAKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gQ3JlYXRlcyBhIDxzZWUgY3JlZj0iTWliTW9kdWxlIi8+IHdpdGggYSBzcGVjaWZpYyA8c2VlIGNyZWY9IkxleGVyIi8+LgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im5hbWUiPk1vZHVsZSBuYW1lPC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJzeW1ib2xzIj5MZXhlcjwvcGFyYW0+CisgICAgICAgIFtTeXN0ZW0uRGlhZ25vc3RpY3MuQ29kZUFuYWx5c2lzLlN1cHByZXNzTWVzc2FnZSgiTWljcm9zb2Z0Lk5hbWluZyIsICJDQTE3MDQ6SWRlbnRpZmllcnNTaG91bGRCZVNwZWxsZWRDb3JyZWN0bHkiLCBNZXNzYWdlSWQgPSAibGV4ZXIiKV0KKyAgICAgICAgcHVibGljIE1pYk1vZHVsZShJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoc3ltYm9scyA9PSBudWxsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFeGNlcHRpb24oImxleGVyIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFN5bWJvbCB0ZW1wID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICB0ZW1wLkFzc2VydElzVmFsaWRJZGVudGlmaWVyKCk7CisgICAgICAgICAgICBfbmFtZSA9IHRlbXAuVG9TdHJpbmcoKS5Ub1VwcGVySW52YXJpYW50KCk7IC8vIGFsbCBtb2R1bGUgbmFtZXMgYXJlIHVwcGVyY2FzZQorICAgICAgICAgICAgCisgICAgICAgICAgICB0ZW1wID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICB0ZW1wLkV4cGVjdChTeW1ib2wuRGVmaW5pdGlvbnMpOworICAgICAgICAgICAgCisgICAgICAgICAgICB0ZW1wID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICB0ZW1wLkV4cGVjdChTeW1ib2wuQXNzaWduKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVtcCA9IHN5bWJvbHMuTmV4dFN5bWJvbCgpOworICAgICAgICAgICAgdGVtcC5FeHBlY3QoU3ltYm9sLkJlZ2luKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgdGVtcCA9IHN5bWJvbHMuTmV4dE5vbkVPTFN5bWJvbCgpOworICAgICAgICAgICAgaWYgKHRlbXAgPT0gU3ltYm9sLkltcG9ydHMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgX2ltcG9ydHMgPSBQYXJzZURlcGVuZGVudHMoc3ltYm9scyk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh0ZW1wID09IFN5bWJvbC5FeHBvcnRzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF9leHBvcnRzID0gUGFyc2VFeHBvcnRzKHN5bWJvbHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN5bWJvbHMuUHV0QmFjayh0ZW1wKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUGFyc2VFbnRpdGllcyhzeW1ib2xzKTsKKyAgICAgICAgfQorCisgICAgICAgICNyZWdpb24gQWNjZXNzb3JzCisKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gTW9kdWxlIG5hbWUuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIHB1YmxpYyBzdHJpbmcgTmFtZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX25hbWU7IH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIEV4cG9ydHMgRXhwb3J0cworICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX2V4cG9ydHM7IH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBJbXBvcnRzIEltcG9ydHMKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0IHsgcmV0dXJuIF9pbXBvcnRzOyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTGlzdDxJRWxlbWVudD4gVG9rZW5zCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiB0aGlzLl90b2tlbnM7IH0KKyAgICAgICAgfQorCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIEVudGl0aWVzICsgVHlwZXMgKyBhbGwgb3RoZXIgZWxlbWVudHMgaW1wbGVtZW50aW5nIElEZWNsYXJhdGlvbgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICBwdWJsaWMgSUxpc3Q8SURlY2xhcmF0aW9uPiBEZWNsYXJhdGlvbnMKKyAgICAgICAgeworICAgICAgICAgICAgZ2V0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSUxpc3Q8SURlY2xhcmF0aW9uPiByZXN1bHQgPSBuZXcgTGlzdDxJRGVjbGFyYXRpb24+KCk7CisgICAgICAgICAgICAgICAgZm9yZWFjaCAoSUVsZW1lbnQgZSBpbiBfdG9rZW5zKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgSURlY2xhcmF0aW9uIGRlY2wgPSBlIGFzIElEZWNsYXJhdGlvbjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGRlY2wgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LkFkZChkZWNsKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyBPSUQgbm9kZXMuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIHB1YmxpYyBJTGlzdDxJRW50aXR5PiBFbnRpdGllcworICAgICAgICB7CisgICAgICAgICAgICBnZXQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJTGlzdDxJRW50aXR5PiByZXN1bHQgPSBuZXcgTGlzdDxJRW50aXR5PigpOworICAgICAgICAgICAgICAgIGZvcmVhY2ggKElFbGVtZW50IGUgaW4gX3Rva2VucykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIElFbnRpdHkgZW50aXR5ID0gZSBhcyBJRW50aXR5OworICAgICAgICAgICAgICAgICAgICBpZiAoZW50aXR5ICE9IG51bGwpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5BZGQoZW50aXR5KTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSUxpc3Q8SVR5cGVBc3NpZ25tZW50PiBUeXBlcworICAgICAgICB7CisgICAgICAgICAgICBnZXQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJTGlzdDxJVHlwZUFzc2lnbm1lbnQ+IHJlc3VsdCA9IG5ldyBMaXN0PElUeXBlQXNzaWdubWVudD4oKTsKKyAgICAgICAgICAgICAgICBmb3JlYWNoIChJRWxlbWVudCBlIGluIF90b2tlbnMpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBJVHlwZUFzc2lnbm1lbnQgdHlwZSA9IGUgYXMgSVR5cGVBc3NpZ25tZW50OworICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSAhPSBudWxsKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuQWRkKHR5cGUpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgICNlbmRyZWdpb24KKworICAgICAgICAjcmVnaW9uIFBhcnNpbmcgb2YgU3ltYm9scworCisgICAgICAgIHByaXZhdGUgRXhwb3J0cyBQYXJzZUV4cG9ydHMoSVN5bWJvbEVudW1lcmF0b3Igc3ltYm9scykKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG5ldyBFeHBvcnRzKHRoaXMsIHN5bWJvbHMpOworICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBJbXBvcnRzIFBhcnNlRGVwZW5kZW50cyhJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbmV3IEltcG9ydHModGhpcywgc3ltYm9scyk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgdm9pZCBQYXJzZUVudGl0aWVzKElTeW1ib2xFbnVtZXJhdG9yIHN5bWJvbHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN5bWJvbCAgICAgdGVtcCAgID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICBTeW1ib2xMaXN0IGJ1ZmZlciA9IG5ldyBTeW1ib2xMaXN0KCk7CisKKyAgICAgICAgICAgIHdoaWxlICh0ZW1wICE9IFN5bWJvbC5FbmQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHRlbXAgPT0gU3ltYm9sLkFzc2lnbikKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIFBhcnNlRW50aXR5KGJ1ZmZlciwgc3ltYm9scyk7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5DbGVhcigpOworICAgICAgICAgICAgICAgICAgICAvLyBza2lwIGxpbmVicmVha3MgYmVoaW5kIGFuIGVudGl0eQorICAgICAgICAgICAgICAgICAgICB0ZW1wID0gc3ltYm9scy5OZXh0Tm9uRU9MU3ltYm9sKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5BZGQodGVtcCk7CisgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBzeW1ib2xzLk5leHRTeW1ib2woKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgUGFyc2VFbnRpdHkoU3ltYm9sTGlzdCBwcmVBc3NpZ25TeW1ib2xzLCBJU3ltYm9sRW51bWVyYXRvciBzeW1ib2xzKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoKHByZUFzc2lnblN5bWJvbHMgPT0gbnVsbCkgfHwgKHByZUFzc2lnblN5bWJvbHMuQ291bnQgPT0gMCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgU3ltYm9sIHMgPSBzeW1ib2xzLk5leHRTeW1ib2woKTsKKyAgICAgICAgICAgICAgICBpZiAocyAhPSBudWxsKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcy5Bc3NlcnQoZmFsc2UsICJJbnZhbGlkIEVudGl0eSBkZWNsYXJhdGlvbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTWliRXhjZXB0aW9uKCJJbnZhbGlkIEVudGl0eSBkZWNsYXJhdGlvbiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gY2hlY2sgZm9yIGEgdmFsaWQgaWRlbnRpZmllcgorICAgICAgICAgICAgcHJlQXNzaWduU3ltYm9sc1swXS5Bc3NlcnRJc1ZhbGlkSWRlbnRpZmllcigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocHJlQXNzaWduU3ltYm9scy5Db3VudCA9PSAxKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIGl0cyBhIHR5cGVkZWYKKyAgICAgICAgICAgICAgICBfdG9rZW5zLkFkZChMZXhlci5QYXJzZUJhc2ljVHlwZURlZih0aGlzLCBwcmVBc3NpZ25TeW1ib2xzWzBdLlRvU3RyaW5nKCksIHN5bWJvbHMsIGlzTWFjcm9TeW50YXg6IGZhbHNlKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBJU3ltYm9sRW51bWVyYXRvciBwcmVBc3NpZ25TeW1ib2xzRW51bWVyYXRvciA9IHByZUFzc2lnblN5bWJvbHMuR2V0U3ltYm9sRW51bWVyYXRvcigpOworICAgICAgICAgICAgcHJlQXNzaWduU3ltYm9sc0VudW1lcmF0b3IuTmV4dE5vbkVPTFN5bWJvbCgpOyAvLyByZXR1cm5zIGlkZW50aWZpZXIKKyAgICAgICAgICAgIFN5bWJvbCB0eXBlID0gcHJlQXNzaWduU3ltYm9sc0VudW1lcmF0b3IuTmV4dE5vbkVPTFN5bWJvbCgpOworCisgICAgICAgICAgICAvLyBwYXJzZSBkZWNsYXJhdGlvbnMKKyAgICAgICAgICAgIGlmICh0eXBlID09IFN5bWJvbC5PYmplY3QpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgU3ltYm9sIG5leHQgPSBwcmVBc3NpZ25TeW1ib2xzRW51bWVyYXRvci5OZXh0Tm9uRU9MU3ltYm9sKCk7CisKKyAgICAgICAgICAgICAgICBpZiAobmV4dCA9PSBTeW1ib2wuSWRlbnRpZmllcikKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIF90b2tlbnMuQWRkKG5ldyBPaWRWYWx1ZUFzc2lnbm1lbnQodGhpcywgcHJlQXNzaWduU3ltYm9scywgc3ltYm9scykpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG5leHQgIT0gbnVsbCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHByZUFzc2lnblN5bWJvbHNFbnVtZXJhdG9yLlB1dEJhY2sobmV4dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3ltYm9sLk1vZHVsZUlkZW50aXR5KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF90b2tlbnMuQWRkKG5ldyBNb2R1bGVJZGVudGl0eSh0aGlzLCBwcmVBc3NpZ25TeW1ib2xzLCBzeW1ib2xzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3ltYm9sLk9iamVjdFR5cGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgX3Rva2Vucy5BZGQobmV3IE9iamVjdFR5cGUodGhpcywgcHJlQXNzaWduU3ltYm9scywgc3ltYm9scykpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0eXBlID09IFN5bWJvbC5PYmplY3RHcm91cCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBfdG9rZW5zLkFkZChuZXcgT2JqZWN0R3JvdXAodGhpcywgcHJlQXNzaWduU3ltYm9scywgc3ltYm9scykpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0eXBlID09IFN5bWJvbC5Ob3RpZmljYXRpb25Hcm91cCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBfdG9rZW5zLkFkZChuZXcgTm90aWZpY2F0aW9uR3JvdXAodGhpcywgcHJlQXNzaWduU3ltYm9scywgc3ltYm9scykpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0eXBlID09IFN5bWJvbC5Nb2R1bGVDb21wbGlhbmNlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF90b2tlbnMuQWRkKG5ldyBNb2R1bGVDb21wbGlhbmNlKHRoaXMsIHByZUFzc2lnblN5bWJvbHMsIHN5bWJvbHMpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAodHlwZSA9PSBTeW1ib2wuTm90aWZpY2F0aW9uVHlwZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBfdG9rZW5zLkFkZChuZXcgTm90aWZpY2F0aW9uVHlwZSh0aGlzLCBwcmVBc3NpZ25TeW1ib2xzLCBzeW1ib2xzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3ltYm9sLk9iamVjdElkZW50aXR5KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF90b2tlbnMuQWRkKG5ldyBPYmplY3RJZGVudGl0eSh0aGlzLCBwcmVBc3NpZ25TeW1ib2xzLCBzeW1ib2xzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3ltYm9sLk1hY3JvKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF90b2tlbnMuQWRkKG5ldyBNYWNybyh0aGlzLCBwcmVBc3NpZ25TeW1ib2xzLCBzeW1ib2xzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3ltYm9sLlRyYXBUeXBlKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF90b2tlbnMuQWRkKG5ldyBUcmFwVHlwZSh0aGlzLCBwcmVBc3NpZ25TeW1ib2xzLCBzeW1ib2xzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHR5cGUgPT0gU3ltYm9sLkFnZW50Q2FwYWJpbGl0aWVzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF90b2tlbnMuQWRkKG5ldyBBZ2VudENhcGFiaWxpdGllcyh0aGlzLCBwcmVBc3NpZ25TeW1ib2xzLCBzeW1ib2xzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwcmVBc3NpZ25TeW1ib2xzWzFdLkFzc2VydChmYWxzZSwgIlVua25vd24vSW52YWxpZCBkZWNsYXJhdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgI2VuZHJlZ2lvbgorCisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9NaWJSZXNvbHZlci5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9NaWJSZXNvbHZlci5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Njk3OGUxCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL01pYlJlc29sdmVyLmNzCkBAIC0wLDAgKzEsOTcgQEAKK++7v3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwordXNpbmcgU3lzdGVtLkxpbnE7Cit1c2luZyBTeXN0ZW0uVGV4dDsKK3VzaW5nIFN5c3RlbS5JTzsKK3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOworCituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYgoreworICAgIHB1YmxpYyBpbnRlcmZhY2UgSU1pYlJlc29sdmVyCisgICAgeworICAgICAgICBJTW9kdWxlIFJlc29sdmUoc3RyaW5nIG1vZHVsZU5hbWUpOworICAgIH0KKworICAgIHB1YmxpYyBjbGFzcyBGaWxlU3lzdGVtTWliUmVzb2x2ZXIgOiBJTWliUmVzb2x2ZXIKKyAgICB7CisgICAgICAgIHByaXZhdGUgc3RyaW5nIF9wYXRoOworICAgICAgICBwcml2YXRlIGJvb2wgX3JlY3Vyc2l2ZTsKKworICAgICAgICBwdWJsaWMgRmlsZVN5c3RlbU1pYlJlc29sdmVyKHN0cmluZyBwYXRoLCBib29sIHJlY3Vyc2l2ZSkKKyAgICAgICAgeworICAgICAgICAgICAgX3BhdGggPSBwYXRoOworICAgICAgICAgICAgX3JlY3Vyc2l2ZSA9IHJlY3Vyc2l2ZTsKKyAgICAgICAgfQorCisgICAgICAgICNyZWdpb24gSU1pYlJlc29sdmVyIE1lbWJlcgorCisgICAgICAgIHB1YmxpYyBJTW9kdWxlIFJlc29sdmUoc3RyaW5nIG1vZHVsZU5hbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChEaXJlY3RvcnkuRXhpc3RzKF9wYXRoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdHJpbmdbXSBtYXRjaGVkRmlsZXMgPSBEaXJlY3RvcnkuR2V0RmlsZXMoCisgICAgICAgICAgICAgICAgICAgIF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAiKiIsCisgICAgICAgICAgICAgICAgICAgIChfcmVjdXJzaXZlKSA/IFNlYXJjaE9wdGlvbi5BbGxEaXJlY3RvcmllcyA6IFNlYXJjaE9wdGlvbi5Ub3BEaXJlY3RvcnlPbmx5KTsKKworICAgICAgICAgICAgICAgIGlmICgobWF0Y2hlZEZpbGVzICE9IG51bGwpICYmIChtYXRjaGVkRmlsZXMuTGVuZ3RoID49IDEpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoc3RyaW5nIG1hdGNoZWRGaWxlIGluIG1hdGNoZWRGaWxlcykKKyAgICAgICAgICAgICAgICAgICAgeworCQkJCQkJaWYgKFBhdGguR2V0RmlsZU5hbWVXaXRob3V0RXh0ZW5zaW9uKG1hdGNoZWRGaWxlLlRvTG93ZXJJbnZhcmlhbnQoKSkgPT0gbW9kdWxlTmFtZS5Ub0xvd2VySW52YXJpYW50KCkpCisJCQkJCQl7CisJCQkJCQkJdHJ5CisJCQkJCQkJeworCQkJCQkJCQlNaWJEb2N1bWVudCBtZCA9IG5ldyBNaWJEb2N1bWVudCAobWF0Y2hlZEZpbGUpOworCQkJCQkJCQlpZiAobWQuTW9kdWxlcy5Db3VudCA+IDApCisJCQkJCQkJCXsKKwkJCQkJCQkJCXJldHVybiBtZC5Nb2R1bGVzIFswXTsKKwkJCQkJCQkJfQorCQkJCQkJCX0gY2F0Y2gKKwkJCQkJCQl7CisJCQkJCQkJfQorCQkJCQkJfQorICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgICNlbmRyZWdpb24KKworICAgIH0KKworICAgIC8vIGVhcmxpZXIgY29kZSBmb3Igc2VhcmNoIG9mIHZlcnNpb25lZCBNSUJzOgorICAgIC8vCisgICAgLy9wcml2YXRlIGNvbnN0IHN0cmluZyBQYXR0ZXJuID0gIi1WWzAtOV0rJCI7CisgICAgLy9wdWJsaWMgc3RhdGljIGJvb2wgQWxsRGVwZW5kZW50c0F2YWlsYWJsZShNaWJNb2R1bGUgbW9kdWxlLCBJRGljdGlvbmFyeTxzdHJpbmcsIE1pYk1vZHVsZT4gbW9kdWxlcykKKyAgICAvL3sKKyAgICAvLyAgICBmb3JlYWNoIChzdHJpbmcgZGVwZW5kZW50IGluIG1vZHVsZS5EZXBlbmRlbnRzKQorICAgIC8vICAgIHsKKyAgICAvLyAgICAgICAgaWYgKCFEZXBlbmRlbnRGb3VuZChkZXBlbmRlbnQsIG1vZHVsZXMpKQorICAgIC8vICAgICAgICB7CisgICAgLy8gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gICAgICAgIH0KKyAgICAvLyAgICB9CisKKyAgICAvLyAgICByZXR1cm4gdHJ1ZTsKKyAgICAvL30KKworICAgIC8vcHJpdmF0ZSBzdGF0aWMgYm9vbCBEZXBlbmRlbnRGb3VuZChzdHJpbmcgZGVwZW5kZW50LCBJRGljdGlvbmFyeTxzdHJpbmcsIE1pYk1vZHVsZT4gbW9kdWxlcykKKyAgICAvL3sKKyAgICAvLyAgICBpZiAoIVJlZ2V4LklzTWF0Y2goZGVwZW5kZW50LCBQYXR0ZXJuKSkKKyAgICAvLyAgICB7CisgICAgLy8gICAgICAgIHJldHVybiBtb2R1bGVzLkNvbnRhaW5zS2V5KGRlcGVuZGVudCk7CisgICAgLy8gICAgfQorCisgICAgLy8gICAgaWYgKG1vZHVsZXMuQ29udGFpbnNLZXkoZGVwZW5kZW50KSkKKyAgICAvLyAgICB7CisgICAgLy8gICAgICAgIHJldHVybiB0cnVlOworICAgIC8vICAgIH0KKworICAgIC8vICAgIHN0cmluZyBkZXBlbmRlbnROb25WZXJzaW9uID0gUmVnZXguUmVwbGFjZShkZXBlbmRlbnQsIFBhdHRlcm4sIHN0cmluZy5FbXB0eSk7CisgICAgLy8gICAgcmV0dXJuIG1vZHVsZXMuQ29udGFpbnNLZXkoZGVwZW5kZW50Tm9uVmVyc2lvbik7CisgICAgLy99CisKK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9NaWJUcmVlLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL01pYlRyZWUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTUxNzRiYwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9NaWJUcmVlLmNzCkBAIC0wLDAgKzEsMTMwIEBACivvu791c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKK3VzaW5nIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuRW50aXRpZXM7CisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliCit7CisgICAgLy8vIDxzdW1tYXJ5PgorICAgIC8vLyBCdWlsZHMgdXAgYSB0cmVlIGZyb20gYSBzaW5nbGUgTUlCCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICBwdWJsaWMgY2xhc3MgTWliVHJlZQorICAgIHsKKyAgICAgICAgcHJpdmF0ZSByZWFkb25seSBMaXN0PE1pYlRyZWVOb2RlPiBfcm9vdCA9IG5ldyBMaXN0PE1pYlRyZWVOb2RlPigpOworCisgICAgICAgIHB1YmxpYyBNaWJUcmVlKE1pYk1vZHVsZSBtb2R1bGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIElMaXN0PElFbnRpdHk+IGVudGl0aWVzID0gbW9kdWxlLkVudGl0aWVzOworCisgICAgICAgICAgICBpZiAoZW50aXRpZXMuQ291bnQgPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8vIHRyeSB0byBmaW5kIG1vZHVsZSBpZGVudGl0eSBhcyByb290CisgICAgICAgICAgICAgICAgZm9yZWFjaCAoSUVudGl0eSBlbGVtZW50IGluIGVudGl0aWVzKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgTW9kdWxlSWRlbnRpdHkgbWkgPSBlbGVtZW50IGFzIE1vZHVsZUlkZW50aXR5OworCisgICAgICAgICAgICAgICAgICAgIGlmIChtaSAhPSBudWxsKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBfcm9vdC5BZGQobmV3IE1pYlRyZWVOb2RlKG51bGwsIG1pKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBmaW5kIE9JRCBhc3NpZ25tZW50cyBhcyByb290LCBpZiB0aGVyZSBhcmUgYW55IHRoYXQgYXJlIG5vdCBiZWxvdyBNb2R1bGVJZGVudGl0eQorICAgICAgICAgICAgICAgIGZvcmVhY2ggKElFbnRpdHkgZWxlbWVudCBpbiBlbnRpdGllcykKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIE9pZFZhbHVlQXNzaWdubWVudCBvYSA9IGVsZW1lbnQgYXMgT2lkVmFsdWVBc3NpZ25tZW50OworCisgICAgICAgICAgICAgICAgICAgIGlmIChvYSAhPSBudWxsKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBfcm9vdC5BZGQobmV3IE1pYlRyZWVOb2RlKG51bGwsIG9hKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBGaWx0ZXJSZWFsUm9vdHMgKGVudGl0aWVzKTsKKworICAgICAgICAgICAgICAgIGZvcmVhY2ggKE1pYlRyZWVOb2RlIG1pYlRyZWVOb2RlIGluIF9yb290KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZW50aXRpZXMuUmVtb3ZlIChtaWJUcmVlTm9kZS5FbnRpdHkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChfcm9vdC5Db3VudCA9PSAwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLy9ubyBtb2R1bGUgaWRlbnRpdHksIGFzc3VtZSBmaXJzdCBlbnRpdHkgaXMgcm9vdAorICAgICAgICAgICAgICAgICAgICBfcm9vdC5BZGQobmV3IE1pYlRyZWVOb2RlKG51bGwsIGVudGl0aWVzWzBdKSk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZm9yZWFjaCAoTWliVHJlZU5vZGUgbWliVHJlZU5vZGUgaW4gX3Jvb3QpCisgICAgICAgICAgICAgICAgeworCQkJCQlpZiAoZW50aXRpZXMuQ29udGFpbnMgKG1pYlRyZWVOb2RlLkVudGl0eSkpCisJCQkJCXsKKwkJCQkJCWVudGl0aWVzLlJlbW92ZSAobWliVHJlZU5vZGUuRW50aXR5KTsKKwkJCQkJfQorICAgICAgICAgICAgICAgICAgICBCdWlsZFRyZWUobWliVHJlZU5vZGUsIGVudGl0aWVzKTsKKyAgICAgICAgICAgICAgICAgICAgVXBkYXRlVHJlZU5vZGVUeXBlcyhtaWJUcmVlTm9kZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIElMaXN0PE1pYlRyZWVOb2RlPiBSb290CisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfcm9vdDsgfQorICAgICAgICB9CisKKyAgICAgICAgcHJpdmF0ZSBib29sIEVudGl0eUV4aXN0cyhJTGlzdDxJRW50aXR5PiBlbnRpdGllcywgc3RyaW5nIG5hbWUpCisJCXsKKyAgICAgICAgICAgIGZvcmVhY2goSUVudGl0eSBlbnRpdHkgaW4gZW50aXRpZXMpCisJCQl7CisgICAgICAgICAgICAgICAgaWYgKGVudGl0eS5OYW1lID09IG5hbWUpCisJCQkJeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHZvaWQgRmlsdGVyUmVhbFJvb3RzKElMaXN0PElFbnRpdHk+IGVudGl0aWVzKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgaSA9IDA7CisgICAgICAgICAgICB3aGlsZSAoaSA8IF9yb290LkNvdW50KQorCQkJeworICAgICAgICAgICAgICAgIGlmIChFbnRpdHlFeGlzdHMoZW50aXRpZXMsIF9yb290W2ldLkVudGl0eS5QYXJlbnQpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgX3Jvb3QuUmVtb3ZlQXQoaSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisJCX0KKwkJCisJCXByaXZhdGUgdm9pZCBCdWlsZFRyZWUoTWliVHJlZU5vZGUgbm9kZSwgSUxpc3Q8SUVudGl0eT4gZW50aXRpZXMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCBpID0gMDsKKyAgICAgICAgICAgIHdoaWxlIChpIDwgZW50aXRpZXMuQ291bnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKGVudGl0aWVzW2ldLlBhcmVudCA9PSBub2RlLkVudGl0eS5OYW1lKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbm9kZS5BZGRDaGlsZChlbnRpdGllc1tpXSk7CisgICAgICAgICAgICAgICAgICAgIGVudGl0aWVzLlJlbW92ZUF0KGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3JlYWNoIChNaWJUcmVlTm9kZSBjaGlsZE5vZGUgaW4gbm9kZS5DaGlsZE5vZGVzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEJ1aWxkVHJlZShjaGlsZE5vZGUsIGVudGl0aWVzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIFVwZGF0ZVRyZWVOb2RlVHlwZXMoTWliVHJlZU5vZGUgbm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgbm9kZS5VcGRhdGVOb2RlVHlwZSgpOworICAgICAgICAgICAgZm9yZWFjaCAoTWliVHJlZU5vZGUgY2hpbGROb2RlIGluIG5vZGUuQ2hpbGROb2RlcykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBVcGRhdGVUcmVlTm9kZVR5cGVzKGNoaWxkTm9kZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvTWliVHJlZU5vZGUuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvTWliVHJlZU5vZGUuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg2YzhlNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9NaWJUcmVlTm9kZS5jcwpAQCAtMCwwICsxLDExMiBAQAor77u/dXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cit1c2luZyBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzLkVudGl0aWVzOwordXNpbmcgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5UeXBlczsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIKK3sKKyAgICBbRmxhZ3NdCisgICAgcHVibGljIGVudW0gTWliVHJlZU5vZGVUeXBlCisgICAgeworICAgICAgICBVbmtub3duICAgICAgICAgICAgID0gMCwKKyAgICAgICAgQ29udGFpbmVyICAgICAgICAgICA9ICgxIDw8IDApLAorICAgICAgICBTY2FsYXIgICAgICAgICAgICAgID0gKDEgPDwgMSksCisgICAgICAgIFRhYmxlICAgICAgICAgICAgICAgPSAoMSA8PCAyKSwKKyAgICAgICAgVGFibGVSb3cgICAgICAgICAgICA9ICgxIDw8IDMpLAorICAgICAgICBUYWJsZUNlbGwgICAgICAgICAgID0gKDEgPDwgNCksCisgICAgICAgIE5vdGlmaWNhdGlvblJlbGF0ZWQgPSAoMSA8PCA1KSwKKyAgICAgICAgQ29uZm9ybWFuY2VSZWxhdGVkICA9ICgxIDw8IDYpCisgICAgfQorCisKKyAgICBwdWJsaWMgY2xhc3MgTWliVHJlZU5vZGUKKyAgICB7CisgICAgICAgIHByaXZhdGUgTWliVHJlZU5vZGUgICAgICAgX3BhcmVudCAgICAgPSBudWxsOworICAgICAgICBwcml2YXRlIExpc3Q8TWliVHJlZU5vZGU+IF9jaGlsZE5vZGVzID0gbmV3IExpc3Q8TWliVHJlZU5vZGU+KCk7CisgICAgICAgIHByaXZhdGUgSUVudGl0eSAgICAgICAgICAgX2VudGl0eSAgICAgPSBudWxsOworICAgICAgICBwcml2YXRlIE1pYlRyZWVOb2RlVHlwZSAgIF9ub2RlVHlwZSAgID0gTWliVHJlZU5vZGVUeXBlLlVua25vd247CisKKyAgICAgICAgcHVibGljIE1pYlRyZWVOb2RlKE1pYlRyZWVOb2RlIHBhcmVudCwgSUVudGl0eSBlbnRpdHkpCisgICAgICAgIHsKKyAgICAgICAgICAgIF9wYXJlbnQgPSBwYXJlbnQ7CisgICAgICAgICAgICBfZW50aXR5ID0gZW50aXR5OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE1pYlRyZWVOb2RlIFBhcmVudAorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX3BhcmVudDsgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIElFbnRpdHkgRW50aXR5CisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfZW50aXR5OyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgTWliVHJlZU5vZGVUeXBlIE5vZGVUeXBlCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfbm9kZVR5cGU7IH0KKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBMaXN0PE1pYlRyZWVOb2RlPiBDaGlsZE5vZGVzCisgICAgICAgIHsKKyAgICAgICAgICAgIGdldCB7IHJldHVybiBfY2hpbGROb2RlczsgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIE1pYlRyZWVOb2RlIEFkZENoaWxkKElFbnRpdHkgZWxlbWVudCkKKyAgICAgICAgeworICAgICAgICAgICAgTWliVHJlZU5vZGUgcmVzdWx0ID0gbmV3IE1pYlRyZWVOb2RlKHRoaXMsIGVsZW1lbnQpOworICAgICAgICAgICAgdGhpcy5DaGlsZE5vZGVzLkFkZChyZXN1bHQpOworCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHZvaWQgVXBkYXRlTm9kZVR5cGUoKQorICAgICAgICB7CisgICAgICAgICAgICBfbm9kZVR5cGUgPSBNaWJUcmVlTm9kZVR5cGUuVW5rbm93bjsKKworICAgICAgICAgICAgaWYgKF9lbnRpdHkgIT0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoKF9lbnRpdHkgaXMgT2lkVmFsdWVBc3NpZ25tZW50KSB8fCAoX2VudGl0eSBpcyBPYmplY3RJZGVudGl0eSkpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBfbm9kZVR5cGUgfD0gTWliVHJlZU5vZGVUeXBlLkNvbnRhaW5lcjsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmIChfY2hpbGROb2Rlcy5Db3VudCA+IDApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBfbm9kZVR5cGUgfD0gTWliVHJlZU5vZGVUeXBlLkNvbnRhaW5lcjsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoX2VudGl0eSBpcyBPYmplY3RUeXBlKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgT2JqZWN0VHlwZSBvdCA9IF9lbnRpdHkgYXMgT2JqZWN0VHlwZTsKKworICAgICAgICAgICAgICAgICAgICBpZiAob3QuU3ludGF4IGlzIFNlcXVlbmNlT2YpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9ub2RlVHlwZSB8PSBNaWJUcmVlTm9kZVR5cGUuVGFibGU7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAob3QuU3ludGF4IGlzIFNlcXVlbmNlKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBfbm9kZVR5cGUgfD0gTWliVHJlZU5vZGVUeXBlLlRhYmxlUm93OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKChfcGFyZW50ICE9IG51bGwpICYmICgoX3BhcmVudC5Ob2RlVHlwZSAmIE1pYlRyZWVOb2RlVHlwZS5UYWJsZVJvdykgIT0gMCkpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9ub2RlVHlwZSB8PSBNaWJUcmVlTm9kZVR5cGUuVGFibGVDZWxsOworICAgICAgICAgICAgICAgICAgICAgICAgX25vZGVUeXBlIHw9IE1pYlRyZWVOb2RlVHlwZS5TY2FsYXI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBfbm9kZVR5cGUgfD0gTWliVHJlZU5vZGVUeXBlLlNjYWxhcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIGlmICgoX2VudGl0eSBpcyBNb2R1bGVDb21wbGlhbmNlKSB8fCAoX2VudGl0eSBpcyBPYmplY3RHcm91cCkgfHwgKF9lbnRpdHkgaXMgTm90aWZpY2F0aW9uR3JvdXApKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgX25vZGVUeXBlIHw9IE1pYlRyZWVOb2RlVHlwZS5Db25mb3JtYW5jZVJlbGF0ZWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKChfZW50aXR5IGlzIE5vdGlmaWNhdGlvbkdyb3VwKSB8fCAoX2VudGl0eSBpcyBOb3RpZmljYXRpb25UeXBlKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIF9ub2RlVHlwZSB8PSBNaWJUcmVlTm9kZVR5cGUuTm90aWZpY2F0aW9uUmVsYXRlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvTWliVHlwZXNSZXNvbHZlci5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9NaWJUeXBlc1Jlc29sdmVyLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlNzUyOWEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvTWliVHlwZXNSZXNvbHZlci5jcwpAQCAtMCwwICsxLDIxNiBAQAor77u/dXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cit1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7Cit1c2luZyBMZXh0bS5TaGFycFNubXBMaWIuTWliLkVsZW1lbnRzOwordXNpbmcgTGV4dG0uU2hhcnBTbm1wTGliLk1pYi5FbGVtZW50cy5FbnRpdGllczsKK3VzaW5nIExleHRtLlNoYXJwU25tcExpYi5NaWIuRWxlbWVudHMuVHlwZXM7CisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliCit7CisJIHB1YmxpYyBzdGF0aWMgY2xhc3MgTWliVHlwZXNSZXNvbHZlcgorCSB7CisJCSAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgUmVnZXggICAgICAgICAgICAgIF9uYW1lZE9pZFBhdGhSZWdleCA9IG5ldyBSZWdleChAIl4oPzxOYW1lPlteXChdKylcKCg/PFZhbHVlPlxkKylcKSQiKTsKKwkJICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBMaXN0PElNaWJSZXNvbHZlcj4gX3Jlc29sdmVyICAgICAgPSBuZXcgTGlzdDxJTWliUmVzb2x2ZXI+KCk7CisJCSAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTGlzdDxJTW9kdWxlPiAgICAgIF9jYWNoZWRNb2R1bGVzID0gbmV3IExpc3Q8SU1vZHVsZT4oKTsKKworCQkgIHB1YmxpYyBzdGF0aWMgdm9pZCBSZWdpc3RlclJlc29sdmVyKElNaWJSZXNvbHZlciByZXNvbHZlcikKKwkJICB7CisJCQkJaWYgKHJlc29sdmVyICE9IG51bGwpCisJCQkJeworCQkJCQkgX3Jlc29sdmVyLkFkZChyZXNvbHZlcik7CisJCQkJfQorCQkgIH0KKworCQkgIHB1YmxpYyBzdGF0aWMgSU1vZHVsZSBSZXNvbHZlTW9kdWxlKHN0cmluZyBtb2R1bGVOYW1lKQorCQkgIHsKKwkJCQkvLyBjaGVjayBpZiBtb2R1bGUgaXMgYWxyZWFkeSBjYWNoZWQKKwkJCQlmb3JlYWNoIChNaWJNb2R1bGUgY2FjaGVkTW9kdWxlIGluIF9jYWNoZWRNb2R1bGVzKQorCQkJCXsKKwkJCQkJIGlmIChjYWNoZWRNb2R1bGUuTmFtZSA9PSBtb2R1bGVOYW1lKQorCQkJCQkgeworCQkJCQkJICByZXR1cm4gY2FjaGVkTW9kdWxlOworCQkJCQkgfQorCQkJCX0KKworCQkJCWZvcmVhY2ggKElNaWJSZXNvbHZlciByZXNvbHZlciBpbiBfcmVzb2x2ZXIpCisJCQkJeworCQkJCQkgSU1vZHVsZSByZXNvbHZlZE1vZHVsZSA9IHJlc29sdmVyLlJlc29sdmUobW9kdWxlTmFtZSk7CisJCQkJCSBpZiAocmVzb2x2ZWRNb2R1bGUgIT0gbnVsbCkKKwkJCQkJIHsKKwkJCQkJCSAgUmVzb2x2ZVR5cGVzKHJlc29sdmVkTW9kdWxlKTsKKwkJCQkJCSAgX2NhY2hlZE1vZHVsZXMuQWRkKHJlc29sdmVkTW9kdWxlKTsKKwkJCQkJCSAgcmV0dXJuIHJlc29sdmVkTW9kdWxlOworCQkJCQkgfQorCQkJCX0KKworCQkJCXJldHVybiBudWxsOworCQkgIH0KKworCQkgIHB1YmxpYyBzdGF0aWMgdm9pZCBSZXNvbHZlVHlwZXMoSU1vZHVsZSBtb2R1bGUpCisJCSAgeworCQkJCWZvcmVhY2ggKElFbnRpdHkgZW50aXR5IGluIG1vZHVsZS5FbnRpdGllcykKKwkJCQl7CisJCQkJCSBJVHlwZVJlZmVycmVyIHR5cGVSZWZlcnJpbmdFbnRpdHkgPSBlbnRpdHkgYXMgSVR5cGVSZWZlcnJlcjsKKworCQkJCQkgaWYgKHR5cGVSZWZlcnJpbmdFbnRpdHkgIT0gbnVsbCkKKwkJCQkJIHsKKwkJCQkJCSAgQ2hlY2tUeXBlUmVmZXJyZXIobW9kdWxlLCB0eXBlUmVmZXJyaW5nRW50aXR5KTsKKwkJCQkJIH0KKwkJCQl9CisKKwkJCQlpZiAoIV9jYWNoZWRNb2R1bGVzLkNvbnRhaW5zKG1vZHVsZSkpCisJCQkJeworCQkJCQkgX2NhY2hlZE1vZHVsZXMuQWRkKG1vZHVsZSk7CisJCQkJfQorCQkgIH0KKworCQkgIHByaXZhdGUgc3RhdGljIHZvaWQgQ2hlY2tUeXBlUmVmZXJyZXIoSU1vZHVsZSBtb2R1bGUsIElUeXBlUmVmZXJyZXIgdHlwZVJlZmVycmluZ0VudGl0eSkKKwkJICB7CisJCQkJVHlwZUFzc2lnbm1lbnQgdW5rbm93blR5cGUgPSB0eXBlUmVmZXJyaW5nRW50aXR5LlJlZmVycmVkVHlwZSBhcyBUeXBlQXNzaWdubWVudDsKKwkJCQlpZiAodW5rbm93blR5cGUgIT0gbnVsbCkKKwkJCQl7CisJCQkJCSB0eXBlUmVmZXJyaW5nRW50aXR5LlJlZmVycmVkVHlwZSA9IFJlc29sdmVUeXBlKG1vZHVsZSwgdW5rbm93blR5cGUpOworCisJCQkJCSBpZiAodHlwZVJlZmVycmluZ0VudGl0eS5SZWZlcnJlZFR5cGUgaXMgVHlwZUFzc2lnbm1lbnQpCisJCQkJCSB7CisJCQkJCQkgIENvbnNvbGUuV3JpdGVMaW5lKFN0cmluZy5Gb3JtYXQoIkNvdWxkIG5vdCByZXNvbHZlIHR5cGUgJ3swfScgZGVjbGFyZWQgaW4gbW9kdWxlICd7MX0nIiwgKHR5cGVSZWZlcnJpbmdFbnRpdHkuUmVmZXJyZWRUeXBlIGFzIFR5cGVBc3NpZ25tZW50KS5UeXBlLCB0eXBlUmVmZXJyaW5nRW50aXR5LlJlZmVycmVkVHlwZS5Nb2R1bGUuTmFtZSkpOworCQkJCQkgfQorCQkJCX0KKworCQkJCUlUeXBlUmVmZXJyZXIgbmV4dFR5cGVSZWZlcnJpbmdFbnRpdHkgPSB0eXBlUmVmZXJyaW5nRW50aXR5LlJlZmVycmVkVHlwZSBhcyBJVHlwZVJlZmVycmVyOworCQkJCWlmIChuZXh0VHlwZVJlZmVycmluZ0VudGl0eSAhPSBudWxsKQorCQkJCXsKKwkJCQkJIENoZWNrVHlwZVJlZmVycmVyKG1vZHVsZSwgbmV4dFR5cGVSZWZlcnJpbmdFbnRpdHkpOworCQkJCX0KKwkJICB9CisKKwkJICBwdWJsaWMgc3RhdGljIElUeXBlQXNzaWdubWVudCBSZXNvbHZlVHlwZShJTW9kdWxlIG1vZHVsZSwgVHlwZUFzc2lnbm1lbnQgdHlwZSkKKwkJICB7CisJCQkJSVR5cGVBc3NpZ25tZW50IHJlc3VsdCA9IFJlc29sdmVEZWNsYXJhdGlvbihtb2R1bGUsIHR5cGUuVHlwZSkgYXMgSVR5cGVBc3NpZ25tZW50OworCisJCQkJcmV0dXJuIChyZXN1bHQgIT0gbnVsbCkgPyByZXN1bHQgOiB0eXBlOworCQkgIH0KKworCQkgIHB1YmxpYyBzdGF0aWMgSURlY2xhcmF0aW9uIFJlc29sdmVEZWNsYXJhdGlvbihJTW9kdWxlIG1vZHVsZSwgc3RyaW5nIG5hbWUpCisJCSAgeworCQkJCWlmICgobW9kdWxlID09IG51bGwpIHx8IFN0cmluZy5Jc051bGxPckVtcHR5KG5hbWUpKQorCQkJCXsKKwkJCQkJIHJldHVybiBudWxsOworCQkJCX0KKworCQkJCS8vIGNoZWNrIG1vZHVsZSBpbnRlcm5hbCB0eXBlcworCQkJCWZvcmVhY2ggKElEZWNsYXJhdGlvbiBkZWNsIGluIG1vZHVsZS5EZWNsYXJhdGlvbnMpCisJCQkJeworCQkJCWlmIChkZWNsLk5hbWUgPT0gbmFtZSkKKwkJCQkJIHsKKwkJCQkJcmV0dXJuIGRlY2w7CisJCQkJCSB9CisJCQkJfQorCisJCQkJLy8gY2hlY2sgaWYgdHlwZSBpcyBpbXBvcnRlZAorCQkJCWlmIChtb2R1bGUuSW1wb3J0cyAhPSBudWxsKQorCQkJCXsKKwkJCQkJIEltcG9ydHNGcm9tIGltcG9ydHMgPSBtb2R1bGUuSW1wb3J0cy5HZXRJbXBvcnRGcm9tVHlwZShuYW1lKTsKKwkJCQkJIGlmIChpbXBvcnRzICE9IG51bGwpCisJCQkJCSB7CisJCQkJCQkgIElNb2R1bGUgaW1wb3J0ZWRNb2R1bGUgPSBSZXNvbHZlTW9kdWxlKGltcG9ydHMuTW9kdWxlKTsKKwkJCQkJCSAgaWYgKGltcG9ydGVkTW9kdWxlICE9IG51bGwpCisJCQkJCQkgIHsKKwkJCQkJCQkJcmV0dXJuIFJlc29sdmVEZWNsYXJhdGlvbihpbXBvcnRlZE1vZHVsZSwgbmFtZSk7CisJCQkJCQkgIH0KKwkJCQkJIH0KKwkJCQl9CisKKwkJCQlyZXR1cm4gbnVsbDsKKwkJICB9CisKKwkJICBwdWJsaWMgc3RhdGljIE9iamVjdElkZW50aWZpZXIgUmVzb2x2ZU9pZChJRW50aXR5IGVudGl0eSkKKwkJICB7CisJCQkJT2JqZWN0SWRlbnRpZmllciByZXN1bHQgPSBuZXcgT2JqZWN0SWRlbnRpZmllcigpOworCisJCQkJaWYgKGVudGl0eSAhPSBudWxsKQorCQkJCXsKKwkJCQkJIFJlc29sdmVPaWQoZW50aXR5LCByZXN1bHQpOworCQkJCX0KKworCQkJCXJldHVybiByZXN1bHQ7CisJCSAgfQorCisJCSAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBSZXNvbHZlT2lkKElFbnRpdHkgZW50aXR5LCBPYmplY3RJZGVudGlmaWVyIHJlc3VsdCkKKwkJICB7CisJCQkJcmVzdWx0LlByZXBlbmQoZW50aXR5Lk5hbWUsIGVudGl0eS5WYWx1ZSk7CisJCQkJCisJCQkJLy8gY2hlY2sgcGFyZW50CisJCQkJaWYgKCFTdHJpbmcuSXNOdWxsT3JFbXB0eShlbnRpdHkuUGFyZW50KSkKKwkJCQl7CisJCQkJCSBzdHJpbmdbXSBwYXRoUGFydHMgPSBlbnRpdHkuUGFyZW50LlNwbGl0KCcuJyk7CisJCQkJCSB1aW50IHZhbHVlOworCisJCQkJCSAvLyBhbGwgcGFydHMgZXhjZXB0IHRoZSBmaXJzdCBzaG91bGQgaGF2ZSB0aGVpciB2YWx1ZSBkaXJlY3RseSBvciBpbmRpcmVjdGx5IHdpdGggdGhlbQorCQkJCQkgaWYgKHBhdGhQYXJ0cy5MZW5ndGggPiAxKQorCQkJCQkgeworCQkJCQkJICBmb3IgKGludCBpPXBhdGhQYXJ0cy5MZW5ndGgtMTsgaT49MTsgaS0tKQorCQkJCQkJICB7CisJCQkJCQkJCWlmICh1aW50LlRyeVBhcnNlKHBhdGhQYXJ0c1tpXSwgb3V0IHZhbHVlKSkKKwkJCQkJCQkJeworCQkJCQkJCQkJIHJlc3VsdC5QcmVwZW5kKCIiLCB2YWx1ZSk7CisJCQkJCQkJCX0KKwkJCQkJCQkJZWxzZQorCQkJCQkJCQl7CisJCQkJCQkJCQkgTWF0Y2ggbSA9IF9uYW1lZE9pZFBhdGhSZWdleC5NYXRjaChwYXRoUGFydHNbaV0pOworCQkJCQkJCQkJIGlmIChtLlN1Y2Nlc3MpCisJCQkJCQkJCQkgeworCQkJCQkJCQkJCSAgcmVzdWx0LlByZXBlbmQobS5Hcm91cHNbIk5hbWUiXS5WYWx1ZSwgdWludC5QYXJzZShtLkdyb3Vwc1siVmFsdWUiXS5WYWx1ZSkpOworCQkJCQkJCQkJIH0KKwkJCQkJCQkJCSBlbHNlCisJCQkJCQkJCQkgeworCQkJCQkJCQkJCSAgdGhyb3cgbmV3IE1pYkV4Y2VwdGlvbigiSW52YWxpZCBPSUQgcGF0aCBkZXRlY3RlZCBmb3IgZW50aXR5ICciICsgZW50aXR5Lk5hbWUgKyAiJyBpbiBtb2R1bGUgJyIgKyBlbnRpdHkuTW9kdWxlICsgIichIik7CisJCQkJCQkJCQkgfQorCQkJCQkJCQl9CisJCQkJCQkgIH0KKwkJCQkJIH0KKworCQkJCQkgLy8gcGFyc2Ugcm9vdCBwYXJ0OiBlaXRoZXIgYW5vdGhlciBlbnRpdHkgb3IgYSBzdGFuZGFyZCByb290IG9iamVjdAorCQkJCQkgaWYgKElzT2lkUm9vdChwYXRoUGFydHNbMF0sIG91dCB2YWx1ZSkpCisJCQkJCSB7CisJCQkJCQkgIHJlc3VsdC5QcmVwZW5kKHBhdGhQYXJ0c1swXSwgdmFsdWUpOworCQkJCQkgfQorCQkJCQkgZWxzZQorCQkJCQkgeworCQkJCQkJICAvLyB0cnkgdG8gZmluZCBlbnRpdHkgaW5zaWRlIHRoaXMgbW9kdWxlCisJCQkJCQkgIGlmIChlbnRpdHkuTW9kdWxlICE9IG51bGwpCisJCQkJCQkgIHsKKwkJCQkJCQkJZW50aXR5ID0gUmVzb2x2ZURlY2xhcmF0aW9uKGVudGl0eS5Nb2R1bGUsIHBhdGhQYXJ0c1swXSkgYXMgSUVudGl0eTsKKworCQkJCQkJCQlpZiAoZW50aXR5ICE9IG51bGwpCisJCQkJCQkJCXsKKwkJCQkJCQkJCSBSZXNvbHZlT2lkKGVudGl0eSwgcmVzdWx0KTsKKwkJCQkJCQkJfQorCQkJCQkJCQllbHNlCisJCQkJCQkJCXsKKwkJCQkJCQkJCSByZXN1bHQuUHJlcGVuZCgiIiwgdWludC5NYXhWYWx1ZSk7CisJCQkJCQkJCX0KKwkJCQkJCSAgfQorCQkJCQkJICBlbHNlCisJCQkJCQkgIHsKKwkJCQkJCQkJcmVzdWx0LlByZXBlbmQoIiIsIHVpbnQuTWF4VmFsdWUpOworCQkJCQkJICB9CisJCQkJCSB9CisJCQkJfQorCQkgIH0KKworCQkgIHB1YmxpYyBzdGF0aWMgYm9vbCBJc09pZFJvb3Qoc3RyaW5nIG5hbWUsIG91dCB1aW50IHZhbHVlKQorCQkgIHsKKwkJCQl2YWx1ZSA9IHVpbnQuTWF4VmFsdWU7CisKKwkJCQlzd2l0Y2ggKG5hbWUpCisJCQkJeworCQkJCQkgY2FzZSAiY2NpdHQiOiB2YWx1ZSA9IDA7IHJldHVybiB0cnVlOworCQkJCQkgY2FzZSAiaXNvIjogdmFsdWUgPSAxOyByZXR1cm4gdHJ1ZTsKKwkJCQkJIGNhc2UgImpvaW50LWlzby1jY2l0dCI6IHZhbHVlID0gMjsgcmV0dXJuIHRydWU7CisJCQkJfQorCisJCQkJcmV0dXJuIGZhbHNlOworCQkgIH0KKwkgfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL09iamVjdElkZW50aWZpZXIuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvT2JqZWN0SWRlbnRpZmllci5jcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDI0ODA0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL09iamVjdElkZW50aWZpZXIuY3MKQEAgLTAsMCArMSw1NCBAQAor77u/dXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cit1c2luZyBTeXN0ZW0uVGV4dDsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIKK3sKKyAgICBwdWJsaWMgY2xhc3MgT2JqZWN0SWRlbnRpZmllcjogTGlzdDxLZXlWYWx1ZVBhaXI8c3RyaW5nLCB1aW50Pj4KKyAgICB7CisgICAgICAgIHB1YmxpYyB2b2lkIEFkZChzdHJpbmcgbmFtZSwgdWludCBvaWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuQWRkKG5ldyBLZXlWYWx1ZVBhaXI8c3RyaW5nLCB1aW50PihuYW1lLCBvaWQpKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB2b2lkIFByZXBlbmQoc3RyaW5nIG5hbWUsIHVpbnQgb2lkKQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLkluc2VydCgwLCBuZXcgS2V5VmFsdWVQYWlyPHN0cmluZywgdWludD4obmFtZSwgb2lkKSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgdm9pZCBJbnNlcnQoaW50IGluZGV4LCBzdHJpbmcgbmFtZSwgdWludCBvaWQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMuSW5zZXJ0KGluZGV4LCBuZXcgS2V5VmFsdWVQYWlyPHN0cmluZywgdWludD4obmFtZSwgb2lkKSk7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgc3RyaW5nIEdldE9pZFN0cmluZygpCisgICAgICAgIHsKKyAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKworICAgICAgICAgICAgZm9yZWFjaCAoS2V5VmFsdWVQYWlyPHN0cmluZywgdWludD4gbGV2ZWwgaW4gdGhpcykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuQXBwZW5kKGxldmVsLlZhbHVlKTsKKyAgICAgICAgICAgICAgICByZXN1bHQuQXBwZW5kKCcuJyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChyZXN1bHQuTGVuZ3RoID4gMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuTGVuZ3RoLS07CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQuVG9TdHJpbmcoKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyB1aW50W10gR2V0T2lkVmFsdWVzKCkKKyAgICAgICAgeworICAgICAgICAgICAgTGlzdDx1aW50PiByZXN1bHQgPSBuZXcgTGlzdDx1aW50PigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBmb3JlYWNoIChLZXlWYWx1ZVBhaXI8c3RyaW5nLCB1aW50PiBsZXZlbCBpbiB0aGlzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlc3VsdC5BZGQobGV2ZWwuVmFsdWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0LlRvQXJyYXkoKTsKKyAgICAgICAgfQorCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL1N0YXR1cy5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9TdGF0dXMuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGRkZDNiYQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9TdGF0dXMuY3MKQEAgLTAsMCArMSwxNyBAQAor77u/dXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7Cit1c2luZyBTeXN0ZW0uTGlucTsKK3VzaW5nIFN5c3RlbS5UZXh0OworCituYW1lc3BhY2UgTGV4dG0uU2hhcnBTbm1wTGliLk1pYgoreworICAgIHB1YmxpYyBlbnVtIFN0YXR1cworICAgIHsKKyAgICAgICAgY3VycmVudCwKKyAgICAgICAgZGVwcmVjYXRlZCwKKyAgICAgICAgb2Jzb2xldGUsCisgICAgICAgIG1hbmRhdG9yeSwKKyAgICAgICAgb3B0aW9uYWwKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9TeW1ib2wuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvU3ltYm9sLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMTM4NmQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvU3ltYm9sLmNzCkBAIC0wLDAgKzEsMzU3IEBACisvKgorICogQ3JlYXRlZCBieSBTaGFycERldmVsb3AuCisgKiBVc2VyOiBsZXh0bQorICogRGF0ZTogMjAwOC81LzE3CisgKiBUaW1lOiAxNzoxNAorICogCisgKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSB1c2UgVG9vbHMgfCBPcHRpb25zIHwgQ29kaW5nIHwgRWRpdCBTdGFuZGFyZCBIZWFkZXJzLgorICovCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5Db25maWd1cmF0aW9uOwordXNpbmcgU3lzdGVtLkdsb2JhbGl6YXRpb247Cit1c2luZyBTeXN0ZW0uVGV4dDsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIKK3sKKyAgICAvLy8gPHN1bW1hcnk+CisgICAgLy8vIERlc2NyaXB0aW9uIG9mIFN5bWJvbC4KKyAgICAvLy8gPC9zdW1tYXJ5PgorICAgIHB1YmxpYyBzZWFsZWQgY2xhc3MgU3ltYm9sIDogSUVxdWF0YWJsZTxTeW1ib2w+CisgICAgeworICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHN0cmluZyBfdGV4dDsKKyAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnQgX3JvdzsKKyAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnQgX2NvbHVtbjsKKyAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzdHJpbmcgX2ZpbGU7CisgICAgICAgIAorICAgICAgICBwcml2YXRlIFN5bWJvbChzdHJpbmcgdGV4dCkgOiB0aGlzKG51bGwsIHRleHQsIC0xLCAtMSkKKyAgICAgICAgeworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyBDcmVhdGVzIGEgPHNlZSBjcmVmPSJTeW1ib2wiLz4uCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0iZmlsZSI+RmlsZTwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0idGV4dCI+VGV4dDwvcGFyYW0+CisgICAgICAgIC8vLyA8cGFyYW0gbmFtZT0icm93Ij5Sb3cgbnVtYmVyPC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJjb2x1bW4iPmNvbHVtbiBudW1iZXI8L3BhcmFtPgorICAgICAgICBwdWJsaWMgU3ltYm9sKHN0cmluZyBmaWxlLCBzdHJpbmcgdGV4dCwgaW50IHJvdywgaW50IGNvbHVtbikKKyAgICAgICAgeworICAgICAgICAgICAgX2ZpbGUgPSBmaWxlOworICAgICAgICAgICAgX3RleHQgPSB0ZXh0OworICAgICAgICAgICAgX3JvdyA9IHJvdzsKKyAgICAgICAgICAgIF9jb2x1bW4gPSBjb2x1bW47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIEZpbGUuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIHB1YmxpYyBzdHJpbmcgRmlsZQorICAgICAgICB7CisgICAgICAgICAgICBnZXQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gX2ZpbGU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIFJvdyBudW1iZXIuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIHB1YmxpYyBpbnQgUm93CisgICAgICAgIHsKKyAgICAgICAgICAgIGdldAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBfcm93OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyBDb2x1bW4gbnVtYmVyLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICBwdWJsaWMgaW50IENvbHVtbgorICAgICAgICB7CisgICAgICAgICAgICBnZXQKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gX2NvbHVtbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSAgICAgICAgCisgICAgICAgIAorICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyBSZXR1cm5zIGEgPHNlZSBjcmVmPSJTdHJpbmciLz4gdGhhdCByZXByZXNlbnRzIHRoaXMgPHNlZSBjcmVmPSJTeW1ib2wiLz4uCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIC8vLyA8cmV0dXJucz48L3JldHVybnM+CisgICAgICAgIHB1YmxpYyBvdmVycmlkZSBzdHJpbmcgVG9TdHJpbmcoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gX3RleHQ7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIERldGVybWluZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIDxzZWUgY3JlZj0iT2JqZWN0Ii8+IGlzIGVxdWFsIHRvIHRoZSBjdXJyZW50IDxzZWUgY3JlZj0iU3ltYm9sIi8+LgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9Im9iaiI+VGhlIDxzZWUgY3JlZj0iT2JqZWN0Ii8+IHRvIGNvbXBhcmUgd2l0aCB0aGUgY3VycmVudCA8c2VlIGNyZWY9IlN5bWJvbCIvPi4gPC9wYXJhbT4KKyAgICAgICAgLy8vIDxyZXR1cm5zPjx2YWx1ZT50cnVlPC92YWx1ZT4gaWYgdGhlIHNwZWNpZmllZCA8c2VlIGNyZWY9Ik9iamVjdCIvPiBpcyBlcXVhbCB0byB0aGUgY3VycmVudCA8c2VlIGNyZWY9IlN5bWJvbCIvPjsgb3RoZXJ3aXNlLCA8dmFsdWU+ZmFsc2U8L3ZhbHVlPi4KKyAgICAgICAgLy8vIDwvcmV0dXJucz4KKyAgICAgICAgcHVibGljIG92ZXJyaWRlIGJvb2wgRXF1YWxzKG9iamVjdCBvYmopCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChvYmogPT0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChSZWZlcmVuY2VFcXVhbHModGhpcywgb2JqKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIEdldFR5cGUoKSA9PSBvYmouR2V0VHlwZSgpICYmIEVxdWFscygoU3ltYm9sKW9iaik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIFNlcnZlcyBhcyBhIGhhc2ggZnVuY3Rpb24gZm9yIGEgcGFydGljdWxhciB0eXBlLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHJldHVybnM+QSBoYXNoIGNvZGUgZm9yIHRoZSBjdXJyZW50IDxzZWUgY3JlZj0iU3ltYm9sIi8+LjwvcmV0dXJucz4KKyAgICAgICAgcHVibGljIG92ZXJyaWRlIGludCBHZXRIYXNoQ29kZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBfdGV4dC5HZXRIYXNoQ29kZSgpOworICAgICAgICB9CisKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gVGhlIGVxdWFsaXR5IG9wZXJhdG9yLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxlZnQiPkxlZnQgPHNlZSBjcmVmPSJTeW1ib2wiLz4gb2JqZWN0PC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJyaWdodCI+UmlnaHQgPHNlZSBjcmVmPSJTeW1ib2wiLz4gb2JqZWN0PC9wYXJhbT4KKyAgICAgICAgLy8vIDxyZXR1cm5zPgorICAgICAgICAvLy8gUmV0dXJucyA8Yz50cnVlPC9jPiBpZiB0aGUgdmFsdWVzIG9mIGl0cyBvcGVyYW5kcyBhcmUgZXF1YWwsIDxjPmZhbHNlPC9jPiBvdGhlcndpc2UuPC9yZXR1cm5zPgorICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgb3BlcmF0b3IgPT0oU3ltYm9sIGxlZnQsIFN5bWJvbCByaWdodCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIEVxdWFscyhsZWZ0LCByaWdodCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIERldGVybWluZXMgd2hldGhlciB0aGUgc3BlY2lmaWVkIDxzZWUgY3JlZj0iU3ltYm9sIi8+IGlzIGVxdWFsIHRvIHRoZSBjdXJyZW50IDxzZWUgY3JlZj0iU3ltYm9sIi8+LgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxlZnQiPkxlZnQgPHNlZSBjcmVmPSJTeW1ib2wiLz4gb2JqZWN0PC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJyaWdodCI+UmlnaHQgPHNlZSBjcmVmPSJTeW1ib2wiLz4gb2JqZWN0PC9wYXJhbT4KKyAgICAgICAgLy8vIDxyZXR1cm5zPgorICAgICAgICAvLy8gUmV0dXJucyA8Yz50cnVlPC9jPiBpZiB0aGUgdmFsdWVzIG9mIGl0cyBvcGVyYW5kcyBhcmUgZXF1YWwsIDxjPmZhbHNlPC9jPiBvdGhlcndpc2UuPC9yZXR1cm5zPgorICAgICAgICBwdWJsaWMgc3RhdGljIGJvb2wgRXF1YWxzKFN5bWJvbCBsZWZ0LCBTeW1ib2wgcmlnaHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIG9iamVjdCBsID0gbGVmdDsKKyAgICAgICAgICAgIG9iamVjdCByID0gcmlnaHQ7CisgICAgICAgICAgICBpZiAobCA9PSByKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobCA9PSBudWxsIHx8IHIgPT0gbnVsbCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBsZWZ0Ll90ZXh0LkVxdWFscyhyaWdodC5fdGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vIFRoZSBpbmVxdWFsaXR5IG9wZXJhdG9yLgorICAgICAgICAvLy8gPC9zdW1tYXJ5PgorICAgICAgICAvLy8gPHBhcmFtIG5hbWU9ImxlZnQiPkxlZnQgPHNlZSBjcmVmPSJTeW1ib2wiLz4gb2JqZWN0PC9wYXJhbT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJyaWdodCI+UmlnaHQgPHNlZSBjcmVmPSJTeW1ib2wiLz4gb2JqZWN0PC9wYXJhbT4KKyAgICAgICAgLy8vIDxyZXR1cm5zPgorICAgICAgICAvLy8gUmV0dXJucyA8Yz50cnVlPC9jPiBpZiB0aGUgdmFsdWVzIG9mIGl0cyBvcGVyYW5kcyBhcmUgbm90IGVxdWFsLCA8Yz5mYWxzZTwvYz4gb3RoZXJ3aXNlLjwvcmV0dXJucz4KKyAgICAgICAgcHVibGljIHN0YXRpYyBib29sIG9wZXJhdG9yICE9KFN5bWJvbCBsZWZ0LCBTeW1ib2wgcmlnaHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhKGxlZnQgPT0gcmlnaHQpOworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbiBJRXF1YXRhYmxlPFN5bWJvbD4gTWVtYmVycworICAgICAgICAvLy8gPHN1bW1hcnk+CisgICAgICAgIC8vLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCBvYmplY3QgaXMgZXF1YWwgdG8gYW5vdGhlciBvYmplY3Qgb2YgdGhlIHNhbWUgdHlwZS4KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4KKyAgICAgICAgLy8vIDxwYXJhbSBuYW1lPSJvdGhlciI+QW4gb2JqZWN0IHRvIGNvbXBhcmUgd2l0aCB0aGlzIG9iamVjdC48L3BhcmFtPgorICAgICAgICAvLy8gPHJldHVybnM+PHZhbHVlPnRydWU8L3ZhbHVlPiBpZiB0aGUgY3VycmVudCBvYmplY3QgaXMgZXF1YWwgdG8gdGhlIDxwYXJhbXJlZiBuYW1lPSJvdGhlciIvPiBwYXJhbWV0ZXI7IG90aGVyd2lzZSwgPHZhbHVlPmZhbHNlPC92YWx1ZT4uCisgICAgICAgIC8vLyA8L3JldHVybnM+CisgICAgICAgIHB1YmxpYyBib29sIEVxdWFscyhTeW1ib2wgb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBFcXVhbHModGhpcywgb3RoZXIpOworICAgICAgICB9CisKKyAgICAgICAgI2VuZHJlZ2lvbgorICAgICAgICAKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgRGVmaW5pdGlvbnMgPSBuZXcgU3ltYm9sKCJERUZJTklUSU9OUyIpOyAgICAgICAgCisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIEJlZ2luID0gbmV3IFN5bWJvbCgiQkVHSU4iKTsgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBPYmplY3QgPSBuZXcgU3ltYm9sKCJPQkpFQ1QiKTsgICAgICAgIAorICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBJZGVudGlmaWVyID0gbmV3IFN5bWJvbCgiSURFTlRJRklFUiIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBBc3NpZ24gPSBuZXcgU3ltYm9sKCI6Oj0iKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgT3BlbkJyYWNrZXQgPSBuZXcgU3ltYm9sKCJ7Iik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIENsb3NlQnJhY2tldCA9IG5ldyBTeW1ib2woIn0iKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgQ29tbWVudCA9IG5ldyBTeW1ib2woIi0tIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIEltcG9ydHMgPSBuZXcgU3ltYm9sKCJJTVBPUlRTIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIFNlbWljb2xvbiA9IG5ldyBTeW1ib2woIjsiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgRnJvbSA9IG5ldyBTeW1ib2woIkZST00iKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgTW9kdWxlSWRlbnRpdHkgPSBuZXcgU3ltYm9sKCJNT0RVTEUtSURFTlRJVFkiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgT2JqZWN0VHlwZSA9IG5ldyBTeW1ib2woIk9CSkVDVC1UWVBFIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIE9iamVjdEdyb3VwID0gbmV3IFN5bWJvbCgiT0JKRUNULUdST1VQIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIE5vdGlmaWNhdGlvbkdyb3VwID0gbmV3IFN5bWJvbCgiTk9USUZJQ0FUSU9OLUdST1VQIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIE1vZHVsZUNvbXBsaWFuY2UgPSBuZXcgU3ltYm9sKCJNT0RVTEUtQ09NUExJQU5DRSIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBTZXF1ZW5jZSA9IG5ldyBTeW1ib2woIlNFUVVFTkNFIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIE5vdGlmaWNhdGlvblR5cGUgPSBuZXcgU3ltYm9sKCJOT1RJRklDQVRJT04tVFlQRSIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBFT0wgPSBuZXcgU3ltYm9sKEVudmlyb25tZW50Lk5ld0xpbmUpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBPYmplY3RJZGVudGl0eSA9IG5ldyBTeW1ib2woIk9CSkVDVC1JREVOVElUWSIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBFbmQgPSBuZXcgU3ltYm9sKCJFTkQiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgTWFjcm8gPSBuZXcgU3ltYm9sKCJNQUNSTyIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBDaG9pY2UgPSBuZXcgU3ltYm9sKCJDSE9JQ0UiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgVHJhcFR5cGUgPSBuZXcgU3ltYm9sKCJUUkFQLVRZUEUiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgQWdlbnRDYXBhYmlsaXRpZXMgPSBuZXcgU3ltYm9sKCJBR0VOVC1DQVBBQklMSVRJRVMiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgQ29tbWEgPSBuZXcgU3ltYm9sKCIsIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIFRleHR1YWxDb252ZW50aW9uID0gbmV3IFN5bWJvbCgiVEVYVFVBTC1DT05WRU5USU9OIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIFN5bnRheCA9IG5ldyBTeW1ib2woIlNZTlRBWCIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBCaXRzID0gbmV3IFN5bWJvbCgiQklUUyIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBPY3RldCA9IG5ldyBTeW1ib2woIk9DVEVUIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIFN0cmluZyA9IG5ldyBTeW1ib2woIlNUUklORyIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBPcGVuUGFyZW50aGVzZXMgPSBuZXcgU3ltYm9sKCIoIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIENsb3NlUGFyZW50aGVzZXMgPSBuZXcgU3ltYm9sKCIpIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIEV4cG9ydHMgPSBuZXcgU3ltYm9sKCJFWFBPUlRTIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIERpc3BsYXlIaW50ID0gbmV3IFN5bWJvbCgiRElTUExBWS1ISU5UIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIFN0YXR1cyA9IG5ldyBTeW1ib2woIlNUQVRVUyIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBEZXNjcmlwdGlvbiA9IG5ldyBTeW1ib2woIkRFU0NSSVBUSU9OIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIFJlZmVyZW5jZSA9IG5ldyBTeW1ib2woIlJFRkVSRU5DRSIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBEb3VibGVEb3QgPSBuZXcgU3ltYm9sKCIuLiIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBQaXBlID0gbmV3IFN5bWJvbCgifCIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBTaXplID0gbmV3IFN5bWJvbCgiU0laRSIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBVbml0cyA9IG5ldyBTeW1ib2woIlVOSVRTIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIE1heEFjY2VzcyA9IG5ldyBTeW1ib2woIk1BWC1BQ0NFU1MiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgQWNjZXNzID0gbmV3IFN5bWJvbCgiQUNDRVNTIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIEluZGV4ID0gbmV3IFN5bWJvbCgiSU5ERVgiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgQXVnbWVudHMgPSBuZXcgU3ltYm9sKCJBVUdNRU5UUyIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBEZWZWYWwgPSBuZXcgU3ltYm9sKCJERUZWQUwiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgT2YgPSBuZXcgU3ltYm9sKCJPRiIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBJbnRlZ2VyID0gbmV3IFN5bWJvbCgiSU5URUdFUiIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBJbnRlZ2VyMzIgPSBuZXcgU3ltYm9sKCJJbnRlZ2VyMzIiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgSXBBZGRyZXNzID0gbmV3IFN5bWJvbCgiSXBBZGRyZXNzIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIENvdW50ZXIzMiA9IG5ldyBTeW1ib2woIkNvdW50ZXIzMiIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBDb3VudGVyID0gbmV3IFN5bWJvbCgiQ291bnRlciIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBUaW1lVGlja3MgPSBuZXcgU3ltYm9sKCJUaW1lVGlja3MiKTsKKyAgICAgICAgcHVibGljIHN0YXRpYyByZWFkb25seSBTeW1ib2wgT3BhcXVlID0gbmV3IFN5bWJvbCgiT3BhcXVlIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIENvdW50ZXI2NCA9IG5ldyBTeW1ib2woIkNvdW50ZXI2NCIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBVbnNpZ25lZDMyID0gbmV3IFN5bWJvbCgiVW5zaWduZWQzMiIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBHYXVnZTMyID0gbmV3IFN5bWJvbCgiR2F1Z2UzMiIpOworICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFN5bWJvbCBHYXVnZSA9IG5ldyBTeW1ib2woIkdhdWdlIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIFRydXRoVmFsdWUgPSBuZXcgU3ltYm9sKCJUcnV0aFZhbHVlIik7CisgICAgICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU3ltYm9sIEltcGxpZWQgPSBuZXcgU3ltYm9sKCJJTVBMSUVEIik7CisKKyAgICAgICAgaW50ZXJuYWwgdm9pZCBFeHBlY3QoU3ltYm9sIGV4cGVjdGVkLCBwYXJhbXMgU3ltYm9sW10gb3JFeHBlY3RlZCkKKyAgICAgICAgeworICAgICAgICAgICAgYm9vbCBpc0V4cGVjdGVkID0gKHRoaXMgPT0gZXhwZWN0ZWQpOworCisgICAgICAgICAgICBpZiAoIWlzRXhwZWN0ZWQgJiYgKG9yRXhwZWN0ZWQgIT0gbnVsbCkgJiYgKG9yRXhwZWN0ZWQuTGVuZ3RoID4gMCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLy8gY2hlY2sgdGhlIGFsdGVybmF0aXZlcworICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MDsgaTxvckV4cGVjdGVkLkxlbmd0aDsgaSsrKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMgPT0gb3JFeHBlY3RlZFtpXSkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNFeHBlY3RlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWlzRXhwZWN0ZWQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKChvckV4cGVjdGVkID09IG51bGwpIHx8IChvckV4cGVjdGVkLkxlbmd0aCA9PSAwKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIEFzc2VydChmYWxzZSwgIlVuZXhwZWN0ZWQgc3ltYm9sIGZvdW5kISBFeHBlY3RlZCAnIiArIGV4cGVjdGVkLlRvU3RyaW5nKCkgKyAiJyIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBTdHJpbmdCdWlsZGVyIG1zZyA9IG5ldyBTdHJpbmdCdWlsZGVyKCJVbmV4cGVjdGVkIHN5bWJvbCBmb3VuZCEgRXhwZWN0ZWQgb25lIG9mIHRoZSBmb2xsb3dpbmc6ICciKTsKKyAgICAgICAgICAgICAgICAgICAgbXNnLkFwcGVuZChleHBlY3RlZCk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgdGhlIGFsdGVybmF0aXZlcworICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7IGk8b3JFeHBlY3RlZC5MZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgbXNnLkFwcGVuZCgiJywgJyIpOworICAgICAgICAgICAgICAgICAgICAgICAgbXNnLkFwcGVuZChleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbXNnLkFwcGVuZCgiJyIpOworCisgICAgICAgICAgICAgICAgICAgIEFzc2VydChmYWxzZSwgbXNnLlRvU3RyaW5nKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludGVybmFsIHZvaWQgQXNzZXJ0KGJvb2wgY29uZGl0aW9uLCBzdHJpbmcgbWVzc2FnZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFjb25kaXRpb24pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGhyb3cgTWliRXhjZXB0aW9uLkNyZWF0ZShtZXNzYWdlLCB0aGlzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGludGVybmFsIHZvaWQgQXNzZXJ0SXNWYWxpZElkZW50aWZpZXIoKQorICAgICAgICB7CisgICAgICAgICAgICBzdHJpbmcgbWVzc2FnZTsKKyAgICAgICAgICAgIGJvb2wgaXNWYWxpZCA9IElzVmFsaWRJZGVudGlmaWVyKFRvU3RyaW5nKCksIG91dCBtZXNzYWdlKTsKKyAgICAgICAgICAgIEFzc2VydChpc1ZhbGlkLCBtZXNzYWdlKTsKKyAgICAgICAgfQorCisgICAgICAgIGludGVybmFsIGJvb2wgSXNWYWxpZElkZW50aWZpZXIoKQorICAgICAgICB7ICAgICAgCisgICAgICAgICAgICBzdHJpbmcgbWVzc2FnZTsKKyAgICAgICAgICAgIHJldHVybiBJc1ZhbGlkSWRlbnRpZmllcihUb1N0cmluZygpLCBvdXQgbWVzc2FnZSk7CisgICAgICAgIH0KKworICAgICAgICBwcml2YXRlIHN0YXRpYyBib29sIElzVmFsaWRJZGVudGlmaWVyKHN0cmluZyBuYW1lLCBvdXQgc3RyaW5nIG1lc3NhZ2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChVc2VTdHJpY3RlclZhbGlkYXRpb24gJiYgKG5hbWUuTGVuZ3RoIDwgMSB8fCBuYW1lLkxlbmd0aCA+IDY0KSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gImFuIGlkZW50aWZpZXIgbXVzdCBjb25zaXN0IG9mIDEgdG8gNjQgbGV0dGVycywgZGlnaXRzLCBhbmQgaHlwaGVucyI7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIUNoYXIuSXNMZXR0ZXIobmFtZVswXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJ0aGUgaW5pdGlhbCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlciI7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobmFtZS5FbmRzV2l0aCgiLSIsIFN0cmluZ0NvbXBhcmlzb24uT3JkaW5hbCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJhIGh5cGhlbiBjYW5ub3QgYmUgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGFuIGlkZW50aWZpZXIiOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG5hbWUuQ29udGFpbnMoIi0tIikpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJhIGh5cGhlbiBjYW5ub3QgYmUgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYW5vdGhlciBoeXBoZW4gaW4gYW4gaWRlbnRpZmllciI7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoVXNlU3RyaWN0ZXJWYWxpZGF0aW9uICYmIG5hbWUuQ29udGFpbnMoIl8iKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gInVuZGVyc2NvcmVzIGFyZSBub3QgYWxsb3dlZCBpbiBpZGVudGlmaWVycyI7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvLyBUT0RPOiBTTUl2MiBmb3JiaWRzICItIiBleGNlcHQgaW4gbW9kdWxlIG5hbWVzIGFuZCBrZXl3b3JkcworICAgICAgICAgICAgbWVzc2FnZSA9IG51bGw7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHByaXZhdGUgc3RhdGljIGJvb2w/IF91c2VTdHJpY3RlclZhbGlkYXRpb247CisKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgYm9vbCBVc2VTdHJpY3RlclZhbGlkYXRpb24KKyAgICAgICAgeworICAgICAgICAgICAgZ2V0CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKF91c2VTdHJpY3RlclZhbGlkYXRpb24gPT0gbnVsbCkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIG9iamVjdCBzZXR0aW5nID0gQ29uZmlndXJhdGlvbk1hbmFnZXIuQXBwU2V0dGluZ3NbIlN0cmljdGVyVmFsaWRhdGlvbkVuYWJsZWQiXTsKKyAgICAgICAgICAgICAgICAgICAgX3VzZVN0cmljdGVyVmFsaWRhdGlvbiA9IHNldHRpbmcgIT0gbnVsbCAmJiBDb252ZXJ0LlRvQm9vbGVhbihzZXR0aW5nLlRvU3RyaW5nKCksIEN1bHR1cmVJbmZvLkludmFyaWFudEN1bHR1cmUpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHJldHVybiBfdXNlU3RyaWN0ZXJWYWxpZGF0aW9uLlZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9TeW1ib2xMaXN0LmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvTWliL1N5bWJvbExpc3QuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWIyMjE4ZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9TeW1ib2xMaXN0LmNzCkBAIC0wLDAgKzEsMTQ2IEBACivvu791c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKK3VzaW5nIFN5c3RlbS5MaW5xOwordXNpbmcgU3lzdGVtLlRleHQ7CisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliCit7CisgICAgcHVibGljIGNsYXNzIFN5bWJvbExpc3QgOiBMaXN0PFN5bWJvbD4KKyAgICB7CisgICAgICAgIHB1YmxpYyBjbGFzcyBTeW1ib2xFbnVtZXJhdG9yIDogSVN5bWJvbEVudW1lcmF0b3IKKyAgICAgICAgeworICAgICAgICAgICAgcHJpdmF0ZSBTeW1ib2xMaXN0IF9saXN0ICA9IG51bGw7CisgICAgICAgICAgICBwcml2YXRlIGludCAgICAgICAgX2luZGV4ID0gLTE7CisKKyAgICAgICAgICAgIGludGVybmFsIFN5bWJvbEVudW1lcmF0b3IoU3ltYm9sTGlzdCBsaXN0KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChsaXN0ID09IG51bGwpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXhjZXB0aW9uKCJsZXhlciIpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIF9saXN0ID0gbGlzdDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgI3JlZ2lvbiBJU3ltYm9sRW51bWVyYXRvciBNZW1iZXIKKworICAgICAgICAgICAgcHVibGljIGJvb2wgUHV0QmFjayhTeW1ib2wgaXRlbSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoKF9pbmRleCA8IDApIHx8IChfaW5kZXggPj0gX2xpc3QuQ291bnQpIHx8IChpdGVtICE9IF9saXN0W19pbmRleF0pKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50RXhjZXB0aW9uKEAid3JvbmcgbGFzdCBzeW1ib2wiLCAibGFzdCIpOworICAgICAgICAgICAgICAgICAgICAvL3JldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBfaW5kZXgtLTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgI2VuZHJlZ2lvbgorCisgICAgICAgICAgICAjcmVnaW9uIElFbnVtZXJhdG9yPFN5bWJvbD4gTWVtYmVyCisKKyAgICAgICAgICAgIHB1YmxpYyBTeW1ib2wgQ3VycmVudAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGdldAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKChfaW5kZXggPj0gMCkgJiYgKF9pbmRleCA8PSBfbGlzdC5Db3VudCkpCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfbGlzdFtfaW5kZXhdOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAjZW5kcmVnaW9uCisKKyAgICAgICAgICAgICNyZWdpb24gSURpc3Bvc2FibGUgTWVtYmVyCisKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIERpc3Bvc2UoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAjZW5kcmVnaW9uCisKKyAgICAgICAgICAgICNyZWdpb24gSUVudW1lcmF0b3IgTWVtYmVyCisKKyAgICAgICAgICAgIG9iamVjdCBTeXN0ZW0uQ29sbGVjdGlvbnMuSUVudW1lcmF0b3IuQ3VycmVudAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGdldCB7IHJldHVybiB0aGlzLkN1cnJlbnQ7IH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcHVibGljIGJvb2wgTW92ZU5leHQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF9pbmRleCsrOworICAgICAgICAgICAgICAgIHJldHVybiAoX2luZGV4ID49IDApICYmIChfaW5kZXggPCBfbGlzdC5Db3VudCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1YmxpYyB2b2lkIFJlc2V0KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBfaW5kZXggPSAtMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgI2VuZHJlZ2lvbgorICAgICAgICB9CisKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIDxzZWUgY3JlZj0iU3ltYm9sTGlzdCIvPiBjbGFzcy4KKyAgICAgICAgLy8vIDwvc3VtbWFyeT4KKyAgICAgICAgcHVibGljIFN5bWJvbExpc3QoKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSVN5bWJvbEVudW1lcmF0b3IgR2V0U3ltYm9sRW51bWVyYXRvcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgU3ltYm9sRW51bWVyYXRvcih0aGlzKTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBzdHJpbmcgSm9pbihzdHJpbmcgc2VwYXJhdG9yKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoc2VwYXJhdG9yID09IG51bGwpCisgICAgICAgICAgICAgICAgc2VwYXJhdG9yID0gIiI7CisKKyAgICAgICAgICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0ID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKworICAgICAgICAgICAgZm9yZWFjaCAoU3ltYm9sIHMgaW4gdGhpcykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXN1bHQuQXBwZW5kKHMpOworICAgICAgICAgICAgICAgIHJlc3VsdC5BcHBlbmQoc2VwYXJhdG9yKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHJlc3VsdC5MZW5ndGggPiAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJlc3VsdC5MZW5ndGggLT0gc2VwYXJhdG9yLkxlbmd0aDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5Ub1N0cmluZygpOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBTeW1ib2xFbnVtZXJhdG9yRXh0ZW5zaW9uCisgICAgeworICAgICAgICBwdWJsaWMgc3RhdGljIFN5bWJvbCBOZXh0U3ltYm9sKHRoaXMgSUVudW1lcmF0b3I8U3ltYm9sPiBlbnVtZXJhdG9yKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoZW51bWVyYXRvci5Nb3ZlTmV4dCgpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBlbnVtZXJhdG9yLkN1cnJlbnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisKKyAgICAgICAgcHVibGljIHN0YXRpYyBTeW1ib2wgTmV4dE5vbkVPTFN5bWJvbCh0aGlzIElFbnVtZXJhdG9yPFN5bWJvbD4gZW51bWVyYXRvcikKKyAgICAgICAgeworICAgICAgICAgICAgd2hpbGUgKGVudW1lcmF0b3IuTW92ZU5leHQoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoZW51bWVyYXRvci5DdXJyZW50ICE9IFN5bWJvbC5FT0wpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW51bWVyYXRvci5DdXJyZW50OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvVmFsdWVNYXAuY3MgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvVmFsdWVNYXAuY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg4NDIzNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9WYWx1ZU1hcC5jcwpAQCAtMCwwICsxLDEwMyBAQAor77u/dXNpbmcgU3lzdGVtOwordXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7CisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliCit7CisJcHVibGljIGNsYXNzIFZhbHVlTWFwIDogRGljdGlvbmFyeTxJbnQ2NCwgc3RyaW5nPgorCXsKKwkJcHVibGljIFZhbHVlTWFwKCkKKwkJeworCQl9CisKKwkJLy8vIDxzdW1tYXJ5PgorCQkvLy8gUmV0dXJucyB0aGUgdmFsdWVzIG9mIHRoZSBtYXAgYXMgY29udGludW91cyByYW5nZS4gQXQgYmVzdCBhcyBvbmUgcmFuZ2UuCisJCS8vLyA8L3N1bW1hcnk+CisJCS8vLyA8cmV0dXJucz48L3JldHVybnM+CisJCXB1YmxpYyBWYWx1ZVJhbmdlcyBHZXRDb250aW5vdXNSYW5nZXMoKQorCQl7CisJCQlWYWx1ZVJhbmdlcyByZXN1bHQgPSBuZXcgVmFsdWVSYW5nZXMoKTsKKworCQkJaWYgKHRoaXMuQ291bnQgPiAwKQorCQkJeworCQkJCUxpc3Q8SW50NjQ+IHZhbHVlcyA9IG5ldyBMaXN0PGxvbmc+KHRoaXMuS2V5cyk7CisJCQkJdmFsdWVzLlNvcnQoKTsKKworCQkJCUludDY0IGxhc3QgICA9IHZhbHVlc1swXTsKKwkJCQlJbnQ2NCBvZmZzZXQgPSB2YWx1ZXNbMF07CisJCQkJZm9yIChpbnQgaT0xOyBpPHZhbHVlcy5Db3VudDsgaSsrKQorCQkJCXsKKwkJCQkJaWYgKHZhbHVlc1tpXSAhPSBsYXN0ICsgMSkKKwkJCQkJeworCQkJCQkJaWYgKGxhc3QgPT0gb2Zmc2V0KQorCQkJCQkJeworCQkJCQkJCXJlc3VsdC5BZGQobmV3IFZhbHVlUmFuZ2Uob2Zmc2V0LCBudWxsKSk7CisJCQkJCQl9CisJCQkJCQllbHNlCisJCQkJCQl7CisJCQkJCQkJcmVzdWx0LkFkZChuZXcgVmFsdWVSYW5nZShvZmZzZXQsIGxhc3QpKTsKKwkJCQkJCX0KKworCQkJCQkJb2Zmc2V0ID0gdmFsdWVzW2ldOworCQkJCQl9CisKKwkJCQkJbGFzdCA9IHZhbHVlc1tpXTsKKwkJCQl9CisKKwkJCQlpZiAobGFzdCA9PSBvZmZzZXQpCisJCQkJeworCQkJCQlyZXN1bHQuQWRkKG5ldyBWYWx1ZVJhbmdlKG9mZnNldCwgbnVsbCkpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlyZXN1bHQuQWRkKG5ldyBWYWx1ZVJhbmdlKG9mZnNldCwgbGFzdCkpOworCQkJCX0KKwkJCX0KKworCQkJcmV0dXJuIHJlc3VsdDsKKwkJfQorCisJCS8vLyA8c3VtbWFyeT4KKwkJLy8vIEdldHMgdGhlIGhpZ2hlc3QgdmFsdWUgY29udGFpbmVkIGluIHRoaXMgdmFsdWUgbWFwLgorCQkvLy8gPC9zdW1tYXJ5PgorCQkvLy8gPHJldHVybnM+PC9yZXR1cm5zPgorCQlwdWJsaWMgSW50NjQgR2V0SGlnaGVzdFZhbHVlKCkKKwkJeworCQkJSW50NjQgcmVzdWx0ID0gMDsKKworCQkJZm9yZWFjaCAoSW50NjQgdmFsdWUgaW4gdGhpcy5LZXlzKQorCQkJeworCQkJCWlmICh2YWx1ZSA+IHJlc3VsdCkKKwkJCQl7CisJCQkJCXJlc3VsdCA9IHZhbHVlOworCQkJCX0KKwkJCX0KKworCQkJcmV0dXJuIHJlc3VsdDsKKwkJfQorCisJCS8vLyA8c3VtbWFyeT4KKwkJLy8vIEludGVycHJldHMgdGhlIHNpbmdsZSB2YWx1ZXMgYXMgYml0IHBvc2l0aW9ucyBhbmQgY3JlYXRlcyBhIG1hc2sgb2YgaXQuCisJCS8vLyA8L3N1bW1hcnk+CisJCS8vLyA8cmV0dXJucz48L3JldHVybnM+CisJCXB1YmxpYyBVSW50MzIgR2V0Qml0TWFzaygpCisJCXsKKwkJCVVJbnQzMiByZXN1bHQgPSAwOworCisJCQlmb3JlYWNoIChJbnQ2NCBrZXkgaW4gdGhpcy5LZXlzKQorCQkJeworCQkJCWlmIChrZXkgPCAwKQorCQkJCXsKKwkJCQkJdGhyb3cgbmV3IE5vdFN1cHBvcnRlZEV4Y2VwdGlvbigiTmVnYXRpdmUgbnVtYmVycyBhcmUgbm90IGFsbG93ZWQgZm9yIEJpdHMhIik7CisJCQkJfQorCQkJCWlmIChrZXkgPiAzMSkKKwkJCQl7CisJCQkJCXRocm93IG5ldyBOb3RTdXBwb3J0ZWRFeGNlcHRpb24oIkJpdHMgd2l0aCBtb3JlIHRoYW4gMzIgYml0cyBhcmUgbm90IHN1cHBvcnRlZCEiKTsKKwkJCQl9CisKKwkJCQlyZXN1bHQgfD0gKFVJbnQzMikoMSA8PCAoaW50KWtleSk7CisJCQl9CisKKwkJCXJldHVybiByZXN1bHQ7CisJCX0KKwl9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvVmFsdWVSYW5nZS5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL01pYi9WYWx1ZVJhbmdlLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZjViY2IKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9NaWIvVmFsdWVSYW5nZS5jcwpAQCAtMCwwICsxLDc2IEBACivvu791c2luZyBTeXN0ZW07Cit1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKKworbmFtZXNwYWNlIExleHRtLlNoYXJwU25tcExpYi5NaWIKK3sKKyAgICBwdWJsaWMgY2xhc3MgVmFsdWVSYW5nZXM6IExpc3Q8VmFsdWVSYW5nZT4KKyAgICB7CisgICAgICAgIHB1YmxpYyBib29sIElzU2l6ZURlY2xhcmF0aW9uIHsgZ2V0OyBpbnRlcm5hbCBzZXQ7IH0KKworICAgICAgICBwdWJsaWMgVmFsdWVSYW5nZXMoYm9vbCBpc1NpemVEZWNsID0gZmFsc2UpCisgICAgICAgIHsKKyAgICAgICAgICAgIElzU2l6ZURlY2xhcmF0aW9uID0gaXNTaXplRGVjbDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sIENvbnRhaW5zKEludDY0IHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBmb3JlYWNoIChWYWx1ZVJhbmdlIHJhbmdlIGluIHRoaXMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWYgKHJhbmdlLkNvbnRhaW5zKHZhbHVlKSkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAgcHVibGljIGNsYXNzIFZhbHVlUmFuZ2UKKyAgICB7CisgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgSW50NjQgX3N0YXJ0OworICAgICAgICBwcml2YXRlIHJlYWRvbmx5IEludDY0PyBfZW5kOworCisgICAgICAgIHB1YmxpYyBWYWx1ZVJhbmdlKEludDY0IGZpcnN0LCBJbnQ2ND8gc2Vjb25kKQorICAgICAgICB7CisgICAgICAgICAgICBfc3RhcnQgPSBmaXJzdDsKKyAgICAgICAgICAgIF9lbmQgICA9IHNlY29uZDsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBJbnQ2NCBTdGFydAorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX3N0YXJ0OyB9CisgICAgICAgIH0KKworICAgICAgICBwdWJsaWMgSW50NjQ/IEVuZAorICAgICAgICB7CisgICAgICAgICAgICBnZXQgeyByZXR1cm4gX2VuZDsgfQorICAgICAgICB9CisKKyAgICAgICAgcHVibGljIGJvb2wgSW50ZXJzZWN0c1dpdGgoVmFsdWVSYW5nZSBvdGhlcikKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHRoaXMuX2VuZCA9PSBudWxsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiBvdGhlci5Db250YWlucyh0aGlzLl9zdGFydCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChvdGhlci5fZW5kID09IG51bGwpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQ29udGFpbnMob3RoZXIuX3N0YXJ0KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuICh0aGlzLl9zdGFydCA8PSBvdGhlci5FbmQpICYmICh0aGlzLl9lbmQgPj0gb3RoZXIuX3N0YXJ0KTsKKyAgICAgICAgfQorCisgICAgICAgIHB1YmxpYyBib29sIENvbnRhaW5zKEludDY0IHZhbHVlKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoX2VuZCA9PSBudWxsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBfc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChfc3RhcnQgPD0gdmFsdWUpICYmICh2YWx1ZSA8PSBfZW5kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvUHJvcGVydGllcy9Bc3NlbWJseUluZm8uY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk2MDgwZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL1Byb3BlcnRpZXMvQXNzZW1ibHlJbmZvLmNzCkBAIC0wLDAgKzEsNjEgQEAKKy8vIDxzdW1tYXJ5PiNTTk1QIExpYnJhcnkuIEFuIG9wZW4gc291cmNlIFNOTVAgaW1wbGVtZW50YXRpb24gZm9yIC5ORVQuPC9zdW1tYXJ5PgorLy8gPGNvcHlyaWdodCBjb21wYW55PSJMZXggWS4gTGkiIGZpbGU9IkFzc2VtYmx5SW5mby5jcyI+Q29weXJpZ2h0IChDKSAyMDA4ICBMZXggWS4gTGk8L2NvcHlyaWdodD4KKy8vIAorLy8gVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorLy8gbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworLy8gTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisvLyB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy8vIAorLy8gVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisvLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKy8vIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisvLyAKKy8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKy8vIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKy8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKKworI3JlZ2lvbiBVc2luZyBkaXJlY3RpdmVzCisKK3VzaW5nIFN5c3RlbTsKK3VzaW5nIFN5c3RlbS5SZWZsZWN0aW9uOwordXNpbmcgU3lzdGVtLlJlc291cmNlczsKK3VzaW5nIFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXM7Cit1c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7CisKKyNlbmRyZWdpb24KKworLy8gR2VuZXJhbCBJbmZvcm1hdGlvbiBhYm91dCBhbiBhc3NlbWJseSBpcyBjb250cm9sbGVkIHRocm91Z2ggdGhlIGZvbGxvd2luZworLy8gc2V0IG9mIGF0dHJpYnV0ZXMuIENoYW5nZSB0aGVzZSBhdHRyaWJ1dGUgdmFsdWVzIHRvIG1vZGlmeSB0aGUgaW5mb3JtYXRpb24KKy8vIGFzc29jaWF0ZWQgd2l0aCBhbiBhc3NlbWJseS4KK1thc3NlbWJseTogQXNzZW1ibHlUaXRsZSgiU2hhcnBTbm1wTGliIildCitbYXNzZW1ibHk6IEFzc2VtYmx5RGVzY3JpcHRpb24oIiNTTk1QIExpYnJhcnkgZm9yIC5ORVQiKV0KK1thc3NlbWJseTogQXNzZW1ibHlDb25maWd1cmF0aW9uKCJMZXNzZXIgR1BMIDIuMSsiKV0KK1thc3NlbWJseTogQXNzZW1ibHlDb21wYW55KCJMZVh0dWRpbyIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseVByb2R1Y3QoIiNTTk1QTGliIildCitbYXNzZW1ibHk6IEFzc2VtYmx5Q29weXJpZ2h0KCIoQykgMjAwOC0yMDEwIE1hbGNvbG0gQ3Jvd2UsIExleCBMaSwgU3RldmUgU2FudGFjcm9jZSwgYW5kIG90aGVyIGNvbnRyaWJ1dG9ycy4iKV0KK1thc3NlbWJseTogQXNzZW1ibHlUcmFkZW1hcmsoIiIpXQorW2Fzc2VtYmx5OiBBc3NlbWJseUN1bHR1cmUoIiIpXQorCisvLyBUaGlzIHNldHMgdGhlIGRlZmF1bHQgQ09NIHZpc2liaWxpdHkgb2YgdHlwZXMgaW4gdGhlIGFzc2VtYmx5IHRvIGludmlzaWJsZS4KKy8vIElmIHlvdSBuZWVkIHRvIGV4cG9zZSBpbmRleCB0eXBlIHRvIENPTSwgdXNlIFtDb21WaXNpYmxlKHRydWUpXSBvbiB0aGF0IHR5cGUuCitbYXNzZW1ibHk6IENvbVZpc2libGUoZmFsc2UpXQorCisvLyBUaGUgYXNzZW1ibHkgdmVyc2lvbiBoYXMgZm9sbG93aW5nIGZvcm1hdCA6CisvLworLy8gTWFqb3IuTWlub3IuQnVpbGQuUmV2aXNpb24KKy8vCisvLyBZb3UgY2FuIHNwZWNpZnkgYWxsIHRoZSB2YWx1ZXMgb3IgeW91IGNhbiB1c2UgdGhlIGRlZmF1bHQgdGhlIFJldmlzaW9uIGFuZAorLy8gQnVpbGQgTnVtYmVycyBieSB1c2luZyB0aGUgJyonIGFzIHNob3duIGJlbG93OgorW2Fzc2VtYmx5OiBBc3NlbWJseVZlcnNpb24oIjcuMC4wMTEyMDcuMzEiKV0KKyNpZiAoIUNGKQorW2Fzc2VtYmx5OiBBc3NlbWJseUZpbGVWZXJzaW9uKCI3LjAuMDExMjA3LjMxIildCisjZW5kaWYKK1thc3NlbWJseTogTmV1dHJhbFJlc291cmNlc0xhbmd1YWdlKCJlbi1VUyIpXQorW2Fzc2VtYmx5OiBTeXN0ZW0uRGlhZ25vc3RpY3MuQ29kZUFuYWx5c2lzLlN1cHByZXNzTWVzc2FnZSgiTWljcm9zb2Z0Lk5hbWluZyIsICJDQTE3MDQ6SWRlbnRpZmllcnNTaG91bGRCZVNwZWxsZWRDb3JyZWN0bHkiLCBNZXNzYWdlSWQgPSAiTGV4dG0iKV0KKworW2Fzc2VtYmx5OiBJbnRlcm5hbHNWaXNpYmxlVG8oIlNoYXJwU25tcExpYi5UZXN0cywgUHVibGljS2V5PTAwMjQwMDAwMDQ4MDAwMDA5NDAwMDAwMDA2MDIwMDAwMDAyNDAwMDA1MjUzNDEzMTAwMDQwMDAwMDEwMDAxMDBmNzAzMDUzMmM1MjUyNCIKKysgIjk5Mzg0MWEwZDA5NDIwMzQwZjM4MTRlMWI2NTQ3Mzg1MWJkY2QxODgxNTUxMGIwMzVhMmFlOWVjZWU2OWM0Y2QyZDllNGQ2ZTZkNWZiZiIKKysgImE1NjRlODZjNGE0Y2RkYzk1OTc2MTlhMzFjMDYwODQ2ZWJiMmU5OTUxMWEwMzIzZmY4MmIxZWJkOTVkNmE0OTEyNTAyOTQ1ZjBlNzY5ZiIKKysgIjE5MGE2OWE0MzlkYmZiOTY5ZWJhZDcyYTZmN2UyZTA0NzkwN2RhNGE3YjljMDhjNmU5OGQ1ZjFiZThiOGNhZmFmM2ViOTc4OTE0MDU5YSIKKysgIjI0NWQ0YmMxIildCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9Qcm9wZXJ0aWVzL1Jlc291cmNlcy5EZXNpZ25lci5jcyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL1Byb3BlcnRpZXMvUmVzb3VyY2VzLkRlc2lnbmVyLmNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4YmM2YmIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9Qcm9wZXJ0aWVzL1Jlc291cmNlcy5EZXNpZ25lci5jcwpAQCAtMCwwICsxLDYzIEBACivvu78vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLy8gPGF1dG8tZ2VuZXJhdGVkPgorLy8gICAgIERpZXNlciBDb2RlIHd1cmRlIHZvbiBlaW5lbSBUb29sIGdlbmVyaWVydC4KKy8vICAgICBMYXVmemVpdHZlcnNpb246NC4wLjMwMzE5LjIyNQorLy8KKy8vICAgICDDhG5kZXJ1bmdlbiBhbiBkaWVzZXIgRGF0ZWkga8O2bm5lbiBmYWxzY2hlcyBWZXJoYWx0ZW4gdmVydXJzYWNoZW4gdW5kIGdlaGVuIHZlcmxvcmVuLCB3ZW5uCisvLyAgICAgZGVyIENvZGUgZXJuZXV0IGdlbmVyaWVydCB3aXJkLgorLy8gPC9hdXRvLWdlbmVyYXRlZD4KKy8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK25hbWVzcGFjZSBMZXh0bS5TaGFycFNubXBMaWIuTWliIHsKKyAgICB1c2luZyBTeXN0ZW07CisgICAgCisgICAgCisgICAgLy8vIDxzdW1tYXJ5PgorICAgIC8vLyAgIEVpbmUgc3RhcmsgdHlwaXNpZXJ0ZSBSZXNzb3VyY2Vua2xhc3NlIHp1bSBTdWNoZW4gdm9uIGxva2FsaXNpZXJ0ZW4gWmVpY2hlbmZvbGdlbiB1c3cuCisgICAgLy8vIDwvc3VtbWFyeT4KKyAgICAvLyBEaWVzZSBLbGFzc2Ugd3VyZGUgdm9uIGRlciBTdHJvbmdseVR5cGVkUmVzb3VyY2VCdWlsZGVyIGF1dG9tYXRpc2NoIGdlbmVyaWVydAorICAgIC8vIC1LbGFzc2Ugw7xiZXIgZWluIFRvb2wgd2llIFJlc0dlbiBvZGVyIFZpc3VhbCBTdHVkaW8gYXV0b21hdGlzY2ggZ2VuZXJpZXJ0LgorICAgIC8vIFVtIGVpbmVuIE1lbWJlciBoaW56dXp1ZsO8Z2VuIG9kZXIgenUgZW50ZmVybmVuLCBiZWFyYmVpdGVuIFNpZSBkaWUgLlJlc1gtRGF0ZWkgdW5kIGbDvGhyZW4gZGFubiBSZXNHZW4KKyAgICAvLyBtaXQgZGVyIC9zdHItT3B0aW9uIGVybmV1dCBhdXMsIG9kZXIgU2llIGVyc3RlbGxlbiBJaHIgVlMtUHJvamVrdCBuZXUuCisgICAgW2dsb2JhbDo6U3lzdGVtLkNvZGVEb20uQ29tcGlsZXIuR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZSgiU3lzdGVtLlJlc291cmNlcy5Ub29scy5TdHJvbmdseVR5cGVkUmVzb3VyY2VCdWlsZGVyIiwgIjQuMC4wLjAiKV0KKyAgICBbZ2xvYmFsOjpTeXN0ZW0uRGlhZ25vc3RpY3MuRGVidWdnZXJOb25Vc2VyQ29kZUF0dHJpYnV0ZSgpXQorICAgIFtnbG9iYWw6OlN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMuQ29tcGlsZXJHZW5lcmF0ZWRBdHRyaWJ1dGUoKV0KKyAgICBpbnRlcm5hbCBjbGFzcyBSZXNvdXJjZXMgeworICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSBzdGF0aWMgZ2xvYmFsOjpTeXN0ZW0uUmVzb3VyY2VzLlJlc291cmNlTWFuYWdlciByZXNvdXJjZU1hbjsKKyAgICAgICAgCisgICAgICAgIHByaXZhdGUgc3RhdGljIGdsb2JhbDo6U3lzdGVtLkdsb2JhbGl6YXRpb24uQ3VsdHVyZUluZm8gcmVzb3VyY2VDdWx0dXJlOworICAgICAgICAKKyAgICAgICAgW2dsb2JhbDo6U3lzdGVtLkRpYWdub3N0aWNzLkNvZGVBbmFseXNpcy5TdXBwcmVzc01lc3NhZ2VBdHRyaWJ1dGUoIk1pY3Jvc29mdC5QZXJmb3JtYW5jZSIsICJDQTE4MTE6QXZvaWRVbmNhbGxlZFByaXZhdGVDb2RlIildCisgICAgICAgIGludGVybmFsIFJlc291cmNlcygpIHsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLy8vIDxzdW1tYXJ5PgorICAgICAgICAvLy8gICBHaWJ0IGRpZSB6d2lzY2hlbmdlc3BlaWNoZXJ0ZSBSZXNvdXJjZU1hbmFnZXItSW5zdGFueiB6dXLDvGNrLCBkaWUgdm9uIGRpZXNlciBLbGFzc2UgdmVyd2VuZGV0IHdpcmQuCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIFtnbG9iYWw6OlN5c3RlbS5Db21wb25lbnRNb2RlbC5FZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUoZ2xvYmFsOjpTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRWRpdG9yQnJvd3NhYmxlU3RhdGUuQWR2YW5jZWQpXQorICAgICAgICBpbnRlcm5hbCBzdGF0aWMgZ2xvYmFsOjpTeXN0ZW0uUmVzb3VyY2VzLlJlc291cmNlTWFuYWdlciBSZXNvdXJjZU1hbmFnZXIgeworICAgICAgICAgICAgZ2V0IHsKKyAgICAgICAgICAgICAgICBpZiAob2JqZWN0LlJlZmVyZW5jZUVxdWFscyhyZXNvdXJjZU1hbiwgbnVsbCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ2xvYmFsOjpTeXN0ZW0uUmVzb3VyY2VzLlJlc291cmNlTWFuYWdlciB0ZW1wID0gbmV3IGdsb2JhbDo6U3lzdGVtLlJlc291cmNlcy5SZXNvdXJjZU1hbmFnZXIoIkxleHRtLlNoYXJwU25tcExpYi5Qcm9wZXJ0aWVzLlJlc291cmNlcyIsIHR5cGVvZihSZXNvdXJjZXMpLkFzc2VtYmx5KTsKKyAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VNYW4gPSB0ZW1wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VNYW47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vLyA8c3VtbWFyeT4KKyAgICAgICAgLy8vICAgw5xiZXJzY2hyZWlidCBkaWUgQ3VycmVudFVJQ3VsdHVyZS1FaWdlbnNjaGFmdCBkZXMgYWt0dWVsbGVuIFRocmVhZHMgZsO8ciBhbGxlCisgICAgICAgIC8vLyAgIFJlc3NvdXJjZW56dW9yZG51bmdlbiwgZGllIGRpZXNlIHN0YXJrIHR5cGlzaWVydGUgUmVzc291cmNlbmtsYXNzZSB2ZXJ3ZW5kZW4uCisgICAgICAgIC8vLyA8L3N1bW1hcnk+CisgICAgICAgIFtnbG9iYWw6OlN5c3RlbS5Db21wb25lbnRNb2RlbC5FZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUoZ2xvYmFsOjpTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRWRpdG9yQnJvd3NhYmxlU3RhdGUuQWR2YW5jZWQpXQorICAgICAgICBpbnRlcm5hbCBzdGF0aWMgZ2xvYmFsOjpTeXN0ZW0uR2xvYmFsaXphdGlvbi5DdWx0dXJlSW5mbyBDdWx0dXJlIHsKKyAgICAgICAgICAgIGdldCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc291cmNlQ3VsdHVyZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNldCB7CisgICAgICAgICAgICAgICAgcmVzb3VyY2VDdWx0dXJlID0gdmFsdWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9Qcm9wZXJ0aWVzL1Jlc291cmNlcy5yZXN4IGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvUHJvcGVydGllcy9SZXNvdXJjZXMucmVzeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDgwYTdkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvUHJvcGVydGllcy9SZXNvdXJjZXMucmVzeApAQCAtMCwwICsxLDEyMCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxyb290PgorICA8IS0tIAorICAgIE1pY3Jvc29mdCBSZXNYIFNjaGVtYSAKKyAgICAKKyAgICBWZXJzaW9uIDIuMAorICAgIAorICAgIFRoZSBwcmltYXJ5IGdvYWxzIG9mIHRoaXMgZm9ybWF0IGlzIHRvIGFsbG93IGEgc2ltcGxlIFhNTCBmb3JtYXQgCisgICAgdGhhdCBpcyBtb3N0bHkgaHVtYW4gcmVhZGFibGUuIFRoZSBnZW5lcmF0aW9uIGFuZCBwYXJzaW5nIG9mIHRoZSAKKyAgICB2YXJpb3VzIGRhdGEgdHlwZXMgYXJlIGRvbmUgdGhyb3VnaCB0aGUgVHlwZUNvbnZlcnRlciBjbGFzc2VzIAorICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YSB0eXBlcy4KKyAgICAKKyAgICBFeGFtcGxlOgorICAgIAorICAgIC4uLiBhZG8ubmV0L1hNTCBoZWFkZXJzICYgc2NoZW1hIC4uLgorICAgIDxyZXNoZWFkZXIgbmFtZT0icmVzbWltZXR5cGUiPnRleHQvbWljcm9zb2Z0LXJlc3g8L3Jlc2hlYWRlcj4KKyAgICA8cmVzaGVhZGVyIG5hbWU9InZlcnNpb24iPjIuMDwvcmVzaGVhZGVyPgorICAgIDxyZXNoZWFkZXIgbmFtZT0icmVhZGVyIj5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVJlYWRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIC4uLjwvcmVzaGVhZGVyPgorICAgIDxyZXNoZWFkZXIgbmFtZT0id3JpdGVyIj5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVdyaXRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIC4uLjwvcmVzaGVhZGVyPgorICAgIDxkYXRhIG5hbWU9Ik5hbWUxIj48dmFsdWU+dGhpcyBpcyBteSBsb25nIHN0cmluZzwvdmFsdWU+PGNvbW1lbnQ+dGhpcyBpcyBhIGNvbW1lbnQ8L2NvbW1lbnQ+PC9kYXRhPgorICAgIDxkYXRhIG5hbWU9IkNvbG9yMSIgdHlwZT0iU3lzdGVtLkRyYXdpbmcuQ29sb3IsIFN5c3RlbS5EcmF3aW5nIj5CbHVlPC9kYXRhPgorICAgIDxkYXRhIG5hbWU9IkJpdG1hcDEiIG1pbWV0eXBlPSJhcHBsaWNhdGlvbi94LW1pY3Jvc29mdC5uZXQub2JqZWN0LmJpbmFyeS5iYXNlNjQiPgorICAgICAgICA8dmFsdWU+W2Jhc2U2NCBtaW1lIGVuY29kZWQgc2VyaWFsaXplZCAuTkVUIEZyYW1ld29yayBvYmplY3RdPC92YWx1ZT4KKyAgICA8L2RhdGE+CisgICAgPGRhdGEgbmFtZT0iSWNvbjEiIHR5cGU9IlN5c3RlbS5EcmF3aW5nLkljb24sIFN5c3RlbS5EcmF3aW5nIiBtaW1ldHlwZT0iYXBwbGljYXRpb24veC1taWNyb3NvZnQubmV0Lm9iamVjdC5ieXRlYXJyYXkuYmFzZTY0Ij4KKyAgICAgICAgPHZhbHVlPltiYXNlNjQgbWltZSBlbmNvZGVkIHN0cmluZyByZXByZXNlbnRpbmcgYSBieXRlIGFycmF5IGZvcm0gb2YgdGhlIC5ORVQgRnJhbWV3b3JrIG9iamVjdF08L3ZhbHVlPgorICAgICAgICA8Y29tbWVudD5UaGlzIGlzIGEgY29tbWVudDwvY29tbWVudD4KKyAgICA8L2RhdGE+CisgICAgICAgICAgICAgICAgCisgICAgVGhlcmUgYXJlIGFueSBudW1iZXIgb2YgInJlc2hlYWRlciIgcm93cyB0aGF0IGNvbnRhaW4gc2ltcGxlIAorICAgIG5hbWUvdmFsdWUgcGFpcnMuCisgICAgCisgICAgRWFjaCBkYXRhIHJvdyBjb250YWlucyBhIG5hbWUsIGFuZCB2YWx1ZS4gVGhlIHJvdyBhbHNvIGNvbnRhaW5zIGEgCisgICAgdHlwZSBvciBtaW1ldHlwZS4gVHlwZSBjb3JyZXNwb25kcyB0byBhIC5ORVQgY2xhc3MgdGhhdCBzdXBwb3J0IAorICAgIHRleHQvdmFsdWUgY29udmVyc2lvbiB0aHJvdWdoIHRoZSBUeXBlQ29udmVydGVyIGFyY2hpdGVjdHVyZS4gCisgICAgQ2xhc3NlcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhpcyBhcmUgc2VyaWFsaXplZCBhbmQgc3RvcmVkIHdpdGggdGhlIAorICAgIG1pbWV0eXBlIHNldC4KKyAgICAKKyAgICBUaGUgbWltZXR5cGUgaXMgdXNlZCBmb3Igc2VyaWFsaXplZCBvYmplY3RzLCBhbmQgdGVsbHMgdGhlIAorICAgIFJlc1hSZXNvdXJjZVJlYWRlciBob3cgdG8gZGVwZXJzaXN0IHRoZSBvYmplY3QuIFRoaXMgaXMgY3VycmVudGx5IG5vdCAKKyAgICBleHRlbnNpYmxlLiBGb3IgYSBnaXZlbiBtaW1ldHlwZSB0aGUgdmFsdWUgbXVzdCBiZSBzZXQgYWNjb3JkaW5nbHk6CisgICAgCisgICAgTm90ZSAtIGFwcGxpY2F0aW9uL3gtbWljcm9zb2Z0Lm5ldC5vYmplY3QuYmluYXJ5LmJhc2U2NCBpcyB0aGUgZm9ybWF0IAorICAgIHRoYXQgdGhlIFJlc1hSZXNvdXJjZVdyaXRlciB3aWxsIGdlbmVyYXRlLCBob3dldmVyIHRoZSByZWFkZXIgY2FuIAorICAgIHJlYWQgYW55IG9mIHRoZSBmb3JtYXRzIGxpc3RlZCBiZWxvdy4KKyAgICAKKyAgICBtaW1ldHlwZTogYXBwbGljYXRpb24veC1taWNyb3NvZnQubmV0Lm9iamVjdC5iaW5hcnkuYmFzZTY0CisgICAgdmFsdWUgICA6IFRoZSBvYmplY3QgbXVzdCBiZSBzZXJpYWxpemVkIHdpdGggCisgICAgICAgICAgICA6IFN5c3RlbS5SdW50aW1lLlNlcmlhbGl6YXRpb24uRm9ybWF0dGVycy5CaW5hcnkuQmluYXJ5Rm9ybWF0dGVyCisgICAgICAgICAgICA6IGFuZCB0aGVuIGVuY29kZWQgd2l0aCBiYXNlNjQgZW5jb2RpbmcuCisgICAgCisgICAgbWltZXR5cGU6IGFwcGxpY2F0aW9uL3gtbWljcm9zb2Z0Lm5ldC5vYmplY3Quc29hcC5iYXNlNjQKKyAgICB2YWx1ZSAgIDogVGhlIG9iamVjdCBtdXN0IGJlIHNlcmlhbGl6ZWQgd2l0aCAKKyAgICAgICAgICAgIDogU3lzdGVtLlJ1bnRpbWUuU2VyaWFsaXphdGlvbi5Gb3JtYXR0ZXJzLlNvYXAuU29hcEZvcm1hdHRlcgorICAgICAgICAgICAgOiBhbmQgdGhlbiBlbmNvZGVkIHdpdGggYmFzZTY0IGVuY29kaW5nLgorCisgICAgbWltZXR5cGU6IGFwcGxpY2F0aW9uL3gtbWljcm9zb2Z0Lm5ldC5vYmplY3QuYnl0ZWFycmF5LmJhc2U2NAorICAgIHZhbHVlICAgOiBUaGUgb2JqZWN0IG11c3QgYmUgc2VyaWFsaXplZCBpbnRvIGEgYnl0ZSBhcnJheSAKKyAgICAgICAgICAgIDogdXNpbmcgYSBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuVHlwZUNvbnZlcnRlcgorICAgICAgICAgICAgOiBhbmQgdGhlbiBlbmNvZGVkIHdpdGggYmFzZTY0IGVuY29kaW5nLgorICAgIC0tPgorICA8eHNkOnNjaGVtYSBpZD0icm9vdCIgeG1sbnM9IiIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIgeG1sbnM6bXNkYXRhPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnhtbC1tc2RhdGEiPgorICAgIDx4c2Q6aW1wb3J0IG5hbWVzcGFjZT0iaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIiAvPgorICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJyb290IiBtc2RhdGE6SXNEYXRhU2V0PSJ0cnVlIj4KKyAgICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICAgIDx4c2Q6Y2hvaWNlIG1heE9jY3Vycz0idW5ib3VuZGVkIj4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0ibWV0YWRhdGEiPgorICAgICAgICAgICAgPHhzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICAgICAgPHhzZDpzZXF1ZW5jZT4KKyAgICAgICAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0idmFsdWUiIHR5cGU9InhzZDpzdHJpbmciIG1pbk9jY3Vycz0iMCIgLz4KKyAgICAgICAgICAgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHVzZT0icmVxdWlyZWQiIHR5cGU9InhzZDpzdHJpbmciIC8+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9InR5cGUiIHR5cGU9InhzZDpzdHJpbmciIC8+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9Im1pbWV0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPgorICAgICAgICAgICAgICA8eHNkOmF0dHJpYnV0ZSByZWY9InhtbDpzcGFjZSIgLz4KKyAgICAgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9ImFzc2VtYmx5Ij4KKyAgICAgICAgICAgIDx4c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9ImFsaWFzIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPgorICAgICAgICAgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJuYW1lIiB0eXBlPSJ4c2Q6c3RyaW5nIiAvPgorICAgICAgICAgICAgPC94c2Q6Y29tcGxleFR5cGU+CisgICAgICAgICAgPC94c2Q6ZWxlbWVudD4KKyAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iZGF0YSI+CisgICAgICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4KKyAgICAgICAgICAgICAgICA8eHNkOmVsZW1lbnQgbmFtZT0iY29tbWVudCIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMiIgLz4KKyAgICAgICAgICAgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIHVzZT0icmVxdWlyZWQiIG1zZGF0YTpPcmRpbmFsPSIxIiAvPgorICAgICAgICAgICAgICA8eHNkOmF0dHJpYnV0ZSBuYW1lPSJ0eXBlIiB0eXBlPSJ4c2Q6c3RyaW5nIiBtc2RhdGE6T3JkaW5hbD0iMyIgLz4KKyAgICAgICAgICAgICAgPHhzZDphdHRyaWJ1dGUgbmFtZT0ibWltZXR5cGUiIHR5cGU9InhzZDpzdHJpbmciIG1zZGF0YTpPcmRpbmFsPSI0IiAvPgorICAgICAgICAgICAgICA8eHNkOmF0dHJpYnV0ZSByZWY9InhtbDpzcGFjZSIgLz4KKyAgICAgICAgICAgIDwveHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgIDwveHNkOmVsZW1lbnQ+CisgICAgICAgICAgPHhzZDplbGVtZW50IG5hbWU9InJlc2hlYWRlciI+CisgICAgICAgICAgICA8eHNkOmNvbXBsZXhUeXBlPgorICAgICAgICAgICAgICA8eHNkOnNlcXVlbmNlPgorICAgICAgICAgICAgICAgIDx4c2Q6ZWxlbWVudCBuYW1lPSJ2YWx1ZSIgdHlwZT0ieHNkOnN0cmluZyIgbWluT2NjdXJzPSIwIiBtc2RhdGE6T3JkaW5hbD0iMSIgLz4KKyAgICAgICAgICAgICAgPC94c2Q6c2VxdWVuY2U+CisgICAgICAgICAgICAgIDx4c2Q6YXR0cmlidXRlIG5hbWU9Im5hbWUiIHR5cGU9InhzZDpzdHJpbmciIHVzZT0icmVxdWlyZWQiIC8+CisgICAgICAgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICAgICAgICA8L3hzZDplbGVtZW50PgorICAgICAgICA8L3hzZDpjaG9pY2U+CisgICAgICA8L3hzZDpjb21wbGV4VHlwZT4KKyAgICA8L3hzZDplbGVtZW50PgorICA8L3hzZDpzY2hlbWE+CisgIDxyZXNoZWFkZXIgbmFtZT0icmVzbWltZXR5cGUiPgorICAgIDx2YWx1ZT50ZXh0L21pY3Jvc29mdC1yZXN4PC92YWx1ZT4KKyAgPC9yZXNoZWFkZXI+CisgIDxyZXNoZWFkZXIgbmFtZT0idmVyc2lvbiI+CisgICAgPHZhbHVlPjIuMDwvdmFsdWU+CisgIDwvcmVzaGVhZGVyPgorICA8cmVzaGVhZGVyIG5hbWU9InJlYWRlciI+CisgICAgPHZhbHVlPlN5c3RlbS5SZXNvdXJjZXMuUmVzWFJlc291cmNlUmVhZGVyLCBTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODk8L3ZhbHVlPgorICA8L3Jlc2hlYWRlcj4KKyAgPHJlc2hlYWRlciBuYW1lPSJ3cml0ZXIiPgorICAgIDx2YWx1ZT5TeXN0ZW0uUmVzb3VyY2VzLlJlc1hSZXNvdXJjZVdyaXRlciwgU3lzdGVtLldpbmRvd3MuRm9ybXMsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5PC92YWx1ZT4KKyAgPC9yZXNoZWFkZXI+Cis8L3Jvb3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvU2hhcnBTbm1wTGliLk1pYi5jc3Byb2ogYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9TaGFycFNubXBMaWIuTWliLmNzcHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2Y4NjU3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvU2hhcnBTbm1wTGliLk1pYi5jc3Byb2oKQEAgLTAsMCArMSwxNDAgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPENvbmZpZ3VyYXRpb24gQ29uZGl0aW9uPSIgJyQoQ29uZmlndXJhdGlvbiknID09ICcnICI+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgPFBsYXRmb3JtIENvbmRpdGlvbj0iICckKFBsYXRmb3JtKScgPT0gJycgIj5BbnlDUFU8L1BsYXRmb3JtPgorICAgIDxQcm9kdWN0VmVyc2lvbj44LjAuMzA3MDM8L1Byb2R1Y3RWZXJzaW9uPgorICAgIDxTY2hlbWFWZXJzaW9uPjIuMDwvU2NoZW1hVmVyc2lvbj4KKyAgICA8UHJvamVjdEd1aWQ+e0NCRTIwNDExLTVEQjctNDg3RC04MjVELTc2OTQyNjdCQjZGNX08L1Byb2plY3RHdWlkPgorICAgIDxPdXRwdXRUeXBlPkxpYnJhcnk8L091dHB1dFR5cGU+CisgICAgPEFwcERlc2lnbmVyRm9sZGVyPlByb3BlcnRpZXM8L0FwcERlc2lnbmVyRm9sZGVyPgorICAgIDxSb290TmFtZXNwYWNlPkxleHRtLlNoYXJwU25tcExpYjwvUm9vdE5hbWVzcGFjZT4KKyAgICA8QXNzZW1ibHlOYW1lPlNoYXJwU25tcExpYi5NaWI8L0Fzc2VtYmx5TmFtZT4KKyAgICA8RG9jdW1lbnRhdGlvbkZpbGU+Li5cYmluXFNoYXJwU25tcExpYi5NaWIueG1sPC9Eb2N1bWVudGF0aW9uRmlsZT4KKyAgICA8RmlsZUFsaWdubWVudD41MTI8L0ZpbGVBbGlnbm1lbnQ+CisgICAgPFRhcmdldEZyYW1ld29ya1Byb2ZpbGUgLz4KKyAgICA8U2lnbkFzc2VtYmx5PlRydWU8L1NpZ25Bc3NlbWJseT4KKyAgICA8QXNzZW1ibHlPcmlnaW5hdG9yS2V5RmlsZT5zaGFycHNubXBsaWIuc25rPC9Bc3NlbWJseU9yaWdpbmF0b3JLZXlGaWxlPgorICAgIDxEZWxheVNpZ24+RmFsc2U8L0RlbGF5U2lnbj4KKyAgICA8QXNzZW1ibHlPcmlnaW5hdG9yS2V5TW9kZT5GaWxlPC9Bc3NlbWJseU9yaWdpbmF0b3JLZXlNb2RlPgorICAgIDxTY2NQcm9qZWN0TmFtZT4KKyAgICA8L1NjY1Byb2plY3ROYW1lPgorICAgIDxTY2NMb2NhbFBhdGg+CisgICAgPC9TY2NMb2NhbFBhdGg+CisgICAgPFNjY0F1eFBhdGg+CisgICAgPC9TY2NBdXhQYXRoPgorICAgIDxTY2NQcm92aWRlcj4KKyAgICA8L1NjY1Byb3ZpZGVyPgorICAgIDxSdW5Tb3VyY2VBbmFseXNpcz5GYWxzZTwvUnVuU291cmNlQW5hbHlzaXM+CisgICAgPFRhcmdldEZyYW1ld29ya1ZlcnNpb24+djQuMDwvVGFyZ2V0RnJhbWV3b3JrVmVyc2lvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IiAnJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKScgPT0gJ0RlYnVnfEFueUNQVScgIj4KKyAgICA8RGVidWdTeW1ib2xzPnRydWU8L0RlYnVnU3ltYm9scz4KKyAgICA8RGVidWdUeXBlPmZ1bGw8L0RlYnVnVHlwZT4KKyAgICA8T3B0aW1pemU+ZmFsc2U8L09wdGltaXplPgorICAgIDxPdXRwdXRQYXRoPmJpblxEZWJ1Z1w8L091dHB1dFBhdGg+CisgICAgPERlZmluZUNvbnN0YW50cz5ERUJVRztUUkFDRTwvRGVmaW5lQ29uc3RhbnRzPgorICAgIDxFcnJvclJlcG9ydD5wcm9tcHQ8L0Vycm9yUmVwb3J0PgorICAgIDxXYXJuaW5nTGV2ZWw+NDwvV2FybmluZ0xldmVsPgorICAgIDxEb2N1bWVudGF0aW9uRmlsZT4KKyAgICA8L0RvY3VtZW50YXRpb25GaWxlPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iICckKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJyA9PSAnUmVsZWFzZXxBbnlDUFUnICI+CisgICAgPERlYnVnVHlwZT5wZGJvbmx5PC9EZWJ1Z1R5cGU+CisgICAgPE9wdGltaXplPnRydWU8L09wdGltaXplPgorICAgIDxPdXRwdXRQYXRoPmJpblxSZWxlYXNlXDwvT3V0cHV0UGF0aD4KKyAgICA8RGVmaW5lQ29uc3RhbnRzPlRSQUNFPC9EZWZpbmVDb25zdGFudHM+CisgICAgPEVycm9yUmVwb3J0PnByb21wdDwvRXJyb3JSZXBvcnQ+CisgICAgPFdhcm5pbmdMZXZlbD40PC9XYXJuaW5nTGV2ZWw+CisgICAgPERvY3VtZW50YXRpb25GaWxlPgorICAgIDwvRG9jdW1lbnRhdGlvbkZpbGU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbSIgLz4KKyAgICA8UmVmZXJlbmNlIEluY2x1ZGU9IlN5c3RlbS5Db25maWd1cmF0aW9uIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRGlzcGxheUhpbnQuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXEVsZW1lbnRzXEVudGl0aWVzXEFnZW50Q2FwYWJpbGl0aWVzLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xFbnRpdGllc1xFbnRpdHlCYXNlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xFbnRpdGllc1xJRW50aXR5LmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xFbnRpdGllc1xNb2R1bGVDb21wbGlhbmNlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xFbnRpdGllc1xNb2R1bGVJZGVudGl0eS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcRW50aXRpZXNcTm90aWZpY2F0aW9uR3JvdXAuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXEVsZW1lbnRzXEVudGl0aWVzXE5vdGlmaWNhdGlvblR5cGUuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXEVsZW1lbnRzXEVudGl0aWVzXE9iamVjdEdyb3VwLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xFbnRpdGllc1xPYmplY3RJZGVudGl0eS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcRW50aXRpZXNcT2JqZWN0VHlwZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcRW50aXRpZXNcT2lkVmFsdWVBc3NpZ25tZW50LmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xFeHBvcnRzLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xJRWxlbWVudC5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcSW1wb3J0cy5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcSW1wb3J0c0Zyb20uY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXEVsZW1lbnRzXElEZWNsYXJhdGlvbi5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcVHJhcFR5cGUuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXEVsZW1lbnRzXFR5cGVzXEJhc2VUeXBlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xUeXBlc1xCaXRzVHlwZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcVHlwZXNcQ2hvaWNlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xUeXBlc1xJbnRlZ2VyVHlwZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcVHlwZXNcSXBBZGRyZXNzVHlwZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcVHlwZXNcSVR5cGVBc3NpZ25tZW50LmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xJVHlwZVJlZmVycmVyLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xUeXBlc1xNYWNyby5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcVHlwZXNcT2JqZWN0SWRlbnRpZmllclR5cGUuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXEVsZW1lbnRzXFR5cGVzXE9jdGV0U3RyaW5nVHlwZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcVHlwZXNcT3BhcXVlVHlwZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcVHlwZXNcU2VxdWVuY2UuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXEVsZW1lbnRzXFR5cGVzXFNlcXVlbmNlT2YuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXEVsZW1lbnRzXFR5cGVzXFRleHR1YWxDb252ZW50aW9uLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxFbGVtZW50c1xUeXBlc1xUeXBlQXNzaWdubWVudC5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcRWxlbWVudHNcVHlwZXNcVW5zaWduZWRUeXBlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxJTW9kdWxlLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxJU3ltYm9sRW51bWVyYXRvci5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcTWF4QWNjZXNzLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxNaWJSZXNvbHZlci5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcTWliVHJlZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcTWliVHJlZU5vZGUuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXE1pYlR5cGVzUmVzb2x2ZXIuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXE9iamVjdElkZW50aWZpZXIuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXFN0YXR1cy5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcU3ltYm9sTGlzdC5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcTGV4ZXIuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXE1pYkRvY3VtZW50LmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxNaWJNb2R1bGUuY3MiIC8+CisgICAgPENvbXBpbGUgSW5jbHVkZT0iTWliXE1pYkV4Y2VwdGlvbi5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcU3ltYm9sLmNzIiAvPgorICAgIDxDb21waWxlIEluY2x1ZGU9Ik1pYlxWYWx1ZU1hcC5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJNaWJcVmFsdWVSYW5nZS5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9wZXJ0aWVzXEFzc2VtYmx5SW5mby5jcyIgLz4KKyAgICA8Q29tcGlsZSBJbmNsdWRlPSJQcm9wZXJ0aWVzXFJlc291cmNlcy5EZXNpZ25lci5jcyI+CisgICAgICA8QXV0b0dlbj5UcnVlPC9BdXRvR2VuPgorICAgICAgPERlc2lnblRpbWU+VHJ1ZTwvRGVzaWduVGltZT4KKyAgICAgIDxEZXBlbmRlbnRVcG9uPlJlc291cmNlcy5yZXN4PC9EZXBlbmRlbnRVcG9uPgorICAgIDwvQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPE5vbmUgSW5jbHVkZT0ic2hhcnBzbm1wbGliLnNuayIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPE5vbmUgSW5jbHVkZT0ibGljZW5zZS50eHQiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxFbWJlZGRlZFJlc291cmNlIEluY2x1ZGU9IlByb3BlcnRpZXNcUmVzb3VyY2VzLnJlc3giPgorICAgICAgPEdlbmVyYXRvcj5SZXNYRmlsZUNvZGVHZW5lcmF0b3I8L0dlbmVyYXRvcj4KKyAgICAgIDxMYXN0R2VuT3V0cHV0PlJlc291cmNlcy5EZXNpZ25lci5jczwvTGFzdEdlbk91dHB1dD4KKyAgICAgIDxDdXN0b21Ub29sTmFtZXNwYWNlPkxleHRtLlNoYXJwU25tcExpYi5NaWI8L0N1c3RvbVRvb2xOYW1lc3BhY2U+CisgICAgICA8U3ViVHlwZT5EZXNpZ25lcjwvU3ViVHlwZT4KKyAgICA8L0VtYmVkZGVkUmVzb3VyY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxGb2xkZXIgSW5jbHVkZT0iUmVzb3VyY2VzXCIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChNU0J1aWxkVG9vbHNQYXRoKVxNaWNyb3NvZnQuQ1NoYXJwLnRhcmdldHMiIC8+CisgIDwhLS0gVG8gbW9kaWZ5IHlvdXIgYnVpbGQgcHJvY2VzcywgYWRkIHlvdXIgdGFzayBpbnNpZGUgb25lIG9mIHRoZSB0YXJnZXRzIGJlbG93IGFuZCB1bmNvbW1lbnQgaXQuIAorICAgICAgIE90aGVyIHNpbWlsYXIgZXh0ZW5zaW9uIHBvaW50cyBleGlzdCwgc2VlIE1pY3Jvc29mdC5Db21tb24udGFyZ2V0cy4KKyAgPFRhcmdldCBOYW1lPSJCZWZvcmVCdWlsZCI+CisgIDwvVGFyZ2V0PgorICA8VGFyZ2V0IE5hbWU9IkFmdGVyQnVpbGQiPgorICA8L1RhcmdldD4KKyAgLS0+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9TaGFycFNubXBMaWIvcmVhZG1lLnR4dCBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL3JlYWRtZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdiNWE2NQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL3JlYWRtZS50eHQKQEAgLTAsMCArMSBAQAorU2VlIGRvY3MgaW4gc3JjL2FwcHMvc25tcC9zbm1wX2NvcmUuYy4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvU2hhcnBTbm1wTGliL3NoYXJwc25tcGxpYi5zbmsgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9zaGFycHNubXBsaWIuc25rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNmYzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvTHdpcE1pYkNvbXBpbGVyL1NoYXJwU25tcExpYi9zaGFycHNubXBsaWIuc25rCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvZXhhbXBsZS9jb21waWxlX3VkcF9taWIuY21kIGIvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlci9leGFtcGxlL2NvbXBpbGVfdWRwX21pYi5jbWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM4NGRiZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIvZXhhbXBsZS9jb21waWxlX3VkcF9taWIuY21kCkBAIC0wLDAgKzEgQEAKKy4uXEx3aXBNaWJDb21waWxlclxiaW5cRGVidWdcTHdpcE1pYkNvbXBpbGVyLmV4ZSAuLlxNaWJzXFVEUC1NSUIgLlwgLi5cTWlic1wKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9jaGFyZ2VuL1JFQURNRSBiL2NvbnRyaWIvYXBwcy9jaGFyZ2VuL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGMyZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL2NoYXJnZW4vUkVBRE1FCkBAIC0wLDAgKzEsNTIgQEAKKworICAgICAgICBDSEFSR0VOCisgICAgICAgIAorVGhpcyBmaWxlIGltcGxlbWVudHMgYSBuaWNlIGV4YW1wbGUgb2YgaGFuZGxpbmcgbXVsdGlwbGUgdGNwIHNvY2tldHMgaW4gYQorc2VydmVyIGVudmlyb25tZW50LiBKdXN0IGNhbGwgY2hhcmdlbl9pbml0KCkgZnJvbSB5b3VyIGFwcGxpY2F0aW9uIGFmdGVyCit5b3UgaGF2ZSBpbml0aWFsaXplZCBsd2lwIGFuZCBhZGRlZCB5b3VyIG5ldHdvcmsgaW50ZXJmYWNlcy4gQ2hhbmdlIHRoZQorTUFYX1NFUlYgb3B0aW9uIHRvIGluY3JlYXNlIG9yIGRlY3JlYXNlIHRoZSBudW1iZXIgb2Ygc2Vzc2lvbnMgc3VwcG9ydGVkLgorCitjaGFyZ2VuIHdpbGwgamFtIGFzIG11Y2ggZGF0YSBhcyBwb3NzaWJsZSBpbnRvIHRoZSBvdXRwdXQgc29ja2V0LCBzbyBpdAord2lsbCB0YWtlIHVwIGEgbG90IG9mIENQVSB0aW1lLiBUaGVyZWZvcmUgaXQgd2lsbCBiZSBhIGdvb2QgaWRlYSB0byBydW4gaXQKK2FzIHRoZSBsb3dlc3QgcG9zc2libGUgcHJpb3JpdHkgKGp1c3QgYWhlYWQgb2YgYW55IGlkbGUgdGFzaykuCisgCitUaGlzIGlzIGFsc28gYSBnb29kIGV4YW1wbGUgb2YgaG93IHRvIHN1cHBvcnQgbXVsdGlwbGUgc2Vzc2lvbnMgaW4gYW4KK2VtYmVkZGVkIHN5c3RlbSB3aGVyZSB5b3UgbWlnaHQgbm90IGhhdmUgZm9yaygpLiBUaGUgbXVsdGlwbGUgc2Vzc2lvbnMgYXJlCithbGwgaGFuZGxlZCBieSB0aGUgc2FtZSB0aHJlYWQgYW5kIHNlbGVjdCgpIGlzIHVzZWQgZm9yIGRlbXVsdGlwbGV4aW5nLgorIAorTm8gbWFrZWZpbGUgaXMgcHJvdmlkZWQsIGp1c3QgYWRkIGNoYXJnZW4gdG8gdGhlIG1ha2VmaWxlIGZvciB5b3VyCithcHBsaWNhdGlvbi4gSXQgaXMgT1MgYW5kIEhXIGluZGVwZW5kZW50LgorCitPbmNlIHRoZSBjaGFyZ2VuIHNlcnZlciBpcyBydW5uaW5nIGluIHlvdXIgYXBwbGljYXRpb24sIGdvIHRvIGFub3RoZXIgc3lzdGVtCithbmQgb3BlbiBhIHRlbG5ldCBzZXNzaW9uIHRvIHlvdXIgbHdpcCBwbGF0Zm9ybSBhdCBwb3J0IDE5LiBZb3Ugc2hvdWxkIHNlZSBhbgorQVNDSUkgcGF0dGVybiBzdGFydCB0byBzdHJlYW0gb24geW91IHNjcmVlbi4KKworQXMgYW4gZXhhbXBsZSwgbGV0cyBzYXkgdGhhdCB5b3VyIHN5c3RlbSBydW5uaW5nIGx3aXAgaXMgYXQgSVAgYWRkcmVzcworMTkyLjE2OC4xMC4yNDQgYW5kIHlvdSBoYXZlIGEgbGludXggc3lzdGVtIGNvbm5lY3RlZCB0byBpdCBhdCBJUCBhZGRyZXNzCisxOTIuMTY4LjEwLjU5LiBJc3N1ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQgYXQgYSB0ZXJtaW5hbCBwcm9tcHQgb24gdGhlIGxpbnV4IHN5c3RlbToKKwordGVsbmV0IDE5Mi4xNjguMTAuMjQ0IDE5CisKK1lvdSB3aWxsIHNlZSBhIHBhdHRlcm4gc2ltaWxhciB0byB0aGUgZm9sbG93aW5nIG9uIHN0cmVhbWluZyBieSBvbiB5b3VyCitzY3JlZW46CisKK0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7CitCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fAorQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH0KK0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+CitFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+IQorRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+ISIKK0dISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+ISIjCitISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+ISIjJAorSUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+ISIjJCUKK0pLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+ISIjJCUmCitLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+ISIjJCUmJworTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+ISIjJCUmJygKKworSXQgZXZlbiB3b3JrcyBmcm9tIHdpbmRvd3M6IEF0IGEgZG9zIHByb21wdCB5b3UgY2FuIGFsc28gaXNzdWUgdGhlIHNhbWUKK3RlbG5ldCBjb21tYW5kIGFuZCB5b3Ugd2lsbCBnZXQgYSBzaW1pbGFyIChidXQgbXVjaCBzbG93ZXIsIGF0IGxlYXN0IG9uIFc5OCkKK2RhdGEgc3RyZWFtLgorCitEYXZpZCBIYWFzCisKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL2NoYXJnZW4vY2hhcmdlbi5jIGIvY29udHJpYi9hcHBzL2NoYXJnZW4vY2hhcmdlbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0YTcwYjkKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvY2hhcmdlbi9jaGFyZ2VuLmMKQEAgLTAsMCArMSwyNzQgQEAKKy8qKiBAZmlsZQorICoKKyAqICBjaGFyZ2VuIHNlcnZlciBmb3IgbHdpcAorICovCisvKgorICogQ29weXJpZ2h0IChjKSAyMDAzIE5CUyBDYXJkIFRlY2hub2xvZ3ksIFBhcmFtdXMsIE5KLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IERhdmlkIEhhYXMgPGRoYWFzQGFsdW0ucnBpLmVkdT4KKyAqCisgKiBQdXJwb3NlOiAgIGNoYXJnZW4gc2VydmVyIGZvciB0ZXN0aW5nIGFuZCBkZW1vbnN0cmF0aW9uIHB1cnBvc2VzCisgKgorICogVGhpcyBmaWxlIGltcGxlbWVudHMgYSBuaWNlIGV4YW1wbGUgb2YgaGFuZGxpbmcgbXVsdGlwbGUgdGNwIHNvY2tldHMgaW4gYQorICogc2VydmVyIGVudmlyb25tZW50LiBKdXN0IGNhbGwgY2hhcmdlbl9pbml0KCkgZnJvbSB5b3VyIGFwcGxpY2F0aW9uIGFmdGVyCisgKiB5b3UgaGF2ZSBpbml0aWFsaXplZCBsd2lwIGFuZCBhZGRlZCB5b3VyIG5ldHdvcmsgaW50ZXJmYWNlcy4gQ2hhbmdlIHRoZQorICogTUFYX1NFUlYgb3B0aW9uIHRvIGluY3JlYXNlIG9yIGRlY3JlYXNlIHRoZSBudW1iZXIgb2Ygc2Vzc2lvbnMgc3VwcG9ydGVkLgorICoKKyAqIGNoYXJnZW4gd2lsbCBqYW0gYXMgbXVjaCBkYXRhIGFzIHBvc3NpYmxlIGludG8gdGhlIG91dHB1dCBzb2NrZXQsIHNvIGl0CisgKiB3aWxsIHRha2UgdXAgYSBsb3Qgb2YgQ1BVIHRpbWUuIFRoZXJlZm9yZSBpdCB3aWxsIGJlIGEgZ29vZCBpZGVhIHRvIHJ1biBpdAorICogYXMgdGhlIGxvd2VzdCBwb3NzaWJsZSBwcmlvcml0eSAoanVzdCBhaGVhZCBvZiBhbnkgaWRsZSB0YXNrKS4KKyAqCisgKiBUaGlzIGlzIGFsc28gYSBnb29kIGV4YW1wbGUgb2YgaG93IHRvIHN1cHBvcnQgbXVsdGlwbGUgc2Vzc2lvbnMgaW4gYW4KKyAqIGVtYmVkZGVkIHN5c3RlbSB3aGVyZSB5b3UgbWlnaHQgbm90IGhhdmUgZm9yaygpLgorICovCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorI2luY2x1ZGUgImx3aXAvc3lzLmgiCisjaW5jbHVkZSAibHdpcC9zb2NrZXRzLmgiCisjaW5jbHVkZSAibHdpcC9tZW0uaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAiY2hhcmdlbi5oIgorCisjaWYgTFdJUF9TT0NLRVQgJiYgTFdJUF9TT0NLRVRfU0VMRUNUCisKKyNkZWZpbmUgTUFYX1NFUlYgICAgICAgICAgICAgICAgIDUgICAgICAgICAvKiBNYXhpbXVtIG51bWJlciBvZiBjaGFyZ2VuIHNlcnZpY2VzLiBEb24ndCBuZWVkIHRvbyBtYW55ICovCisjZGVmaW5lIENIQVJHRU5fVEhSRUFEX05BTUUgICAgICAiY2hhcmdlbiIKKyNkZWZpbmUgQ0hBUkdFTl9QUklPUklUWSAgICAgICAgIDI1NCAgICAgICAvKiBSZWFsbHkgbG93IHByaW9yaXR5ICovCisjZGVmaW5lIENIQVJHRU5fVEhSRUFEX1NUQUNLU0laRSAwCisjZGVmaW5lIFNFTkRfU0laRSBUQ1BfU05ETE9XQVQgICAgICAgICAgICAgLyogSWYgd2Ugb25seSBzZW5kIHRoaXMgbXVjaCwgdGhlbiB3aGVuIHNlbGVjdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNheXMgd2UgY2FuIHNlbmQsIHdlIGtub3cgd2Ugd29uJ3QgYmxvY2sgKi8KKworc3RydWN0IGNoYXJjYiB7CisgIHN0cnVjdCBjaGFyY2IgKm5leHQ7CisgIGludCBzb2NrZXQ7CisgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIGNsaWFkZHI7CisgIHNvY2tsZW5fdCBjbGlsZW47CisgIGNoYXIgbmV4dGNoYXI7Cit9OworCitzdGF0aWMgc3RydWN0IGNoYXJjYiAqY2hhcmNiX2xpc3QgPSBOVUxMOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHZvaWQgY2xvc2VfY2hhcmdlbihzdHJ1Y3QgY2hhcmNiICpwX2NoYXJjYikKKyAqCisgKiBDbG9zZSB0aGUgc29ja2V0IGFuZCByZW1vdmUgdGhpcyBjaGFyY2IgZnJvbSB0aGUgbGlzdC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyB2b2lkCitjbG9zZV9jaGFyZ2VuKHN0cnVjdCBjaGFyY2IgKnBfY2hhcmNiKQoreworICBzdHJ1Y3QgY2hhcmNiICpwX3NlYXJjaF9jaGFyY2I7CisKKyAgLyogRWl0aGVyIGFuIGVycm9yIG9yIHRjcCBjb25uZWN0aW9uIGNsb3NlZCBvbiBvdGhlcgorICAgKiBlbmQuIENsb3NlIGhlcmUgKi8KKyAgbHdpcF9jbG9zZShwX2NoYXJjYi0+c29ja2V0KTsKKyAgLyogRnJlZSBjaGFyY2IgKi8KKyAgaWYgKGNoYXJjYl9saXN0ID09IHBfY2hhcmNiKSB7CisgICAgY2hhcmNiX2xpc3QgPSBwX2NoYXJjYi0+bmV4dDsKKyAgfSBlbHNlIHsKKyAgICBmb3IgKHBfc2VhcmNoX2NoYXJjYiA9IGNoYXJjYl9saXN0OyBwX3NlYXJjaF9jaGFyY2I7IHBfc2VhcmNoX2NoYXJjYiA9IHBfc2VhcmNoX2NoYXJjYi0+bmV4dCkgeworICAgICAgaWYgKHBfc2VhcmNoX2NoYXJjYi0+bmV4dCA9PSBwX2NoYXJjYikgeworICAgICAgICBwX3NlYXJjaF9jaGFyY2ItPm5leHQgPSBwX2NoYXJjYi0+bmV4dDsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgfQorICB9CisgIG1lbV9mcmVlKHBfY2hhcmNiKTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiB2b2lkIGRvX3JlYWQoc3RydWN0IGNoYXJjYiAqcF9jaGFyY2IpCisgKgorICogU29ja2V0IGRlZmluaXRlbHkgaXMgcmVhZHkgZm9yIHJlYWRpbmcuIFJlYWQgYSBidWZmZXIgZnJvbSB0aGUgc29ja2V0IGFuZAorICogZGlzY2FyZCB0aGUgZGF0YS4gIElmIG5vIGRhdGEgaXMgcmVhZCwgdGhlbiB0aGUgc29ja2V0IGlzIGNsb3NlZCBhbmQgdGhlCisgKiBjaGFyY2IgaXMgcmVtb3ZlZCBmcm9tIHRoZSBsaXN0IGFuZCBmcmVlZC4KKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK3N0YXRpYyBpbnQKK2RvX3JlYWQoc3RydWN0IGNoYXJjYiAqcF9jaGFyY2IpCit7CisgIGNoYXIgYnVmZmVyWzgwXTsKKyAgaW50IHJlYWRjb3VudDsKKworICAvKiBSZWFkIHNvbWUgZGF0YSAqLworICByZWFkY291bnQgPSBsd2lwX3JlYWQocF9jaGFyY2ItPnNvY2tldCwgJmJ1ZmZlciwgODApOworICBpZiAocmVhZGNvdW50IDw9IDApIHsKKyAgICBjbG9zZV9jaGFyZ2VuKHBfY2hhcmNiKTsKKyAgICByZXR1cm4gLTE7CisgIH0KKyAgcmV0dXJuIDA7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogdm9pZCBjaGFyZ2VuX3RocmVhZCh2b2lkICphcmcpCisgKgorICogY2hhcmdlbiB0YXNrLiBUaGlzIHNlcnZlciB3aWxsIHdhaXQgZm9yIGNvbm5lY3Rpb25zIG9uIHdlbGwKKyAqIGtub3duIFRDUCBwb3J0IG51bWJlcjogMTkuIEZvciBldmVyeSBjb25uZWN0aW9uLCB0aGUgc2VydmVyIHdpbGwKKyAqIHdyaXRlIGFzIG11Y2ggZGF0YSBhcyBwb3NzaWJsZSB0byB0aGUgdGNwIHBvcnQuCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitzdGF0aWMgdm9pZAorY2hhcmdlbl90aHJlYWQodm9pZCAqYXJnKQoreworICBpbnQgbGlzdGVuZmQ7CisjaWYgTFdJUF9JUFY2CisgIHN0cnVjdCBzb2NrYWRkcl9pbjYgY2hhcmdlbl9zYWRkcjsKKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICBzdHJ1Y3Qgc29ja2FkZHJfaW4gY2hhcmdlbl9zYWRkcjsKKyNlbmRpZiAvKiBMV0lQX0lQVjYgKi8KKyAgZmRfc2V0IHJlYWRzZXQ7CisgIGZkX3NldCB3cml0ZXNldDsKKyAgaW50IGksIG1heGZkcDE7CisgIHN0cnVjdCBjaGFyY2IgKnBfY2hhcmNiOworICBMV0lQX1VOVVNFRF9BUkcoYXJnKTsKKworICBtZW1zZXQoJmNoYXJnZW5fc2FkZHIsIDAsIHNpemVvZiAoY2hhcmdlbl9zYWRkcikpOworI2lmIExXSVBfSVBWNgorICAvKiBGaXJzdCBhY3F1aXJlIG91ciBzb2NrZXQgZm9yIGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMgKi8KKyAgbGlzdGVuZmQgPSBsd2lwX3NvY2tldChBRl9JTkVUNiwgU09DS19TVFJFQU0sIDApOworICBjaGFyZ2VuX3NhZGRyLnNpbjZfZmFtaWx5ID0gQUZfSU5FVDY7CisgIGNoYXJnZW5fc2FkZHIuc2luNl9hZGRyID0gaW42YWRkcl9hbnk7CisgIGNoYXJnZW5fc2FkZHIuc2luNl9wb3J0ID0gbHdpcF9odG9ucygxOSk7IC8qIENoYXJnZW4gc2VydmVyIHBvcnQgKi8KKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICAvKiBGaXJzdCBhY3F1aXJlIG91ciBzb2NrZXQgZm9yIGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMgKi8KKyAgbGlzdGVuZmQgPSBsd2lwX3NvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7CisgIGNoYXJnZW5fc2FkZHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7CisgIGNoYXJnZW5fc2FkZHIuc2luX2FkZHIuc19hZGRyID0gUFBfSFRPTkwoSU5BRERSX0FOWSk7CisgIGNoYXJnZW5fc2FkZHIuc2luX3BvcnQgPSBsd2lwX2h0b25zKDE5KTsgLyogQ2hhcmdlbiBzZXJ2ZXIgcG9ydCAqLworI2VuZGlmIC8qIExXSVBfSVBWNiAqLworCisgIExXSVBfQVNTRVJUKCJjaGFyZ2VuX3RocmVhZCgpOiBTb2NrZXQgY3JlYXRlIGZhaWxlZC4iLCBsaXN0ZW5mZCA+PSAwKTsKKworICBpZiAobHdpcF9iaW5kKGxpc3RlbmZkLCAoc3RydWN0IHNvY2thZGRyICopICZjaGFyZ2VuX3NhZGRyLCBzaXplb2YgKGNoYXJnZW5fc2FkZHIpKSA9PSAtMSkgeworICAgIExXSVBfQVNTRVJUKCJjaGFyZ2VuX3RocmVhZCgpOiBTb2NrZXQgYmluZCBmYWlsZWQuIiwgMCk7CisgIH0KKworICAvKiBQdXQgc29ja2V0IGludG8gbGlzdGVuaW5nIG1vZGUgKi8KKyAgaWYgKGx3aXBfbGlzdGVuKGxpc3RlbmZkLCBNQVhfU0VSVikgPT0gLTEpIHsKKyAgICBMV0lQX0FTU0VSVCgiY2hhcmdlbl90aHJlYWQoKTogTGlzdGVuIGZhaWxlZC4iLCAwKTsKKyAgfQorCisKKyAgLyogV2FpdCBmb3JldmVyIGZvciBuZXR3b3JrIGlucHV0OiBUaGlzIGNvdWxkIGJlIGNvbm5lY3Rpb25zIG9yIGRhdGEgKi8KKyAgZm9yICg7OykgeworICAgIG1heGZkcDEgPSBsaXN0ZW5mZCArIDE7CisKKyAgICAvKiBEZXRlcm1pbmUgd2hhdCBzb2NrZXRzIG5lZWQgdG8gYmUgaW4gcmVhZHNldCAqLworICAgIEZEX1pFUk8oJnJlYWRzZXQpOworICAgIEZEX1pFUk8oJndyaXRlc2V0KTsKKyAgICBGRF9TRVQobGlzdGVuZmQsICZyZWFkc2V0KTsKKyAgICBmb3IgKHBfY2hhcmNiID0gY2hhcmNiX2xpc3Q7IHBfY2hhcmNiOyBwX2NoYXJjYiA9IHBfY2hhcmNiLT5uZXh0KSB7CisgICAgICBpZiAobWF4ZmRwMSA8IHBfY2hhcmNiLT5zb2NrZXQgKyAxKSB7CisgICAgICAgIG1heGZkcDEgPSBwX2NoYXJjYi0+c29ja2V0ICsgMTsKKyAgICAgIH0KKyAgICAgIEZEX1NFVChwX2NoYXJjYi0+c29ja2V0LCAmcmVhZHNldCk7CisgICAgICBGRF9TRVQocF9jaGFyY2ItPnNvY2tldCwgJndyaXRlc2V0KTsKKyAgICB9CisKKyAgICAvKiBXYWl0IGZvciBkYXRhIG9yIGEgbmV3IGNvbm5lY3Rpb24gKi8KKyAgICBpID0gbHdpcF9zZWxlY3QobWF4ZmRwMSwgJnJlYWRzZXQsICZ3cml0ZXNldCwgTlVMTCwgTlVMTCk7CisKKyAgICBpZiAoaSA9PSAwKSB7CisgICAgICBjb250aW51ZTsKKyAgICB9CisgICAgLyogQXQgbGVhc3Qgb25lIGRlc2NyaXB0b3IgaXMgcmVhZHkgKi8KKyAgICBpZiAoRkRfSVNTRVQobGlzdGVuZmQsICZyZWFkc2V0KSkgeworICAgICAgLyogV2UgaGF2ZSBhIG5ldyBjb25uZWN0aW9uIHJlcXVlc3QhISEgKi8KKyAgICAgIC8qIExldHMgY3JlYXRlIGEgbmV3IGNvbnRyb2wgYmxvY2sgKi8KKyAgICAgIHBfY2hhcmNiID0gKHN0cnVjdCBjaGFyY2IgKikgbWVtX21hbGxvYyhzaXplb2YgKHN0cnVjdCBjaGFyY2IpKTsKKyAgICAgIGlmIChwX2NoYXJjYikgeworICAgICAgICBwX2NoYXJjYi0+c29ja2V0ID0gbHdpcF9hY2NlcHQobGlzdGVuZmQsCisgICAgICAgICAgICAgICAgKHN0cnVjdCBzb2NrYWRkciAqKSAmcF9jaGFyY2ItPmNsaWFkZHIsCisgICAgICAgICAgICAgICAgJnBfY2hhcmNiLT5jbGlsZW4pOworICAgICAgICBpZiAocF9jaGFyY2ItPnNvY2tldCA8IDApIHsKKyAgICAgICAgICBtZW1fZnJlZShwX2NoYXJjYik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgLyogS2VlcCB0aGlzIHRlY2IgaW4gb3VyIGxpc3QgKi8KKyAgICAgICAgICBwX2NoYXJjYi0+bmV4dCA9IGNoYXJjYl9saXN0OworICAgICAgICAgIGNoYXJjYl9saXN0ID0gcF9jaGFyY2I7CisgICAgICAgICAgcF9jaGFyY2ItPm5leHRjaGFyID0gMHgyMTsKKyAgICAgICAgfQorICAgICAgfSBlbHNlIHsKKyAgICAgICAgLyogTm8gbWVtb3J5IHRvIGFjY2VwdCBjb25uZWN0aW9uLiBKdXN0IGFjY2VwdCBhbmQgdGhlbiBjbG9zZSAqLworICAgICAgICBpbnQgc29jazsKKyAgICAgICAgc3RydWN0IHNvY2thZGRyIGNsaWFkZHI7CisgICAgICAgIHNvY2tsZW5fdCBjbGlsZW47CisKKyAgICAgICAgc29jayA9IGx3aXBfYWNjZXB0KGxpc3RlbmZkLCAmY2xpYWRkciwgJmNsaWxlbik7CisgICAgICAgIGlmIChzb2NrID49IDApIHsKKyAgICAgICAgICBsd2lwX2Nsb3NlKHNvY2spOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICAgIC8qIEdvIHRocm91Z2ggbGlzdCBvZiBjb25uZWN0ZWQgY2xpZW50cyBhbmQgcHJvY2VzcyBkYXRhICovCisgICAgZm9yIChwX2NoYXJjYiA9IGNoYXJjYl9saXN0OyBwX2NoYXJjYjsgcF9jaGFyY2IgPSBwX2NoYXJjYi0+bmV4dCkgeworICAgICAgaWYgKEZEX0lTU0VUKHBfY2hhcmNiLT5zb2NrZXQsICZyZWFkc2V0KSkgeworICAgICAgICAvKiBUaGlzIHNvY2tldCBpcyByZWFkeSBmb3IgcmVhZGluZy4gVGhpcyBjb3VsZCBiZSBiZWNhdXNlIHNvbWVvbmUgdHlwZWQKKyAgICAgICAgICogc29tZSBjaGFyYWN0ZXJzIG9yIGl0IGNvdWxkIGJlIGJlY2F1c2UgdGhlIHNvY2tldCBpcyBub3cgY2xvc2VkLiBUcnkgcmVhZGluZworICAgICAgICAgKiBzb21lIGRhdGEgdG8gc2VlLiAqLworICAgICAgICBpZiAoZG9fcmVhZChwX2NoYXJjYikgPCAwKSB7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGlmIChGRF9JU1NFVChwX2NoYXJjYi0+c29ja2V0LCAmd3JpdGVzZXQpKSB7CisgICAgICAgIGNoYXIgbGluZVs4MF07CisgICAgICAgIGNoYXIgc2V0Y2hhciA9IHBfY2hhcmNiLT5uZXh0Y2hhcjsKKworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNTk7IGkrKykgeworICAgICAgICAgIGxpbmVbaV0gPSBzZXRjaGFyOworICAgICAgICAgIGlmICgrK3NldGNoYXIgPT0gMHg3ZikgeworICAgICAgICAgICAgc2V0Y2hhciA9IDB4MjE7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGxpbmVbaV0gPSAwOworICAgICAgICBzdHJjYXQobGluZSwgIlxuXHIiKTsKKyAgICAgICAgaWYgKGx3aXBfd3JpdGUocF9jaGFyY2ItPnNvY2tldCwgbGluZSwgc3RybGVuKGxpbmUpKSA8IDApIHsKKyAgICAgICAgICBjbG9zZV9jaGFyZ2VuKHBfY2hhcmNiKTsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoKytwX2NoYXJjYi0+bmV4dGNoYXIgPT0gMHg3ZikgeworICAgICAgICAgIHBfY2hhcmNiLT5uZXh0Y2hhciA9IDB4MjE7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgIH0KK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqIHZvaWQgY2hhcmdlbl9pbml0KHZvaWQpCisgKgorICogVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGUgY2hhcmdlbiBzZXJ2aWNlLiBUaGlzIGZ1bmN0aW9uCisgKiBtYXkgb25seSBiZSBjYWxsZWQgZWl0aGVyIGJlZm9yZSBvciBhZnRlciB0YXNraW5nIGhhcyBzdGFydGVkLgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwordm9pZAorY2hhcmdlbl9pbml0KHZvaWQpCit7CisgIHN5c190aHJlYWRfbmV3KENIQVJHRU5fVEhSRUFEX05BTUUsIGNoYXJnZW5fdGhyZWFkLCBOVUxMLCBDSEFSR0VOX1RIUkVBRF9TVEFDS1NJWkUsIENIQVJHRU5fUFJJT1JJVFkpOworfQorCisjZW5kaWYgLyogTFdJUF9TT0NLRVQgJiYgTFdJUF9TT0NLRVRfU0VMRUNUICovCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvY2hhcmdlbi9jaGFyZ2VuLmggYi9jb250cmliL2FwcHMvY2hhcmdlbi9jaGFyZ2VuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI4M2U0ZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9jaGFyZ2VuL2NoYXJnZW4uaApAQCAtMCwwICsxLDEyIEBACisjaWZuZGVmIExXSVBfQ0hBUkdFTl9ICisjZGVmaW5lIExXSVBfQ0hBUkdFTl9ICisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorCisjaWYgTFdJUF9TT0NLRVQKKwordm9pZCBjaGFyZ2VuX2luaXQodm9pZCk7CisKKyNlbmRpZiAvKiBMV0lQX1NPQ0tFVCAqLworCisjZW5kaWYgLyogTFdJUF9DSEFSR0VOX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9odHRwc2VydmVyL1JFQURNRSBiL2NvbnRyaWIvYXBwcy9odHRwc2VydmVyL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjE4YmI4Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL2h0dHBzZXJ2ZXIvUkVBRE1FCkBAIC0wLDAgKzEsMTIgQEAKK0hUVFBTRVJWRVIKKworVGhpcyBpcyBhIGRlbW9uc3RyYXRpb24gb2YgaG93IHRvIG1ha2UgdGhlIG1vc3QgYmFzaWMga2luZCAKK29mIHNlcnZlciB1c2luZyBsV0lQLgorCisqIGh0dHBzZXJ2ZXItcmF3LmMgLSB1c2VzIHJhdyBUQ1AgY2FsbHMgKGNvbWluZyBzb29uISkKKworKiBodHRwc2VydmVyLW5ldGNvbm4uYyAtIHVzZXMgbmV0Y29ubiBhbmQgbmV0YnVmIEFQSQorCitUaGlzIGNvZGUgdXBkYXRlcyB0aGUgZXhhbXBsZXMgaW4gQWRhbSBEdW5rZWwncyBvcmlnaW5hbAorbHdJUCBkb2N1bWVudGF0aW9uIHRvIG1hdGNoIGNoYW5nZXMgaW4gdGhlIGNvZGUgc2luY2UgdGhhdAorUERGIHJlbGVhc2UuIApkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL2h0dHBzZXJ2ZXIvaHR0cHNlcnZlci1uZXRjb25uLmMgYi9jb250cmliL2FwcHMvaHR0cHNlcnZlci9odHRwc2VydmVyLW5ldGNvbm4uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTE1ODRlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL2h0dHBzZXJ2ZXIvaHR0cHNlcnZlci1uZXRjb25uLmMKQEAgLTAsMCArMSwxMDMgQEAKKworI2luY2x1ZGUgImx3aXAvb3B0LmgiCisjaW5jbHVkZSAibHdpcC9hcmNoLmgiCisjaW5jbHVkZSAibHdpcC9hcGkuaCIKKworI2luY2x1ZGUgImh0dHBzZXJ2ZXItbmV0Y29ubi5oIgorCisjaWYgTFdJUF9ORVRDT05OCisKKyNpZm5kZWYgSFRUUERfREVCVUcKKyNkZWZpbmUgSFRUUERfREVCVUcgICAgICAgICBMV0lQX0RCR19PRkYKKyNlbmRpZgorCitzdGF0aWMgY29uc3QgY2hhciBodHRwX2h0bWxfaGRyW10gPSAiSFRUUC8xLjEgMjAwIE9LXHJcbkNvbnRlbnQtdHlwZTogdGV4dC9odG1sXHJcblxyXG4iOworc3RhdGljIGNvbnN0IGNoYXIgaHR0cF9pbmRleF9odG1sW10gPSAiPGh0bWw+PGhlYWQ+PHRpdGxlPkNvbmdyYXRzITwvdGl0bGU+PC9oZWFkPjxib2R5PjxoMT5XZWxjb21lIHRvIG91ciBsd0lQIEhUVFAgc2VydmVyITwvaDE+PHA+VGhpcyBpcyBhIHNtYWxsIHRlc3QgcGFnZSwgc2VydmVkIGJ5IGh0dHBzZXJ2ZXItbmV0Y29ubi48L2JvZHk+PC9odG1sPiI7CisKKy8qKiBTZXJ2ZSBvbmUgSFRUUCBjb25uZWN0aW9uIGFjY2VwdGVkIGluIHRoZSBodHRwIHRocmVhZCAqLworc3RhdGljIHZvaWQKK2h0dHBfc2VydmVyX25ldGNvbm5fc2VydmUoc3RydWN0IG5ldGNvbm4gKmNvbm4pCit7CisgIHN0cnVjdCBuZXRidWYgKmluYnVmOworICBjaGFyICpidWY7CisgIHUxNl90IGJ1ZmxlbjsKKyAgZXJyX3QgZXJyOworCisgIC8qIFJlYWQgdGhlIGRhdGEgZnJvbSB0aGUgcG9ydCwgYmxvY2tpbmcgaWYgbm90aGluZyB5ZXQgdGhlcmUuCisgICBXZSBhc3N1bWUgdGhlIHJlcXVlc3QgKHRoZSBwYXJ0IHdlIGNhcmUgYWJvdXQpIGlzIGluIG9uZSBuZXRidWYgKi8KKyAgZXJyID0gbmV0Y29ubl9yZWN2KGNvbm4sICZpbmJ1Zik7CisKKyAgaWYgKGVyciA9PSBFUlJfT0spIHsKKyAgICBuZXRidWZfZGF0YShpbmJ1ZiwgKHZvaWQqKikmYnVmLCAmYnVmbGVuKTsKKworICAgIC8qIElzIHRoaXMgYW4gSFRUUCBHRVQgY29tbWFuZD8gKG9ubHkgY2hlY2sgdGhlIGZpcnN0IDUgY2hhcnMsIHNpbmNlCisgICAgdGhlcmUgYXJlIG90aGVyIGZvcm1hdHMgZm9yIEdFVCwgYW5kIHdlJ3JlIGtlZXBpbmcgaXQgdmVyeSBzaW1wbGUgKSovCisgICAgaWYgKGJ1Zmxlbj49NSAmJgorICAgICAgICBidWZbMF09PSdHJyAmJgorICAgICAgICBidWZbMV09PSdFJyAmJgorICAgICAgICBidWZbMl09PSdUJyAmJgorICAgICAgICBidWZbM109PScgJyAmJgorICAgICAgICBidWZbNF09PScvJyApIHsKKworICAgICAgLyogU2VuZCB0aGUgSFRNTCBoZWFkZXIKKyAgICAgICAgICAgICAqIHN1YnRyYWN0IDEgZnJvbSB0aGUgc2l6ZSwgc2luY2Ugd2UgZG9uJ3Qgc2VuZCB0aGUgXDAgaW4gdGhlIHN0cmluZworICAgICAgICAgICAgICogTkVUQ09OTl9OT0NPUFk6IG91ciBkYXRhIGlzIGNvbnN0IHN0YXRpYywgc28gbm8gbmVlZCB0byBjb3B5IGl0CisgICAgICAgKi8KKyAgICAgIG5ldGNvbm5fd3JpdGUoY29ubiwgaHR0cF9odG1sX2hkciwgc2l6ZW9mKGh0dHBfaHRtbF9oZHIpLTEsIE5FVENPTk5fTk9DT1BZKTsKKworICAgICAgLyogU2VuZCBvdXIgSFRNTCBwYWdlICovCisgICAgICBuZXRjb25uX3dyaXRlKGNvbm4sIGh0dHBfaW5kZXhfaHRtbCwgc2l6ZW9mKGh0dHBfaW5kZXhfaHRtbCktMSwgTkVUQ09OTl9OT0NPUFkpOworICAgIH0KKyAgfQorICAvKiBDbG9zZSB0aGUgY29ubmVjdGlvbiAoc2VydmVyIGNsb3NlcyBpbiBIVFRQKSAqLworICBuZXRjb25uX2Nsb3NlKGNvbm4pOworCisgIC8qIERlbGV0ZSB0aGUgYnVmZmVyIChuZXRjb25uX3JlY3YgZ2l2ZXMgdXMgb3duZXJzaGlwLAorICAgc28gd2UgaGF2ZSB0byBtYWtlIHN1cmUgdG8gZGVhbGxvY2F0ZSB0aGUgYnVmZmVyKSAqLworICBuZXRidWZfZGVsZXRlKGluYnVmKTsKK30KKworLyoqIFRoZSBtYWluIGZ1bmN0aW9uLCBuZXZlciByZXR1cm5zISAqLworc3RhdGljIHZvaWQKK2h0dHBfc2VydmVyX25ldGNvbm5fdGhyZWFkKHZvaWQgKmFyZykKK3sKKyAgc3RydWN0IG5ldGNvbm4gKmNvbm4sICpuZXdjb25uOworICBlcnJfdCBlcnI7CisgIExXSVBfVU5VU0VEX0FSRyhhcmcpOworCisgIC8qIENyZWF0ZSBhIG5ldyBUQ1AgY29ubmVjdGlvbiBoYW5kbGUgKi8KKyAgLyogQmluZCB0byBwb3J0IDgwIChIVFRQKSB3aXRoIGRlZmF1bHQgSVAgYWRkcmVzcyAqLworI2lmIExXSVBfSVBWNgorICBjb25uID0gbmV0Y29ubl9uZXcoTkVUQ09OTl9UQ1BfSVBWNik7CisgIG5ldGNvbm5fYmluZChjb25uLCBJUDZfQUREUl9BTlksIDgwKTsKKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICBjb25uID0gbmV0Y29ubl9uZXcoTkVUQ09OTl9UQ1ApOworICBuZXRjb25uX2JpbmQoY29ubiwgSVBfQUREUl9BTlksIDgwKTsKKyNlbmRpZiAvKiBMV0lQX0lQVjYgKi8KKyAgTFdJUF9FUlJPUigiaHR0cF9zZXJ2ZXI6IGludmFsaWQgY29ubiIsIChjb25uICE9IE5VTEwpLCByZXR1cm47KTsKKworICAvKiBQdXQgdGhlIGNvbm5lY3Rpb24gaW50byBMSVNURU4gc3RhdGUgKi8KKyAgbmV0Y29ubl9saXN0ZW4oY29ubik7CisKKyAgZG8geworICAgIGVyciA9IG5ldGNvbm5fYWNjZXB0KGNvbm4sICZuZXdjb25uKTsKKyAgICBpZiAoZXJyID09IEVSUl9PSykgeworICAgICAgaHR0cF9zZXJ2ZXJfbmV0Y29ubl9zZXJ2ZShuZXdjb25uKTsKKyAgICAgIG5ldGNvbm5fZGVsZXRlKG5ld2Nvbm4pOworICAgIH0KKyAgfSB3aGlsZShlcnIgPT0gRVJSX09LKTsKKyAgTFdJUF9ERUJVR0YoSFRUUERfREVCVUcsCisgICAgKCJodHRwX3NlcnZlcl9uZXRjb25uX3RocmVhZDogbmV0Y29ubl9hY2NlcHQgcmVjZWl2ZWQgZXJyb3IgJWQsIHNodXR0aW5nIGRvd25cbiIsCisgICAgZXJyKSk7CisgIG5ldGNvbm5fY2xvc2UoY29ubik7CisgIG5ldGNvbm5fZGVsZXRlKGNvbm4pOworfQorCisvKiogSW5pdGlhbGl6ZSB0aGUgSFRUUCBzZXJ2ZXIgKHN0YXJ0IGl0cyB0aHJlYWQpICovCit2b2lkCitodHRwX3NlcnZlcl9uZXRjb25uX2luaXQodm9pZCkKK3sKKyAgc3lzX3RocmVhZF9uZXcoImh0dHBfc2VydmVyX25ldGNvbm4iLCBodHRwX3NlcnZlcl9uZXRjb25uX3RocmVhZCwgTlVMTCwgREVGQVVMVF9USFJFQURfU1RBQ0tTSVpFLCBERUZBVUxUX1RIUkVBRF9QUklPKTsKK30KKworI2VuZGlmIC8qIExXSVBfTkVUQ09OTiovCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvaHR0cHNlcnZlci9odHRwc2VydmVyLW5ldGNvbm4uaCBiL2NvbnRyaWIvYXBwcy9odHRwc2VydmVyL2h0dHBzZXJ2ZXItbmV0Y29ubi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4NGIxMDMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvaHR0cHNlcnZlci9odHRwc2VydmVyLW5ldGNvbm4uaApAQCAtMCwwICsxLDYgQEAKKyNpZm5kZWYgTFdJUF9IVFRQU0VSVkVSX05FVENPTk5fSAorI2RlZmluZSBMV0lQX0hUVFBTRVJWRVJfTkVUQ09OTl9ICisKK3ZvaWQgaHR0cF9zZXJ2ZXJfbmV0Y29ubl9pbml0KHZvaWQpOworCisjZW5kaWYgLyogTFdJUF9IVFRQU0VSVkVSX05FVENPTk5fSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL25ldGlvL25ldGlvLmMgYi9jb250cmliL2FwcHMvbmV0aW8vbmV0aW8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDEyYWM4Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL25ldGlvL25ldGlvLmMKQEAgLTAsMCArMSw1NSBAQAorI2luY2x1ZGUgIm5ldGlvLmgiCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorI2luY2x1ZGUgImx3aXAvdGNwLmgiCisKKy8qIFNlZSBodHRwOi8vd3d3Lm53bGFiLm5ldC9hcnQvbmV0aW8vbmV0aW8uaHRtbCB0byBnZXQgdGhlIG5ldGlvIHRvb2wgKi8KKworI2lmIExXSVBfVENQICYmIExXSVBfQ0FMTEJBQ0tfQVBJCitzdGF0aWMgZXJyX3QKK25ldGlvX3JlY3Yodm9pZCAqYXJnLCBzdHJ1Y3QgdGNwX3BjYiAqcGNiLCBzdHJ1Y3QgcGJ1ZiAqcCwgZXJyX3QgZXJyKQoreworICBMV0lQX1VOVVNFRF9BUkcoYXJnKTsKKworICBpZiAoZXJyID09IEVSUl9PSyAmJiBwICE9IE5VTEwpIHsKKyAgICB0Y3BfcmVjdmVkKHBjYiwgcC0+dG90X2xlbik7CisgICAgcGJ1Zl9mcmVlKHApOworICB9IGVsc2UgeworICAgIHBidWZfZnJlZShwKTsKKyAgfQorCisgIGlmIChlcnIgPT0gRVJSX09LICYmIHAgPT0gTlVMTCkgeworICAgIHRjcF9hcmcocGNiLCBOVUxMKTsKKyAgICB0Y3Bfc2VudChwY2IsIE5VTEwpOworICAgIHRjcF9yZWN2KHBjYiwgTlVMTCk7CisgICAgdGNwX2Nsb3NlKHBjYik7CisgIH0KKworICByZXR1cm4gRVJSX09LOworfQorCitzdGF0aWMgZXJyX3QKK25ldGlvX2FjY2VwdCh2b2lkICphcmcsIHN0cnVjdCB0Y3BfcGNiICpwY2IsIGVycl90IGVycikKK3sKKyAgTFdJUF9VTlVTRURfQVJHKGFyZyk7CisgIExXSVBfVU5VU0VEX0FSRyhlcnIpOworCisgIGlmIChwY2IgIT0gTlVMTCkgeworICAgIHRjcF9hcmcocGNiLCBOVUxMKTsKKyAgICB0Y3Bfc2VudChwY2IsIE5VTEwpOworICAgIHRjcF9yZWN2KHBjYiwgbmV0aW9fcmVjdik7CisgIH0KKyAgcmV0dXJuIEVSUl9PSzsKK30KKwordm9pZAorbmV0aW9faW5pdCh2b2lkKQoreworICBzdHJ1Y3QgdGNwX3BjYiAqcGNiOworCisgIHBjYiA9IHRjcF9uZXdfaXBfdHlwZShJUEFERFJfVFlQRV9BTlkpOworICB0Y3BfYmluZChwY2IsIElQX0FOWV9UWVBFLCAxODc2Nyk7CisgIHBjYiA9IHRjcF9saXN0ZW4ocGNiKTsKKyAgdGNwX2FjY2VwdChwY2IsIG5ldGlvX2FjY2VwdCk7Cit9CisjZW5kaWYgLyogTFdJUF9UQ1AgJiYgTFdJUF9DQUxMQkFDS19BUEkgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9uZXRpby9uZXRpby5oIGIvY29udHJpYi9hcHBzL25ldGlvL25ldGlvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFkNzczMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9uZXRpby9uZXRpby5oCkBAIC0wLDAgKzEsNiBAQAorI2lmbmRlZiBMV0lQX05FVElPX0gKKyNkZWZpbmUgTFdJUF9ORVRJT19ICisKK3ZvaWQgbmV0aW9faW5pdCh2b2lkKTsKKworI2VuZGlmIC8qIExXSVBfTkVUSU9fSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL3BpbmcvcGluZy5jIGIvY29udHJpYi9hcHBzL3BpbmcvcGluZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0M2ZiODMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvcGluZy9waW5nLmMKQEAgLTAsMCArMSwzOTYgQEAKKy8qKgorICogQGZpbGUKKyAqIFBpbmcgc2VuZGVyIG1vZHVsZQorICoKKyAqLworCisvKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICovCisKKy8qKgorICogVGhpcyBpcyBhbiBleGFtcGxlIG9mIGEgInBpbmciIHNlbmRlciAod2l0aCByYXcgQVBJIGFuZCBzb2NrZXQgQVBJKS4KKyAqIEl0IGNhbiBiZSB1c2VkIGFzIGEgc3RhcnQgcG9pbnQgdG8gbWFpbnRhaW4gb3BlbmVkIGEgbmV0d29yayBjb25uZWN0aW9uLCBvcgorICogbGlrZSBhIG5ldHdvcmsgIndhdGNoZG9nIiBmb3IgeW91ciBkZXZpY2UuCisgKgorICovCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorCisjaWYgTFdJUF9SQVcgLyogZG9uJ3QgYnVpbGQgaWYgbm90IGNvbmZpZ3VyZWQgZm9yIHVzZSBpbiBsd2lwb3B0cy5oICovCisKKyNpbmNsdWRlICJwaW5nLmgiCisKKyNpbmNsdWRlICJsd2lwL21lbS5oIgorI2luY2x1ZGUgImx3aXAvcmF3LmgiCisjaW5jbHVkZSAibHdpcC9pY21wLmgiCisjaW5jbHVkZSAibHdpcC9uZXRpZi5oIgorI2luY2x1ZGUgImx3aXAvc3lzLmgiCisjaW5jbHVkZSAibHdpcC90aW1lb3V0cy5oIgorI2luY2x1ZGUgImx3aXAvaW5ldF9jaGtzdW0uaCIKKyNpbmNsdWRlICJsd2lwL3Byb3QvaXA0LmgiCisKKyNpZiBQSU5HX1VTRV9TT0NLRVRTCisjaW5jbHVkZSAibHdpcC9zb2NrZXRzLmgiCisjaW5jbHVkZSAibHdpcC9pbmV0LmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjZW5kaWYgLyogUElOR19VU0VfU09DS0VUUyAqLworCisKKy8qKgorICogUElOR19ERUJVRzogRW5hYmxlIGRlYnVnZ2luZyBmb3IgUElORy4KKyAqLworI2lmbmRlZiBQSU5HX0RFQlVHCisjZGVmaW5lIFBJTkdfREVCVUcgICAgIExXSVBfREJHX09OCisjZW5kaWYKKworLyoqIHBpbmcgcmVjZWl2ZSB0aW1lb3V0IC0gaW4gbWlsbGlzZWNvbmRzICovCisjaWZuZGVmIFBJTkdfUkNWX1RJTUVPCisjZGVmaW5lIFBJTkdfUkNWX1RJTUVPIDEwMDAKKyNlbmRpZgorCisvKiogcGluZyBkZWxheSAtIGluIG1pbGxpc2Vjb25kcyAqLworI2lmbmRlZiBQSU5HX0RFTEFZCisjZGVmaW5lIFBJTkdfREVMQVkgICAgIDEwMDAKKyNlbmRpZgorCisvKiogcGluZyBpZGVudGlmaWVyIC0gbXVzdCBmaXQgb24gYSB1MTZfdCAqLworI2lmbmRlZiBQSU5HX0lECisjZGVmaW5lIFBJTkdfSUQgICAgICAgIDB4QUZBRgorI2VuZGlmCisKKy8qKiBwaW5nIGFkZGl0aW9uYWwgZGF0YSBzaXplIHRvIGluY2x1ZGUgaW4gdGhlIHBhY2tldCAqLworI2lmbmRlZiBQSU5HX0RBVEFfU0laRQorI2RlZmluZSBQSU5HX0RBVEFfU0laRSAzMgorI2VuZGlmCisKKy8qKiBwaW5nIHJlc3VsdCBhY3Rpb24gLSBubyBkZWZhdWx0IGFjdGlvbiAqLworI2lmbmRlZiBQSU5HX1JFU1VMVAorI2RlZmluZSBQSU5HX1JFU1VMVChwaW5nX29rKQorI2VuZGlmCisKKy8qIHBpbmcgdmFyaWFibGVzICovCitzdGF0aWMgY29uc3QgaXBfYWRkcl90KiBwaW5nX3RhcmdldDsKK3N0YXRpYyB1MTZfdCBwaW5nX3NlcV9udW07CisjaWZkZWYgTFdJUF9ERUJVRworc3RhdGljIHUzMl90IHBpbmdfdGltZTsKKyNlbmRpZiAvKiBMV0lQX0RFQlVHICovCisjaWYgIVBJTkdfVVNFX1NPQ0tFVFMKK3N0YXRpYyBzdHJ1Y3QgcmF3X3BjYiAqcGluZ19wY2I7CisjZW5kaWYgLyogUElOR19VU0VfU09DS0VUUyAqLworCisvKiogUHJlcGFyZSBhIGVjaG8gSUNNUCByZXF1ZXN0ICovCitzdGF0aWMgdm9pZAorcGluZ19wcmVwYXJlX2VjaG8oIHN0cnVjdCBpY21wX2VjaG9faGRyICppZWNobywgdTE2X3QgbGVuKQoreworICBzaXplX3QgaTsKKyAgc2l6ZV90IGRhdGFfbGVuID0gbGVuIC0gc2l6ZW9mKHN0cnVjdCBpY21wX2VjaG9faGRyKTsKKworICBJQ01QSF9UWVBFX1NFVChpZWNobywgSUNNUF9FQ0hPKTsKKyAgSUNNUEhfQ09ERV9TRVQoaWVjaG8sIDApOworICBpZWNoby0+Y2hrc3VtID0gMDsKKyAgaWVjaG8tPmlkICAgICA9IFBJTkdfSUQ7CisgIGllY2hvLT5zZXFubyAgPSBsd2lwX2h0b25zKCsrcGluZ19zZXFfbnVtKTsKKworICAvKiBmaWxsIHRoZSBhZGRpdGlvbmFsIGRhdGEgYnVmZmVyIHdpdGggc29tZSBkYXRhICovCisgIGZvcihpID0gMDsgaSA8IGRhdGFfbGVuOyBpKyspIHsKKyAgICAoKGNoYXIqKWllY2hvKVtzaXplb2Yoc3RydWN0IGljbXBfZWNob19oZHIpICsgaV0gPSAoY2hhcilpOworICB9CisKKyAgaWVjaG8tPmNoa3N1bSA9IGluZXRfY2hrc3VtKGllY2hvLCBsZW4pOworfQorCisjaWYgUElOR19VU0VfU09DS0VUUworCisvKiBQaW5nIHVzaW5nIHRoZSBzb2NrZXQgaXAgKi8KK3N0YXRpYyBlcnJfdAorcGluZ19zZW5kKGludCBzLCBjb25zdCBpcF9hZGRyX3QgKmFkZHIpCit7CisgIGludCBlcnI7CisgIHN0cnVjdCBpY21wX2VjaG9faGRyICppZWNobzsKKyAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgdG87CisgIHNpemVfdCBwaW5nX3NpemUgPSBzaXplb2Yoc3RydWN0IGljbXBfZWNob19oZHIpICsgUElOR19EQVRBX1NJWkU7CisgIExXSVBfQVNTRVJUKCJwaW5nX3NpemUgaXMgdG9vIGJpZyIsIHBpbmdfc2l6ZSA8PSAweGZmZmYpOworCisjaWYgTFdJUF9JUFY2CisgIGlmKElQX0lTX1Y2KGFkZHIpICYmICFpcDZfYWRkcl9pc2lwdjRtYXBwZWRpcHY2KGlwXzJfaXA2KGFkZHIpKSkgeworICAgIC8qIHRvZG86IHN1cHBvcnQgSUNNUDYgZWNobyAqLworICAgIHJldHVybiBFUlJfVkFMOworICB9CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisKKyAgaWVjaG8gPSAoc3RydWN0IGljbXBfZWNob19oZHIgKiltZW1fbWFsbG9jKChtZW1fc2l6ZV90KXBpbmdfc2l6ZSk7CisgIGlmICghaWVjaG8pIHsKKyAgICByZXR1cm4gRVJSX01FTTsKKyAgfQorCisgIHBpbmdfcHJlcGFyZV9lY2hvKGllY2hvLCAodTE2X3QpcGluZ19zaXplKTsKKworI2lmIExXSVBfSVBWNAorICBpZihJUF9JU19WNChhZGRyKSkgeworICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqdG80ID0gKHN0cnVjdCBzb2NrYWRkcl9pbiopJnRvOworICAgIHRvNC0+c2luX2xlbiAgICA9IHNpemVvZigqdG80KTsKKyAgICB0bzQtPnNpbl9mYW1pbHkgPSBBRl9JTkVUOworICAgIGluZXRfYWRkcl9mcm9tX2lwNGFkZHIoJnRvNC0+c2luX2FkZHIsIGlwXzJfaXA0KGFkZHIpKTsKKyAgfQorI2VuZGlmIC8qIExXSVBfSVBWNCAqLworCisjaWYgTFdJUF9JUFY2CisgIGlmKElQX0lTX1Y2KGFkZHIpKSB7CisgICAgc3RydWN0IHNvY2thZGRyX2luNiAqdG82ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYqKSZ0bzsKKyAgICB0bzYtPnNpbjZfbGVuICAgID0gc2l6ZW9mKCp0bzYpOworICAgIHRvNi0+c2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKKyAgICBpbmV0Nl9hZGRyX2Zyb21faXA2YWRkcigmdG82LT5zaW42X2FkZHIsIGlwXzJfaXA2KGFkZHIpKTsKKyAgfQorI2VuZGlmIC8qIExXSVBfSVBWNiAqLworCisgIGVyciA9IGx3aXBfc2VuZHRvKHMsIGllY2hvLCBwaW5nX3NpemUsIDAsIChzdHJ1Y3Qgc29ja2FkZHIqKSZ0bywgc2l6ZW9mKHRvKSk7CisKKyAgbWVtX2ZyZWUoaWVjaG8pOworCisgIHJldHVybiAoZXJyID8gRVJSX09LIDogRVJSX1ZBTCk7Cit9CisKK3N0YXRpYyB2b2lkCitwaW5nX3JlY3YoaW50IHMpCit7CisgIGNoYXIgYnVmWzY0XTsKKyAgaW50IGxlbjsKKyAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgZnJvbTsKKyAgaW50IGZyb21sZW4gPSBzaXplb2YoZnJvbSk7CisKKyAgd2hpbGUoKGxlbiA9IGx3aXBfcmVjdmZyb20ocywgYnVmLCBzaXplb2YoYnVmKSwgMCwgKHN0cnVjdCBzb2NrYWRkciopJmZyb20sIChzb2NrbGVuX3QqKSZmcm9tbGVuKSkgPiAwKSB7CisgICAgaWYgKGxlbiA+PSAoaW50KShzaXplb2Yoc3RydWN0IGlwX2hkcikrc2l6ZW9mKHN0cnVjdCBpY21wX2VjaG9faGRyKSkpIHsKKyAgICAgIGlwX2FkZHJfdCBmcm9tYWRkcjsKKyAgICAgIG1lbXNldCgmZnJvbWFkZHIsIDAsIHNpemVvZihmcm9tYWRkcikpOworCisjaWYgTFdJUF9JUFY0CisgICAgICBpZihmcm9tLnNzX2ZhbWlseSA9PSBBRl9JTkVUKSB7CisgICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqZnJvbTQgPSAoc3RydWN0IHNvY2thZGRyX2luKikmZnJvbTsKKyAgICAgICAgaW5ldF9hZGRyX3RvX2lwNGFkZHIoaXBfMl9pcDQoJmZyb21hZGRyKSwgJmZyb200LT5zaW5fYWRkcik7CisgICAgICAgIElQX1NFVF9UWVBFX1ZBTChmcm9tYWRkciwgSVBBRERSX1RZUEVfVjQpOworICAgICAgfQorI2VuZGlmIC8qIExXSVBfSVBWNCAqLworCisjaWYgTFdJUF9JUFY2CisgICAgICBpZihmcm9tLnNzX2ZhbWlseSA9PSBBRl9JTkVUNikgeworICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42ICpmcm9tNiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW42KikmZnJvbTsKKyAgICAgICAgaW5ldDZfYWRkcl90b19pcDZhZGRyKGlwXzJfaXA2KCZmcm9tYWRkciksICZmcm9tNi0+c2luNl9hZGRyKTsKKyAgICAgICAgSVBfU0VUX1RZUEVfVkFMKGZyb21hZGRyLCBJUEFERFJfVFlQRV9WNik7CisgICAgICB9CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisKKyAgICAgIExXSVBfREVCVUdGKCBQSU5HX0RFQlVHLCAoInBpbmc6IHJlY3YgIikpOworICAgICAgaXBfYWRkcl9kZWJ1Z19wcmludF92YWwoUElOR19ERUJVRywgZnJvbWFkZHIpOworICAgICAgTFdJUF9ERUJVR0YoIFBJTkdfREVCVUcsICgiICUiVTMyX0YiIG1zXG4iLCAoc3lzX25vdygpIC0gcGluZ190aW1lKSkpOworCisgICAgICAvKiB0b2RvOiBzdXBwb3J0IElDTVA2IGVjaG8gKi8KKyNpZiBMV0lQX0lQVjQKKyAgICAgIGlmIChJUF9JU19WNF9WQUwoZnJvbWFkZHIpKSB7CisgICAgICAgIHN0cnVjdCBpcF9oZHIgKmlwaGRyOworICAgICAgICBzdHJ1Y3QgaWNtcF9lY2hvX2hkciAqaWVjaG87CisKKyAgICAgICAgaXBoZHIgPSAoc3RydWN0IGlwX2hkciAqKWJ1ZjsKKyAgICAgICAgaWVjaG8gPSAoc3RydWN0IGljbXBfZWNob19oZHIgKikoYnVmICsgKElQSF9ITChpcGhkcikgKiA0KSk7CisgICAgICAgIGlmICgoaWVjaG8tPmlkID09IFBJTkdfSUQpICYmIChpZWNoby0+c2Vxbm8gPT0gbHdpcF9odG9ucyhwaW5nX3NlcV9udW0pKSkgeworICAgICAgICAgIC8qIGRvIHNvbWUgcGluZyByZXN1bHQgcHJvY2Vzc2luZyAqLworICAgICAgICAgIFBJTkdfUkVTVUxUKChJQ01QSF9UWVBFKGllY2hvKSA9PSBJQ01QX0VSKSk7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIExXSVBfREVCVUdGKCBQSU5HX0RFQlVHLCAoInBpbmc6IGRyb3BcbiIpKTsKKyAgICAgICAgfQorICAgICAgfQorI2VuZGlmIC8qIExXSVBfSVBWNCAqLworICAgIH0KKyAgICBmcm9tbGVuID0gc2l6ZW9mKGZyb20pOworICB9CisKKyAgaWYgKGxlbiA9PSAwKSB7CisgICAgTFdJUF9ERUJVR0YoIFBJTkdfREVCVUcsICgicGluZzogcmVjdiAtICUiVTMyX0YiIG1zIC0gdGltZW91dFxuIiwgKHN5c19ub3coKS1waW5nX3RpbWUpKSk7CisgIH0KKworICAvKiBkbyBzb21lIHBpbmcgcmVzdWx0IHByb2Nlc3NpbmcgKi8KKyAgUElOR19SRVNVTFQoMCk7Cit9CisKK3N0YXRpYyB2b2lkCitwaW5nX3RocmVhZCh2b2lkICphcmcpCit7CisgIGludCBzOworICBpbnQgcmV0OworCisjaWYgTFdJUF9TT19TTkRSQ1ZUSU1FT19OT05TVEFOREFSRAorICBpbnQgdGltZW91dCA9IFBJTkdfUkNWX1RJTUVPOworI2Vsc2UKKyAgc3RydWN0IHRpbWV2YWwgdGltZW91dDsKKyAgdGltZW91dC50dl9zZWMgPSBQSU5HX1JDVl9USU1FTy8xMDAwOworICB0aW1lb3V0LnR2X3VzZWMgPSAoUElOR19SQ1ZfVElNRU8lMTAwMCkqMTAwMDsKKyNlbmRpZgorICBMV0lQX1VOVVNFRF9BUkcoYXJnKTsKKworI2lmIExXSVBfSVBWNgorICBpZihJUF9JU19WNChwaW5nX3RhcmdldCkgfHwgaXA2X2FkZHJfaXNpcHY0bWFwcGVkaXB2NihpcF8yX2lwNihwaW5nX3RhcmdldCkpKSB7CisgICAgcyA9IGx3aXBfc29ja2V0KEFGX0lORVQ2LCBTT0NLX1JBVywgSVBfUFJPVE9fSUNNUCk7CisgIH0gZWxzZSB7CisgICAgcyA9IGx3aXBfc29ja2V0KEFGX0lORVQ2LCBTT0NLX1JBVywgSVA2X05FWFRIX0lDTVA2KTsKKyAgfQorI2Vsc2UKKyAgcyA9IGx3aXBfc29ja2V0KEFGX0lORVQsICBTT0NLX1JBVywgSVBfUFJPVE9fSUNNUCk7CisjZW5kaWYKKyAgaWYgKHMgPCAwKSB7CisgICAgcmV0dXJuOworICB9CisKKyAgcmV0ID0gbHdpcF9zZXRzb2Nrb3B0KHMsIFNPTF9TT0NLRVQsIFNPX1JDVlRJTUVPLCAmdGltZW91dCwgc2l6ZW9mKHRpbWVvdXQpKTsKKyAgTFdJUF9BU1NFUlQoInNldHRpbmcgcmVjZWl2ZSB0aW1lb3V0IGZhaWxlZCIsIHJldCA9PSAwKTsKKyAgTFdJUF9VTlVTRURfQVJHKHJldCk7CisKKyAgd2hpbGUgKDEpIHsKKyAgICBpZiAocGluZ19zZW5kKHMsIHBpbmdfdGFyZ2V0KSA9PSBFUlJfT0spIHsKKyAgICAgIExXSVBfREVCVUdGKCBQSU5HX0RFQlVHLCAoInBpbmc6IHNlbmQgIikpOworICAgICAgaXBfYWRkcl9kZWJ1Z19wcmludChQSU5HX0RFQlVHLCBwaW5nX3RhcmdldCk7CisgICAgICBMV0lQX0RFQlVHRiggUElOR19ERUJVRywgKCJcbiIpKTsKKworI2lmZGVmIExXSVBfREVCVUcKKyAgICAgIHBpbmdfdGltZSA9IHN5c19ub3coKTsKKyNlbmRpZiAvKiBMV0lQX0RFQlVHICovCisgICAgICBwaW5nX3JlY3Yocyk7CisgICAgfSBlbHNlIHsKKyAgICAgIExXSVBfREVCVUdGKCBQSU5HX0RFQlVHLCAoInBpbmc6IHNlbmQgIikpOworICAgICAgaXBfYWRkcl9kZWJ1Z19wcmludChQSU5HX0RFQlVHLCBwaW5nX3RhcmdldCk7CisgICAgICBMV0lQX0RFQlVHRiggUElOR19ERUJVRywgKCIgLSBlcnJvclxuIikpOworICAgIH0KKyAgICBzeXNfbXNsZWVwKFBJTkdfREVMQVkpOworICB9Cit9CisKKyNlbHNlIC8qIFBJTkdfVVNFX1NPQ0tFVFMgKi8KKworLyogUGluZyB1c2luZyB0aGUgcmF3IGlwICovCitzdGF0aWMgdThfdAorcGluZ19yZWN2KHZvaWQgKmFyZywgc3RydWN0IHJhd19wY2IgKnBjYiwgc3RydWN0IHBidWYgKnAsIGNvbnN0IGlwX2FkZHJfdCAqYWRkcikKK3sKKyAgc3RydWN0IGljbXBfZWNob19oZHIgKmllY2hvOworICBMV0lQX1VOVVNFRF9BUkcoYXJnKTsKKyAgTFdJUF9VTlVTRURfQVJHKHBjYik7CisgIExXSVBfVU5VU0VEX0FSRyhhZGRyKTsKKyAgTFdJUF9BU1NFUlQoInAgIT0gTlVMTCIsIHAgIT0gTlVMTCk7CisKKyAgaWYgKChwLT50b3RfbGVuID49IChQQlVGX0lQX0hMRU4gKyBzaXplb2Yoc3RydWN0IGljbXBfZWNob19oZHIpKSkgJiYKKyAgICAgIHBidWZfcmVtb3ZlX2hlYWRlcihwLCBQQlVGX0lQX0hMRU4pID09IDApIHsKKyAgICBpZWNobyA9IChzdHJ1Y3QgaWNtcF9lY2hvX2hkciAqKXAtPnBheWxvYWQ7CisKKyAgICBpZiAoKGllY2hvLT5pZCA9PSBQSU5HX0lEKSAmJiAoaWVjaG8tPnNlcW5vID09IGx3aXBfaHRvbnMocGluZ19zZXFfbnVtKSkpIHsKKyAgICAgIExXSVBfREVCVUdGKCBQSU5HX0RFQlVHLCAoInBpbmc6IHJlY3YgIikpOworICAgICAgaXBfYWRkcl9kZWJ1Z19wcmludChQSU5HX0RFQlVHLCBhZGRyKTsKKyAgICAgIExXSVBfREVCVUdGKCBQSU5HX0RFQlVHLCAoIiAlIlUzMl9GIiBtc1xuIiwgKHN5c19ub3coKS1waW5nX3RpbWUpKSk7CisKKyAgICAgIC8qIGRvIHNvbWUgcGluZyByZXN1bHQgcHJvY2Vzc2luZyAqLworICAgICAgUElOR19SRVNVTFQoMSk7CisgICAgICBwYnVmX2ZyZWUocCk7CisgICAgICByZXR1cm4gMTsgLyogZWF0IHRoZSBwYWNrZXQgKi8KKyAgICB9CisgICAgLyogbm90IGVhdGVuLCByZXN0b3JlIG9yaWdpbmFsIHBhY2tldCAqLworICAgIHBidWZfYWRkX2hlYWRlcihwLCBQQlVGX0lQX0hMRU4pOworICB9CisKKyAgcmV0dXJuIDA7IC8qIGRvbid0IGVhdCB0aGUgcGFja2V0ICovCit9CisKK3N0YXRpYyB2b2lkCitwaW5nX3NlbmQoc3RydWN0IHJhd19wY2IgKnJhdywgY29uc3QgaXBfYWRkcl90ICphZGRyKQoreworICBzdHJ1Y3QgcGJ1ZiAqcDsKKyAgc3RydWN0IGljbXBfZWNob19oZHIgKmllY2hvOworICBzaXplX3QgcGluZ19zaXplID0gc2l6ZW9mKHN0cnVjdCBpY21wX2VjaG9faGRyKSArIFBJTkdfREFUQV9TSVpFOworCisgIExXSVBfREVCVUdGKCBQSU5HX0RFQlVHLCAoInBpbmc6IHNlbmQgIikpOworICBpcF9hZGRyX2RlYnVnX3ByaW50KFBJTkdfREVCVUcsIGFkZHIpOworICBMV0lQX0RFQlVHRiggUElOR19ERUJVRywgKCJcbiIpKTsKKyAgTFdJUF9BU1NFUlQoInBpbmdfc2l6ZSA8PSAweGZmZmYiLCBwaW5nX3NpemUgPD0gMHhmZmZmKTsKKworICBwID0gcGJ1Zl9hbGxvYyhQQlVGX0lQLCAodTE2X3QpcGluZ19zaXplLCBQQlVGX1JBTSk7CisgIGlmICghcCkgeworICAgIHJldHVybjsKKyAgfQorICBpZiAoKHAtPmxlbiA9PSBwLT50b3RfbGVuKSAmJiAocC0+bmV4dCA9PSBOVUxMKSkgeworICAgIGllY2hvID0gKHN0cnVjdCBpY21wX2VjaG9faGRyICopcC0+cGF5bG9hZDsKKworICAgIHBpbmdfcHJlcGFyZV9lY2hvKGllY2hvLCAodTE2X3QpcGluZ19zaXplKTsKKworICAgIHJhd19zZW5kdG8ocmF3LCBwLCBhZGRyKTsKKyNpZmRlZiBMV0lQX0RFQlVHCisgICAgcGluZ190aW1lID0gc3lzX25vdygpOworI2VuZGlmIC8qIExXSVBfREVCVUcgKi8KKyAgfQorICBwYnVmX2ZyZWUocCk7Cit9CisKK3N0YXRpYyB2b2lkCitwaW5nX3RpbWVvdXQodm9pZCAqYXJnKQoreworICBzdHJ1Y3QgcmF3X3BjYiAqcGNiID0gKHN0cnVjdCByYXdfcGNiKilhcmc7CisKKyAgTFdJUF9BU1NFUlQoInBpbmdfdGltZW91dDogbm8gcGNiIGdpdmVuISIsIHBjYiAhPSBOVUxMKTsKKworICBwaW5nX3NlbmQocGNiLCBwaW5nX3RhcmdldCk7CisKKyAgc3lzX3RpbWVvdXQoUElOR19ERUxBWSwgcGluZ190aW1lb3V0LCBwY2IpOworfQorCitzdGF0aWMgdm9pZAorcGluZ19yYXdfaW5pdCh2b2lkKQoreworICBwaW5nX3BjYiA9IHJhd19uZXcoSVBfUFJPVE9fSUNNUCk7CisgIExXSVBfQVNTRVJUKCJwaW5nX3BjYiAhPSBOVUxMIiwgcGluZ19wY2IgIT0gTlVMTCk7CisKKyAgcmF3X3JlY3YocGluZ19wY2IsIHBpbmdfcmVjdiwgTlVMTCk7CisgIHJhd19iaW5kKHBpbmdfcGNiLCBJUF9BRERSX0FOWSk7CisgIHN5c190aW1lb3V0KFBJTkdfREVMQVksIHBpbmdfdGltZW91dCwgcGluZ19wY2IpOworfQorCit2b2lkCitwaW5nX3NlbmRfbm93KHZvaWQpCit7CisgIExXSVBfQVNTRVJUKCJwaW5nX3BjYiAhPSBOVUxMIiwgcGluZ19wY2IgIT0gTlVMTCk7CisgIHBpbmdfc2VuZChwaW5nX3BjYiwgcGluZ190YXJnZXQpOworfQorCisjZW5kaWYgLyogUElOR19VU0VfU09DS0VUUyAqLworCit2b2lkCitwaW5nX2luaXQoY29uc3QgaXBfYWRkcl90KiBwaW5nX2FkZHIpCit7CisgIHBpbmdfdGFyZ2V0ID0gcGluZ19hZGRyOworCisjaWYgUElOR19VU0VfU09DS0VUUworICBzeXNfdGhyZWFkX25ldygicGluZ190aHJlYWQiLCBwaW5nX3RocmVhZCwgTlVMTCwgREVGQVVMVF9USFJFQURfU1RBQ0tTSVpFLCBERUZBVUxUX1RIUkVBRF9QUklPKTsKKyNlbHNlIC8qIFBJTkdfVVNFX1NPQ0tFVFMgKi8KKyAgcGluZ19yYXdfaW5pdCgpOworI2VuZGlmIC8qIFBJTkdfVVNFX1NPQ0tFVFMgKi8KK30KKworI2VuZGlmIC8qIExXSVBfUkFXICovCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvcGluZy9waW5nLmggYi9jb250cmliL2FwcHMvcGluZy9waW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWYyMWM3YgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9waW5nL3BpbmcuaApAQCAtMCwwICsxLDE5IEBACisjaWZuZGVmIExXSVBfUElOR19ICisjZGVmaW5lIExXSVBfUElOR19ICisKKyNpbmNsdWRlICJsd2lwL2lwX2FkZHIuaCIKKworLyoqCisgKiBQSU5HX1VTRV9TT0NLRVRTOiBTZXQgdG8gMSB0byB1c2Ugc29ja2V0cywgb3RoZXJ3aXNlIHRoZSByYXcgYXBpIGlzIHVzZWQKKyAqLworI2lmbmRlZiBQSU5HX1VTRV9TT0NLRVRTCisjZGVmaW5lIFBJTkdfVVNFX1NPQ0tFVFMgICAgTFdJUF9TT0NLRVQKKyNlbmRpZgorCit2b2lkIHBpbmdfaW5pdChjb25zdCBpcF9hZGRyX3QqIHBpbmdfYWRkcik7CisKKyNpZiAhUElOR19VU0VfU09DS0VUUwordm9pZCBwaW5nX3NlbmRfbm93KHZvaWQpOworI2VuZGlmIC8qICFQSU5HX1VTRV9TT0NLRVRTICovCisKKyNlbmRpZiAvKiBMV0lQX1BJTkdfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL3J0cC9ydHAuYyBiL2NvbnRyaWIvYXBwcy9ydHAvcnRwLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJlNjk3MwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9ydHAvcnRwLmMKQEAgLTAsMCArMSwzMDggQEAKKy8qKgorICogQGZpbGUKKyAqIFJUUCBjbGllbnQvc2VydmVyIG1vZHVsZQorICoKKyAqLworCisvKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICovCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorCisjaWYgTFdJUF9TT0NLRVQgJiYgTFdJUF9JR01QIC8qIGRvbid0IGJ1aWxkIGlmIG5vdCBjb25maWd1cmVkIGZvciB1c2UgaW4gbHdpcG9wdHMuaCAqLworCisjaW5jbHVkZSAibHdpcC9zeXMuaCIKKyNpbmNsdWRlICJsd2lwL3NvY2tldHMuaCIKKworI2luY2x1ZGUgInJ0cC5oIgorCisjaW5jbHVkZSAicnRwZGF0YS5oIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKy8qKiBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgYSAiUlRQIiBjbGllbnQvc2VydmVyIGJhc2VkIG9uIGEgTVBFRzQgYml0c3RyZWFtICh3aXRoIHNvY2tldCBBUEkpLgorICovCisKKy8qKgorICogUlRQX0RFQlVHOiBFbmFibGUgZGVidWdnaW5nIGZvciBSVFAuCisgKi8KKyNpZm5kZWYgUlRQX0RFQlVHCisjZGVmaW5lIFJUUF9ERUJVRyAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PTgorI2VuZGlmCisKKy8qKiBSVFAgc3RyZWFtIHBvcnQgKi8KKyNpZm5kZWYgUlRQX1NUUkVBTV9QT1JUCisjZGVmaW5lIFJUUF9TVFJFQU1fUE9SVCAgICAgICAgICAgICA0MDAwCisjZW5kaWYKKworLyoqIFJUUCBzdHJlYW0gbXVsdGljYXN0IGFkZHJlc3MgYXMgSVB2NCBhZGRyZXNzIGluICJ1MzJfdCIgZm9ybWF0ICovCisjaWZuZGVmIFJUUF9TVFJFQU1fQUREUkVTUworI2RlZmluZSBSVFBfU1RSRUFNX0FERFJFU1MgICAgICAgICAgaW5ldF9hZGRyKCIyMzIuMC4wLjAiKQorI2VuZGlmCisKKy8qKiBSVFAgc2VuZCBkZWxheSAtIGluIG1pbGxpc2Vjb25kcyAqLworI2lmbmRlZiBSVFBfU0VORF9ERUxBWQorI2RlZmluZSBSVFBfU0VORF9ERUxBWSAgICAgICAgICAgICAgNDAKKyNlbmRpZgorCisvKiogUlRQIHJlY2VpdmUgdGltZW91dCAtIGluIG1pbGxpc2Vjb25kcyAqLworI2lmbmRlZiBSVFBfUkVDVl9USU1FT1VUCisjZGVmaW5lIFJUUF9SRUNWX1RJTUVPVVQgICAgICAgICAgICAyMDAwCisjZW5kaWYKKworLyoqIFJUUCBzdGF0cyBkaXNwbGF5IHBlcmlvZCAtIGluIHJlY2VpdmVkIHBhY2tldHMgKi8KKyNpZm5kZWYgUlRQX1JFQ1ZfU1RBVFMKKyNkZWZpbmUgUlRQX1JFQ1ZfU1RBVFMgICAgICAgICAgICAgIDUwCisjZW5kaWYKKworLyoqIFJUUCBtYWNybyB0byBsZXQgdGhlIGFwcGxpY2F0aW9uIHByb2Nlc3MgdGhlIGRhdGEgKi8KKyNpZm5kZWYgUlRQX1JFQ1ZfUFJPQ0VTU0lORworI2RlZmluZSBSVFBfUkVDVl9QUk9DRVNTSU5HKHAscykKKyNlbmRpZgorCisvKiogUlRQIHBhY2tldC9wYXlsb2FkIHNpemUgKi8KKyNkZWZpbmUgUlRQX1BBQ0tFVF9TSVpFICAgICAgICAgICAgIDE1MDAKKyNkZWZpbmUgUlRQX1BBWUxPQURfU0laRSAgICAgICAgICAgIDEwMjQKKworLyoqIFJUUCBoZWFkZXIgY29uc3RhbnRzICovCisjZGVmaW5lIFJUUF9WRVJTSU9OICAgICAgICAgICAgICAgICAweDgwCisjZGVmaW5lIFJUUF9USU1FU1RBTVBfSU5DUkVNRU5UICAgICAzNjAwCisjZGVmaW5lIFJUUF9TU1JDICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJUUF9QQVlMT0FEVFlQRSAgICAgICAgICAgICA5NgorI2RlZmluZSBSVFBfTUFSS0VSX01BU0sgICAgICAgICAgICAgMHg4MAorCisvKiogUlRQIG1lc3NhZ2UgaGVhZGVyICovCisjaWZkZWYgUEFDS19TVFJVQ1RfVVNFX0lOQ0xVREVTCisjICBpbmNsdWRlICJhcmNoL2Jwc3RydWN0LmgiCisjZW5kaWYKK1BBQ0tfU1RSVUNUX0JFR0lOCitzdHJ1Y3QgcnRwX2hkciB7CisgIFBBQ0tfU1RSVUNUX0ZMRF84KHU4X3QgIHZlcnNpb24pOworICBQQUNLX1NUUlVDVF9GTERfOCh1OF90ICBwYXlsb2FkdHlwZSk7CisgIFBBQ0tfU1RSVUNUX0ZJRUxEKHUxNl90IHNlcU51bSk7CisgIFBBQ0tfU1RSVUNUX0ZJRUxEKHUzMl90IHRpbWVzdGFtcCk7CisgIFBBQ0tfU1RSVUNUX0ZJRUxEKHUzMl90IHNzcmMpOworfSBQQUNLX1NUUlVDVF9TVFJVQ1Q7CitQQUNLX1NUUlVDVF9FTkQKKyNpZmRlZiBQQUNLX1NUUlVDVF9VU0VfSU5DTFVERVMKKyMgIGluY2x1ZGUgImFyY2gvZXBzdHJ1Y3QuaCIKKyNlbmRpZgorCisvKiogUlRQIHBhY2tldHMgKi8KK3N0YXRpYyB1OF90IHJ0cF9zZW5kX3BhY2tldFtSVFBfUEFDS0VUX1NJWkVdOworc3RhdGljIHU4X3QgcnRwX3JlY3ZfcGFja2V0W1JUUF9QQUNLRVRfU0laRV07CisKKy8qKgorICogUlRQIHNlbmQgcGFja2V0cworICovCitzdGF0aWMgdm9pZAorcnRwX3NlbmRfcGFja2V0cyggaW50IHNvY2ssIHN0cnVjdCBzb2NrYWRkcl9pbiogdG8pCit7CisgIHN0cnVjdCBydHBfaGRyKiBydHBoZHI7CisgIHU4X3QqICAgICAgICAgICBydHBfcGF5bG9hZDsKKyAgc2l6ZV90ICAgICAgICAgIHJ0cF9wYXlsb2FkX3NpemU7CisgIHNpemVfdCAgICAgICAgICBydHBfZGF0YV9pbmRleDsKKworICAvKiBwcmVwYXJlIFJUUCBwYWNrZXQgKi8KKyAgcnRwaGRyID0gKHN0cnVjdCBydHBfaGRyKilydHBfc2VuZF9wYWNrZXQ7CisgIHJ0cGhkci0+dmVyc2lvbiAgICAgPSBSVFBfVkVSU0lPTjsKKyAgcnRwaGRyLT5wYXlsb2FkdHlwZSA9IDA7CisgIHJ0cGhkci0+c3NyYyAgICAgICAgPSBQUF9IVE9OTChSVFBfU1NSQyk7CisgIHJ0cGhkci0+dGltZXN0YW1wICAgPSBsd2lwX2h0b25sKGx3aXBfbnRvaGwocnRwaGRyLT50aW1lc3RhbXApICsgUlRQX1RJTUVTVEFNUF9JTkNSRU1FTlQpOworCisgIC8qIHNlbmQgUlRQIHN0cmVhbSBwYWNrZXRzICovCisgIHJ0cF9kYXRhX2luZGV4ID0gMDsKKyAgZG8geworICAgIHJ0cF9wYXlsb2FkICAgICAgPSBydHBfc2VuZF9wYWNrZXQrc2l6ZW9mKHN0cnVjdCBydHBfaGRyKTsKKyAgICBydHBfcGF5bG9hZF9zaXplID0gTFdJUF9NSU4oUlRQX1BBWUxPQURfU0laRSwgc2l6ZW9mKHJ0cF9kYXRhKSAtIHJ0cF9kYXRhX2luZGV4KTsKKworICAgIE1FTUNQWShydHBfcGF5bG9hZCwgcnRwX2RhdGEgKyBydHBfZGF0YV9pbmRleCwgcnRwX3BheWxvYWRfc2l6ZSk7CisKKyAgICAvKiBzZXQgTUFSS0VSIGJpdCBpbiBSVFAgaGVhZGVyIG9uIHRoZSBsYXN0IHBhY2tldCBvZiBhbiBpbWFnZSAqLworICAgIGlmICgocnRwX2RhdGFfaW5kZXggKyBydHBfcGF5bG9hZF9zaXplKSA+PSBzaXplb2YocnRwX2RhdGEpKSB7CisgICAgICBydHBoZHItPnBheWxvYWR0eXBlID0gUlRQX1BBWUxPQURUWVBFIHwgUlRQX01BUktFUl9NQVNLOworICAgIH0gZWxzZSB7CisgICAgICBydHBoZHItPnBheWxvYWR0eXBlID0gUlRQX1BBWUxPQURUWVBFOworICAgIH0KKworICAgIC8qIHNlbmQgUlRQIHN0cmVhbSBwYWNrZXQgKi8KKyAgICBpZiAobHdpcF9zZW5kdG8oc29jaywgcnRwX3NlbmRfcGFja2V0LCBzaXplb2Yoc3RydWN0IHJ0cF9oZHIpICsgcnRwX3BheWxvYWRfc2l6ZSwKKyAgICAgICAgMCwgKHN0cnVjdCBzb2NrYWRkciAqKXRvLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyKSkgPj0gMCkgeworICAgICAgcnRwaGRyLT5zZXFOdW0gID0gbHdpcF9odG9ucygodTE2X3QpKGx3aXBfbnRvaHMocnRwaGRyLT5zZXFOdW0pICsgMSkpOworICAgICAgcnRwX2RhdGFfaW5kZXggKz0gcnRwX3BheWxvYWRfc2l6ZTsKKyAgICB9IGVsc2UgeworICAgICAgTFdJUF9ERUJVR0YoUlRQX0RFQlVHLCAoInJ0cF9zZW5kZXI6IG5vdCBzZW5kdG89PSVpXG4iLCBlcnJubykpOworICAgIH0KKyAgfXdoaWxlIChydHBfZGF0YV9pbmRleCA8IHNpemVvZihydHBfZGF0YSkpOworfQorCisvKioKKyAqIFJUUCBzZW5kIHRocmVhZAorICovCitzdGF0aWMgdm9pZAorcnRwX3NlbmRfdGhyZWFkKHZvaWQgKmFyZykKK3sKKyAgaW50ICAgICAgICAgICAgICAgIHNvY2s7CisgIHN0cnVjdCBzb2NrYWRkcl9pbiBsb2NhbDsKKyAgc3RydWN0IHNvY2thZGRyX2luIHRvOworICB1MzJfdCAgICAgICAgICAgICAgcnRwX3N0cmVhbV9hZGRyZXNzOworCisgIExXSVBfVU5VU0VEX0FSRyhhcmcpOworCisgIC8qIGluaXRpYWxpemUgUlRQIHN0cmVhbSBhZGRyZXNzICovCisgIHJ0cF9zdHJlYW1fYWRkcmVzcyA9IFJUUF9TVFJFQU1fQUREUkVTUzsKKworICAvKiBpZiB3ZSBnb3QgYSB2YWxpZCBSVFAgc3RyZWFtIGFkZHJlc3MuLi4gKi8KKyAgaWYgKHJ0cF9zdHJlYW1fYWRkcmVzcyAhPSAwKSB7CisgICAgLyogY3JlYXRlIG5ldyBzb2NrZXQgKi8KKyAgICBzb2NrID0gbHdpcF9zb2NrZXQoQUZfSU5FVCwgU09DS19ER1JBTSwgMCk7CisgICAgaWYgKHNvY2sgPj0gMCkgeworICAgICAgLyogcHJlcGFyZSBsb2NhbCBhZGRyZXNzICovCisgICAgICBtZW1zZXQoJmxvY2FsLCAwLCBzaXplb2YobG9jYWwpKTsKKyAgICAgIGxvY2FsLnNpbl9mYW1pbHkgICAgICA9IEFGX0lORVQ7CisgICAgICBsb2NhbC5zaW5fcG9ydCAgICAgICAgPSBQUF9IVE9OUyhJTkFERFJfQU5ZKTsKKyAgICAgIGxvY2FsLnNpbl9hZGRyLnNfYWRkciA9IFBQX0hUT05MKElOQUREUl9BTlkpOworCisgICAgICAvKiBiaW5kIHRvIGxvY2FsIGFkZHJlc3MgKi8KKyAgICAgIGlmIChsd2lwX2JpbmQoc29jaywgKHN0cnVjdCBzb2NrYWRkciAqKSZsb2NhbCwgc2l6ZW9mKGxvY2FsKSkgPT0gMCkgeworICAgICAgICAvKiBwcmVwYXJlIFJUUCBzdHJlYW0gYWRkcmVzcyAqLworICAgICAgICBtZW1zZXQoJnRvLCAwLCBzaXplb2YodG8pKTsKKyAgICAgICAgdG8uc2luX2ZhbWlseSAgICAgID0gQUZfSU5FVDsKKyAgICAgICAgdG8uc2luX3BvcnQgICAgICAgID0gUFBfSFRPTlMoUlRQX1NUUkVBTV9QT1JUKTsKKyAgICAgICAgdG8uc2luX2FkZHIuc19hZGRyID0gcnRwX3N0cmVhbV9hZGRyZXNzOworCisgICAgICAgIC8qIHNlbmQgUlRQIHBhY2tldHMgKi8KKyAgICAgICAgbWVtc2V0KHJ0cF9zZW5kX3BhY2tldCwgMCwgc2l6ZW9mKHJ0cF9zZW5kX3BhY2tldCkpOworICAgICAgICB3aGlsZSAoMSkgeworICAgICAgICAgIHJ0cF9zZW5kX3BhY2tldHMoIHNvY2ssICZ0byk7CisgICAgICAgICAgc3lzX21zbGVlcChSVFBfU0VORF9ERUxBWSk7CisgICAgICAgIH0KKyAgICAgIH0KKworICAgICAgLyogY2xvc2UgdGhlIHNvY2tldCAqLworICAgICAgbHdpcF9jbG9zZShzb2NrKTsKKyAgICB9CisgIH0KK30KKworLyoqCisgKiBSVFAgcmVjdiB0aHJlYWQKKyAqLworc3RhdGljIHZvaWQKK3J0cF9yZWN2X3RocmVhZCh2b2lkICphcmcpCit7CisgIGludCAgICAgICAgICAgICAgICBzb2NrOworICBzdHJ1Y3Qgc29ja2FkZHJfaW4gbG9jYWw7CisgIHN0cnVjdCBzb2NrYWRkcl9pbiBmcm9tOworICBpbnQgICAgICAgICAgICAgICAgZnJvbWxlbjsKKyAgc3RydWN0IGlwX21yZXEgICAgIGlwbXJlcTsKKyAgc3RydWN0IHJ0cF9oZHIqICAgIHJ0cGhkcjsKKyAgdTMyX3QgICAgICAgICAgICAgIHJ0cF9zdHJlYW1fYWRkcmVzczsKKyAgaW50ICAgICAgICAgICAgICAgIHRpbWVvdXQ7CisgIGludCAgICAgICAgICAgICAgICByZXN1bHQ7CisgIGludCAgICAgICAgICAgICAgICByZWN2cnRwcGFja2V0cyAgPSAwOworICBpbnQgICAgICAgICAgICAgICAgbG9zdHJ0cHBhY2tldHMgID0gMDsKKyAgdTE2X3QgICAgICAgICAgICAgIGxhc3RydHBzZXEgPSAwOworCisgIExXSVBfVU5VU0VEX0FSRyhhcmcpOworCisgIC8qIGluaXRpYWxpemUgUlRQIHN0cmVhbSBhZGRyZXNzICovCisgIHJ0cF9zdHJlYW1fYWRkcmVzcyA9IFJUUF9TVFJFQU1fQUREUkVTUzsKKworICAvKiBpZiB3ZSBnb3QgYSB2YWxpZCBSVFAgc3RyZWFtIGFkZHJlc3MuLi4gKi8KKyAgaWYgKHJ0cF9zdHJlYW1fYWRkcmVzcyAhPSAwKSB7CisgICAgLyogY3JlYXRlIG5ldyBzb2NrZXQgKi8KKyAgICBzb2NrID0gbHdpcF9zb2NrZXQoQUZfSU5FVCwgU09DS19ER1JBTSwgMCk7CisgICAgaWYgKHNvY2sgPj0gMCkgeworICAgICAgLyogcHJlcGFyZSBsb2NhbCBhZGRyZXNzICovCisgICAgICBtZW1zZXQoJmxvY2FsLCAwLCBzaXplb2YobG9jYWwpKTsKKyAgICAgIGxvY2FsLnNpbl9mYW1pbHkgICAgICA9IEFGX0lORVQ7CisgICAgICBsb2NhbC5zaW5fcG9ydCAgICAgICAgPSBQUF9IVE9OUyhSVFBfU1RSRUFNX1BPUlQpOworICAgICAgbG9jYWwuc2luX2FkZHIuc19hZGRyID0gUFBfSFRPTkwoSU5BRERSX0FOWSk7CisKKyAgICAgIC8qIGJpbmQgdG8gbG9jYWwgYWRkcmVzcyAqLworICAgICAgaWYgKGx3aXBfYmluZChzb2NrLCAoc3RydWN0IHNvY2thZGRyICopJmxvY2FsLCBzaXplb2YobG9jYWwpKSA9PSAwKSB7CisgICAgICAgIC8qIHNldCByZWN2IHRpbWVvdXQgKi8KKyAgICAgICAgdGltZW91dCA9IFJUUF9SRUNWX1RJTUVPVVQ7CisgICAgICAgIHJlc3VsdCA9IGx3aXBfc2V0c29ja29wdChzb2NrLCBTT0xfU09DS0VULCBTT19SQ1ZUSU1FTywgKGNoYXIgKikmdGltZW91dCwgc2l6ZW9mKHRpbWVvdXQpKTsKKyAgICAgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAgIExXSVBfREVCVUdGKFJUUF9ERUJVRywgKCJydHBfcmVjdl90aHJlYWQ6IHNldHNvY2tvcHQoU09fUkNWVElNRU8pIGZhaWxlZDogZXJybm89JWRcbiIsIGVycm5vKSk7CisgICAgICAgIH0KKworICAgICAgICAvKiBwcmVwYXJlIG11bHRpY2FzdCAiaXBfbXJlcSIgc3RydWN0ICovCisgICAgICAgIGlwbXJlcS5pbXJfbXVsdGlhZGRyLnNfYWRkciA9IHJ0cF9zdHJlYW1fYWRkcmVzczsKKyAgICAgICAgaXBtcmVxLmltcl9pbnRlcmZhY2Uuc19hZGRyID0gUFBfSFRPTkwoSU5BRERSX0FOWSk7CisKKyAgICAgICAgLyogam9pbiBtdWx0aWNhc3QgZ3JvdXAgKi8KKyAgICAgICAgaWYgKGx3aXBfc2V0c29ja29wdChzb2NrLCBJUFBST1RPX0lQLCBJUF9BRERfTUVNQkVSU0hJUCwgJmlwbXJlcSwgc2l6ZW9mKGlwbXJlcSkpID09IDApIHsKKyAgICAgICAgICAvKiByZWNlaXZlIFJUUCBwYWNrZXRzICovCisgICAgICAgICAgd2hpbGUoMSkgeworICAgICAgICAgICAgZnJvbWxlbiA9IHNpemVvZihmcm9tKTsKKyAgICAgICAgICAgIHJlc3VsdCAgPSBsd2lwX3JlY3Zmcm9tKHNvY2ssIHJ0cF9yZWN2X3BhY2tldCwgc2l6ZW9mKHJ0cF9yZWN2X3BhY2tldCksIDAsCisgICAgICAgICAgICAgIChzdHJ1Y3Qgc29ja2FkZHIgKikmZnJvbSwgKHNvY2tsZW5fdCAqKSZmcm9tbGVuKTsKKyAgICAgICAgICAgIGlmICgocmVzdWx0ID4gMCkgJiYgKChzaXplX3QpcmVzdWx0ID49IHNpemVvZihzdHJ1Y3QgcnRwX2hkcikpKSB7CisgICAgICAgICAgICAgIHNpemVfdCByZWN2ZWQgPSAoc2l6ZV90KXJlc3VsdDsKKyAgICAgICAgICAgICAgcnRwaGRyID0gKHN0cnVjdCBydHBfaGRyICopcnRwX3JlY3ZfcGFja2V0OworICAgICAgICAgICAgICByZWN2cnRwcGFja2V0cysrOworICAgICAgICAgICAgICBpZiAoKGxhc3RydHBzZXEgPT0gMCkgfHwgKChsYXN0cnRwc2VxICsgMSkgPT0gbHdpcF9udG9ocyhydHBoZHItPnNlcU51bSkpKSB7CisgICAgICAgICAgICAgICAgUlRQX1JFQ1ZfUFJPQ0VTU0lORygocnRwX3JlY3ZfcGFja2V0ICsgc2l6ZW9mKHJ0cF9oZHIpKSwgKHJlY3ZlZC1zaXplb2YocnRwX2hkcikpKTsKKyAgICAgICAgICAgICAgICBMV0lQX1VOVVNFRF9BUkcocmVjdmVkKTsgLyoganVzdCBpbiBjYXNlLi4uICovCisgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbG9zdHJ0cHBhY2tldHMrKzsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBsYXN0cnRwc2VxID0gbHdpcF9udG9ocyhydHBoZHItPnNlcU51bSk7CisgICAgICAgICAgICAgIGlmICgocmVjdnJ0cHBhY2tldHMgJSBSVFBfUkVDVl9TVEFUUykgPT0gMCkgeworICAgICAgICAgICAgICAgIExXSVBfREVCVUdGKFJUUF9ERUJVRywgKCJydHBfcmVjdl90aHJlYWQ6IHJlY3YgJTZpIHBhY2tldChzKSAvIGxvc3QgJTRpIHBhY2tldChzKSAoJS40ZiUlKS4uLlxuIiwgcmVjdnJ0cHBhY2tldHMsIGxvc3RydHBwYWNrZXRzLCAobG9zdHJ0cHBhY2tldHMqMTAwLjApL3JlY3ZydHBwYWNrZXRzKSk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIExXSVBfREVCVUdGKFJUUF9ERUJVRywgKCJydHBfcmVjdl90aHJlYWQ6IHJlY3YgdGltZW91dC4uLlxuIikpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAgICAgICAgIC8qIGxlYXZlIG11bHRpY2FzdCBncm91cCAqLworICAgICAgICAgIC8qIFRPRE86IHRoaXMgY29kZSBpcyBuZXZlciByZWFjaGVkCisgICAgICAgICAgcmVzdWx0ID0gbHdpcF9zZXRzb2Nrb3B0KHNvY2ssIElQUFJPVE9fSVAsIElQX0RST1BfTUVNQkVSU0hJUCwgJmlwbXJlcSwgc2l6ZW9mKGlwbXJlcSkpOworICAgICAgICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgICAgIExXSVBfREVCVUdGKFJUUF9ERUJVRywgKCJydHBfcmVjdl90aHJlYWQ6IHNldHNvY2tvcHQoSVBfRFJPUF9NRU1CRVJTSElQKSBmYWlsZWQ6IGVycm5vPSVkXG4iLCBlcnJubykpOworICAgICAgICAgIH0qLworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIC8qIGNsb3NlIHRoZSBzb2NrZXQgKi8KKyAgICAgIGx3aXBfY2xvc2Uoc29jayk7CisgICAgfQorICB9Cit9CisKK3ZvaWQKK3J0cF9pbml0KHZvaWQpCit7CisgIHN5c190aHJlYWRfbmV3KCJydHBfc2VuZF90aHJlYWQiLCBydHBfc2VuZF90aHJlYWQsIE5VTEwsIERFRkFVTFRfVEhSRUFEX1NUQUNLU0laRSwgREVGQVVMVF9USFJFQURfUFJJTyk7CisgIHN5c190aHJlYWRfbmV3KCJydHBfcmVjdl90aHJlYWQiLCBydHBfcmVjdl90aHJlYWQsIE5VTEwsIERFRkFVTFRfVEhSRUFEX1NUQUNLU0laRSwgREVGQVVMVF9USFJFQURfUFJJTyk7Cit9CisKKyNlbmRpZiAvKiBMV0lQX1NPQ0tFVCAmJiBMV0lQX0lHTVAgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9ydHAvcnRwLmggYi9jb250cmliL2FwcHMvcnRwL3J0cC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1M2Q4OWIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvcnRwL3J0cC5oCkBAIC0wLDAgKzEsOCBAQAorI2lmbmRlZiBMV0lQX1JUUF9ICisjZGVmaW5lIExXSVBfUlRQX0gKKworI2lmIExXSVBfU09DS0VUICYmIExXSVBfSUdNUAordm9pZCBydHBfaW5pdCh2b2lkKTsKKyNlbmRpZiAvKiBMV0lQX1NPQ0tFVCAmJiBMV0lQX0lHTVAgKi8KKworI2VuZGlmIC8qIExXSVBfUlRQX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9ydHAvcnRwZGF0YS5oIGIvY29udHJpYi9hcHBzL3J0cC9ydHBkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZmZjM0NAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9ydHAvcnRwZGF0YS5oCkBAIC0wLDAgKzEsMjA0MCBAQAorY29uc3QgdW5zaWduZWQgY2hhciBydHBfZGF0YVtdID0geworICAweDAwLCAweDAwLCAweDAxLCAweGIwLCAweGY1LCAweDAwLCAweDAwLCAweDAxLAorICAweGI1LCAweDA5LCAweDAwLCAweDAwLCAweDAxLCAweDAwLCAweDAwLCAweDAwLAorICAweDAxLCAweDIwLCAweDAwLCAweDg2LCAweDg0LCAweDAwLCAweDY3LCAweDBjLAorICAweDJjLCAweDEwLCAweDkwLCAweDUxLCAweDhmLCAweDAwLCAweDAwLCAweDAxLAorICAweGIyLCAweDQ0LCAweDY5LCAweDc2LCAweDU4LCAweDM1LCAweDMwLCAweDMzLAorICAweDYyLCAweDMxLCAweDMzLCAweDM5LCAweDMzLCAweDcwLCAweDAwLCAweDAwLAorICAweDAxLCAweGIyLCAweDU4LCAweDc2LCAweDY5LCAweDQ0LCAweDMwLCAweDMwLAorICAweDMzLCAweDM5LCAweDAwLCAweDAwLCAweDAxLCAweGI2LCAweDE4LCAweDYwLAorICAweGFiLCAweDk0LCAweDAzLCAweGMwLCAweGNhLCAweGMwLCAweDNlLCAweGQwLAorICAweDc4LCAweDRmLCAweGY5LCAweDQ0LCAweDkxLCAweGU5LCAweGZhLCAweGM5LAorICAweGZlLCAweGExLCAweGE0LCAweGMxLCAweDY2LCAweDAzLCAweDJlLCAweDM5LAorICAweDBjLCAweDdlLCAweDBlLCAweGFhLCAweDAyLCAweDkyLCAweGY4LCAweGQ1LAorICAweGVjLCAweGUyLCAweDM1LCAweGI5LCAweDM1LCAweDBjLCAweGIzLCAweDgyLAorICAweGE2LCAweGFkLCAweGQwLCAweGQxLCAweGNhLCAweGI4LCAweGU4LCAweDEwLAorICAweDU1LCAweDc4LCAweDAzLCAweGMwLCAweDM4LCAweDE1LCAweGJhLCAweGNlLAorICAweGUyLCAweGVhLCAweDAwLCAweGMzLCAweDYwLCAweGIxLCAweDcwLCAweGY0LAorICAweDE0LCAweDZjLCAweDM1LCAweDRkLCAweGU4LCAweDVhLCAweDFlLCAweDU4LAorICAweGRmLCAweDAzLCAweDAxLCAweGZkLCAweDJhLCAweDQ1LCAweDU0LCAweGNhLAorICAweDBmLCAweDA1LCAweDAwLCAweGJkLCAweGQwLCAweGNjLCAweGI0LCAweDkwLAorICAweDRjLCAweDI0LCAweDZiLCAweDIwLCAweDMwLCAweDk1LCAweGYxLCAweDJmLAorICAweGI0LCAweGE3LCAweDgzLCAweGRjLCAweGNlLCAweDAzLCAweDA1LCAweDAyLAorICAweDFhLCAweDVkLCAweDFhLCAweDJjLCAweGJmLCAweDUxLCAweDI4LCAweDhiLAorICAweGQ3LCAweDZiLCAweGRkLCAweGY5LCAweDQ0LCAweGJiLCAweDBlLCAweDkxLAorICAweDY0LCAweGI5LCAweGE2LCAweDMzLCAweGQzLCAweDZlLCAweDM0LCAweGE0LAorICAweGFjLCAweGFjLCAweDUzLCAweDBkLCAweDc5LCAweGJlLCAweGFlLCAweDViLAorICAweDQ3LCAweDJlLCAweGRlLCAweDYyLCAweGExLCAweDUzLCAweGNkLCAweDdkLAorICAweGZlLCAweDY2LCAweGExLCAweDJiLCAweDljLCAweGUxLCAweGNhLCAweGJjLAorICAweGVhLCAweDg0LCAweDFjLCAweDY4LCAweGZmLCAweGJiLCAweDI4LCAweGExLAorICAweDI2LCAweDE4LCAweDk5LCAweGIxLCAweDRmLCAweDY4LCAweDgwLCAweDI4LAorICAweDBlLCAweDIwLCAweGMzLCAweGJmLCAweDBmLCAweDgwLCAweGY4LCAweDkwLAorICAweDNiLCAweDFmLCAweDE2LCAweGU0LCAweGIwLCAweDZmLCAweDQ0LCAweDE2LAorICAweDM4LCAweGI4LCAweGMzLCAweDgxLCAweDIyLCAweGZhLCAweGUzLCAweDA5LAorICAweGY2LCAweDYxLCAweDZkLCAweGVmLCAweDY3LCAweDU2LCAweDNiLCAweDU3LAorICAweGI1LCAweDIzLCAweDAzLCAweDFmLCAweDZkLCAweDBkLCAweGI5LCAweDA4LAorICAweGM2LCAweDQzLCAweGJhLCAweGQxLCAweDQwLCAweDVhLCAweGU4LCAweGNhLAorICAweDllLCAweDE3LCAweDFmLCAweDZkLCAweDVkLCAweDE2LCAweDk4LCAweGFiLAorICAweGU2LCAweDk5LCAweGY2LCAweDM3LCAweGM2LCAweDFiLCAweGRjLCAweGI5LAorICAweGIzLCAweGZlLCAweDlhLCAweDRiLCAweDFlLCAweGVjLCAweGY5LCAweDVmLAorICAweGI4LCAweGM3LCAweGZjLCAweGJlLCAweDZjLCAweGQ1LCAweGYzLCAweDliLAorICAweDE3LCAweDhiLCAweDg5LCAweDgyLCAweGZmLCAweDMwLCAweDE5LCAweDIwLAorICAweDMwLCAweGU2LCAweDI5LCAweDk2LCAweDc1LCAweDc1LCAweGViLCAweDAwLAorICAweDNmLCAweGExLCAweDIwLCAweDViLCAweDA2LCAweDExLCAweDk4LCAweDFmLAorICAweGIyLCAweGFkLCAweDNhLCAweDU5LCAweGU2LCAweDdkLCAweDM4LCAweGE0LAorICAweGIxLCAweDRmLCAweGZlLCAweGRmLCAweDNhLCAweDRiLCAweGRiLCAweDY5LAorICAweGMzLCAweDkzLCAweGNjLCAweGRmLCAweDVlLCAweGY3LCAweDJhLCAweDM4LAorICAweDJhLCAweDg5LCAweDg0LCAweDgwLCAweDZjLCAweDEyLCAweDQ0LCAweDk1LAorICAweDc4LCAweGQ4LCAweDdlLCAweDNmLCAweDRlLCAweGNmLCAweDNmLCAweDM5LAorICAweGJhLCAweDlmLCAweGZhLCAweDhmLCAweDJmLCAweDYyLCAweGZhLCAweGYwLAorICAweGI2LCAweDIwLCAweGE3LCAweDA2LCAweDAyLCAweDNmLCAweDI4LCAweDk2LAorICAweDgwLCAweGYwLCAweDk5LCAweDhlLCAweDgyLCAweDE1LCAweDExLCAweDg3LAorICAweDM1LCAweGE0LCAweGZkLCAweDUzLCAweGNiLCAweGNkLCAweDY4LCAweDM4LAorICAweGU4LCAweGRiLCAweDhkLCAweGMyLCAweDcxLCAweGJjLCAweDY1LCAweDNlLAorICAweGFjLCAweDViLCAweDBkLCAweGFlLCAweGMwLCAweDNjLCAweDc3LCAweGZlLAorICAweGU4LCAweGRlLCAweDNjLCAweGJkLCAweGRiLCAweGIzLCAweDM5LCAweDA5LAorICAweDU2LCAweDBhLCAweGEyLCAweGZlLCAweDQwLCAweGQ3LCAweDZmLCAweDU2LAorICAweDA3LCAweDAyLCAweGVjLCAweGQ2LCAweGVkLCAweDA2LCAweDVlLCAweDJmLAorICAweGI2LCAweGNlLCAweGYxLCAweDRmLCAweDE2LCAweDg4LCAweDA0LCAweDQxLAorICAweDc5LCAweDBlLCAweDk4LCAweGJlLCAweDU0LCAweDc1LCAweDFhLCAweGQ2LAorICAweDUwLCAweGNmLCAweDgyLCAweDZhLCAweGY3LCAweGFmLCAweDdmLCAweGZiLAorICAweDZkLCAweDg4LCAweDk3LCAweDI0LCAweDQwLCAweDY4LCAweGEwLCAweDU3LAorICAweDc5LCAweDU3LCAweGU5LCAweDZiLCAweGFhLCAweGU1LCAweGU0LCAweDJiLAorICAweGFhLCAweDE0LCAweDY0LCAweDkwLCAweDZjLCAweDUwLCAweDRhLCAweGUzLAorICAweDk3LCAweDQzLCAweGY2LCAweDgxLCAweDkwLCAweGE5LCAweGE2LCAweGJhLAorICAweGIxLCAweDIxLCAweDEyLCAweDVmLCAweGUwLCAweGRmLCAweDg4LCAweDg2LAorICAweDAzLCAweDMwLCAweDk0LCAweGIyLCAweDZkLCAweGQyLCAweGRjLCAweDQ1LAorICAweDE0LCAweDU0LCAweDFkLCAweGU4LCAweDM4LCAweDhkLCAweGJlLCAweDhhLAorICAweGFmLCAweDIwLCAweGEyLCAweDNlLCAweGEyLCAweDVjLCAweGM2LCAweGFlLAorICAweGU2LCAweGM0LCAweDQ4LCAweGVjLCAweGVhLCAweGM3LCAweDRlLCAweDE3LAorICAweGIyLCAweDkxLCAweDUyLCAweGI0LCAweGU5LCAweDhiLCAweDE1LCAweGZiLAorICAweDk5LCAweDdjLCAweGRhLCAweGI4LCAweGFkLCAweDU3LCAweDMxLCAweDViLAorICAweDViLCAweDY3LCAweGFhLCAweDFlLCAweDkzLCAweDc2LCAweGE1LCAweDI1LAorICAweGQ5LCAweDBkLCAweDcwLCAweGQ4LCAweGI5LCAweDExLCAweDM0LCAweGZkLAorICAweGFmLCAweDBlLCAweDBkLCAweDQyLCAweDU3LCAweDk3LCAweDI2LCAweDA2LAorICAweGRmLCAweDI5LCAweDdlLCAweDc5LCAweDcyLCAweDIyLCAweDM2LCAweGE1LAorICAweDlmLCAweDZhLCAweDE2LCAweDI0LCAweDZmLCAweDEwLCAweDU2LCAweGVjLAorICAweDViLCAweDQ2LCAweDUwLCAweDk0LCAweDg4LCAweGM0LCAweGZhLCAweDllLAorICAweGQ4LCAweDViLCAweGI3LCAweDUwLCAweDcyLCAweDYyLCAweDI1LCAweGFhLAorICAweDM5LCAweDg0LCAweDY5LCAweGFhLCAweGZjLCAweGJmLCAweDliLCAweDQ1LAorICAweGY3LCAweGM1LCAweDQxLCAweDk3LCAweDQxLCAweGM3LCAweGFjLCAweDdmLAorICAweDY4LCAweDkyLCAweGFiLCAweDY0LCAweGFhLCAweDQ2LCAweDMyLCAweDg0LAorICAweDc3LCAweDFiLCAweGZjLCAweGJjLCAweDVhLCAweDQyLCAweDI4LCAweGZhLAorICAweDNlLCAweDU1LCAweGY0LCAweGU5LCAweDQ0LCAweGFjLCAweGM1LCAweDRhLAorICAweDZjLCAweDkzLCAweGRlLCAweDAzLCAweDZkLCAweGRjLCAweGI4LCAweDViLAorICAweGI3LCAweDgzLCAweDdlLCAweGMyLCAweGFhLCAweDMzLCAweDcwLCAweDM0LAorICAweDQxLCAweDQ2LCAweDI1LCAweGE1LCAweDZmLCAweGRiLCAweDk2LCAweDBmLAorICAweGQzLCAweGFiLCAweGQ0LCAweDE3LCAweDY1LCAweDk2LCAweDBjLCAweDFlLAorICAweDM5LCAweDRjLCAweDlkLCAweDkwLCAweDNmLCAweDViLCAweDhkLCAweGFhLAorICAweGNlLCAweGFjLCAweGE2LCAweDUwLCAweGYwLCAweDY2LCAweGIyLCAweDMwLAorICAweGNlLCAweDQyLCAweDYxLCAweGFhLCAweGI2LCAweDdlLCAweGNhLCAweGJmLAorICAweGZkLCAweGJmLCAweGVmLCAweDUxLCAweGVkLCAweGRmLCAweDk1LCAweDBiLAorICAweGE3LCAweDM0LCAweDI0LCAweDEzLCAweDYyLCAweDQ0LCAweDgxLCAweGRmLAorICAweDNhLCAweDhlLCAweDk1LCAweDkxLCAweDY3LCAweGQ3LCAweDU3LCAweDU0LAorICAweDkyLCAweDFkLCAweDc5LCAweGEzLCAweDJhLCAweGYzLCAweDBjLCAweDdhLAorICAweDEyLCAweGE4LCAweDMzLCAweGY5LCAweDA1LCAweDAyLCAweDdiLCAweGVmLAorICAweDEyLCAweDE4LCAweGFiLCAweDhiLCAweDQwLCAweDM4LCAweDdlLCAweDBjLAorICAweDFmLCAweDA0LCAweDMwLCAweDYyLCAweGE4LCAweGQ1LCAweGQ5LCAweDc4LAorICAweGRkLCAweDFjLCAweGI0LCAweDU3LCAweGMxLCAweDgzLCAweGM0LCAweDQxLAorICAweDA4LCAweDcyLCAweDVjLCAweGMyLCAweGI2LCAweGQzLCAweGQ0LCAweDg1LAorICAweDRhLCAweDdlLCAweDU4LCAweGMzLCAweDE5LCAweGZhLCAweGRkLCAweDUxLAorICAweDAzLCAweDg1LCAweDFkLCAweGU5LCAweDEwLCAweDVlLCAweDhjLCAweDhmLAorICAweDQxLCAweDAzLCAweGU5LCAweGJjLCAweGE4LCAweGJhLCAweGViLCAweDczLAorICAweDdkLCAweDg1LCAweDY5LCAweGM3LCAweDNiLCAweGQ5LCAweDQ5LCAweDBiLAorICAweDM5LCAweDAzLCAweDEyLCAweDExLCAweDhiLCAweDcyLCAweDk3LCAweDYyLAorICAweDVmLCAweGZlLCAweDU5LCAweDRkLCAweGMwLCAweDNhLCAweGRmLCAweGNiLAorICAweDNlLCAweDgwLCAweDM5LCAweGQ1LCAweDdhLCAweGIxLCAweDQ1LCAweDg2LAorICAweDA2LCAweGY2LCAweGI2LCAweGRhLCAweDk4LCAweGExLCAweDQxLCAweGFlLAorICAweDEyLCAweGQzLCAweGQxLCAweDcxLCAweDVhLCAweGE1LCAweDQwLCAweGMwLAorICAweDhhLCAweDNmLCAweDRlLCAweGFjLCAweDc4LCAweDkzLCAweDU1LCAweDMxLAorICAweGZjLCAweGNmLCAweDY3LCAweDkzLCAweDUyLCAweGM0LCAweDUzLCAweDBkLAorICAweGRmLCAweDQ5LCAweGQ3LCAweDgzLCAweDAwLCAweDE4LCAweDRiLCAweGNkLAorICAweDY1LCAweGFmLCAweGI1LCAweGQ1LCAweDZjLCAweGM0LCAweDE0LCAweGI3LAorICAweGRiLCAweDlkLCAweDA2LCAweDE3LCAweGNhLCAweGUxLCAweDYwLCAweDA3LAorICAweDZkLCAweDU3LCAweGQwLCAweGZiLCAweDFhLCAweGY1LCAweGIyLCAweDU2LAorICAweGNhLCAweGVhLCAweDIxLCAweDc3LCAweDQxLCAweGMwLCAweDQ2LCAweGM4LAorICAweDg1LCAweGUzLCAweDE1LCAweDZhLCAweGRiLCAweDgwLCAweDQ3LCAweDZkLAorICAweDA1LCAweDQ0LCAweDA2LCAweDA0LCAweGY2LCAweDkyLCAweDI0LCAweGRiLAorICAweDliLCAweDZmLCAweGZhLCAweDhkLCAweDcyLCAweDJkLCAweDc1LCAweDdlLAorICAweDMzLCAweDljLCAweGU3LCAweDA2LCAweGJiLCAweDNkLCAweGE0LCAweGI3LAorICAweGVlLCAweDMxLCAweDQ2LCAweDRiLCAweDkxLCAweGUyLCAweGIwLCAweDU0LAorICAweDVjLCAweDc4LCAweDllLCAweDQ1LCAweDkwLCAweGU0LCAweDc2LCAweGJlLAorICAweGUxLCAweDRjLCAweGFlLCAweDg5LCAweDIwLCAweDZlLCAweDc3LCAweDc2LAorICAweDk0LCAweDYzLCAweDkzLCAweGFhLCAweDYyLCAweDBlLCAweDI4LCAweDdiLAorICAweGVjLCAweGM5LCAweGM1LCAweDI1LCAweDY0LCAweDVhLCAweGU5LCAweGNjLAorICAweDkxLCAweDFhLCAweDljLCAweGNmLCAweDkxLCAweDQ3LCAweDMyLCAweDEyLAorICAweDlmLCAweDhiLCAweDM2LCAweDA3LCAweDMzLCAweDRjLCAweDQ1LCAweDA2LAorICAweDE5LCAweGRiLCAweDYxLCAweGM1LCAweDY4LCAweGI3LCAweGFiLCAweDJlLAorICAweDdiLCAweDVjLCAweGE2LCAweDRjLCAweDZlLCAweDA4LCAweDVmLCAweGMxLAorICAweGM0LCAweDk5LCAweDY0LCAweGVmLCAweGQ4LCAweDA1LCAweDVjLCAweDBmLAorICAweDc2LCAweGRkLCAweGFiLCAweDRmLCAweDhlLCAweDI5LCAweDU0LCAweDU5LAorICAweDFkLCAweDMwLCAweDMzLCAweGZiLCAweDNiLCAweDQzLCAweDk2LCAweGY0LAorICAweDUyLCAweDQ3LCAweDJjLCAweDY2LCAweDgxLCAweGNhLCAweGE2LCAweDczLAorICAweDUxLCAweGMxLCAweGMwLCAweDMyLCAweDk4LCAweGEzLCAweDQxLCAweDFjLAorICAweDQwLCAweDVlLCAweDIyLCAweDA1LCAweGEwLCAweGRiLCAweGIwLCAweDg4LAorICAweGRmLCAweGVlLCAweDJmLCAweDNhLCAweGJiLCAweGUyLCAweGVmLCAweDc5LAorICAweDA5LCAweGE2LCAweDBjLCAweDBmLCAweDRjLCAweGRjLCAweDgxLCAweGNjLAorICAweDNkLCAweDM2LCAweDUyLCAweDRlLCAweGJkLCAweDQ0LCAweDBkLCAweDBkLAorICAweDg0LCAweGY1LCAweDc0LCAweDMzLCAweDE0LCAweDFhLCAweDg3LCAweGNiLAorICAweGNjLCAweDkzLCAweGEzLCAweDY5LCAweDIxLCAweDIwLCAweDI2LCAweDIzLAorICAweGQ5LCAweDk1LCAweDBjLCAweDIyLCAweDJiLCAweDJmLCAweDBkLCAweGY0LAorICAweDM0LCAweDc0LCAweDUzLCAweDE2LCAweDVkLCAweDYwLCAweDk2LCAweDNlLAorICAweDUzLCAweGQzLCAweGNjLCAweGM1LCAweDcyLCAweDQ5LCAweGMyLCAweDRkLAorICAweGVhLCAweDAyLCAweDIxLCAweDdmLCAweGJkLCAweDgwLCAweDFkLCAweGYwLAorICAweDg3LCAweGU2LCAweGRiLCAweGNjLCAweDkyLCAweGRkLCAweGZlLCAweDc4LAorICAweDRhLCAweGQyLCAweGY5LCAweDc3LCAweDI0LCAweGVkLCAweDVhLCAweDMxLAorICAweDZjLCAweGVjLCAweDcxLCAweDVkLCAweDg1LCAweGFkLCAweGIzLCAweGI5LAorICAweDZmLCAweDExLCAweDJkLCAweGZhLCAweDQyLCAweDJiLCAweGNiLCAweDAxLAorICAweDA4LCAweDE4LCAweDExLCAweDU2LCAweGNiLCAweDAxLCAweGUxLCAweGUwLAorICAweDFmLCAweDA2LCAweGU4LCAweDNjLCAweDZjLCAweDAxLCAweGFhLCAweDQ5LAorICAweDg2LCAweGJmLCAweDYzLCAweDc5LCAweDAzLCAweGJlLCAweGQ4LCAweDQ3LAorICAweDRmLCAweDI2LCAweDBkLCAweDExLCAweGUzLCAweDc2LCAweDI3LCAweDBlLAorICAweGYxLCAweDc5LCAweDQ0LCAweDQ2LCAweGMzLCAweDNiLCAweDRmLCAweDA1LAorICAweDIwLCAweDQwLCAweGZmLCAweDU5LCAweDZmLCAweGFhLCAweDE3LCAweGY0LAorICAweDQwLCAweGExLCAweDE1LCAweDBhLCAweDRjLCAweDBmLCAweDk0LCAweDgxLAorICAweGI4LCAweDBjLCAweDhlLCAweDhkLCAweGMzLCAweDgwLCAweGMxLCAweGViLAorICAweDAyLCAweDE2LCAweGY0LCAweGJlLCAweGNhLCAweGE0LCAweDNhLCAweGE4LAorICAweGVjLCAweDBjLCAweDg5LCAweGM0LCAweDU5LCAweGU0LCAweDhiLCAweDlhLAorICAweDQwLCAweDdlLCAweGFlLCAweGVhLCAweGEwLCAweGViLCAweDZhLCAweDk5LAorICAweDk1LCAweDczLCAweDc5LCAweDYyLCAweDE4LCAweGI4LCAweDM4LCAweDY0LAorICAweDczLCAweDk3LCAweGI3LCAweDU4LCAweGQxLCAweDJkLCAweDhkLCAweGJlLAorICAweGYzLCAweDEzLCAweDJmLCAweDdjLCAweGMwLCAweDFkLCAweDYxLCAweDRlLAorICAweDRjLCAweGU2LCAweDk1LCAweGNlLCAweDk3LCAweGY5LCAweGJjLCAweGY0LAorICAweDVhLCAweGNlLCAweGExLCAweDNiLCAweDM5LCAweGVmLCAweGM1LCAweDM5LAorICAweDRiLCAweDcyLCAweDFiLCAweGE1LCAweDQxLCAweDkyLCAweDI3LCAweGRhLAorICAweDcyLCAweGMyLCAweGJiLCAweGQ0LCAweDhkLCAweDM0LCAweDk3LCAweDlkLAorICAweGI3LCAweGRlLCAweGU3LCAweGIwLCAweDY0LCAweDhhLCAweDBhLCAweDBjLAorICAweDBlLCAweDYwLCAweDMwLCAweDYyLCAweGI4LCAweGJiLCAweDlmLCAweDk2LAorICAweDA1LCAweDMxLCAweDMzLCAweGZhLCAweDNjLCAweDFmLCAweGY0LCAweDNkLAorICAweDA0LCAweDNjLCAweDVjLCAweDFlLCAweDFiLCAweGZlLCAweGYxLCAweGZlLAorICAweGExLCAweGIxLCAweDAzLCAweDU0LCAweDk5LCAweDUwLCAweDYxLCAweGM1LAorICAweGJjLCAweDJkLCAweDAwLCAweGZlLCAweGFmLCAweDAxLCAweGUxLCAweDdmLAorICAweGViLCAweGQ0LCAweDc3LCAweDBkLCAweGI0LCAweDBhLCAweDljLCAweDE4LAorICAweDkyLCAweDNkLCAweDVhLCAweGJmLCAweGMwLCAweDk4LCAweDY2LCAweGNjLAorICAweDA2LCAweDA5LCAweDZhLCAweDUwLCAweGU5LCAweDE4LCAweDMyLCAweDAwLAorICAweDc4LCAweGM4LCAweDA2LCAweDY4LCAweGFjLCAweDhiLCAweDNmLCAweDM4LAorICAweGJmLCAweDRhLCAweDMzLCAweDMwLCAweDFjLCAweDRmLCAweGFlLCAweDE2LAorICAweDQ0LCAweDk4LCAweDI0LCAweDA4LCAweGM5LCAweDA3LCAweGVkLCAweDYyLAorICAweGJiLCAweDg5LCAweDE1LCAweGNhLCAweDBmLCAweDA5LCAweDAwLCAweDdhLAorICAweDUxLCAweGM1LCAweDkzLCAweDU0LCAweDQ1LCAweGZiLCAweDczLCAweGRmLAorICAweGU5LCAweDQyLCAweDA3LCAweDkwLCAweDEwLCAweGNiLCAweGRiLCAweDJiLAorICAweDQ3LCAweDIwLCAweDJiLCAweGFhLCAweGY0LCAweDVjLCAweGE0LCAweDI4LAorICAweDM4LCAweDlkLCAweDVhLCAweDQ0LCAweDIyLCAweDBkLCAweDU0LCAweDgxLAorICAweDFkLCAweDA3LCAweDBhLCAweDM3LCAweGVlLCAweDQ5LCAweDhiLCAweGZiLAorICAweDNhLCAweDhkLCAweDdlLCAweDgzLCAweDg0LCAweGZkLCAweGY3LCAweDk4LAorICAweGFkLCAweGFjLCAweGE3LCAweDQ2LCAweDA3LCAweDYyLCAweDcyLCAweDU2LAorICAweDFjLCAweDAzLCAweDA1LCAweDRkLCAweDcwLCAweGQ4LCAweDYwLCAweDYyLAorICAweDhhLCAweDhkLCAweGU4LCAweDIzLCAweDAzLCAweDA0LCAweDZkLCAweDYwLAorICAweGRjLCAweDJhLCAweDI3LCAweDkyLCAweDA4LCAweDhmLCAweDY1LCAweGVkLAorICAweGJkLCAweGNhLCAweGE1LCAweDFkLCAweDgwLCAweDhkLCAweDExLCAweDAzLAorICAweDgzLCAweGM3LCAweDA1LCAweDA0LCAweDg1LCAweGNkLCAweDJmLCAweDNhLAorICAweGQ0LCAweDgzLCAweDAyLCAweDkxLCAweDkxLCAweGM1LCAweDc2LCAweGI1LAorICAweDc5LCAweGNiLCAweGZiLCAweDI5LCAweDIyLCAweDkwLCAweDFlLCAweDA5LAorICAweDlmLCAweDJjLCAweDA3LCAweDc3LCAweGEwLCAweDM4LCAweGY4LCAweDYzLAorICAweGY1LCAweDJhLCAweGQ0LCAweGM1LCAweDBmLCAweGQ3LCAweDQzLCAweDM4LAorICAweGI1LCAweGU4LCAweDM4LCAweDk0LCAweDI5LCAweDcxLCAweDY4LCAweGI0LAorICAweDk5LCAweDBhLCAweDRkLCAweGY2LCAweDk0LCAweDlkLCAweDhlLCAweDk2LAorICAweDU4LCAweDg4LCAweDYzLCAweDQ2LCAweDAyLCAweDlkLCAweDY0LCAweDgzLAorICAweDcwLCAweDcyLCAweDMyLCAweDZmLCAweDkwLCAweDFkLCAweDBlLCAweGQ1LAorICAweGY1LCAweGQ5LCAweDBkLCAweGU4LCAweDBmLCAweGEzLCAweDIwLCAweDVmLAorICAweDI2LCAweDU5LCAweGMzLCAweDUwLCAweDMzLCAweDA0LCAweGM5LCAweDBjLAorICAweGM4LCAweGEyLCAweGNlLCAweDEyLCAweDQzLCAweDQ0LCAweGEzLCAweDU1LAorICAweGU1LCAweDA3LCAweDA1LCAweDFhLCAweDY5LCAweGE4LCAweGM0LCAweDM5LAorICAweDkyLCAweGEyLCAweDQ0LCAweDBlLCAweDA4LCAweGUwLCAweGEyLCAweDRhLAorICAweDI4LCAweGQ3LCAweDgwLCAweGUxLCAweDM3LCAweDk2LCAweDBjLCAweDQ5LAorICAweDI4LCAweDBmLCAweDNjLCAweGM4LCAweGUyLCAweGMxLCAweDVkLCAweDRmLAorICAweGQ0LCAweDQ4LCAweGEyLCAweDIxLCAweDU5LCAweGYxLCAweDBkLCAweDlmLAorICAweGFhLCAweGM2LCAweDc3LCAweGM4LCAweGU1LCAweGNlLCAweDBkLCAweGNhLAorICAweDAyLCAweDg3LCAweDRhLCAweDQ5LCAweDAxLCAweGM4LCAweDQ4LCAweGM4LAorICAweGYzLCAweDFiLCAweDJmLCAweGRmLCAweDZjLCAweGNiLCAweDg4LCAweDY2LAorICAweGYxLCAweDQwLCAweGJkLCAweDZhLCAweDM0LCAweGZjLCAweGIwLCAweDg5LAorICAweGRlLCAweDExLCAweGM1LCAweGM2LCAweGEyLCAweDQ0LCAweGM2LCAweGRiLAorICAweDY3LCAweGZmLCAweGQxLCAweDc5LCAweDAxLCAweGE0LCAweDllLCAweGYwLAorICAweDFmLCAweDEwLCAweDU3LCAweDJiLCAweDI0LCAweGM1LCAweDFjLCAweDA5LAorICAweDQ1LCAweDdlLCAweGNjLCAweDU1LCAweGU1LCAweDBkLCAweDY0LCAweGUyLAorICAweDJjLCAweGU0LCAweGVhLCAweGU0LCAweDgxLCAweDMxLCAweGZkLCAweDYxLAorICAweDM4LCAweDhmLCAweGJhLCAweDFmLCAweGI0LCAweGQ5LCAweDZjLCAweGE4LAorICAweGFjLCAweGU0LCAweGU4LCAweGNhLCAweDllLCAweGVlLCAweGE5LCAweDUxLAorICAweGQ3LCAweGU5LCAweDlkLCAweGNjLCAweGIwLCAweDdjLCAweDI0LCAweGM1LAorICAweDEzLCAweGEwLCAweDg5LCAweDc4LCAweDBiLCAweDE1LCAweGQxLCAweDA5LAorICAweGU0LCAweGJmLCAweDM0LCAweDZmLCAweGNmLCAweDBiLCAweDgyLCAweDUxLAorICAweGIzLCAweDcwLCAweDdkLCAweDgzLCAweGUxLCAweDI0LCAweDBkLCAweDMzLAorICAweGFkLCAweGRhLCAweDVkLCAweGZlLCAweGU3LCAweDM4LCAweDU0LCAweDUyLAorICAweDBlLCAweDNkLCAweGQ1LCAweGVjLCAweGVmLCAweDBiLCAweDA1LCAweGUxLAorICAweDE2LCAweGE5LCAweDQ1LCAweGVjLCAweDVmLCAweDgxLCAweGI5LCAweGM4LAorICAweGZmLCAweDM2LCAweDBlLCAweDBlLCAweDAxLCAweDgxLCAweDMxLCAweGFlLAorICAweDRiLCAweDM1LCAweGQ4LCAweDE4LCAweDE3LCAweDhjLCAweDMzLCAweDdhLAorICAweGEyLCAweGVlLCAweDA2LCAweDViLCAweGQ4LCAweDBiLCAweDA3LCAweGIwLAorICAweDUyLCAweGJlLCAweGY2LCAweGY0LCAweDM4LCAweGVjLCAweDM1LCAweDZlLAorICAweDQ1LCAweGMxLCAweDVlLCAweDUxLCAweGQzLCAweDY3LCAweDkzLCAweDZkLAorICAweGFmLCAweGQwLCAweGUwLCAweDJhLCAweGVhLCAweDZhLCAweDFlLCAweDAzLAorICAweDBjLCAweDM4LCAweGE0LCAweDM4LCAweGVhLCAweDM0LCAweDQxLCAweDk5LAorICAweGNiLCAweGUwLCAweGNkLCAweGRhLCAweGYyLCAweGVlLCAweDg2LCAweDI4LAorICAweDgzLCAweDM4LCAweDBiLCAweDEzLCAweGQxLCAweDczLCAweDFlLCAweDRmLAorICAweGI1LCAweDE4LCAweDdkLCAweGVmLCAweGVkLCAweDA5LCAweGRmLCAweGY3LAorICAweDRhLCAweDkxLCAweGRiLCAweDQxLCAweDg0LCAweGY3LCAweDA3LCAweDE0LAorICAweDE1LCAweDNiLCAweDAxLCAweGM1LCAweDI4LCAweDQxLCAweDc4LCAweDlmLAorICAweGY2LCAweDkyLCAweGNlLCAweDA2LCAweGUwLCAweGI5LCAweDlkLCAweGEwLAorICAweGVlLCAweGYwLCAweDI1LCAweGE5LCAweGQ0LCAweGUwLCAweDcxLCAweGI0LAorICAweDY2LCAweDBjLCAweDExLCAweDQ3LCAweDAxLCAweDg5LCAweDM0LCAweDYyLAorICAweDExLCAweDYwLCAweDI3LCAweGEwLCAweGZiLCAweDFmLCAweGZlLCAweGQxLAorICAweDUwLCAweDZlLCAweDBlLCAweDIzLCAweGMzLCAweGQ4LCAweDBlLCAweGU4LAorICAweDUzLCAweGE3LCAweDk0LCAweDAzLCAweDEyLCAweDQxLCAweDlhLCAweDkwLAorICAweDk3LCAweGNlLCAweDg3LCAweDBkLCAweDQyLCAweDlkLCAweDA3LCAweGNlLAorICAweGZmLCAweGVmLCAweDRlLCAweDA3LCAweDFhLCAweDMxLCAweDA4LCAweDkyLAorICAweDk4LCAweDBjLCAweDQ5LCAweDQ2LCAweDc0LCAweDIyLCAweDJhLCAweGYxLAorICAweDAxLCAweDUxLCAweDQ4LCAweDI2LCAweGU5LCAweGY1LCAweGNkLCAweGIwLAorICAweDBjLCAweDJlLCAweGExLCAweDNkLCAweDI5LCAweDA1LCAweDRmLCAweGEwLAorICAweDEyLCAweDA2LCAweDA4LCAweDljLCAweDk0LCAweDA4LCAweDYwLCAweGNlLAorICAweGQwLCAweDk2LCAweDgxLCAweDgxLCAweDE4LCAweDYyLCAweDAzLCAweGNjLAorICAweGJhLCAweDE1LCAweGQ2LCAweDkxLCAweDExLCAweDE0LCAweDdlLCAweGIyLAorICAweDdlLCAweGQ0LCAweDU2LCAweDc0LCAweDM3LCAweGRjLCAweDgyLCAweGZiLAorICAweDIxLCAweGExLCAweDkzLCAweDkxLCAweDYwLCAweDNkLCAweGNiLCAweDI4LAorICAweDRiLCAweDUyLCAweGU5LCAweDI2LCAweDRhLCAweDBjLCAweDMyLCAweGNhLAorICAweDMxLCAweGFiLCAweDEwLCAweDE5LCAweDZlLCAweDc2LCAweDUwLCAweDFlLAorICAweDdjLCAweDg5LCAweDJmLCAweDQyLCAweDRhLCAweDQ2LCAweGY4LCAweGIxLAorICAweDVlLCAweGRjLCAweGJlLCAweDgxLCAweDRhLCAweDBjLCAweDRlLCAweDZhLAorICAweDMxLCAweDcwLCAweGQ0LCAweDE3LCAweDYyLCAweDMwLCAweGY4LCAweGJiLAorICAweGFhLCAweGJhLCAweDA2LCAweDk4LCAweGY0LCAweDA1LCAweDQwLCAweDdjLAorICAweDhlLCAweDgxLCAweDIyLCAweGM3LCAweDhiLCAweGYyLCAweDY3LCAweDQ5LAorICAweDY0LCAweDU4LCAweDFjLCAweGI4LCAweGEwLCAweDZkLCAweGI5LCAweGVhLAorICAweDViLCAweDExLCAweDQ3LCAweDE4LCAweGU3LCAweGQwLCAweGJjLCAweGNlLAorICAweGYzLCAweDlkLCAweDE5LCAweDEwLCAweDkyLCAweDk1LCAweDQ1LCAweDQ3LAorICAweDc4LCAweDg3LCAweDgxLCAweDMyLCAweDZiLCAweGMwLCAweGU1LCAweDdhLAorICAweDc5LCAweDI1LCAweDM3LCAweDBkLCAweDA1LCAweDA2LCAweDczLCAweDM5LAorICAweDUwLCAweDlmLCAweDhmLCAweDVkLCAweDA5LCAweDI0LCAweDM0LCAweDMyLAorICAweDE4LCAweDA0LCAweDYyLCAweDljLCAweGU4LCAweDFlLCAweDA2LCAweDUyLAorICAweDg4LCAweDFlLCAweDI2LCAweDAxLCAweDMwLCAweDM2LCAweDgxLCAweDYwLAorICAweDYzLCAweDQxLCAweDZhLCAweDc3LCAweGE4LCAweDQyLCAweGQ0LCAweGJhLAorICAweDFmLCAweDBlLCAweDc5LCAweDA2LCAweDJkLCAweDE2LCAweDgzLCAweDAwLAorICAweGUzLCAweGU2LCAweGNiLCAweGJhLCAweDgyLCAweDRhLCAweDI3LCAweGQ3LAorICAweDVlLCAweGRjLCAweDU4LCAweDQ0LCAweDE5LCAweDI4LCAweDBjLCAweGM3LAorICAweDJmLCAweDU3LCAweGIyLCAweDgzLCAweDgzLCAweDQwLCAweGNjLCAweDFjLAorICAweGI4LCAweDk5LCAweDQxLCAweGI5LCAweGIwLCAweGM4LCAweDFmLCAweDM2LAorICAweDAwLCAweDc1LCAweDE0LCAweGE5LCAweDI1LCAweDM0LCAweDg3LCAweDgzLAorICAweDA1LCAweDEzLCAweDE2LCAweDdkLCAweDkxLCAweDQwLCAweDNiLCAweDljLAorICAweGU4LCAweDM4LCAweDU3LCAweDE3LCAweGQyLCAweDAzLCAweGMwLCAweGZmLAorICAweDRlLCAweDBjLCAweDFmLCAweDE2LCAweDk2LCAweGMwLCAweGUzLCAweDhkLAorICAweDYyLCAweDc1LCAweGI4LCAweDA0LCAweGFlLCAweDAzLCAweDgwLCAweDg4LAorICAweGExLCAweDU2LCAweDMxLCAweDU3LCAweDY2LCAweDJkLCAweDhhLCAweGVmLAorICAweDExLCAweDZmLCAweGNhLCAweGU5LCAweDQ3LCAweDc5LCAweGQwLCAweDlkLAorICAweDBjLCAweGIwLCAweDE4LCAweDQ3LCAweDA2LCAweDAzLCAweDU3LCAweDJjLAorICAweGRhLCAweDhmLCAweDRhLCAweDgwLCAweGQ5LCAweGEwLCAweDYyLCAweDgwLAorICAweDYwLCAweDRkLCAweDk1LCAweDE4LCAweDhjLCAweDE4LCAweDQ1LCAweGNiLAorICAweDE3LCAweGFkLCAweDM0LCAweGEzLCAweGQyLCAweGExLCAweGI1LCAweGQzLAorICAweDMyLCAweGQ5LCAweGRiLCAweGQxLCAweDgyLCAweDk4LCAweDE4LCAweDgzLAorICAweGE5LCAweGNkLCAweGI1LCAweDIwLCAweDc3LCAweDAzLCAweDVjLCAweDVmLAorICAweGE2LCAweGRiLCAweDQ4LCAweDEyLCAweGQ3LCAweDQ2LCAweGM4LCAweGQxLAorICAweDc4LCAweDFjLCAweDFkLCAweDE3LCAweDA0LCAweDkxLCAweGU4LCAweGJjLAorICAweDJhLCAweGEwLCAweDUzLCAweDgzLCAweDExLCAweDI5LCAweGZmLCAweDE4LAorICAweGZlLCAweDhkLCAweDk4LCAweDZlLCAweGFkLCAweDExLCAweDY1LCAweGEwLAorICAweGM4LCAweDNjLCAweDQ4LCAweDQ4LCAweDEzLCAweDU1LCAweDI4LCAweGY1LAorICAweDYxLCAweDlkLCAweGUwLCAweDM4LCAweDVlLCAweDEyLCAweGMwLCAweDcwLAorICAweDQ0LCAweGJmLCAweDZmLCAweDI1LCAweDlkLCAweDJiLCAweGNmLCAweGI2LAorICAweDc5LCAweDNkLCAweGNmLCAweDQ1LCAweDMyLCAweGE4LCAweDE5LCAweDY3LAorICAweDNhLCAweDE0LCAweDQzLCAweDZkLCAweDdkLCAweGExLCAweDA0LCAweGI3LAorICAweDNlLCAweGQzLCAweDc1LCAweDQ1LCAweDJhLCAweDZhLCAweDZkLCAweGIyLAorICAweDEyLCAweDg3LCAweDkwLCAweGEwLCAweDZiLCAweGJmLCAweDFhLCAweDViLAorICAweGI3LCAweDE0LCAweGQwLCAweDI2LCAweDg4LCAweDVlLCAweGI4LCAweDRkLAorICAweDcwLCAweDE5LCAweDY1LCAweDM2LCAweGRkLCAweDljLCAweDQwLCAweDdhLAorICAweGJmLCAweDIxLCAweGM4LCAweDM4LCAweDM4LCAweDAxLCAweGNhLCAweDFlLAorICAweGM1LCAweGVlLCAweGIzLCAweDQwLCAweGMwLCAweDlhLCAweGQ2LCAweDI0LAorICAweGE3LCAweGI0LCAweDZiLCAweDA2LCAweDE4LCAweGZjLCAweDFjLCAweDExLAorICAweGFmLCAweDZkLCAweGNjLCAweGJkLCAweDVlLCAweGM4LCAweDhlLCAweDA3LAorICAweGJjLCAweGUwLCAweDUyLCAweDhmLCAweDlhLCAweGIxLCAweDc0LCAweDQwLAorICAweGU0LCAweDYzLCAweDIwLCAweDk5LCAweDRmLCAweGE4LCAweGJjLCAweDBlLAorICAweGYyLCAweDg2LCAweDgwLCAweGVhLCAweDA5LCAweDhhLCAweGVjLCAweGRkLAorICAweGU3LCAweDM5LCAweDQ5LCAweDZlLCAweGM0LCAweDVjLCAweDVkLCAweDBkLAorICAweDQ1LCAweGQxLCAweDdiLCAweDhiLCAweGQ1LCAweGFmLCAweDQzLCAweDE3LAorICAweGU5LCAweDQ5LCAweGFjLCAweDZkLCAweDEwLCAweGE2LCAweDRlLCAweDVlLAorICAweGE4LCAweGM4LCAweDIwLCAweGNhLCAweDU0LCAweDhlLCAweGExLCAweDE1LAorICAweGI1LCAweDBkLCAweGEwLCAweDY2LCAweDcwLCAweDkzLCAweDZmLCAweDAxLAorICAweGM0LCAweDJiLCAweGMxLCAweDQ2LCAweGJkLCAweDc0LCAweDk2LCAweDA1LAorICAweDc1LCAweDUwLCAweGMwLCAweGMzLCAweDhiLCAweDIyLCAweDI1LCAweDA3LAorICAweDFkLCAweGY2LCAweDcwLCAweDkyLCAweDJkLCAweDE3LCAweDA5LCAweGNiLAorICAweGVmLCAweGJkLCAweDg4LCAweGQ2LCAweDQ2LCAweDdiLCAweGJkLCAweGEwLAorICAweGU3LCAweGU5LCAweGM3LCAweDA5LCAweDAxLCAweGMwLCAweGIxLCAweDI5LAorICAweDNhLCAweGMxLCAweGRkLCAweDA1LCAweGQyLCAweDZhLCAweDYwLCAweDczLAorICAweDA2LCAweDU0LCAweDI2LCAweDg0LCAweDBiLCAweDIyLCAweDQyLCAweDdlLAorICAweDBkLCAweDYyLCAweGZlLCAweGM1LCAweGI4LCAweDMwLCAweDNhLCAweGEyLAorICAweDVmLCAweDViLCAweGVlLCAweDZjLCAweGMyLCAweDUwLCAweDdhLCAweDE4LAorICAweDAwLCAweGRmLCAweDg2LCAweDQxLCAweDk3LCAweDE2LCAweDNkLCAweGQ5LAorICAweGNiLCAweDA5LCAweDQ2LCAweDQwLCAweGIwLCAweDA0LCAweGU1LCAweGEwLAorICAweGJiLCAweGE5LCAweDhkLCAweDg0LCAweGE2LCAweGQ0LCAweGI3LCAweDUzLAorICAweGIyLCAweGRmLCAweDMzLCAweDE2LCAweDQxLCAweDM4LCAweDJmLCAweDNjLAorICAweGE4LCAweDIxLCAweGVmLCAweDNlLCAweGQ2LCAweGNkLCAweDhiLCAweGY5LAorICAweDFmLCAweDAzLCAweDdhLCAweDI5LCAweDE4LCAweDg0LCAweDI2LCAweDdmLAorICAweGUxLCAweGRmLCAweDk4LCAweDFjLCAweDM2LCAweDU4LCAweGRjLCAweDUxLAorICAweGRlLCAweDJkLCAweDM1LCAweDFmLCAweDY5LCAweGE3LCAweDBhLCAweDgyLAorICAweDA4LCAweGU5LCAweDU5LCAweDdmLCAweDJiLCAweDRhLCAweDM5LCAweDI1LAorICAweDk2LCAweDVmLCAweGYxLCAweDA4LCAweGE2LCAweDViLCAweDRiLCAweDY3LAorICAweDUxLCAweDEyLCAweGYwLCAweGYyLCAweGFlLCAweDY4LCAweGJiLCAweDcyLAorICAweGVmLCAweDBhLCAweGI2LCAweDAyLCAweGJkLCAweDE0LCAweDQyLCAweDM3LAorICAweDFiLCAweDgwLCAweGUyLCAweDNhLCAweGI3LCAweGI0LCAweDFjLCAweDBhLAorICAweDliLCAweGEwLCAweGVhLCAweDExLCAweDIxLCAweDRiLCAweDA3LCAweGM5LAorICAweDkzLCAweGI3LCAweDdiLCAweGQxLCAweDEzLCAweDhkLCAweDYyLCAweGZkLAorICAweDI4LCAweGJkLCAweDQ0LCAweDBlLCAweDBmLCAweDRlLCAweDQ5LCAweGI0LAorICAweDQzLCAweDExLCAweGMwLCAweDM4LCAweDM4LCAweDA4LCAweGQyLCAweGQ5LAorICAweDJlLCAweDJjLCAweDAzLCAweDlmLCAweGE3LCAweGQ2LCAweDM3LCAweDQ2LAorICAweDAxLCAweDFmLCAweDU4LCAweDU2LCAweGMwLCAweDljLCAweDA3LCAweDBjLAorICAweDlkLCAweGJhLCAweDBhLCAweDlhLCAweDE1LCAweGQ0LCAweDYzLCAweDZhLAorICAweDEzLCAweDY5LCAweGUwLCAweDZmLCAweDRjLCAweGQwLCAweDUzLCAweGMwLAorICAweGY2LCAweDZmLCAweDNjLCAweGI3LCAweDdkLCAweGNiLCAweDNiLCAweDQwLAorICAweDhlLCAweGZhLCAweDA0LCAweDQ4LCAweDE2LCAweDM1LCAweDhiLCAweDdkLAorICAweGJjLCAweDgxLCAweGFhLCAweGIyLCAweGU4LCAweGJmLCAweDdhLCAweDBjLAorICAweDFjLCAweGZlLCAweDg2LCAweDI2LCAweDhlLCAweDg2LCAweDI1LCAweDgzLAorICAweDlkLCAweDA3LCAweDExLCAweGNmLCAweGI4LCAweDViLCAweDg4LCAweGU5LAorICAweDVlLCAweDEyLCAweDIxLCAweDEzLCAweGVkLCAweGIxLCAweGZhLCAweDBjLAorICAweDg3LCAweGYwLCAweGEzLCAweDk2LCAweDA1LCAweDc1LCAweDMzLCAweDdhLAorICAweDNkLCAweDFmLCAweDA5LCAweDQ5LCAweDU4LCAweDU2LCAweDlkLCAweDk1LAorICAweDVlLCAweDUyLCAweDliLCAweDMwLCAweDNkLCAweDY0LCAweDNkLCAweGU0LAorICAweGRlLCAweGNiLCAweDNjLCAweDU5LCAweDU2LCAweDBkLCAweGQ0LCAweDk0LAorICAweDQzLCAweGY2LCAweDI0LCAweGI3LCAweDE5LCAweDFmLCAweGE1LCAweDZmLAorICAweGQ3LCAweGM1LCAweDlmLCAweDU2LCAweGRlLCAweGU3LCAweDM4LCAweDhhLAorICAweGVkLCAweDNjLCAweDE1LCAweGMxLCAweDliLCAweDZiLCAweDU1LCAweGFiLAorICAweDExLCAweGE0LCAweGNlLCAweGVmLCAweGQyLCAweDRjLCAweDg4LCAweDAwLAorICAweGFkLCAweDE1LCAweDE4LCAweGZmLCAweGI1LCAweGFkLCAweGRmLCAweDZmLAorICAweGE0LCAweGRjLCAweGJjLCAweGFiLCAweDg0LCAweDY1LCAweDMwLCAweGFiLAorICAweDA5LCAweDZiLCAweGY0LCAweGZmLCAweDQzLCAweDc4LCAweDMwLCAweDA4LAorICAweGE3LCAweGEwLCAweGE5LCAweGEyLCAweGYwLCAweDhiLCAweDcyLCAweDgyLAorICAweGEwLCAweDVjLCAweDEyLCAweGIwLCAweDI3LCAweGUxLCAweDg0LCAweDA5LAorICAweDI3LCAweDZlLCAweDJkLCAweDYyLCAweGM2LCAweGQxLCAweDg1LCAweDFhLAorICAweDcyLCAweGIxLCAweGJmLCAweDgzLCAweGNjLCAweDdmLCAweGZhLCAweDEzLAorICAweDU0LCAweGUwLCAweDcxLCAweGZhLCAweDBlLCAweDIzLCAweDdkLCAweDA2LAorICAweDI1LCAweDE4LCAweDRhLCAweDExLCAweDY5LCAweDQzLCAweDc2LCAweGU4LAorICAweGM4LCAweDE4LCAweDIzLCAweDk2LCAweDE1LCAweDJjLCAweDdmLCAweDRlLAorICAweDhiLCAweDAxLCAweDgzLCAweDZkLCAweDE4LCAweDgzLCAweDA0LCAweDViLAorICAweDgwLCAweGE4LCAweGMxLCAweDlkLCAweDAxLCAweGZhLCAweGUyLCAweGEzLAorICAweDhkLCAweDRmLCAweGU5LCAweDYzLCAweDBkLCAweGZlLCAweGU3LCAweDdiLAorICAweGNjLCAweDVlLCAweDg2LCAweGY1LCAweDFiLCAweGFlLCAweDBlLCAweDkzLAorICAweGEwLCAweDFmLCAweDM2LCAweDMzLCAweGU4LCAweDBlLCAweDc0LCAweGNmLAorICAweGEwLCAweDQzLCAweDExLCAweDgyLCAweDZkLCAweDVhLCAweGE4LCAweGE2LAorICAweDFhLCAweGNiLCAweGExLCAweGI0LCAweDk5LCAweDZhLCAweDA4LCAweDhmLAorICAweDY4LCAweDMwLCAweDJjLCAweDVmLCAweDUxLCAweGZkLCAweDEwLCAweDFhLAorICAweGZmLCAweGQ2LCAweGVjLCAweGU3LCAweDdhLCAweGM3LCAweGFmLCAweDQ5LAorICAweDE2LCAweGJiLCAweDUxLCAweDUwLCAweGFkLCAweGJmLCAweDhiLCAweDc2LAorICAweDg2LCAweDIwLCAweDliLCAweDExLCAweDgxLCAweGM1LCAweDFiLCAweDZmLAorICAweDA2LCAweGRmLCAweGZjLCAweDI4LCAweGRhLCAweGU5LCAweDAzLCAweDZhLAorICAweGMxLCAweDgzLCAweDk2LCAweGMxLCAweDg2LCAweDNhLCAweDEyLCAweGQyLAorICAweDhhLCAweDhjLCAweDgzLCAweDg1LCAweGQwLCAweGEwLCAweGYzLCAweDJlLAorICAweDg2LCAweGVlLCAweGUxLCAweGI3LCAweGExLCAweDZkLCAweDE2LCAweDJlLAorICAweGY0LCAweDQ2LCAweGMxLCAweDQ1LCAweDk5LCAweGQyLCAweDZkLCAweDcyLAorICAweGQyLCAweGU2LCAweDUyLCAweDg0LCAweDA3LCAweDg0LCAweGYzLCAweGMwLAorICAweGUwLCAweDBlLCAweGEyLCAweDFmLCAweDZjLCAweGNlLCAweGY2LCAweDgzLAorICAweGMxLCAweGMwLCAweDNmLCAweDQ3LCAweGI5LCAweDY4LCAweGM4LCAweDExLAorICAweDA0LCAweDE0LCAweDQwLCAweGMzLCAweDQzLCAweDEzLCAweGEwLCAweGYzLAorICAweGZmLCAweGZmLCAweGJlLCAweGZlLCAweDU4LCAweGQ0LCAweDUxLCAweDdiLAorICAweDBhLCAweDAxLCAweDYyLCAweDQ4LCAweGUxLCAweDliLCAweDZiLCAweDY1LAorICAweDhiLCAweDU0LCAweDQxLCAweGM4LCAweDlkLCAweDU3LCAweDU3LCAweDY0LAorICAweGY3LCAweDUxLCAweDgzLCAweDBjLCAweDQ3LCAweDI1LCAweDAxLCAweGM4LAorICAweGFkLCAweDRhLCAweDU4LCAweDRiLCAweDA1LCAweGUwLCAweGMwLCAweDNkLAorICAweDEwLCAweDRlLCAweGI1LCAweDg1LCAweGI4LCAweGJjLCAweGIwLCAweDFlLAorICAweDJhLCAweDAwLCAweGIwLCAweDU4LCAweGJkLCAweDVlLCAweGNhLCAweDRhLAorICAweDBjLCAweDJlLCAweDE5LCAweDgyLCAweGU1LCAweDNlLCAweDhiLCAweGEwLAorICAweGUwLCAweGM4LCAweDhhLCAweGFlLCAweGU3LCAweGJlLCAweDU1LCAweGJjLAorICAweDQ1LCAweDRhLCAweDYwLCAweDYwLCAweDA5LCAweGNiLCAweDg5LCAweDRjLAorICAweDMyLCAweDA4LCAweDZkLCAweDA5LCAweDBkLCAweGI0LCAweGQyLCAweDU0LAorICAweGY4LCAweGE4LCAweGFiLCAweGNhLCAweDZmLCAweGM0LCAweGJmLCAweDAwLAorICAweGU2LCAweGI2LCAweDhjLCAweDRmLCAweGM2LCAweDE2LCAweGY3LCAweDY3LAorICAweDFhLCAweDliLCAweDJhLCAweDFjLCAweGUwLCAweDBlLCAweDQ0LCAweDgwLAorICAweDgwLCAweDM0LCAweGIyLCAweDlkLCAweDU5LCAweDU4LCAweDE3LCAweGQxLAorICAweDg3LCAweDgxLCAweDYwLCAweDJjLCAweGY4LCAweDBhLCAweGFkLCAweDY5LAorICAweDQ5LCAweDVkLCAweDQwLCAweDQzLCAweDFiLCAweDRlLCAweDgzLCAweDdjLAorICAweDQ4LCAweDg4LCAweDkyLCAweDA5LCAweDNmLCAweDA1LCAweDc4LCAweGY2LAorICAweGMwLCAweDYwLCAweGM5LCAweGVhLCAweGQwLCAweDY2LCAweGQzLCAweDIwLAorICAweDA4LCAweDViLCAweGEwLCAweGFmLCAweDFkLCAweGIzLCAweGExLCAweDM1LAorICAweDJlLCAweDFjLCAweGM4LCAweDMzLCAweDA5LCAweDFhLCAweDM0LCAweDZkLAorICAweDgzLCAweDA2LCAweDYxLCAweDIxLCAweDVhLCAweDk5LCAweDU3LCAweGQxLAorICAweGNjLCAweGEyLCAweDk2LCAweGVkLCAweDA1LCAweGMzLCAweDYxLCAweDg0LAorICAweDFlLCAweDA3LCAweGZjLCAweDNlLCAweDU1LCAweDJkLCAweDAxLCAweGU0LAorICAweDkyLCAweGM0LCAweDU2LCAweGQ2LCAweGZmLCAweGMwLCAweGEwLCAweDZhLAorICAweDIzLCAweDg5LCAweDI5LCAweGM0LCAweDc2LCAweDQzLCAweGY2LCAweDdjLAorICAweGQ2LCAweDU1LCAweDBhLCAweDBhLCAweGIxLCAweDAwLCAweDEzLCAweGFmLAorICAweGEyLCAweGEwLCAweGU0LCAweDVjLCAweDExLCAweGIyLCAweGEyLCAweDUxLAorICAweDgwLCAweDQ2LCAweDk4LCAweGMzLCAweDFlLCAweDFiLCAweDM1LCAweGMyLAorICAweDVjLCAweGI1LCAweGY0LCAweGZiLCAweGYyLCAweDFjLCAweDgzLCAweDgzLAorICAweDgwLCAweDdjLCAweGY4LCAweDAxLCAweGZkLCAweDlhLCAweDg1LCAweDQ5LAorICAweDY5LCAweGM3LCAweGQ4LCAweDFhLCAweGMzLCAweDBmLCAweGEzLCAweDI3LAorICAweGI1LCAweGE2LCAweGM1LCAweGRiLCAweDNhLCAweDE1LCAweDZlLCAweDVlLAorICAweGRiLCAweDkzLCAweDYwLCAweDhiLCAweDI4LCAweDMxLCAweDQ4LCAweGMwLAorICAweDM1LCAweDA5LCAweDNiLCAweDVmLCAweDI4LCAweDE4LCAweDU0LCAweDAxLAorICAweDgwLCAweDY2LCAweDhjLCAweDhlLCAweDdlLCAweGQ2LCAweGFhLCAweDhkLAorICAweGE5LCAweDljLCAweGE2LCAweGUzLCAweDEwLCAweGI2LCAweDhjLCAweDE2LAorICAweGQwLCAweDk3LCAweDRmLCAweDc4LCAweDE1LCAweDIxLCAweDg4LCAweGI4LAorICAweDg1LCAweGI5LCAweDAxLCAweGQxLCAweDY3LCAweDY5LCAweGZkLCAweGJlLAorICAweGU0LCAweDUyLCAweGQ2LCAweGM0LCAweDZhLCAweDI0LCAweDA3LCAweDU0LAorICAweDI4LCAweDA4LCAweGE2LCAweDZmLCAweDk0LCAweDAzLCAweDIyLCAweGY4LAorICAweDY3LCAweDQ2LCAweDIwLCAweDlhLCAweDRjLCAweDkzLCAweDkwLCAweDFjLAorICAweDA5LCAweDkwLCAweDMyLCAweDQ2LCAweDMyLCAweDBhLCAweDJkLCAweGU4LAorICAweDI3LCAweGM1LCAweGRjLCAweGY2LCAweGM5LCAweGRlLCAweDRlLCAweDFhLAorICAweDQ1LCAweDAyLCAweDViLCAweGFiLCAweGViLCAweDRhLCAweDJmLCAweDRkLAorICAweDk1LCAweDI5LCAweGU4LCAweDBmLCAweDA0LCAweGNjLCAweGI4LCAweGJjLAorICAweDZiLCAweDMyLCAweDA2LCAweDA4LCAweDBkLCAweGMwLCAweDVmLCAweGRiLAorICAweDI0LCAweDQ2LCAweGIxLCAweGJlLCAweDg1LCAweDVhLCAweGViLCAweDRhLAorICAweGEwLCAweDQwLCAweDQyLCAweDQ4LCAweDU5LCAweDM3LCAweGJkLCAweDE4LAorICAweDgyLCAweDcyLCAweDYzLCAweGZkLCAweGE1LCAweDEyLCAweDgzLCAweDkwLAorICAweDg1LCAweDFlLCAweGQ1LCAweDgzLCAweDM1LCAweGUwLCAweGI5LCAweDAyLAorICAweGM3LCAweGNkLCAweDg4LCAweDIzLCAweDg2LCAweGU3LCAweGM3LCAweDEyLAorICAweDRiLCAweGNkLCAweDFjLCAweDU5LCAweDUxLCAweDI5LCAweDBjLCAweDNiLAorICAweGM5LCAweGQwLCAweDRkLCAweGY5LCAweDZhLCAweDMzLCAweGJhLCAweGVmLAorICAweDJlLCAweGU1LCAweGQ4LCAweDY5LCAweDFhLCAweDE0LCAweDQ0LCAweDI5LAorICAweGU2LCAweGNiLCAweGVlLCAweDdmLCAweGQ2LCAweDliLCAweDI1LCAweDBjLAorICAweDUxLCAweDA1LCAweDQ4LCAweGU0LCAweGY5LCAweDZhLCAweGZkLCAweGM5LAorICAweDlkLCAweDhiLCAweGQ5LCAweGQxLCAweDNhLCAweDE0LCAweDdkLCAweGE5LAorICAweDM4LCAweDVhLCAweDU1LCAweGQ0LCAweDU3LCAweDdmLCAweGZiLCAweDYyLAorICAweDExLCAweDgwLCAweDMwLCAweDYxLCAweDFkLCAweDZhLCAweDAwLCAweDkyLAorICAweDJlLCAweDlhLCAweDdiLCAweDgyLCAweDRhLCAweDc1LCAweDc3LCAweDNiLAorICAweDYxLCAweGI2LCAweGJlLCAweDM2LCAweGExLCAweDg3LCAweDY3LCAweDQ2LAorICAweDBmLCAweDMwLCAweGFmLCAweDcwLCAweGJkLCAweDhkLCAweGM4LCAweDMxLAorICAweDUzLCAweDM3LCAweGMwLCAweGMxLCAweDhjLCAweDE1LCAweDFkLCAweDRkLAorICAweDM4LCAweGI1LCAweDVjLCAweDFjLCAweDBiLCAweGMxLCAweDUzLCAweDE3LAorICAweGUwLCAweDc1LCAweGI2LCAweDY4LCAweDE5LCAweDlkLCAweDJiLCAweGY0LAorICAweGUyLCAweDA5LCAweDQxLCAweDMwLCAweGJlLCAweGQwLCAweGY3LCAweGIyLAorICAweDJjLCAweDY5LCAweGQxLCAweDMzLCAweDgzLCAweGE2LCAweDU5LCAweDY2LAorICAweDE3LCAweGNiLCAweDU5LCAweDZjLCAweDE4LCAweDBjLCAweDI3LCAweDFiLAorICAweGZlLCAweGQ0LCAweDcyLCAweGFjLCAweDc1LCAweDI1LCAweDY1LCAweGNhLAorICAweGZhLCAweDBjLCAweDA1LCAweGFjLCAweDI5LCAweDA2LCAweDA0LCAweGUxLAorICAweDc4LCAweGU4LCAweDc5LCAweDRhLCAweGYyLCAweGE5LCAweGU2LCAweGZiLAorICAweGYxLCAweDBlLCAweDdlLCAweGNkLCAweDk1LCAweDZjLCAweGVkLCAweDVhLAorICAweDlhLCAweGE2LCAweGM1LCAweDAxLCAweDRkLCAweDM4LCAweDM2LCAweDI0LAorICAweDZiLCAweGFjLCAweGU4LCAweGYwLCAweDc3LCAweGI5LCAweGU5LCAweDZmLAorICAweDU1LCAweDhmLCAweDUyLCAweDQ4LCAweGIyLCAweGViLCAweGU2LCAweDI5LAorICAweGI3LCAweGE2LCAweGE1LCAweDcxLCAweGJlLCAweDU3LCAweDllLCAweGQwLAorICAweGRhLCAweGExLCAweGU1LCAweDA4LCAweGFhLCAweDY1LCAweGMxLCAweDEzLAorICAweGU4LCAweDQzLCAweGVmLCAweDA2LCAweGFjLCAweGY4LCAweDFmLCAweDM3LAorICAweGZmLCAweGI3LCAweDUzLCAweDdlLCAweDY1LCAweGQ5LCAweGY0LCAweGRmLAorICAweDk5LCAweGM1LCAweDI1LCAweDliLCAweDliLCAweDVjLCAweDcxLCAweDkwLAorICAweDZjLCAweDQ5LCAweGJlLCAweDU1LCAweGZmLCAweDY5LCAweDcwLCAweGZhLAorICAweGZmLCAweGNhLCAweDdmLCAweGU0LCAweGUyLCAweDRjLCAweDQyLCAweDg0LAorICAweDNhLCAweDdkLCAweGIwLCAweDA3LCAweDA3LCAweDhjLCAweDI5LCAweDgwLAorICAweGM1LCAweGEzLCAweGM2LCAweGVlLCAweGUxLCAweDY2LCAweGUzLCAweDFmLAorICAweGRmLCAweGQ1LCAweDE1LCAweDA4LCAweDg5LCAweDE2LCAweDNjLCAweDMwLAorICAweDM5LCAweGNmLCAweGFmLCAweDM1LCAweDEwLCAweDJhLCAweDM4LCAweDE5LAorICAweGJlLCAweDI2LCAweGI4LCAweDEzLCAweDgzLCAweDAwLCAweDFjLCAweGU0LAorICAweGRhLCAweGM1LCAweDJiLCAweGNmLCAweGQyLCAweGFkLCAweGMyLCAweGE5LAorICAweDM3LCAweGI3LCAweGI1LCAweDAxLCAweDQxLCAweDBkLCAweDQwLCAweDM4LAorICAweDAxLCAweDlkLCAweGU1LCAweDEyLCAweDdmLCAweGI0LCAweDM4LCAweDU0LAorICAweDVjLCAweGRiLCAweDdjLCAweDAyLCAweDczLCAweDdlLCAweDJjLCAweDE3LAorICAweDJhLCAweDFlLCAweDA5LCAweDBhLCAweGIzLCAweDdjLCAweDVkLCAweDA3LAorICAweGJiLCAweGY1LCAweGZiLCAweGZmLCAweGE2LCAweDllLCAweGVmLCAweDI5LAorICAweGI1LCAweDBiLCAweDcwLCAweDZhLCAweGEwLCAweDZkLCAweDAxLCAweDY3LAorICAweGU5LCAweDJkLCAweDk4LCAweDcyLCAweGE2LCAweDQ0LCAweDQ3LCAweDEyLAorICAweGEyLCAweDU4LCAweDI1LCAweDJiLCAweGRjLCAweDY3LCAweDcxLCAweGE1LAorICAweDU3LCAweDBiLCAweDE1LCAweDY1LCAweGJhLCAweGE2LCAweDA3LCAweGIzLAorICAweGI2LCAweDIyLCAweDM1LCAweGRlLCAweDEzLCAweDA5LCAweGRhLCAweDA4LAorICAweDBkLCAweGIzLCAweGFkLCAweDgzLCAweGMxLCAweDQwLCAweDQyLCAweDNiLAorICAweGI3LCAweDIyLCAweDkwLCAweGY1LCAweGJlLCAweDVkLCAweGVhLCAweGNiLAorICAweDAxLCAweDg4LCAweGE1LCAweDcyLCAweDYwLCAweGJlLCAweDIzLCAweDY0LAorICAweDZkLCAweDU3LCAweGJiLCAweDEwLCAweDdmLCAweDk0LCAweDQxLCAweGFjLAorICAweDczLCAweDg0LCAweGIxLCAweDc1LCAweGMxLCAweDM4LCAweGViLCAweDI1LAorICAweGJlLCAweDZlLCAweGY0LCAweGI5LCAweDhmLCAweGE5LCAweGQ1LCAweDg0LAorICAweDE0LCAweGFkLCAweGZlLCAweGMzLCAweDQ4LCAweDExLCAweDUyLCAweDk5LAorICAweDNhLCAweDRlLCAweDcwLCAweGU3LCAweDY1LCAweDVhLCAweDI5LCAweDg1LAorICAweDJhLCAweDAyLCAweDY4LCAweDk5LCAweGFmLCAweGFhLCAweGZhLCAweGFkLAorICAweDJjLCAweGQxLCAweDA5LCAweDQ2LCAweGM0LCAweDBkLCAweGZkLCAweGJhLAorICAweDBjLCAweDE4LCAweDk4LCAweDZkLCAweDk3LCAweDVhLCAweGQzLCAweDBkLAorICAweGY5LCAweDU3LCAweGJkLCAweDc1LCAweDRlLCAweDdmLCAweDNiLCAweGQ1LAorICAweGYyLCAweGEzLCAweDlkLCAweGRlLCAweGFmLCAweDEwLCAweDEzLCAweDk3LAorICAweGQ1LCAweDFjLCAweGRiLCAweGEzLCAweGEyLCAweGU5LCAweDUwLCAweDdkLAorICAweDQ0LCAweGRkLCAweGU0LCAweDBkLCAweGVhLCAweDA4LCAweDI3LCAweDMzLAorICAweDQxLCAweGJhLCAweGQ1LCAweGRhLCAweGM0LCAweDJjLCAweGVjLCAweGU3LAorICAweDY2LCAweDM1LCAweGM5LCAweDNiLCAweGQ5LCAweDI3LCAweDczLCAweDgzLAorICAweDE3LCAweDBkLCAweDA4LCAweDNkLCAweDM1LCAweDM0LCAweGE2LCAweDllLAorICAweGQ3LCAweGVhLCAweDg0LCAweGIyLCAweGNmLCAweDg3LCAweDk1LCAweDk0LAorICAweGQ1LCAweDhiLCAweDJlLCAweDExLCAweDg5LCAweDAyLCAweDA2LCAweDI1LAorICAweDZhLCAweDQ2LCAweGQ1LCAweGU1LCAweGE1LCAweGI5LCAweDU0LCAweDY3LAorICAweDIyLCAweDlkLCAweDJiLCAweDkyLCAweGEwLCAweDNjLCAweDVlLCAweGM1LAorICAweDc4LCAweDM4LCAweGFjLCAweGMyLCAweGZmLCAweGUxLCAweDU3LCAweGJjLAorICAweGIyLCAweGQ1LCAweDQ4LCAweGM3LCAweDg1LCAweDEwLCAweDgxLCAweDU0LAorICAweDg5LCAweDNkLCAweGJiLCAweGRjLCAweGI4LCAweGQ4LCAweGY1LCAweDljLAorICAweDhjLCAweGE3LCAweGU5LCAweDQ2LCAweDQ1LCAweGQ3LCAweDQwLCAweDg4LAorICAweDhjLCAweGRjLCAweDU2LCAweGRjLCAweDQ2LCAweGEzLCAweDA2LCAweGZjLAorICAweGNlLCAweDkxLCAweDY5LCAweDhhLCAweDU1LCAweDAyLCAweDhiLCAweDcyLAorICAweGU3LCAweGRiLCAweDFmLCAweGE1LCAweDJiLCAweDA2LCAweDQwLCAweDU1LAorICAweDMxLCAweDQ1LCAweDlkLCAweDQwLCAweGRkLCAweDkwLCAweDU0LCAweDlhLAorICAweDcwLCAweDY0LCAweDg5LCAweDE1LCAweGM5LCAweGJlLCAweDRmLCAweGIzLAorICAweDZkLCAweGU1LCAweDFjLCAweGFiLCAweGMyLCAweGM4LCAweDMwLCAweDk0LAorICAweGVhLCAweDVlLCAweDU0LCAweGFiLCAweDE0LCAweDdiLCAweGZlLCAweGNlLAorICAweDliLCAweGU2LCAweGFlLCAweDUwLCAweGE2LCAweGU5LCAweDE4LCAweGI2LAorICAweGIxLCAweDk1LCAweDQ0LCAweDUzLCAweGNmLCAweDdiLCAweDk2LCAweDdiLAorICAweDk4LCAweDU5LCAweDQzLCAweDhlLCAweDk1LCAweDBjLCAweDIxLCAweDNiLAorICAweDk1LCAweGMyLCAweGI1LCAweGUxLCAweDQyLCAweDgwLCAweGMwLCAweGY2LAorICAweDk5LCAweGE0LCAweGUwLCAweDE5LCAweDgzLCAweGUxLCAweDI5LCAweDI4LAorICAweGYzLCAweGQ0LCAweDcyLCAweGRiLCAweDc3LCAweGQ0LCAweDNjLCAweGFhLAorICAweDcwLCAweDNjLCAweDQ1LCAweGJkLCAweDFiLCAweDc2LCAweGY0LCAweDgwLAorICAweDMwLCAweDYwLCAweDM0LCAweDEyLCAweDZmLCAweGUyLCAweDg0LCAweDk2LAorICAweGFmLCAweDM2LCAweDI5LCAweGZiLCAweDUyLCAweDczLCAweGE4LCAweGZmLAorICAweDJkLCAweGU5LCAweGUzLCAweDNmLCAweGY0LCAweGE4LCAweGIyLCAweGY3LAorICAweDRkLCAweDE1LCAweDQ1LCAweDgzLCAweDliLCAweDM4LCAweDMzLCAweDhiLAorICAweDhhLCAweGYwLCAweDgwLCAweGQ0LCAweDVlLCAweDc5LCAweDdlLCAweGYyLAorICAweGQxLCAweGI4LCAweGJlLCAweDJmLCAweGIyLCAweDk0LCAweDllLCAweDI0LAorICAweDczLCAweGZlLCAweDAyLCAweDYzLCAweDI2LCAweDc5LCAweGE0LCAweGRkLAorICAweDRhLCAweGRhLCAweDRhLCAweGI1LCAweGJiLCAweDdjLCAweDU1LCAweGRiLAorICAweGVlLCAweGNhLCAweDFiLCAweDRiLCAweGQ5LCAweGQ4LCAweDAyLCAweDBlLAorICAweGZkLCAweGFhLCAweGQ3LCAweGVlLCAweDZjLCAweGIzLCAweDg2LCAweGZiLAorICAweDI4LCAweDU2LCAweDBjLCAweDFhLCAweGFiLCAweGY4LCAweDI0LCAweGIzLAorICAweGY1LCAweDUxLCAweDQ2LCAweGM2LCAweDViLCAweGJkLCAweDVhLCAweGM5LAorICAweDI2LCAweGQ5LCAweGI1LCAweDc1LCAweGI5LCAweGMzLCAweDdjLCAweDNjLAorICAweDQ4LCAweDQzLCAweDA4LCAweDVhLCAweDNmLCAweDZmLCAweDRiLCAweGZiLAorICAweDQxLCAweDg2LCAweGM1LCAweGFkLCAweGYxLCAweDc4LCAweGE3LCAweDI0LAorICAweGNlLCAweDQ1LCAweGU4LCAweGE0LCAweDVlLCAweDMzLCAweGNiLCAweDNiLAorICAweDM5LCAweGQ0LCAweDY3LCAweDU1LCAweDcyLCAweDYzLCAweGMyLCAweGQ2LAorICAweDFiLCAweDQ1LCAweDI5LCAweGJiLCAweGQ4LCAweDgxLCAweDAwLCAweGNjLAorICAweDYzLCAweGQzLCAweGM1LCAweDEyLCAweDczLCAweGZlLCAweGY2LCAweGRlLAorICAweDZlLCAweDQxLCAweDg5LCAweDVmLCAweGFmLCAweDY1LCAweDVhLCAweDliLAorICAweDIxLCAweDU5LCAweDVjLCAweGMxLCAweDBiLCAweGM1LCAweDdhLCAweGJlLAorICAweDI4LCAweGRmLCAweDQwLCAweGY2LCAweDJjLCAweDhhLCAweGMyLCAweGE1LAorICAweDJiLCAweDc0LCAweGY5LCAweDNkLCAweDYzLCAweDEzLCAweGQ4LCAweDk4LAorICAweDcxLCAweDZmLCAweDczLCAweGI2LCAweDg4LCAweDBkLCAweGIzLCAweDY2LAorICAweDVhLCAweDU2LCAweDIyLCAweDc3LCAweDliLCAweDg4LCAweDA4LCAweDY0LAorICAweDJkLCAweGZmLCAweDUwLCAweDQyLCAweDBkLCAweDM1LCAweDQ3LCAweDFiLAorICAweDkzLCAweDJkLCAweDQyLCAweDg4LCAweDUwLCAweDJmLCAweDA2LCAweGNmLAorICAweDI5LCAweDRhLCAweDNlLCAweGE1LCAweDVkLCAweGM0LCAweGVhLCAweGJiLAorICAweDAzLCAweGRlLCAweGYwLCAweDczLCAweDJmLCAweDUxLCAweGE4LCAweDEzLAorICAweDExLCAweDY0LCAweDAzLCAweDE0LCAweGZiLCAweGIzLCAweGUxLCAweGUyLAorICAweDY1LCAweDE4LCAweGNkLCAweGQ5LCAweDUxLCAweDcyLCAweGYzLCAweDcyLAorICAweGQxLCAweDEyLCAweGEzLCAweDQyLCAweDhjLCAweDRkLCAweDAwLCAweDc5LAorICAweDlmLCAweDM2LCAweDI0LCAweDhlLCAweDk1LCAweDJhLCAweGNjLCAweDA2LAorICAweDAyLCAweGVhLCAweGFkLCAweDJiLCAweGFhLCAweDQzLCAweGNmLCAweGU1LAorICAweGQzLCAweDRiLCAweDJjLCAweDRhLCAweDM0LCAweDc2LCAweGRiLCAweDliLAorICAweDk3LCAweDgwLCAweGUxLCAweDU2LCAweGJhLCAweDZkLCAweGU1LCAweGY3LAorICAweDQwLCAweDcwLCAweDNhLCAweDA1LCAweDkxLCAweGNhLCAweDhmLCAweDliLAorICAweGMxLCAweDg4LCAweDJjLCAweDBmLCAweDBiLCAweGIyLCAweDUwLCAweDQyLAorICAweDA2LCAweDJkLCAweGJiLCAweDk4LCAweDRiLCAweGM2LCAweDIyLCAweDkwLAorICAweDc4LCAweGNmLCAweGZkLCAweGU2LCAweDUwLCAweDYwLCAweDlkLCAweDE2LAorICAweGRhLCAweGQxLCAweGQyLCAweDZmLCAweGIzLCAweGY5LCAweDIxLCAweGFiLAorICAweDM4LCAweGMyLCAweDMwLCAweGQ0LCAweGI3LCAweGVhLCAweDFkLCAweGZhLAorICAweGY2LCAweGU3LCAweDAxLCAweGMxLCAweGRlLCAweGMwLCAweGIzLCAweDRmLAorICAweDAzLCAweDBmLCAweGU3LCAweDQwLCAweDM5LCAweDNhLCAweDNhLCAweGJiLAorICAweDA4LCAweDgxLCAweDVmLCAweDEwLCAweDEwLCAweDk0LCAweDRjLCAweDVkLAorICAweDNmLCAweDlmLCAweGQwLCAweDM0LCAweDlkLCAweDNlLCAweGFkLCAweDMxLAorICAweDhmLCAweDY2LCAweGY2LCAweGY0LCAweDQ1LCAweDJhLCAweDliLCAweDc4LAorICAweGUyLCAweDAyLCAweDNmLCAweGJjLCAweDNmLCAweDJlLCAweGZiLCAweDAxLAorICAweGY4LCAweDFhLCAweDliLCAweGMwLCAweGY2LCAweGU1LCAweGI1LCAweDY1LAorICAweGY4LCAweGEyLCAweGNlLCAweDNjLCAweDIzLCAweGI0LCAweDI1LCAweDE3LAorICAweDJhLCAweGI1LCAweGEwLCAweDYwLCAweGZkLCAweDVmLCAweDJmLCAweGE1LAorICAweDBmLCAweGQ1LCAweDI4LCAweDZiLCAweGY2LCAweGY0LCAweDNhLCAweGU0LAorICAweGYyLCAweDI4LCAweDhjLCAweGQ4LCAweGFjLCAweGU0LCAweGRmLCAweDUxLAorICAweDBiLCAweDE0LCAweDZhLCAweDMyLCAweDVlLCAweDBiLCAweDlkLCAweDVmLAorICAweGY4LCAweDlkLCAweDI3LCAweGZkLCAweDM2LCAweGZiLCAweGZhLCAweDU5LAorICAweGUwLCAweDMzLCAweGNlLCAweGYxLCAweDYzLCAweGI2LCAweGQ5LCAweDZmLAorICAweDQxLCAweGUxLCAweDIwLCAweDE1LCAweGJhLCAweDVlLCAweDQyLCAweDU3LAorICAweGVkLCAweDA5LCAweDFhLCAweDU5LCAweGVkLCAweDFlLCAweDhmLCAweDRiLAorICAweGVhLCAweDU2LCAweDk0LCAweDZmLCAweDMzLCAweGJhLCAweDJmLCAweDE0LAorICAweDc0LCAweDllLCAweDA4LCAweDUxLCAweDA4LCAweDhkLCAweGJmLCAweGYzLAorICAweDdkLCAweDU3LCAweDJhLCAweGYxLCAweDAxLCAweGYyLCAweDU5LCAweGQyLAorICAweGQ5LCAweGNlLCAweGU0LCAweDk3LCAweGE0LCAweGY4LCAweDNmLCAweDljLAorICAweDAwLCAweDZiLCAweGEzLCAweDFhLCAweGZlLCAweDgyLCAweDI2LCAweGQ2LAorICAweDI2LCAweDY3LCAweGI2LCAweGYyLCAweGFiLCAweGFkLCAweDdjLCAweDNkLAorICAweDljLCAweDA2LCAweDM0LCAweGEzLCAweDYxLCAweDU1LCAweDI5LCAweDQyLAorICAweGUzLCAweGFjLCAweGVhLCAweDUyLCAweDRhLCAweGM2LCAweDFjLCAweDMyLAorICAweDIxLCAweGE1LCAweDY5LCAweGJmLCAweDdmLCAweDFhLCAweGM2LCAweDA0LAorICAweGFhLCAweDkyLCAweDBlLCAweDU0LCAweDc5LCAweGFjLCAweGE1LCAweGJiLAorICAweGU0LCAweDMyLCAweGM1LCAweDJhLCAweDM4LCAweDY5LCAweDY3LCAweDkxLAorICAweDU3LCAweGYxLCAweGZhLCAweGEwLCAweGU5LCAweGE1LCAweDQzLCAweGVhLAorICAweDllLCAweDZjLCAweGU0LCAweDFiLCAweDcyLCAweGVmLCAweDFjLCAweDVhLAorICAweGFjLCAweGNjLCAweGY3LCAweGFlLCAweDQxLCAweGNjLCAweGE2LCAweGNmLAorICAweGFhLCAweGU1LCAweGQ1LCAweDc3LCAweGMxLCAweGRjLCAweDZlLCAweDdmLAorICAweGI5LCAweGFkLCAweDYyLCAweGU1LCAweDU2LCAweGYwLCAweGQzLCAweGNhLAorICAweDM1LCAweDFhLCAweDU1LCAweDNmLCAweGEwLCAweGMxLCAweGVmLCAweDliLAorICAweDZhLCAweDU5LCAweGJhLCAweDU5LCAweDM1LCAweDZmLCAweDcyLCAweGQzLAorICAweDQ4LCAweDg2LCAweGE1LCAweDQxLCAweDRlLCAweDI1LCAweGEzLCAweDA2LAorICAweDBmLCAweDU1LCAweGE2LCAweDliLCAweGIzLCAweDI2LCAweDAzLCAweDhlLAorICAweDJkLCAweGU2LCAweDc1LCAweDNiLCAweDM4LCAweGQ0LCAweGU3LCAweGZlLAorICAweGEzLCAweGRkLCAweGU1LCAweGQ5LCAweDJhLCAweDIwLCAweDcxLCAweDI5LAorICAweDM5LCAweGVjLCAweGFiLCAweGRjLCAweGRhLCAweGE1LCAweDQ3LCAweGFlLAorICAweDU5LCAweDA1LCAweGI1LCAweDcxLCAweDJiLCAweDBhLCAweDg0LCAweDI1LAorICAweDUxLCAweDlmLCAweGE5LCAweDZkLCAweDJmLCAweDliLCAweDhhLCAweDFiLAorICAweDRmLCAweGM5LCAweGZkLCAweGU2LCAweDRlLCAweDc0LCAweDNiLCAweDVjLAorICAweDhiLCAweGYzLCAweDZlLCAweDRhLCAweDE4LCAweGMwLCAweDc0LCAweDNmLAorICAweDcyLCAweGVlLCAweDQ4LCAweGE3LCAweDc1LCAweGI2LCAweDdmLCAweDZhLAorICAweDJlLCAweDQ5LCAweDZhLCAweGQzLCAweGExLCAweDQwLCAweGQ0LCAweDQ3LAorICAweGQ4LCAweGNlLCAweDU5LCAweDJjLCAweDQzLCAweGM1LCAweGU1LCAweDVkLAorICAweGZhLCAweDY2LCAweDNmLCAweGZhLCAweDg2LCAweGY1LCAweDdjLCAweDNkLAorICAweDE3LCAweDMyLCAweGEyLCAweDBmLCAweGYxLCAweGE1LCAweDNkLCAweGI0LAorICAweDExLCAweGY4LCAweDZjLCAweDk2LCAweDIyLCAweDE4LCAweGI5LCAweGU5LAorICAweDU2LCAweGVlLCAweDE1LCAweDI4LCAweDQ0LCAweDg0LCAweDkxLCAweDExLAorICAweDA5LCAweGFiLCAweDc1LCAweGI2LCAweDNkLCAweGQ5LCAweDM4LCAweGI5LAorICAweDZhLCAweDEwLCAweDFjLCAweDM1LCAweDE5LCAweGIzLCAweDg5LCAweGQ5LAorICAweDk1LCAweDE2LCAweGZhLCAweDkyLCAweDJmLCAweDQ1LCAweGRjLCAweDNmLAorICAweDI1LCAweDJjLCAweGQwLCAweDc0LCAweGQwLCAweGM4LCAweGY2LCAweDlhLAorICAweDMxLCAweDNmLCAweGI4LCAweDVhLCAweDgwLCAweGQyLCAweGM4LCAweDM5LAorICAweDEwLCAweDA0LCAweGIxLCAweDEyLCAweGY5LCAweDE5LCAweDVhLCAweGU2LAorICAweGEwLCAweGQxLCAweDdkLCAweDAwLCAweGRkLCAweGVkLCAweDJiLCAweDQ5LAorICAweGEwLCAweDQ4LCAweDA3LCAweDNjLCAweDY5LCAweDAwLCAweDM0LCAweDQzLAorICAweDVlLCAweGM2LCAweGYxLCAweGE0LCAweDEyLCAweDczLCAweDA2LCAweGM4LAorICAweDBlLCAweDk3LCAweDE4LCAweGRiLCAweGQ1LCAweDgyLCAweGJkLCAweDc4LAorICAweGYyLCAweDNmLCAweDVlLCAweGExLCAweDVmLCAweDg4LCAweDg4LCAweDkyLAorICAweGZlLCAweDVmLCAweDViLCAweGU5LCAweGRhLCAweDA0LCAweGU1LCAweDA0LAorICAweGMyLCAweDIzLCAweGY2LCAweDk1LCAweDQ5LCAweDkyLCAweDQwLCAweGZkLAorICAweDU4LCAweDMxLCAweGJkLCAweGM4LCAweDgzLCAweGQyLCAweGQ0LCAweDc2LAorICAweDIxLCAweDBhLCAweDgyLCAweDQwLCAweGYwLCAweDIxLCAweDI2LCAweDY5LAorICAweDQwLCAweDE5LCAweDEyLCAweGNiLCAweDk1LCAweDM3LCAweGQxLCAweGM2LAorICAweDgyLCAweGJiLCAweDU2LCAweGFiLCAweDhkLCAweDg2LCAweGNmLCAweGIyLAorICAweDgzLCAweGJhLCAweDQzLCAweDUzLCAweGE2LCAweDk1LCAweDdlLCAweDUyLAorICAweGI2LCAweDZlLCAweGFjLCAweDhhLCAweGExLCAweDI5LCAweDM4LCAweDU4LAorICAweDc3LCAweGJlLCAweGYyLCAweDQ2LCAweDc3LCAweDY1LCAweDJjLCAweGM4LAorICAweGE2LCAweGFjLCAweGJhLCAweDg4LCAweDhlLCAweGMzLCAweDc0LCAweDVjLAorICAweDQxLCAweDcwLCAweDIwLCAweDhmLCAweGY2LCAweDE2LCAweDg3LCAweGMzLAorICAweGE0LCAweGM2LCAweGUxLCAweDc4LCAweDk3LCAweGVmLCAweDUxLCAweDg3LAorICAweDE3LCAweGVhLCAweGM4LCAweGU5LCAweGM1LCAweDA0LCAweDMxLCAweGU5LAorICAweDY4LCAweDg0LCAweGRlLCAweDI2LCAweDU2LCAweDNhLCAweGY4LCAweGZjLAorICAweGIzLCAweDhhLCAweDEyLCAweDMzLCAweGU2LCAweDU3LCAweDQzLCAweDMyLAorICAweDZmLCAweGQxLCAweDBkLCAweDZhLCAweDhkLCAweDgzLCAweDdlLCAweDcwLAorICAweDFjLCAweDdhLCAweDI2LCAweGJlLCAweDAyLCAweDk0LCAweDAzLCAweDk4LAorICAweDZlLCAweDZiLCAweDBjLCAweDBlLCAweGRiLCAweGRjLCAweDQ0LCAweDU1LAorICAweDgwLCAweGMwLCAweDNjLCAweDI2LCAweDMzLCAweGYwLCAweDQxLCAweGQ2LAorICAweGRiLCAweDk3LCAweGMzLCAweGE1LCAweDc3LCAweGQ3LCAweDI2LCAweGY3LAorICAweDZlLCAweDc5LCAweDQ3LCAweDY3LCAweDc4LCAweGJlLCAweDU1LCAweGM1LAorICAweDQxLCAweDlkLCAweDVhLCAweGIwLCAweDY1LCAweDZhLCAweDBhLCAweGQyLAorICAweDBmLCAweGZkLCAweGUwLCAweGU3LCAweGMzLCAweGE1LCAweDAwLCAweGYxLAorICAweDVmLCAweGZiLCAweGI0LCAweGMwLCAweDMwLCAweDRlLCAweDNkLCAweDZkLAorICAweDk0LCAweGI2LCAweDgzLCAweDJmLCAweGY2LCAweGVkLCAweDA2LCAweDI1LAorICAweGJiLCAweGQwLCAweDYwLCAweGFmLCAweGVhLCAweDY0LCAweDJiLCAweDg2LAorICAweDliLCAweDY4LCAweDY2LCAweDc5LCAweDkxLCAweDhmLCAweDdjLCAweDEwLAorICAweGQ1LCAweDhlLCAweDczLCAweGFhLCAweDhiLCAweDk1LCAweDY3LCAweDU0LAorICAweDUyLCAweGQxLCAweGViLCAweDVkLCAweDllLCAweDQyLCAweDIyLCAweGY5LAorICAweDczLCAweGQwLCAweDNkLCAweDExLCAweGMxLCAweDA5LCAweGExLCAweDE1LAorICAweDMzLCAweDdmLCAweDk5LCAweDU0LCAweDI4LCAweGRmLCAweGI3LCAweGNiLAorICAweDUwLCAweDhkLCAweGZmLCAweDBmLCAweGFkLCAweGQ3LCAweGYzLCAweDM3LAorICAweGVkLCAweDIwLCAweGY2LCAweDgyLCAweDNhLCAweDgwLCAweGM4LCAweGZlLAorICAweDkxLCAweDFhLCAweDBkLCAweGEwLCAweGEwLCAweGM5LCAweDIwLCAweDJhLAorICAweGEzLCAweDc2LCAweDY0LCAweDlkLCAweDA0LCAweDRmLCAweDVlLCAweDgzLAorICAweDBjLCAweDc4LCAweGYxLCAweDgyLCAweDcwLCAweDY2LCAweDQ3LCAweGQ2LAorICAweDcxLCAweDUwLCAweDhkLCAweDA2LCAweDMxLCAweDg5LCAweGQ0LCAweDA1LAorICAweDRkLCAweDRiLCAweGRlLCAweDAzLCAweDBhLCAweDU5LCAweDQ2LCAweDA0LAorICAweDgxLCAweDJkLCAweDM4LCAweDMwLCAweGQ4LCAweDc0LCAweDNmLCAweDY0LAorICAweDE4LCAweGExLCAweDMzLCAweDNmLCAweDgzLCAweDFjLCAweGM3LCAweDhmLAorICAweGQ2LCAweGY4LCAweDQ5LCAweDA5LCAweDdmLCAweGZhLCAweDE5LCAweDk5LAorICAweGQ3LCAweDMwLCAweGQ4LCAweDQxLCAweDRhLCAweGMyLCAweDZlLCAweDM1LAorICAweDNkLCAweGFjLCAweGZlLCAweGQyLCAweGE2LCAweGExLCAweGJiLCAweDMzLAorICAweDNjLCAweGUzLCAweDdjLCAweGMwLCAweDYwLCAweDNmLCAweDNjLCAweGRjLAorICAweDVhLCAweDAyLCAweGE1LCAweDI2LCAweDM3LCAweDk0LCAweDExLCAweGJiLAorICAweGY2LCAweGI0LCAweDkxLCAweDFjLCAweGM4LCAweGUxLCAweDYwLCAweDI4LAorICAweDA0LCAweDM2LCAweDE1LCAweDJiLCAweDBmLCAweDIzLCAweDA1LCAweGU1LAorICAweGNjLCAweGUzLCAweDZjLCAweDM2LCAweDE1LCAweDk4LCAweGJmLCAweDA3LAorICAweDgxLCAweDgxLCAweGNkLCAweGIwLCAweDUxLCAweGU4LCAweDNjLCAweDZjLAorICAweDAxLCAweDYzLCAweGNmLCAweGMxLCAweDg4LCAweDdmLCAweDc1LCAweGExLAorICAweDcwLCAweGUzLCAweGU2LCAweDRjLCAweGIxLCAweDRkLCAweGFhLCAweDRiLAorICAweDFhLCAweDZiLCAweDM5LCAweDAyLCAweDlkLCAweDMxLCAweGU4LCAweDhjLAorICAweDA4LCAweDIxLCAweDA5LCAweDljLCAweGY3LCAweDliLCAweDFlLCAweGI0LAorICAweGFiLCAweDg1LCAweGI3LCAweGYxLCAweDljLCAweGU3LCAweDUwLCAweGU0LAorICAweGVlLCAweGYyLCAweDBjLCAweDAwLCAweDU4LCAweGI5LCAweGE0LCAweGYxLAorICAweGJmLCAweGNkLCAweDYyLCAweDJhLCAweGY4LCAweGU2LCAweDhlLCAweDY1LAorICAweDk0LCAweGI1LCAweDRlLCAweGNiLCAweGNjLCAweDJjLCAweDM0LCAweDZjLAorICAweDQ0LCAweDg4LCAweDA5LCAweGQ0LCAweDY4LCAweDFlLCAweDAyLCAweDA4LAorICAweDMyLCAweGZlLCAweDc1LCAweDU4LCAweDQzLCAweDYzLCAweGM0LCAweDllLAorICAweDRkLCAweGJmLCAweDE3LCAweGViLCAweDZjLCAweDBjLCAweDc4LCAweDc4LAorICAweGQyLCAweDQwLCAweDYwLCAweDBlLCAweDJlLCAweDRkLCAweGZiLCAweGEwLAorICAweGMxLCAweGY4LCAweGVlLCAweDU2LCAweDhhLCAweGVlLCAweGFhLCAweDZmLAorICAweGM5LCAweDI5LCAweDRlLCAweDA3LCAweDhkLCAweGFjLCAweDFiLCAweDk2LAorICAweDljLCAweDJiLCAweDEzLCAweGU3LCAweDc4LCAweGJhLCAweGU4LCAweDc5LAorICAweGI2LCAweDQwLCAweDcxLCAweGRkLCAweDM0LCAweDFiLCAweDRjLCAweDllLAorICAweDVlLCAweGE5LCAweDUzLCAweGJhLCAweGJhLCAweGMxLCAweGQ0LCAweDgxLAorICAweGMwLCAweDE1LCAweDUxLCAweDUwLCAweGVkLCAweGJjLCAweGVmLCAweDI0LAorICAweDNjLCAweDJiLCAweGJhLCAweDM5LCAweDJhLCAweGVmLCAweDI3LCAweGE3LAorICAweDJmLCAweDI3LCAweDdiLCAweDYyLCAweDNhLCAweDZkLCAweDcwLCAweGRmLAorICAweDg2LCAweGNmLCAweDE2LCAweGYwLCAweDE4LCAweDYzLCAweGY4LCAweGQ2LAorICAweDM3LCAweGI2LCAweDRiLCAweDIzLCAweDZhLCAweGRiLCAweDZkLCAweGJiLAorICAweDdmLCAweDljLCAweDViLCAweDc5LCAweDI0LCAweGU1LCAweGU5LCAweGFlLAorICAweDIyLCAweGE3LCAweDZjLCAweDNlLCAweDRiLCAweDM2LCAweDU4LCAweGEzLAorICAweGQ4LCAweGNiLCAweDE1LCAweDQ5LCAweDZlLCAweGVmLCAweDNiLCAweDExLAorICAweGFjLCAweGI0LCAweGQ1LCAweDhkLCAweGQwLCAweGE1LCAweDU2LCAweDBlLAorICAweDY1LCAweDA3LCAweDEzLCAweDU0LCAweGZmLCAweGIzLCAweDdmLCAweDNlLAorICAweGEyLCAweGVlLCAweGYwLCAweGFjLCAweGQwLCAweGM5LCAweDc5LCAweDg3LAorICAweGQ1LCAweDUyLCAweGE1LCAweDQ5LCAweDY1LCAweDQ0LCAweDU1LCAweGFhLAorICAweDJjLCAweDk2LCAweDFiLCAweGU5LCAweDM2LCAweDFmLCAweDVjLCAweDU0LAorICAweGRiLCAweDdlLCAweDZlLCAweDhlLCAweDdmLCAweDk5LCAweGQ5LCAweDI0LAorICAweDUxLCAweDY3LCAweGFmLCAweDY0LCAweDJhLCAweGJjLCAweGJjLCAweGZmLAorICAweDE2LCAweGU0LCAweDQwLCAweDQyLCAweDRmLCAweDVhLCAweDkyLCAweDI5LAorICAweDY5LCAweDE1LCAweDZmLCAweGJiLCAweDE2LCAweGUxLCAweGJiLCAweGQ1LAorICAweDM5LCAweDM4LCAweGEwLCAweDk3LCAweGEyLCAweDY1LCAweDE1LCAweGU5LAorICAweGE2LCAweDU5LCAweGVjLCAweDkyLCAweGVkLCAweGQ1LCAweDFiLCAweDc5LAorICAweDJkLCAweDUxLCAweDJmLCAweDU2LCAweDM3LCAweGJkLCAweDI0LCAweDM2LAorICAweDUyLCAweDQzLCAweDc2LCAweDI4LCAweGViLCAweDZhLCAweDI0LCAweDZmLAorICAweDc5LCAweGQwLCAweGU0LCAweGFhLCAweGYzLCAweDI3LCAweDZhLCAweGM4LAorICAweDkxLCAweGEyLCAweGE2LCAweDhlLCAweGFiLCAweDkyLCAweGIzLCAweGVkLAorICAweGQwLCAweGVmLCAweDExLCAweGI0LCAweGEwLCAweGFiLCAweDYwLCAweGNiLAorICAweDNhLCAweDUyLCAweGJkLCAweDFhLCAweGFlLCAweGM4LCAweGU3LCAweDU2LAorICAweDljLCAweDUzLCAweDg1LCAweDhhLCAweDc3LCAweDU3LCAweGNkLCAweGEyLAorICAweGU1LCAweGUxLCAweGIzLCAweDY3LCAweGEwLCAweDlmLCAweDRjLCAweGJjLAorICAweGRhLCAweDM5LCAweGMyLCAweGI5LCAweDI3LCAweDExLCAweGMzLCAweDdhLAorICAweGI3LCAweDE3LCAweGVjLCAweDFhLCAweGM3LCAweGY3LCAweDNjLCAweGQ0LAorICAweGRmLCAweGU2LCAweDk1LCAweGYzLCAweDI1LCAweDM3LCAweGI1LCAweDA0LAorICAweDUwLCAweGI3LCAweDQ1LCAweGMyLCAweDcyLCAweDQ5LCAweGI5LCAweGJlLAorICAweGIzLCAweGViLCAweDZlLCAweDY0LCAweDhhLCAweDZkLCAweDgwLCAweGMxLAorICAweDlkLCAweGUwLCAweGM1LCAweGY0LCAweGFkLCAweDg2LCAweGRiLCAweDUxLAorICAweDJkLCAweGJmLCAweDY4LCAweGE5LCAweDc4LCAweDgzLCAweDIyLCAweDFiLAorICAweGFiLCAweDliLCAweDI4LCAweDI2LCAweDM2LCAweGFjLCAweDg0LCAweGU2LAorICAweDk4LCAweDU2LCAweGY4LCAweDg0LCAweDA1LCAweGRiLCAweDk0LCAweDcxLAorICAweDlkLCAweGJhLCAweGRjLCAweDVmLCAweGNiLCAweDJmLCAweGJjLCAweGQ4LAorICAweDhlLCAweGVkLCAweDI0LCAweDUxLCAweGQ1LCAweGZhLCAweDRlLCAweDJmLAorICAweDA4LCAweDVhLCAweGM4LCAweDk2LCAweDVjLCAweGFkLCAweDg2LCAweDM2LAorICAweGNkLCAweDgwLCAweDYwLCAweGI3LCAweDY3LCAweDNmLCAweGM1LCAweDI1LAorICAweDQ1LCAweDlkLCAweDExLCAweDI2LCAweDIwLCAweGVkLCAweGU3LCAweDdhLAorICAweDdjLCAweDRlLCAweDNkLCAweDUxLCAweDA3LCAweDI5LCAweDMzLCAweGZkLAorICAweGFkLCAweGEzLCAweGM1LCAweDAyLCAweDA5LCAweDYyLCAweGQ5LCAweDNhLAorICAweDU1LCAweDY2LCAweGQ5LCAweDE2LCAweDVlLCAweDQ1LCAweGFkLCAweDVkLAorICAweGU2LCAweGM3LCAweDQzLCAweGNkLCAweDFlLCAweDM2LCAweGRmLCAweGNiLAorICAweDUxLCAweDRjLCAweGY2LCAweDYwLCAweDdiLCAweDNiLCAweDE0LCAweGEzLAorICAweDhiLCAweGYxLCAweDRhLCAweDBiLCAweDNhLCAweDU0LCAweDQ2LCAweDM4LAorICAweGE3LCAweDE0LCAweDFhLCAweGUxLCAweDNhLCAweGE2LCAweGE0LCAweDA4LAorICAweDVmLCAweGYzLCAweDNkLCAweDZiLCAweGY2LCAweDVjLCAweGMyLCAweGM1LAorICAweDE2LCAweGRiLCAweDY5LCAweGI1LCAweDMwLCAweGFjLCAweDBiLCAweGFmLAorICAweDU2LCAweGUxLCAweDI0LCAweDNjLCAweDJmLCAweDY5LCAweDMzLCAweDNiLAorICAweGJkLCAweGQ2LCAweDE0LCAweDI4LCAweDViLCAweDI0LCAweDlkLCAweDQ2LAorICAweGI1LCAweDVlLCAweGEwLCAweGIyLCAweDczLCAweDUxLCAweDBkLCAweDA0LAorICAweDZjLCAweDBmLCAweDM4LCAweDk3LCAweGVkLCAweGNkLCAweGFhLCAweDU1LAorICAweGEzLCAweGI1LCAweDdlLCAweDk2LCAweDIyLCAweGMxLCAweDE2LCAweDJkLAorICAweGQ0LCAweDdjLCAweGU5LCAweGQ0LCAweGQ5LCAweGYzLCAweDYzLCAweDg2LAorICAweGZjLCAweGQyLCAweDgyLCAweGRkLCAweDQ0LCAweDg2LCAweGY1LCAweDA1LAorICAweGU1LCAweDVmLCAweDgyLCAweGUyLCAweDQ3LCAweGI5LCAweDY5LCAweGI1LAorICAweDAzLCAweDRkLCAweDMxLCAweGMwLCAweDQzLCAweGEzLCAweGIwLCAweGZhLAorICAweGNiLCAweDZiLCAweDA5LCAweDIzLCAweDNmLCAweDZiLCAweDcyLCAweDI4LAorICAweDk3LCAweGYyLCAweGFmLCAweDljLCAweDljLCAweDFiLCAweDQ4LCAweGI0LAorICAweDhiLCAweDFmLCAweDNhLCAweDBkLCAweDE1LCAweDJiLCAweDgyLCAweDE4LAorICAweGY5LCAweDk2LCAweDBhLCAweGZjLCAweDA2LCAweGYzLCAweDNlLCAweDg5LAorICAweDRjLCAweDhhLCAweDY0LCAweGFhLCAweDQzLCAweDg0LCAweDdkLCAweDgyLAorICAweGUzLCAweGEyLCAweGM1LCAweDYyLCAweDMyLCAweDUxLCAweGRhLCAweGExLAorICAweGMwLCAweGUwLCAweGFjLCAweDczLCAweDkxLCAweDliLCAweGZlLCAweDQ5LAorICAweDlhLCAweGM3LCAweDQzLCAweGQ5LCAweDMyLCAweGQwLCAweDJmLCAweDJhLAorICAweDI1LCAweGE4LCAweDk5LCAweDIyLCAweGU1LCAweDRkLCAweDA4LCAweGNjLAorICAweGE0LCAweGY0LCAweDZhLCAweDM0LCAweDFmLCAweDhmLCAweGQ4LCAweDVmLAorICAweDhhLCAweDU3LCAweGFkLCAweGM4LCAweDhkLCAweDRmLCAweDI3LCAweDUwLAorICAweDA1LCAweDEyLCAweGI2LCAweDgzLCAweDgzLCAweDM1LCAweDgyLCAweDJkLAorICAweDMwLCAweDg5LCAweDc4LCAweDY4LCAweDVjLCAweDA5LCAweDk1LCAweGQxLAorICAweDkwLCAweDM4LCAweDE3LCAweGI2LCAweDg4LCAweGEwLCAweDFjLCAweDMwLAorICAweDBhLCAweDZjLCAweDk0LCAweDE2LCAweDIwLCAweGIwLCAweDBhLCAweDhmLAorICAweDBjLCAweGM5LCAweGFhLCAweGU2LCAweDg0LCAweDgyLCAweGZmLCAweDZhLAorICAweDI1LCAweGMxLCAweDFjLCAweDFjLCAweGJjLCAweDA1LCAweGMxLCAweDYxLAorICAweGViLCAweDYzLCAweGNlLCAweDJiLCAweDFlLCAweDJhLCAweDRiLCAweDA0LAorICAweDdjLCAweDYxLCAweDlmLCAweDhlLCAweDk5LCAweGZkLCAweDQ5LCAweGEwLAorICAweDc4LCAweDQzLCAweGZmLCAweGIyLCAweGUxLCAweDVmLCAweDNkLCAweGVjLAorICAweDA2LCAweGU4LCAweDk0LCAweGJmLCAweDY3LCAweDQzLCAweGRiLCAweGZjLAorICAweGYzLCAweDdjLCAweGVkLCAweGMzLCAweGY4LCAweGE1LCAweDExLCAweGEwLAorICAweDU4LCAweDA0LCAweDVlLCAweGFiLCAweDU0LCAweDk5LCAweDI5LCAweDUzLAorICAweDBhLCAweDg3LCAweGYxLCAweDIwLCAweDc4LCAweGFjLCAweDE4LCAweDNkLAorICAweDJlLCAweDEyLCAweGM0LCAweDg2LCAweGQxLCAweDI4LCAweGZjLCAweDAzLAorICAweDcxLCAweDM4LCAweGY4LCAweDE1LCAweGIxLCAweGFkLCAweDQ3LCAweDAzLAorICAweGE2LCAweGNjLCAweDdkLCAweDUzLCAweDE2LCAweDk0LCAweDFkLCAweDE3LAorICAweDIyLCAweGRmLCAweGUzLCAweGVmLCAweDg5LCAweDc3LCAweGEzLCAweGQ2LAorICAweDg3LCAweDk4LCAweDliLCAweGY3LCAweDFhLCAweDFmLCAweGIzLCAweGFkLAorICAweGIwLCAweDVjLCAweDIzLCAweDI0LCAweDRlLCAweGNhLCAweDQ2LCAweDEzLAorICAweGViLCAweDcxLCAweGFhLCAweDIzLCAweDQ2LCAweDVhLCAweGY4LCAweDkzLAorICAweGY2LCAweDM3LCAweGY3LCAweDI2LCAweDgyLCAweGI1LCAweDNiLCAweDdkLAorICAweGY0LCAweGY1LCAweGM5LCAweDk4LCAweDAxLCAweDY1LCAweGI1LCAweDUwLAorICAweGY1LCAweDRkLCAweGNmLCAweDM2LCAweGFkLCAweGIxLCAweGQ0LCAweGZmLAorICAweDliLCAweDRjLCAweGM3LCAweGVmLCAweDgwLCAweGNiLCAweDBhLCAweGQzLAorICAweDJiLCAweGYzLCAweDZjLCAweDdmLCAweDIyLCAweGQ3LCAweDJlLCAweDAxLAorICAweDVmLCAweDU5LCAweGI5LCAweDJjLCAweGJmLCAweGY2LCAweGM4LCAweGYzLAorICAweGQxLCAweDg1LCAweDQwLCAweDdkLCAweDMwLCAweDA2LCAweDA4LCAweDBjLAorICAweGI1LCAweDc4LCAweGMwLCAweDJhLCAweGM0LCAweGI0LCAweGFkLCAweDgwLAorICAweDY5LCAweDdhLCAweDk1LCAweDY5LCAweGM3LCAweGE5LCAweGQ0LCAweDMzLAorICAweDU3LCAweGYxLCAweDc0LCAweDEyLCAweGZjLCAweGQzLCAweDRkLCAweDYyLAorICAweDk2LCAweDk0LCAweGVmLCAweDQ0LCAweDgxLCAweGJkLCAweDFiLCAweDc4LAorICAweGMwLCAweGI5LCAweDIwLCAweGY4LCAweDc5LCAweDA3LCAweDg5LCAweGM0LAorICAweDA2LCAweDg3LCAweGM5LCAweDMyLCAweGYxLCAweGE2LCAweDFiLCAweGQ0LAorICAweDgxLCAweDAxLCAweDVjLCAweDU0LCAweGFkLCAweDlmLCAweGQwLCAweDYxLAorICAweDA0LCAweDc3LCAweGY5LCAweDMyLCAweGNkLCAweDY5LCAweGI0LCAweGFjLAorICAweDc4LCAweDcyLCAweDk0LCAweDQwLCAweDRkLCAweGVlLCAweGE5LCAweGIzLAorICAweGM5LCAweDk4LCAweGRhLCAweGQ5LCAweDkxLCAweDhmLCAweDJlLCAweGE0LAorICAweDE4LCAweDA3LCAweGQ5LCAweGM4LCAweDAzLCAweGM5LCAweDQ1LCAweDM4LAorICAweDM4LCAweDg5LCAweGZmLCAweGIzLCAweDU3LCAweDY5LCAweDQ2LCAweDM3LAorICAweDM3LCAweGNkLCAweGI1LCAweGY1LCAweDRjLCAweGY3LCAweDkyLCAweGE3LAorICAweDQ4LCAweGFkLCAweGE5LCAweDU3LCAweDkzLCAweDdiLCAweGVmLCAweGFlLAorICAweDU5LCAweGY2LCAweGI2LCAweDE1LCAweGNhLCAweDIyLCAweDNlLCAweDU4LAorICAweDY1LCAweDI2LCAweDRhLCAweDM5LCAweGYwLCAweGY0LCAweDRhLCAweDRhLAorICAweGQ0LCAweGZmLCAweDhhLCAweDk0LCAweDc1LCAweDlmLCAweDI5LCAweGY1LAorICAweGRmLCAweDM2LCAweGEzLCAweDZlLCAweDA3LCAweGJlLCAweGVjLCAweDJkLAorICAweGNmLCAweGM5LCAweGI3LCAweGIxLCAweDZlLCAweGY1LCAweGMxLCAweDg4LAorICAweDQzLCAweGYxLCAweDdmLCAweDgxLCAweGMwLCAweGE0LCAweDA0LCAweDUwLAorICAweDZlLCAweDE2LCAweDdjLCAweDNmLCAweDA1LCAweDU4LCAweDMwLCAweGU0LAorICAweDdhLCAweDBlLCAweDA1LCAweDU4LCAweDMwLCAweDI5LCAweGMxLCAweDhiLAorICAweDRiLCAweDAxLCAweDRjLCAweDBjLCAweGE0LCAweDE4LCAweDQxLCAweDEwLAorICAweDQxLCAweDEwLCAweDE4LCAweDZjLCAweGE0LCAweDNmLCAweDAyLCAweGUwLAorICAweGFhLCAweDA2LCAweDBlLCAweDQxLCAweGYwLCAweDdmLCAweGVkLCAweDBiLAorICAweDY5LCAweDQ0LCAweGI0LCAweGU1LCAweGNkLCAweDVjLCAweDFmLCAweGI0LAorICAweDNmLCAweGQ1LCAweDdjLCAweDZkLCAweGEyLCAweGY2LCAweDhiLCAweGM0LAorICAweDg4LCAweDI0LCAweDJiLCAweDRmLCAweGFjLCAweGVjLCAweGZmLCAweGM3LAorICAweDIwLCAweDY0LCAweDc4LCAweGE5LCAweDIwLCAweDMyLCAweDk2LCAweDFiLAorICAweDhhLCAweGZjLCAweGFjLCAweGFmLCAweGY1LCAweGFjLCAweDZmLCAweDE0LAorICAweGU1LCAweDZkLCAweGE2LCAweGNjLCAweDQ1LCAweDE5LCAweDJhLCAweGU4LAorICAweGQwLCAweDEyLCAweDlmLCAweGMxLCAweGU5LCAweGEwLCAweDAzLCAweGUwLAorICAweDUyLCAweDlhLCAweDgyLCAweDI3LCAweGI3LCAweDdlLCAweDNlLCAweGJkLAorICAweDYwLCAweGI1LCAweGI1LCAweDY1LCAweGNjLCAweGY0LCAweDQyLCAweGVjLAorICAweGJiLCAweDNmLCAweGY0LCAweDg5LCAweDU1LCAweGVmLCAweDQxLCAweDU1LAorICAweDE0LCAweDAzLCAweDIzLCAweDY1LCAweGI1LCAweGFlLCAweDMzLCAweGRkLAorICAweGUxLCAweDg3LCAweDliLCAweGU2LCAweGZhLCAweDIwLCAweDI3LCAweDFmLAorICAweDI3LCAweDk4LCAweGEyLCAweDZkLCAweDJlLCAweDJmLCAweDQ4LCAweDNmLAorICAweDUxLCAweGRlLCAweGRjLCAweDhkLCAweGQ0LCAweGNkLCAweGI2LCAweDU4LAorICAweGE1LCAweDQ2LCAweGRjLCAweDJkLCAweGUxLCAweDY5LCAweDY3LCAweGY4LAorICAweDM2LCAweGE3LCAweDg3LCAweDIzLCAweGY5LCAweDQxLCAweGUwLCAweDYwLAorICAweDQzLCAweDA1LCAweDE0LCAweDAzLCAweDA1LCAweDlkLCAweDA4LCAweDAwLAorICAweDhhLCAweDA4LCAweGI1LCAweDM4LCAweDJhLCAweDgwLCAweGQ2LCAweGFiLAorICAweDEwLCAweGU4LCAweDNjLCAweDE3LCAweGZkLCAweDM0LCAweGI4LCAweDE1LAorICAweGEwLCAweGFhLCAweDhhLCAweGMwLCAweGQ0LCAweDZkLCAweDQyLCAweGVhLAorICAweDQ3LCAweDBhLCAweDAzLCAweGQwLCAweGIxLCAweDI5LCAweGVkLCAweDA2LAorICAweGU5LCAweDdiLCAweDZhLCAweDliLCAweDA2LCAweDYyLCAweDI3LCAweGYwLAorICAweDI4LCAweDg0LCAweDNjLCAweDEwLCAweDAxLCAweDg0LCAweGEwLCAweDYyLAorICAweGQ1LCAweDBkLCAweGViLCAweDJjLCAweDM3LCAweDA3LCAweDlmLCAweDU3LAorICAweDczLCAweGMwLCAweGMyLCAweDAwLCAweDdlLCAweGMwLCAweGVjLCAweDcxLAorICAweDU1LCAweDRjLCAweDY3LCAweGMzLCAweGZhLCAweGNkLCAweDRjLCAweDM4LAorICAweGYzLCAweDNmLCAweDg1LCAweGQwLCAweGM1LCAweGJhLCAweDgwLCAweGY0LAorICAweDRkLCAweDNmLCAweDU2LCAweDliLCAweDY0LCAweDQwLCAweGMyLCAweGYxLAorICAweGQ2LCAweGFiLCAweGVkLCAweGNhLCAweDkzLCAweDA0LCAweGIxLCAweGY2LAorICAweDk3LCAweGY3LCAweDAzLCAweGJmLCAweDUyLCAweGVjLCAweDU3LCAweDUzLAorICAweGNkLCAweGYyLCAweDhhLCAweDViLCAweGVhLCAweGQyLCAweDljLCAweDUxLAorICAweGFhLCAweDY0LCAweGUzLCAweGQ0LCAweDA4LCAweDI1LCAweGU1LCAweGMyLAorICAweDU2LCAweDg0LCAweDJjLCAweDZmLCAweGU1LCAweGRkLCAweDU2LCAweDI0LAorICAweDk3LCAweDI0LCAweDZmLCAweDEzLCAweGE3LCAweDllLCAweGQ2LCAweDA3LAorICAweGNhLCAweGMzLCAweGYxLCAweGM4LCAweGVmLCAweDMyLCAweDJiLCAweGY1LAorICAweDk4LCAweGFiLCAweDVhLCAweGNjLCAweDBmLCAweGQ5LCAweDlmLCAweDFmLAorICAweDc4LCAweGFlLCAweDdmLCAweDJlLCAweGYwLCAweDJjLCAweDYxLCAweDA4LAorICAweDFlLCAweDA2LCAweDA0LCAweDEwLCAweDUzLCAweDAxLCAweGUwLCAweGZjLAorICAweDE4LCAweGIwLCAweDZjLCAweDVjLCAweGEwLCAweDNlLCAweDFjLCAweGQwLAorICAweDNiLCAweDQwLCAweGY5LCAweDY1LCAweDUzLCAweGQwLCAweDYxLCAweDAwLAorICAweDFlLCAweDBiLCAweGZjLCAweGY5LCAweDQxLCAweDU2LCAweDIwLCAweDg4LAorICAweDBhLCAweDQxLCAweDgwLCAweGM3LCAweDQwLCAweGQwLCAweGUwLCAweDNjLAorICAweDA3LCAweGMxLCAweDgwLCAweDU0LCAweDQ2LCAweDBjLCAweGFkLCAweDMwLAorICAweGYwLCAweDFlLCAweDBhLCAweDAyLCAweGY0LCAweGUzLCAweGY2LCAweDg3LAorICAweGRjLCAweDA3LCAweDgxLCAweGZmLCAweDFjLCAweDQ4LCAweDYxLCAweDVhLAorICAweGI0LCAweGJlLCAweDYzLCAweDgwLCAweGFhLCAweDUwLCAweDNmLCAweGZiLAorICAweDJkLCAweDdkLCAweDk2LCAweDY3LCAweDAxLCAweDU1LCAweGQwLCAweGY3LAorICAweGVkLCAweDZlLCAweDg3LCAweGQ2LCAweDk1LCAweGViLCAweDllLCAweGRhLAorICAweGIyLCAweDBlLCAweDFhLCAweDBjLCAweDZjLCAweGE3LCAweGFhLCAweGUxLAorICAweDc5LCAweDg0LCAweGQ5LCAweDk4LCAweDIzLCAweDA5LCAweDZkLCAweGYyLAorICAweDA4LCAweGJkLCAweDY4LCAweDcwLCAweDNjLCAweDFmLCAweGIyLCAweDFlLAorICAweDcxLCAweDQ4LCAweDE4LCAweGVmLCAweDk1LCAweDMyLCAweGM4LCAweDc5LAorICAweGM1LCAweDI1LCAweDQzLCAweDcyLCAweGE0LCAweDZmLCAweDdhLCAweDNhLAorICAweGI5LCAweDU1LCAweDI3LCAweGNhLCAweDVkLCAweDU1LCAweDViLCAweDJjLAorICAweDJmLCAweDJlLCAweGRmLCAweDVjLCAweGZmLCAweDkyLCAweDI1LCAweDYzLAorICAweDdmLCAweDM1LCAweDRlLCAweDc2LCAweDhkLCAweGYyLCAweDliLCAweDk5LAorICAweGZmLCAweDdlLCAweGY0LCAweGIzLCAweGU2LCAweDAzLCAweDEwLCAweDMyLAorICAweDcwLCAweDg2LCAweDBkLCAweDg1LCAweDZhLCAweDNhLCAweDI0LCAweGIwLAorICAweDk5LCAweDZhLCAweDA2LCAweGI4LCAweDIxLCAweDAyLCAweDE4LCAweDMyLAorICAweGU5LCAweDE4LCAweGQwLCAweDc4LCAweDQ4LCAweDBhLCAweGQyLCAweDgzLAorICAweDE1LCAweGIwLCAweGJhLCAweDQ5LCAweDY3LCAweDBiLCAweDE5LCAweDA2LAorICAweDQxLCAweGExLCAweDcwLCAweGU5LCAweDU3LCAweDUyLCAweGU4LCAweDg1LAorICAweGY2LCAweDFiLCAweDU1LCAweDhhLCAweGRhLCAweDEwLCAweDY4LCAweDMzLAorICAweDA5LCAweDgxLCAweGUwLCAweDdmLCAweGI1LCAweDA0LCAweDQ5LCAweGZmLAorICAweDA4LCAweDQwLCAweGFhLCAweDZmLCAweGEzLCAweGNmLCAweGI2LCAweGFjLAorICAweDIxLCAweDJhLCAweDFkLCAweGFiLCAweGY5LCAweDZkLCAweDJjLCAweDZmLAorICAweGNkLCAweGI0LCAweDNlLCAweGQ0LCAweDkzLCAweGZlLCAweGY3LCAweGQ0LAorICAweGIyLCAweDIwLCAweDk5LCAweGJiLCAweGQzLCAweDRhLCAweDc4LCAweDg4LAorICAweDFjLCAweDQxLCAweGE2LCAweDgzLCAweDY1LCAweGMwLCAweDdiLCAweGMzLAorICAweDgxLCAweGNhLCAweDQxLCAweDIxLCAweDUwLCAweDgyLCAweGRlLCAweDJhLAorICAweDY4LCAweGI3LCAweGM5LCAweGJjLCAweDFmLCAweGFiLCAweGZhLCAweGRlLAorICAweDU1LCAweGUyLCAweGRlLCAweDBlLCAweDU5LCAweGZmLCAweDJhLCAweDg2LAorICAweGIzLCAweGJmLCAweGQ1LCAweDE1LCAweDQ0LCAweDU5LCAweGU2LCAweDZkLAorICAweDA2LCAweDYwLCAweGFiLCAweDA3LCAweDIwLCAweGEwLCAweDk1LCAweGIwLAorICAweDJkLCAweDA0LCAweDExLCAweDI4LCAweGI1LCAweDkyLCAweGJkLCAweDY4LAorICAweDBjLCAweDQyLCAweGRlLCAweGI2LCAweDA2LCAweDczLCAweDVhLCAweDJhLAorICAweDVjLCAweDczLCAweDliLCAweGUwLCAweGVlLCAweDU4LCAweGUwLCAweGI4LAorICAweDA3LCAweDQwLCAweGY4LCAweDQyLCAweDFkLCAweGIyLCAweDBjLCAweDVjLAorICAweGMwLCAweGY4LCAweDdhLCAweDk4LCAweGJkLCAweGJmLCAweDgzLCAweDJiLAorICAweDAzLCAweGM1LCAweGYxLCAweGE1LCAweDVmLCAweDlmLCAweGRjLCAweDYzLAorICAweDJmLCAweGZiLCAweGFjLCAweGU2LCAweDJlLCAweDliLCAweDY1LCAweDRlLAorICAweGQwLCAweDE4LCAweDRlLCAweDU4LCAweGRkLCAweGE1LCAweGIyLCAweDY3LAorICAweDVhLCAweDZjLCAweDA1LCAweDFlLCAweDA2LCAweDYwLCAweDFiLCAweDAwLAorICAweGYwLCAweGVjLCAweDE0LCAweDFmLCAweDRlLCAweDlkLCAweDI0LCAweDU2LAorICAweGM4LCAweDQzLCAweDY0LCAweDdlLCAweDVhLCAweGFmLCAweDY2LCAweDZiLAorICAweDZhLCAweGIxLCAweDg0LCAweGVjLCAweGIxLCAweGUwLCAweDU1LCAweDZkLAorICAweGY1LCAweDAzLCAweDU2LCAweDcwLCAweDczLCAweDc3LCAweDNiLCAweDdmLAorICAweGY1LCAweDliLCAweDJkLCAweDYyLCAweDQwLCAweDE4LCAweDZhLCAweGY1LAorICAweDFmLCAweGM1LCAweGY3LCAweGEzLCAweDJlLCAweDNmLCAweDVjLCAweDk4LAorICAweDQyLCAweDA4LCAweDIxLCAweDA5LCAweDYwLCAweDc4LCAweDNmLCAweGY4LAorICAweDQ3LCAweDQzLCAweGY2LCAweGE5LCAweDI3LCAweDBhLCAweDFlLCAweDMzLAorICAweDAzLCAweGVhLCAweGZjLCAweDA4LCAweDYxLCAweDA4LCAweDdkLCAweGE1LAorICAweGM5LCAweGU2LCAweGNkLCAweGNlLCAweDdkLCAweDgxLCAweGZiLCAweDQzLAorICAweGQxLCAweGY4LCAweDkwLCAweDNjLCAweGFhLCAweGFmLCAweDUzLCAweDk2LAorICAweDQyLCAweGZhLCAweDk4LCAweGJjLCAweDNjLCAweDhjLCAweDJmLCAweGQyLAorICAweGM4LCAweGE1LCAweGFmLCAweGE5LCAweDkzLCAweGY5LCAweDZiLCAweDgyLAorICAweDU4LCAweDI4LCAweGMwLCAweGY4LCAweGZkLCAweDg1LCAweDRhLCAweDk1LAorICAweDBlLCAweDU5LCAweGZlLCAweGVlLCAweDE2LCAweGFiLCAweDZlLCAweDMwLAorICAweGMzLCAweDRjLCAweDRmLCAweGIzLCAweGZlLCAweDM3LCAweGZlLCAweDRkLAorICAweGNmLCAweDY2LCAweDRkLCAweDZmLCAweDc5LCAweGZiLCAweGM5LCAweGM4LAorICAweGJmLCAweDIxLCAweGMzLCAweDAzLCAweGRmLCAweDg0LCAweDBhLCAweGMwLAorICAweGU1LCAweDI4LCAweGY4LCAweDBlLCAweDhlLCAweDgzLCAweGZmLCAweGNmLAorICAweDI3LCAweDJmLCAweDU0LCAweGI4LCAweGU1LCAweDUyLCAweGFlLCAweGY5LAorICAweGI5LCAweDM3LCAweDFiLCAweDk3LCAweDYyLCAweDhmLCAweDI5LCAweDk2LAorICAweGU2LCAweGFjLCAweDZlLCAweDFjLCAweGI2LCAweGRlLCAweDIxLCAweGU0LAorICAweDM0LCAweGVkLCAweDcxLCAweDliLCAweDY5LCAweGZlLCAweGFjLCAweDRhLAorICAweDRhLCAweDA3LCAweDU1LCAweDJiLCAweDA4LCAweDQyLCAweDFhLCAweDQ2LAorICAweGUyLCAweDUxLCAweDA4LCAweDdhLCAweDIxLCAweDdjLCAweDBlLCAweDY4LAorICAweDM0LCAweDExLCAweDkyLCAweGQ1LCAweDZjLCAweGY5LCAweGE1LCAweDRhLAorICAweDc1LCAweDUyLCAweDU2LCAweDA0LCAweDExLCAweGZiLCAweDU1LCAweDE2LAorICAweGE4LCAweGQ1LCAweDdlLCAweGI4LCAweDM4LCAweDkzLCAweDdmLCAweGJiLAorICAweGEwLCAweGIyLCAweDI4LCAweGQwLCAweDMzLCAweDYyLCAweDU4LCAweDk0LAorICAweDljLCAweDc4LCAweDNmLCAweDQ4LCAweGE4LCAweDRhLCAweGEyLCAweDFhLAorICAweDk2LCAweGIwLCAweGIxLCAweDUyLCAweDQyLCAweGY1LCAweDQ5LCAweGZkLAorICAweDM2LCAweDY2LCAweGVhLCAweGZlLCAweDllLCAweDZmLCAweGRiLCAweDkzLAorICAweDc5LCAweDZhLCAweDI1LCAweGQ3LCAweGUzLCAweGVjLCAweDAzLCAweDViLAorICAweDFmLCAweDBmLCAweDQ3LCAweDYzLCAweGUxLCAweGY0LCAweDFkLCAweDBmLAorICAweDAwLCAweGU4LCAweGY5LCAweGFmLCAweDI2LCAweDRlLCAweGNhLCAweDdhLAorICAweDk0LCAweDdhLCAweGMxLCAweDc3LCAweGQ1LCAweDA3LCAweGRmLCAweGQyLAorICAweGRmLCAweDU2LCAweDliLCAweGZhLCAweDVjLCAweDYxLCAweDk5LCAweDY1LAorICAweDZiLCAweGMwLCAweDY1LCAweDgyLCAweGJmLCAweGE5LCAweGEzLCAweDg5LAorICAweDAyLCAweGQ0LCAweGMyLCAweDA2LCAweDBlLCAweDgwLCAweDMxLCAweGEwLAorICAweDc4LCAweDJmLCAweGY5LCAweDQ0LCAweDA2LCAweDE4LCAweDliLCAweDdlLAorICAweGFjLCAweDFlLCAweDBiLCAweGZkLCAweDlmLCAweDgyLCAweDg1LCAweDkxLAorICAweDI4LCAweDE4LCAweDM4LCAweGY3LCAweDA0LCAweDI4LCAweDIzLCAweGU4LAorICAweDMwLCAweDE4LCAweDEwLCAweDE4LCAweDUxLCAweGVjLCAweGUwLCAweDJiLAorICAweDI3LCAweGM1LCAweDdkLCAweDUxLCAweGRlLCAweDc1LCAweDc0LCAweDI3LAorICAweGI1LCAweGMxLCAweDY2LCAweGMwLCAweDhlLCAweDEwLCAweGNiLCAweGQyLAorICAweDgzLCAweDMyLCAweDIxLCAweDI2LCAweDEyLCAweDA3LCAweGYxLCAweDM3LAorICAweGJlLCAweGFmLCAweDUyLCAweDQ0LCAweGNkLCAweDQwLCAweDZjLCAweDEyLAorICAweGZiLCAweGNjLCAweGVmLCAweDAzLCAweGZiLCAweDkwLCAweDIxLCAweGE0LAorICAweGVmLCAweDc0LCAweDE4LCAweGQyLCAweDliLCAweDNjLCAweDIyLCAweDFmLAorICAweDE0LCAweDAxLCAweGUwLCAweDUxLCAweDYyLCAweDY2LCAweDUyLCAweDQwLAorICAweDNiLCAweGEyLCAweDRlLCAweDA5LCAweDVlLCAweDA1LCAweDNmLCAweGM3LAorICAweGMwLCAweGE3LCAweGNiLCAweDQ3LCAweDIwLCAweGFhLCAweDhjLCAweDhlLAorICAweDE0LCAweGYwLCAweGI3LCAweGEzLCAweDgwLCAweDIzLCAweGMyLCAweGMwLAorICAweGU3LCAweDg3LCAweGNkLCAweDI0LCAweDZjLCAweDQ5LCAweDAzLCAweDgyLAorICAweDE4LCAweDMxLCAweDVlLCAweDE3LCAweGM2LCAweDlhLCAweGJjLCAweDYwLAorICAweDFlLCAweDBiLCAweGZkLCAweGIxLCAweDI4LCAweDEwLCAweGMyLCAweDEzLAorICAweDVmLCAweGEzLCAweDc1LCAweDA1LCAweDhkLCAweDg5LCAweDI1LCAweGM1LAorICAweDViLCAweGY1LCAweDBhLCAweDc4LCAweDA1LCAweGJlLCAweGYyLCAweDFhLAorICAweGNhLCAweDg2LCAweDgwLCAweGM3LCAweDlhLCAweDU1LCAweGU5LCAweDMzLAorICAweGRlLCAweDJiLCAweGZlLCAweGZmLCAweDc0LCAweDQ1LCAweGRiLCAweDc3LAorICAweDc2LCAweDk1LCAweGRmLCAweGZmLCAweDZkLCAweGFmLCAweDM1LCAweDhmLAorICAweDc5LCAweDAxLCAweDY0LCAweDkxLCAweDEwLCAweGNjLCAweDU1LCAweGFlLAorICAweDY4LCAweDE0LCAweDAwLCAweGNkLCAweDBmLCAweDE5LCAweDU2LCAweDU2LAorICAweDM5LCAweGM2LCAweDJlLCAweDc5LCAweGE2LCAweGI1LCAweDcwLCAweGU2LAorICAweDkwLCAweDZhLCAweDBjLCAweGIyLCAweGE5LCAweDNkLCAweGRlLCAweDE2LAorICAweGI2LCAweGRmLCAweGY1LCAweDQ0LCAweDU5LCAweDRkLCAweGRiLCAweGQ3LAorICAweGM3LCAweGQ0LCAweDA2LCAweGQwLCAweDA3LCAweDAzLCAweDk3LCAweDNmLAorICAweGExLCAweGE0LCAweDQ4LCAweDgxLCAweGM3LCAweDVhLCAweDFiLCAweDBmLAorICAweDZkLCAweDMzLCAweGE2LCAweDJkLCAweGYwLCAweGU4LCAweGI5LCAweDhlLAorICAweDBlLCAweDEzLCAweDMwLCAweGQ0LCAweDM1LCAweGU2LCAweGJkLCAweDgxLAorICAweDkxLCAweDg0LCAweDBiLCAweDMyLCAweDJjLCAweDJmLCAweDA5LCAweDlkLAorICAweDlkLCAweDNmLCAweGU1LCAweDM0LCAweDExLCAweGNlLCAweDYyLCAweDE5LAorICAweGQyLCAweDllLCAweDNmLCAweDRlLCAweDc4LCAweDBlLCAweDI1LCAweDE5LAorICAweDExLCAweGY1LCAweDAwLCAweDNjLCAweDk0LCAweDIzLCAweGRjLCAweDA3LAorICAweDIzLCAweDM5LCAweDkxLCAweGEzLCAweGUxLCAweGU1LCAweDAyLCAweDQzLAorICAweDRkLCAweDNmLCAweDUxLCAweDgyLCAweGM0LCAweDFjLCAweDJlLCAweGViLAorICAweGNmLCAweGMxLCAweGYzLCAweDBkLCAweDI3LCAweGI5LCAweDkzLCAweDc0LAorICAweDczLCAweDM3LCAweDZkLCAweGQwLCAweDMzLCAweDllLCAweGVhLCAweDM5LAorICAweDE0LCAweGEyLCAweGVhLCAweDIyLCAweGNlLCAweDczLCAweDg4LCAweDg4LAorICAweDU0LCAweGE4LCAweGM0LCAweGMyLCAweGQ1LCAweDBiLCAweDJjLCAweDM3LAorICAweGUyLCAweGRkLCAweDg4LCAweDQ0LCAweGM2LCAweGMxLCAweDVkLCAweDVjLAorICAweGFlLCAweGVjLCAweGE4LCAweGQ0LCAweDQ0LCAweDFjLCAweGFhLCAweDNiLAorICAweGQ1LCAweDkwLCAweDIwLCAweDlkLCAweDQzLCAweGMzLCAweDgzLCAweDcxLAorICAweGVhLCAweDgyLCAweGY2LCAweGM0LCAweDBiLCAweDFhLCAweGZmLCAweDQwLAorICAweDg3LCAweGQ4LCAweDBmLCAweDY2LCAweGYzLCAweGYyLCAweDcyLCAweDZhLAorICAweGQ2LCAweDExLCAweGFkLCAweGVmLCAweGQ5LCAweGEwLCAweGMxLCAweGVmLAorICAweGUxLCAweDU5LCAweDU2LCAweDc3LCAweDk1LCAweDQ0LCAweDg4LCAweDQ0LAorICAweDVlLCAweGYyLCAweDIyLCAweGVhLCAweGNlLCAweDE1LCAweDI2LCAweGY2LAorICAweDI0LCAweDliLCAweGI5LCAweGI3LCAweGE4LCAweDU0LCAweGQ2LCAweDY1LAorICAweGJjLCAweGUyLCAweGQxLCAweDZmLCAweDRlLCAweDQ1LCAweDkwLCAweDhjLAorICAweGNlLCAweGY2LCAweDIzLCAweDhiLCAweGMzLCAweDQzLCAweDVhLCAweDlhLAorICAweGRlLCAweGUyLCAweDgyLCAweGQwLCAweGZiLCAweGVkLCAweGIyLCAweDFlLAorICAweDQxLCAweGMyLCAweDA1LCAweDA4LCAweDA2LCAweGQ3LCAweDU0LCAweGYxLAorICAweDFjLCAweDk1LCAweDcxLCAweDQxLCAweDRhLCAweGQzLCAweDcyLCAweGM1LAorICAweGI5LCAweDkzLCAweDZkLCAweGQ2LCAweGIzLCAweGE4LCAweGFhLCAweGM4LAorICAweGVkLCAweDhiLCAweGM1LCAweGQ2LCAweDk3LCAweDQ5LCAweGQ3LCAweDlkLAorICAweDg5LCAweGU0LCAweDkxLCAweDY5LCAweDJjLCAweGRhLCAweGJhLCAweGQ2LAorICAweDBkLCAweDgzLCAweGRlLCAweGM1LCAweGM2LCAweDI2LCAweGZhLCAweDgxLAorICAweGU5LCAweDU2LCAweGVhLCAweDliLCAweDI3LCAweDM2LCAweGEzLCAweGU3LAorICAweDJhLCAweGNiLCAweDJjLCAweDhiLCAweGEzLCAweDcxLCAweDk5LCAweGU1LAorICAweDliLCAweGM0LCAweDEwLCAweDMzLCAweGExLCAweDVjLCAweDRkLCAweDQ1LAorICAweDYyLCAweDAyLCAweGFiLCAweDkzLCAweDlmLCAweDUxLCAweDIwLCAweDc3LAorICAweGU1LCAweDM3LCAweDcyLCAweGEwLCAweDk1LCAweDc0LCAweDVjLCAweDVlLAorICAweGE5LCAweDU4LCAweDZhLCAweDMzLCAweGZhLCAweGJmLCAweDBmLCAweGY5LAorICAweGE5LCAweDhiLCAweDc1LCAweGFmLCAweDU4LCAweDViLCAweGNjLCAweGZiLAorICAweDE3LCAweDQzLCAweGQyLCAweGFlLCAweGY5LCAweDQ3LCAweGI2LCAweDFiLAorICAweGRlLCAweGM1LCAweGQxLCAweGFlLCAweDhkLCAweGViLCAweDM3LCAweGU1LAorICAweGYzLCAweDNlLCAweGMyLCAweDlmLCAweDY5LCAweDZlLCAweGI3LCAweGYwLAorICAweDIxLCAweDIyLCAweDJlLCAweDc2LCAweDQ5LCAweDU3LCAweDQ1LCAweDU2LAorICAweDQwLCAweDhkLCAweGUyLCAweDU0LCAweDhhLCAweDhiLCAweDRiLCAweDZjLAorICAweDY4LCAweDcwLCAweGMyLCAweDJmLCAweDdiLCAweDk5LCAweDE2LCAweGVmLAorICAweDU0LCAweGM4LCAweGEzLCAweGExLCAweGVhLCAweDNlLCAweGRhLCAweGI4LAorICAweDU2LCAweGE1LCAweGJjLCAweDIwLCAweGFiLCAweGEyLCAweGFmLCAweDI3LAorICAweGEyLCAweGViLCAweGExLCAweDliLCAweDMyLCAweDRkLCAweGE2LCAweGY4LAorICAweDFjLCAweDY4LCAweDYxLCAweDQ1LCAweDdhLCAweGIzLCAweDZiLCAweDRkLAorICAweDBlLCAweDNmLCAweGZiLCAweGI4LCAweDhlLCAweDdlLCAweGY3LCAweDg1LAorICAweDhiLCAweDU1LCAweDFjLCAweGU2LCAweDRlLCAweDczLCAweGJjLCAweDhiLAorICAweDA5LCAweDg4LCAweGZlLCAweDM3LCAweGE1LCAweDlkLCAweGI2LCAweDViLAorICAweDY3LCAweDM4LCAweDgwLCAweGQ3LCAweDdiLCAweGMyLCAweDUzLCAweGFlLAorICAweDU4LCAweGIyLCAweGQ5LCAweGI2LCAweGFlLCAweDRiLCAweDBkLCAweGFmLAorICAweDRkLCAweDk0LCAweDNiLCAweDVjLCAweGZlLCAweDlhLCAweGI4LCAweDkwLAorICAweDE1LCAweGJmLCAweDU2LCAweGI2LCAweGI3LCAweDcyLCAweDJkLCAweDdkLAorICAweDY1LCAweDk2LCAweDA4LCAweDkwLCAweGFiLCAweGJhLCAweGE0LCAweGQxLAorICAweDExLCAweDVhLCAweDNjLCAweGNkLCAweDYyLCAweDU5LCAweDNlLCAweGM0LAorICAweGU2LCAweGY2LCAweGFjLCAweGE0LCAweGFlLCAweDU5LCAweGIzLCAweGJhLAorICAweGE3LCAweDg4LCAweGZiLCAweDI4LCAweGRlLCAweDcyLCAweDExLCAweGQ4LAorICAweGUzLCAweGIyLCAweDIzLCAweDk1LCAweDA1LCAweDVhLCAweDhjLCAweDE2LAorICAweGVhLCAweGYwLCAweGRjLCAweDU5LCAweDAxLCAweDNjLCAweGZmLCAweDU0LAorICAweGUxLCAweDY1LCAweGY1LCAweGU1LCAweDBmLCAweDJkLCAweDU4LCAweDYzLAorICAweDdiLCAweDljLCAweGUzLCAweGQ5LCAweDdhLCAweGIxLCAweDJmLCAweDdiLAorICAweDI4LCAweDRiLCAweDEzLCAweDRkLCAweDMzLCAweDAzLCAweDg2LCAweDJmLAorICAweGJjLCAweDFlLCAweGRjLCAweDkxLCAweDFmLCAweDdiLCAweDc5LCAweDAwLAorICAweGFlLCAweGFkLCAweGRlLCAweGYxLCAweDE4LCAweDUwLCAweDRkLCAweDgwLAorICAweDMzLCAweDlkLCAweGI5LCAweGNhLCAweDUwLCAweDhmLCAweDg0LCAweGFiLAorICAweGYwLCAweDk5LCAweDU1LCAweDczLCAweDczLCAweGRjLCAweDZiLCAweDJlLAorICAweDdmLCAweDljLCAweDlmLCAweDExLCAweDIwLCAweDJiLCAweGUyLCAweDk1LAorICAweGM5LCAweGExLCAweGFiLCAweDI0LCAweDkzLCAweGIwLCAweGQxLCAweDUxLAorICAweDUyLCAweDA1LCAweGQ2LCAweDBjLCAweDVmLCAweDc4LCAweDRiLCAweDRmLAorICAweGQ0LCAweGM0LCAweDZhLCAweDkyLCAweGZhLCAweDZiLCAweDZhLCAweDc2LAorICAweGY0LCAweDczLCAweDYyLCAweDhlLCAweDZhLCAweGNhLCAweDE2LCAweDQzLAorICAweDA2LCAweGQzLCAweGE4LCAweGMyLCAweDliLCAweGIwLCAweDcyLCAweGNhLAorICAweGE5LCAweGY4LCAweGI0LCAweDFmLCAweGIwLCAweGRmLCAweGJhLCAweDQ5LAorICAweGIzLCAweDk2LCAweDBkLCAweGQxLCAweDJlLCAweDY4LCAweDRlLCAweDgzLAorICAweDEwLCAweDQxLCAweGFkLCAweGI3LCAweDM2LCAweGRlLCAweGI3LCAweGNlLAorICAweGYwLCAweGI3LCAweDE2LCAweDVhLCAweGUyLCAweGQ3LCAweDk2LCAweDBhLAorICAweGNiLCAweGUyLCAweGFjLCAweGViLCAweDA1LCAweDU3LCAweDkxLCAweDk5LAorICAweDc4LCAweDhmLCAweDhiLCAweGY3LCAweDE2LCAweDVmLCAweDkwLCAweDI4LAorICAweDViLCAweDZiLCAweGEyLCAweGVlLCAweGY3LCAweGEwLCAweGY1LCAweDMwLAorICAweDAxLCAweDg0LCAweGJkLCAweDA1LCAweGUwLCAweDNhLCAweDFiLCAweDA0LAorICAweGQ1LCAweDU2LCAweGQzLCAweDYxLCAweDhjLCAweGEwLCAweGUwLCAweDFlLAorICAweDcyLCAweGE5LCAweGY5LCAweDEwLCAweDFmLCAweGQzLCAweGEzLCAweDY4LAorICAweGNhLCAweDExLCAweDFkLCAweDJjLCAweGE2LCAweDlhLCAweDg4LCAweGFlLAorICAweDI5LCAweGU3LCAweGFmLCAweGZkLCAweDNmLCAweGMxLCAweGNlLCAweDdiLAorICAweGZjLCAweDUzLCAweGVjLCAweDZmLCAweDkwLCAweDQxLCAweGNjLCAweGIzLAorICAweDE5LCAweGU2LCAweDBlLCAweDY2LCAweGE4LCAweDczLCAweDUyLCAweGIxLAorICAweGE0LCAweDIwLCAweGU0LCAweDQ3LCAweDBjLCAweGI0LCAweGFkLCAweDliLAorICAweGY2LCAweDczLCAweGU5LCAweGFlLCAweDdiLCAweDJjLCAweDJjLCAweGY5LAorICAweDZjLCAweDA1LCAweDZjLCAweDBlLCAweDU0LCAweDQxLCAweGI1LCAweGU4LAorICAweGM1LCAweDE4LCAweGE5LCAweDRhLCAweDgxLCAweGMyLCAweDhhLCAweDk4LAorICAweGFhLCAweGYyLCAweGNlLCAweDdmLCAweGRlLCAweGZmLCAweGFhLCAweDM2LAorICAweDk5LCAweGY3LCAweDk5LCAweDZiLCAweDc5LCAweDdhLCAweDU2LCAweGMzLAorICAweDMzLCAweDVhLCAweGRlLCAweDZjLCAweDliLCAweDE0LCAweGU1LCAweGU2LAorICAweGU2LCAweDY4LCAweGRmLCAweDIzLCAweGRlLCAweGVmLCAweDU3LCAweGVkLAorICAweGI2LCAweGRiLCAweGQ0LCAweDNkLCAweGI0LCAweDk2LCAweGExLCAweGI0LAorICAweDhkLCAweDA1LCAweDI0LCAweDgwLCAweGUyLCAweDUxLCAweGFmLCAweGU4LAorICAweDNmLCAweDdjLCAweDAwLCAweDcyLCAweDEzLCAweGM2LCAweGMyLCAweGQwLAorICAweDJiLCAweDI2LCAweDhlLCAweDc0LCAweDdjLCAweDNjLCAweGQ2LCAweDYyLAorICAweDhiLCAweDE1LCAweGZjLCAweDc0LCAweDNjLCAweGZhLCAweDU5LCAweDczLAorICAweDg1LCAweDk3LCAweDEzLCAweGZkLCAweDM1LCAweDU3LCAweDJiLCAweDUzLAorICAweDI0LCAweDZhLCAweDk2LCAweGY1LCAweGE1LCAweDEyLCAweDdhLCAweGUyLAorICAweDg4LCAweDc5LCAweDU0LCAweGU5LCAweDA3LCAweDgzLCAweGY1LCAweDEwLAorICAweDdlLCAweDkzLCAweGM5LCAweDdkLCAweDJhLCAweDllLCAweDM3LCAweGFhLAorICAweGZkLCAweDRiLCAweDc4LCAweDM3LCAweDJkLCAweDYxLCAweGI2LCAweDFiLAorICAweDI5LCAweDBmLCAweDU0LCAweDdkLCAweDZiLCAweGY5LCAweGE1LCAweDk4LAorICAweDdhLCAweGFmLCAweDQxLCAweDYzLCAweGQwLCAweGMwLCAweGViLCAweDE5LAorICAweDgzLCAweDgxLCAweDNhLCAweGQ5LCAweDA2LCAweDI0LCAweGFmLCAweGEzLAorICAweDQ0LCAweGM0LCAweDliLCAweGNhLCAweDM3LCAweGNjLCAweDJjLCAweDUxLAorICAweDIyLCAweDhhLCAweGQ2LCAweDU2LCAweDBiLCAweDI0LCAweDkyLCAweDM1LAorICAweDU4LCAweGIwLCAweDcwLCAweDIwLCAweDRjLCAweGM5LCAweGU4LCAweGMxLAorICAweDYwLCAweGUwLCAweGIyLCAweDRmLCAweDI4LCAweDUxLCAweDBmLCAweDI5LAorICAweDMxLCAweGE5LCAweGQ4LCAweGE5LCAweGE0LCAweGM5LCAweGE2LCAweGYzLAorICAweGI4LCAweDNlLCAweDFlLCAweDI0LCAweDJlLCAweDliLCAweDczLCAweGFhLAorICAweDJiLCAweDcwLCAweGI5LCAweDg2LCAweDg3LCAweDNiLCAweDkzLCAweDdmLAorICAweDMwLCAweGI1LCAweDRhLCAweDgyLCAweGRmLCAweGE4LCAweGUyLCAweDlhLAorICAweDdjLCAweGNmLCAweDRmLCAweDdlLCAweDliLCAweDJiLCAweDE5LCAweDA1LAorICAweDVhLCAweDhjLCAweDI0LCAweDA3LCAweDEyLCAweDkxLCAweGU5LCAweDhiLAorICAweDQ0LCAweDg0LCAweDkzLCAweDQ3LCAweDI5LCAweGQ4LCAweDFmLCAweDA5LAorICAweDU0LCAweDc3LCAweDM2LCAweDk2LCAweDI3LCAweDA2LCAweDUwLCAweDNlLAorICAweGYyLCAweDU5LCAweGZmLCAweDg3LCAweDZjLCAweGZkLCAweDJlLCAweDM1LAorICAweDg5LCAweGVmLCAweGVhLCAweDlkLCAweDJkLCAweGJiLCAweGY1LCAweDJkLAorICAweGFmLCAweDJkLCAweGJkLCAweDc4LCAweDk1LCAweDM4LCAweGUxLCAweGI0LAorICAweGRhLCAweGM3LCAweGQzLCAweDM0LCAweDNmLCAweDUzLCAweDI0LCAweGFhLAorICAweDkzLCAweGUzLCAweDRjLCAweGIxLCAweGJmLCAweGMxLCAweGI1LCAweGZiLAorICAweDVhLCAweGE3LCAweDBhLCAweGJmLCAweDI2LCAweGFmLCAweDJmLCAweDJhLAorICAweDI0LCAweDRlLCAweDQ0LCAweDRhLCAweDQ5LCAweDkzLCAweDFhLCAweGY5LAorICAweDZiLCAweDc5LCAweGFjLCAweGFmLCAweGM1LCAweDNjLCAweGNiLCAweGNhLAorICAweDZlLCAweDUwLCAweDYwLCAweGE1LCAweDNkLCAweGYzLCAweDc4LCAweGIzLAorICAweDVjLCAweDQ0LCAweGE2LCAweGZjLCAweGQ2LCAweDhjLCAweGJhLCAweDhjLAorICAweDFkLCAweDQ4LCAweDA2LCAweDEwLCAweDlhLCAweDg4LCAweDEwLCAweDFlLAorICAweGQ3LCAweGIyLCAweGU2LCAweGY1LCAweGE0LCAweGU5LCAweDE1LCAweDA5LAorICAweDI1LCAweGVkLCAweDM1LCAweDkzLCAweDc1LCAweGI2LCAweDVhLCAweDkyLAorICAweDIyLCAweDU0LCAweGQ2LCAweDc4LCAweDkzLCAweDM5LCAweGVmLCAweDAxLAorICAweDQ5LCAweDkyLCAweDM5LCAweDNkLCAweDRkLCAweGU2LCAweDhiLCAweGE3LAorICAweDhiLCAweDkyLCAweDViLCAweGIzLCAweDFhLCAweDQ4LCAweDkzLCAweGNkLAorICAweDVlLCAweGVkLCAweGFkLCAweDdiLCAweDIyLCAweDNkLCAweGRlLCAweGNjLAorICAweGRiLCAweGI3LCAweDdiLCAweDZmLCAweDI0LCAweDk5LCAweDg4LCAweDBmLAorICAweDZmLCAweGUxLCAweDY2LCAweDQ1LCAweDNkLCAweDAyLCAweDc0LCAweGQyLAorICAweGM0LCAweGExLCAweDU3LCAweDUwLCAweDhjLCAweDk1LCAweDExLCAweDQwLAorICAweDJjLCAweDQ1LCAweDNjLCAweDUyLCAweDg1LCAweGZhLCAweDZhLCAweGI0LAorICAweDIxLCAweDA5LCAweDBkLCAweDcyLCAweGFhLCAweDEwLCAweDg0LCAweDg1LAorICAweDU2LCAweDdmLCAweGNjLCAweGUwLCAweDgwLCAweDNhLCAweDJlLCAweDZhLAorICAweGM2LCAweDU4LCAweGU4LCAweGUxLCAweDljLCAweGJlLCAweDZiLCAweDM4LAorICAweGRiLCAweDRhLCAweDc0LCAweDcwLCAweGRjLCAweDBmLCAweDVhLCAweDJkLAorICAweGQ1LCAweDE2LCAweDI5LCAweGQzLCAweGU1LCAweGZjLCAweGMzLCAweDQ5LAorICAweGIyLCAweDM0LCAweGMzLCAweDRkLCAweDMwLCAweGQ2LCAweDViLCAweDcxLAorICAweDg2LCAweDNkLCAweDE1LCAweDdhLCAweDVkLCAweGJkLCAweGZkLCAweDllLAorICAweGM5LCAweDk5LCAweDNiLCAweDdiLCAweGJiLCAweDc5LCAweGRiLCAweGI2LAorICAweGVkLCAweDVlLCAweDlmLCAweDJhLCAweDYzLCAweDVhLCAweDJmLCAweDI1LAorICAweDQyLCAweDE0LCAweDQyLCAweDRhLCAweDQ1LCAweDEzLCAweDc0LCAweGEzLAorICAweDg3LCAweGM0LCAweDdiLCAweDk5LCAweGZjLCAweGRmLCAweDZmLCAweGEzLAorICAweDdlLCAweGZjLCAweGIxLCAweGJmLCAweDdmLCAweDMzLCAweGZlLCAweGRmLAorICAweDU1LCAweGFlLCAweDdmLCAweGRmLCAweDUzLCAweDliLCAweDk1LCAweDBlLAorICAweDZmLCAweDY1LCAweDIxLCAweGJhLCAweDg4LCAweDFkLCAweGMwLCAweDU4LAorICAweDAzLCAweDlmLCAweDgxLCAweGNiLCAweGQ0LCAweDYwLCAweGUyLCAweDE3LAorICAweDE4LCAweGJlLCAweGE2LCAweGEyLCAweDQxLCAweDI4LCAweDc0LCAweGQxLAorICAweDZiLCAweDRkLCAweDA5LCAweDQzLCAweGM1LCAweDVlLCAweDY3LCAweDJlLAorICAweDJiLCAweGYyLCAweGExLCAweGUyLCAweDY1LCAweDU4LCAweGFmLCAweDM5LAorICAweGIxLCAweDQzLCAweDM4LCAweGMzLCAweDU5LCAweDhjLCAweGU3LCAweDNmLAorICAweGZjLCAweGU3LCAweGU2LCAweGFkLCAweGZkLCAweDgyLCAweDJiLCAweGM1LAorICAweGFkLCAweDdiLCAweGRlLCAweDZhLCAweDM0LCAweGQ3LCAweGEzLCAweDVlLAorICAweGNjLCAweDk5LCAweGVmLCAweDM1LCAweDI2LCAweDY3LCAweGJkLCAweDg4LAorICAweGIzLCAweDNkLCAweGVlLCAweDY2LCAweDY0LCAweDg1LCAweDUzLCAweDI0LAorICAweGU2LCAweDQ5LCAweGM4LCAweDc5LCAweDBmLCAweDU1LCAweGM2LCAweDQzLAorICAweDIwLCAweDFmLCAweDBhLCAweDAyLCAweGFkLCAweDg4LCAweDkwLCAweDg0LAorICAweDU2LCAweDk0LCAweDg1LCAweDU1LCAweDFiLCAweGUzLCAweDBjLCAweDdhLAorICAweGI3LCAweGJlLCAweDZiLCAweDMzLCAweDU5LCAweGQyLCAweGQ2LCAweDc3LAorICAweGQ5LCAweDI2LCAweGIzLCAweGZlLCAweDcwLCAweGI1LCAweGJiLCAweGM5LAorICAweDViLCAweGZmLCAweDM5LCAweDg1LCAweGJiLCAweGRkLCAweDUxLCAweGM5LAorICAweGRlLCAweDNhLCAweDM4LCAweGIwLCAweGNjLCAweDFkLCAweGMwLCAweDRlLAorICAweDRjLCAweGUzLCAweDViLCAweDYyLCAweDExLCAweGFlLCAweGJlLCAweGE4LAorICAweDg2LCAweDJmLCAweGNlLCAweGRkLCAweDE5LCAweDAyLCAweGM1LCAweGVlLAorICAweGMyLCAweDlhLCAweDBiLCAweDk2LCAweDk1LCAweDYzLCAweDlhLCAweGZhLAorICAweDgzLCAweDg4LCAweDc0LCAweDA3LCAweDFmLCAweGQxLCAweDAyLCAweDIyLAorICAweDJhLCAweDBjLCAweDQ1LCAweGNiLCAweDQyLCAweDY0LCAweDQyLCAweDQxLAorICAweGE3LCAweDQ1LCAweDIxLCAweDQ0LCAweDgzLCAweDg2LCAweDAzLCAweDU2LAorICAweDgwLCAweDMxLCAweDIxLCAweDdkLCAweDU5LCAweDEwLCAweDY0LCAweDE5LAorICAweDM5LCAweGQ2LCAweGU5LCAweDFlLCAweDljLCAweDVjLCAweDQ0LCAweGIxLAorICAweDI4LCAweDM5LCAweDcxLCAweDVhLCAweDYyLCAweDc4LCAweDkxLCAweDYwLAorICAweDdmLCAweDJmLCAweGZmLCAweGYwLCAweDNkLCAweDFjLCAweDAwLCAweDYwLAorICAweGU3LCAweDY3LCAweDc0LCAweGNiLCAweDhjLCAweDIxLCAweDQwLCAweDJjLAorICAweDUxLCAweDBkLCAweDc1LCAweDg4LCAweDQwLCAweDcwLCAweDM4LCAweDgyLAorICAweDAxLCAweGM2LCAweGJhLCAweDBlLCAweDI2LCAweDY4LCAweDU2LCAweDQ0LAorICAweDBlLCAweDM0LCAweGU2LCAweDJiLCAweDEzLCAweDY5LCAweDlhLCAweDY1LAorICAweDg1LCAweDI4LCAweDc5LCAweDEwLCAweGYwLCAweDMxLCAweDkxLCAweDYxLAorICAweDg4LCAweDU0LCAweGEyLCAweGFmLCAweDQxLCAweGNmLCAweGVmLCAweDdiLAorICAweGNiLCAweGNiLCAweGQ5LCAweDU0LCAweGNhLCAweDIyLCAweDIxLCAweDQwLAorICAweGUyLCAweGZhLCAweDhhLCAweGYyLCAweDAzLCAweDgxLCAweDcyLCAweDcwLAorICAweDQxLCAweDlhLCAweGQ1LCAweGRjLCAweDhkLCAweGYyLCAweDc2LCAweDJlLAorICAweDU1LCAweGZiLCAweGE4LCAweDM4LCAweDZkLCAweDcwLCAweDc0LCAweDdhLAorICAweDEwLCAweDU0LCAweGM1LCAweGFhLCAweDI2LCAweGEzLCAweDQ0LCAweDBiLAorICAweDAwLCAweDVmLCAweDJjLCAweGRjLCAweGUwLCAweDc1LCAweDExLCAweGRlLAorICAweDQ0LCAweDdjLCAweGVjLCAweDQ0LCAweDc1LCAweDc1LCAweDQzLCAweDlhLAorICAweGM1LCAweDBmLCAweGVkLCAweGRlLCAweGVkLCAweDI0LCAweGQ5LCAweDEwLAorICAweDYyLCAweGM4LCAweGY4LCAweDA0LCAweDU2LCAweGVjLCAweDQ2LCAweDQyLAorICAweDk2LCAweDE1LCAweGNiLCAweDE3LCAweDVhLCAweGM0LCAweDM4LCAweGIxLAorICAweDIyLCAweGU4LCAweGExLCAweDQ4LCAweGM4LCAweGUxLCAweDkyLCAweGFlLAorICAweDA5LCAweGQxLCAweDM0LCAweGYzLCAweDAzLCAweDliLCAweGQxLCAweGI3LAorICAweDIyLCAweDA1LCAweDg5LCAweDI5LCAweDBlLCAweGI5LCAweDExLCAweGYxLAorICAweDEyLCAweDE0LCAweDAxLCAweDhjLCAweDBjLCAweGE5LCAweDNjLCAweGNjLAorICAweDVlLCAweDIzLCAweGVjLCAweDI4LCAweDBhLCAweDY3LCAweDU3LCAweDM2LAorICAweDBlLCAweDI4LCAweDM5LCAweDIyLCAweDExLCAweDcxLCAweGRhLCAweGJmLAorICAweDkxLCAweDdkLCAweGQyLCAweDg1LCAweGQ3LCAweDBjLCAweGM2LCAweDAxLAorICAweDNkLCAweDJiLCAweGRhLCAweGNiLCAweDUyLCAweDIzLCAweDg4LCAweDU2LAorICAweGVjLCAweGU4LCAweGM2LCAweDIwLCAweDQ0LCAweDRmLCAweDhhLCAweDE0LAorICAweDEyLCAweDUwLCAweGM1LCAweDEyLCAweGU0LCAweDRjLCAweGE0LCAweGU3LAorICAweDQ2LCAweDlhLCAweDY2LCAweDcyLCAweDM2LCAweGRlLCAweDhlLCAweDdlLAorICAweGM5LCAweDUwLCAweDE0LCAweGY0LCAweDVhLCAweDEyLCAweDU1LCAweGExLAorICAweDVkLCAweDI0LCAweDIyLCAweDgyLCAweGM5LCAweDUxLCAweGNiLCAweGRlLAorICAweDAyLCAweGMwLCAweGE3LCAweGEyLCAweDkyLCAweDM1LCAweDQ0LCAweDQ2LAorICAweDg1LCAweDExLCAweDI4LCAweDMwLCAweDUxLCAweGE0LCAweDQzLCAweDQxLAorICAweDg1LCAweGUwLCAweGUwLCAweGFlLCAweGY1LCAweDA5LCAweDA2LCAweDk5LAorICAweDJmLCAweDMxLCAweDk5LCAweDE2LCAweGMyLCAweGM5LCAweGMwLCAweGQzLAorICAweGEzLCAweDI4LCAweDQzLCAweGRhLCAweGJmLCAweDliLCAweGU4LCAweDFkLAorICAweGRiLCAweGY1LCAweGQwLCAweDE2LCAweDYwLCAweDY3LCAweDQ5LCAweDEwLAorICAweGRlLCAweDlkLCAweDllLCAweDE0LCAweDhjLCAweDUxLCAweDgyLCAweGMwLAorICAweGQwLCAweGE5LCAweDU1LCAweDE4LCAweDVhLCAweGQ1LCAweGIyLCAweGQyLAorICAweGI5LCAweGNkLCAweDU5LCAweDY1LCAweGNkLCAweGQ0LCAweDA4LCAweDE0LAorICAweDQxLCAweDgzLCAweDljLCAweGRkLCAweDVkLCAweGZhLCAweDZiLCAweDI5LAorICAweDA1LCAweGNiLCAweDUyLCAweDMyLCAweDA3LCAweDA2LCAweDI0LCAweGU2LAorICAweGFmLCAweGU5LCAweDQ4LCAweGE1LCAweDQ1LCAweDNhLCAweDQ4LCAweDBlLAorICAweDIwLCAweDVlLCAweDcwLCAweDE3LCAweGJhLCAweDc1LCAweDY5LCAweDQ4LAorICAweDQ3LCAweDFkLCAweDM2LCAweDBlLCAweDE3LCAweDExLCAweDZlLCAweGVhLAorICAweDM0LCAweDYzLCAweDM1LCAweDg2LCAweDkyLCAweDViLCAweGE2LCAweGE5LAorICAweDJjLCAweGU4LCAweDM4LCAweDE2LCAweDAyLCAweGE1LCAweDU5LCAweGQxLAorICAweDc1LCAweDdiLCAweGRlLCAweDcwLCAweDFmLCAweGJlLCAweDAwLCAweDNmLAorICAweGZhLCAweGZhLCAweGNlLCAweDlhLCAweDkwLCAweDUxLCAweGU0LCAweGVhLAorICAweDBjLCAweDIyLCAweDk5LCAweDU3LCAweDM0LCAweDRkLCAweDU3LCAweGEzLAorICAweDhmLCAweDg2LCAweGNhLCAweDBmLCAweGRiLCAweDZkLCAweDM3LCAweDUwLAorICAweDRhLCAweGU1LCAweDViLCAweDZhLCAweGQ4LCAweGJmLCAweDY1LCAweGVjLAorICAweGQ3LCAweDJiLCAweGI1LCAweGZmLCAweDYxLCAweGM3LCAweGU5LCAweDdiLAorICAweGQzLCAweDk2LCAweGNjLCAweDljLCAweDVhLCAweGI3LCAweGVkLCAweDQxLAorICAweDM4LCAweDczLCAweDQ2LCAweDUzLCAweDc1LCAweDZiLCAweGZkLCAweDMwLAorICAweGQ3LCAweDg0LCAweGFmLCAweGQzLCAweDMyLCAweDA3LCAweDk1LCAweGZjLAorICAweDczLCAweDVhLCAweDFiLCAweGY5LCAweDQyLCAweDk5LCAweDAzLCAweDhlLAorICAweDEwLCAweGNjLCAweGEwLCAweGUxLCAweGEwLCAweGM0LCAweDEwLCAweDhiLAorICAweGY3LCAweGUzLCAweGRjLCAweGYwLCAweDdkLCAweDcxLCAweDRlLCAweDdlLAorICAweDVkLCAweGI0LCAweDM2LCAweDE0LCAweDI4LCAweDgzLCAweDAzLCAweDAwLAorICAweDU4LCAweDgyLCAweGMwLCAweGZhLCAweDdmLCAweDM5LCAweDUxLCAweDllLAorICAweDg5LCAweGJiLCAweDIwLCAweGNkLCAweDEyLCAweDAxLCAweDNkLCAweGFmLAorICAweDUwLCAweDgzLCAweDg1LCAweGU4LCAweDhhLCAweDA1LCAweDI5LCAweGFmLAorICAweDRlLCAweGU4LCAweDg0LCAweDMxLCAweDA4LCAweDhjLCAweDNmLCAweGE3LAorICAweDIyLCAweGY1LCAweDg4LCAweGVhLCAweDgzLCAweGJhLCAweDE4LCAweDBhLAorICAweGY0LCAweDkyLCAweGExLCAweDQ0LCAweDBlLCAweDQ0LCAweDEyLCAweDZhLAorICAweDBlLCAweDkwLCAweDFjLCAweDdhLCAweGEwLCAweDIxLCAweGE5LCAweGI1LAorICAweGQxLCAweDgzLCAweGJhLCAweDZkLCAweDA4LCAweDRkLCAweGRmLCAweDk3LAorICAweDM1LCAweDIyLCAweDMwLCAweDcyLCAweDAzLCAweGJmLCAweDg4LCAweGMwLAorICAweDcyLCAweGUwLCAweDM4LCAweDI5LCAweDlkLCAweDM0LCAweGJkLCAweDBhLAorICAweDM0LCAweGRmLCAweDkxLCAweGYwLCAweGE0LCAweDUzLCAweDM5LCAweDA5LAorICAweDJhLCAweDMwLCAweDczLCAweGRmLCAweDkxLCAweGM0LCAweDAwLCAweGU1LAorICAweGE3LCAweDAxLCAweDM5LCAweGY5LCAweDExLCAweGEwLCAweDhhLCAweGJlLAorICAweDJmLCAweGFhLCAweDMxLCAweDkwLCAweGNjLCAweDMxLCAweDI3LCAweGZkLAorICAweDM0LCAweGIxLCAweGNmLCAweDAxLCAweGZkLCAweDdmLCAweGZmLCAweGQyLAorICAweDc0LCAweGEwLCAweDFkLCAweDRhLCAweDRlLCAweDU5LCAweDBlLCAweGU5LAorICAweGI0LCAweDA1LCAweDAwLCAweGUzLCAweDQ0LCAweGY4LCAweDMxLCAweDA1LAorICAweGQzLCAweDhiLCAweDIxLCAweDdlLCAweDVjLCAweDFjLCAweDAzLCAweGMxLAorICAweDNkLCAweDUxLCAweDE0LCAweDBhLCAweGVhLCAweDc4LCAweGEwLCAweDMxLAorICAweDA5LCAweDY0LCAweDFjLCAweDEyLCAweGJlLCAweDFiLCAweDgwLCAweGUyLAorICAweDBjLCAweDhiLCAweDg0LCAweDg1LCAweDIwLCAweGIwLCAweDA5LCAweDE4LAorICAweDI4LCAweGQzLCAweGUwLCAweGU0LCAweDIwLCAweGUwLCAweDRkLCAweGY2LAorICAweDlhLCAweDA3LCAweDA2LCAweDRmLCAweDYwLCAweGU0LCAweDQ2LCAweGRmLAorICAweGM2LCAweDIyLCAweGUwLCAweGMwLCAweDI4LCAweGUyLCAweDMyLCAweDBkLAorICAweDNmLCAweGRlLCAweDAwLCAweGUwLCAweDkyLCAweDAxLCAweDc5LCAweDU0LAorICAweDZlLCAweGVjLCAweGJhLCAweDAyLCAweDFhLCAweDZjLCAweGZjLCAweDVmLAorICAweDhiLCAweGMwLCAweDc3LCAweDRmLCAweDRhLCAweDAzLCAweDYxLCAweDFiLAorICAweDUwLCAweDgzLCAweDg0LCAweDVmLCAweGEzLCAweDMxLCAweDQ1LCAweGM1LAorICAweDgxLCAweGQ0LCAweGVlLCAweDljLCAweGRhLCAweDQ4LCAweDMxLCAweGUyLAorICAweDMyLCAweDhhLCAweGUyLCAweGQyLCAweDViLCAweGI3LCAweDY4LCAweGNiLAorICAweDBkLCAweDEyLCAweGEyLCAweDQyLCAweDE0LCAweDY1LCAweGNkLCAweDAzLAorICAweDgzLCAweDIwLCAweDlkLCAweDBlLCAweDBiLCAweDgyLCAweDk2LCAweGI0LAorICAweDY0LCAweGVkLCAweDM0LCAweGY5LCAweGI1LCAweDBkLCAweDgwLCAweGZkLAorICAweGIwLCAweDAxLCAweGQ2LCAweDYyLCAweDhkLCAweDVkLCAweDFkLCAweDI5LAorICAweGExLCAweDgwLCAweDY2LCAweDMyLCAweDdmLCAweGU5LCAweGIxLCAweDMzLAorICAweDE3LCAweDFhLCAweDg3LCAweDU5LCAweDcyLCAweDBhLCAweGJhLCAweDdhLAorICAweDg4LCAweDkyLCAweGYxLCAweGY4LCAweDMxLCAweDA3LCAweDQwLCAweDhmLAorICAweDEyLCAweGEwLCAweDQ1LCAweDNhLCAweDg4LCAweDFjLCAweDExLCAweDMwLAorICAweDcyLCAweGU0LCAweDVhLCAweDgzLCAweDYxLCAweDNjLCAweDRlLCAweGFhLAorICAweDAwLCAweGM5LCAweDE5LCAweGY2LCAweGIwLCAweDM4LCAweDA3LCAweDA0LAorICAweDkzLCAweDQ2LCAweDYyLCAweDY2LCAweGIwLCAweDJjLCAweDA4LCAweGVhLAorICAweDk1LCAweGMxLCAweDNmLCAweDQ4LCAweDk5LCAweDNhLCAweDhlLCAweGY0LAorICAweGQyLCAweGMwLCAweGUwLCAweGM0LCAweDY5LCAweDM0LCAweDFlLCAweDgyLAorICAweDAwLCAweDMwLCAweDcxLCAweDRiLCAweGRiLCAweDBjLCAweDQ1LCAweDI5LAorICAweGRhLCAweDRkLCAweGE3LCAweGY5LCAweGRlLCAweDc0LCAweDVjLCAweDBiLAorICAweGE0LCAweGZjLCAweGE2LCAweGZjLCAweDNkLCAweDUxLCAweGM5LCAweGYwLAorICAweGYzLCAweDg4LCAweGNkLCAweDRlLCAweGQzLCAweDYwLCAweGJiLCAweGYzLAorICAweGFhLCAweDE3LCAweGU0LCAweGEyLCAweGUwLCAweDcxLCAweGY4LCAweDhiLAorICAweDVjLCAweDg2LCAweGE4LCAweDNiLCAweGE3LCAweDY0LCAweDFhLCAweDY5LAorICAweDhlLCAweDAxLCAweDE0LCAweDQ5LCAweDQxLCAweDNjLCAweDA4LCAweGQwLAorICAweDE4LCAweDA3LCAweGI5LCAweDFjLCAweDRlLCAweDI1LCAweGQ0LCAweDcxLAorICAweDgwLCAweDdkLCAweDhmLCAweGZmLCAweDUyLCAweGRkLCAweDM2LCAweDE0LAorICAweGQ3LCAweDRkLCAweDM4LCAweGJhLCAweDM2LCAweDVhLCAweDE4LCAweGE5LAorICAweGQyLCAweDkxLCAweGRhLCAweDFmLCAweGI1LCAweDkwLCAweGExLCAweDcxLAorICAweDdmLCAweDQ4LCAweDI4LCAweDE5LCAweDdhLCAweDhjLCAweGJjLCAweDYxLAorICAweGM4LCAweDEyLCAweDdlLCAweGFlLCAweDE1LCAweDYwLCAweGM4LCAweDRkLAorICAweGU2LCAweGVhLCAweDIwLCAweGMwLCAweDEzLCAweDc1LCAweGU5LCAweDUyLAorICAweGFmLCAweDc0LCAweDNkLCAweGQ2LCAweDZkLCAweGEyLCAweGJhLCAweDY5LAorICAweDMyLCAweGE0LCAweDc3LCAweDY1LCAweDNkLCAweDJiLCAweDUwLCAweDc1LAorICAweDA1LCAweGQ1LCAweGVlLCAweDFmLCAweDU1LCAweGNhLCAweGQxLCAweGJmLAorICAweDVlLCAweDU5LCAweGJlLCAweDA2LCAweDI0LCAweGMzLCAweGU5LCAweGZmLAorICAweGViLCAweDIwLCAweDM5LCAweDQxLCAweGRhLCAweDgwLCAweDc1LCAweDA3LAorICAweDBkLCAweDU2LCAweDAyLCAweGU3LCAweGFmLCAweGEwLCAweGNjLCAweDhiLAorICAweDRlLCAweDY1LCAweDkxLCAweDEyLCAweGMzLCAweDQ5LCAweDUyLCAweGU3LAorICAweDU5LCAweGE1LCAweDAxLCAweDQ3LCAweDJkLCAweDA2LCAweDE0LCAweDRlLAorICAweDZhLCAweDNhLCAweDc2LCAweDJlLCAweGJmLCAweGZlLCAweGQ3LCAweGMxLAorICAweDhkLCAweGZhLCAweGQ0LCAweDQ0LCAweDI3LCAweDNlLCAweDVhLCAweDI1LAorICAweGIwLCAweGM1LCAweDUxLCAweGQzLCAweDU0LCAweGIyLCAweGFiLCAweGYwLAorICAweDNjLCAweDY0LCAweDAxLCAweGFkLCAweGI3LCAweDhiLCAweDg1LCAweDYzLAorICAweDE2LCAweDY3LCAweDk1LCAweGMwLCAweDY0LCAweDNlLCAweGQ5LCAweDYyLAorICAweDE0LCAweDQxLCAweDI5LCAweDZmLCAweDViLCAweGM1LCAweGJhLCAweDg0LAorICAweGQwLCAweGM0LCAweDJiLCAweDRkLCAweDhhLCAweDAxLCAweGQyLCAweGUwLAorICAweDBmLCAweDc2LCAweDlhLCAweDAyLCAweDQwLCAweGVkLCAweGExLCAweDJlLAorICAweDM3LCAweDdkLCAweDhjLCAweGU0LCAweGY1LCAweDkwLCAweDE1LCAweGFkLAorICAweDZiLCAweDQ4LCAweDEwLCAweDI5LCAweDQwLCAweGIxLCAweDAxLCAweDFkLAorICAweGMzLCAweDVjLCAweDA3LCAweDFmLCAweDI0LCAweGFiLCAweDRhLCAweDkwLAorICAweDE0LCAweDgyLCAweGMwLCAweDI3LCAweDhkLCAweDQ0LCAweDE4LCAweDEyLAorICAweDA1LCAweDFhLCAweDI0LCAweDFjLCAweDM0LCAweGJmLCAweDQyLCAweGJkLAorICAweDNiLCAweDE1LCAweDZkLCAweDA3LCAweDEyLCAweDBiLCAweDllLCAweGFjLAorICAweDBjLCAweDgxLCAweGNmLCAweGY2LCAweDAzLCAweGQwLCAweDQwLCAweDA2LAorICAweDMwLCAweDIwLCAweDYxLCAweDRlLCAweDlkLCAweDhjLCAweGY4LCAweDI2LAorICAweDg0LCAweDQzLCAweDMzLCAweDc0LCAweDFjLCAweDBiLCAweGVjLCAweGI5LAorICAweDM2LCAweDQxLCAweDQ1LCAweDVhLCAweDI4LCAweGI5LCAweGNkLCAweDNmLAorICAweDlkLCAweDJkLCAweDgwLCAweGU5LCAweDAxLCAweGMyLCAweGZhLCAweDM0LAorICAweGRlLCAweDA3LCAweDFiLCAweDczLCAweGMxLCAweGI4LCAweGNmLCAweGE1LAorICAweDIzLCAweDU2LCAweGQ3LCAweDQxLCAweGM4LCAweGY4LCAweDE0LCAweGU3LAorICAweDJhLCAweGYwLCAweDUyLCAweDBlLCAweDBhLCAweDNjLCAweDQzLCAweDdhLAorICAweDhjLCAweDRmLCAweDg5LCAweDQxLCAweGQ0LCAweDEzLCAweDdkLCAweGEwLAorICAweGUwLCAweGM4LCAweDg5LCAweGFhLCAweDAzLCAweGQxLCAweDNmLCAweDNiLAorICAweGQyLCAweDQwLCAweDcxLCAweGQ2LCAweDM3LCAweDAxLCAweGZjLCAweDA1LAorICAweGQzLCAweDg0LCAweDM5LCAweDA5LCAweDAzLCAweDIzLCAweGExLCAweDFlLAorICAweDllLCAweDE5LCAweDgzLCAweDA2LCAweDQxLCAweDU3LCAweDA3LCAweDBjLAorICAweDA5LCAweDRmLCAweDYzLCAweGZjLCAweDY2LCAweGI4LCAweDM4LCAweGYyLAorICAweGYwLCAweDE3LCAweDcxLCAweDNjLCAweDMyLCAweDBhLCAweGJhLCAweDI4LAorICAweDgxLCAweDcyLCAweDQwLCAweDVjLCAweDM1LCAweGE5LCAweDBiLCAweDA3LAorICAweDAyLCAweDZhLCAweDEyLCAweDExLCAweGU5LCAweGVhLCAweDBlLCAweDAxLAorICAweGUwLCAweGI4LCAweGU4LCAweDgxLCAweGMyLCAweDhkLCAweDQ2LCAweDQyLAorICAweDljLCAweDBmLCAweDQzLCAweGZmLCAweGZmLCAweDAyLCAweDc2LCAweDIyLAorICAweGE5LCAweGNkLCAweDA3LCAweDUyLCAweDNlLCAweDBlLCAweDA0LCAweGVhLAorICAweGEwLCAweGYzLCAweGQwLCAweDAxLCAweDgzLCAweDg4LCAweDlhLCAweGU4LAorICAweGQxLCAweDkyLCAweDAzLCAweDgxLCAweDNlLCAweGY2LCAweDU0LCAweDVkLAorICAweDU4LCAweDRkLCAweDE3LCAweDY2LCAweGMzLCAweDEwLCAweDVjLCAweGYwLAorICAweGNjLCAweDFjLCAweDEyLCAweDNhLCAweGU5LCAweDA1LCAweDgwLCAweDU0LAorICAweGM4LCAweGMxLCAweGQ3LCAweGE3LCAweGFhLCAweGY1LCAweGQ4LCAweDZkLAorICAweDY4LCAweDhhLCAweGJhLCAweDM5LCAweGM0LCAweDA4LCAweGM4LCAweDJjLAorICAweDA3LCAweDgzLCAweDg0LCAweGY1LCAweDc5LCAweGE4LCAweDQ1LCAweGNiLAorICAweDgyLCAweGMzLCAweDgzLCAweDE3LCAweGE2LCAweDQ4LCAweDQ4LCAweDI3LAorICAweGQzLCAweGMyLCAweGUxLCAweDNmLCAweDA3LCAweDA0LCAweGNjLCAweDY1LAorICAweGQwLCAweGM4LCAweDI4LCAweGMwLCAweGUyLCAweDQwLCAweDVjLCAweDViLAorICAweDM4LCAweDBiLCAweGJhLCAweGJmLCAweGE1LCAweDcyLCAweDcyLCAweGNhLAorICAweDhkLCAweDFhLCAweDIxLCAweDc1LCAweDhiLCAweDEzLCAweGYyLCAweDk5LAorICAweDY3LCAweDEwLCAweDUxLCAweDgxLCAweDA3LCAweDE1LCAweDYwLCAweDc1LAorICAweDU4LCAweDJhLCAweGI2LCAweDllLCAweGQzLCAweGNhLCAweDU0LCAweGM1LAorICAweDhhLCAweDQxLCAweGNlLCAweDY1LCAweDI0LCAweDRkLCAweDE1LCAweDQ1LAorICAweGQwLCAweGMwLCAweDVjLCAweDBiLCAweGNjLCAweGIxLCAweGIxLCAweDhmLAorICAweDIwLCAweDYwLCAweDEzLCAweDM0LCAweGVlLCAweDE0LCAweGJmLCAweDVlLAorICAweDc3LCAweDRkLCAweDAzLCAweGEwLCAweDJjLCAweDQyLCAweDZkLCAweDJkLAorICAweGE3LCAweDk3LCAweDJmLCAweDk4LCAweGRiLCAweDVjLCAweDJkLCAweGQ1LAorICAweGQxLCAweDc3LCAweGE4LCAweDJlLCAweDVlLCAweDczLCAweDgxLCAweDJkLAorICAweGVmLCAweGIxLCAweGE1LCAweDM4LCAweDM4LCAweGI5LCAweDU2LCAweGVjLAorICAweGQ2LCAweGI3LCAweDY0LCAweDI0LCAweDQxLCAweDZhLCAweDJhLCAweDcxLAorICAweDNkLCAweDA0LCAweDVhLCAweDI4LCAweGE5LCAweDk5LCAweGQ2LCAweDQ5LAorICAweDAxLCAweGM0LCAweDE2LCAweDIwLCAweGU4LCAweGEwLCAweGU1LCAweDYzLAorICAweGU4LCAweDUzLCAweGU5LCAweDJmLCAweDE0LCAweDAzLCAweGI4LCAweDM1LAorICAweGEwLCAweDQ0LCAweDgyLCAweDJmLCAweGRiLCAweGQ4LCAweDFiLCAweGViLAorICAweGQwLCAweDNjLCAweDU4LCAweDNkLCAweDE5LCAweDE2LCAweDFkLCAweGQ3LAorICAweGI1LCAweDFiLCAweDYwLCAweDU0LCAweGFmLCAweGZkLCAweGI0LCAweDM4LAorICAweGQ3LCAweDdhLCAweGMyLCAweGEwLCAweDYyLCAweDQ5LCAweDJhLCAweGY1LAorICAweDYxLCAweDMzLCAweGZhLCAweDI1LCAweGE3LCAweGJjLCAweDE2LCAweDI3LAorICAweDdkLCAweGQ0LCAweDNmLCAweDc2LCAweGJhLCAweGJmLCAweGNjLCAweGIzLAorICAweDlkLCAweGRjLCAweGQ5LCAweGMzLCAweGQ1LCAweDNlLCAweGQyLCAweDBiLAorICAweGZjLCAweGI2LCAweDU4LCAweGU4LCAweDgwLCAweDUyLCAweDA2LCAweDA3LAorICAweGI1LCAweGZkLCAweDE1LCAweGIxLCAweDZlLCAweDVlLCAweGY0LCAweGIzLAorICAweDc2LCAweDBhLCAweGI1LCAweGVhLCAweGZlLCAweDRmLCAweGQ5LCAweGUxLAorICAweGMyLCAweDc2LCAweGJiLCAweDAyLCAweGQ5LCAweDFlLCAweDBmLCAweDc3LAorICAweGFiLCAweDRmLCAweDc5LCAweGI1LCAweDhjLCAweGQyLCAweGRjLCAweDQyLAorICAweDI3LCAweGVmLCAweGY1LCAweDRlLCAweDYwLCAweDMxLCAweGE5LCAweDRkLAorICAweDU0LCAweDQ3LCAweGY1LCAweGRiLCAweDRkLCAweDI1LCAweGVjLCAweGVlLAorICAweDdkLCAweDU2LCAweDViLCAweDc4LCAweDJiLCAweGQxLCAweDI1LCAweGM0LAorICAweDc1LCAweDk2LCAweGY5LCAweGM4LCAweDA4LCAweGNlLCAweGZiLCAweDlmLAorICAweGUyLCAweGYzLCAweDFmLCAweDZkLCAweGI1LCAweGI2LCAweDIxLCAweDk1LAorICAweDAxLCAweGY0LCAweGNhLCAweDhhLCAweDg3LCAweGJiLCAweDIwLCAweDQ5LAorICAweDUzLCAweDJlLCAweDVjLCAweGE5LCAweGE4LCAweDVlLCAweGMzLCAweDc0LAorICAweGI0LCAweGE5LCAweDk2LCAweGI0LCAweDNiLCAweGY4LCAweDczLCAweDA1LAorICAweDZiLCAweDM3LCAweDc5LCAweDRhLCAweDc4LCAweDJmLCAweDgyLCAweDc1LAorICAweGQzLCAweDJiLCAweDAzLCAweDZhLCAweGRhLCAweDU0LCAweGM0LCAweGZkLAorICAweGQ2LCAweGZmLCAweGVmLCAweDY1LCAweGU3LCAweDE3LCAweGJhLCAweGI1LAorICAweDVjLCAweGM5LCAweGE4LCAweDlhLCAweDhmLCAweDlhLCAweDYxLCAweDhhLAorICAweGNlLCAweGE3LCAweGRjLCAweGMwLCAweDJmLCAweGY0LCAweDIxLCAweDlhLAorICAweGM2LCAweDg1LCAweDQzLCAweDJjLCAweGUwLCAweGNhLCAweDkzLCAweDY5LAorICAweGFlLCAweDVkLCAweDdiLCAweGUzLCAweDZiLCAweDgyLCAweDcxLCAweDRhLAorICAweDhhLCAweDkxLCAweGYxLCAweDI4LCAweDNhLCAweGJkLCAweDA1LCAweGFjLAorICAweDE1LCAweDIyLCAweGVhLCAweDA0LCAweDBlLCAweGM4LCAweGEyLCAweGVlLAorICAweGY0LCAweDFjLCAweDUyLCAweDBlLCAweDQwLCAweDE1LCAweDRkLCAweDhiLAorICAweDAzLCAweGEwLCAweDBmLCAweGU5LCAweDFhLCAweDBiLCAweDQzLCAweDYxLAorICAweDg1LCAweDM5LCAweGE2LCAweDQxLCAweDc4LCAweDRiLCAweDc4LCAweDg4LAorICAweGY2LCAweDljLCAweGY1LCAweDcwLCAweDc3LCAweDAyLCAweDJjLCAweDBmLAorICAweDRmLCAweDAwLCAweDE4LCAweGQyLCAweGM3LCAweDA4LCAweDQxLCAweGMxLAorICAweDg4LCAweDRkLCAweDQwLCAweGM3LCAweDk5LCAweDE5LCAweDFlLCAweDllLAorICAweGYyLCAweGQ2LCAweDAyLCAweGM3LCAweDgwLCAweGUxLCAweDkzLCAweGY3LAorICAweDkxLCAweDhjLCAweDg1LCAweDczLCAweDFhLCAweDVjLCAweGZjLCAweDIyLAorICAweDc0LCAweGE3LCAweGI0LCAweGQ4LCAweDM5LCAweDE4LCAweDRiLCAweDk3LAorICAweDAxLCAweGU4LCAweGMxLCAweDNmLCAweGEyLCAweDA3LCAweGY1LCAweDgwLAorICAweDBmLCAweGY0LCAweDEzLCAweDM1LCAweDAyLCAweGFkLCAweDdkLCAweDIwLAorICAweGMwLCAweDFjLCAweDE0LCAweGZhLCAweDMyLCAweGVmLCAweDQxLCAweGMzLAorICAweDU2LCAweDE5LCAweDIzLCAweDIxLCAweDYyLCAweGU3LCAweGYyLCAweDAyLAorICAweGViLCAweDRkLCAweDgzLCAweDhhLCAweDQxLCAweGMzLCAweDA3LCAweDMwLAorICAweDczLCAweGY0LCAweGVhLCAweDIzLCAweDQwLCAweGUwLCAweDlkLCAweGFlLAorICAweDRhLCAweDMyLCAweDA1LCAweGM0LCAweGU5LCAweDJmLCAweDVkLCAweGFlLAorICAweGMxLCAweGM1LCAweDM0LCAweDUxLCAweDIyLCAweGFkLCAweGMwLCAweDc1LAorICAweGJjLCAweDA3LCAweDFlLCAweGIzLCAweDQ3LCAweGI3LCAweDU0LCAweGY4LAorICAweDM5LCAweGNkLCAweDA4LCAweDNhLCAweDgwLCAweGVhLCAweDEzLCAweGI1LAorICAweGMxLCAweGNiLCAweDg0LCAweGFjLCAweDliLCAweDI5LCAweDBhLCAweDM0LAorICAweGZhLCAweGU0LCAweDgzLCAweDFhLCAweDBlLCAweDI2LCAweDkwLCAweDcyLAorICAweGViLCAweDAzLCAweGEwLCAweGQ3LCAweDIzLCAweGExLCAweDkyLCAweGMwLAorICAweGIxLCAweDM5LCAweGQxLCAweDAzLCAweDgzLCAweDMyLCAweDc4LCAweDA5LAorICAweGY1LCAweDdmLCAweDE3LCAweDM3LCAweGQ1LCAweGEyLCAweDMxLCAweGFkLAorICAweGEyLCAweGU4LCAweDQ4LCAweGEzLCAweDNlLCAweDZmLCAweGVjLCAweDc1LAorICAweGI2LCAweGIzLCAweGYyLCAweGNiLCAweDlhLCAweDBlLCAweGUwLCAweDQ4LAorICAweDM2LCAweDA4LCAweDIzLCAweGU0LCAweGE5LCAweGQ4LCAweDViLCAweDZiLAorICAweDFiLCAweDM4LCAweGRmLCAweGJiLCAweGM0LCAweDdkLCAweDg2LCAweDUzLAorICAweDE0LCAweDQ0LCAweDQ3LCAweGY1LCAweGY1LCAweGNhLCAweDMyLCAweDE3LAorICAweDg2LCAweDYzLCAweDQzLCAweDA5LCAweGViLCAweDA2LCAweDkzLCAweGZhLAorICAweGRlLCAweDA4LCAweGIxLCAweDBjLCAweDVhLCAweGY0LCAweDI2LCAweDFiLAorICAweGFiLCAweDEyLCAweGQ1LCAweDZlLCAweGQyLCAweGNjLCAweDU2LCAweGMzLAorICAweDFmLCAweGE2LCAweGNkLCAweDEwLCAweDE4LCAweDFlLCAweDI1LCAweDY1LAorICAweGI2LCAweGY3LCAweDdkLCAweDFhLCAweDU2LCAweDk1LCAweDhiLCAweDIyLAorICAweGRkLCAweDE4LCAweDc0LCAweGUxLCAweDUzLCAweGIwLCAweDZmLCAweGMxLAorICAweDVlLCAweGI5LCAweGUxLCAweDFlLCAweDE3LCAweDM3LCAweGU1LCAweGJlLAorICAweDlmLCAweDA2LCAweGY4LCAweGI5LCAweDQ5LCAweDA5LCAweDk0LCAweGY3LAorICAweGZhLCAweDg4LCAweDQwLCAweGRlLCAweDBkLCAweGU1LCAweGE0LCAweGFiLAorICAweDgyLCAweDRmLCAweDQ4LCAweDk3LCAweDhiLCAweDQ1LCAweDE3LCAweDMxLAorICAweDRjLCAweGQyLCAweDgxLCAweDVhLCAweDdiLCAweDdkLCAweDNhLCAweGJiLAorICAweDAyLCAweDA3LCAweGZhLCAweGYzLCAweDFiLCAweGNiLCAweDU2LCAweGM1LAorICAweDBhLCAweDYyLCAweDM3LCAweDZiLCAweGFiLCAweGZmLCAweGRlLCAweDYxLAorICAweDY4LCAweDFhLCAweDZlLCAweGY2LCAweGMyLCAweGI1LCAweDkxLCAweDIwLAorICAweDA3LCAweDA1LCAweDZhLCAweDZlLCAweDZlLCAweGQ4LCAweGEzLCAweDljLAorICAweDgwLCAweDNjLCAweDRlLCAweDhjLCAweGM2LCAweDk2LCAweGVmLCAweDczLAorICAweDM1LCAweDA4LCAweDI2LCAweDJhLCAweGRiLCAweDBjLCAweDJmLCAweGRiLAorICAweDNkLCAweGIzLCAweDk0LCAweGY5LCAweDcyLCAweGU0LCAweDI1LCAweGNhLAorICAweDQxLCAweGE2LCAweDY2LCAweDgzLCAweDUxLCAweGZlLCAweGYwLCAweGIzLAorICAweGQ3LCAweDBhLCAweDQwLCAweDc3LCAweDAyLCAweDdhLCAweGEyLCAweDE4LAorICAweDQzLCAweDY2LCAweDIyLCAweGNiLCAweDNhLCAweDFjLCAweDQwLCAweDcwLAorICAweDI2LCAweGE3LCAweDAyLCAweDA5LCAweDdkLCAweDQ2LCAweGQyLCAweGFiLAorICAweDQxLCAweDgzLCAweDQxLCAweDc5LCAweDFhLCAweDMwLCAweDBmLCAweGFiLAorICAweDA2LCAweDBlLCAweDE4LCAweGEwLCAweGMwLCAweDQ4LCAweDIzLCAweGYyLAorICAweDA2LCAweGQwLCAweDY0LCAweGZkLCAweGZlLCAweDVjLCAweGQ3LCAweGVkLAorICAweDJiLCAweDUzLCAweGJiLCAweDc5LCAweDBjLCAweDQ5LCAweDcxLCAweDcwLAorICAweDM3LCAweDM0LCAweDdiLCAweDc3LCAweGFiLCAweGEzLCAweDgwLCAweGE2LAorICAweDg5LCAweGQ3LCAweDA3LCAweDhhLCAweDgwLCAweDI0LCAweDJkLCAweDRmLAorICAweDNjLCAweGJhLCAweGU3LCAweDRhLCAweDM1LCAweDIyLCAweDRkLCAweDRmLAorICAweDhiLCAweGVmLCAweDEwLCAweDg3LCAweGRhLCAweGRjLCAweGUyLCAweDAwLAorICAweDIxLCAweDVmLCAweGRiLCAweGI0LCAweGRjLCAweDE5LCAweGJhLCAweDExLAorICAweDI2LCAweDlkLCAweDUzLCAweDUwLCAweDQxLCAweGFkLCAweDczLCAweDUwLAorICAweDg1LCAweDJmLCAweDc3LCAweDUwLCAweDY1LCAweGEzLCAweDIwLCAweDcxLAorICAweDM1LCAweDcxLCAweDJlLCAweGFkLCAweDhkLCAweDZjLCAweDE3LCAweDA2LAorICAweDY3LCAweGFhLCAweGRjLCAweDVkLCAweDZhLCAweDZkLCAweDQ5LCAweGRkLAorICAweDdmLCAweDMyLCAweGFlLCAweDhlLCAweDA0LCAweDk1LCAweGIyLCAweDcxLAorICAweDdlLCAweDJkLCAweDBlLCAweGMxLCAweDcwLCAweDdmLCAweDM1LCAweDdmLAorICAweDYwLCAweDczLCAweDA2LCAweDExLCAweGYwLCAweGE4LCAweDdkLCAweGIyLAorICAweDg3LCAweGJmLCAweDZkLCAweDA3LCAweGE0LCAweDBkLCAweDBmLCAweDk5LAorICAweGM1LCAweDNjLCAweGUwLCAweDY2LCAweDBlLCAweDlkLCAweDNmLCAweGE2LAorICAweGFlLCAweGE3LCAweDZiLCAweDE2LCAweDQ3LCAweDQzLCAweDg3LCAweDNlLAorICAweDE3LCAweGI2LCAweDM2LCAweDY4LCAweDcxLCAweDAwLCAweDhiLCAweDM3LAorICAweDgzLCAweDA4LCAweDhjLCAweDI5LCAweDJjLCAweGQyLCAweDQ2LCAweDk4LAorICAweDFiLCAweDJhLCAweGUxLCAweDJjLCAweDQ2LCAweDMxLCAweGUwLCAweDViLAorICAweDFjLCAweDg2LCAweGIwLCAweDY3LCAweGQxLCAweDdiLCAweGU1LCAweGUxLAorICAweGEwLCAweGEzLCAweDVkLCAweDA0LCAweGMzLCAweGUxLCAweGViLCAweDUwLAorICAweDE1LCAweGJmLCAweGZjLCAweDhiLCAweDY2LCAweDRhLCAweDg1LCAweDQ3LAorICAweDY5LCAweDE2LCAweDYyLCAweDJhLCAweGZmLCAweGZmLCAweDdjLCAweGExLAorICAweDQ5LCAweDVkLCAweGRlLCAweDQ0LCAweDYwLCAweGUyLCAweDBiLCAweGJhLAorICAweDFhLCAweGYyLCAweDExLCAweDU2LCAweDM2LCAweDg1LCAweDAzLCAweGUyLAorICAweDlmLCAweGU0LCAweDI0LCAweDE0LCAweGViLCAweGRkLCAweGQ2LCAweDJiLAorICAweDVjLCAweDliLCAweDljLCAweDg1LCAweDcyLCAweGFlLCAweDg2LCAweDc0LAorICAweDg5LCAweDc0LCAweGZiLCAweDZhLCAweDBiLCAweGVlLCAweGEzLCAweDE4LAorICAweGFlLCAweDQ3LCAweDFjLCAweGIwLCAweGE2LCAweDkzLCAweDQ0LCAweGNiLAorICAweGQyLCAweDUxLCAweDMzLCAweGY1LCAweDRhLCAweDkwLCAweDU4LCAweGJhLAorICAweGE2LCAweDUwLCAweDQ4LCAweDYwLCAweGIxLCAweDk1LCAweDRhLCAweGM3LAorICAweDNjLCAweGQ2LCAweDk5LCAweDlmLCAweDUxLCAweGVjLCAweDYxLCAweDQyLAorICAweGM4LCAweDNiLCAweGY2LCAweGRhLCAweGM0LCAweDRiLCAweDUzLCAweDRiLAorICAweDFjLCAweDQ0LCAweDNmLCAweDY5LCAweDJlLCAweDc5LCAweGI2LCAweGI2LAorICAweDU1LCAweGE3LCAweDYyLCAweDljLCAweGQ1LCAweDE0LCAweGQ1LCAweGFkLAorICAweDdmLCAweDcyLCAweDg5LCAweGEwLCAweDBjLCAweGEyLCAweGVhLCAweGMyLAorICAweDgwLCAweGQ4LCAweDNlLCAweDExLCAweGM0LCAweDk0LCAweDllLCAweDFjLAorICAweDMxLCAweDE4LCAweDUxLCAweGRlLCAweGYwLCAweDcwLCAweDdlLCAweGVlLAorICAweDE2LCAweDk1LCAweGE5LCAweDJiLCAweDBhLCAweGEyLCAweGViLCAweDI1LAorICAweGE1LCAweDU1LCAweDExLCAweGIxLCAweDQ5LCAweGE2LCAweGJhLCAweDRhLAorICAweDQ4LCAweDFjLCAweDAwLCAweGYwLCAweGEwLCAweDg4LCAweGY1LCAweGJjLAorICAweGM5LCAweDZmLCAweDcwLCAweDNkLCAweDkzLCAweGE3LCAweDkxLCAweGQ2LAorICAweDNkLCAweDAzLCAweDhmLCAweGZlLCAweDhiLCAweGQ2LCAweDA1LCAweGMxLAorICAweDc2LCAweDk2LCAweDZlLCAweDgzLCAweGNlLCAweGZmLCAweGZiLCAweGMzLAorICAweGRhLCAweGYwLCAweGExLCAweDY1LCAweDk3LCAweGEyLCAweDhiLCAweGJmLAorICAweGE1LCAweDEwLCAweDg5LCAweDAyLCAweGNlLCAweDIzLCAweDJkLCAweGIyLAorICAweDU1LCAweDBlLCAweDRmLCAweDUzLCAweDc4LCAweGRmLCAweGY3LCAweDNkLAorICAweGFiLCAweDE0LCAweGJmLCAweGM4LCAweDBhLCAweGU4LCAweGZkLCAweDc5LAorICAweGIwLCAweGE0LCAweGE0LCAweDFjLCAweDQxLCAweDEzLCAweDY0LCAweDQ2LAorICAweDI4LCAweDRjLCAweGIzLCAweDI0LCAweDAyLCAweGJhLCAweDU4LCAweDUwLAorICAweDE0LCAweGE3LCAweDY3LCAweDM1LCAweDdlLCAweGYyLCAweGEyLCAweDdiLAorICAweGI2LCAweDBjLCAweDMzLCAweGE4LCAweDRlLCAweGViLCAweGVlLCAweDc0LAorICAweGI2LCAweDAzLCAweGI4LCAweDBiLCAweDAxLCAweDcxLCAweDBkLCAweDY1LAorICAweDkxLCAweDdhLCAweDBlLCAweDA1LCAweDhmLCAweDY4LCAweDQ4LCAweDk2LAorICAweDMxLCAweGIwLCAweDM5LCAweGNjLCAweGQ0LCAweDQxLCAweDRjLCAweGVjLAorICAweGZhLCAweDIyLCAweGJjLCAweGI1LCAweDA5LCAweDA3LCAweDM2LCAweDc3LAorICAweDhiLCAweGUwLCAweGFmLCAweDVmLCAweDU4LCAweGIxLCAweGI5LCAweDQ5LAorICAweDRkLCAweDNiLCAweGNhLCAweDg3LCAweGI2LCAweDcwLCAweDkyLCAweDgyLAorICAweGYxLCAweGU1LCAweGU4LCAweGRiLCAweDdiLCAweDY1LCAweDJjLCAweGQ4LAorICAweGYxLCAweDg0LCAweDA4LCAweDdmLCAweDY3LCAweGYwLCAweDQwLCAweDY5LAorICAweDI0LCAweGQ0LCAweDZiLCAweDUzLCAweDdjLCAweDc0LCAweDlkLCAweGU4LAorICAweDg4LCAweDJiLCAweGFiLCAweGJhLCAweDQ5LCAweGM0LCAweDM0LCAweDU1LAorICAweDgxLCAweDYwLCAweDBiLCAweGIzLCAweGMyLCAweDMwLCAweDIyLCAweGE5LAorICAweGVlLCAweDgyLCAweDJiLCAweDNhLCAweDBiLCAweDAwLCAweDVjLCAweDZjLAorICAweDk1LCAweDA0LCAweGU1LCAweGVmLCAweDQ2LCAweDIyLCAweDc0LCAweDk4LAorICAweDUyLCAweDJhLCAweGQ3LCAweDZmLCAweDY4LCAweDExLCAweDg1LCAweDI5LAorICAweGZkLCAweGJkLCAweDI4LCAweGM4LCAweDRmLCAweGI2LCAweGRlLCAweDQxLAorICAweDEzLCAweDE3LCAweDQ2LCAweDQ2LCAweGNhLCAweDNlLCAweDY5LCAweGQ1LAorICAweDNmLCAweGRlLCAweDAyLCAweDY5LCAweDg2LCAweDQ3LCAweGUzLCAweGU2LAorICAweDAzLCAweGI2LCAweDdkLCAweDAwLCAweDlmLCAweDY4LCAweGMxLCAweDFiLAorICAweGQ0LCAweGQyLCAweGY1LCAweDdiLCAweDJkLCAweDZkLCAweGI2LCAweDc0LAorICAweDA5LCAweGZmLCAweDQ2LCAweDVjLCAweDg3LCAweDE1LCAweDUzLCAweGQ0LAorICAweDFhLCAweDMwLCAweGUwLCAweDYwLCAweDMxLCAweDBhLCAweGY1LCAweDAzLAorICAweDM4LCAweDQ5LCAweDBlLCAweDZiLCAweDlkLCAweDEyLCAweDYyLCAweGFmLAorICAweGUxLCAweDU3LCAweGQyLCAweGIwLCAweGI1LCAweDg2LCAweDBmLCAweDM2LAorICAweDNiLCAweDRjLCAweGRhLCAweGNkLCAweDQ2LCAweDFiLCAweGVmLCAweDBiLAorICAweDQ2LCAweDA3LCAweGY2LCAweDIzLCAweDQxLCAweDQyLCAweDY5LCAweGNiLAorICAweDkxLCAweDA3LCAweGFmLCAweDc4LCAweGI5LCAweDIxLCAweDIwLCAweDljLAorICAweGI1LCAweDAwLCAweDRjLCAweDEzLCAweDM1LCAweGNmLCAweDE3LCAweDA4LAorICAweDYyLCAweDVlLCAweGI2LCAweDA1LCAweGIzLCAweGQ5LCAweDI4LCAweDc4LAorICAweDBjLCAweDJmLCAweDIxLCAweDMyLCAweDIxLCAweDMwLCAweGFkLCAweDRjLAorICAweGI2LCAweGE1LCAweDU2LCAweGRhLCAweGRjLCAweDQ2LCAweDRkLCAweDNhLAorICAweGE2LCAweDJkLCAweGNiLCAweDk0LCAweDE2LCAweDI2LCAweGMxLCAweDc1LAorICAweDBiLCAweDhhLCAweDZmLCAweGY0LCAweGFhLCAweDBkLCAweDlkLCAweGFlLAorICAweGI4LCAweGY4LCAweDc4LCAweDNjLCAweDVkLCAweDRmLCAweGQ1LCAweDM1LAorICAweDNhLCAweDU3LCAweGQyLCAweDk3LCAweGNlLCAweDc5LCAweDgwLCAweDI0LAorICAweDBlLCAweGVkLCAweDNlLCAweDU4LCAweDM5LCAweDkwLCAweDE2LCAweDAwLAorICAweDlkLCAweDQ1LCAweDc0LCAweDY1LCAweGMwLCAweDFjLCAweDQ4LCAweDQzLAorICAweGM0LCAweDdkLCAweGU2LCAweGY0LCAweDliLCAweDVlLCAweDYxLCAweDZhLAorICAweGViLCAweDc0LCAweGQyLCAweGMwLCAweDlhLCAweDliLCAweDNiLCAweGIzLAorICAweDBkLCAweDViLCAweGMwLCAweDVkLCAweDY1LCAweGJhLCAweDRhLCAweDMyLAorICAweDE5LCAweDAyLCAweGVhLCAweDdiLCAweDIxLCAweGJiLCAweDFmLCAweDhjLAorICAweGNlLCAweDc3LCAweDBhLCAweDI1LCAweDhiLCAweDgzLCAweDgxLCAweDczLAorICAweDQxLCAweGY3LCAweGExLCAweGIxLCAweDliLCAweGZlLCAweDRmLCAweGMxLAorICAweDE3LCAweDUxLCAweDliLCAweGUxLCAweDI4LCAweDJkLCAweGEyLCAweDRhLAorICAweDRiLCAweDRkLCAweGJjLCAweGFkLCAweDMzLCAweDRhLCAweDI3LCAweDEwLAorICAweGQyLCAweDUwLCAweDFjLCAweGIxLCAweDM2LCAweDUwLCAweDQ4LCAweDY1LAorICAweDM1LCAweGY4LCAweDg4LCAweDI4LCAweDZiLCAweDgyLCAweGMwLCAweDFjLAorICAweDgwLCAweGEwLCAweGZkLCAweDVkLCAweDE3LCAweDc4LCAweDEzLCAweGViLAorICAweGNiLCAweDVkLCAweDg1LCAweDA4LCAweDUxLCAweDkyLCAweGY0LCAweDFjLAorICAweGY0LCAweGE0LCAweGUyLCAweDM1LCAweDlmLCAweDA4LCAweGE5LCAweGE0LAorICAweDA4LCAweDA1LCAweDMyLCAweDZkLCAweDE2LCAweGYxLCAweDdiLCAweGMxLAorICAweDkyLCAweGM3LCAweGQ3LCAweDhiLCAweDJjLCAweDI3LCAweGRmLCAweDRlLAorICAweDlhLCAweGU2LCAweDU0LCAweDQwLCAweGU0LCAweDIxLCAweDVhLCAweGY5LAorICAweGM2LCAweDI0LCAweGVmLCAweDY1LCAweDA3LCAweDJlLCAweDJiLCAweDRkLAorICAweDRmLCAweDJhLCAweDA5LCAweDZjLCAweGU4LCAweGM3LCAweDg4LCAweDA1LAorICAweGM3LCAweDUwLCAweGIyLCAweGRlLCAweGEyLCAweGExLCAweDgwLCAweDY0LAorICAweDBiLCAweGIzLCAweDM2LCAweGNkLCAweDI2LCAweGRlLCAweDk4LCAweDhhLAorICAweGU0LCAweDg0LCAweDE3LCAweDU0LCAweDJjLCAweDU0LCAweDBlLCAweDE4LAorICAweDM4LCAweGE2LCAweGI1LCAweDBhLCAweDQ2LCAweDQxLCAweDJmLCAweDFjLAorICAweDc0LCAweDgwLCAweGVlLCAweGYxLCAweDdlLCAweDc0LCAweDI5LCAweDhiLAorICAweGQ0LCAweGRkLCAweGI1LCAweDY0LCAweDc0LCAweDE3LCAweGNmLCAweGNmLAorICAweGQ4LCAweDMyLCAweDM0LCAweGY5LCAweGZjLCAweDU4LCAweDY0LCAweGI1LAorICAweDQ0LCAweDBlLCAweDM0LCAweDQxLCAweDE3LCAweDE1LCAweGViLCAweGUwLAorICAweGEzLCAweDQ5LCAweDA4LCAweDNmLCAweGU4LCAweGM4LCAweDhkLCAweDVlLAorICAweGRlLCAweGEyLCAweGI1LCAweDAwLCAweDNhLCAweDA1LCAweDc4LCAweGNhLAorICAweDBhLCAweGY1LCAweGU1LCAweDA5LCAweGIwLCAweDVmLCAweGVhLCAweDMzLAorICAweDczLCAweGNlLCAweDEyLCAweGRlLCAweDg5LCAweGEyLCAweDQ5LCAweDE3LAorICAweDVhLCAweDcwLCAweDA3LCAweGMxLCAweDNiLCAweGY1LCAweDRjLCAweDU4LAorICAweGY2LCAweGJlLCAweDUxLCAweDQ5LCAweDBmLCAweGVlLCAweDhjLCAweDExLAorICAweDAzLCAweDg1LCAweDVhLCAweDI5LCAweDM1LCAweGQzLCAweDQ0LCAweDRjLAorICAweDYzLCAweDI0LCAweDBjLCAweGM1LCAweDJiLCAweDJkLCAweDljLCAweDQ2LAorICAweDUwLCAweDI4LCAweGQzLCAweDg4LCAweGM0LCAweDM0LCAweGJiLCAweGIwLAorICAweDgxLCAweDQxLCAweDNkLCAweGNmLCAweDIyLCAweDU4LCAweDYzLCAweDQzLAorICAweDEzLCAweGQzLCAweDcwLCAweDY0LCAweDI4LCAweGM2LCAweGNiLCAweDkwLAorICAweDZiLCAweDlkLCAweGQ4LCAweDM4LCAweDc0LCAweGZlLCAweGY4LCAweGE1LAorICAweDE4LCAweDBmLCAweDA4LCAweGEzLCAweDc2LCAweDhjLCAweGEwLCAweGJjLAorICAweDg1LCAweGM4LCAweDJmLCAweDBhLCAweDE2LCAweDQxLCAweGM4LCAweDNhLAorICAweDAyLCAweGU3LCAweDVlLCAweDAzLCAweGQyLCAweDQ5LCAweGRlLCAweDUzLAorICAweDVjLCAweDVjLCAweDg1LCAweGYwLCAweGE1LCAweDY5LCAweDEwLCAweGY0LAorICAweDI4LCAweDY1LCAweDQ4LCAweDM4LCAweDUyLCAweDExLCAweDdiLCAweDc4LAorICAweDhiLCAweDlkLCAweDA3LCAweDA0LCAweDUzLCAweDNiLCAweGQ0LCAweDc1LAorICAweDQxLCAweGRkLCAweDdjLCAweGIxLCAweGI0LCAweDQzLCAweDIxLCAweDMzLAorICAweGEwLCAweGZkLCAweGYwLCAweDAxLCAweGVlLCAweDVlLCAweDIzLCAweGQwLAorICAweDFlLCAweDRjLCAweGVmLCAweDA1LCAweGUyLCAweGUxLCAweDQ3LCAweDhiLAorICAweDIxLCAweDg0LCAweDFhLCAweDdiLCAweGE4LCAweDE0LCAweDAzLCAweDhlLAorICAweGIxLCAweDVjLCAweGY0LCAweDkyLCAweDQyLCAweDU1LCAweDg2LCAweDkyLAorICAweDY5LCAweDY5LCAweDQyLCAweDViLCAweDZhLCAweGYxLCAweDAxLCAweDIwLAorICAweDRiLCAweGE3LCAweDBiLCAweDAzLCAweDgyLCAweDM2LCAweDhiLCAweGE4LAorICAweDBkLCAweDEwLCAweGUxLCAweDg4LCAweDM4LCAweDYyLCAweDJlLCAweDEzLAorICAweGUwLCAweDdhLCAweDQ4LCAweDAwLCAweGM2LCAweGIzLCAweGJkLCAweGU4LAorICAweDQ5LCAweGFmLCAweGI4LCAweGVkLCAweDNiLCAweDEwLCAweGEyLCAweDE1LAorICAweDRhLCAweGQ0LCAweDMwLCAweDdlLCAweDljLCAweGU5LCAweGIwLCAweDU4LAorICAweDkyLCAweDA0LCAweDhkLCAweDJhLCAweGM4LCAweGNmLCAweGU5LCAweGNjLAorICAweDhiLCAweGEzLCAweDBjLCAweDg5LCAweGY1LCAweDljLCAweGU1LCAweGM1LAorICAweDA4LCAweGNhLCAweGQ0LCAweDk1LCAweDE1LCAweDIxLCAweGUyLCAweGM4LAorICAweGM2LCAweDkzLCAweGMyLCAweDQwLCAweDcwLCAweDYyLCAweGY3LCAweDIwLAorICAweDM5LCAweDYwLCAweGFhLCAweDVhLCAweDQ4LCAweDJlLCAweDIyLCAweGQzLAorICAweDQ3LCAweDI2LCAweDJjLCAweGI4LCAweGM4LCAweDg4LCAweGFmLCAweDExLAorICAweGYwLCAweDMyLCAweDA3LCAweDAyLCAweDZjLCAweGYxLCAweDBmLCAweDM4LAorICAweDg0LCAweDFkLCAweDVkLCAweDk2LCAweDA3LCAweDcwLCAweDFjLCAweDJiLAorICAweGI5LCAweGMyLCAweDUwLCAweDliLCAweDRlLCAweDQ1LCAweGUzLCAweDI1LAorICAweDhmLCAweGVlLCAweDE0LCAweDcyLCAweDJjLCAweDY4LCAweDI5LCAweDgwLAorICAweDQ2LCAweDU4LCAweGExLCAweDExLCAweDIwLCAweDM4LCAweDliLCAweDcwLAorICAweDkwLCAweDFjLCAweDJlLCAweDBjLCAweDg0LCAweGNjLCAweDdlLCAweDI3LAorICAweDJhLCAweDE2LCAweDA3LCAweDBhLCAweDFhLCAweDg4LCAweDBmLCAweDQxLAorICAweGZmLCAweGY4LCAweDYxLCAweDQ0LCAweGQ4LCAweDYwLCAweDE4LCAweDg1LAorICAweDUzLCAweDAzLCAweDIwLCAweDczLCAweGEyLCAweDA3LCAweDZiLCAweGVlLAorICAweDkyLCAweGM3LCAweDRmLCAweDBkLCAweGY2LCAweGYwLCAweDE3LCAweDFhLAorICAweDU5LCAweGRlLCAweDliLCAweDI4LCAweDA3LCAweDA0LCAweGRhLCAweGNhLAorICAweDJiLCAweDZhLCAweDM3LCAweDU4LCAweDZiLCAweGFmLCAweDgzLCAweDEzLAorICAweDYwLCAweGU3LCAweDZlLCAweGM0LCAweDQ4LCAweDIxLCAweDBlLCAweDU4LAorICAweDkyLCAweDgzLCAweDgyLCAweDc4LCAweDhiLCAweDIzLCAweDU4LCAweGQ5LAorICAweDBkLCAweDI0LCAweDdkLCAweGI5LCAweDJjLCAweDA3LCAweDJjLCAweDBlLAorICAweDQyLCAweDA5LCAweDk4LCAweGIwLCAweGQ4LCAweDRkLCAweDIzLCAweDEwLAorICAweDcwLCAweGE3LCAweDczLCAweDg2LCAweGM2LCAweDBiLCAweDA0LCAweDlmLAorICAweGZiLCAweDU2LCAweDI5LCAweDA3LCAweDIzLCAweDhmLCAweDk4LCAweDBlLAorICAweDhmLCAweDYzLCAweDBhLCAweDUwLCAweDc2LCAweDI5LCAweDI4LCAweDI2LAorICAweDNjLCAweDVmLCAweDAyLCAweGZiLCAweDUxLCAweDliLCAweGIwLCAweDYxLAorICAweGMwLCAweDcwLCAweGJjLCAweDE3LCAweDI5LCAweGMwLCAweGNjLCAweDFkLAorICAweDA4LCAweDYyLCAweGNhLCAweDcyLCAweGYwLCAweGE0LCAweGZkLCAweDVkLAorICAweDJjLCAweDU4LCAweGQ1LCAweDVjLCAweDFjLCAweDJhLCAweDRlLCAweGY3LAorICAweDBhLCAweDAxLCAweGZhLCAweGZmLCAweGZmLCAweGQ1LCAweDA5LCAweGE4LAorICAweDhjLCAweDFjLCAweDMwLCAweDI1LCAweDA5LCAweGQzLCAweGQ5LCAweDMwLAorICAweGQzLCAweGRiLCAweDk0LCAweDEzLCAweDc0LCAweGM4LCAweDcxLCAweDFhLAorICAweDIxLCAweDg3LCAweDQzLCAweDEwLCAweDg5LCAweDVhLCAweDZiLCAweDkxLAorICAweGQ1LCAweDY2LCAweGEwLCAweGIwLCAweDFjLCAweDMwLCAweDU4LCAweDY0LAorICAweDE1LCAweGZlLCAweDM2LCAweDA0LCAweDdiLCAweDRkLCAweDIzLCAweDA3LAorICAweDNhLCAweGYxLCAweDBhLCAweGMyLCAweDdkLCAweDNiLCAweGExLCAweDkxLAorICAweGE0LCAweDYyLCAweDk2LCAweGIxLCAweGFlLCAweDgzLCAweGY2LCAweGMwLAorICAweDA3LCAweGFlLCAweDZjLCAweDExLCAweDQ1LCAweGY0LCAweDFjLCAweDM1LAorICAweDZhLCAweDI4LCAweDM5LCAweDYwLCAweDcxLCAweDFiLCAweGY0LCAweDM5LAorICAweDQ0LCAweDQxLCAweGFlLCAweGYxLCAweDA3LCAweDAxLCAweGQ0LCAweDg5LAorICAweGY2LCAweDk0LCAweDFmLCAweDdkLCAweGFiLCAweDFiLCAweDIwLCAweGRiLAorICAweDIyLCAweDFlLCAweGEyLCAweDA3LCAweDA5LCAweDhiLCAweGUzLCAweGY0LAorICAweGRhLCAweDgyLCAweDhjLCAweDI1LCAweDAxLCAweGMwLCAweGUyLCAweDM2LAorICAweDU5LCAweGEwLCAweGUyLCAweDQyLCAweDgyLCAweDY0LCAweDc4LCAweGIwLAorICAweDY2LCAweDBlLCAweDU5LCAweGRkLCAweDYzLCAweDY1LCAweDBiLCAweDAyLAorICAweDZhLCAweDhjLCAweGMyLCAweGFkLCAweDdhLCAweDkwLCAweGEzLCAweGEwLAorICAweGJkLCAweGRhLCAweDUzLCAweGQ5LCAweGQ1LCAweDgyLCAweDRmLCAweDJjLAorICAweDM3LCAweGQ4LCAweDUwLCAweDhjLCAweGEwLCAweDJhLCAweDcwLCAweDVlLAorICAweDQ3LCAweDRhLCAweGE5LCAweDI4LCAweGFmLCAweDRmLCAweDU4LCAweDg4LAorICAweDMxLCAweDI5LCAweDE5LCAweDc2LCAweDhjLCAweGM4LCAweGJmLCAweDBkLAorICAweGMxLCAweDU2LCAweGU3LCAweDBhLCAweDA1LCAweGU1LCAweDIwLCAweGU4LAorICAweGU2LCAweGIwLCAweDNiLCAweGI3LCAweGEwLCAweGUxLCAweDgwLCAweGFhLAorICAweGEwLCAweDIzLCAweGQ3LCAweDc0LCAweGQ1LCAweDAxLCAweGZjLCAweDE5LAorICAweDg1LCAweDEzLCAweDAxLCAweGMxLCAweDkxLCAweDFiLCAweGVjLCAweDI4LAorICAweDgwLCAweGIxLCAweGUyLCAweGM3LCAweDZhLCAweDc0LCAweDA3LCAweDJjLAorICAweDMxLCAweDE1LCAweGQ4LCAweGJkLCAweGI3LCAweDgyLCAweGUyLCAweDFkLAorICAweDNjLCAweGEyLCAweDgzLCAweDk3LCAweDA5LCAweDNhLCAweGMwLCAweGIxLAorICAweDM0LCAweDUwLCAweDBiLCAweDg3LCAweDZjLCAweGM4LCAweGE3LCAweDZlLAorICAweDY0LCAweDM3LCAweGI3LCAweDkxLCAweDFmLCAweDA5LCAweDBhLCAweDM4LAorICAweDM0LCAweDhjLCAweDk3LCAweDgwLCAweGU1LCAweDhkLCAweDk0LCAweDBhLAorICAweGQ2LCAweGU5LCAweDI0LCAweDE4LCAweGFlLCAweDM0LCAweGQ3LCAweGQyLAorICAweDk0LCAweDIwLCAweDM2LCAweDM0LCAweDdjLCAweDI5LCAweGU5LCAweGIwLAorICAweDcxLCAweDNlLCAweGUyLCAweDA4LCAweDY5LCAweGRlLCAweDE0LCAweDhiLAorICAweGNhLCAweDAxLCAweDMyLCAweDY3LCAweDY0LCAweDQzLCAweDg1LCAweDA3LAorICAweGY0LCAweGRmLCAweDA0LCAweGRiLCAweDg4LCAweDM4LCAweGIwLCAweGJjLAorICAweDMyLCAweDQ0LCAweDE0LCAweDRmLCAweDEwLCAweGE4LCAweDM0LCAweDg5LAorICAweDEwLCAweDM4LCAweDI4LCAweDdjLCAweGUyLCAweDBhLCAweDBlLCAweDE3LAorICAweDA0LCAweGFlLCAweGZkLCAweDc4LCAweDVkLCAweDEyLCAweGRjLCAweGRlLAorICAweDczLCAweDljLCAweDE3LCAweDg1LCAweDJmLCAweDc5LCAweGM1LCAweGJiLAorICAweDJjLCAweDIxLCAweDZiLCAweDkyLCAweDE0LCAweDkyLCAweDlmLCAweDllLAorICAweDBjLCAweGQ2LCAweDIwLCAweDk5LCAweDI4LCAweGFlLCAweDI3LCAweDIyLAorICAweDZkLCAweGQ5LCAweGM0LCAweDQxLCAweDk5LCAweGZkLCAweDcxLCAweDQyLAorICAweDI1LCAweDhhLCAweDQxLCAweGQyLCAweDFjLCAweDYwLCAweGUzLCAweGZhLAorICAweDE0LCAweDcwLCAweGE0LCAweDhhLCAweGFmLCAweGE1LCAweGQxLCAweDkwLAorICAweDI2LCAweDQyLCAweDJlLCAweDUzLCAweDQyLCAweGU4LCAweDBlLCAweDBhLAorICAweDM3LCAweDI3LCAweDY5LCAweDI5LCAweDIxLCAweDQxLCAweDNjLCAweGY2LAorICAweGYyLCAweDIxLCAweGU1LCAweDA3LCAweDQ4LCAweDdhLCAweDQ5LCAweGQwLAorICAweDVjLCAweGU5LCAweGM5LCAweDI1LCAweDBjLCAweGE3LCAweDAyLCAweGE5LAorICAweDlkLCAweDE3LCAweDhjLCAweDg1LCAweGRkLCAweDA1LCAweGY2LCAweDgzLAorICAweDMxLCAweDhmLCAweDQxLCAweGMyLCAweGE4LCAweDQ2LCAweDBlLCAweGEwLAorICAweGUwLCAweDVmLCAweDNjLCAweDE5LCAweGQxLCAweDRlLCAweDllLCAweDQwLAorICAweDg5LCAweDYwLCAweDVlLCAweGNmLCAweDYwLCAweDM4LCAweDA3LCAweGQ0LAorICAweDIwLCAweGJhLCAweDdjLCAweDI4LCAweGU4LCAweDM4LCAweDYyLCAweGU5LAorICAweDI1LCAweGUxLCAweGExLCAweDkwLCAweDM4LCAweDlhLCAweGFjLCAweDQ1LAorICAweGFmLCAweGE1LCAweDhiLCAweDIxLCAweGVhLCAweDIzLCAweDYwLCAweGU3LAorICAweDY4LCAweDhjLCAweGEzLCAweDgxLCAweDRjLCAweGMzLCAweDc0LCAweGQ3LAorICAweDAzLCAweDIyLCAweDNlLCAweGI4LCAweGI4LCAweDI2LCAweDY0LCAweDI0LAorICAweGE0LCAweGE3LCAweGI0LCAweGU2LCAweDE0LCAweDEyLCAweDA1LCAweDUyLAorICAweDBmLCAweDQ1LCAweDAwLCAweDE5LCAweGZjLCAweDBlLCAweDBhLCAweDM0LAorICAweDE5LCAweDAzLCAweDgxLCAweDdmLCAweDhkLCAweDM0LCAweGY3LCAweDAyLAorICAweDM5LCAweDhiLCAweDhiLCAweDkwLCAweDA0LCAweDUyLCAweDE0LCAweGI4LAorICAweGI4LCAweDJjLCAweDQyLCAweDU4LCAweDBiLCAweDk4LCAweDllLCAweDUxLAorICAweGMwLCAweGM1LCAweDY4LCAweDExLCAweGU4LCAweDAzLCAweDgxLCAweGMwLAorICAweGJmLCAweDY2LCAweDgxLCAweGQ1LCAweGQyLCAweGI5LCAweDQxLCAweDI3LAorICAweDAyLCAweDYzLCAweDExLCAweGEzLCAweDNmLCAweDU3LCAweDllLCAweDczLAorICAweGJjLCAweGIxLCAweDA5LCAweDRmLCAweDA4LCAweDM3LCAweDMwLCAweDk0LAorICAweGU2LCAweDkzLCAweDhiLCAweGEzLCAweDM2LCAweDZlLCAweDAwLCAweGUxLAorICAweGFlLCAweGE4LCAweDkxLCAweDgzLCAweDhkLCAweDEyLCAweDg1LCAweDRhLAorICAweDhhLCAweDFiLCAweDI3LCAweGQzLCAweGQzLCAweDg4LCAweGMzLCAweDA3LAorICAweGNjLCAweDgwLCAweGUwLCAweDVjLCAweGNjLCAweGVhLCAweGMxLCAweDkwLAorICAweDJjLCAweDVkLCAweDNjLCAweGEwLCAweGUwLCAweDllLCAweGFkLCAweDYyLAorICAweDM3LCAweGM1LCAweGUyLCAweGExLCAweDQwLCAweDg0LCAweDJiLCAweDgyLAorICAweGIwLCAweDVkLCAweDNlLCAweDczLCAweGJkLCAweDA3LCAweDBiLCAweGMyLAorICAweDc3LCAweDE2LCAweDI1LCAweDE3LCAweDcwLCAweGQ4LCAweDM4LCAweDY5LAorICAweDA4LCAweGI0LCAweGNiLCAweDBlLCAweDA1LCAweDE0LCAweDM4LCAweDI3LAorICAweDQ4LCAweGFhLCAweGExLCAweDg1LCAweDEwLCAweDA3LCAweGEzLCAweDNkLAorICAweDU0LCAweDY2LCAweDE4LCAweDAzLCAweDhmLCAweDFiLCAweDNhLCAweDRhLAorICAweDI3LCAweGQ3LCAweGJiLCAweDAxLCAweGQwLCAweGZlLCAweGVhLCAweGYzLAorICAweGE2LCAweGY4LCAweDQzLCAweDg2LCAweDEwLCAweDFjLCAweDc2LCAweDg2LAorICAweDM0LCAweDYyLCAweDRhLCAweDBiLCAweGM0LCAweGI5LCAweGQzLCAweDRlLAorICAweGQ3LCAweGY5LCAweGEwLCAweGIxLCAweDI0LCAweDE0LCAweDUwLCAweGNmLAorICAweDg2LCAweDgxLCAweDNkLCAweGU1LCAweDQyLCAweGI3LCAweDY4LCAweDJlLAorICAweGY0LCAweDkyLCAweDE0LCAweDQ0LCAweDYzLCAweDJlLCAweDFkLCAweDdlLAorICAweGFmLCAweDQyLCAweDZkLCAweDdmLCAweDY0LCAweDI5LCAweDBhLCAweGI1LAorICAweGVjLCAweDQwLCAweDBlLCAweDA0LCAweGVmLCAweGJkLCAweGU3LCAweDU2LAorICAweDQwLCAweDBiLCAweDBhLCAweDc5LCAweDhjLCAweDdiLCAweGMwLCAweGE3LAorICAweDNkLCAweGFmLCAweDk0LCAweGRlLCAweDIxLCAweDQ1LCAweGMwLCAweGMwLAorICAweDE3LCAweDMzLCAweDMxLCAweDBhLCAweGNiLCAweDkyLCAweDAzLCAweDhmLAorICAweGI1LCAweGQwLCAweGY3LCAweDlkLCAweDNiLCAweDU2LCAweDYxLCAweDIxLAorICAweDI1LCAweDE5LCAweDgyLCAweGVlLCAweGYzLCAweDkyLCAweGEzLCAweDc2LAorICAweGJkLCAweGU3LCAweGY2LCAweDc2LCAweGY2LCAweGU0LCAweGMwLCAweDI5LAorICAweDgxLCAweGI1LCAweGQwLCAweDcwLCAweGFkLCAweGZmLCAweDNjLCAweGJhLAorICAweGQzLCAweDZkLCAweDk2LCAweGY1LCAweDEwLCAweDJmLCAweGUzLCAweGIzLAorICAweDA1LCAweGM0LCAweDUzLCAweGRiLCAweDYxLCAweDIwLCAweDNhLCAweDlmLAorICAweDlkLCAweDM1LCAweGNhLCAweDRmLCAweGE2LCAweGUyLCAweDkwLCAweDcyLAorICAweGRkLCAweDA5LCAweDIxLCAweDcwLCAweDdlLCAweGU4LCAweDAwLCAweGYyLAorICAweGUwLCAweDNkLCAweDYwLCAweDFkLCAweDQyLCAweDVkLCAweDIwLCAweDZkLAorICAweDgyLCAweGI2LCAweGVhLCAweGU4LCAweDA0LCAweGRhLCAweGZhLCAweDQ4LAorICAweDhiLCAweGIwLCAweDk2LCAweGEwLCAweDA3LCAweDJjLCAweDRmLCAweGVkLAorICAweGJjLCAweDViLCAweGEwLCAweGU5LCAweDA1LCAweDBmLCAweDNhLCAweDRhLAorICAweDgyLCAweDBhLCAweGZlLCAweDYyLCAweDEzLCAweGIxLCAweDc5LCAweGRlLAorICAweDhiLCAweDg4LCAweDM0LCAweGU1LCAweDFhLCAweDAxLCAweDcwLCAweDU3LAorICAweDJiLCAweDgyLCAweGMzLCAweDkxLCAweDcyLCAweDFhLCAweGFkLCAweDYyLAorICAweDBlLCAweDgzLCAweDg5LCAweDU3LCAweDgxLCAweDI3LCAweDUwLCAweDJmLAorICAweDA3LCAweDNmLCAweDA3LCAweDIzLCAweDNmLCAweDE3LCAweGZjLCAweGM0LAorICAweDFkLCAweGRhLCAweDE4LCAweDExLCAweDNiLCAweDZmLCAweDUwLCAweDYyLAorICAweGMyLCAweGY0LCAweDQwLCAweDlkLCAweGJjLCAweDUyLCAweDg4LCAweDVjLAorICAweDJiLCAweDc3LCAweDI4LCAweDZlLCAweGI5LCAweDIwLCAweDJlLCAweGFkLAorICAweDQyLCAweDY4LCAweDlmLCAweDVlLCAweDY0LCAweGJkLCAweDM2LCAweDUzLAorICAweDBhLCAweDRhLCAweDQ2LCAweDhkLCAweDY0LCAweDJiLCAweDIyLCAweDNiLAorICAweGE2LCAweGY1LCAweDA2LCAweDc2LCAweDEyLCAweDg5LCAweGJhLCAweGMzLAorICAweDI0LCAweDIzLCAweDEwLCAweGMwLCAweDg3LCAweDkyLCAweGYwLCAweGU2LAorICAweGJlLCAweDJiLCAweDg4LCAweDZkLCAweDM0LCAweDE4LCAweDFmLCAweDk1LAorICAweDg5LCAweDAxLCAweDdiLCAweGVkLCAweDA3LCAweDIwLCAweDBjLCAweDQ0LAorICAweGRiLCAweDY5LCAweGFlLCAweDEyLCAweDIwLCAweDIwLCAweDhiLCAweDQwLAorICAweDllLCAweDJjLCAweDRmLCAweDEwLCAweDliLCAweDVjLCAweDI0LCAweDc5LAorICAweDc4LCAweDg1LCAweDEyLCAweDMxLCAweDk4LCAweDU2LCAweGY2LCAweGRlLAorICAweGEyLCAweGI0LCAweDY2LCAweDQzLCAweDU0LCAweGE5LCAweDc2LCAweGJjLAorICAweGYwLCAweDFjLCAweDQ1LCAweGJhLCAweDFhLCAweDIxLCAweDI4LCAweDA3LAorICAweDNmLCAweDgxLCAweDFlLCAweDgzLCAweDA2LCAweDVkLCAweDBjLCAweDg5LAorICAweGE3LCAweDk0LCAweDkzLCAweDgwLCAweGJkLCAweGU5LCAweGEwLCAweGMzLAorICAweGEwLCAweDNjLCAweGVlLCAweDljLCAweGYyLCAweDEyLCAweDAzLCAweDg1LAorICAweDRmLCAweDgwLCAweGVhLCAweDdhLCAweGEyLCAweGM4LCAweDEwLCAweGFlLAorICAweDhjLCAweDgyLCAweDQ2LCAweDI4LCAweGMxLCAweGMyLCAweGYwLCAweDc3LAorICAweDQ4LCAweDY5LCAweGFlLCAweDQ4LCAweDJiLCAweGFiLCAweGU0LCAweDBiLAorICAweDVlLCAweGEzLCAweDkxLCAweDYxLCAweDVlLCAweDVjLCAweGRhLCAweDM0LAorICAweDQ0LCAweGJkLCAweGE0LCAweDBkLCAweDdlLCAweDUwLCAweDczLCAweGJhLAorICAweGY0LCAweDFmLCAweGJmLCAweGZmLCAweGZmLCAweDZhLCAweDIwLCAweGE2LAorICAweDI3LCAweGY5LCAweGMwLCAweDdhLCAweDBmLCAweGZmLCAweGNmLCAweGY1LAorICAweGQxLCAweGFlLCAweDE1LCAweDY1LCAweDI4LCAweDkwLCAweDg0LCAweGQzLAorICAweDBhLCAweDJmLCAweDA2LCAweDAwLCAweGUyLCAweDNmLCAweDgzLCAweDRkLAorICAweDNmLCAweDEwLCAweGFjLCAweDUyLCAweDBlLCAweDNiLCAweDgxLCAweGQxLAorICAweDdlLCAweDA2LCAweDAxLCAweDE0LCAweDgyLCAweDNhLCAweDA0LCAweDAyLAorICAweGU0LCAweDc2LCAweDFlLCAweGUwLCAweGUwLCAweDVkLCAweDUyLCAweDk1LAorICAweGRkLCAweGE3LCAweGI4LCAweDBiLCAweDE0LCAweDAwLCAweGUwLCAweGM4LAorICAweGViLCAweDU4LCAweGQ4LCAweGM0LCAweDMwLCAweDIxLCAweGUwLCAweGY0LAorICAweDMwLCAweDAxLCAweDg0LCAweGY0LCAweDMxLCAweDE4LCAweDAyLCAweDdhLAorICAweDk0LCAweDJjLCAweDE1LCAweGM0LCAweGRhLCAweGM0LCAweDc4LCAweDYyLAorICAweDMyLCAweDhiLCAweDQyLCAweDQ1LCAweDgxLCAweGM1LCAweDI0LCAweDcxLAorICAweDAxLCAweDc0LCAweGUwLCAweGM4LCAweDkwLCAweDFjLCAweDZjLCAweDk0LAorICAweDRkLCAweDQ4LCAweGI0LCAweGY0LCAweDM3LCAweDBkLCAweDAzLCAweDg5LAorICAweDBmLCAweDM4LCAweDY3LCAweDYwLCAweDNmLCAweGJjLCAweDAwLCAweDZjLAorICAweDVlLCAweDBlLCAweDQxLCAweDRkLCAweDg1LCAweDc2LCAweDAyLCAweGVmLAorICAweDVlLCAweDQxLCAweGNiLCAweGQwLCAweDcwLCAweDY0LCAweDg1LCAweDYyLAorICAweDc5LCAweGQxLCAweDgwLCAweGI4LCAweDFjLCAweDI3LCAweDcwLCAweDFmLAorICAweGRmLCAweGZmLCAweGY3LCAweDIwLCAweGEzLCAweDI1LCAweDIyLCAweGQzLAorICAweDhiLCAweDllLCAweDAyLCAweDFlLCAweDVjLCAweDFjLCAweDExLCAweGFlLAorICAweGEzLCAweDNhLCAweGI3LCAweGIyLCAweDhiLCAweGFiLCAweGUwLCAweGIxLAorICAweDEyLCAweGYwLCAweDFjLCAweDJlLCAweDBhLCAweDEyLCAweGJjLCAweDk1LAorICAweDBmLCAweDZhLCAweDA5LCAweDJmLCAweDQ1LCAweGViLCAweDQwLCAweDFjLAorICAweDQzLCAweGNkLCAweDU5LCAweDBiLCAweGUyLCAweDZhLCAweDVmLCAweDQzLAorICAweDRhLCAweDA5LCAweDU0LCAweGQzLCAweDYyLCAweDlmLCAweDY1LCAweDg4LAorICAweDk0LCAweDhjLCAweGFhLCAweGMyLCAweGZhLCAweGZlLCAweDU1LCAweDJjLAorICAweGU3LCAweDgyLCAweGFkLCAweDZkLCAweDQxLCAweGNjLCAweDE5LCAweDIyLAorICAweGUwLCAweGE3LCAweDMxLCAweDUzLCAweDkxLCAweDAzLCAweGY1LCAweDE3LAorICAweGZlLCAweDJlLCAweDI5LCAweDI2LCAweDRjLCAweGIxLCAweGI5LCAweDJmLAorICAweDViLCAweDgwLCAweDhjLCAweGI4LCAweDYxLCAweDQxLCAweDc3LCAweDQxLAorICAweGVmLCAweDExLCAweGQ0LCAweDA2LCAweDg2LCAweDI0LCAweDVlLCAweDQ0LAorICAweDJiLCAweDhjLCAweGQxLCAweDE0LCAweDkzLCAweDMyLCAweGZjLCAweDViLAorICAweDUxLCAweDBhLCAweGI0LCAweGU1LCAweDY0LCAweDNjLCAweGI0LCAweGQ4LAorICAweDM5LCAweDE4LCAweDUxLCAweDQ4LCAweDQxLCAweGNiLCAweDcwLCAweDlmLAorICAweDcwLCAweDMyLCAweDQwLCAweDE1LCAweDRhLCAweDg4LCAweDBlLCAweDQ2LAorICAweDE5LCAweDg0LCAweDcwLCAweGQyLCAweGU3LCAweGY1LCAweGU3LCAweDgxLAorICAweGFhLCAweGU3LCAweGRmLCAweGU4LCAweDY5LCAweDI1LCAweDM2LCAweDQ4LAorICAweDBlLCAweDQyLCAweDE0LCAweDRkLCAweGE2LCAweGYyLCAweDkyLCAweGFjLAorICAweDQ5LCAweGQyLCAweDY2LCAweDg1LCAweDAxLCAweDI4LCAweGI4LCAweDEzLAorICAweDE5LCAweDZiLCAweDc4LCAweDJlLCAweDdlLCAweGJmLCAweGY4LCAweDEzLAorICAweGVlLCAweDUwLCAweDcxLCAweGNmLCAweDIwLCAweDdmLCAweDIwLCAweDMwLAorICAweDJjLCAweDM0LCAweDEzLCAweDViLCAweGIyLCAweDMxLCAweDhhLCAweGUyLAorICAweGY3LCAweDM0LCAweDgzLCAweDMxLCAweGE2LCAweGJlLCAweDk5LCAweDU2LAorICAweDFiLCAweDZiLCAweGI0LCAweGE4LCAweGY5LCAweGNhLCAweDMxLCAweDFhLAorICAweDM5LCAweDUwLCAweDJjLCAweDBlLCAweDkwLCAweDFjLCAweDczLCAweGRjLAorICAweDlkLCAweDVkLCAweDZlLCAweDIyLCAweGE2LCAweDkwLCAweDllLCAweDVhLAorICAweGIyLCAweDBlLCAweDEzLCAweDQ1LCAweGU3LCAweGIzLCAweGEwLCAweGM0LAorICAweGNmLCAweGJkLCAweDQzLCAweDRkLCAweDgzLCAweDA2LCAweDUwLCAweGU1LAorICAweDgxLCAweDZlLCAweDAwLCAweGVlLCAweDAwLCAweGU4LCAweGU5LCAweGI4LAorICAweDUyLCAweDQxLCAweGVjLCAweDFiLCAweDUxLCAweDc1LCAweDgwLCAweDk5LAorICAweDU3LCAweGQxLCAweDc1LCAweGQwLCAweDk0LCAweDEyLCAweDBiLCAweDg5LAorICAweGZjLCAweDE3LCAweDQ0LCAweDI1LCAweDIwLCAweGI5LCAweDUzLCAweDc5LAorICAweDY3LCAweDNiLCAweGY1LCAweDIyLCAweDI2LCAweDY5LCAweDI1LCAweDQyLAorICAweGU1LCAweDcxLCAweDljLCAweGExLCAweGQwLCAweDMxLCAweDVmLCAweDZjLAorICAweDliLCAweDU2LCAweDM1LCAweDQxLCAweDcxLCAweDBiLCAweDY0LCAweGUwLAorICAweDhhLCAweDJiLCAweGQzLCAweGQ3LCAweDQxLCAweDYzLCAweDAwLCAweDc5LAorICAweGRkLCAweGQ5LCAweDJhLCAweGU4LCAweDUxLCAweDEwLCAweDQwLCAweDIyLAorICAweDdkLCAweDBiLCAweDNiLCAweGUyLCAweDQ1LCAweGU4LCAweGJmLCAweDU0LAorICAweGY0LCAweDYwLCAweGIwLCAweGE1LCAweDI5LCAweGU1LCAweDExLCAweDBkLAorICAweDI5LCAweGFiLCAweGRlLCAweGEyLCAweDQ1LCAweDIwLCAweDJmLCAweGVhLAorICAweGM4LCAweGZhLCAweDJlLCAweDdlLCAweDljLCAweDk1LCAweDEyLCAweDg0LAorICAweGFlLCAweDIzLCAweDA3LCAweDA5LCAweDkzLCAweDI0LCAweDA5LCAweDM4LAorICAweDNiLCAweDg2LCAweDgxLCAweDM1LCAweDg0LCAweGRhLCAweGZiLCAweDkyLAorICAweDJmLCAweDEwLCAweDgzLCAweDgyLCAweDJlLCAweGJhLCAweDEwLCAweGM4LAorICAweGE0LCAweDIyLCAweGRkLCAweDA3LCAweDBkLCAweDFmLCAweDBkLCAweGQ5LAorICAweGQwLCAweDRkLCAweGQ3LCAweDIxLCAweGQ3LCAweDk4LCAweDAzLCAweDgxLAorICAweDYwLCAweDdkLCAweGQ1LCAweGU3LCAweDIxLCAweDQyLCAweGU3LCAweGU2LAorICAweGEwLCAweGFiLCAweDgzLCAweDgyLCAweDdkLCAweGM4LCAweDMyLCAweGU1LAorICAweDA3LCAweDNlLCAweDE0LCAweDlkLCAweGQzLCAweGYzLCAweGE0LCAweGEzLAorICAweDEwLCAweGNhLCAweDgzLCAweDhlLCAweGE2LCAweGIxLCAweDRhLCAweGM0LAorICAweGVkLCAweDc0LCAweDdkLCAweDA3LCAweDAyLCAweGViLCAweGMzLCAweDE3LAorICAweDljLCAweGE4LCAweGMyLCAweDRhLCAweDlmLCAweDVjLCAweDVjLCAweDY5LAorICAweDAxLCAweDM2LCAweDlkLCAweGE0LCAweGEwLCAweGYzLCAweGZmLCAweGZmLAorICAweGEwLCAweDM5LCAweDMyLCAweDUyLCAweDQ1LCAweDkxLCAweDJmLCAweGMwLAorICAweDlmLCAweDA2LCAweDYwLCAweGUyLCAweDVhLCAweDc3LCAweDBhLCAweDNmLAorICAweDg5LCAweDI0LCAweDI4LCAweDVjLCAweDIyLCAweGFjLCAweGM1LCAweGY4LAorICAweGI3LCAweDZjLCAweDQwLCAweDMzLCAweDdkLCAweDU4LCAweDg5LCAweDcyLAorICAweDY5LCAweGVhLCAweGMwLCAweGUxLCAweDkxLCAweDFmLCAweDU3LCAweGQ5LAorICAweDk5LCAweDI3LCAweDE3LCAweDQ3LCAweDdhLCAweDg4LCAweDI2LCAweGRiLAorICAweGE2LCAweGU1LCAweGU0LCAweDAxLCAweGUyLCAweGE5LCAweDBjLCAweDA1LAorICAweDNiLCAweDkwLCAweGRhLCAweDNlLCAweDJjLCAweDJiLCAweDdlLCAweDc3LAorICAweGE0LCAweDdhLCAweDczLCAweGM4LCAweDFjLCAweDU5LCAweDBhLCAweDQxLAorICAweDNmLCAweDE2LCAweDYxLCAweDQ3LCAweDAxLCAweGM0LCAweGIzLCAweDgwLAorICAweGJhLCAweGQzLCAweDRkLCAweDg2LCAweDIxLCAweDgwLCAweDUyLCAweGZhLAorICAweDQ4LCAweDhkLCAweDEwLCAweGM0LCAweDE3LCAweGQyLCAweGY1LCAweDE0LAorICAweDBhLCAweGUyLCAweDdkLCAweDQ2LCAweDU0LCAweDRiLCAweDBjLCAweDBkLAorICAweDA1LCAweDU4LCAweGIwLCAweDk1LCAweDRmLCAweDUwLCAweDgzLCAweDkxLAorICAweDA1LCAweDM5LCAweDEwLCAweDM5LCAweDEwLCAweDM4LCAweDhmLCAweDFiLAorICAweGJjLCAweDg1LCAweDAxLCAweDg4LCAweGQzLCAweGI0LCAweDEzLCAweGI1LAorICAweGU1LCAweDc0LCAweDRiLCAweDAzLCAweDkxLCAweDEwLCAweDMxLCAweDhjLAorICAweDBhLCAweDI1LCAweDcyLCAweDViLCAweDA2LCAweDcwLCAweDllLCAweDUxLAorICAweDUzLCAweDU1LCAweDE5LCAweDI4LCAweDM4LCAweGEwLCAweDhmLCAweDgzLAorICAweDY0LCAweDIxLCAweDVlLCAweGJiLCAweDE5LCAweGNkLCAweDE4LCAweDA2LAorICAweDIwLCAweGUzLCAweGYzLCAweDE2LCAweGU4LCAweDM4LCAweDIyLCAweGQwLAorICAweDEyLCAweDYyLCAweGFjLCAweDZjLCAweDFkLCAweDExLCAweDlkLCAweGJkLAorICAweDI4LCAweDg0LCAweGZhLCAweGZhLCAweDk1LCAweDc3LCAweGEwLCAweDNhLAorICAweDg2LCAweDQ4LCAweGE5LCAweGEwLCAweDhlLCAweDJjLCAweDUwLCAweDhmLAorICAweGJjLCAweDAxLCAweGMwLCAweGIwLCAweDA1LCAweGNjLCAweGQ1LCAweDkwLAorICAweDQxLCAweDcwLCAweDRlLCAweDlhLCAweGViLCAweDIyLCAweDA3LCAweDE0LAorICAweDgyLCAweGViLCAweGUwLCAweDlmLCAweDRlLCAweDJjLCAweDA3LCAweGVhLAorICAweDgwLCAweDBkLCAweDEyLCAweGMyLCAweDgxLCAweDk4LCAweDM4LCAweDU2LAorICAweDk5LCAweDYwLCAweDM4LCAweDI3LCAweGE1LCAweDAwLCAweGYzLCAweGZmLAorICAweGZmLCAweDkxLCAweDk5LCAweDU0LCAweDhjLCAweDRkLCAweDlmLCAweGFiLAorICAweGRkLCAweDUxLCAweDU3LCAweDVjLCAweDkwLCAweDYwLCAweGIxLCAweGVmLAorICAweGNhLCAweDJiLCAweGMwLCAweGUyLCAweDJhLCAweDU4LCAweDk0LCAweGYxLAorICAweDRhLCAweDIyLCAweGM4LCAweDVkLCAweGRmLCAweDUwLCAweDQ5LCAweDQ2LAorICAweDY4LCAweGM2LCAweDUxLCAweGQxLCAweDdiLCAweDAzLCAweDAwLCAweDRkLAorICAweGE1LCAweDE0LCAweDFkLCAweDUxLCAweDA1LCAweDRmLCAweDhiLCAweDc2LAorICAweDg2LCAweDZiLCAweDAzLCAweDgxLCAweDNiLCAweGQzLCAweGI1LCAweDFhLAorICAweGE3LCAweGI2LCAweGNlLCAweDIwLCAweDljLCAweDVlLCAweDJjLCAweDZjLAorICAweDg2LCAweDc5LCAweGMzLCAweDY0LCAweDlkLCAweDNmLCAweGI4LCAweDZjLAorICAweDFjLCAweDQyLCAweGQ2LCAweDVhLCAweDc2LCAweDBhLCAweDJhLCAweDMyLAorICAweDNkLCAweDc3LCAweDc5LCAweGM0LCAweDE2LCAweDEyLCAweGQwLCAweGE3LAorICAweDQxLCAweDgwLCAweGFmLCAweDc2LCAweDIwLCAweGVjLCAweDA3LCAweDA1LAorICAweDFmLCAweDExLCAweDg1LCAweDFjLCAweGE4LCAweDAyLCAweDhkLCAweDdjLAorICAweDBlLCAweDIxLCAweDc1LCAweDRmLCAweDYwLCAweDNhLCAweGEyLCAweDI3LAorICAweDlkLCAweDA2LCAweDBjLCAweDhkLCAweDBhLCAweGQ5LCAweDIyLCAweGY1LAorICAweDRkLCAweDA3LCAweDUwLCAweDRjLCAweGVkLCAweGUyLCAweDMwLCAweGNjLAorICAweDA3LCAweGJiLCAweDRmLCAweDBjLCAweGQxLCAweDE0LCAweDgzLCAweDgzLAorICAweDNlLCAweDBkLCAweDY3LCAweDk0LCAweDYyLCAweDBlLCAweDE3LCAweGY1LAorICAweDAwLCAweGQxLCAweGYwLCAweDFjLCAweGZkLCAweDYyLCAweDA0LCAweDI0LAorICAweDE4LCAweDUxLCAweDUzLCAweGZjLCAweDI4LCAweDA3LCAweDBkLCAweDc3LAorICAweDAzLCAweDMxLCAweDVlLCAweDUxLCAweGM4LCAweDBlLCAweDBhLCAweGRhLAorICAweGQ1LCAweDBmLCAweDE2LCAweDU4LCAweDFkLCAweGMwLCAweDcxLCAweGM2LAorICAweDhiLCAweDIyLCAweGM0LCAweDY2LCAweGMyLCAweDNkLCAweDc3LCAweDZjLAorICAweGQyLCAweDQ3LCAweDY1LCAweDE1LCAweDBmLCAweDQxLCAweGMzLCAweDMxLAorICAweDNmLCAweGVjLCAweDM2LCAweDBiLCAweGM3LCAweDNiLCAweDU3LCAweDQ0LAorICAweDUyLCAweDZlLCAweDhhLCAweGE3LCAweDM3LCAweDk1LCAweDZhLCAweDA5LAorICAweDk1LCAweDM3LCAweGM0LCAweDNjLCAweDgxLCAweDk4LCAweDNhLCAweDA0LAorICAweDlmLCAweDhiLCAweDFhLCAweDE5LCAweDgzLCAweDgzLCAweDExLCAweDM1LAorICAweDAzLCAweDkwLCAweDUwLCAweDcyLCAweDEyLCAweDM5LCAweGIwLCAweGRmLAorICAweDQxLCAweGM0LCAweDcxLCAweDRhLCAweDEyLCAweDZkLCAweDNlLCAweDU4LAorICAweGI4LCAweGM5LCAweDA4LCAweDJjLCAweDIwLCAweDM4LCAweGY3LCAweDU4LAorICAweGQ3LCAweDQxLCAweGMxLCAweDNkLCAweDcwLCAweDMzLCAweDA1LCAweGQ0LAorICAweGE4LCAweDU4LCAweDFjLCAweDE4LCAweGM4LCAweDE0LCAweDc3LCAweGEyLAorICAweGE4LCAweGJmLCAweGNiLCAweDUxLCAweDgzLCAweDhlLCAweGM1LCAweDI5LAorICAweDVjLCAweDE3LCAweDllLCAweGEwLCAweDI1LCAweDQ0LCAweDI4LCAweDlhLAorICAweDJmLCAweGE4LCAweDQzLCAweDBhLCAweDdhLCAweGQ4LCAweDhmLCAweGI2LAorICAweDgyLCAweDY2LCAweDlmLCAweDVlLCAweDBjLCAweDBkLCAweDAzLCAweDk3LAorICAweDQyLCAweDhjLCAweGY0LCAweGYwLCAweGRhLCAweDIxLCAweDNlLCAweDQ3LAorICAweGMzLCAweDY0LCAweGNjLCAweDY2LCAweDBlLCAweDFhLCAweDUxLCAweDVkLAorICAweDVkLCAweDNiLCAweDhhLCAweDBhLCAweDBhLCAweDYyLCAweDNlLCAweDcyLAorICAweDNkLCAweGRmLCAweDgzLCAweDkwLCAweGEwLCAweDA1LCAweGY3LCAweGRlLAorICAweDQ1LCAweGI4LCAweDMzLCAweGUyLCAweGMwLCAweGIwLCAweDE5LCAweDkxLAorICAweDNjLCAweGVmLCAweDQzLCAweDc1LCAweGEyLCAweDMzLCAweDZiLCAweGYwLAorICAweDMzLCAweDdlLCAweDU2LCAweDI4LCAweGQzLCAweGFiLCAweGQ0LCAweDUyLAorICAweDkwLCAweGZlLCAweDIxLCAweDQwLCAweDUyLCAweGU4LCAweDllLCAweGU3LAorICAweDIyLCAweDAwLCAweGQ1LCAweDRkLCAweDA2LCAweDA5LCAweGU3LCAweDkwLAorICAweDE2LCAweDNjLCAweGUxLCAweDQyLCAweDEwLCAweGMwLCAweDY5LCAweDEwLAorICAweDcxLCAweGQxLCAweDNkLCAweDI3LCAweDc5LCAweDA4LCAweGRhLCAweDgxLAorICAweDlhLCAweDMwLCAweDcyLCAweDMwLCAweDRkLCAweDcyLCAweDJlLCAweDgzLAorICAweDljLCAweDA3LCAweDA2LCAweDQyLCAweGJkLCAweGNiLCAweGQyLCAweDJlLAorICAweDc0LCAweDUxLCAweGE3LCAweGQ0LCAweDUzLCAweDcwLCAweDYzLCAweGMwLAorICAweDcwLCAweDQ5LCAweGI5LCAweDA2LCAweDY2LCAweGQwLCAweDAyLCAweGM0LAorICAweDE3LCAweDliLCAweDg0LCAweDg4LCAweGMzLCAweDMwLCAweDcwLCAweDU1LAorICAweGI4LCAweDBlLCAweDVjLCAweDFjLCAweDMyLCAweDA5LCAweDkwLCAweGU1LAorICAweDVlLCAweDZkLCAweDAxLCAweGM0LCAweDdkLCAweDBhLCAweGZkLCAweDQ2LAorICAweDQ4LCAweDQ4LCAweGIzLCAweGI3LCAweDA2LCAweDRiLCAweDhjLCAweDEwLAorICAweDAzLCAweDlmLCAweGJhLCAweDJlLCAweDQ2LCAweDE5LCAweGJlLCAweGY1LAorICAweDFhLCAweGM3LCAweGI0LCAweGUwLCAweDY1LCAweDAyLCAweDdjLCAweDMwLAorICAweDBjLCAweDRkLCAweDhhLCAweDVmLCAweDBkLCAweDQ1LCAweGNhLCAweDI4LAorICAweDRiLCAweDJiLCAweDAzLCAweGEwLCAweDMwLCAweDJjLCAweDQyLCAweDVjLAorICAweGU2LCAweDllLCAweDI4LCAweDgyLCAweGUwLCAweDVjLCAweGJlLCAweGEzLAorICAweDk2LCAweDA2LCAweDYxLCAweDJjLCAweDQwLCAweDFkLCAweGQyLCAweDE3LAorICAweGM1LCAweGMxLCAweGMzLCAweDVlLCAweGNlLCAweDFhLCAweGUwLCAweGFmLAorICAweDRmLCAweDBjLCAweGJhLCAweDE5LCAweDA2LCAweDQwLCAweDNjLCAweDZiLAorICAweGU3LCAweDU3LCAweDU4LCAweGQ0LCAweDA3LCAweDFiLCAweDE0LCAweDI3LAorICAweGNlLCAweDkyLCAweGMyLCAweDk0LCAweDYwLCAweGJlLCAweDYwLCAweGUwLAorICAweDlmLCAweDQ0LCAweDg1LCAweGZhLCAweGY4LCAweGQ4LCAweDY0LCAweGEzLAorICAweDgwLCAweDM5LCAweDEwLCAweDU1LCAweGVkLCAweDE4LCAweDliLCAweDBiLAorICAweDMyLCAweDIwLCAweDU4LCAweDAyLCAweGU3LCAweDFiLCAweDIxLCAweGJkLAorICAweDlkLCAweGU5LCAweDUwLCAweDI2LCAweGU5LCAweGJhLCAweDFmLCAweGEyLAorICAweGVlLCAweDE0LCAweDJlLCAweDAzLCAweGM4LCAweGRkLCAweDEwLCAweDRkLAorICAweDY2LCAweDhjLCAweGU5LCAweDQ4LCAweDJlLCAweDUxLCAweGUwLCAweDI2LAorICAweGE5LCAweGM2LCAweDQzLCAweDljLCAweDkyLCAweDIwLCAweDA0LCAweGQyLAorICAweGQ3LCAweDQzLCAweDI3LCAweDAxLCAweDdkLCAweGE3LCAweDY1LCAweDdjLAorICAweDBlLCAweGIwLCAweDExLCAweGMyLCAweDViLCAweGJmLCAweDUxLCAweDU3LAorICAweGMwLCAweDQ2LCAweGIxLCAweDcxLCAweDk3LCAweDVkLCAweDYyLCAweDA2LAorICAweDY4LCAweGRmLCAweGJhLCAweDZjLCAweGFkLCAweDE4LCAweGM4LCAweGU0LAorICAweDI4LCAweGNjLCAweDFiLCAweDdiLCAweDg1LCAweDEwLCAweDMxLCAweDNmLAorICAweDQxLCAweGM4LCAweDg4LCAweGI0LCAweGRlLCAweDdmLCAweDdlLCAweDBjLAorICAweDA1LCAweDNlLCAweGI5LCAweGI1LCAweDEwLCAweDZiLCAweDJhLCAweDFiLAorICAweGU3LCAweDU0LCAweGU2LCAweDEyLCAweDhkLCAweGU4LCAweDM4LCAweDYyLAorICAweDdiLCAweGQyLCAweDQ1LCAweGU4LCAweDUxLCAweGY4LCAweDhkLCAweDcxLAorICAweDc4LCAweDM4LCAweDYyLCAweDEzLCAweGIyLCAweGZkLCAweDA5LCAweDYyLAorICAweDZjLCAweDBkLCAweDYwLCAweDMyLCAweDFmLCAweGI3LCAweGZhLCAweDUzLAorICAweGM4LCAweDUwLCAweGI3LCAweDA2LCAweDkyLCAweGEzLCAweDMyLCAweGFkLAorICAweDM4LCAweDBlLCAweDI4LCAweDNkLCAweDI3LCAweDlmLCAweDIwLCAweDYzLAorICAweGQ3LCAweGNiLCAweGQ0LCAweDcyLCAweGYwLCAweDkwLCAweDgzLCAweDVmLAorICAweDVkLCAweDE4LCAweDkyLCAweGEzLCAweDBkLCAweGQ3LCAweDNkLCAweGFhLAorICAweDkxLCAweDk1LCAweGU5LCAweDQ4LCAweGQxLCAweGY0LCAweDFmLCAweGMyLAorICAweDAwLCAweDNmLCAweDZjLCAweDQ0LCAweGJhLCAweDAwLCAweDcwLCAweDcyLAorICAweDdlLCAweDcwLCAweDU3LCAweDUzLCAweDY0LCAweDkyLCAweDBjLCAweGNkLAorICAweDkyLCAweDAyLCAweGViLCAweGFlLCAweDUwLCAweDJhLCAweGNhLCAweDBhLAorICAweDQ1LCAweGMwLCAweDNjLCAweDFjLCAweGVlLCAweDE4LCAweDAzLCAweDkwLAorICAweDg0LCAweDU0LCAweDM1LCAweGU4LCAweDQ5LCAweGE3LCAweDM1LCAweDEyLAorICAweDAwLCAweDFjLCAweDJlLCAweDA3LCAweDNiLCAweDQ5LCAweDAxLCAweGRkLAorICAweDE5LCAweDgzLCAweDkwLCAweDg5LCAweGE3LCAweDg1LCAweDA1LCAweDAxLAorICAweDFiLCAweDE3LCAweDE0LCAweDAzLCAweGI4LCAweDBiLCAweGU2LCAweGMyLAorICAweDllLCAweDk0LCAweDljLCAweGQzLCAweGEwLCAweDcwLCAweDY2LCAweDQzLAorICAweDNjLCAweDA3LCAweDA1LCAweDQ5LCAweDc0LCAweGQ1LCAweGUwLCAweGMwLAorICAweDA3LCAweGFlLCAweGVhLCAweDVmLCAweGE2LCAweGMxLCAweGMzLCAweDA1LAorICAweDg1LCAweGMyLCAweGI4LCAweGE0LCAweDkwLCAweDJiLCAweDg5LCAweGI4LAorICAweDBlLCAweDQyLCAweDEyLCAweDM0LCAweDQ2LCAweDgxLCAweGM0LCAweGEyLAorICAweDk2LCAweGI4LCAweDY0LCAweDZlLCAweDAyLCAweGU3LCAweGEzLCAweDQwLAorICAweDMyLCAweDA3LCAweDQwLCAweDVjLCAweDNkLCAweGVkLCAweDVmLCAweGExLAorICAweDU1LCAweDRiLCAweGY5LCAweDYwLCAweDcwLCAweGEyLCAweDExLCAweGY0LAorICAweDMyLCAweDczLCAweGU1LCAweDI5LCAweDBjLCAweDAxLCAweGM1LCAweDAzLAorICAweDViLCAweDU3LCAweDIwLCAweDg5LCAweGQ4LCAweDM5LCAweDAwLCAweDM5LAorICAweDcxLCAweDgwLCAweGQxLCAweDhjLCAweDQ5LCAweDNhLCAweDA5LCAweGYwLAorICAweGEyLCAweDIzLCAweDA3LCAweDAyLCAweGZhLCAweDU0LCAweDc4LCAweDk0LAorICAweDMxLCAweDEzLCAweGFjLCAweDJhLCAweDE1LCAweGQ1LCAweGUxLCAweDE3LAorICAweDUxLCAweDAzLCAweGE1LCAweDNiLCAweGExLCAweDJhLCAweDM3LCAweGVkLAorICAweGQyLCAweGEyLCAweDUyLCAweDQyLCAweDhhLCAweGIxLCAweGEyLCAweDgzLAorICAweGIyLCAweGE0LCAweGEyLCAweDRhLCAweDUwLCAweDhmLCAweGExLCAweDgwLAorICAweDU1LCAweDI5LCAweGQ4LCAweDllLCAweDUwLCAweDg3LCAweGE3LCAweDMxLAorICAweDUwLCAweDNiLCAweDkyLCAweDBjLCAweDBmLCAweGYxLCAweDk5LCAweDQ4LAorICAweDM4LCAweDA3LCAweDIyLCAweDI0LCAweDNmLCAweGMxLCAweGNiLCAweDgzLAorICAweDgxLCAweDYwLCAweDM1LCAweGMxLCAweDc1LCAweDEzLCAweGYxLCAweDc0LAorICAweDQzLCAweDEyLCAweDUxLCAweDk4LCAweDQ3LCAweDg0LCAweDUyLCAweDgxLAorICAweDgyLCAweGMwLCAweGUxLCAweGFjLCAweDc0LCAweDE2LCAweDA0LCAweGExLAorICAweDgxLCAweGU2LCAweDA0LCAweDgzLCAweDIwLCAweDg5LCAweGQ2LCAweDQyLAorICAweDdmLCAweDRkLCAweGQxLCAweDgxLCAweDQ4LCAweGExLCAweDQ2LCAweDNmLAorICAweDhjLCAweGM1LCAweDMzLCAweDliLCAweGU0LCAweDFiLCAweDlkLCAweDVjLAorICAweDYzLCAweDkwLCAweDFjLCAweDgzLCAweGFlLCAweGM4LCAweDUxLCAweDA2LAorICAweDUwLCAweDMyLCAweGEwLCAweGJmLCAweDJkLCAweGMwLCAweDcxLCAweDIwLAorICAweDM4LCAweDVjLCAweDRhLCAweGVmLCAweGE3LCAweGI0LCAweGQwLCAweGI4LAorICAweDRiLCAweDQ1LCAweGMyLCAweGYwLCAweDRlLCAweDY1LCAweDIxLCAweDNmLAorICAweDM0LCAweDhjLCAweDFjLCAweDRhLCAweDBlLCAweGViLCAweGU0LCAweGEwLAorICAweDFkLCAweDQ2LCAweDAxLCAweDVjLCAweGU4LCAweDlmLCAweDVmLCAweDE0LAorICAweGEyLCAweDM3LCAweDQ5LCAweDQ0LCAweGNmLCAweDljLCAweDE4LCAweDkyLAorICAweGEzLCAweDA3LCAweDA5LCAweGU2LCAweDFiLCAweDA5LCAweDJiLCAweDgzLAorICAweDEwLCAweDRjLCAweGUyLCAweDM1LCAweDlkLCAweDEzLCAweDkyLCAweDgwLAorICAweDcwLCAweDY2LCAweDM1LCAweDZiLCAweDc3LCAweDg0LCAweDZjLCAweDY0LAorICAweGI5LCAweGE1LCAweDk2LCAweDEzLCAweGVlLCAweDBjLCAweDQxLCAweGM4LAorICAweGZhLCAweDEzLCAweGI1LCAweDlkLCAweDI1LCAweDBhLCAweDc1LCAweGRlLAorICAweDUwLCAweDcwLCAweDJmLCAweGE3LCAweDU2LCAweDM3LCAweDYxLCAweGIyLAorICAweDQyLCAweDQwLCAweGFlLCAweDY4LCAweGNjLCAweGE1LCAweDA3LCAweDQyLAorICAweDRkLCAweDBkLCAweGFkLCAweGNhLCAweDBiLCAweGQ1LCAweGEzLCAweDIxLAorICAweDM2LCAweDllLCAweDhhLCAweDIyLCAweGZkLCAweDA1LCAweDg4LCAweDM4LAorICAweDgyLCAweDRhLCAweDI4LCAweGMxLCAweDZlLCAweDkyLCAweGFkLCAweDQzLAorICAweDE3LCAweDRhLCAweDM0LCAweDYwLCAweGZlLCAweDEwLCAweDAxLCAweGUzLAorICAweDc1LCAweDZlLCAweDAzLCAweDgyLCAweDRiLCAweGRjLCAweGEyLCAweGJkLAorICAweDc3LCAweDI4LCAweDNiLCAweGFiLCAweDc3LCAweDg1LCAweDIxLCAweDNjLAorICAweGMxLCAweDliLCAweDljLCAweGI2LCAweDc2LCAweGRiLCAweDY3LCAweDc4LAorICAweGI2LCAweDVlLCAweDIxLCAweDkyLCAweGRlLCAweDExLCAweDRhLCAweDIwLAorICAweDc0LCAweDA4LCAweGE0LCAweGExLCAweGI4LCAweGQzLCAweDVlLCAweDY4LAorICAweGQ2LCAweDU3LCAweDg1LCAweDAxLCAweDg5LCAweDBjLCAweDVlLCAweGEwLAorICAweDA3LCAweDFhLCAweDA3LCAweDA5LCAweGY3LCAweDExLCAweDAyLCAweGViLAorICAweDA3LCAweDFlLCAweGQzLCAweDQ2LCAweGFkLCAweDExLCAweDk0LCAweDc0LAorICAweDFkLCAweGQ3LCAweDI5LCAweGMzLCAweDYyLCAweGY3LCAweDI0LCAweDFmLAorICAweDdjLCAweDE4LCAweDM4LCAweGY4LCAweDMwLCAweGMyLCAweDg2LCAweDEyLAorICAweDAzLCAweDlmLCAweGVhLCAweDY2LCAweGMxLCAweDgzLCAweDg2LCAweGM2LAorICAweDVlLCAweGEwLCAweDM5LCAweGNlLCAweDUxLCAweDQ0LCAweGRhLCAweGY4LAorICAweDVmLCAweDAxLCAweGMzLCAweDRmLCAweDYxLCAweGI1LCAweGU4LCAweDYyLAorICAweDhjLCAweGEwLCAweDE3LCAweDU3LCAweDc1LCAweDBmLCAweDM2LCAweGYxLAorICAweDY1LCAweGM4LCAweDFjLCAweDAyLCAweDUzLCAweGFiLCAweGQwLCAweDU4LAorICAweGJhLCAweGY2LCAweDQ0LCAweDAwLCAweDlkLCAweGFmLCAweDQ4LCAweDIyLAorICAweDM4LCAweDg1LCAweDA5LCAweDQ4LCAweDQ1LCAweGU1LCAweDI4LCAweDFhLAorICAweGZiLCAweDIwLCAweDZmLCAweDM4LCAweDMyLCAweDE0LCAweDU0LCAweGI0LAorICAweDYzLCAweGQwLCAweDcwLCAweGQ2LCAweDgyLCAweGVmLCAweDVkLCAweGQxLAorICAweDlmLCAweDU2LCAweDNkLCAweGM2LCAweDFjLCAweGUyLCAweDExLCAweDViLAorICAweDQ2LCAweDZhLCAweGZkLCAweDZlLCAweDA0LCAweGFkLCAweDYyLCAweDhjLAorICAweDA3LCAweDAwLCAweGUyLCAweDMyLCAweGY4LCAweDFjLCAweGYwLCAweDUxLAorICAweDU3LCAweGMwLCAweGUwLCAweDFjLCAweDJhLCAweGYxLCAweDA3LCAweDA5LAorICAweGIwLCAweGJlLCAweDAzLCAweGI4LCAweDA5LCAweGZkLCAweDYyLCAweDhiLAorICAweDQ1LCAweGUxLCAweDVkLCAweDA3LCAweDJjLCAweGIwLCAweDRmLCAweDE3LAorICAweGY0LCAweDk1LCAweDAwLCAweDI2LCAweGM5LCAweDRhLCAweDE4LCAweDEzLAorICAweGUyLCAweGI0LCAweDZiLCAweGQwLCAweGIxLCAweGQ0LCAweDExLCAweDY5LAorICAweDY5LCAweGMyLCAweGM4LCAweDc1LCAweGYyLCAweGMwLCAweGU0LCAweDY0LAorICAweDFkLCAweDcxLCAweDgwLCAweGI4LCAweDRjLCAweGM2LCAweDM2LCAweDNiLAorICAweDY0LCAweDkwLCAweDM4LCAweGIzLCAweDU2LCAweDE4LCAweDY1LCAweDA4LAorICAweDhjLCAweDQ2LCAweGI5LCAweGZhLCAweGJmLCAweDBjLCAweGFhLCAweGMxLAorICAweDI2LCAweDkwLCAweDFlLCAweDhmLCAweGZmLCAweGYyLCAweDM2LCAweGJhLAorICAweDM0LCAweDU2LCAweDU0LCAweDJiLCAweDAzLCAweDkwLCAweDllLCAweDlhLAorICAweDMxLCAweDQ0LCAweDE4LCAweDExLCAweGZiLCAweGM4LCAweDEzLCAweDZiLAorICAweGU5LCAweDYxLCAweDI0LCAweGM0LCAweDY4LCAweDg1LCAweDMzLCAweDI1LAorICAweDI5LCAweGExLCAweDE1LCAweDVkLCAweGE0LCAweGIyLCAweGRhLCAweDE1LAorICAweDdlLCAweDYyLCAweDM1LCAweDk2LCAweDIwLCAweGYzLCAweGE0LCAweDUxLAorICAweDc5LCAweGIwLCAweGE1LCAweDFmLCAweDIwLCAweGM3LCAweDgwLCAweDliLAorICAweGVkLCAweDI0LCAweGUyLCAweDExLCAweGFiLCAweGU4LCAweGNiLCAweGExLAorICAweDU0LCAweGNjLCAweDQ0LCAweDhiLCAweDY2LCAweDc2LCAweDNhLCAweDYyLAorICAweDIwLCAweDRmLCAweGQ3LCAweGUyLCAweDI5LCAweGJlLCAweDkyLCAweDkzLAorICAweGI1LCAweDkwLCAweDAzLCAweGJhLCAweDI3LCAweDdkLCAweGIwLCAweDM5LAorICAweDJiLCAweGVhLCAweDMxLCAweDlmLCAweDAyLCAweDdmLCAweDc4LCAweDUwLAorICAweDgwLCAweDMwLCAweDNmLCAweDY4LCAweDM4LCAweDkwLCAweDVlLCAweDczLAorICAweDVmLCAweDRlLCAweGM1LCAweDgzLCAweDgwLCAweDU4LCAweDUzLCAweDY0LAorICAweDBlLCAweGY1LCAweDc1LCAweGVhLCAweGZkLCAweDI4LCAweDAxLCAweGMyLAorICAweDdkLCAweDI1LCAweDI0LCAweDE4LCAweDIxLCAweDI2LCAweDYzLCAweDJlLAorICAweDE0LCAweDAzLCAweDg5LCAweGIwLCAweDRiLCAweGQ3LCAweGNiLCAweDQwLAorICAweDFjLCAweDBlLCAweDI3LCAweGYxLCAweDBhLCAweDI1LCAweDA4LCAweGY4LAorICAweDBiLCAweDAwLCAweDk2LCAweDU3LCAweDI0LCAweGI0LCAweDFjLCAweGJiLAorICAweGYyLCAweGM4LCAweDkwLCAweDEzLCAweGRiLCAweGM1LCAweGY4LCAweDBiLAorICAweDhkLCAweDc3LCAweDY4LCAweGM1LCAweDEyLCAweDE1LCAweGQ2LCAweDU4LAorICAweDFjLCAweDQxLCAweDBhLCAweDI0LCAweDE3LCAweDc0LCAweDk5LCAweDg2LAorICAweDZlLCAweDdiLCAweDU2LCAweDViLCAweDhhLCAweDFlLCAweGIzLCAweGE4LAorICAweGNmLCAweDZiLCAweGI1LCAweDM0LCAweDY2LCAweDE4LCAweDBjLCAweDkwLAorICAweDBjLCAweDBmLCAweDZlLCAweDEyLCAweDJlLCAweDUwLCAweDMwLCAweDE1LAorICAweGI4LCAweGE1LCAweDYxLCAweGJkLCAweGU3LCAweDIxLCAweDBiLCAweDUxLAorICAweDk0LCAweGQ0LCAweGU3LCAweDAzLCAweDAwLCAweDc1LCAweDBhLCAweGZiLAorICAweGNlLCAweDljLCAweGFiLCAweGIyLCAweDk0LCAweDQ4LCAweDE3LCAweDBjLAorICAweDAyLCAweDY3LCAweGMxLCAweDkxLCAweDQ1LCAweGE2LCAweGMxLCAweDNlLAorICAweDQ5LCAweDYyLCAweDM0LCAweDQxLCAweDMzLCAweGI0LCAweDY3LCAweGQxLAorICAweDVjLCAweDlkLCAweGUyLCAweGU3LCAweDYyLCAweGVlLCAweDU1LCAweDA4LAorICAweDgxLCAweGRjLCAweDQyLCAweDBlLCAweDIxLCAweDg1LCAweGU0LCAweGVmLAorICAweDAwLCAweDc4LCAweDM5LCAweDE4LCAweDU1LCAweDJiLCAweDkyLCAweGRlLAorICAweGY0LCAweGQxLCAweDQ4LCAweDJlLCAweDdjLCAweDkwLCAweDkxLCAweDZlLAorICAweDgzLCAweDg0LCAweGVlLCAweDRiLCAweDE2LCAweDE0LCAweDU1LCAweGY1LAorICAweDQ1LCAweDEwLCAweDAzLCAweDljLCAweGU3LCAweDBkLCAweGY0LCAweDkwLAorICAweDY0LCAweDBiLCAweDE3LCAweGNkLCAweDg0LCAweDk2LCAweDRhLCAweGJjLAorICAweDA5LCAweDM3LCAweDRhLCAweDNhLCAweDBmLCAweDNkLCAweDAwLCAweDE5LAorICAweDM0LCAweDc0LCAweDVmLCAweDU5LCAweDQxLCAweDE4LCAweDE3LCAweDMzLAorICAweDk1LCAweDc1LCAweGU3LCAweDE0LCAweDgwLCAweGVlLCAweDg0LCAweGNjLAorICAweGFlLCAweDEyLCAweDgwLCAweGYyLCAweDBkLCAweGE0LCAweDlkLCAweGM5LAorICAweDAwLCAweDc5LCAweDAzLCAweDNiLCAweDVmLCAweDViLCAweGM0LCAweDNkLAorICAweDgyLCAweGYwLCAweDcxLCAweGY5LCAweGIzLCAweDg4LCAweGZiLCAweGQwLAorICAweDcyLCAweDA5LCAweGQxLCAweGE0LCAweGUyLCAweGM4LCAweDMzLCAweDdhLAorICAweDhkLCAweDAwLCAweDM5LCAweDA4LCAweDJlLCAweGI1LCAweGMwLCAweGQ0LAorICAweGQ3LCAweDY4LCAweDM4LCAweDE3LCAweDVhLCAweDMzLCAweGZhLCAweGYzLAorICAweDM4LCAweDgzLCAweDhiLCAweDEyLCAweDIxLCAweDM5LCAweDJiLCAweDk0LAorICAweGY1LCAweDE4LCAweDM4LCAweDMzLCAweDIxLCAweDliLCAweDQxLCAweGYxLAorICAweGUwLCAweDA3LCAweGQyLCAweDUyLCAweDU5LCAweDExLCAweDkyLCAweDkyLAorICAweDJmLCAweDQxLCAweGM0LCAweDNkLCAweDVlLCAweDFlLCAweGQzLCAweDk1LAorICAweGMwLCAweDcxLCAweDBjLCAweDdhLCAweGM1LCAweDM4LCAweDhjLCAweDZlLAorICAweGVkLCAweDMxLCAweGIwLCAweGUyLCAweDgyLCAweDM1LCAweDA5LCAweDI3LAorICAweDNkLCAweGFhLCAweDcyLCAweGRjLCAweDQzLCAweDA0LCAweDQ3LCAweGM1LAorICAweGE5LCAweGIwLCAweDliLCAweDdmCit9OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL3NoZWxsL3NoZWxsLmMgYi9jb250cmliL2FwcHMvc2hlbGwvc2hlbGwuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGY2NjhkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL3NoZWxsL3NoZWxsLmMKQEAgLTAsMCArMSwxMjc3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyAqCisgKi8KKworI2luY2x1ZGUgInNoZWxsLmgiCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorCisjaWYgTFdJUF9ORVRDT05OICYmIExXSVBfVENQCisKKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorCisjaW5jbHVkZSAibHdpcC9tZW0uaCIKKyNpbmNsdWRlICJsd2lwL2RlYnVnLmgiCisjaW5jbHVkZSAibHdpcC9kZWYuaCIKKyNpbmNsdWRlICJsd2lwL2FwaS5oIgorI2luY2x1ZGUgImx3aXAvc3RhdHMuaCIKKworI2lmIExXSVBfU09DS0VUCisjaW5jbHVkZSAibHdpcC9lcnJuby5oIgorI2luY2x1ZGUgImx3aXAvaWZfYXBpLmgiCisjZW5kaWYKKworI2lmZGVmIFdJTjMyCisjZGVmaW5lIE5FV0xJTkUgIlxyXG4iCisjZWxzZSAvKiBXSU4zMiAqLworI2RlZmluZSBORVdMSU5FICJcbiIKKyNlbmRpZiAvKiBXSU4zMiAqLworCisvKiogRGVmaW5lIHRoaXMgdG8gMSBpZiB5b3Ugd2FudCB0byBlY2hvIGJhY2sgYWxsIHJlY2VpdmVkIGNoYXJhY3RlcnMKKyAqIChlLmcuIHNvIHRoZXkgYXJlIGRpc3BsYXllZCBvbiBhIHJlbW90ZSB0ZWxuZXQpCisgKi8KKyNpZm5kZWYgU0hFTExfRUNITworI2RlZmluZSBTSEVMTF9FQ0hPIDAKKyNlbmRpZgorCisjZGVmaW5lIEJVRlNJWkUgICAgICAgICAgICAgMTAyNAorc3RhdGljIHVuc2lnbmVkIGNoYXIgYnVmZmVyW0JVRlNJWkVdOworCitzdHJ1Y3QgY29tbWFuZCB7CisgIHN0cnVjdCBuZXRjb25uICpjb25uOworICBzOF90ICgqIGV4ZWMpKHN0cnVjdCBjb21tYW5kICopOworICB1OF90IG5hcmdzOworICBjaGFyICphcmdzWzEwXTsKK307CisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorCisjZGVmaW5lIEVTVUNDRVNTIDAKKyNkZWZpbmUgRVNZTlRBWCAtMQorI2RlZmluZSBFVE9PRkVXIC0yCisjZGVmaW5lIEVUT09NQU5ZIC0zCisjZGVmaW5lIEVDTE9TRUQgLTQKKworI2RlZmluZSBOQ09OTlMgMTAKK3N0YXRpYyBzdHJ1Y3QgbmV0Y29ubiAqY29ubnNbTkNPTk5TXTsKKworLyogaGVscF9tc2cgaXMgc3BsaXQgaW50byAzIHN0cmluZ3MgdG8gcHJldmVudCBleGNlZWRpbmcgdGhlIEM4OSBtYXhpbXVtIGxlbmd0aCBvZiA1MDkgcGVyIHN0cmluZyAqLworc3RhdGljIGNoYXIgaGVscF9tc2cxW10gPSAiQXZhaWxhYmxlIGNvbW1hbmRzOiJORVdMSU5FIlwKK29wZW4gW0lQIGFkZHJlc3NdIFtUQ1AgcG9ydF06IG9wZW5zIGEgVENQIGNvbm5lY3Rpb24gdG8gdGhlIHNwZWNpZmllZCBhZGRyZXNzLiJORVdMSU5FIlwKK2xzdG4gW1RDUCBwb3J0XTogc2V0cyB1cCBhIHNlcnZlciBvbiB0aGUgc3BlY2lmaWVkIHBvcnQuIk5FV0xJTkUiXAorYWNwdCBbY29ubmVjdGlvbiAjXTogd2FpdHMgZm9yIGFuIGluY29taW5nIGNvbm5lY3Rpb24gcmVxdWVzdC4iTkVXTElORSJcCitzZW5kIFtjb25uZWN0aW9uICNdIFttZXNzYWdlXTogc2VuZHMgYSBtZXNzYWdlIG9uIGEgVENQIGNvbm5lY3Rpb24uIk5FV0xJTkUiXAordWRwYyBbbG9jYWwgVURQIHBvcnRdIFtJUCBhZGRyZXNzXSBbcmVtb3RlIHBvcnRdOiBvcGVucyBhIFVEUCBcImNvbm5lY3Rpb25cIi4iTkVXTElORSJcCit1ZHBsIFtsb2NhbCBVRFAgcG9ydF0gW0lQIGFkZHJlc3NdIFtyZW1vdGUgcG9ydF06IG9wZW5zIGEgVURQLUxpdGUgXCJjb25uZWN0aW9uXCIuIk5FV0xJTkUiIjsKK3N0YXRpYyBjaGFyIGhlbHBfbXNnMltdID0gInVkcG4gW2xvY2FsIFVEUCBwb3J0XSBbSVAgYWRkcmVzc10gW3JlbW90ZSBwb3J0XTogb3BlbnMgYSBVRFAgXCJjb25uZWN0aW9uXCIgd2l0aG91dCBjaGVja3N1bXMuIk5FV0xJTkUiXAordWRwYiBbbG9jYWwgcG9ydF0gW3JlbW90ZSBwb3J0XTogb3BlbnMgYSBVRFAgYnJvYWRjYXN0IFwiY29ubmVjdGlvblwiLiJORVdMSU5FIlwKK3VzbmQgW2Nvbm5lY3Rpb24gI10gW21lc3NhZ2VdOiBzZW5kcyBhIG1lc3NhZ2Ugb24gYSBVRFAgY29ubmVjdGlvbi4iTkVXTElORSJcCityZWN2IFtjb25uZWN0aW9uICNdOiByZWNlaXZlcyBkYXRhIG9uIGEgVENQIG9yIFVEUCBjb25uZWN0aW9uLiJORVdMSU5FIlwKK2Nsb3MgW2Nvbm5lY3Rpb24gI106IGNsb3NlcyBhIFRDUCBvciBVRFAgY29ubmVjdGlvbi4iTkVXTElORSJcCitzdGF0OiBwcmludHMgb3V0IGx3SVAgc3RhdGlzdGljcy4iTkVXTElORSJcCitpZHh0b25hbWUgW2luZGV4XTogb3V0cHV0cyBpbnRlcmZhY2UgbmFtZSBmcm9tIGluZGV4LiJORVdMSU5FIlwKK25hbWV0b2lkeCBbbmFtZV06IG91dHB1dHMgaW50ZXJmYWNlIGluZGV4IGZyb20gbmFtZS4iTkVXTElORTsKK3N0YXRpYyBjaGFyIGhlbHBfbXNnM1tdID0KKyJnZXRob3N0bm0gW25hbWVdOiBvdXRwdXRzIElQIGFkZHJlc3Mgb2YgaG9zdC4iTkVXTElORSJcCitxdWl0OiBxdWl0cyJORVdMSU5FIiI7CisKKyNpZiBMV0lQX1NUQVRTCitzdGF0aWMgY2hhciBwYWRkaW5nXzEwc3BhY2VzW10gPSAiICAgICAgICAgICI7CisKKyNkZWZpbmUgUFJPVE9DT0xfU1RBVFMgKExJTktfU1RBVFMgJiYgRVRIQVJQX1NUQVRTICYmIElQRlJBR19TVEFUUyAmJiBJUF9TVEFUUyAmJiBJQ01QX1NUQVRTICYmIFVEUF9TVEFUUyAmJiBUQ1BfU1RBVFMpCisKKyNpZiBQUk9UT0NPTF9TVEFUUworc3RhdGljIGNvbnN0IGNoYXIqIHNoZWxsX3N0YXRfcHJvdG9fbmFtZXNbXSA9IHsKKyNpZiBMSU5LX1NUQVRTCisgICJMSU5LICAgICAgIiwKKyNlbmRpZgorI2lmIEVUSEFSUF9TVEFUUworICAiRVRIQVJQICAgICIsCisjZW5kaWYKKyNpZiBJUEZSQUdfU1RBVFMKKyAgIklQX0ZSQUcgICAiLAorI2VuZGlmCisjaWYgSVBfU1RBVFMKKyAgIklQICAgICAgICAiLAorI2VuZGlmCisjaWYgSUNNUF9TVEFUUworICAiSUNNUCAgICAgICIsCisjZW5kaWYKKyNpZiBVRFBfU1RBVFMKKyAgIlVEUCAgICAgICAiLAorI2VuZGlmCisjaWYgVENQX1NUQVRTCisgICJUQ1AgICAgICAgIiwKKyNlbmRpZgorICAibGFzdCIKK307CisKK3N0YXRpYyBzdHJ1Y3Qgc3RhdHNfcHJvdG8qIHNoZWxsX3N0YXRfcHJvdG9fc3RhdHNbXSA9IHsKKyNpZiBMSU5LX1NUQVRTCisgICZsd2lwX3N0YXRzLmxpbmssCisjZW5kaWYKKyNpZiBFVEhBUlBfU1RBVFMKKyAgJmx3aXBfc3RhdHMuZXRoYXJwLAorI2VuZGlmCisjaWYgSVBGUkFHX1NUQVRTCisgICZsd2lwX3N0YXRzLmlwX2ZyYWcsCisjZW5kaWYKKyNpZiBJUF9TVEFUUworICAmbHdpcF9zdGF0cy5pcCwKKyNlbmRpZgorI2lmIElDTVBfU1RBVFMKKyAgJmx3aXBfc3RhdHMuaWNtcCwKKyNlbmRpZgorI2lmIFVEUF9TVEFUUworICAmbHdpcF9zdGF0cy51ZHAsCisjZW5kaWYKKyNpZiBUQ1BfU1RBVFMKKyAgJmx3aXBfc3RhdHMudGNwLAorI2VuZGlmCit9Oworc3RhdGljIGNvbnN0IHNpemVfdCBudW1fcHJvdG9zdGF0cyA9IHNpemVvZihzaGVsbF9zdGF0X3Byb3RvX3N0YXRzKS9zaXplb2Yoc3RydWN0IHN0YXRzX3Byb3RvKik7CisKK3N0YXRpYyBjb25zdCBjaGFyICpzdGF0X21zZ3NfcHJvdG9bXSA9IHsKKyAgIiAqIHRyYW5zbWl0dGVkICIsCisgICIgICAgICAgICAgICogcmVjZWl2ZWQgIiwKKyAgIiAgICAgICAgICAgICBmb3J3YXJkZWQgIiwKKyAgIiAgICAgICAgICAgKiBkcm9wcGVkICIsCisgICIgICAgICAgICAgICogY2hlY2tzdW0gZXJyb3JzICIsCisgICIgICAgICAgICAgICogbGVuZ3RoIGVycm9ycyAiLAorICAiICAgICAgICAgICAqIG1lbW9yeSBlcnJvcnMgIiwKKyAgIiAgICAgICAgICAgICByb3V0aW5nIGVycm9ycyAiLAorICAiICAgICAgICAgICAgIHByb3RvY29sIGVycm9ycyAiLAorICAiICAgICAgICAgICAgIG9wdGlvbiBlcnJvcnMgIiwKKyAgIiAgICAgICAgICAgKiBtaXNjIGVycm9ycyAiLAorICAiICAgICAgICAgICAgIGNhY2hlIGhpdHMgIgorfTsKKyNlbmRpZiAvKiBQUk9UT0NPTF9TVEFUUyAqLworI2VuZGlmIC8qIExXSVBfU1RBVFMgKi8KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgdm9pZAorc2VuZHN0cihjb25zdCBjaGFyICpzdHIsIHN0cnVjdCBuZXRjb25uICpjb25uKQoreworICBuZXRjb25uX3dyaXRlKGNvbm4sIChjb25zdCB2b2lkICopc3RyLCBzdHJsZW4oc3RyKSwgTkVUQ09OTl9OT0NPUFkpOworfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgczhfdAorY29tX29wZW4oc3RydWN0IGNvbW1hbmQgKmNvbSkKK3sKKyAgaXBfYWRkcl90IGlwYWRkcjsKKyAgdTE2X3QgcG9ydDsKKyAgaW50IGk7CisgIGVycl90IGVycjsKKyAgbG9uZyB0bXA7CisKKyAgaWYgKGlwYWRkcl9hdG9uKGNvbS0+YXJnc1swXSwgJmlwYWRkcikgPT0gLTEpIHsKKyAgICBzZW5kc3RyKHN0cmVycm9yKGVycm5vKSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNZTlRBWDsKKyAgfQorICB0bXAgPSBzdHJ0b2woY29tLT5hcmdzWzFdLCBOVUxMLCAxMCk7CisgIGlmKCh0bXAgPCAwKSB8fCAodG1wID4gMHhmZmZmKSkgeworICAgIHNlbmRzdHIoIkludmFsaWQgcG9ydCBudW1iZXIuIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisgIHBvcnQgPSAodTE2X3QpdG1wOworCisgIC8qIEZpbmQgdGhlIGZpcnN0IHVudXNlZCBjb25uZWN0aW9uIGluIGNvbm5zLiAqLworICBmb3IoaSA9IDA7IGkgPCBOQ09OTlMgJiYgY29ubnNbaV0gIT0gTlVMTDsgaSsrKTsKKworICBpZiAoaSA9PSBOQ09OTlMpIHsKKyAgICBzZW5kc3RyKCJObyBtb3JlIGNvbm5lY3Rpb25zIGF2YWlsYWJsZSwgc29ycnkuIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisKKyAgc2VuZHN0cigiT3BlbmluZyBjb25uZWN0aW9uIHRvICIsIGNvbS0+Y29ubik7CisgIG5ldGNvbm5fd3JpdGUoY29tLT5jb25uLCBjb20tPmFyZ3NbMF0sIHN0cmxlbihjb20tPmFyZ3NbMF0pLCBORVRDT05OX0NPUFkpOworICBzZW5kc3RyKCI6IiwgY29tLT5jb25uKTsKKyAgbmV0Y29ubl93cml0ZShjb20tPmNvbm4sIGNvbS0+YXJnc1sxXSwgc3RybGVuKGNvbS0+YXJnc1sxXSksIE5FVENPTk5fQ09QWSk7CisgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKworICBjb25uc1tpXSA9IG5ldGNvbm5fbmV3KE5FVENPTk5fVENQKTsKKyAgaWYgKGNvbm5zW2ldID09IE5VTEwpIHsKKyAgICBzZW5kc3RyKCJDb3VsZCBub3QgY3JlYXRlIGNvbm5lY3Rpb24gaWRlbnRpZmllciAob3V0IG9mIG1lbW9yeSkuIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisgIGVyciA9IG5ldGNvbm5fY29ubmVjdChjb25uc1tpXSwgJmlwYWRkciwgcG9ydCk7CisgIGlmIChlcnIgIT0gRVJSX09LKSB7CisgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciAlcyJORVdMSU5FLCBsd2lwX3N0cmVycihlcnIpKTsKKyAgICBzZW5kc3RyKCJDb3VsZCBub3QgY29ubmVjdCB0byByZW1vdGUgaG9zdDogIiwgY29tLT5jb25uKTsKKyNpZmRlZiBMV0lQX0RFQlVHCisgICAgc2VuZHN0cihsd2lwX3N0cmVycihlcnIpLCBjb20tPmNvbm4pOworI2Vsc2UKKyAgICBzZW5kc3RyKCIoZGVidWdnaW5nIG11c3QgYmUgdHVybmVkIG9uIGZvciBlcnJvciBtZXNzYWdlIHRvIGFwcGVhcikiLCBjb20tPmNvbm4pOworI2VuZGlmIC8qIExXSVBfREVCVUcgKi8KKyAgICBzZW5kc3RyKE5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgbmV0Y29ubl9kZWxldGUoY29ubnNbaV0pOworICAgIGNvbm5zW2ldID0gTlVMTDsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBzZW5kc3RyKCJPcGVuZWQgY29ubmVjdGlvbiwgY29ubmVjdGlvbiBpZGVudGlmaWVyIGlzICIsIGNvbS0+Y29ubik7CisgIHNucHJpbnRmKChjaGFyICopYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIiVkIk5FV0xJTkUsIGkpOworICBuZXRjb25uX3dyaXRlKGNvbS0+Y29ubiwgYnVmZmVyLCBzdHJsZW4oKGNvbnN0IGNoYXIgKilidWZmZXIpLCBORVRDT05OX0NPUFkpOworCisgIHJldHVybiBFU1VDQ0VTUzsKK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIHM4X3QKK2NvbV9sc3RuKHN0cnVjdCBjb21tYW5kICpjb20pCit7CisgIHUxNl90IHBvcnQ7CisgIGludCBpOworICBlcnJfdCBlcnI7CisgIGxvbmcgdG1wOworCisgIHRtcCA9IHN0cnRvbChjb20tPmFyZ3NbMF0sIE5VTEwsIDEwKTsKKyAgaWYoKHRtcCA8IDApIHx8ICh0bXAgPiAweGZmZmYpKSB7CisgICAgc2VuZHN0cigiSW52YWxpZCBwb3J0IG51bWJlci4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKyAgcG9ydCA9ICh1MTZfdCl0bXA7CisKKyAgLyogRmluZCB0aGUgZmlyc3QgdW51c2VkIGNvbm5lY3Rpb24gaW4gY29ubnMuICovCisgIGZvcihpID0gMDsgaSA8IE5DT05OUyAmJiBjb25uc1tpXSAhPSBOVUxMOyBpKyspOworCisgIGlmIChpID09IE5DT05OUykgeworICAgIHNlbmRzdHIoIk5vIG1vcmUgY29ubmVjdGlvbnMgYXZhaWxhYmxlLCBzb3JyeS4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBzZW5kc3RyKCJPcGVuaW5nIGEgbGlzdGVuaW5nIGNvbm5lY3Rpb24gb24gcG9ydCAiLCBjb20tPmNvbm4pOworICBuZXRjb25uX3dyaXRlKGNvbS0+Y29ubiwgY29tLT5hcmdzWzBdLCBzdHJsZW4oY29tLT5hcmdzWzBdKSwgTkVUQ09OTl9DT1BZKTsKKyAgc2VuZHN0cihORVdMSU5FLCBjb20tPmNvbm4pOworCisgIGNvbm5zW2ldID0gbmV0Y29ubl9uZXcoTkVUQ09OTl9UQ1ApOworICBpZiAoY29ubnNbaV0gPT0gTlVMTCkgeworICAgIHNlbmRzdHIoIkNvdWxkIG5vdCBjcmVhdGUgY29ubmVjdGlvbiBpZGVudGlmaWVyIChvdXQgb2YgbWVtb3J5KS4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBlcnIgPSBuZXRjb25uX2JpbmQoY29ubnNbaV0sIElQX0FERFJfQU5ZLCBwb3J0KTsKKyAgaWYgKGVyciAhPSBFUlJfT0spIHsKKyAgICBuZXRjb25uX2RlbGV0ZShjb25uc1tpXSk7CisgICAgY29ubnNbaV0gPSBOVUxMOworICAgIHNlbmRzdHIoIkNvdWxkIG5vdCBiaW5kOiAiLCBjb20tPmNvbm4pOworI2lmZGVmIExXSVBfREVCVUcKKyAgICBzZW5kc3RyKGx3aXBfc3RyZXJyKGVyciksIGNvbS0+Y29ubik7CisjZWxzZQorICAgIHNlbmRzdHIoIihkZWJ1Z2dpbmcgbXVzdCBiZSB0dXJuZWQgb24gZm9yIGVycm9yIG1lc3NhZ2UgdG8gYXBwZWFyKSIsIGNvbS0+Y29ubik7CisjZW5kaWYgLyogTFdJUF9ERUJVRyAqLworICAgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBlcnIgPSBuZXRjb25uX2xpc3Rlbihjb25uc1tpXSk7CisgIGlmIChlcnIgIT0gRVJSX09LKSB7CisgICAgbmV0Y29ubl9kZWxldGUoY29ubnNbaV0pOworICAgIGNvbm5zW2ldID0gTlVMTDsKKyAgICBzZW5kc3RyKCJDb3VsZCBub3QgbGlzdGVuOiAiLCBjb20tPmNvbm4pOworI2lmZGVmIExXSVBfREVCVUcKKyAgICBzZW5kc3RyKGx3aXBfc3RyZXJyKGVyciksIGNvbS0+Y29ubik7CisjZWxzZQorICAgIHNlbmRzdHIoIihkZWJ1Z2dpbmcgbXVzdCBiZSB0dXJuZWQgb24gZm9yIGVycm9yIG1lc3NhZ2UgdG8gYXBwZWFyKSIsIGNvbS0+Y29ubik7CisjZW5kaWYgLyogTFdJUF9ERUJVRyAqLworICAgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBzZW5kc3RyKCJPcGVuZWQgY29ubmVjdGlvbiwgY29ubmVjdGlvbiBpZGVudGlmaWVyIGlzICIsIGNvbS0+Y29ubik7CisgIHNucHJpbnRmKChjaGFyICopYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIiVkIk5FV0xJTkUsIGkpOworICBuZXRjb25uX3dyaXRlKGNvbS0+Y29ubiwgYnVmZmVyLCBzdHJsZW4oKGNvbnN0IGNoYXIgKilidWZmZXIpLCBORVRDT05OX0NPUFkpOworCisgIHJldHVybiBFU1VDQ0VTUzsKK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgczhfdAorY29tX2Nsb3Moc3RydWN0IGNvbW1hbmQgKmNvbSkKK3sKKyAgaW50IGk7CisgIGVycl90IGVycjsKKworICBpID0gc3RydG9sKGNvbS0+YXJnc1swXSwgTlVMTCwgMTApOworCisgIGlmIChpID4gTkNPTk5TKSB7CisgICAgc2VuZHN0cigiQ29ubmVjdGlvbiBpZGVudGlmaWVyIHRvbyBoaWdoLiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorICBpZiAoY29ubnNbaV0gPT0gTlVMTCkgeworICAgIHNlbmRzdHIoIkNvbm5lY3Rpb24gaWRlbnRpZmllciBub3QgaW4gdXNlLiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorCisgIGVyciA9IG5ldGNvbm5fY2xvc2UoY29ubnNbaV0pOworICBpZiAoZXJyICE9IEVSUl9PSykgeworICAgIHNlbmRzdHIoIkNvdWxkIG5vdCBjbG9zZSBjb25uZWN0aW9uOiAiLCBjb20tPmNvbm4pOworI2lmZGVmIExXSVBfREVCVUcKKyAgICBzZW5kc3RyKGx3aXBfc3RyZXJyKGVyciksIGNvbS0+Y29ubik7CisjZWxzZQorICAgIHNlbmRzdHIoIihkZWJ1Z2dpbmcgbXVzdCBiZSB0dXJuZWQgb24gZm9yIGVycm9yIG1lc3NhZ2UgdG8gYXBwZWFyKSIsIGNvbS0+Y29ubik7CisjZW5kaWYgLyogTFdJUF9ERUJVRyAqLworICAgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBzZW5kc3RyKCJDb25uZWN0aW9uIGNsb3NlZC4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgbmV0Y29ubl9kZWxldGUoY29ubnNbaV0pOworICBjb25uc1tpXSA9IE5VTEw7CisgIHJldHVybiBFU1VDQ0VTUzsKK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIHM4X3QKK2NvbV9hY3B0KHN0cnVjdCBjb21tYW5kICpjb20pCit7CisgIGludCBpLCBqOworICBlcnJfdCBlcnI7CisKKyAgLyogRmluZCB0aGUgZmlyc3QgdW51c2VkIGNvbm5lY3Rpb24gaW4gY29ubnMuICovCisgIGZvcihqID0gMDsgaiA8IE5DT05OUyAmJiBjb25uc1tqXSAhPSBOVUxMOyBqKyspOworCisgIGlmIChqID09IE5DT05OUykgeworICAgIHNlbmRzdHIoIk5vIG1vcmUgY29ubmVjdGlvbnMgYXZhaWxhYmxlLCBzb3JyeS4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBpID0gc3RydG9sKGNvbS0+YXJnc1swXSwgTlVMTCwgMTApOworCisgIGlmIChpID4gTkNPTk5TKSB7CisgICAgc2VuZHN0cigiQ29ubmVjdGlvbiBpZGVudGlmaWVyIHRvbyBoaWdoLiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorICBpZiAoY29ubnNbaV0gPT0gTlVMTCkgeworICAgIHNlbmRzdHIoIkNvbm5lY3Rpb24gaWRlbnRpZmllciBub3QgaW4gdXNlLiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorCisgIGVyciA9IG5ldGNvbm5fYWNjZXB0KGNvbm5zW2ldLCAmY29ubnNbal0pOworCisgIGlmIChlcnIgIT0gRVJSX09LKSB7CisgICAgc2VuZHN0cigiQ291bGQgbm90IGFjY2VwdCBjb25uZWN0aW9uOiAiLCBjb20tPmNvbm4pOworI2lmZGVmIExXSVBfREVCVUcKKyAgICBzZW5kc3RyKGx3aXBfc3RyZXJyKGVyciksIGNvbS0+Y29ubik7CisjZWxzZQorICAgIHNlbmRzdHIoIihkZWJ1Z2dpbmcgbXVzdCBiZSB0dXJuZWQgb24gZm9yIGVycm9yIG1lc3NhZ2UgdG8gYXBwZWFyKSIsIGNvbS0+Y29ubik7CisjZW5kaWYgLyogTFdJUF9ERUJVRyAqLworICAgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBzZW5kc3RyKCJBY2NlcHRlZCBjb25uZWN0aW9uLCBjb25uZWN0aW9uIGlkZW50aWZpZXIgZm9yIG5ldyBjb25uZWN0aW9uIGlzICIsIGNvbS0+Y29ubik7CisgIHNucHJpbnRmKChjaGFyICopYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIiVkIk5FV0xJTkUsIGopOworICBuZXRjb25uX3dyaXRlKGNvbS0+Y29ubiwgYnVmZmVyLCBzdHJsZW4oKGNvbnN0IGNoYXIgKilidWZmZXIpLCBORVRDT05OX0NPUFkpOworCisgIHJldHVybiBFU1VDQ0VTUzsKK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworI2lmIExXSVBfU1RBVFMKK3N0YXRpYyB2b2lkCitjb21fc3RhdF93cml0ZV9tZW0oc3RydWN0IG5ldGNvbm4gKmNvbm4sIHN0cnVjdCBzdGF0c19tZW0gKmVsZW0sIGludCBpKQoreworICB1MTZfdCBsZW47CisgIGNoYXIgYnVmWzEwMF07CisgIHNpemVfdCBzbGVuOworCisjaWZkZWYgTFdJUF9ERUJVRworICBMV0lQX1VOVVNFRF9BUkcoaSk7CisgIHNsZW4gPSBzdHJsZW4oZWxlbS0+bmFtZSk7CisgIG5ldGNvbm5fd3JpdGUoY29ubiwgZWxlbS0+bmFtZSwgc2xlbiwgTkVUQ09OTl9DT1BZKTsKKyNlbHNlIC8qICBMV0lQX0RFQlVHICovCisgIGxlbiA9ICh1MTZfdClzcHJpbnRmKGJ1ZiwgIiVkIiwgaSk7CisgIHNsZW4gPSBzdHJsZW4oYnVmKTsKKyAgbmV0Y29ubl93cml0ZShjb25uLCBidWYsIHNsZW4sIE5FVENPTk5fQ09QWSk7CisjZW5kaWYgLyogIExXSVBfREVCVUcgKi8KKyAgaWYoc2xlbiA8IDEwKSB7CisgICAgbmV0Y29ubl93cml0ZShjb25uLCBwYWRkaW5nXzEwc3BhY2VzLCAxMC1zbGVuLCBORVRDT05OX0NPUFkpOworICB9CisKKyAgbGVuID0gKHUxNl90KXNwcmludGYoYnVmLCAiICogYXZhaWxhYmxlICUiTUVNX1NJWkVfRiBORVdMSU5FLCBlbGVtLT5hdmFpbCk7CisgIG5ldGNvbm5fd3JpdGUoY29ubiwgYnVmLCBsZW4sIE5FVENPTk5fQ09QWSk7CisgIGxlbiA9ICh1MTZfdClzcHJpbnRmKGJ1ZiwgIiAgICAgICAgICAgKiB1c2VkICUiTUVNX1NJWkVfRiBORVdMSU5FLCBlbGVtLT51c2VkKTsKKyAgbmV0Y29ubl93cml0ZShjb25uLCBidWYsIGxlbiwgTkVUQ09OTl9DT1BZKTsKKyAgbGVuID0gKHUxNl90KXNwcmludGYoYnVmLCAiICAgICAgICAgICAqIGhpZ2ggd2F0ZXIgbWFyayAlIk1FTV9TSVpFX0YgTkVXTElORSwgZWxlbS0+bWF4KTsKKyAgbmV0Y29ubl93cml0ZShjb25uLCBidWYsIGxlbiwgTkVUQ09OTl9DT1BZKTsKKyAgbGVuID0gKHUxNl90KXNwcmludGYoYnVmLCAiICAgICAgICAgICAqIGVycm9ycyAlIlNUQVRfQ09VTlRFUl9GIE5FV0xJTkUsIGVsZW0tPmVycik7CisgIG5ldGNvbm5fd3JpdGUoY29ubiwgYnVmLCBsZW4sIE5FVENPTk5fQ09QWSk7CisgIGxlbiA9ICh1MTZfdClzcHJpbnRmKGJ1ZiwgIiAgICAgICAgICAgKiBpbGxlZ2FsICUiU1RBVF9DT1VOVEVSX0YgTkVXTElORSwgZWxlbS0+aWxsZWdhbCk7CisgIG5ldGNvbm5fd3JpdGUoY29ubiwgYnVmLCBsZW4sIE5FVENPTk5fQ09QWSk7Cit9CitzdGF0aWMgdm9pZAorY29tX3N0YXRfd3JpdGVfc3lzKHN0cnVjdCBuZXRjb25uICpjb25uLCBzdHJ1Y3Qgc3RhdHNfc3lzZWxlbSAqZWxlbSwgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgdTE2X3QgbGVuOworICBjaGFyIGJ1ZlsxMDBdOworICBzaXplX3Qgc2xlbiA9IHN0cmxlbihuYW1lKTsKKworICBuZXRjb25uX3dyaXRlKGNvbm4sIG5hbWUsIHNsZW4sIE5FVENPTk5fQ09QWSk7CisgIGlmKHNsZW4gPCAxMCkgeworICAgIG5ldGNvbm5fd3JpdGUoY29ubiwgcGFkZGluZ18xMHNwYWNlcywgMTAtc2xlbiwgTkVUQ09OTl9DT1BZKTsKKyAgfQorCisgIGxlbiA9ICh1MTZfdClzcHJpbnRmKGJ1ZiwgIiAqIHVzZWQgJSJTVEFUX0NPVU5URVJfRiBORVdMSU5FLCBlbGVtLT51c2VkKTsKKyAgbmV0Y29ubl93cml0ZShjb25uLCBidWYsIGxlbiwgTkVUQ09OTl9DT1BZKTsKKyAgbGVuID0gKHUxNl90KXNwcmludGYoYnVmLCAiICAgICAgICAgICAqIGhpZ2ggd2F0ZXIgbWFyayAlIlNUQVRfQ09VTlRFUl9GIE5FV0xJTkUsIGVsZW0tPm1heCk7CisgIG5ldGNvbm5fd3JpdGUoY29ubiwgYnVmLCBsZW4sIE5FVENPTk5fQ09QWSk7CisgIGxlbiA9ICh1MTZfdClzcHJpbnRmKGJ1ZiwgIiAgICAgICAgICAgKiBlcnJvcnMgJSJTVEFUX0NPVU5URVJfRiBORVdMSU5FLCBlbGVtLT5lcnIpOworICBuZXRjb25uX3dyaXRlKGNvbm4sIGJ1ZiwgbGVuLCBORVRDT05OX0NPUFkpOworfQorc3RhdGljIHM4X3QKK2NvbV9zdGF0KHN0cnVjdCBjb21tYW5kICpjb20pCit7CisjaWYgUFJPVE9DT0xfU1RBVFMgfHwgTUVNUF9TVEFUUworICBzaXplX3QgaTsKKyNlbmRpZiAvKiBQUk9UT0NPTF9TVEFUUyB8fCBNRU1QX1NUQVRTICovCisjaWYgUFJPVE9DT0xfU1RBVFMKKyAgc2l6ZV90IGs7CisgIGNoYXIgYnVmWzEwMF07CisgIHUxNl90IGxlbjsKKworICAvKiBwcm90b2NvbCBzdGF0cywgQHRvZG86IGFkZCBJR01QICovCisgIGZvcihpID0gMDsgaSA8IG51bV9wcm90b3N0YXRzOyBpKyspIHsKKyAgICBzaXplX3QgcyA9IHNpemVvZihzdHJ1Y3Qgc3RhdHNfcHJvdG8pL3NpemVvZihTVEFUX0NPVU5URVIpOworICAgIFNUQVRfQ09VTlRFUiAqYyA9ICZzaGVsbF9zdGF0X3Byb3RvX3N0YXRzW2ldLT54bWl0OworICAgIExXSVBfQVNTRVJUKCJzdGF0cyBub3QgaW4gc3luYyIsIHMgPT0gc2l6ZW9mKHN0YXRfbXNnc19wcm90bykvc2l6ZW9mKGNoYXIqKSk7CisgICAgbmV0Y29ubl93cml0ZShjb20tPmNvbm4sIHNoZWxsX3N0YXRfcHJvdG9fbmFtZXNbaV0sIHN0cmxlbihzaGVsbF9zdGF0X3Byb3RvX25hbWVzW2ldKSwgTkVUQ09OTl9DT1BZKTsKKyAgICBmb3IoayA9IDA7IGsgPCBzOyBrKyspIHsKKyAgICAgIGxlbiA9ICh1MTZfdClzcHJpbnRmKGJ1ZiwgIiVzJSJTVEFUX0NPVU5URVJfRiBORVdMSU5FLCBzdGF0X21zZ3NfcHJvdG9ba10sIGNba10pOworICAgICAgbmV0Y29ubl93cml0ZShjb20tPmNvbm4sIGJ1ZiwgbGVuLCBORVRDT05OX0NPUFkpOworICAgIH0KKyAgfQorI2VuZGlmIC8qIFBST1RPQ09MX1NUQVRTICovCisjaWYgTUVNX1NUQVRTCisgIGNvbV9zdGF0X3dyaXRlX21lbShjb20tPmNvbm4sICZsd2lwX3N0YXRzLm1lbSwgLTEpOworI2VuZGlmIC8qIE1FTV9TVEFUUyAqLworI2lmIE1FTVBfU1RBVFMKKyAgZm9yKGkgPSAwOyBpIDwgTUVNUF9NQVg7IGkrKykgeworICAgIGNvbV9zdGF0X3dyaXRlX21lbShjb20tPmNvbm4sIGx3aXBfc3RhdHMubWVtcFtpXSwgLTEpOworICB9CisjZW5kaWYgLyogTUVNUF9TVEFUUyAqLworI2lmIFNZU19TVEFUUworICBjb21fc3RhdF93cml0ZV9zeXMoY29tLT5jb25uLCAmbHdpcF9zdGF0cy5zeXMuc2VtLCAgICJTRU0gICAgICAgIik7CisgIGNvbV9zdGF0X3dyaXRlX3N5cyhjb20tPmNvbm4sICZsd2lwX3N0YXRzLnN5cy5tdXRleCwgIk1VVEVYICAgICAiKTsKKyAgY29tX3N0YXRfd3JpdGVfc3lzKGNvbS0+Y29ubiwgJmx3aXBfc3RhdHMuc3lzLm1ib3gsICAiTUJPWCAgICAgICIpOworI2VuZGlmIC8qIFNZU19TVEFUUyAqLworCisgIHJldHVybiBFU1VDQ0VTUzsKK30KKyNlbmRpZgorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgczhfdAorY29tX3NlbmQoc3RydWN0IGNvbW1hbmQgKmNvbSkKK3sKKyAgaW50IGk7CisgIGVycl90IGVycjsKKyAgc2l6ZV90IGxlbjsKKworICBpID0gc3RydG9sKGNvbS0+YXJnc1swXSwgTlVMTCwgMTApOworCisgIGlmIChpID4gTkNPTk5TKSB7CisgICAgc2VuZHN0cigiQ29ubmVjdGlvbiBpZGVudGlmaWVyIHRvbyBoaWdoLiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorCisgIGlmIChjb25uc1tpXSA9PSBOVUxMKSB7CisgICAgc2VuZHN0cigiQ29ubmVjdGlvbiBpZGVudGlmaWVyIG5vdCBpbiB1c2UuIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisKKyAgbGVuID0gc3RybGVuKGNvbS0+YXJnc1sxXSk7CisgIGNvbS0+YXJnc1sxXVtsZW5dID0gJ1xyJzsKKyAgY29tLT5hcmdzWzFdW2xlbiArIDFdID0gJ1xuJzsKKyAgY29tLT5hcmdzWzFdW2xlbiArIDJdID0gMDsKKworICBlcnIgPSBuZXRjb25uX3dyaXRlKGNvbm5zW2ldLCBjb20tPmFyZ3NbMV0sIGxlbiArIDMsIE5FVENPTk5fQ09QWSk7CisgIGlmIChlcnIgIT0gRVJSX09LKSB7CisgICAgc2VuZHN0cigiQ291bGQgbm90IHNlbmQgZGF0YTogIiwgY29tLT5jb25uKTsKKyNpZmRlZiBMV0lQX0RFQlVHCisgICAgc2VuZHN0cihsd2lwX3N0cmVycihlcnIpLCBjb20tPmNvbm4pOworI2Vsc2UKKyAgICBzZW5kc3RyKCIoZGVidWdnaW5nIG11c3QgYmUgdHVybmVkIG9uIGZvciBlcnJvciBtZXNzYWdlIHRvIGFwcGVhcikiLCBjb20tPmNvbm4pOworI2VuZGlmIC8qIExXSVBfREVCVUcgKi8KKyAgICBzZW5kc3RyKE5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisKKyAgc2VuZHN0cigiRGF0YSBlbnF1ZXVlZCBmb3Igc2VuZGluZy4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgcmV0dXJuIEVTVUNDRVNTOworfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgczhfdAorY29tX3JlY3Yoc3RydWN0IGNvbW1hbmQgKmNvbSkKK3sKKyAgaW50IGk7CisgIGVycl90IGVycjsKKyAgc3RydWN0IG5ldGJ1ZiAqYnVmOworICB1MTZfdCBsZW47CisKKyAgaSA9IHN0cnRvbChjb20tPmFyZ3NbMF0sIE5VTEwsIDEwKTsKKworICBpZiAoaSA+IE5DT05OUykgeworICAgIHNlbmRzdHIoIkNvbm5lY3Rpb24gaWRlbnRpZmllciB0b28gaGlnaC4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBpZiAoY29ubnNbaV0gPT0gTlVMTCkgeworICAgIHNlbmRzdHIoIkNvbm5lY3Rpb24gaWRlbnRpZmllciBub3QgaW4gdXNlLiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorCisgIGVyciA9IG5ldGNvbm5fcmVjdihjb25uc1tpXSwgJmJ1Zik7CisgIGlmIChlcnIgPT0gRVJSX09LKSB7CisKKyAgICBuZXRidWZfY29weShidWYsIGJ1ZmZlciwgQlVGU0laRSk7CisgICAgbGVuID0gbmV0YnVmX2xlbihidWYpOworICAgIHNlbmRzdHIoIlJlYWRpbmcgZnJvbSBjb25uZWN0aW9uOiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIG5ldGNvbm5fd3JpdGUoY29tLT5jb25uLCBidWZmZXIsIGxlbiwgTkVUQ09OTl9DT1BZKTsKKyAgICBuZXRidWZfZGVsZXRlKGJ1Zik7CisgIH0gZWxzZSB7CisgICAgc2VuZHN0cigiRU9GLiJORVdMSU5FLCBjb20tPmNvbm4pOworICB9CisgIGVyciA9IG5ldGNvbm5fZXJyKGNvbm5zW2ldKTsKKyAgaWYgKGVyciAhPSBFUlJfT0spIHsKKyAgICBzZW5kc3RyKCJDb3VsZCBub3QgcmVjZWl2ZSBkYXRhOiAiLCBjb20tPmNvbm4pOworI2lmZGVmIExXSVBfREVCVUcKKyAgICBzZW5kc3RyKGx3aXBfc3RyZXJyKGVyciksIGNvbS0+Y29ubik7CisjZWxzZQorICAgIHNlbmRzdHIoIihkZWJ1Z2dpbmcgbXVzdCBiZSB0dXJuZWQgb24gZm9yIGVycm9yIG1lc3NhZ2UgdG8gYXBwZWFyKSIsIGNvbS0+Y29ubik7CisjZW5kaWYgLyogTFdJUF9ERUJVRyAqLworICAgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKyAgcmV0dXJuIEVTVUNDRVNTOworfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgczhfdAorY29tX3VkcGMoc3RydWN0IGNvbW1hbmQgKmNvbSkKK3sKKyAgaXBfYWRkcl90IGlwYWRkcjsKKyAgdTE2X3QgbHBvcnQsIHJwb3J0OworICBpbnQgaTsKKyAgZXJyX3QgZXJyOworICBsb25nIHRtcDsKKworICB0bXAgPSBzdHJ0b2woY29tLT5hcmdzWzBdLCBOVUxMLCAxMCk7CisgIGlmKCh0bXAgPCAwKSB8fCAodG1wID4gMHhmZmZmKSkgeworICAgIHNlbmRzdHIoIkludmFsaWQgcG9ydCBudW1iZXIuIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisgIGxwb3J0ID0gKHUxNl90KXRtcDsKKyAgaWYgKGlwYWRkcl9hdG9uKGNvbS0+YXJnc1sxXSwgJmlwYWRkcikgPT0gLTEpIHsKKyAgICBzZW5kc3RyKHN0cmVycm9yKGVycm5vKSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNZTlRBWDsKKyAgfQorICB0bXAgPSBzdHJ0b2woY29tLT5hcmdzWzJdLCBOVUxMLCAxMCk7CisgIGlmKCh0bXAgPCAwKSB8fCAodG1wID4gMHhmZmZmKSkgeworICAgIHNlbmRzdHIoIkludmFsaWQgcG9ydCBudW1iZXIuIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisgIHJwb3J0ID0gKHUxNl90KXRtcDsKKworICAvKiBGaW5kIHRoZSBmaXJzdCB1bnVzZWQgY29ubmVjdGlvbiBpbiBjb25ucy4gKi8KKyAgZm9yKGkgPSAwOyBpIDwgTkNPTk5TICYmIGNvbm5zW2ldICE9IE5VTEw7IGkrKyk7CisKKyAgaWYgKGkgPT0gTkNPTk5TKSB7CisgICAgc2VuZHN0cigiTm8gbW9yZSBjb25uZWN0aW9ucyBhdmFpbGFibGUsIHNvcnJ5LiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorCisgIHNlbmRzdHIoIlNldHRpbmcgdXAgVURQIGNvbm5lY3Rpb24gZnJvbSBwb3J0ICIsIGNvbS0+Y29ubik7CisgIG5ldGNvbm5fd3JpdGUoY29tLT5jb25uLCBjb20tPmFyZ3NbMF0sIHN0cmxlbihjb20tPmFyZ3NbMF0pLCBORVRDT05OX0NPUFkpOworICBzZW5kc3RyKCIgdG8gIiwgY29tLT5jb25uKTsKKyAgbmV0Y29ubl93cml0ZShjb20tPmNvbm4sIGNvbS0+YXJnc1sxXSwgc3RybGVuKGNvbS0+YXJnc1sxXSksIE5FVENPTk5fQ09QWSk7CisgIHNlbmRzdHIoIjoiLCBjb20tPmNvbm4pOworICBuZXRjb25uX3dyaXRlKGNvbS0+Y29ubiwgY29tLT5hcmdzWzJdLCBzdHJsZW4oY29tLT5hcmdzWzJdKSwgTkVUQ09OTl9DT1BZKTsKKyAgc2VuZHN0cihORVdMSU5FLCBjb20tPmNvbm4pOworCisgIGNvbm5zW2ldID0gbmV0Y29ubl9uZXcoTkVUQ09OTl9VRFApOworICBpZiAoY29ubnNbaV0gPT0gTlVMTCkgeworICAgIHNlbmRzdHIoIkNvdWxkIG5vdCBjcmVhdGUgY29ubmVjdGlvbiBpZGVudGlmaWVyIChvdXQgb2YgbWVtb3J5KS4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBlcnIgPSBuZXRjb25uX2Nvbm5lY3QoY29ubnNbaV0sICZpcGFkZHIsIHJwb3J0KTsKKyAgaWYgKGVyciAhPSBFUlJfT0spIHsKKyAgICBuZXRjb25uX2RlbGV0ZShjb25uc1tpXSk7CisgICAgY29ubnNbaV0gPSBOVUxMOworICAgIHNlbmRzdHIoIkNvdWxkIG5vdCBjb25uZWN0IHRvIHJlbW90ZSBob3N0OiAiLCBjb20tPmNvbm4pOworI2lmZGVmIExXSVBfREVCVUcKKyAgICBzZW5kc3RyKGx3aXBfc3RyZXJyKGVyciksIGNvbS0+Y29ubik7CisjZWxzZQorICAgIHNlbmRzdHIoIihkZWJ1Z2dpbmcgbXVzdCBiZSB0dXJuZWQgb24gZm9yIGVycm9yIG1lc3NhZ2UgdG8gYXBwZWFyKSIsIGNvbS0+Y29ubik7CisjZW5kaWYgLyogTFdJUF9ERUJVRyAqLworICAgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBlcnIgPSBuZXRjb25uX2JpbmQoY29ubnNbaV0sIElQX0FERFJfQU5ZLCBscG9ydCk7CisgIGlmIChlcnIgIT0gRVJSX09LKSB7CisgICAgbmV0Y29ubl9kZWxldGUoY29ubnNbaV0pOworICAgIGNvbm5zW2ldID0gTlVMTDsKKyAgICBzZW5kc3RyKCJDb3VsZCBub3QgYmluZDogIiwgY29tLT5jb25uKTsKKyNpZmRlZiBMV0lQX0RFQlVHCisgICAgc2VuZHN0cihsd2lwX3N0cmVycihlcnIpLCBjb20tPmNvbm4pOworI2Vsc2UKKyAgICBzZW5kc3RyKCIoZGVidWdnaW5nIG11c3QgYmUgdHVybmVkIG9uIGZvciBlcnJvciBtZXNzYWdlIHRvIGFwcGVhcikiLCBjb20tPmNvbm4pOworI2VuZGlmIC8qIExXSVBfREVCVUcgKi8KKyAgICBzZW5kc3RyKE5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisKKyAgc2VuZHN0cigiQ29ubmVjdGlvbiBzZXQgdXAsIGNvbm5lY3Rpb24gaWRlbnRpZmllciBpcyAiLCBjb20tPmNvbm4pOworICBzbnByaW50ZigoY2hhciAqKWJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICIlZCJORVdMSU5FLCBpKTsKKyAgbmV0Y29ubl93cml0ZShjb20tPmNvbm4sIGJ1ZmZlciwgc3RybGVuKChjb25zdCBjaGFyICopYnVmZmVyKSwgTkVUQ09OTl9DT1BZKTsKKworICByZXR1cm4gRVNVQ0NFU1M7Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBzOF90Citjb21fdWRwbChzdHJ1Y3QgY29tbWFuZCAqY29tKQoreworICBpcF9hZGRyX3QgaXBhZGRyOworICB1MTZfdCBscG9ydCwgcnBvcnQ7CisgIGludCBpOworICBlcnJfdCBlcnI7CisgIGxvbmcgdG1wOworCisgIHRtcCA9IHN0cnRvbChjb20tPmFyZ3NbMF0sIE5VTEwsIDEwKTsKKyAgaWYoKHRtcCA8IDApIHx8ICh0bXAgPiAweGZmZmYpKSB7CisgICAgc2VuZHN0cigiSW52YWxpZCBwb3J0IG51bWJlci4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKyAgbHBvcnQgPSAodTE2X3QpdG1wOworICBpZiAoaXBhZGRyX2F0b24oY29tLT5hcmdzWzFdLCAmaXBhZGRyKSA9PSAtMSkgeworICAgIHNlbmRzdHIoc3RyZXJyb3IoZXJybm8pLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1lOVEFYOworICB9CisgIHRtcCA9IHN0cnRvbChjb20tPmFyZ3NbMl0sIE5VTEwsIDEwKTsKKyAgaWYoKHRtcCA8IDApIHx8ICh0bXAgPiAweGZmZmYpKSB7CisgICAgc2VuZHN0cigiSW52YWxpZCBwb3J0IG51bWJlci4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKyAgcnBvcnQgPSAodTE2X3QpdG1wOworCisgIC8qIEZpbmQgdGhlIGZpcnN0IHVudXNlZCBjb25uZWN0aW9uIGluIGNvbm5zLiAqLworICBmb3IoaSA9IDA7IGkgPCBOQ09OTlMgJiYgY29ubnNbaV0gIT0gTlVMTDsgaSsrKTsKKworICBpZiAoaSA9PSBOQ09OTlMpIHsKKyAgICBzZW5kc3RyKCJObyBtb3JlIGNvbm5lY3Rpb25zIGF2YWlsYWJsZSwgc29ycnkuIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisKKyAgc2VuZHN0cigiU2V0dGluZyB1cCBVRFAtTGl0ZSBjb25uZWN0aW9uIGZyb20gcG9ydCAiLCBjb20tPmNvbm4pOworICBuZXRjb25uX3dyaXRlKGNvbS0+Y29ubiwgY29tLT5hcmdzWzBdLCBzdHJsZW4oY29tLT5hcmdzWzBdKSwgTkVUQ09OTl9DT1BZKTsKKyAgc2VuZHN0cigiIHRvICIsIGNvbS0+Y29ubik7CisgIG5ldGNvbm5fd3JpdGUoY29tLT5jb25uLCBjb20tPmFyZ3NbMV0sIHN0cmxlbihjb20tPmFyZ3NbMV0pLCBORVRDT05OX0NPUFkpOworICBzZW5kc3RyKCI6IiwgY29tLT5jb25uKTsKKyAgbmV0Y29ubl93cml0ZShjb20tPmNvbm4sIGNvbS0+YXJnc1syXSwgc3RybGVuKGNvbS0+YXJnc1syXSksIE5FVENPTk5fQ09QWSk7CisgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKworICBjb25uc1tpXSA9IG5ldGNvbm5fbmV3KE5FVENPTk5fVURQTElURSk7CisgIGlmIChjb25uc1tpXSA9PSBOVUxMKSB7CisgICAgc2VuZHN0cigiQ291bGQgbm90IGNyZWF0ZSBjb25uZWN0aW9uIGlkZW50aWZpZXIgKG91dCBvZiBtZW1vcnkpLiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorCisgIGVyciA9IG5ldGNvbm5fY29ubmVjdChjb25uc1tpXSwgJmlwYWRkciwgcnBvcnQpOworICBpZiAoZXJyICE9IEVSUl9PSykgeworICAgIG5ldGNvbm5fZGVsZXRlKGNvbm5zW2ldKTsKKyAgICBjb25uc1tpXSA9IE5VTEw7CisgICAgc2VuZHN0cigiQ291bGQgbm90IGNvbm5lY3QgdG8gcmVtb3RlIGhvc3Q6ICIsIGNvbS0+Y29ubik7CisjaWZkZWYgTFdJUF9ERUJVRworICAgIHNlbmRzdHIobHdpcF9zdHJlcnIoZXJyKSwgY29tLT5jb25uKTsKKyNlbHNlCisgICAgc2VuZHN0cigiKGRlYnVnZ2luZyBtdXN0IGJlIHR1cm5lZCBvbiBmb3IgZXJyb3IgbWVzc2FnZSB0byBhcHBlYXIpIiwgY29tLT5jb25uKTsKKyNlbmRpZiAvKiBMV0lQX0RFQlVHICovCisgICAgc2VuZHN0cihORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorCisgIGVyciA9IG5ldGNvbm5fYmluZChjb25uc1tpXSwgSVBfQUREUl9BTlksIGxwb3J0KTsKKyAgaWYgKGVyciAhPSBFUlJfT0spIHsKKyAgICBuZXRjb25uX2RlbGV0ZShjb25uc1tpXSk7CisgICAgY29ubnNbaV0gPSBOVUxMOworICAgIHNlbmRzdHIoIkNvdWxkIG5vdCBiaW5kOiAiLCBjb20tPmNvbm4pOworI2lmZGVmIExXSVBfREVCVUcKKyAgICBzZW5kc3RyKGx3aXBfc3RyZXJyKGVyciksIGNvbS0+Y29ubik7CisjZWxzZQorICAgIHNlbmRzdHIoIihkZWJ1Z2dpbmcgbXVzdCBiZSB0dXJuZWQgb24gZm9yIGVycm9yIG1lc3NhZ2UgdG8gYXBwZWFyKSIsIGNvbS0+Y29ubik7CisjZW5kaWYgLyogTFdJUF9ERUJVRyAqLworICAgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBzZW5kc3RyKCJDb25uZWN0aW9uIHNldCB1cCwgY29ubmVjdGlvbiBpZGVudGlmaWVyIGlzICIsIGNvbS0+Y29ubik7CisgIHNucHJpbnRmKChjaGFyICopYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgIiVkIk5FV0xJTkUsIGkpOworICBuZXRjb25uX3dyaXRlKGNvbS0+Y29ubiwgYnVmZmVyLCBzdHJsZW4oKGNvbnN0IGNoYXIgKilidWZmZXIpLCBORVRDT05OX0NPUFkpOworCisgIHJldHVybiBFU1VDQ0VTUzsKK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIHM4X3QKK2NvbV91ZHBuKHN0cnVjdCBjb21tYW5kICpjb20pCit7CisgIGlwX2FkZHJfdCBpcGFkZHI7CisgIHUxNl90IGxwb3J0LCBycG9ydDsKKyAgaW50IGk7CisgIGVycl90IGVycjsKKyAgbG9uZyB0bXA7CisKKyAgdG1wID0gc3RydG9sKGNvbS0+YXJnc1swXSwgTlVMTCwgMTApOworICBpZigodG1wIDwgMCkgfHwgKHRtcCA+IDB4ZmZmZikpIHsKKyAgICBzZW5kc3RyKCJJbnZhbGlkIHBvcnQgbnVtYmVyLiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorICBscG9ydCA9ICh1MTZfdCl0bXA7CisgIGlmIChpcGFkZHJfYXRvbihjb20tPmFyZ3NbMV0sICZpcGFkZHIpID09IC0xKSB7CisgICAgc2VuZHN0cihzdHJlcnJvcihlcnJubyksIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTWU5UQVg7CisgIH0KKyAgdG1wID0gc3RydG9sKGNvbS0+YXJnc1syXSwgTlVMTCwgMTApOworICBpZigodG1wIDwgMCkgfHwgKHRtcCA+IDB4ZmZmZikpIHsKKyAgICBzZW5kc3RyKCJJbnZhbGlkIHBvcnQgbnVtYmVyLiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorICBycG9ydCA9ICh1MTZfdCl0bXA7CisKKyAgLyogRmluZCB0aGUgZmlyc3QgdW51c2VkIGNvbm5lY3Rpb24gaW4gY29ubnMuICovCisgIGZvcihpID0gMDsgaSA8IE5DT05OUyAmJiBjb25uc1tpXSAhPSBOVUxMOyBpKyspOworCisgIGlmIChpID09IE5DT05OUykgeworICAgIHNlbmRzdHIoIk5vIG1vcmUgY29ubmVjdGlvbnMgYXZhaWxhYmxlLCBzb3JyeS4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBzZW5kc3RyKCJTZXR0aW5nIHVwIFVEUCBjb25uZWN0aW9uIHdpdGhvdXQgY2hlY2tzdW1zIGZyb20gcG9ydCAiLCBjb20tPmNvbm4pOworICBuZXRjb25uX3dyaXRlKGNvbS0+Y29ubiwgY29tLT5hcmdzWzBdLCBzdHJsZW4oY29tLT5hcmdzWzBdKSwgTkVUQ09OTl9DT1BZKTsKKyAgc2VuZHN0cigiIHRvICIsIGNvbS0+Y29ubik7CisgIG5ldGNvbm5fd3JpdGUoY29tLT5jb25uLCBjb20tPmFyZ3NbMV0sIHN0cmxlbihjb20tPmFyZ3NbMV0pLCBORVRDT05OX0NPUFkpOworICBzZW5kc3RyKCI6IiwgY29tLT5jb25uKTsKKyAgbmV0Y29ubl93cml0ZShjb20tPmNvbm4sIGNvbS0+YXJnc1syXSwgc3RybGVuKGNvbS0+YXJnc1syXSksIE5FVENPTk5fQ09QWSk7CisgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKworICBjb25uc1tpXSA9IG5ldGNvbm5fbmV3KE5FVENPTk5fVURQTk9DSEtTVU0pOworICBpZiAoY29ubnNbaV0gPT0gTlVMTCkgeworICAgIHNlbmRzdHIoIkNvdWxkIG5vdCBjcmVhdGUgY29ubmVjdGlvbiBpZGVudGlmaWVyIChvdXQgb2YgbWVtb3J5KS4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBlcnIgPSBuZXRjb25uX2Nvbm5lY3QoY29ubnNbaV0sICZpcGFkZHIsIHJwb3J0KTsKKyAgaWYgKGVyciAhPSBFUlJfT0spIHsKKyAgICBuZXRjb25uX2RlbGV0ZShjb25uc1tpXSk7CisgICAgY29ubnNbaV0gPSBOVUxMOworICAgIHNlbmRzdHIoIkNvdWxkIG5vdCBjb25uZWN0IHRvIHJlbW90ZSBob3N0OiAiLCBjb20tPmNvbm4pOworI2lmZGVmIExXSVBfREVCVUcKKyAgICBzZW5kc3RyKGx3aXBfc3RyZXJyKGVyciksIGNvbS0+Y29ubik7CisjZWxzZQorICAgIHNlbmRzdHIoIihkZWJ1Z2dpbmcgbXVzdCBiZSB0dXJuZWQgb24gZm9yIGVycm9yIG1lc3NhZ2UgdG8gYXBwZWFyKSIsIGNvbS0+Y29ubik7CisjZW5kaWYgLyogTFdJUF9ERUJVRyAqLworICAgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBlcnIgPSBuZXRjb25uX2JpbmQoY29ubnNbaV0sIElQX0FERFJfQU5ZLCBscG9ydCk7CisgIGlmIChlcnIgIT0gRVJSX09LKSB7CisgICAgbmV0Y29ubl9kZWxldGUoY29ubnNbaV0pOworICAgIGNvbm5zW2ldID0gTlVMTDsKKyAgICBzZW5kc3RyKCJDb3VsZCBub3QgYmluZDogIiwgY29tLT5jb25uKTsKKyNpZmRlZiBMV0lQX0RFQlVHCisgICAgc2VuZHN0cihsd2lwX3N0cmVycihlcnIpLCBjb20tPmNvbm4pOworI2Vsc2UKKyAgICBzZW5kc3RyKCIoZGVidWdnaW5nIG11c3QgYmUgdHVybmVkIG9uIGZvciBlcnJvciBtZXNzYWdlIHRvIGFwcGVhcikiLCBjb20tPmNvbm4pOworI2VuZGlmIC8qIExXSVBfREVCVUcgKi8KKyAgICBzZW5kc3RyKE5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisKKyAgc2VuZHN0cigiQ29ubmVjdGlvbiBzZXQgdXAsIGNvbm5lY3Rpb24gaWRlbnRpZmllciBpcyAiLCBjb20tPmNvbm4pOworICBzbnByaW50ZigoY2hhciAqKWJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICIlZCJORVdMSU5FLCBpKTsKKyAgbmV0Y29ubl93cml0ZShjb20tPmNvbm4sIGJ1ZmZlciwgc3RybGVuKChjb25zdCBjaGFyICopYnVmZmVyKSwgTkVUQ09OTl9DT1BZKTsKKworICByZXR1cm4gRVNVQ0NFU1M7Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBzOF90Citjb21fdWRwYihzdHJ1Y3QgY29tbWFuZCAqY29tKQoreworICBpcF9hZGRyX3QgaXBhZGRyOworI2lmIExXSVBfSVBWNAorICB1MTZfdCBscG9ydDsKKyNlbmRpZiAvKiBMV0lQX0lQVjQgKi8KKyAgdTE2X3QgcnBvcnQ7CisgIGludCBpOworICBlcnJfdCBlcnI7CisgIGxvbmcgdG1wOworCisgIHRtcCA9IHN0cnRvbChjb20tPmFyZ3NbMF0sIE5VTEwsIDEwKTsKKyAgaWYoKHRtcCA8IDApIHx8ICh0bXAgPiAweGZmZmYpKSB7CisgICAgc2VuZHN0cigiSW52YWxpZCBwb3J0IG51bWJlci4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKyNpZiBMV0lQX0lQVjQKKyAgbHBvcnQgPSAodTE2X3QpdG1wOworI2VuZGlmIC8qIExXSVBfSVBWNCAqLworICBpZiAoaXBhZGRyX2F0b24oY29tLT5hcmdzWzFdLCAmaXBhZGRyKSA9PSAtMSkgeworICAgIHNlbmRzdHIoc3RyZXJyb3IoZXJybm8pLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1lOVEFYOworICB9CisgIHRtcCA9IHN0cnRvbChjb20tPmFyZ3NbMl0sIE5VTEwsIDEwKTsKKyAgaWYoKHRtcCA8IDApIHx8ICh0bXAgPiAweGZmZmYpKSB7CisgICAgc2VuZHN0cigiSW52YWxpZCBwb3J0IG51bWJlci4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKyAgcnBvcnQgPSAodTE2X3QpdG1wOworCisgIC8qIEZpbmQgdGhlIGZpcnN0IHVudXNlZCBjb25uZWN0aW9uIGluIGNvbm5zLiAqLworICBmb3IoaSA9IDA7IGkgPCBOQ09OTlMgJiYgY29ubnNbaV0gIT0gTlVMTDsgaSsrKTsKKworICBpZiAoaSA9PSBOQ09OTlMpIHsKKyAgICBzZW5kc3RyKCJObyBtb3JlIGNvbm5lY3Rpb25zIGF2YWlsYWJsZSwgc29ycnkuIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisKKyAgc2VuZHN0cigiU2V0dGluZyB1cCBVRFAgYnJvYWRjYXN0IGNvbm5lY3Rpb24gZnJvbSBwb3J0ICIsIGNvbS0+Y29ubik7CisgIG5ldGNvbm5fd3JpdGUoY29tLT5jb25uLCBjb20tPmFyZ3NbMF0sIHN0cmxlbihjb20tPmFyZ3NbMF0pLCBORVRDT05OX0NPUFkpOworICBzZW5kc3RyKCIgdG8gIiwgY29tLT5jb25uKTsKKyAgbmV0Y29ubl93cml0ZShjb20tPmNvbm4sIGNvbS0+YXJnc1sxXSwgc3RybGVuKGNvbS0+YXJnc1sxXSksIE5FVENPTk5fQ09QWSk7CisgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKworICBjb25uc1tpXSA9IG5ldGNvbm5fbmV3KE5FVENPTk5fVURQKTsKKyAgaWYgKGNvbm5zW2ldID09IE5VTEwpIHsKKyAgICBzZW5kc3RyKCJDb3VsZCBub3QgY3JlYXRlIGNvbm5lY3Rpb24gaWRlbnRpZmllciAob3V0IG9mIG1lbW9yeSkuIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisKKyAgZXJyID0gbmV0Y29ubl9jb25uZWN0KGNvbm5zW2ldLCAmaXBhZGRyLCBycG9ydCk7CisgIGlmIChlcnIgIT0gRVJSX09LKSB7CisgICAgbmV0Y29ubl9kZWxldGUoY29ubnNbaV0pOworICAgIGNvbm5zW2ldID0gTlVMTDsKKyAgICBzZW5kc3RyKCJDb3VsZCBub3QgY29ubmVjdCB0byByZW1vdGUgaG9zdDogIiwgY29tLT5jb25uKTsKKyNpZmRlZiBMV0lQX0RFQlVHCisgICAgc2VuZHN0cihsd2lwX3N0cmVycihlcnIpLCBjb20tPmNvbm4pOworI2Vsc2UKKyAgICBzZW5kc3RyKCIoZGVidWdnaW5nIG11c3QgYmUgdHVybmVkIG9uIGZvciBlcnJvciBtZXNzYWdlIHRvIGFwcGVhcikiLCBjb20tPmNvbm4pOworI2VuZGlmIC8qIExXSVBfREVCVUcgKi8KKyAgICBzZW5kc3RyKE5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisKKyNpZiBMV0lQX0lQVjQKKyAgaWYgKElQX0lTX1Y2X1ZBTChpcGFkZHIpKSB7CisgICAgZXJyID0gbmV0Y29ubl9iaW5kKGNvbm5zW2ldLCAmaXBfYWRkcl9icm9hZGNhc3QsIGxwb3J0KTsKKyAgICBpZiAoZXJyICE9IEVSUl9PSykgeworICAgICAgbmV0Y29ubl9kZWxldGUoY29ubnNbaV0pOworICAgICAgY29ubnNbaV0gPSBOVUxMOworICAgICAgc2VuZHN0cigiQ291bGQgbm90IGJpbmQ6ICIsIGNvbS0+Y29ubik7CisjaWZkZWYgTFdJUF9ERUJVRworICAgICAgc2VuZHN0cihsd2lwX3N0cmVycihlcnIpLCBjb20tPmNvbm4pOworI2Vsc2UKKyAgICAgIHNlbmRzdHIoIihkZWJ1Z2dpbmcgbXVzdCBiZSB0dXJuZWQgb24gZm9yIGVycm9yIG1lc3NhZ2UgdG8gYXBwZWFyKSIsIGNvbS0+Y29ubik7CisjZW5kaWYgLyogTFdJUF9ERUJVRyAqLworICAgICAgc2VuZHN0cihORVdMSU5FLCBjb20tPmNvbm4pOworICAgICAgcmV0dXJuIEVTVUNDRVNTOworICAgIH0KKyAgfQorI2VuZGlmIC8qIExXSVBfSVBWNCAqLworCisgIHNlbmRzdHIoIkNvbm5lY3Rpb24gc2V0IHVwLCBjb25uZWN0aW9uIGlkZW50aWZpZXIgaXMgIiwgY29tLT5jb25uKTsKKyAgc25wcmludGYoKGNoYXIgKilidWZmZXIsIHNpemVvZihidWZmZXIpLCAiJWQiTkVXTElORSwgaSk7CisgIG5ldGNvbm5fd3JpdGUoY29tLT5jb25uLCBidWZmZXIsIHN0cmxlbigoY29uc3QgY2hhciAqKWJ1ZmZlciksIE5FVENPTk5fQ09QWSk7CisKKyAgcmV0dXJuIEVTVUNDRVNTOworfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgczhfdAorY29tX3VzbmQoc3RydWN0IGNvbW1hbmQgKmNvbSkKK3sKKyAgbG9uZyBpOworICBlcnJfdCBlcnI7CisgIHN0cnVjdCBuZXRidWYgKmJ1ZjsKKyAgY2hhciAqbWVtOworICB1MTZfdCBsZW47CisgIHNpemVfdCB0bXA7CisKKyAgaSA9IHN0cnRvbChjb20tPmFyZ3NbMF0sIE5VTEwsIDEwKTsKKworICBpZiAoaSA+IE5DT05OUykgeworICAgIHNlbmRzdHIoIkNvbm5lY3Rpb24gaWRlbnRpZmllciB0b28gaGlnaC4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKworICBpZiAoY29ubnNbaV0gPT0gTlVMTCkgeworICAgIHNlbmRzdHIoIkNvbm5lY3Rpb24gaWRlbnRpZmllciBub3QgaW4gdXNlLiJORVdMSU5FLCBjb20tPmNvbm4pOworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorICB0bXAgPSBzdHJsZW4oY29tLT5hcmdzWzFdKSArIDE7CisgIGlmICh0bXAgPiAweGZmZmYpIHsKKyAgICBzZW5kc3RyKCJJbnZhbGlkIGxlbmd0aC4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKyAgbGVuID0gKHUxNl90KXRtcDsKKworICBidWYgPSBuZXRidWZfbmV3KCk7CisgIG1lbSA9IChjaGFyICopbmV0YnVmX2FsbG9jKGJ1ZiwgbGVuKTsKKyAgaWYgKG1lbSA9PSBOVUxMKSB7CisgICAgc2VuZHN0cigiQ291bGQgbm90IGFsbG9jYXRlIG1lbW9yeSBmb3Igc2VuZGluZy4iTkVXTElORSwgY29tLT5jb25uKTsKKyAgICByZXR1cm4gRVNVQ0NFU1M7CisgIH0KKyAgc3RybmNweShtZW0sIGNvbS0+YXJnc1sxXSwgbGVuKTsKKyAgZXJyID0gbmV0Y29ubl9zZW5kKGNvbm5zW2ldLCBidWYpOworICBuZXRidWZfZGVsZXRlKGJ1Zik7CisgIGlmIChlcnIgIT0gRVJSX09LKSB7CisgICAgc2VuZHN0cigiQ291bGQgbm90IHNlbmQgZGF0YTogIiwgY29tLT5jb25uKTsKKyNpZmRlZiBMV0lQX0RFQlVHCisgICAgc2VuZHN0cihsd2lwX3N0cmVycihlcnIpLCBjb20tPmNvbm4pOworI2Vsc2UKKyAgICBzZW5kc3RyKCIoZGVidWdnaW5nIG11c3QgYmUgdHVybmVkIG9uIGZvciBlcnJvciBtZXNzYWdlIHRvIGFwcGVhcikiLCBjb20tPmNvbm4pOworI2VuZGlmIC8qIExXSVBfREVCVUcgKi8KKyAgICBzZW5kc3RyKE5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgcmV0dXJuIEVTVUNDRVNTOworICB9CisKKyAgc2VuZHN0cigiRGF0YSBzZW50LiJORVdMSU5FLCBjb20tPmNvbm4pOworICByZXR1cm4gRVNVQ0NFU1M7Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNpZiBMV0lQX1NPQ0tFVAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgczhfdAorY29tX2lkeHRvbmFtZShzdHJ1Y3QgY29tbWFuZCAqY29tKQoreworICBsb25nIGkgPSBzdHJ0b2woY29tLT5hcmdzWzBdLCBOVUxMLCAxMCk7CisKKyAgaWYgKGx3aXBfaWZfaW5kZXh0b25hbWUoKHVuc2lnbmVkIGludClpLCAoY2hhciAqKWJ1ZmZlcikpIHsKKyAgICBuZXRjb25uX3dyaXRlKGNvbS0+Y29ubiwgYnVmZmVyLCBzdHJsZW4oKGNvbnN0IGNoYXIgKilidWZmZXIpLCBORVRDT05OX0NPUFkpOworICAgIHNlbmRzdHIoTkVXTElORSwgY29tLT5jb25uKTsKKyAgfSBlbHNlIHsKKyAgICBzbnByaW50ZigoY2hhciAqKWJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICJpZl9pbmRleHRvbmFtZSgpIGZhaWxlZDogJWQiTkVXTElORSwgZXJybm8pOworICAgIG5ldGNvbm5fd3JpdGUoY29tLT5jb25uLCBidWZmZXIsIHN0cmxlbigoY29uc3QgY2hhciAqKWJ1ZmZlciksIE5FVENPTk5fQ09QWSk7CisgIH0KKyAgcmV0dXJuIEVTVUNDRVNTOworfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgczhfdAorY29tX25hbWV0b2lkeChzdHJ1Y3QgY29tbWFuZCAqY29tKQoreworICB1bnNpZ25lZCBpbnQgaWR4ID0gbHdpcF9pZl9uYW1ldG9pbmRleChjb20tPmFyZ3NbMF0pOworCisgIGlmIChpZHgpIHsKKyAgICBzbnByaW50ZigoY2hhciAqKWJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICIldSJORVdMSU5FLCBpZHgpOworICAgIG5ldGNvbm5fd3JpdGUoY29tLT5jb25uLCBidWZmZXIsIHN0cmxlbigoY29uc3QgY2hhciAqKWJ1ZmZlciksIE5FVENPTk5fQ09QWSk7CisgIH0gZWxzZSB7CisgICAgc2VuZHN0cigiTm8gaW50ZXJmYWNlIGZvdW5kIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgIH0KKyAgcmV0dXJuIEVTVUNDRVNTOworfQorI2VuZGlmIC8qIExXSVBfU09DS0VUICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyNpZiBMV0lQX0ROUworc3RhdGljIHM4X3QKK2NvbV9nZXRob3N0YnluYW1lKHN0cnVjdCBjb21tYW5kICpjb20pCit7CisgIGlwX2FkZHJfdCBhZGRyOworICBlcnJfdCBlcnIgPSBuZXRjb25uX2dldGhvc3RieW5hbWUoY29tLT5hcmdzWzBdLCAmYWRkcik7CisKKyAgaWYgKGVyciA9PSBFUlJfT0spIHsKKyAgICBpZiAoaXBhZGRyX250b2FfcigmYWRkciwgKGNoYXIgKilidWZmZXIsIHNpemVvZihidWZmZXIpKSkgeworICAgICAgc2VuZHN0cigiSG9zdCBmb3VuZDogIiwgY29tLT5jb25uKTsKKyAgICAgIHNlbmRzdHIoKGNoYXIgKilidWZmZXIsIGNvbS0+Y29ubik7CisgICAgICBzZW5kc3RyKE5FV0xJTkUsIGNvbS0+Y29ubik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2VuZHN0cigiaXBhZGRyX250b2FfciBmYWlsZWQiLCBjb20tPmNvbm4pOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICBzZW5kc3RyKCJObyBob3N0IGZvdW5kIk5FV0xJTkUsIGNvbS0+Y29ubik7CisgIH0KKyAgcmV0dXJuIEVTVUNDRVNTOworfQorI2VuZGlmIC8qIExXSVBfRE5TICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBzOF90Citjb21faGVscChzdHJ1Y3QgY29tbWFuZCAqY29tKQoreworICBzZW5kc3RyKGhlbHBfbXNnMSwgY29tLT5jb25uKTsKKyAgc2VuZHN0cihoZWxwX21zZzIsIGNvbS0+Y29ubik7CisgIHNlbmRzdHIoaGVscF9tc2czLCBjb20tPmNvbm4pOworICByZXR1cm4gRVNVQ0NFU1M7Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBzOF90CitwYXJzZV9jb21tYW5kKHN0cnVjdCBjb21tYW5kICpjb20sIHUzMl90IGxlbikKK3sKKyAgdTE2X3QgaTsKKyAgdTE2X3QgYnVmcDsKKworICBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgIm9wZW4iLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX29wZW47CisgICAgY29tLT5uYXJncyA9IDI7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgImxzdG4iLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX2xzdG47CisgICAgY29tLT5uYXJncyA9IDE7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgImFjcHQiLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX2FjcHQ7CisgICAgY29tLT5uYXJncyA9IDE7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgImNsb3MiLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX2Nsb3M7CisgICAgY29tLT5uYXJncyA9IDE7CisjaWYgTFdJUF9TVEFUUworICB9IGVsc2UgaWYgKHN0cm5jbXAoKGNvbnN0IGNoYXIgKilidWZmZXIsICJzdGF0IiwgNCkgPT0gMCkgeworICAgIGNvbS0+ZXhlYyA9IGNvbV9zdGF0OworICAgIGNvbS0+bmFyZ3MgPSAwOworI2VuZGlmCisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgInNlbmQiLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX3NlbmQ7CisgICAgY29tLT5uYXJncyA9IDI7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgInJlY3YiLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX3JlY3Y7CisgICAgY29tLT5uYXJncyA9IDE7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgInVkcGMiLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX3VkcGM7CisgICAgY29tLT5uYXJncyA9IDM7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgInVkcGIiLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX3VkcGI7CisgICAgY29tLT5uYXJncyA9IDI7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgInVkcGwiLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX3VkcGw7CisgICAgY29tLT5uYXJncyA9IDM7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgInVkcG4iLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX3VkcG47CisgICAgY29tLT5uYXJncyA9IDM7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgInVzbmQiLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX3VzbmQ7CisgICAgY29tLT5uYXJncyA9IDI7CisjaWYgTFdJUF9TT0NLRVQKKyAgfSBlbHNlIGlmIChzdHJuY21wKChjb25zdCBjaGFyICopYnVmZmVyLCAiaWR4dG9uYW1lIiwgOSkgPT0gMCkgeworICAgIGNvbS0+ZXhlYyA9IGNvbV9pZHh0b25hbWU7CisgICAgY29tLT5uYXJncyA9IDE7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgIm5hbWV0b2lkeCIsIDkpID09IDApIHsKKyAgICBjb20tPmV4ZWMgPSBjb21fbmFtZXRvaWR4OworICAgIGNvbS0+bmFyZ3MgPSAxOworI2VuZGlmIC8qIExXSVBfU09DS0VUICovCisjaWYgTFdJUF9ETlMKKyAgfSBlbHNlIGlmIChzdHJuY21wKChjb25zdCBjaGFyICopYnVmZmVyLCAiZ2V0aG9zdG5tIiwgOSkgPT0gMCkgeworICAgIGNvbS0+ZXhlYyA9IGNvbV9nZXRob3N0YnluYW1lOworICAgIGNvbS0+bmFyZ3MgPSAxOworI2VuZGlmIC8qIExXSVBfRE5TICovCisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgImhlbHAiLCA0KSA9PSAwKSB7CisgICAgY29tLT5leGVjID0gY29tX2hlbHA7CisgICAgY29tLT5uYXJncyA9IDA7CisgIH0gZWxzZSBpZiAoc3RybmNtcCgoY29uc3QgY2hhciAqKWJ1ZmZlciwgInF1aXQiLCA0KSA9PSAwKSB7CisgICAgcHJpbnRmKCJxdWl0Ik5FV0xJTkUpOworICAgIHJldHVybiBFQ0xPU0VEOworICB9IGVsc2UgeworICAgIHJldHVybiBFU1lOVEFYOworICB9CisKKyAgaWYgKGNvbS0+bmFyZ3MgPT0gMCkgeworICAgIHJldHVybiBFU1VDQ0VTUzsKKyAgfQorICBidWZwID0gMDsKKyAgZm9yKDsgYnVmcCA8IGxlbiAmJiBidWZmZXJbYnVmcF0gIT0gJyAnOyBidWZwKyspOworICBmb3IoaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgZm9yKDsgYnVmcCA8IGxlbiAmJiBidWZmZXJbYnVmcF0gPT0gJyAnOyBidWZwKyspOworICAgIGlmIChidWZmZXJbYnVmcF0gPT0gJ1xyJyB8fAorICAgICAgIGJ1ZmZlcltidWZwXSA9PSAnXG4nKSB7CisgICAgICBidWZmZXJbYnVmcF0gPSAwOworICAgICAgaWYgKGkgPCBjb20tPm5hcmdzIC0gMSkgeworICAgICAgICByZXR1cm4gRVRPT0ZFVzsKKyAgICAgIH0KKyAgICAgIGlmIChpID4gY29tLT5uYXJncyAtIDEpIHsKKyAgICAgICAgcmV0dXJuIEVUT09NQU5ZOworICAgICAgfQorICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmIChidWZwID4gbGVuKSB7CisgICAgICByZXR1cm4gRVRPT0ZFVzsKKyAgICB9CisgICAgY29tLT5hcmdzW2ldID0gKGNoYXIgKikmYnVmZmVyW2J1ZnBdOworICAgIGZvcig7IGJ1ZnAgPCBsZW4gJiYgYnVmZmVyW2J1ZnBdICE9ICcgJyAmJiBidWZmZXJbYnVmcF0gIT0gJ1xyJyAmJgorICAgICAgYnVmZmVyW2J1ZnBdICE9ICdcbic7IGJ1ZnArKykgeworICAgICAgaWYgKGJ1ZmZlcltidWZwXSA9PSAnXFwnKSB7CisgICAgICAgIGJ1ZmZlcltidWZwXSA9ICcgJzsKKyAgICAgIH0KKyAgICB9CisgICAgaWYgKGJ1ZnAgPiBsZW4pIHsKKyAgICAgIHJldHVybiBFU1lOVEFYOworICAgIH0KKyAgICBidWZmZXJbYnVmcF0gPSAwOworICAgIGJ1ZnArKzsKKyAgICBpZiAoaSA9PSBjb20tPm5hcmdzIC0gMSkgeworICAgICAgYnJlYWs7CisgICAgfQorCisgIH0KKworICByZXR1cm4gRVNVQ0NFU1M7Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyB2b2lkCitzaGVsbF9lcnJvcihzOF90IGVyciwgc3RydWN0IG5ldGNvbm4gKmNvbm4pCit7CisgIHN3aXRjaCAoZXJyKSB7CisgIGNhc2UgRVNZTlRBWDoKKyAgICBzZW5kc3RyKCIjIyBTeW50YXggZXJyb3IiTkVXTElORSwgY29ubik7CisgICAgYnJlYWs7CisgIGNhc2UgRVRPT0ZFVzoKKyAgICBzZW5kc3RyKCIjIyBUb28gZmV3IGFyZ3VtZW50cyB0byBjb21tYW5kIGdpdmVuIk5FV0xJTkUsIGNvbm4pOworICAgIGJyZWFrOworICBjYXNlIEVUT09NQU5ZOgorICAgIHNlbmRzdHIoIiMjIFRvbyBtYW55IGFyZ3VtZW50cyB0byBjb21tYW5kIGdpdmVuIk5FV0xJTkUsIGNvbm4pOworICAgIGJyZWFrOworICBjYXNlIEVDTE9TRUQ6CisgICAgc2VuZHN0cigiIyMgQ29ubmVjdGlvbiBjbG9zZWQiTkVXTElORSwgY29ubik7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgLyogdW5rbm93biBlcnJvciwgZG9uJ3QgYXNzZXJ0IGhlcmUgKi8KKyAgICBicmVhazsKKyAgfQorfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgdm9pZAorcHJvbXB0KHN0cnVjdCBuZXRjb25uICpjb25uKQoreworICBzZW5kc3RyKCI+ICIsIGNvbm4pOworfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgdm9pZAorc2hlbGxfbWFpbihzdHJ1Y3QgbmV0Y29ubiAqY29ubikKK3sKKyAgc3RydWN0IHBidWYgKnA7CisgIHUxNl90IGxlbiA9IDAsIGN1cl9sZW47CisgIHN0cnVjdCBjb21tYW5kIGNvbTsKKyAgczhfdCBlcnI7CisgIGludCBpOworICBlcnJfdCByZXQ7CisjaWYgU0hFTExfRUNITworICB2b2lkICplY2hvbWVtOworI2VuZGlmIC8qIFNIRUxMX0VDSE8gKi8KKworICBkbyB7CisgICAgcmV0ID0gbmV0Y29ubl9yZWN2X3RjcF9wYnVmKGNvbm4sICZwKTsKKyAgICBpZiAocmV0ID09IEVSUl9PSykgeworICAgICAgcGJ1Zl9jb3B5X3BhcnRpYWwocCwgJmJ1ZmZlcltsZW5dLCAodTE2X3QpKEJVRlNJWkUgLSBsZW4pLCAwKTsKKyAgICAgIGN1cl9sZW4gPSBwLT50b3RfbGVuOworICAgICAgbGVuID0gKHUxNl90KShsZW4gKyBjdXJfbGVuKTsKKyAgICAgIGlmICgobGVuIDwgY3VyX2xlbikgfHwgKGxlbiA+IEJVRlNJWkUpKSB7CisgICAgICAgIGxlbiA9IEJVRlNJWkU7CisgICAgICB9CisjaWYgU0hFTExfRUNITworICAgICAgZWNob21lbSA9IG1lbV9tYWxsb2MoY3VyX2xlbik7CisgICAgICBpZiAoZWNob21lbSAhPSBOVUxMKSB7CisgICAgICAgIHBidWZfY29weV9wYXJ0aWFsKHAsIGVjaG9tZW0sIGN1cl9sZW4sIDApOworICAgICAgICBuZXRjb25uX3dyaXRlKGNvbm4sIGVjaG9tZW0sIGN1cl9sZW4sIE5FVENPTk5fQ09QWSk7CisgICAgICAgIG1lbV9mcmVlKGVjaG9tZW0pOworICAgICAgfQorI2VuZGlmIC8qIFNIRUxMX0VDSE8gKi8KKyAgICAgIHBidWZfZnJlZShwKTsKKyAgICAgIGlmICgoKGxlbiA+IDApICYmICgoYnVmZmVyW2xlbi0xXSA9PSAnXHInKSB8fCAoYnVmZmVyW2xlbi0xXSA9PSAnXG4nKSkpIHx8CisgICAgICAgICAgKGxlbiA+PSBCVUZTSVpFKSkgeworICAgICAgICBpZiAoYnVmZmVyWzBdICE9IDB4ZmYgJiYKKyAgICAgICAgICAgYnVmZmVyWzFdICE9IDB4ZmUpIHsKKyAgICAgICAgICBlcnIgPSBwYXJzZV9jb21tYW5kKCZjb20sIGxlbik7CisgICAgICAgICAgaWYgKGVyciA9PSBFU1VDQ0VTUykgeworICAgICAgICAgICAgY29tLmNvbm4gPSBjb25uOworICAgICAgICAgICAgZXJyID0gY29tLmV4ZWMoJmNvbSk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChlcnIgPT0gRUNMT1NFRCkgeworICAgICAgICAgICAgcHJpbnRmKCJDbG9zZWQiTkVXTElORSk7CisgICAgICAgICAgICBzaGVsbF9lcnJvcihlcnIsIGNvbm4pOworICAgICAgICAgICAgZ290byBjbG9zZTsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGVyciAhPSBFU1VDQ0VTUykgeworICAgICAgICAgICAgc2hlbGxfZXJyb3IoZXJyLCBjb25uKTsKKyAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgc2VuZHN0cihORVdMSU5FIE5FV0xJTkUKKyAgICAgICAgICAgICAgICAgICJsd0lQIHNpbXBsZSBpbnRlcmFjdGl2ZSBzaGVsbC4iTkVXTElORQorICAgICAgICAgICAgICAgICAgIihjKSBDb3B5cmlnaHQgMjAwMSwgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4iTkVXTElORQorICAgICAgICAgICAgICAgICAgIldyaXR0ZW4gYnkgQWRhbSBEdW5rZWxzLiJORVdMSU5FCisgICAgICAgICAgICAgICAgICAiRm9yIGhlbHAsIHRyeSB0aGUgXCJoZWxwXCIgY29tbWFuZC4iTkVXTElORSwgY29ubik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJldCA9PSBFUlJfT0spIHsKKyAgICAgICAgICBwcm9tcHQoY29ubik7CisgICAgICAgIH0KKyAgICAgICAgbGVuID0gMDsKKyAgICAgIH0KKyAgICB9CisgIH0gd2hpbGUgKHJldCA9PSBFUlJfT0spOworICBwcmludGYoImVyciAlcyJORVdMSU5FLCBsd2lwX3N0cmVycihyZXQpKTsKKworY2xvc2U6CisgIG5ldGNvbm5fY2xvc2UoY29ubik7CisKKyAgZm9yKGkgPSAwOyBpIDwgTkNPTk5TOyBpKyspIHsKKyAgICBpZiAoY29ubnNbaV0gIT0gTlVMTCkgeworICAgICAgbmV0Y29ubl9kZWxldGUoY29ubnNbaV0pOworICAgIH0KKyAgICBjb25uc1tpXSA9IE5VTEw7CisgIH0KK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIHZvaWQKK3NoZWxsX3RocmVhZCh2b2lkICphcmcpCit7CisgIHN0cnVjdCBuZXRjb25uICpjb25uLCAqbmV3Y29ubjsKKyAgZXJyX3QgZXJyOworICBMV0lQX1VOVVNFRF9BUkcoYXJnKTsKKworI2lmIExXSVBfSVBWNgorICBjb25uID0gbmV0Y29ubl9uZXcoTkVUQ09OTl9UQ1BfSVBWNik7CisgIExXSVBfRVJST1IoInNoZWxsOiBpbnZhbGlkIGNvbm4iLCAoY29ubiAhPSBOVUxMKSwgcmV0dXJuOyk7CisgIGVyciA9IG5ldGNvbm5fYmluZChjb25uLCBJUDZfQUREUl9BTlksIDIzKTsKKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICBjb25uID0gbmV0Y29ubl9uZXcoTkVUQ09OTl9UQ1ApOworICBMV0lQX0VSUk9SKCJzaGVsbDogaW52YWxpZCBjb25uIiwgKGNvbm4gIT0gTlVMTCksIHJldHVybjspOworICBlcnIgPSBuZXRjb25uX2JpbmQoY29ubiwgSVBfQUREUl9BTlksIDIzKTsKKyNlbmRpZiAvKiBMV0lQX0lQVjYgKi8KKyAgTFdJUF9FUlJPUigic2hlbGw6IG5ldGNvbm5fYmluZCBmYWlsZWQiLCAoZXJyID09IEVSUl9PSyksIG5ldGNvbm5fZGVsZXRlKGNvbm4pOyByZXR1cm47KTsKKyAgZXJyID0gbmV0Y29ubl9saXN0ZW4oY29ubik7CisgIExXSVBfRVJST1IoInNoZWxsOiBuZXRjb25uX2xpc3RlbiBmYWlsZWQiLCAoZXJyID09IEVSUl9PSyksIG5ldGNvbm5fZGVsZXRlKGNvbm4pOyByZXR1cm47KTsKKworICB3aGlsZSAoMSkgeworICAgIGVyciA9IG5ldGNvbm5fYWNjZXB0KGNvbm4sICZuZXdjb25uKTsKKyAgICBpZiAoZXJyID09IEVSUl9PSykgeworICAgICAgc2hlbGxfbWFpbihuZXdjb25uKTsKKyAgICAgIG5ldGNvbm5fZGVsZXRlKG5ld2Nvbm4pOworICAgIH0KKyAgfQorfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCit2b2lkCitzaGVsbF9pbml0KHZvaWQpCit7CisgIHN5c190aHJlYWRfbmV3KCJzaGVsbF90aHJlYWQiLCBzaGVsbF90aHJlYWQsIE5VTEwsIERFRkFVTFRfVEhSRUFEX1NUQUNLU0laRSwgREVGQVVMVF9USFJFQURfUFJJTyk7Cit9CisKKyNlbmRpZiAvKiBMV0lQX05FVENPTk4gJiYgTFdJUF9UQ1AgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy9zaGVsbC9zaGVsbC5oIGIvY29udHJpYi9hcHBzL3NoZWxsL3NoZWxsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJhOWQxOQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9zaGVsbC9zaGVsbC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworI2lmbmRlZiBMV0lQX1NIRUxMX0gKKyNkZWZpbmUgTFdJUF9TSEVMTF9ICisKK3ZvaWQgc2hlbGxfaW5pdCh2b2lkKTsKKworI2VuZGlmIC8qIExXSVBfU0hFTExfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL3NvY2tldF9leGFtcGxlcy9zb2NrZXRfZXhhbXBsZXMuYyBiL2NvbnRyaWIvYXBwcy9zb2NrZXRfZXhhbXBsZXMvc29ja2V0X2V4YW1wbGVzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTYwMTU2ZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy9zb2NrZXRfZXhhbXBsZXMvc29ja2V0X2V4YW1wbGVzLmMKQEAgLTAsMCArMSw2ODAgQEAKKworI2luY2x1ZGUgInNvY2tldF9leGFtcGxlcy5oIgorCisjaW5jbHVkZSAibHdpcC9vcHQuaCIKKworI2lmIExXSVBfU09DS0VUICYmIChMV0lQX0lQVjQgfHwgTFdJUF9JUFY2KQorCisjaW5jbHVkZSAibHdpcC9zb2NrZXRzLmgiCisjaW5jbHVkZSAibHdpcC9zeXMuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpZm5kZWYgU09DS19UQVJHRVRfSE9TVDQKKyNkZWZpbmUgU09DS19UQVJHRVRfSE9TVDQgICIxOTIuMTY4LjAuMSIKKyNlbmRpZgorCisjaWZuZGVmIFNPQ0tfVEFSR0VUX0hPU1Q2CisjZGVmaW5lIFNPQ0tfVEFSR0VUX0hPU1Q2ICAiRkU4MDo6MTI6MzRGRjpGRTU2Ojc4QUIiCisjZW5kaWYKKworI2lmbmRlZiBTT0NLX1RBUkdFVF9QT1JUCisjZGVmaW5lIFNPQ0tfVEFSR0VUX1BPUlQgIDgwCisjZW5kaWYKKworI2lmbmRlZiBTT0NLX1RBUkdFVF9NQVhIVFRQUEFHRVNJWkUKKyNkZWZpbmUgU09DS19UQVJHRVRfTUFYSFRUUFBBR0VTSVpFIDEwMjQKKyNlbmRpZgorCisjaWZuZGVmIFNPQ0tFVF9FWEFNUExFU19SVU5fUEFSQUxMRUwKKyNkZWZpbmUgU09DS0VUX0VYQU1QTEVTX1JVTl9QQVJBTExFTCAwCisjZW5kaWYKKworc3RhdGljIGNvbnN0IHU4X3QgY21wYnVmWzhdID0gezB4YWIsIDB4YWIsIDB4YWIsIDB4YWIsIDB4YWIsIDB4YWIsIDB4YWIsIDB4YWJ9OworCisvKiBhIGhlbHBlciBzdHJ1Y3QgdG8gZW5zdXJlIG1lbW9yeSBiZWZvcmUvYWZ0ZXIgZmRfc2V0IGlzIG5vdCB0b3VjaGVkICovCit0eXBlZGVmIHN0cnVjdCBfeHgKK3sKKyAgdThfdCBidWYxWzhdOworICBmZF9zZXQgcmVhZHNldDsKKyAgdThfdCBidWYyWzhdOworICBmZF9zZXQgd3JpdGVzZXQ7CisgIHU4X3QgYnVmM1s4XTsKKyAgZmRfc2V0IGVycnNldDsKKyAgdThfdCBidWY0WzhdOworfSBmZHNldHM7CisKKyNkZWZpbmUgSU5JVF9GRFNFVFMoc2V0cykgZG8geyBcCisgIG1lbXNldCgoc2V0cyktPmJ1ZjEsIDB4YWIsIDgpOyBcCisgIG1lbXNldCgoc2V0cyktPmJ1ZjIsIDB4YWIsIDgpOyBcCisgIG1lbXNldCgoc2V0cyktPmJ1ZjMsIDB4YWIsIDgpOyBcCisgIG1lbXNldCgoc2V0cyktPmJ1ZjQsIDB4YWIsIDgpOyBcCit9d2hpbGUoMCkKKworI2RlZmluZSBDSEVDS19GRFNFVFMoc2V0cykgZG8geyBcCisgIExXSVBfQVNTRVJUKCJidWYxIGZhaWwiLCAhbWVtY21wKChzZXRzKS0+YnVmMSwgY21wYnVmLCA4KSk7IFwKKyAgTFdJUF9BU1NFUlQoImJ1ZjIgZmFpbCIsICFtZW1jbXAoKHNldHMpLT5idWYyLCBjbXBidWYsIDgpKTsgXAorICBMV0lQX0FTU0VSVCgiYnVmMyBmYWlsIiwgIW1lbWNtcCgoc2V0cyktPmJ1ZjMsIGNtcGJ1ZiwgOCkpOyBcCisgIExXSVBfQVNTRVJUKCJidWY0IGZhaWwiLCAhbWVtY21wKChzZXRzKS0+YnVmNCwgY21wYnVmLCA4KSk7IFwKK313aGlsZSgwKQorCitzdGF0aWMgaXBfYWRkcl90IGRzdGFkZHI7CisKKy8qKiBUaGlzIGlzIGFuIGV4YW1wbGUgZnVuY3Rpb24gdGhhdCB0ZXN0cworICAgIGJsb2NraW5nLSBhbmQgbm9uYmxvY2tpbmcgY29ubmVjdC4gKi8KK3N0YXRpYyB2b2lkCitzb2NrZXhfbm9uYmxvY2tpbmdfY29ubmVjdCh2b2lkICphcmcpCit7CisjaWYgTFdJUF9TT0NLRVRfU0VMRUNUCisgIGludCBzOworICBpbnQgcmV0OworICBpbnQgb3B0OworI2lmIExXSVBfSVBWNgorICBzdHJ1Y3Qgc29ja2FkZHJfaW42IGFkZHI7CisjZWxzZSAvKiBMV0lQX0lQVjYgKi8KKyAgc3RydWN0IHNvY2thZGRyX2luIGFkZHI7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisgIGZkc2V0cyBzZXRzOworICBzdHJ1Y3QgdGltZXZhbCB0djsKKyAgdTMyX3QgdGlja3NfYSwgdGlja3NfYjsKKyAgaW50IGVycjsKKyAgY29uc3QgaXBfYWRkcl90ICppcGFkZHIgPSAoY29uc3QgaXBfYWRkcl90Kilhcmc7CisgIHN0cnVjdCBwb2xsZmQgZmRzOworICBJTklUX0ZEU0VUUygmc2V0cyk7CisKKyAgLyogc2V0IHVwIGFkZHJlc3MgdG8gY29ubmVjdCB0byAqLworICBtZW1zZXQoJmFkZHIsIDAsIHNpemVvZihhZGRyKSk7CisjaWYgTFdJUF9JUFY2CisgIGFkZHIuc2luNl9sZW4gPSBzaXplb2YoYWRkcik7CisgIGFkZHIuc2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKKyAgYWRkci5zaW42X3BvcnQgPSBQUF9IVE9OUyhTT0NLX1RBUkdFVF9QT1JUKTsKKyAgaW5ldDZfYWRkcl9mcm9tX2lwNmFkZHIoJmFkZHIuc2luNl9hZGRyLCBpcF8yX2lwNihpcGFkZHIpKTsKKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICBhZGRyLnNpbl9sZW4gPSBzaXplb2YoYWRkcik7CisgIGFkZHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7CisgIGFkZHIuc2luX3BvcnQgPSBQUF9IVE9OUyhTT0NLX1RBUkdFVF9QT1JUKTsKKyAgaW5ldF9hZGRyX2Zyb21faXA0YWRkcigmYWRkci5zaW5fYWRkciwgaXBfMl9pcDQoaXBhZGRyKSk7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisKKyAgLyogZmlyc3QgdHJ5IGJsb2NraW5nOiAqLworCisgIC8qIGNyZWF0ZSB0aGUgc29ja2V0ICovCisjaWYgTFdJUF9JUFY2CisgIHMgPSBsd2lwX3NvY2tldChBRl9JTkVUNiwgU09DS19TVFJFQU0sIDApOworI2Vsc2UgLyogTFdJUF9JUFY2ICovCisgIHMgPSBsd2lwX3NvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisgIExXSVBfQVNTRVJUKCJzID49IDAiLCBzID49IDApOworCisgIC8qIGNvbm5lY3QgKi8KKyAgcmV0ID0gbHdpcF9jb25uZWN0KHMsIChzdHJ1Y3Qgc29ja2FkZHIqKSZhZGRyLCBzaXplb2YoYWRkcikpOworICAvKiBzaG91bGQgc3VjY2VlZCAqLworICBMV0lQX0FTU0VSVCgicmV0ID09IDAiLCByZXQgPT0gMCk7CisKKyAgLyogd3JpdGUgc29tZXRoaW5nICovCisgIHJldCA9IGx3aXBfd3JpdGUocywgInRlc3QiLCA0KTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSA0IiwgcmV0ID09IDQpOworCisgIC8qIGNsb3NlICovCisgIHJldCA9IGx3aXBfY2xvc2Uocyk7CisgIExXSVBfQVNTRVJUKCJyZXQgPT0gMCIsIHJldCA9PSAwKTsKKworICAvKiBub3cgdHJ5IG5vbmJsb2NraW5nIGFuZCBjbG9zZSBiZWZvcmUgYmVpbmcgY29ubmVjdGVkICovCisKKyAgLyogY3JlYXRlIHRoZSBzb2NrZXQgKi8KKyNpZiBMV0lQX0lQVjYKKyAgcyA9IGx3aXBfc29ja2V0KEFGX0lORVQ2LCBTT0NLX1NUUkVBTSwgMCk7CisjZWxzZSAvKiBMV0lQX0lQVjYgKi8KKyAgcyA9IGx3aXBfc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKyNlbmRpZiAvKiBMV0lQX0lQVjYgKi8KKyAgTFdJUF9BU1NFUlQoInMgPj0gMCIsIHMgPj0gMCk7CisgIC8qIG5vbmJsb2NraW5nICovCisgIG9wdCA9IGx3aXBfZmNudGwocywgRl9HRVRGTCwgMCk7CisgIExXSVBfQVNTRVJUKCJyZXQgIT0gLTEiLCByZXQgIT0gLTEpOworICBvcHQgfD0gT19OT05CTE9DSzsKKyAgcmV0ID0gbHdpcF9mY250bChzLCBGX1NFVEZMLCBvcHQpOworICBMV0lQX0FTU0VSVCgicmV0ICE9IC0xIiwgcmV0ICE9IC0xKTsKKyAgLyogY29ubmVjdCAqLworICByZXQgPSBsd2lwX2Nvbm5lY3QocywgKHN0cnVjdCBzb2NrYWRkciopJmFkZHIsIHNpemVvZihhZGRyKSk7CisgIC8qIHNob3VsZCBoYXZlIGFuIGVycm9yOiAiaW5wcm9ncmVzcyIgKi8KKyAgTFdJUF9BU1NFUlQoInJldCA9PSAtMSIsIHJldCA9PSAtMSk7CisgIGVyciA9IGVycm5vOworICBMV0lQX0FTU0VSVCgiZXJybm8gPT0gRUlOUFJPR1JFU1MiLCBlcnIgPT0gRUlOUFJPR1JFU1MpOworICAvKiBjbG9zZSAqLworICByZXQgPSBsd2lwX2Nsb3NlKHMpOworICBMV0lQX0FTU0VSVCgicmV0ID09IDAiLCByZXQgPT0gMCk7CisgIC8qIHRyeSB0byBjbG9zZSBhZ2Fpbiwgc2hvdWxkIGZhaWwgd2l0aCBFQkFERiAqLworICByZXQgPSBsd2lwX2Nsb3NlKHMpOworICBMV0lQX0FTU0VSVCgicmV0ID09IC0xIiwgcmV0ID09IC0xKTsKKyAgZXJyID0gZXJybm87CisgIExXSVBfQVNTRVJUKCJlcnJubyA9PSBFQkFERiIsIGVyciA9PSBFQkFERik7CisgIHByaW50ZigiY2xvc2luZyBzb2NrZXQgaW4gbm9uYmxvY2tpbmcgY29ubmVjdCBzdWNjZWVkZWRcbiIpOworCisgIC8qIG5vdyB0cnkgbm9uYmxvY2tpbmcsIGNvbm5lY3Qgc2hvdWxkIHN1Y2NlZWQ6CisgICAgIHRoaXMgdGVzdCBvbmx5IHdvcmtzIGlmIGl0IGlzIGZhc3QgZW5vdWdoLCBpLmUuIG5vIGJyZWFrcG9pbnRzLCBwbGVhc2UhICovCisKKyAgLyogY3JlYXRlIHRoZSBzb2NrZXQgKi8KKyNpZiBMV0lQX0lQVjYKKyAgcyA9IGx3aXBfc29ja2V0KEFGX0lORVQ2LCBTT0NLX1NUUkVBTSwgMCk7CisjZWxzZSAvKiBMV0lQX0lQVjYgKi8KKyAgcyA9IGx3aXBfc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKyNlbmRpZiAvKiBMV0lQX0lQVjYgKi8KKyAgTFdJUF9BU1NFUlQoInMgPj0gMCIsIHMgPj0gMCk7CisKKyAgLyogbm9uYmxvY2tpbmcgKi8KKyAgb3B0ID0gMTsKKyAgcmV0ID0gbHdpcF9pb2N0bChzLCBGSU9OQklPLCAmb3B0KTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSAwIiwgcmV0ID09IDApOworCisgIC8qIGNvbm5lY3QgKi8KKyAgcmV0ID0gbHdpcF9jb25uZWN0KHMsIChzdHJ1Y3Qgc29ja2FkZHIqKSZhZGRyLCBzaXplb2YoYWRkcikpOworICAvKiBzaG91bGQgaGF2ZSBhbiBlcnJvcjogImlucHJvZ3Jlc3MiICovCisgIExXSVBfQVNTRVJUKCJyZXQgPT0gLTEiLCByZXQgPT0gLTEpOworICBlcnIgPSBlcnJubzsKKyAgTFdJUF9BU1NFUlQoImVycm5vID09IEVJTlBST0dSRVNTIiwgZXJyID09IEVJTlBST0dSRVNTKTsKKworICAvKiB3cml0ZSBzaG91bGQgZmFpbCwgdG9vICovCisgIHJldCA9IGx3aXBfd3JpdGUocywgInRlc3QiLCA0KTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSAtMSIsIHJldCA9PSAtMSk7CisgIGVyciA9IGVycm5vOworICBMV0lQX0FTU0VSVCgiZXJybm8gPT0gRUlOUFJPR1JFU1MiLCBlcnIgPT0gRUlOUFJPR1JFU1MpOworCisgIENIRUNLX0ZEU0VUUygmc2V0cyk7CisgIEZEX1pFUk8oJnNldHMucmVhZHNldCk7CisgIENIRUNLX0ZEU0VUUygmc2V0cyk7CisgIEZEX1NFVChzLCAmc2V0cy5yZWFkc2V0KTsKKyAgQ0hFQ0tfRkRTRVRTKCZzZXRzKTsKKyAgRkRfWkVSTygmc2V0cy53cml0ZXNldCk7CisgIENIRUNLX0ZEU0VUUygmc2V0cyk7CisgIEZEX1NFVChzLCAmc2V0cy53cml0ZXNldCk7CisgIENIRUNLX0ZEU0VUUygmc2V0cyk7CisgIEZEX1pFUk8oJnNldHMuZXJyc2V0KTsKKyAgQ0hFQ0tfRkRTRVRTKCZzZXRzKTsKKyAgRkRfU0VUKHMsICZzZXRzLmVycnNldCk7CisgIENIRUNLX0ZEU0VUUygmc2V0cyk7CisgIHR2LnR2X3NlYyA9IDA7CisgIHR2LnR2X3VzZWMgPSAwOworICAvKiBzZWxlY3Qgd2l0aG91dCB3YWl0aW5nIHNob3VsZCBmYWlsICovCisgIHJldCA9IGx3aXBfc2VsZWN0KHMgKyAxLCAmc2V0cy5yZWFkc2V0LCAmc2V0cy53cml0ZXNldCwgJnNldHMuZXJyc2V0LCAmdHYpOworICBDSEVDS19GRFNFVFMoJnNldHMpOworICBMV0lQX0FTU0VSVCgicmV0ID09IDAiLCByZXQgPT0gMCk7CisgIExXSVBfQVNTRVJUKCIhRkRfSVNTRVQocywgJndyaXRlc2V0KSIsICFGRF9JU1NFVChzLCAmc2V0cy53cml0ZXNldCkpOworICBMV0lQX0FTU0VSVCgiIUZEX0lTU0VUKHMsICZyZWFkc2V0KSIsICFGRF9JU1NFVChzLCAmc2V0cy5yZWFkc2V0KSk7CisgIExXSVBfQVNTRVJUKCIhRkRfSVNTRVQocywgJmVycnNldCkiLCAhRkRfSVNTRVQocywgJnNldHMuZXJyc2V0KSk7CisKKyAgZmRzLmZkID0gczsKKyAgZmRzLmV2ZW50cyA9IFBPTExJTnxQT0xMT1VUOworICBmZHMucmV2ZW50cyA9IDA7CisgIHJldCA9IGx3aXBfcG9sbCgmZmRzLCAxLCAwKTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSAwIiwgcmV0ID09IDApOworICBMV0lQX0FTU0VSVCgiZmRzLnJldmVudHMgPT0gMCIsIGZkcy5yZXZlbnRzID09IDApOworCisgIEZEX1pFUk8oJnNldHMucmVhZHNldCk7CisgIEZEX1NFVChzLCAmc2V0cy5yZWFkc2V0KTsKKyAgRkRfWkVSTygmc2V0cy53cml0ZXNldCk7CisgIEZEX1NFVChzLCAmc2V0cy53cml0ZXNldCk7CisgIEZEX1pFUk8oJnNldHMuZXJyc2V0KTsKKyAgRkRfU0VUKHMsICZzZXRzLmVycnNldCk7CisgIHRpY2tzX2EgPSBzeXNfbm93KCk7CisgIC8qIHNlbGVjdCB3aXRoIHdhaXRpbmcgc2hvdWxkIHN1Y2NlZWQgKi8KKyAgcmV0ID0gbHdpcF9zZWxlY3QocyArIDEsICZzZXRzLnJlYWRzZXQsICZzZXRzLndyaXRlc2V0LCAmc2V0cy5lcnJzZXQsIE5VTEwpOworICB0aWNrc19iID0gc3lzX25vdygpOworICBMV0lQX0FTU0VSVCgicmV0ID09IDEiLCByZXQgPT0gMSk7CisgIExXSVBfQVNTRVJUKCJGRF9JU1NFVChzLCAmd3JpdGVzZXQpIiwgRkRfSVNTRVQocywgJnNldHMud3JpdGVzZXQpKTsKKyAgTFdJUF9BU1NFUlQoIiFGRF9JU1NFVChzLCAmcmVhZHNldCkiLCAhRkRfSVNTRVQocywgJnNldHMucmVhZHNldCkpOworICBMV0lQX0FTU0VSVCgiIUZEX0lTU0VUKHMsICZlcnJzZXQpIiwgIUZEX0lTU0VUKHMsICZzZXRzLmVycnNldCkpOworCisgIGZkcy5mZCA9IHM7CisgIGZkcy5ldmVudHMgPSBQT0xMSU58UE9MTE9VVDsKKyAgZmRzLnJldmVudHMgPSAwOworICByZXQgPSBsd2lwX3BvbGwoJmZkcywgMSwgMCk7CisgIExXSVBfQVNTRVJUKCJyZXQgPT0gMSIsIHJldCA9PSAxKTsKKyAgTFdJUF9BU1NFUlQoImZkcy5yZXZlbnRzICYgUE9MTE9VVCIsIGZkcy5yZXZlbnRzICYgUE9MTE9VVCk7CisKKyAgLyogbm93IHdyaXRlIHNob3VsZCBzdWNjZWVkICovCisgIHJldCA9IGx3aXBfd3JpdGUocywgInRlc3QiLCA0KTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSA0IiwgcmV0ID09IDQpOworCisgIC8qIGNsb3NlICovCisgIHJldCA9IGx3aXBfY2xvc2Uocyk7CisgIExXSVBfQVNTRVJUKCJyZXQgPT0gMCIsIHJldCA9PSAwKTsKKworICBwcmludGYoInNlbGVjdCgpIG5lZWRlZCAlZCB0aWNrcyB0byByZXR1cm4gd3JpdGFibGVcbiIsIChpbnQpKHRpY2tzX2IgLSB0aWNrc19hKSk7CisKKworICAvKiBub3cgdHJ5IG5vbmJsb2NraW5nIHRvIGludmFsaWQgYWRkcmVzczoKKyAgICAgdGhpcyB0ZXN0IG9ubHkgd29ya3MgaWYgaXQgaXMgZmFzdCBlbm91Z2gsIGkuZS4gbm8gYnJlYWtwb2ludHMsIHBsZWFzZSEgKi8KKworICAvKiBjcmVhdGUgdGhlIHNvY2tldCAqLworI2lmIExXSVBfSVBWNgorICBzID0gbHdpcF9zb2NrZXQoQUZfSU5FVDYsIFNPQ0tfU1RSRUFNLCAwKTsKKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICBzID0gbHdpcF9zb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIDApOworI2VuZGlmIC8qIExXSVBfSVBWNiAqLworICBMV0lQX0FTU0VSVCgicyA+PSAwIiwgcyA+PSAwKTsKKworICAvKiBub25ibG9ja2luZyAqLworICBvcHQgPSAxOworICByZXQgPSBsd2lwX2lvY3RsKHMsIEZJT05CSU8sICZvcHQpOworICBMV0lQX0FTU0VSVCgicmV0ID09IDAiLCByZXQgPT0gMCk7CisKKyNpZiBMV0lQX0lQVjYKKyAgYWRkci5zaW42X2FkZHIudW4udThfYWRkclswXSsrOyAvKiB0aGlzIHNob3VsZCByZXN1bHQgaW4gYW4gaW52YWxpZCBhZGRyZXNzICovCisjZWxzZSAvKiBMV0lQX0lQVjYgKi8KKyAgYWRkci5zaW5fYWRkci5zX2FkZHIrKzsgLyogdGhpcyBzaG91bGQgcmVzdWx0IGluIGFuIGludmFsaWQgYWRkcmVzcyAqLworI2VuZGlmIC8qIExXSVBfSVBWNiAqLworCisgIC8qIGNvbm5lY3QgKi8KKyAgcmV0ID0gbHdpcF9jb25uZWN0KHMsIChzdHJ1Y3Qgc29ja2FkZHIqKSZhZGRyLCBzaXplb2YoYWRkcikpOworICAvKiBzaG91bGQgaGF2ZSBhbiBlcnJvcjogImlucHJvZ3Jlc3MiICovCisgIExXSVBfQVNTRVJUKCJyZXQgPT0gLTEiLCByZXQgPT0gLTEpOworICBlcnIgPSBlcnJubzsKKyAgTFdJUF9BU1NFUlQoImVycm5vID09IEVJTlBST0dSRVNTIiwgZXJyID09IEVJTlBST0dSRVNTKTsKKworICAvKiB3cml0ZSBzaG91bGQgZmFpbCwgdG9vICovCisgIHJldCA9IGx3aXBfd3JpdGUocywgInRlc3QiLCA0KTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSAtMSIsIHJldCA9PSAtMSk7CisgIGVyciA9IGVycm5vOworICBMV0lQX0FTU0VSVCgiZXJybm8gPT0gRUlOUFJPR1JFU1MiLCBlcnIgPT0gRUlOUFJPR1JFU1MpOworICBMV0lQX1VOVVNFRF9BUkcoZXJyKTsKKworICBGRF9aRVJPKCZzZXRzLnJlYWRzZXQpOworICBGRF9TRVQocywgJnNldHMucmVhZHNldCk7CisgIEZEX1pFUk8oJnNldHMud3JpdGVzZXQpOworICBGRF9TRVQocywgJnNldHMud3JpdGVzZXQpOworICBGRF9aRVJPKCZzZXRzLmVycnNldCk7CisgIEZEX1NFVChzLCAmc2V0cy5lcnJzZXQpOworICB0di50dl9zZWMgPSAwOworICB0di50dl91c2VjID0gMDsKKyAgLyogc2VsZWN0IHdpdGhvdXQgd2FpdGluZyBzaG91bGQgZmFpbCAqLworICByZXQgPSBsd2lwX3NlbGVjdChzICsgMSwgJnNldHMucmVhZHNldCwgJnNldHMud3JpdGVzZXQsICZzZXRzLmVycnNldCwgJnR2KTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSAwIiwgcmV0ID09IDApOworCisgIEZEX1pFUk8oJnNldHMucmVhZHNldCk7CisgIEZEX1NFVChzLCAmc2V0cy5yZWFkc2V0KTsKKyAgRkRfWkVSTygmc2V0cy53cml0ZXNldCk7CisgIEZEX1NFVChzLCAmc2V0cy53cml0ZXNldCk7CisgIEZEX1pFUk8oJnNldHMuZXJyc2V0KTsKKyAgRkRfU0VUKHMsICZzZXRzLmVycnNldCk7CisgIHRpY2tzX2EgPSBzeXNfbm93KCk7CisgIC8qIHNlbGVjdCB3aXRoIHdhaXRpbmcgc2hvdWxkIGV2ZW50dWFsbHkgc3VjY2VlZCBhbmQgcmV0dXJuIGVycnNldCEgKi8KKyAgcmV0ID0gbHdpcF9zZWxlY3QocyArIDEsICZzZXRzLnJlYWRzZXQsICZzZXRzLndyaXRlc2V0LCAmc2V0cy5lcnJzZXQsIE5VTEwpOworICB0aWNrc19iID0gc3lzX25vdygpOworICBMV0lQX0FTU0VSVCgicmV0ID4gMCIsIHJldCA+IDApOworICBMV0lQX0FTU0VSVCgiRkRfSVNTRVQocywgJmVycnNldCkiLCBGRF9JU1NFVChzLCAmc2V0cy5lcnJzZXQpKTsKKyAgLypMV0lQX0FTU0VSVCgiIUZEX0lTU0VUKHMsICZyZWFkc2V0KSIsICFGRF9JU1NFVChzLCAmc2V0cy5yZWFkc2V0KSk7CisgIExXSVBfQVNTRVJUKCIhRkRfSVNTRVQocywgJndyaXRlc2V0KSIsICFGRF9JU1NFVChzLCAmc2V0cy53cml0ZXNldCkpOyovCisKKyAgLyogY2xvc2UgKi8KKyAgcmV0ID0gbHdpcF9jbG9zZShzKTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSAwIiwgcmV0ID09IDApOworICBMV0lQX1VOVVNFRF9BUkcocmV0KTsKKworICBwcmludGYoInNlbGVjdCgpIG5lZWRlZCAlZCB0aWNrcyB0byByZXR1cm4gZXJyb3JcbiIsIChpbnQpKHRpY2tzX2IgLSB0aWNrc19hKSk7CisgIHByaW50Zigic29ja2V4X25vbmJsb2NraW5nX2Nvbm5lY3QgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5XG4iKTsKKyNlbHNlCisgIExXSVBfVU5VU0VEX0FSRyhhcmcpOworI2VuZGlmCit9CisKKy8qKiBUaGlzIGlzIGFuIGV4YW1wbGUgZnVuY3Rpb24gdGhhdCB0ZXN0cworICAgIHRoZSByZWN2IGZ1bmN0aW9uICh0aW1lb3V0IGV0Yy4pLiAqLworc3RhdGljIHZvaWQKK3NvY2tleF90ZXN0cmVjdih2b2lkICphcmcpCit7CisgIGludCBzOworICBpbnQgcmV0OworICBpbnQgZXJyOworI2lmIExXSVBfU09fU05EUkNWVElNRU9fTk9OU1RBTkRBUkQKKyAgaW50IG9wdCwgb3B0MjsKKyNlbHNlCisgIHN0cnVjdCB0aW1ldmFsIG9wdCwgb3B0MjsKKyNlbmRpZgorICBzb2NrbGVuX3Qgb3B0MnNpemU7CisjaWYgTFdJUF9JUFY2CisgIHN0cnVjdCBzb2NrYWRkcl9pbjYgYWRkcjsKKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcjsKKyNlbmRpZiAvKiBMV0lQX0lQVjYgKi8KKyAgc2l6ZV90IGxlbjsKKyAgY2hhciByeGJ1ZltTT0NLX1RBUkdFVF9NQVhIVFRQUEFHRVNJWkVdOworI2lmIExXSVBfU09DS0VUX1NFTEVDVAorICBmZF9zZXQgcmVhZHNldDsKKyAgZmRfc2V0IGVycnNldDsKKyAgc3RydWN0IHRpbWV2YWwgdHY7CisjZW5kaWYKKyAgY29uc3QgaXBfYWRkcl90ICppcGFkZHIgPSAoY29uc3QgaXBfYWRkcl90Kilhcmc7CisKKyAgLyogc2V0IHVwIGFkZHJlc3MgdG8gY29ubmVjdCB0byAqLworICBtZW1zZXQoJmFkZHIsIDAsIHNpemVvZihhZGRyKSk7CisjaWYgTFdJUF9JUFY2CisgIGFkZHIuc2luNl9sZW4gPSBzaXplb2YoYWRkcik7CisgIGFkZHIuc2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKKyAgYWRkci5zaW42X3BvcnQgPSBQUF9IVE9OUyhTT0NLX1RBUkdFVF9QT1JUKTsKKyAgaW5ldDZfYWRkcl9mcm9tX2lwNmFkZHIoJmFkZHIuc2luNl9hZGRyLCBpcF8yX2lwNihpcGFkZHIpKTsKKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICBhZGRyLnNpbl9sZW4gPSBzaXplb2YoYWRkcik7CisgIGFkZHIuc2luX2ZhbWlseSA9IEFGX0lORVQ7CisgIGFkZHIuc2luX3BvcnQgPSBQUF9IVE9OUyhTT0NLX1RBUkdFVF9QT1JUKTsKKyAgaW5ldF9hZGRyX2Zyb21faXA0YWRkcigmYWRkci5zaW5fYWRkciwgaXBfMl9pcDQoaXBhZGRyKSk7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisKKyAgLyogZmlyc3QgdHJ5IGJsb2NraW5nOiAqLworCisgIC8qIGNyZWF0ZSB0aGUgc29ja2V0ICovCisjaWYgTFdJUF9JUFY2CisgIHMgPSBsd2lwX3NvY2tldChBRl9JTkVUNiwgU09DS19TVFJFQU0sIDApOworI2Vsc2UgLyogTFdJUF9JUFY2ICovCisgIHMgPSBsd2lwX3NvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisgIExXSVBfQVNTRVJUKCJzID49IDAiLCBzID49IDApOworCisgIC8qIGNvbm5lY3QgKi8KKyAgcmV0ID0gbHdpcF9jb25uZWN0KHMsIChzdHJ1Y3Qgc29ja2FkZHIqKSZhZGRyLCBzaXplb2YoYWRkcikpOworICAvKiBzaG91bGQgc3VjY2VlZCAqLworICBMV0lQX0FTU0VSVCgicmV0ID09IDAiLCByZXQgPT0gMCk7CisKKyAgLyogc2V0IHJlY3YgdGltZW91dCAoMTAwIG1zKSAqLworI2lmIExXSVBfU09fU05EUkNWVElNRU9fTk9OU1RBTkRBUkQKKyAgb3B0ID0gMTAwOworI2Vsc2UKKyAgb3B0LnR2X3NlYyA9IDA7CisgIG9wdC50dl91c2VjID0gMTAwICogMTAwMDsKKyNlbmRpZgorICByZXQgPSBsd2lwX3NldHNvY2tvcHQocywgU09MX1NPQ0tFVCwgU09fUkNWVElNRU8sICZvcHQsIHNpemVvZihvcHQpKTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSAwIiwgcmV0ID09IDApOworI2lmIExXSVBfU09fU05EUkNWVElNRU9fTk9OU1RBTkRBUkQKKyAgb3B0MiA9IDA7CisjZWxzZQorICBvcHQyLnR2X3NlYyA9IDA7CisgIG9wdDIudHZfdXNlYyA9IDA7CisjZW5kaWYKKyAgb3B0MnNpemUgPSBzaXplb2Yob3B0Mik7CisgIHJldCA9IGx3aXBfZ2V0c29ja29wdChzLCBTT0xfU09DS0VULCBTT19SQ1ZUSU1FTywgJm9wdDIsICZvcHQyc2l6ZSk7CisgIExXSVBfQVNTRVJUKCJyZXQgPT0gMCIsIHJldCA9PSAwKTsKKyAgTFdJUF9BU1NFUlQoIm9wdDJzaXplID09IHNpemVvZihvcHQyKSIsIG9wdDJzaXplID09IHNpemVvZihvcHQyKSk7CisjaWYgTFdJUF9TT19TTkRSQ1ZUSU1FT19OT05TVEFOREFSRAorICBMV0lQX0FTU0VSVCgib3B0ID09IG9wdDIiLCBvcHQgPT0gb3B0Mik7CisjZWxzZQorICBMV0lQX0FTU0VSVCgib3B0ID09IG9wdDIiLCBvcHQudHZfc2VjID09IG9wdDIudHZfc2VjKTsKKyAgTFdJUF9BU1NFUlQoIm9wdCA9PSBvcHQyIiwgb3B0LnR2X3VzZWMgPT0gb3B0Mi50dl91c2VjKTsKKyNlbmRpZgorCisgIC8qIHdyaXRlIHRoZSBzdGFydCBvZiBhIEdFVCByZXF1ZXN0ICovCisjZGVmaW5lIFNORFNUUjEgIkciCisgIGxlbiA9IHN0cmxlbihTTkRTVFIxKTsKKyAgcmV0ID0gbHdpcF93cml0ZShzLCBTTkRTVFIxLCBsZW4pOworICBMV0lQX0FTU0VSVCgicmV0ID09IGxlbiIsIHJldCA9PSAoaW50KWxlbik7CisKKyAgLyogc2hvdWxkIHRpbWUgb3V0IGlmIHRoZSBvdGhlciBzaWRlIGlzIGEgZ29vZCBIVFRQIHNlcnZlciAqLworICByZXQgPSBsd2lwX3JlYWQocywgcnhidWYsIDEpOworICBMV0lQX0FTU0VSVCgicmV0ID09IC0xIiwgcmV0ID09IC0xKTsKKyAgZXJyID0gZXJybm87CisgIExXSVBfQVNTRVJUKCJlcnJubyA9PSBFQUdBSU4iLCBlcnIgPT0gRUFHQUlOKTsKKyAgTFdJUF9VTlVTRURfQVJHKGVycik7CisKKyAgLyogd3JpdGUgdGhlIHJlc3Qgb2YgYSBHRVQgcmVxdWVzdCAqLworI2RlZmluZSBTTkRTVFIyICJFVCAvIEhUVFBfMS4xXHJcblxyXG4iCisgIGxlbiA9IHN0cmxlbihTTkRTVFIyKTsKKyAgcmV0ID0gbHdpcF93cml0ZShzLCBTTkRTVFIyLCBsZW4pOworICBMV0lQX0FTU0VSVCgicmV0ID09IGxlbiIsIHJldCA9PSAoaW50KWxlbik7CisKKyAgLyogd2FpdCBhIHdoaWxlOiBzaG91bGQgYmUgZW5vdWdoIGZvciB0aGUgc2VydmVyIHRvIHNlbmQgYSByZXNwb25zZSAqLworICBzeXNfbXNsZWVwKDEwMDApOworCisgIC8qIHNob3VsZCBub3QgdGltZSBvdXQgYnV0IHJlY2VpdmUgYSByZXNwb25zZSAqLworICByZXQgPSBsd2lwX3JlYWQocywgcnhidWYsIFNPQ0tfVEFSR0VUX01BWEhUVFBQQUdFU0laRSk7CisgIExXSVBfQVNTRVJUKCJyZXQgPiAwIiwgcmV0ID4gMCk7CisKKyNpZiBMV0lQX1NPQ0tFVF9TRUxFQ1QKKyAgLyogbm93IHNlbGVjdCBzaG91bGQgZGlyZWN0bHkgcmV0dXJuIGJlY2F1c2UgdGhlIHNvY2tldCBpcyByZWFkYWJsZSAqLworICBGRF9aRVJPKCZyZWFkc2V0KTsKKyAgRkRfWkVSTygmZXJyc2V0KTsKKyAgRkRfU0VUKHMsICZyZWFkc2V0KTsKKyAgRkRfU0VUKHMsICZlcnJzZXQpOworICB0di50dl9zZWMgPSAxMDsKKyAgdHYudHZfdXNlYyA9IDA7CisgIHJldCA9IGx3aXBfc2VsZWN0KHMgKyAxLCAmcmVhZHNldCwgTlVMTCwgJmVycnNldCwgJnR2KTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSAxIiwgcmV0ID09IDEpOworICBMV0lQX0FTU0VSVCgiIUZEX0lTU0VUKHMsICZlcnJzZXQpIiwgIUZEX0lTU0VUKHMsICZlcnJzZXQpKTsKKyAgTFdJUF9BU1NFUlQoIkZEX0lTU0VUKHMsICZyZWFkc2V0KSIsIEZEX0lTU0VUKHMsICZyZWFkc2V0KSk7CisjZW5kaWYKKworICAvKiBzaG91bGQgbm90IHRpbWUgb3V0IGJ1dCByZWNlaXZlIGEgcmVzcG9uc2UgKi8KKyAgcmV0ID0gbHdpcF9yZWFkKHMsIHJ4YnVmLCBTT0NLX1RBUkdFVF9NQVhIVFRQUEFHRVNJWkUpOworICAvKiBtaWdodCByZWNlaXZlIGEgc2Vjb25kIHBhY2tldCBmb3IgSFRUUC8xLjEgc2VydmVycyAqLworICBpZiAocmV0ID4gMCkgeworICAgIC8qIHNob3VsZCByZXR1cm4gMDogY2xvc2VkICovCisgICAgcmV0ID0gbHdpcF9yZWFkKHMsIHJ4YnVmLCBTT0NLX1RBUkdFVF9NQVhIVFRQUEFHRVNJWkUpOworICAgIExXSVBfQVNTRVJUKCJyZXQgPT0gMCIsIHJldCA9PSAwKTsKKyAgfQorCisgIC8qIGNsb3NlICovCisgIHJldCA9IGx3aXBfY2xvc2Uocyk7CisgIExXSVBfQVNTRVJUKCJyZXQgPT0gMCIsIHJldCA9PSAwKTsKKyAgTFdJUF9VTlVTRURfQVJHKHJldCk7CisKKyAgcHJpbnRmKCJzb2NrZXhfdGVzdHJlY3YgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5XG4iKTsKK30KKworI2lmIExXSVBfU09DS0VUX1NFTEVDVAorLyoqIGhlbHBlciBzdHJ1Y3QgZm9yIHRoZSAyIGZ1bmN0aW9ucyBiZWxvdyAobXVsdGl0aHJlYWRlZDogdGhyZWFkLWFyZ3VtZW50KSAqLworc3RydWN0IHNvY2tleF9zZWxlY3RfaGVscGVyIHsKKyAgaW50IHNvY2tldDsKKyAgaW50IHdhaXRfcmVhZDsKKyAgaW50IGV4cGVjdF9yZWFkOworICBpbnQgd2FpdF93cml0ZTsKKyAgaW50IGV4cGVjdF93cml0ZTsKKyAgaW50IHdhaXRfZXJyOworICBpbnQgZXhwZWN0X2VycjsKKyAgaW50IHdhaXRfbXM7CisgIHN5c19zZW1fdCBzZW07Cit9OworCisvKiogaGVscGVyIHRocmVhZCB0byB3YWl0IGZvciBzb2NrZXQgZXZlbnRzIHVzaW5nIHNlbGVjdCAqLworc3RhdGljIHZvaWQKK3NvY2tleF9zZWxlY3Rfd2FpdGVyKHZvaWQgKmFyZykKK3sKKyAgc3RydWN0IHNvY2tleF9zZWxlY3RfaGVscGVyICpoZWxwZXIgPSAoc3RydWN0IHNvY2tleF9zZWxlY3RfaGVscGVyICopYXJnOworICBpbnQgcmV0OworICBmZF9zZXQgcmVhZHNldDsKKyAgZmRfc2V0IHdyaXRlc2V0OworICBmZF9zZXQgZXJyc2V0OworICBzdHJ1Y3QgdGltZXZhbCB0djsKKworICBMV0lQX0FTU0VSVCgiaGVscGVyICE9IE5VTEwiLCBoZWxwZXIgIT0gTlVMTCk7CisKKyAgRkRfWkVSTygmcmVhZHNldCk7CisgIEZEX1pFUk8oJndyaXRlc2V0KTsKKyAgRkRfWkVSTygmZXJyc2V0KTsKKyAgaWYgKGhlbHBlci0+d2FpdF9yZWFkKSB7CisgICAgRkRfU0VUKGhlbHBlci0+c29ja2V0LCAmcmVhZHNldCk7CisgIH0KKyAgaWYgKGhlbHBlci0+d2FpdF93cml0ZSkgeworICAgIEZEX1NFVChoZWxwZXItPnNvY2tldCwgJndyaXRlc2V0KTsKKyAgfQorICBpZiAoaGVscGVyLT53YWl0X2VycikgeworICAgIEZEX1NFVChoZWxwZXItPnNvY2tldCwgJmVycnNldCk7CisgIH0KKworICB0di50dl9zZWMgPSBoZWxwZXItPndhaXRfbXMgLyAxMDAwOworICB0di50dl91c2VjID0gKGhlbHBlci0+d2FpdF9tcyAlIDEwMDApICogMTAwMDsKKworICByZXQgPSBsd2lwX3NlbGVjdChoZWxwZXItPnNvY2tldCwgJnJlYWRzZXQsICZ3cml0ZXNldCwgJmVycnNldCwgJnR2KTsKKyAgaWYgKGhlbHBlci0+ZXhwZWN0X3JlYWQgfHwgaGVscGVyLT5leHBlY3Rfd3JpdGUgfHwgaGVscGVyLT5leHBlY3RfZXJyKSB7CisgICAgTFdJUF9BU1NFUlQoInJldCA+IDAiLCByZXQgPiAwKTsKKyAgfSBlbHNlIHsKKyAgICBMV0lQX0FTU0VSVCgicmV0ID09IDAiLCByZXQgPT0gMCk7CisgIH0KKyAgTFdJUF9VTlVTRURfQVJHKHJldCk7CisgIGlmIChoZWxwZXItPmV4cGVjdF9yZWFkKSB7CisgICAgTFdJUF9BU1NFUlQoIkZEX0lTU0VUKGhlbHBlci0+c29ja2V0LCAmcmVhZHNldCkiLCBGRF9JU1NFVChoZWxwZXItPnNvY2tldCwgJnJlYWRzZXQpKTsKKyAgfSBlbHNlIHsKKyAgICBMV0lQX0FTU0VSVCgiIUZEX0lTU0VUKGhlbHBlci0+c29ja2V0LCAmcmVhZHNldCkiLCAhRkRfSVNTRVQoaGVscGVyLT5zb2NrZXQsICZyZWFkc2V0KSk7CisgIH0KKyAgaWYgKGhlbHBlci0+ZXhwZWN0X3dyaXRlKSB7CisgICAgTFdJUF9BU1NFUlQoIkZEX0lTU0VUKGhlbHBlci0+c29ja2V0LCAmd3JpdGVzZXQpIiwgRkRfSVNTRVQoaGVscGVyLT5zb2NrZXQsICZ3cml0ZXNldCkpOworICB9IGVsc2UgeworICAgIExXSVBfQVNTRVJUKCIhRkRfSVNTRVQoaGVscGVyLT5zb2NrZXQsICZ3cml0ZXNldCkiLCAhRkRfSVNTRVQoaGVscGVyLT5zb2NrZXQsICZ3cml0ZXNldCkpOworICB9CisgIGlmIChoZWxwZXItPmV4cGVjdF9lcnIpIHsKKyAgICBMV0lQX0FTU0VSVCgiRkRfSVNTRVQoaGVscGVyLT5zb2NrZXQsICZlcnJzZXQpIiwgRkRfSVNTRVQoaGVscGVyLT5zb2NrZXQsICZlcnJzZXQpKTsKKyAgfSBlbHNlIHsKKyAgICBMV0lQX0FTU0VSVCgiIUZEX0lTU0VUKGhlbHBlci0+c29ja2V0LCAmZXJyc2V0KSIsICFGRF9JU1NFVChoZWxwZXItPnNvY2tldCwgJmVycnNldCkpOworICB9CisgIHN5c19zZW1fc2lnbmFsKCZoZWxwZXItPnNlbSk7Cit9CisKKy8qKiBUaGlzIGlzIGFuIGV4YW1wbGUgZnVuY3Rpb24gdGhhdCB0ZXN0cworICAgIG1vcmUgdGhhbiBvbmUgdGhyZWFkIGJlaW5nIGFjdGl2ZSBpbiBzZWxlY3QuICovCitzdGF0aWMgdm9pZAorc29ja2V4X3Rlc3R0d29zZWxlY3RzKHZvaWQgKmFyZykKK3sKKyAgaW50IHMxOworICBpbnQgczI7CisgIGludCByZXQ7CisjaWYgTFdJUF9JUFY2CisgIHN0cnVjdCBzb2NrYWRkcl9pbjYgYWRkcjsKKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcjsKKyNlbmRpZiAvKiBMV0lQX0lQVjYgKi8KKyAgc2l6ZV90IGxlbjsKKyAgZXJyX3QgbHdpcGVycjsKKyAgc3RydWN0IHNvY2tleF9zZWxlY3RfaGVscGVyIGgxLCBoMiwgaDMsIGg0OworICBjb25zdCBpcF9hZGRyX3QgKmlwYWRkciA9IChjb25zdCBpcF9hZGRyX3QqKWFyZzsKKworICAvKiBzZXQgdXAgYWRkcmVzcyB0byBjb25uZWN0IHRvICovCisgIG1lbXNldCgmYWRkciwgMCwgc2l6ZW9mKGFkZHIpKTsKKyNpZiBMV0lQX0lQVjYKKyAgYWRkci5zaW42X2xlbiA9IHNpemVvZihhZGRyKTsKKyAgYWRkci5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OworICBhZGRyLnNpbjZfcG9ydCA9IFBQX0hUT05TKFNPQ0tfVEFSR0VUX1BPUlQpOworICBpbmV0Nl9hZGRyX2Zyb21faXA2YWRkcigmYWRkci5zaW42X2FkZHIsIGlwXzJfaXA2KGlwYWRkcikpOworI2Vsc2UgLyogTFdJUF9JUFY2ICovCisgIGFkZHIuc2luX2xlbiA9IHNpemVvZihhZGRyKTsKKyAgYWRkci5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKKyAgYWRkci5zaW5fcG9ydCA9IFBQX0hUT05TKFNPQ0tfVEFSR0VUX1BPUlQpOworICBpbmV0X2FkZHJfZnJvbV9pcDRhZGRyKCZhZGRyLnNpbl9hZGRyLCBpcF8yX2lwNChpcGFkZHIpKTsKKyNlbmRpZiAvKiBMV0lQX0lQVjYgKi8KKworICAvKiBjcmVhdGUgdGhlIHNvY2tldHMgKi8KKyNpZiBMV0lQX0lQVjYKKyAgczEgPSBsd2lwX3NvY2tldChBRl9JTkVUNiwgU09DS19TVFJFQU0sIDApOworICBzMiA9IGx3aXBfc29ja2V0KEFGX0lORVQ2LCBTT0NLX1NUUkVBTSwgMCk7CisjZWxzZSAvKiBMV0lQX0lQVjYgKi8KKyAgczEgPSBsd2lwX3NvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCk7CisgIHMyID0gbHdpcF9zb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIDApOworI2VuZGlmIC8qIExXSVBfSVBWNiAqLworICBMV0lQX0FTU0VSVCgiczEgPj0gMCIsIHMxID49IDApOworICBMV0lQX0FTU0VSVCgiczIgPj0gMCIsIHMyID49IDApOworCisgIC8qIGNvbm5lY3QsIHNob3VsZCBzdWNjZWVkICovCisgIHJldCA9IGx3aXBfY29ubmVjdChzMSwgKHN0cnVjdCBzb2NrYWRkciopJmFkZHIsIHNpemVvZihhZGRyKSk7CisgIExXSVBfQVNTRVJUKCJyZXQgPT0gMCIsIHJldCA9PSAwKTsKKyAgcmV0ID0gbHdpcF9jb25uZWN0KHMyLCAoc3RydWN0IHNvY2thZGRyKikmYWRkciwgc2l6ZW9mKGFkZHIpKTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSAwIiwgcmV0ID09IDApOworCisgIC8qIHdyaXRlIHRoZSBzdGFydCBvZiBhIEdFVCByZXF1ZXN0ICovCisjZGVmaW5lIFNORFNUUjEgIkciCisgIGxlbiA9IHN0cmxlbihTTkRTVFIxKTsKKyAgcmV0ID0gbHdpcF93cml0ZShzMSwgU05EU1RSMSwgbGVuKTsKKyAgTFdJUF9BU1NFUlQoInJldCA9PSBsZW4iLCByZXQgPT0gKGludClsZW4pOworICByZXQgPSBsd2lwX3dyaXRlKHMyLCBTTkRTVFIxLCBsZW4pOworICBMV0lQX0FTU0VSVCgicmV0ID09IGxlbiIsIHJldCA9PSAoaW50KWxlbik7CisgIExXSVBfVU5VU0VEX0FSRyhyZXQpOworCisgIGgxLndhaXRfcmVhZCAgPSAxOworICBoMS53YWl0X3dyaXRlID0gMTsKKyAgaDEud2FpdF9lcnIgICA9IDE7CisgIGgxLmV4cGVjdF9yZWFkICA9IDA7CisgIGgxLmV4cGVjdF93cml0ZSA9IDA7CisgIGgxLmV4cGVjdF9lcnIgICA9IDA7CisgIGx3aXBlcnIgPSBzeXNfc2VtX25ldygmaDEuc2VtLCAwKTsKKyAgTFdJUF9BU1NFUlQoImx3aXBlcnIgPT0gRVJSX09LIiwgbHdpcGVyciA9PSBFUlJfT0spOworICBoMS5zb2NrZXQgPSBzMTsKKyAgaDEud2FpdF9tcyA9IDUwMDsKKworICBoMiA9IGgxOworICBsd2lwZXJyID0gc3lzX3NlbV9uZXcoJmgyLnNlbSwgMCk7CisgIExXSVBfQVNTRVJUKCJsd2lwZXJyID09IEVSUl9PSyIsIGx3aXBlcnIgPT0gRVJSX09LKTsKKyAgaDIuc29ja2V0ID0gczI7CisgIGgyLndhaXRfbXMgPSAxMDAwOworCisgIGgzID0gaDE7CisgIGx3aXBlcnIgPSBzeXNfc2VtX25ldygmaDMuc2VtLCAwKTsKKyAgTFdJUF9BU1NFUlQoImx3aXBlcnIgPT0gRVJSX09LIiwgbHdpcGVyciA9PSBFUlJfT0spOworICBoMy5zb2NrZXQgPSBzMjsKKyAgaDMud2FpdF9tcyA9IDE1MDA7CisKKyAgaDQgPSBoMTsKKyAgbHdpcGVyciA9IHN5c19zZW1fbmV3KCZoNC5zZW0sIDApOworICBMV0lQX0FTU0VSVCgibHdpcGVyciA9PSBFUlJfT0siLCBsd2lwZXJyID09IEVSUl9PSyk7CisgIExXSVBfVU5VU0VEX0FSRyhsd2lwZXJyKTsKKyAgaDQuc29ja2V0ID0gczI7CisgIGg0LndhaXRfbXMgPSAyMDAwOworCisgIC8qIHNlbGVjdDogYWxsIHNvY2tldHMgc2hvdWxkIHRpbWUgb3V0IGlmIHRoZSBvdGhlciBzaWRlIGlzIGEgZ29vZCBIVFRQIHNlcnZlciAqLworCisgIHN5c190aHJlYWRfbmV3KCJzb2NrZXhfc2VsZWN0X3dhaXRlcjEiLCBzb2NrZXhfc2VsZWN0X3dhaXRlciwgJmgyLCAwLCAwKTsKKyAgc3lzX21zbGVlcCgxMDApOworICBzeXNfdGhyZWFkX25ldygic29ja2V4X3NlbGVjdF93YWl0ZXIyIiwgc29ja2V4X3NlbGVjdF93YWl0ZXIsICZoMSwgMCwgMCk7CisgIHN5c19tc2xlZXAoMTAwKTsKKyAgc3lzX3RocmVhZF9uZXcoInNvY2tleF9zZWxlY3Rfd2FpdGVyMiIsIHNvY2tleF9zZWxlY3Rfd2FpdGVyLCAmaDQsIDAsIDApOworICBzeXNfbXNsZWVwKDEwMCk7CisgIHN5c190aHJlYWRfbmV3KCJzb2NrZXhfc2VsZWN0X3dhaXRlcjIiLCBzb2NrZXhfc2VsZWN0X3dhaXRlciwgJmgzLCAwLCAwKTsKKworICBzeXNfc2VtX3dhaXQoJmgxLnNlbSk7CisgIHN5c19zZW1fd2FpdCgmaDIuc2VtKTsKKyAgc3lzX3NlbV93YWl0KCZoMy5zZW0pOworICBzeXNfc2VtX3dhaXQoJmg0LnNlbSk7CisKKyAgLyogY2xvc2UgKi8KKyAgcmV0ID0gbHdpcF9jbG9zZShzMSk7CisgIExXSVBfQVNTRVJUKCJyZXQgPT0gMCIsIHJldCA9PSAwKTsKKyAgcmV0ID0gbHdpcF9jbG9zZShzMik7CisgIExXSVBfQVNTRVJUKCJyZXQgPT0gMCIsIHJldCA9PSAwKTsKKworICBwcmludGYoInNvY2tleF90ZXN0dHdvc2VsZWN0cyBmaW5pc2hlZCBzdWNjZXNzZnVsbHlcbiIpOworfQorI2Vsc2UKK3N0YXRpYyB2b2lkCitzb2NrZXhfdGVzdHR3b3NlbGVjdHModm9pZCAqYXJnKQoreworICBMV0lQX1VOVVNFRF9BUkcoYXJnKTsKK30KKyNlbmRpZgorCisjaWYgIVNPQ0tFVF9FWEFNUExFU19SVU5fUEFSQUxMRUwKK3N0YXRpYyB2b2lkCitzb2NrZXRfZXhhbXBsZV90ZXN0KHZvaWQqIGFyZykKK3sKKyAgc3lzX21zbGVlcCgxMDAwKTsKKyAgc29ja2V4X25vbmJsb2NraW5nX2Nvbm5lY3QoYXJnKTsKKyAgc29ja2V4X3Rlc3RyZWN2KGFyZyk7CisgIHNvY2tleF90ZXN0dHdvc2VsZWN0cyhhcmcpOworICBwcmludGYoImFsbCB0ZXN0cyBkb25lLCB0aHJlYWQgZW5kaW5nXG4iKTsKK30KKyNlbmRpZgorCit2b2lkIHNvY2tldF9leGFtcGxlc19pbml0KHZvaWQpCit7CisgIGludCBhZGRyX29rOworI2lmIExXSVBfSVBWNgorICBJUF9TRVRfVFlQRV9WQUwoZHN0YWRkciwgSVBBRERSX1RZUEVfVjYpOworICBhZGRyX29rID0gaXA2YWRkcl9hdG9uKFNPQ0tfVEFSR0VUX0hPU1Q2LCBpcF8yX2lwNigmZHN0YWRkcikpOworI2Vsc2UgLyogTFdJUF9JUFY2ICovCisgIElQX1NFVF9UWVBFX1ZBTChkc3RhZGRyLCBJUEFERFJfVFlQRV9WNCk7CisgIGFkZHJfb2sgPSBpcDRhZGRyX2F0b24oU09DS19UQVJHRVRfSE9TVDQsIGlwXzJfaXA0KCZkc3RhZGRyKSk7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisgIExXSVBfQVNTRVJUKCJpbnZhbGlkIGFkZHJlc3MiLCBhZGRyX29rKTsKKyNpZiBTT0NLRVRfRVhBTVBMRVNfUlVOX1BBUkFMTEVMCisgIHN5c190aHJlYWRfbmV3KCJzb2NrZXhfbm9uYmxvY2tpbmdfY29ubmVjdCIsIHNvY2tleF9ub25ibG9ja2luZ19jb25uZWN0LCAmZHN0YWRkciwgMCwgMCk7CisgIHN5c190aHJlYWRfbmV3KCJzb2NrZXhfdGVzdHJlY3YiLCBzb2NrZXhfdGVzdHJlY3YsICZkc3RhZGRyLCAwLCAwKTsKKyAgc3lzX3RocmVhZF9uZXcoInNvY2tleF90ZXN0dHdvc2VsZWN0cyIsIHNvY2tleF90ZXN0dHdvc2VsZWN0cywgJmRzdGFkZHIsIDAsIDApOworI2Vsc2UKKyAgc3lzX3RocmVhZF9uZXcoInNvY2tldF9leGFtcGxlX3Rlc3QiLCBzb2NrZXRfZXhhbXBsZV90ZXN0LCAmZHN0YWRkciwgMCwgMCk7CisjZW5kaWYKK30KKworI2VuZGlmIC8qIExXSVBfU09DS0VUICovCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvc29ja2V0X2V4YW1wbGVzL3NvY2tldF9leGFtcGxlcy5oIGIvY29udHJpYi9hcHBzL3NvY2tldF9leGFtcGxlcy9zb2NrZXRfZXhhbXBsZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTRkMDNhCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL3NvY2tldF9leGFtcGxlcy9zb2NrZXRfZXhhbXBsZXMuaApAQCAtMCwwICsxLDYgQEAKKyNpZm5kZWYgTFdJUF9TT0NLRVRfRVhBTVBMRVNfSAorI2RlZmluZSBMV0lQX1NPQ0tFVF9FWEFNUExFU19ICisKK3ZvaWQgc29ja2V0X2V4YW1wbGVzX2luaXQodm9pZCk7CisKKyNlbmRpZiAvKiBMV0lQX1NPQ0tFVF9FWEFNUExFU19IICovCmRpZmYgLS1naXQgYS9jb250cmliL2FwcHMvdGNwZWNoby90Y3BlY2hvLmMgYi9jb250cmliL2FwcHMvdGNwZWNoby90Y3BlY2hvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGZlMTM1OQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy90Y3BlY2hvL3RjcGVjaG8uYwpAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDAzIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogQWRhbSBEdW5rZWxzIDxhZGFtQHNpY3Muc2U+CisgKgorICovCisjaW5jbHVkZSAidGNwZWNoby5oIgorCisjaW5jbHVkZSAibHdpcC9vcHQuaCIKKworI2lmIExXSVBfTkVUQ09OTgorCisjaW5jbHVkZSAibHdpcC9zeXMuaCIKKyNpbmNsdWRlICJsd2lwL2FwaS5oIgorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgdm9pZAordGNwZWNob190aHJlYWQodm9pZCAqYXJnKQoreworICBzdHJ1Y3QgbmV0Y29ubiAqY29ubiwgKm5ld2Nvbm47CisgIGVycl90IGVycjsKKyAgTFdJUF9VTlVTRURfQVJHKGFyZyk7CisKKyAgLyogQ3JlYXRlIGEgbmV3IGNvbm5lY3Rpb24gaWRlbnRpZmllci4gKi8KKyAgLyogQmluZCBjb25uZWN0aW9uIHRvIHdlbGwga25vd24gcG9ydCBudW1iZXIgNy4gKi8KKyNpZiBMV0lQX0lQVjYKKyAgY29ubiA9IG5ldGNvbm5fbmV3KE5FVENPTk5fVENQX0lQVjYpOworICBuZXRjb25uX2JpbmQoY29ubiwgSVA2X0FERFJfQU5ZLCA3KTsKKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICBjb25uID0gbmV0Y29ubl9uZXcoTkVUQ09OTl9UQ1ApOworICBuZXRjb25uX2JpbmQoY29ubiwgSVBfQUREUl9BTlksIDcpOworI2VuZGlmIC8qIExXSVBfSVBWNiAqLworICBMV0lQX0VSUk9SKCJ0Y3BlY2hvOiBpbnZhbGlkIGNvbm4iLCAoY29ubiAhPSBOVUxMKSwgcmV0dXJuOyk7CisKKyAgLyogVGVsbCBjb25uZWN0aW9uIHRvIGdvIGludG8gbGlzdGVuaW5nIG1vZGUuICovCisgIG5ldGNvbm5fbGlzdGVuKGNvbm4pOworCisgIHdoaWxlICgxKSB7CisKKyAgICAvKiBHcmFiIG5ldyBjb25uZWN0aW9uLiAqLworICAgIGVyciA9IG5ldGNvbm5fYWNjZXB0KGNvbm4sICZuZXdjb25uKTsKKyAgICAvKnByaW50ZigiYWNjZXB0ZWQgbmV3IGNvbm5lY3Rpb24gJXBcbiIsIG5ld2Nvbm4pOyovCisgICAgLyogUHJvY2VzcyB0aGUgbmV3IGNvbm5lY3Rpb24uICovCisgICAgaWYgKGVyciA9PSBFUlJfT0spIHsKKyAgICAgIHN0cnVjdCBuZXRidWYgKmJ1ZjsKKyAgICAgIHZvaWQgKmRhdGE7CisgICAgICB1MTZfdCBsZW47CisKKyAgICAgIHdoaWxlICgoZXJyID0gbmV0Y29ubl9yZWN2KG5ld2Nvbm4sICZidWYpKSA9PSBFUlJfT0spIHsKKyAgICAgICAgLypwcmludGYoIlJlY3ZlZFxuIik7Ki8KKyAgICAgICAgZG8geworICAgICAgICAgICAgIG5ldGJ1Zl9kYXRhKGJ1ZiwgJmRhdGEsICZsZW4pOworICAgICAgICAgICAgIGVyciA9IG5ldGNvbm5fd3JpdGUobmV3Y29ubiwgZGF0YSwgbGVuLCBORVRDT05OX0NPUFkpOworI2lmIDAKKyAgICAgICAgICAgIGlmIChlcnIgIT0gRVJSX09LKSB7CisgICAgICAgICAgICAgIHByaW50ZigidGNwZWNobzogbmV0Y29ubl93cml0ZTogZXJyb3IgXCIlc1wiXG4iLCBsd2lwX3N0cmVycihlcnIpKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgorICAgICAgICB9IHdoaWxlIChuZXRidWZfbmV4dChidWYpID49IDApOworICAgICAgICBuZXRidWZfZGVsZXRlKGJ1Zik7CisgICAgICB9CisgICAgICAvKnByaW50ZigiR290IEVPRiwgbG9vcGluZ1xuIik7Ki8KKyAgICAgIC8qIENsb3NlIGNvbm5lY3Rpb24gYW5kIGRpc2NhcmQgY29ubmVjdGlvbiBpZGVudGlmaWVyLiAqLworICAgICAgbmV0Y29ubl9jbG9zZShuZXdjb25uKTsKKyAgICAgIG5ldGNvbm5fZGVsZXRlKG5ld2Nvbm4pOworICAgIH0KKyAgfQorfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCit2b2lkCit0Y3BlY2hvX2luaXQodm9pZCkKK3sKKyAgc3lzX3RocmVhZF9uZXcoInRjcGVjaG9fdGhyZWFkIiwgdGNwZWNob190aHJlYWQsIE5VTEwsIERFRkFVTFRfVEhSRUFEX1NUQUNLU0laRSwgREVGQVVMVF9USFJFQURfUFJJTyk7Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworI2VuZGlmIC8qIExXSVBfTkVUQ09OTiAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL3RjcGVjaG8vdGNwZWNoby5oIGIvY29udHJpYi9hcHBzL3RjcGVjaG8vdGNwZWNoby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyN2M1MGYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvdGNwZWNoby90Y3BlY2hvLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDAzIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogQWRhbSBEdW5rZWxzIDxhZGFtQHNpY3Muc2U+CisgKgorICovCisKKyNpZm5kZWYgTFdJUF9UQ1BFQ0hPX0gKKyNkZWZpbmUgTFdJUF9UQ1BFQ0hPX0gKKwordm9pZCB0Y3BlY2hvX2luaXQodm9pZCk7CisKKyNlbmRpZiAvKiBMV0lQX1RDUEVDSE9fSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL3RjcGVjaG9fcmF3L3RjcGVjaG9fcmF3LmMgYi9jb250cmliL2FwcHMvdGNwZWNob19yYXcvdGNwZWNob19yYXcuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTcxZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL3RjcGVjaG9fcmF3L3RjcGVjaG9fcmF3LmMKQEAgLTAsMCArMSwzMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGFuZCBhIGNvbnRyaWJ1dGlvbiB0byB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQ3JlZGl0cyBnbyB0byBBZGFtIER1bmtlbHMgKGFuZCB0aGUgY3VycmVudCBtYWludGFpbmVycykgb2YgdGhpcyBzb2Z0d2FyZS4KKyAqCisgKiBDaHJpc3RpYWFuIFNpbW9ucyByZXdyb3RlIHRoaXMgZmlsZSB0byBnZXQgYSBtb3JlIHN0YWJsZSBlY2hvIGV4YW1wbGUuCisgKi8KKworLyoqCisgKiBAZmlsZQorICogVENQIGVjaG8gc2VydmVyIGV4YW1wbGUgdXNpbmcgcmF3IEFQSS4KKyAqCisgKiBFY2hvcyBhbGwgYnl0ZXMgc2VudCBieSBjb25uZWN0aW5nIGNsaWVudCwKKyAqIGFuZCBwYXNzaXZlbHkgY2xvc2VzIHdoZW4gY2xpZW50IGlzIGRvbmUuCisgKgorICovCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorI2luY2x1ZGUgImx3aXAvZGVidWcuaCIKKyNpbmNsdWRlICJsd2lwL3N0YXRzLmgiCisjaW5jbHVkZSAibHdpcC90Y3AuaCIKKyNpbmNsdWRlICJ0Y3BlY2hvX3Jhdy5oIgorCisjaWYgTFdJUF9UQ1AgJiYgTFdJUF9DQUxMQkFDS19BUEkKKworc3RhdGljIHN0cnVjdCB0Y3BfcGNiICp0Y3BlY2hvX3Jhd19wY2I7CisKK2VudW0gdGNwZWNob19yYXdfc3RhdGVzCit7CisgIEVTX05PTkUgPSAwLAorICBFU19BQ0NFUFRFRCwKKyAgRVNfUkVDRUlWRUQsCisgIEVTX0NMT1NJTkcKK307CisKK3N0cnVjdCB0Y3BlY2hvX3Jhd19zdGF0ZQoreworICB1OF90IHN0YXRlOworICB1OF90IHJldHJpZXM7CisgIHN0cnVjdCB0Y3BfcGNiICpwY2I7CisgIC8qIHBidWYgKGNoYWluKSB0byByZWN5Y2xlICovCisgIHN0cnVjdCBwYnVmICpwOworfTsKKworc3RhdGljIHZvaWQKK3RjcGVjaG9fcmF3X2ZyZWUoc3RydWN0IHRjcGVjaG9fcmF3X3N0YXRlICplcykKK3sKKyAgaWYgKGVzICE9IE5VTEwpIHsKKyAgICBpZiAoZXMtPnApIHsKKyAgICAgIC8qIGZyZWUgdGhlIGJ1ZmZlciBjaGFpbiBpZiBwcmVzZW50ICovCisgICAgICBwYnVmX2ZyZWUoZXMtPnApOworICAgIH0KKworICAgIG1lbV9mcmVlKGVzKTsKKyAgfQorfQorCitzdGF0aWMgdm9pZAordGNwZWNob19yYXdfY2xvc2Uoc3RydWN0IHRjcF9wY2IgKnRwY2IsIHN0cnVjdCB0Y3BlY2hvX3Jhd19zdGF0ZSAqZXMpCit7CisgIHRjcF9hcmcodHBjYiwgTlVMTCk7CisgIHRjcF9zZW50KHRwY2IsIE5VTEwpOworICB0Y3BfcmVjdih0cGNiLCBOVUxMKTsKKyAgdGNwX2Vycih0cGNiLCBOVUxMKTsKKyAgdGNwX3BvbGwodHBjYiwgTlVMTCwgMCk7CisKKyAgdGNwZWNob19yYXdfZnJlZShlcyk7CisKKyAgdGNwX2Nsb3NlKHRwY2IpOworfQorCitzdGF0aWMgdm9pZAordGNwZWNob19yYXdfc2VuZChzdHJ1Y3QgdGNwX3BjYiAqdHBjYiwgc3RydWN0IHRjcGVjaG9fcmF3X3N0YXRlICplcykKK3sKKyAgc3RydWN0IHBidWYgKnB0cjsKKyAgZXJyX3Qgd3JfZXJyID0gRVJSX09LOworCisgIHdoaWxlICgod3JfZXJyID09IEVSUl9PSykgJiYKKyAgICAgICAgIChlcy0+cCAhPSBOVUxMKSAmJgorICAgICAgICAgKGVzLT5wLT5sZW4gPD0gdGNwX3NuZGJ1Zih0cGNiKSkpIHsKKyAgICBwdHIgPSBlcy0+cDsKKworICAgIC8qIGVucXVldWUgZGF0YSBmb3IgdHJhbnNtaXNzaW9uICovCisgICAgd3JfZXJyID0gdGNwX3dyaXRlKHRwY2IsIHB0ci0+cGF5bG9hZCwgcHRyLT5sZW4sIDEpOworICAgIGlmICh3cl9lcnIgPT0gRVJSX09LKSB7CisgICAgICB1MTZfdCBwbGVuOworCisgICAgICBwbGVuID0gcHRyLT5sZW47CisgICAgICAvKiBjb250aW51ZSB3aXRoIG5leHQgcGJ1ZiBpbiBjaGFpbiAoaWYgYW55KSAqLworICAgICAgZXMtPnAgPSBwdHItPm5leHQ7CisgICAgICBpZihlcy0+cCAhPSBOVUxMKSB7CisgICAgICAgIC8qIG5ldyByZWZlcmVuY2UhICovCisgICAgICAgIHBidWZfcmVmKGVzLT5wKTsKKyAgICAgIH0KKyAgICAgIC8qIGNob3AgZmlyc3QgcGJ1ZiBmcm9tIGNoYWluICovCisgICAgICBwYnVmX2ZyZWUocHRyKTsKKyAgICAgIC8qIHdlIGNhbiByZWFkIG1vcmUgZGF0YSBub3cgKi8KKyAgICAgIHRjcF9yZWN2ZWQodHBjYiwgcGxlbik7CisgICAgfSBlbHNlIGlmKHdyX2VyciA9PSBFUlJfTUVNKSB7CisgICAgICAvKiB3ZSBhcmUgbG93IG9uIG1lbW9yeSwgdHJ5IGxhdGVyIC8gaGFyZGVyLCBkZWZlciB0byBwb2xsICovCisgICAgICBlcy0+cCA9IHB0cjsKKyAgICB9IGVsc2UgeworICAgICAgLyogb3RoZXIgcHJvYmxlbSA/PyAqLworICAgIH0KKyAgfQorfQorCitzdGF0aWMgdm9pZAordGNwZWNob19yYXdfZXJyb3Iodm9pZCAqYXJnLCBlcnJfdCBlcnIpCit7CisgIHN0cnVjdCB0Y3BlY2hvX3Jhd19zdGF0ZSAqZXM7CisKKyAgTFdJUF9VTlVTRURfQVJHKGVycik7CisKKyAgZXMgPSAoc3RydWN0IHRjcGVjaG9fcmF3X3N0YXRlICopYXJnOworCisgIHRjcGVjaG9fcmF3X2ZyZWUoZXMpOworfQorCitzdGF0aWMgZXJyX3QKK3RjcGVjaG9fcmF3X3BvbGwodm9pZCAqYXJnLCBzdHJ1Y3QgdGNwX3BjYiAqdHBjYikKK3sKKyAgZXJyX3QgcmV0X2VycjsKKyAgc3RydWN0IHRjcGVjaG9fcmF3X3N0YXRlICplczsKKworICBlcyA9IChzdHJ1Y3QgdGNwZWNob19yYXdfc3RhdGUgKilhcmc7CisgIGlmIChlcyAhPSBOVUxMKSB7CisgICAgaWYgKGVzLT5wICE9IE5VTEwpIHsKKyAgICAgIC8qIHRoZXJlIGlzIGEgcmVtYWluaW5nIHBidWYgKGNoYWluKSAgKi8KKyAgICAgIHRjcGVjaG9fcmF3X3NlbmQodHBjYiwgZXMpOworICAgIH0gZWxzZSB7CisgICAgICAvKiBubyByZW1haW5pbmcgcGJ1ZiAoY2hhaW4pICAqLworICAgICAgaWYoZXMtPnN0YXRlID09IEVTX0NMT1NJTkcpIHsKKyAgICAgICAgdGNwZWNob19yYXdfY2xvc2UodHBjYiwgZXMpOworICAgICAgfQorICAgIH0KKyAgICByZXRfZXJyID0gRVJSX09LOworICB9IGVsc2UgeworICAgIC8qIG5vdGhpbmcgdG8gYmUgZG9uZSAqLworICAgIHRjcF9hYm9ydCh0cGNiKTsKKyAgICByZXRfZXJyID0gRVJSX0FCUlQ7CisgIH0KKyAgcmV0dXJuIHJldF9lcnI7Cit9CisKK3N0YXRpYyBlcnJfdAordGNwZWNob19yYXdfc2VudCh2b2lkICphcmcsIHN0cnVjdCB0Y3BfcGNiICp0cGNiLCB1MTZfdCBsZW4pCit7CisgIHN0cnVjdCB0Y3BlY2hvX3Jhd19zdGF0ZSAqZXM7CisKKyAgTFdJUF9VTlVTRURfQVJHKGxlbik7CisKKyAgZXMgPSAoc3RydWN0IHRjcGVjaG9fcmF3X3N0YXRlICopYXJnOworICBlcy0+cmV0cmllcyA9IDA7CisKKyAgaWYoZXMtPnAgIT0gTlVMTCkgeworICAgIC8qIHN0aWxsIGdvdCBwYnVmcyB0byBzZW5kICovCisgICAgdGNwX3NlbnQodHBjYiwgdGNwZWNob19yYXdfc2VudCk7CisgICAgdGNwZWNob19yYXdfc2VuZCh0cGNiLCBlcyk7CisgIH0gZWxzZSB7CisgICAgLyogbm8gbW9yZSBwYnVmcyB0byBzZW5kICovCisgICAgaWYoZXMtPnN0YXRlID09IEVTX0NMT1NJTkcpIHsKKyAgICAgIHRjcGVjaG9fcmF3X2Nsb3NlKHRwY2IsIGVzKTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIEVSUl9PSzsKK30KKworc3RhdGljIGVycl90Cit0Y3BlY2hvX3Jhd19yZWN2KHZvaWQgKmFyZywgc3RydWN0IHRjcF9wY2IgKnRwY2IsIHN0cnVjdCBwYnVmICpwLCBlcnJfdCBlcnIpCit7CisgIHN0cnVjdCB0Y3BlY2hvX3Jhd19zdGF0ZSAqZXM7CisgIGVycl90IHJldF9lcnI7CisKKyAgTFdJUF9BU1NFUlQoImFyZyAhPSBOVUxMIixhcmcgIT0gTlVMTCk7CisgIGVzID0gKHN0cnVjdCB0Y3BlY2hvX3Jhd19zdGF0ZSAqKWFyZzsKKyAgaWYgKHAgPT0gTlVMTCkgeworICAgIC8qIHJlbW90ZSBob3N0IGNsb3NlZCBjb25uZWN0aW9uICovCisgICAgZXMtPnN0YXRlID0gRVNfQ0xPU0lORzsKKyAgICBpZihlcy0+cCA9PSBOVUxMKSB7CisgICAgICAvKiB3ZSdyZSBkb25lIHNlbmRpbmcsIGNsb3NlIGl0ICovCisgICAgICB0Y3BlY2hvX3Jhd19jbG9zZSh0cGNiLCBlcyk7CisgICAgfSBlbHNlIHsKKyAgICAgIC8qIHdlJ3JlIG5vdCBkb25lIHlldCAqLworICAgICAgdGNwZWNob19yYXdfc2VuZCh0cGNiLCBlcyk7CisgICAgfQorICAgIHJldF9lcnIgPSBFUlJfT0s7CisgIH0gZWxzZSBpZihlcnIgIT0gRVJSX09LKSB7CisgICAgLyogY2xlYW51cCwgZm9yIHVua25vd24gcmVhc29uICovCisgICAgTFdJUF9BU1NFUlQoIm5vIHBidWYgZXhwZWN0ZWQgaGVyZSIsIHAgPT0gTlVMTCk7CisgICAgcmV0X2VyciA9IGVycjsKKyAgfQorICBlbHNlIGlmKGVzLT5zdGF0ZSA9PSBFU19BQ0NFUFRFRCkgeworICAgIC8qIGZpcnN0IGRhdGEgY2h1bmsgaW4gcC0+cGF5bG9hZCAqLworICAgIGVzLT5zdGF0ZSA9IEVTX1JFQ0VJVkVEOworICAgIC8qIHN0b3JlIHJlZmVyZW5jZSB0byBpbmNvbWluZyBwYnVmIChjaGFpbikgKi8KKyAgICBlcy0+cCA9IHA7CisgICAgdGNwZWNob19yYXdfc2VuZCh0cGNiLCBlcyk7CisgICAgcmV0X2VyciA9IEVSUl9PSzsKKyAgfSBlbHNlIGlmIChlcy0+c3RhdGUgPT0gRVNfUkVDRUlWRUQpIHsKKyAgICAvKiByZWFkIHNvbWUgbW9yZSBkYXRhICovCisgICAgaWYoZXMtPnAgPT0gTlVMTCkgeworICAgICAgZXMtPnAgPSBwOworICAgICAgdGNwZWNob19yYXdfc2VuZCh0cGNiLCBlcyk7CisgICAgfSBlbHNlIHsKKyAgICAgIHN0cnVjdCBwYnVmICpwdHI7CisKKyAgICAgIC8qIGNoYWluIHBidWZzIHRvIHRoZSBlbmQgb2Ygd2hhdCB3ZSByZWN2J2VkIHByZXZpb3VzbHkgICovCisgICAgICBwdHIgPSBlcy0+cDsKKyAgICAgIHBidWZfY2F0KHB0cixwKTsKKyAgICB9CisgICAgcmV0X2VyciA9IEVSUl9PSzsKKyAgfSBlbHNlIHsKKyAgICAvKiB1bmtub3duIGVzLT5zdGF0ZSwgdHJhc2ggZGF0YSAgKi8KKyAgICB0Y3BfcmVjdmVkKHRwY2IsIHAtPnRvdF9sZW4pOworICAgIHBidWZfZnJlZShwKTsKKyAgICByZXRfZXJyID0gRVJSX09LOworICB9CisgIHJldHVybiByZXRfZXJyOworfQorCitzdGF0aWMgZXJyX3QKK3RjcGVjaG9fcmF3X2FjY2VwdCh2b2lkICphcmcsIHN0cnVjdCB0Y3BfcGNiICpuZXdwY2IsIGVycl90IGVycikKK3sKKyAgZXJyX3QgcmV0X2VycjsKKyAgc3RydWN0IHRjcGVjaG9fcmF3X3N0YXRlICplczsKKworICBMV0lQX1VOVVNFRF9BUkcoYXJnKTsKKyAgaWYgKChlcnIgIT0gRVJSX09LKSB8fCAobmV3cGNiID09IE5VTEwpKSB7CisgICAgcmV0dXJuIEVSUl9WQUw7CisgIH0KKworICAvKiBVbmxlc3MgdGhpcyBwY2Igc2hvdWxkIGhhdmUgTk9STUFMIHByaW9yaXR5LCBzZXQgaXRzIHByaW9yaXR5IG5vdy4KKyAgICAgV2hlbiBydW5uaW5nIG91dCBvZiBwY2JzLCBsb3cgcHJpb3JpdHkgcGNicyBjYW4gYmUgYWJvcnRlZCB0byBjcmVhdGUKKyAgICAgbmV3IHBjYnMgb2YgaGlnaGVyIHByaW9yaXR5LiAqLworICB0Y3Bfc2V0cHJpbyhuZXdwY2IsIFRDUF9QUklPX01JTik7CisKKyAgZXMgPSAoc3RydWN0IHRjcGVjaG9fcmF3X3N0YXRlICopbWVtX21hbGxvYyhzaXplb2Yoc3RydWN0IHRjcGVjaG9fcmF3X3N0YXRlKSk7CisgIGlmIChlcyAhPSBOVUxMKSB7CisgICAgZXMtPnN0YXRlID0gRVNfQUNDRVBURUQ7CisgICAgZXMtPnBjYiA9IG5ld3BjYjsKKyAgICBlcy0+cmV0cmllcyA9IDA7CisgICAgZXMtPnAgPSBOVUxMOworICAgIC8qIHBhc3MgbmV3bHkgYWxsb2NhdGVkIGVzIHRvIG91ciBjYWxsYmFja3MgKi8KKyAgICB0Y3BfYXJnKG5ld3BjYiwgZXMpOworICAgIHRjcF9yZWN2KG5ld3BjYiwgdGNwZWNob19yYXdfcmVjdik7CisgICAgdGNwX2VycihuZXdwY2IsIHRjcGVjaG9fcmF3X2Vycm9yKTsKKyAgICB0Y3BfcG9sbChuZXdwY2IsIHRjcGVjaG9fcmF3X3BvbGwsIDApOworICAgIHRjcF9zZW50KG5ld3BjYiwgdGNwZWNob19yYXdfc2VudCk7CisgICAgcmV0X2VyciA9IEVSUl9PSzsKKyAgfSBlbHNlIHsKKyAgICByZXRfZXJyID0gRVJSX01FTTsKKyAgfQorICByZXR1cm4gcmV0X2VycjsKK30KKwordm9pZAordGNwZWNob19yYXdfaW5pdCh2b2lkKQoreworICB0Y3BlY2hvX3Jhd19wY2IgPSB0Y3BfbmV3X2lwX3R5cGUoSVBBRERSX1RZUEVfQU5ZKTsKKyAgaWYgKHRjcGVjaG9fcmF3X3BjYiAhPSBOVUxMKSB7CisgICAgZXJyX3QgZXJyOworCisgICAgZXJyID0gdGNwX2JpbmQodGNwZWNob19yYXdfcGNiLCBJUF9BTllfVFlQRSwgNyk7CisgICAgaWYgKGVyciA9PSBFUlJfT0spIHsKKyAgICAgIHRjcGVjaG9fcmF3X3BjYiA9IHRjcF9saXN0ZW4odGNwZWNob19yYXdfcGNiKTsKKyAgICAgIHRjcF9hY2NlcHQodGNwZWNob19yYXdfcGNiLCB0Y3BlY2hvX3Jhd19hY2NlcHQpOworICAgIH0gZWxzZSB7CisgICAgICAvKiBhYm9ydD8gb3V0cHV0IGRpYWdub3N0aWM/ICovCisgICAgfQorICB9IGVsc2UgeworICAgIC8qIGFib3J0PyBvdXRwdXQgZGlhZ25vc3RpYz8gKi8KKyAgfQorfQorCisjZW5kaWYgLyogTFdJUF9UQ1AgJiYgTFdJUF9DQUxMQkFDS19BUEkgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy90Y3BlY2hvX3Jhdy90Y3BlY2hvX3Jhdy5oIGIvY29udHJpYi9hcHBzL3RjcGVjaG9fcmF3L3RjcGVjaG9fcmF3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFlM2IzMwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy90Y3BlY2hvX3Jhdy90Y3BlY2hvX3Jhdy5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKi8KKyNpZm5kZWYgTFdJUF9UQ1BFQ0hPX1JBV19ICisjZGVmaW5lIExXSVBfVENQRUNIT19SQVdfSAorCit2b2lkIHRjcGVjaG9fcmF3X2luaXQodm9pZCk7CisKKyNlbmRpZiAvKiBMV0lQX1RDUEVDSE9fUkFXX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy91ZHBlY2hvL3VkcGVjaG8uYyBiL2NvbnRyaWIvYXBwcy91ZHBlY2hvL3VkcGVjaG8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjgzMDFlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL3VkcGVjaG8vdWRwZWNoby5jCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworCisjaW5jbHVkZSAidWRwZWNoby5oIgorCisjaW5jbHVkZSAibHdpcC9vcHQuaCIKKworI2lmIExXSVBfTkVUQ09OTgorCisjaW5jbHVkZSAibHdpcC9hcGkuaCIKKyNpbmNsdWRlICJsd2lwL3N5cy5oIgorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyB2b2lkCit1ZHBlY2hvX3RocmVhZCh2b2lkICphcmcpCit7CisgIHN0cnVjdCBuZXRjb25uICpjb25uOworICBzdHJ1Y3QgbmV0YnVmICpidWY7CisgIGNoYXIgYnVmZmVyWzQwOTZdOworICBlcnJfdCBlcnI7CisgIExXSVBfVU5VU0VEX0FSRyhhcmcpOworCisjaWYgTFdJUF9JUFY2CisgIGNvbm4gPSBuZXRjb25uX25ldyhORVRDT05OX1VEUF9JUFY2KTsKKyAgTFdJUF9FUlJPUigidWRwZWNobzogaW52YWxpZCBjb25uIiwgKGNvbm4gIT0gTlVMTCksIHJldHVybjspOworICBuZXRjb25uX2JpbmQoY29ubiwgSVA2X0FERFJfQU5ZLCA3KTsKKyNlbHNlIC8qIExXSVBfSVBWNiAqLworICBjb25uID0gbmV0Y29ubl9uZXcoTkVUQ09OTl9VRFApOworICBMV0lQX0VSUk9SKCJ1ZHBlY2hvOiBpbnZhbGlkIGNvbm4iLCAoY29ubiAhPSBOVUxMKSwgcmV0dXJuOyk7CisgIG5ldGNvbm5fYmluZChjb25uLCBJUF9BRERSX0FOWSwgNyk7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisKKyAgd2hpbGUgKDEpIHsKKyAgICBlcnIgPSBuZXRjb25uX3JlY3YoY29ubiwgJmJ1Zik7CisgICAgaWYgKGVyciA9PSBFUlJfT0spIHsKKyAgICAgIC8qICBubyBuZWVkIG5ldGNvbm5fY29ubmVjdCBoZXJlLCBzaW5jZSB0aGUgbmV0YnVmIGNvbnRhaW5zIHRoZSBhZGRyZXNzICovCisgICAgICBpZihuZXRidWZfY29weShidWYsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikpICE9IGJ1Zi0+cC0+dG90X2xlbikgeworICAgICAgICBMV0lQX0RFQlVHRihMV0lQX0RCR19PTiwgKCJuZXRidWZfY29weSBmYWlsZWRcbiIpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGJ1ZmZlcltidWYtPnAtPnRvdF9sZW5dID0gJ1wwJzsKKyAgICAgICAgZXJyID0gbmV0Y29ubl9zZW5kKGNvbm4sIGJ1Zik7CisgICAgICAgIGlmKGVyciAhPSBFUlJfT0spIHsKKyAgICAgICAgICBMV0lQX0RFQlVHRihMV0lQX0RCR19PTiwgKCJuZXRjb25uX3NlbmQgZmFpbGVkOiAlZFxuIiwgKGludCllcnIpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICBMV0lQX0RFQlVHRihMV0lQX0RCR19PTiwgKCJnb3QgJXNcbiIsIGJ1ZmZlcikpOworICAgICAgICB9CisgICAgICB9CisgICAgICBuZXRidWZfZGVsZXRlKGJ1Zik7CisgICAgfQorICB9Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3ZvaWQKK3VkcGVjaG9faW5pdCh2b2lkKQoreworICBzeXNfdGhyZWFkX25ldygidWRwZWNob190aHJlYWQiLCB1ZHBlY2hvX3RocmVhZCwgTlVMTCwgREVGQVVMVF9USFJFQURfU1RBQ0tTSVpFLCBERUZBVUxUX1RIUkVBRF9QUklPKTsKK30KKworI2VuZGlmIC8qIExXSVBfTkVUQ09OTiAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL3VkcGVjaG8vdWRwZWNoby5oIGIvY29udHJpYi9hcHBzL3VkcGVjaG8vdWRwZWNoby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0Mzg5MTEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2FwcHMvdWRwZWNoby91ZHBlY2hvLmgKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDAzIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogQWRhbSBEdW5rZWxzIDxhZGFtQHNpY3Muc2U+CisgKgorICovCisjaWZuZGVmIExXSVBfVURQRUNIT19ICisjZGVmaW5lIExXSVBfVURQRUNIT19ICisKK3ZvaWQgdWRwZWNob19pbml0KHZvaWQpOworCisjZW5kaWYgLyogTFdJUF9VRFBFQ0hPX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYXBwcy91ZHBlY2hvX3Jhdy91ZHBlY2hvX3Jhdy5jIGIvY29udHJpYi9hcHBzL3VkcGVjaG9fcmF3L3VkcGVjaG9fcmF3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDNjOWYwYgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvYXBwcy91ZHBlY2hvX3Jhdy91ZHBlY2hvX3Jhdy5jCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgU3RlcGhhbiBMaW56IDxsaW56QGxpLXByby5uZXQ+LCBMaS1Qcm8uTmV0CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEJhc2VkIG9uIGV4YW1wbGVzIHByb3ZpZGVkIGJ5CisgKiBJd2FuIEJ1ZGkgS3VzbmFudG8gPGlia0BsYWJoaWphdS5uZXQ+IChodHRwczovL2dpc3QuZ2l0aHViLmNvbS9pd2FuYmsvMTM5OTcyOSkKKyAqIEp1cmkgSGFiZXJsYW5kIDxqdXJpQHNhcGllbnRpLXNhdC5vcmc+IChodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1sL2x3aXAtdXNlcnMvMjAwNy0wNi9tc2cwMDA3OC5odG1sKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgYW5kIGEgY29udHJpYnV0aW9uIHRvIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBDcmVkaXRzIGdvIHRvIEFkYW0gRHVua2VscyAoYW5kIHRoZSBjdXJyZW50IG1haW50YWluZXJzKSBvZiB0aGlzIHNvZnR3YXJlLgorICoKKyAqIFN0ZXBoYW4gTGlueiByZXdyb3RlIHRoaXMgZmlsZSB0byBnZXQgYSBiYXNpYyBlY2hvIGV4YW1wbGUuCisgKi8KKworLyoqCisgKiBAZmlsZQorICogVURQIGVjaG8gc2VydmVyIGV4YW1wbGUgdXNpbmcgcmF3IEFQSS4KKyAqCisgKiBFY2hvcyBhbGwgYnl0ZXMgc2VudCBieSBjb25uZWN0aW5nIGNsaWVudCwKKyAqIGFuZCBwYXNzaXZlbHkgY2xvc2VzIHdoZW4gY2xpZW50IGlzIGRvbmUuCisgKgorICovCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorI2luY2x1ZGUgImx3aXAvZGVidWcuaCIKKyNpbmNsdWRlICJsd2lwL3N0YXRzLmgiCisjaW5jbHVkZSAibHdpcC91ZHAuaCIKKyNpbmNsdWRlICJ1ZHBlY2hvX3Jhdy5oIgorCisjaWYgTFdJUF9VRFAKKworc3RhdGljIHN0cnVjdCB1ZHBfcGNiICp1ZHBlY2hvX3Jhd19wY2I7CisKK3N0YXRpYyB2b2lkCit1ZHBlY2hvX3Jhd19yZWN2KHZvaWQgKmFyZywgc3RydWN0IHVkcF9wY2IgKnVwY2IsIHN0cnVjdCBwYnVmICpwLAorICAgICAgICAgICAgICAgICBjb25zdCBpcF9hZGRyX3QgKmFkZHIsIHUxNl90IHBvcnQpCit7CisgIExXSVBfVU5VU0VEX0FSRyhhcmcpOworICBpZiAocCAhPSBOVUxMKSB7CisgICAgLyogc2VuZCByZWNlaXZlZCBwYWNrZXQgYmFjayB0byBzZW5kZXIgKi8KKyAgICB1ZHBfc2VuZHRvKHVwY2IsIHAsIGFkZHIsIHBvcnQpOworICAgIC8qIGZyZWUgdGhlIHBidWYgKi8KKyAgICBwYnVmX2ZyZWUocCk7CisgIH0KK30KKwordm9pZAordWRwZWNob19yYXdfaW5pdCh2b2lkKQoreworICB1ZHBlY2hvX3Jhd19wY2IgPSB1ZHBfbmV3X2lwX3R5cGUoSVBBRERSX1RZUEVfQU5ZKTsKKyAgaWYgKHVkcGVjaG9fcmF3X3BjYiAhPSBOVUxMKSB7CisgICAgZXJyX3QgZXJyOworCisgICAgZXJyID0gdWRwX2JpbmQodWRwZWNob19yYXdfcGNiLCBJUF9BTllfVFlQRSwgNyk7CisgICAgaWYgKGVyciA9PSBFUlJfT0spIHsKKyAgICAgIHVkcF9yZWN2KHVkcGVjaG9fcmF3X3BjYiwgdWRwZWNob19yYXdfcmVjdiwgTlVMTCk7CisgICAgfSBlbHNlIHsKKyAgICAgIC8qIGFib3J0PyBvdXRwdXQgZGlhZ25vc3RpYz8gKi8KKyAgICB9CisgIH0gZWxzZSB7CisgICAgLyogYWJvcnQ/IG91dHB1dCBkaWFnbm9zdGljPyAqLworICB9Cit9CisKKyNlbmRpZiAvKiBMV0lQX1VEUCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9hcHBzL3VkcGVjaG9fcmF3L3VkcGVjaG9fcmF3LmggYi9jb250cmliL2FwcHMvdWRwZWNob19yYXcvdWRwZWNob19yYXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTk4Yjc0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9hcHBzL3VkcGVjaG9fcmF3L3VkcGVjaG9fcmF3LmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNiBTdGVwaGFuIExpbnogPGxpbnpAbGktcHJvLm5ldD4sIExpLVByby5OZXQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogQmFzZWQgb24gZXhhbXBsZXMgcHJvdmlkZWQgYnkKKyAqIEl3YW4gQnVkaSBLdXNuYW50byA8aWJrQGxhYmhpamF1Lm5ldD4gKGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2l3YW5iay8xMzk5NzI5KQorICogSnVyaSBIYWJlcmxhbmQgPGp1cmlAc2FwaWVudGktc2F0Lm9yZz4gKGh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvbHdpcC11c2Vycy8yMDA3LTA2L21zZzAwMDc4Lmh0bWwpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICovCisjaWZuZGVmIExXSVBfVURQRUNIT19SQVdfSAorI2RlZmluZSBMV0lQX1VEUEVDSE9fUkFXX0gKKwordm9pZCB1ZHBlY2hvX3Jhd19pbml0KHZvaWQpOworCisjZW5kaWYgLyogTFdJUF9VRFBFQ0hPX1JBV19IICovCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2V0aGVybmV0aWYvZXRoZXJuZXRpZi5jIGIvY29udHJpYi9leGFtcGxlcy9ldGhlcm5ldGlmL2V0aGVybmV0aWYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTc2M2U4Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9ldGhlcm5ldGlmL2V0aGVybmV0aWYuYwpAQCAtMCwwICsxLDMzNyBAQAorLyoqCisgKiBAZmlsZQorICogRXRoZXJuZXQgSW50ZXJmYWNlIFNrZWxldG9uCisgKgorICovCisKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwNCBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworCisvKgorICogVGhpcyBmaWxlIGlzIGEgc2tlbGV0b24gZm9yIGRldmVsb3BpbmcgRXRoZXJuZXQgbmV0d29yayBpbnRlcmZhY2UKKyAqIGRyaXZlcnMgZm9yIGx3SVAuIEFkZCBjb2RlIHRvIHRoZSBsb3dfbGV2ZWwgZnVuY3Rpb25zIGFuZCBkbyBhCisgKiBzZWFyY2gtYW5kLXJlcGxhY2UgZm9yIHRoZSB3b3JkICJldGhlcm5ldGlmIiB0byByZXBsYWNlIGl0IHdpdGgKKyAqIHNvbWV0aGluZyB0aGF0IGJldHRlciBkZXNjcmliZXMgeW91ciBuZXR3b3JrIGludGVyZmFjZS4KKyAqLworCisjaW5jbHVkZSAibHdpcC9vcHQuaCIKKworI2lmIDAgLyogZG9uJ3QgYnVpbGQsIHRoaXMgaXMgb25seSBhIHNrZWxldG9uLCBzZWUgcHJldmlvdXMgY29tbWVudCAqLworCisjaW5jbHVkZSAibHdpcC9kZWYuaCIKKyNpbmNsdWRlICJsd2lwL21lbS5oIgorI2luY2x1ZGUgImx3aXAvcGJ1Zi5oIgorI2luY2x1ZGUgImx3aXAvc3RhdHMuaCIKKyNpbmNsdWRlICJsd2lwL3NubXAuaCIKKyNpbmNsdWRlICJsd2lwL2V0aGlwNi5oIgorI2luY2x1ZGUgImx3aXAvZXRoYXJwLmgiCisjaW5jbHVkZSAibmV0aWYvcHBwL3BwcG9lLmgiCisKKy8qIERlZmluZSB0aG9zZSB0byBiZXR0ZXIgZGVzY3JpYmUgeW91ciBuZXR3b3JrIGludGVyZmFjZS4gKi8KKyNkZWZpbmUgSUZOQU1FMCAnZScKKyNkZWZpbmUgSUZOQU1FMSAnbicKKworLyoqCisgKiBIZWxwZXIgc3RydWN0IHRvIGhvbGQgcHJpdmF0ZSBkYXRhIHVzZWQgdG8gb3BlcmF0ZSB5b3VyIGV0aGVybmV0IGludGVyZmFjZS4KKyAqIEtlZXBpbmcgdGhlIGV0aGVybmV0IGFkZHJlc3Mgb2YgdGhlIE1BQyBpbiB0aGlzIHN0cnVjdCBpcyBub3QgbmVjZXNzYXJ5CisgKiBhcyBpdCBpcyBhbHJlYWR5IGtlcHQgaW4gdGhlIHN0cnVjdCBuZXRpZi4KKyAqIEJ1dCB0aGlzIGlzIG9ubHkgYW4gZXhhbXBsZSwgYW55d2F5Li4uCisgKi8KK3N0cnVjdCBldGhlcm5ldGlmIHsKKyAgc3RydWN0IGV0aF9hZGRyICpldGhhZGRyOworICAvKiBBZGQgd2hhdGV2ZXIgcGVyLWludGVyZmFjZSBzdGF0ZSB0aGF0IGlzIG5lZWRlZCBoZXJlLiAqLworfTsKKworLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMuICovCitzdGF0aWMgdm9pZCAgZXRoZXJuZXRpZl9pbnB1dChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTsKKworLyoqCisgKiBJbiB0aGlzIGZ1bmN0aW9uLCB0aGUgaGFyZHdhcmUgc2hvdWxkIGJlIGluaXRpYWxpemVkLgorICogQ2FsbGVkIGZyb20gZXRoZXJuZXRpZl9pbml0KCkuCisgKgorICogQHBhcmFtIG5ldGlmIHRoZSBhbHJlYWR5IGluaXRpYWxpemVkIGx3aXAgbmV0d29yayBpbnRlcmZhY2Ugc3RydWN0dXJlCisgKiAgICAgICAgZm9yIHRoaXMgZXRoZXJuZXRpZgorICovCitzdGF0aWMgdm9pZAorbG93X2xldmVsX2luaXQoc3RydWN0IG5ldGlmICpuZXRpZikKK3sKKyAgc3RydWN0IGV0aGVybmV0aWYgKmV0aGVybmV0aWYgPSBuZXRpZi0+c3RhdGU7CisKKyAgLyogc2V0IE1BQyBoYXJkd2FyZSBhZGRyZXNzIGxlbmd0aCAqLworICBuZXRpZi0+aHdhZGRyX2xlbiA9IEVUSEFSUF9IV0FERFJfTEVOOworCisgIC8qIHNldCBNQUMgaGFyZHdhcmUgYWRkcmVzcyAqLworICBuZXRpZi0+aHdhZGRyWzBdID0gOworICAuLi4KKyAgbmV0aWYtPmh3YWRkcls1XSA9IDsKKworICAvKiBtYXhpbXVtIHRyYW5zZmVyIHVuaXQgKi8KKyAgbmV0aWYtPm10dSA9IDE1MDA7CisKKyAgLyogZGV2aWNlIGNhcGFiaWxpdGllcyAqLworICAvKiBkb24ndCBzZXQgTkVUSUZfRkxBR19FVEhBUlAgaWYgdGhpcyBkZXZpY2UgaXMgbm90IGFuIGV0aGVybmV0IG9uZSAqLworICBuZXRpZi0+ZmxhZ3MgPSBORVRJRl9GTEFHX0JST0FEQ0FTVCB8IE5FVElGX0ZMQUdfRVRIQVJQIHwgTkVUSUZfRkxBR19MSU5LX1VQOworCisjaWYgTFdJUF9JUFY2ICYmIExXSVBfSVBWNl9NTEQKKyAgLyoKKyAgICogRm9yIGhhcmR3YXJlL25ldGlmcyB0aGF0IGltcGxlbWVudCBNQUMgZmlsdGVyaW5nLgorICAgKiBBbGwtbm9kZXMgbGluay1sb2NhbCBpcyBoYW5kbGVkIGJ5IGRlZmF1bHQsIHNvIHdlIG11c3QgbGV0IHRoZSBoYXJkd2FyZSBrbm93CisgICAqIHRvIGFsbG93IG11bHRpY2FzdCBwYWNrZXRzIGluLgorICAgKiBTaG91bGQgc2V0IG1sZF9tYWNfZmlsdGVyIHByZXZpb3VzbHkuICovCisgIGlmIChuZXRpZi0+bWxkX21hY19maWx0ZXIgIT0gTlVMTCkgeworICAgIGlwNl9hZGRyX3QgaXA2X2FsbG5vZGVzX2xsOworICAgIGlwNl9hZGRyX3NldF9hbGxub2Rlc19saW5rbG9jYWwoJmlwNl9hbGxub2Rlc19sbCk7CisgICAgbmV0aWYtPm1sZF9tYWNfZmlsdGVyKG5ldGlmLCAmaXA2X2FsbG5vZGVzX2xsLCBORVRJRl9BRERfTUFDX0ZJTFRFUik7CisgIH0KKyNlbmRpZiAvKiBMV0lQX0lQVjYgJiYgTFdJUF9JUFY2X01MRCAqLworCisgIC8qIERvIHdoYXRldmVyIGVsc2UgaXMgbmVlZGVkIHRvIGluaXRpYWxpemUgaW50ZXJmYWNlLiAqLworfQorCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGRvIHRoZSBhY3R1YWwgdHJhbnNtaXNzaW9uIG9mIHRoZSBwYWNrZXQuIFRoZSBwYWNrZXQgaXMKKyAqIGNvbnRhaW5lZCBpbiB0aGUgcGJ1ZiB0aGF0IGlzIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uIFRoaXMgcGJ1ZgorICogbWlnaHQgYmUgY2hhaW5lZC4KKyAqCisgKiBAcGFyYW0gbmV0aWYgdGhlIGx3aXAgbmV0d29yayBpbnRlcmZhY2Ugc3RydWN0dXJlIGZvciB0aGlzIGV0aGVybmV0aWYKKyAqIEBwYXJhbSBwIHRoZSBNQUMgcGFja2V0IHRvIHNlbmQgKGUuZy4gSVAgcGFja2V0IGluY2x1ZGluZyBNQUMgYWRkcmVzc2VzIGFuZCB0eXBlKQorICogQHJldHVybiBFUlJfT0sgaWYgdGhlIHBhY2tldCBjb3VsZCBiZSBzZW50CisgKiAgICAgICAgIGFuIGVycl90IHZhbHVlIGlmIHRoZSBwYWNrZXQgY291bGRuJ3QgYmUgc2VudAorICoKKyAqIEBub3RlIFJldHVybmluZyBFUlJfTUVNIGhlcmUgaWYgYSBETUEgcXVldWUgb2YgeW91ciBNQUMgaXMgZnVsbCBjYW4gbGVhZCB0bworICogICAgICAgc3RyYW5nZSByZXN1bHRzLiBZb3UgbWlnaHQgY29uc2lkZXIgd2FpdGluZyBmb3Igc3BhY2UgaW4gdGhlIERNQSBxdWV1ZQorICogICAgICAgdG8gYmVjb21lIGF2YWlsYWJsZSBzaW5jZSB0aGUgc3RhY2sgZG9lc24ndCByZXRyeSB0byBzZW5kIGEgcGFja2V0CisgKiAgICAgICBkcm9wcGVkIGJlY2F1c2Ugb2YgbWVtb3J5IGZhaWx1cmUgKGV4Y2VwdCBmb3IgdGhlIFRDUCB0aW1lcnMpLgorICovCisKK3N0YXRpYyBlcnJfdAorbG93X2xldmVsX291dHB1dChzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBzdHJ1Y3QgcGJ1ZiAqcCkKK3sKKyAgc3RydWN0IGV0aGVybmV0aWYgKmV0aGVybmV0aWYgPSBuZXRpZi0+c3RhdGU7CisgIHN0cnVjdCBwYnVmICpxOworCisgIGluaXRpYXRlIHRyYW5zZmVyKCk7CisKKyNpZiBFVEhfUEFEX1NJWkUKKyAgcGJ1Zl9yZW1vdmVfaGVhZGVyKHAsIEVUSF9QQURfU0laRSk7IC8qIGRyb3AgdGhlIHBhZGRpbmcgd29yZCAqLworI2VuZGlmCisKKyAgZm9yIChxID0gcDsgcSAhPSBOVUxMOyBxID0gcS0+bmV4dCkgeworICAgIC8qIFNlbmQgdGhlIGRhdGEgZnJvbSB0aGUgcGJ1ZiB0byB0aGUgaW50ZXJmYWNlLCBvbmUgcGJ1ZiBhdCBhCisgICAgICAgdGltZS4gVGhlIHNpemUgb2YgdGhlIGRhdGEgaW4gZWFjaCBwYnVmIGlzIGtlcHQgaW4gdGhlIC0+bGVuCisgICAgICAgdmFyaWFibGUuICovCisgICAgc2VuZCBkYXRhIGZyb20ocS0+cGF5bG9hZCwgcS0+bGVuKTsKKyAgfQorCisgIHNpZ25hbCB0aGF0IHBhY2tldCBzaG91bGQgYmUgc2VudCgpOworCisgIE1JQjJfU1RBVFNfTkVUSUZfQUREKG5ldGlmLCBpZm91dG9jdGV0cywgcC0+dG90X2xlbik7CisgIGlmICgoKHU4X3QgKilwLT5wYXlsb2FkKVswXSAmIDEpIHsKKyAgICAvKiBicm9hZGNhc3Qgb3IgbXVsdGljYXN0IHBhY2tldCovCisgICAgTUlCMl9TVEFUU19ORVRJRl9JTkMobmV0aWYsIGlmb3V0bnVjYXN0cGt0cyk7CisgIH0gZWxzZSB7CisgICAgLyogdW5pY2FzdCBwYWNrZXQgKi8KKyAgICBNSUIyX1NUQVRTX05FVElGX0lOQyhuZXRpZiwgaWZvdXR1Y2FzdHBrdHMpOworICB9CisgIC8qIGluY3JlYXNlIGlmb3V0ZGlzY2FyZHMgb3IgaWZvdXRlcnJvcnMgb24gZXJyb3IgKi8KKworI2lmIEVUSF9QQURfU0laRQorICBwYnVmX2FkZF9oZWFkZXIocCwgRVRIX1BBRF9TSVpFKTsgLyogcmVjbGFpbSB0aGUgcGFkZGluZyB3b3JkICovCisjZW5kaWYKKworICBMSU5LX1NUQVRTX0lOQyhsaW5rLnhtaXQpOworCisgIHJldHVybiBFUlJfT0s7Cit9CisKKy8qKgorICogU2hvdWxkIGFsbG9jYXRlIGEgcGJ1ZiBhbmQgdHJhbnNmZXIgdGhlIGJ5dGVzIG9mIHRoZSBpbmNvbWluZworICogcGFja2V0IGZyb20gdGhlIGludGVyZmFjZSBpbnRvIHRoZSBwYnVmLgorICoKKyAqIEBwYXJhbSBuZXRpZiB0aGUgbHdpcCBuZXR3b3JrIGludGVyZmFjZSBzdHJ1Y3R1cmUgZm9yIHRoaXMgZXRoZXJuZXRpZgorICogQHJldHVybiBhIHBidWYgZmlsbGVkIHdpdGggdGhlIHJlY2VpdmVkIHBhY2tldCAoaW5jbHVkaW5nIE1BQyBoZWFkZXIpCisgKiAgICAgICAgIE5VTEwgb24gbWVtb3J5IGVycm9yCisgKi8KK3N0YXRpYyBzdHJ1Y3QgcGJ1ZiAqCitsb3dfbGV2ZWxfaW5wdXQoc3RydWN0IG5ldGlmICpuZXRpZikKK3sKKyAgc3RydWN0IGV0aGVybmV0aWYgKmV0aGVybmV0aWYgPSBuZXRpZi0+c3RhdGU7CisgIHN0cnVjdCBwYnVmICpwLCAqcTsKKyAgdTE2X3QgbGVuOworCisgIC8qIE9idGFpbiB0aGUgc2l6ZSBvZiB0aGUgcGFja2V0IGFuZCBwdXQgaXQgaW50byB0aGUgImxlbiIKKyAgICAgdmFyaWFibGUuICovCisgIGxlbiA9IDsKKworI2lmIEVUSF9QQURfU0laRQorICBsZW4gKz0gRVRIX1BBRF9TSVpFOyAvKiBhbGxvdyByb29tIGZvciBFdGhlcm5ldCBwYWRkaW5nICovCisjZW5kaWYKKworICAvKiBXZSBhbGxvY2F0ZSBhIHBidWYgY2hhaW4gb2YgcGJ1ZnMgZnJvbSB0aGUgcG9vbC4gKi8KKyAgcCA9IHBidWZfYWxsb2MoUEJVRl9SQVcsIGxlbiwgUEJVRl9QT09MKTsKKworICBpZiAocCAhPSBOVUxMKSB7CisKKyNpZiBFVEhfUEFEX1NJWkUKKyAgICBwYnVmX3JlbW92ZV9oZWFkZXIocCwgRVRIX1BBRF9TSVpFKTsgLyogZHJvcCB0aGUgcGFkZGluZyB3b3JkICovCisjZW5kaWYKKworICAgIC8qIFdlIGl0ZXJhdGUgb3ZlciB0aGUgcGJ1ZiBjaGFpbiB1bnRpbCB3ZSBoYXZlIHJlYWQgdGhlIGVudGlyZQorICAgICAqIHBhY2tldCBpbnRvIHRoZSBwYnVmLiAqLworICAgIGZvciAocSA9IHA7IHEgIT0gTlVMTDsgcSA9IHEtPm5leHQpIHsKKyAgICAgIC8qIFJlYWQgZW5vdWdoIGJ5dGVzIHRvIGZpbGwgdGhpcyBwYnVmIGluIHRoZSBjaGFpbi4gVGhlCisgICAgICAgKiBhdmFpbGFibGUgZGF0YSBpbiB0aGUgcGJ1ZiBpcyBnaXZlbiBieSB0aGUgcS0+bGVuCisgICAgICAgKiB2YXJpYWJsZS4KKyAgICAgICAqIFRoaXMgZG9lcyBub3QgbmVjZXNzYXJpbHkgaGF2ZSB0byBiZSBhIG1lbWNweSwgeW91IGNhbiBhbHNvIHByZWFsbG9jYXRlCisgICAgICAgKiBwYnVmcyBmb3IgYSBETUEtZW5hYmxlZCBNQUMgYW5kIGFmdGVyIHJlY2VpdmluZyB0cnVuY2F0ZSBpdCB0byB0aGUKKyAgICAgICAqIGFjdHVhbGx5IHJlY2VpdmVkIHNpemUuIEluIHRoaXMgY2FzZSwgZW5zdXJlIHRoZSB0b3RfbGVuIG1lbWJlciBvZiB0aGUKKyAgICAgICAqIHBidWYgaXMgdGhlIHN1bSBvZiB0aGUgY2hhaW5lZCBwYnVmIGxlbiBtZW1iZXJzLgorICAgICAgICovCisgICAgICByZWFkIGRhdGEgaW50byhxLT5wYXlsb2FkLCBxLT5sZW4pOworICAgIH0KKyAgICBhY2tub3dsZWRnZSB0aGF0IHBhY2tldCBoYXMgYmVlbiByZWFkKCk7CisKKyAgICBNSUIyX1NUQVRTX05FVElGX0FERChuZXRpZiwgaWZpbm9jdGV0cywgcC0+dG90X2xlbik7CisgICAgaWYgKCgodThfdCAqKXAtPnBheWxvYWQpWzBdICYgMSkgeworICAgICAgLyogYnJvYWRjYXN0IG9yIG11bHRpY2FzdCBwYWNrZXQqLworICAgICAgTUlCMl9TVEFUU19ORVRJRl9JTkMobmV0aWYsIGlmaW5udWNhc3Rwa3RzKTsKKyAgICB9IGVsc2UgeworICAgICAgLyogdW5pY2FzdCBwYWNrZXQqLworICAgICAgTUlCMl9TVEFUU19ORVRJRl9JTkMobmV0aWYsIGlmaW51Y2FzdHBrdHMpOworICAgIH0KKyNpZiBFVEhfUEFEX1NJWkUKKyAgICBwYnVmX2FkZF9oZWFkZXIocCwgRVRIX1BBRF9TSVpFKTsgLyogcmVjbGFpbSB0aGUgcGFkZGluZyB3b3JkICovCisjZW5kaWYKKworICAgIExJTktfU1RBVFNfSU5DKGxpbmsucmVjdik7CisgIH0gZWxzZSB7CisgICAgZHJvcCBwYWNrZXQoKTsKKyAgICBMSU5LX1NUQVRTX0lOQyhsaW5rLm1lbWVycik7CisgICAgTElOS19TVEFUU19JTkMobGluay5kcm9wKTsKKyAgICBNSUIyX1NUQVRTX05FVElGX0lOQyhuZXRpZiwgaWZpbmRpc2NhcmRzKTsKKyAgfQorCisgIHJldHVybiBwOworfQorCisvKioKKyAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCB3aGVuIGEgcGFja2V0IGlzIHJlYWR5IHRvIGJlIHJlYWQKKyAqIGZyb20gdGhlIGludGVyZmFjZS4gSXQgdXNlcyB0aGUgZnVuY3Rpb24gbG93X2xldmVsX2lucHV0KCkgdGhhdAorICogc2hvdWxkIGhhbmRsZSB0aGUgYWN0dWFsIHJlY2VwdGlvbiBvZiBieXRlcyBmcm9tIHRoZSBuZXR3b3JrCisgKiBpbnRlcmZhY2UuIFRoZW4gdGhlIHR5cGUgb2YgdGhlIHJlY2VpdmVkIHBhY2tldCBpcyBkZXRlcm1pbmVkIGFuZAorICogdGhlIGFwcHJvcHJpYXRlIGlucHV0IGZ1bmN0aW9uIGlzIGNhbGxlZC4KKyAqCisgKiBAcGFyYW0gbmV0aWYgdGhlIGx3aXAgbmV0d29yayBpbnRlcmZhY2Ugc3RydWN0dXJlIGZvciB0aGlzIGV0aGVybmV0aWYKKyAqLworc3RhdGljIHZvaWQKK2V0aGVybmV0aWZfaW5wdXQoc3RydWN0IG5ldGlmICpuZXRpZikKK3sKKyAgc3RydWN0IGV0aGVybmV0aWYgKmV0aGVybmV0aWY7CisgIHN0cnVjdCBldGhfaGRyICpldGhoZHI7CisgIHN0cnVjdCBwYnVmICpwOworCisgIGV0aGVybmV0aWYgPSBuZXRpZi0+c3RhdGU7CisKKyAgLyogbW92ZSByZWNlaXZlZCBwYWNrZXQgaW50byBhIG5ldyBwYnVmICovCisgIHAgPSBsb3dfbGV2ZWxfaW5wdXQobmV0aWYpOworICAvKiBpZiBubyBwYWNrZXQgY291bGQgYmUgcmVhZCwgc2lsZW50bHkgaWdub3JlIHRoaXMgKi8KKyAgaWYgKHAgIT0gTlVMTCkgeworICAgIC8qIHBhc3MgYWxsIHBhY2tldHMgdG8gZXRoZXJuZXRfaW5wdXQsIHdoaWNoIGRlY2lkZXMgd2hhdCBwYWNrZXRzIGl0IHN1cHBvcnRzICovCisgICAgaWYgKG5ldGlmLT5pbnB1dChwLCBuZXRpZikgIT0gRVJSX09LKSB7CisgICAgICBMV0lQX0RFQlVHRihORVRJRl9ERUJVRywgKCJldGhlcm5ldGlmX2lucHV0OiBJUCBpbnB1dCBlcnJvclxuIikpOworICAgICAgcGJ1Zl9mcmVlKHApOworICAgICAgcCA9IE5VTEw7CisgICAgfQorICB9Cit9CisKKy8qKgorICogU2hvdWxkIGJlIGNhbGxlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwcm9ncmFtIHRvIHNldCB1cCB0aGUKKyAqIG5ldHdvcmsgaW50ZXJmYWNlLiBJdCBjYWxscyB0aGUgZnVuY3Rpb24gbG93X2xldmVsX2luaXQoKSB0byBkbyB0aGUKKyAqIGFjdHVhbCBzZXR1cCBvZiB0aGUgaGFyZHdhcmUuCisgKgorICogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgcGFzc2VkIGFzIGEgcGFyYW1ldGVyIHRvIG5ldGlmX2FkZCgpLgorICoKKyAqIEBwYXJhbSBuZXRpZiB0aGUgbHdpcCBuZXR3b3JrIGludGVyZmFjZSBzdHJ1Y3R1cmUgZm9yIHRoaXMgZXRoZXJuZXRpZgorICogQHJldHVybiBFUlJfT0sgaWYgdGhlIGxvb3BpZiBpcyBpbml0aWFsaXplZAorICogICAgICAgICBFUlJfTUVNIGlmIHByaXZhdGUgZGF0YSBjb3VsZG4ndCBiZSBhbGxvY2F0ZWQKKyAqICAgICAgICAgYW55IG90aGVyIGVycl90IG9uIGVycm9yCisgKi8KK2Vycl90CitldGhlcm5ldGlmX2luaXQoc3RydWN0IG5ldGlmICpuZXRpZikKK3sKKyAgc3RydWN0IGV0aGVybmV0aWYgKmV0aGVybmV0aWY7CisKKyAgTFdJUF9BU1NFUlQoIm5ldGlmICE9IE5VTEwiLCAobmV0aWYgIT0gTlVMTCkpOworCisgIGV0aGVybmV0aWYgPSBtZW1fbWFsbG9jKHNpemVvZihzdHJ1Y3QgZXRoZXJuZXRpZikpOworICBpZiAoZXRoZXJuZXRpZiA9PSBOVUxMKSB7CisgICAgTFdJUF9ERUJVR0YoTkVUSUZfREVCVUcsICgiZXRoZXJuZXRpZl9pbml0OiBvdXQgb2YgbWVtb3J5XG4iKSk7CisgICAgcmV0dXJuIEVSUl9NRU07CisgIH0KKworI2lmIExXSVBfTkVUSUZfSE9TVE5BTUUKKyAgLyogSW5pdGlhbGl6ZSBpbnRlcmZhY2UgaG9zdG5hbWUgKi8KKyAgbmV0aWYtPmhvc3RuYW1lID0gImx3aXAiOworI2VuZGlmIC8qIExXSVBfTkVUSUZfSE9TVE5BTUUgKi8KKworICAvKgorICAgKiBJbml0aWFsaXplIHRoZSBzbm1wIHZhcmlhYmxlcyBhbmQgY291bnRlcnMgaW5zaWRlIHRoZSBzdHJ1Y3QgbmV0aWYuCisgICAqIFRoZSBsYXN0IGFyZ3VtZW50IHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIHlvdXIgbGluayBzcGVlZCwgaW4gdW5pdHMKKyAgICogb2YgYml0cyBwZXIgc2Vjb25kLgorICAgKi8KKyAgTUlCMl9JTklUX05FVElGKG5ldGlmLCBzbm1wX2lmVHlwZV9ldGhlcm5ldF9jc21hY2QsIExJTktfU1BFRURfT0ZfWU9VUl9ORVRJRl9JTl9CUFMpOworCisgIG5ldGlmLT5zdGF0ZSA9IGV0aGVybmV0aWY7CisgIG5ldGlmLT5uYW1lWzBdID0gSUZOQU1FMDsKKyAgbmV0aWYtPm5hbWVbMV0gPSBJRk5BTUUxOworICAvKiBXZSBkaXJlY3RseSB1c2UgZXRoYXJwX291dHB1dCgpIGhlcmUgdG8gc2F2ZSBhIGZ1bmN0aW9uIGNhbGwuCisgICAqIFlvdSBjYW4gaW5zdGVhZCBkZWNsYXJlIHlvdXIgb3duIGZ1bmN0aW9uIGFuIGNhbGwgZXRoYXJwX291dHB1dCgpCisgICAqIGZyb20gaXQgaWYgeW91IGhhdmUgdG8gZG8gc29tZSBjaGVja3MgYmVmb3JlIHNlbmRpbmcgKGUuZy4gaWYgbGluaworICAgKiBpcyBhdmFpbGFibGUuLi4pICovCisjaWYgTFdJUF9JUFY0CisgIG5ldGlmLT5vdXRwdXQgPSBldGhhcnBfb3V0cHV0OworI2VuZGlmIC8qIExXSVBfSVBWNCAqLworI2lmIExXSVBfSVBWNgorICBuZXRpZi0+b3V0cHV0X2lwNiA9IGV0aGlwNl9vdXRwdXQ7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisgIG5ldGlmLT5saW5rb3V0cHV0ID0gbG93X2xldmVsX291dHB1dDsKKworICBldGhlcm5ldGlmLT5ldGhhZGRyID0gKHN0cnVjdCBldGhfYWRkciAqKSAmIChuZXRpZi0+aHdhZGRyWzBdKTsKKworICAvKiBpbml0aWFsaXplIHRoZSBoYXJkd2FyZSAqLworICBsb3dfbGV2ZWxfaW5pdChuZXRpZik7CisKKyAgcmV0dXJuIEVSUl9PSzsKK30KKworI2VuZGlmIC8qIDAgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvZGVmYXVsdF9uZXRpZi5oIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9kZWZhdWx0X25ldGlmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE2NGYwMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvZGVmYXVsdF9uZXRpZi5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworCisjaWZuZGVmIExXSVBfREVGQVVMVF9ORVRJRl9ICisjZGVmaW5lIExXSVBfREVGQVVMVF9ORVRJRl9ICisKKyNpbmNsdWRlICJsd2lwL2lwX2FkZHIuaCIKKworI2lmIExXSVBfSVBWNAordm9pZCBpbml0X2RlZmF1bHRfbmV0aWYoY29uc3QgaXA0X2FkZHJfdCAqaXBhZGRyLCBjb25zdCBpcDRfYWRkcl90ICpuZXRtYXNrLCBjb25zdCBpcDRfYWRkcl90ICpndyk7CisjZWxzZQordm9pZCBpbml0X2RlZmF1bHRfbmV0aWYodm9pZCk7CisjZW5kaWYKKwordm9pZCBkZWZhdWx0X25ldGlmX3BvbGwodm9pZCk7Cit2b2lkIGRlZmF1bHRfbmV0aWZfc2h1dGRvd24odm9pZCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwY2ZnLmguY2kgYi9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL2x3aXBjZmcuaC5jaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzg0NzdjCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwY2ZnLmguY2kKQEAgLTAsMCArMSw3MyBAQAorLyoqCisgKiBBZGRpdGlvbmFsIHNldHRpbmdzIGZvciB0aGUgZXhhbXBsZSBhcHAuCisgKiBDb3B5IHRoaXMgdG8gbHdpcGNmZy5oIGFuZCBtYWtlIHRoZSBjb25maWcgY2hhbmdlcyB5b3UgbmVlZC4KKyAqLworCisvKiBjb25maWd1cmF0aW9uIGZvciB0aGlzIHBvcnQgKi8KKyNkZWZpbmUgUFBQX1VTRVJOQU1FICAiQWRtaW4iCisjZGVmaW5lIFBQUF9QQVNTV09SRCAgInBhc3MiCisKKy8qKiBEZWZpbmUgdGhpcyB0byB0aGUgaW5kZXggb2YgdGhlIHdpbmRvd3MgbmV0d29yayBhZGFwdGVyIHRvIHVzZSAqLworI2RlZmluZSBQQUNLRVRfTElCX0FEQVBURVJfTlIgICAgICAgICAxCisvKiogRGVmaW5lIHRoaXMgdG8gdGhlIEdVSUQgb2YgdGhlIHdpbmRvd3MgbmV0d29yayBhZGFwdGVyIHRvIHVzZQorICogb3IgTk9UIGRlZmluZSB0aGlzIGlmIHlvdSB3YW50IFBBQ0tFVF9MSUJfQURBUFRFUl9OUiB0byBiZSB1c2VkICovCisvKiNkZWZpbmUgUEFDS0VUX0xJQl9BREFQVEVSX0dVSUQgICAgICAgIjAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCIqLworLyojZGVmaW5lIFBBQ0tFVF9MSUJfR0VUX0FEQVBURVJfTkVUQUREUkVTUyhhZGRyKSBJUDRfQUREUigoYWRkciksIDE5MiwxNjgsMSwwKSovCisvKiNkZWZpbmUgUEFDS0VUX0xJQl9RVUlFVCovCisKKy8qICNkZWZpbmUgVVNFX1BDQVBJRiAxICovCisjZGVmaW5lIExXSVBfUE9SVF9JTklUX0lQQUREUihhZGRyKSAgIElQNF9BRERSKChhZGRyKSwgMTkyLDE2OCwxLDIwMCkKKyNkZWZpbmUgTFdJUF9QT1JUX0lOSVRfR1coYWRkcikgICAgICAgSVA0X0FERFIoKGFkZHIpLCAxOTIsMTY4LDEsMSkKKyNkZWZpbmUgTFdJUF9QT1JUX0lOSVRfTkVUTUFTSyhhZGRyKSAgSVA0X0FERFIoKGFkZHIpLCAyNTUsMjU1LDI1NSwwKQorCisvKiByZW1lbWJlciB0byBjaGFuZ2UgdGhpcyBNQUMgYWRkcmVzcyB0byBzdWl0IHlvdXIgbmVlZHMhCisgICB0aGUgbGFzdCBvY3RldCB3aWxsIGJlIGluY3JlYXNlZCBieSBuZXRpZi0+bnVtIGZvciBlYWNoIG5ldGlmICovCisjZGVmaW5lIExXSVBfTUFDX0FERFJfQkFTRSAgICAgICAgICAgIHsweDAwLDB4MDEsMHgwMiwweDAzLDB4MDQsMHgwNX0KKworLyogI2RlZmluZSBVU0VfU0xJUElGIDAgKi8KKy8qICNkZWZpbmUgU0lPX1VTRV9DT01QT1JUIDAgKi8KKyNpZmRlZiBVU0VfU0xJUElGCisjaWYgVVNFX1NMSVBJRgorI2RlZmluZSBMV0lQX1BPUlRfSU5JVF9TTElQMV9JUEFERFIoYWRkcikgICBJUDRfQUREUigoYWRkciksIDE5MiwgMTY4LCAgIDIsIDIpCisjZGVmaW5lIExXSVBfUE9SVF9JTklUX1NMSVAxX0dXKGFkZHIpICAgICAgIElQNF9BRERSKChhZGRyKSwgMTkyLCAxNjgsICAgMiwgMSkKKyNkZWZpbmUgTFdJUF9QT1JUX0lOSVRfU0xJUDFfTkVUTUFTSyhhZGRyKSAgSVA0X0FERFIoKGFkZHIpLCAyNTUsIDI1NSwgMjU1LCAwKQorI2lmIFVTRV9TTElQSUYgPiAxCisjZGVmaW5lIExXSVBfUE9SVF9JTklUX1NMSVAyX0lQQUREUihhZGRyKSAgIElQNF9BRERSKChhZGRyKSwgMTkyLCAxNjgsICAgMiwgMSkKKyNkZWZpbmUgTFdJUF9QT1JUX0lOSVRfU0xJUDJfR1coYWRkcikgICAgICAgSVA0X0FERFIoKGFkZHIpLCAwLCAgICAgMCwgICAwLCAwKQorI2RlZmluZSBMV0lQX1BPUlRfSU5JVF9TTElQMl9ORVRNQVNLKGFkZHIpICBJUDRfQUREUigoYWRkciksIDI1NSwgMjU1LCAyNTUsIDApKi8KKyNlbmRpZiAvKiBVU0VfU0xJUElGID4gMSAqLworI2VuZGlmIC8qIFVTRV9TTElQSUYgKi8KKyNlbmRpZiAvKiBVU0VfU0xJUElGICovCisKKy8qIGNvbmZpZ3VyYXRpb24gZm9yIGFwcGxpY2F0aW9ucyAqLworCisjZGVmaW5lIExXSVBfQ0hBUkdFTl9BUFAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ETlNfQVBQICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX0hUVFBEX0FQUCAgICAgICAgICAgICAgICBMV0lQX1RDUAorLyogU2V0IHRoaXMgdG8gMSB0byB1c2UgdGhlIG5ldGNvbm4gaHR0cCBzZXJ2ZXIsCisgKiBvdGhlcndpc2UgdGhlIHJhdyBhcGkgc2VydmVyIHdpbGwgYmUgdXNlZC4gKi8KKy8qI2RlZmluZSBMV0lQX0hUVFBEX0FQUF9ORVRDT05OICAgICAqLworI2RlZmluZSBMV0lQX05FVEJJT1NfQVBQICAgICAgICAgICAgICBMV0lQX0lQVjQgJiYgTFdJUF9VRFAKKyNkZWZpbmUgTFdJUF9ORVRJT19BUFAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX01ETlNfQVBQICAgICAgICAgICAgICAgICBMV0lQX1VEUAorI2RlZmluZSBMV0lQX01RVFRfQVBQICAgICAgICAgICAgICAgICBMV0lQX1RDUAorI2RlZmluZSBMV0lQX1BJTkdfQVBQICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfUlRQX0FQUCAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9TSEVMTF9BUFAgICAgICAgICAgICAgICAgTFdJUF9UQ1AKKyNkZWZpbmUgTFdJUF9TTk1QX0FQUCAgICAgICAgICAgICAgICAgTFdJUF9VRFAKKyNkZWZpbmUgTFdJUF9TTlRQX0FQUCAgICAgICAgICAgICAgICAgTFdJUF9VRFAKKyNkZWZpbmUgTFdJUF9TT0NLRVRfRVhBTVBMRVNfQVBQICAgICAgMQorI2RlZmluZSBMV0lQX1RDUEVDSE9fQVBQICAgICAgICAgICAgICBMV0lQX1RDUAorLyogU2V0IHRoaXMgdG8gMSB0byB1c2UgdGhlIG5ldGNvbm4gdGNwZWNobyBzZXJ2ZXIsCisgKiBvdGhlcndpc2UgdGhlIHJhdyBhcGkgc2VydmVyIHdpbGwgYmUgdXNlZC4gKi8KKy8qI2RlZmluZSBMV0lQX1RDUEVDSE9fQVBQX05FVENPTk4gICAqLworI2RlZmluZSBMV0lQX1RGVFBfQVBQICAgICAgICAgICAgICAgICBMV0lQX1VEUAorI2RlZmluZSBMV0lQX1RGVFBfQ0xJRU5UX0FQUCAgICAgICAgICBMV0lQX1VEUAorI2RlZmluZSBMV0lQX1VEUEVDSE9fQVBQICAgICAgICAgICAgICBMV0lQX1VEUAorI2RlZmluZSBMV0lQX0xXSVBFUkZfQVBQICAgICAgICAgICAgICBMV0lQX1RDUAorCisjZGVmaW5lIFVTRV9ESENQICAgICAgICAgICAgICAgICAgICAgIExXSVBfREhDUAorI2RlZmluZSBVU0VfQVVUT0lQICAgICAgICAgICAgICAgICAgICBMV0lQX0FVVE9JUAorCisvKiBkZWZpbmUgdGhpcyB0byB5b3VyIGN1c3RvbSBhcHBsaWNhdGlvbi1pbml0IGZ1bmN0aW9uICovCisvKiAjZGVmaW5lIExXSVBfQVBQX0lOSVQgbXlfYXBwX2luaXQoKSAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwY2ZnLmguZXhhbXBsZSBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvbHdpcGNmZy5oLmV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjIxZTE5YgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvbHdpcGNmZy5oLmV4YW1wbGUKQEAgLTAsMCArMSw3NyBAQAorLyoqCisgKiBBZGRpdGlvbmFsIHNldHRpbmdzIGZvciB0aGUgZXhhbXBsZSBhcHAuCisgKiBDb3B5IHRoaXMgdG8gbHdpcGNmZy5oIGFuZCBtYWtlIHRoZSBjb25maWcgY2hhbmdlcyB5b3UgbmVlZC4KKyAqLworCisvKiBjb25maWd1cmF0aW9uIGZvciB0aGlzIHBvcnQgKi8KKyNkZWZpbmUgUFBQX1VTRVJOQU1FICAiQWRtaW4iCisjZGVmaW5lIFBQUF9QQVNTV09SRCAgInBhc3MiCisKKy8qKiBEZWZpbmUgdGhpcyB0byB0aGUgaW5kZXggb2YgdGhlIHdpbmRvd3MgbmV0d29yayBhZGFwdGVyIHRvIHVzZSAqLworI2RlZmluZSBQQUNLRVRfTElCX0FEQVBURVJfTlIgICAgICAgICAxCisvKiogRGVmaW5lIHRoaXMgdG8gdGhlIEdVSUQgb2YgdGhlIHdpbmRvd3MgbmV0d29yayBhZGFwdGVyIHRvIHVzZQorICogb3IgTk9UIGRlZmluZSB0aGlzIGlmIHlvdSB3YW50IFBBQ0tFVF9MSUJfQURBUFRFUl9OUiB0byBiZSB1c2VkICovIAorLyojZGVmaW5lIFBBQ0tFVF9MSUJfQURBUFRFUl9HVUlEICAgICAgICIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAiKi8KKy8qI2RlZmluZSBQQUNLRVRfTElCX0dFVF9BREFQVEVSX05FVEFERFJFU1MoYWRkcikgSVA0X0FERFIoKGFkZHIpLCAxOTIsMTY4LDEsMCkqLworLyojZGVmaW5lIFBBQ0tFVF9MSUJfUVVJRVQqLworCisvKiBJZiB0aGVzZSAyIGFyZSBub3QgZGVmaW5lZCwgdGhlIGNvcnJlc3BvbmRpbmcgY29uZmlnIHNldHRpbmcgaXMgdXNlZCAqLworLyogI2RlZmluZSBVU0VfREhDUCAgICAwICovCisvKiAjZGVmaW5lIFVTRV9BVVRPSVAgIDAgKi8KKworLyogI2RlZmluZSBVU0VfUENBUElGIDEgKi8KKyNkZWZpbmUgTFdJUF9QT1JUX0lOSVRfSVBBRERSKGFkZHIpICAgSVA0X0FERFIoKGFkZHIpLCAxOTIsMTY4LDEsMjAwKQorI2RlZmluZSBMV0lQX1BPUlRfSU5JVF9HVyhhZGRyKSAgICAgICBJUDRfQUREUigoYWRkciksIDE5MiwxNjgsMSwxKQorI2RlZmluZSBMV0lQX1BPUlRfSU5JVF9ORVRNQVNLKGFkZHIpICBJUDRfQUREUigoYWRkciksIDI1NSwyNTUsMjU1LDApCisKKy8qIHJlbWVtYmVyIHRvIGNoYW5nZSB0aGlzIE1BQyBhZGRyZXNzIHRvIHN1aXQgeW91ciBuZWVkcyEKKyAgIHRoZSBsYXN0IG9jdGV0IHdpbGwgYmUgaW5jcmVhc2VkIGJ5IG5ldGlmLT5udW0gZm9yIGVhY2ggbmV0aWYgKi8KKyNkZWZpbmUgTFdJUF9NQUNfQUREUl9CQVNFICAgICAgICAgICAgezB4MDAsMHgwMSwweDAyLDB4MDMsMHgwNCwweDA1fQorCisvKiAjZGVmaW5lIFVTRV9TTElQSUYgMCAqLworLyogI2RlZmluZSBTSU9fVVNFX0NPTVBPUlQgMCAqLworI2lmZGVmIFVTRV9TTElQSUYKKyNpZiBVU0VfU0xJUElGCisjZGVmaW5lIExXSVBfUE9SVF9JTklUX1NMSVAxX0lQQUREUihhZGRyKSAgIElQNF9BRERSKChhZGRyKSwgMTkyLCAxNjgsICAgMiwgMikKKyNkZWZpbmUgTFdJUF9QT1JUX0lOSVRfU0xJUDFfR1coYWRkcikgICAgICAgSVA0X0FERFIoKGFkZHIpLCAxOTIsIDE2OCwgICAyLCAxKQorI2RlZmluZSBMV0lQX1BPUlRfSU5JVF9TTElQMV9ORVRNQVNLKGFkZHIpICBJUDRfQUREUigoYWRkciksIDI1NSwgMjU1LCAyNTUsIDApCisjaWYgVVNFX1NMSVBJRiA+IDEKKyNkZWZpbmUgTFdJUF9QT1JUX0lOSVRfU0xJUDJfSVBBRERSKGFkZHIpICAgSVA0X0FERFIoKGFkZHIpLCAxOTIsIDE2OCwgICAyLCAxKQorI2RlZmluZSBMV0lQX1BPUlRfSU5JVF9TTElQMl9HVyhhZGRyKSAgICAgICBJUDRfQUREUigoYWRkciksIDAsICAgICAwLCAgIDAsIDApCisjZGVmaW5lIExXSVBfUE9SVF9JTklUX1NMSVAyX05FVE1BU0soYWRkcikgIElQNF9BRERSKChhZGRyKSwgMjU1LCAyNTUsIDI1NSwgMCkqLworI2VuZGlmIC8qIFVTRV9TTElQSUYgPiAxICovCisjZW5kaWYgLyogVVNFX1NMSVBJRiAqLworI2VuZGlmIC8qIFVTRV9TTElQSUYgKi8KKworLyogY29uZmlndXJhdGlvbiBmb3IgYXBwbGljYXRpb25zICovCisKKyNkZWZpbmUgTFdJUF9DSEFSR0VOX0FQUCAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0ROU19BUFAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfSFRUUERfQVBQICAgICAgICAgICAgICAgIDAKKy8qIFNldCB0aGlzIHRvIDEgdG8gdXNlIHRoZSBuZXRjb25uIGh0dHAgc2VydmVyLAorICogb3RoZXJ3aXNlIHRoZSByYXcgYXBpIHNlcnZlciB3aWxsIGJlIHVzZWQuICovCisvKiNkZWZpbmUgTFdJUF9IVFRQRF9BUFBfTkVUQ09OTiAgICAgKi8KKyNkZWZpbmUgTFdJUF9ORVRCSU9TX0FQUCAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElPX0FQUCAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTUROU19BUFAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9NUVRUX0FQUCAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1BJTkdfQVBQICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfUlRQX0FQUCAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TSEVMTF9BUFAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NOTVBfQVBQICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU05UUF9BUFAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT0NLRVRfRVhBTVBMRVNfQVBQICAgICAgMAorI2RlZmluZSBMV0lQX1RDUEVDSE9fQVBQICAgICAgICAgICAgICAwCisvKiBTZXQgdGhpcyB0byAxIHRvIHVzZSB0aGUgbmV0Y29ubiB0Y3BlY2hvIHNlcnZlciwKKyAqIG90aGVyd2lzZSB0aGUgcmF3IGFwaSBzZXJ2ZXIgd2lsbCBiZSB1c2VkLiAqLworLyojZGVmaW5lIExXSVBfVENQRUNIT19BUFBfTkVUQ09OTiAgICovCisjZGVmaW5lIExXSVBfVEZUUF9BUFAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9URlRQX0NMSUVOVF9BUFAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1VEUEVDSE9fQVBQICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTFdJUEVSRl9BUFAgICAgICAgICAgICAgIDAKKworLyojZGVmaW5lIFVTRV9ESENQICAgIDEqLworLyojZGVmaW5lIFVTRV9BVVRPSVAgIDEqLworCisvKiBkZWZpbmUgdGhpcyB0byB5b3VyIGN1c3RvbSBhcHBsaWNhdGlvbi1pbml0IGZ1bmN0aW9uICovCisvKiAjZGVmaW5lIExXSVBfQVBQX0lOSVQgbXlfYXBwX2luaXQoKSAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwb3B0cy5oIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwb3B0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMmNhNGIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL2x3aXBvcHRzLmgKQEAgLTAsMCArMSwzMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworI2lmbmRlZiBMV0lQX0xXSVBPUFRTX0gKKyNkZWZpbmUgTFdJUF9MV0lQT1BUU19ICisKKyNpZmRlZiBMV0lQX09QVFRFU1RfRklMRQorI2luY2x1ZGUgImx3aXBvcHRzX3Rlc3QuaCIKKyNlbHNlIC8qIExXSVBfT1BUVEVTVF9GSUxFICovCisKKyNkZWZpbmUgTFdJUF9JUFY0ICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX0lQVjYgICAgICAgICAgICAgICAgICAxCisKKyNkZWZpbmUgTk9fU1lTICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPQ0tFVCAgICAgICAgICAgICAgICAoTk9fU1lTPT0wKQorI2RlZmluZSBMV0lQX05FVENPTk4gICAgICAgICAgICAgICAoTk9fU1lTPT0wKQorI2RlZmluZSBMV0lQX05FVElGX0FQSSAgICAgICAgICAgICAoTk9fU1lTPT0wKQorCisjZGVmaW5lIExXSVBfSUdNUCAgICAgICAgICAgICAgICAgIExXSVBfSVBWNAorI2RlZmluZSBMV0lQX0lDTVAgICAgICAgICAgICAgICAgICBMV0lQX0lQVjQKKworI2RlZmluZSBMV0lQX1NOTVAgICAgICAgICAgICAgICAgICBMV0lQX1VEUAorI2RlZmluZSBNSUIyX1NUQVRTICAgICAgICAgICAgICAgICBMV0lQX1NOTVAKKyNpZmRlZiBMV0lQX0hBVkVfTUJFRFRMUworI2RlZmluZSBMV0lQX1NOTVBfVjMgICAgICAgICAgICAgICAoTFdJUF9TTk1QKQorI2VuZGlmCisKKyNkZWZpbmUgTFdJUF9ETlMgICAgICAgICAgICAgICAgICAgTFdJUF9VRFAKKyNkZWZpbmUgTFdJUF9NRE5TX1JFU1BPTkRFUiAgICAgICAgTFdJUF9VRFAKKworI2RlZmluZSBMV0lQX05VTV9ORVRJRl9DTElFTlRfREFUQSAoTFdJUF9NRE5TX1JFU1BPTkRFUikKKworI2RlZmluZSBMV0lQX0hBVkVfTE9PUElGICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfTkVUSUZfTE9PUEJBQ0sgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9MT09QQkFDS19NQVhfUEJVRlMgICAgMTAKKworI2RlZmluZSBUQ1BfTElTVEVOX0JBQ0tMT0cgICAgICAgICAxCisKKyNkZWZpbmUgTFdJUF9DT01QQVRfU09DS0VUUyAgICAgICAgMQorI2RlZmluZSBMV0lQX1NPX1JDVlRJTUVPICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU09fUkNWQlVGICAgICAgICAgICAgIDEKKworI2RlZmluZSBMV0lQX1RDUElQX0NPUkVfTE9DS0lORyAgICAxCisKKyNkZWZpbmUgTFdJUF9ORVRJRl9MSU5LX0NBTExCQUNLICAgICAgICAxCisjZGVmaW5lIExXSVBfTkVUSUZfU1RBVFVTX0NBTExCQUNLICAgICAgMQorI2RlZmluZSBMV0lQX05FVElGX0VYVF9TVEFUVVNfQ0FMTEJBQ0sgIDEKKworI2lmZGVmIExXSVBfREVCVUcKKworI2RlZmluZSBMV0lQX0RCR19NSU5fTEVWRUwgICAgICAgICAwCisjZGVmaW5lIFBQUF9ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBNRU1fREVCVUcgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgTUVNUF9ERUJVRyAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFBCVUZfREVCVUcgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBUElfTElCX0RFQlVHICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgQVBJX01TR19ERUJVRyAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUElQX0RFQlVHICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBORVRJRl9ERUJVRyAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgU09DS0VUU19ERUJVRyAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIEROU19ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBVVRPSVBfREVCVUcgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgREhDUF9ERUJVRyAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElQX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUF9SRUFTU19ERUJVRyAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgSUNNUF9ERUJVRyAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElHTVBfREVCVUcgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBVRFBfREVCVUcgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX0RFQlVHICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9JTlBVVF9ERUJVRyAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfT1VUUFVUX0RFQlVHICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX1JUT19ERUJVRyAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9DV05EX0RFQlVHICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfV05EX0RFQlVHICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX0ZSX0RFQlVHICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9RTEVOX0RFQlVHICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUlNUX0RFQlVHICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNlbmRpZgorCisjZGVmaW5lIExXSVBfREJHX1RZUEVTX09OICAgICAgICAgKExXSVBfREJHX09OfExXSVBfREJHX1RSQUNFfExXSVBfREJHX1NUQVRFfExXSVBfREJHX0ZSRVNIfExXSVBfREJHX0hBTFQpCisKKworLyogLS0tLS0tLS0tLSBNZW1vcnkgb3B0aW9ucyAtLS0tLS0tLS0tICovCisvKiBNRU1fQUxJR05NRU5UOiBzaG91bGQgYmUgc2V0IHRvIHRoZSBhbGlnbm1lbnQgb2YgdGhlIENQVSBmb3Igd2hpY2gKKyAgIGx3SVAgaXMgY29tcGlsZWQuIDQgYnl0ZSBhbGlnbm1lbnQgLT4gZGVmaW5lIE1FTV9BTElHTk1FTlQgdG8gNCwgMgorICAgYnl0ZSBhbGlnbm1lbnQgLT4gZGVmaW5lIE1FTV9BTElHTk1FTlQgdG8gMi4gKi8KKy8qIE1TVkMgcG9ydDogaW50ZWwgcHJvY2Vzc29ycyBkb24ndCBuZWVkIDQtYnl0ZSBhbGlnbm1lbnQsCisgICBidXQgYXJlIGZhc3RlciB0aGF0IHdheSEgKi8KKyNkZWZpbmUgTUVNX0FMSUdOTUVOVCAgICAgICAgICAgNFUKKworLyogTUVNX1NJWkU6IHRoZSBzaXplIG9mIHRoZSBoZWFwIG1lbW9yeS4gSWYgdGhlIGFwcGxpY2F0aW9uIHdpbGwgc2VuZAorYSBsb3Qgb2YgZGF0YSB0aGF0IG5lZWRzIHRvIGJlIGNvcGllZCwgdGhpcyBzaG91bGQgYmUgc2V0IGhpZ2guICovCisjZGVmaW5lIE1FTV9TSVpFICAgICAgICAgICAgICAgMTAyNDAKKworLyogTUVNUF9OVU1fUEJVRjogdGhlIG51bWJlciBvZiBtZW1wIHN0cnVjdCBwYnVmcy4gSWYgdGhlIGFwcGxpY2F0aW9uCisgICBzZW5kcyBhIGxvdCBvZiBkYXRhIG91dCBvZiBST00gKG9yIG90aGVyIHN0YXRpYyBtZW1vcnkpLCB0aGlzCisgICBzaG91bGQgYmUgc2V0IGhpZ2guICovCisjZGVmaW5lIE1FTVBfTlVNX1BCVUYgICAgICAgICAgIDE2CisvKiBNRU1QX05VTV9SQVdfUENCOiB0aGUgbnVtYmVyIG9mIFVEUCBwcm90b2NvbCBjb250cm9sIGJsb2Nrcy4gT25lCisgICBwZXIgYWN0aXZlIFJBVyAiY29ubmVjdGlvbiIuICovCisjZGVmaW5lIE1FTVBfTlVNX1JBV19QQ0IgICAgICAgIDMKKy8qIE1FTVBfTlVNX1VEUF9QQ0I6IHRoZSBudW1iZXIgb2YgVURQIHByb3RvY29sIGNvbnRyb2wgYmxvY2tzLiBPbmUKKyAgIHBlciBhY3RpdmUgVURQICJjb25uZWN0aW9uIi4gKi8KKyNkZWZpbmUgTUVNUF9OVU1fVURQX1BDQiAgICAgICAgOAorLyogTUVNUF9OVU1fVENQX1BDQjogdGhlIG51bWJlciBvZiBzaW11bGF0ZW5vdXNseSBhY3RpdmUgVENQCisgICBjb25uZWN0aW9ucy4gKi8KKyNkZWZpbmUgTUVNUF9OVU1fVENQX1BDQiAgICAgICAgNQorLyogTUVNUF9OVU1fVENQX1BDQl9MSVNURU46IHRoZSBudW1iZXIgb2YgbGlzdGVuaW5nIFRDUAorICAgY29ubmVjdGlvbnMuICovCisjZGVmaW5lIE1FTVBfTlVNX1RDUF9QQ0JfTElTVEVOIDgKKy8qIE1FTVBfTlVNX1RDUF9TRUc6IHRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzbHkgcXVldWVkIFRDUAorICAgc2VnbWVudHMuICovCisjZGVmaW5lIE1FTVBfTlVNX1RDUF9TRUcgICAgICAgIDE2CisvKiBNRU1QX05VTV9TWVNfVElNRU9VVDogdGhlIG51bWJlciBvZiBzaW11bGF0ZW91c2x5IGFjdGl2ZQorICAgdGltZW91dHMuICovCisjZGVmaW5lIE1FTVBfTlVNX1NZU19USU1FT1VUICAgIDE3CisKKy8qIFRoZSBmb2xsb3dpbmcgZm91ciBhcmUgdXNlZCBvbmx5IHdpdGggdGhlIHNlcXVlbnRpYWwgQVBJIGFuZCBjYW4gYmUKKyAgIHNldCB0byAwIGlmIHRoZSBhcHBsaWNhdGlvbiBvbmx5IHdpbGwgdXNlIHRoZSByYXcgQVBJLiAqLworLyogTUVNUF9OVU1fTkVUQlVGOiB0aGUgbnVtYmVyIG9mIHN0cnVjdCBuZXRidWZzLiAqLworI2RlZmluZSBNRU1QX05VTV9ORVRCVUYgICAgICAgICAyCisvKiBNRU1QX05VTV9ORVRDT05OOiB0aGUgbnVtYmVyIG9mIHN0cnVjdCBuZXRjb25ucy4gKi8KKyNkZWZpbmUgTUVNUF9OVU1fTkVUQ09OTiAgICAgICAgMTIKKy8qIE1FTVBfTlVNX1RDUElQX01TR18qOiB0aGUgbnVtYmVyIG9mIHN0cnVjdCB0Y3BpcF9tc2csIHdoaWNoIGlzIHVzZWQKKyAgIGZvciBzZXF1ZW50aWFsIEFQSSBjb21tdW5pY2F0aW9uIGFuZCBpbmNvbWluZyBwYWNrZXRzLiBVc2VkIGluCisgICBzcmMvYXBpL3RjcGlwLmMuICovCisjZGVmaW5lIE1FTVBfTlVNX1RDUElQX01TR19BUEkgICAxNgorI2RlZmluZSBNRU1QX05VTV9UQ1BJUF9NU0dfSU5QS1QgMTYKKworCisvKiAtLS0tLS0tLS0tIFBidWYgb3B0aW9ucyAtLS0tLS0tLS0tICovCisvKiBQQlVGX1BPT0xfU0laRTogdGhlIG51bWJlciBvZiBidWZmZXJzIGluIHRoZSBwYnVmIHBvb2wuICovCisjZGVmaW5lIFBCVUZfUE9PTF9TSVpFICAgICAgICAgIDEyMAorCisvKiBQQlVGX1BPT0xfQlVGU0laRTogdGhlIHNpemUgb2YgZWFjaCBwYnVmIGluIHRoZSBwYnVmIHBvb2wuICovCisjZGVmaW5lIFBCVUZfUE9PTF9CVUZTSVpFICAgICAgIDI1NgorCisvKiogU1lTX0xJR0hUV0VJR0hUX1BST1QKKyAqIGRlZmluZSBTWVNfTElHSFRXRUlHSFRfUFJPVCBpbiBsd2lwb3B0cy5oIGlmIHlvdSB3YW50IGludGVyLXRhc2sgcHJvdGVjdGlvbgorICogZm9yIGNlcnRhaW4gY3JpdGljYWwgcmVnaW9ucyBkdXJpbmcgYnVmZmVyIGFsbG9jYXRpb24sIGRlYWxsb2NhdGlvbiBhbmQgbWVtb3J5CisgKiBhbGxvY2F0aW9uIGFuZCBkZWFsbG9jYXRpb24uCisgKi8KKyNkZWZpbmUgU1lTX0xJR0hUV0VJR0hUX1BST1QgICAgKE5PX1NZUz09MCkKKworCisvKiAtLS0tLS0tLS0tIFRDUCBvcHRpb25zIC0tLS0tLS0tLS0gKi8KKyNkZWZpbmUgTFdJUF9UQ1AgICAgICAgICAgICAgICAgMQorI2RlZmluZSBUQ1BfVFRMICAgICAgICAgICAgICAgICAyNTUKKworI2RlZmluZSBMV0lQX0FMVENQICAgICAgICAgICAgICAoTFdJUF9UQ1ApCisjaWZkZWYgTFdJUF9IQVZFX01CRURUTFMKKyNkZWZpbmUgTFdJUF9BTFRDUF9UTFMgICAgICAgICAgKExXSVBfVENQKQorI2RlZmluZSBMV0lQX0FMVENQX1RMU19NQkVEVExTICAoTFdJUF9UQ1ApCisjZW5kaWYKKworCisvKiBDb250cm9scyBpZiBUQ1Agc2hvdWxkIHF1ZXVlIHNlZ21lbnRzIHRoYXQgYXJyaXZlIG91dCBvZgorICAgb3JkZXIuIERlZmluZSB0byAwIGlmIHlvdXIgZGV2aWNlIGlzIGxvdyBvbiBtZW1vcnkuICovCisjZGVmaW5lIFRDUF9RVUVVRV9PT1NFUSAgICAgICAgIDEKKworLyogVENQIE1heGltdW0gc2VnbWVudCBzaXplLiAqLworI2RlZmluZSBUQ1BfTVNTICAgICAgICAgICAgICAgICAxMDI0CisKKy8qIFRDUCBzZW5kZXIgYnVmZmVyIHNwYWNlIChieXRlcykuICovCisjZGVmaW5lIFRDUF9TTkRfQlVGICAgICAgICAgICAgIDIwNDgKKworLyogVENQIHNlbmRlciBidWZmZXIgc3BhY2UgKHBidWZzKS4gVGhpcyBtdXN0IGJlIGF0IGxlYXN0ID0gMiAqCisgICBUQ1BfU05EX0JVRi9UQ1BfTVNTIGZvciB0aGluZ3MgdG8gd29yay4gKi8KKyNkZWZpbmUgVENQX1NORF9RVUVVRUxFTiAgICAgICAoNCAqIFRDUF9TTkRfQlVGL1RDUF9NU1MpCisKKy8qIFRDUCB3cml0YWJsZSBzcGFjZSAoYnl0ZXMpLiBUaGlzIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsCisgICB0byBUQ1BfU05EX0JVRi4gSXQgaXMgdGhlIGFtb3VudCBvZiBzcGFjZSB3aGljaCBtdXN0IGJlCisgICBhdmFpbGFibGUgaW4gdGhlIHRjcCBzbmRfYnVmIGZvciBzZWxlY3QgdG8gcmV0dXJuIHdyaXRhYmxlICovCisjZGVmaW5lIFRDUF9TTkRMT1dBVCAgICAgICAgICAgKFRDUF9TTkRfQlVGLzIpCisKKy8qIFRDUCByZWNlaXZlIHdpbmRvdy4gKi8KKyNkZWZpbmUgVENQX1dORCAgICAgICAgICAgICAgICAgKDIwICogMTAyNCkKKworLyogTWF4aW11bSBudW1iZXIgb2YgcmV0cmFuc21pc3Npb25zIG9mIGRhdGEgc2VnbWVudHMuICovCisjZGVmaW5lIFRDUF9NQVhSVFggICAgICAgICAgICAgIDEyCisKKy8qIE1heGltdW0gbnVtYmVyIG9mIHJldHJhbnNtaXNzaW9ucyBvZiBTWU4gc2VnbWVudHMuICovCisjZGVmaW5lIFRDUF9TWU5NQVhSVFggICAgICAgICAgIDQKKworCisvKiAtLS0tLS0tLS0tIEFSUCBvcHRpb25zIC0tLS0tLS0tLS0gKi8KKyNkZWZpbmUgTFdJUF9BUlAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBBUlBfVEFCTEVfU0laRSAgICAgICAgICAxMAorI2RlZmluZSBBUlBfUVVFVUVJTkcgICAgICAgICAgICAxCisKKworLyogLS0tLS0tLS0tLSBJUCBvcHRpb25zIC0tLS0tLS0tLS0gKi8KKy8qIERlZmluZSBJUF9GT1JXQVJEIHRvIDEgaWYgeW91IHdpc2ggdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBmb3J3YXJkCisgICBJUCBwYWNrZXRzIGFjcm9zcyBuZXR3b3JrIGludGVyZmFjZXMuIElmIHlvdSBhcmUgZ29pbmcgdG8gcnVuIGx3SVAKKyAgIG9uIGEgZGV2aWNlIHdpdGggb25seSBvbmUgbmV0d29yayBpbnRlcmZhY2UsIGRlZmluZSB0aGlzIHRvIDAuICovCisjZGVmaW5lIElQX0ZPUldBUkQgICAgICAgICAgICAgIDEKKworLyogSVAgcmVhc3NlbWJseSBhbmQgc2VnbWVudGF0aW9uLlRoZXNlIGFyZSBvcnRob2dvbmFsIGV2ZW4KKyAqIGlmIHRoZXkgYm90aCBkZWFsIHdpdGggSVAgZnJhZ21lbnRzICovCisjZGVmaW5lIElQX1JFQVNTRU1CTFkgICAgICAgICAgIDEKKyNkZWZpbmUgSVBfUkVBU1NfTUFYX1BCVUZTICAgICAgKDEwICogKCgxNTAwICsgUEJVRl9QT09MX0JVRlNJWkUgLSAxKSAvIFBCVUZfUE9PTF9CVUZTSVpFKSkKKyNkZWZpbmUgTUVNUF9OVU1fUkVBU1NEQVRBICAgICAgSVBfUkVBU1NfTUFYX1BCVUZTCisjZGVmaW5lIElQX0ZSQUcgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBWNl9GUkFHX0NPUFlIRUFERVIgICAgMQorCisvKiAtLS0tLS0tLS0tIElDTVAgb3B0aW9ucyAtLS0tLS0tLS0tICovCisjZGVmaW5lIElDTVBfVFRMICAgICAgICAgICAgICAgIDI1NQorCisKKy8qIC0tLS0tLS0tLS0gREhDUCBvcHRpb25zIC0tLS0tLS0tLS0gKi8KKy8qIERlZmluZSBMV0lQX0RIQ1AgdG8gMSBpZiB5b3Ugd2FudCBESENQIGNvbmZpZ3VyYXRpb24gb2YKKyAgIGludGVyZmFjZXMuICovCisjZGVmaW5lIExXSVBfREhDUCAgICAgICAgICAgICAgIExXSVBfVURQCisKKy8qIDEgaWYgeW91IHdhbnQgdG8gZG8gYW4gQVJQIGNoZWNrIG9uIHRoZSBvZmZlcmVkIGFkZHJlc3MKKyAgIChyZWNvbW1lbmRlZCkuICovCisjZGVmaW5lIERIQ1BfRE9FU19BUlBfQ0hFQ0sgICAgKExXSVBfREhDUCkKKworCisvKiAtLS0tLS0tLS0tIEFVVE9JUCBvcHRpb25zIC0tLS0tLS0gKi8KKyNkZWZpbmUgTFdJUF9BVVRPSVAgICAgICAgICAgICAoTFdJUF9ESENQKQorI2RlZmluZSBMV0lQX0RIQ1BfQVVUT0lQX0NPT1AgIChMV0lQX0RIQ1AgJiYgTFdJUF9BVVRPSVApCisKKworLyogLS0tLS0tLS0tLSBVRFAgb3B0aW9ucyAtLS0tLS0tLS0tICovCisjZGVmaW5lIExXSVBfVURQICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9VRFBMSVRFICAgICAgICAgICAgTFdJUF9VRFAKKyNkZWZpbmUgVURQX1RUTCAgICAgICAgICAgICAgICAgMjU1CisKKworLyogLS0tLS0tLS0tLSBSQVcgb3B0aW9ucyAtLS0tLS0tLS0tICovCisjZGVmaW5lIExXSVBfUkFXICAgICAgICAgICAgICAgIDEKKworCisvKiAtLS0tLS0tLS0tIFN0YXRpc3RpY3Mgb3B0aW9ucyAtLS0tLS0tLS0tICovCisKKyNkZWZpbmUgTFdJUF9TVEFUUyAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1NUQVRTX0RJU1BMQVkgICAgICAxCisKKyNpZiBMV0lQX1NUQVRTCisjZGVmaW5lIExJTktfU1RBVFMgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBfU1RBVFMgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJQ01QX1NUQVRTICAgICAgICAgICAgICAxCisjZGVmaW5lIElHTVBfU1RBVFMgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBGUkFHX1NUQVRTICAgICAgICAgICAgMQorI2RlZmluZSBVRFBfU1RBVFMgICAgICAgICAgICAgICAxCisjZGVmaW5lIFRDUF9TVEFUUyAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTUVNX1NUQVRTICAgICAgICAgICAgICAgMQorI2RlZmluZSBNRU1QX1NUQVRTICAgICAgICAgICAgICAxCisjZGVmaW5lIFBCVUZfU1RBVFMgICAgICAgICAgICAgIDEKKyNkZWZpbmUgU1lTX1NUQVRTICAgICAgICAgICAgICAgMQorI2VuZGlmIC8qIExXSVBfU1RBVFMgKi8KKworLyogLS0tLS0tLS0tLSBORVRCSU9TIG9wdGlvbnMgLS0tLS0tLS0tLSAqLworI2RlZmluZSBMV0lQX05FVEJJT1NfUkVTUE9ORF9OQU1FX1FVRVJZIDEKKworLyogLS0tLS0tLS0tLSBQUFAgb3B0aW9ucyAtLS0tLS0tLS0tICovCisKKyNkZWZpbmUgUFBQX1NVUFBPUlQgICAgICAgICAgICAgMSAgICAgIC8qIFNldCA+IDAgZm9yIFBQUCAqLworCisjaWYgUFBQX1NVUFBPUlQKKworI2RlZmluZSBOVU1fUFBQICAgICAgICAgICAgICAgICAxICAgICAgLyogTWF4IFBQUCBzZXNzaW9ucy4gKi8KKworCisvKiBTZWxlY3QgbW9kdWxlcyB0byBlbmFibGUuICBJZGVhbGx5IHRoZXNlIHdvdWxkIGJlIHNldCBpbiB0aGUgbWFrZWZpbGUgYnV0CisgKiB3ZSdyZSBsaW1pdGVkIGJ5IHRoZSBjb21tYW5kIGxpbmUgbGVuZ3RoIHNvIHlvdSBuZWVkIHRvIG1vZGlmeSB0aGUgc2V0dGluZ3MKKyAqIGluIHRoaXMgZmlsZS4KKyAqLworI2RlZmluZSBQUFBPRV9TVVBQT1JUICAgICAgICAgICAxCisjZGVmaW5lIFBQUE9TX1NVUFBPUlQgICAgICAgICAgIDEKKworI2RlZmluZSBQQVBfU1VQUE9SVCAgICAgICAgICAgICAxICAgICAgLyogU2V0ID4gMCBmb3IgUEFQLiAqLworI2RlZmluZSBDSEFQX1NVUFBPUlQgICAgICAgICAgICAxICAgICAgLyogU2V0ID4gMCBmb3IgQ0hBUC4gKi8KKyNkZWZpbmUgTVNDSEFQX1NVUFBPUlQgICAgICAgICAgMCAgICAgIC8qIFNldCA+IDAgZm9yIE1TQ0hBUCAqLworI2RlZmluZSBDQkNQX1NVUFBPUlQgICAgICAgICAgICAwICAgICAgLyogU2V0ID4gMCBmb3IgQ0JDUCAoTk9UIEZVTkNUSU9OQUwhKSAqLworI2RlZmluZSBDQ1BfU1VQUE9SVCAgICAgICAgICAgICAwICAgICAgLyogU2V0ID4gMCBmb3IgQ0NQICovCisjZGVmaW5lIFZKX1NVUFBPUlQgICAgICAgICAgICAgIDAgICAgICAvKiBTZXQgPiAwIGZvciBWSiBoZWFkZXIgY29tcHJlc3Npb24uICovCisjZGVmaW5lIE1ENV9TVVBQT1JUICAgICAgICAgICAgIDEgICAgICAvKiBTZXQgPiAwIGZvciBNRDUgKHNlZSBhbHNvIENIQVApICovCisKKyNlbmRpZiAvKiBQUFBfU1VQUE9SVCAqLworCisjZW5kaWYgLyogTFdJUF9PUFRURVNUX0ZJTEUgKi8KKworLyogVGhlIGZvbGxvd2luZyBkZWZpbmVzIG11c3QgYmUgZG9uZSBldmVuIGluIE9QVFRFU1QgbW9kZTogKi8KKworI2lmICFkZWZpbmVkKE5PX1NZUykgfHwgIU5PX1NZUyAvKiBkZWZhdWx0IGlzIDAgKi8KK3ZvaWQgc3lzX2NoZWNrX2NvcmVfbG9ja2luZyh2b2lkKTsKKyNkZWZpbmUgTFdJUF9BU1NFUlRfQ09SRV9MT0NLRUQoKSAgc3lzX2NoZWNrX2NvcmVfbG9ja2luZygpCisjZW5kaWYKKworI2lmbmRlZiBMV0lQX1BMQVRGT1JNX0FTU0VSVAorLyogRGVmaW5lIExXSVBfUExBVEZPUk1fQVNTRVJUIHRvIHNvbWV0aGluZyB0byBjYXRjaCBtaXNzaW5nIHN0ZGlvLmggaW5jbHVkZXMgKi8KK3ZvaWQgbHdpcF9leGFtcGxlX2FwcF9wbGF0Zm9ybV9hc3NlcnQoY29uc3QgY2hhciAqbXNnLCBpbnQgbGluZSwgY29uc3QgY2hhciAqZmlsZSk7CisjZGVmaW5lIExXSVBfUExBVEZPUk1fQVNTRVJUKHgpIGx3aXBfZXhhbXBsZV9hcHBfcGxhdGZvcm1fYXNzZXJ0KHgsIF9fTElORV9fLCBfX0ZJTEVfXykKKyNlbmRpZgorCisjZW5kaWYgLyogTFdJUF9MV0lQT1BUU19IICovCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL2x3aXBwb29scy5oIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwcG9vbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNThhYTU5Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwcG9vbHMuaApAQCAtMCwwICsxLDIwIEBACisvKiBPUFRJT05BTDogUG9vbHMgdG8gcmVwbGFjZSBoZWFwIGFsbG9jYXRpb24KKyAqIE9wdGlvbmFsOiBQb29scyBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBoZWFwIGZvciBtZW1fbWFsbG9jLiBJZgorICogc28sIHRoZXNlIHNob3VsZCBiZSBkZWZpbmVkIGhlcmUsIGluIGluY3JlYXNpbmcgb3JkZXIgYWNjb3JkaW5nIHRvCisgKiB0aGUgcG9vbCBlbGVtZW50IHNpemUuCisgKgorICogTFdJUF9NQUxMT0NfTUVNUE9PTChudW1iZXJfZWxlbWVudHMsIGVsZW1lbnRfc2l6ZSkKKyAqLworI2lmIE1FTV9VU0VfUE9PTFMKK0xXSVBfTUFMTE9DX01FTVBPT0xfU1RBUlQKK0xXSVBfTUFMTE9DX01FTVBPT0woMTAwLCAyNTYpCitMV0lQX01BTExPQ19NRU1QT09MKDUwLCA1MTIpCitMV0lQX01BTExPQ19NRU1QT09MKDIwLCAxMDI0KQorTFdJUF9NQUxMT0NfTUVNUE9PTCgyMCwgMTUzNikKK0xXSVBfTUFMTE9DX01FTVBPT0xfRU5ECisjZW5kaWYgLyogTUVNX1VTRV9QT09MUyAqLworCisvKiBPcHRpb25hbDogWW91ciBjdXN0b20gcG9vbHMgY2FuIGdvIGhlcmUgaWYgeW91IHdvdWxkIGxpa2UgdG8gdXNlCisgKiBsd0lQJ3MgbWVtb3J5IHBvb2xzIGZvciBhbnl0aGluZyBlbHNlLgorICovCitMV0lQX01FTVBPT0woU1lTX01CT1gsIDIyLCAxMDAsICJTWVNfTUJPWCIpCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3BwcF9zZXR0aW5ncy5oIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9wcHBfc2V0dGluZ3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjNlZTFhCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9wcHBfc2V0dGluZ3MuaApAQCAtMCwwICsxLDYgQEAKKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0MjQyKSAvKiBQUFAgb25seTogY29udmVyc2lvbiBmcm9tICd4JyB0byAneScsIHBvc3NpYmxlIGxvc3Mgb2YgZGF0YSAqLworI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0MjQ0KSAvKiBQUFAgb25seTogY29udmVyc2lvbiBmcm9tICd4JyB0byAneScsIHBvc3NpYmxlIGxvc3Mgb2YgZGF0YSAoYWdhaW4/KSAqLworI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0MzEwKSAvKiBQUFAgb25seTogY2FzdCB0cnVuY2F0ZXMgY29uc3RhbnQgdmFsdWUgKi8KKyNwcmFnbWEgd2FybmluZyAoZGlzYWJsZTogNDcwNikgLyogUFBQIG9ubHk6IGFzc2lnbm1lbnQgd2l0aGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gKi8KKyNlbmRpZiAvKiBNU0NfVkVSICAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0LmMgYi9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZjRiNWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0LmMKQEAgLTAsMCArMSw3NzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEsMjAwMiBGbG9yaWFuIFNjaHVsemUuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGF1dGhvcnMgbm9yIHRoZSBuYW1lcyBvZiB0aGUgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUlMgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICogdGVzdC5jIC0gVGhpcyBmaWxlIGlzIHBhcnQgb2YgbHdJUCB0ZXN0CisgKgorICovCisKKy8qIEMgcnVudGltZSBpbmNsdWRlcyAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisvKiBsd0lQIGNvcmUgaW5jbHVkZXMgKi8KKyNpbmNsdWRlICJsd2lwL29wdC5oIgorCisjaW5jbHVkZSAibHdpcC9zeXMuaCIKKyNpbmNsdWRlICJsd2lwL3RpbWVvdXRzLmgiCisjaW5jbHVkZSAibHdpcC9kZWJ1Zy5oIgorI2luY2x1ZGUgImx3aXAvc3RhdHMuaCIKKyNpbmNsdWRlICJsd2lwL2luaXQuaCIKKyNpbmNsdWRlICJsd2lwL3RjcGlwLmgiCisjaW5jbHVkZSAibHdpcC9uZXRpZi5oIgorI2luY2x1ZGUgImx3aXAvYXBpLmgiCisKKyNpbmNsdWRlICJsd2lwL3RjcC5oIgorI2luY2x1ZGUgImx3aXAvdWRwLmgiCisjaW5jbHVkZSAibHdpcC9kbnMuaCIKKyNpbmNsdWRlICJsd2lwL2RoY3AuaCIKKyNpbmNsdWRlICJsd2lwL2F1dG9pcC5oIgorCisvKiBsd0lQIG5ldGlmIGluY2x1ZGVzICovCisjaW5jbHVkZSAibHdpcC9ldGhhcnAuaCIKKyNpbmNsdWRlICJuZXRpZi9ldGhlcm5ldC5oIgorCisvKiBhcHBsaWNhdGlvbnMgaW5jbHVkZXMgKi8KKyNpbmNsdWRlICJsd2lwL2FwcHMvbmV0Ymlvc25zLmgiCisjaW5jbHVkZSAibHdpcC9hcHBzL2h0dHBkLmgiCisjaW5jbHVkZSAiYXBwcy9odHRwc2VydmVyL2h0dHBzZXJ2ZXItbmV0Y29ubi5oIgorI2luY2x1ZGUgImFwcHMvbmV0aW8vbmV0aW8uaCIKKyNpbmNsdWRlICJhcHBzL3BpbmcvcGluZy5oIgorI2luY2x1ZGUgImFwcHMvcnRwL3J0cC5oIgorI2luY2x1ZGUgImFwcHMvY2hhcmdlbi9jaGFyZ2VuLmgiCisjaW5jbHVkZSAiYXBwcy9zaGVsbC9zaGVsbC5oIgorI2luY2x1ZGUgImFwcHMvdGNwZWNoby90Y3BlY2hvLmgiCisjaW5jbHVkZSAiYXBwcy91ZHBlY2hvL3VkcGVjaG8uaCIKKyNpbmNsdWRlICJhcHBzL3RjcGVjaG9fcmF3L3RjcGVjaG9fcmF3LmgiCisjaW5jbHVkZSAiYXBwcy9zb2NrZXRfZXhhbXBsZXMvc29ja2V0X2V4YW1wbGVzLmgiCisKKyNpbmNsdWRlICJleGFtcGxlcy9sd2lwZXJmL2x3aXBlcmZfZXhhbXBsZS5oIgorI2luY2x1ZGUgImV4YW1wbGVzL21kbnMvbWRuc19leGFtcGxlLmgiCisjaW5jbHVkZSAiZXhhbXBsZXMvc25tcC9zbm1wX2V4YW1wbGUuaCIKKyNpbmNsdWRlICJleGFtcGxlcy90ZnRwL3RmdHBfZXhhbXBsZS5oIgorI2luY2x1ZGUgImV4YW1wbGVzL3NudHAvc250cF9leGFtcGxlLmgiCisjaW5jbHVkZSAiZXhhbXBsZXMvbXF0dC9tcXR0X2V4YW1wbGUuaCIKKworI2luY2x1ZGUgImV4YW1wbGVzL2h0dHBkL2NnaV9leGFtcGxlL2NnaV9leGFtcGxlLmgiCisjaW5jbHVkZSAiZXhhbXBsZXMvaHR0cGQvZnNfZXhhbXBsZS9mc19leGFtcGxlLmgiCisjaW5jbHVkZSAiZXhhbXBsZXMvaHR0cGQvaHR0cHNfZXhhbXBsZS9odHRwc19leGFtcGxlLmgiCisjaW5jbHVkZSAiZXhhbXBsZXMvaHR0cGQvc3NpX2V4YW1wbGUvc3NpX2V4YW1wbGUuaCIKKworI2luY2x1ZGUgImRlZmF1bHRfbmV0aWYuaCIKKworI2lmIE5PX1NZUworLyogLi4uIHRoZW4gd2UgbmVlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGltZXIgaW50ZXJ2YWxzOiAqLworI2luY2x1ZGUgImx3aXAvaXA0X2ZyYWcuaCIKKyNpbmNsdWRlICJsd2lwL2lnbXAuaCIKKyNlbmRpZiAvKiBOT19TWVMgKi8KKworI2luY2x1ZGUgIm5ldGlmL3BwcC9wcHBfb3B0cy5oIgorI2lmIFBQUF9TVVBQT1JUCisvKiBQUFAgaW5jbHVkZXMgKi8KKyNpbmNsdWRlICJsd2lwL3Npby5oIgorI2luY2x1ZGUgIm5ldGlmL3BwcC9wcHBhcGkuaCIKKyNpbmNsdWRlICJuZXRpZi9wcHAvcHBwb3MuaCIKKyNpbmNsdWRlICJuZXRpZi9wcHAvcHBwb2UuaCIKKyNpZiAhTk9fU1lTICYmICFMV0lQX1BQUF9BUEkKKyNlcnJvciBXaXRoIE5PX1NZUz09MCwgTFdJUF9QUFBfQVBJPT0xIGlzIHJlcXVpcmVkLgorI2VuZGlmCisjZW5kaWYgLyogUFBQX1NVUFBPUlQgKi8KKworLyogaW5jbHVkZSB0aGUgcG9ydC1kZXBlbmRlbnQgY29uZmlndXJhdGlvbiAqLworI2luY2x1ZGUgImx3aXBjZmcuaCIKKworI2lmbmRlZiBMV0lQX0VYQU1QTEVfQVBQX0FCT1JUCisjZGVmaW5lIExXSVBfRVhBTVBMRV9BUFBfQUJPUlQoKSAwCisjZW5kaWYKKworLyoqIERlZmluZSB0aGlzIHRvIDEgdG8gZW5hYmxlIGEgcG9ydC1zcGVjaWZpYyBldGhlcm5ldCBpbnRlcmZhY2UgYXMgZGVmYXVsdCBpbnRlcmZhY2UuICovCisjaWZuZGVmIFVTRV9ERUZBVUxUX0VUSF9ORVRJRgorI2RlZmluZSBVU0VfREVGQVVMVF9FVEhfTkVUSUYgMQorI2VuZGlmCisKKy8qKiBEZWZpbmUgdGhpcyB0byAxIHRvIGVuYWJsZSBhIFBQUCBpbnRlcmZhY2UuICovCisjaWZuZGVmIFVTRV9QUFAKKyNkZWZpbmUgVVNFX1BQUCAwCisjZW5kaWYKKworLyoqIERlZmluZSB0aGlzIHRvIDEgb3IgMiB0byBzdXBwb3J0IDEgb3IgMiBTTElQIGludGVyZmFjZXMuICovCisjaWZuZGVmIFVTRV9TTElQSUYKKyNkZWZpbmUgVVNFX1NMSVBJRiAwCisjZW5kaWYKKworLyoqIFVzZSBhbiBldGhlcm5ldCBhZGFwdGVyPyBEZWZhdWx0IHRvIGVuYWJsZWQgaWYgcG9ydC1zcGVjaWZpYyBldGhlcm5ldCBuZXRpZiBvciBQUFBvRSBhcmUgdXNlZC4gKi8KKyNpZm5kZWYgVVNFX0VUSEVSTkVUCisjZGVmaW5lIFVTRV9FVEhFUk5FVCAgKFVTRV9ERUZBVUxUX0VUSF9ORVRJRiB8fCBQUFBPRV9TVVBQT1JUKQorI2VuZGlmCisKKy8qKiBVc2UgYW4gZXRoZXJuZXQgYWRhcHRlciBmb3IgVENQL0lQPyBCeSBkZWZhdWx0IG9ubHkgaWYgcG9ydC1zcGVjaWZpYyBldGhlcm5ldCBuZXRpZiBpcyB1c2VkLiAqLworI2lmbmRlZiBVU0VfRVRIRVJORVRfVENQSVAKKyNkZWZpbmUgVVNFX0VUSEVSTkVUX1RDUElQICAoVVNFX0RFRkFVTFRfRVRIX05FVElGKQorI2VuZGlmCisKKyNpZiBVU0VfU0xJUElGCisjaW5jbHVkZSA8bmV0aWYvc2xpcGlmLmg+CisjZW5kaWYgLyogVVNFX1NMSVBJRiAqLworCisjaWZuZGVmIFVTRV9ESENQCisjZGVmaW5lIFVTRV9ESENQICAgIExXSVBfREhDUAorI2VuZGlmCisjaWZuZGVmIFVTRV9BVVRPSVAKKyNkZWZpbmUgVVNFX0FVVE9JUCAgTFdJUF9BVVRPSVAKKyNlbmRpZgorCisvKiBnbG9iYWwgdmFyaWFibGVzIGZvciBuZXRpZnMgKi8KKyNpZiBVU0VfRVRIRVJORVQKKyNpZiBMV0lQX0RIQ1AKKy8qIGRoY3Agc3RydWN0IGZvciB0aGUgZXRoZXJuZXQgbmV0aWYgKi8KK3N0YXRpYyBzdHJ1Y3QgZGhjcCBuZXRpZl9kaGNwOworI2VuZGlmIC8qIExXSVBfREhDUCAqLworI2lmIExXSVBfQVVUT0lQCisvKiBhdXRvaXAgc3RydWN0IGZvciB0aGUgZXRoZXJuZXQgbmV0aWYgKi8KK3N0YXRpYyBzdHJ1Y3QgYXV0b2lwIG5ldGlmX2F1dG9pcDsKKyNlbmRpZiAvKiBMV0lQX0FVVE9JUCAqLworI2VuZGlmIC8qIFVTRV9FVEhFUk5FVCAqLworI2lmIFVTRV9QUFAKKy8qIFRIRSBQUFAgUENCICovCitzdGF0aWMgcHBwX3BjYiAqcHBwOworLyogVEhFIFBQUCBpbnRlcmZhY2UgKi8KK3N0YXRpYyBzdHJ1Y3QgbmV0aWYgcHBwX25ldGlmOworLyogVEhFIFBQUCBkZXNjcmlwdG9yICovCitzdGF0aWMgdThfdCBzaW9faWR4ID0gMDsKK3N0YXRpYyBzaW9fZmRfdCBwcHBfc2lvOworI2VuZGlmIC8qIFVTRV9QUFAgKi8KKyNpZiBVU0VfU0xJUElGCitzdGF0aWMgc3RydWN0IG5ldGlmIHNsaXBpZjE7CisjaWYgVVNFX1NMSVBJRiA+IDEKK3N0YXRpYyBzdHJ1Y3QgbmV0aWYgc2xpcGlmMjsKKyNlbmRpZiAvKiBVU0VfU0xJUElGID4gMSAqLworI2VuZGlmIC8qIFVTRV9TTElQSUYgKi8KKworCisjaWYgVVNFX1BQUAorc3RhdGljIHZvaWQKK3BwcExpbmtTdGF0dXNDYWxsYmFjayhwcHBfcGNiICpwY2IsIGludCBlcnJDb2RlLCB2b2lkICpjdHgpCit7CisgIHN0cnVjdCBuZXRpZiAqcHBwaWYgPSBwcHBfbmV0aWYocGNiKTsKKyAgTFdJUF9VTlVTRURfQVJHKGN0eCk7CisKKyAgc3dpdGNoKGVyckNvZGUpIHsKKyAgICBjYXNlIFBQUEVSUl9OT05FOiB7ICAgICAgICAgICAgIC8qIE5vIGVycm9yLiAqLworICAgICAgcHJpbnRmKCJwcHBMaW5rU3RhdHVzQ2FsbGJhY2s6IFBQUEVSUl9OT05FXG4iKTsKKyNpZiBMV0lQX0lQVjQKKyAgICAgIHByaW50ZigiICAgb3VyX2lwYWRkciAgPSAlc1xuIiwgaXA0YWRkcl9udG9hKG5ldGlmX2lwNF9hZGRyKHBwcGlmKSkpOworICAgICAgcHJpbnRmKCIgICBoaXNfaXBhZGRyICA9ICVzXG4iLCBpcDRhZGRyX250b2EobmV0aWZfaXA0X2d3KHBwcGlmKSkpOworICAgICAgcHJpbnRmKCIgICBuZXRtYXNrICAgICA9ICVzXG4iLCBpcDRhZGRyX250b2EobmV0aWZfaXA0X25ldG1hc2socHBwaWYpKSk7CisjZW5kaWYgLyogTFdJUF9JUFY0ICovCisjaWYgTFdJUF9ETlMKKyAgICAgIHByaW50ZigiICAgZG5zMSAgICAgICAgPSAlc1xuIiwgaXBhZGRyX250b2EoZG5zX2dldHNlcnZlcigwKSkpOworICAgICAgcHJpbnRmKCIgICBkbnMyICAgICAgICA9ICVzXG4iLCBpcGFkZHJfbnRvYShkbnNfZ2V0c2VydmVyKDEpKSk7CisjZW5kaWYgLyogTFdJUF9ETlMgKi8KKyNpZiBQUFBfSVBWNl9TVVBQT1JUCisgICAgICBwcmludGYoIiAgIG91cjZfaXBhZGRyID0gJXNcbiIsIGlwNmFkZHJfbnRvYShuZXRpZl9pcDZfYWRkcihwcHBpZiwgMCkpKTsKKyNlbmRpZiAvKiBQUFBfSVBWNl9TVVBQT1JUICovCisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUFBFUlJfUEFSQU06IHsgICAgICAgICAgIC8qIEludmFsaWQgcGFyYW1ldGVyLiAqLworICAgICAgcHJpbnRmKCJwcHBMaW5rU3RhdHVzQ2FsbGJhY2s6IFBQUEVSUl9QQVJBTVxuIik7CisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUFBFUlJfT1BFTjogeyAgICAgICAgICAgIC8qIFVuYWJsZSB0byBvcGVuIFBQUCBzZXNzaW9uLiAqLworICAgICAgcHJpbnRmKCJwcHBMaW5rU3RhdHVzQ2FsbGJhY2s6IFBQUEVSUl9PUEVOXG4iKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBQUEVSUl9ERVZJQ0U6IHsgICAgICAgICAgLyogSW52YWxpZCBJL08gZGV2aWNlIGZvciBQUFAuICovCisgICAgICBwcmludGYoInBwcExpbmtTdGF0dXNDYWxsYmFjazogUFBQRVJSX0RFVklDRVxuIik7CisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUFBFUlJfQUxMT0M6IHsgICAgICAgICAgIC8qIFVuYWJsZSB0byBhbGxvY2F0ZSByZXNvdXJjZXMuICovCisgICAgICBwcmludGYoInBwcExpbmtTdGF0dXNDYWxsYmFjazogUFBQRVJSX0FMTE9DXG4iKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBQUEVSUl9VU0VSOiB7ICAgICAgICAgICAgLyogVXNlciBpbnRlcnJ1cHQuICovCisgICAgICBwcmludGYoInBwcExpbmtTdGF0dXNDYWxsYmFjazogUFBQRVJSX1VTRVJcbiIpOworICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUFBQRVJSX0NPTk5FQ1Q6IHsgICAgICAgICAvKiBDb25uZWN0aW9uIGxvc3QuICovCisgICAgICBwcmludGYoInBwcExpbmtTdGF0dXNDYWxsYmFjazogUFBQRVJSX0NPTk5FQ1RcbiIpOworICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUFBQRVJSX0FVVEhGQUlMOiB7ICAgICAgICAvKiBGYWlsZWQgYXV0aGVudGljYXRpb24gY2hhbGxlbmdlLiAqLworICAgICAgcHJpbnRmKCJwcHBMaW5rU3RhdHVzQ2FsbGJhY2s6IFBQUEVSUl9BVVRIRkFJTFxuIik7CisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUFBFUlJfUFJPVE9DT0w6IHsgICAgICAgIC8qIEZhaWxlZCB0byBtZWV0IHByb3RvY29sLiAqLworICAgICAgcHJpbnRmKCJwcHBMaW5rU3RhdHVzQ2FsbGJhY2s6IFBQUEVSUl9QUk9UT0NPTFxuIik7CisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUFBFUlJfUEVFUkRFQUQ6IHsgICAgICAgIC8qIENvbm5lY3Rpb24gdGltZW91dCAqLworICAgICAgcHJpbnRmKCJwcHBMaW5rU3RhdHVzQ2FsbGJhY2s6IFBQUEVSUl9QRUVSREVBRFxuIik7CisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUFBFUlJfSURMRVRJTUVPVVQ6IHsgICAgIC8qIElkbGUgVGltZW91dCAqLworICAgICAgcHJpbnRmKCJwcHBMaW5rU3RhdHVzQ2FsbGJhY2s6IFBQUEVSUl9JRExFVElNRU9VVFxuIik7CisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUFBFUlJfQ09OTkVDVFRJTUU6IHsgICAgIC8qIE1heCBjb25uZWN0IHRpbWUgcmVhY2hlZCAqLworICAgICAgcHJpbnRmKCJwcHBMaW5rU3RhdHVzQ2FsbGJhY2s6IFBQUEVSUl9DT05ORUNUVElNRVxuIik7CisgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUFBFUlJfTE9PUEJBQ0s6IHsgICAgICAgIC8qIExvb3BiYWNrIGRldGVjdGVkICovCisgICAgICBwcmludGYoInBwcExpbmtTdGF0dXNDYWxsYmFjazogUFBQRVJSX0xPT1BCQUNLXG4iKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OiB7CisgICAgICBwcmludGYoInBwcExpbmtTdGF0dXNDYWxsYmFjazogdW5rbm93biBlcnJDb2RlICVkXG4iLCBlcnJDb2RlKTsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorfQorCisjaWYgUFBQT1NfU1VQUE9SVAorc3RhdGljIHUzMl90CitwcHBfb3V0cHV0X2NiKHBwcF9wY2IgKnBjYiwgY29uc3Qgdm9pZCAqZGF0YSwgdTMyX3QgbGVuLCB2b2lkICpjdHgpCit7CisgIExXSVBfVU5VU0VEX0FSRyhwY2IpOworICBMV0lQX1VOVVNFRF9BUkcoY3R4KTsKKyAgcmV0dXJuIHNpb193cml0ZShwcHBfc2lvLCAoY29uc3QgdThfdCopZGF0YSwgbGVuKTsKK30KKyNlbmRpZiAvKiBQUFBPU19TVVBQT1JUICovCisjZW5kaWYgLyogVVNFX1BQUCAqLworCisjaWYgTFdJUF9ORVRJRl9TVEFUVVNfQ0FMTEJBQ0sKK3N0YXRpYyB2b2lkCitzdGF0dXNfY2FsbGJhY2soc3RydWN0IG5ldGlmICpzdGF0ZV9uZXRpZikKK3sKKyAgaWYgKG5ldGlmX2lzX3VwKHN0YXRlX25ldGlmKSkgeworI2lmIExXSVBfSVBWNAorICAgIHByaW50Zigic3RhdHVzX2NhbGxiYWNrPT1VUCwgbG9jYWwgaW50ZXJmYWNlIElQIGlzICVzXG4iLCBpcDRhZGRyX250b2EobmV0aWZfaXA0X2FkZHIoc3RhdGVfbmV0aWYpKSk7CisjZWxzZQorICAgIHByaW50Zigic3RhdHVzX2NhbGxiYWNrPT1VUFxuIik7CisjZW5kaWYKKyAgfSBlbHNlIHsKKyAgICBwcmludGYoInN0YXR1c19jYWxsYmFjaz09RE9XTlxuIik7CisgIH0KK30KKyNlbmRpZiAvKiBMV0lQX05FVElGX1NUQVRVU19DQUxMQkFDSyAqLworCisjaWYgTFdJUF9ORVRJRl9MSU5LX0NBTExCQUNLCitzdGF0aWMgdm9pZAorbGlua19jYWxsYmFjayhzdHJ1Y3QgbmV0aWYgKnN0YXRlX25ldGlmKQoreworICBpZiAobmV0aWZfaXNfbGlua191cChzdGF0ZV9uZXRpZikpIHsKKyAgICBwcmludGYoImxpbmtfY2FsbGJhY2s9PVVQXG4iKTsKKyAgfSBlbHNlIHsKKyAgICBwcmludGYoImxpbmtfY2FsbGJhY2s9PURPV05cbiIpOworICB9Cit9CisjZW5kaWYgLyogTFdJUF9ORVRJRl9MSU5LX0NBTExCQUNLICovCisKKy8qIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgYWxsIG5ldHdvcmsgaW50ZXJmYWNlcyAqLworc3RhdGljIHZvaWQKK3Rlc3RfbmV0aWZfaW5pdCh2b2lkKQoreworI2lmIExXSVBfSVBWNCAmJiBVU0VfRVRIRVJORVQKKyAgaXA0X2FkZHJfdCBpcGFkZHIsIG5ldG1hc2ssIGd3OworI2VuZGlmIC8qIExXSVBfSVBWNCAmJiBVU0VfRVRIRVJORVQgKi8KKyNpZiBVU0VfU0xJUElGCisgIHU4X3QgbnVtX3NsaXAxID0gMDsKKyNpZiBMV0lQX0lQVjQKKyAgaXA0X2FkZHJfdCBpcGFkZHJfc2xpcDEsIG5ldG1hc2tfc2xpcDEsIGd3X3NsaXAxOworI2VuZGlmCisjaWYgVVNFX1NMSVBJRiA+IDEKKyAgdThfdCBudW1fc2xpcDIgPSAxOworI2lmIExXSVBfSVBWNAorICBpcDRfYWRkcl90IGlwYWRkcl9zbGlwMiwgbmV0bWFza19zbGlwMiwgZ3dfc2xpcDI7CisjZW5kaWYKKyNlbmRpZiAvKiBVU0VfU0xJUElGID4gMSAqLworI2VuZGlmIC8qIFVTRV9TTElQSUYgKi8KKyNpZiBVU0VfREhDUCB8fCBVU0VfQVVUT0lQCisgIGVycl90IGVycjsKKyNlbmRpZgorCisjaWYgVVNFX1BQUAorICBjb25zdCBjaGFyICp1c2VybmFtZSA9IE5VTEwsICpwYXNzd29yZCA9IE5VTEw7CisjaWZkZWYgUFBQX1VTRVJOQU1FCisgIHVzZXJuYW1lID0gUFBQX1VTRVJOQU1FOworI2VuZGlmCisjaWZkZWYgUFBQX1BBU1NXT1JECisgIHBhc3N3b3JkID0gUFBQX1BBU1NXT1JEOworI2VuZGlmCisgIHByaW50ZigicHBwX2Nvbm5lY3Q6IENPTSVkXG4iLCAoaW50KXNpb19pZHgpOworI2lmIFBQUE9TX1NVUFBPUlQKKyAgcHBwX3NpbyA9IHNpb19vcGVuKHNpb19pZHgpOworICBpZiAocHBwX3NpbyA9PSBOVUxMKSB7CisgICAgcHJpbnRmKCJzaW9fb3BlbiBlcnJvclxuIik7CisgIH0gZWxzZSB7CisgICAgcHBwID0gcHBwb3NfY3JlYXRlKCZwcHBfbmV0aWYsIHBwcF9vdXRwdXRfY2IsIHBwcExpbmtTdGF0dXNDYWxsYmFjaywgTlVMTCk7CisgICAgaWYgKHBwcCA9PSBOVUxMKSB7CisgICAgICBwcmludGYoInBwcG9zX2NyZWF0ZSBlcnJvclxuIik7CisgICAgfSBlbHNlIHsKKyAgICAgIHBwcF9zZXRfYXV0aChwcHAsIFBQUEFVVEhUWVBFX0FOWSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsKKyAgICAgIHBwcF9jb25uZWN0KHBwcCwgMCk7CisgICAgfQorICB9CisjZW5kaWYgLyogUFBQT1NfU1VQUE9SVCAqLworI2VuZGlmICAvKiBVU0VfUFBQICovCisKKyNpZiBVU0VfRVRIRVJORVQKKyNpZiBMV0lQX0lQVjQKKyAgaXA0X2FkZHJfc2V0X3plcm8oJmd3KTsKKyAgaXA0X2FkZHJfc2V0X3plcm8oJmlwYWRkcik7CisgIGlwNF9hZGRyX3NldF96ZXJvKCZuZXRtYXNrKTsKKyNpZiBVU0VfRVRIRVJORVRfVENQSVAKKyNpZiBVU0VfREhDUAorICBwcmludGYoIlN0YXJ0aW5nIGx3SVAsIGxvY2FsIGludGVyZmFjZSBJUCBpcyBkaGNwLWVuYWJsZWRcbiIpOworI2VsaWYgVVNFX0FVVE9JUAorICBwcmludGYoIlN0YXJ0aW5nIGx3SVAsIGxvY2FsIGludGVyZmFjZSBJUCBpcyBhdXRvaXAtZW5hYmxlZFxuIik7CisjZWxzZSAvKiBVU0VfREhDUCAqLworICBMV0lQX1BPUlRfSU5JVF9HVygmZ3cpOworICBMV0lQX1BPUlRfSU5JVF9JUEFERFIoJmlwYWRkcik7CisgIExXSVBfUE9SVF9JTklUX05FVE1BU0soJm5ldG1hc2spOworICBwcmludGYoIlN0YXJ0aW5nIGx3SVAsIGxvY2FsIGludGVyZmFjZSBJUCBpcyAlc1xuIiwgaXA0YWRkcl9udG9hKCZpcGFkZHIpKTsKKyNlbmRpZiAvKiBVU0VfREhDUCAqLworI2VuZGlmIC8qIFVTRV9FVEhFUk5FVF9UQ1BJUCAqLworI2Vsc2UgLyogTFdJUF9JUFY0ICovCisgIHByaW50ZigiU3RhcnRpbmcgbHdJUCwgSVB2NCBkaXNhYmxlXG4iKTsKKyNlbmRpZiAvKiBMV0lQX0lQVjQgKi8KKworI2lmIExXSVBfSVBWNAorICBpbml0X2RlZmF1bHRfbmV0aWYoJmlwYWRkciwgJm5ldG1hc2ssICZndyk7CisjZWxzZQorICBpbml0X2RlZmF1bHRfbmV0aWYoKTsKKyNlbmRpZgorI2lmIExXSVBfSVBWNgorICBuZXRpZl9jcmVhdGVfaXA2X2xpbmtsb2NhbF9hZGRyZXNzKG5ldGlmX2RlZmF1bHQsIDEpOworICBwcmludGYoImlwNiBsaW5rbG9jYWwgYWRkcmVzczogJXNcbiIsIGlwNmFkZHJfbnRvYShuZXRpZl9pcDZfYWRkcihuZXRpZl9kZWZhdWx0LCAwKSkpOworI2VuZGlmIC8qIExXSVBfSVBWNiAqLworI2lmIExXSVBfTkVUSUZfU1RBVFVTX0NBTExCQUNLCisgIG5ldGlmX3NldF9zdGF0dXNfY2FsbGJhY2sobmV0aWZfZGVmYXVsdCwgc3RhdHVzX2NhbGxiYWNrKTsKKyNlbmRpZiAvKiBMV0lQX05FVElGX1NUQVRVU19DQUxMQkFDSyAqLworI2lmIExXSVBfTkVUSUZfTElOS19DQUxMQkFDSworICBuZXRpZl9zZXRfbGlua19jYWxsYmFjayhuZXRpZl9kZWZhdWx0LCBsaW5rX2NhbGxiYWNrKTsKKyNlbmRpZiAvKiBMV0lQX05FVElGX0xJTktfQ0FMTEJBQ0sgKi8KKworI2lmIFVTRV9FVEhFUk5FVF9UQ1BJUAorI2lmIExXSVBfQVVUT0lQCisgIGF1dG9pcF9zZXRfc3RydWN0KG5ldGlmX2RlZmF1bHQsICZuZXRpZl9hdXRvaXApOworI2VuZGlmIC8qIExXSVBfQVVUT0lQICovCisjaWYgTFdJUF9ESENQCisgIGRoY3Bfc2V0X3N0cnVjdChuZXRpZl9kZWZhdWx0LCAmbmV0aWZfZGhjcCk7CisjZW5kaWYgLyogTFdJUF9ESENQICovCisgIG5ldGlmX3NldF91cChuZXRpZl9kZWZhdWx0KTsKKyNpZiBVU0VfREhDUAorICBlcnIgPSBkaGNwX3N0YXJ0KG5ldGlmX2RlZmF1bHQpOworICBMV0lQX0FTU0VSVCgiZGhjcF9zdGFydCBmYWlsZWQiLCBlcnIgPT0gRVJSX09LKTsKKyNlbGlmIFVTRV9BVVRPSVAKKyAgZXJyID0gYXV0b2lwX3N0YXJ0KG5ldGlmX2RlZmF1bHQpOworICBMV0lQX0FTU0VSVCgiYXV0b2lwX3N0YXJ0IGZhaWxlZCIsIGVyciA9PSBFUlJfT0spOworI2VuZGlmIC8qIFVTRV9ESENQICovCisjZWxzZSAvKiBVU0VfRVRIRVJORVRfVENQSVAgKi8KKyAgLyogVXNlIGV0aGVybmV0IGZvciBQUFBvRSBvbmx5ICovCisgIG5ldGlmLmZsYWdzICY9IH4oTkVUSUZfRkxBR19FVEhBUlAgfCBORVRJRl9GTEFHX0lHTVApOyAvKiBubyBBUlAgKi8KKyAgbmV0aWYuZmxhZ3MgfD0gTkVUSUZfRkxBR19FVEhFUk5FVDsgLyogYnV0IHB1cmUgZXRoZXJuZXQgKi8KKyNlbmRpZiAvKiBVU0VfRVRIRVJORVRfVENQSVAgKi8KKworI2lmIFVTRV9QUFAgJiYgUFBQT0VfU1VQUE9SVAorICAvKiBzdGFydCBQUFBvRSBhZnRlciBldGhlcm5ldCBuZXRpZiBpcyBhZGRlZCEgKi8KKyAgcHBwID0gcHBwb2VfY3JlYXRlKCZwcHBfbmV0aWYsIG5ldGlmX2RlZmF1bHQsIE5VTEwsIE5VTEwsIHBwcExpbmtTdGF0dXNDYWxsYmFjaywgTlVMTCk7CisgIGlmIChwcHAgPT0gTlVMTCkgeworICAgIHByaW50ZigicHBwb2VfY3JlYXRlIGVycm9yXG4iKTsKKyAgfSBlbHNlIHsKKyAgICBwcHBfc2V0X2F1dGgocHBwLCBQUFBBVVRIVFlQRV9BTlksIHVzZXJuYW1lLCBwYXNzd29yZCk7CisgICAgcHBwX2Nvbm5lY3QocHBwLCAwKTsKKyAgfQorI2VuZGlmIC8qIFVTRV9QUFAgJiYgUFBQT0VfU1VQUE9SVCAqLworCisjZW5kaWYgLyogVVNFX0VUSEVSTkVUICovCisjaWYgVVNFX1NMSVBJRgorI2lmIExXSVBfSVBWNAorI2RlZmluZSBTTElQMV9BRERSUyAmaXBhZGRyX3NsaXAxLCAmbmV0bWFza19zbGlwMSwgJmd3X3NsaXAxLAorICBMV0lQX1BPUlRfSU5JVF9TTElQMV9JUEFERFIoJmlwYWRkcl9zbGlwMSk7CisgIExXSVBfUE9SVF9JTklUX1NMSVAxX0dXKCZnd19zbGlwMSk7CisgIExXSVBfUE9SVF9JTklUX1NMSVAxX05FVE1BU0soJm5ldG1hc2tfc2xpcDEpOworICBwcmludGYoIlN0YXJ0aW5nIGx3SVAgc2xpcGlmLCBsb2NhbCBpbnRlcmZhY2UgSVAgaXMgJXNcbiIsIGlwNGFkZHJfbnRvYSgmaXBhZGRyX3NsaXAxKSk7CisjZWxzZQorI2RlZmluZSBTTElQMV9BRERSUworICBwcmludGYoIlN0YXJ0aW5nIGx3SVAgc2xpcGlmXG4iKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoU0lPX1VTRV9DT01QT1JUKSAmJiBTSU9fVVNFX0NPTVBPUlQKKyAgbnVtX3NsaXAxKys7IC8qIENPTSBwb3J0cyBjYW5ub3QgYmUgMC1iYXNlZCAqLworI2VuZGlmCisgIG5ldGlmX2FkZCgmc2xpcGlmMSwgU0xJUDFfQUREUlMgJm51bV9zbGlwMSwgc2xpcGlmX2luaXQsIGlwX2lucHV0KTsKKyNpZiAhVVNFX0VUSEVSTkVUCisgIG5ldGlmX3NldF9kZWZhdWx0KCZzbGlwaWYxKTsKKyNlbmRpZiAvKiAhVVNFX0VUSEVSTkVUICovCisjaWYgTFdJUF9JUFY2CisgIG5ldGlmX2NyZWF0ZV9pcDZfbGlua2xvY2FsX2FkZHJlc3MoJnNsaXBpZjEsIDEpOworICBwcmludGYoIlNMSVAgaXA2IGxpbmtsb2NhbCBhZGRyZXNzOiAlc1xuIiwgaXA2YWRkcl9udG9hKG5ldGlmX2lwNl9hZGRyKCZzbGlwaWYxLCAwKSkpOworI2VuZGlmIC8qIExXSVBfSVBWNiAqLworI2lmIExXSVBfTkVUSUZfU1RBVFVTX0NBTExCQUNLCisgIG5ldGlmX3NldF9zdGF0dXNfY2FsbGJhY2soJnNsaXBpZjEsIHN0YXR1c19jYWxsYmFjayk7CisjZW5kaWYgLyogTFdJUF9ORVRJRl9TVEFUVVNfQ0FMTEJBQ0sgKi8KKyNpZiBMV0lQX05FVElGX0xJTktfQ0FMTEJBQ0sKKyAgbmV0aWZfc2V0X2xpbmtfY2FsbGJhY2soJnNsaXBpZjEsIGxpbmtfY2FsbGJhY2spOworI2VuZGlmIC8qIExXSVBfTkVUSUZfTElOS19DQUxMQkFDSyAqLworICBuZXRpZl9zZXRfdXAoJnNsaXBpZjEpOworCisjaWYgVVNFX1NMSVBJRiA+IDEKKyNpZiBMV0lQX0lQVjQKKyNkZWZpbmUgU0xJUDJfQUREUlMgJmlwYWRkcl9zbGlwMiwgJm5ldG1hc2tfc2xpcDIsICZnd19zbGlwMiwKKyAgTFdJUF9QT1JUX0lOSVRfU0xJUDJfSVBBRERSKCZpcGFkZHJfc2xpcDIpOworICBMV0lQX1BPUlRfSU5JVF9TTElQMl9HVygmZ3dfc2xpcDIpOworICBMV0lQX1BPUlRfSU5JVF9TTElQMl9ORVRNQVNLKCZuZXRtYXNrX3NsaXAyKTsKKyAgcHJpbnRmKCJTdGFydGluZyBsd0lQIFNMSVAgaWYgIzIsIGxvY2FsIGludGVyZmFjZSBJUCBpcyAlc1xuIiwgaXA0YWRkcl9udG9hKCZpcGFkZHJfc2xpcDIpKTsKKyNlbHNlCisjZGVmaW5lIFNMSVAyX0FERFJTCisgIHByaW50ZigiU3RhcnRpbmcgbHdJUCBTTElQIGlmICMyXG4iKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoU0lPX1VTRV9DT01QT1JUKSAmJiBTSU9fVVNFX0NPTVBPUlQKKyAgbnVtX3NsaXAyKys7IC8qIENPTSBwb3J0cyBjYW5ub3QgYmUgMC1iYXNlZCAqLworI2VuZGlmCisgIG5ldGlmX2FkZCgmc2xpcGlmMiwgU0xJUDJfQUREUlMgJm51bV9zbGlwMiwgc2xpcGlmX2luaXQsIGlwX2lucHV0KTsKKyNpZiBMV0lQX0lQVjYKKyAgbmV0aWZfY3JlYXRlX2lwNl9saW5rbG9jYWxfYWRkcmVzcygmc2xpcGlmMSwgMSk7CisgIHByaW50ZigiU0xJUDIgaXA2IGxpbmtsb2NhbCBhZGRyZXNzOiAiKTsKKyAgaXA2X2FkZHJfZGVidWdfcHJpbnQoMHhGRkZGRkZGRiAmIH5MV0lQX0RCR19IQUxULCBuZXRpZl9pcDZfYWRkcigmc2xpcGlmMiwgMCkpOworICBwcmludGYoIlxuIik7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisjaWYgTFdJUF9ORVRJRl9TVEFUVVNfQ0FMTEJBQ0sKKyAgbmV0aWZfc2V0X3N0YXR1c19jYWxsYmFjaygmc2xpcGlmMiwgc3RhdHVzX2NhbGxiYWNrKTsKKyNlbmRpZiAvKiBMV0lQX05FVElGX1NUQVRVU19DQUxMQkFDSyAqLworI2lmIExXSVBfTkVUSUZfTElOS19DQUxMQkFDSworICBuZXRpZl9zZXRfbGlua19jYWxsYmFjaygmc2xpcGlmMiwgbGlua19jYWxsYmFjayk7CisjZW5kaWYgLyogTFdJUF9ORVRJRl9MSU5LX0NBTExCQUNLICovCisgIG5ldGlmX3NldF91cCgmc2xpcGlmMik7CisjZW5kaWYgLyogVVNFX1NMSVBJRiA+IDEqLworI2VuZGlmIC8qIFVTRV9TTElQSUYgKi8KK30KKworI2lmIExXSVBfRE5TX0FQUCAmJiBMV0lQX0ROUworc3RhdGljIHZvaWQKK2Ruc19mb3VuZChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBpcF9hZGRyX3QgKmFkZHIsIHZvaWQgKmFyZykKK3sKKyAgTFdJUF9VTlVTRURfQVJHKGFyZyk7CisgIHByaW50ZigiJXM6ICVzXG4iLCBuYW1lLCBhZGRyID8gaXBhZGRyX250b2EoYWRkcikgOiAiPG5vdCBmb3VuZD4iKTsKK30KKworc3RhdGljIHZvaWQKK2Ruc19kb3JlcXVlc3Qodm9pZCAqYXJnKQoreworICBjb25zdCBjaGFyKiBkbnNuYW1lID0gIjNjb20uY29tIjsKKyAgaXBfYWRkcl90IGRuc3Jlc3A7CisgIExXSVBfVU5VU0VEX0FSRyhhcmcpOworCisgIGlmIChkbnNfZ2V0aG9zdGJ5bmFtZShkbnNuYW1lLCAmZG5zcmVzcCwgZG5zX2ZvdW5kLCBOVUxMKSA9PSBFUlJfT0spIHsKKyAgICBkbnNfZm91bmQoZG5zbmFtZSwgJmRuc3Jlc3AsIE5VTEwpOworICB9Cit9CisjZW5kaWYgLyogTFdJUF9ETlNfQVBQICYmIExXSVBfRE5TICovCisKKy8qIFRoaXMgZnVuY3Rpb24gaW5pdGlhbGl6ZXMgYXBwbGljYXRpb25zICovCitzdGF0aWMgdm9pZAorYXBwc19pbml0KHZvaWQpCit7CisjaWYgTFdJUF9ETlNfQVBQICYmIExXSVBfRE5TCisgIC8qIHdhaXQgdW50aWwgdGhlIG5ldGlmIGlzIHVwIChmb3IgZGhjcCwgYXV0b2lwIG9yIHBwcCkgKi8KKyAgc3lzX3RpbWVvdXQoNTAwMCwgZG5zX2RvcmVxdWVzdCwgTlVMTCk7CisjZW5kaWYgLyogTFdJUF9ETlNfQVBQICYmIExXSVBfRE5TICovCisKKyNpZiBMV0lQX0NIQVJHRU5fQVBQICYmIExXSVBfU09DS0VUCisgIGNoYXJnZW5faW5pdCgpOworI2VuZGlmIC8qIExXSVBfQ0hBUkdFTl9BUFAgJiYgTFdJUF9TT0NLRVQgKi8KKworI2lmIExXSVBfUElOR19BUFAgJiYgTFdJUF9SQVcgJiYgTFdJUF9JQ01QCisgIHBpbmdfaW5pdCgmbmV0aWZfZGVmYXVsdC0+Z3cpOworI2VuZGlmIC8qIExXSVBfUElOR19BUFAgJiYgTFdJUF9SQVcgJiYgTFdJUF9JQ01QICovCisKKyNpZiBMV0lQX05FVEJJT1NfQVBQICYmIExXSVBfVURQCisgIG5ldGJpb3Nuc19pbml0KCk7CisjaWZuZGVmIE5FVEJJT1NfTFdJUF9OQU1FCisjaWYgTFdJUF9ORVRJRl9IT1NUTkFNRQorICBuZXRiaW9zbnNfc2V0X25hbWUobmV0aWZfZGVmYXVsdC0+aG9zdG5hbWUpOworI2Vsc2UKKyAgbmV0Ymlvc25zX3NldF9uYW1lKCJORVRCSU9TTFdJUERFViIpOworI2VuZGlmCisjZW5kaWYKKyNlbmRpZiAvKiBMV0lQX05FVEJJT1NfQVBQICYmIExXSVBfVURQICovCisKKyNpZiBMV0lQX0hUVFBEX0FQUCAmJiBMV0lQX1RDUAorI2lmZGVmIExXSVBfSFRUUERfQVBQX05FVENPTk4KKyAgaHR0cF9zZXJ2ZXJfbmV0Y29ubl9pbml0KCk7CisjZWxzZSAvKiBMV0lQX0hUVFBEX0FQUF9ORVRDT05OICovCisjaWYgZGVmaW5lZChMV0lQX0hUVFBEX0VYQU1QTEVfQ1VTVE9NRklMRVMpICYmIExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFUyAmJiBkZWZpbmVkKExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFU19ST09URElSKQorICBmc19leF9pbml0KExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFU19ST09URElSKTsKKyNlbmRpZgorICBodHRwZF9pbml0KCk7CisjaWYgZGVmaW5lZChMV0lQX0hUVFBEX0VYQU1QTEVfU1NJX1NJTVBMRSkgJiYgTFdJUF9IVFRQRF9FWEFNUExFX1NTSV9TSU1QTEUKKyAgc3NpX2V4X2luaXQoKTsKKyNlbmRpZgorI2lmIGRlZmluZWQoTFdJUF9IVFRQRF9FWEFNUExFX0NHSV9TSU1QTEUpICYmIExXSVBfSFRUUERfRVhBTVBMRV9DR0lfU0lNUExFCisgIGNnaV9leF9pbml0KCk7CisjZW5kaWYKKyNpZiBkZWZpbmVkKExXSVBfSFRUUERfRVhBTVBMRV9IVFRQUykgJiYgTFdJUF9IVFRQRF9FWEFNUExFX0hUVFBTCisgIGh0dHBzX2V4X2luaXQoKTsKKyNlbmRpZgorI2VuZGlmIC8qIExXSVBfSFRUUERfQVBQX05FVENPTk4gKi8KKyNlbmRpZiAvKiBMV0lQX0hUVFBEX0FQUCAmJiBMV0lQX1RDUCAqLworCisjaWYgTFdJUF9ORVRJT19BUFAgJiYgTFdJUF9UQ1AKKyAgbmV0aW9faW5pdCgpOworI2VuZGlmIC8qIExXSVBfTkVUSU9fQVBQICYmIExXSVBfVENQICovCisKKyNpZiBMV0lQX1JUUF9BUFAgJiYgTFdJUF9TT0NLRVQgJiYgTFdJUF9JR01QCisgIHJ0cF9pbml0KCk7CisjZW5kaWYgLyogTFdJUF9SVFBfQVBQICYmIExXSVBfU09DS0VUICYmIExXSVBfSUdNUCAqLworCisjaWYgTFdJUF9TSEVMTF9BUFAgJiYgTFdJUF9ORVRDT05OCisgIHNoZWxsX2luaXQoKTsKKyNlbmRpZiAvKiBMV0lQX1NIRUxMX0FQUCAmJiBMV0lQX05FVENPTk4gKi8KKyNpZiBMV0lQX1RDUEVDSE9fQVBQCisjaWYgTFdJUF9ORVRDT05OICYmIGRlZmluZWQoTFdJUF9UQ1BFQ0hPX0FQUF9ORVRDT05OKQorICB0Y3BlY2hvX2luaXQoKTsKKyNlbHNlIC8qIExXSVBfTkVUQ09OTiAmJiBkZWZpbmVkKExXSVBfVENQRUNIT19BUFBfTkVUQ09OTikgKi8KKyAgdGNwZWNob19yYXdfaW5pdCgpOworI2VuZGlmCisjZW5kaWYgLyogTFdJUF9UQ1BFQ0hPX0FQUCAmJiBMV0lQX05FVENPTk4gKi8KKyNpZiBMV0lQX1VEUEVDSE9fQVBQICYmIExXSVBfTkVUQ09OTgorICB1ZHBlY2hvX2luaXQoKTsKKyNlbmRpZiAvKiBMV0lQX1VEUEVDSE9fQVBQICYmIExXSVBfTkVUQ09OTiAqLworI2lmIExXSVBfU09DS0VUX0VYQU1QTEVTX0FQUCAmJiBMV0lQX1NPQ0tFVAorICBzb2NrZXRfZXhhbXBsZXNfaW5pdCgpOworI2VuZGlmIC8qIExXSVBfU09DS0VUX0VYQU1QTEVTX0FQUCAmJiBMV0lQX1NPQ0tFVCAqLworI2lmIExXSVBfTUROU19BUFAKKyAgbWRuc19leGFtcGxlX2luaXQoKTsKKyNlbmRpZgorI2lmIExXSVBfU05NUF9BUFAKKyAgc25tcF9leGFtcGxlX2luaXQoKTsKKyNlbmRpZgorI2lmIExXSVBfU05UUF9BUFAKKyAgc250cF9leGFtcGxlX2luaXQoKTsKKyNlbmRpZgorI2lmIExXSVBfVEZUUF9BUFAKKyAgdGZ0cF9leGFtcGxlX2luaXRfc2VydmVyKCk7CisjZW5kaWYKKyNpZiBMV0lQX1RGVFBfQ0xJRU5UX0FQUAorICB0ZnRwX2V4YW1wbGVfaW5pdF9jbGllbnQoKTsKKyNlbmRpZgorI2lmIExXSVBfTFdJUEVSRl9BUFAKKyAgbHdpcGVyZl9leGFtcGxlX2luaXQoKTsKKyNlbmRpZgorI2lmIExXSVBfTVFUVF9BUFAKKyAgbXF0dF9leGFtcGxlX2luaXQoKTsKKyNlbmRpZgorCisjaWZkZWYgTFdJUF9BUFBfSU5JVAorICBMV0lQX0FQUF9JTklUKCk7CisjZW5kaWYKK30KKworLyogVGhpcyBmdW5jdGlvbiBpbml0aWFsaXplcyB0aGlzIGx3SVAgdGVzdC4gV2hlbiBOT19TWVM9MSwgdGhpcyBpcyBkb25lIGluCisgKiB0aGUgbWFpbl9sb29wIGNvbnRleHQgKHRoZXJlIGlzIG5vIG90aGVyIG9uZSksIHdoZW4gTk9fU1lTPTAsIHRoaXMgaXMgZG9uZQorICogaW4gdGhlIHRjcGlwX3RocmVhZCBjb250ZXh0ICovCitzdGF0aWMgdm9pZAordGVzdF9pbml0KHZvaWQgKiBhcmcpCit7IC8qIHJlbW92ZSBjb21waWxlciB3YXJuaW5nICovCisjaWYgTk9fU1lTCisgIExXSVBfVU5VU0VEX0FSRyhhcmcpOworI2Vsc2UgLyogTk9fU1lTICovCisgIHN5c19zZW1fdCAqaW5pdF9zZW07CisgIExXSVBfQVNTRVJUKCJhcmcgIT0gTlVMTCIsIGFyZyAhPSBOVUxMKTsKKyAgaW5pdF9zZW0gPSAoc3lzX3NlbV90Kilhcmc7CisjZW5kaWYgLyogTk9fU1lTICovCisKKyAgLyogaW5pdCByYW5kb21pemVyIGFnYWluIChzZWVkIHBlciB0aHJlYWQpICovCisgIHNyYW5kKCh1bnNpZ25lZCBpbnQpdGltZShOVUxMKSk7CisKKyAgLyogaW5pdCBuZXR3b3JrIGludGVyZmFjZXMgKi8KKyAgdGVzdF9uZXRpZl9pbml0KCk7CisKKyAgLyogaW5pdCBhcHBzICovCisgIGFwcHNfaW5pdCgpOworCisjaWYgIU5PX1NZUworICBzeXNfc2VtX3NpZ25hbChpbml0X3NlbSk7CisjZW5kaWYgLyogIU5PX1NZUyAqLworfQorCisvKiBUaGlzIGlzIHNvbWV3aGF0IGRpZmZlcmVudCB0byBvdGhlciBwb3J0czogd2UgaGF2ZSBhIG1haW4gbG9vcCBoZXJlOgorICogYSBkZWRpY2F0ZWQgdGFzayB0aGF0IHdhaXRzIGZvciBwYWNrZXRzIHRvIGFycml2ZS4gVGhpcyB3b3VsZCBub3JtYWxseSBiZQorICogZG9uZSBmcm9tIGludGVycnVwdCBjb250ZXh0IHdpdGggZW1iZWRkZWQgaGFyZHdhcmUsIGJ1dCB3ZSBkb24ndCBnZXQgYW4KKyAqIGludGVycnVwdCBpbiB3aW5kb3dzIGZvciB0aGF0IDotKSAqLworc3RhdGljIHZvaWQKK21haW5fbG9vcCh2b2lkKQoreworI2lmICFOT19TWVMKKyAgZXJyX3QgZXJyOworICBzeXNfc2VtX3QgaW5pdF9zZW07CisjZW5kaWYgLyogTk9fU1lTICovCisjaWYgVVNFX1BQUAorI2lmICFVU0VfRVRIRVJORVQKKyAgaW50IGNvdW50OworICB1OF90IHJ4YnVmWzEwMjRdOworI2VuZGlmCisgIHZvbGF0aWxlIGludCBjYWxsQ2xvc2VQcHAgPSAwOworI2VuZGlmIC8qIFVTRV9QUFAgKi8KKworICAvKiBpbml0aWFsaXplIGx3SVAgc3RhY2ssIG5ldHdvcmsgaW50ZXJmYWNlcyBhbmQgYXBwbGljYXRpb25zICovCisjaWYgTk9fU1lTCisgIGx3aXBfaW5pdCgpOworICB0ZXN0X2luaXQoTlVMTCk7CisjZWxzZSAvKiBOT19TWVMgKi8KKyAgZXJyID0gc3lzX3NlbV9uZXcoJmluaXRfc2VtLCAwKTsKKyAgTFdJUF9BU1NFUlQoImZhaWxlZCB0byBjcmVhdGUgaW5pdF9zZW0iLCBlcnIgPT0gRVJSX09LKTsKKyAgTFdJUF9VTlVTRURfQVJHKGVycik7CisgIHRjcGlwX2luaXQodGVzdF9pbml0LCAmaW5pdF9zZW0pOworICAvKiB3ZSBoYXZlIHRvIHdhaXQgZm9yIGluaXRpYWxpemF0aW9uIHRvIGZpbmlzaCBiZWZvcmUKKyAgICogY2FsbGluZyB1cGRhdGVfYWRhcHRlcigpISAqLworICBzeXNfc2VtX3dhaXQoJmluaXRfc2VtKTsKKyAgc3lzX3NlbV9mcmVlKCZpbml0X3NlbSk7CisjZW5kaWYgLyogTk9fU1lTICovCisKKyNpZiAoTFdJUF9TT0NLRVQgfHwgTFdJUF9ORVRDT05OKSAmJiBMV0lQX05FVENPTk5fU0VNX1BFUl9USFJFQUQKKyAgbmV0Y29ubl90aHJlYWRfaW5pdCgpOworI2VuZGlmCisKKyAgLyogTUFJTiBMT09QIGZvciBkcml2ZXIgdXBkYXRlIChhbmQgdGltZXJzIGlmIE5PX1NZUykgKi8KKyAgd2hpbGUgKCFMV0lQX0VYQU1QTEVfQVBQX0FCT1JUKCkpIHsKKyNpZiBOT19TWVMKKyAgICAvKiBoYW5kbGUgdGltZXJzIChhbHJlYWR5IGRvbmUgaW4gdGNwaXAuYyB3aGVuIE5PX1NZUz0wKSAqLworICAgIHN5c19jaGVja190aW1lb3V0cygpOworI2VuZGlmIC8qIE5PX1NZUyAqLworCisjaWYgVVNFX0VUSEVSTkVUCisgICAgZGVmYXVsdF9uZXRpZl9wb2xsKCk7CisjZWxzZSAvKiBVU0VfRVRIRVJORVQgKi8KKyAgICAvKiB0cnkgdG8gcmVhZCBjaGFyYWN0ZXJzIGZyb20gc2VyaWFsIGxpbmUgYW5kIHBhc3MgdGhlbSB0byBQUFBvUyAqLworICAgIGNvdW50ID0gc2lvX3JlYWQocHBwX3NpbywgKHU4X3QqKXJ4YnVmLCAxMDI0KTsKKyAgICBpZihjb3VudCA+IDApIHsKKyAgICAgIHBwcG9zX2lucHV0KHBwcCwgcnhidWYsIGNvdW50KTsKKyAgICB9IGVsc2UgeworICAgICAgLyogbm90aGluZyByZWNlaXZlZCwgZ2l2ZSBvdGhlciB0YXNrcyBhIGNoYW5jZSB0byBydW4gKi8KKyAgICAgIHN5c19tc2xlZXAoMSk7CisgICAgfQorCisjZW5kaWYgLyogVVNFX0VUSEVSTkVUICovCisjaWYgVVNFX1NMSVBJRgorICAgIHNsaXBpZl9wb2xsKCZzbGlwaWYxKTsKKyNpZiBVU0VfU0xJUElGID4gMQorICAgIHNsaXBpZl9wb2xsKCZzbGlwaWYyKTsKKyNlbmRpZiAvKiBVU0VfU0xJUElGID4gMSAqLworI2VuZGlmIC8qIFVTRV9TTElQSUYgKi8KKyNpZiBFTkFCTEVfTE9PUEJBQ0sgJiYgIUxXSVBfTkVUSUZfTE9PUEJBQ0tfTVVMVElUSFJFQURJTkcKKyAgICAvKiBjaGVjayBmb3IgbG9vcGJhY2sgcGFja2V0cyBvbiBhbGwgbmV0aWZzICovCisgICAgbmV0aWZfcG9sbF9hbGwoKTsKKyNlbmRpZiAvKiBFTkFCTEVfTE9PUEJBQ0sgJiYgIUxXSVBfTkVUSUZfTE9PUEJBQ0tfTVVMVElUSFJFQURJTkcgKi8KKyNpZiBVU0VfUFBQCisgICAgeworICAgIGludCBkb19odXAgPSAwOworICAgIGlmKGRvX2h1cCkgeworICAgICAgcHBwX2Nsb3NlKHBwcCwgMSk7CisgICAgICBkb19odXAgPSAwOworICAgIH0KKyAgICB9CisgICAgaWYoY2FsbENsb3NlUHBwICYmIHBwcCkgeworICAgICAgLyogbWFrZSBzdXJlIHRvIGRpc2Nvbm5lY3QgUFBQIGJlZm9yZSBzdG9wcGluZyB0aGUgcHJvZ3JhbS4uLiAqLworICAgICAgY2FsbENsb3NlUHBwID0gMDsKKyNpZiBOT19TWVMKKyAgICAgIHBwcF9jbG9zZShwcHAsIDApOworI2Vsc2UKKyAgICAgIHBwcGFwaV9jbG9zZShwcHAsIDApOworI2VuZGlmCisgICAgICBwcHAgPSBOVUxMOworICAgIH0KKyNlbmRpZiAvKiBVU0VfUFBQICovCisgIH0KKworI2lmIFVTRV9QUFAKKyAgICBpZihwcHApIHsKKyAgICAgIHUzMl90IHN0YXJ0ZWQ7CisgICAgICBwcmludGYoIkNsb3NpbmcgUFBQIGNvbm5lY3Rpb24uLi5cbiIpOworICAgICAgLyogbWFrZSBzdXJlIHRvIGRpc2Nvbm5lY3QgUFBQIGJlZm9yZSBzdG9wcGluZyB0aGUgcHJvZ3JhbS4uLiAqLworI2lmIE5PX1NZUworICAgICAgcHBwX2Nsb3NlKHBwcCwgMCk7CisjZWxzZQorICAgICAgcHBwYXBpX2Nsb3NlKHBwcCwgMCk7CisjZW5kaWYKKyAgICAgIHBwcCA9IE5VTEw7CisgICAgICAvKiBXYWl0IGZvciBzb21lIHRpbWUgdG8gbGV0IFBQUCBmaW5pc2guLi4gKi8KKyAgICAgIHN0YXJ0ZWQgPSBzeXNfbm93KCk7CisgICAgICBkbworICAgICAgeworI2lmIFVTRV9FVEhFUk5FVAorICAgICAgICBkZWZhdWx0X25ldGlmX3BvbGwoKTsKKyNlbmRpZgorICAgICAgICAvKiBAdG9kbzogbmVlZCBhIGJldHRlciBjaGVjayBoZXJlOiBvbmx5IHdhaXQgdW50aWwgUFBQIGlzIGRvd24gKi8KKyAgICAgIH0gd2hpbGUoc3lzX25vdygpIC0gc3RhcnRlZCA8IDUwMDApOworICAgIH0KKyNlbmRpZiAvKiBVU0VfUFBQICovCisjaWYgKExXSVBfU09DS0VUIHx8IExXSVBfTkVUQ09OTikgJiYgTFdJUF9ORVRDT05OX1NFTV9QRVJfVEhSRUFECisgIG5ldGNvbm5fdGhyZWFkX2NsZWFudXAoKTsKKyNlbmRpZgorI2lmIFVTRV9FVEhFUk5FVAorICBkZWZhdWx0X25ldGlmX3NodXRkb3duKCk7CisjZW5kaWYgLyogVVNFX0VUSEVSTkVUICovCit9CisKKyNpZiBVU0VfUFBQICYmIFBQUE9TX1NVUFBPUlQKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKyNlbHNlIC8qIFVTRV9QUFAgJiYgUFBQT1NfU1VQUE9SVCAqLworaW50IG1haW4odm9pZCkKKyNlbmRpZiAvKiBVU0VfUFBQICYmIFBQUE9TX1NVUFBPUlQgKi8KK3sKKyNpZiBVU0VfUFBQICYmIFBQUE9TX1NVUFBPUlQKKyAgaWYoYXJnYyA+IDEpIHsKKyAgICBzaW9faWR4ID0gKHU4X3QpYXRvaShhcmd2WzFdKTsKKyAgfQorICBwcmludGYoIlVzaW5nIHNlcmlhbCBwb3J0ICVkIGZvciBQUFBcbiIsIHNpb19pZHgpOworI2VuZGlmIC8qIFVTRV9QUFAgJiYgUFBQT1NfU1VQUE9SVCAqLworICAvKiBubyBzdGRpby1idWZmZXJpbmcsIHBsZWFzZSEgKi8KKyAgc2V0dmJ1ZihzdGRvdXQsIE5VTEwsX0lPTkJGLCAwKTsKKworICBtYWluX2xvb3AoKTsKKworICByZXR1cm4gMDsKK30KKworLyogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHJlcXVpcmVkIHRvIHByZXZlbnQgYXJjaC5oIGluY2x1ZGluZyBzdGRpby5oCisgKiAod2hpY2ggaXQgZG9lcyBpZiBMV0lQX1BMQVRGT1JNX0FTU0VSVCBpcyB1bmRlZmluZWQpCisgKi8KK3ZvaWQgbHdpcF9leGFtcGxlX2FwcF9wbGF0Zm9ybV9hc3NlcnQoY29uc3QgY2hhciAqbXNnLCBpbnQgbGluZSwgY29uc3QgY2hhciAqZmlsZSkKK3sKKyAgcHJpbnRmKCJBc3NlcnRpb24gXCIlc1wiIGZhaWxlZCBhdCBsaW5lICVkIGluICVzXG4iLCBtc2csIGxpbmUsIGZpbGUpOworICBmZmx1c2goTlVMTCk7CisgIGFib3J0KCk7Cit9CmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfZGVmYXVsdC5oIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X2RlZmF1bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2I2OWQyCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X2RlZmF1bHQuaApAQCAtMCwwICsxLDI5NSBAQAorLyogdGVzdCBhbiBsd2lwb3B0cy5oIGZpbGUgd2l0aCBkZWZhdWx0IGNvbnRlbnRzICovCisjZGVmaW5lIE5PX1NZUyAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOT19TWVNfTk9fVElNRVJTICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9USU1FUlMgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfVElNRVJTX0NVU1RPTSAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX01QVV9DT01QQVRJQkxFICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkcgICAgICAgICAxCisjZGVmaW5lIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HX0lOUFVUICAgMAorI2RlZmluZSBTWVNfTElHSFRXRUlHSFRfUFJPVCAgICAgICAgICAgIDEKKyNkZWZpbmUgTUVNX0xJQkNfTUFMTE9DICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTVBfTUVNX01BTExPQyAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1QX01FTV9JTklUICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX0FMSUdOTUVOVCAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIE1FTV9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgMTYwMAorI2RlZmluZSBNRU1QX09WRVJGTE9XX0NIRUNLICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNUF9TQU5JVFlfQ0hFQ0sgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTV9PVkVSRkxPV19DSEVDSyAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fU0FOSVRZX0NIRUNLICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX1VTRV9QT09MUyAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTV9VU0VfUE9PTFNfVFJZX0JJR0dFUl9QT09MICAgMAorI2RlZmluZSBNRU1QX1VTRV9DVVNUT01fUE9PTFMgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9BTExPV19NRU1fRlJFRV9GUk9NX09USEVSX0NPTlRFWFQgMAorLyojZGVmaW5lIE1FTVBfTlVNX1BCVUYgICAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTUVNUF9OVU1fUkFXX1BDQiAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1VEUF9QQ0IgICAgICAgICAgICAgICAgNAorI2RlZmluZSBNRU1QX05VTV9UQ1BfUENCICAgICAgICAgICAgICAgIDUKKyNkZWZpbmUgTUVNUF9OVU1fVENQX1BDQl9MSVNURU4gICAgICAgICA4CisjZGVmaW5lIE1FTVBfTlVNX1RDUF9TRUcgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTUVNUF9OVU1fQUxUQ1BfUENCICAgICAgICAgICAgICBNRU1QX05VTV9UQ1BfUENCCisjZGVmaW5lIE1FTVBfTlVNX1JFQVNTREFUQSAgICAgICAgICAgICAgNQorI2RlZmluZSBNRU1QX05VTV9GUkFHX1BCVUYgICAgICAgICAgICAgIDE1CisjZGVmaW5lIE1FTVBfTlVNX0FSUF9RVUVVRSAgICAgICAgICAgICAgMzAKKyNkZWZpbmUgTUVNUF9OVU1fSUdNUF9HUk9VUCAgICAgICAgICAgICA4CisjZGVmaW5lIE1FTVBfTlVNX1NZU19USU1FT1VUICAgICAgICAgICAgKExXSVBfTlVNX1NZU19USU1FT1VUX0lOVEVSTkFMICsgMikKKyNkZWZpbmUgTUVNUF9OVU1fTkVUQlVGICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIE1FTVBfTlVNX05FVENPTk4gICAgICAgICAgICAgICAgNAorI2RlZmluZSBNRU1QX05VTV9TRUxFQ1RfQ0IgICAgICAgICAgICAgIDQKKyNkZWZpbmUgTUVNUF9OVU1fVENQSVBfTVNHX0FQSSAgICAgICAgICA4CisjZGVmaW5lIE1FTVBfTlVNX1RDUElQX01TR19JTlBLVCAgICAgICAgOAorI2RlZmluZSBNRU1QX05VTV9ORVREQiAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTUVNUF9OVU1fTE9DQUxIT1NUTElTVCAgICAgICAgICAxCisjZGVmaW5lIFBCVUZfUE9PTF9TSVpFICAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTUVNUF9OVU1fQVBJX01TRyAgICAgICAgICAgICAgICBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJCisjZGVmaW5lIE1FTVBfTlVNX0ROU19BUElfTVNHICAgICAgICAgICAgTUVNUF9OVU1fVENQSVBfTVNHX0FQSQorI2RlZmluZSBNRU1QX05VTV9TT0NLRVRfU0VUR0VUU09DS09QVF9EQVRBIE1FTVBfTlVNX1RDUElQX01TR19BUEkKKyNkZWZpbmUgTUVNUF9OVU1fTkVUSUZBUElfTVNHICAgICAgICAgICBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJKi8KKyNkZWZpbmUgTFdJUF9BUlAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIEFSUF9UQUJMRV9TSVpFICAgICAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgQVJQX01BWEFHRSAgICAgICAgICAgICAgICAgICAgICAzMDAKKyNkZWZpbmUgQVJQX1FVRVVFSU5HICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFSUF9RVUVVRV9MRU4gICAgICAgICAgICAgICAgICAgMworI2RlZmluZSBFVEhBUlBfU1VQUE9SVF9WTEFOICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9FVEhFUk5FVCAgICAgICAgICAgICAgICAgICBMV0lQX0FSUAorI2RlZmluZSBFVEhfUEFEX1NJWkUgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRVRIQVJQX1NVUFBPUlRfU1RBVElDX0VOVFJJRVMgICAwCisjZGVmaW5lIEVUSEFSUF9UQUJMRV9NQVRDSF9ORVRJRiAgICAgICAgIUxXSVBfU0lOR0xFX05FVElGCisjZGVmaW5lIExXSVBfSVBWNCAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJUF9GT1JXQVJEICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVBfUkVBU1NFTUJMWSAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQX0ZSQUcgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJUF9PUFRJT05TX0FMTE9XRUQgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBfUkVBU1NfTUFYQUdFICAgICAgICAgICAgICAgICAxNQorI2RlZmluZSBJUF9SRUFTU19NQVhfUEJVRlMgICAgICAgICAgICAgIDEwCisjZGVmaW5lIElQX0RFRkFVTFRfVFRMICAgICAgICAgICAgICAgICAgMjU1CisjZGVmaW5lIElQX1NPRl9CUk9BRENBU1QgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJUF9TT0ZfQlJPQURDQVNUX1JFQ1YgICAgICAgICAgIDAKKyNkZWZpbmUgSVBfRk9SV0FSRF9BTExPV19UWF9PTl9SWF9ORVRJRiAwCisjZGVmaW5lIExXSVBfSUNNUCAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJQ01QX1RUTCAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgTFdJUF9CUk9BRENBU1RfUElORyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTVVMVElDQVNUX1BJTkcgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1JBVyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUkFXX1RUTCAgICAgICAgICAgICAgICAgICAgICAgICAoSVBfREVGQVVMVF9UVEwpCisjZGVmaW5lIExXSVBfREhDUCAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX0RIQ1BfQ0hFQ0tfTElOS19VUCAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX0JPT1RQX0ZJTEUgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9HRVRfTlRQX1NSViAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfTUFYX05UUF9TRVJWRVJTICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ESENQX01BWF9ETlNfU0VSVkVSUyAgICAgICBETlNfTUFYX1NFUlZFUlMKKyNkZWZpbmUgTFdJUF9BVVRPSVAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9BVVRPSVBfQ09PUCAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfQVVUT0lQX0NPT1BfVFJJRVMgICAgIDkKKyNkZWZpbmUgTFdJUF9NSUIyX0NBTExCQUNLUyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTVVMVElDQVNUX1RYX09QVElPTlMgICAgICAgKChMV0lQX0lHTVAgfHwgTFdJUF9JUFY2X01MRCkgJiYgKExXSVBfVURQIHx8IExXSVBfUkFXKSkKKyNkZWZpbmUgTFdJUF9JR01QICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfRE5TICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETlNfVEFCTEVfU0laRSAgICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgRE5TX01BWF9OQU1FX0xFTkdUSCAgICAgICAgICAgICAyNTYKKyNkZWZpbmUgRE5TX01BWF9TRVJWRVJTICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIEROU19NQVhfUkVUUklFUyAgICAgICAgICAgICAgICAgNAorI2RlZmluZSBETlNfRE9FU19OQU1FX0NIRUNLICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ETlNfU0VDVVJFIChMV0lQX0ROU19TRUNVUkVfUkFORF9YSUQgfCBMV0lQX0ROU19TRUNVUkVfTk9fTVVMVElQTEVfT1VUU1RBTkRJTkcgfCBMV0lQX0ROU19TRUNVUkVfUkFORF9TUkNfUE9SVCkKKyNkZWZpbmUgRE5TX0xPQ0FMX0hPU1RMSVNUICAgICAgICAgICAgICAwCisjZGVmaW5lIEROU19MT0NBTF9IT1NUTElTVF9JU19EWU5BTUlDICAgMAorI2RlZmluZSBMV0lQX0ROU19TVVBQT1JUX01ETlNfUVVFUklFUyAgIDAKKyNkZWZpbmUgTFdJUF9VRFAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfVURQTElURSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVRFBfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgTFdJUF9ORVRCVUZfUkVDVklORk8gICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBUQ1BfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgVENQX1dORCAgICAgICAgICAgICAgICAgICAgICAgICAoNCAqIFRDUF9NU1MpCisjZGVmaW5lIFRDUF9NQVhSVFggICAgICAgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgVENQX1NZTk1BWFJUWCAgICAgICAgICAgICAgICAgICA2CisjZGVmaW5lIFRDUF9RVUVVRV9PT1NFUSAgICAgICAgICAgICAgICAgKExXSVBfVENQKQorI2RlZmluZSBMV0lQX1RDUF9TQUNLX09VVCAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BfTUFYX1NBQ0tfTlVNICAgICAgICAgICA0CisjZGVmaW5lIFRDUF9NU1MgICAgICAgICAgICAgICAgICAgICAgICAgNTM2CisjZGVmaW5lIFRDUF9DQUxDVUxBVEVfRUZGX1NFTkRfTVNTICAgICAgMQorI2RlZmluZSBUQ1BfU05EX0JVRiAgICAgICAgICAgICAgICAgICAgICgyICogVENQX01TUykKKyNkZWZpbmUgVENQX1NORF9RVUVVRUxFTiAgICAgICAgICAgICAgICAoKDQgKiAoVENQX1NORF9CVUYpICsgKFRDUF9NU1MgLSAxKSkvKFRDUF9NU1MpKQorI2RlZmluZSBUQ1BfU05ETE9XQVQgICAgICAgICAgICAgICAgICAgIExXSVBfTUlOKExXSVBfTUFYKCgoVENQX1NORF9CVUYpLzIpLCAoMiAqIFRDUF9NU1MpICsgMSksIChUQ1BfU05EX0JVRikgLSAxKQorI2RlZmluZSBUQ1BfU05EUVVFVUVMT1dBVCAgICAgICAgICAgICAgIExXSVBfTUFYKCgoVENQX1NORF9RVUVVRUxFTikvMiksIDUpCisjZGVmaW5lIFRDUF9PT1NFUV9NQVhfQllURVMgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfT09TRVFfQllURVNfTElNSVQocGNiKSAgICAgIFRDUF9PT1NFUV9NQVhfQllURVMKKyNkZWZpbmUgVENQX09PU0VRX01BWF9QQlVGUyAgICAgICAgICAgICAwCisjZGVmaW5lIFRDUF9PT1NFUV9QQlVGU19MSU1JVChwY2IpICAgICAgVENQX09PU0VRX01BWF9QQlVGUworI2RlZmluZSBUQ1BfTElTVEVOX0JBQ0tMT0cgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX0RFRkFVTFRfTElTVEVOX0JBQ0tMT0cgICAgICAweGZmCisjZGVmaW5lIFRDUF9PVkVSU0laRSAgICAgICAgICAgICAgICAgICAgVENQX01TUworI2RlZmluZSBMV0lQX1RDUF9USU1FU1RBTVBTICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX1dORF9VUERBVEVfVEhSRVNIT0xEICAgICAgICBMV0lQX01JTigoVENQX1dORCAvIDQpLCAoVENQX01TUyAqIDQpKQorI2RlZmluZSBMV0lQX0VWRU5UX0FQSSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9DQUxMQkFDS19BUEkgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfV05EX1NDQUxFICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfUkNWX1NDQUxFICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BfUENCX05VTV9FWFRfQVJHUyAgICAgICAwCisjZGVmaW5lIExXSVBfQUxUQ1AgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0FMVENQX1RMUyAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUEJVRl9MSU5LX0hMRU4gICAgICAgICAgICAgICAgICAoMTQgKyBFVEhfUEFEX1NJWkUpCisjZGVmaW5lIFBCVUZfTElOS19FTkNBUFNVTEFUSU9OX0hMRU4gICAgMAorI2RlZmluZSBQQlVGX1BPT0xfQlVGU0laRSAgICAgICAgICAgICAgIExXSVBfTUVNX0FMSUdOX1NJWkUoVENQX01TUys0MCtQQlVGX0xJTktfRU5DQVBTVUxBVElPTl9ITEVOK1BCVUZfTElOS19ITEVOKQorI2RlZmluZSBMV0lQX1BCVUZfUkVGX1QgICAgICAgICAgICAgICAgIHU4X3QKKyNkZWZpbmUgTFdJUF9TSU5HTEVfTkVUSUYgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfSE9TVE5BTUUgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0FQSSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9TVEFUVVNfQ0FMTEJBQ0sgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfRVhUX1NUQVRVU19DQUxMQkFDSyAgMAorI2RlZmluZSBMV0lQX05FVElGX0xJTktfQ0FMTEJBQ0sgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9SRU1PVkVfQ0FMTEJBQ0sgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfSFdBRERSSElOVCAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX1RYX1NJTkdMRV9QQlVGICAgICAgIDAKKyNkZWZpbmUgTFdJUF9OVU1fTkVUSUZfQ0xJRU5UX0RBVEEgICAgICAwCisjZGVmaW5lIExXSVBfSEFWRV9MT09QSUYgICAgICAgICAgICAgICAgKExXSVBfTkVUSUZfTE9PUEJBQ0sgJiYgIUxXSVBfU0lOR0xFX05FVElGKQorI2RlZmluZSBMV0lQX0xPT1BJRl9NVUxUSUNBU1QgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9MT09QQkFDSyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTE9PUEJBQ0tfTUFYX1BCVUZTICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0xPT1BCQUNLX01VTFRJVEhSRUFESU5HICAgICghTk9fU1lTKQorLyojZGVmaW5lIFRDUElQX1RIUkVBRF9OQU1FICAgICAgICAgICAgICAgInRjcGlwX3RocmVhZCIKKyNkZWZpbmUgVENQSVBfVEhSRUFEX1NUQUNLU0laRSAgICAgICAgICAwCisjZGVmaW5lIFRDUElQX1RIUkVBRF9QUklPICAgICAgICAgICAgICAgMQorI2RlZmluZSBUQ1BJUF9NQk9YX1NJWkUgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BJUF9USFJFQURfQUxJVkUoKQorI2RlZmluZSBTTElQSUZfVEhSRUFEX05BTUUgICAgICAgICAgICAgICJzbGlwaWZfbG9vcCIKKyNkZWZpbmUgU0xJUElGX1RIUkVBRF9TVEFDS1NJWkUgICAgICAgICAwCisjZGVmaW5lIFNMSVBJRl9USFJFQURfUFJJTyAgICAgICAgICAgICAgMQorI2RlZmluZSBERUZBVUxUX1RIUkVBRF9OQU1FICAgICAgICAgICAgICJsd0lQIgorI2RlZmluZSBERUZBVUxUX1RIUkVBRF9TVEFDS1NJWkUgICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9USFJFQURfUFJJTyAgICAgICAgICAgICAxCisjZGVmaW5lIERFRkFVTFRfUkFXX1JFQ1ZNQk9YX1NJWkUgICAgICAgMAorI2RlZmluZSBERUZBVUxUX1VEUF9SRUNWTUJPWF9TSVpFICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9UQ1BfUkVDVk1CT1hfU0laRSAgICAgICAwCisjZGVmaW5lIERFRkFVTFRfQUNDRVBUTUJPWF9TSVpFICAgICAgICAgMCovCisjZGVmaW5lIExXSVBfTkVUQ09OTiAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1RDUElQX1RJTUVPVVQgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRDT05OX1NFTV9QRVJfVEhSRUFEICAgICAwCisjZGVmaW5lIExXSVBfTkVUQ09OTl9GVUxMRFVQTEVYICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPQ0tFVCAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9DT01QQVRfU09DS0VUUyAgICAgICAgICAgICAxIC8qIDAuLjIgKi8KKyNkZWZpbmUgTFdJUF9QT1NJWF9TT0NLRVRTX0lPX05BTUVTICAgICAxCisjZGVmaW5lIExXSVBfU09DS0VUX09GRlNFVCAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUF9LRUVQQUxJVkUgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT19TTkRUSU1FTyAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fUkNWVElNRU8gICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPX1NORFJDVlRJTUVPX05PTlNUQU5EQVJEIDAKKyNkZWZpbmUgTFdJUF9TT19SQ1ZCVUYgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fTElOR0VSICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSRUNWX0JVRlNJWkVfREVGQVVMVCAgICAgICAgICAgIElOVF9NQVgKKyNkZWZpbmUgTFdJUF9UQ1BfQ0xPU0VfVElNRU9VVF9NU19ERUZBVUxUIDIwMDAwCisjZGVmaW5lIFNPX1JFVVNFICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTT19SRVVTRV9SWFRPQUxMICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9GSU9OUkVBRF9MSU5VWE1PREUgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09DS0VUX1NFTEVDVCAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1NPQ0tFVF9QT0xMICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU1RBVFNfRElTUExBWSAgICAgICAgICAgICAgMAorI2RlZmluZSBMSU5LX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgRVRIQVJQX1NUQVRTICAgICAgICAgICAgICAgICAgICAoTFdJUF9BUlApCisjZGVmaW5lIElQX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJUEZSQUdfU1RBVFMgICAgICAgICAgICAgICAgICAgIChJUF9SRUFTU0VNQkxZIHx8IElQX0ZSQUcpCisjZGVmaW5lIElDTVBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJR01QX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lHTVApCisjZGVmaW5lIFVEUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKExXSVBfVURQKQorI2RlZmluZSBUQ1BfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX1RDUCkKKyNkZWZpbmUgTUVNX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoKE1FTV9MSUJDX01BTExPQyA9PSAwKSAmJiAoTUVNX1VTRV9QT09MUyA9PSAwKSkKKyNkZWZpbmUgTUVNUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAoTUVNUF9NRU1fTUFMTE9DID09IDApCisjZGVmaW5lIFNZU19TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKE5PX1NZUyA9PSAwKQorI2RlZmluZSBJUDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIElDTVA2X1NUQVRTICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiBMV0lQX0lDTVA2KQorI2RlZmluZSBJUDZfRlJBR19TVEFUUyAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYgJiYgKExXSVBfSVBWNl9GUkFHIHx8IExXSVBfSVBWNl9SRUFTUykpCisjZGVmaW5lIE1MRDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiBMV0lQX0lQVjZfTUxEKQorI2RlZmluZSBORDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIE1JQjJfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0NIRUNLU1VNX0NUUkxfUEVSX05FVElGICAgIDAKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX0lQICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9VRFAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9HRU5fVENQICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX0lDTVAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9JQ01QNiAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19JUCAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfVURQICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0NIRUNLX1RDUCAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19JQ01QICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfSUNNUDYgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfQ0hFQ0tTVU1fT05fQ09QWSAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjYgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVBWNl9SRUFTU19NQVhBR0UgICAgICAgICAgICAgICA2MAorI2RlZmluZSBMV0lQX0lQVjZfU0NPUEVTICAgICAgICAgICAgICAgIChMV0lQX0lQVjYgJiYgIUxXSVBfU0lOR0xFX05FVElGKQorI2RlZmluZSBMV0lQX0lQVjZfU0NPUEVTX0RFQlVHICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X05VTV9BRERSRVNTRVMgICAgICAgICAzCisjZGVmaW5lIExXSVBfSVBWNl9GT1JXQVJEICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfRlJBRyAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9JUFY2X1JFQVNTICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBMV0lQX0lQVjZfU0VORF9ST1VURVJfU09MSUNJVCAgIDEKKyNkZWZpbmUgTFdJUF9JUFY2X0FVVE9DT05GSUcgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBMV0lQX0lQVjZfQUREUkVTU19MSUZFVElNRVMgICAgIChMV0lQX0lQVjZfQVVUT0NPTkZJRykKKyNkZWZpbmUgTFdJUF9JUFY2X0RVUF9ERVRFQ1RfQVRURU1QVFMgICAxCisjZGVmaW5lIExXSVBfSUNNUDYgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTFdJUF9JQ01QNl9EQVRBU0laRSAgICAgICAgICAgICA4CisjZGVmaW5lIExXSVBfSUNNUDZfSEwgICAgICAgICAgICAgICAgICAgMjU1CisjZGVmaW5lIExXSVBfSVBWNl9NTEQgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTUVNUF9OVU1fTUxENl9HUk9VUCAgICAgICAgICAgICA0CisjZGVmaW5lIExXSVBfTkQ2X1FVRVVFSU5HICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTUVNUF9OVU1fTkQ2X1FVRVVFICAgICAgICAgICAgICAyMAorI2RlZmluZSBMV0lQX05ENl9OVU1fTkVJR0hCT1JTICAgICAgICAgIDEwCisjZGVmaW5lIExXSVBfTkQ2X05VTV9ERVNUSU5BVElPTlMgICAgICAgMTAKKyNkZWZpbmUgTFdJUF9ORDZfTlVNX1BSRUZJWEVTICAgICAgICAgICA1CisjZGVmaW5lIExXSVBfTkQ2X05VTV9ST1VURVJTICAgICAgICAgICAgMworI2RlZmluZSBMV0lQX05ENl9NQVhfTVVMVElDQVNUX1NPTElDSVQgIDMKKyNkZWZpbmUgTFdJUF9ORDZfTUFYX1VOSUNBU1RfU09MSUNJVCAgICAzCisjZGVmaW5lIExXSVBfTkQ2X01BWF9BTllDQVNUX0RFTEFZX1RJTUUgMTAwMAorI2RlZmluZSBMV0lQX05ENl9NQVhfTkVJR0hCT1JfQURWRVJUSVNFTUVOVCAgMworI2RlZmluZSBMV0lQX05ENl9SRUFDSEFCTEVfVElNRSAgICAgICAgIDMwMDAwCisjZGVmaW5lIExXSVBfTkQ2X1JFVFJBTlNfVElNRVIgICAgICAgICAgMTAwMAorI2RlZmluZSBMV0lQX05ENl9ERUxBWV9GSVJTVF9QUk9CRV9USU1FIDUwMDAKKyNkZWZpbmUgTFdJUF9ORDZfQUxMT1dfUkFfVVBEQVRFUyAgICAgICAxCisjZGVmaW5lIExXSVBfTkQ2X1RDUF9SRUFDSEFCSUxJVFlfSElOVFMgMQorI2RlZmluZSBMV0lQX05ENl9SRE5TU19NQVhfRE5TX1NFUlZFUlMgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X0RIQ1A2ICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNl9ESENQNl9TVEFURUZVTCAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfREhDUDZfU1RBVEVMRVNTICAgICAgIExXSVBfSVBWNl9ESENQNgorI2RlZmluZSBMV0lQX0RIQ1A2X0dFVF9OVFBfU1JWICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQNl9NQVhfTlRQX1NFUlZFUlMgICAgICAxCisjZGVmaW5lIExXSVBfREhDUDZfTUFYX0ROU19TRVJWRVJTICAgICAgRE5TX01BWF9TRVJWRVJTCisKKy8qIFRPRE86IGNoZWNrIGhvb2tzICovCisKKyNkZWZpbmUgTFdJUF9EQkdfTUlOX0xFVkVMICAgICAgICAgICAgICBMV0lQX0RCR19MRVZFTF9BTEwKKyNkZWZpbmUgTFdJUF9EQkdfVFlQRVNfT04gICAgICAgICAgICAgICBMV0lQX0RCR19PTgorI2RlZmluZSBFVEhBUlBfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBORVRJRl9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBQQlVGX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBUElfTElCX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBUElfTVNHX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTT0NLRVRTX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJQ01QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJR01QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJTkVUX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUF9SRUFTU19ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBSQVdfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBNRU1fREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBNRU1QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTWVNfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUSU1FUlNfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfSU5QVVRfREVCVUcgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfRlJfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUlRPX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfQ1dORF9ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfV05EX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfT1VUUFVUX0RFQlVHICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUlNUX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUUxFTl9ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBVRFBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BJUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTTElQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBESENQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBVVRPSVBfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBETlNfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUDZfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBESENQNl9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBMV0lQX1RFU1RNT0RFICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBMV0lQX1BFUkYgICAgICAgICAgICAgICAgICAgICAgIDAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9kdWFsc3RhY2suaCBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9kdWFsc3RhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Y2FmNDkwCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X2R1YWxzdGFjay5oCkBAIC0wLDAgKzEsMjk1IEBACisvKiB0ZXN0IGFuIGx3aXBvcHRzLmggZmlsZSB3aXRoIGRlZmF1bHQgY29udGVudHMgKi8KKyNkZWZpbmUgTk9fU1lTICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5PX1NZU19OT19USU1FUlMgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RJTUVSUyAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9USU1FUlNfQ1VTVE9NICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTVBVX0NPTVBBVElCTEUgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUElQX0NPUkVfTE9DS0lORyAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkdfSU5QVVQgICAwCisjZGVmaW5lIFNZU19MSUdIVFdFSUdIVF9QUk9UICAgICAgICAgICAgMQorI2RlZmluZSBNRU1fTElCQ19NQUxMT0MgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNUF9NRU1fTUFMTE9DICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTVBfTUVNX0lOSVQgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fQUxJR05NRU5UICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTUVNX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAxNjAwCisjZGVmaW5lIE1FTVBfT1ZFUkZMT1dfQ0hFQ0sgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1QX1NBTklUWV9DSEVDSyAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX09WRVJGTE9XX0NIRUNLICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTV9TQU5JVFlfQ0hFQ0sgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fVVNFX1BPT0xTICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX1VTRV9QT09MU19UUllfQklHR0VSX1BPT0wgICAwCisjZGVmaW5lIE1FTVBfVVNFX0NVU1RPTV9QT09MUyAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0FMTE9XX01FTV9GUkVFX0ZST01fT1RIRVJfQ09OVEVYVCAwCisvKiNkZWZpbmUgTUVNUF9OVU1fUEJVRiAgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9SQVdfUENCICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgTUVNUF9OVU1fVURQX1BDQiAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1RDUF9QQ0IgICAgICAgICAgICAgICAgNQorI2RlZmluZSBNRU1QX05VTV9UQ1BfUENCX0xJU1RFTiAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fVENQX1NFRyAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9BTFRDUF9QQ0IgICAgICAgICAgICAgIE1FTVBfTlVNX1RDUF9QQ0IKKyNkZWZpbmUgTUVNUF9OVU1fUkVBU1NEQVRBICAgICAgICAgICAgICA1CisjZGVmaW5lIE1FTVBfTlVNX0ZSQUdfUEJVRiAgICAgICAgICAgICAgMTUKKyNkZWZpbmUgTUVNUF9OVU1fQVJQX1FVRVVFICAgICAgICAgICAgICAzMAorI2RlZmluZSBNRU1QX05VTV9JR01QX0dST1VQICAgICAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fU1lTX1RJTUVPVVQgICAgICAgICAgICAoTFdJUF9OVU1fU1lTX1RJTUVPVVRfSU5URVJOQUwgKyAyKQorI2RlZmluZSBNRU1QX05VTV9ORVRCVUYgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgTUVNUF9OVU1fTkVUQ09OTiAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1NFTEVDVF9DQiAgICAgICAgICAgICAgNAorI2RlZmluZSBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJICAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fVENQSVBfTVNHX0lOUEtUICAgICAgICA4CisjZGVmaW5lIE1FTVBfTlVNX05FVERCICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBNRU1QX05VTV9MT0NBTEhPU1RMSVNUICAgICAgICAgIDEKKyNkZWZpbmUgUEJVRl9QT09MX1NJWkUgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9BUElfTVNHICAgICAgICAgICAgICAgIE1FTVBfTlVNX1RDUElQX01TR19BUEkKKyNkZWZpbmUgTUVNUF9OVU1fRE5TX0FQSV9NU0cgICAgICAgICAgICBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJCisjZGVmaW5lIE1FTVBfTlVNX1NPQ0tFVF9TRVRHRVRTT0NLT1BUX0RBVEEgTUVNUF9OVU1fVENQSVBfTVNHX0FQSQorI2RlZmluZSBNRU1QX05VTV9ORVRJRkFQSV9NU0cgICAgICAgICAgIE1FTVBfTlVNX1RDUElQX01TR19BUEkqLworI2RlZmluZSBMV0lQX0FSUCAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQVJQX1RBQkxFX1NJWkUgICAgICAgICAgICAgICAgICAxMAorI2RlZmluZSBBUlBfTUFYQUdFICAgICAgICAgICAgICAgICAgICAgIDMwMAorI2RlZmluZSBBUlBfUVVFVUVJTkcgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVJQX1FVRVVFX0xFTiAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIEVUSEFSUF9TVVBQT1JUX1ZMQU4gICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0VUSEVSTkVUICAgICAgICAgICAgICAgICAgIExXSVBfQVJQCisjZGVmaW5lIEVUSF9QQURfU0laRSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBFVEhBUlBfU1VQUE9SVF9TVEFUSUNfRU5UUklFUyAgIDAKKyNkZWZpbmUgRVRIQVJQX1RBQkxFX01BVENIX05FVElGICAgICAgICAhTFdJUF9TSU5HTEVfTkVUSUYKKyNkZWZpbmUgTFdJUF9JUFY0ICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQX0ZPUldBUkQgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJUF9SRUFTU0VNQkxZICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBfRlJBRyAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQX09QVElPTlNfQUxMT1dFRCAgICAgICAgICAgICAgMQorI2RlZmluZSBJUF9SRUFTU19NQVhBR0UgICAgICAgICAgICAgICAgIDE1CisjZGVmaW5lIElQX1JFQVNTX01BWF9QQlVGUyAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgSVBfREVGQVVMVF9UVEwgICAgICAgICAgICAgICAgICAyNTUKKyNkZWZpbmUgSVBfU09GX0JST0FEQ0FTVCAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElQX1NPRl9CUk9BRENBU1RfUkVDViAgICAgICAgICAgMAorI2RlZmluZSBJUF9GT1JXQVJEX0FMTE9XX1RYX09OX1JYX05FVElGIDAKKyNkZWZpbmUgTFdJUF9JQ01QICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElDTVBfVFRMICAgICAgICAgICAgICAgICAgICAgICAgKElQX0RFRkFVTFRfVFRMKQorI2RlZmluZSBMV0lQX0JST0FEQ0FTVF9QSU5HICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9NVUxUSUNBU1RfUElORyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfUkFXICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSQVdfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgTFdJUF9ESENQICAgICAgICAgICAgICAgICAgICAgICBMV0lQX1VEUAorI2RlZmluZSBMV0lQX0RIQ1BfQ0hFQ0tfTElOS19VUCAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX0JPT1RQX0ZJTEUgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9HRVRfTlRQX1NSViAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfTUFYX05UUF9TRVJWRVJTICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ESENQX01BWF9ETlNfU0VSVkVSUyAgICAgICBETlNfTUFYX1NFUlZFUlMKKyNkZWZpbmUgTFdJUF9BVVRPSVAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9BVVRPSVBfQ09PUCAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfQVVUT0lQX0NPT1BfVFJJRVMgICAgIDkKKyNkZWZpbmUgTFdJUF9NSUIyX0NBTExCQUNLUyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTVVMVElDQVNUX1RYX09QVElPTlMgICAgICAgKChMV0lQX0lHTVAgfHwgTFdJUF9JUFY2X01MRCkgJiYgKExXSVBfVURQIHx8IExXSVBfUkFXKSkKKyNkZWZpbmUgTFdJUF9JR01QICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfRE5TICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETlNfVEFCTEVfU0laRSAgICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgRE5TX01BWF9OQU1FX0xFTkdUSCAgICAgICAgICAgICAyNTYKKyNkZWZpbmUgRE5TX01BWF9TRVJWRVJTICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIEROU19NQVhfUkVUUklFUyAgICAgICAgICAgICAgICAgNAorI2RlZmluZSBETlNfRE9FU19OQU1FX0NIRUNLICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ETlNfU0VDVVJFIChMV0lQX0ROU19TRUNVUkVfUkFORF9YSUQgfCBMV0lQX0ROU19TRUNVUkVfTk9fTVVMVElQTEVfT1VUU1RBTkRJTkcgfCBMV0lQX0ROU19TRUNVUkVfUkFORF9TUkNfUE9SVCkKKyNkZWZpbmUgRE5TX0xPQ0FMX0hPU1RMSVNUICAgICAgICAgICAgICAwCisjZGVmaW5lIEROU19MT0NBTF9IT1NUTElTVF9JU19EWU5BTUlDICAgMAorI2RlZmluZSBMV0lQX0ROU19TVVBQT1JUX01ETlNfUVVFUklFUyAgIDAKKyNkZWZpbmUgTFdJUF9VRFAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfVURQTElURSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVRFBfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgTFdJUF9ORVRCVUZfUkVDVklORk8gICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBUQ1BfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgVENQX1dORCAgICAgICAgICAgICAgICAgICAgICAgICAoNCAqIFRDUF9NU1MpCisjZGVmaW5lIFRDUF9NQVhSVFggICAgICAgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgVENQX1NZTk1BWFJUWCAgICAgICAgICAgICAgICAgICA2CisjZGVmaW5lIFRDUF9RVUVVRV9PT1NFUSAgICAgICAgICAgICAgICAgKExXSVBfVENQKQorI2RlZmluZSBMV0lQX1RDUF9TQUNLX09VVCAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BfTUFYX1NBQ0tfTlVNICAgICAgICAgICA0CisjZGVmaW5lIFRDUF9NU1MgICAgICAgICAgICAgICAgICAgICAgICAgNTM2CisjZGVmaW5lIFRDUF9DQUxDVUxBVEVfRUZGX1NFTkRfTVNTICAgICAgMQorI2RlZmluZSBUQ1BfU05EX0JVRiAgICAgICAgICAgICAgICAgICAgICgyICogVENQX01TUykKKyNkZWZpbmUgVENQX1NORF9RVUVVRUxFTiAgICAgICAgICAgICAgICAoKDQgKiAoVENQX1NORF9CVUYpICsgKFRDUF9NU1MgLSAxKSkvKFRDUF9NU1MpKQorI2RlZmluZSBUQ1BfU05ETE9XQVQgICAgICAgICAgICAgICAgICAgIExXSVBfTUlOKExXSVBfTUFYKCgoVENQX1NORF9CVUYpLzIpLCAoMiAqIFRDUF9NU1MpICsgMSksIChUQ1BfU05EX0JVRikgLSAxKQorI2RlZmluZSBUQ1BfU05EUVVFVUVMT1dBVCAgICAgICAgICAgICAgIExXSVBfTUFYKCgoVENQX1NORF9RVUVVRUxFTikvMiksIDUpCisjZGVmaW5lIFRDUF9PT1NFUV9NQVhfQllURVMgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfT09TRVFfQllURVNfTElNSVQocGNiKSAgICAgIFRDUF9PT1NFUV9NQVhfQllURVMKKyNkZWZpbmUgVENQX09PU0VRX01BWF9QQlVGUyAgICAgICAgICAgICAwCisjZGVmaW5lIFRDUF9PT1NFUV9QQlVGU19MSU1JVChwY2IpICAgICAgVENQX09PU0VRX01BWF9QQlVGUworI2RlZmluZSBUQ1BfTElTVEVOX0JBQ0tMT0cgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX0RFRkFVTFRfTElTVEVOX0JBQ0tMT0cgICAgICAweGZmCisjZGVmaW5lIFRDUF9PVkVSU0laRSAgICAgICAgICAgICAgICAgICAgVENQX01TUworI2RlZmluZSBMV0lQX1RDUF9USU1FU1RBTVBTICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX1dORF9VUERBVEVfVEhSRVNIT0xEICAgICAgICBMV0lQX01JTigoVENQX1dORCAvIDQpLCAoVENQX01TUyAqIDQpKQorI2RlZmluZSBMV0lQX0VWRU5UX0FQSSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9DQUxMQkFDS19BUEkgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfV05EX1NDQUxFICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfUkNWX1NDQUxFICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BfUENCX05VTV9FWFRfQVJHUyAgICAgICAwCisjZGVmaW5lIExXSVBfQUxUQ1AgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0FMVENQX1RMUyAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUEJVRl9MSU5LX0hMRU4gICAgICAgICAgICAgICAgICAoMTQgKyBFVEhfUEFEX1NJWkUpCisjZGVmaW5lIFBCVUZfTElOS19FTkNBUFNVTEFUSU9OX0hMRU4gICAgMAorI2RlZmluZSBQQlVGX1BPT0xfQlVGU0laRSAgICAgICAgICAgICAgIExXSVBfTUVNX0FMSUdOX1NJWkUoVENQX01TUys0MCtQQlVGX0xJTktfRU5DQVBTVUxBVElPTl9ITEVOK1BCVUZfTElOS19ITEVOKQorI2RlZmluZSBMV0lQX1BCVUZfUkVGX1QgICAgICAgICAgICAgICAgIHU4X3QKKyNkZWZpbmUgTFdJUF9TSU5HTEVfTkVUSUYgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfSE9TVE5BTUUgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0FQSSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9TVEFUVVNfQ0FMTEJBQ0sgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfRVhUX1NUQVRVU19DQUxMQkFDSyAgMAorI2RlZmluZSBMV0lQX05FVElGX0xJTktfQ0FMTEJBQ0sgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9SRU1PVkVfQ0FMTEJBQ0sgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfSFdBRERSSElOVCAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX1RYX1NJTkdMRV9QQlVGICAgICAgIDAKKyNkZWZpbmUgTFdJUF9OVU1fTkVUSUZfQ0xJRU5UX0RBVEEgICAgICAwCisjZGVmaW5lIExXSVBfSEFWRV9MT09QSUYgICAgICAgICAgICAgICAgKExXSVBfTkVUSUZfTE9PUEJBQ0sgJiYgIUxXSVBfU0lOR0xFX05FVElGKQorI2RlZmluZSBMV0lQX0xPT1BJRl9NVUxUSUNBU1QgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9MT09QQkFDSyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTE9PUEJBQ0tfTUFYX1BCVUZTICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0xPT1BCQUNLX01VTFRJVEhSRUFESU5HICAgICghTk9fU1lTKQorLyojZGVmaW5lIFRDUElQX1RIUkVBRF9OQU1FICAgICAgICAgICAgICAgInRjcGlwX3RocmVhZCIKKyNkZWZpbmUgVENQSVBfVEhSRUFEX1NUQUNLU0laRSAgICAgICAgICAwCisjZGVmaW5lIFRDUElQX1RIUkVBRF9QUklPICAgICAgICAgICAgICAgMQorI2RlZmluZSBUQ1BJUF9NQk9YX1NJWkUgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BJUF9USFJFQURfQUxJVkUoKQorI2RlZmluZSBTTElQSUZfVEhSRUFEX05BTUUgICAgICAgICAgICAgICJzbGlwaWZfbG9vcCIKKyNkZWZpbmUgU0xJUElGX1RIUkVBRF9TVEFDS1NJWkUgICAgICAgICAwCisjZGVmaW5lIFNMSVBJRl9USFJFQURfUFJJTyAgICAgICAgICAgICAgMQorI2RlZmluZSBERUZBVUxUX1RIUkVBRF9OQU1FICAgICAgICAgICAgICJsd0lQIgorI2RlZmluZSBERUZBVUxUX1RIUkVBRF9TVEFDS1NJWkUgICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9USFJFQURfUFJJTyAgICAgICAgICAgICAxCisjZGVmaW5lIERFRkFVTFRfUkFXX1JFQ1ZNQk9YX1NJWkUgICAgICAgMAorI2RlZmluZSBERUZBVUxUX1VEUF9SRUNWTUJPWF9TSVpFICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9UQ1BfUkVDVk1CT1hfU0laRSAgICAgICAwCisjZGVmaW5lIERFRkFVTFRfQUNDRVBUTUJPWF9TSVpFICAgICAgICAgMCovCisjZGVmaW5lIExXSVBfTkVUQ09OTiAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1RDUElQX1RJTUVPVVQgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRDT05OX1NFTV9QRVJfVEhSRUFEICAgICAwCisjZGVmaW5lIExXSVBfTkVUQ09OTl9GVUxMRFVQTEVYICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPQ0tFVCAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9DT01QQVRfU09DS0VUUyAgICAgICAgICAgICAxIC8qIDAuLjIgKi8KKyNkZWZpbmUgTFdJUF9QT1NJWF9TT0NLRVRTX0lPX05BTUVTICAgICAxCisjZGVmaW5lIExXSVBfU09DS0VUX09GRlNFVCAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUF9LRUVQQUxJVkUgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT19TTkRUSU1FTyAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fUkNWVElNRU8gICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPX1NORFJDVlRJTUVPX05PTlNUQU5EQVJEIDAKKyNkZWZpbmUgTFdJUF9TT19SQ1ZCVUYgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fTElOR0VSICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSRUNWX0JVRlNJWkVfREVGQVVMVCAgICAgICAgICAgIElOVF9NQVgKKyNkZWZpbmUgTFdJUF9UQ1BfQ0xPU0VfVElNRU9VVF9NU19ERUZBVUxUIDIwMDAwCisjZGVmaW5lIFNPX1JFVVNFICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTT19SRVVTRV9SWFRPQUxMICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9GSU9OUkVBRF9MSU5VWE1PREUgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09DS0VUX1NFTEVDVCAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1NPQ0tFVF9QT0xMICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU1RBVFNfRElTUExBWSAgICAgICAgICAgICAgMAorI2RlZmluZSBMSU5LX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgRVRIQVJQX1NUQVRTICAgICAgICAgICAgICAgICAgICAoTFdJUF9BUlApCisjZGVmaW5lIElQX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJUEZSQUdfU1RBVFMgICAgICAgICAgICAgICAgICAgIChJUF9SRUFTU0VNQkxZIHx8IElQX0ZSQUcpCisjZGVmaW5lIElDTVBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJR01QX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lHTVApCisjZGVmaW5lIFVEUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKExXSVBfVURQKQorI2RlZmluZSBUQ1BfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX1RDUCkKKyNkZWZpbmUgTUVNX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoKE1FTV9MSUJDX01BTExPQyA9PSAwKSAmJiAoTUVNX1VTRV9QT09MUyA9PSAwKSkKKyNkZWZpbmUgTUVNUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAoTUVNUF9NRU1fTUFMTE9DID09IDApCisjZGVmaW5lIFNZU19TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKE5PX1NZUyA9PSAwKQorI2RlZmluZSBJUDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIElDTVA2X1NUQVRTICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiBMV0lQX0lDTVA2KQorI2RlZmluZSBJUDZfRlJBR19TVEFUUyAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYgJiYgKExXSVBfSVBWNl9GUkFHIHx8IExXSVBfSVBWNl9SRUFTUykpCisjZGVmaW5lIE1MRDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiBMV0lQX0lQVjZfTUxEKQorI2RlZmluZSBORDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIE1JQjJfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0NIRUNLU1VNX0NUUkxfUEVSX05FVElGICAgIDAKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX0lQICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9VRFAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9HRU5fVENQICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX0lDTVAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9JQ01QNiAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19JUCAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfVURQICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0NIRUNLX1RDUCAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19JQ01QICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfSUNNUDYgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfQ0hFQ0tTVU1fT05fQ09QWSAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjYgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBWNl9SRUFTU19NQVhBR0UgICAgICAgICAgICAgICA2MAorI2RlZmluZSBMV0lQX0lQVjZfU0NPUEVTICAgICAgICAgICAgICAgIChMV0lQX0lQVjYgJiYgIUxXSVBfU0lOR0xFX05FVElGKQorI2RlZmluZSBMV0lQX0lQVjZfU0NPUEVTX0RFQlVHICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X05VTV9BRERSRVNTRVMgICAgICAgICAzCisjZGVmaW5lIExXSVBfSVBWNl9GT1JXQVJEICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfRlJBRyAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9JUFY2X1JFQVNTICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBMV0lQX0lQVjZfU0VORF9ST1VURVJfU09MSUNJVCAgIDEKKyNkZWZpbmUgTFdJUF9JUFY2X0FVVE9DT05GSUcgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBMV0lQX0lQVjZfQUREUkVTU19MSUZFVElNRVMgICAgIChMV0lQX0lQVjZfQVVUT0NPTkZJRykKKyNkZWZpbmUgTFdJUF9JUFY2X0RVUF9ERVRFQ1RfQVRURU1QVFMgICAxCisjZGVmaW5lIExXSVBfSUNNUDYgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTFdJUF9JQ01QNl9EQVRBU0laRSAgICAgICAgICAgICA4CisjZGVmaW5lIExXSVBfSUNNUDZfSEwgICAgICAgICAgICAgICAgICAgMjU1CisjZGVmaW5lIExXSVBfSVBWNl9NTEQgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTUVNUF9OVU1fTUxENl9HUk9VUCAgICAgICAgICAgICA0CisjZGVmaW5lIExXSVBfTkQ2X1FVRVVFSU5HICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTUVNUF9OVU1fTkQ2X1FVRVVFICAgICAgICAgICAgICAyMAorI2RlZmluZSBMV0lQX05ENl9OVU1fTkVJR0hCT1JTICAgICAgICAgIDEwCisjZGVmaW5lIExXSVBfTkQ2X05VTV9ERVNUSU5BVElPTlMgICAgICAgMTAKKyNkZWZpbmUgTFdJUF9ORDZfTlVNX1BSRUZJWEVTICAgICAgICAgICA1CisjZGVmaW5lIExXSVBfTkQ2X05VTV9ST1VURVJTICAgICAgICAgICAgMworI2RlZmluZSBMV0lQX05ENl9NQVhfTVVMVElDQVNUX1NPTElDSVQgIDMKKyNkZWZpbmUgTFdJUF9ORDZfTUFYX1VOSUNBU1RfU09MSUNJVCAgICAzCisjZGVmaW5lIExXSVBfTkQ2X01BWF9BTllDQVNUX0RFTEFZX1RJTUUgMTAwMAorI2RlZmluZSBMV0lQX05ENl9NQVhfTkVJR0hCT1JfQURWRVJUSVNFTUVOVCAgMworI2RlZmluZSBMV0lQX05ENl9SRUFDSEFCTEVfVElNRSAgICAgICAgIDMwMDAwCisjZGVmaW5lIExXSVBfTkQ2X1JFVFJBTlNfVElNRVIgICAgICAgICAgMTAwMAorI2RlZmluZSBMV0lQX05ENl9ERUxBWV9GSVJTVF9QUk9CRV9USU1FIDUwMDAKKyNkZWZpbmUgTFdJUF9ORDZfQUxMT1dfUkFfVVBEQVRFUyAgICAgICAxCisjZGVmaW5lIExXSVBfTkQ2X1RDUF9SRUFDSEFCSUxJVFlfSElOVFMgMQorI2RlZmluZSBMV0lQX05ENl9SRE5TU19NQVhfRE5TX1NFUlZFUlMgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X0RIQ1A2ICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNl9ESENQNl9TVEFURUZVTCAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfREhDUDZfU1RBVEVMRVNTICAgICAgIExXSVBfSVBWNl9ESENQNgorI2RlZmluZSBMV0lQX0RIQ1A2X0dFVF9OVFBfU1JWICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQNl9NQVhfTlRQX1NFUlZFUlMgICAgICAxCisjZGVmaW5lIExXSVBfREhDUDZfTUFYX0ROU19TRVJWRVJTICAgICAgRE5TX01BWF9TRVJWRVJTCisKKy8qIFRPRE86IGNoZWNrIGhvb2tzICovCisKKyNkZWZpbmUgTFdJUF9EQkdfTUlOX0xFVkVMICAgICAgICAgICAgICBMV0lQX0RCR19MRVZFTF9BTEwKKyNkZWZpbmUgTFdJUF9EQkdfVFlQRVNfT04gICAgICAgICAgICAgICBMV0lQX0RCR19PTgorI2RlZmluZSBFVEhBUlBfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBORVRJRl9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBQQlVGX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBUElfTElCX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBUElfTVNHX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTT0NLRVRTX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJQ01QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJR01QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJTkVUX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUF9SRUFTU19ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBSQVdfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBNRU1fREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBNRU1QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTWVNfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUSU1FUlNfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfSU5QVVRfREVCVUcgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfRlJfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUlRPX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfQ1dORF9ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfV05EX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfT1VUUFVUX0RFQlVHICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUlNUX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUUxFTl9ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBVRFBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BJUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTTElQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBESENQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBVVRPSVBfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBETlNfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUDZfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBESENQNl9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBMV0lQX1RFU1RNT0RFICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBMV0lQX1BFUkYgICAgICAgICAgICAgICAgICAgICAgIDAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9pcHY0b25seS5oIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X2lwdjRvbmx5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJiYTQ2NwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9pcHY0b25seS5oCkBAIC0wLDAgKzEsMjk1IEBACisvKiB0ZXN0IGFuIGx3aXBvcHRzLmggZmlsZSB3aXRoIGRlZmF1bHQgY29udGVudHMgKi8KKyNkZWZpbmUgTk9fU1lTICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5PX1NZU19OT19USU1FUlMgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RJTUVSUyAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9USU1FUlNfQ1VTVE9NICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTVBVX0NPTVBBVElCTEUgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUElQX0NPUkVfTE9DS0lORyAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkdfSU5QVVQgICAwCisjZGVmaW5lIFNZU19MSUdIVFdFSUdIVF9QUk9UICAgICAgICAgICAgMQorI2RlZmluZSBNRU1fTElCQ19NQUxMT0MgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNUF9NRU1fTUFMTE9DICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTVBfTUVNX0lOSVQgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fQUxJR05NRU5UICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTUVNX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAxNjAwCisjZGVmaW5lIE1FTVBfT1ZFUkZMT1dfQ0hFQ0sgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1QX1NBTklUWV9DSEVDSyAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX09WRVJGTE9XX0NIRUNLICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTV9TQU5JVFlfQ0hFQ0sgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fVVNFX1BPT0xTICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX1VTRV9QT09MU19UUllfQklHR0VSX1BPT0wgICAwCisjZGVmaW5lIE1FTVBfVVNFX0NVU1RPTV9QT09MUyAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0FMTE9XX01FTV9GUkVFX0ZST01fT1RIRVJfQ09OVEVYVCAwCisvKiNkZWZpbmUgTUVNUF9OVU1fUEJVRiAgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9SQVdfUENCICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgTUVNUF9OVU1fVURQX1BDQiAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1RDUF9QQ0IgICAgICAgICAgICAgICAgNQorI2RlZmluZSBNRU1QX05VTV9UQ1BfUENCX0xJU1RFTiAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fVENQX1NFRyAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9BTFRDUF9QQ0IgICAgICAgICAgICAgIE1FTVBfTlVNX1RDUF9QQ0IKKyNkZWZpbmUgTUVNUF9OVU1fUkVBU1NEQVRBICAgICAgICAgICAgICA1CisjZGVmaW5lIE1FTVBfTlVNX0ZSQUdfUEJVRiAgICAgICAgICAgICAgMTUKKyNkZWZpbmUgTUVNUF9OVU1fQVJQX1FVRVVFICAgICAgICAgICAgICAzMAorI2RlZmluZSBNRU1QX05VTV9JR01QX0dST1VQICAgICAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fU1lTX1RJTUVPVVQgICAgICAgICAgICAoTFdJUF9OVU1fU1lTX1RJTUVPVVRfSU5URVJOQUwgKyAyKQorI2RlZmluZSBNRU1QX05VTV9ORVRCVUYgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgTUVNUF9OVU1fTkVUQ09OTiAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1NFTEVDVF9DQiAgICAgICAgICAgICAgNAorI2RlZmluZSBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJICAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fVENQSVBfTVNHX0lOUEtUICAgICAgICA4CisjZGVmaW5lIE1FTVBfTlVNX05FVERCICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBNRU1QX05VTV9MT0NBTEhPU1RMSVNUICAgICAgICAgIDEKKyNkZWZpbmUgUEJVRl9QT09MX1NJWkUgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9BUElfTVNHICAgICAgICAgICAgICAgIE1FTVBfTlVNX1RDUElQX01TR19BUEkKKyNkZWZpbmUgTUVNUF9OVU1fRE5TX0FQSV9NU0cgICAgICAgICAgICBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJCisjZGVmaW5lIE1FTVBfTlVNX1NPQ0tFVF9TRVRHRVRTT0NLT1BUX0RBVEEgTUVNUF9OVU1fVENQSVBfTVNHX0FQSQorI2RlZmluZSBNRU1QX05VTV9ORVRJRkFQSV9NU0cgICAgICAgICAgIE1FTVBfTlVNX1RDUElQX01TR19BUEkqLworI2RlZmluZSBMV0lQX0FSUCAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQVJQX1RBQkxFX1NJWkUgICAgICAgICAgICAgICAgICAxMAorI2RlZmluZSBBUlBfTUFYQUdFICAgICAgICAgICAgICAgICAgICAgIDMwMAorI2RlZmluZSBBUlBfUVVFVUVJTkcgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVJQX1FVRVVFX0xFTiAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIEVUSEFSUF9TVVBQT1JUX1ZMQU4gICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0VUSEVSTkVUICAgICAgICAgICAgICAgICAgIExXSVBfQVJQCisjZGVmaW5lIEVUSF9QQURfU0laRSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBFVEhBUlBfU1VQUE9SVF9TVEFUSUNfRU5UUklFUyAgIDAKKyNkZWZpbmUgRVRIQVJQX1RBQkxFX01BVENIX05FVElGICAgICAgICAhTFdJUF9TSU5HTEVfTkVUSUYKKyNkZWZpbmUgTFdJUF9JUFY0ICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQX0ZPUldBUkQgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJUF9SRUFTU0VNQkxZICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBfRlJBRyAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQX09QVElPTlNfQUxMT1dFRCAgICAgICAgICAgICAgMQorI2RlZmluZSBJUF9SRUFTU19NQVhBR0UgICAgICAgICAgICAgICAgIDE1CisjZGVmaW5lIElQX1JFQVNTX01BWF9QQlVGUyAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgSVBfREVGQVVMVF9UVEwgICAgICAgICAgICAgICAgICAyNTUKKyNkZWZpbmUgSVBfU09GX0JST0FEQ0FTVCAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElQX1NPRl9CUk9BRENBU1RfUkVDViAgICAgICAgICAgMAorI2RlZmluZSBJUF9GT1JXQVJEX0FMTE9XX1RYX09OX1JYX05FVElGIDAKKyNkZWZpbmUgTFdJUF9JQ01QICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElDTVBfVFRMICAgICAgICAgICAgICAgICAgICAgICAgKElQX0RFRkFVTFRfVFRMKQorI2RlZmluZSBMV0lQX0JST0FEQ0FTVF9QSU5HICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9NVUxUSUNBU1RfUElORyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfUkFXICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSQVdfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgTFdJUF9ESENQICAgICAgICAgICAgICAgICAgICAgICBMV0lQX1VEUAorI2RlZmluZSBMV0lQX0RIQ1BfQ0hFQ0tfTElOS19VUCAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX0JPT1RQX0ZJTEUgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9HRVRfTlRQX1NSViAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfTUFYX05UUF9TRVJWRVJTICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ESENQX01BWF9ETlNfU0VSVkVSUyAgICAgICBETlNfTUFYX1NFUlZFUlMKKyNkZWZpbmUgTFdJUF9BVVRPSVAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9BVVRPSVBfQ09PUCAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfQVVUT0lQX0NPT1BfVFJJRVMgICAgIDkKKyNkZWZpbmUgTFdJUF9NSUIyX0NBTExCQUNLUyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTVVMVElDQVNUX1RYX09QVElPTlMgICAgICAgKChMV0lQX0lHTVAgfHwgTFdJUF9JUFY2X01MRCkgJiYgKExXSVBfVURQIHx8IExXSVBfUkFXKSkKKyNkZWZpbmUgTFdJUF9JR01QICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfRE5TICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETlNfVEFCTEVfU0laRSAgICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgRE5TX01BWF9OQU1FX0xFTkdUSCAgICAgICAgICAgICAyNTYKKyNkZWZpbmUgRE5TX01BWF9TRVJWRVJTICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIEROU19NQVhfUkVUUklFUyAgICAgICAgICAgICAgICAgNAorI2RlZmluZSBETlNfRE9FU19OQU1FX0NIRUNLICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ETlNfU0VDVVJFIChMV0lQX0ROU19TRUNVUkVfUkFORF9YSUQgfCBMV0lQX0ROU19TRUNVUkVfTk9fTVVMVElQTEVfT1VUU1RBTkRJTkcgfCBMV0lQX0ROU19TRUNVUkVfUkFORF9TUkNfUE9SVCkKKyNkZWZpbmUgRE5TX0xPQ0FMX0hPU1RMSVNUICAgICAgICAgICAgICAwCisjZGVmaW5lIEROU19MT0NBTF9IT1NUTElTVF9JU19EWU5BTUlDICAgMAorI2RlZmluZSBMV0lQX0ROU19TVVBQT1JUX01ETlNfUVVFUklFUyAgIDAKKyNkZWZpbmUgTFdJUF9VRFAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfVURQTElURSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVRFBfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgTFdJUF9ORVRCVUZfUkVDVklORk8gICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBUQ1BfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgVENQX1dORCAgICAgICAgICAgICAgICAgICAgICAgICAoNCAqIFRDUF9NU1MpCisjZGVmaW5lIFRDUF9NQVhSVFggICAgICAgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgVENQX1NZTk1BWFJUWCAgICAgICAgICAgICAgICAgICA2CisjZGVmaW5lIFRDUF9RVUVVRV9PT1NFUSAgICAgICAgICAgICAgICAgKExXSVBfVENQKQorI2RlZmluZSBMV0lQX1RDUF9TQUNLX09VVCAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BfTUFYX1NBQ0tfTlVNICAgICAgICAgICA0CisjZGVmaW5lIFRDUF9NU1MgICAgICAgICAgICAgICAgICAgICAgICAgNTM2CisjZGVmaW5lIFRDUF9DQUxDVUxBVEVfRUZGX1NFTkRfTVNTICAgICAgMQorI2RlZmluZSBUQ1BfU05EX0JVRiAgICAgICAgICAgICAgICAgICAgICgyICogVENQX01TUykKKyNkZWZpbmUgVENQX1NORF9RVUVVRUxFTiAgICAgICAgICAgICAgICAoKDQgKiAoVENQX1NORF9CVUYpICsgKFRDUF9NU1MgLSAxKSkvKFRDUF9NU1MpKQorI2RlZmluZSBUQ1BfU05ETE9XQVQgICAgICAgICAgICAgICAgICAgIExXSVBfTUlOKExXSVBfTUFYKCgoVENQX1NORF9CVUYpLzIpLCAoMiAqIFRDUF9NU1MpICsgMSksIChUQ1BfU05EX0JVRikgLSAxKQorI2RlZmluZSBUQ1BfU05EUVVFVUVMT1dBVCAgICAgICAgICAgICAgIExXSVBfTUFYKCgoVENQX1NORF9RVUVVRUxFTikvMiksIDUpCisjZGVmaW5lIFRDUF9PT1NFUV9NQVhfQllURVMgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfT09TRVFfQllURVNfTElNSVQocGNiKSAgICAgIFRDUF9PT1NFUV9NQVhfQllURVMKKyNkZWZpbmUgVENQX09PU0VRX01BWF9QQlVGUyAgICAgICAgICAgICAwCisjZGVmaW5lIFRDUF9PT1NFUV9QQlVGU19MSU1JVChwY2IpICAgICAgVENQX09PU0VRX01BWF9QQlVGUworI2RlZmluZSBUQ1BfTElTVEVOX0JBQ0tMT0cgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX0RFRkFVTFRfTElTVEVOX0JBQ0tMT0cgICAgICAweGZmCisjZGVmaW5lIFRDUF9PVkVSU0laRSAgICAgICAgICAgICAgICAgICAgVENQX01TUworI2RlZmluZSBMV0lQX1RDUF9USU1FU1RBTVBTICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX1dORF9VUERBVEVfVEhSRVNIT0xEICAgICAgICBMV0lQX01JTigoVENQX1dORCAvIDQpLCAoVENQX01TUyAqIDQpKQorI2RlZmluZSBMV0lQX0VWRU5UX0FQSSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9DQUxMQkFDS19BUEkgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfV05EX1NDQUxFICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfUkNWX1NDQUxFICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BfUENCX05VTV9FWFRfQVJHUyAgICAgICAwCisjZGVmaW5lIExXSVBfQUxUQ1AgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0FMVENQX1RMUyAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUEJVRl9MSU5LX0hMRU4gICAgICAgICAgICAgICAgICAoMTQgKyBFVEhfUEFEX1NJWkUpCisjZGVmaW5lIFBCVUZfTElOS19FTkNBUFNVTEFUSU9OX0hMRU4gICAgMAorI2RlZmluZSBQQlVGX1BPT0xfQlVGU0laRSAgICAgICAgICAgICAgIExXSVBfTUVNX0FMSUdOX1NJWkUoVENQX01TUys0MCtQQlVGX0xJTktfRU5DQVBTVUxBVElPTl9ITEVOK1BCVUZfTElOS19ITEVOKQorI2RlZmluZSBMV0lQX1BCVUZfUkVGX1QgICAgICAgICAgICAgICAgIHU4X3QKKyNkZWZpbmUgTFdJUF9TSU5HTEVfTkVUSUYgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfSE9TVE5BTUUgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0FQSSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9TVEFUVVNfQ0FMTEJBQ0sgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfRVhUX1NUQVRVU19DQUxMQkFDSyAgMAorI2RlZmluZSBMV0lQX05FVElGX0xJTktfQ0FMTEJBQ0sgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9SRU1PVkVfQ0FMTEJBQ0sgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfSFdBRERSSElOVCAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX1RYX1NJTkdMRV9QQlVGICAgICAgIDAKKyNkZWZpbmUgTFdJUF9OVU1fTkVUSUZfQ0xJRU5UX0RBVEEgICAgICAwCisjZGVmaW5lIExXSVBfSEFWRV9MT09QSUYgICAgICAgICAgICAgICAgKExXSVBfTkVUSUZfTE9PUEJBQ0sgJiYgIUxXSVBfU0lOR0xFX05FVElGKQorI2RlZmluZSBMV0lQX0xPT1BJRl9NVUxUSUNBU1QgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9MT09QQkFDSyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTE9PUEJBQ0tfTUFYX1BCVUZTICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0xPT1BCQUNLX01VTFRJVEhSRUFESU5HICAgICghTk9fU1lTKQorLyojZGVmaW5lIFRDUElQX1RIUkVBRF9OQU1FICAgICAgICAgICAgICAgInRjcGlwX3RocmVhZCIKKyNkZWZpbmUgVENQSVBfVEhSRUFEX1NUQUNLU0laRSAgICAgICAgICAwCisjZGVmaW5lIFRDUElQX1RIUkVBRF9QUklPICAgICAgICAgICAgICAgMQorI2RlZmluZSBUQ1BJUF9NQk9YX1NJWkUgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BJUF9USFJFQURfQUxJVkUoKQorI2RlZmluZSBTTElQSUZfVEhSRUFEX05BTUUgICAgICAgICAgICAgICJzbGlwaWZfbG9vcCIKKyNkZWZpbmUgU0xJUElGX1RIUkVBRF9TVEFDS1NJWkUgICAgICAgICAwCisjZGVmaW5lIFNMSVBJRl9USFJFQURfUFJJTyAgICAgICAgICAgICAgMQorI2RlZmluZSBERUZBVUxUX1RIUkVBRF9OQU1FICAgICAgICAgICAgICJsd0lQIgorI2RlZmluZSBERUZBVUxUX1RIUkVBRF9TVEFDS1NJWkUgICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9USFJFQURfUFJJTyAgICAgICAgICAgICAxCisjZGVmaW5lIERFRkFVTFRfUkFXX1JFQ1ZNQk9YX1NJWkUgICAgICAgMAorI2RlZmluZSBERUZBVUxUX1VEUF9SRUNWTUJPWF9TSVpFICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9UQ1BfUkVDVk1CT1hfU0laRSAgICAgICAwCisjZGVmaW5lIERFRkFVTFRfQUNDRVBUTUJPWF9TSVpFICAgICAgICAgMCovCisjZGVmaW5lIExXSVBfTkVUQ09OTiAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1RDUElQX1RJTUVPVVQgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRDT05OX1NFTV9QRVJfVEhSRUFEICAgICAwCisjZGVmaW5lIExXSVBfTkVUQ09OTl9GVUxMRFVQTEVYICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPQ0tFVCAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9DT01QQVRfU09DS0VUUyAgICAgICAgICAgICAxIC8qIDAuLjIgKi8KKyNkZWZpbmUgTFdJUF9QT1NJWF9TT0NLRVRTX0lPX05BTUVTICAgICAxCisjZGVmaW5lIExXSVBfU09DS0VUX09GRlNFVCAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUF9LRUVQQUxJVkUgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT19TTkRUSU1FTyAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fUkNWVElNRU8gICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPX1NORFJDVlRJTUVPX05PTlNUQU5EQVJEIDAKKyNkZWZpbmUgTFdJUF9TT19SQ1ZCVUYgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fTElOR0VSICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSRUNWX0JVRlNJWkVfREVGQVVMVCAgICAgICAgICAgIElOVF9NQVgKKyNkZWZpbmUgTFdJUF9UQ1BfQ0xPU0VfVElNRU9VVF9NU19ERUZBVUxUIDIwMDAwCisjZGVmaW5lIFNPX1JFVVNFICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTT19SRVVTRV9SWFRPQUxMICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9GSU9OUkVBRF9MSU5VWE1PREUgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09DS0VUX1NFTEVDVCAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1NPQ0tFVF9QT0xMICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU1RBVFNfRElTUExBWSAgICAgICAgICAgICAgMAorI2RlZmluZSBMSU5LX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgRVRIQVJQX1NUQVRTICAgICAgICAgICAgICAgICAgICAoTFdJUF9BUlApCisjZGVmaW5lIElQX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJUEZSQUdfU1RBVFMgICAgICAgICAgICAgICAgICAgIChJUF9SRUFTU0VNQkxZIHx8IElQX0ZSQUcpCisjZGVmaW5lIElDTVBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJR01QX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lHTVApCisjZGVmaW5lIFVEUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKExXSVBfVURQKQorI2RlZmluZSBUQ1BfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX1RDUCkKKyNkZWZpbmUgTUVNX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoKE1FTV9MSUJDX01BTExPQyA9PSAwKSAmJiAoTUVNX1VTRV9QT09MUyA9PSAwKSkKKyNkZWZpbmUgTUVNUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAoTUVNUF9NRU1fTUFMTE9DID09IDApCisjZGVmaW5lIFNZU19TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKE5PX1NZUyA9PSAwKQorI2RlZmluZSBJUDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIElDTVA2X1NUQVRTICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiBMV0lQX0lDTVA2KQorI2RlZmluZSBJUDZfRlJBR19TVEFUUyAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYgJiYgKExXSVBfSVBWNl9GUkFHIHx8IExXSVBfSVBWNl9SRUFTUykpCisjZGVmaW5lIE1MRDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiBMV0lQX0lQVjZfTUxEKQorI2RlZmluZSBORDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIE1JQjJfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0NIRUNLU1VNX0NUUkxfUEVSX05FVElGICAgIDAKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX0lQICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9VRFAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9HRU5fVENQICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX0lDTVAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9JQ01QNiAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19JUCAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfVURQICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0NIRUNLX1RDUCAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19JQ01QICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfSUNNUDYgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfQ0hFQ0tTVU1fT05fQ09QWSAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjYgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVBWNl9SRUFTU19NQVhBR0UgICAgICAgICAgICAgICA2MAorI2RlZmluZSBMV0lQX0lQVjZfU0NPUEVTICAgICAgICAgICAgICAgIChMV0lQX0lQVjYgJiYgIUxXSVBfU0lOR0xFX05FVElGKQorI2RlZmluZSBMV0lQX0lQVjZfU0NPUEVTX0RFQlVHICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X05VTV9BRERSRVNTRVMgICAgICAgICAzCisjZGVmaW5lIExXSVBfSVBWNl9GT1JXQVJEICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfRlJBRyAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9JUFY2X1JFQVNTICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBMV0lQX0lQVjZfU0VORF9ST1VURVJfU09MSUNJVCAgIDEKKyNkZWZpbmUgTFdJUF9JUFY2X0FVVE9DT05GSUcgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBMV0lQX0lQVjZfQUREUkVTU19MSUZFVElNRVMgICAgIChMV0lQX0lQVjZfQVVUT0NPTkZJRykKKyNkZWZpbmUgTFdJUF9JUFY2X0RVUF9ERVRFQ1RfQVRURU1QVFMgICAxCisjZGVmaW5lIExXSVBfSUNNUDYgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTFdJUF9JQ01QNl9EQVRBU0laRSAgICAgICAgICAgICA4CisjZGVmaW5lIExXSVBfSUNNUDZfSEwgICAgICAgICAgICAgICAgICAgMjU1CisjZGVmaW5lIExXSVBfSVBWNl9NTEQgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTUVNUF9OVU1fTUxENl9HUk9VUCAgICAgICAgICAgICA0CisjZGVmaW5lIExXSVBfTkQ2X1FVRVVFSU5HICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTUVNUF9OVU1fTkQ2X1FVRVVFICAgICAgICAgICAgICAyMAorI2RlZmluZSBMV0lQX05ENl9OVU1fTkVJR0hCT1JTICAgICAgICAgIDEwCisjZGVmaW5lIExXSVBfTkQ2X05VTV9ERVNUSU5BVElPTlMgICAgICAgMTAKKyNkZWZpbmUgTFdJUF9ORDZfTlVNX1BSRUZJWEVTICAgICAgICAgICA1CisjZGVmaW5lIExXSVBfTkQ2X05VTV9ST1VURVJTICAgICAgICAgICAgMworI2RlZmluZSBMV0lQX05ENl9NQVhfTVVMVElDQVNUX1NPTElDSVQgIDMKKyNkZWZpbmUgTFdJUF9ORDZfTUFYX1VOSUNBU1RfU09MSUNJVCAgICAzCisjZGVmaW5lIExXSVBfTkQ2X01BWF9BTllDQVNUX0RFTEFZX1RJTUUgMTAwMAorI2RlZmluZSBMV0lQX05ENl9NQVhfTkVJR0hCT1JfQURWRVJUSVNFTUVOVCAgMworI2RlZmluZSBMV0lQX05ENl9SRUFDSEFCTEVfVElNRSAgICAgICAgIDMwMDAwCisjZGVmaW5lIExXSVBfTkQ2X1JFVFJBTlNfVElNRVIgICAgICAgICAgMTAwMAorI2RlZmluZSBMV0lQX05ENl9ERUxBWV9GSVJTVF9QUk9CRV9USU1FIDUwMDAKKyNkZWZpbmUgTFdJUF9ORDZfQUxMT1dfUkFfVVBEQVRFUyAgICAgICAxCisjZGVmaW5lIExXSVBfTkQ2X1RDUF9SRUFDSEFCSUxJVFlfSElOVFMgMQorI2RlZmluZSBMV0lQX05ENl9SRE5TU19NQVhfRE5TX1NFUlZFUlMgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X0RIQ1A2ICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNl9ESENQNl9TVEFURUZVTCAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfREhDUDZfU1RBVEVMRVNTICAgICAgIExXSVBfSVBWNl9ESENQNgorI2RlZmluZSBMV0lQX0RIQ1A2X0dFVF9OVFBfU1JWICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQNl9NQVhfTlRQX1NFUlZFUlMgICAgICAxCisjZGVmaW5lIExXSVBfREhDUDZfTUFYX0ROU19TRVJWRVJTICAgICAgRE5TX01BWF9TRVJWRVJTCisKKy8qIFRPRE86IGNoZWNrIGhvb2tzICovCisKKyNkZWZpbmUgTFdJUF9EQkdfTUlOX0xFVkVMICAgICAgICAgICAgICBMV0lQX0RCR19MRVZFTF9BTEwKKyNkZWZpbmUgTFdJUF9EQkdfVFlQRVNfT04gICAgICAgICAgICAgICBMV0lQX0RCR19PTgorI2RlZmluZSBFVEhBUlBfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBORVRJRl9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBQQlVGX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBUElfTElCX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBUElfTVNHX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTT0NLRVRTX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJQ01QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJR01QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJTkVUX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUF9SRUFTU19ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBSQVdfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBNRU1fREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBNRU1QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTWVNfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUSU1FUlNfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfSU5QVVRfREVCVUcgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfRlJfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUlRPX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfQ1dORF9ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfV05EX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfT1VUUFVUX0RFQlVHICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUlNUX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUUxFTl9ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBVRFBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BJUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTTElQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBESENQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBVVRPSVBfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBETlNfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUDZfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBESENQNl9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBMV0lQX1RFU1RNT0RFICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBMV0lQX1BFUkYgICAgICAgICAgICAgICAgICAgICAgIDAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9pcHY2b25seS5oIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X2lwdjZvbmx5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjNjYjFlMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9pcHY2b25seS5oCkBAIC0wLDAgKzEsMjk1IEBACisvKiB0ZXN0IGFuIGx3aXBvcHRzLmggZmlsZSB3aXRoIGRlZmF1bHQgY29udGVudHMgKi8KKyNkZWZpbmUgTk9fU1lTICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5PX1NZU19OT19USU1FUlMgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RJTUVSUyAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9USU1FUlNfQ1VTVE9NICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTVBVX0NPTVBBVElCTEUgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUElQX0NPUkVfTE9DS0lORyAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkdfSU5QVVQgICAwCisjZGVmaW5lIFNZU19MSUdIVFdFSUdIVF9QUk9UICAgICAgICAgICAgMQorI2RlZmluZSBNRU1fTElCQ19NQUxMT0MgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNUF9NRU1fTUFMTE9DICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTVBfTUVNX0lOSVQgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fQUxJR05NRU5UICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTUVNX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAxNjAwCisjZGVmaW5lIE1FTVBfT1ZFUkZMT1dfQ0hFQ0sgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1QX1NBTklUWV9DSEVDSyAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX09WRVJGTE9XX0NIRUNLICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTV9TQU5JVFlfQ0hFQ0sgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fVVNFX1BPT0xTICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX1VTRV9QT09MU19UUllfQklHR0VSX1BPT0wgICAwCisjZGVmaW5lIE1FTVBfVVNFX0NVU1RPTV9QT09MUyAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0FMTE9XX01FTV9GUkVFX0ZST01fT1RIRVJfQ09OVEVYVCAwCisvKiNkZWZpbmUgTUVNUF9OVU1fUEJVRiAgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9SQVdfUENCICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgTUVNUF9OVU1fVURQX1BDQiAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1RDUF9QQ0IgICAgICAgICAgICAgICAgNQorI2RlZmluZSBNRU1QX05VTV9UQ1BfUENCX0xJU1RFTiAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fVENQX1NFRyAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9BTFRDUF9QQ0IgICAgICAgICAgICAgIE1FTVBfTlVNX1RDUF9QQ0IKKyNkZWZpbmUgTUVNUF9OVU1fUkVBU1NEQVRBICAgICAgICAgICAgICA1CisjZGVmaW5lIE1FTVBfTlVNX0ZSQUdfUEJVRiAgICAgICAgICAgICAgMTUKKyNkZWZpbmUgTUVNUF9OVU1fQVJQX1FVRVVFICAgICAgICAgICAgICAzMAorI2RlZmluZSBNRU1QX05VTV9JR01QX0dST1VQICAgICAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fU1lTX1RJTUVPVVQgICAgICAgICAgICAoTFdJUF9OVU1fU1lTX1RJTUVPVVRfSU5URVJOQUwgKyAyKQorI2RlZmluZSBNRU1QX05VTV9ORVRCVUYgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgTUVNUF9OVU1fTkVUQ09OTiAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1NFTEVDVF9DQiAgICAgICAgICAgICAgNAorI2RlZmluZSBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJICAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fVENQSVBfTVNHX0lOUEtUICAgICAgICA4CisjZGVmaW5lIE1FTVBfTlVNX05FVERCICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBNRU1QX05VTV9MT0NBTEhPU1RMSVNUICAgICAgICAgIDEKKyNkZWZpbmUgUEJVRl9QT09MX1NJWkUgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9BUElfTVNHICAgICAgICAgICAgICAgIE1FTVBfTlVNX1RDUElQX01TR19BUEkKKyNkZWZpbmUgTUVNUF9OVU1fRE5TX0FQSV9NU0cgICAgICAgICAgICBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJCisjZGVmaW5lIE1FTVBfTlVNX1NPQ0tFVF9TRVRHRVRTT0NLT1BUX0RBVEEgTUVNUF9OVU1fVENQSVBfTVNHX0FQSQorI2RlZmluZSBNRU1QX05VTV9ORVRJRkFQSV9NU0cgICAgICAgICAgIE1FTVBfTlVNX1RDUElQX01TR19BUEkqLworI2RlZmluZSBMV0lQX0FSUCAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQVJQX1RBQkxFX1NJWkUgICAgICAgICAgICAgICAgICAxMAorI2RlZmluZSBBUlBfTUFYQUdFICAgICAgICAgICAgICAgICAgICAgIDMwMAorI2RlZmluZSBBUlBfUVVFVUVJTkcgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVJQX1FVRVVFX0xFTiAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIEVUSEFSUF9TVVBQT1JUX1ZMQU4gICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0VUSEVSTkVUICAgICAgICAgICAgICAgICAgIExXSVBfQVJQCisjZGVmaW5lIEVUSF9QQURfU0laRSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBFVEhBUlBfU1VQUE9SVF9TVEFUSUNfRU5UUklFUyAgIDAKKyNkZWZpbmUgRVRIQVJQX1RBQkxFX01BVENIX05FVElGICAgICAgICAhTFdJUF9TSU5HTEVfTkVUSUYKKyNkZWZpbmUgTFdJUF9JUFY0ICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElQX0ZPUldBUkQgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJUF9SRUFTU0VNQkxZICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBfRlJBRyAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQX09QVElPTlNfQUxMT1dFRCAgICAgICAgICAgICAgMQorI2RlZmluZSBJUF9SRUFTU19NQVhBR0UgICAgICAgICAgICAgICAgIDE1CisjZGVmaW5lIElQX1JFQVNTX01BWF9QQlVGUyAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgSVBfREVGQVVMVF9UVEwgICAgICAgICAgICAgICAgICAyNTUKKyNkZWZpbmUgSVBfU09GX0JST0FEQ0FTVCAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElQX1NPRl9CUk9BRENBU1RfUkVDViAgICAgICAgICAgMAorI2RlZmluZSBJUF9GT1JXQVJEX0FMTE9XX1RYX09OX1JYX05FVElGIDAKKyNkZWZpbmUgTFdJUF9JQ01QICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElDTVBfVFRMICAgICAgICAgICAgICAgICAgICAgICAgKElQX0RFRkFVTFRfVFRMKQorI2RlZmluZSBMV0lQX0JST0FEQ0FTVF9QSU5HICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9NVUxUSUNBU1RfUElORyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfUkFXICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSQVdfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgTFdJUF9ESENQICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9DSEVDS19MSU5LX1VQICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfQk9PVFBfRklMRSAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX0dFVF9OVFBfU1JWICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9NQVhfTlRQX1NFUlZFUlMgICAgICAgMQorI2RlZmluZSBMV0lQX0RIQ1BfTUFYX0ROU19TRVJWRVJTICAgICAgIEROU19NQVhfU0VSVkVSUworI2RlZmluZSBMV0lQX0FVVE9JUCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX0FVVE9JUF9DT09QICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9BVVRPSVBfQ09PUF9UUklFUyAgICAgOQorI2RlZmluZSBMV0lQX01JQjJfQ0FMTEJBQ0tTICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9NVUxUSUNBU1RfVFhfT1BUSU9OUyAgICAgICAoKExXSVBfSUdNUCB8fCBMV0lQX0lQVjZfTUxEKSAmJiAoTFdJUF9VRFAgfHwgTFdJUF9SQVcpKQorI2RlZmluZSBMV0lQX0lHTVAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ETlMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEROU19UQUJMRV9TSVpFICAgICAgICAgICAgICAgICAgNAorI2RlZmluZSBETlNfTUFYX05BTUVfTEVOR1RIICAgICAgICAgICAgIDI1NgorI2RlZmluZSBETlNfTUFYX1NFUlZFUlMgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgRE5TX01BWF9SRVRSSUVTICAgICAgICAgICAgICAgICA0CisjZGVmaW5lIEROU19ET0VTX05BTUVfQ0hFQ0sgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX0ROU19TRUNVUkUgKExXSVBfRE5TX1NFQ1VSRV9SQU5EX1hJRCB8IExXSVBfRE5TX1NFQ1VSRV9OT19NVUxUSVBMRV9PVVRTVEFORElORyB8IExXSVBfRE5TX1NFQ1VSRV9SQU5EX1NSQ19QT1JUKQorI2RlZmluZSBETlNfTE9DQUxfSE9TVExJU1QgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE5TX0xPQ0FMX0hPU1RMSVNUX0lTX0RZTkFNSUMgICAwCisjZGVmaW5lIExXSVBfRE5TX1NVUFBPUlRfTUROU19RVUVSSUVTICAgMAorI2RlZmluZSBMV0lQX1VEUCAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9VRFBMSVRFICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVEUF9UVEwgICAgICAgICAgICAgICAgICAgICAgICAgKElQX0RFRkFVTFRfVFRMKQorI2RlZmluZSBMV0lQX05FVEJVRl9SRUNWSU5GTyAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1AgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIFRDUF9UVEwgICAgICAgICAgICAgICAgICAgICAgICAgKElQX0RFRkFVTFRfVFRMKQorI2RlZmluZSBUQ1BfV05EICAgICAgICAgICAgICAgICAgICAgICAgICg0ICogVENQX01TUykKKyNkZWZpbmUgVENQX01BWFJUWCAgICAgICAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBUQ1BfU1lOTUFYUlRYICAgICAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgVENQX1FVRVVFX09PU0VRICAgICAgICAgICAgICAgICAoTFdJUF9UQ1ApCisjZGVmaW5lIExXSVBfVENQX1NBQ0tfT1VUICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUF9NQVhfU0FDS19OVU0gICAgICAgICAgIDQKKyNkZWZpbmUgVENQX01TUyAgICAgICAgICAgICAgICAgICAgICAgICA1MzYKKyNkZWZpbmUgVENQX0NBTENVTEFURV9FRkZfU0VORF9NU1MgICAgICAxCisjZGVmaW5lIFRDUF9TTkRfQlVGICAgICAgICAgICAgICAgICAgICAgKDIgKiBUQ1BfTVNTKQorI2RlZmluZSBUQ1BfU05EX1FVRVVFTEVOICAgICAgICAgICAgICAgICgoNCAqIChUQ1BfU05EX0JVRikgKyAoVENQX01TUyAtIDEpKS8oVENQX01TUykpCisjZGVmaW5lIFRDUF9TTkRMT1dBVCAgICAgICAgICAgICAgICAgICAgTFdJUF9NSU4oTFdJUF9NQVgoKChUQ1BfU05EX0JVRikvMiksICgyICogVENQX01TUykgKyAxKSwgKFRDUF9TTkRfQlVGKSAtIDEpCisjZGVmaW5lIFRDUF9TTkRRVUVVRUxPV0FUICAgICAgICAgICAgICAgTFdJUF9NQVgoKChUQ1BfU05EX1FVRVVFTEVOKS8yKSwgNSkKKyNkZWZpbmUgVENQX09PU0VRX01BWF9CWVRFUyAgICAgICAgICAgICAwCisjZGVmaW5lIFRDUF9PT1NFUV9CWVRFU19MSU1JVChwY2IpICAgICAgVENQX09PU0VRX01BWF9CWVRFUworI2RlZmluZSBUQ1BfT09TRVFfTUFYX1BCVUZTICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX09PU0VRX1BCVUZTX0xJTUlUKHBjYikgICAgICBUQ1BfT09TRVFfTUFYX1BCVUZTCisjZGVmaW5lIFRDUF9MSVNURU5fQkFDS0xPRyAgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfREVGQVVMVF9MSVNURU5fQkFDS0xPRyAgICAgIDB4ZmYKKyNkZWZpbmUgVENQX09WRVJTSVpFICAgICAgICAgICAgICAgICAgICBUQ1BfTVNTCisjZGVmaW5lIExXSVBfVENQX1RJTUVTVEFNUFMgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfV05EX1VQREFURV9USFJFU0hPTEQgICAgICAgIExXSVBfTUlOKChUQ1BfV05EIC8gNCksIChUQ1BfTVNTICogNCkpCisjZGVmaW5lIExXSVBfRVZFTlRfQVBJICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0NBTExCQUNLX0FQSSAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9XTkRfU0NBTEUgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRDUF9SQ1ZfU0NBTEUgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUF9QQ0JfTlVNX0VYVF9BUkdTICAgICAgIDAKKyNkZWZpbmUgTFdJUF9BTFRDUCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfQUxUQ1BfVExTICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQlVGX0xJTktfSExFTiAgICAgICAgICAgICAgICAgICgxNCArIEVUSF9QQURfU0laRSkKKyNkZWZpbmUgUEJVRl9MSU5LX0VOQ0FQU1VMQVRJT05fSExFTiAgICAwCisjZGVmaW5lIFBCVUZfUE9PTF9CVUZTSVpFICAgICAgICAgICAgICAgTFdJUF9NRU1fQUxJR05fU0laRShUQ1BfTVNTKzQwK1BCVUZfTElOS19FTkNBUFNVTEFUSU9OX0hMRU4rUEJVRl9MSU5LX0hMRU4pCisjZGVmaW5lIExXSVBfUEJVRl9SRUZfVCAgICAgICAgICAgICAgICAgdThfdAorI2RlZmluZSBMV0lQX1NJTkdMRV9ORVRJRiAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9IT1NUTkFNRSAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfQVBJICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX1NUQVRVU19DQUxMQkFDSyAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9FWFRfU1RBVFVTX0NBTExCQUNLICAwCisjZGVmaW5lIExXSVBfTkVUSUZfTElOS19DQUxMQkFDSyAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX1JFTU9WRV9DQUxMQkFDSyAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9IV0FERFJISU5UICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfVFhfU0lOR0xFX1BCVUYgICAgICAgMAorI2RlZmluZSBMV0lQX05VTV9ORVRJRl9DTElFTlRfREFUQSAgICAgIDAKKyNkZWZpbmUgTFdJUF9IQVZFX0xPT1BJRiAgICAgICAgICAgICAgICAoTFdJUF9ORVRJRl9MT09QQkFDSyAmJiAhTFdJUF9TSU5HTEVfTkVUSUYpCisjZGVmaW5lIExXSVBfTE9PUElGX01VTFRJQ0FTVCAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0xPT1BCQUNLICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9MT09QQkFDS19NQVhfUEJVRlMgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfTE9PUEJBQ0tfTVVMVElUSFJFQURJTkcgICAgKCFOT19TWVMpCisvKiNkZWZpbmUgVENQSVBfVEhSRUFEX05BTUUgICAgICAgICAgICAgICAidGNwaXBfdGhyZWFkIgorI2RlZmluZSBUQ1BJUF9USFJFQURfU1RBQ0tTSVpFICAgICAgICAgIDAKKyNkZWZpbmUgVENQSVBfVEhSRUFEX1BSSU8gICAgICAgICAgICAgICAxCisjZGVmaW5lIFRDUElQX01CT1hfU0laRSAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUElQX1RIUkVBRF9BTElWRSgpCisjZGVmaW5lIFNMSVBJRl9USFJFQURfTkFNRSAgICAgICAgICAgICAgInNsaXBpZl9sb29wIgorI2RlZmluZSBTTElQSUZfVEhSRUFEX1NUQUNLU0laRSAgICAgICAgIDAKKyNkZWZpbmUgU0xJUElGX1RIUkVBRF9QUklPICAgICAgICAgICAgICAxCisjZGVmaW5lIERFRkFVTFRfVEhSRUFEX05BTUUgICAgICAgICAgICAgImx3SVAiCisjZGVmaW5lIERFRkFVTFRfVEhSRUFEX1NUQUNLU0laRSAgICAgICAgMAorI2RlZmluZSBERUZBVUxUX1RIUkVBRF9QUklPICAgICAgICAgICAgIDEKKyNkZWZpbmUgREVGQVVMVF9SQVdfUkVDVk1CT1hfU0laRSAgICAgICAwCisjZGVmaW5lIERFRkFVTFRfVURQX1JFQ1ZNQk9YX1NJWkUgICAgICAgMAorI2RlZmluZSBERUZBVUxUX1RDUF9SRUNWTUJPWF9TSVpFICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9BQ0NFUFRNQk9YX1NJWkUgICAgICAgICAwKi8KKyNkZWZpbmUgTFdJUF9ORVRDT05OICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfVENQSVBfVElNRU9VVCAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVENPTk5fU0VNX1BFUl9USFJFQUQgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRDT05OX0ZVTExEVVBMRVggICAgICAgICAwCisjZGVmaW5lIExXSVBfU09DS0VUICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX0NPTVBBVF9TT0NLRVRTICAgICAgICAgICAgIDEgLyogMC4uMiAqLworI2RlZmluZSBMV0lQX1BPU0lYX1NPQ0tFVFNfSU9fTkFNRVMgICAgIDEKKyNkZWZpbmUgTFdJUF9TT0NLRVRfT0ZGU0VUICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQX0tFRVBBTElWRSAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPX1NORFRJTUVPICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT19SQ1ZUSU1FTyAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fU05EUkNWVElNRU9fTk9OU1RBTkRBUkQgMAorI2RlZmluZSBMV0lQX1NPX1JDVkJVRiAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT19MSU5HRVIgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJFQ1ZfQlVGU0laRV9ERUZBVUxUICAgICAgICAgICAgSU5UX01BWAorI2RlZmluZSBMV0lQX1RDUF9DTE9TRV9USU1FT1VUX01TX0RFRkFVTFQgMjAwMDAKKyNkZWZpbmUgU09fUkVVU0UgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNPX1JFVVNFX1JYVE9BTEwgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0ZJT05SRUFEX0xJTlVYTU9ERSAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT0NLRVRfU0VMRUNUICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU09DS0VUX1BPTEwgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9TVEFUU19ESVNQTEFZICAgICAgICAgICAgICAwCisjZGVmaW5lIExJTktfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBFVEhBUlBfU1RBVFMgICAgICAgICAgICAgICAgICAgIChMV0lQX0FSUCkKKyNkZWZpbmUgSVBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQRlJBR19TVEFUUyAgICAgICAgICAgICAgICAgICAgKElQX1JFQVNTRU1CTFkgfHwgSVBfRlJBRykKKyNkZWZpbmUgSUNNUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElHTVBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSUdNUCkKKyNkZWZpbmUgVURQX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoTFdJUF9VRFApCisjZGVmaW5lIFRDUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKExXSVBfVENQKQorI2RlZmluZSBNRU1fU1RBVFMgICAgICAgICAgICAgICAgICAgICAgICgoTUVNX0xJQkNfTUFMTE9DID09IDApICYmIChNRU1fVVNFX1BPT0xTID09IDApKQorI2RlZmluZSBNRU1QX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIChNRU1QX01FTV9NQUxMT0MgPT0gMCkKKyNkZWZpbmUgU1lTX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoTk9fU1lTID09IDApCisjZGVmaW5lIElQNl9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgSUNNUDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2ICYmIExXSVBfSUNNUDYpCisjZGVmaW5lIElQNl9GUkFHX1NUQVRTICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiAoTFdJUF9JUFY2X0ZSQUcgfHwgTFdJUF9JUFY2X1JFQVNTKSkKKyNkZWZpbmUgTUxENl9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2ICYmIExXSVBfSVBWNl9NTEQpCisjZGVmaW5lIE5ENl9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTUlCMl9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfQ0hFQ0tTVU1fQ1RSTF9QRVJfTkVUSUYgICAgMAorI2RlZmluZSBDSEVDS1NVTV9HRU5fSVAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX1VEUCAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9UQ1AgICAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9HRU5fSUNNUCAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX0lDTVA2ICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0NIRUNLX0lQICAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19VRFAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfVENQICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0NIRUNLX0lDTVAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19JQ01QNiAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9DSEVDS1NVTV9PTl9DT1BZICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNiAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJUFY2X1JFQVNTX01BWEFHRSAgICAgICAgICAgICAgIDYwCisjZGVmaW5lIExXSVBfSVBWNl9TQ09QRVMgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiAhTFdJUF9TSU5HTEVfTkVUSUYpCisjZGVmaW5lIExXSVBfSVBWNl9TQ09QRVNfREVCVUcgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfTlVNX0FERFJFU1NFUyAgICAgICAgIDMKKyNkZWZpbmUgTFdJUF9JUFY2X0ZPUldBUkQgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNl9GUkFHICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX0lQVjZfUkVBU1MgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIExXSVBfSVBWNl9TRU5EX1JPVVRFUl9TT0xJQ0lUICAgMQorI2RlZmluZSBMV0lQX0lQVjZfQVVUT0NPTkZJRyAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIExXSVBfSVBWNl9BRERSRVNTX0xJRkVUSU1FUyAgICAgKExXSVBfSVBWNl9BVVRPQ09ORklHKQorI2RlZmluZSBMV0lQX0lQVjZfRFVQX0RFVEVDVF9BVFRFTVBUUyAgIDEKKyNkZWZpbmUgTFdJUF9JQ01QNiAgICAgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBMV0lQX0lDTVA2X0RBVEFTSVpFICAgICAgICAgICAgIDgKKyNkZWZpbmUgTFdJUF9JQ01QNl9ITCAgICAgICAgICAgICAgICAgICAyNTUKKyNkZWZpbmUgTFdJUF9JUFY2X01MRCAgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBNRU1QX05VTV9NTEQ2X0dST1VQICAgICAgICAgICAgIDQKKyNkZWZpbmUgTFdJUF9ORDZfUVVFVUVJTkcgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBNRU1QX05VTV9ORDZfUVVFVUUgICAgICAgICAgICAgIDIwCisjZGVmaW5lIExXSVBfTkQ2X05VTV9ORUlHSEJPUlMgICAgICAgICAgMTAKKyNkZWZpbmUgTFdJUF9ORDZfTlVNX0RFU1RJTkFUSU9OUyAgICAgICAxMAorI2RlZmluZSBMV0lQX05ENl9OVU1fUFJFRklYRVMgICAgICAgICAgIDUKKyNkZWZpbmUgTFdJUF9ORDZfTlVNX1JPVVRFUlMgICAgICAgICAgICAzCisjZGVmaW5lIExXSVBfTkQ2X01BWF9NVUxUSUNBU1RfU09MSUNJVCAgMworI2RlZmluZSBMV0lQX05ENl9NQVhfVU5JQ0FTVF9TT0xJQ0lUICAgIDMKKyNkZWZpbmUgTFdJUF9ORDZfTUFYX0FOWUNBU1RfREVMQVlfVElNRSAxMDAwCisjZGVmaW5lIExXSVBfTkQ2X01BWF9ORUlHSEJPUl9BRFZFUlRJU0VNRU5UICAzCisjZGVmaW5lIExXSVBfTkQ2X1JFQUNIQUJMRV9USU1FICAgICAgICAgMzAwMDAKKyNkZWZpbmUgTFdJUF9ORDZfUkVUUkFOU19USU1FUiAgICAgICAgICAxMDAwCisjZGVmaW5lIExXSVBfTkQ2X0RFTEFZX0ZJUlNUX1BST0JFX1RJTUUgNTAwMAorI2RlZmluZSBMV0lQX05ENl9BTExPV19SQV9VUERBVEVTICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ORDZfVENQX1JFQUNIQUJJTElUWV9ISU5UUyAxCisjZGVmaW5lIExXSVBfTkQ2X1JETlNTX01BWF9ETlNfU0VSVkVSUyAgMAorI2RlZmluZSBMV0lQX0lQVjZfREhDUDYgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X0RIQ1A2X1NUQVRFRlVMICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNl9ESENQNl9TVEFURUxFU1MgICAgICAgTFdJUF9JUFY2X0RIQ1A2CisjZGVmaW5lIExXSVBfREhDUDZfR0VUX05UUF9TUlYgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1A2X01BWF9OVFBfU0VSVkVSUyAgICAgIDEKKyNkZWZpbmUgTFdJUF9ESENQNl9NQVhfRE5TX1NFUlZFUlMgICAgICBETlNfTUFYX1NFUlZFUlMKKworLyogVE9ETzogY2hlY2sgaG9va3MgKi8KKworI2RlZmluZSBMV0lQX0RCR19NSU5fTEVWRUwgICAgICAgICAgICAgIExXSVBfREJHX0xFVkVMX0FMTAorI2RlZmluZSBMV0lQX0RCR19UWVBFU19PTiAgICAgICAgICAgICAgIExXSVBfREJHX09OCisjZGVmaW5lIEVUSEFSUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIE5FVElGX0RFQlVHICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFBCVUZfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIEFQSV9MSUJfREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIEFQSV9NU0dfREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFNPQ0tFVFNfREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElDTVBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElHTVBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElORVRfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElQX1JFQVNTX0RFQlVHICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFJBV19ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIE1FTV9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIE1FTVBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFNZU19ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRJTUVSU19ERUJVRyAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9JTlBVVF9ERUJVRyAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9GUl9ERUJVRyAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9SVE9fREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9DV05EX0RFQlVHICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9XTkRfREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9PVVRQVVRfREVCVUcgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9SU1RfREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9RTEVOX0RFQlVHICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFVEUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUElQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFNMSVBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIERIQ1BfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIEFVVE9JUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIEROU19ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElQNl9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIERIQ1A2X0RFQlVHICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIExXSVBfVEVTVE1PREUgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIExXSVBfUEVSRiAgICAgICAgICAgICAgICAgICAgICAgMApkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X25vX3RjcF9kdWFsc3RhY2suaCBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub190Y3BfZHVhbHN0YWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ3MGFjZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub190Y3BfZHVhbHN0YWNrLmgKQEAgLTAsMCArMSw0IEBACisjaW5jbHVkZSAidGVzdF9jb25maWdzL29wdF9kdWFsc3RhY2suaCIKKworI3VuZGVmIExXSVBfVENQCisjZGVmaW5lIExXSVBfVENQIDAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub190Y3BfaXB2NG9ubHkuaCBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub190Y3BfaXB2NG9ubHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDIyODMxCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X25vX3RjcF9pcHY0b25seS5oCkBAIC0wLDAgKzEsNCBAQAorI2luY2x1ZGUgInRlc3RfY29uZmlncy9vcHRfaXB2NG9ubHkuaCIKKworI3VuZGVmIExXSVBfVENQCisjZGVmaW5lIExXSVBfVENQIDAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub190Y3BfaXB2Nm9ubHkuaCBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub190Y3BfaXB2Nm9ubHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Zjk1NmUzCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X25vX3RjcF9pcHY2b25seS5oCkBAIC0wLDAgKzEsNCBAQAorI2luY2x1ZGUgInRlc3RfY29uZmlncy9vcHRfaXB2Nm9ubHkuaCIKKworI3VuZGVmIExXSVBfVENQCisjZGVmaW5lIExXSVBfVENQIDAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub191ZHBfZHVhbHN0YWNrLmggYi9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfbm9fdWRwX2R1YWxzdGFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5YjllOWEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfbm9fdWRwX2R1YWxzdGFjay5oCkBAIC0wLDAgKzEsNCBAQAorI2luY2x1ZGUgInRlc3RfY29uZmlncy9vcHRfZHVhbHN0YWNrLmgiCisKKyN1bmRlZiBMV0lQX1VEUAorI2RlZmluZSBMV0lQX1VEUCAwCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfbm9fdWRwX2lwdjRvbmx5LmggYi9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfbm9fdWRwX2lwdjRvbmx5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2FhM2FjZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub191ZHBfaXB2NG9ubHkuaApAQCAtMCwwICsxLDQgQEAKKyNpbmNsdWRlICJ0ZXN0X2NvbmZpZ3Mvb3B0X2lwdjRvbmx5LmgiCisKKyN1bmRlZiBMV0lQX1VEUAorI2RlZmluZSBMV0lQX1VEUCAwCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfbm9fdWRwX2lwdjZvbmx5LmggYi9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfbm9fdWRwX2lwdjZvbmx5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU3Mjc5OAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub191ZHBfaXB2Nm9ubHkuaApAQCAtMCwwICsxLDQgQEAKKyNpbmNsdWRlICJ0ZXN0X2NvbmZpZ3Mvb3B0X2lwdjZvbmx5LmgiCisKKyN1bmRlZiBMV0lQX1VEUAorI2RlZmluZSBMV0lQX1VEUCAwCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfbm9uZS5oIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X25vbmUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYzM5MzIxCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X25vbmUuaApAQCAtMCwwICsxLDIgQEAKKy8qIHRlc3QgYW5kIGVtcHR5IGx3aXBvcHRzLmggZmlsZSAqLworCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfbm9zeXNfZHVhbC5oIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X25vc3lzX2R1YWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2VlOTdmCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X25vc3lzX2R1YWwuaApAQCAtMCwwICsxLDI5NSBAQAorLyogdGVzdCBhbiBsd2lwb3B0cy5oIGZpbGUgd2l0aCBkZWZhdWx0IGNvbnRlbnRzICovCisjZGVmaW5lIE5PX1NZUyAgICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBOT19TWVNfTk9fVElNRVJTICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9USU1FUlMgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfVElNRVJTX0NVU1RPTSAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX01QVV9DT01QQVRJQkxFICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkcgICAgICAgICAxCisjZGVmaW5lIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HX0lOUFVUICAgMAorI2RlZmluZSBTWVNfTElHSFRXRUlHSFRfUFJPVCAgICAgICAgICAgIDEKKyNkZWZpbmUgTUVNX0xJQkNfTUFMTE9DICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTVBfTUVNX01BTExPQyAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1QX01FTV9JTklUICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX0FMSUdOTUVOVCAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIE1FTV9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgMTYwMAorI2RlZmluZSBNRU1QX09WRVJGTE9XX0NIRUNLICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNUF9TQU5JVFlfQ0hFQ0sgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTV9PVkVSRkxPV19DSEVDSyAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fU0FOSVRZX0NIRUNLICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX1VTRV9QT09MUyAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTV9VU0VfUE9PTFNfVFJZX0JJR0dFUl9QT09MICAgMAorI2RlZmluZSBNRU1QX1VTRV9DVVNUT01fUE9PTFMgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9BTExPV19NRU1fRlJFRV9GUk9NX09USEVSX0NPTlRFWFQgMAorLyojZGVmaW5lIE1FTVBfTlVNX1BCVUYgICAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTUVNUF9OVU1fUkFXX1BDQiAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1VEUF9QQ0IgICAgICAgICAgICAgICAgNAorI2RlZmluZSBNRU1QX05VTV9UQ1BfUENCICAgICAgICAgICAgICAgIDUKKyNkZWZpbmUgTUVNUF9OVU1fVENQX1BDQl9MSVNURU4gICAgICAgICA4CisjZGVmaW5lIE1FTVBfTlVNX1RDUF9TRUcgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTUVNUF9OVU1fQUxUQ1BfUENCICAgICAgICAgICAgICBNRU1QX05VTV9UQ1BfUENCCisjZGVmaW5lIE1FTVBfTlVNX1JFQVNTREFUQSAgICAgICAgICAgICAgNQorI2RlZmluZSBNRU1QX05VTV9GUkFHX1BCVUYgICAgICAgICAgICAgIDE1CisjZGVmaW5lIE1FTVBfTlVNX0FSUF9RVUVVRSAgICAgICAgICAgICAgMzAKKyNkZWZpbmUgTUVNUF9OVU1fSUdNUF9HUk9VUCAgICAgICAgICAgICA4CisjZGVmaW5lIE1FTVBfTlVNX1NZU19USU1FT1VUICAgICAgICAgICAgKExXSVBfTlVNX1NZU19USU1FT1VUX0lOVEVSTkFMICsgMikKKyNkZWZpbmUgTUVNUF9OVU1fTkVUQlVGICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIE1FTVBfTlVNX05FVENPTk4gICAgICAgICAgICAgICAgNAorI2RlZmluZSBNRU1QX05VTV9TRUxFQ1RfQ0IgICAgICAgICAgICAgIDQKKyNkZWZpbmUgTUVNUF9OVU1fVENQSVBfTVNHX0FQSSAgICAgICAgICA4CisjZGVmaW5lIE1FTVBfTlVNX1RDUElQX01TR19JTlBLVCAgICAgICAgOAorI2RlZmluZSBNRU1QX05VTV9ORVREQiAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTUVNUF9OVU1fTE9DQUxIT1NUTElTVCAgICAgICAgICAxCisjZGVmaW5lIFBCVUZfUE9PTF9TSVpFICAgICAgICAgICAgICAgICAgMTYKKyNkZWZpbmUgTUVNUF9OVU1fQVBJX01TRyAgICAgICAgICAgICAgICBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJCisjZGVmaW5lIE1FTVBfTlVNX0ROU19BUElfTVNHICAgICAgICAgICAgTUVNUF9OVU1fVENQSVBfTVNHX0FQSQorI2RlZmluZSBNRU1QX05VTV9TT0NLRVRfU0VUR0VUU09DS09QVF9EQVRBIE1FTVBfTlVNX1RDUElQX01TR19BUEkKKyNkZWZpbmUgTUVNUF9OVU1fTkVUSUZBUElfTVNHICAgICAgICAgICBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJKi8KKyNkZWZpbmUgTFdJUF9BUlAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIEFSUF9UQUJMRV9TSVpFICAgICAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgQVJQX01BWEFHRSAgICAgICAgICAgICAgICAgICAgICAzMDAKKyNkZWZpbmUgQVJQX1FVRVVFSU5HICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEFSUF9RVUVVRV9MRU4gICAgICAgICAgICAgICAgICAgMworI2RlZmluZSBFVEhBUlBfU1VQUE9SVF9WTEFOICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9FVEhFUk5FVCAgICAgICAgICAgICAgICAgICBMV0lQX0FSUAorI2RlZmluZSBFVEhfUEFEX1NJWkUgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRVRIQVJQX1NVUFBPUlRfU1RBVElDX0VOVFJJRVMgICAwCisjZGVmaW5lIEVUSEFSUF9UQUJMRV9NQVRDSF9ORVRJRiAgICAgICAgIUxXSVBfU0lOR0xFX05FVElGCisjZGVmaW5lIExXSVBfSVBWNCAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJUF9GT1JXQVJEICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVBfUkVBU1NFTUJMWSAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQX0ZSQUcgICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJUF9PUFRJT05TX0FMTE9XRUQgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBfUkVBU1NfTUFYQUdFICAgICAgICAgICAgICAgICAxNQorI2RlZmluZSBJUF9SRUFTU19NQVhfUEJVRlMgICAgICAgICAgICAgIDEwCisjZGVmaW5lIElQX0RFRkFVTFRfVFRMICAgICAgICAgICAgICAgICAgMjU1CisjZGVmaW5lIElQX1NPRl9CUk9BRENBU1QgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJUF9TT0ZfQlJPQURDQVNUX1JFQ1YgICAgICAgICAgIDAKKyNkZWZpbmUgSVBfRk9SV0FSRF9BTExPV19UWF9PTl9SWF9ORVRJRiAwCisjZGVmaW5lIExXSVBfSUNNUCAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJQ01QX1RUTCAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgTFdJUF9CUk9BRENBU1RfUElORyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTVVMVElDQVNUX1BJTkcgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1JBVyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUkFXX1RUTCAgICAgICAgICAgICAgICAgICAgICAgICAoSVBfREVGQVVMVF9UVEwpCisjZGVmaW5lIExXSVBfREhDUCAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX0RIQ1BfQ0hFQ0tfTElOS19VUCAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX0JPT1RQX0ZJTEUgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9HRVRfTlRQX1NSViAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfTUFYX05UUF9TRVJWRVJTICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ESENQX01BWF9ETlNfU0VSVkVSUyAgICAgICBETlNfTUFYX1NFUlZFUlMKKyNkZWZpbmUgTFdJUF9BVVRPSVAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9BVVRPSVBfQ09PUCAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfQVVUT0lQX0NPT1BfVFJJRVMgICAgIDkKKyNkZWZpbmUgTFdJUF9NSUIyX0NBTExCQUNLUyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTVVMVElDQVNUX1RYX09QVElPTlMgICAgICAgKChMV0lQX0lHTVAgfHwgTFdJUF9JUFY2X01MRCkgJiYgKExXSVBfVURQIHx8IExXSVBfUkFXKSkKKyNkZWZpbmUgTFdJUF9JR01QICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfRE5TICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBETlNfVEFCTEVfU0laRSAgICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgRE5TX01BWF9OQU1FX0xFTkdUSCAgICAgICAgICAgICAyNTYKKyNkZWZpbmUgRE5TX01BWF9TRVJWRVJTICAgICAgICAgICAgICAgICAyCisjZGVmaW5lIEROU19NQVhfUkVUUklFUyAgICAgICAgICAgICAgICAgNAorI2RlZmluZSBETlNfRE9FU19OQU1FX0NIRUNLICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ETlNfU0VDVVJFIChMV0lQX0ROU19TRUNVUkVfUkFORF9YSUQgfCBMV0lQX0ROU19TRUNVUkVfTk9fTVVMVElQTEVfT1VUU1RBTkRJTkcgfCBMV0lQX0ROU19TRUNVUkVfUkFORF9TUkNfUE9SVCkKKyNkZWZpbmUgRE5TX0xPQ0FMX0hPU1RMSVNUICAgICAgICAgICAgICAwCisjZGVmaW5lIEROU19MT0NBTF9IT1NUTElTVF9JU19EWU5BTUlDICAgMAorI2RlZmluZSBMV0lQX0ROU19TVVBQT1JUX01ETlNfUVVFUklFUyAgIDAKKyNkZWZpbmUgTFdJUF9VRFAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfVURQTElURSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBVRFBfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgTFdJUF9ORVRCVUZfUkVDVklORk8gICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBUQ1BfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgVENQX1dORCAgICAgICAgICAgICAgICAgICAgICAgICAoNCAqIFRDUF9NU1MpCisjZGVmaW5lIFRDUF9NQVhSVFggICAgICAgICAgICAgICAgICAgICAgMTIKKyNkZWZpbmUgVENQX1NZTk1BWFJUWCAgICAgICAgICAgICAgICAgICA2CisjZGVmaW5lIFRDUF9RVUVVRV9PT1NFUSAgICAgICAgICAgICAgICAgKExXSVBfVENQKQorI2RlZmluZSBMV0lQX1RDUF9TQUNLX09VVCAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BfTUFYX1NBQ0tfTlVNICAgICAgICAgICA0CisjZGVmaW5lIFRDUF9NU1MgICAgICAgICAgICAgICAgICAgICAgICAgNTM2CisjZGVmaW5lIFRDUF9DQUxDVUxBVEVfRUZGX1NFTkRfTVNTICAgICAgMQorI2RlZmluZSBUQ1BfU05EX0JVRiAgICAgICAgICAgICAgICAgICAgICgyICogVENQX01TUykKKyNkZWZpbmUgVENQX1NORF9RVUVVRUxFTiAgICAgICAgICAgICAgICAoKDQgKiAoVENQX1NORF9CVUYpICsgKFRDUF9NU1MgLSAxKSkvKFRDUF9NU1MpKQorI2RlZmluZSBUQ1BfU05ETE9XQVQgICAgICAgICAgICAgICAgICAgIExXSVBfTUlOKExXSVBfTUFYKCgoVENQX1NORF9CVUYpLzIpLCAoMiAqIFRDUF9NU1MpICsgMSksIChUQ1BfU05EX0JVRikgLSAxKQorI2RlZmluZSBUQ1BfU05EUVVFVUVMT1dBVCAgICAgICAgICAgICAgIExXSVBfTUFYKCgoVENQX1NORF9RVUVVRUxFTikvMiksIDUpCisjZGVmaW5lIFRDUF9PT1NFUV9NQVhfQllURVMgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfT09TRVFfQllURVNfTElNSVQocGNiKSAgICAgIFRDUF9PT1NFUV9NQVhfQllURVMKKyNkZWZpbmUgVENQX09PU0VRX01BWF9QQlVGUyAgICAgICAgICAgICAwCisjZGVmaW5lIFRDUF9PT1NFUV9QQlVGU19MSU1JVChwY2IpICAgICAgVENQX09PU0VRX01BWF9QQlVGUworI2RlZmluZSBUQ1BfTElTVEVOX0JBQ0tMT0cgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX0RFRkFVTFRfTElTVEVOX0JBQ0tMT0cgICAgICAweGZmCisjZGVmaW5lIFRDUF9PVkVSU0laRSAgICAgICAgICAgICAgICAgICAgVENQX01TUworI2RlZmluZSBMV0lQX1RDUF9USU1FU1RBTVBTICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX1dORF9VUERBVEVfVEhSRVNIT0xEICAgICAgICBMV0lQX01JTigoVENQX1dORCAvIDQpLCAoVENQX01TUyAqIDQpKQorI2RlZmluZSBMV0lQX0VWRU5UX0FQSSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9DQUxMQkFDS19BUEkgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfV05EX1NDQUxFICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfUkNWX1NDQUxFICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BfUENCX05VTV9FWFRfQVJHUyAgICAgICAwCisjZGVmaW5lIExXSVBfQUxUQ1AgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0FMVENQX1RMUyAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUEJVRl9MSU5LX0hMRU4gICAgICAgICAgICAgICAgICAoMTQgKyBFVEhfUEFEX1NJWkUpCisjZGVmaW5lIFBCVUZfTElOS19FTkNBUFNVTEFUSU9OX0hMRU4gICAgMAorI2RlZmluZSBQQlVGX1BPT0xfQlVGU0laRSAgICAgICAgICAgICAgIExXSVBfTUVNX0FMSUdOX1NJWkUoVENQX01TUys0MCtQQlVGX0xJTktfRU5DQVBTVUxBVElPTl9ITEVOK1BCVUZfTElOS19ITEVOKQorI2RlZmluZSBMV0lQX1BCVUZfUkVGX1QgICAgICAgICAgICAgICAgIHU4X3QKKyNkZWZpbmUgTFdJUF9TSU5HTEVfTkVUSUYgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfSE9TVE5BTUUgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0FQSSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9TVEFUVVNfQ0FMTEJBQ0sgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfRVhUX1NUQVRVU19DQUxMQkFDSyAgMAorI2RlZmluZSBMV0lQX05FVElGX0xJTktfQ0FMTEJBQ0sgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9SRU1PVkVfQ0FMTEJBQ0sgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfSFdBRERSSElOVCAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX1RYX1NJTkdMRV9QQlVGICAgICAgIDAKKyNkZWZpbmUgTFdJUF9OVU1fTkVUSUZfQ0xJRU5UX0RBVEEgICAgICAwCisjZGVmaW5lIExXSVBfSEFWRV9MT09QSUYgICAgICAgICAgICAgICAgKExXSVBfTkVUSUZfTE9PUEJBQ0sgJiYgIUxXSVBfU0lOR0xFX05FVElGKQorI2RlZmluZSBMV0lQX0xPT1BJRl9NVUxUSUNBU1QgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9MT09QQkFDSyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTE9PUEJBQ0tfTUFYX1BCVUZTICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0xPT1BCQUNLX01VTFRJVEhSRUFESU5HICAgICghTk9fU1lTKQorLyojZGVmaW5lIFRDUElQX1RIUkVBRF9OQU1FICAgICAgICAgICAgICAgInRjcGlwX3RocmVhZCIKKyNkZWZpbmUgVENQSVBfVEhSRUFEX1NUQUNLU0laRSAgICAgICAgICAwCisjZGVmaW5lIFRDUElQX1RIUkVBRF9QUklPICAgICAgICAgICAgICAgMQorI2RlZmluZSBUQ1BJUF9NQk9YX1NJWkUgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BJUF9USFJFQURfQUxJVkUoKQorI2RlZmluZSBTTElQSUZfVEhSRUFEX05BTUUgICAgICAgICAgICAgICJzbGlwaWZfbG9vcCIKKyNkZWZpbmUgU0xJUElGX1RIUkVBRF9TVEFDS1NJWkUgICAgICAgICAwCisjZGVmaW5lIFNMSVBJRl9USFJFQURfUFJJTyAgICAgICAgICAgICAgMQorI2RlZmluZSBERUZBVUxUX1RIUkVBRF9OQU1FICAgICAgICAgICAgICJsd0lQIgorI2RlZmluZSBERUZBVUxUX1RIUkVBRF9TVEFDS1NJWkUgICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9USFJFQURfUFJJTyAgICAgICAgICAgICAxCisjZGVmaW5lIERFRkFVTFRfUkFXX1JFQ1ZNQk9YX1NJWkUgICAgICAgMAorI2RlZmluZSBERUZBVUxUX1VEUF9SRUNWTUJPWF9TSVpFICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9UQ1BfUkVDVk1CT1hfU0laRSAgICAgICAwCisjZGVmaW5lIERFRkFVTFRfQUNDRVBUTUJPWF9TSVpFICAgICAgICAgMCovCisjZGVmaW5lIExXSVBfTkVUQ09OTiAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUElQX1RJTUVPVVQgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRDT05OX1NFTV9QRVJfVEhSRUFEICAgICAwCisjZGVmaW5lIExXSVBfTkVUQ09OTl9GVUxMRFVQTEVYICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPQ0tFVCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9DT01QQVRfU09DS0VUUyAgICAgICAgICAgICAxIC8qIDAuLjIgKi8KKyNkZWZpbmUgTFdJUF9QT1NJWF9TT0NLRVRTX0lPX05BTUVTICAgICAxCisjZGVmaW5lIExXSVBfU09DS0VUX09GRlNFVCAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUF9LRUVQQUxJVkUgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT19TTkRUSU1FTyAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fUkNWVElNRU8gICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPX1NORFJDVlRJTUVPX05PTlNUQU5EQVJEIDAKKyNkZWZpbmUgTFdJUF9TT19SQ1ZCVUYgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fTElOR0VSICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSRUNWX0JVRlNJWkVfREVGQVVMVCAgICAgICAgICAgIElOVF9NQVgKKyNkZWZpbmUgTFdJUF9UQ1BfQ0xPU0VfVElNRU9VVF9NU19ERUZBVUxUIDIwMDAwCisjZGVmaW5lIFNPX1JFVVNFICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBTT19SRVVTRV9SWFRPQUxMICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9GSU9OUkVBRF9MSU5VWE1PREUgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09DS0VUX1NFTEVDVCAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1NPQ0tFVF9QT0xMICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU1RBVFNfRElTUExBWSAgICAgICAgICAgICAgMAorI2RlZmluZSBMSU5LX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgRVRIQVJQX1NUQVRTICAgICAgICAgICAgICAgICAgICAoTFdJUF9BUlApCisjZGVmaW5lIElQX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJUEZSQUdfU1RBVFMgICAgICAgICAgICAgICAgICAgIChJUF9SRUFTU0VNQkxZIHx8IElQX0ZSQUcpCisjZGVmaW5lIElDTVBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJR01QX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lHTVApCisjZGVmaW5lIFVEUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKExXSVBfVURQKQorI2RlZmluZSBUQ1BfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX1RDUCkKKyNkZWZpbmUgTUVNX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoKE1FTV9MSUJDX01BTExPQyA9PSAwKSAmJiAoTUVNX1VTRV9QT09MUyA9PSAwKSkKKyNkZWZpbmUgTUVNUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAoTUVNUF9NRU1fTUFMTE9DID09IDApCisjZGVmaW5lIFNZU19TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKE5PX1NZUyA9PSAwKQorI2RlZmluZSBJUDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIElDTVA2X1NUQVRTICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiBMV0lQX0lDTVA2KQorI2RlZmluZSBJUDZfRlJBR19TVEFUUyAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYgJiYgKExXSVBfSVBWNl9GUkFHIHx8IExXSVBfSVBWNl9SRUFTUykpCisjZGVmaW5lIE1MRDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiBMV0lQX0lQVjZfTUxEKQorI2RlZmluZSBORDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIE1JQjJfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0NIRUNLU1VNX0NUUkxfUEVSX05FVElGICAgIDAKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX0lQICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9VRFAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9HRU5fVENQICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX0lDTVAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9JQ01QNiAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19JUCAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfVURQICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0NIRUNLX1RDUCAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19JQ01QICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfSUNNUDYgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfQ0hFQ0tTVU1fT05fQ09QWSAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjYgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBWNl9SRUFTU19NQVhBR0UgICAgICAgICAgICAgICA2MAorI2RlZmluZSBMV0lQX0lQVjZfU0NPUEVTICAgICAgICAgICAgICAgIChMV0lQX0lQVjYgJiYgIUxXSVBfU0lOR0xFX05FVElGKQorI2RlZmluZSBMV0lQX0lQVjZfU0NPUEVTX0RFQlVHICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X05VTV9BRERSRVNTRVMgICAgICAgICAzCisjZGVmaW5lIExXSVBfSVBWNl9GT1JXQVJEICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfRlJBRyAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9JUFY2X1JFQVNTICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBMV0lQX0lQVjZfU0VORF9ST1VURVJfU09MSUNJVCAgIDEKKyNkZWZpbmUgTFdJUF9JUFY2X0FVVE9DT05GSUcgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBMV0lQX0lQVjZfQUREUkVTU19MSUZFVElNRVMgICAgIChMV0lQX0lQVjZfQVVUT0NPTkZJRykKKyNkZWZpbmUgTFdJUF9JUFY2X0RVUF9ERVRFQ1RfQVRURU1QVFMgICAxCisjZGVmaW5lIExXSVBfSUNNUDYgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTFdJUF9JQ01QNl9EQVRBU0laRSAgICAgICAgICAgICA4CisjZGVmaW5lIExXSVBfSUNNUDZfSEwgICAgICAgICAgICAgICAgICAgMjU1CisjZGVmaW5lIExXSVBfSVBWNl9NTEQgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTUVNUF9OVU1fTUxENl9HUk9VUCAgICAgICAgICAgICA0CisjZGVmaW5lIExXSVBfTkQ2X1FVRVVFSU5HICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTUVNUF9OVU1fTkQ2X1FVRVVFICAgICAgICAgICAgICAyMAorI2RlZmluZSBMV0lQX05ENl9OVU1fTkVJR0hCT1JTICAgICAgICAgIDEwCisjZGVmaW5lIExXSVBfTkQ2X05VTV9ERVNUSU5BVElPTlMgICAgICAgMTAKKyNkZWZpbmUgTFdJUF9ORDZfTlVNX1BSRUZJWEVTICAgICAgICAgICA1CisjZGVmaW5lIExXSVBfTkQ2X05VTV9ST1VURVJTICAgICAgICAgICAgMworI2RlZmluZSBMV0lQX05ENl9NQVhfTVVMVElDQVNUX1NPTElDSVQgIDMKKyNkZWZpbmUgTFdJUF9ORDZfTUFYX1VOSUNBU1RfU09MSUNJVCAgICAzCisjZGVmaW5lIExXSVBfTkQ2X01BWF9BTllDQVNUX0RFTEFZX1RJTUUgMTAwMAorI2RlZmluZSBMV0lQX05ENl9NQVhfTkVJR0hCT1JfQURWRVJUSVNFTUVOVCAgMworI2RlZmluZSBMV0lQX05ENl9SRUFDSEFCTEVfVElNRSAgICAgICAgIDMwMDAwCisjZGVmaW5lIExXSVBfTkQ2X1JFVFJBTlNfVElNRVIgICAgICAgICAgMTAwMAorI2RlZmluZSBMV0lQX05ENl9ERUxBWV9GSVJTVF9QUk9CRV9USU1FIDUwMDAKKyNkZWZpbmUgTFdJUF9ORDZfQUxMT1dfUkFfVVBEQVRFUyAgICAgICAxCisjZGVmaW5lIExXSVBfTkQ2X1RDUF9SRUFDSEFCSUxJVFlfSElOVFMgMQorI2RlZmluZSBMV0lQX05ENl9SRE5TU19NQVhfRE5TX1NFUlZFUlMgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X0RIQ1A2ICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNl9ESENQNl9TVEFURUZVTCAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfREhDUDZfU1RBVEVMRVNTICAgICAgIExXSVBfSVBWNl9ESENQNgorI2RlZmluZSBMV0lQX0RIQ1A2X0dFVF9OVFBfU1JWICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQNl9NQVhfTlRQX1NFUlZFUlMgICAgICAxCisjZGVmaW5lIExXSVBfREhDUDZfTUFYX0ROU19TRVJWRVJTICAgICAgRE5TX01BWF9TRVJWRVJTCisKKy8qIFRPRE86IGNoZWNrIGhvb2tzICovCisKKyNkZWZpbmUgTFdJUF9EQkdfTUlOX0xFVkVMICAgICAgICAgICAgICBMV0lQX0RCR19MRVZFTF9BTEwKKyNkZWZpbmUgTFdJUF9EQkdfVFlQRVNfT04gICAgICAgICAgICAgICBMV0lQX0RCR19PTgorI2RlZmluZSBFVEhBUlBfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBORVRJRl9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBQQlVGX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBUElfTElCX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBUElfTVNHX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTT0NLRVRTX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJQ01QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJR01QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJTkVUX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUF9SRUFTU19ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBSQVdfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBNRU1fREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBNRU1QX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTWVNfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUSU1FUlNfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfSU5QVVRfREVCVUcgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfRlJfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUlRPX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfQ1dORF9ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfV05EX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfT1VUUFVUX0RFQlVHICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUlNUX0RFQlVHICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUUxFTl9ERUJVRyAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBVRFBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BJUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTTElQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBESENQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBVVRPSVBfREVCVUcgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBETlNfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUDZfREVCVUcgICAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBESENQNl9ERUJVRyAgICAgICAgICAgICAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBMV0lQX1RFU1RNT0RFICAgICAgICAgICAgICAgICAgIDAKKworI2RlZmluZSBMV0lQX1BFUkYgICAgICAgICAgICAgICAgICAgICAgIDAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub3N5c19pcHY0LmggYi9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfbm9zeXNfaXB2NC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNGQ3OWIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3RfY29uZmlncy9vcHRfbm9zeXNfaXB2NC5oCkBAIC0wLDAgKzEsMjk1IEBACisvKiB0ZXN0IGFuIGx3aXBvcHRzLmggZmlsZSB3aXRoIGRlZmF1bHQgY29udGVudHMgKi8KKyNkZWZpbmUgTk9fU1lTICAgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE5PX1NZU19OT19USU1FUlMgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RJTUVSUyAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9USU1FUlNfQ1VTVE9NICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTVBVX0NPTVBBVElCTEUgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUElQX0NPUkVfTE9DS0lORyAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkdfSU5QVVQgICAwCisjZGVmaW5lIFNZU19MSUdIVFdFSUdIVF9QUk9UICAgICAgICAgICAgMQorI2RlZmluZSBNRU1fTElCQ19NQUxMT0MgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNUF9NRU1fTUFMTE9DICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTVBfTUVNX0lOSVQgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fQUxJR05NRU5UICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTUVNX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAxNjAwCisjZGVmaW5lIE1FTVBfT1ZFUkZMT1dfQ0hFQ0sgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1QX1NBTklUWV9DSEVDSyAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX09WRVJGTE9XX0NIRUNLICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTV9TQU5JVFlfQ0hFQ0sgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fVVNFX1BPT0xTICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX1VTRV9QT09MU19UUllfQklHR0VSX1BPT0wgICAwCisjZGVmaW5lIE1FTVBfVVNFX0NVU1RPTV9QT09MUyAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0FMTE9XX01FTV9GUkVFX0ZST01fT1RIRVJfQ09OVEVYVCAwCisvKiNkZWZpbmUgTUVNUF9OVU1fUEJVRiAgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9SQVdfUENCICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgTUVNUF9OVU1fVURQX1BDQiAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1RDUF9QQ0IgICAgICAgICAgICAgICAgNQorI2RlZmluZSBNRU1QX05VTV9UQ1BfUENCX0xJU1RFTiAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fVENQX1NFRyAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9BTFRDUF9QQ0IgICAgICAgICAgICAgIE1FTVBfTlVNX1RDUF9QQ0IKKyNkZWZpbmUgTUVNUF9OVU1fUkVBU1NEQVRBICAgICAgICAgICAgICA1CisjZGVmaW5lIE1FTVBfTlVNX0ZSQUdfUEJVRiAgICAgICAgICAgICAgMTUKKyNkZWZpbmUgTUVNUF9OVU1fQVJQX1FVRVVFICAgICAgICAgICAgICAzMAorI2RlZmluZSBNRU1QX05VTV9JR01QX0dST1VQICAgICAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fU1lTX1RJTUVPVVQgICAgICAgICAgICAoTFdJUF9OVU1fU1lTX1RJTUVPVVRfSU5URVJOQUwgKyAyKQorI2RlZmluZSBNRU1QX05VTV9ORVRCVUYgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgTUVNUF9OVU1fTkVUQ09OTiAgICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1NFTEVDVF9DQiAgICAgICAgICAgICAgNAorI2RlZmluZSBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJICAgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fVENQSVBfTVNHX0lOUEtUICAgICAgICA4CisjZGVmaW5lIE1FTVBfTlVNX05FVERCICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBNRU1QX05VTV9MT0NBTEhPU1RMSVNUICAgICAgICAgIDEKKyNkZWZpbmUgUEJVRl9QT09MX1NJWkUgICAgICAgICAgICAgICAgICAxNgorI2RlZmluZSBNRU1QX05VTV9BUElfTVNHICAgICAgICAgICAgICAgIE1FTVBfTlVNX1RDUElQX01TR19BUEkKKyNkZWZpbmUgTUVNUF9OVU1fRE5TX0FQSV9NU0cgICAgICAgICAgICBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJCisjZGVmaW5lIE1FTVBfTlVNX1NPQ0tFVF9TRVRHRVRTT0NLT1BUX0RBVEEgTUVNUF9OVU1fVENQSVBfTVNHX0FQSQorI2RlZmluZSBNRU1QX05VTV9ORVRJRkFQSV9NU0cgICAgICAgICAgIE1FTVBfTlVNX1RDUElQX01TR19BUEkqLworI2RlZmluZSBMV0lQX0FSUCAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQVJQX1RBQkxFX1NJWkUgICAgICAgICAgICAgICAgICAxMAorI2RlZmluZSBBUlBfTUFYQUdFICAgICAgICAgICAgICAgICAgICAgIDMwMAorI2RlZmluZSBBUlBfUVVFVUVJTkcgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgQVJQX1FVRVVFX0xFTiAgICAgICAgICAgICAgICAgICAzCisjZGVmaW5lIEVUSEFSUF9TVVBQT1JUX1ZMQU4gICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0VUSEVSTkVUICAgICAgICAgICAgICAgICAgIExXSVBfQVJQCisjZGVmaW5lIEVUSF9QQURfU0laRSAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBFVEhBUlBfU1VQUE9SVF9TVEFUSUNfRU5UUklFUyAgIDAKKyNkZWZpbmUgRVRIQVJQX1RBQkxFX01BVENIX05FVElGICAgICAgICAhTFdJUF9TSU5HTEVfTkVUSUYKKyNkZWZpbmUgTFdJUF9JUFY0ICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQX0ZPUldBUkQgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJUF9SRUFTU0VNQkxZICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBfRlJBRyAgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQX09QVElPTlNfQUxMT1dFRCAgICAgICAgICAgICAgMQorI2RlZmluZSBJUF9SRUFTU19NQVhBR0UgICAgICAgICAgICAgICAgIDE1CisjZGVmaW5lIElQX1JFQVNTX01BWF9QQlVGUyAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgSVBfREVGQVVMVF9UVEwgICAgICAgICAgICAgICAgICAyNTUKKyNkZWZpbmUgSVBfU09GX0JST0FEQ0FTVCAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElQX1NPRl9CUk9BRENBU1RfUkVDViAgICAgICAgICAgMAorI2RlZmluZSBJUF9GT1JXQVJEX0FMTE9XX1RYX09OX1JYX05FVElGIDAKKyNkZWZpbmUgTFdJUF9JQ01QICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElDTVBfVFRMICAgICAgICAgICAgICAgICAgICAgICAgKElQX0RFRkFVTFRfVFRMKQorI2RlZmluZSBMV0lQX0JST0FEQ0FTVF9QSU5HICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9NVUxUSUNBU1RfUElORyAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfUkFXICAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBSQVdfVFRMICAgICAgICAgICAgICAgICAgICAgICAgIChJUF9ERUZBVUxUX1RUTCkKKyNkZWZpbmUgTFdJUF9ESENQICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfREhDUF9DSEVDS19MSU5LX1VQICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfQk9PVFBfRklMRSAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX0dFVF9OVFBfU1JWICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9NQVhfTlRQX1NFUlZFUlMgICAgICAgMQorI2RlZmluZSBMV0lQX0RIQ1BfTUFYX0ROU19TRVJWRVJTICAgICAgIEROU19NQVhfU0VSVkVSUworI2RlZmluZSBMV0lQX0FVVE9JUCAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX0FVVE9JUF9DT09QICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9BVVRPSVBfQ09PUF9UUklFUyAgICAgOQorI2RlZmluZSBMV0lQX01JQjJfQ0FMTEJBQ0tTICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9NVUxUSUNBU1RfVFhfT1BUSU9OUyAgICAgICAoKExXSVBfSUdNUCB8fCBMV0lQX0lQVjZfTUxEKSAmJiAoTFdJUF9VRFAgfHwgTFdJUF9SQVcpKQorI2RlZmluZSBMV0lQX0lHTVAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ETlMgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEROU19UQUJMRV9TSVpFICAgICAgICAgICAgICAgICAgNAorI2RlZmluZSBETlNfTUFYX05BTUVfTEVOR1RIICAgICAgICAgICAgIDI1NgorI2RlZmluZSBETlNfTUFYX1NFUlZFUlMgICAgICAgICAgICAgICAgIDIKKyNkZWZpbmUgRE5TX01BWF9SRVRSSUVTICAgICAgICAgICAgICAgICA0CisjZGVmaW5lIEROU19ET0VTX05BTUVfQ0hFQ0sgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX0ROU19TRUNVUkUgKExXSVBfRE5TX1NFQ1VSRV9SQU5EX1hJRCB8IExXSVBfRE5TX1NFQ1VSRV9OT19NVUxUSVBMRV9PVVRTVEFORElORyB8IExXSVBfRE5TX1NFQ1VSRV9SQU5EX1NSQ19QT1JUKQorI2RlZmluZSBETlNfTE9DQUxfSE9TVExJU1QgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE5TX0xPQ0FMX0hPU1RMSVNUX0lTX0RZTkFNSUMgICAwCisjZGVmaW5lIExXSVBfRE5TX1NVUFBPUlRfTUROU19RVUVSSUVTICAgMAorI2RlZmluZSBMV0lQX1VEUCAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9VRFBMSVRFICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFVEUF9UVEwgICAgICAgICAgICAgICAgICAgICAgICAgKElQX0RFRkFVTFRfVFRMKQorI2RlZmluZSBMV0lQX05FVEJVRl9SRUNWSU5GTyAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1AgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIFRDUF9UVEwgICAgICAgICAgICAgICAgICAgICAgICAgKElQX0RFRkFVTFRfVFRMKQorI2RlZmluZSBUQ1BfV05EICAgICAgICAgICAgICAgICAgICAgICAgICg0ICogVENQX01TUykKKyNkZWZpbmUgVENQX01BWFJUWCAgICAgICAgICAgICAgICAgICAgICAxMgorI2RlZmluZSBUQ1BfU1lOTUFYUlRYICAgICAgICAgICAgICAgICAgIDYKKyNkZWZpbmUgVENQX1FVRVVFX09PU0VRICAgICAgICAgICAgICAgICAoTFdJUF9UQ1ApCisjZGVmaW5lIExXSVBfVENQX1NBQ0tfT1VUICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUF9NQVhfU0FDS19OVU0gICAgICAgICAgIDQKKyNkZWZpbmUgVENQX01TUyAgICAgICAgICAgICAgICAgICAgICAgICA1MzYKKyNkZWZpbmUgVENQX0NBTENVTEFURV9FRkZfU0VORF9NU1MgICAgICAxCisjZGVmaW5lIFRDUF9TTkRfQlVGICAgICAgICAgICAgICAgICAgICAgKDIgKiBUQ1BfTVNTKQorI2RlZmluZSBUQ1BfU05EX1FVRVVFTEVOICAgICAgICAgICAgICAgICgoNCAqIChUQ1BfU05EX0JVRikgKyAoVENQX01TUyAtIDEpKS8oVENQX01TUykpCisjZGVmaW5lIFRDUF9TTkRMT1dBVCAgICAgICAgICAgICAgICAgICAgTFdJUF9NSU4oTFdJUF9NQVgoKChUQ1BfU05EX0JVRikvMiksICgyICogVENQX01TUykgKyAxKSwgKFRDUF9TTkRfQlVGKSAtIDEpCisjZGVmaW5lIFRDUF9TTkRRVUVVRUxPV0FUICAgICAgICAgICAgICAgTFdJUF9NQVgoKChUQ1BfU05EX1FVRVVFTEVOKS8yKSwgNSkKKyNkZWZpbmUgVENQX09PU0VRX01BWF9CWVRFUyAgICAgICAgICAgICAwCisjZGVmaW5lIFRDUF9PT1NFUV9CWVRFU19MSU1JVChwY2IpICAgICAgVENQX09PU0VRX01BWF9CWVRFUworI2RlZmluZSBUQ1BfT09TRVFfTUFYX1BCVUZTICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX09PU0VRX1BCVUZTX0xJTUlUKHBjYikgICAgICBUQ1BfT09TRVFfTUFYX1BCVUZTCisjZGVmaW5lIFRDUF9MSVNURU5fQkFDS0xPRyAgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfREVGQVVMVF9MSVNURU5fQkFDS0xPRyAgICAgIDB4ZmYKKyNkZWZpbmUgVENQX09WRVJTSVpFICAgICAgICAgICAgICAgICAgICBUQ1BfTVNTCisjZGVmaW5lIExXSVBfVENQX1RJTUVTVEFNUFMgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfV05EX1VQREFURV9USFJFU0hPTEQgICAgICAgIExXSVBfTUlOKChUQ1BfV05EIC8gNCksIChUQ1BfTVNTICogNCkpCisjZGVmaW5lIExXSVBfRVZFTlRfQVBJICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0NBTExCQUNLX0FQSSAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9XTkRfU0NBTEUgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFRDUF9SQ1ZfU0NBTEUgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUF9QQ0JfTlVNX0VYVF9BUkdTICAgICAgIDAKKyNkZWZpbmUgTFdJUF9BTFRDUCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfQUxUQ1BfVExTICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQlVGX0xJTktfSExFTiAgICAgICAgICAgICAgICAgICgxNCArIEVUSF9QQURfU0laRSkKKyNkZWZpbmUgUEJVRl9MSU5LX0VOQ0FQU1VMQVRJT05fSExFTiAgICAwCisjZGVmaW5lIFBCVUZfUE9PTF9CVUZTSVpFICAgICAgICAgICAgICAgTFdJUF9NRU1fQUxJR05fU0laRShUQ1BfTVNTKzQwK1BCVUZfTElOS19FTkNBUFNVTEFUSU9OX0hMRU4rUEJVRl9MSU5LX0hMRU4pCisjZGVmaW5lIExXSVBfUEJVRl9SRUZfVCAgICAgICAgICAgICAgICAgdThfdAorI2RlZmluZSBMV0lQX1NJTkdMRV9ORVRJRiAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9IT1NUTkFNRSAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfQVBJICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX1NUQVRVU19DQUxMQkFDSyAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9FWFRfU1RBVFVTX0NBTExCQUNLICAwCisjZGVmaW5lIExXSVBfTkVUSUZfTElOS19DQUxMQkFDSyAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX1JFTU9WRV9DQUxMQkFDSyAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9IV0FERFJISU5UICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfVFhfU0lOR0xFX1BCVUYgICAgICAgMAorI2RlZmluZSBMV0lQX05VTV9ORVRJRl9DTElFTlRfREFUQSAgICAgIDAKKyNkZWZpbmUgTFdJUF9IQVZFX0xPT1BJRiAgICAgICAgICAgICAgICAoTFdJUF9ORVRJRl9MT09QQkFDSyAmJiAhTFdJUF9TSU5HTEVfTkVUSUYpCisjZGVmaW5lIExXSVBfTE9PUElGX01VTFRJQ0FTVCAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0xPT1BCQUNLICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9MT09QQkFDS19NQVhfUEJVRlMgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfTE9PUEJBQ0tfTVVMVElUSFJFQURJTkcgICAgKCFOT19TWVMpCisvKiNkZWZpbmUgVENQSVBfVEhSRUFEX05BTUUgICAgICAgICAgICAgICAidGNwaXBfdGhyZWFkIgorI2RlZmluZSBUQ1BJUF9USFJFQURfU1RBQ0tTSVpFICAgICAgICAgIDAKKyNkZWZpbmUgVENQSVBfVEhSRUFEX1BSSU8gICAgICAgICAgICAgICAxCisjZGVmaW5lIFRDUElQX01CT1hfU0laRSAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUElQX1RIUkVBRF9BTElWRSgpCisjZGVmaW5lIFNMSVBJRl9USFJFQURfTkFNRSAgICAgICAgICAgICAgInNsaXBpZl9sb29wIgorI2RlZmluZSBTTElQSUZfVEhSRUFEX1NUQUNLU0laRSAgICAgICAgIDAKKyNkZWZpbmUgU0xJUElGX1RIUkVBRF9QUklPICAgICAgICAgICAgICAxCisjZGVmaW5lIERFRkFVTFRfVEhSRUFEX05BTUUgICAgICAgICAgICAgImx3SVAiCisjZGVmaW5lIERFRkFVTFRfVEhSRUFEX1NUQUNLU0laRSAgICAgICAgMAorI2RlZmluZSBERUZBVUxUX1RIUkVBRF9QUklPICAgICAgICAgICAgIDEKKyNkZWZpbmUgREVGQVVMVF9SQVdfUkVDVk1CT1hfU0laRSAgICAgICAwCisjZGVmaW5lIERFRkFVTFRfVURQX1JFQ1ZNQk9YX1NJWkUgICAgICAgMAorI2RlZmluZSBERUZBVUxUX1RDUF9SRUNWTUJPWF9TSVpFICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9BQ0NFUFRNQk9YX1NJWkUgICAgICAgICAwKi8KKyNkZWZpbmUgTFdJUF9ORVRDT05OICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQSVBfVElNRU9VVCAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVENPTk5fU0VNX1BFUl9USFJFQUQgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRDT05OX0ZVTExEVVBMRVggICAgICAgICAwCisjZGVmaW5lIExXSVBfU09DS0VUICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0NPTVBBVF9TT0NLRVRTICAgICAgICAgICAgIDEgLyogMC4uMiAqLworI2RlZmluZSBMV0lQX1BPU0lYX1NPQ0tFVFNfSU9fTkFNRVMgICAgIDEKKyNkZWZpbmUgTFdJUF9TT0NLRVRfT0ZGU0VUICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQX0tFRVBBTElWRSAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPX1NORFRJTUVPICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT19SQ1ZUSU1FTyAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fU05EUkNWVElNRU9fTk9OU1RBTkRBUkQgMAorI2RlZmluZSBMV0lQX1NPX1JDVkJVRiAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT19MSU5HRVIgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJFQ1ZfQlVGU0laRV9ERUZBVUxUICAgICAgICAgICAgSU5UX01BWAorI2RlZmluZSBMV0lQX1RDUF9DTE9TRV9USU1FT1VUX01TX0RFRkFVTFQgMjAwMDAKKyNkZWZpbmUgU09fUkVVU0UgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFNPX1JFVVNFX1JYVE9BTEwgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0ZJT05SRUFEX0xJTlVYTU9ERSAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT0NLRVRfU0VMRUNUICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU09DS0VUX1BPTEwgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9TVEFUU19ESVNQTEFZICAgICAgICAgICAgICAwCisjZGVmaW5lIExJTktfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBFVEhBUlBfU1RBVFMgICAgICAgICAgICAgICAgICAgIChMV0lQX0FSUCkKKyNkZWZpbmUgSVBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQRlJBR19TVEFUUyAgICAgICAgICAgICAgICAgICAgKElQX1JFQVNTRU1CTFkgfHwgSVBfRlJBRykKKyNkZWZpbmUgSUNNUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElHTVBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSUdNUCkKKyNkZWZpbmUgVURQX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoTFdJUF9VRFApCisjZGVmaW5lIFRDUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKExXSVBfVENQKQorI2RlZmluZSBNRU1fU1RBVFMgICAgICAgICAgICAgICAgICAgICAgICgoTUVNX0xJQkNfTUFMTE9DID09IDApICYmIChNRU1fVVNFX1BPT0xTID09IDApKQorI2RlZmluZSBNRU1QX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIChNRU1QX01FTV9NQUxMT0MgPT0gMCkKKyNkZWZpbmUgU1lTX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoTk9fU1lTID09IDApCisjZGVmaW5lIElQNl9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgSUNNUDZfU1RBVFMgICAgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2ICYmIExXSVBfSUNNUDYpCisjZGVmaW5lIElQNl9GUkFHX1NUQVRTICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiAoTFdJUF9JUFY2X0ZSQUcgfHwgTFdJUF9JUFY2X1JFQVNTKSkKKyNkZWZpbmUgTUxENl9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2ICYmIExXSVBfSVBWNl9NTEQpCisjZGVmaW5lIE5ENl9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTUlCMl9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfQ0hFQ0tTVU1fQ1RSTF9QRVJfTkVUSUYgICAgMAorI2RlZmluZSBDSEVDS1NVTV9HRU5fSVAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX1VEUCAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9UQ1AgICAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9HRU5fSUNNUCAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX0lDTVA2ICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0NIRUNLX0lQICAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19VRFAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfVENQICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0NIRUNLX0lDTVAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19JQ01QNiAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9DSEVDS1NVTV9PTl9DT1BZICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNiAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBJUFY2X1JFQVNTX01BWEFHRSAgICAgICAgICAgICAgIDYwCisjZGVmaW5lIExXSVBfSVBWNl9TQ09QRVMgICAgICAgICAgICAgICAgKExXSVBfSVBWNiAmJiAhTFdJUF9TSU5HTEVfTkVUSUYpCisjZGVmaW5lIExXSVBfSVBWNl9TQ09QRVNfREVCVUcgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfTlVNX0FERFJFU1NFUyAgICAgICAgIDMKKyNkZWZpbmUgTFdJUF9JUFY2X0ZPUldBUkQgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNl9GUkFHICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX0lQVjZfUkVBU1MgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIExXSVBfSVBWNl9TRU5EX1JPVVRFUl9TT0xJQ0lUICAgMQorI2RlZmluZSBMV0lQX0lQVjZfQVVUT0NPTkZJRyAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIExXSVBfSVBWNl9BRERSRVNTX0xJRkVUSU1FUyAgICAgKExXSVBfSVBWNl9BVVRPQ09ORklHKQorI2RlZmluZSBMV0lQX0lQVjZfRFVQX0RFVEVDVF9BVFRFTVBUUyAgIDEKKyNkZWZpbmUgTFdJUF9JQ01QNiAgICAgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBMV0lQX0lDTVA2X0RBVEFTSVpFICAgICAgICAgICAgIDgKKyNkZWZpbmUgTFdJUF9JQ01QNl9ITCAgICAgICAgICAgICAgICAgICAyNTUKKyNkZWZpbmUgTFdJUF9JUFY2X01MRCAgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBNRU1QX05VTV9NTEQ2X0dST1VQICAgICAgICAgICAgIDQKKyNkZWZpbmUgTFdJUF9ORDZfUVVFVUVJTkcgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBNRU1QX05VTV9ORDZfUVVFVUUgICAgICAgICAgICAgIDIwCisjZGVmaW5lIExXSVBfTkQ2X05VTV9ORUlHSEJPUlMgICAgICAgICAgMTAKKyNkZWZpbmUgTFdJUF9ORDZfTlVNX0RFU1RJTkFUSU9OUyAgICAgICAxMAorI2RlZmluZSBMV0lQX05ENl9OVU1fUFJFRklYRVMgICAgICAgICAgIDUKKyNkZWZpbmUgTFdJUF9ORDZfTlVNX1JPVVRFUlMgICAgICAgICAgICAzCisjZGVmaW5lIExXSVBfTkQ2X01BWF9NVUxUSUNBU1RfU09MSUNJVCAgMworI2RlZmluZSBMV0lQX05ENl9NQVhfVU5JQ0FTVF9TT0xJQ0lUICAgIDMKKyNkZWZpbmUgTFdJUF9ORDZfTUFYX0FOWUNBU1RfREVMQVlfVElNRSAxMDAwCisjZGVmaW5lIExXSVBfTkQ2X01BWF9ORUlHSEJPUl9BRFZFUlRJU0VNRU5UICAzCisjZGVmaW5lIExXSVBfTkQ2X1JFQUNIQUJMRV9USU1FICAgICAgICAgMzAwMDAKKyNkZWZpbmUgTFdJUF9ORDZfUkVUUkFOU19USU1FUiAgICAgICAgICAxMDAwCisjZGVmaW5lIExXSVBfTkQ2X0RFTEFZX0ZJUlNUX1BST0JFX1RJTUUgNTAwMAorI2RlZmluZSBMV0lQX05ENl9BTExPV19SQV9VUERBVEVTICAgICAgIDEKKyNkZWZpbmUgTFdJUF9ORDZfVENQX1JFQUNIQUJJTElUWV9ISU5UUyAxCisjZGVmaW5lIExXSVBfTkQ2X1JETlNTX01BWF9ETlNfU0VSVkVSUyAgMAorI2RlZmluZSBMV0lQX0lQVjZfREhDUDYgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X0RIQ1A2X1NUQVRFRlVMICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNl9ESENQNl9TVEFURUxFU1MgICAgICAgTFdJUF9JUFY2X0RIQ1A2CisjZGVmaW5lIExXSVBfREhDUDZfR0VUX05UUF9TUlYgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1A2X01BWF9OVFBfU0VSVkVSUyAgICAgIDEKKyNkZWZpbmUgTFdJUF9ESENQNl9NQVhfRE5TX1NFUlZFUlMgICAgICBETlNfTUFYX1NFUlZFUlMKKworLyogVE9ETzogY2hlY2sgaG9va3MgKi8KKworI2RlZmluZSBMV0lQX0RCR19NSU5fTEVWRUwgICAgICAgICAgICAgIExXSVBfREJHX0xFVkVMX0FMTAorI2RlZmluZSBMV0lQX0RCR19UWVBFU19PTiAgICAgICAgICAgICAgIExXSVBfREJHX09OCisjZGVmaW5lIEVUSEFSUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIE5FVElGX0RFQlVHICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFBCVUZfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIEFQSV9MSUJfREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIEFQSV9NU0dfREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFNPQ0tFVFNfREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElDTVBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElHTVBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElORVRfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElQX1JFQVNTX0RFQlVHICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFJBV19ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIE1FTV9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIE1FTVBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFNZU19ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRJTUVSU19ERUJVRyAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9JTlBVVF9ERUJVRyAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9GUl9ERUJVRyAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9SVE9fREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9DV05EX0RFQlVHICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9XTkRfREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9PVVRQVVRfREVCVUcgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9SU1RfREVCVUcgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9RTEVOX0RFQlVHICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFVEUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUElQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFNMSVBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIERIQ1BfREVCVUcgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIEFVVE9JUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIEROU19ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElQNl9ERUJVRyAgICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIERIQ1A2X0RFQlVHICAgICAgICAgICAgICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIExXSVBfVEVTVE1PREUgICAgICAgICAgICAgICAgICAgMAorCisjZGVmaW5lIExXSVBfUEVSRiAgICAgICAgICAgICAgICAgICAgICAgMApkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC90ZXN0X2NvbmZpZ3Mvb3B0X25vc3lzX2lwdjYuaCBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub3N5c19pcHY2LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDAyNzM1MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdF9jb25maWdzL29wdF9ub3N5c19pcHY2LmgKQEAgLTAsMCArMSwyOTUgQEAKKy8qIHRlc3QgYW4gbHdpcG9wdHMuaCBmaWxlIHdpdGggZGVmYXVsdCBjb250ZW50cyAqLworI2RlZmluZSBOT19TWVMgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTk9fU1lTX05PX1RJTUVSUyAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVElNRVJTICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1RJTUVSU19DVVNUT00gICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9NUFVfQ09NUEFUSUJMRSAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HICAgICAgICAgMQorI2RlZmluZSBMV0lQX1RDUElQX0NPUkVfTE9DS0lOR19JTlBVVCAgIDAKKyNkZWZpbmUgU1lTX0xJR0hUV0VJR0hUX1BST1QgICAgICAgICAgICAxCisjZGVmaW5lIE1FTV9MSUJDX01BTExPQyAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1QX01FTV9NQUxMT0MgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNUF9NRU1fSU5JVCAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTV9BTElHTk1FTlQgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBNRU1fU0laRSAgICAgICAgICAgICAgICAgICAgICAgIDE2MDAKKyNkZWZpbmUgTUVNUF9PVkVSRkxPV19DSEVDSyAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTVBfU0FOSVRZX0NIRUNLICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fT1ZFUkZMT1dfQ0hFQ0sgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTUVNX1NBTklUWV9DSEVDSyAgICAgICAgICAgICAgICAwCisjZGVmaW5lIE1FTV9VU0VfUE9PTFMgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBNRU1fVVNFX1BPT0xTX1RSWV9CSUdHRVJfUE9PTCAgIDAKKyNkZWZpbmUgTUVNUF9VU0VfQ1VTVE9NX1BPT0xTICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfQUxMT1dfTUVNX0ZSRUVfRlJPTV9PVEhFUl9DT05URVhUIDAKKy8qI2RlZmluZSBNRU1QX05VTV9QQlVGICAgICAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE1FTVBfTlVNX1JBV19QQ0IgICAgICAgICAgICAgICAgNAorI2RlZmluZSBNRU1QX05VTV9VRFBfUENCICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgTUVNUF9OVU1fVENQX1BDQiAgICAgICAgICAgICAgICA1CisjZGVmaW5lIE1FTVBfTlVNX1RDUF9QQ0JfTElTVEVOICAgICAgICAgOAorI2RlZmluZSBNRU1QX05VTV9UQ1BfU0VHICAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE1FTVBfTlVNX0FMVENQX1BDQiAgICAgICAgICAgICAgTUVNUF9OVU1fVENQX1BDQgorI2RlZmluZSBNRU1QX05VTV9SRUFTU0RBVEEgICAgICAgICAgICAgIDUKKyNkZWZpbmUgTUVNUF9OVU1fRlJBR19QQlVGICAgICAgICAgICAgICAxNQorI2RlZmluZSBNRU1QX05VTV9BUlBfUVVFVUUgICAgICAgICAgICAgIDMwCisjZGVmaW5lIE1FTVBfTlVNX0lHTVBfR1JPVVAgICAgICAgICAgICAgOAorI2RlZmluZSBNRU1QX05VTV9TWVNfVElNRU9VVCAgICAgICAgICAgIChMV0lQX05VTV9TWVNfVElNRU9VVF9JTlRFUk5BTCArIDIpCisjZGVmaW5lIE1FTVBfTlVNX05FVEJVRiAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBNRU1QX05VTV9ORVRDT05OICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgTUVNUF9OVU1fU0VMRUNUX0NCICAgICAgICAgICAgICA0CisjZGVmaW5lIE1FTVBfTlVNX1RDUElQX01TR19BUEkgICAgICAgICAgOAorI2RlZmluZSBNRU1QX05VTV9UQ1BJUF9NU0dfSU5QS1QgICAgICAgIDgKKyNkZWZpbmUgTUVNUF9OVU1fTkVUREIgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIE1FTVBfTlVNX0xPQ0FMSE9TVExJU1QgICAgICAgICAgMQorI2RlZmluZSBQQlVGX1BPT0xfU0laRSAgICAgICAgICAgICAgICAgIDE2CisjZGVmaW5lIE1FTVBfTlVNX0FQSV9NU0cgICAgICAgICAgICAgICAgTUVNUF9OVU1fVENQSVBfTVNHX0FQSQorI2RlZmluZSBNRU1QX05VTV9ETlNfQVBJX01TRyAgICAgICAgICAgIE1FTVBfTlVNX1RDUElQX01TR19BUEkKKyNkZWZpbmUgTUVNUF9OVU1fU09DS0VUX1NFVEdFVFNPQ0tPUFRfREFUQSBNRU1QX05VTV9UQ1BJUF9NU0dfQVBJCisjZGVmaW5lIE1FTVBfTlVNX05FVElGQVBJX01TRyAgICAgICAgICAgTUVNUF9OVU1fVENQSVBfTVNHX0FQSSovCisjZGVmaW5lIExXSVBfQVJQICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBBUlBfVEFCTEVfU0laRSAgICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIEFSUF9NQVhBR0UgICAgICAgICAgICAgICAgICAgICAgMzAwCisjZGVmaW5lIEFSUF9RVUVVRUlORyAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBBUlBfUVVFVUVfTEVOICAgICAgICAgICAgICAgICAgIDMKKyNkZWZpbmUgRVRIQVJQX1NVUFBPUlRfVkxBTiAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfRVRIRVJORVQgICAgICAgICAgICAgICAgICAgTFdJUF9BUlAKKyNkZWZpbmUgRVRIX1BBRF9TSVpFICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIEVUSEFSUF9TVVBQT1JUX1NUQVRJQ19FTlRSSUVTICAgMAorI2RlZmluZSBFVEhBUlBfVEFCTEVfTUFUQ0hfTkVUSUYgICAgICAgICFMV0lQX1NJTkdMRV9ORVRJRgorI2RlZmluZSBMV0lQX0lQVjQgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVBfRk9SV0FSRCAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIElQX1JFQVNTRU1CTFkgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBJUF9GUkFHICAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBfT1BUSU9OU19BTExPV0VEICAgICAgICAgICAgICAxCisjZGVmaW5lIElQX1JFQVNTX01BWEFHRSAgICAgICAgICAgICAgICAgMTUKKyNkZWZpbmUgSVBfUkVBU1NfTUFYX1BCVUZTICAgICAgICAgICAgICAxMAorI2RlZmluZSBJUF9ERUZBVUxUX1RUTCAgICAgICAgICAgICAgICAgIDI1NQorI2RlZmluZSBJUF9TT0ZfQlJPQURDQVNUICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgSVBfU09GX0JST0FEQ0FTVF9SRUNWICAgICAgICAgICAwCisjZGVmaW5lIElQX0ZPUldBUkRfQUxMT1dfVFhfT05fUlhfTkVUSUYgMAorI2RlZmluZSBMV0lQX0lDTVAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSUNNUF9UVEwgICAgICAgICAgICAgICAgICAgICAgICAoSVBfREVGQVVMVF9UVEwpCisjZGVmaW5lIExXSVBfQlJPQURDQVNUX1BJTkcgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX01VTFRJQ0FTVF9QSU5HICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9SQVcgICAgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFJBV19UVEwgICAgICAgICAgICAgICAgICAgICAgICAgKElQX0RFRkFVTFRfVFRMKQorI2RlZmluZSBMV0lQX0RIQ1AgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX0NIRUNLX0xJTktfVVAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUF9CT09UUF9GSUxFICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfR0VUX05UUF9TUlYgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX01BWF9OVFBfU0VSVkVSUyAgICAgICAxCisjZGVmaW5lIExXSVBfREhDUF9NQVhfRE5TX1NFUlZFUlMgICAgICAgRE5TX01BWF9TRVJWRVJTCisjZGVmaW5lIExXSVBfQVVUT0lQICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0RIQ1BfQVVUT0lQX0NPT1AgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ESENQX0FVVE9JUF9DT09QX1RSSUVTICAgICA5CisjZGVmaW5lIExXSVBfTUlCMl9DQUxMQkFDS1MgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX01VTFRJQ0FTVF9UWF9PUFRJT05TICAgICAgICgoTFdJUF9JR01QIHx8IExXSVBfSVBWNl9NTEQpICYmIChMV0lQX1VEUCB8fCBMV0lQX1JBVykpCisjZGVmaW5lIExXSVBfSUdNUCAgICAgICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0ROUyAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgRE5TX1RBQkxFX1NJWkUgICAgICAgICAgICAgICAgICA0CisjZGVmaW5lIEROU19NQVhfTkFNRV9MRU5HVEggICAgICAgICAgICAgMjU2CisjZGVmaW5lIEROU19NQVhfU0VSVkVSUyAgICAgICAgICAgICAgICAgMgorI2RlZmluZSBETlNfTUFYX1JFVFJJRVMgICAgICAgICAgICAgICAgIDQKKyNkZWZpbmUgRE5TX0RPRVNfTkFNRV9DSEVDSyAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfRE5TX1NFQ1VSRSAoTFdJUF9ETlNfU0VDVVJFX1JBTkRfWElEIHwgTFdJUF9ETlNfU0VDVVJFX05PX01VTFRJUExFX09VVFNUQU5ESU5HIHwgTFdJUF9ETlNfU0VDVVJFX1JBTkRfU1JDX1BPUlQpCisjZGVmaW5lIEROU19MT0NBTF9IT1NUTElTVCAgICAgICAgICAgICAgMAorI2RlZmluZSBETlNfTE9DQUxfSE9TVExJU1RfSVNfRFlOQU1JQyAgIDAKKyNkZWZpbmUgTFdJUF9ETlNfU1VQUE9SVF9NRE5TX1FVRVJJRVMgICAwCisjZGVmaW5lIExXSVBfVURQICAgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1VEUExJVEUgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVURQX1RUTCAgICAgICAgICAgICAgICAgICAgICAgICAoSVBfREVGQVVMVF9UVEwpCisjZGVmaW5lIExXSVBfTkVUQlVGX1JFQ1ZJTkZPICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1RDUCAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgVENQX1RUTCAgICAgICAgICAgICAgICAgICAgICAgICAoSVBfREVGQVVMVF9UVEwpCisjZGVmaW5lIFRDUF9XTkQgICAgICAgICAgICAgICAgICAgICAgICAgKDQgKiBUQ1BfTVNTKQorI2RlZmluZSBUQ1BfTUFYUlRYICAgICAgICAgICAgICAgICAgICAgIDEyCisjZGVmaW5lIFRDUF9TWU5NQVhSVFggICAgICAgICAgICAgICAgICAgNgorI2RlZmluZSBUQ1BfUVVFVUVfT09TRVEgICAgICAgICAgICAgICAgIChMV0lQX1RDUCkKKyNkZWZpbmUgTFdJUF9UQ1BfU0FDS19PVVQgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQX01BWF9TQUNLX05VTSAgICAgICAgICAgNAorI2RlZmluZSBUQ1BfTVNTICAgICAgICAgICAgICAgICAgICAgICAgIDUzNgorI2RlZmluZSBUQ1BfQ0FMQ1VMQVRFX0VGRl9TRU5EX01TUyAgICAgIDEKKyNkZWZpbmUgVENQX1NORF9CVUYgICAgICAgICAgICAgICAgICAgICAoMiAqIFRDUF9NU1MpCisjZGVmaW5lIFRDUF9TTkRfUVVFVUVMRU4gICAgICAgICAgICAgICAgKCg0ICogKFRDUF9TTkRfQlVGKSArIChUQ1BfTVNTIC0gMSkpLyhUQ1BfTVNTKSkKKyNkZWZpbmUgVENQX1NORExPV0FUICAgICAgICAgICAgICAgICAgICBMV0lQX01JTihMV0lQX01BWCgoKFRDUF9TTkRfQlVGKS8yKSwgKDIgKiBUQ1BfTVNTKSArIDEpLCAoVENQX1NORF9CVUYpIC0gMSkKKyNkZWZpbmUgVENQX1NORFFVRVVFTE9XQVQgICAgICAgICAgICAgICBMV0lQX01BWCgoKFRDUF9TTkRfUVVFVUVMRU4pLzIpLCA1KQorI2RlZmluZSBUQ1BfT09TRVFfTUFYX0JZVEVTICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX09PU0VRX0JZVEVTX0xJTUlUKHBjYikgICAgICBUQ1BfT09TRVFfTUFYX0JZVEVTCisjZGVmaW5lIFRDUF9PT1NFUV9NQVhfUEJVRlMgICAgICAgICAgICAgMAorI2RlZmluZSBUQ1BfT09TRVFfUEJVRlNfTElNSVQocGNiKSAgICAgIFRDUF9PT1NFUV9NQVhfUEJVRlMKKyNkZWZpbmUgVENQX0xJU1RFTl9CQUNLTE9HICAgICAgICAgICAgICAwCisjZGVmaW5lIFRDUF9ERUZBVUxUX0xJU1RFTl9CQUNLTE9HICAgICAgMHhmZgorI2RlZmluZSBUQ1BfT1ZFUlNJWkUgICAgICAgICAgICAgICAgICAgIFRDUF9NU1MKKyNkZWZpbmUgTFdJUF9UQ1BfVElNRVNUQU1QUyAgICAgICAgICAgICAwCisjZGVmaW5lIFRDUF9XTkRfVVBEQVRFX1RIUkVTSE9MRCAgICAgICAgTFdJUF9NSU4oKFRDUF9XTkQgLyA0KSwgKFRDUF9NU1MgKiA0KSkKKyNkZWZpbmUgTFdJUF9FVkVOVF9BUEkgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfQ0FMTEJBQ0tfQVBJICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1dORF9TQ0FMRSAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgVENQX1JDVl9TQ0FMRSAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQX1BDQl9OVU1fRVhUX0FSR1MgICAgICAgMAorI2RlZmluZSBMV0lQX0FMVENQICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9BTFRDUF9UTFMgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIFBCVUZfTElOS19ITEVOICAgICAgICAgICAgICAgICAgKDE0ICsgRVRIX1BBRF9TSVpFKQorI2RlZmluZSBQQlVGX0xJTktfRU5DQVBTVUxBVElPTl9ITEVOICAgIDAKKyNkZWZpbmUgUEJVRl9QT09MX0JVRlNJWkUgICAgICAgICAgICAgICBMV0lQX01FTV9BTElHTl9TSVpFKFRDUF9NU1MrNDArUEJVRl9MSU5LX0VOQ0FQU1VMQVRJT05fSExFTitQQlVGX0xJTktfSExFTikKKyNkZWZpbmUgTFdJUF9QQlVGX1JFRl9UICAgICAgICAgICAgICAgICB1OF90CisjZGVmaW5lIExXSVBfU0lOR0xFX05FVElGICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0hPU1ROQU1FICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9BUEkgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfU1RBVFVTX0NBTExCQUNLICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0VYVF9TVEFUVVNfQ0FMTEJBQ0sgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9MSU5LX0NBTExCQUNLICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfUkVNT1ZFX0NBTExCQUNLICAgICAgMAorI2RlZmluZSBMV0lQX05FVElGX0hXQUREUkhJTlQgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9UWF9TSU5HTEVfUEJVRiAgICAgICAwCisjZGVmaW5lIExXSVBfTlVNX05FVElGX0NMSUVOVF9EQVRBICAgICAgMAorI2RlZmluZSBMV0lQX0hBVkVfTE9PUElGICAgICAgICAgICAgICAgIChMV0lQX05FVElGX0xPT1BCQUNLICYmICFMV0lQX1NJTkdMRV9ORVRJRikKKyNkZWZpbmUgTFdJUF9MT09QSUZfTVVMVElDQVNUICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUSUZfTE9PUEJBQ0sgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0xPT1BCQUNLX01BWF9QQlVGUyAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9ORVRJRl9MT09QQkFDS19NVUxUSVRIUkVBRElORyAgICAoIU5PX1NZUykKKy8qI2RlZmluZSBUQ1BJUF9USFJFQURfTkFNRSAgICAgICAgICAgICAgICJ0Y3BpcF90aHJlYWQiCisjZGVmaW5lIFRDUElQX1RIUkVBRF9TVEFDS1NJWkUgICAgICAgICAgMAorI2RlZmluZSBUQ1BJUF9USFJFQURfUFJJTyAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgVENQSVBfTUJPWF9TSVpFICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfVENQSVBfVEhSRUFEX0FMSVZFKCkKKyNkZWZpbmUgU0xJUElGX1RIUkVBRF9OQU1FICAgICAgICAgICAgICAic2xpcGlmX2xvb3AiCisjZGVmaW5lIFNMSVBJRl9USFJFQURfU1RBQ0tTSVpFICAgICAgICAgMAorI2RlZmluZSBTTElQSUZfVEhSRUFEX1BSSU8gICAgICAgICAgICAgIDEKKyNkZWZpbmUgREVGQVVMVF9USFJFQURfTkFNRSAgICAgICAgICAgICAibHdJUCIKKyNkZWZpbmUgREVGQVVMVF9USFJFQURfU1RBQ0tTSVpFICAgICAgICAwCisjZGVmaW5lIERFRkFVTFRfVEhSRUFEX1BSSU8gICAgICAgICAgICAgMQorI2RlZmluZSBERUZBVUxUX1JBV19SRUNWTUJPWF9TSVpFICAgICAgIDAKKyNkZWZpbmUgREVGQVVMVF9VRFBfUkVDVk1CT1hfU0laRSAgICAgICAwCisjZGVmaW5lIERFRkFVTFRfVENQX1JFQ1ZNQk9YX1NJWkUgICAgICAgMAorI2RlZmluZSBERUZBVUxUX0FDQ0VQVE1CT1hfU0laRSAgICAgICAgIDAqLworI2RlZmluZSBMV0lQX05FVENPTk4gICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BJUF9USU1FT1VUICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfTkVUQ09OTl9TRU1fUEVSX1RIUkVBRCAgICAgMAorI2RlZmluZSBMV0lQX05FVENPTk5fRlVMTERVUExFWCAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT0NLRVQgICAgICAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfQ09NUEFUX1NPQ0tFVFMgICAgICAgICAgICAgMSAvKiAwLi4yICovCisjZGVmaW5lIExXSVBfUE9TSVhfU09DS0VUU19JT19OQU1FUyAgICAgMQorI2RlZmluZSBMV0lQX1NPQ0tFVF9PRkZTRVQgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9UQ1BfS0VFUEFMSVZFICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU09fU05EVElNRU8gICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPX1JDVlRJTUVPICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT19TTkRSQ1ZUSU1FT19OT05TVEFOREFSRCAwCisjZGVmaW5lIExXSVBfU09fUkNWQlVGICAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPX0xJTkdFUiAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUkVDVl9CVUZTSVpFX0RFRkFVTFQgICAgICAgICAgICBJTlRfTUFYCisjZGVmaW5lIExXSVBfVENQX0NMT1NFX1RJTUVPVVRfTVNfREVGQVVMVCAyMDAwMAorI2RlZmluZSBTT19SRVVTRSAgICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgU09fUkVVU0VfUlhUT0FMTCAgICAgICAgICAgICAgICAwCisjZGVmaW5lIExXSVBfRklPTlJFQURfTElOVVhNT0RFICAgICAgICAgMAorI2RlZmluZSBMV0lQX1NPQ0tFVF9TRUxFQ1QgICAgICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9TT0NLRVRfUE9MTCAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX1NUQVRTX0RJU1BMQVkgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTElOS19TVEFUUyAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIEVUSEFSUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgKExXSVBfQVJQKQorI2RlZmluZSBJUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSVBGUkFHX1NUQVRTICAgICAgICAgICAgICAgICAgICAoSVBfUkVBU1NFTUJMWSB8fCBJUF9GUkFHKQorI2RlZmluZSBJQ01QX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgSUdNUF9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAoTFdJUF9JR01QKQorI2RlZmluZSBVRFBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChMV0lQX1VEUCkKKyNkZWZpbmUgVENQX1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoTFdJUF9UQ1ApCisjZGVmaW5lIE1FTV9TVEFUUyAgICAgICAgICAgICAgICAgICAgICAgKChNRU1fTElCQ19NQUxMT0MgPT0gMCkgJiYgKE1FTV9VU0VfUE9PTFMgPT0gMCkpCisjZGVmaW5lIE1FTVBfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgKE1FTVBfTUVNX01BTExPQyA9PSAwKQorI2RlZmluZSBTWVNfU1RBVFMgICAgICAgICAgICAgICAgICAgICAgIChOT19TWVMgPT0gMCkKKyNkZWZpbmUgSVA2X1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBJQ01QNl9TVEFUUyAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYgJiYgTFdJUF9JQ01QNikKKyNkZWZpbmUgSVA2X0ZSQUdfU1RBVFMgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2ICYmIChMV0lQX0lQVjZfRlJBRyB8fCBMV0lQX0lQVjZfUkVBU1MpKQorI2RlZmluZSBNTEQ2X1NUQVRTICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYgJiYgTFdJUF9JUFY2X01MRCkKKyNkZWZpbmUgTkQ2X1NUQVRTICAgICAgICAgICAgICAgICAgICAgICAoTFdJUF9JUFY2KQorI2RlZmluZSBNSUIyX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9DSEVDS1NVTV9DVFJMX1BFUl9ORVRJRiAgICAwCisjZGVmaW5lIENIRUNLU1VNX0dFTl9JUCAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9HRU5fVURQICAgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fR0VOX1RDUCAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0dFTl9JQ01QICAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9HRU5fSUNNUDYgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfSVAgICAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0NIRUNLX1VEUCAgICAgICAgICAgICAgMQorI2RlZmluZSBDSEVDS1NVTV9DSEVDS19UQ1AgICAgICAgICAgICAgIDEKKyNkZWZpbmUgQ0hFQ0tTVU1fQ0hFQ0tfSUNNUCAgICAgICAgICAgICAxCisjZGVmaW5lIENIRUNLU1VNX0NIRUNLX0lDTVA2ICAgICAgICAgICAgMQorI2RlZmluZSBMV0lQX0NIRUNLU1VNX09OX0NPUFkgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9JUFY2ICAgICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIElQVjZfUkVBU1NfTUFYQUdFICAgICAgICAgICAgICAgNjAKKyNkZWZpbmUgTFdJUF9JUFY2X1NDT1BFUyAgICAgICAgICAgICAgICAoTFdJUF9JUFY2ICYmICFMV0lQX1NJTkdMRV9ORVRJRikKKyNkZWZpbmUgTFdJUF9JUFY2X1NDT1BFU19ERUJVRyAgICAgICAgICAwCisjZGVmaW5lIExXSVBfSVBWNl9OVU1fQUREUkVTU0VTICAgICAgICAgMworI2RlZmluZSBMV0lQX0lQVjZfRk9SV0FSRCAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X0ZSQUcgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfSVBWNl9SRUFTUyAgICAgICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTFdJUF9JUFY2X1NFTkRfUk9VVEVSX1NPTElDSVQgICAxCisjZGVmaW5lIExXSVBfSVBWNl9BVVRPQ09ORklHICAgICAgICAgICAgKExXSVBfSVBWNikKKyNkZWZpbmUgTFdJUF9JUFY2X0FERFJFU1NfTElGRVRJTUVTICAgICAoTFdJUF9JUFY2X0FVVE9DT05GSUcpCisjZGVmaW5lIExXSVBfSVBWNl9EVVBfREVURUNUX0FUVEVNUFRTICAgMQorI2RlZmluZSBMV0lQX0lDTVA2ICAgICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIExXSVBfSUNNUDZfREFUQVNJWkUgICAgICAgICAgICAgOAorI2RlZmluZSBMV0lQX0lDTVA2X0hMICAgICAgICAgICAgICAgICAgIDI1NQorI2RlZmluZSBMV0lQX0lQVjZfTUxEICAgICAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIE1FTVBfTlVNX01MRDZfR1JPVVAgICAgICAgICAgICAgNAorI2RlZmluZSBMV0lQX05ENl9RVUVVRUlORyAgICAgICAgICAgICAgIChMV0lQX0lQVjYpCisjZGVmaW5lIE1FTVBfTlVNX05ENl9RVUVVRSAgICAgICAgICAgICAgMjAKKyNkZWZpbmUgTFdJUF9ORDZfTlVNX05FSUdIQk9SUyAgICAgICAgICAxMAorI2RlZmluZSBMV0lQX05ENl9OVU1fREVTVElOQVRJT05TICAgICAgIDEwCisjZGVmaW5lIExXSVBfTkQ2X05VTV9QUkVGSVhFUyAgICAgICAgICAgNQorI2RlZmluZSBMV0lQX05ENl9OVU1fUk9VVEVSUyAgICAgICAgICAgIDMKKyNkZWZpbmUgTFdJUF9ORDZfTUFYX01VTFRJQ0FTVF9TT0xJQ0lUICAzCisjZGVmaW5lIExXSVBfTkQ2X01BWF9VTklDQVNUX1NPTElDSVQgICAgMworI2RlZmluZSBMV0lQX05ENl9NQVhfQU5ZQ0FTVF9ERUxBWV9USU1FIDEwMDAKKyNkZWZpbmUgTFdJUF9ORDZfTUFYX05FSUdIQk9SX0FEVkVSVElTRU1FTlQgIDMKKyNkZWZpbmUgTFdJUF9ORDZfUkVBQ0hBQkxFX1RJTUUgICAgICAgICAzMDAwMAorI2RlZmluZSBMV0lQX05ENl9SRVRSQU5TX1RJTUVSICAgICAgICAgIDEwMDAKKyNkZWZpbmUgTFdJUF9ORDZfREVMQVlfRklSU1RfUFJPQkVfVElNRSA1MDAwCisjZGVmaW5lIExXSVBfTkQ2X0FMTE9XX1JBX1VQREFURVMgICAgICAgMQorI2RlZmluZSBMV0lQX05ENl9UQ1BfUkVBQ0hBQklMSVRZX0hJTlRTIDEKKyNkZWZpbmUgTFdJUF9ORDZfUkROU1NfTUFYX0ROU19TRVJWRVJTICAwCisjZGVmaW5lIExXSVBfSVBWNl9ESENQNiAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBMV0lQX0lQVjZfREhDUDZfU1RBVEVGVUwgICAgICAgIDAKKyNkZWZpbmUgTFdJUF9JUFY2X0RIQ1A2X1NUQVRFTEVTUyAgICAgICBMV0lQX0lQVjZfREhDUDYKKyNkZWZpbmUgTFdJUF9ESENQNl9HRVRfTlRQX1NSViAgICAgICAgICAwCisjZGVmaW5lIExXSVBfREhDUDZfTUFYX05UUF9TRVJWRVJTICAgICAgMQorI2RlZmluZSBMV0lQX0RIQ1A2X01BWF9ETlNfU0VSVkVSUyAgICAgIEROU19NQVhfU0VSVkVSUworCisvKiBUT0RPOiBjaGVjayBob29rcyAqLworCisjZGVmaW5lIExXSVBfREJHX01JTl9MRVZFTCAgICAgICAgICAgICAgTFdJUF9EQkdfTEVWRUxfQUxMCisjZGVmaW5lIExXSVBfREJHX1RZUEVTX09OICAgICAgICAgICAgICAgTFdJUF9EQkdfT04KKyNkZWZpbmUgRVRIQVJQX0RFQlVHICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgTkVUSUZfREVCVUcgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgUEJVRl9ERUJVRyAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgQVBJX0xJQl9ERUJVRyAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgQVBJX01TR19ERUJVRyAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgU09DS0VUU19ERUJVRyAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgSUNNUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgSUdNUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgSU5FVF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgSVBfREVCVUcgICAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgSVBfUkVBU1NfREVCVUcgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgUkFXX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgTUVNX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgTUVNUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgU1lTX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVElNRVJTX0RFQlVHICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX0lOUFVUX0RFQlVHICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX0ZSX0RFQlVHICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX1JUT19ERUJVRyAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX0NXTkRfREVCVUcgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX1dORF9ERUJVRyAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX09VVFBVVF9ERUJVRyAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX1JTVF9ERUJVRyAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX1FMRU5fREVCVUcgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVURQX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQSVBfREVCVUcgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgU0xJUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgREhDUF9ERUJVRyAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgQVVUT0lQX0RFQlVHICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgRE5TX0RFQlVHICAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgSVA2X0RFQlVHICAgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgREhDUDZfREVCVUcgICAgICAgICAgICAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgTFdJUF9URVNUTU9ERSAgICAgICAgICAgICAgICAgICAwCisKKyNkZWZpbmUgTFdJUF9QRVJGICAgICAgICAgICAgICAgICAgICAgICAwCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2h0dHBkL2NnaV9leGFtcGxlL2NnaV9leGFtcGxlLmMgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2NnaV9leGFtcGxlL2NnaV9leGFtcGxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzljNzQ3NgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvY2dpX2V4YW1wbGUvY2dpX2V4YW1wbGUuYwpAQCAtMCwwICsxLDEwNyBAQAorLyoqCisgKiBAZmlsZQorICogSFRUUEQgc2ltcGxlIENHSSBleGFtcGxlCisgKgorICogVGhpcyBmaWxlIGRlbW9uc3RyYXRlcyBob3cgdG8gYWRkIHN1cHBvcnQgZm9yIGJhc2ljIENHSS4KKyAqLworIAorIC8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU2ltb24gR29sZHNjaG1pZHQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgCisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCAKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiAKKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKiAKKyAqIEF1dGhvcjogU2ltb24gR29sZHNjaG1pZHQgPGdvbGRzaW1vbkBnbXguZGU+CisgKgorICovCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorI2luY2x1ZGUgImNnaV9leGFtcGxlLmgiCisKKyNpbmNsdWRlICJsd2lwL2FwcHMvaHR0cGQuaCIKKworI2luY2x1ZGUgImx3aXAvZGVmLmgiCisjaW5jbHVkZSAibHdpcC9tZW0uaCIKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKy8qKiBkZWZpbmUgTFdJUF9IVFRQRF9FWEFNUExFX0NHSV9TSU1QTEUgdG8gMSB0byBlbmFibGUgdGhpcyBjZ2kgZXhhbXBsZSAqLworI2lmbmRlZiBMV0lQX0hUVFBEX0VYQU1QTEVfQ0dJX1NJTVBMRQorI2RlZmluZSBMV0lQX0hUVFBEX0VYQU1QTEVfQ0dJX1NJTVBMRSAwCisjZW5kaWYKKworI2lmIExXSVBfSFRUUERfRVhBTVBMRV9DR0lfU0lNUExFCisKKyNpZiAhTFdJUF9IVFRQRF9DR0kKKyNlcnJvciBMV0lQX0hUVFBEX0VYQU1QTEVfQ0dJX1NJTVBMRSBuZWVkcyBMV0lQX0hUVFBEX0NHSQorI2VuZGlmCisKK3N0YXRpYyBjb25zdCBjaGFyICpjZ2lfaGFuZGxlcl9iYXNpYyhpbnQgaUluZGV4LCBpbnQgaU51bVBhcmFtcywgY2hhciAqcGNQYXJhbVtdLCBjaGFyICpwY1ZhbHVlW10pOworCitzdGF0aWMgY29uc3QgdENHSSBjZ2lfaGFuZGxlcnNbXSA9IHsKKyAgeworICAgICIvYmFzaWNfY2dpIiwKKyAgICBjZ2lfaGFuZGxlcl9iYXNpYworICB9LAorICB7CisgICAgIi9iYXNpY19jZ2lfMiIsCisgICAgY2dpX2hhbmRsZXJfYmFzaWMKKyAgfQorfTsKKwordm9pZAorY2dpX2V4X2luaXQodm9pZCkKK3sKKyAgaHR0cF9zZXRfY2dpX2hhbmRsZXJzKGNnaV9oYW5kbGVycywgTFdJUF9BUlJBWVNJWkUoY2dpX2hhbmRsZXJzKSk7Cit9CisKKy8qKiBUaGlzIGJhc2ljIENHSSBmdW5jdGlvbiBjYW4gcGFyc2UgcGFyYW0vdmFsdWUgcGFpcnMgYW5kIHJldHVybiBhbiB1cmwgdGhhdAorICogaXMgc2VudCBhcyBhIHJlc3BvbnNlIGJ5IGh0dHBkLgorICoKKyAqIFRoaXMgZXhhbXBsZSBmdW5jdGlvbiBqdXN0IGNoZWNrcyB0aGF0IHRoZSBpbnB1dCB1cmwgaGFzIHR3byBrZXkgdmFsdWUKKyAqIHBhcmFtZXRlciBwYWlyczogImZvbz1iYXIiIGFuZCAidGVzdD0xMjMiCisgKiBJZiBub3QsIGl0IHJldHVybnMgNDA0CisgKi8KK3N0YXRpYyBjb25zdCBjaGFyICoKK2NnaV9oYW5kbGVyX2Jhc2ljKGludCBpSW5kZXgsIGludCBpTnVtUGFyYW1zLCBjaGFyICpwY1BhcmFtW10sIGNoYXIgKnBjVmFsdWVbXSkKK3sKKyAgTFdJUF9BU1NFUlQoImNoZWNrIGluZGV4IiwgaUluZGV4IDwgTFdJUF9BUlJBWVNJWkUoY2dpX2hhbmRsZXJzKSk7CisKKyAgaWYgKGlOdW1QYXJhbXMgPT0gMikgeworICAgIGlmICghc3RyY21wKHBjUGFyYW1bMF0sICJmb28iKSkgeworICAgICAgaWYgKCFzdHJjbXAocGNWYWx1ZVswXSwgImJhciIpKSB7CisgICAgICAgIGlmICghc3RyY21wKHBjUGFyYW1bMV0sICJ0ZXN0IikpIHsKKyAgICAgICAgICBpZiAoIXN0cmNtcChwY1ZhbHVlWzFdLCAiMTIzIikpIHsKKyAgICAgICAgICAgIHJldHVybiAiL2luZGV4Lmh0bWwiOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgfQorICByZXR1cm4gIi80MDQuaHRtbCI7Cit9CisKKyNlbmRpZiAvKiBMV0lQX0hUVFBEX0VYQU1QTEVfQ0dJX1NJTVBMRSAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9odHRwZC9jZ2lfZXhhbXBsZS9jZ2lfZXhhbXBsZS5oIGIvY29udHJpYi9leGFtcGxlcy9odHRwZC9jZ2lfZXhhbXBsZS9jZ2lfZXhhbXBsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2NTU2NjEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2NnaV9leGFtcGxlL2NnaV9leGFtcGxlLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNyBTaW1vbiBHb2xkc2NobWlkdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCAKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIAorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSAKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqIAorICogQXV0aG9yOiBTaW1vbiBHb2xkc2NobWlkdCA8Z29sZHNpbW9uQGdteC5kZT4KKyAqCisgKi8KKworI2lmbmRlZiBMV0lQX0hEUl9IVFRQX0VYQU1QTEVTX0NHSV9FWEFNUExFCisjZGVmaW5lIExXSVBfSERSX0hUVFBfRVhBTVBMRVNfQ0dJX0VYQU1QTEUKKwordm9pZCBjZ2lfZXhfaW5pdCh2b2lkKTsKKworI2VuZGlmIC8qIExXSVBfSERSX0hUVFBfRVhBTVBMRVNfQ0dJX0VYQU1QTEUgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZXhhbXBsZXNfZnMvNDA0Lmh0bWwgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzLzQwNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwYjM0M2EKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzLzQwNC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzxodG1sPgorPGhlYWQ+PHRpdGxlPmx3SVAgLSBBIExpZ2h0d2VpZ2h0IFRDUC9JUCBTdGFjazwvdGl0bGU+PC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIj4KKworICAgIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgICAgICA8dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iODAiPgkgIAorCSAgPGEgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlLyI+PGltZyBzcmM9Ii9pbWcvc2ljcy5naWYiCisJICBib3JkZXI9IjAiIGFsdD0iU0lDUyBsb2dvIiB0aXRsZT0iU0lDUyBsb2dvIj48L2E+CisJPC90ZD48dGQgd2lkdGg9IjUwMCI+CSAgCisJICA8aDE+bHdJUCAtIEEgTGlnaHR3ZWlnaHQgVENQL0lQIFN0YWNrPC9oMT4KKwkgIDxoMj40MDQgLSBQYWdlIG5vdCBmb3VuZDwvaDI+CisJICA8cD4KKwkgICAgU29ycnksIHRoZSBwYWdlIHlvdSBhcmUgcmVxdWVzdGluZyB3YXMgbm90IGZvdW5kIG9uIHRoaXMKKwkgICAgc2VydmVyLiAKKwkgIDwvcD4KKwk8L3RkPjx0ZD4KKwkgICZuYnNwOworCTwvdGQ+PC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzL2ltZy9zaWNzLmdpZiBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZXhhbXBsZXNfZnMvaW1nL3NpY3MuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNGZjN2IKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzL2ltZy9zaWNzLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzL2luZGV4Lmh0bWwgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWI1NzVlZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZXhhbXBsZXNfZnMvaW5kZXguaHRtbApAQCAtMCwwICsxLDQ3IEBACis8aHRtbD4KKzxoZWFkPjx0aXRsZT5sd0lQIC0gQSBMaWdodHdlaWdodCBUQ1AvSVAgU3RhY2s8L3RpdGxlPjwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayI+CisKKyAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgPHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjgwIj4JICAKKwkgIDxhIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS8iPjxpbWcgc3JjPSIvaW1nL3NpY3MuZ2lmIgorCSAgYm9yZGVyPSIwIiBhbHQ9IlNJQ1MgbG9nbyIgdGl0bGU9IlNJQ1MgbG9nbyI+PC9hPgorCTwvdGQ+PHRkIHdpZHRoPSI1MDAiPgkgIAorCSAgPGgxPmx3SVAgLSBBIExpZ2h0d2VpZ2h0IFRDUC9JUCBTdGFjazwvaDE+CisJICA8cD4KKwkgICAgVGhlIHdlYiBwYWdlIHlvdSBhcmUgd2F0Y2hpbmcgd2FzIHNlcnZlZCBieSBhIHNpbXBsZSB3ZWIKKwkgICAgc2VydmVyIHJ1bm5pbmcgb24gdG9wIG9mIHRoZSBsaWdodHdlaWdodCBUQ1AvSVAgc3RhY2sgPGEKKwkgICAgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlL35hZGFtL2x3aXAvIj5sd0lQPC9hPi4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBsd0lQIGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUQ1AvSVAKKwkgICAgcHJvdG9jb2wgc3VpdGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IDxhCisJICAgIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS9+YWRhbS9sd2lwLyI+QWRhbSBEdW5rZWxzCisJICAgIG9mIHRoZSBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9hPiBidXQgbm93IGlzCisJICAgIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZCBieSBhIHRlYW0gb2YgZGV2ZWxvcGVycworCSAgICBkaXN0cmlidXRlZCB3b3JsZC13aWRlLiBTaW5jZSBpdCdzIHJlbGVhc2UsIGx3SVAgaGFzCisJICAgIHNwdXJyZWQgYSBsb3Qgb2YgaW50ZXJlc3QgYW5kIGhhcyBiZWVuIHBvcnRlZCB0byBzZXZlcmFsCisJICAgIHBsYXRmb3JtcyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuIGx3SVAgY2FuIGJlIHVzZWQgZWl0aGVyCisJICAgIHdpdGggb3Igd2l0aG91dCBhbiB1bmRlcmx5aW5nIE9TLgorCSAgPC9wPgorCSAgPHA+CisJICAgIFRoZSBmb2N1cyBvZiB0aGUgbHdJUCBUQ1AvSVAgaW1wbGVtZW50YXRpb24gaXMgdG8gcmVkdWNlCisJICAgIHRoZSBSQU0gdXNhZ2Ugd2hpbGUgc3RpbGwgaGF2aW5nIGEgZnVsbCBzY2FsZSBUQ1AuIFRoaXMKKwkgICAgbWFrZXMgbHdJUCBzdWl0YWJsZSBmb3IgdXNlIGluIGVtYmVkZGVkIHN5c3RlbXMgd2l0aCB0ZW5zCisJICAgIG9mIGtpbG9ieXRlcyBvZiBmcmVlIFJBTSBhbmQgcm9vbSBmb3IgYXJvdW5kIDQwIGtpbG9ieXRlcworCSAgICBvZiBjb2RlIFJPTS4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBNb3JlIGluZm9ybWF0aW9uIGFib3V0IGx3SVAgY2FuIGJlIGZvdW5kIGF0IHRoZSBsd0lQCisJICAgIGhvbWVwYWdlIGF0IDxhCisJICAgIGhyZWY9Imh0dHA6Ly9zYXZhbm5haC5ub25nbnUub3JnL3Byb2plY3RzL2x3aXAvIj5odHRwOi8vc2F2YW5uYWgubm9uZ251Lm9yZy9wcm9qZWN0cy9sd2lwLzwvYT4KKwkgICAgb3IgYXQgdGhlIGx3SVAgd2lraSBhdCA8YQorCSAgICBocmVmPSJodHRwOi8vbHdpcC53aWtpYS5jb20vIj5odHRwOi8vbHdpcC53aWtpYS5jb20vPC9hPi4KKwkgIDwvcD4KKwk8L3RkPjx0ZD4KKwkgICZuYnNwOworCTwvdGQ+PC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZXhhbXBsZXNfZnMvbG9naW4uaHRtbCBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZXhhbXBsZXNfZnMvbG9naW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MWM1MzViCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9odHRwZC9leGFtcGxlc19mcy9sb2dpbi5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxodG1sPgorPGhlYWQ+PHRpdGxlPmx3SVAgLSBBIExpZ2h0d2VpZ2h0IFRDUC9JUCBTdGFjazwvdGl0bGU+PC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIj4KKworPHRhYmxlIHdpZHRoPSIxMDAlIj4KKyA8dHIgdmFsaWduPSJ0b3AiPgorICA8dGQgd2lkdGg9IjgwIj4KKyAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS8iPjxpbWcgc3JjPSIvaW1nL3NpY3MuZ2lmIiBib3JkZXI9IjAiIGFsdD0iU0lDUyBsb2dvIiB0aXRsZT0iU0lDUyBsb2dvIi8+PC9hPgorICA8L3RkPgorICA8dGQgd2lkdGg9IjUwMCI+CisgICA8aDE+TG9naW48L2gxPgorICAgPGZvcm0gbmFtZT0ibG9naW4iIGFjdGlvbj0ibG9naW4uY2dpIiBtZXRob2Q9InBvc3QiPgorICAgIDxkaXY+CisgICAgIDxsYWJlbD48Yj5Vc2VybmFtZTwvYj48L2xhYmVsPgorICAgICA8aW5wdXQgdHlwZT0idGV4dCIgcGxhY2Vob2xkZXI9IkVudGVyIFVzZXJuYW1lIiBuYW1lPSJ1c2VyIiByZXF1aXJlZD4KKyAgICAgPGxhYmVsPjxiPlBhc3N3b3JkPC9iPjwvbGFiZWw+CisgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgcGxhY2Vob2xkZXI9IkVudGVyIFBhc3N3b3JkIiBuYW1lPSJwYXNzIiByZXF1aXJlZD4KKyAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiPkxvZ2luPC9idXR0b24+CisgICAgPC9kaXY+CisgICA8L2Zvcm0+IAorICA8L3RkPgorICA8dGQ+CisgICAmbmJzcDsKKyAgPC90ZD4KKyA8L3RyPgorPC90YWJsZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZXhhbXBsZXNfZnMvbG9naW5mYWlsLmh0bWwgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzL2xvZ2luZmFpbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkNWM3NDIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzL2xvZ2luZmFpbC5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzxodG1sPgorPGhlYWQ+PHRpdGxlPmx3SVAgLSBBIExpZ2h0d2VpZ2h0IFRDUC9JUCBTdGFjazwvdGl0bGU+PC9oZWFkPgorPGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIj4KKworIDx0YWJsZSB3aWR0aD0iMTAwJSI+CisgIDx0ciB2YWxpZ249InRvcCI+CisgICA8dGQgd2lkdGg9IjgwIj4KKyAgICA8YSBocmVmPSJodHRwOi8vd3d3LnNpY3Muc2UvIj48aW1nIHNyYz0iL2ltZy9zaWNzLmdpZiIgYm9yZGVyPSIwIiBhbHQ9IlNJQ1MgbG9nbyIgdGl0bGU9IlNJQ1MgbG9nbyIvPjwvYT4KKyAgIDwvdGQ+CisgICA8dGQgd2lkdGg9IjUwMCI+CisgICAgPGgxPmx3SVAgLSBBIExpZ2h0d2VpZ2h0IFRDUC9JUCBTdGFjazwvaDE+CisgICAgPHA+CisgICAgIExvZ2luIGZhaWxlZC4KKyAgICA8L3A+CisgICAgPHA+CisgICAgIENsaWNrIDxhIGhyZWY9ImxvZ2luLmh0bWwiPmhlcmU8L2E+IHRvIHJldHJ5IGxvZ2luLgorICAgIDwvcD4KKyAgIDwvdGQ+CisgICA8dGQ+CisgICAgJm5ic3A7CisgICA8L3RkPgorICA8L3RyPgorIDwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzL3Nlc3Npb24uaHRtbCBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZXhhbXBsZXNfZnMvc2Vzc2lvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyZDNiZmYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzL3Nlc3Npb24uaHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKzxoZWFkPjx0aXRsZT5sd0lQIC0gQSBMaWdodHdlaWdodCBUQ1AvSVAgU3RhY2s8L3RpdGxlPjwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayI+CisKKyA8dGFibGUgd2lkdGg9IjEwMCUiPgorICA8dHIgdmFsaWduPSJ0b3AiPgorICAgPHRkIHdpZHRoPSI4MCI+CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlLyI+PGltZyBzcmM9Ii9pbWcvc2ljcy5naWYiIGJvcmRlcj0iMCIgYWx0PSJTSUNTIGxvZ28iIHRpdGxlPSJTSUNTIGxvZ28iLz48L2E+CisgICA8L3RkPgorICAgPHRkIHdpZHRoPSI1MDAiPgorICAgIDxoMT5sd0lQIC0gQSBMaWdodHdlaWdodCBUQ1AvSVAgU3RhY2s8L2gxPgorICAgIDxwPgorICAgICBMb2dpbiBzdWNjZWVkZWQsIHNlc3Npb24gYWN0aXZlLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgQ2xpY2sgPGEgaHJlZj0ibG9naW4uaHRtbCI+aGVyZTwvYT4gdG8gcmV0cnkgbG9naW4uCisgICAgPC9wPgorICAgPC90ZD4KKyAgIDx0ZD4KKyAgICAmbmJzcDsKKyAgIDwvdGQ+CisgIDwvdHI+CisgPC90YWJsZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZXhhbXBsZXNfZnMvc3NpLnNodG1sIGIvY29udHJpYi9leGFtcGxlcy9odHRwZC9leGFtcGxlc19mcy9zc2kuc2h0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUzZDAxNgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZXhhbXBsZXNfZnMvc3NpLnNodG1sCkBAIC0wLDAgKzEsMzE1IEBACis8aHRtbD4KKzxoZWFkPjx0aXRsZT5sd0lQIC0gQSBMaWdodHdlaWdodCBUQ1AvSVAgU3RhY2s8L3RpdGxlPjwvaGVhZD4KKzxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayI+CisKKyAgICA8dGFibGUgd2lkdGg9IjEwMCUiPgorICAgICAgPHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjgwIj4JICAKKwkgIDxhIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS8iPjxpbWcgc3JjPSIvaW1nL3NpY3MuZ2lmIgorCSAgYm9yZGVyPSIwIiBhbHQ9IlNJQ1MgbG9nbyIgdGl0bGU9IlNJQ1MgbG9nbyI+PC9hPgorCTwvdGQ+PHRkIHdpZHRoPSI1MDAiPgkgIAorCSAgPGgxPmx3SVAgLSBBIExpZ2h0d2VpZ2h0IFRDUC9JUCBTdGFjazwvaDE+CisJICA8aDE+PCEtLSNIZWxsV29ybC0tPjwvaDE+CisJICA8cD4KKwkgICAgVGhlIHdlYiBwYWdlIHlvdSBhcmUgd2F0Y2hpbmcgd2FzIHNlcnZlZCBieSBhIHNpbXBsZSB3ZWIKKwkgICAgc2VydmVyIHJ1bm5pbmcgb24gdG9wIG9mIHRoZSBsaWdodHdlaWdodCBUQ1AvSVAgc3RhY2sgPGEKKwkgICAgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlL35hZGFtL2x3aXAvIj5sd0lQPC9hPi4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBUaGlzIHBhZ2UgaXMgaGVyZSB0byB0ZXN0IFNTSSwgc28gaGVyZSBpcyBhIGNvdW50ZXIgYXMKKwkgICAgYW4gZXhhbXBsZSBvZiBjb250ZW50IGNoYW5naW5nIGZvciBldmVyeSByZXF1ZXN0OgorCSAgICAiPCEtLSNjb3VudGVyLS0+IgorCSAgPC9wPgorCSAgPHA+CisJICAgIEFuZCBoZXJlIGlzIGFuIGV4YW1wbGUgb2YgYSB0YWcgcmVzdWx0IGJ1ZmZlciByZXR1cm4gaW4KKwkgICAgbXVsdGlwbGUgcGFydHM6ICI8IS0tI011bHRQYXJ0LS0+IgorCSAgPC9wPgorCSAgPHA+CisJICAgIFRvIHRlc3QgTFdJUF9IVFRQRF9DR0lfU1NJLCBoZXJlIGFyZSB0aGUgQ0dJIHBhcmFtZXRlcnM6CisJICAgIDwhLS0jQ2dpUGFyYW0tLT4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBsd0lQIGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUQ1AvSVAKKwkgICAgcHJvdG9jb2wgc3VpdGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IDxhCisJICAgIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS9+YWRhbS9sd2lwLyI+QWRhbSBEdW5rZWxzCisJICAgIG9mIHRoZSBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9hPiBidXQgbm93IGlzCisJICAgIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZCBieSBhIHRlYW0gb2YgZGV2ZWxvcGVycworCSAgICBkaXN0cmlidXRlZCB3b3JsZC13aWRlLiBTaW5jZSBpdCdzIHJlbGVhc2UsIGx3SVAgaGFzCisJICAgIHNwdXJyZWQgYSBsb3Qgb2YgaW50ZXJlc3QgYW5kIGhhcyBiZWVuIHBvcnRlZCB0byBzZXZlcmFsCisJICAgIHBsYXRmb3JtcyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuIGx3SVAgY2FuIGJlIHVzZWQgZWl0aGVyCisJICAgIHdpdGggb3Igd2l0aG91dCBhbiB1bmRlcmx5aW5nIE9TLgorCSAgPC9wPgorCSAgPHA+CisJICA8cD4KKwkgICAgbHdJUCBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVENQL0lQCisJICAgIHByb3RvY29sIHN1aXRlIHRoYXQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSA8YQorCSAgICBocmVmPSJodHRwOi8vd3d3LnNpY3Muc2UvfmFkYW0vbHdpcC8iPkFkYW0gRHVua2VscworCSAgICBvZiB0aGUgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZTwvYT4gYnV0IG5vdyBpcworCSAgICBiZWluZyBhY3RpdmVseSBkZXZlbG9wZWQgYnkgYSB0ZWFtIG9mIGRldmVsb3BlcnMKKwkgICAgZGlzdHJpYnV0ZWQgd29ybGQtd2lkZS4gU2luY2UgaXQncyByZWxlYXNlLCBsd0lQIGhhcworCSAgICBzcHVycmVkIGEgbG90IG9mIGludGVyZXN0IGFuZCBoYXMgYmVlbiBwb3J0ZWQgdG8gc2V2ZXJhbAorCSAgICBwbGF0Zm9ybXMgYW5kIG9wZXJhdGluZyBzeXN0ZW1zLiBsd0lQIGNhbiBiZSB1c2VkIGVpdGhlcgorCSAgICB3aXRoIG9yIHdpdGhvdXQgYW4gdW5kZXJseWluZyBPUy4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBsd0lQIGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUQ1AvSVAKKwkgICAgcHJvdG9jb2wgc3VpdGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IDxhCisJICAgIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS9+YWRhbS9sd2lwLyI+QWRhbSBEdW5rZWxzCisJICAgIG9mIHRoZSBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9hPiBidXQgbm93IGlzCisJICAgIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZCBieSBhIHRlYW0gb2YgZGV2ZWxvcGVycworCSAgICBkaXN0cmlidXRlZCB3b3JsZC13aWRlLiBTaW5jZSBpdCdzIHJlbGVhc2UsIGx3SVAgaGFzCisJICAgIHNwdXJyZWQgYSBsb3Qgb2YgaW50ZXJlc3QgYW5kIGhhcyBiZWVuIHBvcnRlZCB0byBzZXZlcmFsCisJICAgIHBsYXRmb3JtcyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuIGx3SVAgY2FuIGJlIHVzZWQgZWl0aGVyCisJICAgIHdpdGggb3Igd2l0aG91dCBhbiB1bmRlcmx5aW5nIE9TLgorCSAgPC9wPgorCSAgPHA+CisJICAgIGx3SVAgaXMgYW4gb3BlbiBzb3VyY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRDUC9JUAorCSAgICBwcm90b2NvbCBzdWl0ZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgPGEKKwkgICAgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlL35hZGFtL2x3aXAvIj5BZGFtIER1bmtlbHMKKwkgICAgb2YgdGhlIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2U8L2E+IGJ1dCBub3cgaXMKKwkgICAgYmVpbmcgYWN0aXZlbHkgZGV2ZWxvcGVkIGJ5IGEgdGVhbSBvZiBkZXZlbG9wZXJzCisJICAgIGRpc3RyaWJ1dGVkIHdvcmxkLXdpZGUuIFNpbmNlIGl0J3MgcmVsZWFzZSwgbHdJUCBoYXMKKwkgICAgc3B1cnJlZCBhIGxvdCBvZiBpbnRlcmVzdCBhbmQgaGFzIGJlZW4gcG9ydGVkIHRvIHNldmVyYWwKKwkgICAgcGxhdGZvcm1zIGFuZCBvcGVyYXRpbmcgc3lzdGVtcy4gbHdJUCBjYW4gYmUgdXNlZCBlaXRoZXIKKwkgICAgd2l0aCBvciB3aXRob3V0IGFuIHVuZGVybHlpbmcgT1MuCisJICA8L3A+CisJICA8cD4KKwkgICAgbHdJUCBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVENQL0lQCisJICAgIHByb3RvY29sIHN1aXRlIHRoYXQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSA8YQorCSAgICBocmVmPSJodHRwOi8vd3d3LnNpY3Muc2UvfmFkYW0vbHdpcC8iPkFkYW0gRHVua2VscworCSAgICBvZiB0aGUgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZTwvYT4gYnV0IG5vdyBpcworCSAgICBiZWluZyBhY3RpdmVseSBkZXZlbG9wZWQgYnkgYSB0ZWFtIG9mIGRldmVsb3BlcnMKKwkgICAgZGlzdHJpYnV0ZWQgd29ybGQtd2lkZS4gU2luY2UgaXQncyByZWxlYXNlLCBsd0lQIGhhcworCSAgICBzcHVycmVkIGEgbG90IG9mIGludGVyZXN0IGFuZCBoYXMgYmVlbiBwb3J0ZWQgdG8gc2V2ZXJhbAorCSAgICBwbGF0Zm9ybXMgYW5kIG9wZXJhdGluZyBzeXN0ZW1zLiBsd0lQIGNhbiBiZSB1c2VkIGVpdGhlcgorCSAgICB3aXRoIG9yIHdpdGhvdXQgYW4gdW5kZXJseWluZyBPUy4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBsd0lQIGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUQ1AvSVAKKwkgICAgcHJvdG9jb2wgc3VpdGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IDxhCisJICAgIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS9+YWRhbS9sd2lwLyI+QWRhbSBEdW5rZWxzCisJICAgIG9mIHRoZSBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9hPiBidXQgbm93IGlzCisJICAgIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZCBieSBhIHRlYW0gb2YgZGV2ZWxvcGVycworCSAgICBkaXN0cmlidXRlZCB3b3JsZC13aWRlLiBTaW5jZSBpdCdzIHJlbGVhc2UsIGx3SVAgaGFzCisJICAgIHNwdXJyZWQgYSBsb3Qgb2YgaW50ZXJlc3QgYW5kIGhhcyBiZWVuIHBvcnRlZCB0byBzZXZlcmFsCisJICAgIHBsYXRmb3JtcyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuIGx3SVAgY2FuIGJlIHVzZWQgZWl0aGVyCisJICAgIHdpdGggb3Igd2l0aG91dCBhbiB1bmRlcmx5aW5nIE9TLgorCSAgPC9wPgorCSAgPHA+CisJICAgIGx3SVAgaXMgYW4gb3BlbiBzb3VyY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRDUC9JUAorCSAgICBwcm90b2NvbCBzdWl0ZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgPGEKKwkgICAgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlL35hZGFtL2x3aXAvIj5BZGFtIER1bmtlbHMKKwkgICAgb2YgdGhlIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2U8L2E+IGJ1dCBub3cgaXMKKwkgICAgYmVpbmcgYWN0aXZlbHkgZGV2ZWxvcGVkIGJ5IGEgdGVhbSBvZiBkZXZlbG9wZXJzCisJICAgIGRpc3RyaWJ1dGVkIHdvcmxkLXdpZGUuIFNpbmNlIGl0J3MgcmVsZWFzZSwgbHdJUCBoYXMKKwkgICAgc3B1cnJlZCBhIGxvdCBvZiBpbnRlcmVzdCBhbmQgaGFzIGJlZW4gcG9ydGVkIHRvIHNldmVyYWwKKwkgICAgcGxhdGZvcm1zIGFuZCBvcGVyYXRpbmcgc3lzdGVtcy4gbHdJUCBjYW4gYmUgdXNlZCBlaXRoZXIKKwkgICAgd2l0aCBvciB3aXRob3V0IGFuIHVuZGVybHlpbmcgT1MuCisJICA8L3A+CisJICA8cD4KKwkgICAgbHdJUCBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVENQL0lQCisJICAgIHByb3RvY29sIHN1aXRlIHRoYXQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSA8YQorCSAgICBocmVmPSJodHRwOi8vd3d3LnNpY3Muc2UvfmFkYW0vbHdpcC8iPkFkYW0gRHVua2VscworCSAgICBvZiB0aGUgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZTwvYT4gYnV0IG5vdyBpcworCSAgICBiZWluZyBhY3RpdmVseSBkZXZlbG9wZWQgYnkgYSB0ZWFtIG9mIGRldmVsb3BlcnMKKwkgICAgZGlzdHJpYnV0ZWQgd29ybGQtd2lkZS4gU2luY2UgaXQncyByZWxlYXNlLCBsd0lQIGhhcworCSAgICBzcHVycmVkIGEgbG90IG9mIGludGVyZXN0IGFuZCBoYXMgYmVlbiBwb3J0ZWQgdG8gc2V2ZXJhbAorCSAgICBwbGF0Zm9ybXMgYW5kIG9wZXJhdGluZyBzeXN0ZW1zLiBsd0lQIGNhbiBiZSB1c2VkIGVpdGhlcgorCSAgICB3aXRoIG9yIHdpdGhvdXQgYW4gdW5kZXJseWluZyBPUy4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBsd0lQIGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUQ1AvSVAKKwkgICAgcHJvdG9jb2wgc3VpdGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IDxhCisJICAgIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS9+YWRhbS9sd2lwLyI+QWRhbSBEdW5rZWxzCisJICAgIG9mIHRoZSBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9hPiBidXQgbm93IGlzCisJICAgIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZCBieSBhIHRlYW0gb2YgZGV2ZWxvcGVycworCSAgICBkaXN0cmlidXRlZCB3b3JsZC13aWRlLiBTaW5jZSBpdCdzIHJlbGVhc2UsIGx3SVAgaGFzCisJICAgIHNwdXJyZWQgYSBsb3Qgb2YgaW50ZXJlc3QgYW5kIGhhcyBiZWVuIHBvcnRlZCB0byBzZXZlcmFsCisJICAgIHBsYXRmb3JtcyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuIGx3SVAgY2FuIGJlIHVzZWQgZWl0aGVyCisJICAgIHdpdGggb3Igd2l0aG91dCBhbiB1bmRlcmx5aW5nIE9TLgorCSAgPC9wPgorCSAgPHA+CisJICAgIGx3SVAgaXMgYW4gb3BlbiBzb3VyY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRDUC9JUAorCSAgICBwcm90b2NvbCBzdWl0ZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgPGEKKwkgICAgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlL35hZGFtL2x3aXAvIj5BZGFtIER1bmtlbHMKKwkgICAgb2YgdGhlIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2U8L2E+IGJ1dCBub3cgaXMKKwkgICAgYmVpbmcgYWN0aXZlbHkgZGV2ZWxvcGVkIGJ5IGEgdGVhbSBvZiBkZXZlbG9wZXJzCisJICAgIGRpc3RyaWJ1dGVkIHdvcmxkLXdpZGUuIFNpbmNlIGl0J3MgcmVsZWFzZSwgbHdJUCBoYXMKKwkgICAgc3B1cnJlZCBhIGxvdCBvZiBpbnRlcmVzdCBhbmQgaGFzIGJlZW4gcG9ydGVkIHRvIHNldmVyYWwKKwkgICAgcGxhdGZvcm1zIGFuZCBvcGVyYXRpbmcgc3lzdGVtcy4gbHdJUCBjYW4gYmUgdXNlZCBlaXRoZXIKKwkgICAgd2l0aCBvciB3aXRob3V0IGFuIHVuZGVybHlpbmcgT1MuCisJICA8L3A+CisJICA8cD4KKwkgICAgbHdJUCBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVENQL0lQCisJICAgIHByb3RvY29sIHN1aXRlIHRoYXQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSA8YQorCSAgICBocmVmPSJodHRwOi8vd3d3LnNpY3Muc2UvfmFkYW0vbHdpcC8iPkFkYW0gRHVua2VscworCSAgICBvZiB0aGUgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZTwvYT4gYnV0IG5vdyBpcworCSAgICBiZWluZyBhY3RpdmVseSBkZXZlbG9wZWQgYnkgYSB0ZWFtIG9mIGRldmVsb3BlcnMKKwkgICAgZGlzdHJpYnV0ZWQgd29ybGQtd2lkZS4gU2luY2UgaXQncyByZWxlYXNlLCBsd0lQIGhhcworCSAgICBzcHVycmVkIGEgbG90IG9mIGludGVyZXN0IGFuZCBoYXMgYmVlbiBwb3J0ZWQgdG8gc2V2ZXJhbAorCSAgICBwbGF0Zm9ybXMgYW5kIG9wZXJhdGluZyBzeXN0ZW1zLiBsd0lQIGNhbiBiZSB1c2VkIGVpdGhlcgorCSAgICB3aXRoIG9yIHdpdGhvdXQgYW4gdW5kZXJseWluZyBPUy4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBsd0lQIGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUQ1AvSVAKKwkgICAgcHJvdG9jb2wgc3VpdGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IDxhCisJICAgIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS9+YWRhbS9sd2lwLyI+QWRhbSBEdW5rZWxzCisJICAgIG9mIHRoZSBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9hPiBidXQgbm93IGlzCisJICAgIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZCBieSBhIHRlYW0gb2YgZGV2ZWxvcGVycworCSAgICBkaXN0cmlidXRlZCB3b3JsZC13aWRlLiBTaW5jZSBpdCdzIHJlbGVhc2UsIGx3SVAgaGFzCisJICAgIHNwdXJyZWQgYSBsb3Qgb2YgaW50ZXJlc3QgYW5kIGhhcyBiZWVuIHBvcnRlZCB0byBzZXZlcmFsCisJICAgIHBsYXRmb3JtcyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuIGx3SVAgY2FuIGJlIHVzZWQgZWl0aGVyCisJICAgIHdpdGggb3Igd2l0aG91dCBhbiB1bmRlcmx5aW5nIE9TLgorCSAgPC9wPgorCSAgPHA+CisJICAgIGx3SVAgaXMgYW4gb3BlbiBzb3VyY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRDUC9JUAorCSAgICBwcm90b2NvbCBzdWl0ZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgPGEKKwkgICAgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlL35hZGFtL2x3aXAvIj5BZGFtIER1bmtlbHMKKwkgICAgb2YgdGhlIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2U8L2E+IGJ1dCBub3cgaXMKKwkgICAgYmVpbmcgYWN0aXZlbHkgZGV2ZWxvcGVkIGJ5IGEgdGVhbSBvZiBkZXZlbG9wZXJzCisJICAgIGRpc3RyaWJ1dGVkIHdvcmxkLXdpZGUuIFNpbmNlIGl0J3MgcmVsZWFzZSwgbHdJUCBoYXMKKwkgICAgc3B1cnJlZCBhIGxvdCBvZiBpbnRlcmVzdCBhbmQgaGFzIGJlZW4gcG9ydGVkIHRvIHNldmVyYWwKKwkgICAgcGxhdGZvcm1zIGFuZCBvcGVyYXRpbmcgc3lzdGVtcy4gbHdJUCBjYW4gYmUgdXNlZCBlaXRoZXIKKwkgICAgd2l0aCBvciB3aXRob3V0IGFuIHVuZGVybHlpbmcgT1MuCisJICA8L3A+CisJICA8cD4KKwkgICAgbHdJUCBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVENQL0lQCisJICAgIHByb3RvY29sIHN1aXRlIHRoYXQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSA8YQorCSAgICBocmVmPSJodHRwOi8vd3d3LnNpY3Muc2UvfmFkYW0vbHdpcC8iPkFkYW0gRHVua2VscworCSAgICBvZiB0aGUgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZTwvYT4gYnV0IG5vdyBpcworCSAgICBiZWluZyBhY3RpdmVseSBkZXZlbG9wZWQgYnkgYSB0ZWFtIG9mIGRldmVsb3BlcnMKKwkgICAgZGlzdHJpYnV0ZWQgd29ybGQtd2lkZS4gU2luY2UgaXQncyByZWxlYXNlLCBsd0lQIGhhcworCSAgICBzcHVycmVkIGEgbG90IG9mIGludGVyZXN0IGFuZCBoYXMgYmVlbiBwb3J0ZWQgdG8gc2V2ZXJhbAorCSAgICBwbGF0Zm9ybXMgYW5kIG9wZXJhdGluZyBzeXN0ZW1zLiBsd0lQIGNhbiBiZSB1c2VkIGVpdGhlcgorCSAgICB3aXRoIG9yIHdpdGhvdXQgYW4gdW5kZXJseWluZyBPUy4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBsd0lQIGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUQ1AvSVAKKwkgICAgcHJvdG9jb2wgc3VpdGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IDxhCisJICAgIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS9+YWRhbS9sd2lwLyI+QWRhbSBEdW5rZWxzCisJICAgIG9mIHRoZSBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9hPiBidXQgbm93IGlzCisJICAgIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZCBieSBhIHRlYW0gb2YgZGV2ZWxvcGVycworCSAgICBkaXN0cmlidXRlZCB3b3JsZC13aWRlLiBTaW5jZSBpdCdzIHJlbGVhc2UsIGx3SVAgaGFzCisJICAgIHNwdXJyZWQgYSBsb3Qgb2YgaW50ZXJlc3QgYW5kIGhhcyBiZWVuIHBvcnRlZCB0byBzZXZlcmFsCisJICAgIHBsYXRmb3JtcyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuIGx3SVAgY2FuIGJlIHVzZWQgZWl0aGVyCisJICAgIHdpdGggb3Igd2l0aG91dCBhbiB1bmRlcmx5aW5nIE9TLgorCSAgPC9wPgorCSAgPHA+CisJICAgIGx3SVAgaXMgYW4gb3BlbiBzb3VyY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRDUC9JUAorCSAgICBwcm90b2NvbCBzdWl0ZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgPGEKKwkgICAgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlL35hZGFtL2x3aXAvIj5BZGFtIER1bmtlbHMKKwkgICAgb2YgdGhlIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2U8L2E+IGJ1dCBub3cgaXMKKwkgICAgYmVpbmcgYWN0aXZlbHkgZGV2ZWxvcGVkIGJ5IGEgdGVhbSBvZiBkZXZlbG9wZXJzCisJICAgIGRpc3RyaWJ1dGVkIHdvcmxkLXdpZGUuIFNpbmNlIGl0J3MgcmVsZWFzZSwgbHdJUCBoYXMKKwkgICAgc3B1cnJlZCBhIGxvdCBvZiBpbnRlcmVzdCBhbmQgaGFzIGJlZW4gcG9ydGVkIHRvIHNldmVyYWwKKwkgICAgcGxhdGZvcm1zIGFuZCBvcGVyYXRpbmcgc3lzdGVtcy4gbHdJUCBjYW4gYmUgdXNlZCBlaXRoZXIKKwkgICAgd2l0aCBvciB3aXRob3V0IGFuIHVuZGVybHlpbmcgT1MuCisJICA8L3A+CisJICA8cD4KKwkgICAgbHdJUCBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVENQL0lQCisJICAgIHByb3RvY29sIHN1aXRlIHRoYXQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSA8YQorCSAgICBocmVmPSJodHRwOi8vd3d3LnNpY3Muc2UvfmFkYW0vbHdpcC8iPkFkYW0gRHVua2VscworCSAgICBvZiB0aGUgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZTwvYT4gYnV0IG5vdyBpcworCSAgICBiZWluZyBhY3RpdmVseSBkZXZlbG9wZWQgYnkgYSB0ZWFtIG9mIGRldmVsb3BlcnMKKwkgICAgZGlzdHJpYnV0ZWQgd29ybGQtd2lkZS4gU2luY2UgaXQncyByZWxlYXNlLCBsd0lQIGhhcworCSAgICBzcHVycmVkIGEgbG90IG9mIGludGVyZXN0IGFuZCBoYXMgYmVlbiBwb3J0ZWQgdG8gc2V2ZXJhbAorCSAgICBwbGF0Zm9ybXMgYW5kIG9wZXJhdGluZyBzeXN0ZW1zLiBsd0lQIGNhbiBiZSB1c2VkIGVpdGhlcgorCSAgICB3aXRoIG9yIHdpdGhvdXQgYW4gdW5kZXJseWluZyBPUy4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBsd0lQIGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUQ1AvSVAKKwkgICAgcHJvdG9jb2wgc3VpdGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IDxhCisJICAgIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS9+YWRhbS9sd2lwLyI+QWRhbSBEdW5rZWxzCisJICAgIG9mIHRoZSBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9hPiBidXQgbm93IGlzCisJICAgIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZCBieSBhIHRlYW0gb2YgZGV2ZWxvcGVycworCSAgICBkaXN0cmlidXRlZCB3b3JsZC13aWRlLiBTaW5jZSBpdCdzIHJlbGVhc2UsIGx3SVAgaGFzCisJICAgIHNwdXJyZWQgYSBsb3Qgb2YgaW50ZXJlc3QgYW5kIGhhcyBiZWVuIHBvcnRlZCB0byBzZXZlcmFsCisJICAgIHBsYXRmb3JtcyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuIGx3SVAgY2FuIGJlIHVzZWQgZWl0aGVyCisJICAgIHdpdGggb3Igd2l0aG91dCBhbiB1bmRlcmx5aW5nIE9TLgorCSAgPC9wPgorCSAgPHA+CisJICAgIGx3SVAgaXMgYW4gb3BlbiBzb3VyY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRDUC9JUAorCSAgICBwcm90b2NvbCBzdWl0ZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgPGEKKwkgICAgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlL35hZGFtL2x3aXAvIj5BZGFtIER1bmtlbHMKKwkgICAgb2YgdGhlIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2U8L2E+IGJ1dCBub3cgaXMKKwkgICAgYmVpbmcgYWN0aXZlbHkgZGV2ZWxvcGVkIGJ5IGEgdGVhbSBvZiBkZXZlbG9wZXJzCisJICAgIGRpc3RyaWJ1dGVkIHdvcmxkLXdpZGUuIFNpbmNlIGl0J3MgcmVsZWFzZSwgbHdJUCBoYXMKKwkgICAgc3B1cnJlZCBhIGxvdCBvZiBpbnRlcmVzdCBhbmQgaGFzIGJlZW4gcG9ydGVkIHRvIHNldmVyYWwKKwkgICAgcGxhdGZvcm1zIGFuZCBvcGVyYXRpbmcgc3lzdGVtcy4gbHdJUCBjYW4gYmUgdXNlZCBlaXRoZXIKKwkgICAgd2l0aCBvciB3aXRob3V0IGFuIHVuZGVybHlpbmcgT1MuCisJICA8L3A+CisJICA8cD4KKwkgICAgbHdJUCBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVENQL0lQCisJICAgIHByb3RvY29sIHN1aXRlIHRoYXQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSA8YQorCSAgICBocmVmPSJodHRwOi8vd3d3LnNpY3Muc2UvfmFkYW0vbHdpcC8iPkFkYW0gRHVua2VscworCSAgICBvZiB0aGUgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZTwvYT4gYnV0IG5vdyBpcworCSAgICBiZWluZyBhY3RpdmVseSBkZXZlbG9wZWQgYnkgYSB0ZWFtIG9mIGRldmVsb3BlcnMKKwkgICAgZGlzdHJpYnV0ZWQgd29ybGQtd2lkZS4gU2luY2UgaXQncyByZWxlYXNlLCBsd0lQIGhhcworCSAgICBzcHVycmVkIGEgbG90IG9mIGludGVyZXN0IGFuZCBoYXMgYmVlbiBwb3J0ZWQgdG8gc2V2ZXJhbAorCSAgICBwbGF0Zm9ybXMgYW5kIG9wZXJhdGluZyBzeXN0ZW1zLiBsd0lQIGNhbiBiZSB1c2VkIGVpdGhlcgorCSAgICB3aXRoIG9yIHdpdGhvdXQgYW4gdW5kZXJseWluZyBPUy4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBsd0lQIGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUQ1AvSVAKKwkgICAgcHJvdG9jb2wgc3VpdGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IDxhCisJICAgIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS9+YWRhbS9sd2lwLyI+QWRhbSBEdW5rZWxzCisJICAgIG9mIHRoZSBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9hPiBidXQgbm93IGlzCisJICAgIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZCBieSBhIHRlYW0gb2YgZGV2ZWxvcGVycworCSAgICBkaXN0cmlidXRlZCB3b3JsZC13aWRlLiBTaW5jZSBpdCdzIHJlbGVhc2UsIGx3SVAgaGFzCisJICAgIHNwdXJyZWQgYSBsb3Qgb2YgaW50ZXJlc3QgYW5kIGhhcyBiZWVuIHBvcnRlZCB0byBzZXZlcmFsCisJICAgIHBsYXRmb3JtcyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuIGx3SVAgY2FuIGJlIHVzZWQgZWl0aGVyCisJICAgIHdpdGggb3Igd2l0aG91dCBhbiB1bmRlcmx5aW5nIE9TLgorCSAgPC9wPgorCSAgPHA+CisJICAgIGx3SVAgaXMgYW4gb3BlbiBzb3VyY2UgaW1wbGVtZW50YXRpb24gb2YgdGhlIFRDUC9JUAorCSAgICBwcm90b2NvbCBzdWl0ZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgPGEKKwkgICAgaHJlZj0iaHR0cDovL3d3dy5zaWNzLnNlL35hZGFtL2x3aXAvIj5BZGFtIER1bmtlbHMKKwkgICAgb2YgdGhlIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2U8L2E+IGJ1dCBub3cgaXMKKwkgICAgYmVpbmcgYWN0aXZlbHkgZGV2ZWxvcGVkIGJ5IGEgdGVhbSBvZiBkZXZlbG9wZXJzCisJICAgIGRpc3RyaWJ1dGVkIHdvcmxkLXdpZGUuIFNpbmNlIGl0J3MgcmVsZWFzZSwgbHdJUCBoYXMKKwkgICAgc3B1cnJlZCBhIGxvdCBvZiBpbnRlcmVzdCBhbmQgaGFzIGJlZW4gcG9ydGVkIHRvIHNldmVyYWwKKwkgICAgcGxhdGZvcm1zIGFuZCBvcGVyYXRpbmcgc3lzdGVtcy4gbHdJUCBjYW4gYmUgdXNlZCBlaXRoZXIKKwkgICAgd2l0aCBvciB3aXRob3V0IGFuIHVuZGVybHlpbmcgT1MuCisJICA8L3A+CisJICA8cD4KKwkgICAgbHdJUCBpcyBhbiBvcGVuIHNvdXJjZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVENQL0lQCisJICAgIHByb3RvY29sIHN1aXRlIHRoYXQgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSA8YQorCSAgICBocmVmPSJodHRwOi8vd3d3LnNpY3Muc2UvfmFkYW0vbHdpcC8iPkFkYW0gRHVua2VscworCSAgICBvZiB0aGUgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZTwvYT4gYnV0IG5vdyBpcworCSAgICBiZWluZyBhY3RpdmVseSBkZXZlbG9wZWQgYnkgYSB0ZWFtIG9mIGRldmVsb3BlcnMKKwkgICAgZGlzdHJpYnV0ZWQgd29ybGQtd2lkZS4gU2luY2UgaXQncyByZWxlYXNlLCBsd0lQIGhhcworCSAgICBzcHVycmVkIGEgbG90IG9mIGludGVyZXN0IGFuZCBoYXMgYmVlbiBwb3J0ZWQgdG8gc2V2ZXJhbAorCSAgICBwbGF0Zm9ybXMgYW5kIG9wZXJhdGluZyBzeXN0ZW1zLiBsd0lQIGNhbiBiZSB1c2VkIGVpdGhlcgorCSAgICB3aXRoIG9yIHdpdGhvdXQgYW4gdW5kZXJseWluZyBPUy4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBsd0lQIGlzIGFuIG9wZW4gc291cmNlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBUQ1AvSVAKKwkgICAgcHJvdG9jb2wgc3VpdGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IDxhCisJICAgIGhyZWY9Imh0dHA6Ly93d3cuc2ljcy5zZS9+YWRhbS9sd2lwLyI+QWRhbSBEdW5rZWxzCisJICAgIG9mIHRoZSBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlPC9hPiBidXQgbm93IGlzCisJICAgIGJlaW5nIGFjdGl2ZWx5IGRldmVsb3BlZCBieSBhIHRlYW0gb2YgZGV2ZWxvcGVycworCSAgICBkaXN0cmlidXRlZCB3b3JsZC13aWRlLiBTaW5jZSBpdCdzIHJlbGVhc2UsIGx3SVAgaGFzCisJICAgIHNwdXJyZWQgYSBsb3Qgb2YgaW50ZXJlc3QgYW5kIGhhcyBiZWVuIHBvcnRlZCB0byBzZXZlcmFsCisJICAgIHBsYXRmb3JtcyBhbmQgb3BlcmF0aW5nIHN5c3RlbXMuIGx3SVAgY2FuIGJlIHVzZWQgZWl0aGVyCisJICAgIHdpdGggb3Igd2l0aG91dCBhbiB1bmRlcmx5aW5nIE9TLgorCSAgPC9wPgorCSAgPHA+CisJICAgIFRoZSBmb2N1cyBvZiB0aGUgbHdJUCBUQ1AvSVAgaW1wbGVtZW50YXRpb24gaXMgdG8gcmVkdWNlCisJICAgIHRoZSBSQU0gdXNhZ2Ugd2hpbGUgc3RpbGwgaGF2aW5nIGEgZnVsbCBzY2FsZSBUQ1AuIFRoaXMKKwkgICAgbWFrZXMgbHdJUCBzdWl0YWJsZSBmb3IgdXNlIGluIGVtYmVkZGVkIHN5c3RlbXMgd2l0aCB0ZW5zCisJICAgIG9mIGtpbG9ieXRlcyBvZiBmcmVlIFJBTSBhbmQgcm9vbSBmb3IgYXJvdW5kIDQwIGtpbG9ieXRlcworCSAgICBvZiBjb2RlIFJPTS4KKwkgIDwvcD4KKwkgIDxwPgorCSAgICBNb3JlIGluZm9ybWF0aW9uIGFib3V0IGx3SVAgY2FuIGJlIGZvdW5kIGF0IHRoZSBsd0lQCisJICAgIGhvbWVwYWdlIGF0IDxhCisJICAgIGhyZWY9Imh0dHA6Ly9zYXZhbm5haC5ub25nbnUub3JnL3Byb2plY3RzL2x3aXAvIj5odHRwOi8vc2F2YW5uYWgubm9uZ251Lm9yZy9wcm9qZWN0cy9sd2lwLzwvYT4KKwkgICAgb3IgYXQgdGhlIGx3SVAgd2lraSBhdCA8YQorCSAgICBocmVmPSJodHRwOi8vbHdpcC53aWtpYS5jb20vIj5odHRwOi8vbHdpcC53aWtpYS5jb20vPC9hPi4KKwkgIDwvcD4KKwk8L3RkPjx0ZD4KKwkgICZuYnNwOworCTwvdGQ+PC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZXhhbXBsZXNfZnNkYXRhLmMgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzZGF0YS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlZWQ5MjYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2V4YW1wbGVzX2ZzZGF0YS5jCkBAIC0wLDAgKzEsMTU0MyBAQAorI2luY2x1ZGUgImx3aXAvYXBwcy9mcy5oIgorI2luY2x1ZGUgImx3aXAvZGVmLmgiCisKKworI2RlZmluZSBmaWxlX05VTEwgKHN0cnVjdCBmc2RhdGFfZmlsZSAqKSBOVUxMCisKKworI2lmbmRlZiBGU19GSUxFX0ZMQUdTX0hFQURFUl9JTkNMVURFRAorI2RlZmluZSBGU19GSUxFX0ZMQUdTX0hFQURFUl9JTkNMVURFRCAxCisjZW5kaWYKKyNpZm5kZWYgRlNfRklMRV9GTEFHU19IRUFERVJfUEVSU0lTVEVOVAorI2RlZmluZSBGU19GSUxFX0ZMQUdTX0hFQURFUl9QRVJTSVNURU5UIDAKKyNlbmRpZgorLyogRlNEQVRBX0ZJTEVfQUxJR05NRU5UOiAwPW9mZiwgMT1ieSB2YXJpYWJsZSwgMj1ieSBpbmNsdWRlICovCisjaWZuZGVmIEZTREFUQV9GSUxFX0FMSUdOTUVOVAorI2RlZmluZSBGU0RBVEFfRklMRV9BTElHTk1FTlQgMAorI2VuZGlmCisjaWZuZGVmIEZTREFUQV9BTElHTl9QUkUKKyNkZWZpbmUgRlNEQVRBX0FMSUdOX1BSRQorI2VuZGlmCisjaWZuZGVmIEZTREFUQV9BTElHTl9QT1NUCisjZGVmaW5lIEZTREFUQV9BTElHTl9QT1NUCisjZW5kaWYKKyNpZiBGU0RBVEFfRklMRV9BTElHTk1FTlQ9PTIKKyNpbmNsdWRlICJmc2RhdGFfYWxpZ25tZW50LmgiCisjZW5kaWYKKyNpZiBGU0RBVEFfRklMRV9BTElHTk1FTlQ9PTEKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZHVtbXlfYWxpZ25fX2ltZ19zaWNzX2dpZiA9IDA7CisjZW5kaWYKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEZTREFUQV9BTElHTl9QUkUgZGF0YV9faW1nX3NpY3NfZ2lmW10gRlNEQVRBX0FMSUdOX1BPU1QgPSB7CisvKiAvaW1nL3NpY3MuZ2lmICgxNCBjaGFycykgKi8KKzB4MmYsMHg2OSwweDZkLDB4NjcsMHgyZiwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg2NywweDY5LDB4NjYsMHgwMCwweDAwLDB4MDAsCisKKy8qIEhUVFAgaGVhZGVyICovCisvKiAiSFRUUC8xLjEgMjAwIE9LCisiICgxNyBieXRlcykgKi8KKzB4NDgsMHg1NCwweDU0LDB4NTAsMHgyZiwweDMxLDB4MmUsMHgzMSwweDIwLDB4MzIsMHgzMCwweDMwLDB4MjAsMHg0ZiwweDRiLDB4MGQsCisweDBhLAorLyogIlNlcnZlcjogbHdJUC8yLjAuM2QgKGh0dHA6Ly9zYXZhbm5haC5ub25nbnUub3JnL3Byb2plY3RzL2x3aXApCisiICg2NCBieXRlcykgKi8KKzB4NTMsMHg2NSwweDcyLDB4NzYsMHg2NSwweDcyLDB4M2EsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MmYsMHgzMiwweDJlLDB4MzAsCisweDJlLDB4MzMsMHg2NCwweDIwLDB4MjgsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDczLDB4NjEsMHg3NiwweDYxLAorMHg2ZSwweDZlLDB4NjEsMHg2OCwweDJlLDB4NmUsMHg2ZiwweDZlLDB4NjcsMHg2ZSwweDc1LDB4MmUsMHg2ZiwweDcyLDB4NjcsMHgyZiwKKzB4NzAsMHg3MiwweDZmLDB4NmEsMHg2NSwweDYzLDB4NzQsMHg3MywweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyOSwweDBkLDB4MGEsCisKKy8qICJDb250ZW50LUxlbmd0aDogNzI0CisiICgxOCsgYnl0ZXMpICovCisweDQzLDB4NmYsMHg2ZSwweDc0LDB4NjUsMHg2ZSwweDc0LDB4MmQsMHg0YywweDY1LDB4NmUsMHg2NywweDc0LDB4NjgsMHgzYSwweDIwLAorMHgzNywweDMyLDB4MzQsMHgwZCwweDBhLAorLyogIkNvbm5lY3Rpb246IGtlZXAtYWxpdmUKKyIgKDI0IGJ5dGVzKSAqLworMHg0MywweDZmLDB4NmUsMHg2ZSwweDY1LDB4NjMsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDNhLDB4MjAsMHg2YiwweDY1LDB4NjUsMHg3MCwKKzB4MmQsMHg2MSwweDZjLDB4NjksMHg3NiwweDY1LDB4MGQsMHgwYSwKKy8qICJDb250ZW50LVR5cGU6IGltYWdlL2dpZgorCisiICgyNyBieXRlcykgKi8KKzB4NDMsMHg2ZiwweDZlLDB4NzQsMHg2NSwweDZlLDB4NzQsMHgyZCwweDU0LDB4NzksMHg3MCwweDY1LDB4M2EsMHgyMCwweDY5LDB4NmQsCisweDYxLDB4NjcsMHg2NSwweDJmLDB4NjcsMHg2OSwweDY2LDB4MGQsMHgwYSwweDBkLDB4MGEsCisvKiByYXcgZmlsZSBkYXRhICg3MjQgYnl0ZXMpICovCisweDQ3LDB4NDksMHg0NiwweDM4LDB4MzksMHg2MSwweDQ2LDB4MDAsMHgyMiwweDAwLDB4YTUsMHgwMCwweDAwLDB4ZDksMHgyYiwweDM5LAorMHg2YSwweDZhLDB4NmEsMHhiZiwweGJmLDB4YmYsMHg5MywweDkzLDB4OTMsMHgwZiwweDBmLDB4MGYsMHhiMCwweGIwLDB4YjAsMHhhNiwKKzB4YTYsMHhhNiwweDgwLDB4ODAsMHg4MCwweDc2LDB4NzYsMHg3NiwweDFlLDB4MWUsMHgxZSwweDlkLDB4OWQsMHg5ZCwweDJlLDB4MmUsCisweDJlLDB4NDksMHg0OSwweDQ5LDB4NTQsMHg1NCwweDU0LDB4OGEsMHg4YSwweDhhLDB4NjAsMHg2MCwweDYwLDB4YzYsMHhhNiwweDk5LAorMHhiZCwweGI1LDB4YjIsMHhjMiwweGFiLDB4YTEsMHhkOSwweDQxLDB4NDAsMHhkNSwweDY3LDB4NTUsMHhjMCwweGIwLDB4YWEsMHhkNSwKKzB4NWUsMHg0ZSwweGQ2LDB4NTAsMHg0NSwweGNjLDB4OTMsMHg3ZCwweGM4LDB4YTEsMHg5MCwweGNlLDB4OGIsMHg3NiwweGQyLDB4N2IsCisweDY1LDB4ZDEsMHg4NCwweDZkLDB4YzksMHg5OSwweDg2LDB4M2EsMHgzYSwweDNhLDB4MDAsMHgwMCwweDAwLDB4YjgsMHhiOCwweGI4LAorMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwKKzB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsCisweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLAorMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwKKzB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsCisweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MmMsMHgwMCwweDAwLAorMHgwMCwweDAwLDB4NDYsMHgwMCwweDIyLDB4MDAsMHgwMCwweDA2LDB4ZmUsMHg0MCwweDkwLDB4NzAsMHg0OCwweDJjLDB4MWEsMHg4ZiwKKzB4YzgsMHhhNCwweDcyLDB4YzksMHg2YywweDNhLDB4OWYsMHhkMCwweGE4LDB4NzQsMHg0YSwweGFkLDB4NWEsMHhhZiwweGQ4LDB4YWMsCisweDc2LDB4YTksMHg0MCwweDA0LDB4YmUsMHg4MywweGUyLDB4NjAsMHgzYywweDUwLDB4MjAsMHgwZCwweDhlLDB4NmYsMHgwMCwweDMxLAorMHgyOCwweDFjLDB4MGQsMHgwNywweGI1LDB4YzMsMHg2MCwweDc1LDB4MjQsMHgzZSwweGY4LDB4ZmMsMHg4NywweDExLDB4MDYsMHhlOSwKKzB4M2QsMHg0NiwweDA3LDB4MGIsMHg3YSwweDdhLDB4N2MsMHg0MywweDA2LDB4MWUsMHg4NCwweDc4LDB4MGIsMHgwNywweDZlLDB4NTEsCisweDAxLDB4OGEsMHg4NCwweDA4LDB4N2UsMHg3OSwweDgwLDB4ODcsMHg4OSwweDkxLDB4N2EsMHg5MywweDBhLDB4MDQsMHg5OSwweDc4LAorMHg5NiwweDRmLDB4MDMsMHg5ZSwweDc5LDB4MDEsMHg5NCwweDlmLDB4NDMsMHg5YywweGEzLDB4YTQsMHgwNSwweDc3LDB4YTMsMHhhMCwKKzB4NGUsMHg5OCwweDc5LDB4MGIsMHgxZSwweDgzLDB4YTQsMHhhNiwweDFmLDB4OTYsMHgwNSwweDlkLDB4YWEsMHg3OCwweDAxLDB4MDcsCisweDg0LDB4MDQsMHgxZSwweDFlLDB4YmIsMHhiOCwweDUxLDB4ODQsMHgwZSwweDQzLDB4MDUsMHgwNywweDc3LDB4YTUsMHg3ZiwweDQyLAorMHhiMSwweGIyLDB4MDEsMHg2MywweDA4LDB4MGQsMHhiYiwweDAxLDB4MGMsMHg3YSwweDBkLDB4NDQsMHgwZSwweGQ4LDB4YWYsMHg0YywKKzB4MDUsMHg3YSwweDA0LDB4NDcsMHgwNywweDA3LDB4YjcsMHg4MCwweGEyLDB4ZTEsMHg3ZCwweDQ0LDB4MDUsMHgwMSwweDA0LDB4MDEsCisweGQwLDB4ZWEsMHg4NywweDkzLDB4NGYsMHhlMCwweDlhLDB4NDksMHhjZSwweGQ4LDB4NzksMHgwNCwweDY2LDB4MjAsMHgxNSwweDEwLAorMHgxMCwweDExLDB4OTIsMHgyOSwweDgwLDB4YjYsMHhjMCwweDkxLDB4MTUsMHg0NSwweDFlLDB4OTAsMHgxOSwweDcxLDB4NDYsMHhhOCwKKzB4NWMsMHgwNCwweDBlLDB4MDAsMHgyMiwweDRlLDB4ZTgsMHg0MCwweDI0LDB4OWYsMHgzZSwweDA0LDB4MDYsMHhhNywweDU4LDB4ZDQsCisweDkzLDB4YTAsMHgxYywweDkxLDB4M2YsMHhlOCwweGYwLDB4ODgsMHgwMywweGIxLDB4MjEsMHhhMiwweDQ5LDB4MDAsMHgxOSwweDg2LAorMHhmYywweDUyLDB4NDQsMHhlMCwweDAxLDB4OWQsMHgyOSwweDIxLDB4MTUsMHgyNSwweDUwLDB4ZjcsMHg2NywweDI1LDB4MWUsMHgwNiwKKzB4ZmQsMHg0ZSwweDlhLDB4YjQsMHg5MCwweGFjLDB4MTUsMHhmYSwweGNiLDB4NTIsMHg1MywweDFlLDB4OGMsMHhmMiwweGY4LDB4MDcsCisweDkyLDB4MmQsMHgwOCwweDNhLDB4NGQsMHgxMiwweDQ5LDB4OTUsMHg0OSwweGRiLDB4MTQsMHgwNCwweGM0LDB4MTQsMHg4NSwweDI5LAorMHhhYSwweGU3LDB4MDEsMHgwOCwweGE0LDB4NDksMHgwMSwweDE0LDB4NTEsMHhlMCwweDUzLDB4OTEsMHhkNSwweDI5LDB4MDYsMHgxYSwKKzB4NjQsMHgwMiwweGY0LDB4YzcsMHg4MSwweDllLDB4MDUsMHgyMCwweDIyLDB4NjQsMHhhNSwweDMwLDB4YWUsMHhhYiwweDllLDB4OTcsCisweDUzLDB4ZDgsMHhiOSwweGZkLDB4NTAsMHhlZiwweDkzLDB4MDIsMHg0MiwweDc0LDB4MzQsMHhlOCwweDljLDB4MjAsMHgyMSwweGM5LAorMHgwMSwweDY4LDB4NzgsMHhlNiwweDU1LDB4MjksMHgyMCwweDU2LDB4NGYsMHg0YywweDQwLDB4NTEsMHg3MSwweDgyLDB4YzAsMHg3MCwKKzB4MjEsMHgyMiwweDg1LDB4YmUsMHg0YiwweDFjLDB4NDQsMHgwNSwweGVhLDB4YTQsMHgwMSwweGJmLDB4MjIsMHhiNSwweGYwLDB4MWMsCisweDA2LDB4NTEsMHgzOCwweDhmLDB4ZTAsMHgyMiwweGVjLDB4MTgsMHhhYywweDM5LDB4MjIsMHhkNCwweGQ2LDB4OTMsMHg0NCwweDAxLAorMHgzMiwweDgyLDB4YzgsMHhmYywweDYxLDB4YjMsMHgwMSwweDQ1LDB4MGMsMHgyZSwweDgzLDB4MzAsMHhkMCwweDBlLDB4MTcsMHgyNCwKKzB4MGYsMHg3MCwweDg1LDB4OTQsMHhlZSwweDA1LDB4MDUsMHg1MywweDRiLDB4MzIsMHgxYiwweDNmLDB4OTgsMHhkMywweDFkLDB4MjksCisweDgxLDB4YjAsMHhhZSwweDFlLDB4OGMsMHg3ZSwweDY4LDB4ZTAsMHg2MCwweDVhLDB4NTQsMHg4ZiwweGIwLDB4NzgsMHg2OSwweDczLAorMHgwNiwweGEyLDB4MDAsMHg2YiwweDU3LDB4Y2EsMHgzZCwweDExLDB4NTAsMHhiZCwweDA0LDB4MzAsMHg0YiwweDNhLDB4ZDQsMHhhYiwKKzB4NWYsMHgxZiwweDliLDB4M2QsMHgxMywweDc0LDB4MjcsMHg4OCwweDNjLDB4MjUsMHhlMCwweDE3LDB4YmUsMHg3YSwweDc5LDB4NDUsCisweDBkLDB4MGMsMHhiMCwweDhiLDB4ZGEsMHg5MCwweGNhLDB4ODAsMHgwNiwweDVkLDB4MTcsMHg2MCwweDFjLDB4MjIsMHg0YywweGQ4LAorMHg1NywweDIyLDB4MDYsMHgyMCwweDAwLDB4OTgsMHgwNywweDA4LDB4ZTQsMHg1NiwweDgwLDB4ODAsMHgxYywweGM1LDB4YjcsMHhjNSwKKzB4ODIsMHgwYywweDM2LDB4ZTgsMHhlMCwweDgzLDB4MTAsMHg0NiwweDI4LDB4ZTEsMHg4NCwweDE0LDB4NTYsMHg2OCwweGExLDB4MTAsCisweDQxLDB4MDAsMHgwMCwweDNiLH07CisKKyNpZiBGU0RBVEFfRklMRV9BTElHTk1FTlQ9PTEKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgZHVtbXlfYWxpZ25fXzQwNF9odG1sID0gMTsKKyNlbmRpZgorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgRlNEQVRBX0FMSUdOX1BSRSBkYXRhX180MDRfaHRtbFtdIEZTREFUQV9BTElHTl9QT1NUID0geworLyogLzQwNC5odG1sICgxMCBjaGFycykgKi8KKzB4MmYsMHgzNCwweDMwLDB4MzQsMHgyZSwweDY4LDB4NzQsMHg2ZCwweDZjLDB4MDAsMHgwMCwweDAwLAorCisvKiBIVFRQIGhlYWRlciAqLworLyogIkhUVFAvMS4xIDQwNCBGaWxlIG5vdCBmb3VuZAorIiAoMjkgYnl0ZXMpICovCisweDQ4LDB4NTQsMHg1NCwweDUwLDB4MmYsMHgzMSwweDJlLDB4MzEsMHgyMCwweDM0LDB4MzAsMHgzNCwweDIwLDB4NDYsMHg2OSwweDZjLAorMHg2NSwweDIwLDB4NmUsMHg2ZiwweDc0LDB4MjAsMHg2NiwweDZmLDB4NzUsMHg2ZSwweDY0LDB4MGQsMHgwYSwKKy8qICJTZXJ2ZXI6IGx3SVAvMi4wLjNkIChodHRwOi8vc2F2YW5uYWgubm9uZ251Lm9yZy9wcm9qZWN0cy9sd2lwKQorIiAoNjQgYnl0ZXMpICovCisweDUzLDB4NjUsMHg3MiwweDc2LDB4NjUsMHg3MiwweDNhLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDJmLDB4MzIsMHgyZSwweDMwLAorMHgyZSwweDMzLDB4NjQsMHgyMCwweDI4LDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3MywweDYxLDB4NzYsMHg2MSwKKzB4NmUsMHg2ZSwweDYxLDB4NjgsMHgyZSwweDZlLDB4NmYsMHg2ZSwweDY3LDB4NmUsMHg3NSwweDJlLDB4NmYsMHg3MiwweDY3LDB4MmYsCisweDcwLDB4NzIsMHg2ZiwweDZhLDB4NjUsMHg2MywweDc0LDB4NzMsMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLDB4MjksMHgwZCwweDBhLAorCisvKiAiQ29udGVudC1MZW5ndGg6IDU2NQorIiAoMTgrIGJ5dGVzKSAqLworMHg0MywweDZmLDB4NmUsMHg3NCwweDY1LDB4NmUsMHg3NCwweDJkLDB4NGMsMHg2NSwweDZlLDB4NjcsMHg3NCwweDY4LDB4M2EsMHgyMCwKKzB4MzUsMHgzNiwweDM1LDB4MGQsMHgwYSwKKy8qICJDb25uZWN0aW9uOiBrZWVwLWFsaXZlCisiICgyNCBieXRlcykgKi8KKzB4NDMsMHg2ZiwweDZlLDB4NmUsMHg2NSwweDYzLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgzYSwweDIwLDB4NmIsMHg2NSwweDY1LDB4NzAsCisweDJkLDB4NjEsMHg2YywweDY5LDB4NzYsMHg2NSwweDBkLDB4MGEsCisvKiAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWwKKworIiAoMjcgYnl0ZXMpICovCisweDQzLDB4NmYsMHg2ZSwweDc0LDB4NjUsMHg2ZSwweDc0LDB4MmQsMHg1NCwweDc5LDB4NzAsMHg2NSwweDNhLDB4MjAsMHg3NCwweDY1LAorMHg3OCwweDc0LDB4MmYsMHg2OCwweDc0LDB4NmQsMHg2YywweDBkLDB4MGEsMHgwZCwweDBhLAorLyogcmF3IGZpbGUgZGF0YSAoNTY1IGJ5dGVzKSAqLworMHgzYywweDY4LDB4NzQsMHg2ZCwweDZjLDB4M2UsMHgwZCwweDBhLDB4M2MsMHg2OCwweDY1LDB4NjEsMHg2NCwweDNlLDB4M2MsMHg3NCwKKzB4NjksMHg3NCwweDZjLDB4NjUsMHgzZSwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHgyZCwweDIwLDB4NDEsMHgyMCwweDRjLDB4NjksCisweDY3LDB4NjgsMHg3NCwweDc3LDB4NjUsMHg2OSwweDY3LDB4NjgsMHg3NCwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLAorMHgyMCwweDUzLDB4NzQsMHg2MSwweDYzLDB4NmIsMHgzYywweDJmLDB4NzQsMHg2OSwweDc0LDB4NmMsMHg2NSwweDNlLDB4M2MsMHgyZiwKKzB4NjgsMHg2NSwweDYxLDB4NjQsMHgzZSwweDBkLDB4MGEsMHgzYywweDYyLDB4NmYsMHg2NCwweDc5LDB4MjAsMHg2MiwweDY3LDB4NjMsCisweDZmLDB4NmMsMHg2ZiwweDcyLDB4M2QsMHgyMiwweDc3LDB4NjgsMHg2OSwweDc0LDB4NjUsMHgyMiwweDIwLDB4NzQsMHg2NSwweDc4LAorMHg3NCwweDNkLDB4MjIsMHg2MiwweDZjLDB4NjEsMHg2MywweDZiLDB4MjIsMHgzZSwweDBkLDB4MGEsMHgwZCwweDBhLDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDNjLDB4NzQsMHg2MSwweDYyLDB4NmMsMHg2NSwweDIwLDB4NzcsMHg2OSwweDY0LDB4NzQsMHg2OCwweDNkLDB4MjIsCisweDMxLDB4MzAsMHgzMCwweDI1LDB4MjIsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgzYywweDc0LAorMHg3MiwweDIwLDB4NzYsMHg2MSwweDZjLDB4NjksMHg2NywweDZlLDB4M2QsMHgyMiwweDc0LDB4NmYsMHg3MCwweDIyLDB4M2UsMHgzYywKKzB4NzQsMHg2NCwweDIwLDB4NzcsMHg2OSwweDY0LDB4NzQsMHg2OCwweDNkLDB4MjIsMHgzOCwweDMwLDB4MjIsMHgzZSwweDA5LDB4MjAsCisweDIwLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NjEsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LAorMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg3MywKKzB4NjUsMHgyZiwweDIyLDB4M2UsMHgzYywweDY5LDB4NmQsMHg2NywweDIwLDB4NzMsMHg3MiwweDYzLDB4M2QsMHgyMiwweDJmLDB4NjksCisweDZkLDB4NjcsMHgyZiwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg2NywweDY5LDB4NjYsMHgyMiwweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDYyLDB4NmYsMHg3MiwweDY0LDB4NjUsMHg3MiwweDNkLDB4MjIsMHgzMCwweDIyLDB4MjAsMHg2MSwweDZjLDB4NzQsMHgzZCwKKzB4MjIsMHg1MywweDQ5LDB4NDMsMHg1MywweDIwLDB4NmMsMHg2ZiwweDY3LDB4NmYsMHgyMiwweDIwLDB4NzQsMHg2OSwweDc0LDB4NmMsCisweDY1LDB4M2QsMHgyMiwweDUzLDB4NDksMHg0MywweDUzLDB4MjAsMHg2YywweDZmLDB4NjcsMHg2ZiwweDIyLDB4M2UsMHgzYywweDJmLAorMHg2MSwweDNlLDB4MGQsMHgwYSwweDA5LDB4M2MsMHgyZiwweDc0LDB4NjQsMHgzZSwweDNjLDB4NzQsMHg2NCwweDIwLDB4NzcsMHg2OSwKKzB4NjQsMHg3NCwweDY4LDB4M2QsMHgyMiwweDM1LDB4MzAsMHgzMCwweDIyLDB4M2UsMHgwOSwweDIwLDB4MjAsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgzYywweDY4LDB4MzEsMHgzZSwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHgyZCwweDIwLDB4NDEsMHgyMCwweDRjLAorMHg2OSwweDY3LDB4NjgsMHg3NCwweDc3LDB4NjUsMHg2OSwweDY3LDB4NjgsMHg3NCwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwKKzB4NTAsMHgyMCwweDUzLDB4NzQsMHg2MSwweDYzLDB4NmIsMHgzYywweDJmLDB4NjgsMHgzMSwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsCisweDIwLDB4M2MsMHg2OCwweDMyLDB4M2UsMHgzNCwweDMwLDB4MzQsMHgyMCwweDJkLDB4MjAsMHg1MCwweDYxLDB4NjcsMHg2NSwweDIwLAorMHg2ZSwweDZmLDB4NzQsMHgyMCwweDY2LDB4NmYsMHg3NSwweDZlLDB4NjQsMHgzYywweDJmLDB4NjgsMHgzMiwweDNlLDB4MGQsMHgwYSwKKzB4MDksMHgyMCwweDIwLDB4M2MsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg1MywweDZmLDB4NzIsCisweDcyLDB4NzksMHgyYywweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg3MCwweDYxLDB4NjcsMHg2NSwweDIwLDB4NzksMHg2ZiwweDc1LAorMHgyMCwweDYxLDB4NzIsMHg2NSwweDIwLDB4NzIsMHg2NSwweDcxLDB4NzUsMHg2NSwweDczLDB4NzQsMHg2OSwweDZlLDB4NjcsMHgyMCwKKzB4NzcsMHg2MSwweDczLDB4MjAsMHg2ZSwweDZmLDB4NzQsMHgyMCwweDY2LDB4NmYsMHg3NSwweDZlLDB4NjQsMHgyMCwweDZmLDB4NmUsCisweDIwLDB4NzQsMHg2OCwweDY5LDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDczLDB4NjUsMHg3MiwweDc2LAorMHg2NSwweDcyLDB4MmUsMHgyMCwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwKKzB4M2MsMHgyZiwweDc0LDB4NjQsMHgzZSwweDNjLDB4NzQsMHg2NCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDI2LDB4NmUsCisweDYyLDB4NzMsMHg3MCwweDNiLDB4MGQsMHgwYSwweDA5LDB4M2MsMHgyZiwweDc0LDB4NjQsMHgzZSwweDNjLDB4MmYsMHg3NCwweDcyLAorMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgzYywweDJmLDB4NzQsMHg2MSwweDYyLDB4NmMsMHg2NSwKKzB4M2UsMHgwZCwweDBhLDB4M2MsMHgyZiwweDYyLDB4NmYsMHg2NCwweDc5LDB4M2UsMHgwZCwweDBhLDB4M2MsMHgyZiwweDY4LDB4NzQsCisweDZkLDB4NmMsMHgzZSwweDBkLDB4MGEsfTsKKworI2lmIEZTREFUQV9GSUxFX0FMSUdOTUVOVD09MQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBkdW1teV9hbGlnbl9faW5kZXhfaHRtbCA9IDI7CisjZW5kaWYKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEZTREFUQV9BTElHTl9QUkUgZGF0YV9faW5kZXhfaHRtbFtdIEZTREFUQV9BTElHTl9QT1NUID0geworLyogL2luZGV4Lmh0bWwgKDEyIGNoYXJzKSAqLworMHgyZiwweDY5LDB4NmUsMHg2NCwweDY1LDB4NzgsMHgyZSwweDY4LDB4NzQsMHg2ZCwweDZjLDB4MDAsCisKKy8qIEhUVFAgaGVhZGVyICovCisvKiAiSFRUUC8xLjEgMjAwIE9LCisiICgxNyBieXRlcykgKi8KKzB4NDgsMHg1NCwweDU0LDB4NTAsMHgyZiwweDMxLDB4MmUsMHgzMSwweDIwLDB4MzIsMHgzMCwweDMwLDB4MjAsMHg0ZiwweDRiLDB4MGQsCisweDBhLAorLyogIlNlcnZlcjogbHdJUC8yLjAuM2QgKGh0dHA6Ly9zYXZhbm5haC5ub25nbnUub3JnL3Byb2plY3RzL2x3aXApCisiICg2NCBieXRlcykgKi8KKzB4NTMsMHg2NSwweDcyLDB4NzYsMHg2NSwweDcyLDB4M2EsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MmYsMHgzMiwweDJlLDB4MzAsCisweDJlLDB4MzMsMHg2NCwweDIwLDB4MjgsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDczLDB4NjEsMHg3NiwweDYxLAorMHg2ZSwweDZlLDB4NjEsMHg2OCwweDJlLDB4NmUsMHg2ZiwweDZlLDB4NjcsMHg2ZSwweDc1LDB4MmUsMHg2ZiwweDcyLDB4NjcsMHgyZiwKKzB4NzAsMHg3MiwweDZmLDB4NmEsMHg2NSwweDYzLDB4NzQsMHg3MywweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyOSwweDBkLDB4MGEsCisKKy8qICJDb250ZW50LUxlbmd0aDogMTc1MQorIiAoMTgrIGJ5dGVzKSAqLworMHg0MywweDZmLDB4NmUsMHg3NCwweDY1LDB4NmUsMHg3NCwweDJkLDB4NGMsMHg2NSwweDZlLDB4NjcsMHg3NCwweDY4LDB4M2EsMHgyMCwKKzB4MzEsMHgzNywweDM1LDB4MzEsMHgwZCwweDBhLAorLyogIkNvbm5lY3Rpb246IGtlZXAtYWxpdmUKKyIgKDI0IGJ5dGVzKSAqLworMHg0MywweDZmLDB4NmUsMHg2ZSwweDY1LDB4NjMsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDNhLDB4MjAsMHg2YiwweDY1LDB4NjUsMHg3MCwKKzB4MmQsMHg2MSwweDZjLDB4NjksMHg3NiwweDY1LDB4MGQsMHgwYSwKKy8qICJDb250ZW50LVR5cGU6IHRleHQvaHRtbAorCisiICgyNyBieXRlcykgKi8KKzB4NDMsMHg2ZiwweDZlLDB4NzQsMHg2NSwweDZlLDB4NzQsMHgyZCwweDU0LDB4NzksMHg3MCwweDY1LDB4M2EsMHgyMCwweDc0LDB4NjUsCisweDc4LDB4NzQsMHgyZiwweDY4LDB4NzQsMHg2ZCwweDZjLDB4MGQsMHgwYSwweDBkLDB4MGEsCisvKiByYXcgZmlsZSBkYXRhICgxNzUxIGJ5dGVzKSAqLworMHgzYywweDY4LDB4NzQsMHg2ZCwweDZjLDB4M2UsMHgwZCwweDBhLDB4M2MsMHg2OCwweDY1LDB4NjEsMHg2NCwweDNlLDB4M2MsMHg3NCwKKzB4NjksMHg3NCwweDZjLDB4NjUsMHgzZSwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHgyZCwweDIwLDB4NDEsMHgyMCwweDRjLDB4NjksCisweDY3LDB4NjgsMHg3NCwweDc3LDB4NjUsMHg2OSwweDY3LDB4NjgsMHg3NCwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLAorMHgyMCwweDUzLDB4NzQsMHg2MSwweDYzLDB4NmIsMHgzYywweDJmLDB4NzQsMHg2OSwweDc0LDB4NmMsMHg2NSwweDNlLDB4M2MsMHgyZiwKKzB4NjgsMHg2NSwweDYxLDB4NjQsMHgzZSwweDBkLDB4MGEsMHgzYywweDYyLDB4NmYsMHg2NCwweDc5LDB4MjAsMHg2MiwweDY3LDB4NjMsCisweDZmLDB4NmMsMHg2ZiwweDcyLDB4M2QsMHgyMiwweDc3LDB4NjgsMHg2OSwweDc0LDB4NjUsMHgyMiwweDIwLDB4NzQsMHg2NSwweDc4LAorMHg3NCwweDNkLDB4MjIsMHg2MiwweDZjLDB4NjEsMHg2MywweDZiLDB4MjIsMHgzZSwweDBkLDB4MGEsMHgwZCwweDBhLDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDNjLDB4NzQsMHg2MSwweDYyLDB4NmMsMHg2NSwweDIwLDB4NzcsMHg2OSwweDY0LDB4NzQsMHg2OCwweDNkLDB4MjIsCisweDMxLDB4MzAsMHgzMCwweDI1LDB4MjIsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgzYywweDc0LAorMHg3MiwweDIwLDB4NzYsMHg2MSwweDZjLDB4NjksMHg2NywweDZlLDB4M2QsMHgyMiwweDc0LDB4NmYsMHg3MCwweDIyLDB4M2UsMHgzYywKKzB4NzQsMHg2NCwweDIwLDB4NzcsMHg2OSwweDY0LDB4NzQsMHg2OCwweDNkLDB4MjIsMHgzOCwweDMwLDB4MjIsMHgzZSwweDA5LDB4MjAsCisweDIwLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NjEsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LAorMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg3MywKKzB4NjUsMHgyZiwweDIyLDB4M2UsMHgzYywweDY5LDB4NmQsMHg2NywweDIwLDB4NzMsMHg3MiwweDYzLDB4M2QsMHgyMiwweDJmLDB4NjksCisweDZkLDB4NjcsMHgyZiwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg2NywweDY5LDB4NjYsMHgyMiwweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDYyLDB4NmYsMHg3MiwweDY0LDB4NjUsMHg3MiwweDNkLDB4MjIsMHgzMCwweDIyLDB4MjAsMHg2MSwweDZjLDB4NzQsMHgzZCwKKzB4MjIsMHg1MywweDQ5LDB4NDMsMHg1MywweDIwLDB4NmMsMHg2ZiwweDY3LDB4NmYsMHgyMiwweDIwLDB4NzQsMHg2OSwweDc0LDB4NmMsCisweDY1LDB4M2QsMHgyMiwweDUzLDB4NDksMHg0MywweDUzLDB4MjAsMHg2YywweDZmLDB4NjcsMHg2ZiwweDIyLDB4M2UsMHgzYywweDJmLAorMHg2MSwweDNlLDB4MGQsMHgwYSwweDA5LDB4M2MsMHgyZiwweDc0LDB4NjQsMHgzZSwweDNjLDB4NzQsMHg2NCwweDIwLDB4NzcsMHg2OSwKKzB4NjQsMHg3NCwweDY4LDB4M2QsMHgyMiwweDM1LDB4MzAsMHgzMCwweDIyLDB4M2UsMHgwOSwweDIwLDB4MjAsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgzYywweDY4LDB4MzEsMHgzZSwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHgyZCwweDIwLDB4NDEsMHgyMCwweDRjLAorMHg2OSwweDY3LDB4NjgsMHg3NCwweDc3LDB4NjUsMHg2OSwweDY3LDB4NjgsMHg3NCwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwKKzB4NTAsMHgyMCwweDUzLDB4NzQsMHg2MSwweDYzLDB4NmIsMHgzYywweDJmLDB4NjgsMHgzMSwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsCisweDIwLDB4M2MsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg1NCwweDY4LDB4NjUsMHgyMCwweDc3LAorMHg2NSwweDYyLDB4MjAsMHg3MCwweDYxLDB4NjcsMHg2NSwweDIwLDB4NzksMHg2ZiwweDc1LDB4MjAsMHg2MSwweDcyLDB4NjUsMHgyMCwKKzB4NzcsMHg2MSwweDc0LDB4NjMsMHg2OCwweDY5LDB4NmUsMHg2NywweDIwLDB4NzcsMHg2MSwweDczLDB4MjAsMHg3MywweDY1LDB4NzIsCisweDc2LDB4NjUsMHg2NCwweDIwLDB4NjIsMHg3OSwweDIwLDB4NjEsMHgyMCwweDczLDB4NjksMHg2ZCwweDcwLDB4NmMsMHg2NSwweDIwLAorMHg3NywweDY1LDB4NjIsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDczLDB4NjUsMHg3MiwweDc2LDB4NjUsMHg3MiwKKzB4MjAsMHg3MiwweDc1LDB4NmUsMHg2ZSwweDY5LDB4NmUsMHg2NywweDIwLDB4NmYsMHg2ZSwweDIwLDB4NzQsMHg2ZiwweDcwLDB4MjAsCisweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NmMsMHg2OSwweDY3LDB4NjgsMHg3NCwweDc3LDB4NjUsMHg2OSwweDY3LAorMHg2OCwweDc0LDB4MjAsMHg1NCwweDQzLDB4NTAsMHgyZiwweDQ5LDB4NTAsMHgyMCwweDczLDB4NzQsMHg2MSwweDYzLDB4NmIsMHgyMCwKKzB4M2MsMHg2MSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjgsMHg3MiwweDY1LDB4NjYsMHgzZCwweDIyLDB4NjgsCisweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDc3LDB4NzcsMHg3NywweDJlLDB4NzMsMHg2OSwweDYzLDB4NzMsMHgyZSwweDczLAorMHg2NSwweDJmLDB4N2UsMHg2MSwweDY0LDB4NjEsMHg2ZCwweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyZiwweDIyLDB4M2UsMHg2YywKKzB4NzcsMHg0OSwweDUwLDB4M2MsMHgyZiwweDYxLDB4M2UsMHgyZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsCisweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLAorMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjksMHg3MywweDIwLDB4NjEsMHg2ZSwweDIwLDB4NmYsMHg3MCwweDY1LDB4NmUsMHgyMCwKKzB4NzMsMHg2ZiwweDc1LDB4NzIsMHg2MywweDY1LDB4MjAsMHg2OSwweDZkLDB4NzAsMHg2YywweDY1LDB4NmQsMHg2NSwweDZlLDB4NzQsCisweDYxLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTQsMHg0MywweDUwLAorMHgyZiwweDQ5LDB4NTAsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NzIsMHg2ZiwweDc0LDB4NmYsMHg2MywKKzB4NmYsMHg2YywweDIwLDB4NzMsMHg3NSwweDY5LDB4NzQsMHg2NSwweDIwLDB4NzQsMHg2OCwweDYxLDB4NzQsMHgyMCwweDc3LDB4NjEsCisweDczLDB4MjAsMHg2ZiwweDcyLDB4NjksMHg2NywweDY5LDB4NmUsMHg2MSwweDZjLDB4NmMsMHg3OSwweDIwLDB4NzcsMHg3MiwweDY5LAorMHg3NCwweDc0LDB4NjUsMHg2ZSwweDIwLDB4NjIsMHg3OSwweDIwLDB4M2MsMHg2MSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwKKzB4MjAsMHg2OCwweDcyLDB4NjUsMHg2NiwweDNkLDB4MjIsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDc3LDB4NzcsCisweDc3LDB4MmUsMHg3MywweDY5LDB4NjMsMHg3MywweDJlLDB4NzMsMHg2NSwweDJmLDB4N2UsMHg2MSwweDY0LDB4NjEsMHg2ZCwweDJmLAorMHg2YywweDc3LDB4NjksMHg3MCwweDJmLDB4MjIsMHgzZSwweDQxLDB4NjQsMHg2MSwweDZkLDB4MjAsMHg0NCwweDc1LDB4NmUsMHg2YiwKKzB4NjUsMHg2YywweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsCisweDIwLDB4NTMsMHg3NywweDY1LDB4NjQsMHg2OSwweDczLDB4NjgsMHgyMCwweDQ5LDB4NmUsMHg3MywweDc0LDB4NjksMHg3NCwweDc1LAorMHg3NCwweDY1LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg0MywweDZmLDB4NmQsMHg3MCwweDc1LDB4NzQsMHg2NSwweDcyLDB4MjAsMHg1MywKKzB4NjMsMHg2OSwweDY1LDB4NmUsMHg2MywweDY1LDB4M2MsMHgyZiwweDYxLDB4M2UsMHgyMCwweDYyLDB4NzUsMHg3NCwweDIwLDB4NmUsCisweDZmLDB4NzcsMHgyMCwweDY5LDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDYyLDB4NjUsMHg2OSwweDZlLAorMHg2NywweDIwLDB4NjEsMHg2MywweDc0LDB4NjksMHg3NiwweDY1LDB4NmMsMHg3OSwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywKKzB4NmYsMHg3MCwweDY1LDB4NjQsMHgyMCwweDYyLDB4NzksMHgyMCwweDYxLDB4MjAsMHg3NCwweDY1LDB4NjEsMHg2ZCwweDIwLDB4NmYsCisweDY2LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDIwLDB4MjAsMHg2NCwweDY5LDB4NzMsMHg3NCwweDcyLDB4NjksMHg2MiwweDc1LDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NywKKzB4NmYsMHg3MiwweDZjLDB4NjQsMHgyZCwweDc3LDB4NjksMHg2NCwweDY1LDB4MmUsMHgyMCwweDUzLDB4NjksMHg2ZSwweDYzLDB4NjUsCisweDIwLDB4NjksMHg3NCwweDI3LDB4NzMsMHgyMCwweDcyLDB4NjUsMHg2YywweDY1LDB4NjEsMHg3MywweDY1LDB4MmMsMHgyMCwweDZjLAorMHg3NywweDQ5LDB4NTAsMHgyMCwweDY4LDB4NjEsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzMsMHg3MCwKKzB4NzUsMHg3MiwweDcyLDB4NjUsMHg2NCwweDIwLDB4NjEsMHgyMCwweDZjLDB4NmYsMHg3NCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjksCisweDZlLDB4NzQsMHg2NSwweDcyLDB4NjUsMHg3MywweDc0LDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDY4LDB4NjEsMHg3MywweDIwLAorMHg2MiwweDY1LDB4NjUsMHg2ZSwweDIwLDB4NzAsMHg2ZiwweDcyLDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NCwweDZmLDB4MjAsMHg3MywKKzB4NjUsMHg3NiwweDY1LDB4NzIsMHg2MSwweDZjLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDZjLDB4NjEsCisweDc0LDB4NjYsMHg2ZiwweDcyLDB4NmQsMHg3MywweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDYxLAorMHg3NCwweDY5LDB4NmUsMHg2NywweDIwLDB4NzMsMHg3OSwweDczLDB4NzQsMHg2NSwweDZkLDB4NzMsMHgyZSwweDIwLDB4NmMsMHg3NywKKzB4NDksMHg1MCwweDIwLDB4NjMsMHg2MSwweDZlLDB4MjAsMHg2MiwweDY1LDB4MjAsMHg3NSwweDczLDB4NjUsMHg2NCwweDIwLDB4NjUsCisweDY5LDB4NzQsMHg2OCwweDY1LDB4NzIsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LAorMHgyMCwweDZmLDB4NzIsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4NmYsMHg3NSwweDc0LDB4MjAsMHg2MSwweDZlLDB4MjAsMHg3NSwKKzB4NmUsMHg2NCwweDY1LDB4NzIsMHg2YywweDc5LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg0ZiwweDUzLDB4MmUsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDcwLDB4M2UsMHgwZCwweDBhLAorMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NTQsMHg2OCwweDY1LDB4MjAsMHg2NiwweDZmLDB4NjMsMHg3NSwweDczLDB4MjAsMHg2ZiwKKzB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJmLDB4NDksCisweDUwLDB4MjAsMHg2OSwweDZkLDB4NzAsMHg2YywweDY1LDB4NmQsMHg2NSwweDZlLDB4NzQsMHg2MSwweDc0LDB4NjksMHg2ZiwweDZlLAorMHgyMCwweDY5LDB4NzMsMHgyMCwweDc0LDB4NmYsMHgyMCwweDcyLDB4NjUsMHg2NCwweDc1LDB4NjMsMHg2NSwweDBkLDB4MGEsMHgwOSwKKzB4MjAsMHgyMCwweDIwLDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDUyLDB4NDEsMHg0ZCwweDIwLDB4NzUsMHg3MywweDYxLDB4NjcsCisweDY1LDB4MjAsMHg3NywweDY4LDB4NjksMHg2YywweDY1LDB4MjAsMHg3MywweDc0LDB4NjksMHg2YywweDZjLDB4MjAsMHg2OCwweDYxLAorMHg3NiwweDY5LDB4NmUsMHg2NywweDIwLDB4NjEsMHgyMCwweDY2LDB4NzUsMHg2YywweDZjLDB4MjAsMHg3MywweDYzLDB4NjEsMHg2YywKKzB4NjUsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJlLDB4MjAsMHg1NCwweDY4LDB4NjksMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsCisweDIwLDB4MjAsMHg2ZCwweDYxLDB4NmIsMHg2NSwweDczLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NzMsMHg3NSwweDY5LAorMHg3NCwweDYxLDB4NjIsMHg2YywweDY1LDB4MjAsMHg2NiwweDZmLDB4NzIsMHgyMCwweDc1LDB4NzMsMHg2NSwweDIwLDB4NjksMHg2ZSwKKzB4MjAsMHg2NSwweDZkLDB4NjIsMHg2NSwweDY0LDB4NjQsMHg2NSwweDY0LDB4MjAsMHg3MywweDc5LDB4NzMsMHg3NCwweDY1LDB4NmQsCisweDczLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDIwLDB4NzQsMHg2NSwweDZlLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLAorMHgyMCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NmIsMHg2OSwweDZjLDB4NmYsMHg2MiwweDc5LDB4NzQsMHg2NSwweDczLDB4MjAsMHg2ZiwKKzB4NjYsMHgyMCwweDY2LDB4NzIsMHg2NSwweDY1LDB4MjAsMHg1MiwweDQxLDB4NGQsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NzIsCisweDZmLDB4NmYsMHg2ZCwweDIwLDB4NjYsMHg2ZiwweDcyLDB4MjAsMHg2MSwweDcyLDB4NmYsMHg3NSwweDZlLDB4NjQsMHgyMCwweDM0LAorMHgzMCwweDIwLDB4NmIsMHg2OSwweDZjLDB4NmYsMHg2MiwweDc5LDB4NzQsMHg2NSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDZmLDB4NjYsMHgyMCwweDYzLDB4NmYsMHg2NCwweDY1LDB4MjAsMHg1MiwweDRmLDB4NGQsMHgyZSwweDBkLDB4MGEsCisweDA5LDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLAorMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg0ZCwweDZmLDB4NzIsMHg2NSwweDIwLDB4NjksMHg2ZSwweDY2LDB4NmYsMHg3MiwKKzB4NmQsMHg2MSwweDc0LDB4NjksMHg2ZiwweDZlLDB4MjAsMHg2MSwweDYyLDB4NmYsMHg3NSwweDc0LDB4MjAsMHg2YywweDc3LDB4NDksCisweDUwLDB4MjAsMHg2MywweDYxLDB4NmUsMHgyMCwweDYyLDB4NjUsMHgyMCwweDY2LDB4NmYsMHg3NSwweDZlLDB4NjQsMHgyMCwweDYxLAorMHg3NCwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwKKzB4MjAsMHg2OCwweDZmLDB4NmQsMHg2NSwweDcwLDB4NjEsMHg2NywweDY1LDB4MjAsMHg2MSwweDc0LDB4MjAsMHgzYywweDYxLDB4MGQsCisweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LDB4NzQsMHg3NCwweDcwLAorMHgzYSwweDJmLDB4MmYsMHg3MywweDYxLDB4NzYsMHg2MSwweDZlLDB4NmUsMHg2MSwweDY4LDB4MmUsMHg2ZSwweDZmLDB4NmUsMHg2NywKKzB4NmUsMHg3NSwweDJlLDB4NmYsMHg3MiwweDY3LDB4MmYsMHg3MCwweDcyLDB4NmYsMHg2YSwweDY1LDB4NjMsMHg3NCwweDczLDB4MmYsCisweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsMHgyMiwweDNlLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3MywweDYxLAorMHg3NiwweDYxLDB4NmUsMHg2ZSwweDYxLDB4NjgsMHgyZSwweDZlLDB4NmYsMHg2ZSwweDY3LDB4NmUsMHg3NSwweDJlLDB4NmYsMHg3MiwKKzB4NjcsMHgyZiwweDcwLDB4NzIsMHg2ZiwweDZhLDB4NjUsMHg2MywweDc0LDB4NzMsMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsCisweDNjLDB4MmYsMHg2MSwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2ZiwweDcyLDB4MjAsMHg2MSwweDc0LAorMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDc3LDB4NjksMHg2YiwweDY5LDB4MjAsMHg2MSwKKzB4NzQsMHgyMCwweDNjLDB4NjEsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsCisweDIyLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg2YywweDc3LDB4NjksMHg3MCwweDJlLDB4NzcsMHg2OSwweDZiLAorMHg2OSwweDYxLDB4MmUsMHg2MywweDZmLDB4NmQsMHgyZiwweDIyLDB4M2UsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwKKzB4NmMsMHg3NywweDY5LDB4NzAsMHgyZSwweDc3LDB4NjksMHg2YiwweDY5LDB4NjEsMHgyZSwweDYzLDB4NmYsMHg2ZCwweDJmLDB4M2MsCisweDJmLDB4NjEsMHgzZSwweDJlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LAorMHgzYywweDJmLDB4NzQsMHg2NCwweDNlLDB4M2MsMHg3NCwweDY0LDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjYsMHg2ZSwKKzB4NjIsMHg3MywweDcwLDB4M2IsMHgwZCwweDBhLDB4MDksMHgzYywweDJmLDB4NzQsMHg2NCwweDNlLDB4M2MsMHgyZiwweDc0LDB4NzIsCisweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3NCwweDYxLDB4NjIsMHg2YywweDY1LAorMHgzZSwweDBkLDB4MGEsMHgzYywweDJmLDB4NjIsMHg2ZiwweDY0LDB4NzksMHgzZSwweDBkLDB4MGEsMHgzYywweDJmLDB4NjgsMHg3NCwKKzB4NmQsMHg2YywweDNlLDB4MGQsMHgwYSwweDBkLDB4MGEsfTsKKworI2lmIEZTREFUQV9GSUxFX0FMSUdOTUVOVD09MQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBkdW1teV9hbGlnbl9fbG9naW5faHRtbCA9IDM7CisjZW5kaWYKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEZTREFUQV9BTElHTl9QUkUgZGF0YV9fbG9naW5faHRtbFtdIEZTREFUQV9BTElHTl9QT1NUID0geworLyogL2xvZ2luLmh0bWwgKDEyIGNoYXJzKSAqLworMHgyZiwweDZjLDB4NmYsMHg2NywweDY5LDB4NmUsMHgyZSwweDY4LDB4NzQsMHg2ZCwweDZjLDB4MDAsCisKKy8qIEhUVFAgaGVhZGVyICovCisvKiAiSFRUUC8xLjEgMjAwIE9LCisiICgxNyBieXRlcykgKi8KKzB4NDgsMHg1NCwweDU0LDB4NTAsMHgyZiwweDMxLDB4MmUsMHgzMSwweDIwLDB4MzIsMHgzMCwweDMwLDB4MjAsMHg0ZiwweDRiLDB4MGQsCisweDBhLAorLyogIlNlcnZlcjogbHdJUC8yLjAuM2QgKGh0dHA6Ly9zYXZhbm5haC5ub25nbnUub3JnL3Byb2plY3RzL2x3aXApCisiICg2NCBieXRlcykgKi8KKzB4NTMsMHg2NSwweDcyLDB4NzYsMHg2NSwweDcyLDB4M2EsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MmYsMHgzMiwweDJlLDB4MzAsCisweDJlLDB4MzMsMHg2NCwweDIwLDB4MjgsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDczLDB4NjEsMHg3NiwweDYxLAorMHg2ZSwweDZlLDB4NjEsMHg2OCwweDJlLDB4NmUsMHg2ZiwweDZlLDB4NjcsMHg2ZSwweDc1LDB4MmUsMHg2ZiwweDcyLDB4NjcsMHgyZiwKKzB4NzAsMHg3MiwweDZmLDB4NmEsMHg2NSwweDYzLDB4NzQsMHg3MywweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyOSwweDBkLDB4MGEsCisKKy8qICJDb250ZW50LUxlbmd0aDogNzY4CisiICgxOCsgYnl0ZXMpICovCisweDQzLDB4NmYsMHg2ZSwweDc0LDB4NjUsMHg2ZSwweDc0LDB4MmQsMHg0YywweDY1LDB4NmUsMHg2NywweDc0LDB4NjgsMHgzYSwweDIwLAorMHgzNywweDM2LDB4MzgsMHgwZCwweDBhLAorLyogIkNvbm5lY3Rpb246IGtlZXAtYWxpdmUKKyIgKDI0IGJ5dGVzKSAqLworMHg0MywweDZmLDB4NmUsMHg2ZSwweDY1LDB4NjMsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDNhLDB4MjAsMHg2YiwweDY1LDB4NjUsMHg3MCwKKzB4MmQsMHg2MSwweDZjLDB4NjksMHg3NiwweDY1LDB4MGQsMHgwYSwKKy8qICJDb250ZW50LVR5cGU6IHRleHQvaHRtbAorCisiICgyNyBieXRlcykgKi8KKzB4NDMsMHg2ZiwweDZlLDB4NzQsMHg2NSwweDZlLDB4NzQsMHgyZCwweDU0LDB4NzksMHg3MCwweDY1LDB4M2EsMHgyMCwweDc0LDB4NjUsCisweDc4LDB4NzQsMHgyZiwweDY4LDB4NzQsMHg2ZCwweDZjLDB4MGQsMHgwYSwweDBkLDB4MGEsCisvKiByYXcgZmlsZSBkYXRhICg3NjggYnl0ZXMpICovCisweDNjLDB4NjgsMHg3NCwweDZkLDB4NmMsMHgzZSwweDBkLDB4MGEsMHgzYywweDY4LDB4NjUsMHg2MSwweDY0LDB4M2UsMHgzYywweDc0LAorMHg2OSwweDc0LDB4NmMsMHg2NSwweDNlLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDJkLDB4MjAsMHg0MSwweDIwLDB4NGMsMHg2OSwKKzB4NjcsMHg2OCwweDc0LDB4NzcsMHg2NSwweDY5LDB4NjcsMHg2OCwweDc0LDB4MjAsMHg1NCwweDQzLDB4NTAsMHgyZiwweDQ5LDB4NTAsCisweDIwLDB4NTMsMHg3NCwweDYxLDB4NjMsMHg2YiwweDNjLDB4MmYsMHg3NCwweDY5LDB4NzQsMHg2YywweDY1LDB4M2UsMHgzYywweDJmLAorMHg2OCwweDY1LDB4NjEsMHg2NCwweDNlLDB4MGQsMHgwYSwweDNjLDB4NjIsMHg2ZiwweDY0LDB4NzksMHgyMCwweDYyLDB4NjcsMHg2MywKKzB4NmYsMHg2YywweDZmLDB4NzIsMHgzZCwweDIyLDB4NzcsMHg2OCwweDY5LDB4NzQsMHg2NSwweDIyLDB4MjAsMHg3NCwweDY1LDB4NzgsCisweDc0LDB4M2QsMHgyMiwweDYyLDB4NmMsMHg2MSwweDYzLDB4NmIsMHgyMiwweDNlLDB4MGQsMHgwYSwweDBkLDB4MGEsMHgzYywweDc0LAorMHg2MSwweDYyLDB4NmMsMHg2NSwweDIwLDB4NzcsMHg2OSwweDY0LDB4NzQsMHg2OCwweDNkLDB4MjIsMHgzMSwweDMwLDB4MzAsMHgyNSwKKzB4MjIsMHgzZSwweDBkLDB4MGEsMHgyMCwweDNjLDB4NzQsMHg3MiwweDIwLDB4NzYsMHg2MSwweDZjLDB4NjksMHg2NywweDZlLDB4M2QsCisweDIyLDB4NzQsMHg2ZiwweDcwLDB4MjIsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4M2MsMHg3NCwweDY0LDB4MjAsMHg3NywweDY5LAorMHg2NCwweDc0LDB4NjgsMHgzZCwweDIyLDB4MzgsMHgzMCwweDIyLDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLDB4M2MsMHg2MSwKKzB4MjAsMHg2OCwweDcyLDB4NjUsMHg2NiwweDNkLDB4MjIsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDc3LDB4NzcsCisweDc3LDB4MmUsMHg3MywweDY5LDB4NjMsMHg3MywweDJlLDB4NzMsMHg2NSwweDJmLDB4MjIsMHgzZSwweDNjLDB4NjksMHg2ZCwweDY3LAorMHgyMCwweDczLDB4NzIsMHg2MywweDNkLDB4MjIsMHgyZiwweDY5LDB4NmQsMHg2NywweDJmLDB4NzMsMHg2OSwweDYzLDB4NzMsMHgyZSwKKzB4NjcsMHg2OSwweDY2LDB4MjIsMHgyMCwweDYyLDB4NmYsMHg3MiwweDY0LDB4NjUsMHg3MiwweDNkLDB4MjIsMHgzMCwweDIyLDB4MjAsCisweDYxLDB4NmMsMHg3NCwweDNkLDB4MjIsMHg1MywweDQ5LDB4NDMsMHg1MywweDIwLDB4NmMsMHg2ZiwweDY3LDB4NmYsMHgyMiwweDIwLAorMHg3NCwweDY5LDB4NzQsMHg2YywweDY1LDB4M2QsMHgyMiwweDUzLDB4NDksMHg0MywweDUzLDB4MjAsMHg2YywweDZmLDB4NjcsMHg2ZiwKKzB4MjIsMHgyZiwweDNlLDB4M2MsMHgyZiwweDYxLDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3NCwweDY0LDB4M2UsCisweDBkLDB4MGEsMHgyMCwweDIwLDB4M2MsMHg3NCwweDY0LDB4MjAsMHg3NywweDY5LDB4NjQsMHg3NCwweDY4LDB4M2QsMHgyMiwweDM1LAorMHgzMCwweDMwLDB4MjIsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgzYywweDY4LDB4MzEsMHgzZSwweDRjLDB4NmYsMHg2NywKKzB4NjksMHg2ZSwweDNjLDB4MmYsMHg2OCwweDMxLDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLDB4M2MsMHg2NiwweDZmLDB4NzIsCisweDZkLDB4MjAsMHg2ZSwweDYxLDB4NmQsMHg2NSwweDNkLDB4MjIsMHg2YywweDZmLDB4NjcsMHg2OSwweDZlLDB4MjIsMHgyMCwweDYxLAorMHg2MywweDc0LDB4NjksMHg2ZiwweDZlLDB4M2QsMHgyMiwweDZjLDB4NmYsMHg2NywweDY5LDB4NmUsMHgyZSwweDYzLDB4NjcsMHg2OSwKKzB4MjIsMHgyMCwweDZkLDB4NjUsMHg3NCwweDY4LDB4NmYsMHg2NCwweDNkLDB4MjIsMHg3MCwweDZmLDB4NzMsMHg3NCwweDIyLDB4M2UsCisweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDNjLDB4NjQsMHg2OSwweDc2LDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLAorMHgyMCwweDIwLDB4M2MsMHg2YywweDYxLDB4NjIsMHg2NSwweDZjLDB4M2UsMHgzYywweDYyLDB4M2UsMHg1NSwweDczLDB4NjUsMHg3MiwKKzB4NmUsMHg2MSwweDZkLDB4NjUsMHgzYywweDJmLDB4NjIsMHgzZSwweDNjLDB4MmYsMHg2YywweDYxLDB4NjIsMHg2NSwweDZjLDB4M2UsCisweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4M2MsMHg2OSwweDZlLDB4NzAsMHg3NSwweDc0LDB4MjAsMHg3NCwweDc5LAorMHg3MCwweDY1LDB4M2QsMHgyMiwweDc0LDB4NjUsMHg3OCwweDc0LDB4MjIsMHgyMCwweDcwLDB4NmMsMHg2MSwweDYzLDB4NjUsMHg2OCwKKzB4NmYsMHg2YywweDY0LDB4NjUsMHg3MiwweDNkLDB4MjIsMHg0NSwweDZlLDB4NzQsMHg2NSwweDcyLDB4MjAsMHg1NSwweDczLDB4NjUsCisweDcyLDB4NmUsMHg2MSwweDZkLDB4NjUsMHgyMiwweDIwLDB4NmUsMHg2MSwweDZkLDB4NjUsMHgzZCwweDIyLDB4NzUsMHg3MywweDY1LAorMHg3MiwweDIyLDB4MjAsMHg3MiwweDY1LDB4NzEsMHg3NSwweDY5LDB4NzIsMHg2NSwweDY0LDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDIwLDB4M2MsMHg2YywweDYxLDB4NjIsMHg2NSwweDZjLDB4M2UsMHgzYywweDYyLDB4M2UsMHg1MCwweDYxLDB4NzMsCisweDczLDB4NzcsMHg2ZiwweDcyLDB4NjQsMHgzYywweDJmLDB4NjIsMHgzZSwweDNjLDB4MmYsMHg2YywweDYxLDB4NjIsMHg2NSwweDZjLAorMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4M2MsMHg2OSwweDZlLDB4NzAsMHg3NSwweDc0LDB4MjAsMHg3NCwKKzB4NzksMHg3MCwweDY1LDB4M2QsMHgyMiwweDcwLDB4NjEsMHg3MywweDczLDB4NzcsMHg2ZiwweDcyLDB4NjQsMHgyMiwweDIwLDB4NzAsCisweDZjLDB4NjEsMHg2MywweDY1LDB4NjgsMHg2ZiwweDZjLDB4NjQsMHg2NSwweDcyLDB4M2QsMHgyMiwweDQ1LDB4NmUsMHg3NCwweDY1LAorMHg3MiwweDIwLDB4NTAsMHg2MSwweDczLDB4NzMsMHg3NywweDZmLDB4NzIsMHg2NCwweDIyLDB4MjAsMHg2ZSwweDYxLDB4NmQsMHg2NSwKKzB4M2QsMHgyMiwweDcwLDB4NjEsMHg3MywweDczLDB4MjIsMHgyMCwweDcyLDB4NjUsMHg3MSwweDc1LDB4NjksMHg3MiwweDY1LDB4NjQsCisweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgzYywweDYyLDB4NzUsMHg3NCwweDc0LDB4NmYsMHg2ZSwweDIwLAorMHg3NCwweDc5LDB4NzAsMHg2NSwweDNkLDB4MjIsMHg3MywweDc1LDB4NjIsMHg2ZCwweDY5LDB4NzQsMHgyMiwweDNlLDB4NGMsMHg2ZiwKKzB4NjcsMHg2OSwweDZlLDB4M2MsMHgyZiwweDYyLDB4NzUsMHg3NCwweDc0LDB4NmYsMHg2ZSwweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsCisweDIwLDB4MjAsMHgzYywweDJmLDB4NjQsMHg2OSwweDc2LDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLDB4M2MsMHgyZiwweDY2LAorMHg2ZiwweDcyLDB4NmQsMHgzZSwweDIwLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgzYywweDJmLDB4NzQsMHg2NCwweDNlLDB4MGQsMHgwYSwKKzB4MjAsMHgyMCwweDNjLDB4NzQsMHg2NCwweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDI2LDB4NmUsMHg2MiwweDczLDB4NzAsCisweDNiLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgzYywweDJmLDB4NzQsMHg2NCwweDNlLDB4MGQsMHgwYSwweDIwLDB4M2MsMHgyZiwweDc0LAorMHg3MiwweDNlLDB4MGQsMHgwYSwweDNjLDB4MmYsMHg3NCwweDYxLDB4NjIsMHg2YywweDY1LDB4M2UsMHgwZCwweDBhLDB4M2MsMHgyZiwKKzB4NjIsMHg2ZiwweDY0LDB4NzksMHgzZSwweDBkLDB4MGEsMHgzYywweDJmLDB4NjgsMHg3NCwweDZkLDB4NmMsMHgzZSwweDBkLDB4MGEsCit9OworCisjaWYgRlNEQVRBX0ZJTEVfQUxJR05NRU5UPT0xCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGR1bW15X2FsaWduX19sb2dpbmZhaWxfaHRtbCA9IDQ7CisjZW5kaWYKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIEZTREFUQV9BTElHTl9QUkUgZGF0YV9fbG9naW5mYWlsX2h0bWxbXSBGU0RBVEFfQUxJR05fUE9TVCA9IHsKKy8qIC9sb2dpbmZhaWwuaHRtbCAoMTYgY2hhcnMpICovCisweDJmLDB4NmMsMHg2ZiwweDY3LDB4NjksMHg2ZSwweDY2LDB4NjEsMHg2OSwweDZjLDB4MmUsMHg2OCwweDc0LDB4NmQsMHg2YywweDAwLAorCisKKy8qIEhUVFAgaGVhZGVyICovCisvKiAiSFRUUC8xLjEgMjAwIE9LCisiICgxNyBieXRlcykgKi8KKzB4NDgsMHg1NCwweDU0LDB4NTAsMHgyZiwweDMxLDB4MmUsMHgzMSwweDIwLDB4MzIsMHgzMCwweDMwLDB4MjAsMHg0ZiwweDRiLDB4MGQsCisweDBhLAorLyogIlNlcnZlcjogbHdJUC8yLjAuM2QgKGh0dHA6Ly9zYXZhbm5haC5ub25nbnUub3JnL3Byb2plY3RzL2x3aXApCisiICg2NCBieXRlcykgKi8KKzB4NTMsMHg2NSwweDcyLDB4NzYsMHg2NSwweDcyLDB4M2EsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MmYsMHgzMiwweDJlLDB4MzAsCisweDJlLDB4MzMsMHg2NCwweDIwLDB4MjgsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDczLDB4NjEsMHg3NiwweDYxLAorMHg2ZSwweDZlLDB4NjEsMHg2OCwweDJlLDB4NmUsMHg2ZiwweDZlLDB4NjcsMHg2ZSwweDc1LDB4MmUsMHg2ZiwweDcyLDB4NjcsMHgyZiwKKzB4NzAsMHg3MiwweDZmLDB4NmEsMHg2NSwweDYzLDB4NzQsMHg3MywweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyOSwweDBkLDB4MGEsCisKKy8qICJDb250ZW50LUxlbmd0aDogNTU5CisiICgxOCsgYnl0ZXMpICovCisweDQzLDB4NmYsMHg2ZSwweDc0LDB4NjUsMHg2ZSwweDc0LDB4MmQsMHg0YywweDY1LDB4NmUsMHg2NywweDc0LDB4NjgsMHgzYSwweDIwLAorMHgzNSwweDM1LDB4MzksMHgwZCwweDBhLAorLyogIkNvbm5lY3Rpb246IGtlZXAtYWxpdmUKKyIgKDI0IGJ5dGVzKSAqLworMHg0MywweDZmLDB4NmUsMHg2ZSwweDY1LDB4NjMsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDNhLDB4MjAsMHg2YiwweDY1LDB4NjUsMHg3MCwKKzB4MmQsMHg2MSwweDZjLDB4NjksMHg3NiwweDY1LDB4MGQsMHgwYSwKKy8qICJDb250ZW50LVR5cGU6IHRleHQvaHRtbAorCisiICgyNyBieXRlcykgKi8KKzB4NDMsMHg2ZiwweDZlLDB4NzQsMHg2NSwweDZlLDB4NzQsMHgyZCwweDU0LDB4NzksMHg3MCwweDY1LDB4M2EsMHgyMCwweDc0LDB4NjUsCisweDc4LDB4NzQsMHgyZiwweDY4LDB4NzQsMHg2ZCwweDZjLDB4MGQsMHgwYSwweDBkLDB4MGEsCisvKiByYXcgZmlsZSBkYXRhICg1NTkgYnl0ZXMpICovCisweDNjLDB4NjgsMHg3NCwweDZkLDB4NmMsMHgzZSwweDBkLDB4MGEsMHgzYywweDY4LDB4NjUsMHg2MSwweDY0LDB4M2UsMHgzYywweDc0LAorMHg2OSwweDc0LDB4NmMsMHg2NSwweDNlLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDJkLDB4MjAsMHg0MSwweDIwLDB4NGMsMHg2OSwKKzB4NjcsMHg2OCwweDc0LDB4NzcsMHg2NSwweDY5LDB4NjcsMHg2OCwweDc0LDB4MjAsMHg1NCwweDQzLDB4NTAsMHgyZiwweDQ5LDB4NTAsCisweDIwLDB4NTMsMHg3NCwweDYxLDB4NjMsMHg2YiwweDNjLDB4MmYsMHg3NCwweDY5LDB4NzQsMHg2YywweDY1LDB4M2UsMHgzYywweDJmLAorMHg2OCwweDY1LDB4NjEsMHg2NCwweDNlLDB4MGQsMHgwYSwweDNjLDB4NjIsMHg2ZiwweDY0LDB4NzksMHgyMCwweDYyLDB4NjcsMHg2MywKKzB4NmYsMHg2YywweDZmLDB4NzIsMHgzZCwweDIyLDB4NzcsMHg2OCwweDY5LDB4NzQsMHg2NSwweDIyLDB4MjAsMHg3NCwweDY1LDB4NzgsCisweDc0LDB4M2QsMHgyMiwweDYyLDB4NmMsMHg2MSwweDYzLDB4NmIsMHgyMiwweDNlLDB4MGQsMHgwYSwweDBkLDB4MGEsMHgyMCwweDNjLAorMHg3NCwweDYxLDB4NjIsMHg2YywweDY1LDB4MjAsMHg3NywweDY5LDB4NjQsMHg3NCwweDY4LDB4M2QsMHgyMiwweDMxLDB4MzAsMHgzMCwKKzB4MjUsMHgyMiwweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgzYywweDc0LDB4NzIsMHgyMCwweDc2LDB4NjEsMHg2YywweDY5LDB4NjcsCisweDZlLDB4M2QsMHgyMiwweDc0LDB4NmYsMHg3MCwweDIyLDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLDB4M2MsMHg3NCwweDY0LAorMHgyMCwweDc3LDB4NjksMHg2NCwweDc0LDB4NjgsMHgzZCwweDIyLDB4MzgsMHgzMCwweDIyLDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDNjLDB4NjEsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LDB4NzQsMHg3NCwweDcwLDB4M2EsCisweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg3MywweDY1LDB4MmYsMHgyMiwweDNlLAorMHgzYywweDY5LDB4NmQsMHg2NywweDIwLDB4NzMsMHg3MiwweDYzLDB4M2QsMHgyMiwweDJmLDB4NjksMHg2ZCwweDY3LDB4MmYsMHg3MywKKzB4NjksMHg2MywweDczLDB4MmUsMHg2NywweDY5LDB4NjYsMHgyMiwweDIwLDB4NjIsMHg2ZiwweDcyLDB4NjQsMHg2NSwweDcyLDB4M2QsCisweDIyLDB4MzAsMHgyMiwweDIwLDB4NjEsMHg2YywweDc0LDB4M2QsMHgyMiwweDUzLDB4NDksMHg0MywweDUzLDB4MjAsMHg2YywweDZmLAorMHg2NywweDZmLDB4MjIsMHgyMCwweDc0LDB4NjksMHg3NCwweDZjLDB4NjUsMHgzZCwweDIyLDB4NTMsMHg0OSwweDQzLDB4NTMsMHgyMCwKKzB4NmMsMHg2ZiwweDY3LDB4NmYsMHgyMiwweDJmLDB4M2UsMHgzYywweDJmLDB4NjEsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsCisweDNjLDB4MmYsMHg3NCwweDY0LDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLDB4M2MsMHg3NCwweDY0LDB4MjAsMHg3NywweDY5LAorMHg2NCwweDc0LDB4NjgsMHgzZCwweDIyLDB4MzUsMHgzMCwweDMwLDB4MjIsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwKKzB4M2MsMHg2OCwweDMxLDB4M2UsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4MmQsMHgyMCwweDQxLDB4MjAsMHg0YywweDY5LDB4NjcsCisweDY4LDB4NzQsMHg3NywweDY1LDB4NjksMHg2NywweDY4LDB4NzQsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJmLDB4NDksMHg1MCwweDIwLAorMHg1MywweDc0LDB4NjEsMHg2MywweDZiLDB4M2MsMHgyZiwweDY4LDB4MzEsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwKKzB4M2MsMHg3MCwweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHg0YywweDZmLDB4NjcsMHg2OSwweDZlLDB4MjAsCisweDY2LDB4NjEsMHg2OSwweDZjLDB4NjUsMHg2NCwweDJlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDIwLDB4M2MsMHgyZiwweDcwLAorMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwKKzB4MjAsMHg0MywweDZjLDB4NjksMHg2MywweDZiLDB4MjAsMHgzYywweDYxLDB4MjAsMHg2OCwweDcyLDB4NjUsMHg2NiwweDNkLDB4MjIsCisweDZjLDB4NmYsMHg2NywweDY5LDB4NmUsMHgyZSwweDY4LDB4NzQsMHg2ZCwweDZjLDB4MjIsMHgzZSwweDY4LDB4NjUsMHg3MiwweDY1LAorMHgzYywweDJmLDB4NjEsMHgzZSwweDIwLDB4NzQsMHg2ZiwweDIwLDB4NzIsMHg2NSwweDc0LDB4NzIsMHg3OSwweDIwLDB4NmMsMHg2ZiwKKzB4NjcsMHg2OSwweDZlLDB4MmUsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsCisweDIwLDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3NCwweDY0LDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLDB4M2MsMHg3NCwweDY0LAorMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDI2LDB4NmUsMHg2MiwweDczLDB4NzAsMHgzYiwweDBkLDB4MGEsMHgyMCwKKzB4MjAsMHgyMCwweDNjLDB4MmYsMHg3NCwweDY0LDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3NCwweDcyLDB4M2UsCisweDBkLDB4MGEsMHgyMCwweDNjLDB4MmYsMHg3NCwweDYxLDB4NjIsMHg2YywweDY1LDB4M2UsMHgwZCwweDBhLDB4M2MsMHgyZiwweDYyLAorMHg2ZiwweDY0LDB4NzksMHgzZSwweDBkLDB4MGEsMHgzYywweDJmLDB4NjgsMHg3NCwweDZkLDB4NmMsMHgzZSwweDBkLDB4MGEsfTsKKworI2lmIEZTREFUQV9GSUxFX0FMSUdOTUVOVD09MQorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBkdW1teV9hbGlnbl9fc2Vzc2lvbl9odG1sID0gNTsKKyNlbmRpZgorc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgRlNEQVRBX0FMSUdOX1BSRSBkYXRhX19zZXNzaW9uX2h0bWxbXSBGU0RBVEFfQUxJR05fUE9TVCA9IHsKKy8qIC9zZXNzaW9uLmh0bWwgKDE0IGNoYXJzKSAqLworMHgyZiwweDczLDB4NjUsMHg3MywweDczLDB4NjksMHg2ZiwweDZlLDB4MmUsMHg2OCwweDc0LDB4NmQsMHg2YywweDAwLDB4MDAsMHgwMCwKKworLyogSFRUUCBoZWFkZXIgKi8KKy8qICJIVFRQLzEuMSAyMDAgT0sKKyIgKDE3IGJ5dGVzKSAqLworMHg0OCwweDU0LDB4NTQsMHg1MCwweDJmLDB4MzEsMHgyZSwweDMxLDB4MjAsMHgzMiwweDMwLDB4MzAsMHgyMCwweDRmLDB4NGIsMHgwZCwKKzB4MGEsCisvKiAiU2VydmVyOiBsd0lQLzIuMC4zZCAoaHR0cDovL3NhdmFubmFoLm5vbmdudS5vcmcvcHJvamVjdHMvbHdpcCkKKyIgKDY0IGJ5dGVzKSAqLworMHg1MywweDY1LDB4NzIsMHg3NiwweDY1LDB4NzIsMHgzYSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyZiwweDMyLDB4MmUsMHgzMCwKKzB4MmUsMHgzMywweDY0LDB4MjAsMHgyOCwweDY4LDB4NzQsMHg3NCwweDcwLDB4M2EsMHgyZiwweDJmLDB4NzMsMHg2MSwweDc2LDB4NjEsCisweDZlLDB4NmUsMHg2MSwweDY4LDB4MmUsMHg2ZSwweDZmLDB4NmUsMHg2NywweDZlLDB4NzUsMHgyZSwweDZmLDB4NzIsMHg2NywweDJmLAorMHg3MCwweDcyLDB4NmYsMHg2YSwweDY1LDB4NjMsMHg3NCwweDczLDB4MmYsMHg2YywweDc3LDB4NjksMHg3MCwweDI5LDB4MGQsMHgwYSwKKworLyogIkNvbnRlbnQtTGVuZ3RoOiA1NzgKKyIgKDE4KyBieXRlcykgKi8KKzB4NDMsMHg2ZiwweDZlLDB4NzQsMHg2NSwweDZlLDB4NzQsMHgyZCwweDRjLDB4NjUsMHg2ZSwweDY3LDB4NzQsMHg2OCwweDNhLDB4MjAsCisweDM1LDB4MzcsMHgzOCwweDBkLDB4MGEsCisvKiAiQ29ubmVjdGlvbjoga2VlcC1hbGl2ZQorIiAoMjQgYnl0ZXMpICovCisweDQzLDB4NmYsMHg2ZSwweDZlLDB4NjUsMHg2MywweDc0LDB4NjksMHg2ZiwweDZlLDB4M2EsMHgyMCwweDZiLDB4NjUsMHg2NSwweDcwLAorMHgyZCwweDYxLDB4NmMsMHg2OSwweDc2LDB4NjUsMHgwZCwweDBhLAorLyogIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sCisKKyIgKDI3IGJ5dGVzKSAqLworMHg0MywweDZmLDB4NmUsMHg3NCwweDY1LDB4NmUsMHg3NCwweDJkLDB4NTQsMHg3OSwweDcwLDB4NjUsMHgzYSwweDIwLDB4NzQsMHg2NSwKKzB4NzgsMHg3NCwweDJmLDB4NjgsMHg3NCwweDZkLDB4NmMsMHgwZCwweDBhLDB4MGQsMHgwYSwKKy8qIHJhdyBmaWxlIGRhdGEgKDU3OCBieXRlcykgKi8KKzB4M2MsMHg2OCwweDc0LDB4NmQsMHg2YywweDNlLDB4MGQsMHgwYSwweDNjLDB4NjgsMHg2NSwweDYxLDB4NjQsMHgzZSwweDNjLDB4NzQsCisweDY5LDB4NzQsMHg2YywweDY1LDB4M2UsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4MmQsMHgyMCwweDQxLDB4MjAsMHg0YywweDY5LAorMHg2NywweDY4LDB4NzQsMHg3NywweDY1LDB4NjksMHg2NywweDY4LDB4NzQsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJmLDB4NDksMHg1MCwKKzB4MjAsMHg1MywweDc0LDB4NjEsMHg2MywweDZiLDB4M2MsMHgyZiwweDc0LDB4NjksMHg3NCwweDZjLDB4NjUsMHgzZSwweDNjLDB4MmYsCisweDY4LDB4NjUsMHg2MSwweDY0LDB4M2UsMHgwZCwweDBhLDB4M2MsMHg2MiwweDZmLDB4NjQsMHg3OSwweDIwLDB4NjIsMHg2NywweDYzLAorMHg2ZiwweDZjLDB4NmYsMHg3MiwweDNkLDB4MjIsMHg3NywweDY4LDB4NjksMHg3NCwweDY1LDB4MjIsMHgyMCwweDc0LDB4NjUsMHg3OCwKKzB4NzQsMHgzZCwweDIyLDB4NjIsMHg2YywweDYxLDB4NjMsMHg2YiwweDIyLDB4M2UsMHgwZCwweDBhLDB4MGQsMHgwYSwweDIwLDB4M2MsCisweDc0LDB4NjEsMHg2MiwweDZjLDB4NjUsMHgyMCwweDc3LDB4NjksMHg2NCwweDc0LDB4NjgsMHgzZCwweDIyLDB4MzEsMHgzMCwweDMwLAorMHgyNSwweDIyLDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDNjLDB4NzQsMHg3MiwweDIwLDB4NzYsMHg2MSwweDZjLDB4NjksMHg2NywKKzB4NmUsMHgzZCwweDIyLDB4NzQsMHg2ZiwweDcwLDB4MjIsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgzYywweDc0LDB4NjQsCisweDIwLDB4NzcsMHg2OSwweDY0LDB4NzQsMHg2OCwweDNkLDB4MjIsMHgzOCwweDMwLDB4MjIsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLAorMHgyMCwweDIwLDB4M2MsMHg2MSwweDIwLDB4NjgsMHg3MiwweDY1LDB4NjYsMHgzZCwweDIyLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwKKzB4MmYsMHgyZiwweDc3LDB4NzcsMHg3NywweDJlLDB4NzMsMHg2OSwweDYzLDB4NzMsMHgyZSwweDczLDB4NjUsMHgyZiwweDIyLDB4M2UsCisweDNjLDB4NjksMHg2ZCwweDY3LDB4MjAsMHg3MywweDcyLDB4NjMsMHgzZCwweDIyLDB4MmYsMHg2OSwweDZkLDB4NjcsMHgyZiwweDczLAorMHg2OSwweDYzLDB4NzMsMHgyZSwweDY3LDB4NjksMHg2NiwweDIyLDB4MjAsMHg2MiwweDZmLDB4NzIsMHg2NCwweDY1LDB4NzIsMHgzZCwKKzB4MjIsMHgzMCwweDIyLDB4MjAsMHg2MSwweDZjLDB4NzQsMHgzZCwweDIyLDB4NTMsMHg0OSwweDQzLDB4NTMsMHgyMCwweDZjLDB4NmYsCisweDY3LDB4NmYsMHgyMiwweDIwLDB4NzQsMHg2OSwweDc0LDB4NmMsMHg2NSwweDNkLDB4MjIsMHg1MywweDQ5LDB4NDMsMHg1MywweDIwLAorMHg2YywweDZmLDB4NjcsMHg2ZiwweDIyLDB4MmYsMHgzZSwweDNjLDB4MmYsMHg2MSwweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwKKzB4M2MsMHgyZiwweDc0LDB4NjQsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgzYywweDc0LDB4NjQsMHgyMCwweDc3LDB4NjksCisweDY0LDB4NzQsMHg2OCwweDNkLDB4MjIsMHgzNSwweDMwLDB4MzAsMHgyMiwweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDIwLAorMHgzYywweDY4LDB4MzEsMHgzZSwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHgyZCwweDIwLDB4NDEsMHgyMCwweDRjLDB4NjksMHg2NywKKzB4NjgsMHg3NCwweDc3LDB4NjUsMHg2OSwweDY3LDB4NjgsMHg3NCwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLDB4MjAsCisweDUzLDB4NzQsMHg2MSwweDYzLDB4NmIsMHgzYywweDJmLDB4NjgsMHgzMSwweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDIwLAorMHgzYywweDcwLDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDRjLDB4NmYsMHg2NywweDY5LDB4NmUsMHgyMCwKKzB4NzMsMHg3NSwweDYzLDB4NjMsMHg2NSwweDY1LDB4NjQsMHg2NSwweDY0LDB4MmMsMHgyMCwweDczLDB4NjUsMHg3MywweDczLDB4NjksCisweDZmLDB4NmUsMHgyMCwweDYxLDB4NjMsMHg3NCwweDY5LDB4NzYsMHg2NSwweDJlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDIwLAorMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgyMCwKKzB4MjAsMHgyMCwweDIwLDB4MjAsMHg0MywweDZjLDB4NjksMHg2MywweDZiLDB4MjAsMHgzYywweDYxLDB4MjAsMHg2OCwweDcyLDB4NjUsCisweDY2LDB4M2QsMHgyMiwweDZjLDB4NmYsMHg2NywweDY5LDB4NmUsMHgyZSwweDY4LDB4NzQsMHg2ZCwweDZjLDB4MjIsMHgzZSwweDY4LAorMHg2NSwweDcyLDB4NjUsMHgzYywweDJmLDB4NjEsMHgzZSwweDIwLDB4NzQsMHg2ZiwweDIwLDB4NzIsMHg2NSwweDc0LDB4NzIsMHg3OSwKKzB4MjAsMHg2YywweDZmLDB4NjcsMHg2OSwweDZlLDB4MmUsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsCisweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3NCwweDY0LDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDIwLAorMHgzYywweDc0LDB4NjQsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDI2LDB4NmUsMHg2MiwweDczLDB4NzAsMHgzYiwKKzB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3NCwweDY0LDB4M2UsMHgwZCwweDBhLDB4MjAsMHgyMCwweDNjLDB4MmYsCisweDc0LDB4NzIsMHgzZSwweDBkLDB4MGEsMHgyMCwweDNjLDB4MmYsMHg3NCwweDYxLDB4NjIsMHg2YywweDY1LDB4M2UsMHgwZCwweDBhLAorMHgzYywweDJmLDB4NjIsMHg2ZiwweDY0LDB4NzksMHgzZSwweDBkLDB4MGEsMHgzYywweDJmLDB4NjgsMHg3NCwweDZkLDB4NmMsMHgzZSwKKzB4MGQsMHgwYSx9OworCisjaWYgRlNEQVRBX0ZJTEVfQUxJR05NRU5UPT0xCitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGR1bW15X2FsaWduX19zc2lfc2h0bWwgPSA2OworI2VuZGlmCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBGU0RBVEFfQUxJR05fUFJFIGRhdGFfX3NzaV9zaHRtbFtdIEZTREFUQV9BTElHTl9QT1NUID0geworLyogL3NzaS5zaHRtbCAoMTEgY2hhcnMpICovCisweDJmLDB4NzMsMHg3MywweDY5LDB4MmUsMHg3MywweDY4LDB4NzQsMHg2ZCwweDZjLDB4MDAsMHgwMCwKKworLyogSFRUUCBoZWFkZXIgKi8KKy8qICJIVFRQLzEuMSAyMDAgT0sKKyIgKDE3IGJ5dGVzKSAqLworMHg0OCwweDU0LDB4NTQsMHg1MCwweDJmLDB4MzEsMHgyZSwweDMxLDB4MjAsMHgzMiwweDMwLDB4MzAsMHgyMCwweDRmLDB4NGIsMHgwZCwKKzB4MGEsCisvKiAiU2VydmVyOiBsd0lQLzIuMC4zZCAoaHR0cDovL3NhdmFubmFoLm5vbmdudS5vcmcvcHJvamVjdHMvbHdpcCkKKyIgKDY0IGJ5dGVzKSAqLworMHg1MywweDY1LDB4NzIsMHg3NiwweDY1LDB4NzIsMHgzYSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyZiwweDMyLDB4MmUsMHgzMCwKKzB4MmUsMHgzMywweDY0LDB4MjAsMHgyOCwweDY4LDB4NzQsMHg3NCwweDcwLDB4M2EsMHgyZiwweDJmLDB4NzMsMHg2MSwweDc2LDB4NjEsCisweDZlLDB4NmUsMHg2MSwweDY4LDB4MmUsMHg2ZSwweDZmLDB4NmUsMHg2NywweDZlLDB4NzUsMHgyZSwweDZmLDB4NzIsMHg2NywweDJmLAorMHg3MCwweDcyLDB4NmYsMHg2YSwweDY1LDB4NjMsMHg3NCwweDczLDB4MmYsMHg2YywweDc3LDB4NjksMHg3MCwweDI5LDB4MGQsMHgwYSwKKworLyogIkNvbm5lY3Rpb246IENsb3NlCisiICgxOSBieXRlcykgKi8KKzB4NDMsMHg2ZiwweDZlLDB4NmUsMHg2NSwweDYzLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgzYSwweDIwLDB4NDMsMHg2YywweDZmLDB4NzMsCisweDY1LDB4MGQsMHgwYSwKKy8qICJDb250ZW50LVR5cGU6IHRleHQvaHRtbAorRXhwaXJlczogRnJpLCAxMCBBcHIgMjAwOCAxNDowMDowMCBHTVQKK1ByYWdtYTogbm8tY2FjaGUKKworIiAoODUgYnl0ZXMpICovCisweDQzLDB4NmYsMHg2ZSwweDc0LDB4NjUsMHg2ZSwweDc0LDB4MmQsMHg1NCwweDc5LDB4NzAsMHg2NSwweDNhLDB4MjAsMHg3NCwweDY1LAorMHg3OCwweDc0LDB4MmYsMHg2OCwweDc0LDB4NmQsMHg2YywweDBkLDB4MGEsMHg0NSwweDc4LDB4NzAsMHg2OSwweDcyLDB4NjUsMHg3MywKKzB4M2EsMHgyMCwweDQ2LDB4NzIsMHg2OSwweDJjLDB4MjAsMHgzMSwweDMwLDB4MjAsMHg0MSwweDcwLDB4NzIsMHgyMCwweDMyLDB4MzAsCisweDMwLDB4MzgsMHgyMCwweDMxLDB4MzQsMHgzYSwweDMwLDB4MzAsMHgzYSwweDMwLDB4MzAsMHgyMCwweDQ3LDB4NGQsMHg1NCwweDBkLAorMHgwYSwweDUwLDB4NzIsMHg2MSwweDY3LDB4NmQsMHg2MSwweDNhLDB4MjAsMHg2ZSwweDZmLDB4MmQsMHg2MywweDYxLDB4NjMsMHg2OCwKKzB4NjUsMHgwZCwweDBhLDB4MGQsMHgwYSwKKy8qIHJhdyBmaWxlIGRhdGEgKDE0NDI5IGJ5dGVzKSAqLworMHgzYywweDY4LDB4NzQsMHg2ZCwweDZjLDB4M2UsMHgwZCwweDBhLDB4M2MsMHg2OCwweDY1LDB4NjEsMHg2NCwweDNlLDB4M2MsMHg3NCwKKzB4NjksMHg3NCwweDZjLDB4NjUsMHgzZSwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHgyZCwweDIwLDB4NDEsMHgyMCwweDRjLDB4NjksCisweDY3LDB4NjgsMHg3NCwweDc3LDB4NjUsMHg2OSwweDY3LDB4NjgsMHg3NCwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLAorMHgyMCwweDUzLDB4NzQsMHg2MSwweDYzLDB4NmIsMHgzYywweDJmLDB4NzQsMHg2OSwweDc0LDB4NmMsMHg2NSwweDNlLDB4M2MsMHgyZiwKKzB4NjgsMHg2NSwweDYxLDB4NjQsMHgzZSwweDBkLDB4MGEsMHgzYywweDYyLDB4NmYsMHg2NCwweDc5LDB4MjAsMHg2MiwweDY3LDB4NjMsCisweDZmLDB4NmMsMHg2ZiwweDcyLDB4M2QsMHgyMiwweDc3LDB4NjgsMHg2OSwweDc0LDB4NjUsMHgyMiwweDIwLDB4NzQsMHg2NSwweDc4LAorMHg3NCwweDNkLDB4MjIsMHg2MiwweDZjLDB4NjEsMHg2MywweDZiLDB4MjIsMHgzZSwweDBkLDB4MGEsMHgwZCwweDBhLDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDNjLDB4NzQsMHg2MSwweDYyLDB4NmMsMHg2NSwweDIwLDB4NzcsMHg2OSwweDY0LDB4NzQsMHg2OCwweDNkLDB4MjIsCisweDMxLDB4MzAsMHgzMCwweDI1LDB4MjIsMHgzZSwweDBkLDB4MGEsMHgyMCwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgzYywweDc0LAorMHg3MiwweDIwLDB4NzYsMHg2MSwweDZjLDB4NjksMHg2NywweDZlLDB4M2QsMHgyMiwweDc0LDB4NmYsMHg3MCwweDIyLDB4M2UsMHgzYywKKzB4NzQsMHg2NCwweDIwLDB4NzcsMHg2OSwweDY0LDB4NzQsMHg2OCwweDNkLDB4MjIsMHgzOCwweDMwLDB4MjIsMHgzZSwweDA5LDB4MjAsCisweDIwLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NjEsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LAorMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg3MywKKzB4NjUsMHgyZiwweDIyLDB4M2UsMHgzYywweDY5LDB4NmQsMHg2NywweDIwLDB4NzMsMHg3MiwweDYzLDB4M2QsMHgyMiwweDJmLDB4NjksCisweDZkLDB4NjcsMHgyZiwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg2NywweDY5LDB4NjYsMHgyMiwweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDYyLDB4NmYsMHg3MiwweDY0LDB4NjUsMHg3MiwweDNkLDB4MjIsMHgzMCwweDIyLDB4MjAsMHg2MSwweDZjLDB4NzQsMHgzZCwKKzB4MjIsMHg1MywweDQ5LDB4NDMsMHg1MywweDIwLDB4NmMsMHg2ZiwweDY3LDB4NmYsMHgyMiwweDIwLDB4NzQsMHg2OSwweDc0LDB4NmMsCisweDY1LDB4M2QsMHgyMiwweDUzLDB4NDksMHg0MywweDUzLDB4MjAsMHg2YywweDZmLDB4NjcsMHg2ZiwweDIyLDB4M2UsMHgzYywweDJmLAorMHg2MSwweDNlLDB4MGQsMHgwYSwweDA5LDB4M2MsMHgyZiwweDc0LDB4NjQsMHgzZSwweDNjLDB4NzQsMHg2NCwweDIwLDB4NzcsMHg2OSwKKzB4NjQsMHg3NCwweDY4LDB4M2QsMHgyMiwweDM1LDB4MzAsMHgzMCwweDIyLDB4M2UsMHgwOSwweDIwLDB4MjAsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgzYywweDY4LDB4MzEsMHgzZSwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHgyZCwweDIwLDB4NDEsMHgyMCwweDRjLAorMHg2OSwweDY3LDB4NjgsMHg3NCwweDc3LDB4NjUsMHg2OSwweDY3LDB4NjgsMHg3NCwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwKKzB4NTAsMHgyMCwweDUzLDB4NzQsMHg2MSwweDYzLDB4NmIsMHgzYywweDJmLDB4NjgsMHgzMSwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsCisweDIwLDB4M2MsMHg2OCwweDMxLDB4M2UsMHgzYywweDIxLDB4MmQsMHgyZCwweDIzLDB4NDgsMHg2NSwweDZjLDB4NmMsMHg1NywweDZmLAorMHg3MiwweDZjLDB4MmQsMHgyZCwweDNlLDB4M2MsMHgyZiwweDY4LDB4MzEsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywKKzB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NTQsMHg2OCwweDY1LDB4MjAsMHg3NywweDY1LDB4NjIsCisweDIwLDB4NzAsMHg2MSwweDY3LDB4NjUsMHgyMCwweDc5LDB4NmYsMHg3NSwweDIwLDB4NjEsMHg3MiwweDY1LDB4MjAsMHg3NywweDYxLAorMHg3NCwweDYzLDB4NjgsMHg2OSwweDZlLDB4NjcsMHgyMCwweDc3LDB4NjEsMHg3MywweDIwLDB4NzMsMHg2NSwweDcyLDB4NzYsMHg2NSwKKzB4NjQsMHgyMCwweDYyLDB4NzksMHgyMCwweDYxLDB4MjAsMHg3MywweDY5LDB4NmQsMHg3MCwweDZjLDB4NjUsMHgyMCwweDc3LDB4NjUsCisweDYyLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MywweDY1LDB4NzIsMHg3NiwweDY1LDB4NzIsMHgyMCwweDcyLAorMHg3NSwweDZlLDB4NmUsMHg2OSwweDZlLDB4NjcsMHgyMCwweDZmLDB4NmUsMHgyMCwweDc0LDB4NmYsMHg3MCwweDIwLDB4NmYsMHg2NiwKKzB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDZjLDB4NjksMHg2NywweDY4LDB4NzQsMHg3NywweDY1LDB4NjksMHg2NywweDY4LDB4NzQsCisweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLDB4MjAsMHg3MywweDc0LDB4NjEsMHg2MywweDZiLDB4MjAsMHgzYywweDYxLAorMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LDB4NzQsMHg3NCwKKzB4NzAsMHgzYSwweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg3MywweDY1LDB4MmYsCisweDdlLDB4NjEsMHg2NCwweDYxLDB4NmQsMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsMHgyMiwweDNlLDB4NmMsMHg3NywweDQ5LAorMHg1MCwweDNjLDB4MmYsMHg2MSwweDNlLDB4MmUsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHgyZiwweDcwLDB4M2UsMHgwZCwKKzB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDU0LDB4NjgsCisweDY5LDB4NzMsMHgyMCwweDcwLDB4NjEsMHg2NywweDY1LDB4MjAsMHg2OSwweDczLDB4MjAsMHg2OCwweDY1LDB4NzIsMHg2NSwweDIwLAorMHg3NCwweDZmLDB4MjAsMHg3NCwweDY1LDB4NzMsMHg3NCwweDIwLDB4NTMsMHg1MywweDQ5LDB4MmMsMHgyMCwweDczLDB4NmYsMHgyMCwKKzB4NjgsMHg2NSwweDcyLDB4NjUsMHgyMCwweDY5LDB4NzMsMHgyMCwweDYxLDB4MjAsMHg2MywweDZmLDB4NzUsMHg2ZSwweDc0LDB4NjUsCisweDcyLDB4MjAsMHg2MSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2MSwweDZlLDB4MjAsMHg2NSwweDc4LAorMHg2MSwweDZkLDB4NzAsMHg2YywweDY1LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2MywweDZmLDB4NmUsMHg3NCwweDY1LDB4NmUsMHg3NCwKKzB4MjAsMHg2MywweDY4LDB4NjEsMHg2ZSwweDY3LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg2NiwweDZmLDB4NzIsMHgyMCwweDY1LDB4NzYsCisweDY1LDB4NzIsMHg3OSwweDIwLDB4NzIsMHg2NSwweDcxLDB4NzUsMHg2NSwweDczLDB4NzQsMHgzYSwweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDIwLDB4MjAsMHgyMiwweDNjLDB4MjEsMHgyZCwweDJkLDB4MjMsMHg2MywweDZmLDB4NzUsMHg2ZSwweDc0LDB4NjUsMHg3MiwKKzB4MmQsMHgyZCwweDNlLDB4MjIsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHgyZiwweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgzYywweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDQxLDB4NmUsMHg2NCwweDIwLAorMHg2OCwweDY1LDB4NzIsMHg2NSwweDIwLDB4NjksMHg3MywweDIwLDB4NjEsMHg2ZSwweDIwLDB4NjUsMHg3OCwweDYxLDB4NmQsMHg3MCwKKzB4NmMsMHg2NSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjEsMHgyMCwweDc0LDB4NjEsMHg2NywweDIwLDB4NzIsMHg2NSwweDczLDB4NzUsCisweDZjLDB4NzQsMHgyMCwweDYyLDB4NzUsMHg2NiwweDY2LDB4NjUsMHg3MiwweDIwLDB4NzIsMHg2NSwweDc0LDB4NzUsMHg3MiwweDZlLAorMHgyMCwweDY5LDB4NmUsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZkLDB4NzUsMHg2YywweDc0LDB4NjksMHg3MCwKKzB4NmMsMHg2NSwweDIwLDB4NzAsMHg2MSwweDcyLDB4NzQsMHg3MywweDNhLDB4MjAsMHgyMiwweDNjLDB4MjEsMHgyZCwweDJkLDB4MjMsCisweDRkLDB4NzUsMHg2YywweDc0LDB4NTAsMHg2MSwweDcyLDB4NzQsMHgyZCwweDJkLDB4M2UsMHgyMiwweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDNjLDB4MmYsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwKKzB4MjAsMHgyMCwweDIwLDB4MjAsMHg1NCwweDZmLDB4MjAsMHg3NCwweDY1LDB4NzMsMHg3NCwweDIwLDB4NGMsMHg1NywweDQ5LDB4NTAsCisweDVmLDB4NDgsMHg1NCwweDU0LDB4NTAsMHg0NCwweDVmLDB4NDMsMHg0NywweDQ5LDB4NWYsMHg1MywweDUzLDB4NDksMHgyYywweDIwLAorMHg2OCwweDY1LDB4NzIsMHg2NSwweDIwLDB4NjEsMHg3MiwweDY1LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDQzLDB4NDcsMHg0OSwKKzB4MjAsMHg3MCwweDYxLDB4NzIsMHg2MSwweDZkLDB4NjUsMHg3NCwweDY1LDB4NzIsMHg3MywweDNhLDB4MGQsMHgwYSwweDA5LDB4MjAsCisweDIwLDB4MjAsMHgyMCwweDNjLDB4MjEsMHgyZCwweDJkLDB4MjMsMHg0MywweDY3LDB4NjksMHg1MCwweDYxLDB4NzIsMHg2MSwweDZkLAorMHgyZCwweDJkLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHgyZiwweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwKKzB4MjAsMHgzYywweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsCisweDY5LDB4NzMsMHgyMCwweDYxLDB4NmUsMHgyMCwweDZmLDB4NzAsMHg2NSwweDZlLDB4MjAsMHg3MywweDZmLDB4NzUsMHg3MiwweDYzLAorMHg2NSwweDIwLDB4NjksMHg2ZCwweDcwLDB4NmMsMHg2NSwweDZkLDB4NjUsMHg2ZSwweDc0LDB4NjEsMHg3NCwweDY5LDB4NmYsMHg2ZSwKKzB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJmLDB4NDksMHg1MCwweDBkLDB4MGEsCisweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDcyLDB4NmYsMHg3NCwweDZmLDB4NjMsMHg2ZiwweDZjLDB4MjAsMHg3MywweDc1LAorMHg2OSwweDc0LDB4NjUsMHgyMCwweDc0LDB4NjgsMHg2MSwweDc0LDB4MjAsMHg3NywweDYxLDB4NzMsMHgyMCwweDZmLDB4NzIsMHg2OSwKKzB4NjcsMHg2OSwweDZlLDB4NjEsMHg2YywweDZjLDB4NzksMHgyMCwweDc3LDB4NzIsMHg2OSwweDc0LDB4NzQsMHg2NSwweDZlLDB4MjAsCisweDYyLDB4NzksMHgyMCwweDNjLDB4NjEsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LAorMHgzZCwweDIyLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywKKzB4NzMsMHgyZSwweDczLDB4NjUsMHgyZiwweDdlLDB4NjEsMHg2NCwweDYxLDB4NmQsMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsCisweDIyLDB4M2UsMHg0MSwweDY0LDB4NjEsMHg2ZCwweDIwLDB4NDQsMHg3NSwweDZlLDB4NmIsMHg2NSwweDZjLDB4NzMsMHgwZCwweDBhLAorMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1MywweDc3LDB4NjUsMHg2NCwKKzB4NjksMHg3MywweDY4LDB4MjAsMHg0OSwweDZlLDB4NzMsMHg3NCwweDY5LDB4NzQsMHg3NSwweDc0LDB4NjUsMHgyMCwweDZmLDB4NjYsCisweDIwLDB4NDMsMHg2ZiwweDZkLDB4NzAsMHg3NSwweDc0LDB4NjUsMHg3MiwweDIwLDB4NTMsMHg2MywweDY5LDB4NjUsMHg2ZSwweDYzLAorMHg2NSwweDNjLDB4MmYsMHg2MSwweDNlLDB4MjAsMHg2MiwweDc1LDB4NzQsMHgyMCwweDZlLDB4NmYsMHg3NywweDIwLDB4NjksMHg3MywKKzB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2MiwweDY1LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg2MSwweDYzLDB4NzQsCisweDY5LDB4NzYsMHg2NSwweDZjLDB4NzksMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg2NCwweDIwLAorMHg2MiwweDc5LDB4MjAsMHg2MSwweDIwLDB4NzQsMHg2NSwweDYxLDB4NmQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY0LDB4NjUsMHg3NiwKKzB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDcyLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY0LDB4NjksCisweDczLDB4NzQsMHg3MiwweDY5LDB4NjIsMHg3NSwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzcsMHg2ZiwweDcyLDB4NmMsMHg2NCwweDJkLAorMHg3NywweDY5LDB4NjQsMHg2NSwweDJlLDB4MjAsMHg1MywweDY5LDB4NmUsMHg2MywweDY1LDB4MjAsMHg2OSwweDc0LDB4MjcsMHg3MywKKzB4MjAsMHg3MiwweDY1LDB4NmMsMHg2NSwweDYxLDB4NzMsMHg2NSwweDJjLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjgsCisweDYxLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDczLDB4NzAsMHg3NSwweDcyLDB4NzIsMHg2NSwweDY0LAorMHgyMCwweDYxLDB4MjAsMHg2YywweDZmLDB4NzQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY5LDB4NmUsMHg3NCwweDY1LDB4NzIsMHg2NSwKKzB4NzMsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2OCwweDYxLDB4NzMsMHgyMCwweDYyLDB4NjUsMHg2NSwweDZlLDB4MjAsCisweDcwLDB4NmYsMHg3MiwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzQsMHg2ZiwweDIwLDB4NzMsMHg2NSwweDc2LDB4NjUsMHg3MiwweDYxLAorMHg2YywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg2YywweDYxLDB4NzQsMHg2NiwweDZmLDB4NzIsMHg2ZCwKKzB4NzMsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg2MSwweDc0LDB4NjksMHg2ZSwweDY3LDB4MjAsCisweDczLDB4NzksMHg3MywweDc0LDB4NjUsMHg2ZCwweDczLDB4MmUsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2MywweDYxLAorMHg2ZSwweDIwLDB4NjIsMHg2NSwweDIwLDB4NzUsMHg3MywweDY1LDB4NjQsMHgyMCwweDY1LDB4NjksMHg3NCwweDY4LDB4NjUsMHg3MiwKKzB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDIwLDB4NmYsMHg3MiwweDIwLDB4NzcsCisweDY5LDB4NzQsMHg2OCwweDZmLDB4NzUsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDIwLDB4NzUsMHg2ZSwweDY0LDB4NjUsMHg3MiwweDZjLAorMHg3OSwweDY5LDB4NmUsMHg2NywweDIwLDB4NGYsMHg1MywweDJlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3MCwKKzB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NzAsCisweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjksMHg3MywweDIwLAorMHg2MSwweDZlLDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg2ZSwweDIwLDB4NzMsMHg2ZiwweDc1LDB4NzIsMHg2MywweDY1LDB4MjAsMHg2OSwKKzB4NmQsMHg3MCwweDZjLDB4NjUsMHg2ZCwweDY1LDB4NmUsMHg3NCwweDYxLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgyMCwweDZmLDB4NjYsCisweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1NCwweDQzLDB4NTAsMHgyZiwweDQ5LDB4NTAsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLAorMHgyMCwweDIwLDB4NzAsMHg3MiwweDZmLDB4NzQsMHg2ZiwweDYzLDB4NmYsMHg2YywweDIwLDB4NzMsMHg3NSwweDY5LDB4NzQsMHg2NSwKKzB4MjAsMHg3NCwweDY4LDB4NjEsMHg3NCwweDIwLDB4NzcsMHg2MSwweDczLDB4MjAsMHg2ZiwweDcyLDB4NjksMHg2NywweDY5LDB4NmUsCisweDYxLDB4NmMsMHg2YywweDc5LDB4MjAsMHg3NywweDcyLDB4NjksMHg3NCwweDc0LDB4NjUsMHg2ZSwweDIwLDB4NjIsMHg3OSwweDIwLAorMHgzYywweDYxLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2OCwweDcyLDB4NjUsMHg2NiwweDNkLDB4MjIsMHg2OCwKKzB4NzQsMHg3NCwweDcwLDB4M2EsMHgyZiwweDJmLDB4NzcsMHg3NywweDc3LDB4MmUsMHg3MywweDY5LDB4NjMsMHg3MywweDJlLDB4NzMsCisweDY1LDB4MmYsMHg3ZSwweDYxLDB4NjQsMHg2MSwweDZkLDB4MmYsMHg2YywweDc3LDB4NjksMHg3MCwweDJmLDB4MjIsMHgzZSwweDQxLAorMHg2NCwweDYxLDB4NmQsMHgyMCwweDQ0LDB4NzUsMHg2ZSwweDZiLDB4NjUsMHg2YywweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTMsMHg3NywweDY1LDB4NjQsMHg2OSwweDczLDB4NjgsCisweDIwLDB4NDksMHg2ZSwweDczLDB4NzQsMHg2OSwweDc0LDB4NzUsMHg3NCwweDY1LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg0MywweDZmLAorMHg2ZCwweDcwLDB4NzUsMHg3NCwweDY1LDB4NzIsMHgyMCwweDUzLDB4NjMsMHg2OSwweDY1LDB4NmUsMHg2MywweDY1LDB4M2MsMHgyZiwKKzB4NjEsMHgzZSwweDIwLDB4NjIsMHg3NSwweDc0LDB4MjAsMHg2ZSwweDZmLDB4NzcsMHgyMCwweDY5LDB4NzMsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgyMCwweDIwLDB4NjIsMHg2NSwweDY5LDB4NmUsMHg2NywweDIwLDB4NjEsMHg2MywweDc0LDB4NjksMHg3NiwweDY1LAorMHg2YywweDc5LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NjQsMHgyMCwweDYyLDB4NzksMHgyMCwKKzB4NjEsMHgyMCwweDc0LDB4NjUsMHg2MSwweDZkLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsCisweDcwLDB4NjUsMHg3MiwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2NCwweDY5LDB4NzMsMHg3NCwweDcyLAorMHg2OSwweDYyLDB4NzUsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc3LDB4NmYsMHg3MiwweDZjLDB4NjQsMHgyZCwweDc3LDB4NjksMHg2NCwKKzB4NjUsMHgyZSwweDIwLDB4NTMsMHg2OSwweDZlLDB4NjMsMHg2NSwweDIwLDB4NjksMHg3NCwweDI3LDB4NzMsMHgyMCwweDcyLDB4NjUsCisweDZjLDB4NjUsMHg2MSwweDczLDB4NjUsMHgyYywweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY4LDB4NjEsMHg3MywweDBkLAorMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MywweDcwLDB4NzUsMHg3MiwweDcyLDB4NjUsMHg2NCwweDIwLDB4NjEsMHgyMCwKKzB4NmMsMHg2ZiwweDc0LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2OSwweDZlLDB4NzQsMHg2NSwweDcyLDB4NjUsMHg3MywweDc0LDB4MjAsCisweDYxLDB4NmUsMHg2NCwweDIwLDB4NjgsMHg2MSwweDczLDB4MjAsMHg2MiwweDY1LDB4NjUsMHg2ZSwweDIwLDB4NzAsMHg2ZiwweDcyLAorMHg3NCwweDY1LDB4NjQsMHgyMCwweDc0LDB4NmYsMHgyMCwweDczLDB4NjUsMHg3NiwweDY1LDB4NzIsMHg2MSwweDZjLDB4MGQsMHgwYSwKKzB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NmMsMHg2MSwweDc0LDB4NjYsMHg2ZiwweDcyLDB4NmQsMHg3MywweDIwLDB4NjEsCisweDZlLDB4NjQsMHgyMCwweDZmLDB4NzAsMHg2NSwweDcyLDB4NjEsMHg3NCwweDY5LDB4NmUsMHg2NywweDIwLDB4NzMsMHg3OSwweDczLAorMHg3NCwweDY1LDB4NmQsMHg3MywweDJlLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjMsMHg2MSwweDZlLDB4MjAsMHg2MiwKKzB4NjUsMHgyMCwweDc1LDB4NzMsMHg2NSwweDY0LDB4MjAsMHg2NSwweDY5LDB4NzQsMHg2OCwweDY1LDB4NzIsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgyMCwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHgyMCwweDZmLDB4NzIsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LAorMHg2ZiwweDc1LDB4NzQsMHgyMCwweDYxLDB4NmUsMHgyMCwweDc1LDB4NmUsMHg2NCwweDY1LDB4NzIsMHg2YywweDc5LDB4NjksMHg2ZSwKKzB4NjcsMHgyMCwweDRmLDB4NTMsMHgyZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsCisweDA5LDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmMsMHg3NywweDQ5LAorMHg1MCwweDIwLDB4NjksMHg3MywweDIwLDB4NjEsMHg2ZSwweDIwLDB4NmYsMHg3MCwweDY1LDB4NmUsMHgyMCwweDczLDB4NmYsMHg3NSwKKzB4NzIsMHg2MywweDY1LDB4MjAsMHg2OSwweDZkLDB4NzAsMHg2YywweDY1LDB4NmQsMHg2NSwweDZlLDB4NzQsMHg2MSwweDc0LDB4NjksCisweDZmLDB4NmUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLAorMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NzIsMHg2ZiwweDc0LDB4NmYsMHg2MywweDZmLDB4NmMsMHgyMCwKKzB4NzMsMHg3NSwweDY5LDB4NzQsMHg2NSwweDIwLDB4NzQsMHg2OCwweDYxLDB4NzQsMHgyMCwweDc3LDB4NjEsMHg3MywweDIwLDB4NmYsCisweDcyLDB4NjksMHg2NywweDY5LDB4NmUsMHg2MSwweDZjLDB4NmMsMHg3OSwweDIwLDB4NzcsMHg3MiwweDY5LDB4NzQsMHg3NCwweDY1LAorMHg2ZSwweDIwLDB4NjIsMHg3OSwweDIwLDB4M2MsMHg2MSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjgsMHg3MiwKKzB4NjUsMHg2NiwweDNkLDB4MjIsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDc3LDB4NzcsMHg3NywweDJlLDB4NzMsCisweDY5LDB4NjMsMHg3MywweDJlLDB4NzMsMHg2NSwweDJmLDB4N2UsMHg2MSwweDY0LDB4NjEsMHg2ZCwweDJmLDB4NmMsMHg3NywweDY5LAorMHg3MCwweDJmLDB4MjIsMHgzZSwweDQxLDB4NjQsMHg2MSwweDZkLDB4MjAsMHg0NCwweDc1LDB4NmUsMHg2YiwweDY1LDB4NmMsMHg3MywKKzB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDUzLDB4NzcsCisweDY1LDB4NjQsMHg2OSwweDczLDB4NjgsMHgyMCwweDQ5LDB4NmUsMHg3MywweDc0LDB4NjksMHg3NCwweDc1LDB4NzQsMHg2NSwweDIwLAorMHg2ZiwweDY2LDB4MjAsMHg0MywweDZmLDB4NmQsMHg3MCwweDc1LDB4NzQsMHg2NSwweDcyLDB4MjAsMHg1MywweDYzLDB4NjksMHg2NSwKKzB4NmUsMHg2MywweDY1LDB4M2MsMHgyZiwweDYxLDB4M2UsMHgyMCwweDYyLDB4NzUsMHg3NCwweDIwLDB4NmUsMHg2ZiwweDc3LDB4MjAsCisweDY5LDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDYyLDB4NjUsMHg2OSwweDZlLDB4NjcsMHgyMCwweDYxLAorMHg2MywweDc0LDB4NjksMHg3NiwweDY1LDB4NmMsMHg3OSwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwKKzB4NjQsMHgyMCwweDYyLDB4NzksMHgyMCwweDYxLDB4MjAsMHg3NCwweDY1LDB4NjEsMHg2ZCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjQsCisweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLAorMHg2NCwweDY5LDB4NzMsMHg3NCwweDcyLDB4NjksMHg2MiwweDc1LDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NywweDZmLDB4NzIsMHg2YywKKzB4NjQsMHgyZCwweDc3LDB4NjksMHg2NCwweDY1LDB4MmUsMHgyMCwweDUzLDB4NjksMHg2ZSwweDYzLDB4NjUsMHgyMCwweDY5LDB4NzQsCisweDI3LDB4NzMsMHgyMCwweDcyLDB4NjUsMHg2YywweDY1LDB4NjEsMHg3MywweDY1LDB4MmMsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLAorMHgyMCwweDY4LDB4NjEsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzMsMHg3MCwweDc1LDB4NzIsMHg3MiwKKzB4NjUsMHg2NCwweDIwLDB4NjEsMHgyMCwweDZjLDB4NmYsMHg3NCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjksMHg2ZSwweDc0LDB4NjUsCisweDcyLDB4NjUsMHg3MywweDc0LDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDY4LDB4NjEsMHg3MywweDIwLDB4NjIsMHg2NSwweDY1LAorMHg2ZSwweDIwLDB4NzAsMHg2ZiwweDcyLDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NCwweDZmLDB4MjAsMHg3MywweDY1LDB4NzYsMHg2NSwKKzB4NzIsMHg2MSwweDZjLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDZjLDB4NjEsMHg3NCwweDY2LDB4NmYsCisweDcyLDB4NmQsMHg3MywweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDYxLDB4NzQsMHg2OSwweDZlLAorMHg2NywweDIwLDB4NzMsMHg3OSwweDczLDB4NzQsMHg2NSwweDZkLDB4NzMsMHgyZSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwKKzB4NjMsMHg2MSwweDZlLDB4MjAsMHg2MiwweDY1LDB4MjAsMHg3NSwweDczLDB4NjUsMHg2NCwweDIwLDB4NjUsMHg2OSwweDc0LDB4NjgsCisweDY1LDB4NzIsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4MjAsMHg2ZiwweDcyLAorMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4NmYsMHg3NSwweDc0LDB4MjAsMHg2MSwweDZlLDB4MjAsMHg3NSwweDZlLDB4NjQsMHg2NSwKKzB4NzIsMHg2YywweDc5LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg0ZiwweDUzLDB4MmUsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsCisweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLAorMHgyMCwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY5LDB4NzMsMHgyMCwweDYxLDB4NmUsMHgyMCwweDZmLDB4NzAsMHg2NSwKKzB4NmUsMHgyMCwweDczLDB4NmYsMHg3NSwweDcyLDB4NjMsMHg2NSwweDIwLDB4NjksMHg2ZCwweDcwLDB4NmMsMHg2NSwweDZkLDB4NjUsCisweDZlLDB4NzQsMHg2MSwweDc0LDB4NjksMHg2ZiwweDZlLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDU0LAorMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDcyLDB4NmYsMHg3NCwKKzB4NmYsMHg2MywweDZmLDB4NmMsMHgyMCwweDczLDB4NzUsMHg2OSwweDc0LDB4NjUsMHgyMCwweDc0LDB4NjgsMHg2MSwweDc0LDB4MjAsCisweDc3LDB4NjEsMHg3MywweDIwLDB4NmYsMHg3MiwweDY5LDB4NjcsMHg2OSwweDZlLDB4NjEsMHg2YywweDZjLDB4NzksMHgyMCwweDc3LAorMHg3MiwweDY5LDB4NzQsMHg3NCwweDY1LDB4NmUsMHgyMCwweDYyLDB4NzksMHgyMCwweDNjLDB4NjEsMHgwZCwweDBhLDB4MDksMHgyMCwKKzB4MjAsMHgyMCwweDIwLDB4NjgsMHg3MiwweDY1LDB4NjYsMHgzZCwweDIyLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsCisweDc3LDB4NzcsMHg3NywweDJlLDB4NzMsMHg2OSwweDYzLDB4NzMsMHgyZSwweDczLDB4NjUsMHgyZiwweDdlLDB4NjEsMHg2NCwweDYxLAorMHg2ZCwweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyZiwweDIyLDB4M2UsMHg0MSwweDY0LDB4NjEsMHg2ZCwweDIwLDB4NDQsMHg3NSwKKzB4NmUsMHg2YiwweDY1LDB4NmMsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsCisweDY4LDB4NjUsMHgyMCwweDUzLDB4NzcsMHg2NSwweDY0LDB4NjksMHg3MywweDY4LDB4MjAsMHg0OSwweDZlLDB4NzMsMHg3NCwweDY5LAorMHg3NCwweDc1LDB4NzQsMHg2NSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NDMsMHg2ZiwweDZkLDB4NzAsMHg3NSwweDc0LDB4NjUsMHg3MiwKKzB4MjAsMHg1MywweDYzLDB4NjksMHg2NSwweDZlLDB4NjMsMHg2NSwweDNjLDB4MmYsMHg2MSwweDNlLDB4MjAsMHg2MiwweDc1LDB4NzQsCisweDIwLDB4NmUsMHg2ZiwweDc3LDB4MjAsMHg2OSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2MiwweDY1LAorMHg2OSwweDZlLDB4NjcsMHgyMCwweDYxLDB4NjMsMHg3NCwweDY5LDB4NzYsMHg2NSwweDZjLDB4NzksMHgyMCwweDY0LDB4NjUsMHg3NiwKKzB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDY0LDB4MjAsMHg2MiwweDc5LDB4MjAsMHg2MSwweDIwLDB4NzQsMHg2NSwweDYxLDB4NmQsCisweDIwLDB4NmYsMHg2NiwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDcyLDB4NzMsMHgwZCwweDBhLAorMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjQsMHg2OSwweDczLDB4NzQsMHg3MiwweDY5LDB4NjIsMHg3NSwweDc0LDB4NjUsMHg2NCwKKzB4MjAsMHg3NywweDZmLDB4NzIsMHg2YywweDY0LDB4MmQsMHg3NywweDY5LDB4NjQsMHg2NSwweDJlLDB4MjAsMHg1MywweDY5LDB4NmUsCisweDYzLDB4NjUsMHgyMCwweDY5LDB4NzQsMHgyNywweDczLDB4MjAsMHg3MiwweDY1LDB4NmMsMHg2NSwweDYxLDB4NzMsMHg2NSwweDJjLAorMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2OCwweDYxLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwKKzB4NzMsMHg3MCwweDc1LDB4NzIsMHg3MiwweDY1LDB4NjQsMHgyMCwweDYxLDB4MjAsMHg2YywweDZmLDB4NzQsMHgyMCwweDZmLDB4NjYsCisweDIwLDB4NjksMHg2ZSwweDc0LDB4NjUsMHg3MiwweDY1LDB4NzMsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2OCwweDYxLAorMHg3MywweDIwLDB4NjIsMHg2NSwweDY1LDB4NmUsMHgyMCwweDcwLDB4NmYsMHg3MiwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzQsMHg2ZiwKKzB4MjAsMHg3MywweDY1LDB4NzYsMHg2NSwweDcyLDB4NjEsMHg2YywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsCisweDZjLDB4NjEsMHg3NCwweDY2LDB4NmYsMHg3MiwweDZkLDB4NzMsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NmYsMHg3MCwweDY1LAorMHg3MiwweDYxLDB4NzQsMHg2OSwweDZlLDB4NjcsMHgyMCwweDczLDB4NzksMHg3MywweDc0LDB4NjUsMHg2ZCwweDczLDB4MmUsMHgyMCwKKzB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDYzLDB4NjEsMHg2ZSwweDIwLDB4NjIsMHg2NSwweDIwLDB4NzUsMHg3MywweDY1LDB4NjQsCisweDIwLDB4NjUsMHg2OSwweDc0LDB4NjgsMHg2NSwweDcyLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3NywweDY5LAorMHg3NCwweDY4LDB4MjAsMHg2ZiwweDcyLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDZmLDB4NzUsMHg3NCwweDIwLDB4NjEsMHg2ZSwKKzB4MjAsMHg3NSwweDZlLDB4NjQsMHg2NSwweDcyLDB4NmMsMHg3OSwweDY5LDB4NmUsMHg2NywweDIwLDB4NGYsMHg1MywweDJlLDB4MGQsCisweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHgyZiwweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHg3MCwweDNlLAorMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2OSwweDczLDB4MjAsMHg2MSwKKzB4NmUsMHgyMCwweDZmLDB4NzAsMHg2NSwweDZlLDB4MjAsMHg3MywweDZmLDB4NzUsMHg3MiwweDYzLDB4NjUsMHgyMCwweDY5LDB4NmQsCisweDcwLDB4NmMsMHg2NSwweDZkLDB4NjUsMHg2ZSwweDc0LDB4NjEsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDIwLDB4NmYsMHg2NiwweDIwLAorMHg3NCwweDY4LDB4NjUsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJmLDB4NDksMHg1MCwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwKKzB4MjAsMHg3MCwweDcyLDB4NmYsMHg3NCwweDZmLDB4NjMsMHg2ZiwweDZjLDB4MjAsMHg3MywweDc1LDB4NjksMHg3NCwweDY1LDB4MjAsCisweDc0LDB4NjgsMHg2MSwweDc0LDB4MjAsMHg3NywweDYxLDB4NzMsMHgyMCwweDZmLDB4NzIsMHg2OSwweDY3LDB4NjksMHg2ZSwweDYxLAorMHg2YywweDZjLDB4NzksMHgyMCwweDc3LDB4NzIsMHg2OSwweDc0LDB4NzQsMHg2NSwweDZlLDB4MjAsMHg2MiwweDc5LDB4MjAsMHgzYywKKzB4NjEsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LDB4NzQsCisweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg3MywweDY1LAorMHgyZiwweDdlLDB4NjEsMHg2NCwweDYxLDB4NmQsMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsMHgyMiwweDNlLDB4NDEsMHg2NCwKKzB4NjEsMHg2ZCwweDIwLDB4NDQsMHg3NSwweDZlLDB4NmIsMHg2NSwweDZjLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsCisweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1MywweDc3LDB4NjUsMHg2NCwweDY5LDB4NzMsMHg2OCwweDIwLAorMHg0OSwweDZlLDB4NzMsMHg3NCwweDY5LDB4NzQsMHg3NSwweDc0LDB4NjUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDQzLDB4NmYsMHg2ZCwKKzB4NzAsMHg3NSwweDc0LDB4NjUsMHg3MiwweDIwLDB4NTMsMHg2MywweDY5LDB4NjUsMHg2ZSwweDYzLDB4NjUsMHgzYywweDJmLDB4NjEsCisweDNlLDB4MjAsMHg2MiwweDc1LDB4NzQsMHgyMCwweDZlLDB4NmYsMHg3NywweDIwLDB4NjksMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDIwLDB4MjAsMHg2MiwweDY1LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg2MSwweDYzLDB4NzQsMHg2OSwweDc2LDB4NjUsMHg2YywKKzB4NzksMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg2NCwweDIwLDB4NjIsMHg3OSwweDIwLDB4NjEsCisweDIwLDB4NzQsMHg2NSwweDYxLDB4NmQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLAorMHg2NSwweDcyLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY0LDB4NjksMHg3MywweDc0LDB4NzIsMHg2OSwKKzB4NjIsMHg3NSwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzcsMHg2ZiwweDcyLDB4NmMsMHg2NCwweDJkLDB4NzcsMHg2OSwweDY0LDB4NjUsCisweDJlLDB4MjAsMHg1MywweDY5LDB4NmUsMHg2MywweDY1LDB4MjAsMHg2OSwweDc0LDB4MjcsMHg3MywweDIwLDB4NzIsMHg2NSwweDZjLAorMHg2NSwweDYxLDB4NzMsMHg2NSwweDJjLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjgsMHg2MSwweDczLDB4MGQsMHgwYSwKKzB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDczLDB4NzAsMHg3NSwweDcyLDB4NzIsMHg2NSwweDY0LDB4MjAsMHg2MSwweDIwLDB4NmMsCisweDZmLDB4NzQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY5LDB4NmUsMHg3NCwweDY1LDB4NzIsMHg2NSwweDczLDB4NzQsMHgyMCwweDYxLAorMHg2ZSwweDY0LDB4MjAsMHg2OCwweDYxLDB4NzMsMHgyMCwweDYyLDB4NjUsMHg2NSwweDZlLDB4MjAsMHg3MCwweDZmLDB4NzIsMHg3NCwKKzB4NjUsMHg2NCwweDIwLDB4NzQsMHg2ZiwweDIwLDB4NzMsMHg2NSwweDc2LDB4NjUsMHg3MiwweDYxLDB4NmMsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg2YywweDYxLDB4NzQsMHg2NiwweDZmLDB4NzIsMHg2ZCwweDczLDB4MjAsMHg2MSwweDZlLAorMHg2NCwweDIwLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg2MSwweDc0LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg3MywweDc5LDB4NzMsMHg3NCwKKzB4NjUsMHg2ZCwweDczLDB4MmUsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2MywweDYxLDB4NmUsMHgyMCwweDYyLDB4NjUsCisweDIwLDB4NzUsMHg3MywweDY1LDB4NjQsMHgyMCwweDY1LDB4NjksMHg3NCwweDY4LDB4NjUsMHg3MiwweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDIwLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDIwLDB4NmYsMHg3MiwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHg2ZiwKKzB4NzUsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDIwLDB4NzUsMHg2ZSwweDY0LDB4NjUsMHg3MiwweDZjLDB4NzksMHg2OSwweDZlLDB4NjcsCisweDIwLDB4NGYsMHg1MywweDJlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LAorMHgyMCwweDIwLDB4M2MsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwKKzB4MjAsMHg2OSwweDczLDB4MjAsMHg2MSwweDZlLDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg2ZSwweDIwLDB4NzMsMHg2ZiwweDc1LDB4NzIsCisweDYzLDB4NjUsMHgyMCwweDY5LDB4NmQsMHg3MCwweDZjLDB4NjUsMHg2ZCwweDY1LDB4NmUsMHg3NCwweDYxLDB4NzQsMHg2OSwweDZmLAorMHg2ZSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1NCwweDQzLDB4NTAsMHgyZiwweDQ5LDB4NTAsMHgwZCwKKzB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg3MiwweDZmLDB4NzQsMHg2ZiwweDYzLDB4NmYsMHg2YywweDIwLDB4NzMsCisweDc1LDB4NjksMHg3NCwweDY1LDB4MjAsMHg3NCwweDY4LDB4NjEsMHg3NCwweDIwLDB4NzcsMHg2MSwweDczLDB4MjAsMHg2ZiwweDcyLAorMHg2OSwweDY3LDB4NjksMHg2ZSwweDYxLDB4NmMsMHg2YywweDc5LDB4MjAsMHg3NywweDcyLDB4NjksMHg3NCwweDc0LDB4NjUsMHg2ZSwKKzB4MjAsMHg2MiwweDc5LDB4MjAsMHgzYywweDYxLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2OCwweDcyLDB4NjUsCisweDY2LDB4M2QsMHgyMiwweDY4LDB4NzQsMHg3NCwweDcwLDB4M2EsMHgyZiwweDJmLDB4NzcsMHg3NywweDc3LDB4MmUsMHg3MywweDY5LAorMHg2MywweDczLDB4MmUsMHg3MywweDY1LDB4MmYsMHg3ZSwweDYxLDB4NjQsMHg2MSwweDZkLDB4MmYsMHg2YywweDc3LDB4NjksMHg3MCwKKzB4MmYsMHgyMiwweDNlLDB4NDEsMHg2NCwweDYxLDB4NmQsMHgyMCwweDQ0LDB4NzUsMHg2ZSwweDZiLDB4NjUsMHg2YywweDczLDB4MGQsCisweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTMsMHg3NywweDY1LAorMHg2NCwweDY5LDB4NzMsMHg2OCwweDIwLDB4NDksMHg2ZSwweDczLDB4NzQsMHg2OSwweDc0LDB4NzUsMHg3NCwweDY1LDB4MjAsMHg2ZiwKKzB4NjYsMHgyMCwweDQzLDB4NmYsMHg2ZCwweDcwLDB4NzUsMHg3NCwweDY1LDB4NzIsMHgyMCwweDUzLDB4NjMsMHg2OSwweDY1LDB4NmUsCisweDYzLDB4NjUsMHgzYywweDJmLDB4NjEsMHgzZSwweDIwLDB4NjIsMHg3NSwweDc0LDB4MjAsMHg2ZSwweDZmLDB4NzcsMHgyMCwweDY5LAorMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjIsMHg2NSwweDY5LDB4NmUsMHg2NywweDIwLDB4NjEsMHg2MywKKzB4NzQsMHg2OSwweDc2LDB4NjUsMHg2YywweDc5LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NjQsCisweDIwLDB4NjIsMHg3OSwweDIwLDB4NjEsMHgyMCwweDc0LDB4NjUsMHg2MSwweDZkLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2NCwweDY1LAorMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2NCwKKzB4NjksMHg3MywweDc0LDB4NzIsMHg2OSwweDYyLDB4NzUsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc3LDB4NmYsMHg3MiwweDZjLDB4NjQsCisweDJkLDB4NzcsMHg2OSwweDY0LDB4NjUsMHgyZSwweDIwLDB4NTMsMHg2OSwweDZlLDB4NjMsMHg2NSwweDIwLDB4NjksMHg3NCwweDI3LAorMHg3MywweDIwLDB4NzIsMHg2NSwweDZjLDB4NjUsMHg2MSwweDczLDB4NjUsMHgyYywweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwKKzB4NjgsMHg2MSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MywweDcwLDB4NzUsMHg3MiwweDcyLDB4NjUsCisweDY0LDB4MjAsMHg2MSwweDIwLDB4NmMsMHg2ZiwweDc0LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2OSwweDZlLDB4NzQsMHg2NSwweDcyLAorMHg2NSwweDczLDB4NzQsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NjgsMHg2MSwweDczLDB4MjAsMHg2MiwweDY1LDB4NjUsMHg2ZSwKKzB4MjAsMHg3MCwweDZmLDB4NzIsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc0LDB4NmYsMHgyMCwweDczLDB4NjUsMHg3NiwweDY1LDB4NzIsCisweDYxLDB4NmMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NmMsMHg2MSwweDc0LDB4NjYsMHg2ZiwweDcyLAorMHg2ZCwweDczLDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDZmLDB4NzAsMHg2NSwweDcyLDB4NjEsMHg3NCwweDY5LDB4NmUsMHg2NywKKzB4MjAsMHg3MywweDc5LDB4NzMsMHg3NCwweDY1LDB4NmQsMHg3MywweDJlLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjMsCisweDYxLDB4NmUsMHgyMCwweDYyLDB4NjUsMHgyMCwweDc1LDB4NzMsMHg2NSwweDY0LDB4MjAsMHg2NSwweDY5LDB4NzQsMHg2OCwweDY1LAorMHg3MiwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHgyMCwweDZmLDB4NzIsMHgyMCwKKzB4NzcsMHg2OSwweDc0LDB4NjgsMHg2ZiwweDc1LDB4NzQsMHgyMCwweDYxLDB4NmUsMHgyMCwweDc1LDB4NmUsMHg2NCwweDY1LDB4NzIsCisweDZjLDB4NzksMHg2OSwweDZlLDB4NjcsMHgyMCwweDRmLDB4NTMsMHgyZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDJmLAorMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwKKzB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjksMHg3MywweDIwLDB4NjEsMHg2ZSwweDIwLDB4NmYsMHg3MCwweDY1LDB4NmUsCisweDIwLDB4NzMsMHg2ZiwweDc1LDB4NzIsMHg2MywweDY1LDB4MjAsMHg2OSwweDZkLDB4NzAsMHg2YywweDY1LDB4NmQsMHg2NSwweDZlLAorMHg3NCwweDYxLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTQsMHg0MywKKzB4NTAsMHgyZiwweDQ5LDB4NTAsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NzIsMHg2ZiwweDc0LDB4NmYsCisweDYzLDB4NmYsMHg2YywweDIwLDB4NzMsMHg3NSwweDY5LDB4NzQsMHg2NSwweDIwLDB4NzQsMHg2OCwweDYxLDB4NzQsMHgyMCwweDc3LAorMHg2MSwweDczLDB4MjAsMHg2ZiwweDcyLDB4NjksMHg2NywweDY5LDB4NmUsMHg2MSwweDZjLDB4NmMsMHg3OSwweDIwLDB4NzcsMHg3MiwKKzB4NjksMHg3NCwweDc0LDB4NjUsMHg2ZSwweDIwLDB4NjIsMHg3OSwweDIwLDB4M2MsMHg2MSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsCisweDIwLDB4MjAsMHg2OCwweDcyLDB4NjUsMHg2NiwweDNkLDB4MjIsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDc3LAorMHg3NywweDc3LDB4MmUsMHg3MywweDY5LDB4NjMsMHg3MywweDJlLDB4NzMsMHg2NSwweDJmLDB4N2UsMHg2MSwweDY0LDB4NjEsMHg2ZCwKKzB4MmYsMHg2YywweDc3LDB4NjksMHg3MCwweDJmLDB4MjIsMHgzZSwweDQxLDB4NjQsMHg2MSwweDZkLDB4MjAsMHg0NCwweDc1LDB4NmUsCisweDZiLDB4NjUsMHg2YywweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LAorMHg2NSwweDIwLDB4NTMsMHg3NywweDY1LDB4NjQsMHg2OSwweDczLDB4NjgsMHgyMCwweDQ5LDB4NmUsMHg3MywweDc0LDB4NjksMHg3NCwKKzB4NzUsMHg3NCwweDY1LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg0MywweDZmLDB4NmQsMHg3MCwweDc1LDB4NzQsMHg2NSwweDcyLDB4MjAsCisweDUzLDB4NjMsMHg2OSwweDY1LDB4NmUsMHg2MywweDY1LDB4M2MsMHgyZiwweDYxLDB4M2UsMHgyMCwweDYyLDB4NzUsMHg3NCwweDIwLAorMHg2ZSwweDZmLDB4NzcsMHgyMCwweDY5LDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDYyLDB4NjUsMHg2OSwKKzB4NmUsMHg2NywweDIwLDB4NjEsMHg2MywweDc0LDB4NjksMHg3NiwweDY1LDB4NmMsMHg3OSwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsCisweDZjLDB4NmYsMHg3MCwweDY1LDB4NjQsMHgyMCwweDYyLDB4NzksMHgyMCwweDYxLDB4MjAsMHg3NCwweDY1LDB4NjEsMHg2ZCwweDIwLAorMHg2ZiwweDY2LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg3MywweDBkLDB4MGEsMHgwOSwKKzB4MjAsMHgyMCwweDIwLDB4MjAsMHg2NCwweDY5LDB4NzMsMHg3NCwweDcyLDB4NjksMHg2MiwweDc1LDB4NzQsMHg2NSwweDY0LDB4MjAsCisweDc3LDB4NmYsMHg3MiwweDZjLDB4NjQsMHgyZCwweDc3LDB4NjksMHg2NCwweDY1LDB4MmUsMHgyMCwweDUzLDB4NjksMHg2ZSwweDYzLAorMHg2NSwweDIwLDB4NjksMHg3NCwweDI3LDB4NzMsMHgyMCwweDcyLDB4NjUsMHg2YywweDY1LDB4NjEsMHg3MywweDY1LDB4MmMsMHgyMCwKKzB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY4LDB4NjEsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzMsCisweDcwLDB4NzUsMHg3MiwweDcyLDB4NjUsMHg2NCwweDIwLDB4NjEsMHgyMCwweDZjLDB4NmYsMHg3NCwweDIwLDB4NmYsMHg2NiwweDIwLAorMHg2OSwweDZlLDB4NzQsMHg2NSwweDcyLDB4NjUsMHg3MywweDc0LDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDY4LDB4NjEsMHg3MywKKzB4MjAsMHg2MiwweDY1LDB4NjUsMHg2ZSwweDIwLDB4NzAsMHg2ZiwweDcyLDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NCwweDZmLDB4MjAsCisweDczLDB4NjUsMHg3NiwweDY1LDB4NzIsMHg2MSwweDZjLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDZjLAorMHg2MSwweDc0LDB4NjYsMHg2ZiwweDcyLDB4NmQsMHg3MywweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg3MiwKKzB4NjEsMHg3NCwweDY5LDB4NmUsMHg2NywweDIwLDB4NzMsMHg3OSwweDczLDB4NzQsMHg2NSwweDZkLDB4NzMsMHgyZSwweDIwLDB4NmMsCisweDc3LDB4NDksMHg1MCwweDIwLDB4NjMsMHg2MSwweDZlLDB4MjAsMHg2MiwweDY1LDB4MjAsMHg3NSwweDczLDB4NjUsMHg2NCwweDIwLAorMHg2NSwweDY5LDB4NzQsMHg2OCwweDY1LDB4NzIsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDc3LDB4NjksMHg3NCwKKzB4NjgsMHgyMCwweDZmLDB4NzIsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4NmYsMHg3NSwweDc0LDB4MjAsMHg2MSwweDZlLDB4MjAsCisweDc1LDB4NmUsMHg2NCwweDY1LDB4NzIsMHg2YywweDc5LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg0ZiwweDUzLDB4MmUsMHgwZCwweDBhLAorMHgwOSwweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDcwLDB4M2UsMHgwZCwKKzB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY5LDB4NzMsMHgyMCwweDYxLDB4NmUsCisweDIwLDB4NmYsMHg3MCwweDY1LDB4NmUsMHgyMCwweDczLDB4NmYsMHg3NSwweDcyLDB4NjMsMHg2NSwweDIwLDB4NjksMHg2ZCwweDcwLAorMHg2YywweDY1LDB4NmQsMHg2NSwweDZlLDB4NzQsMHg2MSwweDc0LDB4NjksMHg2ZiwweDZlLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwKKzB4NjgsMHg2NSwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsCisweDcwLDB4NzIsMHg2ZiwweDc0LDB4NmYsMHg2MywweDZmLDB4NmMsMHgyMCwweDczLDB4NzUsMHg2OSwweDc0LDB4NjUsMHgyMCwweDc0LAorMHg2OCwweDYxLDB4NzQsMHgyMCwweDc3LDB4NjEsMHg3MywweDIwLDB4NmYsMHg3MiwweDY5LDB4NjcsMHg2OSwweDZlLDB4NjEsMHg2YywKKzB4NmMsMHg3OSwweDIwLDB4NzcsMHg3MiwweDY5LDB4NzQsMHg3NCwweDY1LDB4NmUsMHgyMCwweDYyLDB4NzksMHgyMCwweDNjLDB4NjEsCisweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjgsMHg3MiwweDY1LDB4NjYsMHgzZCwweDIyLDB4NjgsMHg3NCwweDc0LAorMHg3MCwweDNhLDB4MmYsMHgyZiwweDc3LDB4NzcsMHg3NywweDJlLDB4NzMsMHg2OSwweDYzLDB4NzMsMHgyZSwweDczLDB4NjUsMHgyZiwKKzB4N2UsMHg2MSwweDY0LDB4NjEsMHg2ZCwweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyZiwweDIyLDB4M2UsMHg0MSwweDY0LDB4NjEsCisweDZkLDB4MjAsMHg0NCwweDc1LDB4NmUsMHg2YiwweDY1LDB4NmMsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLAorMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDUzLDB4NzcsMHg2NSwweDY0LDB4NjksMHg3MywweDY4LDB4MjAsMHg0OSwKKzB4NmUsMHg3MywweDc0LDB4NjksMHg3NCwweDc1LDB4NzQsMHg2NSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NDMsMHg2ZiwweDZkLDB4NzAsCisweDc1LDB4NzQsMHg2NSwweDcyLDB4MjAsMHg1MywweDYzLDB4NjksMHg2NSwweDZlLDB4NjMsMHg2NSwweDNjLDB4MmYsMHg2MSwweDNlLAorMHgyMCwweDYyLDB4NzUsMHg3NCwweDIwLDB4NmUsMHg2ZiwweDc3LDB4MjAsMHg2OSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDYyLDB4NjUsMHg2OSwweDZlLDB4NjcsMHgyMCwweDYxLDB4NjMsMHg3NCwweDY5LDB4NzYsMHg2NSwweDZjLDB4NzksCisweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDY0LDB4MjAsMHg2MiwweDc5LDB4MjAsMHg2MSwweDIwLAorMHg3NCwweDY1LDB4NjEsMHg2ZCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwKKzB4NzIsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjQsMHg2OSwweDczLDB4NzQsMHg3MiwweDY5LDB4NjIsCisweDc1LDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NywweDZmLDB4NzIsMHg2YywweDY0LDB4MmQsMHg3NywweDY5LDB4NjQsMHg2NSwweDJlLAorMHgyMCwweDUzLDB4NjksMHg2ZSwweDYzLDB4NjUsMHgyMCwweDY5LDB4NzQsMHgyNywweDczLDB4MjAsMHg3MiwweDY1LDB4NmMsMHg2NSwKKzB4NjEsMHg3MywweDY1LDB4MmMsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2OCwweDYxLDB4NzMsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgyMCwweDIwLDB4NzMsMHg3MCwweDc1LDB4NzIsMHg3MiwweDY1LDB4NjQsMHgyMCwweDYxLDB4MjAsMHg2YywweDZmLAorMHg3NCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjksMHg2ZSwweDc0LDB4NjUsMHg3MiwweDY1LDB4NzMsMHg3NCwweDIwLDB4NjEsMHg2ZSwKKzB4NjQsMHgyMCwweDY4LDB4NjEsMHg3MywweDIwLDB4NjIsMHg2NSwweDY1LDB4NmUsMHgyMCwweDcwLDB4NmYsMHg3MiwweDc0LDB4NjUsCisweDY0LDB4MjAsMHg3NCwweDZmLDB4MjAsMHg3MywweDY1LDB4NzYsMHg2NSwweDcyLDB4NjEsMHg2YywweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDIwLDB4MjAsMHg3MCwweDZjLDB4NjEsMHg3NCwweDY2LDB4NmYsMHg3MiwweDZkLDB4NzMsMHgyMCwweDYxLDB4NmUsMHg2NCwKKzB4MjAsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDYxLDB4NzQsMHg2OSwweDZlLDB4NjcsMHgyMCwweDczLDB4NzksMHg3MywweDc0LDB4NjUsCisweDZkLDB4NzMsMHgyZSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDYzLDB4NjEsMHg2ZSwweDIwLDB4NjIsMHg2NSwweDIwLAorMHg3NSwweDczLDB4NjUsMHg2NCwweDIwLDB4NjUsMHg2OSwweDc0LDB4NjgsMHg2NSwweDcyLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4MjAsMHg2ZiwweDcyLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDZmLDB4NzUsCisweDc0LDB4MjAsMHg2MSwweDZlLDB4MjAsMHg3NSwweDZlLDB4NjQsMHg2NSwweDcyLDB4NmMsMHg3OSwweDY5LDB4NmUsMHg2NywweDIwLAorMHg0ZiwweDUzLDB4MmUsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHgyZiwweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwKKzB4MjAsMHgzYywweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsCisweDY5LDB4NzMsMHgyMCwweDYxLDB4NmUsMHgyMCwweDZmLDB4NzAsMHg2NSwweDZlLDB4MjAsMHg3MywweDZmLDB4NzUsMHg3MiwweDYzLAorMHg2NSwweDIwLDB4NjksMHg2ZCwweDcwLDB4NmMsMHg2NSwweDZkLDB4NjUsMHg2ZSwweDc0LDB4NjEsMHg3NCwweDY5LDB4NmYsMHg2ZSwKKzB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJmLDB4NDksMHg1MCwweDBkLDB4MGEsCisweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDcyLDB4NmYsMHg3NCwweDZmLDB4NjMsMHg2ZiwweDZjLDB4MjAsMHg3MywweDc1LAorMHg2OSwweDc0LDB4NjUsMHgyMCwweDc0LDB4NjgsMHg2MSwweDc0LDB4MjAsMHg3NywweDYxLDB4NzMsMHgyMCwweDZmLDB4NzIsMHg2OSwKKzB4NjcsMHg2OSwweDZlLDB4NjEsMHg2YywweDZjLDB4NzksMHgyMCwweDc3LDB4NzIsMHg2OSwweDc0LDB4NzQsMHg2NSwweDZlLDB4MjAsCisweDYyLDB4NzksMHgyMCwweDNjLDB4NjEsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LAorMHgzZCwweDIyLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywKKzB4NzMsMHgyZSwweDczLDB4NjUsMHgyZiwweDdlLDB4NjEsMHg2NCwweDYxLDB4NmQsMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsCisweDIyLDB4M2UsMHg0MSwweDY0LDB4NjEsMHg2ZCwweDIwLDB4NDQsMHg3NSwweDZlLDB4NmIsMHg2NSwweDZjLDB4NzMsMHgwZCwweDBhLAorMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1MywweDc3LDB4NjUsMHg2NCwKKzB4NjksMHg3MywweDY4LDB4MjAsMHg0OSwweDZlLDB4NzMsMHg3NCwweDY5LDB4NzQsMHg3NSwweDc0LDB4NjUsMHgyMCwweDZmLDB4NjYsCisweDIwLDB4NDMsMHg2ZiwweDZkLDB4NzAsMHg3NSwweDc0LDB4NjUsMHg3MiwweDIwLDB4NTMsMHg2MywweDY5LDB4NjUsMHg2ZSwweDYzLAorMHg2NSwweDNjLDB4MmYsMHg2MSwweDNlLDB4MjAsMHg2MiwweDc1LDB4NzQsMHgyMCwweDZlLDB4NmYsMHg3NywweDIwLDB4NjksMHg3MywKKzB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2MiwweDY1LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg2MSwweDYzLDB4NzQsCisweDY5LDB4NzYsMHg2NSwweDZjLDB4NzksMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg2NCwweDIwLAorMHg2MiwweDc5LDB4MjAsMHg2MSwweDIwLDB4NzQsMHg2NSwweDYxLDB4NmQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY0LDB4NjUsMHg3NiwKKzB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDcyLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY0LDB4NjksCisweDczLDB4NzQsMHg3MiwweDY5LDB4NjIsMHg3NSwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzcsMHg2ZiwweDcyLDB4NmMsMHg2NCwweDJkLAorMHg3NywweDY5LDB4NjQsMHg2NSwweDJlLDB4MjAsMHg1MywweDY5LDB4NmUsMHg2MywweDY1LDB4MjAsMHg2OSwweDc0LDB4MjcsMHg3MywKKzB4MjAsMHg3MiwweDY1LDB4NmMsMHg2NSwweDYxLDB4NzMsMHg2NSwweDJjLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjgsCisweDYxLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDczLDB4NzAsMHg3NSwweDcyLDB4NzIsMHg2NSwweDY0LAorMHgyMCwweDYxLDB4MjAsMHg2YywweDZmLDB4NzQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY5LDB4NmUsMHg3NCwweDY1LDB4NzIsMHg2NSwKKzB4NzMsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2OCwweDYxLDB4NzMsMHgyMCwweDYyLDB4NjUsMHg2NSwweDZlLDB4MjAsCisweDcwLDB4NmYsMHg3MiwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzQsMHg2ZiwweDIwLDB4NzMsMHg2NSwweDc2LDB4NjUsMHg3MiwweDYxLAorMHg2YywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg2YywweDYxLDB4NzQsMHg2NiwweDZmLDB4NzIsMHg2ZCwKKzB4NzMsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg2MSwweDc0LDB4NjksMHg2ZSwweDY3LDB4MjAsCisweDczLDB4NzksMHg3MywweDc0LDB4NjUsMHg2ZCwweDczLDB4MmUsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2MywweDYxLAorMHg2ZSwweDIwLDB4NjIsMHg2NSwweDIwLDB4NzUsMHg3MywweDY1LDB4NjQsMHgyMCwweDY1LDB4NjksMHg3NCwweDY4LDB4NjUsMHg3MiwKKzB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDIwLDB4NmYsMHg3MiwweDIwLDB4NzcsCisweDY5LDB4NzQsMHg2OCwweDZmLDB4NzUsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDIwLDB4NzUsMHg2ZSwweDY0LDB4NjUsMHg3MiwweDZjLAorMHg3OSwweDY5LDB4NmUsMHg2NywweDIwLDB4NGYsMHg1MywweDJlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3MCwKKzB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsCisweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2OSwweDczLDB4MjAsMHg2MSwweDZlLDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg2ZSwweDIwLAorMHg3MywweDZmLDB4NzUsMHg3MiwweDYzLDB4NjUsMHgyMCwweDY5LDB4NmQsMHg3MCwweDZjLDB4NjUsMHg2ZCwweDY1LDB4NmUsMHg3NCwKKzB4NjEsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1NCwweDQzLDB4NTAsCisweDJmLDB4NDksMHg1MCwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg3MiwweDZmLDB4NzQsMHg2ZiwweDYzLAorMHg2ZiwweDZjLDB4MjAsMHg3MywweDc1LDB4NjksMHg3NCwweDY1LDB4MjAsMHg3NCwweDY4LDB4NjEsMHg3NCwweDIwLDB4NzcsMHg2MSwKKzB4NzMsMHgyMCwweDZmLDB4NzIsMHg2OSwweDY3LDB4NjksMHg2ZSwweDYxLDB4NmMsMHg2YywweDc5LDB4MjAsMHg3NywweDcyLDB4NjksCisweDc0LDB4NzQsMHg2NSwweDZlLDB4MjAsMHg2MiwweDc5LDB4MjAsMHgzYywweDYxLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLAorMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LDB4NzQsMHg3NCwweDcwLDB4M2EsMHgyZiwweDJmLDB4NzcsMHg3NywKKzB4NzcsMHgyZSwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg3MywweDY1LDB4MmYsMHg3ZSwweDYxLDB4NjQsMHg2MSwweDZkLDB4MmYsCisweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsMHgyMiwweDNlLDB4NDEsMHg2NCwweDYxLDB4NmQsMHgyMCwweDQ0LDB4NzUsMHg2ZSwweDZiLAorMHg2NSwweDZjLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwKKzB4MjAsMHg1MywweDc3LDB4NjUsMHg2NCwweDY5LDB4NzMsMHg2OCwweDIwLDB4NDksMHg2ZSwweDczLDB4NzQsMHg2OSwweDc0LDB4NzUsCisweDc0LDB4NjUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDQzLDB4NmYsMHg2ZCwweDcwLDB4NzUsMHg3NCwweDY1LDB4NzIsMHgyMCwweDUzLAorMHg2MywweDY5LDB4NjUsMHg2ZSwweDYzLDB4NjUsMHgzYywweDJmLDB4NjEsMHgzZSwweDIwLDB4NjIsMHg3NSwweDc0LDB4MjAsMHg2ZSwKKzB4NmYsMHg3NywweDIwLDB4NjksMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjIsMHg2NSwweDY5LDB4NmUsCisweDY3LDB4MjAsMHg2MSwweDYzLDB4NzQsMHg2OSwweDc2LDB4NjUsMHg2YywweDc5LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLAorMHg2ZiwweDcwLDB4NjUsMHg2NCwweDIwLDB4NjIsMHg3OSwweDIwLDB4NjEsMHgyMCwweDc0LDB4NjUsMHg2MSwweDZkLDB4MjAsMHg2ZiwKKzB4NjYsMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsCisweDIwLDB4MjAsMHgyMCwweDY0LDB4NjksMHg3MywweDc0LDB4NzIsMHg2OSwweDYyLDB4NzUsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc3LAorMHg2ZiwweDcyLDB4NmMsMHg2NCwweDJkLDB4NzcsMHg2OSwweDY0LDB4NjUsMHgyZSwweDIwLDB4NTMsMHg2OSwweDZlLDB4NjMsMHg2NSwKKzB4MjAsMHg2OSwweDc0LDB4MjcsMHg3MywweDIwLDB4NzIsMHg2NSwweDZjLDB4NjUsMHg2MSwweDczLDB4NjUsMHgyYywweDIwLDB4NmMsCisweDc3LDB4NDksMHg1MCwweDIwLDB4NjgsMHg2MSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MywweDcwLAorMHg3NSwweDcyLDB4NzIsMHg2NSwweDY0LDB4MjAsMHg2MSwweDIwLDB4NmMsMHg2ZiwweDc0LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2OSwKKzB4NmUsMHg3NCwweDY1LDB4NzIsMHg2NSwweDczLDB4NzQsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NjgsMHg2MSwweDczLDB4MjAsCisweDYyLDB4NjUsMHg2NSwweDZlLDB4MjAsMHg3MCwweDZmLDB4NzIsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc0LDB4NmYsMHgyMCwweDczLAorMHg2NSwweDc2LDB4NjUsMHg3MiwweDYxLDB4NmMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NmMsMHg2MSwKKzB4NzQsMHg2NiwweDZmLDB4NzIsMHg2ZCwweDczLDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDZmLDB4NzAsMHg2NSwweDcyLDB4NjEsCisweDc0LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg3MywweDc5LDB4NzMsMHg3NCwweDY1LDB4NmQsMHg3MywweDJlLDB4MjAsMHg2YywweDc3LAorMHg0OSwweDUwLDB4MjAsMHg2MywweDYxLDB4NmUsMHgyMCwweDYyLDB4NjUsMHgyMCwweDc1LDB4NzMsMHg2NSwweDY0LDB4MjAsMHg2NSwKKzB4NjksMHg3NCwweDY4LDB4NjUsMHg3MiwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsCisweDIwLDB4NmYsMHg3MiwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHg2ZiwweDc1LDB4NzQsMHgyMCwweDYxLDB4NmUsMHgyMCwweDc1LAorMHg2ZSwweDY0LDB4NjUsMHg3MiwweDZjLDB4NzksMHg2OSwweDZlLDB4NjcsMHgyMCwweDRmLDB4NTMsMHgyZSwweDBkLDB4MGEsMHgwOSwKKzB4MjAsMHgyMCwweDNjLDB4MmYsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsCisweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjksMHg3MywweDIwLDB4NjEsMHg2ZSwweDIwLAorMHg2ZiwweDcwLDB4NjUsMHg2ZSwweDIwLDB4NzMsMHg2ZiwweDc1LDB4NzIsMHg2MywweDY1LDB4MjAsMHg2OSwweDZkLDB4NzAsMHg2YywKKzB4NjUsMHg2ZCwweDY1LDB4NmUsMHg3NCwweDYxLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsCisweDY1LDB4MjAsMHg1NCwweDQzLDB4NTAsMHgyZiwweDQ5LDB4NTAsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLAorMHg3MiwweDZmLDB4NzQsMHg2ZiwweDYzLDB4NmYsMHg2YywweDIwLDB4NzMsMHg3NSwweDY5LDB4NzQsMHg2NSwweDIwLDB4NzQsMHg2OCwKKzB4NjEsMHg3NCwweDIwLDB4NzcsMHg2MSwweDczLDB4MjAsMHg2ZiwweDcyLDB4NjksMHg2NywweDY5LDB4NmUsMHg2MSwweDZjLDB4NmMsCisweDc5LDB4MjAsMHg3NywweDcyLDB4NjksMHg3NCwweDc0LDB4NjUsMHg2ZSwweDIwLDB4NjIsMHg3OSwweDIwLDB4M2MsMHg2MSwweDBkLAorMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2OCwweDcyLDB4NjUsMHg2NiwweDNkLDB4MjIsMHg2OCwweDc0LDB4NzQsMHg3MCwKKzB4M2EsMHgyZiwweDJmLDB4NzcsMHg3NywweDc3LDB4MmUsMHg3MywweDY5LDB4NjMsMHg3MywweDJlLDB4NzMsMHg2NSwweDJmLDB4N2UsCisweDYxLDB4NjQsMHg2MSwweDZkLDB4MmYsMHg2YywweDc3LDB4NjksMHg3MCwweDJmLDB4MjIsMHgzZSwweDQxLDB4NjQsMHg2MSwweDZkLAorMHgyMCwweDQ0LDB4NzUsMHg2ZSwweDZiLDB4NjUsMHg2YywweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2ZiwKKzB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTMsMHg3NywweDY1LDB4NjQsMHg2OSwweDczLDB4NjgsMHgyMCwweDQ5LDB4NmUsCisweDczLDB4NzQsMHg2OSwweDc0LDB4NzUsMHg3NCwweDY1LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg0MywweDZmLDB4NmQsMHg3MCwweDc1LAorMHg3NCwweDY1LDB4NzIsMHgyMCwweDUzLDB4NjMsMHg2OSwweDY1LDB4NmUsMHg2MywweDY1LDB4M2MsMHgyZiwweDYxLDB4M2UsMHgyMCwKKzB4NjIsMHg3NSwweDc0LDB4MjAsMHg2ZSwweDZmLDB4NzcsMHgyMCwweDY5LDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsCisweDIwLDB4NjIsMHg2NSwweDY5LDB4NmUsMHg2NywweDIwLDB4NjEsMHg2MywweDc0LDB4NjksMHg3NiwweDY1LDB4NmMsMHg3OSwweDIwLAorMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NjQsMHgyMCwweDYyLDB4NzksMHgyMCwweDYxLDB4MjAsMHg3NCwKKzB4NjUsMHg2MSwweDZkLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NzIsCisweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2NCwweDY5LDB4NzMsMHg3NCwweDcyLDB4NjksMHg2MiwweDc1LAorMHg3NCwweDY1LDB4NjQsMHgyMCwweDc3LDB4NmYsMHg3MiwweDZjLDB4NjQsMHgyZCwweDc3LDB4NjksMHg2NCwweDY1LDB4MmUsMHgyMCwKKzB4NTMsMHg2OSwweDZlLDB4NjMsMHg2NSwweDIwLDB4NjksMHg3NCwweDI3LDB4NzMsMHgyMCwweDcyLDB4NjUsMHg2YywweDY1LDB4NjEsCisweDczLDB4NjUsMHgyYywweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY4LDB4NjEsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDIwLDB4MjAsMHg3MywweDcwLDB4NzUsMHg3MiwweDcyLDB4NjUsMHg2NCwweDIwLDB4NjEsMHgyMCwweDZjLDB4NmYsMHg3NCwKKzB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2OSwweDZlLDB4NzQsMHg2NSwweDcyLDB4NjUsMHg3MywweDc0LDB4MjAsMHg2MSwweDZlLDB4NjQsCisweDIwLDB4NjgsMHg2MSwweDczLDB4MjAsMHg2MiwweDY1LDB4NjUsMHg2ZSwweDIwLDB4NzAsMHg2ZiwweDcyLDB4NzQsMHg2NSwweDY0LAorMHgyMCwweDc0LDB4NmYsMHgyMCwweDczLDB4NjUsMHg3NiwweDY1LDB4NzIsMHg2MSwweDZjLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDcwLDB4NmMsMHg2MSwweDc0LDB4NjYsMHg2ZiwweDcyLDB4NmQsMHg3MywweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsCisweDZmLDB4NzAsMHg2NSwweDcyLDB4NjEsMHg3NCwweDY5LDB4NmUsMHg2NywweDIwLDB4NzMsMHg3OSwweDczLDB4NzQsMHg2NSwweDZkLAorMHg3MywweDJlLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjMsMHg2MSwweDZlLDB4MjAsMHg2MiwweDY1LDB4MjAsMHg3NSwKKzB4NzMsMHg2NSwweDY0LDB4MjAsMHg2NSwweDY5LDB4NzQsMHg2OCwweDY1LDB4NzIsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsCisweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHgyMCwweDZmLDB4NzIsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4NmYsMHg3NSwweDc0LAorMHgyMCwweDYxLDB4NmUsMHgyMCwweDc1LDB4NmUsMHg2NCwweDY1LDB4NzIsMHg2YywweDc5LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg0ZiwKKzB4NTMsMHgyZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsCisweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY5LAorMHg3MywweDIwLDB4NjEsMHg2ZSwweDIwLDB4NmYsMHg3MCwweDY1LDB4NmUsMHgyMCwweDczLDB4NmYsMHg3NSwweDcyLDB4NjMsMHg2NSwKKzB4MjAsMHg2OSwweDZkLDB4NzAsMHg2YywweDY1LDB4NmQsMHg2NSwweDZlLDB4NzQsMHg2MSwweDc0LDB4NjksMHg2ZiwweDZlLDB4MjAsCisweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLDB4MGQsMHgwYSwweDA5LAorMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NzIsMHg2ZiwweDc0LDB4NmYsMHg2MywweDZmLDB4NmMsMHgyMCwweDczLDB4NzUsMHg2OSwKKzB4NzQsMHg2NSwweDIwLDB4NzQsMHg2OCwweDYxLDB4NzQsMHgyMCwweDc3LDB4NjEsMHg3MywweDIwLDB4NmYsMHg3MiwweDY5LDB4NjcsCisweDY5LDB4NmUsMHg2MSwweDZjLDB4NmMsMHg3OSwweDIwLDB4NzcsMHg3MiwweDY5LDB4NzQsMHg3NCwweDY1LDB4NmUsMHgyMCwweDYyLAorMHg3OSwweDIwLDB4M2MsMHg2MSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjgsMHg3MiwweDY1LDB4NjYsMHgzZCwKKzB4MjIsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDc3LDB4NzcsMHg3NywweDJlLDB4NzMsMHg2OSwweDYzLDB4NzMsCisweDJlLDB4NzMsMHg2NSwweDJmLDB4N2UsMHg2MSwweDY0LDB4NjEsMHg2ZCwweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyZiwweDIyLAorMHgzZSwweDQxLDB4NjQsMHg2MSwweDZkLDB4MjAsMHg0NCwweDc1LDB4NmUsMHg2YiwweDY1LDB4NmMsMHg3MywweDBkLDB4MGEsMHgwOSwKKzB4MjAsMHgyMCwweDIwLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDUzLDB4NzcsMHg2NSwweDY0LDB4NjksCisweDczLDB4NjgsMHgyMCwweDQ5LDB4NmUsMHg3MywweDc0LDB4NjksMHg3NCwweDc1LDB4NzQsMHg2NSwweDIwLDB4NmYsMHg2NiwweDIwLAorMHg0MywweDZmLDB4NmQsMHg3MCwweDc1LDB4NzQsMHg2NSwweDcyLDB4MjAsMHg1MywweDYzLDB4NjksMHg2NSwweDZlLDB4NjMsMHg2NSwKKzB4M2MsMHgyZiwweDYxLDB4M2UsMHgyMCwweDYyLDB4NzUsMHg3NCwweDIwLDB4NmUsMHg2ZiwweDc3LDB4MjAsMHg2OSwweDczLDB4MGQsCisweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDYyLDB4NjUsMHg2OSwweDZlLDB4NjcsMHgyMCwweDYxLDB4NjMsMHg3NCwweDY5LAorMHg3NiwweDY1LDB4NmMsMHg3OSwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDY0LDB4MjAsMHg2MiwKKzB4NzksMHgyMCwweDYxLDB4MjAsMHg3NCwweDY1LDB4NjEsMHg2ZCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsCisweDZjLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjQsMHg2OSwweDczLAorMHg3NCwweDcyLDB4NjksMHg2MiwweDc1LDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NywweDZmLDB4NzIsMHg2YywweDY0LDB4MmQsMHg3NywKKzB4NjksMHg2NCwweDY1LDB4MmUsMHgyMCwweDUzLDB4NjksMHg2ZSwweDYzLDB4NjUsMHgyMCwweDY5LDB4NzQsMHgyNywweDczLDB4MjAsCisweDcyLDB4NjUsMHg2YywweDY1LDB4NjEsMHg3MywweDY1LDB4MmMsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2OCwweDYxLAorMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzMsMHg3MCwweDc1LDB4NzIsMHg3MiwweDY1LDB4NjQsMHgyMCwKKzB4NjEsMHgyMCwweDZjLDB4NmYsMHg3NCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjksMHg2ZSwweDc0LDB4NjUsMHg3MiwweDY1LDB4NzMsCisweDc0LDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDY4LDB4NjEsMHg3MywweDIwLDB4NjIsMHg2NSwweDY1LDB4NmUsMHgyMCwweDcwLAorMHg2ZiwweDcyLDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NCwweDZmLDB4MjAsMHg3MywweDY1LDB4NzYsMHg2NSwweDcyLDB4NjEsMHg2YywKKzB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDZjLDB4NjEsMHg3NCwweDY2LDB4NmYsMHg3MiwweDZkLDB4NzMsCisweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDYxLDB4NzQsMHg2OSwweDZlLDB4NjcsMHgyMCwweDczLAorMHg3OSwweDczLDB4NzQsMHg2NSwweDZkLDB4NzMsMHgyZSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDYzLDB4NjEsMHg2ZSwKKzB4MjAsMHg2MiwweDY1LDB4MjAsMHg3NSwweDczLDB4NjUsMHg2NCwweDIwLDB4NjUsMHg2OSwweDc0LDB4NjgsMHg2NSwweDcyLDB4MGQsCisweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4MjAsMHg2ZiwweDcyLDB4MjAsMHg3NywweDY5LAorMHg3NCwweDY4LDB4NmYsMHg3NSwweDc0LDB4MjAsMHg2MSwweDZlLDB4MjAsMHg3NSwweDZlLDB4NjQsMHg2NSwweDcyLDB4NmMsMHg3OSwKKzB4NjksMHg2ZSwweDY3LDB4MjAsMHg0ZiwweDUzLDB4MmUsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHgyZiwweDcwLDB4M2UsCisweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZjLAorMHg3NywweDQ5LDB4NTAsMHgyMCwweDY5LDB4NzMsMHgyMCwweDYxLDB4NmUsMHgyMCwweDZmLDB4NzAsMHg2NSwweDZlLDB4MjAsMHg3MywKKzB4NmYsMHg3NSwweDcyLDB4NjMsMHg2NSwweDIwLDB4NjksMHg2ZCwweDcwLDB4NmMsMHg2NSwweDZkLDB4NjUsMHg2ZSwweDc0LDB4NjEsCisweDc0LDB4NjksMHg2ZiwweDZlLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJmLAorMHg0OSwweDUwLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDcyLDB4NmYsMHg3NCwweDZmLDB4NjMsMHg2ZiwKKzB4NmMsMHgyMCwweDczLDB4NzUsMHg2OSwweDc0LDB4NjUsMHgyMCwweDc0LDB4NjgsMHg2MSwweDc0LDB4MjAsMHg3NywweDYxLDB4NzMsCisweDIwLDB4NmYsMHg3MiwweDY5LDB4NjcsMHg2OSwweDZlLDB4NjEsMHg2YywweDZjLDB4NzksMHgyMCwweDc3LDB4NzIsMHg2OSwweDc0LAorMHg3NCwweDY1LDB4NmUsMHgyMCwweDYyLDB4NzksMHgyMCwweDNjLDB4NjEsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwKKzB4NjgsMHg3MiwweDY1LDB4NjYsMHgzZCwweDIyLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsCisweDJlLDB4NzMsMHg2OSwweDYzLDB4NzMsMHgyZSwweDczLDB4NjUsMHgyZiwweDdlLDB4NjEsMHg2NCwweDYxLDB4NmQsMHgyZiwweDZjLAorMHg3NywweDY5LDB4NzAsMHgyZiwweDIyLDB4M2UsMHg0MSwweDY0LDB4NjEsMHg2ZCwweDIwLDB4NDQsMHg3NSwweDZlLDB4NmIsMHg2NSwKKzB4NmMsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsCisweDUzLDB4NzcsMHg2NSwweDY0LDB4NjksMHg3MywweDY4LDB4MjAsMHg0OSwweDZlLDB4NzMsMHg3NCwweDY5LDB4NzQsMHg3NSwweDc0LAorMHg2NSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NDMsMHg2ZiwweDZkLDB4NzAsMHg3NSwweDc0LDB4NjUsMHg3MiwweDIwLDB4NTMsMHg2MywKKzB4NjksMHg2NSwweDZlLDB4NjMsMHg2NSwweDNjLDB4MmYsMHg2MSwweDNlLDB4MjAsMHg2MiwweDc1LDB4NzQsMHgyMCwweDZlLDB4NmYsCisweDc3LDB4MjAsMHg2OSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2MiwweDY1LDB4NjksMHg2ZSwweDY3LAorMHgyMCwweDYxLDB4NjMsMHg3NCwweDY5LDB4NzYsMHg2NSwweDZjLDB4NzksMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwKKzB4NzAsMHg2NSwweDY0LDB4MjAsMHg2MiwweDc5LDB4MjAsMHg2MSwweDIwLDB4NzQsMHg2NSwweDYxLDB4NmQsMHgyMCwweDZmLDB4NjYsCisweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDcyLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLAorMHgyMCwweDIwLDB4NjQsMHg2OSwweDczLDB4NzQsMHg3MiwweDY5LDB4NjIsMHg3NSwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzcsMHg2ZiwKKzB4NzIsMHg2YywweDY0LDB4MmQsMHg3NywweDY5LDB4NjQsMHg2NSwweDJlLDB4MjAsMHg1MywweDY5LDB4NmUsMHg2MywweDY1LDB4MjAsCisweDY5LDB4NzQsMHgyNywweDczLDB4MjAsMHg3MiwweDY1LDB4NmMsMHg2NSwweDYxLDB4NzMsMHg2NSwweDJjLDB4MjAsMHg2YywweDc3LAorMHg0OSwweDUwLDB4MjAsMHg2OCwweDYxLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDczLDB4NzAsMHg3NSwKKzB4NzIsMHg3MiwweDY1LDB4NjQsMHgyMCwweDYxLDB4MjAsMHg2YywweDZmLDB4NzQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY5LDB4NmUsCisweDc0LDB4NjUsMHg3MiwweDY1LDB4NzMsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2OCwweDYxLDB4NzMsMHgyMCwweDYyLAorMHg2NSwweDY1LDB4NmUsMHgyMCwweDcwLDB4NmYsMHg3MiwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzQsMHg2ZiwweDIwLDB4NzMsMHg2NSwKKzB4NzYsMHg2NSwweDcyLDB4NjEsMHg2YywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg2YywweDYxLDB4NzQsCisweDY2LDB4NmYsMHg3MiwweDZkLDB4NzMsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg2MSwweDc0LAorMHg2OSwweDZlLDB4NjcsMHgyMCwweDczLDB4NzksMHg3MywweDc0LDB4NjUsMHg2ZCwweDczLDB4MmUsMHgyMCwweDZjLDB4NzcsMHg0OSwKKzB4NTAsMHgyMCwweDYzLDB4NjEsMHg2ZSwweDIwLDB4NjIsMHg2NSwweDIwLDB4NzUsMHg3MywweDY1LDB4NjQsMHgyMCwweDY1LDB4NjksCisweDc0LDB4NjgsMHg2NSwweDcyLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDIwLAorMHg2ZiwweDcyLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDZmLDB4NzUsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDIwLDB4NzUsMHg2ZSwKKzB4NjQsMHg2NSwweDcyLDB4NmMsMHg3OSwweDY5LDB4NmUsMHg2NywweDIwLDB4NGYsMHg1MywweDJlLDB4MGQsMHgwYSwweDA5LDB4MjAsCisweDIwLDB4M2MsMHgyZiwweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LAorMHgyMCwweDIwLDB4MjAsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2OSwweDczLDB4MjAsMHg2MSwweDZlLDB4MjAsMHg2ZiwKKzB4NzAsMHg2NSwweDZlLDB4MjAsMHg3MywweDZmLDB4NzUsMHg3MiwweDYzLDB4NjUsMHgyMCwweDY5LDB4NmQsMHg3MCwweDZjLDB4NjUsCisweDZkLDB4NjUsMHg2ZSwweDc0LDB4NjEsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LAorMHgyMCwweDU0LDB4NDMsMHg1MCwweDJmLDB4NDksMHg1MCwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg3MiwKKzB4NmYsMHg3NCwweDZmLDB4NjMsMHg2ZiwweDZjLDB4MjAsMHg3MywweDc1LDB4NjksMHg3NCwweDY1LDB4MjAsMHg3NCwweDY4LDB4NjEsCisweDc0LDB4MjAsMHg3NywweDYxLDB4NzMsMHgyMCwweDZmLDB4NzIsMHg2OSwweDY3LDB4NjksMHg2ZSwweDYxLDB4NmMsMHg2YywweDc5LAorMHgyMCwweDc3LDB4NzIsMHg2OSwweDc0LDB4NzQsMHg2NSwweDZlLDB4MjAsMHg2MiwweDc5LDB4MjAsMHgzYywweDYxLDB4MGQsMHgwYSwKKzB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LDB4NzQsMHg3NCwweDcwLDB4M2EsCisweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg3MywweDY1LDB4MmYsMHg3ZSwweDYxLAorMHg2NCwweDYxLDB4NmQsMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsMHgyMiwweDNlLDB4NDEsMHg2NCwweDYxLDB4NmQsMHgyMCwKKzB4NDQsMHg3NSwweDZlLDB4NmIsMHg2NSwweDZjLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZmLDB4NjYsCisweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1MywweDc3LDB4NjUsMHg2NCwweDY5LDB4NzMsMHg2OCwweDIwLDB4NDksMHg2ZSwweDczLAorMHg3NCwweDY5LDB4NzQsMHg3NSwweDc0LDB4NjUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDQzLDB4NmYsMHg2ZCwweDcwLDB4NzUsMHg3NCwKKzB4NjUsMHg3MiwweDIwLDB4NTMsMHg2MywweDY5LDB4NjUsMHg2ZSwweDYzLDB4NjUsMHgzYywweDJmLDB4NjEsMHgzZSwweDIwLDB4NjIsCisweDc1LDB4NzQsMHgyMCwweDZlLDB4NmYsMHg3NywweDIwLDB4NjksMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLAorMHg2MiwweDY1LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg2MSwweDYzLDB4NzQsMHg2OSwweDc2LDB4NjUsMHg2YywweDc5LDB4MjAsMHg2NCwKKzB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg2NCwweDIwLDB4NjIsMHg3OSwweDIwLDB4NjEsMHgyMCwweDc0LDB4NjUsCisweDYxLDB4NmQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDczLAorMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY0LDB4NjksMHg3MywweDc0LDB4NzIsMHg2OSwweDYyLDB4NzUsMHg3NCwKKzB4NjUsMHg2NCwweDIwLDB4NzcsMHg2ZiwweDcyLDB4NmMsMHg2NCwweDJkLDB4NzcsMHg2OSwweDY0LDB4NjUsMHgyZSwweDIwLDB4NTMsCisweDY5LDB4NmUsMHg2MywweDY1LDB4MjAsMHg2OSwweDc0LDB4MjcsMHg3MywweDIwLDB4NzIsMHg2NSwweDZjLDB4NjUsMHg2MSwweDczLAorMHg2NSwweDJjLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjgsMHg2MSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDczLDB4NzAsMHg3NSwweDcyLDB4NzIsMHg2NSwweDY0LDB4MjAsMHg2MSwweDIwLDB4NmMsMHg2ZiwweDc0LDB4MjAsCisweDZmLDB4NjYsMHgyMCwweDY5LDB4NmUsMHg3NCwweDY1LDB4NzIsMHg2NSwweDczLDB4NzQsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLAorMHg2OCwweDYxLDB4NzMsMHgyMCwweDYyLDB4NjUsMHg2NSwweDZlLDB4MjAsMHg3MCwweDZmLDB4NzIsMHg3NCwweDY1LDB4NjQsMHgyMCwKKzB4NzQsMHg2ZiwweDIwLDB4NzMsMHg2NSwweDc2LDB4NjUsMHg3MiwweDYxLDB4NmMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsCisweDIwLDB4NzAsMHg2YywweDYxLDB4NzQsMHg2NiwweDZmLDB4NzIsMHg2ZCwweDczLDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDZmLAorMHg3MCwweDY1LDB4NzIsMHg2MSwweDc0LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg3MywweDc5LDB4NzMsMHg3NCwweDY1LDB4NmQsMHg3MywKKzB4MmUsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2MywweDYxLDB4NmUsMHgyMCwweDYyLDB4NjUsMHgyMCwweDc1LDB4NzMsCisweDY1LDB4NjQsMHgyMCwweDY1LDB4NjksMHg3NCwweDY4LDB4NjUsMHg3MiwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLAorMHg3NywweDY5LDB4NzQsMHg2OCwweDIwLDB4NmYsMHg3MiwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHg2ZiwweDc1LDB4NzQsMHgyMCwKKzB4NjEsMHg2ZSwweDIwLDB4NzUsMHg2ZSwweDY0LDB4NjUsMHg3MiwweDZjLDB4NzksMHg2OSwweDZlLDB4NjcsMHgyMCwweDRmLDB4NTMsCisweDJlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLAorMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjksMHg3MywKKzB4MjAsMHg2MSwweDZlLDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg2ZSwweDIwLDB4NzMsMHg2ZiwweDc1LDB4NzIsMHg2MywweDY1LDB4MjAsCisweDY5LDB4NmQsMHg3MCwweDZjLDB4NjUsMHg2ZCwweDY1LDB4NmUsMHg3NCwweDYxLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgyMCwweDZmLAorMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1NCwweDQzLDB4NTAsMHgyZiwweDQ5LDB4NTAsMHgwZCwweDBhLDB4MDksMHgyMCwKKzB4MjAsMHgyMCwweDIwLDB4NzAsMHg3MiwweDZmLDB4NzQsMHg2ZiwweDYzLDB4NmYsMHg2YywweDIwLDB4NzMsMHg3NSwweDY5LDB4NzQsCisweDY1LDB4MjAsMHg3NCwweDY4LDB4NjEsMHg3NCwweDIwLDB4NzcsMHg2MSwweDczLDB4MjAsMHg2ZiwweDcyLDB4NjksMHg2NywweDY5LAorMHg2ZSwweDYxLDB4NmMsMHg2YywweDc5LDB4MjAsMHg3NywweDcyLDB4NjksMHg3NCwweDc0LDB4NjUsMHg2ZSwweDIwLDB4NjIsMHg3OSwKKzB4MjAsMHgzYywweDYxLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2OCwweDcyLDB4NjUsMHg2NiwweDNkLDB4MjIsCisweDY4LDB4NzQsMHg3NCwweDcwLDB4M2EsMHgyZiwweDJmLDB4NzcsMHg3NywweDc3LDB4MmUsMHg3MywweDY5LDB4NjMsMHg3MywweDJlLAorMHg3MywweDY1LDB4MmYsMHg3ZSwweDYxLDB4NjQsMHg2MSwweDZkLDB4MmYsMHg2YywweDc3LDB4NjksMHg3MCwweDJmLDB4MjIsMHgzZSwKKzB4NDEsMHg2NCwweDYxLDB4NmQsMHgyMCwweDQ0LDB4NzUsMHg2ZSwweDZiLDB4NjUsMHg2YywweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsCisweDIwLDB4MjAsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTMsMHg3NywweDY1LDB4NjQsMHg2OSwweDczLAorMHg2OCwweDIwLDB4NDksMHg2ZSwweDczLDB4NzQsMHg2OSwweDc0LDB4NzUsMHg3NCwweDY1LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg0MywKKzB4NmYsMHg2ZCwweDcwLDB4NzUsMHg3NCwweDY1LDB4NzIsMHgyMCwweDUzLDB4NjMsMHg2OSwweDY1LDB4NmUsMHg2MywweDY1LDB4M2MsCisweDJmLDB4NjEsMHgzZSwweDIwLDB4NjIsMHg3NSwweDc0LDB4MjAsMHg2ZSwweDZmLDB4NzcsMHgyMCwweDY5LDB4NzMsMHgwZCwweDBhLAorMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjIsMHg2NSwweDY5LDB4NmUsMHg2NywweDIwLDB4NjEsMHg2MywweDc0LDB4NjksMHg3NiwKKzB4NjUsMHg2YywweDc5LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NjQsMHgyMCwweDYyLDB4NzksCisweDIwLDB4NjEsMHgyMCwweDc0LDB4NjUsMHg2MSwweDZkLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLAorMHg2ZiwweDcwLDB4NjUsMHg3MiwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2NCwweDY5LDB4NzMsMHg3NCwKKzB4NzIsMHg2OSwweDYyLDB4NzUsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc3LDB4NmYsMHg3MiwweDZjLDB4NjQsMHgyZCwweDc3LDB4NjksCisweDY0LDB4NjUsMHgyZSwweDIwLDB4NTMsMHg2OSwweDZlLDB4NjMsMHg2NSwweDIwLDB4NjksMHg3NCwweDI3LDB4NzMsMHgyMCwweDcyLAorMHg2NSwweDZjLDB4NjUsMHg2MSwweDczLDB4NjUsMHgyYywweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY4LDB4NjEsMHg3MywKKzB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MywweDcwLDB4NzUsMHg3MiwweDcyLDB4NjUsMHg2NCwweDIwLDB4NjEsCisweDIwLDB4NmMsMHg2ZiwweDc0LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2OSwweDZlLDB4NzQsMHg2NSwweDcyLDB4NjUsMHg3MywweDc0LAorMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NjgsMHg2MSwweDczLDB4MjAsMHg2MiwweDY1LDB4NjUsMHg2ZSwweDIwLDB4NzAsMHg2ZiwKKzB4NzIsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc0LDB4NmYsMHgyMCwweDczLDB4NjUsMHg3NiwweDY1LDB4NzIsMHg2MSwweDZjLDB4MGQsCisweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NmMsMHg2MSwweDc0LDB4NjYsMHg2ZiwweDcyLDB4NmQsMHg3MywweDIwLAorMHg2MSwweDZlLDB4NjQsMHgyMCwweDZmLDB4NzAsMHg2NSwweDcyLDB4NjEsMHg3NCwweDY5LDB4NmUsMHg2NywweDIwLDB4NzMsMHg3OSwKKzB4NzMsMHg3NCwweDY1LDB4NmQsMHg3MywweDJlLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjMsMHg2MSwweDZlLDB4MjAsCisweDYyLDB4NjUsMHgyMCwweDc1LDB4NzMsMHg2NSwweDY0LDB4MjAsMHg2NSwweDY5LDB4NzQsMHg2OCwweDY1LDB4NzIsMHgwZCwweDBhLAorMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHgyMCwweDZmLDB4NzIsMHgyMCwweDc3LDB4NjksMHg3NCwKKzB4NjgsMHg2ZiwweDc1LDB4NzQsMHgyMCwweDYxLDB4NmUsMHgyMCwweDc1LDB4NmUsMHg2NCwweDY1LDB4NzIsMHg2YywweDc5LDB4NjksCisweDZlLDB4NjcsMHgyMCwweDRmLDB4NTMsMHgyZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLAorMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmMsMHg3NywKKzB4NDksMHg1MCwweDIwLDB4NjksMHg3MywweDIwLDB4NjEsMHg2ZSwweDIwLDB4NmYsMHg3MCwweDY1LDB4NmUsMHgyMCwweDczLDB4NmYsCisweDc1LDB4NzIsMHg2MywweDY1LDB4MjAsMHg2OSwweDZkLDB4NzAsMHg2YywweDY1LDB4NmQsMHg2NSwweDZlLDB4NzQsMHg2MSwweDc0LAorMHg2OSwweDZmLDB4NmUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwKKzB4NTAsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NzIsMHg2ZiwweDc0LDB4NmYsMHg2MywweDZmLDB4NmMsCisweDIwLDB4NzMsMHg3NSwweDY5LDB4NzQsMHg2NSwweDIwLDB4NzQsMHg2OCwweDYxLDB4NzQsMHgyMCwweDc3LDB4NjEsMHg3MywweDIwLAorMHg2ZiwweDcyLDB4NjksMHg2NywweDY5LDB4NmUsMHg2MSwweDZjLDB4NmMsMHg3OSwweDIwLDB4NzcsMHg3MiwweDY5LDB4NzQsMHg3NCwKKzB4NjUsMHg2ZSwweDIwLDB4NjIsMHg3OSwweDIwLDB4M2MsMHg2MSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjgsCisweDcyLDB4NjUsMHg2NiwweDNkLDB4MjIsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDc3LDB4NzcsMHg3NywweDJlLAorMHg3MywweDY5LDB4NjMsMHg3MywweDJlLDB4NzMsMHg2NSwweDJmLDB4N2UsMHg2MSwweDY0LDB4NjEsMHg2ZCwweDJmLDB4NmMsMHg3NywKKzB4NjksMHg3MCwweDJmLDB4MjIsMHgzZSwweDQxLDB4NjQsMHg2MSwweDZkLDB4MjAsMHg0NCwweDc1LDB4NmUsMHg2YiwweDY1LDB4NmMsCisweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDUzLAorMHg3NywweDY1LDB4NjQsMHg2OSwweDczLDB4NjgsMHgyMCwweDQ5LDB4NmUsMHg3MywweDc0LDB4NjksMHg3NCwweDc1LDB4NzQsMHg2NSwKKzB4MjAsMHg2ZiwweDY2LDB4MjAsMHg0MywweDZmLDB4NmQsMHg3MCwweDc1LDB4NzQsMHg2NSwweDcyLDB4MjAsMHg1MywweDYzLDB4NjksCisweDY1LDB4NmUsMHg2MywweDY1LDB4M2MsMHgyZiwweDYxLDB4M2UsMHgyMCwweDYyLDB4NzUsMHg3NCwweDIwLDB4NmUsMHg2ZiwweDc3LAorMHgyMCwweDY5LDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDYyLDB4NjUsMHg2OSwweDZlLDB4NjcsMHgyMCwKKzB4NjEsMHg2MywweDc0LDB4NjksMHg3NiwweDY1LDB4NmMsMHg3OSwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsCisweDY1LDB4NjQsMHgyMCwweDYyLDB4NzksMHgyMCwweDYxLDB4MjAsMHg3NCwweDY1LDB4NjEsMHg2ZCwweDIwLDB4NmYsMHg2NiwweDIwLAorMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwKKzB4MjAsMHg2NCwweDY5LDB4NzMsMHg3NCwweDcyLDB4NjksMHg2MiwweDc1LDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NywweDZmLDB4NzIsCisweDZjLDB4NjQsMHgyZCwweDc3LDB4NjksMHg2NCwweDY1LDB4MmUsMHgyMCwweDUzLDB4NjksMHg2ZSwweDYzLDB4NjUsMHgyMCwweDY5LAorMHg3NCwweDI3LDB4NzMsMHgyMCwweDcyLDB4NjUsMHg2YywweDY1LDB4NjEsMHg3MywweDY1LDB4MmMsMHgyMCwweDZjLDB4NzcsMHg0OSwKKzB4NTAsMHgyMCwweDY4LDB4NjEsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzMsMHg3MCwweDc1LDB4NzIsCisweDcyLDB4NjUsMHg2NCwweDIwLDB4NjEsMHgyMCwweDZjLDB4NmYsMHg3NCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjksMHg2ZSwweDc0LAorMHg2NSwweDcyLDB4NjUsMHg3MywweDc0LDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDY4LDB4NjEsMHg3MywweDIwLDB4NjIsMHg2NSwKKzB4NjUsMHg2ZSwweDIwLDB4NzAsMHg2ZiwweDcyLDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NCwweDZmLDB4MjAsMHg3MywweDY1LDB4NzYsCisweDY1LDB4NzIsMHg2MSwweDZjLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDZjLDB4NjEsMHg3NCwweDY2LAorMHg2ZiwweDcyLDB4NmQsMHg3MywweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDYxLDB4NzQsMHg2OSwKKzB4NmUsMHg2NywweDIwLDB4NzMsMHg3OSwweDczLDB4NzQsMHg2NSwweDZkLDB4NzMsMHgyZSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsCisweDIwLDB4NjMsMHg2MSwweDZlLDB4MjAsMHg2MiwweDY1LDB4MjAsMHg3NSwweDczLDB4NjUsMHg2NCwweDIwLDB4NjUsMHg2OSwweDc0LAorMHg2OCwweDY1LDB4NzIsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4MjAsMHg2ZiwKKzB4NzIsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4NmYsMHg3NSwweDc0LDB4MjAsMHg2MSwweDZlLDB4MjAsMHg3NSwweDZlLDB4NjQsCisweDY1LDB4NzIsMHg2YywweDc5LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg0ZiwweDUzLDB4MmUsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLAorMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwKKzB4MjAsMHgyMCwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY5LDB4NzMsMHgyMCwweDYxLDB4NmUsMHgyMCwweDZmLDB4NzAsCisweDY1LDB4NmUsMHgyMCwweDczLDB4NmYsMHg3NSwweDcyLDB4NjMsMHg2NSwweDIwLDB4NjksMHg2ZCwweDcwLDB4NmMsMHg2NSwweDZkLAorMHg2NSwweDZlLDB4NzQsMHg2MSwweDc0LDB4NjksMHg2ZiwweDZlLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwKKzB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDcyLDB4NmYsCisweDc0LDB4NmYsMHg2MywweDZmLDB4NmMsMHgyMCwweDczLDB4NzUsMHg2OSwweDc0LDB4NjUsMHgyMCwweDc0LDB4NjgsMHg2MSwweDc0LAorMHgyMCwweDc3LDB4NjEsMHg3MywweDIwLDB4NmYsMHg3MiwweDY5LDB4NjcsMHg2OSwweDZlLDB4NjEsMHg2YywweDZjLDB4NzksMHgyMCwKKzB4NzcsMHg3MiwweDY5LDB4NzQsMHg3NCwweDY1LDB4NmUsMHgyMCwweDYyLDB4NzksMHgyMCwweDNjLDB4NjEsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgyMCwweDIwLDB4NjgsMHg3MiwweDY1LDB4NjYsMHgzZCwweDIyLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLAorMHgyZiwweDc3LDB4NzcsMHg3NywweDJlLDB4NzMsMHg2OSwweDYzLDB4NzMsMHgyZSwweDczLDB4NjUsMHgyZiwweDdlLDB4NjEsMHg2NCwKKzB4NjEsMHg2ZCwweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyZiwweDIyLDB4M2UsMHg0MSwweDY0LDB4NjEsMHg2ZCwweDIwLDB4NDQsCisweDc1LDB4NmUsMHg2YiwweDY1LDB4NmMsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmYsMHg2NiwweDIwLAorMHg3NCwweDY4LDB4NjUsMHgyMCwweDUzLDB4NzcsMHg2NSwweDY0LDB4NjksMHg3MywweDY4LDB4MjAsMHg0OSwweDZlLDB4NzMsMHg3NCwKKzB4NjksMHg3NCwweDc1LDB4NzQsMHg2NSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NDMsMHg2ZiwweDZkLDB4NzAsMHg3NSwweDc0LDB4NjUsCisweDcyLDB4MjAsMHg1MywweDYzLDB4NjksMHg2NSwweDZlLDB4NjMsMHg2NSwweDNjLDB4MmYsMHg2MSwweDNlLDB4MjAsMHg2MiwweDc1LAorMHg3NCwweDIwLDB4NmUsMHg2ZiwweDc3LDB4MjAsMHg2OSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2MiwKKzB4NjUsMHg2OSwweDZlLDB4NjcsMHgyMCwweDYxLDB4NjMsMHg3NCwweDY5LDB4NzYsMHg2NSwweDZjLDB4NzksMHgyMCwweDY0LDB4NjUsCisweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDY0LDB4MjAsMHg2MiwweDc5LDB4MjAsMHg2MSwweDIwLDB4NzQsMHg2NSwweDYxLAorMHg2ZCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDcyLDB4NzMsMHgwZCwKKzB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjQsMHg2OSwweDczLDB4NzQsMHg3MiwweDY5LDB4NjIsMHg3NSwweDc0LDB4NjUsCisweDY0LDB4MjAsMHg3NywweDZmLDB4NzIsMHg2YywweDY0LDB4MmQsMHg3NywweDY5LDB4NjQsMHg2NSwweDJlLDB4MjAsMHg1MywweDY5LAorMHg2ZSwweDYzLDB4NjUsMHgyMCwweDY5LDB4NzQsMHgyNywweDczLDB4MjAsMHg3MiwweDY1LDB4NmMsMHg2NSwweDYxLDB4NzMsMHg2NSwKKzB4MmMsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2OCwweDYxLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsCisweDIwLDB4NzMsMHg3MCwweDc1LDB4NzIsMHg3MiwweDY1LDB4NjQsMHgyMCwweDYxLDB4MjAsMHg2YywweDZmLDB4NzQsMHgyMCwweDZmLAorMHg2NiwweDIwLDB4NjksMHg2ZSwweDc0LDB4NjUsMHg3MiwweDY1LDB4NzMsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2OCwKKzB4NjEsMHg3MywweDIwLDB4NjIsMHg2NSwweDY1LDB4NmUsMHgyMCwweDcwLDB4NmYsMHg3MiwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzQsCisweDZmLDB4MjAsMHg3MywweDY1LDB4NzYsMHg2NSwweDcyLDB4NjEsMHg2YywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLAorMHg3MCwweDZjLDB4NjEsMHg3NCwweDY2LDB4NmYsMHg3MiwweDZkLDB4NzMsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NmYsMHg3MCwKKzB4NjUsMHg3MiwweDYxLDB4NzQsMHg2OSwweDZlLDB4NjcsMHgyMCwweDczLDB4NzksMHg3MywweDc0LDB4NjUsMHg2ZCwweDczLDB4MmUsCisweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDYzLDB4NjEsMHg2ZSwweDIwLDB4NjIsMHg2NSwweDIwLDB4NzUsMHg3MywweDY1LAorMHg2NCwweDIwLDB4NjUsMHg2OSwweDc0LDB4NjgsMHg2NSwweDcyLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3NywKKzB4NjksMHg3NCwweDY4LDB4MjAsMHg2ZiwweDcyLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDZmLDB4NzUsMHg3NCwweDIwLDB4NjEsCisweDZlLDB4MjAsMHg3NSwweDZlLDB4NjQsMHg2NSwweDcyLDB4NmMsMHg3OSwweDY5LDB4NmUsMHg2NywweDIwLDB4NGYsMHg1MywweDJlLAorMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHgyZiwweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHg3MCwKKzB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2OSwweDczLDB4MjAsCisweDYxLDB4NmUsMHgyMCwweDZmLDB4NzAsMHg2NSwweDZlLDB4MjAsMHg3MywweDZmLDB4NzUsMHg3MiwweDYzLDB4NjUsMHgyMCwweDY5LAorMHg2ZCwweDcwLDB4NmMsMHg2NSwweDZkLDB4NjUsMHg2ZSwweDc0LDB4NjEsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDIwLDB4NmYsMHg2NiwKKzB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJmLDB4NDksMHg1MCwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsCisweDIwLDB4MjAsMHg3MCwweDcyLDB4NmYsMHg3NCwweDZmLDB4NjMsMHg2ZiwweDZjLDB4MjAsMHg3MywweDc1LDB4NjksMHg3NCwweDY1LAorMHgyMCwweDc0LDB4NjgsMHg2MSwweDc0LDB4MjAsMHg3NywweDYxLDB4NzMsMHgyMCwweDZmLDB4NzIsMHg2OSwweDY3LDB4NjksMHg2ZSwKKzB4NjEsMHg2YywweDZjLDB4NzksMHgyMCwweDc3LDB4NzIsMHg2OSwweDc0LDB4NzQsMHg2NSwweDZlLDB4MjAsMHg2MiwweDc5LDB4MjAsCisweDNjLDB4NjEsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LAorMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg3MywKKzB4NjUsMHgyZiwweDdlLDB4NjEsMHg2NCwweDYxLDB4NmQsMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsMHgyMiwweDNlLDB4NDEsCisweDY0LDB4NjEsMHg2ZCwweDIwLDB4NDQsMHg3NSwweDZlLDB4NmIsMHg2NSwweDZjLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLAorMHgyMCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1MywweDc3LDB4NjUsMHg2NCwweDY5LDB4NzMsMHg2OCwKKzB4MjAsMHg0OSwweDZlLDB4NzMsMHg3NCwweDY5LDB4NzQsMHg3NSwweDc0LDB4NjUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDQzLDB4NmYsCisweDZkLDB4NzAsMHg3NSwweDc0LDB4NjUsMHg3MiwweDIwLDB4NTMsMHg2MywweDY5LDB4NjUsMHg2ZSwweDYzLDB4NjUsMHgzYywweDJmLAorMHg2MSwweDNlLDB4MjAsMHg2MiwweDc1LDB4NzQsMHgyMCwweDZlLDB4NmYsMHg3NywweDIwLDB4NjksMHg3MywweDBkLDB4MGEsMHgwOSwKKzB4MjAsMHgyMCwweDIwLDB4MjAsMHg2MiwweDY1LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg2MSwweDYzLDB4NzQsMHg2OSwweDc2LDB4NjUsCisweDZjLDB4NzksMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg2NCwweDIwLDB4NjIsMHg3OSwweDIwLAorMHg2MSwweDIwLDB4NzQsMHg2NSwweDYxLDB4NmQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwKKzB4NzAsMHg2NSwweDcyLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY0LDB4NjksMHg3MywweDc0LDB4NzIsCisweDY5LDB4NjIsMHg3NSwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzcsMHg2ZiwweDcyLDB4NmMsMHg2NCwweDJkLDB4NzcsMHg2OSwweDY0LAorMHg2NSwweDJlLDB4MjAsMHg1MywweDY5LDB4NmUsMHg2MywweDY1LDB4MjAsMHg2OSwweDc0LDB4MjcsMHg3MywweDIwLDB4NzIsMHg2NSwKKzB4NmMsMHg2NSwweDYxLDB4NzMsMHg2NSwweDJjLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjgsMHg2MSwweDczLDB4MGQsCisweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDczLDB4NzAsMHg3NSwweDcyLDB4NzIsMHg2NSwweDY0LDB4MjAsMHg2MSwweDIwLAorMHg2YywweDZmLDB4NzQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY5LDB4NmUsMHg3NCwweDY1LDB4NzIsMHg2NSwweDczLDB4NzQsMHgyMCwKKzB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2OCwweDYxLDB4NzMsMHgyMCwweDYyLDB4NjUsMHg2NSwweDZlLDB4MjAsMHg3MCwweDZmLDB4NzIsCisweDc0LDB4NjUsMHg2NCwweDIwLDB4NzQsMHg2ZiwweDIwLDB4NzMsMHg2NSwweDc2LDB4NjUsMHg3MiwweDYxLDB4NmMsMHgwZCwweDBhLAorMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg2YywweDYxLDB4NzQsMHg2NiwweDZmLDB4NzIsMHg2ZCwweDczLDB4MjAsMHg2MSwKKzB4NmUsMHg2NCwweDIwLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg2MSwweDc0LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg3MywweDc5LDB4NzMsCisweDc0LDB4NjUsMHg2ZCwweDczLDB4MmUsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2MywweDYxLDB4NmUsMHgyMCwweDYyLAorMHg2NSwweDIwLDB4NzUsMHg3MywweDY1LDB4NjQsMHgyMCwweDY1LDB4NjksMHg3NCwweDY4LDB4NjUsMHg3MiwweDBkLDB4MGEsMHgwOSwKKzB4MjAsMHgyMCwweDIwLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDIwLDB4NmYsMHg3MiwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsCisweDZmLDB4NzUsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDIwLDB4NzUsMHg2ZSwweDY0LDB4NjUsMHg3MiwweDZjLDB4NzksMHg2OSwweDZlLAorMHg2NywweDIwLDB4NGYsMHg1MywweDJlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3MCwweDNlLDB4MGQsMHgwYSwKKzB4MDksMHgyMCwweDIwLDB4M2MsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2YywweDc3LDB4NDksCisweDUwLDB4MjAsMHg2OSwweDczLDB4MjAsMHg2MSwweDZlLDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg2ZSwweDIwLDB4NzMsMHg2ZiwweDc1LAorMHg3MiwweDYzLDB4NjUsMHgyMCwweDY5LDB4NmQsMHg3MCwweDZjLDB4NjUsMHg2ZCwweDY1LDB4NmUsMHg3NCwweDYxLDB4NzQsMHg2OSwKKzB4NmYsMHg2ZSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1NCwweDQzLDB4NTAsMHgyZiwweDQ5LDB4NTAsCisweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg3MiwweDZmLDB4NzQsMHg2ZiwweDYzLDB4NmYsMHg2YywweDIwLAorMHg3MywweDc1LDB4NjksMHg3NCwweDY1LDB4MjAsMHg3NCwweDY4LDB4NjEsMHg3NCwweDIwLDB4NzcsMHg2MSwweDczLDB4MjAsMHg2ZiwKKzB4NzIsMHg2OSwweDY3LDB4NjksMHg2ZSwweDYxLDB4NmMsMHg2YywweDc5LDB4MjAsMHg3NywweDcyLDB4NjksMHg3NCwweDc0LDB4NjUsCisweDZlLDB4MjAsMHg2MiwweDc5LDB4MjAsMHgzYywweDYxLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2OCwweDcyLAorMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LDB4NzQsMHg3NCwweDcwLDB4M2EsMHgyZiwweDJmLDB4NzcsMHg3NywweDc3LDB4MmUsMHg3MywKKzB4NjksMHg2MywweDczLDB4MmUsMHg3MywweDY1LDB4MmYsMHg3ZSwweDYxLDB4NjQsMHg2MSwweDZkLDB4MmYsMHg2YywweDc3LDB4NjksCisweDcwLDB4MmYsMHgyMiwweDNlLDB4NDEsMHg2NCwweDYxLDB4NmQsMHgyMCwweDQ0LDB4NzUsMHg2ZSwweDZiLDB4NjUsMHg2YywweDczLAorMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTMsMHg3NywKKzB4NjUsMHg2NCwweDY5LDB4NzMsMHg2OCwweDIwLDB4NDksMHg2ZSwweDczLDB4NzQsMHg2OSwweDc0LDB4NzUsMHg3NCwweDY1LDB4MjAsCisweDZmLDB4NjYsMHgyMCwweDQzLDB4NmYsMHg2ZCwweDcwLDB4NzUsMHg3NCwweDY1LDB4NzIsMHgyMCwweDUzLDB4NjMsMHg2OSwweDY1LAorMHg2ZSwweDYzLDB4NjUsMHgzYywweDJmLDB4NjEsMHgzZSwweDIwLDB4NjIsMHg3NSwweDc0LDB4MjAsMHg2ZSwweDZmLDB4NzcsMHgyMCwKKzB4NjksMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjIsMHg2NSwweDY5LDB4NmUsMHg2NywweDIwLDB4NjEsCisweDYzLDB4NzQsMHg2OSwweDc2LDB4NjUsMHg2YywweDc5LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LAorMHg2NCwweDIwLDB4NjIsMHg3OSwweDIwLDB4NjEsMHgyMCwweDc0LDB4NjUsMHg2MSwweDZkLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2NCwKKzB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsCisweDY0LDB4NjksMHg3MywweDc0LDB4NzIsMHg2OSwweDYyLDB4NzUsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc3LDB4NmYsMHg3MiwweDZjLAorMHg2NCwweDJkLDB4NzcsMHg2OSwweDY0LDB4NjUsMHgyZSwweDIwLDB4NTMsMHg2OSwweDZlLDB4NjMsMHg2NSwweDIwLDB4NjksMHg3NCwKKzB4MjcsMHg3MywweDIwLDB4NzIsMHg2NSwweDZjLDB4NjUsMHg2MSwweDczLDB4NjUsMHgyYywweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsCisweDIwLDB4NjgsMHg2MSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MywweDcwLDB4NzUsMHg3MiwweDcyLAorMHg2NSwweDY0LDB4MjAsMHg2MSwweDIwLDB4NmMsMHg2ZiwweDc0LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2OSwweDZlLDB4NzQsMHg2NSwKKzB4NzIsMHg2NSwweDczLDB4NzQsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NjgsMHg2MSwweDczLDB4MjAsMHg2MiwweDY1LDB4NjUsCisweDZlLDB4MjAsMHg3MCwweDZmLDB4NzIsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc0LDB4NmYsMHgyMCwweDczLDB4NjUsMHg3NiwweDY1LAorMHg3MiwweDYxLDB4NmMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NmMsMHg2MSwweDc0LDB4NjYsMHg2ZiwKKzB4NzIsMHg2ZCwweDczLDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDZmLDB4NzAsMHg2NSwweDcyLDB4NjEsMHg3NCwweDY5LDB4NmUsCisweDY3LDB4MjAsMHg3MywweDc5LDB4NzMsMHg3NCwweDY1LDB4NmQsMHg3MywweDJlLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLAorMHg2MywweDYxLDB4NmUsMHgyMCwweDYyLDB4NjUsMHgyMCwweDc1LDB4NzMsMHg2NSwweDY0LDB4MjAsMHg2NSwweDY5LDB4NzQsMHg2OCwKKzB4NjUsMHg3MiwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHgyMCwweDZmLDB4NzIsCisweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHg2ZiwweDc1LDB4NzQsMHgyMCwweDYxLDB4NmUsMHgyMCwweDc1LDB4NmUsMHg2NCwweDY1LAorMHg3MiwweDZjLDB4NzksMHg2OSwweDZlLDB4NjcsMHgyMCwweDRmLDB4NTMsMHgyZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywKKzB4MmYsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsCisweDIwLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjksMHg3MywweDIwLDB4NjEsMHg2ZSwweDIwLDB4NmYsMHg3MCwweDY1LAorMHg2ZSwweDIwLDB4NzMsMHg2ZiwweDc1LDB4NzIsMHg2MywweDY1LDB4MjAsMHg2OSwweDZkLDB4NzAsMHg2YywweDY1LDB4NmQsMHg2NSwKKzB4NmUsMHg3NCwweDYxLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTQsCisweDQzLDB4NTAsMHgyZiwweDQ5LDB4NTAsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NzIsMHg2ZiwweDc0LAorMHg2ZiwweDYzLDB4NmYsMHg2YywweDIwLDB4NzMsMHg3NSwweDY5LDB4NzQsMHg2NSwweDIwLDB4NzQsMHg2OCwweDYxLDB4NzQsMHgyMCwKKzB4NzcsMHg2MSwweDczLDB4MjAsMHg2ZiwweDcyLDB4NjksMHg2NywweDY5LDB4NmUsMHg2MSwweDZjLDB4NmMsMHg3OSwweDIwLDB4NzcsCisweDcyLDB4NjksMHg3NCwweDc0LDB4NjUsMHg2ZSwweDIwLDB4NjIsMHg3OSwweDIwLDB4M2MsMHg2MSwweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDIwLDB4MjAsMHg2OCwweDcyLDB4NjUsMHg2NiwweDNkLDB4MjIsMHg2OCwweDc0LDB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwKKzB4NzcsMHg3NywweDc3LDB4MmUsMHg3MywweDY5LDB4NjMsMHg3MywweDJlLDB4NzMsMHg2NSwweDJmLDB4N2UsMHg2MSwweDY0LDB4NjEsCisweDZkLDB4MmYsMHg2YywweDc3LDB4NjksMHg3MCwweDJmLDB4MjIsMHgzZSwweDQxLDB4NjQsMHg2MSwweDZkLDB4MjAsMHg0NCwweDc1LAorMHg2ZSwweDZiLDB4NjUsMHg2YywweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwKKzB4NjgsMHg2NSwweDIwLDB4NTMsMHg3NywweDY1LDB4NjQsMHg2OSwweDczLDB4NjgsMHgyMCwweDQ5LDB4NmUsMHg3MywweDc0LDB4NjksCisweDc0LDB4NzUsMHg3NCwweDY1LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg0MywweDZmLDB4NmQsMHg3MCwweDc1LDB4NzQsMHg2NSwweDcyLAorMHgyMCwweDUzLDB4NjMsMHg2OSwweDY1LDB4NmUsMHg2MywweDY1LDB4M2MsMHgyZiwweDYxLDB4M2UsMHgyMCwweDYyLDB4NzUsMHg3NCwKKzB4MjAsMHg2ZSwweDZmLDB4NzcsMHgyMCwweDY5LDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDYyLDB4NjUsCisweDY5LDB4NmUsMHg2NywweDIwLDB4NjEsMHg2MywweDc0LDB4NjksMHg3NiwweDY1LDB4NmMsMHg3OSwweDIwLDB4NjQsMHg2NSwweDc2LAorMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NjQsMHgyMCwweDYyLDB4NzksMHgyMCwweDYxLDB4MjAsMHg3NCwweDY1LDB4NjEsMHg2ZCwKKzB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg3MywweDBkLDB4MGEsCisweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2NCwweDY5LDB4NzMsMHg3NCwweDcyLDB4NjksMHg2MiwweDc1LDB4NzQsMHg2NSwweDY0LAorMHgyMCwweDc3LDB4NmYsMHg3MiwweDZjLDB4NjQsMHgyZCwweDc3LDB4NjksMHg2NCwweDY1LDB4MmUsMHgyMCwweDUzLDB4NjksMHg2ZSwKKzB4NjMsMHg2NSwweDIwLDB4NjksMHg3NCwweDI3LDB4NzMsMHgyMCwweDcyLDB4NjUsMHg2YywweDY1LDB4NjEsMHg3MywweDY1LDB4MmMsCisweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY4LDB4NjEsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLAorMHg3MywweDcwLDB4NzUsMHg3MiwweDcyLDB4NjUsMHg2NCwweDIwLDB4NjEsMHgyMCwweDZjLDB4NmYsMHg3NCwweDIwLDB4NmYsMHg2NiwKKzB4MjAsMHg2OSwweDZlLDB4NzQsMHg2NSwweDcyLDB4NjUsMHg3MywweDc0LDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDY4LDB4NjEsCisweDczLDB4MjAsMHg2MiwweDY1LDB4NjUsMHg2ZSwweDIwLDB4NzAsMHg2ZiwweDcyLDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NCwweDZmLAorMHgyMCwweDczLDB4NjUsMHg3NiwweDY1LDB4NzIsMHg2MSwweDZjLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwKKzB4NmMsMHg2MSwweDc0LDB4NjYsMHg2ZiwweDcyLDB4NmQsMHg3MywweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2ZiwweDcwLDB4NjUsCisweDcyLDB4NjEsMHg3NCwweDY5LDB4NmUsMHg2NywweDIwLDB4NzMsMHg3OSwweDczLDB4NzQsMHg2NSwweDZkLDB4NzMsMHgyZSwweDIwLAorMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjMsMHg2MSwweDZlLDB4MjAsMHg2MiwweDY1LDB4MjAsMHg3NSwweDczLDB4NjUsMHg2NCwKKzB4MjAsMHg2NSwweDY5LDB4NzQsMHg2OCwweDY1LDB4NzIsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDc3LDB4NjksCisweDc0LDB4NjgsMHgyMCwweDZmLDB4NzIsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4NmYsMHg3NSwweDc0LDB4MjAsMHg2MSwweDZlLAorMHgyMCwweDc1LDB4NmUsMHg2NCwweDY1LDB4NzIsMHg2YywweDc5LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg0ZiwweDUzLDB4MmUsMHgwZCwKKzB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDcwLDB4M2UsCisweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY5LDB4NzMsMHgyMCwweDYxLAorMHg2ZSwweDIwLDB4NmYsMHg3MCwweDY1LDB4NmUsMHgyMCwweDczLDB4NmYsMHg3NSwweDcyLDB4NjMsMHg2NSwweDIwLDB4NjksMHg2ZCwKKzB4NzAsMHg2YywweDY1LDB4NmQsMHg2NSwweDZlLDB4NzQsMHg2MSwweDc0LDB4NjksMHg2ZiwweDZlLDB4MjAsMHg2ZiwweDY2LDB4MjAsCisweDc0LDB4NjgsMHg2NSwweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLAorMHgyMCwweDcwLDB4NzIsMHg2ZiwweDc0LDB4NmYsMHg2MywweDZmLDB4NmMsMHgyMCwweDczLDB4NzUsMHg2OSwweDc0LDB4NjUsMHgyMCwKKzB4NzQsMHg2OCwweDYxLDB4NzQsMHgyMCwweDc3LDB4NjEsMHg3MywweDIwLDB4NmYsMHg3MiwweDY5LDB4NjcsMHg2OSwweDZlLDB4NjEsCisweDZjLDB4NmMsMHg3OSwweDIwLDB4NzcsMHg3MiwweDY5LDB4NzQsMHg3NCwweDY1LDB4NmUsMHgyMCwweDYyLDB4NzksMHgyMCwweDNjLAorMHg2MSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjgsMHg3MiwweDY1LDB4NjYsMHgzZCwweDIyLDB4NjgsMHg3NCwKKzB4NzQsMHg3MCwweDNhLDB4MmYsMHgyZiwweDc3LDB4NzcsMHg3NywweDJlLDB4NzMsMHg2OSwweDYzLDB4NzMsMHgyZSwweDczLDB4NjUsCisweDJmLDB4N2UsMHg2MSwweDY0LDB4NjEsMHg2ZCwweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyZiwweDIyLDB4M2UsMHg0MSwweDY0LAorMHg2MSwweDZkLDB4MjAsMHg0NCwweDc1LDB4NmUsMHg2YiwweDY1LDB4NmMsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwKKzB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDUzLDB4NzcsMHg2NSwweDY0LDB4NjksMHg3MywweDY4LDB4MjAsCisweDQ5LDB4NmUsMHg3MywweDc0LDB4NjksMHg3NCwweDc1LDB4NzQsMHg2NSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NDMsMHg2ZiwweDZkLAorMHg3MCwweDc1LDB4NzQsMHg2NSwweDcyLDB4MjAsMHg1MywweDYzLDB4NjksMHg2NSwweDZlLDB4NjMsMHg2NSwweDNjLDB4MmYsMHg2MSwKKzB4M2UsMHgyMCwweDYyLDB4NzUsMHg3NCwweDIwLDB4NmUsMHg2ZiwweDc3LDB4MjAsMHg2OSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsCisweDIwLDB4MjAsMHgyMCwweDYyLDB4NjUsMHg2OSwweDZlLDB4NjcsMHgyMCwweDYxLDB4NjMsMHg3NCwweDY5LDB4NzYsMHg2NSwweDZjLAorMHg3OSwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDY0LDB4MjAsMHg2MiwweDc5LDB4MjAsMHg2MSwKKzB4MjAsMHg3NCwweDY1LDB4NjEsMHg2ZCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjQsMHg2NSwweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsCisweDY1LDB4NzIsMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjQsMHg2OSwweDczLDB4NzQsMHg3MiwweDY5LAorMHg2MiwweDc1LDB4NzQsMHg2NSwweDY0LDB4MjAsMHg3NywweDZmLDB4NzIsMHg2YywweDY0LDB4MmQsMHg3NywweDY5LDB4NjQsMHg2NSwKKzB4MmUsMHgyMCwweDUzLDB4NjksMHg2ZSwweDYzLDB4NjUsMHgyMCwweDY5LDB4NzQsMHgyNywweDczLDB4MjAsMHg3MiwweDY1LDB4NmMsCisweDY1LDB4NjEsMHg3MywweDY1LDB4MmMsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2OCwweDYxLDB4NzMsMHgwZCwweDBhLAorMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzMsMHg3MCwweDc1LDB4NzIsMHg3MiwweDY1LDB4NjQsMHgyMCwweDYxLDB4MjAsMHg2YywKKzB4NmYsMHg3NCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NjksMHg2ZSwweDc0LDB4NjUsMHg3MiwweDY1LDB4NzMsMHg3NCwweDIwLDB4NjEsCisweDZlLDB4NjQsMHgyMCwweDY4LDB4NjEsMHg3MywweDIwLDB4NjIsMHg2NSwweDY1LDB4NmUsMHgyMCwweDcwLDB4NmYsMHg3MiwweDc0LAorMHg2NSwweDY0LDB4MjAsMHg3NCwweDZmLDB4MjAsMHg3MywweDY1LDB4NzYsMHg2NSwweDcyLDB4NjEsMHg2YywweDBkLDB4MGEsMHgwOSwKKzB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDZjLDB4NjEsMHg3NCwweDY2LDB4NmYsMHg3MiwweDZkLDB4NzMsMHgyMCwweDYxLDB4NmUsCisweDY0LDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDYxLDB4NzQsMHg2OSwweDZlLDB4NjcsMHgyMCwweDczLDB4NzksMHg3MywweDc0LAorMHg2NSwweDZkLDB4NzMsMHgyZSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDYzLDB4NjEsMHg2ZSwweDIwLDB4NjIsMHg2NSwKKzB4MjAsMHg3NSwweDczLDB4NjUsMHg2NCwweDIwLDB4NjUsMHg2OSwweDc0LDB4NjgsMHg2NSwweDcyLDB4MGQsMHgwYSwweDA5LDB4MjAsCisweDIwLDB4MjAsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4MjAsMHg2ZiwweDcyLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDZmLAorMHg3NSwweDc0LDB4MjAsMHg2MSwweDZlLDB4MjAsMHg3NSwweDZlLDB4NjQsMHg2NSwweDcyLDB4NmMsMHg3OSwweDY5LDB4NmUsMHg2NywKKzB4MjAsMHg0ZiwweDUzLDB4MmUsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHgyZiwweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksCisweDIwLDB4MjAsMHgzYywweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLAorMHgyMCwweDY5LDB4NzMsMHgyMCwweDYxLDB4NmUsMHgyMCwweDZmLDB4NzAsMHg2NSwweDZlLDB4MjAsMHg3MywweDZmLDB4NzUsMHg3MiwKKzB4NjMsMHg2NSwweDIwLDB4NjksMHg2ZCwweDcwLDB4NmMsMHg2NSwweDZkLDB4NjUsMHg2ZSwweDc0LDB4NjEsMHg3NCwweDY5LDB4NmYsCisweDZlLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJmLDB4NDksMHg1MCwweDBkLAorMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MCwweDcyLDB4NmYsMHg3NCwweDZmLDB4NjMsMHg2ZiwweDZjLDB4MjAsMHg3MywKKzB4NzUsMHg2OSwweDc0LDB4NjUsMHgyMCwweDc0LDB4NjgsMHg2MSwweDc0LDB4MjAsMHg3NywweDYxLDB4NzMsMHgyMCwweDZmLDB4NzIsCisweDY5LDB4NjcsMHg2OSwweDZlLDB4NjEsMHg2YywweDZjLDB4NzksMHgyMCwweDc3LDB4NzIsMHg2OSwweDc0LDB4NzQsMHg2NSwweDZlLAorMHgyMCwweDYyLDB4NzksMHgyMCwweDNjLDB4NjEsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwKKzB4NjYsMHgzZCwweDIyLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3NywweDc3LDB4NzcsMHgyZSwweDczLDB4NjksCisweDYzLDB4NzMsMHgyZSwweDczLDB4NjUsMHgyZiwweDdlLDB4NjEsMHg2NCwweDYxLDB4NmQsMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLAorMHgyZiwweDIyLDB4M2UsMHg0MSwweDY0LDB4NjEsMHg2ZCwweDIwLDB4NDQsMHg3NSwweDZlLDB4NmIsMHg2NSwweDZjLDB4NzMsMHgwZCwKKzB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1MywweDc3LDB4NjUsCisweDY0LDB4NjksMHg3MywweDY4LDB4MjAsMHg0OSwweDZlLDB4NzMsMHg3NCwweDY5LDB4NzQsMHg3NSwweDc0LDB4NjUsMHgyMCwweDZmLAorMHg2NiwweDIwLDB4NDMsMHg2ZiwweDZkLDB4NzAsMHg3NSwweDc0LDB4NjUsMHg3MiwweDIwLDB4NTMsMHg2MywweDY5LDB4NjUsMHg2ZSwKKzB4NjMsMHg2NSwweDNjLDB4MmYsMHg2MSwweDNlLDB4MjAsMHg2MiwweDc1LDB4NzQsMHgyMCwweDZlLDB4NmYsMHg3NywweDIwLDB4NjksCisweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2MiwweDY1LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg2MSwweDYzLAorMHg3NCwweDY5LDB4NzYsMHg2NSwweDZjLDB4NzksMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg2NCwKKzB4MjAsMHg2MiwweDc5LDB4MjAsMHg2MSwweDIwLDB4NzQsMHg2NSwweDYxLDB4NmQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY0LDB4NjUsCisweDc2LDB4NjUsMHg2YywweDZmLDB4NzAsMHg2NSwweDcyLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY0LAorMHg2OSwweDczLDB4NzQsMHg3MiwweDY5LDB4NjIsMHg3NSwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzcsMHg2ZiwweDcyLDB4NmMsMHg2NCwKKzB4MmQsMHg3NywweDY5LDB4NjQsMHg2NSwweDJlLDB4MjAsMHg1MywweDY5LDB4NmUsMHg2MywweDY1LDB4MjAsMHg2OSwweDc0LDB4MjcsCisweDczLDB4MjAsMHg3MiwweDY1LDB4NmMsMHg2NSwweDYxLDB4NzMsMHg2NSwweDJjLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLAorMHg2OCwweDYxLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDczLDB4NzAsMHg3NSwweDcyLDB4NzIsMHg2NSwKKzB4NjQsMHgyMCwweDYxLDB4MjAsMHg2YywweDZmLDB4NzQsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY5LDB4NmUsMHg3NCwweDY1LDB4NzIsCisweDY1LDB4NzMsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg2OCwweDYxLDB4NzMsMHgyMCwweDYyLDB4NjUsMHg2NSwweDZlLAorMHgyMCwweDcwLDB4NmYsMHg3MiwweDc0LDB4NjUsMHg2NCwweDIwLDB4NzQsMHg2ZiwweDIwLDB4NzMsMHg2NSwweDc2LDB4NjUsMHg3MiwKKzB4NjEsMHg2YywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg2YywweDYxLDB4NzQsMHg2NiwweDZmLDB4NzIsCisweDZkLDB4NzMsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NmYsMHg3MCwweDY1LDB4NzIsMHg2MSwweDc0LDB4NjksMHg2ZSwweDY3LAorMHgyMCwweDczLDB4NzksMHg3MywweDc0LDB4NjUsMHg2ZCwweDczLDB4MmUsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2MywKKzB4NjEsMHg2ZSwweDIwLDB4NjIsMHg2NSwweDIwLDB4NzUsMHg3MywweDY1LDB4NjQsMHgyMCwweDY1LDB4NjksMHg3NCwweDY4LDB4NjUsCisweDcyLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDIwLDB4NmYsMHg3MiwweDIwLAorMHg3NywweDY5LDB4NzQsMHg2OCwweDZmLDB4NzUsMHg3NCwweDIwLDB4NjEsMHg2ZSwweDIwLDB4NzUsMHg2ZSwweDY0LDB4NjUsMHg3MiwKKzB4NmMsMHg3OSwweDY5LDB4NmUsMHg2NywweDIwLDB4NGYsMHg1MywweDJlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4MmYsCisweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4M2MsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLAorMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2OSwweDczLDB4MjAsMHg2MSwweDZlLDB4MjAsMHg2ZiwweDcwLDB4NjUsMHg2ZSwKKzB4MjAsMHg3MywweDZmLDB4NzUsMHg3MiwweDYzLDB4NjUsMHgyMCwweDY5LDB4NmQsMHg3MCwweDZjLDB4NjUsMHg2ZCwweDY1LDB4NmUsCisweDc0LDB4NjEsMHg3NCwweDY5LDB4NmYsMHg2ZSwweDIwLDB4NmYsMHg2NiwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg1NCwweDQzLAorMHg1MCwweDJmLDB4NDksMHg1MCwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzAsMHg3MiwweDZmLDB4NzQsMHg2ZiwKKzB4NjMsMHg2ZiwweDZjLDB4MjAsMHg3MywweDc1LDB4NjksMHg3NCwweDY1LDB4MjAsMHg3NCwweDY4LDB4NjEsMHg3NCwweDIwLDB4NzcsCisweDYxLDB4NzMsMHgyMCwweDZmLDB4NzIsMHg2OSwweDY3LDB4NjksMHg2ZSwweDYxLDB4NmMsMHg2YywweDc5LDB4MjAsMHg3NywweDcyLAorMHg2OSwweDc0LDB4NzQsMHg2NSwweDZlLDB4MjAsMHg2MiwweDc5LDB4MjAsMHgzYywweDYxLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwKKzB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LDB4M2QsMHgyMiwweDY4LDB4NzQsMHg3NCwweDcwLDB4M2EsMHgyZiwweDJmLDB4NzcsCisweDc3LDB4NzcsMHgyZSwweDczLDB4NjksMHg2MywweDczLDB4MmUsMHg3MywweDY1LDB4MmYsMHg3ZSwweDYxLDB4NjQsMHg2MSwweDZkLAorMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsMHgyMiwweDNlLDB4NDEsMHg2NCwweDYxLDB4NmQsMHgyMCwweDQ0LDB4NzUsMHg2ZSwKKzB4NmIsMHg2NSwweDZjLDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsCisweDY1LDB4MjAsMHg1MywweDc3LDB4NjUsMHg2NCwweDY5LDB4NzMsMHg2OCwweDIwLDB4NDksMHg2ZSwweDczLDB4NzQsMHg2OSwweDc0LAorMHg3NSwweDc0LDB4NjUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDQzLDB4NmYsMHg2ZCwweDcwLDB4NzUsMHg3NCwweDY1LDB4NzIsMHgyMCwKKzB4NTMsMHg2MywweDY5LDB4NjUsMHg2ZSwweDYzLDB4NjUsMHgzYywweDJmLDB4NjEsMHgzZSwweDIwLDB4NjIsMHg3NSwweDc0LDB4MjAsCisweDZlLDB4NmYsMHg3NywweDIwLDB4NjksMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NjIsMHg2NSwweDY5LAorMHg2ZSwweDY3LDB4MjAsMHg2MSwweDYzLDB4NzQsMHg2OSwweDc2LDB4NjUsMHg2YywweDc5LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwKKzB4NmMsMHg2ZiwweDcwLDB4NjUsMHg2NCwweDIwLDB4NjIsMHg3OSwweDIwLDB4NjEsMHgyMCwweDc0LDB4NjUsMHg2MSwweDZkLDB4MjAsCisweDZmLDB4NjYsMHgyMCwweDY0LDB4NjUsMHg3NiwweDY1LDB4NmMsMHg2ZiwweDcwLDB4NjUsMHg3MiwweDczLDB4MGQsMHgwYSwweDA5LAorMHgyMCwweDIwLDB4MjAsMHgyMCwweDY0LDB4NjksMHg3MywweDc0LDB4NzIsMHg2OSwweDYyLDB4NzUsMHg3NCwweDY1LDB4NjQsMHgyMCwKKzB4NzcsMHg2ZiwweDcyLDB4NmMsMHg2NCwweDJkLDB4NzcsMHg2OSwweDY0LDB4NjUsMHgyZSwweDIwLDB4NTMsMHg2OSwweDZlLDB4NjMsCisweDY1LDB4MjAsMHg2OSwweDc0LDB4MjcsMHg3MywweDIwLDB4NzIsMHg2NSwweDZjLDB4NjUsMHg2MSwweDczLDB4NjUsMHgyYywweDIwLAorMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjgsMHg2MSwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MywKKzB4NzAsMHg3NSwweDcyLDB4NzIsMHg2NSwweDY0LDB4MjAsMHg2MSwweDIwLDB4NmMsMHg2ZiwweDc0LDB4MjAsMHg2ZiwweDY2LDB4MjAsCisweDY5LDB4NmUsMHg3NCwweDY1LDB4NzIsMHg2NSwweDczLDB4NzQsMHgyMCwweDYxLDB4NmUsMHg2NCwweDIwLDB4NjgsMHg2MSwweDczLAorMHgyMCwweDYyLDB4NjUsMHg2NSwweDZlLDB4MjAsMHg3MCwweDZmLDB4NzIsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc0LDB4NmYsMHgyMCwKKzB4NzMsMHg2NSwweDc2LDB4NjUsMHg3MiwweDYxLDB4NmMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDcwLDB4NmMsCisweDYxLDB4NzQsMHg2NiwweDZmLDB4NzIsMHg2ZCwweDczLDB4MjAsMHg2MSwweDZlLDB4NjQsMHgyMCwweDZmLDB4NzAsMHg2NSwweDcyLAorMHg2MSwweDc0LDB4NjksMHg2ZSwweDY3LDB4MjAsMHg3MywweDc5LDB4NzMsMHg3NCwweDY1LDB4NmQsMHg3MywweDJlLDB4MjAsMHg2YywKKzB4NzcsMHg0OSwweDUwLDB4MjAsMHg2MywweDYxLDB4NmUsMHgyMCwweDYyLDB4NjUsMHgyMCwweDc1LDB4NzMsMHg2NSwweDY0LDB4MjAsCisweDY1LDB4NjksMHg3NCwweDY4LDB4NjUsMHg3MiwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NzcsMHg2OSwweDc0LAorMHg2OCwweDIwLDB4NmYsMHg3MiwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHg2ZiwweDc1LDB4NzQsMHgyMCwweDYxLDB4NmUsMHgyMCwKKzB4NzUsMHg2ZSwweDY0LDB4NjUsMHg3MiwweDZjLDB4NzksMHg2OSwweDZlLDB4NjcsMHgyMCwweDRmLDB4NTMsMHgyZSwweDBkLDB4MGEsCisweDA5LDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLAorMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjksMHg3MywweDIwLDB4NjEsMHg2ZSwKKzB4MjAsMHg2ZiwweDcwLDB4NjUsMHg2ZSwweDIwLDB4NzMsMHg2ZiwweDc1LDB4NzIsMHg2MywweDY1LDB4MjAsMHg2OSwweDZkLDB4NzAsCisweDZjLDB4NjUsMHg2ZCwweDY1LDB4NmUsMHg3NCwweDYxLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LAorMHg2OCwweDY1LDB4MjAsMHg1NCwweDQzLDB4NTAsMHgyZiwweDQ5LDB4NTAsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwKKzB4NzAsMHg3MiwweDZmLDB4NzQsMHg2ZiwweDYzLDB4NmYsMHg2YywweDIwLDB4NzMsMHg3NSwweDY5LDB4NzQsMHg2NSwweDIwLDB4NzQsCisweDY4LDB4NjEsMHg3NCwweDIwLDB4NzcsMHg2MSwweDczLDB4MjAsMHg2ZiwweDcyLDB4NjksMHg2NywweDY5LDB4NmUsMHg2MSwweDZjLAorMHg2YywweDc5LDB4MjAsMHg3NywweDcyLDB4NjksMHg3NCwweDc0LDB4NjUsMHg2ZSwweDIwLDB4NjIsMHg3OSwweDIwLDB4M2MsMHg2MSwKKzB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2OCwweDcyLDB4NjUsMHg2NiwweDNkLDB4MjIsMHg2OCwweDc0LDB4NzQsCisweDcwLDB4M2EsMHgyZiwweDJmLDB4NzcsMHg3NywweDc3LDB4MmUsMHg3MywweDY5LDB4NjMsMHg3MywweDJlLDB4NzMsMHg2NSwweDJmLAorMHg3ZSwweDYxLDB4NjQsMHg2MSwweDZkLDB4MmYsMHg2YywweDc3LDB4NjksMHg3MCwweDJmLDB4MjIsMHgzZSwweDQxLDB4NjQsMHg2MSwKKzB4NmQsMHgyMCwweDQ0LDB4NzUsMHg2ZSwweDZiLDB4NjUsMHg2YywweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsCisweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NTMsMHg3NywweDY1LDB4NjQsMHg2OSwweDczLDB4NjgsMHgyMCwweDQ5LAorMHg2ZSwweDczLDB4NzQsMHg2OSwweDc0LDB4NzUsMHg3NCwweDY1LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg0MywweDZmLDB4NmQsMHg3MCwKKzB4NzUsMHg3NCwweDY1LDB4NzIsMHgyMCwweDUzLDB4NjMsMHg2OSwweDY1LDB4NmUsMHg2MywweDY1LDB4M2MsMHgyZiwweDYxLDB4M2UsCisweDIwLDB4NjIsMHg3NSwweDc0LDB4MjAsMHg2ZSwweDZmLDB4NzcsMHgyMCwweDY5LDB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLAorMHgyMCwweDIwLDB4NjIsMHg2NSwweDY5LDB4NmUsMHg2NywweDIwLDB4NjEsMHg2MywweDc0LDB4NjksMHg3NiwweDY1LDB4NmMsMHg3OSwKKzB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LDB4NjQsMHgyMCwweDYyLDB4NzksMHgyMCwweDYxLDB4MjAsCisweDc0LDB4NjUsMHg2MSwweDZkLDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2NCwweDY1LDB4NzYsMHg2NSwweDZjLDB4NmYsMHg3MCwweDY1LAorMHg3MiwweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2NCwweDY5LDB4NzMsMHg3NCwweDcyLDB4NjksMHg2MiwKKzB4NzUsMHg3NCwweDY1LDB4NjQsMHgyMCwweDc3LDB4NmYsMHg3MiwweDZjLDB4NjQsMHgyZCwweDc3LDB4NjksMHg2NCwweDY1LDB4MmUsCisweDIwLDB4NTMsMHg2OSwweDZlLDB4NjMsMHg2NSwweDIwLDB4NjksMHg3NCwweDI3LDB4NzMsMHgyMCwweDcyLDB4NjUsMHg2YywweDY1LAorMHg2MSwweDczLDB4NjUsMHgyYywweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwweDY4LDB4NjEsMHg3MywweDBkLDB4MGEsMHgwOSwKKzB4MjAsMHgyMCwweDIwLDB4MjAsMHg3MywweDcwLDB4NzUsMHg3MiwweDcyLDB4NjUsMHg2NCwweDIwLDB4NjEsMHgyMCwweDZjLDB4NmYsCisweDc0LDB4MjAsMHg2ZiwweDY2LDB4MjAsMHg2OSwweDZlLDB4NzQsMHg2NSwweDcyLDB4NjUsMHg3MywweDc0LDB4MjAsMHg2MSwweDZlLAorMHg2NCwweDIwLDB4NjgsMHg2MSwweDczLDB4MjAsMHg2MiwweDY1LDB4NjUsMHg2ZSwweDIwLDB4NzAsMHg2ZiwweDcyLDB4NzQsMHg2NSwKKzB4NjQsMHgyMCwweDc0LDB4NmYsMHgyMCwweDczLDB4NjUsMHg3NiwweDY1LDB4NzIsMHg2MSwweDZjLDB4MGQsMHgwYSwweDA5LDB4MjAsCisweDIwLDB4MjAsMHgyMCwweDcwLDB4NmMsMHg2MSwweDc0LDB4NjYsMHg2ZiwweDcyLDB4NmQsMHg3MywweDIwLDB4NjEsMHg2ZSwweDY0LAorMHgyMCwweDZmLDB4NzAsMHg2NSwweDcyLDB4NjEsMHg3NCwweDY5LDB4NmUsMHg2NywweDIwLDB4NzMsMHg3OSwweDczLDB4NzQsMHg2NSwKKzB4NmQsMHg3MywweDJlLDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwweDIwLDB4NjMsMHg2MSwweDZlLDB4MjAsMHg2MiwweDY1LDB4MjAsCisweDc1LDB4NzMsMHg2NSwweDY0LDB4MjAsMHg2NSwweDY5LDB4NzQsMHg2OCwweDY1LDB4NzIsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLAorMHgyMCwweDIwLDB4NzcsMHg2OSwweDc0LDB4NjgsMHgyMCwweDZmLDB4NzIsMHgyMCwweDc3LDB4NjksMHg3NCwweDY4LDB4NmYsMHg3NSwKKzB4NzQsMHgyMCwweDYxLDB4NmUsMHgyMCwweDc1LDB4NmUsMHg2NCwweDY1LDB4NzIsMHg2YywweDc5LDB4NjksMHg2ZSwweDY3LDB4MjAsCisweDRmLDB4NTMsMHgyZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgzYywweDJmLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLAorMHgyMCwweDNjLDB4NzAsMHgzZSwweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NTQsMHg2OCwweDY1LDB4MjAsMHg2NiwKKzB4NmYsMHg2MywweDc1LDB4NzMsMHgyMCwweDZmLDB4NjYsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsCisweDIwLDB4NTQsMHg0MywweDUwLDB4MmYsMHg0OSwweDUwLDB4MjAsMHg2OSwweDZkLDB4NzAsMHg2YywweDY1LDB4NmQsMHg2NSwweDZlLAorMHg3NCwweDYxLDB4NzQsMHg2OSwweDZmLDB4NmUsMHgyMCwweDY5LDB4NzMsMHgyMCwweDc0LDB4NmYsMHgyMCwweDcyLDB4NjUsMHg2NCwKKzB4NzUsMHg2MywweDY1LDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg3NCwweDY4LDB4NjUsMHgyMCwweDUyLDB4NDEsCisweDRkLDB4MjAsMHg3NSwweDczLDB4NjEsMHg2NywweDY1LDB4MjAsMHg3NywweDY4LDB4NjksMHg2YywweDY1LDB4MjAsMHg3MywweDc0LAorMHg2OSwweDZjLDB4NmMsMHgyMCwweDY4LDB4NjEsMHg3NiwweDY5LDB4NmUsMHg2NywweDIwLDB4NjEsMHgyMCwweDY2LDB4NzUsMHg2YywKKzB4NmMsMHgyMCwweDczLDB4NjMsMHg2MSwweDZjLDB4NjUsMHgyMCwweDU0LDB4NDMsMHg1MCwweDJlLDB4MjAsMHg1NCwweDY4LDB4NjksCisweDczLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2ZCwweDYxLDB4NmIsMHg2NSwweDczLDB4MjAsMHg2YywweDc3LAorMHg0OSwweDUwLDB4MjAsMHg3MywweDc1LDB4NjksMHg3NCwweDYxLDB4NjIsMHg2YywweDY1LDB4MjAsMHg2NiwweDZmLDB4NzIsMHgyMCwKKzB4NzUsMHg3MywweDY1LDB4MjAsMHg2OSwweDZlLDB4MjAsMHg2NSwweDZkLDB4NjIsMHg2NSwweDY0LDB4NjQsMHg2NSwweDY0LDB4MjAsCisweDczLDB4NzksMHg3MywweDc0LDB4NjUsMHg2ZCwweDczLDB4MjAsMHg3NywweDY5LDB4NzQsMHg2OCwweDIwLDB4NzQsMHg2NSwweDZlLAorMHg3MywweDBkLDB4MGEsMHgwOSwweDIwLDB4MjAsMHgyMCwweDIwLDB4NmYsMHg2NiwweDIwLDB4NmIsMHg2OSwweDZjLDB4NmYsMHg2MiwKKzB4NzksMHg3NCwweDY1LDB4NzMsMHgyMCwweDZmLDB4NjYsMHgyMCwweDY2LDB4NzIsMHg2NSwweDY1LDB4MjAsMHg1MiwweDQxLDB4NGQsCisweDIwLDB4NjEsMHg2ZSwweDY0LDB4MjAsMHg3MiwweDZmLDB4NmYsMHg2ZCwweDIwLDB4NjYsMHg2ZiwweDcyLDB4MjAsMHg2MSwweDcyLAorMHg2ZiwweDc1LDB4NmUsMHg2NCwweDIwLDB4MzQsMHgzMCwweDIwLDB4NmIsMHg2OSwweDZjLDB4NmYsMHg2MiwweDc5LDB4NzQsMHg2NSwKKzB4NzMsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDZmLDB4NjYsMHgyMCwweDYzLDB4NmYsMHg2NCwweDY1LDB4MjAsCisweDUyLDB4NGYsMHg0ZCwweDJlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLDB4MmYsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LAorMHgyMCwweDIwLDB4M2MsMHg3MCwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg0ZCwweDZmLDB4NzIsMHg2NSwKKzB4MjAsMHg2OSwweDZlLDB4NjYsMHg2ZiwweDcyLDB4NmQsMHg2MSwweDc0LDB4NjksMHg2ZiwweDZlLDB4MjAsMHg2MSwweDYyLDB4NmYsCisweDc1LDB4NzQsMHgyMCwweDZjLDB4NzcsMHg0OSwweDUwLDB4MjAsMHg2MywweDYxLDB4NmUsMHgyMCwweDYyLDB4NjUsMHgyMCwweDY2LAorMHg2ZiwweDc1LDB4NmUsMHg2NCwweDIwLDB4NjEsMHg3NCwweDIwLDB4NzQsMHg2OCwweDY1LDB4MjAsMHg2YywweDc3LDB4NDksMHg1MCwKKzB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLDB4MjAsMHg2OCwweDZmLDB4NmQsMHg2NSwweDcwLDB4NjEsMHg2NywweDY1LDB4MjAsCisweDYxLDB4NzQsMHgyMCwweDNjLDB4NjEsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsMHgyMCwweDY4LDB4NzIsMHg2NSwweDY2LAorMHgzZCwweDIyLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg3MywweDYxLDB4NzYsMHg2MSwweDZlLDB4NmUsMHg2MSwKKzB4NjgsMHgyZSwweDZlLDB4NmYsMHg2ZSwweDY3LDB4NmUsMHg3NSwweDJlLDB4NmYsMHg3MiwweDY3LDB4MmYsMHg3MCwweDcyLDB4NmYsCisweDZhLDB4NjUsMHg2MywweDc0LDB4NzMsMHgyZiwweDZjLDB4NzcsMHg2OSwweDcwLDB4MmYsMHgyMiwweDNlLDB4NjgsMHg3NCwweDc0LAorMHg3MCwweDNhLDB4MmYsMHgyZiwweDczLDB4NjEsMHg3NiwweDYxLDB4NmUsMHg2ZSwweDYxLDB4NjgsMHgyZSwweDZlLDB4NmYsMHg2ZSwKKzB4NjcsMHg2ZSwweDc1LDB4MmUsMHg2ZiwweDcyLDB4NjcsMHgyZiwweDcwLDB4NzIsMHg2ZiwweDZhLDB4NjUsMHg2MywweDc0LDB4NzMsCisweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyZiwweDNjLDB4MmYsMHg2MSwweDNlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDIwLAorMHgyMCwweDZmLDB4NzIsMHgyMCwweDYxLDB4NzQsMHgyMCwweDc0LDB4NjgsMHg2NSwweDIwLDB4NmMsMHg3NywweDQ5LDB4NTAsMHgyMCwKKzB4NzcsMHg2OSwweDZiLDB4NjksMHgyMCwweDYxLDB4NzQsMHgyMCwweDNjLDB4NjEsMHgwZCwweDBhLDB4MDksMHgyMCwweDIwLDB4MjAsCisweDIwLDB4NjgsMHg3MiwweDY1LDB4NjYsMHgzZCwweDIyLDB4NjgsMHg3NCwweDc0LDB4NzAsMHgzYSwweDJmLDB4MmYsMHg2YywweDc3LAorMHg2OSwweDcwLDB4MmUsMHg3NywweDY5LDB4NmIsMHg2OSwweDYxLDB4MmUsMHg2MywweDZmLDB4NmQsMHgyZiwweDIyLDB4M2UsMHg2OCwKKzB4NzQsMHg3NCwweDcwLDB4M2EsMHgyZiwweDJmLDB4NmMsMHg3NywweDY5LDB4NzAsMHgyZSwweDc3LDB4NjksMHg2YiwweDY5LDB4NjEsCisweDJlLDB4NjMsMHg2ZiwweDZkLDB4MmYsMHgzYywweDJmLDB4NjEsMHgzZSwweDJlLDB4MGQsMHgwYSwweDA5LDB4MjAsMHgyMCwweDNjLAorMHgyZiwweDcwLDB4M2UsMHgwZCwweDBhLDB4MDksMHgzYywweDJmLDB4NzQsMHg2NCwweDNlLDB4M2MsMHg3NCwweDY0LDB4M2UsMHgwZCwKKzB4MGEsMHgwOSwweDIwLDB4MjAsMHgyNiwweDZlLDB4NjIsMHg3MywweDcwLDB4M2IsMHgwZCwweDBhLDB4MDksMHgzYywweDJmLDB4NzQsCisweDY0LDB4M2UsMHgzYywweDJmLDB4NzQsMHg3MiwweDNlLDB4MGQsMHgwYSwweDIwLDB4MjAsMHgyMCwweDIwLDB4MjAsMHgyMCwweDNjLAorMHgyZiwweDc0LDB4NjEsMHg2MiwweDZjLDB4NjUsMHgzZSwweDBkLDB4MGEsMHgzYywweDJmLDB4NjIsMHg2ZiwweDY0LDB4NzksMHgzZSwKKzB4MGQsMHgwYSwweDNjLDB4MmYsMHg2OCwweDc0LDB4NmQsMHg2YywweDNlLDB4MGQsMHgwYSwweDBkLDB4MGEsfTsKKworCisKK2NvbnN0IHN0cnVjdCBmc2RhdGFfZmlsZSBmaWxlX19pbWdfc2ljc19naWZbXSA9IHsgeworZmlsZV9OVUxMLAorZGF0YV9faW1nX3NpY3NfZ2lmLAorZGF0YV9faW1nX3NpY3NfZ2lmICsgMTYsCitzaXplb2YoZGF0YV9faW1nX3NpY3NfZ2lmKSAtIDE2LAorRlNfRklMRV9GTEFHU19IRUFERVJfSU5DTFVERUQgfCBGU19GSUxFX0ZMQUdTX0hFQURFUl9QRVJTSVNURU5UIHwgRlNfRklMRV9GTEFHU19IRUFERVJfSFRUUFZFUl8xXzEsCit9fTsKKworY29uc3Qgc3RydWN0IGZzZGF0YV9maWxlIGZpbGVfXzQwNF9odG1sW10gPSB7IHsKK2ZpbGVfX2ltZ19zaWNzX2dpZiwKK2RhdGFfXzQwNF9odG1sLAorZGF0YV9fNDA0X2h0bWwgKyAxMiwKK3NpemVvZihkYXRhX180MDRfaHRtbCkgLSAxMiwKK0ZTX0ZJTEVfRkxBR1NfSEVBREVSX0lOQ0xVREVEIHwgRlNfRklMRV9GTEFHU19IRUFERVJfUEVSU0lTVEVOVCB8IEZTX0ZJTEVfRkxBR1NfSEVBREVSX0hUVFBWRVJfMV8xLAorfX07CisKK2NvbnN0IHN0cnVjdCBmc2RhdGFfZmlsZSBmaWxlX19pbmRleF9odG1sW10gPSB7IHsKK2ZpbGVfXzQwNF9odG1sLAorZGF0YV9faW5kZXhfaHRtbCwKK2RhdGFfX2luZGV4X2h0bWwgKyAxMiwKK3NpemVvZihkYXRhX19pbmRleF9odG1sKSAtIDEyLAorRlNfRklMRV9GTEFHU19IRUFERVJfSU5DTFVERUQgfCBGU19GSUxFX0ZMQUdTX0hFQURFUl9QRVJTSVNURU5UIHwgRlNfRklMRV9GTEFHU19IRUFERVJfSFRUUFZFUl8xXzEsCit9fTsKKworY29uc3Qgc3RydWN0IGZzZGF0YV9maWxlIGZpbGVfX2xvZ2luX2h0bWxbXSA9IHsgeworZmlsZV9faW5kZXhfaHRtbCwKK2RhdGFfX2xvZ2luX2h0bWwsCitkYXRhX19sb2dpbl9odG1sICsgMTIsCitzaXplb2YoZGF0YV9fbG9naW5faHRtbCkgLSAxMiwKK0ZTX0ZJTEVfRkxBR1NfSEVBREVSX0lOQ0xVREVEIHwgRlNfRklMRV9GTEFHU19IRUFERVJfUEVSU0lTVEVOVCB8IEZTX0ZJTEVfRkxBR1NfSEVBREVSX0hUVFBWRVJfMV8xLAorfX07CisKK2NvbnN0IHN0cnVjdCBmc2RhdGFfZmlsZSBmaWxlX19sb2dpbmZhaWxfaHRtbFtdID0geyB7CitmaWxlX19sb2dpbl9odG1sLAorZGF0YV9fbG9naW5mYWlsX2h0bWwsCitkYXRhX19sb2dpbmZhaWxfaHRtbCArIDE2LAorc2l6ZW9mKGRhdGFfX2xvZ2luZmFpbF9odG1sKSAtIDE2LAorRlNfRklMRV9GTEFHU19IRUFERVJfSU5DTFVERUQgfCBGU19GSUxFX0ZMQUdTX0hFQURFUl9QRVJTSVNURU5UIHwgRlNfRklMRV9GTEFHU19IRUFERVJfSFRUUFZFUl8xXzEsCit9fTsKKworY29uc3Qgc3RydWN0IGZzZGF0YV9maWxlIGZpbGVfX3Nlc3Npb25faHRtbFtdID0geyB7CitmaWxlX19sb2dpbmZhaWxfaHRtbCwKK2RhdGFfX3Nlc3Npb25faHRtbCwKK2RhdGFfX3Nlc3Npb25faHRtbCArIDE2LAorc2l6ZW9mKGRhdGFfX3Nlc3Npb25faHRtbCkgLSAxNiwKK0ZTX0ZJTEVfRkxBR1NfSEVBREVSX0lOQ0xVREVEIHwgRlNfRklMRV9GTEFHU19IRUFERVJfUEVSU0lTVEVOVCB8IEZTX0ZJTEVfRkxBR1NfSEVBREVSX0hUVFBWRVJfMV8xLAorfX07CisKK2NvbnN0IHN0cnVjdCBmc2RhdGFfZmlsZSBmaWxlX19zc2lfc2h0bWxbXSA9IHsgeworZmlsZV9fc2Vzc2lvbl9odG1sLAorZGF0YV9fc3NpX3NodG1sLAorZGF0YV9fc3NpX3NodG1sICsgMTIsCitzaXplb2YoZGF0YV9fc3NpX3NodG1sKSAtIDEyLAorRlNfRklMRV9GTEFHU19IRUFERVJfSU5DTFVERUQgfCBGU19GSUxFX0ZMQUdTX1NTSSwKK319OworCisjZGVmaW5lIEZTX1JPT1QgZmlsZV9fc3NpX3NodG1sCisjZGVmaW5lIEZTX05VTUZJTEVTIDcKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9odHRwZC9mc19leGFtcGxlL2ZzX2V4YW1wbGUuYyBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZnNfZXhhbXBsZS9mc19leGFtcGxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM1NTJiMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZnNfZXhhbXBsZS9mc19leGFtcGxlLmMKQEAgLTAsMCArMSwzMjQgQEAKKy8qKgorICogQGZpbGUKKyAqIEhUVFBEIGN1c3RvbSBmaWxlIHN5c3RlbSBleGFtcGxlCisgKgorICogVGhpcyBmaWxlIGRlbW9uc3RyYXRlcyBob3cgdG8gYWRkIHN1cHBvcnQgZm9yIGFuIGV4dGVybmFsIGZpbGUgc3lzdGVtIHRvIGh0dHBkLgorICogSXQgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBzcGVjaWZpZWQgcm9vdCBkaXJlY3RvcnkgYW5kIHVzZXMgc3RkaW8uaCBmaWxlIGZ1bmN0aW9ucworICogdG8gcmVhZCBmaWxlcy4KKyAqCisgKiBBVFRFTlRJT046IFRoaXMgaW1wbGVtZW50YXRpb24gaXMgKm5vdCogc2VjdXJlOiBubyBjaGVja3MgYXJlIGFkZGVkIHRvIGVuc3VyZQorICogZmlsZXMgYXJlIG9ubHkgcmVhZCBiZWxvdyB0aGUgc3BlY2lmaWVkIHJvb3QgZGlyZWN0b3J5IQorICovCisgCisgLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNyBTaW1vbiBHb2xkc2NobWlkdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCAKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIAorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSAKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqIAorICogQXV0aG9yOiBTaW1vbiBHb2xkc2NobWlkdCA8Z29sZHNpbW9uQGdteC5kZT4KKyAqCisgKi8KKworI2luY2x1ZGUgImx3aXAvb3B0LmgiCisjaW5jbHVkZSAiZnNfZXhhbXBsZS5oIgorCisjaW5jbHVkZSAibHdpcC9hcHBzL2ZzLmgiCisjaW5jbHVkZSAibHdpcC9kZWYuaCIKKyNpbmNsdWRlICJsd2lwL21lbS5oIgorCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworLyoqIGRlZmluZSBMV0lQX0hUVFBEX0VYQU1QTEVfQ1VTVE9NRklMRVMgdG8gMSB0byBlbmFibGUgdGhpcyBmaWxlIHN5c3RlbSAqLworI2lmbmRlZiBMV0lQX0hUVFBEX0VYQU1QTEVfQ1VTVE9NRklMRVMKKyNkZWZpbmUgTFdJUF9IVFRQRF9FWEFNUExFX0NVU1RPTUZJTEVTIDAKKyNlbmRpZgorCisvKiogZGVmaW5lIExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFU19ERUxBWUVEIHRvIDEgdG8gZGVsYXkgb3BlbiBhbmQgcmVhZAorICogYXMgaWYgZS5nLiByZWFkaW5nIGZyb20gZXh0ZXJuYWwgU1BJIGZsYXNoICovCisjaWZuZGVmIExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFU19ERUxBWUVECisjZGVmaW5lIExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFU19ERUxBWUVEIDEKKyNlbmRpZgorCisvKiogZGVmaW5lIExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFU19MSU1JVF9SRUFEIHRvIHRoZSBudW1iZXIgb2YgYnl0ZXMKKyAqIHRvIHJlYWQgdG8gZW11bGF0ZSBsaW1pdGVkIHRyYW5zZmVyIGJ1ZmZlcnMgYW5kIGRvbid0IHJlYWQgd2hvbGUgZmlsZXMgaW4KKyAqIG9uZSBjaHVuay4KKyAqIFdBUk5JTkc6IGxvd2VyaW5nIHRoaXMgc2xvd3MgZG93biB0aGUgY29ubmVjdGlvbiEKKyAqLworI2lmbmRlZiBMV0lQX0hUVFBEX0VYQU1QTEVfQ1VTVE9NRklMRVNfTElNSVRfUkVBRAorI2RlZmluZSBMV0lQX0hUVFBEX0VYQU1QTEVfQ1VTVE9NRklMRVNfTElNSVRfUkVBRCAwCisjZW5kaWYKKworI2lmIExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFUworCisjaWYgIUxXSVBfSFRUUERfQ1VTVE9NX0ZJTEVTCisjZXJyb3IgVGhpcyBuZWVkcyBMV0lQX0hUVFBEX0NVU1RPTV9GSUxFUworI2VuZGlmCisjaWYgIUxXSVBfSFRUUERfRFlOQU1JQ19IRUFERVJTCisjZXJyb3IgVGhpcyBuZWVkcyBMV0lQX0hUVFBEX0RZTkFNSUNfSEVBREVSUworI2VuZGlmCisjaWYgIUxXSVBfSFRUUERfRFlOQU1JQ19GSUxFX1JFQUQKKyNlcnJvciBUaGlzIHdhbnRzIHRvIGRlbW9uc3RyYXRlIHJlYWQtYWZ0ZXItb3Blbiwgc28gTFdJUF9IVFRQRF9EWU5BTUlDX0ZJTEVfUkVBRCBpcyByZXF1aXJlZCEKKyNlbmRpZgorI2lmICFMV0lQX0hUVFBEX0ZTX0FTWU5DX1JFQUQKKyNlcnJvciBUaGlzIG5lZWRzIExXSVBfSFRUUERfRlNfQVNZTkNfUkVBRAorI2VuZGlmCisjaWYgIUxXSVBfSFRUUERfRklMRV9FWFRFTlNJT04KKyNlcnJvciBUaGlzIG5lZWRzIExXSVBfSFRUUERfRklMRV9FWFRFTlNJT04KKyNlbmRpZgorCisjaWYgTFdJUF9IVFRQRF9FWEFNUExFX0NVU1RPTUZJTEVTX0RFTEFZRUQKKyNpbmNsdWRlICJsd2lwL3RjcGlwLmgiCisjZW5kaWYKKworc3RydWN0IGZzX2N1c3RvbV9kYXRhIHsKKyAgRklMRSAqZjsKKyNpZiBMV0lQX0hUVFBEX0VYQU1QTEVfQ1VTVE9NRklMRVNfREVMQVlFRAorICBpbnQgZGVsYXlfcmVhZDsKKyAgZnNfd2FpdF9jYiBjYWxsYmFja19mbjsKKyAgdm9pZCAqY2FsbGJhY2tfYXJnOworI2VuZGlmCit9OworCitjb25zdCBjaGFyKiBmc19leF9yb290X2RpcjsKKwordm9pZAorZnNfZXhfaW5pdChjb25zdCBjaGFyICpodHRwZF9yb290X2RpcikKK3sKKyAgZnNfZXhfcm9vdF9kaXIgPSBzdHJkdXAoaHR0cGRfcm9vdF9kaXIpOworfQorCisjaWYgTFdJUF9IVFRQRF9DVVNUT01fRklMRVMKK2ludAorZnNfb3Blbl9jdXN0b20oc3RydWN0IGZzX2ZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgIGNoYXIgZnVsbF9maWxlbmFtZVsyNTZdOworICBGSUxFICpmOworCisgIHNucHJpbnRmKGZ1bGxfZmlsZW5hbWUsIDI1NSwgIiVzJXMiLCBmc19leF9yb290X2RpciwgbmFtZSk7CisgIGZ1bGxfZmlsZW5hbWVbMjU1XSA9IDA7CisKKyAgZiA9IGZvcGVuKGZ1bGxfZmlsZW5hbWUsICJyYiIpOworICBpZiAoZiAhPSBOVUxMKSB7CisgICAgaWYgKCFmc2VlayhmLCAwLCBTRUVLX0VORCkpIHsKKyAgICAgIGludCBsZW4gPSAoaW50KWZ0ZWxsKGYpOworICAgICAgaWYoIWZzZWVrKGYsIDAsIFNFRUtfU0VUKSkgeworICAgICAgICBzdHJ1Y3QgZnNfY3VzdG9tX2RhdGEgKmRhdGEgPSAoc3RydWN0IGZzX2N1c3RvbV9kYXRhICopbWVtX21hbGxvYyhzaXplb2Yoc3RydWN0IGZzX2N1c3RvbV9kYXRhKSk7CisgICAgICAgIExXSVBfQVNTRVJUKCJvdXQgb2YgbWVtb3J5PyIsIGRhdGEgIT0gTlVMTCk7CisgICAgICAgIG1lbXNldChmaWxlLCAwLCBzaXplb2Yoc3RydWN0IGZzX2ZpbGUpKTsKKyNpZiBMV0lQX0hUVFBEX0VYQU1QTEVfQ1VTVE9NRklMRVNfREVMQVlFRAorICAgICAgICBmaWxlLT5sZW4gPSAwOyAvKiByZWFkIHNpemUgZGVsYXllZCAqLworICAgICAgICBkYXRhLT5kZWxheV9yZWFkID0gMzsKKyAgICAgICAgTFdJUF9VTlVTRURfQVJHKGxlbik7CisjZWxzZQorICAgICAgICBmaWxlLT5sZW4gPSBsZW47CisjZW5kaWYKKyAgICAgICAgZmlsZS0+ZmxhZ3MgPSBGU19GSUxFX0ZMQUdTX0hFQURFUl9QRVJTSVNURU5UOworICAgICAgICBkYXRhLT5mID0gZjsKKyAgICAgICAgZmlsZS0+cGV4dGVuc2lvbiA9IGRhdGE7CisgICAgICAgIHJldHVybiAxOworICAgICAgfQorICAgIH0KKyAgICBmY2xvc2UoZik7CisgIH0KKyAgcmV0dXJuIDA7Cit9CisKK3ZvaWQKK2ZzX2Nsb3NlX2N1c3RvbShzdHJ1Y3QgZnNfZmlsZSAqZmlsZSkKK3sKKyAgaWYgKGZpbGUgJiYgZmlsZS0+cGV4dGVuc2lvbikgeworICAgIHN0cnVjdCBmc19jdXN0b21fZGF0YSAqZGF0YSA9IChzdHJ1Y3QgZnNfY3VzdG9tX2RhdGEgKilmaWxlLT5wZXh0ZW5zaW9uOworICAgIGlmIChkYXRhLT5mICE9IE5VTEwpIHsKKyAgICAgIGZjbG9zZShkYXRhLT5mKTsKKyAgICAgIGRhdGEtPmYgPSBOVUxMOworICAgIH0KKyAgICBtZW1fZnJlZShkYXRhKTsKKyAgfQorfQorCisjaWYgTFdJUF9IVFRQRF9GU19BU1lOQ19SRUFECit1OF90Citmc19jYW5yZWFkX2N1c3RvbShzdHJ1Y3QgZnNfZmlsZSAqZmlsZSkKK3sKKyAgLyogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IG5lY2Vzc2FyeSBmb3IgYXN5bmNocm9ub3VzIEkvTzoKKyAgICAgSWYgcmVhZGluZyB3b3VsZCBibG9jaywgcmV0dXJuIDAgYW5kIGltcGxlbWVudCBmc193YWl0X3JlYWRfY3VzdG9tKCkgdG8gY2FsbCB0aGUKKyAgICAgc3VwcGxpZWQgY2FsbGJhY2sgaWYgcmVhZGluZyB3b3Jrcy4gKi8KKyNpZiBMV0lQX0hUVFBEX0VYQU1QTEVfQ1VTVE9NRklMRVNfREVMQVlFRAorICBzdHJ1Y3QgZnNfY3VzdG9tX2RhdGEgKmRhdGE7CisgIExXSVBfQVNTRVJUKCJmaWxlICE9IE5VTEwiLCBmaWxlICE9IE5VTEwpOworICBkYXRhID0gKHN0cnVjdCBmc19jdXN0b21fZGF0YSAqKWZpbGUtPnBleHRlbnNpb247CisgIGlmIChkYXRhID09IE5VTEwpIHsKKyAgICAvKiBmaWxlIHRyYW5zZmVyIGhhcyBiZWVuIGNvbXBsZXRlZCBhbHJlYWR5ICovCisgICAgTFdJUF9BU1NFUlQoInRyYW5zZmVyIGNvbXBsZXRlIiwgZmlsZS0+aW5kZXggPT0gZmlsZS0+bGVuKTsKKyAgICByZXR1cm4gMTsKKyAgfQorICBMV0lQX0FTU0VSVCgiZGF0YSAhPSBOVUxMIiwgZGF0YSAhPSBOVUxMKTsKKyAgLyogVGhpcyBqdXN0IHNpbXVsYXRlcyBhIHNpbXBsZSBkZWxheS4gVGhpcyBkZWxheSB3b3VsZCBub3JtYWxseSBjb21lIGUuZy4gZnJvbSBTUEkgdHJhbnNmZXIgKi8KKyAgaWYgKGRhdGEtPmRlbGF5X3JlYWQgPT0gMykgeworICAgIC8qIGRlbGF5ZWQgZmlsZSBzaXplIG1vZGUgKi8KKyAgICBkYXRhLT5kZWxheV9yZWFkID0gMTsKKyAgICBMV0lQX0FTU0VSVCgiIiwgZmlsZS0+bGVuID09IDApOworICAgIGlmICghZnNlZWsoZGF0YS0+ZiwgMCwgU0VFS19FTkQpKSB7CisgICAgICBpbnQgbGVuID0gKGludClmdGVsbChkYXRhLT5mKTsKKyAgICAgIGlmKCFmc2VlayhkYXRhLT5mLCAwLCBTRUVLX1NFVCkpIHsKKyAgICAgICAgZmlsZS0+bGVuID0gbGVuOyAvKiByZWFkIHNpemUgZGVsYXllZCAqLworICAgICAgICBkYXRhLT5kZWxheV9yZWFkID0gMTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgICB9CisgICAgfQorICAgIC8qIGlmIHdlIGNvbWUgaGVyZSwgc29tZXRoaW5nIGlzIHdyb25nIHdpdGggdGhlIGZpbGUgKi8KKyAgICBMV0lQX0FTU0VSVCgiZmlsZSBlcnJvciIsIDApOworICB9CisgIGlmIChkYXRhLT5kZWxheV9yZWFkID09IDEpIHsKKyAgICAvKiB0ZWxsIHJlYWQgZnVuY3Rpb24gdG8gZGVsYXkgZnVydGhlciAqLworICB9CisjZW5kaWYKKyAgTFdJUF9VTlVTRURfQVJHKGZpbGUpOworICByZXR1cm4gMTsKK30KKworI2lmIExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFU19ERUxBWUVECitzdGF0aWMgdm9pZAorZnNfZXhhbXBsZV9yZWFkX2NiKHZvaWQgKmFyZykKK3sKKyAgc3RydWN0IGZzX2N1c3RvbV9kYXRhICpkYXRhID0gKHN0cnVjdCBmc19jdXN0b21fZGF0YSAqKWFyZzsKKyAgZnNfd2FpdF9jYiBjYWxsYmFja19mbiA9IGRhdGEtPmNhbGxiYWNrX2ZuOworICB2b2lkICpjYWxsYmFja19hcmcgPSBkYXRhLT5jYWxsYmFja19hcmc7CisgIGRhdGEtPmNhbGxiYWNrX2ZuID0gTlVMTDsKKyAgZGF0YS0+Y2FsbGJhY2tfYXJnID0gTlVMTDsKKworICBMV0lQX0FTU0VSVCgibm8gY2FsbGJhY2tfZm4iLCBjYWxsYmFja19mbiAhPSBOVUxMKTsKKworICBjYWxsYmFja19mbihjYWxsYmFja19hcmcpOworfQorI2VuZGlmCisKK3U4X3QKK2ZzX3dhaXRfcmVhZF9jdXN0b20oc3RydWN0IGZzX2ZpbGUgKmZpbGUsIGZzX3dhaXRfY2IgY2FsbGJhY2tfZm4sIHZvaWQgKmNhbGxiYWNrX2FyZykKK3sKKyNpZiBMV0lQX0hUVFBEX0VYQU1QTEVfQ1VTVE9NRklMRVNfREVMQVlFRAorICBlcnJfdCBlcnI7CisgIHN0cnVjdCBmc19jdXN0b21fZGF0YSAqZGF0YSA9IChzdHJ1Y3QgZnNfY3VzdG9tX2RhdGEgKilmaWxlLT5wZXh0ZW5zaW9uOworICBMV0lQX0FTU0VSVCgiZGF0YSBub3Qgc2V0IiwgZGF0YSAhPSBOVUxMKTsKKyAgZGF0YS0+Y2FsbGJhY2tfZm4gPSBjYWxsYmFja19mbjsKKyAgZGF0YS0+Y2FsbGJhY2tfYXJnID0gY2FsbGJhY2tfYXJnOworICBlcnIgPSB0Y3BpcF90cnlfY2FsbGJhY2soZnNfZXhhbXBsZV9yZWFkX2NiLCBkYXRhKTsKKyAgTFdJUF9BU1NFUlQoIm91dCBvZiBxdWV1ZSBlbGVtZW50cz8iLCBlcnIgPT0gRVJSX09LKTsKKyAgTFdJUF9VTlVTRURfQVJHKGVycik7CisjZWxzZQorICBMV0lQX0FTU0VSVCgibm90IGltcGxlbWVudGVkIGluIHRoaXMgZXhhbXBsZSBjb25maWd1cmF0aW9uIiwgMCk7CisjZW5kaWYKKyAgTFdJUF9VTlVTRURfQVJHKGZpbGUpOworICBMV0lQX1VOVVNFRF9BUkcoY2FsbGJhY2tfZm4pOworICBMV0lQX1VOVVNFRF9BUkcoY2FsbGJhY2tfYXJnKTsKKyAgLyogUmV0dXJuCisgICAgIC0gMCBpZiByZWFkeSB0byByZWFkIChhdCBsZWFzdCBvbmUgYnl0ZSkKKyAgICAgLSAxIGlmIHJlYWRpbmcgc2hvdWxkIGJlIGRlbGF5ZWQgKGNhbGwgJ3RjcGlwX2NhbGxiYWNrKGNhbGxiYWNrX2ZuLCBjYWxsYmFja19hcmcpJyB3aGVuIHJlYWR5KSAqLworICByZXR1cm4gMTsKK30KKworaW50Citmc19yZWFkX2FzeW5jX2N1c3RvbShzdHJ1Y3QgZnNfZmlsZSAqZmlsZSwgY2hhciAqYnVmZmVyLCBpbnQgY291bnQsIGZzX3dhaXRfY2IgY2FsbGJhY2tfZm4sIHZvaWQgKmNhbGxiYWNrX2FyZykKK3sKKyAgc3RydWN0IGZzX2N1c3RvbV9kYXRhICpkYXRhID0gKHN0cnVjdCBmc19jdXN0b21fZGF0YSAqKWZpbGUtPnBleHRlbnNpb247CisgIEZJTEUgKmY7CisgIGludCBsZW47CisgIGludCByZWFkX2NvdW50ID0gY291bnQ7CisgIExXSVBfQVNTRVJUKCJkYXRhIG5vdCBzZXQiLCBkYXRhICE9IE5VTEwpOworCisjaWYgTFdJUF9IVFRQRF9FWEFNUExFX0NVU1RPTUZJTEVTX0RFTEFZRUQKKyAgLyogVGhpcyBqdXN0IHNpbXVsYXRlcyBhIGRlbGF5LiBUaGlzIGRlbGF5IHdvdWxkIG5vcm1hbGx5IGNvbWUgZS5nLiBmcm9tIFNQSSB0cmFuc2ZlciAqLworICBMV0lQX0FTU0VSVCgiaW52YWxpZCBzdGF0ZSIsIGRhdGEtPmRlbGF5X3JlYWQgPj0gMCAmJiBkYXRhLT5kZWxheV9yZWFkIDw9IDIpOworICBpZiAoZGF0YS0+ZGVsYXlfcmVhZCA9PSAyKSB7CisgICAgLyogbm8gZGVsYXkgbmV4dCB0aW1lICovCisgICAgZGF0YS0+ZGVsYXlfcmVhZCA9IDA7CisgICAgcmV0dXJuIEZTX1JFQURfREVMQVlFRDsKKyAgfSBlbHNlIGlmIChkYXRhLT5kZWxheV9yZWFkID09IDEpIHsKKyAgICBlcnJfdCBlcnI7CisgICAgLyogZXhlY3V0ZSByZXF1ZXN0ZWQgZGVsYXkgKi8KKyAgICBkYXRhLT5kZWxheV9yZWFkID0gMjsKKyAgICBMV0lQX0FTU0VSVCgiZHVwbGljYXRlIGNhbGxiYWNrIHJlcXVlc3QiLCBkYXRhLT5jYWxsYmFja19mbiA9PSBOVUxMKTsKKyAgICBkYXRhLT5jYWxsYmFja19mbiA9IGNhbGxiYWNrX2ZuOworICAgIGRhdGEtPmNhbGxiYWNrX2FyZyA9IGNhbGxiYWNrX2FyZzsKKyAgICBlcnIgPSB0Y3BpcF90cnlfY2FsbGJhY2soZnNfZXhhbXBsZV9yZWFkX2NiLCBkYXRhKTsKKyAgICBMV0lQX0FTU0VSVCgib3V0IG9mIHF1ZXVlIGVsZW1lbnRzPyIsIGVyciA9PSBFUlJfT0spOworICAgIExXSVBfVU5VU0VEX0FSRyhlcnIpOworICAgIHJldHVybiBGU19SRUFEX0RFTEFZRUQ7CisgIH0KKyAgLyogZXhlY3V0ZSB0aGlzIHJlYWQgYnV0IGRlbGF5IHRoZSBuZXh0IG9uZSAqLworICBkYXRhLT5kZWxheV9yZWFkID0gMTsKKyNlbmRpZgorCisjaWYgTFdJUF9IVFRQRF9FWEFNUExFX0NVU1RPTUZJTEVTX0xJTUlUX1JFQUQKKyAgcmVhZF9jb3VudCA9IExXSVBfTUlOKHJlYWRfY291bnQsIExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFU19MSU1JVF9SRUFEKTsKKyNlbmRpZgorCisgIGYgPSBkYXRhLT5mOworICBsZW4gPSAoaW50KWZyZWFkKGJ1ZmZlciwgMSwgcmVhZF9jb3VudCwgZik7CisKKyAgTFdJUF9VTlVTRURfQVJHKGNhbGxiYWNrX2ZuKTsKKyAgTFdJUF9VTlVTRURfQVJHKGNhbGxiYWNrX2FyZyk7CisKKyAgZmlsZS0+aW5kZXggKz0gbGVuOworCisgIC8qIFJldHVybgorICAgICAtIEZTX1JFQURfRU9GIGlmIGFsbCBieXRlcyBoYXZlIGJlZW4gcmVhZAorICAgICAtIEZTX1JFQURfREVMQVlFRCBpZiByZWFkaW5nIGlzIGRlbGF5ZWQgKGNhbGwgJ3RjcGlwX2NhbGxiYWNrKGNhbGxiYWNrX2ZuLCBjYWxsYmFja19hcmcpJyB3aGVuIGRvbmUpICovCisgIGlmIChsZW4gPT0gMCkgeworICAgIC8qIGFsbCBieXRlcyByZWFkIGFscmVhZHkgKi8KKyAgICByZXR1cm4gRlNfUkVBRF9FT0Y7CisgIH0KKyAgcmV0dXJuIGxlbjsKK30KKworI2Vsc2UgLyogTFdJUF9IVFRQRF9GU19BU1lOQ19SRUFEICovCitpbnQKK2ZzX3JlYWRfY3VzdG9tKHN0cnVjdCBmc19maWxlICpmaWxlLCBjaGFyICpidWZmZXIsIGludCBjb3VudCkKK3sKKyAgc3RydWN0IGZzX2N1c3RvbV9kYXRhICpkYXRhID0gKHN0cnVjdCBmc19jdXN0b21fZGF0YSAqKWZpbGUtPnBleHRlbnNpb247CisgIEZJTEUgKmY7CisgIGludCBsZW47CisgIGludCByZWFkX2NvdW50ID0gY291bnQ7CisgIExXSVBfQVNTRVJUKCJkYXRhIG5vdCBzZXQiLCBkYXRhICE9IE5VTEwpOworCisjaWYgTFdJUF9IVFRQRF9FWEFNUExFX0NVU1RPTUZJTEVTX0xJTUlUX1JFQUQKKyAgcmVhZF9jb3VudCA9IExXSVBfTUlOKHJlYWRfY291bnQsIExXSVBfSFRUUERfRVhBTVBMRV9DVVNUT01GSUxFU19MSU1JVF9SRUFEKTsKKyNlbmRpZgorCisgIGYgPSBkYXRhLT5mOworICBsZW4gPSAoaW50KWZyZWFkKGJ1ZmZlciwgMSwgcmVhZF9jb3VudCwgZik7CisKKyAgZmlsZS0+aW5kZXggKz0gbGVuOworCisgIC8qIFJldHVybiBGU19SRUFEX0VPRiBpZiBhbGwgYnl0ZXMgaGF2ZSBiZWVuIHJlYWQgKi8KKyAgcmV0dXJuIGxlbjsKK30KKworI2VuZGlmIC8qIExXSVBfSFRUUERfRlNfQVNZTkNfUkVBRCAqLworI2VuZGlmIC8qIExXSVBfSFRUUERfQ1VTVE9NX0ZJTEVTICovCisKKyNlbmRpZiAvKiBMV0lQX0hUVFBEX0VYQU1QTEVfQ1VTVE9NRklMRVMgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZnNfZXhhbXBsZS9mc19leGFtcGxlLmggYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2ZzX2V4YW1wbGUvZnNfZXhhbXBsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzOTllNGQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2ZzX2V4YW1wbGUvZnNfZXhhbXBsZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU2ltb24gR29sZHNjaG1pZHQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgCisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCAKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiAKKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKiAKKyAqIEF1dGhvcjogU2ltb24gR29sZHNjaG1pZHQgPGdvbGRzaW1vbkBnbXguZGU+CisgKgorICovCisKKyNpZm5kZWYgTFdJUF9IRFJfSFRUUF9FWEFNUExFU19GU19FWEFNUExFCisjZGVmaW5lIExXSVBfSERSX0hUVFBfRVhBTVBMRVNfRlNfRVhBTVBMRQorCit2b2lkIGZzX2V4X2luaXQoY29uc3QgY2hhciAqaHR0cGRfcm9vdF9kaXIpOworCisjZW5kaWYgLyogTFdJUF9IRFJfSFRUUF9FWEFNUExFU19GU19FWEFNUExFICovCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2h0dHBkL2dlbmZpbGVzX2V4YW1wbGUvZ2VuZmlsZXNfZXhhbXBsZS5jIGIvY29udHJpYi9leGFtcGxlcy9odHRwZC9nZW5maWxlc19leGFtcGxlL2dlbmZpbGVzX2V4YW1wbGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTZkZjJhCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9odHRwZC9nZW5maWxlc19leGFtcGxlL2dlbmZpbGVzX2V4YW1wbGUuYwpAQCAtMCwwICsxLDE4NiBAQAorLyoqCisgKiBAZmlsZQorICogSFRUUEQgY3VzdG9tIGZpbGUgc3lzdGVtIGV4YW1wbGUgZm9yIHJ1bnRpbWUgZ2VuZXJhdGVkIGZpbGVzCisgKgorICogVGhpcyBmaWxlIGRlbW9uc3RyYXRlcyBob3cgdG8gYWRkIHN1cHBvcnQgZm9yIGdlbmVyYXRlZCBmaWxlcyB0byBodHRwZC4KKyAqLworIAorIC8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU2ltb24gR29sZHNjaG1pZHQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgCisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCAKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiAKKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKiAKKyAqIEF1dGhvcjogU2ltb24gR29sZHNjaG1pZHQgPGdvbGRzaW1vbkBnbXguZGU+CisgKgorICovCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorI2luY2x1ZGUgImdlbmZpbGVzX2V4YW1wbGUuaCIKKworI2luY2x1ZGUgImx3aXAvYXBwcy9mcy5oIgorI2luY2x1ZGUgImx3aXAvZGVmLmgiCisjaW5jbHVkZSAibHdpcC9tZW0uaCIKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKy8qKiBkZWZpbmUgTFdJUF9IVFRQRF9FWEFNUExFX0dFTkVSQVRFREZJTEVTIHRvIDEgdG8gZW5hYmxlIHRoaXMgZmlsZSBzeXN0ZW0gKi8KKyNpZm5kZWYgTFdJUF9IVFRQRF9FWEFNUExFX0dFTkVSQVRFREZJTEVTCisjZGVmaW5lIExXSVBfSFRUUERfRVhBTVBMRV9HRU5FUkFURURGSUxFUyAwCisjZW5kaWYKKworI2lmIExXSVBfSFRUUERfRVhBTVBMRV9HRU5FUkFURURGSUxFUworCisjaWYgIUxXSVBfSFRUUERfQ1VTVE9NX0ZJTEVTCisjZXJyb3IgVGhpcyBuZWVkcyBMV0lQX0hUVFBEX0NVU1RPTV9GSUxFUworI2VuZGlmCisjaWYgIUxXSVBfSFRUUERfRklMRV9FWFRFTlNJT04KKyNlcnJvciBUaGlzIG5lZWRzIExXSVBfSFRUUERfRklMRV9FWFRFTlNJT04KKyNlbmRpZgorI2lmICFMV0lQX0hUVFBEX0RZTkFNSUNfSEVBREVSUworI2Vycm9yIFRoaXMgbmVlZHMgTFdJUF9IVFRQRF9EWU5BTUlDX0hFQURFUlMKKyNlbmRpZgorCisvKiBUaGlzIGlzIHRoZSBwYWdlIHdlIHNlbmQuIEl0J3Mgbm90IGdlbmVyYXRlZCwgYXMgeW91IHNlZS4KKyAqIEdlbmVyYXRpbmcgY3VzdG9tIHRoaW5ncyBpbnN0ZWFkIG9mIG1lbWNweSBpcyBsZWZ0IHRvIHlvdXIgaW1hZ2luYXRpb24gOi0pCisgKi8KK2NvbnN0IGNoYXIgZ2VuZXJhdGVkX2h0bWxbXSA9CisiPGh0bWw+XG4iCisiPGhlYWQ+PHRpdGxlPmx3SVAgLSBBIExpZ2h0d2VpZ2h0IFRDUC9JUCBTdGFjazwvdGl0bGU+PC9oZWFkPlxuIgorIiA8Ym9keSBiZ2NvbG9yPVwid2hpdGVcIiB0ZXh0PVwiYmxhY2tcIj5cbiIKKyIgIDx0YWJsZSB3aWR0aD1cIjEwMCVcIj5cbiIKKyIgICA8dHIgdmFsaWduPVwidG9wXCI+XG4iCisiICAgIDx0ZCB3aWR0aD1cIjgwXCI+XG4iCisiICAgICA8YSBocmVmPVwiaHR0cDovL3d3dy5zaWNzLnNlL1wiPjxpbWcgc3JjPVwiL2ltZy9zaWNzLmdpZlwiXG4iCisiICAgICAgYm9yZGVyPVwiMFwiIGFsdD1cIlNJQ1MgbG9nb1wiIHRpdGxlPVwiU0lDUyBsb2dvXCI+PC9hPlxuIgorIiAgICA8L3RkPlxuIgorIiAgICA8dGQgd2lkdGg9XCI1MDBcIj5cbiIKKyIgICAgIDxoMT5sd0lQIC0gQSBMaWdodHdlaWdodCBUQ1AvSVAgU3RhY2s8L2gxPlxuIgorIiAgICAgPGgyPkdlbmVyYXRlZCBwYWdlPC9oMj5cbiIKKyIgICAgIDxwPlRoaXMgcGFnZSBtaWdodCBiZSBnZW5lcmF0ZWQgaW4tbWVtb3J5IGF0IHJ1bnRpbWU8L3A+XG4iCisiICAgIDwvdGQ+XG4iCisiICAgIDx0ZD5cbiIKKyIgICAgJm5ic3A7XG4iCisiICAgIDwvdGQ+XG4iCisiICAgPC90cj5cbiIKKyIgIDwvdGFibGU+XG4iCisiIDwvYm9keT5cbiIKKyI8L2h0bWw+IjsKKworCit2b2lkCitnZW5maWxlc19leF9pbml0KHZvaWQpCit7CisgIC8qIG5vdGhpbmcgdG8gZG8gaGVyZSB5ZXQgKi8KK30KKworaW50Citmc19vcGVuX2N1c3RvbShzdHJ1Y3QgZnNfZmlsZSAqZmlsZSwgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgLyogdGhpcyBleGFtcGxlIG9ubHkgcHJvdmlkZXMgb25lIGZpbGUgKi8KKyAgaWYgKCFzdHJjbXAobmFtZSwgIi9nZW5lcmF0ZWQuaHRtbCIpKSB7CisgICAgLyogaW5pdGlhbGl6ZSBmc19maWxlIGNvcnJlY3RseSAqLworICAgIG1lbXNldChmaWxlLCAwLCBzaXplb2Yoc3RydWN0IGZzX2ZpbGUpKTsKKyAgICBmaWxlLT5wZXh0ZW5zaW9uID0gbWVtX21hbGxvYyhzaXplb2YoZ2VuZXJhdGVkX2h0bWwpKTsKKyAgICBpZiAoZmlsZS0+cGV4dGVuc2lvbiAhPSBOVUxMKSB7CisgICAgICAvKiBpbnN0ZWFkIG9mIGRvaW5nIG1lbWNweSwgeW91IHdvdWxkIGdlbmVyYXRlIGUuZy4gYSBKU09OIGhlcmUgKi8KKyAgICAgIG1lbWNweShmaWxlLT5wZXh0ZW5zaW9uLCBnZW5lcmF0ZWRfaHRtbCwgc2l6ZW9mKGdlbmVyYXRlZF9odG1sKSk7CisgICAgICBmaWxlLT5kYXRhID0gKGNvbnN0IGNoYXIgKilmaWxlLT5wZXh0ZW5zaW9uOworICAgICAgZmlsZS0+bGVuID0gc2l6ZW9mKGdlbmVyYXRlZF9odG1sKSAtIDE7IC8qIGRvbid0IHNlbmQgdGhlIHRyYWlsaW5nIDAgKi8KKyAgICAgIGZpbGUtPmluZGV4ID0gZmlsZS0+bGVuOworICAgICAgLyogYWxsb3cgcGVyc2lzdGVuZyBjb25uZWN0aW9ucyAqLworICAgICAgZmlsZS0+ZmxhZ3MgPSBGU19GSUxFX0ZMQUdTX0hFQURFUl9QRVJTSVNURU5UOworICAgICAgcmV0dXJuIDE7CisgICAgfQorICB9CisgIHJldHVybiAwOworfQorCit2b2lkCitmc19jbG9zZV9jdXN0b20oc3RydWN0IGZzX2ZpbGUgKmZpbGUpCit7CisgIGlmIChmaWxlICYmIGZpbGUtPnBleHRlbnNpb24pIHsKKyAgICBtZW1fZnJlZShmaWxlLT5wZXh0ZW5zaW9uKTsKKyAgICBmaWxlLT5wZXh0ZW5zaW9uID0gTlVMTDsKKyAgfQorfQorCisjaWYgTFdJUF9IVFRQRF9GU19BU1lOQ19SRUFECit1OF90Citmc19jYW5yZWFkX2N1c3RvbShzdHJ1Y3QgZnNfZmlsZSAqZmlsZSkKK3sKKyAgTFdJUF9VTlVTRURfQVJHKGZpbGUpOworICAvKiBUaGlzIGV4YW1wbGUgZG9lcyBub3QgdXNlIGRlbGF5ZWQvYXN5bmMgcmVhZGluZyAqLworICByZXR1cm4gMTsKK30KKwordThfdAorZnNfd2FpdF9yZWFkX2N1c3RvbShzdHJ1Y3QgZnNfZmlsZSAqZmlsZSwgZnNfd2FpdF9jYiBjYWxsYmFja19mbiwgdm9pZCAqY2FsbGJhY2tfYXJnKQoreworICBMV0lQX0FTU0VSVCgibm90IGltcGxlbWVudGVkIGluIHRoaXMgZXhhbXBsZSBjb25maWd1cmF0aW9uIiwgMCk7CisgIExXSVBfVU5VU0VEX0FSRyhmaWxlKTsKKyAgTFdJUF9VTlVTRURfQVJHKGNhbGxiYWNrX2ZuKTsKKyAgTFdJUF9VTlVTRURfQVJHKGNhbGxiYWNrX2FyZyk7CisgIC8qIFJldHVybgorICAgICAtIDEgaWYgcmVhZHkgdG8gcmVhZCAoYXQgbGVhc3Qgb25lIGJ5dGUpCisgICAgIC0gMCBpZiByZWFkaW5nIHNob3VsZCBiZSBkZWxheWVkIChjYWxsICd0Y3BpcF9jYWxsYmFjayhjYWxsYmFja19mbiwgY2FsbGJhY2tfYXJnKScgd2hlbiByZWFkeSkgKi8KKyAgcmV0dXJuIDE7Cit9CisKK2ludAorZnNfcmVhZF9hc3luY19jdXN0b20oc3RydWN0IGZzX2ZpbGUgKmZpbGUsIGNoYXIgKmJ1ZmZlciwgaW50IGNvdW50LCBmc193YWl0X2NiIGNhbGxiYWNrX2ZuLCB2b2lkICpjYWxsYmFja19hcmcpCit7CisgIExXSVBfQVNTRVJUKCJub3QgaW1wbGVtZW50ZWQgaW4gdGhpcyBleGFtcGxlIGNvbmZpZ3VyYXRpb24iLCAwKTsKKyAgTFdJUF9VTlVTRURfQVJHKGZpbGUpOworICBMV0lQX1VOVVNFRF9BUkcoYnVmZmVyKTsKKyAgTFdJUF9VTlVTRURfQVJHKGNvdW50KTsKKyAgTFdJUF9VTlVTRURfQVJHKGNhbGxiYWNrX2ZuKTsKKyAgTFdJUF9VTlVTRURfQVJHKGNhbGxiYWNrX2FyZyk7CisgIC8qIFJldHVybgorICAgICAtIEZTX1JFQURfRU9GIGlmIGFsbCBieXRlcyBoYXZlIGJlZW4gcmVhZAorICAgICAtIEZTX1JFQURfREVMQVlFRCBpZiByZWFkaW5nIGlzIGRlbGF5ZWQgKGNhbGwgJ3RjcGlwX2NhbGxiYWNrKGNhbGxiYWNrX2ZuLCBjYWxsYmFja19hcmcpJyB3aGVuIGRvbmUpICovCisgIC8qIGFsbCBieXRlcyByZWFkIGFscmVhZHkgKi8KKyAgcmV0dXJuIEZTX1JFQURfRU9GOworfQorCisjZWxzZSAvKiBMV0lQX0hUVFBEX0ZTX0FTWU5DX1JFQUQgKi8KK2ludAorZnNfcmVhZF9jdXN0b20oc3RydWN0IGZzX2ZpbGUgKmZpbGUsIGNoYXIgKmJ1ZmZlciwgaW50IGNvdW50KQoreworICBMV0lQX0FTU0VSVCgibm90IGltcGxlbWVudGVkIGluIHRoaXMgZXhhbXBsZSBjb25maWd1cmF0aW9uIiwgMCk7CisgIExXSVBfVU5VU0VEX0FSRyhmaWxlKTsKKyAgTFdJUF9VTlVTRURfQVJHKGJ1ZmZlcik7CisgIExXSVBfVU5VU0VEX0FSRyhjb3VudCk7CisgIC8qIFJldHVybgorICAgICAtIEZTX1JFQURfRU9GIGlmIGFsbCBieXRlcyBoYXZlIGJlZW4gcmVhZAorICAgICAtIEZTX1JFQURfREVMQVlFRCBpZiByZWFkaW5nIGlzIGRlbGF5ZWQgKGNhbGwgJ3RjcGlwX2NhbGxiYWNrKGNhbGxiYWNrX2ZuLCBjYWxsYmFja19hcmcpJyB3aGVuIGRvbmUpICovCisgIC8qIGFsbCBieXRlcyByZWFkIGFscmVhZHkgKi8KKyAgcmV0dXJuIEZTX1JFQURfRU9GOworfQorCisjZW5kaWYgLyogTFdJUF9IVFRQRF9GU19BU1lOQ19SRUFEICovCisKKyNlbmRpZiAvKiBMV0lQX0hUVFBEX0VYQU1QTEVfR0VORVJBVEVERklMRVMgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvZ2VuZmlsZXNfZXhhbXBsZS9nZW5maWxlc19leGFtcGxlLmggYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2dlbmZpbGVzX2V4YW1wbGUvZ2VuZmlsZXNfZXhhbXBsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkOTczMWUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2dlbmZpbGVzX2V4YW1wbGUvZ2VuZmlsZXNfZXhhbXBsZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU2ltb24gR29sZHNjaG1pZHQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgCisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCAKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiAKKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKiAKKyAqIEF1dGhvcjogU2ltb24gR29sZHNjaG1pZHQgPGdvbGRzaW1vbkBnbXguZGU+CisgKgorICovCisKKyNpZm5kZWYgTFdJUF9IRFJfSFRUUF9FWEFNUExFU19HRU5GSUxFU19FWEFNUExFCisjZGVmaW5lIExXSVBfSERSX0hUVFBfRVhBTVBMRVNfR0VORklMRVNfRVhBTVBMRQorCit2b2lkIGdlbmZpbGVzX2V4X2luaXQodm9pZCk7CisKKyNlbmRpZiAvKiBMV0lQX0hEUl9IVFRQX0VYQU1QTEVTX0dFTkZJTEVTX0VYQU1QTEUgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvaHR0cHNfZXhhbXBsZS9odHRwc19leGFtcGxlLmMgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2h0dHBzX2V4YW1wbGUvaHR0cHNfZXhhbXBsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc2MTk4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL2h0dHBzX2V4YW1wbGUvaHR0cHNfZXhhbXBsZS5jCkBAIC0wLDAgKzEsMTQ0IEBACisvKioKKyAqIEBmaWxlCisgKiBIVFRQRCBodHRwcyBleGFtcGxlCisgKgorICogVGhpcyBmaWxlIGRlbW9uc3RyYXRlcyBob3cgdG8gaW5pdGlhbGl6ZSBodHRwZCBmb3IgaHR0cHMuCisgKiBUbyBkbyB0aGlzLCBpdCBuZWVkcyAyIGZpbGVzOgorICogLSBzZXJ2ZXIgY2VydGlmaWNhdGUKKyAqIC0gc2VydmVyIHByaXZhdGUga2V5CisgKgorICogSW4gYWRkaXRpb24gdG8gdGhhdCwgd2F0Y2ggb3V0IGZvciByZXNvdXJjZSBzaG9ydGFnZS4gWW91J2xsIG5lZWQgcGxlbnR5IG9mCisgKiBoZWFwIChzdGFydCB3aXRoIE1FTV9TSVpFID49IDIwMCBLQnl0ZSBvciBtb25pdG9yIGl0cyBlcnIgY291bnRlcnMpIGFuZCBiZQorICogc3VyZSB0byBhdCBsZWFzdCBzZXQgdGhlIGZvbGxvd2luZyBzZXR0aW5ncyBoaWdoIGVub3VnaCAobW9uaXRvcgorICogbHdpcF9zdGF0cyBmb3IgYW4gaWRlYSBvZiB3aGF0J3MgbmVlZGVkKToKKyAqIC0gTUVNUF9OVU1fVENQX1BDQi9NRU1QX05VTV9BTFRDUF9QQ0IKKyAqIC0gTUVNUF9OVU1fVENQSVBfTVNHX0lOUEtUCisgKiAtIE1FTVBfTlVNX1RDUF9TRUcKKyAqLworIAorIC8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTctMjAxOSBTaW1vbiBHb2xkc2NobWlkdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCAKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIAorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSAKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqIAorICogQXV0aG9yOiBTaW1vbiBHb2xkc2NobWlkdCA8Z29sZHNpbW9uQGdteC5kZT4KKyAqCisgKi8KKworI2luY2x1ZGUgImx3aXAvb3B0LmgiCisjaW5jbHVkZSAiaHR0cHNfZXhhbXBsZS5oIgorCisjaW5jbHVkZSAibHdpcC9hbHRjcF90bHMuaCIKKyNpbmNsdWRlICJsd2lwL2FwcHMvaHR0cGQuaCIKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKy8qKiBkZWZpbmUgTFdJUF9IVFRQRF9FWEFNUExFX0hUVFBTIHRvIDEgdG8gZW5hYmxlIHRoaXMgZmlsZSBzeXN0ZW0gKi8KKyNpZm5kZWYgTFdJUF9IVFRQRF9FWEFNUExFX0hUVFBTCisjZGVmaW5lIExXSVBfSFRUUERfRVhBTVBMRV9IVFRQUyAwCisjZW5kaWYKKworI2lmIExXSVBfSFRUUERfRVhBTVBMRV9IVFRQUyAmJiBMV0lQX0FMVENQX1RMUworCisjaWZuZGVmIExXSVBfSFRUUERfRVhBTVBMRV9IVFRQU19LRVlfRklMRQorI2Vycm9yICJkZWZpbmUgTFdJUF9IVFRQRF9FWEFNUExFX0hUVFBTX0tFWV9GSUxFIHRvIHRoZSBjcmVhdGVkIHNlcnZlciBwcml2YXRlIGtleSIKKyNlbmRpZgorCisvKiBJZiB0aGUga2V5IGZpbGUgaXMgcGFzc3dvcmQtcHJvdGVjdGVkLCBkZWZpbmUgTFdJUF9IVFRQRF9FWEFNUExFX0hUVFBTX0tFWV9GSUxFX1BBU1MgKi8KKyNpZmRlZiBMV0lQX0hUVFBEX0VYQU1QTEVfSFRUUFNfS0VZX0ZJTEVfUEFTUworI2lmbmRlZiBMV0lQX0hUVFBEX0VYQU1QTEVfSFRUUFNfS0VZX0ZJTEVfUEFTU19MRU4KKyNkZWZpbmUgTFdJUF9IVFRQRF9FWEFNUExFX0hUVFBTX0tFWV9GSUxFX1BBU1NfTEVOICBzdHJsZW4oTFdJUF9IVFRQRF9FWEFNUExFX0hUVFBTX0tFWV9GSUxFX1BBU1MpCisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIExXSVBfSFRUUERfRVhBTVBMRV9IVFRQU19LRVlfRklMRV9QQVNTICAgICAgTlVMTAorI2RlZmluZSBMV0lQX0hUVFBEX0VYQU1QTEVfSFRUUFNfS0VZX0ZJTEVfUEFTU19MRU4gIDAKKyNlbmRpZgorCisjaWZuZGVmIExXSVBfSFRUUERfRVhBTVBMRV9IVFRQU19DRVJUX0ZJTEUKKyNlcnJvciAiZGVmaW5lIExXSVBfSFRUUERfRVhBTVBMRV9IVFRQU19DRVJUX0ZJTEUgdG8gdGhlIGNyZWF0ZWQgc2VydmVyIGNlcnRpZmljYXRlIgorI2VuZGlmCisKK3N0YXRpYyB1OF90ICpyZWFkX2ZpbGUoY29uc3QgY2hhciAqZmlsZW5hbWUsIHNpemVfdCAqZmlsZV9zaXplKQoreworICB1OF90ICpidWY7CisgIGxvbmcgZnNpemU7CisgIEZJTEUgKmYgPSBmb3BlbihmaWxlbmFtZSwgInJiIik7CisgIGlmICghZikgeworICAgIHJldHVybiBOVUxMOworICB9CisgIGZzZWVrKGYsIDAsIFNFRUtfRU5EKTsKKyAgZnNpemUgPSBmdGVsbChmKTsKKyAgZnNlZWsoZiwgMCwgU0VFS19TRVQpOworCisgIGJ1ZiA9ICh1OF90ICopbWFsbG9jKGZzaXplICsgMSk7CisgIGlmICghYnVmKSB7CisgICAgZmNsb3NlKGYpOworICAgIHJldHVybiBOVUxMOworICB9CisgIGZyZWFkKGJ1ZiwgMSwgZnNpemUsIGYpOworICBmY2xvc2UoZik7CisKKyAgYnVmW2ZzaXplXSA9IDA7CisgIGlmIChmaWxlX3NpemUpIHsKKyAgICAvKiBOb3RlOiB0aGUgJysgMScgaXMgcmVxdWlyZWQgZm9yIG1iZWRUTFMgdG8gY29ycmVjdGx5IHBhcnNlIHRoZSBidWZmZXIgKi8KKyAgICAqZmlsZV9zaXplID0gKHNpemVfdCkoZnNpemUgKyAxKTsKKyAgfQorICByZXR1cm4gYnVmOworfQorCisvKiogVGhpcyBmdW5jdGlvbiBsb2FkcyBhIHNlcnZlciBjZXJ0aWZpY2F0ZSBhbmQgcHJpdmF0ZSBrZXkgYXMgeDUwOSBmcm9tIGRpc2suCisgKiBGb3IgaW5mb3JtYXRpb24gaG93IHRvIGNyZWF0ZSBzdWNoIGZpbGVzLCBzZWUgbWJlZFRMUyB0dXRvcmlhbCAoIkhvdyB0bworICogZ2VuZXJhdGUgYSBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSIpIG9yIE9wZW5TU0wgZG9jdW1lbnRhdGlvbiAoIkhvdyB0bworICogZ2VuZXJhdGUgYSBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSBhbmQgcHJpdmF0ZSBrZXkgdXNpbmcgT3BlblNTTCIpLCBlLmcuCisgKiAnb3BlbnNzbCByZXEgLXg1MDkgLXNoYTI1NiAtbm9kZXMgLWRheXMgMzY1IC1uZXdrZXkgcnNhOjIwNDggLWtleW91dCBwcml2YXRlS2V5LmtleSAtb3V0IGNlcnRpZmljYXRlLmNydCcKKyAqIENvcHkgdGhlIHJlc3VsdGluZyBmaWxlcyBhbmQgZGVmaW5lIHRoZSBwYXRoIHRvIHRoZW0KKyAqLwordm9pZAoraHR0cHNfZXhfaW5pdCh2b2lkKQoreworICBzdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyAqY29uZjsKKyAgdThfdCAqcHJpdmtleSwgKmNlcnQ7CisgIHNpemVfdCBwcml2a2V5X3NpemUsIGNlcnRfc2l6ZTsKKworICBwcml2a2V5ID0gcmVhZF9maWxlKExXSVBfSFRUUERfRVhBTVBMRV9IVFRQU19LRVlfRklMRSwgJnByaXZrZXlfc2l6ZSk7CisgIExXSVBfQVNTRVJUKCJGYWlsZWQgdG8gb3BlbiBodHRwcyBzZXJ2ZXIgcHJpdmF0ZSBrZXkiLCBwcml2a2V5ICE9IE5VTEwpOworICBjZXJ0ID0gcmVhZF9maWxlKExXSVBfSFRUUERfRVhBTVBMRV9IVFRQU19DRVJUX0ZJTEUsICZjZXJ0X3NpemUpOworICBMV0lQX0FTU0VSVCgiRmFpbGVkIHRvIG9wZW4gaHR0cHMgc2VydmVyIGNlcnRpZmljYXRlIiwgY2VydCAhPSBOVUxMKTsKKworICBjb25mID0gYWx0Y3BfdGxzX2NyZWF0ZV9jb25maWdfc2VydmVyX3ByaXZrZXlfY2VydChwcml2a2V5LCBwcml2a2V5X3NpemUsCisgICAgTFdJUF9IVFRQRF9FWEFNUExFX0hUVFBTX0tFWV9GSUxFX1BBU1MsIExXSVBfSFRUUERfRVhBTVBMRV9IVFRQU19LRVlfRklMRV9QQVNTX0xFTiwgY2VydCwgY2VydF9zaXplKTsKKyAgTFdJUF9BU1NFUlQoIkZhaWxlZCB0byBjcmVhdGUgaHR0cHMgc2VydmVyIGNvbmZpZyIsIGNvbmYgIT0gTlVMTCk7CisKKyAgaHR0cGRfaW5pdHMoY29uZik7CisKKyAgLyogc2VjdXJlIGVyYXNlIHNob3VsZCBiZSBkb25lIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgKi8KKyAgZnJlZShwcml2a2V5KTsKKyAgZnJlZShjZXJ0KTsKK30KKworI2VuZGlmIC8qIExXSVBfSFRUUERfRVhBTVBMRV9IVFRQUyAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9odHRwZC9odHRwc19leGFtcGxlL2h0dHBzX2V4YW1wbGUuaCBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvaHR0cHNfZXhhbXBsZS9odHRwc19leGFtcGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE1MjVlNgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvaHR0cHNfZXhhbXBsZS9odHRwc19leGFtcGxlLmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNyBTaW1vbiBHb2xkc2NobWlkdAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCAKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIAorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSAKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqIAorICogQXV0aG9yOiBTaW1vbiBHb2xkc2NobWlkdCA8Z29sZHNpbW9uQGdteC5kZT4KKyAqCisgKi8KKworI2lmbmRlZiBMV0lQX0hEUl9IVFRQX0VYQU1QTEVTX0hUVFBTX0VYQU1QTEUKKyNkZWZpbmUgTFdJUF9IRFJfSFRUUF9FWEFNUExFU19IVFRQU19FWEFNUExFCisKK3ZvaWQgaHR0cHNfZXhfaW5pdCh2b2lkKTsKKworI2VuZGlmIC8qIExXSVBfSERSX0hUVFBfRVhBTVBMRVNfSFRUUFNfRVhBTVBMRSAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9odHRwZC9wb3N0X2V4YW1wbGUvcG9zdF9leGFtcGxlLmMgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL3Bvc3RfZXhhbXBsZS9wb3N0X2V4YW1wbGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGU0MzY5Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9odHRwZC9wb3N0X2V4YW1wbGUvcG9zdF9leGFtcGxlLmMKQEAgLTAsMCArMSwxNjcgQEAKKy8qKgorICogQGZpbGUKKyAqIEhUVFBEIGV4YW1wbGUgZm9yIHNpbXBsZSBQT1NUCisgKi8KKyAKKyAvKgorICogQ29weXJpZ2h0IChjKSAyMDE3IFNpbW9uIEdvbGRzY2htaWR0CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIAorICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICogCisgKiBBdXRob3I6IFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPgorICoKKyAqLworCisjaW5jbHVkZSAibHdpcC9vcHQuaCIKKworI2luY2x1ZGUgImx3aXAvYXBwcy9odHRwZC5oIgorI2luY2x1ZGUgImx3aXAvZGVmLmgiCisjaW5jbHVkZSAibHdpcC9tZW0uaCIKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKy8qKiBkZWZpbmUgTFdJUF9IVFRQRF9FWEFNUExFX0dFTkVSQVRFREZJTEVTIHRvIDEgdG8gZW5hYmxlIHRoaXMgZmlsZSBzeXN0ZW0gKi8KKyNpZm5kZWYgTFdJUF9IVFRQRF9FWEFNUExFX1NJTVBMRVBPU1QKKyNkZWZpbmUgTFdJUF9IVFRQRF9FWEFNUExFX1NJTVBMRVBPU1QgMAorI2VuZGlmCisKKyNpZiBMV0lQX0hUVFBEX0VYQU1QTEVfU0lNUExFUE9TVAorCisjaWYgIUxXSVBfSFRUUERfU1VQUE9SVF9QT1NUCisjZXJyb3IgVGhpcyBuZWVkcyBMV0lQX0hUVFBEX1NVUFBPUlRfUE9TVAorI2VuZGlmCisKKyNkZWZpbmUgVVNFUl9QQVNTX0JVRlNJWkUgMTYKKworc3RhdGljIHZvaWQgKmN1cnJlbnRfY29ubmVjdGlvbjsKK3N0YXRpYyB2b2lkICp2YWxpZF9jb25uZWN0aW9uOworc3RhdGljIGNoYXIgbGFzdF91c2VyW1VTRVJfUEFTU19CVUZTSVpFXTsKKworZXJyX3QKK2h0dHBkX3Bvc3RfYmVnaW4odm9pZCAqY29ubmVjdGlvbiwgY29uc3QgY2hhciAqdXJpLCBjb25zdCBjaGFyICpodHRwX3JlcXVlc3QsCisgICAgICAgICAgICAgICAgIHUxNl90IGh0dHBfcmVxdWVzdF9sZW4sIGludCBjb250ZW50X2xlbiwgY2hhciAqcmVzcG9uc2VfdXJpLAorICAgICAgICAgICAgICAgICB1MTZfdCByZXNwb25zZV91cmlfbGVuLCB1OF90ICpwb3N0X2F1dG9fd25kKQoreworICBMV0lQX1VOVVNFRF9BUkcoY29ubmVjdGlvbik7CisgIExXSVBfVU5VU0VEX0FSRyhodHRwX3JlcXVlc3QpOworICBMV0lQX1VOVVNFRF9BUkcoaHR0cF9yZXF1ZXN0X2xlbik7CisgIExXSVBfVU5VU0VEX0FSRyhjb250ZW50X2xlbik7CisgIExXSVBfVU5VU0VEX0FSRyhwb3N0X2F1dG9fd25kKTsKKyAgaWYgKCFtZW1jbXAodXJpLCAiL2xvZ2luLmNnaSIsIDExKSkgeworICAgIGlmIChjdXJyZW50X2Nvbm5lY3Rpb24gIT0gY29ubmVjdGlvbikgeworICAgICAgY3VycmVudF9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKKyAgICAgIHZhbGlkX2Nvbm5lY3Rpb24gPSBOVUxMOworICAgICAgLyogZGVmYXVsdCBwYWdlIGlzICJsb2dpbiBmYWlsZWQiICovCisgICAgICBzbnByaW50ZihyZXNwb25zZV91cmksIHJlc3BvbnNlX3VyaV9sZW4sICIvbG9naW5mYWlsLmh0bWwiKTsKKyAgICAgIC8qIGUuZy4gZm9yIGxhcmdlIHVwbG9hZHMgdG8gc2xvdyBmbGFzaCBvdmVyIGEgZmFzdCBjb25uZWN0aW9uLCB5b3Ugc2hvdWxkCisgICAgICAgICBtYW51YWxseSB1cGRhdGUgdGhlIHJ4IHdpbmRvdy4gVGhhdCB3YXksIGEgc2VuZGVyIGNhbiBvbmx5IHNlbmQgYSBmdWxsCisgICAgICAgICB0Y3Agd2luZG93IGF0IGEgdGltZS4gSWYgdGhpcyBpcyByZXF1aXJlZCwgc2V0ICdwb3N0X2F1dF93bmQnIHRvIDAuCisgICAgICAgICBXZSBkbyBub3QgbmVlZCB0byB0aHJvdHRsZSB1cGxvYWQgc3BlZWQgaGVyZSwgc286ICovCisgICAgICAqcG9zdF9hdXRvX3duZCA9IDE7CisgICAgICByZXR1cm4gRVJSX09LOworICAgIH0KKyAgfQorICByZXR1cm4gRVJSX1ZBTDsKK30KKworZXJyX3QKK2h0dHBkX3Bvc3RfcmVjZWl2ZV9kYXRhKHZvaWQgKmNvbm5lY3Rpb24sIHN0cnVjdCBwYnVmICpwKQoreworICBlcnJfdCByZXQ7CisKKyAgTFdJUF9BU1NFUlQoIk5VTEwgcGJ1ZiIsIHAgIT0gTlVMTCk7CisKKyAgaWYgKGN1cnJlbnRfY29ubmVjdGlvbiA9PSBjb25uZWN0aW9uKSB7CisgICAgdTE2X3QgdG9rZW5fdXNlciA9IHBidWZfbWVtZmluZChwLCAidXNlcj0iLCA1LCAwKTsKKyAgICB1MTZfdCB0b2tlbl9wYXNzID0gcGJ1Zl9tZW1maW5kKHAsICJwYXNzPSIsIDUsIDApOworICAgIGlmICgodG9rZW5fdXNlciAhPSAweEZGRkYpICYmICh0b2tlbl9wYXNzICE9IDB4RkZGRikpIHsKKyAgICAgIHUxNl90IHZhbHVlX3VzZXIgPSB0b2tlbl91c2VyICsgNTsKKyAgICAgIHUxNl90IHZhbHVlX3Bhc3MgPSB0b2tlbl9wYXNzICsgNTsKKyAgICAgIHUxNl90IGxlbl91c2VyID0gMDsKKyAgICAgIHUxNl90IGxlbl9wYXNzID0gMDsKKyAgICAgIHUxNl90IHRtcDsKKyAgICAgIC8qIGZpbmQgdXNlciBsZW4gKi8KKyAgICAgIHRtcCA9IHBidWZfbWVtZmluZChwLCAiJiIsIDEsIHZhbHVlX3VzZXIpOworICAgICAgaWYgKHRtcCAhPSAweEZGRkYpIHsKKyAgICAgICAgbGVuX3VzZXIgPSB0bXAgLSB2YWx1ZV91c2VyOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgbGVuX3VzZXIgPSBwLT50b3RfbGVuIC0gdmFsdWVfdXNlcjsKKyAgICAgIH0KKyAgICAgIC8qIGZpbmQgcGFzcyBsZW4gKi8KKyAgICAgIHRtcCA9IHBidWZfbWVtZmluZChwLCAiJiIsIDEsIHZhbHVlX3Bhc3MpOworICAgICAgaWYgKHRtcCAhPSAweEZGRkYpIHsKKyAgICAgICAgbGVuX3Bhc3MgPSB0bXAgLSB2YWx1ZV9wYXNzOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgbGVuX3Bhc3MgPSBwLT50b3RfbGVuIC0gdmFsdWVfcGFzczsKKyAgICAgIH0KKyAgICAgIGlmICgobGVuX3VzZXIgPiAwKSAmJiAobGVuX3VzZXIgPCBVU0VSX1BBU1NfQlVGU0laRSkgJiYKKyAgICAgICAgICAobGVuX3Bhc3MgPiAwKSAmJiAobGVuX3Bhc3MgPCBVU0VSX1BBU1NfQlVGU0laRSkpIHsKKyAgICAgICAgLyogcHJvdmlkZSBjb250aWd1b3VzIHN0b3JhZ2UgaWYgcCBpcyBhIGNoYWluZWQgcGJ1ZiAqLworICAgICAgICBjaGFyIGJ1Zl91c2VyW1VTRVJfUEFTU19CVUZTSVpFXTsKKyAgICAgICAgY2hhciBidWZfcGFzc1tVU0VSX1BBU1NfQlVGU0laRV07CisgICAgICAgIGNoYXIgKnVzZXIgPSAoY2hhciAqKXBidWZfZ2V0X2NvbnRpZ3VvdXMocCwgYnVmX3VzZXIsIHNpemVvZihidWZfdXNlciksIGxlbl91c2VyLCB2YWx1ZV91c2VyKTsKKyAgICAgICAgY2hhciAqcGFzcyA9IChjaGFyICopcGJ1Zl9nZXRfY29udGlndW91cyhwLCBidWZfcGFzcywgc2l6ZW9mKGJ1Zl9wYXNzKSwgbGVuX3Bhc3MsIHZhbHVlX3Bhc3MpOworICAgICAgICBpZiAodXNlciAmJiBwYXNzKSB7CisgICAgICAgICAgdXNlcltsZW5fdXNlcl0gPSAwOworICAgICAgICAgIHBhc3NbbGVuX3Bhc3NdID0gMDsKKyAgICAgICAgICBpZiAoIXN0cmNtcCh1c2VyLCAibHdpcCIpICYmICFzdHJjbXAocGFzcywgInBvc3QiKSkgeworICAgICAgICAgICAgLyogdXNlciBhbmQgcGFzc3dvcmQgYXJlIGNvcnJlY3QsIGNyZWF0ZSBhICJzZXNzaW9uIiAqLworICAgICAgICAgICAgdmFsaWRfY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247CisgICAgICAgICAgICBtZW1jcHkobGFzdF91c2VyLCB1c2VyLCBzaXplb2YobGFzdF91c2VyKSk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfQorICAgIC8qIG5vdCByZXR1cm5pbmcgRVJSX09LIGFib3J0cyB0aGUgY29ubmVjdGlvbiwgc28gcmV0dXJuIEVSUl9PSyB1bmxlc3MgdGhlCisgICAgICAgY29ubmVjdGlvbiBpcyB1bmtub3duICovCisgICAgcmV0ID0gRVJSX09LOworICB9IGVsc2UgeworICAgIHJldCA9IEVSUl9WQUw7CisgIH0KKworICAvKiB0aGlzIGZ1bmN0aW9uIG11c3QgQUxXQVlTIGZyZWUgdGhlIHBidWYgaXQgaXMgcGFzc2VkIG9yIGl0IHdpbGwgbGVhayBtZW1vcnkgKi8KKyAgcGJ1Zl9mcmVlKHApOworCisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQKK2h0dHBkX3Bvc3RfZmluaXNoZWQodm9pZCAqY29ubmVjdGlvbiwgY2hhciAqcmVzcG9uc2VfdXJpLCB1MTZfdCByZXNwb25zZV91cmlfbGVuKQoreworICAvKiBkZWZhdWx0IHBhZ2UgaXMgImxvZ2luIGZhaWxlZCIgKi8KKyAgc25wcmludGYocmVzcG9uc2VfdXJpLCByZXNwb25zZV91cmlfbGVuLCAiL2xvZ2luZmFpbC5odG1sIik7CisgIGlmIChjdXJyZW50X2Nvbm5lY3Rpb24gPT0gY29ubmVjdGlvbikgeworICAgIGlmICh2YWxpZF9jb25uZWN0aW9uID09IGNvbm5lY3Rpb24pIHsKKyAgICAgIC8qIGxvZ2luIHN1Y2NlZWRlZCAqLworICAgICAgc25wcmludGYocmVzcG9uc2VfdXJpLCByZXNwb25zZV91cmlfbGVuLCAiL3Nlc3Npb24uaHRtbCIpOworICAgIH0KKyAgICBjdXJyZW50X2Nvbm5lY3Rpb24gPSBOVUxMOworICAgIHZhbGlkX2Nvbm5lY3Rpb24gPSBOVUxMOworICB9Cit9CisKKyNlbmRpZiAvKiBMV0lQX0hUVFBEX0VYQU1QTEVfU0lNUExFUE9TVCovCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2h0dHBkL3NzaV9leGFtcGxlL3NzaV9leGFtcGxlLmMgYi9jb250cmliL2V4YW1wbGVzL2h0dHBkL3NzaV9leGFtcGxlL3NzaV9leGFtcGxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAyNGUyZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvc3NpX2V4YW1wbGUvc3NpX2V4YW1wbGUuYwpAQCAtMCwwICsxLDI2NCBAQAorLyoqCisgKiBAZmlsZQorICogSFRUUEQgc2ltcGxlIFNTSSBleGFtcGxlCisgKgorICogVGhpcyBmaWxlIGRlbW9uc3RyYXRlcyBob3cgdG8gYWRkIHN1cHBvcnQgZm9yIFNTSS4KKyAqIEl0IGRvZXMgdGhpcyBpbiBhIHZlcnkgc2ltcGxlIHdheSBieSBwcm92aWRpbmcgdGhlIHRocmVlIHRhZ3MgJ0hlbGxvV29ybGQnCisgKiAnY291bnRlcicsIGFuZCAnTXVsdGlQYXJ0Jy4KKyAqCisgKiBUaGlzIGZpbGUgYWxzbyBkZW1vbnN0cmF0ZXMgaG93IHRvIGludGVncmF0ZSBDR0kgd2l0aCBTU0kuCisgKi8KKyAKKyAvKgorICogQ29weXJpZ2h0IChjKSAyMDE3IFNpbW9uIEdvbGRzY2htaWR0CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIAorICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICogCisgKiBBdXRob3I6IFNpbW9uIEdvbGRzY2htaWR0IDxnb2xkc2ltb25AZ214LmRlPgorICoKKyAqLworCisjaW5jbHVkZSAibHdpcC9vcHQuaCIKKyNpbmNsdWRlICJzc2lfZXhhbXBsZS5oIgorCisjaW5jbHVkZSAibHdpcC9hcHBzL2h0dHBkLmgiCisKKyNpbmNsdWRlICJsd2lwL2RlZi5oIgorI2luY2x1ZGUgImx3aXAvbWVtLmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisvKiogZGVmaW5lIExXSVBfSFRUUERfRVhBTVBMRV9TU0lfU0lNUExFIHRvIDEgdG8gZW5hYmxlIHRoaXMgc3NpIGV4YW1wbGUqLworI2lmbmRlZiBMV0lQX0hUVFBEX0VYQU1QTEVfU1NJX1NJTVBMRQorI2RlZmluZSBMV0lQX0hUVFBEX0VYQU1QTEVfU1NJX1NJTVBMRSAwCisjZW5kaWYKKworLyoqIGRlZmluZSBMV0lQX0hUVFBEX0VYQU1QTEVfU1NJX1NJTVBMRV9DR0lfSU5URUdSQVRJT04gdG8gMSB0byBzaG93IGhvdyB0bworICogaW50ZWdyYXRlIENHSSBpbnRvIFNTSSAoTFdJUF9IVFRQRF9DR0lfU1NJKSAqLworI2lmbmRlZiBMV0lQX0hUVFBEX0VYQU1QTEVfU1NJX1NJTVBMRV9DR0lfSU5URUdSQVRJT04KKyNkZWZpbmUgTFdJUF9IVFRQRF9FWEFNUExFX1NTSV9TSU1QTEVfQ0dJX0lOVEVHUkFUSU9OIDAKKyNlbmRpZgorCisjaWYgTFdJUF9IVFRQRF9FWEFNUExFX1NTSV9TSU1QTEUKKworI2lmIExXSVBfSFRUUERfRVhBTVBMRV9TU0lfU0lNUExFX0NHSV9JTlRFR1JBVElPTgorI2lmICFMV0lQX0hUVFBEX0ZJTEVfU1RBVEUKKyNlcnJvciBMV0lQX0hUVFBEX0VYQU1QTEVfU1NJX1NJTVBMRV9DR0lfSU5URUdSQVRJT04gbmVlZHMgTFdJUF9IVFRQRF9GSUxFX1NUQVRFCisjZW5kaWYKKyNpZiAhTFdJUF9IVFRQRF9DR0lfU1NJCisjZXJyb3IgTFdJUF9IVFRQRF9FWEFNUExFX1NTSV9TSU1QTEVfQ0dJX0lOVEVHUkFUSU9OIG5lZWRzIExXSVBfSFRUUERfQ0dJX1NTSQorI2VuZGlmCisKKyNkZWZpbmUgTUFYX0NHSV9MRU4gICAxNgorI2VuZGlmCisKK2NvbnN0IGNoYXIgKiBzc2lfZXhhbXBsZV90YWdzW10gPSB7CisgICJIZWxsV29ybCIsCisgICJjb3VudGVyIiwKKyAgIk11bHRQYXJ0IgorI2lmIExXSVBfSFRUUERfRVhBTVBMRV9TU0lfU0lNUExFX0NHSV9JTlRFR1JBVElPTgorICAsIkNnaVBhcmFtIgorI2VuZGlmCit9OworCit1MTZfdCBzc2lfZXhhbXBsZV9zc2lfaGFuZGxlcigKKyNpZiBMV0lQX0hUVFBEX1NTSV9SQVcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogc3NpX3RhZ19uYW1lLAorI2Vsc2UgLyogTFdJUF9IVFRQRF9TU0lfUkFXICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpSW5kZXgsCisjZW5kaWYgLyogTFdJUF9IVFRQRF9TU0lfUkFXICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnBjSW5zZXJ0LCBpbnQgaUluc2VydExlbgorI2lmIExXSVBfSFRUUERfU1NJX01VTFRJUEFSVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHUxNl90IGN1cnJlbnRfdGFnX3BhcnQsIHUxNl90ICpuZXh0X3RhZ19wYXJ0CisjZW5kaWYgLyogTFdJUF9IVFRQRF9TU0lfTVVMVElQQVJUICovCisjaWYgZGVmaW5lZChMV0lQX0hUVFBEX0ZJTEVfU1RBVEUpICYmIExXSVBfSFRUUERfRklMRV9TVEFURQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIHZvaWQgKmNvbm5lY3Rpb25fc3RhdGUKKyNlbmRpZiAvKiBMV0lQX0hUVFBEX0ZJTEVfU1RBVEUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQoreworICBzaXplX3QgcHJpbnRlZDsKKyNpZiBMV0lQX0hUVFBEX1NTSV9SQVcKKyAgLyogYSByZWFsIGFwcGxpY2F0aW9uIGNvdWxkIHVzZSBpZighc3RyY21wKSBibG9ja3MgaGVyZSwgYnV0IHdlIHdhbnQgdG8ga2VlcAorICAgICB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBjb25maWd1cmF0aW9ucyBzbWFsbCwgc28gdHJhbnNsYXRlIHN0cmluZyB0byBpbmRleCBoZXJlICovCisgIGludCBpSW5kZXg7CisgIGZvciAoaUluZGV4ID0gMDsgaUluZGV4IDwgTFdJUF9BUlJBWVNJWkUoc3NpX2V4YW1wbGVfdGFncyk7IGlJbmRleCsrKSB7CisgICAgaWYoIXN0cmNtcChzc2lfdGFnX25hbWUsIHNzaV9leGFtcGxlX3RhZ3NbaUluZGV4XSkpIHsKKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorI2VuZGlmCisjaWYgZGVmaW5lZChMV0lQX0hUVFBEX0ZJTEVfU1RBVEUpICYmIExXSVBfSFRUUERfRklMRV9TVEFURQorICBMV0lQX1VOVVNFRF9BUkcoY29ubmVjdGlvbl9zdGF0ZSk7CisjZW5kaWYKKworICBzd2l0Y2ggKGlJbmRleCkgeworICBjYXNlIDA6IC8qICJIZWxsb1dvcmxkIiAqLworICAgIHByaW50ZWQgPSBzbnByaW50ZihwY0luc2VydCwgaUluc2VydExlbiwgIkhlbGxvIFdvcmxkISIpOworICAgIGJyZWFrOworICBjYXNlIDE6IC8qICJjb3VudGVyIiAqLworICAgIHsKKyAgICAgIHN0YXRpYyBpbnQgY291bnRlcjsKKyAgICAgIGNvdW50ZXIrKzsKKyAgICAgIHByaW50ZWQgPSBzbnByaW50ZihwY0luc2VydCwgaUluc2VydExlbiwgIiVkIiwgY291bnRlcik7CisgICAgfQorICAgIGJyZWFrOworICBjYXNlIDI6IC8qICJNdWx0UGFydCIgKi8KKyNpZiBMV0lQX0hUVFBEX1NTSV9NVUxUSVBBUlQKKyAgICBzd2l0Y2ggKGN1cnJlbnRfdGFnX3BhcnQpIHsKKyAgICBjYXNlIDA6CisgICAgICBwcmludGVkID0gc25wcmludGYocGNJbnNlcnQsIGlJbnNlcnRMZW4sICJwYXJ0MCIpOworICAgICAgKm5leHRfdGFnX3BhcnQgPSAxOworICAgICAgYnJlYWs7CisgICAgY2FzZSAxOgorICAgICAgcHJpbnRlZCA9IHNucHJpbnRmKHBjSW5zZXJ0LCBpSW5zZXJ0TGVuLCAicGFydDEiKTsKKyAgICAgICpuZXh0X3RhZ19wYXJ0ID0gMjsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgMjoKKyAgICAgIHByaW50ZWQgPSBzbnByaW50ZihwY0luc2VydCwgaUluc2VydExlbiwgInBhcnQyIik7CisgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgcHJpbnRlZCA9IHNucHJpbnRmKHBjSW5zZXJ0LCBpSW5zZXJ0TGVuLCAidW5oYW5kbGVkIHBhcnQ6ICVkIiwgKGludCljdXJyZW50X3RhZ19wYXJ0KTsKKyAgICAgIGJyZWFrOworICAgIH0KKyNlbHNlCisgICAgcHJpbnRlZCA9IHNucHJpbnRmKHBjSW5zZXJ0LCBpSW5zZXJ0TGVuLCAiTFdJUF9IVFRQRF9TU0lfTVVMVElQQVJUIGRpc2FibGVkIik7CisjZW5kaWYKKyAgICBicmVhazsKKyNpZiBMV0lQX0hUVFBEX0VYQU1QTEVfU1NJX1NJTVBMRV9DR0lfSU5URUdSQVRJT04KKyAgY2FzZSAzOgorICAgIGlmIChjb25uZWN0aW9uX3N0YXRlKSB7CisgICAgICBjaGFyICpwYXJhbXMgPSAoY2hhciAqKWNvbm5lY3Rpb25fc3RhdGU7CisgICAgICBpZiAoKnBhcmFtcykgeworICAgICAgICBwcmludGVkID0gc25wcmludGYocGNJbnNlcnQsIGlJbnNlcnRMZW4sICIlcyIsIChjaGFyICopcGFyYW1zKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50ZWQgPSBzbnByaW50ZihwY0luc2VydCwgaUluc2VydExlbiwgIm5vbmUiKTsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgIHByaW50ZWQgPSBzbnByaW50ZihwY0luc2VydCwgaUluc2VydExlbiwgIk5VTEwiKTsKKyAgICB9CisgICAgYnJlYWs7CisjZW5kaWYKKyAgZGVmYXVsdDogLyogdW5rbm93biB0YWcgKi8KKyAgICBwcmludGVkID0gMDsKKyAgICBicmVhazsKKyAgfQorICBMV0lQX0FTU0VSVCgic2FuZSBsZW5ndGgiLCBwcmludGVkIDw9IDB4RkZGRik7CisgIHJldHVybiAodTE2X3QpcHJpbnRlZDsKK30KKwordm9pZAorc3NpX2V4X2luaXQodm9pZCkKK3sKKyAgaW50IGk7CisgIGZvciAoaSA9IDA7IGkgPCBMV0lQX0FSUkFZU0laRShzc2lfZXhhbXBsZV90YWdzKTsgaSsrKSB7CisgICAgTFdJUF9BU1NFUlQoInRhZyB0b28gbG9uZyBmb3IgTFdJUF9IVFRQRF9NQVhfVEFHX05BTUVfTEVOIiwKKyAgICAgIHN0cmxlbihzc2lfZXhhbXBsZV90YWdzW2ldKSA8PSBMV0lQX0hUVFBEX01BWF9UQUdfTkFNRV9MRU4pOworICB9CisKKyAgaHR0cF9zZXRfc3NpX2hhbmRsZXIoc3NpX2V4YW1wbGVfc3NpX2hhbmRsZXIsCisjaWYgTFdJUF9IVFRQRF9TU0lfUkFXCisgICAgTlVMTCwgMAorI2Vsc2UKKyAgICBzc2lfZXhhbXBsZV90YWdzLCBMV0lQX0FSUkFZU0laRShzc2lfZXhhbXBsZV90YWdzKQorI2VuZGlmCisgICAgKTsKK30KKworI2lmIExXSVBfSFRUUERfRVhBTVBMRV9TU0lfU0lNUExFX0NHSV9JTlRFR1JBVElPTgordm9pZCAqCitmc19zdGF0ZV9pbml0KHN0cnVjdCBmc19maWxlICpmaWxlLCBjb25zdCBjaGFyICpuYW1lKQoreworICBjaGFyICpyZXQ7CisgIExXSVBfVU5VU0VEX0FSRyhmaWxlKTsKKyAgTFdJUF9VTlVTRURfQVJHKG5hbWUpOworICByZXQgPSAoY2hhciAqKW1lbV9tYWxsb2MoTUFYX0NHSV9MRU4pOworICBpZiAocmV0KSB7CisgICAgKnJldCA9IDA7CisgIH0KKyAgcmV0dXJuIHJldDsKK30KKwordm9pZAorZnNfc3RhdGVfZnJlZShzdHJ1Y3QgZnNfZmlsZSAqZmlsZSwgdm9pZCAqc3RhdGUpCit7CisgIExXSVBfVU5VU0VEX0FSRyhmaWxlKTsKKyAgaWYgKHN0YXRlICE9IE5VTEwpIHsKKyAgICBtZW1fZnJlZShzdGF0ZSk7CisgIH0KK30KKwordm9pZAoraHR0cGRfY2dpX2hhbmRsZXIoc3RydWN0IGZzX2ZpbGUgKmZpbGUsIGNvbnN0IGNoYXIqIHVyaSwgaW50IGlOdW1QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqcGNQYXJhbSwgY2hhciAqKnBjVmFsdWUKKyNpZiBkZWZpbmVkKExXSVBfSFRUUERfRklMRV9TVEFURSkgJiYgTFdJUF9IVFRQRF9GSUxFX1NUQVRFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCB2b2lkICpjb25uZWN0aW9uX3N0YXRlCisjZW5kaWYgLyogTFdJUF9IVFRQRF9GSUxFX1NUQVRFICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQoreworICBMV0lQX1VOVVNFRF9BUkcoZmlsZSk7CisgIExXSVBfVU5VU0VEX0FSRyh1cmkpOworICBpZiAoY29ubmVjdGlvbl9zdGF0ZSAhPSBOVUxMKSB7CisgICAgY2hhciAqc3RhcnQgPSAoY2hhciAqKWNvbm5lY3Rpb25fc3RhdGU7CisgICAgY2hhciAqZW5kID0gc3RhcnQgKyBNQVhfQ0dJX0xFTjsKKyAgICBpbnQgaTsKKyAgICBtZW1zZXQoc3RhcnQsIDAsIE1BWF9DR0lfTEVOKTsKKyAgICAvKiBwcmludCBhIHN0cmluZyBvZiB0aGUgYXJndW1lbnRzOiAqLworICAgIGZvciAoaSA9IDA7IGkgPCBpTnVtUGFyYW1zOyBpKyspIHsKKyAgICAgIHNpemVfdCBsZW47CisgICAgICBsZW4gPSBlbmQgLSBzdGFydDsKKyAgICAgIGlmIChsZW4pIHsKKyAgICAgICAgc2l6ZV90IGlubGVuID0gc3RybGVuKHBjUGFyYW1baV0pOworICAgICAgICBzaXplX3QgY29weWxlbiA9IExXSVBfTUlOKGlubGVuLCBsZW4pOworICAgICAgICBtZW1jcHkoc3RhcnQsIHBjUGFyYW1baV0sIGNvcHlsZW4pOworICAgICAgICBzdGFydCArPSBjb3B5bGVuOworICAgICAgICBsZW4gLT0gY29weWxlbjsKKyAgICAgIH0KKyAgICAgIGlmIChsZW4pIHsKKyAgICAgICAgKnN0YXJ0ID0gJz0nOworICAgICAgICBzdGFydCsrOworICAgICAgICBsZW4tLTsKKyAgICAgIH0KKyAgICAgIGlmIChsZW4pIHsKKyAgICAgICAgc2l6ZV90IGlubGVuID0gc3RybGVuKHBjVmFsdWVbaV0pOworICAgICAgICBzaXplX3QgY29weWxlbiA9IExXSVBfTUlOKGlubGVuLCBsZW4pOworICAgICAgICBtZW1jcHkoc3RhcnQsIHBjVmFsdWVbaV0sIGNvcHlsZW4pOworICAgICAgICBzdGFydCArPSBjb3B5bGVuOworICAgICAgICBsZW4gLT0gY29weWxlbjsKKyAgICAgIH0KKyAgICAgIGlmIChsZW4pIHsKKyAgICAgICAgKnN0YXJ0ID0gJzsnOworICAgICAgICBsZW4tLTsKKyAgICAgIH0KKyAgICAgIC8qIGVuc3VyZSBOVUxMIHRlcm1pbmF0aW9uICovCisgICAgICBlbmQtLTsKKyAgICAgICplbmQgPSAwOworICAgIH0KKyAgfQorfQorI2VuZGlmIC8qIExXSVBfSFRUUERfRVhBTVBMRV9TU0lfU0lNUExFX0NHSV9JTlRFR1JBVElPTiAqLworCisjZW5kaWYgLyogTFdJUF9IVFRQRF9FWEFNUExFX1NTSV9TSU1QTEUgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvc3NpX2V4YW1wbGUvc3NpX2V4YW1wbGUuaCBiL2NvbnRyaWIvZXhhbXBsZXMvaHR0cGQvc3NpX2V4YW1wbGUvc3NpX2V4YW1wbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2VjMjk4Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9odHRwZC9zc2lfZXhhbXBsZS9zc2lfZXhhbXBsZS5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU2ltb24gR29sZHNjaG1pZHQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgCisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCAKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiAKKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKiAKKyAqIEF1dGhvcjogU2ltb24gR29sZHNjaG1pZHQgPGdvbGRzaW1vbkBnbXguZGU+CisgKgorICovCisKKyNpZm5kZWYgTFdJUF9IRFJfSFRUUF9FWEFNUExFU19TU0lfRVhBTVBMRQorI2RlZmluZSBMV0lQX0hEUl9IVFRQX0VYQU1QTEVTX1NTSV9FWEFNUExFCisKK3ZvaWQgc3NpX2V4X2luaXQodm9pZCk7CisKKyNlbmRpZiAvKiBMV0lQX0hEUl9IVFRQX0VYQU1QTEVTX1NTSV9FWEFNUExFICovCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL2x3aXBlcmYvbHdpcGVyZl9leGFtcGxlLmMgYi9jb250cmliL2V4YW1wbGVzL2x3aXBlcmYvbHdpcGVyZl9leGFtcGxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTMzYmM2ZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvbHdpcGVyZi9sd2lwZXJmX2V4YW1wbGUuYwpAQCAtMCwwICsxLDUwIEBACisvKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCAKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIAorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSAKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqIAorICogQXV0aG9yOiBEaXJrIFppZWdlbG1laWVyIDxkemllZ2VsQGdteC5kZT4KKyAqCisgKi8KKworI2luY2x1ZGUgImx3aXAvYXBwcy9sd2lwZXJmLmgiCisjaW5jbHVkZSAibHdpcGVyZl9leGFtcGxlLmgiCisKK3N0YXRpYyB2b2lkCitsd2lwZXJmX3JlcG9ydCh2b2lkICphcmcsIGVudW0gbHdpcGVyZl9yZXBvcnRfdHlwZSByZXBvcnRfdHlwZSwKKyAgY29uc3QgaXBfYWRkcl90KiBsb2NhbF9hZGRyLCB1MTZfdCBsb2NhbF9wb3J0LCBjb25zdCBpcF9hZGRyX3QqIHJlbW90ZV9hZGRyLCB1MTZfdCByZW1vdGVfcG9ydCwKKyAgdTMyX3QgYnl0ZXNfdHJhbnNmZXJyZWQsIHUzMl90IG1zX2R1cmF0aW9uLCB1MzJfdCBiYW5kd2lkdGhfa2JpdHBzZWMpCit7CisgIExXSVBfVU5VU0VEX0FSRyhhcmcpOworICBMV0lQX1VOVVNFRF9BUkcobG9jYWxfYWRkcik7CisgIExXSVBfVU5VU0VEX0FSRyhsb2NhbF9wb3J0KTsKKworICBMV0lQX1BMQVRGT1JNX0RJQUcoKCJJUEVSRiByZXBvcnQ6IHR5cGU9JWQsIHJlbW90ZTogJXM6JWQsIHRvdGFsIGJ5dGVzOiAlIlUzMl9GIiwgZHVyYXRpb24gaW4gbXM6ICUiVTMyX0YiLCBrYml0cy9zOiAlIlUzMl9GIlxuIiwKKyAgICAoaW50KXJlcG9ydF90eXBlLCBpcGFkZHJfbnRvYShyZW1vdGVfYWRkciksIChpbnQpcmVtb3RlX3BvcnQsIGJ5dGVzX3RyYW5zZmVycmVkLCBtc19kdXJhdGlvbiwgYmFuZHdpZHRoX2tiaXRwc2VjKSk7Cit9CisKK3ZvaWQKK2x3aXBlcmZfZXhhbXBsZV9pbml0KHZvaWQpCit7CisgIGx3aXBlcmZfc3RhcnRfdGNwX3NlcnZlcl9kZWZhdWx0KGx3aXBlcmZfcmVwb3J0LCBOVUxMKTsKK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvbHdpcGVyZi9sd2lwZXJmX2V4YW1wbGUuaCBiL2NvbnRyaWIvZXhhbXBsZXMvbHdpcGVyZi9sd2lwZXJmX2V4YW1wbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2IzNWM4Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9sd2lwZXJmL2x3aXBlcmZfZXhhbXBsZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIAorICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICogCisgKiBBdXRob3I6IERpcmsgWmllZ2VsbWVpZXIgPGR6aWVnZWxAZ214LmRlPgorICoKKyAqLworCisjaWZuZGVmIExXSVBFUkZfRVhBTVBMRV9ICisjZGVmaW5lIExXSVBFUkZfRVhBTVBMRV9ICisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordm9pZCBsd2lwZXJmX2V4YW1wbGVfaW5pdCh2b2lkKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIExXSVBFUkZfRVhBTVBMRV9IICovCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL21kbnMvbWRuc19leGFtcGxlLmMgYi9jb250cmliL2V4YW1wbGVzL21kbnMvbWRuc19leGFtcGxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk2MjVlZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvbWRucy9tZG5zX2V4YW1wbGUuYwpAQCAtMCwwICsxLDYzIEBACisvKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCAKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIAorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSAKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqIAorICogQXV0aG9yOiBEaXJrIFppZWdlbG1laWVyIDxkemllZ2VsQGdteC5kZT4KKyAqCisgKi8KKworI2luY2x1ZGUgImx3aXAvYXBwcy9tZG5zLmgiCisjaW5jbHVkZSAibWRuc19leGFtcGxlLmgiCisKKyNpZiBMV0lQX01ETlNfUkVTUE9OREVSCitzdGF0aWMgdm9pZAorc3J2X3R4dChzdHJ1Y3QgbWRuc19zZXJ2aWNlICpzZXJ2aWNlLCB2b2lkICp0eHRfdXNlcmRhdGEpCit7CisgIGVycl90IHJlczsKKyAgTFdJUF9VTlVTRURfQVJHKHR4dF91c2VyZGF0YSk7CisgIAorICByZXMgPSBtZG5zX3Jlc3BfYWRkX3NlcnZpY2VfdHh0aXRlbShzZXJ2aWNlLCAicGF0aD0vIiwgNik7CisgIExXSVBfRVJST1IoIm1kbnMgYWRkIHNlcnZpY2UgdHh0IGZhaWxlZFxuIiwgKHJlcyA9PSBFUlJfT0spLCByZXR1cm4pOworfQorI2VuZGlmCisKKyNpZiBMV0lQX01ETlNfUkVTUE9OREVSCitzdGF0aWMgdm9pZAorbWRuc19leGFtcGxlX3JlcG9ydChzdHJ1Y3QgbmV0aWYqIG5ldGlmLCB1OF90IHJlc3VsdCwgczhfdCBzZXJ2aWNlKQoreworICBMV0lQX1BMQVRGT1JNX0RJQUcoKCJtZG5zIHN0YXR1c1tuZXRpZiAlZF1bc2VydmljZSAlZF06ICVkXG4iLCBuZXRpZi0+bnVtLCBzZXJ2aWNlLCByZXN1bHQpKTsKK30KKyNlbmRpZgorCit2b2lkCittZG5zX2V4YW1wbGVfaW5pdCh2b2lkKQoreworI2lmIExXSVBfTUROU19SRVNQT05ERVIKKyAgbWRuc19yZXNwX3JlZ2lzdGVyX25hbWVfcmVzdWx0X2NiKG1kbnNfZXhhbXBsZV9yZXBvcnQpOworICBtZG5zX3Jlc3BfaW5pdCgpOworICBtZG5zX3Jlc3BfYWRkX25ldGlmKG5ldGlmX2RlZmF1bHQsICJsd2lwIik7CisgIG1kbnNfcmVzcF9hZGRfc2VydmljZShuZXRpZl9kZWZhdWx0LCAibXl3ZWIiLCAiX2h0dHAiLCBETlNTRF9QUk9UT19UQ1AsIDgwLCBzcnZfdHh0LCBOVUxMKTsKKyAgbWRuc19yZXNwX2Fubm91bmNlKG5ldGlmX2RlZmF1bHQpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL21kbnMvbWRuc19leGFtcGxlLmggYi9jb250cmliL2V4YW1wbGVzL21kbnMvbWRuc19leGFtcGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWI1MWFkZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvbWRucy9tZG5zX2V4YW1wbGUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCAKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIAorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSAKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqIAorICogQXV0aG9yOiBEaXJrIFppZWdlbG1laWVyIDxkemllZ2VsQGdteC5kZT4KKyAqCisgKi8KKworI2lmbmRlZiBNRE5TX0VYQU1QTEVfSAorI2RlZmluZSBNRE5TX0VYQU1QTEVfSAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3ZvaWQgbWRuc19leGFtcGxlX2luaXQodm9pZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBNRE5TX0VYQU1QTEVfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9tcXR0L21xdHRfZXhhbXBsZS5jIGIvY29udHJpYi9leGFtcGxlcy9tcXR0L21xdHRfZXhhbXBsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMjc3ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL21xdHQvbXF0dF9leGFtcGxlLmMKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IERpcmsgWmllZ2VsbWVpZXIgPGR6aWVnZWxAZ214LmRlPgorICoKKyAqLworCisjaW5jbHVkZSAibHdpcC9hcHBzL21xdHQuaCIKKyNpbmNsdWRlICJtcXR0X2V4YW1wbGUuaCIKKworI2lmIExXSVBfVENQCisKKy8qKiBEZWZpbmUgdGhpcyB0byBhIGNvbXBpbGUtdGltZSBJUCBhZGRyZXNzIGluaXRpYWxpemF0aW9uCisgKiB0byBjb25uZWN0IGFueXRoaW5nIGVsc2UgdGhhbiBJUHY0IGxvb3BiYWNrCisgKi8KKyNpZm5kZWYgTFdJUF9NUVRUX0VYQU1QTEVfSVBBRERSX0lOSVQKKyNpZiBMV0lQX0lQVjQKKyNkZWZpbmUgTFdJUF9NUVRUX0VYQU1QTEVfSVBBRERSX0lOSVQgPSBJUEFERFI0X0lOSVQoUFBfSFRPTkwoSVBBRERSX0xPT1BCQUNLKSkKKyNlbHNlCisjZGVmaW5lIExXSVBfTVFUVF9FWEFNUExFX0lQQUREUl9JTklUCisjZW5kaWYKKyNlbmRpZgorCitzdGF0aWMgaXBfYWRkcl90IG1xdHRfaXAgTFdJUF9NUVRUX0VYQU1QTEVfSVBBRERSX0lOSVQ7CitzdGF0aWMgbXF0dF9jbGllbnRfdCogbXF0dF9jbGllbnQ7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXF0dF9jb25uZWN0X2NsaWVudF9pbmZvX3QgbXF0dF9jbGllbnRfaW5mbyA9Cit7CisgICJ0ZXN0IiwKKyAgTlVMTCwgLyogdXNlciAqLworICBOVUxMLCAvKiBwYXNzICovCisgIDEwMCwgIC8qIGtlZXAgYWxpdmUgKi8KKyAgTlVMTCwgLyogd2lsbF90b3BpYyAqLworICBOVUxMLCAvKiB3aWxsX21zZyAqLworICAwLCAgICAvKiB3aWxsX3FvcyAqLworICAwICAgICAvKiB3aWxsX3JldGFpbiAqLworI2lmIExXSVBfQUxUQ1AgJiYgTFdJUF9BTFRDUF9UTFMKKyAgLCBOVUxMCisjZW5kaWYKK307CisKK3N0YXRpYyB2b2lkCittcXR0X2luY29taW5nX2RhdGFfY2Iodm9pZCAqYXJnLCBjb25zdCB1OF90ICpkYXRhLCB1MTZfdCBsZW4sIHU4X3QgZmxhZ3MpCit7CisgIGNvbnN0IHN0cnVjdCBtcXR0X2Nvbm5lY3RfY2xpZW50X2luZm9fdCogY2xpZW50X2luZm8gPSAoY29uc3Qgc3RydWN0IG1xdHRfY29ubmVjdF9jbGllbnRfaW5mb190Kilhcmc7CisgIExXSVBfVU5VU0VEX0FSRyhkYXRhKTsKKworICBMV0lQX1BMQVRGT1JNX0RJQUcoKCJNUVRUIGNsaWVudCBcIiVzXCIgZGF0YSBjYjogbGVuICVkLCBmbGFncyAlZFxuIiwgY2xpZW50X2luZm8tPmNsaWVudF9pZCwKKyAgICAgICAgICAoaW50KWxlbiwgKGludClmbGFncykpOworfQorCitzdGF0aWMgdm9pZAorbXF0dF9pbmNvbWluZ19wdWJsaXNoX2NiKHZvaWQgKmFyZywgY29uc3QgY2hhciAqdG9waWMsIHUzMl90IHRvdF9sZW4pCit7CisgIGNvbnN0IHN0cnVjdCBtcXR0X2Nvbm5lY3RfY2xpZW50X2luZm9fdCogY2xpZW50X2luZm8gPSAoY29uc3Qgc3RydWN0IG1xdHRfY29ubmVjdF9jbGllbnRfaW5mb190Kilhcmc7CisKKyAgTFdJUF9QTEFURk9STV9ESUFHKCgiTVFUVCBjbGllbnQgXCIlc1wiIHB1Ymxpc2ggY2I6IHRvcGljICVzLCBsZW4gJWRcbiIsIGNsaWVudF9pbmZvLT5jbGllbnRfaWQsCisgICAgICAgICAgdG9waWMsIChpbnQpdG90X2xlbikpOworfQorCitzdGF0aWMgdm9pZAorbXF0dF9yZXF1ZXN0X2NiKHZvaWQgKmFyZywgZXJyX3QgZXJyKQoreworICBjb25zdCBzdHJ1Y3QgbXF0dF9jb25uZWN0X2NsaWVudF9pbmZvX3QqIGNsaWVudF9pbmZvID0gKGNvbnN0IHN0cnVjdCBtcXR0X2Nvbm5lY3RfY2xpZW50X2luZm9fdCopYXJnOworCisgIExXSVBfUExBVEZPUk1fRElBRygoIk1RVFQgY2xpZW50IFwiJXNcIiByZXF1ZXN0IGNiOiBlcnIgJWRcbiIsIGNsaWVudF9pbmZvLT5jbGllbnRfaWQsIChpbnQpZXJyKSk7Cit9CisKK3N0YXRpYyB2b2lkCittcXR0X2Nvbm5lY3Rpb25fY2IobXF0dF9jbGllbnRfdCAqY2xpZW50LCB2b2lkICphcmcsIG1xdHRfY29ubmVjdGlvbl9zdGF0dXNfdCBzdGF0dXMpCit7CisgIGNvbnN0IHN0cnVjdCBtcXR0X2Nvbm5lY3RfY2xpZW50X2luZm9fdCogY2xpZW50X2luZm8gPSAoY29uc3Qgc3RydWN0IG1xdHRfY29ubmVjdF9jbGllbnRfaW5mb190Kilhcmc7CisgIExXSVBfVU5VU0VEX0FSRyhjbGllbnQpOworCisgIExXSVBfUExBVEZPUk1fRElBRygoIk1RVFQgY2xpZW50IFwiJXNcIiBjb25uZWN0aW9uIGNiOiBzdGF0dXMgJWRcbiIsIGNsaWVudF9pbmZvLT5jbGllbnRfaWQsIChpbnQpc3RhdHVzKSk7CisKKyAgaWYgKHN0YXR1cyA9PSBNUVRUX0NPTk5FQ1RfQUNDRVBURUQpIHsKKyAgICBtcXR0X3N1Yl91bnN1YihjbGllbnQsCisgICAgICAgICAgICAidG9waWNfcW9zMSIsIDEsCisgICAgICAgICAgICBtcXR0X3JlcXVlc3RfY2IsIExXSVBfQ09OU1RfQ0FTVCh2b2lkKiwgY2xpZW50X2luZm8pLAorICAgICAgICAgICAgMSk7CisgICAgbXF0dF9zdWJfdW5zdWIoY2xpZW50LAorICAgICAgICAgICAgInRvcGljX3FvczAiLCAwLAorICAgICAgICAgICAgbXF0dF9yZXF1ZXN0X2NiLCBMV0lQX0NPTlNUX0NBU1Qodm9pZCosIGNsaWVudF9pbmZvKSwKKyAgICAgICAgICAgIDEpOworICB9Cit9CisjZW5kaWYgLyogTFdJUF9UQ1AgKi8KKwordm9pZAorbXF0dF9leGFtcGxlX2luaXQodm9pZCkKK3sKKyNpZiBMV0lQX1RDUAorICBtcXR0X2NsaWVudCA9IG1xdHRfY2xpZW50X25ldygpOworCisgIG1xdHRfc2V0X2lucHViX2NhbGxiYWNrKG1xdHRfY2xpZW50LAorICAgICAgICAgIG1xdHRfaW5jb21pbmdfcHVibGlzaF9jYiwKKyAgICAgICAgICBtcXR0X2luY29taW5nX2RhdGFfY2IsCisgICAgICAgICAgTFdJUF9DT05TVF9DQVNUKHZvaWQqLCAmbXF0dF9jbGllbnRfaW5mbykpOworCisgIG1xdHRfY2xpZW50X2Nvbm5lY3QobXF0dF9jbGllbnQsCisgICAgICAgICAgJm1xdHRfaXAsIE1RVFRfUE9SVCwKKyAgICAgICAgICBtcXR0X2Nvbm5lY3Rpb25fY2IsIExXSVBfQ09OU1RfQ0FTVCh2b2lkKiwgJm1xdHRfY2xpZW50X2luZm8pLAorICAgICAgICAgICZtcXR0X2NsaWVudF9pbmZvKTsKKyNlbmRpZiAvKiBMV0lQX1RDUCAqLworfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9tcXR0L21xdHRfZXhhbXBsZS5oIGIvY29udHJpYi9leGFtcGxlcy9tcXR0L21xdHRfZXhhbXBsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5NzY3OGIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL21xdHQvbXF0dF9leGFtcGxlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sIAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgCisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiAKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCAKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiAKKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKiAKKyAqIEF1dGhvcjogRGlyayBaaWVnZWxtZWllciA8ZHppZWdlbEBnbXguZGU+CisgKgorICovCisKKyNpZm5kZWYgTVFUVF9FWEFNUExFX0gKKyNkZWZpbmUgTVFUVF9FWEFNUExFX0gKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit2b2lkIG1xdHRfZXhhbXBsZV9pbml0KHZvaWQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTVFUVF9FWEFNUExFX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvcHBwL3BwcG9zX2V4YW1wbGUuYyBiL2NvbnRyaWIvZXhhbXBsZXMvcHBwL3BwcG9zX2V4YW1wbGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDE4Y2U1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9wcHAvcHBwb3NfZXhhbXBsZS5jCkBAIC0wLDAgKzEsMjIxIEBACisvKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBEaXJrIFppZWdlbG1laWVyIDxkemllZ2VsQGdteC5kZT4KKyAqCisgKi8KKworI2luY2x1ZGUgImx3aXAvZG5zLmgiCisKKyNpZm5kZWYgUFBQT1NfU1VQUE9SVAorI2RlZmluZSBQUFBPU19TVVBQT1JUIDAKKyNlbmRpZiAvKiBQUFBPU19TVVBQT1JUICovCisKKyNpZiBQUFBPU19TVVBQT1JUCisjaW5jbHVkZSAibmV0aWYvcHBwL3BwcG9zLmgiCisjaW5jbHVkZSAibHdpcC9zaW8uaCIKKyNkZWZpbmUgUFBQX1BUWV9URVNUIDEKKyNlbmRpZiAvKiBQUFBPU19TVVBQT1JUICovCisKKyNpbmNsdWRlICJwcHBvc19leGFtcGxlLmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorCisjaWYgUFBQT1NfU1VQUE9SVAorc3RhdGljIHNpb19mZF90IHBwcF9zaW87CitzdGF0aWMgcHBwX3BjYiAqcHBwOworc3RhdGljIHN0cnVjdCBuZXRpZiBwcHBvc19uZXRpZjsKKworc3RhdGljIHZvaWQKK3BwcG9zX3J4X3RocmVhZCh2b2lkICphcmcpCit7CisgIHUzMl90IGxlbjsKKyAgdThfdCBidWZmZXJbMTI4XTsKKyAgTFdJUF9VTlVTRURfQVJHKGFyZyk7CisKKyAgLyogUGxlYXNlIHJlYWQgdGhlICJQUFBvUyBpbnB1dCBwYXRoIiBjaGFwdGVyIGluIHRoZSBQUFAgZG9jdW1lbnRhdGlvbi4gKi8KKyAgd2hpbGUgKDEpIHsKKyAgICBsZW4gPSBzaW9fcmVhZChwcHBfc2lvLCBidWZmZXIsIHNpemVvZihidWZmZXIpKTsKKyAgICBpZiAobGVuID4gMCkgeworICAgICAgLyogUGFzcyByZWNlaXZlZCByYXcgY2hhcmFjdGVycyBmcm9tIFBQUG9TIHRvIGJlIGRlY29kZWQgdGhyb3VnaCBsd0lQCisgICAgICAgKiBUQ1BJUCB0aHJlYWQgdXNpbmcgdGhlIFRDUElQIEFQSS4gVGhpcyBpcyB0aHJlYWQgc2FmZSBpbiBhbGwgY2FzZXMKKyAgICAgICAqIGJ1dCB5b3Ugc2hvdWxkIGF2b2lkIHBhc3NpbmcgZGF0YSBieXRlIGFmdGVyIGJ5dGUuICovCisgICAgICBwcHBvc19pbnB1dF90Y3BpcChwcHAsIGJ1ZmZlciwgbGVuKTsKKyAgICB9CisgIH0KK30KKworc3RhdGljIHZvaWQKK3BwcF9saW5rX3N0YXR1c19jYihwcHBfcGNiICpwY2IsIGludCBlcnJfY29kZSwgdm9pZCAqY3R4KQoreworICAgIHN0cnVjdCBuZXRpZiAqcHBwaWYgPSBwcHBfbmV0aWYocGNiKTsKKyAgICBMV0lQX1VOVVNFRF9BUkcoY3R4KTsKKworICAgIHN3aXRjaChlcnJfY29kZSkgeworICAgIGNhc2UgUFBQRVJSX05PTkU6ICAgICAgICAgICAgICAgLyogTm8gZXJyb3IuICovCisgICAgICAgIHsKKyNpZiBMV0lQX0ROUworICAgICAgICBjb25zdCBpcF9hZGRyX3QgKm5zOworI2VuZGlmIC8qIExXSVBfRE5TICovCisgICAgICAgIGZwcmludGYoc3RkZXJyLCAicHBwX2xpbmtfc3RhdHVzX2NiOiBQUFBFUlJfTk9ORVxuXHIiKTsKKyNpZiBMV0lQX0lQVjQKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIgICBvdXJfaXA0YWRkciA9ICVzXG5cciIsIGlwNGFkZHJfbnRvYShuZXRpZl9pcDRfYWRkcihwcHBpZikpKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIgICBoaXNfaXBhZGRyICA9ICVzXG5cciIsIGlwNGFkZHJfbnRvYShuZXRpZl9pcDRfZ3cocHBwaWYpKSk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICAgbmV0bWFzayAgICAgPSAlc1xuXHIiLCBpcDRhZGRyX250b2EobmV0aWZfaXA0X25ldG1hc2socHBwaWYpKSk7CisjZW5kaWYgLyogTFdJUF9JUFY0ICovCisjaWYgTFdJUF9JUFY2CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICAgb3VyX2lwNmFkZHIgPSAlc1xuXHIiLCBpcDZhZGRyX250b2EobmV0aWZfaXA2X2FkZHIocHBwaWYsIDApKSk7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisKKyNpZiBMV0lQX0ROUworICAgICAgICBucyA9IGRuc19nZXRzZXJ2ZXIoMCk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICAgZG5zMSAgICAgICAgPSAlc1xuXHIiLCBpcGFkZHJfbnRvYShucykpOworICAgICAgICBucyA9IGRuc19nZXRzZXJ2ZXIoMSk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICAgZG5zMiAgICAgICAgPSAlc1xuXHIiLCBpcGFkZHJfbnRvYShucykpOworI2VuZGlmIC8qIExXSVBfRE5TICovCisjaWYgUFBQX0lQVjZfU1VQUE9SVAorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiAgIG91cjZfaXBhZGRyID0gJXNcblxyIiwgaXA2YWRkcl9udG9hKG5ldGlmX2lwNl9hZGRyKHBwcGlmLCAwKSkpOworI2VuZGlmIC8qIFBQUF9JUFY2X1NVUFBPUlQgKi8KKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIGNhc2UgUFBQRVJSX1BBUkFNOiAgICAgICAgICAgICAvKiBJbnZhbGlkIHBhcmFtZXRlci4gKi8KKyAgICAgICAgcHJpbnRmKCJwcHBfbGlua19zdGF0dXNfY2I6IFBQUEVSUl9QQVJBTVxuIik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQUFBFUlJfT1BFTjogICAgICAgICAgICAgIC8qIFVuYWJsZSB0byBvcGVuIFBQUCBzZXNzaW9uLiAqLworICAgICAgICBwcmludGYoInBwcF9saW5rX3N0YXR1c19jYjogUFBQRVJSX09QRU5cbiIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUFBQRVJSX0RFVklDRTogICAgICAgICAgICAvKiBJbnZhbGlkIEkvTyBkZXZpY2UgZm9yIFBQUC4gKi8KKyAgICAgICAgcHJpbnRmKCJwcHBfbGlua19zdGF0dXNfY2I6IFBQUEVSUl9ERVZJQ0VcbiIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUFBQRVJSX0FMTE9DOiAgICAgICAgICAgICAvKiBVbmFibGUgdG8gYWxsb2NhdGUgcmVzb3VyY2VzLiAqLworICAgICAgICBwcmludGYoInBwcF9saW5rX3N0YXR1c19jYjogUFBQRVJSX0FMTE9DXG4iKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBQUEVSUl9VU0VSOiAgICAgICAgICAgICAgLyogVXNlciBpbnRlcnJ1cHQuICovCisgICAgICAgIHByaW50ZigicHBwX2xpbmtfc3RhdHVzX2NiOiBQUFBFUlJfVVNFUlxuIik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQUFBFUlJfQ09OTkVDVDogICAgICAgICAgIC8qIENvbm5lY3Rpb24gbG9zdC4gKi8KKyAgICAgICAgcHJpbnRmKCJwcHBfbGlua19zdGF0dXNfY2I6IFBQUEVSUl9DT05ORUNUXG4iKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBQUEVSUl9BVVRIRkFJTDogICAgICAgICAgLyogRmFpbGVkIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZS4gKi8KKyAgICAgICAgcHJpbnRmKCJwcHBfbGlua19zdGF0dXNfY2I6IFBQUEVSUl9BVVRIRkFJTFxuIik7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBQUFBFUlJfUFJPVE9DT0w6ICAgICAgICAgIC8qIEZhaWxlZCB0byBtZWV0IHByb3RvY29sLiAqLworICAgICAgICBwcmludGYoInBwcF9saW5rX3N0YXR1c19jYjogUFBQRVJSX1BST1RPQ09MXG4iKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBQUEVSUl9QRUVSREVBRDogICAgICAgICAgLyogQ29ubmVjdGlvbiB0aW1lb3V0LiAqLworICAgICAgICBwcmludGYoInBwcF9saW5rX3N0YXR1c19jYjogUFBQRVJSX1BFRVJERUFEXG4iKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBQUEVSUl9JRExFVElNRU9VVDogICAgICAgLyogSWRsZSBUaW1lb3V0LiAqLworICAgICAgICBwcmludGYoInBwcF9saW5rX3N0YXR1c19jYjogUFBQRVJSX0lETEVUSU1FT1VUXG4iKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBQUEVSUl9DT05ORUNUVElNRTogICAgICAgLyogUFBQRVJSX0NPTk5FQ1RUSU1FLiAqLworICAgICAgICBwcmludGYoInBwcF9saW5rX3N0YXR1c19jYjogUFBQRVJSX0NPTk5FQ1RUSU1FXG4iKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBQUEVSUl9MT09QQkFDSzogICAgICAgICAgLyogQ29ubmVjdGlvbiB0aW1lb3V0LiAqLworICAgICAgICBwcmludGYoInBwcF9saW5rX3N0YXR1c19jYjogUFBQRVJSX0xPT1BCQUNLXG4iKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBwcmludGYoInBwcF9saW5rX3N0YXR1c19jYjogdW5rbm93biBlcnJDb2RlICVkXG4iLCBlcnJfY29kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworc3RhdGljIHUzMl90CitwcHBfb3V0cHV0X2NiKHBwcF9wY2IgKnBjYiwgY29uc3Qgdm9pZCAqZGF0YSwgdTMyX3QgbGVuLCB2b2lkICpjdHgpCit7CisgIExXSVBfVU5VU0VEX0FSRyhwY2IpOworICBMV0lQX1VOVVNFRF9BUkcoY3R4KTsKKyAgcmV0dXJuIHNpb193cml0ZShwcHBfc2lvLCAoY29uc3QgdThfdCopZGF0YSwgbGVuKTsKK30KKworI2lmIExXSVBfTkVUSUZfU1RBVFVTX0NBTExCQUNLCitzdGF0aWMgdm9pZAorbmV0aWZfc3RhdHVzX2NhbGxiYWNrKHN0cnVjdCBuZXRpZiAqbmlmKQoreworICBwcmludGYoIlBQUE5FVElGOiAlYyVjJWQgaXMgJXNcbiIsIG5pZi0+bmFtZVswXSwgbmlmLT5uYW1lWzFdLCBuaWYtPm51bSwKKyAgICAgICAgIG5ldGlmX2lzX3VwKG5pZikgPyAiVVAiIDogIkRPV04iKTsKKyNpZiBMV0lQX0lQVjQKKyAgcHJpbnRmKCJJUFY0OiBIb3N0IGF0ICVzICIsIGlwNGFkZHJfbnRvYShuZXRpZl9pcDRfYWRkcihuaWYpKSk7CisgIHByaW50ZigibWFzayAlcyAiLCBpcDRhZGRyX250b2EobmV0aWZfaXA0X25ldG1hc2sobmlmKSkpOworICBwcmludGYoImdhdGV3YXkgJXNcbiIsIGlwNGFkZHJfbnRvYShuZXRpZl9pcDRfZ3cobmlmKSkpOworI2VuZGlmIC8qIExXSVBfSVBWNCAqLworI2lmIExXSVBfSVBWNgorICBwcmludGYoIklQVjY6IEhvc3QgYXQgJXNcbiIsIGlwNmFkZHJfbnRvYShuZXRpZl9pcDZfYWRkcihuaWYsIDApKSk7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisjaWYgTFdJUF9ORVRJRl9IT1NUTkFNRQorICBwcmludGYoIkZRRE46ICVzXG4iLCBuZXRpZl9nZXRfaG9zdG5hbWUobmlmKSk7CisjZW5kaWYgLyogTFdJUF9ORVRJRl9IT1NUTkFNRSAqLworfQorI2VuZGlmIC8qIExXSVBfTkVUSUZfU1RBVFVTX0NBTExCQUNLICovCisjZW5kaWYKKwordm9pZAorcHBwb3NfZXhhbXBsZV9pbml0KHZvaWQpCit7CisjaWYgUFBQT1NfU1VQUE9SVAorI2lmIFBQUF9QVFlfVEVTVAorICBwcHBfc2lvID0gc2lvX29wZW4oMik7CisjZWxzZQorICBwcHBfc2lvID0gc2lvX29wZW4oMCk7CisjZW5kaWYKKyAgaWYoIXBwcF9zaW8pCisgIHsKKyAgICAgIHBlcnJvcigiUFBQT1MgZXhhbXBsZTogRXJyb3Igb3BlbmluZyBkZXZpY2UiKTsKKyAgICAgIHJldHVybjsKKyAgfQorCisgIHBwcCA9IHBwcG9zX2NyZWF0ZSgmcHBwb3NfbmV0aWYsIHBwcF9vdXRwdXRfY2IsIHBwcF9saW5rX3N0YXR1c19jYiwgTlVMTCk7CisgIGlmICghcHBwKQorICB7CisgICAgICBwcmludGYoIlBQUE9TIGV4YW1wbGU6IENvdWxkIG5vdCBjcmVhdGUgUFBQIGNvbnRyb2wgaW50ZXJmYWNlIik7CisgICAgICByZXR1cm47CisgIH0KKworI2lmZGVmIExXSVBfUFBQX0NIQVBfVEVTVAorICBwcHBfc2V0X2F1dGgocHBwLCBQUFBBVVRIVFlQRV9DSEFQLCAibHdpcCIsICJteXNlY3JldCIpOworI2VuZGlmCisKKyAgcHBwX2Nvbm5lY3QocHBwLCAwKTsKKworI2lmIExXSVBfTkVUSUZfU1RBVFVTX0NBTExCQUNLCisgIG5ldGlmX3NldF9zdGF0dXNfY2FsbGJhY2soJnBwcG9zX25ldGlmLCBuZXRpZl9zdGF0dXNfY2FsbGJhY2spOworI2VuZGlmIC8qIExXSVBfTkVUSUZfU1RBVFVTX0NBTExCQUNLICovCisKKyAgc3lzX3RocmVhZF9uZXcoInBwcG9zX3J4X3RocmVhZCIsIHBwcG9zX3J4X3RocmVhZCwgTlVMTCwgREVGQVVMVF9USFJFQURfU1RBQ0tTSVpFLCBERUZBVUxUX1RIUkVBRF9QUklPKTsKKyNlbmRpZiAvKiBQUFBPU19TVVBQT1JUICovCit9CmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL3BwcC9wcHBvc19leGFtcGxlLmggYi9jb250cmliL2V4YW1wbGVzL3BwcC9wcHBvc19leGFtcGxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzI2OTYxYwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvZXhhbXBsZXMvcHBwL3BwcG9zX2V4YW1wbGUuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCAKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyAKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIAorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSAKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqIAorICogQXV0aG9yOiBEaXJrIFppZWdlbG1laWVyIDxkemllZ2VsQGdteC5kZT4KKyAqCisgKi8KKworI2lmbmRlZiBQUFBPU19FWEFNUExFX0gKKyNkZWZpbmUgUFBQT1NfRVhBTVBMRV9ICisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordm9pZCBwcHBvc19leGFtcGxlX2luaXQodm9pZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBQUFBPU19FWEFNUExFX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvc25tcC9zbm1wX2V4YW1wbGUuYyBiL2NvbnRyaWIvZXhhbXBsZXMvc25tcC9zbm1wX2V4YW1wbGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTUyNDc0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9zbm1wL3NubXBfZXhhbXBsZS5jCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IERpcmsgWmllZ2VsbWVpZXIgPGR6aWVnZWxAZ214LmRlPgorICoKKyAqLworCisjaW5jbHVkZSAibHdpcC9uZXRpZi5oIgorI2luY2x1ZGUgImx3aXAvYXBwcy9zbm1wLmgiCisjaW5jbHVkZSAibHdpcC9hcHBzL3NubXBfbWliMi5oIgorI2luY2x1ZGUgImx3aXAvYXBwcy9zbm1wdjMuaCIKKyNpbmNsdWRlICJsd2lwL2FwcHMvc25tcF9zbm1wdjJfZnJhbWV3b3JrLmgiCisjaW5jbHVkZSAibHdpcC9hcHBzL3NubXBfc25tcHYyX3VzbS5oIgorI2luY2x1ZGUgImV4YW1wbGVzL3NubXAvc25tcF92My9zbm1wdjNfZHVtbXkuaCIKKyNpbmNsdWRlICJleGFtcGxlcy9zbm1wL3NubXBfcHJpdmF0ZV9taWIvcHJpdmF0ZV9taWIuaCIKKyNpbmNsdWRlICJzbm1wX2V4YW1wbGUuaCIKKworI2lmIExXSVBfU05NUAorc3RhdGljIGNvbnN0IHN0cnVjdCBzbm1wX21pYiAqbWlic1tdID0geworICAmbWliMiwKKyAgJm1pYl9wcml2YXRlCisjaWYgTFdJUF9TTk1QX1YzCisgICwgJnNubXBmcmFtZXdvcmttaWIKKyAgLCAmc25tcHVzbW1pYgorI2VuZGlmCit9OworI2VuZGlmIC8qIExXSVBfU05NUCAqLworCit2b2lkCitzbm1wX2V4YW1wbGVfaW5pdCh2b2lkKQoreworI2lmIExXSVBfU05NUAorICBzMzJfdCByZXFfbnI7CisgIGx3aXBfcHJpdm1pYl9pbml0KCk7CisjaWYgU05NUF9MV0lQX01JQjIKKyNpZiBTTk1QX1VTRV9ORVRDT05OCisgIHNubXBfdGhyZWFkc3luY19pbml0KCZzbm1wX21pYjJfbHdpcF9sb2Nrcywgc25tcF9taWIyX2x3aXBfc3luY2hyb25pemVyKTsKKyNlbmRpZiAvKiBTTk1QX1VTRV9ORVRDT05OICovCisgIHNubXBfbWliMl9zZXRfc3lzY29udGFjdF9yZWFkb25seSgoY29uc3QgdThfdCopInJvb3QiLCBOVUxMKTsKKyAgc25tcF9taWIyX3NldF9zeXNsb2NhdGlvbl9yZWFkb25seSgoY29uc3QgdThfdCopImx3SVAgZGV2ZWxvcG1lbnQgUEMiLCBOVUxMKTsKKyAgc25tcF9taWIyX3NldF9zeXNkZXNjcigoY29uc3QgdThfdCopImx3SVAgZXhhbXBsZSIsIE5VTEwpOworI2VuZGlmIC8qIFNOTVBfTFdJUF9NSUIyICovCisKKyNpZiBMV0lQX1NOTVBfVjMKKyAgc25tcHYzX2R1bW15X2luaXQoKTsKKyNlbmRpZgorCisgIHNubXBfc2V0X21pYnMobWlicywgTFdJUF9BUlJBWVNJWkUobWlicykpOworICBzbm1wX2luaXQoKTsKKworICBzbm1wX3RyYXBfZHN0X2lwX3NldCgwLCAmbmV0aWZfZGVmYXVsdC0+Z3cpOworICBzbm1wX3RyYXBfZHN0X2VuYWJsZSgwLCAxKTsKKworICBzbm1wX3NlbmRfaW5mb3JtX2dlbmVyaWMoU05NUF9HRU5UUkFQX0NPTERTVEFSVCwgTlVMTCwgJnJlcV9ucik7CisgIHNubXBfc2VuZF90cmFwX2dlbmVyaWMoU05NUF9HRU5UUkFQX0NPTERTVEFSVCk7CisKKyNlbmRpZiAvKiBMV0lQX1NOTVAgKi8KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvc25tcC9zbm1wX2V4YW1wbGUuaCBiL2NvbnRyaWIvZXhhbXBsZXMvc25tcC9zbm1wX2V4YW1wbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWZjZDY4Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9zbm1wL3NubXBfZXhhbXBsZS5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIAorICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICogCisgKiBBdXRob3I6IERpcmsgWmllZ2VsbWVpZXIgPGR6aWVnZWxAZ214LmRlPgorICoKKyAqLworCisjaWZuZGVmIFNOTVBfRVhBTVBMRV9ICisjZGVmaW5lIFNOTVBfRVhBTVBMRV9ICisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordm9pZCBzbm1wX2V4YW1wbGVfaW5pdCh2b2lkKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFNOTVBfRVhBTVBMRV9IICovCmRpZmYgLS1naXQgYS9jb250cmliL2V4YW1wbGVzL3NubXAvc25tcF9wcml2YXRlX21pYi9sd2lwX3Bydm1pYi5jIGIvY29udHJpYi9leGFtcGxlcy9zbm1wL3NubXBfcHJpdmF0ZV9taWIvbHdpcF9wcnZtaWIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MWE0OWZlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9zbm1wL3NubXBfcHJpdmF0ZV9taWIvbHdpcF9wcnZtaWIuYwpAQCAtMCwwICsxLDQwMSBAQAorLyoqCisgKiBAZmlsZQorICogbHdpcCBQcml2YXRlIE1JQiAKKyAqCisgKiBAdG9kbyBjcmVhdGUgTUlCIGZpbGUgZm9yIHRoaXMgZXhhbXBsZQorICogQG5vdGUgdGhlIGx3aXAgZW50ZXJwcmlzZSB0cmVlIHJvb3QgKDI2MzgxKSBpcyBvd25lZCBieSB0aGUgbHdJUCBwcm9qZWN0LgorICogSXQgaXMgTk9UIGFsbG93ZWQgdG8gYWxsb2NhdGUgbmV3IG9iamVjdHMgdW5kZXIgdGhpcyBJRCAoMjYzODEpIHdpdGhvdXQgb3VyLAorICogdGhlIGx3aXAgZGV2ZWxvcGVycywgcGVybWlzc2lvbiEKKyAqCisgKiBQbGVhc2UgYXBwbHkgZm9yIHlvdXIgb3duIElEIHdpdGggSUFOQTogaHR0cDovL3d3dy5pYW5hLm9yZy9udW1iZXJzLmh0bWwKKyAqICAKKyAqIGx3aXAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGVudGVycHJpc2VzIDI2MzgxIH0KKyAqIGV4YW1wbGUgICAgIE9CSkVDVCBJREVOVElGSUVSIDo6PSB7IGx3aXAgMSB9CisgKi8KKyAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDYgQXhvbiBEaWdpdGFsIERlc2lnbiBCLlYuLCBUaGUgTmV0aGVybGFuZHMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogQXV0aG9yOiBDaHJpc3RpYWFuIFNpbW9ucyA8Y2hyaXN0aWFhbi5zaW1vbnNAYXhvbi50dj4KKyAqLworCisjaW5jbHVkZSAicHJpdmF0ZV9taWIuaCIKKworI2lmIExXSVBfU05NUAorCisvKiogRGlyZWN0b3J5IHdoZXJlIHRoZSBzZW5zb3IgZmlsZXMgYXJlICovCisjZGVmaW5lIFNFTlNPUlNfRElSICAgICAgICAgICAidzpcXHNlbnNvcnMiCisvKiogU2V0IHRvIDEgdG8gcmVhZCBzZW5zb3IgdmFsdWVzIGZyb20gZmlsZXMgKGluIGRpcmVjdG9yeSBkZWZpbmVkIGJ5IFNFTlNPUlNfRElSKSAqLworI2RlZmluZSBTRU5TT1JTX1VTRV9GSUxFUyAgICAgMAorLyoqIFNldCB0byAxIHRvIHNlYXJjaCBzZW5zb3IgZmlsZXMgYXQgc3RhcnR1cCAoaW4gZGlyZWN0b3J5IGRlZmluZWQgYnkgU0VOU09SU19ESVIpICovCisjZGVmaW5lIFNFTlNPUlNfU0VBUkNIX0ZJTEVTICAwCisKKyNpZiBTRU5TT1JTX1NFQVJDSF9GSUxFUworI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNlbmRpZiAvKiBTRU5TT1JTX1NFQVJDSF9GSUxFUyAqLworCisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2luY2x1ZGUgImx3aXAvYXBwcy9zbm1wX3RhYmxlLmgiCisjaW5jbHVkZSAibHdpcC9hcHBzL3NubXBfc2NhbGFyLmgiCisKKyNpZiAhU0VOU09SU19VU0VfRklMRVMgfHwgIVNFTlNPUlNfU0VBUkNIX0ZJTEVTCisvKiogV2hlbiBub3QgdXNpbmcgJiBzZWFyY2hpbmcgZmlsZXMsIGRlZmluZXMgdGhlIG51bWJlciBvZiBzZW5zb3JzICovCisjZGVmaW5lIFNFTlNPUl9DT1VOVCA0CisjZW5kaWYgLyogIVNFTlNPUlNfVVNFX0ZJTEVTIHx8ICFTRU5TT1JTX1NFQVJDSF9GSUxFUyAqLworCisvKgorICBUaGlzIGV4YW1wbGUgcHJlc2VudHMgYSB0YWJsZSBmb3IgYSBmZXcgKGF0IG1vc3QgMTApIHNlbnNvcnMuCisgIFNlbnNvciBkZXRlY3Rpb24gdGFrZXMgcGxhY2UgYXQgaW5pdGlhbGl6YXRpb24gKG9uY2Ugb25seSkuCisgIFNlbnNvcnMgbWF5IGFuZCBjYW4gbm90IGJlIGFkZGVkIG9yIHJlbW92ZWQgYWZ0ZXIgYWdlbnQKKyAgaGFzIHN0YXJ0ZWQuIE5vdGUgdGhpcyBpcyBvbmx5IGEgbGltaXRhdGlvbiBvZiB0aGlzIGNydWRlIGV4YW1wbGUsCisgIHRoZSBhZ2VudCBkb2VzIHN1cHBvcnQgZHluYW1pYyBvYmplY3QgaW5zZXJ0aW9ucyBhbmQgcmVtb3ZhbHMuCisgICAKKyAgWW91J2xsIG5lZWQgdG8gbWFudWFsbHkgY3JlYXRlIGEgZGlyZWN0b3J5IGNhbGxlZCAic2Vuc29ycyIgYW5kCisgIGEgZmV3IHNpbmdsZSBsaW5lIHRleHQgZmlsZXMgd2l0aCBhbiBpbnRlZ2VyIHRlbXBlcmF0dXJlIHZhbHVlLgorICBUaGUgZmlsZXMgbXVzdCBiZSBjYWxsZWQgWzAuLjldLnR4dC4gCisgICAKKyAgLi9zZW5zb3JzLzAudHh0IFtjb250ZW50OiAyMF0KKyAgLi9zZW5zb3JzLzMudHh0IFtjb250ZW50OiA3NV0KKyAgICAKKyAgVGhlIHNlbnNvciB2YWx1ZXMgbWF5IGJlIGNoYW5nZWQgaW4gcnVudGltZSBieSBlZGl0aW5nIHRoZSAKKyAgdGV4dCBmaWxlcyBpbiB0aGUgInNlbnNvcnMiIGRpcmVjdG9yeS4KKyovCisKKyNkZWZpbmUgU0VOU09SX01BWCAgICAgIDEwCisjZGVmaW5lIFNFTlNPUl9OQU1FX0xFTiAyMAorCitzdHJ1Y3Qgc2Vuc29yX2luZgoreworICB1OF90IG51bTsKKworICBjaGFyIGZpbGVbU0VOU09SX05BTUVfTEVOICsgMV07CisKKyNpZiAhU0VOU09SU19VU0VfRklMRVMKKyAgLyoqIFdoZW4gbm90IHVzaW5nIGZpbGVzLCBjb250YWlucyB0aGUgdmFsdWUgb2YgdGhlIHNlbnNvciAqLworICBzMzJfdCB2YWx1ZTsKKyNlbmRpZiAvKiAhU0VOU09SU19VU0VfRklMRVMgKi8KK307CisKK3N0YXRpYyBzdHJ1Y3Qgc2Vuc29yX2luZiBzZW5zb3JzW1NFTlNPUl9NQVhdOworCitzdGF0aWMgczE2X3QgICAgICBzZW5zb3JfY291bnRfZ2V0X3ZhbHVlKHN0cnVjdCBzbm1wX25vZGVfaW5zdGFuY2UqIGluc3RhbmNlLCB2b2lkKiB2YWx1ZSk7CitzdGF0aWMgc25tcF9lcnJfdCBzZW5zb3JfdGFibGVfZ2V0X2NlbGxfaW5zdGFuY2UoY29uc3QgdTMyX3QqIGNvbHVtbiwgY29uc3QgdTMyX3QqIHJvd19vaWQsIHU4X3Qgcm93X29pZF9sZW4sIHN0cnVjdCBzbm1wX25vZGVfaW5zdGFuY2UqIGNlbGxfaW5zdGFuY2UpOworc3RhdGljIHNubXBfZXJyX3Qgc2Vuc29yX3RhYmxlX2dldF9uZXh0X2NlbGxfaW5zdGFuY2UoY29uc3QgdTMyX3QqIGNvbHVtbiwgc3RydWN0IHNubXBfb2JqX2lkKiByb3dfb2lkLCBzdHJ1Y3Qgc25tcF9ub2RlX2luc3RhbmNlKiBjZWxsX2luc3RhbmNlKTsKK3N0YXRpYyBzMTZfdCAgICAgIHNlbnNvcl90YWJsZV9nZXRfdmFsdWUoc3RydWN0IHNubXBfbm9kZV9pbnN0YW5jZSogaW5zdGFuY2UsIHZvaWQqIHZhbHVlKTsKK3N0YXRpYyBzbm1wX2Vycl90IHNlbnNvcl90YWJsZV9zZXRfdmFsdWUoc3RydWN0IHNubXBfbm9kZV9pbnN0YW5jZSogaW5zdGFuY2UsIHUxNl90IGxlbiwgdm9pZCAqdmFsdWUpOworCisvKiBzZW5zb3JlbnRyeSAuMS4zLjYuMS40LjEuMjYzODEuMS4xLjEgKC5sZXZlbDAubGV2ZWwxKQorICAgd2hlcmUgbGV2ZWwgMCBpcyB0aGUgdGFibGUgY29sdW1uICh0ZW1wZXJhdHVyZS9maWxlIG5hbWUpCisgICBhbmQgbGV2ZWwgMSB0aGUgdGFibGUgcm93IChzZW5zb3IgaW5kZXgpICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNubXBfdGFibGVfY29sX2RlZiBzZW5zb3JfdGFibGVfY29sdW1uc1tdID0geworICB7IDEsIFNOTVBfQVNOMV9UWVBFX0lOVEVHRVIsICAgICAgU05NUF9OT0RFX0lOU1RBTkNFX1JFQURfV1JJVEUgfSwKKyAgeyAyLCBTTk1QX0FTTjFfVFlQRV9PQ1RFVF9TVFJJTkcsIFNOTVBfTk9ERV9JTlNUQU5DRV9SRUFEX09OTFkgIH0KK307CisKKy8qIHNlbnNvcnRhYmxlIC4xLjMuNi4xLjQuMS4yNjM4MS4xLjEgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25tcF90YWJsZV9ub2RlIHNlbnNvcl90YWJsZSA9IFNOTVBfVEFCTEVfQ1JFQVRFKAorICAxLCBzZW5zb3JfdGFibGVfY29sdW1ucywgCisgIHNlbnNvcl90YWJsZV9nZXRfY2VsbF9pbnN0YW5jZSwgc2Vuc29yX3RhYmxlX2dldF9uZXh0X2NlbGxfaW5zdGFuY2UsIAorICBzZW5zb3JfdGFibGVfZ2V0X3ZhbHVlLCBzbm1wX3NldF90ZXN0X29rLCBzZW5zb3JfdGFibGVfc2V0X3ZhbHVlKTsKKworLyogc2Vuc29yY291bnQgLjEuMy42LjEuNC4xLjI2MzgxLjEuMiAqLworc3RhdGljIGNvbnN0IHN0cnVjdCBzbm1wX3NjYWxhcl9ub2RlIHNlbnNvcl9jb3VudCA9IFNOTVBfU0NBTEFSX0NSRUFURV9OT0RFX1JFQURPTkxZKAorICAyLCBTTk1QX0FTTjFfVFlQRV9JTlRFR0VSLCBzZW5zb3JfY291bnRfZ2V0X3ZhbHVlKTsgCisKKy8qIGV4YW1wbGUgLjEuMy42LjEuNC4xLjI2MzgxLjEgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25tcF9ub2RlKiBjb25zdCBleGFtcGxlX25vZGVzW10gPSB7CisgICZzZW5zb3JfdGFibGUubm9kZS5ub2RlLAorICAmc2Vuc29yX2NvdW50Lm5vZGUubm9kZQorfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25tcF90cmVlX25vZGUgZXhhbXBsZV9ub2RlID0gU05NUF9DUkVBVEVfVFJFRV9OT0RFKDEsIGV4YW1wbGVfbm9kZXMpOworCitzdGF0aWMgY29uc3QgdTMyX3QgcHJ2bWliX2Jhc2Vfb2lkW10gPSB7IDEsMyw2LDEsNCwxLDI2MzgxLDEgfTsKK2NvbnN0IHN0cnVjdCBzbm1wX21pYiBtaWJfcHJpdmF0ZSA9IFNOTVBfTUlCX0NSRUFURShwcnZtaWJfYmFzZV9vaWQsICZleGFtcGxlX25vZGUubm9kZSk7CisKKyNpZiAwCisvKiBmb3IgcmVmZXJlbmNlOiB3ZSBjb3VsZCBhbHNvIGhhdmUgZXhwcmVzc2VkIGl0IGxpa2UgdGhpczogKi8KKworLyogbHdpcCAuMS4zLjYuMS40LjEuMjYzODEgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25tcF9ub2RlKiBjb25zdCBsd2lwX25vZGVzW10gPSB7CisgICZleGFtcGxlX25vZGUubm9kZQorfTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25tcF90cmVlX25vZGUgbHdpcF9ub2RlID0gU05NUF9DUkVBVEVfVFJFRV9OT0RFKDI2MzgxLCBsd2lwX25vZGVzKTsKKworLyogZW50ZXJwcmlzZXMgLjEuMy42LjEuNC4xICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNubXBfbm9kZSogY29uc3QgZW50ZXJwcmlzZXNfbm9kZXNbXSA9IHsKKyAgJmx3aXBfbm9kZS5ub2RlCit9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBzbm1wX3RyZWVfbm9kZSBlbnRlcnByaXNlc19ub2RlID0gU05NUF9DUkVBVEVfVFJFRV9OT0RFKDEsIGVudGVycHJpc2VzX25vZGVzKTsKKworLyogcHJpdmF0ZSAuMS4zLjYuMS40ICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNubXBfbm9kZSogY29uc3QgcHJpdmF0ZV9ub2Rlc1tdID0geworICAmZW50ZXJwcmlzZXNfbm9kZS5ub2RlCit9Oworc3RhdGljIGNvbnN0IHN0cnVjdCBzbm1wX3RyZWVfbm9kZSBwcml2YXRlX3Jvb3QgPSBTTk1QX0NSRUFURV9UUkVFX05PREUoNCwgcHJpdmF0ZV9ub2Rlcyk7CisKK3N0YXRpYyBjb25zdCB1MzJfdCBwcnZtaWJfYmFzZV9vaWRbXSA9IHsgMSwzLDYsMSw0IH07Citjb25zdCBzdHJ1Y3Qgc25tcF9taWIgbWliX3ByaXZhdGUgPSBTTk1QX01JQl9DUkVBVEUocHJ2bWliX2Jhc2Vfb2lkLCAmcHJpdmF0ZV9yb290Lm5vZGUpOworI2VuZGlmCisKKy8qKgorICogSW5pdGlhbGlzZXMgdGhpcyBwcml2YXRlIE1JQiBiZWZvcmUgdXNlLgorICogQHNlZSBtYWluLmMKKyAqLwordm9pZAorbHdpcF9wcml2bWliX2luaXQodm9pZCkKK3sKKyNpZiBTRU5TT1JTX1VTRV9GSUxFUyAmJiBTRU5TT1JTX1NFQVJDSF9GSUxFUworICBjaGFyICpidWYsICplYnVmLCAqY3A7CisgIHNpemVfdCBidWZzaXplOworICBpbnQgbmJ5dGVzOworICBzdHJ1Y3Qgc3RhdCBzYjsKKyAgc3RydWN0IGRpcmVudCAqZHA7CisgIGludCBmZDsKKyNlbHNlIC8qIFNFTlNPUlNfVVNFX0ZJTEVTICYmIFNFTlNPUlNfU0VBUkNIX0ZJTEVTICovCisgIHU4X3QgaTsKKyNlbmRpZiAvKiBTRU5TT1JTX1VTRV9GSUxFUyAmJiBTRU5TT1JTX1NFQVJDSF9GSUxFUyAqLworCisgIG1lbXNldChzZW5zb3JzLCAwLCBzaXplb2Yoc2Vuc29ycykpOworICAKKyAgcHJpbnRmKCJTTk1QIHByaXZhdGUgTUlCIHN0YXJ0LCBkZXRlY3Rpbmcgc2Vuc29ycy5cbiIpOworCisjaWYgU0VOU09SU19VU0VfRklMRVMgJiYgU0VOU09SU19TRUFSQ0hfRklMRVMKKyAgLyogbG9vayBmb3Igc2Vuc29ycyBpbiBzZW5zb3JzIGRpcmVjdG9yeSAqLworICBmZCA9IG9wZW4oU0VOU09SU19ESVIsIE9fUkRPTkxZKTsKKyAgaWYgKGZkID4gLTEpCisgIHsKKyAgICBmc3RhdChmZCwgJnNiKTsKKyAgICBidWZzaXplID0gc2Iuc3Rfc2l6ZTsKKyAgICBpZiAoYnVmc2l6ZSA8IChzaXplX3Qpc2Iuc3RfYmxrc2l6ZSkKKyAgICB7CisgICAgICBidWZzaXplID0gc2Iuc3RfYmxrc2l6ZTsKKyAgICB9CisgICAgYnVmID0gKGNoYXIqKW1hbGxvYyhidWZzaXplKTsKKyAgICBpZiAoYnVmICE9IE5VTEwpCisgICAgeworICAgICAgZG8KKyAgICAgIHsKKyAgICAgICAgbG9uZyBiYXNlOworICAgICAgICAKKyAgICAgICAgbmJ5dGVzID0gZ2V0ZGlyZW50cmllcyhmZCwgYnVmLCBidWZzaXplLCAmYmFzZSk7CisgICAgICAgIGlmIChuYnl0ZXMgPiAwKQorICAgICAgICB7CisgICAgICAgICAgZWJ1ZiA9IGJ1ZiArIG5ieXRlczsKKyAgICAgICAgICBjcCA9IGJ1ZjsKKyAgICAgICAgICB3aGlsZSAoY3AgPCBlYnVmKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIGRwID0gKHN0cnVjdCBkaXJlbnQgKiljcDsKKyAgICAgICAgICAgIGlmIChsd2lwX2lzZGlnaXQoZHAtPmRfbmFtZVswXSkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaWR4ID0gZHAtPmRfbmFtZVswXSAtICcwJzsKKworICAgICAgICAgICAgICBzZW5zb3JzW2lkeF0ubnVtID0gaWR4KzE7CisgICAgICAgICAgICAgIHN0cm5jcHkoJnNlbnNvcnNbaWR4XS5maWxlWzBdLCBkcC0+ZF9uYW1lLCBTRU5TT1JfTkFNRV9MRU4pOworICAgICAgICAgICAgICBwcmludGYoIiVzXG4iLCBzZW5zb3JzW2lkeF0uZmlsZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjcCArPSBkcC0+ZF9yZWNsZW47CisgICAgICAgICAgfQorICAgICAgICB9IAorICAgICAgfQorICAgICAgd2hpbGUgKG5ieXRlcyA+IDApOworICAgIAorICAgICAgZnJlZShidWYpOworICAgIH0KKyAgICBjbG9zZShmZCk7CisgIH0KKyNlbHNlIC8qIFNFTlNPUlNfVVNFX0ZJTEVTICYmIFNFTlNPUlNfU0VBUkNIX0ZJTEVTICovCisgIGZvciAoaSA9IDA7IGkgPCBTRU5TT1JfQ09VTlQ7IGkrKykgeworICAgIHNlbnNvcnNbaV0ubnVtID0gKHU4X3QpKGkgKyAxKTsKKyAgICBzbnByaW50ZihzZW5zb3JzW2ldLmZpbGUsIHNpemVvZihzZW5zb3JzW2ldLmZpbGUpLCAiJWQudHh0IiwgaSk7CisKKyNpZiAhU0VOU09SU19VU0VfRklMRVMKKyAgICAvKiBpbml0aWFsaXplIHNlbnNvciB2YWx1ZSB0byAhPSB6ZXJvICovCisgICAgc2Vuc29yc1tpXS52YWx1ZSA9IDExICogKGkrMSk7CisjZW5kaWYgLyogIVNFTlNPUlNfVVNFX0ZJTEVTICovCisgIH0KKyNlbmRpZiAvKiBTRU5TT1JTX1VTRV9GSUxFICYmIFNFTlNPUlNfU0VBUkNIX0ZJTEVTICovCit9CisKKy8qIHNlbnNvcmNvdW50IC4xLjMuNi4xLjQuMS4yNjM4MS4xLjIgKi8KK3N0YXRpYyBzMTZfdAorc2Vuc29yX2NvdW50X2dldF92YWx1ZShzdHJ1Y3Qgc25tcF9ub2RlX2luc3RhbmNlKiBpbnN0YW5jZSwgdm9pZCogdmFsdWUpCit7CisgIHNpemVfdCBjb3VudCA9IDA7CisgIHUzMl90ICp1aW50X3B0ciA9ICh1MzJfdCopdmFsdWU7CisKKyAgTFdJUF9VTlVTRURfQVJHKGluc3RhbmNlKTsKKyAgCisgIGZvcihjb3VudD0wOyBjb3VudDxMV0lQX0FSUkFZU0laRShzZW5zb3JzKTsgY291bnQrKykgeworICAgIGlmKHNlbnNvcnNbY291bnRdLm51bSA9PSAwKSB7CisgICAgICAqdWludF9wdHIgPSAodTMyX3QpY291bnQ7CisgICAgICByZXR1cm4gc2l6ZW9mKCp1aW50X3B0cik7CisgICAgfQorICB9CisKKyAgcmV0dXJuIDA7ICAKK30KKworLyogc2Vuc29ydGFibGUgLjEuMy42LjEuNC4xLjI2MzgxLjEuMSAqLworLyogbGlzdCBvZiBhbGxvd2VkIHZhbHVlIHJhbmdlcyBmb3IgaW5jb21pbmcgT0lEICovCitzdGF0aWMgY29uc3Qgc3RydWN0IHNubXBfb2lkX3JhbmdlIHNlbnNvcl90YWJsZV9vaWRfcmFuZ2VzW10gPSB7CisgIHsgMSwgU0VOU09SX01BWCsxIH0KK307CisKK3N0YXRpYyBzbm1wX2Vycl90CitzZW5zb3JfdGFibGVfZ2V0X2NlbGxfaW5zdGFuY2UoY29uc3QgdTMyX3QqIGNvbHVtbiwgY29uc3QgdTMyX3QqIHJvd19vaWQsIHU4X3Qgcm93X29pZF9sZW4sIHN0cnVjdCBzbm1wX25vZGVfaW5zdGFuY2UqIGNlbGxfaW5zdGFuY2UpCit7CisgIHUzMl90IHNlbnNvcl9udW07CisgIHNpemVfdCBpOworCisgIExXSVBfVU5VU0VEX0FSRyhjb2x1bW4pOworCisgIC8qIGNoZWNrIGlmIGluY29taW5nIE9JRCBsZW5ndGggYW5kIGlmIHZhbHVlcyBhcmUgaW4gcGxhdXNpYmxlIHJhbmdlICovCisgIGlmKCFzbm1wX29pZF9pbl9yYW5nZShyb3dfb2lkLCByb3dfb2lkX2xlbiwgc2Vuc29yX3RhYmxlX29pZF9yYW5nZXMsIExXSVBfQVJSQVlTSVpFKHNlbnNvcl90YWJsZV9vaWRfcmFuZ2VzKSkpIHsKKyAgICByZXR1cm4gU05NUF9FUlJfTk9TVUNISU5TVEFOQ0U7CisgIH0KKworICAvKiBnZXQgc2Vuc29yIGluZGV4IGZyb20gaW5jb21pbmcgT0lEICovCisgIHNlbnNvcl9udW0gPSByb3dfb2lkWzBdOworCisgIC8qIGZpbmQgc2Vuc29yIHdpdGggaW5kZXggKi8KKyAgZm9yKGk9MDsgaTxMV0lQX0FSUkFZU0laRShzZW5zb3JzKTsgaSsrKSB7CisgICAgaWYoc2Vuc29yc1tpXS5udW0gIT0gMCkgeworICAgICAgaWYoc2Vuc29yc1tpXS5udW0gPT0gc2Vuc29yX251bSkgeworICAgICAgICAvKiBzdG9yZSBzZW5zb3IgaW5kZXggZm9yIHN1YnNlcXVlbnQgb3BlcmF0aW9ucyAoZ2V0L3Rlc3Qvc2V0KSAqLworICAgICAgICBjZWxsX2luc3RhbmNlLT5yZWZlcmVuY2UudTMyID0gKHUzMl90KWk7CisgICAgICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOworICAgICAgfQorICAgIH0KKyAgfQorCisgIC8qIG5vdCBmb3VuZCAqLworICByZXR1cm4gU05NUF9FUlJfTk9TVUNISU5TVEFOQ0U7Cit9CisKK3N0YXRpYyBzbm1wX2Vycl90CitzZW5zb3JfdGFibGVfZ2V0X25leHRfY2VsbF9pbnN0YW5jZShjb25zdCB1MzJfdCogY29sdW1uLCBzdHJ1Y3Qgc25tcF9vYmpfaWQqIHJvd19vaWQsIHN0cnVjdCBzbm1wX25vZGVfaW5zdGFuY2UqIGNlbGxfaW5zdGFuY2UpCit7CisgIHNpemVfdCBpOworICBzdHJ1Y3Qgc25tcF9uZXh0X29pZF9zdGF0ZSBzdGF0ZTsKKyAgdTMyX3QgcmVzdWx0X3RlbXBbTFdJUF9BUlJBWVNJWkUoc2Vuc29yX3RhYmxlX29pZF9yYW5nZXMpXTsKKworICBMV0lQX1VOVVNFRF9BUkcoY29sdW1uKTsKKyAgCisgIC8qIGluaXQgc3RydWN0IHRvIHNlYXJjaCBuZXh0IG9pZCAqLworICBzbm1wX25leHRfb2lkX2luaXQoJnN0YXRlLCByb3dfb2lkLT5pZCwgcm93X29pZC0+bGVuLCByZXN1bHRfdGVtcCwgTFdJUF9BUlJBWVNJWkUoc2Vuc29yX3RhYmxlX29pZF9yYW5nZXMpKTsKKworICAvKiBpdGVyYXRlIG92ZXIgYWxsIHBvc3NpYmxlIE9JRHMgdG8gZmluZCB0aGUgbmV4dCBvbmUgKi8KKyAgZm9yKGk9MDsgaTxMV0lQX0FSUkFZU0laRShzZW5zb3JzKTsgaSsrKSB7CisgICAgaWYoc2Vuc29yc1tpXS5udW0gIT0gMCkgeworICAgICAgdTMyX3QgdGVzdF9vaWRbTFdJUF9BUlJBWVNJWkUoc2Vuc29yX3RhYmxlX29pZF9yYW5nZXMpXTsKKworICAgICAgdGVzdF9vaWRbMF0gPSBzZW5zb3JzW2ldLm51bTsKKworICAgICAgLyogY2hlY2sgZ2VuZXJhdGVkIE9JRDogaXMgaXQgYSBjYW5kaWRhdGUgZm9yIHRoZSBuZXh0IG9uZT8gKi8KKyAgICAgIHNubXBfbmV4dF9vaWRfY2hlY2soJnN0YXRlLCB0ZXN0X29pZCwgTFdJUF9BUlJBWVNJWkUoc2Vuc29yX3RhYmxlX29pZF9yYW5nZXMpLCAodm9pZCopaSk7CisgICAgfQorICB9CisKKyAgLyogZGlkIHdlIGZpbmQgYSBuZXh0IG9uZT8gKi8KKyAgaWYoc3RhdGUuc3RhdHVzID09IFNOTVBfTkVYVF9PSURfU1RBVFVTX1NVQ0NFU1MpIHsKKyAgICBzbm1wX29pZF9hc3NpZ24ocm93X29pZCwgc3RhdGUubmV4dF9vaWQsIHN0YXRlLm5leHRfb2lkX2xlbik7CisgICAgLyogc3RvcmUgc2Vuc29yIGluZGV4IGZvciBzdWJzZXF1ZW50IG9wZXJhdGlvbnMgKGdldC90ZXN0L3NldCkgKi8KKyAgICBjZWxsX2luc3RhbmNlLT5yZWZlcmVuY2UudTMyID0gTFdJUF9DT05TVF9DQVNUKHUzMl90LCBzdGF0ZS5yZWZlcmVuY2UpOworICAgIHJldHVybiBTTk1QX0VSUl9OT0VSUk9SOworICB9CisKKyAgLyogbm90IGZvdW5kICovCisgIHJldHVybiBTTk1QX0VSUl9OT1NVQ0hJTlNUQU5DRTsKK30KKworc3RhdGljIHMxNl90CitzZW5zb3JfdGFibGVfZ2V0X3ZhbHVlKHN0cnVjdCBzbm1wX25vZGVfaW5zdGFuY2UqIGluc3RhbmNlLCB2b2lkKiB2YWx1ZSkKK3sKKyAgdTMyX3QgaSA9IGluc3RhbmNlLT5yZWZlcmVuY2UudTMyOworICBzMzJfdCAqdGVtcGVyYXR1cmUgPSAoczMyX3QgKil2YWx1ZTsKKworICBzd2l0Y2ggKFNOTVBfVEFCTEVfR0VUX0NPTFVNTl9GUk9NX09JRChpbnN0YW5jZS0+aW5zdGFuY2Vfb2lkLmlkKSkKKyAgeworICBjYXNlIDE6IC8qIHNlbnNvciB2YWx1ZSAqLworI2lmIFNFTlNPUlNfVVNFX0ZJTEVTCisgICAgRklMRSogc2Vuc2Y7CisgICAgY2hhciBzZW5zcGF0aFtzaXplb2YoU0VOU09SU19ESVIpKzErU0VOU09SX05BTUVfTEVOKzFdID0gU0VOU09SU19ESVIiLyI7CisKKyAgICBzdHJuY3B5KCZzZW5zcGF0aFtzaXplb2YoU0VOU09SU19ESVIpXSwKKyAgICAgICAgICAgIHNlbnNvcnNbaV0uZmlsZSwKKyAgICAgICAgICAgIFNFTlNPUl9OQU1FX0xFTik7CisgICAgc2Vuc2YgPSBmb3BlbihzZW5zcGF0aCwiciIpOworICAgIGlmIChzZW5zZiAhPSBOVUxMKQorICAgIHsKKyAgICAgIGZzY2FuZihzZW5zZiwiJSJTMzJfRix0ZW1wZXJhdHVyZSk7CisgICAgICBmY2xvc2Uoc2Vuc2YpOworICAgIH0KKyNlbHNlIC8qIFNFTlNPUlNfVVNFX0ZJTEVTICovCisgICAgKnRlbXBlcmF0dXJlID0gc2Vuc29yc1tpXS52YWx1ZTsKKyNlbmRpZiAvKiBTRU5TT1JTX1VTRV9GSUxFUyAqLworICAgIHJldHVybiBzaXplb2YoczMyX3QpOworICBjYXNlIDI6IC8qIGZpbGUgbmFtZSAqLworICAgIE1FTUNQWSh2YWx1ZSwgc2Vuc29yc1tpXS5maWxlLCBzdHJsZW4oc2Vuc29yc1tpXS5maWxlKSk7CisgICAgcmV0dXJuIChzMTZfdClzdHJsZW4oc2Vuc29yc1tpXS5maWxlKTsKKyAgZGVmYXVsdDoKKyAgICByZXR1cm4gMDsKKyAgfQorfQorCitzdGF0aWMgc25tcF9lcnJfdAorc2Vuc29yX3RhYmxlX3NldF92YWx1ZShzdHJ1Y3Qgc25tcF9ub2RlX2luc3RhbmNlKiBpbnN0YW5jZSwgdTE2X3QgbGVuLCB2b2lkICp2YWx1ZSkKK3sKKyAgdTMyX3QgaSA9IGluc3RhbmNlLT5yZWZlcmVuY2UudTMyOworICBzMzJfdCAqdGVtcGVyYXR1cmUgPSAoczMyX3QgKil2YWx1ZTsKKyNpZiBTRU5TT1JTX1VTRV9GSUxFUworICBGSUxFKiBzZW5zZjsKKyAgY2hhciBzZW5zcGF0aFtzaXplb2YoU0VOU09SU19ESVIpKzErU0VOU09SX05BTUVfTEVOKzFdID0gU0VOU09SU19ESVIiLyI7CisKKyAgc3RybmNweSgmc2Vuc3BhdGhbc2l6ZW9mKFNFTlNPUlNfRElSKV0sCisgICAgICAgICAgc2Vuc29yc1tpXS5maWxlLAorICAgICAgICAgIFNFTlNPUl9OQU1FX0xFTik7CisgIHNlbnNmID0gZm9wZW4oc2Vuc3BhdGgsICJ3Iik7CisgIGlmIChzZW5zZiAhPSBOVUxMKQorICB7CisgICAgZnByaW50ZihzZW5zZiwgIiUiUzMyX0YsICp0ZW1wZXJhdHVyZSk7CisgICAgZmNsb3NlKHNlbnNmKTsKKyAgfQorI2Vsc2UgLyogU0VOU09SU19VU0VfRklMRVMgKi8KKyAgc2Vuc29yc1tpXS52YWx1ZSA9ICp0ZW1wZXJhdHVyZTsKKyNlbmRpZiAvKiBTRU5TT1JTX1VTRV9GSUxFUyAqLyAgCisKKyAgTFdJUF9VTlVTRURfQVJHKGxlbik7CisKKyAgcmV0dXJuIFNOTVBfRVJSX05PRVJST1I7Cit9CisKKyNlbmRpZiAvKiBMV0lQX1NOTVAgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvc25tcC9zbm1wX3ByaXZhdGVfbWliL3ByaXZhdGVfbWliLmggYi9jb250cmliL2V4YW1wbGVzL3NubXAvc25tcF9wcml2YXRlX21pYi9wcml2YXRlX21pYi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5YmU4YTQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL3NubXAvc25tcF9wcml2YXRlX21pYi9wcml2YXRlX21pYi5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qKgorICogQGZpbGUKKyAqIEV4cG9ydHMgUHJpdmF0ZSBsd0lQIE1JQiAKKyAqLworCisjaWZuZGVmIExXSVBfSERSX1BSSVZBVEVfTUlCX0gKKyNkZWZpbmUgTFdJUF9IRFJfUFJJVkFURV9NSUJfSAorCisjaW5jbHVkZSAibHdpcC9hcHBzL3NubXBfb3B0cy5oIgorCisjaW5jbHVkZSAibHdpcC9hcHBzL3NubXBfY29yZS5oIgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qIGV4cG9ydCBNSUIgKi8KK2V4dGVybiBjb25zdCBzdHJ1Y3Qgc25tcF9taWIgbWliX3ByaXZhdGU7CisKK3ZvaWQgbHdpcF9wcml2bWliX2luaXQodm9pZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9zbm1wL3NubXBfdjMvc25tcHYzX2R1bW15LmMgYi9jb250cmliL2V4YW1wbGVzL3NubXAvc25tcF92My9zbm1wdjNfZHVtbXkuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2M1M2VkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9zbm1wL3NubXBfdjMvc25tcHYzX2R1bW15LmMKQEAgLTAsMCArMSwzOTUgQEAKKy8qKgorICogQGZpbGUKKyAqIER1bW15IFNOTVB2MyBmdW5jdGlvbnMuCisgKi8KKworLyoKKyAqIENvcHlyaWdodCAoYykgMjAxNiBFbGlhcyBPZW5hbC4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBBdXRob3I6IEVsaWFzIE9lbmFsIDxsd2lwQGVsaWFzb2VuYWwuY29tPgorICogICAgICAgICBEaXJrIFppZWdlbG1laWVyIDxkaXJrQHppZWdlbG1laWVyLm5ldD4KKyAqLworCisjaW5jbHVkZSAibHdpcC9hcHBzL3NubXB2My5oIgorI2luY2x1ZGUgInNubXB2M19kdW1teS5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgImx3aXAvZXJyLmgiCisjaW5jbHVkZSAibHdpcC9kZWYuaCIKKyNpbmNsdWRlICJsd2lwL3RpbWVvdXRzLmgiCisKKyNpZiBMV0lQX1NOTVAgJiYgTFdJUF9TTk1QX1YzCisKK3N0cnVjdCB1c2VyX3RhYmxlX2VudHJ5IHsKKyAgY2hhciAgICAgICAgICAgICAgIHVzZXJuYW1lWzMyXTsKKyAgc25tcHYzX2F1dGhfYWxnb190IGF1dGhfYWxnbzsKKyAgdThfdCAgICAgICAgICAgICAgIGF1dGhfa2V5WzIwXTsKKyAgc25tcHYzX3ByaXZfYWxnb190IHByaXZfYWxnbzsKKyAgdThfdCAgICAgICAgICAgICAgIHByaXZfa2V5WzIwXTsKK307CisKK3N0YXRpYyBzdHJ1Y3QgdXNlcl90YWJsZV9lbnRyeSB1c2VyX3RhYmxlW10gPSB7CisgIHsgImx3aXAiLCBTTk1QX1YzX0FVVEhfQUxHT19JTlZBTCwgIiIgLCBTTk1QX1YzX1BSSVZfQUxHT19JTlZBTCwgIiIgfSwKKyAgeyAicGl3bCIsIFNOTVBfVjNfQVVUSF9BTEdPX0lOVkFMLCAiIiAsIFNOTVBfVjNfUFJJVl9BTEdPX0lOVkFMLCAiIiB9LAorICB7ICJ0ZXN0IiwgU05NUF9WM19BVVRIX0FMR09fSU5WQUwsICIiICwgU05NUF9WM19QUklWX0FMR09fSU5WQUwsICIiIH0KK307CisKK3N0YXRpYyBjaGFyIHNubXB2M19lbmdpbmVpZFszMl07CitzdGF0aWMgdThfdCBzbm1wdjNfZW5naW5laWRfbGVuOworCitzdGF0aWMgdTMyX3QgZW5naW5ldGltZSA9IDA7CisKKy8qIEluIHRoaXMgaW1wbGVtZW50YXRpb24gZW5naW5lYm9vdHMgaXMgdm9sYXRpbGUuIEluIGEgcmVhbCB3b3JsZCBhcHBsaWNhdGlvbiB0aGlzIHZhbHVlIHNob3VsZCBiZSBzdG9yZWQgaW4gbm9uLXZvbGF0aWxlIG1lbW9yeS4qLworc3RhdGljIHUzMl90IGVuZ2luZWJvb3RzID0gMDsKKworLyoqCisgKiBAYnJpZWYgICBHZXQgdGhlIHVzZXIgdGFibGUgZW50cnkgZm9yIHRoZSBnaXZlbiB1c2VybmFtZS4KKyAqCisgKiBAcGFyYW1baW5dIHVzZXJuYW1lICBwb2ludGVyIHRvIHRoZSB1c2VybmFtZQorICoKKyAqIEByZXR1cm4gICAgICAgICAgICAgIHBvaW50ZXIgdG8gdGhlIHVzZXIgdGFibGUgZW50cnkgb3IgTlVMTCBpZiBub3QgZm91bmQuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgdXNlcl90YWJsZV9lbnRyeSoKK2dldF91c2VyKGNvbnN0IGNoYXIgKnVzZXJuYW1lKQoreworICBzaXplX3QgaTsKKworICBmb3IgKGkgPSAwOyBpIDwgTFdJUF9BUlJBWVNJWkUodXNlcl90YWJsZSk7IGkrKykgeworICAgIGlmIChzdHJubGVuKHVzZXJuYW1lLCAzMikgIT0gc3Rybmxlbih1c2VyX3RhYmxlW2ldLnVzZXJuYW1lLCAzMikpIHsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKworICAgIGlmIChtZW1jbXAodXNlcm5hbWUsIHVzZXJfdGFibGVbaV0udXNlcm5hbWUsIHN0cm5sZW4odXNlcm5hbWUsIDMyKSkgPT0gMCkgeworICAgICAgcmV0dXJuICZ1c2VyX3RhYmxlW2ldOworICAgIH0KKyAgfQorCisgIHJldHVybiBOVUxMOworfQorCit1OF90Citzbm1wdjNfZ2V0X2Ftb3VudF9vZl91c2Vycyh2b2lkKQoreworICByZXR1cm4gTFdJUF9BUlJBWVNJWkUodXNlcl90YWJsZSk7Cit9CisKKy8qKgorICogQGJyaWVmIEdldCB0aGUgdXNlcm5hbWUgb2YgYSB1c2VyIG51bWJlciAoaW5kZXgpCisgKiBAcGFyYW0gdXNlcm5hbWUgaXMgYSBwb2ludGVyIHRvIGEgc3RyaW5nLgorICogQHBhcmFtIGluZGV4IGlzIHRoZSB1c2VyIGluZGV4LgorICogQHJldHVybiBFUlJfT0sgaWYgdXNlciBpcyBmb3VuZCwgRVJSX1ZBTCBpcyB1c2VyIGlzIG5vdCBmb3VuZC4KKyAqLworZXJyX3QKK3NubXB2M19nZXRfdXNlcm5hbWUoY2hhciAqdXNlcm5hbWUsIHU4X3QgaW5kZXgpCit7CisgIGlmIChpbmRleCA8IExXSVBfQVJSQVlTSVpFKHVzZXJfdGFibGUpKSB7CisgICAgTUVNQ1BZKHVzZXJuYW1lLCB1c2VyX3RhYmxlW2luZGV4XS51c2VybmFtZSwgc2l6ZW9mKHVzZXJfdGFibGVbMF0udXNlcm5hbWUpKTsKKyAgICByZXR1cm4gRVJSX09LOworICB9CisKKyAgcmV0dXJuIEVSUl9WQUw7Cit9CisKKy8qKgorICogVGltZXIgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpbmNyZW1lbnRzIGVuZ2luZXRpbWUgYW5kIHJlc2NoZWR1bGVzIGl0c2VsZi4KKyAqCisgKiBAcGFyYW0gYXJnIHVudXNlZCBhcmd1bWVudAorICovCitzdGF0aWMgdm9pZAorc25tcHYzX2VuZ2luZXRpbWVfdGltZXIodm9pZCAqYXJnKQoreworICBMV0lQX1VOVVNFRF9BUkcoYXJnKTsKKyAgCisgIGVuZ2luZXRpbWUrKzsKKworICAvKiBUaGlzIGhhbmRsZXMgdGhlIGVuZ2luZSB0aW1lIHJlc2V0ICovCisgIHNubXB2M19nZXRfZW5naW5lX3RpbWVfaW50ZXJuYWwoKTsKKworICAvKiByZXN0YXJ0IHRpbWVyICovCisgIHN5c190aW1lb3V0KDEwMDAsIHNubXB2M19lbmdpbmV0aW1lX3RpbWVyLCBOVUxMKTsKK30KKworZXJyX3QKK3NubXB2M19zZXRfdXNlcl9hdXRoX2FsZ28oY29uc3QgY2hhciAqdXNlcm5hbWUsIHNubXB2M19hdXRoX2FsZ29fdCBhbGdvKQoreworICBzdHJ1Y3QgdXNlcl90YWJsZV9lbnRyeSAqcCA9IGdldF91c2VyKHVzZXJuYW1lKTsKKworICBpZiAocCkgeworICAgIHN3aXRjaCAoYWxnbykgeworICAgIGNhc2UgU05NUF9WM19BVVRIX0FMR09fSU5WQUw6CisgICAgICBpZiAocC0+cHJpdl9hbGdvICE9IFNOTVBfVjNfUFJJVl9BTEdPX0lOVkFMKSB7CisgICAgICAgIC8qIFByaXZhY3kgTVVTVCBiZSBkaXNhYmxlZCBiZWZvcmUgY29uZmlndXJpbmcgYXV0aGVudGljYXRpb24gKi8KKyAgICAgICAgYnJlYWs7CisgICAgICB9IGVsc2UgeworICAgICAgICBwLT5hdXRoX2FsZ28gPSBhbGdvOworICAgICAgICByZXR1cm4gRVJSX09LOworICAgICAgfQorI2lmIExXSVBfU05NUF9WM19DUllQVE8KKyAgICBjYXNlIFNOTVBfVjNfQVVUSF9BTEdPX01ENToKKyAgICBjYXNlIFNOTVBfVjNfQVVUSF9BTEdPX1NIQToKKyNlbmRpZgorICAgICAgcC0+YXV0aF9hbGdvID0gYWxnbzsKKyAgICAgIHJldHVybiBFUlJfT0s7CisgICAgZGVmYXVsdDoKKyAgICAgIGJyZWFrOworICAgIH0KKyAgfQorCisgIHJldHVybiBFUlJfVkFMOworfQorCitlcnJfdAorc25tcHYzX3NldF91c2VyX3ByaXZfYWxnbyhjb25zdCBjaGFyICp1c2VybmFtZSwgc25tcHYzX3ByaXZfYWxnb190IGFsZ28pCit7CisgIHN0cnVjdCB1c2VyX3RhYmxlX2VudHJ5ICpwID0gZ2V0X3VzZXIodXNlcm5hbWUpOworCisgIGlmIChwKSB7CisgICAgc3dpdGNoIChhbGdvKSB7CisjaWYgTFdJUF9TTk1QX1YzX0NSWVBUTworICAgIGNhc2UgU05NUF9WM19QUklWX0FMR09fQUVTOgorICAgIGNhc2UgU05NUF9WM19QUklWX0FMR09fREVTOgorICAgICAgaWYgKHAtPmF1dGhfYWxnbyA9PSBTTk1QX1YzX0FVVEhfQUxHT19JTlZBTCkgeworICAgICAgICAvKiBBdXRoZW50aWNhdGlvbiBNVVNUIGJlIGVuYWJsZWQgYmVmb3JlIGNvbmZpZ3VyaW5nIHByaXZhY3kgKi8KKyAgICAgICAgYnJlYWs7CisgICAgICB9IGVsc2UgeworICAgICAgICBwLT5wcml2X2FsZ28gPSBhbGdvOworICAgICAgICByZXR1cm4gRVJSX09LOworICAgICAgfQorI2VuZGlmCisgICAgY2FzZSBTTk1QX1YzX1BSSVZfQUxHT19JTlZBTDoKKyAgICAgIHAtPnByaXZfYWxnbyA9IGFsZ287CisgICAgICByZXR1cm4gRVJSX09LOworICAgIGRlZmF1bHQ6CisgICAgICBicmVhazsKKyAgICB9CisgIH0KKworICByZXR1cm4gRVJSX1ZBTDsKK30KKworZXJyX3QKK3NubXB2M19zZXRfdXNlcl9hdXRoX2tleShjb25zdCBjaGFyICp1c2VybmFtZSwgY29uc3QgY2hhciAqcGFzc3dvcmQpCit7CisgIHN0cnVjdCB1c2VyX3RhYmxlX2VudHJ5ICpwID0gZ2V0X3VzZXIodXNlcm5hbWUpOworICBjb25zdCBjaGFyICplbmdpbmVpZDsKKyAgdThfdCBlbmdpbmVpZF9sZW47CisKKyAgaWYgKHApIHsKKyAgICAvKiBwYXNzd29yZCBzaG91bGQgYmUgYXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGxvbmcgKi8KKyAgICBpZiAoc3RybGVuKHBhc3N3b3JkKSA+PSA4KSB7CisgICAgICBtZW1zZXQocC0+YXV0aF9rZXksIDAsIHNpemVvZihwLT5hdXRoX2tleSkpOworICAgICAgc25tcHYzX2dldF9lbmdpbmVfaWQoJmVuZ2luZWlkLCAmZW5naW5laWRfbGVuKTsKKyAgICAgIHN3aXRjaCAocC0+YXV0aF9hbGdvKSB7CisgICAgICBjYXNlIFNOTVBfVjNfQVVUSF9BTEdPX0lOVkFMOgorICAgICAgICByZXR1cm4gRVJSX09LOworI2lmIExXSVBfU05NUF9WM19DUllQVE8KKyAgICAgIGNhc2UgU05NUF9WM19BVVRIX0FMR09fTUQ1OgorICAgICAgICBzbm1wdjNfcGFzc3dvcmRfdG9fa2V5X21kNSgoY29uc3QgdThfdCopcGFzc3dvcmQsIHN0cmxlbihwYXNzd29yZCksIChjb25zdCB1OF90KillbmdpbmVpZCwgZW5naW5laWRfbGVuLCBwLT5hdXRoX2tleSk7CisgICAgICAgIHJldHVybiBFUlJfT0s7CisgICAgICBjYXNlIFNOTVBfVjNfQVVUSF9BTEdPX1NIQToKKyAgICAgICAgc25tcHYzX3Bhc3N3b3JkX3RvX2tleV9zaGEoKGNvbnN0IHU4X3QqKXBhc3N3b3JkLCBzdHJsZW4ocGFzc3dvcmQpLCAoY29uc3QgdThfdCopZW5naW5laWQsIGVuZ2luZWlkX2xlbiwgcC0+YXV0aF9rZXkpOworICAgICAgICByZXR1cm4gRVJSX09LOworI2VuZGlmCisgICAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gRVJSX1ZBTDsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICByZXR1cm4gRVJSX1ZBTDsKK30KKworZXJyX3QKK3NubXB2M19zZXRfdXNlcl9wcml2X2tleShjb25zdCBjaGFyICp1c2VybmFtZSwgY29uc3QgY2hhciAqcGFzc3dvcmQpCit7CisgIHN0cnVjdCB1c2VyX3RhYmxlX2VudHJ5ICpwID0gZ2V0X3VzZXIodXNlcm5hbWUpOworICBjb25zdCBjaGFyICplbmdpbmVpZDsKKyAgdThfdCBlbmdpbmVpZF9sZW47CisKKyAgaWYgKHApIHsKKyAgICAvKiBwYXNzd29yZCBzaG91bGQgYmUgYXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGxvbmcgKi8KKyAgICBpZiAoc3RybGVuKHBhc3N3b3JkKSA+PSA4KSB7CisgICAgICBtZW1zZXQocC0+cHJpdl9rZXksIDAsIHNpemVvZihwLT5wcml2X2tleSkpOworICAgICAgc25tcHYzX2dldF9lbmdpbmVfaWQoJmVuZ2luZWlkLCAmZW5naW5laWRfbGVuKTsKKyAgICAgIHN3aXRjaCAocC0+YXV0aF9hbGdvKSB7CisgICAgICBjYXNlIFNOTVBfVjNfQVVUSF9BTEdPX0lOVkFMOgorICAgICAgICByZXR1cm4gRVJSX09LOworI2lmIExXSVBfU05NUF9WM19DUllQVE8KKyAgICAgIGNhc2UgU05NUF9WM19BVVRIX0FMR09fTUQ1OgorICAgICAgICBzbm1wdjNfcGFzc3dvcmRfdG9fa2V5X21kNSgoY29uc3QgdThfdCopcGFzc3dvcmQsIHN0cmxlbihwYXNzd29yZCksIChjb25zdCB1OF90KillbmdpbmVpZCwgZW5naW5laWRfbGVuLCBwLT5wcml2X2tleSk7CisgICAgICAgIHJldHVybiBFUlJfT0s7CisgICAgICBjYXNlIFNOTVBfVjNfQVVUSF9BTEdPX1NIQToKKyAgICAgICAgc25tcHYzX3Bhc3N3b3JkX3RvX2tleV9zaGEoKGNvbnN0IHU4X3QqKXBhc3N3b3JkLCBzdHJsZW4ocGFzc3dvcmQpLCAoY29uc3QgdThfdCopZW5naW5laWQsIGVuZ2luZWlkX2xlbiwgcC0+cHJpdl9rZXkpOworICAgICAgICByZXR1cm4gRVJSX09LOworI2VuZGlmCisgICAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gRVJSX1ZBTDsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICByZXR1cm4gRVJSX1ZBTDsKK30KKworLyoqCisgKiBAYnJpZWYgICBHZXQgdGhlIHN0b3JhZ2UgdHlwZSBvZiB0aGUgZ2l2ZW4gdXNlcm5hbWUuCisgKgorICogQHBhcmFtW2luXSB1c2VybmFtZSAgcG9pbnRlciB0byB0aGUgdXNlcm5hbWUKKyAqIEBwYXJhbVtvdXRdIHR5cGUgICAgIHRoZSBzdG9yYWdlIHR5cGUKKyAqCisgKiBAcmV0dXJuICAgICAgICAgICAgICBFUlJfT0sgaWYgdGhlIHVzZXIgd2FzIGZvdW5kLCBFUlJfVkFMIGlmIG5vdC4KKyAqLworZXJyX3QKK3NubXB2M19nZXRfdXNlcl9zdG9yYWdldHlwZShjb25zdCBjaGFyICp1c2VybmFtZSwgc25tcHYzX3VzZXJfc3RvcmFnZXR5cGVfdCAqdHlwZSkKK3sKKyAgaWYgKGdldF91c2VyKHVzZXJuYW1lKSAhPSBOVUxMKSB7CisgICAgLyogRm91bmQgdXNlciBpbiB1c2VyIHRhYmxlCisgICAgICogSW4gdGhpcyBkdW1teSBpbXBsZW1lbnRhdGlvbiwgc3RvcmFnZSBpcyBwZXJtYW5lbnQgYmVjYXVzZSBubyB1c2VyIGNhbiBiZSBkZWxldGVkLgorICAgICAqIEFsbCBjaGFuZ2VzIHRvIHVzZXJzIGFyZSBsb3N0IGFmdGVyIGEgcmVib290LiovCisgICAgKnR5cGUgPSBTTk1QX1YzX1VTRVJfU1RPUkFHRVRZUEVfUEVSTUFORU5UOworICAgIHJldHVybiBFUlJfT0s7CisgIH0KKworICByZXR1cm4gRVJSX1ZBTDsKK30KKworLyoqCisgKiAgQHBhcmFtIHVzZXJuYW1lIGlzIGEgcG9pbnRlciB0byBhIHN0cmluZy4KKyAqIEBwYXJhbSBhdXRoX2FsZ28gaXMgYSBwb2ludGVyIHRvIHU4X3QuIFRoZSBpbXBsZW1lbnRhdGlvbiBoYXMgdG8gc2V0IHRoaXMgaWYgdXNlciB3YXMgZm91bmQuCisgKiBAcGFyYW0gYXV0aF9rZXkgaXMgYSBwb2ludGVyIHRvIGEgcG9pbnRlciB0byBhIHN0cmluZy4gSW1wbGVtZW50YXRpb24gaGFzIHRvIHNldCB0aGlzIGlmIHVzZXIgd2FzIGZvdW5kLgorICogQHBhcmFtIHByaXZfYWxnbyBpcyBhIHBvaW50ZXIgdG8gdThfdC4gVGhlIGltcGxlbWVudGF0aW9uIGhhcyB0byBzZXQgdGhpcyBpZiB1c2VyIHdhcyBmb3VuZC4KKyAqIEBwYXJhbSBwcml2X2tleSBpcyBhIHBvaW50ZXIgdG8gYSBwb2ludGVyIHRvIGEgc3RyaW5nLiBJbXBsZW1lbnRhdGlvbiBoYXMgdG8gc2V0IHRoaXMgaWYgdXNlciB3YXMgZm91bmQuCisgKi8KK2Vycl90Citzbm1wdjNfZ2V0X3VzZXIoY29uc3QgY2hhciogdXNlcm5hbWUsIHNubXB2M19hdXRoX2FsZ29fdCAqYXV0aF9hbGdvLCB1OF90ICphdXRoX2tleSwgc25tcHYzX3ByaXZfYWxnb190ICpwcml2X2FsZ28sIHU4X3QgKnByaXZfa2V5KQoreworICBjb25zdCBzdHJ1Y3QgdXNlcl90YWJsZV9lbnRyeSAqcDsKKyAgCisgIC8qIFRoZSBtc2dVc2VyTmFtZSBzcGVjaWZpZXMgdGhlIHVzZXIgKHByaW5jaXBhbCkgb24gd2hvc2UgYmVoYWxmIHRoZQorICAgICBtZXNzYWdlIGlzIGJlaW5nIGV4Y2hhbmdlZC4gTm90ZSB0aGF0IGEgemVyby1sZW5ndGggdXNlck5hbWUgd2lsbAorICAgICBub3QgbWF0Y2ggYW55IHVzZXIsIGJ1dCBpdCBjYW4gYmUgdXNlZCBmb3Igc25tcEVuZ2luZUlEIGRpc2NvdmVyeS4gKi8KKyAgaWYoc3RybGVuKHVzZXJuYW1lKSA9PSAwKSB7CisgICAgcmV0dXJuIEVSUl9PSzsKKyAgfQorICAKKyAgcCA9IGdldF91c2VyKHVzZXJuYW1lKTsKKworICBpZiAoIXApIHsKKyAgICByZXR1cm4gRVJSX1ZBTDsKKyAgfQorICAKKyAgaWYgKGF1dGhfYWxnbyAhPSBOVUxMKSB7CisgICAgKmF1dGhfYWxnbyA9IHAtPmF1dGhfYWxnbzsKKyAgfQorICBpZihhdXRoX2tleSAhPSBOVUxMKSB7CisgICAgTUVNQ1BZKGF1dGhfa2V5LCBwLT5hdXRoX2tleSwgc2l6ZW9mKHAtPmF1dGhfa2V5KSk7CisgIH0KKyAgaWYgKHByaXZfYWxnbyAhPSBOVUxMKSB7CisgICAgKnByaXZfYWxnbyA9IHAtPnByaXZfYWxnbzsKKyAgfQorICBpZihwcml2X2tleSAhPSBOVUxMKSB7CisgICAgTUVNQ1BZKHByaXZfa2V5LCBwLT5wcml2X2tleSwgc2l6ZW9mKHAtPnByaXZfa2V5KSk7CisgIH0KKyAgcmV0dXJuIEVSUl9PSzsKK30KKworLyoqCisgKiBHZXQgZW5naW5lIElEIGZyb20gcGVyc2lzdGVuY2UKKyAqLwordm9pZAorc25tcHYzX2dldF9lbmdpbmVfaWQoY29uc3QgY2hhciAqKmlkLCB1OF90ICpsZW4pCit7CisgICppZCA9IHNubXB2M19lbmdpbmVpZDsKKyAgKmxlbiA9IHNubXB2M19lbmdpbmVpZF9sZW47Cit9CisKKy8qKgorICogU3RvcmUgZW5naW5lIElEIGluIHBlcnNpc3RlbmNlCisgKi8KK2Vycl90Citzbm1wdjNfc2V0X2VuZ2luZV9pZChjb25zdCBjaGFyICppZCwgdThfdCBsZW4pCit7CisgIE1FTUNQWShzbm1wdjNfZW5naW5laWQsIGlkLCBsZW4pOworICBzbm1wdjNfZW5naW5laWRfbGVuID0gbGVuOworICByZXR1cm4gRVJSX09LOworfQorCisvKioKKyAqIEdldCBlbmdpbmUgYm9vdHMgZnJvbSBwZXJzaXN0ZW5jZS4gTXVzdCBiZSBpbmNyZWFzZWQgb24gZWFjaCBib290LgorICovCit1MzJfdAorc25tcHYzX2dldF9lbmdpbmVfYm9vdHModm9pZCkKK3sKKyAgcmV0dXJuIGVuZ2luZWJvb3RzOworfQorCisvKioKKyAqIFN0b3JlIGVuZ2luZSBib290cyBpbiBwZXJzaXN0ZW5jZQorICovCit2b2lkIAorc25tcHYzX3NldF9lbmdpbmVfYm9vdHModTMyX3QgYm9vdHMpCit7CisgIGVuZ2luZWJvb3RzID0gYm9vdHM7Cit9CisKKy8qKgorICogUkZDMzQxNCAyLjIuMi4KKyAqIE9uY2UgdGhlIHRpbWVyIHJlYWNoZXMgMjE0NzQ4MzY0NyBpdCBnZXRzIHJlc2V0IHRvIHplcm8gYW5kIHRoZQorICogZW5naW5lIGJvb3QgdXBzIGdldCBpbmNyZW1lbnRlZC4KKyAqLwordTMyX3QKK3NubXB2M19nZXRfZW5naW5lX3RpbWUodm9pZCkKK3sKKyAgcmV0dXJuIGVuZ2luZXRpbWU7Cit9CisKKy8qKgorICogUmVzZXQgY3VycmVudCBlbmdpbmUgdGltZSB0byAwCisgKi8KK3ZvaWQKK3NubXB2M19yZXNldF9lbmdpbmVfdGltZSh2b2lkKQoreworICBlbmdpbmV0aW1lID0gMDsKK30KKworLyoqCisgKiBJbml0aWFsaXplIGR1bW15IFNOTVB2MyBpbXBsZW1lbnRhdGlvbgorICovCit2b2lkCitzbm1wdjNfZHVtbXlfaW5pdCh2b2lkKQoreworICBzbm1wdjNfc2V0X2VuZ2luZV9pZCgiRk9PIiwgMyk7CisKKyAgc25tcHYzX3NldF91c2VyX2F1dGhfYWxnbygibHdpcCIsIFNOTVBfVjNfQVVUSF9BTEdPX1NIQSk7CisgIHNubXB2M19zZXRfdXNlcl9hdXRoX2tleSgibHdpcCIsICJtYXBsZXN5cnVwIik7CisKKyAgc25tcHYzX3NldF91c2VyX3ByaXZfYWxnbygibHdpcCIsIFNOTVBfVjNfUFJJVl9BTEdPX0RFUyk7CisgIHNubXB2M19zZXRfdXNlcl9wcml2X2tleSgibHdpcCIsICJtYXBsZXN5cnVwIik7CisKKyAgLyogU3RhcnQgdGhlIGVuZ2luZSB0aW1lIHRpbWVyICovCisgIHNubXB2M19lbmdpbmV0aW1lX3RpbWVyKE5VTEwpOworfQorCisjZW5kaWYgLyogTFdJUF9TTk1QICYmIExXSVBfU05NUF9WMyAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9zbm1wL3NubXBfdjMvc25tcHYzX2R1bW15LmggYi9jb250cmliL2V4YW1wbGVzL3NubXAvc25tcF92My9zbm1wdjNfZHVtbXkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTI1YjZkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9zbm1wL3NubXBfdjMvc25tcHYzX2R1bW15LmgKQEAgLTAsMCArMSw1MyBAQAorLyoqCisgKiBAZmlsZQorICogRHVtbXkgU05NUHYzIGZ1bmN0aW9ucy4KKyAqLworCisvKgorICogQ29weXJpZ2h0IChjKSAyMDE3IERpcmsgWmllZ2VsbWVpZXIuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogQXV0aG9yOiBEaXJrIFppZWdlbG1laWVyIDxkemllZ2VsQGdteC5kZT4KKyAqLworCisjaWZuZGVmIExXSVBfSERSX0FQUFNfU05NUF9WM19EVU1NWV9ICisjZGVmaW5lIExXSVBfSERSX0FQUFNfU05NUF9WM19EVU1NWV9ICisKKyNpbmNsdWRlICJsd2lwL2FwcHMvc25tcF9vcHRzLmgiCisjaW5jbHVkZSAibHdpcC9lcnIuaCIKKyNpbmNsdWRlICJsd2lwL2FwcHMvc25tcHYzLmgiCisKKyNpZiBMV0lQX1NOTVAgJiYgTFdJUF9TTk1QX1YzCisKK2Vycl90IHNubXB2M19zZXRfdXNlcl9hdXRoX2FsZ28oY29uc3QgY2hhciAqdXNlcm5hbWUsIHNubXB2M19hdXRoX2FsZ29fdCBhbGdvKTsKK2Vycl90IHNubXB2M19zZXRfdXNlcl9wcml2X2FsZ28oY29uc3QgY2hhciAqdXNlcm5hbWUsIHNubXB2M19wcml2X2FsZ29fdCBhbGdvKTsKK2Vycl90IHNubXB2M19zZXRfdXNlcl9hdXRoX2tleShjb25zdCBjaGFyICp1c2VybmFtZSwgY29uc3QgY2hhciAqcGFzc3dvcmQpOworZXJyX3Qgc25tcHYzX3NldF91c2VyX3ByaXZfa2V5KGNvbnN0IGNoYXIgKnVzZXJuYW1lLCBjb25zdCBjaGFyICpwYXNzd29yZCk7CisKK3ZvaWQgc25tcHYzX2R1bW15X2luaXQodm9pZCk7CisKKyNlbmRpZiAvKiBMV0lQX1NOTVAgJiYgTFdJUF9TTk1QX1YzICovCisKKyNlbmRpZiAvKiBMV0lQX0hEUl9BUFBTX1NOTVBfVjNfRFVNTVlfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9leGFtcGxlcy9zbnRwL3NudHBfZXhhbXBsZS5jIGIvY29udHJpYi9leGFtcGxlcy9zbnRwL3NudHBfZXhhbXBsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZjZhYzgKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL2V4YW1wbGVzL3NudHAvc250cF9leGFtcGxlLmMKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogRGlyayBaaWVnZWxtZWllciA8ZHppZWdlbEBnbXguZGU+CisgKgorICovCisKKyNpbmNsdWRlIDx0aW1lLmg+CisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorI2luY2x1ZGUgImx3aXAvYXBwcy9zbnRwLmgiCisjaW5jbHVkZSAic250cF9leGFtcGxlLmgiCisjaW5jbHVkZSAibHdpcC9uZXRpZi5oIgorCit2b2lkCitzbnRwX3NldF9zeXN0ZW1fdGltZSh1MzJfdCBzZWMpCit7CisgIGNoYXIgYnVmWzMyXTsKKyAgc3RydWN0IHRtIGN1cnJlbnRfdGltZV92YWw7CisgIHRpbWVfdCBjdXJyZW50X3RpbWUgPSAodGltZV90KXNlYzsKKworI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKFdJTjMyKQorICBsb2NhbHRpbWVfcygmY3VycmVudF90aW1lX3ZhbCwgJmN1cnJlbnRfdGltZSk7CisjZWxzZQorICBsb2NhbHRpbWVfcigmY3VycmVudF90aW1lLCAmY3VycmVudF90aW1lX3ZhbCk7CisjZW5kaWYKKworICBzdHJmdGltZShidWYsIHNpemVvZihidWYpLCAiJWQuJW0uJVkgJUg6JU06JVMiLCAmY3VycmVudF90aW1lX3ZhbCk7CisgIExXSVBfUExBVEZPUk1fRElBRygoIlNOVFAgdGltZTogJXNcbiIsIGJ1ZikpOworfQorCit2b2lkCitzbnRwX2V4YW1wbGVfaW5pdCh2b2lkKQoreworICBzbnRwX3NldG9wZXJhdGluZ21vZGUoU05UUF9PUE1PREVfUE9MTCk7CisjaWYgTFdJUF9ESENQCisgIHNudHBfc2VydmVybW9kZV9kaGNwKDEpOyAvKiBnZXQgU05UUCBzZXJ2ZXIgdmlhIERIQ1AgKi8KKyNlbHNlIC8qIExXSVBfREhDUCAqLworI2lmIExXSVBfSVBWNAorICBzbnRwX3NldHNlcnZlcigwLCBuZXRpZl9pcF9ndzQobmV0aWZfZGVmYXVsdCkpOworI2VuZGlmIC8qIExXSVBfSVBWNCAqLworI2VuZGlmIC8qIExXSVBfREhDUCAqLworICBzbnRwX2luaXQoKTsKK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvc250cC9zbnRwX2V4YW1wbGUuaCBiL2NvbnRyaWIvZXhhbXBsZXMvc250cC9zbnRwX2V4YW1wbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGZjMTBkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy9zbnRwL3NudHBfZXhhbXBsZS5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIAorICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICogCisgKiBBdXRob3I6IERpcmsgWmllZ2VsbWVpZXIgPGR6aWVnZWxAZ214LmRlPgorICoKKyAqLworCisjaWZuZGVmIFNOVFBfRVhBTVBMRV9ICisjZGVmaW5lIFNOVFBfRVhBTVBMRV9ICisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordm9pZCBzbnRwX2V4YW1wbGVfaW5pdCh2b2lkKTsKKwordm9pZCBzbnRwX3NldF9zeXN0ZW1fdGltZSh1MzJfdCBzZWMpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogU05UUF9FWEFNUExFX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvdGZ0cC90ZnRwX2V4YW1wbGUuYyBiL2NvbnRyaWIvZXhhbXBsZXMvdGZ0cC90ZnRwX2V4YW1wbGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTE0MDE0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy90ZnRwL3RmdHBfZXhhbXBsZS5jCkBAIC0wLDAgKzEsMTU1IEBACisvKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBEaXJrIFppZWdlbG1laWVyIDxkemllZ2VsQGdteC5kZT4KKyAqCisgKi8KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpbmNsdWRlICJsd2lwL2FwcHMvdGZ0cF9jbGllbnQuaCIKKyNpbmNsdWRlICJsd2lwL2FwcHMvdGZ0cF9zZXJ2ZXIuaCIKKyNpbmNsdWRlICJ0ZnRwX2V4YW1wbGUuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaWYgTFdJUF9VRFAKKworLyogRGVmaW5lIGEgYmFzZSBkaXJlY3RvcnkgZm9yIFRGVFAgYWNjZXNzCisgKiBBVFRFTlRJT046IFRoaXMgY29kZSBkb2VzIE5PVCBjaGVjayBmb3Igc2FuZGJveGluZywKKyAqIGkuZS4gJy4uJyBpbiBwYXRocyBpcyBub3QgY2hlY2tlZCEgKi8KKyNpZm5kZWYgTFdJUF9URlRQX0VYQU1QTEVfQkFTRV9ESVIKKyNkZWZpbmUgTFdJUF9URlRQX0VYQU1QTEVfQkFTRV9ESVIgIiIKKyNlbmRpZgorCisvKiBEZWZpbmUgdGhpcyB0byBhIGZpbGUgdG8gZ2V0IHZpYSB0ZnRwIGNsaWVudCAqLworI2lmbmRlZiBMV0lQX1RGVFBfRVhBTVBMRV9DTElFTlRfRklMRU5BTUUKKyNkZWZpbmUgTFdJUF9URlRQX0VYQU1QTEVfQ0xJRU5UX0ZJTEVOQU1FICJ0ZXN0LmJpbiIKKyNlbmRpZgorCisvKiBEZWZpbmUgdGhpcyB0byBhIHNlcnZlciBJUCBzdHJpbmcgKi8KKyNpZm5kZWYgTFdJUF9URlRQX0VYQU1QTEVfQ0xJRU5UX1JFTU9URUlQCisjZGVmaW5lIExXSVBfVEZUUF9FWEFNUExFX0NMSUVOVF9SRU1PVEVJUCAiMTkyLjE2OC4wLjEiCisjZW5kaWYKKworc3RhdGljIGNoYXIgZnVsbF9maWxlbmFtZVsyNTZdOworCitzdGF0aWMgdm9pZCAqCit0ZnRwX29wZW5fZmlsZShjb25zdCBjaGFyKiBmbmFtZSwgdThfdCBpc193cml0ZSkKK3sKKyAgc25wcmludGYoZnVsbF9maWxlbmFtZSwgc2l6ZW9mKGZ1bGxfZmlsZW5hbWUpLCAiJXMlcyIsIExXSVBfVEZUUF9FWEFNUExFX0JBU0VfRElSLCBmbmFtZSk7CisgIGZ1bGxfZmlsZW5hbWVbc2l6ZW9mKGZ1bGxfZmlsZW5hbWUpLTFdID0gMDsKKworICBpZiAoaXNfd3JpdGUpIHsKKyAgICByZXR1cm4gKHZvaWQqKWZvcGVuKGZ1bGxfZmlsZW5hbWUsICJ3YiIpOworICB9IGVsc2UgeworICAgIHJldHVybiAodm9pZCopZm9wZW4oZnVsbF9maWxlbmFtZSwgInJiIik7CisgIH0KK30KKworc3RhdGljIHZvaWQqCit0ZnRwX29wZW4oY29uc3QgY2hhciogZm5hbWUsIGNvbnN0IGNoYXIqIG1vZGUsIHU4X3QgaXNfd3JpdGUpCit7CisgIExXSVBfVU5VU0VEX0FSRyhtb2RlKTsKKyAgcmV0dXJuIHRmdHBfb3Blbl9maWxlKGZuYW1lLCBpc193cml0ZSk7Cit9CisKK3N0YXRpYyB2b2lkCit0ZnRwX2Nsb3NlKHZvaWQqIGhhbmRsZSkKK3sKKyAgZmNsb3NlKChGSUxFKiloYW5kbGUpOworfQorCitzdGF0aWMgaW50Cit0ZnRwX3JlYWQodm9pZCogaGFuZGxlLCB2b2lkKiBidWYsIGludCBieXRlcykKK3sKKyAgaW50IHJldCA9IGZyZWFkKGJ1ZiwgMSwgYnl0ZXMsIChGSUxFKiloYW5kbGUpOworICBpZiAocmV0IDw9IDApIHsKKyAgICByZXR1cm4gLTE7CisgIH0KKyAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludAordGZ0cF93cml0ZSh2b2lkKiBoYW5kbGUsIHN0cnVjdCBwYnVmKiBwKQoreworICB3aGlsZSAocCAhPSBOVUxMKSB7CisgICAgaWYgKGZ3cml0ZShwLT5wYXlsb2FkLCAxLCBwLT5sZW4sIChGSUxFKiloYW5kbGUpICE9IChzaXplX3QpcC0+bGVuKSB7CisgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHAgPSBwLT5uZXh0OworICB9CisKKyAgcmV0dXJuIDA7Cit9CisKKy8qIEZvciBURlRQIGNsaWVudCBvbmx5ICovCitzdGF0aWMgdm9pZAordGZ0cF9lcnJvcih2b2lkKiBoYW5kbGUsIGludCBlcnIsIGNvbnN0IGNoYXIqIG1zZywgaW50IHNpemUpCit7CisgIGNoYXIgbWVzc2FnZVsxMDBdOworCisgIExXSVBfVU5VU0VEX0FSRyhoYW5kbGUpOworCisgIG1lbXNldChtZXNzYWdlLCAwLCBzaXplb2YobWVzc2FnZSkpOworICBNRU1DUFkobWVzc2FnZSwgbXNnLCBMV0lQX01JTihzaXplb2YobWVzc2FnZSktMSwgKHNpemVfdClzaXplKSk7CisKKyAgcHJpbnRmKCJURlRQIGVycm9yOiAlZCAoJXMpIiwgZXJyLCBtZXNzYWdlKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCB0ZnRwX2NvbnRleHQgdGZ0cCA9IHsKKyAgdGZ0cF9vcGVuLAorICB0ZnRwX2Nsb3NlLAorICB0ZnRwX3JlYWQsCisgIHRmdHBfd3JpdGUsCisgIHRmdHBfZXJyb3IKK307CisKK3ZvaWQKK3RmdHBfZXhhbXBsZV9pbml0X3NlcnZlcih2b2lkKQoreworICB0ZnRwX2luaXRfc2VydmVyKCZ0ZnRwKTsKK30KKwordm9pZAordGZ0cF9leGFtcGxlX2luaXRfY2xpZW50KHZvaWQpCit7CisgIHZvaWQgKmY7CisgIGVycl90IGVycjsKKyAgaXBfYWRkcl90IHNydjsKKyAgaW50IHJldCA9IGlwYWRkcl9hdG9uKExXSVBfVEZUUF9FWEFNUExFX0NMSUVOVF9SRU1PVEVJUCwgJnNydik7CisgIExXSVBfQVNTRVJUKCJpcGFkZHJfYXRvbiBmYWlsZWQiLCByZXQgPT0gMSk7CisKKyAgZXJyID0gdGZ0cF9pbml0X2NsaWVudCgmdGZ0cCk7CisgIExXSVBfQVNTRVJUKCJ0ZnRwX2luaXRfY2xpZW50IGZhaWxlZCIsIGVyciA9PSBFUlJfT0spOworCisgIGYgPSB0ZnRwX29wZW5fZmlsZShMV0lQX1RGVFBfRVhBTVBMRV9DTElFTlRfRklMRU5BTUUsIDEpOworICBMV0lQX0FTU0VSVCgiZmFpbGVkIHRvIGNyZWF0ZSBmaWxlIiwgZiAhPSBOVUxMKTsKKworICBlcnIgPSB0ZnRwX2dldChmLCAmc3J2LCBURlRQX1BPUlQsIExXSVBfVEZUUF9FWEFNUExFX0NMSUVOVF9GSUxFTkFNRSwgVEZUUF9NT0RFX09DVEVUKTsKKyAgTFdJUF9BU1NFUlQoInRmdHBfZ2V0IGZhaWxlZCIsIGVyciA9PSBFUlJfT0spOworfQorCisjZW5kaWYgLyogTFdJUF9VRFAgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvZXhhbXBsZXMvdGZ0cC90ZnRwX2V4YW1wbGUuaCBiL2NvbnRyaWIvZXhhbXBsZXMvdGZ0cC90ZnRwX2V4YW1wbGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzQwNzAwCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9leGFtcGxlcy90ZnRwL3RmdHBfZXhhbXBsZS5oCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBUbyBjaGFuZ2UgdGhpcyBsaWNlbnNlIGhlYWRlciwgY2hvb3NlIExpY2Vuc2UgSGVhZGVycyBpbiBQcm9qZWN0IFByb3BlcnRpZXMuCisgKiBUbyBjaGFuZ2UgdGhpcyB0ZW1wbGF0ZSBmaWxlLCBjaG9vc2UgVG9vbHMgfCBUZW1wbGF0ZXMKKyAqIGFuZCBvcGVuIHRoZSB0ZW1wbGF0ZSBpbiB0aGUgZWRpdG9yLgorICovCisKKy8qIAorICogRmlsZTogICB0ZnRwX2V4YW1wbGUuaAorICogQXV0aG9yOiBkemllZ2VsCisgKgorICogQ3JlYXRlZCBvbiBGZWJydWFyeSAxNywgMjAxOCwgMzo0MyBQTQorICovCisKKyNpZm5kZWYgVEZUUF9FWEFNUExFX0gKKyNkZWZpbmUgVEZUUF9FWEFNUExFX0gKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCit2b2lkIHRmdHBfZXhhbXBsZV9pbml0X3NlcnZlcih2b2lkKTsKK3ZvaWQgdGZ0cF9leGFtcGxlX2luaXRfY2xpZW50KHZvaWQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogVEZUUF9FWEFNUExFX0ggKi8KKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy9DTWFrZUNvbW1vbi5jbWFrZSBiL2NvbnRyaWIvcG9ydHMvQ01ha2VDb21tb24uY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU2YjU5YwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvQ01ha2VDb21tb24uY21ha2UKQEAgLTAsMCArMSwxMjggQEAKK2lmKE5PVCAke0NNQUtFX1ZFUlNJT059IFZFUlNJT05fTEVTUyAiMy4xMC4wIikKKyAgICBpbmNsdWRlX2d1YXJkKEdMT0JBTCkKK2VuZGlmKCkKKworaWYoTk9UIENNQUtFX0JVSUxEX1RZUEUpCisgICAgbWVzc2FnZShTVEFUVVMgICJDTUFLRV9CVUlMRF9UWVBFIG5vdCBzZXQgLSBkZWZhdWx0aW5nIHRvIERlYnVnIGJ1aWxkLiIpCisgICAgc2V0KENNQUtFX0JVSUxEX1RZUEUgRGVidWcgQ0FDSEUgU1RSSU5HICJDaG9vc2UgdGhlIHR5cGUgb2YgYnVpbGQsIG9wdGlvbnMgYXJlOiAke0NNQUtFX0NPTkZJR1VSQVRJT05fVFlQRVN9LiIgRk9SQ0UpCitlbmRpZigpCittZXNzYWdlIChTVEFUVVMgIkJ1aWxkIHR5cGU6ICR7Q01BS0VfQlVJTERfVFlQRX0iKQorCitzZXQoTFdJUF9DT05UUklCX0RJUiAke0xXSVBfRElSfS9jb250cmliKQorCisjIEFSTSBtYmVkdGxzIHN1cHBvcnQgaHR0cHM6Ly90bHMubWJlZC5vcmcvCitpZihOT1QgREVGSU5FRCBMV0lQX01CRURUTFNESVIpCisgICAgc2V0KExXSVBfTUJFRFRMU0RJUiAke0xXSVBfRElSfS8uLi9tYmVkdGxzKQorICAgIG1lc3NhZ2UoU1RBVFVTICJMV0lQX01CRURUTFNESVIgbm90IHNldCAtIHVzaW5nIGRlZmF1bHQgbG9jYXRpb24gJHtMV0lQX01CRURUTFNESVJ9IikKK2VuZGlmKCkKK2lmKEVYSVNUUyAke0xXSVBfTUJFRFRMU0RJUn0vQ01ha2VMaXN0cy50eHQpCisgICAgc2V0KExXSVBfSEFWRV9NQkVEVExTIE9OIEJPT0wpCisKKyAgICAjIFByZXZlbnQgYnVpbGRpbmcgTUJFRFRMUyBwcm9ncmFtcyBhbmQgdGVzdHMKKyAgICBzZXQoRU5BQkxFX1BST0dSQU1TIE9GRiBDQUNIRSBCT09MICIiKQorICAgIHNldChFTkFCTEVfVEVTVElORyAgT0ZGIENBQ0hFIEJPT0wgIiIpCisKKyAgICAjIG1iZWR0bHMgdXNlcyBjbWFrZS4gU3dlZXQhCisgICAgYWRkX3N1YmRpcmVjdG9yeSgke0xXSVBfTUJFRFRMU0RJUn0gbWJlZHRscykKKworICAgIHNldCAoTFdJUF9NQkVEVExTX0RFRklOSVRJT05TCisgICAgICAgIExXSVBfSEFWRV9NQkVEVExTPTEKKyAgICApCisgICAgc2V0IChMV0lQX01CRURUTFNfSU5DTFVERV9ESVJTCisgICAgICAgICR7TFdJUF9NQkVEVExTRElSfS9pbmNsdWRlCisgICAgKQorICAgIHNldCAoTFdJUF9NQkVEVExTX0xJTktfTElCUkFSSUVTCisgICAgICAgIG1iZWR0bHMKKyAgICAgICAgbWJlZGNyeXB0bworICAgICAgICBtYmVkeDUwOQorICAgICkKK2VuZGlmKCkKKworc2V0KExXSVBfQ09NUElMRVJfRkxBR1NfR05VX0NMQU5HCisgICAgJDwkPENPTkZJRzpEZWJ1Zz46LU9nPgorICAgICQ8JDxDT05GSUc6RGVidWc+Oi1nPgorICAgICQ8JDxDT05GSUc6UmVsZWFzZT46LU8zPgorICAgIC1XYWxsCisgICAgLXBlZGFudGljCisgICAgLVdlcnJvcgorICAgIC1XcGFyZW50aGVzZXMKKyAgICAtV3NlcXVlbmNlLXBvaW50CisgICAgLVdzd2l0Y2gtZGVmYXVsdAorICAgIC1XZXh0cmEKKyAgICAtV3VuZGVmCisgICAgLVdzaGFkb3cKKyAgICAtV3BvaW50ZXItYXJpdGgKKyAgICAtV2Nhc3QtcXVhbAorICAgIC1Xd3JpdGUtc3RyaW5ncworICAgICAkPCQ8Q09NUElMRV9MQU5HVUFHRTpDPjotV29sZC1zdHlsZS1kZWZpbml0aW9uPgorICAgIC1XY2FzdC1hbGlnbgorICAgICAkPCQ8Q09NUElMRV9MQU5HVUFHRTpDPjotV21pc3NpbmctcHJvdG90eXBlcz4KKyAgICAgJDwkPENPTVBJTEVfTEFOR1VBR0U6Qz46LVduZXN0ZWQtZXh0ZXJucz4KKyAgICAtV3VucmVhY2hhYmxlLWNvZGUKKyAgICAtV3VuaW5pdGlhbGl6ZWQKKyAgICAtV21pc3NpbmctcHJvdG90eXBlcworICAgIC1XYWdncmVnYXRlLXJldHVybgorICAgIC1XbG9naWNhbC1ub3QtcGFyZW50aGVzZXMKKykKKworaWYgKE5PVCBMV0lQX0hBVkVfTUJFRFRMUykKKyAgICBsaXN0KEFQUEVORCBMV0lQX0NPTVBJTEVSX0ZMQUdTX0dOVV9DTEFORworICAgICAgICAtV3JlZHVuZGFudC1kZWNscworICAgICAgICAkPCQ8Q09NUElMRV9MQU5HVUFHRTpDPjotV2MrKy1jb21wYXQ+CisgICAgKQorZW5kaWYoKQorCitpZihDTUFLRV9DX0NPTVBJTEVSX0lEIFNUUkVRVUFMICJHTlUiKQorICAgIGxpc3QoQVBQRU5EIExXSVBfQ09NUElMRVJfRkxBR1NfR05VX0NMQU5HCisgICAgICAgIC1XbG9naWNhbC1vcAorICAgICAgICAtV3RyYW1wb2xpbmVzCisgICAgKQorCisgICAgaWYgKE5PVCBMV0lQX0hBVkVfTUJFRFRMUykKKyAgICAgICAgbGlzdChBUFBFTkQgTFdJUF9DT01QSUxFUl9GTEFHU19HTlVfQ0xBTkcKKyAgICAgICAgICAgICQ8JDxDT01QSUxFX0xBTkdVQUdFOkM+Oi1XYzkwLWM5OS1jb21wYXQ+CisgICAgICAgICkKKyAgICBlbmRpZigpCisKKyAgICBpZihOT1QgQ01BS0VfQ19DT01QSUxFUl9WRVJTSU9OIFZFUlNJT05fTEVTUyA0LjkpCisgICAgICAgIGlmKExXSVBfVVNFX1NBTklUSVpFUlMpCisgICAgICAgICAgICBsaXN0KEFQUEVORCBMV0lQX0NPTVBJTEVSX0ZMQUdTX0dOVV9DTEFORworICAgICAgICAgICAgICAgIC1mc2FuaXRpemU9YWRkcmVzcworICAgICAgICAgICAgICAgIC1mc2FuaXRpemU9dW5kZWZpbmVkCisgICAgICAgICAgICAgICAgLWZuby1zYW5pdGl6ZT1hbGlnbm1lbnQKKyAgICAgICAgICAgICAgICAtZnN0YWNrLXByb3RlY3RvcgorICAgICAgICAgICAgICAgIC1mc3RhY2stY2hlY2sKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHNldChMV0lQX1NBTklUSVpFUl9MSUJTIGFzYW4gdWJzYW4pCisgICAgICAgIGVuZGlmKCkKKyAgICBlbmRpZigpCisKKyAgICBzZXQoTFdJUF9DT01QSUxFUl9GTEFHUyAke0xXSVBfQ09NUElMRVJfRkxBR1NfR05VX0NMQU5HfSkKK2VuZGlmKCkKKworaWYoQ01BS0VfQ19DT01QSUxFUl9JRCBTVFJFUVVBTCAiQ2xhbmciKQorICAgIGxpc3QoQVBQRU5EIExXSVBfQ09NUElMRVJfRkxBR1NfR05VX0NMQU5HCisgICAgICAgIC1XZG9jdW1lbnRhdGlvbgorICAgICAgICAtV25vLWRvY3VtZW50YXRpb24tZGVwcmVjYXRlZC1zeW5jCisgICAgKQorCisgICAgaWYoTFdJUF9VU0VfU0FOSVRJWkVSUykKKyAgICAgICAgbGlzdChBUFBFTkQgTFdJUF9DT01QSUxFUl9GTEFHU19HTlVfQ0xBTkcKKyAgICAgICAgICAgIC1mc2FuaXRpemU9YWRkcmVzcworICAgICAgICAgICAgLWZzYW5pdGl6ZT11bmRlZmluZWQKKyAgICAgICAgICAgIC1mbm8tc2FuaXRpemU9YWxpZ25tZW50CisgICAgICAgICkKKyAgICAgICAgc2V0KExXSVBfU0FOSVRJWkVSX0xJQlMgYXNhbiB1YnNhbikKKyAgICBlbmRpZigpCisKKyAgICBzZXQoTFdJUF9DT01QSUxFUl9GTEFHUyAke0xXSVBfQ09NUElMRVJfRkxBR1NfR05VX0NMQU5HfSkKK2VuZGlmKCkKKworaWYoQ01BS0VfQ19DT01QSUxFUl9JRCBTVFJFUVVBTCAiTVNWQyIpCisgICAgc2V0KExXSVBfQ09NUElMRVJfRkxBR1MKKyAgICAgICAgJDwkPENPTkZJRzpEZWJ1Zz46L09kPgorICAgICAgICAkPCQ8Q09ORklHOlJlbGVhc2U+Oi9PeD4KKyAgICAgICAgL1c0CisgICAgICAgIC9XWAorICAgICkKK2VuZGlmKCkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvQ29tbW9uLmFsbHBvcnRzLm1rIGIvY29udHJpYi9wb3J0cy9Db21tb24uYWxscG9ydHMubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ5YmE2YQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvQ29tbW9uLmFsbHBvcnRzLm1rCkBAIC0wLDAgKzEsOTEgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAorIyAKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisjIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyMKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorIyAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisjICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyMgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgCisjIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyMgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCAKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyMgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiAKKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyMgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorIyBPRiBTVUNIIERBTUFHRS4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorIyAKKyMgQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyMKKworI0NDPWdjYworI0NDPWNsYW5nCitDQ0RFUD89JChDQykKKworQ0ZMQUdTKz0tZyAtRExXSVBfREVCVUcgLVdhbGwgLXBlZGFudGljIC1XZXJyb3IgXAorCS1XcGFyZW50aGVzZXMgLVdzZXF1ZW5jZS1wb2ludCAtV3N3aXRjaC1kZWZhdWx0IFwKKwktV2V4dHJhIC1XdW5kZWYgLVdzaGFkb3cgLVdwb2ludGVyLWFyaXRoIC1XY2FzdC1xdWFsIFwKKwktV2MrKy1jb21wYXQgLVd3cml0ZS1zdHJpbmdzIC1Xb2xkLXN0eWxlLWRlZmluaXRpb24gLVdjYXN0LWFsaWduIFwKKwktV21pc3NpbmctcHJvdG90eXBlcyAtV25lc3RlZC1leHRlcm5zIFwKKwktV3VucmVhY2hhYmxlLWNvZGUgLVd1bmluaXRpYWxpemVkIC1XbWlzc2luZy1wcm90b3R5cGVzIFwKKwktV3JlZHVuZGFudC1kZWNscyAtV2FnZ3JlZ2F0ZS1yZXR1cm4gLVdsb2dpY2FsLW5vdC1wYXJlbnRoZXNlcworIwktV2NvbnZlcnNpb24gLVdzaWduLWNvbXBhcmUgLVdtaXNzaW5nLWluY2x1ZGUtZGlycworCitpZmVxICgsJChmaW5kc3RyaW5nIGNsYW5nLCQoQ0MpKSkKK0NGTEFHUys9IC1XbG9naWNhbC1vcCAtV2M5MC1jOTktY29tcGF0IC1XdHJhbXBvbGluZXMKKyMgaWYgR0NDIGlzIG5ld2VyIHRoYW4gNC44LzQuOSB5b3UgbWF5IHVzZToKKyNDRkxBR1M6PSQoQ0ZMQUdTKSAtZnNhbml0aXplPWFkZHJlc3MgLWZzdGFjay1wcm90ZWN0b3IgLWZzdGFjay1jaGVjayAtZnNhbml0aXplPXVuZGVmaW5lZCAtZm5vLXNhbml0aXplPWFsaWdubWVudAorZWxzZQorIyB3ZSBjYW5ub3Qgc2FuaXRpemUgYWxpZ25tZW50IG9uIHg4Ni02NCB0YXJnZXRzIGJlY2F1c2UgY2xhbmcgd2FudHMgNjQgYml0IGFsaWdubWVudAorQ0ZMQUdTKz0gLWZzYW5pdGl6ZT1hZGRyZXNzIC1mc2FuaXRpemU9dW5kZWZpbmVkIC1mbm8tc2FuaXRpemU9YWxpZ25tZW50IC1XZG9jdW1lbnRhdGlvbiAtV25vLWRvY3VtZW50YXRpb24tZGVwcmVjYXRlZC1zeW5jCitlbmRpZgorCitDT05UUklCRElSPz0uLi8uLi8uLgorQVJGTEFHUz89cnMKKworI1NldCB0aGlzIHRvIHdoZXJlIHlvdSBoYXZlIHRoZSBsd2lwIGNvcmUgbW9kdWxlIGNoZWNrZWQgb3V0IGZyb20gZ2l0CisjZGVmYXVsdCBhc3N1bWVzIGl0J3MgYSBkaXIgYWJvdmUgdGhlIGNvbnRyaWIgbW9kdWxlCitMV0lQRElSPz0kKENPTlRSSUJESVIpLy4uCisKK0NGTEFHUys9LUkuIFwKKwktSSQoQ09OVFJJQkRJUikgXAorCS1JJChMV0lQRElSKS9pbmNsdWRlIFwKKwktSSQoTFdJUEFSQ0gpL2luY2x1ZGUKKworIyBBZGQgaW5jbHVkZSBwYXRoIGFuZCBsaW5rIHRvIG1iZWRUTFMgbGliIGlmIGF2YWlsYWJsZQorTUJFRFRMU0RJUj89JChMV0lQRElSKS8uLi9tYmVkdGxzCitpZm5lcSAoLCQod2lsZGNhcmQgJChNQkVEVExTRElSKS9pbmNsdWRlL21iZWR0bHMvKi5oKSkKK0xERkxBR1MrPS1MJChNQkVEVExTRElSKS9saWJyYXJ5IC1sbWJlZHRscyAtbG1iZWRjcnlwdG8gLWxtYmVkeDUwOQorQ0ZMQUdTKz0tSSQoTUJFRFRMU0RJUikvaW5jbHVkZSAtV25vLXJlZHVuZGFudC1kZWNscyAtRExXSVBfSEFWRV9NQkVEVExTPTEgLVduby1jOTAtYzk5LWNvbXBhdAorZW5kaWYKKworaW5jbHVkZSAkKENPTlRSSUJESVIpL0ZpbGVsaXN0cy5taworaW5jbHVkZSAkKExXSVBESVIpL0ZpbGVsaXN0cy5taworCisjIExXSVBGSUxFUzogQWxsIHRoZSBhYm92ZS4KK0xXSVBGSUxFUz0kKExXSVBOT0FQUFNGSUxFUykgJChBUkNIRklMRVMpCitMV0lQT0JKUz0kKG5vdGRpciAkKExXSVBGSUxFUzouYz0ubykpCisKK0xXSVBMSUJDT01NT049bGlibHdpcGNvbW1vbi5hCiskKExXSVBMSUJDT01NT04pOiAkKExXSVBPQkpTKQorCSQoQVIpICQoQVJGTEFHUykgJChMV0lQTElCQ09NTU9OKSAkPworCitBUFBGSUxFUz0kKENPTlRSSUJBUFBGSUxFUykgJChMV0lQQVBQRklMRVMpCitBUFBMSUI9bGlibHdpcGFwcHMuYQorQVBQT0JKUz0kKG5vdGRpciAkKEFQUEZJTEVTOi5jPS5vKSkKKyQoQVBQTElCKTogJChBUFBPQkpTKQorCSQoQVIpICQoQVJGTEFHUykgJChBUFBMSUIpICQ/CisKKyUubzoKKwkkKENDKSAkKENGTEFHUykgLWMgJDwKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvZnJlZXJ0b3MvaW5jbHVkZS9hcmNoL3N5c19hcmNoLmggYi9jb250cmliL3BvcnRzL2ZyZWVydG9zL2luY2x1ZGUvYXJjaC9zeXNfYXJjaC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjZmM4ODkKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL2ZyZWVydG9zL2luY2x1ZGUvYXJjaC9zeXNfYXJjaC5oCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU2ltb24gR29sZHNjaG1pZHQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBTaW1vbiBHb2xkc2NobWRpdCA8Z29sZHNpbW9uQGdteC5kZT4KKyAqCisgKi8KKyNpZm5kZWYgTFdJUF9BUkNIX1NZU19BUkNIX0gKKyNkZWZpbmUgTFdJUF9BUkNIX1NZU19BUkNIX0gKKworI2luY2x1ZGUgImx3aXAvb3B0LmgiCisjaW5jbHVkZSAibHdpcC9hcmNoLmgiCisKKy8qKiBUaGlzIGlzIHJldHVybmVkIGJ5IF9mcm9taXNyKCkgc3lzIGZ1bmN0aW9ucyB0byB0ZWxsIHRoZSBvdXRlcm1vc3QgZnVuY3Rpb24KKyAqIHRoYXQgYSBoaWdoZXIgcHJpb3JpdHkgdGFzayB3YXMgd29rZW4gYW5kIHRoZSBzY2hlZHVsZXIgbmVlZHMgdG8gYmUgaW52b2tlZC4KKyAqLworI2RlZmluZSBFUlJfTkVFRF9TQ0hFRCAxMjMKKworLyogVGhpcyBwb3J0IGluY2x1ZGVzIEZyZWVSVE9TIGhlYWRlcnMgaW4gc3lzX2FyY2guYyBvbmx5LgorICogIEZyZWVSVE9TIHVzZXMgcG9pbnRlcnMgYXMgb2JqZWN0IHR5cGVzLiBXZSB1c2Ugd3JhcHBlciBzdHJ1Y3RzIGluc3RlYWQgb2YKKyAqIHZvaWQgcG9pbnRlcnMgZGlyZWN0bHkgdG8gZ2V0IGEgdGlueSBiaXQgb2YgdHlwZSBzYWZldHkuCisgKi8KKwordm9pZCBzeXNfYXJjaF9tc2xlZXAodTMyX3QgZGVsYXlfbXMpOworI2RlZmluZSBzeXNfbXNsZWVwKG1zKSBzeXNfYXJjaF9tc2xlZXAobXMpCisKKyNpZiBTWVNfTElHSFRXRUlHSFRfUFJPVAordHlwZWRlZiB1MzJfdCBzeXNfcHJvdF90OworI2VuZGlmIC8qIFNZU19MSUdIVFdFSUdIVF9QUk9UICovCisKKyNpZiAhTFdJUF9DT01QQVRfTVVURVgKK3N0cnVjdCBfc3lzX211dCB7CisgIHZvaWQgKm11dDsKK307Cit0eXBlZGVmIHN0cnVjdCBfc3lzX211dCBzeXNfbXV0ZXhfdDsKKyNkZWZpbmUgc3lzX211dGV4X3ZhbGlkX3ZhbChtdXRleCkgICAoKG11dGV4KS5tdXQgIT0gTlVMTCkKKyNkZWZpbmUgc3lzX211dGV4X3ZhbGlkKG11dGV4KSAgICAgICAoKChtdXRleCkgIT0gTlVMTCkgJiYgc3lzX211dGV4X3ZhbGlkX3ZhbCgqKG11dGV4KSkpCisjZGVmaW5lIHN5c19tdXRleF9zZXRfaW52YWxpZChtdXRleCkgKChtdXRleCktPm11dCA9IE5VTEwpCisjZW5kaWYgLyogIUxXSVBfQ09NUEFUX01VVEVYICovCisKK3N0cnVjdCBfc3lzX3NlbSB7CisgIHZvaWQgKnNlbTsKK307Cit0eXBlZGVmIHN0cnVjdCBfc3lzX3NlbSBzeXNfc2VtX3Q7CisjZGVmaW5lIHN5c19zZW1fdmFsaWRfdmFsKHNlbWEpICAgKChzZW1hKS5zZW0gIT0gTlVMTCkKKyNkZWZpbmUgc3lzX3NlbV92YWxpZChzZW1hKSAgICAgICAoKChzZW1hKSAhPSBOVUxMKSAmJiBzeXNfc2VtX3ZhbGlkX3ZhbCgqKHNlbWEpKSkKKyNkZWZpbmUgc3lzX3NlbV9zZXRfaW52YWxpZChzZW1hKSAoKHNlbWEpLT5zZW0gPSBOVUxMKQorCitzdHJ1Y3QgX3N5c19tYm94IHsKKyAgdm9pZCAqbWJ4OworfTsKK3R5cGVkZWYgc3RydWN0IF9zeXNfbWJveCBzeXNfbWJveF90OworI2RlZmluZSBzeXNfbWJveF92YWxpZF92YWwobWJveCkgICAoKG1ib3gpLm1ieCAhPSBOVUxMKQorI2RlZmluZSBzeXNfbWJveF92YWxpZChtYm94KSAgICAgICAoKChtYm94KSAhPSBOVUxMKSAmJiBzeXNfbWJveF92YWxpZF92YWwoKihtYm94KSkpCisjZGVmaW5lIHN5c19tYm94X3NldF9pbnZhbGlkKG1ib3gpICgobWJveCktPm1ieCA9IE5VTEwpCisKK3N0cnVjdCBfc3lzX3RocmVhZCB7CisgIHZvaWQgKnRocmVhZF9oYW5kbGU7Cit9OwordHlwZWRlZiBzdHJ1Y3QgX3N5c190aHJlYWQgc3lzX3RocmVhZF90OworCisjaWYgTFdJUF9ORVRDT05OX1NFTV9QRVJfVEhSRUFECitzeXNfc2VtX3QqIHN5c19hcmNoX25ldGNvbm5fc2VtX2dldCh2b2lkKTsKK3ZvaWQgc3lzX2FyY2hfbmV0Y29ubl9zZW1fYWxsb2Modm9pZCk7Cit2b2lkIHN5c19hcmNoX25ldGNvbm5fc2VtX2ZyZWUodm9pZCk7CisjZGVmaW5lIExXSVBfTkVUQ09OTl9USFJFQURfU0VNX0dFVCgpICAgc3lzX2FyY2hfbmV0Y29ubl9zZW1fZ2V0KCkKKyNkZWZpbmUgTFdJUF9ORVRDT05OX1RIUkVBRF9TRU1fQUxMT0MoKSBzeXNfYXJjaF9uZXRjb25uX3NlbV9hbGxvYygpCisjZGVmaW5lIExXSVBfTkVUQ09OTl9USFJFQURfU0VNX0ZSRUUoKSAgc3lzX2FyY2hfbmV0Y29ubl9zZW1fZnJlZSgpCisjZW5kaWYgLyogTFdJUF9ORVRDT05OX1NFTV9QRVJfVEhSRUFEICovCisKKyNlbmRpZiAvKiBMV0lQX0FSQ0hfU1lTX0FSQ0hfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy9mcmVlcnRvcy9zeXNfYXJjaC5jIGIvY29udHJpYi9wb3J0cy9mcmVlcnRvcy9zeXNfYXJjaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NjgzNTMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL2ZyZWVydG9zL3N5c19hcmNoLmMKQEAgLTAsMCArMSw2MDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTcgU2ltb24gR29sZHNjaG1pZHQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBTaW1vbiBHb2xkc2NobWlkdCA8Z29sZHNpbW9uQGdteC5kZT4KKyAqCisgKi8KKworLyogbHdJUCBpbmNsdWRlcy4gKi8KKyNpbmNsdWRlICJsd2lwL2RlYnVnLmgiCisjaW5jbHVkZSAibHdpcC9kZWYuaCIKKyNpbmNsdWRlICJsd2lwL3N5cy5oIgorI2luY2x1ZGUgImx3aXAvbWVtLmgiCisjaW5jbHVkZSAibHdpcC9zdGF0cy5oIgorI2luY2x1ZGUgImx3aXAvdGNwaXAuaCIKKyNpbmNsdWRlICJGcmVlUlRPUy5oIgorI2luY2x1ZGUgInNlbXBoci5oIgorI2luY2x1ZGUgInRhc2suaCIKKworLyoqIFNldCB0aGlzIHRvIDEgaWYgeW91IHdhbnQgdGhlIHN0YWNrIHNpemUgcGFzc2VkIHRvIHN5c190aHJlYWRfbmV3KCkgdG8gYmUKKyAqIGludGVycHJldGVkIGFzIG51bWJlciBvZiBzdGFjayB3b3JkcyAoRnJlZVJUT1MtbGlrZSkuCisgKiBEZWZhdWx0IGlzIHRoYXQgdGhleSBhcmUgaW50ZXJwcmV0ZWQgYXMgYnl0ZSBjb3VudCAobHdJUC1saWtlKS4KKyAqLworI2lmbmRlZiBMV0lQX0ZSRUVSVE9TX1RIUkVBRF9TVEFDS1NJWkVfSVNfU1RBQ0tXT1JEUworI2RlZmluZSBMV0lQX0ZSRUVSVE9TX1RIUkVBRF9TVEFDS1NJWkVfSVNfU1RBQ0tXT1JEUyAgMAorI2VuZGlmCisKKy8qKiBTZXQgdGhpcyB0byAxIHRvIHVzZSBhIG11dGV4IGZvciBTWVNfQVJDSF9QUk9URUNUKCkgY3JpdGljYWwgcmVnaW9ucy4KKyAqIERlZmF1bHQgaXMgMCBhbmQgbG9ja3MgaW50ZXJydXB0cy9zY2hlZHVsZXIgZm9yIFNZU19BUkNIX1BST1RFQ1QoKS4KKyAqLworI2lmbmRlZiBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfVVNFU19NVVRFWAorI2RlZmluZSBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfVVNFU19NVVRFWCAgICAgMAorI2VuZGlmCisKKy8qKiBTZXQgdGhpcyB0byAxIHRvIGluY2x1ZGUgYSBzYW5pdHkgY2hlY2sgdGhhdCBTWVNfQVJDSF9QUk9URUNUKCkgYW5kCisgKiBTWVNfQVJDSF9VTlBST1RFQ1QoKSBhcmUgY2FsbGVkIG1hdGNoaW5nLgorICovCisjaWZuZGVmIExXSVBfRlJFRVJUT1NfU1lTX0FSQ0hfUFJPVEVDVF9TQU5JVFlfQ0hFQ0sKKyNkZWZpbmUgTFdJUF9GUkVFUlRPU19TWVNfQVJDSF9QUk9URUNUX1NBTklUWV9DSEVDSyAgIDAKKyNlbmRpZgorCisvKiogU2V0IHRoaXMgdG8gMSB0byBsZXQgc3lzX21ib3hfZnJlZSBjaGVjayB0aGF0IHF1ZXVlcyBhcmUgZW1wdHkgd2hlbiBmcmVlZCAqLworI2lmbmRlZiBMV0lQX0ZSRUVSVE9TX0NIRUNLX1FVRVVFX0VNUFRZX09OX0ZSRUUKKyNkZWZpbmUgTFdJUF9GUkVFUlRPU19DSEVDS19RVUVVRV9FTVBUWV9PTl9GUkVFICAgICAgIDAKKyNlbmRpZgorCisvKiogU2V0IHRoaXMgdG8gMSB0byBlbmFibGUgY29yZSBsb2NraW5nIGNoZWNrIGZ1bmN0aW9ucyBpbiB0aGlzIHBvcnQuCisgKiBGb3IgdGhpcyB0byB3b3JrLCB5b3UnbGwgaGF2ZSB0byBkZWZpbmUgTFdJUF9BU1NFUlRfQ09SRV9MT0NLRUQoKQorICogYW5kIExXSVBfTUFSS19UQ1BJUF9USFJFQUQoKSBjb3JyZWN0bHkgaW4geW91ciBsd2lwb3B0cy5oISAqLworI2lmbmRlZiBMV0lQX0ZSRUVSVE9TX0NIRUNLX0NPUkVfTE9DS0lORworI2RlZmluZSBMV0lQX0ZSRUVSVE9TX0NIRUNLX0NPUkVfTE9DS0lORyAgICAgICAgICAgICAgMAorI2VuZGlmCisKKy8qKiBTZXQgdGhpcyB0byAwIHRvIGltcGxlbWVudCBzeXNfbm93KCkgeW91cnNlbGYsIGUuZy4gdXNpbmcgYSBodyB0aW1lci4KKyAqIERlZmF1bHQgaXMgMSwgd2hlcmUgRnJlZVJUT1MgdGlja3MgYXJlIHVzZWQgdG8gY2FsY3VsYXRlIGJhY2sgdG8gbXMuCisgKi8KKyNpZm5kZWYgTFdJUF9GUkVFUlRPU19TWVNfTk9XX0ZST01fRlJFRVJUT1MKKyNkZWZpbmUgTFdJUF9GUkVFUlRPU19TWVNfTk9XX0ZST01fRlJFRVJUT1MgICAgICAgICAgIDEKKyNlbmRpZgorCisjaWYgIWNvbmZpZ1NVUFBPUlRfRFlOQU1JQ19BTExPQ0FUSU9OCisjIGVycm9yICJsd0lQIEZyZWVSVE9TIHBvcnQgcmVxdWlyZXMgY29uZmlnU1VQUE9SVF9EWU5BTUlDX0FMTE9DQVRJT04iCisjZW5kaWYKKyNpZiAhSU5DTFVERV92VGFza0RlbGF5CisjIGVycm9yICJsd0lQIEZyZWVSVE9TIHBvcnQgcmVxdWlyZXMgSU5DTFVERV92VGFza0RlbGF5IgorI2VuZGlmCisjaWYgIUlOQ0xVREVfdlRhc2tTdXNwZW5kCisjIGVycm9yICJsd0lQIEZyZWVSVE9TIHBvcnQgcmVxdWlyZXMgSU5DTFVERV92VGFza1N1c3BlbmQiCisjZW5kaWYKKyNpZiBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfVVNFU19NVVRFWCB8fCAhTFdJUF9DT01QQVRfTVVURVgKKyNpZiAhY29uZmlnVVNFX01VVEVYRVMKKyMgZXJyb3IgImx3SVAgRnJlZVJUT1MgcG9ydCByZXF1aXJlcyBjb25maWdVU0VfTVVURVhFUyIKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBTWVNfTElHSFRXRUlHSFRfUFJPVCAmJiBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfVVNFU19NVVRFWAorc3RhdGljIFNlbWFwaG9yZUhhbmRsZV90IHN5c19hcmNoX3Byb3RlY3RfbXV0ZXg7CisjZW5kaWYKKyNpZiBTWVNfTElHSFRXRUlHSFRfUFJPVCAmJiBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfU0FOSVRZX0NIRUNLCitzdGF0aWMgc3lzX3Byb3RfdCBzeXNfYXJjaF9wcm90ZWN0X25lc3Rpbmc7CisjZW5kaWYKKworLyogSW5pdGlhbGl6ZSB0aGlzIG1vZHVsZSAoc2VlIGRlc2NyaXB0aW9uIGluIHN5cy5oKSAqLwordm9pZAorc3lzX2luaXQodm9pZCkKK3sKKyNpZiBTWVNfTElHSFRXRUlHSFRfUFJPVCAmJiBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfVVNFU19NVVRFWAorICAvKiBpbml0aWFsaXplIHN5c19hcmNoX3Byb3RlY3QgZ2xvYmFsIG11dGV4ICovCisgIHN5c19hcmNoX3Byb3RlY3RfbXV0ZXggPSB4U2VtYXBob3JlQ3JlYXRlUmVjdXJzaXZlTXV0ZXgoKTsKKyAgTFdJUF9BU1NFUlQoImZhaWxlZCB0byBjcmVhdGUgc3lzX2FyY2hfcHJvdGVjdCBtdXRleCIsCisgICAgc3lzX2FyY2hfcHJvdGVjdF9tdXRleCAhPSBOVUxMKTsKKyNlbmRpZiAvKiBTWVNfTElHSFRXRUlHSFRfUFJPVCAmJiBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfVVNFU19NVVRFWCAqLworfQorCisjaWYgY29uZmlnVVNFXzE2X0JJVF9USUNLUyA9PSAxCisjZXJyb3IgVGhpcyBwb3J0IHJlcXVpcmVzIDMyIGJpdCB0aWNrcyBvciB0aW1lciBvdmVyZmxvdyB3aWxsIGZhaWwKKyNlbmRpZgorCisjaWYgTFdJUF9GUkVFUlRPU19TWVNfTk9XX0ZST01fRlJFRVJUT1MKK3UzMl90CitzeXNfbm93KHZvaWQpCit7CisgIHJldHVybiB4VGFza0dldFRpY2tDb3VudCgpICogcG9ydFRJQ0tfUEVSSU9EX01TOworfQorI2VuZGlmCisKK3UzMl90CitzeXNfamlmZmllcyh2b2lkKQoreworICByZXR1cm4geFRhc2tHZXRUaWNrQ291bnQoKTsKK30KKworI2lmIFNZU19MSUdIVFdFSUdIVF9QUk9UCisKK3N5c19wcm90X3QKK3N5c19hcmNoX3Byb3RlY3Qodm9pZCkKK3sKKyNpZiBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfVVNFU19NVVRFWAorICBCYXNlVHlwZV90IHJldDsKKyAgTFdJUF9BU1NFUlQoInN5c19hcmNoX3Byb3RlY3RfbXV0ZXggIT0gTlVMTCIsIHN5c19hcmNoX3Byb3RlY3RfbXV0ZXggIT0gTlVMTCk7CisKKyAgcmV0ID0geFNlbWFwaG9yZVRha2VSZWN1cnNpdmUoc3lzX2FyY2hfcHJvdGVjdF9tdXRleCwgcG9ydE1BWF9ERUxBWSk7CisgIExXSVBfQVNTRVJUKCJzeXNfYXJjaF9wcm90ZWN0IGZhaWxlZCB0byB0YWtlIHRoZSBtdXRleCIsIHJldCA9PSBwZFRSVUUpOworI2Vsc2UgLyogTFdJUF9GUkVFUlRPU19TWVNfQVJDSF9QUk9URUNUX1VTRVNfTVVURVggKi8KKyAgdGFza0VOVEVSX0NSSVRJQ0FMKCk7CisjZW5kaWYgLyogTFdJUF9GUkVFUlRPU19TWVNfQVJDSF9QUk9URUNUX1VTRVNfTVVURVggKi8KKyNpZiBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfU0FOSVRZX0NIRUNLCisgIHsKKyAgICAvKiBldmVyeSBuZXN0ZWQgY2FsbCB0byBzeXNfYXJjaF9wcm90ZWN0KCkgcmV0dXJucyBhbiBpbmNyZWFzZWQgbnVtYmVyICovCisgICAgc3lzX3Byb3RfdCByZXQgPSBzeXNfYXJjaF9wcm90ZWN0X25lc3Rpbmc7CisgICAgc3lzX2FyY2hfcHJvdGVjdF9uZXN0aW5nKys7CisgICAgTFdJUF9BU1NFUlQoInN5c19hcmNoX3Byb3RlY3Qgb3ZlcmZsb3ciLCBzeXNfYXJjaF9wcm90ZWN0X25lc3RpbmcgPiByZXQpOworICAgIHJldHVybiByZXQ7CisgIH0KKyNlbHNlCisgIHJldHVybiAxOworI2VuZGlmCit9CisKK3ZvaWQKK3N5c19hcmNoX3VucHJvdGVjdChzeXNfcHJvdF90IHB2YWwpCit7CisjaWYgTFdJUF9GUkVFUlRPU19TWVNfQVJDSF9QUk9URUNUX1VTRVNfTVVURVgKKyAgQmFzZVR5cGVfdCByZXQ7CisjZW5kaWYKKyNpZiBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfU0FOSVRZX0NIRUNLCisgIExXSVBfQVNTRVJUKCJ1bmV4cGVjdGVkIHN5c19hcmNoX3Byb3RlY3RfbmVzdGluZyIsIHN5c19hcmNoX3Byb3RlY3RfbmVzdGluZyA+IDApOworICBzeXNfYXJjaF9wcm90ZWN0X25lc3RpbmctLTsKKyAgTFdJUF9BU1NFUlQoInVuZXhwZWN0ZWQgc3lzX2FyY2hfcHJvdGVjdF9uZXN0aW5nIiwgc3lzX2FyY2hfcHJvdGVjdF9uZXN0aW5nID09IHB2YWwpOworI2VuZGlmCisKKyNpZiBMV0lQX0ZSRUVSVE9TX1NZU19BUkNIX1BST1RFQ1RfVVNFU19NVVRFWAorICBMV0lQX0FTU0VSVCgic3lzX2FyY2hfcHJvdGVjdF9tdXRleCAhPSBOVUxMIiwgc3lzX2FyY2hfcHJvdGVjdF9tdXRleCAhPSBOVUxMKTsKKworICByZXQgPSB4U2VtYXBob3JlR2l2ZVJlY3Vyc2l2ZShzeXNfYXJjaF9wcm90ZWN0X211dGV4KTsKKyAgTFdJUF9BU1NFUlQoInN5c19hcmNoX3VucHJvdGVjdCBmYWlsZWQgdG8gZ2l2ZSB0aGUgbXV0ZXgiLCByZXQgPT0gcGRUUlVFKTsKKyNlbHNlIC8qIExXSVBfRlJFRVJUT1NfU1lTX0FSQ0hfUFJPVEVDVF9VU0VTX01VVEVYICovCisgIHRhc2tFWElUX0NSSVRJQ0FMKCk7CisjZW5kaWYgLyogTFdJUF9GUkVFUlRPU19TWVNfQVJDSF9QUk9URUNUX1VTRVNfTVVURVggKi8KKyAgTFdJUF9VTlVTRURfQVJHKHB2YWwpOworfQorCisjZW5kaWYgLyogU1lTX0xJR0hUV0VJR0hUX1BST1QgKi8KKwordm9pZAorc3lzX2FyY2hfbXNsZWVwKHUzMl90IGRlbGF5X21zKQoreworICBUaWNrVHlwZV90IGRlbGF5X3RpY2tzID0gZGVsYXlfbXMgLyBwb3J0VElDS19SQVRFX01TOworICB2VGFza0RlbGF5KGRlbGF5X3RpY2tzKTsKK30KKworI2lmICFMV0lQX0NPTVBBVF9NVVRFWAorCisvKiBDcmVhdGUgYSBuZXcgbXV0ZXgqLworZXJyX3QKK3N5c19tdXRleF9uZXcoc3lzX211dGV4X3QgKm11dGV4KQoreworICBMV0lQX0FTU0VSVCgibXV0ZXggIT0gTlVMTCIsIG11dGV4ICE9IE5VTEwpOworCisgIG11dGV4LT5tdXQgPSB4U2VtYXBob3JlQ3JlYXRlUmVjdXJzaXZlTXV0ZXgoKTsKKyAgaWYobXV0ZXgtPm11dCA9PSBOVUxMKSB7CisgICAgU1lTX1NUQVRTX0lOQyhtdXRleC5lcnIpOworICAgIHJldHVybiBFUlJfTUVNOworICB9CisgIFNZU19TVEFUU19JTkNfVVNFRChtdXRleCk7CisgIHJldHVybiBFUlJfT0s7Cit9CisKK3ZvaWQKK3N5c19tdXRleF9sb2NrKHN5c19tdXRleF90ICptdXRleCkKK3sKKyAgQmFzZVR5cGVfdCByZXQ7CisgIExXSVBfQVNTRVJUKCJtdXRleCAhPSBOVUxMIiwgbXV0ZXggIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJtdXRleC0+bXV0ICE9IE5VTEwiLCBtdXRleC0+bXV0ICE9IE5VTEwpOworCisgIHJldCA9IHhTZW1hcGhvcmVUYWtlUmVjdXJzaXZlKG11dGV4LT5tdXQsIHBvcnRNQVhfREVMQVkpOworICBMV0lQX0FTU0VSVCgiZmFpbGVkIHRvIHRha2UgdGhlIG11dGV4IiwgcmV0ID09IHBkVFJVRSk7Cit9CisKK3ZvaWQKK3N5c19tdXRleF91bmxvY2soc3lzX211dGV4X3QgKm11dGV4KQoreworICBCYXNlVHlwZV90IHJldDsKKyAgTFdJUF9BU1NFUlQoIm11dGV4ICE9IE5VTEwiLCBtdXRleCAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoIm11dGV4LT5tdXQgIT0gTlVMTCIsIG11dGV4LT5tdXQgIT0gTlVMTCk7CisKKyAgcmV0ID0geFNlbWFwaG9yZUdpdmVSZWN1cnNpdmUobXV0ZXgtPm11dCk7CisgIExXSVBfQVNTRVJUKCJmYWlsZWQgdG8gZ2l2ZSB0aGUgbXV0ZXgiLCByZXQgPT0gcGRUUlVFKTsKK30KKwordm9pZAorc3lzX211dGV4X2ZyZWUoc3lzX211dGV4X3QgKm11dGV4KQoreworICBMV0lQX0FTU0VSVCgibXV0ZXggIT0gTlVMTCIsIG11dGV4ICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgibXV0ZXgtPm11dCAhPSBOVUxMIiwgbXV0ZXgtPm11dCAhPSBOVUxMKTsKKworICBTWVNfU1RBVFNfREVDKG11dGV4LnVzZWQpOworICB2U2VtYXBob3JlRGVsZXRlKG11dGV4LT5tdXQpOworICBtdXRleC0+bXV0ID0gTlVMTDsKK30KKworI2VuZGlmIC8qICFMV0lQX0NPTVBBVF9NVVRFWCAqLworCitlcnJfdAorc3lzX3NlbV9uZXcoc3lzX3NlbV90ICpzZW0sIHU4X3QgaW5pdGlhbF9jb3VudCkKK3sKKyAgTFdJUF9BU1NFUlQoInNlbSAhPSBOVUxMIiwgc2VtICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgiaW5pdGlhbF9jb3VudCBpbnZhbGlkIChub3QgMCBvciAxKSIsCisgICAgKGluaXRpYWxfY291bnQgPT0gMCkgfHwgKGluaXRpYWxfY291bnQgPT0gMSkpOworCisgIHNlbS0+c2VtID0geFNlbWFwaG9yZUNyZWF0ZUJpbmFyeSgpOworICBpZihzZW0tPnNlbSA9PSBOVUxMKSB7CisgICAgU1lTX1NUQVRTX0lOQyhzZW0uZXJyKTsKKyAgICByZXR1cm4gRVJSX01FTTsKKyAgfQorICBTWVNfU1RBVFNfSU5DX1VTRUQoc2VtKTsKKworICBpZihpbml0aWFsX2NvdW50ID09IDEpIHsKKyAgICBCYXNlVHlwZV90IHJldCA9IHhTZW1hcGhvcmVHaXZlKHNlbS0+c2VtKTsKKyAgICBMV0lQX0FTU0VSVCgic3lzX3NlbV9uZXc6IGluaXRpYWwgZ2l2ZSBmYWlsZWQiLCByZXQgPT0gcGRUUlVFKTsKKyAgfQorICByZXR1cm4gRVJSX09LOworfQorCit2b2lkCitzeXNfc2VtX3NpZ25hbChzeXNfc2VtX3QgKnNlbSkKK3sKKyAgQmFzZVR5cGVfdCByZXQ7CisgIExXSVBfQVNTRVJUKCJzZW0gIT0gTlVMTCIsIHNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInNlbS0+c2VtICE9IE5VTEwiLCBzZW0tPnNlbSAhPSBOVUxMKTsKKworICByZXQgPSB4U2VtYXBob3JlR2l2ZShzZW0tPnNlbSk7CisgIC8qIHF1ZXVlIGZ1bGwgaXMgT0ssIHRoaXMgaXMgYSBzaWduYWwgb25seS4uLiAqLworICBMV0lQX0FTU0VSVCgic3lzX3NlbV9zaWduYWw6IHNhbmUgcmV0dXJuIHZhbHVlIiwKKyAgICAocmV0ID09IHBkVFJVRSkgfHwgKHJldCA9PSBlcnJRVUVVRV9GVUxMKSk7Cit9CisKK3UzMl90CitzeXNfYXJjaF9zZW1fd2FpdChzeXNfc2VtX3QgKnNlbSwgdTMyX3QgdGltZW91dF9tcykKK3sKKyAgQmFzZVR5cGVfdCByZXQ7CisgIExXSVBfQVNTRVJUKCJzZW0gIT0gTlVMTCIsIHNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInNlbS0+c2VtICE9IE5VTEwiLCBzZW0tPnNlbSAhPSBOVUxMKTsKKworICBpZighdGltZW91dF9tcykgeworICAgIC8qIHdhaXQgaW5maW5pdGUgKi8KKyAgICByZXQgPSB4U2VtYXBob3JlVGFrZShzZW0tPnNlbSwgcG9ydE1BWF9ERUxBWSk7CisgICAgTFdJUF9BU1NFUlQoInRha2luZyBzZW1hcGhvcmUgZmFpbGVkIiwgcmV0ID09IHBkVFJVRSk7CisgIH0gZWxzZSB7CisgICAgVGlja1R5cGVfdCB0aW1lb3V0X3RpY2tzID0gdGltZW91dF9tcyAvIHBvcnRUSUNLX1JBVEVfTVM7CisgICAgcmV0ID0geFNlbWFwaG9yZVRha2Uoc2VtLT5zZW0sIHRpbWVvdXRfdGlja3MpOworICAgIGlmIChyZXQgPT0gZXJyUVVFVUVfRU1QVFkpIHsKKyAgICAgIC8qIHRpbWVkIG91dCAqLworICAgICAgcmV0dXJuIFNZU19BUkNIX1RJTUVPVVQ7CisgICAgfQorICAgIExXSVBfQVNTRVJUKCJ0YWtpbmcgc2VtYXBob3JlIGZhaWxlZCIsIHJldCA9PSBwZFRSVUUpOworICB9CisKKyAgLyogT2xkIHZlcnNpb25zIG9mIGx3SVAgcmVxdWlyZWQgdXMgdG8gcmV0dXJuIHRoZSB0aW1lIHdhaXRlZC4KKyAgICAgVGhpcyBpcyBub3QgdGhlIGNhc2UgYW55IG1vcmUuIEp1c3QgcmV0dXJuaW5nICE9IFNZU19BUkNIX1RJTUVPVVQKKyAgICAgaGVyZSBpcyBlbm91Z2guICovCisgIHJldHVybiAxOworfQorCit2b2lkCitzeXNfc2VtX2ZyZWUoc3lzX3NlbV90ICpzZW0pCit7CisgIExXSVBfQVNTRVJUKCJzZW0gIT0gTlVMTCIsIHNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInNlbS0+c2VtICE9IE5VTEwiLCBzZW0tPnNlbSAhPSBOVUxMKTsKKworICBTWVNfU1RBVFNfREVDKHNlbS51c2VkKTsKKyAgdlNlbWFwaG9yZURlbGV0ZShzZW0tPnNlbSk7CisgIHNlbS0+c2VtID0gTlVMTDsKK30KKworZXJyX3QKK3N5c19tYm94X25ldyhzeXNfbWJveF90ICptYm94LCBpbnQgc2l6ZSkKK3sKKyAgTFdJUF9BU1NFUlQoIm1ib3ggIT0gTlVMTCIsIG1ib3ggIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJzaXplID4gMCIsIHNpemUgPiAwKTsKKworICBtYm94LT5tYnggPSB4UXVldWVDcmVhdGUoKFVCYXNlVHlwZV90KXNpemUsIHNpemVvZih2b2lkICopKTsKKyAgaWYobWJveC0+bWJ4ID09IE5VTEwpIHsKKyAgICBTWVNfU1RBVFNfSU5DKG1ib3guZXJyKTsKKyAgICByZXR1cm4gRVJSX01FTTsKKyAgfQorICBTWVNfU1RBVFNfSU5DX1VTRUQobWJveCk7CisgIHJldHVybiBFUlJfT0s7Cit9CisKK3ZvaWQKK3N5c19tYm94X3Bvc3Qoc3lzX21ib3hfdCAqbWJveCwgdm9pZCAqbXNnKQoreworICBCYXNlVHlwZV90IHJldDsKKyAgTFdJUF9BU1NFUlQoIm1ib3ggIT0gTlVMTCIsIG1ib3ggIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJtYm94LT5tYnggIT0gTlVMTCIsIG1ib3gtPm1ieCAhPSBOVUxMKTsKKworICByZXQgPSB4UXVldWVTZW5kVG9CYWNrKG1ib3gtPm1ieCwgJm1zZywgcG9ydE1BWF9ERUxBWSk7CisgIExXSVBfQVNTRVJUKCJtYm94IHBvc3QgZmFpbGVkIiwgcmV0ID09IHBkVFJVRSk7Cit9CisKK2Vycl90CitzeXNfbWJveF90cnlwb3N0KHN5c19tYm94X3QgKm1ib3gsIHZvaWQgKm1zZykKK3sKKyAgQmFzZVR5cGVfdCByZXQ7CisgIExXSVBfQVNTRVJUKCJtYm94ICE9IE5VTEwiLCBtYm94ICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgibWJveC0+bWJ4ICE9IE5VTEwiLCBtYm94LT5tYnggIT0gTlVMTCk7CisKKyAgcmV0ID0geFF1ZXVlU2VuZFRvQmFjayhtYm94LT5tYngsICZtc2csIDApOworICBpZiAocmV0ID09IHBkVFJVRSkgeworICAgIHJldHVybiBFUlJfT0s7CisgIH0gZWxzZSB7CisgICAgTFdJUF9BU1NFUlQoIm1ib3ggdHJ5cG9zdCBmYWlsZWQiLCByZXQgPT0gZXJyUVVFVUVfRlVMTCk7CisgICAgU1lTX1NUQVRTX0lOQyhtYm94LmVycik7CisgICAgcmV0dXJuIEVSUl9NRU07CisgIH0KK30KKworZXJyX3QKK3N5c19tYm94X3RyeXBvc3RfZnJvbWlzcihzeXNfbWJveF90ICptYm94LCB2b2lkICptc2cpCit7CisgIEJhc2VUeXBlX3QgcmV0OworICBCYXNlVHlwZV90IHhIaWdoZXJQcmlvcml0eVRhc2tXb2tlbiA9IHBkRkFMU0U7CisgIExXSVBfQVNTRVJUKCJtYm94ICE9IE5VTEwiLCBtYm94ICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgibWJveC0+bWJ4ICE9IE5VTEwiLCBtYm94LT5tYnggIT0gTlVMTCk7CisKKyAgcmV0ID0geFF1ZXVlU2VuZFRvQmFja0Zyb21JU1IobWJveC0+bWJ4LCAmbXNnLCAmeEhpZ2hlclByaW9yaXR5VGFza1dva2VuKTsKKyAgaWYgKHJldCA9PSBwZFRSVUUpIHsKKyAgICBpZiAoeEhpZ2hlclByaW9yaXR5VGFza1dva2VuID09IHBkVFJVRSkgeworICAgICAgcmV0dXJuIEVSUl9ORUVEX1NDSEVEOworICAgIH0KKyAgICByZXR1cm4gRVJSX09LOworICB9IGVsc2UgeworICAgIExXSVBfQVNTRVJUKCJtYm94IHRyeXBvc3QgZmFpbGVkIiwgcmV0ID09IGVyclFVRVVFX0ZVTEwpOworICAgIFNZU19TVEFUU19JTkMobWJveC5lcnIpOworICAgIHJldHVybiBFUlJfTUVNOworICB9Cit9CisKK3UzMl90CitzeXNfYXJjaF9tYm94X2ZldGNoKHN5c19tYm94X3QgKm1ib3gsIHZvaWQgKiptc2csIHUzMl90IHRpbWVvdXRfbXMpCit7CisgIEJhc2VUeXBlX3QgcmV0OworICB2b2lkICptc2dfZHVtbXk7CisgIExXSVBfQVNTRVJUKCJtYm94ICE9IE5VTEwiLCBtYm94ICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgibWJveC0+bWJ4ICE9IE5VTEwiLCBtYm94LT5tYnggIT0gTlVMTCk7CisKKyAgaWYgKCFtc2cpIHsKKyAgICBtc2cgPSAmbXNnX2R1bW15OworICB9CisKKyAgaWYgKCF0aW1lb3V0X21zKSB7CisgICAgLyogd2FpdCBpbmZpbml0ZSAqLworICAgIHJldCA9IHhRdWV1ZVJlY2VpdmUobWJveC0+bWJ4LCAmKCptc2cpLCBwb3J0TUFYX0RFTEFZKTsKKyAgICBMV0lQX0FTU0VSVCgibWJveCBmZXRjaCBmYWlsZWQiLCByZXQgPT0gcGRUUlVFKTsKKyAgfSBlbHNlIHsKKyAgICBUaWNrVHlwZV90IHRpbWVvdXRfdGlja3MgPSB0aW1lb3V0X21zIC8gcG9ydFRJQ0tfUkFURV9NUzsKKyAgICByZXQgPSB4UXVldWVSZWNlaXZlKG1ib3gtPm1ieCwgJigqbXNnKSwgdGltZW91dF90aWNrcyk7CisgICAgaWYgKHJldCA9PSBlcnJRVUVVRV9FTVBUWSkgeworICAgICAgLyogdGltZWQgb3V0ICovCisgICAgICAqbXNnID0gTlVMTDsKKyAgICAgIHJldHVybiBTWVNfQVJDSF9USU1FT1VUOworICAgIH0KKyAgICBMV0lQX0FTU0VSVCgibWJveCBmZXRjaCBmYWlsZWQiLCByZXQgPT0gcGRUUlVFKTsKKyAgfQorCisgIC8qIE9sZCB2ZXJzaW9ucyBvZiBsd0lQIHJlcXVpcmVkIHVzIHRvIHJldHVybiB0aGUgdGltZSB3YWl0ZWQuCisgICAgIFRoaXMgaXMgbm90IHRoZSBjYXNlIGFueSBtb3JlLiBKdXN0IHJldHVybmluZyAhPSBTWVNfQVJDSF9USU1FT1VUCisgICAgIGhlcmUgaXMgZW5vdWdoLiAqLworICByZXR1cm4gMTsKK30KKwordTMyX3QKK3N5c19hcmNoX21ib3hfdHJ5ZmV0Y2goc3lzX21ib3hfdCAqbWJveCwgdm9pZCAqKm1zZykKK3sKKyAgQmFzZVR5cGVfdCByZXQ7CisgIHZvaWQgKm1zZ19kdW1teTsKKyAgTFdJUF9BU1NFUlQoIm1ib3ggIT0gTlVMTCIsIG1ib3ggIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJtYm94LT5tYnggIT0gTlVMTCIsIG1ib3gtPm1ieCAhPSBOVUxMKTsKKworICBpZiAoIW1zZykgeworICAgIG1zZyA9ICZtc2dfZHVtbXk7CisgIH0KKworICByZXQgPSB4UXVldWVSZWNlaXZlKG1ib3gtPm1ieCwgJigqbXNnKSwgMCk7CisgIGlmIChyZXQgPT0gZXJyUVVFVUVfRU1QVFkpIHsKKyAgICAqbXNnID0gTlVMTDsKKyAgICByZXR1cm4gU1lTX01CT1hfRU1QVFk7CisgIH0KKyAgTFdJUF9BU1NFUlQoIm1ib3ggZmV0Y2ggZmFpbGVkIiwgcmV0ID09IHBkVFJVRSk7CisKKyAgcmV0dXJuIDA7Cit9CisKK3ZvaWQKK3N5c19tYm94X2ZyZWUoc3lzX21ib3hfdCAqbWJveCkKK3sKKyAgTFdJUF9BU1NFUlQoIm1ib3ggIT0gTlVMTCIsIG1ib3ggIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJtYm94LT5tYnggIT0gTlVMTCIsIG1ib3gtPm1ieCAhPSBOVUxMKTsKKworI2lmIExXSVBfRlJFRVJUT1NfQ0hFQ0tfUVVFVUVfRU1QVFlfT05fRlJFRQorICB7CisgICAgVUJhc2VUeXBlX3QgbXNnc193YWl0aW5nID0gdXhRdWV1ZU1lc3NhZ2VzV2FpdGluZyhtYm94LT5tYngpOworICAgIExXSVBfQVNTRVJUKCJtYm94IHF1ZW5jZSBub3QgZW1wdHkiLCBtc2dzX3dhaXRpbmcgPT0gMCk7CisKKyAgICBpZiAobXNnc193YWl0aW5nICE9IDApIHsKKyAgICAgIFNZU19TVEFUU19JTkMobWJveC5lcnIpOworICAgIH0KKyAgfQorI2VuZGlmCisKKyAgdlF1ZXVlRGVsZXRlKG1ib3gtPm1ieCk7CisKKyAgU1lTX1NUQVRTX0RFQyhtYm94LnVzZWQpOworfQorCitzeXNfdGhyZWFkX3QKK3N5c190aHJlYWRfbmV3KGNvbnN0IGNoYXIgKm5hbWUsIGx3aXBfdGhyZWFkX2ZuIHRocmVhZCwgdm9pZCAqYXJnLCBpbnQgc3RhY2tzaXplLCBpbnQgcHJpbykKK3sKKyAgVGFza0hhbmRsZV90IHJ0b3NfdGFzazsKKyAgQmFzZVR5cGVfdCByZXQ7CisgIHN5c190aHJlYWRfdCBsd2lwX3RocmVhZDsKKyAgc2l6ZV90IHJ0b3Nfc3RhY2tzaXplOworCisgIExXSVBfQVNTRVJUKCJpbnZhbGlkIHN0YWNrc2l6ZSIsIHN0YWNrc2l6ZSA+IDApOworI2lmIExXSVBfRlJFRVJUT1NfVEhSRUFEX1NUQUNLU0laRV9JU19TVEFDS1dPUkRTCisgIHJ0b3Nfc3RhY2tzaXplID0gKHNpemVfdClzdGFja3NpemU7CisjZWxzZQorICBydG9zX3N0YWNrc2l6ZSA9IChzaXplX3Qpc3RhY2tzaXplIC8gc2l6ZW9mKFN0YWNrVHlwZV90KTsKKyNlbmRpZgorCisgIC8qIGx3SVAncyBsd2lwX3RocmVhZF9mbiBtYXRjaGVzIEZyZWVSVE9TJyBUYXNrRnVuY3Rpb25fdCwgc28gd2UgY2FuIHBhc3MgdGhlCisgICAgIHRocmVhZCBmdW5jdGlvbiB3aXRob3V0IGFkYXB0aW9uIGhlcmUuICovCisgIHJldCA9IHhUYXNrQ3JlYXRlKHRocmVhZCwgbmFtZSwgKGNvbmZpZ1NUQUNLX0RFUFRIX1RZUEUpcnRvc19zdGFja3NpemUsIGFyZywgcHJpbywgJnJ0b3NfdGFzayk7CisgIExXSVBfQVNTRVJUKCJ0YXNrIGNyZWF0aW9uIGZhaWxlZCIsIHJldCA9PSBwZFRSVUUpOworCisgIGx3aXBfdGhyZWFkLnRocmVhZF9oYW5kbGUgPSBydG9zX3Rhc2s7CisgIHJldHVybiBsd2lwX3RocmVhZDsKK30KKworI2lmIExXSVBfTkVUQ09OTl9TRU1fUEVSX1RIUkVBRAorI2lmIGNvbmZpZ05VTV9USFJFQURfTE9DQUxfU1RPUkFHRV9QT0lOVEVSUyA+IDAKKworc3lzX3NlbV90ICoKK3N5c19hcmNoX25ldGNvbm5fc2VtX2dldCh2b2lkKQoreworICB2b2lkKiByZXQ7CisgIFRhc2tIYW5kbGVfdCB0YXNrID0geFRhc2tHZXRDdXJyZW50VGFza0hhbmRsZSgpOworICBMV0lQX0FTU0VSVCgidGFzayAhPSBOVUxMIiwgdGFzayAhPSBOVUxMKTsKKworICByZXQgPSBwdlRhc2tHZXRUaHJlYWRMb2NhbFN0b3JhZ2VQb2ludGVyKHRhc2ssIDApOworICByZXR1cm4gcmV0OworfQorCit2b2lkCitzeXNfYXJjaF9uZXRjb25uX3NlbV9hbGxvYyh2b2lkKQoreworICB2b2lkICpyZXQ7CisgIFRhc2tIYW5kbGVfdCB0YXNrID0geFRhc2tHZXRDdXJyZW50VGFza0hhbmRsZSgpOworICBMV0lQX0FTU0VSVCgidGFzayAhPSBOVUxMIiwgdGFzayAhPSBOVUxMKTsKKworICByZXQgPSBwdlRhc2tHZXRUaHJlYWRMb2NhbFN0b3JhZ2VQb2ludGVyKHRhc2ssIDApOworICBpZihyZXQgPT0gTlVMTCkgeworICAgIHN5c19zZW1fdCAqc2VtOworICAgIGVycl90IGVycjsKKyAgICAvKiBuZWVkIHRvIGFsbG9jYXRlIHRoZSBtZW1vcnkgZm9yIHRoaXMgc2VtYXBob3JlICovCisgICAgc2VtID0gbWVtX21hbGxvYyhzaXplb2Yoc3lzX3NlbV90KSk7CisgICAgTFdJUF9BU1NFUlQoInNlbSAhPSBOVUxMIiwgc2VtICE9IE5VTEwpOworICAgIGVyciA9IHN5c19zZW1fbmV3KHNlbSwgMCk7CisgICAgTFdJUF9BU1NFUlQoImVyciA9PSBFUlJfT0siLCBlcnIgPT0gRVJSX09LKTsKKyAgICBMV0lQX0FTU0VSVCgic2VtIGludmFsaWQiLCBzeXNfc2VtX3ZhbGlkKHNlbSkpOworICAgIHZUYXNrU2V0VGhyZWFkTG9jYWxTdG9yYWdlUG9pbnRlcih0YXNrLCAwLCBzZW0pOworICB9Cit9CisKK3ZvaWQgc3lzX2FyY2hfbmV0Y29ubl9zZW1fZnJlZSh2b2lkKQoreworICB2b2lkKiByZXQ7CisgIFRhc2tIYW5kbGVfdCB0YXNrID0geFRhc2tHZXRDdXJyZW50VGFza0hhbmRsZSgpOworICBMV0lQX0FTU0VSVCgidGFzayAhPSBOVUxMIiwgdGFzayAhPSBOVUxMKTsKKworICByZXQgPSBwdlRhc2tHZXRUaHJlYWRMb2NhbFN0b3JhZ2VQb2ludGVyKHRhc2ssIDApOworICBpZihyZXQgIT0gTlVMTCkgeworICAgIHN5c19zZW1fdCAqc2VtID0gcmV0OworICAgIHN5c19zZW1fZnJlZShzZW0pOworICAgIG1lbV9mcmVlKHNlbSk7CisgICAgdlRhc2tTZXRUaHJlYWRMb2NhbFN0b3JhZ2VQb2ludGVyKHRhc2ssIDAsIE5VTEwpOworICB9Cit9CisKKyNlbHNlIC8qIGNvbmZpZ05VTV9USFJFQURfTE9DQUxfU1RPUkFHRV9QT0lOVEVSUyA+IDAgKi8KKyNlcnJvciBMV0lQX05FVENPTk5fU0VNX1BFUl9USFJFQUQgbmVlZHMgY29uZmlnTlVNX1RIUkVBRF9MT0NBTF9TVE9SQUdFX1BPSU5URVJTCisjZW5kaWYgLyogY29uZmlnTlVNX1RIUkVBRF9MT0NBTF9TVE9SQUdFX1BPSU5URVJTID4gMCAqLworCisjZW5kaWYgLyogTFdJUF9ORVRDT05OX1NFTV9QRVJfVEhSRUFEICovCisKKyNpZiBMV0lQX0ZSRUVSVE9TX0NIRUNLX0NPUkVfTE9DS0lORworI2lmIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HCisKKy8qKiBGbGFnIHRoZSBjb3JlIGxvY2sgaGVsZC4gQSBjb3VudGVyIGZvciByZWN1cnNpdmUgbG9ja3MuICovCitzdGF0aWMgdThfdCBsd2lwX2NvcmVfbG9ja19jb3VudDsKK3N0YXRpYyBUYXNrSGFuZGxlX3QgbHdpcF9jb3JlX2xvY2tfaG9sZGVyX3RocmVhZDsKKwordm9pZAorc3lzX2xvY2tfdGNwaXBfY29yZSh2b2lkKQoreworICAgc3lzX211dGV4X2xvY2soJmxvY2tfdGNwaXBfY29yZSk7CisgICBpZiAobHdpcF9jb3JlX2xvY2tfY291bnQgPT0gMCkgeworICAgICBsd2lwX2NvcmVfbG9ja19ob2xkZXJfdGhyZWFkID0geFRhc2tHZXRDdXJyZW50VGFza0hhbmRsZSgpOworICAgfQorICAgbHdpcF9jb3JlX2xvY2tfY291bnQrKzsKK30KKwordm9pZAorc3lzX3VubG9ja190Y3BpcF9jb3JlKHZvaWQpCit7CisgICBsd2lwX2NvcmVfbG9ja19jb3VudC0tOworICAgaWYgKGx3aXBfY29yZV9sb2NrX2NvdW50ID09IDApIHsKKyAgICAgICBsd2lwX2NvcmVfbG9ja19ob2xkZXJfdGhyZWFkID0gMDsKKyAgIH0KKyAgIHN5c19tdXRleF91bmxvY2soJmxvY2tfdGNwaXBfY29yZSk7Cit9CisKKyNlbmRpZiAvKiBMV0lQX1RDUElQX0NPUkVfTE9DS0lORyAqLworCisjaWYgIU5PX1NZUworc3RhdGljIFRhc2tIYW5kbGVfdCBsd2lwX3RjcGlwX3RocmVhZDsKKyNlbmRpZgorCit2b2lkCitzeXNfbWFya190Y3BpcF90aHJlYWQodm9pZCkKK3sKKyNpZiAhTk9fU1lTCisgIGx3aXBfdGNwaXBfdGhyZWFkID0geFRhc2tHZXRDdXJyZW50VGFza0hhbmRsZSgpOworI2VuZGlmCit9CisKK3ZvaWQKK3N5c19jaGVja19jb3JlX2xvY2tpbmcodm9pZCkKK3sKKyAgLyogRW1iZWRkZWQgc3lzdGVtcyBzaG91bGQgY2hlY2sgd2UgYXJlIE5PVCBpbiBhbiBpbnRlcnJ1cHQgY29udGV4dCBoZXJlICovCisgIC8qIEUuZy4gY29yZSBDb3J0ZXgtTTMvTTQgcG9ydHM6CisgICAgICAgICBjb25maWdBU1NFUlQoICggcG9ydE5WSUNfSU5UX0NUUkxfUkVHICYgcG9ydFZFQ1RBQ1RJVkVfTUFTSyApID09IDAgKTsKKworICAgICBJbnN0ZWFkLCB3ZSB1c2UgbW9yZSBnZW5lcmljIEZyZWVSVE9TIGZ1bmN0aW9ucyBoZXJlLCB3aGljaCBzaG91bGQgZmFpbCBmcm9tIElTUjogKi8KKyAgdGFza0VOVEVSX0NSSVRJQ0FMKCk7CisgIHRhc2tFWElUX0NSSVRJQ0FMKCk7CisKKyNpZiAhTk9fU1lTCisgIGlmIChsd2lwX3RjcGlwX3RocmVhZCAhPSAwKSB7CisgICAgVGFza0hhbmRsZV90IGN1cnJlbnRfdGhyZWFkID0geFRhc2tHZXRDdXJyZW50VGFza0hhbmRsZSgpOworCisjaWYgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkcKKyAgICBMV0lQX0FTU0VSVCgiRnVuY3Rpb24gY2FsbGVkIHdpdGhvdXQgY29yZSBsb2NrIiwKKyAgICAgICAgICAgICAgICBjdXJyZW50X3RocmVhZCA9PSBsd2lwX2NvcmVfbG9ja19ob2xkZXJfdGhyZWFkICYmIGx3aXBfY29yZV9sb2NrX2NvdW50ID4gMCk7CisjZWxzZSAvKiBMV0lQX1RDUElQX0NPUkVfTE9DS0lORyAqLworICAgIExXSVBfQVNTRVJUKCJGdW5jdGlvbiBjYWxsZWQgZnJvbSB3cm9uZyB0aHJlYWQiLCBjdXJyZW50X3RocmVhZCA9PSBsd2lwX3RjcGlwX3RocmVhZCk7CisjZW5kaWYgLyogTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkcgKi8KKyAgfQorI2VuZGlmIC8qICFOT19TWVMgKi8KK30KKworI2VuZGlmIC8qIExXSVBfRlJFRVJUT1NfQ0hFQ0tfQ09SRV9MT0NLSU5HKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9Db21tb24ubWsgYi9jb250cmliL3BvcnRzL3VuaXgvQ29tbW9uLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MGE5ODAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvQ29tbW9uLm1rCkBAIC0wLDAgKzEsNTEgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAorIyAKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisjIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyMKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorIyAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisjICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyMgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgCisjIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyMgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCAKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyMgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiAKKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyMgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorIyBPRiBTVUNIIERBTUFHRS4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorIyAKKyMgQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyMKKworIyBBcmNoaXRlY3R1cmUgc3BlY2lmaWMgZmlsZXMuCitMV0lQQVJDSD89JChDT05UUklCRElSKS9wb3J0cy91bml4L3BvcnQKK1NZU0FSQ0g/PSQoTFdJUEFSQ0gpL3N5c19hcmNoLmMKK0FSQ0hGSUxFUz0kKExXSVBBUkNIKS9wZXJmLmMgXAorICAkKFNZU0FSQ0gpIFwKKwkkKExXSVBBUkNIKS9uZXRpZi90YXBpZi5jIFwKKwkkKExXSVBBUkNIKS9uZXRpZi9saXN0LmMgXAorCSQoTFdJUEFSQ0gpL25ldGlmL3Npby5jIFwKKwkkKExXSVBBUkNIKS9uZXRpZi9maWZvLmMKKworVU5JWF9DT01NT05fTUtfRElSIDo9ICQoZGlyICQoYWJzcGF0aCAkKGxhc3R3b3JkICQoTUFLRUZJTEVfTElTVCkpKSkKK2luY2x1ZGUgJChVTklYX0NPTU1PTl9NS19ESVIpLi4vQ29tbW9uLmFsbHBvcnRzLm1rCisKK0xERkxBR1MrPS1sdXRpbAorCitVTkFNRV9TOj0gJChzaGVsbCB1bmFtZSAtcykKK2lmbmVxICgkKFVOQU1FX1MpLERhcndpbikKKyMgRGFyd2luIGRvZXNuJ3QgaGF2ZSBwdGhyZWFkcyBvciBQT1NJWCByZWFsLXRpbWUgZXh0ZW5zaW9ucyBsaWJzCitMREZMQUdTKz0tcHRocmVhZCAtbHJ0CitlbmRpZgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy91bml4L0ZpbGVsaXN0cy5jbWFrZSBiL2NvbnRyaWIvcG9ydHMvdW5peC9GaWxlbGlzdHMuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRiZmRlZAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9GaWxlbGlzdHMuY21ha2UKQEAgLTAsMCArMSw0NCBAQAorIyBUaGlzIGZpbGUgaXMgaW5kZW5kZWQgdG8gYmUgaW5jbHVkZWQgaW4gZW5kLXVzZXIgQ01ha2VMaXN0cy50eHQKKyMgaW5jbHVkZSgvcGF0aC90by9GaWxlbGlzdHMuY21ha2UpCisjIEl0IGFzc3VtZXMgdGhlIHZhcmlhYmxlIExXSVBfQ09OVFJJQl9ESVIgaXMgZGVmaW5lZCBwb2ludGluZyB0byB0aGUKKyMgcm9vdCBwYXRoIG9mIGx3SVAvY29udHJpYiBzb3VyY2VzLgorIworIyBUaGlzIGZpbGUgaXMgTk9UIGRlc2lnbmVkIChvbiBwdXJwb3NlKSB0byBiZSB1c2VkIGFzIGNtYWtlCisjIHN1YmRpciB2aWEgYWRkX3N1YmRpcmVjdG9yeSgpCisjIFRoZSBpbnRlbnRpb24gaXMgdG8gcHJvdmlkZSBncmVhdGVyIGZsZXhpYmlsaXR5IHRvIHVzZXJzIHRvCisjIGNyZWF0ZSB0aGVpciBvd24gdGFyZ2V0cyB1c2luZyB0aGUgKl9TUkNTIHZhcmlhYmxlcy4KKworaWYoTk9UICR7Q01BS0VfVkVSU0lPTn0gVkVSU0lPTl9MRVNTICIzLjEwLjAiKQorICAgIGluY2x1ZGVfZ3VhcmQoR0xPQkFMKQorZW5kaWYoKQorCitzZXQobHdpcGNvbnRyaWJwb3J0dW5peF9TUkNTCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9wb3J0cy91bml4L3BvcnQvc3lzX2FyY2guYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vcG9ydHMvdW5peC9wb3J0L3BlcmYuYworKQorCitzZXQobHdpcGNvbnRyaWJwb3J0dW5peG5ldGlmc19TUkNTCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9wb3J0cy91bml4L3BvcnQvbmV0aWYvdGFwaWYuYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vcG9ydHMvdW5peC9wb3J0L25ldGlmL2xpc3QuYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vcG9ydHMvdW5peC9wb3J0L25ldGlmL3Npby5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9wb3J0cy91bml4L3BvcnQvbmV0aWYvZmlmby5jCispCisKK2FkZF9saWJyYXJ5KGx3aXBjb250cmlicG9ydHVuaXggRVhDTFVERV9GUk9NX0FMTCAke2x3aXBjb250cmlicG9ydHVuaXhfU1JDU30gJHtsd2lwY29udHJpYnBvcnR1bml4bmV0aWZzX1NSQ1N9KQordGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMobHdpcGNvbnRyaWJwb3J0dW5peCBQUklWQVRFICR7TFdJUF9JTkNMVURFX0RJUlN9ICR7TFdJUF9NQkVEVExTX0lOQ0xVREVfRElSU30pCit0YXJnZXRfY29tcGlsZV9vcHRpb25zKGx3aXBjb250cmlicG9ydHVuaXggUFJJVkFURSAke0xXSVBfQ09NUElMRVJfRkxBR1N9KQordGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMobHdpcGNvbnRyaWJwb3J0dW5peCBQUklWQVRFICR7TFdJUF9ERUZJTklUSU9OU30gJHtMV0lQX01CRURUTFNfREVGSU5JVElPTlN9KQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKGx3aXBjb250cmlicG9ydHVuaXggUFVCTElDICR7TFdJUF9NQkVEVExTX0xJTktfTElCUkFSSUVTfSkKKworaWYgKENNQUtFX1NZU1RFTV9OQU1FIFNUUkVRVUFMICJMaW51eCIpCisgICAgZmluZF9saWJyYXJ5KExJQlVUSUwgdXRpbCkKKyAgICBmaW5kX2xpYnJhcnkoTElCUFRIUkVBRCBwdGhyZWFkKQorICAgIGZpbmRfbGlicmFyeShMSUJSVCBydCkKKyAgICB0YXJnZXRfbGlua19saWJyYXJpZXMobHdpcGNvbnRyaWJwb3J0dW5peCBQVUJMSUMgJHtMSUJVVElMfSAke0xJQlBUSFJFQUR9ICR7TElCUlR9KQorZW5kaWYoKQorCitpZiAoQ01BS0VfU1lTVEVNX05BTUUgU1RSRVFVQUwgIkRhcndpbiIpCisgICAgIyBEYXJ3aW4gZG9lc24ndCBoYXZlIHB0aHJlYWRzIG9yIFBPU0lYIHJlYWwtdGltZSBleHRlbnNpb25zIGxpYnMKKyAgICBmaW5kX2xpYnJhcnkoTElCVVRJTCB1dGlsKQorICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhsd2lwY29udHJpYnBvcnR1bml4IFBVQkxJQyAke0xJQlVUSUx9KQorZW5kaWYoKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy91bml4L1JFQURNRSBiL2NvbnRyaWIvcG9ydHMvdW5peC9SRUFETUUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2I4Zjk5NQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9SRUFETUUKQEAgLTAsMCArMSwyNSBAQAorVGhpcyBwb3J0IGNvbnRhaW5zIGluZnJhc3RydWN0dXJlIGFuZCBleGFtcGxlcyBmb3IgcnVubmluZyBsd0lQIG9uIFVuaXgtbGlrZQorb3BlcmF0aW5nIHN5c3RlbXMgKExpbnV4LCBPcGVuQlNELCBjeWd3aW4pLiBNdWNoIG9mIHRoaXMgaXMgdGFyZ2V0ZWQgdG93YXJkcwordGVzdGluZyBsd0lQIGFwcGxpY2F0aW9ucy4KKworKiBwb3J0L3N5c19hcmNoLmMsIHBvcnQvcGVyZi5jLCBwb3J0L2luY2x1ZGUvYXJjaC86IEdlbmVyaWMgcGxhdGZvcm0gcG9ydGluZywKKyAgZm9yIGJvdGggc3RhdGVzIG9mIE5PX1NZUy4gKE1hcHBpbmcgZGVidWdnaW5nIHRvIHByaW50ZiwgcHJvdmlkaW5nIAorICBzeXNfbm93ICYgY28gZnJvbSB0aGUgc3lzdGVtIHRpbWUgZXRjLikKKworKiBjaGVjazogUnVucyB0aGUgdW5pdCB0ZXN0cyBzaGlwcGVkIHdpdGggbWFpbiBsd0lQIG9uIHRoZSBVbml4IHBvcnQuCisKKyogcG9ydC9uZXRpZiwgcG9ydC9pbmNsdWRlL25ldGlmOiBWYXJpb3VzIG5ldHdvcmsgaW50ZXJmYWNlIGltcGxlbWVudGF0aW9ucyBhbmQKKyAgdGhlaXIgaGVscGVycywgc29tZSBleHBsaWNpdGx5IGZvciBVbml4IGluZnJhc3RydWN0dXJlLCBzb21lIGdlbmVyaWMgKGJ1dCBtb3N0CisgIHVzZWZ1bCBvbiBhbiBlYXN5IHRvIGRlYnVnIHN5c3RlbSk6CisKKyAgKiBmaWZvOiBIZWxwZXIgZm9yIHNpbworCisgICogbGlzdDogSGVscGVyIGZvciB1bml4aWYKKworICAqIHBjYXBpZjogTmV0d29yayBpbnRlcmZhY2UgdGhhdCByZXBsYXlzIHBhY2thZ2VzIGZyb20gYSBQQ0FQIGR1bXAgZmlsZSwgYW5kCisgICAgZGlzY2FyZHMgcGFja2FnZXMgc2VudCBvdXQgZnJvbSBpdAorCisgICogc2lvOiBNYXBwaW5nIFVuaXggY2hhcmFjdGVyIGRldmljZXMgdG8gbHdJUCdzIHNpbyBtZWNoYW5pc21zCisKKyAgKiB0YXBpZjogTmV0d29yayBpbnRlcmZhY2UgdGhhdCBpcyBtYXBwZWQgdG8gYSB0YXAgaW50ZXJmYWNlIChVbml4IHVzZXIKKyAgICBzcGFjZSBsYXllciAyIG5ldHdvcmsgZGV2aWNlKS4gVXNlcyBsd0lQIHRocmVhZHMuCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvY2hlY2svQ01ha2VMaXN0cy50eHQgYi9jb250cmliL3BvcnRzL3VuaXgvY2hlY2svQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNmOGQwNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9jaGVjay9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDYxIEBACitjbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMy44KQorCitzZXQgKENNQUtFX0NPTkZJR1VSQVRJT05fVFlQRVMgIkRlYnVnO1JlbGVhc2UiKQorCitwcm9qZWN0KGx3aXB1bml0dGVzdHMgQykKKworaWYgKE5PVCBDTUFLRV9TWVNURU1fTkFNRSBTVFJFUVVBTCAiTGludXgiIEFORCBOT1QgQ01BS0VfU1lTVEVNX05BTUUgU1RSRVFVQUwgIkRhcndpbiIgQU5EIE5PVCBDTUFLRV9TWVNURU1fTkFNRSBTVFJFUVVBTCAiR05VIikKKyAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJVbml0IHRlc3QgYXJlIGN1cnJlbnRseSBvbmx5IHdvcmtpbmcgb24gTGludXgsIERhcndpbiBvciBIdXJkIikKK2VuZGlmKCkKKworc2V0KExXSVBfRElSICR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8uLi8uLi8uLi8uLikKK2lmIChOT1QgQ01BS0VfU1lTVEVNX05BTUUgU1RSRVFVQUwgIkdOVSIpCisgICAgc2V0KExXSVBfVVNFX1NBTklUSVpFUlMgdHJ1ZSkKK2VuZGlmKCkKK2luY2x1ZGUoJHtMV0lQX0RJUn0vY29udHJpYi9wb3J0cy9DTWFrZUNvbW1vbi5jbWFrZSkKKworaWYoQ01BS0VfQ19DT01QSUxFUl9JRCBTVFJFUVVBTCAiQ2xhbmciKQorICAgICMgY2hlY2suaCBjYXVzZXMgJ2Vycm9yOiB0b2tlbiBwYXN0aW5nIG9mICcsJyBhbmQgX19WQV9BUkdTX18gaXMgYSBHTlUgZXh0ZW5zaW9uJyB3aXRoIGNsYW5nIDkuMC4wCisgICAgbGlzdChMV0lQX0NPTVBJTEVSX0ZMQUdTIEFQUEVORCAtV25vLWdudS16ZXJvLXZhcmlhZGljLW1hY3JvLWFyZ3VtZW50cykKK2VuZGlmKCkKKworc2V0IChMV0lQX0RFRklOSVRJT05TIC1ETFdJUF9ERUJVRyAtRExXSVBfTk9BU1NFUlRfT05fRVJST1IpCitzZXQgKExXSVBfSU5DTFVERV9ESVJTCisgICAgIiR7TFdJUF9ESVJ9L3Rlc3QvdW5pdCIKKyAgICAiJHtMV0lQX0RJUn0vc3JjL2luY2x1ZGUiCisgICAgIiR7TFdJUF9DT05UUklCX0RJUn0vIgorICAgICIke0xXSVBfQ09OVFJJQl9ESVJ9L3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlIgorICAgICIke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vIgorKQorCitpbmNsdWRlKCR7TFdJUF9DT05UUklCX0RJUn0vcG9ydHMvdW5peC9GaWxlbGlzdHMuY21ha2UpCitpbmNsdWRlKCR7TFdJUF9ESVJ9L3NyYy9GaWxlbGlzdHMuY21ha2UpCitpbmNsdWRlKCR7TFdJUF9ESVJ9L3Rlc3QvdW5pdC9GaWxlbGlzdHMuY21ha2UpCisKK2FkZF9leGVjdXRhYmxlKGx3aXBfdW5pdHRlc3RzICR7TFdJUF9URVNURklMRVN9KQordGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMobHdpcF91bml0dGVzdHMgUFJJVkFURSAke0xXSVBfSU5DTFVERV9ESVJTfSkKK3RhcmdldF9jb21waWxlX29wdGlvbnMobHdpcF91bml0dGVzdHMgUFJJVkFURSAke0xXSVBfQ09NUElMRVJfRkxBR1N9KQordGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMobHdpcF91bml0dGVzdHMgUFJJVkFURSAke0xXSVBfREVGSU5JVElPTlN9ICR7TFdJUF9NQkVEVExTX0RFRklOSVRJT05TfSkKKworZmluZF9saWJyYXJ5KExJQkNIRUNLIGNoZWNrKQorZmluZF9saWJyYXJ5KExJQk0gbSkKK3RhcmdldF9saW5rX2xpYnJhcmllcyhsd2lwX3VuaXR0ZXN0cyAke0xXSVBfU0FOSVRJWkVSX0xJQlN9IGx3aXBhbGxhcHBzIGx3aXBjb3JlICR7TElCQ0hFQ0t9ICR7TElCTX0pCisKK2lmIChOT1QgQ01BS0VfU1lTVEVNX05BTUUgU1RSRVFVQUwgIkRhcndpbiIpCisgICAgIyBjaGVjayBpbnN0YWxsZWQgdmlhIGJyZXcgb24gRGFyd2luIGRvZXNuJ3QgaGF2ZSBhIHNlcGFyYXRlIHN1YnVuaXQgbGlicmFyeSAobXVzdCBiZSBzdGF0aWNhbGx5IGxpbmtlZCkKKyAgICBmaW5kX2xpYnJhcnkoTElCU1VCVU5JVCBzdWJ1bml0KQorICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhsd2lwX3VuaXR0ZXN0cyAke0xJQlNVQlVOSVR9KQorZW5kaWYoKQorCitpZiAoQ01BS0VfU1lTVEVNX05BTUUgU1RSRVFVQUwgIkxpbnV4IiBPUiBDTUFLRV9TWVNURU1fTkFNRSBTVFJFUVVBTCAiR05VIikKKyAgICBmaW5kX2xpYnJhcnkoTElCVVRJTCB1dGlsKQorICAgIGZpbmRfbGlicmFyeShMSUJQVEhSRUFEIHB0aHJlYWQpCisgICAgZmluZF9saWJyYXJ5KExJQlJUIHJ0KQorICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhsd2lwX3VuaXR0ZXN0cyAke0xJQlVUSUx9ICR7TElCUFRIUkVBRH0gJHtMSUJSVH0pCitlbmRpZigpCisKK2lmIChDTUFLRV9TWVNURU1fTkFNRSBTVFJFUVVBTCAiRGFyd2luIikKKyAgICAjIERhcndpbiBkb2Vzbid0IGhhdmUgcHRocmVhZHMgb3IgUE9TSVggcmVhbC10aW1lIGV4dGVuc2lvbnMgbGlicworICAgIGZpbmRfbGlicmFyeShMSUJVVElMIHV0aWwpCisgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKGx3aXBfdW5pdHRlc3RzICR7TElCVVRJTH0pCitlbmRpZigpCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvY2hlY2svTWFrZWZpbGUgYi9jb250cmliL3BvcnRzL3VuaXgvY2hlY2svTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODFlMjJlNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9jaGVjay9NYWtlZmlsZQpAQCAtMCwwICsxLDk0IEBACisjCisjIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorIyBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisjCisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyMgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorIyAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisjICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyMgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyMgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisjIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisjIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorIyBPRiBTVUNIIERBTUFHRS4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorIworIyBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorIworCithbGwgY29tcGlsZTogbHdpcF91bml0dGVzdHMKKy5QSE9OWTogYWxsIGNsZWFuIGNoZWNrCisKK0xXSVBESVI9Li4vLi4vLi4vLi4vc3JjCisKKyMgVGhlIGluY2x1ZGUgcGF0aCB0byBzeXNfYXJjaC5oIGFuZCBsd2lwb3B0cy5oIG11c3QgYmUgZmlyc3QsIHNvIHRoaXMgbXVzdCBiZSBiZWZvcmUgQ29tbW9uLm1rCitDRkxBR1M9LURMV0lQX05PQVNTRVJUX09OX0VSUk9SIC1JL3Vzci9pbmNsdWRlL2NoZWNrIC1JJChMV0lQRElSKS8uLi90ZXN0L3VuaXQKKworIyBJZ25vcmUgJ3RvbyBtYW55IGFyZ3VtZW50cyBmb3IgZm9ybWF0JyB3YXJuaW5ncyB3aGljaCBoYXBwZW4gd2l0aCBHQ0NzCisjIGZyb20gY2hlY2sgMC4xNS4yIG9uIGZhaWxfaWYvZmFpbF91bmxlc3MgbWFjcm9zIHdpdGggdGV4dC4KKyMgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9saWJjaGVjay9jaGVjay9wdWxsLzI5OC9jb21taXRzLzgyNTQwYzU0MjhkMzgxOGI2NGQKK0NGTEFHUys9LVduby1lcnJvcj1mb3JtYXQtZXh0cmEtYXJncworCitpZmVxIChjbGFuZywkKGZpbmRzdHJpbmcgY2xhbmcsJChDQykpKQorIyBjaGVjay5oIGNhdXNlcyAnZXJyb3I6IHRva2VuIHBhc3Rpbmcgb2YgJywnIGFuZCBfX1ZBX0FSR1NfXyBpcyBhIEdOVSBleHRlbnNpb24nIHdpdGggY2xhbmcgOS4wLjAKK0NGTEFHUys9LVduby1nbnUtemVyby12YXJpYWRpYy1tYWNyby1hcmd1bWVudHMKK2VuZGlmCisKKyMgUHJldmVudCBjb21waWxpbmcgc3lzX2FyY2guYyBvZiB1bml4IHBvcnQgYmVjYXVzZSB1bml0IHRlc3QgcHJvdmlkZSB0aGVpciBvd24gcG9ydAorU1lTQVJDSD89CitpbmNsdWRlIC4uL0NvbW1vbi5taworCitMREZMQUdTOj0tbGNoZWNrIC1sbSAkKExERkxBR1MpCisKK2lmbmVxICgkKFVOQU1FX1MpLERhcndpbikKKyMgY2hlY2sgaW5zdGFsbGVkIHZpYSBicmV3IG9uIERhcndpbiBkb2Vzbid0IGhhdmUgYSBzZXBhcmF0ZSBzdWJ1bml0IGxpYnJhcnkgKG11c3QgYmUgc3RhdGljYWxseSBsaW5rZWQpCitMREZMQUdTKz0tbHN1YnVuaXQKK2VuZGlmCisKK1RFU1RESVI9JChMV0lQRElSKS8uLi90ZXN0L3VuaXQKK2luY2x1ZGUgJChURVNURElSKS9GaWxlbGlzdHMubWsKK1RFU1RPQkpTPSQobm90ZGlyICQoVEVTVEZJTEVTOi5jPS5vKSkKKworREVQRklMRVM9LmRlcGVuZF90ZXN0IC5kZXBlbmRfbHdpcCAuZGVwZW5kX2FwcAorCitjbGVhbjoKKwlAcm0gLWYgKi5vICQoTFdJUExJQkNPTU1PTikgJChBUFBMSUIpIGx3aXBfdW5pdHRlc3RzICoucyAkKERFUEZJTEVTKSAqLmNvcmUgY29yZSBsd2lwX3VuaXR0ZXN0cy54bWwKKworZGVwZW5kIGRlcDogJChERVBGSUxFUykKKwlAdHJ1ZQorCitpZm5lcSAoJChNQUtFQ01ER09BTFMpLGNsZWFuKQoraW5jbHVkZSAkKERFUEZJTEVTKQorZW5kaWYKKworLmRlcGVuZF90ZXN0OiAkKFRFU1RGSUxFUykKKwkkKENDREVQKSAkKENGTEFHUykgLU1NICReID4gLmRlcGVuZF90ZXN0IHx8IHJtIC1mIC5kZXBlbmRfdGVzdAorLmRlcGVuZF9sd2lwOiAkKExXSVBGSUxFUykKKwkkKENDREVQKSAkKENGTEFHUykgLU1NICReID4gLmRlcGVuZF9sd2lwIHx8IHJtIC1mIC5kZXBlbmRfbHdpcAorLmRlcGVuZF9hcHA6ICQoQVBQRklMRVMpCisJJChDQ0RFUCkgJChDRkxBR1MpIC1NTSAkXiA+IC5kZXBlbmRfYXBwIHx8IHJtIC1mIC5kZXBlbmRfYXBwCisKK2lmbmVxICgkKFVOQU1FX1MpLERhcndpbikKKyMgY2xhbmcgb24gRGFyd2luIGRvZXNuJ3Qgc3VwcG9ydCAtLXN0YXJ0LWdyb3VwCitsd2lwX3VuaXR0ZXN0czogJChERVBGSUxFUykgJChURVNUT0JKUykgJChMV0lQTElCQ09NTU9OKSAkKEFQUExJQikKKwkkKENDKSAkKENGTEFHUykgLW8gbHdpcF91bml0dGVzdHMgJChURVNUT0JKUykgIC1XbCwtLXN0YXJ0LWdyb3VwICQoTFdJUExJQkNPTU1PTikgJChBUFBMSUIpICQoTERGTEFHUykgLVdsLC0tZW5kLWdyb3VwCitlbHNlCitsd2lwX3VuaXR0ZXN0czogJChERVBGSUxFUykgJChURVNUT0JKUykgJChMV0lQTElCQ09NTU9OKSAkKEFQUExJQikKKwkkKENDKSAkKENGTEFHUykgLW8gbHdpcF91bml0dGVzdHMgJChURVNUT0JKUykgJChMV0lQTElCQ09NTU9OKSAkKEFQUExJQikgJChMREZMQUdTKQorZW5kaWYKKworY2hlY2s6IGx3aXBfdW5pdHRlc3RzCisJQC4vbHdpcF91bml0dGVzdHMKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9jaGVjay9SRUFETUUgYi9jb250cmliL3BvcnRzL3VuaXgvY2hlY2svUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMzI2NzIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvY2hlY2svUkVBRE1FCkBAIC0wLDAgKzEsOCBAQAorCitIZWxwZXIgZmlsZXMgdG8gcnVuIGx3SVAgdW5pdCB0ZXN0cyBvbiB1bml4LWxpa2Ugc3lzdGVtcy4KKworMS4gSW5zdGFsbCB0aGUgY2hlY2sgbGlicmFyeSwgdGhyb3VnaCBhIHBhY2thZ2UgbWFuYWdlciBvciBmcm9tIGh0dHBzOi8vbGliY2hlY2suZ2l0aHViLmlvL2NoZWNrLworMi4gUHV0IHRoZSBsd2lwIGNvZGUgaW4gYSBkaXJlY3RvcnkgY2FsbGVkICdsd2lwJworMy4gUnVuIGBtYWtlIGNoZWNrYAorNC4gTWFrZSBzdXJlIGFsbCB0ZXN0cyBwYXNzCisKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9jaGVjay9jb25maWcuaCBiL2NvbnRyaWIvcG9ydHMvdW5peC9jaGVjay9jb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDg0YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy91bml4L2NoZWNrL2NvbmZpZy5oCkBAIC0wLDAgKzEsMiBAQAorLyogRW5hYmxlIHRoaXMgdG8gc2ltcGxpZnkgZGVidWdnaW5nICovCisvKiAjZGVmaW5lIExXSVBfVU5JVFRFU1RTX05PRk9SSyAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy91bml4L2V4YW1wbGVfYXBwL0NNYWtlTGlzdHMudHh0IGIvY29udHJpYi9wb3J0cy91bml4L2V4YW1wbGVfYXBwL0NNYWtlTGlzdHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2MWJlMWIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvZXhhbXBsZV9hcHAvQ01ha2VMaXN0cy50eHQKQEAgLTAsMCArMSwyNyBAQAoraW5jbHVkZSgke0xXSVBfRElSfS9jb250cmliL3BvcnRzL0NNYWtlQ29tbW9uLmNtYWtlKQorCitzZXQgKExXSVBfSU5DTFVERV9ESVJTCisgICAgIiR7TFdJUF9ESVJ9L3NyYy9pbmNsdWRlIgorICAgICIke0xXSVBfRElSfS9jb250cmliLyIKKyAgICAiJHtMV0lQX0RJUn0vY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZSIKKyAgICAiJHtMV0lQX0RJUn0vY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcCIKKykKKworaW5jbHVkZSgke0xXSVBfRElSfS9zcmMvRmlsZWxpc3RzLmNtYWtlKQoraW5jbHVkZSgke0xXSVBfRElSfS9jb250cmliL0ZpbGVsaXN0cy5jbWFrZSkKK2luY2x1ZGUoJHtMV0lQX0RJUn0vY29udHJpYi9wb3J0cy91bml4L0ZpbGVsaXN0cy5jbWFrZSkKKworaWYoTk9UIEVYSVNUUyAke0xXSVBfRElSfS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL2x3aXBjZmcuaCkKKyAgbWVzc2FnZShXQVJOSU5HICIke0xXSVBfRElSfS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwIGlzIG1pc3NpbmcgbHdpcGNmZy5oCitDb3B5ICR7TFdJUF9ESVJ9L2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvbHdpcGNmZy5oLmV4YW1wbGUgdG8gJHtMV0lQX0RJUn0vY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwY2ZnLmggYW5kIGVkaXQgYXBwcm9wcmlhdGVseSIpCitlbmRpZigpCithZGRfZXhlY3V0YWJsZShleGFtcGxlX2FwcCAke0xXSVBfRElSfS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3QuYyBkZWZhdWx0X25ldGlmLmMpCit0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhleGFtcGxlX2FwcCBQUklWQVRFICR7TFdJUF9JTkNMVURFX0RJUlN9KQordGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhleGFtcGxlX2FwcCBQUklWQVRFICR7TFdJUF9DT01QSUxFUl9GTEFHU30pCit0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhleGFtcGxlX2FwcCBQUklWQVRFICR7TFdJUF9ERUZJTklUSU9OU30gJHtMV0lQX01CRURUTFNfREVGSU5JVElPTlN9KQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKGV4YW1wbGVfYXBwICR7TFdJUF9TQU5JVElaRVJfTElCU30gbHdpcGNvbnRyaWJleGFtcGxlcyBsd2lwY29udHJpYmFwcHMgbHdpcGNvbnRyaWJhZGRvbnMgbHdpcGFsbGFwcHMgbHdpcGNvbnRyaWJwb3J0dW5peCBsd2lwY29yZSBsd2lwbWJlZHRscykKKworYWRkX2V4ZWN1dGFibGUobWFrZWZzZGF0YSAke2x3aXBtYWtlZnNkYXRhX1NSQ1N9KQordGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhtYWtlZnNkYXRhIFBSSVZBVEUgJHtMV0lQX0NPTVBJTEVSX0ZMQUdTfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKG1ha2Vmc2RhdGEgUFJJVkFURSAke0xXSVBfSU5DTFVERV9ESVJTfSkKK3RhcmdldF9saW5rX2xpYnJhcmllcyhtYWtlZnNkYXRhICR7TFdJUF9TQU5JVElaRVJfTElCU30pCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvZXhhbXBsZV9hcHAvTWFrZWZpbGUgYi9jb250cmliL3BvcnRzL3VuaXgvZXhhbXBsZV9hcHAvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhhYWJhMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9leGFtcGxlX2FwcC9NYWtlZmlsZQpAQCAtMCwwICsxLDYwIEBACisjCisjIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorIyBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisjCisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyMgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorIyAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisjICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIyAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyMgICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyMgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyMgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyMgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisjIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisjIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorIyBPRiBTVUNIIERBTUFHRS4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorIworIyBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorIworCithbGwgY29tcGlsZTogZXhhbXBsZV9hcHAgbWFrZWZzZGF0YQorLlBIT05ZOiBhbGwKKworTFdJUERJUj0uLi8uLi8uLi8uLi9zcmMKKworaW5jbHVkZSAuLi9Db21tb24ubWsKKworQ0ZMQUdTKz0tSSQoQ09OVFJJQkRJUikvZXhhbXBsZXMvZXhhbXBsZV9hcHAKKworVEVTVEZMQUdTPz0KK0NGTEFHUys9JChURVNURkxBR1MpCisKK01BS0VGU0RBVEFPQkpTPSQobm90ZGlyICQoTUFLRUZTREFUQUZJTEVTOi5jPS5vKSkKKworY2xlYW46CisJcm0gLWYgKi5vICQoTFdJUExJQkNPTU1PTikgJChBUFBMSUIpIGV4YW1wbGVfYXBwIG1ha2Vmc2RhdGEgKi5zIC5kZXBlbmQqICouY29yZSBjb3JlCisKK2RlcGVuZCBkZXA6IC5kZXBlbmQKKworaW5jbHVkZSAuZGVwZW5kCisKKy5kZXBlbmQ6ICQoQ09OVFJJQkRJUikvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdC5jIGRlZmF1bHRfbmV0aWYuYyAkKExXSVBGSUxFUykgJChBUFBGSUxFUykgJChNQUtFRlNEQVRBRklMRVMpCisJJChDQ0RFUCkgJChDRkxBR1MpIC1NTSAkXiA+IC5kZXBlbmQgfHwgcm0gLWYgLmRlcGVuZAorCitleGFtcGxlX2FwcDogLmRlcGVuZCAkKExXSVBMSUJDT01NT04pICQoQVBQTElCKSBkZWZhdWx0X25ldGlmLm8gdGVzdC5vCisJJChDQykgJChDRkxBR1MpIC1vIGV4YW1wbGVfYXBwIHRlc3QubyBkZWZhdWx0X25ldGlmLm8gLVdsLC0tc3RhcnQtZ3JvdXAgJChBUFBMSUIpICQoTFdJUExJQkNPTU1PTikgLVdsLC0tZW5kLWdyb3VwICQoTERGTEFHUykKKworbWFrZWZzZGF0YTogLmRlcGVuZCAkKE1BS0VGU0RBVEFPQkpTKQorCSQoQ0MpICQoQ0ZMQUdTKSAtbyBtYWtlZnNkYXRhICQoTUFLRUZTREFUQU9CSlMpCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvZXhhbXBsZV9hcHAvZGVmYXVsdF9uZXRpZi5jIGIvY29udHJpYi9wb3J0cy91bml4L2V4YW1wbGVfYXBwL2RlZmF1bHRfbmV0aWYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzdlYjZhCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy91bml4L2V4YW1wbGVfYXBwL2RlZmF1bHRfbmV0aWYuYwpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyAqCisgKi8KKworI2luY2x1ZGUgImx3aXAvb3B0LmgiCisKKyNpbmNsdWRlICJsd2lwL25ldGlmLmgiCisjaW5jbHVkZSAibHdpcC9pcF9hZGRyLmgiCisjaW5jbHVkZSAibHdpcC90Y3BpcC5oIgorI2luY2x1ZGUgIm5ldGlmL3RhcGlmLmgiCisjaW5jbHVkZSAiZXhhbXBsZXMvZXhhbXBsZV9hcHAvZGVmYXVsdF9uZXRpZi5oIgorCitzdGF0aWMgc3RydWN0IG5ldGlmIG5ldGlmOworCisjaWYgTFdJUF9JUFY0CisjZGVmaW5lIE5FVElGX0FERFJTIGlwYWRkciwgbmV0bWFzaywgZ3csCit2b2lkIGluaXRfZGVmYXVsdF9uZXRpZihjb25zdCBpcDRfYWRkcl90ICppcGFkZHIsIGNvbnN0IGlwNF9hZGRyX3QgKm5ldG1hc2ssIGNvbnN0IGlwNF9hZGRyX3QgKmd3KQorI2Vsc2UKKyNkZWZpbmUgTkVUSUZfQUREUlMKK3ZvaWQgaW5pdF9kZWZhdWx0X25ldGlmKHZvaWQpCisjZW5kaWYKK3sKKyNpZiBOT19TWVMKK25ldGlmX2FkZCgmbmV0aWYsIE5FVElGX0FERFJTIE5VTEwsIHRhcGlmX2luaXQsIG5ldGlmX2lucHV0KTsKKyNlbHNlCisgIG5ldGlmX2FkZCgmbmV0aWYsIE5FVElGX0FERFJTIE5VTEwsIHRhcGlmX2luaXQsIHRjcGlwX2lucHV0KTsKKyNlbmRpZgorICBuZXRpZl9zZXRfZGVmYXVsdCgmbmV0aWYpOworfQorCit2b2lkCitkZWZhdWx0X25ldGlmX3BvbGwodm9pZCkKK3sKKyAgdGFwaWZfcG9sbCgmbmV0aWYpOworfQorCit2b2lkCitkZWZhdWx0X25ldGlmX3NodXRkb3duKHZvaWQpCit7Cit9CmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvbGliL0NNYWtlTGlzdHMudHh0IGIvY29udHJpYi9wb3J0cy91bml4L2xpYi9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDIyOWM0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy91bml4L2xpYi9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDMzIEBACitjbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMy44KQorCitwcm9qZWN0KGx3aXAgQykKKworc2V0IChCVUlMRF9TSEFSRURfTElCUyBPTikKKworaWYgKE5PVCBDTUFLRV9TWVNURU1fTkFNRSBTVFJFUVVBTCAiTGludXgiIEFORCBOT1QgQ01BS0VfU1lTVEVNX05BTUUgU1RSRVFVQUwgIkdOVSIpCisgICAgbWVzc2FnZShGQVRBTF9FUlJPUiAiTHdpcCBzaGFyZWQgbGlicmFyeSBpcyBvbmx5IHdvcmtpbmcgb24gTGludXggb3IgdGhlIEh1cmQiKQorZW5kaWYoKQorCitzZXQoTFdJUF9ESVIgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9Ly4uLy4uLy4uLy4uKQoraW5jbHVkZSgke0xXSVBfRElSfS9jb250cmliL3BvcnRzL0NNYWtlQ29tbW9uLmNtYWtlKQorCitzZXQgKExXSVBfREVGSU5JVElPTlMgLURMV0lQX0RFQlVHKQorc2V0IChMV0lQX0lOQ0xVREVfRElSUworICAgICIke0xXSVBfRElSfS9zcmMvaW5jbHVkZSIKKyAgICAiJHtMV0lQX0NPTlRSSUJfRElSfS8iCisgICAgIiR7TFdJUF9DT05UUklCX0RJUn0vcG9ydHMvdW5peC9wb3J0L2luY2x1ZGUiCisgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8iCispCisKK3NldCAoTFdJUF9FWENMVURFX1NMSVBJRiBUUlVFKQoraW5jbHVkZSgke0xXSVBfQ09OVFJJQl9ESVJ9L3BvcnRzL3VuaXgvRmlsZWxpc3RzLmNtYWtlKQoraW5jbHVkZSgke0xXSVBfRElSfS9zcmMvRmlsZWxpc3RzLmNtYWtlKQorCithZGRfbGlicmFyeShsd2lwICR7bHdpcG5vYXBwc19TUkNTfSAke2x3aXBjb250cmlicG9ydHVuaXhfU1JDU30gJHtsd2lwY29udHJpYnBvcnR1bml4bmV0aWZzX1NSQ1N9KQordGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhsd2lwIFBSSVZBVEUgJHtMV0lQX0NPTVBJTEVSX0ZMQUdTfSkKK3RhcmdldF9jb21waWxlX2RlZmluaXRpb25zKGx3aXAgUFJJVkFURSAke0xXSVBfREVGSU5JVElPTlN9ICR7TFdJUF9NQkVEVExTX0RFRklOSVRJT05TfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGx3aXAgUFJJVkFURSAke0xXSVBfSU5DTFVERV9ESVJTfSAke0xXSVBfTUJFRFRMU19JTkNMVURFX0RJUlN9KQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKGx3aXAgJHtMV0lQX1NBTklUSVpFUl9MSUJTfSkKKworZmluZF9saWJyYXJ5KExJQlBUSFJFQUQgcHRocmVhZCkKK3RhcmdldF9saW5rX2xpYnJhcmllcyhsd2lwICR7TElCUFRIUkVBRH0pCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvbGliL1JFQURNRSBiL2NvbnRyaWIvcG9ydHMvdW5peC9saWIvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNmQwYjEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvbGliL1JFQURNRQpAQCAtMCwwICsxLDI4IEBACitUaGlzIGRpcmVjdG9yeSBjb250YWlucyBhbiBleGFtcGxlIG9mIGhvdyB0byBjb21waWxlIGx3SVAgYXMgYSBzaGFyZWQgbGlicmFyeQorb24gTGludXguCisKK1NvbWUgYnJpZWYgaW5zdHJ1Y3Rpb25zOgorCisqIENvbXBpbGUgdGhlIGNvZGU6CisKKyA+IG1rZGlyIGJ1aWxkCisgPiBjZCBidWlsZAorID4gY21ha2UgLi4KKyA+IG1ha2UgY2xlYW4gYWxsCisKKyBUaGlzIHNob3VsZCBwcm9kdWNlIGxpYmx3aXAuc28uIFRoaXMgaXMgdGhlIHNoYXJlZCBsaWJyYXJ5LgorCisqIExpbmsgYW4gYXBwbGljYXRpb24gYWdhaW5zdCB0aGUgc2hhcmVkIGxpYnJhcnkKKworIElmIHlvdSdyZSB1c2luZyBnY2MgeW91IGNhbiBkbyB0aGlzIGJ5IGluY2x1ZGluZyAtbGx3aXAgaW4geW91ciBsaW5rIGNvbW1hbmQuCisKKyogUnVuIHlvdXIgYXBwbGljYXRpb24KKworIEVuc3VyZSB0aGF0IExEX0xJQlJBUllfUEFUSCBpbmNsdWRlcyB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgbGlibHdpcC5zbworIChpZS4gdGhpcyBkaXJlY3RvcnkpCisKKworSWYgeW91IGFyZSB1bnN1cmUgYWJvdXQgc2hhcmVkIGxpYnJhcmllcyBhbmQgbGlicmFyaWVzIG9uIGxpbnV4IGluCitnZW5lcmFsLCB5b3UgbWlnaHQgZmluZCB0aGlzIEhPV1RPIHVzZWZ1bDoKKworPGh0dHA6Ly93d3cudGxkcC5vcmcvSE9XVE8vUHJvZ3JhbS1MaWJyYXJ5LUhPV1RPLz4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9saWIvbHdpcG9wdHMuaCBiL2NvbnRyaWIvcG9ydHMvdW5peC9saWIvbHdpcG9wdHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzFmYzc3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy91bml4L2xpYi9sd2lwb3B0cy5oCkBAIC0wLDAgKzEsNDM2IEBACisvKioKKyAqIEBmaWxlCisgKgorICogbHdJUCBPcHRpb25zIENvbmZpZ3VyYXRpb24KKyAqLworCisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDQgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyAqCisgKi8KKyNpZm5kZWYgTFdJUF9MV0lQT1BUU19ICisjZGVmaW5lIExXSVBfTFdJUE9QVFNfSAorCisvKgorICogSW5jbHVkZSB1c2VyIGRlZmluZWQgb3B0aW9ucyBmaXJzdC4gQW55dGhpbmcgbm90IGRlZmluZWQgaW4gdGhlc2UgZmlsZXMKKyAqIHdpbGwgYmUgc2V0IHRvIHN0YW5kYXJkIHZhbHVlcy4gT3ZlcnJpZGUgYW55dGhpbmcgeW91IGRvbid0IGxpa2UhCisgKi8KKyNpbmNsdWRlICJsd2lwb3B0cy5oIgorI2luY2x1ZGUgImx3aXAvZGVidWcuaCIKKworLyoKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tIFBsYXRmb3JtIHNwZWNpZmljIGxvY2tpbmcgLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyovCisKKy8qKgorICogU1lTX0xJR0hUV0VJR0hUX1BST1Q9PTE6IGlmIHlvdSB3YW50IGludGVyLXRhc2sgcHJvdGVjdGlvbiBmb3IgY2VydGFpbgorICogY3JpdGljYWwgcmVnaW9ucyBkdXJpbmcgYnVmZmVyIGFsbG9jYXRpb24sIGRlYWxsb2NhdGlvbiBhbmQgbWVtb3J5CisgKiBhbGxvY2F0aW9uIGFuZCBkZWFsbG9jYXRpb24uCisgKi8KKyNkZWZpbmUgU1lTX0xJR0hUV0VJR0hUX1BST1QgICAgICAgICAgICAwCisKKy8qKgorICogTk9fU1lTPT0xOiBQcm92aWRlcyBWRVJZIG1pbmltYWwgZnVuY3Rpb25hbGl0eS4gT3RoZXJ3aXNlLAorICogdXNlIGx3SVAgZmFjaWxpdGllcy4KKyAqLworI2RlZmluZSBOT19TWVMgICAgICAgICAgICAgICAgICAgICAgICAgIDAKKworLyoKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLSBNZW1vcnkgb3B0aW9ucyAtLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyovCisKKy8qKgorICogTUVNX0FMSUdOTUVOVDogc2hvdWxkIGJlIHNldCB0byB0aGUgYWxpZ25tZW50IG9mIHRoZSBDUFUKKyAqICAgIDQgYnl0ZSBhbGlnbm1lbnQgLT4gI2RlZmluZSBNRU1fQUxJR05NRU5UIDQKKyAqICAgIDIgYnl0ZSBhbGlnbm1lbnQgLT4gI2RlZmluZSBNRU1fQUxJR05NRU5UIDIKKyAqLworI2RlZmluZSBNRU1fQUxJR05NRU5UICAgICAgICAgICAgICAgICAgIDFVCisKKy8qKgorICogTUVNX1NJWkU6IHRoZSBzaXplIG9mIHRoZSBoZWFwIG1lbW9yeS4gSWYgdGhlIGFwcGxpY2F0aW9uIHdpbGwgc2VuZAorICogYSBsb3Qgb2YgZGF0YSB0aGF0IG5lZWRzIHRvIGJlIGNvcGllZCwgdGhpcyBzaG91bGQgYmUgc2V0IGhpZ2guCisgKi8KKyNkZWZpbmUgTUVNX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAxNjAwCisKKy8qCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0gSW50ZXJuYWwgTWVtb3J5IFBvb2wgU2l6ZXMgLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqLworLyoqCisgKiBNRU1QX05VTV9QQlVGOiB0aGUgbnVtYmVyIG9mIG1lbXAgc3RydWN0IHBidWZzICh1c2VkIGZvciBQQlVGX1JPTSBhbmQgUEJVRl9SRUYpLgorICogSWYgdGhlIGFwcGxpY2F0aW9uIHNlbmRzIGEgbG90IG9mIGRhdGEgb3V0IG9mIFJPTSAob3Igb3RoZXIgc3RhdGljIG1lbW9yeSksCisgKiB0aGlzIHNob3VsZCBiZSBzZXQgaGlnaC4KKyAqLworI2RlZmluZSBNRU1QX05VTV9QQlVGICAgICAgICAgICAgICAgICAgIDE2CisKKy8qKgorICogTUVNUF9OVU1fUkFXX1BDQjogTnVtYmVyIG9mIHJhdyBjb25uZWN0aW9uIFBDQnMKKyAqIChyZXF1aXJlcyB0aGUgTFdJUF9SQVcgb3B0aW9uKQorICovCisjZGVmaW5lIE1FTVBfTlVNX1JBV19QQ0IgICAgICAgICAgICAgICAgNAorCisvKioKKyAqIE1FTVBfTlVNX1VEUF9QQ0I6IHRoZSBudW1iZXIgb2YgVURQIHByb3RvY29sIGNvbnRyb2wgYmxvY2tzLiBPbmUKKyAqIHBlciBhY3RpdmUgVURQICJjb25uZWN0aW9uIi4KKyAqIChyZXF1aXJlcyB0aGUgTFdJUF9VRFAgb3B0aW9uKQorICovCisjZGVmaW5lIE1FTVBfTlVNX1VEUF9QQ0IgICAgICAgICAgICAgICAgNAorCisvKioKKyAqIE1FTVBfTlVNX1RDUF9QQ0I6IHRoZSBudW1iZXIgb2Ygc2ltdWxhdGVub3VzbHkgYWN0aXZlIFRDUCBjb25uZWN0aW9ucy4KKyAqIChyZXF1aXJlcyB0aGUgTFdJUF9UQ1Agb3B0aW9uKQorICovCisjZGVmaW5lIE1FTVBfTlVNX1RDUF9QQ0IgICAgICAgICAgICAgICAgNAorCisvKioKKyAqIE1FTVBfTlVNX1RDUF9QQ0JfTElTVEVOOiB0aGUgbnVtYmVyIG9mIGxpc3RlbmluZyBUQ1AgY29ubmVjdGlvbnMuCisgKiAocmVxdWlyZXMgdGhlIExXSVBfVENQIG9wdGlvbikKKyAqLworI2RlZmluZSBNRU1QX05VTV9UQ1BfUENCX0xJU1RFTiAgICAgICAgIDQKKworLyoqCisgKiBNRU1QX05VTV9UQ1BfU0VHOiB0aGUgbnVtYmVyIG9mIHNpbXVsdGFuZW91c2x5IHF1ZXVlZCBUQ1Agc2VnbWVudHMuCisgKiAocmVxdWlyZXMgdGhlIExXSVBfVENQIG9wdGlvbikKKyAqLworI2RlZmluZSBNRU1QX05VTV9UQ1BfU0VHICAgICAgICAgICAgICAgIDE2CisKKy8qKgorICogTUVNUF9OVU1fUkVBU1NEQVRBOiB0aGUgbnVtYmVyIG9mIHNpbXVsdGFuZW91c2x5IElQIHBhY2tldHMgcXVldWVkIGZvcgorICogcmVhc3NlbWJseSAod2hvbGUgcGFja2V0cywgbm90IGZyYWdtZW50cyEpCisgKi8KKyNkZWZpbmUgTUVNUF9OVU1fUkVBU1NEQVRBICAgICAgICAgICAgICAxCisKKy8qKgorICogTUVNUF9OVU1fQVJQX1FVRVVFOiB0aGUgbnVtYmVyIG9mIHNpbXVsYXRlb3VzbHkgcXVldWVkIG91dGdvaW5nCisgKiBwYWNrZXRzIChwYnVmcykgdGhhdCBhcmUgd2FpdGluZyBmb3IgYW4gQVJQIHJlcXVlc3QgKHRvIHJlc29sdmUKKyAqIHRoZWlyIGRlc3RpbmF0aW9uIGFkZHJlc3MpIHRvIGZpbmlzaC4KKyAqIChyZXF1aXJlcyB0aGUgQVJQX1FVRVVFSU5HIG9wdGlvbikKKyAqLworI2RlZmluZSBNRU1QX05VTV9BUlBfUVVFVUUgICAgICAgICAgICAgIDIKKworLyoqCisgKiBNRU1QX05VTV9TWVNfVElNRU9VVDogdGhlIG51bWJlciBvZiBzaW11bGF0ZW91c2x5IGFjdGl2ZSB0aW1lb3V0cy4KKyAqIChyZXF1aXJlcyBOT19TWVM9PTApCisgKi8KKyNkZWZpbmUgTUVNUF9OVU1fU1lTX1RJTUVPVVQgICAgICAgICAgICA4CisKKy8qKgorICogTUVNUF9OVU1fTkVUQlVGOiB0aGUgbnVtYmVyIG9mIHN0cnVjdCBuZXRidWZzLgorICogKG9ubHkgbmVlZGVkIGlmIHlvdSB1c2UgdGhlIHNlcXVlbnRpYWwgQVBJLCBsaWtlIGFwaV9saWIuYykKKyAqLworI2RlZmluZSBNRU1QX05VTV9ORVRCVUYgICAgICAgICAgICAgICAgIDIKKworLyoqCisgKiBNRU1QX05VTV9ORVRDT05OOiB0aGUgbnVtYmVyIG9mIHN0cnVjdCBuZXRjb25ucy4KKyAqIChvbmx5IG5lZWRlZCBpZiB5b3UgdXNlIHRoZSBzZXF1ZW50aWFsIEFQSSwgbGlrZSBhcGlfbGliLmMpCisgKi8KKyNkZWZpbmUgTUVNUF9OVU1fTkVUQ09OTiAgICAgICAgICAgICAgIDMyCisKKy8qKgorICogTUVNUF9OVU1fVENQSVBfTVNHX0FQSTogdGhlIG51bWJlciBvZiBzdHJ1Y3QgdGNwaXBfbXNnLCB3aGljaCBhcmUgdXNlZAorICogZm9yIGNhbGxiYWNrL3RpbWVvdXQgQVBJIGNvbW11bmljYXRpb24uCisgKiAob25seSBuZWVkZWQgaWYgeW91IHVzZSB0Y3BpcC5jKQorICovCisjZGVmaW5lIE1FTVBfTlVNX1RDUElQX01TR19BUEkgICAgICAgICAgOAorCisvKioKKyAqIE1FTVBfTlVNX1RDUElQX01TR19JTlBLVDogdGhlIG51bWJlciBvZiBzdHJ1Y3QgdGNwaXBfbXNnLCB3aGljaCBhcmUgdXNlZAorICogZm9yIGluY29taW5nIHBhY2tldHMuCisgKiAob25seSBuZWVkZWQgaWYgeW91IHVzZSB0Y3BpcC5jKQorICovCisjZGVmaW5lIE1FTVBfTlVNX1RDUElQX01TR19JTlBLVCAgICAgICAgOAorCisvKioKKyAqIFBCVUZfUE9PTF9TSVpFOiB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgaW4gdGhlIHBidWYgcG9vbC4KKyAqLworI2RlZmluZSBQQlVGX1BPT0xfU0laRSAgICAgICAgICAgICAgICAgIDgKKworLyoKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLSBBUlAgb3B0aW9ucyAtLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyovCisvKioKKyAqIExXSVBfQVJQPT0xOiBFbmFibGUgQVJQIGZ1bmN0aW9uYWxpdHkuCisgKi8KKyNkZWZpbmUgTFdJUF9BUlAgICAgICAgICAgICAgICAgICAgICAgICAxCisKKy8qCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLSBJUCBvcHRpb25zIC0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqLworLyoqCisgKiBJUF9GT1JXQVJEPT0xOiBFbmFibGVzIHRoZSBhYmlsaXR5IHRvIGZvcndhcmQgSVAgcGFja2V0cyBhY3Jvc3MgbmV0d29yaworICogaW50ZXJmYWNlcy4gSWYgeW91IGFyZSBnb2luZyB0byBydW4gbHdJUCBvbiBhIGRldmljZSB3aXRoIG9ubHkgb25lIG5ldHdvcmsKKyAqIGludGVyZmFjZSwgZGVmaW5lIHRoaXMgdG8gMC4KKyAqLworI2RlZmluZSBJUF9GT1JXQVJEICAgICAgICAgICAgICAgICAgICAgIDAKKworLyoqCisgKiBJUF9PUFRJT05TOiBEZWZpbmVzIHRoZSBiZWhhdmlvciBmb3IgSVAgb3B0aW9ucy4KKyAqICAgICAgSVBfT1BUSU9OU19BTExPV0VEPT0wOiBBbGwgcGFja2V0cyB3aXRoIElQIG9wdGlvbnMgYXJlIGRyb3BwZWQuCisgKiAgICAgIElQX09QVElPTlNfQUxMT1dFRD09MTogSVAgb3B0aW9ucyBhcmUgYWxsb3dlZCAoYnV0IG5vdCBwYXJzZWQpLgorICovCisjZGVmaW5lIElQX09QVElPTlNfQUxMT1dFRCAgICAgICAgICAgICAgMQorCisvKioKKyAqIElQX1JFQVNTRU1CTFk9PTE6IFJlYXNzZW1ibGUgaW5jb21pbmcgZnJhZ21lbnRlZCBJUCBwYWNrZXRzLiBOb3RlIHRoYXQKKyAqIHRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCBvdXRnb2luZyBwYWNrZXQgc2l6ZXMsIHdoaWNoIGNhbiBiZSBjb250cm9sbGVkCisgKiB2aWEgSVBfRlJBRy4KKyAqLworI2RlZmluZSBJUF9SRUFTU0VNQkxZICAgICAgICAgICAgICAgICAgIDEKKworLyoqCisgKiBJUF9GUkFHPT0xOiBGcmFnbWVudCBvdXRnb2luZyBJUCBwYWNrZXRzIGlmIHRoZWlyIHNpemUgZXhjZWVkcyBNVFUuIE5vdGUKKyAqIHRoYXQgdGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0IGluY29taW5nIHBhY2tldCBzaXplcywgd2hpY2ggY2FuIGJlCisgKiBjb250cm9sbGVkIHZpYSBJUF9SRUFTU0VNQkxZLgorICovCisjZGVmaW5lIElQX0ZSQUcgICAgICAgICAgICAgICAgICAgICAgICAgMQorCisvKioKKyAqIElQX1JFQVNTX01BWEFHRTogTWF4aW11bSB0aW1lIChpbiBtdWx0aXBsZXMgb2YgSVBfVE1SX0lOVEVSVkFMIC0gc28gc2Vjb25kcywgbm9ybWFsbHkpCisgKiBhIGZyYWdtZW50ZWQgSVAgcGFja2V0IHdhaXRzIGZvciBhbGwgZnJhZ21lbnRzIHRvIGFycml2ZS4gSWYgbm90IGFsbCBmcmFnbWVudHMgYXJyaXZlZAorICogaW4gdGhpcyB0aW1lLCB0aGUgd2hvbGUgcGFja2V0IGlzIGRpc2NhcmRlZC4KKyAqLworI2RlZmluZSBJUF9SRUFTU19NQVhBR0UgICAgICAgICAgICAgICAgIDMKKworLyoqCisgKiBJUF9SRUFTU19NQVhfUEJVRlM6IFRvdGFsIG1heGltdW0gYW1vdW50IG9mIHBidWZzIHdhaXRpbmcgdG8gYmUgcmVhc3NlbWJsZWQuCisgKiBTaW5jZSB0aGUgcmVjZWl2ZWQgcGJ1ZnMgYXJlIGVucXVldWVkLCBiZSBzdXJlIHRvIGNvbmZpZ3VyZQorICogUEJVRl9QT09MX1NJWkUgPiBJUF9SRUFTU19NQVhfUEJVRlMgc28gdGhhdCB0aGUgc3RhY2sgaXMgc3RpbGwgYWJsZSB0byByZWNlaXZlCisgKiBwYWNrZXRzIGV2ZW4gaWYgdGhlIG1heGltdW0gYW1vdW50IG9mIGZyYWdtZW50cyBpcyBlbnF1ZXVlZCBmb3IgcmVhc3NlbWJseSEKKyAqLworI2RlZmluZSBJUF9SRUFTU19NQVhfUEJVRlMgICAgICAgICAgICAgIDQKKworLyoqCisgKiBJUF9GUkFHX1VTRVNfU1RBVElDX0JVRj09MTogVXNlIGEgc3RhdGljIE1UVS1zaXplZCBidWZmZXIgZm9yIElQCisgKiBmcmFnbWVudGF0aW9uLiBPdGhlcndpc2UgcGJ1ZnMgYXJlIGFsbG9jYXRlZCBhbmQgcmVmZXJlbmNlIHRoZSBvcmlnaW5hbAorICAgICogcGFja2V0IGRhdGEgdG8gYmUgZnJhZ21lbnRlZC4KKyovCisjZGVmaW5lIElQX0ZSQUdfVVNFU19TVEFUSUNfQlVGICAgICAgICAgMAorCisvKioKKyAqIElQX0RFRkFVTFRfVFRMOiBEZWZhdWx0IHZhbHVlIGZvciBUaW1lLVRvLUxpdmUgdXNlZCBieSB0cmFuc3BvcnQgbGF5ZXJzLgorICovCisjZGVmaW5lIElQX0RFRkFVTFRfVFRMICAgICAgICAgICAgICAgICAgMjU1CisKKy8qCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tIElDTVAgb3B0aW9ucyAtLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqLworLyoqCisgKiBMV0lQX0lDTVA9PTE6IEVuYWJsZSBJQ01QIG1vZHVsZSBpbnNpZGUgdGhlIElQIHN0YWNrLgorICogQmUgY2FyZWZ1bCwgZGlzYWJsZSB0aGF0IG1ha2UgeW91ciBwcm9kdWN0IG5vbi1jb21wbGlhbnQgdG8gUkZDMTEyMgorICovCisjZGVmaW5lIExXSVBfSUNNUCAgICAgICAgICAgICAgICAgICAgICAgMQorCisvKgorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tIFJBVyBvcHRpb25zIC0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKy8qKgorICogTFdJUF9SQVc9PTE6IEVuYWJsZSBhcHBsaWNhdGlvbiBsYXllciB0byBob29rIGludG8gdGhlIElQIGxheWVyIGl0c2VsZi4KKyAqLworI2RlZmluZSBMV0lQX1JBVyAgICAgICAgICAgICAgICAgICAgICAgIDEKKworLyoKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0gREhDUCBvcHRpb25zIC0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyovCisvKioKKyAqIExXSVBfREhDUD09MTogRW5hYmxlIERIQ1AgbW9kdWxlLgorICovCisjZGVmaW5lIExXSVBfREhDUCAgICAgICAgICAgICAgICAgICAgICAgMAorCisKKy8qCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0gQVVUT0lQIG9wdGlvbnMgLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqLworLyoqCisgKiBMV0lQX0FVVE9JUD09MTogRW5hYmxlIEFVVE9JUCBtb2R1bGUuCisgKi8KKyNkZWZpbmUgTFdJUF9BVVRPSVAgICAgICAgICAgICAgICAgICAgICAwCisKKy8qCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tIFNOTVAgb3B0aW9ucyAtLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqLworLyoqCisgKiBMV0lQX1NOTVA9PTE6IFR1cm4gb24gU05NUCBtb2R1bGUuIFVEUCBtdXN0IGJlIGF2YWlsYWJsZSBmb3IgU05NUAorICogdHJhbnNwb3J0LgorICovCisjZGVmaW5lIExXSVBfU05NUCAgICAgICAgICAgICAgICAgICAgICAgMAorCisvKgorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLSBJR01QIG9wdGlvbnMgLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKy8qKgorICogTFdJUF9JR01QPT0xOiBUdXJuIG9uIElHTVAgbW9kdWxlLgorICovCisjZGVmaW5lIExXSVBfSUdNUCAgICAgICAgICAgICAgICAgICAgICAgMAorCisvKgorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLSBETlMgb3B0aW9ucyAtLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKy8qKgorICogTFdJUF9ETlM9PTE6IFR1cm4gb24gRE5TIG1vZHVsZS4gVURQIG11c3QgYmUgYXZhaWxhYmxlIGZvciBETlMKKyAqIHRyYW5zcG9ydC4KKyAqLworI2RlZmluZSBMV0lQX0ROUyAgICAgICAgICAgICAgICAgICAgICAgIDAKKworLyoKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLSBVRFAgb3B0aW9ucyAtLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyovCisvKioKKyAqIExXSVBfVURQPT0xOiBUdXJuIG9uIFVEUC4KKyAqLworI2RlZmluZSBMV0lQX1VEUCAgICAgICAgICAgICAgICAgICAgICAgIDEKKworLyoKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLSBUQ1Agb3B0aW9ucyAtLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyovCisvKioKKyAqIExXSVBfVENQPT0xOiBUdXJuIG9uIFRDUC4KKyAqLworI2RlZmluZSBMV0lQX1RDUCAgICAgICAgICAgICAgICAgICAgICAgIDEKKworI2RlZmluZSBMV0lQX0xJU1RFTl9CQUNLTE9HICAgICAgICAgICAgIDAKKworLyoKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0gUGJ1ZiBvcHRpb25zIC0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyovCisvKioKKyAqIFBCVUZfTElOS19ITEVOOiB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgc2hvdWxkIGJlIGFsbG9jYXRlZCBmb3IgYQorICogbGluayBsZXZlbCBoZWFkZXIuIFRoZSBkZWZhdWx0IGlzIDE0LCB0aGUgc3RhbmRhcmQgdmFsdWUgZm9yCisgKiBFdGhlcm5ldC4KKyAqLworI2RlZmluZSBQQlVGX0xJTktfSExFTiAgICAgICAgICAgICAgICAgIDE2CisKKy8qKgorICogUEJVRl9QT09MX0JVRlNJWkU6IHRoZSBzaXplIG9mIGVhY2ggcGJ1ZiBpbiB0aGUgcGJ1ZiBwb29sLiBUaGUgZGVmYXVsdCBpcworICogZGVzaWduZWQgdG8gYWNjb21tb2RhdGUgc2luZ2xlIGZ1bGwgc2l6ZSBUQ1AgZnJhbWUgaW4gb25lIHBidWYsIGluY2x1ZGluZworICogVENQX01TUywgSVAgaGVhZGVyLCBhbmQgbGluayBoZWFkZXIuCisqCisgKi8KKyNkZWZpbmUgUEJVRl9QT09MX0JVRlNJWkUgICAgICAgICAgICAgICBMV0lQX01FTV9BTElHTl9TSVpFKFRDUF9NU1MrNDArUEJVRl9MSU5LX0hMRU4pCisKKy8qCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0gTE9PUElGIG9wdGlvbnMgLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqLworLyoqCisgKiBMV0lQX0hBVkVfTE9PUElGPT0xOiBTdXBwb3J0IGxvb3AgaW50ZXJmYWNlICgxMjcuMC4wLjEpIGFuZCBsb29waWYuYworICovCisjZGVmaW5lIExXSVBfSEFWRV9MT09QSUYgICAgICAgICAgICAgICAgMAorCisvKgorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLSBTZXF1ZW50aWFsIGxheWVyIG9wdGlvbnMgLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKworLyoqCisgKiBMV0lQX05FVENPTk49PTE6IEVuYWJsZSBOZXRjb25uIEFQSSAocmVxdWlyZSB0byB1c2UgYXBpX2xpYi5jKQorICovCisjZGVmaW5lIExXSVBfTkVUQ09OTiAgICAgICAgICAgICAgICAgICAgMQorCisvKgorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tIFNvY2tldCBvcHRpb25zIC0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKy8qKgorICogTFdJUF9TT0NLRVQ9PTE6IEVuYWJsZSBTb2NrZXQgQVBJIChyZXF1aXJlIHRvIHVzZSBzb2NrZXRzLmMpCisgKi8KKyNkZWZpbmUgTFdJUF9TT0NLRVQgICAgICAgICAgICAgICAgICAgICAxCisKKy8qKgorICogU09fUkVVU0U9PTE6IEVuYWJsZSBTT19SRVVTRUFERFIKKyAqLworI2RlZmluZSBTT19SRVVTRSAgICAgICAgICAgICAgICAgICAgICAgIDEKKworLyoKKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0gU3RhdGlzdGljcyBvcHRpb25zIC0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyovCisvKioKKyAqIExXSVBfU1RBVFM9PTE6IEVuYWJsZSBzdGF0aXN0aWNzIGNvbGxlY3Rpb24gaW4gbHdpcF9zdGF0cy4KKyAqLworI2RlZmluZSBMV0lQX1NUQVRTICAgICAgICAgICAgICAgICAgICAgIDAKKy8qCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0gUFBQIG9wdGlvbnMgLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqLworLyoqCisgKiBQUFBfU1VQUE9SVD09MTogRW5hYmxlIFBQUC4KKyAqLworI2RlZmluZSBQUFBfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgIDAKKworCisKKy8qCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0gVGhyZWFkaW5nIG9wdGlvbnMgLS0tLS0tLS0tLQorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqLworCisjZGVmaW5lIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HICAgIDEKKworI2lmICFOT19TWVMKK3ZvaWQgc3lzX2NoZWNrX2NvcmVfbG9ja2luZyh2b2lkKTsKKyNkZWZpbmUgTFdJUF9BU1NFUlRfQ09SRV9MT0NLRUQoKSAgc3lzX2NoZWNrX2NvcmVfbG9ja2luZygpCisjZW5kaWYKKworI2VuZGlmIC8qIExXSVBfTFdJUE9QVFNfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9hcmNoL2NjLmggYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL2FyY2gvY2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmU5MDBiCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9hcmNoL2NjLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDAzIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogQWRhbSBEdW5rZWxzIDxhZGFtQHNpY3Muc2U+CisgKgorICovCisjaWZuZGVmIExXSVBfQVJDSF9DQ19ICisjZGVmaW5lIExXSVBfQVJDSF9DQ19ICisKKy8qIHNlZSBodHRwczovL3NvdXJjZWZvcmdlLm5ldC9wL3ByZWRlZi93aWtpL09wZXJhdGluZ1N5c3RlbXMvICovCisjaWYgZGVmaW5lZCBfX0FORFJPSURfXworI2RlZmluZSBMV0lQX1VOSVhfQU5EUk9JRAorI2VsaWYgZGVmaW5lZCBfX2xpbnV4X18KKyNkZWZpbmUgTFdJUF9VTklYX0xJTlVYCisjZWxpZiBkZWZpbmVkIF9fQVBQTEVfXworI2RlZmluZSBMV0lQX1VOSVhfTUFDSAorI2VsaWYgZGVmaW5lZCBfX09wZW5CU0RfXworI2RlZmluZSBMV0lQX1VOSVhfT1BFTkJTRAorI2VsaWYgZGVmaW5lZCBfX0ZyZWVCU0Rfa2VybmVsX18gJiYgX19HTElCQ19fCisjZGVmaW5lIExXSVBfVU5JWF9LRlJFRUJTRAorI2VsaWYgZGVmaW5lZCBfX0NZR1dJTl9fCisjZGVmaW5lIExXSVBfVU5JWF9DWUdXSU4KKyNlbGlmIGRlZmluZWQgX19HTlVfXworI2RlZmluZSBMV0lQX1VOSVhfSFVSRAorI2VuZGlmCisKKyNkZWZpbmUgTFdJUF9USU1FVkFMX1BSSVZBVEUgMAorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisKKyNkZWZpbmUgTFdJUF9FUlJOT19JTkNMVURFIDxlcnJuby5oPgorCisjaWYgZGVmaW5lZChMV0lQX1VOSVhfTElOVVgpIHx8IGRlZmluZWQoTFdJUF9VTklYX0hVUkQpIHx8IGRlZmluZWQoTFdJUF9VTklYX0tGUkVFQlNEKQorI2RlZmluZSBMV0lQX0VSUk5PX1NURElOQ0xVREUJMQorI2VuZGlmCisKK2V4dGVybiB1bnNpZ25lZCBpbnQgbHdpcF9wb3J0X3JhbmQodm9pZCk7CisjZGVmaW5lIExXSVBfUkFORCgpIChsd2lwX3BvcnRfcmFuZCgpKQorCisvKiBkaWZmZXJlbnQgaGFuZGxpbmcgZm9yIHVuaXQgdGVzdCwgbm9ybWFsbHkgbm90IG5lZWRlZCAqLworI2lmZGVmIExXSVBfTk9BU1NFUlRfT05fRVJST1IKKyNkZWZpbmUgTFdJUF9FUlJPUihtZXNzYWdlLCBleHByZXNzaW9uLCBoYW5kbGVyKSBkbyB7IGlmICghKGV4cHJlc3Npb24pKSB7IFwKKyAgaGFuZGxlcjt9fSB3aGlsZSgwKQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKExXSVBfVU5JWF9BTkRST0lEKSAmJiBkZWZpbmVkKEZEX1NFVCkKK3R5cGVkZWYgX19rZXJuZWxfZmRfc2V0IGZkX3NldDsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChMV0lQX1VOSVhfTUFDSCkKKy8qIHN5cy90eXBlcy5oIGFuZCBzaWduYWwuaCBicmluZyBpbiBEYXJ3aW4gYnl0ZSBvcmRlciBtYWNyb3MuIHB1bGwgdGhlCisgICBoZWFkZXIgaGVyZSBhbmQgZGlzYWJsZSBMd0lQJ3MgdmVyc2lvbiBzbyB0aGF0IGFwcHMgc3RpbGwgY2FuIGdldAorICAgdGhlIG1hY3JvcyB2aWEgTHdJUCBoZWFkZXJzIGFuZCB1c2Ugc3lzdGVtIGhlYWRlcnMgKi8KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNkZWZpbmUgTFdJUF9ET05UX1BST1ZJREVfQllURU9SREVSX0ZVTkNUSU9OUworI2VuZGlmCisKK3N0cnVjdCBzaW9fc3RhdHVzX3M7Cit0eXBlZGVmIHN0cnVjdCBzaW9fc3RhdHVzX3Mgc2lvX3N0YXR1c190OworI2RlZmluZSBzaW9fZmRfdCBzaW9fc3RhdHVzX3QqCisjZGVmaW5lIF9fc2lvX2ZkX3RfZGVmaW5lZAorCit0eXBlZGVmIHVuc2lnbmVkIGludCBzeXNfcHJvdF90OworCisjZW5kaWYgLyogTFdJUF9BUkNIX0NDX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L2luY2x1ZGUvYXJjaC9wZXJmLmggYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL2FyY2gvcGVyZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2NGYzMTYKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL2FyY2gvcGVyZi5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworI2lmbmRlZiBMV0lQX0FSQ0hfUEVSRl9ICisjZGVmaW5lIExXSVBfQVJDSF9QRVJGX0gKKworI2luY2x1ZGUgPHN5cy90aW1lcy5oPgorCisjaWZkZWYgUEVSRgorI2RlZmluZSBQRVJGX1NUQVJUICB7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIF9fYzFsLCBfX2MxaCwgX19jMmwsIF9fYzJoOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgX19hc21fXygiLmJ5dGUgMHgwZiwgMHgzMSIgOiAiPWEiIChfX2MxbCksICI9ZCIgKF9fYzFoKSkKKyNkZWZpbmUgUEVSRl9TVE9QKHgpICAgX19hc21fXygiLmJ5dGUgMHgwZiwgMHgzMSIgOiAiPWEiIChfX2MybCksICI9ZCIgKF9fYzJoKSk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgcGVyZl9wcmludChfX2MxbCwgX19jMWgsIF9fYzJsLCBfX2MyaCwgeCk7fQorCisvKiNkZWZpbmUgUEVSRl9TVEFSVCBkbyB7IFwKKyAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0bXMgX19wZXJmX3N0YXJ0LCBfX3BlcmZfZW5kOyBcCisgICAgICAgICAgICAgICAgICAgICB0aW1lcygmX19wZXJmX3N0YXJ0KQorI2RlZmluZSBQRVJGX1NUT1AoeCkgdGltZXMoJl9fcGVyZl9lbmQpOyBcCisgICAgICAgICAgICAgICAgICAgICBwZXJmX3ByaW50X3RpbWVzKCZfX3BlcmZfc3RhcnQsICZfX3BlcmZfZW5kLCB4KTtcCisgICAgICAgICAgICAgICAgICAgICB9IHdoaWxlKDApKi8KKyNlbHNlIC8qIFBFUkYgKi8KKyNkZWZpbmUgUEVSRl9TVEFSVCAgICAvKiBudWxsIGRlZmluaXRpb24gKi8KKyNkZWZpbmUgUEVSRl9TVE9QKHgpICAvKiBudWxsIGRlZmluaXRpb24gKi8KKyNlbmRpZiAvKiBQRVJGICovCisKK3ZvaWQgcGVyZl9wcmludCh1bnNpZ25lZCBsb25nIGMxbCwgdW5zaWduZWQgbG9uZyBjMWgsCisJCXVuc2lnbmVkIGxvbmcgYzJsLCB1bnNpZ25lZCBsb25nIGMyaCwKKwkJY2hhciAqa2V5KTsKKwordm9pZCBwZXJmX3ByaW50X3RpbWVzKHN0cnVjdCB0bXMgKnN0YXJ0LCBzdHJ1Y3QgdG1zICplbmQsIGNoYXIgKmtleSk7CisKK3ZvaWQgcGVyZl9pbml0KGNoYXIgKmZuYW1lKTsKKworI2VuZGlmIC8qIExXSVBfQVJDSF9QRVJGX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L2luY2x1ZGUvYXJjaC9zeXNfYXJjaC5oIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9hcmNoL3N5c19hcmNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTY3ZTEyNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L2luY2x1ZGUvYXJjaC9zeXNfYXJjaC5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworI2lmbmRlZiBMV0lQX0FSQ0hfU1lTX0FSQ0hfSAorI2RlZmluZSBMV0lQX0FSQ0hfU1lTX0FSQ0hfSAorCisjZGVmaW5lIFNZU19NQk9YX05VTEwgTlVMTAorI2RlZmluZSBTWVNfU0VNX05VTEwgIE5VTEwKKworLyp0eXBlZGVmIHUzMl90IHN5c19wcm90X3Q7Ki8KKworc3RydWN0IHN5c19zZW07Cit0eXBlZGVmIHN0cnVjdCBzeXNfc2VtICogc3lzX3NlbV90OworI2RlZmluZSBzeXNfc2VtX3ZhbGlkKHNlbSkgICAgICAgICAgICAgKCgoc2VtKSAhPSBOVUxMKSAmJiAoKihzZW0pICE9IE5VTEwpKQorI2RlZmluZSBzeXNfc2VtX3ZhbGlkX3ZhbChzZW0pICAgICAgICAgKChzZW0pICE9IE5VTEwpCisjZGVmaW5lIHN5c19zZW1fc2V0X2ludmFsaWQoc2VtKSAgICAgICBkbyB7IGlmKChzZW0pICE9IE5VTEwpIHsgKihzZW0pID0gTlVMTDsgfX13aGlsZSgwKQorI2RlZmluZSBzeXNfc2VtX3NldF9pbnZhbGlkX3ZhbChzZW0pICAgZG8geyAoc2VtKSA9IE5VTEw7IH13aGlsZSgwKQorCitzdHJ1Y3Qgc3lzX211dGV4OwordHlwZWRlZiBzdHJ1Y3Qgc3lzX211dGV4ICogc3lzX211dGV4X3Q7CisjZGVmaW5lIHN5c19tdXRleF92YWxpZChtdXRleCkgICAgICAgICBzeXNfc2VtX3ZhbGlkKG11dGV4KQorI2RlZmluZSBzeXNfbXV0ZXhfc2V0X2ludmFsaWQobXV0ZXgpICAgc3lzX3NlbV9zZXRfaW52YWxpZChtdXRleCkKKworc3RydWN0IHN5c19tYm94OwordHlwZWRlZiBzdHJ1Y3Qgc3lzX21ib3ggKiBzeXNfbWJveF90OworI2RlZmluZSBzeXNfbWJveF92YWxpZChtYm94KSAgICAgICAgICAgc3lzX3NlbV92YWxpZChtYm94KQorI2RlZmluZSBzeXNfbWJveF92YWxpZF92YWwobWJveCkgICAgICAgc3lzX3NlbV92YWxpZF92YWwobWJveCkKKyNkZWZpbmUgc3lzX21ib3hfc2V0X2ludmFsaWQobWJveCkgICAgIHN5c19zZW1fc2V0X2ludmFsaWQobWJveCkKKyNkZWZpbmUgc3lzX21ib3hfc2V0X2ludmFsaWRfdmFsKG1ib3gpIHN5c19zZW1fc2V0X2ludmFsaWRfdmFsKG1ib3gpCisKK3N0cnVjdCBzeXNfdGhyZWFkOwordHlwZWRlZiBzdHJ1Y3Qgc3lzX3RocmVhZCAqIHN5c190aHJlYWRfdDsKKworI2lmIExXSVBfTkVUQ09OTl9TRU1fUEVSX1RIUkVBRAorc3lzX3NlbV90KiBzeXNfYXJjaF9uZXRjb25uX3NlbV9nZXQodm9pZCk7Cit2b2lkIHN5c19hcmNoX25ldGNvbm5fc2VtX2FsbG9jKHZvaWQpOwordm9pZCBzeXNfYXJjaF9uZXRjb25uX3NlbV9mcmVlKHZvaWQpOworI2RlZmluZSBMV0lQX05FVENPTk5fVEhSRUFEX1NFTV9HRVQoKSAgIHN5c19hcmNoX25ldGNvbm5fc2VtX2dldCgpCisjZGVmaW5lIExXSVBfTkVUQ09OTl9USFJFQURfU0VNX0FMTE9DKCkgc3lzX2FyY2hfbmV0Y29ubl9zZW1fYWxsb2MoKQorI2RlZmluZSBMV0lQX05FVENPTk5fVEhSRUFEX1NFTV9GUkVFKCkgIHN5c19hcmNoX25ldGNvbm5fc2VtX2ZyZWUoKQorI2VuZGlmIC8qICNpZiBMV0lQX05FVENPTk5fU0VNX1BFUl9USFJFQUQgKi8KKworI2RlZmluZSBMV0lQX0VYQU1QTEVfQVBQX0FCT1JUKCkgbHdpcF91bml4X2tleXByZXNzZWQoKQoraW50IGx3aXBfdW5peF9rZXlwcmVzc2VkKHZvaWQpOworCisvKgorICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAtLS0tLS0tLS0tIFRocmVhZGluZyBvcHRpb25zIC0tLS0tLS0tLS0KKyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKwordm9pZCBzeXNfbWFya190Y3BpcF90aHJlYWQodm9pZCk7CisjZGVmaW5lIExXSVBfTUFSS19UQ1BJUF9USFJFQUQoKSAgIHN5c19tYXJrX3RjcGlwX3RocmVhZCgpCisKKyNpZiBMV0lQX1RDUElQX0NPUkVfTE9DS0lORwordm9pZCBzeXNfbG9ja190Y3BpcF9jb3JlKHZvaWQpOworI2RlZmluZSBMT0NLX1RDUElQX0NPUkUoKSAgICAgICAgICBzeXNfbG9ja190Y3BpcF9jb3JlKCkKK3ZvaWQgc3lzX3VubG9ja190Y3BpcF9jb3JlKHZvaWQpOworI2RlZmluZSBVTkxPQ0tfVENQSVBfQ09SRSgpICAgICAgICBzeXNfdW5sb2NrX3RjcGlwX2NvcmUoKQorI2VuZGlmCisKKyNlbmRpZiAvKiBMV0lQX0FSQ0hfU1lTX0FSQ0hfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9uZXRpZi9maWZvLmggYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL25ldGlmL2ZpZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGEzNTJhCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9uZXRpZi9maWZvLmgKQEAgLTAsMCArMSw1NCBAQAorI2lmbmRlZiBGSUZPX0gKKyNkZWZpbmUgRklGT19ICisKKyNpbmNsdWRlICJsd2lwL3N5cy5oIgorCisvKiogSG93IG1hbnkgYnl0ZXMgaW4gZmlmbyAqLworI2RlZmluZSBGSUZPU0laRSAyMDQ4CisKKy8qKiBmaWZvIGRhdGEgc3RydWN0dXJlLCB0aGlzIG9uZSBpcyBwYXNzZWQgdG8gYWxsIGZpZm8gZnVuY3Rpb25zICovCit0eXBlZGVmIHN0cnVjdCBmaWZvX3QgeworICB1OF90IGRhdGFbRklGT1NJWkUrMTBdOyAvKiBkYXRhIHNlZ21lbnQsICsxMCBpcyBhIGhhY2sgcHJvYmFibHkgbm90IG5lZWRlZC4uIEZJWE1FISAqLworICBpbnQgZGF0YXNsb3Q7CQkJICAvKiBpbmRleCB0byBuZXh0IGNoYXIgdG8gYmUgcmVhZCAqLworICBpbnQgZW1wdHlzbG90OwkJICAvKiBpbmRleCB0byBuZXh0IGVtcHR5IHNsb3QgKi8KKyAgaW50IGxlbjsJCQkJICAvKiBsZW4gcHJvYmFibHkgbm90IG5lZWRlZCwgbWF5IGJlIGNhbGN1bGF0ZWQgZnJvbSBkYXRhc2xvdCBhbmQgZW1wdHlzbG90IGluIGNvbmp1bmN0aW9uIHdpdGggRklGT1NJWkUgKi8KKworICBzeXNfc2VtX3Qgc2VtOwkJLyogc2VtYXBob3JlIHByb3RlY3Rpbmcgc2ltdWx0YW5lb3VzIGRhdGEgbWFuaXB1bGF0aW9uICovCisgIHN5c19zZW1fdCBnZXRTZW07CQkvKiBzZXBhcGhvcmUgdXNlZCB0byBzaWduYWwgbmV3IGRhdGEgaWYgZ2V0V2FpdGluZyBpcyBzZXQgKi8KKyAgdThfdCBnZXRXYWl0aW5nOwkJLyogZmxhZyB1c2VkIHRvIGluZGljYXRlIHRoYXQgZmlmb2dldCBpcyB3YWl0aW5nIGZvciBkYXRhLiBmaWZvcHV0IGlzIHN1cHBvc2VkIHRvIGNsZWFyICovCisgIAkJCQkJCS8qIHRoaXMgZmxhZyBwcmlvciB0byBzaWduYWxpbmcgdGhlIGdldFNlbSBzZW1hcGhvcmUgKi8KK30gZmlmb190OworCisKKy8qKgorKiAgIEdldCBhIGNoYXJhY3RlciBmcm9tIGZpZm8KKyogICBCbG9ja2luZyBjYWxsLgorKglAcGFyYW0gCWZpZm8gcG9pbnRlciB0byBmaWZvIGRhdGEgc3RydWN0dXJlCisqCUByZXR1cm4JY2hhcmFjdGVyIHJlYWQgZnJvbSBmaWZvCisqLwordThfdCBmaWZvR2V0KGZpZm9fdCAqIGZpZm8pOworCisvKioKKyogICBHZXQgYSBjaGFyYWN0ZXIgZnJvbSBmaWZvCisqICAgTm9uIGJsb2NraW5nIGNhbGwuCisqCUBwYXJhbSAJZmlmbyBwb2ludGVyIHRvIGZpZm8gZGF0YSBzdHJ1Y3R1cmUKKyoJQHJldHVybgljaGFyYWN0ZXIgcmVhZCBmcm9tIGZpZm8sIG9yIDwgemVybyBpZiBub24gd2FzIGF2YWlsYWJsZQorKi8KK3MxNl90IGZpZm9HZXROb25CbG9jayhmaWZvX3QgKiBmaWZvKTsKKworLyoqCisqCWZpZm9wdXQgaXMgY2FsbGVkIGJ5IHRoZSBzaWduYWxoYW5kbGVyIHdoZW4gbmV3IGRhdGEgaGFzIGFycml2ZWQgKG9yIHNvbWUgb3RoZXIgZXZlbnQgaXMgaW5kaWNhdGVkKQorKiAgIGZpZm9wdXQgcmVhZHMgZGlyZWN0bHkgZnJvbSB0aGUgc2VyaWFscG9ydCBhbmQgaXMgdGh1cyBoaWdobHkgZGVwZW5kZW50IG9uIHVuaXggYXJjaCBhdCB0aGlzIG1vbWVudAorKglAcGFyYW0gCWZpZm8gcG9pbnRlciB0byBmaWZvIGRhdGEgc3RydWN0dXJlCisqCUBwYXJhbQlmZAl1bml4IGZpbGUgZGVzY3JpcHRvcgorKi8KK3ZvaWQgZmlmb1B1dChmaWZvX3QgKiBmaWZvLCBpbnQgZmQpOworCisvKioKKyogICBmaWZvaW5pdCBpbml0aWF0ZSBmaWZvCisqCUBwYXJhbSAJZmlmbwlwb2ludGVyIHRvIGZpZm8gZGF0YSBzdHJ1Y3R1cmUsIGFsbG9jYXRlZCBieSB0aGUgdXNlcgorKi8KK3ZvaWQgZmlmb0luaXQoZmlmb190ICogZmlmbyk7CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL25ldGlmL2xpc3QuaCBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L2luY2x1ZGUvbmV0aWYvbGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjNGQxNDIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL25ldGlmL2xpc3QuaApAQCAtMCwwICsxLDI2IEBACisKKyNpZm5kZWYgTFdJUF9MSVNUX0gKKyNkZWZpbmUgTFdJUF9MSVNUX0gKKworc3RydWN0IGVsZW07CisKK3N0cnVjdCBsaXN0IHsKKyAgc3RydWN0IGVsZW0gKmZpcnN0LCAqbGFzdDsKKyAgaW50IHNpemUsIGVsZW1zOworfTsKKworc3RydWN0IGVsZW0geworICBzdHJ1Y3QgZWxlbSAqbmV4dDsKKyAgdm9pZCAqZGF0YTsKK307CisKK3N0cnVjdCBsaXN0ICpsaXN0X25ldyhpbnQgc2l6ZSk7CitpbnQgbGlzdF9wdXNoKHN0cnVjdCBsaXN0ICpsaXN0LCB2b2lkICpkYXRhKTsKK3ZvaWQgKmxpc3RfcG9wKHN0cnVjdCBsaXN0ICpsaXN0KTsKK3ZvaWQgKmxpc3RfZmlyc3Qoc3RydWN0IGxpc3QgKmxpc3QpOworaW50IGxpc3RfZWxlbXMoc3RydWN0IGxpc3QgKmxpc3QpOwordm9pZCBsaXN0X2RlbGV0ZShzdHJ1Y3QgbGlzdCAqbGlzdCk7CitpbnQgbGlzdF9yZW1vdmUoc3RydWN0IGxpc3QgKmxpc3QsIHZvaWQgKmVsZW0pOwordm9pZCBsaXN0X21hcChzdHJ1Y3QgbGlzdCAqbGlzdCwgdm9pZCAoKiBmdW5jKSh2b2lkICphcmcpKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL25ldGlmL3BjYXBpZi5oIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9uZXRpZi9wY2FwaWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjdhYmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9uZXRpZi9wY2FwaWYuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIAorICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICogCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworI2lmbmRlZiBMV0lQX1BDQVBJRl9ICisjZGVmaW5lIExXSVBfUENBUElGX0gKKworI2luY2x1ZGUgImx3aXAvbmV0aWYuaCIKKworZXJyX3QgcGNhcGlmX2luaXQoc3RydWN0IG5ldGlmICpuZXRpZik7CisKKyNlbmRpZiAvKiBMV0lQX1BDQVBJRl9IICovCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL25ldGlmL3Npby5oIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9uZXRpZi9zaW8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWZmMTMxCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9uZXRpZi9zaW8uaApAQCAtMCwwICsxLDYwIEBACisjaWZuZGVmIFNJT19VTklYX0gKKyNkZWZpbmUgU0lPX1VOSVhfSAorCisjaW5jbHVkZSAibHdpcC9zeXMuaCIKKyNpbmNsdWRlICJsd2lwL25ldGlmLmgiCisjaW5jbHVkZSAibmV0aWYvZmlmby5oIgorLyojaW5jbHVkZSAibmV0aWYvcHBwaWYuaCIqLworCitzdHJ1Y3Qgc2lvX3N0YXR1c19zIHsKKwlpbnQgZmQ7CisJZmlmb190IG15ZmlmbzsKK307CisKKy8qIEJBVURSQVRFIGlzIGRlZmluZWQgaW4gc2lvLmMgYXMgaXQgaXMgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgKi8KKy8qKiBCYXVkcmF0ZXMgKi8KK3R5cGVkZWYgZW51bSBzaW9CYXVkcmF0ZXMgeworCVNJT19CQVVEXzk2MDAsCisJU0lPX0JBVURfMTkyMDAsCisJU0lPX0JBVURfMzg0MDAsCisJU0lPX0JBVURfNTc2MDAsCQorCVNJT19CQVVEXzExNTIwMAkKK30gc2lvQmF1ZHJhdGVzOworCisvKioKKyogUG9sbCBmb3IgYSBuZXcgY2hhcmFjdGVyIGZyb20gaW5jb21pbmcgZGF0YSBzdHJlYW0KKyogQHBhcmFtIAlzaW9zdGF0IHNpb3N0YXR1cyBzdHJ1Y3QsIGNvbnRhaW5zIHNpbyBpbnN0YW5jZSBkYXRhLCBnaXZlbiBieSBzaW9fb3BlbgorKiBAcmV0dXJuIAljaGFyIHJlYWQgZnJvbSBpbnB1dCBzdHJlYW0sIG9yIDwgMCBpZiBubyBjaGFyIHdhcyBhdmFpbGFibGUKKyovCitzMTZfdCBzaW9fcG9sbChzaW9fc3RhdHVzX3QgKiBzaW9zdGF0KTsKKworLyoqCisqCVBhcnNlIGluY29taW5nIGNoYXJhY3RlcnMgdW50aWwgYSBzdHJpbmcgc3RyIGlzIHJlY2VpdmVkLCBibG9ja2luZyBjYWxsCisqIEBwYXJhbQlzdHIJCXplcm8gdGVybWluYXRlZCBzdHJpbmcgdG8gZXhwZWN0CisqIEBwYXJhbSAJc2lvc3RhdCBzaW9zdGF0dXMgc3RydWN0LCBjb250YWlucyBzaW8gaW5zdGFuY2UgZGF0YSwgZ2l2ZW4gYnkgc2lvX29wZW4KKyovCit2b2lkIHNpb19leHBlY3Rfc3RyaW5nKHU4X3QgKnN0ciwgc2lvX3N0YXR1c190ICogc2lvc3RhdCk7CisKKy8qKgorKiBXcml0ZSBhIGNoYXIgdG8gb3V0cHV0IGRhdGEgc3RyZWFtCisqIEBwYXJhbSAJc3RyCQlwb2ludGVyIHRvIGEgemVybyB0ZXJtaW5hdGVkIHN0cmluZworKiBAcGFyYW0Jc2lvc3RhdCBzaW9zdGF0dXMgc3RydWN0LCBjb250YWlucyBzaW8gaW5zdGFuY2UgZGF0YSwgZ2l2ZW4gYnkgc2lvX29wZW4KKyovCit2b2lkIHNpb19zZW5kX3N0cmluZyh1OF90ICpzdHIsIHNpb19zdGF0dXNfdCAqIHNpb3N0YXQpOworCisvKioKKyoJRmx1c2ggb3V0YnVmZmVyIChzZW5kIGV2ZXJ5dGhpbmcgaW4gYnVmZmVyIG5vdyksIHVzZWZ1bCBpZiBzb21lIGxheWVyIGJlbG93IGlzIAorKglob2xkaW5nIG9uIHRvIGRhdGEsIHdhaXRuZyB0byBmaWxsIGEgYnVmZmVyCisqIEBwYXJhbSAJc2lvc3RhdCBzaW9zdGF0dXMgc3RydWN0LCBjb250YWlucyBzaW8gaW5zdGFuY2UgZGF0YSwgZ2l2ZW4gYnkgc2lvX29wZW4KKyovCit2b2lkIHNpb19mbHVzaCggc2lvX3N0YXR1c190ICogc2lvc3RhdCApOworCisvKioKKyoJQ2hhbmdlIGJhdWRyYXRlIG9mIHBvcnQsIG1heSBjbG9zZSBhbmQgcmVvcGVuIHBvcnQKKyogQHBhcmFtIAliYXVkCW5ldyBiYXVkcmF0ZQorKiBAcGFyYW0gCXNpb3N0YXQgc2lvc3RhdHVzIHN0cnVjdCwgY29udGFpbnMgc2lvIGluc3RhbmNlIGRhdGEsIGdpdmVuIGJ5IHNpb19vcGVuCisqLwordm9pZCBzaW9fY2hhbmdlX2JhdWQoIHNpb0JhdWRyYXRlcyBiYXVkLCBzaW9fc3RhdHVzX3QgKiBzaW9zdGF0ICk7CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL25ldGlmL3RhcGlmLmggYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL25ldGlmL3RhcGlmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMwZmE2YgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L2luY2x1ZGUvbmV0aWYvdGFwaWYuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyAqCisgKi8KKyNpZm5kZWYgTFdJUF9UQVBJRl9ICisjZGVmaW5lIExXSVBfVEFQSUZfSAorCisjaW5jbHVkZSAibHdpcC9uZXRpZi5oIgorCitlcnJfdCB0YXBpZl9pbml0KHN0cnVjdCBuZXRpZiAqbmV0aWYpOwordm9pZCB0YXBpZl9wb2xsKHN0cnVjdCBuZXRpZiAqbmV0aWYpOworI2lmIE5PX1NZUworaW50IHRhcGlmX3NlbGVjdChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTsKKyNlbmRpZiAvKiBOT19TWVMgKi8KKworI2VuZGlmIC8qIExXSVBfVEFQSUZfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9uZXRpZi92ZGVpZi5oIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9uZXRpZi92ZGVpZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxZGYyZDEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL25ldGlmL3ZkZWlmLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDAzIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogQWRhbSBEdW5rZWxzIDxhZGFtQHNpY3Muc2U+CisgKgorICovCisjaWZuZGVmIExXSVBfVkRFSUZfSAorI2RlZmluZSBMV0lQX1ZERUlGX0gKKworI2luY2x1ZGUgImx3aXAvbmV0aWYuaCIKKworZXJyX3QgdmRlaWZfaW5pdChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTsKK3ZvaWQgdmRlaWZfcG9sbChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTsKKyNpZiBOT19TWVMKK2ludCB2ZGVpZl9zZWxlY3Qoc3RydWN0IG5ldGlmICpuZXRpZik7CisjZW5kaWYgLyogTk9fU1lTICovCisKKyNlbmRpZiAvKiBMV0lQX1ZERUlGX0ggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL2ZpZm8uYyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL2ZpZm8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTBkM2VhCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvbmV0aWYvZmlmby5jCkBAIC0wLDAgKzEsMTM5IEBACisvKiBBdXRob3I6IE1hZ251cyBJdmFyc3NvbiA8bWFnbnVzLml2YXJzc29uQHZvbHZvLmNvbT4gKi8KKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogLS0tIGZpZm8gNCB1bml4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworI2luY2x1ZGUgImx3aXAvZXJyLmgiCisjaW5jbHVkZSAibmV0aWYvZmlmby5oIgorI2luY2x1ZGUgImx3aXAvZGVidWcuaCIKKyNpbmNsdWRlICJsd2lwL2RlZi5oIgorI2luY2x1ZGUgImx3aXAvc3lzLmgiCisjaW5jbHVkZSAibHdpcC9hcmNoLmgiCisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpZm5kZWYgVFJVRQorI2RlZmluZSBUUlVFICAxCisjZW5kaWYKKyNpZm5kZWYgRkFMU0UKKyNkZWZpbmUgRkFMU0UgMAorI2VuZGlmCisKKyNpZm5kZWYgU0lPX0ZJRk9fREVCVUcKKyNkZWZpbmUgU0lPX0ZJRk9fREVCVUcgTFdJUF9EQkdfT0ZGCisjZW5kaWYKKwordThfdCBmaWZvR2V0KGZpZm9fdCAqIGZpZm8pCit7CisJdThfdCBjOworCisJc3lzX3NlbV93YWl0KCZmaWZvLT5zZW0pOyAgICAgIC8qIGVudGVyIGNyaXRpY2FsIHNlY3Rpb24gKi8KKworCWlmIChmaWZvLT5kYXRhc2xvdCA9PSBmaWZvLT5lbXB0eXNsb3QpCisJeworICAgICAgICAgICAgZmlmby0+Z2V0V2FpdGluZyA9IFRSVUU7ICAgIC8qIHRlbGwgcHV0RmlmbyB0byBzaWduYWwgdXMgd2hlbiBkYXRhIGlzIGF2YWlsYWJsZSAqLworICAgICAgICAgICAgc3lzX3NlbV9zaWduYWwoJmZpZm8tPnNlbSk7ICAvKiBsZWF2ZSBjcml0aWNhbCBzZWN0aW9uIChhbGxvdyBpbnB1dCBmcm9tIHNlcmlhbCBwb3J0Li4pICovCisgICAgICAgICAgICBzeXNfc2VtX3dhaXQoJmZpZm8tPmdldFNlbSk7IC8qIHdhaXQgNCBkYXRhICovCisgICAgICAgICAgICBzeXNfc2VtX3dhaXQoJmZpZm8tPnNlbSk7ICAgIC8qIHJlZW50ZXIgY3JpdGljYWwgc2VjdGlvbiAqLworCX0KKworCWMgPSBmaWZvLT5kYXRhW2ZpZm8tPmRhdGFzbG90KytdOworCWZpZm8tPmxlbi0tOworCisJaWYgKGZpZm8tPmRhdGFzbG90ID09IEZJRk9TSVpFKQorCXsKKwkJZmlmby0+ZGF0YXNsb3QgPSAwOworCX0KKwlzeXNfc2VtX3NpZ25hbCgmZmlmby0+c2VtKTsgICAgLyogbGVhdmUgY3JpdGljYWwgc2VjdGlvbiAqLworCXJldHVybiBjOworfQorCisKK3MxNl90IGZpZm9HZXROb25CbG9jayhmaWZvX3QgKiBmaWZvKQoreworCXUxNl90IGM7CisKKwlzeXNfc2VtX3dhaXQoJmZpZm8tPnNlbSk7ICAgICAgLyogZW50ZXIgY3JpdGljYWwgc2VjdGlvbiAqLworCisJaWYgKGZpZm8tPmRhdGFzbG90ID09IGZpZm8tPmVtcHR5c2xvdCkKKwl7CisgICAgICAgICAgICAvKiBlbXB0eSBmaWZvICovCisJCWMgPSAtMTsKKwl9CisJZWxzZQorCXsKKwkJYyA9IGZpZm8tPmRhdGFbZmlmby0+ZGF0YXNsb3QrK107CisJCWZpZm8tPmxlbi0tOworCisJCWlmIChmaWZvLT5kYXRhc2xvdCA9PSBGSUZPU0laRSkKKwkJeworCQkJZmlmby0+ZGF0YXNsb3QgPSAwOworCQl9CisJfQorCXN5c19zZW1fc2lnbmFsKCZmaWZvLT5zZW0pOyAgICAvKiBsZWF2ZSBjcml0aWNhbCBzZWN0aW9uICovCisJcmV0dXJuIGM7Cit9CisKKwordm9pZCBmaWZvUHV0KGZpZm9fdCAqIGZpZm8sIGludCBmZCkKK3sKKwkvKiBGSVhNRTogbXV0ZXggYXJvdW5kIHN0cnVjdCBkYXRhLi4gKi8KKwlpbnQgY250PTA7CisKKwlzeXNfc2VtX3dhaXQoJmZpZm8tPnNlbSApOyAvKiBlbnRlciBjcml0aWNhbCAqLworCisJTFdJUF9ERUJVR0YoIFNJT19GSUZPX0RFQlVHLCgiZmlmb3B1dDogbGVuJWQgZGF0JWQgZW1wdCVkIC0tPiAiLCBmaWZvLT5sZW4sIGZpZm8tPmRhdGFzbG90LCBmaWZvLT5lbXB0eXNsb3QgKSApOworCisJaWYgKCBmaWZvLT5lbXB0eXNsb3QgPCBmaWZvLT5kYXRhc2xvdCApCisJeworCQljbnQgPSByZWFkKCBmZCwgJmZpZm8tPmRhdGFbZmlmby0+ZW1wdHlzbG90XSwgZmlmby0+ZGF0YXNsb3QgLSBmaWZvLT5lbXB0eXNsb3QgKTsKKwl9CisJZWxzZQorCXsKKwkJY250ID0gcmVhZCggZmQsICZmaWZvLT5kYXRhW2ZpZm8tPmVtcHR5c2xvdF0sIEZJRk9TSVpFLWZpZm8tPmVtcHR5c2xvdCApOworCX0KKwlmaWZvLT5lbXB0eXNsb3QgKz0gY250OworCWZpZm8tPmxlbiArPSBjbnQ7CisKKwlMV0lQX0RFQlVHRiggU0lPX0ZJRk9fREVCVUcsKCJsZW4lZCBkYXQlZCBlbXB0JWRcbiIsIGZpZm8tPmxlbiwgZmlmby0+ZGF0YXNsb3QsIGZpZm8tPmVtcHR5c2xvdCApICk7CisKKwlpZiAoIGZpZm8tPmxlbiA+IEZJRk9TSVpFICkKKwl7CisJCXByaW50ZiggIkVSUk9SOiBmaWZvIG92ZXJydW4gZGV0ZWN0ZWQgbGVuPSVkLCBmbHVzaGluZ1xuIiwgZmlmby0+bGVuICk7CisJCWZpZm8tPmRhdGFzbG90ICA9IDA7CisJCWZpZm8tPmVtcHR5c2xvdCA9IDA7CisJCWZpZm8tPmxlbiA9IDA7CisJfQorCisJaWYgKCBmaWZvLT5lbXB0eXNsb3QgPT0gRklGT1NJWkUgKQorCXsKKwkJZmlmby0+ZW1wdHlzbG90ID0gMDsKKwkJTFdJUF9ERUJVR0YoIFNJT19GSUZPX0RFQlVHLCAoIihXUkFQKSAiKSApOworCisJCXN5c19zZW1fc2lnbmFsKCZmaWZvLT5zZW0gKTsgLyogbGVhdmUgY3JpdGljYWwgKi8KKwkJZmlmb1B1dCggZmlmbywgZmQgKTsKKwkJcmV0dXJuOworCX0KKwlpZiAoIGZpZm8tPmdldFdhaXRpbmcgKQorCXsKKwkJZmlmby0+Z2V0V2FpdGluZyA9IEZBTFNFOworCQlzeXNfc2VtX3NpZ25hbCgmZmlmby0+Z2V0U2VtICk7CisJfQorCisJc3lzX3NlbV9zaWduYWwoJmZpZm8tPnNlbSApOyAvKiBsZWF2ZSBjcml0aWNhbCAqLworCXJldHVybjsKK30KKworCit2b2lkIGZpZm9Jbml0KGZpZm9fdCAqIGZpZm8pCit7CisgIGZpZm8tPmRhdGFzbG90ICA9IDA7CisgIGZpZm8tPmVtcHR5c2xvdCA9IDA7CisgIGZpZm8tPmxlbiAgICAgICA9IDA7CisgIGlmKHN5c19zZW1fbmV3KCZmaWZvLT5zZW0sIDEpICE9IEVSUl9PSykgeyAgLyogY3JpdGljYWwgc2VjdGlvbiAxPWZyZWUgdG8gZW50ZXIgKi8KKyAgICBMV0lQX0FTU0VSVCgiRmFpbGVkIHRvIGNyZWF0ZSBzZW1hcGhvcmUiLCAwKTsKKyAgfQorICBpZihzeXNfc2VtX25ldygmZmlmby0+Z2V0U2VtLCAwKSAhPSBFUlJfT0spIHsgIC8qIDAgPSBubyBvbmUgd2FpdGluZyAqLworICAgIExXSVBfQVNTRVJUKCJGYWlsZWQgdG8gY3JlYXRlIHNlbWFwaG9yZSIsIDApOworICB9CisgIGZpZm8tPmdldFdhaXRpbmcgPSBGQUxTRTsKK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL2xpc3QuYyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL2xpc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2ZhYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvbmV0aWYvbGlzdC5jCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyAqCisgKi8KKworCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxuZXRpZi9saXN0Lmg+CisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdHJ1Y3QgbGlzdCAqCitsaXN0X25ldyhpbnQgc2l6ZSkKK3sKKyAgc3RydWN0IGxpc3QgKmxpc3Q7CisgIGxpc3QgPSAoc3RydWN0IGxpc3QgKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBsaXN0KSk7CisgIGxpc3QtPmZpcnN0ID0gbGlzdC0+bGFzdCA9IE5VTEw7CisgIGxpc3QtPnNpemUgPSBzaXplOworICBsaXN0LT5lbGVtcyA9IDA7CisgIHJldHVybiBsaXN0OworfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitpbnQKK2xpc3RfcHVzaChzdHJ1Y3QgbGlzdCAqbGlzdCwgdm9pZCAqZGF0YSkKK3sKKyAgc3RydWN0IGVsZW0gKmVsZW07CisKKyAgaWYgKGxpc3QtPmVsZW1zIDwgbGlzdC0+c2l6ZSkgeworICAgIGVsZW0gPSAoc3RydWN0IGVsZW0gKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBlbGVtKSk7CisgICAgZWxlbS0+ZGF0YSA9IGRhdGE7CisgICAgZWxlbS0+bmV4dCA9IE5VTEw7CisgICAgaWYgKGxpc3QtPmxhc3QgIT0gTlVMTCkgeworICAgICAgbGlzdC0+bGFzdC0+bmV4dCA9IGVsZW07CisgICAgfQorICAgIGxpc3QtPmxhc3QgPSBlbGVtOworICAgIGlmIChsaXN0LT5maXJzdCA9PSBOVUxMKSB7CisgICAgICBsaXN0LT5maXJzdCA9IGVsZW07CisgICAgfQorICAgIGxpc3QtPmVsZW1zKys7CisgICAgcmV0dXJuIDE7CisgIH0KKyAgcmV0dXJuIDA7Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3ZvaWQgKgorbGlzdF9wb3Aoc3RydWN0IGxpc3QgKmxpc3QpCit7CisgIHN0cnVjdCBlbGVtICplbGVtOworICB2b2lkICpkYXRhOworCisgIGlmIChsaXN0LT5lbGVtcyA+IDApIHsKKyAgICBlbGVtID0gbGlzdC0+Zmlyc3Q7CisgICAgaWYgKGVsZW0gPT0gbGlzdC0+bGFzdCkgeworICAgICAgbGlzdC0+bGFzdCA9IGVsZW0tPm5leHQ7CisgICAgfQorICAgIGxpc3QtPmZpcnN0ID0gZWxlbS0+bmV4dDsKKworICAgIGxpc3QtPmVsZW1zLS07CisKKyAgICBkYXRhID0gZWxlbS0+ZGF0YTsKKyAgICBmcmVlKGVsZW0pOworCisgICAgcmV0dXJuIGRhdGE7CisgIH0KKyAgcmV0dXJuIE5VTEw7Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3ZvaWQgKgorbGlzdF9maXJzdChzdHJ1Y3QgbGlzdCAqbGlzdCkKK3sKKyAgcmV0dXJuIGxpc3QtPmZpcnN0OworfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitpbnQKK2xpc3RfZWxlbXMoc3RydWN0IGxpc3QgKmxpc3QpCit7CisgIHJldHVybiBsaXN0LT5lbGVtczsKK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwordm9pZAorbGlzdF9kZWxldGUoc3RydWN0IGxpc3QgKmxpc3QpCit7CisgIHdoaWxlIChsaXN0X3BvcChsaXN0KSAhPSBOVUxMKTsKKyAgZnJlZShsaXN0KTsKK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworaW50CitsaXN0X3JlbW92ZShzdHJ1Y3QgbGlzdCAqbGlzdCwgdm9pZCAqZWxlbSkKK3sKKyAgc3RydWN0IGVsZW0gKmUsICpwOworCisgIHAgPSBOVUxMOworICBmb3IoZSA9IGxpc3QtPmZpcnN0OyBlICE9IE5VTEw7IGUgPSBlLT5uZXh0KSB7CisgICAgaWYgKGUtPmRhdGEgPT0gZWxlbSkgeworICAgICAgaWYgKHAgIT0gTlVMTCkgeworICAgICAgICBwLT5uZXh0ID0gZS0+bmV4dDsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGxpc3QtPmZpcnN0ID0gZS0+bmV4dDsKKyAgICAgIH0KKyAgICAgIGlmIChsaXN0LT5sYXN0ID09IGUpIHsKKyAgICAgICAgbGlzdC0+bGFzdCA9IHA7CisgICAgICAgIGlmIChwICE9IE5VTEwpIHsKKyAgICAgICAgICBwLT5uZXh0ID0gTlVMTDsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgZnJlZShlKTsKKyAgICAgIGxpc3QtPmVsZW1zLS07CisgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcCA9IGU7CisgIH0KKyAgcmV0dXJuIDA7Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3ZvaWQKK2xpc3RfbWFwKHN0cnVjdCBsaXN0ICpsaXN0LCB2b2lkICgqIGZ1bmMpKHZvaWQgKmFyZykpCit7CisgIHN0cnVjdCBlbGVtICplOworCisgIGZvcihlID0gbGlzdC0+Zmlyc3Q7IGUgIT0gTlVMTDsgZSA9IGUtPm5leHQpIHsKKyAgICBmdW5jKGUtPmRhdGEpOworICB9Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL3BjYXBpZi5jIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvbmV0aWYvcGNhcGlmLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg1MWM4MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL3BjYXBpZi5jCkBAIC0wLDAgKzEsMjA3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyAqCisgKi8KKworI2lmbmRlZiBsaW51eCAgLyogQXBwYXJlbnRseSwgdGhpcyBkb2Vzbid0IHdvcmsgdW5kZXIgTGludXguICovCisKKyNpbmNsdWRlICJsd2lwL2RlYnVnLmgiCisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3Vpby5oPgorI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNpbmNsdWRlIDxzeXMvdW4uaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNpbmNsdWRlIDxhcnBhL2luZXQuaD4KKworI2luY2x1ZGUgPHBjYXAuaD4KKworI2luY2x1ZGUgIm5ldGlmL2V0aGFycC5oIgorCisjaW5jbHVkZSAibHdpcC9zdGF0cy5oIgorCisjaW5jbHVkZSAibHdpcC9kZWYuaCIKKyNpbmNsdWRlICJsd2lwL21lbS5oIgorI2luY2x1ZGUgImx3aXAvcGJ1Zi5oIgorI2luY2x1ZGUgImx3aXAvc3lzLmgiCisKKyNpbmNsdWRlICJsd2lwL2lwLmgiCisKKworc3RydWN0IHBjYXBpZiB7CisgIHBjYXBfdCAqcGQ7CisgIHN5c19zZW1fdCBzZW07CisgIHU4X3QgcGt0WzIwNDhdOworICB1MzJfdCBsZW47CisgIHUzMl90IGxhc3R0aW1lOworICBzdHJ1Y3QgcGJ1ZiAqcDsKKyAgc3RydWN0IGV0aF9hZGRyICpldGhhZGRyOworfTsKKworc3RhdGljIGNoYXIgZXJyYnVmW1BDQVBfRVJSQlVGX1NJWkVdOworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBlcnJfdAorcGNhcGlmX291dHB1dChzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBzdHJ1Y3QgcGJ1ZiAqcCwKKwkgICAgICBpcF9hZGRyX3QgKmlwYWRkcikKK3sKKyAgcmV0dXJuIEVSUl9PSzsKK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIHZvaWQKK3RpbWVvdXQodm9pZCAqYXJnKQoreworICBzdHJ1Y3QgbmV0aWYgKm5ldGlmOworICBzdHJ1Y3QgcGNhcGlmICpwY2FwaWY7CisgIHN0cnVjdCBwYnVmICpwOworICBzdHJ1Y3QgZXRoX2hkciAqZXRoaGRyOworCisgIG5ldGlmID0gKHN0cnVjdCBuZXRpZiAqKWFyZzsKKyAgcGNhcGlmID0gbmV0aWYtPnN0YXRlOworICBldGhoZHIgPSAoc3RydWN0IGV0aF9oZHIgKilwY2FwaWYtPnBrdDsKKworCisgIGlmIChsd2lwX2h0b25zKGV0aGhkci0+dHlwZSkgIT0gRVRIVFlQRV9JUCB8fAorICAgICBpcF9sb29rdXAocGNhcGlmLT5wa3QgKyAxNCwgbmV0aWYpKSB7CisKKyAgICAvKiBXZSBhbGxvY2F0ZSBhIHBidWYgY2hhaW4gb2YgcGJ1ZnMgZnJvbSB0aGUgcG9vbC4gKi8KKyAgICBwID0gcGJ1Zl9hbGxvYyhQQlVGX0xJTkssIHBjYXBpZi0+bGVuLCBQQlVGX1BPT0wpOworCisgICAgaWYgKHAgIT0gTlVMTCkgeworICAgICAgcGJ1Zl90YWtlKHAsIHBjYXBpZi0+cGt0LCBwY2FwaWYtPmxlbik7CisKKyAgICAgIGV0aGhkciA9IHAtPnBheWxvYWQ7CisgICAgICBzd2l0Y2ggKGx3aXBfaHRvbnMoZXRoaGRyLT50eXBlKSkgeworICAgICAgLyogSVAgb3IgQVJQIHBhY2tldD8gKi8KKyAgICAgIGNhc2UgRVRIVFlQRV9JUDoKKyAgICAgIGNhc2UgRVRIVFlQRV9BUlA6CisjaWYgUFBQT0VfU1VQUE9SVAorICAgICAgLyogUFBQb0UgcGFja2V0PyAqLworICAgICAgY2FzZSBFVEhUWVBFX1BQUE9FRElTQzoKKyAgICAgIGNhc2UgRVRIVFlQRV9QUFBPRToKKyNlbmRpZiAvKiBQUFBPRV9TVVBQT1JUICovCisgICAgICAgIC8qIGZ1bGwgcGFja2V0IHNlbmQgdG8gdGNwaXBfdGhyZWFkIHRvIHByb2Nlc3MgKi8KKyAgICAgICAgaWYgKG5ldGlmLT5pbnB1dChwLCBuZXRpZikgIT0gRVJSX09LKSB7CisgICAgICAgICAgTFdJUF9ERUJVR0YoTkVUSUZfREVCVUcsICgiZXRoZXJuZXRpZl9pbnB1dDogSVAgaW5wdXQgZXJyb3JcbiIpKTsKKyAgICAgICAgICBwYnVmX2ZyZWUocCk7CisgICAgICAgICAgcCA9IE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgICBkZWZhdWx0OgorICAgICAgICBwYnVmX2ZyZWUocCk7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIH0KKyAgfSBlbHNlIHsKKyAgICBwcmludGYoImlwX2xvb2t1cCBkcm9wcGVkXG4iKTsKKyAgfQorCisgIHN5c19zZW1fc2lnbmFsKCZwY2FwaWYtPnNlbSk7Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyB2b2lkCitjYWxsYmFjayh1X2NoYXIgKmFyZywgY29uc3Qgc3RydWN0IHBjYXBfcGt0aGRyICpoZHIsIGNvbnN0IHVfY2hhciAqcGt0KQoreworICBzdHJ1Y3QgbmV0aWYgKm5ldGlmOworICBzdHJ1Y3QgcGNhcGlmICpwY2FwaWY7CisgIHUzMl90IHRpbWUsIGxhc3R0aW1lOworCisgIG5ldGlmID0gKHN0cnVjdCBuZXRpZiAqKWFyZzsKKyAgcGNhcGlmID0gbmV0aWYtPnN0YXRlOworCisgIHBjYXBpZi0+bGVuID0gaGRyLT5sZW47CisKKyAgYmNvcHkocGt0LCBwY2FwaWYtPnBrdCwgaGRyLT5sZW4pOworCisgIHRpbWUgPSBoZHItPnRzLnR2X3NlYyAqIDEwMDAgKyBoZHItPnRzLnR2X3VzZWMgLyAxMDAwOworCisgIGxhc3R0aW1lID0gcGNhcGlmLT5sYXN0dGltZTsKKyAgcGNhcGlmLT5sYXN0dGltZSA9IHRpbWU7CisKKworICBpZiAobGFzdHRpbWUgPT0gMCkgeworICAgIHN5c190aW1lb3V0KDEwMDAsIHRpbWVvdXQsIG5ldGlmKTsKKyAgfSBlbHNlIHsKKyAgICBzeXNfdGltZW91dCh0aW1lIC0gbGFzdHRpbWUsIHRpbWVvdXQsIG5ldGlmKTsKKyAgfQorfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitzdGF0aWMgdm9pZAorcGNhcGlmX3RocmVhZCh2b2lkICphcmcpCit7CisgIHN0cnVjdCBuZXRpZiAqbmV0aWY7CisgIHN0cnVjdCBwY2FwaWYgKnBjYXBpZjsKKyAgbmV0aWYgPSBhcmc7CisgIHBjYXBpZiA9IG5ldGlmLT5zdGF0ZTsKKworICB3aGlsZSAoMSkgeworICAgIHBjYXBfbG9vcChwY2FwaWYtPnBkLCAxLCBjYWxsYmFjaywgKHVfY2hhciAqKW5ldGlmKTsKKyAgICBzeXNfc2VtX3dhaXQoJnBjYXBpZi0+c2VtKTsKKyAgICBpZiAocGNhcGlmLT5wICE9IE5VTEwpIHsKKyAgICAgIG5ldGlmLT5pbnB1dChwY2FwaWYtPnAsIG5ldGlmKTsKKyAgICB9CisgIH0KK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworZXJyX3QKK3BjYXBpZl9pbml0KHN0cnVjdCBuZXRpZiAqbmV0aWYpCit7CisgIHN0cnVjdCBwY2FwaWYgKnA7CisKKyAgcCA9IG1hbGxvYyhzaXplb2Yoc3RydWN0IHBjYXBpZikpOworICBpZiAocCA9PSBOVUxMKQorICAgICAgcmV0dXJuIEVSUl9NRU07CisgIG5ldGlmLT5zdGF0ZSA9IHA7CisgIG5ldGlmLT5uYW1lWzBdID0gJ3AnOworICBuZXRpZi0+bmFtZVsxXSA9ICdjJzsKKyAgbmV0aWYtPm91dHB1dCA9IHBjYXBpZl9vdXRwdXQ7CisKKyAgcC0+cGQgPSBwY2FwX29wZW5fb2ZmbGluZSgicGNhcGR1bXAiLCBlcnJidWYpOworICBpZiAocC0+cGQgPT0gTlVMTCkgeworICAgIHByaW50ZigicGNhcGlmX2luaXQ6IGZhaWxlZCAlc1xuIiwgZXJyYnVmKTsKKyAgICByZXR1cm4gRVJSX0lGOworICB9CisKKyAgaWYoc3lzX3NlbV9uZXcoJnAtPnNlbSwgMCkgIT0gRVJSX09LKSB7CisgICAgTFdJUF9BU1NFUlQoIkZhaWxlZCB0byBjcmVhdGUgc2VtYXBob3JlIiwgMCk7CisgIH0KKyAgcC0+cCA9IE5VTEw7CisgIHAtPmxhc3R0aW1lID0gMDsKKworICBzeXNfdGhyZWFkX25ldygicGNhcGlmX3RocmVhZCIsIHBjYXBpZl90aHJlYWQsIG5ldGlmLCBERUZBVUxUX1RIUkVBRF9TVEFDS1NJWkUsIERFRkFVTFRfVEhSRUFEX1BSSU8pOworICByZXR1cm4gRVJSX09LOworfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjZW5kaWYgLyogbGludXggKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL3Npby5jIGIvY29udHJpYi9wb3J0cy91bml4L3BvcnQvbmV0aWYvc2lvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ4YmU5YgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL3Npby5jCkBAIC0wLDAgKzEsNDg1IEBACisvKiBBdXRob3I6IE1hZ251cyBJdmFyc3NvbiA8bWFnbnVzLml2YXJzc29uQHZvbHZvLmNvbT4gKi8KKworLyogdG8gZ2V0IHJpZCBvZiBpbXBsaWNpdCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgKi8KKyNkZWZpbmUgX1hPUEVOX1NPVVJDRSA2MDAKKyNkZWZpbmUgX0dOVV9TT1VSQ0UKKworLyogYnVpbGQgd2l0aCBEYXJ3aW4gQyBleHRlbnNpb25zIG5vdCBwYXJ0IG9mIFBPU0lYLCBpLmUuIEZBU1lOQywgU0lHSU8uCisgICB3ZSBjYW4ndCB1c2UgTFdJUF9VTklYX01BQ0ggYmVjYXVzZSBleHRlbnNpb25zIG5lZWQgdG8gYmUgdHVybmVkCisgICBvbiBiZWZvcmUgYW55IHN5c3RlbSBoZWFkZXJzICh3aGljaCBhcmUgcHVsbGVkIGluIHRocm91Z2ggY2MuaCkKKyAgIGFyZSBpbmNsdWRlZCAqLworI2lmIGRlZmluZWQoX19BUFBMRV9fKQorI2RlZmluZSBfREFSV0lOX0NfU09VUkNFCisjZW5kaWYKKworI2luY2x1ZGUgIm5ldGlmL3Npby5oIgorI2luY2x1ZGUgIm5ldGlmL2ZpZm8uaCIKKyNpbmNsdWRlICJsd2lwL2RlYnVnLmgiCisjaW5jbHVkZSAibHdpcC9kZWYuaCIKKyNpbmNsdWRlICJsd2lwL3N5cy5oIgorI2luY2x1ZGUgImx3aXAvYXJjaC5oIgorI2luY2x1ZGUgImx3aXAvc2lvLmgiCisjaW5jbHVkZSAibmV0aWYvcHBwL3BwcF9vcHRzLmgiCisKKy8qIEZvbGxvd2luZyAjdW5kZWZzIGFyZSBoZXJlIHRvIGtlZXAgY29tcGlsZXIgZnJvbSBpc3N1aW5nIHdhcm5pbmdzCisgICBhYm91dCB0aGVtIGJlaW5nIGRvdWJsZSBkZWZpbmVkLiAoVGhleSBhcmUgZGVmaW5lZCBpbiBsd2lwL2luZXQuaAorICAgYXMgd2VsbCBhcyB0aGUgVW5peCAjaW5jbHVkZXMgYmVsb3cuKSAqLworI3VuZGVmIGh0b25sCisjdW5kZWYgbnRvaGwKKyN1bmRlZiBodG9ucworI3VuZGVmIG50b2hzCisjdW5kZWYgSFRPTkwKKyN1bmRlZiBOVE9ITAorI3VuZGVmIEhUT05TCisjdW5kZWYgTlRPSFMKKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaWYgZGVmaW5lZChMV0lQX1VOSVhfT1BFTkJTRCkKKyNpbmNsdWRlIDx1dGlsLmg+CisjZW5kaWYKKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy9zaWduYWwuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKworI2lmbmRlZiBMV0lQX0hBVkVfU0xJUElGCisjZGVmaW5lIExXSVBfSEFWRV9TTElQSUYgMAorI2VuZGlmCisKKyNpZiAoUFBQX1NVUFBPUlQgfHwgTFdJUF9IQVZFX1NMSVBJRikgJiYgZGVmaW5lZChMV0lQX1VOSVhfTElOVVgpCisjaW5jbHVkZSA8cHR5Lmg+CisjZW5kaWYKKworLyojZGVmaW5lIEJBVURSQVRFIEIxOTIwMCAqLworLyojZGVmaW5lIEJBVURSQVRFIEI1NzYwMCAqLworI2RlZmluZSBCQVVEUkFURSBCMTE1MjAwCisKKyNpZm5kZWYgVFJVRQorI2RlZmluZSBUUlVFICAxCisjZW5kaWYKKyNpZm5kZWYgRkFMU0UKKyNkZWZpbmUgRkFMU0UgMAorI2VuZGlmCisKKy8qIGZvciBhbGwgb2YgeW91IHdobyBkb24ndCBkZWZpbmUgU0lPX0RFQlVHIGluIGRlYnVnLmggKi8KKyNpZm5kZWYgU0lPX0RFQlVHCisjZGVmaW5lIFNJT19ERUJVRyAwCisjZW5kaWYKKworCisvKiAgdHlwZWRlZiBzdHJ1Y3Qgc2lvc3RydWN0X3QgKi8KKy8qICB7ICAqLworLyogIAlzaW9fc3RhdHVzX3QgKnNpbzsgKi8KKy8qICB9IHNpb3N0cnVjdF90OyAqLworCisvKiogYXJyYXkgb2YgKChzaW9zdHJ1Y3QqKW5ldGlmLT5zdGF0ZSktPnNpbyBzdHJ1Y3RzICovCitzdGF0aWMgc2lvX3N0YXR1c190IHN0YXR1c2FyWzRdOworCisjaWYgISAoUFBQX1NVUFBPUlQgfHwgTFdJUF9IQVZFX1NMSVBJRikKKy8qIC0tcHJpdmF0ZS1mdW5jdGlvbnMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyoqCisgKiBTaWduYWwgaGFuZGxlciBmb3IgdHR5WFgwIHRvIGluZGljYXRlIGJ5dGVzIHJlY2VpdmVkCisgKiBvbmUgcGVyIGludGVyZmFjZSBpcyBuZWVkZWQgc2luY2Ugd2UgY2Fubm90IHNlbmQgYSBpbnN0YW5jZSBudW1iZXIgLyBwb2ludGVyIGFzIGNhbGxiYWNrIGFyZ3VtZW50ICg/KQorICovCitzdGF0aWMgdm9pZAlzaWduYWxfaGFuZGxlcl9JT18wKCBpbnQgc3RhdHVzICkKK3sKKwlMV0lQX1VOVVNFRF9BUkcoc3RhdHVzKTsKKwlMV0lQX0RFQlVHRihTSU9fREVCVUcsICgiU2lnSGFuZDogcnhTaWduYWwgY2hhbm5lbCAwXG4iKSk7CisJZmlmb1B1dCggJnN0YXR1c2FyWzBdLm15Zmlmbywgc3RhdHVzYXJbMF0uZmQgKTsKK30KKworLyoqCisgKiBTaWduYWwgaGFuZGxlciBmb3IgdHR5WFgxIHRvIGluZGljYXRlIGJ5dGVzIHJlY2VpdmVkCisgKiBvbmUgcGVyIGludGVyZmFjZSBpcyBuZWVkZWQgc2luY2Ugd2UgY2Fubm90IHNlbmQgYSBpbnN0YW5jZSBudW1iZXIgLyBwb2ludGVyIGFzIGNhbGxiYWNrIGFyZ3VtZW50ICg/KQorICovCitzdGF0aWMgdm9pZCBzaWduYWxfaGFuZGxlcl9JT18xKCBpbnQgc3RhdHVzICkKK3sKKwlMV0lQX1VOVVNFRF9BUkcoc3RhdHVzKTsKKwlMV0lQX0RFQlVHRihTSU9fREVCVUcsICgiU2lnSGFuZDogcnhTaWduYWwgY2hhbm5lbCAxXG4iKSk7CisJZmlmb1B1dCggJnN0YXR1c2FyWzFdLm15Zmlmbywgc3RhdHVzYXJbMV0uZmQgKTsKK30KKyNlbmRpZiAvKiAhIChQUFBfU1VQUE9SVCB8fCBMV0lQX0hBVkVfU0xJUElGKSAqLworCisvKioKKyogSW5pdGlhdGlvbiBvZiBzZXJpYWwgZGV2aWNlCisqIEBwYXJhbSBkZXZpY2Ugc3RyaW5nIHdpdGggdGhlIGRldmljZSBuYW1lIGFuZCBwYXRoLCBlZy4gIi9kZXYvdHR5UzAiCisqIEBwYXJhbSBkZXZudW0gZGV2aWNlIG51bWJlcgorKiBAcGFyYW0gc2lvc3RhdCBzdGF0dXMKKyogQHJldHVybiBmaWxlIGhhbmRsZSB0byBzZXJpYWwgZGV2LgorKi8KK3N0YXRpYyBpbnQgc2lvX2luaXQoIGNoYXIgKiBkZXZpY2UsIGludCBkZXZudW0sIHNpb19zdGF0dXNfdCAqIHNpb3N0YXQgKQoreworCXN0cnVjdCB0ZXJtaW9zIG9sZHRpbyxuZXd0aW87CisjaWYgISAoUFBQX1NVUFBPUlQgfHwgTFdJUF9IQVZFX1NMSVBJRikKKwlzdHJ1Y3Qgc2lnYWN0aW9uIHNhaW87ICAgICAgICAgICAvKiBkZWZpbml0aW9uIG9mIHNpZ25hbCBhY3Rpb24gKi8KKyNlbmRpZgorCWludCBmZDsKKwlMV0lQX1VOVVNFRF9BUkcoc2lvc3RhdCk7CisJTFdJUF9VTlVTRURfQVJHKGRldm51bSk7CisKKwkvKiBvcGVuIHRoZSBkZXZpY2UgdG8gYmUgbm9uLWJsb2NraW5nIChyZWFkIHdpbGwgcmV0dXJuIGltbWVkaWF0ZWx5KSAqLworCWZkID0gb3BlbiggZGV2aWNlLCBPX1JEV1IgfCBPX05PQ1RUWSB8IE9fTk9OQkxPQ0sgKTsKKwlpZiAoIGZkIDwgMCApCisJeworCQlwZXJyb3IoIGRldmljZSApOworCQlleGl0KCAtMSApOworCX0KKworI2lmICEgKFBQUF9TVVBQT1JUIHx8IExXSVBfSEFWRV9TTElQSUYpCisJbWVtc2V0KCZzYWlvLCAwLCBzaXplb2Yoc3RydWN0IHNpZ2FjdGlvbikpOworCS8qIGluc3RhbGwgdGhlIHNpZ25hbCBoYW5kbGVyIGJlZm9yZSBtYWtpbmcgdGhlIGRldmljZSBhc3luY2hyb25vdXMgKi8KKwlzd2l0Y2ggKCBkZXZudW0gKQorCXsKKwkJY2FzZSAwOgorCQkJTFdJUF9ERUJVR0YoIFNJT19ERUJVRywgKCJzaW9pbml0LCBzaWduYWxfaGFuZGxlcl9JT18wXG4iKSApOworCQkJc2Fpby5zYV9oYW5kbGVyID0gc2lnbmFsX2hhbmRsZXJfSU9fMDsKKwkJCWJyZWFrOworCQljYXNlIDE6CisJCQlMV0lQX0RFQlVHRiggU0lPX0RFQlVHLCAoInNpb2luaXQsIHNpZ25hbF9oYW5kbGVyX0lPXzFcbiIpICk7CisJCQlzYWlvLnNhX2hhbmRsZXIgPSBzaWduYWxfaGFuZGxlcl9JT18xOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlMV0lQX0RFQlVHRiggU0lPX0RFQlVHLCgic2lvaW5pdCwgZGV2bnVtIG5vdCBhbGxvd2VkXG4iKSApOworCQkJYnJlYWs7CisJfQorCisJc2lnYWN0aW9uKCBTSUdJTywmc2FpbyxOVUxMICk7CisKKwkvKiBhbGxvdyB0aGUgcHJvY2VzcyB0byByZWNlaXZlIFNJR0lPICovCisgICAgICAgCWlmICggZmNudGwoIGZkLCBGX1NFVE9XTiwgZ2V0cGlkKCApICkgIT0gMCkKKwl7CisJCXBlcnJvciggZGV2aWNlICk7CisJCWV4aXQoIC0xICk7CisJfQorCS8qIE1ha2UgdGhlIGZpbGUgZGVzY3JpcHRvciBhc3luY2hyb25vdXMgKHRoZSBtYW51YWwgcGFnZSBzYXlzIG9ubHkKKwlPX0FQUEVORCBhbmQgT19OT05CTE9DSywgd2lsbCB3b3JrIHdpdGggRl9TRVRGTC4uLikgKi8KKyAgICAgICAJaWYgKCBmY250bCggZmQsIEZfU0VURkwsIEZBU1lOQyApICE9IDApCisJeworCQlwZXJyb3IoIGRldmljZSApOworCQlleGl0KCAtMSApOworCX0KKyNlbHNlCisgICAgICAgCWlmICggZmNudGwoIGZkLCBGX1NFVEZMLCAwICkgIT0gMCkKKwl7CisJCXBlcnJvciggZGV2aWNlICk7CisJCWV4aXQoIC0xICk7CisJfQorCisjZW5kaWYgLyogISAoUFBQX1NVUFBPUlQgfHwgTFdJUF9IQVZFX1NMSVBJRikgKi8KKworCXRjZ2V0YXR0ciggZmQsJm9sZHRpbyApOyAvKiBzYXZlIGN1cnJlbnQgcG9ydCBzZXR0aW5ncyAqLworCS8qIHNldCBuZXcgcG9ydCBzZXR0aW5ncyAqLworCS8qIHNlZSAnbWFuIHRlcm1pb3MnIGZvciBmdXJ0aGVyIHNldHRpbmdzICovCisgICAgICAgIG1lbXNldCgmbmV3dGlvLCAwLCBzaXplb2YobmV3dGlvKSk7CisJbmV3dGlvLmNfY2ZsYWcgPSBCQVVEUkFURSB8IENTOCB8IENMT0NBTCB8IENSRUFEIHwgQ1JUU0NUUzsKKwluZXd0aW8uY19pZmxhZyA9IDA7CisJbmV3dGlvLmNfb2ZsYWcgPSAwOworCW5ld3Rpby5jX2xmbGFnID0gMDsgLypFQ0hPOyAqLworCW5ld3Rpby5jX2NjW1ZNSU5dID0gMTsgLyogUmVhZCAxIGJ5dGUgYXQgYSB0aW1lLCBubyB0aW1lciAqLworCW5ld3Rpby5jX2NjW1ZUSU1FXSA9IDA7CisKKwl0Y3NldGF0dHIoIGZkLFRDU0FOT1csJm5ld3RpbyApOworCXRjZmx1c2goIGZkLCBUQ0lPRkxVU0ggKTsKKworCXJldHVybiBmZDsKK30KKworLyoqCisqCisqLworc3RhdGljIHZvaWQgc2lvX3NwZWVkKCBpbnQgZmQsIGludCBzcGVlZCApCit7CisJc3RydWN0IHRlcm1pb3Mgb2xkdGlvLG5ld3RpbzsKKwkvKiAgaW50IGZkOyAqLworCisJTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19zcGVlZFslZF06IGJhdWRjb2RlOiVkIGVudGVyXG4iLCBmZCwgc3BlZWQpKTsKKworCWlmICggZmQgPCAwICkKKwl7CisJCUxXSVBfREVCVUdGKFNJT19ERUJVRywgKCJzaW9fc3BlZWRbJWRdOiBmZCBFUlJPUlxuIiwgZmQpKTsKKwkJZXhpdCggLTEgKTsKKwl9CisKKwl0Y2dldGF0dHIoIGZkLCZvbGR0aW8gKTsgLyogZ2V0IGN1cnJlbnQgcG9ydCBzZXR0aW5ncyAqLworCisJLyogc2V0IG5ldyBwb3J0IHNldHRpbmdzCisJKiBzZWUgJ21hbiB0ZXJtaW9zJyBmb3IgZnVydGhlciBzZXR0aW5ncyAqLworICAgICAgICBtZW1zZXQoJm5ld3RpbywgMCwgc2l6ZW9mKG5ld3RpbykpOworCW5ld3Rpby5jX2NmbGFnID0gc3BlZWQgfCBDUzggfCBDTE9DQUwgfCBDUkVBRDsgLyogfCBDUlRTQ1RTOyAqLworCW5ld3Rpby5jX2lmbGFnID0gMDsKKwluZXd0aW8uY19vZmxhZyA9IDA7CisJbmV3dGlvLmNfbGZsYWcgPSAwOyAvKkVDSE87ICovCisJbmV3dGlvLmNfY2NbVk1JTl0gPSAxOyAvKiBSZWFkIDEgYnl0ZSBhdCBhIHRpbWUsIG5vIHRpbWVyICovCisJbmV3dGlvLmNfY2NbVlRJTUVdID0gMDsKKworCXRjc2V0YXR0ciggZmQsVENTQU5PVywmbmV3dGlvICk7CisJdGNmbHVzaCggZmQsIFRDSU9GTFVTSCApOworCisJTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19zcGVlZFslZF06IGxlYXZlXG4iLCBmZCkpOworfQorCisvKiAtLXB1YmxpYy1mdW5jdGlvbnMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwordm9pZCBzaW9fc2VuZCggdThfdCBjLCBzaW9fc3RhdHVzX3QgKiBzaW9zdGF0ICkKK3sKKyAgICAvKglzaW9fc3RhdHVzX3QgKiBzaW9zdGF0ID0gKChzaW9zdHJ1Y3RfdCopbmV0aWYtPnN0YXRlKS0+c2lvOyAqLworCisJaWYgKCB3cml0ZSggc2lvc3RhdC0+ZmQsICZjLCAxICkgPD0gMCApCisJeworCQlMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX3NlbmRbJWRdOiB3cml0ZSByZWZ1c2VkXG4iLCBzaW9zdGF0LT5mZCkpOworCX0KK30KKwordm9pZCBzaW9fc2VuZF9zdHJpbmcoIHU4X3QgKnN0ciwgc2lvX3N0YXR1c190ICogc2lvc3RhdCApCit7CisgICAgLyoJc2lvX3N0YXR1c190ICogc2lvc3RhdCA9ICgoc2lvc3RydWN0X3QqKW5ldGlmLT5zdGF0ZSktPnNpbzsgKi8KKwlpbnQgbGVuID0gc3RybGVuKCAoY29uc3QgY2hhciAqKXN0ciApOworCisJaWYgKCB3cml0ZSggc2lvc3RhdC0+ZmQsIHN0ciwgbGVuICkgPD0gMCApCisJeworCQlMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX3NlbmRfc3RyaW5nWyVkXTogd3JpdGUgcmVmdXNlZFxuIiwgc2lvc3RhdC0+ZmQpKTsKKwl9CisJTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19zZW5kX3N0cmluZ1slZF06IHNlbnQ6ICVzXG4iLCBzaW9zdGF0LT5mZCwgc3RyKSk7Cit9CisKKwordm9pZCBzaW9fZmx1c2goIHNpb19zdGF0dXNfdCAqIHNpb3N0YXQgKQoreworCUxXSVBfVU5VU0VEX0FSRyhzaW9zdGF0KTsKKwkvKiBub3QgaW1wbGVtZW50ZWQgaW4gdW5peCBhcyBpdCBpcyBub3QgbmVlZGVkICovCisgCS8qc2lvX3N0YXR1c190ICogc2lvc3RhdCA9ICgoc2lvc3RydWN0X3QqKW5ldGlmLT5zdGF0ZSktPnNpbzsgKi8KK30KKworCisjaWYgISAoUFBQX1NVUFBPUlQgfHwgTFdJUF9IQVZFX1NMSVBJRikKKy8qdThfdCBzaW9fcmVjdiggc3RydWN0IG5ldGlmICogbmV0aWYgKSovCit1OF90IHNpb19yZWN2KCBzaW9fc3RhdHVzX3QgKiBzaW9zdGF0ICkKK3sKKyAgICAvKglzaW9fc3RhdHVzX3QgKiBzaW9zdGF0ID0gKChzaW9zdHJ1Y3RfdCopbmV0aWYtPnN0YXRlKS0+c2lvOyAqLworCXJldHVybiBmaWZvR2V0KCAmKHNpb3N0YXQtPm15ZmlmbykgKTsKK30KKworczE2X3Qgc2lvX3BvbGwoc2lvX3N0YXR1c190ICogc2lvc3RhdCkKK3sKKyAgICAvKglzaW9fc3RhdHVzX3QgKiBzaW9zdGF0ID0gKChzaW9zdHJ1Y3RfdCopbmV0aWYtPnN0YXRlKS0+c2lvOyovCisJcmV0dXJuIGZpZm9HZXROb25CbG9jayggJihzaW9zdGF0LT5teWZpZm8pICk7Cit9CisKKwordm9pZCBzaW9fZXhwZWN0X3N0cmluZyggdThfdCAqc3RyLCBzaW9fc3RhdHVzX3QgKiBzaW9zdGF0ICkKK3sKKyAgICAvKglzaW9fc3RhdHVzX3QgKiBzaW9zdGF0ID0gKChzaW9zdHJ1Y3RfdCopbmV0aWYtPnN0YXRlKS0+c2lvOyovCisJdThfdCBjOworIAlpbnQgZmluZ2VyPTA7CisKKwlMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX2V4cGVjdF9zdHJpbmdbJWRdOiAlc1xuIiwgc2lvc3RhdC0+ZmQsIHN0cikpOworCXdoaWxlICggMSApCisJeworCQljPWZpZm9HZXQoICYoc2lvc3RhdC0+bXlmaWZvKSApOworCQlMV0lQX0RFQlVHRihTSU9fREVCVUcsICgiXyVjIiwgYykpOworCQlpZiAoIGM9PXN0cltmaW5nZXJdICkKKwkJeworCQkJZmluZ2VyKys7CisJCX0gZWxzZSBpZiAoIGZpbmdlciA+IDAgKQorCQl7CisgICAgICAgICAgICAgICAgICAgIC8qaXQgbWlnaHQgZml0IGluIHRoZSBiZWdpbm5pbmc/ICovCisJCQlpZiAoIHN0clswXSA9PSBjICkKKwkJCXsKKwkJCQlmaW5nZXIgPSAxOworCQkJfQorCQl9CisJCWlmICggMCA9PSBzdHJbZmluZ2VyXSApCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwkvKiBkb25lLCB3ZSBoYXZlIGEgbWF0Y2ggKi8KKwl9CisJTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19leHBlY3Rfc3RyaW5nWyVkXTogW21hdGNoXVxuIiwgc2lvc3RhdC0+ZmQpKTsKK30KKyNlbmRpZiAvKiAhIChQUFBfU1VQUE9SVCB8fCBMV0lQX0hBVkVfU0xJUElGKSAqLworCisjaWYgKFBQUF9TVVBQT1JUIHx8IExXSVBfSEFWRV9TTElQSUYpCit1MzJfdCBzaW9fd3JpdGUoc2lvX3N0YXR1c190ICogc2lvc3RhdCwgY29uc3QgdThfdCAqYnVmLCB1MzJfdCBzaXplKQoreworICAgIHNzaXplX3Qgd3N6ID0gd3JpdGUoIHNpb3N0YXQtPmZkLCBidWYsIHNpemUgKTsKKyAgICByZXR1cm4gd3N6IDwgMCA/IDAgOiB3c3o7Cit9CisKK3UzMl90IHNpb19yZWFkKHNpb19zdGF0dXNfdCAqIHNpb3N0YXQsIHU4X3QgKmJ1ZiwgdTMyX3Qgc2l6ZSkKK3sKKyAgICBzc2l6ZV90IHJzeiA9IHJlYWQoIHNpb3N0YXQtPmZkLCBidWYsIHNpemUgKTsKKyAgICByZXR1cm4gcnN6IDwgMCA/IDAgOiByc3o7Cit9CisKK3ZvaWQgc2lvX3JlYWRfYWJvcnQoc2lvX3N0YXR1c190ICogc2lvc3RhdCkKK3sKKyAgICBMV0lQX1VOVVNFRF9BUkcoc2lvc3RhdCk7CisgICAgcHJpbnRmKCJzaW9fcmVhZF9hYm9ydFslZF06IG5vdCB5ZXQgaW1wbGVtZW50ZWQgZm9yIHVuaXhcbiIsIHNpb3N0YXQtPmZkKTsKK30KKyNlbmRpZiAvKiAoUFBQX1NVUFBPUlQgfHwgTFdJUF9IQVZFX1NMSVBJRikgKi8KKworc2lvX2ZkX3Qgc2lvX29wZW4odThfdCBkZXZudW0pCit7CisJY2hhciBkZXZbMjBdOworCisJLyogd291bGQgYmUgbmljZSB3aXRoIGR5bmFtaWMgbWVtb3J5IGFsbG9jICovCisJc2lvX3N0YXR1c190ICogc2lvc3RhdGUgPSAmc3RhdHVzYXJbIGRldm51bSBdOworLyogCXNpb3N0cnVjdF90ICogdG1wOyAqLworCisKKy8qIAl0bXAgPSAoc2lvc3RydWN0X3QqKShuZXRpZi0+c3RhdGUpOyAqLworLyogCXRtcC0+c2lvID0gc2lvc3RhdGU7ICovCisKKy8qIAl0bXAgPSAoc2lvc3RydWN0X3QqKShuZXRpZi0+c3RhdGUpOyAqLworCisvKiAJKChzaW9fc3RhdHVzX3QqKSh0bXAtPnNpbykpLT5mZCA9IDA7ICovCisKKwlMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX29wZW46IGZvciBkZXZudW0gJWRcbiIsIGRldm51bSkpOworCisjaWYgISAoUFBQX1NVUFBPUlQgfHwgTFdJUF9IQVZFX1NMSVBJRikKKwlmaWZvSW5pdCggJnNpb3N0YXRlLT5teWZpZm8gKTsKKyNlbmRpZiAvKiAhIFBQUF9TVVBQT1JUICovCisKKwlzbnByaW50ZiggZGV2LCBzaXplb2YoZGV2KSwgIi9kZXYvdHR5UyVkIiwgZGV2bnVtICk7CisKKwlpZiAoIChkZXZudW0gPT0gMSkgfHwgKGRldm51bSA9PSAwKSApCisJeworCQlpZiAoICggc2lvc3RhdGUtPmZkID0gc2lvX2luaXQoIGRldiwgZGV2bnVtLCBzaW9zdGF0ZSApICkgPT0gMCApCisJCXsKKwkJCUxXSVBfREVCVUdGKFNJT19ERUJVRywgKCJzaW9fb3BlbjogRVJST1Igb3BlbmluZyBzZXJpYWwgZGV2aWNlIGRldj0lc1xuIiwgZGV2KSk7CisJCQlhYm9ydCggKTsKKwkJCXJldHVybiBOVUxMOworCQl9CisJCUxXSVBfREVCVUdGKFNJT19ERUJVRywgKCJzaW9fb3BlblslZF06IGRldj0lcyBvcGVuLlxuIiwgc2lvc3RhdGUtPmZkLCBkZXYpKTsKKwl9CisjaWYgUFBQX1NVUFBPUlQKKwllbHNlIGlmIChkZXZudW0gPT0gMikgeworCSAgICBwaWRfdCBjaGlsZHBpZDsKKwkgICAgY2hhciBuYW1lWzI1Nl07CisJICAgIGNoaWxkcGlkID0gZm9ya3B0eSgmc2lvc3RhdGUtPmZkLCBuYW1lLCBOVUxMLCBOVUxMKTsKKwkgICAgaWYoY2hpbGRwaWQgPCAwKSB7CisJCXBlcnJvcigiZm9ya3B0eSIpOworCQlleGl0ICgxKTsKKwkgICAgfQorCSAgICBpZihjaGlsZHBpZCA9PSAwKSB7CisJCWV4ZWNsKCIvdXNyL3NiaW4vcHBwZCIsICJwcHBkIiwKKwkJCSJtcy1kbnMiLCAiMTk4LjE2OC4xMDAuNyIsCisJCQkibG9jYWwiLCAiY3J0c2N0cyIsCisJCQkiZGVidWciLAorI2lmZGVmIExXSVBfUFBQX0NIQVBfVEVTVAorCQkJImF1dGgiLAorCQkJInJlcXVpcmUtY2hhcCIsCisJCQkicmVtb3RlbmFtZSIsICJsd2lwIiwKKyNlbHNlCisJCQkibm9hdXRoIiwKKyNlbmRpZgorI2lmIExXSVBfSVBWNgorCQkJIitpcHY2IiwKKyNlbmRpZgorCQkJIjE5Mi4xNjguMS4xOjE5Mi4xNjguMS4yIiwKKwkJCU5VTEwpOworCQlwZXJyb3IoImV4ZWNsIHBwcGQiKTsKKwkJZXhpdCAoMSk7CisJICAgIH0gZWxzZSB7CisJCUxXSVBfREVCVUdGKFNJT19ERUJVRywgKCJzaW9fb3BlblslZF06IHNwYXduZWQgcHBwZCBwaWQgJWQgb24gJXNcbiIsCisJCQlzaW9zdGF0ZS0+ZmQsIGNoaWxkcGlkLCBuYW1lKSk7CisJICAgIH0KKworCX0KKyNlbmRpZgorI2lmIExXSVBfSEFWRV9TTElQSUYKKwllbHNlIGlmIChkZXZudW0gPT0gMykgeworCSAgICBwaWRfdCBjaGlsZHBpZDsKKwkgICAgLyogY3JlYXRlIFBUWSBwYWlyICovCisJICAgIHNpb3N0YXRlLT5mZCA9IHBvc2l4X29wZW5wdChPX1JEV1IgfCBPX05PQ1RUWSk7CisJICAgIGlmIChzaW9zdGF0ZS0+ZmQgPCAwKSB7CisJCXBlcnJvcigib3BlbiBwdHkgbWFzdGVyIik7CisJCWV4aXQgKDEpOworCSAgICB9CisJICAgIGlmIChncmFudHB0KHNpb3N0YXRlLT5mZCkgIT0gMCkgeworCQlwZXJyb3IoImdyYW50IHB0eSBtYXN0ZXIiKTsKKwkJZXhpdCAoMSk7CisJICAgIH0KKwkgICAgaWYgKHVubG9ja3B0KHNpb3N0YXRlLT5mZCkgIT0gMCkgeworCQlwZXJyb3IoInVubG9jayBwdHkgbWFzdGVyIik7CisJCWV4aXQgKDEpOworCSAgICB9CisJICAgIExXSVBfREVCVUdGKFNJT19ERUJVRywgKCJzaW9fb3BlblslZF06IGZvciAlc1xuIiwKKwkJICAgIHNpb3N0YXRlLT5mZCwgcHRzbmFtZShzaW9zdGF0ZS0+ZmQpKSk7CisJICAgIC8qIGZvcmsgZm9yIHNsYXR0YWNoICovCisJICAgIGNoaWxkcGlkID0gZm9yaygpOworCSAgICBpZihjaGlsZHBpZCA8IDApIHsKKwkJcGVycm9yKCJmb3JrIik7CisJCWV4aXQgKDEpOworCSAgICB9CisJICAgIGlmKGNoaWxkcGlkID09IDApIHsKKwkJLyogZXN0ZWJsaXNoIFNMSVAgaW50ZXJmYWNlIG9uIGhvc3Qgc2lkZSBjb25uZWN0ZWQgdG8gUFRZIHNsYXZlICovCisJCWV4ZWNsKCIvc2Jpbi9zbGF0dGFjaCIsICJzbGF0dGFjaCIsCisJCQkiLWQiLCAiLXYiLCAiLUwiLCAiLXAiLCAic2xpcCIsCisJCQlwdHNuYW1lKHNpb3N0YXRlLT5mZCksCisJCQlOVUxMKTsKKwkJcGVycm9yKCJleGVjbCBzbGF0dGFjaCIpOworCQlleGl0ICgxKTsKKwkgICAgfSBlbHNlIHsKKwkJaW50IHJldDsKKwkJY2hhciBidWZbMTAyNF07CisJCUxXSVBfREVCVUdGKFNJT19ERUJVRywgKCJzaW9fb3BlblslZF06IHNwYXduZWQgc2xhdHRhY2ggcGlkICVkIG9uICVzXG4iLAorCQkJc2lvc3RhdGUtPmZkLCBjaGlsZHBpZCwgcHRzbmFtZShzaW9zdGF0ZS0+ZmQpKSk7CisJCS8qIHdhaXQgYSBtb21lbnQgZm9yIHNsYXR0YWNoIHN0YXJ0dXAgKi8KKwkJc2xlZXAoMSk7CisJCS8qIGNvbmZpZ3VyZSBTTElQIGludGVyZmFjZSBvbiBob3N0IHNpZGUgYXMgUDJQIGludGVyZmFjZSAqLworCQlzbnByaW50ZihidWYsIHNpemVvZihidWYpLAorCQkJIi9zYmluL2lmY29uZmlnIHNsMCBtdHUgJWQgJXMgcG9pbnRvcG9pbnQgJXMgdXAiLAorCQkJU0xJUF9NQVhfU0laRSwgIjE5Mi4xNjguMi4xIiwgIjE5Mi4xNjguMi4yIik7CisJCUxXSVBfREVCVUdGKFNJT19ERUJVRywgKCJzaW9fb3BlblslZF06IHN5c3RlbShcIiVzXCIpO1xuIiwgc2lvc3RhdGUtPmZkLCBidWYpKTsKKwkJcmV0ID0gc3lzdGVtKGJ1Zik7CisJCWlmIChyZXQgPCAwKSB7CisJCSAgICBwZXJyb3IoImlmY29uZmlnIGZhaWxlZCIpOworCQkgICAgZXhpdCgxKTsKKwkJfQorCSAgICB9CisJfQorI2VuZGlmIC8qIExXSVBfSEFWRV9TTElQSUYgKi8KKwllbHNlCisJeworCQlMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX29wZW46IGRldmljZSAlcyAoJWQpIGlzIG5vdCBzdXBwb3J0ZWRcbiIsIGRldiwgZGV2bnVtKSk7CisJCXJldHVybiBOVUxMOworCX0KKworCXJldHVybiBzaW9zdGF0ZTsKK30KKworLyoqCisqCisqLwordm9pZCBzaW9fY2hhbmdlX2JhdWQoIHNpb0JhdWRyYXRlcyBiYXVkLCBzaW9fc3RhdHVzX3QgKiBzaW9zdGF0ICkKK3sKKyAgICAvKglzaW9fc3RhdHVzX3QgKiBzaW9zdGF0ID0gKChzaW9zdHJ1Y3RfdCopbmV0aWYtPnN0YXRlKS0+c2lvOyovCisKKwlMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX2NoYW5nZV9iYXVkWyVkXVxuIiwgc2lvc3RhdC0+ZmQpKTsKKworCXN3aXRjaCAoIGJhdWQgKQorCXsKKwkJY2FzZSBTSU9fQkFVRF85NjAwOgorCQkJc2lvX3NwZWVkKCBzaW9zdGF0LT5mZCwgQjk2MDAgKTsKKwkJCWJyZWFrOworCQljYXNlIFNJT19CQVVEXzE5MjAwOgorCQkJc2lvX3NwZWVkKCBzaW9zdGF0LT5mZCwgQjE5MjAwICk7CisJCQlicmVhazsKKwkJY2FzZSBTSU9fQkFVRF8zODQwMDoKKwkJCXNpb19zcGVlZCggc2lvc3RhdC0+ZmQsIEIzODQwMCApOworCQkJYnJlYWs7CisJCWNhc2UgU0lPX0JBVURfNTc2MDA6CisJCQlzaW9fc3BlZWQoIHNpb3N0YXQtPmZkLCBCNTc2MDAgKTsKKwkJCWJyZWFrOworCQljYXNlIFNJT19CQVVEXzExNTIwMDoKKwkJCXNpb19zcGVlZCggc2lvc3RhdC0+ZmQsIEIxMTUyMDAgKTsKKwkJCWJyZWFrOworCisJCWRlZmF1bHQ6CisJCQlMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX2NoYW5nZV9iYXVkWyVkXTogVW5rbm93biBiYXVkcmF0ZSwgY29kZTolZFxuIiwKKwkJCQkJc2lvc3RhdC0+ZmQsIGJhdWQpKTsKKwkJCWJyZWFrOworCX0KK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL3RhcGlmLmMgYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9uZXRpZi90YXBpZi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmZjA3ODMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9uZXRpZi90YXBpZi5jCkBAIC0wLDAgKzEsNDMyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyAqCisgKi8KKworI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxzeXMvdWlvLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorCisjaW5jbHVkZSAibHdpcC9vcHQuaCIKKworI2luY2x1ZGUgImx3aXAvZGVidWcuaCIKKyNpbmNsdWRlICJsd2lwL2RlZi5oIgorI2luY2x1ZGUgImx3aXAvaXAuaCIKKyNpbmNsdWRlICJsd2lwL21lbS5oIgorI2luY2x1ZGUgImx3aXAvc3RhdHMuaCIKKyNpbmNsdWRlICJsd2lwL3NubXAuaCIKKyNpbmNsdWRlICJsd2lwL3BidWYuaCIKKyNpbmNsdWRlICJsd2lwL3N5cy5oIgorI2luY2x1ZGUgImx3aXAvdGltZW91dHMuaCIKKyNpbmNsdWRlICJuZXRpZi9ldGhhcnAuaCIKKyNpbmNsdWRlICJsd2lwL2V0aGlwNi5oIgorCisjaW5jbHVkZSAibmV0aWYvdGFwaWYuaCIKKworI2RlZmluZSBJRkNPTkZJR19CSU4gIi9zYmluL2lmY29uZmlnICIKKworI2lmIGRlZmluZWQoTFdJUF9VTklYX0xJTlVYKQorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPGxpbnV4L2lmLmg+CisjaW5jbHVkZSA8bGludXgvaWZfdHVuLmg+CisvKgorICogQ3JlYXRpbmcgYSB0YXAgaW50ZXJmYWNlIHJlcXVpcmVzIHNwZWNpYWwgcHJpdmlsZWdlcy4gSWYgdGhlIGludGVyZmFjZXMKKyAqIGlzIGNyZWF0ZWQgaW4gYWR2YW5jZSB3aXRoIGB0dW5jdGwgLXUgPHVzZXI+YCBpdCBjYW4gYmUgb3BlbmVkIGFzIGEgcmVndWxhcgorICogdXNlci4gVGhlIG5ldHdvcmsgbXVzdCBhbHJlYWR5IGJlIGNvbmZpZ3VyZWQuIElmIERFVlRBUF9JRiBpcyBkZWZpbmVkIGl0CisgKiB3aWxsIGJlIG9wZW5lZCBpbnN0ZWFkIG9mIGNyZWF0aW5nIGEgbmV3IHRhcCBkZXZpY2UuCisgKgorICogWW91IGNhbiBhbHNvIHVzZSBQUkVDT05GSUdVUkVEX1RBUElGIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIGRvIHNvLgorICovCisjaWZuZGVmIERFVlRBUF9ERUZBVUxUX0lGCisjZGVmaW5lIERFVlRBUF9ERUZBVUxUX0lGICJ0YXAwIgorI2VuZGlmCisjaWZuZGVmIERFVlRBUAorI2RlZmluZSBERVZUQVAgIi9kZXYvbmV0L3R1biIKKyNlbmRpZgorI2RlZmluZSBORVRNQVNLX0FSR1MgIm5ldG1hc2sgJWQuJWQuJWQuJWQiCisjZGVmaW5lIElGQ09ORklHX0FSR1MgInRhcDAgaW5ldCAlZC4lZC4lZC4lZCAiIE5FVE1BU0tfQVJHUworI2VsaWYgZGVmaW5lZChMV0lQX1VOSVhfT1BFTkJTRCkKKyNkZWZpbmUgREVWVEFQICIvZGV2L3R1bjAiCisjZGVmaW5lIE5FVE1BU0tfQVJHUyAibmV0bWFzayAlZC4lZC4lZC4lZCIKKyNkZWZpbmUgSUZDT05GSUdfQVJHUyAidHVuMCBpbmV0ICVkLiVkLiVkLiVkICIgTkVUTUFTS19BUkdTICIgbGluazAiCisjZWxzZSAvKiBvdGhlcnMgKi8KKyNkZWZpbmUgREVWVEFQICIvZGV2L3RhcDAiCisjZGVmaW5lIE5FVE1BU0tfQVJHUyAibmV0bWFzayAlZC4lZC4lZC4lZCIKKyNkZWZpbmUgSUZDT05GSUdfQVJHUyAidGFwMCBpbmV0ICVkLiVkLiVkLiVkICIgTkVUTUFTS19BUkdTCisjZW5kaWYKKworLyogRGVmaW5lIHRob3NlIHRvIGJldHRlciBkZXNjcmliZSB5b3VyIG5ldHdvcmsgaW50ZXJmYWNlLiAqLworI2RlZmluZSBJRk5BTUUwICd0JworI2RlZmluZSBJRk5BTUUxICdwJworCisjaWZuZGVmIFRBUElGX0RFQlVHCisjZGVmaW5lIFRBUElGX0RFQlVHIExXSVBfREJHX09GRgorI2VuZGlmCisKK3N0cnVjdCB0YXBpZiB7CisgIC8qIEFkZCB3aGF0ZXZlciBwZXItaW50ZXJmYWNlIHN0YXRlIHRoYXQgaXMgbmVlZGVkIGhlcmUuICovCisgIGludCBmZDsKK307CisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zLiAqLworc3RhdGljIHZvaWQgdGFwaWZfaW5wdXQoc3RydWN0IG5ldGlmICpuZXRpZik7CisjaWYgIU5PX1NZUworc3RhdGljIHZvaWQgdGFwaWZfdGhyZWFkKHZvaWQgKmFyZyk7CisjZW5kaWYgLyogIU5PX1NZUyAqLworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyB2b2lkCitsb3dfbGV2ZWxfaW5pdChzdHJ1Y3QgbmV0aWYgKm5ldGlmKQoreworICBzdHJ1Y3QgdGFwaWYgKnRhcGlmOworI2lmIExXSVBfSVBWNAorICBpbnQgcmV0OworICBjaGFyIGJ1ZlsxMDI0XTsKKyNlbmRpZiAvKiBMV0lQX0lQVjQgKi8KKyAgY2hhciAqcHJlY29uZmlndXJlZF90YXBpZiA9IGdldGVudigiUFJFQ09ORklHVVJFRF9UQVBJRiIpOworCisgIHRhcGlmID0gKHN0cnVjdCB0YXBpZiAqKW5ldGlmLT5zdGF0ZTsKKworICAvKiBPYnRhaW4gTUFDIGFkZHJlc3MgZnJvbSBuZXR3b3JrIGludGVyZmFjZS4gKi8KKworICAvKiAoV2UganVzdCBmYWtlIGFuIGFkZHJlc3MuLi4pICovCisgIG5ldGlmLT5od2FkZHJbMF0gPSAweDAyOworICBuZXRpZi0+aHdhZGRyWzFdID0gMHgxMjsKKyAgbmV0aWYtPmh3YWRkclsyXSA9IDB4MzQ7CisgIG5ldGlmLT5od2FkZHJbM10gPSAweDU2OworICBuZXRpZi0+aHdhZGRyWzRdID0gMHg3ODsKKyAgbmV0aWYtPmh3YWRkcls1XSA9IDB4YWI7CisgIG5ldGlmLT5od2FkZHJfbGVuID0gNjsKKworICAvKiBkZXZpY2UgY2FwYWJpbGl0aWVzICovCisgIG5ldGlmLT5mbGFncyA9IE5FVElGX0ZMQUdfQlJPQURDQVNUIHwgTkVUSUZfRkxBR19FVEhBUlAgfCBORVRJRl9GTEFHX0lHTVA7CisKKyAgdGFwaWYtPmZkID0gb3BlbihERVZUQVAsIE9fUkRXUik7CisgIExXSVBfREVCVUdGKFRBUElGX0RFQlVHLCAoInRhcGlmX2luaXQ6IGZkICVkXG4iLCB0YXBpZi0+ZmQpKTsKKyAgaWYgKHRhcGlmLT5mZCA9PSAtMSkgeworI2lmZGVmIExXSVBfVU5JWF9MSU5VWAorICAgIHBlcnJvcigidGFwaWZfaW5pdDogdHJ5IHJ1bm5pbmcgXCJtb2Rwcm9iZSB0dW5cIiBvciByZWJ1aWxkaW5nIHlvdXIga2VybmVsIHdpdGggQ09ORklHX1RVTjsgY2Fubm90IG9wZW4gIkRFVlRBUCk7CisjZWxzZSAvKiBMV0lQX1VOSVhfTElOVVggKi8KKyAgICBwZXJyb3IoInRhcGlmX2luaXQ6IGNhbm5vdCBvcGVuICJERVZUQVApOworI2VuZGlmIC8qIExXSVBfVU5JWF9MSU5VWCAqLworICAgIGV4aXQoMSk7CisgIH0KKworI2lmZGVmIExXSVBfVU5JWF9MSU5VWAorICB7CisgICAgc3RydWN0IGlmcmVxIGlmcjsKKyAgICBtZW1zZXQoJmlmciwgMCwgc2l6ZW9mKGlmcikpOworCisgICAgaWYgKHByZWNvbmZpZ3VyZWRfdGFwaWYpIHsKKyAgICAgIHN0cm5jcHkoaWZyLmlmcl9uYW1lLCBwcmVjb25maWd1cmVkX3RhcGlmLCBzaXplb2YoaWZyLmlmcl9uYW1lKSAtIDEpOworICAgIH0gZWxzZSB7CisgICAgICBzdHJuY3B5KGlmci5pZnJfbmFtZSwgREVWVEFQX0RFRkFVTFRfSUYsIHNpemVvZihpZnIuaWZyX25hbWUpIC0gMSk7CisgICAgfQorICAgIGlmci5pZnJfbmFtZVtzaXplb2YoaWZyLmlmcl9uYW1lKS0xXSA9IDA7IC8qIGVuc3VyZSBcMCB0ZXJtaW5hdGlvbiAqLworCisgICAgaWZyLmlmcl9mbGFncyA9IElGRl9UQVB8SUZGX05PX1BJOworICAgIGlmIChpb2N0bCh0YXBpZi0+ZmQsIFRVTlNFVElGRiwgKHZvaWQgKikgJmlmcikgPCAwKSB7CisgICAgICBwZXJyb3IoInRhcGlmX2luaXQ6ICJERVZUQVAiIGlvY3RsIFRVTlNFVElGRiIpOworICAgICAgZXhpdCgxKTsKKyAgICB9CisgIH0KKyNlbmRpZiAvKiBMV0lQX1VOSVhfTElOVVggKi8KKworICBuZXRpZl9zZXRfbGlua191cChuZXRpZik7CisKKyAgaWYgKHByZWNvbmZpZ3VyZWRfdGFwaWYgPT0gTlVMTCkgeworI2lmIExXSVBfSVBWNAorICAgIHNucHJpbnRmKGJ1ZiwgMTAyNCwgSUZDT05GSUdfQklOIElGQ09ORklHX0FSR1MsCisgICAgICAgICAgICAgaXA0X2FkZHIxKG5ldGlmX2lwNF9ndyhuZXRpZikpLAorICAgICAgICAgICAgIGlwNF9hZGRyMihuZXRpZl9pcDRfZ3cobmV0aWYpKSwKKyAgICAgICAgICAgICBpcDRfYWRkcjMobmV0aWZfaXA0X2d3KG5ldGlmKSksCisgICAgICAgICAgICAgaXA0X2FkZHI0KG5ldGlmX2lwNF9ndyhuZXRpZikpCisjaWZkZWYgTkVUTUFTS19BUkdTCisgICAgICAgICAgICAgLAorICAgICAgICAgICAgIGlwNF9hZGRyMShuZXRpZl9pcDRfbmV0bWFzayhuZXRpZikpLAorICAgICAgICAgICAgIGlwNF9hZGRyMihuZXRpZl9pcDRfbmV0bWFzayhuZXRpZikpLAorICAgICAgICAgICAgIGlwNF9hZGRyMyhuZXRpZl9pcDRfbmV0bWFzayhuZXRpZikpLAorICAgICAgICAgICAgIGlwNF9hZGRyNChuZXRpZl9pcDRfbmV0bWFzayhuZXRpZikpCisjZW5kaWYgLyogTkVUTUFTS19BUkdTICovCisgICAgICAgICAgICAgKTsKKworICAgIExXSVBfREVCVUdGKFRBUElGX0RFQlVHLCAoInRhcGlmX2luaXQ6IHN5c3RlbShcIiVzXCIpO1xuIiwgYnVmKSk7CisgICAgcmV0ID0gc3lzdGVtKGJ1Zik7CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgIHBlcnJvcigiaWZjb25maWcgZmFpbGVkIik7CisgICAgICBleGl0KDEpOworICAgIH0KKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgIHByaW50ZigiaWZjb25maWcgcmV0dXJuZWQgJWRcbiIsIHJldCk7CisgICAgfQorI2Vsc2UgLyogTFdJUF9JUFY0ICovCisgICAgcGVycm9yKCJ0b2RvOiBzdXBwb3J0IElQdjYgc3VwcG9ydCBmb3Igbm9uLXByZWNvbmZpZ3VyZWQgdGFwaWYiKTsKKyAgICBleGl0KDEpOworI2VuZGlmIC8qIExXSVBfSVBWNCAqLworICB9CisKKyNpZiAhTk9fU1lTCisgIHN5c190aHJlYWRfbmV3KCJ0YXBpZl90aHJlYWQiLCB0YXBpZl90aHJlYWQsIG5ldGlmLCBERUZBVUxUX1RIUkVBRF9TVEFDS1NJWkUsIERFRkFVTFRfVEhSRUFEX1BSSU8pOworI2VuZGlmIC8qICFOT19TWVMgKi8KK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyoKKyAqIGxvd19sZXZlbF9vdXRwdXQoKToKKyAqCisgKiBTaG91bGQgZG8gdGhlIGFjdHVhbCB0cmFuc21pc3Npb24gb2YgdGhlIHBhY2tldC4gVGhlIHBhY2tldCBpcworICogY29udGFpbmVkIGluIHRoZSBwYnVmIHRoYXQgaXMgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbi4gVGhpcyBwYnVmCisgKiBtaWdodCBiZSBjaGFpbmVkLgorICoKKyAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKK3N0YXRpYyBlcnJfdAorbG93X2xldmVsX291dHB1dChzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBzdHJ1Y3QgcGJ1ZiAqcCkKK3sKKyAgc3RydWN0IHRhcGlmICp0YXBpZiA9IChzdHJ1Y3QgdGFwaWYgKiluZXRpZi0+c3RhdGU7CisgIGNoYXIgYnVmWzE1MThdOyAvKiBtYXggcGFja2V0IHNpemUgaW5jbHVkaW5nIFZMQU4gZXhjbHVkaW5nIENSQyAqLworICBzc2l6ZV90IHdyaXR0ZW47CisKKyNpZiAwCisgIGlmICgoKGRvdWJsZSlyYW5kKCkvKGRvdWJsZSlSQU5EX01BWCkgPCAwLjIpIHsKKyAgICBwcmludGYoImRyb3Agb3V0cHV0XG4iKTsKKyAgICByZXR1cm4gRVJSX09LOyAvKiBFUlJfT0sgYmVjYXVzZSB3ZSBzaW11bGF0ZSBwYWNrZXQgbG9zcyBvbiBjYWJsZSAqLworICB9CisjZW5kaWYKKworICBpZiAocC0+dG90X2xlbiA+IHNpemVvZihidWYpKSB7CisgICAgTUlCMl9TVEFUU19ORVRJRl9JTkMobmV0aWYsIGlmb3V0ZGlzY2FyZHMpOworICAgIHBlcnJvcigidGFwaWY6IHBhY2tldCB0b28gbGFyZ2UiKTsKKyAgICByZXR1cm4gRVJSX0lGOworICB9CisKKyAgLyogaW5pdGlhdGUgdHJhbnNmZXIoKTsgKi8KKyAgcGJ1Zl9jb3B5X3BhcnRpYWwocCwgYnVmLCBwLT50b3RfbGVuLCAwKTsKKworICAvKiBzaWduYWwgdGhhdCBwYWNrZXQgc2hvdWxkIGJlIHNlbnQoKTsgKi8KKyAgd3JpdHRlbiA9IHdyaXRlKHRhcGlmLT5mZCwgYnVmLCBwLT50b3RfbGVuKTsKKyAgaWYgKHdyaXR0ZW4gPCBwLT50b3RfbGVuKSB7CisgICAgTUlCMl9TVEFUU19ORVRJRl9JTkMobmV0aWYsIGlmb3V0ZGlzY2FyZHMpOworICAgIHBlcnJvcigidGFwaWY6IHdyaXRlIik7CisgICAgcmV0dXJuIEVSUl9JRjsKKyAgfSBlbHNlIHsKKyAgICBNSUIyX1NUQVRTX05FVElGX0FERChuZXRpZiwgaWZvdXRvY3RldHMsICh1MzJfdCl3cml0dGVuKTsKKyAgICByZXR1cm4gRVJSX09LOworICB9Cit9CisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qCisgKiBsb3dfbGV2ZWxfaW5wdXQoKToKKyAqCisgKiBTaG91bGQgYWxsb2NhdGUgYSBwYnVmIGFuZCB0cmFuc2ZlciB0aGUgYnl0ZXMgb2YgdGhlIGluY29taW5nCisgKiBwYWNrZXQgZnJvbSB0aGUgaW50ZXJmYWNlIGludG8gdGhlIHBidWYuCisgKgorICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyBzdHJ1Y3QgcGJ1ZiAqCitsb3dfbGV2ZWxfaW5wdXQoc3RydWN0IG5ldGlmICpuZXRpZikKK3sKKyAgc3RydWN0IHBidWYgKnA7CisgIHUxNl90IGxlbjsKKyAgc3NpemVfdCByZWFkbGVuOworICBjaGFyIGJ1ZlsxNTE4XTsgLyogbWF4IHBhY2tldCBzaXplIGluY2x1ZGluZyBWTEFOIGV4Y2x1ZGluZyBDUkMgKi8KKyAgc3RydWN0IHRhcGlmICp0YXBpZiA9IChzdHJ1Y3QgdGFwaWYgKiluZXRpZi0+c3RhdGU7CisKKyAgLyogT2J0YWluIHRoZSBzaXplIG9mIHRoZSBwYWNrZXQgYW5kIHB1dCBpdCBpbnRvIHRoZSAibGVuIgorICAgICB2YXJpYWJsZS4gKi8KKyAgcmVhZGxlbiA9IHJlYWQodGFwaWYtPmZkLCBidWYsIHNpemVvZihidWYpKTsKKyAgaWYgKHJlYWRsZW4gPCAwKSB7CisgICAgcGVycm9yKCJyZWFkIHJldHVybmVkIC0xIik7CisgICAgZXhpdCgxKTsKKyAgfQorICBsZW4gPSAodTE2X3QpcmVhZGxlbjsKKworICBNSUIyX1NUQVRTX05FVElGX0FERChuZXRpZiwgaWZpbm9jdGV0cywgbGVuKTsKKworI2lmIDAKKyAgaWYgKCgoZG91YmxlKXJhbmQoKS8oZG91YmxlKVJBTkRfTUFYKSA8IDAuMikgeworICAgIHByaW50ZigiZHJvcFxuIik7CisgICAgcmV0dXJuIE5VTEw7CisgIH0KKyNlbmRpZgorCisgIC8qIFdlIGFsbG9jYXRlIGEgcGJ1ZiBjaGFpbiBvZiBwYnVmcyBmcm9tIHRoZSBwb29sLiAqLworICBwID0gcGJ1Zl9hbGxvYyhQQlVGX1JBVywgbGVuLCBQQlVGX1BPT0wpOworICBpZiAocCAhPSBOVUxMKSB7CisgICAgcGJ1Zl90YWtlKHAsIGJ1ZiwgbGVuKTsKKyAgICAvKiBhY2tub3dsZWRnZSB0aGF0IHBhY2tldCBoYXMgYmVlbiByZWFkKCk7ICovCisgIH0gZWxzZSB7CisgICAgLyogZHJvcCBwYWNrZXQoKTsgKi8KKyAgICBNSUIyX1NUQVRTX05FVElGX0lOQyhuZXRpZiwgaWZpbmRpc2NhcmRzKTsKKyAgICBMV0lQX0RFQlVHRihORVRJRl9ERUJVRywgKCJ0YXBpZl9pbnB1dDogY291bGQgbm90IGFsbG9jYXRlIHBidWZcbiIpKTsKKyAgfQorCisgIHJldHVybiBwOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qCisgKiB0YXBpZl9pbnB1dCgpOgorICoKKyAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCB3aGVuIGEgcGFja2V0IGlzIHJlYWR5IHRvIGJlIHJlYWQKKyAqIGZyb20gdGhlIGludGVyZmFjZS4gSXQgdXNlcyB0aGUgZnVuY3Rpb24gbG93X2xldmVsX2lucHV0KCkgdGhhdAorICogc2hvdWxkIGhhbmRsZSB0aGUgYWN0dWFsIHJlY2VwdGlvbiBvZiBieXRlcyBmcm9tIHRoZSBuZXR3b3JrCisgKiBpbnRlcmZhY2UuCisgKgorICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyB2b2lkCit0YXBpZl9pbnB1dChzdHJ1Y3QgbmV0aWYgKm5ldGlmKQoreworICBzdHJ1Y3QgcGJ1ZiAqcCA9IGxvd19sZXZlbF9pbnB1dChuZXRpZik7CisKKyAgaWYgKHAgPT0gTlVMTCkgeworI2lmIExJTktfU1RBVFMKKyAgICBMSU5LX1NUQVRTX0lOQyhsaW5rLnJlY3YpOworI2VuZGlmIC8qIExJTktfU1RBVFMgKi8KKyAgICBMV0lQX0RFQlVHRihUQVBJRl9ERUJVRywgKCJ0YXBpZl9pbnB1dDogbG93X2xldmVsX2lucHV0IHJldHVybmVkIE5VTExcbiIpKTsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAobmV0aWYtPmlucHV0KHAsIG5ldGlmKSAhPSBFUlJfT0spIHsKKyAgICBMV0lQX0RFQlVHRihORVRJRl9ERUJVRywgKCJ0YXBpZl9pbnB1dDogbmV0aWYgaW5wdXQgZXJyb3JcbiIpKTsKKyAgICBwYnVmX2ZyZWUocCk7CisgIH0KK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyoKKyAqIHRhcGlmX2luaXQoKToKKyAqCisgKiBTaG91bGQgYmUgY2FsbGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHByb2dyYW0gdG8gc2V0IHVwIHRoZQorICogbmV0d29yayBpbnRlcmZhY2UuIEl0IGNhbGxzIHRoZSBmdW5jdGlvbiBsb3dfbGV2ZWxfaW5pdCgpIHRvIGRvIHRoZQorICogYWN0dWFsIHNldHVwIG9mIHRoZSBoYXJkd2FyZS4KKyAqCisgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworZXJyX3QKK3RhcGlmX2luaXQoc3RydWN0IG5ldGlmICpuZXRpZikKK3sKKyAgc3RydWN0IHRhcGlmICp0YXBpZiA9IChzdHJ1Y3QgdGFwaWYgKiltZW1fbWFsbG9jKHNpemVvZihzdHJ1Y3QgdGFwaWYpKTsKKworICBpZiAodGFwaWYgPT0gTlVMTCkgeworICAgIExXSVBfREVCVUdGKE5FVElGX0RFQlVHLCAoInRhcGlmX2luaXQ6IG91dCBvZiBtZW1vcnkgZm9yIHRhcGlmXG4iKSk7CisgICAgcmV0dXJuIEVSUl9NRU07CisgIH0KKyAgbmV0aWYtPnN0YXRlID0gdGFwaWY7CisgIE1JQjJfSU5JVF9ORVRJRihuZXRpZiwgc25tcF9pZlR5cGVfb3RoZXIsIDEwMDAwMDAwMCk7CisKKyAgbmV0aWYtPm5hbWVbMF0gPSBJRk5BTUUwOworICBuZXRpZi0+bmFtZVsxXSA9IElGTkFNRTE7CisjaWYgTFdJUF9JUFY0CisgIG5ldGlmLT5vdXRwdXQgPSBldGhhcnBfb3V0cHV0OworI2VuZGlmIC8qIExXSVBfSVBWNCAqLworI2lmIExXSVBfSVBWNgorICBuZXRpZi0+b3V0cHV0X2lwNiA9IGV0aGlwNl9vdXRwdXQ7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisgIG5ldGlmLT5saW5rb3V0cHV0ID0gbG93X2xldmVsX291dHB1dDsKKyAgbmV0aWYtPm10dSA9IDE1MDA7CisKKyAgbG93X2xldmVsX2luaXQobmV0aWYpOworCisgIHJldHVybiBFUlJfT0s7Cit9CisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCit2b2lkCit0YXBpZl9wb2xsKHN0cnVjdCBuZXRpZiAqbmV0aWYpCit7CisgIHRhcGlmX2lucHV0KG5ldGlmKTsKK30KKworI2lmIE5PX1NZUworCitpbnQKK3RhcGlmX3NlbGVjdChzdHJ1Y3QgbmV0aWYgKm5ldGlmKQoreworICBmZF9zZXQgZmRzZXQ7CisgIGludCByZXQ7CisgIHN0cnVjdCB0aW1ldmFsIHR2OworICBzdHJ1Y3QgdGFwaWYgKnRhcGlmOworICB1MzJfdCBtc2VjcyA9IHN5c190aW1lb3V0c19zbGVlcHRpbWUoKTsKKworICB0YXBpZiA9IChzdHJ1Y3QgdGFwaWYgKiluZXRpZi0+c3RhdGU7CisKKyAgdHYudHZfc2VjID0gbXNlY3MgLyAxMDAwOworICB0di50dl91c2VjID0gKG1zZWNzICUgMTAwMCkgKiAxMDAwOworCisgIEZEX1pFUk8oJmZkc2V0KTsKKyAgRkRfU0VUKHRhcGlmLT5mZCwgJmZkc2V0KTsKKworICByZXQgPSBzZWxlY3QodGFwaWYtPmZkICsgMSwgJmZkc2V0LCBOVUxMLCBOVUxMLCAmdHYpOworICBpZiAocmV0ID4gMCkgeworICAgIHRhcGlmX2lucHV0KG5ldGlmKTsKKyAgfQorICByZXR1cm4gcmV0OworfQorCisjZWxzZSAvKiBOT19TWVMgKi8KKworc3RhdGljIHZvaWQKK3RhcGlmX3RocmVhZCh2b2lkICphcmcpCit7CisgIHN0cnVjdCBuZXRpZiAqbmV0aWY7CisgIHN0cnVjdCB0YXBpZiAqdGFwaWY7CisgIGZkX3NldCBmZHNldDsKKyAgaW50IHJldDsKKworICBuZXRpZiA9IChzdHJ1Y3QgbmV0aWYgKilhcmc7CisgIHRhcGlmID0gKHN0cnVjdCB0YXBpZiAqKW5ldGlmLT5zdGF0ZTsKKworICB3aGlsZSgxKSB7CisgICAgRkRfWkVSTygmZmRzZXQpOworICAgIEZEX1NFVCh0YXBpZi0+ZmQsICZmZHNldCk7CisKKyAgICAvKiBXYWl0IGZvciBhIHBhY2tldCB0byBhcnJpdmUuICovCisgICAgcmV0ID0gc2VsZWN0KHRhcGlmLT5mZCArIDEsICZmZHNldCwgTlVMTCwgTlVMTCwgTlVMTCk7CisKKyAgICBpZihyZXQgPT0gMSkgeworICAgICAgLyogSGFuZGxlIGluY29taW5nIHBhY2tldC4gKi8KKyAgICAgIHRhcGlmX2lucHV0KG5ldGlmKTsKKyAgICB9IGVsc2UgaWYocmV0ID09IC0xKSB7CisgICAgICBwZXJyb3IoInRhcGlmX3RocmVhZDogc2VsZWN0Iik7CisgICAgfQorICB9Cit9CisKKyNlbmRpZiAvKiBOT19TWVMgKi8KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL3ZkZWlmLmMgYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9uZXRpZi92ZGVpZi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliNmI1MGUKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9uZXRpZi92ZGVpZi5jCkBAIC0wLDAgKzEsMzQ0IEBACisvKgorICogICBWREUgKHZpcnR1YWwgZGlzdHJpYnV0ZWQgZXRoZXJuZXQpIGludGVyZmFjZSBmb3IgYWxlNG5ldAorICogICAoYmFzZWQgb24gdGFwaWYgaW50ZXJmYWNlIEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPikKKyAqICAgMjAwNSwyMDEwLDIwMTEsMjAyMyBSZW56byBEYXZvbGkgVW5pdmVyc2l0eSBvZiBCb2xvZ25hIC0gSXRhbHkKKyAqLworCisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyAqCisgKi8KKworI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDxzeXMvdWlvLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorCisjaW5jbHVkZSAibHdpcC9vcHQuaCIKKworI2luY2x1ZGUgImx3aXAvZGVidWcuaCIKKyNpbmNsdWRlICJsd2lwL2RlZi5oIgorI2luY2x1ZGUgImx3aXAvaXAuaCIKKyNpbmNsdWRlICJsd2lwL21lbS5oIgorI2luY2x1ZGUgImx3aXAvc3RhdHMuaCIKKyNpbmNsdWRlICJsd2lwL3NubXAuaCIKKyNpbmNsdWRlICJsd2lwL3BidWYuaCIKKyNpbmNsdWRlICJsd2lwL3N5cy5oIgorI2luY2x1ZGUgImx3aXAvdGltZW91dHMuaCIKKyNpbmNsdWRlICJuZXRpZi9ldGhhcnAuaCIKKyNpbmNsdWRlICJsd2lwL2V0aGlwNi5oIgorI2luY2x1ZGUgPGxpYnZkZXBsdWcuaD4KKworI2luY2x1ZGUgIm5ldGlmL3ZkZWlmLmgiCisKKy8qIERlZmluZSB0aG9zZSB0byBiZXR0ZXIgZGVzY3JpYmUgeW91ciBuZXR3b3JrIGludGVyZmFjZS4gKi8KKyNkZWZpbmUgSUZOQU1FMCAndicKKyNkZWZpbmUgSUZOQU1FMSAnZCcKKworI2lmbmRlZiBWREVJRl9ERUJVRworI2RlZmluZSBWREVJRl9ERUJVRyBMV0lQX0RCR19PRkYKKyNlbmRpZgorCitzdGF0aWMgY2hhciB2ZGVkZXNjcltdID0gImx3aXAiOworCitzdHJ1Y3QgdmRlaWYgeworICBWREVDT05OICp2ZGVjb25uOworfTsKKworLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMuICovCitzdGF0aWMgdm9pZCB2ZGVpZl9pbnB1dChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTsKKyNpZiAhTk9fU1lTCitzdGF0aWMgdm9pZCB2ZGVpZl90aHJlYWQodm9pZCAqYXJnKTsKKyNlbmRpZiAvKiAhTk9fU1lTICovCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIHZvaWQKK2xvd19sZXZlbF9pbml0KHN0cnVjdCBuZXRpZiAqbmV0aWYsIGNoYXIgKnZkZXJsKQoreworICBzdHJ1Y3QgdmRlaWYgKnZkZWlmOworICBpbnQgcmFuZGFkZHI7CisgIHN0cnVjdCB0aW1ldmFsIG5vdzsKKworICB2ZGVpZiA9IChzdHJ1Y3QgdmRlaWYgKiluZXRpZi0+c3RhdGU7CisgIGdldHRpbWVvZmRheSgmbm93LCBOVUxMKTsKKyAgc3JhbmQobm93LnR2X3NlYyArIG5vdy50dl91c2VjKTsKKyAgcmFuZGFkZHIgPSByYW5kKCk7CisKKyAgLyogT2J0YWluIE1BQyBhZGRyZXNzIGZyb20gbmV0d29yayBpbnRlcmZhY2UuICovCisKKyAgLyogKFdlIGp1c3QgZmFrZSBhbiBhZGRyZXNzLi4uKSAqLworICBuZXRpZi0+aHdhZGRyWzBdID0gMHgwMjsKKyAgbmV0aWYtPmh3YWRkclsxXSA9IDB4MjsKKyAgbmV0aWYtPmh3YWRkclsyXSA9IHJhbmRhZGRyID4+IDI0OworICBuZXRpZi0+aHdhZGRyWzNdID0gcmFuZGFkZHIgPj4gMTY7CisgIG5ldGlmLT5od2FkZHJbNF0gPSByYW5kYWRkciA+PiA4OworICBuZXRpZi0+aHdhZGRyWzVdID0gcmFuZGFkZHI7CisgIG5ldGlmLT5od2FkZHJfbGVuID0gNjsKKworICAvKiBkZXZpY2UgY2FwYWJpbGl0aWVzICovCisgIG5ldGlmLT5mbGFncyA9IE5FVElGX0ZMQUdfQlJPQURDQVNUIHwgTkVUSUZfRkxBR19FVEhBUlAgfCBORVRJRl9GTEFHX0lHTVA7CisKKyAgdmRlaWYtPnZkZWNvbm4gPSB2ZGVfb3Blbih2ZGVybCwgdmRlZGVzY3IsIE5VTEwpOworICBMV0lQX0RFQlVHRihWREVJRl9ERUJVRywgKCJ2ZGVpZl9pbml0OiBvayA9ICVkXG4iLCAhIXZkZWlmLT52ZGVjb25uKSk7CisgIGlmICh2ZGVpZi0+dmRlY29ubiA9PSBOVUxMKSB7CisgICAgcGVycm9yKCJ2ZGVpZl9pbml0OiBjYW5ub3Qgb3BlbiB2ZGUgbmV0Iik7CisgICAgZXhpdCgxKTsKKyAgfQorCisgIG5ldGlmX3NldF9saW5rX3VwKG5ldGlmKTsKKworI2lmICFOT19TWVMKKyAgc3lzX3RocmVhZF9uZXcoInZkZWlmX3RocmVhZCIsIHZkZWlmX3RocmVhZCwgbmV0aWYsIERFRkFVTFRfVEhSRUFEX1NUQUNLU0laRSwgREVGQVVMVF9USFJFQURfUFJJTyk7CisjZW5kaWYgLyogIU5PX1NZUyAqLworfQorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKgorICogbG93X2xldmVsX291dHB1dCgpOgorICoKKyAqIFNob3VsZCBkbyB0aGUgYWN0dWFsIHRyYW5zbWlzc2lvbiBvZiB0aGUgcGFja2V0LiBUaGUgcGFja2V0IGlzCisgKiBjb250YWluZWQgaW4gdGhlIHBidWYgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uLiBUaGlzIHBidWYKKyAqIG1pZ2h0IGJlIGNoYWluZWQuCisgKgorICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworc3RhdGljIGVycl90Citsb3dfbGV2ZWxfb3V0cHV0KHN0cnVjdCBuZXRpZiAqbmV0aWYsIHN0cnVjdCBwYnVmICpwKQoreworICBzdHJ1Y3QgdmRlaWYgKnZkZWlmID0gKHN0cnVjdCB2ZGVpZiAqKW5ldGlmLT5zdGF0ZTsKKyAgY2hhciBidWZbMTUxOF07IC8qIG1heCBwYWNrZXQgc2l6ZSBpbmNsdWRpbmcgVkxBTiBleGNsdWRpbmcgQ1JDICovCisgIHNzaXplX3Qgd3JpdHRlbjsKKworICBpZiAocC0+dG90X2xlbiA+IHNpemVvZihidWYpKSB7CisgICAgTUlCMl9TVEFUU19ORVRJRl9JTkMobmV0aWYsIGlmb3V0ZGlzY2FyZHMpOworICAgIHBlcnJvcigidmRlaWY6IHBhY2tldCB0b28gbGFyZ2UiKTsKKyAgICByZXR1cm4gRVJSX0lGOworICB9CisKKyAgLyogaW5pdGlhdGUgdHJhbnNmZXIoKTsgKi8KKyAgcGJ1Zl9jb3B5X3BhcnRpYWwocCwgYnVmLCBwLT50b3RfbGVuLCAwKTsKKworICAvKiBzaWduYWwgdGhhdCBwYWNrZXQgc2hvdWxkIGJlIHNlbnQoKTsgKi8KKyAgd3JpdHRlbiA9IHZkZV9zZW5kKHZkZWlmLT52ZGVjb25uLCBidWYsIHAtPnRvdF9sZW4sIDApOworICBpZiAod3JpdHRlbiA8IHAtPnRvdF9sZW4pIHsKKyAgICBNSUIyX1NUQVRTX05FVElGX0lOQyhuZXRpZiwgaWZvdXRkaXNjYXJkcyk7CisgICAgcGVycm9yKCJ2ZGVpZjogd3JpdGUiKTsKKyAgICByZXR1cm4gRVJSX0lGOworICB9IGVsc2UgeworICAgIE1JQjJfU1RBVFNfTkVUSUZfQUREKG5ldGlmLCBpZm91dG9jdGV0cywgKHUzMl90KXdyaXR0ZW4pOworICAgIHJldHVybiBFUlJfT0s7CisgIH0KK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyoKKyAqIGxvd19sZXZlbF9pbnB1dCgpOgorICoKKyAqIFNob3VsZCBhbGxvY2F0ZSBhIHBidWYgYW5kIHRyYW5zZmVyIHRoZSBieXRlcyBvZiB0aGUgaW5jb21pbmcKKyAqIHBhY2tldCBmcm9tIHRoZSBpbnRlcmZhY2UgaW50byB0aGUgcGJ1Zi4KKyAqCisgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworc3RhdGljIHN0cnVjdCBwYnVmICoKK2xvd19sZXZlbF9pbnB1dChzdHJ1Y3QgbmV0aWYgKm5ldGlmKQoreworICBzdHJ1Y3QgcGJ1ZiAqcDsKKyAgdTE2X3QgbGVuOworICBzc2l6ZV90IHJlYWRsZW47CisgIGNoYXIgYnVmWzE1MThdOyAvKiBtYXggcGFja2V0IHNpemUgaW5jbHVkaW5nIFZMQU4gZXhjbHVkaW5nIENSQyAqLworICBzdHJ1Y3QgdmRlaWYgKnZkZWlmID0gKHN0cnVjdCB2ZGVpZiAqKW5ldGlmLT5zdGF0ZTsKKworICAvKiBPYnRhaW4gdGhlIHNpemUgb2YgdGhlIHBhY2tldCBhbmQgcHV0IGl0IGludG8gdGhlICJsZW4iCisgICAgIHZhcmlhYmxlLiAqLworICByZWFkbGVuID0gdmRlX3JlY3YodmRlaWYtPnZkZWNvbm4sIGJ1Ziwgc2l6ZW9mKGJ1ZiksIDApOworICBpZiAocmVhZGxlbiA8IDApIHsKKyAgICBwZXJyb3IoInJlYWQgcmV0dXJuZWQgLTEiKTsKKyAgICBleGl0KDEpOworICB9CisgIGxlbiA9ICh1MTZfdClyZWFkbGVuOworCisgIE1JQjJfU1RBVFNfTkVUSUZfQUREKG5ldGlmLCBpZmlub2N0ZXRzLCBsZW4pOworCisgIC8qIFdlIGFsbG9jYXRlIGEgcGJ1ZiBjaGFpbiBvZiBwYnVmcyBmcm9tIHRoZSBwb29sLiAqLworICBwID0gcGJ1Zl9hbGxvYyhQQlVGX1JBVywgbGVuLCBQQlVGX1BPT0wpOworICBpZiAocCAhPSBOVUxMKSB7CisgICAgcGJ1Zl90YWtlKHAsIGJ1ZiwgbGVuKTsKKyAgICAvKiBhY2tub3dsZWRnZSB0aGF0IHBhY2tldCBoYXMgYmVlbiByZWFkKCk7ICovCisgIH0gZWxzZSB7CisgICAgLyogZHJvcCBwYWNrZXQoKTsgKi8KKyAgICBNSUIyX1NUQVRTX05FVElGX0lOQyhuZXRpZiwgaWZpbmRpc2NhcmRzKTsKKyAgICBMV0lQX0RFQlVHRihORVRJRl9ERUJVRywgKCJ2ZGVpZl9pbnB1dDogY291bGQgbm90IGFsbG9jYXRlIHBidWZcbiIpKTsKKyAgfQorCisgIHJldHVybiBwOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qCisgKiB2ZGVpZl9pbnB1dCgpOgorICoKKyAqIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCB3aGVuIGEgcGFja2V0IGlzIHJlYWR5IHRvIGJlIHJlYWQKKyAqIGZyb20gdGhlIGludGVyZmFjZS4gSXQgdXNlcyB0aGUgZnVuY3Rpb24gbG93X2xldmVsX2lucHV0KCkgdGhhdAorICogc2hvdWxkIGhhbmRsZSB0aGUgYWN0dWFsIHJlY2VwdGlvbiBvZiBieXRlcyBmcm9tIHRoZSBuZXR3b3JrCisgKiBpbnRlcmZhY2UuCisgKgorICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3N0YXRpYyB2b2lkCit2ZGVpZl9pbnB1dChzdHJ1Y3QgbmV0aWYgKm5ldGlmKQoreworICBzdHJ1Y3QgcGJ1ZiAqcCA9IGxvd19sZXZlbF9pbnB1dChuZXRpZik7CisKKyAgaWYgKHAgPT0gTlVMTCkgeworI2lmIExJTktfU1RBVFMKKyAgICBMSU5LX1NUQVRTX0lOQyhsaW5rLnJlY3YpOworI2VuZGlmIC8qIExJTktfU1RBVFMgKi8KKyAgICBMV0lQX0RFQlVHRihWREVJRl9ERUJVRywgKCJ2ZGVpZl9pbnB1dDogbG93X2xldmVsX2lucHV0IHJldHVybmVkIE5VTExcbiIpKTsKKyAgICByZXR1cm47CisgIH0KKworICBpZiAobmV0aWYtPmlucHV0KHAsIG5ldGlmKSAhPSBFUlJfT0spIHsKKyAgICBMV0lQX0RFQlVHRihORVRJRl9ERUJVRywgKCJ2ZGVpZl9pbnB1dDogbmV0aWYgaW5wdXQgZXJyb3JcbiIpKTsKKyAgICBwYnVmX2ZyZWUocCk7CisgIH0KK30KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyoKKyAqIHZkZWlmX2luaXQoKToKKyAqCisgKiBTaG91bGQgYmUgY2FsbGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHByb2dyYW0gdG8gc2V0IHVwIHRoZQorICogbmV0d29yayBpbnRlcmZhY2UuIEl0IGNhbGxzIHRoZSBmdW5jdGlvbiBsb3dfbGV2ZWxfaW5pdCgpIHRvIGRvIHRoZQorICogYWN0dWFsIHNldHVwIG9mIHRoZSBoYXJkd2FyZS4KKyAqCisgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworZXJyX3QKK3ZkZWlmX2luaXQoc3RydWN0IG5ldGlmICpuZXRpZikKK3sKKyAgY2hhciAqdmRlcmwgPSAoY2hhciAqKSBuZXRpZi0+c3RhdGU7CisgIHN0cnVjdCB2ZGVpZiAqdmRlaWYgPSAoc3RydWN0IHZkZWlmICopbWVtX21hbGxvYyhzaXplb2Yoc3RydWN0IHZkZWlmKSk7CisKKyAgaWYgKHZkZWlmID09IE5VTEwpIHsKKyAgICBMV0lQX0RFQlVHRihORVRJRl9ERUJVRywgKCJ2ZGVpZl9pbml0OiBvdXQgb2YgbWVtb3J5IGZvciB2ZGVpZlxuIikpOworICAgIHJldHVybiBFUlJfTUVNOworICB9CisgIG5ldGlmLT5zdGF0ZSA9IHZkZWlmOworICBNSUIyX0lOSVRfTkVUSUYobmV0aWYsIHNubXBfaWZUeXBlX290aGVyLCAxMDAwMDAwMDApOworCisgIG5ldGlmLT5uYW1lWzBdID0gSUZOQU1FMDsKKyAgbmV0aWYtPm5hbWVbMV0gPSBJRk5BTUUxOworI2lmIExXSVBfSVBWNAorICBuZXRpZi0+b3V0cHV0ID0gZXRoYXJwX291dHB1dDsKKyNlbmRpZiAvKiBMV0lQX0lQVjQgKi8KKyNpZiBMV0lQX0lQVjYKKyAgbmV0aWYtPm91dHB1dF9pcDYgPSBldGhpcDZfb3V0cHV0OworI2VuZGlmIC8qIExXSVBfSVBWNiAqLworICBuZXRpZi0+bGlua291dHB1dCA9IGxvd19sZXZlbF9vdXRwdXQ7CisgIG5ldGlmLT5tdHUgPSAxNTAwOworCisgIGxvd19sZXZlbF9pbml0KG5ldGlmLCB2ZGVybCk7CisKKyAgcmV0dXJuIEVSUl9PSzsKK30KKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK3ZvaWQKK3ZkZWlmX3BvbGwoc3RydWN0IG5ldGlmICpuZXRpZikKK3sKKyAgdmRlaWZfaW5wdXQobmV0aWYpOworfQorCisjaWYgTk9fU1lTCisKK2ludAordmRlaWZfc2VsZWN0KHN0cnVjdCBuZXRpZiAqbmV0aWYpCit7CisgIGZkX3NldCBmZHNldDsKKyAgaW50IHJldDsKKyAgc3RydWN0IHRpbWV2YWwgdHY7CisgIHN0cnVjdCB2ZGVpZiAqdmRlaWY7CisgIHUzMl90IG1zZWNzID0gc3lzX3RpbWVvdXRzX3NsZWVwdGltZSgpOworICBpbnQgZGF0YWZkOworCisgIHZkZWlmID0gKHN0cnVjdCB2ZGVpZiAqKW5ldGlmLT5zdGF0ZTsKKyAgZGF0YWZkID0gdmRlX2RhdGFmZCh2ZGVpZi0+dmRlY29ubik7CisKKyAgdHYudHZfc2VjID0gbXNlY3MgLyAxMDAwOworICB0di50dl91c2VjID0gKG1zZWNzICUgMTAwMCkgKiAxMDAwOworCisgIEZEX1pFUk8oJmZkc2V0KTsKKyAgRkRfU0VUKGRhdGFmZCwgJmZkc2V0KTsKKworICByZXQgPSBzZWxlY3QoZGF0YWZkICsgMSwgJmZkc2V0LCBOVUxMLCBOVUxMLCAmdHYpOworICBpZiAocmV0ID4gMCkgeworICAgIHZkZWlmX2lucHV0KG5ldGlmKTsKKyAgfQorICByZXR1cm4gcmV0OworfQorCisjZWxzZSAvKiBOT19TWVMgKi8KKworc3RhdGljIHZvaWQKK3ZkZWlmX3RocmVhZCh2b2lkICphcmcpCit7CisgIHN0cnVjdCBuZXRpZiAqbmV0aWY7CisgIHN0cnVjdCB2ZGVpZiAqdmRlaWY7CisgIGZkX3NldCBmZHNldDsKKyAgaW50IHJldDsKKyAgaW50IGRhdGFmZDsKKworICBuZXRpZiA9IChzdHJ1Y3QgbmV0aWYgKilhcmc7CisgIHZkZWlmID0gKHN0cnVjdCB2ZGVpZiAqKW5ldGlmLT5zdGF0ZTsKKyAgZGF0YWZkID0gdmRlX2RhdGFmZCh2ZGVpZi0+dmRlY29ubik7CisKKyAgd2hpbGUoMSkgeworICAgIEZEX1pFUk8oJmZkc2V0KTsKKyAgICBGRF9TRVQoZGF0YWZkLCAmZmRzZXQpOworCisgICAgLyogV2FpdCBmb3IgYSBwYWNrZXQgdG8gYXJyaXZlLiAqLworICAgIHJldCA9IHNlbGVjdChkYXRhZmQgKyAxLCAmZmRzZXQsIE5VTEwsIE5VTEwsIE5VTEwpOworCisgICAgaWYocmV0ID09IDEpIHsKKyAgICAgIC8qIEhhbmRsZSBpbmNvbWluZyBwYWNrZXQuICovCisgICAgICB2ZGVpZl9pbnB1dChuZXRpZik7CisgICAgfSBlbHNlIGlmKHJldCA9PSAtMSkgeworICAgICAgcGVycm9yKCJ2ZGVpZl90aHJlYWQ6IHNlbGVjdCIpOworICAgIH0KKyAgfQorfQorCisjZW5kaWYgLyogTk9fU1lTICovCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9wZXJmLmMgYi9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9wZXJmLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmVkNDYxNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L3BlcmYuYwpAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLCAKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIAorICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICogCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworCisjaW5jbHVkZSAiYXJjaC9wZXJmLmgiCisKKyNpbmNsdWRlIDxzdGRpby5oPgorCitzdGF0aWMgRklMRSAqZjsKKwordm9pZAorcGVyZl9wcmludCh1bnNpZ25lZCBsb25nIGMxbCwgdW5zaWduZWQgbG9uZyBjMWgsCisJICAgdW5zaWduZWQgbG9uZyBjMmwsIHVuc2lnbmVkIGxvbmcgYzJoLAorCSAgIGNoYXIgKmtleSkKK3sKKyAgdW5zaWduZWQgbG9uZyBzdWJfbXMsIHN1Yl9sczsKKyAgCisgIHN1Yl9tcyA9IGMyaCAtIGMxaDsKKyAgc3ViX2xzID0gYzJsIC0gYzFsOworICBpZiAoYzJsIDwgYzFsKSBzdWJfbXMtLTsKKyAgZnByaW50ZihmLCAiJXM6ICUuOGx1JS44bHVcbiIsIGtleSwgc3ViX21zLCBzdWJfbHMpOworICBmZmx1c2goTlVMTCk7Cit9CisKK3ZvaWQKK3BlcmZfcHJpbnRfdGltZXMoc3RydWN0IHRtcyAqc3RhcnQsIHN0cnVjdCB0bXMgKmVuZCwgY2hhciAqa2V5KQoreworICBmcHJpbnRmKGYsICIlczogJWx1XG4iLCBrZXksIGVuZC0+dG1zX3N0aW1lIC0gc3RhcnQtPnRtc19zdGltZSk7CisgIGZmbHVzaChOVUxMKTsgIAorfQorCit2b2lkCitwZXJmX2luaXQoY2hhciAqZm5hbWUpCit7CisgIGYgPSBmb3BlbihmbmFtZSwgInciKTsgIAorfQorCQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy91bml4L3BvcnQvc3lzX2FyY2guYyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L3N5c19hcmNoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUwOTRlOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L3N5c19hcmNoLmMKQEAgLTAsMCArMSw4NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworCisvKgorICogV2VkIEFwciAxNyAxNjowNToyOSBFRFQgMjAwMiAoSmFtZXMgUm90aCkKKyAqCisgKiAgLSBGaXhlZCBhbiB1bmxpa2VseSBzeXNfdGhyZWFkX25ldygpIHJhY2UgY29uZGl0aW9uLgorICoKKyAqICAtIE1hZGUgY3VycmVudF90aHJlYWQoKSB3b3JrIHdpdGggdGhyZWFkcyB3aGljaCB3aGVyZQorICogICAgbm90IGNyZWF0ZWQgd2l0aCBzeXNfdGhyZWFkX25ldygpLiAgVGhpcyBpbmNsdWRlcworICogICAgdGhlIG1haW4gdGhyZWFkIGFuZCB0aHJlYWRzIG1hZGUgd2l0aCBwdGhyZWFkX2NyZWF0ZSgpLgorICoKKyAqICAtIENhdGNoIG92ZXJmbG93cyB3aGVyZSBtb3JlIHRoYW4gU1lTX01CT1hfU0laRSBtZXNzYWdlcworICogICAgYXJlIHdhaXRpbmcgdG8gYmUgcmVhZC4gIFRoZSBzeXNfbWJveF9wb3N0KCkgcm91dGluZQorICogICAgd2lsbCBibG9jayB1bnRpbCB0aGVyZSBpcyBtb3JlIHJvb20gaW5zdGVhZCBvZiBqdXN0CisgKiAgICBsZWFraW5nIG1lc3NhZ2VzLgorICovCisjZGVmaW5lIF9HTlVfU09VUkNFIC8qIHB1bGwgaW4gcHRocmVhZF9zZXRuYW1lX25wKCkgb24gTGludXggKi8KKworI2luY2x1ZGUgImx3aXAvZGVidWcuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpbmNsdWRlICJsd2lwL2RlZi5oIgorCisjaWZkZWYgTFdJUF9VTklYX01BQ0gKKyNpbmNsdWRlIDxtYWNoL21hY2guaD4KKyNpbmNsdWRlIDxtYWNoL21hY2hfdGltZS5oPgorI2VuZGlmCisKKyNpbmNsdWRlICJsd2lwL3N5cy5oIgorI2luY2x1ZGUgImx3aXAvb3B0LmgiCisjaW5jbHVkZSAibHdpcC9zdGF0cy5oIgorI2luY2x1ZGUgImx3aXAvdGNwaXAuaCIKKworI2lmIExXSVBfTkVUQ09OTl9TRU1fUEVSX1RIUkVBRAorLyogcHRocmVhZCBrZXkgdG8gKm91ciogdGhyZWFkIGxvY2FsIHN0b3JhZ2UgZW50cnkgKi8KK3N0YXRpYyBwdGhyZWFkX2tleV90IHN5c190aHJlYWRfc2VtX2tleTsKKyNlbmRpZgorCisvKiBSZXR1cm4gY29kZSBmb3IgYW4gaW50ZXJydXB0ZWQgdGltZWQgd2FpdCAqLworI2RlZmluZSBTWVNfQVJDSF9JTlRSIDB4ZmZmZmZmZmVVTAorCit1MzJfdAorbHdpcF9wb3J0X3JhbmQodm9pZCkKK3sKKyAgcmV0dXJuICh1MzJfdClyYW5kKCk7Cit9CisKK3N0YXRpYyB2b2lkCitnZXRfbW9ub3RvbmljX3RpbWUoc3RydWN0IHRpbWVzcGVjICp0cykKK3sKKyNpZmRlZiBMV0lQX1VOSVhfTUFDSAorICAvKiBkYXJ3aW4gaW1wbCAobm8gQ0xPQ0tfTU9OT1RPTklDKSAqLworICB1NjRfdCB0ID0gbWFjaF9hYnNvbHV0ZV90aW1lKCk7CisgIG1hY2hfdGltZWJhc2VfaW5mb19kYXRhX3QgdGltZWJhc2VfaW5mbyA9IHswLCAwfTsKKyAgbWFjaF90aW1lYmFzZV9pbmZvKCZ0aW1lYmFzZV9pbmZvKTsKKyAgdTY0X3QgbmFubyA9ICh0ICogdGltZWJhc2VfaW5mby5udW1lcikgLyAodGltZWJhc2VfaW5mby5kZW5vbSk7CisgIHU2NF90IHNlYyA9IG5hbm8vMTAwMDAwMDAwMEw7CisgIG5hbm8gLT0gc2VjICogMTAwMDAwMDAwMEw7CisgIHRzLT50dl9zZWMgPSBzZWM7CisgIHRzLT50dl9uc2VjID0gbmFubzsKKyNlbHNlCisgIGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCB0cyk7CisjZW5kaWYKK30KKworI2lmIFNZU19MSUdIVFdFSUdIVF9QUk9UCitzdGF0aWMgcHRocmVhZF9tdXRleF90IGx3cHJvdF9tdXRleCA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CitzdGF0aWMgcHRocmVhZF90IGx3cHJvdF90aHJlYWQgPSAocHRocmVhZF90KTB4REVBRDsKK3N0YXRpYyBpbnQgbHdwcm90X2NvdW50ID0gMDsKKyNlbmRpZiAvKiBTWVNfTElHSFRXRUlHSFRfUFJPVCAqLworCisjaWYgIU5PX1NZUworCitzdGF0aWMgc3RydWN0IHN5c190aHJlYWQgKnRocmVhZHMgPSBOVUxMOworc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCB0aHJlYWRzX211dGV4ID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKKworc3RydWN0IHN5c19tYm94X21zZyB7CisgIHN0cnVjdCBzeXNfbWJveF9tc2cgKm5leHQ7CisgIHZvaWQgKm1zZzsKK307CisKKyNkZWZpbmUgU1lTX01CT1hfU0laRSAxMjgKKworc3RydWN0IHN5c19tYm94IHsKKyAgaW50IGZpcnN0LCBsYXN0OworICB2b2lkICptc2dzW1NZU19NQk9YX1NJWkVdOworICBzdHJ1Y3Qgc3lzX3NlbSAqbm90X2VtcHR5OworICBzdHJ1Y3Qgc3lzX3NlbSAqbm90X2Z1bGw7CisgIHN0cnVjdCBzeXNfc2VtICptdXRleDsKKyAgaW50IHdhaXRfc2VuZDsKK307CisKK3N0cnVjdCBzeXNfc2VtIHsKKyAgdW5zaWduZWQgaW50IGM7CisgIHB0aHJlYWRfY29uZGF0dHJfdCBjb25kYXR0cjsKKyAgcHRocmVhZF9jb25kX3QgY29uZDsKKyAgcHRocmVhZF9tdXRleF90IG11dGV4OworfTsKKworc3RydWN0IHN5c19tdXRleCB7CisgIHB0aHJlYWRfbXV0ZXhfdCBtdXRleDsKK307CisKK3N0cnVjdCBzeXNfdGhyZWFkIHsKKyAgc3RydWN0IHN5c190aHJlYWQgKm5leHQ7CisgIHB0aHJlYWRfdCBwdGhyZWFkOworfTsKKworc3RhdGljIHN0cnVjdCBzeXNfc2VtICpzeXNfc2VtX25ld19pbnRlcm5hbCh1OF90IGNvdW50KTsKK3N0YXRpYyB2b2lkIHN5c19zZW1fZnJlZV9pbnRlcm5hbChzdHJ1Y3Qgc3lzX3NlbSAqc2VtKTsKKworc3RhdGljIHUzMl90IGNvbmRfd2FpdChwdGhyZWFkX2NvbmRfdCAqIGNvbmQsIHB0aHJlYWRfbXV0ZXhfdCAqIG11dGV4LAorICAgICAgICAgICAgICAgICAgICAgICB1MzJfdCB0aW1lb3V0KTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBUaHJlYWRzICovCitzdGF0aWMgc3RydWN0IHN5c190aHJlYWQgKgoraW50cm9kdWNlX3RocmVhZChwdGhyZWFkX3QgaWQpCit7CisgIHN0cnVjdCBzeXNfdGhyZWFkICp0aHJlYWQ7CisKKyAgdGhyZWFkID0gKHN0cnVjdCBzeXNfdGhyZWFkICopbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc3lzX3RocmVhZCkpOworCisgIGlmICh0aHJlYWQgIT0gTlVMTCkgeworICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmdGhyZWFkc19tdXRleCk7CisgICAgdGhyZWFkLT5uZXh0ID0gdGhyZWFkczsKKyAgICB0aHJlYWQtPnB0aHJlYWQgPSBpZDsKKyAgICB0aHJlYWRzID0gdGhyZWFkOworICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ0aHJlYWRzX211dGV4KTsKKyAgfQorCisgIHJldHVybiB0aHJlYWQ7Cit9CisKK3N0cnVjdCB0aHJlYWRfd3JhcHBlcl9kYXRhCit7CisgIGx3aXBfdGhyZWFkX2ZuIGZ1bmN0aW9uOworICB2b2lkICphcmc7Cit9OworCitzdGF0aWMgdm9pZCAqCit0aHJlYWRfd3JhcHBlcih2b2lkICphcmcpCit7CisgIHN0cnVjdCB0aHJlYWRfd3JhcHBlcl9kYXRhICp0aHJlYWRfZGF0YSA9IChzdHJ1Y3QgdGhyZWFkX3dyYXBwZXJfZGF0YSAqKWFyZzsKKworICB0aHJlYWRfZGF0YS0+ZnVuY3Rpb24odGhyZWFkX2RhdGEtPmFyZyk7CisKKyAgLyogd2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlICovCisgIGZyZWUoYXJnKTsKKyAgcmV0dXJuIE5VTEw7Cit9CisKK3N5c190aHJlYWRfdAorc3lzX3RocmVhZF9uZXcoY29uc3QgY2hhciAqbmFtZSwgbHdpcF90aHJlYWRfZm4gZnVuY3Rpb24sIHZvaWQgKmFyZywgaW50IHN0YWNrc2l6ZSwgaW50IHByaW8pCit7CisgIGludCBjb2RlOworICBwdGhyZWFkX3QgdG1wOworICBzdHJ1Y3Qgc3lzX3RocmVhZCAqc3QgPSBOVUxMOworICBzdHJ1Y3QgdGhyZWFkX3dyYXBwZXJfZGF0YSAqdGhyZWFkX2RhdGE7CisgIExXSVBfVU5VU0VEX0FSRyhuYW1lKTsKKyAgTFdJUF9VTlVTRURfQVJHKHN0YWNrc2l6ZSk7CisgIExXSVBfVU5VU0VEX0FSRyhwcmlvKTsKKworICB0aHJlYWRfZGF0YSA9IChzdHJ1Y3QgdGhyZWFkX3dyYXBwZXJfZGF0YSAqKW1hbGxvYyhzaXplb2Yoc3RydWN0IHRocmVhZF93cmFwcGVyX2RhdGEpKTsKKyAgdGhyZWFkX2RhdGEtPmFyZyA9IGFyZzsKKyAgdGhyZWFkX2RhdGEtPmZ1bmN0aW9uID0gZnVuY3Rpb247CisgIGNvZGUgPSBwdGhyZWFkX2NyZWF0ZSgmdG1wLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZF93cmFwcGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkX2RhdGEpOworCisjaWZkZWYgTFdJUF9VTklYX0xJTlVYCisgIHB0aHJlYWRfc2V0bmFtZV9ucCh0bXAsIG5hbWUpOworI2VuZGlmCisKKyAgaWYgKDAgPT0gY29kZSkgeworICAgIHN0ID0gaW50cm9kdWNlX3RocmVhZCh0bXApOworICB9CisKKyAgaWYgKE5VTEwgPT0gc3QpIHsKKyAgICBMV0lQX0RFQlVHRihTWVNfREVCVUcsICgic3lzX3RocmVhZF9uZXc6IHB0aHJlYWRfY3JlYXRlICVkLCBzdCA9IDB4JWx4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICBjb2RlLCAodW5zaWduZWQgbG9uZylzdCkpOworICAgIGFib3J0KCk7CisgIH0KKyAgcmV0dXJuIHN0OworfQorCisjaWYgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkcKK3N0YXRpYyBwdGhyZWFkX3QgbHdpcF9jb3JlX2xvY2tfaG9sZGVyX3RocmVhZF9pZDsKK3ZvaWQgc3lzX2xvY2tfdGNwaXBfY29yZSh2b2lkKQoreworICBzeXNfbXV0ZXhfbG9jaygmbG9ja190Y3BpcF9jb3JlKTsKKyAgbHdpcF9jb3JlX2xvY2tfaG9sZGVyX3RocmVhZF9pZCA9IHB0aHJlYWRfc2VsZigpOworfQorCit2b2lkIHN5c191bmxvY2tfdGNwaXBfY29yZSh2b2lkKQoreworICBsd2lwX2NvcmVfbG9ja19ob2xkZXJfdGhyZWFkX2lkID0gMDsKKyAgc3lzX211dGV4X3VubG9jaygmbG9ja190Y3BpcF9jb3JlKTsKK30KKyNlbmRpZiAvKiBMV0lQX1RDUElQX0NPUkVfTE9DS0lORyAqLworCitzdGF0aWMgcHRocmVhZF90IGx3aXBfdGNwaXBfdGhyZWFkX2lkOwordm9pZCBzeXNfbWFya190Y3BpcF90aHJlYWQodm9pZCkKK3sKKyAgbHdpcF90Y3BpcF90aHJlYWRfaWQgPSBwdGhyZWFkX3NlbGYoKTsKK30KKwordm9pZCBzeXNfY2hlY2tfY29yZV9sb2NraW5nKHZvaWQpCit7CisgIC8qIEVtYmVkZGVkIHN5c3RlbXMgc2hvdWxkIGNoZWNrIHdlIGFyZSBOT1QgaW4gYW4gaW50ZXJydXB0IGNvbnRleHQgaGVyZSAqLworCisgIGlmIChsd2lwX3RjcGlwX3RocmVhZF9pZCAhPSAwKSB7CisgICAgcHRocmVhZF90IGN1cnJlbnRfdGhyZWFkX2lkID0gcHRocmVhZF9zZWxmKCk7CisKKyNpZiBMV0lQX1RDUElQX0NPUkVfTE9DS0lORworICAgIExXSVBfQVNTRVJUKCJGdW5jdGlvbiBjYWxsZWQgd2l0aG91dCBjb3JlIGxvY2siLCBjdXJyZW50X3RocmVhZF9pZCA9PSBsd2lwX2NvcmVfbG9ja19ob2xkZXJfdGhyZWFkX2lkKTsKKyNlbHNlIC8qIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HICovCisgICAgTFdJUF9BU1NFUlQoIkZ1bmN0aW9uIGNhbGxlZCBmcm9tIHdyb25nIHRocmVhZCIsIGN1cnJlbnRfdGhyZWFkX2lkID09IGx3aXBfdGNwaXBfdGhyZWFkX2lkKTsKKyNlbmRpZiAvKiBMV0lQX1RDUElQX0NPUkVfTE9DS0lORyAqLworICB9Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogTWFpbGJveCAqLworZXJyX3QKK3N5c19tYm94X25ldyhzdHJ1Y3Qgc3lzX21ib3ggKiptYiwgaW50IHNpemUpCit7CisgIHN0cnVjdCBzeXNfbWJveCAqbWJveDsKKyAgTFdJUF9VTlVTRURfQVJHKHNpemUpOworCisgIG1ib3ggPSAoc3RydWN0IHN5c19tYm94ICopbWFsbG9jKHNpemVvZihzdHJ1Y3Qgc3lzX21ib3gpKTsKKyAgaWYgKG1ib3ggPT0gTlVMTCkgeworICAgIHJldHVybiBFUlJfTUVNOworICB9CisgIG1ib3gtPmZpcnN0ID0gbWJveC0+bGFzdCA9IDA7CisgIG1ib3gtPm5vdF9lbXB0eSA9IHN5c19zZW1fbmV3X2ludGVybmFsKDApOworICBtYm94LT5ub3RfZnVsbCA9IHN5c19zZW1fbmV3X2ludGVybmFsKDApOworICBtYm94LT5tdXRleCA9IHN5c19zZW1fbmV3X2ludGVybmFsKDEpOworICBtYm94LT53YWl0X3NlbmQgPSAwOworCisgIFNZU19TVEFUU19JTkNfVVNFRChtYm94KTsKKyAgKm1iID0gbWJveDsKKyAgcmV0dXJuIEVSUl9PSzsKK30KKwordm9pZAorc3lzX21ib3hfZnJlZShzdHJ1Y3Qgc3lzX21ib3ggKiptYikKK3sKKyAgaWYgKChtYiAhPSBOVUxMKSAmJiAoKm1iICE9IFNZU19NQk9YX05VTEwpKSB7CisgICAgc3RydWN0IHN5c19tYm94ICptYm94ID0gKm1iOworICAgIFNZU19TVEFUU19ERUMobWJveC51c2VkKTsKKyAgICBzeXNfYXJjaF9zZW1fd2FpdCgmbWJveC0+bXV0ZXgsIDApOworCisgICAgc3lzX3NlbV9mcmVlX2ludGVybmFsKG1ib3gtPm5vdF9lbXB0eSk7CisgICAgc3lzX3NlbV9mcmVlX2ludGVybmFsKG1ib3gtPm5vdF9mdWxsKTsKKyAgICBzeXNfc2VtX2ZyZWVfaW50ZXJuYWwobWJveC0+bXV0ZXgpOworICAgIG1ib3gtPm5vdF9lbXB0eSA9IG1ib3gtPm5vdF9mdWxsID0gbWJveC0+bXV0ZXggPSBOVUxMOworICAgIC8qICBMV0lQX0RFQlVHRigic3lzX21ib3hfZnJlZTogbWJveCAweCVseFxuIiwgbWJveCk7ICovCisgICAgZnJlZShtYm94KTsKKyAgfQorfQorCitlcnJfdAorc3lzX21ib3hfdHJ5cG9zdChzdHJ1Y3Qgc3lzX21ib3ggKiptYiwgdm9pZCAqbXNnKQoreworICB1OF90IGZpcnN0OworICBzdHJ1Y3Qgc3lzX21ib3ggKm1ib3g7CisgIExXSVBfQVNTRVJUKCJpbnZhbGlkIG1ib3giLCAobWIgIT0gTlVMTCkgJiYgKCptYiAhPSBOVUxMKSk7CisgIG1ib3ggPSAqbWI7CisKKyAgc3lzX2FyY2hfc2VtX3dhaXQoJm1ib3gtPm11dGV4LCAwKTsKKworICBMV0lQX0RFQlVHRihTWVNfREVCVUcsICgic3lzX21ib3hfdHJ5cG9zdDogbWJveCAlcCBtc2cgJXBcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopbWJveCwgKHZvaWQgKiltc2cpKTsKKworICBpZiAoKG1ib3gtPmxhc3QgKyAxKSA+PSAobWJveC0+Zmlyc3QgKyBTWVNfTUJPWF9TSVpFKSkgeworICAgIHN5c19zZW1fc2lnbmFsKCZtYm94LT5tdXRleCk7CisgICAgcmV0dXJuIEVSUl9NRU07CisgIH0KKworICBtYm94LT5tc2dzW21ib3gtPmxhc3QgJSBTWVNfTUJPWF9TSVpFXSA9IG1zZzsKKworICBpZiAobWJveC0+bGFzdCA9PSBtYm94LT5maXJzdCkgeworICAgIGZpcnN0ID0gMTsKKyAgfSBlbHNlIHsKKyAgICBmaXJzdCA9IDA7CisgIH0KKworICBtYm94LT5sYXN0Kys7CisKKyAgaWYgKGZpcnN0KSB7CisgICAgc3lzX3NlbV9zaWduYWwoJm1ib3gtPm5vdF9lbXB0eSk7CisgIH0KKworICBzeXNfc2VtX3NpZ25hbCgmbWJveC0+bXV0ZXgpOworCisgIHJldHVybiBFUlJfT0s7Cit9CisKK2Vycl90CitzeXNfbWJveF90cnlwb3N0X2Zyb21pc3Ioc3lzX21ib3hfdCAqcSwgdm9pZCAqbXNnKQoreworICByZXR1cm4gc3lzX21ib3hfdHJ5cG9zdChxLCBtc2cpOworfQorCit2b2lkCitzeXNfbWJveF9wb3N0KHN0cnVjdCBzeXNfbWJveCAqKm1iLCB2b2lkICptc2cpCit7CisgIHU4X3QgZmlyc3Q7CisgIHN0cnVjdCBzeXNfbWJveCAqbWJveDsKKyAgTFdJUF9BU1NFUlQoImludmFsaWQgbWJveCIsIChtYiAhPSBOVUxMKSAmJiAoKm1iICE9IE5VTEwpKTsKKyAgbWJveCA9ICptYjsKKworICBzeXNfYXJjaF9zZW1fd2FpdCgmbWJveC0+bXV0ZXgsIDApOworCisgIExXSVBfREVCVUdGKFNZU19ERUJVRywgKCJzeXNfbWJveF9wb3N0OiBtYm94ICVwIG1zZyAlcFxuIiwgKHZvaWQgKiltYm94LCAodm9pZCAqKW1zZykpOworCisgIHdoaWxlICgobWJveC0+bGFzdCArIDEpID49IChtYm94LT5maXJzdCArIFNZU19NQk9YX1NJWkUpKSB7CisgICAgbWJveC0+d2FpdF9zZW5kKys7CisgICAgc3lzX3NlbV9zaWduYWwoJm1ib3gtPm11dGV4KTsKKyAgICBzeXNfYXJjaF9zZW1fd2FpdCgmbWJveC0+bm90X2Z1bGwsIDApOworICAgIHN5c19hcmNoX3NlbV93YWl0KCZtYm94LT5tdXRleCwgMCk7CisgICAgbWJveC0+d2FpdF9zZW5kLS07CisgIH0KKworICBtYm94LT5tc2dzW21ib3gtPmxhc3QgJSBTWVNfTUJPWF9TSVpFXSA9IG1zZzsKKworICBpZiAobWJveC0+bGFzdCA9PSBtYm94LT5maXJzdCkgeworICAgIGZpcnN0ID0gMTsKKyAgfSBlbHNlIHsKKyAgICBmaXJzdCA9IDA7CisgIH0KKworICBtYm94LT5sYXN0Kys7CisKKyAgaWYgKGZpcnN0KSB7CisgICAgc3lzX3NlbV9zaWduYWwoJm1ib3gtPm5vdF9lbXB0eSk7CisgIH0KKworICBzeXNfc2VtX3NpZ25hbCgmbWJveC0+bXV0ZXgpOworfQorCit1MzJfdAorc3lzX2FyY2hfbWJveF90cnlmZXRjaChzdHJ1Y3Qgc3lzX21ib3ggKiptYiwgdm9pZCAqKm1zZykKK3sKKyAgc3RydWN0IHN5c19tYm94ICptYm94OworICBMV0lQX0FTU0VSVCgiaW52YWxpZCBtYm94IiwgKG1iICE9IE5VTEwpICYmICgqbWIgIT0gTlVMTCkpOworICBtYm94ID0gKm1iOworCisgIHN5c19hcmNoX3NlbV93YWl0KCZtYm94LT5tdXRleCwgMCk7CisKKyAgaWYgKG1ib3gtPmZpcnN0ID09IG1ib3gtPmxhc3QpIHsKKyAgICBzeXNfc2VtX3NpZ25hbCgmbWJveC0+bXV0ZXgpOworICAgIHJldHVybiBTWVNfTUJPWF9FTVBUWTsKKyAgfQorCisgIGlmIChtc2cgIT0gTlVMTCkgeworICAgIExXSVBfREVCVUdGKFNZU19ERUJVRywgKCJzeXNfbWJveF90cnlmZXRjaDogbWJveCAlcCBtc2cgJXBcbiIsICh2b2lkICopbWJveCwgKm1zZykpOworICAgICptc2cgPSBtYm94LT5tc2dzW21ib3gtPmZpcnN0ICUgU1lTX01CT1hfU0laRV07CisgIH0KKyAgZWxzZXsKKyAgICBMV0lQX0RFQlVHRihTWVNfREVCVUcsICgic3lzX21ib3hfdHJ5ZmV0Y2g6IG1ib3ggJXAsIG51bGwgbXNnXG4iLCAodm9pZCAqKW1ib3gpKTsKKyAgfQorCisgIG1ib3gtPmZpcnN0Kys7CisKKyAgaWYgKG1ib3gtPndhaXRfc2VuZCkgeworICAgIHN5c19zZW1fc2lnbmFsKCZtYm94LT5ub3RfZnVsbCk7CisgIH0KKworICBzeXNfc2VtX3NpZ25hbCgmbWJveC0+bXV0ZXgpOworCisgIHJldHVybiAwOworfQorCit1MzJfdAorc3lzX2FyY2hfbWJveF9mZXRjaChzdHJ1Y3Qgc3lzX21ib3ggKiptYiwgdm9pZCAqKm1zZywgdTMyX3QgdGltZW91dCkKK3sKKyAgdTMyX3QgdGltZV9uZWVkZWQgPSAwOworICBzdHJ1Y3Qgc3lzX21ib3ggKm1ib3g7CisgIExXSVBfQVNTRVJUKCJpbnZhbGlkIG1ib3giLCAobWIgIT0gTlVMTCkgJiYgKCptYiAhPSBOVUxMKSk7CisgIG1ib3ggPSAqbWI7CisKKyAgLyogVGhlIG11dGV4IGxvY2sgaXMgcXVpY2sgc28gd2UgZG9uJ3QgYm90aGVyIHdpdGggdGhlIHRpbWVvdXQKKyAgICAgc3R1ZmYgaGVyZS4gKi8KKyAgc3lzX2FyY2hfc2VtX3dhaXQoJm1ib3gtPm11dGV4LCAwKTsKKworICB3aGlsZSAobWJveC0+Zmlyc3QgPT0gbWJveC0+bGFzdCkgeworICAgIHN5c19zZW1fc2lnbmFsKCZtYm94LT5tdXRleCk7CisKKyAgICAvKiBXZSBibG9jayB3aGlsZSB3YWl0aW5nIGZvciBhIG1haWwgdG8gYXJyaXZlIGluIHRoZSBtYWlsYm94LiBXZQorICAgICAgIG11c3QgYmUgcHJlcGFyZWQgdG8gdGltZW91dC4gKi8KKyAgICBpZiAodGltZW91dCAhPSAwKSB7CisgICAgICB0aW1lX25lZWRlZCA9IHN5c19hcmNoX3NlbV93YWl0KCZtYm94LT5ub3RfZW1wdHksIHRpbWVvdXQpOworCisgICAgICBpZiAodGltZV9uZWVkZWQgPT0gU1lTX0FSQ0hfVElNRU9VVCkgeworICAgICAgICByZXR1cm4gU1lTX0FSQ0hfVElNRU9VVDsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgc3lzX2FyY2hfc2VtX3dhaXQoJm1ib3gtPm5vdF9lbXB0eSwgMCk7CisgICAgfQorCisgICAgc3lzX2FyY2hfc2VtX3dhaXQoJm1ib3gtPm11dGV4LCAwKTsKKyAgfQorCisgIGlmIChtc2cgIT0gTlVMTCkgeworICAgIExXSVBfREVCVUdGKFNZU19ERUJVRywgKCJzeXNfbWJveF9mZXRjaDogbWJveCAlcCBtc2cgJXBcbiIsICh2b2lkICopbWJveCwgKm1zZykpOworICAgICptc2cgPSBtYm94LT5tc2dzW21ib3gtPmZpcnN0ICUgU1lTX01CT1hfU0laRV07CisgIH0KKyAgZWxzZXsKKyAgICBMV0lQX0RFQlVHRihTWVNfREVCVUcsICgic3lzX21ib3hfZmV0Y2g6IG1ib3ggJXAsIG51bGwgbXNnXG4iLCAodm9pZCAqKW1ib3gpKTsKKyAgfQorCisgIG1ib3gtPmZpcnN0Kys7CisKKyAgaWYgKG1ib3gtPndhaXRfc2VuZCkgeworICAgIHN5c19zZW1fc2lnbmFsKCZtYm94LT5ub3RfZnVsbCk7CisgIH0KKworICBzeXNfc2VtX3NpZ25hbCgmbWJveC0+bXV0ZXgpOworCisgIHJldHVybiB0aW1lX25lZWRlZDsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBTZW1hcGhvcmUgKi8KK3N0YXRpYyBzdHJ1Y3Qgc3lzX3NlbSAqCitzeXNfc2VtX25ld19pbnRlcm5hbCh1OF90IGNvdW50KQoreworICBzdHJ1Y3Qgc3lzX3NlbSAqc2VtOworCisgIHNlbSA9IChzdHJ1Y3Qgc3lzX3NlbSAqKW1hbGxvYyhzaXplb2Yoc3RydWN0IHN5c19zZW0pKTsKKyAgaWYgKHNlbSAhPSBOVUxMKSB7CisgICAgc2VtLT5jID0gY291bnQ7CisgICAgcHRocmVhZF9jb25kYXR0cl9pbml0KCYoc2VtLT5jb25kYXR0cikpOworI2lmICEoZGVmaW5lZChMV0lQX1VOSVhfTUFDSCkgfHwgKGRlZmluZWQoTFdJUF9VTklYX0FORFJPSUQpICYmIF9fQU5EUk9JRF9BUElfXyA8IDIxKSkKKyAgICBwdGhyZWFkX2NvbmRhdHRyX3NldGNsb2NrKCYoc2VtLT5jb25kYXR0ciksIENMT0NLX01PTk9UT05JQyk7CisjZW5kaWYKKyAgICBwdGhyZWFkX2NvbmRfaW5pdCgmKHNlbS0+Y29uZCksICYoc2VtLT5jb25kYXR0cikpOworICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmKHNlbS0+bXV0ZXgpLCBOVUxMKTsKKyAgfQorICByZXR1cm4gc2VtOworfQorCitlcnJfdAorc3lzX3NlbV9uZXcoc3RydWN0IHN5c19zZW0gKipzZW0sIHU4X3QgY291bnQpCit7CisgIFNZU19TVEFUU19JTkNfVVNFRChzZW0pOworICAqc2VtID0gc3lzX3NlbV9uZXdfaW50ZXJuYWwoY291bnQpOworICBpZiAoKnNlbSA9PSBOVUxMKSB7CisgICAgcmV0dXJuIEVSUl9NRU07CisgIH0KKyAgcmV0dXJuIEVSUl9PSzsKK30KKworc3RhdGljIHUzMl90Citjb25kX3dhaXQocHRocmVhZF9jb25kX3QgKmNvbmQsIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgsIHUzMl90IHRpbWVvdXQpCit7CisgIHN0cnVjdCB0aW1lc3BlYyBydGltZTEsIHJ0aW1lMiwgdHM7CisgIGludCByZXQ7CisKKyNpZmRlZiBMV0lQX1VOSVhfSFVSRAorICAjZGVmaW5lIHB0aHJlYWRfY29uZF93YWl0IHB0aHJlYWRfaHVyZF9jb25kX3dhaXRfbnAKKyAgI2RlZmluZSBwdGhyZWFkX2NvbmRfdGltZWR3YWl0IHB0aHJlYWRfaHVyZF9jb25kX3RpbWVkd2FpdF9ucAorI2VuZGlmCisKKyAgaWYgKHRpbWVvdXQgPT0gMCkgeworICAgIHJldCA9IHB0aHJlYWRfY29uZF93YWl0KGNvbmQsIG11dGV4KTsKKyAgICByZXR1cm4KKyNpZmRlZiBMV0lQX1VOSVhfSFVSRAorICAgIC8qIE9uIHRoZSBIdXJkLCByZXQgPT0gMSBtZWFucyB0aGUgUlBDIGhhcyBiZWVuIGNhbmNlbGxlZC4KKyAgICAgKiBUaGUgdGhyZWFkIGlzIGF3YWtlbmVkIChub3QgdGVybWluYXRlZCkgYW5kIGV4ZWN1dGlvbiBtdXN0IGNvbnRpbnVlICovCisgICAgcmV0ID09IDEgPyBTWVNfQVJDSF9JTlRSIDoKKyNlbmRpZgorICAgICh1MzJfdClyZXQ7CisgIH0KKworICAvKiBHZXQgYSB0aW1lc3RhbXAgYW5kIGFkZCB0aGUgdGltZW91dCB2YWx1ZS4gKi8KKyAgZ2V0X21vbm90b25pY190aW1lKCZydGltZTEpOworI2lmIGRlZmluZWQoTFdJUF9VTklYX01BQ0gpIHx8IChkZWZpbmVkKExXSVBfVU5JWF9BTkRST0lEKSAmJiBfX0FORFJPSURfQVBJX18gPCAyMSkKKyAgdHMudHZfc2VjID0gdGltZW91dCAvIDEwMDBMOworICB0cy50dl9uc2VjID0gKHRpbWVvdXQgJSAxMDAwTCkgKiAxMDAwMDAwTDsKKyAgcmV0ID0gcHRocmVhZF9jb25kX3RpbWVkd2FpdF9yZWxhdGl2ZV9ucChjb25kLCBtdXRleCwgJnRzKTsKKyNlbHNlCisgIHRzLnR2X3NlYyA9IHJ0aW1lMS50dl9zZWMgKyB0aW1lb3V0IC8gMTAwMEw7CisgIHRzLnR2X25zZWMgPSBydGltZTEudHZfbnNlYyArICh0aW1lb3V0ICUgMTAwMEwpICogMTAwMDAwMEw7CisgIGlmICh0cy50dl9uc2VjID49IDEwMDAwMDAwMDBMKSB7CisgICAgdHMudHZfc2VjKys7CisgICAgdHMudHZfbnNlYyAtPSAxMDAwMDAwMDAwTDsKKyAgfQorCisgIHJldCA9IHB0aHJlYWRfY29uZF90aW1lZHdhaXQoY29uZCwgbXV0ZXgsICZ0cyk7CisjZW5kaWYKKyAgaWYgKHJldCA9PSBFVElNRURPVVQpIHsKKyAgICByZXR1cm4gU1lTX0FSQ0hfVElNRU9VVDsKKyNpZmRlZiBMV0lQX1VOSVhfSFVSRAorICAgIC8qIE9uIHRoZSBIdXJkLCByZXQgPT0gMSBtZWFucyB0aGUgUlBDIGhhcyBiZWVuIGNhbmNlbGxlZC4KKyAgICAgKiBUaGUgdGhyZWFkIGlzIGF3YWtlbmVkIChub3QgdGVybWluYXRlZCkgYW5kIGV4ZWN1dGlvbiBtdXN0IGNvbnRpbnVlICovCisgIH0gZWxzZSBpZiAocmV0ID09IEVJTlRSKSB7CisgICAgcmV0dXJuIFNZU19BUkNIX0lOVFI7CisjZW5kaWYKKyAgfQorCisgIC8qIENhbGN1bGF0ZSBmb3IgaG93IGxvbmcgd2Ugd2FpdGVkIGZvciB0aGUgY29uZC4gKi8KKyAgZ2V0X21vbm90b25pY190aW1lKCZydGltZTIpOworICB0cy50dl9zZWMgPSBydGltZTIudHZfc2VjIC0gcnRpbWUxLnR2X3NlYzsKKyAgdHMudHZfbnNlYyA9IHJ0aW1lMi50dl9uc2VjIC0gcnRpbWUxLnR2X25zZWM7CisgIGlmICh0cy50dl9uc2VjIDwgMCkgeworICAgIHRzLnR2X3NlYy0tOworICAgIHRzLnR2X25zZWMgKz0gMTAwMDAwMDAwMEw7CisgIH0KKyAgcmV0dXJuICh1MzJfdCkodHMudHZfc2VjICogMTAwMEwgKyB0cy50dl9uc2VjIC8gMTAwMDAwMEwpOworfQorCit1MzJfdAorc3lzX2FyY2hfc2VtX3dhaXQoc3RydWN0IHN5c19zZW0gKipzLCB1MzJfdCB0aW1lb3V0KQoreworICB1MzJfdCB0aW1lX25lZWRlZCA9IDA7CisgIHN0cnVjdCBzeXNfc2VtICpzZW07CisgIExXSVBfQVNTRVJUKCJpbnZhbGlkIHNlbSIsIChzICE9IE5VTEwpICYmICgqcyAhPSBOVUxMKSk7CisgIHNlbSA9ICpzOworCisgIHB0aHJlYWRfbXV0ZXhfbG9jaygmKHNlbS0+bXV0ZXgpKTsKKyAgd2hpbGUgKHNlbS0+YyA8PSAwKSB7CisgICAgaWYgKHRpbWVvdXQgPiAwKSB7CisgICAgICB0aW1lX25lZWRlZCA9IGNvbmRfd2FpdCgmKHNlbS0+Y29uZCksICYoc2VtLT5tdXRleCksIHRpbWVvdXQpOworCisgICAgICBpZiAodGltZV9uZWVkZWQgPT0gU1lTX0FSQ0hfVElNRU9VVCkgeworICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmKHNlbS0+bXV0ZXgpKTsKKyAgICAgICAgcmV0dXJuIFNZU19BUkNIX1RJTUVPVVQ7CisjaWZkZWYgTFdJUF9VTklYX0hVUkQKKyAgICAgIH0gZWxzZSBpZih0aW1lX25lZWRlZCA9PSBTWVNfQVJDSF9JTlRSKSB7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCYoc2VtLT5tdXRleCkpOworICAgICAgICByZXR1cm4gMDsKKyNlbmRpZgorICAgICAgfQorICAgICAgLyogICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmKHNlbS0+bXV0ZXgpKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHRpbWVfbmVlZGVkOyAqLworICAgIH0gZWxzZSBpZihjb25kX3dhaXQoJihzZW0tPmNvbmQpLCAmKHNlbS0+bXV0ZXgpLCAwKSkgeworICAgICAgLyogU29tZSBlcnJvciBoYXBwZW5lZCBvciB0aGUgdGhyZWFkIGhhcyBiZWVuIGF3YWtlbmVkIGJ1dCBub3QgYnkgbHdpcCAqLworICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJihzZW0tPm11dGV4KSk7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgIH0KKyAgc2VtLT5jLS07CisgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCYoc2VtLT5tdXRleCkpOworICByZXR1cm4gKHUzMl90KXRpbWVfbmVlZGVkOworfQorCit2b2lkCitzeXNfc2VtX3NpZ25hbChzdHJ1Y3Qgc3lzX3NlbSAqKnMpCit7CisgIHN0cnVjdCBzeXNfc2VtICpzZW07CisgIExXSVBfQVNTRVJUKCJpbnZhbGlkIHNlbSIsIChzICE9IE5VTEwpICYmICgqcyAhPSBOVUxMKSk7CisgIHNlbSA9ICpzOworCisgIHB0aHJlYWRfbXV0ZXhfbG9jaygmKHNlbS0+bXV0ZXgpKTsKKyAgc2VtLT5jKys7CisKKyAgaWYgKHNlbS0+YyA+IDEpIHsKKyAgICBzZW0tPmMgPSAxOworICB9CisKKyAgcHRocmVhZF9jb25kX2Jyb2FkY2FzdCgmKHNlbS0+Y29uZCkpOworICBwdGhyZWFkX211dGV4X3VubG9jaygmKHNlbS0+bXV0ZXgpKTsKK30KKworc3RhdGljIHZvaWQKK3N5c19zZW1fZnJlZV9pbnRlcm5hbChzdHJ1Y3Qgc3lzX3NlbSAqc2VtKQoreworICBwdGhyZWFkX2NvbmRfZGVzdHJveSgmKHNlbS0+Y29uZCkpOworICBwdGhyZWFkX2NvbmRhdHRyX2Rlc3Ryb3koJihzZW0tPmNvbmRhdHRyKSk7CisgIHB0aHJlYWRfbXV0ZXhfZGVzdHJveSgmKHNlbS0+bXV0ZXgpKTsKKyAgZnJlZShzZW0pOworfQorCit2b2lkCitzeXNfc2VtX2ZyZWUoc3RydWN0IHN5c19zZW0gKipzZW0pCit7CisgIGlmICgoc2VtICE9IE5VTEwpICYmICgqc2VtICE9IFNZU19TRU1fTlVMTCkpIHsKKyAgICBTWVNfU1RBVFNfREVDKHNlbS51c2VkKTsKKyAgICBzeXNfc2VtX2ZyZWVfaW50ZXJuYWwoKnNlbSk7CisgIH0KK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBNdXRleCAqLworLyoqIENyZWF0ZSBhIG5ldyBtdXRleAorICogQHBhcmFtIG11dGV4IHBvaW50ZXIgdG8gdGhlIG11dGV4IHRvIGNyZWF0ZQorICogQHJldHVybiBhIG5ldyBtdXRleCAqLworZXJyX3QKK3N5c19tdXRleF9uZXcoc3RydWN0IHN5c19tdXRleCAqKm11dGV4KQoreworICBzdHJ1Y3Qgc3lzX211dGV4ICptdHg7CisKKyAgbXR4ID0gKHN0cnVjdCBzeXNfbXV0ZXggKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBzeXNfbXV0ZXgpKTsKKyAgaWYgKG10eCAhPSBOVUxMKSB7CisgICAgcHRocmVhZF9tdXRleF9pbml0KCYobXR4LT5tdXRleCksIE5VTEwpOworICAgICptdXRleCA9IG10eDsKKyAgICByZXR1cm4gRVJSX09LOworICB9CisgIGVsc2UgeworICAgIHJldHVybiBFUlJfTUVNOworICB9Cit9CisKKy8qKiBMb2NrIGEgbXV0ZXgKKyAqIEBwYXJhbSBtdXRleCB0aGUgbXV0ZXggdG8gbG9jayAqLwordm9pZAorc3lzX211dGV4X2xvY2soc3RydWN0IHN5c19tdXRleCAqKm11dGV4KQoreworICBwdGhyZWFkX211dGV4X2xvY2soJigoKm11dGV4KS0+bXV0ZXgpKTsKK30KKworLyoqIFVubG9jayBhIG11dGV4CisgKiBAcGFyYW0gbXV0ZXggdGhlIG11dGV4IHRvIHVubG9jayAqLwordm9pZAorc3lzX211dGV4X3VubG9jayhzdHJ1Y3Qgc3lzX211dGV4ICoqbXV0ZXgpCit7CisgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCYoKCptdXRleCktPm11dGV4KSk7Cit9CisKKy8qKiBEZWxldGUgYSBtdXRleAorICogQHBhcmFtIG11dGV4IHRoZSBtdXRleCB0byBkZWxldGUgKi8KK3ZvaWQKK3N5c19tdXRleF9mcmVlKHN0cnVjdCBzeXNfbXV0ZXggKiptdXRleCkKK3sKKyAgcHRocmVhZF9tdXRleF9kZXN0cm95KCYoKCptdXRleCktPm11dGV4KSk7CisgIGZyZWUoKm11dGV4KTsKK30KKworI2VuZGlmIC8qICFOT19TWVMgKi8KKworI2lmIExXSVBfTkVUQ09OTl9TRU1fUEVSX1RIUkVBRAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBTZW1hcGhvcmUgcGVyIHRocmVhZCBsb2NhdGVkIFRMUyAqLworCitzdGF0aWMgdm9pZAorc3lzX3RocmVhZF9zZW1fZnJlZSh2b2lkKiBkYXRhKQoreworICBzeXNfc2VtX3QgKnNlbSA9IChzeXNfc2VtX3QqKShkYXRhKTsKKworICBpZiAoc2VtKSB7CisgICAgc3lzX3NlbV9mcmVlKHNlbSk7CisgICAgZnJlZShzZW0pOworICB9Cit9CisKK3N0YXRpYyBzeXNfc2VtX3QqCitzeXNfdGhyZWFkX3NlbV9hbGxvYyh2b2lkKQoreworICBzeXNfc2VtX3QgKnNlbTsKKyAgZXJyX3QgZXJyOworICBpbnQgcmV0OworCisgIHNlbSA9IChzeXNfc2VtX3QqKW1hbGxvYyhzaXplb2Yoc3lzX3NlbV90KikpOworICBMV0lQX0FTU0VSVCgiZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgVExTIHNlbWFwaG9yZSIsIHNlbSAhPSBOVUxMKTsKKyAgZXJyID0gc3lzX3NlbV9uZXcoc2VtLCAwKTsKKyAgTFdJUF9BU1NFUlQoImZhaWxlZCB0byBpbml0aWFsaXNlIFRMUyBzZW1hcGhvcmUiLCBlcnIgPT0gRVJSX09LKTsKKyAgcmV0ID0gcHRocmVhZF9zZXRzcGVjaWZpYyhzeXNfdGhyZWFkX3NlbV9rZXksIHNlbSk7CisgIExXSVBfQVNTRVJUKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBUTFMgc2VtYXBob3JlIHN0b3JhZ2UiLCByZXQgPT0gMCk7CisgIHJldHVybiBzZW07Cit9CisKK3N5c19zZW1fdCoKK3N5c19hcmNoX25ldGNvbm5fc2VtX2dldCh2b2lkKQoreworICBzeXNfc2VtX3QqIHNlbSA9IChzeXNfc2VtX3QqKXB0aHJlYWRfZ2V0c3BlY2lmaWMoc3lzX3RocmVhZF9zZW1fa2V5KTsKKyAgaWYgKCFzZW0pIHsKKyAgICBzZW0gPSBzeXNfdGhyZWFkX3NlbV9hbGxvYygpOworICB9CisgIExXSVBfREVCVUdGKFNZU19ERUJVRywgKCJzeXNfdGhyZWFkX3NlbV9nZXQgcz0lcFxuIiwgKHZvaWQqKXNlbSkpOworICByZXR1cm4gc2VtOworfQorCit2b2lkCitzeXNfYXJjaF9uZXRjb25uX3NlbV9hbGxvYyh2b2lkKQoreworICBzeXNfc2VtX3QqIHNlbSA9IHN5c190aHJlYWRfc2VtX2FsbG9jKCk7CisgIExXSVBfREVCVUdGKFNZU19ERUJVRywgKCJzeXNfdGhyZWFkX3NlbSBjcmVhdGVkIHM9JXBcbiIsICh2b2lkKilzZW0pKTsKK30KKwordm9pZAorc3lzX2FyY2hfbmV0Y29ubl9zZW1fZnJlZSh2b2lkKQoreworICBpbnQgcmV0OworCisgIHN5c19zZW1fdCAqc2VtID0gKHN5c19zZW1fdCAqKXB0aHJlYWRfZ2V0c3BlY2lmaWMoc3lzX3RocmVhZF9zZW1fa2V5KTsKKyAgc3lzX3RocmVhZF9zZW1fZnJlZShzZW0pOworICByZXQgPSBwdGhyZWFkX3NldHNwZWNpZmljKHN5c190aHJlYWRfc2VtX2tleSwgTlVMTCk7CisgIExXSVBfQVNTRVJUKCJmYWlsZWQgdG8gZGUtaW5pdCBUTFMgc2VtYXBob3JlIHN0b3JhZ2UiLCByZXQgPT0gMCk7Cit9CisjZW5kaWYgLyogTFdJUF9ORVRDT05OX1NFTV9QRVJfVEhSRUFEICovCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogVGltZSAqLwordTMyX3QKK3N5c19ub3codm9pZCkKK3sKKyAgc3RydWN0IHRpbWVzcGVjIHRzOworICB1MzJfdCBub3c7CisKKyAgZ2V0X21vbm90b25pY190aW1lKCZ0cyk7CisgIG5vdyA9ICh1MzJfdCkodHMudHZfc2VjICogMTAwMEwgKyB0cy50dl9uc2VjIC8gMTAwMDAwMEwpOworI2lmZGVmIExXSVBfRlVaWl9TWVNfTk9XCisgIG5vdyArPSBzeXNfbm93X29mZnNldDsKKyNlbmRpZgorICByZXR1cm4gbm93OworfQorCit1MzJfdAorc3lzX2ppZmZpZXModm9pZCkKK3sKKyAgc3RydWN0IHRpbWVzcGVjIHRzOworCisgIGdldF9tb25vdG9uaWNfdGltZSgmdHMpOworICByZXR1cm4gKHUzMl90KSh0cy50dl9zZWMgKiAxMDAwMDAwMDAwTCArIHRzLnR2X25zZWMpOworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIEluaXQgKi8KKwordm9pZAorc3lzX2luaXQodm9pZCkKK3sKKyNpZiBMV0lQX05FVENPTk5fU0VNX1BFUl9USFJFQUQKKyAgcHRocmVhZF9rZXlfY3JlYXRlKCZzeXNfdGhyZWFkX3NlbV9rZXksIHN5c190aHJlYWRfc2VtX2ZyZWUpOworI2VuZGlmCit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogQ3JpdGljYWwgc2VjdGlvbiAqLworI2lmIFNZU19MSUdIVFdFSUdIVF9QUk9UCisvKiogc3lzX3Byb3RfdCBzeXNfYXJjaF9wcm90ZWN0KHZvaWQpCisKK1RoaXMgb3B0aW9uYWwgZnVuY3Rpb24gZG9lcyBhICJmYXN0IiBjcml0aWNhbCByZWdpb24gcHJvdGVjdGlvbiBhbmQgcmV0dXJucwordGhlIHByZXZpb3VzIHByb3RlY3Rpb24gbGV2ZWwuIFRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZHVyaW5nIHZlcnkgc2hvcnQKK2NyaXRpY2FsIHJlZ2lvbnMuIEFuIGVtYmVkZGVkIHN5c3RlbSB3aGljaCBzdXBwb3J0cyBJU1ItYmFzZWQgZHJpdmVycyBtaWdodAord2FudCB0byBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbiBieSBkaXNhYmxpbmcgaW50ZXJydXB0cy4gVGFzay1iYXNlZCBzeXN0ZW1zCittaWdodCB3YW50IHRvIGltcGxlbWVudCB0aGlzIGJ5IHVzaW5nIGEgbXV0ZXggb3IgZGlzYWJsaW5nIHRhc2tpbmcuIFRoaXMKK2Z1bmN0aW9uIHNob3VsZCBzdXBwb3J0IHJlY3Vyc2l2ZSBjYWxscyBmcm9tIHRoZSBzYW1lIHRhc2sgb3IgaW50ZXJydXB0LiBJbgorb3RoZXIgd29yZHMsIHN5c19hcmNoX3Byb3RlY3QoKSBjb3VsZCBiZSBjYWxsZWQgd2hpbGUgYWxyZWFkeSBwcm90ZWN0ZWQuIEluCit0aGF0IGNhc2UgdGhlIHJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCBpdCBpcyBhbHJlYWR5IHByb3RlY3RlZC4KKworc3lzX2FyY2hfcHJvdGVjdCgpIGlzIG9ubHkgcmVxdWlyZWQgaWYgeW91ciBwb3J0IGlzIHN1cHBvcnRpbmcgYW4gb3BlcmF0aW5nCitzeXN0ZW0uCisqLworc3lzX3Byb3RfdAorc3lzX2FyY2hfcHJvdGVjdCh2b2lkKQoreworICAgIC8qIE5vdGUgdGhhdCBmb3IgdGhlIFVOSVggcG9ydCwgd2UgYXJlIHVzaW5nIGEgbGlnaHR3ZWlnaHQgbXV0ZXgsIGFuZCBvdXIKKyAgICAgKiBvd24gY291bnRlciAod2hpY2ggaXMgbG9ja2VkIGJ5IHRoZSBtdXRleCkuIFRoZSByZXR1cm4gY29kZSBpcyBub3QgYWN0dWFsbHkKKyAgICAgKiB1c2VkLiAqLworICAgIGlmIChsd3Byb3RfdGhyZWFkICE9IHB0aHJlYWRfc2VsZigpKQorICAgIHsKKyAgICAgICAgLyogV2UgYXJlIGxvY2tpbmcgdGhlIG11dGV4IHdoZXJlIGl0IGhhcyBub3QgYmVlbiBsb2NrZWQgYmVmb3JlICoKKyAgICAgICAgKiBvciBpcyBiZWluZyBsb2NrZWQgYnkgYW5vdGhlciB0aHJlYWQgKi8KKyAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZsd3Byb3RfbXV0ZXgpOworICAgICAgICBsd3Byb3RfdGhyZWFkID0gcHRocmVhZF9zZWxmKCk7CisgICAgICAgIGx3cHJvdF9jb3VudCA9IDE7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgLyogSXQgaXMgYWxyZWFkeSBsb2NrZWQgYnkgVEhJUyB0aHJlYWQgKi8KKyAgICAgICAgbHdwcm90X2NvdW50Kys7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qKiB2b2lkIHN5c19hcmNoX3VucHJvdGVjdChzeXNfcHJvdF90IHB2YWwpCisKK1RoaXMgb3B0aW9uYWwgZnVuY3Rpb24gZG9lcyBhICJmYXN0IiBzZXQgb2YgY3JpdGljYWwgcmVnaW9uIHByb3RlY3Rpb24gdG8gdGhlCit2YWx1ZSBzcGVjaWZpZWQgYnkgcHZhbC4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBzeXNfYXJjaF9wcm90ZWN0KCkgZm9yCittb3JlIGluZm9ybWF0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgcmVxdWlyZWQgaWYgeW91ciBwb3J0IGlzIHN1cHBvcnRpbmcKK2FuIG9wZXJhdGluZyBzeXN0ZW0uCisqLwordm9pZAorc3lzX2FyY2hfdW5wcm90ZWN0KHN5c19wcm90X3QgcHZhbCkKK3sKKyAgICBMV0lQX1VOVVNFRF9BUkcocHZhbCk7CisgICAgaWYgKGx3cHJvdF90aHJlYWQgPT0gcHRocmVhZF9zZWxmKCkpCisgICAgeworICAgICAgICBsd3Byb3RfY291bnQtLTsKKyAgICAgICAgaWYgKGx3cHJvdF9jb3VudCA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgICBsd3Byb3RfdGhyZWFkID0gKHB0aHJlYWRfdCkgMHhERUFEOworICAgICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJmx3cHJvdF9tdXRleCk7CisgICAgICAgIH0KKyAgICB9Cit9CisjZW5kaWYgLyogU1lTX0xJR0hUV0VJR0hUX1BST1QgKi8KKworI2lmICFOT19TWVMKKy8qIGdldCBrZXlib2FyZCBzdGF0ZSB0byB0ZXJtaW5hdGUgdGhlIGRlYnVnIGFwcCBieSB1c2luZyBzZWxlY3QgKi8KK2ludAorbHdpcF91bml4X2tleXByZXNzZWQodm9pZCkKK3sKKyAgc3RydWN0IHRpbWV2YWwgdHYgPSB7IDBMLCAwTCB9OworICBmZF9zZXQgZmRzOworICBGRF9aRVJPKCZmZHMpOworICBGRF9TRVQoMCwgJmZkcyk7CisgIHJldHVybiBzZWxlY3QoMSwgJmZkcywgTlVMTCwgTlVMTCwgJnR2KTsKK30KKyNlbmRpZiAvKiAhTk9fU1lTICovCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvcG9zaXhsaWIvQ01ha2VMaXN0cy50eHQgYi9jb250cmliL3BvcnRzL3VuaXgvcG9zaXhsaWIvQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YzNWY3ZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3NpeGxpYi9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDk0IEBACitjbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMy44KQorcHJvamVjdChsaWJsd2lwCisgICAgVkVSU0lPTiAyLjIuMAorICAgIERFU0NSSVBUSU9OICJsd2lwIGxpYnJhcnkgZm9yIGxpbnV4IgorICAgIEhPTUVQQUdFX1VSTCAiaHR0cDovL3dpa2kudmlydHVhbHNxdWFyZS5vcmciCisgICAgTEFOR1VBR0VTIEMpCisKK2luY2x1ZGUoR05VSW5zdGFsbERpcnMpCitpbmNsdWRlKENoZWNrSW5jbHVkZUZpbGUpCisKK3NldCAoQlVJTERfU0hBUkVEX0xJQlMgT04pCisKK2lmIChOT1QgQ01BS0VfU1lTVEVNX05BTUUgU1RSRVFVQUwgIkxpbnV4IikKKyAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJMd2lwIHNoYXJlZCBsaWJyYXJ5IGlzIG9ubHkgd29ya2luZyBvbiBMaW51eCBvciB0aGUgSHVyZCIpCitlbmRpZigpCisKK3NldChMV0lQX0RJUiAke0NNQUtFX0NVUlJFTlRfU09VUkNFX0RJUn0vLi4vLi4vLi4vLi4pCisKK2ZpbmRfbGlicmFyeShMSUJfVkRFUExVR09LIHZkZXBsdWcpCitjaGVja19pbmNsdWRlX2ZpbGUobGlidmRlcGx1Zy5oIElOQ0xVREVfVkRFUExVR09LKQoraWYgKExJQl9WREVQTFVHT0sgQU5EIElOQ0xVREVfVkRFUExVR09LKQorCW1lc3NhZ2UoU1RBVFVTICJGb3VuZCBsaWJ2ZGVwbHVnOiB2ZGUgc3VwcG9ydCBhZGRlZCIpCitlbHNlKCkKKwltZXNzYWdlKFNUQVRVUyAiTGlidmRlcGx1ZyBuZWVkcyB0byBiZSBpbnN0YWxsZWQgdG8gYWRkIHZkZSBzdXBwb3J0IikKK2VuZGlmKCkKKworaW5jbHVkZSgke0xXSVBfRElSfS9jb250cmliL3BvcnRzL0NNYWtlQ29tbW9uLmNtYWtlKQorCitzZXQgKExXSVBfREVGSU5JVElPTlMgLURMV0lQX0RFQlVHKQorc2V0IChMV0lQX0lOQ0xVREVfRElSUworICAgICJpbmNsdWRlIgorICAgICIke0xXSVBfRElSfS9zcmMvaW5jbHVkZSIKKyAgICAiJHtMV0lQX0NPTlRSSUJfRElSfS8iCisgICAgIiR7TFdJUF9DT05UUklCX0RJUn0vcG9ydHMvdW5peC9wb3J0L2luY2x1ZGUiCisgICAgIiR7Q01BS0VfQ1VSUkVOVF9TT1VSQ0VfRElSfS8iCispCisKK3NldCAoTFdJUF9FWENMVURFX1NMSVBJRiBUUlVFKQoraW5jbHVkZSgke0xXSVBfQ09OVFJJQl9ESVJ9L3BvcnRzL3VuaXgvRmlsZWxpc3RzLmNtYWtlKQoraW5jbHVkZSgke0xXSVBfRElSfS9zcmMvRmlsZWxpc3RzLmNtYWtlKQoraWYgKExJQl9WREVQTFVHT0sgQU5EIElOQ0xVREVfVkRFUExVR09LKQorc2V0KGx3aXBub2FwcHNfU1JDUyAke2x3aXBub2FwcHNfU1JDU30KKyAgICR7TFdJUF9ESVJ9L2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L25ldGlmL3ZkZWlmLmMpCitlbmRpZigpCisKK2FkZF9saWJyYXJ5KGx3aXAgJHtsd2lwbm9hcHBzX1NSQ1N9ICR7bHdpcGNvbnRyaWJwb3J0dW5peF9TUkNTfSAke2x3aXBjb250cmlicG9ydHVuaXhuZXRpZnNfU1JDU30pCit0YXJnZXRfY29tcGlsZV9vcHRpb25zKGx3aXAgUFJJVkFURSAke0xXSVBfQ09NUElMRVJfRkxBR1N9KQordGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMobHdpcCBQUklWQVRFICR7TFdJUF9ERUZJTklUSU9OU30gJHtMV0lQX01CRURUTFNfREVGSU5JVElPTlN9KQordGFyZ2V0X2luY2x1ZGVfZGlyZWN0b3JpZXMobHdpcCBQUklWQVRFICR7TFdJUF9JTkNMVURFX0RJUlN9ICR7TFdJUF9NQkVEVExTX0lOQ0xVREVfRElSU30pCitpZiAoTElCX1ZERVBMVUdPSyBBTkQgSU5DTFVERV9WREVQTFVHT0spCisgICB0YXJnZXRfbGlua19saWJyYXJpZXMobHdpcCAke0xXSVBfU0FOSVRJWkVSX0xJQlN9IHZkZXBsdWcpCitlbHNlKCkKKyAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhsd2lwICR7TFdJUF9TQU5JVElaRVJfTElCU30pCitlbmRpZigpCisKK2ZpbmRfbGlicmFyeShMSUJQVEhSRUFEIHB0aHJlYWQpCit0YXJnZXRfbGlua19saWJyYXJpZXMobHdpcCAke0xJQlBUSFJFQUR9KQorCitpbnN0YWxsKFRBUkdFVFMgbHdpcCAKKwkJTElCUkFSWSBERVNUSU5BVElPTiAke0NNQUtFX0lOU1RBTExfTElCRElSfSkKKworc2V0X3RhcmdldF9wcm9wZXJ0aWVzKGx3aXAgUFJPUEVSVElFUyBWRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OfQorICAgICAgICBTT1ZFUlNJT04gJHtQUk9KRUNUX1ZFUlNJT05fTUFKT1J9KQorCitpbnN0YWxsKERJUkVDVE9SWSAiJHtMV0lQX0RJUn0vc3JjL2luY2x1ZGUvbHdpcCIKKwkJREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS9sd2lwIgorCQlGSUxFU19NQVRDSElORyBQQVRURVJOICIqLmgiCispCisKK2luc3RhbGwoRElSRUNUT1JZICIke0xXSVBfRElSfS9zcmMvaW5jbHVkZS9uZXRpZiIKKwkJREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS9sd2lwIgorCQlGSUxFU19NQVRDSElORyBQQVRURVJOICIqLmgiCispCisKK2luc3RhbGwoRklMRVMgbHdpcG9wdHMuaCBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L2x3aXAiKQorCitpbnN0YWxsKERJUkVDVE9SWSAiJHtMV0lQX0RJUn0vY29udHJpYi9wb3J0cy91bml4L3BvcnQvaW5jbHVkZS9hcmNoIgorICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0vbHdpcCIKKyAgICBGSUxFU19NQVRDSElORyBQQVRURVJOICIqLmgiCispCisKK2luc3RhbGwoRElSRUNUT1JZICIke0xXSVBfRElSfS9jb250cmliL3BvcnRzL3VuaXgvcG9ydC9pbmNsdWRlL25ldGlmIgorICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0vbHdpcCIKKyAgICBGSUxFU19NQVRDSElORyBQQVRURVJOICIqLmgiCispCisKK2luc3RhbGwoRElSRUNUT1JZICIke0xXSVBfRElSfS9jb250cmliL3BvcnRzL3VuaXgvbGludXhsaWIvaW5jbHVkZS9wb3NpeCIKKyAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L2x3aXAiCisgICAgRklMRVNfTUFUQ0hJTkcgUEFUVEVSTiAiKi5oIgorKQorCithZGRfY3VzdG9tX3RhcmdldCh1bmluc3RhbGwKKyAgIiR7Q01BS0VfQ09NTUFORH0iIC1QICIke1BST0pFQ1RfU09VUkNFX0RJUn0vVW5pbnN0YWxsLmNtYWtlIikKKwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy91bml4L3Bvc2l4bGliL1VuaW5zdGFsbC5jbWFrZSBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3NpeGxpYi9Vbmluc3RhbGwuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY2ZWU0ZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3NpeGxpYi9Vbmluc3RhbGwuY21ha2UKQEAgLTAsMCArMSwyMiBAQAorY21ha2VfbWluaW11bV9yZXF1aXJlZChWRVJTSU9OIDMuMTMpCitzZXQoTUFOSUZFU1QgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElSfS9pbnN0YWxsX21hbmlmZXN0LnR4dCIpCisKK2lmKE5PVCBFWElTVFMgJHtNQU5JRkVTVH0pCisJbWVzc2FnZShGQVRBTF9FUlJPUiAiQ2Fubm90IGZpbmQgaW5zdGFsbCBtYW5pZmVzdDogJyR7TUFOSUZFU1R9JyIpCitlbmRpZigpCisKK2ZpbGUoU1RSSU5HUyAke01BTklGRVNUfSBmaWxlcykKK2ZvcmVhY2goZmlsZSAke2ZpbGVzfSkKKwlpZihFWElTVFMgJHtmaWxlfSBPUiBJU19TWU1MSU5LICR7ZmlsZX0pCisJCW1lc3NhZ2UoU1RBVFVTICJSZW1vdmluZzogJHtmaWxlfSIpCisKKwkJZXhlY3V0ZV9wcm9jZXNzKAorCQkJCUNPTU1BTkQgcm0gLWYgJHtmaWxlfQorCQkJCVJFU1VMVF9WQVJJQUJMRSByZXRjb2RlCisJCQkpCisKKwkJaWYoTk9UICIke3JldGNvZGV9IiBTVFJFUVVBTCAiMCIpCisJCQltZXNzYWdlKFdBUk5JTkcgIkZhaWxlZCB0byByZW1vdmU6ICR7ZmlsZX0iKQorCQllbmRpZigpCisJZW5kaWYoKQorZW5kZm9yZWFjaChmaWxlKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy91bml4L3Bvc2l4bGliL2luY2x1ZGUvcG9zaXgvaW5ldC5oIGIvY29udHJpYi9wb3J0cy91bml4L3Bvc2l4bGliL2luY2x1ZGUvcG9zaXgvaW5ldC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3YmMxMjQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvcG9zaXhsaWIvaW5jbHVkZS9wb3NpeC9pbmV0LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMyBKb2FuIExsZWTzIDxqbGxlZG9tQG1lbWJlci5mc2Yub3JnPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVVJEX0xXSVBfUE9TSVhfSU5FVF9ICisjZGVmaW5lIEhVUkRfTFdJUF9QT1NJWF9JTkVUX0gKKworI2luY2x1ZGUgPGFycGEvaW5ldC5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNpbmNsdWRlIDxuZXRpbmV0L3RjcC5oPgorI2luY2x1ZGUgPG5ldGluZXQvdWRwLmg+CisjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxuZXQvaWYuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisjaWYgTFdJUF9JUFY0CisKKyNkZWZpbmUgaW5ldF9hZGRyX2Zyb21faXA0YWRkcih0YXJnZXRfaW5hZGRyLCBzb3VyY2VfaXBhZGRyKSAoKHRhcmdldF9pbmFkZHIpLT5zX2FkZHIgPSBpcDRfYWRkcl9nZXRfdTMyKHNvdXJjZV9pcGFkZHIpKQorI2RlZmluZSBpbmV0X2FkZHJfdG9faXA0YWRkcih0YXJnZXRfaXBhZGRyLCBzb3VyY2VfaW5hZGRyKSAgIChpcDRfYWRkcl9zZXRfdTMyKHRhcmdldF9pcGFkZHIsIChzb3VyY2VfaW5hZGRyKS0+c19hZGRyKSkKKworI2lmZGVmIExXSVBfVU5JWF9IVVJECisjZGVmaW5lIElQX1BLVElORk8gIDgKKworc3RydWN0IGluX3BrdGluZm8geworICB1bnNpZ25lZCBpbnQgICBpcGlfaWZpbmRleDsgIC8qIEludGVyZmFjZSBpbmRleCAqLworICBzdHJ1Y3QgaW5fYWRkciBpcGlfYWRkcjsgICAgIC8qIERlc3RpbmF0aW9uIChmcm9tIGhlYWRlcikgYWRkcmVzcyAqLworfTsKKyNlbmRpZiAvKiBMV0lQX1VOSVhfSFVSRCAqLworCisjZW5kaWYgLyogTFdJUF9JUFY0ICovCisKKyNpZiBMV0lQX0lQVjYKKyNkZWZpbmUgaW5ldDZfYWRkcl9mcm9tX2lwNmFkZHIodGFyZ2V0X2luNmFkZHIsIHNvdXJjZV9pcDZhZGRyKSB7KHRhcmdldF9pbjZhZGRyKS0+czZfYWRkcjMyWzBdID0gKHNvdXJjZV9pcDZhZGRyKS0+YWRkclswXTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFyZ2V0X2luNmFkZHIpLT5zNl9hZGRyMzJbMV0gPSAoc291cmNlX2lwNmFkZHIpLT5hZGRyWzFdOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YXJnZXRfaW42YWRkciktPnM2X2FkZHIzMlsyXSA9IChzb3VyY2VfaXA2YWRkciktPmFkZHJbMl07IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRhcmdldF9pbjZhZGRyKS0+czZfYWRkcjMyWzNdID0gKHNvdXJjZV9pcDZhZGRyKS0+YWRkclszXTt9CisjZGVmaW5lIGluZXQ2X2FkZHJfdG9faXA2YWRkcih0YXJnZXRfaXA2YWRkciwgc291cmNlX2luNmFkZHIpICAgeyh0YXJnZXRfaXA2YWRkciktPmFkZHJbMF0gPSAoc291cmNlX2luNmFkZHIpLT5zNl9hZGRyMzJbMF07IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRhcmdldF9pcDZhZGRyKS0+YWRkclsxXSA9IChzb3VyY2VfaW42YWRkciktPnM2X2FkZHIzMlsxXTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGFyZ2V0X2lwNmFkZHIpLT5hZGRyWzJdID0gKHNvdXJjZV9pbjZhZGRyKS0+czZfYWRkcjMyWzJdOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YXJnZXRfaXA2YWRkciktPmFkZHJbM10gPSAoc291cmNlX2luNmFkZHIpLT5zNl9hZGRyMzJbM107IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXA2X2FkZHJfY2xlYXJfem9uZSh0YXJnZXRfaXA2YWRkcik7fQorLyogQVRURU5USU9OOiB0aGUgbmV4dCBkZWZpbmUgb25seSB3b3JrcyBiZWNhdXNlIGJvdGggaW42X2FkZHIgYW5kIGlwNl9hZGRyX3QgYXJlIGFuIHUzMl90WzRdIGVmZmVjdGl2ZWx5ISAqLworI2RlZmluZSBpbmV0Nl9hZGRyX3RvX2lwNmFkZHJfcCh0YXJnZXRfaXA2YWRkcl9wLCBzb3VyY2VfaW42YWRkcikgICAoKHRhcmdldF9pcDZhZGRyX3ApID0gKGlwNl9hZGRyX3QqKShzb3VyY2VfaW42YWRkcikpCisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBIVVJEX0xXSVBfUE9TSVhfSU5FVF9IICovCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvcG9zaXhsaWIvaW5jbHVkZS9wb3NpeC9zb2NrZXRzLmggYi9jb250cmliL3BvcnRzL3VuaXgvcG9zaXhsaWIvaW5jbHVkZS9wb3NpeC9zb2NrZXRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM5MDA2NgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3NpeGxpYi9pbmNsdWRlL3Bvc2l4L3NvY2tldHMuaApAQCAtMCwwICsxLDE1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMyBKb2FuIExsZWTzIDxqbGxlZG9tQG1lbWJlci5mc2Yub3JnPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBIVVJEX0xXSVBfUE9TSVhfU09DS0VUX0gKKyNkZWZpbmUgSFVSRF9MV0lQX1BPU0lYX1NPQ0tFVF9ICisKKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjaW5jbHVkZSA8cG9sbC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSBMV0lQX1NPQ0tFVF9FWFRFUk5BTF9IRUFERVJfSU5FVF9ICit0eXBlZGVmIHNpemVfdCBtc2dfaW92bGVuX3Q7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworI2lmZGVmIF9IQVZFX1NBX0xFTgorI2RlZmluZSBIQVZFX1NBX0xFTglfSEFWRV9TQV9MRU4KKyNlbHNlCisjZGVmaW5lIEhBVkVfU0FfTEVOCTAKKyNlbmRpZiAvKiBfSEFWRV9TQV9MRU4gKi8KKworLyogQWRkcmVzcyBsZW5ndGggc2FmZSByZWFkIGFuZCB3cml0ZSAqLworI2lmIEhBVkVfU0FfTEVOCisjZGVmaW5lIElQNEFERFJfU09DS0FERFJfU0VUX0xFTihzaW4pIFwKKyAgICAgIChzaW4pLT5zaW5fbGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikKKyNkZWZpbmUgSVA2QUREUl9TT0NLQUREUl9TRVRfTEVOKHNpbjYpIFwKKyAgICAgIChzaW42KS0+c2luNl9sZW4gPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luNikKKyNkZWZpbmUgSVBBRERSX1NPQ0tBRERSX0dFVF9MRU4oYWRkcikgXAorICAgICAgKGFkZHIpLT5zYS5zYV9sZW4KKyNlbHNlCisjZGVmaW5lIElQNEFERFJfU09DS0FERFJfU0VUX0xFTihhZGRyKQorI2RlZmluZSBJUDZBRERSX1NPQ0tBRERSX1NFVF9MRU4oYWRkcikKKyNkZWZpbmUgSVBBRERSX1NPQ0tBRERSX0dFVF9MRU4oYWRkcikgXAorICAgICAgKChhZGRyKS0+c2Euc2FfZmFtaWx5ID09IEFGX0lORVQgPyBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSBcCisgICAgICAgIDogKChhZGRyKS0+c2Euc2FfZmFtaWx5ID09IEFGX0lORVQ2ID8gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbjYpIDogMCkpCisjZW5kaWYgLyogSEFWRV9TQV9MRU4gKi8KKworI2RlZmluZSBTSU5fWkVST19MRU4Jc2l6ZW9mIChzdHJ1Y3Qgc29ja2FkZHIpIC0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgX19TT0NLQUREUl9DT01NT05fU0laRSAtIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoaW5fcG9ydF90KSAtIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoc3RydWN0IGluX2FkZHIpCisKKyNpZiAhZGVmaW5lZCBJT1ZfTUFYCisjZGVmaW5lIElPVl9NQVggMHhGRkZGCisjZWxpZiBJT1ZfTUFYID4gMHhGRkZGCisjZXJyb3IgIklPVl9NQVggbGFyZ2VyIHRoYW4gc3VwcG9ydGVkIGJ5IEx3SVAiCisjZW5kaWYgLyogSU9WX01BWCAqLworCisjZGVmaW5lIExXSVBfU0VMRUNUX01BWE5GRFMgKEZEX1NFVFNJWkUgKyBMV0lQX1NPQ0tFVF9PRkZTRVQpCisKKyNpZiBMV0lQX1VEUCAmJiBMV0lQX1VEUExJVEUKKy8qCisgKiBPcHRpb25zIGZvciBsZXZlbCBJUFBST1RPX1VEUExJVEUKKyAqLworI2RlZmluZSBVRFBMSVRFX1NFTkRfQ1NDT1YgMHgwMSAvKiBzZW5kZXIgY2hlY2tzdW0gY292ZXJhZ2UgKi8KKyNkZWZpbmUgVURQTElURV9SRUNWX0NTQ09WIDB4MDIgLyogbWluaW1hbCByZWNlaXZlciBjaGVja3N1bSBjb3ZlcmFnZSAqLworI2VuZGlmIC8qIExXSVBfVURQICYmIExXSVBfVURQTElURSovCisKKyNpZiAwCit2b2lkIGx3aXBfc29ja2V0X3RocmVhZF9pbml0KHZvaWQpOyAvKiBMV0lQX05FVENPTk5fU0VNX1BFUl9USFJFQUQ9PTE6IGluaXRpYWxpemUgdGhyZWFkLWxvY2FsIHNlbWFwaG9yZSAqLwordm9pZCBsd2lwX3NvY2tldF90aHJlYWRfY2xlYW51cCh2b2lkKTsgLyogTFdJUF9ORVRDT05OX1NFTV9QRVJfVEhSRUFEPT0xOiBkZXN0cm95IHRocmVhZC1sb2NhbCBzZW1hcGhvcmUgKi8KKworaW50IGx3aXBfYWNjZXB0KGludCBzLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsIHNvY2tsZW5fdCAqYWRkcmxlbik7CitpbnQgbHdpcF9iaW5kKGludCBzLCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKm5hbWUsIHNvY2tsZW5fdCBuYW1lbGVuKTsKK2ludCBsd2lwX3NodXRkb3duKGludCBzLCBpbnQgaG93KTsKK2ludCBsd2lwX2dldHBlZXJuYW1lIChpbnQgcywgc3RydWN0IHNvY2thZGRyICpuYW1lLCBzb2NrbGVuX3QgKm5hbWVsZW4pOworaW50IGx3aXBfZ2V0c29ja25hbWUgKGludCBzLCBzdHJ1Y3Qgc29ja2FkZHIgKm5hbWUsIHNvY2tsZW5fdCAqbmFtZWxlbik7CitpbnQgbHdpcF9nZXRzb2Nrb3B0IChpbnQgcywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwgdm9pZCAqb3B0dmFsLCBzb2NrbGVuX3QgKm9wdGxlbik7CitpbnQgbHdpcF9zZXRzb2Nrb3B0IChpbnQgcywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwgY29uc3Qgdm9pZCAqb3B0dmFsLCBzb2NrbGVuX3Qgb3B0bGVuKTsKKyBpbnQgbHdpcF9jbG9zZShpbnQgcyk7CitpbnQgbHdpcF9jb25uZWN0KGludCBzLCBjb25zdCBzdHJ1Y3Qgc29ja2FkZHIgKm5hbWUsIHNvY2tsZW5fdCBuYW1lbGVuKTsKK2ludCBsd2lwX2xpc3RlbihpbnQgcywgaW50IGJhY2tsb2cpOworc3NpemVfdCBsd2lwX3JlY3YoaW50IHMsIHZvaWQgKm1lbSwgc2l6ZV90IGxlbiwgaW50IGZsYWdzKTsKK3NzaXplX3QgbHdpcF9yZWFkKGludCBzLCB2b2lkICptZW0sIHNpemVfdCBsZW4pOworc3NpemVfdCBsd2lwX3JlYWR2KGludCBzLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKmlvdiwgaW50IGlvdmNudCk7Citzc2l6ZV90IGx3aXBfcmVjdmZyb20oaW50IHMsIHZvaWQgKm1lbSwgc2l6ZV90IGxlbiwgaW50IGZsYWdzLAorICAgICAgc3RydWN0IHNvY2thZGRyICpmcm9tLCBzb2NrbGVuX3QgKmZyb21sZW4pOworc3NpemVfdCBsd2lwX3JlY3Ztc2coaW50IHMsIHN0cnVjdCBtc2doZHIgKm1lc3NhZ2UsIGludCBmbGFncyk7Citzc2l6ZV90IGx3aXBfc2VuZChpbnQgcywgY29uc3Qgdm9pZCAqZGF0YXB0ciwgc2l6ZV90IHNpemUsIGludCBmbGFncyk7Citzc2l6ZV90IGx3aXBfc2VuZG1zZyhpbnQgcywgY29uc3Qgc3RydWN0IG1zZ2hkciAqbWVzc2FnZSwgaW50IGZsYWdzKTsKK3NzaXplX3QgbHdpcF9zZW5kdG8oaW50IHMsIGNvbnN0IHZvaWQgKmRhdGFwdHIsIHNpemVfdCBzaXplLCBpbnQgZmxhZ3MsCisgICAgY29uc3Qgc3RydWN0IHNvY2thZGRyICp0bywgc29ja2xlbl90IHRvbGVuKTsKK2ludCBsd2lwX3NvY2tldChpbnQgZG9tYWluLCBpbnQgdHlwZSwgaW50IHByb3RvY29sKTsKK3NzaXplX3QgbHdpcF93cml0ZShpbnQgcywgY29uc3Qgdm9pZCAqZGF0YXB0ciwgc2l6ZV90IHNpemUpOworc3NpemVfdCBsd2lwX3dyaXRldihpbnQgcywgY29uc3Qgc3RydWN0IGlvdmVjICppb3YsIGludCBpb3ZjbnQpOworI2lmIExXSVBfU09DS0VUX1NFTEVDVAoraW50IGx3aXBfc2VsZWN0KGludCBtYXhmZHAxLCBmZF9zZXQgKnJlYWRzZXQsIGZkX3NldCAqd3JpdGVzZXQsIGZkX3NldCAqZXhjZXB0c2V0LAorICAgICAgICAgICAgICAgIHN0cnVjdCB0aW1ldmFsICp0aW1lb3V0KTsKKyNlbmRpZgorI2lmIExXSVBfU09DS0VUX1BPTEwKK2ludCBsd2lwX3BvbGwoc3RydWN0IHBvbGxmZCAqZmRzLCBuZmRzX3QgbmZkcywgaW50IHRpbWVvdXQpOworI2VuZGlmCitpbnQgbHdpcF9pb2N0bChpbnQgcywgbG9uZyBjbWQsIHZvaWQgKmFyZ3ApOworaW50IGx3aXBfZmNudGwoaW50IHMsIGludCBjbWQsIGludCB2YWwpOworY29uc3QgY2hhciAqbHdpcF9pbmV0X250b3AoaW50IGFmLCBjb25zdCB2b2lkICpzcmMsIGNoYXIgKmRzdCwgc29ja2xlbl90IHNpemUpOworaW50IGx3aXBfaW5ldF9wdG9uKGludCBhZiwgY29uc3QgY2hhciAqc3JjLCB2b2lkICpkc3QpOworI2VuZGlmCisKKy8qIFVuc3Vwb3J0ZWQgaW5kZXRpZmllcnMgKi8KKyNpZm5kZWYgU09fTk9fQ0hFQ0sKKyNkZWZpbmUgU09fTk9fQ0hFQ0sgICAgICAgICAweEZGCisjZW5kaWYKKyNpZm5kZWYgU09fQklORFRPREVWSUNFCisjZGVmaW5lIFNPX0JJTkRUT0RFVklDRSAgICAgMHhGRQorI2VuZGlmCisjaWZuZGVmIE1TR19NT1JFCisjZGVmaW5lIE1TR19NT1JFICAgICAgICAgICAgMHgwCisjZW5kaWYKKyNpZm5kZWYgVENQX0tFRVBBTElWRQorI2RlZmluZSBUQ1BfS0VFUEFMSVZFICAgICAgIDB4RkYKKyNlbmRpZgorI2lmbmRlZiBUQ1BfS0VFUElETEUKKyNkZWZpbmUgVENQX0tFRVBJRExFICAgICAgICAweEZFCisjZW5kaWYKKyNpZm5kZWYgVENQX0tFRVBJTlRWTAorI2RlZmluZSBUQ1BfS0VFUElOVFZMICAgICAgIDB4RkQKKyNlbmRpZgorI2lmbmRlZiBUQ1BfS0VFUENOVAorI2RlZmluZSBUQ1BfS0VFUENOVCAgICAgICAgIDB4RkMKKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogSFVSRF9MV0lQX1BPU0lYX1NPQ0tFVF9IICovCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvcG9zaXhsaWIvbHdpcG9wdHMuaCBiL2NvbnRyaWIvcG9ydHMvdW5peC9wb3NpeGxpYi9sd2lwb3B0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiMzhhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3VuaXgvcG9zaXhsaWIvbHdpcG9wdHMuaApAQCAtMCwwICsxLDE4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMyBKb2FuIExsZWTzIDxqbGxlZG9tQG1lbWJlci5mc2Yub3JnPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBVTklYX0xXSVBfTFdJUE9QVFNfSAorI2RlZmluZSBVTklYX0xXSVBfTFdJUE9QVFNfSAorCisvKiBBbiBPUyBpcyBwcmVzZW50ICovCisjZGVmaW5lIE5PX1NZUyAgICAwCisKKy8qIFNvY2tldHMgQVBJIGNvbmZpZyAqLworI2RlZmluZSBMV0lQX0NPTVBBVF9TT0NLRVRTICAgICAgIDAKKyNkZWZpbmUgTFdJUF9TT0NLRVRfT0ZGU0VUICAgICAgICAxCisjZGVmaW5lIExXSVBfUE9MTCAgICAgICAgICAgICAgICAgMQorCisvKiBVc2VyIHBvc2l4IHNvY2tldCBoZWFkZXJzICovCisjZGVmaW5lIExXSVBfU09DS0VUX0VYVEVSTkFMX0hFQURFUlMgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU09DS0VUX0VYVEVSTkFMX0hFQURFUl9TT0NLRVRTX0ggICAicG9zaXgvc29ja2V0cy5oIgorI2RlZmluZSBMV0lQX1NPQ0tFVF9FWFRFUk5BTF9IRUFERVJfSU5FVF9IICAgICAgInBvc2l4L2luZXQuaCIKKyNkZWZpbmUgTFdJUF9ET05UX1BST1ZJREVfQllURU9SREVSX0ZVTkNUSU9OUyAgIDEKKworLyogVXNlIEdsaWJjIG1hbGxvYygpL2ZyZWUoKSAqLworI2RlZmluZSBNRU1fTElCQ19NQUxMT0MgICAxCisjZGVmaW5lIE1FTVBfTUVNX01BTExPQyAgIDEKKyNkZWZpbmUgTUVNX1VTRV9QT09MUyAgICAgMAorCisvKiBPbmx5IHNlbmQgY29tcGxldGUgcGFja2V0cyB0byB0aGUgZGV2aWNlICovCisjZGVmaW5lIExXSVBfTkVUSUZfVFhfU0lOR0xFX1BCVUYgMQorCisvKiBSYW5kb21pemUgbG9jYWwgcG9ydHMgKi8KKyNkZWZpbmUgTFdJUF9SQU5ET01JWkVfSU5JVElBTF9MT0NBTF9QT1JUUyAgMQorCisvKiBHbGliYyBzZW5kcyBtb3JlIHRoYW4gb25lIHBhY2tldCBpbiBhIHJvdyBkdXJpbmcgYW4gQVJQIHJlc29sdXRpb24gKi8KKyNkZWZpbmUgQVJQX1FVRVVFSU5HICAgIDEKKyNkZWZpbmUgQVJQX1FVRVVFX0xFTiAgIDEwCisKKy8qCisgKiBBY3RpdmF0ZSBsb29wYmFjaywgYnV0IGRvbid0IHVzZSBsd2lwJ3MgZGVmYXVsdCBsb29wYmFjayBpbnRlcmZhY2UsCisgKiB3ZSBwcm92aWRlIG91ciBvd24uCisgKi8KKyNkZWZpbmUgTFdJUF9ORVRJRl9MT09QQkFDSyAgIDEKKyNkZWZpbmUgTFdJUF9IQVZFX0xPT1BJRiAgICAgIDAKKworLyogSVB2NCBzdHVmZiAqLworI2RlZmluZSBJUF9GT1JXQVJEICAxCisKKy8qIFNMQUFDIHN1cHBvcnQgYW5kIG90aGVyIElQdjYgc3R1ZmYgKi8KKyNkZWZpbmUgTFdJUF9JUFY2X0RVUF9ERVRFQ1RfQVRURU1QVFMgMQorI2RlZmluZSBMV0lQX0lQVjZfU0VORF9ST1VURVJfU09MSUNJVCAxCisjZGVmaW5lIExXSVBfSVBWNl9BVVRPQ09ORklHICAgICAgICAgIDEKKyNkZWZpbmUgTFdJUF9JUFY2X0ZPUldBUkQgICAgICAgICAgICAgMQorI2RlZmluZSBNRU1QX05VTV9NTEQ2X0dST1VQICAgICAgICAgICAxNgorI2RlZmluZSBMV0lQX0lQVjZfTlVNX0FERFJFU1NFUyAgICAgICA2CisjZGVmaW5lIElQVjZfRlJBR19DT1BZSEVBREVSICAgICAgICAgIDEKKworLyogVENQIHR1bmluZyAqLworI2RlZmluZSBUQ1BfTVNTICAgICAgICAgMTQ2MAorI2RlZmluZSBUQ1BfV05EICAgICAgICAgMHhGRkZGCisjZGVmaW5lIExXSVBfV05EX1NDQUxFICAxCisjZGVmaW5lIFRDUF9SQ1ZfU0NBTEUgICAweDEKKyNkZWZpbmUgVENQX1NORF9CVUYgICAgIFRDUF9XTkQKKworLyogVGhyb3VnaHB1dCBzZXR0aW5ncyAqLworI2RlZmluZSBMV0lQX0NIRUNLU1VNX09OX0NPUFkgICAxCisKKy8qIERpc2FibGUgc3RhdHMgKi8KKyNkZWZpbmUgTFdJUF9TVEFUUyAgICAgICAgICAwCisjZGVmaW5lIExXSVBfU1RBVFNfRElTUExBWSAgMAorCisvKiBFbmFibGUgYWxsIHNvY2tldCBvcGVyYXRpb25zICovCisjZGVmaW5lIExXSVBfVENQX0tFRVBBTElWRSAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU09fU05EVElNRU8gICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU09fUkNWVElNRU8gICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU09fUkNWQlVGICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfU09fTElOR0VSICAgICAgICAgICAgICAxCisjZGVmaW5lIFNPX1JFVVNFICAgICAgICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfTVVMVElDQVNUX1RYX09QVElPTlMgICAxCisKKy8qIEVuYWJsZSBtb2R1bGVzICovCisjZGVmaW5lIExXSVBfQVJQICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfRVRIRVJORVQgICAgICAgICAxCisjZGVmaW5lIExXSVBfSVBWNCAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfSUNNUCAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfSUdNUCAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfUkFXICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfVURQICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfVURQTElURSAgICAgICAgICAxCisjZGVmaW5lIExXSVBfVENQICAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfSVBWNiAgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfSUNNUDYgICAgICAgICAgICAxCisjZGVmaW5lIExXSVBfSVBWNl9NTEQgICAgICAgICAxCisKKy8qIERvbid0IGFib3J0IHRoZSB3aG9sZSBzdGFjayB3aGVuIGFuIGVycm9yIGlzIGRldGVjdGVkICovCisjZGVmaW5lIExXSVBfTk9BU1NFUlRfT05fRVJST1IgICAxCisKKy8qIFRocmVhZGluZyBvcHRpb25zICovCisjZGVmaW5lIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HICAgMQorCisvKiBJZiB0aGUgc3lzdGVtIGlzIDY0IGJpdCAqLworI2lmIGRlZmluZWQgX19MUDY0X18KKyNkZWZpbmUgTUVNX0FMSUdOTUVOVCAgICAgICAgICAgIDgKKyNlbHNlCisjZGVmaW5lIE1FTV9BTElHTk1FTlQgICAgICAgICAgICA0CisjZW5kaWYKKworI2lmICFOT19TWVMKK3ZvaWQgc3lzX2NoZWNrX2NvcmVfbG9ja2luZyh2b2lkKTsKKyNkZWZpbmUgTFdJUF9BU1NFUlRfQ09SRV9MT0NLRUQoKSAgc3lzX2NoZWNrX2NvcmVfbG9ja2luZygpCisjaWYgMAordm9pZCBzeXNfbWFya190Y3BpcF90aHJlYWQodm9pZCk7CisjZGVmaW5lIExXSVBfTUFSS19UQ1BJUF9USFJFQUQoKSAgIHN5c19tYXJrX3RjcGlwX3RocmVhZCgpCisKKyNpZiBMV0lQX1RDUElQX0NPUkVfTE9DS0lORwordm9pZCBzeXNfbG9ja190Y3BpcF9jb3JlKHZvaWQpOworI2RlZmluZSBMT0NLX1RDUElQX0NPUkUoKSAgICAgICAgICBzeXNfbG9ja190Y3BpcF9jb3JlKCkKK3ZvaWQgc3lzX3VubG9ja190Y3BpcF9jb3JlKHZvaWQpOworI2RlZmluZSBVTkxPQ0tfVENQSVBfQ09SRSgpICAgICAgICBzeXNfdW5sb2NrX3RjcGlwX2NvcmUoKQorI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorCisvKiBEZWJ1ZyBtb2RlICovCisjaWZkZWYgTFdJUF9ERUJVRworI2RlZmluZSBFVEhBUlBfREVCVUcgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgTkVUSUZfREVCVUcgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFBCVUZfREVCVUcgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBBUElfTElCX0RFQlVHICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgQVBJX01TR19ERUJVRyAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFNPQ0tFVFNfREVCVUcgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJQ01QX0RFQlVHICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgSUdNUF9ERUJVRyAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIElORVRfREVCVUcgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBJUF9ERUJVRyAgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgSVBfUkVBU1NfREVCVUcgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFJBV19ERUJVRyAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBNRU1fREVCVUcgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgTUVNUF9ERUJVRyAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFNZU19ERUJVRyAgICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUSU1FUlNfREVCVUcgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX0RFQlVHICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9JTlBVVF9ERUJVRyAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfRlJfREVCVUcgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX1JUT19ERUJVRyAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9DV05EX0RFQlVHICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfV05EX0RFQlVHICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVENQX09VVFBVVF9ERUJVRyAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUF9SU1RfREVCVUcgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBUQ1BfUUxFTl9ERUJVRyAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgVURQX0RFQlVHICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIFRDUElQX0RFQlVHICAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBTTElQX0RFQlVHICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgREhDUF9ERUJVRyAgICAgICAgTFdJUF9EQkdfT0ZGCisjZGVmaW5lIEFVVE9JUF9ERUJVRyAgICAgIExXSVBfREJHX09GRgorI2RlZmluZSBETlNfREVCVUcgICAgICAgICBMV0lQX0RCR19PRkYKKyNkZWZpbmUgSVA2X0RFQlVHICAgICAgICAgTFdJUF9EQkdfT0ZGCisjZW5kaWYKKworI2VuZGlmIC8qIFVOSVhfTFdJUF9MV0lQT1BUU19IICovCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3VuaXgvc2V0dXAtdGFwaWYgYi9jb250cmliL3BvcnRzL3VuaXgvc2V0dXAtdGFwaWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDVjNDkzNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvdW5peC9zZXR1cC10YXBpZgpAQCAtMCwwICsxLDIyIEBACisjIS9iaW4vYmFzaAorCisjIFRoaXMgc2NyaXB0IG5lZWRzIGJyaWRnZS11dGlsIGRlYmlhbiBwYWNrYWdlIG9yIHNpbWlsYXIKKyMgZm9yIG90aGVyIGRpc3Ryb3MuCisKKyMgUnVuIHVzaW5nICJzb3VyY2Ugc2V0dXAtdGFwaWYiIHRvIGdldCBleHBvcnRlZCBQUkVDT05GSUdVUkVEX1RBUElGIHZhcmlhYmxlCisjIEFsdGVybmF0aXZlbHksIGFkZCAiZXhwb3J0IFBSRUNPTkZJR1VSRURfVEFQSUY9dGFwMCIgdG8gfi8uYmFzaHJjCisKKyMgaHR0cDovL2JhY2tyZWZlcmVuY2Uub3JnLzIwMTAvMDMvMjYvdHVudGFwLWludGVyZmFjZS10dXRvcmlhbC8KKworIyBBZnRlciBleGVjdXRpbmcgdGhpcyBzY3JpcHQsIHN0YXJ0IGV4YW1wbGVfYXBwLgorIyBFbnRlciAxOTIuMTY4LjEuMjAwIG9yICJodHRwOi8vbHdpcC5sb2NhbC8iIChaZXJvY29uZikKKyMgaW4geW91ciB3ZWJicm93c2VyIHRvIHNlZSBleGFtcGxlX2FwcCB3ZWJwYWdlLgorCitleHBvcnQgUFJFQ09ORklHVVJFRF9UQVBJRj10YXAwCisKK3N1ZG8gaXAgdHVudGFwIGFkZCBkZXYgJFBSRUNPTkZJR1VSRURfVEFQSUYgbW9kZSB0YXAgdXNlciBgd2hvYW1pYAorc3VkbyBpcCBsaW5rIHNldCAkUFJFQ09ORklHVVJFRF9UQVBJRiB1cAorc3VkbyBicmN0bCBhZGRiciBsd2lwYnJpZGdlCitzdWRvIGJyY3RsIGFkZGlmIGx3aXBicmlkZ2UgJFBSRUNPTkZJR1VSRURfVEFQSUYKK3N1ZG8gaXAgYWRkciBhZGQgMTkyLjE2OC4xLjEvMjQgZGV2IGx3aXBicmlkZ2UKK3N1ZG8gaXAgbGluayBzZXQgZGV2IGx3aXBicmlkZ2UgdXAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvQ29tbW9uLm1rIGIvY29udHJpYi9wb3J0cy93aW4zMi9Db21tb24ubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI2MDE2MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvQ29tbW9uLm1rCkBAIC0wLDAgKzEsNTEgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAorIyAKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisjIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyMKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorIyAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisjICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyMgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgCisjIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyMgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCAKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyMgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiAKKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyMgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorIyBPRiBTVUNIIERBTUFHRS4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorIyAKKyMgQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyMKKworQ0M9Z2NjCisKKyMgQXJjaGl0ZWN0dXJlIHNwZWNpZmljIGZpbGVzLgorTFdJUEFSQ0g/PSQoQ09OVFJJQkRJUikvcG9ydHMvd2luMzIKK1NZU0FSQ0g/PSQoTFdJUEFSQ0gpL3N5c19hcmNoLmMKK0FSQ0hGSUxFUz0kKFNZU0FSQ0gpICQoTFdJUEFSQ0gpL3BjYXBpZi5jIFwKKwkkKExXSVBBUkNIKS9wY2FwaWZfaGVscGVyLmMgJChMV0lQQVJDSCkvc2lvLmMKKworV0lOMzJfQ09NTU9OX01LX0RJUiA6PSAkKGRpciAkKGFic3BhdGggJChsYXN0d29yZCAkKE1BS0VGSUxFX0xJU1QpKSkpCitpbmNsdWRlICQoV0lOMzJfQ09NTU9OX01LX0RJUikvLi4vQ29tbW9uLmFsbHBvcnRzLm1rCisKK1BDQVBESVI9JChQQ0FQX0RJUikvSW5jbHVkZQorTERGTEFHUys9LUwkKFBDQVBfRElSKS9saWIgLWx3cGNhcCAtbHBhY2tldAorIyAtV25vLWZvcm1hdDogR0NDIGNvbXBsYWlucyBhYm91dCBub24tc3RhbmRhcmQgNjQgYml0IG1vZGlmaWVyIG5lZWRlZCBmb3IgTVNWQyBydW50aW1lCitDRkxBR1MrPS1JJChQQ0FQRElSKSAtV25vLWZvcm1hdAorCitwY2FwaWYubzoKKwkkKENDKSAkKENGTEFHUykgLVduby1lcnJvciAtV25vLXJlZHVuZGFudC1kZWNscyAtYyAkKDw6Lm89LmMpCitwY2FwaWZfaGVscGVyLm86CisJJChDQykgJChDRkxBR1MpIC1zdGQ9Yzk5IC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1jICQoPDoubz0uYykKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvRmlsZWxpc3RzLmNtYWtlIGIvY29udHJpYi9wb3J0cy93aW4zMi9GaWxlbGlzdHMuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZlMDJhNQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvRmlsZWxpc3RzLmNtYWtlCkBAIC0wLDAgKzEsNDYgQEAKKyMgVGhpcyBmaWxlIGlzIGluZGVuZGVkIHRvIGJlIGluY2x1ZGVkIGluIGVuZC11c2VyIENNYWtlTGlzdHMudHh0CisjIGluY2x1ZGUoL3BhdGgvdG8vRmlsZWxpc3RzLmNtYWtlKQorIyBJdCBhc3N1bWVzIHRoZSB2YXJpYWJsZSBMV0lQX0NPTlRSSUJfRElSIGlzIGRlZmluZWQgcG9pbnRpbmcgdG8gdGhlCisjIHJvb3QgcGF0aCBvZiBsd0lQL2NvbnRyaWIgc291cmNlcy4KKyMKKyMgVGhpcyBmaWxlIGlzIE5PVCBkZXNpZ25lZCAob24gcHVycG9zZSkgdG8gYmUgdXNlZCBhcyBjbWFrZQorIyBzdWJkaXIgdmlhIGFkZF9zdWJkaXJlY3RvcnkoKQorIyBUaGUgaW50ZW50aW9uIGlzIHRvIHByb3ZpZGUgZ3JlYXRlciBmbGV4aWJpbGl0eSB0byB1c2VycyB0bworIyBjcmVhdGUgdGhlaXIgb3duIHRhcmdldHMgdXNpbmcgdGhlICpfU1JDUyB2YXJpYWJsZXMuCisKK2lmKE5PVCAke0NNQUtFX1ZFUlNJT059IFZFUlNJT05fTEVTUyAiMy4xMC4wIikKKyAgICBpbmNsdWRlX2d1YXJkKEdMT0JBTCkKK2VuZGlmKCkKKworc2V0KGx3aXBjb250cmlicG9ydHdpbmRvd3NfU1JDUworICAgICR7TFdJUF9DT05UUklCX0RJUn0vcG9ydHMvd2luMzIvc3lzX2FyY2guYworICAgICR7TFdJUF9DT05UUklCX0RJUn0vcG9ydHMvd2luMzIvc2lvLmMKKyAgICAke0xXSVBfQ09OVFJJQl9ESVJ9L3BvcnRzL3dpbjMyL3BjYXBpZi5jCisgICAgJHtMV0lQX0NPTlRSSUJfRElSfS9wb3J0cy93aW4zMi9wY2FwaWZfaGVscGVyLmMKKykKKworIyBwY2FwaWYgbmVlZHMgV2luUGNhcCBkZXZlbG9wZXIgcGFja2FnZTogaHR0cHM6Ly93d3cud2lucGNhcC5vcmcvZGV2ZWwuaHRtCitpZihOT1QgREVGSU5FRCBXUERQQUNLX0RJUikKKyAgICBzZXQoV1BEUEFDS19ESVIgJHtMV0lQX0RJUn0vLi4vV3BkUGFjaykKKyAgICBtZXNzYWdlKFNUQVRVUyAiV1BEUEFDS19ESVIgbm90IHNldCAtIHVzaW5nIGRlZmF1bHQgbG9jYXRpb24gJHtXUERQQUNLX0RJUn0iKQorZW5kaWYoKQoraWYgKCR7Q01BS0VfU1lTVEVNX05BTUV9IFNUUkVRVUFMICJXaW5kb3dzIikKKyAgICBpZihDTUFLRV9TSVpFT0ZfVk9JRF9QIEVRVUFMIDgpCisgICAgICAgIHNldChXUERQQUNLX0xJQl9ESVIgJHtXUERQQUNLX0RJUn0vbGliL3g2NCkKKyAgICBlbHNlKCkKKyAgICAgICAgc2V0KFdQRFBBQ0tfTElCX0RJUiAke1dQRFBBQ0tfRElSfS9saWIpCisgICAgZW5kaWYoKQorICAgIHNldChXUENBUCAgJHtXUERQQUNLX0xJQl9ESVJ9L3dwY2FwLmxpYikKKyAgICBzZXQoUEFDS0VUICR7V1BEUEFDS19MSUJfRElSfS9wYWNrZXQubGliKQorZWxzZSgpCisgICAgZmluZF9saWJyYXJ5KFdQQ0FQICB3cGNhcCAgSElOVFMgJHtXUERQQUNLX0RJUn0vbGliL3g2NCkKKyAgICBmaW5kX2xpYnJhcnkoUEFDS0VUIHBhY2tldCBISU5UUyAke1dQRFBBQ0tfRElSfS9saWIveDY0KQorZW5kaWYoKQorbWVzc2FnZShTVEFUVVMgIldQQ0FQIGxpYnJhcnk6ICR7V1BDQVB9IikKK21lc3NhZ2UoU1RBVFVTICJQQUNLRVQgbGlicmFyeTogJHtQQUNLRVR9IikKKworYWRkX2xpYnJhcnkobHdpcGNvbnRyaWJwb3J0d2luZG93cyBFWENMVURFX0ZST01fQUxMICR7bHdpcGNvbnRyaWJwb3J0d2luZG93c19TUkNTfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKGx3aXBjb250cmlicG9ydHdpbmRvd3MgUFJJVkFURSAke0xXSVBfSU5DTFVERV9ESVJTfSAiJHtXUERQQUNLX0RJUn0vaW5jbHVkZSIgJHtMV0lQX01CRURUTFNfSU5DTFVERV9ESVJTfSkKK3RhcmdldF9jb21waWxlX29wdGlvbnMobHdpcGNvbnRyaWJwb3J0d2luZG93cyBQUklWQVRFICR7TFdJUF9DT01QSUxFUl9GTEFHU30pCit0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhsd2lwY29udHJpYmFkZG9ucyBQUklWQVRFICR7TFdJUF9ERUZJTklUSU9OU30gJHtMV0lQX01CRURUTFNfREVGSU5JVElPTlN9KQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKGx3aXBjb250cmlicG9ydHdpbmRvd3MgUFVCTElDICR7V1BDQVB9ICR7UEFDS0VUfSAke0xXSVBfTUJFRFRMU19MSU5LX0xJQlJBUklFU30pCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3dpbjMyL2NoZWNrL2NoZWNrX3N0ZGludC5oIGIvY29udHJpYi9wb3J0cy93aW4zMi9jaGVjay9jaGVja19zdGRpbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmMxMDBkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9jaGVjay9jaGVja19zdGRpbnQuaApAQCAtMCwwICsxIEBACisvKiBkZWxpYmVyYXRlbGl5IGVtcHR5ICovCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3dpbjMyL2NoZWNrL2NvbmZpZy5oIGIvY29udHJpYi9wb3J0cy93aW4zMi9jaGVjay9jb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZWQ1OTFkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9jaGVjay9jb25maWcuaApAQCAtMCwwICsxLDI5IEBACisvKiBjb25maWcuaCBmb3IgY2hlY2stMC4xMS4wIG9uIHdpbjMyIHVuZGVyIE1TVkMvTWluR1cgKi8KKworI2lmZGVmIF9NU0NfVkVSCisKK3R5cGVkZWYgdW5zaWduZWQgaW50IHBpZF90OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDMyX3Q7CisKK3R5cGVkZWYgaW50IHNzaXplX3Q7CisKKyNkZWZpbmUgSEFWRV9ERUNMX1NUUkRVUCAxCisjZGVmaW5lIEhBVkVfREVDTF9GSUxFTk8gMQorI2RlZmluZSBIQVZFX0RFQ0xfUFVURU5WIDEKKworI2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUworCisvKiBkaXNhYmxlIHNvbWUgd2FybmluZ3MgKi8KKyNwcmFnbWEgd2FybmluZyAoZGlzYWJsZTogNDA5MCkgLyogY29uc3QgYXNzaWduZWQgdG8gbm9uLWNvbnN0ICovCisjcHJhZ21hIHdhcm5pbmcgKGRpc2FibGU6IDQ5OTYpIC8qIGZpbGVubyBpcyBkZXByZWNhdGVkICovCisKKyNlbmRpZiAvKiBfIE1TQ19WRVIgKi8KKworCisjZGVmaW5lIExXSVBfVU5JVFRFU1RTX05PRk9SSworCisjaW5jbHVkZSA8aW8uaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKwordHlwZWRlZiB1bnNpZ25lZCBpbnQgY2xvY2tpZF90OwordHlwZWRlZiB1bnNpZ25lZCBpbnQgdGltZXJfdDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvY2hlY2svc3RkYm9vbC5oIGIvY29udHJpYi9wb3J0cy93aW4zMi9jaGVjay9zdGRib29sLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWY1MDRkOQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvY2hlY2svc3RkYm9vbC5oCkBAIC0wLDAgKzEsOSBAQAorI2lmbmRlZiBNWV9TVERCT09MX0gKKyNkZWZpbmUgTVlfU1REQk9PTF9ICisKK3R5cGVkZWYgaW50IGJvb2w7CisjZGVmaW5lIHRydWUgMQorI2RlZmluZSBmYWxzZSAwCisjZGVmaW5lIF9fYm9vbF90cnVlX2ZhbHNlX2FyZV9kZWZpbmVkIDEKKworI2VuZGlmCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3dpbjMyL2NoZWNrL3N5cy90aW1lLmggYi9jb250cmliL3BvcnRzL3dpbjMyL2NoZWNrL3N5cy90aW1lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDcxZDgyNwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvY2hlY2svc3lzL3RpbWUuaApAQCAtMCwwICsxLDEyIEBACisjaWZuZGVmIExXSVBfU1lTX19USU1FX0gKKyNkZWZpbmUgTFdJUF9TWVNfX1RJTUVfSAorCisjaW5jbHVkZSA8c3RkbGliLmg+IC8qIHRpbWVfdCAqLworCitzdHJ1Y3QgdGltZXZhbCB7CisgIHRpbWVfdCAgICB0dl9zZWM7ICAgICAgICAgLyogc2Vjb25kcyAqLworICBsb25nICAgIHR2X3VzZWM7ICAgICAgICAvKiBhbmQgbWljcm9zZWNvbmRzICovCit9OworaW50IGdldHRpbWVvZmRheShzdHJ1Y3QgdGltZXZhbCogdHAsIHZvaWQqIHR6cCk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9jaGVjay90aW1lLmMgYi9jb250cmliL3BvcnRzL3dpbjMyL2NoZWNrL3RpbWUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTk0N2NkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9jaGVjay90aW1lLmMKQEAgLTAsMCArMSw2NiBAQAorI2luY2x1ZGUgPHRpbWUuaD4KKworI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpZiBkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9NU0NfRVhURU5TSU9OUykKKyAgI2RlZmluZSBERUxUQV9FUE9DSF9JTl9NSUNST1NFQ1MgIDExNjQ0NDczNjAwMDAwMDAwVWk2NAorI2Vsc2UKKyAgI2RlZmluZSBERUxUQV9FUE9DSF9JTl9NSUNST1NFQ1MgIDExNjQ0NDczNjAwMDAwMDAwVUxMCisjZW5kaWYKKworI2luY2x1ZGUgImNvbmZpZy5oIgorCitzdHJ1Y3QgdGltZXpvbmUKK3sKKyAgaW50IHR6X21pbnV0ZXN3ZXN0OyAvKiBtaW51dGVzIFcgb2YgR3JlZW53aWNoICovCisgIGludCB0el9kc3R0aW1lOyAgICAgLyogdHlwZSBvZiBkc3QgY29ycmVjdGlvbiAqLworfTsKKworaW50IGdldHRpbWVvZmRheShzdHJ1Y3QgdGltZXZhbCAqdHYsIHN0cnVjdCB0aW1lem9uZSAqdHopCit7CisgIEZJTEVUSU1FIGZ0OworICB1bnNpZ25lZCBfX2ludDY0IHRtcHJlcyA9IDA7CisgIHN0YXRpYyBpbnQgdHpmbGFnOworCisgIGlmIChOVUxMICE9IHR2KSB7CisgICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoJmZ0KTsKKworICAgIHRtcHJlcyB8PSBmdC5kd0hpZ2hEYXRlVGltZTsKKyAgICB0bXByZXMgPDw9IDMyOworICAgIHRtcHJlcyB8PSBmdC5kd0xvd0RhdGVUaW1lOworCisgICAgLypjb252ZXJ0aW5nIGZpbGUgdGltZSB0byB1bml4IGVwb2NoKi8KKyAgICB0bXByZXMgLT0gREVMVEFfRVBPQ0hfSU5fTUlDUk9TRUNTOworICAgIHRtcHJlcyAvPSAxMDsgIC8qY29udmVydCBpbnRvIG1pY3Jvc2Vjb25kcyovCisgICAgdHYtPnR2X3NlYyA9IChsb25nKSh0bXByZXMgLyAxMDAwMDAwVUwpOworICAgIHR2LT50dl91c2VjID0gKGxvbmcpKHRtcHJlcyAlIDEwMDAwMDBVTCk7CisgIH0KKworICBpZiAoTlVMTCAhPSB0eikgeworICAgIGlmICghdHpmbGFnKSB7CisgICAgICBfdHpzZXQoKTsKKyAgICAgIHR6ZmxhZysrOworICAgIH0KKyAgICB0ei0+dHpfbWludXRlc3dlc3QgPSBfdGltZXpvbmUgLyA2MDsKKyAgICB0ei0+dHpfZHN0dGltZSA9IF9kYXlsaWdodDsKKyAgfQorCisgIHJldHVybiAwOworfQorCitzdHJ1Y3QgdG0gKgorbG9jYWx0aW1lX3IoY29uc3QgdGltZV90ICp0aW1lciwgc3RydWN0IHRtICpyZXN1bHQpCit7CisgIHN0cnVjdCB0bSAqbG9jYWxfcmVzdWx0OworCisgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgIHJldHVybiBOVUxMOworICB9CisKKyAgbG9jYWxfcmVzdWx0ID0gbG9jYWx0aW1lICh0aW1lcik7CisgIGlmIChsb2NhbF9yZXN1bHQgPT0gTlVMTCkgeworICAgIHJldHVybiBOVUxMOworICB9CisKKyAgbWVtY3B5KHJlc3VsdCwgbG9jYWxfcmVzdWx0LCBzaXplb2YoKnJlc3VsdCkpOworICByZXR1cm4gcmVzdWx0OworfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9jaGVjay91bmlzdGQuaCBiL2NvbnRyaWIvcG9ydHMvd2luMzIvY2hlY2svdW5pc3RkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzMyZTZlMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvY2hlY2svdW5pc3RkLmgKQEAgLTAsMCArMSw3IEBACisjaWZuZGVmIExXSVBfVU5JU1REX0gKKyNkZWZpbmUgTFdJUF9VTklTVERfSAorCisvKiBpbmNsdWRlIGlvLmggZm9yIHJlYWQoKSBhbmQgd3JpdGUoKSAqLworI2luY2x1ZGUgPGlvLmg+CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9leGFtcGxlX2FwcC9DTWFrZUxpc3RzLnR4dCBiL2NvbnRyaWIvcG9ydHMvd2luMzIvZXhhbXBsZV9hcHAvQ01ha2VMaXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RmZTU1NQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvZXhhbXBsZV9hcHAvQ01ha2VMaXN0cy50eHQKQEAgLTAsMCArMSwyNyBAQAoraW5jbHVkZSgke0xXSVBfRElSfS9jb250cmliL3BvcnRzL0NNYWtlQ29tbW9uLmNtYWtlKQorCitzZXQgKExXSVBfSU5DTFVERV9ESVJTCisgICAgIiR7TFdJUF9ESVJ9L3NyYy9pbmNsdWRlIgorICAgICIke0xXSVBfRElSfS9jb250cmliLyIKKyAgICAiJHtMV0lQX0RJUn0vY29udHJpYi9wb3J0cy93aW4zMi9pbmNsdWRlIgorICAgICIke0xXSVBfRElSfS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwIgorKQorCitpbmNsdWRlKCR7TFdJUF9ESVJ9L3NyYy9GaWxlbGlzdHMuY21ha2UpCitpbmNsdWRlKCR7TFdJUF9ESVJ9L2NvbnRyaWIvRmlsZWxpc3RzLmNtYWtlKQoraW5jbHVkZSgke0xXSVBfRElSfS9jb250cmliL3BvcnRzL3dpbjMyL0ZpbGVsaXN0cy5jbWFrZSkKKworaWYoTk9UIEVYSVNUUyAke0xXSVBfRElSfS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL2x3aXBjZmcuaCkKKyAgbWVzc2FnZShXQVJOSU5HICIke0xXSVBfRElSfS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwIGlzIG1pc3NpbmcgbHdpcGNmZy5oCitDb3B5ICR7TFdJUF9ESVJ9L2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvbHdpcGNmZy5oLmV4YW1wbGUgdG8gJHtMV0lQX0RJUn0vY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwY2ZnLmggYW5kIGVkaXQgYXBwcm9wcmlhdGVseSIpCitlbmRpZigpCithZGRfZXhlY3V0YWJsZShleGFtcGxlX2FwcCAke0xXSVBfRElSfS9jb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL3Rlc3QuYyBkZWZhdWx0X25ldGlmLmMpCit0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhleGFtcGxlX2FwcCBQUklWQVRFICR7TFdJUF9JTkNMVURFX0RJUlN9KQordGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhleGFtcGxlX2FwcCBQUklWQVRFICR7TFdJUF9DT01QSUxFUl9GTEFHU30pCit0YXJnZXRfY29tcGlsZV9kZWZpbml0aW9ucyhleGFtcGxlX2FwcCBQUklWQVRFICR7TFdJUF9ERUZJTklUSU9OU30gJHtMV0lQX01CRURUTFNfREVGSU5JVElPTlN9KQordGFyZ2V0X2xpbmtfbGlicmFyaWVzKGV4YW1wbGVfYXBwICR7TFdJUF9TQU5JVElaRVJfTElCU30gbHdpcGFsbGFwcHMgbHdpcGNvbnRyaWJleGFtcGxlcyBsd2lwY29udHJpYmFwcHMgbHdpcGNvbnRyaWJhZGRvbnMgbHdpcGNvbnRyaWJwb3J0d2luZG93cyBsd2lwY29yZSBsd2lwbWJlZHRscykKKworYWRkX2V4ZWN1dGFibGUobWFrZWZzZGF0YSAke2x3aXBtYWtlZnNkYXRhX1NSQ1N9KQordGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhtYWtlZnNkYXRhIFBSSVZBVEUgJHtMV0lQX0NPTVBJTEVSX0ZMQUdTfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKG1ha2Vmc2RhdGEgUFJJVkFURSAke0xXSVBfSU5DTFVERV9ESVJTfSkKK3RhcmdldF9saW5rX2xpYnJhcmllcyhtYWtlZnNkYXRhICR7TFdJUF9TQU5JVElaRVJfTElCU30gbHdpcGNvcmUgbHdpcGNvbnRyaWJwb3J0d2luZG93cykKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvZXhhbXBsZV9hcHAvTWFrZWZpbGUgYi9jb250cmliL3BvcnRzL3dpbjMyL2V4YW1wbGVfYXBwL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1MmFmN2EKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3dpbjMyL2V4YW1wbGVfYXBwL01ha2VmaWxlCkBAIC0wLDAgKzEsNTUgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDAxLCAyMDAyIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAorIyAKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwgCisjIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyMKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorIyAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisjICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyMgICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworIyAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgCisjIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIAorIyBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCAKKyMgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCAKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCAKKyMgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIAorIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiAKKyMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyAKKyMgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIAorIyBPRiBTVUNIIERBTUFHRS4KKyMKKyMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorIyAKKyMgQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyMKKworYWxsIGNvbXBpbGU6IGV4YW1wbGVfYXBwIG1ha2Vmc2RhdGEKKy5QSE9OWTogYWxsCisKK2luY2x1ZGUgLi4vQ29tbW9uLm1rCisKK0NGTEFHUys9LUkkKENPTlRSSUJESVIpL2V4YW1wbGVzL2V4YW1wbGVfYXBwCisKK01BS0VGU0RBVEFPQkpTPSQobm90ZGlyICQoTUFLRUZTREFUQUZJTEVTOi5jPS5vKSkKKworY2xlYW46CisJY21kIC9jIGRlbCAvcSAqLm8gJChMV0lQTElCQ09NTU9OKSAkKEFQUExJQikgdGVzdC5leGUgKi5zIC5kZXBlbmQqICoubWFwCisKK2RlcGVuZCBkZXA6IC5kZXBlbmQKKworaW5jbHVkZSAuZGVwZW5kCisKKy5kZXBlbmQ6ICQoQ09OVFJJQkRJUikvZXhhbXBsZXMvZXhhbXBsZV9hcHAvdGVzdC5jIGRlZmF1bHRfbmV0aWYuYyAkKExXSVBGSUxFUykgJChBUFBGSUxFUykgJChNQUtFRlNEQVRBRklMRVMpCisJJChDQ0RFUCkgJChDRkxBR1MpIC1NTSAkXiA+IC5kZXBlbmQgfHwgY21kIC9jIGRlbCAuZGVwZW5kCisKK2V4YW1wbGVfYXBwOiAuZGVwZW5kICQoTFdJUExJQkNPTU1PTikgJChBUFBMSUIpIGRlZmF1bHRfbmV0aWYubyB0ZXN0Lm8KKwkkKENDKSAkKENGTEFHUykgLW8gZXhhbXBsZV9hcHAgdGVzdC5vIGRlZmF1bHRfbmV0aWYubyAtV2wsLS1zdGFydC1ncm91cCAkKEFQUExJQikgJChMV0lQTElCQ09NTU9OKSAtV2wsLS1lbmQtZ3JvdXAgJChMREZMQUdTKSAtWGxpbmtlciAtTWFwPXRlc3QubWFwCisKK21ha2Vmc2RhdGE6IC5kZXBlbmQgJChNQUtFRlNEQVRBT0JKUykKKwkkKENDKSAkKENGTEFHUykgLW8gbWFrZWZzZGF0YSAkKE1BS0VGU0RBVEFPQkpTKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9leGFtcGxlX2FwcC9kZWZhdWx0X25ldGlmLmMgYi9jb250cmliL3BvcnRzL3dpbjMyL2V4YW1wbGVfYXBwL2RlZmF1bHRfbmV0aWYuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWYyZWNjCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9leGFtcGxlX2FwcC9kZWZhdWx0X25ldGlmLmMKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDAzIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogQWRhbSBEdW5rZWxzIDxhZGFtQHNpY3Muc2U+CisgKgorICovCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorCisjaW5jbHVkZSAibHdpcC9uZXRpZi5oIgorI2luY2x1ZGUgImx3aXAvaXBfYWRkci5oIgorI2luY2x1ZGUgImx3aXAvc3lzLmgiCisjaW5jbHVkZSAibHdpcC90Y3BpcC5oIgorI2luY2x1ZGUgIi4uL3BjYXBpZi5oIgorI2luY2x1ZGUgImV4YW1wbGVzL2V4YW1wbGVfYXBwL2RlZmF1bHRfbmV0aWYuaCIKKworc3RhdGljIHN0cnVjdCBuZXRpZiBuZXRpZjsKKworI2lmIExXSVBfSVBWNAorI2RlZmluZSBORVRJRl9BRERSUyBpcGFkZHIsIG5ldG1hc2ssIGd3LAordm9pZCBpbml0X2RlZmF1bHRfbmV0aWYoY29uc3QgaXA0X2FkZHJfdCAqaXBhZGRyLCBjb25zdCBpcDRfYWRkcl90ICpuZXRtYXNrLCBjb25zdCBpcDRfYWRkcl90ICpndykKKyNlbHNlCisjZGVmaW5lIE5FVElGX0FERFJTCit2b2lkIGluaXRfZGVmYXVsdF9uZXRpZih2b2lkKQorI2VuZGlmCit7CisjaWYgTk9fU1lTCisgIG5ldGlmX2FkZCgmbmV0aWYsIE5FVElGX0FERFJTIE5VTEwsIHBjYXBpZl9pbml0LCBuZXRpZl9pbnB1dCk7CisjZWxzZSAgLyogTk9fU1lTICovCisgIG5ldGlmX2FkZCgmbmV0aWYsIE5FVElGX0FERFJTIE5VTEwsIHBjYXBpZl9pbml0LCB0Y3BpcF9pbnB1dCk7CisjZW5kaWYgLyogTk9fU1lTICovCisgIG5ldGlmX3NldF9kZWZhdWx0KCZuZXRpZik7Cit9CisKK3ZvaWQKK2RlZmF1bHRfbmV0aWZfcG9sbCh2b2lkKQoreworI2lmICFQQ0FQSUZfUlhfVVNFX1RIUkVBRAorICAvKiBjaGVjayBmb3IgcGFja2V0cyBhbmQgbGluayBzdGF0dXMqLworICBwY2FwaWZfcG9sbCgmbmV0aWYpOworICAvKiBXaGVuIHBjYXBpZl9wb2xsIGNvbWVzIGJhY2ssIHRoZXJlIGFyZSBub3QgcGFja2V0cywgc28gc2xlZXAgdG8KKyAgICAgcHJldmVudCAxMDAlIENQVSBsb2FkLiBEb24ndCBkbyB0aGlzIGluIGFuIGVtYmVkZGVkIHN5c3RlbSBzaW5jZSBpdAorICAgICBpbmNyZWFzZXMgbGF0ZW5jeSEgKi8KKyAgc3lzX21zbGVlcCgxKTsKKyNlbHNlIC8qICFQQ0FQSUZfUlhfVVNFX1RIUkVBRCAqLworICBzeXNfbXNsZWVwKDUwKTsKKyNlbmRpZiAvKiAhUENBUElGX1JYX1VTRV9USFJFQUQgKi8KK30KKwordm9pZAorZGVmYXVsdF9uZXRpZl9zaHV0ZG93bih2b2lkKQoreworICAvKiByZWxlYXNlIHRoZSBwY2FwIGxpYnJhcnkuLi4gKi8KKyAgcGNhcGlmX3NodXRkb3duKCZuZXRpZik7Cit9CmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3dpbjMyL2luY2x1ZGUvYXJjaC9icHN0cnVjdC5oIGIvY29udHJpYi9wb3J0cy93aW4zMi9pbmNsdWRlL2FyY2gvYnBzdHJ1Y3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDgxZTNmCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9pbmNsdWRlL2FyY2gvYnBzdHJ1Y3QuaApAQCAtMCwwICsxIEBACisjcHJhZ21hIHBhY2socHVzaCwxKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9pbmNsdWRlL2FyY2gvY2MuaCBiL2NvbnRyaWIvcG9ydHMvd2luMzIvaW5jbHVkZS9hcmNoL2NjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGEwYzAzMgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvaW5jbHVkZS9hcmNoL2NjLmgKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEtMjAwMyBTd2VkaXNoIEluc3RpdHV0ZSBvZiBDb21wdXRlciBTY2llbmNlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCisgKiAgICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorICogV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKyAqIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UCisgKiBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UCisgKiBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HCisgKiBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKKyAqIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworI2lmbmRlZiBMV0lQX0FSQ0hfQ0NfSAorI2RlZmluZSBMV0lQX0FSQ0hfQ0NfSAorCisjaWZkZWYgX01TQ19WRVIKKyNwcmFnbWEgd2FybmluZyAoZGlzYWJsZTogNDEyNykgLyogY29uZGl0aW9uYWwgZXhwcmVzc2lvbiBpcyBjb25zdGFudCAqLworI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0OTk2KSAvKiAnc3RybmNweScgd2FzIGRlY2xhcmVkIGRlcHJlY2F0ZWQgKi8KKyNwcmFnbWEgd2FybmluZyAoZGlzYWJsZTogNDEwMykgLyogc3RydWN0dXJlIHBhY2tpbmcgY2hhbmdlZCBieSBpbmNsdWRpbmcgZmlsZSAqLworI3ByYWdtYSB3YXJuaW5nIChkaXNhYmxlOiA0ODIwKSAvKiAneCcgYnl0ZXMgcGFkZGluZyBhZGRlZCBhZnRlciBkYXRhIG1lbWJlciAneScgKi8KKyNwcmFnbWEgd2FybmluZyAoZGlzYWJsZTogNDcxMSkgLyogVGhlIGNvbXBpbGVyIHBlcmZvcm1lZCBpbmxpbmluZyBvbiB0aGUgZ2l2ZW4gZnVuY3Rpb24sIGFsdGhvdWdoIGl0IHdhcyBub3QgbWFya2VkIGZvciBpbmxpbmluZyAqLworI2VuZGlmCisKKyNpZmRlZiBfTVNDX1ZFUgorI2lmIF9NU0NfVkVSID49IDE5MTAKKyNpbmNsdWRlIDxlcnJuby5oPiAvKiB1c2UgTVNWQyBlcnJubyBmb3IgPj0gMjAxNyAqLworI2Vsc2UKKyNkZWZpbmUgTFdJUF9QUk9WSURFX0VSUk5PIC8qIHByb3ZpZGUgZXJybm8gZm9yIE1TVkMgcHJlLTIwMTcgKi8KKyNlbmRpZgorI2Vsc2UgLyogX01TQ19WRVIgKi8KKyNkZWZpbmUgTFdJUF9QUk9WSURFX0VSUk5PIC8qIHByb3ZpZGUgZXJybm8gZm9yIG5vbi1NU1ZDICovCisjZW5kaWYgLyogX01TQ19WRVIgKi8KKworI2lmZGVmIF9fR05VQ19fCisjZGVmaW5lIExXSVBfVElNRVZBTF9QUklWQVRFIDAKKyNpbmNsdWRlIDxzeXMvdGltZS5oPgorI2VuZGlmCisKKy8qIERlZmluZSBwbGF0Zm9ybSBlbmRpYW5uZXNzIChtaWdodCBhbHJlYWR5IGJlIGRlZmluZWQpICovCisjaWZuZGVmIEJZVEVfT1JERVIKKyNkZWZpbmUgQllURV9PUkRFUiBMSVRUTEVfRU5ESUFOCisjZW5kaWYgLyogQllURV9PUkRFUiAqLworCit0eXBlZGVmIGludCBzeXNfcHJvdF90OworCisjaWZkZWYgX01TQ19WRVIKKy8qIGRlZmluZSBfSU5UUFRSIGZvciBXaW4zMiBNU1ZDIHN0ZGludC5oICovCisjZGVmaW5lIF9JTlRQVFIgMgorCisvKiBEbyBub3QgdXNlIGx3SVAgZGVmYXVsdCBkZWZpbml0aW9ucyBmb3IgZm9ybWF0IHN0cmluZ3MKKyAqIGJlY2F1c2UgdGhlc2UgZG8gbm90IHdvcmsgd2l0aCBNU1ZDIDIwMTAgY29tcGlsZXIgKG5vIGludHR5cGVzLmgpCisgKi8KKyNkZWZpbmUgTFdJUF9OT19JTlRUWVBFU19IIDEKKworLyogRGVmaW5lIChzbilwcmludGYgZm9ybWF0dGVycyBmb3IgdGhlc2UgbHdJUCB0eXBlcyAqLworI2RlZmluZSBYOF9GICAiMDJ4IgorI2RlZmluZSBVMTZfRiAiaHUiCisjZGVmaW5lIFUzMl9GICJsdSIKKyNkZWZpbmUgUzMyX0YgImxkIgorI2RlZmluZSBYMzJfRiAibHgiCisKKyNkZWZpbmUgUzE2X0YgImhkIgorI2RlZmluZSBYMTZfRiAiaHgiCisjZGVmaW5lIFNaVF9GICJsdSIKKyNlbmRpZiAvKiBfTVNDX1ZFUiAqLworCisvKiBDb21waWxlciBoaW50cyBmb3IgcGFja2luZyBzdHJ1Y3R1cmVzICovCisjZGVmaW5lIFBBQ0tfU1RSVUNUX1VTRV9JTkNMVURFUworCisjZGVmaW5lIExXSVBfRVJST1IobWVzc2FnZSwgZXhwcmVzc2lvbiwgaGFuZGxlcikgZG8geyBpZiAoIShleHByZXNzaW9uKSkgeyBcCisgIExXSVBfUExBVEZPUk1fRElBRygoIkFzc2VydGlvbiBcIiVzXCIgZmFpbGVkIGF0IGxpbmUgJWQgaW4gJXNcbiIsIG1lc3NhZ2UsIF9fTElORV9fLCBfX0ZJTEVfXykpOyBcCisgIGhhbmRsZXI7fSB9IHdoaWxlKDApCisKKyNpZmRlZiBfTVNDX1ZFUgorLyogQyBydW50aW1lIGZ1bmN0aW9ucyByZWRlZmluZWQgKi8KKyNpZiBfTVNDX1ZFUiA8IDE5MTAKKyNkZWZpbmUgc25wcmludGYgX3NucHJpbnRmCisjZW5kaWYKKyNkZWZpbmUgc3RyZHVwICAgX3N0cmR1cAorI2VuZGlmCisKKy8qIERlZmluZSBhbiBleGFtcGxlIGZvciBMV0lQX1BMQVRGT1JNX0RJQUc6IHNpbmNlIHRoaXMgdXNlcyB2YXJhcmdzIGFuZCB0aGUgb2xkCisqIEMgc3RhbmRhcmQgbHdJUCB0YXJnZXRzIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBpbiBtYWNyb3MsIHdlIGhhdmUgZXh0cmEgYnJhY2tldHMKKyogYXJvdW5kIHRoZSBhcmd1bWVudHMsIHdoaWNoIGFyZSBsZWZ0IG91dCBpbiB0aGUgZm9sbG93aW5nIG1hY3JvIGRlZmluaXRpb246CisqLworI2lmICFkZWZpbmVkKExXSVBfVEVTVE1PREUpIHx8ICFMV0lQX1RFU1RNT0RFCit2b2lkIGx3aXBfd2luMzJfcGxhdGZvcm1fZGlhZyhjb25zdCBjaGFyICpmb3JtYXQsIC4uLik7CisjZGVmaW5lIExXSVBfUExBVEZPUk1fRElBRyh4KSBsd2lwX3dpbjMyX3BsYXRmb3JtX2RpYWcgeAorI2VuZGlmCisKK2V4dGVybiB1bnNpZ25lZCBpbnQgbHdpcF9wb3J0X3JhbmQodm9pZCk7CisjZGVmaW5lIExXSVBfUkFORCgpICgodWludDMyX3QpbHdpcF9wb3J0X3JhbmQoKSkKKworI2RlZmluZSBQUFBfSU5DTFVERV9TRVRUSU5HU19IRUFERVIKKworI2VuZGlmIC8qIExXSVBfQVJDSF9DQ19IICovCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3dpbjMyL2luY2x1ZGUvYXJjaC9lcHN0cnVjdC5oIGIvY29udHJpYi9wb3J0cy93aW4zMi9pbmNsdWRlL2FyY2gvZXBzdHJ1Y3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTg5OGI1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9pbmNsdWRlL2FyY2gvZXBzdHJ1Y3QuaApAQCAtMCwwICsxIEBACisjcHJhZ21hIHBhY2socG9wKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9pbmNsdWRlL2FyY2gvcGVyZi5oIGIvY29udHJpYi9wb3J0cy93aW4zMi9pbmNsdWRlL2FyY2gvcGVyZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMTUwYjEKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3dpbjMyL2luY2x1ZGUvYXJjaC9wZXJmLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMSwgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBJbnN0aXR1dGUgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKKyAqICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIElOU1RJVFVURSBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIElOU1RJVFVURSBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBsd0lQIFRDUC9JUCBzdGFjay4KKyAqCisgKiBBdXRob3I6IEFkYW0gRHVua2VscyA8YWRhbUBzaWNzLnNlPgorICoKKyAqLworI2lmbmRlZiBMV0lQX1BFUkZfSAorI2RlZmluZSBMV0lQX1BFUkZfSAorCisjZGVmaW5lIFBFUkZfU1RBUlQgICAgLyogbnVsbCBkZWZpbml0aW9uICovCisjZGVmaW5lIFBFUkZfU1RPUCh4KSAgLyogbnVsbCBkZWZpbml0aW9uICovCisKKyNlbmRpZiAvKiBMV0lQX1BFUkZfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9pbmNsdWRlL2FyY2gvc3lzX2FyY2guaCBiL2NvbnRyaWIvcG9ydHMvd2luMzIvaW5jbHVkZS9hcmNoL3N5c19hcmNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGVkMTAyOAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvaW5jbHVkZS9hcmNoL3N5c19hcmNoLmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDAzIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqIEF1dGhvcjogQWRhbSBEdW5rZWxzIDxhZGFtQHNpY3Muc2U+CisgKgorICovCisjaWZuZGVmIExXSVBfQVJDSF9TWVNfQVJDSF9ICisjZGVmaW5lIExXSVBfQVJDSF9TWVNfQVJDSF9ICisKKy8qIEhBTkRMRSBpcyB1c2VkIGZvciBzeXNfc2VtX3QgYnV0IHdlIHdvbid0IGluY2x1ZGUgd2luZG93cy5oICovCitzdHJ1Y3QgX3N5c19zZW0geworICB2b2lkICpzZW07Cit9OwordHlwZWRlZiBzdHJ1Y3QgX3N5c19zZW0gc3lzX3NlbV90OworI2RlZmluZSBzeXNfc2VtX3ZhbGlkX3ZhbChzZW1hKSAoKChzZW1hKS5zZW0gIT0gTlVMTCkgICYmICgoc2VtYSkuc2VtICE9ICh2b2lkKiktMSkpCisjZGVmaW5lIHN5c19zZW1fdmFsaWQoc2VtYSkgKCgoc2VtYSkgIT0gTlVMTCkgJiYgc3lzX3NlbV92YWxpZF92YWwoKihzZW1hKSkpCisjZGVmaW5lIHN5c19zZW1fc2V0X2ludmFsaWQoc2VtYSkgKChzZW1hKS0+c2VtID0gTlVMTCkKKworLyogSEFORExFIGlzIHVzZWQgZm9yIHN5c19tdXRleF90IGJ1dCB3ZSB3b24ndCBpbmNsdWRlIHdpbmRvd3MuaCAqLworc3RydWN0IF9zeXNfbXV0IHsKKyAgdm9pZCAqbXV0OworfTsKK3R5cGVkZWYgc3RydWN0IF9zeXNfbXV0IHN5c19tdXRleF90OworI2RlZmluZSBzeXNfbXV0ZXhfdmFsaWRfdmFsKG11dGV4KSAoKChtdXRleCkubXV0ICE9IE5VTEwpICAmJiAoKG11dGV4KS5tdXQgIT0gKHZvaWQqKS0xKSkKKyNkZWZpbmUgc3lzX211dGV4X3ZhbGlkKG11dGV4KSAoKChtdXRleCkgIT0gTlVMTCkgJiYgc3lzX211dGV4X3ZhbGlkX3ZhbCgqKG11dGV4KSkpCisjZGVmaW5lIHN5c19tdXRleF9zZXRfaW52YWxpZChtdXRleCkgKChtdXRleCktPm11dCA9IE5VTEwpCisKKyNpZm5kZWYgTUFYX1FVRVVFX0VOVFJJRVMKKyNkZWZpbmUgTUFYX1FVRVVFX0VOVFJJRVMgMTAwCisjZW5kaWYKK3N0cnVjdCBsd2lwX21ib3ggeworICB2b2lkKiBzZW07CisgIHZvaWQqIHFfbWVtW01BWF9RVUVVRV9FTlRSSUVTXTsKKyAgdTMyX3QgaGVhZCwgdGFpbDsKK307Cit0eXBlZGVmIHN0cnVjdCBsd2lwX21ib3ggc3lzX21ib3hfdDsKKyNkZWZpbmUgU1lTX01CT1hfTlVMTCBOVUxMCisjZGVmaW5lIHN5c19tYm94X3ZhbGlkX3ZhbChtYm94KSAoKChtYm94KS5zZW0gIT0gTlVMTCkgICYmICgobWJveCkuc2VtICE9ICh2b2lkKiktMSkpCisjZGVmaW5lIHN5c19tYm94X3ZhbGlkKG1ib3gpICgobWJveCAhPSBOVUxMKSAmJiBzeXNfbWJveF92YWxpZF92YWwoKihtYm94KSkpCisjZGVmaW5lIHN5c19tYm94X3NldF9pbnZhbGlkKG1ib3gpICgobWJveCktPnNlbSA9IE5VTEwpCisKKy8qIERXT1JEICh0aHJlYWQgaWQpIGlzIHVzZWQgZm9yIHN5c190aHJlYWRfdCBidXQgd2Ugd29uJ3QgaW5jbHVkZSB3aW5kb3dzLmggKi8KK3R5cGVkZWYgdTMyX3Qgc3lzX3RocmVhZF90OworCitzeXNfc2VtX3QqIHN5c19hcmNoX25ldGNvbm5fc2VtX2dldCh2b2lkKTsKK3ZvaWQgc3lzX2FyY2hfbmV0Y29ubl9zZW1fYWxsb2Modm9pZCk7Cit2b2lkIHN5c19hcmNoX25ldGNvbm5fc2VtX2ZyZWUodm9pZCk7CisjZGVmaW5lIExXSVBfTkVUQ09OTl9USFJFQURfU0VNX0dFVCgpICAgc3lzX2FyY2hfbmV0Y29ubl9zZW1fZ2V0KCkKKyNkZWZpbmUgTFdJUF9ORVRDT05OX1RIUkVBRF9TRU1fQUxMT0MoKSBzeXNfYXJjaF9uZXRjb25uX3NlbV9hbGxvYygpCisjZGVmaW5lIExXSVBfTkVUQ09OTl9USFJFQURfU0VNX0ZSRUUoKSAgc3lzX2FyY2hfbmV0Y29ubl9zZW1fZnJlZSgpCisKKyNkZWZpbmUgTFdJUF9FWEFNUExFX0FQUF9BQk9SVCgpIGx3aXBfd2luMzJfa2V5cHJlc3NlZCgpCitpbnQgbHdpcF93aW4zMl9rZXlwcmVzc2VkKHZvaWQpOworCisvKiBUaHJlYWRpbmcgb3B0aW9ucyAqLwordm9pZCBzeXNfbWFya190Y3BpcF90aHJlYWQodm9pZCk7CisjZGVmaW5lIExXSVBfTUFSS19UQ1BJUF9USFJFQUQoKSAgIHN5c19tYXJrX3RjcGlwX3RocmVhZCgpCisKKyNpZiBMV0lQX1RDUElQX0NPUkVfTE9DS0lORwordm9pZCBzeXNfbG9ja190Y3BpcF9jb3JlKHZvaWQpOworI2RlZmluZSBMT0NLX1RDUElQX0NPUkUoKSAgICAgICAgICBzeXNfbG9ja190Y3BpcF9jb3JlKCkKK3ZvaWQgc3lzX3VubG9ja190Y3BpcF9jb3JlKHZvaWQpOworI2RlZmluZSBVTkxPQ0tfVENQSVBfQ09SRSgpICAgICAgICBzeXNfdW5sb2NrX3RjcGlwX2NvcmUoKQorI2VuZGlmCisKKyNlbmRpZiAvKiBMV0lQX0FSQ0hfU1lTX0FSQ0hfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2J1aWxkX2NvdmVyaXR5LmNtZCBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9idWlsZF9jb3Zlcml0eS5jbWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk2Y2M2MwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9idWlsZF9jb3Zlcml0eS5jbWQKQEAgLTAsMCArMSwyNiBAQAorQGVjaG8gb2ZmCityZW0gVXNhZ2U6IHBhc3MgdGhlIHBhdGggdG8gY292LWJ1aWxkLmV4ZSAod2l0aCB0cmFpbGluZyBiYWNrc2xhc2gsIHdpdGhvdXQgdGhlIGV4ZSkgYXMgZmlyc3QgcGFyYW1ldGVyCityZW0gQVRURU5USU9OOiB0aGlzIGRlbGV0ZXMgdGhlIG91dHB1dCBmb2xkZXIgImNvdi1pbnQiIGFuZCB0aGUgb3V0cHV0IGZpbGUgImNvdi1pbnQuemlwIiBmaXJzdCEKKworc2V0IGRldmVudj0iJVByb2dyYW1GaWxlcyVcTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gMTAuMFxDb21tb243XElERVxkZXZlbnYuZXhlIgoraWYgbm90IGV4aXN0ICVkZXZlbnYlIHNldCBkZXZlbnY9IiVQcm9ncmFtRmlsZXMlXE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDEwLjBcQ29tbW9uN1xJREVcdmNleHByZXNzLmV4ZSIKK2lmIG5vdCBleGlzdCAlZGV2ZW52JSBzZXQgZGV2ZW52PSIlUHJvZ3JhbUZpbGVzKHg4NiklXE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDEwLjBcQ29tbW9uN1xJREVcZGV2ZW52LmV4ZSIKK2lmIG5vdCBleGlzdCAlZGV2ZW52JSBzZXQgZGV2ZW52PSIlUHJvZ3JhbUZpbGVzKHg4NiklXE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDEwLjBcQ29tbW9uN1xJREVcdmNleHByZXNzLmV4ZSIKK3NldCBjb3ZidWlsZD0lMWNvdi1idWlsZC5leGUKK3NldCBjb3ZvdXRwdXQ9Y292LWludAorc2V0IHppcDc9ImM6XFByb2dyYW0gRmlsZXNcNy1aaXBcN3ouZXhlIgorCitwdXNoZCAlfmRwMAorCitpZiBleGlzdCAlY292b3V0cHV0JSByZCAvcyAvcSAlY292b3V0cHV0JQoraWYgZXhpc3QgJWNvdm91dHB1dCUuemlwIGRlbCAlY292b3V0cHV0JS56aXAKKworJWNvdmJ1aWxkJSAtLWRpciAlY292b3V0cHV0JSAlZGV2ZW52JSBsd2lwX3Rlc3Quc2xuIC9idWlsZCBEZWJ1ZyB8fCBnb3RvIGVycm9yCisKK2lmIGV4aXN0ICV6aXA3JSBnb3RvIGRvemlwCitlY2hvIGVycm9yOiA3emlwIG5vdCBmb3VuZCBhdCBcIiV6aXA3JQorZ290byBlcnJvcgorOmRvemlwCislemlwNyUgYSAlY292b3V0cHV0JS56aXAgJWNvdm91dHB1dCUKKzplcnJvcgorcG9wZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9saWJjaGVjay52Y3hwcm9qIGIvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2xpYmNoZWNrLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzMzZmRhYgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9saWJjaGVjay52Y3hwcm9qCkBAIC0wLDAgKzEsMTAyIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPntFQkIxNTZEQy0wMUJGLTQ3QjItQjY5Qy0xQTc1MEI2QjVGMDl9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5saWJjaGVjazwvUm9vdE5hbWVzcGFjZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgICAgPFBsYXRmb3JtVG9vbHNldD52MTQzPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PnYxNDM8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKENvbmZpZ3VyYXRpb24pXCQoUHJvamVjdE5hbWUpXDwvT3V0RGlyPgorICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoQ29uZmlndXJhdGlvbilcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+CisgICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKENvbmZpZ3VyYXRpb24pXCQoUHJvamVjdE5hbWUpXDwvT3V0RGlyPgorICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChDb25maWd1cmF0aW9uKVwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXGNoZWNrOy4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyYzslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9MSUI7V0lOMzI7X0RFQlVHO0hBVkVfQ09ORklHX0g7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgorICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29udGludWU8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cY2hlY2s7Li5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7TkRFQlVHO19MSUI7SEFWRV9DT05GSUdfSDslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgorICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgorICAgIDwvQ2xDb21waWxlPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xsaWJcbGliY29tcGF0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjaGVja1xjb25maWcuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGNoZWNrXHVuaXN0ZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cY2hlY2tcc3lzXHRpbWUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVjay5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrX2Vycm9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfaW1wbC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrX2xpc3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19sb2cuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19tc2cuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19wYWNrLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfcHJpbnQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19zdHIuaCIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xsaWJcY2xvY2tfZ2V0dGltZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcbGliXGxpYmNvbXBhdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cY2hlY2tcdGltZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfZXJyb3IuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19saXN0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfbG9nLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfbXNnLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfcGFjay5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrX3ByaW50LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfcnVuLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfc3RyLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9saWJjaGVjay52Y3hwcm9qLmZpbHRlcnMgYi9jb250cmliL3BvcnRzL3dpbjMyL21zdmMvbGliY2hlY2sudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4YmZkZmMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3dpbjMyL21zdmMvbGliY2hlY2sudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsOTYgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJXaW4zMiI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MDVkMTcyZjktOGNhNi00ZDljLTk2ZTQtMmIwNDgwYTgyMjJmfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IldpbjMyXHN5cyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZWI5Y2NmODgtN2UwOC00MjAyLWJiNGYtNWE1MTQ0M2ZhNDgwfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyYyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57M2YwNDRkOTUtYWI1Mi00NWNlLWI0YWUtMjc3OTdlYjIyMWIyfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9ImxpYmNvbXBhdCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57YWJiMjFhYmUtNTFjMi00NWRmLWJkYzktOGUwMGNlN2ZlNDA0fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjaGVja1xjb25maWcuaCI+CisgICAgICA8RmlsdGVyPldpbjMyPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjaGVja1x1bmlzdGQuaCI+CisgICAgICA8RmlsdGVyPldpbjMyPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxjaGVja1xzeXNcdGltZS5oIj4KKyAgICAgIDxGaWx0ZXI+V2luMzJcc3lzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2suaCI+CisgICAgICA8RmlsdGVyPnNyYzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrX2Vycm9yLmgiPgorICAgICAgPEZpbHRlcj5zcmM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19pbXBsLmgiPgorICAgICAgPEZpbHRlcj5zcmM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19saXN0LmgiPgorICAgICAgPEZpbHRlcj5zcmM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19sb2cuaCI+CisgICAgICA8RmlsdGVyPnNyYzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrX21zZy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfcGFjay5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfcHJpbnQuaCI+CisgICAgICA8RmlsdGVyPnNyYzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrX3N0ci5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xsaWJcbGliY29tcGF0LmgiPgorICAgICAgPEZpbHRlcj5saWJjb21wYXQ8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxjaGVja1x0aW1lLmMiPgorICAgICAgPEZpbHRlcj5XaW4zMjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrLmMiPgorICAgICAgPEZpbHRlcj5zcmM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19lcnJvci5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfbGlzdC5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmNcY2hlY2tfbG9nLmMiPgorICAgICAgPEZpbHRlcj5zcmM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19tc2cuYyI+CisgICAgICA8RmlsdGVyPnNyYzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrX3BhY2suYyI+CisgICAgICA8RmlsdGVyPnNyYzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrX3ByaW50LmMiPgorICAgICAgPEZpbHRlcj5zcmM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXHNyY1xjaGVja19ydW4uYyI+CisgICAgICA8RmlsdGVyPnNyYzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjXGNoZWNrX3N0ci5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlwuLlxjaGVja1xsaWJcbGliY29tcGF0LmMiPgorICAgICAgPEZpbHRlcj5saWJjb21wYXQ8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXC4uXGNoZWNrXGxpYlxjbG9ja19nZXR0aW1lLmMiPgorICAgICAgPEZpbHRlcj5saWJjb21wYXQ8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3SVAudmN4cHJvaiBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU3NTg3ZgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQLnZjeHByb2oKQEAgLTAsMCArMSw1OTMgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWcgdW5pdHRlc3RzfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnIHVuaXR0ZXN0czwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2UgdW5pdHRlc3RzfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2UgdW5pdHRlc3RzPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnsyQ0MyNzZGQS1CMjI2LTQ5QzktOEY4Mi03RkNENUEyMjhFMjh9PC9Qcm9qZWN0R3VpZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2UgdW5pdHRlc3RzfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPFBsYXRmb3JtVG9vbHNldD52MTQzPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1ZyB1bml0dGVzdHN8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PnYxNDM8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPFBsYXRmb3JtVG9vbHNldD52MTQzPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5TdGF0aWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPFBsYXRmb3JtVG9vbHNldD52MTQzPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlIHVuaXR0ZXN0c3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKU1pY3Jvc29mdC5DUFAuVXBncmFkZUZyb21WQzcxLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1ZyB1bml0dGVzdHN8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClNaWNyb3NvZnQuQ1BQLlVwZ3JhZGVGcm9tVkM3MS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClNaWNyb3NvZnQuQ1BQLlVwZ3JhZGVGcm9tVkM3MS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKU1pY3Jvc29mdC5DUFAuVXBncmFkZUZyb21WQzcxLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChDb25maWd1cmF0aW9uKVwkKFByb2plY3ROYW1lKVw8L091dERpcj4KKyAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoQ29uZmlndXJhdGlvbilcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+CisgICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnIHVuaXR0ZXN0c3xXaW4zMiciPiQoQ29uZmlndXJhdGlvbilcJChQcm9qZWN0TmFtZSlcPC9PdXREaXI+CisgICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnIHVuaXR0ZXN0c3xXaW4zMiciPiQoQ29uZmlndXJhdGlvbilcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+CisgICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2UgdW5pdHRlc3RzfFdpbjMyJyI+JChDb25maWd1cmF0aW9uKVwkKFByb2plY3ROYW1lKVw8L091dERpcj4KKyAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZSB1bml0dGVzdHN8V2luMzInIj4kKENvbmZpZ3VyYXRpb24pXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgorICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoQ29uZmlndXJhdGlvbilcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+CisgICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChDb25maWd1cmF0aW9uKVwkKFByb2plY3ROYW1lKVw8L091dERpcj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlwuLlwuLlxzcmNcaW5jbHVkZTsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY0Oy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjY7Li5caW5jbHVkZTsuLlwuLlwuLlxleGFtcGxlc1xleGFtcGxlX2FwcDsuLlwuLlwuLlxhcHBzXHNubXBfcHJpdmF0ZV9taWI7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPFByb2dyYW1EYXRhQmFzZUZpbGVOYW1lPiQoSW50RGlyKSQoUHJvamVjdE5hbWUpLnBkYjwvUHJvZ3JhbURhdGFCYXNlRmlsZU5hbWU+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsNDwvV2FybmluZ0xldmVsPgorICAgICAgPFN1cHByZXNzU3RhcnR1cEJhbm5lcj50cnVlPC9TdXBwcmVzc1N0YXJ0dXBCYW5uZXI+CisgICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICAgIDxUcmVhdFdhcm5pbmdBc0Vycm9yPnRydWU8L1RyZWF0V2FybmluZ0FzRXJyb3I+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5OREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEN1bHR1cmU+MHgwNDA3PC9DdWx0dXJlPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICAgIDxMaWI+CisgICAgICA8U3VwcHJlc3NTdGFydHVwQmFubmVyPnRydWU8L1N1cHByZXNzU3RhcnR1cEJhbm5lcj4KKyAgICA8L0xpYj4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlOy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjQ7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NjsuLlxpbmNsdWRlOy4uXC4uXC4uXGV4YW1wbGVzXGV4YW1wbGVfYXBwOy4uXC4uXC4uXGFwcHNcc25tcF9wcml2YXRlX21pYjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9MSUI7V0lOMzI7X0RFQlVHO0xXSVBfREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAgICA8UHJvZ3JhbURhdGFCYXNlRmlsZU5hbWU+JChJbnREaXIpJChQcm9qZWN0TmFtZSkucGRiPC9Qcm9ncmFtRGF0YUJhc2VGaWxlTmFtZT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWw0PC9XYXJuaW5nTGV2ZWw+CisgICAgICA8U3VwcHJlc3NTdGFydHVwQmFubmVyPnRydWU8L1N1cHByZXNzU3RhcnR1cEJhbm5lcj4KKyAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PkVkaXRBbmRDb250aW51ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KKyAgICAgIDxDb21waWxlQXM+RGVmYXVsdDwvQ29tcGlsZUFzPgorICAgICAgPFRyZWF0V2FybmluZ0FzRXJyb3I+dHJ1ZTwvVHJlYXRXYXJuaW5nQXNFcnJvcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDc8L0N1bHR1cmU+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPExpYj4KKyAgICAgIDxTdXBwcmVzc1N0YXJ0dXBCYW5uZXI+dHJ1ZTwvU3VwcHJlc3NTdGFydHVwQmFubmVyPgorICAgIDwvTGliPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWcgdW5pdHRlc3RzfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXC4uXC4uXHRlc3RcdW5pdDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZTsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY0Oy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjY7Li5caW5jbHVkZTsuLlwuLlwuLlxleGFtcGxlc1xleGFtcGxlX2FwcDslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9MSUI7V0lOMzI7X0RFQlVHO0xXSVBfREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAgICA8UHJvZ3JhbURhdGFCYXNlRmlsZU5hbWU+JChJbnREaXIpJChQcm9qZWN0TmFtZSkucGRiPC9Qcm9ncmFtRGF0YUJhc2VGaWxlTmFtZT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWw0PC9XYXJuaW5nTGV2ZWw+CisgICAgICA8U3VwcHJlc3NTdGFydHVwQmFubmVyPnRydWU8L1N1cHByZXNzU3RhcnR1cEJhbm5lcj4KKyAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PkVkaXRBbmRDb250aW51ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KKyAgICAgIDxDb21waWxlQXM+RGVmYXVsdDwvQ29tcGlsZUFzPgorICAgICAgPFRyZWF0V2FybmluZ0FzRXJyb3I+dHJ1ZTwvVHJlYXRXYXJuaW5nQXNFcnJvcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDc8L0N1bHR1cmU+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPExpYj4KKyAgICAgIDxTdXBwcmVzc1N0YXJ0dXBCYW5uZXI+dHJ1ZTwvU3VwcHJlc3NTdGFydHVwQmFubmVyPgorICAgIDwvTGliPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZSB1bml0dGVzdHN8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlwuLlwuLlwuLlx0ZXN0XHVuaXQ7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHA7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPFByb2dyYW1EYXRhQmFzZUZpbGVOYW1lPiQoSW50RGlyKSQoUHJvamVjdE5hbWUpLnBkYjwvUHJvZ3JhbURhdGFCYXNlRmlsZU5hbWU+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsNDwvV2FybmluZ0xldmVsPgorICAgICAgPFN1cHByZXNzU3RhcnR1cEJhbm5lcj50cnVlPC9TdXBwcmVzc1N0YXJ0dXBCYW5uZXI+CisgICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICAgIDxUcmVhdFdhcm5pbmdBc0Vycm9yPnRydWU8L1RyZWF0V2FybmluZ0FzRXJyb3I+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5OREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEN1bHR1cmU+MHgwNDA3PC9DdWx0dXJlPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICAgIDxMaWI+CisgICAgICA8U3VwcHJlc3NTdGFydHVwQmFubmVyPnRydWU8L1N1cHByZXNzU3RhcnR1cEJhbm5lcj4KKyAgICA8L0xpYj4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDdXN0b21CdWlsZFN0ZXAgSW5jbHVkZT0iLi5cLi5cLi5cLi5cZG9jXGNvbnRyaWIudHh0Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnIHVuaXR0ZXN0c3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2UgdW5pdHRlc3RzfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+CisgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlwuLlwuLlwuLlxkb2NcRklMRVMiPgorICAgICAgPEZpbGVUeXBlPkRvY3VtZW50PC9GaWxlVHlwZT4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnIHVuaXR0ZXN0c3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2UgdW5pdHRlc3RzfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+CisgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlwuLlwuLlwuLlxkb2NccmF3YXBpLnR4dCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1ZyB1bml0dGVzdHN8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlIHVuaXR0ZXN0c3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICAgIDxDdXN0b21CdWlsZFN0ZXAgSW5jbHVkZT0iLi5cLi5cLi5cLi5cZG9jXHNhdmFubmFoLnR4dCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1ZyB1bml0dGVzdHN8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlIHVuaXR0ZXN0c3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICAgIDxDdXN0b21CdWlsZFN0ZXAgSW5jbHVkZT0iLi5cLi5cLi5cLi5cZG9jXHNubXBfYWdlbnQudHh0Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnIHVuaXR0ZXN0c3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2UgdW5pdHRlc3RzfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+CisgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlwuLlwuLlwuLlxkb2Ncc3lzX2FyY2gudHh0Ij4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnIHVuaXR0ZXN0c3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2UgdW5pdHRlc3RzfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+CisgICAgPEN1c3RvbUJ1aWxkU3RlcCBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY2XFJFQURNRSI+CisgICAgICA8RmlsZVR5cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWcgdW5pdHRlc3RzfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZSB1bml0dGVzdHN8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAgICA8Q3VzdG9tQnVpbGRTdGVwIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxGSUxFUyI+CisgICAgICA8RmlsZVR5cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICAgIDxDdXN0b21CdWlsZFN0ZXAgSW5jbHVkZT0iLi5cbHdpcGNmZ19tc3ZjLmguZXhhbXBsZSI+CisgICAgICA8RmlsZVR5cGU+RG9jdW1lbnQ8L0ZpbGVUeXBlPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWcgdW5pdHRlc3RzfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZSB1bml0dGVzdHN8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxDSEFOR0VMT0ciIC8+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cQ09QWUlORyIgLz4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxkb2NcY29udHJpYi50eHQiIC8+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cZG9jXGRveHlnZW5cZ2VuZXJhdGUuYmF0IiAvPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXGRvY1xkb3h5Z2VuXGdlbmVyYXRlLnNoIiAvPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXGRvY1xkb3h5Z2VuXGx3aXAuRG94eWZpbGUiIC8+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cZG9jXEZJTEVTIiAvPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXGRvY1xtZG5zLnR4dCIgLz4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxkb2NccHBwLnR4dCIgLz4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxkb2Ncc2F2YW5uYWgudHh0IiAvPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXEZJTEVTIiAvPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXFJFQURNRSIgLz4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxVUEdSQURJTkciIC8+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHBcbHdpcGNmZy5oLmV4YW1wbGUiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWcgdW5pdHRlc3RzfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZSB1bml0dGVzdHN8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L05vbmU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cZG9jXE5PX1NZU19TYW1wbGVDb2RlLmMiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWcgdW5pdHRlc3RzfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZSB1bml0dGVzdHN8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcGlcYXBpX2xpYi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwaVxhcGlfbXNnLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBpXGVyci5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwaVxpZl9hcGkuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcGlcbmV0YnVmLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBpXG5ldGRiLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBpXG5ldGlmYXBpLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBpXHNvY2tldHMuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcGlcdGNwaXAuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXGFsdGNwX3Rsc1xhbHRjcF90bHNfbWJlZHRscy5jIj4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4uLlwuLlwuLlwuLlwuLlxtYmVkdGxzXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li47Li5cLi5cLi5cYXBwc1xzbm1wX3ByaXZhdGVfbWliOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLlwuLlwuLlwuLlwuLlxtYmVkdGxzXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li47Li5cLi5cLi5cYXBwc1xzbm1wX3ByaXZhdGVfbWliOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnIHVuaXR0ZXN0c3xXaW4zMiciPi4uXC4uXC4uXC4uXC4uXG1iZWR0bHNcaW5jbHVkZTsuLlwuLlwuLlwuLlx0ZXN0XHVuaXQ7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZSB1bml0dGVzdHN8V2luMzInIj4uLlwuLlwuLlwuLlwuLlxtYmVkdGxzXGluY2x1ZGU7Li5cLi5cLi5cLi5cdGVzdFx1bml0Oy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlOy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjQ7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NjsuLlxpbmNsdWRlOy4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xhbHRjcF90bHNcYWx0Y3BfdGxzX21iZWR0bHNfbWVtLmMiPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uXC4uXC4uXC4uXC4uXG1iZWR0bHNcaW5jbHVkZTsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZTsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY0Oy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjY7Li5caW5jbHVkZTsuLjsuLlwuLlwuLlxhcHBzXHNubXBfcHJpdmF0ZV9taWI7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi4uXC4uXC4uXC4uXC4uXG1iZWR0bHNcaW5jbHVkZTsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZTsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY0Oy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjY7Li5caW5jbHVkZTsuLjsuLlwuLlwuLlxhcHBzXHNubXBfcHJpdmF0ZV9taWI7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWcgdW5pdHRlc3RzfFdpbjMyJyI+Li5cLi5cLi5cLi5cLi5cbWJlZHRsc1xpbmNsdWRlOy4uXC4uXC4uXC4uXHRlc3RcdW5pdDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZTsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY0Oy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjY7Li5caW5jbHVkZTsuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlIHVuaXR0ZXN0c3xXaW4zMiciPi4uXC4uXC4uXC4uXC4uXG1iZWR0bHNcaW5jbHVkZTsuLlwuLlwuLlwuLlx0ZXN0XHVuaXQ7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXGh0dHBcYWx0Y3BfcHJveHljb25uZWN0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xodHRwXGh0dHBfY2xpZW50LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xsd2lwZXJmXGx3aXBlcmYuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXG1kbnNcbWRuc19kb21haW4uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXG1kbnNcbWRuc19vdXQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXG1xdHRcbXF0dC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcbmV0Ymlvc25zXG5ldGJpb3Nucy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc210cFxzbXRwLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfc25tcHYyX2ZyYW1ld29yay5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX3NubXB2Ml91c20uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNudHBcc250cC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcdGZ0cFx0ZnRwLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxhbHRjcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcYWx0Y3BfYWxsb2MuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGFsdGNwX3RjcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcZGVmLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxkbnMuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGluZXRfY2hrc3VtLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpbml0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxtZW0uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXG1lbXAuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXG5ldGlmLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxwYnVmLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxyYXcuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXHN0YXRzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxzeXMuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXHRjcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcdGNwX2luLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVx0Y3Bfb3V0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVx1ZHAuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjRcYWNkLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY0XGF1dG9pcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NFxkaGNwLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY0XGV0aGFycC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NFxpY21wLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY0XGlnbXAuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjRcaXA0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY0XGlwNF9hZGRyLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY2XGRoY3A2LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY2XGV0aGlwNi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NlxpY21wNi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NlxpbmV0Ni5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NlxpcDYuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjZcaXA2X2FkZHIuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjZcaXA2X2ZyYWcuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjZcbWxkNi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NlxuZDYuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxicmlkZ2VpZi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXGJyaWRnZWlmX2ZkYi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXGV0aGVybmV0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZcbG93cGFuNi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXGxvd3BhbjZfYmxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZcbG93cGFuNl9jb21tb24uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxzbGlwaWYuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcYXV0aC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxjY3AuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcY2hhcC1tZDUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcY2hhcC1uZXcuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcY2hhcF9tcy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxkZW1hbmQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcZWFwLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXGVjcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxldWk2NC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxmc20uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcaXBjcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxpcHY2Y3AuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcbGNwLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXG1hZ2ljLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXG1wcGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcbXVsdGlsaW5rLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXHBwcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxwcHBjcnlwdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxwcHBvZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxwcHBvbDJ0cC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxwcHBvcy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFx1cGFwLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXHV0aWxzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXHZqLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXHBvbGFyc3NsXGFyYzQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBccG9sYXJzc2xcZGVzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXHBvbGFyc3NsXG1kNC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxwb2xhcnNzbFxtZDUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBccG9sYXJzc2xcc2hhMS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcaHR0cFxmcy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcaHR0cFxmc2RhdGEuYyI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1ZyB1bml0dGVzdHN8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlIHVuaXR0ZXN0c3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcaHR0cFxodHRwZC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX2FzbjEuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9jb3JlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfbWliMi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX21zZy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX25ldGNvbm4uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9wYnVmX3N0cmVhbS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX3Jhdy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX3NjYWxhci5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX3RhYmxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfdGhyZWFkc3luYy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX3RyYXBzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wdjMuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9taWIyX2ljbXAuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9taWIyX2ludGVyZmFjZXMuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9taWIyX2lwLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfbWliMl9zbm1wLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfbWliMl9zeXN0ZW0uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9taWIyX3RjcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX21pYjJfdWRwLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXHBwcGFwaS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NFxpcDRfZnJhZy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcdGltZW91dHMuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXG1kbnNcbWRucy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wdjNfbWJlZHRscy5jIj4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWcgdW5pdHRlc3RzfFdpbjMyJyI+Li5cLi5cLi5cLi5cLi5cbWJlZHRsc1xpbmNsdWRlOy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlOy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjQ7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NjsuLlxpbmNsdWRlOy4uOy4uXC4uXC4uXGFwcHNcc25tcF9wcml2YXRlX21pYjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPi4uXC4uXC4uXC4uXC4uXG1iZWR0bHNcaW5jbHVkZTsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZTsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY0Oy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjY7Li5caW5jbHVkZTsuLjsuLlwuLlwuLlxhcHBzXHNubXBfcHJpdmF0ZV9taWI7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZSB1bml0dGVzdHN8V2luMzInIj4uLlwuLlwuLlwuLlwuLlxtYmVkdGxzXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li47Li5cLi5cLi5cYXBwc1xzbm1wX3ByaXZhdGVfbWliOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3RvcmllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLlwuLlwuLlwuLlwuLlxtYmVkdGxzXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li47Li5cLi5cLi5cYXBwc1xzbm1wX3ByaXZhdGVfbWliOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZcemVwaWYuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHNpby5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3lzX2FyY2guYyI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1ZyB1bml0dGVzdHN8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2UgdW5pdHRlc3RzfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cZG9jXGRveHlnZW5cbWFpbl9wYWdlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xhbHRjcF90bHNcYWx0Y3BfdGxzX21iZWR0bHNfbWVtLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xhbHRjcF90bHNcYWx0Y3BfdGxzX21iZWR0bHNfc3RydWN0cy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX21zZy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcY29tcGF0XHN0ZGNcZXJybm8uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGNvbXBhdFxwb3NpeFxhcnBhXGluZXQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGNvbXBhdFxwb3NpeFxuZXRkYi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcY29tcGF0XHBvc2l4XG5ldFxpZi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcY29tcGF0XHBvc2l4XHN5c1xzb2NrZXQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYWx0Y3AuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYWx0Y3BfdGNwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFsdGNwX3Rscy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXGFsdGNwX3Byb3h5Y29ubmVjdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXGFsdGNwX3Rsc19tYmVkdGxzX29wdHMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xodHRwX2NsaWVudC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXGx3aXBlcmYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xtZG5zX2RvbWFpbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXG1kbnNfb3V0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcbWRuc19wcml2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcbXF0dC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXG1xdHRfb3B0cy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXG1xdHRfcHJpdi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXG5ldGJpb3Nucy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXG5ldGJpb3Nuc19vcHRzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcc210cC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNtdHBfb3B0cy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNubXAuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xzbm1wX29wdHMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xzbm1wX3NubXB2Ml9mcmFtZXdvcmsuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xzbm1wX3NubXB2Ml91c20uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xzbnRwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcc250cF9vcHRzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcdGZ0cF9jbGllbnQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1x0ZnRwX2NvbW1vbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHRmdHBfb3B0cy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHRmdHBfc2VydmVyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGVycm5vLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGlmX2FwaS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpcDZfem9uZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcml2XGFsdGNwX3ByaXYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJpdlxhcGlfbXNnLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByaXZcbWVtcF9wcml2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByaXZcbWVtcF9zdGQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJpdlxtZW1fcHJpdi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcml2XG5kNl9wcml2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByaXZccmF3X3ByaXYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJpdlxzb2NrZXRzX3ByaXYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJpdlx0Y3BpcF9wcml2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByaXZcdGNwX3ByaXYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYWNkLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwaS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcmNoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGF1dG9pcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxkZWJ1Zy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxkZWYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcZGhjcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxkaGNwNi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxkbnMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcZXJyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGV0aGlwNi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpY21wLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGljbXA2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGlnbXAuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcaW5ldC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpbmV0X2Noa3N1bS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpbml0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGlwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGlwNC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpcDRfYWRkci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpcDYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcaXA2X2FkZHIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcaXA2X2ZyYWcuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcaXBfYWRkci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxtZW0uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcbWVtcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxtbGQ2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXG5kNi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxuZXRidWYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcbmV0ZGIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcbmV0aWYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcbmV0aWZhcGkuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcb3B0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHBidWYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJvdFxkaGNwNi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XGV0aGFycC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XGlhbmEuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJvdFxpZWVlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcaWdtcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxyYXcuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcc2lvLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHNubXAuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcc29ja2V0cy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxzdGF0cy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxzeXMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcdGNwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHRjcGlwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHVkcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZcYnJpZGdlaWYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGJyaWRnZWlmX29wdHMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGV0aGFycC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZcZXRoZXJuZXQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGllZWU4MDIxNTQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGxvd3BhbjYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGxvd3BhbjZfYmxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxsb3dwYW42X2NvbW1vbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZcbG93cGFuNl9vcHRzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxzbGlwaWYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxjY3AuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxjaGFwLW1kNS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXGNoYXAtbmV3LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcY2hhcF9tcy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXGVhcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXGVjcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXGV1aTY0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcZnNtLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcaXBjcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXGlwdjZjcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXGxjcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXG1hZ2ljLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcbXBwZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBwcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBwcF9pbXBsLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBccHBwX29wdHMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwcHBjcnlwdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBwcGRlYnVnLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBccHBwb2UuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwcHBvbDJ0cC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBwcG9zLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcdXBhcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHZqLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBccG9sYXJzc2xcYXJjNC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBvbGFyc3NsXGRlcy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBvbGFyc3NsXG1kNC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBvbGFyc3NsXG1kNS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBvbGFyc3NsXHNoYTEuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXGh0dHBcZnNkYXRhLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xodHRwXGh0dHBkX3N0cnVjdHMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9hc24xLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfY29yZV9wcml2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfcGJ1Zl9zdHJlYW0uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xzbm1wX2NvcmUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xzbm1wX21pYjIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xzbm1wX3NjYWxhci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNubXBfdGFibGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xzbm1wX3RocmVhZHN5bmMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwcHBhcGkuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xmcy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXGh0dHBkLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcaHR0cGRfb3B0cy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNubXB2My5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxldGhhcnAuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcaXA0X2ZyYWcuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcdGltZW91dHMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xtZG5zLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcbWRuc19vcHRzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcYWNkLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcYXV0b2lwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcZGhjcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XGRucy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XGlwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcaXA0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXB2M19wcml2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcZXRoZXJuZXQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJvdFxpY21wLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcaWNtcDYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJvdFxpcDYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJvdFxtbGQ2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcbmQ2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcdGNwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcdWRwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlx6ZXBpZi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHBcZGVmYXVsdF9uZXRpZi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHBcbHdpcGNmZy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHBcbHdpcG9wdHMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGV4YW1wbGVfYXBwXGx3aXBwb29scy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHBccHBwX3NldHRpbmdzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGFyY2hcYnBzdHJ1Y3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluY2x1ZGVcYXJjaFxjYy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5jbHVkZVxhcmNoXGVwc3RydWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGFyY2hccGVyZi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5jbHVkZVxhcmNoXHN5c19hcmNoLmgiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQLnZjeHByb2ouZmlsdGVycyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjkwYzNlCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3SVAudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsMTA3NSBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9ImRvYyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NTE3NTdhZTMtMDVjYS00ZTZhLWE3NDUtMTljOWZmYzYyMjc4fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyYyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZTQwZDU4ZWQtNThiZS00NjE4LTk2NjQtNmRmMjllMjdmODM1fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xhcGkiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezU3NTJmZDhmLTkwYzMtNDM4MS04YjZhLTg2YzA5YTJmOTg1OX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcYXBwcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NDhhODA1YTktZTVkMi00ZWVkLWIyOWMtMDJiNTcxNDBhMDNkfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xhcHBzXGx3aXBlcmYiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezhhOGRiYTU4LTkzNGMtNDI5Mi1hYThkLWQyMGUyYjgwMWJkNH08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcYXBwc1xuZXRiaW9zbnMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezIwNTk0NzA2LWQ2ZTEtNDUwMy1iYzM4LWYyOTc4OTJkNzUyYX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcYXBwc1xzbm1wIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnsxMDc1YWVjNy1iMDAxLTQ3YmQtOTg0Ni1lZDYzNTY4N2UyNmV9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0ic3JjXGFwcHNcc250cCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57OWI3YjNiMzktZjNiMC00OTE1LTgxZDktZDY2YzM0NDNjMzQ4fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xjb3JlIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns3NWY3NWFjNS03M2E0LTQ0NTgtYmMyMy1lYWVkNTI5YzM3ZTF9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0ic3JjXGNvcmVcaXB2NCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTc3NzIzMzktNDIxMC00YTMyLTgyZDAtZDI1MjY5ZDNlM2Q2fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xjb3JlXGlwdjYiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezA2NDY3ZWFkLTA2ODMtNDRkYi1iYzQxLTZhYTVhODI0OTBmMH08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcaW5jbHVkZSI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MTY2YTMyMDMtY2NjMy00ZWZmLTllYWEtMWU1NjQ4YTdmYjVifTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xpbmNsdWRlXGx3aXAiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezZiODg5NzM4LWI1OWEtNDUwYS1iNGRkLTBkMTk4NmJmZmNhMX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcaW5jbHVkZVxsd2lwXGFwcHMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2M2NGMwNjY0LWFjZDktNGYyZi04YmQ3LTc4MjUwZjRiN2I0Yn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcaW5jbHVkZVxsd2lwXHByaXYiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezU2ZThkMDQxLWYxZTAtNGIwMi1hMTczLTU2MzE5MGMwZWI0YX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcaW5jbHVkZVxuZXRpZiI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZGM3ODNlYTgtNjNlZC00ZGU2LWI1NzYtYTg3YzMxOGE3YWQxfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xpbmNsdWRlXG5ldGlmXHBwcCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NzgyMjE5MWItMWNkMC00Y2U4LWE4NTItZGEwNDc0OTc3ZmM0fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwb2xhcnNzbCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57YjIyYTNiN2EtZDA3Ni00NGE1LTlhMTYtMWU2ZjQ5Y2Q1YTk0fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xuZXRpZiI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MDEwOWZkYmItM2FlZC00NWZhLWEzMDgtNDkzOTg4NzU1MzY0fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xuZXRpZlxwcHAiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezMyYTljNGVkLTc2ODctNDhiYi04YjlkLTQ4MmMyZjZjNzU1NH08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcbmV0aWZccHBwXHBvbGFyc3NsIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPntjNmM0YTFhNy1kYWI4LTQ0NjMtYjE1NS0wN2U3MzAzYjU0ZTR9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iYXJjaCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MmU4N2QwZjctMzhhMy00NWY4LTg3MGQtZjg2MjJjMjBlOWQ5fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xhcHBzXGh0dHAiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezQ1ZjZhNTc4LTFmNGItNDc0MS05YjU1LTViNTA4NGVjYzFkOX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcYXBwc1xtZG5zIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5MjIxNTI3Mi1jYWQ5LTRjZjAtYTJlMS03MDVmNjIyMGUyYTl9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0ic3JjXGluY2x1ZGVcbHdpcFxwcm90Ij4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPntiZGQzOTk1YS1hYTM0LTRhNGUtODkxZS1hMTNjNTM3M2Q2MTh9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iZG9jXGRveHlnZW4iPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2QwY2U2ZThiLTRiMzAtNDk4Yi1hMWJiLWFlY2VlOTU4ZGY0Mn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcYXBwc1x0ZnRwIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns2ZGI3Mzg2OS0yM2Y2LTQ4YWItOGQ5Mi1jOGU0NzhlNTU4OTJ9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0ic3JjXGFwcHNcbXF0dCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NjU1NDJhOTctYzU4OC00N2IzLWIxZjYtYWU1MTY0NWM3MzZlfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xhcHBzXGFsdGNwX3RscyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZmZkMjgzZjQtNDRmMC00YmUyLTgzYTMtOGJkNTVmMjllODBmfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xhcHBzXHNtdHAiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2Q5NDU2ODg4LWQyOTktNDhmZi04MTY1LWZmNDk5ZTVhMGJhM308L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcaW5jbHVkZVxjb21wYXQiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezVhYTc4NmU0LWRmMjYtNDMyYy1iMzJjLTljNGZhYzAwYjk1MX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcaW5jbHVkZVxjb21wYXRccG9zaXgiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezhmYjQyZDc4LTFlNzctNDIwOC1iNDU3LTQ0ZjQxYzRjYzkwMX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJzcmNcaW5jbHVkZVxjb21wYXRccG9zaXhcc3lzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns4MTU3OGYxMS05ZDNjLTRiYzgtYTUxOC02Zjc4ZjA4MmZlMGV9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0ic3JjXGluY2x1ZGVcY29tcGF0XHBvc2l4XG5ldCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZjhkNjUwODctMGNlZS00NmRlLThkOGMtZGNhNzE5YmYyYTRifTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InNyY1xpbmNsdWRlXGNvbXBhdFxwb3NpeFxhcnBhIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5MWQ4NDczYS1kZWI1LTQ5NDMtOGI2My1iNDNkODZjN2ZhMWN9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0ic3JjXGluY2x1ZGVcY29tcGF0XHN0ZGMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezE1ODU1YTc0LTQ4YzYtNDczYy1iNGNiLTQwZWMwNjU2OThkNH08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJleGFtcGxlX2FwcCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MmM3OTU0OTAtNTMxZC00YTAzLWIzMGQtNzM3NjBiMDk5NzVhfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cQ0hBTkdFTE9HIiAvPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXENPUFlJTkciIC8+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cRklMRVMiIC8+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cUkVBRE1FIiAvPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXFVQR1JBRElORyIgLz4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxkb2NcY29udHJpYi50eHQiPgorICAgICAgPEZpbHRlcj5kb2M8L0ZpbHRlcj4KKyAgICA8L05vbmU+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cZG9jXEZJTEVTIj4KKyAgICAgIDxGaWx0ZXI+ZG9jPC9GaWx0ZXI+CisgICAgPC9Ob25lPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXGRvY1xtZG5zLnR4dCI+CisgICAgICA8RmlsdGVyPmRvYzwvRmlsdGVyPgorICAgIDwvTm9uZT4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxkb2NccHBwLnR4dCI+CisgICAgICA8RmlsdGVyPmRvYzwvRmlsdGVyPgorICAgIDwvTm9uZT4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxkb2Ncc2F2YW5uYWgudHh0Ij4KKyAgICAgIDxGaWx0ZXI+ZG9jPC9GaWx0ZXI+CisgICAgPC9Ob25lPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXGRvY1xkb3h5Z2VuXGdlbmVyYXRlLmJhdCI+CisgICAgICA8RmlsdGVyPmRvY1xkb3h5Z2VuPC9GaWx0ZXI+CisgICAgPC9Ob25lPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXGRvY1xkb3h5Z2VuXGdlbmVyYXRlLnNoIj4KKyAgICAgIDxGaWx0ZXI+ZG9jXGRveHlnZW48L0ZpbHRlcj4KKyAgICA8L05vbmU+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cZG9jXGRveHlnZW5cbHdpcC5Eb3h5ZmlsZSI+CisgICAgICA8RmlsdGVyPmRvY1xkb3h5Z2VuPC9GaWx0ZXI+CisgICAgPC9Ob25lPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGV4YW1wbGVfYXBwXGx3aXBjZmcuaC5leGFtcGxlIj4KKyAgICAgIDxGaWx0ZXI+ZXhhbXBsZV9hcHA8L0ZpbHRlcj4KKyAgICA8L05vbmU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwaVxhcGlfbGliLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBpPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBpXGFwaV9tc2cuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcGk8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcGlcZXJyLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBpPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBpXG5ldGJ1Zi5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwaTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwaVxuZXRkYi5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwaTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwaVxuZXRpZmFwaS5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwaTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwaVxzb2NrZXRzLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBpPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBpXHRjcGlwLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBpPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xsd2lwZXJmXGx3aXBlcmYuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXGx3aXBlcmY8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXG5ldGJpb3Nuc1xuZXRiaW9zbnMuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXG5ldGJpb3NuczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc250cFxzbnRwLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbnRwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxkZWYuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxkbnMuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpbmV0X2Noa3N1bS5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGNvcmU8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGluaXQuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxtZW0uYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxtZW1wLmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcbmV0aWYuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxwYnVmLmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVccmF3LmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcc3RhdHMuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxzeXMuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVx0Y3AuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVx0Y3BfaW4uYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVx0Y3Bfb3V0LmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcdWRwLmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NFxhY2QuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlXGlwdjQ8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjRcYXV0b2lwLmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZVxpcHY0PC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY0XGRoY3AuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlXGlwdjQ8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjRcaWNtcC5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGNvcmVcaXB2NDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NFxpZ21wLmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZVxpcHY0PC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY0XGlwNC5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGNvcmVcaXB2NDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NFxpcDRfYWRkci5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGNvcmVcaXB2NDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NlxkaGNwNi5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGNvcmVcaXB2NjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NlxldGhpcDYuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlXGlwdjY8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjZcaWNtcDYuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlXGlwdjY8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjZcaW5ldDYuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlXGlwdjY8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjZcaXA2LmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZVxpcHY2PC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY2XGlwNl9hZGRyLmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZVxpcHY2PC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY2XGlwNl9mcmFnLmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZVxpcHY2PC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxpcHY2XG1sZDYuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlXGlwdjY8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjZcbmQ2LmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZVxpcHY2PC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZcZXRoZXJuZXQuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXGxvd3BhbjYuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHNsaXBpZi5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXGF1dGguYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcY2NwLmMiPgorICAgICAgPEZpbHRlcj5zcmNcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXGNoYXAtbWQ1LmMiPgorICAgICAgPEZpbHRlcj5zcmNcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXGNoYXAtbmV3LmMiPgorICAgICAgPEZpbHRlcj5zcmNcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXGNoYXBfbXMuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcZGVtYW5kLmMiPgorICAgICAgPEZpbHRlcj5zcmNcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXGVhcC5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxlY3AuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcZXVpNjQuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcZnNtLmMiPgorICAgICAgPEZpbHRlcj5zcmNcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXGlwY3AuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcaXB2NmNwLmMiPgorICAgICAgPEZpbHRlcj5zcmNcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXGxjcC5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxtYWdpYy5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxtcHBlLmMiPgorICAgICAgPEZpbHRlcj5zcmNcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXG11bHRpbGluay5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxwcHAuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBccHBwY3J5cHQuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBccHBwb2UuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBccHBwb2wydHAuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBccHBwb3MuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBcdXBhcC5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFx1dGlscy5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFx2ai5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxwb2xhcnNzbFxhcmM0LmMiPgorICAgICAgPEZpbHRlcj5zcmNcbmV0aWZccHBwXHBvbGFyc3NsPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXHBvbGFyc3NsXGRlcy5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmXHBwcFxwb2xhcnNzbDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHBwcFxwb2xhcnNzbFxtZDQuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHBccG9sYXJzc2w8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxwcHBccG9sYXJzc2xcbWQ1LmMiPgorICAgICAgPEZpbHRlcj5zcmNcbmV0aWZccHBwXHBvbGFyc3NsPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXHBvbGFyc3NsXHNoYTEuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZlxwcHBccG9sYXJzc2w8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHNpby5jIj4KKyAgICAgIDxGaWx0ZXI+YXJjaDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cc3lzX2FyY2guYyI+CisgICAgICA8RmlsdGVyPmFyY2g8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXGh0dHBcaHR0cGQuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXGh0dHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXGh0dHBcZnNkYXRhLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xodHRwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xodHRwXGZzLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xodHRwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfYXNuMS5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwcHNcc25tcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX2NvcmUuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXHNubXA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9taWIyLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfbXNnLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfbmV0Y29ubi5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwcHNcc25tcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX3BidWZfc3RyZWFtLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfcmF3LmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfc2NhbGFyLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfdGFibGUuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXHNubXA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF90aHJlYWRzeW5jLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfdHJhcHMuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXHNubXA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwLmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX21pYjJfaWNtcC5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwcHNcc25tcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX21pYjJfaW50ZXJmYWNlcy5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwcHNcc25tcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX21pYjJfaXAuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXHNubXA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9taWIyX3NubXAuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXHNubXA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9taWIyX3N5c3RlbS5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwcHNcc25tcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX21pYjJfdGNwLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfbWliMl91ZHAuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXHNubXA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcHYzLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZccHBwXHBwcGFwaS5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGNvcmVcaXB2NFxldGhhcnAuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlXGlwdjQ8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGlwdjRcaXA0X2ZyYWcuYyI+CisgICAgICA8RmlsdGVyPnNyY1xjb3JlXGlwdjQ8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXHRpbWVvdXRzLmMiPgorICAgICAgPEZpbHRlcj5zcmNcY29yZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcbWRuc1xtZG5zLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xtZG5zPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXB2M19tYmVkdGxzLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxkb2NcTk9fU1lTX1NhbXBsZUNvZGUuYyI+CisgICAgICA8RmlsdGVyPmRvYzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcdGZ0cFx0ZnRwLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1x0ZnRwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xtcXR0XG1xdHQuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXG1xdHQ8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcGlcaWZfYXBpLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBpPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZcYnJpZGdlaWYuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcc25tcFxzbm1wX3NubXB2Ml9mcmFtZXdvcmsuYyI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXHNubXA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9zbm1wdjJfdXNtLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxhbHRjcC5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGNvcmU8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xjb3JlXGFsdGNwX3RjcC5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGNvcmU8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXGFsdGNwX3Rsc1xhbHRjcF90bHNfbWJlZHRscy5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwcHNcYWx0Y3BfdGxzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xhbHRjcF90bHNcYWx0Y3BfdGxzX21iZWR0bHNfbWVtLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xhbHRjcF90bHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNtdHBcc210cC5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwcHNcc210cDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXGJyaWRnZWlmX2ZkYi5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xodHRwXGh0dHBfY2xpZW50LmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xodHRwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcY29yZVxhbHRjcF9hbGxvYy5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGNvcmU8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXGh0dHBcYWx0Y3BfcHJveHljb25uZWN0LmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xodHRwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcbmV0aWZcbG93cGFuNl9ibGUuYyI+CisgICAgICA8RmlsdGVyPnNyY1xuZXRpZjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXG5ldGlmXHplcGlmLmMiPgorICAgICAgPEZpbHRlcj5zcmNcbmV0aWY8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xuZXRpZlxsb3dwYW42X2NvbW1vbi5jIj4KKyAgICAgIDxGaWx0ZXI+c3JjXG5ldGlmPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xtZG5zXG1kbnNfZG9tYWluLmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xtZG5zPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xtZG5zXG1kbnNfb3V0LmMiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xtZG5zPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXGx3aXBlcmYuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXG5ldGJpb3Nucy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcbmV0Ymlvc25zX29wdHMuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNubXAuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNubXBfb3B0cy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcc250cC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcc250cF9vcHRzLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXGFwcHM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYWNkLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwaS5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcmNoLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGF1dG9pcC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxkZWJ1Zy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxkZWYuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcZGhjcC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxkaGNwNi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxkbnMuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcZXJyLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGV0aGlwNi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpY21wLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGljbXA2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGlnbXAuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcaW5ldC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpbmV0X2Noa3N1bS5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpbml0LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGlwLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGlwNC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpcDRfYWRkci5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpcDYuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcaXA2X2FkZHIuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcaXA2X2ZyYWcuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcaXBfYWRkci5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxtZW0uaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcbWVtcC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxtbGQ2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXG5kNi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxuZXRidWYuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcbmV0ZGIuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcbmV0aWYuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcbmV0aWZhcGkuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcb3B0LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHBidWYuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccmF3LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHNpby5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxzbm1wLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHNvY2tldHMuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcc3RhdHMuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcc3lzLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHRjcC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFx0Y3BpcC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFx1ZHAuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGV0aGFycC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGV0aGVybmV0LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZcbG93cGFuNi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGxvd3BhbjZfb3B0cy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHNsaXBpZi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxjY3AuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXGNoYXAtbWQ1LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxjaGFwLW5ldy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcY2hhcF9tcy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcZWFwLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxlY3AuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXGV1aTY0LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxmc20uaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXGlwY3AuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXGlwdjZjcC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcbGNwLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxtYWdpYy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcbXBwZS5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBccHBwLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwcHBfaW1wbC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBccHBwX29wdHMuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBwcGNyeXB0LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwcHBkZWJ1Zy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBccHBwb2UuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBwcG9sMnRwLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwcHBvcy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcdXBhcC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWZccHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBcdmouaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmXHBwcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBvbGFyc3NsXGFyYzQuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwb2xhcnNzbDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBvbGFyc3NsXGRlcy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWZccHBwXHBvbGFyc3NsPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBccG9sYXJzc2xcbWQ0LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZlxwcHBccG9sYXJzc2w8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwb2xhcnNzbFxtZDUuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwb2xhcnNzbDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZccHBwXHBvbGFyc3NsXHNoYTEuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmXHBwcFxwb2xhcnNzbDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5jbHVkZVxhcmNoXGJwc3RydWN0LmgiPgorICAgICAgPEZpbHRlcj5hcmNoPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbmNsdWRlXGFyY2hcY2MuaCI+CisgICAgICA8RmlsdGVyPmFyY2g8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluY2x1ZGVcYXJjaFxlcHN0cnVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+YXJjaDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5jbHVkZVxhcmNoXHBlcmYuaCI+CisgICAgICA8RmlsdGVyPmFyY2g8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluY2x1ZGVcYXJjaFxzeXNfYXJjaC5oIj4KKyAgICAgIDxGaWx0ZXI+YXJjaDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcml2XHRjcF9wcml2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByaXY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJpdlx0Y3BpcF9wcml2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByaXY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJpdlxtZW1wX3ByaXYuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBccHJpdjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcml2XG1lbXBfc3RkLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByaXY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJpdlxhcGlfbXNnLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByaXY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXGh0dHBcaHR0cGRfc3RydWN0cy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGFwcHNcaHR0cDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGFwcHNcaHR0cFxmc2RhdGEuaCI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXGh0dHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXHNubXBcc25tcF9hc24xLmgiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfY29yZV9wcml2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfcGJ1Zl9zdHJlYW0uaCI+CisgICAgICA8RmlsdGVyPnNyY1xhcHBzXHNubXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xzbm1wX2NvcmUuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNubXBfbWliMi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcc25tcF9zY2FsYXIuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNubXBfdGFibGUuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNubXBfdGhyZWFkc3luYy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXBfbXNnLmgiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxwcHBccHBwYXBpLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZlxwcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xmcy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcaHR0cGQuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXGh0dHBkX29wdHMuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNubXB2My5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGV0aGFycC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxpcDRfZnJhZy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFx0aW1lb3V0cy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXG1kbnMuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXG1kbnNfb3B0cy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcYWNkLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByb3Q8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJvdFxhdXRvaXAuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBccHJvdDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XGRoY3AuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBccHJvdDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XGRucy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxwcm90PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcaXAuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBccHJvdDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XGlwNC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxwcm90PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xzbm1wXHNubXB2M19wcml2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcZXRoZXJuZXQuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBccHJvdDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XGljbXAuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBccHJvdDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XGljbXA2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByb3Q8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJvdFxpcDYuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBccHJvdDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XG1sZDYuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBccHJvdDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcm90XG5kNi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxwcm90PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcdGNwLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByb3Q8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJvdFx1ZHAuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBccHJvdDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXG1kbnNfcHJpdi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcaWdtcC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxwcm90PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcZXRoYXJwLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByb3Q8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXGRvY1xkb3h5Z2VuXG1haW5fcGFnZS5oIj4KKyAgICAgIDxGaWx0ZXI+ZG9jXGRveHlnZW48L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1x0ZnRwX2NsaWVudC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcdGZ0cF9jb21tb24uaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHRmdHBfb3B0cy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcdGZ0cF9zZXJ2ZXIuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxlcnJuby5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcml2XG5kNl9wcml2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByaXY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xtcXR0LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXGFwcHM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcaWZfYXBpLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGlwNl96b25lLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByaXZcc29ja2V0c19wcml2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByaXY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGJyaWRnZWlmLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbmV0aWZcYnJpZGdlaWZfb3B0cy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYWx0Y3AuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYWx0Y3BfdGNwLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xhbHRjcF90bHNcYWx0Y3BfdGxzX21iZWR0bHNfbWVtLmgiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xhbHRjcF90bHM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xhcHBzXGFsdGNwX3Rsc1xhbHRjcF90bHNfbWJlZHRsc19zdHJ1Y3RzLmgiPgorICAgICAgPEZpbHRlcj5zcmNcYXBwc1xhbHRjcF90bHM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYWx0Y3BfdGxzLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcYWx0Y3BfdGxzX21iZWR0bHNfb3B0cy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcc25tcF9zbm1wdjJfZnJhbWV3b3JrLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXGFwcHM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xzbm1wX3NubXB2Ml91c20uaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNtdHAuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxhcHBzXHNtdHBfb3B0cy5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByaXZcYWx0Y3BfcHJpdi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxwcml2PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcbXF0dF9wcml2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXGFwcHM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xtcXR0X29wdHMuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcY29tcGF0XHBvc2l4XHN5c1xzb2NrZXQuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGNvbXBhdFxwb3NpeFxzeXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGNvbXBhdFxwb3NpeFxuZXRkYi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcY29tcGF0XHBvc2l4PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxjb21wYXRccG9zaXhcbmV0XGlmLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxjb21wYXRccG9zaXhcbmV0PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxjb21wYXRccG9zaXhcYXJwYVxpbmV0LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxjb21wYXRccG9zaXhcYXJwYTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcY29tcGF0XHN0ZGNcZXJybm8uaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGNvbXBhdFxzdGRjPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcaWFuYS5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxwcm90PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByb3RcaWVlZS5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxwcm90PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXHByaXZccmF3X3ByaXYuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBccHJpdjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcbHdpcFxwcml2XG1lbV9wcml2LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXHByaXY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xodHRwX2NsaWVudC5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcYWx0Y3BfcHJveHljb25uZWN0LmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxsd2lwXGFwcHM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBccHJvdFxkaGNwNi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxwcm90PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlxsb3dwYW42X2JsZS5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGllZWU4MDIxNTQuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXG5ldGlmPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxuZXRpZlx6ZXBpZi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbmV0aWY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXG5ldGlmXGxvd3BhbjZfY29tbW9uLmgiPgorICAgICAgPEZpbHRlcj5zcmNcaW5jbHVkZVxuZXRpZjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHBcZGVmYXVsdF9uZXRpZi5oIj4KKyAgICAgIDxGaWx0ZXI+ZXhhbXBsZV9hcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGV4YW1wbGVfYXBwXGx3aXBjZmcuaCI+CisgICAgICA8RmlsdGVyPmV4YW1wbGVfYXBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xleGFtcGxlX2FwcFxsd2lwb3B0cy5oIj4KKyAgICAgIDxGaWx0ZXI+ZXhhbXBsZV9hcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGV4YW1wbGVfYXBwXGx3aXBwb29scy5oIj4KKyAgICAgIDxGaWx0ZXI+ZXhhbXBsZV9hcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGV4YW1wbGVfYXBwXHBwcF9zZXR0aW5ncy5oIj4KKyAgICAgIDxGaWx0ZXI+ZXhhbXBsZV9hcHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGx3aXBcYXBwc1xtZG5zX2RvbWFpbi5oIj4KKyAgICAgIDxGaWx0ZXI+c3JjXGluY2x1ZGVcbHdpcFxhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxsd2lwXGFwcHNcbWRuc19vdXQuaCI+CisgICAgICA8RmlsdGVyPnNyY1xpbmNsdWRlXGx3aXBcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3dpbjMyL21zdmMvbHdJUF9UZXN0LnNsbiBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQX1Rlc3Quc2xuCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlNTlhYmQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3dpbjMyL21zdmMvbHdJUF9UZXN0LnNsbgpAQCAtMCwwICsxLDM3IEBACitNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMS4wMAorIyBWaXN1YWwgQysrIEV4cHJlc3MgMjAxMAorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJsd0lQX1Rlc3QiLCAibHdJUF9UZXN0LnZjeHByb2oiLCAiezhDQzBDRTUxLTMyQ0YtNDU4NS1CRkFGLUE5MzQzQkM1QTk2RH0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImx3SVAgcGNhcGlmIiwgImx3SVBfcGNhcGlmLnZjeHByb2oiLCAiezZGNDRFNDlFLTlGMjEtNDE0NC05MUVDLTUzQjkyQUVGNjJDRX0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImx3SVAiLCAibHdJUC52Y3hwcm9qIiwgInsyQ0MyNzZGQS1CMjI2LTQ5QzktOEY4Mi03RkNENUEyMjhFMjh9IgorRW5kUHJvamVjdAorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJtYWtlZnNkYXRhIiwgIm1ha2Vmc2RhdGEudmN4cHJvaiIsICJ7MEJGQzBGMjEtOEU4NC00RTY4LUE5RTEtQ0UyQTA5QjcyRjZEfSIKK0VuZFByb2plY3QKK0dsb2JhbAorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uCisJCURlYnVnfFdpbjMyID0gRGVidWd8V2luMzIKKwkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzIKKwlFbmRHbG9iYWxTZWN0aW9uCisJR2xvYmFsU2VjdGlvbihQcm9qZWN0Q29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwb3N0U29sdXRpb24KKwkJezhDQzBDRTUxLTMyQ0YtNDU4NS1CRkFGLUE5MzQzQkM1QTk2RH0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJezhDQzBDRTUxLTMyQ0YtNDU4NS1CRkFGLUE5MzQzQkM1QTk2RH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJCXs4Q0MwQ0U1MS0zMkNGLTQ1ODUtQkZBRi1BOTM0M0JDNUE5NkR9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgorCQl7OENDMENFNTEtMzJDRi00NTg1LUJGQUYtQTkzNDNCQzVBOTZEfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJCXs2RjQ0RTQ5RS05RjIxLTQxNDQtOTFFQy01M0I5MkFFRjYyQ0V9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXs2RjQ0RTQ5RS05RjIxLTQxNDQtOTFFQy01M0I5MkFFRjYyQ0V9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7NkY0NEU0OUUtOUYyMS00MTQ0LTkxRUMtNTNCOTJBRUY2MkNFfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezZGNDRFNDlFLTlGMjEtNDE0NC05MUVDLTUzQjkyQUVGNjJDRX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7MkNDMjc2RkEtQjIyNi00OUM5LThGODItN0ZDRDVBMjI4RTI4fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMgorCQl7MkNDMjc2RkEtQjIyNi00OUM5LThGODItN0ZDRDVBMjI4RTI4fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzIKKwkJezJDQzI3NkZBLUIyMjYtNDlDOS04RjgyLTdGQ0Q1QTIyOEUyOH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyCisJCXsyQ0MyNzZGQS1CMjI2LTQ5QzktOEY4Mi03RkNENUEyMjhFMjh9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzIKKwkJezBCRkMwRjIxLThFODQtNEU2OC1BOUUxLUNFMkEwOUI3MkY2RH0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzIKKwkJezBCRkMwRjIxLThFODQtNEU2OC1BOUUxLUNFMkEwOUI3MkY2RH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyCisJCXswQkZDMEYyMS04RTg0LTRFNjgtQTlFMS1DRTJBMDlCNzJGNkR9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMgorCQl7MEJGQzBGMjEtOEU4NC00RTY4LUE5RTEtQ0UyQTA5QjcyRjZEfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyCisJRW5kR2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uCisJCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQorCUVuZEdsb2JhbFNlY3Rpb24KK0VuZEdsb2JhbApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3SVBfVGVzdC52Y3hwcm9qIGIvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3SVBfVGVzdC52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ZDRkYWIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3dpbjMyL21zdmMvbHdJUF9UZXN0LnZjeHByb2oKQEAgLTAsMCArMSwyMDkgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+ezhDQzBDRTUxLTMyQ0YtNDU4NS1CRkFGLUE5MzQzQkM1QTk2RH08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPmx3SVBfdGVzdDwvUm9vdE5hbWVzcGFjZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djE0MzwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PnYxNDM8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpTWljcm9zb2Z0LkNQUC5VcGdyYWRlRnJvbVZDNzEucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClNaWNyb3NvZnQuQ1BQLlVwZ3JhZGVGcm9tVkM3MS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi5cJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KKyAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi5cJChDb25maWd1cmF0aW9uKVwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KKyAgICA8TGlua0luY3JlbWVudGFsIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+CisgICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvTGlua0luY3JlbWVudGFsPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxNaWRsPgorICAgICAgPFR5cGVMaWJyYXJ5TmFtZT4uXFJlbGVhc2UvdGVzdC50bGI8L1R5cGVMaWJyYXJ5TmFtZT4KKyAgICAgIDxIZWFkZXJGaWxlTmFtZT4KKyAgICAgIDwvSGVhZGVyRmlsZU5hbWU+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8SW5saW5lRnVuY3Rpb25FeHBhbnNpb24+T25seUV4cGxpY2l0SW5saW5lPC9JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlOy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjQ7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NjsuLlxpbmNsdWRlOy4uXC4uXC4uXGV4YW1wbGVzXGV4YW1wbGVfYXBwOy4uXC4uXC4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7TkRFQlVHO19DT05TT0xFO19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgorICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGU+JChJbnREaXIpJChUYXJnZXROYW1lKS5wY2g8L1ByZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZT4KKyAgICAgIDxQcm9ncmFtRGF0YUJhc2VGaWxlTmFtZT4kKEludERpcikkKFByb2plY3ROYW1lKS5wZGI8L1Byb2dyYW1EYXRhQmFzZUZpbGVOYW1lPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDQ8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxTdXBwcmVzc1N0YXJ0dXBCYW5uZXI+dHJ1ZTwvU3VwcHJlc3NTdGFydHVwQmFubmVyPgorICAgICAgPENvbXBpbGVBcz5EZWZhdWx0PC9Db21waWxlQXM+CisgICAgICA8VHJlYXRXYXJuaW5nQXNFcnJvcj50cnVlPC9UcmVhdFdhcm5pbmdBc0Vycm9yPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwNzwvQ3VsdHVyZT4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPlBhY2tldC5saWI7d3BjYXAubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8U3VwcHJlc3NTdGFydHVwQmFubmVyPnRydWU8L1N1cHByZXNzU3RhcnR1cEJhbm5lcj4KKyAgICAgIDxBZGRpdGlvbmFsTGlicmFyeURpcmVjdG9yaWVzPiQoUENBUF9ESVIpXExpYjsuLlwuLlwuLlwuLlwuLlx3aW5wY2FwXFdwZFBhY2tcTGliOyUoQWRkaXRpb25hbExpYnJhcnlEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxMaWJyYXJ5RGlyZWN0b3JpZXM+CisgICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4uXFJlbGVhc2UvdGVzdC5wZGI8L1Byb2dyYW1EYXRhYmFzZUZpbGU+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICAgIDxSYW5kb21pemVkQmFzZUFkZHJlc3M+ZmFsc2U8L1JhbmRvbWl6ZWRCYXNlQWRkcmVzcz4KKyAgICAgIDxEYXRhRXhlY3V0aW9uUHJldmVudGlvbj4KKyAgICAgIDwvRGF0YUV4ZWN1dGlvblByZXZlbnRpb24+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgorICAgICAgPEdlbmVyYXRlTWFwRmlsZT50cnVlPC9HZW5lcmF0ZU1hcEZpbGU+CisgICAgICA8TWFwRmlsZU5hbWU+JChUYXJnZXREaXIpJChUYXJnZXROYW1lKS5tYXA8L01hcEZpbGVOYW1lPgorICAgICAgPERlbGF5TG9hZERMTHM+UGFja2V0LmRsbDt3cGNhcC5kbGw7JShEZWxheUxvYWRETExzKTwvRGVsYXlMb2FkRExMcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxNaWRsPgorICAgICAgPFR5cGVMaWJyYXJ5TmFtZT4uXERlYnVnL3Rlc3QudGxiPC9UeXBlTGlicmFyeU5hbWU+CisgICAgICA8SGVhZGVyRmlsZU5hbWU+CisgICAgICA8L0hlYWRlckZpbGVOYW1lPgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHA7Li5cLi5cLi47JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTtXSU4zMjtfREVCVUc7TFdJUF9ERUJVRztfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAgICA8UHJlY29tcGlsZWRIZWFkZXJPdXRwdXRGaWxlPiQoSW50RGlyKSQoVGFyZ2V0TmFtZSkucGNoPC9QcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGU+CisgICAgICA8UHJvZ3JhbURhdGFCYXNlRmlsZU5hbWU+JChJbnREaXIpJChQcm9qZWN0TmFtZSkucGRiPC9Qcm9ncmFtRGF0YUJhc2VGaWxlTmFtZT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWw0PC9XYXJuaW5nTGV2ZWw+CisgICAgICA8U3VwcHJlc3NTdGFydHVwQmFubmVyPnRydWU8L1N1cHByZXNzU3RhcnR1cEJhbm5lcj4KKyAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PkVkaXRBbmRDb250aW51ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KKyAgICAgIDxDb21waWxlQXM+RGVmYXVsdDwvQ29tcGlsZUFzPgorICAgICAgPFRyZWF0V2FybmluZ0FzRXJyb3I+dHJ1ZTwvVHJlYXRXYXJuaW5nQXNFcnJvcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDc8L0N1bHR1cmU+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5QYWNrZXQubGliO3dwY2FwLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPFN1cHByZXNzU3RhcnR1cEJhbm5lcj50cnVlPC9TdXBwcmVzc1N0YXJ0dXBCYW5uZXI+CisgICAgICA8QWRkaXRpb25hbExpYnJhcnlEaXJlY3Rvcmllcz4kKFBDQVBfRElSKVxMaWI7Li5cLi5cLi5cLi5cLi5cd2lucGNhcFxXcGRQYWNrXExpYjslKEFkZGl0aW9uYWxMaWJyYXJ5RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsTGlicmFyeURpcmVjdG9yaWVzPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICAgIDxSYW5kb21pemVkQmFzZUFkZHJlc3M+ZmFsc2U8L1JhbmRvbWl6ZWRCYXNlQWRkcmVzcz4KKyAgICAgIDxEYXRhRXhlY3V0aW9uUHJldmVudGlvbj4KKyAgICAgIDwvRGF0YUV4ZWN1dGlvblByZXZlbnRpb24+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgorICAgICAgPEdlbmVyYXRlTWFwRmlsZT5mYWxzZTwvR2VuZXJhdGVNYXBGaWxlPgorICAgICAgPE1hcEZpbGVOYW1lPiQoVGFyZ2V0RGlyKSQoVGFyZ2V0TmFtZSkubWFwPC9NYXBGaWxlTmFtZT4KKyAgICAgIDxEZWxheUxvYWRETExzPlBhY2tldC5kbGw7d3BjYXAuZGxsOyUoRGVsYXlMb2FkRExMcyk8L0RlbGF5TG9hZERMTHM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxhZGRvbnNcaXB2Nl9zdGF0aWNfcm91dGluZ1xpcDZfcm91dGVfdGFibGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFkZG9uc1x0Y3BfaXNuXHRjcF9pc24uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcdGNwZWNob19yYXdcdGNwZWNob19yYXcuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcdWRwZWNob19yYXdcdWRwZWNob19yYXcuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGV4YW1wbGVfYXBwXHRlc3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGh0dHBkXGNnaV9leGFtcGxlXGNnaV9leGFtcGxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xodHRwZFxmc19leGFtcGxlXGZzX2V4YW1wbGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGh0dHBkXGdlbmZpbGVzX2V4YW1wbGVcZ2VuZmlsZXNfZXhhbXBsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcaHR0cGRcaHR0cHNfZXhhbXBsZVxodHRwc19leGFtcGxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xodHRwZFxwb3N0X2V4YW1wbGVccG9zdF9leGFtcGxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xodHRwZFxzc2lfZXhhbXBsZVxzc2lfZXhhbXBsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcbHdpcGVyZlxsd2lwZXJmX2V4YW1wbGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXG1kbnNcbWRuc19leGFtcGxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xtcXR0XG1xdHRfZXhhbXBsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNccHBwXHBwcG9zX2V4YW1wbGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXHNubXBcc25tcF9leGFtcGxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xzbm1wXHNubXBfcHJpdmF0ZV9taWJcbHdpcF9wcnZtaWIuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXHNubXBcc25tcF92M1xzbm1wdjNfZHVtbXkuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXHNudHBcc250cF9leGFtcGxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1x0ZnRwXHRmdHBfZXhhbXBsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1xjaGFyZ2VuXGNoYXJnZW4uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcaHR0cHNlcnZlclxodHRwc2VydmVyLW5ldGNvbm4uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcbmV0aW9cbmV0aW8uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNccGluZ1xwaW5nLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXHJ0cFxydHAuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcc2hlbGxcc2hlbGwuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcc29ja2V0X2V4YW1wbGVzXHNvY2tldF9leGFtcGxlcy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1x0Y3BlY2hvXHRjcGVjaG8uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcdWRwZWNob1x1ZHBlY2hvLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxleGFtcGxlX2FwcFxkZWZhdWx0X25ldGlmLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYWRkb25zXGlwdjZfc3RhdGljX3JvdXRpbmdcaXA2X3JvdXRlX3RhYmxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxhZGRvbnNcdGNwX2lzblx0Y3BfaXNuLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXGNoYXJnZW5cY2hhcmdlbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1xodHRwc2VydmVyXGh0dHBzZXJ2ZXItbmV0Y29ubi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1xuZXRpb1xuZXRpby5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1xwaW5nXHBpbmcuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNccnRwXHJ0cC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1xzaGVsbFxzaGVsbC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1xzb2NrZXRfZXhhbXBsZXNcc29ja2V0X2V4YW1wbGVzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXHRjcGVjaG9cdGNwZWNoby5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1x0Y3BlY2hvX3Jhd1x0Y3BlY2hvX3Jhdy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1x1ZHBlY2hvXHVkcGVjaG8uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcdWRwZWNob19yYXdcdWRwZWNob19yYXcuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGh0dHBkXGNnaV9leGFtcGxlXGNnaV9leGFtcGxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xodHRwZFxmc19leGFtcGxlXGZzX2V4YW1wbGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGh0dHBkXGdlbmZpbGVzX2V4YW1wbGVcZ2VuZmlsZXNfZXhhbXBsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcaHR0cGRcaHR0cHNfZXhhbXBsZVxodHRwc19leGFtcGxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xodHRwZFxzc2lfZXhhbXBsZVxzc2lfZXhhbXBsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcbHdpcGVyZlxsd2lwZXJmX2V4YW1wbGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXG1kbnNcbWRuc19leGFtcGxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xtcXR0XG1xdHRfZXhhbXBsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNccHBwXHBwcG9zX2V4YW1wbGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXHNubXBcc25tcF9leGFtcGxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xzbm1wXHNubXBfcHJpdmF0ZV9taWJccHJpdmF0ZV9taWIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXHNubXBcc25tcF92M1xzbm1wdjNfZHVtbXkuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXHNudHBcc250cF9leGFtcGxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1x0ZnRwXHRmdHBfZXhhbXBsZS5oIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlwuLlwuLlxhZGRvbnNcaXB2Nl9zdGF0aWNfcm91dGluZ1xSRUFETUUiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Imx3SVAudmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57MmNjMjc2ZmEtYjIyNi00OWM5LThmODItN2ZjZDVhMjI4ZTI4fTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Imx3SVBfcGNhcGlmLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+ezZmNDRlNDllLTlmMjEtNDE0NC05MWVjLTUzYjkyYWVmNjJjZX08L1Byb2plY3Q+CisgICAgICA8UmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+ZmFsc2U8L1JlZmVyZW5jZU91dHB1dEFzc2VtYmx5PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3SVBfVGVzdC52Y3hwcm9qLmZpbHRlcnMgYi9jb250cmliL3BvcnRzL3dpbjMyL21zdmMvbHdJUF9UZXN0LnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmY3NzMyCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3SVBfVGVzdC52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSwyNTIgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2U4NThjM2QwLTE1NTgtNGQ0Ny1iYzZhLTlkNGE1NWNlM2QzYX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjeHg7cmM7ZGVmO3I7b2RsO2lkbDtocGo7YmF0PC9FeHRlbnNpb25zPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGFwcHMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezA1ODJlZWZkLWE2OGUtNDVmOC1iOTNjLWY4MjhjNDc5NGYzMH08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXNcYWRkb25zIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPntlZDA2MjdjMi0wOTlhLTRkYTgtYWYwYy0xNDIwMDM4MjhmOWZ9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGFkZG9uc1x0Y3BfaXNuIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns0ZmZiMjI2OC02ZmM2LTQ0ZDctOGUzYi0yYTNmNjhiOGQ1YTN9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGFkZG9uc1xpcHY2X3N0YXRpY19yb3V0aW5nIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5M2IzNjE2MS04OGIyLTQ0OGMtOWM0NS1hYzZmMjdiOTgyOTB9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGV4YW1wbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns2NDU2ZDJkNi02MWU2LTRjOTktOWYxZi0xZjIyNTQzN2E2NDJ9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGV4YW1wbGVzXGh0dHBkIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns3NWJiODc3ZS1hYTQ1LTRlMmUtODJmZS05NDZkZGFkYzZhNjR9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGV4YW1wbGVzXHNubXAiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezc4NDExZWRmLWZlMzktNGVkYi1hNmJkLTI4MzM3NTVlMDM0Mn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXNcZXhhbXBsZXNcaHR0cGRcZnNfZXhhbXBsZSI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NTMxZGQwY2YtZWMxMy00MmI3LWEzYmItYjgzNzM4MmQ0ZWNkfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlc1xleGFtcGxlc1xodHRwZFxzc2lfZXhhbXBsZSI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZDcxYmRiMTItYzVlZC00ODIzLTk5ZjAtMmQ1Mzc3NjVhMmVifTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlc1xleGFtcGxlc1xzbm1wXHNubXBfcHJpdmF0ZV9taWIiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezBiOWRiOGM3LWYzNTItNGNhNi04NmM2LTFhNmM1ODQ4MmM1ZH08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXNcZXhhbXBsZXNcc25tcFxzbm1wX3YzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns5N2YwZWE1Yy0xNmNmLTQ2NDAtYTZiMy1hY2UwNTllZDIzODh9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGV4YW1wbGVzXGh0dHBkXGNnaV9leGFtcGxlIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnsyNDA3OWQyZC1hYWIxLTQ5ZjktYjBmYS01NzkxMGExOGI5M2F9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGV4YW1wbGVzXGh0dHBkXGdlbmZpbGVzX2V4YW1wbGUiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2QzOGVkMzJiLTk0OTgtNDI5ZS1hMDJjLTA4MzMyYzQ2MzcyNX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXNcZXhhbXBsZXNcaHR0cGRccG9zdF9leGFtcGxlIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns2NzJhNDlmZC05NGZmLTQxMjYtOGRlMy1lOTZjOWMzMmRmYjh9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGV4YW1wbGVzXG1kbnMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2U1Mjc2ZTNmLTNlMmEtNDM3Ni1hZWUzLTg1YWFmZDEyYzc3Yn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXNcZXhhbXBsZXNcdGZ0cCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZjZkOTVjZTAtZGY0Zi00OTg4LTg2NTQtNjI0NDY4ZGQ0ZWNkfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlc1xleGFtcGxlc1xzbnRwIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnthMzdlNTUzOS0yMzJlLTRkOTEtOWMxMC0zZDdhODUxYjhjNGN9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGV4YW1wbGVzXHBwcCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57YTJhNjUyNjAtNTA1NS00YTBkLWJkMGItNGEzY2EzNTYwOTE4fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlc1xleGFtcGxlc1xsd2lwZXJmIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnthYTM1OWU1ZS0xMzFlLTRmMjAtOWU1ZC00MTZmOWFlNzZhYmR9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzXGV4YW1wbGVzXG1xdHQiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2JkNmYxZmNjLWM4OGYtNGI5Ni1hMjY3LTQwMWY2YmY5ODk4Yn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXNcZXhhbXBsZXNcaHR0cGRcaHR0cHNfZXhhbXBsZSI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MTA5OGJjNTktNjg2Ny00OGEzLWFmYTQtYjg5NjUxMDI0MWQxfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXGNoYXJnZW5cY2hhcmdlbi5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGFwcHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcaHR0cHNlcnZlclxodHRwc2VydmVyLW5ldGNvbm4uYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhcHBzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXG5ldGlvXG5ldGlvLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1xwaW5nXHBpbmcuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhcHBzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXHJ0cFxydHAuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhcHBzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXHNoZWxsXHNoZWxsLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1xzb2NrZXRfZXhhbXBsZXNcc29ja2V0X2V4YW1wbGVzLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1x0Y3BlY2hvXHRjcGVjaG8uYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhcHBzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXHVkcGVjaG9cdWRwZWNoby5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGFwcHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcdGNwZWNob19yYXdcdGNwZWNob19yYXcuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhcHBzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXHVkcGVjaG9fcmF3XHVkcGVjaG9fcmF3LmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cYWRkb25zXHRjcF9pc25cdGNwX2lzbi5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGFkZG9uc1x0Y3BfaXNuPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxhZGRvbnNcaXB2Nl9zdGF0aWNfcm91dGluZ1xpcDZfcm91dGVfdGFibGUuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhZGRvbnNcaXB2Nl9zdGF0aWNfcm91dGluZzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcaHR0cGRcZnNfZXhhbXBsZVxmc19leGFtcGxlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcaHR0cGRcZnNfZXhhbXBsZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcaHR0cGRcc3NpX2V4YW1wbGVcc3NpX2V4YW1wbGUuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xleGFtcGxlc1xodHRwZFxzc2lfZXhhbXBsZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcc25tcFxzbm1wX3ByaXZhdGVfbWliXGx3aXBfcHJ2bWliLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcc25tcFxzbm1wX3ByaXZhdGVfbWliPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xzbm1wXHNubXBfdjNcc25tcHYzX2R1bW15LmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcc25tcFxzbm1wX3YzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xodHRwZFxjZ2lfZXhhbXBsZVxjZ2lfZXhhbXBsZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGV4YW1wbGVzXGh0dHBkXGNnaV9leGFtcGxlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xodHRwZFxnZW5maWxlc19leGFtcGxlXGdlbmZpbGVzX2V4YW1wbGUuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xleGFtcGxlc1xodHRwZFxnZW5maWxlc19leGFtcGxlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xodHRwZFxwb3N0X2V4YW1wbGVccG9zdF9leGFtcGxlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcaHR0cGRccG9zdF9leGFtcGxlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xtZG5zXG1kbnNfZXhhbXBsZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGV4YW1wbGVzXG1kbnM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXHRmdHBcdGZ0cF9leGFtcGxlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcdGZ0cDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcc25tcFxzbm1wX2V4YW1wbGUuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xleGFtcGxlc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xzbnRwXHNudHBfZXhhbXBsZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGV4YW1wbGVzXHNudHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXHBwcFxwcHBvc19leGFtcGxlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNccHBwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xsd2lwZXJmXGx3aXBlcmZfZXhhbXBsZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGV4YW1wbGVzXGx3aXBlcmY8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXG1xdHRcbXF0dF9leGFtcGxlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcbXF0dDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHBcdGVzdC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxleGFtcGxlX2FwcFxkZWZhdWx0X25ldGlmLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXGh0dHBkXGh0dHBzX2V4YW1wbGVcaHR0cHNfZXhhbXBsZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGV4YW1wbGVzXGh0dHBkXGh0dHBzX2V4YW1wbGU8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXGNoYXJnZW5cY2hhcmdlbi5oIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGFwcHM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcaHR0cHNlcnZlclxodHRwc2VydmVyLW5ldGNvbm4uaCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXG5ldGlvXG5ldGlvLmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1xwaW5nXHBpbmcuaCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXHJ0cFxydHAuaCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXHNoZWxsXHNoZWxsLmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1xzb2NrZXRfZXhhbXBsZXNcc29ja2V0X2V4YW1wbGVzLmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYXBwc1x0Y3BlY2hvXHRjcGVjaG8uaCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXHVkcGVjaG9cdWRwZWNoby5oIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGFwcHM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGFwcHNcdGNwZWNob19yYXdcdGNwZWNob19yYXcuaCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhcHBzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxhcHBzXHVkcGVjaG9fcmF3XHVkcGVjaG9fcmF3LmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcYXBwczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cYWRkb25zXHRjcF9pc25cdGNwX2lzbi5oIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGFkZG9uc1x0Y3BfaXNuPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxhZGRvbnNcaXB2Nl9zdGF0aWNfcm91dGluZ1xpcDZfcm91dGVfdGFibGUuaCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xhZGRvbnNcaXB2Nl9zdGF0aWNfcm91dGluZzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcaHR0cGRcZnNfZXhhbXBsZVxmc19leGFtcGxlLmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcaHR0cGRcZnNfZXhhbXBsZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcaHR0cGRcc3NpX2V4YW1wbGVcc3NpX2V4YW1wbGUuaCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xleGFtcGxlc1xodHRwZFxzc2lfZXhhbXBsZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcc25tcFxzbm1wX3ByaXZhdGVfbWliXHByaXZhdGVfbWliLmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcc25tcFxzbm1wX3ByaXZhdGVfbWliPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xzbm1wXHNubXBfdjNcc25tcHYzX2R1bW15LmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcc25tcFxzbm1wX3YzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xodHRwZFxjZ2lfZXhhbXBsZVxjZ2lfZXhhbXBsZS5oIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGV4YW1wbGVzXGh0dHBkXGNnaV9leGFtcGxlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xodHRwZFxnZW5maWxlc19leGFtcGxlXGdlbmZpbGVzX2V4YW1wbGUuaCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xleGFtcGxlc1xodHRwZFxnZW5maWxlc19leGFtcGxlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xtZG5zXG1kbnNfZXhhbXBsZS5oIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGV4YW1wbGVzXG1kbnM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXHRmdHBcdGZ0cF9leGFtcGxlLmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcdGZ0cDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcc25tcFxzbm1wX2V4YW1wbGUuaCI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1xleGFtcGxlc1xzbm1wPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xzbnRwXHNudHBfZXhhbXBsZS5oIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGV4YW1wbGVzXHNudHA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXHBwcFxwcHBvc19leGFtcGxlLmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNccHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlxleGFtcGxlc1xsd2lwZXJmXGx3aXBlcmZfZXhhbXBsZS5oIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXGV4YW1wbGVzXGx3aXBlcmY8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXGV4YW1wbGVzXG1xdHRcbXF0dF9leGFtcGxlLmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcbXF0dDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cZXhhbXBsZXNcaHR0cGRcaHR0cHNfZXhhbXBsZVxodHRwc19leGFtcGxlLmgiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcZXhhbXBsZXNcaHR0cGRcaHR0cHNfZXhhbXBsZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlwuLlwuLlxhZGRvbnNcaXB2Nl9zdGF0aWNfcm91dGluZ1xSRUFETUUiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcYWRkb25zXGlwdjZfc3RhdGljX3JvdXRpbmc8L0ZpbHRlcj4KKyAgICA8L05vbmU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQX3BjYXBpZi52Y3hwcm9qIGIvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3SVBfcGNhcGlmLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWJmZGZiMQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQX3BjYXBpZi52Y3hwcm9qCkBAIC0wLDAgKzEsMTEzIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3ROYW1lPmx3SVAgcGNhcGlmPC9Qcm9qZWN0TmFtZT4KKyAgICA8UHJvamVjdEd1aWQ+ezZGNDRFNDlFLTlGMjEtNDE0NC05MUVDLTUzQjkyQUVGNjJDRX08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPmx3SVAgcGNhcGlmPC9Sb290TmFtZXNwYWNlPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+U3RhdGljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djE0MzwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPlN0YXRpY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgICA8UGxhdGZvcm1Ub29sc2V0PnYxNDM8L1BsYXRmb3JtVG9vbHNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClNaWNyb3NvZnQuQ1BQLlVwZ3JhZGVGcm9tVkM3MS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClNaWNyb3NvZnQuQ1BQLlVwZ3JhZGVGcm9tVkM3MS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi5cJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KKyAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPi5cJChDb25maWd1cmF0aW9uKVwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlOy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjQ7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NjsuLlxpbmNsdWRlOy4uXC4uXC4uXGV4YW1wbGVzXGV4YW1wbGVfYXBwOy5cOyQoUENBUF9ESVIpXEluY2x1ZGU7Li5cLi5cLi5cLi5cLi5cd2lucGNhcFxXcGRQYWNrXEluY2x1ZGVcOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0xJQjtXSU4zMjtfREVCVUc7TFdJUF9ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgorICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxQcm9ncmFtRGF0YUJhc2VGaWxlTmFtZT4kKEludERpcikkKFByb2plY3ROYW1lKS5wZGI8L1Byb2dyYW1EYXRhQmFzZUZpbGVOYW1lPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDQ8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxTdXBwcmVzc1N0YXJ0dXBCYW5uZXI+dHJ1ZTwvU3VwcHJlc3NTdGFydHVwQmFubmVyPgorICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+RWRpdEFuZENvbnRpbnVlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgorICAgICAgPENvbXBpbGVBcz5EZWZhdWx0PC9Db21waWxlQXM+CisgICAgICA8VHJlYXRXYXJuaW5nQXNFcnJvcj50cnVlPC9UcmVhdFdhcm5pbmdBc0Vycm9yPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0RFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwNzwvQ3VsdHVyZT4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8TGliIC8+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5Pbmx5RXhwbGljaXRJbmxpbmU8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHA7Llw7JChQQ0FQX0RJUilcSW5jbHVkZTsuLlwuLlwuLlwuLlwuLlx3aW5wY2FwXFdwZFBhY2tcSW5jbHVkZVw7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0xJQjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgorICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlck91dHB1dEZpbGU+JChJbnREaXIpJChUYXJnZXROYW1lKS5wY2g8L1ByZWNvbXBpbGVkSGVhZGVyT3V0cHV0RmlsZT4KKyAgICAgIDxQcm9ncmFtRGF0YUJhc2VGaWxlTmFtZT4kKEludERpcikkKFByb2plY3ROYW1lKS5wZGI8L1Byb2dyYW1EYXRhQmFzZUZpbGVOYW1lPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDQ8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxTdXBwcmVzc1N0YXJ0dXBCYW5uZXI+dHJ1ZTwvU3VwcHJlc3NTdGFydHVwQmFubmVyPgorICAgICAgPENvbXBpbGVBcz5EZWZhdWx0PC9Db21waWxlQXM+CisgICAgICA8VHJlYXRXYXJuaW5nQXNFcnJvcj50cnVlPC9UcmVhdFdhcm5pbmdBc0Vycm9yPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwNzwvQ3VsdHVyZT4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8TGliPgorICAgICAgPFN1cHByZXNzU3RhcnR1cEJhbm5lcj50cnVlPC9TdXBwcmVzc1N0YXJ0dXBCYW5uZXI+CisgICAgPC9MaWI+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBjYXBpZi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGNhcGlmX2hlbHBlci5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBjYXBpZi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGNhcGlmX2hlbHBlci5oIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJsd0lQLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+ezJjYzI3NmZhLWIyMjYtNDljOS04ZjgyLTdmY2Q1YTIyOGUyOH08L1Byb2plY3Q+CisgICAgICA8UmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+ZmFsc2U8L1JlZmVyZW5jZU91dHB1dEFzc2VtYmx5PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3SVBfcGNhcGlmLnZjeHByb2ouZmlsdGVycyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQX3BjYXBpZi52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjkzM2YxNwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQX3BjYXBpZi52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSwyOCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MGQzOGI4YzMtZTY5NC00NTcyLTg5YjgtZmM2ZTgyNWEwOTJkfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtyYztkZWY7cjtvZGw7aWRsO2hwajtiYXQ8L0V4dGVuc2lvbnM+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2U1Y2UyOWQ1LTMxOWUtNGU5OS05NzhiLWI4OGU4ZDYxNjdlNH08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGNhcGlmLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBjYXBpZl9oZWxwZXIuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBjYXBpZi5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwY2FwaWZfaGVscGVyLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3SVBfdW5pdHRlc3RzLnNsbiBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQX3VuaXR0ZXN0cy5zbG4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRmZWZiMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd0lQX3VuaXR0ZXN0cy5zbG4KQEAgLTAsMCArMSwzMSBAQAorTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gMTEuMDAKKyMgVmlzdWFsIEMrKyBFeHByZXNzIDIwMTAKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAibHdpcF91bml0dGVzdHMiLCAibHdpcF91bml0dGVzdHMudmN4cHJvaiIsICJ7NkNDQUJBQTQtRjg2Ri00MTE5LUFGRjgtNDNDOUE0QTIzNEMyfSIKK0VuZFByb2plY3QKK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAibHdJUCIsICJsd0lQLnZjeHByb2oiLCAiezJDQzI3NkZBLUIyMjYtNDlDOS04RjgyLTdGQ0Q1QTIyOEUyOH0iCitFbmRQcm9qZWN0CitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImxpYmNoZWNrIiwgImxpYmNoZWNrLnZjeHByb2oiLCAie0VCQjE1NkRDLTAxQkYtNDdCMi1CNjlDLTFBNzUwQjZCNUYwOX0iCitFbmRQcm9qZWN0CitHbG9iYWwKKwlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uQ29uZmlndXJhdGlvblBsYXRmb3JtcykgPSBwcmVTb2x1dGlvbgorCQlEZWJ1Z3xXaW4zMiA9IERlYnVnfFdpbjMyCisJCVJlbGVhc2V8V2luMzIgPSBSZWxlYXNlfFdpbjMyCisJRW5kR2xvYmFsU2VjdGlvbgorCUdsb2JhbFNlY3Rpb24oUHJvamVjdENvbmZpZ3VyYXRpb25QbGF0Zm9ybXMpID0gcG9zdFNvbHV0aW9uCisJCXs2Q0NBQkFBNC1GODZGLTQxMTktQUZGOC00M0M5QTRBMjM0QzJ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXs2Q0NBQkFBNC1GODZGLTQxMTktQUZGOC00M0M5QTRBMjM0QzJ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7NkNDQUJBQTQtRjg2Ri00MTE5LUFGRjgtNDNDOUE0QTIzNEMyfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJezZDQ0FCQUE0LUY4NkYtNDExOS1BRkY4LTQzQzlBNEEyMzRDMn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCQl7MkNDMjc2RkEtQjIyNi00OUM5LThGODItN0ZDRDVBMjI4RTI4fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1ZyB1bml0dGVzdHN8V2luMzIKKwkJezJDQzI3NkZBLUIyMjYtNDlDOS04RjgyLTdGQ0Q1QTIyOEUyOH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnIHVuaXR0ZXN0c3xXaW4zMgorCQl7MkNDMjc2RkEtQjIyNi00OUM5LThGODItN0ZDRDVBMjI4RTI4fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2UgdW5pdHRlc3RzfFdpbjMyCisJCXsyQ0MyNzZGQS1CMjI2LTQ5QzktOEY4Mi03RkNENUEyMjhFMjh9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2UgdW5pdHRlc3RzfFdpbjMyCisJCXtFQkIxNTZEQy0wMUJGLTQ3QjItQjY5Qy0xQTc1MEI2QjVGMDl9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyCisJCXtFQkIxNTZEQy0wMUJGLTQ3QjItQjY5Qy0xQTc1MEI2QjVGMDl9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMgorCQl7RUJCMTU2REMtMDFCRi00N0IyLUI2OUMtMUE3NTBCNkI1RjA5fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzIKKwkJe0VCQjE1NkRDLTAxQkYtNDdCMi1CNjlDLTFBNzUwQjZCNUYwOX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMgorCUVuZEdsb2JhbFNlY3Rpb24KKwlHbG9iYWxTZWN0aW9uKFNvbHV0aW9uUHJvcGVydGllcykgPSBwcmVTb2x1dGlvbgorCQlIaWRlU29sdXRpb25Ob2RlID0gRkFMU0UKKwlFbmRHbG9iYWxTZWN0aW9uCitFbmRHbG9iYWwKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd2lwX3VuaXR0ZXN0cy52Y3hwcm9qIGIvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3aXBfdW5pdHRlc3RzLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTc1NzdkOQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9sd2lwX3VuaXR0ZXN0cy52Y3hwcm9qCkBAIC0wLDAgKzEsMTQ1IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPns2Q0NBQkFBNC1GODZGLTQxMTktQUZGOC00M0M5QTRBMjM0QzJ9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5sd2lwX3VuaXR0ZXN0czwvUm9vdE5hbWVzcGFjZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djE0MzwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djE0MzwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxJbnREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPiQoQ29uZmlndXJhdGlvbilcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+CisgICAgPEludERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKENvbmZpZ3VyYXRpb24pXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cY2hlY2s7Li5cLi5cLi5cLi5cLi5cY2hlY2tcc3JjOy4uXC4uXC4uXC4uXHRlc3RcdW5pdDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZTsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY0Oy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjY7Li5caW5jbHVkZTsuLjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9MSUI7V0lOMzI7X0RFQlVHO0xXSVBfREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgorICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWw0PC9XYXJuaW5nTGV2ZWw+CisgICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5FZGl0QW5kQ29udGludWU8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+CisgICAgICA8RGlzYWJsZVNwZWNpZmljV2FybmluZ3M+NDgyMDwvRGlzYWJsZVNwZWNpZmljV2FybmluZ3M+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxSYW5kb21pemVkQmFzZUFkZHJlc3M+ZmFsc2U8L1JhbmRvbWl6ZWRCYXNlQWRkcmVzcz4KKyAgICAgIDxEYXRhRXhlY3V0aW9uUHJldmVudGlvbj4KKyAgICAgIDwvRGF0YUV4ZWN1dGlvblByZXZlbnRpb24+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRyaW5zaWNGdW5jdGlvbnM+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxjaGVjazsuLlwuLlwuLlwuLlwuLlxjaGVja1xzcmM7Li5cLi5cLi5cLi5cdGVzdFx1bml0Oy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlOy4uXC4uXC4uXC4uXHNyY1xpbmNsdWRlXGlwdjQ7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NjsuLlxpbmNsdWRlOy4uOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7TkRFQlVHO19MSUI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDQ8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PlByb2dyYW1EYXRhYmFzZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+CisgICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgorICAgICAgPFJhbmRvbWl6ZWRCYXNlQWRkcmVzcz5mYWxzZTwvUmFuZG9taXplZEJhc2VBZGRyZXNzPgorICAgICAgPERhdGFFeGVjdXRpb25QcmV2ZW50aW9uPgorICAgICAgPC9EYXRhRXhlY3V0aW9uUHJldmVudGlvbj4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcYXBpXHRlc3Rfc29ja2V0cy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGFyY2hcc3lzX2FyY2guYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxjb3JlXHRlc3RfZGVmLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcY29yZVx0ZXN0X2Rucy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGNvcmVcdGVzdF9tZW0uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxjb3JlXHRlc3RfbmV0aWYuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxjb3JlXHRlc3RfcGJ1Zi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGNvcmVcdGVzdF90aW1lcnMuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxpcDRcdGVzdF9pcDQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxpcDZcdGVzdF9pcDYuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxtZG5zXHRlc3RfbWRucy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XG1xdHRcdGVzdF9tcXR0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRccHBwXHRlc3RfcHBwb3MuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFx0Y3BcdGNwX2hlbHBlci5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XHRjcFx0ZXN0X3RjcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XHRjcFx0ZXN0X3RjcF9vb3MuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFx0Y3BcdGVzdF90Y3Bfc3RhdGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFx1ZHBcdGVzdF91ZHAuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxldGhhcnBcdGVzdF9ldGhhcnAuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxkaGNwXHRlc3RfZGhjcC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGx3aXBfdW5pdHRlc3RzLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGFwaVx0ZXN0X3NvY2tldHMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxhcmNoXHN5c19hcmNoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcY29yZVx0ZXN0X2RlZi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGNvcmVcdGVzdF9kbnMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxjb3JlXHRlc3RfbWVtLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcY29yZVx0ZXN0X25ldGlmLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcY29yZVx0ZXN0X3BidWYuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxjb3JlXHRlc3RfdGltZXJzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcaXA0XHRlc3RfaXA0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcaXA2XHRlc3RfaXA2LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcbWRuc1x0ZXN0X21kbnMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxtcXR0XHRlc3RfbXF0dC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XHBwcFx0ZXN0X3BwcG9zLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcdGNwXHRjcF9oZWxwZXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFx0Y3BcdGVzdF90Y3AuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFx0Y3BcdGVzdF90Y3Bfb29zLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcdGNwXHRlc3RfdGNwX3N0YXRlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcdWRwXHRlc3RfdWRwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcZXRoYXJwXHRlc3RfZXRoYXJwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcZGhjcFx0ZXN0X2RoY3AuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxsd2lwX2NoZWNrLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcbHdpcG9wdHMuaCIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0ibGliY2hlY2sudmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57ZWJiMTU2ZGMtMDFiZi00N2IyLWI2OWMtMWE3NTBiNmI1ZjA5fTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Imx3SVAudmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57MmNjMjc2ZmEtYjIyNi00OWM5LThmODItN2ZjZDVhMjI4ZTI4fTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3dpbjMyL21zdmMvbHdpcF91bml0dGVzdHMudmN4cHJvai5maWx0ZXJzIGIvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3aXBfdW5pdHRlc3RzLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmFjNGU3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL2x3aXBfdW5pdHRlc3RzLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDE2OCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9ImNvcmUiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2UzNTFjNTM4LTlmMmItNGEwMS1iZjQ2LTNlZTg4NzNjYmMwZn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJ0Y3AiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezU4MDVjNGJjLTMyYzEtNDljZi1hMzVlLWFmNTg3NTdlMmQ3YX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJ1ZHAiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezE3M2JhNGFiLWIxOTQtNDkzMy04ZTAyLTMxOTA0NGMyYThmYX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJldGhhcnAiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezcwYzY1NWE3LWY0MGYtNDcyOC1iNTg2LTMzZmQ5NTk4YjM1NX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJkaGNwIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnthNmI2MGQ0ZS00YjgxLTQ0ZjItOTQwOC0yZTQ1Y2M3NjkzOTF9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0ibWRucyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZDQ1NDkwMmUtY2U1Yi00OGFlLWE2OTAtZTY0OTBiZGJiZjE3fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9ImFwaSI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZDk1MDE0NzYtNjEwMi00ZjE0LTkwYmQtMzUzMjJmYmQyZmIyfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9ImFyY2giPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2IwNGYxODJjLTE5MTAtNDU2ZC05Mzg4LTM5N2RmZTgyZGJjOX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJtcXR0Ij4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPntmZDQ4YWUwNC1lYzg1LTQ3OGYtYTk3Yy1hN2M4Mzg0YTJkOTR9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iaXA0Ij4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPntmZTkzZmM5NS1mMWFmLTRhMWYtYTA4Ni1jMTc3MWRiZjRkNzl9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iaXB2NiI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTI0ZDI5YmUtZTVlNC00YjI1LThiYzQtOTJkYjkxY2U0YzQ5fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9InBwcCI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NGQyNGM4MDgtYzAyNC00YWJhLWEyMTQtZTViYzI3NmUxMjRkfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcY29yZVx0ZXN0X21lbS5jIj4KKyAgICAgIDxGaWx0ZXI+Y29yZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGNvcmVcdGVzdF9wYnVmLmMiPgorICAgICAgPEZpbHRlcj5jb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcdGNwXHRjcF9oZWxwZXIuYyI+CisgICAgICA8RmlsdGVyPnRjcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XHRjcFx0ZXN0X3RjcC5jIj4KKyAgICAgIDxGaWx0ZXI+dGNwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcdGNwXHRlc3RfdGNwX29vcy5jIj4KKyAgICAgIDxGaWx0ZXI+dGNwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcdWRwXHRlc3RfdWRwLmMiPgorICAgICAgPEZpbHRlcj51ZHA8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxldGhhcnBcdGVzdF9ldGhhcnAuYyI+CisgICAgICA8RmlsdGVyPmV0aGFycDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGRoY3BcdGVzdF9kaGNwLmMiPgorICAgICAgPEZpbHRlcj5kaGNwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcbHdpcF91bml0dGVzdHMuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxtZG5zXHRlc3RfbWRucy5jIj4KKyAgICAgIDxGaWx0ZXI+bWRuczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGFwaVx0ZXN0X3NvY2tldHMuYyI+CisgICAgICA8RmlsdGVyPmFwaTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGFyY2hcc3lzX2FyY2guYyI+CisgICAgICA8RmlsdGVyPmFyY2g8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxtcXR0XHRlc3RfbXF0dC5jIj4KKyAgICAgIDxGaWx0ZXI+bXF0dDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGlwNFx0ZXN0X2lwNC5jIj4KKyAgICAgIDxGaWx0ZXI+aXA0PC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcY29yZVx0ZXN0X2RlZi5jIj4KKyAgICAgIDxGaWx0ZXI+Y29yZTwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGNvcmVcdGVzdF90aW1lcnMuYyI+CisgICAgICA8RmlsdGVyPmNvcmU8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxjb3JlXHRlc3RfbmV0aWYuYyI+CisgICAgICA8RmlsdGVyPmNvcmU8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxpcDZcdGVzdF9pcDYuYyI+CisgICAgICA8RmlsdGVyPmlwdjY8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxjb3JlXHRlc3RfZG5zLmMiPgorICAgICAgPEZpbHRlcj5jb3JlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRccHBwXHRlc3RfcHBwb3MuYyI+CisgICAgICA8RmlsdGVyPnBwcDwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XHRjcFx0ZXN0X3RjcF9zdGF0ZS5jIj4KKyAgICAgIDxGaWx0ZXI+dGNwPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGNvcmVcdGVzdF9tZW0uaCI+CisgICAgICA8RmlsdGVyPmNvcmU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxjb3JlXHRlc3RfcGJ1Zi5oIj4KKyAgICAgIDxGaWx0ZXI+Y29yZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XHRjcFx0Y3BfaGVscGVyLmgiPgorICAgICAgPEZpbHRlcj50Y3A8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFx0Y3BcdGVzdF90Y3AuaCI+CisgICAgICA8RmlsdGVyPnRjcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XHRjcFx0ZXN0X3RjcF9vb3MuaCI+CisgICAgICA8RmlsdGVyPnRjcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XHVkcFx0ZXN0X3VkcC5oIj4KKyAgICAgIDxGaWx0ZXI+dWRwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcZXRoYXJwXHRlc3RfZXRoYXJwLmgiPgorICAgICAgPEZpbHRlcj5ldGhhcnA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxkaGNwXHRlc3RfZGhjcC5oIj4KKyAgICAgIDxGaWx0ZXI+ZGhjcDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGx3aXBfY2hlY2suaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxsd2lwb3B0cy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XG1kbnNcdGVzdF9tZG5zLmgiPgorICAgICAgPEZpbHRlcj5tZG5zPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcYXBpXHRlc3Rfc29ja2V0cy5oIj4KKyAgICAgIDxGaWx0ZXI+YXBpPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcYXJjaFxzeXNfYXJjaC5oIj4KKyAgICAgIDxGaWx0ZXI+YXJjaDwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XG1xdHRcdGVzdF9tcXR0LmgiPgorICAgICAgPEZpbHRlcj5tcXR0PC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcaXA0XHRlc3RfaXA0LmgiPgorICAgICAgPEZpbHRlcj5pcDQ8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxjb3JlXHRlc3RfZGVmLmgiPgorICAgICAgPEZpbHRlcj5jb3JlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcY29yZVx0ZXN0X3RpbWVycy5oIj4KKyAgICAgIDxGaWx0ZXI+Y29yZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGNvcmVcdGVzdF9uZXRpZi5oIj4KKyAgICAgIDxGaWx0ZXI+Y29yZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGlwNlx0ZXN0X2lwNi5oIj4KKyAgICAgIDxGaWx0ZXI+aXB2NjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cLi5cLi5cLi5cdGVzdFx1bml0XGNvcmVcdGVzdF9kbnMuaCI+CisgICAgICA8RmlsdGVyPmNvcmU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXC4uXC4uXC4uXHRlc3RcdW5pdFxwcHBcdGVzdF9wcHBvcy5oIj4KKyAgICAgIDxGaWx0ZXI+cHBwPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlx0ZXN0XHVuaXRcdGNwXHRlc3RfdGNwX3N0YXRlLmgiPgorICAgICAgPEZpbHRlcj50Y3A8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL21ha2Vmc2RhdGEudmN4cHJvaiBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9tYWtlZnNkYXRhLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTg4MTY0MgotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9tYWtlZnNkYXRhLnZjeHByb2oKQEAgLTAsMCArMSwxMDEgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xodHRwXG1ha2Vmc2RhdGFcbWFrZWZzZGF0YS5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57MEJGQzBGMjEtOEU4NC00RTY4LUE5RTEtQ0UyQTA5QjcyRjZEfTwvUHJvamVjdEd1aWQ+CisgICAgPFJvb3ROYW1lc3BhY2U+bWFrZWZzZGF0YTwvUm9vdE5hbWVzcGFjZT4KKyAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Vbmljb2RlPC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgICAgPFBsYXRmb3JtVG9vbHNldD52MTQzPC9QbGF0Zm9ybVRvb2xzZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+VW5pY29kZTwvQ2hhcmFjdGVyU2V0PgorICAgIDxQbGF0Zm9ybVRvb2xzZXQ+djE0MzwvUGxhdGZvcm1Ub29sc2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxMaW5rSW5jcmVtZW50YWwgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0xpbmtJbmNyZW1lbnRhbD4KKyAgICA8T3V0RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoU29sdXRpb25EaXIpJChDb25maWd1cmF0aW9uKVw8L091dERpcj4KKyAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoQ29uZmlndXJhdGlvbilcPC9JbnREaXI+CisgICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5mYWxzZTwvTGlua0luY3JlbWVudGFsPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHA7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfREVCVUc7X0NPTlNPTEU7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPE1pbmltYWxSZWJ1aWxkPnRydWU8L01pbmltYWxSZWJ1aWxkPgorICAgICAgPEJhc2ljUnVudGltZUNoZWNrcz5FbmFibGVGYXN0Q2hlY2tzPC9CYXNpY1J1bnRpbWVDaGVja3M+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnRExMPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxQcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDwvUHJlY29tcGlsZWRIZWFkZXI+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsNDwvV2FybmluZ0xldmVsPgorICAgICAgPFRyZWF0V2FybmluZ0FzRXJyb3I+dHJ1ZTwvVHJlYXRXYXJuaW5nQXNFcnJvcj4KKyAgICAgIDxEZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PkVkaXRBbmRDb250aW51ZTwvRGVidWdJbmZvcm1hdGlvbkZvcm1hdD4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8UmFuZG9taXplZEJhc2VBZGRyZXNzPmZhbHNlPC9SYW5kb21pemVkQmFzZUFkZHJlc3M+CisgICAgICA8RGF0YUV4ZWN1dGlvblByZXZlbnRpb24+CisgICAgICA8L0RhdGFFeGVjdXRpb25QcmV2ZW50aW9uPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGU7Li5cLi5cLi5cLi5cc3JjXGluY2x1ZGVcaXB2NDsuLlwuLlwuLlwuLlxzcmNcaW5jbHVkZVxpcHY2Oy4uXGluY2x1ZGU7Li5cLi5cLi5cZXhhbXBsZXNcZXhhbXBsZV9hcHA7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtOREVCVUc7X0NPTlNPTEU7X0NSVF9TRUNVUkVfTk9fV0FSTklOR1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPFByZWNvbXBpbGVkSGVhZGVyPgorICAgICAgPC9QcmVjb21waWxlZEhlYWRlcj4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWw0PC9XYXJuaW5nTGV2ZWw+CisgICAgICA8VHJlYXRXYXJuaW5nQXNFcnJvcj50cnVlPC9UcmVhdFdhcm5pbmdBc0Vycm9yPgorICAgICAgPERlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+UHJvZ3JhbURhdGFiYXNlPC9EZWJ1Z0luZm9ybWF0aW9uRm9ybWF0PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgorICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KKyAgICAgIDxSYW5kb21pemVkQmFzZUFkZHJlc3M+ZmFsc2U8L1JhbmRvbWl6ZWRCYXNlQWRkcmVzcz4KKyAgICAgIDxEYXRhRXhlY3V0aW9uUHJldmVudGlvbj4KKyAgICAgIDwvRGF0YUV4ZWN1dGlvblByZXZlbnRpb24+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9tYWtlZnNkYXRhLnZjeHByb2ouZmlsdGVycyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvbXN2Yy9tYWtlZnNkYXRhLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjAyMTBkCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9tc3ZjL21ha2Vmc2RhdGEudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsMTQgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJRdWVsbGRhdGVpZW4iPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjYztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlwuLlwuLlwuLlxzcmNcYXBwc1xodHRwXG1ha2Vmc2RhdGFcbWFrZWZzZGF0YS5jIj4KKyAgICAgIDxGaWx0ZXI+UXVlbGxkYXRlaWVuPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvcGNhcGlmLmMgYi9jb250cmliL3BvcnRzL3dpbjMyL3BjYXBpZi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4YTQyYjQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3dpbjMyL3BjYXBpZi5jCkBAIC0wLDAgKzEsMTEyNCBAQAorLyoqCisgKiBwY2FwaWYuYyAtIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGx3SVAgcGNhcGlmCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKiBUaGlzIGZpbGUgaXMgZGVyaXZlZCBmcm9tIGFuIGV4YW1wbGUgaW4gbHdJUCB3aXRoIHRoZSBmb2xsb3dpbmcgbGljZW5zZToKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMDEsIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgSW5zdGl0dXRlIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBJTlNUSVRVVEUgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBJTlNUSVRVVEUgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworLyogaW5jbHVkZSB0aGUgcG9ydC1kZXBlbmRlbnQgY29uZmlndXJhdGlvbiAqLworI2luY2x1ZGUgImx3aXBjZmcuaCIKKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJuaW5nKCBwdXNoLCAzICkKKyNpbmNsdWRlICJwY2FwLmgiCisjcHJhZ21hIHdhcm5pbmcgKCBwb3AgKQorI2Vsc2UKKy8qIGUuZy4gbWluZ3cgKi8KKyNkZWZpbmUgX01TQ19WRVIgMTUwMAorI2luY2x1ZGUgInBjYXAuaCIKKyN1bmRlZiBfTVNDX1ZFUgorI2VuZGlmCisKKyNpbmNsdWRlICJsd2lwL29wdC5oIgorCisjaWYgTFdJUF9FVEhFUk5FVAorCisjaW5jbHVkZSAicGNhcGlmLmgiCisKKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSAibHdpcC9kZWJ1Zy5oIgorCisjaW5jbHVkZSAibHdpcC9kZWYuaCIKKyNpbmNsdWRlICJsd2lwL21lbS5oIgorI2luY2x1ZGUgImx3aXAvcGJ1Zi5oIgorI2luY2x1ZGUgImx3aXAvc3RhdHMuaCIKKyNpbmNsdWRlICJsd2lwL3N5cy5oIgorI2luY2x1ZGUgImx3aXAvaXAuaCIKKyNpbmNsdWRlICJsd2lwL3NubXAuaCIKKyNpbmNsdWRlICJsd2lwL3RjcGlwLmgiCisjaW5jbHVkZSAibHdpcC90aW1lb3V0cy5oIgorI2luY2x1ZGUgImx3aXAvZXRoaXA2LmgiCisKKyNpbmNsdWRlICJsd2lwL2V0aGFycC5oIgorCisvKiBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBwY2FwICovCisjaWZuZGVmIFBDQVBfT1BFTkZMQUdfUFJPTUlTQ1VPVVMKKyNkZWZpbmUgUENBUF9PUEVORkxBR19QUk9NSVNDVU9VUyAgICAgMQorI2VuZGlmCisKKy8qKiBTZXQgdGhpcyB0byAwIHRvIHJlY2VpdmUgYWxsIG11bHRpY2FzdCBldGhlcm5ldCBkZXN0aW5hdGlvbiBhZGRyZXNzZXMgKi8KKyNpZm5kZWYgUENBUElGX0ZJTFRFUl9HUk9VUF9BRERSRVNTRVMKKyNkZWZpbmUgUENBUElGX0ZJTFRFUl9HUk9VUF9BRERSRVNTRVMgMQorI2VuZGlmCisKKy8qKiBTZXQgdGhpcyB0byAxIHRvIHJlY2VpdmUgYWxsIGZyYW1lcyAoYWxzbyB1bmljYXN0IHRvIG90aGVyIGFkZHJlc3NlcykKKyAqIEluIHRoaXMgbW9kZSwgZmlsdGVyaW5nIG91dCBvdXIgb3duIHR4IHBhY2tldHMgZnJvbSBsb29wYmFjayByZWNlaXZpbmcKKyAqIGlzIGRvbmUgdmlhIG1hdGNoaW5nIHJ4IGFnYWluc3QgcmVjZW50IHR4IChtZW1jbXApLgorICovCisjaWZuZGVmIFBDQVBJRl9SRUNFSVZFX1BST01JU0NVT1VTCisjZGVmaW5lIFBDQVBJRl9SRUNFSVZFX1BST01JU0NVT1VTICAgIDAKKyNlbmRpZgorCisvKiBEZWZpbmUgdGhvc2UgdG8gYmV0dGVyIGRlc2NyaWJlIHlvdXIgbmV0d29yayBpbnRlcmZhY2UuCisgICBGb3Igbm93LCB3ZSB1c2UgJ2UwJywgJ2UxJywgJ2UyJyBhbmQgc28gb24gKi8KKyNkZWZpbmUgSUZOQU1FMCAgICAgICAgICAgICAgICAgICAgICAgJ2UnCisjZGVmaW5lIElGTkFNRTEgICAgICAgICAgICAgICAgICAgICAgICcwJworCisvKiogaW5kZXggb2YgdGhlIG5ldHdvcmsgYWRhcHRlciB0byB1c2UgZm9yIGx3SVAgKi8KKyNpZm5kZWYgUEFDS0VUX0xJQl9BREFQVEVSX05SCisjZGVmaW5lIFBBQ0tFVF9MSUJfQURBUFRFUl9OUiAgICAgICAgIDAKKyNlbmRpZgorCisvKiogSWYgMSwgY2hlY2sgbGluayBzdGF0ZSBhbmQgcmVwb3J0IGl0IHRvIGx3SVAuCisgKiAgSWYgMCwgZG9uJ3QgY2hlY2sgbGluayBzdGF0ZSAobHdJUCBsaW5rIHN0YXRlIGlzIGFsd2F5cyBVUCkuCisgKi8KKyNpZm5kZWYgUENBUElGX0hBTkRMRV9MSU5LU1RBVEUKKyNkZWZpbmUgUENBUElGX0hBTkRMRV9MSU5LU1RBVEUgICAgICAgMQorI2VuZGlmCisKKy8qKiBJZiAxLCB1c2UgUEJVRl9SRUYgZm9yIFJYIChmb3IgdGVzdGluZyBwdXJwb3NlcyBtYWlubHkpLgorICogRm9yIHRoaXMsIExXSVBfU1VQUE9SVF9DVVNUT01fUEJVRiBtdXN0IGJlIGVuYWJsZWQuCisgKiBBbHNvLCBQQlVGX1BPT0xfQlVGU0laRSBtdXN0IGJlIHNldCBoaWdoIGVub3VnaCB0byBlbnN1cmUgYWxsIHJ4IHBhY2tldHMKKyAqIGZpdCBpbnRvIGEgc2luZ2xlIHBidWYuCisgKi8KKyNpZm5kZWYgUENBUElGX1JYX1JFRgorI2RlZmluZSBQQ0FQSUZfUlhfUkVGICAgICAgICAgICAgICAgICAwCisjZW5kaWYKKworLyoqIFRoaXMgY2FuIGJlIHVzZWQgd2hlbiBuZXRpZi0+c3RhdGUgaXMgdXNlZCBmb3Igc29tZXRoaW5nIGVsc2UgaW4geW91cgorICogYXBwbGljYXRpb24gKGUuZy4gd2hlbiB3cmFwcGluZyBhIGNsYXNzIGFyb3VuZCB0aGlzIGludGVyZmFjZSkuIEp1c3QKKyAqIG1ha2Ugc3VyZSB0aGlzIGRlZmluZSByZXR1cm5zIHRoZSBzdGF0ZSBwb2ludGVyIHNldCBieQorICogcGNhcGlmX2xvd19sZXZlbF9pbml0KCkgKGUuZy4gYnkgdXNpbmcgYW4gb2Zmc2V0IG9yIGEgY2FsbGJhY2spLgorICovCisjaWZuZGVmIFBDQVBJRl9HRVRfU1RBVEVfUFRSCisjZGVmaW5lIFBDQVBJRl9HRVRfU1RBVEVfUFRSKG5ldGlmKSAgICgobmV0aWYpLT5zdGF0ZSkKKyNlbmRpZgorCisvKiogRGVmaW5lIHRoaXMgdG8gMSB0byBhbGxvY2F0ZSByZWFkb25seSBwYnVmcyBmb3IgUlggKG5lZWRzIFBDQVBJRl9SWF9SRUYsCisgKiBvbmx5IGltcGxlbWVudGVkIGZvciB3aW5kb3dzLCBmb3Igbm93KQorICovCisjaWZuZGVmIFBDQVBJRl9SWF9SRUFET05MWQorI2RlZmluZSBQQ0FQSUZfUlhfUkVBRE9OTFkgICAgICAgICAgICAwCisjZW5kaWYKKworI2lmIFBDQVBJRl9IQU5ETEVfTElOS1NUQVRFCisjaW5jbHVkZSAicGNhcGlmX2hlbHBlci5oIgorCisvKiBEZWZpbmUgIlBIWSIgZGVsYXkgd2hlbiAibGluayB1cCIgKi8KKyNpZm5kZWYgUENBUElGX0xJTktVUF9ERUxBWQorI2RlZmluZSBQQ0FQSUZfTElOS1VQX0RFTEFZICAgICAgICAgICAwCisjZW5kaWYKKworI2RlZmluZSBQQ0FQSUZfTElOS0NIRUNLX0lOVEVSVkFMX01TIDUwMAorCisvKiBsaW5rIHN0YXRlIG5vdGlmaWNhdGlvbiBtYWNybyAqLworI2lmIFBDQVBJRl9MSU5LVVBfREVMQVkKKyNkZWZpbmUgUENBUElGX05PVElGWV9MSU5LU1RBVEUobmV0aWYsIGxpbmtmdW5jKSBzeXNfdGltZW91dChQQ0FQSUZfTElOS1VQX0RFTEFZLCAoc3lzX3RpbWVvdXRfaGFuZGxlcilsaW5rZnVuYywgbmV0aWYpCisjZWxzZSAvKiBQSFlfTElOS1VQX0RFTEFZICovCisjZGVmaW5lIFBDQVBJRl9OT1RJRllfTElOS1NUQVRFKG5ldGlmLCBsaW5rZnVuYykgbGlua2Z1bmMobmV0aWYpCisjZW5kaWYgLyogUEhZX0xJTktVUF9ERUxBWSAqLworCisjZW5kaWYgLyogUENBUElGX0hBTkRMRV9MSU5LU1RBVEUgKi8KKworLyogRGVmaW5lIFBDQVBJRl9SWF9MT0NLX0xXSVAgYW5kIFBDQVBJRl9SWF9VTkxPQ0tfTFdJUCBpZiB5b3UgbmVlZCB0byBsb2NrIHRoZSBsd0lQIGNvcmUKKyAgIGJlZm9yZS9hZnRlciBwYnVmX2FsbG9jKCkgb3IgbmV0aWYtPmlucHV0KCkgYXJlIGNhbGxlZCBvbiBSWC4gKi8KKyNpZm5kZWYgUENBUElGX1JYX0xPQ0tfTFdJUAorI2RlZmluZSBQQ0FQSUZfUlhfTE9DS19MV0lQKCkKKyNlbmRpZgorI2lmbmRlZiBQQ0FQSUZfUlhfVU5MT0NLX0xXSVAKKyNkZWZpbmUgUENBUElGX1JYX1VOTE9DS19MV0lQKCkKKyNlbmRpZgorCisjZGVmaW5lIEVUSF9NSU5fRlJBTUVfTEVOICAgICAgNjBVCisjZGVmaW5lIEVUSF9NQVhfRlJBTUVfTEVOICAgICAgMTUxOFUKKworI2RlZmluZSBBREFQVEVSX05BTUVfTEVOICAgICAgIDEyOAorI2RlZmluZSBBREFQVEVSX0RFU0NfTEVOICAgICAgIDEyOAorCisjaWYgUENBUElGX1JFQ0VJVkVfUFJPTUlTQ1VPVVMKKyNpZm5kZWYgUENBUElGX0xPT1BCQUNLRklMVEVSX05VTV9UWF9QQUNLRVRTCisjZGVmaW5lIFBDQVBJRl9MT09QQkFDS0ZJTFRFUl9OVU1fVFhfUEFDS0VUUyAgMTI4CisjZW5kaWYKK3N0cnVjdCBwY2FwaXBmX3BlbmRpbmdfcGFja2V0IHsKKyAgc3RydWN0IHBjYXBpcGZfcGVuZGluZ19wYWNrZXQgKm5leHQ7CisgIHUxNl90IGxlbjsKKyAgdThfdCBkYXRhW0VUSF9NQVhfRlJBTUVfTEVOXTsKK307CisjZW5kaWYgLyogUENBUElGX1JFQ0VJVkVfUFJPTUlTQ1VPVVMgKi8KKworLyogUGFja2V0IEFkYXB0ZXIgaW5mb3JtYXRpb24gKi8KK3N0cnVjdCBwY2FwaWZfcHJpdmF0ZSB7CisgIHZvaWQgICAgICAgICAgICAqaW5wdXRfZm5fYXJnOworICBwY2FwX3QgICAgICAgICAgKmFkYXB0ZXI7CisgIGNoYXIgICAgICAgICAgICAgbmFtZVtBREFQVEVSX05BTUVfTEVOXTsKKyAgY2hhciAgICAgICAgICAgICBkZXNjcmlwdGlvbltBREFQVEVSX0RFU0NfTEVOXTsKKyAgaW50ICAgICAgICAgICAgICBzaHV0ZG93bl9jYWxsZWQ7CisjaWYgUENBUElGX1JYX1VTRV9USFJFQUQKKyAgdm9sYXRpbGUgaW50ICAgICByeF9ydW47CisgIHZvbGF0aWxlIGludCAgICAgcnhfcnVubmluZzsKKyNlbmRpZiAvKiBQQ0FQSUZfUlhfVVNFX1RIUkVBRCAqLworI2lmIFBDQVBJRl9IQU5ETEVfTElOS1NUQVRFCisgIHN0cnVjdCBwY2FwaWZoX2xpbmtzdGF0ZSAqbGlua19zdGF0ZTsKKyAgZW51bSBwY2FwaWZoX2xpbmtfZXZlbnQgbGFzdF9saW5rX2V2ZW50OworI2VuZGlmIC8qIFBDQVBJRl9IQU5ETEVfTElOS1NUQVRFICovCisjaWYgUENBUElGX1JFQ0VJVkVfUFJPTUlTQ1VPVVMKKyAgc3RydWN0IHBjYXBpcGZfcGVuZGluZ19wYWNrZXQgcGFja2V0c1tQQ0FQSUZfTE9PUEJBQ0tGSUxURVJfTlVNX1RYX1BBQ0tFVFNdOworICBzdHJ1Y3QgcGNhcGlwZl9wZW5kaW5nX3BhY2tldCAqdHhfcGFja2V0czsKKyAgc3RydWN0IHBjYXBpcGZfcGVuZGluZ19wYWNrZXQgKmZyZWVfcGFja2V0czsKKyNlbmRpZiAvKiBQQ0FQSUZfUkVDRUlWRV9QUk9NSVNDVU9VUyAqLworfTsKKworI2lmIFBDQVBJRl9SRUNFSVZFX1BST01JU0NVT1VTCitzdGF0aWMgdm9pZAorcGNhcGlmX2luaXRfdHhfcGFja2V0cyhzdHJ1Y3QgcGNhcGlmX3ByaXZhdGUgKnByaXYpCit7CisgIGludCBpOworICBwcml2LT50eF9wYWNrZXRzID0gTlVMTDsKKyAgcHJpdi0+ZnJlZV9wYWNrZXRzID0gTlVMTDsKKyAgZm9yIChpID0gMDsgaSA8IFBDQVBJRl9MT09QQkFDS0ZJTFRFUl9OVU1fVFhfUEFDS0VUUzsgaSsrKSB7CisgICAgc3RydWN0IHBjYXBpcGZfcGVuZGluZ19wYWNrZXQgKnBhY2sgPSAmcHJpdi0+cGFja2V0c1tpXTsKKyAgICBwYWNrLT5sZW4gPSAwOworICAgIHBhY2stPm5leHQgPSBwcml2LT5mcmVlX3BhY2tldHM7CisgICAgcHJpdi0+ZnJlZV9wYWNrZXRzID0gcGFjazsKKyAgfQorfQorCitzdGF0aWMgdm9pZAorcGNhcGlmX2FkZF90eF9wYWNrZXQoc3RydWN0IHBjYXBpZl9wcml2YXRlICpwcml2LCB1bnNpZ25lZCBjaGFyICpidWYsIHUxNl90IHRvdF9sZW4pCit7CisgIHN0cnVjdCBwY2FwaXBmX3BlbmRpbmdfcGFja2V0ICp0eDsKKyAgc3RydWN0IHBjYXBpcGZfcGVuZGluZ19wYWNrZXQgKnBhY2s7CisgIFNZU19BUkNIX0RFQ0xfUFJPVEVDVChsZXYpOworCisgIC8qIGdldCBhIGZyZWUgcGFja2V0IChsb2NrZWQpICovCisgIFNZU19BUkNIX1BST1RFQ1QobGV2KTsKKyAgcGFjayA9IHByaXYtPmZyZWVfcGFja2V0czsKKyAgaWYgKChwYWNrID09IE5VTEwpICYmIChwcml2LT50eF9wYWNrZXRzICE9IE5VTEwpKSB7CisgICAgLyogbm8gZnJlZSBwYWNrZXRzLCByZXVzZSB0aGUgb2xkZXN0ICovCisgICAgcGFjayA9IHByaXYtPnR4X3BhY2tldHM7CisgICAgcHJpdi0+dHhfcGFja2V0cyA9IHBhY2stPm5leHQ7CisgIH0KKyAgTFdJUF9BU1NFUlQoIm5vIGZyZWUgcGFja2V0IiwgcGFjayAhPSBOVUxMKTsKKyAgcHJpdi0+ZnJlZV9wYWNrZXRzID0gcGFjay0+bmV4dDsKKyAgcGFjay0+bmV4dCA9IE5VTEw7CisgIFNZU19BUkNIX1VOUFJPVEVDVChsZXYpOworCisgIC8qIHNldCB1cCB0aGUgcGFja2V0ICh1bmxvY2tlZCkgKi8KKyAgcGFjay0+bGVuID0gdG90X2xlbjsKKyAgbWVtY3B5KHBhY2stPmRhdGEsIGJ1ZiwgdG90X2xlbik7CisKKyAgLyogcHV0IHRoZSBwYWNrZXQgb24gdGhlIGxpc3QgKGxvY2tlZCkgKi8KKyAgU1lTX0FSQ0hfUFJPVEVDVChsZXYpOworICBpZiAocHJpdi0+dHhfcGFja2V0cyAhPSBOVUxMKSB7CisgICAgZm9yICh0eCA9IHByaXYtPnR4X3BhY2tldHM7IHR4LT5uZXh0ICE9IE5VTEw7IHR4ID0gdHgtPm5leHQpOworICAgIExXSVBfQVNTRVJUKCJidWciLCB0eCAhPSBOVUxMKTsKKyAgICB0eC0+bmV4dCA9IHBhY2s7CisgIH0gZWxzZSB7CisgICAgcHJpdi0+dHhfcGFja2V0cyA9IHBhY2s7CisgIH0KKyAgU1lTX0FSQ0hfVU5QUk9URUNUKGxldik7Cit9CisKK3N0YXRpYyBpbnQKK3BjYXBpZl9jb21wYXJlX3BhY2tldHMoc3RydWN0IHBjYXBpcGZfcGVuZGluZ19wYWNrZXQgKnBhY2ssIGNvbnN0IHZvaWQgKnBhY2tldCwgaW50IHBhY2tldF9sZW4pCit7CisgIGlmIChwYWNrLT5sZW4gPT0gcGFja2V0X2xlbikgeworICAgIGlmICghbWVtY21wKHBhY2stPmRhdGEsIHBhY2tldCwgcGFja2V0X2xlbikpIHsKKyAgICAgIHJldHVybiAxOworICAgIH0KKyAgfQorICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorcGNhaXBmX2lzX3R4X3BhY2tldChzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBjb25zdCB2b2lkICpwYWNrZXQsIGludCBwYWNrZXRfbGVuKQoreworICBzdHJ1Y3QgcGNhcGlmX3ByaXZhdGUgKnByaXYgPSAoc3RydWN0IHBjYXBpZl9wcml2YXRlKilQQ0FQSUZfR0VUX1NUQVRFX1BUUihuZXRpZik7CisgIHN0cnVjdCBwY2FwaXBmX3BlbmRpbmdfcGFja2V0ICppdGVyLCAqbGFzdDsKKyAgU1lTX0FSQ0hfREVDTF9QUk9URUNUKGxldik7CisKKyAgbGFzdCA9IHByaXYtPnR4X3BhY2tldHM7CisgIGlmIChsYXN0ID09IE5VTEwpIHsKKyAgICAvKiBsaXN0IGlzIGVtcHR5ICovCisgICAgcmV0dXJuIDA7CisgIH0KKyAgLyogY29tcGFyZSB0aGUgZmlyc3QgcGFja2V0ICovCisgIGlmIChwY2FwaWZfY29tcGFyZV9wYWNrZXRzKGxhc3QsIHBhY2tldCwgcGFja2V0X2xlbikpIHsKKyAgICBTWVNfQVJDSF9QUk9URUNUKGxldik7CisgICAgTFdJUF9BU1NFUlQoImxpc3QgaGFzIGNoYW5nZWQiLCBsYXN0ID09IHByaXYtPnR4X3BhY2tldHMpOworICAgIHByaXYtPnR4X3BhY2tldHMgPSBsYXN0LT5uZXh0OworICAgIGxhc3QtPm5leHQgPSBwcml2LT5mcmVlX3BhY2tldHM7CisgICAgcHJpdi0+ZnJlZV9wYWNrZXRzID0gbGFzdDsKKyAgICBsYXN0LT5sZW4gPSAwOworICAgIFNZU19BUkNIX1VOUFJPVEVDVChsZXYpOworICAgIHJldHVybiAxOworICB9CisgIFNZU19BUkNIX1BST1RFQ1QobGV2KTsKKyAgZm9yIChpdGVyID0gbGFzdC0+bmV4dDsgaXRlciAhPSBOVUxMOyBsYXN0ID0gaXRlciwgaXRlciA9IGl0ZXItPm5leHQpIHsKKyAgICAvKiB1bmxvY2sgd2hpbGUgY29tcGFyaW5nICh0aGlzIHdvcmtzIGJlY2F1c2Ugd2UgaGF2ZSBhIGNsZWFuIHRocmVhZGluZyBzZXBhcmF0aW9uCisgICAgICAgb2YgYWRkaW5nIGFuZCByZW1vdmluZyBpdGVtcyBhbmQgYWRkaW5nIGlzIG9ubHkgZG9uZSBhdCB0aGUgZW5kKSAqLworICAgIFNZU19BUkNIX1VOUFJPVEVDVChsZXYpOworICAgIGlmIChwY2FwaWZfY29tcGFyZV9wYWNrZXRzKGl0ZXIsIHBhY2tldCwgcGFja2V0X2xlbikpIHsKKyAgICAgIFNZU19BUkNIX1BST1RFQ1QobGV2KTsKKyAgICAgIExXSVBfQVNTRVJUKCJsYXN0ICE9IE5VTEwiLCBsYXN0ICE9IE5VTEwpOworICAgICAgbGFzdC0+bmV4dCA9IGl0ZXItPm5leHQ7CisgICAgICBpdGVyLT5uZXh0ID0gcHJpdi0+ZnJlZV9wYWNrZXRzOworICAgICAgcHJpdi0+ZnJlZV9wYWNrZXRzID0gaXRlcjsKKyAgICAgIGxhc3QtPmxlbiA9IDA7CisgICAgICBTWVNfQVJDSF9VTlBST1RFQ1QobGV2KTsKKyAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBTWVNfQVJDSF9QUk9URUNUKGxldik7CisgIH0KKyAgU1lTX0FSQ0hfVU5QUk9URUNUKGxldik7CisgIHJldHVybiAwOworfQorI2Vsc2UgLyogUENBUElGX1JFQ0VJVkVfUFJPTUlTQ1VPVVMgKi8KKyNkZWZpbmUgcGNhcGlmX2luaXRfdHhfcGFja2V0cyhwcml2KQorI2RlZmluZSBwY2FwaWZfYWRkX3R4X3BhY2tldChwcml2LCBidWYsIHRvdF9sZW4pCitzdGF0aWMgaW50CitwY2FpcGZfaXNfdHhfcGFja2V0KHN0cnVjdCBuZXRpZiAqbmV0aWYsIGNvbnN0IHZvaWQgKnBhY2tldCwgaW50IHBhY2tldF9sZW4pCit7CisgIGNvbnN0IHN0cnVjdCBldGhfYWRkciAqc3JjID0gKGNvbnN0IHN0cnVjdCBldGhfYWRkciAqKXBhY2tldCArIDE7CisgIGlmIChwYWNrZXRfbGVuID49IChFVEhfSFdBRERSX0xFTiAqIDIpKSB7CisgICAgLyogRG9uJ3QgbGV0IGZlZWRiYWNrIHBhY2tldHMgdGhyb3VnaCAobGltaXRhdGlvbiBpbiB3aW5wY2FwPykgKi8KKyAgICBpZighbWVtY21wKHNyYywgbmV0aWYtPmh3YWRkciwgRVRIX0hXQUREUl9MRU4pKSB7CisgICAgICByZXR1cm4gMTsKKyAgICB9CisgIH0KKyAgcmV0dXJuIDA7Cit9CisjZW5kaWYgLyogUENBUElGX1JFQ0VJVkVfUFJPTUlTQ1VPVVMgKi8KKworI2lmIFBDQVBJRl9SWF9SRUYKK3N0cnVjdCBwY2FwaWZfcGJ1Zl9jdXN0b20KK3sKKyAgIHN0cnVjdCBwYnVmX2N1c3RvbSBwYzsKKyNpZiBQQ0FQSUZfUlhfUkVBRE9OTFkKKyAgIHZvaWQgKnJvX21lbTsKKyNlbHNlCisgICBzdHJ1Y3QgcGJ1ZiogcDsKKyNlbmRpZgorfTsKKyNlbmRpZiAvKiBQQ0FQSUZfUlhfUkVGICovCisKKy8qIEZvcndhcmQgZGVjbGFyYXRpb25zLiAqLworc3RhdGljIHZvaWQgcGNhcGlmX2lucHV0KHVfY2hhciAqdXNlciwgY29uc3Qgc3RydWN0IHBjYXBfcGt0aGRyICpwa3RfaGVhZGVyLCBjb25zdCB1X2NoYXIgKnBhY2tldCk7CisKKyNpZmRlZiBQQUNLRVRfTElCX0dFVF9BREFQVEVSX05FVEFERFJFU1MKKy8qKiBHZXQgdGhlIGluZGV4IG9mIGFuIGFkYXB0ZXIgYnkgaXRzIG5ldHdvcmsgYWRkcmVzcworICoKKyAqIEBwYXJhbSBuZXRhZGRyIG5ldHdvcmsgYWRkcmVzcyBvZiB0aGUgYWRhcHRlciAoZS5nLiAxOTIuMTY4LjEuMCkKKyAqIEByZXR1cm4gaW5kZXggb2YgdGhlIGFkYXB0ZXIgb3IgbmVnYXRpdmUgb24gZXJyb3IKKyAqLworc3RhdGljIGludAorZ2V0X2FkYXB0ZXJfaW5kZXhfZnJvbV9hZGRyKHN0cnVjdCBpbl9hZGRyICpuZXRhZGRyLCBjaGFyICpndWlkLCBzaXplX3QgZ3VpZF9sZW4pCit7CisgICBwY2FwX2lmX3QgKmFsbGRldnM7CisgICBwY2FwX2lmX3QgKmQ7CisgICBjaGFyIGVycmJ1ZltQQ0FQX0VSUkJVRl9TSVpFKzFdOworICAgaW50IGluZGV4ID0gMDsKKworICAgbWVtc2V0KGd1aWQsIDAsIGd1aWRfbGVuKTsKKworICAgLyogUmV0cmlldmUgdGhlIGludGVyZmFjZXMgbGlzdCAqLworICAgaWYgKHBjYXBfZmluZGFsbGRldnMoJmFsbGRldnMsIGVycmJ1ZikgPT0gLTEpIHsKKyAgICAgIHByaW50ZigiRXJyb3IgaW4gcGNhcF9maW5kYWxsZGV2czogJXNcbiIsIGVycmJ1Zik7CisgICAgICByZXR1cm4gLTE7CisgICB9CisgICAvKiBTY2FuIHRoZSBsaXN0IHByaW50aW5nIGV2ZXJ5IGVudHJ5ICovCisgICBmb3IgKGQgPSBhbGxkZXZzOyBkICE9IE5VTEw7IGQgPSBkLT5uZXh0LCBpbmRleCsrKSB7CisgICAgICBwY2FwX2FkZHJfdCAqYTsKKyAgICAgIGZvcihhID0gZC0+YWRkcmVzc2VzOyBhICE9IE5VTEw7IGEgPSBhLT5uZXh0KSB7CisgICAgICAgICBpZiAoYS0+YWRkci0+c2FfZmFtaWx5ID09IEFGX0lORVQpIHsKKyAgICAgICAgICAgIFVMT05HIGFfYWRkciA9ICgoc3RydWN0IHNvY2thZGRyX2luICopYS0+YWRkciktPnNpbl9hZGRyLnNfYWRkcjsKKyAgICAgICAgICAgIFVMT05HIGFfbmV0bWFzayA9ICgoc3RydWN0IHNvY2thZGRyX2luICopYS0+bmV0bWFzayktPnNpbl9hZGRyLnNfYWRkcjsKKyAgICAgICAgICAgIFVMT05HIGFfbmV0YWRkciA9IGFfYWRkciAmIGFfbmV0bWFzazsKKyAgICAgICAgICAgIFVMT05HIGFkZHIgPSAoKm5ldGFkZHIpLnNfYWRkcjsKKyAgICAgICAgICAgIGlmIChhX25ldGFkZHIgPT0gYWRkcikgeworICAgICAgICAgICAgICAgaW50IHJldCA9IC0xOworICAgICAgICAgICAgICAgY2hhciBuYW1lWzEyOF07CisgICAgICAgICAgICAgICBjaGFyICpzdGFydCwgKmVuZDsKKyAgICAgICAgICAgICAgIHNpemVfdCBsZW4gPSBzdHJsZW4oZC0+bmFtZSk7CisgICAgICAgICAgICAgICBpZihsZW4gPiAxMjcpIHsKKyAgICAgICAgICAgICAgICAgIGxlbiA9IDEyNzsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIE1FTUNQWShuYW1lLCBkLT5uYW1lLCBsZW4pOworICAgICAgICAgICAgICAgbmFtZVtsZW5dID0gMDsKKyAgICAgICAgICAgICAgIHN0YXJ0ID0gc3Ryc3RyKG5hbWUsICJ7Iik7CisgICAgICAgICAgICAgICBpZiAoc3RhcnQgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgZW5kID0gc3Ryc3RyKHN0YXJ0LCAifSIpOworICAgICAgICAgICAgICAgICAgaWYgKGVuZCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbGVuID0gZW5kIC0gc3RhcnQgKyAxOworICAgICAgICAgICAgICAgICAgICAgTUVNQ1BZKGd1aWQsIHN0YXJ0LCBsZW4pOworICAgICAgICAgICAgICAgICAgICAgcmV0ID0gaW5kZXg7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICBwY2FwX2ZyZWVhbGxkZXZzKGFsbGRldnMpOworICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgIH0KKyAgIH0KKyAgIHByaW50ZigiTmV0d29yayBhZGRyZXNzIG5vdCBmb3VuZC5cbiIpOworCisgICBwY2FwX2ZyZWVhbGxkZXZzKGFsbGRldnMpOworICAgcmV0dXJuIC0xOworfQorI2VuZGlmIC8qIFBBQ0tFVF9MSUJfR0VUX0FEQVBURVJfTkVUQUREUkVTUyAqLworCisjaWYgZGVmaW5lZChQQUNLRVRfTElCX0dFVF9BREFQVEVSX05FVEFERFJFU1MpIHx8IGRlZmluZWQoUEFDS0VUX0xJQl9BREFQVEVSX0dVSUQpCisvKiogR2V0IHRoZSBpbmRleCBvZiBhbiBhZGFwdGVyIGJ5IGl0cyBHVUlECisgKgorICogQHBhcmFtIGFkYXB0ZXJfZ3VpZCBHVUlEIG9mIHRoZSBhZGFwdGVyCisgKiBAcmV0dXJuIGluZGV4IG9mIHRoZSBhZGFwdGVyIG9yIG5lZ2F0aXZlIG9uIGVycm9yCisgKi8KK3N0YXRpYyBpbnQKK2dldF9hZGFwdGVyX2luZGV4KGNvbnN0IGNoYXIqIGFkYXB0ZXJfZ3VpZCkKK3sKKyAgcGNhcF9pZl90ICphbGxkZXZzOworICBwY2FwX2lmX3QgKmQ7CisgIGNoYXIgZXJyYnVmW1BDQVBfRVJSQlVGX1NJWkUrMV07CisgIGludCBpZHggPSAwOworCisgIC8qIFJldHJpZXZlIHRoZSBpbnRlcmZhY2VzIGxpc3QgKi8KKyAgaWYgKHBjYXBfZmluZGFsbGRldnMoJmFsbGRldnMsIGVycmJ1ZikgPT0gLTEpIHsKKyAgICBwcmludGYoIkVycm9yIGluIHBjYXBfZmluZGFsbGRldnM6ICVzXG4iLCBlcnJidWYpOworICAgIHJldHVybiAtMTsKKyAgfQorICAvKiBTY2FuIHRoZSBsaXN0IGFuZCBjb21wYXJlIG5hbWUgdnMuIGFkYXB0ZXJfZ3VpZCAqLworICBmb3IgKGQgPSBhbGxkZXZzOyBkICE9IE5VTEw7IGQgPSBkLT5uZXh0LCBpZHgrKykgeworICAgIGlmKHN0cnN0cihkLT5uYW1lLCBhZGFwdGVyX2d1aWQpKSB7CisgICAgICBwY2FwX2ZyZWVhbGxkZXZzKGFsbGRldnMpOworICAgICAgcmV0dXJuIGlkeDsKKyAgICB9CisgIH0KKyAgLyogbm90IGZvdW5kLCBkdW1wIGFsbCBhZGFwdGVycyAqLworICBwcmludGYoIiVkIGF2YWlsYWJsZSBhZGFwdGVyczpcbiIsIGlkeCk7CisgIGZvciAoZCA9IGFsbGRldnMsIGlkeCA9IDA7IGQgIT0gTlVMTDsgZCA9IGQtPm5leHQsIGlkeCsrKSB7CisgICAgcHJpbnRmKCItICVkOiAlc1xuIiwgaWR4LCBkLT5uYW1lKTsKKyAgfQorICBwY2FwX2ZyZWVhbGxkZXZzKGFsbGRldnMpOworICByZXR1cm4gLTE7Cit9CisjZW5kaWYgLyogZGVmaW5lZChQQUNLRVRfTElCX0dFVF9BREFQVEVSX05FVEFERFJFU1MpIHx8IGRlZmluZWQoUEFDS0VUX0xJQl9BREFQVEVSX0dVSUQpICovCisKK3N0YXRpYyBwY2FwX3QqCitwY2FwaWZfb3Blbl9hZGFwdGVyKGNvbnN0IGNoYXIqIGFkYXB0ZXJfbmFtZSwgY2hhciogZXJyYnVmKQoreworICBwY2FwX3QqIGFkYXB0ZXIgPSBwY2FwX29wZW5fbGl2ZShhZGFwdGVyX25hbWUsLyogbmFtZSBvZiB0aGUgZGV2aWNlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjU1MzYsICAgICAgICAgICAgIC8qIHBvcnRpb24gb2YgdGhlIHBhY2tldCB0byBjYXB0dXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDY1NTM2IGd1YXJhbnRlZXMgdGhhdCB0aGUgd2hvbGUgcGFja2V0IHdpbGwgYmUgY2FwdHVyZWQgb24gYWxsIHRoZSBsaW5rIGxheWVycyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDQVBfT1BFTkZMQUdfUFJPTUlTQ1VPVVMsLyogcHJvbWlzY3VvdXMgbW9kZSAqLworI2lmIFBDQVBJRl9SWF9VU0VfVEhSRUFECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyotKi8xLCAgICAgICAgICAgICAgICAvKiBkb24ndCB3YWl0IGF0IGFsbCBmb3IgbG93ZXIgbGF0ZW5jeSAqLworI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAgICAgICAgICAgICAgICAvKiB3YWl0IDEgbXMgaW4gZXRoZXJuZXRpZl9wb2xsICovCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJidWYpOyAgICAgICAgICAgLyogZXJyb3IgYnVmZmVyICovCisgIHJldHVybiBhZGFwdGVyOworfQorCisjaWYgIVBDQVBJRl9SWF9VU0VfVEhSRUFECitzdGF0aWMgdm9pZAorcGNhcF9yZW9wZW5fYWRhcHRlcihzdHJ1Y3QgcGNhcGlmX3ByaXZhdGUgKnBhKQoreworICBjaGFyIGVycmJ1ZltQQ0FQX0VSUkJVRl9TSVpFKzFdOworICBwY2FwX2lmX3QgKmFsbGRldnM7CisgIGlmIChwYS0+YWRhcHRlciAhPSBOVUxMKSB7CisgICAgcGNhcF9jbG9zZShwYS0+YWRhcHRlcik7CisgICAgcGEtPmFkYXB0ZXIgPSBOVUxMOworICB9CisgIGlmIChwY2FwX2ZpbmRhbGxkZXZzKCZhbGxkZXZzLCBlcnJidWYpICE9IC0xKSB7CisgICAgcGNhcF9pZl90ICpkOworICAgIGZvciAoZCA9IGFsbGRldnM7IGQgIT0gTlVMTDsgZCA9IGQtPm5leHQpIHsKKyAgICAgIGlmICghc3RyY21wKGQtPm5hbWUsIHBhLT5uYW1lKSkgeworICAgICAgICBwYS0+YWRhcHRlciA9IHBjYXBpZl9vcGVuX2FkYXB0ZXIocGEtPm5hbWUsIGVycmJ1Zik7CisgICAgICAgIGlmIChwYS0+YWRhcHRlciA9PSBOVUxMKSB7CisgICAgICAgICAgcHJpbnRmKCJmYWlsZWQgdG8gcmVvcGVuIHBjYXAgYWRhcHRlciBhZnRlciBmYWlsdXJlOiAlc1xuIiwgZXJyYnVmKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9CisgICAgcGNhcF9mcmVlYWxsZGV2cyhhbGxkZXZzKTsKKyAgfQorfQorI2VuZGlmCisKKy8qKgorICogT3BlbiBhIG5ldHdvcmsgYWRhcHRlciBhbmQgc2V0IGl0IHVwIGZvciBwYWNrZXQgaW5wdXQKKyAqCisgKiBAcGFyYW0gYWRhcHRlcl9udW0gdGhlIGluZGV4IG9mIHRoZSBhZGFwdGVyIHRvIHVzZQorICogQHBhcmFtIGFyZyBhcmd1bWVudCB0byBwYXNzIHRvIGlucHV0CisgKiBAcmV0dXJuIGFuIGFkYXB0ZXIgaGFuZGxlIG9uIHN1Y2Nlc3MsIE5VTEwgb24gZmFpbHVyZQorICovCitzdGF0aWMgc3RydWN0IHBjYXBpZl9wcml2YXRlKgorcGNhcGlmX2luaXRfYWRhcHRlcihpbnQgYWRhcHRlcl9udW0sIHZvaWQgKmFyZykKK3sKKyAgaW50IGk7CisgIGludCBudW1iZXJfb2ZfYWRhcHRlcnM7CisgIHN0cnVjdCBwY2FwaWZfcHJpdmF0ZSAqcGE7CisgIGNoYXIgZXJyYnVmW1BDQVBfRVJSQlVGX1NJWkUrMV07CisKKyAgcGNhcF9pZl90ICphbGxkZXZzOworICBwY2FwX2lmX3QgKmQ7CisgIHBjYXBfaWZfdCAqdXNlZF9hZGFwdGVyID0gTlVMTDsKKworICBwYSA9IChzdHJ1Y3QgcGNhcGlmX3ByaXZhdGUgKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBwY2FwaWZfcHJpdmF0ZSkpOworICBpZiAoIXBhKSB7CisgICAgcHJpbnRmKCJVbmFibGUgdG8gYWxsb2MgdGhlIGFkYXB0ZXIhXG4iKTsKKyAgICByZXR1cm4gTlVMTDsKKyAgfQorCisgIG1lbXNldChwYSwgMCwgc2l6ZW9mKHN0cnVjdCBwY2FwaWZfcHJpdmF0ZSkpOworICBwY2FwaWZfaW5pdF90eF9wYWNrZXRzKHBhKTsKKyAgcGEtPmlucHV0X2ZuX2FyZyA9IGFyZzsKKworICAvKiBSZXRyaWV2ZSB0aGUgaW50ZXJmYWNlcyBsaXN0ICovCisgIGlmIChwY2FwX2ZpbmRhbGxkZXZzKCZhbGxkZXZzLCBlcnJidWYpID09IC0xKSB7CisgICAgZnJlZShwYSk7CisgICAgcmV0dXJuIE5VTEw7IC8qIG5vIGFkYXB0ZXJzIGZvdW5kICovCisgIH0KKyAgLyogZ2V0IG51bWJlciBvZiBhZGFwdGVycyBhbmQgYWRhcHRlciBwb2ludGVyICovCisgIGZvciAoZCA9IGFsbGRldnMsIG51bWJlcl9vZl9hZGFwdGVycyA9IDA7IGQgIT0gTlVMTDsgZCA9IGQtPm5leHQsIG51bWJlcl9vZl9hZGFwdGVycysrKSB7CisgICAgaWYgKG51bWJlcl9vZl9hZGFwdGVycyA9PSBhZGFwdGVyX251bSkgeworICAgICAgY2hhciAqZGVzYyA9IGQtPmRlc2NyaXB0aW9uOworICAgICAgc2l6ZV90IGxlbjsKKworICAgICAgbGVuID0gc3RybGVuKGQtPm5hbWUpOworICAgICAgTFdJUF9BU1NFUlQoImxlbiA8IEFEQVBURVJfTkFNRV9MRU4iLCBsZW4gPCBBREFQVEVSX05BTUVfTEVOKTsKKyAgICAgIHN0cmNweShwYS0+bmFtZSwgZC0+bmFtZSk7CisKKyAgICAgIHVzZWRfYWRhcHRlciA9IGQ7CisgICAgICAvKiBmb3JtYXQgdmVuZG9yIGRlc2NyaXB0aW9uICovCisgICAgICBpZiAoZGVzYyAhPSBOVUxMKSB7CisgICAgICAgIGxlbiA9IHN0cmxlbihkZXNjKTsKKyAgICAgICAgaWYgKHN0cnN0cihkZXNjLCAiICcgb24gbG9jYWwgaG9zdCIpICE9IE5VTEwpIHsKKyAgICAgICAgICBsZW4gLT0gMTY7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoc3Ryc3RyKGRlc2MsICInIG9uIGxvY2FsIGhvc3QiKSAhPSBOVUxMKSB7CisgICAgICAgICAgbGVuIC09IDE1OworICAgICAgICB9CisgICAgICAgIGlmIChzdHJzdHIoZGVzYywgIk5ldHdvcmsgYWRhcHRlciAnIikgPT0gZGVzYykgeworICAgICAgICAgIGxlbiAtPSAxNzsKKyAgICAgICAgICBkZXNjICs9IDE3OworICAgICAgICB9CisgICAgICAgIGxlbiA9IExXSVBfTUlOKGxlbiwgQURBUFRFUl9ERVNDX0xFTi0xKTsKKyAgICAgICAgd2hpbGUgKChkZXNjW2xlbi0xXSA9PSAnICcpIHx8IChkZXNjW2xlbi0xXSA9PSAnXHQnKSkgeworICAgICAgICAgIC8qIGRvbid0IGNvcHkgdHJhaWxpbmcgd2hpdGVzcGFjZSAqLworICAgICAgICAgIGxlbi0tOworICAgICAgICB9CisgICAgICAgIHN0cm5jcHkocGEtPmRlc2NyaXB0aW9uLCBkZXNjLCBsZW4pOworICAgICAgICBwYS0+ZGVzY3JpcHRpb25bbGVuXSA9IDA7CisgICAgICB9IGVsc2UgeworICAgICAgICBzdHJjcHkocGEtPmRlc2NyaXB0aW9uLCAiPG5vX2Rlc2M+Iik7CisgICAgICB9CisgICAgfQorICB9CisKKyNpZm5kZWYgUENBUElGX0xJQl9RVUlFVAorICAvKiBTY2FuIHRoZSBsaXN0IHByaW50aW5nIGV2ZXJ5IGVudHJ5ICovCisgIGZvciAoZCA9IGFsbGRldnMsIGkgPSAwOyBkICE9IE5VTEw7IGQgPSBkLT5uZXh0LCBpKyspIHsKKyAgICBjaGFyICpkZXNjID0gZC0+ZGVzY3JpcHRpb247CisgICAgY2hhciBkZXNjQnVmWzEyOF07CisgICAgc2l6ZV90IGxlbjsKKyAgICBjb25zdCBjaGFyKiBkZXZuYW1lID0gZC0+bmFtZTsKKyAgICBpZiAoZC0+bmFtZSA9PSBOVUxMKSB7CisgICAgICBkZXZuYW1lID0gIjx1bm5hbWVkPiI7CisgICAgfSBlbHNlIHsKKyAgICAgIGlmIChzdHJzdHIoZGV2bmFtZSwgIlxcRGV2aWNlXFwiKSA9PSBkZXZuYW1lKSB7CisgICAgICAgIC8qIHdpbmRvd3M6IHN0cmlwIHRoZSBmaXJzdCBwYXJ0ICovCisgICAgICAgIGRldm5hbWUgKz0gODsKKyAgICAgIH0KKyAgICB9CisgICAgcHJpbnRmKCIlMmk6ICVzXG4iLCBpLCBkZXZuYW1lKTsKKyAgICBpZiAoZGVzYyAhPSBOVUxMKSB7CisgICAgICAvKiBmb3JtYXQgdmVuZG9yIGRlc2NyaXB0aW9uICovCisgICAgICBsZW4gPSBzdHJsZW4oZGVzYyk7CisgICAgICBpZiAoc3Ryc3RyKGRlc2MsICIgJyBvbiBsb2NhbCBob3N0IikgIT0gTlVMTCkgeworICAgICAgICBsZW4gLT0gMTY7CisgICAgICB9CisgICAgICBlbHNlIGlmIChzdHJzdHIoZGVzYywgIicgb24gbG9jYWwgaG9zdCIpICE9IE5VTEwpIHsKKyAgICAgICAgbGVuIC09IDE1OworICAgICAgfQorICAgICAgaWYgKHN0cnN0cihkZXNjLCAiTmV0d29yayBhZGFwdGVyICciKSA9PSBkZXNjKSB7CisgICAgICAgIGxlbiAtPSAxNzsKKyAgICAgICAgZGVzYyArPSAxNzsKKyAgICAgIH0KKyAgICAgIGxlbiA9IExXSVBfTUlOKGxlbiwgMTI3KTsKKyAgICAgIHdoaWxlICgoZGVzY1tsZW4tMV0gPT0gJyAnKSB8fCAoZGVzY1tsZW4tMV0gPT0gJ1x0JykpIHsKKyAgICAgICAgLyogZG9uJ3QgY29weSB0cmFpbGluZyB3aGl0ZXNwYWNlICovCisgICAgICAgIGxlbi0tOworICAgICAgfQorICAgICAgc3RybmNweShkZXNjQnVmLCBkZXNjLCBsZW4pOworICAgICAgZGVzY0J1ZltsZW5dID0gMDsKKyAgICAgIHByaW50ZigiICAgICBEZXNjOiBcIiVzXCJcbiIsIGRlc2NCdWYpOworICAgIH0KKyAgfQorI2VuZGlmIC8qIFBDQVBJRl9MSUJfUVVJRVQgKi8KKworICAvKiBpbnZhbGlkIGFkYXB0ZXIgaW5kZXggLT4gY2hlY2sgdGhpcyBhZnRlciBwcmludGluZyB0aGUgYWRhcHRlcnMgKi8KKyAgaWYgKGFkYXB0ZXJfbnVtIDwgMCkgeworICAgIHByaW50ZigiSW52YWxpZCBhZGFwdGVyX251bTogJWRcbiIsIGFkYXB0ZXJfbnVtKTsKKyAgICBmcmVlKHBhKTsKKyAgICBwY2FwX2ZyZWVhbGxkZXZzKGFsbGRldnMpOworICAgIHJldHVybiBOVUxMOworICB9CisgIC8qIGFkYXB0ZXIgaW5kZXggb3V0IG9mIHJhbmdlICovCisgIGlmIChhZGFwdGVyX251bSA+PSBudW1iZXJfb2ZfYWRhcHRlcnMpIHsKKyAgICBwcmludGYoIkludmFsaWQgYWRhcHRlcl9udW06ICVkXG4iLCBhZGFwdGVyX251bSk7CisgICAgZnJlZShwYSk7CisgICAgcGNhcF9mcmVlYWxsZGV2cyhhbGxkZXZzKTsKKyAgICByZXR1cm4gTlVMTDsKKyAgfQorI2lmbmRlZiBQQ0FQSUZfTElCX1FVSUVUCisgIHByaW50ZigiVXNpbmcgYWRhcHRlcl9udW06ICVkXG4iLCBhZGFwdGVyX251bSk7CisjZW5kaWYgLyogUENBUElGX0xJQl9RVUlFVCAqLworICAvKiBzZXQgdXAgdGhlIHNlbGVjdGVkIGFkYXB0ZXIgKi8KKworICBMV0lQX0FTU0VSVCgidXNlZF9hZGFwdGVyICE9IE5VTEwiLCB1c2VkX2FkYXB0ZXIgIT0gTlVMTCk7CisKKyAgLyogT3BlbiB0aGUgZGV2aWNlICovCisgIHBhLT5hZGFwdGVyID0gcGNhcGlmX29wZW5fYWRhcHRlcih1c2VkX2FkYXB0ZXItPm5hbWUsIGVycmJ1Zik7CisgIGlmIChwYS0+YWRhcHRlciA9PSBOVUxMKSB7CisgICAgcHJpbnRmKCJcblVuYWJsZSB0byBvcGVuIHRoZSBhZGFwdGVyLiAlcyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHBjYXAgKFwiJXNcIikuXG4iLCB1c2VkX2FkYXB0ZXItPm5hbWUsIGVycmJ1Zik7CisgICAgLyogRnJlZSB0aGUgZGV2aWNlIGxpc3QgKi8KKyAgICBwY2FwX2ZyZWVhbGxkZXZzKGFsbGRldnMpOworICAgIGZyZWUocGEpOworICAgIHJldHVybiBOVUxMOworICB9CisgIHByaW50ZigiVXNpbmcgYWRhcHRlcjogXCIlc1wiXG4iLCBwYS0+ZGVzY3JpcHRpb24pOworICBwY2FwX2ZyZWVhbGxkZXZzKGFsbGRldnMpOworCisjaWYgUENBUElGX0hBTkRMRV9MSU5LU1RBVEUKKyAgcGEtPmxpbmtfc3RhdGUgPSBwY2FwaWZoX2xpbmtzdGF0ZV9pbml0KHBhLT5uYW1lKTsKKyAgcGEtPmxhc3RfbGlua19ldmVudCA9IFBDQVBJRl9MSU5LRVZFTlRfVU5LTk9XTjsKKyNlbmRpZiAvKiBQQ0FQSUZfSEFORExFX0xJTktTVEFURSAqLworCisgIHJldHVybiBwYTsKK30KKworI2lmIFBDQVBJRl9IQU5ETEVfTElOS1NUQVRFCitzdGF0aWMgdm9pZAorcGNhcGlmX2NoZWNrX2xpbmtzdGF0ZSh2b2lkICpuZXRpZl9wdHIpCit7CisgIHN0cnVjdCBuZXRpZiAqbmV0aWYgPSAoc3RydWN0IG5ldGlmKiluZXRpZl9wdHI7CisgIHN0cnVjdCBwY2FwaWZfcHJpdmF0ZSAqcGEgPSAoc3RydWN0IHBjYXBpZl9wcml2YXRlKilQQ0FQSUZfR0VUX1NUQVRFX1BUUihuZXRpZik7CisgIGVudW0gcGNhcGlmaF9saW5rX2V2ZW50IGxlOworCisgIGxlID0gcGNhcGlmaF9saW5rc3RhdGVfZ2V0KHBhLT5saW5rX3N0YXRlKTsKKworICBpZiAocGEtPmxhc3RfbGlua19ldmVudCAhPSBsZSkgeworICAgIHBhLT5sYXN0X2xpbmtfZXZlbnQgPSBsZTsKKyAgICBzd2l0Y2ggKGxlKSB7CisgICAgICBjYXNlIFBDQVBJRl9MSU5LRVZFTlRfVVA6IHsKKyAgICAgICAgUENBUElGX05PVElGWV9MSU5LU1RBVEUobmV0aWYsIG5ldGlmX3NldF9saW5rX3VwKTsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisgICAgICBjYXNlIFBDQVBJRl9MSU5LRVZFTlRfRE9XTjogeworICAgICAgICBQQ0FQSUZfTk9USUZZX0xJTktTVEFURShuZXRpZiwgbmV0aWZfc2V0X2xpbmtfZG93bik7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgY2FzZSBQQ0FQSUZfTElOS0VWRU5UX1VOS05PV046IC8qIGZhbGwgdGhyb3VnaCAqLworICAgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICB9CisgIHN5c190aW1lb3V0KFBDQVBJRl9MSU5LQ0hFQ0tfSU5URVJWQUxfTVMsIHBjYXBpZl9jaGVja19saW5rc3RhdGUsIG5ldGlmKTsKK30KKyNlbmRpZiAvKiBQQ0FQSUZfSEFORExFX0xJTktTVEFURSAqLworCisKKy8qKgorICogQ2xvc2UgdGhlIGFkYXB0ZXIgKG5vIG1vcmUgcGFja2V0cyBjYW4gYmUgc2VudCBvciByZWNlaXZlZCkKKyAqCisgKiBAcGFyYW0gbmV0aWYgbmV0aWYgdG8gc2h1dGRvd24KKyAqLwordm9pZAorcGNhcGlmX3NodXRkb3duKHN0cnVjdCBuZXRpZiAqbmV0aWYpCit7CisgIHN0cnVjdCBwY2FwaWZfcHJpdmF0ZSAqcGEgPSAoc3RydWN0IHBjYXBpZl9wcml2YXRlKilQQ0FQSUZfR0VUX1NUQVRFX1BUUihuZXRpZik7CisgIGlmIChwYSkgeworI2lmIFBDQVBJRl9SWF9VU0VfVEhSRUFECisgICAgcGEtPnJ4X3J1biA9IDA7CisjZW5kaWYgLyogUENBUElGX1JYX1VTRV9USFJFQUQgKi8KKyAgICBpZiAocGEtPmFkYXB0ZXIpIHsKKyAgICAgIHBjYXBfYnJlYWtsb29wKHBhLT5hZGFwdGVyKTsKKyAgICAgIHBjYXBfY2xvc2UocGEtPmFkYXB0ZXIpOworICAgIH0KKyNpZiBQQ0FQSUZfUlhfVVNFX1RIUkVBRAorICAgIC8qIHdhaXQgZm9yIHJ4dGhyZWFkIHRvIGVuZCAqLworICAgIHdoaWxlKHBhLT5yeF9ydW5uaW5nKTsKKyNlbmRpZiAvKiBQQ0FQSUZfUlhfVVNFX1RIUkVBRCAqLworI2lmIFBDQVBJRl9IQU5ETEVfTElOS1NUQVRFCisgICAgcGNhcGlmaF9saW5rc3RhdGVfY2xvc2UocGEtPmxpbmtfc3RhdGUpOworI2VuZGlmIC8qIFBDQVBJRl9IQU5ETEVfTElOS1NUQVRFICovCisgICAgZnJlZShwYSk7CisgIH0KK30KKworI2lmIFBDQVBJRl9SWF9VU0VfVEhSRUFECisvKiogUlggcnVubmluZyBpbiBpdHMgb3duIHRocmVhZCAqLworc3RhdGljIHZvaWQKK3BjYXBpZl9pbnB1dF90aHJlYWQodm9pZCAqYXJnKQoreworICBzdHJ1Y3QgbmV0aWYgKm5ldGlmID0gKHN0cnVjdCBuZXRpZiAqKWFyZzsKKyAgc3RydWN0IHBjYXBpZl9wcml2YXRlICpwYSA9IChzdHJ1Y3QgcGNhcGlmX3ByaXZhdGUqKVBDQVBJRl9HRVRfU1RBVEVfUFRSKG5ldGlmKTsKKyAgZG8KKyAgeworICAgIHN0cnVjdCBwY2FwX3BrdGhkciBwa3RfaGVhZGVyOworICAgIGNvbnN0IHVfY2hhciAqcGFja2V0ID0gcGNhcF9uZXh0KHBhLT5hZGFwdGVyLCAmcGt0X2hlYWRlcik7CisgICAgaWYocGFja2V0ICE9IE5VTEwpIHsKKyAgICAgIHBjYXBpZl9pbnB1dCgodV9jaGFyKilwYSwgJnBrdF9oZWFkZXIsIHBhY2tldCk7CisgICAgfQorICB9IHdoaWxlIChwYS0+cnhfcnVuKTsKKyAgcGEtPnJ4X3J1bm5pbmcgPSAwOworfQorI2VuZGlmIC8qIFBDQVBJRl9SWF9VU0VfVEhSRUFEICovCisKKy8qKiBMb3ctbGV2ZWwgaW5pdGlhbGl6YXRpb246IGZpbmQgdGhlIGNvcnJlY3QgYWRhcHRlciBhbmQgaW5pdGlhbGl6ZSBpdC4KKyAqLworc3RhdGljIHZvaWQKK3BjYXBpZl9sb3dfbGV2ZWxfaW5pdChzdHJ1Y3QgbmV0aWYgKm5ldGlmKQoreworICB1OF90IG15X21hY19hZGRyW0VUSF9IV0FERFJfTEVOXSA9IExXSVBfTUFDX0FERFJfQkFTRTsKKyAgaW50IGFkYXB0ZXJfbnVtID0gUEFDS0VUX0xJQl9BREFQVEVSX05SOworICBzdHJ1Y3QgcGNhcGlmX3ByaXZhdGUgKnBhOworI2lmZGVmIFBBQ0tFVF9MSUJfR0VUX0FEQVBURVJfTkVUQUREUkVTUworICBpcDRfYWRkcl90IG5ldGFkZHI7CisjZGVmaW5lIEdVSURfTEVOIDEyOAorICBjaGFyIGd1aWRbR1VJRF9MRU4gKyAxXTsKKyNlbmRpZiAvKiBQQUNLRVRfTElCX0dFVF9BREFQVEVSX05FVEFERFJFU1MgKi8KKworICAvKiBJZiAnc3RhdGUnIGlzICE9IE5VTEwgYXQgdGhpcyBwb2ludCwgd2UgYXNzdW1lIGl0IGlzIGFuICdpbnQnIGdpdmluZworICAgICB0aGUgaW5kZXggb2YgdGhlIGFkYXB0ZXIgdG8gdXNlICgrIDEgYmVjYXVzZSAwPT1OVUxMIGlzIGludmFsaWQpLgorICAgICBUaGlzIGNhbiBiZSB1c2VkIHRvIGluc3RhbnRpYXRlIG11bHRpcGxlIFBDQVAgZHJpdmVycy4gKi8KKyAgaWYgKG5ldGlmLT5zdGF0ZSAhPSBOVUxMKSB7CisgICAgYWRhcHRlcl9udW0gPSAoTFdJUF9QVFJfTlVNRVJJQ19DQVNUKGludCwgbmV0aWYtPnN0YXRlKSkgLSAxOworICAgIGlmIChhZGFwdGVyX251bSA8IDApIHsKKyAgICAgIHByaW50ZigiRVJST1I6IGludmFsaWQgYWRhcHRlciBpbmRleCBcIiVkXCIhXG4iLCBhZGFwdGVyX251bSk7CisgICAgICBMV0lQX0FTU0VSVCgiRVJST1IgaW5pdGlhbGl6aW5nIG5ldHdvcmsgYWRhcHRlciEiLCAwKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisgIH0KKworI2lmZGVmIFBBQ0tFVF9MSUJfR0VUX0FEQVBURVJfTkVUQUREUkVTUworICBtZW1zZXQoJmd1aWQsIDAsIHNpemVvZihndWlkKSk7CisgIFBBQ0tFVF9MSUJfR0VUX0FEQVBURVJfTkVUQUREUkVTUygmbmV0YWRkcik7CisgIGlmIChnZXRfYWRhcHRlcl9pbmRleF9mcm9tX2FkZHIoKHN0cnVjdCBpbl9hZGRyICopJm5ldGFkZHIsIGd1aWQsIEdVSURfTEVOKSA8IDApIHsKKyAgICAgcHJpbnRmKCJFUlJPUiBpbml0aWFsaXppbmcgbmV0d29yayBhZGFwdGVyLCBmYWlsZWQgdG8gZ2V0IEdVSUQgZm9yIG5ldHdvcmsgYWRkcmVzcyAlc1xuIiwgaXA0YWRkcl9udG9hKCZuZXRhZGRyKSk7CisgICAgIExXSVBfQVNTRVJUKCJFUlJPUiBpbml0aWFsaXppbmcgbmV0d29yayBhZGFwdGVyLCBmYWlsZWQgdG8gZ2V0IEdVSUQgZm9yIG5ldHdvcmsgYWRkcmVzcyEiLCAwKTsKKyAgICAgcmV0dXJuOworICB9CisgIGFkYXB0ZXJfbnVtID0gZ2V0X2FkYXB0ZXJfaW5kZXgoZ3VpZCk7CisgIGlmIChhZGFwdGVyX251bSA8IDApIHsKKyAgICAgcHJpbnRmKCJFUlJPUiBmaW5kaW5nIG5ldHdvcmsgYWRhcHRlciB3aXRoIEdVSUQgXCIlc1wiIVxuIiwgZ3VpZCk7CisgICAgIExXSVBfQVNTRVJUKCJFUlJPUiBmaW5kaW5nIG5ldHdvcmsgYWRhcHRlciB3aXRoIGV4cGVjdGVkIEdVSUQhIiwgMCk7CisgICAgIHJldHVybjsKKyAgfQorCisjZWxzZSAvKiBQQUNLRVRfTElCX0dFVF9BREFQVEVSX05FVEFERFJFU1MgKi8KKyNpZmRlZiBQQUNLRVRfTElCX0FEQVBURVJfR1VJRAorICAvKiBnZXQgYWRhcHRlciBpbmRleCBmb3IgZ3VpZCBzdHJpbmcgKi8KKyAgYWRhcHRlcl9udW0gPSBnZXRfYWRhcHRlcl9pbmRleChQQUNLRVRfTElCX0FEQVBURVJfR1VJRCk7CisgIGlmIChhZGFwdGVyX251bSA8IDApIHsKKyAgICBwcmludGYoIkVSUk9SIGZpbmRpbmcgbmV0d29yayBhZGFwdGVyIHdpdGggR1VJRCBcIiVzXCIhXG4iLCBQQUNLRVRfTElCX0FEQVBURVJfR1VJRCk7CisgICAgTFdJUF9BU1NFUlQoIkVSUk9SIGluaXRpYWxpemluZyBuZXR3b3JrIGFkYXB0ZXIhIiwgMCk7CisgICAgcmV0dXJuOworICB9CisjZW5kaWYgLyogUEFDS0VUX0xJQl9BREFQVEVSX0dVSUQgKi8KKyNlbmRpZiAvKiBQQUNLRVRfTElCX0dFVF9BREFQVEVSX05FVEFERFJFU1MgKi8KKworICAvKiBEbyB3aGF0ZXZlciBlbHNlIGlzIG5lZWRlZCB0byBpbml0aWFsaXplIGludGVyZmFjZS4gKi8KKyAgcGEgPSBwY2FwaWZfaW5pdF9hZGFwdGVyKGFkYXB0ZXJfbnVtLCBuZXRpZik7CisgIGlmIChwYSA9PSBOVUxMKSB7CisgICAgcHJpbnRmKCJFUlJPUiBpbml0aWFsaXppbmcgbmV0d29yayBhZGFwdGVyICVkIVxuIiwgYWRhcHRlcl9udW0pOworICAgIExXSVBfQVNTRVJUKCJFUlJPUiBpbml0aWFsaXppbmcgbmV0d29yayBhZGFwdGVyISIsIDApOworICAgIHJldHVybjsKKyAgfQorICBuZXRpZi0+c3RhdGUgPSBwYTsKKworICAvKiBjaGFuZ2UgdGhlIE1BQyBhZGRyZXNzIHRvIGEgdW5pcXVlIHZhbHVlCisgICAgIHNvIHRoYXQgbXVsdGlwbGUgZXRoZXJuZXRpZnMgYXJlIHN1cHBvcnRlZCAqLworICAvKiBAdG9kbzogdGhpcyBkb2VzIE5PVCBzdXBwb3J0IG11bHRpcGxlIHByb2Nlc3NlcyB1c2luZyB0aGlzIGFkYXB0ZXIhICovCisgIG15X21hY19hZGRyW0VUSF9IV0FERFJfTEVOIC0gMV0gKz0gbmV0aWYtPm51bTsKKyAgLyogQ29weSBNQUMgYWRkciAqLworICBTTUVNQ1BZKCZuZXRpZi0+aHdhZGRyLCBteV9tYWNfYWRkciwgRVRIX0hXQUREUl9MRU4pOworCisgIC8qIGdldCB0aGUgaW5pdGlhbCBsaW5rIHN0YXRlIG9mIHRoZSBzZWxlY3RlZCBpbnRlcmZhY2UgKi8KKyNpZiBQQ0FQSUZfSEFORExFX0xJTktTVEFURQorICBwYS0+bGFzdF9saW5rX2V2ZW50ID0gcGNhcGlmaF9saW5rc3RhdGVfZ2V0KHBhLT5saW5rX3N0YXRlKTsKKyAgaWYgKHBhLT5sYXN0X2xpbmtfZXZlbnQgPT0gUENBUElGX0xJTktFVkVOVF9ET1dOKSB7CisgICAgbmV0aWZfc2V0X2xpbmtfZG93bihuZXRpZik7CisgIH0gZWxzZSB7CisgICAgbmV0aWZfc2V0X2xpbmtfdXAobmV0aWYpOworICB9CisgIHN5c190aW1lb3V0KFBDQVBJRl9MSU5LQ0hFQ0tfSU5URVJWQUxfTVMsIHBjYXBpZl9jaGVja19saW5rc3RhdGUsIG5ldGlmKTsKKyNlbHNlIC8qIFBDQVBJRl9IQU5ETEVfTElOS1NUQVRFICovCisgIC8qIGp1c3Qgc2V0IHRoZSBsaW5rIHVwIHNvIHRoYXQgbHdJUCBjYW4gdHJhbnNtaXQgKi8KKyAgbmV0aWZfc2V0X2xpbmtfdXAobmV0aWYpOworI2VuZGlmIC8qIFBDQVBJRl9IQU5ETEVfTElOS1NUQVRFICovCisKKyNpZiBQQ0FQSUZfUlhfVVNFX1RIUkVBRAorICBwYS0+cnhfcnVuID0gMTsKKyAgcGEtPnJ4X3J1bm5pbmcgPSAxOworICBzeXNfdGhyZWFkX25ldygicGNhcGlmX3J4dGhyZWFkIiwgcGNhcGlmX2lucHV0X3RocmVhZCwgbmV0aWYsIDAsIDApOworI2VuZGlmCisKKyAgTFdJUF9ERUJVR0YoTkVUSUZfREVCVUcsICgicGNhcGlmOiBldGhfYWRkciAlMDJYJTAyWCUwMlglMDJYJTAyWCUwMlhcbiIsbmV0aWYtPmh3YWRkclswXSxuZXRpZi0+aHdhZGRyWzFdLG5ldGlmLT5od2FkZHJbMl0sbmV0aWYtPmh3YWRkclszXSxuZXRpZi0+aHdhZGRyWzRdLG5ldGlmLT5od2FkZHJbNV0pKTsKK30KKworLyoqIGxvd19sZXZlbF9vdXRwdXQoKToKKyAqIFRyYW5zbWl0IGEgcGFja2V0LiBUaGUgcGFja2V0IGlzIGNvbnRhaW5lZCBpbiB0aGUgcGJ1ZiB0aGF0IGlzIHBhc3NlZCB0bworICogdGhlIGZ1bmN0aW9uLiBUaGlzIHBidWYgbWlnaHQgYmUgY2hhaW5lZC4KKyAqLworc3RhdGljIGVycl90CitwY2FwaWZfbG93X2xldmVsX291dHB1dChzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBzdHJ1Y3QgcGJ1ZiAqcCkKK3sKKyAgc3RydWN0IHBidWYgKnE7CisgIHVuc2lnbmVkIGNoYXIgYnVmZmVyW0VUSF9NQVhfRlJBTUVfTEVOICsgRVRIX1BBRF9TSVpFXTsKKyAgdW5zaWduZWQgY2hhciAqYnVmID0gYnVmZmVyOworICB1bnNpZ25lZCBjaGFyICpwdHI7CisgIHN0cnVjdCBldGhfaGRyICpldGhoZHI7CisgIHUxNl90IHRvdF9sZW4gPSBwLT50b3RfbGVuIC0gRVRIX1BBRF9TSVpFOworICBzdHJ1Y3QgcGNhcGlmX3ByaXZhdGUgKnBhID0gKHN0cnVjdCBwY2FwaWZfcHJpdmF0ZSopUENBUElGX0dFVF9TVEFURV9QVFIobmV0aWYpOworCisjaWYgZGVmaW5lZChMV0lQX0RFQlVHKSAmJiBMV0lQX05FVElGX1RYX1NJTkdMRV9QQlVGICYmICEoTFdJUF9JUFY0ICYmIElQX0ZSQUcpICYmIChMV0lQX0lQVjYgJiYgTFdJUF9JUFY2X0ZSQUcpCisgIExXSVBfQVNTRVJUKCJwLT5uZXh0ID09IE5VTEwgJiYgcC0+bGVuID09IHAtPnRvdF9sZW4iLCBwLT5uZXh0ID09IE5VTEwgJiYgcC0+bGVuID09IHAtPnRvdF9sZW4pOworI2VuZGlmCisKKyAgLyogaW5pdGlhdGUgdHJhbnNmZXIgKi8KKyAgaWYgKChwLT5sZW4gPT0gcC0+dG90X2xlbikgJiYgKHAtPmxlbiA+PSBFVEhfTUlOX0ZSQU1FX0xFTiArIEVUSF9QQURfU0laRSkpIHsKKyAgICAvKiBubyBwYnVmIGNoYWluLCBkb24ndCBoYXZlIHRvIGNvcHkgLT4gZmFzdGVyICovCisgICAgYnVmID0gJigodW5zaWduZWQgY2hhciopcC0+cGF5bG9hZClbRVRIX1BBRF9TSVpFXTsKKyAgfSBlbHNlIHsKKyAgICAvKiBwYnVmIGNoYWluLCBjb3B5IGludG8gY29udGlndW91cyBidWZmZXIgKi8KKyAgICBpZiAocC0+dG90X2xlbiA+PSBzaXplb2YoYnVmZmVyKSkgeworICAgICAgTElOS19TVEFUU19JTkMobGluay5sZW5lcnIpOworICAgICAgTElOS19TVEFUU19JTkMobGluay5kcm9wKTsKKyAgICAgIE1JQjJfU1RBVFNfTkVUSUZfSU5DKG5ldGlmLCBpZm91dGRpc2NhcmRzKTsKKyAgICAgIHJldHVybiBFUlJfQlVGOworICAgIH0KKyAgICBwdHIgPSBidWZmZXI7CisgICAgZm9yKHEgPSBwOyBxICE9IE5VTEw7IHEgPSBxLT5uZXh0KSB7CisgICAgICAvKiBTZW5kIHRoZSBkYXRhIGZyb20gdGhlIHBidWYgdG8gdGhlIGludGVyZmFjZSwgb25lIHBidWYgYXQgYQorICAgICAgICAgdGltZS4gVGhlIHNpemUgb2YgdGhlIGRhdGEgaW4gZWFjaCBwYnVmIGlzIGtlcHQgaW4gdGhlIC0+bGVuCisgICAgICAgICB2YXJpYWJsZS4gKi8KKyAgICAgIC8qIHNlbmQgZGF0YSBmcm9tKHEtPnBheWxvYWQsIHEtPmxlbik7ICovCisgICAgICBMV0lQX0RFQlVHRihORVRJRl9ERUJVRywgKCJuZXRpZjogc2VuZCBwdHIgJXAgcS0+cGF5bG9hZCAlcCBxLT5sZW4gJWkgcS0+bmV4dCAlcFxuIiwgcHRyLCBxLT5wYXlsb2FkLCAoaW50KXEtPmxlbiwgKHZvaWQqKXEtPm5leHQpKTsKKyAgICAgIGlmIChxID09IHApIHsKKyAgICAgICAgTUVNQ1BZKHB0ciwgJigoY2hhciopcS0+cGF5bG9hZClbRVRIX1BBRF9TSVpFXSwgcS0+bGVuIC0gRVRIX1BBRF9TSVpFKTsKKyAgICAgICAgcHRyICs9IHEtPmxlbiAtIEVUSF9QQURfU0laRTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIE1FTUNQWShwdHIsIHEtPnBheWxvYWQsIHEtPmxlbik7CisgICAgICAgIHB0ciArPSBxLT5sZW47CisgICAgICB9CisgICAgfQorICB9CisKKyAgaWYgKHRvdF9sZW4gPCBFVEhfTUlOX0ZSQU1FX0xFTikgeworICAgIC8qIGVuc3VyZSBtaW5pbWFsIGZyYW1lIGxlbmd0aCAqLworICAgIG1lbXNldCgmYnVmW3RvdF9sZW5dLCAwLCBFVEhfTUlOX0ZSQU1FX0xFTiAtIHRvdF9sZW4pOworICAgIHRvdF9sZW4gPSBFVEhfTUlOX0ZSQU1FX0xFTjsKKyAgfQorCisgIC8qIHNpZ25hbCB0aGF0IHBhY2tldCBzaG91bGQgYmUgc2VudCAqLworICBpZiAocGNhcF9zZW5kcGFja2V0KHBhLT5hZGFwdGVyLCBidWYsIHRvdF9sZW4pIDwgMCkgeworICAgIExJTktfU1RBVFNfSU5DKGxpbmsubWVtZXJyKTsKKyAgICBMSU5LX1NUQVRTX0lOQyhsaW5rLmRyb3ApOworICAgIE1JQjJfU1RBVFNfTkVUSUZfSU5DKG5ldGlmLCBpZm91dGRpc2NhcmRzKTsKKyAgICByZXR1cm4gRVJSX0JVRjsKKyAgfQorICBpZiAobmV0aWZfaXNfbGlua191cChuZXRpZikpIHsKKyAgICBwY2FwaWZfYWRkX3R4X3BhY2tldChwYSwgYnVmLCB0b3RfbGVuKTsKKyAgfQorCisgIExJTktfU1RBVFNfSU5DKGxpbmsueG1pdCk7CisgIE1JQjJfU1RBVFNfTkVUSUZfQUREKG5ldGlmLCBpZm91dG9jdGV0cywgdG90X2xlbik7CisgIGV0aGhkciA9IChzdHJ1Y3QgZXRoX2hkciAqKXAtPnBheWxvYWQ7CisgIGlmICgoZXRoaGRyLT5kZXN0LmFkZHJbMF0gJiAxKSAhPSAwKSB7CisgICAgLyogYnJvYWRjYXN0IG9yIG11bHRpY2FzdCBwYWNrZXQqLworICAgIE1JQjJfU1RBVFNfTkVUSUZfSU5DKG5ldGlmLCBpZm91dG51Y2FzdHBrdHMpOworICB9IGVsc2UgeworICAgIC8qIHVuaWNhc3QgcGFja2V0ICovCisgICAgTUlCMl9TVEFUU19ORVRJRl9JTkMobmV0aWYsIGlmb3V0dWNhc3Rwa3RzKTsKKyAgfQorICByZXR1cm4gRVJSX09LOworfQorCisvKiogbG93X2xldmVsX2lucHV0KCk6IEFsbG9jYXRlIGEgcGJ1ZiBhbmQgdHJhbnNmZXIgdGhlIGJ5dGVzIG9mIHRoZSBpbmNvbWluZworICogcGFja2V0IGZyb20gdGhlIGludGVyZmFjZSBpbnRvIHRoZSBwYnVmLgorICovCitzdGF0aWMgc3RydWN0IHBidWYgKgorcGNhcGlmX2xvd19sZXZlbF9pbnB1dChzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBjb25zdCB2b2lkICpwYWNrZXQsIGludCBwYWNrZXRfbGVuKQoreworICBzdHJ1Y3QgcGJ1ZiAqcCwgKnE7CisgIGludCBzdGFydDsKKyAgaW50IGxlbmd0aCA9IHBhY2tldF9sZW47CisgIGNvbnN0IHN0cnVjdCBldGhfYWRkciAqZGVzdCA9IChjb25zdCBzdHJ1Y3QgZXRoX2FkZHIqKXBhY2tldDsKKyAgaW50IHVuaWNhc3Q7CisjaWYgUENBUElGX0ZJTFRFUl9HUk9VUF9BRERSRVNTRVMgJiYgIVBDQVBJRl9SRUNFSVZFX1BST01JU0NVT1VTCisgIGNvbnN0IHU4X3QgYmNhc3RbXSA9IHsweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmLCAweGZmfTsKKyAgY29uc3QgdThfdCBpcHY0bWNhc3RbXSA9IHsweDAxLCAweDAwLCAweDVlfTsKKyAgY29uc3QgdThfdCBpcHY2bWNhc3RbXSA9IHsweDMzLCAweDMzfTsKKyNlbmRpZiAvKiBQQ0FQSUZfRklMVEVSX0dST1VQX0FERFJFU1NFUyAmJiAhUENBUElGX1JFQ0VJVkVfUFJPTUlTQ1VPVVMgKi8KKworICBpZiAocGNhaXBmX2lzX3R4X3BhY2tldChuZXRpZiwgcGFja2V0LCBwYWNrZXRfbGVuKSkgeworICAgIC8qIGRvbid0IHVwZGF0ZSBjb3VudGVycyBoZXJlISAqLworICAgIHJldHVybiBOVUxMOworICB9CisKKyAgdW5pY2FzdCA9ICgoZGVzdC0+YWRkclswXSAmIDB4MDEpID09IDApOworI2lmICFQQ0FQSUZfUkVDRUlWRV9QUk9NSVNDVU9VUworICAvKiBNQUMgZmlsdGVyOiBvbmx5IGxldCBteSBNQUMgb3Igbm9uLXVuaWNhc3QgdGhyb3VnaCAocGNhcCByZWNlaXZlcyBsb29wYmFjayB0cmFmZmljLCB0b28pICovCisgIGlmIChtZW1jbXAoZGVzdCwgJm5ldGlmLT5od2FkZHIsIEVUSF9IV0FERFJfTEVOKSAmJgorI2lmIFBDQVBJRl9GSUxURVJfR1JPVVBfQUREUkVTU0VTCisgICAgKG1lbWNtcChkZXN0LCBpcHY0bWNhc3QsIDMpIHx8ICgoZGVzdC0+YWRkclszXSAmIDB4ODApICE9IDApKSAmJgorICAgIG1lbWNtcChkZXN0LCBpcHY2bWNhc3QsIDIpICYmCisgICAgbWVtY21wKGRlc3QsIGJjYXN0LCA2KQorI2Vsc2UgLyogUENBUElGX0ZJTFRFUl9HUk9VUF9BRERSRVNTRVMgKi8KKyAgICAgdW5pY2FzdAorI2VuZGlmIC8qIFBDQVBJRl9GSUxURVJfR1JPVVBfQUREUkVTU0VTICovCisgICAgKSB7CisgICAgLyogZG9uJ3QgdXBkYXRlIGNvdW50ZXJzIGhlcmUhICovCisgICAgcmV0dXJuIE5VTEw7CisgIH0KKyNlbmRpZiAvKiAhUENBUElGX1JFQ0VJVkVfUFJPTUlTQ1VPVVMgKi8KKworICAvKiBXZSBhbGxvY2F0ZSBhIHBidWYgY2hhaW4gb2YgcGJ1ZnMgZnJvbSB0aGUgcG9vbC4gKi8KKyAgcCA9IHBidWZfYWxsb2MoUEJVRl9SQVcsICh1MTZfdClsZW5ndGggKyBFVEhfUEFEX1NJWkUsIFBCVUZfUE9PTCk7CisgIExXSVBfREVCVUdGKE5FVElGX0RFQlVHLCAoIm5ldGlmOiByZWN2IGxlbmd0aCAlaSBwLT50b3RfbGVuICVpXG4iLCBsZW5ndGgsIChpbnQpcC0+dG90X2xlbikpOworCisgIGlmIChwICE9IE5VTEwpIHsKKyAgICAvKiBXZSBpdGVyYXRlIG92ZXIgdGhlIHBidWYgY2hhaW4gdW50aWwgd2UgaGF2ZSByZWFkIHRoZSBlbnRpcmUKKyAgICAgICBwYWNrZXQgaW50byB0aGUgcGJ1Zi4gKi8KKyAgICBzdGFydCA9IDA7CisgICAgZm9yIChxID0gcDsgcSAhPSBOVUxMOyBxID0gcS0+bmV4dCkgeworICAgICAgdTE2X3QgY29weV9sZW4gPSBxLT5sZW47CisgICAgICAvKiBSZWFkIGVub3VnaCBieXRlcyB0byBmaWxsIHRoaXMgcGJ1ZiBpbiB0aGUgY2hhaW4uIFRoZQorICAgICAgICAgYXZhaWxhYmxlIGRhdGEgaW4gdGhlIHBidWYgaXMgZ2l2ZW4gYnkgdGhlIHEtPmxlbgorICAgICAgICAgdmFyaWFibGUuICovCisgICAgICAvKiByZWFkIGRhdGEgaW50byhxLT5wYXlsb2FkLCBxLT5sZW4pOyAqLworICAgICAgTFdJUF9ERUJVR0YoTkVUSUZfREVCVUcsICgibmV0aWY6IHJlY3Ygc3RhcnQgJWkgbGVuZ3RoICVpIHEtPnBheWxvYWQgJXAgcS0+bGVuICVpIHEtPm5leHQgJXBcbiIsIHN0YXJ0LCBsZW5ndGgsIHEtPnBheWxvYWQsIChpbnQpcS0+bGVuLCAodm9pZCopcS0+bmV4dCkpOworICAgICAgaWYgKHEgPT0gcCkgeworI2lmIEVUSF9QQURfU0laRQorICAgICAgICBMV0lQX0FTU0VSVCgicS0+bGVuID49IEVUSF9QQURfU0laRSIsIHEtPmxlbiA+PSBFVEhfUEFEX1NJWkUpOworICAgICAgICBjb3B5X2xlbiAtPSBFVEhfUEFEX1NJWkU7CisjZW5kaWYgLyogRVRIX1BBRF9TSVpFKi8KKyAgICAgICAgTUVNQ1BZKCYoKGNoYXIqKXEtPnBheWxvYWQpW0VUSF9QQURfU0laRV0sICYoKGNvbnN0IGNoYXIqKXBhY2tldClbc3RhcnRdLCBjb3B5X2xlbik7CisgICAgICB9IGVsc2UgeworICAgICAgICBNRU1DUFkocS0+cGF5bG9hZCwgJigoY29uc3QgY2hhciopcGFja2V0KVtzdGFydF0sIGNvcHlfbGVuKTsKKyAgICAgIH0KKyAgICAgIHN0YXJ0ICs9IGNvcHlfbGVuOworICAgICAgbGVuZ3RoIC09IGNvcHlfbGVuOworICAgICAgaWYgKGxlbmd0aCA8PSAwKSB7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIH0KKyAgICBMSU5LX1NUQVRTX0lOQyhsaW5rLnJlY3YpOworICAgIE1JQjJfU1RBVFNfTkVUSUZfQUREKG5ldGlmLCBpZmlub2N0ZXRzLCBwLT50b3RfbGVuIC0gRVRIX1BBRF9TSVpFKTsKKyAgICBpZiAodW5pY2FzdCkgeworICAgICAgTUlCMl9TVEFUU19ORVRJRl9JTkMobmV0aWYsIGlmaW51Y2FzdHBrdHMpOworICAgIH0gZWxzZSB7CisgICAgICBNSUIyX1NUQVRTX05FVElGX0lOQyhuZXRpZiwgaWZpbm51Y2FzdHBrdHMpOworICAgIH0KKyAgfSBlbHNlIHsKKyAgICAvKiBkcm9wIHBhY2tldCAqLworICAgIExJTktfU1RBVFNfSU5DKGxpbmsubWVtZXJyKTsKKyAgICBMSU5LX1NUQVRTX0lOQyhsaW5rLmRyb3ApOworICAgIE1JQjJfU1RBVFNfTkVUSUZfSU5DKG5ldGlmLCBpZmluZGlzY2FyZHMpOworICB9CisKKyAgcmV0dXJuIHA7Cit9CisKKyNpZiBQQ0FQSUZfUlhfUkVGCitzdGF0aWMgdm9pZAorcGNhcGlmX3J4X3BidWZfZnJlZV9jdXN0b20oc3RydWN0IHBidWYgKnApCit7CisgIHN0cnVjdCBwY2FwaWZfcGJ1Zl9jdXN0b20qIHBwYzsKKyAgTFdJUF9BU1NFUlQoIk5VTEwgcG9pbnRlciIsIHAgIT0gTlVMTCk7CisgIHBwYyA9IChzdHJ1Y3QgcGNhcGlmX3BidWZfY3VzdG9tKilwOworI2lmIFBDQVBJRl9SWF9SRUFET05MWQorICBMV0lQX0FTU0VSVCgiTlVMTCBwb2ludGVyIiwgcHBjLT5yb19tZW0gIT0gTlVMTCk7CisgIHBjYXBpZmhfZnJlZV9yZWFkb25seV9tZW0ocHBjLT5yb19tZW0pOworICBwcGMtPnJvX21lbSA9IE5VTEw7CisjZWxzZQorICBMV0lQX0FTU0VSVCgiTlVMTCBwb2ludGVyIiwgcHBjLT5wICE9IE5VTEwpOworICBwYnVmX2ZyZWUocHBjLT5wKTsKKyAgcHBjLT5wID0gTlVMTDsKKyNlbmRpZgorICBtZW1fZnJlZShwKTsKK30KKworc3RhdGljIHN0cnVjdCBwYnVmKgorcGNhcGlmX3J4X3JlZihzdHJ1Y3QgcGJ1ZiogcCkKK3sKKyAgc3RydWN0IHBjYXBpZl9wYnVmX2N1c3RvbSogcHBjOworICBzdHJ1Y3QgcGJ1ZiogcTsKKyAgdTE2X3QgbGVuOworICB2b2lkICpwYXlsb2FkX21lbTsKKworICBMV0lQX0FTU0VSVCgiTlVMTCBwb2ludGVyIiwgcCAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoImNoYWluZWQgcGJ1ZiBub3Qgc3VwcG9ydGVkIGhlcmUiLCBwLT5uZXh0ID09IE5VTEwpOworCisgIHBwYyA9IChzdHJ1Y3QgcGNhcGlmX3BidWZfY3VzdG9tKiltZW1fbWFsbG9jKHNpemVvZihzdHJ1Y3QgcGNhcGlmX3BidWZfY3VzdG9tKSk7CisgIExXSVBfQVNTRVJUKCJvdXQgb2YgbWVtb3J5IGZvciBSWCIsIHBwYyAhPSBOVUxMKTsKKyAgcHBjLT5wYy5jdXN0b21fZnJlZV9mdW5jdGlvbiA9IHBjYXBpZl9yeF9wYnVmX2ZyZWVfY3VzdG9tOworICBsZW4gPSBwLT50b3RfbGVuOworI2lmIFBDQVBJRl9SWF9SRUFET05MWQorICBwYXlsb2FkX21lbSA9IHBjYXBpZmhfYWxsb2NfcmVhZG9ubHlfY29weShwLT5wYXlsb2FkLCBsZW4pOworICBMV0lQX0FTU0VSVCgib3V0IG9mIHJlYWRvbmx5IG1lbW9yeSBmb3IgUlgiLCBwYXlsb2FkX21lbSAhPSBOVUxMKTsKKyAgcGJ1Zl9mcmVlKHApOworICBwcGMtPnJvX21lbSA9IHBheWxvYWRfbWVtOworI2Vsc2UKKyAgcHBjLT5wID0gcDsKKyAgcGF5bG9hZF9tZW0gPSBwLT5wYXlsb2FkOworI2VuZGlmCisKKyAgcSA9IHBidWZfYWxsb2NlZF9jdXN0b20oUEJVRl9SQVcsIGxlbiwgUEJVRl9SRUYsICZwcGMtPnBjLCBwYXlsb2FkX21lbSwgbGVuKTsKKyAgTFdJUF9BU1NFUlQoInBidWZfYWxsb2NlZF9jdXN0b20gcmV0dXJuZWQgTlVMTCIsIHEgIT0gTlVMTCk7CisgIHJldHVybiBxOworfQorI2VuZGlmIC8qIFBDQVBJRl9SWF9SRUYgKi8KKworLyoqIHBjYXBpZl9pbnB1dDogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBhIHBhY2tldCBpcyByZWFkeSB0byBiZSByZWFkCisgKiBmcm9tIHRoZSBpbnRlcmZhY2UuIEl0IHVzZXMgdGhlIGZ1bmN0aW9uIGxvd19sZXZlbF9pbnB1dCgpIHRoYXQgc2hvdWxkCisgKiBoYW5kbGUgdGhlIGFjdHVhbCByZWNlcHRpb24gb2YgYnl0ZXMgZnJvbSB0aGUgbmV0d29yayBpbnRlcmZhY2UuCisgKi8KK3N0YXRpYyB2b2lkCitwY2FwaWZfaW5wdXQodV9jaGFyICp1c2VyLCBjb25zdCBzdHJ1Y3QgcGNhcF9wa3RoZHIgKnBrdF9oZWFkZXIsIGNvbnN0IHVfY2hhciAqcGFja2V0KQoreworICBzdHJ1Y3QgcGNhcGlmX3ByaXZhdGUgKnBhID0gKHN0cnVjdCBwY2FwaWZfcHJpdmF0ZSopdXNlcjsKKyAgaW50IHBhY2tldF9sZW4gPSBwa3RfaGVhZGVyLT5jYXBsZW47CisgIHN0cnVjdCBuZXRpZiAqbmV0aWYgPSAoc3RydWN0IG5ldGlmICopcGEtPmlucHV0X2ZuX2FyZzsKKyAgc3RydWN0IHBidWYgKnA7CisKKyAgUENBUElGX1JYX0xPQ0tfTFdJUCgpOworCisgIC8qIG1vdmUgcmVjZWl2ZWQgcGFja2V0IGludG8gYSBuZXcgcGJ1ZiAqLworICBwID0gcGNhcGlmX2xvd19sZXZlbF9pbnB1dChuZXRpZiwgcGFja2V0LCBwYWNrZXRfbGVuKTsKKyAgLyogaWYgbm8gcGFja2V0IGNvdWxkIGJlIHJlYWQsIHNpbGVudGx5IGlnbm9yZSB0aGlzICovCisgIGlmIChwICE9IE5VTEwpIHsKKyNpZiBQQ0FQSUZfUlhfUkVGCisgICAgcCA9IHBjYXBpZl9yeF9yZWYocCk7CisjZW5kaWYKKyAgICAvKiBwYXNzIGFsbCBwYWNrZXRzIHRvIGV0aGVybmV0X2lucHV0LCB3aGljaCBkZWNpZGVzIHdoYXQgcGFja2V0cyBpdCBzdXBwb3J0cyAqLworICAgIGlmIChuZXRpZi0+aW5wdXQocCwgbmV0aWYpICE9IEVSUl9PSykgeworICAgICAgTFdJUF9ERUJVR0YoTkVUSUZfREVCVUcsICgiZXRoZXJuZXRpZl9pbnB1dDogSVAgaW5wdXQgZXJyb3JcbiIpKTsKKyAgICAgIHBidWZfZnJlZShwKTsKKyAgICB9CisgIH0KKyAgUENBUElGX1JYX1VOTE9DS19MV0lQKCk7Cit9CisKKy8qKgorICogcGNhcGlmX2luaXQoKTogaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24sIHBhc3MgdG8gbmV0aWZfYWRkKCkuCisgKi8KK2Vycl90CitwY2FwaWZfaW5pdChzdHJ1Y3QgbmV0aWYgKm5ldGlmKQoreworICBzdGF0aWMgaW50IGV0aGVybmV0aWZfaW5kZXg7CisKKyAgaW50IGxvY2FsX2luZGV4OworICBTWVNfQVJDSF9ERUNMX1BST1RFQ1QobGV2KTsKKworICBwY2FwaWZoX2luaXRfbnBjYXAoKTsKKworICBTWVNfQVJDSF9QUk9URUNUKGxldik7CisgIGxvY2FsX2luZGV4ID0gZXRoZXJuZXRpZl9pbmRleCsrOworICBTWVNfQVJDSF9VTlBST1RFQ1QobGV2KTsKKworICBMV0lQX0FTU0VSVCgicGNhcGlmIG5lZWRzIGFuIGlucHV0IGNhbGxiYWNrIiwgbmV0aWYtPmlucHV0ICE9IE5VTEwpOworCisgIG5ldGlmLT5uYW1lWzBdID0gSUZOQU1FMDsKKyAgbmV0aWYtPm5hbWVbMV0gPSAoY2hhcikoSUZOQU1FMSArIGxvY2FsX2luZGV4KTsKKyAgbmV0aWYtPmxpbmtvdXRwdXQgPSBwY2FwaWZfbG93X2xldmVsX291dHB1dDsKKyNpZiBMV0lQX0lQVjQKKyNpZiBMV0lQX0FSUAorICBuZXRpZi0+b3V0cHV0ID0gZXRoYXJwX291dHB1dDsKKyNlbHNlIC8qIExXSVBfQVJQICovCisgIG5ldGlmLT5vdXRwdXQgPSBOVUxMOyAvKiBub3QgdXNlZCBmb3IgUFBQb0UgKi8KKyNlbmRpZiAvKiBMV0lQX0FSUCAqLworI2VuZGlmIC8qIExXSVBfSVBWNCAqLworI2lmIExXSVBfSVBWNgorICBuZXRpZi0+b3V0cHV0X2lwNiA9IGV0aGlwNl9vdXRwdXQ7CisjZW5kaWYgLyogTFdJUF9JUFY2ICovCisjaWYgTFdJUF9ORVRJRl9IT1NUTkFNRQorICAvKiBJbml0aWFsaXplIGludGVyZmFjZSBob3N0bmFtZSAqLworICBuZXRpZl9zZXRfaG9zdG5hbWUobmV0aWYsICJsd2lwIik7CisjZW5kaWYgLyogTFdJUF9ORVRJRl9IT1NUTkFNRSAqLworCisgIG5ldGlmLT5tdHUgPSAxNTAwOworICBuZXRpZi0+ZmxhZ3MgPSBORVRJRl9GTEFHX0JST0FEQ0FTVCB8IE5FVElGX0ZMQUdfRVRIQVJQIHwgTkVUSUZfRkxBR19FVEhFUk5FVCB8IE5FVElGX0ZMQUdfSUdNUDsKKyNpZiBMV0lQX0lQVjYgJiYgTFdJUF9JUFY2X01MRAorICBuZXRpZi0+ZmxhZ3MgfD0gTkVUSUZfRkxBR19NTEQ2OworI2VuZGlmIC8qIExXSVBfSVBWNiAmJiBMV0lQX0lQVjZfTUxEICovCisgIG5ldGlmLT5od2FkZHJfbGVuID0gRVRIX0hXQUREUl9MRU47CisKKyAgTkVUSUZfSU5JVF9TTk1QKG5ldGlmLCBzbm1wX2lmVHlwZV9ldGhlcm5ldF9jc21hY2QsIDEwMDAwMDAwMCk7CisKKyAgLyogc2V0cyBsaW5rIHVwIG9yIGRvd24gYmFzZWQgb24gY3VycmVudCBzdGF0dXMgKi8KKyAgcGNhcGlmX2xvd19sZXZlbF9pbml0KG5ldGlmKTsKKworICByZXR1cm4gRVJSX09LOworfQorCisjaWYgIVBDQVBJRl9SWF9VU0VfVEhSRUFECit2b2lkCitwY2FwaWZfcG9sbChzdHJ1Y3QgbmV0aWYgKm5ldGlmKQoreworICBzdHJ1Y3QgcGNhcGlmX3ByaXZhdGUgKnBhID0gKHN0cnVjdCBwY2FwaWZfcHJpdmF0ZSopUENBUElGX0dFVF9TVEFURV9QVFIobmV0aWYpOworCisgIGludCByZXQ7CisgIGRvIHsKKyAgICBpZiAocGEtPmFkYXB0ZXIgIT0gTlVMTCkgeworICAgICAgcmV0ID0gcGNhcF9kaXNwYXRjaChwYS0+YWRhcHRlciwgLTEsIHBjYXBpZl9pbnB1dCwgKHVfY2hhciopcGEpOworICAgIH0gZWxzZSB7CisgICAgICByZXQgPSAtMTsKKyAgICB9CisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgIC8qIGVycm9yIChlLmcuIGFkYXB0ZXIgcmVtb3ZlZCBvciByZXN1bWUgZnJvbSBzdGFuZGJ5KSwgdHJ5IHRvIHJlb3BlbiB0aGUgYWRhcHRlciAqLworICAgICAgcGNhcF9yZW9wZW5fYWRhcHRlcihwYSk7CisgICAgfQorICB9IHdoaWxlIChyZXQgPiAwKTsKKworfQorI2VuZGlmIC8qICFQQ0FQSUZfUlhfVVNFX1RIUkVBRCAqLworCisjZW5kaWYgLyogTFdJUF9FVEhFUk5FVCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9wY2FwaWYuaCBiL2NvbnRyaWIvcG9ydHMvd2luMzIvcGNhcGlmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQ2N2VhNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvcGNhcGlmLmgKQEAgLTAsMCArMSwzMiBAQAorI2lmbmRlZiBMV0lQX1BDQVBJRl9ICisjZGVmaW5lIExXSVBfUENBUElGX0gKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisjaW5jbHVkZSAibHdpcC9lcnIuaCIKKworLyoqIFNldCB0byAxIHRvIGxldCByeCB1c2UgYW4gb3duIHRocmVhZCAob25seSBmb3IgTk9fU1lTPT0wKS4KKyAqIElmIHNldCB0byAwLCBldGhlcm5ldGlmX3BvbGwgaXMgdXNlZCB0byBwb2xsIGZvciBwYWNrZXRzLgorICovCisjaWZuZGVmIFBDQVBJRl9SWF9VU0VfVEhSRUFECisjZGVmaW5lIFBDQVBJRl9SWF9VU0VfVEhSRUFEICFOT19TWVMKKyNlbmRpZgorI2lmIFBDQVBJRl9SWF9VU0VfVEhSRUFEICYmIE5PX1NZUworI2Vycm9yICJDYW4ndCBjcmVhdGUgYSBkZWRpY2F0ZWQgUlggdGhyZWFkIHdpdGggTk9fU1lTPT0xIgorI2VuZGlmCisKK3N0cnVjdCBuZXRpZjsKKworZXJyX3QgcGNhcGlmX2luaXQgICAgKHN0cnVjdCBuZXRpZiAqbmV0aWYpOwordm9pZCAgcGNhcGlmX3NodXRkb3duKHN0cnVjdCBuZXRpZiAqbmV0aWYpOworI2lmICFQQ0FQSUZfUlhfVVNFX1RIUkVBRAordm9pZCAgcGNhcGlmX3BvbGwgICAgKHN0cnVjdCBuZXRpZiAqbmV0aWYpOworI2VuZGlmIC8qICFQQ0FQSUZfUlhfVVNFX1RIUkVBRCAqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogTFdJUF9QQ0FQSUZfSCAqLwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3J0cy93aW4zMi9wY2FwaWZfaGVscGVyLmMgYi9jb250cmliL3BvcnRzL3dpbjMyL3BjYXBpZl9oZWxwZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wM2I5MmUwCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9wY2FwaWZfaGVscGVyLmMKQEAgLTAsMCArMSwxNzIgQEAKKy8qKgorICogcGNhcGlmX2hlbHBlci5jIC0gVGhpcyBmaWxlIGlzIHBhcnQgb2YgbHdJUCBwY2FwaWYgYW5kIHByb3ZpZGVzIGhlbHBlciBmdW5jdGlvbnMKKyAqIGZvciBtYW5hZ2luZyB0aGUgbGluayBzdGF0ZS4KKyAqLworCisjaW5jbHVkZSAicGNhcGlmX2hlbHBlci5oIgorCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2luY2x1ZGUgImx3aXAvYXJjaC5oIgorCisjaWZkZWYgV0lOMzIKKworI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCisKKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJuaW5nKCBwdXNoLCAzICkKKyNlbmRpZgorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDxwYWNrZXQzMi5oPgorI2luY2x1ZGUgPG50ZGRuZGlzLmg+CisjaWZkZWYgX01TQ19WRVIKKyNwcmFnbWEgd2FybmluZyAoIHBvcCApCisjZW5kaWYKKworc3RydWN0IHBjYXBpZmhfbGlua3N0YXRlIHsKKyAgTFBBREFQVEVSICAgICAgICBscEFkYXB0ZXI7CisgIFBQQUNLRVRfT0lEX0RBVEEgcHBhY2tldF9vaWRfZGF0YTsKK307CisKK3N0cnVjdCBwY2FwaWZoX2xpbmtzdGF0ZSogcGNhcGlmaF9saW5rc3RhdGVfaW5pdChjaGFyICphZGFwdGVyX25hbWUpCit7CisgIHN0cnVjdCBwY2FwaWZoX2xpbmtzdGF0ZSogc3RhdGUgPSAoc3RydWN0IHBjYXBpZmhfbGlua3N0YXRlKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBwY2FwaWZoX2xpbmtzdGF0ZSkpOworICBpZiAoc3RhdGUgIT0gTlVMTCkgeworICAgIG1lbXNldChzdGF0ZSwgMCwgc2l6ZW9mKHN0cnVjdCBwY2FwaWZoX2xpbmtzdGF0ZSkpOworICAgIHN0YXRlLT5wcGFja2V0X29pZF9kYXRhID0gKFBQQUNLRVRfT0lEX0RBVEEpbWFsbG9jKHNpemVvZihQQUNLRVRfT0lEX0RBVEEpICsgc2l6ZW9mKE5ESVNfTUVESUFfU1RBVEUpKTsKKyAgICBpZiAoc3RhdGUtPnBwYWNrZXRfb2lkX2RhdGEgPT0gTlVMTCkgeworICAgICAgZnJlZShzdGF0ZSk7CisgICAgICBzdGF0ZSA9IE5VTEw7CisgICAgfSBlbHNlIHsKKyAgICAgIHN0YXRlLT5scEFkYXB0ZXIgPSBQYWNrZXRPcGVuQWRhcHRlcigoY2hhciopYWRhcHRlcl9uYW1lKTsKKyAgICAgIGlmICgoc3RhdGUtPmxwQWRhcHRlciA9PSBOVUxMKSB8fCAoc3RhdGUtPmxwQWRhcHRlci0+aEZpbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpKSB7CisgICAgICAgIC8qIGZhaWxlZCB0byBvcGVuIGFkYXB0ZXIgKi8KKyAgICAgICAgZnJlZShzdGF0ZSk7CisgICAgICAgIHN0YXRlID0gTlVMTDsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgcmV0dXJuIHN0YXRlOworfQorCitlbnVtIHBjYXBpZmhfbGlua19ldmVudCBwY2FwaWZoX2xpbmtzdGF0ZV9nZXQoc3RydWN0IHBjYXBpZmhfbGlua3N0YXRlKiBzdGF0ZSkKK3sKKyAgZW51bSBwY2FwaWZoX2xpbmtfZXZlbnQgcmV0ID0gUENBUElGX0xJTktFVkVOVF9VTktOT1dOOworICBpZiAoc3RhdGUgIT0gTlVMTCkgeworICAgIHN0YXRlLT5wcGFja2V0X29pZF9kYXRhLT5PaWQgICAgPSBPSURfR0VOX01FRElBX0NPTk5FQ1RfU1RBVFVTOworICAgIHN0YXRlLT5wcGFja2V0X29pZF9kYXRhLT5MZW5ndGggPSBzaXplb2YoTkRJU19NRURJQV9TVEFURSk7CisgICAgaWYgKFBhY2tldFJlcXVlc3Qoc3RhdGUtPmxwQWRhcHRlciwgRkFMU0UsIHN0YXRlLT5wcGFja2V0X29pZF9kYXRhKSkgeworICAgICAgTkRJU19NRURJQV9TVEFURSBmTmRpc01lZGlhU3RhdGU7CisgICAgICBmTmRpc01lZGlhU3RhdGUgPSAoKigoUE5ESVNfTUVESUFfU1RBVEUpKHN0YXRlLT5wcGFja2V0X29pZF9kYXRhLT5EYXRhKSkpOworICAgICAgcmV0ID0gKChmTmRpc01lZGlhU3RhdGUgPT0gTmRpc01lZGlhU3RhdGVDb25uZWN0ZWQpID8gUENBUElGX0xJTktFVkVOVF9VUCA6IFBDQVBJRl9MSU5LRVZFTlRfRE9XTik7CisgICAgfQorICB9CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQgcGNhcGlmaF9saW5rc3RhdGVfY2xvc2Uoc3RydWN0IHBjYXBpZmhfbGlua3N0YXRlKiBzdGF0ZSkKK3sKKyAgaWYgKHN0YXRlICE9IE5VTEwpIHsKKyAgICBpZiAoc3RhdGUtPmxwQWRhcHRlciAhPSBOVUxMKSB7CisgICAgICBQYWNrZXRDbG9zZUFkYXB0ZXIoc3RhdGUtPmxwQWRhcHRlcik7CisgICAgfQorICAgIGlmIChzdGF0ZS0+cHBhY2tldF9vaWRfZGF0YSAhPSBOVUxMKSB7CisgICAgICBmcmVlKHN0YXRlLT5wcGFja2V0X29pZF9kYXRhKTsKKyAgICB9CisgICAgZnJlZShzdGF0ZSk7CisgIH0KK30KKworLyoqIEhlbHBlciBmdW5jdGlvbiBmb3IgUENBUElGX1JYX1JFQURPTkxZIGZvciB3aW5kb3dzOiBjb3B5IHRoZSBkYXRlIHRvIGEgbmV3CisgKiBwYWdlIHdoaWNoIGlzIHNldCB0byBSRUFET05MWSBhZnRlciBjb3B5aW5nLgorICogVGhpcyBpcyBhIGhlbHBlciB0byBzaW11bGF0ZSBoYXJkd2FyZSB0aGF0IHJlY2VpdmVzIHRvIG1lbW9yeSB0aGF0IGNhbm5vdCBiZQorICogd3JpdHRlbiBieSB0aGUgQ1BVLgorICovCit2b2lkICoKK3BjYXBpZmhfYWxsb2NfcmVhZG9ubHlfY29weSh2b2lkICpkYXRhLCBzaXplX3QgbGVuKQoreworICBEV09SRCBvbGRQcm90ZWN0OworICB2b2lkICpyZXQ7CisgIGlmIChsZW4gPiA0MDk2KSB7CisgICAgbHdpcF93aW4zMl9wbGF0Zm9ybV9kaWFnKCJwY2FwaWZoX2FsbG9jX3JlYWRvbmx5X2NvcHk6IGludmFsaWQgbGVuOiAlZFxuIiwgbGVuKTsKKyAgICB3aGlsZSgxKTsKKyAgfQorICByZXQgPSBWaXJ0dWFsQWxsb2MoTlVMTCwgNDA5NiwgTUVNX0NPTU1JVCwgUEFHRV9SRUFEV1JJVEUpOworICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICBsd2lwX3dpbjMyX3BsYXRmb3JtX2RpYWcoIlZpcnR1YWxBbGxvYyBmYWlsZWQ6ICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7CisgICAgd2hpbGUoMSk7CisgIH0KKyAgbWVtY3B5KHJldCwgZGF0YSwgbGVuKTsKKyAgaWYgKCFWaXJ0dWFsUHJvdGVjdChyZXQsIGxlbiwgUEFHRV9SRUFET05MWSwgJm9sZFByb3RlY3QpKSB7CisgICAgbHdpcF93aW4zMl9wbGF0Zm9ybV9kaWFnKCJWaXJ0dWFsUHJvdGVjdCBmYWlsZWQ6ICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7CisgICAgd2hpbGUoMSk7CisgIH0KKyAgcmV0dXJuIHJldDsKK30KKwordm9pZAorcGNhcGlmaF9mcmVlX3JlYWRvbmx5X21lbSh2b2lkICpkYXRhKQoreworICBpZiAoIVZpcnR1YWxGcmVlKGRhdGEsIDAsIE1FTV9SRUxFQVNFKSkgeworICAgIGx3aXBfd2luMzJfcGxhdGZvcm1fZGlhZygiVmlydHVhbEZyZWUoMHglMDh4KSBmYWlsZWQ6ICVkXG4iLCBkYXRhLCBHZXRMYXN0RXJyb3IoKSk7CisgICAgd2hpbGUoMSk7CisgIH0KK30KKworLyoqCisgKiBOcGNhcCBrZWVwcyBpdHMgRExMcyBpbiBhIGRpZmZlcmVudCBkaXJlY3RvcnkgZm9yIGNvbXBhdGlibGl0eSB3aXRoIHdpbnBjYXAuCisgKiBNYWtlIHN1cmUgdGhleSBnZXQgZm91bmQgYnkgYWRkaW5nIHRoYXQgZGlyZWN0b3J5IHRvIHRoZSBETEwgc2VhcmNoIHBhdGguCisgKi8KK3ZvaWQgcGNhcGlmaF9pbml0X25wY2FwKHZvaWQpCit7CisgIGNoYXIgbnBjYXBfZGlyWzUxMl07CisgIHVuc2lnbmVkIGludCBsZW47CisgIHN0YXRpYyBjaGFyIG5wY2FwX2luaXRpYWxpemVkID0gMDsKKworICBpZiAoIW5wY2FwX2luaXRpYWxpemVkKQorICB7CisgICAgbnBjYXBfaW5pdGlhbGl6ZWQgPSAxOworCisgICAgbGVuID0gR2V0U3lzdGVtRGlyZWN0b3J5KG5wY2FwX2RpciwgNDgwKTsKKyAgICBpZiAoIWxlbikgeworICAgICAgbHdpcF93aW4zMl9wbGF0Zm9ybV9kaWFnKCJFcnJvciBpbiBHZXRTeXN0ZW1EaXJlY3Rvcnk6ICV4IiwgR2V0TGFzdEVycm9yKCkpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzdHJjYXRfcyhucGNhcF9kaXIsIDUxMiwgIlxcTnBjYXAiKTsKKyAgICBpZiAoU2V0RGxsRGlyZWN0b3J5KG5wY2FwX2RpcikgPT0gMCkgeworICAgICAgbHdpcF93aW4zMl9wbGF0Zm9ybV9kaWFnKCJFcnJvciBpbiBTZXREbGxEaXJlY3Rvcnk6ICV4IiwgR2V0TGFzdEVycm9yKCkpOworICAgICAgcmV0dXJuOworICAgIH0KKyAgfQorfQorCisjZWxzZSAvKiBXSU4zMiAqLworCisvKiBAdG9kbzogYWRkIGxpbnV4L3VuaXggaW1wbGVtZW50YXRpb24/ICovCisKK3N0cnVjdCBwY2FwaWZoX2xpbmtzdGF0ZSB7CisgIHU4X3QgZW1wdHk7Cit9OworCitzdHJ1Y3QgcGNhcGlmaF9saW5rc3RhdGUqIHBjYXBpZmhfbGlua3N0YXRlX2luaXQoY2hhciAqYWRhcHRlcl9uYW1lKQoreworICBMV0lQX1VOVVNFRF9BUkcoYWRhcHRlcl9uYW1lKTsKKyAgcmV0dXJuIE5VTEw7Cit9CisKK2VudW0gcGNhcGlmaF9saW5rX2V2ZW50IHBjYXBpZmhfbGlua3N0YXRlX2dldChzdHJ1Y3QgcGNhcGlmaF9saW5rc3RhdGUqIHN0YXRlKQoreworICBMV0lQX1VOVVNFRF9BUkcoc3RhdGUpOworICByZXR1cm4gUENBUElGX0xJTktFVkVOVF9VUDsKK30KK3ZvaWQgcGNhcGlmaF9saW5rc3RhdGVfY2xvc2Uoc3RydWN0IHBjYXBpZmhfbGlua3N0YXRlKiBzdGF0ZSkKK3sKKyAgTFdJUF9VTlVTRURfQVJHKHN0YXRlKTsKK30KKwordm9pZCBwY2FwaWZoX2luaXRfbnBjYXAodm9pZCkKK3sKK30KKworI2VuZGlmIC8qIFdJTjMyICovCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3dpbjMyL3BjYXBpZl9oZWxwZXIuaCBiL2NvbnRyaWIvcG9ydHMvd2luMzIvcGNhcGlmX2hlbHBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkMWM1MjcKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BvcnRzL3dpbjMyL3BjYXBpZl9oZWxwZXIuaApAQCAtMCwwICsxLDMxIEBACisjaWZuZGVmIExXSVBfUENBUElGX0hFTFBFUl9ICisjZGVmaW5lIExXSVBfUENBUElGX0hFTFBFUl9ICisKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitzdHJ1Y3QgcGNhcGlmaF9saW5rc3RhdGU7CisKK2VudW0gcGNhcGlmaF9saW5rX2V2ZW50IHsKKyAgUENBUElGX0xJTktFVkVOVF9VTktOT1dOLAorICBQQ0FQSUZfTElOS0VWRU5UX1VQLAorICBQQ0FQSUZfTElOS0VWRU5UX0RPV04KK307CisKK3N0cnVjdCBwY2FwaWZoX2xpbmtzdGF0ZSogcGNhcGlmaF9saW5rc3RhdGVfaW5pdChjaGFyICphZGFwdGVyX25hbWUpOworZW51bSBwY2FwaWZoX2xpbmtfZXZlbnQgcGNhcGlmaF9saW5rc3RhdGVfZ2V0KHN0cnVjdCBwY2FwaWZoX2xpbmtzdGF0ZSogc3RhdGUpOwordm9pZCBwY2FwaWZoX2xpbmtzdGF0ZV9jbG9zZShzdHJ1Y3QgcGNhcGlmaF9saW5rc3RhdGUqIHN0YXRlKTsKKwordm9pZCAqcGNhcGlmaF9hbGxvY19yZWFkb25seV9jb3B5KHZvaWQgKmRhdGEsIHNpemVfdCBsZW4pOwordm9pZCBwY2FwaWZoX2ZyZWVfcmVhZG9ubHlfbWVtKHZvaWQgKmRhdGEpOworCit2b2lkIHBjYXBpZmhfaW5pdF9ucGNhcCh2b2lkKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIExXSVBfUENBUElGX0hFTFBFUl9IICovCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3dpbjMyL3JlYWRtZS50eHQgYi9jb250cmliL3BvcnRzL3dpbjMyL3JlYWRtZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdlMDlkMAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvcmVhZG1lLnR4dApAQCAtMCwwICsxLDI2IEBACitsd0lQIGZvciBXaW4zMgorCitUaGlzIGlzIGFuIGV4YW1wbGUgcG9ydCBvZiBsd0lQIGZvciBXaW4zMi4gSXQgdXNlcyBXaW5QQ0FQIHRvIHNlbmQgJiByZWNlaXZlIHBhY2tldHMuCitUbyBjb21waWxlIGl0LCB1c2UgdGhlIE1TVkMgcHJvamVjdHMgaW4gdGhlICdtc3ZjJyBzdWJkaXIsIHRoZSBDTWFrZSBmaWxlcywgb3IgdGhlIE1ha2VmaWxlCitpbiB0aGUgJ21pbmd3JyBzdWJkaXIuCisKK0ZvciBhbGwgY29tcGlsZXJzL2J1aWxkIHN5c3RlbXM6CistIHlvdSBoYXZlIHRvIHNldCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBQQ0FQX0RJUiBwb2ludGluZyB0byB0aGUgV2luUGNhcCBEZXZlbG9wZXIncworICBQYWNrIChjb250YWluaW5nICdpbmNsdWRlJyBhbmQgJ2xpYicpCisgIGFsdGVybmF0aXZlbHksIHBsYWNlIHRoZSBXaW5QY2FwIERldmVsb3BlcidzIHBhY2sgbmV4dCB0byB0aGUgImx3aXAiIGZvbGRlcjoKKyAgIndpbnBjYXBcV3BkUGFjayIKKworWW91IGFsc28gd2lsbCBoYXZlIHRvIGNvcHkgdGhlIGZpbGUgJ2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAvbHdpcGNmZy5oLmV4YW1wbGUnIHRvCisnY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwY2ZnLmgnIGFuZCBtb2RpZnkgdG8gc3VpdCB5b3VyIG5lZWRzIChXaW5QY2FwIGFkYXB0ZXIgbnVtYmVyLAorSVAgY29uZmlndXJhdGlvbiwgYXBwbGljYXRpb25zLi4uKS4KKworSW5jbHVkZWQgaW4gdGhlIGNvbnRyaWJccG9ydHNcd2luMzIgZGlyZWN0b3J5IGlzIHRoZSBuZXR3b3JrIGludGVyZmFjZSBkcml2ZXIKK3VzaW5nIHRoZSB3aW5wY2FwIGxpYnJhcnkuCisKK2x3SVA6IGh0dHA6Ly9zYXZhbm5haC5ub25nbnUub3JnL3Byb2plY3RzL2x3aXAvCitXaW5QQ2FwOiBodHRwczovL3d3dy53aW5wY2FwLm9yZy9kZXZlbC5odG0KK1Zpc3VhbCBDKys6IGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9leHByZXNzL2Rvd25sb2FkLworCitUbyBjb21waWxlIHRoZSB1bml0dGVzdHMgKG1zdmNcbHdJUF91bml0dGVzdHMuc2xuKSwgZG93bmxvYWQgY2hlY2sgKHRlc3RlZCB3aXRoIHYwLjExLjApIGZyb20KK2h0dHBzOi8vZ2l0aHViLmNvbS9saWJjaGVjay9jaGVjay9yZWxlYXNlcy8KK2FuZCBwbGFjZSBpdCBpbiBhIGZvbGRlciAiY2hlY2siIG5leHQgdG8gdGhlICJjb250cmliIiBmb2xkZXIuCmRpZmYgLS1naXQgYS9jb250cmliL3BvcnRzL3dpbjMyL3Npby5jIGIvY29udHJpYi9wb3J0cy93aW4zMi9zaW8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjY0NDkyCi0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9zaW8uYwpAQCAtMCwwICsxLDMwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDAzIFN3ZWRpc2ggSW5zdGl0dXRlIG9mIENvbXB1dGVyIFNjaWVuY2UuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24KKyAqICAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gVGhlIG5hbWUgb2YgdGhlIGF1dGhvciBtYXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzCisgKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVECisgKiBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorICogTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQKKyAqIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQKKyAqIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcKKyAqIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQorICogT0YgU1VDSCBEQU1BR0UuCisgKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIGx3SVAgVENQL0lQIHN0YWNrLgorICoKKyAqLworCisjaW5jbHVkZSA8bHdpcC9vcHQuaD4KKyNpbmNsdWRlIDxsd2lwL3N5cy5oPgorI2luY2x1ZGUgPGx3aXAvc2lvLmg+CisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGFyZy5oPgorCisjaWZkZWYgX01TQ19WRVIKKyNwcmFnbWEgd2FybmluZyAocHVzaCwgMykKKyNlbmRpZgorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJuaW5nIChwb3ApCisjZW5kaWYKKyNpbmNsdWRlICJsd2lwY2ZnLmgiCisKKy8qKiBXaGVuIDEsIHVzZSBDT00gcG9ydHMsIHdoZW4gMCwgdXNlIG5hbWVkIHBpcGVzIChmb3Igc2ltdWxhdGlvbikuICovCisjaWZuZGVmIFNJT19VU0VfQ09NUE9SVAorI2RlZmluZSBTSU9fVVNFX0NPTVBPUlQgMQorI2VuZGlmCisKKy8qKiBJZiBTSU9fVVNFX0NPTVBPUlQ9PTEsIHVzZSBDT014LCBpZiAwLCB1c2UgYSBwaXBlIChkZWZhdWx0KSAqLworI2lmIFNJT19VU0VfQ09NUE9SVAorI2RlZmluZSBTSU9fREVWSUNFTkFNRSAiXFxcXC5cXENPTSIKKyNlbHNlCisjZGVmaW5lIFNJT19ERVZJQ0VOQU1FICJcXFxcLlxccGlwZVxcbHdpcCIKKyNlbmRpZgorCisjaWYgU0lPX1VTRV9DT01QT1JUCisjaWZuZGVmIFNJT19DT01QT1JUX1NQRUVECisjZGVmaW5lIFNJT19DT01QT1JUX1NQRUVEIDExNTIwMAorI2VuZGlmCisjaWZuZGVmIFNJT19DT01QT1JUX0JZVEVTSVpFCisjZGVmaW5lIFNJT19DT01QT1JUX0JZVEVTSVpFIDgKKyNlbmRpZgorI2lmbmRlZiBTSU9fQ09NUE9SVF9TVE9QQklUUworI2RlZmluZSBTSU9fQ09NUE9SVF9TVE9QQklUUyAwIC8qIE9ORVNUT1BCSVQgKi8KKyNlbmRpZgorI2lmbmRlZiBTSU9fQ09NUE9SVF9QQVJJVFkKKyNkZWZpbmUgU0lPX0NPTVBPUlRfUEFSSVRZIDAgLyogTk9QQVJJVFkgKi8KKyNlbmRpZgorI2VuZGlmIC8qIFNJT19VU0VfQ09NUE9SVCAqLworCitzdGF0aWMgaW50IHNpb19hYm9ydCA9IDA7CisKKy8qIFxcLlxwaXBlXGx3aXAwICovCisvKiBwcHBkIC9kZXYvdHR5UzAgbG9nZmlsZSBteWxvZyBkZWJ1ZyBub2NydHNjdHMgbG9jYWwgbm9hdXRoIG5vY2NwIG1zLWRucyAyMTIuMjcuNTQuMjUyIDE5Mi4xNjguMC40OjE5Mi4xNjguMC41CisgKi8KKworLyoqCisgKiBTSU9fREVCVUc6IEVuYWJsZSBkZWJ1Z2dpbmcgZm9yIFNJTy4KKyAqLworI2lmbmRlZiBTSU9fREVCVUcKKyNkZWZpbmUgU0lPX0RFQlVHICAgIExXSVBfREJHX09GRgorI2VuZGlmCisKKyNpZiBTSU9fVVNFX0NPTVBPUlQKKy8qKiBXaGVuIHVzaW5nIGEgcmVhbCBDT00gcG9ydCwgc2V0IHVwIHRoZQorICogc2VyaWFsIGxpbmUgc2V0dGluZ3MgKGJhdWRyYXRlIGV0Yy4pCisgKi8KK3N0YXRpYyBCT09MCitzaW9fc2V0dXAoSEFORExFIGZkKQoreworICBDT01NVElNRU9VVFMgY3RvOworICBEQ0IgZGNiOworCisgIC8qIHNldCB1cCBiYXVkcmF0ZSBhbmQgb3RoZXIgY29tbXVuaWNhdGlvbiBzZXR0aW5ncyAqLworICBtZW1zZXQoJmRjYiwgMCwgc2l6ZW9mKGRjYikpOworICAvKiBPYnRhaW4gdGhlIERDQiBzdHJ1Y3R1cmUgZm9yIHRoZSBkZXZpY2UgKi8KKyAgaWYgKCFHZXRDb21tU3RhdGUoZmQsICZkY2IpKSB7CisgICAgcmV0dXJuIEZBTFNFOworICB9CisgIC8qIFNldCB0aGUgbmV3IGRhdGEgKi8KKyAgZGNiLkJhdWRSYXRlID0gU0lPX0NPTVBPUlRfU1BFRUQ7CisgIGRjYi5CeXRlU2l6ZSA9IFNJT19DT01QT1JUX0JZVEVTSVpFOworICBkY2IuU3RvcEJpdHMgPSAwOyAvKiBPTkVTVE9QQklUICovCisgIGRjYi5QYXJpdHkgICA9IDA7IC8qIE5PUEFSSVRZICovCisgIGRjYi5mUGFyaXR5ICA9IDA7IC8qIHBhcml0eSBpcyBub3QgdXNlZCAqLworICAvKiBkbyBub3QgdXNlIGZsb3cgY29udHJvbCAqLworICAvKmRjYi5mT3V0eERzckZsb3cgPSBkY2IuZkR0ckNvbnRyb2wgPSAwOworICBkY2IuZk91dHhDdHNGbG93ID0gZGNiLmZSdHNDb250cm9sID0gMDsKKyAgZGNiLmZFcnJvckNoYXIgPSBkY2IuZk51bGwgPSAwOworICBkY2IuZkluWCA9IGRjYi5mT3V0WCA9IDA7CisgIGRjYi5Yb25DaGFyID0gZGNiLlhvZmZDaGFyID0gMDsKKyAgZGNiLlhvbkxpbSA9IGRjYi5Yb2ZmTGltID0gMTAwOyovCisKKyAgLyogU2V0IHRoZSBuZXcgRENCIHN0cnVjdHVyZSAqLworICBpZiAoIVNldENvbW1TdGF0ZShmZCwgJmRjYikpIHsKKyAgICByZXR1cm4gRkFMU0U7CisgIH0KKworICBtZW1zZXQoJmN0bywgMCwgc2l6ZW9mKGN0bykpOworICBpZighR2V0Q29tbVRpbWVvdXRzKGZkLCAmY3RvKSkKKyAgeworICAgIHJldHVybiBGQUxTRTsKKyAgfQorICAvKiBjaGFuZ2UgcmVhZCB0aW1lb3V0LCBsZWF2ZSB3cml0ZSB0aW1lb3V0IGFzIGl0IGlzICovCisgIGN0by5SZWFkSW50ZXJ2YWxUaW1lb3V0ID0gMTsKKyAgY3RvLlJlYWRUb3RhbFRpbWVvdXRNdWx0aXBsaWVyID0gMDsKKyAgY3RvLlJlYWRUb3RhbFRpbWVvdXRDb25zdGFudCA9IDE7IC8qIDEgbXMgKi8KKyAgaWYoIVNldENvbW1UaW1lb3V0cyhmZCwgJmN0bykpIHsKKyAgICByZXR1cm4gRkFMU0U7CisgIH0KKworICByZXR1cm4gVFJVRTsKK30KKyNlbmRpZiAvKiBTSU9fVVNFX0NPTVBPUlQgKi8KKworLyoqCisgKiBPcGVucyBhIHNlcmlhbCBkZXZpY2UgZm9yIGNvbW11bmljYXRpb24uCisgKgorICogQHBhcmFtIGRldm51bSBkZXZpY2UgbnVtYmVyCisgKiBAcmV0dXJuIGhhbmRsZSB0byBzZXJpYWwgZGV2aWNlIGlmIHN1Y2Nlc3NmdWwsIE5VTEwgb3RoZXJ3aXNlCisgKi8KK3Npb19mZF90IHNpb19vcGVuKHU4X3QgZGV2bnVtKQoreworICBIQU5ETEUgZmlsZUhhbmRsZSA9IElOVkFMSURfSEFORExFX1ZBTFVFOworICBDSEFSICAgZmlsZU5hbWVbMjU2XTsKKyAgTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19vcGVuKCVsdSlcbiIsIChEV09SRClkZXZudW0pKTsKKyNpZiBTSU9fVVNFX0NPTVBPUlQKKyAgc25wcmludGYoZmlsZU5hbWUsIDI1NSwgU0lPX0RFVklDRU5BTUUiJWx1IiwgKERXT1JEKShkZXZudW0pKTsKKyNlbHNlIC8qIFNJT19VU0VfQ09NUE9SVCAqLworICBzbnByaW50ZihmaWxlTmFtZSwgMjU1LCBTSU9fREVWSUNFTkFNRSIlbHUiLCAoRFdPUkQpKGRldm51bSAmIH4xKSk7CisgIGlmICgoZGV2bnVtICYgMSkgPT0gMCkgeworICAgIGZpbGVIYW5kbGUgPSBDcmVhdGVOYW1lZFBpcGVBKGZpbGVOYW1lLCBQSVBFX0FDQ0VTU19EVVBMRVgsIFBJUEVfVFlQRV9CWVRFIHwgUElQRV9OT1dBSVQsCisgICAgICBQSVBFX1VOTElNSVRFRF9JTlNUQU5DRVMsIDEwMjQwMCwgMTAyNDAwLCAxMDAsIE5VTEwpOworICB9IGVsc2UKKyNlbmRpZiAvKiBTSU9fVVNFX0NPTVBPUlQgKi8KKyAgeworICAgIGZpbGVIYW5kbGUgPSBDcmVhdGVGaWxlQShmaWxlTmFtZSwgR0VORVJJQ19SRUFEIHwgR0VORVJJQ19XUklURSwgMCwgTlVMTCwgT1BFTl9FWElTVElORywgMCwgTlVMTCk7CisgIH0KKyAgaWYgKGZpbGVIYW5kbGUgIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKKyAgICBzaW9fYWJvcnQgPSAwOworI2lmICFTSU9fVVNFX0NPTVBPUlQKKyAgICBpZiAoZGV2bnVtICYgMSkgeworICAgICAgRFdPUkQgbW9kZSA9IFBJUEVfTk9XQUlUOworICAgICAgaWYgKCFTZXROYW1lZFBpcGVIYW5kbGVTdGF0ZShmaWxlSGFuZGxlLCAmbW9kZSwgTlVMTCwgTlVMTCkpIHsKKyAgICAgICAgTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19vcGVuKCVsdSk6IFNldE5hbWVkUGlwZUhhbmRsZVN0YXRlIGZhaWxlZC4gR2V0TGFzdEVycm9yKCkgcmV0dXJucyAlZFxuIiwKKyAgICAgICAgICAgICAgICAgIChEV09SRClkZXZudW0sIEdldExhc3RFcnJvcigpKSk7CisgICAgICB9CisgICAgfSBlbHNlCisjZW5kaWYgLyogIVNJT19VU0VfQ09NUE9SVCAqLworICAgIHsKKyAgICAgIEZsdXNoRmlsZUJ1ZmZlcnMoZmlsZUhhbmRsZSk7CisgICAgfQorI2lmIFNJT19VU0VfQ09NUE9SVAorICAgIGlmKCFzaW9fc2V0dXAoZmlsZUhhbmRsZSkpIHsKKyAgICAgIENsb3NlSGFuZGxlKGZpbGVIYW5kbGUpOworICAgICAgTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19vcGVuKCVsdSk6IHNpb19zZXR1cCBmYWlsZWQuIEdldExhc3RFcnJvcigpIHJldHVybnMgJWx1XG4iLAorICAgICAgICAgICAgICAgICAgKERXT1JEKWRldm51bSwgR2V0TGFzdEVycm9yKCkpKTsKKyAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyNlbmRpZiAvKiBTSU9fVVNFX0NPTVBPUlQgKi8KKyAgICBMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX29wZW46IGZpbGUgXCIlc1wiIHN1Y2Nlc3NmdWxseSBvcGVuZWQuXG4iLCBmaWxlTmFtZSkpOworICAgIHByaW50Zigic2lvX29wZW46IGZpbGUgXCIlc1wiICglZCkgc3VjY2Vzc2Z1bGx5IG9wZW5lZDogMHglMDh4XG4iLCBmaWxlTmFtZSwgZGV2bnVtLCBMV0lQX1BUUl9OVU1FUklDX0NBU1QodW5zaWduZWQgaW50LCBmaWxlSGFuZGxlKSk7CisgICAgcmV0dXJuIChzaW9fZmRfdCkoZmlsZUhhbmRsZSk7CisgIH0KKyAgTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19vcGVuKCVsdSkgZmFpbGVkLiBHZXRMYXN0RXJyb3IoKSByZXR1cm5zICVsdVxuIiwKKyAgICAgICAgICAgICAgKERXT1JEKWRldm51bSwgR2V0TGFzdEVycm9yKCkpKTsKKyAgcHJpbnRmKCJzaW9fb3BlbiglbHUpIGZhaWxlZC4gR2V0TGFzdEVycm9yKCkgcmV0dXJucyAlbHVcbiIsCisgICAgICAgICAgICAgIChEV09SRClkZXZudW0sIEdldExhc3RFcnJvcigpKTsKKyAgcmV0dXJuIE5VTEw7Cit9CisKKy8qKgorICogU2VuZHMgYSBzaW5nbGUgY2hhcmFjdGVyIHRvIHRoZSBzZXJpYWwgZGV2aWNlLgorICoKKyAqIEBwYXJhbSBjIGNoYXJhY3RlciB0byBzZW5kCisgKiBAcGFyYW0gZmQgc2VyaWFsIGRldmljZSBoYW5kbGUKKyAqCisgKiBAbm90ZSBUaGlzIGZ1bmN0aW9uIHdpbGwgYmxvY2sgdW50aWwgdGhlIGNoYXJhY3RlciBjYW4gYmUgc2VudC4KKyAqLwordm9pZCBzaW9fc2VuZCh1OF90IGMsIHNpb19mZF90IGZkKQoreworICBEV09SRCBkd05iQnl0ZXNXcml0dGVuID0gMDsKKyAgTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19zZW5kKCVsdSlcbiIsIChEV09SRCljKSk7CisgIHdoaWxlICgoIVdyaXRlRmlsZSgoSEFORExFKShmZCksICZjLCAxLCAmZHdOYkJ5dGVzV3JpdHRlbiwgTlVMTCkpIHx8IChkd05iQnl0ZXNXcml0dGVuIDwgMSkpIHsKKyAgfQorfQorCisvKioKKyAqIFJlY2VpdmVzIGEgc2luZ2xlIGNoYXJhY3RlciBmcm9tIHRoZSBzZXJpYWwgZGV2aWNlLgorICoKKyAqIEBwYXJhbSBmZCBzZXJpYWwgZGV2aWNlIGhhbmRsZQorICoKKyAqIEBub3RlIFRoaXMgZnVuY3Rpb24gd2lsbCBibG9jayB1bnRpbCBhIGNoYXJhY3RlciBpcyByZWNlaXZlZC4KKyAqLwordThfdCBzaW9fcmVjdihzaW9fZmRfdCBmZCkKK3sKKyAgRFdPUkQgZHdOYkJ5dGVzUmVhZGRlbiA9IDA7CisgIHU4X3QgYnl0ZSA9IDA7CisgIExXSVBfREVCVUdGKFNJT19ERUJVRywgKCJzaW9fcmVjdigpXG4iKSk7CisgIHdoaWxlICgoc2lvX2Fib3J0ID09IDApICYmICgoIVJlYWRGaWxlKChIQU5ETEUpKGZkKSwgJmJ5dGUsIDEsICZkd05iQnl0ZXNSZWFkZGVuLCBOVUxMKSkgfHwgKGR3TmJCeXRlc1JlYWRkZW4gPCAxKSkpOworICBMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX3JlY3YoKT0lbHVcbiIsIChEV09SRClieXRlKSk7CisgIHJldHVybiBieXRlOworfQorCisvKioKKyAqIFJlYWRzIGZyb20gdGhlIHNlcmlhbCBkZXZpY2UuCisgKgorICogQHBhcmFtIGZkIHNlcmlhbCBkZXZpY2UgaGFuZGxlCisgKiBAcGFyYW0gZGF0YSBwb2ludGVyIHRvIGRhdGEgYnVmZmVyIGZvciByZWNlaXZpbmcKKyAqIEBwYXJhbSBsZW4gbWF4aW11bSBsZW5ndGggKGluIGJ5dGVzKSBvZiBkYXRhIHRvIHJlY2VpdmUKKyAqIEByZXR1cm4gbnVtYmVyIG9mIGJ5dGVzIGFjdHVhbGx5IHJlY2VpdmVkIC0gbWF5IGJlIDAgaWYgYWJvcnRlZCBieSBzaW9fcmVhZF9hYm9ydAorICoKKyAqIEBub3RlIFRoaXMgZnVuY3Rpb24gd2lsbCBibG9jayB1bnRpbCBkYXRhIGNhbiBiZSByZWNlaXZlZC4gVGhlIGJsb2NraW5nCisgKiBjYW4gYmUgY2FuY2VsbGVkIGJ5IGNhbGxpbmcgc2lvX3JlYWRfYWJvcnQoKS4KKyAqLwordTMyX3Qgc2lvX3JlYWQoc2lvX2ZkX3QgZmQsIHU4X3QqIGRhdGEsIHUzMl90IGxlbikKK3sKKyAgQk9PTCByZXQ7CisgIERXT1JEIGR3TmJCeXRlc1JlYWRkZW4gPSAwOworICBMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX3JlYWQoKS4uLlxuIikpOworICByZXQgPSBSZWFkRmlsZSgoSEFORExFKShmZCksIGRhdGEsIGxlbiwgJmR3TmJCeXRlc1JlYWRkZW4sIE5VTEwpOworICBMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX3JlYWQoKT0lbHUgYnl0ZXMgLT4gJWRcbiIsIGR3TmJCeXRlc1JlYWRkZW4sIHJldCkpOworICBMV0lQX1VOVVNFRF9BUkcocmV0KTsKKyAgcmV0dXJuIGR3TmJCeXRlc1JlYWRkZW47Cit9CisKKy8qKgorICogVHJpZXMgdG8gcmVhZCBmcm9tIHRoZSBzZXJpYWwgZGV2aWNlLiBTYW1lIGFzIHNpb19yZWFkIGJ1dCByZXR1cm5zCisgKiBpbW1lZGlhdGVseSBpZiBubyBkYXRhIGlzIGF2YWlsYWJsZSBhbmQgbmV2ZXIgYmxvY2tzLgorICoKKyAqIEBwYXJhbSBmZCBzZXJpYWwgZGV2aWNlIGhhbmRsZQorICogQHBhcmFtIGRhdGEgcG9pbnRlciB0byBkYXRhIGJ1ZmZlciBmb3IgcmVjZWl2aW5nCisgKiBAcGFyYW0gbGVuIG1heGltdW0gbGVuZ3RoIChpbiBieXRlcykgb2YgZGF0YSB0byByZWNlaXZlCisgKiBAcmV0dXJuIG51bWJlciBvZiBieXRlcyBhY3R1YWxseSByZWNlaXZlZAorICovCit1MzJfdCBzaW9fdHJ5cmVhZChzaW9fZmRfdCBmZCwgdThfdCogZGF0YSwgdTMyX3QgbGVuKQoreworICAvKiBAdG9kbzogaW1wbGVtZW50IG5vbi1ibG9ja2luZyByZWFkICovCisgIEJPT0wgcmV0OworICBEV09SRCBkd05iQnl0ZXNSZWFkZGVuID0gMDsKKyAgTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19yZWFkKCkuLi5cbiIpKTsKKyAgcmV0ID0gUmVhZEZpbGUoKEhBTkRMRSkoZmQpLCBkYXRhLCBsZW4sICZkd05iQnl0ZXNSZWFkZGVuLCBOVUxMKTsKKyAgTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb19yZWFkKCk9JWx1IGJ5dGVzIC0+ICVkXG4iLCBkd05iQnl0ZXNSZWFkZGVuLCByZXQpKTsKKyAgTFdJUF9VTlVTRURfQVJHKHJldCk7CisgIHJldHVybiBkd05iQnl0ZXNSZWFkZGVuOworfQorCisvKioKKyAqIFdyaXRlcyB0byB0aGUgc2VyaWFsIGRldmljZS4KKyAqCisgKiBAcGFyYW0gZmQgc2VyaWFsIGRldmljZSBoYW5kbGUKKyAqIEBwYXJhbSBkYXRhIHBvaW50ZXIgdG8gZGF0YSB0byBzZW5kCisgKiBAcGFyYW0gbGVuIGxlbmd0aCAoaW4gYnl0ZXMpIG9mIGRhdGEgdG8gc2VuZAorICogQHJldHVybiBudW1iZXIgb2YgYnl0ZXMgYWN0dWFsbHkgc2VudAorICoKKyAqIEBub3RlIFRoaXMgZnVuY3Rpb24gd2lsbCBibG9jayB1bnRpbCBhbGwgZGF0YSBjYW4gYmUgc2VudC4KKyAqLwordTMyX3Qgc2lvX3dyaXRlKHNpb19mZF90IGZkLCBjb25zdCB1OF90KiBkYXRhLCB1MzJfdCBsZW4pCit7CisgIEJPT0wgcmV0OworICBEV09SRCBkd05iQnl0ZXNXcml0dGVuID0gMDsKKyAgTFdJUF9ERUJVR0YoU0lPX0RFQlVHLCAoInNpb193cml0ZSgpLi4uXG4iKSk7CisgIHJldCA9IFdyaXRlRmlsZSgoSEFORExFKShmZCksIGRhdGEsIGxlbiwgJmR3TmJCeXRlc1dyaXR0ZW4sIE5VTEwpOworICBMV0lQX0RFQlVHRihTSU9fREVCVUcsICgic2lvX3dyaXRlKCk9JWx1IGJ5dGVzIC0+ICVkXG4iLCBkd05iQnl0ZXNXcml0dGVuLCByZXQpKTsKKyAgTFdJUF9VTlVTRURfQVJHKHJldCk7CisgIHJldHVybiBkd05iQnl0ZXNXcml0dGVuOworfQorCisvKioKKyAqIEFib3J0cyBhIGJsb2NraW5nIHNpb19yZWFkKCkgY2FsbC4KKyAqIEB0b2RvOiBUaGlzIGN1cnJlbnRseSBpZ25vcmVzIGZkIGFuZCBhYm9ydHMgYWxsIHJlYWRzCisgKgorICogQHBhcmFtIGZkIHNlcmlhbCBkZXZpY2UgaGFuZGxlCisgKi8KK3ZvaWQgc2lvX3JlYWRfYWJvcnQoc2lvX2ZkX3QgZmQpCit7CisgIExXSVBfVU5VU0VEX0FSRyhmZCk7CisgIExXSVBfREVCVUdGKFNJT19ERUJVRywgKCJzaW9fcmVhZF9hYm9ydCgpICEhISEhLi4uXG4iKSk7CisgIHNpb19hYm9ydCA9IDE7CisgIHJldHVybjsKK30KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9ydHMvd2luMzIvc3lzX2FyY2guYyBiL2NvbnRyaWIvcG9ydHMvd2luMzIvc3lzX2FyY2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NGY1Nzc1Ci0tLSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wb3J0cy93aW4zMi9zeXNfYXJjaC5jCkBAIC0wLDAgKzEsNzgyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMDMgU3dlZGlzaCBJbnN0aXR1dGUgb2YgQ29tcHV0ZXIgU2NpZW5jZS4KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogICAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKyAqICAgIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVAorICogU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVAorICogT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORworICogSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZCisgKiBPRiBTVUNIIERBTUFHRS4KKyAqCisgKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suCisgKgorICogQXV0aG9yOiBBZGFtIER1bmtlbHMgPGFkYW1Ac2ljcy5zZT4KKyAqICAgICAgICAgU2ltb24gR29sZHNjaG1pZHQKKyAqCisgKi8KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+IC8qIHNwcmludGYoKSBmb3IgdGFzayBuYW1lcyAqLworCisjaWZkZWYgX01TQ19WRVIKKyNwcmFnbWEgd2FybmluZyAocHVzaCwgMykKKyNlbmRpZgorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpZmRlZiBfTVNDX1ZFUgorI3ByYWdtYSB3YXJuaW5nIChwb3ApCisjZW5kaWYKKyNpbmNsdWRlIDx0aW1lLmg+CisKKyNpbmNsdWRlIDxsd2lwL29wdC5oPgorI2luY2x1ZGUgPGx3aXAvYXJjaC5oPgorI2luY2x1ZGUgPGx3aXAvc3RhdHMuaD4KKyNpbmNsdWRlIDxsd2lwL2RlYnVnLmg+CisjaW5jbHVkZSA8bHdpcC9zeXMuaD4KKyNpbmNsdWRlIDxsd2lwL3RjcGlwLmg+CisKKy8qKiBTZXQgdGhpcyB0byAxIHRvIGVuYWJsZSBhc3NlcnRpb24gY2hlY2tzIHRoYXQgU1lTX0FSQ0hfUFJPVEVDVCgpIGlzIG9ubHkKKyAqIGNhbGxlZCBvbmNlIGluIGEgY2FsbCBzdGFjayAoY2FsbGluZyBpdCBuZXN0ZWQgbWlnaHQgY2F1c2UgdHJvdWJsZSBpbiBzb21lCisgKiBpbXBsZW1lbnRhdGlvbnMsIHNvIGxldCdzIGF2b2lkIHRoaXMgaW4gY29yZSBjb2RlIGFzIGxvbmcgYXMgd2UgY2FuKS4KKyAqLworI2lmbmRlZiBMV0lQX1NZU19BUkNIX0NIRUNLX05FU1RFRF9QUk9URUNUCisjZGVmaW5lIExXSVBfU1lTX0FSQ0hfQ0hFQ0tfTkVTVEVEX1BST1RFQ1QgMQorI2VuZGlmCisKKy8qKiBTZXQgdGhpcyB0byAxIHRvIGVuYWJsZSBhc3NlcnRpb24gY2hlY2tzIHRoYXQgU1lTX0FSQ0hfUFJPVEVDVCgpIGlzICpub3QqCisgKiBjYWxsZWQgYmVmb3JlIGZ1bmN0aW9ucyBwb3RlbnRpb2xseSBpbnZvbHZpbmcgdGhlIE9TIHNjaGVkdWxlci4KKyAqCisgKiBUaGlzIHNjaGVtZSBpcyBjdXJyZW50bHkgYnJva2VuIG9ubHkgZm9yIG5vbi1jb3JlLWxvY2tpbmcgd2hlbiB3YWtpbmcgdXAKKyAqIHRocmVhZHMgd2FpdGluZyBvbiBhIHNvY2tldCB2aWEgc2VsZWN0L3BvbGwuCisgKi8KKyNpZm5kZWYgTFdJUF9TWVNfQVJDSF9DSEVDS19TQ0hFRFVMSU5HX1VOUFJPVEVDVEVECisjZGVmaW5lIExXSVBfU1lTX0FSQ0hfQ0hFQ0tfU0NIRURVTElOR19VTlBST1RFQ1RFRCBMV0lQX1RDUElQX0NPUkVfTE9DS0lORworI2VuZGlmCisKKyNkZWZpbmUgTFdJUF9XSU4zMl9TWVNfQVJDSF9FTkFCTEVfUFJPVEVDVF9DT1VOVEVSIChMV0lQX1NZU19BUkNIX0NIRUNLX05FU1RFRF9QUk9URUNUIHx8IExXSVBfU1lTX0FSQ0hfQ0hFQ0tfU0NIRURVTElOR19VTlBST1RFQ1RFRCkKKworLyogVGhlc2UgZnVuY3Rpb25zIGFyZSB1c2VkIGZyb20gTk9fU1lTIGFsc28sIGZvciBwcmVjaXNlIHRpbWVyIHRyaWdnZXJpbmcgKi8KK3N0YXRpYyBMQVJHRV9JTlRFR0VSIGZyZXEsIHN5c19zdGFydF90aW1lOworI2RlZmluZSBTWVNfSU5JVElBTElaRUQoKSAoZnJlcS5RdWFkUGFydCAhPSAwKQorCitzdGF0aWMgRFdPUkQgbmV0Y29ubl9zZW1fdGxzX2luZGV4OworCitzdGF0aWMgSENSWVBUUFJPViBoY3J5cHQ7CisKK3N0YXRpYyB2b2lkCitzeXNfd2luX3JhbmRfaW5pdCh2b2lkKQoreworICBpZiAoIUNyeXB0QWNxdWlyZUNvbnRleHQoJmhjcnlwdCwgTlVMTCwgTlVMTCwgUFJPVl9SU0FfRlVMTCwgMCkpIHsKKyAgICBEV09SRCBlcnIgPSBHZXRMYXN0RXJyb3IoKTsKKyAgICBMV0lQX1BMQVRGT1JNX0RJQUcoKCJDcnlwdEFjcXVpcmVDb250ZXh0IGZhaWxlZCB3aXRoIGVycm9yICVkLCB0cnlpbmcgdG8gY3JlYXRlIE5FV0tFWVNFVCIsIChpbnQpZXJyKSk7CisgICAgaWYoIUNyeXB0QWNxdWlyZUNvbnRleHQoJmhjcnlwdCwgTlVMTCwgTlVMTCwgUFJPVl9SU0FfRlVMTCwgQ1JZUFRfTkVXS0VZU0VUKSkgeworICAgICAgY2hhciBlcnJidWZbMTI4XTsKKyAgICAgIGVyciA9IEdldExhc3RFcnJvcigpOworICAgICAgc25wcmludGYoZXJyYnVmLCBzaXplb2YoZXJyYnVmKSwgIkNyeXB0QWNxdWlyZUNvbnRleHQgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCAoaW50KWVycik7CisgICAgICBMV0lQX1VOVVNFRF9BUkcoZXJyKTsKKyAgICAgIExXSVBfQVNTRVJUKGVycmJ1ZiwgMCk7CisgICAgfQorICB9Cit9CisKK3Vuc2lnbmVkIGludAorbHdpcF9wb3J0X3JhbmQodm9pZCkKK3sKKyAgdTMyX3QgcmV0OworICBpZiAoQ3J5cHRHZW5SYW5kb20oaGNyeXB0LCBzaXplb2YocmV0KSwgKEJZVEUqKSZyZXQpKSB7CisgICAgcmV0dXJuIHJldDsKKyAgfQorICAvKiBtYXliZSBDcnlwdEFjcXVpcmVDb250ZXh0IGhhcyBub3QgYmVlbiBjYWxsZWQuLi4gKi8KKyAgc3lzX3dpbl9yYW5kX2luaXQoKTsKKyAgaWYgKENyeXB0R2VuUmFuZG9tKGhjcnlwdCwgc2l6ZW9mKHJldCksIChCWVRFKikmcmV0KSkgeworICAgIHJldHVybiByZXQ7CisgIH0KKyAgTFdJUF9BU1NFUlQoIkNyeXB0R2VuUmFuZG9tIGZhaWxlZCIsIDApOworICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK3N5c19pbml0X3RpbWluZyh2b2lkKQoreworICBRdWVyeVBlcmZvcm1hbmNlRnJlcXVlbmN5KCZmcmVxKTsKKyAgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIoJnN5c19zdGFydF90aW1lKTsKK30KKworc3RhdGljIExPTkdMT05HCitzeXNfZ2V0X21zX2xvbmdsb25nKHZvaWQpCit7CisgIExPTkdMT05HIHJldDsKKyAgTEFSR0VfSU5URUdFUiBub3c7CisjaWYgTk9fU1lTCisgIGlmICghU1lTX0lOSVRJQUxJWkVEKCkpIHsKKyAgICBzeXNfaW5pdCgpOworICAgIExXSVBfQVNTRVJUKCJpbml0aWFsaXphdGlvbiBmYWlsZWQiLCBTWVNfSU5JVElBTElaRUQoKSk7CisgIH0KKyNlbmRpZiAvKiBOT19TWVMgKi8KKyAgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIoJm5vdyk7CisgIHJldCA9IG5vdy5RdWFkUGFydC1zeXNfc3RhcnRfdGltZS5RdWFkUGFydDsKKyAgcmV0dXJuICh1MzJfdCkoKChyZXQpKjEwMDApL2ZyZXEuUXVhZFBhcnQpOworfQorCit1MzJfdAorc3lzX2ppZmZpZXModm9pZCkKK3sKKyAgcmV0dXJuICh1MzJfdClzeXNfZ2V0X21zX2xvbmdsb25nKCk7Cit9CisKK3UzMl90CitzeXNfbm93KHZvaWQpCit7CisgIHUzMl90IG5vdyA9ICh1MzJfdClzeXNfZ2V0X21zX2xvbmdsb25nKCk7CisjaWZkZWYgTFdJUF9GVVpaX1NZU19OT1cKKyAgbm93ICs9IHN5c19ub3dfb2Zmc2V0OworI2VuZGlmCisgIHJldHVybiBub3c7Cit9CisKK0NSSVRJQ0FMX1NFQ1RJT04gY3JpdFNlYzsKKyNpZiBMV0lQX1dJTjMyX1NZU19BUkNIX0VOQUJMRV9QUk9URUNUX0NPVU5URVIKK3N0YXRpYyBpbnQgcHJvdGVjdGlvbl9kZXB0aDsKKyNlbmRpZgorCitzdGF0aWMgdm9pZAorSW5pdFN5c0FyY2hQcm90ZWN0KHZvaWQpCit7CisgIEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb24oJmNyaXRTZWMpOworfQorCitzeXNfcHJvdF90CitzeXNfYXJjaF9wcm90ZWN0KHZvaWQpCit7CisjaWYgTk9fU1lTCisgIGlmICghU1lTX0lOSVRJQUxJWkVEKCkpIHsKKyAgICBzeXNfaW5pdCgpOworICAgIExXSVBfQVNTRVJUKCJpbml0aWFsaXphdGlvbiBmYWlsZWQiLCBTWVNfSU5JVElBTElaRUQoKSk7CisgIH0KKyNlbmRpZgorICBFbnRlckNyaXRpY2FsU2VjdGlvbigmY3JpdFNlYyk7CisjaWYgTFdJUF9TWVNfQVJDSF9DSEVDS19ORVNURURfUFJPVEVDVAorICBMV0lQX0FTU0VSVCgibmVzdGVkIFNZU19BUkNIX1BST1RFQ1QiLCBwcm90ZWN0aW9uX2RlcHRoID09IDApOworI2VuZGlmCisjaWYgTFdJUF9XSU4zMl9TWVNfQVJDSF9FTkFCTEVfUFJPVEVDVF9DT1VOVEVSCisgIHByb3RlY3Rpb25fZGVwdGgrKzsKKyNlbmRpZgorICByZXR1cm4gMDsKK30KKwordm9pZAorc3lzX2FyY2hfdW5wcm90ZWN0KHN5c19wcm90X3QgcHZhbCkKK3sKKyAgTFdJUF9VTlVTRURfQVJHKHB2YWwpOworI2lmIExXSVBfU1lTX0FSQ0hfQ0hFQ0tfTkVTVEVEX1BST1RFQ1QKKyAgTFdJUF9BU1NFUlQoIm1pc3NpbmcgU1lTX0FSQ0hfUFJPVEVDVCIsIHByb3RlY3Rpb25fZGVwdGggPT0gMSk7CisjZWxzZQorICBMV0lQX0FTU0VSVCgibWlzc2luZyBTWVNfQVJDSF9QUk9URUNUIiwgcHJvdGVjdGlvbl9kZXB0aCA+IDApOworI2VuZGlmCisjaWYgTFdJUF9XSU4zMl9TWVNfQVJDSF9FTkFCTEVfUFJPVEVDVF9DT1VOVEVSCisgIHByb3RlY3Rpb25fZGVwdGgtLTsKKyNlbmRpZgorICBMZWF2ZUNyaXRpY2FsU2VjdGlvbigmY3JpdFNlYyk7Cit9CisKKyNpZiBMV0lQX1NZU19BUkNIX0NIRUNLX1NDSEVEVUxJTkdfVU5QUk9URUNURUQKKy8qKiBUaGlzIGNoZWNrcyB0aGF0IFNZU19BUkNIX1BST1RFQ1QoKSBoYXNuJ3QgYmVlbiBjYWxsZWQgYnkgcHJvdGVjdGluZworICogYW5kIHRoZW4gY2hlY2tpbmcgdGhlIGxldmVsCisgKi8KK3N0YXRpYyB2b2lkCitzeXNfYXJjaF9jaGVja19ub3RfcHJvdGVjdGVkKHZvaWQpCit7CisgIHN5c19hcmNoX3Byb3RlY3QoKTsKKyAgTFdJUF9BU1NFUlQoIlNZU19BUkNIX1BST1RFQ1QgYmVmb3JlIHNjaGVkdWxpbmciLCBwcm90ZWN0aW9uX2RlcHRoID09IDEpOworICBzeXNfYXJjaF91bnByb3RlY3QoMCk7Cit9CisjZWxzZQorI2RlZmluZSBzeXNfYXJjaF9jaGVja19ub3RfcHJvdGVjdGVkKCkKKyNlbmRpZgorCitzdGF0aWMgdm9pZAorbXN2Y19zeXNfaW5pdCh2b2lkKQoreworICBzeXNfd2luX3JhbmRfaW5pdCgpOworICBzeXNfaW5pdF90aW1pbmcoKTsKKyAgSW5pdFN5c0FyY2hQcm90ZWN0KCk7CisgIG5ldGNvbm5fc2VtX3Rsc19pbmRleCA9IFRsc0FsbG9jKCk7CisgIExXSVBfQVNTRVJUKCJUbHNBbGxvYyBmYWlsZWQiLCBuZXRjb25uX3NlbV90bHNfaW5kZXggIT0gVExTX09VVF9PRl9JTkRFWEVTKTsKK30KKwordm9pZAorc3lzX2luaXQodm9pZCkKK3sKKyAgbXN2Y19zeXNfaW5pdCgpOworfQorCisjaWYgIU5PX1NZUworCitzdHJ1Y3QgdGhyZWFkbGlzdCB7CisgIGx3aXBfdGhyZWFkX2ZuIGZ1bmN0aW9uOworICB2b2lkICphcmc7CisgIERXT1JEIGlkOworICBzdHJ1Y3QgdGhyZWFkbGlzdCAqbmV4dDsKK307CisKK3N0YXRpYyBzdHJ1Y3QgdGhyZWFkbGlzdCAqbHdpcF93aW4zMl90aHJlYWRzID0gTlVMTDsKKworZXJyX3QKK3N5c19zZW1fbmV3KHN5c19zZW1fdCAqc2VtLCB1OF90IGNvdW50KQoreworICBIQU5ETEUgbmV3X3NlbSA9IE5VTEw7CisKKyAgTFdJUF9BU1NFUlQoInNlbSAhPSBOVUxMIiwgc2VtICE9IE5VTEwpOworCisgIG5ld19zZW0gPSBDcmVhdGVTZW1hcGhvcmUoMCwgY291bnQsIDEwMDAwMCwgMCk7CisgIExXSVBfQVNTRVJUKCJFcnJvciBjcmVhdGluZyBzZW1hcGhvcmUiLCBuZXdfc2VtICE9IE5VTEwpOworICBpZihuZXdfc2VtICE9IE5VTEwpIHsKKyAgICBpZiAoU1lTX0lOSVRJQUxJWkVEKCkpIHsKKyAgICAgIFNZU19BUkNIX0xPQ0tFRChTWVNfU1RBVFNfSU5DX1VTRUQoc2VtKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIFNZU19TVEFUU19JTkNfVVNFRChzZW0pOworICAgIH0KKyNpZiBMV0lQX1NUQVRTICYmIFNZU19TVEFUUworICAgIExXSVBfQVNTRVJUKCJzeXNfc2VtX25ldygpIGNvdW50ZXIgb3ZlcmZsb3ciLCBsd2lwX3N0YXRzLnN5cy5zZW0udXNlZCAhPSAwKTsKKyNlbmRpZiAvKiBMV0lQX1NUQVRTICYmIFNZU19TVEFUUyovCisgICAgc2VtLT5zZW0gPSBuZXdfc2VtOworICAgIHJldHVybiBFUlJfT0s7CisgIH0KKworICAvKiBmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5Li4uICovCisgIGlmIChTWVNfSU5JVElBTElaRUQoKSkgeworICAgIFNZU19BUkNIX0xPQ0tFRChTWVNfU1RBVFNfSU5DKHNlbS5lcnIpKTsKKyAgfSBlbHNlIHsKKyAgICBTWVNfU1RBVFNfSU5DKHNlbS5lcnIpOworICB9CisgIHNlbS0+c2VtID0gTlVMTDsKKyAgcmV0dXJuIEVSUl9NRU07Cit9CisKK3ZvaWQKK3N5c19zZW1fZnJlZShzeXNfc2VtX3QgKnNlbSkKK3sKKyAgLyogcGFyYW1ldGVyIGNoZWNrICovCisgIExXSVBfQVNTRVJUKCJzZW0gIT0gTlVMTCIsIHNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInNlbS0+c2VtICE9IE5VTEwiLCBzZW0tPnNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInNlbS0+c2VtICE9IElOVkFMSURfSEFORExFX1ZBTFVFIiwgc2VtLT5zZW0gIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpOworICBDbG9zZUhhbmRsZShzZW0tPnNlbSk7CisKKyAgU1lTX0FSQ0hfTE9DS0VEKFNZU19TVEFUU19ERUMoc2VtLnVzZWQpKTsKKyNpZiBMV0lQX1NUQVRTICYmIFNZU19TVEFUUworICBMV0lQX0FTU0VSVCgic3lzX3NlbV9mcmVlKCkgY2xvc2VkIG1vcmUgdGhhbiBjcmVhdGVkIiwgbHdpcF9zdGF0cy5zeXMuc2VtLnVzZWQgIT0gKHUxNl90KS0xKTsKKyNlbmRpZiAvKiBMV0lQX1NUQVRTICYmIFNZU19TVEFUUyAqLworICBzZW0tPnNlbSA9IE5VTEw7Cit9CisKK3UzMl90CitzeXNfYXJjaF9zZW1fd2FpdChzeXNfc2VtX3QgKnNlbSwgdTMyX3QgdGltZW91dCkKK3sKKyAgRFdPUkQgcmV0OworICBMT05HTE9ORyBzdGFydHRpbWUsIGVuZHRpbWU7CisgIExXSVBfQVNTRVJUKCJzZW0gIT0gTlVMTCIsIHNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInNlbS0+c2VtICE9IE5VTEwiLCBzZW0tPnNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInNlbS0+c2VtICE9IElOVkFMSURfSEFORExFX1ZBTFVFIiwgc2VtLT5zZW0gIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpOworICBpZiAoIXRpbWVvdXQpIHsKKyAgICAvKiB3YWl0IGluZmluaXRlICovCisgICAgc3RhcnR0aW1lID0gc3lzX2dldF9tc19sb25nbG9uZygpOworICAgIHJldCA9IFdhaXRGb3JTaW5nbGVPYmplY3Qoc2VtLT5zZW0sIElORklOSVRFKTsKKyAgICBMV0lQX0FTU0VSVCgiRXJyb3Igd2FpdGluZyBmb3Igc2VtYXBob3JlIiwgcmV0ID09IFdBSVRfT0JKRUNUXzApOworICAgIGVuZHRpbWUgPSBzeXNfZ2V0X21zX2xvbmdsb25nKCk7CisgICAgLyogcmV0dXJuIHRoZSB0aW1lIHdlIHdhaXRlZCBmb3IgdGhlIHNlbSAqLworICAgIHJldHVybiAodTMyX3QpKGVuZHRpbWUgLSBzdGFydHRpbWUpOworICB9IGVsc2UgeworICAgIHN0YXJ0dGltZSA9IHN5c19nZXRfbXNfbG9uZ2xvbmcoKTsKKyAgICByZXQgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0KHNlbS0+c2VtLCB0aW1lb3V0KTsKKyAgICBMV0lQX0FTU0VSVCgiRXJyb3Igd2FpdGluZyBmb3Igc2VtYXBob3JlIiwgKHJldCA9PSBXQUlUX09CSkVDVF8wKSB8fCAocmV0ID09IFdBSVRfVElNRU9VVCkpOworICAgIGlmIChyZXQgPT0gV0FJVF9PQkpFQ1RfMCkgeworICAgICAgZW5kdGltZSA9IHN5c19nZXRfbXNfbG9uZ2xvbmcoKTsKKyAgICAgIC8qIHJldHVybiB0aGUgdGltZSB3ZSB3YWl0ZWQgZm9yIHRoZSBzZW0gKi8KKyAgICAgIHJldHVybiAodTMyX3QpKGVuZHRpbWUgLSBzdGFydHRpbWUpOworICAgIH0gZWxzZSB7CisgICAgICAvKiB0aW1lb3V0ICovCisgICAgICByZXR1cm4gU1lTX0FSQ0hfVElNRU9VVDsKKyAgICB9CisgIH0KK30KKwordm9pZAorc3lzX3NlbV9zaWduYWwoc3lzX3NlbV90ICpzZW0pCit7CisgIEJPT0wgcmV0OworICBzeXNfYXJjaF9jaGVja19ub3RfcHJvdGVjdGVkKCk7CisgIExXSVBfQVNTRVJUKCJzZW0gIT0gTlVMTCIsIHNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInNlbS0+c2VtICE9IE5VTEwiLCBzZW0tPnNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInNlbS0+c2VtICE9IElOVkFMSURfSEFORExFX1ZBTFVFIiwgc2VtLT5zZW0gIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpOworICByZXQgPSBSZWxlYXNlU2VtYXBob3JlKHNlbS0+c2VtLCAxLCBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoIkVycm9yIHJlbGVhc2luZyBzZW1hcGhvcmUiLCByZXQgIT0gMCk7CisgIExXSVBfVU5VU0VEX0FSRyhyZXQpOworfQorCitlcnJfdAorc3lzX211dGV4X25ldyhzeXNfbXV0ZXhfdCAqbXV0ZXgpCit7CisgIEhBTkRMRSBuZXdfbXV0ID0gTlVMTDsKKworICBMV0lQX0FTU0VSVCgibXV0ZXggIT0gTlVMTCIsIG11dGV4ICE9IE5VTEwpOworCisgIG5ld19tdXQgPSBDcmVhdGVNdXRleChOVUxMLCBGQUxTRSwgTlVMTCk7CisgIExXSVBfQVNTRVJUKCJFcnJvciBjcmVhdGluZyBtdXRleCIsIG5ld19tdXQgIT0gTlVMTCk7CisgIGlmIChuZXdfbXV0ICE9IE5VTEwpIHsKKyAgICBTWVNfQVJDSF9MT0NLRUQoU1lTX1NUQVRTX0lOQ19VU0VEKG11dGV4KSk7CisjaWYgTFdJUF9TVEFUUyAmJiBTWVNfU1RBVFMKKyAgICBMV0lQX0FTU0VSVCgic3lzX211dGV4X25ldygpIGNvdW50ZXIgb3ZlcmZsb3ciLCBsd2lwX3N0YXRzLnN5cy5tdXRleC51c2VkICE9IDApOworI2VuZGlmIC8qIExXSVBfU1RBVFMgJiYgU1lTX1NUQVRTKi8KKyAgICBtdXRleC0+bXV0ID0gbmV3X211dDsKKyAgICByZXR1cm4gRVJSX09LOworICB9CisKKyAgLyogZmFpbGVkIHRvIGFsbG9jYXRlIG1lbW9yeS4uLiAqLworICBTWVNfQVJDSF9MT0NLRUQoU1lTX1NUQVRTX0lOQyhtdXRleC5lcnIpKTsKKyAgbXV0ZXgtPm11dCA9IE5VTEw7CisgIHJldHVybiBFUlJfTUVNOworfQorCit2b2lkCitzeXNfbXV0ZXhfZnJlZShzeXNfbXV0ZXhfdCAqbXV0ZXgpCit7CisgIC8qIHBhcmFtZXRlciBjaGVjayAqLworICBMV0lQX0FTU0VSVCgibXV0ZXggIT0gTlVMTCIsIG11dGV4ICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgibXV0ZXgtPm11dCAhPSBOVUxMIiwgbXV0ZXgtPm11dCAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoIm11dGV4LT5tdXQgIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUiLCBtdXRleC0+bXV0ICE9IElOVkFMSURfSEFORExFX1ZBTFVFKTsKKyAgQ2xvc2VIYW5kbGUobXV0ZXgtPm11dCk7CisKKyAgU1lTX0FSQ0hfTE9DS0VEKFNZU19TVEFUU19ERUMobXV0ZXgudXNlZCkpOworI2lmIExXSVBfU1RBVFMgJiYgU1lTX1NUQVRTCisgIExXSVBfQVNTRVJUKCJzeXNfbXV0ZXhfZnJlZSgpIGNsb3NlZCBtb3JlIHRoYW4gY3JlYXRlZCIsIGx3aXBfc3RhdHMuc3lzLm11dGV4LnVzZWQgIT0gKHUxNl90KS0xKTsKKyNlbmRpZiAvKiBMV0lQX1NUQVRTICYmIFNZU19TVEFUUyAqLworICBtdXRleC0+bXV0ID0gTlVMTDsKK30KKwordm9pZCBzeXNfbXV0ZXhfbG9jayhzeXNfbXV0ZXhfdCAqbXV0ZXgpCit7CisgIERXT1JEIHJldDsKKyAgTFdJUF9BU1NFUlQoIm11dGV4ICE9IE5VTEwiLCBtdXRleCAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoIm11dGV4LT5tdXQgIT0gTlVMTCIsIG11dGV4LT5tdXQgIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJtdXRleC0+bXV0ICE9IElOVkFMSURfSEFORExFX1ZBTFVFIiwgbXV0ZXgtPm11dCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSk7CisgIC8qIHdhaXQgaW5maW5pdGUgKi8KKyAgcmV0ID0gV2FpdEZvclNpbmdsZU9iamVjdChtdXRleC0+bXV0LCBJTkZJTklURSk7CisgIExXSVBfQVNTRVJUKCJFcnJvciB3YWl0aW5nIGZvciBtdXRleCIsIHJldCA9PSBXQUlUX09CSkVDVF8wKTsKKyAgTFdJUF9VTlVTRURfQVJHKHJldCk7Cit9CisKK3ZvaWQKK3N5c19tdXRleF91bmxvY2soc3lzX211dGV4X3QgKm11dGV4KQoreworICBzeXNfYXJjaF9jaGVja19ub3RfcHJvdGVjdGVkKCk7CisgIExXSVBfQVNTRVJUKCJtdXRleCAhPSBOVUxMIiwgbXV0ZXggIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJtdXRleC0+bXV0ICE9IE5VTEwiLCBtdXRleC0+bXV0ICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgibXV0ZXgtPm11dCAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSIsIG11dGV4LT5tdXQgIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpOworICAvKiB3YWl0IGluZmluaXRlICovCisgIGlmICghUmVsZWFzZU11dGV4KG11dGV4LT5tdXQpKSB7CisgICAgTFdJUF9BU1NFUlQoIkVycm9yIHJlbGVhc2luZyBtdXRleCIsIDApOworICB9Cit9CisKKworI2lmZGVmIF9NU0NfVkVSCitjb25zdCBEV09SRCBNU19WQ19FWENFUFRJT049MHg0MDZEMTM4ODsKKyNwcmFnbWEgcGFjayhwdXNoLDgpCit0eXBlZGVmIHN0cnVjdCB0YWdUSFJFQUROQU1FX0lORk8KK3sKKyAgRFdPUkQgZHdUeXBlOyAvKiBNdXN0IGJlIDB4MTAwMC4gKi8KKyAgTFBDU1RSIHN6TmFtZTsgLyogUG9pbnRlciB0byBuYW1lIChpbiB1c2VyIGFkZHIgc3BhY2UpLiAqLworICBEV09SRCBkd1RocmVhZElEOyAvKiBUaHJlYWQgSUQgKC0xPWNhbGxlciB0aHJlYWQpLiAqLworICBEV09SRCBkd0ZsYWdzOyAvKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSwgbXVzdCBiZSB6ZXJvLiAqLworfSBUSFJFQUROQU1FX0lORk87CisjcHJhZ21hIHBhY2socG9wKQorCitzdGF0aWMgdm9pZAorU2V0VGhyZWFkTmFtZShEV09SRCBkd1RocmVhZElELCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKQoreworICBUSFJFQUROQU1FX0lORk8gaW5mbzsKKyAgaW5mby5kd1R5cGUgPSAweDEwMDA7CisgIGluZm8uc3pOYW1lID0gdGhyZWFkTmFtZTsKKyAgaW5mby5kd1RocmVhZElEID0gZHdUaHJlYWRJRDsKKyAgaW5mby5kd0ZsYWdzID0gMDsKKworICBfX3RyeSB7CisgICAgUmFpc2VFeGNlcHRpb24oTVNfVkNfRVhDRVBUSU9OLCAwLCBzaXplb2YoaW5mbykvc2l6ZW9mKFVMT05HX1BUUiksIChVTE9OR19QVFIqKSZpbmZvKTsKKyAgfQorICBfX2V4Y2VwdChFWENFUFRJT05fRVhFQ1VURV9IQU5ETEVSKSB7CisgIH0KK30KKyNlbHNlIC8qIF9NU0NfVkVSICovCitzdGF0aWMgdm9pZAorU2V0VGhyZWFkTmFtZShEV09SRCBkd1RocmVhZElELCBjb25zdCBjaGFyKiB0aHJlYWROYW1lKQoreworICBMV0lQX1VOVVNFRF9BUkcoZHdUaHJlYWRJRCk7CisgIExXSVBfVU5VU0VEX0FSRyh0aHJlYWROYW1lKTsKK30KKyNlbmRpZiAvKiBfTVNDX1ZFUiAqLworCitzdGF0aWMgRFdPUkQgV0lOQVBJCitzeXNfdGhyZWFkX2Z1bmN0aW9uKHZvaWQqIGFyZykKK3sKKyAgc3RydWN0IHRocmVhZGxpc3QqIHQgPSAoc3RydWN0IHRocmVhZGxpc3QqKWFyZzsKKyNpZiBMV0lQX05FVENPTk5fU0VNX1BFUl9USFJFQUQKKyAgc3lzX2FyY2hfbmV0Y29ubl9zZW1fYWxsb2MoKTsKKyNlbmRpZgorICB0LT5mdW5jdGlvbih0LT5hcmcpOworI2lmIExXSVBfTkVUQ09OTl9TRU1fUEVSX1RIUkVBRAorICBzeXNfYXJjaF9uZXRjb25uX3NlbV9mcmVlKCk7CisjZW5kaWYKKyAgcmV0dXJuIDA7Cit9CisKK3N5c190aHJlYWRfdAorc3lzX3RocmVhZF9uZXcoY29uc3QgY2hhciAqbmFtZSwgbHdpcF90aHJlYWRfZm4gZnVuY3Rpb24sIHZvaWQgKmFyZywgaW50IHN0YWNrc2l6ZSwgaW50IHByaW8pCit7CisgIHN0cnVjdCB0aHJlYWRsaXN0ICpuZXdfdGhyZWFkOworICBIQU5ETEUgaDsKKyAgU1lTX0FSQ0hfREVDTF9QUk9URUNUKGxldik7CisKKyAgTFdJUF9VTlVTRURfQVJHKG5hbWUpOworICBMV0lQX1VOVVNFRF9BUkcoc3RhY2tzaXplKTsKKyAgTFdJUF9VTlVTRURfQVJHKHByaW8pOworCisgIG5ld190aHJlYWQgPSAoc3RydWN0IHRocmVhZGxpc3QqKW1hbGxvYyhzaXplb2Yoc3RydWN0IHRocmVhZGxpc3QpKTsKKyAgTFdJUF9BU1NFUlQoIm5ld190aHJlYWQgIT0gTlVMTCIsIG5ld190aHJlYWQgIT0gTlVMTCk7CisgIGlmIChuZXdfdGhyZWFkICE9IE5VTEwpIHsKKyAgICBuZXdfdGhyZWFkLT5mdW5jdGlvbiA9IGZ1bmN0aW9uOworICAgIG5ld190aHJlYWQtPmFyZyA9IGFyZzsKKyAgICBTWVNfQVJDSF9QUk9URUNUKGxldik7CisgICAgbmV3X3RocmVhZC0+bmV4dCA9IGx3aXBfd2luMzJfdGhyZWFkczsKKyAgICBsd2lwX3dpbjMyX3RocmVhZHMgPSBuZXdfdGhyZWFkOworCisgICAgaCA9IENyZWF0ZVRocmVhZCgwLCAwLCBzeXNfdGhyZWFkX2Z1bmN0aW9uLCBuZXdfdGhyZWFkLCAwLCAmKG5ld190aHJlYWQtPmlkKSk7CisgICAgTFdJUF9BU1NFUlQoImggIT0gMCIsIGggIT0gMCk7CisgICAgTFdJUF9BU1NFUlQoImggIT0gLTEiLCBoICE9IElOVkFMSURfSEFORExFX1ZBTFVFKTsKKyAgICBMV0lQX1VOVVNFRF9BUkcoaCk7CisgICAgU2V0VGhyZWFkTmFtZShuZXdfdGhyZWFkLT5pZCwgbmFtZSk7CisKKyAgICBTWVNfQVJDSF9VTlBST1RFQ1QobGV2KTsKKyAgICByZXR1cm4gbmV3X3RocmVhZC0+aWQ7CisgIH0KKyAgcmV0dXJuIDA7Cit9CisKKyNpZiAhTk9fU1lTCisjaWYgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkcKKworc3RhdGljIERXT1JEIGx3aXBfY29yZV9sb2NrX2hvbGRlcl90aHJlYWRfaWQ7CisKK3ZvaWQKK3N5c19sb2NrX3RjcGlwX2NvcmUodm9pZCkKK3sKKyAgc3lzX211dGV4X2xvY2soJmxvY2tfdGNwaXBfY29yZSk7CisgIGx3aXBfY29yZV9sb2NrX2hvbGRlcl90aHJlYWRfaWQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsKK30KKwordm9pZAorc3lzX3VubG9ja190Y3BpcF9jb3JlKHZvaWQpCit7CisgIGx3aXBfY29yZV9sb2NrX2hvbGRlcl90aHJlYWRfaWQgPSAwOworICBzeXNfbXV0ZXhfdW5sb2NrKCZsb2NrX3RjcGlwX2NvcmUpOworfQorI2VuZGlmIC8qIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HICovCisKK3N0YXRpYyBEV09SRCBsd2lwX3RjcGlwX3RocmVhZF9pZDsKKwordm9pZAorc3lzX21hcmtfdGNwaXBfdGhyZWFkKHZvaWQpCit7CisgIGx3aXBfdGNwaXBfdGhyZWFkX2lkID0gR2V0Q3VycmVudFRocmVhZElkKCk7Cit9CisKK3ZvaWQKK3N5c19jaGVja19jb3JlX2xvY2tpbmcodm9pZCkKK3sKKyAgLyogRW1iZWRkZWQgc3lzdGVtcyBzaG91bGQgY2hlY2sgd2UgYXJlIE5PVCBpbiBhbiBpbnRlcnJ1cHQgY29udGV4dCBoZXJlICovCisKKyAgaWYgKGx3aXBfdGNwaXBfdGhyZWFkX2lkICE9IDApIHsKKyAgICBEV09SRCBjdXJyZW50X3RocmVhZF9pZCA9IEdldEN1cnJlbnRUaHJlYWRJZCgpOworCisjaWYgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkcKKyAgICBMV0lQX0FTU0VSVCgiRnVuY3Rpb24gY2FsbGVkIHdpdGhvdXQgY29yZSBsb2NrIiwgY3VycmVudF90aHJlYWRfaWQgPT0gbHdpcF9jb3JlX2xvY2tfaG9sZGVyX3RocmVhZF9pZCk7CisjZWxzZSAvKiBMV0lQX1RDUElQX0NPUkVfTE9DS0lORyAqLworICAgIExXSVBfQVNTRVJUKCJGdW5jdGlvbiBjYWxsZWQgZnJvbSB3cm9uZyB0aHJlYWQiLCBjdXJyZW50X3RocmVhZF9pZCA9PSBsd2lwX3RjcGlwX3RocmVhZF9pZCk7CisjZW5kaWYgLyogTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkcgKi8KKyAgICBMV0lQX1VOVVNFRF9BUkcoY3VycmVudF90aHJlYWRfaWQpOyAvKiBmb3IgTFdJUF9OT0FTU0VSVCAqLworICB9Cit9CisjZW5kaWYgLyogIU5PX1NZUyAqLworCitlcnJfdAorc3lzX21ib3hfbmV3KHN5c19tYm94X3QgKm1ib3gsIGludCBzaXplKQoreworICBMV0lQX0FTU0VSVCgibWJveCAhPSBOVUxMIiwgbWJveCAhPSBOVUxMKTsKKyAgTFdJUF9VTlVTRURfQVJHKHNpemUpOworCisgIG1ib3gtPnNlbSA9IENyZWF0ZVNlbWFwaG9yZSgwLCAwLCBNQVhfUVVFVUVfRU5UUklFUywgMCk7CisgIExXSVBfQVNTRVJUKCJFcnJvciBjcmVhdGluZyBzZW1hcGhvcmUiLCBtYm94LT5zZW0gIT0gTlVMTCk7CisgIGlmIChtYm94LT5zZW0gPT0gTlVMTCkgeworICAgIFNZU19BUkNIX0xPQ0tFRChTWVNfU1RBVFNfSU5DKG1ib3guZXJyKSk7CisgICAgcmV0dXJuIEVSUl9NRU07CisgIH0KKyAgbWVtc2V0KCZtYm94LT5xX21lbSwgMCwgc2l6ZW9mKHUzMl90KSpNQVhfUVVFVUVfRU5UUklFUyk7CisgIG1ib3gtPmhlYWQgPSAwOworICBtYm94LT50YWlsID0gMDsKKyAgU1lTX0FSQ0hfTE9DS0VEKFNZU19TVEFUU19JTkNfVVNFRChtYm94KSk7CisjaWYgTFdJUF9TVEFUUyAmJiBTWVNfU1RBVFMKKyAgTFdJUF9BU1NFUlQoInN5c19tYm94X25ldygpIGNvdW50ZXIgb3ZlcmZsb3ciLCBsd2lwX3N0YXRzLnN5cy5tYm94LnVzZWQgIT0gMCk7CisjZW5kaWYgLyogTFdJUF9TVEFUUyAmJiBTWVNfU1RBVFMgKi8KKyAgcmV0dXJuIEVSUl9PSzsKK30KKwordm9pZAorc3lzX21ib3hfZnJlZShzeXNfbWJveF90ICptYm94KQoreworICAvKiBwYXJhbWV0ZXIgY2hlY2sgKi8KKyAgTFdJUF9BU1NFUlQoIm1ib3ggIT0gTlVMTCIsIG1ib3ggIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJtYm94LT5zZW0gIT0gTlVMTCIsIG1ib3gtPnNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoIm1ib3gtPnNlbSAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSIsIG1ib3gtPnNlbSAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSk7CisKKyAgQ2xvc2VIYW5kbGUobWJveC0+c2VtKTsKKworICBTWVNfU1RBVFNfREVDKG1ib3gudXNlZCk7CisjaWYgTFdJUF9TVEFUUyAmJiBTWVNfU1RBVFMKKyAgTFdJUF9BU1NFUlQoICJzeXNfbWJveF9mcmVlKCkgIiwgbHdpcF9zdGF0cy5zeXMubWJveC51c2VkICE9ICh1MTZfdCktMSk7CisjZW5kaWYgLyogTFdJUF9TVEFUUyAmJiBTWVNfU1RBVFMgKi8KKyAgbWJveC0+c2VtID0gTlVMTDsKK30KKwordm9pZAorc3lzX21ib3hfcG9zdChzeXNfbWJveF90ICpxLCB2b2lkICptc2cpCit7CisgIEJPT0wgcmV0OworICBTWVNfQVJDSF9ERUNMX1BST1RFQ1QobGV2KTsKKyAgc3lzX2FyY2hfY2hlY2tfbm90X3Byb3RlY3RlZCgpOworCisgIC8qIHBhcmFtZXRlciBjaGVjayAqLworICBMV0lQX0FTU0VSVCgicSAhPSBTWVNfTUJPWF9OVUxMIiwgcSAhPSBTWVNfTUJPWF9OVUxMKTsKKyAgTFdJUF9BU1NFUlQoInEtPnNlbSAhPSBOVUxMIiwgcS0+c2VtICE9IE5VTEwpOworICBMV0lQX0FTU0VSVCgicS0+c2VtICE9IElOVkFMSURfSEFORExFX1ZBTFVFIiwgcS0+c2VtICE9IElOVkFMSURfSEFORExFX1ZBTFVFKTsKKworICBTWVNfQVJDSF9QUk9URUNUKGxldik7CisgIHEtPnFfbWVtW3EtPmhlYWRdID0gbXNnOworICBxLT5oZWFkKys7CisgIGlmIChxLT5oZWFkID49IE1BWF9RVUVVRV9FTlRSSUVTKSB7CisgICAgcS0+aGVhZCA9IDA7CisgIH0KKyAgTFdJUF9BU1NFUlQoIm1ib3ggaXMgZnVsbCEiLCBxLT5oZWFkICE9IHEtPnRhaWwpOworICByZXQgPSBSZWxlYXNlU2VtYXBob3JlKHEtPnNlbSwgMSwgMCk7CisgIExXSVBfQVNTRVJUKCJFcnJvciByZWxlYXNpbmcgc2VtIiwgcmV0ICE9IDApOworICBMV0lQX1VOVVNFRF9BUkcocmV0KTsKKworICBTWVNfQVJDSF9VTlBST1RFQ1QobGV2KTsKK30KKworZXJyX3QKK3N5c19tYm94X3RyeXBvc3Qoc3lzX21ib3hfdCAqcSwgdm9pZCAqbXNnKQoreworICB1MzJfdCBuZXdfaGVhZDsKKyAgQk9PTCByZXQ7CisgIFNZU19BUkNIX0RFQ0xfUFJPVEVDVChsZXYpOworICBzeXNfYXJjaF9jaGVja19ub3RfcHJvdGVjdGVkKCk7CisKKyAgLyogcGFyYW1ldGVyIGNoZWNrICovCisgIExXSVBfQVNTRVJUKCJxICE9IFNZU19NQk9YX05VTEwiLCBxICE9IFNZU19NQk9YX05VTEwpOworICBMV0lQX0FTU0VSVCgicS0+c2VtICE9IE5VTEwiLCBxLT5zZW0gIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJxLT5zZW0gIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUiLCBxLT5zZW0gIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpOworCisgIFNZU19BUkNIX1BST1RFQ1QobGV2KTsKKworICBuZXdfaGVhZCA9IHEtPmhlYWQgKyAxOworICBpZiAobmV3X2hlYWQgPj0gTUFYX1FVRVVFX0VOVFJJRVMpIHsKKyAgICBuZXdfaGVhZCA9IDA7CisgIH0KKyAgaWYgKG5ld19oZWFkID09IHEtPnRhaWwpIHsKKyAgICBTWVNfQVJDSF9VTlBST1RFQ1QobGV2KTsKKyAgICByZXR1cm4gRVJSX01FTTsKKyAgfQorCisgIHEtPnFfbWVtW3EtPmhlYWRdID0gbXNnOworICBxLT5oZWFkID0gbmV3X2hlYWQ7CisgIExXSVBfQVNTRVJUKCJtYm94IGlzIGZ1bGwhIiwgcS0+aGVhZCAhPSBxLT50YWlsKTsKKyAgcmV0ID0gUmVsZWFzZVNlbWFwaG9yZShxLT5zZW0sIDEsIDApOworICBMV0lQX0FTU0VSVCgiRXJyb3IgcmVsZWFzaW5nIHNlbSIsIHJldCAhPSAwKTsKKyAgTFdJUF9VTlVTRURfQVJHKHJldCk7CisKKyAgU1lTX0FSQ0hfVU5QUk9URUNUKGxldik7CisgIHJldHVybiBFUlJfT0s7Cit9CisKK2Vycl90CitzeXNfbWJveF90cnlwb3N0X2Zyb21pc3Ioc3lzX21ib3hfdCAqcSwgdm9pZCAqbXNnKQoreworICByZXR1cm4gc3lzX21ib3hfdHJ5cG9zdChxLCBtc2cpOworfQorCit1MzJfdAorc3lzX2FyY2hfbWJveF9mZXRjaChzeXNfbWJveF90ICpxLCB2b2lkICoqbXNnLCB1MzJfdCB0aW1lb3V0KQoreworICBEV09SRCByZXQ7CisgIExPTkdMT05HIHN0YXJ0dGltZSwgZW5kdGltZTsKKyAgU1lTX0FSQ0hfREVDTF9QUk9URUNUKGxldik7CisKKyAgLyogcGFyYW1ldGVyIGNoZWNrICovCisgIExXSVBfQVNTRVJUKCJxICE9IFNZU19NQk9YX05VTEwiLCBxICE9IFNZU19NQk9YX05VTEwpOworICBMV0lQX0FTU0VSVCgicS0+c2VtICE9IE5VTEwiLCBxLT5zZW0gIT0gTlVMTCk7CisgIExXSVBfQVNTRVJUKCJxLT5zZW0gIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUiLCBxLT5zZW0gIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpOworCisgIGlmICh0aW1lb3V0ID09IDApIHsKKyAgICB0aW1lb3V0ID0gSU5GSU5JVEU7CisgIH0KKyAgc3RhcnR0aW1lID0gc3lzX2dldF9tc19sb25nbG9uZygpOworICByZXQgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0KHEtPnNlbSwgdGltZW91dCk7CisgIGlmIChyZXQgPT0gV0FJVF9PQkpFQ1RfMCkgeworICAgIFNZU19BUkNIX1BST1RFQ1QobGV2KTsKKyAgICBpZiAobXNnICE9IE5VTEwpIHsKKyAgICAgICptc2cgID0gcS0+cV9tZW1bcS0+dGFpbF07CisgICAgfQorCisgICAgcS0+dGFpbCsrOworICAgIGlmIChxLT50YWlsID49IE1BWF9RVUVVRV9FTlRSSUVTKSB7CisgICAgICBxLT50YWlsID0gMDsKKyAgICB9CisgICAgU1lTX0FSQ0hfVU5QUk9URUNUKGxldik7CisgICAgZW5kdGltZSA9IHN5c19nZXRfbXNfbG9uZ2xvbmcoKTsKKyAgICByZXR1cm4gKHUzMl90KShlbmR0aW1lIC0gc3RhcnR0aW1lKTsKKyAgfSBlbHNlIHsKKyAgICBMV0lQX0FTU0VSVCgiRXJyb3Igd2FpdGluZyBmb3Igc2VtIiwgcmV0ID09IFdBSVRfVElNRU9VVCk7CisgICAgaWYgKG1zZyAhPSBOVUxMKSB7CisgICAgICAqbXNnICA9IE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIFNZU19BUkNIX1RJTUVPVVQ7CisgIH0KK30KKwordTMyX3QKK3N5c19hcmNoX21ib3hfdHJ5ZmV0Y2goc3lzX21ib3hfdCAqcSwgdm9pZCAqKm1zZykKK3sKKyAgRFdPUkQgcmV0OworICBTWVNfQVJDSF9ERUNMX1BST1RFQ1QobGV2KTsKKworICAvKiBwYXJhbWV0ZXIgY2hlY2sgKi8KKyAgTFdJUF9BU1NFUlQoInEgIT0gU1lTX01CT1hfTlVMTCIsIHEgIT0gU1lTX01CT1hfTlVMTCk7CisgIExXSVBfQVNTRVJUKCJxLT5zZW0gIT0gTlVMTCIsIHEtPnNlbSAhPSBOVUxMKTsKKyAgTFdJUF9BU1NFUlQoInEtPnNlbSAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSIsIHEtPnNlbSAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSk7CisKKyAgcmV0ID0gV2FpdEZvclNpbmdsZU9iamVjdChxLT5zZW0sIDApOworICBpZiAocmV0ID09IFdBSVRfT0JKRUNUXzApIHsKKyAgICBTWVNfQVJDSF9QUk9URUNUKGxldik7CisgICAgaWYgKG1zZyAhPSBOVUxMKSB7CisgICAgICAqbXNnICA9IHEtPnFfbWVtW3EtPnRhaWxdOworICAgIH0KKworICAgIHEtPnRhaWwrKzsKKyAgICBpZiAocS0+dGFpbCA+PSBNQVhfUVVFVUVfRU5UUklFUykgeworICAgICAgcS0+dGFpbCA9IDA7CisgICAgfQorICAgIFNZU19BUkNIX1VOUFJPVEVDVChsZXYpOworICAgIHJldHVybiAwOworICB9IGVsc2UgeworICAgIExXSVBfQVNTRVJUKCJFcnJvciB3YWl0aW5nIGZvciBzZW0iLCByZXQgPT0gV0FJVF9USU1FT1VUKTsKKyAgICBpZiAobXNnICE9IE5VTEwpIHsKKyAgICAgICptc2cgID0gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gU1lTX01CT1hfRU1QVFk7CisgIH0KK30KKworI2lmIExXSVBfTkVUQ09OTl9TRU1fUEVSX1RIUkVBRAorc3lzX3NlbV90Kgorc3lzX2FyY2hfbmV0Y29ubl9zZW1fZ2V0KHZvaWQpCit7CisgIExQVk9JRCB0bHNfZGF0YSA9IFRsc0dldFZhbHVlKG5ldGNvbm5fc2VtX3Rsc19pbmRleCk7CisgIHJldHVybiAoc3lzX3NlbV90Kil0bHNfZGF0YTsKK30KKwordm9pZAorc3lzX2FyY2hfbmV0Y29ubl9zZW1fYWxsb2Modm9pZCkKK3sKKyAgc3lzX3NlbV90ICpzZW07CisgIGVycl90IGVycjsKKyAgQk9PTCBkb25lOworCisgIHNlbSA9IChzeXNfc2VtX3QqKW1hbGxvYyhzaXplb2Yoc3lzX3NlbV90KSk7CisgIExXSVBfQVNTRVJUKCJmYWlsZWQgdG8gYWxsb2NhdGUgbWVtb3J5IGZvciBUTFMgc2VtYXBob3JlIiwgc2VtICE9IE5VTEwpOworICBlcnIgPSBzeXNfc2VtX25ldyhzZW0sIDApOworICBMV0lQX0FTU0VSVCgiZmFpbGVkIHRvIGluaXRpYWxpc2UgVExTIHNlbWFwaG9yZSIsIGVyciA9PSBFUlJfT0spOworICBkb25lID0gVGxzU2V0VmFsdWUobmV0Y29ubl9zZW1fdGxzX2luZGV4LCBzZW0pOworICBMV0lQX1VOVVNFRF9BUkcoZG9uZSk7CisgIExXSVBfQVNTRVJUKCJmYWlsZWQgdG8gaW5pdGlhbGlzZSBUTFMgc2VtYXBob3JlIHN0b3JhZ2UiLCBkb25lID09IFRSVUUpOworfQorCit2b2lkCitzeXNfYXJjaF9uZXRjb25uX3NlbV9mcmVlKHZvaWQpCit7CisgIExQVk9JRCB0bHNfZGF0YSA9IFRsc0dldFZhbHVlKG5ldGNvbm5fc2VtX3Rsc19pbmRleCk7CisgIGlmICh0bHNfZGF0YSAhPSBOVUxMKSB7CisgICAgQk9PTCBkb25lOworICAgIGZyZWUodGxzX2RhdGEpOworICAgIGRvbmUgPSBUbHNTZXRWYWx1ZShuZXRjb25uX3NlbV90bHNfaW5kZXgsIE5VTEwpOworICAgIExXSVBfVU5VU0VEX0FSRyhkb25lKTsKKyAgICBMV0lQX0FTU0VSVCgiZmFpbGVkIHRvIGRlLWluaXQgVExTIHNlbWFwaG9yZSBzdG9yYWdlIiwgZG9uZSA9PSBUUlVFKTsKKyAgfQorfQorI2VuZGlmIC8qIExXSVBfTkVUQ09OTl9TRU1fUEVSX1RIUkVBRCAqLworCisjZW5kaWYgLyogIU5PX1NZUyAqLworCisvKiBnZXQga2V5Ym9hcmQgc3RhdGUgdG8gdGVybWluYXRlIHRoZSBkZWJ1ZyBhcHAgb24gYW55IGtiaGl0IGV2ZW50IHVzaW5nIHdpbjMyIEFQSSAqLworaW50Citsd2lwX3dpbjMyX2tleXByZXNzZWQodm9pZCkKK3sKKyAgSU5QVVRfUkVDT1JEIHJlYzsKKyAgRFdPUkQgbnVtID0gMDsKKyAgSEFORExFIGggPSBHZXRTdGRIYW5kbGUoU1REX0lOUFVUX0hBTkRMRSk7CisgIEJPT0wgcmV0ID0gUGVla0NvbnNvbGVJbnB1dChoLCAmcmVjLCAxLCAmbnVtKTsKKyAgaWYgKHJldCAmJiBudW0pIHsKKyAgICBSZWFkQ29uc29sZUlucHV0KGgsICZyZWMsIDEsICZudW0pOworICAgIGlmIChyZWMuRXZlbnRUeXBlID09IEtFWV9FVkVOVCkgeworICAgICAgaWYgKHJlYy5FdmVudC5LZXlFdmVudC5iS2V5RG93bikgeworICAgICAgICAvKiBub3QgYSBzcGVjaWFsIGtleT8gKi8KKyAgICAgICAgaWYgKHJlYy5FdmVudC5LZXlFdmVudC51Q2hhci5Bc2NpaUNoYXIgIT0gMCkgeworICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICB9CisgIHJldHVybiAwOworfQorCisjaW5jbHVkZSA8c3RkYXJnLmg+CisKKy8qIFRoaXMgaXMgYW4gZXhhbXBsZSBpbXBsZW1lbnRhdGlvbiBmb3IgTFdJUF9QTEFURk9STV9ESUFHOgorICogZm9ybWF0IGEgc3RyaW5nIGFuZCBwYXNzIGl0IHRvIHlvdXIgb3V0cHV0IGZ1bmN0aW9uLgorICovCit2b2lkCitsd2lwX3dpbjMyX3BsYXRmb3JtX2RpYWcoY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCit7CisgIHZhX2xpc3QgYXA7CisgIC8qIGdldCB0aGUgdmFyYXJncyAqLworICB2YV9zdGFydChhcCwgZm9ybWF0KTsKKyAgLyogcHJpbnQgdmlhIHZhcmFyZ3M7IHRvIHVzZSBhbm90aGVyIG91dHB1dCBmdW5jdGlvbiwgeW91IGNvdWxkIHVzZQorICAgICB2c25wcmludGYgaGVyZSAqLworICB2cHJpbnRmKGZvcm1hdCwgYXApOworICB2YV9lbmQoYXApOworfQpkaWZmIC0tZ2l0IGEvZG9jL0ZJTEVTIGIvZG9jL0ZJTEVTCmluZGV4IGU1ODg1NzUuLjE1NWE4MmMgMTAwNjQ0Ci0tLSBhL2RvYy9GSUxFUworKysgYi9kb2MvRklMRVMKQEAgLTMsNyArMyw0IEBACiAKIHNhdmFubmFoLnR4dCAgIC0gSG93IHRvIG9idGFpbiB0aGUgY3VycmVudCBkZXZlbG9wbWVudCBzb3VyY2UgY29kZS4KIGNvbnRyaWIudHh0ICAgIC0gSG93IHRvIGNvbnRyaWJ1dGUgdG8gbHdJUCBhcyBhIGRldmVsb3Blci4KLXJhd2FwaS50eHQgICAgIC0gVGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBjb3JlIEFQSSBvZiBsd0lQLgotICAgICAgICAgICAgICAgICBBbHNvIHByb3ZpZGVzIGFuIG92ZXJ2aWV3IGFib3V0IHRoZSBvdGhlciBBUElzIGFuZCBtdWx0aXRocmVhZGluZy4KLXN5c19hcmNoLnR4dCAgIC0gVGhlIGRvY3VtZW50YXRpb24gZm9yIGEgc3lzdGVtIGFic3RyYWN0aW9uIGxheWVyIG9mIGx3SVAuCiBwcHAudHh0ICAgICAgICAtIERvY3VtZW50YXRpb24gb2YgdGhlIFBQUCBpbnRlcmZhY2UgZm9yIGx3SVAuCmRpZmYgLS1naXQgYS9kb2MvTk9fU1lTX1NhbXBsZUNvZGUuYyBiL2RvYy9OT19TWVNfU2FtcGxlQ29kZS5jCmluZGV4IDcxZjFjOWYuLmIyNjM0MjAgMTAwNjQ0Ci0tLSBhL2RvYy9OT19TWVNfU2FtcGxlQ29kZS5jCisrKyBiL2RvYy9OT19TWVNfU2FtcGxlQ29kZS5jCkBAIC03Myw3ICs3Myw2IEBACiAgIG5ldGlmLm5hbWVbMF0gPSAnZSc7CiAgIG5ldGlmLm5hbWVbMV0gPSAnMCc7CiAgIG5ldGlmX2NyZWF0ZV9pcDZfbGlua2xvY2FsX2FkZHJlc3MoJm5ldGlmLCAxKTsKLSAgbmV0aWYuaXA2X2F1dG9jb25maWdfZW5hYmxlZCA9IDE7CiAgIG5ldGlmX3NldF9zdGF0dXNfY2FsbGJhY2soJm5ldGlmLCBuZXRpZl9zdGF0dXNfY2FsbGJhY2spOwogICBuZXRpZl9zZXRfZGVmYXVsdCgmbmV0aWYpOwogICBuZXRpZl9zZXRfdXAoJm5ldGlmKTsKZGlmZiAtLWdpdCBhL2RvYy9aZXJvQ29weVJ4LmMgYi9kb2MvWmVyb0NvcHlSeC5jCmluZGV4IDBlODIxOWIuLjYwMGIxM2EgMTAwNjQ0Ci0tLSBhL2RvYy9aZXJvQ29weVJ4LmMKKysrIGIvZG9jL1plcm9Db3B5UnguYwpAQCAtMTMsNyArMTMsNyBAQAogICBteV9jdXN0b21fcGJ1Zl90KiBteV9wdWYgPSAobXlfY3VzdG9tX3BidWZfdCopcDsKIAogICAvLyBpbnZhbGlkYXRlIGRhdGEgY2FjaGUgaGVyZSAtIGx3SVAgYW5kL29yIGFwcGxpY2F0aW9uIG1heSBoYXZlIHdyaXR0ZW4gaW50byBidWZmZXIhCi0gIC8vIChpbnZhbGlkYXRlIGlzIGZhc3RlciB0aGFuIGZsdXNoaW5nLCBhbmQgbm9vbmUgbmVlZHMgdGhlIGNvcnJlY3QgZGF0YSBpbiB0aGUgYnVmZmVyKQorICAvLyAoaW52YWxpZGF0ZSBpcyBmYXN0ZXIgdGhhbiBmbHVzaGluZywgYW5kIG5vIG9uZSBuZWVkcyB0aGUgY29ycmVjdCBkYXRhIGluIHRoZSBidWZmZXIpCiAgIGludmFsaWRhdGVfY3B1X2NhY2hlKHAtPnBheWxvYWQsIHAtPnRvdF9sZW4pOwogCiAgIFNZU19BUkNIX1BST1RFQ1Qob2xkX2xldmVsKTsKZGlmZiAtLWdpdCBhL2RvYy9jb250cmliLnR4dCBiL2RvYy9jb250cmliLnR4dAppbmRleCA2ZjBkN2JjLi4yYTQ0ODU3IDEwMDY0NAotLS0gYS9kb2MvY29udHJpYi50eHQKKysrIGIvZG9jL2NvbnRyaWIudHh0CkBAIC01NSw0ICs1NSw0IEBACiAKIDEuIElmIHlvdSBoYXZlIHBvcnRlZCBsd0lQIHRvIGEgcGxhdGZvcm0gKGFuIE9TLCBhIHVDL3Byb2Nlc3NvciBvciBhIGNvbWJpbmF0aW9uIG9mIHRoZXNlKSBhbmQKICAgIHlvdSB0aGluayBpdCBjb3VsZCBiZW5lZml0IG90aGVyc1sxXSB5b3UgbWlnaHQgd2FudCBkaXNjdXNzIHRoaXMgb24gdGhlIG1haWxpbmcgbGlzdC4gWW91Ci0gICBjYW4gYWxzbyBhc2sgZm9yIEdpdCBhY2Nlc3MgdG8gc3VibWl0IGFuZCBtYWludGFpbiB5b3VyIHBvcnQgaW4gdGhlIGNvbnRyaWIgR2l0IG1vZHVsZS4KKyAgIGNhbiBhbHNvIGFzayBmb3IgR2l0IGFjY2VzcyB0byBzdWJtaXQgYW5kIG1haW50YWluIHlvdXIgcG9ydCBpbiB0aGUgbHdJUC9jb250cmliIHN1YmRpci4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL2x3aXAuRG94eWZpbGUgYi9kb2MvZG94eWdlbi9sd2lwLkRveHlmaWxlCmluZGV4IDM0Nzc3MjIuLmY4MzBhZmUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL2x3aXAuRG94eWZpbGUKKysrIGIvZG9jL2RveHlnZW4vbHdpcC5Eb3h5ZmlsZQpAQCAtMSw3ICsxLDcgQEAKLSMgRG94eWZpbGUgMS44LjEzCisjIERveHlmaWxlIDEuMTIuMAogCiAjIFRoaXMgZmlsZSBkZXNjcmliZXMgdGhlIHNldHRpbmdzIHRvIGJlIHVzZWQgYnkgdGhlIGRvY3VtZW50YXRpb24gc3lzdGVtCi0jIGRveHlnZW4gKHd3dy5kb3h5Z2VuLm9yZykgZm9yIGEgcHJvamVjdC4KKyMgRG94eWdlbiAod3d3LmRveHlnZW4ub3JnKSBmb3IgYSBwcm9qZWN0LgogIwogIyBBbGwgdGV4dCBhZnRlciBhIGRvdWJsZSBoYXNoICgjIykgaXMgY29uc2lkZXJlZCBhIGNvbW1lbnQgYW5kIGlzIHBsYWNlZCBpbgogIyBmcm9udCBvZiB0aGUgVEFHIGl0IGlzIHByZWNlZGluZy4KQEAgLTEyLDE2ICsxMiwyNiBAQAogIyBGb3IgbGlzdHMsIGl0ZW1zIGNhbiBhbHNvIGJlIGFwcGVuZGVkIHVzaW5nOgogIyBUQUcgKz0gdmFsdWUgW3ZhbHVlLCAuLi5dCiAjIFZhbHVlcyB0aGF0IGNvbnRhaW4gc3BhY2VzIHNob3VsZCBiZSBwbGFjZWQgYmV0d2VlbiBxdW90ZXMgKFwiIFwiKS4KKyMKKyMgTm90ZToKKyMKKyMgVXNlIERveHlnZW4gdG8gY29tcGFyZSB0aGUgdXNlZCBjb25maWd1cmF0aW9uIGZpbGUgd2l0aCB0aGUgdGVtcGxhdGUKKyMgY29uZmlndXJhdGlvbiBmaWxlOgorIyBkb3h5Z2VuIC14IFtjb25maWdGaWxlXQorIyBVc2UgRG94eWdlbiB0byBjb21wYXJlIHRoZSB1c2VkIGNvbmZpZ3VyYXRpb24gZmlsZSB3aXRoIHRoZSB0ZW1wbGF0ZQorIyBjb25maWd1cmF0aW9uIGZpbGUgd2l0aG91dCByZXBsYWNpbmcgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBvciBDTWFrZSB0eXBlCisjIHJlcGxhY2VtZW50IHZhcmlhYmxlczoKKyMgZG94eWdlbiAteF9ub2VudiBbY29uZmlnRmlsZV0KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBQcm9qZWN0IHJlbGF0ZWQgY29uZmlndXJhdGlvbiBvcHRpb25zCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgVGhpcyB0YWcgc3BlY2lmaWVzIHRoZSBlbmNvZGluZyB1c2VkIGZvciBhbGwgY2hhcmFjdGVycyBpbiB0aGUgY29uZmlnIGZpbGUKLSMgdGhhdCBmb2xsb3cuIFRoZSBkZWZhdWx0IGlzIFVURi04IHdoaWNoIGlzIGFsc28gdGhlIGVuY29kaW5nIHVzZWQgZm9yIGFsbCB0ZXh0Ci0jIGJlZm9yZSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiB0aGlzIHRhZy4gRG94eWdlbiB1c2VzIGxpYmljb252IChvciB0aGUgaWNvbnYKLSMgYnVpbHQgaW50byBsaWJjKSBmb3IgdGhlIHRyYW5zY29kaW5nLiBTZWUgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmljb252Ci0jIGZvciB0aGUgbGlzdCBvZiBwb3NzaWJsZSBlbmNvZGluZ3MuCisjIFRoaXMgdGFnIHNwZWNpZmllcyB0aGUgZW5jb2RpbmcgdXNlZCBmb3IgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIGNvbmZpZ3VyYXRpb24KKyMgZmlsZSB0aGF0IGZvbGxvdy4gVGhlIGRlZmF1bHQgaXMgVVRGLTggd2hpY2ggaXMgYWxzbyB0aGUgZW5jb2RpbmcgdXNlZCBmb3IgYWxsCisjIHRleHQgYmVmb3JlIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mIHRoaXMgdGFnLiBEb3h5Z2VuIHVzZXMgbGliaWNvbnYgKG9yIHRoZQorIyBpY29udiBidWlsdCBpbnRvIGxpYmMpIGZvciB0aGUgdHJhbnNjb2RpbmcuIFNlZQorIyBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmljb252LyBmb3IgdGhlIGxpc3Qgb2YgcG9zc2libGUgZW5jb2RpbmdzLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogVVRGLTguCiAKIERPWFlGSUxFX0VOQ09ESU5HICAgICAgPSBVVEYtOApAQCAtMzIsMTMgKzQyLDEzIEBACiAjIHRpdGxlIG9mIG1vc3QgZ2VuZXJhdGVkIHBhZ2VzIGFuZCBpbiBhIGZldyBvdGhlciBwbGFjZXMuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBNeSBQcm9qZWN0LgogCi1QUk9KRUNUX05BTUUgICAgICAgICAgID0gImx3SVAiCitQUk9KRUNUX05BTUUgICAgICAgICAgID0gbHdJUAogCiAjIFRoZSBQUk9KRUNUX05VTUJFUiB0YWcgY2FuIGJlIHVzZWQgdG8gZW50ZXIgYSBwcm9qZWN0IG9yIHJldmlzaW9uIG51bWJlci4gVGhpcwogIyBjb3VsZCBiZSBoYW5keSBmb3IgYXJjaGl2aW5nIHRoZSBnZW5lcmF0ZWQgZG9jdW1lbnRhdGlvbiBvciBpZiBzb21lIHZlcnNpb24KICMgY29udHJvbCBzeXN0ZW0gaXMgdXNlZC4KIAotUFJPSkVDVF9OVU1CRVIgICAgICAgICA9ICIyLjEuMyIKK1BST0pFQ1RfTlVNQkVSICAgICAgICAgPSAyLjIuMAogCiAjIFVzaW5nIHRoZSBQUk9KRUNUX0JSSUVGIHRhZyBvbmUgY2FuIHByb3ZpZGUgYW4gb3B0aW9uYWwgb25lIGxpbmUgZGVzY3JpcHRpb24KICMgZm9yIGEgcHJvamVjdCB0aGF0IGFwcGVhcnMgYXQgdGhlIHRvcCBvZiBlYWNoIHBhZ2UgYW5kIHNob3VsZCBnaXZlIHZpZXdlciBhCkBAIC01MywyNCArNjMsNDIgQEAKIAogUFJPSkVDVF9MT0dPICAgICAgICAgICA9CiAKKyMgV2l0aCB0aGUgUFJPSkVDVF9JQ09OIHRhZyBvbmUgY2FuIHNwZWNpZnkgYW4gaWNvbiB0aGF0IGlzIGluY2x1ZGVkIGluIHRoZSB0YWJzCisjIHdoZW4gdGhlIEhUTUwgZG9jdW1lbnQgaXMgc2hvd24uIERveHlnZW4gd2lsbCBjb3B5IHRoZSBsb2dvIHRvIHRoZSBvdXRwdXQKKyMgZGlyZWN0b3J5LgorCitQUk9KRUNUX0lDT04gICAgICAgICAgID0KKwogIyBUaGUgT1VUUFVUX0RJUkVDVE9SWSB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSAocmVsYXRpdmUgb3IgYWJzb2x1dGUpIHBhdGgKICMgaW50byB3aGljaCB0aGUgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24gd2lsbCBiZSB3cml0dGVuLiBJZiBhIHJlbGF0aXZlIHBhdGggaXMKLSMgZW50ZXJlZCwgaXQgd2lsbCBiZSByZWxhdGl2ZSB0byB0aGUgbG9jYXRpb24gd2hlcmUgZG94eWdlbiB3YXMgc3RhcnRlZC4gSWYKKyMgZW50ZXJlZCwgaXQgd2lsbCBiZSByZWxhdGl2ZSB0byB0aGUgbG9jYXRpb24gd2hlcmUgRG94eWdlbiB3YXMgc3RhcnRlZC4gSWYKICMgbGVmdCBibGFuayB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2lsbCBiZSB1c2VkLgogCi1PVVRQVVRfRElSRUNUT1JZICAgICAgID0gIm91dHB1dCIKK09VVFBVVF9ESVJFQ1RPUlkgICAgICAgPSBvdXRwdXQKIAotIyBJZiB0aGUgQ1JFQVRFX1NVQkRJUlMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgY3JlYXRlIDQwOTYgc3ViLQotIyBkaXJlY3RvcmllcyAoaW4gMiBsZXZlbHMpIHVuZGVyIHRoZSBvdXRwdXQgZGlyZWN0b3J5IG9mIGVhY2ggb3V0cHV0IGZvcm1hdCBhbmQKLSMgd2lsbCBkaXN0cmlidXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMgb3ZlciB0aGVzZSBkaXJlY3Rvcmllcy4gRW5hYmxpbmcgdGhpcwotIyBvcHRpb24gY2FuIGJlIHVzZWZ1bCB3aGVuIGZlZWRpbmcgZG94eWdlbiBhIGh1Z2UgYW1vdW50IG9mIHNvdXJjZSBmaWxlcywgd2hlcmUKKyMgSWYgdGhlIENSRUFURV9TVUJESVJTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIGNyZWF0ZSB1cCB0byA0MDk2CisjIHN1Yi1kaXJlY3RvcmllcyAoaW4gMiBsZXZlbHMpIHVuZGVyIHRoZSBvdXRwdXQgZGlyZWN0b3J5IG9mIGVhY2ggb3V0cHV0IGZvcm1hdAorIyBhbmQgd2lsbCBkaXN0cmlidXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMgb3ZlciB0aGVzZSBkaXJlY3Rvcmllcy4gRW5hYmxpbmcgdGhpcworIyBvcHRpb24gY2FuIGJlIHVzZWZ1bCB3aGVuIGZlZWRpbmcgRG94eWdlbiBhIGh1Z2UgYW1vdW50IG9mIHNvdXJjZSBmaWxlcywgd2hlcmUKICMgcHV0dGluZyBhbGwgZ2VuZXJhdGVkIGZpbGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSB3b3VsZCBvdGhlcndpc2UgY2F1c2VzCi0jIHBlcmZvcm1hbmNlIHByb2JsZW1zIGZvciB0aGUgZmlsZSBzeXN0ZW0uCisjIHBlcmZvcm1hbmNlIHByb2JsZW1zIGZvciB0aGUgZmlsZSBzeXN0ZW0uIEFkYXB0IENSRUFURV9TVUJESVJTX0xFVkVMIHRvCisjIGNvbnRyb2wgdGhlIG51bWJlciBvZiBzdWItZGlyZWN0b3JpZXMuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogQ1JFQVRFX1NVQkRJUlMgICAgICAgICA9IE5PCiAKLSMgSWYgdGhlIEFMTE9XX1VOSUNPREVfTkFNRVMgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBhbGxvdyBub24tQVNDSUkKKyMgQ29udHJvbHMgdGhlIG51bWJlciBvZiBzdWItZGlyZWN0b3JpZXMgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgd2hlbgorIyBDUkVBVEVfU1VCRElSUyB0YWcgaXMgc2V0IHRvIFlFUy4gTGV2ZWwgMCByZXByZXNlbnRzIDE2IGRpcmVjdG9yaWVzLCBhbmQgZXZlcnkKKyMgbGV2ZWwgaW5jcmVtZW50IGRvdWJsZXMgdGhlIG51bWJlciBvZiBkaXJlY3RvcmllcywgcmVzdWx0aW5nIGluIDQwOTYKKyMgZGlyZWN0b3JpZXMgYXQgbGV2ZWwgOCB3aGljaCBpcyB0aGUgZGVmYXVsdCBhbmQgYWxzbyB0aGUgbWF4aW11bSB2YWx1ZS4gVGhlCisjIHN1Yi1kaXJlY3RvcmllcyBhcmUgb3JnYW5pemVkIGluIDIgbGV2ZWxzLCB0aGUgZmlyc3QgbGV2ZWwgYWx3YXlzIGhhcyBhIGZpeGVkCisjIG51bWJlciBvZiAxNiBkaXJlY3Rvcmllcy4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogOCwgZGVmYXVsdCB2YWx1ZTogOC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIENSRUFURV9TVUJESVJTIGlzIHNldCB0byBZRVMuCisKK0NSRUFURV9TVUJESVJTX0xFVkVMICAgPSA4CisKKyMgSWYgdGhlIEFMTE9XX1VOSUNPREVfTkFNRVMgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBhbGxvdyBub24tQVNDSUkKICMgY2hhcmFjdGVycyB0byBhcHBlYXIgaW4gdGhlIG5hbWVzIG9mIGdlbmVyYXRlZCBmaWxlcy4gSWYgc2V0IHRvIE5PLCBub24tQVNDSUkKICMgY2hhcmFjdGVycyB3aWxsIGJlIGVzY2FwZWQsIGZvciBleGFtcGxlIF94RTNfeDgxX3g4NCB3aWxsIGJlIHVzZWQgZm9yIFVuaWNvZGUKICMgVSszMDQ0LgpAQCAtNzksMjggKzEwNywyOCBAQAogQUxMT1dfVU5JQ09ERV9OQU1FUyAgICA9IE5PCiAKICMgVGhlIE9VVFBVVF9MQU5HVUFHRSB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBsYW5ndWFnZSBpbiB3aGljaCBhbGwKLSMgZG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgZG94eWdlbiBpcyB3cml0dGVuLiBEb3h5Z2VuIHdpbGwgdXNlIHRoaXMKKyMgZG9jdW1lbnRhdGlvbiBnZW5lcmF0ZWQgYnkgRG94eWdlbiBpcyB3cml0dGVuLiBEb3h5Z2VuIHdpbGwgdXNlIHRoaXMKICMgaW5mb3JtYXRpb24gdG8gZ2VuZXJhdGUgYWxsIGNvbnN0YW50IG91dHB1dCBpbiB0aGUgcHJvcGVyIGxhbmd1YWdlLgotIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBBZnJpa2FhbnMsIEFyYWJpYywgQXJtZW5pYW4sIEJyYXppbGlhbiwgQ2F0YWxhbiwgQ2hpbmVzZSwKLSMgQ2hpbmVzZS1UcmFkaXRpb25hbCwgQ3JvYXRpYW4sIEN6ZWNoLCBEYW5pc2gsIER1dGNoLCBFbmdsaXNoIChVbml0ZWQgU3RhdGVzKSwKLSMgRXNwZXJhbnRvLCBGYXJzaSAoUGVyc2lhbiksIEZpbm5pc2gsIEZyZW5jaCwgR2VybWFuLCBHcmVlaywgSHVuZ2FyaWFuLAotIyBJbmRvbmVzaWFuLCBJdGFsaWFuLCBKYXBhbmVzZSwgSmFwYW5lc2UtZW4gKEphcGFuZXNlIHdpdGggRW5nbGlzaCBtZXNzYWdlcyksCi0jIEtvcmVhbiwgS29yZWFuLWVuIChLb3JlYW4gd2l0aCBFbmdsaXNoIG1lc3NhZ2VzKSwgTGF0dmlhbiwgTGl0aHVhbmlhbiwKLSMgTWFjZWRvbmlhbiwgTm9yd2VnaWFuLCBQZXJzaWFuIChGYXJzaSksIFBvbGlzaCwgUG9ydHVndWVzZSwgUm9tYW5pYW4sIFJ1c3NpYW4sCi0jIFNlcmJpYW4sIFNlcmJpYW4tQ3lyaWxsaWMsIFNsb3ZhaywgU2xvdmVuZSwgU3BhbmlzaCwgU3dlZGlzaCwgVHVya2lzaCwKLSMgVWtyYWluaWFuIGFuZCBWaWV0bmFtZXNlLgorIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBBZnJpa2FhbnMsIEFyYWJpYywgQXJtZW5pYW4sIEJyYXppbGlhbiwgQnVsZ2FyaWFuLAorIyBDYXRhbGFuLCBDaGluZXNlLCBDaGluZXNlLVRyYWRpdGlvbmFsLCBDcm9hdGlhbiwgQ3plY2gsIERhbmlzaCwgRHV0Y2gsIEVuZ2xpc2gKKyMgKFVuaXRlZCBTdGF0ZXMpLCBFc3BlcmFudG8sIEZhcnNpIChQZXJzaWFuKSwgRmlubmlzaCwgRnJlbmNoLCBHZXJtYW4sIEdyZWVrLAorIyBIaW5kaSwgSHVuZ2FyaWFuLCBJbmRvbmVzaWFuLCBJdGFsaWFuLCBKYXBhbmVzZSwgSmFwYW5lc2UtZW4gKEphcGFuZXNlIHdpdGgKKyMgRW5nbGlzaCBtZXNzYWdlcyksIEtvcmVhbiwgS29yZWFuLWVuIChLb3JlYW4gd2l0aCBFbmdsaXNoIG1lc3NhZ2VzKSwgTGF0dmlhbiwKKyMgTGl0aHVhbmlhbiwgTWFjZWRvbmlhbiwgTm9yd2VnaWFuLCBQZXJzaWFuIChGYXJzaSksIFBvbGlzaCwgUG9ydHVndWVzZSwKKyMgUm9tYW5pYW4sIFJ1c3NpYW4sIFNlcmJpYW4sIFNlcmJpYW4tQ3lyaWxsaWMsIFNsb3ZhaywgU2xvdmVuZSwgU3BhbmlzaCwKKyMgU3dlZGlzaCwgVHVya2lzaCwgVWtyYWluaWFuIGFuZCBWaWV0bmFtZXNlLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogRW5nbGlzaC4KIAogT1VUUFVUX0xBTkdVQUdFICAgICAgICA9IEVuZ2xpc2gKIAotIyBJZiB0aGUgQlJJRUZfTUVNQkVSX0RFU0MgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBpbmNsdWRlIGJyaWVmIG1lbWJlcgorIyBJZiB0aGUgQlJJRUZfTUVNQkVSX0RFU0MgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBpbmNsdWRlIGJyaWVmIG1lbWJlcgogIyBkZXNjcmlwdGlvbnMgYWZ0ZXIgdGhlIG1lbWJlcnMgdGhhdCBhcmUgbGlzdGVkIGluIHRoZSBmaWxlIGFuZCBjbGFzcwogIyBkb2N1bWVudGF0aW9uIChzaW1pbGFyIHRvIEphdmFkb2MpLiBTZXQgdG8gTk8gdG8gZGlzYWJsZSB0aGlzLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBCUklFRl9NRU1CRVJfREVTQyAgICAgID0gWUVTCiAKLSMgSWYgdGhlIFJFUEVBVF9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIHByZXBlbmQgdGhlIGJyaWVmCisjIElmIHRoZSBSRVBFQVRfQlJJRUYgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBwcmVwZW5kIHRoZSBicmllZgogIyBkZXNjcmlwdGlvbiBvZiBhIG1lbWJlciBvciBmdW5jdGlvbiBiZWZvcmUgdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uCiAjCiAjIE5vdGU6IElmIGJvdGggSElERV9VTkRPQ19NRU1CRVJTIGFuZCBCUklFRl9NRU1CRVJfREVTQyBhcmUgc2V0IHRvIE5PLCB0aGUKQEAgLTExOCw5ICsxNDYsOSBAQAogIyB0aGUgZW50aXR5KTpUaGUgJG5hbWUgY2xhc3MsIFRoZSAkbmFtZSB3aWRnZXQsIFRoZSAkbmFtZSBmaWxlLCBpcywgcHJvdmlkZXMsCiAjIHNwZWNpZmllcywgY29udGFpbnMsIHJlcHJlc2VudHMsIGEsIGFuIGFuZCB0aGUuCiAKLUFCQlJFVklBVEVfQlJJRUYgICAgICAgPSAiVGhlICRuYW1lIGNsYXNzICAgICAgICIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgJG5hbWUgd2lkZ2V0ICAgICAgICIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgJG5hbWUgZmlsZSAgICAgICAiIFwKK0FCQlJFVklBVEVfQlJJRUYgICAgICAgPSAiVGhlICRuYW1lIGNsYXNzICAgICAgIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSAkbmFtZSB3aWRnZXQgICAgICAiIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlICRuYW1lIGZpbGUgICAgICAiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZXMgXAogICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpZmllcyBcCkBAIC0xMzEsMTMgKzE1OSwxMyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgIHRoZQogCiAjIElmIHRoZSBBTFdBWVNfREVUQUlMRURfU0VDIGFuZCBSRVBFQVRfQlJJRUYgdGFncyBhcmUgYm90aCBzZXQgdG8gWUVTIHRoZW4KLSMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZGV0YWlsZWQgc2VjdGlvbiBldmVuIGlmIHRoZXJlIGlzIG9ubHkgYSBicmllZgorIyBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBkZXRhaWxlZCBzZWN0aW9uIGV2ZW4gaWYgdGhlcmUgaXMgb25seSBhIGJyaWVmCiAjIGRlc2NyaXB0aW9uLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEFMV0FZU19ERVRBSUxFRF9TRUMgICAgPSBOTwogCi0jIElmIHRoZSBJTkxJTkVfSU5IRVJJVEVEX01FTUIgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBzaG93IGFsbAorIyBJZiB0aGUgSU5MSU5FX0lOSEVSSVRFRF9NRU1CIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgc2hvdyBhbGwKICMgaW5oZXJpdGVkIG1lbWJlcnMgb2YgYSBjbGFzcyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGF0IGNsYXNzIGFzIGlmIHRob3NlCiAjIG1lbWJlcnMgd2VyZSBvcmRpbmFyeSBjbGFzcyBtZW1iZXJzLiBDb25zdHJ1Y3RvcnMsIGRlc3RydWN0b3JzIGFuZCBhc3NpZ25tZW50CiAjIG9wZXJhdG9ycyBvZiB0aGUgYmFzZSBjbGFzc2VzIHdpbGwgbm90IGJlIHNob3duLgpAQCAtMTQ1LDcgKzE3Myw3IEBACiAKIElOTElORV9JTkhFUklURURfTUVNQiAgPSBOTwogCi0jIElmIHRoZSBGVUxMX1BBVEhfTkFNRVMgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBwcmVwZW5kIHRoZSBmdWxsIHBhdGgKKyMgSWYgdGhlIEZVTExfUEFUSF9OQU1FUyB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIHByZXBlbmQgdGhlIGZ1bGwgcGF0aAogIyBiZWZvcmUgZmlsZXMgbmFtZSBpbiB0aGUgZmlsZSBsaXN0IGFuZCBpbiB0aGUgaGVhZGVyIGZpbGVzLiBJZiBzZXQgdG8gTk8gdGhlCiAjIHNob3J0ZXN0IHBhdGggdGhhdCBtYWtlcyB0aGUgZmlsZSBuYW1lIHVuaXF1ZSB3aWxsIGJlIHVzZWQKICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KQEAgLTE1NSwxMSArMTgzLDExIEBACiAjIFRoZSBTVFJJUF9GUk9NX1BBVEggdGFnIGNhbiBiZSB1c2VkIHRvIHN0cmlwIGEgdXNlci1kZWZpbmVkIHBhcnQgb2YgdGhlIHBhdGguCiAjIFN0cmlwcGluZyBpcyBvbmx5IGRvbmUgaWYgb25lIG9mIHRoZSBzcGVjaWZpZWQgc3RyaW5ncyBtYXRjaGVzIHRoZSBsZWZ0LWhhbmQKICMgcGFydCBvZiB0aGUgcGF0aC4gVGhlIHRhZyBjYW4gYmUgdXNlZCB0byBzaG93IHJlbGF0aXZlIHBhdGhzIGluIHRoZSBmaWxlIGxpc3QuCi0jIElmIGxlZnQgYmxhbmsgdGhlIGRpcmVjdG9yeSBmcm9tIHdoaWNoIGRveHlnZW4gaXMgcnVuIGlzIHVzZWQgYXMgdGhlIHBhdGggdG8KKyMgSWYgbGVmdCBibGFuayB0aGUgZGlyZWN0b3J5IGZyb20gd2hpY2ggRG94eWdlbiBpcyBydW4gaXMgdXNlZCBhcyB0aGUgcGF0aCB0bwogIyBzdHJpcC4KICMKICMgTm90ZSB0aGF0IHlvdSBjYW4gc3BlY2lmeSBhYnNvbHV0ZSBwYXRocyBoZXJlLCBidXQgYWxzbyByZWxhdGl2ZSBwYXRocywgd2hpY2gKLSMgd2lsbCBiZSByZWxhdGl2ZSBmcm9tIHRoZSBkaXJlY3Rvcnkgd2hlcmUgZG94eWdlbiBpcyBzdGFydGVkLgorIyB3aWxsIGJlIHJlbGF0aXZlIGZyb20gdGhlIGRpcmVjdG9yeSB3aGVyZSBEb3h5Z2VuIGlzIHN0YXJ0ZWQuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBGVUxMX1BBVEhfTkFNRVMgaXMgc2V0IHRvIFlFUy4KIAogU1RSSVBfRlJPTV9QQVRIICAgICAgICA9IC4uLy4uLwpAQCAtMTczLDE0ICsyMDEsMTQgQEAKIAogU1RSSVBfRlJPTV9JTkNfUEFUSCAgICA9CiAKLSMgSWYgdGhlIFNIT1JUX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgbXVjaCBzaG9ydGVyIChidXQKKyMgSWYgdGhlIFNIT1JUX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgbXVjaCBzaG9ydGVyIChidXQKICMgbGVzcyByZWFkYWJsZSkgZmlsZSBuYW1lcy4gVGhpcyBjYW4gYmUgdXNlZnVsIGlzIHlvdXIgZmlsZSBzeXN0ZW1zIGRvZXNuJ3QKICMgc3VwcG9ydCBsb25nIG5hbWVzIGxpa2Ugb24gRE9TLCBNYWMsIG9yIENELVJPTS4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBTSE9SVF9OQU1FUyAgICAgICAgICAgID0gTk8KIAotIyBJZiB0aGUgSkFWQURPQ19BVVRPQlJJRUYgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgaW50ZXJwcmV0IHRoZQorIyBJZiB0aGUgSkFWQURPQ19BVVRPQlJJRUYgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgaW50ZXJwcmV0IHRoZQogIyBmaXJzdCBsaW5lICh1bnRpbCB0aGUgZmlyc3QgZG90KSBvZiBhIEphdmFkb2Mtc3R5bGUgY29tbWVudCBhcyB0aGUgYnJpZWYKICMgZGVzY3JpcHRpb24uIElmIHNldCB0byBOTywgdGhlIEphdmFkb2Mtc3R5bGUgd2lsbCBiZWhhdmUganVzdCBsaWtlIHJlZ3VsYXIgUXQtCiAjIHN0eWxlIGNvbW1lbnRzICh0aHVzIHJlcXVpcmluZyBhbiBleHBsaWNpdCBAYnJpZWYgY29tbWFuZCBmb3IgYSBicmllZgpAQCAtMTg5LDcgKzIxNywxNyBAQAogCiBKQVZBRE9DX0FVVE9CUklFRiAgICAgID0gTk8KIAotIyBJZiB0aGUgUVRfQVVUT0JSSUVGIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGludGVycHJldCB0aGUgZmlyc3QKKyMgSWYgdGhlIEpBVkFET0NfQkFOTkVSIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIGludGVycHJldCBhIGxpbmUKKyMgc3VjaCBhcworIyAvKioqKioqKioqKioqKioqCisjIGFzIGJlaW5nIHRoZSBiZWdpbm5pbmcgb2YgYSBKYXZhZG9jLXN0eWxlIGNvbW1lbnQgImJhbm5lciIuIElmIHNldCB0byBOTywgdGhlCisjIEphdmFkb2Mtc3R5bGUgd2lsbCBiZWhhdmUganVzdCBsaWtlIHJlZ3VsYXIgY29tbWVudHMgYW5kIGl0IHdpbGwgbm90IGJlCisjIGludGVycHJldGVkIGJ5IERveHlnZW4uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworSkFWQURPQ19CQU5ORVIgICAgICAgICA9IE5PCisKKyMgSWYgdGhlIFFUX0FVVE9CUklFRiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCBpbnRlcnByZXQgdGhlIGZpcnN0CiAjIGxpbmUgKHVudGlsIHRoZSBmaXJzdCBkb3QpIG9mIGEgUXQtc3R5bGUgY29tbWVudCBhcyB0aGUgYnJpZWYgZGVzY3JpcHRpb24uIElmCiAjIHNldCB0byBOTywgdGhlIFF0LXN0eWxlIHdpbGwgYmVoYXZlIGp1c3QgbGlrZSByZWd1bGFyIFF0LXN0eWxlIGNvbW1lbnRzICh0aHVzCiAjIHJlcXVpcmluZyBhbiBleHBsaWNpdCBcYnJpZWYgY29tbWFuZCBmb3IgYSBicmllZiBkZXNjcmlwdGlvbi4pCkBAIC0xOTcsNyArMjM1LDcgQEAKIAogUVRfQVVUT0JSSUVGICAgICAgICAgICA9IE5PCiAKLSMgVGhlIE1VTFRJTElORV9DUFBfSVNfQlJJRUYgdGFnIGNhbiBiZSBzZXQgdG8gWUVTIHRvIG1ha2UgZG94eWdlbiB0cmVhdCBhCisjIFRoZSBNVUxUSUxJTkVfQ1BQX0lTX0JSSUVGIHRhZyBjYW4gYmUgc2V0IHRvIFlFUyB0byBtYWtlIERveHlnZW4gdHJlYXQgYQogIyBtdWx0aS1saW5lIEMrKyBzcGVjaWFsIGNvbW1lbnQgYmxvY2sgKGkuZS4gYSBibG9jayBvZiAvLyEgb3IgLy8vIGNvbW1lbnRzKSBhcwogIyBhIGJyaWVmIGRlc2NyaXB0aW9uLiBUaGlzIHVzZWQgdG8gYmUgdGhlIGRlZmF1bHQgYmVoYXZpb3IuIFRoZSBuZXcgZGVmYXVsdCBpcwogIyB0byB0cmVhdCBhIG11bHRpLWxpbmUgQysrIGNvbW1lbnQgYmxvY2sgYXMgYSBkZXRhaWxlZCBkZXNjcmlwdGlvbi4gU2V0IHRoaXMKQEAgLTIwOSwxMyArMjQ3LDIxIEBACiAKIE1VTFRJTElORV9DUFBfSVNfQlJJRUYgPSBOTwogCisjIEJ5IGRlZmF1bHQgUHl0aG9uIGRvY3N0cmluZ3MgYXJlIGRpc3BsYXllZCBhcyBwcmVmb3JtYXR0ZWQgdGV4dCBhbmQgRG94eWdlbidzCisjIHNwZWNpYWwgY29tbWFuZHMgY2Fubm90IGJlIHVzZWQuIEJ5IHNldHRpbmcgUFlUSE9OX0RPQ1NUUklORyB0byBOTyB0aGUKKyMgRG94eWdlbidzIHNwZWNpYWwgY29tbWFuZHMgY2FuIGJlIHVzZWQgYW5kIHRoZSBjb250ZW50cyBvZiB0aGUgZG9jc3RyaW5nCisjIGRvY3VtZW50YXRpb24gYmxvY2tzIGlzIHNob3duIGFzIERveHlnZW4gZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworUFlUSE9OX0RPQ1NUUklORyAgICAgICA9IFlFUworCiAjIElmIHRoZSBJTkhFUklUX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBhbiB1bmRvY3VtZW50ZWQgbWVtYmVyIGluaGVyaXRzIHRoZQogIyBkb2N1bWVudGF0aW9uIGZyb20gYW55IGRvY3VtZW50ZWQgbWVtYmVyIHRoYXQgaXQgcmUtaW1wbGVtZW50cy4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogSU5IRVJJVF9ET0NTICAgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBTRVBBUkFURV9NRU1CRVJfUEFHRVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgcHJvZHVjZSBhIG5ldworIyBJZiB0aGUgU0VQQVJBVEVfTUVNQkVSX1BBR0VTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIHByb2R1Y2UgYSBuZXcKICMgcGFnZSBmb3IgZWFjaCBtZW1iZXIuIElmIHNldCB0byBOTywgdGhlIGRvY3VtZW50YXRpb24gb2YgYSBtZW1iZXIgd2lsbCBiZSBwYXJ0CiAjIG9mIHRoZSBmaWxlL2NsYXNzL25hbWVzcGFjZSB0aGF0IGNvbnRhaW5zIGl0LgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCkBAIC0yMzIsMjAgKzI3OCwxOSBAQAogIyB0aGUgZG9jdW1lbnRhdGlvbi4gQW4gYWxpYXMgaGFzIHRoZSBmb3JtOgogIyBuYW1lPXZhbHVlCiAjIEZvciBleGFtcGxlIGFkZGluZwotIyAic2lkZWVmZmVjdD1AcGFyIFNpZGUgRWZmZWN0czpcbiIKKyMgInNpZGVlZmZlY3Q9QHBhciBTaWRlIEVmZmVjdHM6Xl4iCiAjIHdpbGwgYWxsb3cgeW91IHRvIHB1dCB0aGUgY29tbWFuZCBcc2lkZWVmZmVjdCAob3IgQHNpZGVlZmZlY3QpIGluIHRoZQogIyBkb2N1bWVudGF0aW9uLCB3aGljaCB3aWxsIHJlc3VsdCBpbiBhIHVzZXItZGVmaW5lZCBwYXJhZ3JhcGggd2l0aCBoZWFkaW5nCi0jICJTaWRlIEVmZmVjdHM6Ii4gWW91IGNhbiBwdXQgXG4ncyBpbiB0aGUgdmFsdWUgcGFydCBvZiBhbiBhbGlhcyB0byBpbnNlcnQKLSMgbmV3bGluZXMuCisjICJTaWRlIEVmZmVjdHM6Ii4gTm90ZSB0aGF0IHlvdSBjYW5ub3QgcHV0IFxuJ3MgaW4gdGhlIHZhbHVlIHBhcnQgb2YgYW4gYWxpYXMKKyMgdG8gaW5zZXJ0IG5ld2xpbmVzIChpbiB0aGUgcmVzdWx0aW5nIG91dHB1dCkuIFlvdSBjYW4gcHV0IF5eIGluIHRoZSB2YWx1ZSBwYXJ0CisjIG9mIGFuIGFsaWFzIHRvIGluc2VydCBhIG5ld2xpbmUgYXMgaWYgYSBwaHlzaWNhbCBuZXdsaW5lIHdhcyBpbiB0aGUgb3JpZ2luYWwKKyMgZmlsZS4gV2hlbiB5b3UgbmVlZCBhIGxpdGVyYWwgeyBvciB9IG9yICwgaW4gdGhlIHZhbHVlIHBhcnQgb2YgYW4gYWxpYXMgeW91CisjIGhhdmUgdG8gZXNjYXBlIHRoZW0gYnkgbWVhbnMgb2YgYSBiYWNrc2xhc2ggKFwpLCB0aGlzIGNhbiBsZWFkIHRvIGNvbmZsaWN0cworIyB3aXRoIHRoZSBjb21tYW5kcyBceyBhbmQgXH0gZm9yIHRoZXNlIGl0IGlzIGFkdmlzZWQgdG8gdXNlIHRoZSB2ZXJzaW9uIEB7IGFuZAorIyBAfSBvciB1c2UgYSBkb3VibGUgZXNjYXBlIChcXHsgYW5kIFxcfSkKIAogQUxJQVNFUyAgICAgICAgICAgICAgICA9CiAKLSMgVGhpcyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIG51bWJlciBvZiB3b3JkLWtleXdvcmQgbWFwcGluZ3MgKFRDTCBvbmx5KS4KLSMgQSBtYXBwaW5nIGhhcyB0aGUgZm9ybSAibmFtZT12YWx1ZSIuIEZvciBleGFtcGxlIGFkZGluZyAiY2xhc3M9aXRjbDo6Y2xhc3MiCi0jIHdpbGwgYWxsb3cgeW91IHRvIHVzZSB0aGUgY29tbWFuZCBjbGFzcyBpbiB0aGUgaXRjbDo6Y2xhc3MgbWVhbmluZy4KLQotVENMX1NVQlNUICAgICAgICAgICAgICA9Ci0KICMgU2V0IHRoZSBPUFRJTUlaRV9PVVRQVVRfRk9SX0MgdGFnIHRvIFlFUyBpZiB5b3VyIHByb2plY3QgY29uc2lzdHMgb2YgQyBzb3VyY2VzCiAjIG9ubHkuIERveHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0aGF0IGlzIG1vcmUgdGFpbG9yZWQgZm9yIEMuIEZvcgogIyBpbnN0YW5jZSwgc29tZSBvZiB0aGUgbmFtZXMgdGhhdCBhcmUgdXNlZCB3aWxsIGJlIGRpZmZlcmVudC4gVGhlIGxpc3Qgb2YgYWxsCkBAIC0yNzQsMzAgKzMxOSw0MiBAQAogCiBPUFRJTUlaRV9PVVRQVVRfVkhETCAgID0gTk8KIAorIyBTZXQgdGhlIE9QVElNSVpFX09VVFBVVF9TTElDRSB0YWcgdG8gWUVTIGlmIHlvdXIgcHJvamVjdCBjb25zaXN0cyBvZiBTbGljZQorIyBzb3VyY2VzIG9ubHkuIERveHlnZW4gd2lsbCB0aGVuIGdlbmVyYXRlIG91dHB1dCB0aGF0IGlzIG1vcmUgdGFpbG9yZWQgZm9yIHRoYXQKKyMgbGFuZ3VhZ2UuIEZvciBpbnN0YW5jZSwgbmFtZXNwYWNlcyB3aWxsIGJlIHByZXNlbnRlZCBhcyBtb2R1bGVzLCB0eXBlcyB3aWxsIGJlCisjIHNlcGFyYXRlZCBpbnRvIG1vcmUgZ3JvdXBzLCBldGMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworT1BUSU1JWkVfT1VUUFVUX1NMSUNFICA9IE5PCisKICMgRG94eWdlbiBzZWxlY3RzIHRoZSBwYXJzZXIgdG8gdXNlIGRlcGVuZGluZyBvbiB0aGUgZXh0ZW5zaW9uIG9mIHRoZSBmaWxlcyBpdAogIyBwYXJzZXMuIFdpdGggdGhpcyB0YWcgeW91IGNhbiBhc3NpZ24gd2hpY2ggcGFyc2VyIHRvIHVzZSBmb3IgYSBnaXZlbgogIyBleHRlbnNpb24uIERveHlnZW4gaGFzIGEgYnVpbHQtaW4gbWFwcGluZywgYnV0IHlvdSBjYW4gb3ZlcnJpZGUgb3IgZXh0ZW5kIGl0CiAjIHVzaW5nIHRoaXMgdGFnLiBUaGUgZm9ybWF0IGlzIGV4dD1sYW5ndWFnZSwgd2hlcmUgZXh0IGlzIGEgZmlsZSBleHRlbnNpb24sIGFuZAotIyBsYW5ndWFnZSBpcyBvbmUgb2YgdGhlIHBhcnNlcnMgc3VwcG9ydGVkIGJ5IGRveHlnZW46IElETCwgSmF2YSwgSmF2YXNjcmlwdCwKLSMgQyMsIEMsIEMrKywgRCwgUEhQLCBPYmplY3RpdmUtQywgUHl0aG9uLCBGb3J0cmFuIChmaXhlZCBmb3JtYXQgRm9ydHJhbjoKLSMgRm9ydHJhbkZpeGVkLCBmcmVlIGZvcm1hdHRlZCBGb3J0cmFuOiBGb3J0cmFuRnJlZSwgdW5rbm93biBmb3JtYXR0ZWQgRm9ydHJhbjoKLSMgRm9ydHJhbi4gSW4gdGhlIGxhdGVyIGNhc2UgdGhlIHBhcnNlciB0cmllcyB0byBndWVzcyB3aGV0aGVyIHRoZSBjb2RlIGlzIGZpeGVkCi0jIG9yIGZyZWUgZm9ybWF0dGVkIGNvZGUsIHRoaXMgaXMgdGhlIGRlZmF1bHQgZm9yIEZvcnRyYW4gdHlwZSBmaWxlcyksIFZIREwuIEZvcgotIyBpbnN0YW5jZSB0byBtYWtlIGRveHlnZW4gdHJlYXQgLmluYyBmaWxlcyBhcyBGb3J0cmFuIGZpbGVzIChkZWZhdWx0IGlzIFBIUCksCi0jIGFuZCAuZiBmaWxlcyBhcyBDIChkZWZhdWx0IGlzIEZvcnRyYW4pLCB1c2U6IGluYz1Gb3J0cmFuIGY9Qy4KKyMgbGFuZ3VhZ2UgaXMgb25lIG9mIHRoZSBwYXJzZXJzIHN1cHBvcnRlZCBieSBEb3h5Z2VuOiBJREwsIEphdmEsIEphdmFTY3JpcHQsCisjIENzaGFycCAoQyMpLCBDLCBDKyssIExleCwgRCwgUEhQLCBtZCAoTWFya2Rvd24pLCBPYmplY3RpdmUtQywgUHl0aG9uLCBTbGljZSwKKyMgVkhETCwgRm9ydHJhbiAoZml4ZWQgZm9ybWF0IEZvcnRyYW46IEZvcnRyYW5GaXhlZCwgZnJlZSBmb3JtYXR0ZWQgRm9ydHJhbjoKKyMgRm9ydHJhbkZyZWUsIHVua25vd24gZm9ybWF0dGVkIEZvcnRyYW46IEZvcnRyYW4uIEluIHRoZSBsYXRlciBjYXNlIHRoZSBwYXJzZXIKKyMgdHJpZXMgdG8gZ3Vlc3Mgd2hldGhlciB0aGUgY29kZSBpcyBmaXhlZCBvciBmcmVlIGZvcm1hdHRlZCBjb2RlLCB0aGlzIGlzIHRoZQorIyBkZWZhdWx0IGZvciBGb3J0cmFuIHR5cGUgZmlsZXMpLiBGb3IgaW5zdGFuY2UgdG8gbWFrZSBEb3h5Z2VuIHRyZWF0IC5pbmMgZmlsZXMKKyMgYXMgRm9ydHJhbiBmaWxlcyAoZGVmYXVsdCBpcyBQSFApLCBhbmQgLmYgZmlsZXMgYXMgQyAoZGVmYXVsdCBpcyBGb3J0cmFuKSwKKyMgdXNlOiBpbmM9Rm9ydHJhbiBmPUMuCiAjCiAjIE5vdGU6IEZvciBmaWxlcyB3aXRob3V0IGV4dGVuc2lvbiB5b3UgY2FuIHVzZSBub19leHRlbnNpb24gYXMgYSBwbGFjZWhvbGRlci4KICMKICMgTm90ZSB0aGF0IGZvciBjdXN0b20gZXh0ZW5zaW9ucyB5b3UgYWxzbyBuZWVkIHRvIHNldCBGSUxFX1BBVFRFUk5TIG90aGVyd2lzZQotIyB0aGUgZmlsZXMgYXJlIG5vdCByZWFkIGJ5IGRveHlnZW4uCisjIHRoZSBmaWxlcyBhcmUgbm90IHJlYWQgYnkgRG94eWdlbi4gV2hlbiBzcGVjaWZ5aW5nIG5vX2V4dGVuc2lvbiB5b3Ugc2hvdWxkIGFkZAorIyAqIHRvIHRoZSBGSUxFX1BBVFRFUk5TLgorIworIyBOb3RlIHNlZSBhbHNvIHRoZSBsaXN0IG9mIGRlZmF1bHQgZmlsZSBleHRlbnNpb24gbWFwcGluZ3MuCiAKIEVYVEVOU0lPTl9NQVBQSU5HICAgICAgPQogCi0jIElmIHRoZSBNQVJLRE9XTl9TVVBQT1JUIHRhZyBpcyBlbmFibGVkIHRoZW4gZG94eWdlbiBwcmUtcHJvY2Vzc2VzIGFsbCBjb21tZW50cworIyBJZiB0aGUgTUFSS0RPV05fU1VQUE9SVCB0YWcgaXMgZW5hYmxlZCB0aGVuIERveHlnZW4gcHJlLXByb2Nlc3NlcyBhbGwgY29tbWVudHMKICMgYWNjb3JkaW5nIHRvIHRoZSBNYXJrZG93biBmb3JtYXQsIHdoaWNoIGFsbG93cyBmb3IgbW9yZSByZWFkYWJsZQotIyBkb2N1bWVudGF0aW9uLiBTZWUgaHR0cDovL2RhcmluZ2ZpcmViYWxsLm5ldC9wcm9qZWN0cy9tYXJrZG93bi8gZm9yIGRldGFpbHMuCi0jIFRoZSBvdXRwdXQgb2YgbWFya2Rvd24gcHJvY2Vzc2luZyBpcyBmdXJ0aGVyIHByb2Nlc3NlZCBieSBkb3h5Z2VuLCBzbyB5b3UgY2FuCi0jIG1peCBkb3h5Z2VuLCBIVE1MLCBhbmQgWE1MIGNvbW1hbmRzIHdpdGggTWFya2Rvd24gZm9ybWF0dGluZy4gRGlzYWJsZSBvbmx5IGluCisjIGRvY3VtZW50YXRpb24uIFNlZSBodHRwczovL2RhcmluZ2ZpcmViYWxsLm5ldC9wcm9qZWN0cy9tYXJrZG93bi8gZm9yIGRldGFpbHMuCisjIFRoZSBvdXRwdXQgb2YgbWFya2Rvd24gcHJvY2Vzc2luZyBpcyBmdXJ0aGVyIHByb2Nlc3NlZCBieSBEb3h5Z2VuLCBzbyB5b3UgY2FuCisjIG1peCBEb3h5Z2VuLCBIVE1MLCBhbmQgWE1MIGNvbW1hbmRzIHdpdGggTWFya2Rvd24gZm9ybWF0dGluZy4gRGlzYWJsZSBvbmx5IGluCiAjIGNhc2Ugb2YgYmFja3dhcmQgY29tcGF0aWJpbGl0aWVzIGlzc3Vlcy4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIApAQCAtMzA3LDEyICszNjQsMjMgQEAKICMgdG8gdGhhdCBsZXZlbCBhcmUgYXV0b21hdGljYWxseSBpbmNsdWRlZCBpbiB0aGUgdGFibGUgb2YgY29udGVudHMsIGV2ZW4gaWYKICMgdGhleSBkbyBub3QgaGF2ZSBhbiBpZCBhdHRyaWJ1dGUuCiAjIE5vdGU6IFRoaXMgZmVhdHVyZSBjdXJyZW50bHkgYXBwbGllcyBvbmx5IHRvIE1hcmtkb3duIGhlYWRpbmdzLgotIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiA5OSwgZGVmYXVsdCB2YWx1ZTogMC4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogOTksIGRlZmF1bHQgdmFsdWU6IDYuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBNQVJLRE9XTl9TVVBQT1JUIGlzIHNldCB0byBZRVMuCiAKIFRPQ19JTkNMVURFX0hFQURJTkdTICAgPSAwCiAKLSMgV2hlbiBlbmFibGVkIGRveHlnZW4gdHJpZXMgdG8gbGluayB3b3JkcyB0aGF0IGNvcnJlc3BvbmQgdG8gZG9jdW1lbnRlZAorIyBUaGUgTUFSS0RPV05fSURfU1RZTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGFsZ29yaXRobSB1c2VkIHRvCisjIGdlbmVyYXRlIGlkZW50aWZpZXJzIGZvciB0aGUgTWFya2Rvd24gaGVhZGluZ3MuIE5vdGU6IEV2ZXJ5IGlkZW50aWZpZXIgaXMKKyMgdW5pcXVlLgorIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBET1hZR0VOIHVzZSBhIGZpeGVkICdhdXRvdG9jX21kJyBzdHJpbmcgZm9sbG93ZWQgYnkgYQorIyBzZXF1ZW5jZSBudW1iZXIgc3RhcnRpbmcgYXQgMCBhbmQgR0lUSFVCIHVzZSB0aGUgbG93ZXIgY2FzZSB2ZXJzaW9uIG9mIHRpdGxlCisjIHdpdGggYW55IHdoaXRlc3BhY2UgcmVwbGFjZWQgYnkgJy0nIGFuZCBwdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIHJlbW92ZWQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBET1hZR0VOLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgTUFSS0RPV05fU1VQUE9SVCBpcyBzZXQgdG8gWUVTLgorCitNQVJLRE9XTl9JRF9TVFlMRSAgICAgID0gRE9YWUdFTgorCisjIFdoZW4gZW5hYmxlZCBEb3h5Z2VuIHRyaWVzIHRvIGxpbmsgd29yZHMgdGhhdCBjb3JyZXNwb25kIHRvIGRvY3VtZW50ZWQKICMgY2xhc3Nlcywgb3IgbmFtZXNwYWNlcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIGRvY3VtZW50YXRpb24uIFN1Y2ggYSBsaW5rIGNhbgogIyBiZSBwcmV2ZW50ZWQgaW4gaW5kaXZpZHVhbCBjYXNlcyBieSBwdXR0aW5nIGEgJSBzaWduIGluIGZyb250IG9mIHRoZSB3b3JkIG9yCiAjIGdsb2JhbGx5IGJ5IHNldHRpbmcgQVVUT0xJTktfU1VQUE9SVCB0byBOTy4KQEAgLTMyMiwxMCArMzkwLDEwIEBACiAKICMgSWYgeW91IHVzZSBTVEwgY2xhc3NlcyAoaS5lLiBzdGQ6OnN0cmluZywgc3RkOjp2ZWN0b3IsIGV0Yy4pIGJ1dCBkbyBub3Qgd2FudAogIyB0byBpbmNsdWRlIChhIHRhZyBmaWxlIGZvcikgdGhlIFNUTCBzb3VyY2VzIGFzIGlucHV0LCB0aGVuIHlvdSBzaG91bGQgc2V0IHRoaXMKLSMgdGFnIHRvIFlFUyBpbiBvcmRlciB0byBsZXQgZG94eWdlbiBtYXRjaCBmdW5jdGlvbnMgZGVjbGFyYXRpb25zIGFuZAorIyB0YWcgdG8gWUVTIGluIG9yZGVyIHRvIGxldCBEb3h5Z2VuIG1hdGNoIGZ1bmN0aW9ucyBkZWNsYXJhdGlvbnMgYW5kCiAjIGRlZmluaXRpb25zIHdob3NlIGFyZ3VtZW50cyBjb250YWluIFNUTCBjbGFzc2VzIChlLmcuIGZ1bmMoc3RkOjpzdHJpbmcpOwotIyB2ZXJzdXMgZnVuYyhzdGQ6OnN0cmluZykge30pLiBUaGlzIGFsc28gbWFrZSB0aGUgaW5oZXJpdGFuY2UgYW5kIGNvbGxhYm9yYXRpb24KLSMgZGlhZ3JhbXMgdGhhdCBpbnZvbHZlIFNUTCBjbGFzc2VzIG1vcmUgY29tcGxldGUgYW5kIGFjY3VyYXRlLgorIyB2ZXJzdXMgZnVuYyhzdGQ6OnN0cmluZykge30pLiBUaGlzIGFsc28gbWFrZXMgdGhlIGluaGVyaXRhbmNlIGFuZAorIyBjb2xsYWJvcmF0aW9uIGRpYWdyYW1zIHRoYXQgaW52b2x2ZSBTVEwgY2xhc3NlcyBtb3JlIGNvbXBsZXRlIGFuZCBhY2N1cmF0ZS4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBCVUlMVElOX1NUTF9TVVBQT1JUICAgID0gTk8KQEAgLTMzNywxNiArNDA1LDE2IEBACiBDUFBfQ0xJX1NVUFBPUlQgICAgICAgID0gTk8KIAogIyBTZXQgdGhlIFNJUF9TVVBQT1JUIHRhZyB0byBZRVMgaWYgeW91ciBwcm9qZWN0IGNvbnNpc3RzIG9mIHNpcCAoc2VlOgotIyBodHRwOi8vd3d3LnJpdmVyYmFua2NvbXB1dGluZy5jby51ay9zb2Z0d2FyZS9zaXAvaW50cm8pIHNvdXJjZXMgb25seS4gRG94eWdlbgotIyB3aWxsIHBhcnNlIHRoZW0gbGlrZSBub3JtYWwgQysrIGJ1dCB3aWxsIGFzc3VtZSBhbGwgY2xhc3NlcyB1c2UgcHVibGljIGluc3RlYWQKLSMgb2YgcHJpdmF0ZSBpbmhlcml0YW5jZSB3aGVuIG5vIGV4cGxpY2l0IHByb3RlY3Rpb24ga2V5d29yZCBpcyBwcmVzZW50LgorIyBodHRwczovL3d3dy5yaXZlcmJhbmtjb21wdXRpbmcuY29tL3NvZnR3YXJlKSBzb3VyY2VzIG9ubHkuIERveHlnZW4gd2lsbCBwYXJzZQorIyB0aGVtIGxpa2Ugbm9ybWFsIEMrKyBidXQgd2lsbCBhc3N1bWUgYWxsIGNsYXNzZXMgdXNlIHB1YmxpYyBpbnN0ZWFkIG9mIHByaXZhdGUKKyMgaW5oZXJpdGFuY2Ugd2hlbiBubyBleHBsaWNpdCBwcm90ZWN0aW9uIGtleXdvcmQgaXMgcHJlc2VudC4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBTSVBfU1VQUE9SVCAgICAgICAgICAgID0gTk8KIAogIyBGb3IgTWljcm9zb2Z0J3MgSURMIHRoZXJlIGFyZSBwcm9wZ2V0IGFuZCBwcm9wcHV0IGF0dHJpYnV0ZXMgdG8gaW5kaWNhdGUKICMgZ2V0dGVyIGFuZCBzZXR0ZXIgbWV0aG9kcyBmb3IgYSBwcm9wZXJ0eS4gU2V0dGluZyB0aGlzIG9wdGlvbiB0byBZRVMgd2lsbCBtYWtlCi0jIGRveHlnZW4gdG8gcmVwbGFjZSB0aGUgZ2V0IGFuZCBzZXQgbWV0aG9kcyBieSBhIHByb3BlcnR5IGluIHRoZSBkb2N1bWVudGF0aW9uLgorIyBEb3h5Z2VuIHRvIHJlcGxhY2UgdGhlIGdldCBhbmQgc2V0IG1ldGhvZHMgYnkgYSBwcm9wZXJ0eSBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KICMgVGhpcyB3aWxsIG9ubHkgd29yayBpZiB0aGUgbWV0aG9kcyBhcmUgaW5kZWVkIGdldHRpbmcgb3Igc2V0dGluZyBhIHNpbXBsZQogIyB0eXBlLiBJZiB0aGlzIGlzIG5vdCB0aGUgY2FzZSwgb3IgeW91IHdhbnQgdG8gc2hvdyB0aGUgbWV0aG9kcyBhbnl3YXksIHlvdQogIyBzaG91bGQgc2V0IHRoaXMgb3B0aW9uIHRvIE5PLgpAQCAtMzU1LDcgKzQyMyw3IEBACiBJRExfUFJPUEVSVFlfU1VQUE9SVCAgID0gWUVTCiAKICMgSWYgbWVtYmVyIGdyb3VwaW5nIGlzIHVzZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kIHRoZSBESVNUUklCVVRFX0dST1VQX0RPQwotIyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCByZXVzZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZmlyc3QKKyMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgcmV1c2UgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGZpcnN0CiAjIG1lbWJlciBpbiB0aGUgZ3JvdXAgKGlmIGFueSkgZm9yIHRoZSBvdGhlciBtZW1iZXJzIG9mIHRoZSBncm91cC4gQnkgZGVmYXVsdAogIyBhbGwgbWVtYmVycyBvZiBhIGdyb3VwIG11c3QgYmUgZG9jdW1lbnRlZCBleHBsaWNpdGx5LgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCkBAIC00MTMsMjEgKzQ4MSw0MiBAQAogIyBUaGUgc2l6ZSBvZiB0aGUgc3ltYm9sIGxvb2t1cCBjYWNoZSBjYW4gYmUgc2V0IHVzaW5nIExPT0tVUF9DQUNIRV9TSVpFLiBUaGlzCiAjIGNhY2hlIGlzIHVzZWQgdG8gcmVzb2x2ZSBzeW1ib2xzIGdpdmVuIHRoZWlyIG5hbWUgYW5kIHNjb3BlLiBTaW5jZSB0aGlzIGNhbiBiZQogIyBhbiBleHBlbnNpdmUgcHJvY2VzcyBhbmQgb2Z0ZW4gdGhlIHNhbWUgc3ltYm9sIGFwcGVhcnMgbXVsdGlwbGUgdGltZXMgaW4gdGhlCi0jIGNvZGUsIGRveHlnZW4ga2VlcHMgYSBjYWNoZSBvZiBwcmUtcmVzb2x2ZWQgc3ltYm9scy4gSWYgdGhlIGNhY2hlIGlzIHRvbyBzbWFsbAotIyBkb3h5Z2VuIHdpbGwgYmVjb21lIHNsb3dlci4gSWYgdGhlIGNhY2hlIGlzIHRvbyBsYXJnZSwgbWVtb3J5IGlzIHdhc3RlZC4gVGhlCisjIGNvZGUsIERveHlnZW4ga2VlcHMgYSBjYWNoZSBvZiBwcmUtcmVzb2x2ZWQgc3ltYm9scy4gSWYgdGhlIGNhY2hlIGlzIHRvbyBzbWFsbAorIyBEb3h5Z2VuIHdpbGwgYmVjb21lIHNsb3dlci4gSWYgdGhlIGNhY2hlIGlzIHRvbyBsYXJnZSwgbWVtb3J5IGlzIHdhc3RlZC4gVGhlCiAjIGNhY2hlIHNpemUgaXMgZ2l2ZW4gYnkgdGhpcyBmb3JtdWxhOiAyXigxNitMT09LVVBfQ0FDSEVfU0laRSkuIFRoZSB2YWxpZCByYW5nZQogIyBpcyAwLi45LCB0aGUgZGVmYXVsdCBpcyAwLCBjb3JyZXNwb25kaW5nIHRvIGEgY2FjaGUgc2l6ZSBvZiAyXjE2PTY1NTM2Ci0jIHN5bWJvbHMuIEF0IHRoZSBlbmQgb2YgYSBydW4gZG94eWdlbiB3aWxsIHJlcG9ydCB0aGUgY2FjaGUgdXNhZ2UgYW5kIHN1Z2dlc3QKKyMgc3ltYm9scy4gQXQgdGhlIGVuZCBvZiBhIHJ1biBEb3h5Z2VuIHdpbGwgcmVwb3J0IHRoZSBjYWNoZSB1c2FnZSBhbmQgc3VnZ2VzdAogIyB0aGUgb3B0aW1hbCBjYWNoZSBzaXplIGZyb20gYSBzcGVlZCBwb2ludCBvZiB2aWV3LgogIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiA5LCBkZWZhdWx0IHZhbHVlOiAwLgogCiBMT09LVVBfQ0FDSEVfU0laRSAgICAgID0gMAogCisjIFRoZSBOVU1fUFJPQ19USFJFQURTIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHRocmVhZHMgRG94eWdlbiBpcyBhbGxvd2VkIHRvIHVzZQorIyBkdXJpbmcgcHJvY2Vzc2luZy4gV2hlbiBzZXQgdG8gMCBEb3h5Z2VuIHdpbGwgYmFzZWQgdGhpcyBvbiB0aGUgbnVtYmVyIG9mCisjIGNvcmVzIGF2YWlsYWJsZSBpbiB0aGUgc3lzdGVtLiBZb3UgY2FuIHNldCBpdCBleHBsaWNpdGx5IHRvIGEgdmFsdWUgbGFyZ2VyCisjIHRoYW4gMCB0byBnZXQgbW9yZSBjb250cm9sIG92ZXIgdGhlIGJhbGFuY2UgYmV0d2VlbiBDUFUgbG9hZCBhbmQgcHJvY2Vzc2luZworIyBzcGVlZC4gQXQgdGhpcyBtb21lbnQgb25seSB0aGUgaW5wdXQgcHJvY2Vzc2luZyBjYW4gYmUgZG9uZSB1c2luZyBtdWx0aXBsZQorIyB0aHJlYWRzLiBTaW5jZSB0aGlzIGlzIHN0aWxsIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlIHRoZSBkZWZhdWx0IGlzIHNldCB0byAxLAorIyB3aGljaCBlZmZlY3RpdmVseSBkaXNhYmxlcyBwYXJhbGxlbCBwcm9jZXNzaW5nLiBQbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgeW91CisjIGVuY291bnRlci4gR2VuZXJhdGluZyBkb3QgZ3JhcGhzIGluIHBhcmFsbGVsIGlzIGNvbnRyb2xsZWQgYnkgdGhlCisjIERPVF9OVU1fVEhSRUFEUyBzZXR0aW5nLgorIyBNaW5pbXVtIHZhbHVlOiAwLCBtYXhpbXVtIHZhbHVlOiAzMiwgZGVmYXVsdCB2YWx1ZTogMS4KKworTlVNX1BST0NfVEhSRUFEUyAgICAgICA9IDEKKworIyBJZiB0aGUgVElNRVNUQU1QIHRhZyBpcyBzZXQgZGlmZmVyZW50IGZyb20gTk8gdGhlbiBlYWNoIGdlbmVyYXRlZCBwYWdlIHdpbGwKKyMgY29udGFpbiB0aGUgZGF0ZSBvciBkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIHBhZ2Ugd2FzIGdlbmVyYXRlZC4gU2V0dGluZyB0aGlzIHRvCisjIE5PIGNhbiBoZWxwIHdoZW4gY29tcGFyaW5nIHRoZSBvdXRwdXQgb2YgbXVsdGlwbGUgcnVucy4KKyMgUG9zc2libGUgdmFsdWVzIGFyZTogWUVTLCBOTywgREFURVRJTUUgYW5kIERBVEUuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworVElNRVNUQU1QICAgICAgICAgICAgICA9IE5PCisKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgQnVpbGQgcmVsYXRlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgRVhUUkFDVF9BTEwgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBhc3N1bWUgYWxsIGVudGl0aWVzIGluCisjIElmIHRoZSBFWFRSQUNUX0FMTCB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIGFzc3VtZSBhbGwgZW50aXRpZXMgaW4KICMgZG9jdW1lbnRhdGlvbiBhcmUgZG9jdW1lbnRlZCwgZXZlbiBpZiBubyBkb2N1bWVudGF0aW9uIHdhcyBhdmFpbGFibGUuIFByaXZhdGUKICMgY2xhc3MgbWVtYmVycyBhbmQgc3RhdGljIGZpbGUgbWVtYmVycyB3aWxsIGJlIGhpZGRlbiB1bmxlc3MgdGhlCiAjIEVYVFJBQ1RfUFJJVkFURSByZXNwZWN0aXZlbHkgRVhUUkFDVF9TVEFUSUMgdGFncyBhcmUgc2V0IHRvIFlFUy4KQEAgLTQ0Myw2ICs1MzIsMTIgQEAKIAogRVhUUkFDVF9QUklWQVRFICAgICAgICA9IE5PCiAKKyMgSWYgdGhlIEVYVFJBQ1RfUFJJVl9WSVJUVUFMIHRhZyBpcyBzZXQgdG8gWUVTLCBkb2N1bWVudGVkIHByaXZhdGUgdmlydHVhbAorIyBtZXRob2RzIG9mIGEgY2xhc3Mgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitFWFRSQUNUX1BSSVZfVklSVFVBTCAgID0gTk8KKwogIyBJZiB0aGUgRVhUUkFDVF9QQUNLQUdFIHRhZyBpcyBzZXQgdG8gWUVTLCBhbGwgbWVtYmVycyB3aXRoIHBhY2thZ2Ugb3IgaW50ZXJuYWwKICMgc2NvcGUgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgpAQCAtNDgwLDcgKzU3NSwxNCBAQAogCiBFWFRSQUNUX0FOT05fTlNQQUNFUyAgID0gTk8KIAotIyBJZiB0aGUgSElERV9VTkRPQ19NRU1CRVJTIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgaGlkZSBhbGwKKyMgSWYgdGhpcyBmbGFnIGlzIHNldCB0byBZRVMsIHRoZSBuYW1lIG9mIGFuIHVubmFtZWQgcGFyYW1ldGVyIGluIGEgZGVjbGFyYXRpb24KKyMgd2lsbCBiZSBkZXRlcm1pbmVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nIGRlZmluaXRpb24uIEJ5IGRlZmF1bHQgdW5uYW1lZAorIyBwYXJhbWV0ZXJzIHJlbWFpbiB1bm5hbWVkIGluIHRoZSBvdXRwdXQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1JFU09MVkVfVU5OQU1FRF9QQVJBTVMgPSBZRVMKKworIyBJZiB0aGUgSElERV9VTkRPQ19NRU1CRVJTIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgaGlkZSBhbGwKICMgdW5kb2N1bWVudGVkIG1lbWJlcnMgaW5zaWRlIGRvY3VtZW50ZWQgY2xhc3NlcyBvciBmaWxlcy4gSWYgc2V0IHRvIE5PIHRoZXNlCiAjIG1lbWJlcnMgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgdmFyaW91cyBvdmVydmlld3MsIGJ1dCBubyBkb2N1bWVudGF0aW9uCiAjIHNlY3Rpb24gaXMgZ2VuZXJhdGVkLiBUaGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0IGlmIEVYVFJBQ1RfQUxMIGlzIGVuYWJsZWQuCkBAIC00ODgsMjIgKzU5MCwyMyBAQAogCiBISURFX1VORE9DX01FTUJFUlMgICAgID0gWUVTCiAKLSMgSWYgdGhlIEhJREVfVU5ET0NfQ0xBU1NFUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhpZGUgYWxsCisjIElmIHRoZSBISURFX1VORE9DX0NMQVNTRVMgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBoaWRlIGFsbAogIyB1bmRvY3VtZW50ZWQgY2xhc3NlcyB0aGF0IGFyZSBub3JtYWxseSB2aXNpYmxlIGluIHRoZSBjbGFzcyBoaWVyYXJjaHkuIElmIHNldAogIyB0byBOTywgdGhlc2UgY2xhc3NlcyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSB2YXJpb3VzIG92ZXJ2aWV3cy4gVGhpcyBvcHRpb24KLSMgaGFzIG5vIGVmZmVjdCBpZiBFWFRSQUNUX0FMTCBpcyBlbmFibGVkLgorIyB3aWxsIGFsc28gaGlkZSB1bmRvY3VtZW50ZWQgQysrIGNvbmNlcHRzIGlmIGVuYWJsZWQuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QKKyMgaWYgRVhUUkFDVF9BTEwgaXMgZW5hYmxlZC4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBISURFX1VORE9DX0NMQVNTRVMgICAgID0gWUVTCiAKLSMgSWYgdGhlIEhJREVfRlJJRU5EX0NPTVBPVU5EUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhpZGUgYWxsIGZyaWVuZAotIyAoY2xhc3N8c3RydWN0fHVuaW9uKSBkZWNsYXJhdGlvbnMuIElmIHNldCB0byBOTywgdGhlc2UgZGVjbGFyYXRpb25zIHdpbGwgYmUKLSMgaW5jbHVkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uCisjIElmIHRoZSBISURFX0ZSSUVORF9DT01QT1VORFMgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBoaWRlIGFsbCBmcmllbmQKKyMgZGVjbGFyYXRpb25zLiBJZiBzZXQgdG8gTk8sIHRoZXNlIGRlY2xhcmF0aW9ucyB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZQorIyBkb2N1bWVudGF0aW9uLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEhJREVfRlJJRU5EX0NPTVBPVU5EUyAgPSBOTwogCi0jIElmIHRoZSBISURFX0lOX0JPRFlfRE9DUyB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGhpZGUgYW55CisjIElmIHRoZSBISURFX0lOX0JPRFlfRE9DUyB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIGhpZGUgYW55CiAjIGRvY3VtZW50YXRpb24gYmxvY2tzIGZvdW5kIGluc2lkZSB0aGUgYm9keSBvZiBhIGZ1bmN0aW9uLiBJZiBzZXQgdG8gTk8sIHRoZXNlCiAjIGJsb2NrcyB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZSBmdW5jdGlvbidzIGRldGFpbGVkIGRvY3VtZW50YXRpb24gYmxvY2suCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KQEAgLTUxNywzMCArNjIwLDQ0IEBACiAKIElOVEVSTkFMX0RPQ1MgICAgICAgICAgPSBOTwogCi0jIElmIHRoZSBDQVNFX1NFTlNFX05BTUVTIHRhZyBpcyBzZXQgdG8gTk8gdGhlbiBkb3h5Z2VuIHdpbGwgb25seSBnZW5lcmF0ZSBmaWxlCi0jIG5hbWVzIGluIGxvd2VyLWNhc2UgbGV0dGVycy4gSWYgc2V0IHRvIFlFUywgdXBwZXItY2FzZSBsZXR0ZXJzIGFyZSBhbHNvCi0jIGFsbG93ZWQuIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBoYXZlIGNsYXNzZXMgb3IgZmlsZXMgd2hvc2UgbmFtZXMgb25seSBkaWZmZXIKLSMgaW4gY2FzZSBhbmQgaWYgeW91ciBmaWxlIHN5c3RlbSBzdXBwb3J0cyBjYXNlIHNlbnNpdGl2ZSBmaWxlIG5hbWVzLiBXaW5kb3dzCi0jIGFuZCBNYWMgdXNlcnMgYXJlIGFkdmlzZWQgdG8gc2V0IHRoaXMgb3B0aW9uIHRvIE5PLgotIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogc3lzdGVtIGRlcGVuZGVudC4KKyMgV2l0aCB0aGUgY29ycmVjdCBzZXR0aW5nIG9mIG9wdGlvbiBDQVNFX1NFTlNFX05BTUVTIERveHlnZW4gd2lsbCBiZXR0ZXIgYmUKKyMgYWJsZSB0byBtYXRjaCB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSB1bmRlcmx5aW5nIGZpbGVzeXN0ZW0uIEluIGNhc2UgdGhlCisjIGZpbGVzeXN0ZW0gaXMgY2FzZSBzZW5zaXRpdmUgKGkuZS4gaXQgc3VwcG9ydHMgZmlsZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5CisjIHdob3NlIG5hbWVzIG9ubHkgZGlmZmVyIGluIGNhc2luZyksIHRoZSBvcHRpb24gbXVzdCBiZSBzZXQgdG8gWUVTIHRvIHByb3Blcmx5CisjIGRlYWwgd2l0aCBzdWNoIGZpbGVzIGluIGNhc2UgdGhleSBhcHBlYXIgaW4gdGhlIGlucHV0LiBGb3IgZmlsZXN5c3RlbXMgdGhhdAorIyBhcmUgbm90IGNhc2Ugc2Vuc2l0aXZlIHRoZSBvcHRpb24gc2hvdWxkIGJlIHNldCB0byBOTyB0byBwcm9wZXJseSBkZWFsIHdpdGgKKyMgb3V0cHV0IGZpbGVzIHdyaXR0ZW4gZm9yIHN5bWJvbHMgdGhhdCBvbmx5IGRpZmZlciBpbiBjYXNpbmcsIHN1Y2ggYXMgZm9yIHR3bworIyBjbGFzc2VzLCBvbmUgbmFtZWQgQ0xBU1MgYW5kIHRoZSBvdGhlciBuYW1lZCBDbGFzcywgYW5kIHRvIGFsc28gc3VwcG9ydAorIyByZWZlcmVuY2VzIHRvIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRvIHNwZWNpZnkgdGhlIGV4YWN0IG1hdGNoaW5nIGNhc2luZy4gT24KKyMgV2luZG93cyAoaW5jbHVkaW5nIEN5Z3dpbikgYW5kIG1hY09TLCB1c2VycyBzaG91bGQgdHlwaWNhbGx5IHNldCB0aGlzIG9wdGlvbgorIyB0byBOTywgd2hlcmVhcyBvbiBMaW51eCBvciBvdGhlciBVbml4IGZsYXZvcnMgaXQgc2hvdWxkIHR5cGljYWxseSBiZSBzZXQgdG8KKyMgWUVTLgorIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBTWVNURU0sIE5PIGFuZCBZRVMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBTWVNURU0uCiAKIENBU0VfU0VOU0VfTkFNRVMgICAgICAgPSBOTwogCi0jIElmIHRoZSBISURFX1NDT1BFX05BTUVTIHRhZyBpcyBzZXQgdG8gTk8gdGhlbiBkb3h5Z2VuIHdpbGwgc2hvdyBtZW1iZXJzIHdpdGgKKyMgSWYgdGhlIEhJREVfU0NPUEVfTkFNRVMgdGFnIGlzIHNldCB0byBOTyB0aGVuIERveHlnZW4gd2lsbCBzaG93IG1lbWJlcnMgd2l0aAogIyB0aGVpciBmdWxsIGNsYXNzIGFuZCBuYW1lc3BhY2Ugc2NvcGVzIGluIHRoZSBkb2N1bWVudGF0aW9uLiBJZiBzZXQgdG8gWUVTLCB0aGUKICMgc2NvcGUgd2lsbCBiZSBoaWRkZW4uCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogSElERV9TQ09QRV9OQU1FUyAgICAgICA9IE5PCiAKLSMgSWYgdGhlIEhJREVfQ09NUE9VTkRfUkVGRVJFTkNFIHRhZyBpcyBzZXQgdG8gTk8gKGRlZmF1bHQpIHRoZW4gZG94eWdlbiB3aWxsCisjIElmIHRoZSBISURFX0NPTVBPVU5EX1JFRkVSRU5DRSB0YWcgaXMgc2V0IHRvIE5PIChkZWZhdWx0KSB0aGVuIERveHlnZW4gd2lsbAogIyBhcHBlbmQgYWRkaXRpb25hbCB0ZXh0IHRvIGEgcGFnZSdzIHRpdGxlLCBzdWNoIGFzIENsYXNzIFJlZmVyZW5jZS4gSWYgc2V0IHRvCiAjIFlFUyB0aGUgY29tcG91bmQgcmVmZXJlbmNlIHdpbGwgYmUgaGlkZGVuLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEhJREVfQ09NUE9VTkRfUkVGRVJFTkNFPSBOTwogCi0jIElmIHRoZSBTSE9XX0lOQ0xVREVfRklMRVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgcHV0IGEgbGlzdCBvZgorIyBJZiB0aGUgU0hPV19IRUFERVJGSUxFIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIGRvY3VtZW50YXRpb24gZm9yIGEgY2xhc3MKKyMgd2lsbCBzaG93IHdoaWNoIGZpbGUgbmVlZHMgdG8gYmUgaW5jbHVkZWQgdG8gdXNlIHRoZSBjbGFzcy4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KKworU0hPV19IRUFERVJGSUxFICAgICAgICA9IFlFUworCisjIElmIHRoZSBTSE9XX0lOQ0xVREVfRklMRVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgcHV0IGEgbGlzdCBvZgogIyB0aGUgZmlsZXMgdGhhdCBhcmUgaW5jbHVkZWQgYnkgYSBmaWxlIGluIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoYXQgZmlsZS4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIApAQCAtNTUzLDcgKzY3MCw3IEBACiAKIFNIT1dfR1JPVVBFRF9NRU1CX0lOQyAgPSBOTwogCi0jIElmIHRoZSBGT1JDRV9MT0NBTF9JTkNMVURFUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBsaXN0IGluY2x1ZGUKKyMgSWYgdGhlIEZPUkNFX0xPQ0FMX0lOQ0xVREVTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIGxpc3QgaW5jbHVkZQogIyBmaWxlcyB3aXRoIGRvdWJsZSBxdW90ZXMgaW4gdGhlIGRvY3VtZW50YXRpb24gcmF0aGVyIHRoYW4gd2l0aCBzaGFycCBicmFja2V0cy4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCkBAIC01NjUsMTQgKzY4MiwxNCBAQAogCiBJTkxJTkVfSU5GTyAgICAgICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIFNPUlRfTUVNQkVSX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgc29ydCB0aGUKKyMgSWYgdGhlIFNPUlRfTUVNQkVSX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgc29ydCB0aGUKICMgKGRldGFpbGVkKSBkb2N1bWVudGF0aW9uIG9mIGZpbGUgYW5kIGNsYXNzIG1lbWJlcnMgYWxwaGFiZXRpY2FsbHkgYnkgbWVtYmVyCiAjIG5hbWUuIElmIHNldCB0byBOTywgdGhlIG1lbWJlcnMgd2lsbCBhcHBlYXIgaW4gZGVjbGFyYXRpb24gb3JkZXIuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIFNPUlRfTUVNQkVSX0RPQ1MgICAgICAgPSBZRVMKIAotIyBJZiB0aGUgU09SVF9CUklFRl9ET0NTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIHNvcnQgdGhlIGJyaWVmCisjIElmIHRoZSBTT1JUX0JSSUVGX0RPQ1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgc29ydCB0aGUgYnJpZWYKICMgZGVzY3JpcHRpb25zIG9mIGZpbGUsIG5hbWVzcGFjZSBhbmQgY2xhc3MgbWVtYmVycyBhbHBoYWJldGljYWxseSBieSBtZW1iZXIKICMgbmFtZS4gSWYgc2V0IHRvIE5PLCB0aGUgbWVtYmVycyB3aWxsIGFwcGVhciBpbiBkZWNsYXJhdGlvbiBvcmRlci4gTm90ZSB0aGF0CiAjIHRoaXMgd2lsbCBhbHNvIGluZmx1ZW5jZSB0aGUgb3JkZXIgb2YgdGhlIGNsYXNzZXMgaW4gdGhlIGNsYXNzIGxpc3QuCkBAIC01ODAsNyArNjk3LDcgQEAKIAogU09SVF9CUklFRl9ET0NTICAgICAgICA9IE5PCiAKLSMgSWYgdGhlIFNPUlRfTUVNQkVSU19DVE9SU18xU1QgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgc29ydCB0aGUKKyMgSWYgdGhlIFNPUlRfTUVNQkVSU19DVE9SU18xU1QgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgc29ydCB0aGUKICMgKGJyaWVmIGFuZCBkZXRhaWxlZCkgZG9jdW1lbnRhdGlvbiBvZiBjbGFzcyBtZW1iZXJzIHNvIHRoYXQgY29uc3RydWN0b3JzIGFuZAogIyBkZXN0cnVjdG9ycyBhcmUgbGlzdGVkIGZpcnN0LiBJZiBzZXQgdG8gTk8gdGhlIGNvbnN0cnVjdG9ycyB3aWxsIGFwcGVhciBpbiB0aGUKICMgcmVzcGVjdGl2ZSBvcmRlcnMgZGVmaW5lZCBieSBTT1JUX0JSSUVGX0RPQ1MgYW5kIFNPUlRfTUVNQkVSX0RPQ1MuCkBAIC01OTIsNyArNzA5LDcgQEAKIAogU09SVF9NRU1CRVJTX0NUT1JTXzFTVCA9IE5PCiAKLSMgSWYgdGhlIFNPUlRfR1JPVVBfTkFNRVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgc29ydCB0aGUgaGllcmFyY2h5CisjIElmIHRoZSBTT1JUX0dST1VQX05BTUVTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIHNvcnQgdGhlIGhpZXJhcmNoeQogIyBvZiBncm91cCBuYW1lcyBpbnRvIGFscGhhYmV0aWNhbCBvcmRlci4gSWYgc2V0IHRvIE5PIHRoZSBncm91cCBuYW1lcyB3aWxsCiAjIGFwcGVhciBpbiB0aGVpciBkZWZpbmVkIG9yZGVyLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCkBAIC02MDksMTEgKzcyNiwxMSBAQAogCiBTT1JUX0JZX1NDT1BFX05BTUUgICAgID0gTk8KIAotIyBJZiB0aGUgU1RSSUNUX1BST1RPX01BVENISU5HIG9wdGlvbiBpcyBlbmFibGVkIGFuZCBkb3h5Z2VuIGZhaWxzIHRvIGRvIHByb3BlcgorIyBJZiB0aGUgU1RSSUNUX1BST1RPX01BVENISU5HIG9wdGlvbiBpcyBlbmFibGVkIGFuZCBEb3h5Z2VuIGZhaWxzIHRvIGRvIHByb3BlcgogIyB0eXBlIHJlc29sdXRpb24gb2YgYWxsIHBhcmFtZXRlcnMgb2YgYSBmdW5jdGlvbiBpdCB3aWxsIHJlamVjdCBhIG1hdGNoIGJldHdlZW4KICMgdGhlIHByb3RvdHlwZSBhbmQgdGhlIGltcGxlbWVudGF0aW9uIG9mIGEgbWVtYmVyIGZ1bmN0aW9uIGV2ZW4gaWYgdGhlcmUgaXMKICMgb25seSBvbmUgY2FuZGlkYXRlIG9yIGl0IGlzIG9idmlvdXMgd2hpY2ggY2FuZGlkYXRlIHRvIGNob29zZSBieSBkb2luZyBhCi0jIHNpbXBsZSBzdHJpbmcgbWF0Y2guIEJ5IGRpc2FibGluZyBTVFJJQ1RfUFJPVE9fTUFUQ0hJTkcgZG94eWdlbiB3aWxsIHN0aWxsCisjIHNpbXBsZSBzdHJpbmcgbWF0Y2guIEJ5IGRpc2FibGluZyBTVFJJQ1RfUFJPVE9fTUFUQ0hJTkcgRG94eWdlbiB3aWxsIHN0aWxsCiAjIGFjY2VwdCBhIG1hdGNoIGJldHdlZW4gcHJvdG90eXBlIGFuZCBpbXBsZW1lbnRhdGlvbiBpbiBzdWNoIGNhc2VzLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKQEAgLTY4MywyNCArODAwLDI1IEBACiBTSE9XX05BTUVTUEFDRVMgICAgICAgID0gWUVTCiAKICMgVGhlIEZJTEVfVkVSU0lPTl9GSUxURVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBwcm9ncmFtIG9yIHNjcmlwdCB0aGF0Ci0jIGRveHlnZW4gc2hvdWxkIGludm9rZSB0byBnZXQgdGhlIGN1cnJlbnQgdmVyc2lvbiBmb3IgZWFjaCBmaWxlICh0eXBpY2FsbHkgZnJvbQorIyBEb3h5Z2VuIHNob3VsZCBpbnZva2UgdG8gZ2V0IHRoZSBjdXJyZW50IHZlcnNpb24gZm9yIGVhY2ggZmlsZSAodHlwaWNhbGx5IGZyb20KICMgdGhlIHZlcnNpb24gY29udHJvbCBzeXN0ZW0pLiBEb3h5Z2VuIHdpbGwgaW52b2tlIHRoZSBwcm9ncmFtIGJ5IGV4ZWN1dGluZyAodmlhCiAjIHBvcGVuKCkpIHRoZSBjb21tYW5kIGNvbW1hbmQgaW5wdXQtZmlsZSwgd2hlcmUgY29tbWFuZCBpcyB0aGUgdmFsdWUgb2YgdGhlCiAjIEZJTEVfVkVSU0lPTl9GSUxURVIgdGFnLCBhbmQgaW5wdXQtZmlsZSBpcyB0aGUgbmFtZSBvZiBhbiBpbnB1dCBmaWxlIHByb3ZpZGVkCi0jIGJ5IGRveHlnZW4uIFdoYXRldmVyIHRoZSBwcm9ncmFtIHdyaXRlcyB0byBzdGFuZGFyZCBvdXRwdXQgaXMgdXNlZCBhcyB0aGUgZmlsZQorIyBieSBEb3h5Z2VuLiBXaGF0ZXZlciB0aGUgcHJvZ3JhbSB3cml0ZXMgdG8gc3RhbmRhcmQgb3V0cHV0IGlzIHVzZWQgYXMgdGhlIGZpbGUKICMgdmVyc2lvbi4gRm9yIGFuIGV4YW1wbGUgc2VlIHRoZSBkb2N1bWVudGF0aW9uLgogCiBGSUxFX1ZFUlNJT05fRklMVEVSICAgID0KIAogIyBUaGUgTEFZT1VUX0ZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSBsYXlvdXQgZmlsZSB3aGljaCB3aWxsIGJlIHBhcnNlZAotIyBieSBkb3h5Z2VuLiBUaGUgbGF5b3V0IGZpbGUgY29udHJvbHMgdGhlIGdsb2JhbCBzdHJ1Y3R1cmUgb2YgdGhlIGdlbmVyYXRlZAorIyBieSBEb3h5Z2VuLiBUaGUgbGF5b3V0IGZpbGUgY29udHJvbHMgdGhlIGdsb2JhbCBzdHJ1Y3R1cmUgb2YgdGhlIGdlbmVyYXRlZAogIyBvdXRwdXQgZmlsZXMgaW4gYW4gb3V0cHV0IGZvcm1hdCBpbmRlcGVuZGVudCB3YXkuIFRvIGNyZWF0ZSB0aGUgbGF5b3V0IGZpbGUKLSMgdGhhdCByZXByZXNlbnRzIGRveHlnZW4ncyBkZWZhdWx0cywgcnVuIGRveHlnZW4gd2l0aCB0aGUgLWwgb3B0aW9uLiBZb3UgY2FuCisjIHRoYXQgcmVwcmVzZW50cyBEb3h5Z2VuJ3MgZGVmYXVsdHMsIHJ1biBEb3h5Z2VuIHdpdGggdGhlIC1sIG9wdGlvbi4gWW91IGNhbgogIyBvcHRpb25hbGx5IHNwZWNpZnkgYSBmaWxlIG5hbWUgYWZ0ZXIgdGhlIG9wdGlvbiwgaWYgb21pdHRlZCBEb3h5Z2VuTGF5b3V0LnhtbAotIyB3aWxsIGJlIHVzZWQgYXMgdGhlIG5hbWUgb2YgdGhlIGxheW91dCBmaWxlLgorIyB3aWxsIGJlIHVzZWQgYXMgdGhlIG5hbWUgb2YgdGhlIGxheW91dCBmaWxlLiBTZWUgYWxzbyBzZWN0aW9uICJDaGFuZ2luZyB0aGUKKyMgbGF5b3V0IG9mIHBhZ2VzIiBmb3IgaW5mb3JtYXRpb24uCiAjCi0jIE5vdGUgdGhhdCBpZiB5b3UgcnVuIGRveHlnZW4gZnJvbSBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEgZmlsZSBjYWxsZWQKLSMgRG94eWdlbkxheW91dC54bWwsIGRveHlnZW4gd2lsbCBwYXJzZSBpdCBhdXRvbWF0aWNhbGx5IGV2ZW4gaWYgdGhlIExBWU9VVF9GSUxFCisjIE5vdGUgdGhhdCBpZiB5b3UgcnVuIERveHlnZW4gZnJvbSBhIGRpcmVjdG9yeSBjb250YWluaW5nIGEgZmlsZSBjYWxsZWQKKyMgRG94eWdlbkxheW91dC54bWwsIERveHlnZW4gd2lsbCBwYXJzZSBpdCBhdXRvbWF0aWNhbGx5IGV2ZW4gaWYgdGhlIExBWU9VVF9GSUxFCiAjIHRhZyBpcyBsZWZ0IGVtcHR5LgogCiBMQVlPVVRfRklMRSAgICAgICAgICAgID0KQEAgLTcwOCwyNiArODI2LDQyIEBACiAjIFRoZSBDSVRFX0JJQl9GSUxFUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBiaWIgZmlsZXMgY29udGFpbmluZwogIyB0aGUgcmVmZXJlbmNlIGRlZmluaXRpb25zLiBUaGlzIG11c3QgYmUgYSBsaXN0IG9mIC5iaWIgZmlsZXMuIFRoZSAuYmliCiAjIGV4dGVuc2lvbiBpcyBhdXRvbWF0aWNhbGx5IGFwcGVuZGVkIGlmIG9taXR0ZWQuIFRoaXMgcmVxdWlyZXMgdGhlIGJpYnRleCB0b29sCi0jIHRvIGJlIGluc3RhbGxlZC4gU2VlIGFsc28gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CaWJUZVggZm9yIG1vcmUgaW5mby4KKyMgdG8gYmUgaW5zdGFsbGVkLiBTZWUgYWxzbyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CaWJUZVggZm9yIG1vcmUgaW5mby4KICMgRm9yIExhVGVYIHRoZSBzdHlsZSBvZiB0aGUgYmlibGlvZ3JhcGh5IGNhbiBiZSBjb250cm9sbGVkIHVzaW5nCiAjIExBVEVYX0JJQl9TVFlMRS4gVG8gdXNlIHRoaXMgZmVhdHVyZSB5b3UgbmVlZCBiaWJ0ZXggYW5kIHBlcmwgYXZhaWxhYmxlIGluIHRoZQogIyBzZWFyY2ggcGF0aC4gU2VlIGFsc28gXGNpdGUgZm9yIGluZm8gaG93IHRvIGNyZWF0ZSByZWZlcmVuY2VzLgogCiBDSVRFX0JJQl9GSUxFUyAgICAgICAgID0KIAorIyBUaGUgRVhURVJOQUxfVE9PTF9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBleHRlbmQgdGhlIHNlYXJjaCBwYXRoIChQQVRICisjIGVudmlyb25tZW50IHZhcmlhYmxlKSBzbyB0aGF0IGV4dGVybmFsIHRvb2xzIHN1Y2ggYXMgbGF0ZXggYW5kIGdzIGNhbiBiZQorIyBmb3VuZC4KKyMgTm90ZTogRGlyZWN0b3JpZXMgc3BlY2lmaWVkIHdpdGggRVhURVJOQUxfVE9PTF9QQVRIIGFyZSBhZGRlZCBpbiBmcm9udCBvZiB0aGUKKyMgcGF0aCBhbHJlYWR5IHNwZWNpZmllZCBieSB0aGUgUEFUSCB2YXJpYWJsZSwgYW5kIGFyZSBhZGRlZCBpbiB0aGUgb3JkZXIKKyMgc3BlY2lmaWVkLgorIyBOb3RlOiBUaGlzIG9wdGlvbiBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBtYWNPUyB2ZXJzaW9uIDE0IChTb25vbWEpIGFuZAorIyBoaWdoZXIsIHdoZW4gcnVubmluZyBEb3h5Z2VuIGZyb20gRG94eXdpemFyZCwgYmVjYXVzZSBpbiB0aGlzIGNhc2UgYW55IHVzZXItCisjIGRlZmluZWQgY2hhbmdlcyB0byB0aGUgUEFUSCBhcmUgaWdub3JlZC4gQSB0eXBpY2FsIGV4YW1wbGUgb24gbWFjT1MgaXMgdG8gc2V0CisjIEVYVEVSTkFMX1RPT0xfUEFUSCA9IC9MaWJyYXJ5L1RlWC90ZXhiaW4gL3Vzci9sb2NhbC9iaW4KKyMgdG9nZXRoZXIgd2l0aCB0aGUgc3RhbmRhcmQgcGF0aCwgdGhlIGZ1bGwgc2VhcmNoIHBhdGggdXNlZCBieSBkb3h5Z2VuIHdoZW4KKyMgbGF1bmNoaW5nIGV4dGVybmFsIHRvb2xzIHdpbGwgdGhlbiBiZWNvbWUKKyMgUEFUSD0vTGlicmFyeS9UZVgvdGV4YmluOi91c3IvbG9jYWwvYmluOi91c3IvYmluOi9iaW46L3Vzci9zYmluOi9zYmluCisKK0VYVEVSTkFMX1RPT0xfUEFUSCAgICAgPQorCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHdhcm5pbmcgYW5kIHByb2dyZXNzIG1lc3NhZ2VzCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKICMgVGhlIFFVSUVUIHRhZyBjYW4gYmUgdXNlZCB0byB0dXJuIG9uL29mZiB0aGUgbWVzc2FnZXMgdGhhdCBhcmUgZ2VuZXJhdGVkIHRvCi0jIHN0YW5kYXJkIG91dHB1dCBieSBkb3h5Z2VuLiBJZiBRVUlFVCBpcyBzZXQgdG8gWUVTIHRoaXMgaW1wbGllcyB0aGF0IHRoZQorIyBzdGFuZGFyZCBvdXRwdXQgYnkgRG94eWdlbi4gSWYgUVVJRVQgaXMgc2V0IHRvIFlFUyB0aGlzIGltcGxpZXMgdGhhdCB0aGUKICMgbWVzc2FnZXMgYXJlIG9mZi4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCiBRVUlFVCAgICAgICAgICAgICAgICAgID0gTk8KIAogIyBUaGUgV0FSTklOR1MgdGFnIGNhbiBiZSB1c2VkIHRvIHR1cm4gb24vb2ZmIHRoZSB3YXJuaW5nIG1lc3NhZ2VzIHRoYXQgYXJlCi0jIGdlbmVyYXRlZCB0byBzdGFuZGFyZCBlcnJvciAoc3RkZXJyKSBieSBkb3h5Z2VuLiBJZiBXQVJOSU5HUyBpcyBzZXQgdG8gWUVTCisjIGdlbmVyYXRlZCB0byBzdGFuZGFyZCBlcnJvciAoc3RkZXJyKSBieSBEb3h5Z2VuLiBJZiBXQVJOSU5HUyBpcyBzZXQgdG8gWUVTCiAjIHRoaXMgaW1wbGllcyB0aGF0IHRoZSB3YXJuaW5ncyBhcmUgb24uCiAjCiAjIFRpcDogVHVybiB3YXJuaW5ncyBvbiB3aGlsZSB3cml0aW5nIHRoZSBkb2N1bWVudGF0aW9uLgpAQCAtNzM1LDQ4ICs4NjksODkgQEAKIAogV0FSTklOR1MgICAgICAgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBXQVJOX0lGX1VORE9DVU1FTlRFRCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZQorIyBJZiB0aGUgV0FSTl9JRl9VTkRPQ1VNRU5URUQgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUKICMgd2FybmluZ3MgZm9yIHVuZG9jdW1lbnRlZCBtZW1iZXJzLiBJZiBFWFRSQUNUX0FMTCBpcyBzZXQgdG8gWUVTIHRoZW4gdGhpcyBmbGFnCiAjIHdpbGwgYXV0b21hdGljYWxseSBiZSBkaXNhYmxlZC4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogV0FSTl9JRl9VTkRPQ1VNRU5URUQgICA9IFlFUwogCi0jIElmIHRoZSBXQVJOX0lGX0RPQ19FUlJPUiB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIHdhcm5pbmdzIGZvcgotIyBwb3RlbnRpYWwgZXJyb3JzIGluIHRoZSBkb2N1bWVudGF0aW9uLCBzdWNoIGFzIG5vdCBkb2N1bWVudGluZyBzb21lIHBhcmFtZXRlcnMKLSMgaW4gYSBkb2N1bWVudGVkIGZ1bmN0aW9uLCBvciBkb2N1bWVudGluZyBwYXJhbWV0ZXJzIHRoYXQgZG9uJ3QgZXhpc3Qgb3IgdXNpbmcKLSMgbWFya3VwIGNvbW1hbmRzIHdyb25nbHkuCisjIElmIHRoZSBXQVJOX0lGX0RPQ19FUlJPUiB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIGdlbmVyYXRlIHdhcm5pbmdzIGZvcgorIyBwb3RlbnRpYWwgZXJyb3JzIGluIHRoZSBkb2N1bWVudGF0aW9uLCBzdWNoIGFzIGRvY3VtZW50aW5nIHNvbWUgcGFyYW1ldGVycyBpbgorIyBhIGRvY3VtZW50ZWQgZnVuY3Rpb24gdHdpY2UsIG9yIGRvY3VtZW50aW5nIHBhcmFtZXRlcnMgdGhhdCBkb24ndCBleGlzdCBvcgorIyB1c2luZyBtYXJrdXAgY29tbWFuZHMgd3JvbmdseS4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIAogV0FSTl9JRl9ET0NfRVJST1IgICAgICA9IFlFUwogCisjIElmIFdBUk5fSUZfSU5DT01QTEVURV9ET0MgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIHdhcm4gYWJvdXQgaW5jb21wbGV0ZQorIyBmdW5jdGlvbiBwYXJhbWV0ZXIgZG9jdW1lbnRhdGlvbi4gSWYgc2V0IHRvIE5PLCBEb3h5Z2VuIHdpbGwgYWNjZXB0IHRoYXQgc29tZQorIyBwYXJhbWV0ZXJzIGhhdmUgbm8gZG9jdW1lbnRhdGlvbiB3aXRob3V0IHdhcm5pbmcuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisKK1dBUk5fSUZfSU5DT01QTEVURV9ET0MgPSBZRVMKKwogIyBUaGlzIFdBUk5fTk9fUEFSQU1ET0Mgb3B0aW9uIGNhbiBiZSBlbmFibGVkIHRvIGdldCB3YXJuaW5ncyBmb3IgZnVuY3Rpb25zIHRoYXQKICMgYXJlIGRvY3VtZW50ZWQsIGJ1dCBoYXZlIG5vIGRvY3VtZW50YXRpb24gZm9yIHRoZWlyIHBhcmFtZXRlcnMgb3IgcmV0dXJuCi0jIHZhbHVlLiBJZiBzZXQgdG8gTk8sIGRveHlnZW4gd2lsbCBvbmx5IHdhcm4gYWJvdXQgd3Jvbmcgb3IgaW5jb21wbGV0ZQotIyBwYXJhbWV0ZXIgZG9jdW1lbnRhdGlvbiwgYnV0IG5vdCBhYm91dCB0aGUgYWJzZW5jZSBvZiBkb2N1bWVudGF0aW9uLgorIyB2YWx1ZS4gSWYgc2V0IHRvIE5PLCBEb3h5Z2VuIHdpbGwgb25seSB3YXJuIGFib3V0IHdyb25nIHBhcmFtZXRlcgorIyBkb2N1bWVudGF0aW9uLCBidXQgbm90IGFib3V0IHRoZSBhYnNlbmNlIG9mIGRvY3VtZW50YXRpb24uIElmIEVYVFJBQ1RfQUxMIGlzCisjIHNldCB0byBZRVMgdGhlbiB0aGlzIGZsYWcgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGRpc2FibGVkLiBTZWUgYWxzbworIyBXQVJOX0lGX0lOQ09NUExFVEVfRE9DCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogV0FSTl9OT19QQVJBTURPQyAgICAgICA9IE5PCiAKLSMgSWYgdGhlIFdBUk5fQVNfRVJST1IgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgaW1tZWRpYXRlbHkgc3RvcCB3aGVuCi0jIGEgd2FybmluZyBpcyBlbmNvdW50ZXJlZC4KKyMgSWYgV0FSTl9JRl9VTkRPQ19FTlVNX1ZBTCBvcHRpb24gaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIHdhcm4gYWJvdXQKKyMgdW5kb2N1bWVudGVkIGVudW1lcmF0aW9uIHZhbHVlcy4gSWYgc2V0IHRvIE5PLCBEb3h5Z2VuIHdpbGwgYWNjZXB0CisjIHVuZG9jdW1lbnRlZCBlbnVtZXJhdGlvbiB2YWx1ZXMuIElmIEVYVFJBQ1RfQUxMIGlzIHNldCB0byBZRVMgdGhlbiB0aGlzIGZsYWcKKyMgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGRpc2FibGVkLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKLVdBUk5fQVNfRVJST1IgICAgICAgICAgPSBOTworV0FSTl9JRl9VTkRPQ19FTlVNX1ZBTCA9IE5PCiAKLSMgVGhlIFdBUk5fRk9STUFUIHRhZyBkZXRlcm1pbmVzIHRoZSBmb3JtYXQgb2YgdGhlIHdhcm5pbmcgbWVzc2FnZXMgdGhhdCBkb3h5Z2VuCisjIElmIHRoZSBXQVJOX0FTX0VSUk9SIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIGltbWVkaWF0ZWx5IHN0b3Agd2hlbgorIyBhIHdhcm5pbmcgaXMgZW5jb3VudGVyZWQuIElmIHRoZSBXQVJOX0FTX0VSUk9SIHRhZyBpcyBzZXQgdG8gRkFJTF9PTl9XQVJOSU5HUworIyB0aGVuIERveHlnZW4gd2lsbCBjb250aW51ZSBydW5uaW5nIGFzIGlmIFdBUk5fQVNfRVJST1IgdGFnIGlzIHNldCB0byBOTywgYnV0CisjIGF0IHRoZSBlbmQgb2YgdGhlIERveHlnZW4gcHJvY2VzcyBEb3h5Z2VuIHdpbGwgcmV0dXJuIHdpdGggYSBub24temVybyBzdGF0dXMuCisjIElmIHRoZSBXQVJOX0FTX0VSUk9SIHRhZyBpcyBzZXQgdG8gRkFJTF9PTl9XQVJOSU5HU19QUklOVCB0aGVuIERveHlnZW4gYmVoYXZlcworIyBsaWtlIEZBSUxfT05fV0FSTklOR1MgYnV0IGluIGNhc2Ugbm8gV0FSTl9MT0dGSUxFIGlzIGRlZmluZWQgRG94eWdlbiB3aWxsIG5vdAorIyB3cml0ZSB0aGUgd2FybmluZyBtZXNzYWdlcyBpbiBiZXR3ZWVuIG90aGVyIG1lc3NhZ2VzIGJ1dCB3cml0ZSB0aGVtIGF0IHRoZSBlbmQKKyMgb2YgYSBydW4sIGluIGNhc2UgYSBXQVJOX0xPR0ZJTEUgaXMgZGVmaW5lZCB0aGUgd2FybmluZyBtZXNzYWdlcyB3aWxsIGJlCisjIGJlc2lkZXMgYmVpbmcgaW4gdGhlIGRlZmluZWQgZmlsZSBhbHNvIGJlIHNob3duIGF0IHRoZSBlbmQgb2YgYSBydW4sIHVubGVzcworIyB0aGUgV0FSTl9MT0dGSUxFIGlzIGRlZmluZWQgYXMgLSBpLmUuIHN0YW5kYXJkIG91dHB1dCAoc3Rkb3V0KSBpbiB0aGF0IGNhc2UKKyMgdGhlIGJlaGF2aW9yIHdpbGwgcmVtYWluIGFzIHdpdGggdGhlIHNldHRpbmcgRkFJTF9PTl9XQVJOSU5HUy4KKyMgUG9zc2libGUgdmFsdWVzIGFyZTogTk8sIFlFUywgRkFJTF9PTl9XQVJOSU5HUyBhbmQgRkFJTF9PTl9XQVJOSU5HU19QUklOVC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorCitXQVJOX0FTX0VSUk9SICAgICAgICAgID0gWUVTCisKKyMgVGhlIFdBUk5fRk9STUFUIHRhZyBkZXRlcm1pbmVzIHRoZSBmb3JtYXQgb2YgdGhlIHdhcm5pbmcgbWVzc2FnZXMgdGhhdCBEb3h5Z2VuCiAjIGNhbiBwcm9kdWNlLiBUaGUgc3RyaW5nIHNob3VsZCBjb250YWluIHRoZSAkZmlsZSwgJGxpbmUsIGFuZCAkdGV4dCB0YWdzLCB3aGljaAogIyB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBmaWxlIGFuZCBsaW5lIG51bWJlciBmcm9tIHdoaWNoIHRoZSB3YXJuaW5nIG9yaWdpbmF0ZWQKICMgYW5kIHRoZSB3YXJuaW5nIHRleHQuIE9wdGlvbmFsbHkgdGhlIGZvcm1hdCBtYXkgY29udGFpbiAkdmVyc2lvbiwgd2hpY2ggd2lsbAogIyBiZSByZXBsYWNlZCBieSB0aGUgdmVyc2lvbiBvZiB0aGUgZmlsZSAoaWYgaXQgY291bGQgYmUgb2J0YWluZWQgdmlhCiAjIEZJTEVfVkVSU0lPTl9GSUxURVIpCisjIFNlZSBhbHNvOiBXQVJOX0xJTkVfRk9STUFUCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiAkZmlsZTokbGluZTogJHRleHQuCiAKLVdBUk5fRk9STUFUICAgICAgICAgICAgPSAiJGZpbGU6JGxpbmU6ICR0ZXh0ICAgICAgICIKK1dBUk5fRk9STUFUICAgICAgICAgICAgPSAiJGZpbGU6JGxpbmU6ICR0ZXh0ICAgICAgIgorCisjIEluIHRoZSAkdGV4dCBwYXJ0IG9mIHRoZSBXQVJOX0ZPUk1BVCBjb21tYW5kIGl0IGlzIHBvc3NpYmxlIHRoYXQgYSByZWZlcmVuY2UKKyMgdG8gYSBtb3JlIHNwZWNpZmljIHBsYWNlIGlzIGdpdmVuLiBUbyBtYWtlIGl0IGVhc2llciB0byBqdW1wIHRvIHRoaXMgcGxhY2UKKyMgKG91dHNpZGUgb2YgRG94eWdlbikgdGhlIHVzZXIgY2FuIGRlZmluZSBhIGN1c3RvbSAiY3V0IiAvICJwYXN0ZSIgc3RyaW5nLgorIyBFeGFtcGxlOgorIyBXQVJOX0xJTkVfRk9STUFUID0gIid2aSAkZmlsZSArJGxpbmUnIgorIyBTZWUgYWxzbzogV0FSTl9GT1JNQVQKKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IGF0IGxpbmUgJGxpbmUgb2YgZmlsZSAkZmlsZS4KKworV0FSTl9MSU5FX0ZPUk1BVCAgICAgICA9ICJhdCBsaW5lICRsaW5lIG9mIGZpbGUgJGZpbGUiCiAKICMgVGhlIFdBUk5fTE9HRklMRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIGZpbGUgdG8gd2hpY2ggd2FybmluZyBhbmQgZXJyb3IKICMgbWVzc2FnZXMgc2hvdWxkIGJlIHdyaXR0ZW4uIElmIGxlZnQgYmxhbmsgdGhlIG91dHB1dCBpcyB3cml0dGVuIHRvIHN0YW5kYXJkCi0jIGVycm9yIChzdGRlcnIpLgorIyBlcnJvciAoc3RkZXJyKS4gSW4gY2FzZSB0aGUgZmlsZSBzcGVjaWZpZWQgY2Fubm90IGJlIG9wZW5lZCBmb3Igd3JpdGluZyB0aGUKKyMgd2FybmluZyBhbmQgZXJyb3IgbWVzc2FnZXMgYXJlIHdyaXR0ZW4gdG8gc3RhbmRhcmQgZXJyb3IuIFdoZW4gYXMgZmlsZSAtIGlzCisjIHNwZWNpZmllZCB0aGUgd2FybmluZyBhbmQgZXJyb3IgbWVzc2FnZXMgYXJlIHdyaXR0ZW4gdG8gc3RhbmRhcmQgb3V0cHV0CisjIChzdGRvdXQpLgogCiBXQVJOX0xPR0ZJTEUgICAgICAgICAgID0KIApAQCAtNzk0LDI3ICs5NjksNDIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAuLi8uLi9zcmMKIAogIyBUaGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIHNvdXJjZSBmaWxlcwotIyB0aGF0IGRveHlnZW4gcGFyc2VzLiBJbnRlcm5hbGx5IGRveHlnZW4gdXNlcyB0aGUgVVRGLTggZW5jb2RpbmcuIERveHlnZW4gdXNlcworIyB0aGF0IERveHlnZW4gcGFyc2VzLiBJbnRlcm5hbGx5IERveHlnZW4gdXNlcyB0aGUgVVRGLTggZW5jb2RpbmcuIERveHlnZW4gdXNlcwogIyBsaWJpY29udiAob3IgdGhlIGljb252IGJ1aWx0IGludG8gbGliYykgZm9yIHRoZSB0cmFuc2NvZGluZy4gU2VlIHRoZSBsaWJpY29udgotIyBkb2N1bWVudGF0aW9uIChzZWU6IGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJpY29udikgZm9yIHRoZSBsaXN0IG9mCi0jIHBvc3NpYmxlIGVuY29kaW5ncy4KKyMgZG9jdW1lbnRhdGlvbiAoc2VlOgorIyBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmljb252LykgZm9yIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGVuY29kaW5ncy4KKyMgU2VlIGFsc286IElOUFVUX0ZJTEVfRU5DT0RJTkcKICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFVURi04LgogCiBJTlBVVF9FTkNPRElORyAgICAgICAgID0gVVRGLTgKIAorIyBUaGlzIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBjaGFyYWN0ZXIgZW5jb2Rpbmcgb2YgdGhlIHNvdXJjZSBmaWxlcworIyB0aGF0IERveHlnZW4gcGFyc2VzIFRoZSBJTlBVVF9GSUxFX0VOQ09ESU5HIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5CisjIGNoYXJhY3RlciBlbmNvZGluZyBvbiBhIHBlciBmaWxlIHBhdHRlcm4gYmFzaXMuIERveHlnZW4gd2lsbCBjb21wYXJlIHRoZSBmaWxlCisjIG5hbWUgd2l0aCBlYWNoIHBhdHRlcm4gYW5kIGFwcGx5IHRoZSBlbmNvZGluZyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0CisjIElOUFVUX0VOQ09ESU5HKSBpZiB0aGVyZSBpcyBhIG1hdGNoLiBUaGUgY2hhcmFjdGVyIGVuY29kaW5ncyBhcmUgYSBsaXN0IG9mIHRoZQorIyBmb3JtOiBwYXR0ZXJuPWVuY29kaW5nIChsaWtlICoucGhwPUlTTy04ODU5LTEpLgorIyBTZWUgYWxzbzogSU5QVVRfRU5DT0RJTkcgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24gb24gc3VwcG9ydGVkIGVuY29kaW5ncy4KKworSU5QVVRfRklMRV9FTkNPRElORyAgICA9CisKICMgSWYgdGhlIHZhbHVlIG9mIHRoZSBJTlBVVCB0YWcgY29udGFpbnMgZGlyZWN0b3JpZXMsIHlvdSBjYW4gdXNlIHRoZQogIyBGSUxFX1BBVFRFUk5TIHRhZyB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIHdpbGRjYXJkIHBhdHRlcm5zIChsaWtlICouY3BwIGFuZAogIyAqLmgpIHRvIGZpbHRlciBvdXQgdGhlIHNvdXJjZS1maWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMuCiAjCiAjIE5vdGUgdGhhdCBmb3IgY3VzdG9tIGV4dGVuc2lvbnMgb3Igbm90IGRpcmVjdGx5IHN1cHBvcnRlZCBleHRlbnNpb25zIHlvdSBhbHNvCiAjIG5lZWQgdG8gc2V0IEVYVEVOU0lPTl9NQVBQSU5HIGZvciB0aGUgZXh0ZW5zaW9uIG90aGVyd2lzZSB0aGUgZmlsZXMgYXJlIG5vdAotIyByZWFkIGJ5IGRveHlnZW4uCisjIHJlYWQgYnkgRG94eWdlbi4KICMKLSMgSWYgbGVmdCBibGFuayB0aGUgZm9sbG93aW5nIHBhdHRlcm5zIGFyZSB0ZXN0ZWQ6Ki5jLCAqLmNjLCAqLmN4eCwgKi5jcHAsCi0jICouYysrLCAqLmphdmEsICouaWksICouaXh4LCAqLmlwcCwgKi5pKyssICouaW5sLCAqLmlkbCwgKi5kZGwsICoub2RsLCAqLmgsCi0jICouaGgsICouaHh4LCAqLmhwcCwgKi5oKyssICouY3MsICouZCwgKi5waHAsICoucGhwNCwgKi5waHA1LCAqLnBodG1sLCAqLmluYywKLSMgKi5tLCAqLm1hcmtkb3duLCAqLm1kLCAqLm1tLCAqLmRveCwgKi5weSwgKi5weXcsICouZjkwLCAqLmY5NSwgKi5mMDMsICouZjA4LAotIyAqLmYsICouZm9yLCAqLnRjbCwgKi52aGQsICoudmhkbCwgKi51Y2YgYW5kICoucXNmLgorIyBOb3RlIHRoZSBsaXN0IG9mIGRlZmF1bHQgY2hlY2tlZCBmaWxlIHBhdHRlcm5zIG1pZ2h0IGRpZmZlciBmcm9tIHRoZSBsaXN0IG9mCisjIGRlZmF1bHQgZmlsZSBleHRlbnNpb24gbWFwcGluZ3MuCisjCisjIElmIGxlZnQgYmxhbmsgdGhlIGZvbGxvd2luZyBwYXR0ZXJucyBhcmUgdGVzdGVkOiouYywgKi5jYywgKi5jeHgsICouY3h4bSwKKyMgKi5jcHAsICouY3BwbSwgKi5jY20sICouYysrLCAqLmMrK20sICouamF2YSwgKi5paSwgKi5peHgsICouaXBwLCAqLmkrKywgKi5pbmwsCisjICouaWRsLCAqLmRkbCwgKi5vZGwsICouaCwgKi5oaCwgKi5oeHgsICouaHBwLCAqLmgrKywgKi5peHgsICoubCwgKi5jcywgKi5kLAorIyAqLnBocCwgKi5waHA0LCAqLnBocDUsICoucGh0bWwsICouaW5jLCAqLm0sICoubWFya2Rvd24sICoubWQsICoubW0sICouZG94ICh0bworIyBiZSBwcm92aWRlZCBhcyBEb3h5Z2VuIEMgY29tbWVudCksICoucHksICoucHl3LCAqLmY5MCwgKi5mOTUsICouZjAzLCAqLmYwOCwKKyMgKi5mMTgsICouZiwgKi5mb3IsICoudmhkLCAqLnZoZGwsICoudWNmLCAqLnFzZiBhbmQgKi5pY2UuCiAKIEZJTEVfUEFUVEVSTlMgICAgICAgICAgPSAqLmMgXAogICAgICAgICAgICAgICAgICAgICAgICAgICouY2MgXApAQCAtODQ5LDcgKzEwMzksNyBAQAogIyBleGNsdWRlZCBmcm9tIHRoZSBJTlBVVCBzb3VyY2UgZmlsZXMuIFRoaXMgd2F5IHlvdSBjYW4gZWFzaWx5IGV4Y2x1ZGUgYQogIyBzdWJkaXJlY3RvcnkgZnJvbSBhIGRpcmVjdG9yeSB0cmVlIHdob3NlIHJvb3QgaXMgc3BlY2lmaWVkIHdpdGggdGhlIElOUFVUIHRhZy4KICMKLSMgTm90ZSB0aGF0IHJlbGF0aXZlIHBhdGhzIGFyZSByZWxhdGl2ZSB0byB0aGUgZGlyZWN0b3J5IGZyb20gd2hpY2ggZG94eWdlbiBpcworIyBOb3RlIHRoYXQgcmVsYXRpdmUgcGF0aHMgYXJlIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkgZnJvbSB3aGljaCBEb3h5Z2VuIGlzCiAjIHJ1bi4KIAogRVhDTFVERSAgICAgICAgICAgICAgICA9IC4uLy4uL3NyYy9pbmNsdWRlL25ldGlmL3BwcC9wb2xhcnNzbApAQCAtODc0LDEwICsxMDY0LDcgQEAKICMgKG5hbWVzcGFjZXMsIGNsYXNzZXMsIGZ1bmN0aW9ucywgZXRjLikgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB0aGUKICMgb3V0cHV0LiBUaGUgc3ltYm9sIG5hbWUgY2FuIGJlIGEgZnVsbHkgcXVhbGlmaWVkIG5hbWUsIGEgd29yZCwgb3IgaWYgdGhlCiAjIHdpbGRjYXJkICogaXMgdXNlZCwgYSBzdWJzdHJpbmcuIEV4YW1wbGVzOiBBTmFtZXNwYWNlLCBBQ2xhc3MsCi0jIEFDbGFzczo6QU5hbWVzcGFjZSwgQU5hbWVzcGFjZTo6KlRlc3QKLSMKLSMgTm90ZSB0aGF0IHRoZSB3aWxkY2FyZHMgYXJlIG1hdGNoZWQgYWdhaW5zdCB0aGUgZmlsZSB3aXRoIGFic29sdXRlIHBhdGgsIHNvIHRvCi0jIGV4Y2x1ZGUgYWxsIHRlc3QgZGlyZWN0b3JpZXMgdXNlIHRoZSBwYXR0ZXJuICovdGVzdC8qCisjIEFOYW1lc3BhY2U6OkFDbGFzcywgQU5hbWVzcGFjZTo6KlRlc3QKIAogRVhDTFVERV9TWU1CT0xTICAgICAgICA9CiAKQEAgLTkwOCw3ICsxMDk1LDcgQEAKIAogSU1BR0VfUEFUSCAgICAgICAgICAgICA9CiAKLSMgVGhlIElOUFVUX0ZJTFRFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByb2dyYW0gdGhhdCBkb3h5Z2VuIHNob3VsZAorIyBUaGUgSU5QVVRfRklMVEVSIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJvZ3JhbSB0aGF0IERveHlnZW4gc2hvdWxkCiAjIGludm9rZSB0byBmaWx0ZXIgZm9yIGVhY2ggaW5wdXQgZmlsZS4gRG94eWdlbiB3aWxsIGludm9rZSB0aGUgZmlsdGVyIHByb2dyYW0KICMgYnkgZXhlY3V0aW5nICh2aWEgcG9wZW4oKSkgdGhlIGNvbW1hbmQ6CiAjCkBAIC05MjMsOSArMTExMCwxNCBAQAogIyBjb2RlIGlzIHNjYW5uZWQsIGJ1dCBub3Qgd2hlbiB0aGUgb3V0cHV0IGNvZGUgaXMgZ2VuZXJhdGVkLiBJZiBsaW5lcyBhcmUgYWRkZWQKICMgb3IgcmVtb3ZlZCwgdGhlIGFuY2hvcnMgd2lsbCBub3QgYmUgcGxhY2VkIGNvcnJlY3RseS4KICMKKyMgTm90ZSB0aGF0IERveHlnZW4gd2lsbCB1c2UgdGhlIGRhdGEgcHJvY2Vzc2VkIGFuZCB3cml0dGVuIHRvIHN0YW5kYXJkIG91dHB1dAorIyBmb3IgZnVydGhlciBwcm9jZXNzaW5nLCB0aGVyZWZvcmUgbm90aGluZyBlbHNlLCBsaWtlIGRlYnVnIHN0YXRlbWVudHMgb3IgdXNlZAorIyBjb21tYW5kcyAoc28gaW4gY2FzZSBvZiBhIFdpbmRvd3MgYmF0Y2ggZmlsZSBhbHdheXMgdXNlIEBlY2hvIE9GRiksIHNob3VsZCBiZQorIyB3cml0dGVuIHRvIHN0YW5kYXJkIG91dHB1dC4KKyMKICMgTm90ZSB0aGF0IGZvciBjdXN0b20gZXh0ZW5zaW9ucyBvciBub3QgZGlyZWN0bHkgc3VwcG9ydGVkIGV4dGVuc2lvbnMgeW91IGFsc28KICMgbmVlZCB0byBzZXQgRVhURU5TSU9OX01BUFBJTkcgZm9yIHRoZSBleHRlbnNpb24gb3RoZXJ3aXNlIHRoZSBmaWxlcyBhcmUgbm90Ci0jIHByb3Blcmx5IHByb2Nlc3NlZCBieSBkb3h5Z2VuLgorIyBwcm9wZXJseSBwcm9jZXNzZWQgYnkgRG94eWdlbi4KIAogSU5QVVRfRklMVEVSICAgICAgICAgICA9CiAKQEAgLTkzOCw3ICsxMTMwLDcgQEAKICMKICMgTm90ZSB0aGF0IGZvciBjdXN0b20gZXh0ZW5zaW9ucyBvciBub3QgZGlyZWN0bHkgc3VwcG9ydGVkIGV4dGVuc2lvbnMgeW91IGFsc28KICMgbmVlZCB0byBzZXQgRVhURU5TSU9OX01BUFBJTkcgZm9yIHRoZSBleHRlbnNpb24gb3RoZXJ3aXNlIHRoZSBmaWxlcyBhcmUgbm90Ci0jIHByb3Blcmx5IHByb2Nlc3NlZCBieSBkb3h5Z2VuLgorIyBwcm9wZXJseSBwcm9jZXNzZWQgYnkgRG94eWdlbi4KIAogRklMVEVSX1BBVFRFUk5TICAgICAgICA9CiAKQEAgLTk2MCwxMCArMTE1MiwxOSBAQAogIyBJZiB0aGUgVVNFX01ERklMRV9BU19NQUlOUEFHRSB0YWcgcmVmZXJzIHRvIHRoZSBuYW1lIG9mIGEgbWFya2Rvd24gZmlsZSB0aGF0CiAjIGlzIHBhcnQgb2YgdGhlIGlucHV0LCBpdHMgY29udGVudHMgd2lsbCBiZSBwbGFjZWQgb24gdGhlIG1haW4gcGFnZQogIyAoaW5kZXguaHRtbCkuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgaGF2ZSBhIHByb2plY3Qgb24gZm9yIGluc3RhbmNlIEdpdEh1YgotIyBhbmQgd2FudCB0byByZXVzZSB0aGUgaW50cm9kdWN0aW9uIHBhZ2UgYWxzbyBmb3IgdGhlIGRveHlnZW4gb3V0cHV0LgorIyBhbmQgd2FudCB0byByZXVzZSB0aGUgaW50cm9kdWN0aW9uIHBhZ2UgYWxzbyBmb3IgdGhlIERveHlnZW4gb3V0cHV0LgogCiBVU0VfTURGSUxFX0FTX01BSU5QQUdFID0gbWFpbl9wYWdlLmgKIAorIyBUaGUgRm9ydHJhbiBzdGFuZGFyZCBzcGVjaWZpZXMgdGhhdCBmb3IgZml4ZWQgZm9ybWF0dGVkIEZvcnRyYW4gY29kZSBhbGwKKyMgY2hhcmFjdGVycyBmcm9tIHBvc2l0aW9uIDcyIGFyZSB0byBiZSBjb25zaWRlcmVkIGFzIGNvbW1lbnQuIEEgY29tbW9uCisjIGV4dGVuc2lvbiBpcyB0byBhbGxvdyBsb25nZXIgbGluZXMgYmVmb3JlIHRoZSBhdXRvbWF0aWMgY29tbWVudCBzdGFydHMuIFRoZQorIyBzZXR0aW5nIEZPUlRSQU5fQ09NTUVOVF9BRlRFUiB3aWxsIGFsc28gbWFrZSBpdCBwb3NzaWJsZSB0aGF0IGxvbmdlciBsaW5lcyBjYW4KKyMgYmUgcHJvY2Vzc2VkIGJlZm9yZSB0aGUgYXV0b21hdGljIGNvbW1lbnQgc3RhcnRzLgorIyBNaW5pbXVtIHZhbHVlOiA3LCBtYXhpbXVtIHZhbHVlOiAxMDAwMCwgZGVmYXVsdCB2YWx1ZTogNzIuCisKK0ZPUlRSQU5fQ09NTUVOVF9BRlRFUiAgPSA3MgorCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHNvdXJjZSBicm93c2luZwogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtOTc4LDEyICsxMTc5LDEzIEBACiBTT1VSQ0VfQlJPV1NFUiAgICAgICAgID0gTk8KIAogIyBTZXR0aW5nIHRoZSBJTkxJTkVfU09VUkNFUyB0YWcgdG8gWUVTIHdpbGwgaW5jbHVkZSB0aGUgYm9keSBvZiBmdW5jdGlvbnMsCi0jIGNsYXNzZXMgYW5kIGVudW1zIGRpcmVjdGx5IGludG8gdGhlIGRvY3VtZW50YXRpb24uCisjIG11bHRpLWxpbmUgbWFjcm9zLCBlbnVtcyBvciBsaXN0IGluaXRpYWxpemVkIHZhcmlhYmxlcyBkaXJlY3RseSBpbnRvIHRoZQorIyBkb2N1bWVudGF0aW9uLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIElOTElORV9TT1VSQ0VTICAgICAgICAgPSBOTwogCi0jIFNldHRpbmcgdGhlIFNUUklQX0NPREVfQ09NTUVOVFMgdGFnIHRvIFlFUyB3aWxsIGluc3RydWN0IGRveHlnZW4gdG8gaGlkZSBhbnkKKyMgU2V0dGluZyB0aGUgU1RSSVBfQ09ERV9DT01NRU5UUyB0YWcgdG8gWUVTIHdpbGwgaW5zdHJ1Y3QgRG94eWdlbiB0byBoaWRlIGFueQogIyBzcGVjaWFsIGNvbW1lbnQgYmxvY2tzIGZyb20gZ2VuZXJhdGVkIHNvdXJjZSBjb2RlIGZyYWdtZW50cy4gTm9ybWFsIEMsIEMrKyBhbmQKICMgRm9ydHJhbiBjb21tZW50cyB3aWxsIGFsd2F5cyByZW1haW4gdmlzaWJsZS4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KQEAgLTk5MSw3ICsxMTkzLDcgQEAKIFNUUklQX0NPREVfQ09NTUVOVFMgICAgPSBZRVMKIAogIyBJZiB0aGUgUkVGRVJFTkNFRF9CWV9SRUxBVElPTiB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGZvciBlYWNoIGRvY3VtZW50ZWQKLSMgZnVuY3Rpb24gYWxsIGRvY3VtZW50ZWQgZnVuY3Rpb25zIHJlZmVyZW5jaW5nIGl0IHdpbGwgYmUgbGlzdGVkLgorIyBlbnRpdHkgYWxsIGRvY3VtZW50ZWQgZnVuY3Rpb25zIHJlZmVyZW5jaW5nIGl0IHdpbGwgYmUgbGlzdGVkLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIFJFRkVSRU5DRURfQllfUkVMQVRJT04gPSBOTwpAQCAtMTAyMSwyOCArMTIyMywyOCBAQAogU09VUkNFX1RPT0xUSVBTICAgICAgICA9IFlFUwogCiAjIElmIHRoZSBVU0VfSFRBR1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiB0aGUgcmVmZXJlbmNlcyB0byBzb3VyY2UgY29kZSB3aWxsCi0jIHBvaW50IHRvIHRoZSBIVE1MIGdlbmVyYXRlZCBieSB0aGUgaHRhZ3MoMSkgdG9vbCBpbnN0ZWFkIG9mIGRveHlnZW4gYnVpbHQtaW4KKyMgcG9pbnQgdG8gdGhlIEhUTUwgZ2VuZXJhdGVkIGJ5IHRoZSBodGFncygxKSB0b29sIGluc3RlYWQgb2YgRG94eWdlbiBidWlsdC1pbgogIyBzb3VyY2UgYnJvd3Nlci4gVGhlIGh0YWdzIHRvb2wgaXMgcGFydCBvZiBHTlUncyBnbG9iYWwgc291cmNlIHRhZ2dpbmcgc3lzdGVtCi0jIChzZWUgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2dsb2JhbC9nbG9iYWwuaHRtbCkuIFlvdSB3aWxsIG5lZWQgdmVyc2lvbgorIyAoc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ2xvYmFsL2dsb2JhbC5odG1sKS4gWW91IHdpbGwgbmVlZCB2ZXJzaW9uCiAjIDQuOC42IG9yIGhpZ2hlci4KICMKICMgVG8gdXNlIGl0IGRvIHRoZSBmb2xsb3dpbmc6CiAjIC0gSW5zdGFsbCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgZ2xvYmFsCi0jIC0gRW5hYmxlIFNPVVJDRV9CUk9XU0VSIGFuZCBVU0VfSFRBR1MgaW4gdGhlIGNvbmZpZyBmaWxlCisjIC0gRW5hYmxlIFNPVVJDRV9CUk9XU0VSIGFuZCBVU0VfSFRBR1MgaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZQogIyAtIE1ha2Ugc3VyZSB0aGUgSU5QVVQgcG9pbnRzIHRvIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZQogIyAtIFJ1biBkb3h5Z2VuIGFzIG5vcm1hbAogIwogIyBEb3h5Z2VuIHdpbGwgaW52b2tlIGh0YWdzIChhbmQgdGhhdCB3aWxsIGluIHR1cm4gaW52b2tlIGd0YWdzKSwgc28gdGhlc2UKICMgdG9vbHMgbXVzdCBiZSBhdmFpbGFibGUgZnJvbSB0aGUgY29tbWFuZCBsaW5lIChpLmUuIGluIHRoZSBzZWFyY2ggcGF0aCkuCiAjCi0jIFRoZSByZXN1bHQ6IGluc3RlYWQgb2YgdGhlIHNvdXJjZSBicm93c2VyIGdlbmVyYXRlZCBieSBkb3h5Z2VuLCB0aGUgbGlua3MgdG8KKyMgVGhlIHJlc3VsdDogaW5zdGVhZCBvZiB0aGUgc291cmNlIGJyb3dzZXIgZ2VuZXJhdGVkIGJ5IERveHlnZW4sIHRoZSBsaW5rcyB0bwogIyBzb3VyY2UgY29kZSB3aWxsIG5vdyBwb2ludCB0byB0aGUgb3V0cHV0IG9mIGh0YWdzLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTT1VSQ0VfQlJPV1NFUiBpcyBzZXQgdG8gWUVTLgogCiBVU0VfSFRBR1MgICAgICAgICAgICAgID0gTk8KIAotIyBJZiB0aGUgVkVSQkFUSU1fSEVBREVSUyB0YWcgaXMgc2V0IHRoZSBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYQorIyBJZiB0aGUgVkVSQkFUSU1fSEVBREVSUyB0YWcgaXMgc2V0IHRoZSBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYQogIyB2ZXJiYXRpbSBjb3B5IG9mIHRoZSBoZWFkZXIgZmlsZSBmb3IgZWFjaCBjbGFzcyBmb3Igd2hpY2ggYW4gaW5jbHVkZSBpcwogIyBzcGVjaWZpZWQuIFNldCB0byBOTyB0byBkaXNhYmxlIHRoaXMuCiAjIFNlZSBhbHNvOiBTZWN0aW9uIFxjbGFzcy4KQEAgLTEwNTAsMjUgKzEyNTIsNDYgQEAKIAogVkVSQkFUSU1fSEVBREVSUyAgICAgICA9IE5PCiAKLSMgSWYgdGhlIENMQU5HX0FTU0lTVEVEX1BBUlNJTkcgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgdXNlIHRoZQotIyBjbGFuZyBwYXJzZXIgKHNlZTogaHR0cDovL2NsYW5nLmxsdm0ub3JnLykgZm9yIG1vcmUgYWNjdXJhdGUgcGFyc2luZyBhdCB0aGUKLSMgY29zdCBvZiByZWR1Y2VkIHBlcmZvcm1hbmNlLiBUaGlzIGNhbiBiZSBwYXJ0aWN1bGFybHkgaGVscGZ1bCB3aXRoIHRlbXBsYXRlCi0jIHJpY2ggQysrIGNvZGUgZm9yIHdoaWNoIGRveHlnZW4ncyBidWlsdC1pbiBwYXJzZXIgbGFja3MgdGhlIG5lY2Vzc2FyeSB0eXBlCi0jIGluZm9ybWF0aW9uLgotIyBOb3RlOiBUaGUgYXZhaWxhYmlsaXR5IG9mIHRoaXMgb3B0aW9uIGRlcGVuZHMgb24gd2hldGhlciBvciBub3QgZG94eWdlbiB3YXMKLSMgZ2VuZXJhdGVkIHdpdGggdGhlIC1EdXNlLWxpYmNsYW5nPU9OIG9wdGlvbiBmb3IgQ01ha2UuCisjIElmIHRoZSBDTEFOR19BU1NJU1RFRF9QQVJTSU5HIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIHVzZSB0aGUKKyMgY2xhbmcgcGFyc2VyIChzZWU6CisjIGh0dHA6Ly9jbGFuZy5sbHZtLm9yZy8pIGZvciBtb3JlIGFjY3VyYXRlIHBhcnNpbmcgYXQgdGhlIGNvc3Qgb2YgcmVkdWNlZAorIyBwZXJmb3JtYW5jZS4gVGhpcyBjYW4gYmUgcGFydGljdWxhcmx5IGhlbHBmdWwgd2l0aCB0ZW1wbGF0ZSByaWNoIEMrKyBjb2RlIGZvcgorIyB3aGljaCBEb3h5Z2VuJ3MgYnVpbHQtaW4gcGFyc2VyIGxhY2tzIHRoZSBuZWNlc3NhcnkgdHlwZSBpbmZvcm1hdGlvbi4KKyMgTm90ZTogVGhlIGF2YWlsYWJpbGl0eSBvZiB0aGlzIG9wdGlvbiBkZXBlbmRzIG9uIHdoZXRoZXIgb3Igbm90IERveHlnZW4gd2FzCisjIGdlbmVyYXRlZCB3aXRoIHRoZSAtRHVzZV9saWJjbGFuZz1PTiBvcHRpb24gZm9yIENNYWtlLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIENMQU5HX0FTU0lTVEVEX1BBUlNJTkcgPSBOTwogCisjIElmIHRoZSBDTEFOR19BU1NJU1RFRF9QQVJTSU5HIHRhZyBpcyBzZXQgdG8gWUVTIGFuZCB0aGUgQ0xBTkdfQUREX0lOQ19QQVRIUworIyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCBhZGQgdGhlIGRpcmVjdG9yeSBvZiBlYWNoIGlucHV0IHRvIHRoZQorIyBpbmNsdWRlIHBhdGguCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBDTEFOR19BU1NJU1RFRF9QQVJTSU5HIGlzIHNldCB0byBZRVMuCisKK0NMQU5HX0FERF9JTkNfUEFUSFMgICAgPSBZRVMKKwogIyBJZiBjbGFuZyBhc3Npc3RlZCBwYXJzaW5nIGlzIGVuYWJsZWQgeW91IGNhbiBwcm92aWRlIHRoZSBjb21waWxlciB3aXRoIGNvbW1hbmQKICMgbGluZSBvcHRpb25zIHRoYXQgeW91IHdvdWxkIG5vcm1hbGx5IHVzZSB3aGVuIGludm9raW5nIHRoZSBjb21waWxlci4gTm90ZSB0aGF0Ci0jIHRoZSBpbmNsdWRlIHBhdGhzIHdpbGwgYWxyZWFkeSBiZSBzZXQgYnkgZG94eWdlbiBmb3IgdGhlIGZpbGVzIGFuZCBkaXJlY3RvcmllcworIyB0aGUgaW5jbHVkZSBwYXRocyB3aWxsIGFscmVhZHkgYmUgc2V0IGJ5IERveHlnZW4gZm9yIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMKICMgc3BlY2lmaWVkIHdpdGggSU5QVVQgYW5kIElOQ0xVREVfUEFUSC4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIENMQU5HX0FTU0lTVEVEX1BBUlNJTkcgaXMgc2V0IHRvIFlFUy4KIAogQ0xBTkdfT1BUSU9OUyAgICAgICAgICA9CiAKKyMgSWYgY2xhbmcgYXNzaXN0ZWQgcGFyc2luZyBpcyBlbmFibGVkIHlvdSBjYW4gcHJvdmlkZSB0aGUgY2xhbmcgcGFyc2VyIHdpdGggdGhlCisjIHBhdGggdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGEgZmlsZSBjYWxsZWQgY29tcGlsZV9jb21tYW5kcy5qc29uLiBUaGlzCisjIGZpbGUgaXMgdGhlIGNvbXBpbGF0aW9uIGRhdGFiYXNlIChzZWU6CisjIGh0dHA6Ly9jbGFuZy5sbHZtLm9yZy9kb2NzL0hvd1RvU2V0dXBUb29saW5nRm9yTExWTS5odG1sKSBjb250YWluaW5nIHRoZQorIyBvcHRpb25zIHVzZWQgd2hlbiB0aGUgc291cmNlIGZpbGVzIHdlcmUgYnVpbHQuIFRoaXMgaXMgZXF1aXZhbGVudCB0bworIyBzcGVjaWZ5aW5nIHRoZSAtcCBvcHRpb24gdG8gYSBjbGFuZyB0b29sLCBzdWNoIGFzIGNsYW5nLWNoZWNrLiBUaGVzZSBvcHRpb25zCisjIHdpbGwgdGhlbiBiZSBwYXNzZWQgdG8gdGhlIHBhcnNlci4gQW55IG9wdGlvbnMgc3BlY2lmaWVkIHdpdGggQ0xBTkdfT1BUSU9OUworIyB3aWxsIGJlIGFkZGVkIGFzIHdlbGwuCisjIE5vdGU6IFRoZSBhdmFpbGFiaWxpdHkgb2YgdGhpcyBvcHRpb24gZGVwZW5kcyBvbiB3aGV0aGVyIG9yIG5vdCBEb3h5Z2VuIHdhcworIyBnZW5lcmF0ZWQgd2l0aCB0aGUgLUR1c2VfbGliY2xhbmc9T04gb3B0aW9uIGZvciBDTWFrZS4KKworQ0xBTkdfREFUQUJBU0VfUEFUSCAgICA9CisKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGFscGhhYmV0aWNhbCBjbGFzcyBpbmRleAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTA4MCwxNyArMTMwMywxMSBAQAogCiBBTFBIQUJFVElDQUxfSU5ERVggICAgID0gTk8KIAotIyBUaGUgQ09MU19JTl9BTFBIQV9JTkRFWCB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4KLSMgd2hpY2ggdGhlIGFscGhhYmV0aWNhbCBpbmRleCBsaXN0IHdpbGwgYmUgc3BsaXQuCi0jIE1pbmltdW0gdmFsdWU6IDEsIG1heGltdW0gdmFsdWU6IDIwLCBkZWZhdWx0IHZhbHVlOiA1LgotIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgQUxQSEFCRVRJQ0FMX0lOREVYIGlzIHNldCB0byBZRVMuCi0KLUNPTFNfSU5fQUxQSEFfSU5ERVggICAgPSA1Ci0KLSMgSW4gY2FzZSBhbGwgY2xhc3NlcyBpbiBhIHByb2plY3Qgc3RhcnQgd2l0aCBhIGNvbW1vbiBwcmVmaXgsIGFsbCBjbGFzc2VzIHdpbGwKLSMgYmUgcHV0IHVuZGVyIHRoZSBzYW1lIGhlYWRlciBpbiB0aGUgYWxwaGFiZXRpY2FsIGluZGV4LiBUaGUgSUdOT1JFX1BSRUZJWCB0YWcKLSMgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHByZWZpeCAob3IgYSBsaXN0IG9mIHByZWZpeGVzKSB0aGF0IHNob3VsZCBiZSBpZ25vcmVkCi0jIHdoaWxlIGdlbmVyYXRpbmcgdGhlIGluZGV4IGhlYWRlcnMuCisjIFRoZSBJR05PUkVfUFJFRklYIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgcHJlZml4IChvciBhIGxpc3Qgb2YgcHJlZml4ZXMpCisjIHRoYXQgc2hvdWxkIGJlIGlnbm9yZWQgd2hpbGUgZ2VuZXJhdGluZyB0aGUgaW5kZXggaGVhZGVycy4gVGhlIElHTk9SRV9QUkVGSVgKKyMgdGFnIHdvcmtzIGZvciBjbGFzc2VzLCBmdW5jdGlvbiBhbmQgbWVtYmVyIG5hbWVzLiBUaGUgZW50aXR5IHdpbGwgYmUgcGxhY2VkIGluCisjIHRoZSBhbHBoYWJldGljYWwgbGlzdCB1bmRlciB0aGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBlbnRpdHkgbmFtZSB0aGF0IHJlbWFpbnMKKyMgYWZ0ZXIgcmVtb3ZpbmcgdGhlIHByZWZpeC4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEFMUEhBQkVUSUNBTF9JTkRFWCBpcyBzZXQgdG8gWUVTLgogCiBJR05PUkVfUFJFRklYICAgICAgICAgID0KQEAgLTEwOTksNyArMTMxNiw3IEBACiAjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBIVE1MIG91dHB1dAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElmIHRoZSBHRU5FUkFURV9IVE1MIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgSFRNTCBvdXRwdXQKKyMgSWYgdGhlIEdFTkVSQVRFX0hUTUwgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBIVE1MIG91dHB1dAogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogCiBHRU5FUkFURV9IVE1MICAgICAgICAgID0gWUVTCkBAIC0xMTIwLDQwICsxMzM3LDQwIEBACiBIVE1MX0ZJTEVfRVhURU5TSU9OICAgID0gLmh0bWwKIAogIyBUaGUgSFRNTF9IRUFERVIgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYSB1c2VyLWRlZmluZWQgSFRNTCBoZWFkZXIgZmlsZSBmb3IKLSMgZWFjaCBnZW5lcmF0ZWQgSFRNTCBwYWdlLiBJZiB0aGUgdGFnIGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEKKyMgZWFjaCBnZW5lcmF0ZWQgSFRNTCBwYWdlLiBJZiB0aGUgdGFnIGlzIGxlZnQgYmxhbmsgRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEKICMgc3RhbmRhcmQgaGVhZGVyLgogIwogIyBUbyBnZXQgdmFsaWQgSFRNTCB0aGUgaGVhZGVyIGZpbGUgdGhhdCBpbmNsdWRlcyBhbnkgc2NyaXB0cyBhbmQgc3R5bGUgc2hlZXRzCi0jIHRoYXQgZG94eWdlbiBuZWVkcywgd2hpY2ggaXMgZGVwZW5kZW50IG9uIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdXNlZCAoZS5nLgorIyB0aGF0IERveHlnZW4gbmVlZHMsIHdoaWNoIGlzIGRlcGVuZGVudCBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIHVzZWQgKGUuZy4KICMgdGhlIHNldHRpbmcgR0VORVJBVEVfVFJFRVZJRVcpLiBJdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdG8gc3RhcnQgd2l0aCBhCiAjIGRlZmF1bHQgaGVhZGVyIHVzaW5nCiAjIGRveHlnZW4gLXcgaHRtbCBuZXdfaGVhZGVyLmh0bWwgbmV3X2Zvb3Rlci5odG1sIG5ld19zdHlsZXNoZWV0LmNzcwogIyBZb3VyQ29uZmlnRmlsZQogIyBhbmQgdGhlbiBtb2RpZnkgdGhlIGZpbGUgbmV3X2hlYWRlci5odG1sLiBTZWUgYWxzbyBzZWN0aW9uICJEb3h5Z2VuIHVzYWdlIgotIyBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZSBkZWZhdWx0IGhlYWRlciB0aGF0IGRveHlnZW4gbm9ybWFsbHkKKyMgZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBnZW5lcmF0ZSB0aGUgZGVmYXVsdCBoZWFkZXIgdGhhdCBEb3h5Z2VuIG5vcm1hbGx5CiAjIHVzZXMuCiAjIE5vdGU6IFRoZSBoZWFkZXIgaXMgc3ViamVjdCB0byBjaGFuZ2Ugc28geW91IHR5cGljYWxseSBoYXZlIHRvIHJlZ2VuZXJhdGUgdGhlCi0jIGRlZmF1bHQgaGVhZGVyIHdoZW4gdXBncmFkaW5nIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBkb3h5Z2VuLiBGb3IgYSBkZXNjcmlwdGlvbgorIyBkZWZhdWx0IGhlYWRlciB3aGVuIHVwZ3JhZGluZyB0byBhIG5ld2VyIHZlcnNpb24gb2YgRG94eWdlbi4gRm9yIGEgZGVzY3JpcHRpb24KICMgb2YgdGhlIHBvc3NpYmxlIG1hcmtlcnMgYW5kIGJsb2NrIG5hbWVzIHNlZSB0aGUgZG9jdW1lbnRhdGlvbi4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KIAogSFRNTF9IRUFERVIgICAgICAgICAgICA9CiAKICMgVGhlIEhUTUxfRk9PVEVSIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgdXNlci1kZWZpbmVkIEhUTUwgZm9vdGVyIGZvciBlYWNoCi0jIGdlbmVyYXRlZCBIVE1MIHBhZ2UuIElmIHRoZSB0YWcgaXMgbGVmdCBibGFuayBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBzdGFuZGFyZAorIyBnZW5lcmF0ZWQgSFRNTCBwYWdlLiBJZiB0aGUgdGFnIGlzIGxlZnQgYmxhbmsgRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgc3RhbmRhcmQKICMgZm9vdGVyLiBTZWUgSFRNTF9IRUFERVIgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIGEgZGVmYXVsdAogIyBmb290ZXIgYW5kIHdoYXQgc3BlY2lhbCBjb21tYW5kcyBjYW4gYmUgdXNlZCBpbnNpZGUgdGhlIGZvb3Rlci4gU2VlIGFsc28KICMgc2VjdGlvbiAiRG94eWdlbiB1c2FnZSIgZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBnZW5lcmF0ZSB0aGUgZGVmYXVsdCBmb290ZXIKLSMgdGhhdCBkb3h5Z2VuIG5vcm1hbGx5IHVzZXMuCisjIHRoYXQgRG94eWdlbiBub3JtYWxseSB1c2VzLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCiBIVE1MX0ZPT1RFUiAgICAgICAgICAgID0KIAogIyBUaGUgSFRNTF9TVFlMRVNIRUVUIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgdXNlci1kZWZpbmVkIGNhc2NhZGluZyBzdHlsZQogIyBzaGVldCB0aGF0IGlzIHVzZWQgYnkgZWFjaCBIVE1MIHBhZ2UuIEl0IGNhbiBiZSB1c2VkIHRvIGZpbmUtdHVuZSB0aGUgbG9vayBvZgotIyB0aGUgSFRNTCBvdXRwdXQuIElmIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZGVmYXVsdCBzdHlsZSBzaGVldC4KKyMgdGhlIEhUTUwgb3V0cHV0LiBJZiBsZWZ0IGJsYW5rIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGRlZmF1bHQgc3R5bGUgc2hlZXQuCiAjIFNlZSBhbHNvIHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgdGhlIHN0eWxlCi0jIHNoZWV0IHRoYXQgZG94eWdlbiBub3JtYWxseSB1c2VzLgorIyBzaGVldCB0aGF0IERveHlnZW4gbm9ybWFsbHkgdXNlcy4KICMgTm90ZTogSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIEhUTUxfRVhUUkFfU1RZTEVTSEVFVCBpbnN0ZWFkIG9mIHRoaXMgdGFnLCBhcwogIyBpdCBpcyBtb3JlIHJvYnVzdCBhbmQgdGhpcyB0YWcgKEhUTUxfU1RZTEVTSEVFVCkgd2lsbCBpbiB0aGUgZnV0dXJlIGJlY29tZQogIyBvYnNvbGV0ZS4KQEAgLTExNjMsMTMgKzEzODAsMTggQEAKIAogIyBUaGUgSFRNTF9FWFRSQV9TVFlMRVNIRUVUIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgdXNlci1kZWZpbmVkCiAjIGNhc2NhZGluZyBzdHlsZSBzaGVldHMgdGhhdCBhcmUgaW5jbHVkZWQgYWZ0ZXIgdGhlIHN0YW5kYXJkIHN0eWxlIHNoZWV0cwotIyBjcmVhdGVkIGJ5IGRveHlnZW4uIFVzaW5nIHRoaXMgb3B0aW9uIG9uZSBjYW4gb3ZlcnJ1bGUgY2VydGFpbiBzdHlsZSBhc3BlY3RzLgorIyBjcmVhdGVkIGJ5IERveHlnZW4uIFVzaW5nIHRoaXMgb3B0aW9uIG9uZSBjYW4gb3ZlcnJ1bGUgY2VydGFpbiBzdHlsZSBhc3BlY3RzLgogIyBUaGlzIGlzIHByZWZlcnJlZCBvdmVyIHVzaW5nIEhUTUxfU1RZTEVTSEVFVCBzaW5jZSBpdCBkb2VzIG5vdCByZXBsYWNlIHRoZQogIyBzdGFuZGFyZCBzdHlsZSBzaGVldCBhbmQgaXMgdGhlcmVmb3JlIG1vcmUgcm9idXN0IGFnYWluc3QgZnV0dXJlIHVwZGF0ZXMuCiAjIERveHlnZW4gd2lsbCBjb3B5IHRoZSBzdHlsZSBzaGVldCBmaWxlcyB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeS4KICMgTm90ZTogVGhlIG9yZGVyIG9mIHRoZSBleHRyYSBzdHlsZSBzaGVldCBmaWxlcyBpcyBvZiBpbXBvcnRhbmNlIChlLmcuIHRoZSBsYXN0CiAjIHN0eWxlIHNoZWV0IGluIHRoZSBsaXN0IG92ZXJydWxlcyB0aGUgc2V0dGluZyBvZiB0aGUgcHJldmlvdXMgb25lcyBpbiB0aGUKLSMgbGlzdCkuIEZvciBhbiBleGFtcGxlIHNlZSB0aGUgZG9jdW1lbnRhdGlvbi4KKyMgbGlzdCkuCisjIE5vdGU6IFNpbmNlIHRoZSBzdHlsaW5nIG9mIHNjcm9sbGJhcnMgY2FuIGN1cnJlbnRseSBub3QgYmUgb3ZlcnJ1bGVkIGluCisjIFdlYmtpdC9DaHJvbWl1bSwgdGhlIHN0eWxpbmcgd2lsbCBiZSBsZWZ0IG91dCBvZiB0aGUgZGVmYXVsdCBkb3h5Z2VuLmNzcyBpZgorIyBvbmUgb3IgbW9yZSBleHRyYSBzdHlsZXNoZWV0cyBoYXZlIGJlZW4gc3BlY2lmaWVkLiBTbyBpZiBzY3JvbGxiYXIKKyMgY3VzdG9taXphdGlvbiBpcyBkZXNpcmVkIGl0IGhhcyB0byBiZSBhZGRlZCBleHBsaWNpdGx5LiBGb3IgYW4gZXhhbXBsZSBzZWUgdGhlCisjIGRvY3VtZW50YXRpb24uCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCiAKIEhUTUxfRVhUUkFfU1RZTEVTSEVFVCAgPQpAQCAtMTE4NCwxMCArMTQwNiwyMyBAQAogCiBIVE1MX0VYVFJBX0ZJTEVTICAgICAgID0KIAorIyBUaGUgSFRNTF9DT0xPUlNUWUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGlmIHRoZSBnZW5lcmF0ZWQgSFRNTCBvdXRwdXQKKyMgc2hvdWxkIGJlIHJlbmRlcmVkIHdpdGggYSBkYXJrIG9yIGxpZ2h0IHRoZW1lLgorIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBMSUdIVCBhbHdheXMgZ2VuZXJhdGVzIGxpZ2h0IG1vZGUgb3V0cHV0LCBEQVJLIGFsd2F5cworIyBnZW5lcmF0ZXMgZGFyayBtb2RlIG91dHB1dCwgQVVUT19MSUdIVCBhdXRvbWF0aWNhbGx5IHNldHMgdGhlIG1vZGUgYWNjb3JkaW5nCisjIHRvIHRoZSB1c2VyIHByZWZlcmVuY2UsIHVzZXMgbGlnaHQgbW9kZSBpZiBubyBwcmVmZXJlbmNlIGlzIHNldCAodGhlIGRlZmF1bHQpLAorIyBBVVRPX0RBUksgYXV0b21hdGljYWxseSBzZXRzIHRoZSBtb2RlIGFjY29yZGluZyB0byB0aGUgdXNlciBwcmVmZXJlbmNlLCB1c2VzCisjIGRhcmsgbW9kZSBpZiBubyBwcmVmZXJlbmNlIGlzIHNldCBhbmQgVE9HR0xFIGFsbG93cyBhIHVzZXIgdG8gc3dpdGNoIGJldHdlZW4KKyMgbGlnaHQgYW5kIGRhcmsgbW9kZSB2aWEgYSBidXR0b24uCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBBVVRPX0xJR0hULgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0NPTE9SU1RZTEUgICAgICAgID0gQVVUT19MSUdIVAorCiAjIFRoZSBIVE1MX0NPTE9SU1RZTEVfSFVFIHRhZyBjb250cm9scyB0aGUgY29sb3Igb2YgdGhlIEhUTUwgb3V0cHV0LiBEb3h5Z2VuCiAjIHdpbGwgYWRqdXN0IHRoZSBjb2xvcnMgaW4gdGhlIHN0eWxlIHNoZWV0IGFuZCBiYWNrZ3JvdW5kIGltYWdlcyBhY2NvcmRpbmcgdG8KLSMgdGhpcyBjb2xvci4gSHVlIGlzIHNwZWNpZmllZCBhcyBhbiBhbmdsZSBvbiBhIGNvbG9yd2hlZWwsIHNlZQotIyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0h1ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4gRm9yIGluc3RhbmNlIHRoZSB2YWx1ZQorIyB0aGlzIGNvbG9yLiBIdWUgaXMgc3BlY2lmaWVkIGFzIGFuIGFuZ2xlIG9uIGEgY29sb3Itd2hlZWwsIHNlZQorIyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9IdWUgZm9yIG1vcmUgaW5mb3JtYXRpb24uIEZvciBpbnN0YW5jZSB0aGUgdmFsdWUKICMgMCByZXByZXNlbnRzIHJlZCwgNjAgaXMgeWVsbG93LCAxMjAgaXMgZ3JlZW4sIDE4MCBpcyBjeWFuLCAyNDAgaXMgYmx1ZSwgMzAwCiAjIHB1cnBsZSwgYW5kIDM2MCBpcyByZWQgYWdhaW4uCiAjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDM1OSwgZGVmYXVsdCB2YWx1ZTogMjIwLgpAQCAtMTE5Niw3ICsxNDMxLDcgQEAKIEhUTUxfQ09MT1JTVFlMRV9IVUUgICAgPSAyMjAKIAogIyBUaGUgSFRNTF9DT0xPUlNUWUxFX1NBVCB0YWcgY29udHJvbHMgdGhlIHB1cml0eSAob3Igc2F0dXJhdGlvbikgb2YgdGhlIGNvbG9ycwotIyBpbiB0aGUgSFRNTCBvdXRwdXQuIEZvciBhIHZhbHVlIG9mIDAgdGhlIG91dHB1dCB3aWxsIHVzZSBncmF5c2NhbGVzIG9ubHkuIEEKKyMgaW4gdGhlIEhUTUwgb3V0cHV0LiBGb3IgYSB2YWx1ZSBvZiAwIHRoZSBvdXRwdXQgd2lsbCB1c2UgZ3JheS1zY2FsZXMgb25seS4gQQogIyB2YWx1ZSBvZiAyNTUgd2lsbCBwcm9kdWNlIHRoZSBtb3N0IHZpdmlkIGNvbG9ycy4KICMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMjU1LCBkZWZhdWx0IHZhbHVlOiAxMDAuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCkBAIC0xMjE0LDE0ICsxNDQ5LDE2IEBACiAKIEhUTUxfQ09MT1JTVFlMRV9HQU1NQSAgPSA4MAogCi0jIElmIHRoZSBIVE1MX1RJTUVTVEFNUCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHRoZSBmb290ZXIgb2YgZWFjaCBnZW5lcmF0ZWQgSFRNTAotIyBwYWdlIHdpbGwgY29udGFpbiB0aGUgZGF0ZSBhbmQgdGltZSB3aGVuIHRoZSBwYWdlIHdhcyBnZW5lcmF0ZWQuIFNldHRpbmcgdGhpcwotIyB0byBZRVMgY2FuIGhlbHAgdG8gc2hvdyB3aGVuIGRveHlnZW4gd2FzIGxhc3QgcnVuIGFuZCB0aHVzIGlmIHRoZQotIyBkb2N1bWVudGF0aW9uIGlzIHVwIHRvIGRhdGUuCi0jIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgSWYgdGhlIEhUTUxfRFlOQU1JQ19NRU5VUyB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIHRoZSBnZW5lcmF0ZWQgSFRNTAorIyBkb2N1bWVudGF0aW9uIHdpbGwgY29udGFpbiBhIG1haW4gaW5kZXggd2l0aCB2ZXJ0aWNhbCBuYXZpZ2F0aW9uIG1lbnVzIHRoYXQKKyMgYXJlIGR5bmFtaWNhbGx5IGNyZWF0ZWQgdmlhIEphdmFTY3JpcHQuIElmIGRpc2FibGVkLCB0aGUgbmF2aWdhdGlvbiBpbmRleCB3aWxsCisjIGNvbnNpc3RzIG9mIG11bHRpcGxlIGxldmVscyBvZiB0YWJzIHRoYXQgYXJlIHN0YXRpY2FsbHkgZW1iZWRkZWQgaW4gZXZlcnkgSFRNTAorIyBwYWdlLiBEaXNhYmxlIHRoaXMgb3B0aW9uIHRvIHN1cHBvcnQgYnJvd3NlcnMgdGhhdCBkbyBub3QgaGF2ZSBKYXZhU2NyaXB0LAorIyBsaWtlIHRoZSBRdCBoZWxwIGJyb3dzZXIuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCiAKLUhUTUxfVElNRVNUQU1QICAgICAgICAgPSBOTworSFRNTF9EWU5BTUlDX01FTlVTICAgICA9IFlFUwogCiAjIElmIHRoZSBIVE1MX0RZTkFNSUNfU0VDVElPTlMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiB0aGUgZ2VuZXJhdGVkIEhUTUwKICMgZG9jdW1lbnRhdGlvbiB3aWxsIGNvbnRhaW4gc2VjdGlvbnMgdGhhdCBjYW4gYmUgaGlkZGVuIGFuZCBzaG93biBhZnRlciB0aGUKQEAgLTEyMzEsNiArMTQ2OCwzMyBAQAogCiBIVE1MX0RZTkFNSUNfU0VDVElPTlMgID0gTk8KIAorIyBJZiB0aGUgSFRNTF9DT0RFX0ZPTERJTkcgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBjbGFzc2VzIGFuZCBmdW5jdGlvbnMgY2FuIGJlCisjIGR5bmFtaWNhbGx5IGZvbGRlZCBhbmQgZXhwYW5kZWQgaW4gdGhlIGdlbmVyYXRlZCBIVE1MIHNvdXJjZSBjb2RlLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0NPREVfRk9MRElORyAgICAgID0gWUVTCisKKyMgSWYgdGhlIEhUTUxfQ09QWV9DTElQQk9BUkQgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgc2hvdyBhbiBpY29uIGluCisjIHRoZSB0b3AgcmlnaHQgY29ybmVyIG9mIGNvZGUgYW5kIHRleHQgZnJhZ21lbnRzIHRoYXQgYWxsb3dzIHRoZSB1c2VyIHRvIGNvcHkKKyMgaXRzIGNvbnRlbnQgdG8gdGhlIGNsaXBib2FyZC4gTm90ZSB0aGlzIG9ubHkgd29ya3MgaWYgc3VwcG9ydGVkIGJ5IHRoZSBicm93c2VyCisjIGFuZCB0aGUgd2ViIHBhZ2UgaXMgc2VydmVkIHZpYSBhIHNlY3VyZSBjb250ZXh0IChzZWU6CisjIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9zZWN1cmUtY29udGV4dHMvKSwgaS5lLiB1c2luZyB0aGUgaHR0cHM6IG9yIGZpbGU6CisjIHByb3RvY29sLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX0NPUFlfQ0xJUEJPQVJEICAgID0gWUVTCisKKyMgRG94eWdlbiBzdG9yZXMgYSBjb3VwbGUgb2Ygc2V0dGluZ3MgcGVyc2lzdGVudGx5IGluIHRoZSBicm93c2VyICh2aWEgZS5nLgorIyBjb29raWVzKS4gQnkgZGVmYXVsdCB0aGVzZSBzZXR0aW5ncyBhcHBseSB0byBhbGwgSFRNTCBwYWdlcyBnZW5lcmF0ZWQgYnkKKyMgRG94eWdlbiBhY3Jvc3MgYWxsIHByb2plY3RzLiBUaGUgSFRNTF9QUk9KRUNUX0NPT0tJRSB0YWcgY2FuIGJlIHVzZWQgdG8gc3RvcmUKKyMgdGhlIHNldHRpbmdzIHVuZGVyIGEgcHJvamVjdCBzcGVjaWZpYyBrZXksIHN1Y2ggdGhhdCB0aGUgdXNlciBwcmVmZXJlbmNlcyB3aWxsCisjIGJlIHN0b3JlZCBzZXBhcmF0ZWx5LgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitIVE1MX1BST0pFQ1RfQ09PS0lFICAgID0KKwogIyBXaXRoIEhUTUxfSU5ERVhfTlVNX0VOVFJJRVMgb25lIGNhbiBjb250cm9sIHRoZSBwcmVmZXJyZWQgbnVtYmVyIG9mIGVudHJpZXMKICMgc2hvd24gaW4gdGhlIHZhcmlvdXMgdHJlZSBzdHJ1Y3R1cmVkIGluZGljZXMgaW5pdGlhbGx5OyB0aGUgdXNlciBjYW4gZXhwYW5kCiAjIGFuZCBjb2xsYXBzZSBlbnRyaWVzIGR5bmFtaWNhbGx5IGxhdGVyIG9uLiBEb3h5Z2VuIHdpbGwgZXhwYW5kIHRoZSB0cmVlIHRvCkBAIC0xMjQ2LDEzICsxNTEwLDE0IEBACiAKICMgSWYgdGhlIEdFTkVSQVRFX0RPQ1NFVCB0YWcgaXMgc2V0IHRvIFlFUywgYWRkaXRpb25hbCBpbmRleCBmaWxlcyB3aWxsIGJlCiAjIGdlbmVyYXRlZCB0aGF0IGNhbiBiZSB1c2VkIGFzIGlucHV0IGZvciBBcHBsZSdzIFhjb2RlIDMgaW50ZWdyYXRlZCBkZXZlbG9wbWVudAotIyBlbnZpcm9ubWVudCAoc2VlOiBodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS90b29scy94Y29kZS8pLCBpbnRyb2R1Y2VkIHdpdGgKLSMgT1NYIDEwLjUgKExlb3BhcmQpLiBUbyBjcmVhdGUgYSBkb2N1bWVudGF0aW9uIHNldCwgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEKLSMgTWFrZWZpbGUgaW4gdGhlIEhUTUwgb3V0cHV0IGRpcmVjdG9yeS4gUnVubmluZyBtYWtlIHdpbGwgcHJvZHVjZSB0aGUgZG9jc2V0IGluCi0jIHRoYXQgZGlyZWN0b3J5IGFuZCBydW5uaW5nIG1ha2UgaW5zdGFsbCB3aWxsIGluc3RhbGwgdGhlIGRvY3NldCBpbgorIyBlbnZpcm9ubWVudCAoc2VlOgorIyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20veGNvZGUvKSwgaW50cm9kdWNlZCB3aXRoIE9TWCAxMC41IChMZW9wYXJkKS4gVG8KKyMgY3JlYXRlIGEgZG9jdW1lbnRhdGlvbiBzZXQsIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIE1ha2VmaWxlIGluIHRoZSBIVE1MCisjIG91dHB1dCBkaXJlY3RvcnkuIFJ1bm5pbmcgbWFrZSB3aWxsIHByb2R1Y2UgdGhlIGRvY3NldCBpbiB0aGF0IGRpcmVjdG9yeSBhbmQKKyMgcnVubmluZyBtYWtlIGluc3RhbGwgd2lsbCBpbnN0YWxsIHRoZSBkb2NzZXQgaW4KICMgfi9MaWJyYXJ5L0RldmVsb3Blci9TaGFyZWQvRG9jdW1lbnRhdGlvbi9Eb2NTZXRzIHNvIHRoYXQgWGNvZGUgd2lsbCBmaW5kIGl0IGF0Ci0jIHN0YXJ0dXAuIFNlZSBodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS90b29scy9jcmVhdGluZ2RvY3NldHN3aXRoZG94eWdlbi5odG1sCi0jIGZvciBtb3JlIGluZm9ybWF0aW9uLgorIyBzdGFydHVwLiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvYXJjaGl2ZS9mZWF0dXJlZGFydGljbGVzL0RveHkKKyMgZ2VuWGNvZGUvX2luZGV4Lmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KIApAQCAtMTI2Niw2ICsxNTMxLDEzIEBACiAKIERPQ1NFVF9GRUVETkFNRSAgICAgICAgPSAiRG94eWdlbiBnZW5lcmF0ZWQgZG9jcyIKIAorIyBUaGlzIHRhZyBkZXRlcm1pbmVzIHRoZSBVUkwgb2YgdGhlIGRvY3NldCBmZWVkLiBBIGRvY3VtZW50YXRpb24gZmVlZCBwcm92aWRlcworIyBhbiB1bWJyZWxsYSB1bmRlciB3aGljaCBtdWx0aXBsZSBkb2N1bWVudGF0aW9uIHNldHMgZnJvbSBhIHNpbmdsZSBwcm92aWRlcgorIyAoc3VjaCBhcyBhIGNvbXBhbnkgb3IgcHJvZHVjdCBzdWl0ZSkgY2FuIGJlIGdyb3VwZWQuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9ET0NTRVQgaXMgc2V0IHRvIFlFUy4KKworRE9DU0VUX0ZFRURVUkwgICAgICAgICA9CisKICMgVGhpcyB0YWcgc3BlY2lmaWVzIGEgc3RyaW5nIHRoYXQgc2hvdWxkIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBkb2N1bWVudGF0aW9uCiAjIHNldCBidW5kbGUuIFRoaXMgc2hvdWxkIGJlIGEgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHlsZSBzdHJpbmcsIGUuZy4KICMgY29tLm15Y29tcGFueS5NeURvY1NldC4gRG94eWdlbiB3aWxsIGFwcGVuZCAuZG9jc2V0IHRvIHRoZSBuYW1lLgpAQCAtMTI4OCwxNCArMTU2MCwxOCBAQAogCiBET0NTRVRfUFVCTElTSEVSX05BTUUgID0gUHVibGlzaGVyCiAKLSMgSWYgdGhlIEdFTkVSQVRFX0hUTUxIRUxQIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiBnZW5lcmF0ZXMgdGhyZWUKKyMgSWYgdGhlIEdFTkVSQVRFX0hUTUxIRUxQIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiBnZW5lcmF0ZXMgdGhyZWUKICMgYWRkaXRpb25hbCBIVE1MIGluZGV4IGZpbGVzOiBpbmRleC5oaHAsIGluZGV4LmhoYywgYW5kIGluZGV4Lmhoay4gVGhlCiAjIGluZGV4LmhocCBpcyBhIHByb2plY3QgZmlsZSB0aGF0IGNhbiBiZSByZWFkIGJ5IE1pY3Jvc29mdCdzIEhUTUwgSGVscCBXb3Jrc2hvcAotIyAoc2VlOiBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vZW4tdXMvZG93bmxvYWQvZGV0YWlscy5hc3B4P2lkPTIxMTM4KSBvbgotIyBXaW5kb3dzLgorIyBvbiBXaW5kb3dzLiBJbiB0aGUgYmVnaW5uaW5nIG9mIDIwMjEgTWljcm9zb2Z0IHRvb2sgdGhlIG9yaWdpbmFsIHBhZ2UsIHdpdGgKKyMgYS5vLiB0aGUgZG93bmxvYWQgbGlua3MsIG9mZmxpbmUgdGhlIEhUTUwgaGVscCB3b3Jrc2hvcCB3YXMgYWxyZWFkeSBtYW55IHllYXJzCisjIGluIG1haW50ZW5hbmNlIG1vZGUpLiBZb3UgY2FuIGRvd25sb2FkIHRoZSBIVE1MIGhlbHAgd29ya3Nob3AgZnJvbSB0aGUgd2ViCisjIGFyY2hpdmVzIGF0IEluc3RhbGxhdGlvbiBleGVjdXRhYmxlIChzZWU6CisjIGh0dHA6Ly93ZWIuYXJjaGl2ZS5vcmcvd2ViLzIwMTYwMjAxMDYzMjU1L2h0dHA6Ly9kb3dubG9hZC5taWNyb3NvZnQuY29tL2Rvd25sbworIyBhZC8wL0EvOS8wQTkzOUVGNi1FMzFDLTQzMEYtQTNERi1ERkFFNzk2MEQ1NjQvaHRtbGhlbHAuZXhlKS4KICMKICMgVGhlIEhUTUwgSGVscCBXb3Jrc2hvcCBjb250YWlucyBhIGNvbXBpbGVyIHRoYXQgY2FuIGNvbnZlcnQgYWxsIEhUTUwgb3V0cHV0Ci0jIGdlbmVyYXRlZCBieSBkb3h5Z2VuIGludG8gYSBzaW5nbGUgY29tcGlsZWQgSFRNTCBmaWxlICguY2htKS4gQ29tcGlsZWQgSFRNTAorIyBnZW5lcmF0ZWQgYnkgRG94eWdlbiBpbnRvIGEgc2luZ2xlIGNvbXBpbGVkIEhUTUwgZmlsZSAoLmNobSkuIENvbXBpbGVkIEhUTUwKICMgZmlsZXMgYXJlIG5vdyB1c2VkIGFzIHRoZSBXaW5kb3dzIDk4IGhlbHAgZm9ybWF0LCBhbmQgd2lsbCByZXBsYWNlIHRoZSBvbGQKICMgV2luZG93cyBoZWxwIGZvcm1hdCAoLmhscCkgb24gYWxsIFdpbmRvd3MgcGxhdGZvcm1zIGluIHRoZSBmdXR1cmUuIENvbXByZXNzZWQKICMgSFRNTCBmaWxlcyBhbHNvIGNvbnRhaW4gYW4gaW5kZXgsIGEgdGFibGUgb2YgY29udGVudHMsIGFuZCB5b3UgY2FuIHNlYXJjaCBmb3IKQEAgLTEzMTUsMTQgKzE1OTEsMTQgQEAKIAogIyBUaGUgSEhDX0xPQ0FUSU9OIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiAoYWJzb2x1dGUgcGF0aAogIyBpbmNsdWRpbmcgZmlsZSBuYW1lKSBvZiB0aGUgSFRNTCBoZWxwIGNvbXBpbGVyIChoaGMuZXhlKS4gSWYgbm9uLWVtcHR5LAotIyBkb3h5Z2VuIHdpbGwgdHJ5IHRvIHJ1biB0aGUgSFRNTCBoZWxwIGNvbXBpbGVyIG9uIHRoZSBnZW5lcmF0ZWQgaW5kZXguaGhwLgorIyBEb3h5Z2VuIHdpbGwgdHJ5IHRvIHJ1biB0aGUgSFRNTCBoZWxwIGNvbXBpbGVyIG9uIHRoZSBnZW5lcmF0ZWQgaW5kZXguaGhwLgogIyBUaGUgZmlsZSBoYXMgdG8gYmUgc3BlY2lmaWVkIHdpdGggZnVsbCBwYXRoLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KIAogSEhDX0xPQ0FUSU9OICAgICAgICAgICA9CiAKICMgVGhlIEdFTkVSQVRFX0NISSBmbGFnIGNvbnRyb2xzIGlmIGEgc2VwYXJhdGUgLmNoaSBpbmRleCBmaWxlIGlzIGdlbmVyYXRlZAotIyAoWUVTKSBvciB0aGF0IGl0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgbWFzdGVyIC5jaG0gZmlsZSAoTk8pLgorIyAoWUVTKSBvciB0aGF0IGl0IHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgbWFpbiAuY2htIGZpbGUgKE5PKS4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTEhFTFAgaXMgc2V0IHRvIFlFUy4KIApAQCAtMTM0OSw2ICsxNjI1LDE2IEBACiAKIFRPQ19FWFBBTkQgICAgICAgICAgICAgPSBOTwogCisjIFRoZSBTSVRFTUFQX1VSTCB0YWcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBmdWxsIFVSTCBvZiB0aGUgcGxhY2Ugd2hlcmUgdGhlCisjIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIHdpbGwgYmUgcGxhY2VkIG9uIHRoZSBzZXJ2ZXIgYnkgdGhlIHVzZXIgZHVyaW5nIHRoZQorIyBkZXBsb3ltZW50IG9mIHRoZSBkb2N1bWVudGF0aW9uLiBUaGUgZ2VuZXJhdGVkIHNpdGVtYXAgaXMgY2FsbGVkIHNpdGVtYXAueG1sCisjIGFuZCBwbGFjZWQgb24gdGhlIGRpcmVjdG9yeSBzcGVjaWZpZWQgYnkgSFRNTF9PVVRQVVQuIEluIGNhc2Ugbm8gU0lURU1BUF9VUkwKKyMgaXMgc3BlY2lmaWVkIG5vIHNpdGVtYXAgaXMgZ2VuZXJhdGVkLiBGb3IgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNpdGVtYXAKKyMgcHJvdG9jb2wgc2VlIGh0dHBzOi8vd3d3LnNpdGVtYXBzLm9yZworIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitTSVRFTUFQX1VSTCAgICAgICAgICAgID0KKwogIyBJZiB0aGUgR0VORVJBVEVfUUhQIHRhZyBpcyBzZXQgdG8gWUVTIGFuZCBib3RoIFFIUF9OQU1FU1BBQ0UgYW5kCiAjIFFIUF9WSVJUVUFMX0ZPTERFUiBhcmUgc2V0LCBhbiBhZGRpdGlvbmFsIGluZGV4IGZpbGUgd2lsbCBiZSBnZW5lcmF0ZWQgdGhhdAogIyBjYW4gYmUgdXNlZCBhcyBpbnB1dCBmb3IgUXQncyBxaGVscGdlbmVyYXRvciB0byBnZW5lcmF0ZSBhIFF0IENvbXByZXNzZWQgSGVscApAQCAtMTM2Nyw3ICsxNjUzLDggQEAKIAogIyBUaGUgUUhQX05BTUVTUEFDRSB0YWcgc3BlY2lmaWVzIHRoZSBuYW1lc3BhY2UgdG8gdXNlIHdoZW4gZ2VuZXJhdGluZyBRdCBIZWxwCiAjIFByb2plY3Qgb3V0cHV0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIFF0IEhlbHAgUHJvamVjdCAvIE5hbWVzcGFjZQotIyAoc2VlOiBodHRwOi8vcXQtcHJvamVjdC5vcmcvZG9jL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwjbmFtZXNwYWNlKS4KKyMgKHNlZToKKyMgaHR0cHM6Ly9kb2MucXQuaW8vYXJjaGl2ZXMvcXQtNC44L3F0aGVscHByb2plY3QuaHRtbCNuYW1lc3BhY2UpLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogb3JnLmRveHlnZW4uUHJvamVjdC4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgogCkBAIC0xMzc1LDggKzE2NjIsOCBAQAogCiAjIFRoZSBRSFBfVklSVFVBTF9GT0xERVIgdGFnIHNwZWNpZmllcyB0aGUgbmFtZXNwYWNlIHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgUXQKICMgSGVscCBQcm9qZWN0IG91dHB1dC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcGxlYXNlIHNlZSBRdCBIZWxwIFByb2plY3QgLyBWaXJ0dWFsCi0jIEZvbGRlcnMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI3ZpcnR1YWwtCi0jIGZvbGRlcnMpLgorIyBGb2xkZXJzIChzZWU6CisjIGh0dHBzOi8vZG9jLnF0LmlvL2FyY2hpdmVzL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwjdmlydHVhbC1mb2xkZXJzKS4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IGRvYy4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX1FIUCBpcyBzZXQgdG8gWUVTLgogCkBAIC0xMzg0LDMwICsxNjcxLDMwIEBACiAKICMgSWYgdGhlIFFIUF9DVVNUX0ZJTFRFUl9OQU1FIHRhZyBpcyBzZXQsIGl0IHNwZWNpZmllcyB0aGUgbmFtZSBvZiBhIGN1c3RvbQogIyBmaWx0ZXIgdG8gYWRkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBwbGVhc2Ugc2VlIFF0IEhlbHAgUHJvamVjdCAvIEN1c3RvbQotIyBGaWx0ZXJzIChzZWU6IGh0dHA6Ly9xdC1wcm9qZWN0Lm9yZy9kb2MvcXQtNC44L3F0aGVscHByb2plY3QuaHRtbCNjdXN0b20tCi0jIGZpbHRlcnMpLgorIyBGaWx0ZXJzIChzZWU6CisjIGh0dHBzOi8vZG9jLnF0LmlvL2FyY2hpdmVzL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwjY3VzdG9tLWZpbHRlcnMpLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCiAKIFFIUF9DVVNUX0ZJTFRFUl9OQU1FICAgPQogCiAjIFRoZSBRSFBfQ1VTVF9GSUxURVJfQVRUUlMgdGFnIHNwZWNpZmllcyB0aGUgbGlzdCBvZiB0aGUgYXR0cmlidXRlcyBvZiB0aGUKICMgY3VzdG9tIGZpbHRlciB0byBhZGQuIEZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSBzZWUgUXQgSGVscCBQcm9qZWN0IC8gQ3VzdG9tCi0jIEZpbHRlcnMgKHNlZTogaHR0cDovL3F0LXByb2plY3Qub3JnL2RvYy9xdC00LjgvcXRoZWxwcHJvamVjdC5odG1sI2N1c3RvbS0KLSMgZmlsdGVycykuCisjIEZpbHRlcnMgKHNlZToKKyMgaHR0cHM6Ly9kb2MucXQuaW8vYXJjaGl2ZXMvcXQtNC44L3F0aGVscHByb2plY3QuaHRtbCNjdXN0b20tZmlsdGVycykuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9RSFAgaXMgc2V0IHRvIFlFUy4KIAogUUhQX0NVU1RfRklMVEVSX0FUVFJTICA9CiAKICMgVGhlIFFIUF9TRUNUX0ZJTFRFUl9BVFRSUyB0YWcgc3BlY2lmaWVzIHRoZSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIHRoaXMKICMgcHJvamVjdCdzIGZpbHRlciBzZWN0aW9uIG1hdGNoZXMuIFF0IEhlbHAgUHJvamVjdCAvIEZpbHRlciBBdHRyaWJ1dGVzIChzZWU6Ci0jIGh0dHA6Ly9xdC1wcm9qZWN0Lm9yZy9kb2MvcXQtNC44L3F0aGVscHByb2plY3QuaHRtbCNmaWx0ZXItYXR0cmlidXRlcykuCisjIGh0dHBzOi8vZG9jLnF0LmlvL2FyY2hpdmVzL3F0LTQuOC9xdGhlbHBwcm9qZWN0Lmh0bWwjZmlsdGVyLWF0dHJpYnV0ZXMpLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCiAKIFFIUF9TRUNUX0ZJTFRFUl9BVFRSUyAgPQogCi0jIFRoZSBRSEdfTE9DQVRJT04gdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGxvY2F0aW9uIG9mIFF0J3MKLSMgcWhlbHBnZW5lcmF0b3IuIElmIG5vbi1lbXB0eSBkb3h5Z2VuIHdpbGwgdHJ5IHRvIHJ1biBxaGVscGdlbmVyYXRvciBvbiB0aGUKLSMgZ2VuZXJhdGVkIC5xaHAgZmlsZS4KKyMgVGhlIFFIR19MT0NBVElPTiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gKGFic29sdXRlIHBhdGgKKyMgaW5jbHVkaW5nIGZpbGUgbmFtZSkgb2YgUXQncyBxaGVscGdlbmVyYXRvci4gSWYgbm9uLWVtcHR5IERveHlnZW4gd2lsbCB0cnkgdG8KKyMgcnVuIHFoZWxwZ2VuZXJhdG9yIG9uIHRoZSBnZW5lcmF0ZWQgLnFocCBmaWxlLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUUhQIGlzIHNldCB0byBZRVMuCiAKIFFIR19MT0NBVElPTiAgICAgICAgICAgPQpAQCAtMTQ1MCwxOCArMTczNywzMCBAQAogIyB0byB3b3JrIGEgYnJvd3NlciB0aGF0IHN1cHBvcnRzIEphdmFTY3JpcHQsIERIVE1MLCBDU1MgYW5kIGZyYW1lcyBpcyByZXF1aXJlZAogIyAoaS5lLiBhbnkgbW9kZXJuIGJyb3dzZXIpLiBXaW5kb3dzIHVzZXJzIGFyZSBwcm9iYWJseSBiZXR0ZXIgb2ZmIHVzaW5nIHRoZQogIyBIVE1MIGhlbHAgZmVhdHVyZS4gVmlhIGN1c3RvbSBzdHlsZSBzaGVldHMgKHNlZSBIVE1MX0VYVFJBX1NUWUxFU0hFRVQpIG9uZSBjYW4KLSMgZnVydGhlciBmaW5lLXR1bmUgdGhlIGxvb2sgb2YgdGhlIGluZGV4LiBBcyBhbiBleGFtcGxlLCB0aGUgZGVmYXVsdCBzdHlsZQotIyBzaGVldCBnZW5lcmF0ZWQgYnkgZG94eWdlbiBoYXMgYW4gZXhhbXBsZSB0aGF0IHNob3dzIGhvdyB0byBwdXQgYW4gaW1hZ2UgYXQKLSMgdGhlIHJvb3Qgb2YgdGhlIHRyZWUgaW5zdGVhZCBvZiB0aGUgUFJPSkVDVF9OQU1FLiBTaW5jZSB0aGUgdHJlZSBiYXNpY2FsbHkgaGFzCi0jIHRoZSBzYW1lIGluZm9ybWF0aW9uIGFzIHRoZSB0YWIgaW5kZXgsIHlvdSBjb3VsZCBjb25zaWRlciBzZXR0aW5nCi0jIERJU0FCTEVfSU5ERVggdG8gWUVTIHdoZW4gZW5hYmxpbmcgdGhpcyBvcHRpb24uCisjIGZ1cnRoZXIgZmluZSB0dW5lIHRoZSBsb29rIG9mIHRoZSBpbmRleCAoc2VlICJGaW5lLXR1bmluZyB0aGUgb3V0cHV0IikuIEFzIGFuCisjIGV4YW1wbGUsIHRoZSBkZWZhdWx0IHN0eWxlIHNoZWV0IGdlbmVyYXRlZCBieSBEb3h5Z2VuIGhhcyBhbiBleGFtcGxlIHRoYXQKKyMgc2hvd3MgaG93IHRvIHB1dCBhbiBpbWFnZSBhdCB0aGUgcm9vdCBvZiB0aGUgdHJlZSBpbnN0ZWFkIG9mIHRoZSBQUk9KRUNUX05BTUUuCisjIFNpbmNlIHRoZSB0cmVlIGJhc2ljYWxseSBoYXMgdGhlIHNhbWUgaW5mb3JtYXRpb24gYXMgdGhlIHRhYiBpbmRleCwgeW91IGNvdWxkCisjIGNvbnNpZGVyIHNldHRpbmcgRElTQUJMRV9JTkRFWCB0byBZRVMgd2hlbiBlbmFibGluZyB0aGlzIG9wdGlvbi4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCiBHRU5FUkFURV9UUkVFVklFVyAgICAgID0gWUVTCiAKKyMgV2hlbiBib3RoIEdFTkVSQVRFX1RSRUVWSUVXIGFuZCBESVNBQkxFX0lOREVYIGFyZSBzZXQgdG8gWUVTLCB0aGVuIHRoZQorIyBGVUxMX1NJREVCQVIgb3B0aW9uIGRldGVybWluZXMgaWYgdGhlIHNpZGUgYmFyIGlzIGxpbWl0ZWQgdG8gb25seSB0aGUgdHJlZXZpZXcKKyMgYXJlYSAodmFsdWUgTk8pIG9yIGlmIGl0IHNob3VsZCBleHRlbmQgdG8gdGhlIGZ1bGwgaGVpZ2h0IG9mIHRoZSB3aW5kb3cgKHZhbHVlCisjIFlFUykuIFNldHRpbmcgdGhpcyB0byBZRVMgZ2l2ZXMgYSBsYXlvdXQgc2ltaWxhciB0bworIyBodHRwczovL2RvY3MucmVhZHRoZWRvY3MuaW8gd2l0aCBtb3JlIHJvb20gZm9yIGNvbnRlbnRzLCBidXQgbGVzcyByb29tIGZvciB0aGUKKyMgcHJvamVjdCBsb2dvLCB0aXRsZSwgYW5kIGRlc2NyaXB0aW9uLiBJZiBlaXRoZXIgR0VORVJBVEVfVFJFRVZJRVcgb3IKKyMgRElTQUJMRV9JTkRFWCBpcyBzZXQgdG8gTk8sIHRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KKworRlVMTF9TSURFQkFSICAgICAgICAgICA9IE5PCisKICMgVGhlIEVOVU1fVkFMVUVTX1BFUl9MSU5FIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIG51bWJlciBvZiBlbnVtIHZhbHVlcyB0aGF0Ci0jIGRveHlnZW4gd2lsbCBncm91cCBvbiBvbmUgbGluZSBpbiB0aGUgZ2VuZXJhdGVkIEhUTUwgZG9jdW1lbnRhdGlvbi4KKyMgRG94eWdlbiB3aWxsIGdyb3VwIG9uIG9uZSBsaW5lIGluIHRoZSBnZW5lcmF0ZWQgSFRNTCBkb2N1bWVudGF0aW9uLgogIwogIyBOb3RlIHRoYXQgYSB2YWx1ZSBvZiAwIHdpbGwgY29tcGxldGVseSBzdXBwcmVzcyB0aGUgZW51bSB2YWx1ZXMgZnJvbSBhcHBlYXJpbmcKICMgaW4gdGhlIG92ZXJ2aWV3IHNlY3Rpb24uCkBAIC0xNDcwLDYgKzE3NjksMTIgQEAKIAogRU5VTV9WQUxVRVNfUEVSX0xJTkUgICA9IDQKIAorIyBXaGVuIHRoZSBTSE9XX0VOVU1fVkFMVUVTIHRhZyBpcyBzZXQgZG94eWdlbiB3aWxsIHNob3cgdGhlIHNwZWNpZmllZAorIyBlbnVtZXJhdGlvbiB2YWx1ZXMgYmVzaWRlcyB0aGUgZW51bWVyYXRpb24gbW5lbW9uaWNzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisKK1NIT1dfRU5VTV9WQUxVRVMgICAgICAgPSBOTworCiAjIElmIHRoZSB0cmVldmlldyBpcyBlbmFibGVkIChzZWUgR0VORVJBVEVfVFJFRVZJRVcpIHRoZW4gdGhpcyB0YWcgY2FuIGJlIHVzZWQKICMgdG8gc2V0IHRoZSBpbml0aWFsIHdpZHRoIChpbiBwaXhlbHMpIG9mIHRoZSBmcmFtZSBpbiB3aGljaCB0aGUgdHJlZSBpcyBzaG93bi4KICMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMTUwMCwgZGVmYXVsdCB2YWx1ZTogMjUwLgpAQCAtMTQ3NywzNSArMTc4Miw0OCBAQAogCiBUUkVFVklFV19XSURUSCAgICAgICAgID0gMjUwCiAKLSMgSWYgdGhlIEVYVF9MSU5LU19JTl9XSU5ET1cgb3B0aW9uIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBvcGVuIGxpbmtzIHRvCisjIElmIHRoZSBFWFRfTElOS1NfSU5fV0lORE9XIG9wdGlvbiBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgb3BlbiBsaW5rcyB0bwogIyBleHRlcm5hbCBzeW1ib2xzIGltcG9ydGVkIHZpYSB0YWcgZmlsZXMgaW4gYSBzZXBhcmF0ZSB3aW5kb3cuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0hUTUwgaXMgc2V0IHRvIFlFUy4KIAogRVhUX0xJTktTX0lOX1dJTkRPVyAgICA9IE5PCiAKKyMgSWYgdGhlIE9CRlVTQ0FURV9FTUFJTFMgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBvYmZ1c2NhdGUgZW1haWwKKyMgYWRkcmVzc2VzLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgorCitPQkZVU0NBVEVfRU1BSUxTICAgICAgID0gWUVTCisKKyMgSWYgdGhlIEhUTUxfRk9STVVMQV9GT1JNQVQgb3B0aW9uIGlzIHNldCB0byBzdmcsIERveHlnZW4gd2lsbCB1c2UgdGhlIHBkZjJzdmcKKyMgdG9vbCAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXdiYXJ0b24vcGRmMnN2Zykgb3IgaW5rc2NhcGUgKHNlZQorIyBodHRwczovL2lua3NjYXBlLm9yZykgdG8gZ2VuZXJhdGUgZm9ybXVsYXMgYXMgU1ZHIGltYWdlcyBpbnN0ZWFkIG9mIFBOR3MgZm9yCisjIHRoZSBIVE1MIG91dHB1dC4gVGhlc2UgaW1hZ2VzIHdpbGwgZ2VuZXJhbGx5IGxvb2sgbmljZXIgYXQgc2NhbGVkIHJlc29sdXRpb25zLgorIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBwbmcgKHRoZSBkZWZhdWx0KSBhbmQgc3ZnIChsb29rcyBuaWNlciBidXQgcmVxdWlyZXMgdGhlCisjIHBkZjJzdmcgb3IgaW5rc2NhcGUgdG9vbCkuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBwbmcuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisKK0hUTUxfRk9STVVMQV9GT1JNQVQgICAgPSBwbmcKKwogIyBVc2UgdGhpcyB0YWcgdG8gY2hhbmdlIHRoZSBmb250IHNpemUgb2YgTGFUZVggZm9ybXVsYXMgaW5jbHVkZWQgYXMgaW1hZ2VzIGluCiAjIHRoZSBIVE1MIGRvY3VtZW50YXRpb24uIFdoZW4geW91IGNoYW5nZSB0aGUgZm9udCBzaXplIGFmdGVyIGEgc3VjY2Vzc2Z1bAotIyBkb3h5Z2VuIHJ1biB5b3UgbmVlZCB0byBtYW51YWxseSByZW1vdmUgYW55IGZvcm1fKi5wbmcgaW1hZ2VzIGZyb20gdGhlIEhUTUwKKyMgRG94eWdlbiBydW4geW91IG5lZWQgdG8gbWFudWFsbHkgcmVtb3ZlIGFueSBmb3JtXyoucG5nIGltYWdlcyBmcm9tIHRoZSBIVE1MCiAjIG91dHB1dCBkaXJlY3RvcnkgdG8gZm9yY2UgdGhlbSB0byBiZSByZWdlbmVyYXRlZC4KICMgTWluaW11bSB2YWx1ZTogOCwgbWF4aW11bSB2YWx1ZTogNTAsIGRlZmF1bHQgdmFsdWU6IDEwLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfSFRNTCBpcyBzZXQgdG8gWUVTLgogCiBGT1JNVUxBX0ZPTlRTSVpFICAgICAgID0gMTAKIAotIyBVc2UgdGhlIEZPUk1VTEFfVFJBTlBBUkVOVCB0YWcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBpbWFnZXMKLSMgZ2VuZXJhdGVkIGZvciBmb3JtdWxhcyBhcmUgdHJhbnNwYXJlbnQgUE5Hcy4gVHJhbnNwYXJlbnQgUE5HcyBhcmUgbm90Ci0jIHN1cHBvcnRlZCBwcm9wZXJseSBmb3IgSUUgNi4wLCBidXQgYXJlIHN1cHBvcnRlZCBvbiBhbGwgbW9kZXJuIGJyb3dzZXJzLgotIwotIyBOb3RlIHRoYXQgd2hlbiBjaGFuZ2luZyB0aGlzIG9wdGlvbiB5b3UgbmVlZCB0byBkZWxldGUgYW55IGZvcm1fKi5wbmcgZmlsZXMgaW4KLSMgdGhlIEhUTUwgb3V0cHV0IGRpcmVjdG9yeSBiZWZvcmUgdGhlIGNoYW5nZXMgaGF2ZSBlZmZlY3QuCi0jIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCi0jIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9IVE1MIGlzIHNldCB0byBZRVMuCisjIFRoZSBGT1JNVUxBX01BQ1JPRklMRSBjYW4gY29udGFpbiBMYVRlWCBcbmV3Y29tbWFuZCBhbmQgXHJlbmV3Y29tbWFuZCBjb21tYW5kcworIyB0byBjcmVhdGUgbmV3IExhVGVYIGNvbW1hbmRzIHRvIGJlIHVzZWQgaW4gZm9ybXVsYXMgYXMgYnVpbGRpbmcgYmxvY2tzLiBTZWUKKyMgdGhlIHNlY3Rpb24gIkluY2x1ZGluZyBmb3JtdWxhcyIgZm9yIGRldGFpbHMuCiAKLUZPUk1VTEFfVFJBTlNQQVJFTlQgICAgPSBZRVMKK0ZPUk1VTEFfTUFDUk9GSUxFICAgICAgPQogCiAjIEVuYWJsZSB0aGUgVVNFX01BVEhKQVggb3B0aW9uIHRvIHJlbmRlciBMYVRlWCBmb3JtdWxhcyB1c2luZyBNYXRoSmF4IChzZWUKLSMgaHR0cDovL3d3dy5tYXRoamF4Lm9yZykgd2hpY2ggdXNlcyBjbGllbnQgc2lkZSBKYXZhc2NyaXB0IGZvciB0aGUgcmVuZGVyaW5nCisjIGh0dHBzOi8vd3d3Lm1hdGhqYXgub3JnKSB3aGljaCB1c2VzIGNsaWVudCBzaWRlIEphdmFTY3JpcHQgZm9yIHRoZSByZW5kZXJpbmcKICMgaW5zdGVhZCBvZiB1c2luZyBwcmUtcmVuZGVyZWQgYml0bWFwcy4gVXNlIHRoaXMgaWYgeW91IGRvIG5vdCBoYXZlIExhVGVYCiAjIGluc3RhbGxlZCBvciBpZiB5b3Ugd2FudCB0byBmb3JtdWxhcyBsb29rIHByZXR0aWVyIGluIHRoZSBIVE1MIG91dHB1dC4gV2hlbgogIyBlbmFibGVkIHlvdSBtYXkgYWxzbyBuZWVkIHRvIGluc3RhbGwgTWF0aEpheCBzZXBhcmF0ZWx5IGFuZCBjb25maWd1cmUgdGhlIHBhdGgKQEAgLTE1MTUsMTEgKzE4MzMsMjkgQEAKIAogVVNFX01BVEhKQVggICAgICAgICAgICA9IE5PCiAKKyMgV2l0aCBNQVRISkFYX1ZFUlNJT04gaXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSB0aGUgTWF0aEpheCB2ZXJzaW9uIHRvIGJlIHVzZWQuCisjIE5vdGUgdGhhdCB0aGUgZGlmZmVyZW50IHZlcnNpb25zIG9mIE1hdGhKYXggaGF2ZSBkaWZmZXJlbnQgcmVxdWlyZW1lbnRzIHdpdGgKKyMgcmVnYXJkcyB0byB0aGUgZGlmZmVyZW50IHNldHRpbmdzLCBzbyBpdCBpcyBwb3NzaWJsZSB0aGF0IGFsc28gb3RoZXIgTWF0aEpheAorIyBzZXR0aW5ncyBoYXZlIHRvIGJlIGNoYW5nZWQgd2hlbiBzd2l0Y2hpbmcgYmV0d2VlbiB0aGUgZGlmZmVyZW50IE1hdGhKYXgKKyMgdmVyc2lvbnMuCisjIFBvc3NpYmxlIHZhbHVlcyBhcmU6IE1hdGhKYXhfMiBhbmQgTWF0aEpheF8zLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTWF0aEpheF8yLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KKworTUFUSEpBWF9WRVJTSU9OICAgICAgICA9IE1hdGhKYXhfMgorCiAjIFdoZW4gTWF0aEpheCBpcyBlbmFibGVkIHlvdSBjYW4gc2V0IHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQgdG8gYmUgdXNlZCBmb3IKLSMgdGhlIE1hdGhKYXggb3V0cHV0LiBTZWUgdGhlIE1hdGhKYXggc2l0ZSAoc2VlOgotIyBodHRwOi8vZG9jcy5tYXRoamF4Lm9yZy9lbi9sYXRlc3Qvb3V0cHV0Lmh0bWwpIGZvciBtb3JlIGRldGFpbHMuCisjIHRoZSBNYXRoSmF4IG91dHB1dC4gRm9yIG1vcmUgZGV0YWlscyBhYm91dCB0aGUgb3V0cHV0IGZvcm1hdCBzZWUgTWF0aEpheAorIyB2ZXJzaW9uIDIgKHNlZToKKyMgaHR0cDovL2RvY3MubWF0aGpheC5vcmcvZW4vdjIuNy1sYXRlc3Qvb3V0cHV0Lmh0bWwpIGFuZCBNYXRoSmF4IHZlcnNpb24gMworIyAoc2VlOgorIyBodHRwOi8vZG9jcy5tYXRoamF4Lm9yZy9lbi9sYXRlc3Qvd2ViL2NvbXBvbmVudHMvb3V0cHV0Lmh0bWwpLgogIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBIVE1MLUNTUyAod2hpY2ggaXMgc2xvd2VyLCBidXQgaGFzIHRoZSBiZXN0Ci0jIGNvbXBhdGliaWxpdHkpLCBOYXRpdmVNTUwgKGkuZS4gTWF0aE1MKSBhbmQgU1ZHLgorIyBjb21wYXRpYmlsaXR5LiBUaGlzIGlzIHRoZSBuYW1lIGZvciBNYXRoamF4IHZlcnNpb24gMiwgZm9yIE1hdGhKYXggdmVyc2lvbiAzCisjIHRoaXMgd2lsbCBiZSB0cmFuc2xhdGVkIGludG8gY2h0bWwpLCBOYXRpdmVNTUwgKGkuZS4gTWF0aE1MLiBPbmx5IHN1cHBvcnRlZAorIyBmb3IgTWF0aEpheCAyLiBGb3IgTWF0aEpheCB2ZXJzaW9uIDMgY2h0bWwgd2lsbCBiZSB1c2VkIGluc3RlYWQuKSwgY2h0bWwgKFRoaXMKKyMgaXMgdGhlIG5hbWUgZm9yIE1hdGhqYXggdmVyc2lvbiAzLCBmb3IgTWF0aEpheCB2ZXJzaW9uIDIgdGhpcyB3aWxsIGJlCisjIHRyYW5zbGF0ZWQgaW50byBIVE1MLUNTUykgYW5kIFNWRy4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IEhUTUwtQ1NTLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KIApAQCAtMTUzMiwzMyArMTg2OCw0MCBAQAogIyBNQVRISkFYX1JFTFBBVEggc2hvdWxkIGJlIC4uL21hdGhqYXguIFRoZSBkZWZhdWx0IHZhbHVlIHBvaW50cyB0byB0aGUgTWF0aEpheAogIyBDb250ZW50IERlbGl2ZXJ5IE5ldHdvcmsgc28geW91IGNhbiBxdWlja2x5IHNlZSB0aGUgcmVzdWx0IHdpdGhvdXQgaW5zdGFsbGluZwogIyBNYXRoSmF4LiBIb3dldmVyLCBpdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0byBpbnN0YWxsIGEgbG9jYWwgY29weSBvZgotIyBNYXRoSmF4IGZyb20gaHR0cDovL3d3dy5tYXRoamF4Lm9yZyBiZWZvcmUgZGVwbG95bWVudC4KLSMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IGh0dHA6Ly9jZG4ubWF0aGpheC5vcmcvbWF0aGpheC9sYXRlc3QuCisjIE1hdGhKYXggZnJvbSBodHRwczovL3d3dy5tYXRoamF4Lm9yZyBiZWZvcmUgZGVwbG95bWVudC4gVGhlIGRlZmF1bHQgdmFsdWUgaXM6CisjIC0gaW4gY2FzZSBvZiBNYXRoSmF4IHZlcnNpb24gMjogaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tYXRoamF4QDIKKyMgLSBpbiBjYXNlIG9mIE1hdGhKYXggdmVyc2lvbiAzOiBodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL21hdGhqYXhAMwogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KIAogTUFUSEpBWF9SRUxQQVRIICAgICAgICA9IGh0dHA6Ly9jZG4ubWF0aGpheC5vcmcvbWF0aGpheC9sYXRlc3QKIAogIyBUaGUgTUFUSEpBWF9FWFRFTlNJT05TIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIE1hdGhKYXgKICMgZXh0ZW5zaW9uIG5hbWVzIHRoYXQgc2hvdWxkIGJlIGVuYWJsZWQgZHVyaW5nIE1hdGhKYXggcmVuZGVyaW5nLiBGb3IgZXhhbXBsZQorIyBmb3IgTWF0aEpheCB2ZXJzaW9uIDIgKHNlZQorIyBodHRwczovL2RvY3MubWF0aGpheC5vcmcvZW4vdjIuNy1sYXRlc3QvdGV4Lmh0bWwjdGV4LWFuZC1sYXRleC1leHRlbnNpb25zKToKICMgTUFUSEpBWF9FWFRFTlNJT05TID0gVGVYL0FNU21hdGggVGVYL0FNU3N5bWJvbHMKKyMgRm9yIGV4YW1wbGUgZm9yIE1hdGhKYXggdmVyc2lvbiAzIChzZWUKKyMgaHR0cDovL2RvY3MubWF0aGpheC5vcmcvZW4vbGF0ZXN0L2lucHV0L3RleC9leHRlbnNpb25zL2luZGV4Lmh0bWwpOgorIyBNQVRISkFYX0VYVEVOU0lPTlMgPSBhbXMKICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFVTRV9NQVRISkFYIGlzIHNldCB0byBZRVMuCiAKIE1BVEhKQVhfRVhURU5TSU9OUyAgICAgPQogCi0jIFRoZSBNQVRISkFYX0NPREVGSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgZmlsZSB3aXRoIGphdmFzY3JpcHQgcGllY2VzCisjIFRoZSBNQVRISkFYX0NPREVGSUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGEgZmlsZSB3aXRoIEphdmFTY3JpcHQgcGllY2VzCiAjIG9mIGNvZGUgdGhhdCB3aWxsIGJlIHVzZWQgb24gc3RhcnR1cCBvZiB0aGUgTWF0aEpheCBjb2RlLiBTZWUgdGhlIE1hdGhKYXggc2l0ZQotIyAoc2VlOiBodHRwOi8vZG9jcy5tYXRoamF4Lm9yZy9lbi9sYXRlc3Qvb3V0cHV0Lmh0bWwpIGZvciBtb3JlIGRldGFpbHMuIEZvciBhbgorIyAoc2VlOgorIyBodHRwOi8vZG9jcy5tYXRoamF4Lm9yZy9lbi92Mi43LWxhdGVzdC9vdXRwdXQuaHRtbCkgZm9yIG1vcmUgZGV0YWlscy4gRm9yIGFuCiAjIGV4YW1wbGUgc2VlIHRoZSBkb2N1bWVudGF0aW9uLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVVNFX01BVEhKQVggaXMgc2V0IHRvIFlFUy4KIAogTUFUSEpBWF9DT0RFRklMRSAgICAgICA9CiAKLSMgV2hlbiB0aGUgU0VBUkNIRU5HSU5FIHRhZyBpcyBlbmFibGVkIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIHNlYXJjaCBib3ggZm9yCi0jIHRoZSBIVE1MIG91dHB1dC4gVGhlIHVuZGVybHlpbmcgc2VhcmNoIGVuZ2luZSB1c2VzIGphdmFzY3JpcHQgYW5kIERIVE1MIGFuZAorIyBXaGVuIHRoZSBTRUFSQ0hFTkdJTkUgdGFnIGlzIGVuYWJsZWQgRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgc2VhcmNoIGJveCBmb3IKKyMgdGhlIEhUTUwgb3V0cHV0LiBUaGUgdW5kZXJseWluZyBzZWFyY2ggZW5naW5lIHVzZXMgSmF2YVNjcmlwdCBhbmQgREhUTUwgYW5kCiAjIHNob3VsZCB3b3JrIG9uIGFueSBtb2Rlcm4gYnJvd3Nlci4gTm90ZSB0aGF0IHdoZW4gdXNpbmcgSFRNTCBoZWxwCiAjIChHRU5FUkFURV9IVE1MSEVMUCksIFF0IGhlbHAgKEdFTkVSQVRFX1FIUCksIG9yIGRvY3NldHMgKEdFTkVSQVRFX0RPQ1NFVCkKICMgdGhlcmUgaXMgYWxyZWFkeSBhIHNlYXJjaCBmdW5jdGlvbiBzbyB0aGlzIG9uZSBzaG91bGQgdHlwaWNhbGx5IGJlIGRpc2FibGVkLgotIyBGb3IgbGFyZ2UgcHJvamVjdHMgdGhlIGphdmFzY3JpcHQgYmFzZWQgc2VhcmNoIGVuZ2luZSBjYW4gYmUgc2xvdywgdGhlbgorIyBGb3IgbGFyZ2UgcHJvamVjdHMgdGhlIEphdmFTY3JpcHQgYmFzZWQgc2VhcmNoIGVuZ2luZSBjYW4gYmUgc2xvdywgdGhlbgogIyBlbmFibGluZyBTRVJWRVJfQkFTRURfU0VBUkNIIG1heSBwcm92aWRlIGEgYmV0dGVyIHNvbHV0aW9uLiBJdCBpcyBwb3NzaWJsZSB0bwogIyBzZWFyY2ggdXNpbmcgdGhlIGtleWJvYXJkOyB0byBqdW1wIHRvIHRoZSBzZWFyY2ggYm94IHVzZSA8YWNjZXNzIGtleT4gKyBTCiAjICh3aGF0IHRoZSA8YWNjZXNzIGtleT4gaXMgZGVwZW5kcyBvbiB0aGUgT1MgYW5kIGJyb3dzZXIsIGJ1dCBpdCBpcyB0eXBpY2FsbHkKQEAgLTE1NzUsOSArMTkxOCw5IEBACiBTRUFSQ0hFTkdJTkUgICAgICAgICAgID0gWUVTCiAKICMgV2hlbiB0aGUgU0VSVkVSX0JBU0VEX1NFQVJDSCB0YWcgaXMgZW5hYmxlZCB0aGUgc2VhcmNoIGVuZ2luZSB3aWxsIGJlCi0jIGltcGxlbWVudGVkIHVzaW5nIGEgd2ViIHNlcnZlciBpbnN0ZWFkIG9mIGEgd2ViIGNsaWVudCB1c2luZyBKYXZhc2NyaXB0LiBUaGVyZQorIyBpbXBsZW1lbnRlZCB1c2luZyBhIHdlYiBzZXJ2ZXIgaW5zdGVhZCBvZiBhIHdlYiBjbGllbnQgdXNpbmcgSmF2YVNjcmlwdC4gVGhlcmUKICMgYXJlIHR3byBmbGF2b3JzIG9mIHdlYiBzZXJ2ZXIgYmFzZWQgc2VhcmNoaW5nIGRlcGVuZGluZyBvbiB0aGUgRVhURVJOQUxfU0VBUkNICi0jIHNldHRpbmcuIFdoZW4gZGlzYWJsZWQsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIFBIUCBzY3JpcHQgZm9yIHNlYXJjaGluZyBhbmQKKyMgc2V0dGluZy4gV2hlbiBkaXNhYmxlZCwgRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgUEhQIHNjcmlwdCBmb3Igc2VhcmNoaW5nIGFuZAogIyBhbiBpbmRleCBmaWxlIHVzZWQgYnkgdGhlIHNjcmlwdC4gV2hlbiBFWFRFUk5BTF9TRUFSQ0ggaXMgZW5hYmxlZCB0aGUgaW5kZXhpbmcKICMgYW5kIHNlYXJjaGluZyBuZWVkcyB0byBiZSBwcm92aWRlZCBieSBleHRlcm5hbCB0b29scy4gU2VlIHRoZSBzZWN0aW9uCiAjICJFeHRlcm5hbCBJbmRleGluZyBhbmQgU2VhcmNoaW5nIiBmb3IgZGV0YWlscy4KQEAgLTE1ODYsNyArMTkyOSw3IEBACiAKIFNFUlZFUl9CQVNFRF9TRUFSQ0ggICAgPSBOTwogCi0jIFdoZW4gRVhURVJOQUxfU0VBUkNIIHRhZyBpcyBlbmFibGVkIGRveHlnZW4gd2lsbCBubyBsb25nZXIgZ2VuZXJhdGUgdGhlIFBIUAorIyBXaGVuIEVYVEVSTkFMX1NFQVJDSCB0YWcgaXMgZW5hYmxlZCBEb3h5Z2VuIHdpbGwgbm8gbG9uZ2VyIGdlbmVyYXRlIHRoZSBQSFAKICMgc2NyaXB0IGZvciBzZWFyY2hpbmcuIEluc3RlYWQgdGhlIHNlYXJjaCByZXN1bHRzIGFyZSB3cml0dGVuIHRvIGFuIFhNTCBmaWxlCiAjIHdoaWNoIG5lZWRzIHRvIGJlIHByb2Nlc3NlZCBieSBhbiBleHRlcm5hbCBpbmRleGVyLiBEb3h5Z2VuIHdpbGwgaW52b2tlIGFuCiAjIGV4dGVybmFsIHNlYXJjaCBlbmdpbmUgcG9pbnRlZCB0byBieSB0aGUgU0VBUkNIRU5HSU5FX1VSTCBvcHRpb24gdG8gb2J0YWluIHRoZQpAQCAtMTU5NCw3ICsxOTM3LDggQEAKICMKICMgRG94eWdlbiBzaGlwcyB3aXRoIGFuIGV4YW1wbGUgaW5kZXhlciAoZG94eWluZGV4ZXIpIGFuZCBzZWFyY2ggZW5naW5lCiAjIChkb3h5c2VhcmNoLmNnaSkgd2hpY2ggYXJlIGJhc2VkIG9uIHRoZSBvcGVuIHNvdXJjZSBzZWFyY2ggZW5naW5lIGxpYnJhcnkKLSMgWGFwaWFuIChzZWU6IGh0dHA6Ly94YXBpYW4ub3JnLykuCisjIFhhcGlhbiAoc2VlOgorIyBodHRwczovL3hhcGlhbi5vcmcvKS4KICMKICMgU2VlIHRoZSBzZWN0aW9uICJFeHRlcm5hbCBJbmRleGluZyBhbmQgU2VhcmNoaW5nIiBmb3IgZGV0YWlscy4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgpAQCAtMTYwNyw4ICsxOTUxLDkgQEAKICMKICMgRG94eWdlbiBzaGlwcyB3aXRoIGFuIGV4YW1wbGUgaW5kZXhlciAoZG94eWluZGV4ZXIpIGFuZCBzZWFyY2ggZW5naW5lCiAjIChkb3h5c2VhcmNoLmNnaSkgd2hpY2ggYXJlIGJhc2VkIG9uIHRoZSBvcGVuIHNvdXJjZSBzZWFyY2ggZW5naW5lIGxpYnJhcnkKLSMgWGFwaWFuIChzZWU6IGh0dHA6Ly94YXBpYW4ub3JnLykuIFNlZSB0aGUgc2VjdGlvbiAiRXh0ZXJuYWwgSW5kZXhpbmcgYW5kCi0jIFNlYXJjaGluZyIgZm9yIGRldGFpbHMuCisjIFhhcGlhbiAoc2VlOgorIyBodHRwczovL3hhcGlhbi5vcmcvKS4gU2VlIHRoZSBzZWN0aW9uICJFeHRlcm5hbCBJbmRleGluZyBhbmQgU2VhcmNoaW5nIiBmb3IKKyMgZGV0YWlscy4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIFNFQVJDSEVOR0lORSBpcyBzZXQgdG8gWUVTLgogCiBTRUFSQ0hFTkdJTkVfVVJMICAgICAgID0KQEAgLTE2MjksNyArMTk3NCw3IEBACiAKIEVYVEVSTkFMX1NFQVJDSF9JRCAgICAgPQogCi0jIFRoZSBFWFRSQV9TRUFSQ0hfTUFQUElOR1MgdGFnIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSBzZWFyY2hpbmcgdGhyb3VnaCBkb3h5Z2VuCisjIFRoZSBFWFRSQV9TRUFSQ0hfTUFQUElOR1MgdGFnIGNhbiBiZSB1c2VkIHRvIGVuYWJsZSBzZWFyY2hpbmcgdGhyb3VnaCBEb3h5Z2VuCiAjIHByb2plY3RzIG90aGVyIHRoYW4gdGhlIG9uZSBkZWZpbmVkIGJ5IHRoaXMgY29uZmlndXJhdGlvbiBmaWxlLCBidXQgdGhhdCBhcmUKICMgYWxsIGFkZGVkIHRvIHRoZSBzYW1lIGV4dGVybmFsIHNlYXJjaCBpbmRleC4gRWFjaCBwcm9qZWN0IG5lZWRzIHRvIGhhdmUgYQogIyB1bmlxdWUgaWQgc2V0IHZpYSBFWFRFUk5BTF9TRUFSQ0hfSUQuIFRoZSBzZWFyY2ggbWFwcGluZyB0aGVuIG1hcHMgdGhlIGlkIG9mCkBAIC0xNjQzLDcgKzE5ODgsNyBAQAogIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgTGFUZVggb3V0cHV0CiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIEdFTkVSQVRFX0xBVEVYIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgTGFUZVggb3V0cHV0LgorIyBJZiB0aGUgR0VORVJBVEVfTEFURVggdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBMYVRlWCBvdXRwdXQuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEdFTkVSQVRFX0xBVEVYICAgICAgICAgPSBOTwpAQCAtMTY1OSwyMiArMjAwNCwzNiBAQAogIyBUaGUgTEFURVhfQ01EX05BTUUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIExhVGVYIGNvbW1hbmQgbmFtZSB0byBiZQogIyBpbnZva2VkLgogIwotIyBOb3RlIHRoYXQgd2hlbiBlbmFibGluZyBVU0VfUERGTEFURVggdGhpcyBvcHRpb24gaXMgb25seSB1c2VkIGZvciBnZW5lcmF0aW5nCi0jIGJpdG1hcHMgZm9yIGZvcm11bGFzIGluIHRoZSBIVE1MIG91dHB1dCwgYnV0IG5vdCBpbiB0aGUgTWFrZWZpbGUgdGhhdCBpcwotIyB3cml0dGVuIHRvIHRoZSBvdXRwdXQgZGlyZWN0b3J5LgotIyBUaGUgZGVmYXVsdCBmaWxlIGlzOiBsYXRleC4KKyMgTm90ZSB0aGF0IHdoZW4gbm90IGVuYWJsaW5nIFVTRV9QREZMQVRFWCB0aGUgZGVmYXVsdCBpcyBsYXRleCB3aGVuIGVuYWJsaW5nCisjIFVTRV9QREZMQVRFWCB0aGUgZGVmYXVsdCBpcyBwZGZsYXRleCBhbmQgd2hlbiBpbiB0aGUgbGF0ZXIgY2FzZSBsYXRleCBpcworIyBjaG9zZW4gdGhpcyBpcyBvdmVyd3JpdHRlbiBieSBwZGZsYXRleC4gRm9yIHNwZWNpZmljIG91dHB1dCBsYW5ndWFnZXMgdGhlCisjIGRlZmF1bHQgY2FuIGhhdmUgYmVlbiBzZXQgZGlmZmVyZW50bHksIHRoaXMgZGVwZW5kcyBvbiB0aGUgaW1wbGVtZW50YXRpb24gb2YKKyMgdGhlIG91dHB1dCBsYW5ndWFnZS4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAKIExBVEVYX0NNRF9OQU1FICAgICAgICAgPSBsYXRleAogCiAjIFRoZSBNQUtFSU5ERVhfQ01EX05BTUUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGNvbW1hbmQgbmFtZSB0byBnZW5lcmF0ZQogIyBpbmRleCBmb3IgTGFUZVguCisjIE5vdGU6IFRoaXMgdGFnIGlzIHVzZWQgaW4gdGhlIE1ha2VmaWxlIC8gbWFrZS5iYXQuCisjIFNlZSBhbHNvOiBMQVRFWF9NQUtFSU5ERVhfQ01EIGZvciB0aGUgcGFydCBpbiB0aGUgZ2VuZXJhdGVkIG91dHB1dCBmaWxlCisjICgudGV4KS4KICMgVGhlIGRlZmF1bHQgZmlsZSBpczogbWFrZWluZGV4LgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAogTUFLRUlOREVYX0NNRF9OQU1FICAgICA9IG1ha2VpbmRleAogCi0jIElmIHRoZSBDT01QQUNUX0xBVEVYIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIGdlbmVyYXRlcyBtb3JlIGNvbXBhY3QgTGFUZVgKKyMgVGhlIExBVEVYX01BS0VJTkRFWF9DTUQgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGNvbW1hbmQgbmFtZSB0bworIyBnZW5lcmF0ZSBpbmRleCBmb3IgTGFUZVguIEluIGNhc2UgdGhlcmUgaXMgbm8gYmFja3NsYXNoIChcKSBhcyBmaXJzdCBjaGFyYWN0ZXIKKyMgaXQgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFkZGVkIGluIHRoZSBMYVRlWCBjb2RlLgorIyBOb3RlOiBUaGlzIHRhZyBpcyB1c2VkIGluIHRoZSBnZW5lcmF0ZWQgb3V0cHV0IGZpbGUgKC50ZXgpLgorIyBTZWUgYWxzbzogTUFLRUlOREVYX0NNRF9OQU1FIGZvciB0aGUgcGFydCBpbiB0aGUgTWFrZWZpbGUgLyBtYWtlLmJhdC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IG1ha2VpbmRleC4KKyMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCisKK0xBVEVYX01BS0VJTkRFWF9DTUQgICAgPSBtYWtlaW5kZXgKKworIyBJZiB0aGUgQ09NUEFDVF9MQVRFWCB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiBnZW5lcmF0ZXMgbW9yZSBjb21wYWN0IExhVGVYCiAjIGRvY3VtZW50cy4gVGhpcyBtYXkgYmUgdXNlZnVsIGZvciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8gc2F2ZSBzb21lCiAjIHRyZWVzIGluIGdlbmVyYWwuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KQEAgLTE3MDMsMzYgKzIwNjIsMzggQEAKIAogRVhUUkFfUEFDS0FHRVMgICAgICAgICA9CiAKLSMgVGhlIExBVEVYX0hFQURFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHBlcnNvbmFsIExhVGVYIGhlYWRlciBmb3IgdGhlCi0jIGdlbmVyYXRlZCBMYVRlWCBkb2N1bWVudC4gVGhlIGhlYWRlciBzaG91bGQgY29udGFpbiBldmVyeXRoaW5nIHVudGlsIHRoZSBmaXJzdAotIyBjaGFwdGVyLiBJZiBpdCBpcyBsZWZ0IGJsYW5rIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIHN0YW5kYXJkIGhlYWRlci4gU2VlCi0jIHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gbGV0IGRveHlnZW4gd3JpdGUgdGhlCi0jIGRlZmF1bHQgaGVhZGVyIHRvIGEgc2VwYXJhdGUgZmlsZS4KKyMgVGhlIExBVEVYX0hFQURFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHVzZXItZGVmaW5lZCBMYVRlWCBoZWFkZXIgZm9yCisjIHRoZSBnZW5lcmF0ZWQgTGFUZVggZG9jdW1lbnQuIFRoZSBoZWFkZXIgc2hvdWxkIGNvbnRhaW4gZXZlcnl0aGluZyB1bnRpbCB0aGUKKyMgZmlyc3QgY2hhcHRlci4gSWYgaXQgaXMgbGVmdCBibGFuayBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBzdGFuZGFyZCBoZWFkZXIuIEl0CisjIGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0byBzdGFydCB3aXRoIGEgZGVmYXVsdCBoZWFkZXIgdXNpbmcKKyMgZG94eWdlbiAtdyBsYXRleCBuZXdfaGVhZGVyLnRleCBuZXdfZm9vdGVyLnRleCBuZXdfc3R5bGVzaGVldC5zdHkKKyMgYW5kIHRoZW4gbW9kaWZ5IHRoZSBmaWxlIG5ld19oZWFkZXIudGV4LiBTZWUgYWxzbyBzZWN0aW9uICJEb3h5Z2VuIHVzYWdlIiBmb3IKKyMgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZSBkZWZhdWx0IGhlYWRlciB0aGF0IERveHlnZW4gbm9ybWFsbHkgdXNlcy4KICMKLSMgTm90ZTogT25seSB1c2UgYSB1c2VyLWRlZmluZWQgaGVhZGVyIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZyEgVGhlCi0jIGZvbGxvd2luZyBjb21tYW5kcyBoYXZlIGEgc3BlY2lhbCBtZWFuaW5nIGluc2lkZSB0aGUgaGVhZGVyOiAkdGl0bGUsCi0jICRkYXRldGltZSwgJGRhdGUsICRkb3h5Z2VudmVyc2lvbiwgJHByb2plY3RuYW1lLCAkcHJvamVjdG51bWJlciwKLSMgJHByb2plY3RicmllZiwgJHByb2plY3Rsb2dvLiBEb3h5Z2VuIHdpbGwgcmVwbGFjZSAkdGl0bGUgd2l0aCB0aGUgZW1wdHkKLSMgc3RyaW5nLCBmb3IgdGhlIHJlcGxhY2VtZW50IHZhbHVlcyBvZiB0aGUgb3RoZXIgY29tbWFuZHMgdGhlIHVzZXIgaXMgcmVmZXJyZWQKLSMgdG8gSFRNTF9IRUFERVIuCisjIE5vdGU6IE9ubHkgdXNlIGEgdXNlci1kZWZpbmVkIGhlYWRlciBpZiB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmchCisjIE5vdGU6IFRoZSBoZWFkZXIgaXMgc3ViamVjdCB0byBjaGFuZ2Ugc28geW91IHR5cGljYWxseSBoYXZlIHRvIHJlZ2VuZXJhdGUgdGhlCisjIGRlZmF1bHQgaGVhZGVyIHdoZW4gdXBncmFkaW5nIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBEb3h5Z2VuLiBUaGUgZm9sbG93aW5nCisjIGNvbW1hbmRzIGhhdmUgYSBzcGVjaWFsIG1lYW5pbmcgaW5zaWRlIHRoZSBoZWFkZXIgKGFuZCBmb290ZXIpOiBGb3IgYQorIyBkZXNjcmlwdGlvbiBvZiB0aGUgcG9zc2libGUgbWFya2VycyBhbmQgYmxvY2sgbmFtZXMgc2VlIHRoZSBkb2N1bWVudGF0aW9uLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfTEFURVggaXMgc2V0IHRvIFlFUy4KIAogTEFURVhfSEVBREVSICAgICAgICAgICA9CiAKLSMgVGhlIExBVEVYX0ZPT1RFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHBlcnNvbmFsIExhVGVYIGZvb3RlciBmb3IgdGhlCi0jIGdlbmVyYXRlZCBMYVRlWCBkb2N1bWVudC4gVGhlIGZvb3RlciBzaG91bGQgY29udGFpbiBldmVyeXRoaW5nIGFmdGVyIHRoZSBsYXN0Ci0jIGNoYXB0ZXIuIElmIGl0IGlzIGxlZnQgYmxhbmsgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgc3RhbmRhcmQgZm9vdGVyLiBTZWUKKyMgVGhlIExBVEVYX0ZPT1RFUiB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBhIHVzZXItZGVmaW5lZCBMYVRlWCBmb290ZXIgZm9yCisjIHRoZSBnZW5lcmF0ZWQgTGFUZVggZG9jdW1lbnQuIFRoZSBmb290ZXIgc2hvdWxkIGNvbnRhaW4gZXZlcnl0aGluZyBhZnRlciB0aGUKKyMgbGFzdCBjaGFwdGVyLiBJZiBpdCBpcyBsZWZ0IGJsYW5rIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIHN0YW5kYXJkIGZvb3Rlci4gU2VlCiAjIExBVEVYX0hFQURFUiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgYSBkZWZhdWx0IGZvb3RlciBhbmQgd2hhdAotIyBzcGVjaWFsIGNvbW1hbmRzIGNhbiBiZSB1c2VkIGluc2lkZSB0aGUgZm9vdGVyLgotIwotIyBOb3RlOiBPbmx5IHVzZSBhIHVzZXItZGVmaW5lZCBmb290ZXIgaWYgeW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nIQorIyBzcGVjaWFsIGNvbW1hbmRzIGNhbiBiZSB1c2VkIGluc2lkZSB0aGUgZm9vdGVyLiBTZWUgYWxzbyBzZWN0aW9uICJEb3h5Z2VuCisjIHVzYWdlIiBmb3IgaW5mb3JtYXRpb24gb24gaG93IHRvIGdlbmVyYXRlIHRoZSBkZWZhdWx0IGZvb3RlciB0aGF0IERveHlnZW4KKyMgbm9ybWFsbHkgdXNlcy4gTm90ZTogT25seSB1c2UgYSB1c2VyLWRlZmluZWQgZm9vdGVyIGlmIHlvdSBrbm93IHdoYXQgeW91IGFyZQorIyBkb2luZyEKICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAKIExBVEVYX0ZPT1RFUiAgICAgICAgICAgPQogCiAjIFRoZSBMQVRFWF9FWFRSQV9TVFlMRVNIRUVUIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IGFkZGl0aW9uYWwgdXNlci1kZWZpbmVkCiAjIExhVGVYIHN0eWxlIHNoZWV0cyB0aGF0IGFyZSBpbmNsdWRlZCBhZnRlciB0aGUgc3RhbmRhcmQgc3R5bGUgc2hlZXRzIGNyZWF0ZWQKLSMgYnkgZG94eWdlbi4gVXNpbmcgdGhpcyBvcHRpb24gb25lIGNhbiBvdmVycnVsZSBjZXJ0YWluIHN0eWxlIGFzcGVjdHMuIERveHlnZW4KKyMgYnkgRG94eWdlbi4gVXNpbmcgdGhpcyBvcHRpb24gb25lIGNhbiBvdmVycnVsZSBjZXJ0YWluIHN0eWxlIGFzcGVjdHMuIERveHlnZW4KICMgd2lsbCBjb3B5IHRoZSBzdHlsZSBzaGVldCBmaWxlcyB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeS4KICMgTm90ZTogVGhlIG9yZGVyIG9mIHRoZSBleHRyYSBzdHlsZSBzaGVldCBmaWxlcyBpcyBvZiBpbXBvcnRhbmNlIChlLmcuIHRoZSBsYXN0CiAjIHN0eWxlIHNoZWV0IGluIHRoZSBsaXN0IG92ZXJydWxlcyB0aGUgc2V0dGluZyBvZiB0aGUgcHJldmlvdXMgb25lcyBpbiB0aGUKQEAgLTE3NTgsNjEgKzIxMTksNTkgQEAKIAogUERGX0hZUEVSTElOS1MgICAgICAgICA9IE5PCiAKLSMgSWYgdGhlIFVTRV9QREZMQVRFWCB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIHVzZSBwZGZsYXRleCB0byBnZW5lcmF0ZQotIyB0aGUgUERGIGZpbGUgZGlyZWN0bHkgZnJvbSB0aGUgTGFUZVggZmlsZXMuIFNldCB0aGlzIG9wdGlvbiB0byBZRVMsIHRvIGdldCBhCi0jIGhpZ2hlciBxdWFsaXR5IFBERiBkb2N1bWVudGF0aW9uLgorIyBJZiB0aGUgVVNFX1BERkxBVEVYIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgdXNlIHRoZSBlbmdpbmUgYXMKKyMgc3BlY2lmaWVkIHdpdGggTEFURVhfQ01EX05BTUUgdG8gZ2VuZXJhdGUgdGhlIFBERiBmaWxlIGRpcmVjdGx5IGZyb20gdGhlIExhVGVYCisjIGZpbGVzLiBTZXQgdGhpcyBvcHRpb24gdG8gWUVTLCB0byBnZXQgYSBoaWdoZXIgcXVhbGl0eSBQREYgZG9jdW1lbnRhdGlvbi4KKyMKKyMgU2VlIGFsc28gc2VjdGlvbiBMQVRFWF9DTURfTkFNRSBmb3Igc2VsZWN0aW5nIHRoZSBlbmdpbmUuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgogCiBVU0VfUERGTEFURVggICAgICAgICAgID0gTk8KIAotIyBJZiB0aGUgTEFURVhfQkFUQ0hNT0RFIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgYWRkIHRoZSBcYmF0Y2htb2RlCi0jIGNvbW1hbmQgdG8gdGhlIGdlbmVyYXRlZCBMYVRlWCBmaWxlcy4gVGhpcyB3aWxsIGluc3RydWN0IExhVGVYIHRvIGtlZXAgcnVubmluZwotIyBpZiBlcnJvcnMgb2NjdXIsIGluc3RlYWQgb2YgYXNraW5nIHRoZSB1c2VyIGZvciBoZWxwLiBUaGlzIG9wdGlvbiBpcyBhbHNvIHVzZWQKLSMgd2hlbiBnZW5lcmF0aW5nIGZvcm11bGFzIGluIEhUTUwuCisjIFRoZSBMQVRFWF9CQVRDSE1PREUgdGFnIHNpZ25hbHMgdGhlIGJlaGF2aW9yIG9mIExhVGVYIGluIGNhc2Ugb2YgYW4gZXJyb3IuCisjIFBvc3NpYmxlIHZhbHVlcyBhcmU6IE5PIHNhbWUgYXMgRVJST1JfU1RPUCwgWUVTIHNhbWUgYXMgQkFUQ0gsIEJBVENIIEluIGJhdGNoCisjIG1vZGUgbm90aGluZyBpcyBwcmludGVkIG9uIHRoZSB0ZXJtaW5hbCwgZXJyb3JzIGFyZSBzY3JvbGxlZCBhcyBpZiA8cmV0dXJuPiBpcworIyBoaXQgYXQgZXZlcnkgZXJyb3I7IG1pc3NpbmcgZmlsZXMgdGhhdCBUZVggdHJpZXMgdG8gaW5wdXQgb3IgcmVxdWVzdCBmcm9tCisjIGtleWJvYXJkIGlucHV0IChccmVhZCBvbiBhIG5vdCBvcGVuIGlucHV0IHN0cmVhbSkgY2F1c2UgdGhlIGpvYiB0byBhYm9ydCwKKyMgTk9OX1NUT1AgSW4gbm9uc3RvcCBtb2RlIHRoZSBkaWFnbm9zdGljIG1lc3NhZ2Ugd2lsbCBhcHBlYXIgb24gdGhlIHRlcm1pbmFsLAorIyBidXQgdGhlcmUgaXMgbm8gcG9zc2liaWxpdHkgb2YgdXNlciBpbnRlcmFjdGlvbiBqdXN0IGxpa2UgaW4gYmF0Y2ggbW9kZSwKKyMgU0NST0xMIEluIHNjcm9sbCBtb2RlLCBUZVggd2lsbCBzdG9wIG9ubHkgZm9yIG1pc3NpbmcgZmlsZXMgdG8gaW5wdXQgb3IgaWYKKyMga2V5Ym9hcmQgaW5wdXQgaXMgbmVjZXNzYXJ5IGFuZCBFUlJPUl9TVE9QIEluIGVycm9yc3RvcCBtb2RlLCBUZVggd2lsbCBzdG9wIGF0CisjIGVhY2ggZXJyb3IsIGFza2luZyBmb3IgdXNlciBpbnRlcnZlbnRpb24uCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAKIExBVEVYX0JBVENITU9ERSAgICAgICAgPSBOTwogCi0jIElmIHRoZSBMQVRFWF9ISURFX0lORElDRVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgbm90IGluY2x1ZGUgdGhlCisjIElmIHRoZSBMQVRFWF9ISURFX0lORElDRVMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgbm90IGluY2x1ZGUgdGhlCiAjIGluZGV4IGNoYXB0ZXJzIChzdWNoIGFzIEZpbGUgSW5kZXgsIENvbXBvdW5kIEluZGV4LCBldGMuKSBpbiB0aGUgb3V0cHV0LgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgogCiBMQVRFWF9ISURFX0lORElDRVMgICAgID0gTk8KIAotIyBJZiB0aGUgTEFURVhfU09VUkNFX0NPREUgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgaW5jbHVkZSBzb3VyY2UKLSMgY29kZSB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcgaW4gdGhlIExhVGVYIG91dHB1dC4KLSMKLSMgTm90ZSB0aGF0IHdoaWNoIHNvdXJjZXMgYXJlIHNob3duIGFsc28gZGVwZW5kcyBvbiBvdGhlciBzZXR0aW5ncyBzdWNoIGFzCi0jIFNPVVJDRV9CUk9XU0VSLgotIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCi0jIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgotCi1MQVRFWF9TT1VSQ0VfQ09ERSAgICAgID0gTk8KLQogIyBUaGUgTEFURVhfQklCX1NUWUxFIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBzdHlsZSB0byB1c2UgZm9yIHRoZQogIyBiaWJsaW9ncmFwaHksIGUuZy4gcGxhaW5uYXQsIG9yIGllZWV0ci4gU2VlCi0jIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmliVGVYIGFuZCBcY2l0ZSBmb3IgbW9yZSBpbmZvLgorIyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CaWJUZVggYW5kIFxjaXRlIGZvciBtb3JlIGluZm8uCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBwbGFpbi4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEdFTkVSQVRFX0xBVEVYIGlzIHNldCB0byBZRVMuCiAKIExBVEVYX0JJQl9TVFlMRSAgICAgICAgPSBwbGFpbgogCi0jIElmIHRoZSBMQVRFWF9USU1FU1RBTVAgdGFnIGlzIHNldCB0byBZRVMgdGhlbiB0aGUgZm9vdGVyIG9mIGVhY2ggZ2VuZXJhdGVkCi0jIHBhZ2Ugd2lsbCBjb250YWluIHRoZSBkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIHBhZ2Ugd2FzIGdlbmVyYXRlZC4gU2V0dGluZyB0aGlzCi0jIHRvIE5PIGNhbiBoZWxwIHdoZW4gY29tcGFyaW5nIHRoZSBvdXRwdXQgb2YgbXVsdGlwbGUgcnVucy4KLSMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGUgTEFURVhfRU1PSklfRElSRUNUT1JZIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIChyZWxhdGl2ZSBvciBhYnNvbHV0ZSkKKyMgcGF0aCBmcm9tIHdoaWNoIHRoZSBlbW9qaSBpbWFnZXMgd2lsbCBiZSByZWFkLiBJZiBhIHJlbGF0aXZlIHBhdGggaXMgZW50ZXJlZCwKKyMgaXQgd2lsbCBiZSByZWxhdGl2ZSB0byB0aGUgTEFURVhfT1VUUFVUIGRpcmVjdG9yeS4gSWYgbGVmdCBibGFuayB0aGUKKyMgTEFURVhfT1VUUFVUIGRpcmVjdG9yeSB3aWxsIGJlIHVzZWQuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9MQVRFWCBpcyBzZXQgdG8gWUVTLgogCi1MQVRFWF9USU1FU1RBTVAgICAgICAgID0gTk8KK0xBVEVYX0VNT0pJX0RJUkVDVE9SWSAgPQogCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBSVEYgb3V0cHV0CiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIEdFTkVSQVRFX1JURiB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIFJURiBvdXRwdXQuIFRoZQorIyBJZiB0aGUgR0VORVJBVEVfUlRGIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgUlRGIG91dHB1dC4gVGhlCiAjIFJURiBvdXRwdXQgaXMgb3B0aW1pemVkIGZvciBXb3JkIDk3IGFuZCBtYXkgbm90IGxvb2sgdG9vIHByZXR0eSB3aXRoIG90aGVyIFJURgogIyByZWFkZXJzL2VkaXRvcnMuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KQEAgLTE4MjcsNyArMjE4Niw3IEBACiAKIFJURl9PVVRQVVQgICAgICAgICAgICAgPSBydGYKIAotIyBJZiB0aGUgQ09NUEFDVF9SVEYgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gZ2VuZXJhdGVzIG1vcmUgY29tcGFjdCBSVEYKKyMgSWYgdGhlIENPTVBBQ1RfUlRGIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIGdlbmVyYXRlcyBtb3JlIGNvbXBhY3QgUlRGCiAjIGRvY3VtZW50cy4gVGhpcyBtYXkgYmUgdXNlZnVsIGZvciBzbWFsbCBwcm9qZWN0cyBhbmQgbWF5IGhlbHAgdG8gc2F2ZSBzb21lCiAjIHRyZWVzIGluIGdlbmVyYWwuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KQEAgLTE4NDcsMzggKzIyMDYsMzYgQEAKIAogUlRGX0hZUEVSTElOS1MgICAgICAgICA9IE5PCiAKLSMgTG9hZCBzdHlsZXNoZWV0IGRlZmluaXRpb25zIGZyb20gZmlsZS4gU3ludGF4IGlzIHNpbWlsYXIgdG8gZG94eWdlbidzIGNvbmZpZwotIyBmaWxlLCBpLmUuIGEgc2VyaWVzIG9mIGFzc2lnbm1lbnRzLiBZb3Ugb25seSBoYXZlIHRvIHByb3ZpZGUgcmVwbGFjZW1lbnRzLAotIyBtaXNzaW5nIGRlZmluaXRpb25zIGFyZSBzZXQgdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZS4KKyMgTG9hZCBzdHlsZXNoZWV0IGRlZmluaXRpb25zIGZyb20gZmlsZS4gU3ludGF4IGlzIHNpbWlsYXIgdG8gRG94eWdlbidzCisjIGNvbmZpZ3VyYXRpb24gZmlsZSwgaS5lLiBhIHNlcmllcyBvZiBhc3NpZ25tZW50cy4gWW91IG9ubHkgaGF2ZSB0byBwcm92aWRlCisjIHJlcGxhY2VtZW50cywgbWlzc2luZyBkZWZpbml0aW9ucyBhcmUgc2V0IHRvIHRoZWlyIGRlZmF1bHQgdmFsdWUuCiAjCiAjIFNlZSBhbHNvIHNlY3Rpb24gIkRveHlnZW4gdXNhZ2UiIGZvciBpbmZvcm1hdGlvbiBvbiBob3cgdG8gZ2VuZXJhdGUgdGhlCi0jIGRlZmF1bHQgc3R5bGUgc2hlZXQgdGhhdCBkb3h5Z2VuIG5vcm1hbGx5IHVzZXMuCisjIGRlZmF1bHQgc3R5bGUgc2hlZXQgdGhhdCBEb3h5Z2VuIG5vcm1hbGx5IHVzZXMuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlFUy4KIAogUlRGX1NUWUxFU0hFRVRfRklMRSAgICA9CiAKICMgU2V0IG9wdGlvbmFsIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBnZW5lcmF0aW9uIG9mIGFuIFJURiBkb2N1bWVudC4gU3ludGF4IGlzCi0jIHNpbWlsYXIgdG8gZG94eWdlbidzIGNvbmZpZyBmaWxlLiBBIHRlbXBsYXRlIGV4dGVuc2lvbnMgZmlsZSBjYW4gYmUgZ2VuZXJhdGVkCi0jIHVzaW5nIGRveHlnZW4gLWUgcnRmIGV4dGVuc2lvbkZpbGUuCisjIHNpbWlsYXIgdG8gRG94eWdlbidzIGNvbmZpZ3VyYXRpb24gZmlsZS4gQSB0ZW1wbGF0ZSBleHRlbnNpb25zIGZpbGUgY2FuIGJlCisjIGdlbmVyYXRlZCB1c2luZyBkb3h5Z2VuIC1lIHJ0ZiBleHRlbnNpb25GaWxlLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfUlRGIGlzIHNldCB0byBZRVMuCiAKIFJURl9FWFRFTlNJT05TX0ZJTEUgICAgPQogCi0jIElmIHRoZSBSVEZfU09VUkNFX0NPREUgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgaW5jbHVkZSBzb3VyY2UgY29kZQotIyB3aXRoIHN5bnRheCBoaWdobGlnaHRpbmcgaW4gdGhlIFJURiBvdXRwdXQuCi0jCi0jIE5vdGUgdGhhdCB3aGljaCBzb3VyY2VzIGFyZSBzaG93biBhbHNvIGRlcGVuZHMgb24gb3RoZXIgc2V0dGluZ3Mgc3VjaCBhcwotIyBTT1VSQ0VfQlJPV1NFUi4KLSMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgorIyBUaGUgUlRGX0VYVFJBX0ZJTEVTIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGV4dHJhIGltYWdlcyBvcgorIyBvdGhlciBzb3VyY2UgZmlsZXMgd2hpY2ggc2hvdWxkIGJlIGNvcGllZCB0byB0aGUgUlRGX09VVFBVVCBvdXRwdXQgZGlyZWN0b3J5LgorIyBOb3RlIHRoYXQgdGhlIGZpbGVzIHdpbGwgYmUgY29waWVkIGFzLWlzOyB0aGVyZSBhcmUgbm8gY29tbWFuZHMgb3IgbWFya2VycworIyBhdmFpbGFibGUuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9SVEYgaXMgc2V0IHRvIFlFUy4KIAotUlRGX1NPVVJDRV9DT0RFICAgICAgICA9IE5PCitSVEZfRVhUUkFfRklMRVMgICAgICAgID0KIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgbWFuIHBhZ2Ugb3V0cHV0CiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIEdFTkVSQVRFX01BTiB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIG1hbiBwYWdlcyBmb3IKKyMgSWYgdGhlIEdFTkVSQVRFX01BTiB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIGdlbmVyYXRlIG1hbiBwYWdlcyBmb3IKICMgY2xhc3NlcyBhbmQgZmlsZXMuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIApAQCAtMTkwOSw3ICsyMjY2LDcgQEAKIAogTUFOX1NVQkRJUiAgICAgICAgICAgICA9CiAKLSMgSWYgdGhlIE1BTl9MSU5LUyB0YWcgaXMgc2V0IHRvIFlFUyBhbmQgZG94eWdlbiBnZW5lcmF0ZXMgbWFuIG91dHB1dCwgdGhlbiBpdAorIyBJZiB0aGUgTUFOX0xJTktTIHRhZyBpcyBzZXQgdG8gWUVTIGFuZCBEb3h5Z2VuIGdlbmVyYXRlcyBtYW4gb3V0cHV0LCB0aGVuIGl0CiAjIHdpbGwgZ2VuZXJhdGUgb25lIGFkZGl0aW9uYWwgbWFuIGZpbGUgZm9yIGVhY2ggZW50aXR5IGRvY3VtZW50ZWQgaW4gdGhlIHJlYWwKICMgbWFuIHBhZ2UocykuIFRoZXNlIGFkZGl0aW9uYWwgZmlsZXMgb25seSBzb3VyY2UgdGhlIHJlYWwgbWFuIHBhZ2UsIGJ1dCB3aXRob3V0CiAjIHRoZW0gdGhlIG1hbiBjb21tYW5kIHdvdWxkIGJlIHVuYWJsZSB0byBmaW5kIHRoZSBjb3JyZWN0IHBhZ2UuCkBAIC0xOTIyLDcgKzIyNzksNyBAQAogIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgWE1MIG91dHB1dAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElmIHRoZSBHRU5FUkFURV9YTUwgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhbiBYTUwgZmlsZSB0aGF0CisjIElmIHRoZSBHRU5FUkFURV9YTUwgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhbiBYTUwgZmlsZSB0aGF0CiAjIGNhcHR1cmVzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvZGUgaW5jbHVkaW5nIGFsbCBkb2N1bWVudGF0aW9uLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKQEAgLTE5MzYsNyArMjI5Myw3IEBACiAKIFhNTF9PVVRQVVQgICAgICAgICAgICAgPSB4bWwKIAotIyBJZiB0aGUgWE1MX1BST0dSQU1MSVNUSU5HIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgZHVtcCB0aGUgcHJvZ3JhbQorIyBJZiB0aGUgWE1MX1BST0dSQU1MSVNUSU5HIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZHVtcCB0aGUgcHJvZ3JhbQogIyBsaXN0aW5ncyAoaW5jbHVkaW5nIHN5bnRheCBoaWdobGlnaHRpbmcgYW5kIGNyb3NzLXJlZmVyZW5jaW5nIGluZm9ybWF0aW9uKSB0bwogIyB0aGUgWE1MIG91dHB1dC4gTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgd2lsbCBzaWduaWZpY2FudGx5IGluY3JlYXNlIHRoZSBzaXplCiAjIG9mIHRoZSBYTUwgb3V0cHV0LgpAQCAtMTk0NSwxMSArMjMwMiwxOCBAQAogCiBYTUxfUFJPR1JBTUxJU1RJTkcgICAgID0gWUVTCiAKKyMgSWYgdGhlIFhNTF9OU19NRU1CX0ZJTEVfU0NPUEUgdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBpbmNsdWRlCisjIG5hbWVzcGFjZSBtZW1iZXJzIGluIGZpbGUgc2NvcGUgYXMgd2VsbCwgbWF0Y2hpbmcgdGhlIEhUTUwgb3V0cHV0LgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9YTUwgaXMgc2V0IHRvIFlFUy4KKworWE1MX05TX01FTUJfRklMRV9TQ09QRSA9IE5PCisKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIERPQ0JPT0sgb3V0cHV0CiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIEdFTkVSQVRFX0RPQ0JPT0sgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBEb2Nib29rIGZpbGVzCisjIElmIHRoZSBHRU5FUkFURV9ET0NCT09LIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgRG9jYm9vayBmaWxlcwogIyB0aGF0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIFBERi4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCkBAIC0xOTYzLDMyICsyMzI3LDQ5IEBACiAKIERPQ0JPT0tfT1VUUFVUICAgICAgICAgPSBkb2Nib29rCiAKLSMgSWYgdGhlIERPQ0JPT0tfUFJPR1JBTUxJU1RJTkcgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBpbmNsdWRlIHRoZQotIyBwcm9ncmFtIGxpc3RpbmdzIChpbmNsdWRpbmcgc3ludGF4IGhpZ2hsaWdodGluZyBhbmQgY3Jvc3MtcmVmZXJlbmNpbmcKLSMgaW5mb3JtYXRpb24pIHRvIHRoZSBET0NCT09LIG91dHB1dC4gTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgd2lsbCBzaWduaWZpY2FudGx5Ci0jIGluY3JlYXNlIHRoZSBzaXplIG9mIHRoZSBET0NCT09LIG91dHB1dC4KLSMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgotIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgR0VORVJBVEVfRE9DQk9PSyBpcyBzZXQgdG8gWUVTLgotCi1ET0NCT09LX1BST0dSQU1MSVNUSU5HID0gTk8KLQogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBBdXRvR2VuIERlZmluaXRpb25zIG91dHB1dAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0jIElmIHRoZSBHRU5FUkFURV9BVVRPR0VOX0RFRiB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGFuCi0jIEF1dG9HZW4gRGVmaW5pdGlvbnMgKHNlZSBodHRwOi8vYXV0b2dlbi5zZi5uZXQpIGZpbGUgdGhhdCBjYXB0dXJlcyB0aGUKLSMgc3RydWN0dXJlIG9mIHRoZSBjb2RlIGluY2x1ZGluZyBhbGwgZG9jdW1lbnRhdGlvbi4gTm90ZSB0aGF0IHRoaXMgZmVhdHVyZSBpcwotIyBzdGlsbCBleHBlcmltZW50YWwgYW5kIGluY29tcGxldGUgYXQgdGhlIG1vbWVudC4KKyMgSWYgdGhlIEdFTkVSQVRFX0FVVE9HRU5fREVGIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYW4KKyMgQXV0b0dlbiBEZWZpbml0aW9ucyAoc2VlIGh0dHBzOi8vYXV0b2dlbi5zb3VyY2Vmb3JnZS5uZXQvKSBmaWxlIHRoYXQgY2FwdHVyZXMKKyMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29kZSBpbmNsdWRpbmcgYWxsIGRvY3VtZW50YXRpb24uIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUKKyMgaXMgc3RpbGwgZXhwZXJpbWVudGFsIGFuZCBpbmNvbXBsZXRlIGF0IHRoZSBtb21lbnQuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogR0VORVJBVEVfQVVUT0dFTl9ERUYgICA9IE5PCiAKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gU3FsaXRlMyBvdXRwdXQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBJZiB0aGUgR0VORVJBVEVfU1FMSVRFMyB0YWcgaXMgc2V0IHRvIFlFUyBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBTcWxpdGUzCisjIGRhdGFiYXNlIHdpdGggc3ltYm9scyBmb3VuZCBieSBEb3h5Z2VuIHN0b3JlZCBpbiB0YWJsZXMuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KKworR0VORVJBVEVfU1FMSVRFMyAgICAgICA9IE5PCisKKyMgVGhlIFNRTElURTNfT1VUUFVUIHRhZyBpcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdGhlIFNxbGl0ZTMgZGF0YWJhc2Ugd2lsbCBiZQorIyBwdXQuIElmIGEgcmVsYXRpdmUgcGF0aCBpcyBlbnRlcmVkIHRoZSB2YWx1ZSBvZiBPVVRQVVRfRElSRUNUT1JZIHdpbGwgYmUgcHV0CisjIGluIGZyb250IG9mIGl0LgorIyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgaXM6IHNxbGl0ZTMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9TUUxJVEUzIGlzIHNldCB0byBZRVMuCisKK1NRTElURTNfT1VUUFVUICAgICAgICAgPSBzcWxpdGUzCisKKyMgVGhlIFNRTElURTNfUkVDUkVBVEVfREIgdGFnIGlzIHNldCB0byBZRVMsIHRoZSBleGlzdGluZyBkb3h5Z2VuX3NxbGl0ZTMuZGIKKyMgZGF0YWJhc2UgZmlsZSB3aWxsIGJlIHJlY3JlYXRlZCB3aXRoIGVhY2ggRG94eWdlbiBydW4uIElmIHNldCB0byBOTywgRG94eWdlbgorIyB3aWxsIHdhcm4gaWYgYSBkYXRhYmFzZSBmaWxlIGlzIGFscmVhZHkgZm91bmQgYW5kIG5vdCBtb2RpZnkgaXQuCisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBHRU5FUkFURV9TUUxJVEUzIGlzIHNldCB0byBZRVMuCisKK1NRTElURTNfUkVDUkVBVEVfREIgICAgPSBZRVMKKworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgUGVybCBtb2R1bGUgb3V0cHV0CiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSMgSWYgdGhlIEdFTkVSQVRFX1BFUkxNT0QgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIFBlcmwgbW9kdWxlCisjIElmIHRoZSBHRU5FUkFURV9QRVJMTU9EIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBQZXJsIG1vZHVsZQogIyBmaWxlIHRoYXQgY2FwdHVyZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29kZSBpbmNsdWRpbmcgYWxsIGRvY3VtZW50YXRpb24uCiAjCiAjIE5vdGUgdGhhdCB0aGlzIGZlYXR1cmUgaXMgc3RpbGwgZXhwZXJpbWVudGFsIGFuZCBpbmNvbXBsZXRlIGF0IHRoZSBtb21lbnQuCkBAIC0xOTk2LDcgKzIzNzcsNyBAQAogCiBHRU5FUkFURV9QRVJMTU9EICAgICAgID0gTk8KIAotIyBJZiB0aGUgUEVSTE1PRF9MQVRFWCB0YWcgaXMgc2V0IHRvIFlFUywgZG94eWdlbiB3aWxsIGdlbmVyYXRlIHRoZSBuZWNlc3NhcnkKKyMgSWYgdGhlIFBFUkxNT0RfTEFURVggdGFnIGlzIHNldCB0byBZRVMsIERveHlnZW4gd2lsbCBnZW5lcmF0ZSB0aGUgbmVjZXNzYXJ5CiAjIE1ha2VmaWxlIHJ1bGVzLCBQZXJsIHNjcmlwdHMgYW5kIExhVGVYIGNvZGUgdG8gYmUgYWJsZSB0byBnZW5lcmF0ZSBQREYgYW5kIERWSQogIyBvdXRwdXQgZnJvbSB0aGUgUGVybCBtb2R1bGUgb3V0cHV0LgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCkBAIC0yMDI2LDEzICsyNDA3LDEzIEBACiAjIENvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIHRoZSBwcmVwcm9jZXNzb3IKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgRU5BQkxFX1BSRVBST0NFU1NJTkcgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBldmFsdWF0ZSBhbGwKKyMgSWYgdGhlIEVOQUJMRV9QUkVQUk9DRVNTSU5HIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZXZhbHVhdGUgYWxsCiAjIEMtcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgZm91bmQgaW4gdGhlIHNvdXJjZXMgYW5kIGluY2x1ZGUgZmlsZXMuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEVOQUJMRV9QUkVQUk9DRVNTSU5HICAgPSBZRVMKIAotIyBJZiB0aGUgTUFDUk9fRVhQQU5TSU9OIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgZXhwYW5kIGFsbCBtYWNybyBuYW1lcworIyBJZiB0aGUgTUFDUk9fRVhQQU5TSU9OIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZXhwYW5kIGFsbCBtYWNybyBuYW1lcwogIyBpbiB0aGUgc291cmNlIGNvZGUuIElmIHNldCB0byBOTywgb25seSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB3aWxsIGJlCiAjIHBlcmZvcm1lZC4gTWFjcm8gZXhwYW5zaW9uIGNhbiBiZSBkb25lIGluIGEgY29udHJvbGxlZCB3YXkgYnkgc2V0dGluZwogIyBFWFBBTkRfT05MWV9QUkVERUYgdG8gWUVTLgpAQCAtMjA1OCw3ICsyNDM5LDggQEAKIAogIyBUaGUgSU5DTFVERV9QQVRIIHRhZyBjYW4gYmUgdXNlZCB0byBzcGVjaWZ5IG9uZSBvciBtb3JlIGRpcmVjdG9yaWVzIHRoYXQKICMgY29udGFpbiBpbmNsdWRlIGZpbGVzIHRoYXQgYXJlIG5vdCBpbnB1dCBmaWxlcyBidXQgc2hvdWxkIGJlIHByb2Nlc3NlZCBieSB0aGUKLSMgcHJlcHJvY2Vzc29yLgorIyBwcmVwcm9jZXNzb3IuIE5vdGUgdGhhdCB0aGUgSU5DTFVERV9QQVRIIGlzIG5vdCByZWN1cnNpdmUsIHNvIHRoZSBzZXR0aW5nIG9mCisjIFJFQ1VSU0lWRSBoYXMgbm8gZWZmZWN0IGhlcmUuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBTRUFSQ0hfSU5DTFVERVMgaXMgc2V0IHRvIFlFUy4KIAogSU5DTFVERV9QQVRIICAgICAgICAgICA9IC4uLy4uL3NyYy9pbmNsdWRlCkBAIC0yMTQ5LDcgKzI1MzEsNyBAQAogCiBFWFBBTkRfQVNfREVGSU5FRCAgICAgID0KIAotIyBJZiB0aGUgU0tJUF9GVU5DVElPTl9NQUNST1MgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuJ3MgcHJlcHJvY2Vzc29yIHdpbGwKKyMgSWYgdGhlIFNLSVBfRlVOQ1RJT05fTUFDUk9TIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbidzIHByZXByb2Nlc3NvciB3aWxsCiAjIHJlbW92ZSBhbGwgcmVmZXJlbmNlcyB0byBmdW5jdGlvbi1saWtlIG1hY3JvcyB0aGF0IGFyZSBhbG9uZSBvbiBhIGxpbmUsIGhhdmUKICMgYW4gYWxsIHVwcGVyY2FzZSBuYW1lLCBhbmQgZG8gbm90IGVuZCB3aXRoIGEgc2VtaWNvbG9uLiBTdWNoIGZ1bmN0aW9uIG1hY3JvcwogIyBhcmUgdHlwaWNhbGx5IHVzZWQgZm9yIGJvaWxlci1wbGF0ZSBjb2RlLCBhbmQgd2lsbCBjb25mdXNlIHRoZSBwYXJzZXIgaWYgbm90CkBAIC0yMTczLDI2ICsyNTU1LDI2IEBACiAjIHNlY3Rpb24gIkxpbmtpbmcgdG8gZXh0ZXJuYWwgZG9jdW1lbnRhdGlvbiIgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHVzZQogIyBvZiB0YWcgZmlsZXMuCiAjIE5vdGU6IEVhY2ggdGFnIGZpbGUgbXVzdCBoYXZlIGEgdW5pcXVlIG5hbWUgKHdoZXJlIHRoZSBuYW1lIGRvZXMgTk9UIGluY2x1ZGUKLSMgdGhlIHBhdGgpLiBJZiBhIHRhZyBmaWxlIGlzIG5vdCBsb2NhdGVkIGluIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggZG94eWdlbiBpcworIyB0aGUgcGF0aCkuIElmIGEgdGFnIGZpbGUgaXMgbm90IGxvY2F0ZWQgaW4gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBEb3h5Z2VuIGlzCiAjIHJ1biwgeW91IG11c3QgYWxzbyBzcGVjaWZ5IHRoZSBwYXRoIHRvIHRoZSB0YWdmaWxlIGhlcmUuCiAKIFRBR0ZJTEVTICAgICAgICAgICAgICAgPQogCi0jIFdoZW4gYSBmaWxlIG5hbWUgaXMgc3BlY2lmaWVkIGFmdGVyIEdFTkVSQVRFX1RBR0ZJTEUsIGRveHlnZW4gd2lsbCBjcmVhdGUgYQorIyBXaGVuIGEgZmlsZSBuYW1lIGlzIHNwZWNpZmllZCBhZnRlciBHRU5FUkFURV9UQUdGSUxFLCBEb3h5Z2VuIHdpbGwgY3JlYXRlIGEKICMgdGFnIGZpbGUgdGhhdCBpcyBiYXNlZCBvbiB0aGUgaW5wdXQgZmlsZXMgaXQgcmVhZHMuIFNlZSBzZWN0aW9uICJMaW5raW5nIHRvCiAjIGV4dGVybmFsIGRvY3VtZW50YXRpb24iIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2FnZSBvZiB0YWcgZmlsZXMuCiAKIEdFTkVSQVRFX1RBR0ZJTEUgICAgICAgPQogCi0jIElmIHRoZSBBTExFWFRFUk5BTFMgdGFnIGlzIHNldCB0byBZRVMsIGFsbCBleHRlcm5hbCBjbGFzcyB3aWxsIGJlIGxpc3RlZCBpbgotIyB0aGUgY2xhc3MgaW5kZXguIElmIHNldCB0byBOTywgb25seSB0aGUgaW5oZXJpdGVkIGV4dGVybmFsIGNsYXNzZXMgd2lsbCBiZQotIyBsaXN0ZWQuCisjIElmIHRoZSBBTExFWFRFUk5BTFMgdGFnIGlzIHNldCB0byBZRVMsIGFsbCBleHRlcm5hbCBjbGFzc2VzIGFuZCBuYW1lc3BhY2VzCisjIHdpbGwgYmUgbGlzdGVkIGluIHRoZSBjbGFzcyBhbmQgbmFtZXNwYWNlIGluZGV4LiBJZiBzZXQgdG8gTk8sIG9ubHkgdGhlCisjIGluaGVyaXRlZCBleHRlcm5hbCBjbGFzc2VzIHdpbGwgYmUgbGlzdGVkLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCiAKIEFMTEVYVEVSTkFMUyAgICAgICAgICAgPSBOTwogCiAjIElmIHRoZSBFWFRFUk5BTF9HUk9VUFMgdGFnIGlzIHNldCB0byBZRVMsIGFsbCBleHRlcm5hbCBncm91cHMgd2lsbCBiZSBsaXN0ZWQKLSMgaW4gdGhlIG1vZHVsZXMgaW5kZXguIElmIHNldCB0byBOTywgb25seSB0aGUgY3VycmVudCBwcm9qZWN0J3MgZ3JvdXBzIHdpbGwgYmUKKyMgaW4gdGhlIHRvcGljIGluZGV4LiBJZiBzZXQgdG8gTk8sIG9ubHkgdGhlIGN1cnJlbnQgcHJvamVjdCdzIGdyb3VwcyB3aWxsIGJlCiAjIGxpc3RlZC4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KIApAQCAtMjIwNSw1OCArMjU4NywyNyBAQAogCiBFWFRFUk5BTF9QQUdFUyAgICAgICAgID0gWUVTCiAKLSMgVGhlIFBFUkxfUEFUSCBzaG91bGQgYmUgdGhlIGFic29sdXRlIHBhdGggYW5kIG5hbWUgb2YgdGhlIHBlcmwgc2NyaXB0Ci0jIGludGVycHJldGVyIChpLmUuIHRoZSByZXN1bHQgb2YgJ3doaWNoIHBlcmwnKS4KLSMgVGhlIGRlZmF1bHQgZmlsZSAod2l0aCBhYnNvbHV0ZSBwYXRoKSBpczogL3Vzci9iaW4vcGVybC4KLQotUEVSTF9QQVRIICAgICAgICAgICAgICA9IC91c3IvYmluL3BlcmwKLQogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBDb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byB0aGUgZG90IHRvb2wKKyMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gZGlhZ3JhbSBnZW5lcmF0b3IgdG9vbHMKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotIyBJZiB0aGUgQ0xBU1NfRElBR1JBTVMgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGNsYXNzIGRpYWdyYW0KLSMgKGluIEhUTUwgYW5kIExhVGVYKSBmb3IgY2xhc3NlcyB3aXRoIGJhc2Ugb3Igc3VwZXIgY2xhc3Nlcy4gU2V0dGluZyB0aGUgdGFnIHRvCi0jIE5PIHR1cm5zIHRoZSBkaWFncmFtcyBvZmYuIE5vdGUgdGhhdCB0aGlzIG9wdGlvbiBhbHNvIHdvcmtzIHdpdGggSEFWRV9ET1QKLSMgZGlzYWJsZWQsIGJ1dCBpdCBpcyByZWNvbW1lbmRlZCB0byBpbnN0YWxsIGFuZCB1c2UgZG90LCBzaW5jZSBpdCB5aWVsZHMgbW9yZQotIyBwb3dlcmZ1bCBncmFwaHMuCi0jIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCi0KLUNMQVNTX0RJQUdSQU1TICAgICAgICAgPSBZRVMKLQotIyBZb3UgY2FuIGRlZmluZSBtZXNzYWdlIHNlcXVlbmNlIGNoYXJ0cyB3aXRoaW4gZG94eWdlbiBjb21tZW50cyB1c2luZyB0aGUgXG1zYwotIyBjb21tYW5kLiBEb3h5Z2VuIHdpbGwgdGhlbiBydW4gdGhlIG1zY2dlbiB0b29sIChzZWU6Ci0jIGh0dHA6Ly93d3cubWN0ZXJuYW4ubWUudWsvbXNjZ2VuLykpIHRvIHByb2R1Y2UgdGhlIGNoYXJ0IGFuZCBpbnNlcnQgaXQgaW4gdGhlCi0jIGRvY3VtZW50YXRpb24uIFRoZSBNU0NHRU5fUEFUSCB0YWcgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IHRoZSBkaXJlY3Rvcnkgd2hlcmUKLSMgdGhlIG1zY2dlbiB0b29sIHJlc2lkZXMuIElmIGxlZnQgZW1wdHkgdGhlIHRvb2wgaXMgYXNzdW1lZCB0byBiZSBmb3VuZCBpbiB0aGUKLSMgZGVmYXVsdCBzZWFyY2ggcGF0aC4KLQotTVNDR0VOX1BBVEggICAgICAgICAgICA9Ci0KLSMgWW91IGNhbiBpbmNsdWRlIGRpYWdyYW1zIG1hZGUgd2l0aCBkaWEgaW4gZG94eWdlbiBkb2N1bWVudGF0aW9uLiBEb3h5Z2VuIHdpbGwKLSMgdGhlbiBydW4gZGlhIHRvIHByb2R1Y2UgdGhlIGRpYWdyYW0gYW5kIGluc2VydCBpdCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gVGhlCi0jIERJQV9QQVRIIHRhZyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgZGlhIGJpbmFyeSByZXNpZGVzLgotIyBJZiBsZWZ0IGVtcHR5IGRpYSBpcyBhc3N1bWVkIHRvIGJlIGZvdW5kIGluIHRoZSBkZWZhdWx0IHNlYXJjaCBwYXRoLgotCi1ESUFfUEFUSCAgICAgICAgICAgICAgID0KLQogIyBJZiBzZXQgdG8gWUVTIHRoZSBpbmhlcml0YW5jZSBhbmQgY29sbGFib3JhdGlvbiBncmFwaHMgd2lsbCBoaWRlIGluaGVyaXRhbmNlCiAjIGFuZCB1c2FnZSByZWxhdGlvbnMgaWYgdGhlIHRhcmdldCBpcyB1bmRvY3VtZW50ZWQgb3IgaXMgbm90IGEgY2xhc3MuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAKIEhJREVfVU5ET0NfUkVMQVRJT05TICAgPSBZRVMKIAotIyBJZiB5b3Ugc2V0IHRoZSBIQVZFX0RPVCB0YWcgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGFzc3VtZSB0aGUgZG90IHRvb2wgaXMKKyMgSWYgeW91IHNldCB0aGUgSEFWRV9ET1QgdGFnIHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCBhc3N1bWUgdGhlIGRvdCB0b29sIGlzCiAjIGF2YWlsYWJsZSBmcm9tIHRoZSBwYXRoLiBUaGlzIHRvb2wgaXMgcGFydCBvZiBHcmFwaHZpeiAoc2VlOgotIyBodHRwOi8vd3d3LmdyYXBodml6Lm9yZy8pLCBhIGdyYXBoIHZpc3VhbGl6YXRpb24gdG9vbGtpdCBmcm9tIEFUJlQgYW5kIEx1Y2VudAorIyBodHRwczovL3d3dy5ncmFwaHZpei5vcmcvKSwgYSBncmFwaCB2aXN1YWxpemF0aW9uIHRvb2xraXQgZnJvbSBBVCZUIGFuZCBMdWNlbnQKICMgQmVsbCBMYWJzLiBUaGUgb3RoZXIgb3B0aW9ucyBpbiB0aGlzIHNlY3Rpb24gaGF2ZSBubyBlZmZlY3QgaWYgdGhpcyBvcHRpb24gaXMKICMgc2V0IHRvIE5PCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBOTy4KIAogSEFWRV9ET1QgICAgICAgICAgICAgICA9IE5PCiAKLSMgVGhlIERPVF9OVU1fVEhSRUFEUyBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBkb3QgaW52b2NhdGlvbnMgZG94eWdlbiBpcyBhbGxvd2VkCi0jIHRvIHJ1biBpbiBwYXJhbGxlbC4gV2hlbiBzZXQgdG8gMCBkb3h5Z2VuIHdpbGwgYmFzZSB0aGlzIG9uIHRoZSBudW1iZXIgb2YKKyMgVGhlIERPVF9OVU1fVEhSRUFEUyBzcGVjaWZpZXMgdGhlIG51bWJlciBvZiBkb3QgaW52b2NhdGlvbnMgRG94eWdlbiBpcyBhbGxvd2VkCisjIHRvIHJ1biBpbiBwYXJhbGxlbC4gV2hlbiBzZXQgdG8gMCBEb3h5Z2VuIHdpbGwgYmFzZSB0aGlzIG9uIHRoZSBudW1iZXIgb2YKICMgcHJvY2Vzc29ycyBhdmFpbGFibGUgaW4gdGhlIHN5c3RlbS4gWW91IGNhbiBzZXQgaXQgZXhwbGljaXRseSB0byBhIHZhbHVlCiAjIGxhcmdlciB0aGFuIDAgdG8gZ2V0IGNvbnRyb2wgb3ZlciB0aGUgYmFsYW5jZSBiZXR3ZWVuIENQVSBsb2FkIGFuZCBwcm9jZXNzaW5nCiAjIHNwZWVkLgpAQCAtMjI2NSw1NSArMjYxNiw4MyBAQAogCiBET1RfTlVNX1RIUkVBRFMgICAgICAgID0gMAogCi0jIFdoZW4geW91IHdhbnQgYSBkaWZmZXJlbnRseSBsb29raW5nIGZvbnQgaW4gdGhlIGRvdCBmaWxlcyB0aGF0IGRveHlnZW4KLSMgZ2VuZXJhdGVzIHlvdSBjYW4gc3BlY2lmeSB0aGUgZm9udCBuYW1lIHVzaW5nIERPVF9GT05UTkFNRS4gWW91IG5lZWQgdG8gbWFrZQotIyBzdXJlIGRvdCBpcyBhYmxlIHRvIGZpbmQgdGhlIGZvbnQsIHdoaWNoIGNhbiBiZSBkb25lIGJ5IHB1dHRpbmcgaXQgaW4gYQotIyBzdGFuZGFyZCBsb2NhdGlvbiBvciBieSBzZXR0aW5nIHRoZSBET1RGT05UUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvciBieQotIyBzZXR0aW5nIERPVF9GT05UUEFUSCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGhlIGZvbnQuCi0jIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBIZWx2ZXRpY2EuCisjIERPVF9DT01NT05fQVRUUiBpcyBjb21tb24gYXR0cmlidXRlcyBmb3Igbm9kZXMsIGVkZ2VzIGFuZCBsYWJlbHMgb2YKKyMgc3ViZ3JhcGhzLiBXaGVuIHlvdSB3YW50IGEgZGlmZmVyZW50bHkgbG9va2luZyBmb250IGluIHRoZSBkb3QgZmlsZXMgdGhhdAorIyBEb3h5Z2VuIGdlbmVyYXRlcyB5b3UgY2FuIHNwZWNpZnkgZm9udG5hbWUsIGZvbnRjb2xvciBhbmQgZm9udHNpemUgYXR0cmlidXRlcy4KKyMgRm9yIGRldGFpbHMgcGxlYXNlIHNlZSA8YSBocmVmPWh0dHBzOi8vZ3JhcGh2aXoub3JnL2RvYy9pbmZvL2F0dHJzLmh0bWw+Tm9kZSwKKyMgRWRnZSBhbmQgR3JhcGggQXR0cmlidXRlcyBzcGVjaWZpY2F0aW9uPC9hPiBZb3UgbmVlZCB0byBtYWtlIHN1cmUgZG90IGlzIGFibGUKKyMgdG8gZmluZCB0aGUgZm9udCwgd2hpY2ggY2FuIGJlIGRvbmUgYnkgcHV0dGluZyBpdCBpbiBhIHN0YW5kYXJkIGxvY2F0aW9uIG9yIGJ5CisjIHNldHRpbmcgdGhlIERPVEZPTlRQQVRIIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIGJ5IHNldHRpbmcgRE9UX0ZPTlRQQVRIIHRvIHRoZQorIyBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgZm9udC4gRGVmYXVsdCBncmFwaHZpeiBmb250c2l6ZSBpcyAxNC4KKyMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IGZvbnRuYW1lPUhlbHZldGljYSxmb250c2l6ZT0xMC4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKLURPVF9GT05UTkFNRSAgICAgICAgICAgPSBIZWx2ZXRpY2EKK0RPVF9DT01NT05fQVRUUiAgICAgICAgPSAiZm9udG5hbWU9SGVsdmV0aWNhLGZvbnRzaXplPTEwIgogCi0jIFRoZSBET1RfRk9OVFNJWkUgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgc2l6ZSAoaW4gcG9pbnRzKSBvZiB0aGUgZm9udCBvZgotIyBkb3QgZ3JhcGhzLgotIyBNaW5pbXVtIHZhbHVlOiA0LCBtYXhpbXVtIHZhbHVlOiAyNCwgZGVmYXVsdCB2YWx1ZTogMTAuCisjIERPVF9FREdFX0FUVFIgaXMgY29uY2F0ZW5hdGVkIHdpdGggRE9UX0NPTU1PTl9BVFRSLiBGb3IgZWxlZ2FudCBzdHlsZSB5b3UgY2FuCisjIGFkZCAnYXJyb3doZWFkPW9wZW4sIGFycm93dGFpbD1vcGVuLCBhcnJvd3NpemU9MC41Jy4gPGEKKyMgaHJlZj1odHRwczovL2dyYXBodml6Lm9yZy9kb2MvaW5mby9hcnJvd3MuaHRtbD5Db21wbGV0ZSBkb2N1bWVudGF0aW9uIGFib3V0CisjIGFycm93cyBzaGFwZXMuPC9hPgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogbGFiZWxmb250bmFtZT1IZWx2ZXRpY2EsbGFiZWxmb250c2l6ZT0xMC4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKLURPVF9GT05UU0laRSAgICAgICAgICAgPSAxMAorRE9UX0VER0VfQVRUUiAgICAgICAgICA9ICJsYWJlbGZvbnRuYW1lPUhlbHZldGljYSxsYWJlbGZvbnRzaXplPTEwIgogCi0jIEJ5IGRlZmF1bHQgZG94eWdlbiB3aWxsIHRlbGwgZG90IHRvIHVzZSB0aGUgZGVmYXVsdCBmb250IGFzIHNwZWNpZmllZCB3aXRoCi0jIERPVF9GT05UTkFNRS4gSWYgeW91IHNwZWNpZnkgYSBkaWZmZXJlbnQgZm9udCB1c2luZyBET1RfRk9OVE5BTUUgeW91IGNhbiBzZXQKLSMgdGhlIHBhdGggd2hlcmUgZG90IGNhbiBmaW5kIGl0IHVzaW5nIHRoaXMgdGFnLgorIyBET1RfTk9ERV9BVFRSIGlzIGNvbmNhdGVuYXRlZCB3aXRoIERPVF9DT01NT05fQVRUUi4gRm9yIHZpZXcgd2l0aG91dCBib3hlcworIyBhcm91bmQgbm9kZXMgc2V0ICdzaGFwZT1wbGFpbicgb3IgJ3NoYXBlPXBsYWludGV4dCcgPGEKKyMgaHJlZj1odHRwczovL3d3dy5ncmFwaHZpei5vcmcvZG9jL2luZm8vc2hhcGVzLmh0bWw+U2hhcGVzIHNwZWNpZmljYXRpb248L2E+CisjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBzaGFwZT1ib3gsaGVpZ2h0PTAuMix3aWR0aD0wLjQuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitET1RfTk9ERV9BVFRSICAgICAgICAgID0gInNoYXBlPWJveCxoZWlnaHQ9MC4yLHdpZHRoPTAuNCIKKworIyBZb3UgY2FuIHNldCB0aGUgcGF0aCB3aGVyZSBkb3QgY2FuIGZpbmQgZm9udCBzcGVjaWZpZWQgd2l0aCBmb250bmFtZSBpbgorIyBET1RfQ09NTU9OX0FUVFIgYW5kIG90aGVycyBkb3QgYXR0cmlidXRlcy4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIERPVF9GT05UUEFUSCAgICAgICAgICAgPQogCi0jIElmIHRoZSBDTEFTU19HUkFQSCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvcgotIyBlYWNoIGRvY3VtZW50ZWQgY2xhc3Mgc2hvd2luZyB0aGUgZGlyZWN0IGFuZCBpbmRpcmVjdCBpbmhlcml0YW5jZSByZWxhdGlvbnMuCi0jIFNldHRpbmcgdGhpcyB0YWcgdG8gWUVTIHdpbGwgZm9yY2UgdGhlIENMQVNTX0RJQUdSQU1TIHRhZyB0byBOTy4KKyMgSWYgdGhlIENMQVNTX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIG9yIEdSQVBIIG9yIEJVSUxUSU4gdGhlbiBEb3h5Z2VuIHdpbGwKKyMgZ2VuZXJhdGUgYSBncmFwaCBmb3IgZWFjaCBkb2N1bWVudGVkIGNsYXNzIHNob3dpbmcgdGhlIGRpcmVjdCBhbmQgaW5kaXJlY3QKKyMgaW5oZXJpdGFuY2UgcmVsYXRpb25zLiBJbiBjYXNlIHRoZSBDTEFTU19HUkFQSCB0YWcgaXMgc2V0IHRvIFlFUyBvciBHUkFQSCBhbmQKKyMgSEFWRV9ET1QgaXMgZW5hYmxlZCBhcyB3ZWxsLCB0aGVuIGRvdCB3aWxsIGJlIHVzZWQgdG8gZHJhdyB0aGUgZ3JhcGguIEluIGNhc2UKKyMgdGhlIENMQVNTX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIGFuZCBIQVZFX0RPVCBpcyBkaXNhYmxlZCBvciBpZiB0aGUKKyMgQ0xBU1NfR1JBUEggdGFnIGlzIHNldCB0byBCVUlMVElOLCB0aGVuIHRoZSBidWlsdC1pbiBnZW5lcmF0b3Igd2lsbCBiZSB1c2VkLgorIyBJZiB0aGUgQ0xBU1NfR1JBUEggdGFnIGlzIHNldCB0byBURVhUIHRoZSBkaXJlY3QgYW5kIGluZGlyZWN0IGluaGVyaXRhbmNlCisjIHJlbGF0aW9ucyB3aWxsIGJlIHNob3duIGFzIHRleHRzIC8gbGlua3MuIEV4cGxpY2l0IGVuYWJsaW5nIGFuIGluaGVyaXRhbmNlCisjIGdyYXBoIG9yIGNob29zaW5nIGEgZGlmZmVyZW50IHJlcHJlc2VudGF0aW9uIGZvciBhbiBpbmhlcml0YW5jZSBncmFwaCBvZiBhCisjIHNwZWNpZmljIGNsYXNzLCBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IG1lYW5zIG9mIHRoZSBjb21tYW5kIFxpbmhlcml0YW5jZWdyYXBoLgorIyBEaXNhYmxpbmcgYW4gaW5oZXJpdGFuY2UgZ3JhcGggY2FuIGJlIGFjY29tcGxpc2hlZCBieSBtZWFucyBvZiB0aGUgY29tbWFuZAorIyBcaGlkZWluaGVyaXRhbmNlZ3JhcGguCisjIFBvc3NpYmxlIHZhbHVlcyBhcmU6IE5PLCBZRVMsIFRFWFQsIEdSQVBIIGFuZCBCVUlMVElOLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgotIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogQ0xBU1NfR1JBUEggICAgICAgICAgICA9IFlFUwogCi0jIElmIHRoZSBDT0xMQUJPUkFUSU9OX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEKKyMgSWYgdGhlIENPTExBQk9SQVRJT05fR1JBUEggdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYQogIyBncmFwaCBmb3IgZWFjaCBkb2N1bWVudGVkIGNsYXNzIHNob3dpbmcgdGhlIGRpcmVjdCBhbmQgaW5kaXJlY3QgaW1wbGVtZW50YXRpb24KICMgZGVwZW5kZW5jaWVzIChpbmhlcml0YW5jZSwgY29udGFpbm1lbnQsIGFuZCBjbGFzcyByZWZlcmVuY2VzIHZhcmlhYmxlcykgb2YgdGhlCi0jIGNsYXNzIHdpdGggb3RoZXIgZG9jdW1lbnRlZCBjbGFzc2VzLgorIyBjbGFzcyB3aXRoIG90aGVyIGRvY3VtZW50ZWQgY2xhc3Nlcy4gRXhwbGljaXQgZW5hYmxpbmcgYSBjb2xsYWJvcmF0aW9uIGdyYXBoLAorIyB3aGVuIENPTExBQk9SQVRJT05fR1JBUEggaXMgc2V0IHRvIE5PLCBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IG1lYW5zIG9mIHRoZQorIyBjb21tYW5kIFxjb2xsYWJvcmF0aW9uZ3JhcGguIERpc2FibGluZyBhIGNvbGxhYm9yYXRpb24gZ3JhcGggY2FuIGJlCisjIGFjY29tcGxpc2hlZCBieSBtZWFucyBvZiB0aGUgY29tbWFuZCBcaGlkZWNvbGxhYm9yYXRpb25ncmFwaC4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIENPTExBQk9SQVRJT05fR1JBUEggICAgPSBZRVMKIAotIyBJZiB0aGUgR1JPVVBfR1JBUEhTIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yCi0jIGdyb3Vwcywgc2hvd2luZyB0aGUgZGlyZWN0IGdyb3VwcyBkZXBlbmRlbmNpZXMuCisjIElmIHRoZSBHUk9VUF9HUkFQSFMgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBncmFwaCBmb3IKKyMgZ3JvdXBzLCBzaG93aW5nIHRoZSBkaXJlY3QgZ3JvdXBzIGRlcGVuZGVuY2llcy4gRXhwbGljaXQgZW5hYmxpbmcgYSBncm91cAorIyBkZXBlbmRlbmN5IGdyYXBoLCB3aGVuIEdST1VQX0dSQVBIUyBpcyBzZXQgdG8gTk8sIGNhbiBiZSBhY2NvbXBsaXNoZWQgYnkgbWVhbnMKKyMgb2YgdGhlIGNvbW1hbmQgXGdyb3VwZ3JhcGguIERpc2FibGluZyBhIGRpcmVjdG9yeSBncmFwaCBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5CisjIG1lYW5zIG9mIHRoZSBjb21tYW5kIFxoaWRlZ3JvdXBncmFwaC4gU2VlIGFsc28gdGhlIGNoYXB0ZXIgR3JvdXBpbmcgaW4gdGhlCisjIG1hbnVhbC4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IFlFUy4KICMgVGhpcyB0YWcgcmVxdWlyZXMgdGhhdCB0aGUgdGFnIEhBVkVfRE9UIGlzIHNldCB0byBZRVMuCiAKIEdST1VQX0dSQVBIUyAgICAgICAgICAgPSBZRVMKIAotIyBJZiB0aGUgVU1MX0xPT0sgdGFnIGlzIHNldCB0byBZRVMsIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBpbmhlcml0YW5jZSBhbmQKKyMgSWYgdGhlIFVNTF9MT09LIHRhZyBpcyBzZXQgdG8gWUVTLCBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgaW5oZXJpdGFuY2UgYW5kCiAjIGNvbGxhYm9yYXRpb24gZGlhZ3JhbXMgaW4gYSBzdHlsZSBzaW1pbGFyIHRvIHRoZSBPTUcncyBVbmlmaWVkIE1vZGVsaW5nCiAjIExhbmd1YWdlLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCkBAIC0yMzMwLDEwICsyNzA5LDMyIEBACiAjIGJ1dCBpZiB0aGUgbnVtYmVyIGV4Y2VlZHMgMTUsIHRoZSB0b3RhbCBhbW91bnQgb2YgZmllbGRzIHNob3duIGlzIGxpbWl0ZWQgdG8KICMgMTAuCiAjIE1pbmltdW0gdmFsdWU6IDAsIG1heGltdW0gdmFsdWU6IDEwMCwgZGVmYXVsdCB2YWx1ZTogMTAuCi0jIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgVU1MX0xPT0sgaXMgc2V0IHRvIFlFUy4KIAogVU1MX0xJTUlUX05VTV9GSUVMRFMgICA9IDEwCiAKKyMgSWYgdGhlIERPVF9VTUxfREVUQUlMUyB0YWcgaXMgc2V0IHRvIE5PLCBEb3h5Z2VuIHdpbGwgc2hvdyBhdHRyaWJ1dGVzIGFuZAorIyBtZXRob2RzIHdpdGhvdXQgdHlwZXMgYW5kIGFyZ3VtZW50cyBpbiB0aGUgVU1MIGdyYXBocy4gSWYgdGhlIERPVF9VTUxfREVUQUlMUworIyB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIGFkZCB0eXBlIGFuZCBhcmd1bWVudHMgZm9yIGF0dHJpYnV0ZXMgYW5kCisjIG1ldGhvZHMgaW4gdGhlIFVNTCBncmFwaHMuIElmIHRoZSBET1RfVU1MX0RFVEFJTFMgdGFnIGlzIHNldCB0byBOT05FLCBEb3h5Z2VuCisjIHdpbGwgbm90IGdlbmVyYXRlIGZpZWxkcyB3aXRoIGNsYXNzIG1lbWJlciBpbmZvcm1hdGlvbiBpbiB0aGUgVU1MIGdyYXBocy4gVGhlCisjIGNsYXNzIGRpYWdyYW1zIHdpbGwgbG9vayBzaW1pbGFyIHRvIHRoZSBkZWZhdWx0IGNsYXNzIGRpYWdyYW1zIGJ1dCB1c2luZyBVTUwKKyMgbm90YXRpb24gZm9yIHRoZSByZWxhdGlvbnNoaXBzLgorIyBQb3NzaWJsZSB2YWx1ZXMgYXJlOiBOTywgWUVTIGFuZCBOT05FLgorIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogTk8uCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBVTUxfTE9PSyBpcyBzZXQgdG8gWUVTLgorCitET1RfVU1MX0RFVEFJTFMgICAgICAgID0gTk8KKworIyBUaGUgRE9UX1dSQVBfVEhSRVNIT0xEIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMKKyMgdG8gZGlzcGxheSBvbiBhIHNpbmdsZSBsaW5lLiBJZiB0aGUgYWN0dWFsIGxpbmUgbGVuZ3RoIGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQKKyMgc2lnbmlmaWNhbnRseSBpdCB3aWxsIGJlIHdyYXBwZWQgYWNyb3NzIG11bHRpcGxlIGxpbmVzLiBTb21lIGhldXJpc3RpY3MgYXJlCisjIGFwcGxpZWQgdG8gYXZvaWQgdWdseSBsaW5lIGJyZWFrcy4KKyMgTWluaW11bSB2YWx1ZTogMCwgbWF4aW11bSB2YWx1ZTogMTAwMCwgZGVmYXVsdCB2YWx1ZTogMTcuCisjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgorCitET1RfV1JBUF9USFJFU0hPTEQgICAgID0gMTcKKwogIyBJZiB0aGUgVEVNUExBVEVfUkVMQVRJT05TIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gdGhlIGluaGVyaXRhbmNlIGFuZAogIyBjb2xsYWJvcmF0aW9uIGdyYXBocyB3aWxsIHNob3cgdGhlIHJlbGF0aW9ucyBiZXR3ZWVuIHRlbXBsYXRlcyBhbmQgdGhlaXIKICMgaW5zdGFuY2VzLgpAQCAtMjM0MywyNCArMjc0NCwyOSBAQAogVEVNUExBVEVfUkVMQVRJT05TICAgICA9IE5PCiAKICMgSWYgdGhlIElOQ0xVREVfR1JBUEgsIEVOQUJMRV9QUkVQUk9DRVNTSU5HIGFuZCBTRUFSQ0hfSU5DTFVERVMgdGFncyBhcmUgc2V0IHRvCi0jIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGdyYXBoIGZvciBlYWNoIGRvY3VtZW50ZWQgZmlsZSBzaG93aW5nIHRoZQorIyBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBncmFwaCBmb3IgZWFjaCBkb2N1bWVudGVkIGZpbGUgc2hvd2luZyB0aGUKICMgZGlyZWN0IGFuZCBpbmRpcmVjdCBpbmNsdWRlIGRlcGVuZGVuY2llcyBvZiB0aGUgZmlsZSB3aXRoIG90aGVyIGRvY3VtZW50ZWQKLSMgZmlsZXMuCisjIGZpbGVzLiBFeHBsaWNpdCBlbmFibGluZyBhbiBpbmNsdWRlIGdyYXBoLCB3aGVuIElOQ0xVREVfR1JBUEggaXMgaXMgc2V0IHRvIE5PLAorIyBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IG1lYW5zIG9mIHRoZSBjb21tYW5kIFxpbmNsdWRlZ3JhcGguIERpc2FibGluZyBhbgorIyBpbmNsdWRlIGdyYXBoIGNhbiBiZSBhY2NvbXBsaXNoZWQgYnkgbWVhbnMgb2YgdGhlIGNvbW1hbmQgXGhpZGVpbmNsdWRlZ3JhcGguCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBJTkNMVURFX0dSQVBIICAgICAgICAgID0gWUVTCiAKICMgSWYgdGhlIElOQ0xVREVEX0JZX0dSQVBILCBFTkFCTEVfUFJFUFJPQ0VTU0lORyBhbmQgU0VBUkNIX0lOQ0xVREVTIHRhZ3MgYXJlCi0jIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBncmFwaCBmb3IgZWFjaCBkb2N1bWVudGVkIGZpbGUgc2hvd2luZworIyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgZ3JhcGggZm9yIGVhY2ggZG9jdW1lbnRlZCBmaWxlIHNob3dpbmcKICMgdGhlIGRpcmVjdCBhbmQgaW5kaXJlY3QgaW5jbHVkZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGZpbGUgd2l0aCBvdGhlciBkb2N1bWVudGVkCi0jIGZpbGVzLgorIyBmaWxlcy4gRXhwbGljaXQgZW5hYmxpbmcgYW4gaW5jbHVkZWQgYnkgZ3JhcGgsIHdoZW4gSU5DTFVERURfQllfR1JBUEggaXMgc2V0CisjIHRvIE5PLCBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IG1lYW5zIG9mIHRoZSBjb21tYW5kIFxpbmNsdWRlZGJ5Z3JhcGguIERpc2FibGluZworIyBhbiBpbmNsdWRlZCBieSBncmFwaCBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IG1lYW5zIG9mIHRoZSBjb21tYW5kCisjIFxoaWRlaW5jbHVkZWRieWdyYXBoLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgogIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogSU5DTFVERURfQllfR1JBUEggICAgICA9IFlFUwogCi0jIElmIHRoZSBDQUxMX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgY2FsbAorIyBJZiB0aGUgQ0FMTF9HUkFQSCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGNhbGwKICMgZGVwZW5kZW5jeSBncmFwaCBmb3IgZXZlcnkgZ2xvYmFsIGZ1bmN0aW9uIG9yIGNsYXNzIG1ldGhvZC4KICMKICMgTm90ZSB0aGF0IGVuYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgc2lnbmlmaWNhbnRseSBpbmNyZWFzZSB0aGUgdGltZSBvZiBhIHJ1bi4KQEAgLTIzNzIsNyArMjc3OCw3IEBACiAKIENBTExfR1JBUEggICAgICAgICAgICAgPSBOTwogCi0jIElmIHRoZSBDQUxMRVJfR1JBUEggdGFnIGlzIHNldCB0byBZRVMgdGhlbiBkb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBjYWxsZXIKKyMgSWYgdGhlIENBTExFUl9HUkFQSCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIGNhbGxlcgogIyBkZXBlbmRlbmN5IGdyYXBoIGZvciBldmVyeSBnbG9iYWwgZnVuY3Rpb24gb3IgY2xhc3MgbWV0aG9kLgogIwogIyBOb3RlIHRoYXQgZW5hYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBzaWduaWZpY2FudGx5IGluY3JlYXNlIHRoZSB0aW1lIG9mIGEgcnVuLgpAQCAtMjM4NCwyNiArMjc5MCwzNiBAQAogCiBDQUxMRVJfR1JBUEggICAgICAgICAgID0gTk8KIAotIyBJZiB0aGUgR1JBUEhJQ0FMX0hJRVJBUkNIWSB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBncmFwaGljYWwKKyMgSWYgdGhlIEdSQVBISUNBTF9ISUVSQVJDSFkgdGFnIGlzIHNldCB0byBZRVMgdGhlbiBEb3h5Z2VuIHdpbGwgZ3JhcGhpY2FsCiAjIGhpZXJhcmNoeSBvZiBhbGwgY2xhc3NlcyBpbnN0ZWFkIG9mIGEgdGV4dHVhbCBvbmUuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBHUkFQSElDQUxfSElFUkFSQ0hZICAgID0gWUVTCiAKLSMgSWYgdGhlIERJUkVDVE9SWV9HUkFQSCB0YWcgaXMgc2V0IHRvIFlFUyB0aGVuIGRveHlnZW4gd2lsbCBzaG93IHRoZQorIyBJZiB0aGUgRElSRUNUT1JZX0dSQVBIIHRhZyBpcyBzZXQgdG8gWUVTIHRoZW4gRG94eWdlbiB3aWxsIHNob3cgdGhlCiAjIGRlcGVuZGVuY2llcyBhIGRpcmVjdG9yeSBoYXMgb24gb3RoZXIgZGlyZWN0b3JpZXMgaW4gYSBncmFwaGljYWwgd2F5LiBUaGUKICMgZGVwZW5kZW5jeSByZWxhdGlvbnMgYXJlIGRldGVybWluZWQgYnkgdGhlICNpbmNsdWRlIHJlbGF0aW9ucyBiZXR3ZWVuIHRoZQotIyBmaWxlcyBpbiB0aGUgZGlyZWN0b3JpZXMuCisjIGZpbGVzIGluIHRoZSBkaXJlY3Rvcmllcy4gRXhwbGljaXQgZW5hYmxpbmcgYSBkaXJlY3RvcnkgZ3JhcGgsIHdoZW4KKyMgRElSRUNUT1JZX0dSQVBIIGlzIHNldCB0byBOTywgY2FuIGJlIGFjY29tcGxpc2hlZCBieSBtZWFucyBvZiB0aGUgY29tbWFuZAorIyBcZGlyZWN0b3J5Z3JhcGguIERpc2FibGluZyBhIGRpcmVjdG9yeSBncmFwaCBjYW4gYmUgYWNjb21wbGlzaGVkIGJ5IG1lYW5zIG9mCisjIHRoZSBjb21tYW5kIFxoaWRlZGlyZWN0b3J5Z3JhcGguCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBESVJFQ1RPUllfR1JBUEggICAgICAgID0gWUVTCiAKKyMgVGhlIERJUl9HUkFQSF9NQVhfREVQVEggdGFnIGNhbiBiZSB1c2VkIHRvIGxpbWl0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBsZXZlbHMKKyMgb2YgY2hpbGQgZGlyZWN0b3JpZXMgZ2VuZXJhdGVkIGluIGRpcmVjdG9yeSBkZXBlbmRlbmN5IGdyYXBocyBieSBkb3QuCisjIE1pbmltdW0gdmFsdWU6IDEsIG1heGltdW0gdmFsdWU6IDI1LCBkZWZhdWx0IHZhbHVlOiAxLgorIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgRElSRUNUT1JZX0dSQVBIIGlzIHNldCB0byBZRVMuCisKK0RJUl9HUkFQSF9NQVhfREVQVEggICAgPSAxCisKICMgVGhlIERPVF9JTUFHRV9GT1JNQVQgdGFnIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgaW1hZ2UgZm9ybWF0IG9mIHRoZSBpbWFnZXMKICMgZ2VuZXJhdGVkIGJ5IGRvdC4gRm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBpbWFnZSBmb3JtYXRzIHNlZSB0aGUgc2VjdGlvbgogIyBvdXRwdXQgZm9ybWF0cyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZG90IHRvb2wgKEdyYXBodml6IChzZWU6Ci0jIGh0dHA6Ly93d3cuZ3JhcGh2aXoub3JnLykpLgorIyBodHRwczovL3d3dy5ncmFwaHZpei5vcmcvKSkuCiAjIE5vdGU6IElmIHlvdSBjaG9vc2Ugc3ZnIHlvdSBuZWVkIHRvIHNldCBIVE1MX0ZJTEVfRVhURU5TSU9OIHRvIHhodG1sIGluIG9yZGVyCiAjIHRvIG1ha2UgdGhlIFNWRyBmaWxlcyB2aXNpYmxlIGluIElFIDkrIChvdGhlciBicm93c2VycyBkbyBub3QgaGF2ZSB0aGlzCiAjIHJlcXVpcmVtZW50KS4KQEAgLTI0NDAsMTEgKzI4NTYsMTIgQEAKIAogRE9URklMRV9ESVJTICAgICAgICAgICA9CiAKLSMgVGhlIE1TQ0ZJTEVfRElSUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBkaXJlY3RvcmllcyB0aGF0Ci0jIGNvbnRhaW4gbXNjIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChzZWUgdGhlIFxtc2NmaWxlCi0jIGNvbW1hbmQpLgorIyBZb3UgY2FuIGluY2x1ZGUgZGlhZ3JhbXMgbWFkZSB3aXRoIGRpYSBpbiBEb3h5Z2VuIGRvY3VtZW50YXRpb24uIERveHlnZW4gd2lsbAorIyB0aGVuIHJ1biBkaWEgdG8gcHJvZHVjZSB0aGUgZGlhZ3JhbSBhbmQgaW5zZXJ0IGl0IGluIHRoZSBkb2N1bWVudGF0aW9uLiBUaGUKKyMgRElBX1BBVEggdGFnIGFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBkaWEgYmluYXJ5IHJlc2lkZXMuCisjIElmIGxlZnQgZW1wdHkgZGlhIGlzIGFzc3VtZWQgdG8gYmUgZm91bmQgaW4gdGhlIGRlZmF1bHQgc2VhcmNoIHBhdGguCiAKLU1TQ0ZJTEVfRElSUyAgICAgICAgICAgPQorRElBX1BBVEggICAgICAgICAgICAgICA9CiAKICMgVGhlIERJQUZJTEVfRElSUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBkaXJlY3RvcmllcyB0aGF0CiAjIGNvbnRhaW4gZGlhIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChzZWUgdGhlIFxkaWFmaWxlCkBAIC0yNDUyLDI4ICsyODY5LDI4IEBACiAKIERJQUZJTEVfRElSUyAgICAgICAgICAgPQogCi0jIFdoZW4gdXNpbmcgcGxhbnR1bWwsIHRoZSBQTEFOVFVNTF9KQVJfUEFUSCB0YWcgc2hvdWxkIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUKLSMgcGF0aCB3aGVyZSBqYXZhIGNhbiBmaW5kIHRoZSBwbGFudHVtbC5qYXIgZmlsZS4gSWYgbGVmdCBibGFuaywgaXQgaXMgYXNzdW1lZAotIyBQbGFudFVNTCBpcyBub3QgdXNlZCBvciBjYWxsZWQgZHVyaW5nIGEgcHJlcHJvY2Vzc2luZyBzdGVwLiBEb3h5Z2VuIHdpbGwKLSMgZ2VuZXJhdGUgYSB3YXJuaW5nIHdoZW4gaXQgZW5jb3VudGVycyBhIFxzdGFydHVtbCBjb21tYW5kIGluIHRoaXMgY2FzZSBhbmQKLSMgd2lsbCBub3QgZ2VuZXJhdGUgb3V0cHV0IGZvciB0aGUgZGlhZ3JhbS4KKyMgV2hlbiB1c2luZyBQbGFudFVNTCwgdGhlIFBMQU5UVU1MX0pBUl9QQVRIIHRhZyBzaG91bGQgYmUgdXNlZCB0byBzcGVjaWZ5IHRoZQorIyBwYXRoIHdoZXJlIGphdmEgY2FuIGZpbmQgdGhlIHBsYW50dW1sLmphciBmaWxlIG9yIHRvIHRoZSBmaWxlbmFtZSBvZiBqYXIgZmlsZQorIyB0byBiZSB1c2VkLiBJZiBsZWZ0IGJsYW5rLCBpdCBpcyBhc3N1bWVkIFBsYW50VU1MIGlzIG5vdCB1c2VkIG9yIGNhbGxlZCBkdXJpbmcKKyMgYSBwcmVwcm9jZXNzaW5nIHN0ZXAuIERveHlnZW4gd2lsbCBnZW5lcmF0ZSBhIHdhcm5pbmcgd2hlbiBpdCBlbmNvdW50ZXJzIGEKKyMgXHN0YXJ0dW1sIGNvbW1hbmQgaW4gdGhpcyBjYXNlIGFuZCB3aWxsIG5vdCBnZW5lcmF0ZSBvdXRwdXQgZm9yIHRoZSBkaWFncmFtLgogCiBQTEFOVFVNTF9KQVJfUEFUSCAgICAgID0KIAotIyBXaGVuIHVzaW5nIHBsYW50dW1sLCB0aGUgUExBTlRVTUxfQ0ZHX0ZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYQotIyBjb25maWd1cmF0aW9uIGZpbGUgZm9yIHBsYW50dW1sLgorIyBXaGVuIHVzaW5nIFBsYW50VU1MLCB0aGUgUExBTlRVTUxfQ0ZHX0ZJTEUgdGFnIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYQorIyBjb25maWd1cmF0aW9uIGZpbGUgZm9yIFBsYW50VU1MLgogCiBQTEFOVFVNTF9DRkdfRklMRSAgICAgID0KIAotIyBXaGVuIHVzaW5nIHBsYW50dW1sLCB0aGUgc3BlY2lmaWVkIHBhdGhzIGFyZSBzZWFyY2hlZCBmb3IgZmlsZXMgc3BlY2lmaWVkIGJ5Ci0jIHRoZSAhaW5jbHVkZSBzdGF0ZW1lbnQgaW4gYSBwbGFudHVtbCBibG9jay4KKyMgV2hlbiB1c2luZyBQbGFudFVNTCwgdGhlIHNwZWNpZmllZCBwYXRocyBhcmUgc2VhcmNoZWQgZm9yIGZpbGVzIHNwZWNpZmllZCBieQorIyB0aGUgIWluY2x1ZGUgc3RhdGVtZW50IGluIGEgUGxhbnRVTUwgYmxvY2suCiAKIFBMQU5UVU1MX0lOQ0xVREVfUEFUSCAgPQogCiAjIFRoZSBET1RfR1JBUEhfTUFYX05PREVTIHRhZyBjYW4gYmUgdXNlZCB0byBzZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIG5vZGVzCiAjIHRoYXQgd2lsbCBiZSBzaG93biBpbiB0aGUgZ3JhcGguIElmIHRoZSBudW1iZXIgb2Ygbm9kZXMgaW4gYSBncmFwaCBiZWNvbWVzCi0jIGxhcmdlciB0aGFuIHRoaXMgdmFsdWUsIGRveHlnZW4gd2lsbCB0cnVuY2F0ZSB0aGUgZ3JhcGgsIHdoaWNoIGlzIHZpc3VhbGl6ZWQKLSMgYnkgcmVwcmVzZW50aW5nIGEgbm9kZSBhcyBhIHJlZCBib3guIE5vdGUgdGhhdCBkb3h5Z2VuIGlmIHRoZSBudW1iZXIgb2YgZGlyZWN0CisjIGxhcmdlciB0aGFuIHRoaXMgdmFsdWUsIERveHlnZW4gd2lsbCB0cnVuY2F0ZSB0aGUgZ3JhcGgsIHdoaWNoIGlzIHZpc3VhbGl6ZWQKKyMgYnkgcmVwcmVzZW50aW5nIGEgbm9kZSBhcyBhIHJlZCBib3guIE5vdGUgdGhhdCBpZiB0aGUgbnVtYmVyIG9mIGRpcmVjdAogIyBjaGlsZHJlbiBvZiB0aGUgcm9vdCBub2RlIGluIGEgZ3JhcGggaXMgYWxyZWFkeSBsYXJnZXIgdGhhbgogIyBET1RfR1JBUEhfTUFYX05PREVTIHRoZW4gdGhlIGdyYXBoIHdpbGwgbm90IGJlIHNob3duIGF0IGFsbC4gQWxzbyBub3RlIHRoYXQKICMgdGhlIHNpemUgb2YgYSBncmFwaCBjYW4gYmUgZnVydGhlciByZXN0cmljdGVkIGJ5IE1BWF9ET1RfR1JBUEhfREVQVEguCkBAIC0yNDk0LDE4ICsyOTExLDYgQEAKIAogTUFYX0RPVF9HUkFQSF9ERVBUSCAgICA9IDEwMDAKIAotIyBTZXQgdGhlIERPVF9UUkFOU1BBUkVOVCB0YWcgdG8gWUVTIHRvIGdlbmVyYXRlIGltYWdlcyB3aXRoIGEgdHJhbnNwYXJlbnQKLSMgYmFja2dyb3VuZC4gVGhpcyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LCBiZWNhdXNlIGRvdCBvbiBXaW5kb3dzIGRvZXMgbm90IHNlZW0KLSMgdG8gc3VwcG9ydCB0aGlzIG91dCBvZiB0aGUgYm94LgotIwotIyBXYXJuaW5nOiBEZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtIHVzZWQsIGVuYWJsaW5nIHRoaXMgb3B0aW9uIG1heSBsZWFkIHRvCi0jIGJhZGx5IGFudGktYWxpYXNlZCBsYWJlbHMgb24gdGhlIGVkZ2VzIG9mIGEgZ3JhcGggKGkuZS4gdGhleSBiZWNvbWUgaGFyZCB0bwotIyByZWFkKS4KLSMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgotIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KLQotRE9UX1RSQU5TUEFSRU5UICAgICAgICA9IE5PCi0KICMgU2V0IHRoZSBET1RfTVVMVElfVEFSR0VUUyB0YWcgdG8gWUVTIHRvIGFsbG93IGRvdCB0byBnZW5lcmF0ZSBtdWx0aXBsZSBvdXRwdXQKICMgZmlsZXMgaW4gb25lIHJ1biAoaS5lLiBtdWx0aXBsZSAtbyBhbmQgLVQgb3B0aW9ucyBvbiB0aGUgY29tbWFuZCBsaW5lKS4gVGhpcwogIyBtYWtlcyBkb3QgcnVuIGZhc3RlciwgYnV0IHNpbmNlIG9ubHkgbmV3ZXIgdmVyc2lvbnMgb2YgZG90ICg+MS44LjEwKSBzdXBwb3J0CkBAIC0yNTE1LDE3ICsyOTIwLDM3IEBACiAKIERPVF9NVUxUSV9UQVJHRVRTICAgICAgPSBOTwogCi0jIElmIHRoZSBHRU5FUkFURV9MRUdFTkQgdGFnIGlzIHNldCB0byBZRVMgZG94eWdlbiB3aWxsIGdlbmVyYXRlIGEgbGVnZW5kIHBhZ2UKKyMgSWYgdGhlIEdFTkVSQVRFX0xFR0VORCB0YWcgaXMgc2V0IHRvIFlFUyBEb3h5Z2VuIHdpbGwgZ2VuZXJhdGUgYSBsZWdlbmQgcGFnZQogIyBleHBsYWluaW5nIHRoZSBtZWFuaW5nIG9mIHRoZSB2YXJpb3VzIGJveGVzIGFuZCBhcnJvd3MgaW4gdGhlIGRvdCBnZW5lcmF0ZWQKICMgZ3JhcGhzLgorIyBOb3RlOiBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IFVNTF9MT09LIGlzbid0IHNldCwgaS5lLiB0aGUgRG94eWdlbiBpbnRlcm5hbAorIyBncmFwaGljYWwgcmVwcmVzZW50YXRpb24gZm9yIGluaGVyaXRhbmNlIGFuZCBjb2xsYWJvcmF0aW9uIGRpYWdyYW1zIGlzIHVzZWQuCiAjIFRoZSBkZWZhdWx0IHZhbHVlIGlzOiBZRVMuCiAjIFRoaXMgdGFnIHJlcXVpcmVzIHRoYXQgdGhlIHRhZyBIQVZFX0RPVCBpcyBzZXQgdG8gWUVTLgogCiBHRU5FUkFURV9MRUdFTkQgICAgICAgID0gWUVTCiAKLSMgSWYgdGhlIERPVF9DTEVBTlVQIHRhZyBpcyBzZXQgdG8gWUVTLCBkb3h5Z2VuIHdpbGwgcmVtb3ZlIHRoZSBpbnRlcm1lZGlhdGUgZG90CisjIElmIHRoZSBET1RfQ0xFQU5VUCB0YWcgaXMgc2V0IHRvIFlFUywgRG94eWdlbiB3aWxsIHJlbW92ZSB0aGUgaW50ZXJtZWRpYXRlCiAjIGZpbGVzIHRoYXQgYXJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHZhcmlvdXMgZ3JhcGhzLgorIworIyBOb3RlOiBUaGlzIHNldHRpbmcgaXMgbm90IG9ubHkgdXNlZCBmb3IgZG90IGZpbGVzIGJ1dCBhbHNvIGZvciBtc2MgdGVtcG9yYXJ5CisjIGZpbGVzLgogIyBUaGUgZGVmYXVsdCB2YWx1ZSBpczogWUVTLgotIyBUaGlzIHRhZyByZXF1aXJlcyB0aGF0IHRoZSB0YWcgSEFWRV9ET1QgaXMgc2V0IHRvIFlFUy4KIAogRE9UX0NMRUFOVVAgICAgICAgICAgICA9IFlFUworCisjIFlvdSBjYW4gZGVmaW5lIG1lc3NhZ2Ugc2VxdWVuY2UgY2hhcnRzIHdpdGhpbiBEb3h5Z2VuIGNvbW1lbnRzIHVzaW5nIHRoZSBcbXNjCisjIGNvbW1hbmQuIElmIHRoZSBNU0NHRU5fVE9PTCB0YWcgaXMgbGVmdCBlbXB0eSAodGhlIGRlZmF1bHQpLCB0aGVuIERveHlnZW4gd2lsbAorIyB1c2UgYSBidWlsdC1pbiB2ZXJzaW9uIG9mIG1zY2dlbiB0b29sIHRvIHByb2R1Y2UgdGhlIGNoYXJ0cy4gQWx0ZXJuYXRpdmVseSwKKyMgdGhlIE1TQ0dFTl9UT09MIHRhZyBjYW4gYWxzbyBzcGVjaWZ5IHRoZSBuYW1lIGFuIGV4dGVybmFsIHRvb2wuIEZvciBpbnN0YW5jZSwKKyMgc3BlY2lmeWluZyBwcm9nIGFzIHRoZSB2YWx1ZSwgRG94eWdlbiB3aWxsIGNhbGwgdGhlIHRvb2wgYXMgcHJvZyAtVAorIyA8b3V0ZmlsZV9mb3JtYXQ+IC1vIDxvdXRwdXRmaWxlPiA8aW5wdXRmaWxlPi4gVGhlIGV4dGVybmFsIHRvb2wgc2hvdWxkIHN1cHBvcnQKKyMgb3V0cHV0IGZpbGUgZm9ybWF0cyAicG5nIiwgImVwcyIsICJzdmciLCBhbmQgImlzbWFwIi4KKworTVNDR0VOX1RPT0wgICAgICAgICAgICA9CisKKyMgVGhlIE1TQ0ZJTEVfRElSUyB0YWcgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBvbmUgb3IgbW9yZSBkaXJlY3RvcmllcyB0aGF0CisjIGNvbnRhaW4gbXNjIGZpbGVzIHRoYXQgYXJlIGluY2x1ZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChzZWUgdGhlIFxtc2NmaWxlCisjIGNvbW1hbmQpLgorCitNU0NGSUxFX0RJUlMgICAgICAgICAgID0KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL2x3aXAuRG94eWZpbGUuY21ha2UuaW4gYi9kb2MvZG94eWdlbi9sd2lwLkRveHlmaWxlLmNtYWtlLmluCmluZGV4IDA2M2MyODguLjdiYzBjZTAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL2x3aXAuRG94eWZpbGUuY21ha2UuaW4KKysrIGIvZG9jL2RveHlnZW4vbHdpcC5Eb3h5ZmlsZS5jbWFrZS5pbgpAQCAtNzYyLDcgKzc2Miw3IEBACiAjIGEgd2FybmluZyBpcyBlbmNvdW50ZXJlZC4KICMgVGhlIGRlZmF1bHQgdmFsdWUgaXM6IE5PLgogCi1XQVJOX0FTX0VSUk9SICAgICAgICAgID0gTk8KK1dBUk5fQVNfRVJST1IgICAgICAgICAgPSBZRVMKIAogIyBUaGUgV0FSTl9GT1JNQVQgdGFnIGRldGVybWluZXMgdGhlIGZvcm1hdCBvZiB0aGUgd2FybmluZyBtZXNzYWdlcyB0aGF0IGRveHlnZW4KICMgY2FuIHByb2R1Y2UuIFRoZSBzdHJpbmcgc2hvdWxkIGNvbnRhaW4gdGhlICRmaWxlLCAkbGluZSwgYW5kICR0ZXh0IHRhZ3MsIHdoaWNoCkBAIC0yMjA1LDEyICsyMjA1LDYgQEAKIAogRVhURVJOQUxfUEFHRVMgICAgICAgICA9IFlFUwogCi0jIFRoZSBQRVJMX1BBVEggc2hvdWxkIGJlIHRoZSBhYnNvbHV0ZSBwYXRoIGFuZCBuYW1lIG9mIHRoZSBwZXJsIHNjcmlwdAotIyBpbnRlcnByZXRlciAoaS5lLiB0aGUgcmVzdWx0IG9mICd3aGljaCBwZXJsJykuCi0jIFRoZSBkZWZhdWx0IGZpbGUgKHdpdGggYWJzb2x1dGUgcGF0aCkgaXM6IC91c3IvYmluL3BlcmwuCi0KLVBFUkxfUEFUSCAgICAgICAgICAgICAgPSAvdXNyL2Jpbi9wZXJsCi0KICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgQ29uZmlndXJhdGlvbiBvcHRpb25zIHJlbGF0ZWQgdG8gdGhlIGRvdCB0b29sCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMjI0LDE1ICsyMjE4LDYgQEAKIAogQ0xBU1NfRElBR1JBTVMgICAgICAgICA9IFlFUwogCi0jIFlvdSBjYW4gZGVmaW5lIG1lc3NhZ2Ugc2VxdWVuY2UgY2hhcnRzIHdpdGhpbiBkb3h5Z2VuIGNvbW1lbnRzIHVzaW5nIHRoZSBcbXNjCi0jIGNvbW1hbmQuIERveHlnZW4gd2lsbCB0aGVuIHJ1biB0aGUgbXNjZ2VuIHRvb2wgKHNlZToKLSMgaHR0cDovL3d3dy5tY3Rlcm5hbi5tZS51ay9tc2NnZW4vKSkgdG8gcHJvZHVjZSB0aGUgY2hhcnQgYW5kIGluc2VydCBpdCBpbiB0aGUKLSMgZG9jdW1lbnRhdGlvbi4gVGhlIE1TQ0dFTl9QQVRIIHRhZyBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIGRpcmVjdG9yeSB3aGVyZQotIyB0aGUgbXNjZ2VuIHRvb2wgcmVzaWRlcy4gSWYgbGVmdCBlbXB0eSB0aGUgdG9vbCBpcyBhc3N1bWVkIHRvIGJlIGZvdW5kIGluIHRoZQotIyBkZWZhdWx0IHNlYXJjaCBwYXRoLgotCi1NU0NHRU5fUEFUSCAgICAgICAgICAgID0KLQogIyBZb3UgY2FuIGluY2x1ZGUgZGlhZ3JhbXMgbWFkZSB3aXRoIGRpYSBpbiBkb3h5Z2VuIGRvY3VtZW50YXRpb24uIERveHlnZW4gd2lsbAogIyB0aGVuIHJ1biBkaWEgdG8gcHJvZHVjZSB0aGUgZGlhZ3JhbSBhbmQgaW5zZXJ0IGl0IGluIHRoZSBkb2N1bWVudGF0aW9uLiBUaGUKICMgRElBX1BBVEggdGFnIGFsbG93cyB5b3UgdG8gc3BlY2lmeSB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBkaWEgYmluYXJ5IHJlc2lkZXMuCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9tYWluX3BhZ2UuaCBiL2RvYy9kb3h5Z2VuL21haW5fcGFnZS5oCmluZGV4IDA2Yjc5MzcuLjQ3NjZjM2EgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL21haW5fcGFnZS5oCisrKyBiL2RvYy9kb3h5Z2VuL21haW5fcGFnZS5oCkBAIC0yLDE0ICsyLDE0IEBACiAgKiBAZGVmZ3JvdXAgbHdpcCBsd0lQCiAgKgogICogQGRlZmdyb3VwIGluZnJhc3RydWN0dXJlIEluZnJhc3RydWN0dXJlCi0gKiAKKyAqCiAgKiBAZGVmZ3JvdXAgYXBpIEFQSXMKICAqIGx3SVAgcHJvdmlkZXMgdGhyZWUgQXBwbGljYXRpb24gUHJvZ3JhbSdzIEludGVyZmFjZXMgKEFQSXMpIGZvciBwcm9ncmFtcwogICogdG8gdXNlIGZvciBjb21tdW5pY2F0aW9uIHdpdGggdGhlIFRDUC9JUCBjb2RlOgogICogLSBsb3ctbGV2ZWwgImNvcmUiIC8gImNhbGxiYWNrIiBvciBAcmVmIGNhbGxiYWNrc3R5bGVfYXBpLgogICogLSBoaWdoZXItbGV2ZWwgQHJlZiBzZXF1ZW50aWFsX2FwaS4KICAqIC0gQlNELXN0eWxlIEByZWYgc29ja2V0LgotICogCisgKgogICogVGhlIHJhdyBUQ1AvSVAgaW50ZXJmYWNlIGFsbG93cyB0aGUgYXBwbGljYXRpb24gcHJvZ3JhbSB0byBpbnRlZ3JhdGUKICAqIGJldHRlciB3aXRoIHRoZSBUQ1AvSVAgY29kZS4gUHJvZ3JhbSBleGVjdXRpb24gaXMgZXZlbnQgYmFzZWQgYnkKICAqIGhhdmluZyBjYWxsYmFjayBmdW5jdGlvbnMgYmVpbmcgY2FsbGVkIGZyb20gd2l0aGluIHRoZSBUQ1AvSVAKQEAgLTE3LDIzICsxNywyMyBAQAogICogdGhyZWFkLiBUaGUgc2VxdWVudGlhbCBBUEkgaGFzIGEgbXVjaCBoaWdoZXIgb3ZlcmhlYWQgYW5kIGlzIG5vdCB2ZXJ5CiAgKiB3ZWxsIHN1aXRlZCBmb3Igc21hbGwgc3lzdGVtcyBzaW5jZSBpdCBmb3JjZXMgYSBtdWx0aXRocmVhZGVkIHBhcmFkaWdtCiAgKiBvbiB0aGUgYXBwbGljYXRpb24uCi0gKiAKKyAqCiAgKiBUaGUgcmF3IFRDUC9JUCBpbnRlcmZhY2UgaXMgbm90IG9ubHkgZmFzdGVyIGluIHRlcm1zIG9mIGNvZGUgZXhlY3V0aW9uCiAgKiB0aW1lIGJ1dCBpcyBhbHNvIGxlc3MgbWVtb3J5IGludGVuc2l2ZS4gVGhlIGRyYXdiYWNrIGlzIHRoYXQgcHJvZ3JhbQogICogZGV2ZWxvcG1lbnQgaXMgc29tZXdoYXQgaGFyZGVyIGFuZCBhcHBsaWNhdGlvbiBwcm9ncmFtcyB3cml0dGVuIGZvcgogICogdGhlIHJhdyBUQ1AvSVAgaW50ZXJmYWNlIGFyZSBtb3JlIGRpZmZpY3VsdCB0byB1bmRlcnN0YW5kLiBTdGlsbCwgdGhpcwogICogaXMgdGhlIHByZWZlcnJlZCB3YXkgb2Ygd3JpdGluZyBhcHBsaWNhdGlvbnMgdGhhdCBzaG91bGQgYmUgc21hbGwgaW4KICAqIGNvZGUgc2l6ZSBhbmQgbWVtb3J5IHVzYWdlLgotICogCisgKgogICogQWxsIEFQSXMgY2FuIGJlIHVzZWQgc2ltdWx0YW5lb3VzbHkgYnkgZGlmZmVyZW50IGFwcGxpY2F0aW9uCiAgKiBwcm9ncmFtcy4gSW4gZmFjdCwgdGhlIHNlcXVlbnRpYWwgQVBJIGlzIGltcGxlbWVudGVkIGFzIGFuIGFwcGxpY2F0aW9uCiAgKiBwcm9ncmFtIHVzaW5nIHRoZSByYXcgVENQL0lQIGludGVyZmFjZS4KLSAqIAorICoKICAqIERvIG5vdCBjb25mdXNlIHRoZSBsd0lQIHJhdyBBUEkgd2l0aCByYXcgRXRoZXJuZXQgb3IgSVAgc29ja2V0cy4KICAqIFRoZSBmb3JtZXIgaXMgYSB3YXkgb2YgaW50ZXJmYWNpbmcgdGhlIGx3SVAgbmV0d29yayBzdGFjayAoaW5jbHVkaW5nCiAgKiBUQ1AgYW5kIFVEUCksIHRoZSBsYXR0ZXIgcmVmZXJzIHRvIHByb2Nlc3NpbmcgcmF3IEV0aGVybmV0IG9yIElQIGRhdGEKICAqIGluc3RlYWQgb2YgVENQIGNvbm5lY3Rpb25zIG9yIFVEUCBwYWNrZXRzLgotICogCisgKgogICogUmF3IEFQSSBhcHBsaWNhdGlvbnMgbWF5IG5ldmVyIGJsb2NrIHNpbmNlIGFsbCBwYWNrZXQgcHJvY2Vzc2luZwogICogKGlucHV0IGFuZCBvdXRwdXQpIGFzIHdlbGwgYXMgdGltZXIgcHJvY2Vzc2luZyAoVENQIG1haW5seSkgaXMgZG9uZQogICogaW4gYSBzaW5nbGUgZXhlY3V0aW9uIGNvbnRleHQuCkBAIC01OSw3ICs1OSw3IEBACiAgKiByZWNlaXZlLiBUaGlzIEFQSSBpcyBhbHNvIHVzZWQgYnkgdGhlIGNvcmUgc3RhY2sgZm9yIGludGVyYWN0aW9uIGJldHdlZW4KICAqIHRoZSB2YXJpb3VzIHByb3RvY29scy4gSXQgaXMgdGhlIG9ubHkgQVBJIGF2YWlsYWJsZSB3aGVuIHJ1bm5pbmcgbHdJUAogICogd2l0aG91dCBhbiBvcGVyYXRpbmcgc3lzdGVtLgotICogCisgKgogICogQGRlZmdyb3VwIHNlcXVlbnRpYWxfYXBpIFNlcXVlbnRpYWwtc3R5bGUgQVBJcwogICogQGluZ3JvdXAgYXBpCiAgKiBTZXF1ZW50aWFsLXN0eWxlIEFQSXMsIGJsb2NraW5nIGZ1bmN0aW9ucy4gTW9yZSBvdmVyaGVhZCwgYnV0IGNhbiBiZSBjYWxsZWQKQEAgLTcwLDIyICs3MCwyMiBAQAogICogcGFyYWRpZ20uIFNpbmNlIHRoZSBUQ1AvSVAgc3RhY2sgaXMgZXZlbnQgYmFzZWQgYnkgbmF0dXJlLCB0aGUgVENQL0lQCiAgKiBjb2RlIGFuZCB0aGUgYXBwbGljYXRpb24gcHJvZ3JhbSBtdXN0IHJlc2lkZSBpbiBkaWZmZXJlbnQgZXhlY3V0aW9uCiAgKiBjb250ZXh0cyAodGhyZWFkcykuCi0gKiAKKyAqCiAgKiBAZGVmZ3JvdXAgc29ja2V0IFNvY2tldCBBUEkKICAqIEBpbmdyb3VwIGFwaQotICogQlNELXN0eWxlIHNvY2tldCBBUEkuXG4KLSAqIFRocmVhZC1zYWZlLCB0byBiZSBjYWxsZWQgZnJvbSBub24tVENQSVAgdGhyZWFkcyBvbmx5LlxuCi0gKiBDYW4gYmUgYWN0aXZhdGVkIGJ5IGRlZmluaW5nIEByZWYgTFdJUF9TT0NLRVQgdG8gMS5cbgotICogSGVhZGVyIGlzIGluIHBvc2l4L3N5cy9zb2NrZXQuaFxuCisgKiBCU0Qtc3R5bGUgc29ja2V0IEFQSS48YnI+CisgKiBUaHJlYWQtc2FmZSwgdG8gYmUgY2FsbGVkIGZyb20gbm9uLVRDUElQIHRocmVhZHMgb25seS48YnI+CisgKiBDYW4gYmUgYWN0aXZhdGVkIGJ5IGRlZmluaW5nIEByZWYgTFdJUF9TT0NLRVQgdG8gMS48YnI+CisgKiBIZWFkZXIgaXMgaW4gcG9zaXgvc3lzL3NvY2tldC5oPGJyPgogICogVGhlIHNvY2tldCBBUEkgaXMgYSBjb21wYXRpYmlsaXR5IEFQSSBmb3IgZXhpc3RpbmcgYXBwbGljYXRpb25zLAogICogY3VycmVudGx5IGl0IGlzIGJ1aWx0IG9uIHRvcCBvZiB0aGUgc2VxdWVudGlhbCBBUEkuIEl0IGlzIG1lYW50IHRvCiAgKiBwcm92aWRlIGFsbCBmdW5jdGlvbnMgbmVlZGVkIHRvIHJ1biBzb2NrZXQgQVBJIGFwcGxpY2F0aW9ucyBydW5uaW5nCiAgKiBvbiBvdGhlciBwbGF0Zm9ybXMgKGUuZy4gdW5peCAvIHdpbmRvd3MgZXRjLikuIEhvd2V2ZXIsIGR1ZSB0byBsaW1pdGF0aW9ucwogICogaW4gdGhlIHNwZWNpZmljYXRpb24gb2YgdGhpcyBBUEksIHRoZXJlIG1pZ2h0IGJlIGluY29tcGF0aWJpbGl0aWVzCiAgKiB0aGF0IHJlcXVpcmUgc21hbGwgbW9kaWZpY2F0aW9ucyBvZiBleGlzdGluZyBwcm9ncmFtcy4KLSAqIAorICoKICAqIEBkZWZncm91cCBuZXRpZnMgTkVUSUZzCi0gKiAKKyAqCiAgKiBAZGVmZ3JvdXAgYXBwcyBBcHBsaWNhdGlvbnMKICAqLwogCkBAIC0xMTIsNyArMTEyLDcgQEAKICAqICogQWRkIHN5c19tYm94X3RyeXBvc3RfZnJvbWlzcigpIGFuZCB0Y3BpcF9jYWxsYmFja21zZ190cnljYWxsYmFja19mcm9taXNyKCkKICAqICAgKGZvciBGcmVlUlRPUywgbWFpbmx5KQogICogKiBzb2NrZXQgQVBJOiBzdXBwb3J0IHBvbGwoKSwgc2VuZG1zZygpIGFuZCByZWN2bXNnKCk7IGZpeCBwcm9ibGVtcyBvbiBjbG9zZQotICogCisgKgogICogRGV0YWlsZWQgQ2hhbmdlbG9nCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0KICAqIEB2ZXJiaW5jbHVkZSAiQ0hBTkdFTE9HIgpAQCAtMTI0LDYgKzEyNCwxMSBAQAogICovCiAKIC8qKgorICogQHBhZ2UgY21ha2UgQ01ha2UgYnVpbGQgc3lzdGVtCisgKiBAdmVyYmluY2x1ZGUgIkJVSUxESU5HIgorICovCisKKy8qKgogICogQHBhZ2UgcGl0ZmFsbHMgQ29tbW9uIHBpdGZhbGxzCiAgKgogICogTXVsdGlwbGUgRXhlY3V0aW9uIENvbnRleHRzIGluIGx3SVAgY29kZQpAQCAtMTMxLDIxICsxMzYsMjEgQEAKICAqCiAgKiBUaGUgbW9zdCBjb21tb24gc291cmNlIG9mIGx3SVAgcHJvYmxlbXMgaXMgdG8gaGF2ZSBtdWx0aXBsZSBleGVjdXRpb24gY29udGV4dHMKICAqIGluc2lkZSB0aGUgbHdJUCBjb2RlLgotICogCi0gKiBsd0lQIGNhbiBiZSB1c2VkIGluIHR3byBiYXNpYyBtb2RlczogQHJlZiBsd2lwX25vc3lzIChubyBPUy9SVE9TIAorICoKKyAqIGx3SVAgY2FuIGJlIHVzZWQgaW4gdHdvIGJhc2ljIG1vZGVzOiBAcmVmIGx3aXBfbm9zeXMgKG5vIE9TL1JUT1MKICAqIHJ1bm5pbmcgb24gdGFyZ2V0IHN5c3RlbSkgb3IgQHJlZiBsd2lwX29zICh0aGVyZSBpcyBhbiBPUyBydW5uaW5nCiAgKiBvbiB0aGUgdGFyZ2V0IHN5c3RlbSkuCi0gKiAKKyAqCiAgKiBTZWUgYWxzbzogQHJlZiBtdWx0aXRocmVhZGluZyAoZXNwZWNpYWxseSB0aGUgcGFydCBhYm91dCBAcmVmIExXSVBfQVNTRVJUX0NPUkVfTE9DS0VEKCkhKQogICoKICAqIE1haW5sb29wIE1vZGUKICAqIC0tLS0tLS0tLS0tLS0KICAqIEluIG1haW5sb29wIG1vZGUsIG9ubHkgQHJlZiBjYWxsYmFja3N0eWxlX2FwaSBjYW4gYmUgdXNlZC4KLSAqIFRoZSB1c2VyIGhhcyB0d28gcG9zc2liaWxpdGllcyB0byBlbnN1cmUgdGhlcmUgaXMgb25seSBvbmUgCi0gKiBleGVjdGlvbiBjb250ZXh0IGF0IGEgdGltZSBpbiBsd0lQOgorICogVGhlIHVzZXIgaGFzIHR3byBwb3NzaWJpbGl0aWVzIHRvIGVuc3VyZSB0aGVyZSBpcyBvbmx5IG9uZQorICogZXhlY3V0aW9uIGNvbnRleHQgYXQgYSB0aW1lIGluIGx3SVA6CiAgKgogICogMSkgRGVsaXZlciBSWCBldGhlcm5ldCBwYWNrZXRzIGRpcmVjdGx5IGluIGludGVycnVwdCBjb250ZXh0IHRvIGx3SVAKLSAqICAgIGJ5IGNhbGxpbmcgbmV0aWYtPmlucHV0IGRpcmVjdGx5IGluIGludGVycnVwdC4gVGhpcyBpbXBsaWVzIGFsbCBsd0lQIAorICogICAgYnkgY2FsbGluZyBuZXRpZi0+aW5wdXQgZGlyZWN0bHkgaW4gaW50ZXJydXB0LiBUaGlzIGltcGxpZXMgYWxsIGx3SVAKICAqICAgIGNhbGxiYWNrIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGluIElSUSBjb250ZXh0LCB3aGljaCBtYXkgY2F1c2UgZnVydGhlcgogICogICAgcHJvYmxlbXMgaW4gYXBwbGljYXRpb24gY29kZTogSVJRIGlzIGJsb2NrZWQgZm9yIGEgbG9uZyB0aW1lLCBtdWx0aXBsZQogICogICAgZXhlY3V0aW9uIGNvbnRleHRzIGluIGFwcGxpY2F0aW9uIGNvZGUgZXRjLiBXaGVuIHRoZSBhcHBsaWNhdGlvbiB3YW50cwpAQCAtMTcxLDEyICsxNzYsMTIgQEAKICAqIGltcGxlbWVudGVkIGluIHRjcGlwX2lucHV0KCku4oCL4oCLCiAgKiBBZ2FpbiwgZW5zdXJlIGx3SVAgaXMgX05FVkVSXyBjYWxsZWQgZnJvbSBhbiBpbnRlcnJ1cHQsIGUuZy4KICAqIHNvbWUgU1BJIElSUSB3YW50cyB0byBmb3J3YXJkIGRhdGEgdG8gdWRwX3NlbmQoKSBvciB0Y3Bfd3JpdGUoKSEKLSAqIAorICoKICAqIDEpIHRjcGlwX2NhbGxiYWNrKCkgY2FuIGJlIHVzZWQgZ2V0IGNhbGxlZCBiYWNrIGZyb20gVENQSVAgdGhyZWFkLAogICogICAgaXQgaXMgc2FmZSB0byBjYWxsIGFueSBAcmVmIGNhbGxiYWNrc3R5bGVfYXBpIGZyb20gdGhlcmUuCiAgKgogICogMikgVXNlIEByZWYgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkcuIEFsbCBAcmVmIGNhbGxiYWNrc3R5bGVfYXBpCi0gKiAgICBmdW5jdGlvbnMgY2FuIGJlIGNhbGxlZCB3aGVuIGx3SVAgY29yZSBsb2NrIGlzIGFxdWlyZWQsIHNlZQorICogICAgZnVuY3Rpb25zIGNhbiBiZSBjYWxsZWQgd2hlbiBsd0lQIGNvcmUgbG9jayBpcyBhY3F1aXJlZCwgc2VlCiAgKiAgICBAcmVmIExPQ0tfVENQSVBfQ09SRSgpIGFuZCBAcmVmIFVOTE9DS19UQ1BJUF9DT1JFKCkuCiAgKiAgICBUaGVzZSBtYWNyb3MgY2Fubm90IGJlIHVzZWQgaW4gYW4gaW50ZXJydXB0IGNvbnRleHQhCiAgKiAgICBOb3RlIHRoZSBPUyBtdXN0IGNvcnJlY3RseSBoYW5kbGUgcHJpb3JpdHkgaW52ZXJzaW9uIGZvciB0aGlzLgpAQCAtMTg2LDcgKzE5MSw3IEBACiAgKgogICogRE1BLWNhcGFibGUgZXRoZXJuZXQgaGFyZHdhcmUgYW5kIHplcm8tY29weSBSWAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogCisgKgogICogbHdJUCBjaGFuZ2VzIHRoZSBjb250ZW50IG9mIFJFQ0VJVkVEIHBidWZzIGluIHRoZSBUQ1AgY29kZSBwYXRoLgogICogVGhpcyBpbXBsaWVzIG9uZSBvciBtb3JlIGNhY2hlbGluZShzKSBvZiB0aGUgUlggcGJ1ZiBiZWNvbWUgZGlydHkKICAqIGFuZCBuZWVkIHRvIGJlIGZsdXNoZWQgYmVmb3JlIHRoZSBtZW1vcnkgaXMgaGFuZGVkIG92ZXIgdG8gdGhlCkBAIC0yMDcsNyArMjEyLDcgQEAKIC8qKgogICogQHBhZ2UgbWVtX2VyciBEZWJ1Z2dpbmcgbWVtb3J5IHBvb2wgc2l6ZXMKICAqIElmIHlvdSBoYXZlIGlzc3VlcyB3aXRoIGx3SVAgYW5kIHlvdSBhcmUgdXNpbmcgbWVtb3J5IHBvb2xzLCBjaGVjayB0aGF0IHlvdXIgcG9vbHMKLSAqIGFyZSBjb3JyZWN0bHkgc2l6ZWQuXG4KKyAqIGFyZSBjb3JyZWN0bHkgc2l6ZWQuPGJyPgogICogVG8gZGVidWcgcG9vbCBzaXplcywgXCNkZWZpbmUgTFdJUF9TVEFUUyBhbmQgTUVNUF9TVEFUUyB0byAxLiBDaGVjayB0aGUgZ2xvYmFsIHZhcmlhYmxlCiAgKiBsd2lwX3N0YXRzLm1lbXBbXSB1c2luZyBhIGRlYnVnZ2VyLiBJZiB0aGUgImVyciIgbWVtYmVyIG9mIGEgcG9vbCBpcyA+IDAsIHRoZSBwb29sCiAgKiBtYXkgYmUgdG9vIHNtYWxsIGZvciB5b3VyIGFwcGxpY2F0aW9uIGFuZCB5b3UgbmVlZCB0byBpbmNyZWFzZSBpdHMgc2l6ZS4KQEAgLTIxNSw4ICsyMjAsOCBAQAogCiAvKioKICAqIEBwYWdlIGJ1Z3MgUmVwb3J0aW5nIGJ1Z3MKLSAqIFBsZWFzZSByZXBvcnQgYnVncyBpbiB0aGUgbHdJUCBidWcgdHJhY2tlciBhdCBzYXZhbm5haC5cbgotICogQkVGT1JFIHN1Ym1pdHRpbmcsIHBsZWFzZSBjaGVjayBpZiB0aGUgYnVnIGhhcyBhbHJlYWR5IGJlZW4gcmVwb3J0ZWQhXG4KKyAqIFBsZWFzZSByZXBvcnQgYnVncyBpbiB0aGUgbHdJUCBidWcgdHJhY2tlciBhdCBzYXZhbm5haC48YnI+CisgKiBCRUZPUkUgc3VibWl0dGluZywgcGxlYXNlIGNoZWNrIGlmIHRoZSBidWcgaGFzIGFscmVhZHkgYmVlbiByZXBvcnRlZCE8YnI+CiAgKiBodHRwczovL3NhdmFubmFoLm5vbmdudS5vcmcvYnVncy8/Z3JvdXA9bHdpcAogICovCiAKQEAgLTIzMiwxMiArMjM3LDEyIEBACiAgKiBVc2UgdGhpcyBtb2RlIGlmIHlvdSBkbyBub3QgcnVuIGFuIE9TIG9uIHlvdXIgc3lzdGVtLiBcI2RlZmluZSBOT19TWVMgdG8gMS4KICAqIEZlZWQgaW5jb21pbmcgcGFja2V0cyB0byBuZXRpZi0+aW5wdXQocGJ1ZiwgbmV0aWYpIGZ1bmN0aW9uIGZyb20gbWFpbmxvb3AsCiAgKiAqbm90KiAqZnJvbSogKmludGVycnVwdCogKmNvbnRleHQqLiBZb3UgY2FuIGFsbG9jYXRlIGEgQHJlZiBwYnVmIGluIGludGVycnVwdAotICogY29udGV4dCBhbmQgcHV0IHRoZW0gaW50byBhIHF1ZXVlIHdoaWNoIGlzIHByb2Nlc3NlZCBmcm9tIG1haW5sb29wLlxuCi0gKiBDYWxsIHN5c19jaGVja190aW1lb3V0cygpIHBlcmlvZGljYWxseSBpbiB0aGUgbWFpbmxvb3AuXG4KLSAqIFBvcnRpbmc6IGltcGxlbWVudCBhbGwgZnVuY3Rpb25zIGluIEByZWYgc3lzX3RpbWUsIEByZWYgc3lzX3Byb3QgYW5kIAotICogQHJlZiBjb21waWxlcl9hYnN0cmFjdGlvbi5cbgotICogWW91IGNhbiBvbmx5IHVzZSBAcmVmIGNhbGxiYWNrc3R5bGVfYXBpIGluIHRoaXMgbW9kZS5cbgotICogU2FtcGxlIGNvZGU6XG4KKyAqIGNvbnRleHQgYW5kIHB1dCB0aGVtIGludG8gYSBxdWV1ZSB3aGljaCBpcyBwcm9jZXNzZWQgZnJvbSBtYWlubG9vcC48YnI+CisgKiBDYWxsIHN5c19jaGVja190aW1lb3V0cygpIHBlcmlvZGljYWxseSBpbiB0aGUgbWFpbmxvb3AuPGJyPgorICogUG9ydGluZzogaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMgaW4gQHJlZiBzeXNfdGltZSwgQHJlZiBzeXNfcHJvdCBhbmQKKyAqIEByZWYgY29tcGlsZXJfYWJzdHJhY3Rpb24uPGJyPgorICogWW91IGNhbiBvbmx5IHVzZSBAcmVmIGNhbGxiYWNrc3R5bGVfYXBpIGluIHRoaXMgbW9kZS48YnI+CisgKiBTYW1wbGUgY29kZToKICAqIEBpbmNsdWRlIE5PX1NZU19TYW1wbGVDb2RlLmMKICAqLwogCkBAIC0yNDYsMTQgKzI1MSwxNCBAQAogICogQGluZ3JvdXAgbHdpcAogICogVXNlIHRoaXMgbW9kZSBpZiB5b3UgcnVuIGFuIE9TIG9uIHlvdXIgc3lzdGVtLiBJdCBpcyByZWNvbW1lbmRlZCB0bwogICogdXNlIGFuIFJUT1MgdGhhdCBjb3JyZWN0bHkgaGFuZGxlcyBwcmlvcml0eSBpbnZlcnNpb24gYW5kCi0gKiB0byB1c2UgQHJlZiBMV0lQX1RDUElQX0NPUkVfTE9DS0lORy5cbgotICogUG9ydGluZzogaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMgaW4gQHJlZiBzeXNfbGF5ZXIuXG4KKyAqIHRvIHVzZSBAcmVmIExXSVBfVENQSVBfQ09SRV9MT0NLSU5HLjxicj4KKyAqIFBvcnRpbmc6IGltcGxlbWVudCBhbGwgZnVuY3Rpb25zIGluIEByZWYgc3lzX2xheWVyLjxicj4KICAqIFlvdSBjYW4gdXNlIEByZWYgY2FsbGJhY2tzdHlsZV9hcGkgdG9nZXRoZXIgd2l0aCBAcmVmIHRjcGlwX2NhbGxiYWNrLAogICogYW5kIGFsbCBAcmVmIHNlcXVlbnRpYWxfYXBpLgogICovCiAKIC8qKgotICogQHBhZ2Ugc3lzX2luaXQgU3lzdGVtIGluaXRhbGl6YXRpb24KKyAqIEBwYWdlIHN5c19pbml0IFN5c3RlbSBpbml0aWFsaXphdGlvbgogQSB0cnVseSBjb21wbGV0ZSBhbmQgZ2VuZXJpYyBzZXF1ZW5jZSBmb3IgaW5pdGlhbGl6aW5nIHRoZSBsd0lQIHN0YWNrCiBjYW5ub3QgYmUgZ2l2ZW4gYmVjYXVzZSBpdCBkZXBlbmRzIG9uIGFkZGl0aW9uYWwgaW5pdGlhbGl6YXRpb25zIGZvcgogeW91ciBydW50aW1lIGVudmlyb25tZW50IChlLmcuIHRpbWVycykuCkBAIC0yNzQsMTIgKzI3OSwxMiBAQAogCiAgIFRoZSBpbml0IGZ1bmN0aW9uIHBvaW50ZXIgbXVzdCBwb2ludCB0byBhIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIGZvcgogICB5b3VyIEV0aGVybmV0IG5ldGlmIGludGVyZmFjZS4gVGhlIGZvbGxvd2luZyBjb2RlIGlsbHVzdHJhdGVzIGl0cyB1c2UuCi0gIAorCiBAY29kZXsuY30KICAgZXJyX3QgbmV0aWZfaWZfaW5pdChzdHJ1Y3QgbmV0aWYgKm5ldGlmKQogICB7CiAgICAgdThfdCBpOwotICAgIAorCiAgICAgZm9yIChpID0gMDsgaSA8IEVUSEFSUF9IV0FERFJfTEVOOyBpKyspIHsKICAgICAgIG5ldGlmLT5od2FkZHJbaV0gPSBzb21lX2V0aF9hZGRyW2ldOwogICAgIH0KQEAgLTI4NywxMSArMjkyLDExIEBACiAgICAgcmV0dXJuIEVSUl9PSzsKICAgfQogQGVuZGNvZGUKLSAgCisKICAgRm9yIEV0aGVybmV0IGRyaXZlcnMsIHRoZSBpbnB1dCBmdW5jdGlvbiBwb2ludGVyIG11c3QgcG9pbnQgdG8gdGhlIGx3SVAKICAgZnVuY3Rpb24gZXRoZXJuZXRfaW5wdXQoKSBkZWNsYXJlZCBpbiAibmV0aWYvZXRoYXJwLmgiLiBPdGhlciBkcml2ZXJzCiAgIG11c3QgdXNlIGlwX2lucHV0KCkgZGVjbGFyZWQgaW4gImx3aXAvaXAuaCIuCi0gIAorCiAtIG5ldGlmX3NldF9kZWZhdWx0KHN0cnVjdCBuZXRpZiAqbmV0aWYpCiAgIFJlZ2lzdGVycyB0aGUgZGVmYXVsdCBuZXR3b3JrIGludGVyZmFjZS4KIApAQCAtMzI2LDcgKzMzMSw3IEBACiAgKiBmcm9tIHBidWYtIGFuZCBtZW1vcnkgbWFuYWdlbWVudCBmdW5jdGlvbnMpLiBBcHBsaWNhdGlvbiB0aHJlYWRzIHVzaW5nCiAgKiB0aGUgc2VxdWVudGlhbC0gb3Igc29ja2V0IEFQSSBjb21tdW5pY2F0ZSB3aXRoIHRoaXMgbWFpbiB0aHJlYWQgdGhyb3VnaAogICogbWVzc2FnZSBwYXNzaW5nLgotICogCisgKgogICogQXMgc3VjaCwgdGhlIGxpc3Qgb2YgZnVuY3Rpb25zIHRoYXQgbWF5IGJlIGNhbGxlZCBmcm9tCiAgKiBvdGhlciB0aHJlYWRzIG9yIGFuIElTUiBpcyB2ZXJ5IGxpbWl0ZWQhIE9ubHkgZnVuY3Rpb25zCiAgKiBmcm9tIHRoZXNlIEFQSSBoZWFkZXIgZmlsZXMgYXJlIHRocmVhZC1zYWZlOgpAQCAtMzM3LDQzICszNDIsNDMgQEAKICAqIC0gcHBwYXBpLmgKICAqIC0gc29ja2V0cy5oCiAgKiAtIHN5cy5oCi0gKiAKLSAqIEFkZGl0aW9uYWx5LCBtZW1vcnkgKGRlLSlhbGxvY2F0aW9uIGZ1bmN0aW9ucyBtYXkgYmUKKyAqCisgKiBBZGRpdGlvbmFsbHksIG1lbW9yeSAoZGUtKWFsbG9jYXRpb24gZnVuY3Rpb25zIG1heSBiZQogICogY2FsbGVkIGZyb20gbXVsdGlwbGUgdGhyZWFkcyAobm90IElTUiEpIHdpdGggTk9fU1lTPTAKICAqIHNpbmNlIHRoZXkgYXJlIHByb3RlY3RlZCBieSBAcmVmIFNZU19MSUdIVFdFSUdIVF9QUk9UIGFuZC9vcgogICogc2VtYXBob3Jlcy4KLSAqIAorICoKICAqIE5ldGNvbm4gb3IgU29ja2V0IEFQSSBmdW5jdGlvbnMgYXJlIHRocmVhZCBzYWZlIGFnYWluc3QgdGhlCiAgKiBjb3JlIHRocmVhZCBidXQgdGhleSBhcmUgbm90IHJlZW50cmFudCBhdCB0aGUgY29udHJvbCBibG9jawogICogZ3JhbnVsYXJpdHkgbGV2ZWwuIFRoYXQgaXMsIGEgVURQIG9yIFRDUCBjb250cm9sIGJsb2NrIG11c3QKICAqIG5vdCBiZSBzaGFyZWQgYW1vbmcgbXVsdGlwbGUgdGhyZWFkcyB3aXRob3V0IHByb3BlciBsb2NraW5nLgotICogCisgKgogICogSWYgQHJlZiBTWVNfTElHSFRXRUlHSFRfUFJPVCBpcyBzZXQgdG8gMSBhbmQKICAqIEByZWYgTFdJUF9BTExPV19NRU1fRlJFRV9GUk9NX09USEVSX0NPTlRFWFQgaXMgc2V0IHRvIDEsCiAgKiBwYnVmX2ZyZWUoKSBtYXkgYWxzbyBiZSBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVhZCBvcgogICogYW4gSVNSIChzaW5jZSBvbmx5IHRoZW4sIG1lbV9mcmVlIC0gZm9yIFBCVUZfUkFNIC0gbWF5CiAgKiBiZSBjYWxsZWQgZnJvbSBhbiBJU1I6IG90aGVyd2lzZSwgdGhlIEhFQVAgaXMgb25seQogICogcHJvdGVjdGVkIGJ5IHNlbWFwaG9yZXMpLgotICogCisgKgogICogSG93IHRvIGdldCB0aHJlYWRpbmcgZG9uZSByaWdodAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICogCisgKgogICogSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gaW1wbGVtZW50IHRoZSBMV0lQX0FTU0VSVF9DT1JFX0xPQ0tFRCgpCiAgKiBtYWNybyBpbiBhbiBhcHBsaWNhdGlvbiB0aGF0IHVzZXMgbXVsdGl0aHJlYWRpbmcuIGx3SVAgY29kZSBoYXMKICAqIHNldmVyYWwgcGxhY2VzIHdoZXJlIGEgY2hlY2sgZm9yIGEgY29ycmVjdCB0aHJlYWQgY29udGV4dCBpcwogICogaW1wbGVtZW50ZWQgd2hpY2ggZ3JlYXRseSBoZWxwcyB0aGUgdXNlciB0byBnZXQgdGhyZWFkaW5nIGRvbmUgcmlnaHQuCi0gKiBTZWUgdGhlIGV4YW1wbGUgc3lzX2FyY2guYyBmaWxlcyBpbiB1bml4IGFuZCBXaW4zMiBwb3J0IAotICogaW4gdGhlIGNvbnRyaWIgcmVwb3NpdG9yeS4KLSAqIAotICogSW4gc2hvcnQ6IENvcHkgdGhlIGZ1bmN0aW9ucyBzeXNfbWFya190Y3BpcF90aHJlYWQoKSBhbmQgCisgKiBTZWUgdGhlIGV4YW1wbGUgc3lzX2FyY2guYyBmaWxlcyBpbiB1bml4IGFuZCBXaW4zMiBwb3J0CisgKiBpbiB0aGUgbHdJUC9jb250cmliIHN1YmRpcmVjdG9yeS4KKyAqCisgKiBJbiBzaG9ydDogQ29weSB0aGUgZnVuY3Rpb25zIHN5c19tYXJrX3RjcGlwX3RocmVhZCgpIGFuZAogICogc3lzX2NoZWNrX2NvcmVfbG9ja2luZygpIHRvIHlvdXIgcG9ydCBhbmQgbW9kaWZ5IHRoZW0gdG8gd29yayB3aXRoIHlvdXIgT1MuCiAgKiBUaGVuIGxldCBAcmVmIExXSVBfQVNTRVJUX0NPUkVfTE9DS0VEKCkgYW5kIEByZWYgTFdJUF9NQVJLX1RDUElQX1RIUkVBRCgpCiAgKiBwb2ludCB0byB0aGVzZSBmdW5jdGlvbnMuCi0gKiAKKyAqCiAgKiBJZiB5b3UgdXNlIEByZWYgTFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkcsIHlvdSBhbHNvIG5lZWQgdG8gY29weSBhbmQgYWRhcHQKICAqIHRoZSBmdW5jdGlvbnMgc3lzX2xvY2tfdGNwaXBfY29yZSgpIGFuZCBzeXNfdW5sb2NrX3RjcGlwX2NvcmUoKS4KLSAqIExldCBAcmVmIExPQ0tfVENQSVBfQ09SRSgpIGFuZCBAcmVmIFVOTE9DS19UQ1BJUF9DT1JFKCkgcG9pbnQgCi0gKiB0byB0aGVzZSBmdW5jdGlvbnMuIAorICogTGV0IEByZWYgTE9DS19UQ1BJUF9DT1JFKCkgYW5kIEByZWYgVU5MT0NLX1RDUElQX0NPUkUoKSBwb2ludAorICogdG8gdGhlc2UgZnVuY3Rpb25zLgogICovCiAKIC8qKgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWNkXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hY2RfOGMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjc3YWYzCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWNkXzhjLmh0bWwKQEAgLTAsMCArMSwxOTAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwczovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZW4tVVMiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQveGh0bWw7Y2hhcnNldD1VVEYtOCIvPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT0xMSIvPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb3h5Z2VuIDEuMTIuMCIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIi8+Cis8dGl0bGU+bHdJUDogc3JjL2NvcmUvaXB2NC9hY2QuYyBGaWxlIFJlZmVyZW5jZTwvdGl0bGU+Cis8bGluayBocmVmPSJ0YWJzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianF1ZXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImR5bnNlY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImNsaXBib2FyZC5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJuYXZ0cmVlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibmF2dHJlZWRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibmF2dHJlZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNpemUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iY29va2llLmpzIj48L3NjcmlwdD4KKzxsaW5rIGhyZWY9InNlYXJjaC9zZWFyY2guY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWFyY2gvc2VhcmNoZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWFyY2gvc2VhcmNoLmpzIj48L3NjcmlwdD4KKzxsaW5rIGhyZWY9ImRveHlnZW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0b3AiPjwhLS0gZG8gbm90IHJlbW92ZSB0aGlzIGRpdiwgaXQgaXMgY2xvc2VkIGJ5IGRveHlnZW4hIC0tPgorPGRpdiBpZD0idGl0bGVhcmVhIj4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPgorIDx0Ym9keT4KKyA8dHIgaWQ9InByb2plY3Ryb3ciPgorICA8dGQgaWQ9InByb2plY3RhbGlnbiI+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KKyAgIDwvZGl2PgorICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgorICA8L3RkPgorIDwvdHI+CisgPC90Ym9keT4KKzwvdGFibGU+Cis8L2Rpdj4KKzwhLS0gZW5kIGhlYWRlciBwYXJ0IC0tPgorPCEtLSBHZW5lcmF0ZWQgYnkgRG94eWdlbiAxLjEyLjAgLS0+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KK3ZhciBzZWFyY2hCb3ggPSBuZXcgU2VhcmNoQm94KCJzZWFyY2hCb3giLCAic2VhcmNoLyIsJy5odG1sJyk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCiskKGZ1bmN0aW9uKCkgeyBjb2RlZm9sZC5pbml0KDApOyB9KTsKKy8qIEBsaWNlbnNlLWVuZCAqLworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZW51ZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZW51LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpIHsKKyAgaW5pdE1lbnUoJycsdHJ1ZSxmYWxzZSwnc2VhcmNoLnBocCcsJ1NlYXJjaCcsdHJ1ZSk7CisgICQoZnVuY3Rpb24oKSB7IGluaXRfc2VhcmNoKCk7IH0pOworfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPGRpdiBpZD0ibWFpbi1uYXYiPjwvZGl2PgorPC9kaXY+PCEtLSB0b3AgLS0+Cis8ZGl2IGlkPSJzaWRlLW5hdiIgY2xhc3M9InVpLXJlc2l6YWJsZSBzaWRlLW5hdi1yZXNpemFibGUiPgorICA8ZGl2IGlkPSJuYXYtdHJlZSI+CisgICAgPGRpdiBpZD0ibmF2LXRyZWUtY29udGVudHMiPgorICAgICAgPGRpdiBpZD0ibmF2LXN5bmMiIGNsYXNzPSJzeW5jIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgaWQ9InNwbGl0YmFyIiBzdHlsZT0iLW1vei11c2VyLXNlbGVjdDpub25lOyIgCisgICAgICAgY2xhc3M9InVpLXJlc2l6YWJsZS1oYW5kbGUiPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCiskKGZ1bmN0aW9uKCl7aW5pdE5hdlRyZWUoJ2FjZF84Yy5odG1sJywnJyk7IGluaXRSZXNpemFibGUodHJ1ZSk7IH0pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9ImRvYy1jb250ZW50Ij4KKzwhLS0gd2luZG93IHNob3dpbmcgdGhlIGZpbHRlciBvcHRpb25zIC0tPgorPGRpdiBpZD0iTVNlYXJjaFNlbGVjdFdpbmRvdyIKKyAgICAgb25tb3VzZW92ZXI9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RTaG93KCkiCisgICAgIG9ubW91c2VvdXQ9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RIaWRlKCkiCisgICAgIG9ua2V5ZG93bj0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdEtleShldmVudCkiPgorPC9kaXY+CisKKzwhLS0gaWZyYW1lIHNob3dpbmcgdGhlIHNlYXJjaCByZXN1bHRzIChjbG9zZWQgYnkgZGVmYXVsdCkgLS0+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0c1dpbmRvdyI+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0cyI+Cis8ZGl2IGNsYXNzPSJTUlBhZ2UiPgorPGRpdiBpZD0iU1JJbmRleCI+Cis8ZGl2IGlkPSJTUlJlc3VsdHMiPjwvZGl2PgorPGRpdiBjbGFzcz0iU1JTdGF0dXMiIGlkPSJMb2FkaW5nIj5Mb2FkaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9IlNlYXJjaGluZyI+U2VhcmNoaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9Ik5vTWF0Y2hlcyI+Tm8gTWF0Y2hlczwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImhlYWRlciI+CisgIDxkaXYgY2xhc3M9InN1bW1hcnkiPgorPGEgaHJlZj0iI2Z1bmMtbWVtYmVycyI+RnVuY3Rpb25zPC9hPiAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImhlYWRlcnRpdGxlIj48ZGl2IGNsYXNzPSJ0aXRsZSI+YWNkLmMgRmlsZSBSZWZlcmVuY2U8L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS1oZWFkZXItLT4KKzxkaXYgY2xhc3M9ImNvbnRlbnRzIj4KKzxkaXYgY2xhc3M9InRleHRibG9jayI+PGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJvcHRfOGguaHRtbCI+bHdpcC9vcHQuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+Cis8Y29kZT4jaW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7PC9jb2RlPjxiciAvPgorPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJhY2RfOGguaHRtbCI+bHdpcC9hY2QuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+Cis8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmFjZF84aC5odG1sIj5sd2lwL3Byb3QvYWNkLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgorPC9kaXY+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZnVuYy1tZW1iZXJzIiBuYW1lPSJmdW5jLW1lbWJlcnMiPjwvYT4KK0Z1bmN0aW9uczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiIGlkPSJyX2dhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2ExNTg4NTZiZjEzOWNiMjc2MTgzN2RkZmEwNzMwM2JkYyI+YWNkX2FkZDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84aC5odG1sI2FiYjQ0NjQwNDc1MmY1NmIwMjhlYWZhODMwMmRiOTU1ZiI+YWNkX2NvbmZsaWN0X2NhbGxiYWNrX3Q8L2E+IGFjZF9jb25mbGljdF9jYWxsYmFjayk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTE1ODg1NmJmMTM5Y2IyNzYxODM3ZGRmYTA3MzAzYmRjIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiIGlkPSJyX2dhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2E3MDUwMzY5NmJjYTI1ZTFjZmI2MWZhZDM4YjQzMjdkYSI+YWNkX3JlbW92ZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiIgaWQ9InJfZ2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTJjYTJlMmRiYjk3MTNmOTA1MTVkNDQzZGM2OTFiNWNiIj5hY2Rfc3RhcnQ8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiPmlwNF9hZGRyX3Q8L2E+IGlwYWRkcik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTJjYTJlMmRiYjk3MTNmOTA1MTVkNDQzZGM2OTFiNWNiIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMzZkYTJiMjM5NTFhMTRjYTNjOTJmNWU3OGRiMmYxYjciIGlkPSJyX2dhMzZkYTJiMjM5NTFhMTRjYTNjOTJmNWU3OGRiMmYxYjciPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2EzNmRhMmIyMzk1MWExNGNhM2M5MmY1ZTc4ZGIyZjFiNyI+YWNkX3N0b3A8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTM2ZGEyYjIzOTUxYTE0Y2EzYzkyZjVlNzhkYjJmMWI3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMjg3MmZhMzc1ZjljZDhmNWIwOTU2MzlkNjUyZjZiZmYiIGlkPSJyX2dhMjg3MmZhMzc1ZjljZDhmNWIwOTU2MzlkNjUyZjZiZmYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2EyODcyZmEzNzVmOWNkOGY1YjA5NTYzOWQ2NTJmNmJmZiI+YWNkX25ldHdvcmtfY2hhbmdlZF9saW5rX2Rvd248L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMjg3MmZhMzc1ZjljZDhmNWIwOTU2MzlkNjUyZjZiZmYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YThkZGYzZTFjZmE4ZjVkNjc0ZDZjZTAwYzJmN2Q4NDFlIiBpZD0icl9hOGRkZjNlMWNmYThmNWQ2NzRkNmNlMDBjMmY3ZDg0MWUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYThkZGYzZTFjZmE4ZjVkNjc0ZDZjZTAwYzJmN2Q4NDFlIj5hY2RfdG1yPC9hPiAodm9pZCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphOGRkZjNlMWNmYThmNWQ2NzRkNmNlMDBjMmY3ZDg0MWUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YWE5MmUyMTQxMGQwZjBkMzU3YWI5MTY2Y2RhMjQ5MzdhIiBpZD0icl9hYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWE5MmUyMTQxMGQwZjBkMzU3YWI5MTY2Y2RhMjQ5MzdhIj5hY2RfYXJwX3JlcGx5PC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZXRoYXJwX19oZHIuaHRtbCI+ZXRoYXJwX2hkcjwvYT4gKmhkcik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyIgaWQ9InJfZ2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTE4YjQ0NGY2ZmM2OTMyNTQxNmI0NjMyMDhhNzU0Yzk3Ij5hY2RfbmV0aWZfaXBfYWRkcl9jaGFuZ2VkPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgY29uc3QgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EzMzVhOGM5ZGY2NjMxOWU4OGExYTUyOTA0N2NlMGExZSI+aXBfYWRkcl90PC9hPiAqb2xkX2FkZHIsIGNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhMzM1YThjOWRmNjYzMTllODhhMWE1MjkwNDdjZTBhMWUiPmlwX2FkZHJfdDwvYT4gKm5ld19hZGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMThiNDQ0ZjZmYzY5MzI1NDE2YjQ2MzIwOGE3NTRjOTciPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8L3RhYmxlPgorPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+Cis8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxwPkFDRCBJUHY0IEFkZHJlc3MgQ29uZmxpY3QgRGV0ZWN0aW9uPC9wPgorPHA+VGhpcyBpcyBhbiBJUHY0IGFkZHJlc3MgY29uZmxpY3QgZGV0ZWN0aW9uIGltcGxlbWVudGF0aW9uIGZvciB0aGUgbHdJUCBUQ1AvSVAgc3RhY2suIEl0IGFpbXMgdG8gYmUgY29uZm9ybSB0byBSRkM1MjI3LiA8L3A+Cis8L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KKzxhIGlkPSJhYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiIG5hbWU9ImFhOTJlMjE0MTBkMGYwZDM1N2FiOTE2NmNkYTI0OTM3YSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FhOTJlMjE0MTBkMGYwZDM1N2FiOTE2NmNkYTI0OTM3YSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YWNkX2FycF9yZXBseSgpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIGFjZF9hcnBfcmVwbHkgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGV0aGFycF9faGRyLmh0bWwiPmV0aGFycF9oZHI8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmhkcjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5IYW5kbGVzIGV2ZXJ5IGluY29taW5nIEFSUCBQYWNrZXQsIGNhbGxlZCBieSA8YSBjbGFzcz0iZWwiIGhyZWY9ImV0aGFycF84Yy5odG1sI2E1NDBhNTUwNjk3OTY5M2VmOWFjNDQ5NmRiOWJmYTdkNiI+ZXRoYXJwX2lucHV0KCk8L2E+LjwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPm5ldHdvcmsgaW50ZXJmYWNlIHRvIHVzZSBmb3IgYWNkIHByb2Nlc3NpbmcgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+aGRyPC90ZD48dGQ+SW5jb21pbmcgQVJQIHBhY2tldCA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImE4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSIgbmFtZT0iYThkZGYzZTFjZmE4ZjVkNjc0ZDZjZTAwYzJmN2Q4NDFlIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYThkZGYzZTFjZmE4ZjVkNjc0ZDZjZTAwYzJmN2Q4NDFlIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hY2RfdG1yKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgYWNkX3RtciA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dm9pZDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+PC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkhhcyB0byBiZSBjYWxsZWQgaW4gbG9vcCBldmVyeSBBQ0RfVE1SX0lOVEVSVkFMIG1pbGxpc2Vjb25kcyA8L3A+CisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgorPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KKzwhLS0gc3RhcnQgZm9vdGVyIHBhcnQgLS0+Cis8ZGl2IGlkPSJuYXYtcGF0aCIgY2xhc3M9Im5hdnBhdGgiPjwhLS0gaWQgaXMgbmVlZGVkIGZvciB0cmVldmlldyBmdW5jdGlvbiEgLS0+CisgIDx1bD4KKyAgICA8bGkgY2xhc3M9Im5hdmVsZW0iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGlyXzY4MjY3ZDEzMDlhMWFmOGU4Mjk3ZWY0YzNlZmJjZGJhLmh0bWwiPnNyYzwvYT48L2xpPjxsaSBjbGFzcz0ibmF2ZWxlbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJkaXJfYWViYjhkY2MxMTk1M2Q3OGU2MjBiYmVmMGI5ZTIxODMuaHRtbCI+Y29yZTwvYT48L2xpPjxsaSBjbGFzcz0ibmF2ZWxlbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJkaXJfYTMyZTExMWVlNjgwNWNmYzYzNDg4ZmQyZDM3ZjIzOTAuaHRtbCI+aXB2NDwvYT48L2xpPjxsaSBjbGFzcz0ibmF2ZWxlbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJhY2RfOGMuaHRtbCI+YWNkLmM8L2E+PC9saT4KKyAgICA8bGkgY2xhc3M9ImZvb3RlciI+R2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmRveHlnZW4ub3JnL2luZGV4Lmh0bWwiPjxpbWcgY2xhc3M9ImZvb3RlciIgc3JjPSJkb3h5Z2VuLnN2ZyIgd2lkdGg9IjEwNCIgaGVpZ2h0PSIzMSIgYWx0PSJkb3h5Z2VuIi8+PC9hPiAxLjEyLjAgPC9saT4KKyAgPC91bD4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWNkXzhjLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWNkXzhjLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMTczOWMKLS0tIC9kZXYvbnVsbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hY2RfOGMuanMKQEAgLTAsMCArMSwxMSBAQAordmFyIGFjZF84YyA9CitbCisgICAgWyAiYWNkX2FkZCIsICJncm91cF9fYWNkLmh0bWwjZ2ExNTg4NTZiZjEzOWNiMjc2MTgzN2RkZmEwNzMwM2JkYyIsIG51bGwgXSwKKyAgICBbICJhY2RfYXJwX3JlcGx5IiwgImFjZF84Yy5odG1sI2FhOTJlMjE0MTBkMGYwZDM1N2FiOTE2NmNkYTI0OTM3YSIsIG51bGwgXSwKKyAgICBbICJhY2RfbmV0aWZfaXBfYWRkcl9jaGFuZ2VkIiwgImdyb3VwX19hY2QuaHRtbCNnYTE4YjQ0NGY2ZmM2OTMyNTQxNmI0NjMyMDhhNzU0Yzk3IiwgbnVsbCBdLAorICAgIFsgImFjZF9uZXR3b3JrX2NoYW5nZWRfbGlua19kb3duIiwgImdyb3VwX19hY2QuaHRtbCNnYTI4NzJmYTM3NWY5Y2Q4ZjViMDk1NjM5ZDY1MmY2YmZmIiwgbnVsbCBdLAorICAgIFsgImFjZF9yZW1vdmUiLCAiZ3JvdXBfX2FjZC5odG1sI2dhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiLCBudWxsIF0sCisgICAgWyAiYWNkX3N0YXJ0IiwgImdyb3VwX19hY2QuaHRtbCNnYTJjYTJlMmRiYjk3MTNmOTA1MTVkNDQzZGM2OTFiNWNiIiwgbnVsbCBdLAorICAgIFsgImFjZF9zdG9wIiwgImdyb3VwX19hY2QuaHRtbCNnYTM2ZGEyYjIzOTUxYTE0Y2EzYzkyZjVlNzhkYjJmMWI3IiwgbnVsbCBdLAorICAgIFsgImFjZF90bXIiLCAiYWNkXzhjLmh0bWwjYThkZGYzZTFjZmE4ZjVkNjc0ZDZjZTAwYzJmN2Q4NDFlIiwgbnVsbCBdCitdOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FjZF84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWNkXzhoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBjMmI4YQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FjZF84aC5odG1sCkBAIC0wLDAgKzEsMjQ2IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImVuLVVTIj4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L3hodG1sO2NoYXJzZXQ9VVRGLTgiLz4KKzxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9MTEiLz4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG94eWdlbiAxLjEyLjAiLz4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSIvPgorPHRpdGxlPmx3SVA6IHNyYy9pbmNsdWRlL2x3aXAvYWNkLmggRmlsZSBSZWZlcmVuY2U8L3RpdGxlPgorPGxpbmsgaHJlZj0idGFicy5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpxdWVyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkeW5zZWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJjbGlwYm9hcmQuanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0ibmF2dHJlZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5hdnRyZWVkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5hdnRyZWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzaXplLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImNvb2tpZS5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJzZWFyY2gvc2VhcmNoLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VhcmNoL3NlYXJjaGRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VhcmNoL3NlYXJjaC5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJkb3h5Z2VuLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0idG9wIj48IS0tIGRvIG5vdCByZW1vdmUgdGhpcyBkaXYsIGl0IGlzIGNsb3NlZCBieSBkb3h5Z2VuISAtLT4KKzxkaXYgaWQ9InRpdGxlYXJlYSI+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KKyA8dGJvZHk+CisgPHRyIGlkPSJwcm9qZWN0cm93Ij4KKyAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CisgICA8L2Rpdj4KKyAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KKyAgPC90ZD4KKyA8L3RyPgorIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9kaXY+Cis8IS0tIGVuZCBoZWFkZXIgcGFydCAtLT4KKzwhLS0gR2VuZXJhdGVkIGJ5IERveHlnZW4gMS4xMi4wIC0tPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCit2YXIgc2VhcmNoQm94ID0gbmV3IFNlYXJjaEJveCgic2VhcmNoQm94IiwgInNlYXJjaC8iLCcuaHRtbCcpOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpIHsgY29kZWZvbGQuaW5pdCgwKTsgfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVudWRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVudS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKSB7CisgIGluaXRNZW51KCcnLHRydWUsZmFsc2UsJ3NlYXJjaC5waHAnLCdTZWFyY2gnLHRydWUpOworICAkKGZ1bmN0aW9uKCkgeyBpbml0X3NlYXJjaCgpOyB9KTsKK30pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9Im1haW4tbmF2Ij48L2Rpdj4KKzwvZGl2PjwhLS0gdG9wIC0tPgorPGRpdiBpZD0ic2lkZS1uYXYiIGNsYXNzPSJ1aS1yZXNpemFibGUgc2lkZS1uYXYtcmVzaXphYmxlIj4KKyAgPGRpdiBpZD0ibmF2LXRyZWUiPgorICAgIDxkaXYgaWQ9Im5hdi10cmVlLWNvbnRlbnRzIj4KKyAgICAgIDxkaXYgaWQ9Im5hdi1zeW5jIiBjbGFzcz0ic3luYyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGlkPSJzcGxpdGJhciIgc3R5bGU9Ii1tb3otdXNlci1zZWxlY3Q6bm9uZTsiIAorICAgICAgIGNsYXNzPSJ1aS1yZXNpemFibGUtaGFuZGxlIj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpe2luaXROYXZUcmVlKCdhY2RfOGguaHRtbCcsJycpOyBpbml0UmVzaXphYmxlKHRydWUpOyB9KTsKKy8qIEBsaWNlbnNlLWVuZCAqLworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJkb2MtY29udGVudCI+Cis8IS0tIHdpbmRvdyBzaG93aW5nIHRoZSBmaWx0ZXIgb3B0aW9ucyAtLT4KKzxkaXYgaWQ9Ik1TZWFyY2hTZWxlY3RXaW5kb3ciCisgICAgIG9ubW91c2VvdmVyPSJyZXR1cm4gc2VhcmNoQm94Lk9uU2VhcmNoU2VsZWN0U2hvdygpIgorICAgICBvbm1vdXNlb3V0PSJyZXR1cm4gc2VhcmNoQm94Lk9uU2VhcmNoU2VsZWN0SGlkZSgpIgorICAgICBvbmtleWRvd249InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RLZXkoZXZlbnQpIj4KKzwvZGl2PgorCis8IS0tIGlmcmFtZSBzaG93aW5nIHRoZSBzZWFyY2ggcmVzdWx0cyAoY2xvc2VkIGJ5IGRlZmF1bHQpIC0tPgorPGRpdiBpZD0iTVNlYXJjaFJlc3VsdHNXaW5kb3ciPgorPGRpdiBpZD0iTVNlYXJjaFJlc3VsdHMiPgorPGRpdiBjbGFzcz0iU1JQYWdlIj4KKzxkaXYgaWQ9IlNSSW5kZXgiPgorPGRpdiBpZD0iU1JSZXN1bHRzIj48L2Rpdj4KKzxkaXYgY2xhc3M9IlNSU3RhdHVzIiBpZD0iTG9hZGluZyI+TG9hZGluZy4uLjwvZGl2PgorPGRpdiBjbGFzcz0iU1JTdGF0dXMiIGlkPSJTZWFyY2hpbmciPlNlYXJjaGluZy4uLjwvZGl2PgorPGRpdiBjbGFzcz0iU1JTdGF0dXMiIGlkPSJOb01hdGNoZXMiPk5vIE1hdGNoZXM8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNzPSJoZWFkZXIiPgorICA8ZGl2IGNsYXNzPSJzdW1tYXJ5Ij4KKzxhIGhyZWY9IiNuZXN0ZWQtY2xhc3NlcyI+RGF0YSBTdHJ1Y3R1cmVzPC9hPiAmIzEyNDsKKzxhIGhyZWY9IiNkZWZpbmUtbWVtYmVycyI+TWFjcm9zPC9hPiAmIzEyNDsKKzxhIGhyZWY9IiN0eXBlZGVmLW1lbWJlcnMiPlR5cGVkZWZzPC9hPiAmIzEyNDsKKzxhIGhyZWY9IiNmdW5jLW1lbWJlcnMiPkZ1bmN0aW9uczwvYT4gIDwvZGl2PgorICA8ZGl2IGNsYXNzPSJoZWFkZXJ0aXRsZSI+PGRpdiBjbGFzcz0idGl0bGUiPmFjZC5oIEZpbGUgUmVmZXJlbmNlPC9kaXY+PC9kaXY+Cis8L2Rpdj48IS0taGVhZGVyLS0+Cis8ZGl2IGNsYXNzPSJjb250ZW50cyI+Cis8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ib3B0XzhoLmh0bWwiPmx3aXAvb3B0Lmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgorPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sIj5sd2lwL25ldGlmLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgorPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCI+bHdpcC9ldGhhcnAuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+Cis8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmFjZF84aC5odG1sIj5sd2lwL3Byb3QvYWNkLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgorPC9kaXY+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0ibmVzdGVkLWNsYXNzZXMiIG5hbWU9Im5lc3RlZC1jbGFzc2VzIj48L2E+CitEYXRhIFN0cnVjdHVyZXM8L2gyPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCAmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzwvdGFibGU+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZGVmaW5lLW1lbWJlcnMiIG5hbWU9ImRlZmluZS1tZW1iZXJzIj48L2E+CitNYWNyb3M8L2gyPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphYWNlNmRhMGIwZGFjZDc3YTlkNmJkMTFmNDI0ZmZhODIiIGlkPSJyX2FhY2U2ZGEwYjBkYWNkNzdhOWQ2YmQxMWY0MjRmZmE4MiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhYWNlNmRhMGIwZGFjZDc3YTlkNmJkMTFmNDI0ZmZhODIiPkFDRF9UTVJfSU5URVJWQUw8L2E+JiMxNjA7JiMxNjA7JiMxNjA7MTAwPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YWFjZTZkYTBiMGRhY2Q3N2E5ZDZiZDExZjQyNGZmYTgyIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPC90YWJsZT48dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KKzx0ciBjbGFzcz0iaGVhZGluZyI+PHRkIGNvbHNwYW49IjIiPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPjxhIGlkPSJ0eXBlZGVmLW1lbWJlcnMiIG5hbWU9InR5cGVkZWYtbWVtYmVycyI+PC9hPgorVHlwZWRlZnM8L2gyPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphYmI0NDY0MDQ3NTJmNTZiMDI4ZWFmYTgzMDJkYjk1NWYiIGlkPSJyX2FiYjQ0NjQwNDc1MmY1NmIwMjhlYWZhODMwMmRiOTU1ZiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dHlwZWRlZiB2b2lkKComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWJiNDQ2NDA0NzUyZjU2YjAyOGVhZmE4MzAyZGI5NTVmIj5hY2RfY29uZmxpY3RfY2FsbGJhY2tfdDwvYT4pIChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBhY2RfY2FsbGJhY2tfZW51bV90IHN0YXRlKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmFiYjQ0NjQwNDc1MmY1NmIwMjhlYWZhODMwMmRiOTU1ZiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzwvdGFibGU+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZnVuYy1tZW1iZXJzIiBuYW1lPSJmdW5jLW1lbWJlcnMiPjwvYT4KK0Z1bmN0aW9uczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiIGlkPSJyX2dhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2ExNTg4NTZiZjEzOWNiMjc2MTgzN2RkZmEwNzMwM2JkYyI+YWNkX2FkZDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9IiNhYmI0NDY0MDQ3NTJmNTZiMDI4ZWFmYTgzMDJkYjk1NWYiPmFjZF9jb25mbGljdF9jYWxsYmFja190PC9hPiBhY2RfY29uZmxpY3RfY2FsbGJhY2spPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2ExNTg4NTZiZjEzOWNiMjc2MTgzN2RkZmEwNzMwM2JkYyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTcwNTAzNjk2YmNhMjVlMWNmYjYxZmFkMzhiNDMyN2RhIiBpZD0icl9nYTcwNTAzNjk2YmNhMjVlMWNmYjYxZmFkMzhiNDMyN2RhIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FjZC5odG1sI2dhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiPmFjZF9yZW1vdmU8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTcwNTAzNjk2YmNhMjVlMWNmYjYxZmFkMzhiNDMyN2RhIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMmNhMmUyZGJiOTcxM2Y5MDUxNWQ0NDNkYzY5MWI1Y2IiIGlkPSJyX2dhMmNhMmUyZGJiOTcxM2Y5MDUxNWQ0NDNkYzY5MWI1Y2IiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiI+YWNkX3N0YXJ0PC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwiPmFjZDwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwiPmFjZDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTNkM2I0NWRhZmZiYzE1ZDY1ZGEyMzZlMzFlNjIxYjdlIj5pcDRfYWRkcl90PC9hPiBpcGFkZHIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTM2ZGEyYjIzOTUxYTE0Y2EzYzkyZjVlNzhkYjJmMWI3IiBpZD0icl9nYTM2ZGEyYjIzOTUxYTE0Y2EzYzkyZjVlNzhkYjJmMWI3Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FjZC5odG1sI2dhMzZkYTJiMjM5NTFhMTRjYTNjOTJmNWU3OGRiMmYxYjciPmFjZF9zdG9wPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwiPmFjZDwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwiPmFjZDwvYT4pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EzNmRhMmIyMzk1MWExNGNhM2M5MmY1ZTc4ZGIyZjFiNyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiIGlkPSJyX2FhOTJlMjE0MTBkMGYwZDM1N2FiOTE2NmNkYTI0OTM3YSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiPmFjZF9hcnBfcmVwbHk8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RldGhhcnBfX2hkci5odG1sIj5ldGhhcnBfaGRyPC9hPiAqaGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmFhOTJlMjE0MTBkMGYwZDM1N2FiOTE2NmNkYTI0OTM3YSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphOGRkZjNlMWNmYThmNWQ2NzRkNmNlMDBjMmY3ZDg0MWUiIGlkPSJyX2E4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhOGRkZjNlMWNmYThmNWQ2NzRkNmNlMDBjMmY3ZDg0MWUiPmFjZF90bXI8L2E+ICh2b2lkKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmE4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTI4NzJmYTM3NWY5Y2Q4ZjViMDk1NjM5ZDY1MmY2YmZmIiBpZD0icl9nYTI4NzJmYTM3NWY5Y2Q4ZjViMDk1NjM5ZDY1MmY2YmZmIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FjZC5odG1sI2dhMjg3MmZhMzc1ZjljZDhmNWIwOTU2MzlkNjUyZjZiZmYiPmFjZF9uZXR3b3JrX2NoYW5nZWRfbGlua19kb3duPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTI4NzJmYTM3NWY5Y2Q4ZjViMDk1NjM5ZDY1MmY2YmZmIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMThiNDQ0ZjZmYzY5MzI1NDE2YjQ2MzIwOGE3NTRjOTciIGlkPSJyX2dhMThiNDQ0ZjZmYzY5MzI1NDE2YjQ2MzIwOGE3NTRjOTciPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyI+YWNkX25ldGlmX2lwX2FkZHJfY2hhbmdlZDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIGNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhMzM1YThjOWRmNjYzMTllODhhMWE1MjkwNDdjZTBhMWUiPmlwX2FkZHJfdDwvYT4gKm9sZF9hZGRyLCBjb25zdCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTMzNWE4YzlkZjY2MzE5ZTg4YTFhNTI5MDQ3Y2UwYTFlIj5pcF9hZGRyX3Q8L2E+ICpuZXdfYWRkcik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTE4YjQ0NGY2ZmM2OTMyNTQxNmI0NjMyMDhhNzU0Yzk3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPC90YWJsZT4KKzxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgorPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48cD5BQ0QgSVB2NCBBZGRyZXNzIENvbmZsaWN0IERldGVjdGlvbiA8L3A+Cis8L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5NYWNybyBEZWZpbml0aW9uIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImFhY2U2ZGEwYjBkYWNkNzdhOWQ2YmQxMWY0MjRmZmE4MiIgbmFtZT0iYWFjZTZkYTBiMGRhY2Q3N2E5ZDZiZDExZjQyNGZmYTgyIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWFjZTZkYTBiMGRhY2Q3N2E5ZDZiZDExZjQyNGZmYTgyIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5BQ0RfVE1SX0lOVEVSVkFMPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIEFDRF9UTVJfSU5URVJWQUwmIzE2MDsmIzE2MDsmIzE2MDsxMDA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5BQ0QgVGltaW5nIEFDRF9UTVJfSU5URVJWQUwgbXNlY3MsIEkgcmVjb21tZW5kIGEgdmFsdWUgb2YgMTAwLiBUaGUgdmFsdWUgbXVzdCBkaXZpZGUgMTAwMCB3aXRoIGEgcmVtYWluZGVyIGFsbW9zdCAwLiBQb3NzaWJsZSB2YWx1ZXMgYXJlIDEwMDAsIDUwMCwgMzMzLCAyNTAsIDIwMCwgMTY2LCAxNDIsIDEyNSwgMTExLCAxMDAgLi4uLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+Cis8aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5UeXBlZGVmIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImFiYjQ0NjQwNDc1MmY1NmIwMjhlYWZhODMwMmRiOTU1ZiIgbmFtZT0iYWJiNDQ2NDA0NzUyZjU2YjAyOGVhZmE4MzAyZGI5NTVmIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWJiNDQ2NDA0NzUyZjU2YjAyOGVhZmE4MzAyZGI5NTVmIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hY2RfY29uZmxpY3RfY2FsbGJhY2tfdDwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dHlwZWRlZiB2b2lkKCogYWNkX2NvbmZsaWN0X2NhbGxiYWNrX3QpIChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBhY2RfY2FsbGJhY2tfZW51bV90IHN0YXRlKTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkNhbGxiYWNrIGZ1bmN0aW9uOiBIYW5kbGUgY29uZmxpY3QgaW5mb3JtYXRpb24gZnJvbSBBQ0QgbW9kdWxlPC9wPgorPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CisgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPm5ldGlmPC90ZD48dGQ+bmV0d29yayBpbnRlcmZhY2UgdG8gaGFuZGxlIGNvbmZsaWN0IGluZm9ybWF0aW9uIG9uIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnN0YXRlPC90ZD48dGQ+YWNkX2NhbGxiYWNrX2VudW1fdCA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+Cis8YSBpZD0iYWE5MmUyMTQxMGQwZjBkMzU3YWI5MTY2Y2RhMjQ5MzdhIiBuYW1lPSJhYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmFjZF9hcnBfcmVwbHkoKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dm9pZCBhY2RfYXJwX3JlcGx5IDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bmV0aWY8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RldGhhcnBfX2hkci5odG1sIj5ldGhhcnBfaGRyPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5oZHI8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+SGFuZGxlcyBldmVyeSBpbmNvbWluZyBBUlAgUGFja2V0LCBjYWxsZWQgYnkgPGEgY2xhc3M9ImVsIiBocmVmPSJldGhhcnBfOGMuaHRtbCNhNTQwYTU1MDY5Nzk2OTNlZjlhYzQ0OTZkYjliZmE3ZDYiPmV0aGFycF9pbnB1dCgpPC9hPi48L3A+Cis8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bmV0aWY8L3RkPjx0ZD5uZXR3b3JrIGludGVyZmFjZSB0byB1c2UgZm9yIGFjZCBwcm9jZXNzaW5nIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmhkcjwvdGQ+PHRkPkluY29taW5nIEFSUCBwYWNrZXQgPC90ZD48L3RyPgorICA8L3RhYmxlPgorICA8L2RkPgorPC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJhOGRkZjNlMWNmYThmNWQ2NzRkNmNlMDBjMmY3ZDg0MWUiIG5hbWU9ImE4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2E4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YWNkX3RtcigpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIGFjZF90bXIgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnZvaWQ8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5IYXMgdG8gYmUgY2FsbGVkIGluIGxvb3AgZXZlcnkgQUNEX1RNUl9JTlRFUlZBTCBtaWxsaXNlY29uZHMgPC9wPgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KKzwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+Cis8IS0tIHN0YXJ0IGZvb3RlciBwYXJ0IC0tPgorPGRpdiBpZD0ibmF2LXBhdGgiIGNsYXNzPSJuYXZwYXRoIj48IS0tIGlkIGlzIG5lZWRlZCBmb3IgdHJlZXZpZXcgZnVuY3Rpb24hIC0tPgorICA8dWw+CisgICAgPGxpIGNsYXNzPSJuYXZlbGVtIj48YSBjbGFzcz0iZWwiIGhyZWY9ImRpcl82ODI2N2QxMzA5YTFhZjhlODI5N2VmNGMzZWZiY2RiYS5odG1sIj5zcmM8L2E+PC9saT48bGkgY2xhc3M9Im5hdmVsZW0iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGlyX2IwODU2ZjZiMGQ4MGNjYjI2M2IyZjQxNWM5MWY5ZTE3Lmh0bWwiPmluY2x1ZGU8L2E+PC9saT48bGkgY2xhc3M9Im5hdmVsZW0iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGlyXzRlNmIzY2YzM2E2MWI2Y2FhYzljOGFjMzBjODY2ZjM3Lmh0bWwiPmx3aXA8L2E+PC9saT48bGkgY2xhc3M9Im5hdmVsZW0iPjxhIGNsYXNzPSJlbCIgaHJlZj0iYWNkXzhoLmh0bWwiPmFjZC5oPC9hPjwvbGk+CisgICAgPGxpIGNsYXNzPSJmb290ZXIiPkdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5kb3h5Z2VuLm9yZy9pbmRleC5odG1sIj48aW1nIGNsYXNzPSJmb290ZXIiIHNyYz0iZG94eWdlbi5zdmciIHdpZHRoPSIxMDQiIGhlaWdodD0iMzEiIGFsdD0iZG94eWdlbiIvPjwvYT4gMS4xMi4wIDwvbGk+CisgIDwvdWw+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FjZF84aC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FjZF84aC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMGI0YWE2Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWNkXzhoLmpzCkBAIC0wLDAgKzEsMTQgQEAKK3ZhciBhY2RfOGggPQorWworICAgIFsgImFjZCIsICJzdHJ1Y3RhY2QuaHRtbCIsICJzdHJ1Y3RhY2QiIF0sCisgICAgWyAiQUNEX1RNUl9JTlRFUlZBTCIsICJhY2RfOGguaHRtbCNhYWNlNmRhMGIwZGFjZDc3YTlkNmJkMTFmNDI0ZmZhODIiLCBudWxsIF0sCisgICAgWyAiYWNkX2NvbmZsaWN0X2NhbGxiYWNrX3QiLCAiYWNkXzhoLmh0bWwjYWJiNDQ2NDA0NzUyZjU2YjAyOGVhZmE4MzAyZGI5NTVmIiwgbnVsbCBdLAorICAgIFsgImFjZF9hZGQiLCAiZ3JvdXBfX2FjZC5odG1sI2dhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiLCBudWxsIF0sCisgICAgWyAiYWNkX2FycF9yZXBseSIsICJhY2RfOGguaHRtbCNhYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiLCBudWxsIF0sCisgICAgWyAiYWNkX25ldGlmX2lwX2FkZHJfY2hhbmdlZCIsICJncm91cF9fYWNkLmh0bWwjZ2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyIsIG51bGwgXSwKKyAgICBbICJhY2RfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93biIsICJncm91cF9fYWNkLmh0bWwjZ2EyODcyZmEzNzVmOWNkOGY1YjA5NTYzOWQ2NTJmNmJmZiIsIG51bGwgXSwKKyAgICBbICJhY2RfcmVtb3ZlIiwgImdyb3VwX19hY2QuaHRtbCNnYTcwNTAzNjk2YmNhMjVlMWNmYjYxZmFkMzhiNDMyN2RhIiwgbnVsbCBdLAorICAgIFsgImFjZF9zdGFydCIsICJncm91cF9fYWNkLmh0bWwjZ2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiIsIG51bGwgXSwKKyAgICBbICJhY2Rfc3RvcCIsICJncm91cF9fYWNkLmh0bWwjZ2EzNmRhMmIyMzk1MWExNGNhM2M5MmY1ZTc4ZGIyZjFiNyIsIG51bGwgXSwKKyAgICBbICJhY2RfdG1yIiwgImFjZF84aC5odG1sI2E4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSIsIG51bGwgXQorXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfOGMuaHRtbAppbmRleCA5NWQyNzYwLi4wZThkMGYwIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF84Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwXzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTE2LDExICsxMTYsMTEgQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmFhNzRjOWZjMzU4Y2ZmZWViNzMxMWI0MjEyYjBkNmZjNyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTphZmQ3ZjZiNjYwMmU4OWNmZjUxZjhhOGVhMDMxNTMyMWQiIGlkPSJyX2FmZDdmNmI2NjAyZTg5Y2ZmNTFmOGE4ZWEwMzE1MzIxZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhZmQ3ZjZiNjYwMmU4OWNmZjUxZjhhOGVhMDMxNTMyMWQiPmFsdGNwX2ZyZWU8L2E+IChzdHJ1Y3QgYWx0Y3BfcGNiICpjb25uKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmFmZDdmNmI2NjAyZTg5Y2ZmNTFmOGE4ZWEwMzE1MzIxZCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYWZmYzcyYjlkYzg1YmIwYTllODNkMDQ5MjFkNGM3YmNkIiBpZD0icl9nYWZmYzcyYjlkYzg1YmIwYTllODNkMDQ5MjFkNGM3YmNkIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfcGNiIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYWZmYzcyYjlkYzg1YmIwYTllODNkMDQ5MjFkNGM3YmNkIj5hbHRjcF9uZXdfaXA2PC9hPiAoYWx0Y3BfYWxsb2NhdG9yX3QgKmFsbG9jYXRvcik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCIgaWQ9InJfZ2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IGFsdGNwX3BjYiAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCI+YWx0Y3BfbmV3X2lwNjwvYT4gKDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSI+YWx0Y3BfYWxsb2NhdG9yX3Q8L2E+ICphbGxvY2F0b3IpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4IiBpZD0icl9nYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfcGNiIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij5hbHRjcF9uZXc8L2E+IChhbHRjcF9hbGxvY2F0b3JfdCAqYWxsb2NhdG9yKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4IiBpZD0icl9nYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfcGNiIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij5hbHRjcF9uZXc8L2E+ICg8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhMDRhMzI4ZjY3MzU5ZWUwM2QxZWM2ODI0OTc4YjcyMDkiPmFsdGNwX2FsbG9jYXRvcl90PC9hPiAqYWxsb2NhdG9yKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNmIwZmMyMGNjZTQwMzY0YWE4MjFjMDdkYzM0Y2I5MDgiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2FiYTg4NTA2MmZlNDNkMzE3ZTY2YzI1ZmViOWY3ZjcxZCIgaWQ9InJfZ2FiYTg4NTA2MmZlNDNkMzE3ZTY2YzI1ZmViOWY3ZjcxZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IGFsdGNwX3BjYiAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2FiYTg4NTA2MmZlNDNkMzE3ZTY2YzI1ZmViOWY3ZjcxZCI+YWx0Y3BfbmV3X2lwX3R5cGU8L2E+IChhbHRjcF9hbGxvY2F0b3JfdCAqYWxsb2NhdG9yLCB1OF90IGlwX3R5cGUpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiIGlkPSJyX2dhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCBhbHRjcF9wY2IgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiPmFsdGNwX25ld19pcF90eXBlPC9hPiAoPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ij5hbHRjcF9hbGxvY2F0b3JfdDwvYT4gKmFsbG9jYXRvciwgdThfdCBpcF90eXBlKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2ExOTdhMzNhZjAzODU1NmEwNGQ4ZjI3YzcwMzNkNzcxZiIgaWQ9InJfZ2ExOTdhMzNhZjAzODU1NmEwNGQ4ZjI3YzcwMzNkNzcxZiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhMTk3YTMzYWYwMzg1NTZhMDRkOGYyN2M3MDMzZDc3MWYiPmFsdGNwX2FyZzwvYT4gKHN0cnVjdCBhbHRjcF9wY2IgKmNvbm4sIHZvaWQgKmFyZyk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTE5N2EzM2FmMDM4NTU2YTA0ZDhmMjdjNzAzM2Q3NzFmIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwXzhoLmh0bWwKaW5kZXggNDA4ZTdiOS4uMmRjNzAxYSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTk4LDYgKzk4LDggQEAKIAogPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgPGRpdiBjbGFzcz0ic3VtbWFyeSI+Cis8YSBocmVmPSIjbmVzdGVkLWNsYXNzZXMiPkRhdGEgU3RydWN0dXJlczwvYT4gJiMxMjQ7Cis8YSBocmVmPSIjdHlwZWRlZi1tZW1iZXJzIj5UeXBlZGVmczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjZnVuYy1tZW1iZXJzIj5GdW5jdGlvbnM8L2E+ICA8L2Rpdj4KICAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5hbHRjcC5oIEZpbGUgUmVmZXJlbmNlPC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0taGVhZGVyLS0+CkBAIC0xMDgsMTMgKzExMCwyMyBAQAogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJwYnVmXzhoLmh0bWwiPmx3aXAvcGJ1Zi5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0iaXBfX2FkZHJfOGguaHRtbCI+bHdpcC9pcF9hZGRyLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPC9kaXY+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0ibmVzdGVkLWNsYXNzZXMiIG5hbWU9Im5lc3RlZC1jbGFzc2VzIj48L2E+CitEYXRhIFN0cnVjdHVyZXM8L2gyPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCAmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhbHRjcF9fYWxsb2NhdG9yX19zLmh0bWwiPmFsdGNwX2FsbG9jYXRvcl9zPC9hPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzwvdGFibGU+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0idHlwZWRlZi1tZW1iZXJzIiBuYW1lPSJ0eXBlZGVmLW1lbWJlcnMiPjwvYT4KK1R5cGVkZWZzPC9oMj48L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSIgaWQ9InJfZ2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dHlwZWRlZiBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhbHRjcF9fYWxsb2NhdG9yX19zLmh0bWwiPmFsdGNwX2FsbG9jYXRvcl9zPC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhMDRhMzI4ZjY3MzU5ZWUwM2QxZWM2ODI0OTc4YjcyMDkiPmFsdGNwX2FsbG9jYXRvcl90PC9hPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMDRhMzI4ZjY3MzU5ZWUwM2QxZWM2ODI0OTc4YjcyMDkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImZ1bmMtbWVtYmVycyIgbmFtZT0iZnVuYy1tZW1iZXJzIj48L2E+CiBGdW5jdGlvbnM8L2gyPjwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4IiBpZD0icl9nYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfcGNiIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij5hbHRjcF9uZXc8L2E+IChhbHRjcF9hbGxvY2F0b3JfdCAqYWxsb2NhdG9yKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4IiBpZD0icl9nYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfcGNiIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij5hbHRjcF9uZXc8L2E+ICg8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhMDRhMzI4ZjY3MzU5ZWUwM2QxZWM2ODI0OTc4YjcyMDkiPmFsdGNwX2FsbG9jYXRvcl90PC9hPiAqYWxsb2NhdG9yKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNmIwZmMyMGNjZTQwMzY0YWE4MjFjMDdkYzM0Y2I5MDgiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCIgaWQ9InJfZ2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IGFsdGNwX3BjYiAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCI+YWx0Y3BfbmV3X2lwNjwvYT4gKGFsdGNwX2FsbG9jYXRvcl90ICphbGxvY2F0b3IpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhZmZjNzJiOWRjODViYjBhOWU4M2QwNDkyMWQ0YzdiY2QiIGlkPSJyX2dhZmZjNzJiOWRjODViYjBhOWU4M2QwNDkyMWQ0YzdiY2QiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCBhbHRjcF9wY2IgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhZmZjNzJiOWRjODViYjBhOWU4M2QwNDkyMWQ0YzdiY2QiPmFsdGNwX25ld19pcDY8L2E+ICg8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhMDRhMzI4ZjY3MzU5ZWUwM2QxZWM2ODI0OTc4YjcyMDkiPmFsdGNwX2FsbG9jYXRvcl90PC9hPiAqYWxsb2NhdG9yKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZmZjNzJiOWRjODViYjBhOWU4M2QwNDkyMWQ0YzdiY2QiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2FiYTg4NTA2MmZlNDNkMzE3ZTY2YzI1ZmViOWY3ZjcxZCIgaWQ9InJfZ2FiYTg4NTA2MmZlNDNkMzE3ZTY2YzI1ZmViOWY3ZjcxZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IGFsdGNwX3BjYiAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2FiYTg4NTA2MmZlNDNkMzE3ZTY2YzI1ZmViOWY3ZjcxZCI+YWx0Y3BfbmV3X2lwX3R5cGU8L2E+IChhbHRjcF9hbGxvY2F0b3JfdCAqYWxsb2NhdG9yLCB1OF90IGlwX3R5cGUpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiIGlkPSJyX2dhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCBhbHRjcF9wY2IgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiPmFsdGNwX25ld19pcF90eXBlPC9hPiAoPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ij5hbHRjcF9hbGxvY2F0b3JfdDwvYT4gKmFsbG9jYXRvciwgdThfdCBpcF90eXBlKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2ExOTdhMzNhZjAzODU1NmEwNGQ4ZjI3YzcwMzNkNzcxZiIgaWQ9InJfZ2ExOTdhMzNhZjAzODU1NmEwNGQ4ZjI3YzcwMzNkNzcxZiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhMTk3YTMzYWYwMzg1NTZhMDRkOGYyN2M3MDMzZDc3MWYiPmFsdGNwX2FyZzwvYT4gKHN0cnVjdCBhbHRjcF9wY2IgKmNvbm4sIHZvaWQgKmFyZyk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTE5N2EzM2FmMDM4NTU2YTA0ZDhmMjdjNzAzM2Q3NzFmIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgpAQCAtMTU2LDggKzE2OCw4IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTUwNDBiMGE0NjQ2YmNhNzE4ZDM2MTFiYTdmYTU1OGM1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgotPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48cD5BcHBsaWNhdGlvbiBsYXllcmVkIFRDUCBjb25uZWN0aW9uIEFQSSAodG8gYmUgdXNlZCBmcm9tIFRDUElQIHRocmVhZCk8YnIgIC8+Ci0gVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBnZW5lcmljIEFQSS4gRm9yIG1vcmUgZGV0YWlscyBzZWUgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX2FwaS5odG1sIj5BcHBsaWNhdGlvbiBsYXllcmVkIFRDUCBJbnRyb2R1Y3Rpb248L2E+LiA8L3A+Cis8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxwPkFwcGxpY2F0aW9uIGxheWVyZWQgVENQIGNvbm5lY3Rpb24gQVBJICh0byBiZSB1c2VkIGZyb20gVENQSVAgdGhyZWFkKTwvcD4KKzxwPlRoaXMgZmlsZSBjb250YWlucyB0aGUgZ2VuZXJpYyBBUEkuIEZvciBtb3JlIGRldGFpbHMgc2VlIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX19hcGkuaHRtbCI+QXBwbGljYXRpb24gbGF5ZXJlZCBUQ1AgSW50cm9kdWN0aW9uPC9hPi4gPC9wPgogPC9kaXY+PC9kaXY+PCEtLSBjb250ZW50cyAtLT4KIDwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+CiA8IS0tIHN0YXJ0IGZvb3RlciBwYXJ0IC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfOGguanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF84aC5qcwppbmRleCA4NmY2MDNmLi5iNmMxNzZiIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF84aC5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF84aC5qcwpAQCAtMSw1ICsxLDYgQEAKIHZhciBhbHRjcF84aCA9CiBbCisgICAgWyAiYWx0Y3BfYWxsb2NhdG9yX3QiLCAiZ3JvdXBfX2FsdGNwLmh0bWwjZ2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSIsIG51bGwgXSwKICAgICBbICJhbHRjcF9hYm9ydCIsICJncm91cF9fYWx0Y3AuaHRtbCNnYTdmNmZhYjk5ZmVkNDQ4Mzg1YTc2YjRhNTEwMDc5NmFiIiwgbnVsbCBdLAogICAgIFsgImFsdGNwX2FjY2VwdCIsICJncm91cF9fYWx0Y3AuaHRtbCNnYTdjNGNkMGIxMTc5YTUzYjFhMjIzOTM2YmEyMjcwYmY5IiwgbnVsbCBdLAogICAgIFsgImFsdGNwX2FyZyIsICJncm91cF9fYWx0Y3AuaHRtbCNnYTE5N2EzM2FmMDM4NTU2YTA0ZDhmMjdjNzAzM2Q3NzFmIiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX2FsbG9jXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fYWxsb2NfOGMuaHRtbAppbmRleCBmNGU2NTU1Li4yYWZmOTllIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fYWxsb2NfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fYWxsb2NfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTksNyArMTE5LDcgQEAKIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxkaXYgY2xhc3M9InRleHRibG9jayI+PHA+QXBwbGljYXRpb24gbGF5ZXJlZCBUQ1AgY29ubmVjdGlvbiBBUEkgKHRvIGJlIHVzZWQgZnJvbSBUQ1BJUCB0aHJlYWQpPGJyICAvPgotVGhpcyBpbnRlcmZhY2UgbWltaWNzIHRoZSB0Y3AgY2FsbGJhY2sgQVBJIHRvIHRoZSBhcHBsaWNhdGlvbiB3aGlsZSBwcmV2ZW50aW5nIGRpcmVjdCBsaW5raW5nIChtdWNoIGxpa2UgdmlydHVhbCBmdW5jdGlvbnMpLiBUaGlzIHdheSwgYW4gYXBwbGljYXRpb24gY2FuIG1ha2UgdXNlIG9mIG90aGVyIGFwcGxpY2F0aW9uIGxheWVyIHByb3RvY29scyBvbiB0b3Agb2YgVENQIHdpdGhvdXQga25vd2luZyB0aGUgZGV0YWlscyAoZS5nLiBUTFMsIHByb3h5IGNvbm5lY3Rpb24pLjwvcD4KKyBUaGlzIGludGVyZmFjZSBtaW1pY3MgdGhlIHRjcCBjYWxsYmFjayBBUEkgdG8gdGhlIGFwcGxpY2F0aW9uIHdoaWxlIHByZXZlbnRpbmcgZGlyZWN0IGxpbmtpbmcgKG11Y2ggbGlrZSB2aXJ0dWFsIGZ1bmN0aW9ucykuIFRoaXMgd2F5LCBhbiBhcHBsaWNhdGlvbiBjYW4gbWFrZSB1c2Ugb2Ygb3RoZXIgYXBwbGljYXRpb24gbGF5ZXIgcHJvdG9jb2xzIG9uIHRvcCBvZiBUQ1Agd2l0aG91dCBrbm93aW5nIHRoZSBkZXRhaWxzIChlLmcuIFRMUywgcHJveHkgY29ubmVjdGlvbikuPC9wPgogPHA+VGhpcyBmaWxlIGNvbnRhaW5zIGFsbG9jYXRpb24gaW1wbGVtZW50YXRpb24gdGhhdCBjb21iaW5lIHNldmVyYWwgbGF5ZXJzLiA8L3A+CiA8L2Rpdj48L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX19wcml2XzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fcHJpdl84aC5odG1sCmluZGV4IDg4ZDU3YWYuLjc0YTZlNmYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX19wcml2XzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3ByaXZfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTUsNyArMTE1LDcgQEAKIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxkaXYgY2xhc3M9InRleHRibG9jayI+PHA+QXBwbGljYXRpb24gbGF5ZXJlZCBUQ1AgY29ubmVjdGlvbiBBUEkgKHRvIGJlIHVzZWQgZnJvbSBUQ1BJUCB0aHJlYWQpPGJyICAvPgotVGhpcyBpbnRlcmZhY2UgbWltaWNzIHRoZSB0Y3AgY2FsbGJhY2sgQVBJIHRvIHRoZSBhcHBsaWNhdGlvbiB3aGlsZSBwcmV2ZW50aW5nIGRpcmVjdCBsaW5raW5nIChtdWNoIGxpa2UgdmlydHVhbCBmdW5jdGlvbnMpLiBUaGlzIHdheSwgYW4gYXBwbGljYXRpb24gY2FuIG1ha2UgdXNlIG9mIG90aGVyIGFwcGxpY2F0aW9uIGxheWVyIHByb3RvY29scyBvbiB0b3Agb2YgVENQIHdpdGhvdXQga25vd2luZyB0aGUgZGV0YWlscyAoZS5nLiBUTFMsIHByb3h5IGNvbm5lY3Rpb24pLiA8L3A+CisgVGhpcyBpbnRlcmZhY2UgbWltaWNzIHRoZSB0Y3AgY2FsbGJhY2sgQVBJIHRvIHRoZSBhcHBsaWNhdGlvbiB3aGlsZSBwcmV2ZW50aW5nIGRpcmVjdCBsaW5raW5nIChtdWNoIGxpa2UgdmlydHVhbCBmdW5jdGlvbnMpLiBUaGlzIHdheSwgYW4gYXBwbGljYXRpb24gY2FuIG1ha2UgdXNlIG9mIG90aGVyIGFwcGxpY2F0aW9uIGxheWVyIHByb3RvY29scyBvbiB0b3Agb2YgVENQIHdpdGhvdXQga25vd2luZyB0aGUgZGV0YWlscyAoZS5nLiBUTFMsIHByb3h5IGNvbm5lY3Rpb24pLiA8L3A+CiA8L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KIDxhIGlkPSJhYTc0YzlmYzM1OGNmZmVlYjczMTFiNDIxMmIwZDZmYzciIG5hbWU9ImFhNzRjOWZjMzU4Y2ZmZWViNzMxMWI0MjEyYjBkNmZjNyI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FhNzRjOWZjMzU4Y2ZmZWViNzMxMWI0MjEyYjBkNmZjNyI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YWx0Y3BfYWxsb2MoKTwvaDI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fcHJveHljb25uZWN0XzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fcHJveHljb25uZWN0XzhjLmh0bWwKaW5kZXggZjU1MGIwNi4uMTdkN2FjYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3Byb3h5Y29ubmVjdF84Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX19wcm94eWNvbm5lY3RfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fcHJveHljb25uZWN0XzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fcHJveHljb25uZWN0XzhoLmh0bWwKaW5kZXggYmY2MzQyNC4uMTcwNWYxOCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3Byb3h5Y29ubmVjdF84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX19wcm94eWNvbm5lY3RfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGNwXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGNwXzhjLmh0bWwKaW5kZXggY2ZiNjZiNS4uZGUwYWY3OSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3RjcF84Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190Y3BfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTcsOCArMTE3LDggQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmE3NzU4MmM5M2JiOGEwYWEyNzE5ZTg2YjhjODUwNWU4YSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KLTxkaXYgY2xhc3M9InRleHRibG9jayI+PHA+QXBwbGljYXRpb24gbGF5ZXJlZCBUQ1AgY29ubmVjdGlvbiBBUEkgKHRvIGJlIHVzZWQgZnJvbSBUQ1BJUCB0aHJlYWQpPGJyICAvPgotVGhpcyBpbnRlcmZhY2UgbWltaWNzIHRoZSB0Y3AgY2FsbGJhY2sgQVBJIHRvIHRoZSBhcHBsaWNhdGlvbiB3aGlsZSBwcmV2ZW50aW5nIGRpcmVjdCBsaW5raW5nIChtdWNoIGxpa2UgdmlydHVhbCBmdW5jdGlvbnMpLiBUaGlzIHdheSwgYW4gYXBwbGljYXRpb24gY2FuIG1ha2UgdXNlIG9mIG90aGVyIGFwcGxpY2F0aW9uIGxheWVyIHByb3RvY29scyBvbiB0b3Agb2YgVENQIHdpdGhvdXQga25vd2luZyB0aGUgZGV0YWlscyAoZS5nLiBUTFMsIHByb3h5IGNvbm5lY3Rpb24pLjwvcD4KKzxkaXYgY2xhc3M9InRleHRibG9jayI+PHA+QXBwbGljYXRpb24gbGF5ZXJlZCBUQ1AgY29ubmVjdGlvbiBBUEkgKHRvIGJlIHVzZWQgZnJvbSBUQ1BJUCB0aHJlYWQpPC9wPgorPHA+VGhpcyBpbnRlcmZhY2UgbWltaWNzIHRoZSB0Y3AgY2FsbGJhY2sgQVBJIHRvIHRoZSBhcHBsaWNhdGlvbiB3aGlsZSBwcmV2ZW50aW5nIGRpcmVjdCBsaW5raW5nIChtdWNoIGxpa2UgdmlydHVhbCBmdW5jdGlvbnMpLiBUaGlzIHdheSwgYW4gYXBwbGljYXRpb24gY2FuIG1ha2UgdXNlIG9mIG90aGVyIGFwcGxpY2F0aW9uIGxheWVyIHByb3RvY29scyBvbiB0b3Agb2YgVENQIHdpdGhvdXQga25vd2luZyB0aGUgZGV0YWlscyAoZS5nLiBUTFMsIHByb3h5IGNvbm5lY3Rpb24pLjwvcD4KIDxwPlRoaXMgZmlsZSBjb250YWlucyB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBjYWxsaW5nIGludG8gdGNwLiA8L3A+CiA8L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KIDxhIGlkPSJhNzc1ODJjOTNiYjhhMGFhMjcxOWU4NmI4Yzg1MDVlOGEiIG5hbWU9ImE3NzU4MmM5M2JiOGEwYWEyNzE5ZTg2YjhjODUwNWU4YSI+PC9hPgpAQCAtMTM5LDcgKzEzOSw3IEBACiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPmFsdGNwX3RjcCBhbGxvY2F0b3IgZnVuY3Rpb24gZml0dGluZyB0byBhbHRjcF9hbGxvY2F0b3JfdCAvIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2E2YjBmYzIwY2NlNDAzNjRhYTgyMWMwN2RjMzRjYjkwOCI+YWx0Y3BfbmV3PC9hPi48L3A+Cis8cD5hbHRjcF90Y3AgYWxsb2NhdG9yIGZ1bmN0aW9uIGZpdHRpbmcgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ij5hbHRjcF9hbGxvY2F0b3JfdDwvYT4gLyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhNmIwZmMyMGNjZTQwMzY0YWE4MjFjMDdkYzM0Y2I5MDgiPmFsdGNwX25ldzwvYT4uPC9wPgogPHA+YXJnIHBvaW50ZXIgaXMgbm90IHVzZWQgZm9yIFRDUC4gPC9wPgogCiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190Y3BfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190Y3BfOGguaHRtbAppbmRleCAwYzk2NWJjLi4wM2U4MmI3IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGNwXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3RjcF84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTExMiw3ICsxMTIsNyBAQAogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48cD5BcHBsaWNhdGlvbiBsYXllcmVkIFRDUCBjb25uZWN0aW9uIEFQSSAodG8gYmUgdXNlZCBmcm9tIFRDUElQIHRocmVhZCk8YnIgIC8+Ci1UaGlzIGludGVyZmFjZSBtaW1pY3MgdGhlIHRjcCBjYWxsYmFjayBBUEkgdG8gdGhlIGFwcGxpY2F0aW9uIHdoaWxlIHByZXZlbnRpbmcgZGlyZWN0IGxpbmtpbmcgKG11Y2ggbGlrZSB2aXJ0dWFsIGZ1bmN0aW9ucykuIFRoaXMgd2F5LCBhbiBhcHBsaWNhdGlvbiBjYW4gbWFrZSB1c2Ugb2Ygb3RoZXIgYXBwbGljYXRpb24gbGF5ZXIgcHJvdG9jb2xzIG9uIHRvcCBvZiBUQ1Agd2l0aG91dCBrbm93aW5nIHRoZSBkZXRhaWxzIChlLmcuIFRMUywgcHJveHkgY29ubmVjdGlvbikuPC9wPgorIFRoaXMgaW50ZXJmYWNlIG1pbWljcyB0aGUgdGNwIGNhbGxiYWNrIEFQSSB0byB0aGUgYXBwbGljYXRpb24gd2hpbGUgcHJldmVudGluZyBkaXJlY3QgbGlua2luZyAobXVjaCBsaWtlIHZpcnR1YWwgZnVuY3Rpb25zKS4gVGhpcyB3YXksIGFuIGFwcGxpY2F0aW9uIGNhbiBtYWtlIHVzZSBvZiBvdGhlciBhcHBsaWNhdGlvbiBsYXllciBwcm90b2NvbHMgb24gdG9wIG9mIFRDUCB3aXRob3V0IGtub3dpbmcgdGhlIGRldGFpbHMgKGUuZy4gVExTLCBwcm94eSBjb25uZWN0aW9uKS48L3A+CiA8cD5UaGlzIGZpbGUgY29udGFpbnMgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24gY2FsbGluZyBpbnRvIHRjcC4gPC9wPgogPC9kaXY+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iYTc3NTgyYzkzYmI4YTBhYTI3MTllODZiOGM4NTA1ZThhIiBuYW1lPSJhNzc1ODJjOTNiYjhhMGFhMjcxOWU4NmI4Yzg1MDVlOGEiPjwvYT4KQEAgLTEzMyw3ICsxMzMsNyBAQAogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5hbHRjcF90Y3AgYWxsb2NhdG9yIGZ1bmN0aW9uIGZpdHRpbmcgdG8gYWx0Y3BfYWxsb2NhdG9yX3QgLyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhNmIwZmMyMGNjZTQwMzY0YWE4MjFjMDdkYzM0Y2I5MDgiPmFsdGNwX25ldzwvYT4uPC9wPgorPHA+YWx0Y3BfdGNwIGFsbG9jYXRvciBmdW5jdGlvbiBmaXR0aW5nIHRvIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSI+YWx0Y3BfYWxsb2NhdG9yX3Q8L2E+IC8gPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij5hbHRjcF9uZXc8L2E+LjwvcD4KIDxwPmFyZyBwb2ludGVyIGlzIG5vdCB1c2VkIGZvciBUQ1AuIDwvcD4KIAogPC9kaXY+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzXzhoLmh0bWwKaW5kZXggMTRiZDkwYi4uZjE2NjQ1NCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3Rsc184aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDQsMTEgKzEwNCwxMiBAQAogPGRpdiBjbGFzcz0iY29udGVudHMiPgogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Im9wdF84aC5odG1sIj5sd2lwL29wdC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0iYWx0Y3BfOGguaHRtbCI+bHdpcC9hbHRjcC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KKzxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0iYWx0Y3BfX3Rsc19fbWJlZHRsc19fb3B0c184aC5odG1sIj5sd2lwL2FwcHMvYWx0Y3BfdGxzX21iZWR0bHNfb3B0cy5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDwvZGl2Pjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImZ1bmMtbWVtYmVycyIgbmFtZT0iZnVuYy1tZW1iZXJzIj48L2E+CiBGdW5jdGlvbnM8L2gyPjwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYWY2ZWQxMzI3MTM5NDM3MWNjODlkNzBlZjUxMjhjNDExIiBpZD0icl9nYWY2ZWQxMzI3MTM5NDM3MWNjODlkNzBlZjUxMjhjNDExIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWY2ZWQxMzI3MTM5NDM3MWNjODlkNzBlZjUxMjhjNDExIj5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19zZXJ2ZXI8L2E+ICh1aW50OF90IGNlcnRfY291bnQpPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FmNmVkMTMyNzEzOTQzNzFjYzg5ZDcwZWY1MTI4YzQxMSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWEzNzY0OWJmMjRlYmVhMjM1YThlM2U4ZjUwYjk4MzFmIiBpZD0icl9nYWEzNzY0OWJmMjRlYmVhMjM1YThlM2U4ZjUwYjk4MzFmIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWEzNzY0OWJmMjRlYmVhMjM1YThlM2U4ZjUwYjk4MzFmIj5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19zZXJ2ZXI8L2E+ICh1OF90IGNlcnRfY291bnQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FhMzc2NDliZjI0ZWJlYTIzNWE4ZTNlOGY1MGI5ODMxZiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWU2ZjUyMzcwYjYyYjBmNGJhOGQzNzNjNTE4NmM5ZTdlIiBpZD0icl9nYWU2ZjUyMzcwYjYyYjBmNGJhOGQzNzNjNTE4NmM5ZTdlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWU2ZjUyMzcwYjYyYjBmNGJhOGQzNzNjNTE4NmM5ZTdlIj5hbHRjcF90bHNfY29uZmlnX3NlcnZlcl9hZGRfcHJpdmtleV9jZXJ0PC9hPiAoc3RydWN0IGFsdGNwX3Rsc19jb25maWcgKmNvbmZpZywgY29uc3QgdThfdCAqcHJpdmtleSwgc2l6ZV90IHByaXZrZXlfbGVuLCBjb25zdCB1OF90ICpwcml2a2V5X3Bhc3MsIHNpemVfdCBwcml2a2V5X3Bhc3NfbGVuLCBjb25zdCB1OF90ICpjZXJ0LCBzaXplX3QgY2VydF9sZW4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FlNmY1MjM3MGI2MmIwZjRiYThkMzczYzUxODZjOWU3ZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTYwYjQ2MzVjODBiODMyYThjM2IzMzJmZGVkZTY5ZDVlIiBpZD0icl9nYTYwYjQ2MzVjODBiODMyYThjM2IzMzJmZGVkZTY5ZDVlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTYwYjQ2MzVjODBiODMyYThjM2IzMzJmZGVkZTY5ZDVlIj5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19zZXJ2ZXJfcHJpdmtleV9jZXJ0PC9hPiAoY29uc3QgdThfdCAqcHJpdmtleSwgc2l6ZV90IHByaXZrZXlfbGVuLCBjb25zdCB1OF90ICpwcml2a2V5X3Bhc3MsIHNpemVfdCBwcml2a2V5X3Bhc3NfbGVuLCBjb25zdCB1OF90ICpjZXJ0LCBzaXplX3QgY2VydF9sZW4pPC90ZD48L3RyPgpAQCAtMTE3LDYgKzExOCw4IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTdiM2MxMWM4YTI3M2Q2OGFjYzMzMmM1NWU2YjM4MTcwIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhNGRjY2JkODYxYzAzYTljMDllYWU2Nzk5ZGEwMDQ1OTciIGlkPSJyX2dhNGRjY2JkODYxYzAzYTljMDllYWU2Nzk5ZGEwMDQ1OTciPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCBhbHRjcF90bHNfY29uZmlnIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhNGRjY2JkODYxYzAzYTljMDllYWU2Nzk5ZGEwMDQ1OTciPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX2NsaWVudF8yd2F5YXV0aDwvYT4gKGNvbnN0IHU4X3QgKmNhLCBzaXplX3QgY2FfbGVuLCBjb25zdCB1OF90ICpwcml2a2V5LCBzaXplX3QgcHJpdmtleV9sZW4sIGNvbnN0IHU4X3QgKnByaXZrZXlfcGFzcywgc2l6ZV90IHByaXZrZXlfcGFzc19sZW4sIGNvbnN0IHU4X3QgKmNlcnQsIHNpemVfdCBjZXJ0X2xlbik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTRkY2NiZDg2MWMwM2E5YzA5ZWFlNjc5OWRhMDA0NTk3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMWY2MGIxMmE2YTQ0NDAyMTRiN2JjZjJlM2JhNDMxMjYiIGlkPSJyX2dhMWY2MGIxMmE2YTQ0NDAyMTRiN2JjZjJlM2JhNDMxMjYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPmludCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2ExZjYwYjEyYTZhNDQ0MDIxNGI3YmNmMmUzYmE0MzEyNiI+YWx0Y3BfdGxzX2NvbmZpZ3VyZV9hbHBuX3Byb3RvY29sczwvYT4gKHN0cnVjdCBhbHRjcF90bHNfY29uZmlnICpjb25mLCBjb25zdCBjaGFyICoqcHJvdG9zKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMWY2MGIxMmE2YTQ0NDAyMTRiN2JjZjJlM2JhNDMxMjYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E4ZmI4YTkyZmEzZjg0MTcwMDUwZGRhYjI4ODhiOTE0NSIgaWQ9InJfZ2E4ZmI4YTkyZmEzZjg0MTcwMDUwZGRhYjI4ODhiOTE0NSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E4ZmI4YTkyZmEzZjg0MTcwMDUwZGRhYjI4ODhiOTE0NSI+YWx0Y3BfdGxzX2ZyZWVfY29uZmlnPC9hPiAoc3RydWN0IGFsdGNwX3Rsc19jb25maWcgKmNvbmYpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E4ZmI4YTkyZmEzZjg0MTcwMDUwZGRhYjI4ODhiOTE0NSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTc1Njc1Y2NlYzE0MmQxN2ZjMDY5NWI0MjVmM2VjMWMyIiBpZD0icl9nYTc1Njc1Y2NlYzE0MmQxN2ZjMDY5NWI0MjVmM2VjMWMyIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTc1Njc1Y2NlYzE0MmQxN2ZjMDY5NWI0MjVmM2VjMWMyIj5hbHRjcF90bHNfZnJlZV9lbnRyb3B5PC9hPiAodm9pZCk8L3RkPjwvdHI+CkBAIC0xMjksNiArMTMyLDE0IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWIwYmRmZDJlZGUwZGY0ZDQ3YjZlMTJjY2FjMmIxNGJjIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhODVkMjBiNGRjMzIxMzQyY2YwOWFkOTMwODYzMDliYjciIGlkPSJyX2dhODVkMjBiNGRjMzIxMzQyY2YwOWFkOTMwODYzMDliYjciPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E4NWQyMGI0ZGMzMjEzNDJjZjA5YWQ5MzA4NjMwOWJiNyI+YWx0Y3BfdGxzX2NvbnRleHQ8L2E+IChzdHJ1Y3QgYWx0Y3BfcGNiICpjb25uKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhODVkMjBiNGRjMzIxMzQyY2YwOWFkOTMwODYzMDliYjciPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FlNmMzY2Y3MmZjZDI5ZTZlYTRjNzQxODEzNzA0MjBjMyIgaWQ9InJfZ2FlNmMzY2Y3MmZjZDI5ZTZlYTRjNzQxODEzNzA0MjBjMyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FlNmMzY2Y3MmZjZDI5ZTZlYTRjNzQxODEzNzA0MjBjMyI+YWx0Y3BfdGxzX2luaXRfc2Vzc2lvbjwvYT4gKHN0cnVjdCBhbHRjcF90bHNfc2Vzc2lvbiAqZGVzdCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWU2YzNjZjcyZmNkMjllNmVhNGM3NDE4MTM3MDQyMGMzIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhODI3Yzc2YTBiZGRjNDkyM2I5YTE3YzgxM2UxMzg5MWUiIGlkPSJyX2dhODI3Yzc2YTBiZGRjNDkyM2I5YTE3YzgxM2UxMzg5MWUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhODI3Yzc2YTBiZGRjNDkyM2I5YTE3YzgxM2UxMzg5MWUiPmFsdGNwX3Rsc19nZXRfc2Vzc2lvbjwvYT4gKHN0cnVjdCBhbHRjcF9wY2IgKmNvbm4sIHN0cnVjdCBhbHRjcF90bHNfc2Vzc2lvbiAqZGVzdCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTgyN2M3NmEwYmRkYzQ5MjNiOWExN2M4MTNlMTM4OTFlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNGFlZDRhYTU1ZDBlMWIxNWY0MTE4ODYzY2VhMDZkMTgiIGlkPSJyX2dhNGFlZDRhYTU1ZDBlMWIxNWY0MTE4ODYzY2VhMDZkMTgiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhNGFlZDRhYTU1ZDBlMWIxNWY0MTE4ODYzY2VhMDZkMTgiPmFsdGNwX3Rsc19zZXRfc2Vzc2lvbjwvYT4gKHN0cnVjdCBhbHRjcF9wY2IgKmNvbm4sIHN0cnVjdCBhbHRjcF90bHNfc2Vzc2lvbiAqZnJvbSk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTRhZWQ0YWE1NWQwZTFiMTVmNDExODg2M2NlYTA2ZDE4Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhOTA2ZWVmY2VmNjZlOWRkMmI0M2MzMzkyNzA0OTA1ZjUiIGlkPSJyX2dhOTA2ZWVmY2VmNjZlOWRkMmI0M2MzMzkyNzA0OTA1ZjUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhOTA2ZWVmY2VmNjZlOWRkMmI0M2MzMzkyNzA0OTA1ZjUiPmFsdGNwX3Rsc19mcmVlX3Nlc3Npb248L2E+IChzdHJ1Y3QgYWx0Y3BfdGxzX3Nlc3Npb24gKmRlc3QpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E5MDZlZWZjZWY2NmU5ZGQyYjQzYzMzOTI3MDQ5MDVmNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxkaXYgY2xhc3M9InRleHRibG9jayI+PHA+QXBwbGljYXRpb24gbGF5ZXJlZCBUQ1AvVExTIGNvbm5lY3Rpb24gQVBJICh0byBiZSB1c2VkIGZyb20gVENQSVAgdGhyZWFkKSA8L3A+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzXzhoLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3Rsc184aC5qcwppbmRleCBiNTMyZmVlLi44NDgwNDg5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzXzhoLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfOGguanMKQEAgLTIsMTMgKzIsMTggQEAKIFsKICAgICBbICJhbHRjcF90bHNfYWxsb2MiLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWIwYmRmZDJlZGUwZGY0ZDQ3YjZlMTJjY2FjMmIxNGJjIiwgbnVsbCBdLAogICAgIFsgImFsdGNwX3Rsc19jb25maWdfc2VydmVyX2FkZF9wcml2a2V5X2NlcnQiLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWU2ZjUyMzcwYjYyYjBmNGJhOGQzNzNjNTE4NmM5ZTdlIiwgbnVsbCBdLAorICAgIFsgImFsdGNwX3Rsc19jb25maWd1cmVfYWxwbl9wcm90b2NvbHMiLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTFmNjBiMTJhNmE0NDQwMjE0YjdiY2YyZTNiYTQzMTI2IiwgbnVsbCBdLAogICAgIFsgImFsdGNwX3Rsc19jb250ZXh0IiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E4NWQyMGI0ZGMzMjEzNDJjZjA5YWQ5MzA4NjMwOWJiNyIsIG51bGwgXSwKICAgICBbICJhbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19jbGllbnQiLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTdiM2MxMWM4YTI3M2Q2OGFjYzMzMmM1NWU2YjM4MTcwIiwgbnVsbCBdLAogICAgIFsgImFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX2NsaWVudF8yd2F5YXV0aCIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhNGRjY2JkODYxYzAzYTljMDllYWU2Nzk5ZGEwMDQ1OTciLCBudWxsIF0sCi0gICAgWyAiYWx0Y3BfdGxzX2NyZWF0ZV9jb25maWdfc2VydmVyIiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FmNmVkMTMyNzEzOTQzNzFjYzg5ZDcwZWY1MTI4YzQxMSIsIG51bGwgXSwKKyAgICBbICJhbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19zZXJ2ZXIiLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWEzNzY0OWJmMjRlYmVhMjM1YThlM2U4ZjUwYjk4MzFmIiwgbnVsbCBdLAogICAgIFsgImFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX3NlcnZlcl9wcml2a2V5X2NlcnQiLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTYwYjQ2MzVjODBiODMyYThjM2IzMzJmZGVkZTY5ZDVlIiwgbnVsbCBdLAogICAgIFsgImFsdGNwX3Rsc19mcmVlX2NvbmZpZyIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhOGZiOGE5MmZhM2Y4NDE3MDA1MGRkYWIyODg4YjkxNDUiLCBudWxsIF0sCiAgICAgWyAiYWx0Y3BfdGxzX2ZyZWVfZW50cm9weSIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhNzU2NzVjY2VjMTQyZDE3ZmMwNjk1YjQyNWYzZWMxYzIiLCBudWxsIF0sCisgICAgWyAiYWx0Y3BfdGxzX2ZyZWVfc2Vzc2lvbiIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhOTA2ZWVmY2VmNjZlOWRkMmI0M2MzMzkyNzA0OTA1ZjUiLCBudWxsIF0sCisgICAgWyAiYWx0Y3BfdGxzX2dldF9zZXNzaW9uIiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E4MjdjNzZhMGJkZGM0OTIzYjlhMTdjODEzZTEzODkxZSIsIG51bGwgXSwKKyAgICBbICJhbHRjcF90bHNfaW5pdF9zZXNzaW9uIiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FlNmMzY2Y3MmZjZDI5ZTZlYTRjNzQxODEzNzA0MjBjMyIsIG51bGwgXSwKICAgICBbICJhbHRjcF90bHNfbmV3IiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FiNmE3MTc0NDZhZjkzMTk0OWJjM2UwZGFjZWIwOTBjOCIsIG51bGwgXSwKKyAgICBbICJhbHRjcF90bHNfc2V0X3Nlc3Npb24iLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTRhZWQ0YWE1NWQwZTFiMTVmNDExODg2M2NlYTA2ZDE4IiwgbnVsbCBdLAogICAgIFsgImFsdGNwX3Rsc193cmFwIiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FhNTI3Yjc1NmFkNjY3M2ExOWNjNzgyODcwMjZjNzY1YyIsIG51bGwgXQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzX19tYmVkdGxzXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzX19tYmVkdGxzXzhjLmh0bWwKaW5kZXggZWQ0ODYzMi4uYjRmOTFmMiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3Rsc19fbWJlZHRsc184Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfX21iZWR0bHNfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDEsMTAgKzEwMSwxMiBAQAogPC9kaXY+PCEtLWhlYWRlci0tPgogPGRpdiBjbGFzcz0iY29udGVudHMiPgogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Im9wdF84aC5odG1sIj5sd2lwL29wdC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KKzxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ic3lzXzhoLmh0bWwiPmx3aXAvc3lzLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fdGxzX19tYmVkdGxzX19vcHRzXzhoLmh0bWwiPmx3aXAvYXBwcy9hbHRjcF90bHNfbWJlZHRsc19vcHRzLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPC9kaXY+PGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+CiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxwPkFwcGxpY2F0aW9uIGxheWVyZWQgVENQL1RMUyBjb25uZWN0aW9uIEFQSSAodG8gYmUgdXNlZCBmcm9tIFRDUElQIHRocmVhZCk8L3A+Ci08cD5UaGlzIGZpbGUgcHJvdmlkZXMgYSBUTFMgbGF5ZXIgdXNpbmcgbWJlZFRMUyA8L3A+Cis8cD5UaGlzIGZpbGUgcHJvdmlkZXMgYSBUTFMgbGF5ZXIgdXNpbmcgbWJlZFRMUzwvcD4KKzxwPlRoaXMgdmVyc2lvbiBpcyBjdXJyZW50bHkgY29tcGF0aWJsZSB3aXRoIHRoZSAyLngueCBicmFuY2ggKGN1cnJlbnQgTFRTKS4gPC9wPgogPC9kaXY+PC9kaXY+PCEtLSBjb250ZW50cyAtLT4KIDwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+CiA8IS0tIHN0YXJ0IGZvb3RlciBwYXJ0IC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3Rsc19fbWJlZHRsc19fbWVtXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzX19tYmVkdGxzX19tZW1fOGMuaHRtbAppbmRleCBiNThmNTE4Li5mNDAzN2I0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzX19tYmVkdGxzX19tZW1fOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzX19tYmVkdGxzX19tZW1fOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzX19tYmVkdGxzX19tZW1fOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfX21iZWR0bHNfX21lbV84aC5odG1sCmluZGV4IGZkODkzMTcuLjk3NjM0OTIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfX21iZWR0bHNfX21lbV84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfX21iZWR0bHNfX21lbV84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguaHRtbAppbmRleCBmYjUxZWI4Li42Y2RjNDA3IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzX19tYmVkdGxzX19vcHRzXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3Rsc19fbWJlZHRsc19fb3B0c184aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyNiwxMSArMTI2LDI4IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjphNDkxN2RiYzAwZjQzZjg4ZWI3MDNjOGJhODliZDM3ZjYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06YTY2ZWZmNzE4OTAxNTMxNjY1NzhiMGI3OGQ3ODBhYzUwIiBpZD0icl9hNjZlZmY3MTg5MDE1MzE2NjU3OGIwYjc4ZDc4MGFjNTAiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTY2ZWZmNzE4OTAxNTMxNjY1NzhiMGI3OGQ3ODBhYzUwIj5BTFRDUF9NQkVEVExTX1NFU1NJT05fVElDS0VUX1RJTUVPVVRfU0VDT05EUzwvYT4mIzE2MDsmIzE2MDsmIzE2MDsoNjAgKiA2MCAqIDI0KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmE2NmVmZjcxODkwMTUzMTY2NTc4YjBiNzhkNzgwYWM1MCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphMTJhYmE2MTU4NmJkNzFjYjQyYjA5MjViOTIxMWIzNjYiIGlkPSJyX2ExMmFiYTYxNTg2YmQ3MWNiNDJiMDkyNWI5MjExYjM2NiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhMTJhYmE2MTU4NmJkNzFjYjQyYjA5MjViOTIxMWIzNjYiPkFMVENQX01CRURUTFNfQVVUSE1PREU8L2E+JiMxNjA7JiMxNjA7JiMxNjA7TUJFRFRMU19TU0xfVkVSSUZZX09QVElPTkFMPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTEyYWJhNjE1ODZiZDcxY2I0MmIwOTI1YjkyMTFiMzY2Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48cD5BcHBsaWNhdGlvbiBsYXllcmVkIFRDUC9UTFMgY29ubmVjdGlvbiBBUEkgKHRvIGJlIHVzZWQgZnJvbSBUQ1BJUCB0aHJlYWQpPC9wPgogPHA+VGhpcyBmaWxlIGNvbnRhaW5zIG9wdGlvbnMgZm9yIGFuIG1iZWR0bHMgcG9ydCBvZiB0aGUgVExTIGxheWVyLiA8L3A+CiA8L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5NYWNybyBEZWZpbml0aW9uIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImExMmFiYTYxNTg2YmQ3MWNiNDJiMDkyNWI5MjExYjM2NiIgbmFtZT0iYTEyYWJhNjE1ODZiZDcxY2I0MmIwOTI1YjkyMTFiMzY2Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTEyYWJhNjE1ODZiZDcxY2I0MmIwOTI1YjkyMTFiMzY2Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5BTFRDUF9NQkVEVExTX0FVVEhNT0RFPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIEFMVENQX01CRURUTFNfQVVUSE1PREUmIzE2MDsmIzE2MDsmIzE2MDtNQkVEVExTX1NTTF9WRVJJRllfT1BUSU9OQUw8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5DZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gbW9kZTogTUJFRFRMU19TU0xfVkVSSUZZX05PTkUsIE1CRURUTFNfU1NMX1ZFUklGWV9PUFRJT05BTCAoZGVmYXVsdCksIE1CRURUTFNfU1NMX1ZFUklGWV9SRVFVSVJFRCAocmVjb21tZW5kZWQpIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxhIGlkPSJhNzcyNzQ1NmVlYjBiMzMxMTIxMzkzNjQxM2QyMzg5ODkiIG5hbWU9ImE3NzI3NDU2ZWViMGIzMzExMjEzOTM2NDEzZDIzODk4OSI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2E3NzI3NDU2ZWViMGIzMzExMjEzOTM2NDEzZDIzODk4OSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+QUxUQ1BfTUJFRFRMU19ERUJVRzwvaDI+CiAKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzX19tYmVkdGxzX19vcHRzXzhoLmpzCmluZGV4IDIzMDk1M2QuLjM2ZDQzYmUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3Rsc19fbWJlZHRsc19fb3B0c184aC5qcwpAQCAtMSw1ICsxLDYgQEAKIHZhciBhbHRjcF9fdGxzX19tYmVkdGxzX19vcHRzXzhoID0KIFsKKyAgICBbICJBTFRDUF9NQkVEVExTX0FVVEhNT0RFIiwgImFsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguaHRtbCNhMTJhYmE2MTU4NmJkNzFjYjQyYjA5MjViOTIxMWIzNjYiLCBudWxsIF0sCiAgICAgWyAiQUxUQ1BfTUJFRFRMU19ERUJVRyIsICJhbHRjcF9fdGxzX19tYmVkdGxzX19vcHRzXzhoLmh0bWwjYTc3Mjc0NTZlZWIwYjMzMTEyMTM5MzY0MTNkMjM4OTg5IiwgbnVsbCBdLAogICAgIFsgIkFMVENQX01CRURUTFNfTElCX0RFQlVHIiwgImFsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguaHRtbCNhMTIyNjJiZTg0YWI2YTA0ZTJhZmY3Y2ExNTIzMjgzMDgiLCBudWxsIF0sCiAgICAgWyAiQUxUQ1BfTUJFRFRMU19MSUJfREVCVUdfTEVWRUxfTUlOIiwgImFsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguaHRtbCNhZDg1NjFiYmZhYmI0ZWM4MWFkMWM0ZDczMDRkMTZiYjUiLCBudWxsIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzX19tYmVkdGxzX19zdHJ1Y3RzXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbHRjcF9fdGxzX19tYmVkdGxzX19zdHJ1Y3RzXzhoLmh0bWwKaW5kZXggNjAyNDQxYy4uMTBiNzYzZSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYWx0Y3BfX3Rsc19fbWJlZHRsc19fc3RydWN0c184aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FsdGNwX190bHNfX21iZWR0bHNfX3N0cnVjdHNfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbm5vdGF0ZWQuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Fubm90YXRlZC5odG1sCmluZGV4IDU5ZjYzNGMuLjU3ZTI2NzUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Fubm90YXRlZC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Fubm90YXRlZC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwNCwxMjggKzEwNCwxMzQgQEAKIDxkaXYgY2xhc3M9ImxldmVscyI+W2RldGFpbCBsZXZlbCA8c3BhbiBvbmNsaWNrPSJqYXZhc2NyaXB0OmR5bnNlY3Rpb24udG9nZ2xlTGV2ZWwoMSk7Ij4xPC9zcGFuPjxzcGFuIG9uY2xpY2s9ImphdmFzY3JpcHQ6ZHluc2VjdGlvbi50b2dnbGVMZXZlbCgyKTsiPjI8L3NwYW4+XTwvZGl2Pjx0YWJsZSBjbGFzcz0iZGlyZWN0b3J5Ij4KIDx0ciBpZD0icm93XzBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RfX2x3aXBlcmZfX3NldHRpbmdzLmh0bWwiIHRhcmdldD0iX3NlbGYiPl9sd2lwZXJmX3NldHRpbmdzPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+CiA8dHIgaWQ9InJvd18xXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RfX2x3aXBlcmZfX3N0YXRlX190Y3AuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+X2x3aXBlcmZfc3RhdGVfdGNwPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18yXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+YXBpX21zZzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfM18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwiIHRhcmdldD0iX3NlbGYiPmF1dG9pcDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGJyaWRnZWlmX19pbml0ZGF0YV9fcy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5icmlkZ2VpZl9pbml0ZGF0YV9zPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd181XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RkaGNwNl9fbXNnLmh0bWwiIHRhcmdldD0iX3NlbGYiPmRoY3A2X21zZzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNl8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGRoY3BfX21zZy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kaGNwX21zZzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfN18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZG5zX19hbnN3ZXIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZG5zX2Fuc3dlcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfOF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGRuc19fYXBpX19tc2cuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZG5zX2FwaV9tc2c8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzlfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGRuc19faGRyLmh0bWwiIHRhcmdldD0iX3NlbGYiPmRuc19oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzEwXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZG5zX19xdWVyeS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kbnNfcXVlcnk8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzExXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RkbnNfX3JlcV9fZW50cnkuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZG5zX3JlcV9lbnRyeTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMTJfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RkbnNfX3RhYmxlX19lbnRyeS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kbnNfdGFibGVfZW50cnk8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzEzXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RldGhfX2FkZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZXRoX2FkZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzE0XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZXRoX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZXRoX2hkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMTVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGV0aF9fdmxhbl9faGRyLmh0bWwiIHRhcmdldD0iX3NlbGYiPmV0aF92bGFuX2hkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMTZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RldGhhcnBfX2hkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5ldGhhcnBfaGRyPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18xN18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZXRoYXJwX19xX19lbnRyeS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5ldGhhcnBfcV9lbnRyeTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMThfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RnZXRob3N0YnluYW1lX19yX19oZWxwZXIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+Z2V0aG9zdGJ5bmFtZV9yX2hlbHBlcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMTlfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGljbXA2X19lY2hvX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWNtcDZfZWNob19oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzIwXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWNtcDZfX2hkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pY21wNl9oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzIxXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpY21wX19lY2hvX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWNtcF9lY2hvX2hkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMjJfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZWVlX184MDIxNTRfX2hkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pZWVlXzgwMjE1NF9oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzIzXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZ21wX19ncm91cC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pZ21wX2dyb3VwPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18yNF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlnbXBfX21zZy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pZ21wX21zZzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMjVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNF9fYWRkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDRfYWRkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMjZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDRfX2FkZHJfX3BhY2tlZC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDRfYWRkcl9wYWNrZWQ8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzI3XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDRfX2FkZHJfX3dvcmRhbGlnbmVkLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNF9hZGRyX3dvcmRhbGlnbmVkPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18yOF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNl9fYWRkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfYWRkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMjlfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNl9fYWRkcl9fcGFja2VkLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNl9hZGRyX3BhY2tlZDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMzBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDZfX2hkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfaGRyPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18zMV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA2X19yZWFzc19faGVscGVyLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNl9yZWFzc19oZWxwZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzMyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA2X19yZWFzc2RhdGEuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXA2X3JlYXNzZGF0YTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMzNfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19hZGRyLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwX2FkZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzM0XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXBfX2dsb2JhbHMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXBfZ2xvYmFsczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMzVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19yZWFzc19faGVscGVyLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwX3JlYXNzX2hlbHBlcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMzZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcF9fcmVhc3NkYXRhLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwX3JlYXNzZGF0YTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMzdfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGxvd3BhbjZfX2llZWU4MDIxNTRfX2RhdGEuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bG93cGFuNl9pZWVlODAyMTU0X2RhdGE8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzM4XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bG93cGFuNl9fbGlua19fYWRkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5sb3dwYW42X2xpbmtfYWRkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMzlfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGxvd3BhbjZfX3JlYXNzX19oZWxwZXIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bG93cGFuNl9yZWFzc19oZWxwZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzQwXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fY3ljbGljX190aW1lci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5sd2lwX2N5Y2xpY190aW1lcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNDFfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NlbGVjdF9fY2IuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bHdpcF9zZWxlY3RfY2I8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzQyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc29jay5odG1sIiB0YXJnZXQ9Il9zZWxmIj5sd2lwX3NvY2s8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzQzXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnNfaG9zdDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNDRfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWRuc19vdXRwYWNrZXQ8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzQ1XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWRuc19wYWNrZXQ8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzQ2XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcnJfX2luZm8uaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWRuc19ycl9pbmZvPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd180N18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tZG5zX3NlcnZpY2U8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzQ4XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWVtLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1lbTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNDlfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1lbXBfX2Rlc2MuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWVtcF9kZXNjPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd181MF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1sZF9fZ3JvdXAuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWxkX2dyb3VwPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd181MV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWxkX19oZWFkZXIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWxkX2hlYWRlcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNTJfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jbGllbnRfX3MuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bXF0dF9jbGllbnRfczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNTNfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1xdHRfX2Nvbm5lY3RfX2NsaWVudF9faW5mb19fdC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tcXR0X2Nvbm5lY3RfY2xpZW50X2luZm9fdDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNTRfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19yZXF1ZXN0X190Lmh0bWwiIHRhcmdldD0iX3NlbGYiPm1xdHRfcmVxdWVzdF90PC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd181NV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fcmluZ2J1Zl9fdC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tcXR0X3JpbmdidWZfdDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNTZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuYV9faGVhZGVyLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5hX2hlYWRlcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNTdfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5kNl9fbmVpZ2hib3JfX2NhY2hlX19lbnRyeS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZDZfbmVpZ2hib3JfY2FjaGVfZW50cnk8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzU4XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmQ2X19xX19lbnRyeS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZDZfcV9lbnRyeTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNTlfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRiaW9zX2Fuc3dlcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNjBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0Ymlvc19oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzYxXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19uYW1lX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0Ymlvc19uYW1lX2hkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNjJfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19xdWVzdGlvbl9faGRyLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5ldGJpb3NfcXVlc3Rpb25faGRyPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd182M18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Ymlvc19fcmVzcC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRiaW9zX3Jlc3A8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzY0XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0YnVmLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5ldGJ1ZjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNjVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGNvbm4uaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0Y29ubjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNjZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRpZjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNjdfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGlkPSJhcnJfNjdfIiBjbGFzcz0iYXJyb3ciIG9uY2xpY2s9ImR5bnNlY3Rpb24udG9nZ2xlRm9sZGVyKCc2N18nKSI+JiM5NjU4Ozwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InVuaW9ubmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3QuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNjdfMF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjMycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFpcHY0X19jaGFuZ2VkX19zLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwdjRfY2hhbmdlZF9zPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd182N18xXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MzJweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmX19leHRfX2NhbGxiYWNrX19hcmdzX190XzFfMWlwdjZfX2FkZHJfX3N0YXRlX19jaGFuZ2VkX19zLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwdjZfYWRkcl9zdGF0ZV9jaGFuZ2VkX3M8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzY3XzJfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDozMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xaXB2Nl9fc2V0X19zLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwdjZfc2V0X3M8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzY3XzNfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDozMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xbGlua19fY2hhbmdlZF9fcy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5saW5rX2NoYW5nZWRfczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNjdfNF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjMycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFzdGF0dXNfX2NoYW5nZWRfX3MuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c3RhdHVzX2NoYW5nZWRfczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNjhfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXR2ZWN0b3IuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0dmVjdG9yPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd182OV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bnNfX2hlYWRlci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uc19oZWFkZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzcwXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zi5odG1sIiB0YXJnZXQ9Il9zZWxmIj5wYnVmPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd183MV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zl9fY3VzdG9tLmh0bWwiIHRhcmdldD0iX3NlbGYiPnBidWZfY3VzdG9tPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd183Ml8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWZfX2N1c3RvbV9fcmVmLmh0bWwiIHRhcmdldD0iX3NlbGYiPnBidWZfY3VzdG9tX3JlZjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNzNfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWZfX3JvbS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5wYnVmX3JvbTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfNzRfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RyYXdfX3BjYi5odG1sIiB0YXJnZXQ9Il9zZWxmIj5yYXdfcGNiPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd183NV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cmVkaXJlY3RfX2hlYWRlci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5yZWRpcmVjdF9oZWFkZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93Xzc2XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cnNfX2hlYWRlci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5yc19oZWFkZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93Xzc3XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZW5kX19yZXF1ZXN0Lmh0bWwiIHRhcmdldD0iX3NlbGYiPnNtdHBfc2VuZF9yZXF1ZXN0PC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd183OF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c210cF9zZXNzaW9uPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd183OV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbGVhZl9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX2xlYWZfbm9kZTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfODBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19taWIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF9taWI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzgxXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19uZXh0X19vaWRfX3N0YXRlLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfbmV4dF9vaWRfc3RhdGU8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzgyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX25vZGU8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzgzXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19ub2RlX19pbnN0YW5jZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX25vZGVfaW5zdGFuY2U8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93Xzg0XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fb2JqX19pZC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX29ial9pZDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfODVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX29pZF9fcmFuZ2UuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF9vaWRfcmFuZ2U8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93Xzg2XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fc2NhbGFyX19hcnJheV9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3NjYWxhcl9hcnJheV9ub2RlPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd184N18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fc2NhbGFyX19hcnJheV9fbm9kZV9fZGVmLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfc2NhbGFyX2FycmF5X25vZGVfZGVmPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd184OF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX3NjYWxhcl9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3NjYWxhcl9ub2RlPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd184OV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdGFibGVfX2NvbF9fZGVmLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfdGFibGVfY29sX2RlZjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfOTBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX190YWJsZV9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3RhYmxlX25vZGU8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzkxXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX190YWJsZV9fc2ltcGxlX19ub2RlLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfdGFibGVfc2ltcGxlX25vZGU8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzkyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdGhyZWFkc3luY19faW5zdGFuY2UuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF90aHJlYWRzeW5jX2luc3RhbmNlPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd185M18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdGhyZWFkc3luY19fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3RocmVhZHN5bmNfbm9kZTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfOTRfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX190cmVlX19ub2RlLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfdHJlZV9ub2RlPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd185NV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3ZhcmJpbmQ8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93Xzk2XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZF9fbGVuLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfdmFyYmluZF9sZW48L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93Xzk3XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJ1bmlvbnNubXBfX3ZhcmlhbnRfX3ZhbHVlLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfdmFyaWFudF92YWx1ZTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfOThfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbnRwX19tc2cuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c250cF9tc2c8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93Xzk5XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbnRwX19zZXJ2ZXIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c250cF9zZXJ2ZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzEwMF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNudHBfX3RpbWUuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c250cF90aW1lPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18xMDFfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNudHBfX3RpbWVzdGFtcHMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c250cF90aW1lc3RhbXBzPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18xMDJfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJ1bmlvbnNvY2thZGRyX19hbGlnbmVkLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNvY2thZGRyX2FsaWduZWQ8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzEwM18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfXy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zdGF0c188L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzEwNF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX19pZ21wLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN0YXRzX2lnbXA8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzEwNV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfX21lbS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zdGF0c19tZW08L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzEwNl8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX19taWIyLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN0YXRzX21pYjI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzEwN18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfX21pYjJfX25ldGlmX19jdHJzLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN0YXRzX21pYjJfbmV0aWZfY3RyczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMTA4XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfX3Byb3RvLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN0YXRzX3Byb3RvPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18xMDlfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX19zeXMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c3RhdHNfc3lzPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18xMTBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzdGF0c19fc3lzZWxlbS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zdGF0c19zeXNlbGVtPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18xMTFfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRfY19nX2kuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+dENHSTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMTEyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19leHRfX2FyZ19fY2FsbGJhY2tzLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRjcF9leHRfYXJnX2NhbGxiYWNrczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMTEzXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYi5odG1sIiB0YXJnZXQ9Il9zZWxmIj50Y3BfcGNiPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18xMTRfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYl9fbGlzdGVuLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRjcF9wY2JfbGlzdGVuPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18xMTVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRmdHBfX2NvbnRleHQuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+dGZ0cF9jb250ZXh0PC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18xMTZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0aHJlYWRzeW5jX19kYXRhLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRocmVhZHN5bmNfZGF0YTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMTE3XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R1ZHBfX3BjYi5odG1sIiB0YXJnZXQ9Il9zZWxmIj51ZHBfcGNiPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18xMThfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R6ZXBpZl9faW5pdC5odG1sIiB0YXJnZXQ9Il9zZWxmIj56ZXBpZl9pbml0PC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18yXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwiIHRhcmdldD0iX3NlbGYiPmFjZDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfM18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWx0Y3BfX2FsbG9jYXRvcl9fcy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5hbHRjcF9hbGxvY2F0b3JfczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwiIHRhcmdldD0iX3NlbGYiPmFwaV9tc2c8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5hdXRvaXA8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RicmlkZ2VpZl9faW5pdGRhdGFfX3MuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+YnJpZGdlaWZfaW5pdGRhdGFfczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfN18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZGhjcDZfX21zZy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kaGNwNl9tc2c8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzhfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RkaGNwX19tc2cuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZGhjcF9tc2c8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzlfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGRuc19fYW5zd2VyLmh0bWwiIHRhcmdldD0iX3NlbGYiPmRuc19hbnN3ZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzEwXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZG5zX19hcGlfX21zZy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kbnNfYXBpX21zZzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTFfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGRuc19faGRyLmh0bWwiIHRhcmdldD0iX3NlbGYiPmRuc19oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzEyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZG5zX19xdWVyeS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kbnNfcXVlcnk8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzEzXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RkbnNfX3JlcV9fZW50cnkuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZG5zX3JlcV9lbnRyeTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTRfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RkbnNfX3RhYmxlX19lbnRyeS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kbnNfdGFibGVfZW50cnk8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzE1XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RldGhfX2FkZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZXRoX2FkZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzE2XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZXRoX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZXRoX2hkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTdfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGV0aF9fdmxhbl9faGRyLmh0bWwiIHRhcmdldD0iX3NlbGYiPmV0aF92bGFuX2hkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMThfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RldGhhcnBfX2hkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5ldGhhcnBfaGRyPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18xOV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZXRoYXJwX19xX19lbnRyeS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5ldGhhcnBfcV9lbnRyeTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMjBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RnZXRob3N0YnluYW1lX19yX19oZWxwZXIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+Z2V0aG9zdGJ5bmFtZV9yX2hlbHBlcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMjFfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGljbXA2X19lY2hvX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWNtcDZfZWNob19oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzIyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWNtcDZfX2hkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pY21wNl9oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzIzXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpY21wX19lY2hvX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWNtcF9lY2hvX2hkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMjRfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpY21wX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWNtcF9oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzI1XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZWVlX184MDIxNTRfX2hkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pZWVlXzgwMjE1NF9oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzI2XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWdtcF9fZ3JvdXAuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWdtcF9ncm91cDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMjdfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlnbXBfX21zZy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pZ21wX21zZzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMjhfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDRfX2FkZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXA0X2FkZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzI5XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDRfX2FkZHJfX3BhY2tlZC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDRfYWRkcl9wYWNrZWQ8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzMwXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA0X19hZGRyX193b3JkYWxpZ25lZC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDRfYWRkcl93b3JkYWxpZ25lZDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMzFfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNl9fYWRkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfYWRkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMzJfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDZfX2FkZHJfX3BhY2tlZC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfYWRkcl9wYWNrZWQ8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzMzXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDZfX2hkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfaGRyPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18zNF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNl9fcmVhc3NfX2hlbHBlci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfcmVhc3NfaGVscGVyPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18zNV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA2X19yZWFzc2RhdGEuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXA2X3JlYXNzZGF0YTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMzZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcF9fYWRkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcF9hZGRyPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18zN18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXBfX2dsb2JhbHMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXBfZ2xvYmFsczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMzhfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcF9fcmVhc3NfX2hlbHBlci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcF9yZWFzc19oZWxwZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzM5XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcF9fcmVhc3NkYXRhLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwX3JlYXNzZGF0YTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNDBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsb3dwYW42X19pZWVlODAyMTU0X19kYXRhLmh0bWwiIHRhcmdldD0iX3NlbGYiPmxvd3BhbjZfaWVlZTgwMjE1NF9kYXRhPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd180MV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bG93cGFuNl9fbGlua19fYWRkci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5sb3dwYW42X2xpbmtfYWRkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNDJfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsb3dwYW42X19yZWFzc19faGVscGVyLmh0bWwiIHRhcmdldD0iX3NlbGYiPmxvd3BhbjZfcmVhc3NfaGVscGVyPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd180M18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fY3ljbGljX190aW1lci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5sd2lwX2N5Y2xpY190aW1lcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNDRfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsd2lwX19zZWxlY3RfX2NiLmh0bWwiIHRhcmdldD0iX3NlbGYiPmx3aXBfc2VsZWN0X2NiPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd180NV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc29jay5odG1sIiB0YXJnZXQ9Il9zZWxmIj5sd2lwX3NvY2s8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzQ2XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fZGVsYXllZF9fbXNnLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnNfZGVsYXllZF9tc2c8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzQ3XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnNfaG9zdDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNDhfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRtc2cuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWRuc19vdXRtc2c8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzQ5XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWRuc19vdXRwYWNrZXQ8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzUwXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnNfcGFja2V0PC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd181MV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcmVxdWVzdC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tZG5zX3JlcXVlc3Q8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzUyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcnJfX2luZm8uaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWRuc19ycl9pbmZvPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd181M18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tZG5zX3NlcnZpY2U8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzU0XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWVtLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1lbTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNTVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1lbXBfX2Rlc2MuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWVtcF9kZXNjPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd181Nl8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1sZF9fZ3JvdXAuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWxkX2dyb3VwPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd181N18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWxkX19oZWFkZXIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWxkX2hlYWRlcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNThfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jbGllbnRfX3MuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bXF0dF9jbGllbnRfczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNTlfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1xdHRfX2Nvbm5lY3RfX2NsaWVudF9faW5mb19fdC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tcXR0X2Nvbm5lY3RfY2xpZW50X2luZm9fdDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNjBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19yZXF1ZXN0X190Lmh0bWwiIHRhcmdldD0iX3NlbGYiPm1xdHRfcmVxdWVzdF90PC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd182MV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fcmluZ2J1Zl9fdC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tcXR0X3JpbmdidWZfdDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNjJfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuYV9faGVhZGVyLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5hX2hlYWRlcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNjNfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5kNl9fbmVpZ2hib3JfX2NhY2hlX19lbnRyeS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZDZfbmVpZ2hib3JfY2FjaGVfZW50cnk8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzY0XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmQ2X19xX19lbnRyeS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZDZfcV9lbnRyeTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNjVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRiaW9zX2Fuc3dlcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNjZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0Ymlvc19oZHI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzY3XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19uYW1lX19oZHIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0Ymlvc19uYW1lX2hkcjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNjhfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19xdWVzdGlvbl9faGRyLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5ldGJpb3NfcXVlc3Rpb25faGRyPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd182OV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Ymlvc19fcmVzcC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRiaW9zX3Jlc3A8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzcwXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0YnVmLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5ldGJ1ZjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNzFfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGNvbm4uaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0Y29ubjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNzJfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRpZjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNzNfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGlkPSJhcnJfNzNfIiBjbGFzcz0iYXJyb3ciIG9uY2xpY2s9ImR5bnNlY3Rpb24udG9nZ2xlRm9sZGVyKCc3M18nKSI+JiM5NjU4Ozwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InVuaW9ubmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3QuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNzNfMF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjMycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFpcHY0X19jaGFuZ2VkX19zLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwdjRfY2hhbmdlZF9zPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd183M18xXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MzJweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmX19leHRfX2NhbGxiYWNrX19hcmdzX190XzFfMWlwdjZfX2FkZHJfX3N0YXRlX19jaGFuZ2VkX19zLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwdjZfYWRkcl9zdGF0ZV9jaGFuZ2VkX3M8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzczXzJfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDozMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xaXB2Nl9fc2V0X19zLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwdjZfc2V0X3M8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzczXzNfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDozMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xbGlua19fY2hhbmdlZF9fcy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5saW5rX2NoYW5nZWRfczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNzNfNF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjMycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFzdGF0dXNfX2NoYW5nZWRfX3MuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c3RhdHVzX2NoYW5nZWRfczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNzRfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXR2ZWN0b3IuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0dmVjdG9yPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd183NV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bnNfX2hlYWRlci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uc19oZWFkZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93Xzc2XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zi5odG1sIiB0YXJnZXQ9Il9zZWxmIj5wYnVmPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd183N18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zl9fY3VzdG9tLmh0bWwiIHRhcmdldD0iX3NlbGYiPnBidWZfY3VzdG9tPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd183OF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWZfX2N1c3RvbV9fcmVmLmh0bWwiIHRhcmdldD0iX3NlbGYiPnBidWZfY3VzdG9tX3JlZjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfNzlfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWZfX3JvbS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5wYnVmX3JvbTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfODBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RyYXdfX3BjYi5odG1sIiB0YXJnZXQ9Il9zZWxmIj5yYXdfcGNiPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd184MV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cmVkaXJlY3RfX2hlYWRlci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5yZWRpcmVjdF9oZWFkZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzgyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cnNfX2hlYWRlci5odG1sIiB0YXJnZXQ9Il9zZWxmIj5yc19oZWFkZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzgzXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZW5kX19yZXF1ZXN0Lmh0bWwiIHRhcmdldD0iX3NlbGYiPnNtdHBfc2VuZF9yZXF1ZXN0PC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd184NF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c210cF9zZXNzaW9uPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd184NV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbGVhZl9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX2xlYWZfbm9kZTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfODZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19taWIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF9taWI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93Xzg3XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19uZXh0X19vaWRfX3N0YXRlLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfbmV4dF9vaWRfc3RhdGU8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93Xzg4XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX25vZGU8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93Xzg5XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19ub2RlX19pbnN0YW5jZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX25vZGVfaW5zdGFuY2U8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzkwXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fb2JqX19pZC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX29ial9pZDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfOTFfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX29pZF9fcmFuZ2UuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF9vaWRfcmFuZ2U8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzkyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fc2NhbGFyX19hcnJheV9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3NjYWxhcl9hcnJheV9ub2RlPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd185M18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fc2NhbGFyX19hcnJheV9fbm9kZV9fZGVmLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfc2NhbGFyX2FycmF5X25vZGVfZGVmPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd185NF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX3NjYWxhcl9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3NjYWxhcl9ub2RlPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd185NV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdGFibGVfX2NvbF9fZGVmLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfdGFibGVfY29sX2RlZjwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfOTZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX190YWJsZV9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3RhYmxlX25vZGU8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93Xzk3XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX190YWJsZV9fc2ltcGxlX19ub2RlLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfdGFibGVfc2ltcGxlX25vZGU8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93Xzk4XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdGhyZWFkc3luY19faW5zdGFuY2UuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF90aHJlYWRzeW5jX2luc3RhbmNlPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd185OV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdGhyZWFkc3luY19fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3RocmVhZHN5bmNfbm9kZTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTAwXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdHJlZV9fbm9kZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3RyZWVfbm9kZTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTAxXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfdmFyYmluZDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTAyXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZF9fbGVuLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfdmFyYmluZF9sZW48L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzEwM18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0idW5pb25zbm1wX192YXJpYW50X192YWx1ZS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3ZhcmlhbnRfdmFsdWU8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzEwNF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNudHBfX21zZy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbnRwX21zZzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTA1XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbnRwX19zZXJ2ZXIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c250cF9zZXJ2ZXI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzEwNl8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNudHBfX3RpbWUuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c250cF90aW1lPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18xMDdfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNudHBfX3RpbWVzdGFtcHMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c250cF90aW1lc3RhbXBzPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18xMDhfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJ1bmlvbnNvY2thZGRyX19hbGlnbmVkLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNvY2thZGRyX2FsaWduZWQ8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzEwOV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfXy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zdGF0c188L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzExMF8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX19pZ21wLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN0YXRzX2lnbXA8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzExMV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfX21lbS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zdGF0c19tZW08L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzExMl8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX19taWIyLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN0YXRzX21pYjI8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzExM18iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfX21pYjJfX25ldGlmX19jdHJzLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN0YXRzX21pYjJfbmV0aWZfY3RyczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTE0XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfX3Byb3RvLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN0YXRzX3Byb3RvPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18xMTVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX19zeXMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c3RhdHNfc3lzPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18xMTZfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzdGF0c19fc3lzZWxlbS5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zdGF0c19zeXNlbGVtPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18xMTdfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRfY19nX2kuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+dENHSTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTE4XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uYSI+PHNwYW4gY2xhc3M9Imljb24iPkM8L3NwYW4+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19leHRfX2FyZ19fY2FsbGJhY2tzLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRjcF9leHRfYXJnX2NhbGxiYWNrczwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTE5XyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYi5odG1sIiB0YXJnZXQ9Il9zZWxmIj50Y3BfcGNiPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18xMjBfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYl9fbGlzdGVuLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRjcF9wY2JfbGlzdGVuPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18xMjFfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MTZweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmEiPjxzcGFuIGNsYXNzPSJpY29uIj5DPC9zcGFuPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRmdHBfX2NvbnRleHQuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+dGZ0cF9jb250ZXh0PC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18xMjJfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0aHJlYWRzeW5jX19kYXRhLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRocmVhZHN5bmNfZGF0YTwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMTIzXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R1ZHBfX3BjYi5odG1sIiB0YXJnZXQ9Il9zZWxmIj51ZHBfcGNiPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18xMjRfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjE2cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25hIj48c3BhbiBjbGFzcz0iaWNvbiI+Qzwvc3Bhbj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R6ZXBpZl9faW5pdC5odG1sIiB0YXJnZXQ9Il9zZWxmIj56ZXBpZl9pbml0PC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+CiA8L3RhYmxlPgogPC9kaXY+PCEtLSBkaXJlY3RvcnkgLS0+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYW5ub3RhdGVkX2R1cC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Fubm90YXRlZF9kdXAuanMKaW5kZXggMzY0NjVjZS4uYjJkNzBmNCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYW5ub3RhdGVkX2R1cC5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hbm5vdGF0ZWRfZHVwLmpzCkBAIC0yLDYgKzIsOCBAQAogWwogICAgIFsgIl9sd2lwZXJmX3NldHRpbmdzIiwgInN0cnVjdF9fbHdpcGVyZl9fc2V0dGluZ3MuaHRtbCIsIG51bGwgXSwKICAgICBbICJfbHdpcGVyZl9zdGF0ZV90Y3AiLCAic3RydWN0X19sd2lwZXJmX19zdGF0ZV9fdGNwLmh0bWwiLCBudWxsIF0sCisgICAgWyAiYWNkIiwgInN0cnVjdGFjZC5odG1sIiwgInN0cnVjdGFjZCIgXSwKKyAgICBbICJhbHRjcF9hbGxvY2F0b3JfcyIsICJzdHJ1Y3RhbHRjcF9fYWxsb2NhdG9yX19zLmh0bWwiLCAic3RydWN0YWx0Y3BfX2FsbG9jYXRvcl9fcyIgXSwKICAgICBbICJhcGlfbXNnIiwgInN0cnVjdGFwaV9fbXNnLmh0bWwiLCAic3RydWN0YXBpX19tc2ciIF0sCiAgICAgWyAiYXV0b2lwIiwgInN0cnVjdGF1dG9pcC5odG1sIiwgInN0cnVjdGF1dG9pcCIgXSwKICAgICBbICJicmlkZ2VpZl9pbml0ZGF0YV9zIiwgInN0cnVjdGJyaWRnZWlmX19pbml0ZGF0YV9fcy5odG1sIiwgInN0cnVjdGJyaWRnZWlmX19pbml0ZGF0YV9fcyIgXSwKQEAgLTIyLDYgKzI0LDcgQEAKICAgICBbICJpY21wNl9lY2hvX2hkciIsICJzdHJ1Y3RpY21wNl9fZWNob19faGRyLmh0bWwiLCBudWxsIF0sCiAgICAgWyAiaWNtcDZfaGRyIiwgInN0cnVjdGljbXA2X19oZHIuaHRtbCIsIG51bGwgXSwKICAgICBbICJpY21wX2VjaG9faGRyIiwgInN0cnVjdGljbXBfX2VjaG9fX2hkci5odG1sIiwgbnVsbCBdLAorICAgIFsgImljbXBfaGRyIiwgInN0cnVjdGljbXBfX2hkci5odG1sIiwgbnVsbCBdLAogICAgIFsgImllZWVfODAyMTU0X2hkciIsICJzdHJ1Y3RpZWVlX184MDIxNTRfX2hkci5odG1sIiwgInN0cnVjdGllZWVfXzgwMjE1NF9faGRyIiBdLAogICAgIFsgImlnbXBfZ3JvdXAiLCAic3RydWN0aWdtcF9fZ3JvdXAuaHRtbCIsICJzdHJ1Y3RpZ21wX19ncm91cCIgXSwKICAgICBbICJpZ21wX21zZyIsICJzdHJ1Y3RpZ21wX19tc2cuaHRtbCIsIG51bGwgXSwKQEAgLTQzLDkgKzQ2LDEyIEBACiAgICAgWyAibHdpcF9jeWNsaWNfdGltZXIiLCAic3RydWN0bHdpcF9fY3ljbGljX190aW1lci5odG1sIiwgbnVsbCBdLAogICAgIFsgImx3aXBfc2VsZWN0X2NiIiwgInN0cnVjdGx3aXBfX3NlbGVjdF9fY2IuaHRtbCIsICJzdHJ1Y3Rsd2lwX19zZWxlY3RfX2NiIiBdLAogICAgIFsgImx3aXBfc29jayIsICJzdHJ1Y3Rsd2lwX19zb2NrLmh0bWwiLCAic3RydWN0bHdpcF9fc29jayIgXSwKKyAgICBbICJtZG5zX2RlbGF5ZWRfbXNnIiwgInN0cnVjdG1kbnNfX2RlbGF5ZWRfX21zZy5odG1sIiwgInN0cnVjdG1kbnNfX2RlbGF5ZWRfX21zZyIgXSwKICAgICBbICJtZG5zX2hvc3QiLCAic3RydWN0bWRuc19faG9zdC5odG1sIiwgInN0cnVjdG1kbnNfX2hvc3QiIF0sCisgICAgWyAibWRuc19vdXRtc2ciLCAic3RydWN0bWRuc19fb3V0bXNnLmh0bWwiLCAic3RydWN0bWRuc19fb3V0bXNnIiBdLAogICAgIFsgIm1kbnNfb3V0cGFja2V0IiwgInN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sIiwgInN0cnVjdG1kbnNfX291dHBhY2tldCIgXSwKICAgICBbICJtZG5zX3BhY2tldCIsICJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCIsICJzdHJ1Y3RtZG5zX19wYWNrZXQiIF0sCisgICAgWyAibWRuc19yZXF1ZXN0IiwgInN0cnVjdG1kbnNfX3JlcXVlc3QuaHRtbCIsICJzdHJ1Y3RtZG5zX19yZXF1ZXN0IiBdLAogICAgIFsgIm1kbnNfcnJfaW5mbyIsICJzdHJ1Y3RtZG5zX19ycl9faW5mby5odG1sIiwgbnVsbCBdLAogICAgIFsgIm1kbnNfc2VydmljZSIsICJzdHJ1Y3RtZG5zX19zZXJ2aWNlLmh0bWwiLCAic3RydWN0bWRuc19fc2VydmljZSIgXSwKICAgICBbICJtZW0iLCAic3RydWN0bWVtLmh0bWwiLCAic3RydWN0bWVtIiBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXBpXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcGlfOGguaHRtbAppbmRleCBkZjNjOGQ4Li41NDFkODU4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcGlfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcGlfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcGlfX2xpYl84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXBpX19saWJfOGMuaHRtbAppbmRleCAzNzA4OTM3Li40OGNkZDNiIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcGlfX2xpYl84Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FwaV9fbGliXzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXBpX19tc2dfOGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FwaV9fbXNnXzhjLmh0bWwKaW5kZXggMDQ4YzE4Ni4uY2IxODQ4NiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXBpX19tc2dfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcGlfX21zZ184Yy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FwaV9fbXNnXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcGlfX21zZ184aC5odG1sCmluZGV4IDcxOTVjZGYuLmQ2MDE1YjkgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FwaV9fbXNnXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXBpX19tc2dfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcHBzXzJzbm1wXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcHBzXzJzbm1wXzhoLmh0bWwKaW5kZXggMGQ2OWYyMC4uNjg2NzE5MyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXBwc18yc25tcF84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FwcHNfMnNubXBfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xNDgsOCArMTQ4LDIwIEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTBlMDQ0MjU5Mjg5Y2I2OTAxOTcxNzNmOTNjMTc2MDdkIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhNTZiZGNlMDRlOWU3N2NiM2Y4YTg3MjcxOGNkMjczZDEiIGlkPSJyX2dhNTZiZGNlMDRlOWU3N2NiM2Y4YTg3MjcxOGNkMjczZDEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTU2YmRjZTA0ZTllNzdjYjNmOGE4NzI3MThjZDI3M2QxIj5zbm1wX3NlbmRfdHJhcF9zcGVjaWZpYzwvYT4gKHMzMl90IHNwZWNpZmljX3RyYXAsIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX3ZhcmJpbmQuaHRtbCI+c25tcF92YXJiaW5kPC9hPiAqdmFyYmluZHMpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E1NmJkY2UwNGU5ZTc3Y2IzZjhhODcyNzE4Y2QyNzNkMSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYTk2Y2M3YWYwMTE4ZDc1MDQ5NjA5ODcyZWE0MTE4N2NkIiBpZD0icl9nYTk2Y2M3YWYwMTE4ZDc1MDQ5NjA5ODcyZWE0MTE4N2NkIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E5NmNjN2FmMDExOGQ3NTA0OTYwOTg3MmVhNDExODdjZCI+c25tcF9zZW5kX3RyYXA8L2E+IChjb25zdCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19vYmpfX2lkLmh0bWwiPnNubXBfb2JqX2lkPC9hPiAqb2lkLCBzMzJfdCBnZW5lcmljX3RyYXAsIHMzMl90IHNwZWNpZmljX3RyYXAsIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX3ZhcmJpbmQuaHRtbCI+c25tcF92YXJiaW5kPC9hPiAqdmFyYmluZHMpPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E5NmNjN2FmMDExOGQ3NTA0OTYwOTg3MmVhNDExODdjZCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTIxOTc0YjFmNmI2MjZiY2UxZTAwNmYwOWRiNzEyZTljIiBpZD0icl9nYTIxOTc0YjFmNmI2MjZiY2UxZTAwNmYwOWRiNzEyZTljIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2EyMTk3NGIxZjZiNjI2YmNlMWUwMDZmMDlkYjcxMmU5YyI+c25tcF9zZW5kX3RyYXA8L2E+IChjb25zdCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19vYmpfX2lkLmh0bWwiPnNubXBfb2JqX2lkPC9hPiAqb2lkLCBzMzJfdCBnZW5lcmljX3RyYXAsIHMzMl90IHNwZWNpZmljX3RyYXAsIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX3ZhcmJpbmQuaHRtbCI+c25tcF92YXJiaW5kPC9hPiAqdmFyYmluZHMpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EyMTk3NGIxZjZiNjI2YmNlMWUwMDZmMDlkYjcxMmU5YyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWI3ZTRiOTQzYTk3NTgwMTBiMDIzNzFiODc2YWJjMjc1IiBpZD0icl9nYWI3ZTRiOTQzYTk3NTgwMTBiMDIzNzFiODc2YWJjMjc1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FiN2U0Yjk0M2E5NzU4MDEwYjAyMzcxYjg3NmFiYzI3NSI+c25tcF9zZW5kX2luZm9ybV9nZW5lcmljPC9hPiAoczMyX3QgZ2VuZXJpY190cmFwLCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwiPnNubXBfdmFyYmluZDwvYT4gKnZhcmJpbmRzLCBzMzJfdCAqcHRyX3JlcXVlc3RfaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FiN2U0Yjk0M2E5NzU4MDEwYjAyMzcxYjg3NmFiYzI3NSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTc0OTJiYjg2MWJhNzM5MjMyMjFhOGFiNDllYTc5MjEwIiBpZD0icl9nYTc0OTJiYjg2MWJhNzM5MjMyMjFhOGFiNDllYTc5MjEwIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E3NDkyYmI4NjFiYTczOTIzMjIxYThhYjQ5ZWE3OTIxMCI+c25tcF9zZW5kX2luZm9ybV9zcGVjaWZpYzwvYT4gKHMzMl90IHNwZWNpZmljX3RyYXAsIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX3ZhcmJpbmQuaHRtbCI+c25tcF92YXJiaW5kPC9hPiAqdmFyYmluZHMsIHMzMl90ICpwdHJfcmVxdWVzdF9pZCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTc0OTJiYjg2MWJhNzM5MjMyMjFhOGFiNDllYTc5MjEwIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhZTQ1MGRkNzFhZDkxZjZjMGJjMjQzNDkzYTkxM2Y2OTIiIGlkPSJyX2dhZTQ1MGRkNzFhZDkxZjZjMGJjMjQzNDkzYTkxM2Y2OTIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWU0NTBkZDcxYWQ5MWY2YzBiYzI0MzQ5M2E5MTNmNjkyIj5zbm1wX3NlbmRfaW5mb3JtPC9hPiAoY29uc3Qgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fb2JqX19pZC5odG1sIj5zbm1wX29ial9pZDwvYT4gKm9pZCwgczMyX3QgZ2VuZXJpY190cmFwLCBzMzJfdCBzcGVjaWZpY190cmFwLCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwiPnNubXBfdmFyYmluZDwvYT4gKnZhcmJpbmRzLCBzMzJfdCAqcHRyX3JlcXVlc3RfaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FlNDUwZGQ3MWFkOTFmNmMwYmMyNDM0OTNhOTEzZjY5MiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4IiBpZD0icl9nYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4Ij5zbm1wX3NldF9pbmZvcm1fY2FsbGJhY2s8L2E+IChzbm1wX2luZm9ybV9jYWxsYmFja19mY3QgaW5mb3JtX2NhbGxiYWNrLCB2b2lkICpjYWxsYmFja19hcmcpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EzMjNlZDA4MWNjOTkwM2NlYjZlYmIyNmEwNDZlMDgzOCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTZkNDExYzBiYTdhOGZiMWVkMzc3N2ViZGU1YjVmNDU1IiBpZD0icl9nYTZkNDExYzBiYTdhOGZiMWVkMzc3N2ViZGU1YjVmNDU1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E2ZDQxMWMwYmE3YThmYjFlZDM3NzdlYmRlNWI1ZjQ1NSI+c25tcF9zZXRfZGVmYXVsdF90cmFwX3ZlcnNpb248L2E+ICh1OF90IHNubXBfdmVyc2lvbik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTZkNDExYzBiYTdhOGZiMWVkMzc3N2ViZGU1YjVmNDU1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhZjZkODNhYWU2NDY0ODUyNDI3YTgxMmY1NzNhNDAzNTkiIGlkPSJyX2dhZjZkODNhYWU2NDY0ODUyNDI3YTgxMmY1NzNhNDAzNTkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnU4X3QmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWY2ZDgzYWFlNjQ2NDg1MjQyN2E4MTJmNTczYTQwMzU5Ij5zbm1wX2dldF9kZWZhdWx0X3RyYXBfdmVyc2lvbjwvYT4gKHZvaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FmNmQ4M2FhZTY0NjQ4NTI0MjdhODEyZjU3M2E0MDM1OSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWNhZjgxNmZmOTE3ZjdiN2U1ZDAwZWQ2YzlmNzliNTFjIiBpZD0icl9nYWNhZjgxNmZmOTE3ZjdiN2U1ZDAwZWQ2YzlmNzliNTFjIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FjYWY4MTZmZjkxN2Y3YjdlNWQwMGVkNmM5Zjc5YjUxYyI+c25tcF9zZXRfYXV0aF90cmFwc19lbmFibGVkPC9hPiAodThfdCBlbmFibGUpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FjYWY4MTZmZjkxN2Y3YjdlNWQwMGVkNmM5Zjc5YjUxYyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTc4MDRhMjI2MTViZDliM2EzMjNhM2Y0OGE5ZmI4Y2I3IiBpZD0icl9nYTc4MDRhMjI2MTViZDliM2EzMjNhM2Y0OGE5ZmI4Y2I3Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj51OF90JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E3ODA0YTIyNjE1YmQ5YjNhMzIzYTNmNDhhOWZiOGNiNyI+c25tcF9nZXRfYXV0aF90cmFwc19lbmFibGVkPC9hPiAodm9pZCk8L3RkPjwvdHI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcHBzXzJzbm1wXzhoLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXBwc18yc25tcF84aC5qcwppbmRleCA0Y2UyMTU2Li5jODRmOWEyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcHBzXzJzbm1wXzhoLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FwcHNfMnNubXBfOGguanMKQEAgLTE0LDE2ICsxNCwyMiBAQAogICAgIFsgInNubXBfZ2V0X2NvbW11bml0eSIsICJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMWZlNzM3YzEzNzFhM2VkM2JiNTE1ZDQ1MWVmM2VlYTgiLCBudWxsIF0sCiAgICAgWyAic25tcF9nZXRfY29tbXVuaXR5X3RyYXAiLCAiZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E1NjZhYTdhZWFmNWZiNzVjYTBhMmFmNTg0ODZmNGNiYSIsIG51bGwgXSwKICAgICBbICJzbm1wX2dldF9jb21tdW5pdHlfd3JpdGUiLCAiZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTY2NTQ1MjFiODNmMzVjNjAwYjY4OWI5NTBkY2MyYzRlIiwgbnVsbCBdLAorICAgIFsgInNubXBfZ2V0X2RlZmF1bHRfdHJhcF92ZXJzaW9uIiwgImdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhZjZkODNhYWU2NDY0ODUyNDI3YTgxMmY1NzNhNDAzNTkiLCBudWxsIF0sCiAgICAgWyAic25tcF9nZXRfZGV2aWNlX2VudGVycHJpc2Vfb2lkIiwgImdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2E1MWU4NDA1NWY3ZDljNDQ1MTE4YmY4ZTkzZmQxYWRmOCIsIG51bGwgXSwKICAgICBbICJzbm1wX2luaXQiLCAiZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTRkODhmMmZjNzY1NTI4MDM4NDEzMWQ1NDNlMGQ4M2U1IiwgbnVsbCBdLAotICAgIFsgInNubXBfc2VuZF90cmFwIiwgImdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhOTZjYzdhZjAxMThkNzUwNDk2MDk4NzJlYTQxMTg3Y2QiLCBudWxsIF0sCisgICAgWyAic25tcF9zZW5kX2luZm9ybSIsICJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWU0NTBkZDcxYWQ5MWY2YzBiYzI0MzQ5M2E5MTNmNjkyIiwgbnVsbCBdLAorICAgIFsgInNubXBfc2VuZF9pbmZvcm1fZ2VuZXJpYyIsICJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWI3ZTRiOTQzYTk3NTgwMTBiMDIzNzFiODc2YWJjMjc1IiwgbnVsbCBdLAorICAgIFsgInNubXBfc2VuZF9pbmZvcm1fc3BlY2lmaWMiLCAiZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E3NDkyYmI4NjFiYTczOTIzMjIxYThhYjQ5ZWE3OTIxMCIsIG51bGwgXSwKKyAgICBbICJzbm1wX3NlbmRfdHJhcCIsICJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTIxOTc0YjFmNmI2MjZiY2UxZTAwNmYwOWRiNzEyZTljIiwgbnVsbCBdLAogICAgIFsgInNubXBfc2VuZF90cmFwX2dlbmVyaWMiLCAiZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2EwZTA0NDI1OTI4OWNiNjkwMTk3MTczZjkzYzE3NjA3ZCIsIG51bGwgXSwKICAgICBbICJzbm1wX3NlbmRfdHJhcF9zcGVjaWZpYyIsICJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTU2YmRjZTA0ZTllNzdjYjNmOGE4NzI3MThjZDI3M2QxIiwgbnVsbCBdLAogICAgIFsgInNubXBfc2V0X2F1dGhfdHJhcHNfZW5hYmxlZCIsICJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWNhZjgxNmZmOTE3ZjdiN2U1ZDAwZWQ2YzlmNzliNTFjIiwgbnVsbCBdLAogICAgIFsgInNubXBfc2V0X2NvbW11bml0eSIsICJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMzBjYzU4N2EyNjA3NTdmZGIyYjgxZDQ2MmY0MzBlZjEiLCBudWxsIF0sCiAgICAgWyAic25tcF9zZXRfY29tbXVuaXR5X3RyYXAiLCAiZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E1NjMxNzExZjM1N2I2NjEwYmU3ZTkzYjFjNmQ4Nzc2MCIsIG51bGwgXSwKICAgICBbICJzbm1wX3NldF9jb21tdW5pdHlfd3JpdGUiLCAiZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTM0MTQ2MTc2Njg2M2NmZjQ2YTQ0ZTVmNDMxZjJkYTAxIiwgbnVsbCBdLAorICAgIFsgInNubXBfc2V0X2RlZmF1bHRfdHJhcF92ZXJzaW9uIiwgImdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhNmQ0MTFjMGJhN2E4ZmIxZWQzNzc3ZWJkZTViNWY0NTUiLCBudWxsIF0sCiAgICAgWyAic25tcF9zZXRfZGV2aWNlX2VudGVycHJpc2Vfb2lkIiwgImdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2FjYzcxYWM4NTdiZjkyMTVmMDZhNjI0ZGRhMDlhYmUzYSIsIG51bGwgXSwKKyAgICBbICJzbm1wX3NldF9pbmZvcm1fY2FsbGJhY2siLCAiZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4IiwgbnVsbCBdLAogICAgIFsgInNubXBfc2V0X21pYnMiLCAiZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTI5Yzc2NDc0OTcxZjI1ZDAzOGZkNDg2NDQ3YzcwZTIxIiwgbnVsbCBdLAogICAgIFsgInNubXBfc2V0X3dyaXRlX2NhbGxiYWNrIiwgImdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2FmZjZhNmIzOTMyMmU5Mjg2MmFiNTVjZmNkZGZlMjU0YiIsIG51bGwgXSwKICAgICBbICJzbm1wX3RyYXBfZHN0X2VuYWJsZSIsICJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWIxMDE1MDViZTU5Nzc4Y2YwZjJmMWFjNDBiY2YzZjMyIiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXJjaF84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXJjaF84aC5odG1sCmluZGV4IDczOGVjMjUuLmU5NjFhY2IgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2FyY2hfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hcmNoXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXV0b2lwXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hdXRvaXBfOGMuaHRtbAppbmRleCAyYzYzMDNhLi4xZjEwMTNiIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hdXRvaXBfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hdXRvaXBfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDgsMTQgKzEwOCwxMyBAQAogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJpcF9fYWRkcl84aC5odG1sIj5sd2lwL2lwX2FkZHIuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhoLmh0bWwiPmx3aXAvbmV0aWYuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84aC5odG1sIj5sd2lwL2F1dG9pcC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KKzxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0iYWNkXzhoLmh0bWwiPmx3aXAvYWNkLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCI+bHdpcC9ldGhhcnAuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmF1dG9pcF84aC5odG1sIj5sd2lwL3Byb3QvYXV0b2lwLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJmx0O3N0cmluZy5oJmd0OzwvY29kZT48YnIgLz4KIDwvZGl2Pjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImRlZmluZS1tZW1iZXJzIiBuYW1lPSJkZWZpbmUtbWVtYmVycyI+PC9hPgogTWFjcm9zPC9oMj48L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YTYzNDUzNTE1NmNjMWE4Y2Y5ZjA0ZDNkNWM3NGY4YTU5IiBpZD0icl9hNjM0NTM1MTU2Y2MxYThjZjlmMDRkM2Q1Yzc0ZjhhNTkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTYzNDUzNTE1NmNjMWE4Y2Y5ZjA0ZDNkNWM3NGY4YTU5Ij5MV0lQX0FVVE9JUF9SQU5EPC9hPig8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjphNjM0NTM1MTU2Y2MxYThjZjlmMDRkM2Q1Yzc0ZjhhNTkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06YWNlYzc1MDY5ZjZlNmVjYmUyMDBjNTY5MWU1NmVjZDQzIiBpZD0icl9hY2VjNzUwNjlmNmU2ZWNiZTIwMGM1NjkxZTU2ZWNkNDMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWNlYzc1MDY5ZjZlNmVjYmUyMDBjNTY5MWU1NmVjZDQzIj5MV0lQX0FVVE9JUF9DUkVBVEVfU0VFRF9BRERSPC9hPig8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjphY2VjNzUwNjlmNmU2ZWNiZTIwMGM1NjkxZTU2ZWNkNDMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgpAQCAtMTIzLDIyICsxMjIsMjIgQEAKIEZ1bmN0aW9uczwvaDI+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhMjEyMmMwYjI1MThiMzcxNTU5ZmVmNWVjMWQyYWVkOTAiIGlkPSJyX2dhMjEyMmMwYjI1MThiMzcxNTU5ZmVmNWVjMWQyYWVkOTAiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCI+YXV0b2lwX3NldF9zdHJ1Y3Q8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhdXRvaXAuaHRtbCI+YXV0b2lwPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhdXRvaXAuaHRtbCI+YXV0b2lwPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTIxMjJjMGIyNTE4YjM3MTU1OWZlZjVlYzFkMmFlZDkwIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhYzBjOTgwMzU3OTU1MDBlZGU0NjRhYTRhZjI1MTVmMzAiIGlkPSJyX2dhYzBjOTgwMzU3OTU1MDBlZGU0NjRhYTRhZjI1MTVmMzAiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2FjMGM5ODAzNTc5NTUwMGVkZTQ2NGFhNGFmMjUxNWYzMCI+YXV0b2lwX3JlbW92ZV9zdHJ1Y3Q8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYzBjOTgwMzU3OTU1MDBlZGU0NjRhYTRhZjI1MTVmMzAiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2ExNDYxZjU4MjZlYmVmYzA1MGUwZDYzMDEzODE4ZDFlOCIgaWQ9InJfZ2ExNDYxZjU4MjZlYmVmYzA1MGUwZDYzMDEzODE4ZDFlOCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCNnYTE0NjFmNTgyNmViZWZjMDUwZTBkNjMwMTM4MThkMWU4Ij5hdXRvaXBfc3RhcnQ8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YTExZGY3YTIwZDUyNjgwY2Q4YzFjMThmYmEyYjkxZTllIiBpZD0icl9hMTFkZjdhMjBkNTI2ODBjZDhjMWMxOGZiYTJiOTFlOWUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTExZGY3YTIwZDUyNjgwY2Q4YzFjMThmYmEyYjkxZTllIj5hdXRvaXBfbmV0d29ya19jaGFuZ2VkPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjphMTFkZjdhMjBkNTI2ODBjZDhjMWMxOGZiYTJiOTFlOWUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YWYyYTM2YWVlOTZjYmRmOGY0YThmMWU2OWM5MWZmNDI1IiBpZD0icl9hZjJhMzZhZWU5NmNiZGY4ZjRhOGYxZTY5YzkxZmY0MjUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWYyYTM2YWVlOTZjYmRmOGY0YThmMWU2OWM5MWZmNDI1Ij5hdXRvaXBfbmV0d29ya19jaGFuZ2VkX2xpbmtfdXA8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmFmMmEzNmFlZTk2Y2JkZjhmNGE4ZjFlNjljOTFmZjQyNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphZjkzNTQ0YzQ5ZjJjMjRiOTVhMzk4MTM1MWQwMjMwNTYiIGlkPSJyX2FmOTM1NDRjNDlmMmMyNGI5NWEzOTgxMzUxZDAyMzA1NiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhZjkzNTQ0YzQ5ZjJjMjRiOTVhMzk4MTM1MWQwMjMwNTYiPmF1dG9pcF9uZXR3b3JrX2NoYW5nZWRfbGlua19kb3duPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphZjkzNTQ0YzQ5ZjJjMjRiOTVhMzk4MTM1MWQwMjMwNTYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCIgaWQ9InJfZ2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCNnYTU4YTRkY2U2NThkZDEyNjNlODRlYjk4MmY2MjU4N2Q0Ij5hdXRvaXBfc3RvcDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTphNzQ2ZmMxZDdkYjFiZjE2MTdhZmFlMTY2YzlkOTJjMmQiIGlkPSJyX2E3NDZmYzFkN2RiMWJmMTYxN2FmYWUxNjZjOWQ5MmMyZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhNzQ2ZmMxZDdkYjFiZjE2MTdhZmFlMTY2YzlkOTJjMmQiPmF1dG9pcF90bXI8L2E+ICh2b2lkKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmE3NDZmYzFkN2RiMWJmMTYxN2FmYWUxNjZjOWQ5MmMyZCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTphY2FmMjc5MzMyNWM2MGRjNDUzMWMyMWEzZmQ1NWMxNmUiIGlkPSJyX2FjYWYyNzkzMzI1YzYwZGM0NTMxYzIxYTNmZDU1YzE2ZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhY2FmMjc5MzMyNWM2MGRjNDUzMWMyMWEzZmQ1NWMxNmUiPmF1dG9pcF9hcnBfcmVwbHk8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RldGhhcnBfX2hkci5odG1sIj5ldGhhcnBfaGRyPC9hPiAqaGRyKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmFjYWYyNzkzMzI1YzYwZGM0NTMxYzIxYTNmZDU1YzE2ZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTphMWI0ZjBjNTNkYTE3Mzk1ZDlkZTkyYTg1NzA4YTFiYjkiIGlkPSJyX2ExYjRmMGM1M2RhMTczOTVkOWRlOTJhODU3MDhhMWJiOSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dThfdCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhMWI0ZjBjNTNkYTE3Mzk1ZDlkZTkyYTg1NzA4YTFiYjkiPmF1dG9pcF9zdXBwbGllZF9hZGRyZXNzPC9hPiAoY29uc3Qgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjphMWI0ZjBjNTNkYTE3Mzk1ZDlkZTkyYTg1NzA4YTFiYjkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIiBpZD0icl9hNmRlOTdiN2RjZDk4ZjkwMzlkNWMxYWQxMWMyNTdkNjIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnU4X3QmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIj5hdXRvaXBfc3VwcGxpZWRfYWRkcmVzczwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48cD5BdXRvSVAgQXV0b21hdGljIExpbmtMb2NhbCBJUCBDb25maWd1cmF0aW9uPC9wPgotPHA+VGhpcyBpcyBhIEF1dG9JUCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGx3SVAgVENQL0lQIHN0YWNrLiBJdCBhaW1zIHRvIGNvbmZvcm0gd2l0aCBSRkMgMzkyNy4gPC9wPgorPHA+VGhpcyBpcyBhIEF1dG9JUCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIGx3SVAgVENQL0lQIHN0YWNrLiBJdCBhaW1zIHRvIGNvbmZvcm0gd2l0aCBSRkMgMzkyNy4gSXQgdXNlcyBJUHY0IGFkZHJlc3MgY29uZmxpY3QgZGV0ZWN0aW9uIHRvIGV2YWx1YXRlIHRoZSBjaG9zZW4gYWRkcmVzcy4gVGhlIEFDRCBtb2R1bGUgYWltcyB0byBiZSBjb25mb3JtIHRvIFJGQyA1MjI3LiBSRkMgNTIyNyBpcyBleHRyYWN0ZWQgb3V0IG9mIFJGQyAzOTI3IHNvIHRoZSBhY2QgbW9kdWxlIGZpdHMgbmljZWx5IGluIGF1dG9pcC4gPC9wPgogPC9kaXY+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+TWFjcm8gRGVmaW5pdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KIDxhIGlkPSJhY2VjNzUwNjlmNmU2ZWNiZTIwMGM1NjkxZTU2ZWNkNDMiIG5hbWU9ImFjZWM3NTA2OWY2ZTZlY2JlMjAwYzU2OTFlNTZlY2Q0MyI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FjZWM3NTA2OWY2ZTZlY2JlMjAwYzU2OTFlNTZlY2Q0MyI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+TFdJUF9BVVRPSVBfQ1JFQVRFX1NFRURfQUREUjwvaDI+CkBAIC0xNTcsODYgKzE1Niw1MyBAQAogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4gIDxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJkZWZfOGMuaHRtbCNhMTRmOTQzNDdhNWI5YjllMzYwMjcwNWI3NWI3YWU1MjQiPmx3aXBfaHRvbmw8L2E+KEFVVE9JUF9SQU5HRV9TVEFSVCArICgodTMyX3QpKCgodThfdCkoPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4tJmd0OzxhIGNsYXNzPSJjb2RlIGhsX3ZhcmlhYmxlIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FlZTk2Nzk2NWQ5OTlmYzFhNGM0MGE2NjcwOTMwNGU2OSI+aHdhZGRyPC9hPls0XSkpIHwgXDwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICAgICAgICAgICAoKHUzMl90KSgodThfdCkoPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4tJmd0OzxhIGNsYXNzPSJjb2RlIGhsX3ZhcmlhYmxlIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FlZTk2Nzk2NWQ5OTlmYzFhNGM0MGE2NjcwOTMwNGU2OSI+aHdhZGRyPC9hPls1XSkpKSAmbHQ7Jmx0OyA4KSkpPC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZGVmXzhjX2h0bWxfYTE0Zjk0MzQ3YTViOWI5ZTM2MDI3MDViNzViN2FlNTI0Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9ImRlZl84Yy5odG1sI2ExNGY5NDM0N2E1YjliOWUzNjAyNzA1Yjc1YjdhZTUyNCI+bHdpcF9odG9ubDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnUzMl90IGx3aXBfaHRvbmwodTMyX3Qgbik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gZGVmLmM6OTA8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2MDwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWxfYWVlOTY3OTY1ZDk5OWZjMWE0YzQwYTY2NzA5MzA0ZTY5Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWVlOTY3OTY1ZDk5OWZjMWE0YzQwYTY2NzA5MzA0ZTY5Ij5uZXRpZjo6aHdhZGRyPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dThfdCBod2FkZHJbNlVdPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MzQxPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNjk8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sX2FlZTk2Nzk2NWQ5OTlmYzFhNGM0MGE2NjcwOTMwNGU2OSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FlZTk2Nzk2NWQ5OTlmYzFhNGM0MGE2NjcwOTMwNGU2OSI+bmV0aWY6Omh3YWRkcjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnU4X3QgaHdhZGRyWzZVXTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjM1MDwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5NYWNybyB0aGF0IGdlbmVyYXRlcyB0aGUgaW5pdGlhbCBJUCBhZGRyZXNzIHRvIGJlIHRyaWVkIGJ5IEFVVE9JUC4gSWYgeW91IHdhbnQgdG8gb3ZlcnJpZGUgdGhpcywgZGVmaW5lIGl0IHRvIHNvbWV0aGluZyBlbHNlIGluIGx3aXBvcHRzLmguIDwvcD4KIAogPC9kaXY+CiA8L2Rpdj4KLTxhIGlkPSJhNjM0NTM1MTU2Y2MxYThjZjlmMDRkM2Q1Yzc0ZjhhNTkiIG5hbWU9ImE2MzQ1MzUxNTZjYzFhOGNmOWYwNGQzZDVjNzRmOGE1OSI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2E2MzQ1MzUxNTZjYzFhOGNmOWYwNGQzZDVjNzRmOGE1OSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+TFdJUF9BVVRPSVBfUkFORDwvaDI+Ci0KLTxkaXYgY2xhc3M9Im1lbWl0ZW0iPgotPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgotICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBMV0lQX0FVVE9JUF9SQU5EPC90ZD4KLSAgICAgICAgICA8dGQ+KDwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KLSAgICAgICAgICA8dGQ+PC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgIDwvdGFibGU+Ci08L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKCgodTMyX3QpKCg8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPi0mZ3Q7PGEgY2xhc3M9ImNvZGUgaGxfdmFyaWFibGUiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWVlOTY3OTY1ZDk5OWZjMWE0YzQwYTY2NzA5MzA0ZTY5Ij5od2FkZHI8L2E+WzVdKSAmYW1wOyAweGZmKSAmbHQ7Jmx0OyAyNCkgfCBcPC9kaXY+Ci08ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodTMyX3QpKCg8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPi0mZ3Q7PGEgY2xhc3M9ImNvZGUgaGxfdmFyaWFibGUiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWVlOTY3OTY1ZDk5OWZjMWE0YzQwYTY2NzA5MzA0ZTY5Ij5od2FkZHI8L2E+WzNdKSAmYW1wOyAweGZmKSAmbHQ7Jmx0OyAxNikgfCBcPC9kaXY+Ci08ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgodTMyX3QpKCg8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPi0mZ3Q7PGEgY2xhc3M9ImNvZGUgaGxfdmFyaWFibGUiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWVlOTY3OTY1ZDk5OWZjMWE0YzQwYTY2NzA5MzA0ZTY5Ij5od2FkZHI8L2E+WzJdKSAmYW1wOyAweGZmKSAmbHQ7Jmx0OyA4KSB8IFw8L2Rpdj4KLTxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh1MzJfdCkoKDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LSZndDs8YSBjbGFzcz0iY29kZSBobF92YXJpYWJsZSIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhZWU5Njc5NjVkOTk5ZmMxYTRjNDBhNjY3MDkzMDRlNjkiPmh3YWRkcjwvYT5bNF0pICZhbXA7IDB4ZmYpKSkgKyBcPC9kaXY+Ci08ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuZXRpZl9hdXRvaXBfZGF0YSg8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik/IG5ldGlmX2F1dG9pcF9kYXRhKDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KS0mZ3Q7dHJpZWRfbGxpcGFkZHIgOiAwKSk8L2Rpdj4KLTwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+UHNldWRvIHJhbmRvbSBtYWNybyBiYXNlZCBvbiBuZXRpZiBpbmZvcm1hdGlvbnMuIFlvdSBjb3VsZCB1c2UgInJhbmQoKSIgZnJvbSB0aGUgQyBMaWJyYXJ5IGlmIHlvdSBkZWZpbmUgTFdJUF9BVVRPSVBfUkFORCBpbiBsd2lwb3B0cy5oIDwvcD4KLQotPC9kaXY+Ci08L2Rpdj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgotPGEgaWQ9ImFjYWYyNzkzMzI1YzYwZGM0NTMxYzIxYTNmZDU1YzE2ZSIgbmFtZT0iYWNhZjI3OTMzMjVjNjBkYzQ1MzFjMjFhM2ZkNTVjMTZlIj48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWNhZjI3OTMzMjVjNjBkYzQ1MzFjMjFhM2ZkNTVjMTZlIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfYXJwX3JlcGx5KCk8L2gyPgorPGEgaWQ9ImFmOTM1NDRjNDlmMmMyNGI5NWEzOTgxMzUxZDAyMzA1NiIgbmFtZT0iYWY5MzU0NGM0OWYyYzI0Yjk1YTM5ODEzNTFkMDIzMDU2Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWY5MzU0NGM0OWYyYzI0Yjk1YTM5ODEzNTFkMDIzMDU2Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93bigpPC9oMj4KIAogPGRpdiBjbGFzcz0ibWVtaXRlbSI+CiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CiAgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgogICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIGF1dG9pcF9hcnBfcmVwbHkgPC90ZD4KLSAgICAgICAgICA8dGQ+KDwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPiwgPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+Ci0gICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGV0aGFycF9faGRyLmh0bWwiPmV0aGFycF9oZHI8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmhkcjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgotICAgICAgICA8L3RyPgotICAgICAgPC90YWJsZT4KLTwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5IYW5kbGVzIGV2ZXJ5IGluY29taW5nIEFSUCBQYWNrZXQsIGNhbGxlZCBieSA8YSBjbGFzcz0iZWwiIGhyZWY9ImV0aGFycF84Yy5odG1sI2E1NDBhNTUwNjk3OTY5M2VmOWFjNDQ5NmRiOWJmYTdkNiI+ZXRoYXJwX2lucHV0KCk8L2E+LjwvcD4KLTxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgotICA8dGFibGUgY2xhc3M9InBhcmFtcyI+Ci0gICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPm5ldHdvcmsgaW50ZXJmYWNlIHRvIHVzZSBmb3IgYXV0b2lwIHByb2Nlc3NpbmcgPC90ZD48L3RyPgotICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+aGRyPC90ZD48dGQ+SW5jb21pbmcgQVJQIHBhY2tldCA8L3RkPjwvdHI+Ci0gIDwvdGFibGU+Ci0gIDwvZGQ+Ci08L2RsPgotCi08L2Rpdj4KLTwvZGl2PgotPGEgaWQ9ImExMWRmN2EyMGQ1MjY4MGNkOGMxYzE4ZmJhMmI5MWU5ZSIgbmFtZT0iYTExZGY3YTIwZDUyNjgwY2Q4YzFjMThmYmEyYjkxZTllIj48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTExZGY3YTIwZDUyNjgwY2Q4YzFjMThmYmEyYjkxZTllIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfbmV0d29ya19jaGFuZ2VkKCk8L2gyPgotCi08ZGl2IGNsYXNzPSJtZW1pdGVtIj4KLTxkaXYgY2xhc3M9Im1lbXByb3RvIj4KLSAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+Ci0gICAgICAgIDx0cj4KLSAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgYXV0b2lwX25ldHdvcmtfY2hhbmdlZCA8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dm9pZCBhdXRvaXBfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93biA8L3RkPgogICAgICAgICAgIDx0ZD4oPC90ZD4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm5ldGlmPC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CiAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPkhhbmRsZSBhIHBvc3NpYmxlIGNoYW5nZSBpbiB0aGUgbmV0d29yayBjb25maWd1cmF0aW9uLjwvcD4KLTxwPklmIHRoZXJlIGlzIGFuIEF1dG9JUCBhZGRyZXNzIGNvbmZpZ3VyZWQsIHRha2UgdGhlIGludGVyZmFjZSBkb3duIGFuZCBiZWdpbiBwcm9iaW5nIHdpdGggdGhlIHNhbWUgYWRkcmVzcy4gPC9wPgorPHA+SGFuZGxlIGEgcG9zc2libGUgY2hhbmdlIGluIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb246IGxpbmsgZG93bjwvcD4KKzxwPklmIHRoZXJlIGlzIGFuIEF1dG9JUCBhZGRyZXNzIGNvbmZpZ3VyZWQgYW5kIEF1dG9JUCBpcyBpbiBjb29wZXJhdGlvbiB3aXRoIERIQ1AsIHRoZW4gc3RvcCB0aGUgYXV0b2lwIG1vZHVsZS4gV2hlbiB0aGUgbGluayBnb2VzIHVwLCB3ZSBkbyBub3Qgd2FudCB0aGUgYXV0b2lwIG1vZHVsZSB0byBzdGFydCBhZ2Fpbi4gREhDUCB3aWxsIGluaXRpYXRlIGF1dG9pcCB3aGVuIG5lZWRlZC4gPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgotPGEgaWQ9ImExYjRmMGM1M2RhMTczOTVkOWRlOTJhODU3MDhhMWJiOSIgbmFtZT0iYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ij48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfc3VwcGxpZWRfYWRkcmVzcygpPC9oMj4KKzxhIGlkPSJhZjJhMzZhZWU5NmNiZGY4ZjRhOGYxZTY5YzkxZmY0MjUiIG5hbWU9ImFmMmEzNmFlZTk2Y2JkZjhmNGE4ZjFlNjljOTFmZjQyNSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FmMmEzNmFlZTk2Y2JkZjhmNGE4ZjFlNjljOTFmZjQyNSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YXV0b2lwX25ldHdvcmtfY2hhbmdlZF9saW5rX3VwKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgYXV0b2lwX25ldHdvcmtfY2hhbmdlZF9saW5rX3VwIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bmV0aWY8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+SGFuZGxlIGEgcG9zc2libGUgY2hhbmdlIGluIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb246IGxpbmsgdXA8L3A+Cis8cD5JZiB0aGVyZSBpcyBhbiBBdXRvSVAgYWRkcmVzcyBjb25maWd1cmVkIGFuZCBBdXRvSVAgaXMgbm90IGluIGNvb3BlcmF0aW9uIHdpdGggREhDUCwgc3RhcnQgcHJvYmluZyBmb3IgcHJldmlvdXMgYWRkcmVzcy4gPC9wPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImE2ZGU5N2I3ZGNkOThmOTAzOWQ1YzFhZDExYzI1N2Q2MiIgbmFtZT0iYTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfc3VwcGxpZWRfYWRkcmVzcygpPC9oMj4KIAogPGRpdiBjbGFzcz0ibWVtaXRlbSI+CiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CkBAIC0yNDQsNyArMjEwLDcgQEAKICAgICAgICAgPHRyPgogICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dThfdCBhdXRvaXBfc3VwcGxpZWRfYWRkcmVzcyA8L3RkPgogICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3Qgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm5ldGlmPC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgogICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KQEAgLTI1NiwyNSArMjIyLDcgQEAKICAgPC90YWJsZT4KICAgPC9kZD4KIDwvZGw+Ci08ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPjEgaWYgQXV0b0lQIHN1cHBsaWVkIG5ldGlmLSZndDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19hZGRyLmh0bWwiPmlwX2FkZHI8L2E+IChzdGF0ZSBCT1VORCBvciBBTk5PVU5DSU5HKSwgMCBvdGhlcndpc2UgPC9kZD48L2RsPgotCi08L2Rpdj4KLTwvZGl2PgotPGEgaWQ9ImE3NDZmYzFkN2RiMWJmMTYxN2FmYWUxNjZjOWQ5MmMyZCIgbmFtZT0iYTc0NmZjMWQ3ZGIxYmYxNjE3YWZhZTE2NmM5ZDkyYzJkIj48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTc0NmZjMWQ3ZGIxYmYxNjE3YWZhZTE2NmM5ZDkyYzJkIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfdG1yKCk8L2gyPgotCi08ZGl2IGNsYXNzPSJtZW1pdGVtIj4KLTxkaXYgY2xhc3M9Im1lbXByb3RvIj4KLSAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+Ci0gICAgICAgIDx0cj4KLSAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgYXV0b2lwX3RtciA8L3RkPgotICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dm9pZDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+PC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+Ci0gICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgIDwvdHI+Ci0gICAgICA8L3RhYmxlPgotPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPkhhcyB0byBiZSBjYWxsZWQgaW4gbG9vcCBldmVyeSBBVVRPSVBfVE1SX0lOVEVSVkFMIG1pbGxpc2Vjb25kcyA8L3A+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPjEgaWYgQXV0b0lQIHN1cHBsaWVkIG5ldGlmLSZndDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19hZGRyLmh0bWwiPmlwX2FkZHI8L2E+IChzdGF0ZSBCT1VORCksIDAgb3RoZXJ3aXNlIDwvZGQ+PC9kbD4KIAogPC9kaXY+CiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2F1dG9pcF84Yy5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2F1dG9pcF84Yy5qcwppbmRleCA1ZDQzMzQzLi44Y2U5YjM3IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hdXRvaXBfOGMuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXV0b2lwXzhjLmpzCkBAIC0xLDEyICsxLDExIEBACiB2YXIgYXV0b2lwXzhjID0KIFsKICAgICBbICJMV0lQX0FVVE9JUF9DUkVBVEVfU0VFRF9BRERSIiwgImF1dG9pcF84Yy5odG1sI2FjZWM3NTA2OWY2ZTZlY2JlMjAwYzU2OTFlNTZlY2Q0MyIsIG51bGwgXSwKLSAgICBbICJMV0lQX0FVVE9JUF9SQU5EIiwgImF1dG9pcF84Yy5odG1sI2E2MzQ1MzUxNTZjYzFhOGNmOWYwNGQzZDVjNzRmOGE1OSIsIG51bGwgXSwKLSAgICBbICJhdXRvaXBfYXJwX3JlcGx5IiwgImF1dG9pcF84Yy5odG1sI2FjYWYyNzkzMzI1YzYwZGM0NTMxYzIxYTNmZDU1YzE2ZSIsIG51bGwgXSwKLSAgICBbICJhdXRvaXBfbmV0d29ya19jaGFuZ2VkIiwgImF1dG9pcF84Yy5odG1sI2ExMWRmN2EyMGQ1MjY4MGNkOGMxYzE4ZmJhMmI5MWU5ZSIsIG51bGwgXSwKKyAgICBbICJhdXRvaXBfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93biIsICJhdXRvaXBfOGMuaHRtbCNhZjkzNTQ0YzQ5ZjJjMjRiOTVhMzk4MTM1MWQwMjMwNTYiLCBudWxsIF0sCisgICAgWyAiYXV0b2lwX25ldHdvcmtfY2hhbmdlZF9saW5rX3VwIiwgImF1dG9pcF84Yy5odG1sI2FmMmEzNmFlZTk2Y2JkZjhmNGE4ZjFlNjljOTFmZjQyNSIsIG51bGwgXSwKKyAgICBbICJhdXRvaXBfcmVtb3ZlX3N0cnVjdCIsICJncm91cF9fYXV0b2lwLmh0bWwjZ2FjMGM5ODAzNTc5NTUwMGVkZTQ2NGFhNGFmMjUxNWYzMCIsIG51bGwgXSwKICAgICBbICJhdXRvaXBfc2V0X3N0cnVjdCIsICJncm91cF9fYXV0b2lwLmh0bWwjZ2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCIsIG51bGwgXSwKICAgICBbICJhdXRvaXBfc3RhcnQiLCAiZ3JvdXBfX2F1dG9pcC5odG1sI2dhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiLCBudWxsIF0sCiAgICAgWyAiYXV0b2lwX3N0b3AiLCAiZ3JvdXBfX2F1dG9pcC5odG1sI2dhNThhNGRjZTY1OGRkMTI2M2U4NGViOTgyZjYyNTg3ZDQiLCBudWxsIF0sCi0gICAgWyAiYXV0b2lwX3N1cHBsaWVkX2FkZHJlc3MiLCAiYXV0b2lwXzhjLmh0bWwjYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5IiwgbnVsbCBdLAotICAgIFsgImF1dG9pcF90bXIiLCAiYXV0b2lwXzhjLmh0bWwjYTc0NmZjMWQ3ZGIxYmYxNjE3YWZhZTE2NmM5ZDkyYzJkIiwgbnVsbCBdCisgICAgWyAiYXV0b2lwX3N1cHBsaWVkX2FkZHJlc3MiLCAiYXV0b2lwXzhjLmh0bWwjYTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIiwgbnVsbCBdCiBdOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2F1dG9pcF84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXV0b2lwXzhoLmh0bWwKaW5kZXggZDk4YjdhOC4uYjhjZjg3OCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXV0b2lwXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXV0b2lwXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtOTksNyArOTksNiBAQAogPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgPGRpdiBjbGFzcz0ic3VtbWFyeSI+CiA8YSBocmVmPSIjbmVzdGVkLWNsYXNzZXMiPkRhdGEgU3RydWN0dXJlczwvYT4gJiMxMjQ7Ci08YSBocmVmPSIjZGVmaW5lLW1lbWJlcnMiPk1hY3JvczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjZnVuYy1tZW1iZXJzIj5GdW5jdGlvbnM8L2E+ICA8L2Rpdj4KICAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5hdXRvaXAuaCBGaWxlIFJlZmVyZW5jZTwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLWhlYWRlci0tPgpAQCAtMTA3LDEyNiArMTA2LDczIEBACiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ib3B0XzhoLmh0bWwiPmx3aXAvb3B0Lmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sIj5sd2lwL25ldGlmLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCI+bHdpcC9ldGhhcnAuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+Cis8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84aC5odG1sIj5sd2lwL2FjZC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDwvZGl2Pjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9Im5lc3RlZC1jbGFzc2VzIiBuYW1lPSJuZXN0ZWQtY2xhc3NlcyI+PC9hPgogRGF0YSBTdHJ1Y3R1cmVzPC9oMj48L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwiPmF1dG9pcDwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgotPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImRlZmluZS1tZW1iZXJzIiBuYW1lPSJkZWZpbmUtbWVtYmVycyI+PC9hPgotTWFjcm9zPC9oMj48L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YTg5ODY5MTlhNDUyYWI3N2VlYzlhMTk5ZmY2NjY4ZTkyIiBpZD0icl9hODk4NjkxOWE0NTJhYjc3ZWVjOWExOTlmZjY2NjhlOTIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTg5ODY5MTlhNDUyYWI3N2VlYzlhMTk5ZmY2NjY4ZTkyIj5BVVRPSVBfVE1SX0lOVEVSVkFMPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzEwMDwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmE4OTg2OTE5YTQ1MmFiNzdlZWM5YTE5OWZmNjY2OGU5MiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTphYWViNGI3NzhmY2UwNzhiZWU4NDE0NGFiNTA5MTZiMTUiIGlkPSJyX2FhZWI0Yjc3OGZjZTA3OGJlZTg0MTQ0YWI1MDkxNmIxNSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhYWViNGI3NzhmY2UwNzhiZWU4NDE0NGFiNTA5MTZiMTUiPmF1dG9pcF9yZW1vdmVfc3RydWN0PC9hPig8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjphYWViNGI3NzhmY2UwNzhiZWU4NDE0NGFiNTA5MTZiMTUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImZ1bmMtbWVtYmVycyIgbmFtZT0iZnVuYy1tZW1iZXJzIj48L2E+CiBGdW5jdGlvbnM8L2gyPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTIxMjJjMGIyNTE4YjM3MTU1OWZlZjVlYzFkMmFlZDkwIiBpZD0icl9nYTIxMjJjMGIyNTE4YjM3MTU1OWZlZjVlYzFkMmFlZDkwIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhMjEyMmMwYjI1MThiMzcxNTU5ZmVmNWVjMWQyYWVkOTAiPmF1dG9pcF9zZXRfc3RydWN0PC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwiPmF1dG9pcDwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwiPmF1dG9pcDwvYT4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWMwYzk4MDM1Nzk1NTAwZWRlNDY0YWE0YWYyNTE1ZjMwIiBpZD0icl9nYWMwYzk4MDM1Nzk1NTAwZWRlNDY0YWE0YWYyNTE1ZjMwIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhYzBjOTgwMzU3OTU1MDBlZGU0NjRhYTRhZjI1MTVmMzAiPmF1dG9pcF9yZW1vdmVfc3RydWN0PC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWMwYzk4MDM1Nzk1NTAwZWRlNDY0YWE0YWYyNTE1ZjMwIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiIGlkPSJyX2dhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2ExNDYxZjU4MjZlYmVmYzA1MGUwZDYzMDEzODE4ZDFlOCI+YXV0b2lwX3N0YXJ0PC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTE0NjFmNTgyNmViZWZjMDUwZTBkNjMwMTM4MThkMWU4Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhNThhNGRjZTY1OGRkMTI2M2U4NGViOTgyZjYyNTg3ZDQiIGlkPSJyX2dhNThhNGRjZTY1OGRkMTI2M2U4NGViOTgyZjYyNTg3ZDQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCI+YXV0b2lwX3N0b3A8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNThhNGRjZTY1OGRkMTI2M2U4NGViOTgyZjYyNTg3ZDQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YWNhZjI3OTMzMjVjNjBkYzQ1MzFjMjFhM2ZkNTVjMTZlIiBpZD0icl9hY2FmMjc5MzMyNWM2MGRjNDUzMWMyMWEzZmQ1NWMxNmUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWNhZjI3OTMzMjVjNjBkYzQ1MzFjMjFhM2ZkNTVjMTZlIj5hdXRvaXBfYXJwX3JlcGx5PC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZXRoYXJwX19oZHIuaHRtbCI+ZXRoYXJwX2hkcjwvYT4gKmhkcik8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjphY2FmMjc5MzMyNWM2MGRjNDUzMWMyMWEzZmQ1NWMxNmUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YTc0NmZjMWQ3ZGIxYmYxNjE3YWZhZTE2NmM5ZDkyYzJkIiBpZD0icl9hNzQ2ZmMxZDdkYjFiZjE2MTdhZmFlMTY2YzlkOTJjMmQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTc0NmZjMWQ3ZGIxYmYxNjE3YWZhZTE2NmM5ZDkyYzJkIj5hdXRvaXBfdG1yPC9hPiAodm9pZCk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjphNzQ2ZmMxZDdkYjFiZjE2MTdhZmFlMTY2YzlkOTJjMmQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YTExZGY3YTIwZDUyNjgwY2Q4YzFjMThmYmEyYjkxZTllIiBpZD0icl9hMTFkZjdhMjBkNTI2ODBjZDhjMWMxOGZiYTJiOTFlOWUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTExZGY3YTIwZDUyNjgwY2Q4YzFjMThmYmEyYjkxZTllIj5hdXRvaXBfbmV0d29ya19jaGFuZ2VkPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjphMTFkZjdhMjBkNTI2ODBjZDhjMWMxOGZiYTJiOTFlOWUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5IiBpZD0icl9hMWI0ZjBjNTNkYTE3Mzk1ZDlkZTkyYTg1NzA4YTFiYjkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnU4X3QmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ij5hdXRvaXBfc3VwcGxpZWRfYWRkcmVzczwvYT4gKGNvbnN0IHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmFmMmEzNmFlZTk2Y2JkZjhmNGE4ZjFlNjljOTFmZjQyNSIgaWQ9InJfYWYyYTM2YWVlOTZjYmRmOGY0YThmMWU2OWM5MWZmNDI1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2FmMmEzNmFlZTk2Y2JkZjhmNGE4ZjFlNjljOTFmZjQyNSI+YXV0b2lwX25ldHdvcmtfY2hhbmdlZF9saW5rX3VwPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphZjJhMzZhZWU5NmNiZGY4ZjRhOGYxZTY5YzkxZmY0MjUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YWY5MzU0NGM0OWYyYzI0Yjk1YTM5ODEzNTFkMDIzMDU2IiBpZD0icl9hZjkzNTQ0YzQ5ZjJjMjRiOTVhMzk4MTM1MWQwMjMwNTYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWY5MzU0NGM0OWYyYzI0Yjk1YTM5ODEzNTFkMDIzMDU2Ij5hdXRvaXBfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93bjwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YWY5MzU0NGM0OWYyYzI0Yjk1YTM5ODEzNTFkMDIzMDU2Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmE2ZGU5N2I3ZGNkOThmOTAzOWQ1YzFhZDExYzI1N2Q2MiIgaWQ9InJfYTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj51OF90JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E2ZGU5N2I3ZGNkOThmOTAzOWQ1YzFhZDExYzI1N2Q2MiI+YXV0b2lwX3N1cHBsaWVkX2FkZHJlc3M8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmE2ZGU5N2I3ZGNkOThmOTAzOWQ1YzFhZDExYzI1N2Q2MiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxkaXYgY2xhc3M9InRleHRibG9jayI+PHA+QXV0b0lQIEF1dG9tYXRpYyBMaW5rTG9jYWwgSVAgQ29uZmlndXJhdGlvbiA8L3A+Ci08L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5NYWNybyBEZWZpbml0aW9uIERvY3VtZW50YXRpb248L2gyPgotPGEgaWQ9ImFhZWI0Yjc3OGZjZTA3OGJlZTg0MTQ0YWI1MDkxNmIxNSIgbmFtZT0iYWFlYjRiNzc4ZmNlMDc4YmVlODQxNDRhYjUwOTE2YjE1Ij48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWFlYjRiNzc4ZmNlMDc4YmVlODQxNDRhYjUwOTE2YjE1Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfcmVtb3ZlX3N0cnVjdDwvaDI+Cis8L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KKzxhIGlkPSJhZjkzNTQ0YzQ5ZjJjMjRiOTVhMzk4MTM1MWQwMjMwNTYiIG5hbWU9ImFmOTM1NDRjNDlmMmMyNGI5NWEzOTgxMzUxZDAyMzA1NiI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FmOTM1NDRjNDlmMmMyNGI5NWEzOTgxMzUxZDAyMzA1NiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YXV0b2lwX25ldHdvcmtfY2hhbmdlZF9saW5rX2Rvd24oKTwvaDI+CiAKIDxkaXYgY2xhc3M9Im1lbWl0ZW0iPgogPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgogICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KICAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBhdXRvaXBfcmVtb3ZlX3N0cnVjdDwvdGQ+Ci0gICAgICAgICAgPHRkPig8L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+Ci0gICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgIDwvdHI+Ci0gICAgICA8L3RhYmxlPgotPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+PHNwYW4gY2xhc3M9ImtleXdvcmRmbG93Ij5kbzwvc3Bhbj4geyAoPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pLSZndDs8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sIj5hdXRvaXA8L2E+ID0gTlVMTDsgfSA8c3BhbiBjbGFzcz0ia2V5d29yZGZsb3ciPndoaWxlPC9zcGFuPiAoMCk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RhdXRvaXBfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RhdXRvaXAuaHRtbCI+YXV0b2lwPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBhdXRvaXAuaDo2MjwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjYwPC9kaXY+PC9kaXY+Ci08L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPlJlbW92ZSBhIHN0cnVjdCBhdXRvaXAgcHJldmlvdXNseSBzZXQgdG8gdGhlIG5ldGlmIHVzaW5nIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhMjEyMmMwYjI1MThiMzcxNTU5ZmVmNWVjMWQyYWVkOTAiPmF1dG9pcF9zZXRfc3RydWN0KCk8L2E+IDwvcD4KLQotPC9kaXY+Ci08L2Rpdj4KLTxhIGlkPSJhODk4NjkxOWE0NTJhYjc3ZWVjOWExOTlmZjY2NjhlOTIiIG5hbWU9ImE4OTg2OTE5YTQ1MmFiNzdlZWM5YTE5OWZmNjY2OGU5MiI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2E4OTg2OTE5YTQ1MmFiNzdlZWM5YTE5OWZmNjY2OGU5MiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+QVVUT0lQX1RNUl9JTlRFUlZBTDwvaDI+Ci0KLTxkaXYgY2xhc3M9Im1lbWl0ZW0iPgotPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgotICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBBVVRPSVBfVE1SX0lOVEVSVkFMJiMxNjA7JiMxNjA7JiMxNjA7MTAwPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgIDwvdGFibGU+Ci08L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+QXV0b0lQIFRpbWluZyA8L3A+Ci0KLTwvZGl2PgotPC9kaXY+Ci08aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KLTxhIGlkPSJhY2FmMjc5MzMyNWM2MGRjNDUzMWMyMWEzZmQ1NWMxNmUiIG5hbWU9ImFjYWYyNzkzMzI1YzYwZGM0NTMxYzIxYTNmZDU1YzE2ZSI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FjYWYyNzkzMzI1YzYwZGM0NTMxYzIxYTNmZDU1YzE2ZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YXV0b2lwX2FycF9yZXBseSgpPC9oMj4KLQotPGRpdiBjbGFzcz0ibWVtaXRlbSI+Ci08ZGl2IGNsYXNzPSJtZW1wcm90byI+Ci0gICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgotICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIGF1dG9pcF9hcnBfcmVwbHkgPC90ZD4KLSAgICAgICAgICA8dGQ+KDwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPiwgPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+Ci0gICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGV0aGFycF9faGRyLmh0bWwiPmV0aGFycF9oZHI8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmhkcjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgotICAgICAgICA8L3RyPgotICAgICAgPC90YWJsZT4KLTwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5IYW5kbGVzIGV2ZXJ5IGluY29taW5nIEFSUCBQYWNrZXQsIGNhbGxlZCBieSA8YSBjbGFzcz0iZWwiIGhyZWY9ImV0aGFycF84Yy5odG1sI2E1NDBhNTUwNjk3OTY5M2VmOWFjNDQ5NmRiOWJmYTdkNiI+ZXRoYXJwX2lucHV0KCk8L2E+LjwvcD4KLTxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgotICA8dGFibGUgY2xhc3M9InBhcmFtcyI+Ci0gICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPm5ldHdvcmsgaW50ZXJmYWNlIHRvIHVzZSBmb3IgYXV0b2lwIHByb2Nlc3NpbmcgPC90ZD48L3RyPgotICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+aGRyPC90ZD48dGQ+SW5jb21pbmcgQVJQIHBhY2tldCA8L3RkPjwvdHI+Ci0gIDwvdGFibGU+Ci0gIDwvZGQ+Ci08L2RsPgotCi08L2Rpdj4KLTwvZGl2PgotPGEgaWQ9ImExMWRmN2EyMGQ1MjY4MGNkOGMxYzE4ZmJhMmI5MWU5ZSIgbmFtZT0iYTExZGY3YTIwZDUyNjgwY2Q4YzFjMThmYmEyYjkxZTllIj48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTExZGY3YTIwZDUyNjgwY2Q4YzFjMThmYmEyYjkxZTllIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfbmV0d29ya19jaGFuZ2VkKCk8L2gyPgotCi08ZGl2IGNsYXNzPSJtZW1pdGVtIj4KLTxkaXYgY2xhc3M9Im1lbXByb3RvIj4KLSAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+Ci0gICAgICAgIDx0cj4KLSAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgYXV0b2lwX25ldHdvcmtfY2hhbmdlZCA8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dm9pZCBhdXRvaXBfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93biA8L3RkPgogICAgICAgICAgIDx0ZD4oPC90ZD4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm5ldGlmPC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CiAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPkhhbmRsZSBhIHBvc3NpYmxlIGNoYW5nZSBpbiB0aGUgbmV0d29yayBjb25maWd1cmF0aW9uLjwvcD4KLTxwPklmIHRoZXJlIGlzIGFuIEF1dG9JUCBhZGRyZXNzIGNvbmZpZ3VyZWQsIHRha2UgdGhlIGludGVyZmFjZSBkb3duIGFuZCBiZWdpbiBwcm9iaW5nIHdpdGggdGhlIHNhbWUgYWRkcmVzcy4gPC9wPgorPHA+SGFuZGxlIGEgcG9zc2libGUgY2hhbmdlIGluIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb246IGxpbmsgZG93bjwvcD4KKzxwPklmIHRoZXJlIGlzIGFuIEF1dG9JUCBhZGRyZXNzIGNvbmZpZ3VyZWQgYW5kIEF1dG9JUCBpcyBpbiBjb29wZXJhdGlvbiB3aXRoIERIQ1AsIHRoZW4gc3RvcCB0aGUgYXV0b2lwIG1vZHVsZS4gV2hlbiB0aGUgbGluayBnb2VzIHVwLCB3ZSBkbyBub3Qgd2FudCB0aGUgYXV0b2lwIG1vZHVsZSB0byBzdGFydCBhZ2Fpbi4gREhDUCB3aWxsIGluaXRpYXRlIGF1dG9pcCB3aGVuIG5lZWRlZC4gPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgotPGEgaWQ9ImExYjRmMGM1M2RhMTczOTVkOWRlOTJhODU3MDhhMWJiOSIgbmFtZT0iYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ij48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfc3VwcGxpZWRfYWRkcmVzcygpPC9oMj4KKzxhIGlkPSJhZjJhMzZhZWU5NmNiZGY4ZjRhOGYxZTY5YzkxZmY0MjUiIG5hbWU9ImFmMmEzNmFlZTk2Y2JkZjhmNGE4ZjFlNjljOTFmZjQyNSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FmMmEzNmFlZTk2Y2JkZjhmNGE4ZjFlNjljOTFmZjQyNSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YXV0b2lwX25ldHdvcmtfY2hhbmdlZF9saW5rX3VwKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgYXV0b2lwX25ldHdvcmtfY2hhbmdlZF9saW5rX3VwIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bmV0aWY8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+SGFuZGxlIGEgcG9zc2libGUgY2hhbmdlIGluIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb246IGxpbmsgdXA8L3A+Cis8cD5JZiB0aGVyZSBpcyBhbiBBdXRvSVAgYWRkcmVzcyBjb25maWd1cmVkIGFuZCBBdXRvSVAgaXMgbm90IGluIGNvb3BlcmF0aW9uIHdpdGggREhDUCwgc3RhcnQgcHJvYmluZyBmb3IgcHJldmlvdXMgYWRkcmVzcy4gPC9wPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImE2ZGU5N2I3ZGNkOThmOTAzOWQ1YzFhZDExYzI1N2Q2MiIgbmFtZT0iYTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfc3VwcGxpZWRfYWRkcmVzcygpPC9oMj4KIAogPGRpdiBjbGFzcz0ibWVtaXRlbSI+CiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CkBAIC0yMzQsNyArMTgwLDcgQEAKICAgICAgICAgPHRyPgogICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dThfdCBhdXRvaXBfc3VwcGxpZWRfYWRkcmVzcyA8L3RkPgogICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3Qgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm5ldGlmPC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgogICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KQEAgLTI0NiwyNSArMTkyLDcgQEAKICAgPC90YWJsZT4KICAgPC9kZD4KIDwvZGw+Ci08ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPjEgaWYgQXV0b0lQIHN1cHBsaWVkIG5ldGlmLSZndDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19hZGRyLmh0bWwiPmlwX2FkZHI8L2E+IChzdGF0ZSBCT1VORCBvciBBTk5PVU5DSU5HKSwgMCBvdGhlcndpc2UgPC9kZD48L2RsPgotCi08L2Rpdj4KLTwvZGl2PgotPGEgaWQ9ImE3NDZmYzFkN2RiMWJmMTYxN2FmYWUxNjZjOWQ5MmMyZCIgbmFtZT0iYTc0NmZjMWQ3ZGIxYmYxNjE3YWZhZTE2NmM5ZDkyYzJkIj48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTc0NmZjMWQ3ZGIxYmYxNjE3YWZhZTE2NmM5ZDkyYzJkIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hdXRvaXBfdG1yKCk8L2gyPgotCi08ZGl2IGNsYXNzPSJtZW1pdGVtIj4KLTxkaXYgY2xhc3M9Im1lbXByb3RvIj4KLSAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+Ci0gICAgICAgIDx0cj4KLSAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgYXV0b2lwX3RtciA8L3RkPgotICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dm9pZDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+PC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+Ci0gICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgIDwvdHI+Ci0gICAgICA8L3RhYmxlPgotPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPkhhcyB0byBiZSBjYWxsZWQgaW4gbG9vcCBldmVyeSBBVVRPSVBfVE1SX0lOVEVSVkFMIG1pbGxpc2Vjb25kcyA8L3A+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPjEgaWYgQXV0b0lQIHN1cHBsaWVkIG5ldGlmLSZndDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19hZGRyLmh0bWwiPmlwX2FkZHI8L2E+IChzdGF0ZSBCT1VORCksIDAgb3RoZXJ3aXNlIDwvZGQ+PC9kbD4KIAogPC9kaXY+CiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2F1dG9pcF84aC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2F1dG9pcF84aC5qcwppbmRleCAxMjFlOTM4Li4wYWVlM2MxIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9hdXRvaXBfOGguanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYXV0b2lwXzhoLmpzCkBAIC0xLDEzICsxLDExIEBACiB2YXIgYXV0b2lwXzhoID0KIFsKICAgICBbICJhdXRvaXAiLCAic3RydWN0YXV0b2lwLmh0bWwiLCAic3RydWN0YXV0b2lwIiBdLAotICAgIFsgImF1dG9pcF9yZW1vdmVfc3RydWN0IiwgImF1dG9pcF84aC5odG1sI2FhZWI0Yjc3OGZjZTA3OGJlZTg0MTQ0YWI1MDkxNmIxNSIsIG51bGwgXSwKLSAgICBbICJBVVRPSVBfVE1SX0lOVEVSVkFMIiwgImF1dG9pcF84aC5odG1sI2E4OTg2OTE5YTQ1MmFiNzdlZWM5YTE5OWZmNjY2OGU5MiIsIG51bGwgXSwKLSAgICBbICJhdXRvaXBfYXJwX3JlcGx5IiwgImF1dG9pcF84aC5odG1sI2FjYWYyNzkzMzI1YzYwZGM0NTMxYzIxYTNmZDU1YzE2ZSIsIG51bGwgXSwKLSAgICBbICJhdXRvaXBfbmV0d29ya19jaGFuZ2VkIiwgImF1dG9pcF84aC5odG1sI2ExMWRmN2EyMGQ1MjY4MGNkOGMxYzE4ZmJhMmI5MWU5ZSIsIG51bGwgXSwKKyAgICBbICJhdXRvaXBfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93biIsICJhdXRvaXBfOGguaHRtbCNhZjkzNTQ0YzQ5ZjJjMjRiOTVhMzk4MTM1MWQwMjMwNTYiLCBudWxsIF0sCisgICAgWyAiYXV0b2lwX25ldHdvcmtfY2hhbmdlZF9saW5rX3VwIiwgImF1dG9pcF84aC5odG1sI2FmMmEzNmFlZTk2Y2JkZjhmNGE4ZjFlNjljOTFmZjQyNSIsIG51bGwgXSwKKyAgICBbICJhdXRvaXBfcmVtb3ZlX3N0cnVjdCIsICJncm91cF9fYXV0b2lwLmh0bWwjZ2FjMGM5ODAzNTc5NTUwMGVkZTQ2NGFhNGFmMjUxNWYzMCIsIG51bGwgXSwKICAgICBbICJhdXRvaXBfc2V0X3N0cnVjdCIsICJncm91cF9fYXV0b2lwLmh0bWwjZ2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCIsIG51bGwgXSwKICAgICBbICJhdXRvaXBfc3RhcnQiLCAiZ3JvdXBfX2F1dG9pcC5odG1sI2dhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiLCBudWxsIF0sCiAgICAgWyAiYXV0b2lwX3N0b3AiLCAiZ3JvdXBfX2F1dG9pcC5odG1sI2dhNThhNGRjZTY1OGRkMTI2M2U4NGViOTgyZjYyNTg3ZDQiLCBudWxsIF0sCi0gICAgWyAiYXV0b2lwX3N1cHBsaWVkX2FkZHJlc3MiLCAiYXV0b2lwXzhoLmh0bWwjYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5IiwgbnVsbCBdLAotICAgIFsgImF1dG9pcF90bXIiLCAiYXV0b2lwXzhoLmh0bWwjYTc0NmZjMWQ3ZGIxYmYxNjE3YWZhZTE2NmM5ZDkyYzJkIiwgbnVsbCBdCisgICAgWyAiYXV0b2lwX3N1cHBsaWVkX2FkZHJlc3MiLCAiYXV0b2lwXzhoLmh0bWwjYTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIiwgbnVsbCBdCiBdOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2JyaWRnZWlmXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9icmlkZ2VpZl84Yy5odG1sCmluZGV4IDIxZGE2MjAuLjI1Zjc2MGIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2JyaWRnZWlmXzhjLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYnJpZGdlaWZfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9icmlkZ2VpZl84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYnJpZGdlaWZfOGguaHRtbAppbmRleCA2MzQ5MzUwLi5mODZkYmU5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9icmlkZ2VpZl84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2JyaWRnZWlmXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYnJpZGdlaWZfX2ZkYl84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYnJpZGdlaWZfX2ZkYl84Yy5odG1sCmluZGV4IDMyMDI3MTEuLjRkOWFhYjUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2JyaWRnZWlmX19mZGJfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9icmlkZ2VpZl9fZmRiXzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYnJpZGdlaWZfX29wdHNfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2JyaWRnZWlmX19vcHRzXzhoLmh0bWwKaW5kZXggZDc0MTMzOS4uMzYwZDIxMyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYnJpZGdlaWZfX29wdHNfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9icmlkZ2VpZl9fb3B0c184aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2J1Z3MuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2J1Z3MuaHRtbAppbmRleCBhOWIzZWZmLi5mYjNiNDAxIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9idWdzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvYnVncy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMSw4ICsxMDEsOCBAQAogPC9kaXY+PCEtLWhlYWRlci0tPgogPGRpdiBjbGFzcz0iY29udGVudHMiPgogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48cD5QbGVhc2UgcmVwb3J0IGJ1Z3MgaW4gdGhlIGx3SVAgYnVnIHRyYWNrZXIgYXQgc2F2YW5uYWguPGJyICAvPgotQkVGT1JFIHN1Ym1pdHRpbmcsIHBsZWFzZSBjaGVjayBpZiB0aGUgYnVnIGhhcyBhbHJlYWR5IGJlZW4gcmVwb3J0ZWQhPGJyICAvPgotPGEgaHJlZj0iaHR0cHM6Ly9zYXZhbm5haC5ub25nbnUub3JnL2J1Z3MvP2dyb3VwPWx3aXAiPmh0dHBzOi8vc2F2YW5uYWgubm9uZ251Lm9yZy9idWdzLz9ncm91cD1sd2lwPC9hPiA8L3A+CisgQkVGT1JFIHN1Ym1pdHRpbmcsIHBsZWFzZSBjaGVjayBpZiB0aGUgYnVnIGhhcyBhbHJlYWR5IGJlZW4gcmVwb3J0ZWQhPGJyICAvPgorIDxhIGhyZWY9Imh0dHBzOi8vc2F2YW5uYWgubm9uZ251Lm9yZy9idWdzLz9ncm91cD1sd2lwIj5odHRwczovL3NhdmFubmFoLm5vbmdudS5vcmcvYnVncy8/Z3JvdXA9bHdpcDwvYT4gPC9wPgogPC9kaXY+PC9kaXY+PCEtLSBjb250ZW50cyAtLT4KIDwvZGl2PjwhLS0gUGFnZURvYyAtLT4KIDwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9jaGFuZ2Vsb2cuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NoYW5nZWxvZy5odG1sCmluZGV4IDY5OGViNDEuLjYxZDFjMTUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NoYW5nZWxvZy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NoYW5nZWxvZy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTExOCw2ICsxMTgsOTMgQEAKIAogICAqIFtFbnRlciBuZXcgY2hhbmdlcyBqdXN0IGFmdGVyIHRoaXMgbGluZSAtIGRvIG5vdCByZW1vdmUgdGhpcyBsaW5lXQogCisoU1RBQkxFLTIuMi4wKToKKworICAyMDE4LTEwLTAyOiBEaXJrIFppZWdlbG1laWVyCisgICogSW50ZWdyYXRlIGNvbnRyaWIgcmVwb3NpdG9yeSBpbnRvIG1haW4gbHdJUCByZXBvc2l0b3J5CisKKyAgKysgTmV3IGZlYXR1cmVzOgorCisgIDIwMjItMDQtMDU6IERhdmlkIENlcm1haworICAqIGNvbnRyaWIvYWRkb25zOiBBZGQgZXhhbXBsZSBvZiB1c2luZyBESENQIGV4dHJhIG9wdGlvbnMgaG9va3MKKworICAyMDIzLTA1LTExOiBEYXZpZCBDZXJtYWsKKyAgKiBkaGNwOiBBZGQgbWFjcm8gZm9yIGFwcGVuZGluZyBleHRyYSBjbGllbnQncyByZXF1ZXN0IG9wdGlvbnMKKworICAyMDIzLTA1LTExOiB4dWV5dW5mZWkKKyAgKiBkaGNwOiBFbmFibGUgY3VzdG9tIGNvbmZpZyBmb3IgdGltZW91dHMsIHRocmVzaG9sZHMsIGJhY2tvZmYgdGltZQorCisgIDIwMjEtMDQtMjYKKyAgKiB0ZXN0L3VuaXQ6IGFkZGVkIG1vcmUgdW5pdCB0ZXN0cworCisgIDIwMjAtMDMtMjc6IFNpbW9uIEdvbGRzY2htaWR0CisgICogdGVzdC9mdXp6OiBpbXByb3ZlIGZ1enogdGVzdAorCisgIDIwMTktMTItMTE6IFNpbW9uIEdvbGRzY2htaWR0CisgICogaXA2YWRkcl9hdG9uOiBzdXBwb3J0IHNjb3BlZCBhZGRyZXNzIHN0cmluZ3MgKHZpYSAnJScpCisKKyAgMjAxOS0wOC0yODogSm9hbiBMbGVkw7MKKyAgKiBDb250cmliOiBBZGQga0ZyZWVCU0QgdG8gdGhlIFVuaXggcG9ydAorCisgIDIwMTktMDctMTQ6IEpvYW4gTGxlZMOzCisgICogVW5peCBwb3J0OiBpbXByb3ZlIHN1cHBvcnQgZm9yIHRoZSBIdXJkCisKKyAgKysgQnVnZml4ZXM6CisKKyAgMjAxOS0xMi0xMTogRGF2aWQgR2lyYXVsdAorICAqIGFsdGNwX3Rsczogc3VwcG9ydCBmb3Igc2F2aW5nL3Jlc3RvcmluZyBzZXNzaW9uIGluZm9ybWF0aW9uCisKKyAgMjAxOC0xMS0xNjogQ3JhaWcgTWNRVWVlbgorICAqIGRuczogYWxsb3cgYSBETlMgbG9vay11cCB3aXRoIGEgdHJhaWxpbmcgZG90IGluIHRoZSBuYW1lCisKKyAgMjAxOC0xMC0xOTogVGltbXkgQnJvbGluCisgICogQWRkIG91dGdvaW5nIFZMQU4gUENQIHN1cHBvcnQgZm9yIEV0aGVybmV0IGxldmVsIFFvUworCisgIDIwMTgtMTAtMDg6IEJlbiBXaWplbgorICAqIGFwcHMvdGZ0cDogYWRkZWQgVEZUUCBjbGllbnQKKworICAyMDE4LTEwLTA0OiBKYXNwZXIgVmVyc2NodWVyZW4KKyAgKiBJbXBsZW1lbnQgSVB2NCBBQ0QgKEFkZHJlc3MgQ29uZmxpY3QgRGV0ZWN0aW9uKQorCisgIDIwMjMtMDUtMTAKKyAgKiBhbHRjcF90bHNfbWJlZHRsczogbm90ZSB3aGljaCB2ZXJzaW9uIG9mIG1iZWR0bHMgd2UgYXJlIGNvbXBhdGlibGUgdG8KKyAgKiBhbHRjcF90bHNfbWJlZHRsczogbXVsdGlwbGUgY29tcGF0aWJpbGl0eSBmaXhlcworCisgIDIwMjMtMDQtMjY6IEphbiBCcmV1ZXIsIEhhcnJvbGQgU3BpZXIsIE9nbmplbiBCamVsaWNhLCBEaXJrIFppZWdlbG1laWVyLCBTaW1vbiBHb2xkc2NobWlkdAorICAqIGFwcHMvc25tcDogbXVsdGlwbGUgZml4ZXMgYW5kIGltcHJvdmVtZW50cyB0byBzbm1wCisKKyAgMjAyMi0wMS0xMjogU2ltb24gR29sZHNjaG1pZHQKKyAgKiBodHRwZDogY2xlYW4gdXAgY3VzdG9tIGZpbGUgaGFuZGxpbmcKKworICAyMDIxLTExLTI1OiBxdWFuamlhCisgICogcGluZzogZml4IHNvY2thZGRyIGxlbiBpbiBwaW5nX3NlbmQoKSBmb3IgUElOR19VU0VfU09DS0VUUz09MQorCisgIDIwMjEtMTEtMTI6IEJhcyBQcmlucworICAqIGh0dHBfY2xpZW50OiByZXNldCB0aW1lb3V0IHdoZW4gcmVjZWl2aW5nIGRhdGEKKworICAyMDIwLTA3LTA3OiBFcmlrIEVrbWFuCisgICogUmVuYW1lIElQIGFuZCBFdGhlcm5ldCBlcXVhbGl0eSBjaGVja2VycyBmcm9tIF9jbXAgdG8gX2VxCisKKyAgMjAyMC0wMy0wNTogU2ltb24gR29sZHNjaG1pZHQKKyAgKiB0Y3A6IHRpZ2h0ZW4gdXAgY2hlY2tzIGZvciByZWNlaXZlZCBTWU4KKworICAyMDIwLTAxLTMwOiBTaW1vbiBHb2xkc2NobWlkdCwgRGF2aWQgR2lyYXVsdCwgRGF2aWQgSi4gRmlkZGVzLCBUb20gRmVycmluCisgICogYXBwcy9zbnRwOiBtdWx0aXBsZSBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzIGZvciBzbnRwCisKKyAgMjAyMC0wMS0zMDogU2ltb24gR29sZHNjaG1pZHQKKyAgKiBpcF9mb3J3YXJkOiBmaXggSVB2NCBmb3J3YXJkaW5nIHdpdGggbXVsdGlwbGUgbmV0aWZzL29mZmxvYWRpbmcKKworICAyMDE5LTA2LTExOiBEYXZpZCBHaXJhdWx0LCBHaXVzZXBwZSBNb2R1Z25vCisgICogYXBwcy9tcXR0OiBtdWx0aXBsZSBmaXhlcyBmb3IgbXF0dAorCisgIDIwMTktMDUtMTk6IEpvYW4gTGxlZMOzCisgICogTmV3IGZ1bmN0aW9uIHRjcGlwX2NhbGxiYWNrX3dhaXQoKQorICAgIENhbGwgYSBmdW5jdGlvbiBpbnNpZGUgdGhlIHRjcGlwIHRocmVhZCBhbmQgYmxvY2sgdGhlIGNhbGxpbmcgdGhyZWFkIHVudGlsCisgICAgdGhlIGNhbGxiYWNrIGZpbmlzaGVzCisKKyAgMjAxOC0wOC0xNTogSmFzcGVyIFZlcnNjaHVlcmVuLCBEYXZpZCBHaXJhdWx0LCBPdXIgQWlyIFF1YWxpdHkKKyAgKiBhcHBzL21kbnM6IGdyZWF0bHkgaW1wcm92ZWQgdGhlIG1kbnMgY2xpZW50CisKIChTVEFCTEUtMi4xLjIpOgogCiAgICsrIEJ1Z2ZpeGVzOgpAQCAtMjg5LDcgKzM3Niw3IEBACiAKICAgMjAxNy0wMS0yMDogSm9lbCBDdW5uaW5naGFtCiAgICogc29ja2V0czogYWRkIGludGVyZmFjZSBuYW1lL2luZGV4IEFQSXMgKHRhc2sgIzE0MzE0KQotICAKKwogICAyMDE3LTAxLTA4OiBEYXZpZCB2YW4gTW9vbGVuYnJvZWsKICAgKiBFeHRlbnNpb25zIHRvIFJBVyBBUEkgKHBhdGNoICM5MjA4KQogICAgIC0gQ29ubmVjdGVkIFJBVyBQQ0JzCkBAIC0zNzgsNyArNDY1LDcgQEAKIAogICAyMDE3LTA4LTAyOiBBYnJveiBCaXpqYWsvU2ltb24gR29sZHNjaG1pZHQKICAgKiBtdWx0aXBsZSBmaXhlcyBpbiBJUHY0IHJlYXNzZW1ibHkgKGxlYWRpbmcgdG8gY29ycnVwdGVkIGRhdGFncmFtcyByZWNlaXZlZCkKLSAgCisKICAgMjAxNy0wMy0zMDogU2ltb24gR29sZHNjaG1pZHQKICAgKiBkaGNwLmM6IHJldHVybiBFUlJfVkFMIGluc3RlYWQgb2YgYXNzZXJ0aW5nIG9uIG9mZnNldC1vdXQtb2YtcGJ1ZgogCkBAIC01MjMsNyArNjEwLDcgQEAKIAogICAyMDE2LTExLTE0OiBKb2VsIEN1bm5pbmdoYW0KICAgKiB0Y3Bfb3V0LmM6IGZpeGVkIGJ1ZyAjNDk1MzMgKHN0YXJ0IHBlcnNpc3QgdGltZXIgd2hlbiB1bnNlbnQgc2VnIGNhbid0IGZpdAotICAgIGluIHdpbmRvdykgCisgICAgaW4gd2luZG93KQogCiAgIDIwMTYtMTEtMTY6IFJvYmVydG8gQmFyYmllcmkgQ2FycmVyYQogICAqIGF1dG9pcC5jOiBmaXhlZCBidWcgIzQ5NjEwIChzb21ldGltZXMgQXV0b0lQIGZhaWxzIHRvIHJldXNlIHRoZSBzYW1lIGFkZHJlc3MpCkBAIC03OTgsNyArODg1LDcgQEAKICAgICAgIGltcGxlbWVudGF0aW9uIHdoaWNoIGlzIHVuZGVyIGEgQlNELWlzaCBsaWNlbnNlLgogICAgIC0gQWxzbyBzd2l0Y2hlZCB0byBQb2xhclNTTCBNRDQsTUQ1LFNIQTEgaW1wbGVtZW50YXRpb25zLCB3aGljaCBhcmUgbWVhbnQgdG8gYmUKICAgICAgIHVzZWQgaW4gZW1iZWRkZWQgZGV2aWNlcyB3aXRoIHJlZHVjZWQgbWVtb3J5IGZvb3RwcmludC4KLSAgICAtIFJlbW92ZWQgUFBQIGNvbmZpZ3VyYXRpb24gZmlsZSBwYXJzaW5nIHN1cHBvcnQuIAorICAgIC0gUmVtb3ZlZCBQUFAgY29uZmlndXJhdGlvbiBmaWxlIHBhcnNpbmcgc3VwcG9ydC4KICAgICAtIEFkZGVkIG1hY3JvIGRlZmluaXRpb24gRUFQX1NVUFBPUlQgdG8gbWFrZSBFQVAgc3VwcG9ydCBvcHRpb25hbC4KICAgICAtIEFkZGVkIG1hY3JvIGRlZmluaXRpb24gQ0hBUF9TVVBQT1JUIHRvIG1ha2UgQ0hBUCBzdXBwb3J0IG9wdGlvbmFsLgogICAgIC0gQWRkZWQgbWFjcm8gZGVmaW5pdGlvbiBNU0NIQVBfU1VQUE9SVCB0byBtYWtlIE1TQ0hBUCBzdXBwb3J0IG9wdGlvbmFsLgpAQCAtMTMzMCw3ICsxNDE3LDcgQEAKICAgMjAxMi0wMy0yNTogU2ltb24gR29sZHNjaG1pZHQgKGlkZWEgYnkgTWFzb24pCiAgICogcG9zaXgvKjogYWRkZWQgcG9zaXgtY29tcGF0aWJpbGl0eSBpbmNsdWRlIGZpbGVzIHBvc2l4L25ldGRiLmggYW5kIHBvc2l4L3N5cy9zb2NrZXQuaAogICAgIHdoaWNoIGFyZSBhIHNpbXBsZSB3cmFwcGVyIHRvIHRoZSBjb3JyZWN0IGx3SVAgaW5jbHVkZSBmaWxlcy4KLSAKKwogICAyMDEyLTAxLTE2OiBTaW1vbiBHb2xkc2NobWlkdAogICAqIG9wdC5oLCBpY21wLmM6IEFkZGVkIG9wdGlvbiBDSEVDS1NVTV9HRU5fSUNNUAogCkBAIC0xNDEyLDEwICsxNDk5LDEwIEBACiAKICAgMjAxMi0wMy0yMjogU2ltb24gR29sZHNjaG1pZHQKICAgKiBpcDQuYzogZml4ZWQgYnVnICMzNTkyNzogbWlzc2luZyByZWZyYWdtZW50YWlvbiBpbiBpcF9mb3J3YXJkCi0gCisKICAgMjAxMi0wMy0yMDogU2ltb24gR29sZHNjaG1pZHQgKHBhdGNoIGJ5IE1hc29uKQogICAqIG5ldGRiLmM6IGZpeGVkIGJ1ZyAjMzU5MDc6IGx3aXBfZ2V0aG9zdGJ5bmFtZV9yIHJldHVybnMgYW4gaW52YWxpZCBoX2FkZHJfbGlzdAotIAorCiAgIDIwMTItMDMtMTI6IFNpbW9uIEdvbGRzY2htaWR0IChwYXRjaCBieSBCb3N0amFuIE1lZ2xpYykKICAgKiBwcHAuYzogZml4ZWQgYnVnICMzNTgwOTogUFBQIEdldE1hc2soKTogQ29tcGlsZXIgd2FybmluZyBvbiBiaWcgZW5kaWFuLAogICAgIHBvc3NpYmxlIGJ1ZyBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbQpAQCAtMTg3MCw3ICsxOTU3LDcgQEAKICAgMjAxMS0wMy0yNzogU2ltb24gR29sZHNjaG1pZHQKICAgKiBzb2NrZXRzLmM6IEZpeGVkIGJ1ZyAjMzI5MDY6IGx3aXBfY29ubmVjdCtsd2lwX3NlbmQgZGlkIG5vdCB3b3JrIGZvciB1ZHAgYW5kCiAgICAgcmF3IHBjYnMgd2l0aCBMV0lQX1RDUElQX0NPUkVfTE9DS0lORz09MS4KLSAgCisKICAgMjAxMS0wMy0yNzogU2ltb24gR29sZHNjaG1pZHQKICAgKiB0Y3Bfb3V0LmM6IEZpeGVkIGJ1ZyAjMzI4MjAgKE91dGdvaW5nIFRDUCBjb25uZWN0aW9ucyBjcmVhdGVkIGJlZm9yZSByb3V0ZQogICAgIGlzIHByZXNlbnQgbmV2ZXIgdGltZXMgb3V0KSBieSBzdGFydGluZyByZXRyYW5zbWlzc2lvbiB0aW1lciBiZWZvcmUgY2hlY2tpbmcKQEAgLTE5MjMsNyArMjAxMCw3IEBACiAgIDIwMTAtMTEtMjM6IFNpbW9uIEdvbGRzY2htaWR0CiAgICogdGNwX2luLmM6IEZpeGVkIGJ1ZyAjMzA1Nzc6IHRjcF9pbnB1dDogZG9uJ3QgZGlzY2FyZCBBQ0stb25seSBwYWNrZXRzIGFmdGVyCiAgICAgcmVmdXNpbmcgJ3JlZnVzZWRfZGF0YScgYWdhaW4uCi0gIAorCiAgIDIwMTAtMTEtMjI6IFNpbW9uIEdvbGRzY2htaWR0CiAgICogc29ja2V0cy5jOiBGaXhlZCBidWcgIzMxNTkwOiBnZXRzb2Nrb3B0KC4uLiBTT19FUlJPUiAuLi4pIGdpdmVzIEVJTlBST0dSRVNTCiAgICAgYWZ0ZXIgYSBzdWNjZXNzZnVsIG5vbmJsb2NraW5nIGNvbm5lY3Rpb24uCkBAIC0xOTY4LDIxICsyMDU1LDIxIEBACiAgIDIwMTAtMDgtMDE6IFNpbW9uIEdvbGRzY2htaWR0IChwYXRjaCBieSBHcmVnIFJlbmRhKQogICAqIHBwcC5jOiBBcHBsaWVkIHBhdGNoICM3MjY0IChQUFAgcHJvdG9jb2xzIGFyZSByZWplY3RlZCBpbmNvcnJlY3RseSBvbiBiaWcKICAgICBlbmRpYW4gYXJjaGl0ZWN0dXJlcykKLSAgCisKICAgMjAxMC0wNy0yODogU2ltb24gR29sZHNjaG1pZHQKICAgKiBhcGlfbGliLmMsIGFwaV9tc2cuYywgc29ja2V0cy5jLCBtaWIyLmM6IEZpeGVkIGNvbXBpbGF0aW9uIHdpdGggVENQIG9yIFVEUAogICAgIGRpc2FibGVkLgotICAKKwogICAyMDEwLTA3LTI3OiBTaW1vbiBHb2xkc2NobWlkdAogICAqIHRjcC5jOiBGaXhlZCBidWcgIzMwNTY1ICh0Y3BfY29ubmVjdCgpIGNoZWNrIGJvdW5kIGxpc3QpOiB0aGF0IGNoZWNrIGRpZCBubwogICAgIGhhcm0gYnV0IG5ldmVyIGRpZCBhbnl0aGluZwotICAKKwogICAyMDEwLTA3LTIxOiBTaW1vbiBHb2xkc2NobWlkdAogICAqIGlwLmM6IEZpeGVkIGludmFsaWQgZml4IGZvciBidWcgIzMwNDAyIChDSEVDS1NVTV9HRU5fSVBfSU5MSU5FIGRvZXMgbm90CiAgICAgYWRkIElQIG9wdGlvbnMpCiAKICAgMjAxMC0wNy0xNjogS2llcmFuIE1hbnNsZXkKLSAgKiBtc2dfaW4uYzogRml4ZWQgU05NUCBBU04gY29uc3RhbnQgZGVmaW5lcyB0byBub3QgdXNlICEgb3BlcmF0b3IgCisgICogbXNnX2luLmM6IEZpeGVkIFNOTVAgQVNOIGNvbnN0YW50IGRlZmluZXMgdG8gbm90IHVzZSAhIG9wZXJhdG9yCiAKICAgMjAxMC0wNy0xMDogU2ltb24gR29sZHNjaG1pZHQKICAgKiBpcC5jOiBGaXhlZCBidWcgIzMwNDAyOiBDSEVDS1NVTV9HRU5fSVBfSU5MSU5FIGRvZXMgbm90IGFkZCBJUCBvcHRpb25zCkBAIC0yMDg2LDcgKzIxNzMsNyBAQAogCiAgIDIwMTAtMDMtMDU6IFNpbW9uIEdvbGRzY2htaWR0CiAgICogYXBpX21zZy5jOiBDb3JyZWN0bHkgc2V0IFRDUF9XUklURV9GTEFHX01PUkUgd2hlbiBuZXRjb25uX3dyaXRlIGlzIHNwbGl0Ci0gICAgaW50byBtdWx0aXBsZSBjYWxscyB0byB0Y3Bfd3JpdGUuICAgIAorICAgIGludG8gbXVsdGlwbGUgY2FsbHMgdG8gdGNwX3dyaXRlLgogCiAgIDIwMTAtMDItMjE6IFNpbW9uIEdvbGRzY2htaWR0CiAgICogb3B0LmgsIG1lbS5oLCBkbnMuYzogdGFzayAjMTAxNDA6IFJlbW92ZSBETlNfVVNFU19TVEFUSUNfQlVGIChrZWVwCkBAIC0yNTQ2LDcgKzI2MzMsNyBAQAogICAgIHNlbnQgdG8gbWJveAogCiAgIDIwMDktMDYtMjUgS2llcmFuIE1hbnNsZXkKLSAgKiBhcGlfbXNnLmMgYXBpLmg6IEJVRzI2NzIyOiBpbml0aWFsaXNlIG5ldGNvbm4gd3JpdGUgdmFyaWFibGVzIAorICAqIGFwaV9tc2cuYyBhcGkuaDogQlVHMjY3MjI6IGluaXRpYWxpc2UgbmV0Y29ubiB3cml0ZSB2YXJpYWJsZXMKICAgICBpbiBuZXRjb25uX2FsbG9jCiAKICAgMjAwOS0wNi0yNSBLaWVyYW4gTWFuc2xleQpAQCAtMjU1NCw3ICsyNjQxLDcgQEAKIAogICAyMDA5LTA2LTI1IEtpZXJhbiBNYW5zbGV5CiAgICogdGNwLmMsIHRjcF9pbi5jLCB0Y3Bfb3V0LmMsIHRjcC5oOiBCVUcyNjMwMSBhbmQgQlVHMjYyNjc6IGNvcnJlY3QKLSAgICBzaW11bHRhbmVvdXMgY2xvc2UgYmVoYXZpb3VyLCBhbmQgbWFrZSBzbmRfbnh0IGhhdmUgdGhlIHNhbWUgbWVhbmluZyAKKyAgICBzaW11bHRhbmVvdXMgY2xvc2UgYmVoYXZpb3VyLCBhbmQgbWFrZSBzbmRfbnh0IGhhdmUgdGhlIHNhbWUgbWVhbmluZwogICAgIGFzIGluIHRoZSBSRkNzLgogCiAgIDIwMDktMDUtMTIgU2ltb24gR29sZHNjaG1pZHQKQEAgLTI2OTAsNyArMjc3Nyw3IEBACiAgICogdGNwLmMsIHRjcF9pbi5jLCB0Y3AuaDogYWRkIHRjcF9hYmFuZG9uKCkgdG8gY29wZSB3aXRoIGRyb3BwaW5nCiAgICAgY29ubmVjdGlvbnMgd2hlcmUgbm8gcmVzZXQgcmVxdWlyZWQgKGJ1ZyAjMjU2MjIpCiAKLSAgKiB0Y3Bfb3V0LmM6IHNldCBUQ1BfQUNLIGZsYWcgb24ga2VlcGFsaXZlIGFuZCB6ZXJvIHdpbmRvdyBwcm9iZXMgCisgICogdGNwX291dC5jOiBzZXQgVENQX0FDSyBmbGFnIG9uIGtlZXBhbGl2ZSBhbmQgemVybyB3aW5kb3cgcHJvYmVzCiAgICAgKGJ1ZyAjMjA3NzkpCiAKICAgMjAwOS0wMi0xOCBTaW1vbiBHb2xkc2NobWlkdCAoSm9uYXRoYW4gTGFybW91ciBhbmQgQmlsbCBBdWVyYmFjaCkKQEAgLTI3MjYsNyArMjgxMyw3IEBACiAgICAgb3V0IG9mIHBvb2wgcGJ1ZnMuCiAKICAgMjAwOC0xMi0xOSBTaW1vbiBHb2xkc2NobWlkdAotICAqIG1hbnkgZmlsZXM6IHBhdGNoICM2Njk5OiBmaXhlZCBzb21lIHdhcm5pbmdzIG9uIHBsYXRmb3JtIHdoZXJlIHNpemVvZihpbnQpID09IDIgCisgICogbWFueSBmaWxlczogcGF0Y2ggIzY2OTk6IGZpeGVkIHNvbWUgd2FybmluZ3Mgb24gcGxhdGZvcm0gd2hlcmUgc2l6ZW9mKGludCkgPT0gMgogCiAgIDIwMDgtMTItMTAgVGFtYXMgU29tb2d5aSwgRnLDqWTDqXJpYyBCZXJub24KICAgKiBzb2NrZXRzLmM6IGZpeGVkIGJ1ZyAjMjUwNTE6IGx3aXBfcmVjdmZyb20gcHJvYmxlbSB3aXRoIHVkcDogZnJvbWFkZHIgYW5kCkBAIC0yODExLDcgKzI4OTgsNyBAQAogICAgIG1hZGUgZnJvbSBsd2lwb3B0cy5oLiBGaXggY29tbWVudCBvbiBob3cgdG8gb3ZlcnJpZGUgTFdJUF9DSEtTVU0uCiAKICAgMjAwOC0wMS0yMiBGcsOpZMOpcmljIEJlcm5vbgotICAqIHRjcC5jLCB0Y3BfaW4uYywgdGNwLmgsIG9wdC5oOiBSZW5hbWUgTFdJUF9DQUxDVUxBVEVfRUZGX1NFTkRfTVNTIGluIAorICAqIHRjcC5jLCB0Y3BfaW4uYywgdGNwLmgsIG9wdC5oOiBSZW5hbWUgTFdJUF9DQUxDVUxBVEVfRUZGX1NFTkRfTVNTIGluCiAgICAgVENQX0NBTENVTEFURV9FRkZfU0VORF9NU1MgdG8gaGF2ZSBjb2hlcmVudCBUQ1Agb3B0aW9ucyBuYW1lcy4KIAogICAyMDA4LTAxLTE0IEZyw6lkw6lyaWMgQmVybm9uCkBAIC0yODIxLDcgKzI5MDgsNyBAQAogCiAgIDIwMDgtMDEtMTQgRnLDqWTDqXJpYyBCZXJub24sIE1hcmMgQ2hhbGFuZAogICAqIGlwLmM6IEludGVncmF0ZSBwYXRjaCAjNjM2OSIgaXBfaW5wdXQgOiBjaGVja2luZyBiZWZvcmUgcmVhbGxvYyIuCi0gIAorCiAgIDIwMDgtMDEtMTIgRnLDqWTDqXJpYyBCZXJub24KICAgKiB0Y3BpcC5oLCB0Y3BpcC5jLCBhcGkuaCwgYXBpX2xpYi5jLCBhcGlfbXNnLmMsIHNvY2tldHMuYzogcmVwbGFjZSB0aGUgZmllbGQKICAgICBuZXRjb25uOjpzZW0gcGVyIG5ldGNvbm46Om9wX2NvbXBsZXRlZCBsaWtlIHN1Z2dlc3RlZCBmb3IgdGhlIHRhc2sgIzc0OTAKQEAgLTI4NDcsOCArMjkzNCw4IEBACiAgICAgSW50cm9kdWNlIGNoYW5nZXMgZm9yIHRhc2sgIzc0OTAgIkFkZCByZXR1cm4gdmFsdWUgdG8gc3lzX21ib3hfcG9zdCIgd2l0aCBzb21lCiAgICAgbW9kaWZpY2F0aW9ucyBpbiB0aGUgc3lzX21ib3ggYXBpOiBzeXNfbWJveF9uZXcgdGFrZSBhICJzaXplIiBwYXJhbWV0ZXJzIHdoaWNoCiAgICAgaW5kaWNhdGUgdGhlIG51bWJlciBvZiBwb2ludGVycyBxdWVyeSBieSB0aGUgbWFpbGJveC4gVGhlcmUgaXMgdGhyZWUgZGVmaW5lcwotICAgIGluIG9wdC5oIHRvIGluZGljYXRlIHNpemVzIGZvciB0Y3BpcDo6bWJveCwgbmV0Y29ubjo6cmVjdm1ib3gsIGFuZCBmb3IgdGhlIAotICAgIG5ldGNvbm46OmFjY2VwdG1ib3guIFBvcnQgbWFpbnRhaW5lcnMsIHlvdSBjYW4gZGVjaWRlIHRvIGp1c3QgYWRkIHRoaXMgbmV3IAorICAgIGluIG9wdC5oIHRvIGluZGljYXRlIHNpemVzIGZvciB0Y3BpcDo6bWJveCwgbmV0Y29ubjo6cmVjdm1ib3gsIGFuZCBmb3IgdGhlCisgICAgbmV0Y29ubjo6YWNjZXB0bWJveC4gUG9ydCBtYWludGFpbmVycywgeW91IGNhbiBkZWNpZGUgdG8ganVzdCBhZGQgdGhpcyBuZXcKICAgICBwYXJhbWV0ZXIgaW4geW91ciBpbXBsZW1lbnRhdGlvbiwgYnV0IHRvIGlnbm9yZSBpdCB0byBrZWVwIHRoZSBwcmV2aW91cyBiZWhhdmlvci4KICAgICBUaGUgbmV3IHN5c19tYm94X3RyeXBvc3QgZnVuY3Rpb24gcmV0dXJuIGEgdmFsdWUgdG8ga25vdyBpZiB0aGUgbWFpbGJveCBpcwogICAgIGZ1bGwgb3IgaWYgdGhlIG1lc3NhZ2UgaXMgcG9zdGVkLiBUYWtlIGEgbG9vayB0byBzeXNfYXJjaC50eHQgZm9yIG1vcmUgZGV0YWlscy4KQEAgLTI5NzIsNyArMzA1OSw3IEBACiAgICAgTm90ZSB0aGF0IHByZXZpb3VzICJjb3B5IiBwYXJhbWV0ZXIgZm9yICJ3cml0ZSIgQVBJcyBpcyBub3cgY2FsbGVkICJhcGlmbGFncyIuCiAKICAgMjAwNy0xMC0yNCBGcsOpZMOpcmljIEJlcm5vbgotICAqIGFwaS5oLCBhcGlfbGliLmMsIGFwaV9tc2cuYzogQWRkIG1hY3JvIEFQSV9FVkVOVCBpbiB0aGUgc2FtZSBzcGlyaXQgdGhhbiAKKyAgKiBhcGkuaCwgYXBpX2xpYi5jLCBhcGlfbXNnLmM6IEFkZCBtYWNybyBBUElfRVZFTlQgaW4gdGhlIHNhbWUgc3Bpcml0IHRoYW4KICAgICBUQ1BfRVZFTlRfeHh4IG1hY3JvcyB0byBnZXQgYSBjb2RlIG1vcmUgcmVhZGFibGUuIEl0IGNvdWxkIGFsc28gaGVscCB0byByZW1vdmUKICAgICBzb21lIGNvZGUgKGxpa2Ugd2UgaGF2ZSB0YWxrIGluICJwYXRjaCAjNTkxOSA6IENyZWF0ZSBjb21waWxlIHN3aXRjaCB0byByZW1vdmUKICAgICBzZWxlY3QgY29kZSIpLCBidXQgaXQgY291bGQgYmUgZG9uZSBsYXRlci4KQEAgLTI5OTIsNyArMzA3OSw3IEBACiAgICAgYWxsIG5ldGlmcyAob3IgcG9ydHMpIGNhbiB1c2UgaXQuCiAKICAgMjAwNy0xMC0wNSBGcsOpZMOpcmljIEJlcm5vbgotICAqIG5ldGlmYXBpLmgsIG5ldGlmYXBpLmM6IGFkZCBmdW5jdGlvbiBuZXRpZmFwaV9uZXRpZl9zZXRfZGVmYXVsdC4gQ2hhbmdlIHRoZSAKKyAgKiBuZXRpZmFwaS5oLCBuZXRpZmFwaS5jOiBhZGQgZnVuY3Rpb24gbmV0aWZhcGlfbmV0aWZfc2V0X2RlZmF1bHQuIENoYW5nZSB0aGUKICAgICBjb21tb24gZnVuY3Rpb24gdG8gcmVkdWNlIGEgbGl0dGxlIGJpdCB0aGUgZm9vdHByaW50IChmb3IgYWxsIGZ1bmN0aW9ucyB1c2luZwogICAgIG9ubHkgdGhlICJuZXRpZiIgcGFyYW1ldGVyKS4KIApAQCAtMzAxNiw3ICszMTAzLDcgQEAKICAgICBvciBzbm1wX2FkZF9zeXN1cHRpbWUoKSwgYW5kIHRvIGRlZmluZSB0aGUgU05NUF9HRVRfU1lTVVBUSU1FKHN5c3VwdGltZSkgbWFjcm8uCiAgICAgVGhpcyBvbmUgaXMgdW5kZWZpbmVkIGJ5IGRlZmF1bHQgaW4gbWliMi5jLiBTTk1QX0dFVF9TWVNVUFRJTUUgaXMgY2FsbGVkIGluc2lkZQogICAgIHNubXBfZ2V0X3N5c3VwdGltZSh1MzJfdCAqdmFsdWUpLCBhbmQgZW5hYmxlIHRvIGNoYW5nZSAic3lzdXB0aW1lIiB2YWx1ZSBvbmx5Ci0gICAgd2hlbiBpdCdzIHF1ZXJpZWQgKGFueSBkaXJlY3QgY2FsbCB0byAic3lzdXB0aW1lIiBpcyBjaGFuZ2VkIGJ5IGEgY2FsbCB0byAKKyAgICB3aGVuIGl0J3MgcXVlcmllZCAoYW55IGRpcmVjdCBjYWxsIHRvICJzeXN1cHRpbWUiIGlzIGNoYW5nZWQgYnkgYSBjYWxsIHRvCiAgICAgc25tcF9nZXRfc3lzdXB0aW1lKS4KIAogICAyMDA3LTA5LTA5IEZyw6lkw6lyaWMgQmVybm9uLCBCaWxsIEZsb3JhYwpAQCAtMzA5Nyw3ICszMTg0LDcgQEAKICAgMjAwNy0wOC0yNiBNYXJjIEJvdWNoZXIKICAgKiBhcGlfbXNnLmM6IGRvX2Nsb3NlX2ludGVybmFsKCk6IFJlc2V0IHRoZSBjYWxsYmFja3MgYW5kIGFyZyAoY29ubikgdG8gTlVMTAogICAgIHNpbmNlIHRoZXkgY2FuIHVuZGVyIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcyBiZSBjYWxsZWQgd2l0aCBhbiBpbnZhbGlkIGNvbm4KLSAgICBwb2ludGVyIGFmdGVyIHRoZSBjb25uZWN0aW9uIGhhcyBiZWVuIGNsb3NlZCAoYW5kIGNvbm4gaGFzIGJlZW4gZnJlZWQpLiAKKyAgICBwb2ludGVyIGFmdGVyIHRoZSBjb25uZWN0aW9uIGhhcyBiZWVuIGNsb3NlZCAoYW5kIGNvbm4gaGFzIGJlZW4gZnJlZWQpLgogCiAgIDIwMDctMDgtMjUgRnLDqWTDqXJpYyBCZXJub24gKEFydGVtIE1pZ2FldidzIFBhdGNoKQogICAqIG5ldGlmLmgsIG5ldGlmLmM6IEludGVncmF0ZSAicGF0Y2ggIzYxNjMgOiBGdW5jdGlvbiB0byBjaGVjayBpZiBsaW5rIGxheWVyIGlzIHVwIi4KQEAgLTMxMDksMTEgKzMxOTYsMTEgQEAKIAogICAyMDA3LTA4LTIyIEZyw6lkw6lyaWMgQmVybm9uCiAgICogdGNwaXAuaCwgdGNwaXAuYywgZXRoZXJuZXRpZi5jLCBvcHQuaDogcmVtb3ZlIG9wdGlvbnMgRVRIQVJQX1RDUElQX0lOUFVUICZhbXA7Ci0gICAgRVRIQVJQX1RDUElQX0VUSElOUFVULCBub3csIG9ubHkgImV0aGlucHV0IiBjb2RlIGlzIHN1cHBvcnRlZCwgZXZlbiBpZiB0aGUgCisgICAgRVRIQVJQX1RDUElQX0VUSElOUFVULCBub3csIG9ubHkgImV0aGlucHV0IiBjb2RlIGlzIHN1cHBvcnRlZCwgZXZlbiBpZiB0aGUKICAgICBuYW1lIGlzIHRjcGlwX2lucHV0ICh3ZSBrZWVwIHRoZSBuYW1lIG9mIDEuMi4wIGZ1bmN0aW9uKS4KIAogICAyMDA3LTA4LTE3IEphcmVkIEdydWJiCi0gICogbWVtcF9zdGQuaCwgbWVtcC5oLCBtZW1wLmMsIG1lbS5jLCBzdGF0cy5jOiAoVGFzayAjNzEzNikgQ2VudHJhbGl6ZSBtZW1wb29sIAorICAqIG1lbXBfc3RkLmgsIG1lbXAuaCwgbWVtcC5jLCBtZW0uYywgc3RhdHMuYzogKFRhc2sgIzcxMzYpIENlbnRyYWxpemUgbWVtcG9vbAogICAgIHNldHRpbmdzIGludG8gbmV3IG1lbXBfc3RkLmggYW5kIG9wdGlvbmFsIHVzZXIgZmlsZSBsd2lwcG9vbHMuaC4gVGhpcyBhZGRzCiAgICAgbW9yZSBkeW5hbWljIG1lbXBvb2xzLCBhbmQgYWxsb3dzIHRoZSB1c2VyIHRvIGNyZWF0ZSBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mCiAgICAgbWVtcG9vbHMgZm9yIG1lbV9tYWxsb2MuCkBAIC0zMzIwLDMyICszNDA3LDMyIEBACiAgICAgc25tcF9zZXRfc3lzbmFtZS4KIAogICAyMDA3LTAzLTI4IEZyw6lkw6lyaWMgQmVybm9uCi0gICogbmV0aWYuaCwgbmV0aWYuYzogQSBuZXcgTkVUSUZfRkxBR19FVEhBUlAgZmxhZyBpcyBkZWZpbmVkIGluIG5ldGlmLmgsIHRvIGFsbG93IHRvIAorICAqIG5ldGlmLmgsIG5ldGlmLmM6IEEgbmV3IE5FVElGX0ZMQUdfRVRIQVJQIGZsYWcgaXMgZGVmaW5lZCBpbiBuZXRpZi5oLCB0byBhbGxvdyB0bwogICAgIGluaXRpYWxpemUgYSBuZXR3b3JrIGludGVyZmFjZSdzIGZsYWcgd2l0aC4gSXQgdGVsbCB0aGlzIGludGVyZmFjZSBpcyBhbiBldGhlcm5ldAogICAgIGRldmljZSwgYW5kIHdlIGNhbiB1c2UgQVJQIHdpdGggaXQgdG8gZG8gYSAiZ3JhdHVpdG91cyBBUlAiIChSRkMgMzIyMCAiSVAgTW9iaWxpdHkKICAgICBTdXBwb3J0IGZvciBJUHY0IiBzZWN0aW9uIDQuNikgd2hlbiBpbnRlcmZhY2UgaXMgInVwIiB3aXRoIG5ldGlmX3NldF91cCgpLgogCiAgIDIwMDctMDMtMjYgRnLDqWTDqXJpYyBCZXJub24sIEpvbmF0aGFuIExhcm1vdXIKICAgKiBvcHQuaCwgdGNwaXAuYzogTmV3IGNvbmZpZ3VyYXRpb24gb3B0aW9uIExXSVBfQVJQIGFsbG93IHRvIGRpc2FibGUgQVJQIGluaXQgYXQgYnVpbGQKLSAgICB0aW1lIGlmIHlvdSBvbmx5IHVzZSBQUFAgb3IgU0xJUC4gVGhlIGRlZmF1bHQgaXMgZW5hYmxlLiBOb3RlIHdlIGRvbid0IGhhdmUgdG8gY2FsbCAKKyAgICB0aW1lIGlmIHlvdSBvbmx5IHVzZSBQUFAgb3IgU0xJUC4gVGhlIGRlZmF1bHQgaXMgZW5hYmxlLiBOb3RlIHdlIGRvbid0IGhhdmUgdG8gY2FsbAogICAgIGV0aGFycF9pbml0IGluIHlvdXIgcG9ydCdzIGluaXRpbGl6YXRpb24gc2VxdWVuY2UgaWYgeW91IHVzZSB0Y3BpcC5jLCBiZWNhdXNlIHRoaXMgY2FsbAogICAgIGlzIGRvbmUgaW4gdGNwaXBfaW5pdCBmdW5jdGlvbi4KIAogICAyMDA3LTAzLTIyIEZyw6lkw6lyaWMgQmVybm9uCiAgICogc3RhdHMuaCwgc3RhdHMuYywgbXNnX2luLmM6IFN0YXRzIGNvdW50ZXJzIGNhbiBiZSBjaGFuZ2UgdG8gdTMyX3QgaWYgbmVjZXNzYXJ5IHdpdGggdGhlCiAgICAgbmV3IG9wdGlvbiBMV0lQX1NUQVRTX0xBUkdFLiBJZiB5b3UgbmVlZCB0aGlzIG9wdGlvbiwgZGVmaW5lIExXSVBfU1RBVFNfTEFSR0UgdG8gMSBpbgotICAgIHlvdXIgbHdpcG9wdHMuaC4gTW9yZSwgdW51c2VkIGNvdW50ZXJzIGFyZSBub3QgZGVmaW5lZCBpbiB0aGUgc3RhdHMgc3RydWN0cywgYW5kIG5vdCAKKyAgICB5b3VyIGx3aXBvcHRzLmguIE1vcmUsIHVudXNlZCBjb3VudGVycyBhcmUgbm90IGRlZmluZWQgaW4gdGhlIHN0YXRzIHN0cnVjdHMsIGFuZCBub3QKICAgICBkaXNwbGF5IGJ5IHN0YXRzX2Rpc3BsYXkoKS4gTm90ZSB0aGF0IHNvbWUgb3B0aW9ucyAoU1lTX1NUQVRTIGFuZCBSQVdfU1RBVFMpIGFyZSBkZWZpbmVkCiAgICAgYnV0IG5ldmVyIHVzZWQuIEZpeCBtc2dfaW4uYyB3aXRoIHRoZSBjb3JyZWN0ICNpZiB0ZXN0IGZvciBhIHN0YXQgZGlzcGxheS4KIAogICAyMDA3LTAzLTIxIEtpZXJhbiBNYW5zbGV5Ci0gICogbmV0aWYuYywgbmV0aWYuaDogQXBwbHkgcGF0Y2gjNDE5NyB3aXRoIHNvbWUgY2hhbmdlcyAob3JpZ2luYXRvcjogcmlyZWxhbmRAaG1nc2wuY29tKS4gCisgICogbmV0aWYuYywgbmV0aWYuaDogQXBwbHkgcGF0Y2gjNDE5NyB3aXRoIHNvbWUgY2hhbmdlcyAob3JpZ2luYXRvcjogcmlyZWxhbmRAaG1nc2wuY29tKS4KICAgICBQcm92aWRlcyBjYWxsYmFjayBvbiBuZXRpZiB1cC9kb3duIHN0YXRlIGNoYW5nZS4KIAogICAyMDA3LTAzLTExIEZyw6lkw6lyaWMgQmVybm9uLCBNYWNlIEdhZWwsIFN0ZXZlIFJleW5vbGRzCiAgICogc29ja2V0cy5oLCBzb2NrZXRzLmMsIGFwaS5oLCBhcGlfbGliLmMsIGFwaV9tc2cuaCwgYXBpX21zZy5jLCBpZ21wLmgsIGlnbXAuYywKICAgICBpcC5jLCBuZXRpZi5oLCB0Y3BpcC5jLCBvcHQuaDoKLSAgICBOZXcgY29uZmlndXJhdGlvbiBvcHRpb24gTFdJUF9JR01QIHRvIGVuYWJsZSBJR01QIHByb2Nlc3NpbmcuIEJhc2VkIG9uIG9ubHkgb25lIAorICAgIE5ldyBjb25maWd1cmF0aW9uIG9wdGlvbiBMV0lQX0lHTVAgdG8gZW5hYmxlIElHTVAgcHJvY2Vzc2luZy4gQmFzZWQgb24gb25seSBvbmUKICAgICBmaWx0ZXIgcGVyIGFsbCBuZXR3b3JrIGludGVyZmFjZXMuIERlY2xhcmUgYSBuZXcgZnVuY3Rpb24gaW4gbmV0aWYgdG8gZW5hYmxlIHRvCiAgICAgY29udHJvbCB0aGUgTUFDIGZpbHRlciAodG8gcmVkdWNlIGx3SVAgdHJhZmZpYyBwcm9jZXNzaW5nKS4KIApAQCAtMzM2OCw3ICszNDU1LDcgQEAKICAgKiBzbm1wX21zZy5oLCBtc2dfaW4uYzogU05NUCBVRFAgcG9ydHMgY2FuIGJlIGNvbmZpZ3VyZWQgYXQgY29tcGlsZSB0aW1lLgogCiAgIDIwMDctMDMtMDYgRnLDqWTDqXJpYyBCZXJub24KLSAgKiBhcGkuaCwgYXBpX2xpYi5jLCBzb2NrZXRzLmgsIHNvY2tldHMuYywgdGNwaXAuYywgc3lzLmgsIHN5cy5jLCBlcnIuaDogCisgICogYXBpLmgsIGFwaV9saWIuYywgc29ja2V0cy5oLCBzb2NrZXRzLmMsIHRjcGlwLmMsIHN5cy5oLCBzeXMuYywgZXJyLmg6CiAgICAgSW1wbGVtZW50IFNPX1JDVlRJTUVPIG9uIFVEUCBzb2NrZXRzL25ldGNvbm4uCiAKICAgMjAwNy0wMi0yOCBLaWVyYW4gTWFuc2xleSAoYmFzZWQgb24gcGF0Y2ggZnJvbSBTaW1vbiBHb2xkc2NobWlkdCkKQEAgLTM0MTAsNyArMzQ5Nyw3IEBACiAgIGFuZC9vciB3YXJuaW5ncyBvbiBzb21lIHN5c3RlbXMgd2hlcmUgbWVtX3NpemVfdCBhbmQgc2l6ZV90IGRpZmZlci4KICAgKiBwYnVmLmMsIHBwcC5jOiBGaXggd2FybmluZ3Mgb24gc29tZSBzeXN0ZW1zIHdpdGggbWVtX21hbGxvYy4KIAotICAyMDA4LTAzLTA0IEtpZXJhbiBNYW5zbGV5IChjb250cmlidXRpb25zIGJ5IG90aGVycykgCisgIDIwMDgtMDMtMDQgS2llcmFuIE1hbnNsZXkgKGNvbnRyaWJ1dGlvbnMgYnkgb3RoZXJzKQogICAqIE51bWVyb3VzIHNtYWxsIGNvbXBpbGVyIGVycm9yL3dhcm5pbmcgZml4ZXMgZnJvbSBjb250cmlidXRpb25zIHRvCiAgICAgbWFpbGluZyBsaXN0IGFmdGVyIDEuMy4wIHJlbGVhc2UgY2FuZGlkYXRlIG1hZGUuCiAKQEAgLTM1MjcsNyArMzYxNCw3IEBACiAgICAgdHlwZSBjaGFuZ2UuIEFueSBjb21waWxlciBzaG91bGQgY2F1c2UgYW4gZXJyb3Igd2l0aG91dCBhbnkgY2hhbmdlcyBpbgogICAgIHlvdXJzIG5ldGNvbm5fcGVlciBjYWxscyAoc28sIGl0IGNhbid0IGJlIGEgInNpbGVudCBjaGFuZ2UiKS4gSXQgYWxzbwogICAgIHJlZHVjZSBhIGxpdHRsZSBiaXQgdGhlIGZvb3RwcmludCBmb3Igc29ja2V0IGxheWVyIChsd2lwX2dldHBlZXJuYW1lICZhbXA7Ci0gICAgbHdpcF9nZXRzb2NrbmFtZSB1c2Ugbm93IGEgY29tbW9uIGx3aXBfZ2V0YWRkcm5hbWUgZnVuY3Rpb24gc2luY2UgCisgICAgbHdpcF9nZXRzb2NrbmFtZSB1c2Ugbm93IGEgY29tbW9uIGx3aXBfZ2V0YWRkcm5hbWUgZnVuY3Rpb24gc2luY2UKICAgICBuZXRjb25uX3BlZXIgJmFtcDsgbmV0Y29ubl9hZGRyIGhhdmUgdGhlIHNhbWUgcGFyYW1ldGVycykuCiAKICAgMjAwNy0wOS0yMCBTaW1vbiBHb2xkc2NobWlkdApAQCAtMzU0NywxMyArMzYzNCwxMyBAQAogICAgIGlmIHRoZXkgYXJlIG5vdCBkZWZpbmVkIGluIGNjLmgsIGluIHRoZSBzYW1lIHNwaXJpdCB0aGFuICJsd2lwL29wdC5oIiBmb3IgbHdpcG9wdHMuaC4KIAogICAyMDA3LTA4LTMwIEZyw6lkw6lyaWMgQmVybm9uCi0gICogaWdtcC5oLCBpZ21wLmM6IFNvbWUgY2hhbmdlcyB0byByZW1vdmUgc29tZSByZWR1bmRhbnQgY29kZSwgYWRkIHNvbWUgdHJhY2VzLCAKKyAgKiBpZ21wLmgsIGlnbXAuYzogU29tZSBjaGFuZ2VzIHRvIHJlbW92ZSBzb21lIHJlZHVuZGFudCBjb2RlLCBhZGQgc29tZSB0cmFjZXMsCiAgICAgYW5kIGZpeCBzb21lIGNvZGluZyBzdHlsZS4KIAogICAyMDA3LTA4LTI4IEZyw6lkw6lyaWMgQmVybm9uCiAgICogdGNwaXAuYzogRml4IFRDUElQX01TR19JTlBLVCBwcm9jZXNzaW5nOiBub3csIHRjcGlwX2lucHV0IGNhbiBiZSB1c2VkIGZvciBhbnkKLSAgICBraW5kIG9mIHBhY2tldHMuIFRoZXNlIHBhY2tldHMgYXJlIGNvbnNpZGVyZWQgbGlrZSBFdGhlcm5ldCBwYWNrZXRzIChwYXlsb2FkIAotICAgIHBvaW50aW5nIHRvIGV0aGhkcikgaWYgdGhlIG5ldGlmIGdvdCB0aGUgTkVUSUZfRkxBR19FVEhBUlAgZmxhZy4gRWxzZSwgcGFja2V0cyAKKyAgICBraW5kIG9mIHBhY2tldHMuIFRoZXNlIHBhY2tldHMgYXJlIGNvbnNpZGVyZWQgbGlrZSBFdGhlcm5ldCBwYWNrZXRzIChwYXlsb2FkCisgICAgcG9pbnRpbmcgdG8gZXRoaGRyKSBpZiB0aGUgbmV0aWYgZ290IHRoZSBORVRJRl9GTEFHX0VUSEFSUCBmbGFnLiBFbHNlLCBwYWNrZXRzCiAgICAgYXJlIGNvbnNpZGVyZWQgbGlrZSBJUCBwYWNrZXRzIChwYXlsb2FkIHBvaW50aW5nIHRvIGlwaGRyKS4KIAogICAyMDA3LTA4LTI3IEZyw6lkw6lyaWMgQmVybm9uCkBAIC0zNjUxLDcgKzM3MzgsNyBAQAogICAyMDA3LTA2LTI4IEZyw6lkw6lyaWMgQmVybm9uCiAgICogbmV0aWZhcGkuaCwgbmV0aWZhcGkuYywgdGNwaXAuaCwgdGNwaXAuYzogVXBkYXRlIGNvZGUgdG8gaGFuZGxlIHRoZSBvcHRpb24KICAgICBMV0lQX1RDUElQX0NPUkVfTE9DS0lORywgYW5kIGRvIHNvbWUgY2hhbmdlcyB0byBiZSBjb2hlcmVudCB3aXRoIGxhc3QgbW9kaWZpY2F0aW9ucwotICAgIGluIGFwaV9saWIvYXBpX21zZyAodXNlIHBvaW50ZXJzIGFuZCBub3QgdHlwZSB3aXRoIHRhYmxlLCBldGMuLi4pIAorICAgIGluIGFwaV9saWIvYXBpX21zZyAodXNlIHBvaW50ZXJzIGFuZCBub3QgdHlwZSB3aXRoIHRhYmxlLCBldGMuLi4pCiAKICAgMjAwNy0wNi0yNiBTaW1vbiBHb2xkc2NobWlkdAogICAqIHVkcC5oOiBGaXhlZCBidWcgIzIwMjU5OiBzdHJ1Y3QgdWRwX2hkciB3YXMgbGFja2luZyB0aGUgcGFja2luIGRlZmluZXMuCkBAIC0zNzUzLDcgKzM4NDAsNyBAQAogCiAgIDIwMDctMDUtMTYgRnLDqWTDqXJpYyBCZXJub24KICAgKiB0Y3BpcC5jLCBpZ21wLmgsIGlnbXAuYzogRml4ZWQgYnVnICIjMTk4MDAgOiBJR01QOiBpZ21wX3RpY2soKSB3aWxsIG5vdCB3b3JrCi0gICAgd2l0aCBOT19TWVM9MSIuIE5vdGUgdGhhdCBpZ21wX2luaXQgaXMgYWx3YXlzIGluIHRjcGlwX3RocmVhZCAoYW5kIG5vdCBpbiAKKyAgICB3aXRoIE5PX1NZUz0xIi4gTm90ZSB0aGF0IGlnbXBfaW5pdCBpcyBhbHdheXMgaW4gdGNwaXBfdGhyZWFkIChhbmQgbm90IGluCiAgICAgdGNwaXBfaW5pdCkgYmVjYXVzZSB3ZSBoYXZlIHRvIGJlIHN1cmUgdGhhdCBuZXR3b3JrIGludGVyZmFjZXMgYXJlIGFscmVhZHkKICAgICBhZGRlZCAobWFjIGZpbHRlciBpcyB1cGRhdGVkIG9ubHkgaW4gaWdtcF9pbml0IGZvciB0aGUgbW9tZW50KS4KIApAQCAtMzkwMCw3ICszOTg3LDcgQEAKIAogICAyMDA3LTAzLTIwIEZyw6lkw6lyaWMgQmVybm9uCiAgICogdGNwaXAuYzogSW5pdGlhbGl6ZSB0Y3BpcCdzIG1ib3gsIGFuZCB2ZXJpZnkgaWYgaW5pdGlhbGl6ZWQgaW4gdGNwaXBfaW5wdXQsCi0gICAgdGNwaXBfZXRoaW5wdXQsIHRjcGlwX2NhbGxiYWNrLCB0Y3BpcF9hcGltc2csIHRvIGZpeCBhIGluaXQgcHJvYmxlbSB3aXRoIAorICAgIHRjcGlwX2V0aGlucHV0LCB0Y3BpcF9jYWxsYmFjaywgdGNwaXBfYXBpbXNnLCB0byBmaXggYSBpbml0IHByb2JsZW0gd2l0aAogICAgIG5ldHdvcmsgaW50ZXJmYWNlcy4gQWxzbyBmaXggYSBjb21waWxlciB3YXJuaW5nLgogCiAgIDIwMDctMDMtMjAgS2llcmFuIE1hbnNsZXkKQEAgLTM5OTIsMTMgKzQwNzksMTMgQEAKICAgKiByYXdhcGkudHh0OiBGaXggZG9jdW1lbnRhdGlvbiBtaXNtYXRjaCB3aXRoIGV0aGFycC5oIGFib3V0IGV0aGFycF90bXIncyBjYWxsCiAgICAgaW50ZXJ2YWwuCiAKLSAgMjAwNy0wMi0yOCBLaWVyYW4gTWFuc2xleSAKKyAgMjAwNy0wMi0yOCBLaWVyYW4gTWFuc2xleQogICAqIHBidWYuYzogRml4IEJVRyMxNzY0NSAtIGVuc3VyZSBwYnVmIHBheWxvYWQgcG9pbnRlciBpcyBub3QgbW92ZWQKICAgICBvdXRzaWRlIHRoZSByZWdpb24gb2YgdGhlIHBidWYgYnkgcGJ1Zl9oZWFkZXIoKQogCi0gIDIwMDctMDItMjggS2llcmFuIE1hbnNsZXkgCisgIDIwMDctMDItMjggS2llcmFuIE1hbnNsZXkKICAgKiBzb2NrZXRzLmM6IEZpeCBCVUcjMTkxNjEgLSBlbnN1cmUgbWlsbGlzZWNvbmRzIHRpbWVvdXQgaXMgbm9uLXplcm8KLSAgICB3aGVuIHN1cHBsaWVkIHRpbWVvdXQgaXMgYWxzbyBub24temVybyAKKyAgICB3aGVuIHN1cHBsaWVkIHRpbWVvdXQgaXMgYWxzbyBub24temVybwogCiAoU1RBQkxFLTEuMi4wKQogCkBAIC00MDgyLDcgKzQxNjksNyBAQAogICAgIGluIGFjY2VwdCgpIGJ5IEtldmluIExhd3Nvbi4KIAogICAyMDA2LTA1LTI2IENocmlzdGlhYW4gU2ltb25zCi0gICogYXBpX2xpYi5jOiBSZW1vdmVkIGNvbm4tJmd0O3NlbSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24gCisgICogYXBpX2xpYi5jOiBSZW1vdmVkIGNvbm4tJmd0O3NlbSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24KICAgICBmcm9tIG5ldGNvbm5fd3JpdGUoKSBhbmQgYWRkZWQgc3lzX3NlbV9uZXcgdG8gbmV0Y29ubl9uZXdfKi4KIAogKFNUQUJMRS0xXzFfMSkKQEAgLTQxNTIsNyArNDIzOSw3IEBACiAgICogZGhjcC5jOiBEZWNsaW5lIG1lc3NhZ2VzIHdlcmUgbm90IG11bHRpY2FzdCBidXQgdW5pY2FzdC4KICAgKiBldGhhcnAuYzogRVRIQVJQX0NSRUFURSBpcyByZW5hbWVkIHRvIEVUSEFSUF9UUllfSEFSRC4KICAgICBEbyBub3QgdHJ5IGhhcmQgdG8gaW5zZXJ0IGFyYml0cmFyeSBwYWNrZXQncyBzb3VyY2UgYWRkcmVzcywKLSAgICBldGhhcnBfaXBfaW5wdXQoKSBub3cgY2FsbHMgZXRoYXJwX3VwZGF0ZSgpIHdpdGhvdXQgRVRIQVJQX1RSWV9IQVJELiAKKyAgICBldGhhcnBfaXBfaW5wdXQoKSBub3cgY2FsbHMgZXRoYXJwX3VwZGF0ZSgpIHdpdGhvdXQgRVRIQVJQX1RSWV9IQVJELgogICAgIGV0aGFycF9xdWVyeSgpIG5vdyBhbHdheXMgRE9FUyBjYWxsIEVUSEFSUF9UUllfSEFSRCBzbyB0aGF0IHVzZXJzCiAgICAgcXVlcnlpbmcgYW4gYWRkcmVzcyB3aWxsIHNlZSBpdCBhcHBlYXIgaW4gdGhlIGNhY2hlIChESENQIGNvdWxkCiAgICAgc3VmZmVyIGZyb20gdGhpcyB3aGVuIGEgc2VydmVyIGludmFsaWRseSBnYXZlIGFuIGluLXVzZSBhZGRyZXNzLikKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NsYXNzZXMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NsYXNzZXMuaHRtbAppbmRleCAyMzA2NmI4Li4zZmZjN2Q5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9jbGFzc2VzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvY2xhc3Nlcy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwNCw3ICsxMDQsNyBAQAogPGRpdiBjbGFzcz0iY2xhc3NpbmRleCI+CiA8ZGwgY2xhc3M9ImNsYXNzaW5kZXggZXZlbiI+CiA8ZHQgY2xhc3M9ImFscGhhY2hhciI+PGEgaWQ9ImxldHRlcl9BIiBuYW1lPSJsZXR0ZXJfQSI+QTwvYT48L2R0PgotPGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCI+YXBpX21zZzwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sIj5hdXRvaXA8L2E+PC9kZD48L2RsPgorPGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwiPmFjZDwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFsdGNwX19hbGxvY2F0b3JfX3MuaHRtbCI+YWx0Y3BfYWxsb2NhdG9yX3M8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sIj5hcGlfbXNnPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwiPmF1dG9pcDwvYT48L2RkPjwvZGw+CiA8ZGwgY2xhc3M9ImNsYXNzaW5kZXggb2RkIj4KIDxkdCBjbGFzcz0iYWxwaGFjaGFyIj48YSBpZD0ibGV0dGVyX0IiIG5hbWU9ImxldHRlcl9CIj5CPC9hPjwvZHQ+CiA8ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RicmlkZ2VpZl9faW5pdGRhdGFfX3MuaHRtbCI+YnJpZGdlaWZfaW5pdGRhdGFfczwvYT48L2RkPjwvZGw+CkBAIC0xMTksMTMgKzExOSwxMyBAQAogPGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0Z2V0aG9zdGJ5bmFtZV9fcl9faGVscGVyLmh0bWwiPmdldGhvc3RieW5hbWVfcl9oZWxwZXI8L2E+PC9kZD48L2RsPgogPGRsIGNsYXNzPSJjbGFzc2luZGV4IG9kZCI+CiA8ZHQgY2xhc3M9ImFscGhhY2hhciI+PGEgaWQ9ImxldHRlcl9JIiBuYW1lPSJsZXR0ZXJfSSI+STwvYT48L2R0PgotPGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWNtcDZfX2VjaG9fX2hkci5odG1sIj5pY21wNl9lY2hvX2hkcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGljbXA2X19oZHIuaHRtbCI+aWNtcDZfaGRyPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWNtcF9fZWNob19faGRyLmh0bWwiPmljbXBfZWNob19oZHI8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZWVlX184MDIxNTRfX2hkci5odG1sIj5pZWVlXzgwMjE1NF9oZHI8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZ21wX19ncm91cC5odG1sIj5pZ21wX2dyb3VwPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWdtcF9fbXNnLmh0bWwiPmlnbXBfbXNnPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA0X19hZGRyLmh0bWwiPmlwNF9hZGRyPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA0X19hZGRyX19wYWNrZWQuaHRtbCI+aXA0X2FkZHJfcGFja2VkPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA0X19hZGRyX193b3JkYWxpZ25lZC5odG1sIj5pcDRfYWRkcl93b3JkYWxpZ25lZDwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNl9fYWRkci5odG1sIj5pcDZfYWRkcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNl9fYWRkcl9fcGFja2VkLmh0bWwiPmlwNl9hZGRyX3BhY2tlZDwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNl9faGRyLmh0bWwiPmlwNl9oZHI8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDZfX3JlYXNzX19oZWxwZXIuaHRtbCI+aXA2X3JlYXNzX2hlbHBlcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNl9fcmVhc3NkYXRhLmh0bWwiPmlwNl9yZWFzc2RhdGE8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcF9fYWRkci5odG1sIj5pcF9hZGRyPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXBfX2dsb2JhbHMuaHRtbCI+aXBfZ2xvYmFsczwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19yZWFzc19faGVscGVyLmh0bWwiPmlwX3JlYXNzX2hlbHBlcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19yZWFzc2RhdGEuaHRtbCI+aXBfcmVhc3NkYXRhPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xaXB2NF9fY2hhbmdlZF9fcy5odG1sIj5uZXRpZl9leHRfY2FsbGJhY2tfYXJnc190OjppcHY0X2NoYW5nZWRfczwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmX19leHRfX2NhbGxiYWNrX19hcmdzX190XzFfMWlwdjZfX2FkZHJfX3N0YXRlX19jaGFuZ2VkX19zLmh0bWwiPm5ldGlmX2V4dF9jYWxsYmFja19hcmdzX3Q6OmlwdjZfYWRkcl9zdGF0ZV9jaGFuZ2VkX3M8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFpcHY2X19zZXRfX3MuaHRtbCI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDo6aXB2Nl9zZXRfczwvYT48L2RkPjwvZGw+Cis8ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpY21wNl9fZWNob19faGRyLmh0bWwiPmljbXA2X2VjaG9faGRyPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWNtcDZfX2hkci5odG1sIj5pY21wNl9oZHI8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpY21wX19lY2hvX19oZHIuaHRtbCI+aWNtcF9lY2hvX2hkcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGljbXBfX2hkci5odG1sIj5pY21wX2hkcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGllZWVfXzgwMjE1NF9faGRyLmh0bWwiPmllZWVfODAyMTU0X2hkcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlnbXBfX2dyb3VwLmh0bWwiPmlnbXBfZ3JvdXA8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZ21wX19tc2cuaHRtbCI+aWdtcF9tc2c8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDRfX2FkZHIuaHRtbCI+aXA0X2FkZHI8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDRfX2FkZHJfX3BhY2tlZC5odG1sIj5pcDRfYWRkcl9wYWNrZWQ8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDRfX2FkZHJfX3dvcmRhbGlnbmVkLmh0bWwiPmlwNF9hZGRyX3dvcmRhbGlnbmVkPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA2X19hZGRyLmh0bWwiPmlwNl9hZGRyPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA2X19hZGRyX19wYWNrZWQuaHRtbCI+aXA2X2FkZHJfcGFja2VkPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA2X19oZHIuaHRtbCI+aXA2X2hkcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNl9fcmVhc3NfX2hlbHBlci5odG1sIj5pcDZfcmVhc3NfaGVscGVyPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA2X19yZWFzc2RhdGEuaHRtbCI+aXA2X3JlYXNzZGF0YTwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19hZGRyLmh0bWwiPmlwX2FkZHI8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcF9fZ2xvYmFscy5odG1sIj5pcF9nbG9iYWxzPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXBfX3JlYXNzX19oZWxwZXIuaHRtbCI+aXBfcmVhc3NfaGVscGVyPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXBfX3JlYXNzZGF0YS5odG1sIj5pcF9yZWFzc2RhdGE8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFpcHY0X19jaGFuZ2VkX19zLmh0bWwiPm5ldGlmX2V4dF9jYWxsYmFja19hcmdzX3Q6OmlwdjRfY2hhbmdlZF9zPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xaXB2Nl9fYWRkcl9fc3RhdGVfX2NoYW5nZWRfX3MuaHRtbCI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDo6aXB2Nl9hZGRyX3N0YXRlX2NoYW5nZWRfczwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmX19leHRfX2NhbGxiYWNrX19hcmdzX190XzFfMWlwdjZfX3NldF9fcy5odG1sIj5uZXRpZl9leHRfY2FsbGJhY2tfYXJnc190OjppcHY2X3NldF9zPC9hPjwvZGQ+PC9kbD4KIDxkbCBjbGFzcz0iY2xhc3NpbmRleCBldmVuIj4KIDxkdCBjbGFzcz0iYWxwaGFjaGFyIj48YSBpZD0ibGV0dGVyX0wiIG5hbWU9ImxldHRlcl9MIj5MPC9hPjwvZHQ+CiA8ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFsaW5rX19jaGFuZ2VkX19zLmh0bWwiPm5ldGlmX2V4dF9jYWxsYmFja19hcmdzX3Q6OmxpbmtfY2hhbmdlZF9zPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bG93cGFuNl9faWVlZTgwMjE1NF9fZGF0YS5odG1sIj5sb3dwYW42X2llZWU4MDIxNTRfZGF0YTwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGxvd3BhbjZfX2xpbmtfX2FkZHIuaHRtbCI+bG93cGFuNl9saW5rX2FkZHI8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsb3dwYW42X19yZWFzc19faGVscGVyLmh0bWwiPmxvd3BhbjZfcmVhc3NfaGVscGVyPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fY3ljbGljX190aW1lci5odG1sIj5sd2lwX2N5Y2xpY190aW1lcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NlbGVjdF9fY2IuaHRtbCI+bHdpcF9zZWxlY3RfY2I8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsd2lwX19zb2NrLmh0bWwiPmx3aXBfc29jazwvYT48L2RkPjwvZGw+CiA8ZGwgY2xhc3M9ImNsYXNzaW5kZXggb2RkIj4KIDxkdCBjbGFzcz0iYWxwaGFjaGFyIj48YSBpZD0ibGV0dGVyX00iIG5hbWU9ImxldHRlcl9NIj5NPC9hPjwvZHQ+Ci08ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwiPm1kbnNfaG9zdDwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sIj5tZG5zX291dHBhY2tldDwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sIj5tZG5zX3BhY2tldDwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3JyX19pbmZvLmh0bWwiPm1kbnNfcnJfaW5mbzwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCI+bWRuc19zZXJ2aWNlPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWVtLmh0bWwiPm1lbTwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1lbXBfX2Rlc2MuaHRtbCI+bWVtcF9kZXNjPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWxkX19ncm91cC5odG1sIj5tbGRfZ3JvdXA8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtbGRfX2hlYWRlci5odG1sIj5tbGRfaGVhZGVyPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fY2xpZW50X19zLmh0bWwiPm1xdHRfY2xpZW50X3M8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jb25uZWN0X19jbGllbnRfX2luZm9fX3QuaHRtbCI+bXF0dF9jb25uZWN0X2NsaWVudF9pbmZvX3Q8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19yZXF1ZXN0X190Lmh0bWwiPm1xdHRfcmVxdWVzdF90PC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fcmluZ2J1Zl9fdC5odG1sIj5tcXR0X3JpbmdidWZfdDwvYT48L2RkPjwvZGw+Cis8ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19kZWxheWVkX19tc2cuaHRtbCI+bWRuc19kZWxheWVkX21zZzwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCI+bWRuc19ob3N0PC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0bXNnLmh0bWwiPm1kbnNfb3V0bXNnPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwiPm1kbnNfb3V0cGFja2V0PC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwiPm1kbnNfcGFja2V0PC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcmVxdWVzdC5odG1sIj5tZG5zX3JlcXVlc3Q8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ycl9faW5mby5odG1sIj5tZG5zX3JyX2luZm88L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19zZXJ2aWNlLmh0bWwiPm1kbnNfc2VydmljZTwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1lbS5odG1sIj5tZW08L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZW1wX19kZXNjLmh0bWwiPm1lbXBfZGVzYzwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1sZF9fZ3JvdXAuaHRtbCI+bWxkX2dyb3VwPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWxkX19oZWFkZXIuaHRtbCI+bWxkX2hlYWRlcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1xdHRfX2NsaWVudF9fcy5odG1sIj5tcXR0X2NsaWVudF9zPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fY29ubmVjdF9fY2xpZW50X19pbmZvX190Lmh0bWwiPm1xdHRfY29ubmVjdF9jbGllbnRfaW5mb190PC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fcmVxdWVzdF9fdC5odG1sIj5tcXR0X3JlcXVlc3RfdDwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1xdHRfX3JpbmdidWZfX3QuaHRtbCI+bXF0dF9yaW5nYnVmX3Q8L2E+PC9kZD48L2RsPgogPGRsIGNsYXNzPSJjbGFzc2luZGV4IGV2ZW4iPgogPGR0IGNsYXNzPSJhbHBoYWNoYXIiPjxhIGlkPSJsZXR0ZXJfTiIgbmFtZT0ibGV0dGVyX04iPk48L2E+PC9kdD4KIDxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5hX19oZWFkZXIuaHRtbCI+bmFfaGVhZGVyPC9hPjwvZGQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmQ2X19uZWlnaGJvcl9fY2FjaGVfX2VudHJ5Lmh0bWwiPm5kNl9uZWlnaGJvcl9jYWNoZV9lbnRyeTwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5kNl9fcV9fZW50cnkuaHRtbCI+bmQ2X3FfZW50cnk8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19hbnN3ZXIuaHRtbCI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19oZHIuaHRtbCI+bmV0Ymlvc19oZHI8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19uYW1lX19oZHIuaHRtbCI+bmV0Ymlvc19uYW1lX2hkcjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX3F1ZXN0aW9uX19oZHIuaHRtbCI+bmV0Ymlvc19xdWVzdGlvbl9oZHI8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19yZXNwLmh0bWwiPm5ldGJpb3NfcmVzcDwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJ1Zi5odG1sIj5uZXRidWY8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwiPm5ldGNvbm48L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InVuaW9ubmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3QuaHRtbCI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDwvYT48L2RkPjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldHZlY3Rvci5odG1sIj5uZXR2ZWN0b3I8L2E+PC9kZD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Ruc19faGVhZGVyLmh0bWwiPm5zX2hlYWRlcjwvYT48L2RkPjwvZGw+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9jbWFrZS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvY21ha2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzNkODkzCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvY21ha2UuaHRtbApAQCAtMCwwICsxLDIzMiBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHBzOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbi1VUyI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC94aHRtbDtjaGFyc2V0PVVURi04Ii8+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPTExIi8+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRveHlnZW4gMS4xMi4wIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLz4KKzx0aXRsZT5sd0lQOiBDTWFrZSBidWlsZCBzeXN0ZW08L3RpdGxlPgorPGxpbmsgaHJlZj0idGFicy5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpxdWVyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkeW5zZWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJjbGlwYm9hcmQuanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0ibmF2dHJlZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5hdnRyZWVkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5hdnRyZWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzaXplLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImNvb2tpZS5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJzZWFyY2gvc2VhcmNoLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VhcmNoL3NlYXJjaGRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VhcmNoL3NlYXJjaC5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJkb3h5Z2VuLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0idG9wIj48IS0tIGRvIG5vdCByZW1vdmUgdGhpcyBkaXYsIGl0IGlzIGNsb3NlZCBieSBkb3h5Z2VuISAtLT4KKzxkaXYgaWQ9InRpdGxlYXJlYSI+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KKyA8dGJvZHk+CisgPHRyIGlkPSJwcm9qZWN0cm93Ij4KKyAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CisgICA8L2Rpdj4KKyAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KKyAgPC90ZD4KKyA8L3RyPgorIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9kaXY+Cis8IS0tIGVuZCBoZWFkZXIgcGFydCAtLT4KKzwhLS0gR2VuZXJhdGVkIGJ5IERveHlnZW4gMS4xMi4wIC0tPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCit2YXIgc2VhcmNoQm94ID0gbmV3IFNlYXJjaEJveCgic2VhcmNoQm94IiwgInNlYXJjaC8iLCcuaHRtbCcpOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpIHsgY29kZWZvbGQuaW5pdCgwKTsgfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVudWRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVudS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKSB7CisgIGluaXRNZW51KCcnLHRydWUsZmFsc2UsJ3NlYXJjaC5waHAnLCdTZWFyY2gnLHRydWUpOworICAkKGZ1bmN0aW9uKCkgeyBpbml0X3NlYXJjaCgpOyB9KTsKK30pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9Im1haW4tbmF2Ij48L2Rpdj4KKzwvZGl2PjwhLS0gdG9wIC0tPgorPGRpdiBpZD0ic2lkZS1uYXYiIGNsYXNzPSJ1aS1yZXNpemFibGUgc2lkZS1uYXYtcmVzaXphYmxlIj4KKyAgPGRpdiBpZD0ibmF2LXRyZWUiPgorICAgIDxkaXYgaWQ9Im5hdi10cmVlLWNvbnRlbnRzIj4KKyAgICAgIDxkaXYgaWQ9Im5hdi1zeW5jIiBjbGFzcz0ic3luYyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGlkPSJzcGxpdGJhciIgc3R5bGU9Ii1tb3otdXNlci1zZWxlY3Q6bm9uZTsiIAorICAgICAgIGNsYXNzPSJ1aS1yZXNpemFibGUtaGFuZGxlIj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpe2luaXROYXZUcmVlKCdjbWFrZS5odG1sJywnJyk7IGluaXRSZXNpemFibGUodHJ1ZSk7IH0pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9ImRvYy1jb250ZW50Ij4KKzwhLS0gd2luZG93IHNob3dpbmcgdGhlIGZpbHRlciBvcHRpb25zIC0tPgorPGRpdiBpZD0iTVNlYXJjaFNlbGVjdFdpbmRvdyIKKyAgICAgb25tb3VzZW92ZXI9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RTaG93KCkiCisgICAgIG9ubW91c2VvdXQ9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RIaWRlKCkiCisgICAgIG9ua2V5ZG93bj0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdEtleShldmVudCkiPgorPC9kaXY+CisKKzwhLS0gaWZyYW1lIHNob3dpbmcgdGhlIHNlYXJjaCByZXN1bHRzIChjbG9zZWQgYnkgZGVmYXVsdCkgLS0+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0c1dpbmRvdyI+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0cyI+Cis8ZGl2IGNsYXNzPSJTUlBhZ2UiPgorPGRpdiBpZD0iU1JJbmRleCI+Cis8ZGl2IGlkPSJTUlJlc3VsdHMiPjwvZGl2PgorPGRpdiBjbGFzcz0iU1JTdGF0dXMiIGlkPSJMb2FkaW5nIj5Mb2FkaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9IlNlYXJjaGluZyI+U2VhcmNoaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9Ik5vTWF0Y2hlcyI+Tm8gTWF0Y2hlczwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzxkaXY+PGRpdiBjbGFzcz0iaGVhZGVyIj4KKyAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5DTWFrZSBidWlsZCBzeXN0ZW08L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS1oZWFkZXItLT4KKzxkaXYgY2xhc3M9ImNvbnRlbnRzIj4KKzxkaXYgY2xhc3M9InRleHRibG9jayI+PHByZSBjbGFzcz0iZnJhZ21lbnQiPkJ1aWxkaW5nIGx3SVAKKz09PT09PT09PT09PT0KKworbHdJUCB1c2VzIGEgQ01ha2UgYmFzZWQgYnVpbGQgc3lzdGVtLgorCitUaGUgQ01ha2UgZmlsZXMgaW4gdGhpcyBwcm9qZWN0IGFyZSBkZXNpZ25lZCB0bworYmUgaW5jbHVkZWQgaW50byB5b3VyIG93biBDTWFrZSBmaWxlcy4gVGhleSBhcmUKK21haW5seSB2YXJpYWJsZSBkZWZpbml0aW9ucyBjb250YWluaW5nIGEgbGlzdCBvZgorc291cmNlIGZpbGVzIGFuZCBwcmVkZWZpbmVkIHN0YXRpYyBsaWJyYXJpZXMgdG8KK2JlIGxpbmtlZCBhZ2FpbnN0IGFwcGxpY2F0aW9uIGNvZGUuCisKKzEpIGx3SVAgc291cmNlczoKKyAgIHNyYy9GaWxlbGlzdHMuY21ha2UgcHJvdmlkZXMgZmlsZSBsaXN0cyBjb250YWluaW5nCisgICB0aGUgbHdJUCBjb3JlIGxpYnJhcnkuCisgICBUaGUgZmlsZSBhbHNvIGNvbnRhaW5zIHR3byBzdGF0aWMgbGlicmFyaWVzLCBsd2lwY29yZQorICAgYW5kIGx3aXBhbGxhcHBzLCB3aGVyZSB5b3UgY2FuIGxpbmsgeW91ciBhcHAgYWdhaW5zdC4KKyAgIFRoaXMgaXMgdGhlIGZpbGUgdGhhdCBpcyB1c2VmdWwgdG8gYWxsIGx3SVAgdXNlcnMuCisKKzIpIEV4YW1wbGUgYXBwbGljYXRpb25zOgorICAgY29udHJpYi9GaWxlbGlzdHMuY21ha2UgcHJvdmlkZXMgc2V2ZXJhbCBmaWxlIGxpc3RzCisgICBjb250YWluaW5nIHRoZSBleGFtcGxlIGFwcGxpY2F0aW9ucy4KKyAgIFRoZSBmaWxlIGFsc28gY29udGFpbnMgc2V2ZXJhbCBzdGF0aWMgbGlicmFyaWVzCisgICBmb3IgdGhlc2UgZXhhbXBsZSBhcHBzLgorICAgVGhpcyBmaWxlIGlzIG9ubHkgdXNlZnVsIGZvciB5b3UsIGlmIHlvdSBjYW4gdXNlIG9uZQorICAgb2YgdGhlIGV4YW1wbGVzIGluIHlvdXIgYXBwbGljYXRpb24sIHdoaWNoIGlzIG5vcm1hbGx5CisgICBub3QgdGhlIGNhc2UuCisKKzMpIE9TL3BsYXRmb3JtIHBvcnQ6CisgICBVc3VhbGx5IHRoZSBPUyBwb3J0IG5lZWRzIHRvIGJlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLgorICAgSWYgYSBwb3J0IHRvIExpbnV4LCBXaW5kb3dzIG9yIE1hY09TIGlzIHVzZWZ1bCBmb3IKKyAgIHlvdSwgeW91IGNhbiB1c2UKKyAgIGNvbnRyaWIvcG9ydHMve3dpbjMyLCB1bml4fS9GaWxlbGlzdHMuY21ha2UKKyAgIHRoYXQgY29udGFpbnMgZmlsZSBsaXN0cyBhbmQgbGlicmFyaWVzIGZvcgorICAgdGhlc2Ugb3BlcmF0aW5nIHN5c3RlbXMuCisKK1ZBUklBQkxFUworPT09PT09PT09CitJbiBhbGwgY2FzZXMsIHlvdSBuZWVkIHRvIHByb3ZpZGUgdHdvIHZhcmlhYmxlcy4KKworIkxXSVBfRElSIiBwb2ludGluZyB0byB0aGUgbHdJUCBkaXJlY3RvcnkKK0V4YW1wbGU6CitzZXQoTFdJUF9ESVIgJHtDTUFLRV9DVVJSRU5UX1NPVVJDRV9ESVJ9L2V4dGVybmFscy9sd2lwKQorCisiTFdJUF9JTkNMVURFX0RJUlMiIHRoYXQgY29udGFpbnMgdGhlIGluY2x1ZGUgYmFzZSBwYXRocworLSBmb3IgbHdJUCBpdHNlbGYgKCR7TFdJUF9ESVJ9L3NyYy9pbmNsdWRlKQorLSBmb3IgbHdJUCBjb250cmliIGlmIHlvdSB1c2UgaXQgKCR7TFdJUF9ESVJ9L2NvbnRyaWIpCistIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYW4gT1MgcG9ydAorLSB0byBhIGRpcmVjdG9yeSBjb250YWluaW5nIGx3aXBvcHRzLmgKKworRXhhbXBsZToKK3NldCAoTFdJUF9JTkNMVURFX0RJUlMKKyAgICAiJHtMV0lQX0RJUn0vc3JjL2luY2x1ZGUiCisgICAgIiR7TFdJUF9ESVJ9L2NvbnRyaWIiCisgICAgIiR7TFdJUF9ESVJ9L2NvbnRyaWIvcG9ydHMvdW5peC9wb3J0L2luY2x1ZGUiCisgICAgIiR7TFdJUF9ESVJ9L2NvbnRyaWIvZXhhbXBsZXMvZXhhbXBsZV9hcHAiCispCisKK1B1dHRpbmcgaXQgYWxsIHRvZ2V0aGVyCis9PT09PT09PT09PT09PT09PT09PT09PQorVG8gZ2V0IGEgd29ya2luZyBhcHBsaWNhdGlvbiwgeW91ciBDTWFrZSBzeXN0ZW0KK25lZWRzIHRvIHByb3ZpZGUgdGhlIHZhcmlhYmxlcyBkZXNjcmliZWQgYWJvdmUsIGUuZy4KK3NldCAoTFdJUF9ESVIgJmx0O3BhdGggdG8gbHdpcCBzb3VyY2VzJmd0OykKK3NldCAoTFdJUF9JTkNMVURFX0RJUlMKKyAgICAiJHtMV0lQX0RJUn0vc3JjL2luY2x1ZGUiCisgICAgIiR7TFdJUF9ESVJ9L2NvbnRyaWIiCisgICAgIiZsdDtwYXRoIHRvIG15IHBvcnQmZ3Q7L2luY2x1ZGUiCisgICAgIiZsdDtwYXRoIHRvIGx3aXBvcHRzLmgmZ3Q7IgorKQorCitZb3UgbWF5IGFkZCBzb21lIGRlZmluZXM6CitzZXQgKExXSVBfREVGSU5JVElPTlMgTFdJUF9ERUJVRz0xKQorCitUaGVuIGluY2x1ZGUgdGhlIGZpbGVsaXN0cyB5b3UgbmVlZDoKK2luY2x1ZGUoJHtMV0lQX0RJUn0vc3JjL0ZpbGVsaXN0cy5jbWFrZSkKK2luY2x1ZGUoJHtMV0lQX0RJUn0vY29udHJpYi9GaWxlbGlzdHMuY21ha2UpCisKK1RoZW4sIGRlY2xhcmUgeW91IGV4ZWN1dGFibGU6CithZGRfZXhlY3V0YWJsZShteV9hcHAgJmx0O215IHNvdXJjZSBmaWxlcyZndDsgJmx0O215IGx3aXAgcG9ydCBmaWxlcyZndDspCisKK0FkZCBsd0lQIGluY2x1ZGUgZGlycyB0byB5b3VyIGFwcDoKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKG15X2FwcCBQUklWQVRFICR7TFdJUF9JTkNMVURFX0RJUlN9KQorCitMaW5rIHlvdXIgYXBwIGFnYWluc3QgdGhlIGx3SVAgbGlicyBmcm9tIHRoZSBmaWxlbGlzdHMgeW91IG5lZWQ6Cit0YXJnZXRfbGlua19saWJyYXJpZXMobXlfYXBwIGx3aXBjb250cmliYXBwcyBsd2lwYWxsYXBwcyBsd2lwY29yZSkKKworV29ya2luZyBleGFtcGxlCis9PT09PT09PT09PT09PT0KK1dvcmtpbmcgYnVpbGQgZXhhbXBsZXMgY2FuIGJlIGZvdW5kIGluIHRoZQorY29udHJpYi9wb3J0cy97d2luMzIsIHVuaXh9L2V4YW1wbGVfYXBwCitzdWJkaXJlY3RvcnkuCitUbyB1c2UgdGhlbSwgY3JlYXRlIGEgYnVpbGQgZGlyZWN0b3J5IGFuZCBjYWxsIGNtYWtlIHdpdGgKK3RoZSBsd0lQIHJvb3QgZGlyOgorCistIG1rZGlyIGJ1aWxkCistIGNkIGJ1aWxkCistIGNtYWtlIC4uCistIGNtYWtlIC0tYnVpbGQgLgorCitUaGUgQ01ha2VMaXN0cy50eHQgd2lsbCBhdXRvc2VsZWN0IHRoZSBjb3JyZWN0IHBvcnQKK2ZvciB5b3VyIHN5c3RlbSAoc3VwcG9ydGVkOiBMaW51eCwgV2luZG93cywgRGFyd2luKS4KKworVG8gY29uZmlndXJlIHRoZSBleGFtcGxlIGFwcCB0byB5b3VyIG5lZWRzLCB5b3UgbmVlZCB0byBjb3B5IHRoZSBmaWxlCisgICAgY29udHJpYi9leGFtcGxlcy9leGFtcGxlX2FwcC9sd2lwY2ZnLmguZXhhbXBsZQordG8KKyAgICBjb250cmliL2V4YW1wbGVzL2V4YW1wbGVfYXBwL2x3aXBjZmcuaAorYW5kIGVkaXQgdG8geW91ciBuZWVkcy4KKworTWFrZWZpbGUgYmFzZWQgYnVpbGQgc3lzdGVtCis9PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2x3SVAgYWxzbyBtYWludGFpbnMgZmlsZSBsaXN0cyBmb3IgTWFrZWZpbGUtYmFzZWQKK2J1aWxkIHN5c3RlbXMuIExvb2sgZm9yIEZpbGVsaXN0cy5tayBmaWxlcworaW4gdGhlIHNvdXJjZSB0cmVlLiBXZSB0cnkgdG8gbWFpbnRhaW4gdGhlbSwKK2J1dCBsd0lQJ3MgbWFpbmx5IGZvY3VzZWQgYnVpbGQgc3lzdGVtIGlzIENNYWtlLgorCitNUyBWaXN1YWwgU3R1ZGlvCis9PT09PT09PT09PT09PT09Citsd0lQIGFsc28gcHJvdmlkZXMgYmFzaWMgc3VwcG9ydCBmb3IgTVNWUyBpbiB0aGUgd2luMzIgcG9ydAorZm9sZGVyIHVuZGVyICdtc3ZjJy4gV2UgdHJ5IHRvIG1haW50YWluIHRoZXNlIGZpbGVzLAorYnV0IGx3SVAncyBtYWlubHkgZm9jdXNlZCBidWlsZCBzeXN0ZW0gaXMgQ01ha2UuCis8L3ByZT4gPC9kaXY+PC9kaXY+PCEtLSBjb250ZW50cyAtLT4KKzwvZGl2PjwhLS0gUGFnZURvYyAtLT4KKzwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+Cis8IS0tIHN0YXJ0IGZvb3RlciBwYXJ0IC0tPgorPGRpdiBpZD0ibmF2LXBhdGgiIGNsYXNzPSJuYXZwYXRoIj48IS0tIGlkIGlzIG5lZWRlZCBmb3IgdHJlZXZpZXcgZnVuY3Rpb24hIC0tPgorICA8dWw+CisgICAgPGxpIGNsYXNzPSJmb290ZXIiPkdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5kb3h5Z2VuLm9yZy9pbmRleC5odG1sIj48aW1nIGNsYXNzPSJmb290ZXIiIHNyYz0iZG94eWdlbi5zdmciIHdpZHRoPSIxMDQiIGhlaWdodD0iMzEiIGFsdD0iZG94eWdlbiIvPjwvYT4gMS4xMi4wIDwvbGk+CisgIDwvdWw+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NvbXBhdF8ycG9zaXhfMmFycGFfMmluZXRfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NvbXBhdF8ycG9zaXhfMmFycGFfMmluZXRfOGguaHRtbAppbmRleCAwZGFjYzZhLi4yZTZlYTcyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9jb21wYXRfMnBvc2l4XzJhcnBhXzJpbmV0XzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvY29tcGF0XzJwb3NpeF8yYXJwYV8yaW5ldF84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NvbXBhdF8ycG9zaXhfMm5ldGRiXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9jb21wYXRfMnBvc2l4XzJuZXRkYl84aC5odG1sCmluZGV4IDBjNTRkOTEuLmFmN2U3N2YgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NvbXBhdF8ycG9zaXhfMm5ldGRiXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvY29tcGF0XzJwb3NpeF8ybmV0ZGJfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9jb21wYXRfMnN0ZGNfMmVycm5vXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9jb21wYXRfMnN0ZGNfMmVycm5vXzhoLmh0bWwKaW5kZXggZWVjOTM1NC4uMGNjOTJjNyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvY29tcGF0XzJzdGRjXzJlcnJub184aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NvbXBhdF8yc3RkY18yZXJybm9fOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9jb250cmliLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9jb250cmliLmh0bWwKaW5kZXggMzM0Nzg1MS4uYjFmMjdkYSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvY29udHJpYi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2NvbnRyaWIuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xNTcsNyArMTU3LDcgQEAKIAogMS4gSWYgeW91IGhhdmUgcG9ydGVkIGx3SVAgdG8gYSBwbGF0Zm9ybSAoYW4gT1MsIGEgdUMvcHJvY2Vzc29yIG9yIGEgY29tYmluYXRpb24gb2YgdGhlc2UpIGFuZAogICAgeW91IHRoaW5rIGl0IGNvdWxkIGJlbmVmaXQgb3RoZXJzWzFdIHlvdSBtaWdodCB3YW50IGRpc2N1c3MgdGhpcyBvbiB0aGUgbWFpbGluZyBsaXN0LiBZb3UKLSAgIGNhbiBhbHNvIGFzayBmb3IgR2l0IGFjY2VzcyB0byBzdWJtaXQgYW5kIG1haW50YWluIHlvdXIgcG9ydCBpbiB0aGUgY29udHJpYiBHaXQgbW9kdWxlLgorICAgY2FuIGFsc28gYXNrIGZvciBHaXQgYWNjZXNzIHRvIHN1Ym1pdCBhbmQgbWFpbnRhaW4geW91ciBwb3J0IGluIHRoZSBsd0lQL2NvbnRyaWIgc3ViZGlyLgogPC9wcmU+IDwvZGl2PjwvZGl2PjwhLS0gY29udGVudHMgLS0+CiA8L2Rpdj48IS0tIFBhZ2VEb2MgLS0+CiA8L2Rpdj48IS0tIGRvYy1jb250ZW50IC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGVidWdfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RlYnVnXzhoLmh0bWwKaW5kZXggYWI1MjcwOC4uY2VlZmJkNyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGVidWdfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kZWJ1Z184aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RlZl84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGVmXzhjLmh0bWwKaW5kZXggNDNlNTJmYi4uYjg0ODk0NCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGVmXzhjLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGVmXzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTE0LDYgKzExNCw4IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjphMTRmOTQzNDdhNWI5YjllMzYwMjcwNWI3NWI3YWU1MjQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FhMmJhNGI0ZTJkZDdlMWM4NTZmZWRjNmE2MDY5ODEzZSIgaWQ9InJfZ2FhMmJhNGI0ZTJkZDdlMWM4NTZmZWRjNmE2MDY5ODEzZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+Y2hhciAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYWEyYmE0YjRlMmRkN2UxYzg1NmZlZGM2YTYwNjk4MTNlIj5sd2lwX3N0cm5zdHI8L2E+IChjb25zdCBjaGFyICpidWZmZXIsIGNvbnN0IGNoYXIgKnRva2VuLCBzaXplX3Qgbik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWEyYmE0YjRlMmRkN2UxYzg1NmZlZGM2YTYwNjk4MTNlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiIGlkPSJyX2dhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPmNoYXIgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2FjMGNkNjNiNGExYTQ0ZjUwODE4NTgxOTllNjhmNDZhYSI+bHdpcF9zdHJuaXN0cjwvYT4gKGNvbnN0IGNoYXIgKmJ1ZmZlciwgY29uc3QgY2hhciAqdG9rZW4sIHNpemVfdCBuKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2EyNjNjYmFmY2I2OTdlZmY5NjQxMzlhOTk5OGE2NjY4YSIgaWQ9InJfZ2EyNjNjYmFmY2I2OTdlZmY5NjQxMzlhOTk5OGE2NjY4YSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+aW50JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYTI2M2NiYWZjYjY5N2VmZjk2NDEzOWE5OTk4YTY2NjhhIj5sd2lwX3N0cmljbXA8L2E+IChjb25zdCBjaGFyICpzdHIxLCBjb25zdCBjaGFyICpzdHIyKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMjYzY2JhZmNiNjk3ZWZmOTY0MTM5YTk5OThhNjY2OGEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E5OTdkY2M0OTQ1MTEyMWQ0ZWQ3NTViMzNiYzdiZDI2YSIgaWQ9InJfZ2E5OTdkY2M0OTQ1MTEyMWQ0ZWQ3NTViMzNiYzdiZDI2YSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+aW50JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYTk5N2RjYzQ5NDUxMTIxZDRlZDc1NWIzM2JjN2JkMjZhIj5sd2lwX3N0cm5pY21wPC9hPiAoY29uc3QgY2hhciAqc3RyMSwgY29uc3QgY2hhciAqc3RyMiwgc2l6ZV90IGxlbik8L3RkPjwvdHI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kZWZfOGMuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kZWZfOGMuanMKaW5kZXggYmYyNWIwZC4uNWI3NTVmYSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGVmXzhjLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RlZl84Yy5qcwpAQCAtNSw1ICs1LDYgQEAKICAgICBbICJsd2lwX2l0b2EiLCAiZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYWYxNWI0ZmJhYWFlNWJiN2Y2ZGE0MzAxZjNmOTc5Mjg0IiwgbnVsbCBdLAogICAgIFsgImx3aXBfc3RyaWNtcCIsICJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhMjYzY2JhZmNiNjk3ZWZmOTY0MTM5YTk5OThhNjY2OGEiLCBudWxsIF0sCiAgICAgWyAibHdpcF9zdHJuaWNtcCIsICJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhOTk3ZGNjNDk0NTExMjFkNGVkNzU1YjMzYmM3YmQyNmEiLCBudWxsIF0sCisgICAgWyAibHdpcF9zdHJuaXN0ciIsICJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiLCBudWxsIF0sCiAgICAgWyAibHdpcF9zdHJuc3RyIiwgImdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2FhMmJhNGI0ZTJkZDdlMWM4NTZmZWRjNmE2MDY5ODEzZSIsIG51bGwgXQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kZWZfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RlZl84aC5odG1sCmluZGV4IDljMWYwZTguLjk0ODQxMjYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RlZl84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RlZl84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyNSw2ICsxMjUsOCBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EyNjNjYmFmY2I2OTdlZmY5NjQxMzlhOTk5OGE2NjY4YSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWEyYmE0YjRlMmRkN2UxYzg1NmZlZGM2YTYwNjk4MTNlIiBpZD0icl9nYWEyYmE0YjRlMmRkN2UxYzg1NmZlZGM2YTYwNjk4MTNlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5jaGFyIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYTJiYTRiNGUyZGQ3ZTFjODU2ZmVkYzZhNjA2OTgxM2UiPmx3aXBfc3RybnN0cjwvYT4gKGNvbnN0IGNoYXIgKmJ1ZmZlciwgY29uc3QgY2hhciAqdG9rZW4sIHNpemVfdCBuKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYTJiYTRiNGUyZGQ3ZTFjODU2ZmVkYzZhNjA2OTgxM2UiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FjMGNkNjNiNGExYTQ0ZjUwODE4NTgxOTllNjhmNDZhYSIgaWQ9InJfZ2FjMGNkNjNiNGExYTQ0ZjUwODE4NTgxOTllNjhmNDZhYSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+Y2hhciAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYWMwY2Q2M2I0YTFhNDRmNTA4MTg1ODE5OWU2OGY0NmFhIj5sd2lwX3N0cm5pc3RyPC9hPiAoY29uc3QgY2hhciAqYnVmZmVyLCBjb25zdCBjaGFyICp0b2tlbiwgc2l6ZV90IG4pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FjMGNkNjNiNGExYTQ0ZjUwODE4NTgxOTllNjhmNDZhYSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxkaXYgY2xhc3M9InRleHRibG9jayI+PHA+dmFyaW91cyB1dGlsaXR5IG1hY3JvcyA8L3A+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kZWZfOGguanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kZWZfOGguanMKaW5kZXggOWI5NjZlMS4uNjQzMGQwNiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGVmXzhoLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RlZl84aC5qcwpAQCAtNiw1ICs2LDYgQEAKICAgICBbICJsd2lwX2l0b2EiLCAiZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYWYxNWI0ZmJhYWFlNWJiN2Y2ZGE0MzAxZjNmOTc5Mjg0IiwgbnVsbCBdLAogICAgIFsgImx3aXBfc3RyaWNtcCIsICJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhMjYzY2JhZmNiNjk3ZWZmOTY0MTM5YTk5OThhNjY2OGEiLCBudWxsIF0sCiAgICAgWyAibHdpcF9zdHJuaWNtcCIsICJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhOTk3ZGNjNDk0NTExMjFkNGVkNzU1YjMzYmM3YmQyNmEiLCBudWxsIF0sCisgICAgWyAibHdpcF9zdHJuaXN0ciIsICJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiLCBudWxsIF0sCiAgICAgWyAibHdpcF9zdHJuc3RyIiwgImdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2FhMmJhNGI0ZTJkZDdlMWM4NTZmZWRjNmE2MDY5ODEzZSIsIG51bGwgXQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kZXByZWNhdGVkLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kZXByZWNhdGVkLmh0bWwKaW5kZXggNjNiZTI0MC4uM2E1ZmQ1ZSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGVwcmVjYXRlZC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RlcHJlY2F0ZWQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDUsMTIgKzEwNSwzNCBAQAogPGRkPjxhIGNsYXNzPSJhbmNob3IiIGlkPSJfZGVwcmVjYXRlZDAwMDAwMSI+PC9hPlVzZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhZjdjZDQyYjlmMjIwNDQ2YjZhNTk3ZDM0NzRkYTZlY2UiPmRoY3BfcmVsZWFzZV9hbmRfc3RvcCgpPC9hPiBpbnN0ZWFkLiAgPC9kZD4KIDxkdD5HbG9iYWwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYTkzZjZiZjIxMDg2ZGM5YjEwYzBiZWM0Njc2Zjk3MzEyIj5kaGNwX3N0b3A8L2E+ICAoc3RydWN0IG5ldGlmICpuZXRpZik8L2R0PgogPGRkPjxhIGNsYXNzPSJhbmNob3IiIGlkPSJfZGVwcmVjYXRlZDAwMDAwMiI+PC9hPlVzZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhZjdjZDQyYjlmMjIwNDQ2YjZhNTk3ZDM0NzRkYTZlY2UiPmRoY3BfcmVsZWFzZV9hbmRfc3RvcCgpPC9hPiBpbnN0ZWFkLiAgPC9kZD4KKzxkdD5HbG9iYWwgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhNTk0OTRjNTYyYzYyZmRmNjJhNmM5YzZhNjZhNTBmYjMiPmlwNF9hZGRyX2NtcDwvYT4gIChhZGRyMSwgYWRkcjIpPC9kdD4KKzxkZD48YSBjbGFzcz0iYW5jaG9yIiBpZD0iX2RlcHJlY2F0ZWQwMDAwMDQiPjwvYT5SZW5hbWVkIHRvIGlwNF9hZGRyX2VxICA8L2RkPgorPGR0Pkdsb2JhbCA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2FmZDQzZjZjZWIyZGY4ZDUwYzg0NTA5YWQxMDU5ZjUxNCI+aXA0X2FkZHJfbmV0Y21wPC9hPiAgKGFkZHIxLCBhZGRyMiwgbWFzayk8L2R0PgorPGRkPjxhIGNsYXNzPSJhbmNob3IiIGlkPSJfZGVwcmVjYXRlZDAwMDAwMyI+PC9hPlJlbmFtZWQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhOTVkMDVkZjkyMDE2MDJmYzg3M2E5N2ZiNjFmZDExMzQiPmlwNF9hZGRyX25ldF9lcTwvYT4gIDwvZGQ+Cis8ZHQ+R2xvYmFsIDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWVhOGQ0YzQxMzRhYmZmMWM3NmJjOTk3YTkxMTYzZmUxIj5pcDZfYWRkcl9jbXA8L2E+ICAoYWRkcjEsIGFkZHIyKTwvZHQ+Cis8ZGQ+PGEgY2xhc3M9ImFuY2hvciIgaWQ9Il9kZXByZWNhdGVkMDAwMDA4Ij48L2E+UmVuYW1lZCB0byA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E5ZWEwYjZiODM3YmFmZjFlMWU2MmNjY2Q0ZjE3ZDUwZSI+aXA2X2FkZHJfZXE8L2E+ICA8L2RkPgorPGR0Pkdsb2JhbCA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2ExMWZlODQ3ODllM2YwMzliM2Y3MTAwOWU4MDI5NDZhOCI+aXA2X2FkZHJfY21wX3BhY2tlZDwvYT4gIChpcDZhZGRyLCBwYWRkciwgem9uZV9pZHgpPC9kdD4KKzxkZD48YSBjbGFzcz0iYW5jaG9yIiBpZD0iX2RlcHJlY2F0ZWQwMDAwMDkiPjwvYT5SZW5hbWVkIHRvIDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWEzMjRhYzY1ZDUzNzk5N2ViYWFlZDc4YmQ0MGY2ZGE5Ij5pcDZfYWRkcl9wYWNrZWRfZXE8L2E+ICA8L2RkPgorPGR0Pkdsb2JhbCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FjMDFkMGJhZDBhNjgyZGNjMjM5YmEzZDU2OTVlMDY0OCI+aXA2X2FkZHJfY21wX3pvbmU8L2E+ICAoYWRkcjEsIGFkZHIyKTwvZHQ+Cis8ZGQ+PGEgY2xhc3M9ImFuY2hvciIgaWQ9Il9kZXByZWNhdGVkMDAwMDEwIj48L2E+UmVuYW1lZCB0byA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FiYzZkNWY4MzNiMmFiZWYzMWFhNjAyZGMxMWFjZTBhOSI+aXA2X2FkZHJfem9uZV9lcTwvYT4gIDwvZGQ+Cis8ZHQ+R2xvYmFsIDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWQwZmMwODg5NzJkMzk1ODM5YTdhZDc1ZDNkYWI4MzIyIj5pcDZfYWRkcl9jbXBfem9uZWxlc3M8L2E+ICAoYWRkcjEsIGFkZHIyKTwvZHQ+Cis8ZGQ+PGEgY2xhc3M9ImFuY2hvciIgaWQ9Il9kZXByZWNhdGVkMDAwMDA3Ij48L2E+UmVuYW1lZCB0byA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E4MTFkOGEyYWE2NDE3YWUyMmE3YTQ2YjI3ZDllYWQyNiI+aXA2X2FkZHJfem9uZWxlc3NfZXE8L2E+ICA8L2RkPgorPGR0Pkdsb2JhbCA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E3NmIwMWY3NmI2NTY0Nzc2N2QwMGVlOWZhZDlmYmFhMiI+aXA2X2FkZHJfbmV0Y21wPC9hPiAgKGFkZHIxLCBhZGRyMik8L2R0PgorPGRkPjxhIGNsYXNzPSJhbmNob3IiIGlkPSJfZGVwcmVjYXRlZDAwMDAwNiI+PC9hPlJlbmFtZWQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhOWE5ODNjN2Q2MTNhYjQ1ZTM3YWFmNjZjMDY3YTBjN2EiPmlwNl9hZGRyX25ldF9lcTwvYT4gIDwvZGQ+Cis8ZHQ+R2xvYmFsIDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWNjMTYyMmFiODk1NjgwZGEwYTNiNmU1ZTU2MDcwMzQyIj5pcDZfYWRkcl9uZXRjbXBfem9uZWxlc3M8L2E+ICAoYWRkcjEsIGFkZHIyKTwvZHQ+Cis8ZGQ+PGEgY2xhc3M9ImFuY2hvciIgaWQ9Il9kZXByZWNhdGVkMDAwMDA1Ij48L2E+UmVuYW1lZCB0byA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2FmYzlkMmI4ZDBhMDVmMmZmMjNhYjNiN2ZkM2JmODIyOSI+aXA2X2FkZHJfbmV0X3pvbmVsZXNzX2VxPC9hPiAgPC9kZD4KKzxkdD5HbG9iYWwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EwMDhjOWM5MmQ3NzBjYzAzMGVhMDU0ZTZiMjU5ODM1YSI+aXBfYWRkcl9jbXA8L2E+ICAoYWRkcjEsIGFkZHIyKTwvZHQ+Cis8ZGQ+PGEgY2xhc3M9ImFuY2hvciIgaWQ9Il9kZXByZWNhdGVkMDAwMDEyIj48L2E+UmVuYW1lZCB0byA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTViNDAxNThiZGZmYTRiMGM4MWM0ZWU3NzA2NmU2YjI4Ij5pcF9hZGRyX2VxPC9hPiAgPC9kZD4KKzxkdD5HbG9iYWwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2FkYjY2ZjZkNWZhOTI2ZWQ0YjBlNjlkYjU4ZGZmY2JlNCI+aXBfYWRkcl9jbXBfem9uZWxlc3M8L2E+ICAoYWRkcjEsIGFkZHIyKTwvZHQ+Cis8ZGQ+PGEgY2xhc3M9ImFuY2hvciIgaWQ9Il9kZXByZWNhdGVkMDAwMDEzIj48L2E+UmVuYW1lZCB0byA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3Ij5pcF9hZGRyX3pvbmVsZXNzX2VxPC9hPiAgPC9kZD4KKzxkdD5HbG9iYWwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EzYTIxMjNmMGJiZjZmZTg0M2M4NTQyZTM0OWM2ODBlYiI+aXBfYWRkcl9uZXRjbXA8L2E+ICAoYWRkcjEsIGFkZHIyLCBtYXNrKTwvZHQ+Cis8ZGQ+PGEgY2xhc3M9ImFuY2hvciIgaWQ9Il9kZXByZWNhdGVkMDAwMDExIj48L2E+UmVuYW1lZCB0byA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWQxYmJiZTRjOTNlYTIzNjg2NjNlOTA4MTQ5NTNiOTI5Ij5pcF9hZGRyX25ldF9lcTwvYT4gIDwvZGQ+CiA8ZHQ+R2xvYmFsIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmYXBpX19kaGNwNC5odG1sI2dhNWFlYWVlMjRjMTExMjhkZjkwYTU2ZmUwOTFjOWQ0MDkiPm5ldGlmYXBpX2RoY3BfcmVsZWFzZTwvYT4gIChuKTwvZHQ+Ci08ZGQ+PGEgY2xhc3M9ImFuY2hvciIgaWQ9Il9kZXByZWNhdGVkMDAwMDA0Ij48L2E+VXNlIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmYXBpX19kaGNwNC5odG1sI2dhMTk3MWFmMDRmODgyZjVhZmRiM2FkZTQ1NGE2ODAxMzQiPm5ldGlmYXBpX2RoY3BfcmVsZWFzZV9hbmRfc3RvcCgpPC9hPiBpbnN0ZWFkLiAgPC9kZD4KKzxkZD48YSBjbGFzcz0iYW5jaG9yIiBpZD0iX2RlcHJlY2F0ZWQwMDAwMTUiPjwvYT5Vc2UgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZhcGlfX2RoY3A0Lmh0bWwjZ2ExOTcxYWYwNGY4ODJmNWFmZGIzYWRlNDU0YTY4MDEzNCI+bmV0aWZhcGlfZGhjcF9yZWxlYXNlX2FuZF9zdG9wKCk8L2E+IGluc3RlYWQuICA8L2RkPgogPGR0Pkdsb2JhbCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fZGhjcDQuaHRtbCNnYTIzMjJjMGQwZTNlYjZjMTA5N2Q2ZjM5NDI5MDVkYmQ1Ij5uZXRpZmFwaV9kaGNwX3N0b3A8L2E+ICAobik8L2R0PgotPGRkPjxhIGNsYXNzPSJhbmNob3IiIGlkPSJfZGVwcmVjYXRlZDAwMDAwMyI+PC9hPlVzZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fZGhjcDQuaHRtbCNnYTE5NzFhZjA0Zjg4MmY1YWZkYjNhZGU0NTRhNjgwMTM0Ij5uZXRpZmFwaV9kaGNwX3JlbGVhc2VfYW5kX3N0b3AoKTwvYT4gaW5zdGVhZC4gIDwvZGQ+Cis8ZGQ+PGEgY2xhc3M9ImFuY2hvciIgaWQ9Il9kZXByZWNhdGVkMDAwMDE0Ij48L2E+VXNlIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmYXBpX19kaGNwNC5odG1sI2dhMTk3MWFmMDRmODgyZjVhZmRiM2FkZTQ1NGE2ODAxMzQiPm5ldGlmYXBpX2RoY3BfcmVsZWFzZV9hbmRfc3RvcCgpPC9hPiBpbnN0ZWFkLiAgPC9kZD4KIDxkdD5HbG9iYWwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3MuaHRtbCNnYWNkMGE4NjU2MjM5MjFhZGEyZGQwODk2MmViODJjOWRmIj50Y3BpcF9jYWxsYmFja193aXRoX2Jsb2NrPC9hPiAgKGZ1bmN0aW9uLCBjdHgsIGJsb2NrKTwvZHQ+Ci08ZGQ+PGEgY2xhc3M9ImFuY2hvciIgaWQ9Il9kZXByZWNhdGVkMDAwMDA1Ij48L2E+dXNlIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FlYjdiM2M3NDE0Yzc2YWQ4ZGRlMTRkMmZiYTZjYjAyMCI+dGNwaXBfdHJ5X2NhbGxiYWNrKCk8L2E+IG9yIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FhYjgzOGZlMzQxN2FiM2ExZjYxZjA3MjgwMDlhMGMyYSI+dGNwaXBfY2FsbGJhY2soKTwvYT4gaW5zdGVhZCA8L2RkPgorPGRkPjxhIGNsYXNzPSJhbmNob3IiIGlkPSJfZGVwcmVjYXRlZDAwMDAxNiI+PC9hPnVzZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcy5odG1sI2dhZWI3YjNjNzQxNGM3NmFkOGRkZTE0ZDJmYmE2Y2IwMjAiPnRjcGlwX3RyeV9jYWxsYmFjaygpPC9hPiBvciA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcy5odG1sI2dhYWI4MzhmZTM0MTdhYjNhMWY2MWYwNzI4MDA5YTBjMmEiPnRjcGlwX2NhbGxiYWNrKCk8L2E+IGluc3RlYWQgPC9kZD4KIDwvZGw+CiA8L2Rpdj48L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBQYWdlRG9jIC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGhjcDZfOGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RoY3A2XzhjLmh0bWwKaW5kZXggNWRiN2Y5Yi4uNWQ3OGY5MiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGhjcDZfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaGNwNl84Yy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTE4MCw3ICsxODAsNyBAQAogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5UaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5kNiBtb2R1bGUgd2hlbiBhbiBSQSBtZXNzc2FnZSBpcyByZWNlaXZlZCBJdCB0cmlnZ2VycyBESENQdjYgcmVxdWVzdHMgKGlmIGVuYWJsZWQpLiA8L3A+Cis8cD5UaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIG5kNiBtb2R1bGUgd2hlbiBhbiBSQSBtZXNzYWdlIGlzIHJlY2VpdmVkIEl0IHRyaWdnZXJzIERIQ1B2NiByZXF1ZXN0cyAoaWYgZW5hYmxlZCkuIDwvcD4KIAogPC9kaXY+CiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RoY3A2XzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaGNwNl84aC5odG1sCmluZGV4IGFjNDgwNmEuLmQ3ZWVlNDYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RoY3A2XzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGhjcDZfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xNDksOCArMTQ5LDggQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19uZXRpZl9fY2QuaHRtbCNnYTVjZTYxYTI3N2UxOTUxMTgzZjdiN2QwMzc0MmMyMzFmIj5uZXRpZl9zZXRfY2xpZW50X2RhdGE8L2E+KDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBMV0lQX05FVElGX0NMSUVOVF9EQVRBX0lOREVYX0RIQ1A2LCBOVUxMKTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9fY2RfaHRtbF9nYTVjZTYxYTI3N2UxOTUxMTgzZjdiN2QwMzc0MmMyMzFmIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZl9fY2QuaHRtbCNnYTVjZTYxYTI3N2UxOTUxMTgzZjdiN2QwMzc0MmMyMzFmIj5uZXRpZl9zZXRfY2xpZW50X2RhdGE8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIG5ldGlmX3NldF9jbGllbnRfZGF0YShuZXRpZiwgaWQsIGRhdGEpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjMzPC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNjA8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfX2NkX2h0bWxfZ2E1Y2U2MWEyNzdlMTk1MTE4M2Y3YjdkMDM3NDJjMjMxZiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbmV0aWZfX2NkLmh0bWwjZ2E1Y2U2MWEyNzdlMTk1MTE4M2Y3YjdkMDM3NDJjMjMxZiI+bmV0aWZfc2V0X2NsaWVudF9kYXRhPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBuZXRpZl9zZXRfY2xpZW50X2RhdGEobmV0aWYsIGlkLCBkYXRhKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjIzNjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjY5PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPlJlbW92ZSBhIHN0cnVjdCBkaGNwNiBwcmV2aW91c2x5IHNldCB0byB0aGUgbmV0aWYgdXNpbmcgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDYuaHRtbCNnYTVjZGY0MDgyYzhhNGVlNmJmMGNiODc0YzBlYWE4NDUzIj5kaGNwNl9zZXRfc3RydWN0KCk8L2E+IDwvcD4KIAogPC9kaXY+CkBAIC0xOTQsNyArMTk0LDcgQEAKICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBuZDYgbW9kdWxlIHdoZW4gYW4gUkEgbWVzc3NhZ2UgaXMgcmVjZWl2ZWQgSXQgdHJpZ2dlcnMgREhDUHY2IHJlcXVlc3RzIChpZiBlbmFibGVkKS4gPC9wPgorPHA+VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBuZDYgbW9kdWxlIHdoZW4gYW4gUkEgbWVzc2FnZSBpcyByZWNlaXZlZCBJdCB0cmlnZ2VycyBESENQdjYgcmVxdWVzdHMgKGlmIGVuYWJsZWQpLiA8L3A+CiAKIDwvZGl2PgogPC9kaXY+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaGNwXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaGNwXzhjLmh0bWwKaW5kZXggODUyYjY3YS4uYzU0MzEwYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGhjcF84Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RoY3BfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsOCArMTAwLDcgQEAKICAgPGRpdiBjbGFzcz0ic3VtbWFyeSI+CiA8YSBocmVmPSIjZGVmaW5lLW1lbWJlcnMiPk1hY3JvczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjZW51bS1tZW1iZXJzIj5FbnVtZXJhdGlvbnM8L2E+ICYjMTI0OwotPGEgaHJlZj0iI2Z1bmMtbWVtYmVycyI+RnVuY3Rpb25zPC9hPiAmIzEyNDsKLTxhIGhyZWY9IiN2YXItbWVtYmVycyI+VmFyaWFibGVzPC9hPiAgPC9kaXY+Cis8YSBocmVmPSIjZnVuYy1tZW1iZXJzIj5GdW5jdGlvbnM8L2E+ICA8L2Rpdj4KICAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5kaGNwLmMgRmlsZSBSZWZlcmVuY2U8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS1oZWFkZXItLT4KIDxkaXYgY2xhc3M9ImNvbnRlbnRzIj4KQEAgLTExNCw2ICsxMTMsNyBAQAogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJkZWZfOGguaHRtbCI+bHdpcC9kZWYuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGguaHRtbCI+bHdpcC9kaGNwLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJhdXRvaXBfOGguaHRtbCI+bHdpcC9hdXRvaXAuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+Cis8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84aC5odG1sIj5sd2lwL2FjZC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0iZG5zXzhoLmh0bWwiPmx3aXAvZG5zLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCI+bHdpcC9ldGhhcnAuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmRoY3BfOGguaHRtbCI+bHdpcC9wcm90L2RoY3AuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CkBAIC0xMjMsNiArMTIzLDEwIEBACiA8L2Rpdj48dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KIDx0ciBjbGFzcz0iaGVhZGluZyI+PHRkIGNvbHNwYW49IjIiPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPjxhIGlkPSJkZWZpbmUtbWVtYmVycyIgbmFtZT0iZGVmaW5lLW1lbWJlcnMiPjwvYT4KIE1hY3JvczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmFhMjlkMDIwNTU4YjM3YjI5ZDVkNWFlNTBkZmViMGM4OCIgaWQ9InJfYWEyOWQwMjA1NThiMzdiMjlkNWQ1YWU1MGRmZWIwYzg4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2FhMjlkMDIwNTU4YjM3YjI5ZDVkNWFlNTBkZmViMGM4OCI+REhDUF9BRERfRVhUUkFfUkVRVUVTVF9PUFRJT05TPC9hPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmFhMjlkMDIwNTU4YjM3YjI5ZDVkNWFlNTBkZmViMGM4OCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphMzNmMzA2ZGE1NzVmOGE0Mzc5OTZkMDczYjM3NGRmODIiIGlkPSJyX2EzM2YzMDZkYTU3NWY4YTQzNzk5NmQwNzNiMzc0ZGY4MiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhMzNmMzA2ZGE1NzVmOGE0Mzc5OTZkMDczYjM3NGRmODIiPlNFVF9USU1FT1VUX0ZST01fT0ZGRVJFRDwvYT4ocmVzdWx0LCAgb2ZmZXJlZCwgIG1pbiwgIG1heCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphMzNmMzA2ZGE1NzVmOGE0Mzc5OTZkMDczYjM3NGRmODIiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06YWQ2ZGU5YzUxMjA2NTQ0NTRhMzMwYmY1ZGU1M2M0ODM1IiBpZD0icl9hZDZkZTljNTEyMDY1NDQ1NGEzMzBiZjVkZTUzYzQ4MzUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWQ2ZGU5YzUxMjA2NTQ0NTRhMzMwYmY1ZGU1M2M0ODM1Ij5ESENQX0NSRUFURV9SQU5EX1hJRDwvYT4mIzE2MDsmIzE2MDsmIzE2MDsxPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6YWQ2ZGU5YzUxMjA2NTQ0NTRhMzMwYmY1ZGU1M2M0ODM1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmE2M2U5ZWM0NTE3YjgwZDg1NzZmMjE4ZDkwNWUzMWE5YiIgaWQ9InJfYTYzZTllYzQ1MTdiODBkODU3NmYyMThkOTA1ZTMxYTliIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E2M2U5ZWM0NTE3YjgwZDg1NzZmMjE4ZDkwNWUzMWE5YiI+REhDUF9NQVhfTVNHX0xFTjwvYT4oPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgpAQCAtMTQ5LDEwICsxNTMsOCBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EwYzUwOTY4ZDk4MTFhYTJhYTY3ZmFkYzA4ODVkNzQ0ZiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWJkN2ZjYzdlMDc5OWUzMTM4ODVmYzdmZDlkNDk5MmFkIiBpZD0icl9nYWJkN2ZjYzdlMDc5OWUzMTM4ODVmYzdmZDlkNDk5MmFkIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2FiZDdmY2M3ZTA3OTllMzEzODg1ZmM3ZmQ5ZDQ5OTJhZCI+ZGhjcF9pbmZvcm08L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYmQ3ZmNjN2UwNzk5ZTMxMzg4NWZjN2ZkOWQ0OTkyYWQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YTA0ZjM4MjQ3MjAyMjNjNDM5MTY1MjQzNTI3OTA2MDAyIiBpZD0icl9hMDRmMzgyNDcyMDIyM2M0MzkxNjUyNDM1Mjc5MDYwMDIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTA0ZjM4MjQ3MjAyMjNjNDM5MTY1MjQzNTI3OTA2MDAyIj5kaGNwX25ldHdvcmtfY2hhbmdlZDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTA0ZjM4MjQ3MjAyMjNjNDM5MTY1MjQzNTI3OTA2MDAyIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmExZmMwYTk0ZTBiOTRmMTNjNWQzMDIwMThmN2VjYjUzNSIgaWQ9InJfYTFmYzBhOTRlMGI5NGYxM2M1ZDMwMjAxOGY3ZWNiNTM1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2ExZmMwYTk0ZTBiOTRmMTNjNWQzMDIwMThmN2VjYjUzNSI+ZGhjcF9hcnBfcmVwbHk8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBjb25zdCA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2EzZDNiNDVkYWZmYmMxNWQ2NWRhMjM2ZTMxZTYyMWI3ZSI+aXA0X2FkZHJfdDwvYT4gKmFkZHIpPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTFmYzBhOTRlMGI5NGYxM2M1ZDMwMjAxOGY3ZWNiNTM1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmEyZmQzMzcyMjg1OTA1NGVhOTMyZmYwNWZmNjJkZWRhYSIgaWQ9InJfYTJmZDMzNzIyODU5MDU0ZWE5MzJmZjA1ZmY2MmRlZGFhIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2EyZmQzMzcyMjg1OTA1NGVhOTMyZmYwNWZmNjJkZWRhYSI+ZGhjcF9uZXR3b3JrX2NoYW5nZWRfbGlua191cDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTJmZDMzNzIyODU5MDU0ZWE5MzJmZjA1ZmY2MmRlZGFhIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhNTgzZWI4ZDU4ZjVlOTZiN2RlYTcxNzk0ODU3OGE5NDciIGlkPSJyX2dhNTgzZWI4ZDU4ZjVlOTZiN2RlYTcxNzk0ODU3OGE5NDciPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYTU4M2ViOGQ1OGY1ZTk2YjdkZWE3MTc5NDg1NzhhOTQ3Ij5kaGNwX3JlbmV3PC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTU4M2ViOGQ1OGY1ZTk2YjdkZWE3MTc5NDg1NzhhOTQ3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhZjdjZDQyYjlmMjIwNDQ2YjZhNTk3ZDM0NzRkYTZlY2UiIGlkPSJyX2dhZjdjZDQyYjlmMjIwNDQ2YjZhNTk3ZDM0NzRkYTZlY2UiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYWY3Y2Q0MmI5ZjIyMDQ0NmI2YTU5N2QzNDc0ZGE2ZWNlIj5kaGNwX3JlbGVhc2VfYW5kX3N0b3A8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KQEAgLTE2MywxNyArMTY1LDI1IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTkzZjZiZjIxMDg2ZGM5YjEwYzBiZWM0Njc2Zjk3MzEyIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmFlMjRhMjUyOTM3MjIxODMyN2FiOWNiNjU5MjA0MWM4NSIgaWQ9InJfYWUyNGEyNTI5MzcyMjE4MzI3YWI5Y2I2NTkyMDQxYzg1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj51OF90JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2FlMjRhMjUyOTM3MjIxODMyN2FiOWNiNjU5MjA0MWM4NSI+ZGhjcF9zdXBwbGllZF9hZGRyZXNzPC9hPiAoY29uc3Qgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjphZTI0YTI1MjkzNzIyMTgzMjdhYjljYjY1OTIwNDFjODUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgotPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9InZhci1tZW1iZXJzIiBuYW1lPSJ2YXItbWVtYmVycyI+PC9hPgotVmFyaWFibGVzPC9oMj48L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YTVhYmQyMzI0OTYwNjNiZGRjYmM2NjkyYzBlOGY5YzFmIiBpZD0icl9hNWFiZDIzMjQ5NjA2M2JkZGNiYzY2OTJjMGU4ZjljMWYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnUzMl90JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E1YWJkMjMyNDk2MDYzYmRkY2JjNjY5MmMwZThmOWMxZiI+ZGhjcF9yeF9vcHRpb25zX3ZhbDwvYT4gW0RIQ1BfT1BUSU9OX0lEWF9NQVhdPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTVhYmQyMzI0OTYwNjNiZGRjYmM2NjkyYzBlOGY5YzFmIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmEwNThiNzFlMWQyNmIzNzU4YjI5ZDE2ZDlmODkyYzhjYyIgaWQ9InJfYTA1OGI3MWUxZDI2YjM3NThiMjlkMTZkOWY4OTJjOGNjIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj51OF90JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2EwNThiNzFlMWQyNmIzNzU4YjI5ZDE2ZDlmODkyYzhjYyI+ZGhjcF9yeF9vcHRpb25zX2dpdmVuPC9hPiBbREhDUF9PUFRJT05fSURYX01BWF08L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjphMDU4YjcxZTFkMjZiMzc1OGIyOWQxNmQ5Zjg5MmM4Y2MiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPgogPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+CiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxwPkR5bmFtaWMgSG9zdCBDb25maWd1cmF0aW9uIFByb3RvY29sIGNsaWVudCA8L3A+CiA8L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5NYWNybyBEZWZpbml0aW9uIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImFhMjlkMDIwNTU4YjM3YjI5ZDVkNWFlNTBkZmViMGM4OCIgbmFtZT0iYWEyOWQwMjA1NThiMzdiMjlkNWQ1YWU1MGRmZWIwYzg4Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWEyOWQwMjA1NThiMzdiMjlkNWQ1YWU1MGRmZWIwYzg4Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5ESENQX0FERF9FWFRSQV9SRVFVRVNUX09QVElPTlM8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgREhDUF9BRERfRVhUUkFfUkVRVUVTVF9PUFRJT05TPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+REhDUF9BRERfRVhUUkFfUkVRVUVTVF9PUFRJT05TOiBBZGRpdGlvbmFsIG9wdGlvbnMgYWRkZWQgdG8gdGhlIGxpc3Qgb2Ygb3B0aW9ucyB0aGF0IHRoZSBjbGllbnQgcmVxdWVzdHMgZnJvbSB0aGUgc2VydmVycyAob3B0IDU1OiBESENQX09QVElPTl9QQVJBTUVURVJfUkVRVUVTVF9MSVNUKSBJZiBhZGRpdGlvbmFsIG9wdGlvbnMgYXJlIHJlcXVlc3RlZCwgZGVmaW5lIHRoaXMgbWFjcm8gYXMgYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCwgd2l0aCBsZWFkaW5nIGNvbW1hLiBUaGlzIG1hY3JvIGlzIHVzZWZ1bCBmb3IgZXhhbXBsZSB3aGVuIHJlcXVlc3RlZCB2ZW5kb3Igc3BlY2lmaWMgaWRzIChWQ0kvVlNJIG9wdGlvbnMpLCBoZXJlIGlzIGFuIGV4YW1wbGUgb2YgcmVxdWVzdGluZyB0aGUgVlNJIG9wdGlvbiAob3B0aW9uIDQzKSAoeWVzLCB0aGUgbm90YXRpb24gaXMgYSBiaXQgc3RyYW5nZSwgYnV0IGl0IHdvcmtzIDopIChOT1RFOiB0aGUgc3BhY2UgYmV0d2VlbiAjIGFuZCBkZWZpbmUgaXMgcmVxdWlyZWQgYmVjYXVzZSBvZiBkb3h5Z2VuLi4uKSA8L3A+PGgxPmRlZmluZSBESENQX0FERF9FWFRSQV9SRVFVRVNUX09QVElPTlMgLDQzPC9oMT4KKworPC9kaXY+Cis8L2Rpdj4KIDxhIGlkPSJhZDZkZTljNTEyMDY1NDQ1NGEzMzBiZjVkZTUzYzQ4MzUiIG5hbWU9ImFkNmRlOWM1MTIwNjU0NDU0YTMzMGJmNWRlNTNjNDgzNSI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FkNmRlOWM1MTIwNjU0NDU0YTMzMGJmNWRlNTNjNDgzNSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+REhDUF9DUkVBVEVfUkFORF9YSUQ8L2gyPgogCkBAIC0yMDQsOCArMjE0LDggQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4oPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4tJmd0OzxhIGNsYXNzPSJjb2RlIGhsX3ZhcmlhYmxlIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FjYTdkNTZiNGUwZjgyMmIwY2VkMjg4NWYyMjJiOGQ0OCI+bXR1PC9hPik8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2MDwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWxfYWNhN2Q1NmI0ZTBmODIyYjBjZWQyODg1ZjIyMmI4ZDQ4Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWNhN2Q1NmI0ZTBmODIyYjBjZWQyODg1ZjIyMmI4ZDQ4Ij5uZXRpZjo6bXR1PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dTE2X3QgbXR1PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MzM1PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNjk8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sX2FjYTdkNTZiNGUwZjgyMmIwY2VkMjg4NWYyMjJiOGQ0OCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FjYTdkNTZiNGUwZjgyMmIwY2VkMjg4NWYyMjJiOGQ0OCI+bmV0aWY6Om10dTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnUxNl90IG10dTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjM0NDwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5EZWZhdWx0IGZvciBESENQX0dMT0JBTF9YSUQgaXMgMHhBQkNEMDAwMCBUaGlzIGNhbiBiZSBjaGFuZ2VkIGJ5IGRlZmluaW5nIERIQ1BfR0xPQkFMX1hJRCBhbmQgREhDUF9HTE9CQUxfWElEX0hFQURFUiwgZS5nLiAjZGVmaW5lIERIQ1BfR0xPQkFMX1hJRF9IRUFERVIgInN0ZGxpYi5oIiAjZGVmaW5lIERIQ1BfR0xPQkFMX1hJRCByYW5kKCkgREhDUF9PUFRJT05fTUFYX01TR19TSVpFIGlzIHNldCB0byB0aGUgTVRVIE1UVSBpcyBjaGVja2VkIHRvIGJlIGJpZyBlbm91Z2ggaW4gZGhjcF9zdGFydCA8L3A+CiAKIDwvZGl2PgpAQCAtMjI1LDYgKzIzNSw1NiBAQAogCiA8L2Rpdj4KIDwvZGl2PgorPGEgaWQ9ImEzM2YzMDZkYTU3NWY4YTQzNzk5NmQwNzNiMzc0ZGY4MiIgbmFtZT0iYTMzZjMwNmRhNTc1ZjhhNDM3OTk2ZDA3M2IzNzRkZjgyIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTMzZjMwNmRhNTc1ZjhhNDM3OTk2ZDA3M2IzNzRkZjgyIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5TRVRfVElNRU9VVF9GUk9NX09GRkVSRUQ8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgU0VUX1RJTUVPVVRfRlJPTV9PRkZFUkVEPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+cmVzdWx0PC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5vZmZlcmVkPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5taW48L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm1heDwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgPHNwYW4gY2xhc3M9ImtleXdvcmRmbG93Ij5kbzwvc3Bhbj4geyBcPC9kaXY+Cis8ZGl2IGNsYXNzPSJsaW5lIj4gIHUzMl90IHRpbWVvdXQgPSAob2ZmZXJlZCArIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZGhjcF84aC5odG1sI2EzNzUxY2M1ZGFhMDg3NWQ0MTVlYmFjZDhhZDY3NWYxZSI+REhDUF9DT0FSU0VfVElNRVJfU0VDUzwvYT4gLyAyKSAvIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZGhjcF84aC5odG1sI2EzNzUxY2M1ZGFhMDg3NWQ0MTVlYmFjZDhhZDY3NWYxZSI+REhDUF9DT0FSU0VfVElNRVJfU0VDUzwvYT47ICBcPC9kaXY+Cis8ZGl2IGNsYXNzPSJsaW5lIj4gIGlmICh0aW1lb3V0ICZndDsgbWF4KSB7ICAgIFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgICB0aW1lb3V0ID0gbWF4OyAgICAgICAgXDwvZGl2PgorPGRpdiBjbGFzcz0ibGluZSI+ICB9ICAgICAgICAgICAgICAgICAgICAgICBcPC9kaXY+Cis8ZGl2IGNsYXNzPSJsaW5lIj4gIGlmICh0aW1lb3V0ID09IG1pbikgeyAgIFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgICB0aW1lb3V0ID0gMTsgICAgICAgICAgXDwvZGl2PgorPGRpdiBjbGFzcz0ibGluZSI+ICB9IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgcmVzdWx0ID0gKDxhIGNsYXNzPSJjb2RlIGhsX3R5cGVkZWYiIGhyZWY9ImRoY3BfOGguaHRtbCNhYTg1ZDY2MWM3ZTE2MDkyMWMwNDk3ZTdiYWE4OTJiNjciPmRoY3BfdGltZW91dF90PC9hPil0aW1lb3V0OyBcPC9kaXY+Cis8ZGl2IGNsYXNzPSJsaW5lIj59IDxzcGFuIGNsYXNzPSJrZXl3b3JkZmxvdyI+d2hpbGU8L3NwYW4+KDApPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZGhjcF84aF9odG1sX2EzNzUxY2M1ZGFhMDg3NWQ0MTVlYmFjZDhhZDY3NWYxZSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJkaGNwXzhoLmh0bWwjYTM3NTFjYzVkYWEwODc1ZDQxNWViYWNkOGFkNjc1ZjFlIj5ESENQX0NPQVJTRV9USU1FUl9TRUNTPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBESENQX0NPQVJTRV9USU1FUl9TRUNTPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGRoY3AuaDo2NTwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWRoY3BfOGhfaHRtbF9hYTg1ZDY2MWM3ZTE2MDkyMWMwNDk3ZTdiYWE4OTJiNjciPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZGhjcF84aC5odG1sI2FhODVkNjYxYzdlMTYwOTIxYzA0OTdlN2JhYTg5MmI2NyI+ZGhjcF90aW1lb3V0X3Q8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj51MTZfdCBkaGNwX3RpbWVvdXRfdDwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBkaGNwLmg6NjE8L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+REhDUF9ERUZJTkVfQ1VTVE9NX1RJTUVPVVRTOiBpZiB0aGlzIGlzIGRlZmluZWQgdGhlbiB5b3UgY2FuIGN1c3RvbWl6ZSB2YXJpb3VzIERIQ1AgdGltZW91dHMgdXNpbmcgdGhlc2UgbWFjcm9zOjwvcD48dWw+Cis8bGk+REhDUF9TRVRfVElNRU9VVF9GUk9NX09GRkVSRURfVDBfTEVBU0UoKSB0byBhZGp1c3QgdGhlIHQwIGxlYXNlIHRpbWVvdXQgZnJvbSB0aGUgb2ZmZXJlZCB2YWx1ZTwvbGk+Cis8bGk+REhDUF9TRVRfVElNRU9VVF9GUk9NX09GRkVSRURfVDFfUkVORVcoKSBzYW1lIGZvciB0MSByZW5ldzwvbGk+Cis8bGk+REhDUF9TRVRfVElNRU9VVF9GUk9NX09GRkVSRURfVDJfUkVCSU5EKCkgc2FtZSBmb3IgdDIgcmViaW5kPC9saT4KKzxsaT5ESENQX05FWFRfVElNRU9VVF9USFJFU0hPTEQgdG8gYWRqdXN0IHRoZSBwZXJpb2Qgb2YgdGhlIG5leHQgdGltZW91dDwvbGk+Cis8bGk+REhDUF9SRVFVRVNUX0JBQ0tPRkZfU0VRVUVOQ0UgdG8gYWRqdXN0IGJhY2stb2ZmIHRpbWVzIGJhc2VkIG9uIERIQ1AgcmVxdWVzdCBhdHRlbXB0cyA8L2xpPgorPC91bD4KKworPC9kaXY+Cis8L2Rpdj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkVudW1lcmF0aW9uIFR5cGUgRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iYThjM2I1ODRkMjIzYjk5NWI0ODYxM2FkOTZjYjc3NmEwIiBuYW1lPSJhOGMzYjU4NGQyMjNiOTk1YjQ4NjEzYWQ5NmNiNzc2YTAiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhOGMzYjU4NGQyMjNiOTk1YjQ4NjEzYWQ5NmNiNzc2YTAiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmRoY3Bfb3B0aW9uX2lkeDwvaDI+CkBAIC0yNDIsMzUgKzMwMiw2IEBACiA8L2Rpdj4KIDwvZGl2PgogPGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+Ci08YSBpZD0iYTFmYzBhOTRlMGI5NGYxM2M1ZDMwMjAxOGY3ZWNiNTM1IiBuYW1lPSJhMWZjMGE5NGUwYjk0ZjEzYzVkMzAyMDE4ZjdlY2I1MzUiPjwvYT4KLTxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhMWZjMGE5NGUwYjk0ZjEzYzVkMzAyMDE4ZjdlY2I1MzUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmRoY3BfYXJwX3JlcGx5KCk8L2gyPgotCi08ZGl2IGNsYXNzPSJtZW1pdGVtIj4KLTxkaXYgY2xhc3M9Im1lbXByb3RvIj4KLSAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+Ci0gICAgICAgIDx0cj4KLSAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgZGhjcF9hcnBfcmVwbHkgPC90ZD4KLSAgICAgICAgICA8dGQ+KDwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPiwgPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+Ci0gICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTNkM2I0NWRhZmZiYzE1ZDY1ZGEyMzZlMzFlNjIxYjdlIj5pcDRfYWRkcl90PC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+Ci0gICAgICAgIDwvdHI+Ci0gICAgICA8L3RhYmxlPgotPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPk1hdGNoIGFuIEFSUCByZXBseSB3aXRoIHRoZSBvZmZlcmVkIElQIGFkZHJlc3M6IGNoZWNrIHdoZXRoZXIgdGhlIG9mZmVyZWQgSVAgYWRkcmVzcyBpcyBub3QgaW4gdXNlIHVzaW5nIEFSUDwvcD4KLTxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgotICA8dGFibGUgY2xhc3M9InBhcmFtcyI+Ci0gICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPnRoZSBuZXR3b3JrIGludGVyZmFjZSBvbiB3aGljaCB0aGUgcmVwbHkgd2FzIHJlY2VpdmVkIDwvdGQ+PC90cj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmFkZHI8L3RkPjx0ZD5UaGUgSVAgYWRkcmVzcyB3ZSByZWNlaXZlZCBhIHJlcGx5IGZyb20gPC90ZD48L3RyPgotICA8L3RhYmxlPgotICA8L2RkPgotPC9kbD4KLQotPC9kaXY+Ci08L2Rpdj4KIDxhIGlkPSJhZDc0ODA4ODNkNjRmM2Q2ZjA4M2M4YWE5MzNiNWUzY2IiIG5hbWU9ImFkNzQ4MDg4M2Q2NGYzZDZmMDgzYzhhYTkzM2I1ZTNjYiI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FkNzQ4MDg4M2Q2NGYzZDZmMDgzYzhhYTkzM2I1ZTNjYiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+ZGhjcF9jb2Fyc2VfdG1yKCk8L2gyPgogCkBAIC0zMDgsMTQgKzMzOSwxNCBAQAogCiA8L2Rpdj4KIDwvZGl2PgotPGEgaWQ9ImEwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiIgbmFtZT0iYTA0ZjM4MjQ3MjAyMjNjNDM5MTY1MjQzNTI3OTA2MDAyIj48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTA0ZjM4MjQ3MjAyMjNjNDM5MTY1MjQzNTI3OTA2MDAyIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5kaGNwX25ldHdvcmtfY2hhbmdlZCgpPC9oMj4KKzxhIGlkPSJhMmZkMzM3MjI4NTkwNTRlYTkzMmZmMDVmZjYyZGVkYWEiIG5hbWU9ImEyZmQzMzcyMjg1OTA1NGVhOTMyZmYwNWZmNjJkZWRhYSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2EyZmQzMzcyMjg1OTA1NGVhOTMyZmYwNWZmNjJkZWRhYSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+ZGhjcF9uZXR3b3JrX2NoYW5nZWRfbGlua191cCgpPC9oMj4KIAogPGRpdiBjbGFzcz0ibWVtaXRlbSI+CiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CiAgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgogICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIGRoY3BfbmV0d29ya19jaGFuZ2VkIDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIGRoY3BfbmV0d29ya19jaGFuZ2VkX2xpbmtfdXAgPC90ZD4KICAgICAgICAgICA8dGQ+KDwvdGQ+CiAgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgogICAgICAgICAgIDx0ZD48L3RkPgpAQCAtMzUyLDM3ICszODMsNiBAQAogCiA8L2Rpdj4KIDwvZGl2PgotPGgyIGNsYXNzPSJncm91cGhlYWRlciI+VmFyaWFibGUgRG9jdW1lbnRhdGlvbjwvaDI+Ci08YSBpZD0iYTA1OGI3MWUxZDI2YjM3NThiMjlkMTZkOWY4OTJjOGNjIiBuYW1lPSJhMDU4YjcxZTFkMjZiMzc1OGIyOWQxNmQ5Zjg5MmM4Y2MiPjwvYT4KLTxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhMDU4YjcxZTFkMjZiMzc1OGIyOWQxNmQ5Zjg5MmM4Y2MiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmRoY3Bfcnhfb3B0aW9uc19naXZlbjwvaDI+Ci0KLTxkaXYgY2xhc3M9Im1lbWl0ZW0iPgotPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgotICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dThfdCBkaGNwX3J4X29wdGlvbnNfZ2l2ZW5bREhDUF9PUFRJT05fSURYX01BWF08L3RkPgotICAgICAgICA8L3RyPgotICAgICAgPC90YWJsZT4KLTwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5Ib2xkcyBhIGZsYWcgd2hpY2ggb3B0aW9uIHdhcyByZWNlaXZlZCBhbmQgaXMgY29udGFpbmVkIGluIGRoY3Bfcnhfb3B0aW9uc192YWwsIG9ubHkgdmFsaWQgd2hpbGUgaW4gZGhjcF9yZWN2LiAgPC9wPgotCi08L2Rpdj4KLTwvZGl2PgotPGEgaWQ9ImE1YWJkMjMyNDk2MDYzYmRkY2JjNjY5MmMwZThmOWMxZiIgbmFtZT0iYTVhYmQyMzI0OTYwNjNiZGRjYmM2NjkyYzBlOGY5YzFmIj48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTVhYmQyMzI0OTYwNjNiZGRjYmM2NjkyYzBlOGY5YzFmIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5kaGNwX3J4X29wdGlvbnNfdmFsPC9oMj4KLQotPGRpdiBjbGFzcz0ibWVtaXRlbSI+Ci08ZGl2IGNsYXNzPSJtZW1wcm90byI+Ci0gICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgotICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj51MzJfdCBkaGNwX3J4X29wdGlvbnNfdmFsW0RIQ1BfT1BUSU9OX0lEWF9NQVhdPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgIDwvdGFibGU+Ci08L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+SG9sZHMgdGhlIGRlY29kZWQgb3B0aW9uIHZhbHVlcywgb25seSB2YWxpZCB3aGlsZSBpbiBkaGNwX3JlY3YuICA8L3A+Ci0KLTwvZGl2PgotPC9kaXY+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KIDwhLS0gc3RhcnQgZm9vdGVyIHBhcnQgLS0+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaGNwXzhjLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGhjcF84Yy5qcwppbmRleCA2ZjhmYmZhLi44NmQxNjFmIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaGNwXzhjLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RoY3BfOGMuanMKQEAgLTEsMjIgKzEsMjEgQEAKIHZhciBkaGNwXzhjID0KIFsKKyAgICBbICJESENQX0FERF9FWFRSQV9SRVFVRVNUX09QVElPTlMiLCAiZGhjcF84Yy5odG1sI2FhMjlkMDIwNTU4YjM3YjI5ZDVkNWFlNTBkZmViMGM4OCIsIG51bGwgXSwKICAgICBbICJESENQX0NSRUFURV9SQU5EX1hJRCIsICJkaGNwXzhjLmh0bWwjYWQ2ZGU5YzUxMjA2NTQ0NTRhMzMwYmY1ZGU1M2M0ODM1IiwgbnVsbCBdLAogICAgIFsgIkRIQ1BfTUFYX01TR19MRU4iLCAiZGhjcF84Yy5odG1sI2E2M2U5ZWM0NTE3YjgwZDg1NzZmMjE4ZDkwNWUzMWE5YiIsIG51bGwgXSwKICAgICBbICJESENQX01JTl9SRVBMWV9MRU4iLCAiZGhjcF84Yy5odG1sI2FhNTJjMmI2NGVmNDJmYmFkODRhM2JjZDU4MDUyY2FhYiIsIG51bGwgXSwKKyAgICBbICJTRVRfVElNRU9VVF9GUk9NX09GRkVSRUQiLCAiZGhjcF84Yy5odG1sI2EzM2YzMDZkYTU3NWY4YTQzNzk5NmQwNzNiMzc0ZGY4MiIsIG51bGwgXSwKICAgICBbICJkaGNwX29wdGlvbl9pZHgiLCAiZGhjcF84Yy5odG1sI2E4YzNiNTg0ZDIyM2I5OTViNDg2MTNhZDk2Y2I3NzZhMCIsIG51bGwgXSwKLSAgICBbICJkaGNwX2FycF9yZXBseSIsICJkaGNwXzhjLmh0bWwjYTFmYzBhOTRlMGI5NGYxM2M1ZDMwMjAxOGY3ZWNiNTM1IiwgbnVsbCBdLAogICAgIFsgImRoY3BfY2xlYW51cCIsICJncm91cF9fZGhjcDQuaHRtbCNnYTI5MmExYjBjMGMyODhlYzUwODEwOGEzZmJhNDczZTY0IiwgbnVsbCBdLAogICAgIFsgImRoY3BfY29hcnNlX3RtciIsICJkaGNwXzhjLmh0bWwjYWQ3NDgwODgzZDY0ZjNkNmYwODNjOGFhOTMzYjVlM2NiIiwgbnVsbCBdLAogICAgIFsgImRoY3BfZmluZV90bXIiLCAiZGhjcF84Yy5odG1sI2E2MDFkOTdmYWEyNGZhNzI4OTI0NGJiNDUyZjA1MjA0NSIsIG51bGwgXSwKICAgICBbICJkaGNwX2luZm9ybSIsICJncm91cF9fZGhjcDQuaHRtbCNnYWJkN2ZjYzdlMDc5OWUzMTM4ODVmYzdmZDlkNDk5MmFkIiwgbnVsbCBdLAotICAgIFsgImRoY3BfbmV0d29ya19jaGFuZ2VkIiwgImRoY3BfOGMuaHRtbCNhMDRmMzgyNDcyMDIyM2M0MzkxNjUyNDM1Mjc5MDYwMDIiLCBudWxsIF0sCisgICAgWyAiZGhjcF9uZXR3b3JrX2NoYW5nZWRfbGlua191cCIsICJkaGNwXzhjLmh0bWwjYTJmZDMzNzIyODU5MDU0ZWE5MzJmZjA1ZmY2MmRlZGFhIiwgbnVsbCBdLAogICAgIFsgImRoY3BfcmVsZWFzZSIsICJncm91cF9fZGhjcDQuaHRtbCNnYWY5MmY3YWZiNTgyNTJmODJhNzQ5MDY0NjAyOTc0YmQ0IiwgbnVsbCBdLAogICAgIFsgImRoY3BfcmVsZWFzZV9hbmRfc3RvcCIsICJncm91cF9fZGhjcDQuaHRtbCNnYWY3Y2Q0MmI5ZjIyMDQ0NmI2YTU5N2QzNDc0ZGE2ZWNlIiwgbnVsbCBdLAogICAgIFsgImRoY3BfcmVuZXciLCAiZ3JvdXBfX2RoY3A0Lmh0bWwjZ2E1ODNlYjhkNThmNWU5NmI3ZGVhNzE3OTQ4NTc4YTk0NyIsIG51bGwgXSwKICAgICBbICJkaGNwX3NldF9zdHJ1Y3QiLCAiZ3JvdXBfX2RoY3A0Lmh0bWwjZ2E0MzgxMjA5NzgzMjcxNmE0NjJjNjYwZWI1OWNjMWJmOCIsIG51bGwgXSwKICAgICBbICJkaGNwX3N0YXJ0IiwgImdyb3VwX19kaGNwNC5odG1sI2dhMGM1MDk2OGQ5ODExYWEyYWE2N2ZhZGMwODg1ZDc0NGYiLCBudWxsIF0sCiAgICAgWyAiZGhjcF9zdG9wIiwgImdyb3VwX19kaGNwNC5odG1sI2dhOTNmNmJmMjEwODZkYzliMTBjMGJlYzQ2NzZmOTczMTIiLCBudWxsIF0sCi0gICAgWyAiZGhjcF9zdXBwbGllZF9hZGRyZXNzIiwgImRoY3BfOGMuaHRtbCNhZTI0YTI1MjkzNzIyMTgzMjdhYjljYjY1OTIwNDFjODUiLCBudWxsIF0sCi0gICAgWyAiZGhjcF9yeF9vcHRpb25zX2dpdmVuIiwgImRoY3BfOGMuaHRtbCNhMDU4YjcxZTFkMjZiMzc1OGIyOWQxNmQ5Zjg5MmM4Y2MiLCBudWxsIF0sCi0gICAgWyAiZGhjcF9yeF9vcHRpb25zX3ZhbCIsICJkaGNwXzhjLmh0bWwjYTVhYmQyMzI0OTYwNjNiZGRjYmM2NjkyYzBlOGY5YzFmIiwgbnVsbCBdCisgICAgWyAiZGhjcF9zdXBwbGllZF9hZGRyZXNzIiwgImRoY3BfOGMuaHRtbCNhZTI0YTI1MjkzNzIyMTgzMjdhYjljYjY1OTIwNDFjODUiLCBudWxsIF0KIF07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGhjcF84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGhjcF84aC5odG1sCmluZGV4IDA1NjJlNTEuLmUwYjdkNDYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RoY3BfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaGNwXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtOTksNiArOTksNyBAQAogPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgPGRpdiBjbGFzcz0ic3VtbWFyeSI+CiA8YSBocmVmPSIjZGVmaW5lLW1lbWJlcnMiPk1hY3JvczwvYT4gJiMxMjQ7Cis8YSBocmVmPSIjdHlwZWRlZi1tZW1iZXJzIj5UeXBlZGVmczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjZnVuYy1tZW1iZXJzIj5GdW5jdGlvbnM8L2E+ICA8L2Rpdj4KICAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5kaGNwLmggRmlsZSBSZWZlcmVuY2U8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS1oZWFkZXItLT4KQEAgLTEwNiw2ICsxMDcsNyBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Im9wdF84aC5odG1sIj5sd2lwL29wdC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfOGguaHRtbCI+bHdpcC9uZXRpZi5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0idWRwXzhoLmh0bWwiPmx3aXAvdWRwLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgorPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJhY2RfOGguaHRtbCI+bHdpcC9hY2QuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8L2Rpdj48dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KIDx0ciBjbGFzcz0iaGVhZGluZyI+PHRkIGNvbHNwYW49IjIiPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPjxhIGlkPSJkZWZpbmUtbWVtYmVycyIgbmFtZT0iZGVmaW5lLW1lbWJlcnMiPjwvYT4KIE1hY3JvczwvaDI+PC90ZD48L3RyPgpAQCAtMTE4LDYgKzEyMCwxMSBAQAogPHRyIGNsYXNzPSJtZW1pdGVtOmFhOTIyODRmYWEwOTlkYWM0MzMxYzFmYzBiOTk3ZGFiYyIgaWQ9InJfYWE5MjI4NGZhYTA5OWRhYzQzMzFjMWZjMGI5OTdkYWJjIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2FhOTIyODRmYWEwOTlkYWM0MzMxYzFmYzBiOTk3ZGFiYyI+ZGhjcF9yZW1vdmVfc3RydWN0PC9hPig8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjphYTkyMjg0ZmFhMDk5ZGFjNDMzMWMxZmMwYjk5N2RhYmMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgorPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9InR5cGVkZWYtbWVtYmVycyIgbmFtZT0idHlwZWRlZi1tZW1iZXJzIj48L2E+CitUeXBlZGVmczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmFhODVkNjYxYzdlMTYwOTIxYzA0OTdlN2JhYTg5MmI2NyIgaWQ9InJfYWE4NWQ2NjFjN2UxNjA5MjFjMDQ5N2U3YmFhODkyYjY3Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj50eXBlZGVmIHUxNl90JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2FhODVkNjYxYzdlMTYwOTIxYzA0OTdlN2JhYTg5MmI2NyI+ZGhjcF90aW1lb3V0X3Q8L2E+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YWE4NWQ2NjFjN2UxNjA5MjFjMDQ5N2U3YmFhODkyYjY3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPC90YWJsZT48dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KIDx0ciBjbGFzcz0iaGVhZGluZyI+PHRkIGNvbHNwYW49IjIiPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPjxhIGlkPSJmdW5jLW1lbWJlcnMiIG5hbWU9ImZ1bmMtbWVtYmVycyI+PC9hPgogRnVuY3Rpb25zPC9oMj48L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E0MzgxMjA5NzgzMjcxNmE0NjJjNjYwZWI1OWNjMWJmOCIgaWQ9InJfZ2E0MzgxMjA5NzgzMjcxNmE0NjJjNjYwZWI1OWNjMWJmOCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhNDM4MTIwOTc4MzI3MTZhNDYyYzY2MGViNTljYzFiZjgiPmRoY3Bfc2V0X3N0cnVjdDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHN0cnVjdCBkaGNwICpkaGNwKTwvdGQ+PC90cj4KQEAgLTEzNiwxMCArMTQzLDggQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZjdjZDQyYjlmMjIwNDQ2YjZhNTk3ZDM0NzRkYTZlY2UiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FiZDdmY2M3ZTA3OTllMzEzODg1ZmM3ZmQ5ZDQ5OTJhZCIgaWQ9InJfZ2FiZDdmY2M3ZTA3OTllMzEzODg1ZmM3ZmQ5ZDQ5OTJhZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhYmQ3ZmNjN2UwNzk5ZTMxMzg4NWZjN2ZkOWQ0OTkyYWQiPmRoY3BfaW5mb3JtPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWJkN2ZjYzdlMDc5OWUzMTM4ODVmYzdmZDlkNDk5MmFkIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmEwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiIgaWQ9InJfYTA0ZjM4MjQ3MjAyMjNjNDM5MTY1MjQzNTI3OTA2MDAyIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2EwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiI+ZGhjcF9uZXR3b3JrX2NoYW5nZWQ8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmEwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTphMWZjMGE5NGUwYjk0ZjEzYzVkMzAyMDE4ZjdlY2I1MzUiIGlkPSJyX2ExZmMwYTk0ZTBiOTRmMTNjNWQzMDIwMThmN2VjYjUzNSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhMWZjMGE5NGUwYjk0ZjEzYzVkMzAyMDE4ZjdlY2I1MzUiPmRoY3BfYXJwX3JlcGx5PC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgY29uc3QgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiPmlwNF9hZGRyX3Q8L2E+ICphZGRyKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmExZmMwYTk0ZTBiOTRmMTNjNWQzMDIwMThmN2VjYjUzNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphMmZkMzM3MjI4NTkwNTRlYTkzMmZmMDVmZjYyZGVkYWEiIGlkPSJyX2EyZmQzMzcyMjg1OTA1NGVhOTMyZmYwNWZmNjJkZWRhYSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhMmZkMzM3MjI4NTkwNTRlYTkzMmZmMDVmZjYyZGVkYWEiPmRoY3BfbmV0d29ya19jaGFuZ2VkX2xpbmtfdXA8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmEyZmQzMzcyMjg1OTA1NGVhOTMyZmYwNWZmNjJkZWRhYSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTphZTI0YTI1MjkzNzIyMTgzMjdhYjljYjY1OTIwNDFjODUiIGlkPSJyX2FlMjRhMjUyOTM3MjIxODMyN2FiOWNiNjU5MjA0MWM4NSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dThfdCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhZTI0YTI1MjkzNzIyMTgzMjdhYjljYjY1OTIwNDFjODUiPmRoY3Bfc3VwcGxpZWRfYWRkcmVzczwvYT4gKGNvbnN0IHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6YWUyNGEyNTI5MzcyMjE4MzI3YWI5Y2I2NTkyMDQxYzg1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmFkNzQ4MDg4M2Q2NGYzZDZmMDgzYzhhYTkzM2I1ZTNjYiIgaWQ9InJfYWQ3NDgwODgzZDY0ZjNkNmYwODNjOGFhOTMzYjVlM2NiIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2FkNzQ4MDg4M2Q2NGYzZDZmMDgzYzhhYTkzM2I1ZTNjYiI+ZGhjcF9jb2Fyc2VfdG1yPC9hPiAodm9pZCk8L3RkPjwvdHI+CkBAIC0yMTAsNDIgKzIxNSwyOSBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX25ldGlmX19jZC5odG1sI2dhNWNlNjFhMjc3ZTE5NTExODNmN2I3ZDAzNzQyYzIzMWYiPm5ldGlmX3NldF9jbGllbnRfZGF0YTwvYT4oPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIExXSVBfTkVUSUZfQ0xJRU5UX0RBVEFfSU5ERVhfREhDUCwgTlVMTCk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfX2NkX2h0bWxfZ2E1Y2U2MWEyNzdlMTk1MTE4M2Y3YjdkMDM3NDJjMjMxZiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbmV0aWZfX2NkLmh0bWwjZ2E1Y2U2MWEyNzdlMTk1MTE4M2Y3YjdkMDM3NDJjMjMxZiI+bmV0aWZfc2V0X2NsaWVudF9kYXRhPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBuZXRpZl9zZXRfY2xpZW50X2RhdGEobmV0aWYsIGlkLCBkYXRhKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjIzMzwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjYwPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX19jZF9odG1sX2dhNWNlNjFhMjc3ZTE5NTExODNmN2I3ZDAzNzQyYzIzMWYiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmX19jZC5odG1sI2dhNWNlNjFhMjc3ZTE5NTExODNmN2I3ZDAzNzQyYzIzMWYiPm5ldGlmX3NldF9jbGllbnRfZGF0YTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgbmV0aWZfc2V0X2NsaWVudF9kYXRhKG5ldGlmLCBpZCwgZGF0YSk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyMzY8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2OTwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5SZW1vdmUgYSBzdHJ1Y3QgZGhjcCBwcmV2aW91c2x5IHNldCB0byB0aGUgbmV0aWYgdXNpbmcgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYTQzODEyMDk3ODMyNzE2YTQ2MmM2NjBlYjU5Y2MxYmY4Ij5kaGNwX3NldF9zdHJ1Y3QoKTwvYT4gPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgotPGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+Ci08YSBpZD0iYTFmYzBhOTRlMGI5NGYxM2M1ZDMwMjAxOGY3ZWNiNTM1IiBuYW1lPSJhMWZjMGE5NGUwYjk0ZjEzYzVkMzAyMDE4ZjdlY2I1MzUiPjwvYT4KLTxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhMWZjMGE5NGUwYjk0ZjEzYzVkMzAyMDE4ZjdlY2I1MzUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmRoY3BfYXJwX3JlcGx5KCk8L2gyPgorPGgyIGNsYXNzPSJncm91cGhlYWRlciI+VHlwZWRlZiBEb2N1bWVudGF0aW9uPC9oMj4KKzxhIGlkPSJhYTg1ZDY2MWM3ZTE2MDkyMWMwNDk3ZTdiYWE4OTJiNjciIG5hbWU9ImFhODVkNjYxYzdlMTYwOTIxYzA0OTdlN2JhYTg5MmI2NyI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FhODVkNjYxYzdlMTYwOTIxYzA0OTdlN2JhYTg5MmI2NyI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+ZGhjcF90aW1lb3V0X3Q8L2gyPgogCiA8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KIDxkaXYgY2xhc3M9Im1lbXByb3RvIj4KICAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CiAgICAgICAgIDx0cj4KLSAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgZGhjcF9hcnBfcmVwbHkgPC90ZD4KLSAgICAgICAgICA8dGQ+KDwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPiwgPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+Ci0gICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTNkM2I0NWRhZmZiYzE1ZDY1ZGEyMzZlMzFlNjIxYjdlIj5pcDRfYWRkcl90PC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj50eXBlZGVmIHUxNl90IDxhIGNsYXNzPSJlbCIgaHJlZj0iI2FhODVkNjYxYzdlMTYwOTIxYzA0OTdlN2JhYTg5MmI2NyI+ZGhjcF90aW1lb3V0X3Q8L2E+PC90ZD4KICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+TWF0Y2ggYW4gQVJQIHJlcGx5IHdpdGggdGhlIG9mZmVyZWQgSVAgYWRkcmVzczogY2hlY2sgd2hldGhlciB0aGUgb2ZmZXJlZCBJUCBhZGRyZXNzIGlzIG5vdCBpbiB1c2UgdXNpbmcgQVJQPC9wPgotPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+Ci0gIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPm5ldGlmPC90ZD48dGQ+dGhlIG5ldHdvcmsgaW50ZXJmYWNlIG9uIHdoaWNoIHRoZSByZXBseSB3YXMgcmVjZWl2ZWQgPC90ZD48L3RyPgotICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+YWRkcjwvdGQ+PHRkPlRoZSBJUCBhZGRyZXNzIHdlIHJlY2VpdmVkIGEgcmVwbHkgZnJvbSA8L3RkPjwvdHI+Ci0gIDwvdGFibGU+Ci0gIDwvZGQ+Ci08L2RsPgorPHA+RGVmaW5lIERIQ1BfVElNRU9VVF9TSVpFX1QgaW4gPGEgY2xhc3M9ImVsIiBocmVmPSJvcHRfOGguaHRtbCI+b3B0Lmg8L2E+IGlmIHlvdSB3YW50IHVzZSBhIGRpZmZlcmVudCBpbnRlZ2VyIHRoYW4gdTE2X3QuIEVzcGVjaWFsbHkgdXNlZnVsIGlmIERIQ1BfQ09BUlNFX1RJTUVSX1NFQ1MgaXMgaW4gc21hbGxlciB1bml0cywgc28gdGltZW91dHMgZWFzaWx5IHJlYWNoIFVJTlQxNl9NQVggYW5kIG1vcmUgPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgorPGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iYWQ3NDgwODgzZDY0ZjNkNmYwODNjOGFhOTMzYjVlM2NiIiBuYW1lPSJhZDc0ODA4ODNkNjRmM2Q2ZjA4M2M4YWE5MzNiNWUzY2IiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhZDc0ODA4ODNkNjRmM2Q2ZjA4M2M4YWE5MzNiNWUzY2IiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmRoY3BfY29hcnNlX3RtcigpPC9oMj4KIApAQCAtMjgzLDE0ICsyNzUsMTQgQEAKIAogPC9kaXY+CiA8L2Rpdj4KLTxhIGlkPSJhMDRmMzgyNDcyMDIyM2M0MzkxNjUyNDM1Mjc5MDYwMDIiIG5hbWU9ImEwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2EwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+ZGhjcF9uZXR3b3JrX2NoYW5nZWQoKTwvaDI+Cis8YSBpZD0iYTJmZDMzNzIyODU5MDU0ZWE5MzJmZjA1ZmY2MmRlZGFhIiBuYW1lPSJhMmZkMzM3MjI4NTkwNTRlYTkzMmZmMDVmZjYyZGVkYWEiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhMmZkMzM3MjI4NTkwNTRlYTkzMmZmMDVmZjYyZGVkYWEiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmRoY3BfbmV0d29ya19jaGFuZ2VkX2xpbmtfdXAoKTwvaDI+CiAKIDxkaXYgY2xhc3M9Im1lbWl0ZW0iPgogPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgogICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KICAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dm9pZCBkaGNwX25ldHdvcmtfY2hhbmdlZCA8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dm9pZCBkaGNwX25ldHdvcmtfY2hhbmdlZF9saW5rX3VwIDwvdGQ+CiAgICAgICAgICAgPHRkPig8L3RkPgogICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bmV0aWY8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KICAgICAgICAgICA8dGQ+PC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RoY3BfOGguanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaGNwXzhoLmpzCmluZGV4IDM2Mzk5NGMuLmJhMTFkNTcgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RoY3BfOGguanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGhjcF84aC5qcwpAQCAtNCwxMiArNCwxMiBAQAogICAgIFsgIkRIQ1BfQ09BUlNFX1RJTUVSX1NFQ1MiLCAiZGhjcF84aC5odG1sI2EzNzUxY2M1ZGFhMDg3NWQ0MTVlYmFjZDhhZDY3NWYxZSIsIG51bGwgXSwKICAgICBbICJESENQX0ZJTkVfVElNRVJfTVNFQ1MiLCAiZGhjcF84aC5odG1sI2E3YTI2MjA5ZjUyZWViZThkZWQ0NTdhZTE0MWRmNDAzZiIsIG51bGwgXSwKICAgICBbICJkaGNwX3JlbW92ZV9zdHJ1Y3QiLCAiZGhjcF84aC5odG1sI2FhOTIyODRmYWEwOTlkYWM0MzMxYzFmYzBiOTk3ZGFiYyIsIG51bGwgXSwKLSAgICBbICJkaGNwX2FycF9yZXBseSIsICJkaGNwXzhoLmh0bWwjYTFmYzBhOTRlMGI5NGYxM2M1ZDMwMjAxOGY3ZWNiNTM1IiwgbnVsbCBdLAorICAgIFsgImRoY3BfdGltZW91dF90IiwgImRoY3BfOGguaHRtbCNhYTg1ZDY2MWM3ZTE2MDkyMWMwNDk3ZTdiYWE4OTJiNjciLCBudWxsIF0sCiAgICAgWyAiZGhjcF9jbGVhbnVwIiwgImdyb3VwX19kaGNwNC5odG1sI2dhMjkyYTFiMGMwYzI4OGVjNTA4MTA4YTNmYmE0NzNlNjQiLCBudWxsIF0sCiAgICAgWyAiZGhjcF9jb2Fyc2VfdG1yIiwgImRoY3BfOGguaHRtbCNhZDc0ODA4ODNkNjRmM2Q2ZjA4M2M4YWE5MzNiNWUzY2IiLCBudWxsIF0sCiAgICAgWyAiZGhjcF9maW5lX3RtciIsICJkaGNwXzhoLmh0bWwjYTYwMWQ5N2ZhYTI0ZmE3Mjg5MjQ0YmI0NTJmMDUyMDQ1IiwgbnVsbCBdLAogICAgIFsgImRoY3BfaW5mb3JtIiwgImdyb3VwX19kaGNwNC5odG1sI2dhYmQ3ZmNjN2UwNzk5ZTMxMzg4NWZjN2ZkOWQ0OTkyYWQiLCBudWxsIF0sCi0gICAgWyAiZGhjcF9uZXR3b3JrX2NoYW5nZWQiLCAiZGhjcF84aC5odG1sI2EwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiIsIG51bGwgXSwKKyAgICBbICJkaGNwX25ldHdvcmtfY2hhbmdlZF9saW5rX3VwIiwgImRoY3BfOGguaHRtbCNhMmZkMzM3MjI4NTkwNTRlYTkzMmZmMDVmZjYyZGVkYWEiLCBudWxsIF0sCiAgICAgWyAiZGhjcF9yZWxlYXNlIiwgImdyb3VwX19kaGNwNC5odG1sI2dhZjkyZjdhZmI1ODI1MmY4MmE3NDkwNjQ2MDI5NzRiZDQiLCBudWxsIF0sCiAgICAgWyAiZGhjcF9yZWxlYXNlX2FuZF9zdG9wIiwgImdyb3VwX19kaGNwNC5odG1sI2dhZjdjZDQyYjlmMjIwNDQ2YjZhNTk3ZDM0NzRkYTZlY2UiLCBudWxsIF0sCiAgICAgWyAiZGhjcF9yZW5ldyIsICJncm91cF9fZGhjcDQuaHRtbCNnYTU4M2ViOGQ1OGY1ZTk2YjdkZWE3MTc5NDg1NzhhOTQ3IiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzA0ZjJlY2M0MjVmYWYwZDQ3NWEzY2FmNDg0ZTU1MWYzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfMDRmMmVjYzQyNWZhZjBkNDc1YTNjYWY0ODRlNTUxZjMuaHRtbAppbmRleCBhYzRmYTA3Li5kMmNjN2ZiIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfMDRmMmVjYzQyNWZhZjBkNDc1YTNjYWY0ODRlNTUxZjMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfMDRmMmVjYzQyNWZhZjBkNDc1YTNjYWY0ODRlNTUxZjMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfMTQ5OTYzMjc3MTI2MzA2ODc1ZDhiZmU4MzIyMDg0ZjMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl8xNDk5NjMyNzcxMjYzMDY4NzVkOGJmZTgzMjIwODRmMy5odG1sCmluZGV4IGJjNDU5MjcuLmM5ZTAzYjUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl8xNDk5NjMyNzcxMjYzMDY4NzVkOGJmZTgzMjIwODRmMy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl8xNDk5NjMyNzcxMjYzMDY4NzVkOGJmZTgzMjIwODRmMy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl8xY2I0OTZjNzRiYmFmNTRlY2M5OTEzM2UxYzQzNGUwYy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzFjYjQ5NmM3NGJiYWY1NGVjYzk5MTMzZTFjNDM0ZTBjLmh0bWwKaW5kZXggZTEwMzhmOS4uOWJkMTdhOSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzFjYjQ5NmM3NGJiYWY1NGVjYzk5MTMzZTFjNDM0ZTBjLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzFjYjQ5NmM3NGJiYWY1NGVjYzk5MTMzZTFjNDM0ZTBjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzFlNDQ1ZTc2N2MzNjhjNzBkNThhZjhhMGI3NTUyNzE5Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfMWU0NDVlNzY3YzM2OGM3MGQ1OGFmOGEwYjc1NTI3MTkuaHRtbAppbmRleCA4OTgwMTc1Li41NGJjNzQxIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfMWU0NDVlNzY3YzM2OGM3MGQ1OGFmOGEwYjc1NTI3MTkuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfMWU0NDVlNzY3YzM2OGM3MGQ1OGFmOGEwYjc1NTI3MTkuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfMzRhZGY5OTZmOTJkMGVlZjcyYzQ1YTcxNjdhOTY2ZTYuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl8zNGFkZjk5NmY5MmQwZWVmNzJjNDVhNzE2N2E5NjZlNi5odG1sCmluZGV4IDc3MDI4OTMuLmQ3NTczYTcgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl8zNGFkZjk5NmY5MmQwZWVmNzJjNDVhNzE2N2E5NjZlNi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl8zNGFkZjk5NmY5MmQwZWVmNzJjNDVhNzE2N2E5NjZlNi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl80MDNlMjAyZjk5ZGJhMTU0YzY4NWJlOTMyYThlMGMzNC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzQwM2UyMDJmOTlkYmExNTRjNjg1YmU5MzJhOGUwYzM0Lmh0bWwKaW5kZXggMTk1MGRkZi4uMDA5MjU1MiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzQwM2UyMDJmOTlkYmExNTRjNjg1YmU5MzJhOGUwYzM0Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzQwM2UyMDJmOTlkYmExNTRjNjg1YmU5MzJhOGUwYzM0Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTAzLDggKzEwMyw4IEBACiA8dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KIDx0ciBjbGFzcz0iaGVhZGluZyI+PHRkIGNvbHNwYW49IjIiPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPjxhIGlkPSJmaWxlcyIgbmFtZT0iZmlsZXMiPjwvYT4KIEZpbGVzPC9oMj48L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9InRmdHBfX3NlcnZlcl84Yy5odG1sIj50ZnRwX3NlcnZlci5jPC9hPjwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtZGVzYzp0ZnRwX19zZXJ2ZXJfOGMiPjx0ZCBjbGFzcz0ibWRlc2NMZWZ0Ij4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWRlc2NSaWdodCI+VHJpdmlhbCBGaWxlIFRyYW5zZmVyIFByb3RvY29sIChSRkMgMTM1MCkgPGJyIC8+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJ0ZnRwXzhjLmh0bWwiPnRmdHAuYzwvYT48L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWRlc2M6dGZ0cF84YyI+PHRkIGNsYXNzPSJtZGVzY0xlZnQiPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZGVzY1JpZ2h0Ij5Ucml2aWFsIEZpbGUgVHJhbnNmZXIgUHJvdG9jb2wgKFJGQyAxMzUwKSA8YnIgLz48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPgogPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl80MDNlMjAyZjk5ZGJhMTU0YzY4NWJlOTMyYThlMGMzNC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl80MDNlMjAyZjk5ZGJhMTU0YzY4NWJlOTMyYThlMGMzNC5qcwppbmRleCAwYTM5MTllLi4yNTFlYWI4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNDAzZTIwMmY5OWRiYTE1NGM2ODViZTkzMmE4ZTBjMzQuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzQwM2UyMDJmOTlkYmExNTRjNjg1YmU5MzJhOGUwYzM0LmpzCkBAIC0xLDQgKzEsNCBAQAogdmFyIGRpcl80MDNlMjAyZjk5ZGJhMTU0YzY4NWJlOTMyYThlMGMzNCA9CiBbCi0gICAgWyAidGZ0cF9zZXJ2ZXIuYyIsICJ0ZnRwX19zZXJ2ZXJfOGMuaHRtbCIsICJ0ZnRwX19zZXJ2ZXJfOGMiIF0KKyAgICBbICJ0ZnRwLmMiLCAidGZ0cF84Yy5odG1sIiwgInRmdHBfOGMiIF0KIF07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzQzOWZjYjZmNjhlYTZhM2RjMDA3OGIzMzg5NjBmZDhmLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNDM5ZmNiNmY2OGVhNmEzZGMwMDc4YjMzODk2MGZkOGYuaHRtbAppbmRleCAxYjAxMzA0Li5kZmM1NzI5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNDM5ZmNiNmY2OGVhNmEzZGMwMDc4YjMzODk2MGZkOGYuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNDM5ZmNiNmY2OGVhNmEzZGMwMDc4YjMzODk2MGZkOGYuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNDYwYzUwMWIyNDMyZmMxMDdhZGNiMzgxMTE4MzVlNDguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl80NjBjNTAxYjI0MzJmYzEwN2FkY2IzODExMTgzNWU0OC5odG1sCmluZGV4IDU1NTUyMTcuLmNiNmMzOWQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl80NjBjNTAxYjI0MzJmYzEwN2FkY2IzODExMTgzNWU0OC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl80NjBjNTAxYjI0MzJmYzEwN2FkY2IzODExMTgzNWU0OC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl80Yjg0NmM2YjY5NzFkMjgwMGVmZjkzZDc1NTA0YWNjZC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzRiODQ2YzZiNjk3MWQyODAwZWZmOTNkNzU1MDRhY2NkLmh0bWwKaW5kZXggNmM1OTFiYS4uMjliMjY1NCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzRiODQ2YzZiNjk3MWQyODAwZWZmOTNkNzU1MDRhY2NkLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzRiODQ2YzZiNjk3MWQyODAwZWZmOTNkNzU1MDRhY2NkLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzRlNmIzY2YzM2E2MWI2Y2FhYzljOGFjMzBjODY2ZjM3Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNGU2YjNjZjMzYTYxYjZjYWFjOWM4YWMzMGM4NjZmMzcuaHRtbAppbmRleCBmZDIxNTU0Li4zNzIzZDBmIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNGU2YjNjZjMzYTYxYjZjYWFjOWM4YWMzMGM4NjZmMzcuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNGU2YjNjZjMzYTYxYjZjYWFjOWM4YWMzMGM4NjZmMzcuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTIsNiArMTEyLDggQEAKIDwvdGFibGU+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+CiA8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZmlsZXMiIG5hbWU9ImZpbGVzIj48L2E+CiBGaWxlczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJhY2RfOGguaHRtbCI+YWNkLmg8L2E+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF84aC5odG1sIj5hbHRjcC5oPC9hPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iYWx0Y3BfX3RjcF84aC5odG1sIj5hbHRjcF90Y3AuaDwvYT48L3RkPjwvdHI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNGU2YjNjZjMzYTYxYjZjYWFjOWM4YWMzMGM4NjZmMzcuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNGU2YjNjZjMzYTYxYjZjYWFjOWM4YWMzMGM4NjZmMzcuanMKaW5kZXggMWQ0NDljOS4uYzAzMDJiMSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzRlNmIzY2YzM2E2MWI2Y2FhYzljOGFjMzBjODY2ZjM3LmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl80ZTZiM2NmMzNhNjFiNmNhYWM5YzhhYzMwYzg2NmYzNy5qcwpAQCAtMyw2ICszLDcgQEAKICAgICBbICJhcHBzIiwgImRpcl9mOTI4NDgxMWFjNTk0ZWFmZGMzMTM0ZDVmOGI5NDVjYi5odG1sIiwgImRpcl9mOTI4NDgxMWFjNTk0ZWFmZGMzMTM0ZDVmOGI5NDVjYiIgXSwKICAgICBbICJwcml2IiwgImRpcl80NjBjNTAxYjI0MzJmYzEwN2FkY2IzODExMTgzNWU0OC5odG1sIiwgImRpcl80NjBjNTAxYjI0MzJmYzEwN2FkY2IzODExMTgzNWU0OCIgXSwKICAgICBbICJwcm90IiwgImRpcl9mYTBmMmI3YWMyMDgwNjlmYzhkMjhjMjhhZjM0OWQ4ZC5odG1sIiwgImRpcl9mYTBmMmI3YWMyMDgwNjlmYzhkMjhjMjhhZjM0OWQ4ZCIgXSwKKyAgICBbICJhY2QuaCIsICJhY2RfOGguaHRtbCIsICJhY2RfOGgiIF0sCiAgICAgWyAiYWx0Y3AuaCIsICJhbHRjcF84aC5odG1sIiwgImFsdGNwXzhoIiBdLAogICAgIFsgImFsdGNwX3RjcC5oIiwgImFsdGNwX190Y3BfOGguaHRtbCIsICJhbHRjcF9fdGNwXzhoIiBdLAogICAgIFsgImFsdGNwX3Rscy5oIiwgImFsdGNwX190bHNfOGguaHRtbCIsICJhbHRjcF9fdGxzXzhoIiBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzUzYWRmMGI5ODJkYzg1NDU5OThhYWUzZjI4M2E1YTU4Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNTNhZGYwYjk4MmRjODU0NTk5OGFhZTNmMjgzYTVhNTguaHRtbAppbmRleCAxZDI1NGJhLi44MTgxYWMwIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNTNhZGYwYjk4MmRjODU0NTk5OGFhZTNmMjgzYTVhNTguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNTNhZGYwYjk4MmRjODU0NTk5OGFhZTNmMjgzYTVhNTguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNTZkMmI2ZGRiYjQ0NjMwYjBmZDY2MWFmNjMyMWY5YzQuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl81NmQyYjZkZGJiNDQ2MzBiMGZkNjYxYWY2MzIxZjljNC5odG1sCmluZGV4IDlkMGQ4YjAuLmY0MTNhNmIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl81NmQyYjZkZGJiNDQ2MzBiMGZkNjYxYWY2MzIxZjljNC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl81NmQyYjZkZGJiNDQ2MzBiMGZkNjYxYWY2MzIxZjljNC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl82ODI2N2QxMzA5YTFhZjhlODI5N2VmNGMzZWZiY2RiYS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzY4MjY3ZDEzMDlhMWFmOGU4Mjk3ZWY0YzNlZmJjZGJhLmh0bWwKaW5kZXggMjFkNzYzYy4uNGJiMjg5YiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzY4MjY3ZDEzMDlhMWFmOGU4Mjk3ZWY0YzNlZmJjZGJhLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzY4MjY3ZDEzMDlhMWFmOGU4Mjk3ZWY0YzNlZmJjZGJhLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzZhYTYwNWFkMTgwZTdiMTY2NzY3YmY0Zjg2ODg4YWI1Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNmFhNjA1YWQxODBlN2IxNjY3NjdiZjRmODY4ODhhYjUuaHRtbAppbmRleCA1NjVjNDlkLi5lY2ZlMTYwIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNmFhNjA1YWQxODBlN2IxNjY3NjdiZjRmODY4ODhhYjUuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNmFhNjA1YWQxODBlN2IxNjY3NjdiZjRmODY4ODhhYjUuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfNmIxYjA2ODk2YTg3MGViZmI5Yzg1NGM0YzcxZjRmZjUuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl82YjFiMDY4OTZhODcwZWJmYjljODU0YzRjNzFmNGZmNS5odG1sCmluZGV4IGIyMzEyMTguLmQxODZhNzkgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl82YjFiMDY4OTZhODcwZWJmYjljODU0YzRjNzFmNGZmNS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl82YjFiMDY4OTZhODcwZWJmYjljODU0YzRjNzFmNGZmNS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl84ZGEzOWFkYjJhMTFhZjY2MGJkZDcwNzViNzMyMzg3MC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzhkYTM5YWRiMmExMWFmNjYwYmRkNzA3NWI3MzIzODcwLmh0bWwKaW5kZXggNTlmN2MwYy4uNWQwYWJhMiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzhkYTM5YWRiMmExMWFmNjYwYmRkNzA3NWI3MzIzODcwLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzhkYTM5YWRiMmExMWFmNjYwYmRkNzA3NWI3MzIzODcwLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyXzkwMGU2ZjdmZjkwNjkwY2I4ZWRiNTMzMjNkZDM4ZDgwLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfOTAwZTZmN2ZmOTA2OTBjYjhlZGI1MzMyM2RkMzhkODAuaHRtbAppbmRleCBhZWM1MjBkLi5lZjBhMzBmIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfOTAwZTZmN2ZmOTA2OTBjYjhlZGI1MzMyM2RkMzhkODAuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfOTAwZTZmN2ZmOTA2OTBjYjhlZGI1MzMyM2RkMzhkODAuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYTMyZTExMWVlNjgwNWNmYzYzNDg4ZmQyZDM3ZjIzOTAuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9hMzJlMTExZWU2ODA1Y2ZjNjM0ODhmZDJkMzdmMjM5MC5odG1sCmluZGV4IDYyMjJjZTYuLjFhMzBjNTEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9hMzJlMTExZWU2ODA1Y2ZjNjM0ODhmZDJkMzdmMjM5MC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9hMzJlMTExZWU2ODA1Y2ZjNjM0ODhmZDJkMzdmMjM5MC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMyw2ICsxMDMsOCBAQAogPHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+CiA8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZmlsZXMiIG5hbWU9ImZpbGVzIj48L2E+CiBGaWxlczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJhY2RfOGMuaHRtbCI+YWNkLmM8L2E+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJhdXRvaXBfOGMuaHRtbCI+YXV0b2lwLmM8L2E+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhjLmh0bWwiPmRoY3AuYzwvYT48L3RkPjwvdHI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYTMyZTExMWVlNjgwNWNmYzYzNDg4ZmQyZDM3ZjIzOTAuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYTMyZTExMWVlNjgwNWNmYzYzNDg4ZmQyZDM3ZjIzOTAuanMKaW5kZXggYTU4NjJiMy4uN2UwYTY4ZiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2EzMmUxMTFlZTY4MDVjZmM2MzQ4OGZkMmQzN2YyMzkwLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9hMzJlMTExZWU2ODA1Y2ZjNjM0ODhmZDJkMzdmMjM5MC5qcwpAQCAtMSw1ICsxLDYgQEAKIHZhciBkaXJfYTMyZTExMWVlNjgwNWNmYzYzNDg4ZmQyZDM3ZjIzOTAgPQogWworICAgIFsgImFjZC5jIiwgImFjZF84Yy5odG1sIiwgImFjZF84YyIgXSwKICAgICBbICJhdXRvaXAuYyIsICJhdXRvaXBfOGMuaHRtbCIsICJhdXRvaXBfOGMiIF0sCiAgICAgWyAiZGhjcC5jIiwgImRoY3BfOGMuaHRtbCIsICJkaGNwXzhjIiBdLAogICAgIFsgImV0aGFycC5jIiwgImV0aGFycF84Yy5odG1sIiwgImV0aGFycF84YyIgXSwKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9hODQwYzFlMzAxYjViNWViMWQ1NDliMWY2MDBhODUwNS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2E4NDBjMWUzMDFiNWI1ZWIxZDU0OWIxZjYwMGE4NTA1Lmh0bWwKaW5kZXggMGE4NDU3OC4uZDU1ZTE2YSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2E4NDBjMWUzMDFiNWI1ZWIxZDU0OWIxZjYwMGE4NTA1Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2E4NDBjMWUzMDFiNWI1ZWIxZDU0OWIxZjYwMGE4NTA1Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2FlYmI4ZGNjMTE5NTNkNzhlNjIwYmJlZjBiOWUyMTgzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYWViYjhkY2MxMTk1M2Q3OGU2MjBiYmVmMGI5ZTIxODMuaHRtbAppbmRleCBiZDc5YWRhLi45NWQxMzUyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYWViYjhkY2MxMTk1M2Q3OGU2MjBiYmVmMGI5ZTIxODMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYWViYjhkY2MxMTk1M2Q3OGU2MjBiYmVmMGI5ZTIxODMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYjA4NTZmNmIwZDgwY2NiMjYzYjJmNDE1YzkxZjllMTcuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9iMDg1NmY2YjBkODBjY2IyNjNiMmY0MTVjOTFmOWUxNy5odG1sCmluZGV4IGU1MGM3YWUuLjliYzdlY2EgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9iMDg1NmY2YjBkODBjY2IyNjNiMmY0MTVjOTFmOWUxNy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9iMDg1NmY2YjBkODBjY2IyNjNiMmY0MTVjOTFmOWUxNy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9iNDJiYWZmODlhMWFkYzlhNTdkYTdkZWNiMTgzNWI2Yi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2I0MmJhZmY4OWExYWRjOWE1N2RhN2RlY2IxODM1YjZiLmh0bWwKaW5kZXggZDg4NjMwMS4uMWNjYTFjNSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2I0MmJhZmY4OWExYWRjOWE1N2RhN2RlY2IxODM1YjZiLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2I0MmJhZmY4OWExYWRjOWE1N2RhN2RlY2IxODM1YjZiLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2M2MmFiYTM2ZjY2MzBmZWE1Y2Q3ZmUxYzk0MTg1MGQ0Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYzYyYWJhMzZmNjYzMGZlYTVjZDdmZTFjOTQxODUwZDQuaHRtbAppbmRleCA2ODA0ZWIzLi5lZjQwYjUzIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYzYyYWJhMzZmNjYzMGZlYTVjZDdmZTFjOTQxODUwZDQuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYzYyYWJhMzZmNjYzMGZlYTVjZDdmZTFjOTQxODUwZDQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfYzlhNjc3NjRiZjhhMTJjZjZiNDI3YmI4NTljYmNkMGIuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9jOWE2Nzc2NGJmOGExMmNmNmI0MjdiYjg1OWNiY2QwYi5odG1sCmluZGV4IDk3MGI0YjkuLjkyODc2NjUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9jOWE2Nzc2NGJmOGExMmNmNmI0MjdiYjg1OWNiY2QwYi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9jOWE2Nzc2NGJmOGExMmNmNmI0MjdiYjg1OWNiY2QwYi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9kYTYxZTNlOWEzNTc3NDg4ODdlM2NhOGQ3YzVhMGMxNi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2RhNjFlM2U5YTM1Nzc0ODg4N2UzY2E4ZDdjNWEwYzE2Lmh0bWwKaW5kZXggYWQwNmJlMC4uYmJjODlhYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2RhNjFlM2U5YTM1Nzc0ODg4N2UzY2E4ZDdjNWEwYzE2Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2RhNjFlM2U5YTM1Nzc0ODg4N2UzY2E4ZDdjNWEwYzE2Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2RhOWM2ZjQzZDNjZDAwYmUzZGUyMjRiYWM5MDdhNDI1Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZGE5YzZmNDNkM2NkMDBiZTNkZTIyNGJhYzkwN2E0MjUuaHRtbAppbmRleCBkZjE2OWRkLi4zZjg1MjczIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZGE5YzZmNDNkM2NkMDBiZTNkZTIyNGJhYzkwN2E0MjUuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZGE5YzZmNDNkM2NkMDBiZTNkZTIyNGJhYzkwN2E0MjUuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZGZhY2Q0YjAwNWY2YTc0MzI5NWNkMWQ3NmVmZjc0MjAuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9kZmFjZDRiMDA1ZjZhNzQzMjk1Y2QxZDc2ZWZmNzQyMC5odG1sCmluZGV4IGQ0MjAxMzQuLmZkYTQyMTggMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9kZmFjZDRiMDA1ZjZhNzQzMjk1Y2QxZDc2ZWZmNzQyMC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9kZmFjZDRiMDA1ZjZhNzQzMjk1Y2QxZDc2ZWZmNzQyMC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9lNjhlODE1Nzc0MTg2NmY0NDRlMTdlZGQ3NjRlYmJhZS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2U2OGU4MTU3NzQxODY2ZjQ0NGUxN2VkZDc2NGViYmFlLmh0bWwKaW5kZXggYTdiNjQwZS4uZjE0MDNmOSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2U2OGU4MTU3NzQxODY2ZjQ0NGUxN2VkZDc2NGViYmFlLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2U2OGU4MTU3NzQxODY2ZjQ0NGUxN2VkZDc2NGViYmFlLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2U3ODU2YTZhZWFlYmJjMTI0ZTgwYWQ5NTUwYWVkYmE0Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZTc4NTZhNmFlYWViYmMxMjRlODBhZDk1NTBhZWRiYTQuaHRtbAppbmRleCA3MTc5N2VlLi5iMzliZjEyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZTc4NTZhNmFlYWViYmMxMjRlODBhZDk1NTBhZWRiYTQuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZTc4NTZhNmFlYWViYmMxMjRlODBhZDk1NTBhZWRiYTQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZWQ5MWQzODU2MDMwZjFiNDkzZWNhNTAzZWY1Yjk2ZjkuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9lZDkxZDM4NTYwMzBmMWI0OTNlY2E1MDNlZjViOTZmOS5odG1sCmluZGV4IDgwMzA1NzAuLmFlYTQ3YWYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9lZDkxZDM4NTYwMzBmMWI0OTNlY2E1MDNlZjViOTZmOS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9lZDkxZDM4NTYwMzBmMWI0OTNlY2E1MDNlZjViOTZmOS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mOTI4NDgxMWFjNTk0ZWFmZGMzMTM0ZDVmOGI5NDVjYi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2Y5Mjg0ODExYWM1OTRlYWZkYzMxMzRkNWY4Yjk0NWNiLmh0bWwKaW5kZXggMWZhYjAzNC4uNjVjY2ExNyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2Y5Mjg0ODExYWM1OTRlYWZkYzMxMzRkNWY4Yjk0NWNiLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2Y5Mjg0ODExYWM1OTRlYWZkYzMxMzRkNWY4Yjk0NWNiLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTE3LDggKzExNywxMiBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhoLmh0bWwiPm1kbnMuaDwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sIj5tZG5zX2RvbWFpbi5oPC9hPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3B0c184aC5odG1sIj5tZG5zX29wdHMuaDwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sIj5tZG5zX291dC5oPC9hPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fcHJpdl84aC5odG1sIj5tZG5zX3ByaXYuaDwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Im1xdHRfOGguaHRtbCI+bXF0dC5oPC9hPjwvdGQ+PC90cj4KQEAgLTE1MSwxMSArMTU1LDE1IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9InNudHBfX29wdHNfOGguaHRtbCI+c250cF9vcHRzLmg8L2E+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJ0ZnRwX19jbGllbnRfOGguaHRtbCI+dGZ0cF9jbGllbnQuaDwvYT48L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9InRmdHBfX2NvbW1vbl84aC5odG1sIj50ZnRwX2NvbW1vbi5oPC9hPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtZGVzYzp0ZnRwX19jb21tb25fOGgiPjx0ZCBjbGFzcz0ibWRlc2NMZWZ0Ij4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWRlc2NSaWdodCI+VHJpdmlhbCBGaWxlIFRyYW5zZmVyIFByb3RvY29sIChSRkMgMTM1MCkgPGJyIC8+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJ0ZnRwX19vcHRzXzhoLmh0bWwiPnRmdHBfb3B0cy5oPC9hPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtZGVzYzp0ZnRwX19vcHRzXzhoIj48dGQgY2xhc3M9Im1kZXNjTGVmdCI+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1kZXNjUmlnaHQiPlRyaXZpYWwgRmlsZSBUcmFuc2ZlciBQcm90b2NvbCAoUkZDIDEzNTApIGltcGxlbWVudGF0aW9uIG9wdGlvbnMuIDxiciAvPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0idGZ0cF9fc2VydmVyXzhoLmh0bWwiPnRmdHBfc2VydmVyLmg8L2E+PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1kZXNjOnRmdHBfX3NlcnZlcl84aCI+PHRkIGNsYXNzPSJtZGVzY0xlZnQiPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZGVzY1JpZ2h0Ij5Ucml2aWFsIEZpbGUgVHJhbnNmZXIgUHJvdG9jb2wgKFJGQyAxMzUwKSA8YnIgLz48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPgogPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mOTI4NDgxMWFjNTk0ZWFmZGMzMTM0ZDVmOGI5NDVjYi5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mOTI4NDgxMWFjNTk0ZWFmZGMzMTM0ZDVmOGI5NDVjYi5qcwppbmRleCBhNTQ2MmVhLi5kNmMxM2VlIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZjkyODQ4MTFhYzU5NGVhZmRjMzEzNGQ1ZjhiOTQ1Y2IuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2Y5Mjg0ODExYWM1OTRlYWZkYzMxMzRkNWY4Yjk0NWNiLmpzCkBAIC03LDcgKzcsOSBAQAogICAgIFsgImh0dHBkX29wdHMuaCIsICJodHRwZF9fb3B0c184aC5odG1sIiwgImh0dHBkX19vcHRzXzhoIiBdLAogICAgIFsgImx3aXBlcmYuaCIsICJsd2lwZXJmXzhoLmh0bWwiLCAibHdpcGVyZl84aCIgXSwKICAgICBbICJtZG5zLmgiLCAibWRuc184aC5odG1sIiwgIm1kbnNfOGgiIF0sCisgICAgWyAibWRuc19kb21haW4uaCIsICJtZG5zX19kb21haW5fOGguaHRtbCIsICJtZG5zX19kb21haW5fOGgiIF0sCiAgICAgWyAibWRuc19vcHRzLmgiLCAibWRuc19fb3B0c184aC5odG1sIiwgIm1kbnNfX29wdHNfOGgiIF0sCisgICAgWyAibWRuc19vdXQuaCIsICJtZG5zX19vdXRfOGguaHRtbCIsICJtZG5zX19vdXRfOGgiIF0sCiAgICAgWyAibWRuc19wcml2LmgiLCAibWRuc19fcHJpdl84aC5odG1sIiwgIm1kbnNfX3ByaXZfOGgiIF0sCiAgICAgWyAibXF0dC5oIiwgIm1xdHRfOGguaHRtbCIsICJtcXR0XzhoIiBdLAogICAgIFsgIm1xdHRfb3B0cy5oIiwgIm1xdHRfX29wdHNfOGguaHRtbCIsICJtcXR0X19vcHRzXzhoIiBdLApAQCAtMjQsNiArMjYsOCBAQAogICAgIFsgInNubXB2My5oIiwgInNubXB2M184aC5odG1sIiwgbnVsbCBdLAogICAgIFsgInNudHAuaCIsICJzbnRwXzhoLmh0bWwiLCAic250cF84aCIgXSwKICAgICBbICJzbnRwX29wdHMuaCIsICJzbnRwX19vcHRzXzhoLmh0bWwiLCAic250cF9fb3B0c184aCIgXSwKKyAgICBbICJ0ZnRwX2NsaWVudC5oIiwgInRmdHBfX2NsaWVudF84aC5odG1sIiwgInRmdHBfX2NsaWVudF84aCIgXSwKKyAgICBbICJ0ZnRwX2NvbW1vbi5oIiwgInRmdHBfX2NvbW1vbl84aC5odG1sIiwgInRmdHBfX2NvbW1vbl84aCIgXSwKICAgICBbICJ0ZnRwX29wdHMuaCIsICJ0ZnRwX19vcHRzXzhoLmh0bWwiLCAidGZ0cF9fb3B0c184aCIgXSwKICAgICBbICJ0ZnRwX3NlcnZlci5oIiwgInRmdHBfX3NlcnZlcl84aC5odG1sIiwgInRmdHBfX3NlcnZlcl84aCIgXQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZmEwZjJiN2FjMjA4MDY5ZmM4ZDI4YzI4YWYzNDlkOGQuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mYTBmMmI3YWMyMDgwNjlmYzhkMjhjMjhhZjM0OWQ4ZC5odG1sCmluZGV4IDM4MGUyN2QuLjk4MDlkOWEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mYTBmMmI3YWMyMDgwNjlmYzhkMjhjMjhhZjM0OWQ4ZC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mYTBmMmI3YWMyMDgwNjlmYzhkMjhjMjhhZjM0OWQ4ZC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMyw2ICsxMDMsOCBAQAogPHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+CiA8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZmlsZXMiIG5hbWU9ImZpbGVzIj48L2E+CiBGaWxlczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJhY2RfOGguaHRtbCI+YWNkLmg8L2E+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJhdXRvaXBfOGguaHRtbCI+YXV0b2lwLmg8L2E+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJkaGNwXzhoLmh0bWwiPmRoY3AuaDwvYT48L3RkPjwvdHI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZmEwZjJiN2FjMjA4MDY5ZmM4ZDI4YzI4YWYzNDlkOGQuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZmEwZjJiN2FjMjA4MDY5ZmM4ZDI4YzI4YWYzNDlkOGQuanMKaW5kZXggN2Q5MDhjNS4uNTY3ZDg1MCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2ZhMGYyYjdhYzIwODA2OWZjOGQyOGMyOGFmMzQ5ZDhkLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mYTBmMmI3YWMyMDgwNjlmYzhkMjhjMjhhZjM0OWQ4ZC5qcwpAQCAtMSw1ICsxLDYgQEAKIHZhciBkaXJfZmEwZjJiN2FjMjA4MDY5ZmM4ZDI4YzI4YWYzNDlkOGQgPQogWworICAgIFsgImFjZC5oIiwgInByb3RfMmFjZF84aC5odG1sIiwgbnVsbCBdLAogICAgIFsgImF1dG9pcC5oIiwgInByb3RfMmF1dG9pcF84aC5odG1sIiwgbnVsbCBdLAogICAgIFsgImRoY3AuaCIsICJwcm90XzJkaGNwXzhoLmh0bWwiLCAicHJvdF8yZGhjcF84aCIgXSwKICAgICBbICJkaGNwNi5oIiwgInByb3RfMmRoY3A2XzhoLmh0bWwiLCAicHJvdF8yZGhjcDZfOGgiIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZmIzZjdlNDNmMzlkZGIyMTBiZDE0NDRlNjZkMDU1ZjEuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mYjNmN2U0M2YzOWRkYjIxMGJkMTQ0NGU2NmQwNTVmMS5odG1sCmluZGV4IGVhOWFhMjcuLjE2Y2FkZjkgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mYjNmN2U0M2YzOWRkYjIxMGJkMTQ0NGU2NmQwNTVmMS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mYjNmN2U0M2YzOWRkYjIxMGJkMTQ0NGU2NmQwNTVmMS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mZTIxOWZjYTIwN2I4NzgyMDVjMGRkOTIyNzhkMTE4Yi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2ZlMjE5ZmNhMjA3Yjg3ODIwNWMwZGQ5MjI3OGQxMThiLmh0bWwKaW5kZXggMjkwZTA0Zi4uZjlhNzkzOSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2ZlMjE5ZmNhMjA3Yjg3ODIwNWMwZGQ5MjI3OGQxMThiLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2ZlMjE5ZmNhMjA3Yjg3ODIwNWMwZGQ5MjI3OGQxMThiLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2ZlYmUzYTYzNzkwNzY2NmU4YjI1MzY2YWU2MGVmYzBiLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZmViZTNhNjM3OTA3NjY2ZThiMjUzNjZhZTYwZWZjMGIuaHRtbAppbmRleCAwNzEyMzhiLi43NDVkYTdhIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZmViZTNhNjM3OTA3NjY2ZThiMjUzNjZhZTYwZWZjMGIuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZmViZTNhNjM3OTA3NjY2ZThiMjUzNjZhZTYwZWZjMGIuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDUsNiArMTA1LDEwIEBACiBGaWxlczwvaDI+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhjLmh0bWwiPm1kbnMuYzwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sIj5tZG5zX2RvbWFpbi5jPC9hPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwiPm1kbnNfb3V0LmM8L2E+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDwvZGl2PjwhLS0gY29udGVudHMgLS0+CiA8L2Rpdj48IS0tIGRvYy1jb250ZW50IC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2ZlYmUzYTYzNzkwNzY2NmU4YjI1MzY2YWU2MGVmYzBiLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZGlyX2ZlYmUzYTYzNzkwNzY2NmU4YjI1MzY2YWU2MGVmYzBiLmpzCmluZGV4IGJmMzAzYmIuLmRhNjcwOGQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Rpcl9mZWJlM2E2Mzc5MDc2NjZlOGIyNTM2NmFlNjBlZmMwYi5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kaXJfZmViZTNhNjM3OTA3NjY2ZThiMjUzNjZhZTYwZWZjMGIuanMKQEAgLTEsNCArMSw2IEBACiB2YXIgZGlyX2ZlYmUzYTYzNzkwNzY2NmU4YjI1MzY2YWU2MGVmYzBiID0KIFsKLSAgICBbICJtZG5zLmMiLCAibWRuc184Yy5odG1sIiwgIm1kbnNfOGMiIF0KKyAgICBbICJtZG5zLmMiLCAibWRuc184Yy5odG1sIiwgIm1kbnNfOGMiIF0sCisgICAgWyAibWRuc19kb21haW4uYyIsICJtZG5zX19kb21haW5fOGMuaHRtbCIsICJtZG5zX19kb21haW5fOGMiIF0sCisgICAgWyAibWRuc19vdXQuYyIsICJtZG5zX19vdXRfOGMuaHRtbCIsICJtZG5zX19vdXRfOGMiIF0KIF07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZG5zXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kbnNfOGMuaHRtbAppbmRleCBiODg3ZWRkLi45MWQxZTRjIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kbnNfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kbnNfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kbnNfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Ruc184aC5odG1sCmluZGV4IDViMTliYjEuLjdmOTgyZGIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Ruc184aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Ruc184aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RveHlnZW5fY3Jhd2wuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2RveHlnZW5fY3Jhd2wuaHRtbAppbmRleCBkNDVmM2EzLi45NmIxYmY1IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9kb3h5Z2VuX2NyYXdsLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZG94eWdlbl9jcmF3bC5odG1sCkBAIC0yNiw2ICsyNiw4IEBACiA8YSBocmVmPSJodHRwZF84Yy5odG1sIi8+CiA8YSBocmVmPSJsd2lwZXJmXzhjLmh0bWwiLz4KIDxhIGhyZWY9Im1kbnNfOGMuaHRtbCIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84Yy5odG1sIi8+CiA8YSBocmVmPSJtcXR0XzhjLmh0bWwiLz4KIDxhIGhyZWY9Im5ldGJpb3Nuc184Yy5odG1sIi8+CiA8YSBocmVmPSJzbXRwXzhjLmh0bWwiLz4KQEAgLTU0LDcgKzU2LDcgQEAKIDxhIGhyZWY9InNubXB2M19fbWJlZHRsc184Yy5odG1sIi8+CiA8YSBocmVmPSJzbm1wdjNfX3ByaXZfOGguaHRtbCIvPgogPGEgaHJlZj0ic250cF84Yy5odG1sIi8+Ci08YSBocmVmPSJ0ZnRwX19zZXJ2ZXJfOGMuaHRtbCIvPgorPGEgaHJlZj0idGZ0cF84Yy5odG1sIi8+CiA8YSBocmVmPSJhbHRjcF84Yy5odG1sIi8+CiA8YSBocmVmPSJhbHRjcF9fYWxsb2NfOGMuaHRtbCIvPgogPGEgaHJlZj0iYWx0Y3BfX3RjcF84Yy5odG1sIi8+CkBAIC02Myw2ICs2NSw3IEBACiA8YSBocmVmPSJpbmV0X19jaGtzdW1fOGMuaHRtbCIvPgogPGEgaHJlZj0iaW5pdF84Yy5odG1sIi8+CiA8YSBocmVmPSJpcF84Yy5odG1sIi8+Cis8YSBocmVmPSJhY2RfOGMuaHRtbCIvPgogPGEgaHJlZj0iYXV0b2lwXzhjLmh0bWwiLz4KIDxhIGhyZWY9ImRoY3BfOGMuaHRtbCIvPgogPGEgaHJlZj0iZXRoYXJwXzhjLmh0bWwiLz4KQEAgLTEwMCw2ICsxMDMsOCBAQAogPGEgaHJlZj0ic29ja2V0XzhoLmh0bWwiLz4KIDxhIGhyZWY9ImNvbXBhdF8yc3RkY18yZXJybm9fOGguaHRtbCIvPgogPGEgaHJlZj0ibHdpcF8yZXJybm9fOGguaHRtbCIvPgorPGEgaHJlZj0iYWNkXzhoLmh0bWwiLz4KKzxhIGhyZWY9InByb3RfMmFjZF84aC5odG1sIi8+CiA8YSBocmVmPSJhbHRjcF84aC5odG1sIi8+CiA8YSBocmVmPSJhbHRjcF9fdGNwXzhoLmh0bWwiLz4KIDxhIGhyZWY9ImFsdGNwX190bHNfOGguaHRtbCIvPgpAQCAtMTExLDcgKzExNiw5IEBACiA8YSBocmVmPSJodHRwZF9fb3B0c184aC5odG1sIi8+CiA8YSBocmVmPSJsd2lwZXJmXzhoLmh0bWwiLz4KIDxhIGhyZWY9Im1kbnNfOGguaHRtbCIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwiLz4KIDxhIGhyZWY9Im1kbnNfX29wdHNfOGguaHRtbCIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwiLz4KIDxhIGhyZWY9Im1kbnNfX3ByaXZfOGguaHRtbCIvPgogPGEgaHJlZj0ibXF0dF84aC5odG1sIi8+CiA8YSBocmVmPSJtcXR0X19vcHRzXzhoLmh0bWwiLz4KQEAgLTEyOSw2ICsxMzYsOCBAQAogPGEgaHJlZj0ic25tcHYzXzhoLmh0bWwiLz4KIDxhIGhyZWY9InNudHBfOGguaHRtbCIvPgogPGEgaHJlZj0ic250cF9fb3B0c184aC5odG1sIi8+Cis8YSBocmVmPSJ0ZnRwX19jbGllbnRfOGguaHRtbCIvPgorPGEgaHJlZj0idGZ0cF9fY29tbW9uXzhoLmh0bWwiLz4KIDxhIGhyZWY9InRmdHBfX29wdHNfOGguaHRtbCIvPgogPGEgaHJlZj0idGZ0cF9fc2VydmVyXzhoLmh0bWwiLz4KIDxhIGhyZWY9ImFyY2hfOGguaHRtbCIvPgpAQCAtMjI4LDYgKzIzNyw3IEBACiA8YSBocmVmPSJ1cGdyYWRpbmcuaHRtbCIvPgogPGEgaHJlZj0iY2hhbmdlbG9nLmh0bWwiLz4KIDxhIGhyZWY9ImNvbnRyaWIuaHRtbCIvPgorPGEgaHJlZj0iY21ha2UuaHRtbCIvPgogPGEgaHJlZj0icGl0ZmFsbHMuaHRtbCIvPgogPGEgaHJlZj0ibWVtX2Vyci5odG1sIi8+CiA8YSBocmVmPSJidWdzLmh0bWwiLz4KQEAgLTI3OCw2ICsyODgsNyBAQAogPGEgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sIi8+CiA8YSBocmVmPSJncm91cF9faXA0YWRkci5odG1sIi8+CiA8YSBocmVmPSJncm91cF9faXA2YWRkci5odG1sIi8+Cis8YSBocmVmPSJncm91cF9fYWNkLmh0bWwiLz4KIDxhIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwiLz4KIDxhIGhyZWY9Imdyb3VwX19pZ21wLmh0bWwiLz4KQEAgLTMxOCw2ICszMjksNyBAQAogPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX3ZlcnNpb24uaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX25ldGlmX19mbGFncy5odG1sIi8+Cis8YSBocmVmPSJncm91cF9fbmV0aWZhcGlfX2FycC5odG1sIi8+CiA8YSBocmVmPSJncm91cF9fbmV0aWZhcGlfX2RoY3A0Lmh0bWwiLz4KIDxhIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fYXV0b2lwLmh0bWwiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzLmh0bWwiLz4KQEAgLTMzNyw2ICszNDksNyBAQAogPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3Jhdy5odG1sIi8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sIi8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYXV0b2lwLmh0bWwiLz4KKzxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hY2QuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX21pYjIuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX211bHRpY2FzdC5odG1sIi8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19faWdtcC5odG1sIi8+CkBAIC0zNzMsNiArMzg2LDggQEAKIDxhIGhyZWY9Imdyb3VwX196ZXBpZi5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3RfX2x3aXBlcmZfX3NldHRpbmdzLmh0bWwiLz4KIDxhIGhyZWY9InN0cnVjdF9fbHdpcGVyZl9fc3RhdGVfX3RjcC5odG1sIi8+Cis8YSBocmVmPSJzdHJ1Y3RhY2QuaHRtbCIvPgorPGEgaHJlZj0ic3RydWN0YWx0Y3BfX2FsbG9jYXRvcl9fcy5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3RhdXRvaXAuaHRtbCIvPgogPGEgaHJlZj0ic3RydWN0YnJpZGdlaWZfX2luaXRkYXRhX19zLmh0bWwiLz4KQEAgLTM5Myw2ICs0MDgsNyBAQAogPGEgaHJlZj0ic3RydWN0aWNtcDZfX2VjaG9fX2hkci5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3RpY21wNl9faGRyLmh0bWwiLz4KIDxhIGhyZWY9InN0cnVjdGljbXBfX2VjaG9fX2hkci5odG1sIi8+Cis8YSBocmVmPSJzdHJ1Y3RpY21wX19oZHIuaHRtbCIvPgogPGEgaHJlZj0ic3RydWN0aWVlZV9fODAyMTU0X19oZHIuaHRtbCIvPgogPGEgaHJlZj0ic3RydWN0aWdtcF9fZ3JvdXAuaHRtbCIvPgogPGEgaHJlZj0ic3RydWN0aWdtcF9fbXNnLmh0bWwiLz4KQEAgLTQxNCw5ICs0MzAsMTIgQEAKIDxhIGhyZWY9InN0cnVjdGx3aXBfX2N5Y2xpY19fdGltZXIuaHRtbCIvPgogPGEgaHJlZj0ic3RydWN0bHdpcF9fc2VsZWN0X19jYi5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3Rsd2lwX19zb2NrLmh0bWwiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2RlbGF5ZWRfX21zZy5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX3JlcXVlc3QuaHRtbCIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fcnJfX2luZm8uaHRtbCIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3RtZW0uaHRtbCIvPgpAQCAtNTkzLDEyICs2MTIsMTQgQEAKIDxhIGhyZWY9Imdsb2JhbHNfZC5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX2UuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19mLmh0bWwiLz4KKzxhIGhyZWY9Imdsb2JhbHNfZy5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX2guaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19pLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfbC5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX20uaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19uLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfcC5odG1sIi8+Cis8YSBocmVmPSJnbG9iYWxzX3EuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19yLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfcy5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX3QuaHRtbCIvPgpAQCAtNjA4LDYgKzYyOSw3IEBACiA8YSBocmVmPSJnbG9iYWxzX2Z1bmNfYi5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX2Z1bmNfZC5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX2Z1bmNfZS5odG1sIi8+Cis8YSBocmVmPSJnbG9iYWxzX2Z1bmNfZy5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX2Z1bmNfaC5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX2Z1bmNfaS5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX2Z1bmNfbC5odG1sIi8+CkBAIC02NDAsNiArNjYyLDcgQEAKIDxhIGhyZWY9Imdsb2JhbHNfdHlwZS5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX3R5cGUuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc190eXBlLmh0bWwiLz4KKzxhIGhyZWY9Imdsb2JhbHNfdHlwZS5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX2VudW0uaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19lbnVtLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfZW51bS5odG1sIi8+CkBAIC02NjgsMTEgKzY5MSwyMCBAQAogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX20uaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX24uaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3AuaHRtbCIvPgorPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3EuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3IuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3MuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3QuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3UuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3ouaHRtbCIvPgorPGEgaHJlZj0iYWNkXzhjLmh0bWwiLz4KKzxhIGhyZWY9ImFjZF84Yy5odG1sI2E4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSIvPgorPGEgaHJlZj0iYWNkXzhjLmh0bWwjYWE5MmUyMTQxMGQwZjBkMzU3YWI5MTY2Y2RhMjQ5MzdhIi8+Cis8YSBocmVmPSJhY2RfOGguaHRtbCIvPgorPGEgaHJlZj0iYWNkXzhoLmh0bWwjYThkZGYzZTFjZmE4ZjVkNjc0ZDZjZTAwYzJmN2Q4NDFlIi8+Cis8YSBocmVmPSJhY2RfOGguaHRtbCNhYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiLz4KKzxhIGhyZWY9ImFjZF84aC5odG1sI2FhY2U2ZGEwYjBkYWNkNzdhOWQ2YmQxMWY0MjRmZmE4MiIvPgorPGEgaHJlZj0iYWNkXzhoLmh0bWwjYWJiNDQ2NDA0NzUyZjU2YjAyOGVhZmE4MzAyZGI5NTVmIi8+CiA8YSBocmVmPSJhbHRjcF84Yy5odG1sIi8+CiA8YSBocmVmPSJhbHRjcF84Yy5odG1sI2FhNzRjOWZjMzU4Y2ZmZWViNzMxMWI0MjEyYjBkNmZjNyIvPgogPGEgaHJlZj0iYWx0Y3BfOGMuaHRtbCNhZmQ3ZjZiNjYwMmU4OWNmZjUxZjhhOGVhMDMxNTMyMWQiLz4KQEAgLTcwMiw2ICs3MzQsNyBAQAogPGEgaHJlZj0iYWx0Y3BfX3Rsc19fbWJlZHRsc19fbWVtXzhoLmh0bWwiLz4KIDxhIGhyZWY9ImFsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguaHRtbCIvPgogPGEgaHJlZj0iYWx0Y3BfX3Rsc19fbWJlZHRsc19fb3B0c184aC5odG1sI2ExMjI2MmJlODRhYjZhMDRlMmFmZjdjYTE1MjMyODMwOCIvPgorPGEgaHJlZj0iYWx0Y3BfX3Rsc19fbWJlZHRsc19fb3B0c184aC5odG1sI2ExMmFiYTYxNTg2YmQ3MWNiNDJiMDkyNWI5MjExYjM2NiIvPgogPGEgaHJlZj0iYWx0Y3BfX3Rsc19fbWJlZHRsc19fb3B0c184aC5odG1sI2ExYzhhM2YzN2Y4ZWRlNzQ4MzViMDNlZWRjZGM0MTk3MyIvPgogPGEgaHJlZj0iYWx0Y3BfX3Rsc19fbWJlZHRsc19fb3B0c184aC5odG1sI2E0OTE3ZGJjMDBmNDNmODhlYjcwM2M4YmE4OWJkMzdmNiIvPgogPGEgaHJlZj0iYWx0Y3BfX3Rsc19fbWJlZHRsc19fb3B0c184aC5odG1sI2E2NmVmZjcxODkwMTUzMTY2NTc4YjBiNzhkNzgwYWM1MCIvPgpAQCAtODAzLDI1ICs4MzYsMjEgQEAKIDxhIGhyZWY9ImFwcHNfMnNubXBfOGguaHRtbCNhZmE2NjVjZGMwMmNjZDVlZTlmZTBjNGNiMWI3OTIxODYiLz4KIDxhIGhyZWY9ImFyY2hfOGguaHRtbCIvPgogPGEgaHJlZj0iYXV0b2lwXzhjLmh0bWwiLz4KLTxhIGhyZWY9ImF1dG9pcF84Yy5odG1sI2ExMWRmN2EyMGQ1MjY4MGNkOGMxYzE4ZmJhMmI5MWU5ZSIvPgotPGEgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ii8+Ci08YSBocmVmPSJhdXRvaXBfOGMuaHRtbCNhNjM0NTM1MTU2Y2MxYThjZjlmMDRkM2Q1Yzc0ZjhhNTkiLz4KLTxhIGhyZWY9ImF1dG9pcF84Yy5odG1sI2E3NDZmYzFkN2RiMWJmMTYxN2FmYWUxNjZjOWQ5MmMyZCIvPgotPGEgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYWNhZjI3OTMzMjVjNjBkYzQ1MzFjMjFhM2ZkNTVjMTZlIi8+Cis8YSBocmVmPSJhdXRvaXBfOGMuaHRtbCNhNmRlOTdiN2RjZDk4ZjkwMzlkNWMxYWQxMWMyNTdkNjIiLz4KIDxhIGhyZWY9ImF1dG9pcF84Yy5odG1sI2FjZWM3NTA2OWY2ZTZlY2JlMjAwYzU2OTFlNTZlY2Q0MyIvPgorPGEgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYWYyYTM2YWVlOTZjYmRmOGY0YThmMWU2OWM5MWZmNDI1Ii8+Cis8YSBocmVmPSJhdXRvaXBfOGMuaHRtbCNhZjkzNTQ0YzQ5ZjJjMjRiOTVhMzk4MTM1MWQwMjMwNTYiLz4KIDxhIGhyZWY9ImF1dG9pcF84aC5odG1sIi8+Ci08YSBocmVmPSJhdXRvaXBfOGguaHRtbCNhMTFkZjdhMjBkNTI2ODBjZDhjMWMxOGZiYTJiOTFlOWUiLz4KLTxhIGhyZWY9ImF1dG9pcF84aC5odG1sI2ExYjRmMGM1M2RhMTczOTVkOWRlOTJhODU3MDhhMWJiOSIvPgotPGEgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYTc0NmZjMWQ3ZGIxYmYxNjE3YWZhZTE2NmM5ZDkyYzJkIi8+Ci08YSBocmVmPSJhdXRvaXBfOGguaHRtbCNhODk4NjkxOWE0NTJhYjc3ZWVjOWExOTlmZjY2NjhlOTIiLz4KLTxhIGhyZWY9ImF1dG9pcF84aC5odG1sI2FhZWI0Yjc3OGZjZTA3OGJlZTg0MTQ0YWI1MDkxNmIxNSIvPgotPGEgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYWNhZjI3OTMzMjVjNjBkYzQ1MzFjMjFhM2ZkNTVjMTZlIi8+Cis8YSBocmVmPSJhdXRvaXBfOGguaHRtbCNhNmRlOTdiN2RjZDk4ZjkwMzlkNWMxYWQxMWMyNTdkNjIiLz4KKzxhIGhyZWY9ImF1dG9pcF84aC5odG1sI2FmMmEzNmFlZTk2Y2JkZjhmNGE4ZjFlNjljOTFmZjQyNSIvPgorPGEgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYWY5MzU0NGM0OWYyYzI0Yjk1YTM5ODEzNTFkMDIzMDU2Ii8+CiA8YSBocmVmPSJicmlkZ2VpZl84Yy5odG1sIi8+CiA8YSBocmVmPSJicmlkZ2VpZl84aC5odG1sIi8+CiA8YSBocmVmPSJicmlkZ2VpZl9fZmRiXzhjLmh0bWwiLz4KIDxhIGhyZWY9ImJyaWRnZWlmX19vcHRzXzhoLmh0bWwiLz4KIDxhIGhyZWY9ImJ1Z3MuaHRtbCIvPgogPGEgaHJlZj0iY2hhbmdlbG9nLmh0bWwiLz4KKzxhIGhyZWY9ImNtYWtlLmh0bWwiLz4KIDxhIGhyZWY9ImNvbXBhdF8ycG9zaXhfMmFycGFfMmluZXRfOGguaHRtbCIvPgogPGEgaHJlZj0iY29tcGF0XzJwb3NpeF8ybmV0ZGJfOGguaHRtbCIvPgogPGEgaHJlZj0iY29tcGF0XzJzdGRjXzJlcnJub184aC5odG1sIi8+CkBAIC04NTIsMTAgKzg4MSw4IEBACiA8YSBocmVmPSJkaGNwNl84aC5odG1sI2FmMGY0N2FhYzNjMDRjODRhNzE0M2ZhNjkyNWU5ZmRiYSIvPgogPGEgaHJlZj0iZGhjcDZfOGguaHRtbCNhZmRkNjkzMjdkYzdkOWY1Y2M0ZjAyOWQ3MDZmNjBjOGYiLz4KIDxhIGhyZWY9ImRoY3BfOGMuaHRtbCIvPgotPGEgaHJlZj0iZGhjcF84Yy5odG1sI2EwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiIvPgotPGEgaHJlZj0iZGhjcF84Yy5odG1sI2EwNThiNzFlMWQyNmIzNzU4YjI5ZDE2ZDlmODkyYzhjYyIvPgotPGEgaHJlZj0iZGhjcF84Yy5odG1sI2ExZmMwYTk0ZTBiOTRmMTNjNWQzMDIwMThmN2VjYjUzNSIvPgotPGEgaHJlZj0iZGhjcF84Yy5odG1sI2E1YWJkMjMyNDk2MDYzYmRkY2JjNjY5MmMwZThmOWMxZiIvPgorPGEgaHJlZj0iZGhjcF84Yy5odG1sI2EyZmQzMzcyMjg1OTA1NGVhOTMyZmYwNWZmNjJkZWRhYSIvPgorPGEgaHJlZj0iZGhjcF84Yy5odG1sI2EzM2YzMDZkYTU3NWY4YTQzNzk5NmQwNzNiMzc0ZGY4MiIvPgogPGEgaHJlZj0iZGhjcF84Yy5odG1sI2E2MDFkOTdmYWEyNGZhNzI4OTI0NGJiNDUyZjA1MjA0NSIvPgogPGEgaHJlZj0iZGhjcF84Yy5odG1sI2E2M2U5ZWM0NTE3YjgwZDg1NzZmMjE4ZDkwNWUzMWE5YiIvPgogPGEgaHJlZj0iZGhjcF84Yy5odG1sI2E4YzNiNTg0ZDIyM2I5OTViNDg2MTNhZDk2Y2I3NzZhMCIvPgpAQCAtODcwLDE2ICs4OTcsMTcgQEAKIDxhIGhyZWY9ImRoY3BfOGMuaHRtbCNhOGMzYjU4NGQyMjNiOTk1YjQ4NjEzYWQ5NmNiNzc2YTBhY2Y3NGQzNmE3YzBhNGUxOTQ5ZDU1ODdjNmZhZjAxZmQiLz4KIDxhIGhyZWY9ImRoY3BfOGMuaHRtbCNhOGMzYjU4NGQyMjNiOTk1YjQ4NjEzYWQ5NmNiNzc2YTBhZDZiZWE4NTE3NzE4ZjkwMWZhODFlZmU2MDBlYmJmYjgiLz4KIDxhIGhyZWY9ImRoY3BfOGMuaHRtbCNhOGMzYjU4NGQyMjNiOTk1YjQ4NjEzYWQ5NmNiNzc2YTBhZWIzM2FlODc5NDgwNWZkMmIzNDM0ZTVkZDNmNzUwM2MiLz4KKzxhIGhyZWY9ImRoY3BfOGMuaHRtbCNhYTI5ZDAyMDU1OGIzN2IyOWQ1ZDVhZTUwZGZlYjBjODgiLz4KIDxhIGhyZWY9ImRoY3BfOGMuaHRtbCNhYTUyYzJiNjRlZjQyZmJhZDg0YTNiY2Q1ODA1MmNhYWIiLz4KIDxhIGhyZWY9ImRoY3BfOGMuaHRtbCNhZDZkZTljNTEyMDY1NDQ1NGEzMzBiZjVkZTUzYzQ4MzUiLz4KIDxhIGhyZWY9ImRoY3BfOGMuaHRtbCNhZDc0ODA4ODNkNjRmM2Q2ZjA4M2M4YWE5MzNiNWUzY2IiLz4KIDxhIGhyZWY9ImRoY3BfOGMuaHRtbCNhZTI0YTI1MjkzNzIyMTgzMjdhYjljYjY1OTIwNDFjODUiLz4KIDxhIGhyZWY9ImRoY3BfOGguaHRtbCIvPgotPGEgaHJlZj0iZGhjcF84aC5odG1sI2EwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiIvPgotPGEgaHJlZj0iZGhjcF84aC5odG1sI2ExZmMwYTk0ZTBiOTRmMTNjNWQzMDIwMThmN2VjYjUzNSIvPgorPGEgaHJlZj0iZGhjcF84aC5odG1sI2EyZmQzMzcyMjg1OTA1NGVhOTMyZmYwNWZmNjJkZWRhYSIvPgogPGEgaHJlZj0iZGhjcF84aC5odG1sI2EzNzUxY2M1ZGFhMDg3NWQ0MTVlYmFjZDhhZDY3NWYxZSIvPgogPGEgaHJlZj0iZGhjcF84aC5odG1sI2E2MDFkOTdmYWEyNGZhNzI4OTI0NGJiNDUyZjA1MjA0NSIvPgogPGEgaHJlZj0iZGhjcF84aC5odG1sI2E3YTI2MjA5ZjUyZWViZThkZWQ0NTdhZTE0MWRmNDAzZiIvPgorPGEgaHJlZj0iZGhjcF84aC5odG1sI2FhODVkNjYxYzdlMTYwOTIxYzA0OTdlN2JhYTg5MmI2NyIvPgogPGEgaHJlZj0iZGhjcF84aC5odG1sI2FhOTIyODRmYWEwOTlkYWM0MzMxYzFmYzBiOTk3ZGFiYyIvPgogPGEgaHJlZj0iZGhjcF84aC5odG1sI2FkNzQ4MDg4M2Q2NGYzZDZmMDgzYzhhYTkzM2I1ZTNjYiIvPgogPGEgaHJlZj0iZGhjcF84aC5odG1sI2FkODRiOGY0ZGVlYzQyMWJiZjZmZDg1ZThmYWUwNDdkNiIvPgpAQCAtOTM1LDcgKzk2Myw5IEBACiA8YSBocmVmPSJldGhhcnBfOGMuaHRtbCNhM2U1NmZhY2VkOTY4NDFlNjE1Zjg4ZGQ1N2QxYjJiMTUiLz4KIDxhIGhyZWY9ImV0aGFycF84Yy5odG1sI2E1NDBhNTUwNjk3OTY5M2VmOWFjNDQ5NmRiOWJmYTdkNiIvPgogPGEgaHJlZj0iZXRoYXJwXzhjLmh0bWwjYTY1NGY0ZGFkNzFmN2UyYmM0ODIwMDk0NjQ4ZjM3YTI2Ii8+Cis8YSBocmVmPSJldGhhcnBfOGMuaHRtbCNhN2M0MWJhOGIxNDVmYTRkMDZmOGQ2YWYzZGY0NGM0ZmYiLz4KIDxhIGhyZWY9ImV0aGFycF84Yy5odG1sI2E5NmY4Nzg3Y2E2MjNlNzA0ZGExZDMyY2E3ZGQ2ZDZkOSIvPgorPGEgaHJlZj0iZXRoYXJwXzhjLmh0bWwjYWFjN2Q1MDQ4YTgxZWYxYzYzYjE4ZDc2OTcwMGY0ODk5Ii8+CiA8YSBocmVmPSJldGhhcnBfOGMuaHRtbCNhYjkzZGY3Y2NiMjY0OTYxMDBkNDUxMzc1NDFlODYzYzgiLz4KIDxhIGhyZWY9ImV0aGFycF84Yy5odG1sI2FjNzE1MTVhNmYxNDBiMjVkZTQ5ZTliZjQzMmIyYmIyYSIvPgogPGEgaHJlZj0iZXRoYXJwXzhjLmh0bWwjYWUxODA3NzJlMzEzNDZhMGFmZWI3MDdhZDE3MmRkMTljIi8+CkBAIC0xMDE4LDYgKzEwNDgsNyBAQAogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX20uaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX24uaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3AuaHRtbCIvPgorPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3EuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3IuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3MuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19kZWZzX3QuaHRtbCIvPgpAQCAtMTAzMSw2ICsxMDYyLDcgQEAKIDxhIGhyZWY9Imdsb2JhbHNfZnVuY19iLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfZnVuY19kLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfZnVuY19lLmh0bWwiLz4KKzxhIGhyZWY9Imdsb2JhbHNfZnVuY19nLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfZnVuY19oLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfZnVuY19pLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfZnVuY19sLmh0bWwiLz4KQEAgLTEwNDIsMTIgKzEwNzQsMTQgQEAKIDxhIGhyZWY9Imdsb2JhbHNfZnVuY190Lmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfZnVuY191Lmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfZnVuY196Lmh0bWwiLz4KKzxhIGhyZWY9Imdsb2JhbHNfZy5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX2guaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19pLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfbC5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX20uaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19uLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfcC5odG1sIi8+Cis8YSBocmVmPSJnbG9iYWxzX3EuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc19yLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfcy5odG1sIi8+CiA8YSBocmVmPSJnbG9iYWxzX3QuaHRtbCIvPgpAQCAtMTA1NSw3ICsxMDg5LDE1IEBACiA8YSBocmVmPSJnbG9iYWxzX3UuaHRtbCIvPgogPGEgaHJlZj0iZ2xvYmFsc192YXJzLmh0bWwiLz4KIDxhIGhyZWY9Imdsb2JhbHNfei5odG1sIi8+Cis8YSBocmVmPSJncm91cF9fYWNkLmh0bWwiLz4KKzxhIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTE1ODg1NmJmMTM5Y2IyNzYxODM3ZGRmYTA3MzAzYmRjIi8+Cis8YSBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyIvPgorPGEgaHJlZj0iZ3JvdXBfX2FjZC5odG1sI2dhMjg3MmZhMzc1ZjljZDhmNWIwOTU2MzlkNjUyZjZiZmYiLz4KKzxhIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTJjYTJlMmRiYjk3MTNmOTA1MTVkNDQzZGM2OTFiNWNiIi8+Cis8YSBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2EzNmRhMmIyMzk1MWExNGNhM2M5MmY1ZTc4ZGIyZjFiNyIvPgorPGEgaHJlZj0iZ3JvdXBfX2FjZC5odG1sI2dhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiLz4KIDxhIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sIi8+Cis8YSBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ii8+CiA8YSBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTBjMzE3MmQwYmZlNDUyNTk5ZTI0MmVhMmU0NjkyMzE5Ii8+CiA8YSBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTE5N2EzM2FmMDM4NTU2YTA0ZDhmMjdjNzAzM2Q3NzFmIi8+CiA8YSBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTI2OWJlZWFmN2Q4MjY0YjZmZjAyMzMzYmNjN2M3YWIwIi8+CkBAIC0xMDgwLDIzICsxMTIyLDI5IEBACiA8YSBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYWZmYzcyYjlkYzg1YmIwYTllODNkMDQ5MjFkNGM3YmNkIi8+CiA8YSBocmVmPSJncm91cF9fYWx0Y3BfX2FwaS5odG1sIi8+CiA8YSBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sIi8+Cis8YSBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhMWY2MGIxMmE2YTQ0NDAyMTRiN2JjZjJlM2JhNDMxMjYiLz4KKzxhIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E0YWVkNGFhNTVkMGUxYjE1ZjQxMTg4NjNjZWEwNmQxOCIvPgogPGEgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTRkY2NiZDg2MWMwM2E5YzA5ZWFlNjc5OWRhMDA0NTk3Ii8+CiA8YSBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhNjBiNDYzNWM4MGI4MzJhOGMzYjMzMmZkZWRlNjlkNWUiLz4KIDxhIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E3NTY3NWNjZWMxNDJkMTdmYzA2OTViNDI1ZjNlYzFjMiIvPgogPGEgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTdiM2MxMWM4YTI3M2Q2OGFjYzMzMmM1NWU2YjM4MTcwIi8+Cis8YSBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhODI3Yzc2YTBiZGRjNDkyM2I5YTE3YzgxM2UxMzg5MWUiLz4KIDxhIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E4NWQyMGI0ZGMzMjEzNDJjZjA5YWQ5MzA4NjMwOWJiNyIvPgogPGEgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYThmYjhhOTJmYTNmODQxNzAwNTBkZGFiMjg4OGI5MTQ1Ii8+Cis8YSBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhOTA2ZWVmY2VmNjZlOWRkMmI0M2MzMzkyNzA0OTA1ZjUiLz4KKzxhIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FhMzc2NDliZjI0ZWJlYTIzNWE4ZTNlOGY1MGI5ODMxZiIvPgogPGEgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWE1MjdiNzU2YWQ2NjczYTE5Y2M3ODI4NzAyNmM3NjVjIi8+CiA8YSBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhYjBiZGZkMmVkZTBkZjRkNDdiNmUxMmNjYWMyYjE0YmMiLz4KIDxhIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FiNmE3MTc0NDZhZjkzMTk0OWJjM2UwZGFjZWIwOTBjOCIvPgorPGEgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWU2YzNjZjcyZmNkMjllNmVhNGM3NDE4MTM3MDQyMGMzIi8+CiA8YSBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhZTZmNTIzNzBiNjJiMGY0YmE4ZDM3M2M1MTg2YzllN2UiLz4KLTxhIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FmNmVkMTMyNzEzOTQzNzFjYzg5ZDcwZWY1MTI4YzQxMSIvPgogPGEgaHJlZj0iZ3JvdXBfX2FwaS5odG1sIi8+CiA8YSBocmVmPSJncm91cF9fYXBwcy5odG1sIi8+CiA8YSBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwiLz4KIDxhIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCNnYTE0NjFmNTgyNmViZWZjMDUwZTBkNjMwMTM4MThkMWU4Ii8+CiA8YSBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCIvPgogPGEgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhNThhNGRjZTY1OGRkMTI2M2U4NGViOTgyZjYyNTg3ZDQiLz4KKzxhIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCNnYWMwYzk4MDM1Nzk1NTAwZWRlNDY0YWE0YWYyNTE1ZjMwIi8+CiA8YSBocmVmPSJncm91cF9fYnJpZGdlaWYuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX2JyaWRnZWlmLmh0bWwjZ2EyM2NjMmM1ZjhmY2NlZmM0NzAwOTM4NDBjYzUzNzI3YyIvPgogPGEgaHJlZj0iZ3JvdXBfX2JyaWRnZWlmLmh0bWwjZ2EzZDQxYzc5MDViNjFhZWYzYTNiOGM2MWIzYWY3ODc5ZiIvPgpAQCAtMTIwNyw2ICsxMjU1LDcgQEAKIDxhIGhyZWY9Imdyb3VwX19odHRwZC5odG1sI2dhZjg4ZGFjYzRmMThkMjk5MDg0Y2FiNzUyNTIwMDEzMTkiLz4KIDxhIGhyZWY9Imdyb3VwX19odHRwZC5odG1sI2dhZmFlZGIxOTExYTgzODU0YjFlOTgzNTEzMmRiNjQ0MDkiLz4KIDxhIGhyZWY9Imdyb3VwX19odHRwZF9fb3B0cy5odG1sIi8+Cis8YSBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTAwNmJhYTcyMTljZmY1ZWUwMmY1YTE0ZWY3ZDdjODlkIi8+CiA8YSBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTA1NGRiM2YwODA3MTU5NDI5Njc5NjljNmFlMzBiYjZhIi8+CiA8YSBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTBiZDBmOWE4OTQyM2ZiM2JiZmVhNGU0YzYxNDFhZTQzIi8+CiA8YSBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTBkNTA3NDk2NWVmZDQwNzg2MTgyMjg3ODk1ZmViNjkxIi8+CkBAIC0xMjI5LDYgKzEyNzgsNyBAQAogPGEgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2E4ZGJlNjFhMzUyMjhkYTBlNzM2NWEwODgxOTcxOTFiOCIvPgogPGEgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2E5NzU5NjFhNmQyMmQxYTA3NzExOGZiODVkZmVjODA5YSIvPgogPGEgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FhMjdmN2M1NDUwMzkyZDEwYWVlZDAzM2NhODc4Y2NlMyIvPgorPGEgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FhMzY0OGE5ZmRlZmUzYWIxYzg5MGI3MTVhNDc4NjQyOSIvPgogPGEgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FhYmQxZjYzMTlkMDRiOGQ1ZjJjOTMyNzA3OTRkNTE4MiIvPgogPGEgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FiYTJkNGNmZTRjMWY1YmRiZTM3YjMzOTA4NGE3ZDQ2NiIvPgogPGEgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FiYjEzMjE5NDk1YTgxM2ZjZWFhZmE5NTRhMjM4YTkyNCIvPgpAQCAtMTMzNSw5ICsxMzg1LDEwIEBACiA8YSBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhODcyN2MwODFiNmE4MDk5Mjg4MWQ0ODFkMDY4MGRiNzgiLz4KIDxhIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FhMDkwZTU0ZjYzMmM4NTEyYTc5OTEzMDdlMDExYzFiOSIvPgogPGEgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWE1MzMyYmIzYjcwYzFhOWFjYmExYmVhM2VhMGVjYjkwIi8+Cis8YSBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhYmM2ZDVmODMzYjJhYmVmMzFhYTYwMmRjMTFhY2UwYTkiLz4KKzxhIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FjMDFkMGJhZDBhNjgyZGNjMjM5YmEzZDU2OTVlMDY0OCIvPgogPGEgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWMzZWM1Zjk0ZTFjZDYyYjEyMzdlZmNhMzcyM2RjMDZlIi8+CiA8YSBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhYzgzZjNlN2M4ZDY1ZDNjNzg0YmZmYzlkZWMyOWI3MGMiLz4KLTxhIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FjYmI4ZTFhNzUwNWQ5NzcyMTgxZGVmYTBlNzViOGRhOSIvPgogPGEgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWQ5NjNiZjNlOTY5NWJhODk4MjcxZTMxNDk3NWY1Yzk3Ii8+CiA8YSBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhZTAyNDlkYjZjZDI2ODdmMmRiYzQ0NWU3Nzc4ZDM3YWQiLz4KIDxhIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FlNjc3YTY1OTcwZjRiNjY3MTU2YjI1NmRkOWE0OTI0YiIvPgpAQCAtMTM1MSwxMCArMTQwMiwyMyBAQAogPGEgaHJlZj0iZ3JvdXBfX2lwNmFkZHIuaHRtbCNnYTUxODFkMmNiNmI5MjU0ZWI1YWQ0MTM3ZjdiMzYzNWEwIi8+CiA8YSBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhOTUzY2RkMjU5Mjc2NGJhMmU2ZTAyMWFlYTM1MGFkNDMiLz4KIDxhIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCIvPgorPGEgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhMDA4YzljOTJkNzcwY2MwMzBlYTA1NGU2YjI1OTgzNWEiLz4KKzxhIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTBmYzhiZjY2NjI4MDkyNzQ3NTA4Njg2ODNiM2E0MjJlIi8+CiA8YSBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2ExYzhjMTNjYzJmZWViMDRjY2Y3YWIxZDU5MmM0N2IwNCIvPgorPGEgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhMjE3MGQzZWUxM2RkMjI3MjIyMjIyMjhlN2IxYzU3NTIiLz4KKzxhIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTI3OTExODg5MGU2YTkwYWE3NDAwNTFmYjhiMGNjNWY0Ii8+CiA8YSBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EzMzVhOGM5ZGY2NjMxOWU4OGExYTUyOTA0N2NlMGExZSIvPgorPGEgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhMzNiYzA3OWJhYWY1MTNhOWE3MzgxYjk1MzFhMWY2NTMiLz4KKzxhIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTNhMjEyM2YwYmJmNmZlODQzYzg1NDJlMzQ5YzY4MGViIi8+CiA8YSBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2E0ZGU3MGZkZDdmZDM2YzViNmVhZWQ4Yjg1NWQ1ZjE1MSIvPgorPGEgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhNWI0MDE1OGJkZmZhNGIwYzgxYzRlZTc3MDY2ZTZiMjgiLz4KKzxhIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3Ii8+Cis8YSBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2FhMzM0NTcwNmUzYWE4YjMyZGQ2MzBjMTk1YjA1M2U3NSIvPgogPGEgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhYWMyZGNjMGUzNWViNWNmNmRmOWM0N2JhM2MzY2RlZWYiLz4KKzxhIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWJlNDNiMTU0NTMzYjczNTg1YzRlNThmNTY4MzcwZWRlIi8+Cis8YSBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2FjZDhmNWFhMTUxY2ZmOTY2ZmQyODM2OGI4NWYzOGMwNSIvPgorPGEgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhZDFiYmJlNGM5M2VhMjM2ODY2M2U5MDgxNDk1M2I5MjkiLz4KKzxhIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWRiNjZmNmQ1ZmE5MjZlZDRiMGU2OWRiNThkZmZjYmU0Ii8+CiA8YSBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2FmMjE0MmYwZGZkY2M5MzhlMmRiMTZhYTc0NWVkNTg1YyIvPgogPGEgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dnYWYyMTQyZjBkZmRjYzkzOGUyZGIxNmFhNzQ1ZWQ1ODVjYWFlNTEwZmQ4ZWM3ZmU0MDViNTk0YjU3YWY2MWY5YTAyIi8+CiA8YSBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2dhZjIxNDJmMGRmZGNjOTM4ZTJkYjE2YWE3NDVlZDU4NWNhYzZiMmM5OWNmOTIwZTA4ZWZjYjU1ZGM0MGU0Mjk0NGUiLz4KQEAgLTEzNzUsNiArMTQzOSw4IEBACiA8YSBocmVmPSJncm91cF9fbHdpcF9fbm9zeXMuaHRtbCNnYTZhMTBjNThiODJjNTZkMDJjNDhiM2NmYTJjMjQ5NGZmIi8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fbm9zeXMuaHRtbCNnYTgzY2ZmZGY2OWFiNjBmZDBlYmE5ZDE3ZDM2M2Y5ODgzIi8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0cy5odG1sIi8+Cis8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYWNkLmh0bWwiLz4KKzxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hY2QuaHRtbCNnYTZmMTY2Nzg2NjMzNWNhZDNhN2IxMjIxYmQwYjI3NGU3Ii8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYXJwLmh0bWwiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hcnAuaHRtbCNnYTI5ZjQxYTZlYmRiYjIzZjQ2Njg4ZDM4MWIzNjA5ZmQxIi8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYXJwLmh0bWwjZ2EyZjc2MmVlZTMwOWE1NDU2NTBmODBmYzhkY2MxOTA4NCIvPgpAQCAtMTQyNSw2ICsxNDkxLDcgQEAKIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhNjZkZjAzZDgxOTJjZDk3OGQzMzIxYTlkNjhiZjU0MTEiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhNjcxMDA5NTUwMjE2ZjdkYzAzZTY3YmE1NzUxZTMxNjAiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhNzgxNDBjYmU3MDI1OGE2NWNiNWM5ZTM4MTg0M2U0ZjMiLz4KKzxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhODdmZjBjNjA3N2I5YTM2YjA1YzNmYzViOGZhZThhZDMiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhOGRhMDc1MDhlZTc1NzA0MzYyZDQ1ZWVlM2ViODU3ZmEiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhOTU5NTkwNGExY2I5YmZlMGI5YjFkOTU4YWJkYzkyM2EiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhOTc5MjdjZWVjYWJjZGI1ZjQxNzM1YmYzNzJhMDVjZWUiLz4KQEAgLTE0NDcsNyArMTUxNCw4IEBACiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhNjBjY2MyMGZiYjA4YmUyNGI1ZDVmNTk5ZGQ0N2E2YTYiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwjZ2E4YTZlYzYyZGMxMjEwNjRhYzU5MWIxZmQ4NTY3YmVlOSIvPgogPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYTlkMDE0ZTNmN2RjOWUxZTdjN2RlY2Q4NjUyYmE2NWUyIi8+Ci08YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhYjJkOTFkZTdiMmZjZTg3OWIwYTIxMzY4MmUxYjBiNjkiLz4KKzxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwjZ2FkNmIwMzBmOGU4Mjg2NjY5NTM2NjE1NzhmOTM2ZTYwNSIvPgorPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYWRkMGM4MjMyOWZjY2I3ODM0MmUzZWVmOTgyMzNhYTU1Ii8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcHY2Lmh0bWwiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwdjYuaHRtbCNnYTFiYTY3YjY2NjUwMjZlYzBjNjg4ZGM0YjBkZjA0N2E2Ii8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcHY2Lmh0bWwjZ2EzZmM5ZGJlOGZlYWU2MTYyMWNhYzQ5NTJhYzI4ZTE1NSIvPgpAQCAtMTY0NCw2ICsxNzEyLDcgQEAKIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbCNnYTFjYjYyY2U2MWFjMzlkN2Q2NzI4YWU1ZDNkM2I5MjdmIi8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2EzZTc0OThkNWQyOTIxZjBkZjM3OTJkZTcyZjM4NGQzNiIvPgogPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sI2dhNDg0YzM4YWIwOGY2MGQ1YjMzMzVkMjNkMzFmOWE0MDIiLz4KKzxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbCNnYTUyNGMwMTNlY2RkOGE0NWEyOTQ5ZjJhNDMzNDY5ZTgyIi8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2E1YjExNWJhY2I1Njk3NjNkOGEzODg5YTEyMjI5ZTk0MiIvPgogPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sI2dhNWRiZDBhNjFmMzBhZTZjNmJmYmRhNjM1MDk1ZjEzOGQiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbCNnYTY4NDE3MDc4YjcxYjBiZTk3MzUyNTZmNTI5MzNkY2RiIi8+CkBAIC0xNjk5LDYgKzE3NjgsNyBAQAogPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhYjAzYmEwMzA2Y2YwYTk5Y2NjZTNkMTAwMTQyZjYwYzgiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX190Y3AuaHRtbCNnYWMwNGI4NGQzMjI1MWFjNTU4ZjBjM2E4YWY4NWJhM2E1Ii8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2FjZDViMjVlYTgxZDI4OTQ3OTBkMjVkYTUzOTNjZGFiNCIvPgorPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhZGUyMzM3MzkwMTk4MGM2ZTdhNDNjZWY4MTMzODZlYmUiLz4KIDxhIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX190Y3AuaHRtbCNnYWU1Yzk4NjZkN2NkNDYzYWM3YjM2NzkyMTgyMTQ1YWVjIi8+CiA8YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2FmMWFiN2JiMjc4NjBhYTM2NzdjMzg3YTJmM2JhMzE3YiIvPgogPGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhZjFiNmEwMTVkMjlmZWE2N2I5MDZjMjc2ZTFlODMxNGYiLz4KQEAgLTE3NDgsMjAgKzE4MTgsMzAgQEAKIDxhIGhyZWY9Imdyb3VwX19sd2lwX192ZXJzaW9uLmh0bWwjZ2FjMWRjOTJkOGY0NTNhOTg1NjBkZTdlMmUwMGEyMjFhMSIvPgogPGEgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTAxYzg1MjAyZjRiODVlZGM4YjU3MWYyZjQxOWRiNTc2Ii8+Cis8YSBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMDliN2EyNTlmNDk3NjQ4ZDhlZjczNGIwODBmOTk3YzEiLz4KKzxhIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EwYzU2MTdiNGQwMjEzNTNiYmQwZmIyNGRkY2I4YjNhYyIvPgogPGEgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1Ii8+Ci08YSBocmVmPSJncm91cF9fbWRucy5odG1sI2dhM2RmMmFlNzUxY2RmZGZmYjBhNTY3MzkwOTQwZWI4YWQiLz4KKzxhIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EyMTMwMTExNjYyZDA0NGIzMjk3MGNlOWM3NjNiZDQwOSIvPgorPGEgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTM2N2FjODlkZGFlNmNiZWMzZTBhOWM1NWU5YzQ2NzM3Ii8+Cis8YSBocmVmPSJncm91cF9fbWRucy5odG1sI2dhNTVmM2ZkNDZjZmUxMzc1NDUyMjEwNjg4ZmMwNWJmOWEiLz4KIDxhIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E1ZmExNTk3OGEzOThkYWUxYThkNzYyMGFlMTY5YmRkMyIvPgorPGEgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTY3Zjg0MmMyN2YzN2MwM2I0OGQxMGU0Y2U2ODU2YjhlIi8+CiA8YSBocmVmPSJncm91cF9fbWRucy5odG1sI2dhN2IxNDczZTU5NWViMGMxODViYWIyOTNmM2VjMmU1MGUiLz4KLTxhIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSIvPgogPGEgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTkzZWNjZGMwZDlhZmZmMGYyNDE2MGQzMWM3MGUyYzlhIi8+Ci08YSBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYTYxOWFjOGY0NmE0YjQwMjExOTU3MjBmMDM1NWNiZWIiLz4KIDxhIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FhODE0NGUzYzc3YTkyYzQwNDNlNjIxNGZmNmI2MDEwYyIvPgorPGEgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWIxZTk4OWE0YzczMDVkNzU0Mzc3Yzc2MDUyNDc0YmViIi8+CiA8YSBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYjJlZGJhMTJkNWNhZDE5NDlmN2NhMDQwYWUxMmJlZWMiLz4KLTxhIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSIvPgorPGEgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1Ii8+Cis8YSBocmVmPSJncm91cF9fbWRucy5odG1sI2dhZWU1YjQ4OWI3N2I3NDUxMTUxN2Q0MWY3NjA5Y2NkNDkiLz4KIDxhIGhyZWY9Imdyb3VwX19tZG5zX19vcHRzLmh0bWwiLz4KKzxhIGhyZWY9Imdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2EwZjBhZGY3YjFkNzQyYjRlYTgxOGMxYjdmNmIwYzU0NyIvPgogPGEgaHJlZj0iZ3JvdXBfX21kbnNfX29wdHMuaHRtbCNnYTE3MmU1NzljZDA5YTFkYjUxY2YyMjQzMTljMDEyMzk2Ii8+Cis8YSBocmVmPSJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhMTdhOTg4NGFmODE2OWNmMTlkNTdkODAwNWZjM2Q5NWUiLz4KIDxhIGhyZWY9Imdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2E1M2E5NzUwMmVmZGNmMTIxNGNhYjQwNzhmOTNhNmRjOSIvPgorPGEgaHJlZj0iZ3JvdXBfX21kbnNfX29wdHMuaHRtbCNnYTdmNjg1M2QwMWFkMzJlYjZjZTk5YWU1NTMwN2EzN2Q5Ii8+CiA8YSBocmVmPSJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhODI3NDllZTA4YmUyMTk2N2I2ZGFmNTc3Yjk3MTBhYzYiLz4KKzxhIGhyZWY9Imdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2E4MjdkMWQyYWJkMjRhMjY2Mzg3MjNjZmQwYThiOWVmZCIvPgorPGEgaHJlZj0iZ3JvdXBfX21kbnNfX29wdHMuaHRtbCNnYWFmNDg5NjA0ZGNkZjk0ZDJhZGNkNzIzZjZjN2Q3MTYzIi8+CiA8YSBocmVmPSJncm91cF9fbWVtcG9vbC5odG1sIi8+CiA8YSBocmVmPSJncm91cF9fbWVtcG9vbC5odG1sI2dhNWIxZmIzY2U3OTQyNDMyZDg3Y2M5NDhiMWM1ZWQ2Y2IiLz4KIDxhIGhyZWY9Imdyb3VwX19tZW1wb29sLmh0bWwjZ2E1ZTI0OThmNmMxNzc0NmMxZmU3MTUzZGU1ZjdmMjc1YSIvPgpAQCAtMTgwMCw3ICsxODgwLDcgQEAKIDxhIGhyZWY9Imdyb3VwX19tcXR0Lmh0bWwjZ2dhOGNmMGYzNjBhYjIwMzQzYWYzN2UxZDEyNDM5NWE3N2RhNTcxNTNmMmFiNDMzMWM2Zjc2YTllZTc0ZTFiY2ZjNjIiLz4KIDxhIGhyZWY9Imdyb3VwX19tcXR0Lmh0bWwjZ2dhOGNmMGYzNjBhYjIwMzQzYWYzN2UxZDEyNDM5NWE3N2RhZGUyOGVjMWMyY2UzZDg3NGU5MTI1MWQ2ODNjOTJiMmEiLz4KIDxhIGhyZWY9Imdyb3VwX19tcXR0Lmh0bWwjZ2dhOGNmMGYzNjBhYjIwMzQzYWYzN2UxZDEyNDM5NWE3N2RhZmM0ODg4MTU4ZGQ2ZWU4NDI2OWE1ZjBiZmRjMTJiMTciLz4KLTxhIGhyZWY9Imdyb3VwX19tcXR0Lmh0bWwjZ2dhOTlmYjgzMDMxY2U5OTIzYzg0MzkyYjRlOTJmOTU2YjVhNzljZDAwZDBhNWE4ZGYxMzIwN2UwYzQ5NDQ3ZGY4N2YiLz4KKzxhIGhyZWY9Imdyb3VwX19tcXR0Lmh0bWwjZ2dhYmM2MTI2YWYxZDQ1ODQ3YmM1OWFmYTBhYTMyMTZiMDRhNzljZDAwZDBhNWE4ZGYxMzIwN2UwYzQ5NDQ3ZGY4N2YiLz4KIDxhIGhyZWY9Imdyb3VwX19tcXR0X19vcHRzLmh0bWwiLz4KIDxhIGhyZWY9Imdyb3VwX19tcXR0X19vcHRzLmh0bWwjZ2ExZDg5ZmRhODA4YzcwNDdlYWI3YTY3ZDM3ODVhZWE4ZSIvPgogPGEgaHJlZj0iZ3JvdXBfX21xdHRfX29wdHMuaHRtbCNnYTI2MjYzOWYyYjQ1ZjZlMDY0ZmI1MzE1NjM5NmQ2ZDBhIi8+CkBAIC0xODcwLDYgKzE5NTAsNyBAQAogPGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2ExZDkxYWMyNmIwOTkzYTlhMzQ2NmIzMTdhYjVlYzcxNiIvPgogPGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EyMjA1NTc1OWEyNWY1ZDZjZWE3ZTdkZWFiMGEwNzQzNCIvPgogPGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EzMTljODhkYTBmZGYyNWMxZmVlMTU5NTI5OWJjMzVjZSIvPgorPGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EzNDI4YjNmODE5NTI0OWM2Y2Q4NzA0YTRkYjQ2YjQwMSIvPgogPGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EzNGUzN2ExZThlMzU4NzYwZGMxYzQzODg3OTIyYzdkYiIvPgogPGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EzYzgyZDFjNzQyMzM4ODI4YjJmNDM0OWE3NWJiODRkZSIvPgogPGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EzZWZjMmI3MmY3NTkzNmQ1MDcwODI0NzQyMGM5ZDFkOSIvPgpAQCAtMTg3Nyw2ICsxOTU4LDcgQEAKIDxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhNjQxZDA3ZWQ4YzMxZmU1MzA2YmMwMTYwNWE2NzkwY2YiLz4KIDxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhNjkxZjFjYzdjOTc3OGZmYTYyYTM4NDNjMTg0NDA0YjIiLz4KIDxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhOTRhNGMyNGM5ODhhZmMwYTU3NzM4NzczMGYzMDNiMTkiLz4KKzxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhOTdmMzBiYjU1NDJlNGMwN2QzYjMyZTNjNzU0ZTEwNGMiLz4KIDxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhOWM2ZTU0MWYwYzE4NGUxZWE2MWE1Y2Q4YWZlM2U5NzkiLz4KIDxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhYTkzNDQzNDQyMGMwZGVhN2I1Y2ZlNmRmNjdmOGM3N2EiLz4KIDxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhYjJiOTM4NzM4OTUxM2EwMjAyN2M2MmUyNDY3MjM4MDgiLz4KQEAgLTE5NDYsNiArMjAyOCw5IEBACiA8YSBocmVmPSJncm91cF9fbmV0aWZfX21pYjIuaHRtbCNnZ2ExNTM3OGI4ZGNkMmE5ZGMyOTg1MTQyZDg2NGE3NjdiYWFmNGVlYTEyZGIxYmEyNjVjNWI0ZjIzZGYzMDllN2UwMyIvPgogPGEgaHJlZj0iZ3JvdXBfX25ldGlmX19taWIyLmh0bWwjZ2dhMTUzNzhiOGRjZDJhOWRjMjk4NTE0MmQ4NjRhNzY3YmFhZmIxN2QxMDIzYzU3MTEwOTdiMTNjY2FiZjZlZDkyOTkiLz4KIDxhIGhyZWY9Imdyb3VwX19uZXRpZmFwaS5odG1sIi8+Cis8YSBocmVmPSJncm91cF9fbmV0aWZhcGlfX2FycC5odG1sIi8+Cis8YSBocmVmPSJncm91cF9fbmV0aWZhcGlfX2FycC5odG1sI2dhMDM3YzNkMDVjMTliNGQ0NjdiNmNlMDZlYjQ2MzllZTgiLz4KKzxhIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fYXJwLmh0bWwjZ2E2MmIwYmRiYjM3ODNlYjI3YWE3MzQ4NTA4MTMwNjExOSIvPgogPGEgaHJlZj0iZ3JvdXBfX25ldGlmYXBpX19hdXRvaXAuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX25ldGlmYXBpX19hdXRvaXAuaHRtbCNnYWNhMjZiYWUyYTIxZTA3MzJhNzU5OWRmMTRmODgwYWYyIi8+CiA8YSBocmVmPSJncm91cF9fbmV0aWZhcGlfX2F1dG9pcC5odG1sI2dhZTYwNGY5NjkwN2E1MjU1N2U0ZWJkMWJkNWQ4MDA3MWQiLz4KQEAgLTIwMjIsOCArMjEwNyw4IEBACiA8YSBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2EyMjkzMGFkZTRlNzdiMzE5NWZlNTk5NDk4MzRkODVmMCIvPgogPGEgaHJlZj0iZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhMjlkYzBlYmI4ZTY0MGI2NGE1NzAwOGI5NDBmYmNhMWUiLz4KIDxhIGhyZWY9Imdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTNkOTQwMzc2YmQ5ODNjMTRmZmNjOGQyNTgwZjNiZGRlIi8+Ci08YSBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2EzZTI0NWE4NWY5ZWRkZGNhOTNkZGQyOTY3MjA5ODgxZCIvPgotPGEgaHJlZj0iZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhYTViMTgyM2MyNTA5Yjg4MTZlZjk4ZGNhYzY3ZTAzN2MiLz4KKzxhIGhyZWY9Imdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTQ5ZTNhMWZjZWRkOTM3MTAyM2M3NzZmMGMzYmIzZjBmIi8+Cis8YSBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCIvPgogPGEgaHJlZj0iZ3JvdXBfX3NlcXVlbnRpYWxfX2FwaS5odG1sIi8+CiA8YSBocmVmPSJncm91cF9fc2l4bG93cGFuLmh0bWwiLz4KIDxhIGhyZWY9Imdyb3VwX19zaXhsb3dwYW4uaHRtbCNnYTNjOTQzZGE2ZjlkM2YxMDk2YmRjZWJlM2UxOWQzOGI3Ii8+CkBAIC0yMDYxLDYgKzIxNDYsNyBAQAogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTFmZTczN2MxMzcxYTNlZDNiYjUxNWQ0NTFlZjNlZWE4Ii8+CiA8YSBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMjljNzY0NzQ5NzFmMjVkMDM4ZmQ0ODY0NDdjNzBlMjEiLz4KIDxhIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2EzMGNjNTg3YTI2MDc1N2ZkYjJiODFkNDYyZjQzMGVmMSIvPgorPGEgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4Ii8+CiA8YSBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMzQxNDYxNzY2ODYzY2ZmNDZhNDRlNWY0MzFmMmRhMDEiLz4KIDxhIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2E0ZDg4ZjJmYzc2NTUyODAzODQxMzFkNTQzZTBkODNlNSIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTUxZTg0MDU1ZjdkOWM0NDUxMThiZjhlOTNmZDFhZGY4Ii8+CkBAIC0yMTA1LDE4ICsyMTkxLDI0IEBACiA8YSBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2EwZTA0NDI1OTI4OWNiNjkwMTk3MTczZjkzYzE3NjA3ZCIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2ExNWU0YWZiZjgwZWQyMjYwODUwODQyZTY2MDhjNmQ4NiIvPgorPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2EyMTk3NGIxZjZiNjI2YmNlMWUwMDZmMDlkYjcxMmU5YyIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E1NjMxNzExZjM1N2I2NjEwYmU3ZTkzYjFjNmQ4Nzc2MCIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E1NjZhYTdhZWFmNWZiNzVjYTBhMmFmNTg0ODZmNGNiYSIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E1NmJkY2UwNGU5ZTc3Y2IzZjhhODcyNzE4Y2QyNzNkMSIvPgorPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E2ZDQxMWMwYmE3YThmYjFlZDM3NzdlYmRlNWI1ZjQ1NSIvPgorPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E3NDkyYmI4NjFiYTczOTIzMjIxYThhYjQ5ZWE3OTIxMCIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E3ODA0YTIyNjE1YmQ5YjNhMzIzYTNmNDhhOWZiOGNiNyIvPgotPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E5NmNjN2FmMDExOGQ3NTA0OTYwOTg3MmVhNDExODdjZCIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FhOGE0OWQxYTZhMjA3NzQwYmE0NGUyN2I1YmJjMjJiZSIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FiMTAxNTA1YmU1OTc3OGNmMGYyZjFhYzQwYmNmM2YzMiIvPgorPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FiN2U0Yjk0M2E5NzU4MDEwYjAyMzcxYjg3NmFiYzI3NSIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FjYWY4MTZmZjkxN2Y3YjdlNWQwMGVkNmM5Zjc5YjUxYyIvPgorPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FlNDUwZGQ3MWFkOTFmNmMwYmMyNDM0OTNhOTEzZjY5MiIvPgogPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FmNmQwYTk1YTNhNDA2ZDhlYTAwODQ5YzA3YWNhMDVlZSIvPgorPGEgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FmNmQ4M2FhZTY0NjQ4NTI0MjdhODEyZjU3M2E0MDM1OSIvPgogPGEgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCNnYTNmZTUyNTRlNWEwNTZmY2E4MDgwMmQ5ZjI2YjljM2M1Ii8+CiA8YSBocmVmPSJncm91cF9fc250cC5odG1sI2dhNGZhMDM4ZGNlYTY2MzQ5ZmFmZGJlMWNjM2U1MmZmM2EiLz4KKzxhIGhyZWY9Imdyb3VwX19zbnRwLmh0bWwjZ2E2ODE0NmQyZWUxYmJhMTBlNWFhMDFmMDk4YjU5N2Q5ZSIvPgogPGEgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCNnYTgxMTlmYzJkMWZmN2ZmNmViYTUxMWNjOWM3MTY3NDg4Ii8+CiA8YSBocmVmPSJncm91cF9fc250cC5odG1sI2dhOWIzMDBjNjYxNmRlNjA1MjRjODVlYTQwYmY3MGUyYmEiLz4KIDxhIGhyZWY9Imdyb3VwX19zbnRwLmh0bWwjZ2FhZTk0ZmIyYWRhZGJmOTY2N2U5NTk3ZjhhNDViZjEyMCIvPgpAQCAtMjE2OSw2ICsyMjYxLDcgQEAKIDxhIGhyZWY9Imdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2EyNjNjYmFmY2I2OTdlZmY5NjQxMzlhOTk5OGE2NjY4YSIvPgogPGEgaHJlZj0iZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYTk5N2RjYzQ5NDUxMTIxZDRlZDc1NWIzM2JjN2JkMjZhIi8+CiA8YSBocmVmPSJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYTJiYTRiNGUyZGQ3ZTFjODU2ZmVkYzZhNjA2OTgxM2UiLz4KKzxhIGhyZWY9Imdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2FjMGNkNjNiNGExYTQ0ZjUwODE4NTgxOTllNjhmNDZhYSIvPgogPGEgaHJlZj0iZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYWYxNWI0ZmJhYWFlNWJiN2Y2ZGE0MzAxZjNmOTc5Mjg0Ii8+CiA8YSBocmVmPSJncm91cF9fc3lzX19vcy5odG1sIi8+CiA8YSBocmVmPSJncm91cF9fc3lzX19wcm90Lmh0bWwiLz4KQEAgLTIxODcsNiArMjI4MCw3IEBACiA8YSBocmVmPSJncm91cF9fdGNwX19yYXcuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2EwY2JjYzZkNjI4ZjY0NGE1MzBkYWY2MjlmYTNlNWY3ZiIvPgogPGEgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2ExNTk2MzMyYjkzYmI2MjQ5MTc5ZjNiODlmMjRiZDgwOCIvPgorPGEgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2EyYzQyMzRmMWU5NWI2YmRlMGU4NGQ0ZWE5N2FlOTViYyIvPgogPGEgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2EyZTAwYzY2OGI5OWQ5MjExM2NkNTk1NjQ3NzAyYmU4MyIvPgogPGEgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2E0MjdiMTFjN2I5OGM3NDhlYzQ4N2NkNDMwOTNiZDJmOCIvPgogPGEgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2E0NjhjMjI2MGRkYjAxNTgyZTk2NmRkY2YzYzI1Y2U2MSIvPgpAQCAtMjIwNywxMiArMjMwMSwxMyBAQAogPGEgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2FmYmE0NzAxNTA5OGVkN2NlNTIzZGNmN2JkZjcwZjdlNSIvPgogPGEgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2FmZjRjM2UzODBmYzYwYzhmYjliM2FhOTVlZGE5NGM2MiIvPgogPGEgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwiLz4KLTxhIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhMzZlNjBkYzAyYmZlMDQzN2M4ZGEzNjhhNjJlMmYzMTYiLz4KIDxhIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhNDgzNmUwYjRmNjY0Mzk0OTNlMTA2YTUwNDAwZDE2MTYiLz4KLTxhIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhNTg1MDBjYjJjZTIyNDM4ZTE2YTM3MzczNTk1YWYzMTgiLz4KLTxhIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhZGM3YWE5NmRkZDE1ZmI2NTk4NTIzMDY4Yjg5Zjg4NTUiLz4KKzxhIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhNzQ5OTAxODQ2OWNkOWMzZGM2YTE1YWQ5MWMzMzhlNTYiLz4KKzxhIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhYWNlYTU0Y2UxMTU0ZTdhZThlZjAxOTlmZjFjNWJkYzUiLz4KKzxhIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhZjVjMjM5N2IyZDg1YjNhOTAyNTg0ZmI2NGNkYjk2MWUiLz4KIDxhIGhyZWY9Imdyb3VwX190ZnRwLmh0bWwiLz4KLTxhIGhyZWY9Imdyb3VwX190ZnRwLmh0bWwjZ2E3YTgwNjczYTEzMjRkYTVjOGFlMjQ0MGFmN2IwMDhhMyIvPgorPGEgaHJlZj0iZ3JvdXBfX3RmdHAuaHRtbCNnYTczYTk4ZjA4MTEyNDRkNWJkMjRkNWI5NTlkYjhlZDQwIi8+Cis8YSBocmVmPSJncm91cF9fdGZ0cC5odG1sI2dhYTZiNzQzYTY0Mjg3MjA2YWNiODI1YmQ2MDQ0OGU1ZjgiLz4KIDxhIGhyZWY9Imdyb3VwX190ZnRwLmh0bWwjZ2FiYjRhNGUyNGI1YzdlYzhkZjcwZWM1YTY4YTIwNmRlYyIvPgogPGEgaHJlZj0iZ3JvdXBfX3RmdHBfX29wdHMuaHRtbCIvPgogPGEgaHJlZj0iZ3JvdXBfX3RmdHBfX29wdHMuaHRtbCNnYTJkZDU0YTFkMGMzMDA2NTI3YjhhN2E4NjA0YjgxOTgxIi8+CkBAIC0yMzU2LDEwICsyNDUxLDEyIEBACiA8YSBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiLz4KIDxhIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2E0NmRhYmI0ZGYyMTJkMTU2MDA0ZmE1YWZlMDNlMjA1MSIvPgogPGEgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTU4YWVlNDE2NmM0NjZmOWFjNzAzNWJmNWNjOWY5OTc0Ii8+Cis8YSBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhNTk0OTRjNTYyYzYyZmRmNjJhNmM5YzZhNjZhNTBmYjMiLz4KIDxhIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2E1YzdlYWU1MGEzODc5ODdhN2Y1NmMyOWM3NDI1NWMzYyIvPgogPGEgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTZmNTFhMmViMjE1NDdkZjRlNmIzYmEwNDYxODgzNDVlIi8+CiA8YSBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhODE2NThjYjA1YmE1MDRkMTNlZTg2MGU4MmRjNDQ0ZTkiLz4KIDxhIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2E5MDE4NTBlYzkwYjAxYjliZjZiYWY2OTU2MWFhNDY1YSIvPgorPGEgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTk1ZDA1ZGY5MjAxNjAyZmM4NzNhOTdmYjYxZmQxMTM0Ii8+CiA8YSBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhOTczYjZhZDk4ZTAzN2ZjNDVmMWUxMWQyOWNkYTk5ZWEiLz4KIDxhIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2FiM2NkN2U3ZmJhMjhjMjlkMzVmM2MxNzQ2MTA3MTQyMSIvPgogPGEgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYWI1ODEwZDQwNGIwYWQxYjg5ZWYxMzIzZWExZTc4MDcxIi8+CkBAIC0yNDE0LDcgKzI1MTEsMTEgQEAKIDxhIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E2YzQ2ZDEyZmE3ZDM2YzQ3YjYyOWQwY2NkZWZhMTE0YiIvPgogPGEgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYTc2YjAxZjc2YjY1NjQ3NzY3ZDAwZWU5ZmFkOWZiYWEyIi8+CiA8YSBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhN2IxN2U4NWE0NmJkODM2OGNlMjdmYzY0NGUwNTgwNzMiLz4KKzxhIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E4MTFkOGEyYWE2NDE3YWUyMmE3YTQ2YjI3ZDllYWQyNiIvPgogPGEgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYTkxOTMxMzc0MjNiNmI5MzZkMjVjMmU2Y2YzM2I0OTIxIi8+Cis8YSBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhOWE5ODNjN2Q2MTNhYjQ1ZTM3YWFmNjZjMDY3YTBjN2EiLz4KKzxhIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E5ZWEwYjZiODM3YmFmZjFlMWU2MmNjY2Q0ZjE3ZDUwZSIvPgorPGEgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWEzMjRhYzY1ZDUzNzk5N2ViYWFlZDc4YmQ0MGY2ZGE5Ii8+CiA8YSBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhYTdiNGJhNDIwMmI1ZjY0ZGVlNjA1ZmUxNTllOWMzYWQiLz4KIDxhIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2FhY2E5ZTc5NmU5M2EzNTUyOTRjNDk1NGMwOGQwMTc2MiIvPgogPGEgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWIxNTNlNWI1OGE1Njc0ZTVlMWJhY2RiYmMwOTM0YzQ0Ii8+CkBAIC0yNDI4LDYgKzI1MjksNyBAQAogPGEgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWVhOGQ0YzQxMzRhYmZmMWM3NmJjOTk3YTkxMTYzZmUxIi8+CiA8YSBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhZjNkMWY5ODc2YmYyNTZlYzk2NGJkMzgwOWQ3ZWQxYjQiLz4KIDxhIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2FmNjk2ZDNiODFmNGNiOWM0MGVjZTkxMmRlNzNlZDUzYyIvPgorPGEgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWZjOWQyYjhkMGEwNWYyZmYyM2FiM2I3ZmQzYmY4MjI5Ii8+CiA8YSBocmVmPSJpcDZfX2ZyYWdfOGMuaHRtbCIvPgogPGEgaHJlZj0iaXA2X19mcmFnXzhjLmh0bWwjYTNlZjg3YWNiYzYxNWQ1ZWIwMTUxMDRmODNiYmU3ZDM3Ii8+CiA8YSBocmVmPSJpcDZfX2ZyYWdfOGMuaHRtbCNhNTEwOTM0YWNjZjE0OTQzM2JkY2Y2ODM5OTNlNzkwODAiLz4KQEAgLTI1MDUsOCArMjYwNywxMCBAQAogPGEgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwjYTNlNTZmYWNlZDk2ODQxZTYxNWY4OGRkNTdkMWIyYjE1Ii8+CiA8YSBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCNhNTQwYTU1MDY5Nzk2OTNlZjlhYzQ0OTZkYjliZmE3ZDYiLz4KIDxhIGhyZWY9Imx3aXBfMmV0aGFycF84aC5odG1sI2E2NTRmNGRhZDcxZjdlMmJjNDgyMDA5NDY0OGYzN2EyNiIvPgorPGEgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwjYTdjNDFiYThiMTQ1ZmE0ZDA2ZjhkNmFmM2RmNDRjNGZmIi8+CiA8YSBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCNhODM5NDdkZWExNTliYWYzNDIwOTIyMDg0MDcyZTYzMWUiLz4KIDxhIGhyZWY9Imx3aXBfMmV0aGFycF84aC5odG1sI2FhYTNkOGVkMWViMTEyOWY1MTgzNDVlMzdiMzhjZmMzNyIvPgorPGEgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwjYWFjN2Q1MDQ4YTgxZWYxYzYzYjE4ZDc2OTcwMGY0ODk5Ii8+CiA8YSBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCNhYjkzZGY3Y2NiMjY0OTYxMDBkNDUxMzc1NDFlODYzYzgiLz4KIDxhIGhyZWY9Imx3aXBfMmV0aGFycF84aC5odG1sI2FlMTgwNzcyZTMxMzQ2YTBhZmViNzA3YWQxNzJkZDE5YyIvPgogPGEgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwjYWU5NDY3N2EyYTVmMzY5ODI3NjAyN2M3NDc1ZjZjYTA1Ii8+CkBAIC0yNTUzLDIwICsyNjU3LDg1IEBACiA8YSBocmVmPSJsd2lwZXJmXzhoLmh0bWwjYWI3MmEyZDIwNWU0M2Q1MjQzYTI5MWY5MzdiYmMyNGQ2YWU2NjRjMGY5ODc1ODRmMDdmYjBmNmY4ODk2YWFkYTBkIi8+CiA8YSBocmVmPSJtZG5zXzhjLmh0bWwiLz4KIDxhIGhyZWY9Im1kbnNfOGMuaHRtbCNhMDFmODg1MGI5YzJkMmNkNDBlZDc3YTE0MzhjODViZjEiLz4KLTxhIGhyZWY9Im1kbnNfOGMuaHRtbCNhMTdkYjY5ZmE4ODc1MTUzNzQ0NTJiOTQ1ZTk1OWJiZjkiLz4KLTxhIGhyZWY9Im1kbnNfOGMuaHRtbCNhNTJkOGY3MDQzMmFlOTk4ODE0ZjE2YjE4NDMxMjEzY2QiLz4KLTxhIGhyZWY9Im1kbnNfOGMuaHRtbCNhYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiLz4KLTxhIGhyZWY9Im1kbnNfOGMuaHRtbCNhYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiLz4KKzxhIGhyZWY9Im1kbnNfOGMuaHRtbCNhNDgyZDZiZjcxMGFmNDQyNGI3MWVlNTcwMzRlZGJkYmUiLz4KKzxhIGhyZWY9Im1kbnNfOGMuaHRtbCNhYTMxYjc5OGE1ZmI5NmI2ZWYwZGRlNWQ0ZjMyMzcxYWYiLz4KKzxhIGhyZWY9Im1kbnNfOGMuaHRtbCNhZjE1ZmE1YjYzMzFiZWM2MDVmNjhmNTNjYjg3ZjU4ZmEiLz4KKzxhIGhyZWY9Im1kbnNfOGMuaHRtbCNhZjI0ZTU5MGJmOWMyMjVhMmVmYzBiNTVmYWMxNDgwOWQiLz4KIDxhIGhyZWY9Im1kbnNfOGguaHRtbCIvPgogPGEgaHJlZj0ibWRuc184aC5odG1sI2EwMWY4ODUwYjljMmQyY2Q0MGVkNzdhMTQzOGM4NWJmMSIvPgotPGEgaHJlZj0ibWRuc184aC5odG1sI2ExOWYxMmQ3MDkyZGU2ZmU5MGQ1ODQzZTRlZjhkNDUzNiIvPgogPGEgaHJlZj0ibWRuc184aC5odG1sI2EzYjllZTU5NTMyMTQ2NjVlNTg1ZTViY2FmNmI4ZWE4MyIvPgorPGEgaHJlZj0ibWRuc184aC5odG1sI2E2ZDY1OGUyYzUyMjhiMjI0Yjg5NDg4NjYzZDJiNzJmNyIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwiLz4KKzxhIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2EwYWZmMDk2Njk1ZWViYWNiMjY2OGQyNzYyNzIyODYwYyIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ii8+Cis8YSBocmVmPSJtZG5zX19kb21haW5fOGMuaHRtbCNhMTkxZDliNzBhNjYwODNmNDBhYWEwMjJjMmVkODhiMTIiLz4KKzxhIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2EyOWRkYjBhNmJhMGVkY2YzNDEwNGVjMWY2MzIyOTY4YiIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTUyZDhmNzA0MzJhZTk5ODgxNGYxNmIxODQzMTIxM2NkIi8+Cis8YSBocmVmPSJtZG5zX19kb21haW5fOGMuaHRtbCNhNjQyNDQ5Y2JmMDA3NGYxYTI1MDRlNzIxNThlNzU4NTkiLz4KKzxhIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2E3MjIxY2IxYTgzZWQ2ZGNmYjNhMmIxMzY1MTU0YjQzZCIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTc0ODVkNzU5NzZiNzMzNTQ2NjhhNWE1NGJjODY1OGVkIi8+Cis8YSBocmVmPSJtZG5zX19kb21haW5fOGMuaHRtbCNhOTJkZTU0ZDJmMzg0YTRlNGZmYTg1ZTUyOWNjMDU0MTEiLz4KKzxhIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2E5Y2RlMzkwMzllMGUxZTIxYjQ4NTFkODQwZDczMzkyNiIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYWI1ZjQ5ZDkzNTZhNzY4NzllMGU2YTE0ZWIwNjQzYjIzIi8+Cis8YSBocmVmPSJtZG5zX19kb21haW5fOGMuaHRtbCNhYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiLz4KKzxhIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2FjMmQ4OTUxZTI0MzVmOTNmZGM4ODlmNmE3MWUwYzhhNiIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYWYyMjhkMWNmOGQ3NzljNzE0YTAxNjcwMmRiMDk1ZGI2Ii8+Cis8YSBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYTBhZmYwOTY2OTVlZWJhY2IyNjY4ZDI3NjI3MjI4NjBjIi8+Cis8YSBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhMTdkYjY5ZmE4ODc1MTUzNzQ0NTJiOTQ1ZTk1OWJiZjkiLz4KKzxhIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sI2ExOTFkOWI3MGE2NjA4M2Y0MGFhYTAyMmMyZWQ4OGIxMiIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYTI5ZGRiMGE2YmEwZWRjZjM0MTA0ZWMxZjYzMjI5NjhiIi8+Cis8YSBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhNTJkOGY3MDQzMmFlOTk4ODE0ZjE2YjE4NDMxMjEzY2QiLz4KKzxhIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sI2E2NDI0NDljYmYwMDc0ZjFhMjUwNGU3MjE1OGU3NTg1OSIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYTcyMjFjYjFhODNlZDZkY2ZiM2EyYjEzNjUxNTRiNDNkIi8+Cis8YSBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhNzQ4NWQ3NTk3NmI3MzM1NDY2OGE1YTU0YmM4NjU4ZWQiLz4KKzxhIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sI2E5MmRlNTRkMmYzODRhNGU0ZmZhODVlNTI5Y2MwNTQxMSIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYTljZGUzOTAzOWUwZTFlMjFiNDg1MWQ4NDBkNzMzOTI2Ii8+Cis8YSBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiLz4KKzxhIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sI2FiNzJlNDhjZjA3NmFmZDFlM2EwODAzMGQxZDBiZmY5ZSIvPgorPGEgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYWMyZDg5NTFlMjQzNWY5M2ZkYzg4OWY2YTcxZTBjOGE2Ii8+Cis8YSBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhZjIyOGQxY2Y4ZDc3OWM3MTRhMDE2NzAyZGIwOTVkYjYiLz4KIDxhIGhyZWY9Im1kbnNfX29wdHNfOGguaHRtbCIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2ExMGY2ZjIyNjQwYWM4MzdhMjMzYmY0MzMzNGRmYjAyYSIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTFmN2RjOTUzNmYxMjQyNjM1NzM1MThlNmU4ZTFhMTYyIi8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhMjcxMzM0OGIxYjMxNGQ1ZTg4MDQ0MmYyYzEzMGUxZGMiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2EyYjdhNzIxYjE5ZmEzMzgxMzEzM2JjOTdmNTAzYzE5OSIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTJkZDM1Y2IxZTFmYWU4ODhjMDVjMmI3ZjhiZDcxN2NjIi8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhNGUwYWE2ZjZlM2JhOTBjODhlMWJmMWI4M2QwNWNkMmYiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2E1YTA1MWViODFkNmJkMzczNjU5NzNkMTIxNWFmMjNiYSIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTVkZTc0MWZkODVjMzY3NWUzZDIxNjE3MjdkZDlhMjIwIi8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhNjE5NTgwOGJlMTg0MGRhYThhMTAwYjU5NTRhMzBjZmUiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2E3OTBlYTBhYmEyZDI1MmY5NmMyMzc0OGVhMGMwMzNhNyIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTdiNjM3YjZmNDE5NzZmMzVmN2I0OGU3ZjI5MDQ4MjliIi8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhYjhhOGU1ZDViYThjZmJiMThlN2ZmMjU4ODc5MmNlNWYiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2FjYmY1OWRjYTk0ZjI0MWMxYjU4YzdkZjFlYzRiODVlMSIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYWRkNjRjODNmNzUzODQyZjJjZWI0MDA3OTIxN2M2NmExIi8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhZTRhMGFlNmEwMzkyMTBmNjBmNjY2OTk5ZjliODA3ZjciLz4KKzxhIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2FlOGM5ZDJiZDg5ZDZjYTdlODY2OGJhNzA4OTI1ZDJlOCIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYWYzZTExOGViODA3NjBhOTU4MjY1ZjZhNGM1OWIyZTQ5Ii8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGguaHRtbCIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTEwZjZmMjI2NDBhYzgzN2EyMzNiZjQzMzM0ZGZiMDJhIi8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhMWY3ZGM5NTM2ZjEyNDI2MzU3MzUxOGU2ZThlMWExNjIiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2EyNzEzMzQ4YjFiMzE0ZDVlODgwNDQyZjJjMTMwZTFkYyIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTJiN2E3MjFiMTlmYTMzODEzMTMzYmM5N2Y1MDNjMTk5Ii8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhMmRkMzVjYjFlMWZhZTg4OGMwNWMyYjdmOGJkNzE3Y2MiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2E0ZTBhYTZmNmUzYmE5MGM4OGUxYmYxYjgzZDA1Y2QyZiIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTVhMDUxZWI4MWQ2YmQzNzM2NTk3M2QxMjE1YWYyM2JhIi8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhNWRlNzQxZmQ4NWMzNjc1ZTNkMjE2MTcyN2RkOWEyMjAiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2E2MTk1ODA4YmUxODQwZGFhOGExMDBiNTk1NGEzMGNmZSIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTc5MGVhMGFiYTJkMjUyZjk2YzIzNzQ4ZWEwYzAzM2E3Ii8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhN2I2MzdiNmY0MTk3NmYzNWY3YjQ4ZTdmMjkwNDgyOWIiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2FiMzI5N2Q2OWIwZWZmYjVlYjAxYTliOGM1YTcwOGVhOSIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYWI4YThlNWQ1YmE4Y2ZiYjE4ZTdmZjI1ODg3OTJjZTVmIi8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhY2JmNTlkY2E5NGYyNDFjMWI1OGM3ZGYxZWM0Yjg1ZTEiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2FkZDY0YzgzZjc1Mzg0MmYyY2ViNDAwNzkyMTdjNjZhMSIvPgorPGEgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYWU0YTBhZTZhMDM5MjEwZjYwZjY2Njk5OWY5YjgwN2Y3Ii8+Cis8YSBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhZThjOWQyYmQ4OWQ2Y2E3ZTg2NjhiYTcwODkyNWQyZTgiLz4KKzxhIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2FmM2UxMThlYjgwNzYwYTk1ODI2NWY2YTRjNTliMmU0OSIvPgogPGEgaHJlZj0ibWRuc19fcHJpdl84aC5odG1sIi8+Ci08YSBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwjYTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ii8+Ci08YSBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwjYTUyZDhmNzA0MzJhZTk5ODgxNGYxNmIxODQzMTIxM2NkIi8+Ci08YSBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwjYWI1ZjQ5ZDkzNTZhNzY4NzllMGU2YTE0ZWIwNjQzYjIzIi8+Ci08YSBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwjYWI3MmU0OGNmMDc2YWZkMWUzYTA4MDMwZDFkMGJmZjllIi8+Cis8YSBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwjYWEzMWI3OThhNWZiOTZiNmVmMGRkZTVkNGYzMjM3MWFmIi8+Cis8YSBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwjYWYxNWZhNWI2MzMxYmVjNjA1ZjY4ZjUzY2I4N2Y1OGZhIi8+CiA8YSBocmVmPSJtZW1fOGMuaHRtbCIvPgogPGEgaHJlZj0ibWVtXzhjLmh0bWwjYTA2YjJmYjNhNmY2YTZjNTZhODRmNzY5ZTBiZDRjOGU3Ii8+CiA8YSBocmVmPSJtZW1fOGMuaHRtbCNhMjc4Njk0YzIzMzNjOTgyNmYyMWRkZDJjMmQyMjBmNjYiLz4KQEAgLTI2ODQsNyArMjg1Myw2IEBACiA8YSBocmVmPSJuZXRkYl84Yy5odG1sI2E3NjhhYjhlYWQ4OTJkNjQ1NDcwOTY4MDM0MGNkMDcwZSIvPgogPGEgaHJlZj0ibmV0ZGJfOGMuaHRtbCNhN2Y2NWZmNTk4MmEwNzQzODQ5YTY0NGVmMmNkMTVlZjUiLz4KIDxhIGhyZWY9Im5ldGRiXzhjLmh0bWwjYWJlNmE2YTEwM2EyZjZmYTRlMTMwOThlNDU1YWM3YmIzIi8+Ci08YSBocmVmPSJuZXRkYl84Yy5odG1sI2FjZmMxZTk4ODUzNGMwZTQ5NzU5OWI5MDQ3MzlmOTJmZSIvPgogPGEgaHJlZj0ibmV0ZGJfOGMuaHRtbCNhZjM1Njk4OWMxNzJhNTExODdlMjJiNTU3ZjIyZDQxNjUiLz4KIDxhIGhyZWY9Im5ldGRiXzhjLmh0bWwjYWZhMjI5ZTkwOTE2ZjZjOGQ2MzA4ODI4ZjQ1MzUxZDJkIi8+CiA8YSBocmVmPSJuZXRpZl8yZXRoZXJuZXRfOGguaHRtbCIvPgpAQCAtMjY5Niw2ICsyODY0LDggQEAKIDxhIGhyZWY9Im5ldGlmXzhjLmh0bWwjYTNkMDkyNWNiY2U1NTBlZDQ2MTkwN2FlZTgxNjcxM2JhIi8+CiA8YSBocmVmPSJuZXRpZl84Yy5odG1sI2E3NWI1Mjk4YjFjM2MzNzk0NzQ3ZDc4YTRjZTk1ZDgxYyIvPgogPGEgaHJlZj0ibmV0aWZfOGguaHRtbCIvPgorPGEgaHJlZj0ibmV0aWZfOGguaHRtbCNhMDQ2YzQ4MTZlMzdjM2M0Yjg0YjM2MzRlZWVlYTcwMjkiLz4KKzxhIGhyZWY9Im5ldGlmXzhoLmh0bWwjYTBhNjc0NTUzYzE4YjQyOWI1MzM5NzM3MmVhODJmY2FmIi8+CiA8YSBocmVmPSJuZXRpZl84aC5odG1sI2EwZDcwZmUxMWNhYzQzYzhmYTM1ODI3YjhlNjA3Y2NmNiIvPgogPGEgaHJlZj0ibmV0aWZfOGguaHRtbCNhMGVjMTExMTk1YmNjNDUyZjc3ODk1YWQzNWFlZGQ3ZGMiLz4KIDxhIGhyZWY9Im5ldGlmXzhoLmh0bWwjYTBmYmFlZDc4MjUzZDIxZTFiNTRlNjU2NTFkYTNlMzI3Ii8+CkBAIC0yNzA5LDYgKzI4NzksNyBAQAogPGEgaHJlZj0ibmV0aWZfOGguaHRtbCNhNGZmMTlhNmYzMDQ1ZjY1ZDAzOTdkMzBiNjYwOTY2MGEiLz4KIDxhIGhyZWY9Im5ldGlmXzhoLmh0bWwjYTVhZDczMDgxOTVjMDU4MTY4MGRkNjJmYjE0ODUwMWNkIi8+CiA8YSBocmVmPSJuZXRpZl84aC5odG1sI2E2ZjQwNmVlM2FiNjBlOGE0ZjI3YWUyNDgzYzk2YjhlMiIvPgorPGEgaHJlZj0ibmV0aWZfOGguaHRtbCNhNzE2NTc2ZjM0ODU1MjRkNDRlZjA4NDM4MzllZjA1NjQiLz4KIDxhIGhyZWY9Im5ldGlmXzhoLmh0bWwjYTcxY2FkMzI3N2VmZTI5MTkxZWVmMzM0OGY0YmYyMWY3Ii8+CiA8YSBocmVmPSJuZXRpZl84aC5odG1sI2E3NWI1Mjk4YjFjM2MzNzk0NzQ3ZDc4YTRjZTk1ZDgxYyIvPgogPGEgaHJlZj0ibmV0aWZfOGguaHRtbCNhNzgwYmU0YzNmYTlmN2YyNTM0Zjc4NjU2NjZjM2ExYjgiLz4KQEAgLTI3MjYsMTMgKzI4OTcsOSBAQAogPGEgaHJlZj0ibmV0aWZfOGguaHRtbCNhZWI0ZTc5MDE5OWIwMjQ2OWFhMDRjMDQ0ZWY1Y2ZhMzIiLz4KIDxhIGhyZWY9Im5ldGlmXzhoLmh0bWwjYWYyZWQwNzE2MTIyYjY1ZTdmZWI0M2UwZGQ5OWFlNDY4Ii8+CiA8YSBocmVmPSJuZXRpZmFwaV84Yy5odG1sIi8+Ci08YSBocmVmPSJuZXRpZmFwaV84Yy5odG1sI2EwMzdjM2QwNWMxOWI0ZDQ2N2I2Y2UwNmViNDYzOWVlOCIvPgogPGEgaHJlZj0ibmV0aWZhcGlfOGMuaHRtbCNhMjZmZDgzMDQyYjUzYjJmZjgyZTE1MjYyZWQ3MmYwYTciLz4KLTxhIGhyZWY9Im5ldGlmYXBpXzhjLmh0bWwjYTYyYjBiZGJiMzc4M2ViMjdhYTczNDg1MDgxMzA2MTE5Ii8+CiA8YSBocmVmPSJuZXRpZmFwaV84aC5odG1sIi8+Ci08YSBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EwMzdjM2QwNWMxOWI0ZDQ2N2I2Y2UwNmViNDYzOWVlOCIvPgogPGEgaHJlZj0ibmV0aWZhcGlfOGguaHRtbCNhMjZmZDgzMDQyYjUzYjJmZjgyZTE1MjYyZWQ3MmYwYTciLz4KLTxhIGhyZWY9Im5ldGlmYXBpXzhoLmh0bWwjYTYyYjBiZGJiMzc4M2ViMjdhYTczNDg1MDgxMzA2MTE5Ii8+CiA8YSBocmVmPSJvcHRfOGguaHRtbCIvPgogPGEgaHJlZj0ib3B0aW1pemF0aW9uLmh0bWwiLz4KIDxhIGhyZWY9InBidWZfOGMuaHRtbCIvPgpAQCAtMjc3Nyw2ICsyOTQ0LDcgQEAKIDxhIGhyZWY9InBwcG9sMnRwXzhoLmh0bWwiLz4KIDxhIGhyZWY9InBwcG9zXzhjLmh0bWwiLz4KIDxhIGhyZWY9InBwcG9zXzhoLmh0bWwiLz4KKzxhIGhyZWY9InByb3RfMmFjZF84aC5odG1sIi8+CiA8YSBocmVmPSJwcm90XzJhdXRvaXBfOGguaHRtbCIvPgogPGEgaHJlZj0icHJvdF8yZGhjcDZfOGguaHRtbCIvPgogPGEgaHJlZj0icHJvdF8yZGhjcDZfOGguaHRtbCNhODc4YTc3MzRlMTU5ODI2ZTgyZTk1OGZlM2E1Y2ExNzUiLz4KQEAgLTMwNjAsMzAgKzMyMjgsNDAgQEAKIDxhIGhyZWY9InN0YXRzXzhoLmh0bWwjYWVhYTE0OWQ2YzA0NDViMjJlOTQ0YTA2M2UwODg0ZDBkIi8+CiA8YSBocmVmPSJzdHJ1Y3RfX2x3aXBlcmZfX3NldHRpbmdzLmh0bWwiLz4KIDxhIGhyZWY9InN0cnVjdF9fbHdpcGVyZl9fc3RhdGVfX3RjcC5odG1sIi8+Cis8YSBocmVmPSJzdHJ1Y3RhY2QuaHRtbCIvPgorPGEgaHJlZj0ic3RydWN0YWNkLmh0bWwjYTNhMDNhYTY4NzcxNjA1NWE0Zjc1ZjZlNWUzODBlNDZlIi8+Cis8YSBocmVmPSJzdHJ1Y3RhY2QuaHRtbCNhNGFiMDAyNjQ4ZDMzOGFlMzNmZmQzODI5ZTIzNzAzY2IiLz4KKzxhIGhyZWY9InN0cnVjdGFjZC5odG1sI2E0ZWIwZmU2ZDZmNWRiYzQ5YjZiOWI4YmI1YWEyMTRiYiIvPgorPGEgaHJlZj0ic3RydWN0YWNkLmh0bWwjYTlkZDRlMWI4MmRkM2U5NzcxN2YwMTFkYmY4NjJhNThlIi8+Cis8YSBocmVmPSJzdHJ1Y3RhY2QuaHRtbCNhYTE0YzJiODhjZDQ3MTgzOWQ1YjVkZTgwYmI0NmE5YWEiLz4KKzxhIGhyZWY9InN0cnVjdGFjZC5odG1sI2FhYmRlMTk2N2UzN2Q2ODViMTliOTcwMWFmNjQxYTk3YyIvPgorPGEgaHJlZj0ic3RydWN0YWNkLmh0bWwjYWI0MGI2YjNjZjU3NjM0MTM1NzUzZjI0MjYyMDdmODRhIi8+Cis8YSBocmVmPSJzdHJ1Y3RhY2QuaHRtbCNhZjJjNzk1ZWU1YjA5MDg1YmNhNTkyZDgzMGEzODg0NDgiLz4KKzxhIGhyZWY9InN0cnVjdGFsdGNwX19hbGxvY2F0b3JfX3MuaHRtbCIvPgorPGEgaHJlZj0ic3RydWN0YWx0Y3BfX2FsbG9jYXRvcl9fcy5odG1sI2E4ZDhhYTQ4ZTlhMTA1ZTlkMjVhZDRiOTBkMjU5ZDBiMSIvPgorPGEgaHJlZj0ic3RydWN0YWx0Y3BfX2FsbG9jYXRvcl9fcy5odG1sI2FhZjA3ZWJmMTgxYTExZDAzMjAzODFlZjQ2ZDQwZTY4NyIvPgogPGEgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCIvPgotPGEgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhMDFlYWE0MWIxYmJkYzkyZTc4YmEzNzEyZDI4Y2I2MTMiLz4KKzxhIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTBhYmZjOWJkYTBiMDA1NTQ2MjhiYzMxNjlkOGYyMWJmIi8+Cis8YSBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2ExODMxYTE4YmRmZTg4Y2E4OWE3NzNmYzQ3Nzk2Njg5NCIvPgogPGEgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhMWNlYjk4MjJiYTQ5YmE0MzllMzBkOTg0OTI1OTM2MTIiLz4KIDxhIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTQwNjI0YzM5OGQxOTM5YmZlZTU0YmZmYTcwOGEzNjNlIi8+Ci08YSBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E0NjAwN2NlNGYwOGQzZTM5NmYwNjhhYjgwYzlhOWFlMSIvPgogPGEgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhNGJkOTM4MmRkNDJiMTgxMjA4MDNlMjQ2YTAyMDMzNTMiLz4KLTxhIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTUwZThkNmRmYTBiYTMwYWU3ZTM5YzMzNmJmNjg3NDJjIi8+Ci08YSBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E1YWEyMmRiZDc0ZmQ3YmEyZmE1ZWI4YmM4YWFlNTI5ZiIvPgogPGEgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhNjg5NmFlNzhlYmRkZWZkZjJkODM1OGFiNWYyMWY0NDQiLz4KLTxhIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTg3Y2U4N2U1OTMxYzhmNzQ4MjkzOTQ2ZDNiMjUwNzkxIi8+Cis8YSBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E3MThiMDE2NmE5OTU2YzYwODE4OGU4Zjk5YzY2MzIwMyIvPgorPGEgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhN2M2NzQ2NmEwOGU5NmY1N2Y1Y2M4YTQxYmViODgzYjMiLz4KKzxhIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTg2NDQ3NThjZDU1ZTA4OTFlNDM3MTc3MTFhZTdiMDNiIi8+CiA8YSBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E4YzY2YmQ5NTIxN2ZhNjI3ZjEzZjJmMDg0N2JiYjI1ZiIvPgotPGEgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhYTNkNjQyMDVjMjVlOTUzYjE2ODQ0N2U2YWEyMWVlOWUiLz4KKzxhIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYThlNjAwZDk1ZWIwNDRmOGY3ZGM5ZmY5MjFhYWEwNWIxIi8+Cis8YSBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E5YjBjNzA3ODM1ODM4YzJmZmU1NWI4NWMyOTAyZDdhZCIvPgogPGEgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhYjBhYmQ2MDUyN2U5NmNjMjRjMmMyMGM4MzVjZGFjMDUiLz4KIDxhIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYWI2ZjE0MTU3YTNlNjczNWI2OWE1NjkyNDlkMzI4NmEyIi8+CiA8YSBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2FiZWM1ZTMzODAyZDY5ZjFiNjAxNTQzZDYwNjk5ZjAyOCIvPgotPGEgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhYzA2MzdjNmY0ZGJiM2Y2NGY5NWQ1MTgxZDU1ZTY2M2MiLz4KLTxhIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYWY5ODE3NzIxMDQ1YjdlYmU5OGFkNDg0NzMwZTVlOWNjIi8+Cis8YSBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2FkYmIzM2UwMzA4OWRiNTI3YjBhZjdlNGIyMmYwNGUxYyIvPgogPGEgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwiLz4KIDxhIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sI2ExM2I1ZGE4YTg2ODM5YjRjZDliZDlmNTQwMGFjOWRjNyIvPgotPGEgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwjYTJmNTFkOGNkZTczZTIwZDZlMGFlM2VjODA1M2FmYjU1Ii8+Cis8YSBocmVmPSJzdHJ1Y3RhdXRvaXAuaHRtbCNhMTk2NTI1MGNkYTg4MWQyMjllMmExZmUxNDZhMGJiOWUiLz4KIDxhIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sI2E0NzJmM2QxOGMwN2IzZGYwMjRhMGNkZThmNGZmYTg1MyIvPgogPGEgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwjYTUxYWY1NTE5MDU0OGUzNzhlMzEwYWVhZGRmYTFmZGVmIi8+Ci08YSBocmVmPSJzdHJ1Y3RhdXRvaXAuaHRtbCNhNzUxMGQ5YTI5NjFlYTdjMjhlYmZjZGU2MzkwMjg0YmYiLz4KLTxhIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sI2E5ZDNlM2JhYjJmMTJiN2M3MjgzMTc3ZmJmMDM5ZmIyNSIvPgogPGEgaHJlZj0ic3RydWN0YnJpZGdlaWZfX2luaXRkYXRhX19zLmh0bWwiLz4KIDxhIGhyZWY9InN0cnVjdGJyaWRnZWlmX19pbml0ZGF0YV9fcy5odG1sI2EwZTBiYjZhODg1OTY3YjVmY2ZlZjA5YThmMGFkYzYzZiIvPgogPGEgaHJlZj0ic3RydWN0YnJpZGdlaWZfX2luaXRkYXRhX19zLmh0bWwjYTIxMDkxNWFhMWIwNDM2Y2NhYmM3ZThkOWZkM2MzZmU2Ii8+CkBAIC0zMTExLDYgKzMyODksNyBAQAogPGEgaHJlZj0ic3RydWN0aWNtcDZfX2VjaG9fX2hkci5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3RpY21wNl9faGRyLmh0bWwiLz4KIDxhIGhyZWY9InN0cnVjdGljbXBfX2VjaG9fX2hkci5odG1sIi8+Cis8YSBocmVmPSJzdHJ1Y3RpY21wX19oZHIuaHRtbCIvPgogPGEgaHJlZj0ic3RydWN0aWVlZV9fODAyMTU0X19oZHIuaHRtbCIvPgogPGEgaHJlZj0ic3RydWN0aWVlZV9fODAyMTU0X19oZHIuaHRtbCNhMWQxZTJjZWYwZTBjMWIxZTFmZDAyYThhNWYwN2ZiMTAiLz4KIDxhIGhyZWY9InN0cnVjdGllZWVfXzgwMjE1NF9faGRyLmh0bWwjYTg3MDAwMTIwNWY1YTNjZTQ1Y2UwYjJmMzIzMjc1ODY5Ii8+CkBAIC0zMTc3LDQyICszMzU2LDY5IEBACiA8YSBocmVmPSJzdHJ1Y3Rsd2lwX19zb2NrLmh0bWwjYWE0ODdhYzE2YjdlNWI2YTJhNjE4YjdiNTA2MDI0N2UxIi8+CiA8YSBocmVmPSJzdHJ1Y3Rsd2lwX19zb2NrLmh0bWwjYWFkYmNmNWVjM2Q1MDYzMWQ4ODIxMjAwMTYzZDg4ZDM4Ii8+CiA8YSBocmVmPSJzdHJ1Y3Rsd2lwX19zb2NrLmh0bWwjYWY0MGQ2N2NiYWVmNDMxOGQyNmU1NjA5ODhiNmUxYjNhIi8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19kZWxheWVkX19tc2cuaHRtbCIvPgorPGEgaHJlZj0ic3RydWN0bWRuc19fZGVsYXllZF9fbXNnLmh0bWwjYTVjYTlmY2NjNTIzYjc4MjBmOGU2N2M5Y2NmOTIxZGE4Ii8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19kZWxheWVkX19tc2cuaHRtbCNhNjQxYWJjZjY5MmE5OWUyYzk2OTA0ODQzMmIzYzZhZGYiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2RlbGF5ZWRfX21zZy5odG1sI2E2YzdlNTgxZjFjZjY3ZGFmMDM5ZmZjYWEzMTU4MGU2MCIvPgorPGEgaHJlZj0ic3RydWN0bWRuc19fZGVsYXllZF9fbXNnLmh0bWwjYTZmMmVkOGE1MWU2ZTI0OWMzYzcyYzNlMzFmMjNkMjBiIi8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19kZWxheWVkX19tc2cuaHRtbCNhNzA1MjM4NzUwNmVmNDhiMWRiMDk5YzQ4ZjRlYzU3MzYiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2RlbGF5ZWRfX21zZy5odG1sI2FiZDUyMTA2MjQzOTRmZWNlNDVlNTdlMTZkYTg1YTQ3ZCIvPgorPGEgaHJlZj0ic3RydWN0bWRuc19fZGVsYXllZF9fbXNnLmh0bWwjYWNhYTE1ZTA4NjM1NmJlNjBiMmExYmRkOGZjYzE3ZWRkIi8+CiA8YSBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwiLz4KLTxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhNDU0N2U1YTgzNzVmYzFmMTM3MjU0NjI2OGE4MGQ1MWIiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhMDAyZTgzNmExODg4YzdkZjRjZjJiNzc1YzdmYWU1NTciLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhMDdhYWRmOWYzMDhlZWUxNmE5OTA0MTYzNWRmMzgxMjMiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhMTYwMTYwMjFkZGFiYjFkYzE4MmYzNmM3MTg1YmYyODMiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhMmVkNTFiMTY3NzE1OTA5MTdlMGVlZjVjZjI1YWRhNzEiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhNTYwNDQ3YjM2NDg1NGViNTQ4MGUxMzdlMDlkM2NkMjQiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhNzUwYzMxMzQwYzIyZTUxMzc1ZTRkYzNlNmU5NGYyZWQiLz4KLTxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhYzhmNmUzYzZlMTI1MWJmNzNmMDQzZTQ4OWM4NDA5MjIiLz4KLTxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhZjljZWQzMWMzNWRlNmEyODFlNWIxM2YwMWU1YWFlNjEiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhOWMwOWI1YzU4YjNkYjY0Zjc4Y2U4ZWViMTQ5NTJiZWEiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhOWQwZGYzMzIzMWNkOGI1MGUyNWFhMWZhNGViZGMyOTEiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhYjFjYTkwYjI4MmE0YTY1MTFmYTg3NDA4Yjk0NmY0OWEiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhYjUwOTliMWJmZTI3Njk4ZjZjYzdhYzM2YTgwMTExYTAiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sIi8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19vdXRtc2cuaHRtbCNhMTg3Nzc0YzE3Mjk0OTY4OTk4YjZmMTJiYjU4MzRjZDAiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2ExZDJkNWYxZDVkMzY2ZjMxZDY1Y2ExOGEyMzliZmQ0ZSIvPgorPGEgaHJlZj0ic3RydWN0bWRuc19fb3V0bXNnLmh0bWwjYTNmNjgxMGZiMWYyYTk4OWFmY2JjMmZkODUyYTIwMzg2Ii8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19vdXRtc2cuaHRtbCNhNGEzZWU5OWY3YzI1ZTg4ZjE3ZWE5MTI4OTc2MTdhYTAiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2E4MTE4ZjZjMjYzZjZmODcyNzU1MjYyMGRlYWMyYjdjMiIvPgorPGEgaHJlZj0ic3RydWN0bWRuc19fb3V0bXNnLmh0bWwjYThhYmNkNWIzZTA0YzE2YTc1NzUyYjM2Y2Y2MTNhYzZmIi8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19vdXRtc2cuaHRtbCNhYWIyZDVjNTY2ZGNkODM4NzRkOWNjNzdjZDVmYzcyNTMiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2FiNDZmMTU4OTY4MWExYWJlODI2ZThmNmM1OGQxMGYxYSIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2EwZDQwMmNkZTA0MDcyOGQzNjFkZWM4ZjdkODZmNTA0YyIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwjYTFhNjg5ZWE3MDk0YTM1Njk4NzhmMTU0NzdlNzI1MDM1Ii8+Ci08YSBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhMWZkYzkwYjQ4ZDhjZjFmYzI0ODk1ZjBjN2E1Nzk4ZTQiLz4KLTxhIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2E2ODI1NTcyNTU3NWFmMDg2YTNhZmE3NmJjNWM4ZTY0ZCIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwjYTgzZDQ1MDQ3MzZmMmJmMzE1ZmM4YjcxMmM2YTQ0NmU5Ii8+CiA8YSBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhOGVhZDIxZTM5MmIyMWMzZTg3MmMwY2FiODc0Y2RjZjUiLz4KLTxhIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2E5YmQwZmQ5MWRkYTQ4YmFhMjkzOGRkZGQ3NDdkMzE5NSIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwjYWFkMmMyNGQ0ZDVhOTM1YTIwOTk2NmNlYWNlODJmOWFkIi8+Ci08YSBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhYzQ3MGYwMmE5ZjMzMmYxOGUwMjc0MzdkYzI5M2QzNDgiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2FjZGE4MzEyMWE5YmI3ODVkMjBmOTc5YTBhM2EzMTJjZSIvPgotPGEgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwjYWQwYmQwNjZmMTI3ZDM1YTBjZTY3MTkzZTFjZDA3NDMwIi8+CiA8YSBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhZWU5N2U5OGM0ODY5YWE2M2ZmZTM0OGQzOGQ4NzIyMWYiLz4KLTxhIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2FmZjhjNTIwYmZmYTg3Yzc4ZTBlZTI0NDA1NzFiYmQ2NSIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2EwMWYyY2Q2NDRjZWRhMDIwZDYzOTI5MGZlMWMzZWExYyIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYTA5MjExZTc4ZjdmNzczYzQ5MmI1ODU2ZDMxNDIzNjk5Ii8+CiA8YSBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhMGNkNzFmZDlhZjZkMjUyOWU2YTQxYzQ1MWMwMzdlMDAiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2ExZmY0NTQ3ZDA4NjZmMzM4ZDFjNThmYzFkYWRmNDNmMSIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYTJlYzAyYTY3ZmQ4MmYwZGY2OTVlOTQ3NDVlZGRhZjQ1Ii8+CiA8YSBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhNGMzYzNhMjhhYzExM2IzZWU0MGQ1Y2YwN2Q4NTFmNjgiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2E1NmJhNDk1YTE0NThhMjE5ODJlNjVkNzQ2NDY4ODQ5ZCIvPgogPGEgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYTg2NTliNGY1ODJiZTBkZjg0YjZhZTkxMzA4NzM3Mzc3Ii8+CiA8YSBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhOTE4ZmVlZTI0MmNmYjM5MzRkOWY1YzNkZTFjMjk4ZTciLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2FhYTY0Y2MyMTQ5NWRjNmJiNzZlZDkxMjU5MDRkZDA3YSIvPgotPGEgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYWM3MzA3ZjM0NGY2NTRjYjk1NGY5MmQ1NzhkYzdjOTg5Ii8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhYjdkMWQwMDRkY2FjM2NiNjc2MTI0MWM1ZmU1OGIwYWIiLz4KKzxhIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2FjNDdmNWE4NGMxNzNhMTU2NWM2OTY3MzUzNjUzN2M4OSIvPgorPGEgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYWRlOTI2MjY5ZjZiMWRlMmU1MWVlOTJhNzAzMDY4NDQ1Ii8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhZmRiNzgyMThjMTc3NTA3Mzc2MmQ5NTYwOTg2YzExOWIiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2FmZGI5YzE0ZGQwYzkxNTExOWI4YWRiNTg0MzgxYTQzNyIvPgorPGEgaHJlZj0ic3RydWN0bWRuc19fcmVxdWVzdC5odG1sIi8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19yZXF1ZXN0Lmh0bWwjYTEwODBiNTYxYzhkY2IzMjJmYjJhZjY0MjE3YjEzZjY0Ii8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19yZXF1ZXN0Lmh0bWwjYTNlZDE4ZGFkNTAwMTI1ZTBkNjMyNzRjNzk3YmQ1MmY1Ii8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19yZXF1ZXN0Lmh0bWwjYTQ5N2UxYjhmNjY0ZGFiOTkwNGE4OWU1ZjE1ZjViYzYwIi8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19yZXF1ZXN0Lmh0bWwjYTRjYzhhNGU2MmNlNzFiYzMzZjFlN2NiMjRiMTk4YzFkIi8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19yZXF1ZXN0Lmh0bWwjYTVhOTI2MTM2MjIxM2ExYTc5MGEwYjM0NTE5MTZmNjY5Ii8+Cis8YSBocmVmPSJzdHJ1Y3RtZG5zX19yZXF1ZXN0Lmh0bWwjYWFjZTZhYjhiN2RlNzNkNjFkMDI3MTFmMjZkZTdiNzUxIi8+CiA8YSBocmVmPSJzdHJ1Y3RtZG5zX19ycl9faW5mby5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3RtZG5zX19zZXJ2aWNlLmh0bWwiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhMzVkYWZmOTBhMThkMTliMTRmMjNmYTAyZGY0MjRmOTQiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhNDI1ODM5ODZlMjRiNWE0YTEzYjZkNjQ3YzFhMjgxYWQiLz4KLTxhIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhNWE5MzlhNGRhMDFjYjUwYzc0Y2Q1M2IzNTJlNGZhMTQiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhNzliYzQ5NDZjOTZhM2IyZDA3MTNiYzA4OTdjNGJkOWMiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhYTlmMmUwYmI2N2QzODQ4MTUyZTYwNzZlOTJlODAxOGQiLz4KIDxhIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhYmJmMzE3Y2RlOGZiN2JhOGQ4MzRhZDk3NDZkZDc4MGMiLz4KQEAgLTMzMTAsNyArMzUxNiw2IEBACiA8YSBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYTliNTkxODhmMzAwODI4ZDJiNTgxNGUyN2FiMjdjYWQwIi8+CiA8YSBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYTlmMmJmNmEzODY1YjZhMjJhOGE3MWVjMmYzZTc3MGRhIi8+CiA8YSBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYWJlNzk2MDYwYmIwNmU1ODUzMzNjYTlhODc4NjJiNjI0Ii8+Ci08YSBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYWM4ZTA1ZWI2NTc3NDY2NWUzNjRhM2RjZjBmMTM5YjM2Ii8+CiA8YSBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYWQwOGM1NjEzYTNhNmZhOWZlNTY5YjRhY2YzMDk3M2Y4Ii8+CiA8YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIi8+CiA8YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2ExNTEzZTgxZDAyNTU3ZDJhOTUwZTk2NWYxOGI1M2E0NSIvPgpAQCAtMzQ5OSw2ICszNzA0LDcgQEAKIDxhIGhyZWY9InN0cnVjdHRjcF9fcGNiX19saXN0ZW4uaHRtbCNhMDQ4M2QwYzJhMjc1OGRjZWYxODY4OWJlMmVmYmRmMzQiLz4KIDxhIGhyZWY9InN0cnVjdHRjcF9fcGNiX19saXN0ZW4uaHRtbCNhOGE0ZjdiMDU1MWEwYzY5MjZhMDhlYTViNmIzZDU5ODciLz4KIDxhIGhyZWY9InN0cnVjdHRmdHBfX2NvbnRleHQuaHRtbCIvPgorPGEgaHJlZj0ic3RydWN0dGZ0cF9fY29udGV4dC5odG1sI2EzOWNiYjg0YTljMGVhYThlYTYyZDE4M2JhODIxNDUxOSIvPgogPGEgaHJlZj0ic3RydWN0dGZ0cF9fY29udGV4dC5odG1sI2E2NWQ2MzU5ZTJhYWM1NzE4MTNjMDVjNjE2NzZjMDFhMSIvPgogPGEgaHJlZj0ic3RydWN0dGZ0cF9fY29udGV4dC5odG1sI2E3NDhlMzdkZjBjOGI4NGIzYWRkYTc4ZDYwM2I5MDMzYyIvPgogPGEgaHJlZj0ic3RydWN0dGZ0cF9fY29udGV4dC5odG1sI2E5ZTZlNGVjODAzZWM5NTk3ODIyOTIzMzY5NzAxNzU0ZCIvPgpAQCAtMzUzOSw3ICszNzQ1LDYgQEAKIDxhIGhyZWY9InRjcF84Yy5odG1sI2EwOGEzYjUzOTZjNDBmMzJkZDhiMjFlN2Q2M2IzZTFiMyIvPgogPGEgaHJlZj0idGNwXzhjLmh0bWwjYTBjYjNmNjA0ZmM4ZDIwODcwZDhjYWIyOTFkYTU3MDFjIi8+CiA8YSBocmVmPSJ0Y3BfOGMuaHRtbCNhMWI0MmE3YWMwZmMxNzNhNDJkNTc1Zjg2ODUzZDMyYTgiLz4KLTxhIGhyZWY9InRjcF84Yy5odG1sI2EyYzQyMzRmMWU5NWI2YmRlMGU4NGQ0ZWE5N2FlOTViYyIvPgogPGEgaHJlZj0idGNwXzhjLmh0bWwjYTM4NDZhNzU2YjEzMjE0ZWQ4OGVhNDdkMGZmODI3OWViIi8+CiA8YSBocmVmPSJ0Y3BfOGMuaHRtbCNhM2Q5YmI5ODA5NzY5MTk3YmNlOWIyNDk5ZDU1Y2YyOGMiLz4KIDxhIGhyZWY9InRjcF84Yy5odG1sI2E0MjFmYjQyZWY5MTkwMThlMTRhZTQxM2FkZmVlOTkwNSIvPgpAQCAtMzU2NSw3ICszNzcwLDYgQEAKIDxhIGhyZWY9InRjcF84aC5odG1sI2EwMDUxN2FiY2U2ODU2ZDZjODJmMGVmZWJkYWZiNzM0ZCIvPgogPGEgaHJlZj0idGNwXzhoLmh0bWwjYTFiNGY5ZTM1NTFlNTc1YzBlZjA2ZDZkYWE3ZjA2ZTU1Ii8+CiA8YSBocmVmPSJ0Y3BfOGguaHRtbCNhMjA4ODFlNTM3ZjViZTc4NDdkODhmZTJhMGM4ZmQyY2QiLz4KLTxhIGhyZWY9InRjcF84aC5odG1sI2EyYzQyMzRmMWU5NWI2YmRlMGU4NGQ0ZWE5N2FlOTViYyIvPgogPGEgaHJlZj0idGNwXzhoLmh0bWwjYTY2ZGViOTc2MThhOWNkOWQ1N2ZjYTI4YzUyNDVlMDczIi8+CiA8YSBocmVmPSJ0Y3BfOGguaHRtbCNhNzgwY2ZhYzA4YjAyYzY2OTQ4YWI5NGVhOTc0MjAyZTgiLz4KIDxhIGhyZWY9InRjcF84aC5odG1sI2E4NzQ2MzAwNDUxMDJmYzVmMTQ0MjcwNGE3OTBjOGJiOCIvPgpAQCAtMzU4MCw2ICszNzg0LDcgQEAKIDxhIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYTFmMzE4OTMwYmQ2ZDQ5MDc0MzQzY2M3OWM1MTY2ZjM5Ii8+CiA8YSBocmVmPSJ0Y3BfX291dF84Yy5odG1sI2EyNWQ3ZTkwODFiYWE1Yzg0ZjJlYmQzNGIwZWI0MTY5YiIvPgogPGEgaHJlZj0idGNwX19vdXRfOGMuaHRtbCNhNmMyMDQ5MGFhNDVjNzcxYzM4Y2U4YWQzMDMxY2JkZjYiLz4KKzxhIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYTdjZjdjYmM1YWE0NzNkZTgxMTZkYzlmMDBjYmM1ZDU3Ii8+CiA8YSBocmVmPSJ0Y3BfX291dF84Yy5odG1sI2E5ZWY5ZGMwOTRlMjFiZGYwNzc5YWVkMjVhYjBiMDhkNCIvPgogPGEgaHJlZj0idGNwX19vdXRfOGMuaHRtbCNhYTJlZjIyZDIzODQyMjVhMWI1ZmVlMTg3NDExY2MxMjkiLz4KIDxhIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYWE3ZDVkNTUyNjQ3ZDU2NzA5NTg3NmFhYjIwMmJmZDFhIi8+CkBAIC0zNjA5LDYgKzM4MTQsNyBAQAogPGEgaHJlZj0idGNwX19wcml2XzhoLmh0bWwjYTZjMjA0OTBhYTQ1Yzc3MWMzOGNlOGFkMzAzMWNiZGY2Ii8+CiA8YSBocmVmPSJ0Y3BfX3ByaXZfOGguaHRtbCNhNmQyYzI1NGI3NzlkYjRlNTE3Y2IzNGU0MTMwMTU4OGQiLz4KIDxhIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2E3OGMwOWRiYWU2N2NjYzA2YjY1OWQ5ZjFhMzg4ZjkxMSIvPgorPGEgaHJlZj0idGNwX19wcml2XzhoLmh0bWwjYTdjZjdjYmM1YWE0NzNkZTgxMTZkYzlmMDBjYmM1ZDU3Ii8+CiA8YSBocmVmPSJ0Y3BfX3ByaXZfOGguaHRtbCNhODE4MWJjMzE2ZmRmNjFiODVmNzg3YzVjYWRmY2QyNDkiLz4KIDxhIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2E5Mzg0YjQzNmRlOTVkNWJmODU1MDQzOGI5ZDNjOGNkNCIvPgogPGEgaHJlZj0idGNwX19wcml2XzhoLmh0bWwjYTk2ZmUxMzUwZTUxMGQ0MzA4YWM5OTY5ZmZiNGM5YzgxIi8+CkBAIC0zNjQxLDYgKzM4NDcsNyBAQAogPGEgaHJlZj0idGNwaXBfOGMuaHRtbCNhM2Q0MmIwYzQ2NjA3ZjkxYWVkY2M3NzQ1ZWQ0NjZiMDgiLz4KIDxhIGhyZWY9InRjcGlwXzhjLmh0bWwjYTU1YjRkZTM3NjVjNmEzN2IzZjJiMjZhMTE2MDM3NzFjIi8+CiA8YSBocmVmPSJ0Y3BpcF84Yy5odG1sI2E1Y2RjYjZiNzg0ZmUwZTg3MzZhNWIzMWE1Y2ZiZWQ2YyIvPgorPGEgaHJlZj0idGNwaXBfOGMuaHRtbCNhOGQ4YTJhYzAyNzFkZWY3MWE0Y2EzMWIyNGEzMTIyOGYiLz4KIDxhIGhyZWY9InRjcGlwXzhjLmh0bWwjYTkzMDQzYjNjNjZkYmU0YTE1YTYwMjk5YzYxOTlkMTAyIi8+CiA8YSBocmVmPSJ0Y3BpcF84Yy5odG1sI2FjZDdiZTIxMDhlOWE0N2ZkOGYxYWIwYTQ5Zjc2MjQxZCIvPgogPGEgaHJlZj0idGNwaXBfOGguaHRtbCIvPgpAQCAtMzY0OSwxNCArMzg1NiwxOSBAQAogPGEgaHJlZj0idGNwaXBfOGguaHRtbCNhNTViNGRlMzc2NWM2YTM3YjNmMmIyNmExMTYwMzc3MWMiLz4KIDxhIGhyZWY9InRjcGlwXzhoLmh0bWwjYTVjZGNiNmI3ODRmZTBlODczNmE1YjMxYTVjZmJlZDZjIi8+CiA8YSBocmVmPSJ0Y3BpcF84aC5odG1sI2E1ZmUwNzIxNmM0NDFlMjdjMzAyOGJjYWM2MGZhMDk5MiIvPgorPGEgaHJlZj0idGNwaXBfOGguaHRtbCNhOGQ4YTJhYzAyNzFkZWY3MWE0Y2EzMWIyNGEzMTIyOGYiLz4KIDxhIGhyZWY9InRjcGlwXzhoLmh0bWwjYTkxNWVmZmVhMDI5YjljNDg5MWUxZWM2MzVlYjE4MjZkIi8+CiA8YSBocmVmPSJ0Y3BpcF84aC5odG1sI2E5MzA0M2IzYzY2ZGJlNGExNWE2MDI5OWM2MTk5ZDEwMiIvPgogPGEgaHJlZj0idGNwaXBfOGguaHRtbCNhY2Q3YmUyMTA4ZTlhNDdmZDhmMWFiMGE0OWY3NjI0MWQiLz4KIDxhIGhyZWY9InRjcGlwX19wcml2XzhoLmh0bWwiLz4KIDxhIGhyZWY9InRjcGlwX19wcml2XzhoLmh0bWwjYTEyYmRmMzdlZGRjZDcyYzQxNzhlM2VhN2QzNzAzOTVkIi8+CiA8YSBocmVmPSJ0Y3BpcF9fcHJpdl84aC5odG1sI2EzZDQyYjBjNDY2MDdmOTFhZWRjYzc3NDVlZDQ2NmIwOCIvPgorPGEgaHJlZj0idGZ0cF84Yy5odG1sIi8+Cis8YSBocmVmPSJ0ZnRwXzhjLmh0bWwjYTVjNmNmM2RlODRhMGRjOTkwYzA1NWQ2NmU1NzRjYTcwIi8+Cis8YSBocmVmPSJ0ZnRwX19jbGllbnRfOGguaHRtbCIvPgorPGEgaHJlZj0idGZ0cF9fY29tbW9uXzhoLmh0bWwiLz4KKzxhIGhyZWY9InRmdHBfX2NvbW1vbl84aC5odG1sI2E1YzZjZjNkZTg0YTBkYzk5MGMwNTVkNjZlNTc0Y2E3MCIvPgogPGEgaHJlZj0idGZ0cF9fb3B0c184aC5odG1sIi8+Ci08YSBocmVmPSJ0ZnRwX19zZXJ2ZXJfOGMuaHRtbCIvPgogPGEgaHJlZj0idGZ0cF9fc2VydmVyXzhoLmh0bWwiLz4KIDxhIGhyZWY9InRpbWVvdXRzXzhjLmh0bWwiLz4KIDxhIGhyZWY9InRpbWVvdXRzXzhjLmh0bWwjYTYwZjQyZjE2N2Y0OTZmNmY3NDBjOGRmNDhmNGRkMjZjIi8+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9lcnJfOGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Vycl84Yy5odG1sCmluZGV4IDk4MzU2NGIuLmUwZmFjY2YgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Vycl84Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Vycl84Yy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Vycl84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZXJyXzhoLmh0bWwKaW5kZXggMmZjN2UwYy4uMDg3MWY3MiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZXJyXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZXJyXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZXRoYXJwXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ldGhhcnBfOGMuaHRtbAppbmRleCA2MDdhNGIxLi45MWZlOTE5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ldGhhcnBfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ldGhhcnBfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTAsNiArMTEwLDcgQEAKIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF84aC5odG1sIj5sd2lwL3NubXAuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGguaHRtbCI+bHdpcC9kaGNwLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJhdXRvaXBfOGguaHRtbCI+bHdpcC9hdXRvaXAuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+Cis8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84aC5odG1sIj5sd2lwL2FjZC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0iaWFuYV84aC5odG1sIj5sd2lwL3Byb3QvaWFuYS5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfMmV0aGVybmV0XzhoLmh0bWwiPm5ldGlmL2V0aGVybmV0Lmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJmx0O3N0cmluZy5oJmd0OzwvY29kZT48YnIgLz4KQEAgLTE0NywxMSArMTQ4LDE1IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjphZTE4MDc3MmUzMTM0NmEwYWZlYjcwN2FkMTcyZGQxOWMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06YTNlNTZmYWNlZDk2ODQxZTYxNWY4OGRkNTdkMWIyYjE1IiBpZD0icl9hM2U1NmZhY2VkOTY4NDFlNjE1Zjg4ZGQ1N2QxYjJiMTUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTNlNTZmYWNlZDk2ODQxZTYxNWY4OGRkNTdkMWIyYjE1Ij5ldGhhcnBfcmVxdWVzdDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIGNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTNkM2I0NWRhZmZiYzE1ZDY1ZGEyMzZlMzFlNjIxYjdlIj5pcDRfYWRkcl90PC9hPiAqaXBhZGRyKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmEzZTU2ZmFjZWQ5Njg0MWU2MTVmODhkZDU3ZDFiMmIxNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphYWM3ZDUwNDhhODFlZjFjNjNiMThkNzY5NzAwZjQ4OTkiIGlkPSJyX2FhYzdkNTA0OGE4MWVmMWM2M2IxOGQ3Njk3MDBmNDg5OSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhYWM3ZDUwNDhhODFlZjFjNjNiMThkNzY5NzAwZjQ4OTkiPmV0aGFycF9hY2RfcHJvYmU8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBjb25zdCA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2EzZDNiNDVkYWZmYmMxNWQ2NWRhMjM2ZTMxZTYyMWI3ZSI+aXA0X2FkZHJfdDwvYT4gKmlwYWRkcik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphYWM3ZDUwNDhhODFlZjFjNjNiMThkNzY5NzAwZjQ4OTkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YTdjNDFiYThiMTQ1ZmE0ZDA2ZjhkNmFmM2RmNDRjNGZmIiBpZD0icl9hN2M0MWJhOGIxNDVmYTRkMDZmOGQ2YWYzZGY0NGM0ZmYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTdjNDFiYThiMTQ1ZmE0ZDA2ZjhkNmFmM2RmNDRjNGZmIj5ldGhhcnBfYWNkX2Fubm91bmNlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgY29uc3QgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiPmlwNF9hZGRyX3Q8L2E+ICppcGFkZHIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTdjNDFiYThiMTQ1ZmE0ZDA2ZjhkNmFmM2RmNDRjNGZmIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48cD5BZGRyZXNzIFJlc29sdXRpb24gUHJvdG9jb2wgbW9kdWxlIGZvciBJUCBvdmVyIEV0aGVybmV0PC9wPgogPHA+RnVuY3Rpb25hbGx5LCBBUlAgaXMgZGl2aWRlZCBpbnRvIHR3byBwYXJ0cy4gVGhlIGZpcnN0IG1hcHMgYW4gSVAgYWRkcmVzcyB0byBhIHBoeXNpY2FsIGFkZHJlc3Mgd2hlbiBzZW5kaW5nIGEgcGFja2V0LCBhbmQgdGhlIHNlY29uZCBwYXJ0IGFuc3dlcnMgcmVxdWVzdHMgZnJvbSBvdGhlciBtYWNoaW5lcyBmb3Igb3VyIHBoeXNpY2FsIGFkZHJlc3MuPC9wPgotPHA+VGhpcyBpbXBsZW1lbnRhdGlvbiBjb21wbGllcyB3aXRoIFJGQyA4MjYgKEV0aGVybmV0IEFSUCkuIEl0IHN1cHBvcnRzIEdyYXR1aXRpb3VzIEFSUCBmcm9tIFJGQzMyMjAgKElQIE1vYmlsaXR5IFN1cHBvcnQgZm9yIElQdjQpIHNlY3Rpb24gNC42IGlmIGFuIGludGVyZmFjZSBjYWxscyA8YSBjbGFzcz0iZWwiIGhyZWY9Imx3aXBfMmV0aGFycF84aC5odG1sI2E4Mzk0N2RlYTE1OWJhZjM0MjA5MjIwODQwNzJlNjMxZSI+ZXRoYXJwX2dyYXR1aXRvdXMob3VyX25ldGlmKTwvYT4gdXBvbiBhZGRyZXNzIGNoYW5nZS4gPC9wPgorPHA+VGhpcyBpbXBsZW1lbnRhdGlvbiBjb21wbGllcyB3aXRoIFJGQyA4MjYgKEV0aGVybmV0IEFSUCkuIEl0IHN1cHBvcnRzIEdyYXR1aXRvdXMgQVJQIGZyb20gUkZDMzIyMCAoSVAgTW9iaWxpdHkgU3VwcG9ydCBmb3IgSVB2NCkgc2VjdGlvbiA0LjYgaWYgYW4gaW50ZXJmYWNlIGNhbGxzIDxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwjYTgzOTQ3ZGVhMTU5YmFmMzQyMDkyMjA4NDA3MmU2MzFlIj5ldGhhcnBfZ3JhdHVpdG91cyhvdXJfbmV0aWYpPC9hPiB1cG9uIGFkZHJlc3MgY2hhbmdlLiA8L3A+CiA8L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5NYWNybyBEZWZpbml0aW9uIERvY3VtZW50YXRpb248L2gyPgogPGEgaWQ9ImFjNzE1MTVhNmYxNDBiMjVkZTQ5ZTliZjQzMmIyYmIyYSIgbmFtZT0iYWM3MTUxNWE2ZjE0MGIyNWRlNDllOWJmNDMyYjJiYjJhIj48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWM3MTUxNWE2ZjE0MGIyNWRlNDllOWJmNDMyYjJiYjJhIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5BUlBfQUdFX1JFUkVRVUVTVF9VU0VEX1VOSUNBU1Q8L2gyPgpAQCAtMjE1LDYgKzIyMCw2NiBAQAogPC9kaXY+CiA8L2Rpdj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImE3YzQxYmE4YjE0NWZhNGQwNmY4ZDZhZjNkZjQ0YzRmZiIgbmFtZT0iYTdjNDFiYThiMTQ1ZmE0ZDA2ZjhkNmFmM2RmNDRjNGZmIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTdjNDFiYThiMTQ1ZmE0ZDA2ZjhkNmFmM2RmNDRjNGZmIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5ldGhhcnBfYWNkX2Fubm91bmNlKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gZXRoYXJwX2FjZF9hbm5vdW5jZSA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm5ldGlmPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3QgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiPmlwNF9hZGRyX3Q8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmlwYWRkcjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5TZW5kIGFuIEFSUCByZXF1ZXN0IHBhY2tldCBhbm5vdW5jaW5nIGFuIGlwYWRkci4gVXNlZCB0byBzZW5kIGFubm91bmNlIG1lc3NhZ2VzIGZvciBhZGRyZXNzIGNvbmZsaWN0IGRldGVjdGlvbi48L3A+Cis8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bmV0aWY8L3RkPjx0ZD50aGUgbHdpcCBuZXR3b3JrIGludGVyZmFjZSBvbiB3aGljaCB0byBzZW5kIHRoZSByZXF1ZXN0IDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmlwYWRkcjwvdGQ+PHRkPnRoZSBJUCBhZGRyZXNzIHRvIGFubm91bmNlIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyBpZiB0aGUgcmVxdWVzdCBoYXMgYmVlbiBzZW50IEVSUl9NRU0gaWYgdGhlIEFSUCBwYWNrZXQgY291bGRuJ3QgYmUgYWxsb2NhdGVkIGFueSBvdGhlciBlcnJfdCBvbiBmYWlsdXJlIDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJhYWM3ZDUwNDhhODFlZjFjNjNiMThkNzY5NzAwZjQ4OTkiIG5hbWU9ImFhYzdkNTA0OGE4MWVmMWM2M2IxOGQ3Njk3MDBmNDg5OSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FhYzdkNTA0OGE4MWVmMWM2M2IxOGQ3Njk3MDBmNDg5OSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+ZXRoYXJwX2FjZF9wcm9iZSgpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IGV0aGFycF9hY2RfcHJvYmUgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTNkM2I0NWRhZmZiYzE1ZDY1ZGEyMzZlMzFlNjIxYjdlIj5pcDRfYWRkcl90PC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5pcGFkZHI8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+U2VuZCBhbiBBUlAgcmVxdWVzdCBwYWNrZXQgcHJvYmluZyBmb3IgYW4gaXBhZGRyLiBVc2VkIHRvIHNlbmQgcHJvYmUgbWVzc2FnZXMgZm9yIGFkZHJlc3MgY29uZmxpY3QgZGV0ZWN0aW9uLjwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPnRoZSBsd2lwIG5ldHdvcmsgaW50ZXJmYWNlIG9uIHdoaWNoIHRvIHNlbmQgdGhlIHJlcXVlc3QgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+aXBhZGRyPC90ZD48dGQ+dGhlIElQIGFkZHJlc3MgdG8gcHJvYmUgPC90ZD48L3RyPgorICA8L3RhYmxlPgorICA8L2RkPgorPC9kbD4KKzxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+RVJSX09LIGlmIHRoZSByZXF1ZXN0IGhhcyBiZWVuIHNlbnQgRVJSX01FTSBpZiB0aGUgQVJQIHBhY2tldCBjb3VsZG4ndCBiZSBhbGxvY2F0ZWQgYW55IG90aGVyIGVycl90IG9uIGZhaWx1cmUgPC9kZD48L2RsPgorCis8L2Rpdj4KKzwvZGl2PgogPGEgaWQ9ImFlOTQ2NzdhMmE1ZjM2OTgyNzYwMjdjNzQ3NWY2Y2EwNSIgbmFtZT0iYWU5NDY3N2EyYTVmMzY5ODI3NjAyN2M3NDc1ZjZjYTA1Ij48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWU5NDY3N2EyYTVmMzY5ODI3NjAyN2M3NDc1ZjZjYTA1Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5ldGhhcnBfY2xlYW51cF9uZXRpZigpPC9oMj4KIApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZXRoYXJwXzhjLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZXRoYXJwXzhjLmpzCmluZGV4IDUxZWEwMDguLmZhNGE2NGQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2V0aGFycF84Yy5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ldGhhcnBfOGMuanMKQEAgLTQsNiArNCw4IEBACiAgICAgWyAiQVJQX01BWFBFTkRJTkciLCAiZXRoYXJwXzhjLmh0bWwjYTBhMDNmZWExM2UwNjBkYTVhNTNhMTBhNzVhOTZkZWY5IiwgbnVsbCBdLAogICAgIFsgIkVUSEFSUF9GTEFHX1RSWV9IQVJEIiwgImV0aGFycF84Yy5odG1sI2E5NmY4Nzg3Y2E2MjNlNzA0ZGExZDMyY2E3ZGQ2ZDZkOSIsIG51bGwgXSwKICAgICBbICJldGhhcnBfc3RhdGUiLCAiZXRoYXJwXzhjLmh0bWwjYWU5NWRlZTkzNjNlNmQzNDE3Mjk4ZTA3MzgwYjJkMzgzIiwgbnVsbCBdLAorICAgIFsgImV0aGFycF9hY2RfYW5ub3VuY2UiLCAiZXRoYXJwXzhjLmh0bWwjYTdjNDFiYThiMTQ1ZmE0ZDA2ZjhkNmFmM2RmNDRjNGZmIiwgbnVsbCBdLAorICAgIFsgImV0aGFycF9hY2RfcHJvYmUiLCAiZXRoYXJwXzhjLmh0bWwjYWFjN2Q1MDQ4YTgxZWYxYzYzYjE4ZDc2OTcwMGY0ODk5IiwgbnVsbCBdLAogICAgIFsgImV0aGFycF9jbGVhbnVwX25ldGlmIiwgImV0aGFycF84Yy5odG1sI2FlOTQ2NzdhMmE1ZjM2OTgyNzYwMjdjNzQ3NWY2Y2EwNSIsIG51bGwgXSwKICAgICBbICJldGhhcnBfZmluZF9hZGRyIiwgImV0aGFycF84Yy5odG1sI2EwZjhjYTg3YzU0NzJmYTE2NTc2M2M4YzM4Yjc2MTc0YyIsIG51bGwgXSwKICAgICBbICJldGhhcnBfZ2V0X2VudHJ5IiwgImV0aGFycF84Yy5odG1sI2FiOTNkZjdjY2IyNjQ5NjEwMGQ0NTEzNzU0MWU4NjNjOCIsIG51bGwgXSwKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2V0aGVybmV0XzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ldGhlcm5ldF84Yy5odG1sCmluZGV4IDY1N2I0YjYuLjkyY2I0ODggMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2V0aGVybmV0XzhjLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZXRoZXJuZXRfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ldGhpcDZfOGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2V0aGlwNl84Yy5odG1sCmluZGV4IDM4NmM5OGYuLmZjMWM1MTEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2V0aGlwNl84Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2V0aGlwNl84Yy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2V0aGlwNl84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZXRoaXA2XzhoLmh0bWwKaW5kZXggMTJjZTBlOC4uYmQ2NjZiZSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZXRoaXA2XzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZXRoaXA2XzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZmlsZXMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2ZpbGVzLmh0bWwKaW5kZXggM2Y5OWU0Ny4uNzliOGI2NyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZmlsZXMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9maWxlcy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyNyw2ICsxMjcsOCBAQAogPHRyIGlkPSJyb3dfMF8xXzJfMF8iIGNsYXNzPSJvZGQiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcGVyZl84Yy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5sd2lwZXJmLmM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfMV8zXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjMycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gaWQ9ImFycl8wXzFfM18iIGNsYXNzPSJhcnJvdyIgb25jbGljaz0iZHluc2VjdGlvbi50b2dnbGVGb2xkZXIoJzBfMV8zXycpIj4mIzk2NTg7PC9zcGFuPjxzcGFuIGlkPSJpbWdfMF8xXzNfIiBjbGFzcz0iaWNvbmZjbG9zZWQiIG9uY2xpY2s9ImR5bnNlY3Rpb24udG9nZ2xlRm9sZGVyKCcwXzFfM18nKSI+JiMxNjA7PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGlyX2ZlYmUzYTYzNzkwNzY2NmU4YjI1MzY2YWU2MGVmYzBiLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfMV8zXzBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnMuYzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8xXzNfMV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tZG5zX2RvbWFpbi5jPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzFfM18yXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnNfb3V0LmM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfMV80XyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDozMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGlkPSJhcnJfMF8xXzRfIiBjbGFzcz0iYXJyb3ciIG9uY2xpY2s9ImR5bnNlY3Rpb24udG9nZ2xlRm9sZGVyKCcwXzFfNF8nKSI+JiM5NjU4Ozwvc3Bhbj48c3BhbiBpZD0iaW1nXzBfMV80XyIgY2xhc3M9Imljb25mY2xvc2VkIiBvbmNsaWNrPSJkeW5zZWN0aW9uLnRvZ2dsZUZvbGRlcignMF8xXzRfJykiPiYjMTYwOzwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImRpcl9kZmFjZDRiMDA1ZjZhNzQzMjk1Y2QxZDc2ZWZmNzQyMC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tcXR0PC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+CiA8dHIgaWQ9InJvd18wXzFfNF8wXyIgY2xhc3M9Im9kZCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtcXR0XzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1xdHQuYzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgogPHRyIGlkPSJyb3dfMF8xXzVfIiBjbGFzcz0ib2RkIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MzJweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBpZD0iYXJyXzBfMV81XyIgY2xhc3M9ImFycm93IiBvbmNsaWNrPSJkeW5zZWN0aW9uLnRvZ2dsZUZvbGRlcignMF8xXzVfJykiPiYjOTY1ODs8L3NwYW4+PHNwYW4gaWQ9ImltZ18wXzFfNV8iIGNsYXNzPSJpY29uZmNsb3NlZCIgb25jbGljaz0iZHluc2VjdGlvbi50b2dnbGVGb2xkZXIoJzBfMV81XycpIj4mIzE2MDs8L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJkaXJfNTZkMmI2ZGRiYjQ0NjMwYjBmZDY2MWFmNjMyMWY5YzQuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0Ymlvc25zPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+CkBAIC0xNjEsMTcgKzE2MywxOCBAQAogPHRyIGlkPSJyb3dfMF8xXzhfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjMycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gaWQ9ImFycl8wXzFfOF8iIGNsYXNzPSJhcnJvdyIgb25jbGljaz0iZHluc2VjdGlvbi50b2dnbGVGb2xkZXIoJzBfMV84XycpIj4mIzk2NTg7PC9zcGFuPjxzcGFuIGlkPSJpbWdfMF8xXzhfIiBjbGFzcz0iaWNvbmZjbG9zZWQiIG9uY2xpY2s9ImR5bnNlY3Rpb24udG9nZ2xlRm9sZGVyKCcwXzFfOF8nKSI+JiMxNjA7PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGlyX2U3ODU2YTZhZWFlYmJjMTI0ZTgwYWQ5NTUwYWVkYmE0Lmh0bWwiIHRhcmdldD0iX3NlbGYiPnNudHA8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfMV84XzBfIiBjbGFzcz0ib2RkIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNudHBfOGMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c250cC5jPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+CiA8dHIgaWQ9InJvd18wXzFfOV8iIGNsYXNzPSJvZGQiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDozMnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGlkPSJhcnJfMF8xXzlfIiBjbGFzcz0iYXJyb3ciIG9uY2xpY2s9ImR5bnNlY3Rpb24udG9nZ2xlRm9sZGVyKCcwXzFfOV8nKSI+JiM5NjU4Ozwvc3Bhbj48c3BhbiBpZD0iaW1nXzBfMV85XyIgY2xhc3M9Imljb25mY2xvc2VkIiBvbmNsaWNrPSJkeW5zZWN0aW9uLnRvZ2dsZUZvbGRlcignMF8xXzlfJykiPiYjMTYwOzwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImRpcl80MDNlMjAyZjk5ZGJhMTU0YzY4NWJlOTMyYThlMGMzNC5odG1sIiB0YXJnZXQ9Il9zZWxmIj50ZnRwPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzFfOV8wXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0idGZ0cF9fc2VydmVyXzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRmdHBfc2VydmVyLmM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPlRyaXZpYWwgRmlsZSBUcmFuc2ZlciBQcm90b2NvbCAoUkZDIDEzNTApIDwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfMV85XzBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJ0ZnRwXzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRmdHAuYzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+VHJpdmlhbCBGaWxlIFRyYW5zZmVyIFByb3RvY29sIChSRkMgMTM1MCkgPC90ZD48L3RyPgogPHRyIGlkPSJyb3dfMF8yXyIgY2xhc3M9ImV2ZW4iPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDoxNnB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGlkPSJhcnJfMF8yXyIgY2xhc3M9ImFycm93IiBvbmNsaWNrPSJkeW5zZWN0aW9uLnRvZ2dsZUZvbGRlcignMF8yXycpIj4mIzk2NjA7PC9zcGFuPjxzcGFuIGlkPSJpbWdfMF8yXyIgY2xhc3M9Imljb25mb3BlbiIgb25jbGljaz0iZHluc2VjdGlvbi50b2dnbGVGb2xkZXIoJzBfMl8nKSI+JiMxNjA7PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGlyX2FlYmI4ZGNjMTE5NTNkNzhlNjIwYmJlZjBiOWUyMTgzLmh0bWwiIHRhcmdldD0iX3NlbGYiPmNvcmU8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfMl8wXyIgY2xhc3M9Im9kZCI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjMycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gaWQ9ImFycl8wXzJfMF8iIGNsYXNzPSJhcnJvdyIgb25jbGljaz0iZHluc2VjdGlvbi50b2dnbGVGb2xkZXIoJzBfMl8wXycpIj4mIzk2NTg7PC9zcGFuPjxzcGFuIGlkPSJpbWdfMF8yXzBfIiBjbGFzcz0iaWNvbmZjbG9zZWQiIG9uY2xpY2s9ImR5bnNlY3Rpb24udG9nZ2xlRm9sZGVyKCcwXzJfMF8nKSI+JiMxNjA7PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGlyX2EzMmUxMTFlZTY4MDVjZmM2MzQ4OGZkMmQzN2YyMzkwLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwdjQ8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfMl8wXzBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJhdXRvaXBfOGMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+YXV0b2lwLmM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfMl8wXzFfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPmRoY3AuYzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8yXzBfMl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImV0aGFycF84Yy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5ldGhhcnAuYzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8yXzBfM18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImljbXBfOGMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWNtcC5jPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzJfMF80XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaWdtcF84Yy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pZ21wLmM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfMl8wXzVfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfOGMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXA0LmM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfMl8wXzZfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXA0X2FkZHIuYzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8yXzBfN18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fZnJhZ184Yy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDRfZnJhZy5jPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzJfMF8wXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iYWNkXzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPmFjZC5jPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzJfMF8xXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPmF1dG9pcC5jPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzJfMF8yXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kaGNwLmM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfMl8wXzNfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJldGhhcnBfOGMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZXRoYXJwLmM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfMl8wXzRfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpY21wXzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPmljbXAuYzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8yXzBfNV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlnbXBfOGMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWdtcC5jPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzJfMF82XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0XzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNC5jPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzJfMF83XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNF9hZGRyLmM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfMl8wXzhfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2ZyYWdfOGMuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXA0X2ZyYWcuYzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgogPHRyIGlkPSJyb3dfMF8yXzFfIiBjbGFzcz0iZXZlbiI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjMycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gaWQ9ImFycl8wXzJfMV8iIGNsYXNzPSJhcnJvdyIgb25jbGljaz0iZHluc2VjdGlvbi50b2dnbGVGb2xkZXIoJzBfMl8xXycpIj4mIzk2NTg7PC9zcGFuPjxzcGFuIGlkPSJpbWdfMF8yXzFfIiBjbGFzcz0iaWNvbmZjbG9zZWQiIG9uY2xpY2s9ImR5bnNlY3Rpb24udG9nZ2xlRm9sZGVyKCcwXzJfMV8nKSI+JiMxNjA7PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGlyX2RhOWM2ZjQzZDNjZDAwYmUzZGUyMjRiYWM5MDdhNDI1Lmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwdjY8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfMl8xXzBfIiBjbGFzcz0ib2RkIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3A2XzhjLmh0bWwiIHRhcmdldD0iX3NlbGYiPmRoY3A2LmM8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfMl8xXzFfIiBjbGFzcz0ib2RkIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImV0aGlwNl84Yy5odG1sIiB0YXJnZXQ9Il9zZWxmIj5ldGhpcDYuYzwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgpAQCAtMjIzLDI1ICsyMjYsMjkgQEAKIDx0ciBpZD0icm93XzBfM18xXzBfNF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Imh0dHBkX19vcHRzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmh0dHBkX29wdHMuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgogPHRyIGlkPSJyb3dfMF8zXzFfMF81XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcGVyZl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5sd2lwZXJmLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfM18xXzBfNl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWRucy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8wXzdfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vcHRzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnNfb3B0cy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8wXzhfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnNfcHJpdi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8wXzlfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtcXR0XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1xdHQuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMF8xMF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Im1xdHRfX29wdHNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bXF0dF9vcHRzLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzBfMTFfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtcXR0X19wcml2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1xdHRfcHJpdi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8wXzEyXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0Ymlvc25zXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5ldGJpb3Nucy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8wXzEzXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0Ymlvc25zX19vcHRzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5ldGJpb3Nuc19vcHRzLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzBfMTRfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJhcHBzXzJzbm1wXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMF8xNV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX2NvcmVfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF9jb3JlLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzBfMTZfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzbm1wX19taWIyXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfbWliMi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8wXzE3XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fb3B0c184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX29wdHMuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMF8xOF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX3NjYWxhcl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3NjYWxhci5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8wXzE5XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fdGFibGVfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF90YWJsZS5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8wXzIwXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fdGhyZWFkc3luY184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX3RocmVhZHN5bmMuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMF8yMV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNubXB2M184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wdjMuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMF8yMl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNudHBfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c250cC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8wXzIzXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic250cF9fb3B0c184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbnRwX29wdHMuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMF8yNF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InRmdHBfX29wdHNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+dGZ0cF9vcHRzLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPlRyaXZpYWwgRmlsZSBUcmFuc2ZlciBQcm90b2NvbCAoUkZDIDEzNTApIGltcGxlbWVudGF0aW9uIG9wdGlvbnMgPC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMF8yNV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InRmdHBfX3NlcnZlcl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj50ZnRwX3NlcnZlci5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj5Ucml2aWFsIEZpbGUgVHJhbnNmZXIgUHJvdG9jb2wgKFJGQyAxMzUwKSA8L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8wXzdfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWRuc19kb21haW4uaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMF84XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3B0c184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tZG5zX29wdHMuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMF85XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnNfb3V0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzBfMTBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1kbnNfcHJpdi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8wXzExXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibXF0dF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tcXR0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzBfMTJfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtcXR0X19vcHRzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1xdHRfb3B0cy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8wXzEzXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibXF0dF9fcHJpdl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tcXR0X3ByaXYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMF8xNF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGJpb3Nuc184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRiaW9zbnMuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMF8xNV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGJpb3Nuc19fb3B0c184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRiaW9zbnNfb3B0cy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8wXzE2XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iYXBwc18yc25tcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzBfMTdfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzbm1wX19jb3JlXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfY29yZS5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8wXzE4XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fbWliMl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5zbm1wX21pYjIuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMF8xOV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX29wdHNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF9vcHRzLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzBfMjBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzbm1wX19zY2FsYXJfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF9zY2FsYXIuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMF8yMV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX3RhYmxlXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNubXBfdGFibGUuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMF8yMl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX3RocmVhZHN5bmNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcF90aHJlYWRzeW5jLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzBfMjNfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzbm1wdjNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcHYzLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzBfMjRfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJzbnRwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnNudHAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMF8yNV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNudHBfX29wdHNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c250cF9vcHRzLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzBfMjZfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJ0ZnRwX19jbGllbnRfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+dGZ0cF9jbGllbnQuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMF8yN18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InRmdHBfX2NvbW1vbl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj50ZnRwX2NvbW1vbi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj5Ucml2aWFsIEZpbGUgVHJhbnNmZXIgUHJvdG9jb2wgKFJGQyAxMzUwKSA8L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8wXzI4XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0idGZ0cF9fb3B0c184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj50ZnRwX29wdHMuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+VHJpdmlhbCBGaWxlIFRyYW5zZmVyIFByb3RvY29sIChSRkMgMTM1MCkgaW1wbGVtZW50YXRpb24gb3B0aW9ucyA8L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8wXzI5XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0idGZ0cF9fc2VydmVyXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRmdHBfc2VydmVyLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfM18xXzFfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo0OHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGlkPSJhcnJfMF8zXzFfMV8iIGNsYXNzPSJhcnJvdyIgb25jbGljaz0iZHluc2VjdGlvbi50b2dnbGVGb2xkZXIoJzBfM18xXzFfJykiPiYjOTY1ODs8L3NwYW4+PHNwYW4gaWQ9ImltZ18wXzNfMV8xXyIgY2xhc3M9Imljb25mY2xvc2VkIiBvbmNsaWNrPSJkeW5zZWN0aW9uLnRvZ2dsZUZvbGRlcignMF8zXzFfMV8nKSI+JiMxNjA7PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGlyXzQ2MGM1MDFiMjQzMmZjMTA3YWRjYjM4MTExODM1ZTQ4Lmh0bWwiIHRhcmdldD0iX3NlbGYiPnByaXY8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfM18xXzFfMF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImFsdGNwX19wcml2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmFsdGNwX3ByaXYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgogPHRyIGlkPSJyb3dfMF8zXzFfMV8xXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iYXBpX19tc2dfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+YXBpX21zZy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+CkBAIC0yNTQsNzUgKzI2MSw3NyBAQAogPHRyIGlkPSJyb3dfMF8zXzFfMV84XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19wcml2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRjcF9wcml2Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfM18xXzFfOV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InRjcGlwX19wcml2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRjcGlwX3ByaXYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgogPHRyIGlkPSJyb3dfMF8zXzFfMl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjQ4cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gaWQ9ImFycl8wXzNfMV8yXyIgY2xhc3M9ImFycm93IiBvbmNsaWNrPSJkeW5zZWN0aW9uLnRvZ2dsZUZvbGRlcignMF8zXzFfMl8nKSI+JiM5NjU4Ozwvc3Bhbj48c3BhbiBpZD0iaW1nXzBfM18xXzJfIiBjbGFzcz0iaWNvbmZjbG9zZWQiIG9uY2xpY2s9ImR5bnNlY3Rpb24udG9nZ2xlRm9sZGVyKCcwXzNfMV8yXycpIj4mIzE2MDs8L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJkaXJfZmEwZjJiN2FjMjA4MDY5ZmM4ZDI4YzI4YWYzNDlkOGQuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+cHJvdDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMl8wXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8yYXV0b2lwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmF1dG9pcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8yXzFfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJkaGNwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmRoY3AuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMl8yXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8yZGhjcDZfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZGhjcDYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMl8zXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8yZG5zXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmRucy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8yXzRfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJwcm90XzJldGhhcnBfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZXRoYXJwLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzJfNV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Imx3aXBfMnByb3RfMmV0aGVybmV0XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmV0aGVybmV0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzJfNl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlhbmFfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWFuYS5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8yXzdfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJpY21wXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmljbXAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMl84XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8yaWNtcDZfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWNtcDYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMl85XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaWVlZV84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pZWVlLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzJfMTBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJpZ21wXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlnbXAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMl8xMV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmlwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzJfMTJfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJpcDRfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXA0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzJfMTNfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJpcDZfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXA2Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzJfMTRfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJtbGQ2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm1sZDYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMl8xNV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMm5kNl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZDYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMl8xNl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMnRjcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj50Y3AuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMl8xN18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMnVkcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj51ZHAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfM18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImFsdGNwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmFsdGNwLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzRfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fdGNwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmFsdGNwX3RjcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV81XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iYWx0Y3BfX3Rsc184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5hbHRjcF90bHMuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfNl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImFwaV84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5hcGkuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfN18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImFyY2hfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+YXJjaC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV84XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmF1dG9pcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV85XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGVidWdfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZGVidWcuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMTBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJkZWZfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZGVmLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzExXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kaGNwLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzEyXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcDZfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZGhjcDYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMTNfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJkbnNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZG5zLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzE0XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZXJyXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmVyci5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8xNV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Imx3aXBfMmVycm5vXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmVycm5vLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzE2XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmV0aGFycC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8xN18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImV0aGlwNl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5ldGhpcDYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMThfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpY21wXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmljbXAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMTlfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpY21wNl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pY21wNi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8yMF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlmX19hcGlfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWZfYXBpLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzIxXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaWdtcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pZ21wLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzIyXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8yaW5ldF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pbmV0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzIzXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaW5ldF9fY2hrc3VtXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmluZXRfY2hrc3VtLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzI0XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaW5pdF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pbml0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzI1XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaXBfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMjZfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXA0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzI3XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNF9hZGRyLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzI4XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19mcmFnXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNF9mcmFnLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzI5XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8zMF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfYWRkci5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8zMV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fZnJhZ184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfZnJhZy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8zMl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fem9uZV84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfem9uZS5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8zM18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlwX19hZGRyXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwX2FkZHIuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMzRfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtZW1fOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWVtLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzM1XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibWVtcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tZW1wLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzM2XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibWxkNl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tbGQ2Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzM3XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibmQ2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5kNi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV8zOF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGJ1Zl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRidWYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfMzlfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJuZXRkYl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRkYi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV80MF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5ldGlmLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzQxXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZhcGlfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0aWZhcGkuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfNDJfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJvcHRfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+b3B0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzQzXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icGJ1Zl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5wYnVmLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzQ0XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icmF3XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnJhdy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV80NV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV80Nl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNvY2tldHNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c29ja2V0cy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV80N18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0YXRzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN0YXRzLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzQ4XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3lzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN5cy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV80OV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InRjcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj50Y3AuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfNTBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BiYXNlXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRjcGJhc2UuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgotPHRyIGlkPSJyb3dfMF8zXzFfNTFfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BpcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj50Y3BpcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Ci08dHIgaWQ9InJvd18wXzNfMV81Ml8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InRpbWVvdXRzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRpbWVvdXRzLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KLTx0ciBpZD0icm93XzBfM18xXzUzXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0idWRwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnVkcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8yXzBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJhY2RfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+YWNkLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzJfMV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmF1dG9pcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5hdXRvaXAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMl8yXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8yZGhjcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kaGNwLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzJfM18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmRoY3A2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmRoY3A2Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzJfNF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmRuc184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kbnMuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMl81XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8ycHJvdF8yZXRoYXJwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmV0aGFycC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8yXzZfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJwcm90XzJldGhlcm5ldF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5ldGhlcm5ldC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8yXzdfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpYW5hXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlhbmEuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMl84XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8yaWNtcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pY21wLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzJfOV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmljbXA2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmljbXA2Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzJfMTBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo4MHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpZWVlXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmllZWUuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMl8xMV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmlnbXBfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWdtcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8yXzEyXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8yaXBfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMl8xM18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmlwNF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDQuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMl8xNF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmlwNl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMl8xNV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMm1sZDZfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWxkNi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8yXzE2XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8ybmQ2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5kNi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8yXzE3XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8ydGNwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRjcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8yXzE4XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6ODBweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8ydWRwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnVkcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8zXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iYWNkXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmFjZC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV80XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iYWx0Y3BfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+YWx0Y3AuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfNV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImFsdGNwX190Y3BfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+YWx0Y3BfdGNwLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzZfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fdGxzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmFsdGNwX3Rscy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV83XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iYXBpXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmFwaS5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV84XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iYXJjaF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5hcmNoLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzlfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJhdXRvaXBfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+YXV0b2lwLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzEwXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGVidWdfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZGVidWcuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMTFfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJkZWZfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZGVmLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzEyXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5kaGNwLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzEzXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcDZfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZGhjcDYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMTRfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJkbnNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+ZG5zLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzE1XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iZXJyXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmVyci5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8xNl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Imx3aXBfMmVycm5vXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmVycm5vLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzE3XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmV0aGFycC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8xOF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImV0aGlwNl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5ldGhpcDYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMTlfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpY21wXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmljbXAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMjBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpY21wNl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pY21wNi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8yMV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlmX19hcGlfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aWZfYXBpLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzIyXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaWdtcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pZ21wLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzIzXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8yaW5ldF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pbmV0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzI0XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaW5ldF9fY2hrc3VtXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmluZXRfY2hrc3VtLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzI1XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaW5pdF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pbml0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzI2XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaXBfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXAuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMjdfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+aXA0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzI4XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNF9hZGRyLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzI5XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19mcmFnXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNF9mcmFnLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzMwXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwNi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8zMV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfYWRkci5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8zMl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fZnJhZ184aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfZnJhZy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8zM18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fem9uZV84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5pcDZfem9uZS5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8zNF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9ImlwX19hZGRyXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPmlwX2FkZHIuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfMzVfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJtZW1fOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bWVtLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzM2XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibWVtcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tZW1wLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzM3XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibWxkNl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5tbGQ2Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzM4XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibmQ2XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5kNi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV8zOV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGJ1Zl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRidWYuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfNDBfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJuZXRkYl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5uZXRkYi5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV80MV8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPm5ldGlmLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzQyXyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZhcGlfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0aWZhcGkuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfNDNfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJvcHRfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+b3B0Lmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzQ0XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icGJ1Zl84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj5wYnVmLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzQ1XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0icmF3XzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnJhdy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV80Nl8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c25tcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV80N18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InNvY2tldHNfOGguaHRtbCIgdGFyZ2V0PSJfc2VsZiI+c29ja2V0cy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV80OF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InN0YXRzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN0YXRzLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzQ5XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3lzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnN5cy5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV81MF8iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InRjcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj50Y3AuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfNTFfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BiYXNlXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRjcGJhc2UuaDwvYT48L3RkPjx0ZCBjbGFzcz0iZGVzYyI+PC90ZD48L3RyPgorPHRyIGlkPSJyb3dfMF8zXzFfNTJfIiBjbGFzcz0iZXZlbiIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjx0ZCBjbGFzcz0iZW50cnkiPjxzcGFuIHN0eWxlPSJ3aWR0aDo2NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrOyI+JiMxNjA7PC9zcGFuPjxzcGFuIGNsYXNzPSJpY29uZG9jIj48L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BpcF84aC5odG1sIiB0YXJnZXQ9Il9zZWxmIj50Y3BpcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+Cis8dHIgaWQ9InJvd18wXzNfMV81M18iIGNsYXNzPSJldmVuIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjY0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InRpbWVvdXRzXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnRpbWVvdXRzLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KKzx0ciBpZD0icm93XzBfM18xXzU0XyIgY2xhc3M9ImV2ZW4iIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6NjRweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBjbGFzcz0iaWNvbmRvYyI+PC9zcGFuPjxhIGNsYXNzPSJlbCIgaHJlZj0idWRwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnVkcC5oPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+CiA8dHIgaWQ9InJvd18wXzNfMl8iIGNsYXNzPSJldmVuIj48dGQgY2xhc3M9ImVudHJ5Ij48c3BhbiBzdHlsZT0id2lkdGg6MzJweDtkaXNwbGF5OmlubGluZS1ibG9jazsiPiYjMTYwOzwvc3Bhbj48c3BhbiBpZD0iYXJyXzBfM18yXyIgY2xhc3M9ImFycm93IiBvbmNsaWNrPSJkeW5zZWN0aW9uLnRvZ2dsZUZvbGRlcignMF8zXzJfJykiPiYjOTY1ODs8L3NwYW4+PHNwYW4gaWQ9ImltZ18wXzNfMl8iIGNsYXNzPSJpY29uZmNsb3NlZCIgb25jbGljaz0iZHluc2VjdGlvbi50b2dnbGVGb2xkZXIoJzBfM18yXycpIj4mIzE2MDs8L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJkaXJfYzlhNjc3NjRiZjhhMTJjZjZiNDI3YmI4NTljYmNkMGIuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+bmV0aWY8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KIDx0ciBpZD0icm93XzBfM18yXzBfIiBjbGFzcz0ib2RkIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjQ4cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gaWQ9ImFycl8wXzNfMl8wXyIgY2xhc3M9ImFycm93IiBvbmNsaWNrPSJkeW5zZWN0aW9uLnRvZ2dsZUZvbGRlcignMF8zXzJfMF8nKSI+JiM5NjU4Ozwvc3Bhbj48c3BhbiBpZD0iaW1nXzBfM18yXzBfIiBjbGFzcz0iaWNvbmZjbG9zZWQiIG9uY2xpY2s9ImR5bnNlY3Rpb24udG9nZ2xlRm9sZGVyKCcwXzNfMl8wXycpIj4mIzE2MDs8L3NwYW4+PGEgY2xhc3M9ImVsIiBocmVmPSJkaXJfNDM5ZmNiNmY2OGVhNmEzZGMwMDc4YjMzODk2MGZkOGYuaHRtbCIgdGFyZ2V0PSJfc2VsZiI+cHBwPC9hPjwvdGQ+PHRkIGNsYXNzPSJkZXNjIj48L3RkPjwvdHI+CiA8dHIgaWQ9InJvd18wXzNfMl8wXzBfIiBjbGFzcz0ib2RkIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PHRkIGNsYXNzPSJlbnRyeSI+PHNwYW4gc3R5bGU9IndpZHRoOjgwcHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ij4mIzE2MDs8L3NwYW4+PHNwYW4gY2xhc3M9Imljb25kb2MiPjwvc3Bhbj48YSBjbGFzcz0iZWwiIGhyZWY9InBwcG9sMnRwXzhoLmh0bWwiIHRhcmdldD0iX3NlbGYiPnBwcG9sMnRwLmg8L2E+PC90ZD48dGQgY2xhc3M9ImRlc2MiPjwvdGQ+PC90cj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9ucy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zLmh0bWwKaW5kZXggMTM3NTc5Mi4uZGU0OWZkMyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2EuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19hLmh0bWwKaW5kZXggYThiZWE0MC4uYmMzYjFhOSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2EuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfYS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMiwxOSArMTAyLDI1IEBACiA8aDM+PGEgaWQ9ImluZGV4X2EiIG5hbWU9ImluZGV4X2EiPjwvYT4tIGEgLTwvaDM+PHVsPgogPGxpPmFjY2VwdG1ib3gmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYTliNTkxODhmMzAwODI4ZDJiNTgxNGUyN2FiMjdjYWQwIj5uZXRjb25uPC9hPjwvbGk+CiA8bGk+YWNjZXNzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZV9faW5zdGFuY2UuaHRtbCNhNGFmMTdkMTdhOTcxZjFkMTFhMTg2ZTZlMWZjNDQxMWMiPnNubXBfbm9kZV9pbnN0YW5jZTwvYT48L2xpPgotPGxpPmFkJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhZjk4MTc3MjEwNDViN2ViZTk4YWQ0ODQ3MzBlNWU5Y2MiPmFwaV9tc2c8L2E+PC9saT4KLTxsaT5hZGRpdGlvbmFsJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwjYWNkYTgzMTIxYTliYjc4NWQyMGY5NzlhMGEzYTMxMmNlIj5tZG5zX291dHBhY2tldDwvYT48L2xpPgorPGxpPmFjZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sI2ExOTY1MjUwY2RhODgxZDIyOWUyYTFmZTE0NmEwYmI5ZSI+YXV0b2lwPC9hPjwvbGk+Cis8bGk+YWNkX2NvbmZsaWN0X2NhbGxiYWNrJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwjYTNhMDNhYTY4NzcxNjA1NWE0Zjc1ZjZlNWUzODBlNDZlIj5hY2Q8L2E+PC9saT4KKzxsaT5hZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTE4MzFhMThiZGZlODhjYTg5YTc3M2ZjNDc3OTY2ODk0Ij5hcGlfbXNnPC9hPjwvbGk+Cis8bGk+YWRkaXRpb25hbCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2FjZGE4MzEyMWE5YmI3ODVkMjBmOTc5YTBhM2EzMTJjZSI+bWRuc19vdXRwYWNrZXQ8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2FiN2QxZDAwNGRjYWMzY2I2NzYxMjQxYzVmZTU4YjBhYiI+bWRuc19wYWNrZXQ8L2E+PC9saT4KKzxsaT5hZGRpdGlvbmFsX2xlZnQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhYzQ3ZjVhODRjMTczYTE1NjVjNjk2NzM1MzY1MzdjODkiPm1kbnNfcGFja2V0PC9hPjwvbGk+CiA8bGk+YWRkciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGRuc19fYXBpX19tc2cuaHRtbCNhMjE3ODE0NTk0NTY0MDc3ZDIxYjBmMjY5NjI4MGIyYTgiPmRuc19hcGlfbXNnPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R6ZXBpZl9faW5pdC5odG1sI2E1YTlhN2VlNmU2ODdhN2MxYWU4NWIxMDNkMzlkZTYxZCI+emVwaWZfaW5pdDwvYT48L2xpPgogPGxpPmFkZHJfaW5kZXgmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFpcHY2X19hZGRyX19zdGF0ZV9fY2hhbmdlZF9fcy5odG1sI2FlYmYyYWEwYjI2YjA3Y2ExOTc3YzY3NmEwNDA0MzIzZiI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDo6aXB2Nl9hZGRyX3N0YXRlX2NoYW5nZWRfczwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xaXB2Nl9fc2V0X19zLmh0bWwjYWQ0NGE1ZjUyYWQ2OTVlYTkwYjE1YTFlMjlmZjgyM2RkIj5uZXRpZl9leHRfY2FsbGJhY2tfYXJnc190OjppcHY2X3NldF9zPC9hPjwvbGk+CiA8bGk+YWRkcmVzcyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmX19leHRfX2NhbGxiYWNrX19hcmdzX190XzFfMWlwdjZfX2FkZHJfX3N0YXRlX19jaGFuZ2VkX19zLmh0bWwjYWNkMjRjMjQzYzg2NmY4ZjkxNjliODlhZjExOTc0ZjE3Ij5uZXRpZl9leHRfY2FsbGJhY2tfYXJnc190OjppcHY2X2FkZHJfc3RhdGVfY2hhbmdlZF9zPC9hPjwvbGk+Cis8bGk+YWxsb2MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhbHRjcF9fYWxsb2NhdG9yX19zLmh0bWwjYWFmMDdlYmYxODFhMTFkMDMyMDM4MWVmNDZkNDBlNjg3Ij5hbHRjcF9hbGxvY2F0b3JfczwvYT48L2xpPgogPGxpPmFuc3dlcl9uYW1lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Ymlvc19fYW5zd2VyLmh0bWwjYWJmNzQ2Y2Q1NGFkZDU5NDIxNmRkYzM2ODNjNzQxNDA2Ij5uZXRiaW9zX2Fuc3dlcjwvYT48L2xpPgogPGxpPmFuc3dlcl9uYW1lX2ZsYWdzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Ymlvc19fYW5zd2VyLmh0bWwjYTI3MjliNzI0OWUzZDIzMzA5NjI0Y2IxOWZhMGRiZmM0Ij5uZXRiaW9zX2Fuc3dlcjwvYT48L2xpPgogPGxpPmFuc3dlcnMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhYWQyYzI0ZDRkNWE5MzVhMjA5OTY2Y2VhY2U4MmY5YWQiPm1kbnNfb3V0cGFja2V0PC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhOTE4ZmVlZTI0MmNmYjM5MzRkOWY1YzNkZTFjMjk4ZTciPm1kbnNfcGFja2V0PC9hPjwvbGk+CiA8bGk+YW5zd2Vyc19sZWZ0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYTU2YmE0OTVhMTQ1OGEyMTk4MmU2NWQ3NDY0Njg4NDlkIj5tZG5zX3BhY2tldDwvYT48L2xpPgorPGxpPmFyZyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFsdGNwX19hbGxvY2F0b3JfX3MuaHRtbCNhOGQ4YWE0OGU5YTEwNWU5ZDI1YWQ0YjkwZDI1OWQwYjEiPmFsdGNwX2FsbG9jYXRvcl9zPC9hPjwvbGk+CiA8bGk+YXNuMV90eXBlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZV9faW5zdGFuY2UuaHRtbCNhZjUxMjA2ZTA5MTJhODQwMmMzOTVkY2YzYjYyM2Y4YjkiPnNubXBfbm9kZV9pbnN0YW5jZTwvYT48L2xpPgogPGxpPmF1dGhfcGxhaW4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZXNzaW9uLmh0bWwjYTU2MTM4OTMyOGZiMWZlZmNiNGQ0ZDE3ZmQwZDQzMzAxIj5zbXRwX3Nlc3Npb248L2E+PC9saT4KIDxsaT5hdXRoX3BsYWluX2xlbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCNhMDAzZGZkMDNhYzU4MjUyYjU3NWE3Yzk2NWU1MzI0NjEiPnNtdHBfc2Vzc2lvbjwvYT48L2xpPgotPGxpPmF1dGhvcml0YXRpdmUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhMWE2ODllYTcwOTRhMzU2OTg3OGYxNTQ3N2U3MjUwMzUiPm1kbnNfb3V0cGFja2V0PC9hPjwvbGk+Cis8bGk+YXV0aG9yaXRhdGl2ZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2ExYTY4OWVhNzA5NGEzNTY5ODc4ZjE1NDc3ZTcyNTAzNSI+bWRuc19vdXRwYWNrZXQ8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2EwMWYyY2Q2NDRjZWRhMDIwZDYzOTI5MGZlMWMzZWExYyI+bWRuc19wYWNrZXQ8L2E+PC9saT4KKzxsaT5hdXRob3JpdGF0aXZlX2xlZnQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhZGU5MjYyNjlmNmIxZGUyZTUxZWU5MmE3MDMwNjg0NDUiPm1kbnNfcGFja2V0PC9hPjwvbGk+CiA8L3VsPgogPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KIDwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfYi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2IuaHRtbAppbmRleCA0M2I2Y2VhLi40ODA1ZGZjIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfYi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19iLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTAyLDcgKzEwMiw3IEBACiA8aDM+PGEgaWQ9ImluZGV4X2IiIG5hbWU9ImluZGV4X2IiPjwvYT4tIGIgLTwvaDM+PHVsPgogPGxpPmImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2FiMGFiZDYwNTI3ZTk2Y2MyNGMyYzIwYzgzNWNkYWMwNSI+YXBpX21zZzwvYT48L2xpPgogPGxpPmJhc2UmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZW1wX19kZXNjLmh0bWwjYTlhZWM1OGFkY2JjZDg4MTY3MjQ3Mjk2Y2E0MzQ2NTU4Ij5tZW1wX2Rlc2M8L2E+PC9saT4KLTxsaT5iYyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTg3Y2U4N2U1OTMxYzhmNzQ4MjkzOTQ2ZDNiMjUwNzkxIj5hcGlfbXNnPC9hPjwvbGk+Cis8bGk+YmMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E4ZTYwMGQ5NWViMDQ0ZjhmN2RjOWZmOTIxYWFhMDViMSI+YXBpX21zZzwvYT48L2xpPgogPGxpPmJvZHkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZXNzaW9uLmh0bWwjYTdiYjRiZjVjYzIwOWUwNzMzNDFiNTY4NDVlNWNiZDQ5Ij5zbXRwX3Nlc3Npb248L2E+PC9saT4KIDxsaT5ib2R5X2xlbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCNhMGRhOGI3NzVkZGZlNWY4ODkxNDY0MDM3YTZiNGJiNGQiPnNtdHBfc2Vzc2lvbjwvYT48L2xpPgogPGxpPmJvZHlfc2VudCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCNhNTg5M2M2MWQ4NjNiNDg0NmE4MWQ4YTRiYmNhZWJiNWIiPnNtdHBfc2Vzc2lvbjwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2MuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19jLmh0bWwKaW5kZXggYzhlOGVlZi4uNWZhMTY4OSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2MuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfYy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMCw3ICsxMDAsNyBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBzdHJ1Y3QgYW5kIHVuaW9uIGZpZWxkcyB3aXRoIGxpbmtzIHRvIHRoZSBzdHJ1Y3QvdW5pb24gZG9jdW1lbnRhdGlvbiBmb3IgZWFjaCBmaWVsZDo8L2Rpdj4KIAogPGgzPjxhIGlkPSJpbmRleF9jIiBuYW1lPSJpbmRleF9jIj48L2E+LSBjIC08L2gzPjx1bD4KLTxsaT5jYWNoZV9mbHVzaCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2E5YmQwZmQ5MWRkYTQ4YmFhMjkzOGRkZGQ3NDdkMzE5NSI+bWRuc19vdXRwYWNrZXQ8L2E+PC9saT4KKzxsaT5jYWNoZV9mbHVzaCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2FiNDZmMTU4OTY4MWExYWJlODI2ZThmNmM1OGQxMGYxYSI+bWRuc19vdXRtc2c8L2E+PC9saT4KIDxsaT5jYWxsYmFjayYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGNvbm4uaHRtbCNhYmU3OTYwNjBiYjA2ZTU4NTMzM2NhOWE4Nzg2MmI2MjQiPm5ldGNvbm48L2E+PC9saT4KIDxsaT5jYWxsYmFja19hcmcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZXNzaW9uLmh0bWwjYWYwNTQ0ZGY3YTkzNWEwOTJkODI1ZDhmMjM4MGY5NzBmIj5zbXRwX3Nlc3Npb248L2E+PC9saT4KIDxsaT5jYWxsYmFja19mbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCNhMjRjMTNkNjIxZTE4MzExYTYxM2FiNjhiODU2YTdmN2IiPnNtdHBfc2Vzc2lvbjwvYT48L2xpPgpAQCAtMTEwLDYgKzExMCw3IEBACiA8bGk+Y2xpZW50X3Bhc3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jb25uZWN0X19jbGllbnRfX2luZm9fX3QuaHRtbCNhOGY2OGVmZTkxYzUzMTE0MTgxNTEyNTZjOTYxMDJkNGIiPm1xdHRfY29ubmVjdF9jbGllbnRfaW5mb190PC9hPjwvbGk+CiA8bGk+Y2xpZW50X3VzZXImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jb25uZWN0X19jbGllbnRfX2luZm9fX3QuaHRtbCNhZWM5NjE2NzNkNWMzZThkYzg1M2M5MWYzMGQ5MzMzYjUiPm1xdHRfY29ubmVjdF9jbGllbnRfaW5mb190PC9hPjwvbGk+CiA8bGk+Y2xvc2UmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0ZnRwX19jb250ZXh0Lmh0bWwjYWU5MTgxYzU3ZDFjZjg5YmMyNjNmNzY3MWU1NjMwYTY1Ij50ZnRwX2NvbnRleHQ8L2E+PC9saT4KKzxsaT5jb25mbGljdF90aW1lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19faG9zdC5odG1sI2FiMWNhOTBiMjgyYTRhNjUxMWZhODc0MDhiOTQ2ZjQ5YSI+bWRuc19ob3N0PC9hPjwvbGk+CiA8bGk+Y29ubiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYWJlYzVlMzM4MDJkNjlmMWI2MDE1NDNkNjA2OTlmMDI4Ij5hcGlfbXNnPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsd2lwX19zb2NrLmh0bWwjYTNhM2ZlZTQ4NWIzMzYxZWQ3MDU0Y2RlMTQ5MzU1ZmI0Ij5sd2lwX3NvY2s8L2E+PC9saT4KIDxsaT5jb25uX3N0YXRlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fY2xpZW50X19zLmh0bWwjYWY0YTA3YzEwNzllMmUyYTMzNmYxOTM5ZDhiOTY3N2U2Ij5tcXR0X2NsaWVudF9zPC9hPjwvbGk+CiA8bGk+Y29ubmVjdF9hcmcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jbGllbnRfX3MuaHRtbCNhZTZkNTMzNTllYzZkNzA1MzNkYWI3YzBkMjcxN2NlMWEiPm1xdHRfY2xpZW50X3M8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19kLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfZC5odG1sCmluZGV4IDk2ZDkwZjYuLjIyMWEzNzAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19kLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2QuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDEsMTIgKzEwMSwxMyBAQAogCiA8aDM+PGEgaWQ9ImluZGV4X2QiIG5hbWU9ImluZGV4X2QiPjwvYT4tIGQgLTwvaDM+PHVsPgogPGxpPmRhdGFfY2ImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jbGllbnRfX3MuaHRtbCNhMjZkYzkxMTIzNTFjMDQyNTk0YTQxNzAzMTk3OTI1YTciPm1xdHRfY2xpZW50X3M8L2E+PC9saT4KLTxsaT5kZXN0X2FkZHImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhMWZkYzkwYjQ4ZDhjZjFmYzI0ODk1ZjBjN2E1Nzk4ZTQiPm1kbnNfb3V0cGFja2V0PC9hPjwvbGk+Cis8bGk+ZGVsYXllZF9tc2dfbXVsdGljYXN0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fZGVsYXllZF9fbXNnLmh0bWwjYTZmMmVkOGE1MWU2ZTI0OWMzYzcyYzNlMzFmMjNkMjBiIj5tZG5zX2RlbGF5ZWRfbXNnPC9hPjwvbGk+Cis8bGk+ZGVsYXllZF9tc2dfdW5pY2FzdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2RlbGF5ZWRfX21zZy5odG1sI2FjYWExNWUwODYzNTZiZTYwYjJhMWJkZDhmY2MxN2VkZCI+bWRuc19kZWxheWVkX21zZzwvYT48L2xpPgorPGxpPmRlc3RfYWRkciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2ExODc3NzRjMTcyOTQ5Njg5OThiNmYxMmJiNTgzNGNkMCI+bWRuc19vdXRtc2c8L2E+PC9saT4KIDxsaT5kZXN0aW5hdGlvbl9hZGRyZXNzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWVlZV9fODAyMTU0X19oZHIuaHRtbCNhODdjZTU5ZDI4MDRjYWNjNWE1ODQxMWM4YjZjNDdmMzMiPmllZWVfODAyMTU0X2hkcjwvYT48L2xpPgogPGxpPmRlc3RpbmF0aW9uX3Bhbl9pZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGllZWVfXzgwMjE1NF9faGRyLmh0bWwjYWMxYWQ5MTU5ZDNiYjcwYjFhNzIyMzA2MGM2YzgxZWZkIj5pZWVlXzgwMjE1NF9oZHI8L2E+PC9saT4KIDxsaT5kZXN0cm95JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19leHRfX2FyZ19fY2FsbGJhY2tzLmh0bWwjYWNlNTg2ZDVkMzc2YjQyNDY1OTI3YTRmZDg2ODhjMjRiIj50Y3BfZXh0X2FyZ19jYWxsYmFja3M8L2E+PC9saT4KIDxsaT5kbnNfYWRkcnR5cGUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RkbnNfX2FwaV9fbXNnLmh0bWwjYWZiMjUzNmE2YzM0MmJlZDRjNGFkOWQ3NTk4MmY3NDkzIj5kbnNfYXBpX21zZzwvYT48L2xpPgotPGxpPmRuc190dGwmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYTQ1NDdlNWE4Mzc1ZmMxZjEzNzI1NDYyNjhhODBkNTFiIj5tZG5zX2hvc3Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhNWE5MzlhNGRhMDFjYjUwYzc0Y2Q1M2IzNTJlNGZhMTQiPm1kbnNfc2VydmljZTwvYT48L2xpPgogPGxpPmRvbWFpbl9vZmZzZXRzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwjYWVlOTdlOThjNDg2OWFhNjNmZmUzNDhkMzhkODcyMjFmIj5tZG5zX291dHBhY2tldDwvYT48L2xpPgogPC91bD4KIDwvZGl2PjwhLS0gY29udGVudHMgLS0+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfZS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2UuaHRtbAppbmRleCBiNzJhM2NhLi5hYzcwODE0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfZS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19lLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTAyLDYgKzEwMiw3IEBACiA8aDM+PGEgaWQ9ImluZGV4X2UiIG5hbWU9ImluZGV4X2UiPjwvYT4tIGUgLTwvaDM+PHVsPgogPGxpPmVyciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYThjNjZiZDk1MjE3ZmE2MjdmMTNmMmYwODQ3YmJiMjVmIj5hcGlfbXNnPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RkbnNfX2FwaV9fbXNnLmh0bWwjYTY1MzZkOTFhZGIxNDY1NTU0NjEzNTliZDQ1MWIzMGRlIj5kbnNfYXBpX21zZzwvYT48L2xpPgogPGxpPmVycmV2ZW50JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc29jay5odG1sI2E5MjQ1YTdhYjk0NzFiZmI2ZmFjOTRjNjZkMjZmYmE1ZSI+bHdpcF9zb2NrPC9hPjwvbGk+Cis8bGk+ZXJyb3ImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0ZnRwX19jb250ZXh0Lmh0bWwjYTM5Y2JiODRhOWMwZWFhOGVhNjJkMTgzYmE4MjE0NTE5Ij50ZnRwX2NvbnRleHQ8L2E+PC9saT4KIDxsaT5ldGhhZGRyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YnJpZGdlaWZfX2luaXRkYXRhX19zLmh0bWwjYThlMDA0OGRiNWUwMjFmNWQ3OTQxMTQ5MmRjOTMzMGJjIj5icmlkZ2VpZl9pbml0ZGF0YV9zPC9hPjwvbGk+CiA8bGk+ZXRoYXJwJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfXy5odG1sI2FhNTI1NDdjYjA4ZGM4Mjg5Mjc0OTRkYzQ4NWJiNjlmMyI+c3RhdHNfPC9hPjwvbGk+CiA8bGk+ZXhjZXB0c2V0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc2VsZWN0X19jYi5odG1sI2EyYTFlNjg5OTNlZDg4N2ZjYTMyNmQxMzczZWE2Y2FlZCI+bHdpcF9zZWxlY3RfY2I8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19mLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfZi5odG1sCmluZGV4IDNlNGRlZDIuLmQ3ZGVmMmYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19mLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2YuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsNyArMTAwLDcgQEAKIDxkaXYgY2xhc3M9InRleHRibG9jayI+SGVyZSBpcyBhIGxpc3Qgb2YgYWxsIGRvY3VtZW50ZWQgc3RydWN0IGFuZCB1bmlvbiBmaWVsZHMgd2l0aCBsaW5rcyB0byB0aGUgc3RydWN0L3VuaW9uIGRvY3VtZW50YXRpb24gZm9yIGVhY2ggZmllbGQ6PC9kaXY+CiAKIDxoMz48YSBpZD0iaW5kZXhfZiIgbmFtZT0iaW5kZXhfZiI+PC9hPi0gZiAtPC9oMz48dWw+Ci08bGk+ZmxhZ3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYTk2Y2I5YTM4MzAyNDg2OTliZDA3YTFhNDQ3ZTU2MzBjIj5uZXRjb25uPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2ExYzE3MWRiNjA5N2JiYjZmMDlmNjM1NDlhNjZlMDBlYSI+bmV0aWY8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWYuaHRtbCNhYTRkMWFmMmNhYjNkOTI4MGQyOTIxMjA5NWI1Yjg3MmEiPnBidWY8L2E+PC9saT4KKzxsaT5mbGFncyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2E4MTE4ZjZjMjYzZjZmODcyNzU1MjYyMGRlYWMyYjdjMiI+bWRuc19vdXRtc2c8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGNvbm4uaHRtbCNhOTZjYjlhMzgzMDI0ODY5OWJkMDdhMWE0NDdlNTYzMGMiPm5ldGNvbm48L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYTFjMTcxZGI2MDk3YmJiNmYwOWY2MzU0OWE2NmUwMGVhIj5uZXRpZjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zi5odG1sI2FhNGQxYWYyY2FiM2Q5MjgwZDI5MjEyMDk1YjViODcyYSI+cGJ1ZjwvYT48L2xpPgogPGxpPmZyYW1lX2NvbnRyb2wmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZWVlX184MDIxNTRfX2hkci5odG1sI2ExZDFlMmNlZjBlMGMxYjFlMWZkMDJhOGE1ZjA3ZmIxMCI+aWVlZV84MDIxNTRfaGRyPC9hPjwvbGk+CiA8bGk+ZnJvbSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCNhOGRjNDY1MWM2NzYxOGUzM2M1NmRjNjY3OTBiYzEyZWUiPnNtdHBfc2Vzc2lvbjwvYT48L2xpPgogPGxpPmZyb21fbGVuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c210cF9fc2Vzc2lvbi5odG1sI2ExOTFiMDllNzE0MjQxNGE2NzFkYTgyZmVjZTg4OGU2NSI+c210cF9zZXNzaW9uPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfZy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2cuaHRtbAppbmRleCBjMTI3M2VmLi40MzU3NjJkIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfZy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19nLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2guaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19oLmh0bWwKaW5kZXggZGYxMzg3NC4uZmJiZmYwMSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2guaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfaC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19pLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfaS5odG1sCmluZGV4IDczNmE2MmYuLmNjNGRhNTEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19pLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2kuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTcsNiArMTE3LDcgQEAKIDxsaT5pZm91dHVjYXN0cGt0cyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX19taWIyX19uZXRpZl9fY3Rycy5odG1sI2EyNGFiYTk2NjBhMjk1MTAyN2IyM2Q0MTE4YjU3YzQ3MSI+c3RhdHNfbWliMl9uZXRpZl9jdHJzPC9hPjwvbGk+CiA8bGk+aWdtcCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX18uaHRtbCNhODc3ZTM2OWMyYWJlZjk3ZjEzNDkyZmFhODM4ZTIyNzEiPnN0YXRzXzwvYT48L2xpPgogPGxpPmlnbXBfbWFjX2ZpbHRlciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWU2NGU1NjU4MWJmMGYxMzY2MDFmMjRjNTM5NWMxOWYwIj5uZXRpZjwvYT48L2xpPgorPGxpPmluZGV4JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19faG9zdC5odG1sI2FiNTA5OWIxYmZlMjc2OThmNmNjN2FjMzZhODAxMTFhMCI+bWRuc19ob3N0PC9hPjwvbGk+CiA8bGk+aW5wdWJfcGt0X2lkJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fY2xpZW50X19zLmh0bWwjYTZjODFkMGRkMTRlNzg2MjIyNDI1ZWEwNGZkMDYwODI0Ij5tcXR0X2NsaWVudF9zPC9hPjwvbGk+CiA8bGk+aW5wdXQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2E4ZmU0ZjFiN2IwZDcxMDIxNjI4N2RhOTYxNTE2NGE1YyI+bmV0aWY8L2E+PC9saT4KIDxsaT5pbnN0YW5jZV9vaWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19ub2RlX19pbnN0YW5jZS5odG1sI2FlZGIzNTg3MjljMzEwYzhlNWIzOTFkZDI1NjcyNmEyMyI+c25tcF9ub2RlX2luc3RhbmNlPC9hPjwvbGk+CkBAIC0xMjksNiArMTMwLDkgQEAKIDxsaT5pcDZfZnJhZyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX18uaHRtbCNhNzM3M2RmN2JjNDRiYjk5MTNhNDJjMGJjN2IzMDM5Y2YiPnN0YXRzXzwvYT48L2xpPgogPGxpPmlwX2FkZHImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2E5Nzc2YWFlZTM3ZWE4ZjA3YjlkZGMwZjhiNGU3ZTg2NiI+bmV0aWY8L2E+PC9saT4KIDxsaT5pcF9mcmFnJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfXy5odG1sI2E4MWZjY2NmMDNhYjBkNGUzMTQyM2YzOWQwYzg4MDMwMiI+c3RhdHNfPC9hPjwvbGk+Cis8bGk+aXBhZGRyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwjYWYyYzc5NWVlNWIwOTA4NWJjYTU5MmQ4MzBhMzg4NDQ4Ij5hY2Q8L2E+PC9saT4KKzxsaT5pcHY0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19faG9zdC5odG1sI2E5ZDBkZjMzMjMxY2Q4YjUwZTI1YWExZmE0ZWJkYzI5MSI+bWRuc19ob3N0PC9hPjwvbGk+Cis8bGk+aXB2NiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhMTYwMTYwMjFkZGFiYjFkYzE4MmYzNmM3MTg1YmYyODMiPm1kbnNfaG9zdDwvYT48L2xpPgogPC91bD4KIDwvZGl2PjwhLS0gY29udGVudHMgLS0+CiA8L2Rpdj48IS0tIGRvYy1jb250ZW50IC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2ouaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19qLmh0bWwKaW5kZXggZjRmNzViNC4uNmNjYWNjNCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2ouaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfai5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMCw3ICsxMDAsNyBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBzdHJ1Y3QgYW5kIHVuaW9uIGZpZWxkcyB3aXRoIGxpbmtzIHRvIHRoZSBzdHJ1Y3QvdW5pb24gZG9jdW1lbnRhdGlvbiBmb3IgZWFjaCBmaWVsZDo8L2Rpdj4KIAogPGgzPjxhIGlkPSJpbmRleF9qIiBuYW1lPSJpbmRleF9qIj48L2E+LSBqIC08L2gzPjx1bD4KLTxsaT5qbCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYWEzZDY0MjA1YzI1ZTk1M2IxNjg0NDdlNmFhMjFlZTllIj5hcGlfbXNnPC9hPjwvbGk+Cis8bGk+amwmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E3MThiMDE2NmE5OTU2YzYwODE4OGU4Zjk5YzY2MzIwMyI+YXBpX21zZzwvYT48L2xpPgogPGxpPmp1bXBlcnMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19hbnN3ZXIuaHRtbCNhNjljZDNlOGI4MjY1NTMxYTdjZTNlNWNiZDQ5MTE2ODMiPm5ldGJpb3NfYW5zd2VyPC9hPjwvbGk+CiA8L3VsPgogPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19rLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfay5odG1sCmluZGV4IGY1NGExMDguLmMzOThiZjYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19rLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2suaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfbC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX2wuaHRtbAppbmRleCAyMDg3NWUyLi4yNTkzNDI5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfbC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19sLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTAxLDkgKzEwMSw5IEBACiAKIDxoMz48YSBpZD0iaW5kZXhfbCIgbmFtZT0iaW5kZXhfbCI+PC9hPi0gbCAtPC9oMz48dWw+CiA8bGk+bGFzdF9yZXBvcnRlcl9mbGFnJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWdtcF9fZ3JvdXAuaHRtbCNhOGZhNzIwNjJkMTY4ZDgxYzFjNWFlNTIwOWViMGE4NzQiPmlnbXBfZ3JvdXA8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1sZF9fZ3JvdXAuaHRtbCNhYThlYjc1ZjRkZmFlZmJmMGQyODUzYjBlMzFjZWI1M2IiPm1sZF9ncm91cDwvYT48L2xpPgotPGxpPmxhc3Rjb25mbGljdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sI2EyZjUxZDhjZGU3M2UyMGQ2ZTBhZTNlYzgwNTNhZmI1NSI+YXV0b2lwPC9hPjwvbGk+Cis8bGk+bGFzdGNvbmZsaWN0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwjYTlkZDRlMWI4MmRkM2U5NzcxN2YwMTFkYmY4NjJhNThlIj5hY2Q8L2E+PC9saT4KIDxsaT5sYXN0ZGF0YSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NvY2suaHRtbCNhYTQ4N2FjMTZiN2U1YjZhMmE2MThiN2I1MDYwMjQ3ZTEiPmx3aXBfc29jazwvYT48L2xpPgotPGxpPmxlZ2FjeV9xdWVyeSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2FmZjhjNTIwYmZmYTg3Yzc4ZTBlZTI0NDA1NzFiYmQ2NSI+bWRuc19vdXRwYWNrZXQ8L2E+PC9saT4KKzxsaT5sZWdhY3lfcXVlcnkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRtc2cuaHRtbCNhYWIyZDVjNTY2ZGNkODM4NzRkOWNjNzdjZDVmYzcyNTMiPm1kbnNfb3V0bXNnPC9hPjwvbGk+CiA8bGk+bGVuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhNDA2MjRjMzk4ZDE5MzliZmVlNTRiZmZhNzA4YTM2M2UiPmFwaV9tc2c8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldHZlY3Rvci5odG1sI2E4YTk1ZTZkY2Y1NzA2N2U0MzU0YjljMmI2YjM5MWRiZCI+bmV0dmVjdG9yPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwjYTZmODI0NDk2MjVlMzZlMjk0ZjVkMjEwMjY4YzA3MDNmIj5wYnVmPC9hPjwvbGk+CiA8bGk+bGluZ2VyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Y29ubi5odG1sI2EyNWVkMDZkOTQ0ZGEwYjBiOWU3ZGI1MjY1YmUzZmEzZCI+bmV0Y29ubjwvYT48L2xpPgogPGxpPmxpbmsmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzdGF0c19fLmh0bWwjYTY3NzU5YzliMDA1OWJmNTY5ZjlmNzcxZGYyMzkyNGViIj5zdGF0c188L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19tLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfbS5odG1sCmluZGV4IGQyNGEzMjIuLjc5M2VlYmYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19tLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX20uaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTUsMTAgKzExNSwxNCBAQAogPGxpPm1pYjJfY291bnRlcnMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FiMzJjYmUxODUxMTU0ZmQwMjBiYWM0YmU1NThmNWZkNSI+bmV0aWY8L2E+PC9saT4KIDxsaT5tbGQ2JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfXy5odG1sI2FiMGFkMWQwN2RmZjI1Y2QzZTRhOGU1YmU2MDc0OTdmOCI+c3RhdHNfPC9hPjwvbGk+CiA8bGk+bWxkX21hY19maWx0ZXImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FiYzY3OTYzZmY5ZjU3NGU5OGVmOWM1MDEzOGEzZTQ3MCI+bmV0aWY8L2E+PC9saT4KLTxsaT5tc2cmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2EwMWVhYTQxYjFiYmRjOTJlNzhiYTM3MTJkMjhjYjYxMyI+YXBpX21zZzwvYT48L2xpPgorPGxpPm1zZyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTdjNjc0NjZhMDhlOTZmNTdmNWNjOGE0MWJlYjg4M2IzIj5hcGlfbXNnPC9hPjwvbGk+CiA8bGk+bXNnX2lkeCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1xdHRfX2NsaWVudF9fcy5odG1sI2FhZTdiZDFkYTM0NjFlZmVmOTYxNjkzNGZlYjE2NmFhNSI+bXF0dF9jbGllbnRfczwvYT48L2xpPgogPGxpPm10dSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWNhN2Q1NmI0ZTBmODIyYjBjZWQyODg1ZjIyMmI4ZDQ4Ij5uZXRpZjwvYT48L2xpPgogPGxpPm10dTYmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FjZDc4ZmNhNWRhZDY0Njg2MDVmMzhlMzI3YjNhNWU3MiI+bmV0aWY8L2E+PC9saT4KKzxsaT5tdWx0aWNhc3RfbXNnX3dhaXRpbmcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19kZWxheWVkX19tc2cuaHRtbCNhNjQxYWJjZjY5MmE5OWUyYzk2OTA0ODQzMmIzYzZhZGYiPm1kbnNfZGVsYXllZF9tc2c8L2E+PC9saT4KKzxsaT5tdWx0aWNhc3RfcHJvYmVfdGltZW91dCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2RlbGF5ZWRfX21zZy5odG1sI2E1Y2E5ZmNjYzUyM2I3ODIwZjhlNjdjOWNjZjkyMWRhOCI+bWRuc19kZWxheWVkX21zZzwvYT48L2xpPgorPGxpPm11bHRpY2FzdF90aW1lb3V0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fZGVsYXllZF9fbXNnLmh0bWwjYTZjN2U1ODFmMWNmNjdkYWYwMzlmZmNhYTMxNTgwZTYwIj5tZG5zX2RlbGF5ZWRfbXNnPC9hPjwvbGk+Cis8bGk+bXVsdGljYXN0X3RpbWVvdXRfMjVUVEwmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19kZWxheWVkX19tc2cuaHRtbCNhNzA1MjM4NzUwNmVmNDhiMWRiMDk5YzQ4ZjRlYzU3MzYiPm1kbnNfZGVsYXllZF9tc2c8L2E+PC9saT4KIDwvdWw+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19uLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfbi5odG1sCmluZGV4IDYxNGRmMjMuLmY5YWM2MzQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19uLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX24uaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsMTUgKzEwMCwxNyBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBzdHJ1Y3QgYW5kIHVuaW9uIGZpZWxkcyB3aXRoIGxpbmtzIHRvIHRoZSBzdHJ1Y3QvdW5pb24gZG9jdW1lbnRhdGlvbiBmb3IgZWFjaCBmaWVsZDo8L2Rpdj4KIAogPGgzPjxhIGlkPSJpbmRleF9uIiBuYW1lPSJpbmRleF9uIj48L2E+LSBuIC08L2gzPjx1bD4KLTxsaT5uJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhNDYwMDdjZTRmMDhkM2UzOTZmMDY4YWI4MGM5YTlhZTEiPmFwaV9tc2c8L2E+PC9saT4KLTxsaT5uYW1lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZG5zX19hcGlfX21zZy5odG1sI2FkYTQ0YTBlYjZjOTE4MWNhYzgwY2ZiYmVlMDFkM2I1MyI+ZG5zX2FwaV9tc2c8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhNTYwNDQ3YjM2NDg1NGViNTQ4MGUxMzdlMDlkM2NkMjQiPm1kbnNfaG9zdDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sI2FjNmQ5MmNmMjEzZTM2NDdkM2NhMTUyMDU5NWMzYjc4NCI+bWRuc19zZXJ2aWNlPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2EzMmZjYTZmZmQyOGJiOWFmM2Y4OTFhMzc4ODI3YTY3ZSI+bmV0aWY8L2E+PC9saT4KKzxsaT5uJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhOWIwYzcwNzgzNTgzOGMyZmZlNTViODVjMjkwMmQ3YWQiPmFwaV9tc2c8L2E+PC9saT4KKzxsaT5uYW1lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZG5zX19hcGlfX21zZy5odG1sI2FkYTQ0YTBlYjZjOTE4MWNhYzgwY2ZiYmVlMDFkM2I1MyI+ZG5zX2FwaV9tc2c8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhNTYwNDQ3YjM2NDg1NGViNTQ4MGUxMzdlMDlkM2NkMjQiPm1kbnNfaG9zdDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcmVxdWVzdC5odG1sI2EzZWQxOGRhZDUwMDEyNWUwZDYzMjc0Yzc5N2JkNTJmNSI+bWRuc19yZXF1ZXN0PC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19zZXJ2aWNlLmh0bWwjYWM2ZDkyY2YyMTNlMzY0N2QzY2ExNTIwNTk1YzNiNzg0Ij5tZG5zX3NlcnZpY2U8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYTMyZmNhNmZmZDI4YmI5YWYzZjg5MWEzNzg4MjdhNjdlIj5uZXRpZjwvYT48L2xpPgogPGxpPm5hbWVfc2l6ZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sI2E1ODI4ZGMwNGUwMWExZjdiNzM0MDE5ZGI0MjhmZDQ2ZCI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9saT4KIDxsaT5uZDYmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzdGF0c19fLmh0bWwjYWIzNDhhM2E0YjU5M2IwNWQ3ZGYxMjkzYTA2YWY4YWRmIj5zdGF0c188L2E+PC9saT4KLTxsaT5uZXRpZiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2FkMGJkMDY2ZjEyN2QzNWEwY2U2NzE5M2UxY2QwNzQzMCI+bWRuc19vdXRwYWNrZXQ8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2FjNzMwN2YzNDRmNjU0Y2I5NTRmOTJkNTc4ZGM3Yzk4OSI+bWRuc19wYWNrZXQ8L2E+PC9saT4KLTxsaT5uZXh0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWdtcF9fZ3JvdXAuaHRtbCNhOTVjNDFiOWU3ZGU2YTE0YmI4YTc5MTA5MTMzOTVlNzgiPmlnbXBfZ3JvdXA8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NlbGVjdF9fY2IuaHRtbCNhOTQxMjhmMGUxNjRmODk1MjI2ZjIwZmU3NWZkZGQzNWEiPmx3aXBfc2VsZWN0X2NiPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZW0uaHRtbCNhNWFiZjEzYTExMTU2ZTkyYzQxN2Y3ZmY2NmVmMGI1Y2YiPm1lbTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWxkX19ncm91cC5odG1sI2E5MjczYTM0NWE1NzU0MjQxYmYyNmRkYzgzNWQyN2RkYyI+bWxkX2dyb3VwPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19yZXF1ZXN0X190Lmh0bWwjYWNhOGRlMjE1NzlmNTFlNzc0MjA3NmE0OTc1YTQxNzdiIj5tcXR0X3JlcXVlc3RfdDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhZTc3NzM2YjY0ZGY0NDIyNDI3OTUyMjBkNzZiZTZiODYiPm5ldGlmPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwjYTVlNTc2M2M5NGZkMThkNzg5MzdiMGI1OGNlN2RmMzQxIj5wYnVmPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmX19yb20uaHRtbCNhNWZmZGY1OTBlZDY1YjIxN2UyZDk2ZjY0OGUxYmQzZTciPnBidWZfcm9tPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwjYTczODg0MjJmZmIwNjA3YjIwOWEzOWQ2ZDNmY2FkNDBlIj5zbm1wX3ZhcmJpbmQ8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRjcF9fcGNiLmh0bWwjYTJhZWQ3ZmZiNWZiODNhYWJlNjhiMzZmMDk3ZDk5MjYwIj50Y3BfcGNiPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYl9fbGlzdGVuLmh0bWwjYTA0ODNkMGMyYTI3NThkY2VmMTg2ODliZTJlZmJkZjM0Ij50Y3BfcGNiX2xpc3RlbjwvYT48L2xpPgorPGxpPm5leHQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCNhYTE0YzJiODhjZDQ3MTgzOWQ1YjVkZTgwYmI0NmE5YWEiPmFjZDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWdtcF9fZ3JvdXAuaHRtbCNhOTVjNDFiOWU3ZGU2YTE0YmI4YTc5MTA5MTMzOTVlNzgiPmlnbXBfZ3JvdXA8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NlbGVjdF9fY2IuaHRtbCNhOTQxMjhmMGUxNjRmODk1MjI2ZjIwZmU3NWZkZGQzNWEiPmx3aXBfc2VsZWN0X2NiPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZW0uaHRtbCNhNWFiZjEzYTExMTU2ZTkyYzQxN2Y3ZmY2NmVmMGI1Y2YiPm1lbTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWxkX19ncm91cC5odG1sI2E5MjczYTM0NWE1NzU0MjQxYmYyNmRkYzgzNWQyN2RkYyI+bWxkX2dyb3VwPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19yZXF1ZXN0X190Lmh0bWwjYWNhOGRlMjE1NzlmNTFlNzc0MjA3NmE0OTc1YTQxNzdiIj5tcXR0X3JlcXVlc3RfdDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhZTc3NzM2YjY0ZGY0NDIyNDI3OTUyMjBkNzZiZTZiODYiPm5ldGlmPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwjYTVlNTc2M2M5NGZkMThkNzg5MzdiMGI1OGNlN2RmMzQxIj5wYnVmPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmX19yb20uaHRtbCNhNWZmZGY1OTBlZDY1YjIxN2UyZDk2ZjY0OGUxYmQzZTciPnBidWZfcm9tPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwjYTczODg0MjJmZmIwNjA3YjIwOWEzOWQ2ZDNmY2FkNDBlIj5zbm1wX3ZhcmJpbmQ8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRjcF9fcGNiLmh0bWwjYTJhZWQ3ZmZiNWZiODNhYWJlNjhiMzZmMDk3ZDk5MjYwIj50Y3BfcGNiPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYl9fbGlzdGVuLmh0bWwjYTA0ODNkMGMyYTI3NThkY2VmMTg2ODliZTJlZmJkZjM0Ij50Y3BfcGNiX2xpc3RlbjwvYT48L2xpPgorPGxpPm5leHRfYW5zd2VyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYTFmZjQ1NDdkMDg2NmYzMzhkMWM1OGZjMWRhZGY0M2YxIj5tZG5zX3BhY2tldDwvYT48L2xpPgorPGxpPm5leHRfdGNfcXVlc3Rpb24mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhZmRiNzgyMThjMTc3NTA3Mzc2MmQ5NTYwOTg2YzExOWIiPm1kbnNfcGFja2V0PC9hPjwvbGk+CiA8bGk+bm9kZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX2xlYWZfX25vZGUuaHRtbCNhYTllNDMwMzBiNTIyOWQ4NDI1MDgyYzU5NWM1NzY5OTIiPnNubXBfbGVhZl9ub2RlPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19ub2RlX19pbnN0YW5jZS5odG1sI2E0MTM2ZjQ0NDA0YjI1ZjRkNGRhY2M2YjZiNzZlNzdhYyI+c25tcF9ub2RlX2luc3RhbmNlPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19zY2FsYXJfX2FycmF5X19ub2RlLmh0bWwjYTM0NzUzZTc1ZWM4NzNjOTIzODFiZjliNmQwMGQ0MTFiIj5zbm1wX3NjYWxhcl9hcnJheV9ub2RlPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19zY2FsYXJfX25vZGUuaHRtbCNhM2M5ZTVjYzBhNWUyMmVjZWNlZWIzYzUxMmQyNWUzYTEiPnNubXBfc2NhbGFyX25vZGU8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX3RhYmxlX19ub2RlLmh0bWwjYTNmMTIzMzRlOGQxNTU2YzM2Y2UzZTIyMDYwMDFhYjE4Ij5zbm1wX3RhYmxlX25vZGU8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX3RyZWVfX25vZGUuaHRtbCNhZDg1MWY4MGM4MDk2MDY5NDdjOTljYjI2YTkxNjMzODYiPnNubXBfdHJlZV9ub2RlPC9hPjwvbGk+CiA8bGk+bm9kZV90eXBlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZS5odG1sI2ExYWY4ZTIwYTY4ODk0M2E0MTliMzA3YmYxMjNiMTg1MSI+c25tcF9ub2RlPC9hPjwvbGk+CiA8bGk+bnVtJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWVtcF9fZGVzYy5odG1sI2EyYzMyZGI3OGU1NjViODgxMmNhMGUyMGZlOTI5YThhNyI+bWVtcF9kZXNjPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FiN2VmMDFlNTA1ZGQyZmViNzgxZmU4Njc1NmIxYzk3MyI+bmV0aWY8L2E+PC9saT4KKzxsaT5udW1fY29uZmxpY3RzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwjYWI0MGI2YjNjZjU3NjM0MTM1NzUzZjI0MjYyMDdmODRhIj5hY2Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhMDdhYWRmOWYzMDhlZWUxNmE5OTA0MTYzNWRmMzgxMjMiPm1kbnNfaG9zdDwvYT48L2xpPgogPGxpPm51bWJlcl9vZl9hbGlnbm1lbnRfZXJyb3JzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Ymlvc19fYW5zd2VyLmh0bWwjYWI0ZjlmZjYzYmQ1NTI5NDE4YzA3NzYyNTA2MTg5YWQyIj5uZXRiaW9zX2Fuc3dlcjwvYT48L2xpPgogPGxpPm51bWJlcl9vZl9jb2xsaXNpb25zJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Ymlvc19fYW5zd2VyLmh0bWwjYTQ1YjdhZWMyMDA0MzRkM2FhYWJjM2VhNmViYzQ2YzFlIj5uZXRiaW9zX2Fuc3dlcjwvYT48L2xpPgogPGxpPm51bWJlcl9vZl9jcmNzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Ymlvc19fYW5zd2VyLmh0bWwjYWIyM2ExMWRiODZhMTcwYjQ2YWE4ZjhhZjQzNDUzNGQ4Ij5uZXRiaW9zX2Fuc3dlcjwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX28uaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19vLmh0bWwKaW5kZXggZjIzMTliYS4uMzBlOTIyNCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX28uaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfby5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwNCw2ICsxMDQsNyBAQAogPGxpPm9pZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX25vZGUuaHRtbCNhZTdhM2JiMGViNDlhYzUyN2Q0NjFiZTQxNDkzN2YyNzEiPnNubXBfbm9kZTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZC5odG1sI2FjZTNhOWU0ZGNkYzlhNWVjNzlhMjBjODQ5NDY0MThhNCI+c25tcF92YXJiaW5kPC9hPjwvbGk+CiA8bGk+b2xkX2FkZHJlc3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFpcHY0X19jaGFuZ2VkX19zLmh0bWwjYTBmNmU1YzEzMTgyMThkOTVmMWQzZGM4YzI5YzMwYWRlIj5uZXRpZl9leHRfY2FsbGJhY2tfYXJnc190OjppcHY0X2NoYW5nZWRfczwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xaXB2Nl9fc2V0X19zLmh0bWwjYWFmZGEyMzdhZDBjMjBkMjVmYTJhZDgzZDYzMDUxMjI2Ij5uZXRpZl9leHRfY2FsbGJhY2tfYXJnc190OjppcHY2X3NldF9zPC9hPjwvbGk+CiA8bGk+b2xkX3N0YXRlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xaXB2Nl9fYWRkcl9fc3RhdGVfX2NoYW5nZWRfX3MuaHRtbCNhOWI1ODcxMmU4MmE3MzgwMzM5MTUyMzMyNGUxOWE3NzYiPm5ldGlmX2V4dF9jYWxsYmFja19hcmdzX3Q6OmlwdjZfYWRkcl9zdGF0ZV9jaGFuZ2VkX3M8L2E+PC9saT4KKzxsaT5vbmx5X3B0ciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3JlcXVlc3QuaHRtbCNhMTA4MGI1NjFjOGRjYjMyMmZiMmFmNjQyMTdiMTNmNjQiPm1kbnNfcmVxdWVzdDwvYT48L2xpPgogPGxpPm9wX2NvbXBsZXRlZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGNvbm4uaHRtbCNhOTgyNTA2Njk4YTU5ZjE4NWZmM2YxNmQxNjc1ZWE0YWUiPm5ldGNvbm48L2E+PC9saT4KIDxsaT5vcGVuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGZ0cF9fY29udGV4dC5odG1sI2E2NWQ2MzU5ZTJhYWM1NzE4MTNjMDVjNjE2NzZjMDFhMSI+dGZ0cF9jb250ZXh0PC9hPjwvbGk+CiA8bGk+b3JpZ2luYWwmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmX19jdXN0b21fX3JlZi5odG1sI2ExMzVhMTQ3NjkwODMzN2Q4MDczMjQxZmQ3ZjY4ZmExZCI+cGJ1Zl9jdXN0b21fcmVmPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfcC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3AuaHRtbAppbmRleCAxMDNkN2RmLi4xZmQ5MjU1IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfcC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19wLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTE2LDkgKzExNiw4IEBACiA8bGk+cG9sbF9uZmRzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc2VsZWN0X19jYi5odG1sI2EzOWM0OTgwYzI2MTM4MDQ4MWY3OWFmMmI1MzZlYmZiYSI+bHdpcF9zZWxlY3RfY2I8L2E+PC9saT4KIDxsaT5wb3J0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sI2FiYmYzMTdjZGU4ZmI3YmE4ZDgzNGFkOTc0NmRkNzgwYyI+bWRuc19zZXJ2aWNlPC9hPjwvbGk+CiA8bGk+cHJldiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NlbGVjdF9fY2IuaHRtbCNhMjFhOThlMzE2YmI3MDAxZDg3NTBiMjBmNWE3ZDBhYTciPmx3aXBfc2VsZWN0X2NiPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZW0uaHRtbCNhOWQ3NzIyZWQxMGFkZjk2NWZhOTg1NjNkNTAyZjk4YWMiPm1lbTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZC5odG1sI2EzNjVhYmNjMWY4MGQyOGRjOGZmZDA3MTkzMDk5Yzc2MCI+c25tcF92YXJiaW5kPC9hPjwvbGk+Ci08bGk+cHJvYmVzX3NlbnQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYWM4ZjZlM2M2ZTEyNTFiZjczZjA0M2U0ODljODQwOTIyIj5tZG5zX2hvc3Q8L2E+PC9saT4KLTxsaT5wcm9iaW5nX3N0YXRlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19faG9zdC5odG1sI2FmOWNlZDMxYzM1ZGU2YTI4MWU1YjEzZjAxZTVhYWU2MSI+bWRuc19ob3N0PC9hPjwvbGk+Ci08bGk+cHJvdG8mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19zZXJ2aWNlLmh0bWwjYWE5ZjJlMGJiNjdkMzg0ODE1MmU2MDc2ZTkyZTgwMThkIj5tZG5zX3NlcnZpY2U8L2E+PC9saT4KKzxsaT5wcm9iZV9xdWVyeV9yZWN2JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0bXNnLmh0bWwjYTRhM2VlOTlmN2MyNWU4OGYxN2VhOTEyODk3NjE3YWEwIj5tZG5zX291dG1zZzwvYT48L2xpPgorPGxpPnByb3RvJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcmVxdWVzdC5odG1sI2E0OTdlMWI4ZjY2NGRhYjk5MDRhODllNWYxNWY1YmM2MCI+bWRuc19yZXF1ZXN0PC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19zZXJ2aWNlLmh0bWwjYWE5ZjJlMGJiNjdkMzg0ODE1MmU2MDc2ZTkyZTgwMThkIj5tZG5zX3NlcnZpY2U8L2E+PC9saT4KIDxsaT5wdHImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXR2ZWN0b3IuaHRtbCNhNTIzMzYyNzM3ZWE3NzY0ZjlhYWE3M2EwNTBhMGI5ODMiPm5ldHZlY3RvcjwvYT48L2xpPgogPC91bD4KIDwvZGl2PjwhLS0gY29udGVudHMgLS0+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfcS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3EuaHRtbAppbmRleCBhMjUzNmM0Li5hZjIxNDFlIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfcS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19xLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTAxLDYgKzEwMSw4IEBACiAKIDxoMz48YSBpZD0iaW5kZXhfcSIgbmFtZT0iaW5kZXhfcSI+PC9hPi0gcSAtPC9oMz48dWw+CiA8bGk+cSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5kNl9fbmVpZ2hib3JfX2NhY2hlX19lbnRyeS5odG1sI2E4MzA2NzQ0NDZhNDVlYjIwMGQzOGE0NWZiZGQ1YzVkZiI+bmQ2X25laWdoYm9yX2NhY2hlX2VudHJ5PC9hPjwvbGk+Cis8bGk+cXR5cGUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19yZXF1ZXN0Lmh0bWwjYTVhOTI2MTM2MjIxM2ExYTc5MGEwYjM0NTE5MTZmNjY5Ij5tZG5zX3JlcXVlc3Q8L2E+PC9saT4KKzxsaT5xdWVyeSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2EzZjY4MTBmYjFmMmE5ODlhZmNiYzJmZDg1MmEyMDM4NiI+bWRuc19vdXRtc2c8L2E+PC9saT4KIDxsaT5xdWVyeV9uYW1lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Ymlvc19fYW5zd2VyLmh0bWwjYWEwMjRjZTdlMGUyMzNjNDIzOTNmNWMzYzM3OGQzZjliIj5uZXRiaW9zX2Fuc3dlcjwvYT48L2xpPgogPGxpPnF1ZXN0aW9ucyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2EwZDQwMmNkZTA0MDcyOGQzNjFkZWM4ZjdkODZmNTA0YyI+bWRuc19vdXRwYWNrZXQ8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2EwOTIxMWU3OGY3Zjc3M2M0OTJiNTg1NmQzMTQyMzY5OSI+bWRuc19wYWNrZXQ8L2E+PC9saT4KIDxsaT5xdWVzdGlvbnNfbGVmdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2FmZGI5YzE0ZGQwYzkxNTExOWI4YWRiNTg0MzgxYTQzNyI+bWRuc19wYWNrZXQ8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19yLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfci5odG1sCmluZGV4IDFiYTgzNjIuLjQ0ZTRhNWQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19yLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3IuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsNyArMTAwLDggQEAKIDxkaXYgY2xhc3M9InRleHRibG9jayI+SGVyZSBpcyBhIGxpc3Qgb2YgYWxsIGRvY3VtZW50ZWQgc3RydWN0IGFuZCB1bmlvbiBmaWVsZHMgd2l0aCBsaW5rcyB0byB0aGUgc3RydWN0L3VuaW9uIGRvY3VtZW50YXRpb24gZm9yIGVhY2ggZmllbGQ6PC9kaXY+CiAKIDxoMz48YSBpZD0iaW5kZXhfciIgbmFtZT0iaW5kZXhfciI+PC9hPi0gciAtPC9oMz48dWw+Ci08bGk+ciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTUwZThkNmRmYTBiYTMwYWU3ZTM5YzMzNmJmNjg3NDJjIj5hcGlfbXNnPC9hPjwvbGk+Cis8bGk+ciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYWRiYjMzZTAzMDg5ZGI1MjdiMGFmN2U0YjIyZjA0ZTFjIj5hcGlfbXNnPC9hPjwvbGk+Cis8bGk+cmF0ZV9saW1pdF9hY3RpdmF0ZWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYTAwMmU4MzZhMTg4OGM3ZGY0Y2YyYjc3NWM3ZmFlNTU3Ij5tZG5zX2hvc3Q8L2E+PC9saT4KIDxsaT5yY3ZldmVudCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NvY2suaHRtbCNhZjQwZDY3Y2JhZWY0MzE4ZDI2ZTU2MDk4OGI2ZTFiM2EiPmx3aXBfc29jazwvYT48L2xpPgogPGxpPnJlYWNoYWJpbGl0eSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNudHBfX3NlcnZlci5odG1sI2EyZTkyODNiYjhmOTQ5MzBmZDJhMmMzZjI0ZmM0YjQwZCI+c250cF9zZXJ2ZXI8L2E+PC9saT4KIDxsaT5yZWFkJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGZ0cF9fY29udGV4dC5odG1sI2E3NDhlMzdkZjBjOGI4NGIzYWRkYTc4ZDYwM2I5MDMzYyI+dGZ0cF9jb250ZXh0PC9hPjwvbGk+CkBAIC0xMTcsNiArMTE4LDcgQEAKIDxsaT5yZWZlcmVuY2VfbGVuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZV9faW5zdGFuY2UuaHRtbCNhZDI4OTk1N2IzNGI0ZTU1OTE1ZmE3OWYzN2M0ZDlkNTQiPnNubXBfbm9kZV9pbnN0YW5jZTwvYT48L2xpPgogPGxpPnJlbGVhc2VfaW5zdGFuY2UmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19ub2RlX19pbnN0YW5jZS5odG1sI2EyMGEyNTZjNTRmYWIxOWE0NTVlY2Y2ZGVmZjc2YzZkZSI+c25tcF9ub2RlX2luc3RhbmNlPC9hPjwvbGk+CiA8bGk+cmVtb3ZlX2NhbGxiYWNrJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhZTA2ZGViNTMyZWFkMmUzMDA5YmE0ZTU4YWFlNmNhMDciPm5ldGlmPC9hPjwvbGk+Cis8bGk+cmVzdWx0X2ZuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcmVxdWVzdC5odG1sI2E0Y2M4YTRlNjJjZTcxYmMzM2YxZTdjYjI0YjE5OGMxZCI+bWRuc19yZXF1ZXN0PC9hPjwvbGk+CiA8bGk+cnNfY291bnQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2E5YzFmOWYyOGJkZTYwYWE4NjhiYzMyOTZiZWU3YjFiNiI+bmV0aWY8L2E+PC9saT4KIDwvdWw+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3MuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc19zLmh0bWwKaW5kZXggZTA0NDk3NC4uNzhlMGZlYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3MuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfcy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMCwyNiArMTAwLDI1IEBACiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPkhlcmUgaXMgYSBsaXN0IG9mIGFsbCBkb2N1bWVudGVkIHN0cnVjdCBhbmQgdW5pb24gZmllbGRzIHdpdGggbGlua3MgdG8gdGhlIHN0cnVjdC91bmlvbiBkb2N1bWVudGF0aW9uIGZvciBlYWNoIGZpZWxkOjwvZGl2PgogCiA8aDM+PGEgaWQ9ImluZGV4X3MiIG5hbWU9ImluZGV4X3MiPjwvYT4tIHMgLTwvaDM+PHVsPgotPGxpPnNkJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhNWFhMjJkYmQ3NGZkN2JhMmZhNWViOGJjOGFhZTUyOWYiPmFwaV9tc2c8L2E+PC9saT4KKzxsaT5zZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTg2NDQ3NThjZDU1ZTA4OTFlNDM3MTc3MTFhZTdiMDNiIj5hcGlfbXNnPC9hPjwvbGk+CiA8bGk+c2VsZWN0X3dhaXRpbmcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsd2lwX19zb2NrLmh0bWwjYWFkYmNmNWVjM2Q1MDYzMWQ4ODIxMjAwMTYzZDg4ZDM4Ij5sd2lwX3NvY2s8L2E+PC9saT4KIDxsaT5zZW0mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RkbnNfX2FwaV9fbXNnLmh0bWwjYTE1ZTAxZTY3NWViYzQ2YjVhZWRlNDIzNDJiZTQ0NWUyIj5kbnNfYXBpX21zZzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc2VsZWN0X19jYi5odG1sI2FjOWU3OTBjYWM4YjVlYWU2MDdhOGVmOTVkY2M2ODQ4MiI+bHdpcF9zZWxlY3RfY2I8L2E+PC9saT4KIDxsaT5zZW1fc2lnbmFsbGVkJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc2VsZWN0X19jYi5odG1sI2ExYzAwZjExNTllOWU4ZWI3Y2NhMDJjNDk3NjA1Y2Q5OSI+bHdpcF9zZWxlY3RfY2I8L2E+PC9saT4KIDxsaT5zZW5kX3RpbWVvdXQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYTQ0ZTU1NzI0NDgyYjhlNDQ3MTM0ZjViYTRmMDE1NTFhIj5uZXRjb25uPC9hPjwvbGk+CiA8bGk+c2VuZGV2ZW50JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc29jay5odG1sI2E3ZTI4Mjc3NjY4MWVhNGI3YmQzODk5NTBhOGE2NGZhOCI+bHdpcF9zb2NrPC9hPjwvbGk+Ci08bGk+c2VudF9udW0mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhdXRvaXAuaHRtbCNhOWQzZTNiYWIyZjEyYjdjNzI4MzE3N2ZiZjAzOWZiMjUiPmF1dG9pcDwvYT48L2xpPgorPGxpPnNlbnRfbnVtJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwjYTRhYjAwMjY0OGQzMzhhZTMzZmZkMzgyOWUyMzcwM2NiIj5hY2Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhOWMwOWI1YzU4YjNkYjY0Zjc4Y2U4ZWViMTQ5NTJiZWEiPm1kbnNfaG9zdDwvYT48L2xpPgogPGxpPnNlcXVlbmNlX251bWJlciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGllZWVfXzgwMjE1NF9faGRyLmh0bWwjYTg3MDAwMTIwNWY1YTNjZTQ1Y2UwYjJmMzIzMjc1ODY5Ij5pZWVlXzgwMjE1NF9oZHI8L2E+PC9saT4KLTxsaT5zZXJ2aWNlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sI2E0MjU4Mzk4NmUyNGI1YTRhMTNiNmQ2NDdjMWEyODFhZCI+bWRuc19zZXJ2aWNlPC9hPjwvbGk+Cis8bGk+c2VydmljZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3JlcXVlc3QuaHRtbCNhYWNlNmFiOGI3ZGU3M2Q2MWQwMjcxMWYyNmRlN2I3NTEiPm1kbnNfcmVxdWVzdDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sI2E0MjU4Mzk4NmUyNGI1YTRhMTNiNmQ2NDdjMWEyODFhZCI+bWRuc19zZXJ2aWNlPC9hPjwvbGk+CiA8bGk+c2VydmljZXMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYTc1MGMzMTM0MGMyMmU1MTM3NWU0ZGMzZTZlOTRmMmVkIj5tZG5zX2hvc3Q8L2E+PC9saT4KIDxsaT5zZXNzaW9uX2RhdGFfcGFja2V0X3NpemUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19hbnN3ZXIuaHRtbCNhYmVjMzhmMjBiYjQ2MGRkYzJkNmU4YzliOTIwODYwOGMiPm5ldGJpb3NfYW5zd2VyPC9hPjwvbGk+CiA8bGk+c2V0X3Rlc3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19ub2RlX19pbnN0YW5jZS5odG1sI2EwM2MxZmVjMzc2NGY2YjQ4MzM3MjM4YjMzNTVlZTViZCI+c25tcF9ub2RlX2luc3RhbmNlPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX190YWJsZV9fbm9kZS5odG1sI2FjZmJjNWZhMzM2MTExN2ZjNGZhODM2NDJkZGU4YWVmMCI+c25tcF90YWJsZV9ub2RlPC9hPjwvbGk+CiA8bGk+c2V0X3ZhbHVlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZV9faW5zdGFuY2UuaHRtbCNhNTVmYjRjYWRlZmNhYjljNzRjM2ZiNTI5YzI1NjA4MzQiPnNubXBfbm9kZV9pbnN0YW5jZTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdGFibGVfX25vZGUuaHRtbCNhMmEzZThhYzBkY2NlNjQ2MDRmYzE3ZTFkZTNjNWE4MDQiPnNubXBfdGFibGVfbm9kZTwvYT48L2xpPgogPGxpPnNpemUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZW1wX19kZXNjLmh0bWwjYTE2ODhkMmJkZDVhN2I3NzcwMGUxZmE2MjdmMDI1YmEzIj5tZW1wX2Rlc2M8L2E+PC9saT4KLTxsaT5zb2NrZXQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYWM4ZTA1ZWI2NTc3NDY2NWUzNjRhM2RjZjBmMTM5YjM2Ij5uZXRjb25uPC9hPjwvbGk+CiA8bGk+c291cmNlX2FkZHImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhYWE2NGNjMjE0OTVkYzZiYjc2ZWQ5MTI1OTA0ZGQwN2EiPm1kbnNfcGFja2V0PC9hPjwvbGk+CiA8bGk+c291cmNlX2FkZHJlc3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZWVlX184MDIxNTRfX2hkci5odG1sI2FhOTZjMDM3MzgxNTgzNzU2ZTc5YmM2ZWNlZGUyNzkzNyI+aWVlZV84MDIxNTRfaGRyPC9hPjwvbGk+CiA8bGk+c291cmNlX3Bhbl9pZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGllZWVfXzgwMjE1NF9faGRyLmh0bWwjYWI2N2ZjNjEyYTdmZDdkY2FmNDY0MDFlNDcxOWZhMmIyIj5pZWVlXzgwMjE1NF9oZHI8L2E+PC9saT4KIDxsaT5zcmMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDZfX2hkci5odG1sI2FmMGRmMzIxNDEzNGYyOTgyN2MyN2U2NmIyOTcwYzZlZiI+aXA2X2hkcjwvYT48L2xpPgotPGxpPnN0YXRlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwjYTUxYWY1NTE5MDU0OGUzNzhlMzEwYWVhZGRmYTFmZGVmIj5hdXRvaXA8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGNvbm4uaHRtbCNhOTM2YzMzMDkwZWMzNWU1ZThjMDAxMWJlNTUxNWE1ODkiPm5ldGNvbm48L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYTgwOWNjNTdjMGRmZjA5YzVjOWFlNDViMDJjMjAwMmYzIj5uZXRpZjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xbGlua19fY2hhbmdlZF9fcy5odG1sI2EzOTg3MGY5NjZhMmE2NGE3ZjUxNzQ3YjQ1OTc3Mjk2YyI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDo6bGlua19jaGFuZ2VkX3M8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmX19leHRfX2NhbGxiYWNrX19hcmdzX190XzFfMXN0YXR1c19fY2hhbmdlZF9fcy5odG1sI2EyMDdkM2FmZGYwYTM3ZDE2YTYxZDEyNTNlMjY0ZDdhNyI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDo6c3RhdHVzX2NoYW5nZWRfczwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c210cF9fc2Vzc2lvbi5odG1sI2FlZDljMTgyNzM4NzY3Mjc5YzJiNThiMWUzMzIyZGIwOSI+c210cF9zZXNzaW9uPC9hPjwvbGk+Cis8bGk+c3RhdGUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCNhNGViMGZlNmQ2ZjVkYmM0OWI2YjliOGJiNWFhMjE0YmIiPmFjZDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwjYTUxYWY1NTE5MDU0OGUzNzhlMzEwYWVhZGRmYTFmZGVmIj5hdXRvaXA8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhMmVkNTFiMTY3NzE1OTA5MTdlMGVlZjVjZjI1YWRhNzEiPm1kbnNfaG9zdDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Y29ubi5odG1sI2E5MzZjMzMwOTBlYzM1ZTVlOGMwMDExYmU1NTE1YTU4OSI+bmV0Y29ubjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhODA5Y2M1N2MwZGZmMDljNWM5YWU0NWIwMmMyMDAyZjMiPm5ldGlmPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFsaW5rX19jaGFuZ2VkX19zLmh0bWwjYTM5ODcwZjk2NmEyYTY0YTdmNTE3NDdiNDU5NzcyOTZjIj5uZXRpZl9leHRfY2FsbGJhY2tfYXJnc190OjpsaW5rX2NoYW5nZWRfczwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xc3RhdHVzX19jaGFuZ2VkX19zLmh0bWwjYTIwN2QzYWZkZjBhMzdkMTZhNjFkMTI1M2UyNjRkN2E3Ij5uZXRpZl9leHRfY2FsbGJhY2tfYXJnc190OjpzdGF0dXNfY2hhbmdlZF9zPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZXNzaW9uLmh0bWwjYWVkOWMxODI3Mzg3NjcyNzljMmI1OGIxZTMzMjJkYjA5Ij5zbXRwX3Nlc3Npb248L2E+PC9saT4KIDxsaT5zdGF0aWNfZGF0YSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3NlbmRfX3JlcXVlc3QuaHRtbCNhNGQ1MTdhZThiMjljYWE0ZjBiMzcxOTIzMzc5ZDllZjQiPnNtdHBfc2VuZF9yZXF1ZXN0PC9hPjwvbGk+CiA8bGk+c3RhdHMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZW1wX19kZXNjLmh0bWwjYTA1Y2I2N2ViNDA4ZTQ3MzZjYzBmNWUzMmI1ZGI3NTAwIj5tZW1wX2Rlc2M8L2E+PC9saT4KIDxsaT5zdGF0dXNfY2FsbGJhY2smIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2ExNTEzZTgxZDAyNTU3ZDJhOTUwZTk2NWYxOGI1M2E0NSI+bmV0aWY8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc190Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdC5odG1sCmluZGV4IDZlOTIzYjAuLmRkMmYxNzMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc190Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3QuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTIsMTEgKzExMiwxMSBAQAogPGxpPnRvdGFsX251bWJlcl9vZl9jb21tYW5kX2Jsb2NrcyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sI2E0YzdlYTVkMTgzOWZkMjcyMzI4Nzc4ODBlNDM0ODVhMiI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9saT4KIDxsaT50cmllZF9sbGlwYWRkciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sI2E0NzJmM2QxOGMwN2IzZGYwMjRhMGNkZThmNGZmYTg1MyI+YXV0b2lwPC9hPjwvbGk+CiA8bGk+dHMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2ExYmI0ZTNhZWQ2ZTBmZDRiNmIzMWVlODJkODA2Zjk3MSI+bmV0aWY8L2E+PC9saT4KLTxsaT50dHcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhdXRvaXAuaHRtbCNhNzUxMGQ5YTI5NjFlYTdjMjhlYmZjZGU2MzkwMjg0YmYiPmF1dG9pcDwvYT48L2xpPgorPGxpPnR0dyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sI2FhYmRlMTk2N2UzN2Q2ODViMTliOTcwMWFmNjQxYTk3YyI+YWNkPC9hPjwvbGk+CiA8bGk+dHhfYnVmJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c210cF9fc2Vzc2lvbi5odG1sI2E0MmNlZGI0OTVmNzQyM2I5ZTI4OTc5Y2UxZTQ2MGM2MSI+c210cF9zZXNzaW9uPC9hPjwvbGk+CiA8bGk+dHhfZGF0YWdyYW1fdGFnJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bG93cGFuNl9faWVlZTgwMjE1NF9fZGF0YS5odG1sI2E2NDU2MGIyODlmODZlZmUxZDM5ZWNlNjAzY2QxNGI1YyI+bG93cGFuNl9pZWVlODAyMTU0X2RhdGE8L2E+PC9saT4KIDxsaT50eF9mcmFtZV9zZXFfbnVtJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bG93cGFuNl9faWVlZTgwMjE1NF9fZGF0YS5odG1sI2FkOWNkOTk0Mzg1YzRkMWQ4ZWYwYTIyNjg2YzE3NzIwYyI+bG93cGFuNl9pZWVlODAyMTU0X2RhdGE8L2E+PC9saT4KLTxsaT50eF9pZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2FjNDcwZjAyYTlmMzMyZjE4ZTAyNzQzN2RjMjkzZDM0OCI+bWRuc19vdXRwYWNrZXQ8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2EwY2Q3MWZkOWFmNmQyNTI5ZTZhNDFjNDUxYzAzN2UwMCI+bWRuc19wYWNrZXQ8L2E+PC9saT4KKzxsaT50eF9pZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2ExZDJkNWYxZDVkMzY2ZjMxZDY1Y2ExOGEyMzliZmQ0ZSI+bWRuc19vdXRtc2c8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2EwY2Q3MWZkOWFmNmQyNTI5ZTZhNDFjNDUxYzAzN2UwMCI+bWRuc19wYWNrZXQ8L2E+PC9saT4KIDxsaT50eHRfZm4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19zZXJ2aWNlLmh0bWwjYTc5YmM0OTQ2Yzk2YTNiMmQwNzEzYmMwODk3YzRiZDljIj5tZG5zX3NlcnZpY2U8L2E+PC9saT4KIDxsaT50eHRkYXRhJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sI2EzNWRhZmY5MGExOGQxOWIxNGYyM2ZhMDJkZjQyNGY5NCI+bWRuc19zZXJ2aWNlPC9hPjwvbGk+CiA8bGk+dHlwZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19hZGRyLmh0bWwjYTY2ZWFhOGU5MDUxZTcxMDJiZjlmMGMxOTVmYmU1NTVhIj5pcF9hZGRyPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYTYxYWY5MDhkMWQyZTRlNzM0NWFjNjVkM2IzOTBkN2I2Ij5uZXRjb25uPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwjYWQ2MzIyM2U0NWUwNGMwOGVhOTc4NTliOGJhNzY3OTUwIj5zbm1wX3ZhcmJpbmQ8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc191Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdS5odG1sCmluZGV4IDdkMDQxNzYuLjM4MmRmZGIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc191Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3UuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDEsNyArMTAxLDggQEAKIAogPGgzPjxhIGlkPSJpbmRleF91IiBuYW1lPSJpbmRleF91Ij48L2E+LSB1IC08L2gzPjx1bD4KIDxsaT51ZHAmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzdGF0c19fLmh0bWwjYTYyNmUwM2Q0YmRlZDY0ODA1ODI3ODljZmQxN2Q0MDYzIj5zdGF0c188L2E+PC9saT4KLTxsaT51bmljYXN0X3JlcGx5JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwjYTY4MjU1NzI1NTc1YWYwODZhM2FmYTc2YmM1YzhlNjRkIj5tZG5zX291dHBhY2tldDwvYT48L2xpPgorPGxpPnVuaWNhc3RfbXNnX2luX3VzZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2RlbGF5ZWRfX21zZy5odG1sI2FiZDUyMTA2MjQzOTRmZWNlNDVlNTdlMTZkYTg1YTQ3ZCI+bWRuc19kZWxheWVkX21zZzwvYT48L2xpPgorPGxpPnVuaWNhc3RfcmVwbHlfcmVxdWVzdGVkJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0bXNnLmh0bWwjYThhYmNkNWIzZTA0YzE2YTc1NzUyYjM2Y2Y2MTNhYzZmIj5tZG5zX291dG1zZzwvYT48L2xpPgogPGxpPnVuaXRfaWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19hbnN3ZXIuaHRtbCNhZWVkNmFhOGJhNGY4YmIxMDdkMTQxYjNiM2QwYTE3ODciPm5ldGJpb3NfYW5zd2VyPC9hPjwvbGk+CiA8bGk+dXNlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWdtcF9fZ3JvdXAuaHRtbCNhYjM2MjVhZWIzNjg5ZTM2MjZmNzMxMzhlYjBlNDE4NTIiPmlnbXBfZ3JvdXA8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1sZF9fZ3JvdXAuaHRtbCNhZGRjNjcwOTRmODNjOTM1MmZlMDM5YzM5MmM0ODBmOWUiPm1sZF9ncm91cDwvYT48L2xpPgogPGxpPnVzZWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZW0uaHRtbCNhYTc2YjZhMzk0MjU2MTc0MzU5NzhkY2U5MDNmMGQ0NTYiPm1lbTwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3YuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192Lmh0bWwKaW5kZXggNDlkNzNhOC4uYThkMDFiNiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3YuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFycy5odG1sCmluZGV4IDBkZGE3OTUuLjU2MjA3YTggMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19hLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19hLmh0bWwKaW5kZXggODA1MjYwYi4uZWM2ZmViYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfYS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2EuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDIsMTkgKzEwMiwyNSBAQAogPGgzPjxhIGlkPSJpbmRleF9hIiBuYW1lPSJpbmRleF9hIj48L2E+LSBhIC08L2gzPjx1bD4KIDxsaT5hY2NlcHRtYm94JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Y29ubi5odG1sI2E5YjU5MTg4ZjMwMDgyOGQyYjU4MTRlMjdhYjI3Y2FkMCI+bmV0Y29ubjwvYT48L2xpPgogPGxpPmFjY2VzcyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX25vZGVfX2luc3RhbmNlLmh0bWwjYTRhZjE3ZDE3YTk3MWYxZDExYTE4NmU2ZTFmYzQ0MTFjIj5zbm1wX25vZGVfaW5zdGFuY2U8L2E+PC9saT4KLTxsaT5hZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYWY5ODE3NzIxMDQ1YjdlYmU5OGFkNDg0NzMwZTVlOWNjIj5hcGlfbXNnPC9hPjwvbGk+Ci08bGk+YWRkaXRpb25hbCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2FjZGE4MzEyMWE5YmI3ODVkMjBmOTc5YTBhM2EzMTJjZSI+bWRuc19vdXRwYWNrZXQ8L2E+PC9saT4KKzxsaT5hY2QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhdXRvaXAuaHRtbCNhMTk2NTI1MGNkYTg4MWQyMjllMmExZmUxNDZhMGJiOWUiPmF1dG9pcDwvYT48L2xpPgorPGxpPmFjZF9jb25mbGljdF9jYWxsYmFjayYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sI2EzYTAzYWE2ODc3MTYwNTVhNGY3NWY2ZTVlMzgwZTQ2ZSI+YWNkPC9hPjwvbGk+Cis8bGk+YWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2ExODMxYTE4YmRmZTg4Y2E4OWE3NzNmYzQ3Nzk2Njg5NCI+YXBpX21zZzwvYT48L2xpPgorPGxpPmFkZGl0aW9uYWwmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhY2RhODMxMjFhOWJiNzg1ZDIwZjk3OWEwYTNhMzEyY2UiPm1kbnNfb3V0cGFja2V0PC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhYjdkMWQwMDRkY2FjM2NiNjc2MTI0MWM1ZmU1OGIwYWIiPm1kbnNfcGFja2V0PC9hPjwvbGk+Cis8bGk+YWRkaXRpb25hbF9sZWZ0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYWM0N2Y1YTg0YzE3M2ExNTY1YzY5NjczNTM2NTM3Yzg5Ij5tZG5zX3BhY2tldDwvYT48L2xpPgogPGxpPmFkZHImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RkbnNfX2FwaV9fbXNnLmh0bWwjYTIxNzgxNDU5NDU2NDA3N2QyMWIwZjI2OTYyODBiMmE4Ij5kbnNfYXBpX21zZzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0emVwaWZfX2luaXQuaHRtbCNhNWE5YTdlZTZlNjg3YTdjMWFlODViMTAzZDM5ZGU2MWQiPnplcGlmX2luaXQ8L2E+PC9saT4KIDxsaT5hZGRyX2luZGV4JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xaXB2Nl9fYWRkcl9fc3RhdGVfX2NoYW5nZWRfX3MuaHRtbCNhZWJmMmFhMGIyNmIwN2NhMTk3N2M2NzZhMDQwNDMyM2YiPm5ldGlmX2V4dF9jYWxsYmFja19hcmdzX3Q6OmlwdjZfYWRkcl9zdGF0ZV9jaGFuZ2VkX3M8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmX19leHRfX2NhbGxiYWNrX19hcmdzX190XzFfMWlwdjZfX3NldF9fcy5odG1sI2FkNDRhNWY1MmFkNjk1ZWE5MGIxNWExZTI5ZmY4MjNkZCI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDo6aXB2Nl9zZXRfczwvYT48L2xpPgogPGxpPmFkZHJlc3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFpcHY2X19hZGRyX19zdGF0ZV9fY2hhbmdlZF9fcy5odG1sI2FjZDI0YzI0M2M4NjZmOGY5MTY5Yjg5YWYxMTk3NGYxNyI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDo6aXB2Nl9hZGRyX3N0YXRlX2NoYW5nZWRfczwvYT48L2xpPgorPGxpPmFsbG9jJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWx0Y3BfX2FsbG9jYXRvcl9fcy5odG1sI2FhZjA3ZWJmMTgxYTExZDAzMjAzODFlZjQ2ZDQwZTY4NyI+YWx0Y3BfYWxsb2NhdG9yX3M8L2E+PC9saT4KIDxsaT5hbnN3ZXJfbmFtZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sI2FiZjc0NmNkNTRhZGQ1OTQyMTZkZGMzNjgzYzc0MTQwNiI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9saT4KIDxsaT5hbnN3ZXJfbmFtZV9mbGFncyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sI2EyNzI5YjcyNDllM2QyMzMwOTYyNGNiMTlmYTBkYmZjNCI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9saT4KIDxsaT5hbnN3ZXJzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwjYWFkMmMyNGQ0ZDVhOTM1YTIwOTk2NmNlYWNlODJmOWFkIj5tZG5zX291dHBhY2tldDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYTkxOGZlZWUyNDJjZmIzOTM0ZDlmNWMzZGUxYzI5OGU3Ij5tZG5zX3BhY2tldDwvYT48L2xpPgogPGxpPmFuc3dlcnNfbGVmdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2E1NmJhNDk1YTE0NThhMjE5ODJlNjVkNzQ2NDY4ODQ5ZCI+bWRuc19wYWNrZXQ8L2E+PC9saT4KKzxsaT5hcmcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhbHRjcF9fYWxsb2NhdG9yX19zLmh0bWwjYThkOGFhNDhlOWExMDVlOWQyNWFkNGI5MGQyNTlkMGIxIj5hbHRjcF9hbGxvY2F0b3JfczwvYT48L2xpPgogPGxpPmFzbjFfdHlwZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX25vZGVfX2luc3RhbmNlLmh0bWwjYWY1MTIwNmUwOTEyYTg0MDJjMzk1ZGNmM2I2MjNmOGI5Ij5zbm1wX25vZGVfaW5zdGFuY2U8L2E+PC9saT4KIDxsaT5hdXRoX3BsYWluJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c210cF9fc2Vzc2lvbi5odG1sI2E1NjEzODkzMjhmYjFmZWZjYjRkNGQxN2ZkMGQ0MzMwMSI+c210cF9zZXNzaW9uPC9hPjwvbGk+CiA8bGk+YXV0aF9wbGFpbl9sZW4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZXNzaW9uLmh0bWwjYTAwM2RmZDAzYWM1ODI1MmI1NzVhN2M5NjVlNTMyNDYxIj5zbXRwX3Nlc3Npb248L2E+PC9saT4KLTxsaT5hdXRob3JpdGF0aXZlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwjYTFhNjg5ZWE3MDk0YTM1Njk4NzhmMTU0NzdlNzI1MDM1Ij5tZG5zX291dHBhY2tldDwvYT48L2xpPgorPGxpPmF1dGhvcml0YXRpdmUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhMWE2ODllYTcwOTRhMzU2OTg3OGYxNTQ3N2U3MjUwMzUiPm1kbnNfb3V0cGFja2V0PC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhMDFmMmNkNjQ0Y2VkYTAyMGQ2MzkyOTBmZTFjM2VhMWMiPm1kbnNfcGFja2V0PC9hPjwvbGk+Cis8bGk+YXV0aG9yaXRhdGl2ZV9sZWZ0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYWRlOTI2MjY5ZjZiMWRlMmU1MWVlOTJhNzAzMDY4NDQ1Ij5tZG5zX3BhY2tldDwvYT48L2xpPgogPC91bD4KIDwvZGl2PjwhLS0gY29udGVudHMgLS0+CiA8L2Rpdj48IS0tIGRvYy1jb250ZW50IC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfYi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfYi5odG1sCmluZGV4IDM4ZDBjZmYuLmQyZWQwZWIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2IuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19iLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTAyLDcgKzEwMiw3IEBACiA8aDM+PGEgaWQ9ImluZGV4X2IiIG5hbWU9ImluZGV4X2IiPjwvYT4tIGIgLTwvaDM+PHVsPgogPGxpPmImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2FiMGFiZDYwNTI3ZTk2Y2MyNGMyYzIwYzgzNWNkYWMwNSI+YXBpX21zZzwvYT48L2xpPgogPGxpPmJhc2UmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZW1wX19kZXNjLmh0bWwjYTlhZWM1OGFkY2JjZDg4MTY3MjQ3Mjk2Y2E0MzQ2NTU4Ij5tZW1wX2Rlc2M8L2E+PC9saT4KLTxsaT5iYyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTg3Y2U4N2U1OTMxYzhmNzQ4MjkzOTQ2ZDNiMjUwNzkxIj5hcGlfbXNnPC9hPjwvbGk+Cis8bGk+YmMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E4ZTYwMGQ5NWViMDQ0ZjhmN2RjOWZmOTIxYWFhMDViMSI+YXBpX21zZzwvYT48L2xpPgogPGxpPmJvZHkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZXNzaW9uLmh0bWwjYTdiYjRiZjVjYzIwOWUwNzMzNDFiNTY4NDVlNWNiZDQ5Ij5zbXRwX3Nlc3Npb248L2E+PC9saT4KIDxsaT5ib2R5X2xlbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCNhMGRhOGI3NzVkZGZlNWY4ODkxNDY0MDM3YTZiNGJiNGQiPnNtdHBfc2Vzc2lvbjwvYT48L2xpPgogPGxpPmJvZHlfc2VudCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCNhNTg5M2M2MWQ4NjNiNDg0NmE4MWQ4YTRiYmNhZWJiNWIiPnNtdHBfc2Vzc2lvbjwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfYy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfYy5odG1sCmluZGV4IDg3MTUyMDcuLjI5MjgyYjMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2MuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19jLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTAwLDcgKzEwMCw3IEBACiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPkhlcmUgaXMgYSBsaXN0IG9mIGFsbCBkb2N1bWVudGVkIHZhcmlhYmxlcyB3aXRoIGxpbmtzIHRvIHRoZSBzdHJ1Y3QvdW5pb24gZG9jdW1lbnRhdGlvbiBmb3IgZWFjaCBmaWVsZDo8L2Rpdj4KIAogPGgzPjxhIGlkPSJpbmRleF9jIiBuYW1lPSJpbmRleF9jIj48L2E+LSBjIC08L2gzPjx1bD4KLTxsaT5jYWNoZV9mbHVzaCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2E5YmQwZmQ5MWRkYTQ4YmFhMjkzOGRkZGQ3NDdkMzE5NSI+bWRuc19vdXRwYWNrZXQ8L2E+PC9saT4KKzxsaT5jYWNoZV9mbHVzaCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2FiNDZmMTU4OTY4MWExYWJlODI2ZThmNmM1OGQxMGYxYSI+bWRuc19vdXRtc2c8L2E+PC9saT4KIDxsaT5jYWxsYmFjayYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGNvbm4uaHRtbCNhYmU3OTYwNjBiYjA2ZTU4NTMzM2NhOWE4Nzg2MmI2MjQiPm5ldGNvbm48L2E+PC9saT4KIDxsaT5jYWxsYmFja19hcmcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZXNzaW9uLmh0bWwjYWYwNTQ0ZGY3YTkzNWEwOTJkODI1ZDhmMjM4MGY5NzBmIj5zbXRwX3Nlc3Npb248L2E+PC9saT4KIDxsaT5jYWxsYmFja19mbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCNhMjRjMTNkNjIxZTE4MzExYTYxM2FiNjhiODU2YTdmN2IiPnNtdHBfc2Vzc2lvbjwvYT48L2xpPgpAQCAtMTEwLDYgKzExMCw3IEBACiA8bGk+Y2xpZW50X3Bhc3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jb25uZWN0X19jbGllbnRfX2luZm9fX3QuaHRtbCNhOGY2OGVmZTkxYzUzMTE0MTgxNTEyNTZjOTYxMDJkNGIiPm1xdHRfY29ubmVjdF9jbGllbnRfaW5mb190PC9hPjwvbGk+CiA8bGk+Y2xpZW50X3VzZXImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jb25uZWN0X19jbGllbnRfX2luZm9fX3QuaHRtbCNhZWM5NjE2NzNkNWMzZThkYzg1M2M5MWYzMGQ5MzMzYjUiPm1xdHRfY29ubmVjdF9jbGllbnRfaW5mb190PC9hPjwvbGk+CiA8bGk+Y2xvc2UmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0ZnRwX19jb250ZXh0Lmh0bWwjYWU5MTgxYzU3ZDFjZjg5YmMyNjNmNzY3MWU1NjMwYTY1Ij50ZnRwX2NvbnRleHQ8L2E+PC9saT4KKzxsaT5jb25mbGljdF90aW1lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19faG9zdC5odG1sI2FiMWNhOTBiMjgyYTRhNjUxMWZhODc0MDhiOTQ2ZjQ5YSI+bWRuc19ob3N0PC9hPjwvbGk+CiA8bGk+Y29ubiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYWJlYzVlMzM4MDJkNjlmMWI2MDE1NDNkNjA2OTlmMDI4Ij5hcGlfbXNnPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsd2lwX19zb2NrLmh0bWwjYTNhM2ZlZTQ4NWIzMzYxZWQ3MDU0Y2RlMTQ5MzU1ZmI0Ij5sd2lwX3NvY2s8L2E+PC9saT4KIDxsaT5jb25uX3N0YXRlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fY2xpZW50X19zLmh0bWwjYWY0YTA3YzEwNzllMmUyYTMzNmYxOTM5ZDhiOTY3N2U2Ij5tcXR0X2NsaWVudF9zPC9hPjwvbGk+CiA8bGk+Y29ubmVjdF9hcmcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jbGllbnRfX3MuaHRtbCNhZTZkNTMzNTllYzZkNzA1MzNkYWI3YzBkMjcxN2NlMWEiPm1xdHRfY2xpZW50X3M8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2QuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2QuaHRtbAppbmRleCAyZWYwODUxLi4wNWVhOTBjIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19kLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfZC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMSwxMiArMTAxLDEzIEBACiAKIDxoMz48YSBpZD0iaW5kZXhfZCIgbmFtZT0iaW5kZXhfZCI+PC9hPi0gZCAtPC9oMz48dWw+CiA8bGk+ZGF0YV9jYiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1xdHRfX2NsaWVudF9fcy5odG1sI2EyNmRjOTExMjM1MWMwNDI1OTRhNDE3MDMxOTc5MjVhNyI+bXF0dF9jbGllbnRfczwvYT48L2xpPgotPGxpPmRlc3RfYWRkciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2ExZmRjOTBiNDhkOGNmMWZjMjQ4OTVmMGM3YTU3OThlNCI+bWRuc19vdXRwYWNrZXQ8L2E+PC9saT4KKzxsaT5kZWxheWVkX21zZ19tdWx0aWNhc3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19kZWxheWVkX19tc2cuaHRtbCNhNmYyZWQ4YTUxZTZlMjQ5YzNjNzJjM2UzMWYyM2QyMGIiPm1kbnNfZGVsYXllZF9tc2c8L2E+PC9saT4KKzxsaT5kZWxheWVkX21zZ191bmljYXN0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fZGVsYXllZF9fbXNnLmh0bWwjYWNhYTE1ZTA4NjM1NmJlNjBiMmExYmRkOGZjYzE3ZWRkIj5tZG5zX2RlbGF5ZWRfbXNnPC9hPjwvbGk+Cis8bGk+ZGVzdF9hZGRyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0bXNnLmh0bWwjYTE4Nzc3NGMxNzI5NDk2ODk5OGI2ZjEyYmI1ODM0Y2QwIj5tZG5zX291dG1zZzwvYT48L2xpPgogPGxpPmRlc3RpbmF0aW9uX2FkZHJlc3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZWVlX184MDIxNTRfX2hkci5odG1sI2E4N2NlNTlkMjgwNGNhY2M1YTU4NDExYzhiNmM0N2YzMyI+aWVlZV84MDIxNTRfaGRyPC9hPjwvbGk+CiA8bGk+ZGVzdGluYXRpb25fcGFuX2lkJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWVlZV9fODAyMTU0X19oZHIuaHRtbCNhYzFhZDkxNTlkM2JiNzBiMWE3MjIzMDYwYzZjODFlZmQiPmllZWVfODAyMTU0X2hkcjwvYT48L2xpPgogPGxpPmRlc3Ryb3kmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX2V4dF9fYXJnX19jYWxsYmFja3MuaHRtbCNhY2U1ODZkNWQzNzZiNDI0NjU5MjdhNGZkODY4OGMyNGIiPnRjcF9leHRfYXJnX2NhbGxiYWNrczwvYT48L2xpPgogPGxpPmRuc19hZGRydHlwZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGRuc19fYXBpX19tc2cuaHRtbCNhZmIyNTM2YTZjMzQyYmVkNGM0YWQ5ZDc1OTgyZjc0OTMiPmRuc19hcGlfbXNnPC9hPjwvbGk+Ci08bGk+ZG5zX3R0bCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhNDU0N2U1YTgzNzVmYzFmMTM3MjU0NjI2OGE4MGQ1MWIiPm1kbnNfaG9zdDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sI2E1YTkzOWE0ZGEwMWNiNTBjNzRjZDUzYjM1MmU0ZmExNCI+bWRuc19zZXJ2aWNlPC9hPjwvbGk+CiA8bGk+ZG9tYWluX29mZnNldHMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhZWU5N2U5OGM0ODY5YWE2M2ZmZTM0OGQzOGQ4NzIyMWYiPm1kbnNfb3V0cGFja2V0PC9hPjwvbGk+CiA8L3VsPgogPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2UuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2UuaHRtbAppbmRleCA2ZjMzMDljLi5lNjgyM2VmIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19lLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMiw2ICsxMDIsNyBAQAogPGgzPjxhIGlkPSJpbmRleF9lIiBuYW1lPSJpbmRleF9lIj48L2E+LSBlIC08L2gzPjx1bD4KIDxsaT5lcnImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E4YzY2YmQ5NTIxN2ZhNjI3ZjEzZjJmMDg0N2JiYjI1ZiI+YXBpX21zZzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZG5zX19hcGlfX21zZy5odG1sI2E2NTM2ZDkxYWRiMTQ2NTU1NDYxMzU5YmQ0NTFiMzBkZSI+ZG5zX2FwaV9tc2c8L2E+PC9saT4KIDxsaT5lcnJldmVudCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NvY2suaHRtbCNhOTI0NWE3YWI5NDcxYmZiNmZhYzk0YzY2ZDI2ZmJhNWUiPmx3aXBfc29jazwvYT48L2xpPgorPGxpPmVycm9yJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGZ0cF9fY29udGV4dC5odG1sI2EzOWNiYjg0YTljMGVhYThlYTYyZDE4M2JhODIxNDUxOSI+dGZ0cF9jb250ZXh0PC9hPjwvbGk+CiA8bGk+ZXRoYWRkciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGJyaWRnZWlmX19pbml0ZGF0YV9fcy5odG1sI2E4ZTAwNDhkYjVlMDIxZjVkNzk0MTE0OTJkYzkzMzBiYyI+YnJpZGdlaWZfaW5pdGRhdGFfczwvYT48L2xpPgogPGxpPmV0aGFycCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX18uaHRtbCNhYTUyNTQ3Y2IwOGRjODI4OTI3NDk0ZGM0ODViYjY5ZjMiPnN0YXRzXzwvYT48L2xpPgogPGxpPmV4Y2VwdHNldCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NlbGVjdF9fY2IuaHRtbCNhMmExZTY4OTkzZWQ4ODdmY2EzMjZkMTM3M2VhNmNhZWQiPmx3aXBfc2VsZWN0X2NiPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19mLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19mLmh0bWwKaW5kZXggNjUxZjkxZC4uNmRkOGE4ZCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfZi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2YuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsNyArMTAwLDcgQEAKIDxkaXYgY2xhc3M9InRleHRibG9jayI+SGVyZSBpcyBhIGxpc3Qgb2YgYWxsIGRvY3VtZW50ZWQgdmFyaWFibGVzIHdpdGggbGlua3MgdG8gdGhlIHN0cnVjdC91bmlvbiBkb2N1bWVudGF0aW9uIGZvciBlYWNoIGZpZWxkOjwvZGl2PgogCiA8aDM+PGEgaWQ9ImluZGV4X2YiIG5hbWU9ImluZGV4X2YiPjwvYT4tIGYgLTwvaDM+PHVsPgotPGxpPmZsYWdzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Y29ubi5odG1sI2E5NmNiOWEzODMwMjQ4Njk5YmQwN2ExYTQ0N2U1NjMwYyI+bmV0Y29ubjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhMWMxNzFkYjYwOTdiYmI2ZjA5ZjYzNTQ5YTY2ZTAwZWEiPm5ldGlmPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwjYWE0ZDFhZjJjYWIzZDkyODBkMjkyMTIwOTViNWI4NzJhIj5wYnVmPC9hPjwvbGk+Cis8bGk+ZmxhZ3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRtc2cuaHRtbCNhODExOGY2YzI2M2Y2Zjg3Mjc1NTI2MjBkZWFjMmI3YzIiPm1kbnNfb3V0bXNnPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYTk2Y2I5YTM4MzAyNDg2OTliZDA3YTFhNDQ3ZTU2MzBjIj5uZXRjb25uPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2ExYzE3MWRiNjA5N2JiYjZmMDlmNjM1NDlhNjZlMDBlYSI+bmV0aWY8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWYuaHRtbCNhYTRkMWFmMmNhYjNkOTI4MGQyOTIxMjA5NWI1Yjg3MmEiPnBidWY8L2E+PC9saT4KIDxsaT5mcmFtZV9jb250cm9sJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWVlZV9fODAyMTU0X19oZHIuaHRtbCNhMWQxZTJjZWYwZTBjMWIxZTFmZDAyYThhNWYwN2ZiMTAiPmllZWVfODAyMTU0X2hkcjwvYT48L2xpPgogPGxpPmZyb20mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZXNzaW9uLmh0bWwjYThkYzQ2NTFjNjc2MThlMzNjNTZkYzY2NzkwYmMxMmVlIj5zbXRwX3Nlc3Npb248L2E+PC9saT4KIDxsaT5mcm9tX2xlbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCNhMTkxYjA5ZTcxNDI0MTRhNjcxZGE4MmZlY2U4ODhlNjUiPnNtdHBfc2Vzc2lvbjwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfZy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfZy5odG1sCmluZGV4IDZkNTNkMTkuLmRlYzFmMzkgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2cuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19nLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfaC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfaC5odG1sCmluZGV4IGEzYjljOWIuLjJlZDc2YjcgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2guaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19oLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfaS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfaS5odG1sCmluZGV4IDBmNmQ2YzIuLmM0ZTIxZjYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2kuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19pLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTE3LDYgKzExNyw3IEBACiA8bGk+aWZvdXR1Y2FzdHBrdHMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzdGF0c19fbWliMl9fbmV0aWZfX2N0cnMuaHRtbCNhMjRhYmE5NjYwYTI5NTEwMjdiMjNkNDExOGI1N2M0NzEiPnN0YXRzX21pYjJfbmV0aWZfY3RyczwvYT48L2xpPgogPGxpPmlnbXAmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzdGF0c19fLmh0bWwjYTg3N2UzNjljMmFiZWY5N2YxMzQ5MmZhYTgzOGUyMjcxIj5zdGF0c188L2E+PC9saT4KIDxsaT5pZ21wX21hY19maWx0ZXImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FlNjRlNTY1ODFiZjBmMTM2NjAxZjI0YzUzOTVjMTlmMCI+bmV0aWY8L2E+PC9saT4KKzxsaT5pbmRleCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhYjUwOTliMWJmZTI3Njk4ZjZjYzdhYzM2YTgwMTExYTAiPm1kbnNfaG9zdDwvYT48L2xpPgogPGxpPmlucHViX3BrdF9pZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1xdHRfX2NsaWVudF9fcy5odG1sI2E2YzgxZDBkZDE0ZTc4NjIyMjQyNWVhMDRmZDA2MDgyNCI+bXF0dF9jbGllbnRfczwvYT48L2xpPgogPGxpPmlucHV0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhOGZlNGYxYjdiMGQ3MTAyMTYyODdkYTk2MTUxNjRhNWMiPm5ldGlmPC9hPjwvbGk+CiA8bGk+aW5zdGFuY2Vfb2lkJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZV9faW5zdGFuY2UuaHRtbCNhZWRiMzU4NzI5YzMxMGM4ZTViMzkxZGQyNTY3MjZhMjMiPnNubXBfbm9kZV9pbnN0YW5jZTwvYT48L2xpPgpAQCAtMTI5LDYgKzEzMCw5IEBACiA8bGk+aXA2X2ZyYWcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzdGF0c19fLmh0bWwjYTczNzNkZjdiYzQ0YmI5OTEzYTQyYzBiYzdiMzAzOWNmIj5zdGF0c188L2E+PC9saT4KIDxsaT5pcF9hZGRyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhOTc3NmFhZWUzN2VhOGYwN2I5ZGRjMGY4YjRlN2U4NjYiPm5ldGlmPC9hPjwvbGk+CiA8bGk+aXBfZnJhZyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX18uaHRtbCNhODFmY2NjZjAzYWIwZDRlMzE0MjNmMzlkMGM4ODAzMDIiPnN0YXRzXzwvYT48L2xpPgorPGxpPmlwYWRkciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sI2FmMmM3OTVlZTViMDkwODViY2E1OTJkODMwYTM4ODQ0OCI+YWNkPC9hPjwvbGk+Cis8bGk+aXB2NCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhOWQwZGYzMzIzMWNkOGI1MGUyNWFhMWZhNGViZGMyOTEiPm1kbnNfaG9zdDwvYT48L2xpPgorPGxpPmlwdjYmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYTE2MDE2MDIxZGRhYmIxZGMxODJmMzZjNzE4NWJmMjgzIj5tZG5zX2hvc3Q8L2E+PC9saT4KIDwvdWw+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2ouaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2ouaHRtbAppbmRleCA4N2M4NzQxLi4wMGE4NWQxIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19qLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfai5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMCw3ICsxMDAsNyBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCB2YXJpYWJsZXMgd2l0aCBsaW5rcyB0byB0aGUgc3RydWN0L3VuaW9uIGRvY3VtZW50YXRpb24gZm9yIGVhY2ggZmllbGQ6PC9kaXY+CiAKIDxoMz48YSBpZD0iaW5kZXhfaiIgbmFtZT0iaW5kZXhfaiI+PC9hPi0gaiAtPC9oMz48dWw+Ci08bGk+amwmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2FhM2Q2NDIwNWMyNWU5NTNiMTY4NDQ3ZTZhYTIxZWU5ZSI+YXBpX21zZzwvYT48L2xpPgorPGxpPmpsJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhNzE4YjAxNjZhOTk1NmM2MDgxODhlOGY5OWM2NjMyMDMiPmFwaV9tc2c8L2E+PC9saT4KIDxsaT5qdW1wZXJzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Ymlvc19fYW5zd2VyLmh0bWwjYTY5Y2QzZThiODI2NTUzMWE3Y2UzZTVjYmQ0OTExNjgzIj5uZXRiaW9zX2Fuc3dlcjwvYT48L2xpPgogPC91bD4KIDwvZGl2PjwhLS0gY29udGVudHMgLS0+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19rLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19rLmh0bWwKaW5kZXggZWYyODUzMS4uZDUxYzAwNiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfay5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2suaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19sLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19sLmh0bWwKaW5kZXggODEzMDExNy4uMDlkODlhNSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfbC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX2wuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDEsOSArMTAxLDkgQEAKIAogPGgzPjxhIGlkPSJpbmRleF9sIiBuYW1lPSJpbmRleF9sIj48L2E+LSBsIC08L2gzPjx1bD4KIDxsaT5sYXN0X3JlcG9ydGVyX2ZsYWcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZ21wX19ncm91cC5odG1sI2E4ZmE3MjA2MmQxNjhkODFjMWM1YWU1MjA5ZWIwYTg3NCI+aWdtcF9ncm91cDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWxkX19ncm91cC5odG1sI2FhOGViNzVmNGRmYWVmYmYwZDI4NTNiMGUzMWNlYjUzYiI+bWxkX2dyb3VwPC9hPjwvbGk+Ci08bGk+bGFzdGNvbmZsaWN0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwjYTJmNTFkOGNkZTczZTIwZDZlMGFlM2VjODA1M2FmYjU1Ij5hdXRvaXA8L2E+PC9saT4KKzxsaT5sYXN0Y29uZmxpY3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCNhOWRkNGUxYjgyZGQzZTk3NzE3ZjAxMWRiZjg2MmE1OGUiPmFjZDwvYT48L2xpPgogPGxpPmxhc3RkYXRhJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc29jay5odG1sI2FhNDg3YWMxNmI3ZTViNmEyYTYxOGI3YjUwNjAyNDdlMSI+bHdpcF9zb2NrPC9hPjwvbGk+Ci08bGk+bGVnYWN5X3F1ZXJ5JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwjYWZmOGM1MjBiZmZhODdjNzhlMGVlMjQ0MDU3MWJiZDY1Ij5tZG5zX291dHBhY2tldDwvYT48L2xpPgorPGxpPmxlZ2FjeV9xdWVyeSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2FhYjJkNWM1NjZkY2Q4Mzg3NGQ5Y2M3N2NkNWZjNzI1MyI+bWRuc19vdXRtc2c8L2E+PC9saT4KIDxsaT5sZW4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E0MDYyNGMzOThkMTkzOWJmZWU1NGJmZmE3MDhhMzYzZSI+YXBpX21zZzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0dmVjdG9yLmh0bWwjYThhOTVlNmRjZjU3MDY3ZTQzNTRiOWMyYjZiMzkxZGJkIj5uZXR2ZWN0b3I8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWYuaHRtbCNhNmY4MjQ0OTYyNWUzNmUyOTRmNWQyMTAyNjhjMDcwM2YiPnBidWY8L2E+PC9saT4KIDxsaT5saW5nZXImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYTI1ZWQwNmQ5NDRkYTBiMGI5ZTdkYjUyNjViZTNmYTNkIj5uZXRjb25uPC9hPjwvbGk+CiA8bGk+bGluayYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX18uaHRtbCNhNjc3NTljOWIwMDU5YmY1NjlmOWY3NzFkZjIzOTI0ZWIiPnN0YXRzXzwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfbS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfbS5odG1sCmluZGV4IDZmZmY3NmIuLmRmYzRmZTMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX20uaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19tLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTE1LDEwICsxMTUsMTQgQEAKIDxsaT5taWIyX2NvdW50ZXJzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhYjMyY2JlMTg1MTE1NGZkMDIwYmFjNGJlNTU4ZjVmZDUiPm5ldGlmPC9hPjwvbGk+CiA8bGk+bWxkNiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX18uaHRtbCNhYjBhZDFkMDdkZmYyNWNkM2U0YThlNWJlNjA3NDk3ZjgiPnN0YXRzXzwvYT48L2xpPgogPGxpPm1sZF9tYWNfZmlsdGVyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhYmM2Nzk2M2ZmOWY1NzRlOThlZjljNTAxMzhhM2U0NzAiPm5ldGlmPC9hPjwvbGk+Ci08bGk+bXNnJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhMDFlYWE0MWIxYmJkYzkyZTc4YmEzNzEyZDI4Y2I2MTMiPmFwaV9tc2c8L2E+PC9saT4KKzxsaT5tc2cmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E3YzY3NDY2YTA4ZTk2ZjU3ZjVjYzhhNDFiZWI4ODNiMyI+YXBpX21zZzwvYT48L2xpPgogPGxpPm1zZ19pZHgmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtcXR0X19jbGllbnRfX3MuaHRtbCNhYWU3YmQxZGEzNDYxZWZlZjk2MTY5MzRmZWIxNjZhYTUiPm1xdHRfY2xpZW50X3M8L2E+PC9saT4KIDxsaT5tdHUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FjYTdkNTZiNGUwZjgyMmIwY2VkMjg4NWYyMjJiOGQ0OCI+bmV0aWY8L2E+PC9saT4KIDxsaT5tdHU2JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhY2Q3OGZjYTVkYWQ2NDY4NjA1ZjM4ZTMyN2IzYTVlNzIiPm5ldGlmPC9hPjwvbGk+Cis8bGk+bXVsdGljYXN0X21zZ193YWl0aW5nJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fZGVsYXllZF9fbXNnLmh0bWwjYTY0MWFiY2Y2OTJhOTllMmM5NjkwNDg0MzJiM2M2YWRmIj5tZG5zX2RlbGF5ZWRfbXNnPC9hPjwvbGk+Cis8bGk+bXVsdGljYXN0X3Byb2JlX3RpbWVvdXQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19kZWxheWVkX19tc2cuaHRtbCNhNWNhOWZjY2M1MjNiNzgyMGY4ZTY3YzljY2Y5MjFkYTgiPm1kbnNfZGVsYXllZF9tc2c8L2E+PC9saT4KKzxsaT5tdWx0aWNhc3RfdGltZW91dCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2RlbGF5ZWRfX21zZy5odG1sI2E2YzdlNTgxZjFjZjY3ZGFmMDM5ZmZjYWEzMTU4MGU2MCI+bWRuc19kZWxheWVkX21zZzwvYT48L2xpPgorPGxpPm11bHRpY2FzdF90aW1lb3V0XzI1VFRMJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fZGVsYXllZF9fbXNnLmh0bWwjYTcwNTIzODc1MDZlZjQ4YjFkYjA5OWM0OGY0ZWM1NzM2Ij5tZG5zX2RlbGF5ZWRfbXNnPC9hPjwvbGk+CiA8L3VsPgogPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KIDwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19uLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19uLmh0bWwKaW5kZXggNTM1N2NkNi4uY2QxOTEwZSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfbi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX24uaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsMTUgKzEwMCwxNyBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCB2YXJpYWJsZXMgd2l0aCBsaW5rcyB0byB0aGUgc3RydWN0L3VuaW9uIGRvY3VtZW50YXRpb24gZm9yIGVhY2ggZmllbGQ6PC9kaXY+CiAKIDxoMz48YSBpZD0iaW5kZXhfbiIgbmFtZT0iaW5kZXhfbiI+PC9hPi0gbiAtPC9oMz48dWw+Ci08bGk+biYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTQ2MDA3Y2U0ZjA4ZDNlMzk2ZjA2OGFiODBjOWE5YWUxIj5hcGlfbXNnPC9hPjwvbGk+Ci08bGk+bmFtZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGRuc19fYXBpX19tc2cuaHRtbCNhZGE0NGEwZWI2YzkxODFjYWM4MGNmYmJlZTAxZDNiNTMiPmRuc19hcGlfbXNnPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYTU2MDQ0N2IzNjQ4NTRlYjU0ODBlMTM3ZTA5ZDNjZDI0Ij5tZG5zX2hvc3Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhYzZkOTJjZjIxM2UzNjQ3ZDNjYTE1MjA1OTVjM2I3ODQiPm1kbnNfc2VydmljZTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhMzJmY2E2ZmZkMjhiYjlhZjNmODkxYTM3ODgyN2E2N2UiPm5ldGlmPC9hPjwvbGk+Cis8bGk+biYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTliMGM3MDc4MzU4MzhjMmZmZTU1Yjg1YzI5MDJkN2FkIj5hcGlfbXNnPC9hPjwvbGk+Cis8bGk+bmFtZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGRuc19fYXBpX19tc2cuaHRtbCNhZGE0NGEwZWI2YzkxODFjYWM4MGNmYmJlZTAxZDNiNTMiPmRuc19hcGlfbXNnPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYTU2MDQ0N2IzNjQ4NTRlYjU0ODBlMTM3ZTA5ZDNjZDI0Ij5tZG5zX2hvc3Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3JlcXVlc3QuaHRtbCNhM2VkMThkYWQ1MDAxMjVlMGQ2MzI3NGM3OTdiZDUyZjUiPm1kbnNfcmVxdWVzdDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sI2FjNmQ5MmNmMjEzZTM2NDdkM2NhMTUyMDU5NWMzYjc4NCI+bWRuc19zZXJ2aWNlPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2EzMmZjYTZmZmQyOGJiOWFmM2Y4OTFhMzc4ODI3YTY3ZSI+bmV0aWY8L2E+PC9saT4KIDxsaT5uYW1lX3NpemUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRiaW9zX19hbnN3ZXIuaHRtbCNhNTgyOGRjMDRlMDFhMWY3YjczNDAxOWRiNDI4ZmQ0NmQiPm5ldGJpb3NfYW5zd2VyPC9hPjwvbGk+CiA8bGk+bmQ2JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c3RhdHNfXy5odG1sI2FiMzQ4YTNhNGI1OTNiMDVkN2RmMTI5M2EwNmFmOGFkZiI+c3RhdHNfPC9hPjwvbGk+Ci08bGk+bmV0aWYmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhZDBiZDA2NmYxMjdkMzVhMGNlNjcxOTNlMWNkMDc0MzAiPm1kbnNfb3V0cGFja2V0PC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhYzczMDdmMzQ0ZjY1NGNiOTU0ZjkyZDU3OGRjN2M5ODkiPm1kbnNfcGFja2V0PC9hPjwvbGk+Ci08bGk+bmV4dCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlnbXBfX2dyb3VwLmh0bWwjYTk1YzQxYjllN2RlNmExNGJiOGE3OTEwOTEzMzk1ZTc4Ij5pZ21wX2dyb3VwPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsd2lwX19zZWxlY3RfX2NiLmh0bWwjYTk0MTI4ZjBlMTY0Zjg5NTIyNmYyMGZlNzVmZGRkMzVhIj5sd2lwX3NlbGVjdF9jYjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWVtLmh0bWwjYTVhYmYxM2ExMTE1NmU5MmM0MTdmN2ZmNjZlZjBiNWNmIj5tZW08L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1sZF9fZ3JvdXAuaHRtbCNhOTI3M2EzNDVhNTc1NDI0MWJmMjZkZGM4MzVkMjdkZGMiPm1sZF9ncm91cDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fcmVxdWVzdF9fdC5odG1sI2FjYThkZTIxNTc5ZjUxZTc3NDIwNzZhNDk3NWE0MTc3YiI+bXF0dF9yZXF1ZXN0X3Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWU3NzczNmI2NGRmNDQyMjQyNzk1MjIwZDc2YmU2Yjg2Ij5uZXRpZjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zi5odG1sI2E1ZTU3NjNjOTRmZDE4ZDc4OTM3YjBiNThjZTdkZjM0MSI+cGJ1ZjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zl9fcm9tLmh0bWwjYTVmZmRmNTkwZWQ2NWIyMTdlMmQ5NmY2NDhlMWJkM2U3Ij5wYnVmX3JvbTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZC5odG1sI2E3Mzg4NDIyZmZiMDYwN2IyMDlhMzlkNmQzZmNhZDQwZSI+c25tcF92YXJiaW5kPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYi5odG1sI2EyYWVkN2ZmYjVmYjgzYWFiZTY4YjM2ZjA5N2Q5OTI2MCI+dGNwX3BjYjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19wY2JfX2xpc3Rlbi5odG1sI2EwNDgzZDBjMmEyNzU4ZGNlZjE4Njg5YmUyZWZiZGYzNCI+dGNwX3BjYl9saXN0ZW48L2E+PC9saT4KKzxsaT5uZXh0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwjYWExNGMyYjg4Y2Q0NzE4MzlkNWI1ZGU4MGJiNDZhOWFhIj5hY2Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlnbXBfX2dyb3VwLmh0bWwjYTk1YzQxYjllN2RlNmExNGJiOGE3OTEwOTEzMzk1ZTc4Ij5pZ21wX2dyb3VwPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsd2lwX19zZWxlY3RfX2NiLmh0bWwjYTk0MTI4ZjBlMTY0Zjg5NTIyNmYyMGZlNzVmZGRkMzVhIj5sd2lwX3NlbGVjdF9jYjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWVtLmh0bWwjYTVhYmYxM2ExMTE1NmU5MmM0MTdmN2ZmNjZlZjBiNWNmIj5tZW08L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1sZF9fZ3JvdXAuaHRtbCNhOTI3M2EzNDVhNTc1NDI0MWJmMjZkZGM4MzVkMjdkZGMiPm1sZF9ncm91cDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fcmVxdWVzdF9fdC5odG1sI2FjYThkZTIxNTc5ZjUxZTc3NDIwNzZhNDk3NWE0MTc3YiI+bXF0dF9yZXF1ZXN0X3Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWU3NzczNmI2NGRmNDQyMjQyNzk1MjIwZDc2YmU2Yjg2Ij5uZXRpZjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zi5odG1sI2E1ZTU3NjNjOTRmZDE4ZDc4OTM3YjBiNThjZTdkZjM0MSI+cGJ1ZjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zl9fcm9tLmh0bWwjYTVmZmRmNTkwZWQ2NWIyMTdlMmQ5NmY2NDhlMWJkM2U3Ij5wYnVmX3JvbTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZC5odG1sI2E3Mzg4NDIyZmZiMDYwN2IyMDlhMzlkNmQzZmNhZDQwZSI+c25tcF92YXJiaW5kPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYi5odG1sI2EyYWVkN2ZmYjVmYjgzYWFiZTY4YjM2ZjA5N2Q5OTI2MCI+dGNwX3BjYjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19wY2JfX2xpc3Rlbi5odG1sI2EwNDgzZDBjMmEyNzU4ZGNlZjE4Njg5YmUyZWZiZGYzNCI+dGNwX3BjYl9saXN0ZW48L2E+PC9saT4KKzxsaT5uZXh0X2Fuc3dlciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2ExZmY0NTQ3ZDA4NjZmMzM4ZDFjNThmYzFkYWRmNDNmMSI+bWRuc19wYWNrZXQ8L2E+PC9saT4KKzxsaT5uZXh0X3RjX3F1ZXN0aW9uJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYWZkYjc4MjE4YzE3NzUwNzM3NjJkOTU2MDk4NmMxMTliIj5tZG5zX3BhY2tldDwvYT48L2xpPgogPGxpPm5vZGUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19sZWFmX19ub2RlLmh0bWwjYWE5ZTQzMDMwYjUyMjlkODQyNTA4MmM1OTVjNTc2OTkyIj5zbm1wX2xlYWZfbm9kZTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZV9faW5zdGFuY2UuaHRtbCNhNDEzNmY0NDQwNGIyNWY0ZDRkYWNjNmI2Yjc2ZTc3YWMiPnNubXBfbm9kZV9pbnN0YW5jZTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fc2NhbGFyX19hcnJheV9fbm9kZS5odG1sI2EzNDc1M2U3NWVjODczYzkyMzgxYmY5YjZkMDBkNDExYiI+c25tcF9zY2FsYXJfYXJyYXlfbm9kZTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fc2NhbGFyX19ub2RlLmh0bWwjYTNjOWU1Y2MwYTVlMjJlY2VjZWViM2M1MTJkMjVlM2ExIj5zbm1wX3NjYWxhcl9ub2RlPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX190YWJsZV9fbm9kZS5odG1sI2EzZjEyMzM0ZThkMTU1NmMzNmNlM2UyMjA2MDAxYWIxOCI+c25tcF90YWJsZV9ub2RlPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX190cmVlX19ub2RlLmh0bWwjYWQ4NTFmODBjODA5NjA2OTQ3Yzk5Y2IyNmE5MTYzMzg2Ij5zbm1wX3RyZWVfbm9kZTwvYT48L2xpPgogPGxpPm5vZGVfdHlwZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX25vZGUuaHRtbCNhMWFmOGUyMGE2ODg5NDNhNDE5YjMwN2JmMTIzYjE4NTEiPnNubXBfbm9kZTwvYT48L2xpPgogPGxpPm51bSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1lbXBfX2Rlc2MuaHRtbCNhMmMzMmRiNzhlNTY1Yjg4MTJjYTBlMjBmZTkyOWE4YTciPm1lbXBfZGVzYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhYjdlZjAxZTUwNWRkMmZlYjc4MWZlODY3NTZiMWM5NzMiPm5ldGlmPC9hPjwvbGk+Cis8bGk+bnVtX2NvbmZsaWN0cyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sI2FiNDBiNmIzY2Y1NzYzNDEzNTc1M2YyNDI2MjA3Zjg0YSI+YWNkPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYTA3YWFkZjlmMzA4ZWVlMTZhOTkwNDE2MzVkZjM4MTIzIj5tZG5zX2hvc3Q8L2E+PC9saT4KIDxsaT5udW1iZXJfb2ZfYWxpZ25tZW50X2Vycm9ycyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sI2FiNGY5ZmY2M2JkNTUyOTQxOGMwNzc2MjUwNjE4OWFkMiI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9saT4KIDxsaT5udW1iZXJfb2ZfY29sbGlzaW9ucyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sI2E0NWI3YWVjMjAwNDM0ZDNhYWFiYzNlYTZlYmM0NmMxZSI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9saT4KIDxsaT5udW1iZXJfb2ZfY3JjcyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sI2FiMjNhMTFkYjg2YTE3MGI0NmFhOGY4YWY0MzQ1MzRkOCI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX28uaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX28uaHRtbAppbmRleCAyNDMxMDRjLi42MTQxNzhiIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19vLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfby5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwNCw2ICsxMDQsNyBAQAogPGxpPm9pZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX25vZGUuaHRtbCNhZTdhM2JiMGViNDlhYzUyN2Q0NjFiZTQxNDkzN2YyNzEiPnNubXBfbm9kZTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZC5odG1sI2FjZTNhOWU0ZGNkYzlhNWVjNzlhMjBjODQ5NDY0MThhNCI+c25tcF92YXJiaW5kPC9hPjwvbGk+CiA8bGk+b2xkX2FkZHJlc3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFpcHY0X19jaGFuZ2VkX19zLmh0bWwjYTBmNmU1YzEzMTgyMThkOTVmMWQzZGM4YzI5YzMwYWRlIj5uZXRpZl9leHRfY2FsbGJhY2tfYXJnc190OjppcHY0X2NoYW5nZWRfczwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xaXB2Nl9fc2V0X19zLmh0bWwjYWFmZGEyMzdhZDBjMjBkMjVmYTJhZDgzZDYzMDUxMjI2Ij5uZXRpZl9leHRfY2FsbGJhY2tfYXJnc190OjppcHY2X3NldF9zPC9hPjwvbGk+CiA8bGk+b2xkX3N0YXRlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xaXB2Nl9fYWRkcl9fc3RhdGVfX2NoYW5nZWRfX3MuaHRtbCNhOWI1ODcxMmU4MmE3MzgwMzM5MTUyMzMyNGUxOWE3NzYiPm5ldGlmX2V4dF9jYWxsYmFja19hcmdzX3Q6OmlwdjZfYWRkcl9zdGF0ZV9jaGFuZ2VkX3M8L2E+PC9saT4KKzxsaT5vbmx5X3B0ciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3JlcXVlc3QuaHRtbCNhMTA4MGI1NjFjOGRjYjMyMmZiMmFmNjQyMTdiMTNmNjQiPm1kbnNfcmVxdWVzdDwvYT48L2xpPgogPGxpPm9wX2NvbXBsZXRlZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGNvbm4uaHRtbCNhOTgyNTA2Njk4YTU5ZjE4NWZmM2YxNmQxNjc1ZWE0YWUiPm5ldGNvbm48L2E+PC9saT4KIDxsaT5vcGVuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGZ0cF9fY29udGV4dC5odG1sI2E2NWQ2MzU5ZTJhYWM1NzE4MTNjMDVjNjE2NzZjMDFhMSI+dGZ0cF9jb250ZXh0PC9hPjwvbGk+CiA8bGk+b3JpZ2luYWwmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmX19jdXN0b21fX3JlZi5odG1sI2ExMzVhMTQ3NjkwODMzN2Q4MDczMjQxZmQ3ZjY4ZmExZCI+cGJ1Zl9jdXN0b21fcmVmPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19wLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19wLmh0bWwKaW5kZXggYTZjNWU0My4uMTA1YjhlOCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfcC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3AuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTYsOSArMTE2LDggQEAKIDxsaT5wb2xsX25mZHMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsd2lwX19zZWxlY3RfX2NiLmh0bWwjYTM5YzQ5ODBjMjYxMzgwNDgxZjc5YWYyYjUzNmViZmJhIj5sd2lwX3NlbGVjdF9jYjwvYT48L2xpPgogPGxpPnBvcnQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19zZXJ2aWNlLmh0bWwjYWJiZjMxN2NkZThmYjdiYThkODM0YWQ5NzQ2ZGQ3ODBjIj5tZG5zX3NlcnZpY2U8L2E+PC9saT4KIDxsaT5wcmV2JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc2VsZWN0X19jYi5odG1sI2EyMWE5OGUzMTZiYjcwMDFkODc1MGIyMGY1YTdkMGFhNyI+bHdpcF9zZWxlY3RfY2I8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1lbS5odG1sI2E5ZDc3MjJlZDEwYWRmOTY1ZmE5ODU2M2Q1MDJmOThhYyI+bWVtPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwjYTM2NWFiY2MxZjgwZDI4ZGM4ZmZkMDcxOTMwOTljNzYwIj5zbm1wX3ZhcmJpbmQ8L2E+PC9saT4KLTxsaT5wcm9iZXNfc2VudCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCNhYzhmNmUzYzZlMTI1MWJmNzNmMDQzZTQ4OWM4NDA5MjIiPm1kbnNfaG9zdDwvYT48L2xpPgotPGxpPnByb2Jpbmdfc3RhdGUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYWY5Y2VkMzFjMzVkZTZhMjgxZTViMTNmMDFlNWFhZTYxIj5tZG5zX2hvc3Q8L2E+PC9saT4KLTxsaT5wcm90byYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhYTlmMmUwYmI2N2QzODQ4MTUyZTYwNzZlOTJlODAxOGQiPm1kbnNfc2VydmljZTwvYT48L2xpPgorPGxpPnByb2JlX3F1ZXJ5X3JlY3YmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRtc2cuaHRtbCNhNGEzZWU5OWY3YzI1ZTg4ZjE3ZWE5MTI4OTc2MTdhYTAiPm1kbnNfb3V0bXNnPC9hPjwvbGk+Cis8bGk+cHJvdG8mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19yZXF1ZXN0Lmh0bWwjYTQ5N2UxYjhmNjY0ZGFiOTkwNGE4OWU1ZjE1ZjViYzYwIj5tZG5zX3JlcXVlc3Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhYTlmMmUwYmI2N2QzODQ4MTUyZTYwNzZlOTJlODAxOGQiPm1kbnNfc2VydmljZTwvYT48L2xpPgogPGxpPnB0ciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldHZlY3Rvci5odG1sI2E1MjMzNjI3MzdlYTc3NjRmOWFhYTczYTA1MGEwYjk4MyI+bmV0dmVjdG9yPC9hPjwvbGk+CiA8L3VsPgogPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3EuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3EuaHRtbAppbmRleCAxNTAyNjdmLi44MGNiMmFjIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19xLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfcS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMSw2ICsxMDEsOCBAQAogCiA8aDM+PGEgaWQ9ImluZGV4X3EiIG5hbWU9ImluZGV4X3EiPjwvYT4tIHEgLTwvaDM+PHVsPgogPGxpPnEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZDZfX25laWdoYm9yX19jYWNoZV9fZW50cnkuaHRtbCNhODMwNjc0NDQ2YTQ1ZWIyMDBkMzhhNDVmYmRkNWM1ZGYiPm5kNl9uZWlnaGJvcl9jYWNoZV9lbnRyeTwvYT48L2xpPgorPGxpPnF0eXBlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcmVxdWVzdC5odG1sI2E1YTkyNjEzNjIyMTNhMWE3OTBhMGIzNDUxOTE2ZjY2OSI+bWRuc19yZXF1ZXN0PC9hPjwvbGk+Cis8bGk+cXVlcnkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRtc2cuaHRtbCNhM2Y2ODEwZmIxZjJhOTg5YWZjYmMyZmQ4NTJhMjAzODYiPm1kbnNfb3V0bXNnPC9hPjwvbGk+CiA8bGk+cXVlcnlfbmFtZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sI2FhMDI0Y2U3ZTBlMjMzYzQyMzkzZjVjM2MzNzhkM2Y5YiI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9saT4KIDxsaT5xdWVzdGlvbnMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhMGQ0MDJjZGUwNDA3MjhkMzYxZGVjOGY3ZDg2ZjUwNGMiPm1kbnNfb3V0cGFja2V0PC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhMDkyMTFlNzhmN2Y3NzNjNDkyYjU4NTZkMzE0MjM2OTkiPm1kbnNfcGFja2V0PC9hPjwvbGk+CiA8bGk+cXVlc3Rpb25zX2xlZnQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCNhZmRiOWMxNGRkMGM5MTUxMTliOGFkYjU4NDM4MWE0MzciPm1kbnNfcGFja2V0PC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19yLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19yLmh0bWwKaW5kZXggMzllYzk3Yy4uOTcyZjhhYyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfci5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3IuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsNyArMTAwLDggQEAKIDxkaXYgY2xhc3M9InRleHRibG9jayI+SGVyZSBpcyBhIGxpc3Qgb2YgYWxsIGRvY3VtZW50ZWQgdmFyaWFibGVzIHdpdGggbGlua3MgdG8gdGhlIHN0cnVjdC91bmlvbiBkb2N1bWVudGF0aW9uIGZvciBlYWNoIGZpZWxkOjwvZGl2PgogCiA8aDM+PGEgaWQ9ImluZGV4X3IiIG5hbWU9ImluZGV4X3IiPjwvYT4tIHIgLTwvaDM+PHVsPgotPGxpPnImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E1MGU4ZDZkZmEwYmEzMGFlN2UzOWMzMzZiZjY4NzQyYyI+YXBpX21zZzwvYT48L2xpPgorPGxpPnImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2FkYmIzM2UwMzA4OWRiNTI3YjBhZjdlNGIyMmYwNGUxYyI+YXBpX21zZzwvYT48L2xpPgorPGxpPnJhdGVfbGltaXRfYWN0aXZhdGVkJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19faG9zdC5odG1sI2EwMDJlODM2YTE4ODhjN2RmNGNmMmI3NzVjN2ZhZTU1NyI+bWRuc19ob3N0PC9hPjwvbGk+CiA8bGk+cmN2ZXZlbnQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rsd2lwX19zb2NrLmh0bWwjYWY0MGQ2N2NiYWVmNDMxOGQyNmU1NjA5ODhiNmUxYjNhIj5sd2lwX3NvY2s8L2E+PC9saT4KIDxsaT5yZWFjaGFiaWxpdHkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbnRwX19zZXJ2ZXIuaHRtbCNhMmU5MjgzYmI4Zjk0OTMwZmQyYTJjM2YyNGZjNGI0MGQiPnNudHBfc2VydmVyPC9hPjwvbGk+CiA8bGk+cmVhZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRmdHBfX2NvbnRleHQuaHRtbCNhNzQ4ZTM3ZGYwYzhiODRiM2FkZGE3OGQ2MDNiOTAzM2MiPnRmdHBfY29udGV4dDwvYT48L2xpPgpAQCAtMTE3LDYgKzExOCw3IEBACiA8bGk+cmVmZXJlbmNlX2xlbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX25vZGVfX2luc3RhbmNlLmh0bWwjYWQyODk5NTdiMzRiNGU1NTkxNWZhNzlmMzdjNGQ5ZDU0Ij5zbm1wX25vZGVfaW5zdGFuY2U8L2E+PC9saT4KIDxsaT5yZWxlYXNlX2luc3RhbmNlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZV9faW5zdGFuY2UuaHRtbCNhMjBhMjU2YzU0ZmFiMTlhNDU1ZWNmNmRlZmY3NmM2ZGUiPnNubXBfbm9kZV9pbnN0YW5jZTwvYT48L2xpPgogPGxpPnJlbW92ZV9jYWxsYmFjayYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWUwNmRlYjUzMmVhZDJlMzAwOWJhNGU1OGFhZTZjYTA3Ij5uZXRpZjwvYT48L2xpPgorPGxpPnJlc3VsdF9mbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3JlcXVlc3QuaHRtbCNhNGNjOGE0ZTYyY2U3MWJjMzNmMWU3Y2IyNGIxOThjMWQiPm1kbnNfcmVxdWVzdDwvYT48L2xpPgogPGxpPnJzX2NvdW50JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhOWMxZjlmMjhiZGU2MGFhODY4YmMzMjk2YmVlN2IxYjYiPm5ldGlmPC9hPjwvbGk+CiA8L3VsPgogPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3MuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3MuaHRtbAppbmRleCAyMTQ3NTc5Li43MGM0ZDI3IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc19zLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfcy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMCwyNiArMTAwLDI1IEBACiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPkhlcmUgaXMgYSBsaXN0IG9mIGFsbCBkb2N1bWVudGVkIHZhcmlhYmxlcyB3aXRoIGxpbmtzIHRvIHRoZSBzdHJ1Y3QvdW5pb24gZG9jdW1lbnRhdGlvbiBmb3IgZWFjaCBmaWVsZDo8L2Rpdj4KIAogPGgzPjxhIGlkPSJpbmRleF9zIiBuYW1lPSJpbmRleF9zIj48L2E+LSBzIC08L2gzPjx1bD4KLTxsaT5zZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFwaV9fbXNnLmh0bWwjYTVhYTIyZGJkNzRmZDdiYTJmYTVlYjhiYzhhYWU1MjlmIj5hcGlfbXNnPC9hPjwvbGk+Cis8bGk+c2QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2E4NjQ0NzU4Y2Q1NWUwODkxZTQzNzE3NzExYWU3YjAzYiI+YXBpX21zZzwvYT48L2xpPgogPGxpPnNlbGVjdF93YWl0aW5nJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bHdpcF9fc29jay5odG1sI2FhZGJjZjVlYzNkNTA2MzFkODgyMTIwMDE2M2Q4OGQzOCI+bHdpcF9zb2NrPC9hPjwvbGk+CiA8bGk+c2VtJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0ZG5zX19hcGlfX21zZy5odG1sI2ExNWUwMWU2NzVlYmM0NmI1YWVkZTQyMzQyYmU0NDVlMiI+ZG5zX2FwaV9tc2c8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NlbGVjdF9fY2IuaHRtbCNhYzllNzkwY2FjOGI1ZWFlNjA3YThlZjk1ZGNjNjg0ODIiPmx3aXBfc2VsZWN0X2NiPC9hPjwvbGk+CiA8bGk+c2VtX3NpZ25hbGxlZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NlbGVjdF9fY2IuaHRtbCNhMWMwMGYxMTU5ZTllOGViN2NjYTAyYzQ5NzYwNWNkOTkiPmx3aXBfc2VsZWN0X2NiPC9hPjwvbGk+CiA8bGk+c2VuZF90aW1lb3V0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Y29ubi5odG1sI2E0NGU1NTcyNDQ4MmI4ZTQ0NzEzNGY1YmE0ZjAxNTUxYSI+bmV0Y29ubjwvYT48L2xpPgogPGxpPnNlbmRldmVudCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGx3aXBfX3NvY2suaHRtbCNhN2UyODI3NzY2ODFlYTRiN2JkMzg5OTUwYThhNjRmYTgiPmx3aXBfc29jazwvYT48L2xpPgotPGxpPnNlbnRfbnVtJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXV0b2lwLmh0bWwjYTlkM2UzYmFiMmYxMmI3YzcyODMxNzdmYmYwMzlmYjI1Ij5hdXRvaXA8L2E+PC9saT4KKzxsaT5zZW50X251bSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sI2E0YWIwMDI2NDhkMzM4YWUzM2ZmZDM4MjllMjM3MDNjYiI+YWNkPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYTljMDliNWM1OGIzZGI2NGY3OGNlOGVlYjE0OTUyYmVhIj5tZG5zX2hvc3Q8L2E+PC9saT4KIDxsaT5zZXF1ZW5jZV9udW1iZXImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZWVlX184MDIxNTRfX2hkci5odG1sI2E4NzAwMDEyMDVmNWEzY2U0NWNlMGIyZjMyMzI3NTg2OSI+aWVlZV84MDIxNTRfaGRyPC9hPjwvbGk+Ci08bGk+c2VydmljZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhNDI1ODM5ODZlMjRiNWE0YTEzYjZkNjQ3YzFhMjgxYWQiPm1kbnNfc2VydmljZTwvYT48L2xpPgorPGxpPnNlcnZpY2UmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19yZXF1ZXN0Lmh0bWwjYWFjZTZhYjhiN2RlNzNkNjFkMDI3MTFmMjZkZTdiNzUxIj5tZG5zX3JlcXVlc3Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCNhNDI1ODM5ODZlMjRiNWE0YTEzYjZkNjQ3YzFhMjgxYWQiPm1kbnNfc2VydmljZTwvYT48L2xpPgogPGxpPnNlcnZpY2VzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19faG9zdC5odG1sI2E3NTBjMzEzNDBjMjJlNTEzNzVlNGRjM2U2ZTk0ZjJlZCI+bWRuc19ob3N0PC9hPjwvbGk+CiA8bGk+c2Vzc2lvbl9kYXRhX3BhY2tldF9zaXplJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Ymlvc19fYW5zd2VyLmh0bWwjYWJlYzM4ZjIwYmI0NjBkZGMyZDZlOGM5YjkyMDg2MDhjIj5uZXRiaW9zX2Fuc3dlcjwvYT48L2xpPgogPGxpPnNldF90ZXN0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fbm9kZV9faW5zdGFuY2UuaHRtbCNhMDNjMWZlYzM3NjRmNmI0ODMzNzIzOGIzMzU1ZWU1YmQiPnNubXBfbm9kZV9pbnN0YW5jZTwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdGFibGVfX25vZGUuaHRtbCNhY2ZiYzVmYTMzNjExMTdmYzRmYTgzNjQyZGRlOGFlZjAiPnNubXBfdGFibGVfbm9kZTwvYT48L2xpPgogPGxpPnNldF92YWx1ZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX25vZGVfX2luc3RhbmNlLmh0bWwjYTU1ZmI0Y2FkZWZjYWI5Yzc0YzNmYjUyOWMyNTYwODM0Ij5zbm1wX25vZGVfaW5zdGFuY2U8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX3RhYmxlX19ub2RlLmh0bWwjYTJhM2U4YWMwZGNjZTY0NjA0ZmMxN2UxZGUzYzVhODA0Ij5zbm1wX3RhYmxlX25vZGU8L2E+PC9saT4KIDxsaT5zaXplJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWVtcF9fZGVzYy5odG1sI2ExNjg4ZDJiZGQ1YTdiNzc3MDBlMWZhNjI3ZjAyNWJhMyI+bWVtcF9kZXNjPC9hPjwvbGk+Ci08bGk+c29ja2V0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0Y29ubi5odG1sI2FjOGUwNWViNjU3NzQ2NjVlMzY0YTNkY2YwZjEzOWIzNiI+bmV0Y29ubjwvYT48L2xpPgogPGxpPnNvdXJjZV9hZGRyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwjYWFhNjRjYzIxNDk1ZGM2YmI3NmVkOTEyNTkwNGRkMDdhIj5tZG5zX3BhY2tldDwvYT48L2xpPgogPGxpPnNvdXJjZV9hZGRyZXNzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aWVlZV9fODAyMTU0X19oZHIuaHRtbCNhYTk2YzAzNzM4MTU4Mzc1NmU3OWJjNmVjZWRlMjc5MzciPmllZWVfODAyMTU0X2hkcjwvYT48L2xpPgogPGxpPnNvdXJjZV9wYW5faWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZWVlX184MDIxNTRfX2hkci5odG1sI2FiNjdmYzYxMmE3ZmQ3ZGNhZjQ2NDAxZTQ3MTlmYTJiMiI+aWVlZV84MDIxNTRfaGRyPC9hPjwvbGk+CiA8bGk+c3JjJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXA2X19oZHIuaHRtbCNhZjBkZjMyMTQxMzRmMjk4MjdjMjdlNjZiMjk3MGM2ZWYiPmlwNl9oZHI8L2E+PC9saT4KLTxsaT5zdGF0ZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sI2E1MWFmNTUxOTA1NDhlMzc4ZTMxMGFlYWRkZmExZmRlZiI+YXV0b2lwPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYTkzNmMzMzA5MGVjMzVlNWU4YzAwMTFiZTU1MTVhNTg5Ij5uZXRjb25uPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2E4MDljYzU3YzBkZmYwOWM1YzlhZTQ1YjAyYzIwMDJmMyI+bmV0aWY8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmX19leHRfX2NhbGxiYWNrX19hcmdzX190XzFfMWxpbmtfX2NoYW5nZWRfX3MuaHRtbCNhMzk4NzBmOTY2YTJhNjRhN2Y1MTc0N2I0NTk3NzI5NmMiPm5ldGlmX2V4dF9jYWxsYmFja19hcmdzX3Q6OmxpbmtfY2hhbmdlZF9zPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZl9fZXh0X19jYWxsYmFja19fYXJnc19fdF8xXzFzdGF0dXNfX2NoYW5nZWRfX3MuaHRtbCNhMjA3ZDNhZmRmMGEzN2QxNmE2MWQxMjUzZTI2NGQ3YTciPm5ldGlmX2V4dF9jYWxsYmFja19hcmdzX3Q6OnN0YXR1c19jaGFuZ2VkX3M8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNtdHBfX3Nlc3Npb24uaHRtbCNhZWQ5YzE4MjczODc2NzI3OWMyYjU4YjFlMzMyMmRiMDkiPnNtdHBfc2Vzc2lvbjwvYT48L2xpPgorPGxpPnN0YXRlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwjYTRlYjBmZTZkNmY1ZGJjNDliNmI5YjhiYjVhYTIxNGJiIj5hY2Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sI2E1MWFmNTUxOTA1NDhlMzc4ZTMxMGFlYWRkZmExZmRlZiI+YXV0b2lwPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwjYTJlZDUxYjE2NzcxNTkwOTE3ZTBlZWY1Y2YyNWFkYTcxIj5tZG5zX2hvc3Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGNvbm4uaHRtbCNhOTM2YzMzMDkwZWMzNWU1ZThjMDAxMWJlNTUxNWE1ODkiPm5ldGNvbm48L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYTgwOWNjNTdjMGRmZjA5YzVjOWFlNDViMDJjMjAwMmYzIj5uZXRpZjwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWZfX2V4dF9fY2FsbGJhY2tfX2FyZ3NfX3RfMV8xbGlua19fY2hhbmdlZF9fcy5odG1sI2EzOTg3MGY5NjZhMmE2NGE3ZjUxNzQ3YjQ1OTc3Mjk2YyI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDo6bGlua19jaGFuZ2VkX3M8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmX19leHRfX2NhbGxiYWNrX19hcmdzX190XzFfMXN0YXR1c19fY2hhbmdlZF9fcy5odG1sI2EyMDdkM2FmZGYwYTM3ZDE2YTYxZDEyNTNlMjY0ZDdhNyI+bmV0aWZfZXh0X2NhbGxiYWNrX2FyZ3NfdDo6c3RhdHVzX2NoYW5nZWRfczwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c210cF9fc2Vzc2lvbi5odG1sI2FlZDljMTgyNzM4NzY3Mjc5YzJiNThiMWUzMzIyZGIwOSI+c210cF9zZXNzaW9uPC9hPjwvbGk+CiA8bGk+c3RhdGljX2RhdGEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RzbXRwX19zZW5kX19yZXF1ZXN0Lmh0bWwjYTRkNTE3YWU4YjI5Y2FhNGYwYjM3MTkyMzM3OWQ5ZWY0Ij5zbXRwX3NlbmRfcmVxdWVzdDwvYT48L2xpPgogPGxpPnN0YXRzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWVtcF9fZGVzYy5odG1sI2EwNWNiNjdlYjQwOGU0NzM2Y2MwZjVlMzJiNWRiNzUwMCI+bWVtcF9kZXNjPC9hPjwvbGk+CiA8bGk+c3RhdHVzX2NhbGxiYWNrJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhMTUxM2U4MWQwMjU1N2QyYTk1MGU5NjVmMThiNTNhNDUiPm5ldGlmPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc190Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc190Lmh0bWwKaW5kZXggYmJhNjcxZS4uMzkyMzljMyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfdC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3QuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTIsMTEgKzExMiwxMSBAQAogPGxpPnRvdGFsX251bWJlcl9vZl9jb21tYW5kX2Jsb2NrcyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sI2E0YzdlYTVkMTgzOWZkMjcyMzI4Nzc4ODBlNDM0ODVhMiI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9saT4KIDxsaT50cmllZF9sbGlwYWRkciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sI2E0NzJmM2QxOGMwN2IzZGYwMjRhMGNkZThmNGZmYTg1MyI+YXV0b2lwPC9hPjwvbGk+CiA8bGk+dHMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2ExYmI0ZTNhZWQ2ZTBmZDRiNmIzMWVlODJkODA2Zjk3MSI+bmV0aWY8L2E+PC9saT4KLTxsaT50dHcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhdXRvaXAuaHRtbCNhNzUxMGQ5YTI5NjFlYTdjMjhlYmZjZGU2MzkwMjg0YmYiPmF1dG9pcDwvYT48L2xpPgorPGxpPnR0dyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sI2FhYmRlMTk2N2UzN2Q2ODViMTliOTcwMWFmNjQxYTk3YyI+YWNkPC9hPjwvbGk+CiA8bGk+dHhfYnVmJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c210cF9fc2Vzc2lvbi5odG1sI2E0MmNlZGI0OTVmNzQyM2I5ZTI4OTc5Y2UxZTQ2MGM2MSI+c210cF9zZXNzaW9uPC9hPjwvbGk+CiA8bGk+dHhfZGF0YWdyYW1fdGFnJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bG93cGFuNl9faWVlZTgwMjE1NF9fZGF0YS5odG1sI2E2NDU2MGIyODlmODZlZmUxZDM5ZWNlNjAzY2QxNGI1YyI+bG93cGFuNl9pZWVlODAyMTU0X2RhdGE8L2E+PC9saT4KIDxsaT50eF9mcmFtZV9zZXFfbnVtJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bG93cGFuNl9faWVlZTgwMjE1NF9fZGF0YS5odG1sI2FkOWNkOTk0Mzg1YzRkMWQ4ZWYwYTIyNjg2YzE3NzIwYyI+bG93cGFuNl9pZWVlODAyMTU0X2RhdGE8L2E+PC9saT4KLTxsaT50eF9pZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dHBhY2tldC5odG1sI2FjNDcwZjAyYTlmMzMyZjE4ZTAyNzQzN2RjMjkzZDM0OCI+bWRuc19vdXRwYWNrZXQ8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2EwY2Q3MWZkOWFmNmQyNTI5ZTZhNDFjNDUxYzAzN2UwMCI+bWRuc19wYWNrZXQ8L2E+PC9saT4KKzxsaT50eF9pZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX291dG1zZy5odG1sI2ExZDJkNWYxZDVkMzY2ZjMxZDY1Y2ExOGEyMzliZmQ0ZSI+bWRuc19vdXRtc2c8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3BhY2tldC5odG1sI2EwY2Q3MWZkOWFmNmQyNTI5ZTZhNDFjNDUxYzAzN2UwMCI+bWRuc19wYWNrZXQ8L2E+PC9saT4KIDxsaT50eHRfZm4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19zZXJ2aWNlLmh0bWwjYTc5YmM0OTQ2Yzk2YTNiMmQwNzEzYmMwODk3YzRiZDljIj5tZG5zX3NlcnZpY2U8L2E+PC9saT4KIDxsaT50eHRkYXRhJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sI2EzNWRhZmY5MGExOGQxOWIxNGYyM2ZhMDJkZjQyNGY5NCI+bWRuc19zZXJ2aWNlPC9hPjwvbGk+CiA8bGk+dHlwZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwX19hZGRyLmh0bWwjYTY2ZWFhOGU5MDUxZTcxMDJiZjlmMGMxOTVmYmU1NTVhIj5pcF9hZGRyPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRjb25uLmh0bWwjYTYxYWY5MDhkMWQyZTRlNzM0NWFjNjVkM2IzOTBkN2I2Ij5uZXRjb25uPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwjYWQ2MzIyM2U0NWUwNGMwOGVhOTc4NTliOGJhNzY3OTUwIj5zbm1wX3ZhcmJpbmQ8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3UuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3UuaHRtbAppbmRleCA5ZjM3M2E4Li4zNWM1ZjlhIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc191Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfdS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMSw3ICsxMDEsOCBAQAogCiA8aDM+PGEgaWQ9ImluZGV4X3UiIG5hbWU9ImluZGV4X3UiPjwvYT4tIHUgLTwvaDM+PHVsPgogPGxpPnVkcCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHN0YXRzX18uaHRtbCNhNjI2ZTAzZDRiZGVkNjQ4MDU4Mjc4OWNmZDE3ZDQwNjMiPnN0YXRzXzwvYT48L2xpPgotPGxpPnVuaWNhc3RfcmVwbHkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCNhNjgyNTU3MjU1NzVhZjA4NmEzYWZhNzZiYzVjOGU2NGQiPm1kbnNfb3V0cGFja2V0PC9hPjwvbGk+Cis8bGk+dW5pY2FzdF9tc2dfaW5fdXNlJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fZGVsYXllZF9fbXNnLmh0bWwjYWJkNTIxMDYyNDM5NGZlY2U0NWU1N2UxNmRhODVhNDdkIj5tZG5zX2RlbGF5ZWRfbXNnPC9hPjwvbGk+Cis8bGk+dW5pY2FzdF9yZXBseV9yZXF1ZXN0ZWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRtc2cuaHRtbCNhOGFiY2Q1YjNlMDRjMTZhNzU3NTJiMzZjZjYxM2FjNmYiPm1kbnNfb3V0bXNnPC9hPjwvbGk+CiA8bGk+dW5pdF9pZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGJpb3NfX2Fuc3dlci5odG1sI2FlZWQ2YWE4YmE0ZjhiYjEwN2QxNDFiM2IzZDBhMTc4NyI+bmV0Ymlvc19hbnN3ZXI8L2E+PC9saT4KIDxsaT51c2UmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpZ21wX19ncm91cC5odG1sI2FiMzYyNWFlYjM2ODllMzYyNmY3MzEzOGViMGU0MTg1MiI+aWdtcF9ncm91cDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWxkX19ncm91cC5odG1sI2FkZGM2NzA5NGY4M2M5MzUyZmUwMzljMzkyYzQ4MGY5ZSI+bWxkX2dyb3VwPC9hPjwvbGk+CiA8bGk+dXNlZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1lbS5odG1sI2FhNzZiNmEzOTQyNTYxNzQzNTk3OGRjZTkwM2YwZDQ1NiI+bWVtPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc192Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc192Lmh0bWwKaW5kZXggN2Y4ODQwOS4uN2ZkZTMyMiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfdi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3YuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc193Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc193Lmh0bWwKaW5kZXggMTM1MzNkYS4uZjYwOWE2OSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfdy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3cuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsNyArMTAwLDcgQEAKIDxkaXYgY2xhc3M9InRleHRibG9jayI+SGVyZSBpcyBhIGxpc3Qgb2YgYWxsIGRvY3VtZW50ZWQgdmFyaWFibGVzIHdpdGggbGlua3MgdG8gdGhlIHN0cnVjdC91bmlvbiBkb2N1bWVudGF0aW9uIGZvciBlYWNoIGZpZWxkOjwvZGl2PgogCiA8aDM+PGEgaWQ9ImluZGV4X3ciIG5hbWU9ImluZGV4X3ciPjwvYT4tIHcgLTwvaDM+PHVsPgotPGxpPncmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2FjMDYzN2M2ZjRkYmIzZjY0Zjk1ZDUxODFkNTVlNjYzYyI+YXBpX21zZzwvYT48L2xpPgorPGxpPncmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhcGlfX21zZy5odG1sI2EwYWJmYzliZGEwYjAwNTU0NjI4YmMzMTY5ZDhmMjFiZiI+YXBpX21zZzwvYT48L2xpPgogPGxpPndpbGxfbXNnJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fY29ubmVjdF9fY2xpZW50X19pbmZvX190Lmh0bWwjYTkyNWZjZWJkMTU1NTVhZmRjMDgyMGUxOTZlMmZkM2E3Ij5tcXR0X2Nvbm5lY3RfY2xpZW50X2luZm9fdDwvYT48L2xpPgogPGxpPndpbGxfcW9zJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fY29ubmVjdF9fY2xpZW50X19pbmZvX190Lmh0bWwjYTA3OTU0OTM0ZjRmZWNmNTRmYTE5MDk5Nzg0ODIyOWQ5Ij5tcXR0X2Nvbm5lY3RfY2xpZW50X2luZm9fdDwvYT48L2xpPgogPGxpPndpbGxfcmV0YWluJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bXF0dF9fY29ubmVjdF9fY2xpZW50X19pbmZvX190Lmh0bWwjYTQ5YzEwODczZjQ0ZDc1MzQxNDBhNjNlZWYyYTZhNGUzIj5tcXR0X2Nvbm5lY3RfY2xpZW50X2luZm9fdDwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfei5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ZhcnNfei5odG1sCmluZGV4IDlhNmY1YjMuLmE0YzAyZmEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc192YXJzX3ouaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdmFyc196Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3cuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc193Lmh0bWwKaW5kZXggNTcwYmZkZC4uYzdmMTYxMSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3cuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfdy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMCw3ICsxMDAsNyBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBzdHJ1Y3QgYW5kIHVuaW9uIGZpZWxkcyB3aXRoIGxpbmtzIHRvIHRoZSBzdHJ1Y3QvdW5pb24gZG9jdW1lbnRhdGlvbiBmb3IgZWFjaCBmaWVsZDo8L2Rpdj4KIAogPGgzPjxhIGlkPSJpbmRleF93IiBuYW1lPSJpbmRleF93Ij48L2E+LSB3IC08L2gzPjx1bD4KLTxsaT53JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhYzA2MzdjNmY0ZGJiM2Y2NGY5NWQ1MTgxZDU1ZTY2M2MiPmFwaV9tc2c8L2E+PC9saT4KKzxsaT53JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YXBpX19tc2cuaHRtbCNhMGFiZmM5YmRhMGIwMDU1NDYyOGJjMzE2OWQ4ZjIxYmYiPmFwaV9tc2c8L2E+PC9saT4KIDxsaT53aWxsX21zZyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1xdHRfX2Nvbm5lY3RfX2NsaWVudF9faW5mb19fdC5odG1sI2E5MjVmY2ViZDE1NTU1YWZkYzA4MjBlMTk2ZTJmZDNhNyI+bXF0dF9jb25uZWN0X2NsaWVudF9pbmZvX3Q8L2E+PC9saT4KIDxsaT53aWxsX3FvcyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1xdHRfX2Nvbm5lY3RfX2NsaWVudF9faW5mb19fdC5odG1sI2EwNzk1NDkzNGY0ZmVjZjU0ZmExOTA5OTc4NDgyMjlkOSI+bXF0dF9jb25uZWN0X2NsaWVudF9pbmZvX3Q8L2E+PC9saT4KIDxsaT53aWxsX3JldGFpbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1xdHRfX2Nvbm5lY3RfX2NsaWVudF9faW5mb19fdC5odG1sI2E0OWMxMDg3M2Y0NGQ3NTM0MTQwYTYzZWVmMmE2YTRlMyI+bXF0dF9jb25uZWN0X2NsaWVudF9pbmZvX3Q8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc196Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9mdW5jdGlvbnNfei5odG1sCmluZGV4IGQ5NWEzMjMuLjQ1MDIyMDMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2Z1bmN0aW9uc196Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZnVuY3Rpb25zX3ouaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzLmh0bWwKaW5kZXggYmE5YzZkMS4uZjQ3YmU0MSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFscy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsOSArMTAwLDIxIEBACiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPkhlcmUgaXMgYSBsaXN0IG9mIGFsbCBkb2N1bWVudGVkIGZ1bmN0aW9ucywgdmFyaWFibGVzLCBkZWZpbmVzLCBlbnVtcywgYW5kIHR5cGVkZWZzIHdpdGggbGlua3MgdG8gdGhlIGRvY3VtZW50YXRpb246PC9kaXY+CiAKIDxoMz48YSBpZD0iaW5kZXhfYSIgbmFtZT0iaW5kZXhfYSI+PC9hPi0gYSAtPC9oMz48dWw+Cis8bGk+YWNkX2FkZCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FjZC5odG1sI2dhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiPmFjZC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2ExNTg4NTZiZjEzOWNiMjc2MTgzN2RkZmEwNzMwM2JkYyI+YWNkLmg8L2E+PC9saT4KKzxsaT5hY2RfYXJwX3JlcGx5KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhY2RfOGMuaHRtbCNhYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiPmFjZC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJhY2RfOGguaHRtbCNhYTkyZTIxNDEwZDBmMGQzNTdhYjkxNjZjZGEyNDkzN2EiPmFjZC5oPC9hPjwvbGk+Cis8bGk+YWNkX2NvbmZsaWN0X2NhbGxiYWNrX3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhY2RfOGguaHRtbCNhYmI0NDY0MDQ3NTJmNTZiMDI4ZWFmYTgzMDJkYjk1NWYiPmFjZC5oPC9hPjwvbGk+Cis8bGk+QUNEX0RFQlVHJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RlYnVnbXNnLmh0bWwjZ2E4N2ZmMGM2MDc3YjlhMzZiMDVjM2ZjNWI4ZmFlOGFkMyI+b3B0Lmg8L2E+PC9saT4KKzxsaT5hY2RfbmV0aWZfaXBfYWRkcl9jaGFuZ2VkKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTE4YjQ0NGY2ZmM2OTMyNTQxNmI0NjMyMDhhNzU0Yzk3Ij5hY2QuaDwvYT48L2xpPgorPGxpPmFjZF9uZXR3b3JrX2NoYW5nZWRfbGlua19kb3duKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2EyODcyZmEzNzVmOWNkOGY1YjA5NTYzOWQ2NTJmNmJmZiI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTI4NzJmYTM3NWY5Y2Q4ZjViMDk1NjM5ZDY1MmY2YmZmIj5hY2QuaDwvYT48L2xpPgorPGxpPmFjZF9yZW1vdmUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTcwNTAzNjk2YmNhMjVlMWNmYjYxZmFkMzhiNDMyN2RhIj5hY2QuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FjZC5odG1sI2dhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiPmFjZC5oPC9hPjwvbGk+Cis8bGk+YWNkX3N0YXJ0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTJjYTJlMmRiYjk3MTNmOTA1MTVkNDQzZGM2OTFiNWNiIj5hY2QuaDwvYT48L2xpPgorPGxpPmFjZF9zdG9wKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2EzNmRhMmIyMzk1MWExNGNhM2M5MmY1ZTc4ZGIyZjFiNyI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTM2ZGEyYjIzOTUxYTE0Y2EzYzkyZjVlNzhkYjJmMWI3Ij5hY2QuaDwvYT48L2xpPgorPGxpPmFjZF90bXIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84Yy5odG1sI2E4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84aC5odG1sI2E4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSI+YWNkLmg8L2E+PC9saT4KKzxsaT5BQ0RfVE1SX0lOVEVSVkFMJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYWNkXzhoLmh0bWwjYWFjZTZkYTBiMGRhY2Q3N2E5ZDZiZDExZjQyNGZmYTgyIj5hY2QuaDwvYT48L2xpPgogPGxpPmFsdGNwX2Fib3J0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTdmNmZhYjk5ZmVkNDQ4Mzg1YTc2YjRhNTEwMDc5NmFiIj5hbHRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTdmNmZhYjk5ZmVkNDQ4Mzg1YTc2YjRhNTEwMDc5NmFiIj5hbHRjcC5oPC9hPjwvbGk+CiA8bGk+YWx0Y3BfYWNjZXB0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTdjNGNkMGIxMTc5YTUzYjFhMjIzOTM2YmEyMjcwYmY5Ij5hbHRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTdjNGNkMGIxMTc5YTUzYjFhMjIzOTM2YmEyMjcwYmY5Ij5hbHRjcC5oPC9hPjwvbGk+CiA8bGk+YWx0Y3BfYWxsb2MoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFsdGNwXzhjLmh0bWwjYWE3NGM5ZmMzNThjZmZlZWI3MzExYjQyMTJiMGQ2ZmM3Ij5hbHRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fcHJpdl84aC5odG1sI2FhNzRjOWZjMzU4Y2ZmZWViNzMxMWI0MjEyYjBkNmZjNyI+YWx0Y3BfcHJpdi5oPC9hPjwvbGk+Cis8bGk+YWx0Y3BfYWxsb2NhdG9yX3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ij5hbHRjcC5oPC9hPjwvbGk+CiA8bGk+YWx0Y3BfYXJnKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTE5N2EzM2FmMDM4NTU2YTA0ZDhmMjdjNzAzM2Q3NzFmIj5hbHRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTE5N2EzM2FmMDM4NTU2YTA0ZDhmMjdjNzAzM2Q3NzFmIj5hbHRjcC5oPC9hPjwvbGk+CiA8bGk+YWx0Y3BfYmluZCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2E0ODViMjQ4NjgwZjczYjk4NzZkODY3NDAyOWM1MTU3YyI+YWx0Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2E0ODViMjQ4NjgwZjczYjk4NzZkODY3NDAyOWM1MTU3YyI+YWx0Y3AuaDwvYT48L2xpPgogPGxpPmFsdGNwX2Nsb3NlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTQzMjk3OThhZmRmMzcwOWM3ODlhMmVlMDYwZWUzOTkzIj5hbHRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTQzMjk3OThhZmRmMzcwOWM3ODlhMmVlMDYwZWUzOTkzIj5hbHRjcC5oPC9hPjwvbGk+CkBAIC0xMTAsNiArMTIyLDcgQEAKIDxsaT5hbHRjcF9lcnIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhZGM3NmExZjNiMjQ0ODU1OWRjODdkYTFiMzMyOTE2NDQiPmFsdGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhZGM3NmExZjNiMjQ0ODU1OWRjODdkYTFiMzMyOTE2NDQiPmFsdGNwLmg8L2E+PC9saT4KIDxsaT5hbHRjcF9mcmVlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF84Yy5odG1sI2FmZDdmNmI2NjAyZTg5Y2ZmNTFmOGE4ZWEwMzE1MzIxZCI+YWx0Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYWx0Y3BfX3ByaXZfOGguaHRtbCNhZmQ3ZjZiNjYwMmU4OWNmZjUxZjhhOGVhMDMxNTMyMWQiPmFsdGNwX3ByaXYuaDwvYT48L2xpPgogPGxpPmFsdGNwX2xpc3Rlbl93aXRoX2JhY2tsb2dfYW5kX2VycigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2E2Y2FiOTA1ZWVhOWRhMDk0ZTlmZWExNWU2MTBjZTM2ZiI+YWx0Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2E2Y2FiOTA1ZWVhOWRhMDk0ZTlmZWExNWU2MTBjZTM2ZiI+YWx0Y3AuaDwvYT48L2xpPgorPGxpPkFMVENQX01CRURUTFNfQVVUSE1PREUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fdGxzX19tYmVkdGxzX19vcHRzXzhoLmh0bWwjYTEyYWJhNjE1ODZiZDcxY2I0MmIwOTI1YjkyMTFiMzY2Ij5hbHRjcF90bHNfbWJlZHRsc19vcHRzLmg8L2E+PC9saT4KIDxsaT5BTFRDUF9NQkVEVExTX0RFQlVHJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYWx0Y3BfX3Rsc19fbWJlZHRsc19fb3B0c184aC5odG1sI2E3NzI3NDU2ZWViMGIzMzExMjEzOTM2NDEzZDIzODk4OSI+YWx0Y3BfdGxzX21iZWR0bHNfb3B0cy5oPC9hPjwvbGk+CiA8bGk+QUxUQ1BfTUJFRFRMU19MSUJfREVCVUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fdGxzX19tYmVkdGxzX19vcHRzXzhoLmh0bWwjYTEyMjYyYmU4NGFiNmEwNGUyYWZmN2NhMTUyMzI4MzA4Ij5hbHRjcF90bHNfbWJlZHRsc19vcHRzLmg8L2E+PC9saT4KIDxsaT5BTFRDUF9NQkVEVExTX0xJQl9ERUJVR19MRVZFTF9NSU4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fdGxzX19tYmVkdGxzX19vcHRzXzhoLmh0bWwjYWQ4NTYxYmJmYWJiNGVjODFhZDFjNGQ3MzA0ZDE2YmI1Ij5hbHRjcF90bHNfbWJlZHRsc19vcHRzLmg8L2E+PC9saT4KQEAgLTE0MCwxNCArMTUzLDE5IEBACiA8bGk+YWx0Y3BfdGNwX2FsbG9jKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fdGNwXzhjLmh0bWwjYTc3NTgyYzkzYmI4YTBhYTI3MTllODZiOGM4NTA1ZThhIj5hbHRjcF90Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYWx0Y3BfX3RjcF84aC5odG1sI2E3NzU4MmM5M2JiOGEwYWEyNzE5ZTg2YjhjODUwNWU4YSI+YWx0Y3BfdGNwLmg8L2E+PC9saT4KIDxsaT5hbHRjcF90bHNfYWxsb2MoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FiMGJkZmQyZWRlMGRmNGQ0N2I2ZTEyY2NhYzJiMTRiYyI+YWx0Y3BfYWxsb2MuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWIwYmRmZDJlZGUwZGY0ZDQ3YjZlMTJjY2FjMmIxNGJjIj5hbHRjcF90bHMuaDwvYT48L2xpPgogPGxpPmFsdGNwX3Rsc19jb25maWdfc2VydmVyX2FkZF9wcml2a2V5X2NlcnQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FlNmY1MjM3MGI2MmIwZjRiYThkMzczYzUxODZjOWU3ZSI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KKzxsaT5hbHRjcF90bHNfY29uZmlndXJlX2FscG5fcHJvdG9jb2xzKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhMWY2MGIxMmE2YTQ0NDAyMTRiN2JjZjJlM2JhNDMxMjYiPmFsdGNwX3Rscy5oPC9hPjwvbGk+CiA8bGk+YWx0Y3BfdGxzX2NvbnRleHQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E4NWQyMGI0ZGMzMjEzNDJjZjA5YWQ5MzA4NjMwOWJiNyI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KIDxsaT5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19jbGllbnQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E3YjNjMTFjOGEyNzNkNjhhY2MzMzJjNTVlNmIzODE3MCI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KIDxsaT5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19jbGllbnRfMndheWF1dGgoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E0ZGNjYmQ4NjFjMDNhOWMwOWVhZTY3OTlkYTAwNDU5NyI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KLTxsaT5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19zZXJ2ZXIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FmNmVkMTMyNzEzOTQzNzFjYzg5ZDcwZWY1MTI4YzQxMSI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KKzxsaT5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19zZXJ2ZXIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FhMzc2NDliZjI0ZWJlYTIzNWE4ZTNlOGY1MGI5ODMxZiI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KIDxsaT5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19zZXJ2ZXJfcHJpdmtleV9jZXJ0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhNjBiNDYzNWM4MGI4MzJhOGMzYjMzMmZkZWRlNjlkNWUiPmFsdGNwX3Rscy5oPC9hPjwvbGk+CiA8bGk+YWx0Y3BfdGxzX2ZyZWVfY29uZmlnKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhOGZiOGE5MmZhM2Y4NDE3MDA1MGRkYWIyODg4YjkxNDUiPmFsdGNwX3Rscy5oPC9hPjwvbGk+CiA8bGk+YWx0Y3BfdGxzX2ZyZWVfZW50cm9weSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTc1Njc1Y2NlYzE0MmQxN2ZjMDY5NWI0MjVmM2VjMWMyIj5hbHRjcF90bHMuaDwvYT48L2xpPgorPGxpPmFsdGNwX3Rsc19mcmVlX3Nlc3Npb24oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E5MDZlZWZjZWY2NmU5ZGQyYjQzYzMzOTI3MDQ5MDVmNSI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KKzxsaT5hbHRjcF90bHNfZ2V0X3Nlc3Npb24oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E4MjdjNzZhMGJkZGM0OTIzYjlhMTdjODEzZTEzODkxZSI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KKzxsaT5hbHRjcF90bHNfaW5pdF9zZXNzaW9uKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhZTZjM2NmNzJmY2QyOWU2ZWE0Yzc0MTgxMzcwNDIwYzMiPmFsdGNwX3Rscy5oPC9hPjwvbGk+CiA8bGk+YWx0Y3BfdGxzX25ldygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWI2YTcxNzQ0NmFmOTMxOTQ5YmMzZTBkYWNlYjA5MGM4Ij5hbHRjcF9hbGxvYy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhYjZhNzE3NDQ2YWY5MzE5NDliYzNlMGRhY2ViMDkwYzgiPmFsdGNwX3Rscy5oPC9hPjwvbGk+Cis8bGk+YWx0Y3BfdGxzX3NldF9zZXNzaW9uKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhNGFlZDRhYTU1ZDBlMWIxNWY0MTE4ODYzY2VhMDZkMTgiPmFsdGNwX3Rscy5oPC9hPjwvbGk+CiA8bGk+YWx0Y3BfdGxzX3dyYXAoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FhNTI3Yjc1NmFkNjY3M2ExOWNjNzgyODcwMjZjNzY1YyI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KIDxsaT5hbHRjcF93cml0ZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2FhZDlhMzgzOTZiMTI3Y2ZkNzc4ZTI1M2YyMGE5N2I4ZCI+YWx0Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2FhZDlhMzgzOTZiMTI3Y2ZkNzc4ZTI1M2YyMGE5N2I4ZCI+YWx0Y3AuaDwvYT48L2xpPgogPGxpPkFQSV9FVkVOVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFwaV84aC5odG1sI2EzY2U1OTBmNThiZThmNjBkYmRlMzYxOTIwODYzYjI2ZCI+YXBpLmg8L2E+PC9saT4KQEAgLTE2MCwxNiArMTc4LDE0IEBACiA8bGk+QVJQX1FVRVVFSU5HJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2FycC5odG1sI2dhNzU4Mzc4MTQ1MzZhZjI5YjYxMDI1MDg1ODhkMGFiNTgiPm9wdC5oPC9hPjwvbGk+CiA8bGk+QVJQX1RBQkxFX1NJWkUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYXJwLmh0bWwjZ2E5MjQ5MzZhODE0NTY0ZGJkYjBiYzk1MGQyNTVhODNiOSI+b3B0Lmg8L2E+PC9saT4KIDxsaT5BUlBfVE1SX0lOVEVSVkFMJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwjYWFhM2Q4ZWQxZWIxMTI5ZjUxODM0NWUzN2IzOGNmYzM3Ij5ldGhhcnAuaDwvYT48L2xpPgotPGxpPmF1dG9pcF9hcnBfcmVwbHkoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84Yy5odG1sI2FjYWYyNzkzMzI1YzYwZGM0NTMxYzIxYTNmZDU1YzE2ZSI+YXV0b2lwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84aC5odG1sI2FjYWYyNzkzMzI1YzYwZGM0NTMxYzIxYTNmZDU1YzE2ZSI+YXV0b2lwLmg8L2E+PC9saT4KIDxsaT5BVVRPSVBfREVCVUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuaHRtbCNnYWZhZWU1MjJlN2YzMmQ4MTAyMjIxNWUxODA1ZTMwM2E1Ij5vcHQuaDwvYT48L2xpPgotPGxpPmF1dG9pcF9uZXR3b3JrX2NoYW5nZWQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84Yy5odG1sI2ExMWRmN2EyMGQ1MjY4MGNkOGMxYzE4ZmJhMmI5MWU5ZSI+YXV0b2lwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84aC5odG1sI2ExMWRmN2EyMGQ1MjY4MGNkOGMxYzE4ZmJhMmI5MWU5ZSI+YXV0b2lwLmg8L2E+PC9saT4KLTxsaT5hdXRvaXBfcmVtb3ZlX3N0cnVjdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84aC5odG1sI2FhZWI0Yjc3OGZjZTA3OGJlZTg0MTQ0YWI1MDkxNmIxNSI+YXV0b2lwLmg8L2E+PC9saT4KKzxsaT5hdXRvaXBfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93bigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYWY5MzU0NGM0OWYyYzI0Yjk1YTM5ODEzNTFkMDIzMDU2Ij5hdXRvaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYWY5MzU0NGM0OWYyYzI0Yjk1YTM5ODEzNTFkMDIzMDU2Ij5hdXRvaXAuaDwvYT48L2xpPgorPGxpPmF1dG9pcF9uZXR3b3JrX2NoYW5nZWRfbGlua191cCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYWYyYTM2YWVlOTZjYmRmOGY0YThmMWU2OWM5MWZmNDI1Ij5hdXRvaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYWYyYTM2YWVlOTZjYmRmOGY0YThmMWU2OWM5MWZmNDI1Ij5hdXRvaXAuaDwvYT48L2xpPgorPGxpPmF1dG9pcF9yZW1vdmVfc3RydWN0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2FjMGM5ODAzNTc5NTUwMGVkZTQ2NGFhNGFmMjUxNWYzMCI+YXV0b2lwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCNnYWMwYzk4MDM1Nzk1NTAwZWRlNDY0YWE0YWYyNTE1ZjMwIj5hdXRvaXAuaDwvYT48L2xpPgogPGxpPmF1dG9pcF9zZXRfc3RydWN0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCI+YXV0b2lwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCNnYTIxMjJjMGIyNTE4YjM3MTU1OWZlZjVlYzFkMmFlZDkwIj5hdXRvaXAuaDwvYT48L2xpPgogPGxpPmF1dG9pcF9zdGFydCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiPmF1dG9pcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2ExNDYxZjU4MjZlYmVmYzA1MGUwZDYzMDEzODE4ZDFlOCI+YXV0b2lwLmg8L2E+PC9saT4KIDxsaT5hdXRvaXBfc3RvcCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhNThhNGRjZTY1OGRkMTI2M2U4NGViOTgyZjYyNTg3ZDQiPmF1dG9pcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCI+YXV0b2lwLmg8L2E+PC9saT4KLTxsaT5hdXRvaXBfc3VwcGxpZWRfYWRkcmVzcygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ij5hdXRvaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ij5hdXRvaXAuaDwvYT48L2xpPgotPGxpPmF1dG9pcF90bXIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84Yy5odG1sI2E3NDZmYzFkN2RiMWJmMTYxN2FmYWUxNjZjOWQ5MmMyZCI+YXV0b2lwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84aC5odG1sI2E3NDZmYzFkN2RiMWJmMTYxN2FmYWUxNjZjOWQ5MmMyZCI+YXV0b2lwLmg8L2E+PC9saT4KLTxsaT5BVVRPSVBfVE1SX0lOVEVSVkFMJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYTg5ODY5MTlhNDUyYWI3N2VlYzlhMTk5ZmY2NjY4ZTkyIj5hdXRvaXAuaDwvYT48L2xpPgorPGxpPmF1dG9pcF9zdXBwbGllZF9hZGRyZXNzKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhdXRvaXBfOGMuaHRtbCNhNmRlOTdiN2RjZDk4ZjkwMzlkNWMxYWQxMWMyNTdkNjIiPmF1dG9pcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJhdXRvaXBfOGguaHRtbCNhNmRlOTdiN2RjZDk4ZjkwMzlkNWMxYWQxMWMyNTdkNjIiPmF1dG9pcC5oPC9hPjwvbGk+CiA8L3VsPgogPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KIDwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2IuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfYi5odG1sCmluZGV4IDdjMWI1NjEuLjQ1ODY3MjcgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfYi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfYi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMCw3ICsxMDAsNyBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBmdW5jdGlvbnMsIHZhcmlhYmxlcywgZGVmaW5lcywgZW51bXMsIGFuZCB0eXBlZGVmcyB3aXRoIGxpbmtzIHRvIHRoZSBkb2N1bWVudGF0aW9uOjwvZGl2PgogCiA8aDM+PGEgaWQ9ImluZGV4X2IiIG5hbWU9ImluZGV4X2IiPjwvYT4tIGIgLTwvaDM+PHVsPgotPGxpPmJsZV9hZGRyX3RvX2V1aTY0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2FhNWIxODIzYzI1MDliODgxNmVmOThkY2FjNjdlMDM3YyI+bG93cGFuNl9ibGUuaDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhYTViMTgyM2MyNTA5Yjg4MTZlZjk4ZGNhYzY3ZTAzN2MiPmxvd3BhbjZfYmxlLmM8L2E+PC9saT4KKzxsaT5ibGVfYWRkcl90b19ldWk2NCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhNDllM2ExZmNlZGQ5MzcxMDIzYzc3NmYwYzNiYjNmMGYiPmxvd3BhbjZfYmxlLmg8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTQ5ZTNhMWZjZWRkOTM3MTAyM2M3NzZmMGMzYmIzZjBmIj5sb3dwYW42X2JsZS5jPC9hPjwvbGk+CiA8bGk+YnJpZGdlaWZfYWRkX3BvcnQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19icmlkZ2VpZi5odG1sI2dhNTFiN2QxYWYyMmY3MDIzYWFiZDg1MDJhYWRmNzdjNzciPmJyaWRnZWlmLmg8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19icmlkZ2VpZi5odG1sI2dhNTFiN2QxYWYyMmY3MDIzYWFiZDg1MDJhYWRmNzdjNzciPmJyaWRnZWlmLmM8L2E+PC9saT4KIDxsaT5CUklER0VJRl9ERUJVRyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19icmlkZ2VpZl9fb3B0cy5odG1sI2dhYWI0NWUyMGU5YjA5YTk4MjE3OTk0MDgyOTY4Y2VjNzMiPmJyaWRnZWlmX29wdHMuaDwvYT48L2xpPgogPGxpPmJyaWRnZWlmX2ZkYl9hZGQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19icmlkZ2VpZi5odG1sI2dhZDIwZmVhMjY1NzQzMWQ0YTA5MDViZTgwY2IwYjQ2NjYiPmJyaWRnZWlmLmg8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19icmlkZ2VpZi5odG1sI2dhZDIwZmVhMjY1NzQzMWQ0YTA5MDViZTgwY2IwYjQ2NjYiPmJyaWRnZWlmLmM8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfYy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19jLmh0bWwKaW5kZXggNWFmNDcxZi4uNDU5ZmRkNiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19jLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19jLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2QuaHRtbAppbmRleCBhNmRkODNhLi45NmNiMDUxIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2QuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2QuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMjEsMzIgKzEyMSwzMCBAQAogPGxpPkRIQ1A2X1NUQVRVU19TVUNDRVNTJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0icHJvdF8yZGhjcDZfOGguaHRtbCNhODc4YTc3MzRlMTU5ODI2ZTgyZTk1OGZlM2E1Y2ExNzUiPmRoY3A2Lmg8L2E+PC9saT4KIDxsaT5ESENQNl9USU1FUl9NU0VDUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3A2XzhoLmh0bWwjYWZkZDY5MzI3ZGM3ZDlmNWNjNGYwMjlkNzA2ZjYwYzhmIj5kaGNwNi5oPC9hPjwvbGk+CiA8bGk+ZGhjcDZfdG1yKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwNl84Yy5odG1sI2E1Mjg5MDI3Y2IyYjE2NmQwOGJjNTViN2VkMmQ0NzU2ZCI+ZGhjcDYuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcDZfOGguaHRtbCNhNTI4OTAyN2NiMmIxNjZkMDhiYzU1YjdlZDJkNDc1NmQiPmRoY3A2Lmg8L2E+PC9saT4KLTxsaT5kaGNwX2FycF9yZXBseSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sI2ExZmMwYTk0ZTBiOTRmMTNjNWQzMDIwMThmN2VjYjUzNSI+ZGhjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhoLmh0bWwjYTFmYzBhOTRlMGI5NGYxM2M1ZDMwMjAxOGY3ZWNiNTM1Ij5kaGNwLmg8L2E+PC9saT4KKzxsaT5ESENQX0FERF9FWFRSQV9SRVFVRVNUX09QVElPTlMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhjLmh0bWwjYWEyOWQwMjA1NThiMzdiMjlkNWQ1YWU1MGRmZWIwYzg4Ij5kaGNwLmM8L2E+PC9saT4KIDxsaT5kaGNwX2NsZWFudXAoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhMjkyYTFiMGMwYzI4OGVjNTA4MTA4YTNmYmE0NzNlNjQiPmRoY3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2EyOTJhMWIwYzBjMjg4ZWM1MDgxMDhhM2ZiYTQ3M2U2NCI+ZGhjcC5oPC9hPjwvbGk+CiA8bGk+REhDUF9DT0FSU0VfVElNRVJfTVNFQ1MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhoLmh0bWwjYWQ4NGI4ZjRkZWVjNDIxYmJmNmZkODVlOGZhZTA0N2Q2Ij5kaGNwLmg8L2E+PC9saT4KIDxsaT5ESENQX0NPQVJTRV9USU1FUl9TRUNTJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84aC5odG1sI2EzNzUxY2M1ZGFhMDg3NWQ0MTVlYmFjZDhhZDY3NWYxZSI+ZGhjcC5oPC9hPjwvbGk+CiA8bGk+ZGhjcF9jb2Fyc2VfdG1yKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhjLmh0bWwjYWQ3NDgwODgzZDY0ZjNkNmYwODNjOGFhOTMzYjVlM2NiIj5kaGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGguaHRtbCNhZDc0ODA4ODNkNjRmM2Q2ZjA4M2M4YWE5MzNiNWUzY2IiPmRoY3AuaDwvYT48L2xpPgogPGxpPkRIQ1BfQ1JFQVRFX1JBTkRfWElEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sI2FkNmRlOWM1MTIwNjU0NDU0YTMzMGJmNWRlNTNjNDgzNSI+ZGhjcC5jPC9hPjwvbGk+CiA8bGk+REhDUF9ERUJVRyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhOTc5MjdjZWVjYWJjZGI1ZjQxNzM1YmYzNzJhMDVjZWUiPm9wdC5oPC9hPjwvbGk+Ci08bGk+REhDUF9ET0VTX0FSUF9DSEVDSyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwjZ2FiMmQ5MWRlN2IyZmNlODc5YjBhMjEzNjgyZTFiMGI2OSI+b3B0Lmg8L2E+PC9saT4KIDxsaT5ESENQX0ZJTkVfVElNRVJfTVNFQ1MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhoLmh0bWwjYTdhMjYyMDlmNTJlZWJlOGRlZDQ1N2FlMTQxZGY0MDNmIj5kaGNwLmg8L2E+PC9saT4KIDxsaT5kaGNwX2ZpbmVfdG1yKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhjLmh0bWwjYTYwMWQ5N2ZhYTI0ZmE3Mjg5MjQ0YmI0NTJmMDUyMDQ1Ij5kaGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGguaHRtbCNhNjAxZDk3ZmFhMjRmYTcyODkyNDRiYjQ1MmYwNTIwNDUiPmRoY3AuaDwvYT48L2xpPgogPGxpPmRoY3BfaW5mb3JtKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYWJkN2ZjYzdlMDc5OWUzMTM4ODVmYzdmZDlkNDk5MmFkIj5kaGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhYmQ3ZmNjN2UwNzk5ZTMxMzg4NWZjN2ZkOWQ0OTkyYWQiPmRoY3AuaDwvYT48L2xpPgogPGxpPkRIQ1BfTUFYX01TR19MRU4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhjLmh0bWwjYTYzZTllYzQ1MTdiODBkODU3NmYyMThkOTA1ZTMxYTliIj5kaGNwLmM8L2E+PC9saT4KIDxsaT5ESENQX01JTl9SRVBMWV9MRU4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhjLmh0bWwjYWE1MmMyYjY0ZWY0MmZiYWQ4NGEzYmNkNTgwNTJjYWFiIj5kaGNwLmM8L2E+PC9saT4KLTxsaT5kaGNwX25ldHdvcmtfY2hhbmdlZCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sI2EwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiI+ZGhjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhoLmh0bWwjYTA0ZjM4MjQ3MjAyMjNjNDM5MTY1MjQzNTI3OTA2MDAyIj5kaGNwLmg8L2E+PC9saT4KKzxsaT5kaGNwX25ldHdvcmtfY2hhbmdlZF9saW5rX3VwKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhjLmh0bWwjYTJmZDMzNzIyODU5MDU0ZWE5MzJmZjA1ZmY2MmRlZGFhIj5kaGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGguaHRtbCNhMmZkMzM3MjI4NTkwNTRlYTkzMmZmMDVmZjYyZGVkYWEiPmRoY3AuaDwvYT48L2xpPgogPGxpPmRoY3Bfb3B0aW9uX2lkeCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGMuaHRtbCNhOGMzYjU4NGQyMjNiOTk1YjQ4NjEzYWQ5NmNiNzc2YTAiPmRoY3AuYzwvYT48L2xpPgogPGxpPkRIQ1BfT1BUSU9OU19MRU4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJkaGNwXzhoLmh0bWwjYWU5OWQ0YmUwZDAzZjZmOWM4ZjAyZjYzYWJkZTkxYTA2Ij5kaGNwLmg8L2E+PC9saT4KIDxsaT5kaGNwX3JlbGVhc2UoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhZjkyZjdhZmI1ODI1MmY4MmE3NDkwNjQ2MDI5NzRiZDQiPmRoY3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2FmOTJmN2FmYjU4MjUyZjgyYTc0OTA2NDYwMjk3NGJkNCI+ZGhjcC5oPC9hPjwvbGk+CiA8bGk+ZGhjcF9yZWxlYXNlX2FuZF9zdG9wKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYWY3Y2Q0MmI5ZjIyMDQ0NmI2YTU5N2QzNDc0ZGE2ZWNlIj5kaGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhZjdjZDQyYjlmMjIwNDQ2YjZhNTk3ZDM0NzRkYTZlY2UiPmRoY3AuaDwvYT48L2xpPgogPGxpPmRoY3BfcmVtb3ZlX3N0cnVjdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGguaHRtbCNhYTkyMjg0ZmFhMDk5ZGFjNDMzMWMxZmMwYjk5N2RhYmMiPmRoY3AuaDwvYT48L2xpPgogPGxpPmRoY3BfcmVuZXcoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhNTgzZWI4ZDU4ZjVlOTZiN2RlYTcxNzk0ODU3OGE5NDciPmRoY3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2E1ODNlYjhkNThmNWU5NmI3ZGVhNzE3OTQ4NTc4YTk0NyI+ZGhjcC5oPC9hPjwvbGk+Ci08bGk+ZGhjcF9yeF9vcHRpb25zX2dpdmVuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sI2EwNThiNzFlMWQyNmIzNzU4YjI5ZDE2ZDlmODkyYzhjYyI+ZGhjcC5jPC9hPjwvbGk+Ci08bGk+ZGhjcF9yeF9vcHRpb25zX3ZhbCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGMuaHRtbCNhNWFiZDIzMjQ5NjA2M2JkZGNiYzY2OTJjMGU4ZjljMWYiPmRoY3AuYzwvYT48L2xpPgogPGxpPmRoY3Bfc2V0X3N0cnVjdCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2E0MzgxMjA5NzgzMjcxNmE0NjJjNjYwZWI1OWNjMWJmOCI+ZGhjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYTQzODEyMDk3ODMyNzE2YTQ2MmM2NjBlYjU5Y2MxYmY4Ij5kaGNwLmg8L2E+PC9saT4KIDxsaT5kaGNwX3N0YXJ0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYTBjNTA5NjhkOTgxMWFhMmFhNjdmYWRjMDg4NWQ3NDRmIj5kaGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhMGM1MDk2OGQ5ODExYWEyYWE2N2ZhZGMwODg1ZDc0NGYiPmRoY3AuaDwvYT48L2xpPgogPGxpPmRoY3Bfc3RvcCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2E5M2Y2YmYyMTA4NmRjOWIxMGMwYmVjNDY3NmY5NzMxMiI+ZGhjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYTkzZjZiZjIxMDg2ZGM5YjEwYzBiZWM0Njc2Zjk3MzEyIj5kaGNwLmg8L2E+PC9saT4KIDxsaT5kaGNwX3N1cHBsaWVkX2FkZHJlc3MoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGMuaHRtbCNhZTI0YTI1MjkzNzIyMTgzMjdhYjljYjY1OTIwNDFjODUiPmRoY3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84aC5odG1sI2FlMjRhMjUyOTM3MjIxODMyN2FiOWNiNjU5MjA0MWM4NSI+ZGhjcC5oPC9hPjwvbGk+Cis8bGk+ZGhjcF90aW1lb3V0X3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhoLmh0bWwjYWE4NWQ2NjFjN2UxNjA5MjFjMDQ5N2U3YmFhODkyYjY3Ij5kaGNwLmg8L2E+PC9saT4KIDxsaT5ETlNfREVCVUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuaHRtbCNnYWJhNTVkYTIzNTJjOTlkODEzNzY3OTEzZTVlMzZiZTFmIj5vcHQuaDwvYT48L2xpPgogPGxpPkROU19ET0VTX05BTUVfQ0hFQ0smIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZG5zLmh0bWwjZ2EwN2ZmZDhlOTEwNmRhZTNiNjUzNDdiZDAzODExYTRiNiI+b3B0Lmg8L2E+PC9saT4KIDxsaT5kbnNfZm91bmRfY2FsbGJhY2smIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkbnNfOGguaHRtbCNhYjVhOWRlYzViMjI4MDJmOTE4NzZjNTNlOTlmNDI3YWUiPmRucy5oPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmcy5odG1sCmluZGV4IDNkOTEwYTYuLjExYzFmMDEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmcy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmcy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMCw2ICsxMDAsOSBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBtYWNyb3Mgd2l0aCBsaW5rcyB0byB0aGUgZG9jdW1lbnRhdGlvbjo8L2Rpdj4KIAogPGgzPjxhIGlkPSJpbmRleF9hIiBuYW1lPSJpbmRleF9hIj48L2E+LSBhIC08L2gzPjx1bD4KKzxsaT5BQ0RfREVCVUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuaHRtbCNnYTg3ZmYwYzYwNzdiOWEzNmIwNWMzZmM1YjhmYWU4YWQzIj5vcHQuaDwvYT48L2xpPgorPGxpPkFDRF9UTVJfSU5URVJWQUwmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhY2RfOGguaHRtbCNhYWNlNmRhMGIwZGFjZDc3YTlkNmJkMTFmNDI0ZmZhODIiPmFjZC5oPC9hPjwvbGk+Cis8bGk+QUxUQ1BfTUJFRFRMU19BVVRITU9ERSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguaHRtbCNhMTJhYmE2MTU4NmJkNzFjYjQyYjA5MjViOTIxMWIzNjYiPmFsdGNwX3Rsc19tYmVkdGxzX29wdHMuaDwvYT48L2xpPgogPGxpPkFMVENQX01CRURUTFNfREVCVUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fdGxzX19tYmVkdGxzX19vcHRzXzhoLmh0bWwjYTc3Mjc0NTZlZWIwYjMzMTEyMTM5MzY0MTNkMjM4OTg5Ij5hbHRjcF90bHNfbWJlZHRsc19vcHRzLmg8L2E+PC9saT4KIDxsaT5BTFRDUF9NQkVEVExTX0xJQl9ERUJVRyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguaHRtbCNhMTIyNjJiZTg0YWI2YTA0ZTJhZmY3Y2ExNTIzMjgzMDgiPmFsdGNwX3Rsc19tYmVkdGxzX29wdHMuaDwvYT48L2xpPgogPGxpPkFMVENQX01CRURUTFNfTElCX0RFQlVHX0xFVkVMX01JTiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFsdGNwX190bHNfX21iZWR0bHNfX29wdHNfOGguaHRtbCNhZDg1NjFiYmZhYmI0ZWM4MWFkMWM0ZDczMDRkMTZiYjUiPmFsdGNwX3Rsc19tYmVkdGxzX29wdHMuaDwvYT48L2xpPgpAQCAtMTIxLDggKzEyNCw2IEBACiA8bGk+QVJQX1RBQkxFX1NJWkUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYXJwLmh0bWwjZ2E5MjQ5MzZhODE0NTY0ZGJkYjBiYzk1MGQyNTVhODNiOSI+b3B0Lmg8L2E+PC9saT4KIDxsaT5BUlBfVE1SX0lOVEVSVkFMJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwjYWFhM2Q4ZWQxZWIxMTI5ZjUxODM0NWUzN2IzOGNmYzM3Ij5ldGhhcnAuaDwvYT48L2xpPgogPGxpPkFVVE9JUF9ERUJVRyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhZmFlZTUyMmU3ZjMyZDgxMDIyMjE1ZTE4MDVlMzAzYTUiPm9wdC5oPC9hPjwvbGk+Ci08bGk+YXV0b2lwX3JlbW92ZV9zdHJ1Y3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhdXRvaXBfOGguaHRtbCNhYWViNGI3NzhmY2UwNzhiZWU4NDE0NGFiNTA5MTZiMTUiPmF1dG9pcC5oPC9hPjwvbGk+Ci08bGk+QVVUT0lQX1RNUl9JTlRFUlZBTCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84aC5odG1sI2E4OTg2OTE5YTQ1MmFiNzdlZWM5YTE5OWZmNjY2OGU5MiI+YXV0b2lwLmg8L2E+PC9saT4KIDwvdWw+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmcy5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmcy5qcwppbmRleCBmODg3NWIyLi4zZWZlNzI3IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnMuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzLmpzCkBAIC0xMiw2ICsxMiw3IEBACiAgICAgWyAibSIsICJnbG9iYWxzX2RlZnNfbS5odG1sIiwgbnVsbCBdLAogICAgIFsgIm4iLCAiZ2xvYmFsc19kZWZzX24uaHRtbCIsIG51bGwgXSwKICAgICBbICJwIiwgImdsb2JhbHNfZGVmc19wLmh0bWwiLCBudWxsIF0sCisgICAgWyAicSIsICJnbG9iYWxzX2RlZnNfcS5odG1sIiwgbnVsbCBdLAogICAgIFsgInIiLCAiZ2xvYmFsc19kZWZzX3IuaHRtbCIsIG51bGwgXSwKICAgICBbICJzIiwgImdsb2JhbHNfZGVmc19zLmh0bWwiLCBudWxsIF0sCiAgICAgWyAidCIsICJnbG9iYWxzX2RlZnNfdC5odG1sIiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX2IuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19iLmh0bWwKaW5kZXggMGE2OGI4Zi4uY2FhYTcwNyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX2IuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfYi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19jLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfYy5odG1sCmluZGV4IDdkZTQ5NWIuLjllMjlmNzUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19jLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX2MuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfZC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX2QuaHRtbAppbmRleCA5NDgxNmM4Li5mY2FkMWE4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfZC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19kLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTEyLDExICsxMTIsMTEgQEAKIDxsaT5kaGNwNl9yZW1vdmVfc3RydWN0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcDZfOGguaHRtbCNhNzY5NDFkZGJhMjJmZTAwZGZjNDdkMmYzMzlmN2FjYTMiPmRoY3A2Lmg8L2E+PC9saT4KIDxsaT5ESENQNl9TVEFUVVNfU1VDQ0VTUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmRoY3A2XzhoLmh0bWwjYTg3OGE3NzM0ZTE1OTgyNmU4MmU5NThmZTNhNWNhMTc1Ij5kaGNwNi5oPC9hPjwvbGk+CiA8bGk+REhDUDZfVElNRVJfTVNFQ1MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwNl84aC5odG1sI2FmZGQ2OTMyN2RjN2Q5ZjVjYzRmMDI5ZDcwNmY2MGM4ZiI+ZGhjcDYuaDwvYT48L2xpPgorPGxpPkRIQ1BfQUREX0VYVFJBX1JFUVVFU1RfT1BUSU9OUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGMuaHRtbCNhYTI5ZDAyMDU1OGIzN2IyOWQ1ZDVhZTUwZGZlYjBjODgiPmRoY3AuYzwvYT48L2xpPgogPGxpPkRIQ1BfQ09BUlNFX1RJTUVSX01TRUNTJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84aC5odG1sI2FkODRiOGY0ZGVlYzQyMWJiZjZmZDg1ZThmYWUwNDdkNiI+ZGhjcC5oPC9hPjwvbGk+CiA8bGk+REhDUF9DT0FSU0VfVElNRVJfU0VDUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGguaHRtbCNhMzc1MWNjNWRhYTA4NzVkNDE1ZWJhY2Q4YWQ2NzVmMWUiPmRoY3AuaDwvYT48L2xpPgogPGxpPkRIQ1BfQ1JFQVRFX1JBTkRfWElEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sI2FkNmRlOWM1MTIwNjU0NDU0YTMzMGJmNWRlNTNjNDgzNSI+ZGhjcC5jPC9hPjwvbGk+CiA8bGk+REhDUF9ERUJVRyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhOTc5MjdjZWVjYWJjZGI1ZjQxNzM1YmYzNzJhMDVjZWUiPm9wdC5oPC9hPjwvbGk+Ci08bGk+REhDUF9ET0VTX0FSUF9DSEVDSyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwjZ2FiMmQ5MWRlN2IyZmNlODc5YjBhMjEzNjgyZTFiMGI2OSI+b3B0Lmg8L2E+PC9saT4KIDxsaT5ESENQX0ZJTkVfVElNRVJfTVNFQ1MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhoLmh0bWwjYTdhMjYyMDlmNTJlZWJlOGRlZDQ1N2FlMTQxZGY0MDNmIj5kaGNwLmg8L2E+PC9saT4KIDxsaT5ESENQX01BWF9NU0dfTEVOJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sI2E2M2U5ZWM0NTE3YjgwZDg1NzZmMjE4ZDkwNWUzMWE5YiI+ZGhjcC5jPC9hPjwvbGk+CiA8bGk+REhDUF9NSU5fUkVQTFlfTEVOJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sI2FhNTJjMmI2NGVmNDJmYmFkODRhM2JjZDU4MDUyY2FhYiI+ZGhjcC5jPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfZS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX2UuaHRtbAppbmRleCBlZWYwZjJhLi4xMTgyMzc2IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfZS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19lLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX2YuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19mLmh0bWwKaW5kZXggMWI3OGFlNC4uYzMzOWMxYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX2YuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfZi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19oLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfaC5odG1sCmluZGV4IDk3ODU4MzMuLjc0OGFlODEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19oLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX2guaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsNyArMTAwLDYgQEAKIDxkaXYgY2xhc3M9InRleHRibG9jayI+SGVyZSBpcyBhIGxpc3Qgb2YgYWxsIGRvY3VtZW50ZWQgbWFjcm9zIHdpdGggbGlua3MgdG8gdGhlIGRvY3VtZW50YXRpb246PC9kaXY+CiAKIDxoMz48YSBpZD0iaW5kZXhfaCIgbmFtZT0iaW5kZXhfaCI+PC9hPi0gaCAtPC9oMz48dWw+Ci08bGk+SE9TVEVOVF9TVE9SQUdFJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0ZGJfOGMuaHRtbCNhY2ZjMWU5ODg1MzRjMGU0OTc1OTliOTA0NzM5ZjkyZmUiPm5ldGRiLmM8L2E+PC9saT4KIDxsaT5IVFRQX0RFRkFVTFRfUE9SVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19odHRwYy5odG1sI2dhMWYxOTJmMzAwOTg2NWU5ZjlhM2NkODM2MDljODY2YzIiPmh0dHBfY2xpZW50Lmg8L2E+PC9saT4KIDxsaT5IVFRQX0lTX0RBVEFfVk9MQVRJTEUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJodHRwZF84Yy5odG1sI2FhOTNkNjBlOGFmMjNiOTE1YjViOTY1MmZmNzFlMTMwMCI+aHR0cGQuYzwvYT48L2xpPgogPGxpPkhUVFBfSVNfSERSX1ZPTEFUSUxFJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaHR0cGRfOGMuaHRtbCNhZjI4MWJjNGE3NjJkNTYyNDNlMGI4NWRkNDE5NzE3NGEiPmh0dHBkLmM8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19pLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfaS5odG1sCmluZGV4IDk2OTA1NjEuLmE5YTQzN2IgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19pLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX2kuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTYsMTAgKzExNiwxMiBAQAogPGxpPklQNF9BRERSJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTU4YWVlNDE2NmM0NjZmOWFjNzAzNWJmNWNjOWY5OTc0Ij5pcDRfYWRkci5oPC9hPjwvbGk+CiA8bGk+SVA0X0FERFJfQU5ZJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWU5MjBiNmU4MTYxMGEzOGNmOWFkYTUyMTE4ODA3ZWZmIj5pcF9hZGRyLmg8L2E+PC9saT4KIDxsaT5JUDRfQUREUl9BTlk0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWEzZjY1YTQyYjY4MTQ5ZTk2ZTYxODYwMGIyY2EyZTQyIj5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcDRfYWRkcl9jbXAmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhNTk0OTRjNTYyYzYyZmRmNjJhNmM5YzZhNjZhNTBmYjMiPmlwNF9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDRfYWRkcl9jb3B5JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTJmNGU5YzMzOWU4OTdlNmNhNWNiNGEyZjFlODM5NGQ1Ij5pcDRfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA0X2FkZHJfZ2V0X25ldHdvcmsmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhODE2NThjYjA1YmE1MDRkMTNlZTg2MGU4MmRjNDQ0ZTkiPmlwNF9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDRfYWRkcl9nZXRfdTMyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYWQ1MGQ5MzQ2NGJiYmRhMTk5YjU4NWM1NDg2OWEzYTRiIj5pcDRfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA0X2FkZHJfaXNsb29wYmFjayYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2E0NmRhYmI0ZGYyMTJkMTU2MDA0ZmE1YWZlMDNlMjA1MSI+aXA0X2FkZHIuaDwvYT48L2xpPgorPGxpPmlwNF9hZGRyX25ldF9lcSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2E5NWQwNWRmOTIwMTYwMmZjODczYTk3ZmI2MWZkMTEzNCI+aXA0X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNF9hZGRyX25ldGNtcCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2FmZDQzZjZjZWIyZGY4ZDUwYzg0NTA5YWQxMDU5ZjUxNCI+aXA0X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNF9hZGRyX3NldCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2EzM2ExN2E4ZDIwMjVjZTM3MTVkYjgzNTUzNDg2OGU4OCI+aXA0X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNF9hZGRyX3NldF9hbnkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhZmFhZWQzNzYyY2U4ZTlkZTE0ZmNmNzNiMTk5NjQ1NjciPmlwNF9hZGRyLmg8L2E+PC9saT4KQEAgLTE0NSwxOCArMTQ3LDIyIEBACiA8bGk+aXA2X2FkZHJfY2xlYXJfem9uZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FlMDI0OWRiNmNkMjY4N2YyZGJjNDQ1ZTc3NzhkMzdhZCI+aXA2X3pvbmUuaDwvYT48L2xpPgogPGxpPmlwNl9hZGRyX2NtcCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2FlYThkNGM0MTM0YWJmZjFjNzZiYzk5N2E5MTE2M2ZlMSI+aXA2X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNl9hZGRyX2NtcF9wYWNrZWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhMTFmZTg0Nzg5ZTNmMDM5YjNmNzEwMDllODAyOTQ2YTgiPmlwNl9hZGRyLmg8L2E+PC9saT4KLTxsaT5pcDZfYWRkcl9jbXBfem9uZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FjYmI4ZTFhNzUwNWQ5NzcyMTgxZGVmYTBlNzViOGRhOSI+aXA2X3pvbmUuaDwvYT48L2xpPgorPGxpPmlwNl9hZGRyX2NtcF96b25lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWMwMWQwYmFkMGE2ODJkY2MyMzliYTNkNTY5NWUwNjQ4Ij5pcDZfem9uZS5oPC9hPjwvbGk+CiA8bGk+aXA2X2FkZHJfY21wX3pvbmVsZXNzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWQwZmMwODg5NzJkMzk1ODM5YTdhZDc1ZDNkYWI4MzIyIj5pcDZfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA2X2FkZHJfY29weSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E3YjE3ZTg1YTQ2YmQ4MzY4Y2UyN2ZjNjQ0ZTA1ODA3MyI+aXA2X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNl9hZGRyX2NvcHlfZnJvbV9wYWNrZWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhMDU1NzVkNDZjMjMzZmZiMTNmYjAzYTNhMmM4YTE2YjMiPmlwNl9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9jb3B5X3RvX3BhY2tlZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E2YzQ2ZDEyZmE3ZDM2YzQ3YjYyOWQwY2NkZWZhMTE0YiI+aXA2X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNl9hZGRyX2NvcHlfem9uZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2E3MzQ3NzI5NDg1ZDgzN2JjZmY4NWFlNDczMWJiZjVjNCI+aXA2X3pvbmUuaDwvYT48L2xpPgorPGxpPmlwNl9hZGRyX2VxJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYTllYTBiNmI4MzdiYWZmMWUxZTYyY2NjZDRmMTdkNTBlIj5pcDZfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA2X2FkZHJfZXF1YWxzX3pvbmUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhZWVhZDgzNzljYzNmZDRjMjU3YmUwYmI2NTQ5OTRhOGYiPmlwNl96b25lLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9oYXNfc2NvcGUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhYTUzMzJiYjNiNzBjMWE5YWNiYTFiZWEzZWEwZWNiOTAiPmlwNl96b25lLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9oYXNfem9uZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2E4NzI3YzA4MWI2YTgwOTkyODgxZDQ4MWQwNjgwZGI3OCI+aXA2X3pvbmUuaDwvYT48L2xpPgogPGxpPmlwNl9hZGRyX2xhY2tzX3pvbmUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhZDk2M2JmM2U5Njk1YmE4OTgyNzFlMzE0OTc1ZjVjOTciPmlwNl96b25lLmg8L2E+PC9saT4KKzxsaT5pcDZfYWRkcl9uZXRfZXEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhOWE5ODNjN2Q2MTNhYjQ1ZTM3YWFmNjZjMDY3YTBjN2EiPmlwNl9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcDZfYWRkcl9uZXRfem9uZWxlc3NfZXEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhZmM5ZDJiOGQwYTA1ZjJmZjIzYWIzYjdmZDNiZjgyMjkiPmlwNl9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9uZXRjbXAmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhNzZiMDFmNzZiNjU2NDc3NjdkMDBlZTlmYWQ5ZmJhYTIiPmlwNl9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9uZXRjbXBfem9uZWxlc3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhY2MxNjIyYWI4OTU2ODBkYTBhM2I2ZTVlNTYwNzAzNDIiPmlwNl9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcDZfYWRkcl9wYWNrZWRfZXEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhYTMyNGFjNjVkNTM3OTk3ZWJhYWVkNzhiZDQwZjZkYTkiPmlwNl9hZGRyLmg8L2E+PC9saT4KIDxsaT5JUDZfQUREUl9QQVJUJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYTFkNzhmZWViNTBhZWM4ZjJjMDdkODQwODI5ZjQ5ZGRkIj5pcDZfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA2X2FkZHJfc2VsZWN0X3pvbmUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhYzgzZjNlN2M4ZDY1ZDNjNzg0YmZmYzlkZWMyOWI3MGMiPmlwNl96b25lLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9zZXQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhYTdiNGJhNDIwMmI1ZjY0ZGVlNjA1ZmUxNTllOWMzYWQiPmlwNl9hZGRyLmg8L2E+PC9saT4KQEAgLTE2Nyw2ICsxNzMsOCBAQAogPGxpPmlwNl9hZGRyX3NldF96b25lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYTIxMzMxMGIzMDNkZDA1MGRhNzg1NmQ2N2RhNzJhYmQ2Ij5pcDZfem9uZS5oPC9hPjwvbGk+CiA8bGk+aXA2X2FkZHJfdGVzdF96b25lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWMzZWM1Zjk0ZTFjZDYyYjEyMzdlZmNhMzcyM2RjMDZlIj5pcDZfem9uZS5oPC9hPjwvbGk+CiA8bGk+aXA2X2FkZHJfem9uZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FlZTgzZTEyNjQ5ZmE5NzA2ODU3YzlhZDhmOWVmODYzNCI+aXA2X3pvbmUuaDwvYT48L2xpPgorPGxpPmlwNl9hZGRyX3pvbmVfZXEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhYmM2ZDVmODMzYjJhYmVmMzFhYTYwMmRjMTFhY2UwYTkiPmlwNl96b25lLmg8L2E+PC9saT4KKzxsaT5pcDZfYWRkcl96b25lbGVzc19lcSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E4MTFkOGEyYWE2NDE3YWUyMmE3YTQ2YjI3ZDllYWQyNiI+aXA2X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNl9jdXJyZW50X2Rlc3RfYWRkciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwXzhoLmh0bWwjYTE3NjUyNWMyMTkyZDM3ZWU5ZWFlYmE4MDEyYzVkOWMwIj5pcC5oPC9hPjwvbGk+CiA8bGk+aXA2X2N1cnJlbnRfaGVhZGVyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXBfOGguaHRtbCNhZjliZjc0NzUwYzlkN2EyMTllZTg4ZDI0MDMwMGZlNjkiPmlwLmg8L2E+PC9saT4KIDxsaT5pcDZfY3VycmVudF9zcmNfYWRkciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwXzhoLmh0bWwjYWM0MGE5ZTRhMjFlY2Y1YmIzOTgxM2JiNmNhNWJiMjQ1Ij5pcC5oPC9hPjwvbGk+CkBAIC0xNzksNiArMTg3LDE5IEBACiA8bGk+aXBfMl9pcDYmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPmlwX2FkZHIuaDwvYT48L2xpPgogPGxpPklQX0FDQ0VQVF9MSU5LX0xBWUVSX0FERFJFU1NFRF9QT1JUJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0XzhjLmh0bWwjYTE4NWM3ZDYzODA3MTE4NDcxMDU0MzA5MzE2OTJiMjY3Ij5pcDQuYzwvYT48L2xpPgogPGxpPklQX0FERFJfQU5ZJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYTNlNWU2N2I3MjkyYjE1NjAzNDU2MGZlZjIyMDI3NzZjIj5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcF9hZGRyX2NtcCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTAwOGM5YzkyZDc3MGNjMDMwZWEwNTRlNmIyNTk4MzVhIj5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcF9hZGRyX2NtcF96b25lbGVzcyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWRiNjZmNmQ1ZmE5MjZlZDRiMGU2OWRiNThkZmZjYmU0Ij5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcF9hZGRyX2VxJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhNWI0MDE1OGJkZmZhNGIwYzgxYzRlZTc3MDY2ZTZiMjgiPmlwX2FkZHIuaDwvYT48L2xpPgorPGxpPmlwX2FkZHJfaXNhbnkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EyNzkxMTg4OTBlNmE5MGFhNzQwMDUxZmI4YjBjYzVmNCI+aXBfYWRkci5oPC9hPjwvbGk+Cis8bGk+aXBfYWRkcl9pc2FueV92YWwmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2FjZDhmNWFhMTUxY2ZmOTY2ZmQyODM2OGI4NWYzOGMwNSI+aXBfYWRkci5oPC9hPjwvbGk+Cis8bGk+aXBfYWRkcl9pc2Jyb2FkY2FzdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWEzMzQ1NzA2ZTNhYThiMzJkZDYzMGMxOTViMDUzZTc1Ij5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcF9hZGRyX2lzbGlua2xvY2FsJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhMzNiYzA3OWJhYWY1MTNhOWE3MzgxYjk1MzFhMWY2NTMiPmlwX2FkZHIuaDwvYT48L2xpPgorPGxpPmlwX2FkZHJfaXNsb29wYmFjayYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTBmYzhiZjY2NjI4MDkyNzQ3NTA4Njg2ODNiM2E0MjJlIj5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcF9hZGRyX2lzbXVsdGljYXN0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhMjE3MGQzZWUxM2RkMjI3MjIyMjIyMjhlN2IxYzU3NTIiPmlwX2FkZHIuaDwvYT48L2xpPgorPGxpPmlwX2FkZHJfbmV0X2VxJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhZDFiYmJlNGM5M2VhMjM2ODY2M2U5MDgxNDk1M2I5MjkiPmlwX2FkZHIuaDwvYT48L2xpPgorPGxpPmlwX2FkZHJfbmV0Y21wJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhM2EyMTIzZjBiYmY2ZmU4NDNjODU0MmUzNDljNjgwZWIiPmlwX2FkZHIuaDwvYT48L2xpPgorPGxpPmlwX2FkZHJfem9uZWxlc3NfZXEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2E4YWMyNjg2NDE3ZWMyOTc0YmIwYjNmYzZlZTBlZTFhNyI+aXBfYWRkci5oPC9hPjwvbGk+Cis8bGk+SVBfQU5ZX1RZUEUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2FiZTQzYjE1NDUzM2I3MzU4NWM0ZTU4ZjU2ODM3MGVkZSI+aXBfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXBfY3VycmVudF9kZXN0X2FkZHImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcF84aC5odG1sI2E5MTM1OTc3ODY4MDE3YzNkZWVlYzg2YjUyNWUxMzk5NyI+aXAuaDwvYT48L2xpPgogPGxpPmlwX2N1cnJlbnRfaGVhZGVyX3Byb3RvJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXBfOGguaHRtbCNhZjI3YzQzYzIzYjU5ZDY4YTg0NjNjZDVhZDAzNWIyMGYiPmlwLmg8L2E+PC9saT4KIDxsaT5pcF9jdXJyZW50X2hlYWRlcl90b3RfbGVuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXBfOGguaHRtbCNhMmNhMTVlYTI4NWExMDk4MjI5NDM3OGNkN2I4ZTgzZTIiPmlwLmg8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19sLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfbC5odG1sCmluZGV4IDgzNTkzZmMuLjU2YTk1NWYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19sLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX2wuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTAsNiArMTEwLDcgQEAKIDxsaT5MV0lQXzZMT1dQQU5fSU5GRVJfU0hPUlRfQUREUkVTUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imxvd3BhbjZfX29wdHNfOGguaHRtbCNhNmE1NDJjZDcyYTYyNzBiNzIzMWI4YjkzZjgwNDEyMDciPmxvd3BhbjZfb3B0cy5oPC9hPjwvbGk+CiA8bGk+TFdJUF82TE9XUEFOX0lQSEMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJsb3dwYW42X19vcHRzXzhoLmh0bWwjYTBmMTc4YTg2ZDAyZTBiYTQxNjhjYWZlM2RlNWYzYWZhIj5sb3dwYW42X29wdHMuaDwvYT48L2xpPgogPGxpPkxXSVBfNkxPV1BBTl9OVU1fQ09OVEVYVFMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJsb3dwYW42X19vcHRzXzhoLmh0bWwjYTRmZmE4OWYzOWFiZjkzY2M1OTlmNzhjNWE4YmIwYTRhIj5sb3dwYW42X29wdHMuaDwvYT48L2xpPgorPGxpPkxXSVBfQUNEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2FjZC5odG1sI2dhNmYxNjY3ODY2MzM1Y2FkM2E3YjEyMjFiZDBiMjc0ZTciPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9BTElHTk1FTlRfQ0FTVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19jb21waWxlcl9fYWJzdHJhY3Rpb24uaHRtbCNnYWFkZTg3OTczZDcyMTM1YjBiM2FmY2NmZmY0ZjYyZWI4Ij5hcmNoLmg8L2E+PC9saT4KIDxsaT5MV0lQX0FMTE9XX01FTV9GUkVFX0ZST01fT1RIRVJfQ09OVEVYVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19tZW0uaHRtbCNnYTBhM2VmNjA5ODgxM2MxMDNlNWFiYTA3ZGE3NmUxNWUyIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfQUxUQ1AmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2EyNmRlZTBlNWQ5YzUxYjFkZGEwYWRhZDI5Yzc3MGE3NyI+b3B0Lmg8L2E+PC9saT4KQEAgLTEyMCw3ICsxMjEsNiBAQAogPGxpPkxXSVBfQVNTRVJUX0NPUkVfTE9DS0VEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2xvY2suaHRtbCNnYTZhMzAwNDBkYjMwN2IzNDU5ZmMxMTkwNmJkNDMzZjc1Ij5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfQVVUT0lQJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2F1dG9pcC5odG1sI2dhYWYxYjNhMDg5ODI3MjIzNTg5YmFmMWI3ZjRmNTcwNjkiPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9BVVRPSVBfQ1JFQVRFX1NFRURfQUREUiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84Yy5odG1sI2FjZWM3NTA2OWY2ZTZlY2JlMjAwYzU2OTFlNTZlY2Q0MyI+YXV0b2lwLmM8L2E+PC9saT4KLTxsaT5MV0lQX0FVVE9JUF9SQU5EJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYTYzNDUzNTE1NmNjMWE4Y2Y5ZjA0ZDNkNWM3NGY4YTU5Ij5hdXRvaXAuYzwvYT48L2xpPgogPGxpPkxXSVBfQlJPQURDQVNUX1BJTkcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19faWNtcC5odG1sI2dhODA4OGNiNTZkMWE4NGZlNTU0YjExYmMxNWQ4NGIyYjkiPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9DSEVDS1NVTV9DVFJMX1BFUl9ORVRJRiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19jaGVja3N1bS5odG1sI2dhM2VjYzUyNDZhMGM2Y2E1YWVkNTZjMmQ3ODk5YzEwMDQiPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9DSEVDS1NVTV9PTl9DT1BZJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2NoZWNrc3VtLmh0bWwjZ2E5ZjYwMTgzZjA0NDJiZGJlZWZkNmIzOTVjNjY0NzYxMyI+b3B0Lmg8L2E+PC9saT4KQEAgLTE0OCw2ICsxNDgsOCBAQAogPGxpPkxXSVBfREhDUF9BVVRPSVBfQ09PUCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hdXRvaXAuaHRtbCNnYTFhOTFlMThkYmI5Nzc3YmM2ZTM5NjNmNTJjYjVmOWZlIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfREhDUF9BVVRPSVBfQ09PUF9UUklFUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hdXRvaXAuaHRtbCNnYTRmZjNmOTQxYjRjNzFhMDRiMGMzMGZiZWU1YjE5OGMyIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfREhDUF9CT09UUF9GSUxFJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYTNjMjk4M2NiZDIyODAxMWRkM2UxOGNiNDE3ZTdlNDIzIj5vcHQuaDwvYT48L2xpPgorPGxpPkxXSVBfREhDUF9ESVNDT1ZFUl9BRERfSE9TVE5BTUUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhZDZiMDMwZjhlODI4NjY2OTUzNjYxNTc4ZjkzNmU2MDUiPm9wdC5oPC9hPjwvbGk+Cis8bGk+TFdJUF9ESENQX0RPRVNfQUNEX0NIRUNLJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYWRkMGM4MjMyOWZjY2I3ODM0MmUzZWVmOTgyMzNhYTU1Ij5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfREhDUF9HRVRfTlRQX1NSViYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwjZ2EyY2MxODMxNWVkY2Q1ZmZjMDgzZDEyNTZmN2QyMmE4MyI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX0RIQ1BfTUFYX0ROU19TRVJWRVJTJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYTYwY2NjMjBmYmIwOGJlMjRiNWQ1ZjU5OWRkNDdhNmE2Ij5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfREhDUF9NQVhfTlRQX1NFUlZFUlMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhOWQwMTRlM2Y3ZGM5ZTFlN2M3ZGVjZDg2NTJiYTY1ZTIiPm9wdC5oPC9hPjwvbGk+CkBAIC0xODksNiArMTkxLDcgQEAKIDxsaT5MV0lQX0hUVFBEX0NVU1RPTV9GSUxFUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhZGFkYjcwZjU2NjNjZGYwMDRiZjg3OWUzYjVkMzI2YmQiPmh0dHBkX29wdHMuaDwvYT48L2xpPgogPGxpPkxXSVBfSFRUUERfRFlOQU1JQ19GSUxFX1JFQUQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTFlZThkN2M5NzVjN2UzZDFjOWQ5ZGQ5YjQzNjYwYzc5Ij5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX0RZTkFNSUNfSEVBREVSUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhNzU5MzJmYzVlZWI5YWJlZGRmZGFmODQxMzU3NGM2ZDciPmh0dHBkX29wdHMuaDwvYT48L2xpPgorPGxpPkxXSVBfSFRUUERfRklMRV9FWFRFTlNJT04mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYWEzNjQ4YTlmZGVmZTNhYjFjODkwYjcxNWE0Nzg2NDI5Ij5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX0ZJTEVfU1RBVEUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYWVkZDBmYTNkMzU2MTcwZDhjYTM1NTdhY2I0MTBmZDdjIj5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX0ZTX0FTWU5DX1JFQUQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTUxY2I2NzNjYjVjYzM2MmFjYzQwOWYyM2MxZTBhMzMxIj5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX0tJTExfT0xEX09OX0NPTk5FQ1RJT05TX0VYQ0VFREVEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2EwZDUwNzQ5NjVlZmQ0MDc4NjE4MjI4Nzg5NWZlYjY5MSI+aHR0cGRfb3B0cy5oPC9hPjwvbGk+CkBAIC0yMDAsNiArMjAzLDcgQEAKIDxsaT5MV0lQX0hUVFBEX1JFUV9RVUVVRUxFTiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhZWYyM2Y0ZTM1MjVhYTVkZDBlY2JjZTliNWUxNmQ0ZTAiPmh0dHBkX29wdHMuaDwvYT48L2xpPgogPGxpPkxXSVBfSFRUUERfU1NJJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FjYjcwZTBjZGQzMGE5NDBmOGJjZTY4MWM2Y2M2Mzk0OSI+aHR0cGRfb3B0cy5oPC9hPjwvbGk+CiA8bGk+TFdJUF9IVFRQRF9TU0lfQllfRklMRV9FWFRFTlNJT04mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYWJhMmQ0Y2ZlNGMxZjViZGJlMzdiMzM5MDg0YTdkNDY2Ij5odHRwZF9vcHRzLmg8L2E+PC9saT4KKzxsaT5MV0lQX0hUVFBEX1NTSV9FWFRFTlNJT05TJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2EwMDZiYWE3MjE5Y2ZmNWVlMDJmNWExNGVmN2Q3Yzg5ZCI+aHR0cGRfb3B0cy5oPC9hPjwvbGk+CiA8bGk+TFdJUF9IVFRQRF9TU0lfSU5DTFVERV9UQUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTk3NTk2MWE2ZDIyZDFhMDc3MTE4ZmI4NWRmZWM4MDlhIj5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX1NTSV9NVUxUSVBBUlQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTMxNjdkNTJkMjBjZjkwODU3ZTJjODA5YjkyNDU4YmYwIj5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX1NTSV9SQVcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTUyMDg1ODc3OGI4NGQ0ZDJmYTEyNTI5NGMwZjExOWU1Ij5odHRwZF9vcHRzLmg8L2E+PC9saT4KQEAgLTI0MCw3ICsyNDQsOCBAQAogPGxpPkxXSVBfTE9XUEFONl9ERUNPTVBSRVNTSU9OX0RFQlVHJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibG93cGFuNl9fb3B0c184aC5odG1sI2E3ZjRkYjBiZDNkYmUzNmExOWVmYmQyNGNkOGI3ZmNmMCI+bG93cGFuNl9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0xPV1BBTjZfSVBfQ09NUFJFU1NFRF9ERUJVRyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imxvd3BhbjZfX29wdHNfOGguaHRtbCNhMjMxYmM3NTg0ODQzNzZkZmQyZGVkNjkzMWM0NjJkZjgiPmxvd3BhbjZfb3B0cy5oPC9hPjwvbGk+CiA8bGk+TFdJUF9NQUtFVTMyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGVmXzhoLmh0bWwjYWNmNTZkM2RhOTJhMGE3YThhNjJhNjE3ZTc5M2U5NDhjIj5kZWYuaDwvYT48L2xpPgotPGxpPkxXSVBfTUFSS19UQ1BJUF9USFJFQUQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fbG9jay5odG1sI2dhYjk3ZDAxNGY3ZWNmM2IyMGY5ZDVhYmMyZDBhNzlhM2UiPm9wdC5oPC9hPjwvbGk+Cis8bGk+TFdJUF9NQVJLX1RDUElQX1RIUkVBRCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19sb2NrLmh0bWwjZ2FiOTdkMDE0ZjdlY2YzYjIwZjlkNWFiYzJkMGE3OWEzZSI+c3lzLmg8L2E+PC9saT4KKzxsaT5MV0lQX01ETlNfU0VBUkNIJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnNfX29wdHMuaHRtbCNnYWFmNDg5NjA0ZGNkZjk0ZDJhZGNkNzIzZjZjN2Q3MTYzIj5tZG5zX29wdHMuaDwvYT48L2xpPgogPGxpPkxXSVBfTUVNX0FMSUdOJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2NvbXBpbGVyX19hYnN0cmFjdGlvbi5odG1sI2dhYThlODcyNGViMWMyMjBjYmJiOTBkZTllMTc1Y2UxZGMiPmFyY2guaDwvYT48L2xpPgogPGxpPkxXSVBfTUVNX0FMSUdOX0JVRkZFUiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19jb21waWxlcl9fYWJzdHJhY3Rpb24uaHRtbCNnYTI1NTkxZGNiNzJmY2NjN2I1ZGM0NmZiYzE5NTk2OTRlIj5hcmNoLmg8L2E+PC9saT4KIDxsaT5MV0lQX01FTV9BTElHTl9TSVpFJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2NvbXBpbGVyX19hYnN0cmFjdGlvbi5odG1sI2dhZWYyMDRiZTUxMWZkMzJmNjgxYjU1YWJjMDhlOWFlMTgiPmFyY2guaDwvYT48L2xpPgpAQCAtMjg5LDYgKzI5NCw3IEBACiA8bGk+TFdJUF9OT19TVERERUZfSCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19jb21waWxlcl9fYWJzdHJhY3Rpb24uaHRtbCNnYTUzOTU0ZDUwN2MwOWU1MjFlYzBkNDRhMjQ1MGJiODlkIj5hcmNoLmg8L2E+PC9saT4KIDxsaT5MV0lQX05PX1NURElOVF9IJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2NvbXBpbGVyX19hYnN0cmFjdGlvbi5odG1sI2dhMTIyYzc1NGRiOTZlY2FkMjNiYzZmNDU0MWQ2MzYwYzEiPmFyY2guaDwvYT48L2xpPgogPGxpPkxXSVBfTk9BU1NFUlQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fYXNzZXJ0aW9ucy5odG1sI2dhNzFiNzc4NzgwMmFiYmZjMjIxOGZiMWYzOWY5NDhhNDEiPmRlYnVnLmg8L2E+PC9saT4KKzxsaT5MV0lQX05TQ19JUFY0X0FERFJfVkFMSUQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sI2E3MTY1NzZmMzQ4NTUyNGQ0NGVmMDg0MzgzOWVmMDU2NCI+bmV0aWYuaDwvYT48L2xpPgogPGxpPkxXSVBfTlNDX0lQVjRfQUREUkVTU19DSEFOR0VEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfOGguaHRtbCNhZWI0ZTc5MDE5OWIwMjQ2OWFhMDRjMDQ0ZWY1Y2ZhMzIiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5MV0lQX05TQ19JUFY0X0dBVEVXQVlfQ0hBTkdFRCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhoLmh0bWwjYTIyNDAwZDIyMDI1ODFiNGE3MjczY2RlZDcxMmFkZjQ5Ij5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+TFdJUF9OU0NfSVBWNF9ORVRNQVNLX0NIQU5HRUQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sI2FkNzQ3MDcyNzcxYTg4NzQ0M2FiMzNmOTBhMTIwNzdkNCI+bmV0aWYuaDwvYT48L2xpPgpAQCAtMzI1LDYgKzMzMSw3IEBACiA8bGk+TFdJUF9TT19TTkRSQ1ZUSU1FT19OT05TVEFOREFSRCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbCNnYTViMTE1YmFjYjU2OTc2M2Q4YTM4ODlhMTIyMjllOTQyIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfU09fU05EVElNRU8mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2ExMTYyY2I2ODVmMjAyZDliMjFjMTEzNDRiODIwOWE1OCI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX1NPQ0tFVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbCNnYTFjYjYyY2U2MWFjMzlkN2Q2NzI4YWU1ZDNkM2I5MjdmIj5vcHQuaDwvYT48L2xpPgorPGxpPkxXSVBfU09DS0VUX0VYVEVSTkFMX0hFQURFUlMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2E1MjRjMDEzZWNkZDhhNDVhMjk0OWYyYTQzMzQ2OWU4MiI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX1NPQ0tFVF9PRkZTRVQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2FkMDE5N2M4NDVmYmI0NGM5MjBiMjcyZjBmZWYzYjU3ZSI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX1NPQ0tFVF9QT0xMJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sI2dhNmMxNGQ3MDVlMzMyMTQyOTY4M2YyNGRlOWY1YTcyMDAiPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9TT0NLRVRfU0VMRUNUJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sI2dhNjg0MTcwNzhiNzFiMGJlOTczNTI1NmY1MjkzM2RjZGIiPm9wdC5oPC9hPjwvbGk+CkBAIC0zMzcsNiArMzQ0LDcgQEAKIDxsaT5MV0lQX1RDUF9LRUVQQUxJVkUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2E4YjkzNjlhYjI2MGYwMzI2ODZhODFjNzdjNWI0ZGI3NyI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX1RDUF9NQVhfU0FDS19OVU0mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2FhYWMwZTlmNTU5YThlM2MyNTFmMzUwNGNlYmNmNDRkYyI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX1RDUF9QQ0JfTlVNX0VYVF9BUkdTJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhNDBiMWNkYWQ1MmVhYTkxYTNmNWMyNDJmYzkyZWUyMjMiPm9wdC5oPC9hPjwvbGk+Cis8bGk+TFdJUF9UQ1BfUlRPX1RJTUUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2FkZTIzMzczOTAxOTgwYzZlN2E0M2NlZjgxMzM4NmViZSI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX1RDUF9TQUNLX09VVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX190Y3AuaHRtbCNnYWYxYjZhMDE1ZDI5ZmVhNjdiOTA2YzI3NmUxZTgzMTRmIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfVENQX1RJTUVTVEFNUFMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2EyNDliYzQ1MGJiODE4Y2YyZWYzY2YxNDcyZmYzNTRmZCI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX1RDUElQX0NPUkVfTE9DS0lORyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19sb2NrLmh0bWwjZ2E4ZTQ2MjMyNzk0MzQ5YzIwOWU4ZWQ0ZTllN2U0ZjAxMSI+b3B0Lmg8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19tLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfbS5odG1sCmluZGV4IDI3ZWU3YzUuLjI5MzBmNzggMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19tLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX20uaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDEsOSArMTAxLDE1IEBACiAKIDxoMz48YSBpZD0iaW5kZXhfbSIgbmFtZT0iaW5kZXhfbSI+PC9hPi0gbSAtPC9oMz48dWw+CiA8bGk+TUROU19ERUJVRyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2E1M2E5NzUwMmVmZGNmMTIxNGNhYjQwNzhmOTNhNmRjOSI+bWRuc19vcHRzLmg8L2E+PC9saT4KKzxsaT5NRE5TX01BWF9SRVFVRVNUUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2ExN2E5ODg0YWY4MTY5Y2YxOWQ1N2Q4MDA1ZmMzZDk1ZSI+bWRuc19vcHRzLmg8L2E+PC9saT4KIDxsaT5NRE5TX01BWF9TRVJWSUNFUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2E4Mjc0OWVlMDhiZTIxOTY3YjZkYWY1NzdiOTcxMGFjNiI+bWRuc19vcHRzLmg8L2E+PC9saT4KKzxsaT5NRE5TX01BWF9TVE9SRURfUEtUUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2E4MjdkMWQyYWJkMjRhMjY2Mzg3MjNjZmQwYThiOWVmZCI+bWRuc19vcHRzLmg8L2E+PC9saT4KKzxsaT5NRE5TX09VVFBVVF9QQUNLRVRfU0laRSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2EwZjBhZGY3YjFkNzQyYjRlYTgxOGMxYjdmNmIwYzU0NyI+bWRuc19vcHRzLmg8L2E+PC9saT4KKzxsaT5NRE5TX1BST0JFX0NPVU5UJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184Yy5odG1sI2FmMjRlNTkwYmY5YzIyNWEyZWZjMGI1NWZhYzE0ODA5ZCI+bWRucy5jPC9hPjwvbGk+Cis8bGk+TUROU19QUk9CRV9ERUxBWV9NUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2E3ZjY4NTNkMDFhZDMyZWI2Y2U5OWFlNTUzMDdhMzdkOSI+bWRuc19vcHRzLmg8L2E+PC9saT4KIDxsaT5tZG5zX3Jlc3BfbmV0aWZfc2V0dGluZ3NfY2hhbmdlZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FiMmVkYmExMmQ1Y2FkMTk0OWY3Y2EwNDBhZTEyYmVlYyI+bWRucy5oPC9hPjwvbGk+CiA8bGk+TUROU19SRVNQX1VTRU5FVElGX0VYVENBTExCQUNLJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnNfX29wdHMuaHRtbCNnYTE3MmU1NzljZDA5YTFkYjUxY2YyMjQzMTljMDEyMzk2Ij5tZG5zX29wdHMuaDwvYT48L2xpPgorPGxpPk1ETlNfUkVTUE9OU0VfREVMQVlfTUFYJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184Yy5odG1sI2E0ODJkNmJmNzEwYWY0NDI0YjcxZWU1NzAzNGVkYmRiZSI+bWRucy5jPC9hPjwvbGk+CiA8bGk+TUVNX0FMSUdOTUVOVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19tZW0uaHRtbCNnYTk3MzQzMjE0NjY2ZWU2ZGNiMThjMGJkNzdiNDQxZWE3Ij5vcHQuaDwvYT48L2xpPgogPGxpPk1FTV9ERUJVRyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhMmQ3YmMzODA2OTVlZWVkYjFhZjUwYzM4MDg2MTNhZmUiPm9wdC5oPC9hPjwvbGk+CiA8bGk+TUVNX0xJQkNfTUFMTE9DJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX21lbS5odG1sI2dhNGVmMzQ1Y2MyNzA5MTJiZDIyMzBiMWM1ZWM1MWRmYzgiPm9wdC5oPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfbi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX24uaHRtbAppbmRleCBkYzFhNzczLi44YjY2MGU0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfbi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19uLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTQyLDYgKzE0Miw4IEBACiA8bGk+TkVUSUZfRkxBR19NTEQ2JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmX19mbGFncy5odG1sI2dhYjE0ZmJlMTQ0N2QyZmRiZGY1YWJjODdmNTFlYjY1MDgiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5ORVRJRl9GTEFHX1VQJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmX19mbGFncy5odG1sI2dhYjQ3ZDdkMTMwNjkzZGMxNTVmNDgwYTViZjQ0NzcyNWUiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5uZXRpZl9nZXRfY2xpZW50X2RhdGEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZfX2NkLmh0bWwjZ2E0YmNlMDFkZGJmMGZkNzBjYjg4NDMxZjc3M2M5MWJjNSI+bmV0aWYuaDwvYT48L2xpPgorPGxpPm5ldGlmX2dldF9pZ21wX21hY19maWx0ZXImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sI2EwYTY3NDU1M2MxOGI0MjliNTMzOTczNzJlYTgyZmNhZiI+bmV0aWYuaDwvYT48L2xpPgorPGxpPm5ldGlmX2dldF9tbGRfbWFjX2ZpbHRlciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhoLmh0bWwjYTA0NmM0ODE2ZTM3YzNjNGI4NGIzNjM0ZWVlZWE3MDI5Ij5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfaWdtcF9kYXRhJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lnbXAuaHRtbCNnYWQ5OTBkZmM1ZWQ4YjY0NGMxNmNjNTc4Yzg3NmU1ODhkIj5pZ21wLmg8L2E+PC9saT4KIDxsaT5uZXRpZl9pc19saW5rX3VwJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfOGguaHRtbCNhNzgwYmU0YzNmYTlmN2YyNTM0Zjc4NjU2NjZjM2ExYjgiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5uZXRpZl9pc191cCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhOTRhNGMyNGM5ODhhZmMwYTU3NzM4NzczMGYzMDNiMTkiPm5ldGlmLmg8L2E+PC9saT4KQEAgLTE0OSw2ICsxNTEsOCBAQAogPGxpPm5ldGlmX21sZDZfZGF0YSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tbGQ2Lmh0bWwjZ2EwMmEyMjU5MDgyZjIyYzU5ODlhM2M5MjliZTk1ZTY0MSI+bWxkNi5oPC9hPjwvbGk+CiA8bGk+TkVUSUZfTkFNRVNJWkUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sI2EzMDJmMjRmYmZlODgzZWU0ODQwZmZjNzFmMjY3YWUyYSI+bmV0aWYuaDwvYT48L2xpPgogPGxpPm5ldGlmX3NldF9jbGllbnRfZGF0YSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZl9fY2QuaHRtbCNnYTVjZTYxYTI3N2UxOTUxMTgzZjdiN2QwMzc0MmMyMzFmIj5uZXRpZi5oPC9hPjwvbGk+Cis8bGk+bmV0aWZfc2V0X2lnbXBfbWFjX2ZpbHRlciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMzQyOGIzZjgxOTUyNDljNmNkODcwNGE0ZGI0NmI0MDEiPm5ldGlmLmg8L2E+PC9saT4KKzxsaT5uZXRpZl9zZXRfbWxkX21hY19maWx0ZXImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTk3ZjMwYmI1NTQyZTRjMDdkM2IzMmUzYzc1NGUxMDRjIj5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZhcGlfYXV0b2lwX3N0YXJ0JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmYXBpX19hdXRvaXAuaHRtbCNnYWNhMjZiYWUyYTIxZTA3MzJhNzU5OWRmMTRmODgwYWYyIj5uZXRpZmFwaS5oPC9hPjwvbGk+CiA8bGk+bmV0aWZhcGlfYXV0b2lwX3N0b3AmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZhcGlfX2F1dG9pcC5odG1sI2dhZTYwNGY5NjkwN2E1MjU1N2U0ZWJkMWJkNWQ4MDA3MWQiPm5ldGlmYXBpLmg8L2E+PC9saT4KIDxsaT5uZXRpZmFwaV9kaGNwX2luZm9ybSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fZGhjcDQuaHRtbCNnYTI5MTA4OTc1ZTlhYTY0NjNiOWE1NzRkZTk2MTMxN2UwIj5uZXRpZmFwaS5oPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfcC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX3AuaHRtbAppbmRleCBkYjZlNzNlLi5lYTFhZjUwIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfcC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19wLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX3EuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19xLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTlkMTdlZgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19xLmh0bWwKQEAgLTAsMCArMSwxMTQgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwczovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZW4tVVMiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQveGh0bWw7Y2hhcnNldD1VVEYtOCIvPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT0xMSIvPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb3h5Z2VuIDEuMTIuMCIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIi8+Cis8dGl0bGU+bHdJUDogR2xvYmFsczwvdGl0bGU+Cis8bGluayBocmVmPSJ0YWJzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianF1ZXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImR5bnNlY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImNsaXBib2FyZC5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJuYXZ0cmVlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibmF2dHJlZWRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibmF2dHJlZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNpemUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iY29va2llLmpzIj48L3NjcmlwdD4KKzxsaW5rIGhyZWY9InNlYXJjaC9zZWFyY2guY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWFyY2gvc2VhcmNoZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWFyY2gvc2VhcmNoLmpzIj48L3NjcmlwdD4KKzxsaW5rIGhyZWY9ImRveHlnZW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0b3AiPjwhLS0gZG8gbm90IHJlbW92ZSB0aGlzIGRpdiwgaXQgaXMgY2xvc2VkIGJ5IGRveHlnZW4hIC0tPgorPGRpdiBpZD0idGl0bGVhcmVhIj4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPgorIDx0Ym9keT4KKyA8dHIgaWQ9InByb2plY3Ryb3ciPgorICA8dGQgaWQ9InByb2plY3RhbGlnbiI+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KKyAgIDwvZGl2PgorICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgorICA8L3RkPgorIDwvdHI+CisgPC90Ym9keT4KKzwvdGFibGU+Cis8L2Rpdj4KKzwhLS0gZW5kIGhlYWRlciBwYXJ0IC0tPgorPCEtLSBHZW5lcmF0ZWQgYnkgRG94eWdlbiAxLjEyLjAgLS0+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KK3ZhciBzZWFyY2hCb3ggPSBuZXcgU2VhcmNoQm94KCJzZWFyY2hCb3giLCAic2VhcmNoLyIsJy5odG1sJyk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCiskKGZ1bmN0aW9uKCkgeyBjb2RlZm9sZC5pbml0KDApOyB9KTsKKy8qIEBsaWNlbnNlLWVuZCAqLworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZW51ZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZW51LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpIHsKKyAgaW5pdE1lbnUoJycsdHJ1ZSxmYWxzZSwnc2VhcmNoLnBocCcsJ1NlYXJjaCcsdHJ1ZSk7CisgICQoZnVuY3Rpb24oKSB7IGluaXRfc2VhcmNoKCk7IH0pOworfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPGRpdiBpZD0ibWFpbi1uYXYiPjwvZGl2PgorPC9kaXY+PCEtLSB0b3AgLS0+Cis8ZGl2IGlkPSJzaWRlLW5hdiIgY2xhc3M9InVpLXJlc2l6YWJsZSBzaWRlLW5hdi1yZXNpemFibGUiPgorICA8ZGl2IGlkPSJuYXYtdHJlZSI+CisgICAgPGRpdiBpZD0ibmF2LXRyZWUtY29udGVudHMiPgorICAgICAgPGRpdiBpZD0ibmF2LXN5bmMiIGNsYXNzPSJzeW5jIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgaWQ9InNwbGl0YmFyIiBzdHlsZT0iLW1vei11c2VyLXNlbGVjdDpub25lOyIgCisgICAgICAgY2xhc3M9InVpLXJlc2l6YWJsZS1oYW5kbGUiPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCiskKGZ1bmN0aW9uKCl7aW5pdE5hdlRyZWUoJ2dsb2JhbHNfZGVmc19xLmh0bWwnLCcnKTsgaW5pdFJlc2l6YWJsZSh0cnVlKTsgfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPGRpdiBpZD0iZG9jLWNvbnRlbnQiPgorPCEtLSB3aW5kb3cgc2hvd2luZyB0aGUgZmlsdGVyIG9wdGlvbnMgLS0+Cis8ZGl2IGlkPSJNU2VhcmNoU2VsZWN0V2luZG93IgorICAgICBvbm1vdXNlb3Zlcj0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdFNob3coKSIKKyAgICAgb25tb3VzZW91dD0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdEhpZGUoKSIKKyAgICAgb25rZXlkb3duPSJyZXR1cm4gc2VhcmNoQm94Lk9uU2VhcmNoU2VsZWN0S2V5KGV2ZW50KSI+Cis8L2Rpdj4KKworPCEtLSBpZnJhbWUgc2hvd2luZyB0aGUgc2VhcmNoIHJlc3VsdHMgKGNsb3NlZCBieSBkZWZhdWx0KSAtLT4KKzxkaXYgaWQ9Ik1TZWFyY2hSZXN1bHRzV2luZG93Ij4KKzxkaXYgaWQ9Ik1TZWFyY2hSZXN1bHRzIj4KKzxkaXYgY2xhc3M9IlNSUGFnZSI+Cis8ZGl2IGlkPSJTUkluZGV4Ij4KKzxkaXYgaWQ9IlNSUmVzdWx0cyI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9IkxvYWRpbmciPkxvYWRpbmcuLi48L2Rpdj4KKzxkaXYgY2xhc3M9IlNSU3RhdHVzIiBpZD0iU2VhcmNoaW5nIj5TZWFyY2hpbmcuLi48L2Rpdj4KKzxkaXYgY2xhc3M9IlNSU3RhdHVzIiBpZD0iTm9NYXRjaGVzIj5ObyBNYXRjaGVzPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY29udGVudHMiPgorPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBtYWNyb3Mgd2l0aCBsaW5rcyB0byB0aGUgZG9jdW1lbnRhdGlvbjo8L2Rpdj4KKworPGgzPjxhIGlkPSJpbmRleF9xIiBuYW1lPSJpbmRleF9xIj48L2E+LSBxIC08L2gzPjx1bD4KKzxsaT5RVUVTVElPTl9QUk9CRV9IT1NUX0FOWSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2FiMzI5N2Q2OWIwZWZmYjVlYjAxYTliOGM1YTcwOGVhOSI+bWRuc19vdXQuaDwvYT48L2xpPgorPC91bD4KKzwvZGl2PjwhLS0gY29udGVudHMgLS0+Cis8L2Rpdj48IS0tIGRvYy1jb250ZW50IC0tPgorPCEtLSBzdGFydCBmb290ZXIgcGFydCAtLT4KKzxkaXYgaWQ9Im5hdi1wYXRoIiBjbGFzcz0ibmF2cGF0aCI+PCEtLSBpZCBpcyBuZWVkZWQgZm9yIHRyZWV2aWV3IGZ1bmN0aW9uISAtLT4KKyAgPHVsPgorICAgIDxsaSBjbGFzcz0iZm9vdGVyIj5HZW5lcmF0ZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZG94eWdlbi5vcmcvaW5kZXguaHRtbCI+PGltZyBjbGFzcz0iZm9vdGVyIiBzcmM9ImRveHlnZW4uc3ZnIiB3aWR0aD0iMTA0IiBoZWlnaHQ9IjMxIiBhbHQ9ImRveHlnZW4iLz48L2E+IDEuMTIuMCA8L2xpPgorICA8L3VsPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfci5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX3IuaHRtbAppbmRleCA4ZmVlOTJkLi5lOWE0NDUyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfci5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19yLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX3MuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc19zLmh0bWwKaW5kZXggNjE0NTBmYS4uMTQzYzFlZiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX3MuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfcy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMSw2ICsxMDEsNyBAQAogCiA8aDM+PGEgaWQ9ImluZGV4X3MiIG5hbWU9ImluZGV4X3MiPjwvYT4tIHMgLTwvaDM+PHVsPgogPGxpPlNFTFdBSVRfVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InNvY2tldHNfX3ByaXZfOGguaHRtbCNhOGY0ZDI0MDczM2E5MjYxYzY2OGZjNjZkYzRjZTgxOTYiPnNvY2tldHNfcHJpdi5oPC9hPjwvbGk+Cis8bGk+U0VUX1RJTUVPVVRfRlJPTV9PRkZFUkVEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sI2EzM2YzMDZkYTU3NWY4YTQzNzk5NmQwNzNiMzc0ZGY4MiI+ZGhjcC5jPC9hPjwvbGk+CiA8bGk+U0xJUF9ERUJVRyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhYjk4NmY5NTE4MzU1OWQ4Njc4YzZkODA5NjliMDE4NTciPm9wdC5oPC9hPjwvbGk+CiA8bGk+U0xJUF9NQVhfU0laRSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InNsaXBpZl84Yy5odG1sI2FjY2Y0NDhmOWRhYmIwZjMzZWY0NmI0MDM1NTY5MWNhYiI+c2xpcGlmLmM8L2E+PC9saT4KIDxsaT5TTElQX1JYX1FVRVVFJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic2xpcGlmXzhoLmh0bWwjYTM3Y2U4NjEzNTM1MjMyZGIwMmJmZDlhZTliNTFjNjY4Ij5zbGlwaWYuaDwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX3QuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc190Lmh0bWwKaW5kZXggMDdjYmVjOS4uZDkzNDU2MiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX3QuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfdC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc191Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfdS5odG1sCmluZGV4IDNmM2VhMzcuLmQ1MjhiZDEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc191Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX3UuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfei5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kZWZzX3ouaHRtbAppbmRleCA1YTczOTRhLi45YzJlMDRmIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2RlZnNfei5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZGVmc196Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19kdXAuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2R1cC5qcwppbmRleCBlYWVjNGVjLi5mZWM4MmU5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2R1cC5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2R1cC5qcwpAQCAtNiwxMiArNiwxNCBAQAogICAgIFsgImQiLCAiZ2xvYmFsc19kLmh0bWwiLCBudWxsIF0sCiAgICAgWyAiZSIsICJnbG9iYWxzX2UuaHRtbCIsIG51bGwgXSwKICAgICBbICJmIiwgImdsb2JhbHNfZi5odG1sIiwgbnVsbCBdLAorICAgIFsgImciLCAiZ2xvYmFsc19nLmh0bWwiLCBudWxsIF0sCiAgICAgWyAiaCIsICJnbG9iYWxzX2guaHRtbCIsIG51bGwgXSwKICAgICBbICJpIiwgImdsb2JhbHNfaS5odG1sIiwgbnVsbCBdLAogICAgIFsgImwiLCAiZ2xvYmFsc19sLmh0bWwiLCBudWxsIF0sCiAgICAgWyAibSIsICJnbG9iYWxzX20uaHRtbCIsIG51bGwgXSwKICAgICBbICJuIiwgImdsb2JhbHNfbi5odG1sIiwgbnVsbCBdLAogICAgIFsgInAiLCAiZ2xvYmFsc19wLmh0bWwiLCBudWxsIF0sCisgICAgWyAicSIsICJnbG9iYWxzX3EuaHRtbCIsIG51bGwgXSwKICAgICBbICJyIiwgImdsb2JhbHNfci5odG1sIiwgbnVsbCBdLAogICAgIFsgInMiLCAiZ2xvYmFsc19zLmh0bWwiLCBudWxsIF0sCiAgICAgWyAidCIsICJnbG9iYWxzX3QuaHRtbCIsIG51bGwgXSwKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19lLmh0bWwKaW5kZXggYWJhODM4ZC4uMTllYzJiMyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19lLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19lLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTIzLDYgKzEyMyw4IEBACiA8bGk+RVJSX1dPVUxEQkxPQ0smIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dnYWUyZTY2YzdkMTNhZmM5MGZmZWNkNjE1MTY4MGZiYWRjYWI5ZGNmODlkNDY2NjhiMDcyMTkyMjc4ZmI5MDdiN2FkIj5lcnIuaDwvYT48L2xpPgogPGxpPkVUSF9BRERSJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8ycHJvdF8yZXRoZXJuZXRfOGguaHRtbCNhMTljNzJjZTk4NTY5ZTBmYjU1OTQ4YTc1ODdkNzA0ZWUiPmV0aGVybmV0Lmg8L2E+PC9saT4KIDxsaT5FVEhfUEFEX1NJWkUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYXJwLmh0bWwjZ2FkN2ZhM2IzNTZjYTdlNjAzZTg0OGIwNjljNGNjNjI3NiI+b3B0Lmg8L2E+PC9saT4KKzxsaT5ldGhhcnBfYWNkX2Fubm91bmNlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJldGhhcnBfOGMuaHRtbCNhN2M0MWJhOGIxNDVmYTRkMDZmOGQ2YWYzZGY0NGM0ZmYiPmV0aGFycC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCNhN2M0MWJhOGIxNDVmYTRkMDZmOGQ2YWYzZGY0NGM0ZmYiPmV0aGFycC5oPC9hPjwvbGk+Cis8bGk+ZXRoYXJwX2FjZF9wcm9iZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZXRoYXJwXzhjLmh0bWwjYWFjN2Q1MDQ4YTgxZWYxYzYzYjE4ZDc2OTcwMGY0ODk5Ij5ldGhhcnAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwjYWFjN2Q1MDQ4YTgxZWYxYzYzYjE4ZDc2OTcwMGY0ODk5Ij5ldGhhcnAuaDwvYT48L2xpPgogPGxpPmV0aGFycF9jbGVhbnVwX25ldGlmKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJldGhhcnBfOGMuaHRtbCNhZTk0Njc3YTJhNWYzNjk4Mjc2MDI3Yzc0NzVmNmNhMDUiPmV0aGFycC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCNhZTk0Njc3YTJhNWYzNjk4Mjc2MDI3Yzc0NzVmNmNhMDUiPmV0aGFycC5oPC9hPjwvbGk+CiA8bGk+RVRIQVJQX0RFQlVHJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RlYnVnbXNnLmh0bWwjZ2FiZmY1ZDFlMGIzMzRmNWI0NWJkMmI4YmJiNjc1NDExZSI+b3B0Lmg8L2E+PC9saT4KIDxsaT5ldGhhcnBfZmluZF9hZGRyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJldGhhcnBfOGMuaHRtbCNhMGY4Y2E4N2M1NDcyZmExNjU3NjNjOGMzOGI3NjE3NGMiPmV0aGFycC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCNhMGY4Y2E4N2M1NDcyZmExNjU3NjNjOGMzOGI3NjE3NGMiPmV0aGFycC5oPC9hPjwvbGk+CkBAIC0xNTgsNyArMTYwLDcgQEAKIDxsaT5FVEhUWVBFX1NFUkNPUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pZWVlLmh0bWwjZ2dhYjNhN2I5NzY2NmIxMDA1ODQ5NzJkMTU4YWNiYmQxZjRhYjkzNDE5ZjhlZGY1NjkyZTkxNjI5YWI5MmZjZThhMTQiPmllZWUuaDwvYT48L2xpPgogPGxpPkVUSFRZUEVfVkxBTiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pZWVlLmh0bWwjZ2dhYjNhN2I5NzY2NmIxMDA1ODQ5NzJkMTU4YWNiYmQxZjRhZDhmODQ4MjZkNTJkOTJhYzI0YTQ3N2QxZjAzZTc5MDMiPmllZWUuaDwvYT48L2xpPgogPGxpPkVUSFRZUEVfV09MJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2llZWUuaHRtbCNnZ2FiM2E3Yjk3NjY2YjEwMDU4NDk3MmQxNThhY2JiZDFmNGE1MzBhMzBmZWI5Yjg3ZmQ5OTNkYTJiZjgzNzc2Y2Y5YiI+aWVlZS5oPC9hPjwvbGk+Ci08bGk+ZXVpNjRfdG9fYmxlX2FkZHIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTNlMjQ1YTg1ZjllZGRkY2E5M2RkZDI5NjcyMDk4ODFkIj5sb3dwYW42X2JsZS5oPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2EzZTI0NWE4NWY5ZWRkZGNhOTNkZGQyOTY3MjA5ODgxZCI+bG93cGFuNl9ibGUuYzwvYT48L2xpPgorPGxpPmV1aTY0X3RvX2JsZV9hZGRyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCI+bG93cGFuNl9ibGUuaDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhNTdkMzNmNjAyNGU0MTllOGNiYzMyZGZiNzgzZTM5YTQiPmxvd3BhbjZfYmxlLmM8L2E+PC9saT4KIDwvdWw+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZW51bS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19lbnVtLmh0bWwKaW5kZXggOWUyNDIwZi4uYzFiNzBkZCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19lbnVtLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19lbnVtLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19ldmFsLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2V2YWwuaHRtbAppbmRleCA3ZGIxZTJkLi41MWJjMTNjIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2V2YWwuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2V2YWwuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0yNDMsNyArMjQzLDcgQEAKIDxsaT5NUVRUX0NPTk5FQ1RfUkVGVVNFRF9TRVJWRVImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbXF0dC5odG1sI2dnYThjZjBmMzYwYWIyMDM0M2FmMzdlMWQxMjQzOTVhNzdkYWRlMjhlYzFjMmNlM2Q4NzRlOTEyNTFkNjgzYzkyYjJhIj5tcXR0Lmg8L2E+PC9saT4KIDxsaT5NUVRUX0NPTk5FQ1RfUkVGVVNFRF9VU0VSTkFNRV9QQVNTJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21xdHQuaHRtbCNnZ2E4Y2YwZjM2MGFiMjAzNDNhZjM3ZTFkMTI0Mzk1YTc3ZGEyOTBjZjkwMzcwNTRjNDIwMjJjYzg2NGNmYWRlODk2YSI+bXF0dC5oPC9hPjwvbGk+CiA8bGk+TVFUVF9DT05ORUNUX1RJTUVPVVQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbXF0dC5odG1sI2dnYThjZjBmMzYwYWIyMDM0M2FmMzdlMWQxMjQzOTVhNzdkYTU3MTUzZjJhYjQzMzFjNmY3NmE5ZWU3NGUxYmNmYzYyIj5tcXR0Lmg8L2E+PC9saT4KLTxsaT5NUVRUX0RBVEFfRkxBR19MQVNUJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21xdHQuaHRtbCNnZ2E5OWZiODMwMzFjZTk5MjNjODQzOTJiNGU5MmY5NTZiNWE3OWNkMDBkMGE1YThkZjEzMjA3ZTBjNDk0NDdkZjg3ZiI+bXF0dC5oPC9hPjwvbGk+Cis8bGk+TVFUVF9EQVRBX0ZMQUdfTEFTVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tcXR0Lmh0bWwjZ2dhYmM2MTI2YWYxZDQ1ODQ3YmM1OWFmYTBhYTMyMTZiMDRhNzljZDAwZDBhNWE4ZGYxMzIwN2UwYzQ5NDQ3ZGY4N2YiPm1xdHQuaDwvYT48L2xpPgogPC91bD4KIAogCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2YuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZi5odG1sCmluZGV4IDBhMjE0MTQuLjM1NWFiN2UgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuYy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jLmh0bWwKaW5kZXggZWUyMzk3Yi4uNzkxNmRhMSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTAwLDYgKzEwMCwxNCBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBmdW5jdGlvbnMgd2l0aCBsaW5rcyB0byB0aGUgZG9jdW1lbnRhdGlvbjo8L2Rpdj4KIAogPGgzPjxhIGlkPSJpbmRleF9hIiBuYW1lPSJpbmRleF9hIj48L2E+LSBhIC08L2gzPjx1bD4KKzxsaT5hY2RfYWRkKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2ExNTg4NTZiZjEzOWNiMjc2MTgzN2RkZmEwNzMwM2JkYyI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTE1ODg1NmJmMTM5Y2IyNzYxODM3ZGRmYTA3MzAzYmRjIj5hY2QuaDwvYT48L2xpPgorPGxpPmFjZF9hcnBfcmVwbHkoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84Yy5odG1sI2FhOTJlMjE0MTBkMGYwZDM1N2FiOTE2NmNkYTI0OTM3YSI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84aC5odG1sI2FhOTJlMjE0MTBkMGYwZDM1N2FiOTE2NmNkYTI0OTM3YSI+YWNkLmg8L2E+PC9saT4KKzxsaT5hY2RfbmV0aWZfaXBfYWRkcl9jaGFuZ2VkKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTE4YjQ0NGY2ZmM2OTMyNTQxNmI0NjMyMDhhNzU0Yzk3Ij5hY2QuaDwvYT48L2xpPgorPGxpPmFjZF9uZXR3b3JrX2NoYW5nZWRfbGlua19kb3duKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2EyODcyZmEzNzVmOWNkOGY1YjA5NTYzOWQ2NTJmNmJmZiI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTI4NzJmYTM3NWY5Y2Q4ZjViMDk1NjM5ZDY1MmY2YmZmIj5hY2QuaDwvYT48L2xpPgorPGxpPmFjZF9yZW1vdmUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTcwNTAzNjk2YmNhMjVlMWNmYjYxZmFkMzhiNDMyN2RhIj5hY2QuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FjZC5odG1sI2dhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiPmFjZC5oPC9hPjwvbGk+Cis8bGk+YWNkX3N0YXJ0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTJjYTJlMmRiYjk3MTNmOTA1MTVkNDQzZGM2OTFiNWNiIj5hY2QuaDwvYT48L2xpPgorPGxpPmFjZF9zdG9wKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwjZ2EzNmRhMmIyMzk1MWExNGNhM2M5MmY1ZTc4ZGIyZjFiNyI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hY2QuaHRtbCNnYTM2ZGEyYjIzOTUxYTE0Y2EzYzkyZjVlNzhkYjJmMWI3Ij5hY2QuaDwvYT48L2xpPgorPGxpPmFjZF90bXIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84Yy5odG1sI2E4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSI+YWNkLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84aC5odG1sI2E4ZGRmM2UxY2ZhOGY1ZDY3NGQ2Y2UwMGMyZjdkODQxZSI+YWNkLmg8L2E+PC9saT4KIDxsaT5hbHRjcF9hYm9ydCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2E3ZjZmYWI5OWZlZDQ0ODM4NWE3NmI0YTUxMDA3OTZhYiI+YWx0Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2E3ZjZmYWI5OWZlZDQ0ODM4NWE3NmI0YTUxMDA3OTZhYiI+YWx0Y3AuaDwvYT48L2xpPgogPGxpPmFsdGNwX2FjY2VwdCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2E3YzRjZDBiMTE3OWE1M2IxYTIyMzkzNmJhMjI3MGJmOSI+YWx0Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2E3YzRjZDBiMTE3OWE1M2IxYTIyMzkzNmJhMjI3MGJmOSI+YWx0Y3AuaDwvYT48L2xpPgogPGxpPmFsdGNwX2FsbG9jKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF84Yy5odG1sI2FhNzRjOWZjMzU4Y2ZmZWViNzMxMWI0MjEyYjBkNmZjNyI+YWx0Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYWx0Y3BfX3ByaXZfOGguaHRtbCNhYTc0YzlmYzM1OGNmZmVlYjczMTFiNDIxMmIwZDZmYzciPmFsdGNwX3ByaXYuaDwvYT48L2xpPgpAQCAtMTMwLDIzICsxMzgsMjggQEAKIDxsaT5hbHRjcF90Y3BfYWxsb2MoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImFsdGNwX190Y3BfOGMuaHRtbCNhNzc1ODJjOTNiYjhhMGFhMjcxOWU4NmI4Yzg1MDVlOGEiPmFsdGNwX3RjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fdGNwXzhoLmh0bWwjYTc3NTgyYzkzYmI4YTBhYTI3MTllODZiOGM4NTA1ZThhIj5hbHRjcF90Y3AuaDwvYT48L2xpPgogPGxpPmFsdGNwX3Rsc19hbGxvYygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWIwYmRmZDJlZGUwZGY0ZDQ3YjZlMTJjY2FjMmIxNGJjIj5hbHRjcF9hbGxvYy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhYjBiZGZkMmVkZTBkZjRkNDdiNmUxMmNjYWMyYjE0YmMiPmFsdGNwX3Rscy5oPC9hPjwvbGk+CiA8bGk+YWx0Y3BfdGxzX2NvbmZpZ19zZXJ2ZXJfYWRkX3ByaXZrZXlfY2VydCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWU2ZjUyMzcwYjYyYjBmNGJhOGQzNzNjNTE4NmM5ZTdlIj5hbHRjcF90bHMuaDwvYT48L2xpPgorPGxpPmFsdGNwX3Rsc19jb25maWd1cmVfYWxwbl9wcm90b2NvbHMoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2ExZjYwYjEyYTZhNDQ0MDIxNGI3YmNmMmUzYmE0MzEyNiI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KIDxsaT5hbHRjcF90bHNfY29udGV4dCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTg1ZDIwYjRkYzMyMTM0MmNmMDlhZDkzMDg2MzA5YmI3Ij5hbHRjcF90bHMuaDwvYT48L2xpPgogPGxpPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX2NsaWVudCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTdiM2MxMWM4YTI3M2Q2OGFjYzMzMmM1NWU2YjM4MTcwIj5hbHRjcF90bHMuaDwvYT48L2xpPgogPGxpPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX2NsaWVudF8yd2F5YXV0aCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTRkY2NiZDg2MWMwM2E5YzA5ZWFlNjc5OWRhMDA0NTk3Ij5hbHRjcF90bHMuaDwvYT48L2xpPgotPGxpPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX3NlcnZlcigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWY2ZWQxMzI3MTM5NDM3MWNjODlkNzBlZjUxMjhjNDExIj5hbHRjcF90bHMuaDwvYT48L2xpPgorPGxpPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX3NlcnZlcigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWEzNzY0OWJmMjRlYmVhMjM1YThlM2U4ZjUwYjk4MzFmIj5hbHRjcF90bHMuaDwvYT48L2xpPgogPGxpPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX3NlcnZlcl9wcml2a2V5X2NlcnQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E2MGI0NjM1YzgwYjgzMmE4YzNiMzMyZmRlZGU2OWQ1ZSI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KIDxsaT5hbHRjcF90bHNfZnJlZV9jb25maWcoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E4ZmI4YTkyZmEzZjg0MTcwMDUwZGRhYjI4ODhiOTE0NSI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KIDxsaT5hbHRjcF90bHNfZnJlZV9lbnRyb3B5KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhNzU2NzVjY2VjMTQyZDE3ZmMwNjk1YjQyNWYzZWMxYzIiPmFsdGNwX3Rscy5oPC9hPjwvbGk+Cis8bGk+YWx0Y3BfdGxzX2ZyZWVfc2Vzc2lvbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTkwNmVlZmNlZjY2ZTlkZDJiNDNjMzM5MjcwNDkwNWY1Ij5hbHRjcF90bHMuaDwvYT48L2xpPgorPGxpPmFsdGNwX3Rsc19nZXRfc2Vzc2lvbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTgyN2M3NmEwYmRkYzQ5MjNiOWExN2M4MTNlMTM4OTFlIj5hbHRjcF90bHMuaDwvYT48L2xpPgorPGxpPmFsdGNwX3Rsc19pbml0X3Nlc3Npb24oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FlNmMzY2Y3MmZjZDI5ZTZlYTRjNzQxODEzNzA0MjBjMyI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KIDxsaT5hbHRjcF90bHNfbmV3KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhYjZhNzE3NDQ2YWY5MzE5NDliYzNlMGRhY2ViMDkwYzgiPmFsdGNwX2FsbG9jLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FiNmE3MTc0NDZhZjkzMTk0OWJjM2UwZGFjZWIwOTBjOCI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KKzxsaT5hbHRjcF90bHNfc2V0X3Nlc3Npb24oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E0YWVkNGFhNTVkMGUxYjE1ZjQxMTg4NjNjZWEwNmQxOCI+YWx0Y3BfdGxzLmg8L2E+PC9saT4KIDxsaT5hbHRjcF90bHNfd3JhcCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWE1MjdiNzU2YWQ2NjczYTE5Y2M3ODI4NzAyNmM3NjVjIj5hbHRjcF90bHMuaDwvYT48L2xpPgogPGxpPmFsdGNwX3dyaXRlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYWFkOWEzODM5NmIxMjdjZmQ3NzhlMjUzZjIwYTk3YjhkIj5hbHRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYWFkOWEzODM5NmIxMjdjZmQ3NzhlMjUzZjIwYTk3YjhkIj5hbHRjcC5oPC9hPjwvbGk+Ci08bGk+YXV0b2lwX2FycF9yZXBseSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYWNhZjI3OTMzMjVjNjBkYzQ1MzFjMjFhM2ZkNTVjMTZlIj5hdXRvaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYWNhZjI3OTMzMjVjNjBkYzQ1MzFjMjFhM2ZkNTVjMTZlIj5hdXRvaXAuaDwvYT48L2xpPgotPGxpPmF1dG9pcF9uZXR3b3JrX2NoYW5nZWQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84Yy5odG1sI2ExMWRmN2EyMGQ1MjY4MGNkOGMxYzE4ZmJhMmI5MWU5ZSI+YXV0b2lwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84aC5odG1sI2ExMWRmN2EyMGQ1MjY4MGNkOGMxYzE4ZmJhMmI5MWU5ZSI+YXV0b2lwLmg8L2E+PC9saT4KKzxsaT5hdXRvaXBfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93bigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYWY5MzU0NGM0OWYyYzI0Yjk1YTM5ODEzNTFkMDIzMDU2Ij5hdXRvaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYWY5MzU0NGM0OWYyYzI0Yjk1YTM5ODEzNTFkMDIzMDU2Ij5hdXRvaXAuaDwvYT48L2xpPgorPGxpPmF1dG9pcF9uZXR3b3JrX2NoYW5nZWRfbGlua191cCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYWYyYTM2YWVlOTZjYmRmOGY0YThmMWU2OWM5MWZmNDI1Ij5hdXRvaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYWYyYTM2YWVlOTZjYmRmOGY0YThmMWU2OWM5MWZmNDI1Ij5hdXRvaXAuaDwvYT48L2xpPgorPGxpPmF1dG9pcF9yZW1vdmVfc3RydWN0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2FjMGM5ODAzNTc5NTUwMGVkZTQ2NGFhNGFmMjUxNWYzMCI+YXV0b2lwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCNnYWMwYzk4MDM1Nzk1NTAwZWRlNDY0YWE0YWYyNTE1ZjMwIj5hdXRvaXAuaDwvYT48L2xpPgogPGxpPmF1dG9pcF9zZXRfc3RydWN0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCI+YXV0b2lwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCNnYTIxMjJjMGIyNTE4YjM3MTU1OWZlZjVlYzFkMmFlZDkwIj5hdXRvaXAuaDwvYT48L2xpPgogPGxpPmF1dG9pcF9zdGFydCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiPmF1dG9pcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2ExNDYxZjU4MjZlYmVmYzA1MGUwZDYzMDEzODE4ZDFlOCI+YXV0b2lwLmg8L2E+PC9saT4KIDxsaT5hdXRvaXBfc3RvcCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhNThhNGRjZTY1OGRkMTI2M2U4NGViOTgyZjYyNTg3ZDQiPmF1dG9pcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCI+YXV0b2lwLmg8L2E+PC9saT4KLTxsaT5hdXRvaXBfc3VwcGxpZWRfYWRkcmVzcygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ij5hdXRvaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYTFiNGYwYzUzZGExNzM5NWQ5ZGU5MmE4NTcwOGExYmI5Ij5hdXRvaXAuaDwvYT48L2xpPgotPGxpPmF1dG9pcF90bXIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84Yy5odG1sI2E3NDZmYzFkN2RiMWJmMTYxN2FmYWUxNjZjOWQ5MmMyZCI+YXV0b2lwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84aC5odG1sI2E3NDZmYzFkN2RiMWJmMTYxN2FmYWUxNjZjOWQ5MmMyZCI+YXV0b2lwLmg8L2E+PC9saT4KKzxsaT5hdXRvaXBfc3VwcGxpZWRfYWRkcmVzcygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIj5hdXRvaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhoLmh0bWwjYTZkZTk3YjdkY2Q5OGY5MDM5ZDVjMWFkMTFjMjU3ZDYyIj5hdXRvaXAuaDwvYT48L2xpPgogPC91bD4KIDwvZGl2PjwhLS0gY29udGVudHMgLS0+CiA8L2Rpdj48IS0tIGRvYy1jb250ZW50IC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jLmpzCmluZGV4IGFkY2I3ODUuLjdjMmUyYzIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuYy5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmMuanMKQEAgLTQsNiArNCw3IEBACiAgICAgWyAiYiIsICJnbG9iYWxzX2Z1bmNfYi5odG1sIiwgbnVsbCBdLAogICAgIFsgImQiLCAiZ2xvYmFsc19mdW5jX2QuaHRtbCIsIG51bGwgXSwKICAgICBbICJlIiwgImdsb2JhbHNfZnVuY19lLmh0bWwiLCBudWxsIF0sCisgICAgWyAiZyIsICJnbG9iYWxzX2Z1bmNfZy5odG1sIiwgbnVsbCBdLAogICAgIFsgImgiLCAiZ2xvYmFsc19mdW5jX2guaHRtbCIsIG51bGwgXSwKICAgICBbICJpIiwgImdsb2JhbHNfZnVuY19pLmh0bWwiLCBudWxsIF0sCiAgICAgWyAibCIsICJnbG9iYWxzX2Z1bmNfbC5odG1sIiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX2IuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19iLmh0bWwKaW5kZXggNjk5YTIzMi4uMjkyNjA1MyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX2IuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfYi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMCw3ICsxMDAsNyBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBmdW5jdGlvbnMgd2l0aCBsaW5rcyB0byB0aGUgZG9jdW1lbnRhdGlvbjo8L2Rpdj4KIAogPGgzPjxhIGlkPSJpbmRleF9iIiBuYW1lPSJpbmRleF9iIj48L2E+LSBiIC08L2gzPjx1bD4KLTxsaT5ibGVfYWRkcl90b19ldWk2NCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhYTViMTgyM2MyNTA5Yjg4MTZlZjk4ZGNhYzY3ZTAzN2MiPmxvd3BhbjZfYmxlLmg8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYWE1YjE4MjNjMjUwOWI4ODE2ZWY5OGRjYWM2N2UwMzdjIj5sb3dwYW42X2JsZS5jPC9hPjwvbGk+Cis8bGk+YmxlX2FkZHJfdG9fZXVpNjQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTQ5ZTNhMWZjZWRkOTM3MTAyM2M3NzZmMGMzYmIzZjBmIj5sb3dwYW42X2JsZS5oPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2E0OWUzYTFmY2VkZDkzNzEwMjNjNzc2ZjBjM2JiM2YwZiI+bG93cGFuNl9ibGUuYzwvYT48L2xpPgogPGxpPmJyaWRnZWlmX2FkZF9wb3J0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYnJpZGdlaWYuaHRtbCNnYTUxYjdkMWFmMjJmNzAyM2FhYmQ4NTAyYWFkZjc3Yzc3Ij5icmlkZ2VpZi5oPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYnJpZGdlaWYuaHRtbCNnYTUxYjdkMWFmMjJmNzAyM2FhYmQ4NTAyYWFkZjc3Yzc3Ij5icmlkZ2VpZi5jPC9hPjwvbGk+CiA8bGk+YnJpZGdlaWZfZmRiX2FkZCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2JyaWRnZWlmLmh0bWwjZ2FkMjBmZWEyNjU3NDMxZDRhMDkwNWJlODBjYjBiNDY2NiI+YnJpZGdlaWYuaDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2JyaWRnZWlmLmh0bWwjZ2FkMjBmZWEyNjU3NDMxZDRhMDkwNWJlODBjYjBiNDY2NiI+YnJpZGdlaWYuYzwvYT48L2xpPgogPGxpPmJyaWRnZWlmX2ZkYl9nZXRfZHN0X3BvcnRzKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYnJpZGdlaWZfX2ZkYi5odG1sI2dhNjE2ZmI3NDA0YmU1ZGE3OWQ4MDkyYjRhMTQ5NzY3NTAiPmJyaWRnZWlmLmg8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19icmlkZ2VpZl9fZmRiLmh0bWwjZ2E2MTZmYjc0MDRiZTVkYTc5ZDgwOTJiNGExNDk3Njc1MCI+YnJpZGdlaWZfZmRiLmM8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19kLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfZC5odG1sCmluZGV4IGQxYzE4ODcuLmIzNTBjYjYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19kLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX2QuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDcsMTIgKzEwNywxMSBAQAogPGxpPmRoY3A2X25kNl9yYV90cmlnZ2VyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwNl84Yy5odG1sI2FmMGY0N2FhYzNjMDRjODRhNzE0M2ZhNjkyNWU5ZmRiYSI+ZGhjcDYuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcDZfOGguaHRtbCNhZjBmNDdhYWMzYzA0Yzg0YTcxNDNmYTY5MjVlOWZkYmEiPmRoY3A2Lmg8L2E+PC9saT4KIDxsaT5kaGNwNl9zZXRfc3RydWN0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDYuaHRtbCNnYTVjZGY0MDgyYzhhNGVlNmJmMGNiODc0YzBlYWE4NDUzIj5kaGNwNi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDYuaHRtbCNnYTVjZGY0MDgyYzhhNGVlNmJmMGNiODc0YzBlYWE4NDUzIj5kaGNwNi5oPC9hPjwvbGk+CiA8bGk+ZGhjcDZfdG1yKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwNl84Yy5odG1sI2E1Mjg5MDI3Y2IyYjE2NmQwOGJjNTViN2VkMmQ0NzU2ZCI+ZGhjcDYuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcDZfOGguaHRtbCNhNTI4OTAyN2NiMmIxNjZkMDhiYzU1YjdlZDJkNDc1NmQiPmRoY3A2Lmg8L2E+PC9saT4KLTxsaT5kaGNwX2FycF9yZXBseSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sI2ExZmMwYTk0ZTBiOTRmMTNjNWQzMDIwMThmN2VjYjUzNSI+ZGhjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhoLmh0bWwjYTFmYzBhOTRlMGI5NGYxM2M1ZDMwMjAxOGY3ZWNiNTM1Ij5kaGNwLmg8L2E+PC9saT4KIDxsaT5kaGNwX2NsZWFudXAoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhMjkyYTFiMGMwYzI4OGVjNTA4MTA4YTNmYmE0NzNlNjQiPmRoY3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2EyOTJhMWIwYzBjMjg4ZWM1MDgxMDhhM2ZiYTQ3M2U2NCI+ZGhjcC5oPC9hPjwvbGk+CiA8bGk+ZGhjcF9jb2Fyc2VfdG1yKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhjLmh0bWwjYWQ3NDgwODgzZDY0ZjNkNmYwODNjOGFhOTMzYjVlM2NiIj5kaGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGguaHRtbCNhZDc0ODA4ODNkNjRmM2Q2ZjA4M2M4YWE5MzNiNWUzY2IiPmRoY3AuaDwvYT48L2xpPgogPGxpPmRoY3BfZmluZV90bXIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGMuaHRtbCNhNjAxZDk3ZmFhMjRmYTcyODkyNDRiYjQ1MmYwNTIwNDUiPmRoY3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84aC5odG1sI2E2MDFkOTdmYWEyNGZhNzI4OTI0NGJiNDUyZjA1MjA0NSI+ZGhjcC5oPC9hPjwvbGk+CiA8bGk+ZGhjcF9pbmZvcm0oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhYmQ3ZmNjN2UwNzk5ZTMxMzg4NWZjN2ZkOWQ0OTkyYWQiPmRoY3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2FiZDdmY2M3ZTA3OTllMzEzODg1ZmM3ZmQ5ZDQ5OTJhZCI+ZGhjcC5oPC9hPjwvbGk+Ci08bGk+ZGhjcF9uZXR3b3JrX2NoYW5nZWQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGMuaHRtbCNhMDRmMzgyNDcyMDIyM2M0MzkxNjUyNDM1Mjc5MDYwMDIiPmRoY3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84aC5odG1sI2EwNGYzODI0NzIwMjIzYzQzOTE2NTI0MzUyNzkwNjAwMiI+ZGhjcC5oPC9hPjwvbGk+Cis8bGk+ZGhjcF9uZXR3b3JrX2NoYW5nZWRfbGlua191cCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGhjcF84Yy5odG1sI2EyZmQzMzcyMjg1OTA1NGVhOTMyZmYwNWZmNjJkZWRhYSI+ZGhjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhoLmh0bWwjYTJmZDMzNzIyODU5MDU0ZWE5MzJmZjA1ZmY2MmRlZGFhIj5kaGNwLmg8L2E+PC9saT4KIDxsaT5kaGNwX3JlbGVhc2UoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhZjkyZjdhZmI1ODI1MmY4MmE3NDkwNjQ2MDI5NzRiZDQiPmRoY3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2FmOTJmN2FmYjU4MjUyZjgyYTc0OTA2NDYwMjk3NGJkNCI+ZGhjcC5oPC9hPjwvbGk+CiA8bGk+ZGhjcF9yZWxlYXNlX2FuZF9zdG9wKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYWY3Y2Q0MmI5ZjIyMDQ0NmI2YTU5N2QzNDc0ZGE2ZWNlIj5kaGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhZjdjZDQyYjlmMjIwNDQ2YjZhNTk3ZDM0NzRkYTZlY2UiPmRoY3AuaDwvYT48L2xpPgogPGxpPmRoY3BfcmVuZXcoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhNTgzZWI4ZDU4ZjVlOTZiN2RlYTcxNzk0ODU3OGE5NDciPmRoY3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2E1ODNlYjhkNThmNWU5NmI3ZGVhNzE3OTQ4NTc4YTk0NyI+ZGhjcC5oPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfZS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX2UuaHRtbAppbmRleCA1ZTAzYzZhLi4zMDY5YmYxIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfZS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19lLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTAwLDYgKzEwMCw4IEBACiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPkhlcmUgaXMgYSBsaXN0IG9mIGFsbCBkb2N1bWVudGVkIGZ1bmN0aW9ucyB3aXRoIGxpbmtzIHRvIHRoZSBkb2N1bWVudGF0aW9uOjwvZGl2PgogCiA8aDM+PGEgaWQ9ImluZGV4X2UiIG5hbWU9ImluZGV4X2UiPjwvYT4tIGUgLTwvaDM+PHVsPgorPGxpPmV0aGFycF9hY2RfYW5ub3VuY2UoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImV0aGFycF84Yy5odG1sI2E3YzQxYmE4YjE0NWZhNGQwNmY4ZDZhZjNkZjQ0YzRmZiI+ZXRoYXJwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imx3aXBfMmV0aGFycF84aC5odG1sI2E3YzQxYmE4YjE0NWZhNGQwNmY4ZDZhZjNkZjQ0YzRmZiI+ZXRoYXJwLmg8L2E+PC9saT4KKzxsaT5ldGhhcnBfYWNkX3Byb2JlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJldGhhcnBfOGMuaHRtbCNhYWM3ZDUwNDhhODFlZjFjNjNiMThkNzY5NzAwZjQ4OTkiPmV0aGFycC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCNhYWM3ZDUwNDhhODFlZjFjNjNiMThkNzY5NzAwZjQ4OTkiPmV0aGFycC5oPC9hPjwvbGk+CiA8bGk+ZXRoYXJwX2NsZWFudXBfbmV0aWYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImV0aGFycF84Yy5odG1sI2FlOTQ2NzdhMmE1ZjM2OTgyNzYwMjdjNzQ3NWY2Y2EwNSI+ZXRoYXJwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imx3aXBfMmV0aGFycF84aC5odG1sI2FlOTQ2NzdhMmE1ZjM2OTgyNzYwMjdjNzQ3NWY2Y2EwNSI+ZXRoYXJwLmg8L2E+PC9saT4KIDxsaT5ldGhhcnBfZmluZF9hZGRyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJldGhhcnBfOGMuaHRtbCNhMGY4Y2E4N2M1NDcyZmExNjU3NjNjOGMzOGI3NjE3NGMiPmV0aGFycC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJsd2lwXzJldGhhcnBfOGguaHRtbCNhMGY4Y2E4N2M1NDcyZmExNjU3NjNjOGMzOGI3NjE3NGMiPmV0aGFycC5oPC9hPjwvbGk+CiA8bGk+ZXRoYXJwX2dldF9lbnRyeSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZXRoYXJwXzhjLmh0bWwjYWI5M2RmN2NjYjI2NDk2MTAwZDQ1MTM3NTQxZTg2M2M4Ij5ldGhhcnAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcF8yZXRoYXJwXzhoLmh0bWwjYWI5M2RmN2NjYjI2NDk2MTAwZDQ1MTM3NTQxZTg2M2M4Ij5ldGhhcnAuaDwvYT48L2xpPgpAQCAtMTExLDcgKzExMyw3IEBACiA8bGk+ZXRoZXJuZXRfaW5wdXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19ub3N5cy5odG1sI2dhNmExMGM1OGI4MmM1NmQwMmM0OGIzY2ZhMmMyNDk0ZmYiPmV0aGVybmV0Lmg8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19ub3N5cy5odG1sI2dhNmExMGM1OGI4MmM1NmQwMmM0OGIzY2ZhMmMyNDk0ZmYiPmV0aGVybmV0LmM8L2E+PC9saT4KIDxsaT5ldGhlcm5ldF9vdXRwdXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19ldGhlcm5ldC5odG1sI2dhYzljYWQ1ODAyYmZhM2Q4ODVmMTNkMmJhMGY0MGI3NzgiPmV0aGVybmV0Lmg8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19ldGhlcm5ldC5odG1sI2dhYzljYWQ1ODAyYmZhM2Q4ODVmMTNkMmJhMGY0MGI3NzgiPmV0aGVybmV0LmM8L2E+PC9saT4KIDxsaT5ldGhpcDZfb3V0cHV0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJldGhpcDZfOGMuaHRtbCNhYjUzMjY1NDZkMzMxNzRmOTFmMWZiMGNjNmQzOThiZmQiPmV0aGlwNi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJldGhpcDZfOGguaHRtbCNhYjUzMjY1NDZkMzMxNzRmOTFmMWZiMGNjNmQzOThiZmQiPmV0aGlwNi5oPC9hPjwvbGk+Ci08bGk+ZXVpNjRfdG9fYmxlX2FkZHIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTNlMjQ1YTg1ZjllZGRkY2E5M2RkZDI5NjcyMDk4ODFkIj5sb3dwYW42X2JsZS5oPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2EzZTI0NWE4NWY5ZWRkZGNhOTNkZGQyOTY3MjA5ODgxZCI+bG93cGFuNl9ibGUuYzwvYT48L2xpPgorPGxpPmV1aTY0X3RvX2JsZV9hZGRyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCI+bG93cGFuNl9ibGUuaDwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhNTdkMzNmNjAyNGU0MTllOGNiYzMyZGZiNzgzZTM5YTQiPmxvd3BhbjZfYmxlLmM8L2E+PC9saT4KIDwvdWw+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19nLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5MGU1ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfZy5odG1sCkBAIC0wLDAgKzEsMTE0IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9ImVuLVVTIj4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L3hodG1sO2NoYXJzZXQ9VVRGLTgiLz4KKzxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9MTEiLz4KKzxtZXRhIG5hbWU9ImdlbmVyYXRvciIgY29udGVudD0iRG94eWdlbiAxLjEyLjAiLz4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSIvPgorPHRpdGxlPmx3SVA6IEdsb2JhbHM8L3RpdGxlPgorPGxpbmsgaHJlZj0idGFicy5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpxdWVyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkeW5zZWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJjbGlwYm9hcmQuanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0ibmF2dHJlZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5hdnRyZWVkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5hdnRyZWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzaXplLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImNvb2tpZS5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJzZWFyY2gvc2VhcmNoLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VhcmNoL3NlYXJjaGRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VhcmNoL3NlYXJjaC5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJkb3h5Z2VuLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0idG9wIj48IS0tIGRvIG5vdCByZW1vdmUgdGhpcyBkaXYsIGl0IGlzIGNsb3NlZCBieSBkb3h5Z2VuISAtLT4KKzxkaXYgaWQ9InRpdGxlYXJlYSI+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KKyA8dGJvZHk+CisgPHRyIGlkPSJwcm9qZWN0cm93Ij4KKyAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CisgICA8L2Rpdj4KKyAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KKyAgPC90ZD4KKyA8L3RyPgorIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9kaXY+Cis8IS0tIGVuZCBoZWFkZXIgcGFydCAtLT4KKzwhLS0gR2VuZXJhdGVkIGJ5IERveHlnZW4gMS4xMi4wIC0tPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCit2YXIgc2VhcmNoQm94ID0gbmV3IFNlYXJjaEJveCgic2VhcmNoQm94IiwgInNlYXJjaC8iLCcuaHRtbCcpOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpIHsgY29kZWZvbGQuaW5pdCgwKTsgfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVudWRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVudS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKSB7CisgIGluaXRNZW51KCcnLHRydWUsZmFsc2UsJ3NlYXJjaC5waHAnLCdTZWFyY2gnLHRydWUpOworICAkKGZ1bmN0aW9uKCkgeyBpbml0X3NlYXJjaCgpOyB9KTsKK30pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9Im1haW4tbmF2Ij48L2Rpdj4KKzwvZGl2PjwhLS0gdG9wIC0tPgorPGRpdiBpZD0ic2lkZS1uYXYiIGNsYXNzPSJ1aS1yZXNpemFibGUgc2lkZS1uYXYtcmVzaXphYmxlIj4KKyAgPGRpdiBpZD0ibmF2LXRyZWUiPgorICAgIDxkaXYgaWQ9Im5hdi10cmVlLWNvbnRlbnRzIj4KKyAgICAgIDxkaXYgaWQ9Im5hdi1zeW5jIiBjbGFzcz0ic3luYyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGlkPSJzcGxpdGJhciIgc3R5bGU9Ii1tb3otdXNlci1zZWxlY3Q6bm9uZTsiIAorICAgICAgIGNsYXNzPSJ1aS1yZXNpemFibGUtaGFuZGxlIj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpe2luaXROYXZUcmVlKCdnbG9iYWxzX2Z1bmNfZy5odG1sJywnJyk7IGluaXRSZXNpemFibGUodHJ1ZSk7IH0pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9ImRvYy1jb250ZW50Ij4KKzwhLS0gd2luZG93IHNob3dpbmcgdGhlIGZpbHRlciBvcHRpb25zIC0tPgorPGRpdiBpZD0iTVNlYXJjaFNlbGVjdFdpbmRvdyIKKyAgICAgb25tb3VzZW92ZXI9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RTaG93KCkiCisgICAgIG9ubW91c2VvdXQ9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RIaWRlKCkiCisgICAgIG9ua2V5ZG93bj0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdEtleShldmVudCkiPgorPC9kaXY+CisKKzwhLS0gaWZyYW1lIHNob3dpbmcgdGhlIHNlYXJjaCByZXN1bHRzIChjbG9zZWQgYnkgZGVmYXVsdCkgLS0+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0c1dpbmRvdyI+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0cyI+Cis8ZGl2IGNsYXNzPSJTUlBhZ2UiPgorPGRpdiBpZD0iU1JJbmRleCI+Cis8ZGl2IGlkPSJTUlJlc3VsdHMiPjwvZGl2PgorPGRpdiBjbGFzcz0iU1JTdGF0dXMiIGlkPSJMb2FkaW5nIj5Mb2FkaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9IlNlYXJjaGluZyI+U2VhcmNoaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9Ik5vTWF0Y2hlcyI+Tm8gTWF0Y2hlczwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImNvbnRlbnRzIj4KKzxkaXYgY2xhc3M9InRleHRibG9jayI+SGVyZSBpcyBhIGxpc3Qgb2YgYWxsIGRvY3VtZW50ZWQgZnVuY3Rpb25zIHdpdGggbGlua3MgdG8gdGhlIGRvY3VtZW50YXRpb246PC9kaXY+CisKKzxoMz48YSBpZD0iaW5kZXhfZyIgbmFtZT0iaW5kZXhfZyI+PC9hPi0gZyAtPC9oMz48dWw+Cis8bGk+Z2V0X21kbnNfcGNiKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhjLmh0bWwjYWEzMWI3OThhNWZiOTZiNmVmMGRkZTVkNGYzMjM3MWFmIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX3ByaXZfOGguaHRtbCNhYTMxYjc5OGE1ZmI5NmI2ZWYwZGRlNWQ0ZjMyMzcxYWYiPm1kbnNfcHJpdi5oPC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KKzwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+Cis8IS0tIHN0YXJ0IGZvb3RlciBwYXJ0IC0tPgorPGRpdiBpZD0ibmF2LXBhdGgiIGNsYXNzPSJuYXZwYXRoIj48IS0tIGlkIGlzIG5lZWRlZCBmb3IgdHJlZXZpZXcgZnVuY3Rpb24hIC0tPgorICA8dWw+CisgICAgPGxpIGNsYXNzPSJmb290ZXIiPkdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5kb3h5Z2VuLm9yZy9pbmRleC5odG1sIj48aW1nIGNsYXNzPSJmb290ZXIiIHNyYz0iZG94eWdlbi5zdmciIHdpZHRoPSIxMDQiIGhlaWdodD0iMzEiIGFsdD0iZG94eWdlbiIvPjwvYT4gMS4xMi4wIDwvbGk+CisgIDwvdWw+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19oLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfaC5odG1sCmluZGV4IDI0Njc3OGMuLmQzOTU5MzcgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19oLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX2guaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfaS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX2kuaHRtbAppbmRleCBlYzc1MDk5Li45Zjg3MTc1IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfaS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19pLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX2wuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19sLmh0bWwKaW5kZXggZjQ2NWJjMS4uNTE4YzdjYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX2wuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfbC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTE0MCw2ICsxNDAsNyBAQAogPGxpPmx3aXBfc29ja2V0X3RocmVhZF9pbml0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzb2NrZXRzXzhjLmh0bWwjYTBhMjUwYjNiNGQxODI3ZTNhMzY2MTMyN2Y1ZTgwYWUwIj5zb2NrZXRzLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InNvY2tldHNfOGguaHRtbCNhMGEyNTBiM2I0ZDE4MjdlM2EzNjYxMzI3ZjVlODBhZTAiPnNvY2tldHMuaDwvYT48L2xpPgogPGxpPmx3aXBfc3RyaWNtcCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYTI2M2NiYWZjYjY5N2VmZjk2NDEzOWE5OTk4YTY2NjhhIj5kZWYuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYTI2M2NiYWZjYjY5N2VmZjk2NDEzOWE5OTk4YTY2NjhhIj5kZWYuaDwvYT48L2xpPgogPGxpPmx3aXBfc3RybmljbXAoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2E5OTdkY2M0OTQ1MTEyMWQ0ZWQ3NTViMzNiYzdiZDI2YSI+ZGVmLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2E5OTdkY2M0OTQ1MTEyMWQ0ZWQ3NTViMzNiYzdiZDI2YSI+ZGVmLmg8L2E+PC9saT4KKzxsaT5sd2lwX3N0cm5pc3RyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiPmRlZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiPmRlZi5oPC9hPjwvbGk+CiA8bGk+bHdpcF9zdHJuc3RyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYTJiYTRiNGUyZGQ3ZTFjODU2ZmVkYzZhNjA2OTgxM2UiPmRlZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYTJiYTRiNGUyZGQ3ZTFjODU2ZmVkYzZhNjA2OTgxM2UiPmRlZi5oPC9hPjwvbGk+CiA8bGk+bHdpcGVyZl9hYm9ydCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwZXJmLmh0bWwjZ2FjNTFjOWM0NGEzOGJmYTExNDBiZDQ0Yjc5M2EwYTAwNCI+bHdpcGVyZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBlcmYuaHRtbCNnYWM1MWM5YzQ0YTM4YmZhMTE0MGJkNDRiNzkzYTBhMDA0Ij5sd2lwZXJmLmg8L2E+PC9saT4KIDxsaT5sd2lwZXJmX3N0YXJ0X3RjcF9jbGllbnQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGVyZi5odG1sI2dhMTA4ODcyMmQ5NjdmMGY0NjVkNDVmZDNiMTVkZGU0NDUiPmx3aXBlcmYuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwZXJmLmh0bWwjZ2ExMDg4NzIyZDk2N2YwZjQ2NWQ0NWZkM2IxNWRkZTQ0NSI+bHdpcGVyZi5oPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfbS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX20uaHRtbAppbmRleCAzYjE1NzhiLi45NWVlMzkxIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfbS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19tLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTAwLDIxICsxMDAsNTMgQEAKIDxkaXYgY2xhc3M9InRleHRibG9jayI+SGVyZSBpcyBhIGxpc3Qgb2YgYWxsIGRvY3VtZW50ZWQgZnVuY3Rpb25zIHdpdGggbGlua3MgdG8gdGhlIGRvY3VtZW50YXRpb246PC9kaXY+CiAKIDxoMz48YSBpZD0iaW5kZXhfbSIgbmFtZT0iaW5kZXhfbSI+PC9hPi0gbSAtPC9oMz48dWw+Ci08bGk+bWRuc19jb21wcmVzc19kb21haW4oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGMuaHRtbCNhYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fcHJpdl84aC5odG1sI2FiNzJlNDhjZjA3NmFmZDFlM2EwODAzMGQxZDBiZmY5ZSI+bWRuc19wcml2Lmg8L2E+PC9saT4KLTxsaT5tZG5zX2RvbWFpbl9hZGRfbGFiZWwoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGMuaHRtbCNhMTdkYjY5ZmE4ODc1MTUzNzQ0NTJiOTQ1ZTk1OWJiZjkiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fcHJpdl84aC5odG1sI2ExN2RiNjlmYTg4NzUxNTM3NDQ1MmI5NDVlOTU5YmJmOSI+bWRuc19wcml2Lmg8L2E+PC9saT4KLTxsaT5tZG5zX2RvbWFpbl9lcSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184Yy5odG1sI2E1MmQ4ZjcwNDMyYWU5OTg4MTRmMTZiMTg0MzEyMTNjZCI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwjYTUyZDhmNzA0MzJhZTk5ODgxNGYxNmIxODQzMTIxM2NkIj5tZG5zX3ByaXYuaDwvYT48L2xpPgotPGxpPm1kbnNfcmVhZG5hbWUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGMuaHRtbCNhYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fcHJpdl84aC5odG1sI2FiNWY0OWQ5MzU2YTc2ODc5ZTBlNmExNGViMDY0M2IyMyI+bWRuc19wcml2Lmg8L2E+PC9saT4KLTxsaT5tZG5zX3Jlc3BfYWRkX25ldGlmKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYTYxOWFjOGY0NmE0YjQwMjExOTU3MjBmMDM1NWNiZWIiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWE2MTlhYzhmNDZhNGI0MDIxMTk1NzIwZjAzNTVjYmViIj5tZG5zLmg8L2E+PC9saT4KLTxsaT5tZG5zX3Jlc3BfYWRkX3NlcnZpY2UoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhODI0ZTk5MmU5NGJlMjE2YzhlMDU5ZjQ4ZjQ5YTU5Y2UiPm1kbnMuaDwvYT48L2xpPgorPGxpPm1kbnNfYnVpbGRfZG5zc2RfZG9tYWluKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGMuaHRtbCNhNzQ4NWQ3NTk3NmI3MzM1NDY2OGE1YTU0YmM4NjU4ZWQiPm1kbnNfZG9tYWluLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sI2E3NDg1ZDc1OTc2YjczMzU0NjY4YTVhNTRiYzg2NThlZCI+bWRuc19kb21haW4uaDwvYT48L2xpPgorPGxpPm1kbnNfYnVpbGRfaG9zdF9kb21haW4oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2ExOTFkOWI3MGE2NjA4M2Y0MGFhYTAyMmMyZWQ4OGIxMiI+bWRuc19kb21haW4uYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYTE5MWQ5YjcwYTY2MDgzZjQwYWFhMDIyYzJlZDg4YjEyIj5tZG5zX2RvbWFpbi5oPC9hPjwvbGk+Cis8bGk+bWRuc19idWlsZF9yZXF1ZXN0X2RvbWFpbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTcyMjFjYjFhODNlZDZkY2ZiM2EyYjEzNjUxNTRiNDNkIj5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhNzIyMWNiMWE4M2VkNmRjZmIzYTJiMTM2NTE1NGI0M2QiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2J1aWxkX3JldmVyc2VfdjRfZG9tYWluKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGMuaHRtbCNhYzJkODk1MWUyNDM1ZjkzZmRjODg5ZjZhNzFlMGM4YTYiPm1kbnNfZG9tYWluLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sI2FjMmQ4OTUxZTI0MzVmOTNmZGM4ODlmNmE3MWUwYzhhNiI+bWRuc19kb21haW4uaDwvYT48L2xpPgorPGxpPm1kbnNfYnVpbGRfcmV2ZXJzZV92Nl9kb21haW4oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2E5Y2RlMzkwMzllMGUxZTIxYjQ4NTFkODQwZDczMzkyNiI+bWRuc19kb21haW4uYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYTljZGUzOTAzOWUwZTFlMjFiNDg1MWQ4NDBkNzMzOTI2Ij5tZG5zX2RvbWFpbi5oPC9hPjwvbGk+Cis8bGk+bWRuc19idWlsZF9zZXJ2aWNlX2RvbWFpbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTI5ZGRiMGE2YmEwZWRjZjM0MTA0ZWMxZjYzMjI5NjhiIj5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhMjlkZGIwYTZiYTBlZGNmMzQxMDRlYzFmNjMyMjk2OGIiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2NvbXByZXNzX2RvbWFpbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYWI3MmU0OGNmMDc2YWZkMWUzYTA4MDMwZDFkMGJmZjllIj5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2NyZWF0ZV9vdXRwYWNrZXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2E1YTA1MWViODFkNmJkMzczNjU5NzNkMTIxNWFmMjNiYSI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTVhMDUxZWI4MWQ2YmQzNzM2NTk3M2QxMjE1YWYyM2JhIj5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19kb21haW5fYWRkX2RvbWFpbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTY0MjQ0OWNiZjAwNzRmMWEyNTA0ZTcyMTU4ZTc1ODU5Ij5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhNjQyNDQ5Y2JmMDA3NGYxYTI1MDRlNzIxNThlNzU4NTkiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2RvbWFpbl9hZGRfbGFiZWwoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2ExN2RiNjlmYTg4NzUxNTM3NDQ1MmI5NDVlOTU5YmJmOSI+bWRuc19kb21haW4uYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ij5tZG5zX2RvbWFpbi5oPC9hPjwvbGk+Cis8bGk+bWRuc19kb21haW5fYWRkX3N0cmluZygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYWYyMjhkMWNmOGQ3NzljNzE0YTAxNjcwMmRiMDk1ZGI2Ij5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhZjIyOGQxY2Y4ZDc3OWM3MTRhMDE2NzAyZGIwOTVkYjYiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2RvbWFpbl9kZWJ1Z19wcmludCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTBhZmYwOTY2OTVlZWJhY2IyNjY4ZDI3NjI3MjI4NjBjIj5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhMGFmZjA5NjY5NWVlYmFjYjI2NjhkMjc2MjcyMjg2MGMiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2RvbWFpbl9lcSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTUyZDhmNzA0MzJhZTk5ODgxNGYxNmIxODQzMTIxM2NkIj5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhNTJkOGY3MDQzMmFlOTk4ODE0ZjE2YjE4NDMxMjEzY2QiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2dldF9zZXJ2aWNlX3R4dF91c2VyZGF0YSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWVlNWI0ODliNzdiNzQ1MTE1MTdkNDFmNzYwOWNjZDQ5Ij5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FlZTViNDg5Yjc3Yjc0NTExNTE3ZDQxZjc2MDljY2Q0OSI+bWRucy5oPC9hPjwvbGk+Cis8bGk+bWRuc19tdWx0aWNhc3RfcHJvYmVfdGltZW91dF9yZXNldF9pcHY0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhZGQ2NGM4M2Y3NTM4NDJmMmNlYjQwMDc5MjE3YzY2YTEiPm1kbnNfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2FkZDY0YzgzZjc1Mzg0MmYyY2ViNDAwNzkyMTdjNjZhMSI+bWRuc19vdXQuaDwvYT48L2xpPgorPGxpPm1kbnNfbXVsdGljYXN0X3Byb2JlX3RpbWVvdXRfcmVzZXRfaXB2NigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTRlMGFhNmY2ZTNiYTkwYzg4ZTFiZjFiODNkMDVjZDJmIj5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhNGUwYWE2ZjZlM2JhOTBjODhlMWJmMWI4M2QwNWNkMmYiPm1kbnNfb3V0Lmg8L2E+PC9saT4KKzxsaT5tZG5zX211bHRpY2FzdF90aW1lb3V0XzI1dHRsX3Jlc2V0X2lwdjQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2FlNGEwYWU2YTAzOTIxMGY2MGY2NjY5OTlmOWI4MDdmNyI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYWU0YTBhZTZhMDM5MjEwZjYwZjY2Njk5OWY5YjgwN2Y3Ij5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19tdWx0aWNhc3RfdGltZW91dF8yNXR0bF9yZXNldF9pcHY2KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhNWRlNzQxZmQ4NWMzNjc1ZTNkMjE2MTcyN2RkOWEyMjAiPm1kbnNfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2E1ZGU3NDFmZDg1YzM2NzVlM2QyMTYxNzI3ZGQ5YTIyMCI+bWRuc19vdXQuaDwvYT48L2xpPgorPGxpPm1kbnNfbXVsdGljYXN0X3RpbWVvdXRfcmVzZXRfaXB2NCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTdiNjM3YjZmNDE5NzZmMzVmN2I0OGU3ZjI5MDQ4MjliIj5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhN2I2MzdiNmY0MTk3NmYzNWY3YjQ4ZTdmMjkwNDgyOWIiPm1kbnNfb3V0Lmg8L2E+PC9saT4KKzxsaT5tZG5zX211bHRpY2FzdF90aW1lb3V0X3Jlc2V0X2lwdjYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2E3OTBlYTBhYmEyZDI1MmY5NmMyMzc0OGVhMGMwMzNhNyI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTc5MGVhMGFiYTJkMjUyZjk2YzIzNzQ4ZWEwYzAzM2E3Ij5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19wcmVwYXJlX3R4dGRhdGEoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2FiOGE4ZTVkNWJhOGNmYmIxOGU3ZmYyNTg4NzkyY2U1ZiI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYWI4YThlNWQ1YmE4Y2ZiYjE4ZTdmZjI1ODg3OTJjZTVmIj5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19yZWFkbmFtZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYWI1ZjQ5ZDkzNTZhNzY4NzllMGU2YTE0ZWIwNjQzYjIzIj5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX3Jlc3BfYWRkX25ldGlmKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTY3Zjg0MmMyN2YzN2MwM2I0OGQxMGU0Y2U2ODU2YjhlIj5tZG5zLmg8L2E+PC9saT4KKzxsaT5tZG5zX3Jlc3BfYWRkX3NlcnZpY2UoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EyMTMwMTExNjYyZDA0NGIzMjk3MGNlOWM3NjNiZDQwOSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMjEzMDExMTY2MmQwNDRiMzI5NzBjZTljNzYzYmQ0MDkiPm1kbnMuaDwvYT48L2xpPgogPGxpPm1kbnNfcmVzcF9hZGRfc2VydmljZV90eHRpdGVtKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMDFjODUyMDJmNGI4NWVkYzhiNTcxZjJmNDE5ZGI1NzYiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTAxYzg1MjAyZjRiODVlZGM4YjU3MWYyZjQxOWRiNTc2Ij5tZG5zLmg8L2E+PC9saT4KIDxsaT5tZG5zX3Jlc3BfYW5ub3VuY2UoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EwZjQ2MmZiOTFhOWQwMzIzYmI0NjM2YmQ3MjVmMGU4NSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMGY0NjJmYjkxYTlkMDMyM2JiNDYzNmJkNzI1ZjBlODUiPm1kbnMuaDwvYT48L2xpPgotPGxpPm1kbnNfcmVzcF9kZWxfc2VydmljZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTNkZjJhZTc1MWNkZmRmZmIwYTU2NzM5MDk0MGViOGFkIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EzZGYyYWU3NTFjZGZkZmZiMGE1NjczOTA5NDBlYjhhZCI+bWRucy5oPC9hPjwvbGk+Cis8bGk+bWRuc19yZXNwX2RlbF9zZXJ2aWNlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhNTVmM2ZkNDZjZmUxMzc1NDUyMjEwNjg4ZmMwNWJmOWEiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTU1ZjNmZDQ2Y2ZlMTM3NTQ1MjIxMDY4OGZjMDViZjlhIj5tZG5zLmg8L2E+PC9saT4KIDxsaT5tZG5zX3Jlc3BfaW5pdCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTVmYTE1OTc4YTM5OGRhZTFhOGQ3NjIwYWUxNjliZGQzIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E1ZmExNTk3OGEzOThkYWUxYThkNzYyMGFlMTY5YmRkMyI+bWRucy5oPC9hPjwvbGk+Cis8bGk+bWRuc19yZXNwX25ldGlmX2FjdGl2ZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTA5YjdhMjU5ZjQ5NzY0OGQ4ZWY3MzRiMDgwZjk5N2MxIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EwOWI3YTI1OWY0OTc2NDhkOGVmNzM0YjA4MGY5OTdjMSI+bWRucy5oPC9hPjwvbGk+CiA8bGk+bWRuc19yZXNwX3JlZ2lzdGVyX25hbWVfcmVzdWx0X2NiKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhjLmh0bWwjYTAxZjg4NTBiOWMyZDJjZDQwZWQ3N2ExNDM4Yzg1YmYxIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGguaHRtbCNhMDFmODg1MGI5YzJkMmNkNDBlZDc3YTE0MzhjODViZjEiPm1kbnMuaDwvYT48L2xpPgogPGxpPm1kbnNfcmVzcF9yZW1vdmVfbmV0aWYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FhODE0NGUzYzc3YTkyYzQwNDNlNjIxNGZmNmI2MDEwYyI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiPm1kbnMuaDwvYT48L2xpPgogPGxpPm1kbnNfcmVzcF9yZW5hbWVfbmV0aWYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E3YjE0NzNlNTk1ZWIwYzE4NWJhYjI5M2YzZWMyZTUwZSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhN2IxNDczZTU5NWViMGMxODViYWIyOTNmM2VjMmU1MGUiPm1kbnMuaDwvYT48L2xpPgotPGxpPm1kbnNfcmVzcF9yZW5hbWVfc2VydmljZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWYyNzM4OTcwNTlmMWJiZGRjNzRjZmNiODIwNzc3ZGQ5Ij5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSI+bWRucy5oPC9hPjwvbGk+Cis8bGk+bWRuc19yZXNwX3JlbmFtZV9zZXJ2aWNlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYjFlOTg5YTRjNzMwNWQ3NTQzNzdjNzYwNTI0NzRiZWIiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWIxZTk4OWE0YzczMDVkNzU0Mzc3Yzc2MDUyNDc0YmViIj5tZG5zLmg8L2E+PC9saT4KIDxsaT5tZG5zX3Jlc3BfcmVzdGFydCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTkzZWNjZGMwZDlhZmZmMGYyNDE2MGQzMWM3MGUyYzlhIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E5M2VjY2RjMGQ5YWZmZjBmMjQxNjBkMzFjNzBlMmM5YSI+bWRucy5oPC9hPjwvbGk+Cis8bGk+bWRuc19yZXNwX3Jlc3RhcnRfZGVsYXkoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EzNjdhYzg5ZGRhZTZjYmVjM2UwYTljNTVlOWM0NjczNyI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMzY3YWM4OWRkYWU2Y2JlYzNlMGE5YzU1ZTljNDY3MzciPm1kbnMuaDwvYT48L2xpPgorPGxpPm1kbnNfc2VhcmNoX3NlcnZpY2UoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FjMzg4YjJlYWIzNzlhMjNkZDFmNDZmMmFjOGQ2MzcyNSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYzM4OGIyZWFiMzc5YTIzZGQxZjQ2ZjJhYzhkNjM3MjUiPm1kbnMuaDwvYT48L2xpPgorPGxpPm1kbnNfc2VhcmNoX3N0b3AoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EwYzU2MTdiNGQwMjEzNTNiYmQwZmIyNGRkY2I4YjNhYyI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiPm1kbnMuaDwvYT48L2xpPgorPGxpPm1kbnNfc2VuZF9tdWx0aWNhc3RfbXNnX2RlbGF5ZWRfaXB2NCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYWNiZjU5ZGNhOTRmMjQxYzFiNThjN2RmMWVjNGI4NWUxIj5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhY2JmNTlkY2E5NGYyNDFjMWI1OGM3ZGYxZWM0Yjg1ZTEiPm1kbnNfb3V0Lmg8L2E+PC9saT4KKzxsaT5tZG5zX3NlbmRfbXVsdGljYXN0X21zZ19kZWxheWVkX2lwdjYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2FmM2UxMThlYjgwNzYwYTk1ODI2NWY2YTRjNTliMmU0OSI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYWYzZTExOGViODA3NjBhOTU4MjY1ZjZhNGM1OWIyZTQ5Ij5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19zZW5kX291dHBhY2tldCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYWU4YzlkMmJkODlkNmNhN2U4NjY4YmE3MDg5MjVkMmU4Ij5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhZThjOWQyYmQ4OWQ2Y2E3ZTg2NjhiYTcwODkyNWQyZTgiPm1kbnNfb3V0Lmg8L2E+PC9saT4KKzxsaT5tZG5zX3NlbmRfcmVxdWVzdCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTFmN2RjOTUzNmYxMjQyNjM1NzM1MThlNmU4ZTFhMTYyIj5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhMWY3ZGM5NTM2ZjEyNDI2MzU3MzUxOGU2ZThlMWExNjIiPm1kbnNfb3V0Lmg8L2E+PC9saT4KKzxsaT5tZG5zX3NlbmRfdW5pY2FzdF9tc2dfZGVsYXllZF9pcHY0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhMmI3YTcyMWIxOWZhMzM4MTMxMzNiYzk3ZjUwM2MxOTkiPm1kbnNfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2EyYjdhNzIxYjE5ZmEzMzgxMzEzM2JjOTdmNTAzYzE5OSI+bWRuc19vdXQuaDwvYT48L2xpPgorPGxpPm1kbnNfc2VuZF91bmljYXN0X21zZ19kZWxheWVkX2lwdjYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2EyNzEzMzQ4YjFiMzE0ZDVlODgwNDQyZjJjMTMwZTFkYyI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTI3MTMzNDhiMWIzMTRkNWU4ODA0NDJmMmMxMzBlMWRjIj5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19zZXRfdGltZW91dCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTYxOTU4MDhiZTE4NDBkYWE4YTEwMGI1OTU0YTMwY2ZlIj5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhNjE5NTgwOGJlMTg0MGRhYThhMTAwYjU5NTRhMzBjZmUiPm1kbnNfb3V0Lmg8L2E+PC9saT4KKzxsaT5tZG5zX3N0YXJ0X211bHRpY2FzdF90aW1lb3V0c19pcHY0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhMmRkMzVjYjFlMWZhZTg4OGMwNWMyYjdmOGJkNzE3Y2MiPm1kbnNfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2EyZGQzNWNiMWUxZmFlODg4YzA1YzJiN2Y4YmQ3MTdjYyI+bWRuc19vdXQuaDwvYT48L2xpPgorPGxpPm1kbnNfc3RhcnRfbXVsdGljYXN0X3RpbWVvdXRzX2lwdjYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2ExMGY2ZjIyNjQwYWM4MzdhMjMzYmY0MzMzNGRmYjAyYSI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTEwZjZmMjI2NDBhYzgzN2EyMzNiZjQzMzM0ZGZiMDJhIj5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc193cml0ZV9kb21haW4oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2E5MmRlNTRkMmYzODRhNGU0ZmZhODVlNTI5Y2MwNTQxMSI+bWRuc19kb21haW4uYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYTkyZGU1NGQyZjM4NGE0ZTRmZmE4NWU1MjljYzA1NDExIj5tZG5zX2RvbWFpbi5oPC9hPjwvbGk+CiA8bGk+bWVtX2NhbGxvYygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWVtXzhjLmh0bWwjYTA2YjJmYjNhNmY2YTZjNTZhODRmNzY5ZTBiZDRjOGU3Ij5tZW0uYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWVtXzhoLmh0bWwjYTA2YjJmYjNhNmY2YTZjNTZhODRmNzY5ZTBiZDRjOGU3Ij5tZW0uaDwvYT48L2xpPgogPGxpPm1lbV9mcmVlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZW1fOGMuaHRtbCNhNjUxNjkxNDdjNDRlOWRiNjBkOTk3ODE5YWY5YjQ1NWMiPm1lbS5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZW1fOGguaHRtbCNhMmZkN2FhMWFkZjZlMzk0ZDNiZTdjNzczNGU3ZGY0MWEiPm1lbS5oPC9hPjwvbGk+CiA8bGk+bWVtX2ZyZWVfY2FsbGJhY2soKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcGlwXzhjLmh0bWwjYTU1YjRkZTM3NjVjNmEzN2IzZjJiMjZhMTE2MDM3NzFjIj50Y3BpcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BpcF84aC5odG1sI2E1NWI0ZGUzNzY1YzZhMzdiM2YyYjI2YTExNjAzNzcxYyI+dGNwaXAuaDwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX24uaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19uLmh0bWwKaW5kZXggOTYzZTU3MS4uMzNmOTg1NSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX24uaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfbi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTE2Myw2ICsxNjMsNyBAQAogPGxpPm5ldGlmX2lwNl9hZGRyX3NldCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmX19pcDYuaHRtbCNnYWUyMTU3MmZkYmQ4NjY0ZDIyYTFiMjgxYTZjMzFjOWJiIj5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZfX2lwNi5odG1sI2dhZTIxNTcyZmRiZDg2NjRkMjJhMWIyODFhNmMzMWM5YmIiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5uZXRpZl9pcDZfYWRkcl9zZXRfc3RhdGUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZl9faXA2Lmh0bWwjZ2E5Y2RlNzI4NjUzNWM3ZjAzN2E5YjE2MDUyNTYxYjkxZiI+bmV0aWYuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmX19pcDYuaHRtbCNnYTljZGU3Mjg2NTM1YzdmMDM3YTliMTYwNTI1NjFiOTFmIj5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfbG9vcF9vdXRwdXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhNjkxZjFjYzdjOTc3OGZmYTYyYTM4NDNjMTg0NDA0YjIiPm5ldGlmLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhNjkxZjFjYzdjOTc3OGZmYTYyYTM4NDNjMTg0NDA0YjIiPm5ldGlmLmg8L2E+PC9saT4KKzxsaT5uZXRpZl9tZG5zX2RhdGEoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGMuaHRtbCNhZjE1ZmE1YjYzMzFiZWM2MDVmNjhmNTNjYjg3ZjU4ZmEiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fcHJpdl84aC5odG1sI2FmMTVmYTViNjMzMWJlYzYwNWY2OGY1M2NiODdmNThmYSI+bWRuc19wcml2Lmg8L2E+PC9saT4KIDxsaT5uZXRpZl9uYW1lX3RvX2luZGV4KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWM3NjNhMWY2NDdmYjllOGFmNDI1NDQxOGU4MTNhNmFlIj5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWM3NjNhMWY2NDdmYjllOGFmNDI1NDQxOGU4MTNhNmFlIj5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfcG9sbCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfOGMuaHRtbCNhMGZiYWVkNzgyNTNkMjFlMWI1NGU2NTY1MWRhM2UzMjciPm5ldGlmLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhoLmh0bWwjYTBmYmFlZDc4MjUzZDIxZTFiNTRlNjU2NTFkYTNlMzI3Ij5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfcmVtb3ZlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTljNmU1NDFmMGMxODRlMWVhNjFhNWNkOGFmZTNlOTc5Ij5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTljNmU1NDFmMGMxODRlMWVhNjFhNWNkOGFmZTNlOTc5Ij5uZXRpZi5oPC9hPjwvbGk+CkBAIC0xODAsOCArMTgxLDggQEAKIDxsaT5uZXRpZl9zZXRfc3RhdHVzX2NhbGxiYWNrKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWRjODc4N2IyM2FjMGVlMDIzOTc5Y2JhZGY4NzgxM2Q0Ij5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWRjODc4N2IyM2FjMGVlMDIzOTc5Y2JhZGY4NzgxM2Q0Ij5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfc2V0X3VwKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWYxOTY5M2JlNDAxYTI2NWE1MmQyYTU2YzY1NzUzMTIxIj5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWYxOTY5M2JlNDAxYTI2NWE1MmQyYTU2YzY1NzUzMTIxIj5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfdG9fbnVtKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzbm1wX19jb3JlXzhjLmh0bWwjYTg3MWFhNjM2ODA2YzdkNjhjYmUyNDU3MjU5OGU1OWRlIj5zbm1wX2NvcmUuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fY29yZV84aC5odG1sI2E4NzFhYTYzNjgwNmM3ZDY4Y2JlMjQ1NzI1OThlNTlkZSI+c25tcF9jb3JlLmg8L2E+PC9saT4KLTxsaT5uZXRpZmFwaV9hcnBfYWRkKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZmFwaV84Yy5odG1sI2E2MmIwYmRiYjM3ODNlYjI3YWE3MzQ4NTA4MTMwNjExOSI+bmV0aWZhcGkuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZhcGlfOGguaHRtbCNhNjJiMGJkYmIzNzgzZWIyN2FhNzM0ODUwODEzMDYxMTkiPm5ldGlmYXBpLmg8L2E+PC9saT4KLTxsaT5uZXRpZmFwaV9hcnBfcmVtb3ZlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZmFwaV84Yy5odG1sI2EwMzdjM2QwNWMxOWI0ZDQ2N2I2Y2UwNmViNDYzOWVlOCI+bmV0aWZhcGkuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZhcGlfOGguaHRtbCNhMDM3YzNkMDVjMTliNGQ0NjdiNmNlMDZlYjQ2MzllZTgiPm5ldGlmYXBpLmg8L2E+PC9saT4KKzxsaT5uZXRpZmFwaV9hcnBfYWRkKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZhcGlfX2FycC5odG1sI2dhNjJiMGJkYmIzNzgzZWIyN2FhNzM0ODUwODEzMDYxMTkiPm5ldGlmYXBpLmM8L2E+PC9saT4KKzxsaT5uZXRpZmFwaV9hcnBfcmVtb3ZlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZhcGlfX2FycC5odG1sI2dhMDM3YzNkMDVjMTliNGQ0NjdiNmNlMDZlYjQ2MzllZTgiPm5ldGlmYXBpLmM8L2E+PC9saT4KIDxsaT5uZXRpZmFwaV9uZXRpZl9hZGQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fbmV0aWYuaHRtbCNnYWNjMDYzYzVhMzA3MWUzNGVlYzczNzY2NTFlMzVhNTE5Ij5uZXRpZmFwaS5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZhcGlfX25ldGlmLmh0bWwjZ2FjYzA2M2M1YTMwNzFlMzRlZWM3Mzc2NjUxZTM1YTUxOSI+bmV0aWZhcGkuaDwvYT48L2xpPgogPGxpPm5ldGlmYXBpX25ldGlmX2NvbW1vbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZhcGlfOGMuaHRtbCNhMjZmZDgzMDQyYjUzYjJmZjgyZTE1MjYyZWQ3MmYwYTciPm5ldGlmYXBpLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmYXBpXzhoLmh0bWwjYTI2ZmQ4MzA0MmI1M2IyZmY4MmUxNTI2MmVkNzJmMGE3Ij5uZXRpZmFwaS5oPC9hPjwvbGk+CiA8bGk+bmV0aWZhcGlfbmV0aWZfaW5kZXhfdG9fbmFtZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmYXBpX19uZXRpZi5odG1sI2dhYjc5MTRkNzdkMGE4OWZkNmMzMTA0OGZlYjBiZGFmYjYiPm5ldGlmYXBpLmM8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19wLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfcC5odG1sCmluZGV4IDM1NTBlYmYuLjYxOWRmOTIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19wLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX3AuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfci5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX3IuaHRtbAppbmRleCAwY2YzNDg4Li4wYjNlMzYyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfci5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19yLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX3MuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY19zLmh0bWwKaW5kZXggNTM4MzdhMi4uYzg3ZTljMCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX3MuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfcy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEzNCw2ICsxMzQsNyBAQAogPGxpPnNubXBfZ2V0X2NvbW11bml0eSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTFmZTczN2MxMzcxYTNlZDNiYjUxNWQ0NTFlZjNlZWE4Ij5zbm1wX21zZy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMWZlNzM3YzEzNzFhM2VkM2JiNTE1ZDQ1MWVmM2VlYTgiPnNubXAuaDwvYT48L2xpPgogPGxpPnNubXBfZ2V0X2NvbW11bml0eV90cmFwKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTU2NmFhN2FlYWY1ZmI3NWNhMGEyYWY1ODQ4NmY0Y2JhIj5zbm1wX21zZy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTU2NmFhN2FlYWY1ZmI3NWNhMGEyYWY1ODQ4NmY0Y2JhIj5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX2dldF9jb21tdW5pdHlfd3JpdGUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2E2NjU0NTIxYjgzZjM1YzYwMGI2ODliOTUwZGNjMmM0ZSI+c25tcF9tc2cuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTY2NTQ1MjFiODNmMzVjNjAwYjY4OWI5NTBkY2MyYzRlIj5zbm1wLmg8L2E+PC9saT4KKzxsaT5zbm1wX2dldF9kZWZhdWx0X3RyYXBfdmVyc2lvbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FmNmQ4M2FhZTY0NjQ4NTI0MjdhODEyZjU3M2E0MDM1OSI+c25tcF90cmFwcy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWY2ZDgzYWFlNjQ2NDg1MjQyN2E4MTJmNTczYTQwMzU5Ij5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX2dldF9kZXZpY2VfZW50ZXJwcmlzZV9vaWQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2E1MWU4NDA1NWY3ZDljNDQ1MTE4YmY4ZTkzZmQxYWRmOCI+c25tcF9jb3JlLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2E1MWU4NDA1NWY3ZDljNDQ1MTE4YmY4ZTkzZmQxYWRmOCI+c25tcC5oPC9hPjwvbGk+CiA8bGk+c25tcF9pbml0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzbm1wX19uZXRjb25uXzhjLmh0bWwjZ2E0ZDg4ZjJmYzc2NTUyODAzODQxMzFkNTQzZTBkODNlNSI+c25tcF9uZXRjb25uLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2E0ZDg4ZjJmYzc2NTUyODAzODQxMzFkNTQzZTBkODNlNSI+c25tcF9yYXcuYzwvYT48L2xpPgogPGxpPnNubXBfaXA0X3RvX29pZCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fY29yZV84Yy5odG1sI2E0ZTAxZDM5NWYwYzhjMzhjMmI1YjY4MTA0Nzk2OWRhMSI+c25tcF9jb3JlLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX2NvcmVfOGguaHRtbCNhNGUwMWQzOTVmMGM4YzM4YzJiNWI2ODEwNDc5NjlkYTEiPnNubXBfY29yZS5oPC9hPjwvbGk+CkBAIC0xNjIsMTQgKzE2MywxOSBAQAogPGxpPnNubXBfb2lkX3RvX2lwNCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fY29yZV84Yy5odG1sI2EwOTVlZmNkNDIwMjc4MmU1NzYyNWQ3YjFhZmNkYmY3NyI+c25tcF9jb3JlLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX2NvcmVfOGguaHRtbCNhMDk1ZWZjZDQyMDI3ODJlNTc2MjVkN2IxYWZjZGJmNzciPnNubXBfY29yZS5oPC9hPjwvbGk+CiA8bGk+c25tcF9vaWRfdG9faXA2KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzbm1wX19jb3JlXzhjLmh0bWwjYWExYjY1MWExZmFmNmYxZWUwZGZkYmVhNDgzMTBlZDA5Ij5zbm1wX2NvcmUuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fY29yZV84aC5odG1sI2FhMWI2NTFhMWZhZjZmMWVlMGRmZGJlYTQ4MzEwZWQwOSI+c25tcF9jb3JlLmg8L2E+PC9saT4KIDxsaT5zbm1wX29pZF90b19pcF9wb3J0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzbm1wX19jb3JlXzhjLmh0bWwjYTIxZjAyYjIzOWNjOWFiYWU1ODZmNWVmOTI5MjNlNTA3Ij5zbm1wX2NvcmUuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fY29yZV84aC5odG1sI2EyMWYwMmIyMzljYzlhYmFlNTg2ZjVlZjkyOTIzZTUwNyI+c25tcF9jb3JlLmg8L2E+PC9saT4KLTxsaT5zbm1wX3NlbmRfdHJhcCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E5NmNjN2FmMDExOGQ3NTA0OTYwOTg3MmVhNDExODdjZCI+c25tcF90cmFwcy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTk2Y2M3YWYwMTE4ZDc1MDQ5NjA5ODcyZWE0MTE4N2NkIj5zbm1wLmg8L2E+PC9saT4KKzxsaT5zbm1wX3NlbmRfaW5mb3JtKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWU0NTBkZDcxYWQ5MWY2YzBiYzI0MzQ5M2E5MTNmNjkyIj5zbm1wX3RyYXBzLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhZTQ1MGRkNzFhZDkxZjZjMGJjMjQzNDkzYTkxM2Y2OTIiPnNubXAuaDwvYT48L2xpPgorPGxpPnNubXBfc2VuZF9pbmZvcm1fZ2VuZXJpYygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FiN2U0Yjk0M2E5NzU4MDEwYjAyMzcxYjg3NmFiYzI3NSI+c25tcF90cmFwcy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWI3ZTRiOTQzYTk3NTgwMTBiMDIzNzFiODc2YWJjMjc1Ij5zbm1wLmg8L2E+PC9saT4KKzxsaT5zbm1wX3NlbmRfaW5mb3JtX3NwZWNpZmljKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTc0OTJiYjg2MWJhNzM5MjMyMjFhOGFiNDllYTc5MjEwIj5zbm1wX3RyYXBzLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhNzQ5MmJiODYxYmE3MzkyMzIyMWE4YWI0OWVhNzkyMTAiPnNubXAuaDwvYT48L2xpPgorPGxpPnNubXBfc2VuZF90cmFwKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTIxOTc0YjFmNmI2MjZiY2UxZTAwNmYwOWRiNzEyZTljIj5zbm1wX3RyYXBzLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhMjE5NzRiMWY2YjYyNmJjZTFlMDA2ZjA5ZGI3MTJlOWMiPnNubXAuaDwvYT48L2xpPgogPGxpPnNubXBfc2VuZF90cmFwX2dlbmVyaWMoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhMGUwNDQyNTkyODljYjY5MDE5NzE3M2Y5M2MxNzYwN2QiPnNubXBfdHJhcHMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2EwZTA0NDI1OTI4OWNiNjkwMTk3MTczZjkzYzE3NjA3ZCI+c25tcC5oPC9hPjwvbGk+CiA8bGk+c25tcF9zZW5kX3RyYXBfc3BlY2lmaWMoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhNTZiZGNlMDRlOWU3N2NiM2Y4YTg3MjcxOGNkMjczZDEiPnNubXBfdHJhcHMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E1NmJkY2UwNGU5ZTc3Y2IzZjhhODcyNzE4Y2QyNzNkMSI+c25tcC5oPC9hPjwvbGk+CiA8bGk+c25tcF9zZXRfYXV0aF90cmFwc19lbmFibGVkKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWNhZjgxNmZmOTE3ZjdiN2U1ZDAwZWQ2YzlmNzliNTFjIj5zbm1wX3RyYXBzLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhY2FmODE2ZmY5MTdmN2I3ZTVkMDBlZDZjOWY3OWI1MWMiPnNubXAuaDwvYT48L2xpPgogPGxpPnNubXBfc2V0X2NvbW11bml0eSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTMwY2M1ODdhMjYwNzU3ZmRiMmI4MWQ0NjJmNDMwZWYxIj5zbm1wX21zZy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMzBjYzU4N2EyNjA3NTdmZGIyYjgxZDQ2MmY0MzBlZjEiPnNubXAuaDwvYT48L2xpPgogPGxpPnNubXBfc2V0X2NvbW11bml0eV90cmFwKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTU2MzE3MTFmMzU3YjY2MTBiZTdlOTNiMWM2ZDg3NzYwIj5zbm1wX21zZy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTU2MzE3MTFmMzU3YjY2MTBiZTdlOTNiMWM2ZDg3NzYwIj5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX3NldF9jb21tdW5pdHlfd3JpdGUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2EzNDE0NjE3NjY4NjNjZmY0NmE0NGU1ZjQzMWYyZGEwMSI+c25tcF9tc2cuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTM0MTQ2MTc2Njg2M2NmZjQ2YTQ0ZTVmNDMxZjJkYTAxIj5zbm1wLmg8L2E+PC9saT4KKzxsaT5zbm1wX3NldF9kZWZhdWx0X3RyYXBfdmVyc2lvbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E2ZDQxMWMwYmE3YThmYjFlZDM3NzdlYmRlNWI1ZjQ1NSI+c25tcF90cmFwcy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTZkNDExYzBiYTdhOGZiMWVkMzc3N2ViZGU1YjVmNDU1Ij5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX3NldF9kZXZpY2VfZW50ZXJwcmlzZV9vaWQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2FjYzcxYWM4NTdiZjkyMTVmMDZhNjI0ZGRhMDlhYmUzYSI+c25tcF9jb3JlLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2FjYzcxYWM4NTdiZjkyMTVmMDZhNjI0ZGRhMDlhYmUzYSI+c25tcC5oPC9hPjwvbGk+Cis8bGk+c25tcF9zZXRfaW5mb3JtX2NhbGxiYWNrKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMzIzZWQwODFjYzk5MDNjZWI2ZWJiMjZhMDQ2ZTA4MzgiPnNubXBfbXNnLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2EzMjNlZDA4MWNjOTkwM2NlYjZlYmIyNmEwNDZlMDgzOCI+c25tcC5oPC9hPjwvbGk+CiA8bGk+c25tcF9zZXRfbWlicygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTI5Yzc2NDc0OTcxZjI1ZDAzOGZkNDg2NDQ3YzcwZTIxIj5zbm1wX2NvcmUuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTI5Yzc2NDc0OTcxZjI1ZDAzOGZkNDg2NDQ3YzcwZTIxIj5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX3NldF93cml0ZV9jYWxsYmFjaygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYWZmNmE2YjM5MzIyZTkyODYyYWI1NWNmY2RkZmUyNTRiIj5zbm1wX21zZy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhZmY2YTZiMzkzMjJlOTI4NjJhYjU1Y2ZjZGRmZTI1NGIiPnNubXAuaDwvYT48L2xpPgogPGxpPnNubXBfdGhyZWFkc3luY19pbml0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzbm1wX190aHJlYWRzeW5jXzhjLmh0bWwjYTM2ZTViMWRiYjA2NzY0MWI3YTZhYzQ4NmI0ZWMxNWI2Ij5zbm1wX3RocmVhZHN5bmMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fdGhyZWFkc3luY184aC5odG1sI2EzNmU1YjFkYmIwNjc2NDFiN2E2YWM0ODZiNGVjMTViNiI+c25tcF90aHJlYWRzeW5jLmg8L2E+PC9saT4KQEAgLTE3Nyw2ICsxODMsNyBAQAogPGxpPnNubXBfdHJhcF9kc3RfaXBfc2V0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTE1ZTRhZmJmODBlZDIyNjA4NTA4NDJlNjYwOGM2ZDg2Ij5zbm1wX3RyYXBzLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhMTVlNGFmYmY4MGVkMjI2MDg1MDg0MmU2NjA4YzZkODYiPnNubXAuaDwvYT48L2xpPgogPGxpPnNubXBfdmFyYmluZF9sZW5ndGgoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX21zZ184Yy5odG1sI2FjMWY2ODRkYWRhOTYzZjY4YjcxYTA0YTcwMmYyOGZlNSI+c25tcF9tc2cuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fbXNnXzhoLmh0bWwjYWMxZjY4NGRhZGE5NjNmNjhiNzFhMDRhNzAyZjI4ZmU1Ij5zbm1wX21zZy5oPC9hPjwvbGk+CiA8bGk+c250cF9lbmFibGVkKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc250cC5odG1sI2dhM2ZlNTI1NGU1YTA1NmZjYTgwODAyZDlmMjZiOWMzYzUiPnNudHAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCNnYTNmZTUyNTRlNWEwNTZmY2E4MDgwMmQ5ZjI2YjljM2M1Ij5zbnRwLmg8L2E+PC9saT4KKzxsaT5zbnRwX2dldGtvZHJlY2VpdmVkKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc250cC5odG1sI2dhNjgxNDZkMmVlMWJiYTEwZTVhYTAxZjA5OGI1OTdkOWUiPnNudHAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCNnYTY4MTQ2ZDJlZTFiYmExMGU1YWEwMWYwOThiNTk3ZDllIj5zbnRwLmg8L2E+PC9saT4KIDxsaT5zbnRwX2dldG9wZXJhdGluZ21vZGUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbnRwLmh0bWwjZ2FlNjY0MDRhNTUxZDVjZWY0MjBjZjg0NGE3MTM1NmZhZSI+c250cC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc250cC5odG1sI2dhZTY2NDA0YTU1MWQ1Y2VmNDIwY2Y4NDRhNzEzNTZmYWUiPnNudHAuaDwvYT48L2xpPgogPGxpPnNudHBfZ2V0cmVhY2hhYmlsaXR5KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc250cC5odG1sI2dhYzgwOTc4MjlhODFjYjZmMzdkOWFjZjhlZmIyY2M4MmUiPnNudHAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCNnYWM4MDk3ODI5YTgxY2I2ZjM3ZDlhY2Y4ZWZiMmNjODJlIj5zbnRwLmg8L2E+PC9saT4KIDxsaT5zbnRwX2dldHNlcnZlcigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCNnYWIxMTRjMTIxNTRjZjJjM2UzYTczMzcyNGM2YTc3NDI5Ij5zbnRwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbnRwLmh0bWwjZ2FiMTE0YzEyMTU0Y2YyYzNlM2E3MzM3MjRjNmE3NzQyOSI+c250cC5oPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfdC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX3QuaHRtbAppbmRleCBlOGYwNjA2Li42ZTBiYzM4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfdC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY190Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTE1LDEwICsxMTUsMTAgQEAKIDxsaT50Y3BfZW5xdWV1ZV9mbGFncygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19vdXRfOGMuaHRtbCNhYTdkNWQ1NTI2NDdkNTY3MDk1ODc2YWFiMjAyYmZkMWEiPnRjcF9vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19wcml2XzhoLmh0bWwjYWE3ZDVkNTUyNjQ3ZDU2NzA5NTg3NmFhYjIwMmJmZDFhIj50Y3BfcHJpdi5oPC9hPjwvbGk+CiA8bGk+dGNwX2VycigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2FlMTM0NmM0ZTM0ZDNiYzdjMDFlMWI0NzE0MmFiMzEyMSI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhdy5odG1sI2dhZTEzNDZjNGUzNGQzYmM3YzAxZTFiNDcxNDJhYjMxMjEiPnRjcC5oPC9hPjwvbGk+CiA8bGk+dGNwX2V4dF9hcmdfYWxsb2NfaWQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhNDgzNmUwYjRmNjY0Mzk0OTNlMTA2YTUwNDAwZDE2MTYiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYTQ4MzZlMGI0ZjY2NDM5NDkzZTEwNmE1MDQwMGQxNjE2Ij50Y3AuaDwvYT48L2xpPgotPGxpPnRjcF9leHRfYXJnX2dldCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwjZ2FkYzdhYTk2ZGRkMTVmYjY1OTg1MjMwNjhiODlmODg1NSI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhZGM3YWE5NmRkZDE1ZmI2NTk4NTIzMDY4Yjg5Zjg4NTUiPnRjcC5oPC9hPjwvbGk+Cis8bGk+dGNwX2V4dF9hcmdfZ2V0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYTc0OTkwMTg0NjljZDljM2RjNmExNWFkOTFjMzM4ZTU2Ij50Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwjZ2E3NDk5MDE4NDY5Y2Q5YzNkYzZhMTVhZDkxYzMzOGU1NiI+dGNwLmg8L2E+PC9saT4KIDxsaT50Y3BfZXh0X2FyZ19pbnZva2VfY2FsbGJhY2tzX3Bhc3NpdmVfb3BlbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwXzhjLmh0bWwjYTUyNjViMWRmMDI0ZDA0Mjg3ZWQzZWRjMDJiMWI5Y2NjIj50Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19wcml2XzhoLmh0bWwjYTUyNjViMWRmMDI0ZDA0Mjg3ZWQzZWRjMDJiMWI5Y2NjIj50Y3BfcHJpdi5oPC9hPjwvbGk+Ci08bGk+dGNwX2V4dF9hcmdfc2V0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYTU4NTAwY2IyY2UyMjQzOGUxNmEzNzM3MzU5NWFmMzE4Ij50Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwjZ2E1ODUwMGNiMmNlMjI0MzhlMTZhMzczNzM1OTVhZjMxOCI+dGNwLmg8L2E+PC9saT4KLTxsaT50Y3BfZXh0X2FyZ19zZXRfY2FsbGJhY2tzKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYTM2ZTYwZGMwMmJmZTA0MzdjOGRhMzY4YTYyZTJmMzE2Ij50Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwjZ2EzNmU2MGRjMDJiZmUwNDM3YzhkYTM2OGE2MmUyZjMxNiI+dGNwLmg8L2E+PC9saT4KKzxsaT50Y3BfZXh0X2FyZ19zZXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhZjVjMjM5N2IyZDg1YjNhOTAyNTg0ZmI2NGNkYjk2MWUiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYWY1YzIzOTdiMmQ4NWIzYTkwMjU4NGZiNjRjZGI5NjFlIj50Y3AuaDwvYT48L2xpPgorPGxpPnRjcF9leHRfYXJnX3NldF9jYWxsYmFja3MoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhYWNlYTU0Y2UxMTU0ZTdhZThlZjAxOTlmZjFjNWJkYzUiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYWFjZWE1NGNlMTE1NGU3YWU4ZWYwMTk5ZmYxYzViZGM1Ij50Y3AuaDwvYT48L2xpPgogPGxpPnRjcF9mYXN0dG1yKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGMuaHRtbCNhYmY0NDZiMDdlNTIxNjFiOGE1M2NlYTA3YmM2YzM2NmQiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfX3ByaXZfOGguaHRtbCNhYmY0NDZiMDdlNTIxNjFiOGE1M2NlYTA3YmM2YzM2NmQiPnRjcF9wcml2Lmg8L2E+PC9saT4KIDxsaT50Y3BfZnJlZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwXzhjLmh0bWwjYWEyYjZiMDc1YzI3YzY0ZGZiOGM0MDJhYzk2MWZiOTEwIj50Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19wcml2XzhoLmh0bWwjYWEyYjZiMDc1YzI3YzY0ZGZiOGM0MDJhYzk2MWZiOTEwIj50Y3BfcHJpdi5oPC9hPjwvbGk+CiA8bGk+dGNwX2luaXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF84Yy5odG1sI2E1MWRlNGRlZDdkMzQyNDU2ZDMxNzIyNDkzYzkyYzk2OSI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2E1MWRlNGRlZDdkMzQyNDU2ZDMxNzIyNDkzYzkyYzk2OSI+dGNwX3ByaXYuaDwvYT48L2xpPgpAQCAtMTQ0LDEzICsxNDQsMTQgQEAKIDxsaT50Y3BfcmV4bWl0X3J0b19jb21taXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYTllZjlkYzA5NGUyMWJkZjA3NzlhZWQyNWFiMGIwOGQ0Ij50Y3Bfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2E5ZWY5ZGMwOTRlMjFiZGYwNzc5YWVkMjVhYjBiMDhkNCI+dGNwX3ByaXYuaDwvYT48L2xpPgogPGxpPnRjcF9yZXhtaXRfcnRvX3ByZXBhcmUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYTFmMzE4OTMwYmQ2ZDQ5MDc0MzQzY2M3OWM1MTY2ZjM5Ij50Y3Bfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2ExZjMxODkzMGJkNmQ0OTA3NDM0M2NjNzljNTE2NmYzOSI+dGNwX3ByaXYuaDwvYT48L2xpPgogPGxpPnRjcF9yc3QoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYWE5MGY4MDUxYzk2MzNkMzAxN2M1ODgyNDVjZGM0MDE0Ij50Y3Bfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2FhOTBmODA1MWM5NjMzZDMwMTdjNTg4MjQ1Y2RjNDAxNCI+dGNwX3ByaXYuaDwvYT48L2xpPgorPGxpPnRjcF9yc3RfbmV0aWYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYTdjZjdjYmM1YWE0NzNkZTgxMTZkYzlmMDBjYmM1ZDU3Ij50Y3Bfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2E3Y2Y3Y2JjNWFhNDczZGU4MTE2ZGM5ZjAwY2JjNWQ1NyI+dGNwX3ByaXYuaDwvYT48L2xpPgogPGxpPnRjcF9zZWdfY29weSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwXzhjLmh0bWwjYTkzODRiNDM2ZGU5NWQ1YmY4NTUwNDM4YjlkM2M4Y2Q0Ij50Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19wcml2XzhoLmh0bWwjYTkzODRiNDM2ZGU5NWQ1YmY4NTUwNDM4YjlkM2M4Y2Q0Ij50Y3BfcHJpdi5oPC9hPjwvbGk+CiA8bGk+dGNwX3NlZ19mcmVlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGMuaHRtbCNhYzYyODM2NTFiMjZmNzRkYmEyNDQ0MTU5YWVlODhiMjAiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfX3ByaXZfOGguaHRtbCNhYzYyODM2NTFiMjZmNzRkYmEyNDQ0MTU5YWVlODhiMjAiPnRjcF9wcml2Lmg8L2E+PC9saT4KIDxsaT50Y3Bfc2Vnc19mcmVlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGMuaHRtbCNhM2Q5YmI5ODA5NzY5MTk3YmNlOWIyNDk5ZDU1Y2YyOGMiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfX3ByaXZfOGguaHRtbCNhM2Q5YmI5ODA5NzY5MTk3YmNlOWIyNDk5ZDU1Y2YyOGMiPnRjcF9wcml2Lmg8L2E+PC9saT4KIDxsaT50Y3Bfc2VuZF9lbXB0eV9hY2soKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYWVmZGUzZTM0YjJjYzhkZjk2NTQ5ODY0ODRjNDRhOTk2Ij50Y3Bfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2FlZmRlM2UzNGIyY2M4ZGY5NjU0OTg2NDg0YzQ0YTk5NiI+dGNwX3ByaXYuaDwvYT48L2xpPgogPGxpPnRjcF9zZW5kX2ZpbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19vdXRfOGMuaHRtbCNhZjQwYmE5ZDY0NWE4OTEwNDM2YzNkN2NmMTNkYmEzNDIiPnRjcF9vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19wcml2XzhoLmh0bWwjYWY0MGJhOWQ2NDVhODkxMDQzNmMzZDdjZjEzZGJhMzQyIj50Y3BfcHJpdi5oPC9hPjwvbGk+CiA8bGk+dGNwX3NlbnQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhdy5odG1sI2dhMTU5NjMzMmI5M2JiNjI0OTE3OWYzYjg5ZjI0YmQ4MDgiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXcuaHRtbCNnYTE1OTYzMzJiOTNiYjYyNDkxNzlmM2I4OWYyNGJkODA4Ij50Y3AuaDwvYT48L2xpPgotPGxpPnRjcF9zZXRwcmlvKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGMuaHRtbCNhMmM0MjM0ZjFlOTViNmJkZTBlODRkNGVhOTdhZTk1YmMiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGguaHRtbCNhMmM0MjM0ZjFlOTViNmJkZTBlODRkNGVhOTdhZTk1YmMiPnRjcC5oPC9hPjwvbGk+Cis8bGk+dGNwX3NldHByaW8oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhdy5odG1sI2dhMmM0MjM0ZjFlOTViNmJkZTBlODRkNGVhOTdhZTk1YmMiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXcuaHRtbCNnYTJjNDIzNGYxZTk1YjZiZGUwZTg0ZDRlYTk3YWU5NWJjIj50Y3AuaDwvYT48L2xpPgogPGxpPnRjcF9zaHV0ZG93bigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2E1Yjk0ZDU3ZjE4OTFiOTI4N2Y4ODUyNWEyYWM1NjFkZCI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhdy5odG1sI2dhNWI5NGQ1N2YxODkxYjkyODdmODg1MjVhMmFjNTYxZGQiPnRjcC5oPC9hPjwvbGk+CiA8bGk+dGNwX3Nsb3d0bXIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF84Yy5odG1sI2E0MjFmYjQyZWY5MTkwMThlMTRhZTQxM2FkZmVlOTkwNSI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2E0MjFmYjQyZWY5MTkwMThlMTRhZTQxM2FkZmVlOTkwNSI+dGNwX3ByaXYuaDwvYT48L2xpPgogPGxpPnRjcF9zcGxpdF91bnNlbnRfc2VnKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfX291dF84Yy5odG1sI2FjOTMwODU5YzRlNGFkOWZjZjZiYjI1ZWY1ZTkxYmNkNSI+dGNwX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfX3ByaXZfOGguaHRtbCNhYzkzMDg1OWM0ZTRhZDlmY2Y2YmIyNWVmNWU5MWJjZDUiPnRjcF9wcml2Lmg8L2E+PC9saT4KQEAgLTE2Myw2ICsxNjQsNyBAQAogPGxpPnRjcGlwXzZsb3dwYW5faW5wdXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zaXhsb3dwYW4uaHRtbCNnYTlkOWI5M2M0N2RkMTM4ZmQ4NGE1MDNmZmVjYjkzMzZiIj5sb3dwYW42Lmg8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zaXhsb3dwYW4uaHRtbCNnYTlkOWI5M2M0N2RkMTM4ZmQ4NGE1MDNmZmVjYjkzMzZiIj5sb3dwYW42LmM8L2E+PC9saT4KIDxsaT50Y3BpcF9hcGlfY2FsbCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwaXBfOGMuaHRtbCNhM2Q0MmIwYzQ2NjA3ZjkxYWVkY2M3NzQ1ZWQ0NjZiMDgiPnRjcGlwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcGlwX19wcml2XzhoLmh0bWwjYTNkNDJiMGM0NjYwN2Y5MWFlZGNjNzc0NWVkNDY2YjA4Ij50Y3BpcF9wcml2Lmg8L2E+PC9saT4KIDxsaT50Y3BpcF9jYWxsYmFjaygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FhYjgzOGZlMzQxN2FiM2ExZjYxZjA3MjgwMDlhMGMyYSI+dGNwaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FhYjgzOGZlMzQxN2FiM2ExZjYxZjA3MjgwMDlhMGMyYSI+dGNwaXAuaDwvYT48L2xpPgorPGxpPnRjcGlwX2NhbGxiYWNrX3dhaXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcGlwXzhjLmh0bWwjYThkOGEyYWMwMjcxZGVmNzFhNGNhMzFiMjRhMzEyMjhmIj50Y3BpcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BpcF84aC5odG1sI2E4ZDhhMmFjMDI3MWRlZjcxYTRjYTMxYjI0YTMxMjI4ZiI+dGNwaXAuaDwvYT48L2xpPgogPGxpPnRjcGlwX2NhbGxiYWNrbXNnX2RlbGV0ZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FjNWI3YTU5ZjRjM2Y1ZjcyMWFiOWVlODFmMjMxYzlmZCI+dGNwaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FjNWI3YTU5ZjRjM2Y1ZjcyMWFiOWVlODFmMjMxYzlmZCI+dGNwaXAuaDwvYT48L2xpPgogPGxpPnRjcGlwX2NhbGxiYWNrbXNnX25ldygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2EwN2RlODc1MTQ1MmE4ODg2ZGU4NTg0OWY3OWZlMjNhMSI+dGNwaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2EwN2RlODc1MTQ1MmE4ODg2ZGU4NTg0OWY3OWZlMjNhMSI+dGNwaXAuaDwvYT48L2xpPgogPGxpPnRjcGlwX2NhbGxiYWNrbXNnX3RyeWNhbGxiYWNrKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3MuaHRtbCNnYTgzZmU1ZmIyZWEzM2U4YzI2MjU2N2FjNDZmNGRiM2Y4Ij50Y3BpcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3MuaHRtbCNnYTgzZmU1ZmIyZWEzM2U4YzI2MjU2N2FjNDZmNGRiM2Y4Ij50Y3BpcC5oPC9hPjwvbGk+CkBAIC0xNzMsOCArMTc1LDEwIEBACiA8bGk+dGNwaXBfcmZjNzY2OF9pbnB1dCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibG93cGFuNl9fYmxlXzhoLmh0bWwjYTZhZTkwYWQ2OWY1ZDkwMWViNDRjZjg3YjkxMjBjZDlhIj5sb3dwYW42X2JsZS5oPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJsb3dwYW42X19ibGVfOGMuaHRtbCNhNmFlOTBhZDY5ZjVkOTAxZWI0NGNmODdiOTEyMGNkOWEiPmxvd3BhbjZfYmxlLmM8L2E+PC9saT4KIDxsaT50Y3BpcF9zZW5kX21zZ193YWl0X3NlbSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwaXBfOGMuaHRtbCNhMTJiZGYzN2VkZGNkNzJjNDE3OGUzZWE3ZDM3MDM5NWQiPnRjcGlwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcGlwX19wcml2XzhoLmh0bWwjYTEyYmRmMzdlZGRjZDcyYzQxNzhlM2VhN2QzNzAzOTVkIj50Y3BpcF9wcml2Lmg8L2E+PC9saT4KIDxsaT50Y3BpcF90cnlfY2FsbGJhY2soKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcy5odG1sI2dhZWI3YjNjNzQxNGM3NmFkOGRkZTE0ZDJmYmE2Y2IwMjAiPnRjcGlwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcy5odG1sI2dhZWI3YjNjNzQxNGM3NmFkOGRkZTE0ZDJmYmE2Y2IwMjAiPnRjcGlwLmg8L2E+PC9saT4KLTxsaT50ZnRwX2NsZWFudXAoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190ZnRwLmh0bWwjZ2FiYjRhNGUyNGI1YzdlYzhkZjcwZWM1YTY4YTIwNmRlYyI+dGZ0cF9zZXJ2ZXIuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RmdHAuaHRtbCNnYWJiNGE0ZTI0YjVjN2VjOGRmNzBlYzVhNjhhMjA2ZGVjIj50ZnRwX3NlcnZlci5oPC9hPjwvbGk+Ci08bGk+dGZ0cF9pbml0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sI2dhN2E4MDY3M2ExMzI0ZGE1YzhhZTI0NDBhZjdiMDA4YTMiPnRmdHBfc2VydmVyLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190ZnRwLmh0bWwjZ2E3YTgwNjczYTEzMjRkYTVjOGFlMjQ0MGFmN2IwMDhhMyI+dGZ0cF9zZXJ2ZXIuaDwvYT48L2xpPgorPGxpPnRmdHBfY2xlYW51cCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RmdHAuaHRtbCNnYWJiNGE0ZTI0YjVjN2VjOGRmNzBlYzVhNjhhMjA2ZGVjIj50ZnRwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190ZnRwLmh0bWwjZ2FiYjRhNGUyNGI1YzdlYzhkZjcwZWM1YTY4YTIwNmRlYyI+dGZ0cF9jb21tb24uaDwvYT48L2xpPgorPGxpPnRmdHBfaW5pdF9jbGllbnQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190ZnRwLmh0bWwjZ2FhNmI3NDNhNjQyODcyMDZhY2I4MjViZDYwNDQ4ZTVmOCI+dGZ0cC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sI2dhYTZiNzQzYTY0Mjg3MjA2YWNiODI1YmQ2MDQ0OGU1ZjgiPnRmdHBfY2xpZW50Lmg8L2E+PC9saT4KKzxsaT50ZnRwX2luaXRfY29tbW9uKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0ZnRwXzhjLmh0bWwjYTVjNmNmM2RlODRhMGRjOTkwYzA1NWQ2NmU1NzRjYTcwIj50ZnRwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRmdHBfX2NvbW1vbl84aC5odG1sI2E1YzZjZjNkZTg0YTBkYzk5MGMwNTVkNjZlNTc0Y2E3MCI+dGZ0cF9jb21tb24uaDwvYT48L2xpPgorPGxpPnRmdHBfaW5pdF9zZXJ2ZXIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190ZnRwLmh0bWwjZ2E3M2E5OGYwODExMjQ0ZDViZDI0ZDViOTU5ZGI4ZWQ0MCI+dGZ0cC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sI2dhNzNhOThmMDgxMTI0NGQ1YmQyNGQ1Yjk1OWRiOGVkNDAiPnRmdHBfc2VydmVyLmg8L2E+PC9saT4KIDwvdWw+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY191Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfdS5odG1sCmluZGV4IDQ0M2RiM2IuLjQzODdjODYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY191Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX3UuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfei5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19mdW5jX3ouaHRtbAppbmRleCBkM2FlZjQ2Li42YWQ2NDUwIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2Z1bmNfei5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfZnVuY196Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19nLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzVkZTU0Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19nLmh0bWwKQEAgLTAsMCArMSwxMTQgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwczovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZW4tVVMiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQveGh0bWw7Y2hhcnNldD1VVEYtOCIvPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT0xMSIvPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb3h5Z2VuIDEuMTIuMCIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIi8+Cis8dGl0bGU+bHdJUDogR2xvYmFsczwvdGl0bGU+Cis8bGluayBocmVmPSJ0YWJzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ianF1ZXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImR5bnNlY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImNsaXBib2FyZC5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJuYXZ0cmVlLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibmF2dHJlZWRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibmF2dHJlZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNpemUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iY29va2llLmpzIj48L3NjcmlwdD4KKzxsaW5rIGhyZWY9InNlYXJjaC9zZWFyY2guY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWFyY2gvc2VhcmNoZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJzZWFyY2gvc2VhcmNoLmpzIj48L3NjcmlwdD4KKzxsaW5rIGhyZWY9ImRveHlnZW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJ0b3AiPjwhLS0gZG8gbm90IHJlbW92ZSB0aGlzIGRpdiwgaXQgaXMgY2xvc2VkIGJ5IGRveHlnZW4hIC0tPgorPGRpdiBpZD0idGl0bGVhcmVhIj4KKzx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiPgorIDx0Ym9keT4KKyA8dHIgaWQ9InByb2plY3Ryb3ciPgorICA8dGQgaWQ9InByb2plY3RhbGlnbiI+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KKyAgIDwvZGl2PgorICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgorICA8L3RkPgorIDwvdHI+CisgPC90Ym9keT4KKzwvdGFibGU+Cis8L2Rpdj4KKzwhLS0gZW5kIGhlYWRlciBwYXJ0IC0tPgorPCEtLSBHZW5lcmF0ZWQgYnkgRG94eWdlbiAxLjEyLjAgLS0+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KK3ZhciBzZWFyY2hCb3ggPSBuZXcgU2VhcmNoQm94KCJzZWFyY2hCb3giLCAic2VhcmNoLyIsJy5odG1sJyk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCiskKGZ1bmN0aW9uKCkgeyBjb2RlZm9sZC5pbml0KDApOyB9KTsKKy8qIEBsaWNlbnNlLWVuZCAqLworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZW51ZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJtZW51LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpIHsKKyAgaW5pdE1lbnUoJycsdHJ1ZSxmYWxzZSwnc2VhcmNoLnBocCcsJ1NlYXJjaCcsdHJ1ZSk7CisgICQoZnVuY3Rpb24oKSB7IGluaXRfc2VhcmNoKCk7IH0pOworfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPGRpdiBpZD0ibWFpbi1uYXYiPjwvZGl2PgorPC9kaXY+PCEtLSB0b3AgLS0+Cis8ZGl2IGlkPSJzaWRlLW5hdiIgY2xhc3M9InVpLXJlc2l6YWJsZSBzaWRlLW5hdi1yZXNpemFibGUiPgorICA8ZGl2IGlkPSJuYXYtdHJlZSI+CisgICAgPGRpdiBpZD0ibmF2LXRyZWUtY29udGVudHMiPgorICAgICAgPGRpdiBpZD0ibmF2LXN5bmMiIGNsYXNzPSJzeW5jIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgaWQ9InNwbGl0YmFyIiBzdHlsZT0iLW1vei11c2VyLXNlbGVjdDpub25lOyIgCisgICAgICAgY2xhc3M9InVpLXJlc2l6YWJsZS1oYW5kbGUiPgorICA8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCiskKGZ1bmN0aW9uKCl7aW5pdE5hdlRyZWUoJ2dsb2JhbHNfZy5odG1sJywnJyk7IGluaXRSZXNpemFibGUodHJ1ZSk7IH0pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9ImRvYy1jb250ZW50Ij4KKzwhLS0gd2luZG93IHNob3dpbmcgdGhlIGZpbHRlciBvcHRpb25zIC0tPgorPGRpdiBpZD0iTVNlYXJjaFNlbGVjdFdpbmRvdyIKKyAgICAgb25tb3VzZW92ZXI9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RTaG93KCkiCisgICAgIG9ubW91c2VvdXQ9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RIaWRlKCkiCisgICAgIG9ua2V5ZG93bj0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdEtleShldmVudCkiPgorPC9kaXY+CisKKzwhLS0gaWZyYW1lIHNob3dpbmcgdGhlIHNlYXJjaCByZXN1bHRzIChjbG9zZWQgYnkgZGVmYXVsdCkgLS0+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0c1dpbmRvdyI+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0cyI+Cis8ZGl2IGNsYXNzPSJTUlBhZ2UiPgorPGRpdiBpZD0iU1JJbmRleCI+Cis8ZGl2IGlkPSJTUlJlc3VsdHMiPjwvZGl2PgorPGRpdiBjbGFzcz0iU1JTdGF0dXMiIGlkPSJMb2FkaW5nIj5Mb2FkaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9IlNlYXJjaGluZyI+U2VhcmNoaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9Ik5vTWF0Y2hlcyI+Tm8gTWF0Y2hlczwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImNvbnRlbnRzIj4KKzxkaXYgY2xhc3M9InRleHRibG9jayI+SGVyZSBpcyBhIGxpc3Qgb2YgYWxsIGRvY3VtZW50ZWQgZnVuY3Rpb25zLCB2YXJpYWJsZXMsIGRlZmluZXMsIGVudW1zLCBhbmQgdHlwZWRlZnMgd2l0aCBsaW5rcyB0byB0aGUgZG9jdW1lbnRhdGlvbjo8L2Rpdj4KKworPGgzPjxhIGlkPSJpbmRleF9nIiBuYW1lPSJpbmRleF9nIj48L2E+LSBnIC08L2gzPjx1bD4KKzxsaT5nZXRfbWRuc19wY2IoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGMuaHRtbCNhYTMxYjc5OGE1ZmI5NmI2ZWYwZGRlNWQ0ZjMyMzcxYWYiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fcHJpdl84aC5odG1sI2FhMzFiNzk4YTVmYjk2YjZlZjBkZGU1ZDRmMzIzNzFhZiI+bWRuc19wcml2Lmg8L2E+PC9saT4KKzwvdWw+Cis8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgorPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KKzwhLS0gc3RhcnQgZm9vdGVyIHBhcnQgLS0+Cis8ZGl2IGlkPSJuYXYtcGF0aCIgY2xhc3M9Im5hdnBhdGgiPjwhLS0gaWQgaXMgbmVlZGVkIGZvciB0cmVldmlldyBmdW5jdGlvbiEgLS0+CisgIDx1bD4KKyAgICA8bGkgY2xhc3M9ImZvb3RlciI+R2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmRveHlnZW4ub3JnL2luZGV4Lmh0bWwiPjxpbWcgY2xhc3M9ImZvb3RlciIgc3JjPSJkb3h5Z2VuLnN2ZyIgd2lkdGg9IjEwNCIgaGVpZ2h0PSIzMSIgYWx0PSJkb3h5Z2VuIi8+PC9hPiAxLjEyLjAgPC9saT4KKyAgPC91bD4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19oLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2guaHRtbAppbmRleCBmNmY4ZDY1Li44ODk3N2I4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2guaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2guaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDEsNyArMTAxLDYgQEAKIAogPGgzPjxhIGlkPSJpbmRleF9oIiBuYW1lPSJpbmRleF9oIj48L2E+LSBoIC08L2gzPjx1bD4KIDxsaT5oX2Vycm5vJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0ZGJfOGMuaHRtbCNhMmExY2UzZjIwNDAwMDczMDNkMzZjMGI2ODJiNWFjMTAiPm5ldGRiLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imx3aXBfMm5ldGRiXzhoLmh0bWwjYTJhMWNlM2YyMDQwMDA3MzAzZDM2YzBiNjgyYjVhYzEwIj5uZXRkYi5oPC9hPjwvbGk+Ci08bGk+SE9TVEVOVF9TVE9SQUdFJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0ZGJfOGMuaHRtbCNhY2ZjMWU5ODg1MzRjMGU0OTc1OTliOTA0NzM5ZjkyZmUiPm5ldGRiLmM8L2E+PC9saT4KIDxsaT5IVFRQX0RFRkFVTFRfUE9SVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19odHRwYy5odG1sI2dhMWYxOTJmMzAwOTg2NWU5ZjlhM2NkODM2MDljODY2YzIiPmh0dHBfY2xpZW50Lmg8L2E+PC9saT4KIDxsaT5IVFRQX0lTX0RBVEFfVk9MQVRJTEUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJodHRwZF84Yy5odG1sI2FhOTNkNjBlOGFmMjNiOTE1YjViOTY1MmZmNzFlMTMwMCI+aHR0cGQuYzwvYT48L2xpPgogPGxpPkhUVFBfSVNfSERSX1ZPTEFUSUxFJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaHR0cGRfOGMuaHRtbCNhZjI4MWJjNGE3NjJkNTYyNDNlMGI4NWRkNDE5NzE3NGEiPmh0dHBkLmM8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfaS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19pLmh0bWwKaW5kZXggZDFlYTRhMS4uYTcwMmM5YSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19pLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19pLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTg3LDExICsxODcsMTMgQEAKIDxsaT5JUDRfQUREUiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2E1OGFlZTQxNjZjNDY2ZjlhYzcwMzViZjVjYzlmOTk3NCI+aXA0X2FkZHIuaDwvYT48L2xpPgogPGxpPklQNF9BRERSX0FOWSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2FlOTIwYjZlODE2MTBhMzhjZjlhZGE1MjExODgwN2VmZiI+aXBfYWRkci5oPC9hPjwvbGk+CiA8bGk+SVA0X0FERFJfQU5ZNCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2FhM2Y2NWE0MmI2ODE0OWU5NmU2MTg2MDBiMmNhMmU0MiI+aXBfYWRkci5oPC9hPjwvbGk+Cis8bGk+aXA0X2FkZHJfY21wJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTU5NDk0YzU2MmM2MmZkZjYyYTZjOWM2YTY2YTUwZmIzIj5pcDRfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA0X2FkZHJfY29weSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2EyZjRlOWMzMzllODk3ZTZjYTVjYjRhMmYxZTgzOTRkNSI+aXA0X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNF9hZGRyX2dldF9uZXR3b3JrJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTgxNjU4Y2IwNWJhNTA0ZDEzZWU4NjBlODJkYzQ0NGU5Ij5pcDRfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA0X2FkZHJfZ2V0X3UzMiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2FkNTBkOTM0NjRiYmJkYTE5OWI1ODVjNTQ4NjlhM2E0YiI+aXA0X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNF9hZGRyX2lzYnJvYWRjYXN0X3UzMigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhjLmh0bWwjYWIzY2Q3ZTdmYmEyOGMyOWQzNWYzYzE3NDYxMDcxNDIxIj5pcDRfYWRkci5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhYjNjZDdlN2ZiYTI4YzI5ZDM1ZjNjMTc0NjEwNzE0MjEiPmlwNF9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDRfYWRkcl9pc2xvb3BiYWNrJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTQ2ZGFiYjRkZjIxMmQxNTYwMDRmYTVhZmUwM2UyMDUxIj5pcDRfYWRkci5oPC9hPjwvbGk+Cis8bGk+aXA0X2FkZHJfbmV0X2VxJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTk1ZDA1ZGY5MjAxNjAyZmM4NzNhOTdmYjYxZmQxMTM0Ij5pcDRfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA0X2FkZHJfbmV0Y21wJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYWZkNDNmNmNlYjJkZjhkNTBjODQ1MDlhZDEwNTlmNTE0Ij5pcDRfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA0X2FkZHJfbmV0bWFza192YWxpZCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhjLmh0bWwjYWI1ODEwZDQwNGIwYWQxYjg5ZWYxMzIzZWExZTc4MDcxIj5pcDRfYWRkci5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhYjU4MTBkNDA0YjBhZDFiODllZjEzMjNlYTFlNzgwNzEiPmlwNF9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDRfYWRkcl9zZXQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhMzNhMTdhOGQyMDI1Y2UzNzE1ZGI4MzU1MzQ4NjhlODgiPmlwNF9hZGRyLmg8L2E+PC9saT4KQEAgLTIzMywxOCArMjM1LDIyIEBACiA8bGk+aXA2X2FkZHJfY2xlYXJfem9uZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FlMDI0OWRiNmNkMjY4N2YyZGJjNDQ1ZTc3NzhkMzdhZCI+aXA2X3pvbmUuaDwvYT48L2xpPgogPGxpPmlwNl9hZGRyX2NtcCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2FlYThkNGM0MTM0YWJmZjFjNzZiYzk5N2E5MTE2M2ZlMSI+aXA2X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNl9hZGRyX2NtcF9wYWNrZWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhMTFmZTg0Nzg5ZTNmMDM5YjNmNzEwMDllODAyOTQ2YTgiPmlwNl9hZGRyLmg8L2E+PC9saT4KLTxsaT5pcDZfYWRkcl9jbXBfem9uZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FjYmI4ZTFhNzUwNWQ5NzcyMTgxZGVmYTBlNzViOGRhOSI+aXA2X3pvbmUuaDwvYT48L2xpPgorPGxpPmlwNl9hZGRyX2NtcF96b25lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWMwMWQwYmFkMGE2ODJkY2MyMzliYTNkNTY5NWUwNjQ4Ij5pcDZfem9uZS5oPC9hPjwvbGk+CiA8bGk+aXA2X2FkZHJfY21wX3pvbmVsZXNzJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWQwZmMwODg5NzJkMzk1ODM5YTdhZDc1ZDNkYWI4MzIyIj5pcDZfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA2X2FkZHJfY29weSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E3YjE3ZTg1YTQ2YmQ4MzY4Y2UyN2ZjNjQ0ZTA1ODA3MyI+aXA2X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNl9hZGRyX2NvcHlfZnJvbV9wYWNrZWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhMDU1NzVkNDZjMjMzZmZiMTNmYjAzYTNhMmM4YTE2YjMiPmlwNl9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9jb3B5X3RvX3BhY2tlZCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2E2YzQ2ZDEyZmE3ZDM2YzQ3YjYyOWQwY2NkZWZhMTE0YiI+aXA2X2FkZHIuaDwvYT48L2xpPgogPGxpPmlwNl9hZGRyX2NvcHlfem9uZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2E3MzQ3NzI5NDg1ZDgzN2JjZmY4NWFlNDczMWJiZjVjNCI+aXA2X3pvbmUuaDwvYT48L2xpPgorPGxpPmlwNl9hZGRyX2VxJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYTllYTBiNmI4MzdiYWZmMWUxZTYyY2NjZDRmMTdkNTBlIj5pcDZfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA2X2FkZHJfZXF1YWxzX3pvbmUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhZWVhZDgzNzljYzNmZDRjMjU3YmUwYmI2NTQ5OTRhOGYiPmlwNl96b25lLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9oYXNfc2NvcGUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhYTUzMzJiYjNiNzBjMWE5YWNiYTFiZWEzZWEwZWNiOTAiPmlwNl96b25lLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9oYXNfem9uZSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2E4NzI3YzA4MWI2YTgwOTkyODgxZDQ4MWQwNjgwZGI3OCI+aXA2X3pvbmUuaDwvYT48L2xpPgogPGxpPmlwNl9hZGRyX2xhY2tzX3pvbmUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhZDk2M2JmM2U5Njk1YmE4OTgyNzFlMzE0OTc1ZjVjOTciPmlwNl96b25lLmg8L2E+PC9saT4KKzxsaT5pcDZfYWRkcl9uZXRfZXEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhOWE5ODNjN2Q2MTNhYjQ1ZTM3YWFmNjZjMDY3YTBjN2EiPmlwNl9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcDZfYWRkcl9uZXRfem9uZWxlc3NfZXEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhZmM5ZDJiOGQwYTA1ZjJmZjIzYWIzYjdmZDNiZjgyMjkiPmlwNl9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9uZXRjbXAmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhNzZiMDFmNzZiNjU2NDc3NjdkMDBlZTlmYWQ5ZmJhYTIiPmlwNl9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9uZXRjbXBfem9uZWxlc3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhY2MxNjIyYWI4OTU2ODBkYTBhM2I2ZTVlNTYwNzAzNDIiPmlwNl9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcDZfYWRkcl9wYWNrZWRfZXEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhYTMyNGFjNjVkNTM3OTk3ZWJhYWVkNzhiZDQwZjZkYTkiPmlwNl9hZGRyLmg8L2E+PC9saT4KIDxsaT5JUDZfQUREUl9QQVJUJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYTFkNzhmZWViNTBhZWM4ZjJjMDdkODQwODI5ZjQ5ZGRkIj5pcDZfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA2X2FkZHJfc2VsZWN0X3pvbmUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhYzgzZjNlN2M4ZDY1ZDNjNzg0YmZmYzlkZWMyOWI3MGMiPmlwNl96b25lLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl9zZXQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhYTdiNGJhNDIwMmI1ZjY0ZGVlNjA1ZmUxNTllOWMzYWQiPmlwNl9hZGRyLmg8L2E+PC9saT4KQEAgLTI1Niw2ICsyNjIsOCBAQAogPGxpPmlwNl9hZGRyX3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDZfX2FkZHJfOGguaHRtbCNhYWNhOWU3OTZlOTNhMzU1Mjk0YzQ5NTRjMDhkMDE3NjIiPmlwNl9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl90ZXN0X3pvbmUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhYzNlYzVmOTRlMWNkNjJiMTIzN2VmY2EzNzIzZGMwNmUiPmlwNl96b25lLmg8L2E+PC9saT4KIDxsaT5pcDZfYWRkcl96b25lJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWVlODNlMTI2NDlmYTk3MDY4NTdjOWFkOGY5ZWY4NjM0Ij5pcDZfem9uZS5oPC9hPjwvbGk+Cis8bGk+aXA2X2FkZHJfem9uZV9lcSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FiYzZkNWY4MzNiMmFiZWYzMWFhNjAyZGMxMWFjZTBhOSI+aXA2X3pvbmUuaDwvYT48L2xpPgorPGxpPmlwNl9hZGRyX3pvbmVsZXNzX2VxJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYTgxMWQ4YTJhYTY0MTdhZTIyYTdhNDZiMjdkOWVhZDI2Ij5pcDZfYWRkci5oPC9hPjwvbGk+CiA8bGk+aXA2X2Noa3N1bV9wc2V1ZG8oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImluZXRfX2Noa3N1bV84Yy5odG1sI2ExMDI1NDRiY2E1OTEyYzc4NjQ5ZTI1YTQ1YTdkMGE4OCI+aW5ldF9jaGtzdW0uYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iaW5ldF9fY2hrc3VtXzhoLmh0bWwjYTEwMjU0NGJjYTU5MTJjNzg2NDllMjVhNDVhN2QwYTg4Ij5pbmV0X2Noa3N1bS5oPC9hPjwvbGk+CiA8bGk+aXA2X2Noa3N1bV9wc2V1ZG9fcGFydGlhbCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iaW5ldF9fY2hrc3VtXzhjLmh0bWwjYWU0MjE4ZTA4NTEwZmQ5MmM5YTY5OWM0ZTVkOWZjMTdiIj5pbmV0X2Noa3N1bS5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJpbmV0X19jaGtzdW1fOGguaHRtbCNhZTQyMThlMDg1MTBmZDkyYzlhNjk5YzRlNWQ5ZmMxN2IiPmluZXRfY2hrc3VtLmg8L2E+PC9saT4KIDxsaT5pcDZfY3VycmVudF9kZXN0X2FkZHImIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcF84aC5odG1sI2ExNzY1MjVjMjE5MmQzN2VlOWVhZWJhODAxMmM1ZDljMCI+aXAuaDwvYT48L2xpPgpAQCAtMjg1LDcgKzI5MywyMCBAQAogPGxpPmlwXzJfaXA2JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNmFkZHIuaHRtbCNnYTA2ZTc1YmNkMTk4MDEyYjViYTM5NDgwYzIzMzYwOGJkIj5pcF9hZGRyLmg8L2E+PC9saT4KIDxsaT5JUF9BQ0NFUFRfTElOS19MQVlFUl9BRERSRVNTRURfUE9SVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF84Yy5odG1sI2ExODVjN2Q2MzgwNzExODQ3MTA1NDMwOTMxNjkyYjI2NyI+aXA0LmM8L2E+PC9saT4KIDxsaT5JUF9BRERSX0FOWSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2EzZTVlNjdiNzI5MmIxNTYwMzQ1NjBmZWYyMjAyNzc2YyI+aXBfYWRkci5oPC9hPjwvbGk+Cis8bGk+aXBfYWRkcl9jbXAmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EwMDhjOWM5MmQ3NzBjYzAzMGVhMDU0ZTZiMjU5ODM1YSI+aXBfYWRkci5oPC9hPjwvbGk+Cis8bGk+aXBfYWRkcl9jbXBfem9uZWxlc3MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2FkYjY2ZjZkNWZhOTI2ZWQ0YjBlNjlkYjU4ZGZmY2JlNCI+aXBfYWRkci5oPC9hPjwvbGk+Cis8bGk+aXBfYWRkcl9lcSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTViNDAxNThiZGZmYTRiMGM4MWM0ZWU3NzA2NmU2YjI4Ij5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcF9hZGRyX2lzYW55JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhMjc5MTE4ODkwZTZhOTBhYTc0MDA1MWZiOGIwY2M1ZjQiPmlwX2FkZHIuaDwvYT48L2xpPgorPGxpPmlwX2FkZHJfaXNhbnlfdmFsJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhY2Q4ZjVhYTE1MWNmZjk2NmZkMjgzNjhiODVmMzhjMDUiPmlwX2FkZHIuaDwvYT48L2xpPgorPGxpPmlwX2FkZHJfaXNicm9hZGNhc3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2FhMzM0NTcwNmUzYWE4YjMyZGQ2MzBjMTk1YjA1M2U3NSI+aXBfYWRkci5oPC9hPjwvbGk+Cis8bGk+aXBfYWRkcl9pc2xpbmtsb2NhbCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTMzYmMwNzliYWFmNTEzYTlhNzM4MWI5NTMxYTFmNjUzIj5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcF9hZGRyX2lzbG9vcGJhY2smIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EwZmM4YmY2NjYyODA5Mjc0NzUwODY4NjgzYjNhNDIyZSI+aXBfYWRkci5oPC9hPjwvbGk+Cis8bGk+aXBfYWRkcl9pc211bHRpY2FzdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTIxNzBkM2VlMTNkZDIyNzIyMjIyMjI4ZTdiMWM1NzUyIj5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcF9hZGRyX25ldF9lcSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWQxYmJiZTRjOTNlYTIzNjg2NjNlOTA4MTQ5NTNiOTI5Ij5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5pcF9hZGRyX25ldGNtcCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTNhMjEyM2YwYmJmNmZlODQzYzg1NDJlMzQ5YzY4MGViIj5pcF9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcF9hZGRyX3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EzMzVhOGM5ZGY2NjMxOWU4OGExYTUyOTA0N2NlMGExZSI+aXBfYWRkci5oPC9hPjwvbGk+Cis8bGk+aXBfYWRkcl96b25lbGVzc19lcSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3Ij5pcF9hZGRyLmg8L2E+PC9saT4KKzxsaT5JUF9BTllfVFlQRSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWJlNDNiMTU0NTMzYjczNTg1YzRlNThmNTY4MzcwZWRlIj5pcF9hZGRyLmg8L2E+PC9saT4KIDxsaT5pcF9jdXJyZW50X2Rlc3RfYWRkciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImlwXzhoLmh0bWwjYTkxMzU5Nzc4NjgwMTdjM2RlZWVjODZiNTI1ZTEzOTk3Ij5pcC5oPC9hPjwvbGk+CiA8bGk+aXBfY3VycmVudF9oZWFkZXJfcHJvdG8mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcF84aC5odG1sI2FmMjdjNDNjMjNiNTlkNjhhODQ2M2NkNWFkMDM1YjIwZiI+aXAuaDwvYT48L2xpPgogPGxpPmlwX2N1cnJlbnRfaGVhZGVyX3RvdF9sZW4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJpcF84aC5odG1sI2EyY2ExNWVhMjg1YTEwOTgyMjk0Mzc4Y2Q3YjhlODNlMiI+aXAuaDwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19sLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2wuaHRtbAppbmRleCA1Yjk4YjVhLi5iNWFhMmEwIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2wuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX2wuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTgsNiArMTE4LDcgQEAKIDxsaT5MV0lQXzZMT1dQQU5fSU5GRVJfU0hPUlRfQUREUkVTUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imxvd3BhbjZfX29wdHNfOGguaHRtbCNhNmE1NDJjZDcyYTYyNzBiNzIzMWI4YjkzZjgwNDEyMDciPmxvd3BhbjZfb3B0cy5oPC9hPjwvbGk+CiA8bGk+TFdJUF82TE9XUEFOX0lQSEMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJsb3dwYW42X19vcHRzXzhoLmh0bWwjYTBmMTc4YTg2ZDAyZTBiYTQxNjhjYWZlM2RlNWYzYWZhIj5sb3dwYW42X29wdHMuaDwvYT48L2xpPgogPGxpPkxXSVBfNkxPV1BBTl9OVU1fQ09OVEVYVFMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJsb3dwYW42X19vcHRzXzhoLmh0bWwjYTRmZmE4OWYzOWFiZjkzY2M1OTlmNzhjNWE4YmIwYTRhIj5sb3dwYW42X29wdHMuaDwvYT48L2xpPgorPGxpPkxXSVBfQUNEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2FjZC5odG1sI2dhNmYxNjY3ODY2MzM1Y2FkM2E3YjEyMjFiZDBiMjc0ZTciPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9BTElHTk1FTlRfQ0FTVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19jb21waWxlcl9fYWJzdHJhY3Rpb24uaHRtbCNnYWFkZTg3OTczZDcyMTM1YjBiM2FmY2NmZmY0ZjYyZWI4Ij5hcmNoLmg8L2E+PC9saT4KIDxsaT5MV0lQX0FMTE9XX01FTV9GUkVFX0ZST01fT1RIRVJfQ09OVEVYVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19tZW0uaHRtbCNnYTBhM2VmNjA5ODgxM2MxMDNlNWFiYTA3ZGE3NmUxNWUyIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfQUxUQ1AmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2EyNmRlZTBlNWQ5YzUxYjFkZGEwYWRhZDI5Yzc3MGE3NyI+b3B0Lmg8L2E+PC9saT4KQEAgLTEyOCw3ICsxMjksNiBAQAogPGxpPkxXSVBfQVNTRVJUX0NPUkVfTE9DS0VEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2xvY2suaHRtbCNnYTZhMzAwNDBkYjMwN2IzNDU5ZmMxMTkwNmJkNDMzZjc1Ij5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfQVVUT0lQJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2F1dG9pcC5odG1sI2dhYWYxYjNhMDg5ODI3MjIzNTg5YmFmMWI3ZjRmNTcwNjkiPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9BVVRPSVBfQ1JFQVRFX1NFRURfQUREUiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImF1dG9pcF84Yy5odG1sI2FjZWM3NTA2OWY2ZTZlY2JlMjAwYzU2OTFlNTZlY2Q0MyI+YXV0b2lwLmM8L2E+PC9saT4KLTxsaT5MV0lQX0FVVE9JUF9SQU5EJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYXV0b2lwXzhjLmh0bWwjYTYzNDUzNTE1NmNjMWE4Y2Y5ZjA0ZDNkNWM3NGY4YTU5Ij5hdXRvaXAuYzwvYT48L2xpPgogPGxpPkxXSVBfQlJPQURDQVNUX1BJTkcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19faWNtcC5odG1sI2dhODA4OGNiNTZkMWE4NGZlNTU0YjExYmMxNWQ4NGIyYjkiPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9DSEVDS1NVTV9DVFJMX1BFUl9ORVRJRiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19jaGVja3N1bS5odG1sI2dhM2VjYzUyNDZhMGM2Y2E1YWVkNTZjMmQ3ODk5YzEwMDQiPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9DSEVDS1NVTV9PTl9DT1BZJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2NoZWNrc3VtLmh0bWwjZ2E5ZjYwMTgzZjA0NDJiZGJlZWZkNmIzOTVjNjY0NzYxMyI+b3B0Lmg8L2E+PC9saT4KQEAgLTE1OCw2ICsxNTgsOCBAQAogPGxpPkxXSVBfREhDUF9BVVRPSVBfQ09PUCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hdXRvaXAuaHRtbCNnYTFhOTFlMThkYmI5Nzc3YmM2ZTM5NjNmNTJjYjVmOWZlIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfREhDUF9BVVRPSVBfQ09PUF9UUklFUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hdXRvaXAuaHRtbCNnYTRmZjNmOTQxYjRjNzFhMDRiMGMzMGZiZWU1YjE5OGMyIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfREhDUF9CT09UUF9GSUxFJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYTNjMjk4M2NiZDIyODAxMWRkM2UxOGNiNDE3ZTdlNDIzIj5vcHQuaDwvYT48L2xpPgorPGxpPkxXSVBfREhDUF9ESVNDT1ZFUl9BRERfSE9TVE5BTUUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhZDZiMDMwZjhlODI4NjY2OTUzNjYxNTc4ZjkzNmU2MDUiPm9wdC5oPC9hPjwvbGk+Cis8bGk+TFdJUF9ESENQX0RPRVNfQUNEX0NIRUNLJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYWRkMGM4MjMyOWZjY2I3ODM0MmUzZWVmOTgyMzNhYTU1Ij5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfREhDUF9HRVRfTlRQX1NSViYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwjZ2EyY2MxODMxNWVkY2Q1ZmZjMDgzZDEyNTZmN2QyMmE4MyI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX0RIQ1BfTUFYX0ROU19TRVJWRVJTJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYTYwY2NjMjBmYmIwOGJlMjRiNWQ1ZjU5OWRkNDdhNmE2Ij5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfREhDUF9NQVhfTlRQX1NFUlZFUlMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhOWQwMTRlM2Y3ZGM5ZTFlN2M3ZGVjZDg2NTJiYTY1ZTIiPm9wdC5oPC9hPjwvbGk+CkBAIC0yMDYsNiArMjA4LDcgQEAKIDxsaT5MV0lQX0hUVFBEX0NVU1RPTV9GSUxFUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhZGFkYjcwZjU2NjNjZGYwMDRiZjg3OWUzYjVkMzI2YmQiPmh0dHBkX29wdHMuaDwvYT48L2xpPgogPGxpPkxXSVBfSFRUUERfRFlOQU1JQ19GSUxFX1JFQUQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTFlZThkN2M5NzVjN2UzZDFjOWQ5ZGQ5YjQzNjYwYzc5Ij5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX0RZTkFNSUNfSEVBREVSUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhNzU5MzJmYzVlZWI5YWJlZGRmZGFmODQxMzU3NGM2ZDciPmh0dHBkX29wdHMuaDwvYT48L2xpPgorPGxpPkxXSVBfSFRUUERfRklMRV9FWFRFTlNJT04mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYWEzNjQ4YTlmZGVmZTNhYjFjODkwYjcxNWE0Nzg2NDI5Ij5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX0ZJTEVfU1RBVEUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYWVkZDBmYTNkMzU2MTcwZDhjYTM1NTdhY2I0MTBmZDdjIj5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX0ZTX0FTWU5DX1JFQUQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTUxY2I2NzNjYjVjYzM2MmFjYzQwOWYyM2MxZTBhMzMxIj5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX0tJTExfT0xEX09OX0NPTk5FQ1RJT05TX0VYQ0VFREVEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2EwZDUwNzQ5NjVlZmQ0MDc4NjE4MjI4Nzg5NWZlYjY5MSI+aHR0cGRfb3B0cy5oPC9hPjwvbGk+CkBAIC0yMTcsNiArMjIwLDcgQEAKIDxsaT5MV0lQX0hUVFBEX1JFUV9RVUVVRUxFTiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhZWYyM2Y0ZTM1MjVhYTVkZDBlY2JjZTliNWUxNmQ0ZTAiPmh0dHBkX29wdHMuaDwvYT48L2xpPgogPGxpPkxXSVBfSFRUUERfU1NJJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FjYjcwZTBjZGQzMGE5NDBmOGJjZTY4MWM2Y2M2Mzk0OSI+aHR0cGRfb3B0cy5oPC9hPjwvbGk+CiA8bGk+TFdJUF9IVFRQRF9TU0lfQllfRklMRV9FWFRFTlNJT04mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYWJhMmQ0Y2ZlNGMxZjViZGJlMzdiMzM5MDg0YTdkNDY2Ij5odHRwZF9vcHRzLmg8L2E+PC9saT4KKzxsaT5MV0lQX0hUVFBEX1NTSV9FWFRFTlNJT05TJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2EwMDZiYWE3MjE5Y2ZmNWVlMDJmNWExNGVmN2Q3Yzg5ZCI+aHR0cGRfb3B0cy5oPC9hPjwvbGk+CiA8bGk+TFdJUF9IVFRQRF9TU0lfSU5DTFVERV9UQUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTk3NTk2MWE2ZDIyZDFhMDc3MTE4ZmI4NWRmZWM4MDlhIj5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX1NTSV9NVUxUSVBBUlQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTMxNjdkNTJkMjBjZjkwODU3ZTJjODA5YjkyNDU4YmYwIj5odHRwZF9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0hUVFBEX1NTSV9SQVcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTUyMDg1ODc3OGI4NGQ0ZDJmYTEyNTI5NGMwZjExOWU1Ij5odHRwZF9vcHRzLmg8L2E+PC9saT4KQEAgLTI4Miw3ICsyODYsOCBAQAogPGxpPkxXSVBfTE9XUEFONl9ERUNPTVBSRVNTSU9OX0RFQlVHJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibG93cGFuNl9fb3B0c184aC5odG1sI2E3ZjRkYjBiZDNkYmUzNmExOWVmYmQyNGNkOGI3ZmNmMCI+bG93cGFuNl9vcHRzLmg8L2E+PC9saT4KIDxsaT5MV0lQX0xPV1BBTjZfSVBfQ09NUFJFU1NFRF9ERUJVRyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imxvd3BhbjZfX29wdHNfOGguaHRtbCNhMjMxYmM3NTg0ODQzNzZkZmQyZGVkNjkzMWM0NjJkZjgiPmxvd3BhbjZfb3B0cy5oPC9hPjwvbGk+CiA8bGk+TFdJUF9NQUtFVTMyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZGVmXzhoLmh0bWwjYWNmNTZkM2RhOTJhMGE3YThhNjJhNjE3ZTc5M2U5NDhjIj5kZWYuaDwvYT48L2xpPgotPGxpPkxXSVBfTUFSS19UQ1BJUF9USFJFQUQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fbG9jay5odG1sI2dhYjk3ZDAxNGY3ZWNmM2IyMGY5ZDVhYmMyZDBhNzlhM2UiPm9wdC5oPC9hPjwvbGk+Cis8bGk+TFdJUF9NQVJLX1RDUElQX1RIUkVBRCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19sb2NrLmh0bWwjZ2FiOTdkMDE0ZjdlY2YzYjIwZjlkNWFiYzJkMGE3OWEzZSI+c3lzLmg8L2E+PC9saT4KKzxsaT5MV0lQX01ETlNfU0VBUkNIJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnNfX29wdHMuaHRtbCNnYWFmNDg5NjA0ZGNkZjk0ZDJhZGNkNzIzZjZjN2Q3MTYzIj5tZG5zX29wdHMuaDwvYT48L2xpPgogPGxpPkxXSVBfTUVNX0FMSUdOJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2NvbXBpbGVyX19hYnN0cmFjdGlvbi5odG1sI2dhYThlODcyNGViMWMyMjBjYmJiOTBkZTllMTc1Y2UxZGMiPmFyY2guaDwvYT48L2xpPgogPGxpPkxXSVBfTUVNX0FMSUdOX0JVRkZFUiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19jb21waWxlcl9fYWJzdHJhY3Rpb24uaHRtbCNnYTI1NTkxZGNiNzJmY2NjN2I1ZGM0NmZiYzE5NTk2OTRlIj5hcmNoLmg8L2E+PC9saT4KIDxsaT5MV0lQX01FTV9BTElHTl9TSVpFJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2NvbXBpbGVyX19hYnN0cmFjdGlvbi5odG1sI2dhZWYyMDRiZTUxMWZkMzJmNjgxYjU1YWJjMDhlOWFlMTgiPmFyY2guaDwvYT48L2xpPgpAQCAtMzQ3LDYgKzM1Miw3IEBACiA8bGk+TFdJUF9OT19TVERERUZfSCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19jb21waWxlcl9fYWJzdHJhY3Rpb24uaHRtbCNnYTUzOTU0ZDUwN2MwOWU1MjFlYzBkNDRhMjQ1MGJiODlkIj5hcmNoLmg8L2E+PC9saT4KIDxsaT5MV0lQX05PX1NURElOVF9IJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2NvbXBpbGVyX19hYnN0cmFjdGlvbi5odG1sI2dhMTIyYzc1NGRiOTZlY2FkMjNiYzZmNDU0MWQ2MzYwYzEiPmFyY2guaDwvYT48L2xpPgogPGxpPkxXSVBfTk9BU1NFUlQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fYXNzZXJ0aW9ucy5odG1sI2dhNzFiNzc4NzgwMmFiYmZjMjIxOGZiMWYzOWY5NDhhNDEiPmRlYnVnLmg8L2E+PC9saT4KKzxsaT5MV0lQX05TQ19JUFY0X0FERFJfVkFMSUQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sI2E3MTY1NzZmMzQ4NTUyNGQ0NGVmMDg0MzgzOWVmMDU2NCI+bmV0aWYuaDwvYT48L2xpPgogPGxpPkxXSVBfTlNDX0lQVjRfQUREUkVTU19DSEFOR0VEJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfOGguaHRtbCNhZWI0ZTc5MDE5OWIwMjQ2OWFhMDRjMDQ0ZWY1Y2ZhMzIiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5MV0lQX05TQ19JUFY0X0dBVEVXQVlfQ0hBTkdFRCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhoLmh0bWwjYTIyNDAwZDIyMDI1ODFiNGE3MjczY2RlZDcxMmFkZjQ5Ij5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+TFdJUF9OU0NfSVBWNF9ORVRNQVNLX0NIQU5HRUQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sI2FkNzQ3MDcyNzcxYTg4NzQ0M2FiMzNmOTBhMTIwNzdkNCI+bmV0aWYuaDwvYT48L2xpPgpAQCAtMzg5LDYgKzM5NSw3IEBACiA8bGk+TFdJUF9TT19TTkRSQ1ZUSU1FT19OT05TVEFOREFSRCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbCNnYTViMTE1YmFjYjU2OTc2M2Q4YTM4ODlhMTIyMjllOTQyIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfU09fU05EVElNRU8mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2ExMTYyY2I2ODVmMjAyZDliMjFjMTEzNDRiODIwOWE1OCI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX1NPQ0tFVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbCNnYTFjYjYyY2U2MWFjMzlkN2Q2NzI4YWU1ZDNkM2I5MjdmIj5vcHQuaDwvYT48L2xpPgorPGxpPkxXSVBfU09DS0VUX0VYVEVSTkFMX0hFQURFUlMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2E1MjRjMDEzZWNkZDhhNDVhMjk0OWYyYTQzMzQ2OWU4MiI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX1NPQ0tFVF9PRkZTRVQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2FkMDE5N2M4NDVmYmI0NGM5MjBiMjcyZjBmZWYzYjU3ZSI+b3B0Lmg8L2E+PC9saT4KIDxsaT5MV0lQX1NPQ0tFVF9QT0xMJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sI2dhNmMxNGQ3MDVlMzMyMTQyOTY4M2YyNGRlOWY1YTcyMDAiPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9TT0NLRVRfU0VMRUNUJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sI2dhNjg0MTcwNzhiNzFiMGJlOTczNTI1NmY1MjkzM2RjZGIiPm9wdC5oPC9hPjwvbGk+CkBAIC0zOTksNiArNDA2LDcgQEAKIDxsaT5MV0lQX1NUQVRTX0RJU1BMQVkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc3RhdHMuaHRtbCNnYWNkYzM4ZWQ1OGQxOTAwYjVkM2QxMDlhNjViZTFjM2QxIj5vcHQuaDwvYT48L2xpPgogPGxpPmx3aXBfc3RyaWNtcCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYTI2M2NiYWZjYjY5N2VmZjk2NDEzOWE5OTk4YTY2NjhhIj5kZWYuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYTI2M2NiYWZjYjY5N2VmZjk2NDEzOWE5OTk4YTY2NjhhIj5kZWYuaDwvYT48L2xpPgogPGxpPmx3aXBfc3RybmljbXAoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2E5OTdkY2M0OTQ1MTEyMWQ0ZWQ3NTViMzNiYzdiZDI2YSI+ZGVmLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2E5OTdkY2M0OTQ1MTEyMWQ0ZWQ3NTViMzNiYzdiZDI2YSI+ZGVmLmg8L2E+PC9saT4KKzxsaT5sd2lwX3N0cm5pc3RyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiPmRlZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiPmRlZi5oPC9hPjwvbGk+CiA8bGk+bHdpcF9zdHJuc3RyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYTJiYTRiNGUyZGQ3ZTFjODU2ZmVkYzZhNjA2OTgxM2UiPmRlZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhYTJiYTRiNGUyZGQ3ZTFjODU2ZmVkYzZhNjA2OTgxM2UiPmRlZi5oPC9hPjwvbGk+CiA8bGk+TFdJUF9TVVBQT1JUX0NVU1RPTV9QQlVGJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0icGJ1Zl84aC5odG1sI2E2NDE3NGM1MTY5YjQ4ZGMxNzY3NDMyNGFmZDljNjNiOSI+cGJ1Zi5oPC9hPjwvbGk+CiA8bGk+TFdJUF9UQ1AmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2FhNGVkOThkZWI5N2I3N2M2MzNjYjg4NzBmMzRjNzFlOSI+b3B0Lmg8L2E+PC9saT4KQEAgLTQwNyw2ICs0MTUsNyBAQAogPGxpPkxXSVBfVENQX0tFRVBBTElWRSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbCNnYThiOTM2OWFiMjYwZjAzMjY4NmE4MWM3N2M1YjRkYjc3Ij5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfVENQX01BWF9TQUNLX05VTSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX190Y3AuaHRtbCNnYWFhYzBlOWY1NTlhOGUzYzI1MWYzNTA0Y2ViY2Y0NGRjIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfVENQX1BDQl9OVU1fRVhUX0FSR1MmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2E0MGIxY2RhZDUyZWFhOTFhM2Y1YzI0MmZjOTJlZTIyMyI+b3B0Lmg8L2E+PC9saT4KKzxsaT5MV0lQX1RDUF9SVE9fVElNRSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX190Y3AuaHRtbCNnYWRlMjMzNzM5MDE5ODBjNmU3YTQzY2VmODEzMzg2ZWJlIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfVENQX1NBQ0tfT1VUJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhZjFiNmEwMTVkMjlmZWE2N2I5MDZjMjc2ZTFlODMxNGYiPm9wdC5oPC9hPjwvbGk+CiA8bGk+TFdJUF9UQ1BfVElNRVNUQU1QUyYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX190Y3AuaHRtbCNnYTI0OWJjNDUwYmI4MThjZjJlZjNjZjE0NzJmZjM1NGZkIj5vcHQuaDwvYT48L2xpPgogPGxpPkxXSVBfVENQSVBfQ09SRV9MT0NLSU5HJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2xvY2suaHRtbCNnYThlNDYyMzI3OTQzNDljMjA5ZThlZDRlOWU3ZTRmMDExIj5vcHQuaDwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19tLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX20uaHRtbAppbmRleCAwZTIwOGQyLi4xNGNjZGQ4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX20uaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX20uaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDAsMjYgKzEwMCw2NCBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBmdW5jdGlvbnMsIHZhcmlhYmxlcywgZGVmaW5lcywgZW51bXMsIGFuZCB0eXBlZGVmcyB3aXRoIGxpbmtzIHRvIHRoZSBkb2N1bWVudGF0aW9uOjwvZGl2PgogCiA8aDM+PGEgaWQ9ImluZGV4X20iIG5hbWU9ImluZGV4X20iPjwvYT4tIG0gLTwvaDM+PHVsPgotPGxpPm1kbnNfY29tcHJlc3NfZG9tYWluKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhjLmh0bWwjYWI3MmU0OGNmMDc2YWZkMWUzYTA4MDMwZDFkMGJmZjllIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX3ByaXZfOGguaHRtbCNhYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiPm1kbnNfcHJpdi5oPC9hPjwvbGk+Cis8bGk+bWRuc19idWlsZF9kbnNzZF9kb21haW4oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2E3NDg1ZDc1OTc2YjczMzU0NjY4YTVhNTRiYzg2NThlZCI+bWRuc19kb21haW4uYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYTc0ODVkNzU5NzZiNzMzNTQ2NjhhNWE1NGJjODY1OGVkIj5tZG5zX2RvbWFpbi5oPC9hPjwvbGk+Cis8bGk+bWRuc19idWlsZF9ob3N0X2RvbWFpbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTE5MWQ5YjcwYTY2MDgzZjQwYWFhMDIyYzJlZDg4YjEyIj5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhMTkxZDliNzBhNjYwODNmNDBhYWEwMjJjMmVkODhiMTIiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2J1aWxkX3JlcXVlc3RfZG9tYWluKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGMuaHRtbCNhNzIyMWNiMWE4M2VkNmRjZmIzYTJiMTM2NTE1NGI0M2QiPm1kbnNfZG9tYWluLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sI2E3MjIxY2IxYTgzZWQ2ZGNmYjNhMmIxMzY1MTU0YjQzZCI+bWRuc19kb21haW4uaDwvYT48L2xpPgorPGxpPm1kbnNfYnVpbGRfcmV2ZXJzZV92NF9kb21haW4oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2FjMmQ4OTUxZTI0MzVmOTNmZGM4ODlmNmE3MWUwYzhhNiI+bWRuc19kb21haW4uYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYWMyZDg5NTFlMjQzNWY5M2ZkYzg4OWY2YTcxZTBjOGE2Ij5tZG5zX2RvbWFpbi5oPC9hPjwvbGk+Cis8bGk+bWRuc19idWlsZF9yZXZlcnNlX3Y2X2RvbWFpbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTljZGUzOTAzOWUwZTFlMjFiNDg1MWQ4NDBkNzMzOTI2Ij5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhOWNkZTM5MDM5ZTBlMWUyMWI0ODUxZDg0MGQ3MzM5MjYiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2J1aWxkX3NlcnZpY2VfZG9tYWluKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGMuaHRtbCNhMjlkZGIwYTZiYTBlZGNmMzQxMDRlYzFmNjMyMjk2OGIiPm1kbnNfZG9tYWluLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sI2EyOWRkYjBhNmJhMGVkY2YzNDEwNGVjMWY2MzIyOTY4YiI+bWRuc19kb21haW4uaDwvYT48L2xpPgorPGxpPm1kbnNfY29tcHJlc3NfZG9tYWluKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGMuaHRtbCNhYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiPm1kbnNfZG9tYWluLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sI2FiNzJlNDhjZjA3NmFmZDFlM2EwODAzMGQxZDBiZmY5ZSI+bWRuc19kb21haW4uaDwvYT48L2xpPgorPGxpPm1kbnNfY3JlYXRlX291dHBhY2tldCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTVhMDUxZWI4MWQ2YmQzNzM2NTk3M2QxMjE1YWYyM2JhIj5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhNWEwNTFlYjgxZDZiZDM3MzY1OTczZDEyMTVhZjIzYmEiPm1kbnNfb3V0Lmg8L2E+PC9saT4KIDxsaT5NRE5TX0RFQlVHJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnNfX29wdHMuaHRtbCNnYTUzYTk3NTAyZWZkY2YxMjE0Y2FiNDA3OGY5M2E2ZGM5Ij5tZG5zX29wdHMuaDwvYT48L2xpPgotPGxpPm1kbnNfZG9tYWluX2FkZF9sYWJlbCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184Yy5odG1sI2ExN2RiNjlmYTg4NzUxNTM3NDQ1MmI5NDVlOTU5YmJmOSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwjYTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ij5tZG5zX3ByaXYuaDwvYT48L2xpPgotPGxpPm1kbnNfZG9tYWluX2VxKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhjLmh0bWwjYTUyZDhmNzA0MzJhZTk5ODgxNGYxNmIxODQzMTIxM2NkIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX3ByaXZfOGguaHRtbCNhNTJkOGY3MDQzMmFlOTk4ODE0ZjE2YjE4NDMxMjEzY2QiPm1kbnNfcHJpdi5oPC9hPjwvbGk+Cis8bGk+bWRuc19kb21haW5fYWRkX2RvbWFpbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTY0MjQ0OWNiZjAwNzRmMWEyNTA0ZTcyMTU4ZTc1ODU5Ij5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhNjQyNDQ5Y2JmMDA3NGYxYTI1MDRlNzIxNThlNzU4NTkiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2RvbWFpbl9hZGRfbGFiZWwoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84Yy5odG1sI2ExN2RiNjlmYTg4NzUxNTM3NDQ1MmI5NDVlOTU5YmJmOSI+bWRuc19kb21haW4uYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwjYTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ij5tZG5zX2RvbWFpbi5oPC9hPjwvbGk+Cis8bGk+bWRuc19kb21haW5fYWRkX3N0cmluZygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYWYyMjhkMWNmOGQ3NzljNzE0YTAxNjcwMmRiMDk1ZGI2Ij5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhZjIyOGQxY2Y4ZDc3OWM3MTRhMDE2NzAyZGIwOTVkYjYiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2RvbWFpbl9kZWJ1Z19wcmludCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTBhZmYwOTY2OTVlZWJhY2IyNjY4ZDI3NjI3MjI4NjBjIj5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhMGFmZjA5NjY5NWVlYmFjYjI2NjhkMjc2MjcyMjg2MGMiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2RvbWFpbl9lcSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYTUyZDhmNzA0MzJhZTk5ODgxNGYxNmIxODQzMTIxM2NkIj5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhNTJkOGY3MDQzMmFlOTk4ODE0ZjE2YjE4NDMxMjEzY2QiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX2dldF9zZXJ2aWNlX3R4dF91c2VyZGF0YSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWVlNWI0ODliNzdiNzQ1MTE1MTdkNDFmNzYwOWNjZDQ5Ij5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FlZTViNDg5Yjc3Yjc0NTExNTE3ZDQxZjc2MDljY2Q0OSI+bWRucy5oPC9hPjwvbGk+Cis8bGk+TUROU19NQVhfUkVRVUVTVFMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhMTdhOTg4NGFmODE2OWNmMTlkNTdkODAwNWZjM2Q5NWUiPm1kbnNfb3B0cy5oPC9hPjwvbGk+CiA8bGk+TUROU19NQVhfU0VSVklDRVMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhODI3NDllZTA4YmUyMTk2N2I2ZGFmNTc3Yjk3MTBhYzYiPm1kbnNfb3B0cy5oPC9hPjwvbGk+Ci08bGk+bWRuc19uYW1lX3Jlc3VsdF9jYl90JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184aC5odG1sI2ExOWYxMmQ3MDkyZGU2ZmU5MGQ1ODQzZTRlZjhkNDUzNiI+bWRucy5oPC9hPjwvbGk+Ci08bGk+bWRuc19yZWFkbmFtZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184Yy5odG1sI2FiNWY0OWQ5MzU2YTc2ODc5ZTBlNmExNGViMDY0M2IyMyI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19wcml2XzhoLmh0bWwjYWI1ZjQ5ZDkzNTZhNzY4NzllMGU2YTE0ZWIwNjQzYjIzIj5tZG5zX3ByaXYuaDwvYT48L2xpPgotPGxpPm1kbnNfcmVzcF9hZGRfbmV0aWYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FhNjE5YWM4ZjQ2YTRiNDAyMTE5NTcyMGYwMzU1Y2JlYiI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYTYxOWFjOGY0NmE0YjQwMjExOTU3MjBmMDM1NWNiZWIiPm1kbnMuaDwvYT48L2xpPgotPGxpPm1kbnNfcmVzcF9hZGRfc2VydmljZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTgyNGU5OTJlOTRiZTIxNmM4ZTA1OWY0OGY0OWE1OWNlIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSI+bWRucy5oPC9hPjwvbGk+Cis8bGk+TUROU19NQVhfU1RPUkVEX1BLVFMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhODI3ZDFkMmFiZDI0YTI2NjM4NzIzY2ZkMGE4YjllZmQiPm1kbnNfb3B0cy5oPC9hPjwvbGk+Cis8bGk+bWRuc19tdWx0aWNhc3RfcHJvYmVfdGltZW91dF9yZXNldF9pcHY0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhZGQ2NGM4M2Y3NTM4NDJmMmNlYjQwMDc5MjE3YzY2YTEiPm1kbnNfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2FkZDY0YzgzZjc1Mzg0MmYyY2ViNDAwNzkyMTdjNjZhMSI+bWRuc19vdXQuaDwvYT48L2xpPgorPGxpPm1kbnNfbXVsdGljYXN0X3Byb2JlX3RpbWVvdXRfcmVzZXRfaXB2NigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTRlMGFhNmY2ZTNiYTkwYzg4ZTFiZjFiODNkMDVjZDJmIj5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhNGUwYWE2ZjZlM2JhOTBjODhlMWJmMWI4M2QwNWNkMmYiPm1kbnNfb3V0Lmg8L2E+PC9saT4KKzxsaT5tZG5zX211bHRpY2FzdF90aW1lb3V0XzI1dHRsX3Jlc2V0X2lwdjQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2FlNGEwYWU2YTAzOTIxMGY2MGY2NjY5OTlmOWI4MDdmNyI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYWU0YTBhZTZhMDM5MjEwZjYwZjY2Njk5OWY5YjgwN2Y3Ij5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19tdWx0aWNhc3RfdGltZW91dF8yNXR0bF9yZXNldF9pcHY2KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhNWRlNzQxZmQ4NWMzNjc1ZTNkMjE2MTcyN2RkOWEyMjAiPm1kbnNfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2E1ZGU3NDFmZDg1YzM2NzVlM2QyMTYxNzI3ZGQ5YTIyMCI+bWRuc19vdXQuaDwvYT48L2xpPgorPGxpPm1kbnNfbXVsdGljYXN0X3RpbWVvdXRfcmVzZXRfaXB2NCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTdiNjM3YjZmNDE5NzZmMzVmN2I0OGU3ZjI5MDQ4MjliIj5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhN2I2MzdiNmY0MTk3NmYzNWY3YjQ4ZTdmMjkwNDgyOWIiPm1kbnNfb3V0Lmg8L2E+PC9saT4KKzxsaT5tZG5zX211bHRpY2FzdF90aW1lb3V0X3Jlc2V0X2lwdjYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2E3OTBlYTBhYmEyZDI1MmY5NmMyMzc0OGVhMGMwMzNhNyI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTc5MGVhMGFiYTJkMjUyZjk2YzIzNzQ4ZWEwYzAzM2E3Ij5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19uYW1lX3Jlc3VsdF9jYl90JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184aC5odG1sI2E2ZDY1OGUyYzUyMjhiMjI0Yjg5NDg4NjYzZDJiNzJmNyI+bWRucy5oPC9hPjwvbGk+Cis8bGk+TUROU19PVVRQVVRfUEFDS0VUX1NJWkUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhMGYwYWRmN2IxZDc0MmI0ZWE4MThjMWI3ZjZiMGM1NDciPm1kbnNfb3B0cy5oPC9hPjwvbGk+Cis8bGk+bWRuc19wcmVwYXJlX3R4dGRhdGEoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2FiOGE4ZTVkNWJhOGNmYmIxOGU3ZmYyNTg4NzkyY2U1ZiI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYWI4YThlNWQ1YmE4Y2ZiYjE4ZTdmZjI1ODg3OTJjZTVmIj5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+TUROU19QUk9CRV9DT1VOVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGMuaHRtbCNhZjI0ZTU5MGJmOWMyMjVhMmVmYzBiNTVmYWMxNDgwOWQiPm1kbnMuYzwvYT48L2xpPgorPGxpPk1ETlNfUFJPQkVfREVMQVlfTVMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhN2Y2ODUzZDAxYWQzMmViNmNlOTlhZTU1MzA3YTM3ZDkiPm1kbnNfb3B0cy5oPC9hPjwvbGk+Cis8bGk+bWRuc19yZWFkbmFtZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhjLmh0bWwjYWI1ZjQ5ZDkzNTZhNzY4NzllMGU2YTE0ZWIwNjQzYjIzIj5tZG5zX2RvbWFpbi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGguaHRtbCNhYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiPm1kbnNfZG9tYWluLmg8L2E+PC9saT4KKzxsaT5tZG5zX3Jlc3BfYWRkX25ldGlmKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTY3Zjg0MmMyN2YzN2MwM2I0OGQxMGU0Y2U2ODU2YjhlIj5tZG5zLmg8L2E+PC9saT4KKzxsaT5tZG5zX3Jlc3BfYWRkX3NlcnZpY2UoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EyMTMwMTExNjYyZDA0NGIzMjk3MGNlOWM3NjNiZDQwOSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMjEzMDExMTY2MmQwNDRiMzI5NzBjZTljNzYzYmQ0MDkiPm1kbnMuaDwvYT48L2xpPgogPGxpPm1kbnNfcmVzcF9hZGRfc2VydmljZV90eHRpdGVtKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMDFjODUyMDJmNGI4NWVkYzhiNTcxZjJmNDE5ZGI1NzYiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTAxYzg1MjAyZjRiODVlZGM4YjU3MWYyZjQxOWRiNTc2Ij5tZG5zLmg8L2E+PC9saT4KIDxsaT5tZG5zX3Jlc3BfYW5ub3VuY2UoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EwZjQ2MmZiOTFhOWQwMzIzYmI0NjM2YmQ3MjVmMGU4NSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMGY0NjJmYjkxYTlkMDMyM2JiNDYzNmJkNzI1ZjBlODUiPm1kbnMuaDwvYT48L2xpPgotPGxpPm1kbnNfcmVzcF9kZWxfc2VydmljZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTNkZjJhZTc1MWNkZmRmZmIwYTU2NzM5MDk0MGViOGFkIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EzZGYyYWU3NTFjZGZkZmZiMGE1NjczOTA5NDBlYjhhZCI+bWRucy5oPC9hPjwvbGk+Cis8bGk+bWRuc19yZXNwX2RlbF9zZXJ2aWNlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhNTVmM2ZkNDZjZmUxMzc1NDUyMjEwNjg4ZmMwNWJmOWEiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTU1ZjNmZDQ2Y2ZlMTM3NTQ1MjIxMDY4OGZjMDViZjlhIj5tZG5zLmg8L2E+PC9saT4KIDxsaT5tZG5zX3Jlc3BfaW5pdCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTVmYTE1OTc4YTM5OGRhZTFhOGQ3NjIwYWUxNjliZGQzIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E1ZmExNTk3OGEzOThkYWUxYThkNzYyMGFlMTY5YmRkMyI+bWRucy5oPC9hPjwvbGk+Cis8bGk+bWRuc19yZXNwX25ldGlmX2FjdGl2ZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTA5YjdhMjU5ZjQ5NzY0OGQ4ZWY3MzRiMDgwZjk5N2MxIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EwOWI3YTI1OWY0OTc2NDhkOGVmNzM0YjA4MGY5OTdjMSI+bWRucy5oPC9hPjwvbGk+CiA8bGk+bWRuc19yZXNwX25ldGlmX3NldHRpbmdzX2NoYW5nZWQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYjJlZGJhMTJkNWNhZDE5NDlmN2NhMDQwYWUxMmJlZWMiPm1kbnMuaDwvYT48L2xpPgogPGxpPm1kbnNfcmVzcF9yZWdpc3Rlcl9uYW1lX3Jlc3VsdF9jYigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184Yy5odG1sI2EwMWY4ODUwYjljMmQyY2Q0MGVkNzdhMTQzOGM4NWJmMSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhoLmh0bWwjYTAxZjg4NTBiOWMyZDJjZDQwZWQ3N2ExNDM4Yzg1YmYxIj5tZG5zLmg8L2E+PC9saT4KIDxsaT5tZG5zX3Jlc3BfcmVtb3ZlX25ldGlmKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWE4MTQ0ZTNjNzdhOTJjNDA0M2U2MjE0ZmY2YjYwMTBjIj5tZG5zLmg8L2E+PC9saT4KIDxsaT5tZG5zX3Jlc3BfcmVuYW1lX25ldGlmKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhN2IxNDczZTU5NWViMGMxODViYWIyOTNmM2VjMmU1MGUiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTdiMTQ3M2U1OTVlYjBjMTg1YmFiMjkzZjNlYzJlNTBlIj5tZG5zLmg8L2E+PC9saT4KLTxsaT5tZG5zX3Jlc3BfcmVuYW1lX3NlcnZpY2UoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhZjI3Mzg5NzA1OWYxYmJkZGM3NGNmY2I4MjA3NzdkZDkiPm1kbnMuaDwvYT48L2xpPgorPGxpPm1kbnNfcmVzcF9yZW5hbWVfc2VydmljZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWIxZTk4OWE0YzczMDVkNzU0Mzc3Yzc2MDUyNDc0YmViIj5tZG5zLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FiMWU5ODlhNGM3MzA1ZDc1NDM3N2M3NjA1MjQ3NGJlYiI+bWRucy5oPC9hPjwvbGk+CiA8bGk+bWRuc19yZXNwX3Jlc3RhcnQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E5M2VjY2RjMGQ5YWZmZjBmMjQxNjBkMzFjNzBlMmM5YSI+bWRucy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiPm1kbnMuaDwvYT48L2xpPgorPGxpPm1kbnNfcmVzcF9yZXN0YXJ0X2RlbGF5KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMzY3YWM4OWRkYWU2Y2JlYzNlMGE5YzU1ZTljNDY3MzciPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTM2N2FjODlkZGFlNmNiZWMzZTBhOWM1NWU5YzQ2NzM3Ij5tZG5zLmg8L2E+PC9saT4KIDxsaT5NRE5TX1JFU1BfVVNFTkVUSUZfRVhUQ0FMTEJBQ0smIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhMTcyZTU3OWNkMDlhMWRiNTFjZjIyNDMxOWMwMTIzOTYiPm1kbnNfb3B0cy5oPC9hPjwvbGk+Cis8bGk+TUROU19SRVNQT05TRV9ERUxBWV9NQVgmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhjLmh0bWwjYTQ4MmQ2YmY3MTBhZjQ0MjRiNzFlZTU3MDM0ZWRiZGJlIj5tZG5zLmM8L2E+PC9saT4KKzxsaT5tZG5zX3NlYXJjaF9zZXJ2aWNlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYzM4OGIyZWFiMzc5YTIzZGQxZjQ2ZjJhYzhkNjM3MjUiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1Ij5tZG5zLmg8L2E+PC9saT4KKzxsaT5tZG5zX3NlYXJjaF9zdG9wKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTBjNTYxN2I0ZDAyMTM1M2JiZDBmYjI0ZGRjYjhiM2FjIj5tZG5zLmg8L2E+PC9saT4KKzxsaT5tZG5zX3NlbmRfbXVsdGljYXN0X21zZ19kZWxheWVkX2lwdjQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2FjYmY1OWRjYTk0ZjI0MWMxYjU4YzdkZjFlYzRiODVlMSI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYWNiZjU5ZGNhOTRmMjQxYzFiNThjN2RmMWVjNGI4NWUxIj5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19zZW5kX211bHRpY2FzdF9tc2dfZGVsYXllZF9pcHY2KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhZjNlMTE4ZWI4MDc2MGE5NTgyNjVmNmE0YzU5YjJlNDkiPm1kbnNfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2FmM2UxMThlYjgwNzYwYTk1ODI2NWY2YTRjNTliMmU0OSI+bWRuc19vdXQuaDwvYT48L2xpPgorPGxpPm1kbnNfc2VuZF9vdXRwYWNrZXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2FlOGM5ZDJiZDg5ZDZjYTdlODY2OGJhNzA4OTI1ZDJlOCI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYWU4YzlkMmJkODlkNmNhN2U4NjY4YmE3MDg5MjVkMmU4Ij5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19zZW5kX3JlcXVlc3QoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2ExZjdkYzk1MzZmMTI0MjYzNTczNTE4ZTZlOGUxYTE2MiI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTFmN2RjOTUzNmYxMjQyNjM1NzM1MThlNmU4ZTFhMTYyIj5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19zZW5kX3VuaWNhc3RfbXNnX2RlbGF5ZWRfaXB2NCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTJiN2E3MjFiMTlmYTMzODEzMTMzYmM5N2Y1MDNjMTk5Ij5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhMmI3YTcyMWIxOWZhMzM4MTMxMzNiYzk3ZjUwM2MxOTkiPm1kbnNfb3V0Lmg8L2E+PC9saT4KKzxsaT5tZG5zX3NlbmRfdW5pY2FzdF9tc2dfZGVsYXllZF9pcHY2KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhMjcxMzM0OGIxYjMxNGQ1ZTg4MDQ0MmYyYzEzMGUxZGMiPm1kbnNfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2EyNzEzMzQ4YjFiMzE0ZDVlODgwNDQyZjJjMTMwZTFkYyI+bWRuc19vdXQuaDwvYT48L2xpPgorPGxpPm1kbnNfc2V0X3RpbWVvdXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84Yy5odG1sI2E2MTk1ODA4YmUxODQwZGFhOGExMDBiNTk1NGEzMGNmZSI+bWRuc19vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYTYxOTU4MDhiZTE4NDBkYWE4YTEwMGI1OTU0YTMwY2ZlIj5tZG5zX291dC5oPC9hPjwvbGk+Cis8bGk+bWRuc19zdGFydF9tdWx0aWNhc3RfdGltZW91dHNfaXB2NCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwjYTJkZDM1Y2IxZTFmYWU4ODhjMDVjMmI3ZjhiZDcxN2NjIj5tZG5zX291dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGguaHRtbCNhMmRkMzVjYjFlMWZhZTg4OGMwNWMyYjdmOGJkNzE3Y2MiPm1kbnNfb3V0Lmg8L2E+PC9saT4KKzxsaT5tZG5zX3N0YXJ0X211bHRpY2FzdF90aW1lb3V0c19pcHY2KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vdXRfOGMuaHRtbCNhMTBmNmYyMjY0MGFjODM3YTIzM2JmNDMzMzRkZmIwMmEiPm1kbnNfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX291dF84aC5odG1sI2ExMGY2ZjIyNjQwYWM4MzdhMjMzYmY0MzMzNGRmYjAyYSI+bWRuc19vdXQuaDwvYT48L2xpPgorPGxpPm1kbnNfd3JpdGVfZG9tYWluKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19kb21haW5fOGMuaHRtbCNhOTJkZTU0ZDJmMzg0YTRlNGZmYTg1ZTUyOWNjMDU0MTEiPm1kbnNfZG9tYWluLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX2RvbWFpbl84aC5odG1sI2E5MmRlNTRkMmYzODRhNGU0ZmZhODVlNTI5Y2MwNTQxMSI+bWRuc19kb21haW4uaDwvYT48L2xpPgogPGxpPk1FTV9BTElHTk1FTlQmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fbWVtLmh0bWwjZ2E5NzM0MzIxNDY2NmVlNmRjYjE4YzBiZDc3YjQ0MWVhNyI+b3B0Lmg8L2E+PC9saT4KIDxsaT5tZW1fY2FsbG9jKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtZW1fOGMuaHRtbCNhMDZiMmZiM2E2ZjZhNmM1NmE4NGY3NjllMGJkNGM4ZTciPm1lbS5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZW1fOGguaHRtbCNhMDZiMmZiM2E2ZjZhNmM1NmE4NGY3NjllMGJkNGM4ZTciPm1lbS5oPC9hPjwvbGk+CiA8bGk+TUVNX0RFQlVHJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RlYnVnbXNnLmh0bWwjZ2EyZDdiYzM4MDY5NWVlZWRiMWFmNTBjMzgwODYxM2FmZSI+b3B0Lmg8L2E+PC9saT4KQEAgLTIxMSw3ICsyNDksNyBAQAogPGxpPm1xdHRfY29ubmVjdGlvbl9zdGF0dXNfdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tcXR0Lmh0bWwjZ2E4Y2YwZjM2MGFiMjAzNDNhZjM3ZTFkMTI0Mzk1YTc3ZCI+bXF0dC5oPC9hPjwvbGk+CiA8bGk+TVFUVF9DVExfUEFDS0VUX1RZUEUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtcXR0XzhjLmh0bWwjYTQ1YzU3ZWJkMzE4MzJmMWMxMjhkODQ3MDY3YzQ2ODhiIj5tcXR0LmM8L2E+PC9saT4KIDxsaT5NUVRUX0NZQ0xJQ19USU1FUl9JTlRFUlZBTCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tcXR0X19vcHRzLmh0bWwjZ2ExZDg5ZmRhODA4YzcwNDdlYWI3YTY3ZDM3ODVhZWE4ZSI+bXF0dF9vcHRzLmg8L2E+PC9saT4KLTxsaT5NUVRUX0RBVEFfRkxBR19MQVNUJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21xdHQuaHRtbCNnZ2E5OWZiODMwMzFjZTk5MjNjODQzOTJiNGU5MmY5NTZiNWE3OWNkMDBkMGE1YThkZjEzMjA3ZTBjNDk0NDdkZjg3ZiI+bXF0dC5oPC9hPjwvbGk+Cis8bGk+TVFUVF9EQVRBX0ZMQUdfTEFTVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tcXR0Lmh0bWwjZ2dhYmM2MTI2YWYxZDQ1ODQ3YmM1OWFmYTBhYTMyMTZiMDRhNzljZDAwZDBhNWE4ZGYxMzIwN2UwYzQ5NDQ3ZGY4N2YiPm1xdHQuaDwvYT48L2xpPgogPGxpPk1RVFRfREVCVUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJtcXR0XzhjLmh0bWwjYTk5YzMyNWUwNmNjMTdlZTI0ZTA5ZGFiMjUxNjA2ZjlkIj5tcXR0LmM8L2E+PC9saT4KIDxsaT5tcXR0X2Rpc2Nvbm5lY3QoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tcXR0Lmh0bWwjZ2E3M2Q4ZGQ3MThiY2UwOWJmYWFiNDUyNzcwYjRmNzZlNiI+bXF0dC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbXF0dC5odG1sI2dhNzNkOGRkNzE4YmNlMDliZmFhYjQ1Mjc3MGI0Zjc2ZTYiPm1xdHQuaDwvYT48L2xpPgogPGxpPm1xdHRfaW5jb21pbmdfZGF0YV9jYl90JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21xdHQuaHRtbCNnYWZlYzdlNzVmZTZhNzQ2ZWVmOWNhNDExNDYzNDQ2YzgxIj5tcXR0Lmg8L2E+PC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfbi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19uLmh0bWwKaW5kZXggMTMwZDI3ZS4uY2FiMDk4YyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19uLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19uLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMjE1LDcgKzIxNSw5IEBACiA8bGk+TkVUSUZfRkxBR19VUCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZl9fZmxhZ3MuaHRtbCNnYWI0N2Q3ZDEzMDY5M2RjMTU1ZjQ4MGE1YmY0NDc3MjVlIj5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfZ2V0X2J5X2luZGV4KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWE5MzQ0MzQ0MjBjMGRlYTdiNWNmZTZkZjY3ZjhjNzdhIj5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWE5MzQ0MzQ0MjBjMGRlYTdiNWNmZTZkZjY3ZjhjNzdhIj5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfZ2V0X2NsaWVudF9kYXRhJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmX19jZC5odG1sI2dhNGJjZTAxZGRiZjBmZDcwY2I4ODQzMWY3NzNjOTFiYzUiPm5ldGlmLmg8L2E+PC9saT4KKzxsaT5uZXRpZl9nZXRfaWdtcF9tYWNfZmlsdGVyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfOGguaHRtbCNhMGE2NzQ1NTNjMThiNDI5YjUzMzk3MzcyZWE4MmZjYWYiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5uZXRpZl9nZXRfaXA2X2FkZHJfbWF0Y2goKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhjLmh0bWwjYTBlYzExMTE5NWJjYzQ1MmY3Nzg5NWFkMzVhZWRkN2RjIj5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sI2EwZWMxMTExOTViY2M0NTJmNzc4OTVhZDM1YWVkZDdkYyI+bmV0aWYuaDwvYT48L2xpPgorPGxpPm5ldGlmX2dldF9tbGRfbWFjX2ZpbHRlciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhoLmh0bWwjYTA0NmM0ODE2ZTM3YzNjNGI4NGIzNjM0ZWVlZWE3MDI5Ij5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfaWdtcF9kYXRhJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lnbXAuaHRtbCNnYWQ5OTBkZmM1ZWQ4YjY0NGMxNmNjNTc4Yzg3NmU1ODhkIj5pZ21wLmg8L2E+PC9saT4KIDxsaT5uZXRpZl9pZ21wX21hY19maWx0ZXJfZm4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sI2E3MWNhZDMyNzdlZmUyOTE5MWVlZjMzNDhmNGJmMjFmNyI+bmV0aWYuaDwvYT48L2xpPgogPGxpPm5ldGlmX2luZGV4X3RvX25hbWUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMGU3NTVjYjY2MjRkMzM2NTU1MWVlZWQ1NDMwZmEyMjYiPm5ldGlmLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMGU3NTVjYjY2MjRkMzM2NTU1MWVlZWQ1NDMwZmEyMjYiPm5ldGlmLmg8L2E+PC9saT4KQEAgLTIzMiw2ICsyMzQsNyBAQAogPGxpPm5ldGlmX2xvb3Bfb3V0cHV0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTY5MWYxY2M3Yzk3NzhmZmE2MmEzODQzYzE4NDQwNGIyIj5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTY5MWYxY2M3Yzk3NzhmZmE2MmEzODQzYzE4NDQwNGIyIj5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfbWFjX2ZpbHRlcl9hY3Rpb24mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZl84aC5odG1sI2FiMTk0ZWM0MjQxZmFkOGI2ZTlhYWM1MWUzZWMyM2RlMCI+bmV0aWYuaDwvYT48L2xpPgogPGxpPk5FVElGX01BWF9IV0FERFJfTEVOJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfOGguaHRtbCNhYjg4N2E4ZWM1NTNkZTFiZTFkMDRjZjI5NjFjNjNjNDEiPm5ldGlmLmg8L2E+PC9saT4KKzxsaT5uZXRpZl9tZG5zX2RhdGEoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGMuaHRtbCNhZjE1ZmE1YjYzMzFiZWM2MDVmNjhmNTNjYjg3ZjU4ZmEiPm1kbnMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fcHJpdl84aC5odG1sI2FmMTVmYTViNjMzMWJlYzYwNWY2OGY1M2NiODdmNThmYSI+bWRuc19wcml2Lmg8L2E+PC9saT4KIDxsaT5uZXRpZl9tbGQ2X2RhdGEmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWxkNi5odG1sI2dhMDJhMjI1OTA4MmYyMmM1OTg5YTNjOTI5YmU5NWU2NDEiPm1sZDYuaDwvYT48L2xpPgogPGxpPm5ldGlmX21sZF9tYWNfZmlsdGVyX2ZuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfOGguaHRtbCNhZjJlZDA3MTYxMjJiNjVlN2ZlYjQzZTBkZDk5YWU0NjgiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5uZXRpZl9uYW1lX3RvX2luZGV4KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWM3NjNhMWY2NDdmYjllOGFmNDI1NDQxOGU4MTNhNmFlIj5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWM3NjNhMWY2NDdmYjllOGFmNDI1NDQxOGU4MTNhNmFlIj5uZXRpZi5oPC9hPjwvbGk+CkBAIC0yNDcsMTggKzI1MCwyMCBAQAogPGxpPm5ldGlmX3NldF9kZWZhdWx0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWM5MGYyOTBlZGQwMDUyMzhkNjJhYTk0YzRhYzlkZWEzIj5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWM5MGYyOTBlZGQwMDUyMzhkNjJhYTk0YzRhYzlkZWEzIj5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfc2V0X2Rvd24oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhNjQxZDA3ZWQ4YzMxZmU1MzA2YmMwMTYwNWE2NzkwY2YiPm5ldGlmLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhNjQxZDA3ZWQ4YzMxZmU1MzA2YmMwMTYwNWE2NzkwY2YiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5uZXRpZl9zZXRfZ3coKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZl9faXA0Lmh0bWwjZ2E4NDE4NzZjMjc0YzNjOTA4OTg1NzlmOWUxMmYzYjUyMCI+bmV0aWYuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmX19pcDQuaHRtbCNnYTg0MTg3NmMyNzRjM2M5MDg5ODU3OWY5ZTEyZjNiNTIwIj5uZXRpZi5oPC9hPjwvbGk+Cis8bGk+bmV0aWZfc2V0X2lnbXBfbWFjX2ZpbHRlciYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMzQyOGIzZjgxOTUyNDljNmNkODcwNGE0ZGI0NmI0MDEiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5uZXRpZl9zZXRfaXBhZGRyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZfX2lwNC5odG1sI2dhNzNiMDQzYTdlYzBlNDg5OWFiYTg0MzNlYzkwNjRjY2EiPm5ldGlmLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZl9faXA0Lmh0bWwjZ2E3M2IwNDNhN2VjMGU0ODk5YWJhODQzM2VjOTA2NGNjYSI+bmV0aWYuaDwvYT48L2xpPgogPGxpPm5ldGlmX3NldF9saW5rX2NhbGxiYWNrKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTFjZDQ1OTEwYWRkOTBlMjY3ZTMzZDY4MGJiYzNmMGY0Ij5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTFjZDQ1OTEwYWRkOTBlMjY3ZTMzZDY4MGJiYzNmMGY0Ij5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfc2V0X2xpbmtfZG93bigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EzNGUzN2ExZThlMzU4NzYwZGMxYzQzODg3OTIyYzdkYiI+bmV0aWYuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EzNGUzN2ExZThlMzU4NzYwZGMxYzQzODg3OTIyYzdkYiI+bmV0aWYuaDwvYT48L2xpPgogPGxpPm5ldGlmX3NldF9saW5rX3VwKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWUwZDI5NzVmMTg5Mjc3OTkwZTlkNTI3NmZkZDllOWVhIj5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWUwZDI5NzVmMTg5Mjc3OTkwZTlkNTI3NmZkZDllOWVhIj5uZXRpZi5oPC9hPjwvbGk+Cis8bGk+bmV0aWZfc2V0X21sZF9tYWNfZmlsdGVyJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2E5N2YzMGJiNTU0MmU0YzA3ZDNiMzJlM2M3NTRlMTA0YyI+bmV0aWYuaDwvYT48L2xpPgogPGxpPm5ldGlmX3NldF9uZXRtYXNrKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZfX2lwNC5odG1sI2dhMGJkZDdjMDU3YzJmNTVmNjcwODUzZTM5MDYwMTRhNTMiPm5ldGlmLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZl9faXA0Lmh0bWwjZ2EwYmRkN2MwNTdjMmY1NWY2NzA4NTNlMzkwNjAxNGE1MyI+bmV0aWYuaDwvYT48L2xpPgogPGxpPm5ldGlmX3NldF9yZW1vdmVfY2FsbGJhY2soKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMzE5Yzg4ZGEwZmRmMjVjMWZlZTE1OTUyOTliYzM1Y2UiPm5ldGlmLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMzE5Yzg4ZGEwZmRmMjVjMWZlZTE1OTUyOTliYzM1Y2UiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5uZXRpZl9zZXRfc3RhdHVzX2NhbGxiYWNrKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWRjODc4N2IyM2FjMGVlMDIzOTc5Y2JhZGY4NzgxM2Q0Ij5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWRjODc4N2IyM2FjMGVlMDIzOTc5Y2JhZGY4NzgxM2Q0Ij5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfc2V0X3VwKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWYxOTY5M2JlNDAxYTI2NWE1MmQyYTU2YzY1NzUzMTIxIj5uZXRpZi5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWYxOTY5M2JlNDAxYTI2NWE1MmQyYTU2YzY1NzUzMTIxIj5uZXRpZi5oPC9hPjwvbGk+CiA8bGk+bmV0aWZfc3RhdHVzX2NhbGxiYWNrX2ZuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfOGguaHRtbCNhNDQ3ZDBhN2U3YzZlMjM5NjU1N2MyODdiOGI4Yzk0MzYiPm5ldGlmLmg8L2E+PC9saT4KIDxsaT5uZXRpZl90b19udW0oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX2NvcmVfOGMuaHRtbCNhODcxYWE2MzY4MDZjN2Q2OGNiZTI0NTcyNTk4ZTU5ZGUiPnNubXBfY29yZS5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJzbm1wX19jb3JlXzhoLmh0bWwjYTg3MWFhNjM2ODA2YzdkNjhjYmUyNDU3MjU5OGU1OWRlIj5zbm1wX2NvcmUuaDwvYT48L2xpPgotPGxpPm5ldGlmYXBpX2FycF9hZGQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmYXBpXzhjLmh0bWwjYTYyYjBiZGJiMzc4M2ViMjdhYTczNDg1MDgxMzA2MTE5Ij5uZXRpZmFwaS5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZmFwaV84aC5odG1sI2E2MmIwYmRiYjM3ODNlYjI3YWE3MzQ4NTA4MTMwNjExOSI+bmV0aWZhcGkuaDwvYT48L2xpPgotPGxpPm5ldGlmYXBpX2FycF9yZW1vdmUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmYXBpXzhjLmh0bWwjYTAzN2MzZDA1YzE5YjRkNDY3YjZjZTA2ZWI0NjM5ZWU4Ij5uZXRpZmFwaS5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EwMzdjM2QwNWMxOWI0ZDQ2N2I2Y2UwNmViNDYzOWVlOCI+bmV0aWZhcGkuaDwvYT48L2xpPgorPGxpPm5ldGlmYXBpX2FycF9hZGQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fYXJwLmh0bWwjZ2E2MmIwYmRiYjM3ODNlYjI3YWE3MzQ4NTA4MTMwNjExOSI+bmV0aWZhcGkuYzwvYT48L2xpPgorPGxpPm5ldGlmYXBpX2FycF9yZW1vdmUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fYXJwLmh0bWwjZ2EwMzdjM2QwNWMxOWI0ZDQ2N2I2Y2UwNmViNDYzOWVlOCI+bmV0aWZhcGkuYzwvYT48L2xpPgogPGxpPm5ldGlmYXBpX2F1dG9pcF9zdGFydCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fYXV0b2lwLmh0bWwjZ2FjYTI2YmFlMmEyMWUwNzMyYTc1OTlkZjE0Zjg4MGFmMiI+bmV0aWZhcGkuaDwvYT48L2xpPgogPGxpPm5ldGlmYXBpX2F1dG9pcF9zdG9wJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmYXBpX19hdXRvaXAuaHRtbCNnYWU2MDRmOTY5MDdhNTI1NTdlNGViZDFiZDVkODAwNzFkIj5uZXRpZmFwaS5oPC9hPjwvbGk+CiA8bGk+bmV0aWZhcGlfZGhjcF9pbmZvcm0mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZhcGlfX2RoY3A0Lmh0bWwjZ2EyOTEwODk3NWU5YWE2NDYzYjlhNTc0ZGU5NjEzMTdlMCI+bmV0aWZhcGkuaDwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19wLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3AuaHRtbAppbmRleCA4NjdiNjlkLi5mZjg1ZWE2IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3AuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3AuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3EuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfcS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4ZWJmOWIKLS0tIC9kZXYvbnVsbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3EuaHRtbApAQCAtMCwwICsxLDExNCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHBzOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbi1VUyI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC94aHRtbDtjaGFyc2V0PVVURi04Ii8+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPTExIi8+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRveHlnZW4gMS4xMi4wIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLz4KKzx0aXRsZT5sd0lQOiBHbG9iYWxzPC90aXRsZT4KKzxsaW5rIGhyZWY9InRhYnMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcXVlcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZHluc2VjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iY2xpcGJvYXJkLmpzIj48L3NjcmlwdD4KKzxsaW5rIGhyZWY9Im5hdnRyZWUuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJuYXZ0cmVlZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJuYXZ0cmVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc2l6ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJjb29raWUuanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0ic2VhcmNoL3NlYXJjaC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlYXJjaC9zZWFyY2hkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlYXJjaC9zZWFyY2guanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0iZG94eWdlbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRvcCI+PCEtLSBkbyBub3QgcmVtb3ZlIHRoaXMgZGl2LCBpdCBpcyBjbG9zZWQgYnkgZG94eWdlbiEgLS0+Cis8ZGl2IGlkPSJ0aXRsZWFyZWEiPgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+CisgPHRib2R5PgorIDx0ciBpZD0icHJvamVjdHJvdyI+CisgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgorICAgPC9kaXY+CisgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CisgIDwvdGQ+CisgPC90cj4KKyA8L3Rib2R5PgorPC90YWJsZT4KKzwvZGl2PgorPCEtLSBlbmQgaGVhZGVyIHBhcnQgLS0+Cis8IS0tIEdlbmVyYXRlZCBieSBEb3h5Z2VuIDEuMTIuMCAtLT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLwordmFyIHNlYXJjaEJveCA9IG5ldyBTZWFyY2hCb3goInNlYXJjaEJveCIsICJzZWFyY2gvIiwnLmh0bWwnKTsKKy8qIEBsaWNlbnNlLWVuZCAqLworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKSB7IGNvZGVmb2xkLmluaXQoMCk7IH0pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lbnVkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lbnUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCiskKGZ1bmN0aW9uKCkgeworICBpbml0TWVudSgnJyx0cnVlLGZhbHNlLCdzZWFyY2gucGhwJywnU2VhcmNoJyx0cnVlKTsKKyAgJChmdW5jdGlvbigpIHsgaW5pdF9zZWFyY2goKTsgfSk7Cit9KTsKKy8qIEBsaWNlbnNlLWVuZCAqLworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJtYWluLW5hdiI+PC9kaXY+Cis8L2Rpdj48IS0tIHRvcCAtLT4KKzxkaXYgaWQ9InNpZGUtbmF2IiBjbGFzcz0idWktcmVzaXphYmxlIHNpZGUtbmF2LXJlc2l6YWJsZSI+CisgIDxkaXYgaWQ9Im5hdi10cmVlIj4KKyAgICA8ZGl2IGlkPSJuYXYtdHJlZS1jb250ZW50cyI+CisgICAgICA8ZGl2IGlkPSJuYXYtc3luYyIgY2xhc3M9InN5bmMiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBpZD0ic3BsaXRiYXIiIHN0eWxlPSItbW96LXVzZXItc2VsZWN0Om5vbmU7IiAKKyAgICAgICBjbGFzcz0idWktcmVzaXphYmxlLWhhbmRsZSI+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKXtpbml0TmF2VHJlZSgnZ2xvYmFsc19xLmh0bWwnLCcnKTsgaW5pdFJlc2l6YWJsZSh0cnVlKTsgfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPGRpdiBpZD0iZG9jLWNvbnRlbnQiPgorPCEtLSB3aW5kb3cgc2hvd2luZyB0aGUgZmlsdGVyIG9wdGlvbnMgLS0+Cis8ZGl2IGlkPSJNU2VhcmNoU2VsZWN0V2luZG93IgorICAgICBvbm1vdXNlb3Zlcj0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdFNob3coKSIKKyAgICAgb25tb3VzZW91dD0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdEhpZGUoKSIKKyAgICAgb25rZXlkb3duPSJyZXR1cm4gc2VhcmNoQm94Lk9uU2VhcmNoU2VsZWN0S2V5KGV2ZW50KSI+Cis8L2Rpdj4KKworPCEtLSBpZnJhbWUgc2hvd2luZyB0aGUgc2VhcmNoIHJlc3VsdHMgKGNsb3NlZCBieSBkZWZhdWx0KSAtLT4KKzxkaXYgaWQ9Ik1TZWFyY2hSZXN1bHRzV2luZG93Ij4KKzxkaXYgaWQ9Ik1TZWFyY2hSZXN1bHRzIj4KKzxkaXYgY2xhc3M9IlNSUGFnZSI+Cis8ZGl2IGlkPSJTUkluZGV4Ij4KKzxkaXYgaWQ9IlNSUmVzdWx0cyI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9IkxvYWRpbmciPkxvYWRpbmcuLi48L2Rpdj4KKzxkaXYgY2xhc3M9IlNSU3RhdHVzIiBpZD0iU2VhcmNoaW5nIj5TZWFyY2hpbmcuLi48L2Rpdj4KKzxkaXYgY2xhc3M9IlNSU3RhdHVzIiBpZD0iTm9NYXRjaGVzIj5ObyBNYXRjaGVzPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iY29udGVudHMiPgorPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCBmdW5jdGlvbnMsIHZhcmlhYmxlcywgZGVmaW5lcywgZW51bXMsIGFuZCB0eXBlZGVmcyB3aXRoIGxpbmtzIHRvIHRoZSBkb2N1bWVudGF0aW9uOjwvZGl2PgorCis8aDM+PGEgaWQ9ImluZGV4X3EiIG5hbWU9ImluZGV4X3EiPjwvYT4tIHEgLTwvaDM+PHVsPgorPGxpPlFVRVNUSU9OX1BST0JFX0hPU1RfQU5ZJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwjYWIzMjk3ZDY5YjBlZmZiNWViMDFhOWI4YzVhNzA4ZWE5Ij5tZG5zX291dC5oPC9hPjwvbGk+Cis8L3VsPgorPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KKzwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+Cis8IS0tIHN0YXJ0IGZvb3RlciBwYXJ0IC0tPgorPGRpdiBpZD0ibmF2LXBhdGgiIGNsYXNzPSJuYXZwYXRoIj48IS0tIGlkIGlzIG5lZWRlZCBmb3IgdHJlZXZpZXcgZnVuY3Rpb24hIC0tPgorICA8dWw+CisgICAgPGxpIGNsYXNzPSJmb290ZXIiPkdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5kb3h5Z2VuLm9yZy9pbmRleC5odG1sIj48aW1nIGNsYXNzPSJmb290ZXIiIHNyYz0iZG94eWdlbi5zdmciIHdpZHRoPSIxMDQiIGhlaWdodD0iMzEiIGFsdD0iZG94eWdlbiIvPjwvYT4gMS4xMi4wIDwvbGk+CisgIDwvdWw+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfci5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19yLmh0bWwKaW5kZXggYTRlYTA4NS4uMjI5ZjVhMiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19yLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19yLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc19zLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3MuaHRtbAppbmRleCBiN2E2ODg2Li45MDljYWQyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3MuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3MuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDIsNiArMTAyLDcgQEAKIDxoMz48YSBpZD0iaW5kZXhfcyIgbmFtZT0iaW5kZXhfcyI+PC9hPi0gcyAtPC9oMz48dWw+CiA8bGk+U0VMV0FJVF9UJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic29ja2V0c19fcHJpdl84aC5odG1sI2E4ZjRkMjQwNzMzYTkyNjFjNjY4ZmM2NmRjNGNlODE5NiI+c29ja2V0c19wcml2Lmg8L2E+PC9saT4KIDxsaT5zZXJ2aWNlX2dldF90eHRfZm5fdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGguaHRtbCNhM2I5ZWU1OTUzMjE0NjY1ZTU4NWU1YmNhZjZiOGVhODMiPm1kbnMuaDwvYT48L2xpPgorPGxpPlNFVF9USU1FT1VUX0ZST01fT0ZGRVJFRCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGMuaHRtbCNhMzNmMzA2ZGE1NzVmOGE0Mzc5OTZkMDczYjM3NGRmODIiPmRoY3AuYzwvYT48L2xpPgogPGxpPlNMSVBfREVCVUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuaHRtbCNnYWI5ODZmOTUxODM1NTlkODY3OGM2ZDgwOTY5YjAxODU3Ij5vcHQuaDwvYT48L2xpPgogPGxpPlNMSVBfTUFYX1NJWkUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJzbGlwaWZfOGMuaHRtbCNhY2NmNDQ4ZjlkYWJiMGYzM2VmNDZiNDAzNTU2OTFjYWIiPnNsaXBpZi5jPC9hPjwvbGk+CiA8bGk+U0xJUF9SWF9RVUVVRSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InNsaXBpZl84aC5odG1sI2EzN2NlODYxMzUzNTIzMmRiMDJiZmQ5YWU5YjUxYzY2OCI+c2xpcGlmLmg8L2E+PC9saT4KQEAgLTE2OSw2ICsxNzAsNyBAQAogPGxpPnNubXBfZ2V0X2NvbW11bml0eSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTFmZTczN2MxMzcxYTNlZDNiYjUxNWQ0NTFlZjNlZWE4Ij5zbm1wX21zZy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMWZlNzM3YzEzNzFhM2VkM2JiNTE1ZDQ1MWVmM2VlYTgiPnNubXAuaDwvYT48L2xpPgogPGxpPnNubXBfZ2V0X2NvbW11bml0eV90cmFwKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTU2NmFhN2FlYWY1ZmI3NWNhMGEyYWY1ODQ4NmY0Y2JhIj5zbm1wX21zZy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTU2NmFhN2FlYWY1ZmI3NWNhMGEyYWY1ODQ4NmY0Y2JhIj5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX2dldF9jb21tdW5pdHlfd3JpdGUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2E2NjU0NTIxYjgzZjM1YzYwMGI2ODliOTUwZGNjMmM0ZSI+c25tcF9tc2cuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTY2NTQ1MjFiODNmMzVjNjAwYjY4OWI5NTBkY2MyYzRlIj5zbm1wLmg8L2E+PC9saT4KKzxsaT5zbm1wX2dldF9kZWZhdWx0X3RyYXBfdmVyc2lvbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FmNmQ4M2FhZTY0NjQ4NTI0MjdhODEyZjU3M2E0MDM1OSI+c25tcF90cmFwcy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWY2ZDgzYWFlNjQ2NDg1MjQyN2E4MTJmNTczYTQwMzU5Ij5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX2dldF9kZXZpY2VfZW50ZXJwcmlzZV9vaWQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2E1MWU4NDA1NWY3ZDljNDQ1MTE4YmY4ZTkzZmQxYWRmOCI+c25tcF9jb3JlLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2E1MWU4NDA1NWY3ZDljNDQ1MTE4YmY4ZTkzZmQxYWRmOCI+c25tcC5oPC9hPjwvbGk+CiA8bGk+c25tcF9pZlR5cGUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZfX21pYjIuaHRtbCNnYTE1Mzc4YjhkY2QyYTlkYzI5ODUxNDJkODY0YTc2N2JhIj5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX2luaXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX25ldGNvbm5fOGMuaHRtbCNnYTRkODhmMmZjNzY1NTI4MDM4NDEzMWQ1NDNlMGQ4M2U1Ij5zbm1wX25ldGNvbm4uYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTRkODhmMmZjNzY1NTI4MDM4NDEzMWQ1NDNlMGQ4M2U1Ij5zbm1wX3Jhdy5jPC9hPjwvbGk+CkBAIC0yMTMsMTQgKzIxNSwxOSBAQAogPGxpPnNubXBfb2lkX3RvX2lwNigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fY29yZV84Yy5odG1sI2FhMWI2NTFhMWZhZjZmMWVlMGRmZGJlYTQ4MzEwZWQwOSI+c25tcF9jb3JlLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX2NvcmVfOGguaHRtbCNhYTFiNjUxYTFmYWY2ZjFlZTBkZmRiZWE0ODMxMGVkMDkiPnNubXBfY29yZS5oPC9hPjwvbGk+CiA8bGk+c25tcF9vaWRfdG9faXBfcG9ydCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0ic25tcF9fY29yZV84Yy5odG1sI2EyMWYwMmIyMzljYzlhYmFlNTg2ZjVlZjkyOTIzZTUwNyI+c25tcF9jb3JlLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InNubXBfX2NvcmVfOGguaHRtbCNhMjFmMDJiMjM5Y2M5YWJhZTU4NmY1ZWY5MjkyM2U1MDciPnNubXBfY29yZS5oPC9hPjwvbGk+CiA8bGk+U05NUF9TQUZFX1JFUVVFU1RTJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX29wdHMuaHRtbCNnYTk1ZTM5MDQ3YjliY2IzODU3ODBiMDZiMzVhZjQ5MjYxIj5zbm1wX29wdHMuaDwvYT48L2xpPgotPGxpPnNubXBfc2VuZF90cmFwKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTk2Y2M3YWYwMTE4ZDc1MDQ5NjA5ODcyZWE0MTE4N2NkIj5zbm1wX3RyYXBzLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhOTZjYzdhZjAxMThkNzUwNDk2MDk4NzJlYTQxMTg3Y2QiPnNubXAuaDwvYT48L2xpPgorPGxpPnNubXBfc2VuZF9pbmZvcm0oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhZTQ1MGRkNzFhZDkxZjZjMGJjMjQzNDkzYTkxM2Y2OTIiPnNubXBfdHJhcHMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FlNDUwZGQ3MWFkOTFmNmMwYmMyNDM0OTNhOTEzZjY5MiI+c25tcC5oPC9hPjwvbGk+Cis8bGk+c25tcF9zZW5kX2luZm9ybV9nZW5lcmljKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYWI3ZTRiOTQzYTk3NTgwMTBiMDIzNzFiODc2YWJjMjc1Ij5zbm1wX3RyYXBzLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhYjdlNGI5NDNhOTc1ODAxMGIwMjM3MWI4NzZhYmMyNzUiPnNubXAuaDwvYT48L2xpPgorPGxpPnNubXBfc2VuZF9pbmZvcm1fc3BlY2lmaWMoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhNzQ5MmJiODYxYmE3MzkyMzIyMWE4YWI0OWVhNzkyMTAiPnNubXBfdHJhcHMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E3NDkyYmI4NjFiYTczOTIzMjIxYThhYjQ5ZWE3OTIxMCI+c25tcC5oPC9hPjwvbGk+Cis8bGk+c25tcF9zZW5kX3RyYXAoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhMjE5NzRiMWY2YjYyNmJjZTFlMDA2ZjA5ZGI3MTJlOWMiPnNubXBfdHJhcHMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2EyMTk3NGIxZjZiNjI2YmNlMWUwMDZmMDlkYjcxMmU5YyI+c25tcC5oPC9hPjwvbGk+CiA8bGk+c25tcF9zZW5kX3RyYXBfZ2VuZXJpYygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2EwZTA0NDI1OTI4OWNiNjkwMTk3MTczZjkzYzE3NjA3ZCI+c25tcF90cmFwcy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTBlMDQ0MjU5Mjg5Y2I2OTAxOTcxNzNmOTNjMTc2MDdkIj5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX3NlbmRfdHJhcF9zcGVjaWZpYygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E1NmJkY2UwNGU5ZTc3Y2IzZjhhODcyNzE4Y2QyNzNkMSI+c25tcF90cmFwcy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTU2YmRjZTA0ZTllNzdjYjNmOGE4NzI3MThjZDI3M2QxIj5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX3NldF9hdXRoX3RyYXBzX2VuYWJsZWQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhY2FmODE2ZmY5MTdmN2I3ZTVkMDBlZDZjOWY3OWI1MWMiPnNubXBfdHJhcHMuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FjYWY4MTZmZjkxN2Y3YjdlNWQwMGVkNmM5Zjc5YjUxYyI+c25tcC5oPC9hPjwvbGk+CiA8bGk+c25tcF9zZXRfY29tbXVuaXR5KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMzBjYzU4N2EyNjA3NTdmZGIyYjgxZDQ2MmY0MzBlZjEiPnNubXBfbXNnLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2EzMGNjNTg3YTI2MDc1N2ZkYjJiODFkNDYyZjQzMGVmMSI+c25tcC5oPC9hPjwvbGk+CiA8bGk+c25tcF9zZXRfY29tbXVuaXR5X3RyYXAoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhNTYzMTcxMWYzNTdiNjYxMGJlN2U5M2IxYzZkODc3NjAiPnNubXBfbXNnLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhNTYzMTcxMWYzNTdiNjYxMGJlN2U5M2IxYzZkODc3NjAiPnNubXAuaDwvYT48L2xpPgogPGxpPnNubXBfc2V0X2NvbW11bml0eV93cml0ZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTM0MTQ2MTc2Njg2M2NmZjQ2YTQ0ZTVmNDMxZjJkYTAxIj5zbm1wX21zZy5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMzQxNDYxNzY2ODYzY2ZmNDZhNDRlNWY0MzFmMmRhMDEiPnNubXAuaDwvYT48L2xpPgorPGxpPnNubXBfc2V0X2RlZmF1bHRfdHJhcF92ZXJzaW9uKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTZkNDExYzBiYTdhOGZiMWVkMzc3N2ViZGU1YjVmNDU1Ij5zbm1wX3RyYXBzLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhNmQ0MTFjMGJhN2E4ZmIxZWQzNzc3ZWJkZTViNWY0NTUiPnNubXAuaDwvYT48L2xpPgogPGxpPnNubXBfc2V0X2RldmljZV9lbnRlcnByaXNlX29pZCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYWNjNzFhYzg1N2JmOTIxNWYwNmE2MjRkZGEwOWFiZTNhIj5zbm1wX2NvcmUuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYWNjNzFhYzg1N2JmOTIxNWYwNmE2MjRkZGEwOWFiZTNhIj5zbm1wLmg8L2E+PC9saT4KKzxsaT5zbm1wX3NldF9pbmZvcm1fY2FsbGJhY2soKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2EzMjNlZDA4MWNjOTkwM2NlYjZlYmIyNmEwNDZlMDgzOCI+c25tcF9tc2cuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4Ij5zbm1wLmg8L2E+PC9saT4KIDxsaT5zbm1wX3NldF9taWJzKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMjljNzY0NzQ5NzFmMjVkMDM4ZmQ0ODY0NDdjNzBlMjEiPnNubXBfY29yZS5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMjljNzY0NzQ5NzFmMjVkMDM4ZmQ0ODY0NDdjNzBlMjEiPnNubXAuaDwvYT48L2xpPgogPGxpPnNubXBfc2V0X3dyaXRlX2NhbGxiYWNrKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc25tcF9fY29yZS5odG1sI2dhZmY2YTZiMzkzMjJlOTI4NjJhYjU1Y2ZjZGRmZTI1NGIiPnNubXBfbXNnLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2FmZjZhNmIzOTMyMmU5Mjg2MmFiNTVjZmNkZGZlMjU0YiI+c25tcC5oPC9hPjwvbGk+CiA8bGk+U05NUF9TVEFDS19TSVpFJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NubXBfX29wdHMuaHRtbCNnYTBkY2FjZGNjYzYxMjE2YzY3NzM5NDNhZDNmZDMxMjQyIj5zbm1wX29wdHMuaDwvYT48L2xpPgpAQCAtMjQyLDYgKzI0OSw3IEBACiA8bGk+U05UUF9HRVRfU0VSVkVSU19GUk9NX0RIQ1AmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc250cF9fb3B0cy5odG1sI2dhOTYxYTYxZWVmOTQyYWI1Mzc4Y2ZmMWUzNzQyYjNhZGUiPnNudHBfb3B0cy5oPC9hPjwvbGk+CiA8bGk+U05UUF9HRVRfU0VSVkVSU19GUk9NX0RIQ1BWNiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbnRwX19vcHRzLmh0bWwjZ2EwZDViNGYxZTM4MmQwOGYwZGY5ZGJlMGM5ZGE2NDAwNiI+c250cF9vcHRzLmg8L2E+PC9saT4KIDxsaT5TTlRQX0dFVF9TWVNURU1fVElNRSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbnRwX19vcHRzLmh0bWwjZ2FiMGVhMzg1NDc5YTVjNWM4YzE3M2YxNjVkZWQyZmI2MyI+c250cF9vcHRzLmg8L2E+PC9saT4KKzxsaT5zbnRwX2dldGtvZHJlY2VpdmVkKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc250cC5odG1sI2dhNjgxNDZkMmVlMWJiYTEwZTVhYTAxZjA5OGI1OTdkOWUiPnNudHAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCNnYTY4MTQ2ZDJlZTFiYmExMGU1YWEwMWYwOThiNTk3ZDllIj5zbnRwLmg8L2E+PC9saT4KIDxsaT5zbnRwX2dldG9wZXJhdGluZ21vZGUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbnRwLmh0bWwjZ2FlNjY0MDRhNTUxZDVjZWY0MjBjZjg0NGE3MTM1NmZhZSI+c250cC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc250cC5odG1sI2dhZTY2NDA0YTU1MWQ1Y2VmNDIwY2Y4NDRhNzEzNTZmYWUiPnNudHAuaDwvYT48L2xpPgogPGxpPnNudHBfZ2V0cmVhY2hhYmlsaXR5KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc250cC5odG1sI2dhYzgwOTc4MjlhODFjYjZmMzdkOWFjZjhlZmIyY2M4MmUiPnNudHAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCNnYWM4MDk3ODI5YTgxY2I2ZjM3ZDlhY2Y4ZWZiMmNjODJlIj5zbnRwLmg8L2E+PC9saT4KIDxsaT5zbnRwX2dldHNlcnZlcigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCNnYWIxMTRjMTIxNTRjZjJjM2UzYTczMzcyNGM2YTc3NDI5Ij5zbnRwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zbnRwLmh0bWwjZ2FiMTE0YzEyMTU0Y2YyYzNlM2E3MzM3MjRjNmE3NzQyOSI+c250cC5oPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3QuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfdC5odG1sCmluZGV4IGFmMzFjNTQuLjBjN2I3NzEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfdC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfdC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyOSwxMCArMTI5LDEwIEBACiA8bGk+dGNwX2VycigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2FlMTM0NmM0ZTM0ZDNiYzdjMDFlMWI0NzE0MmFiMzEyMSI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhdy5odG1sI2dhZTEzNDZjNGUzNGQzYmM3YzAxZTFiNDcxNDJhYjMxMjEiPnRjcC5oPC9hPjwvbGk+CiA8bGk+dGNwX2Vycl9mbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF84aC5odG1sI2ExYjRmOWUzNTUxZTU3NWMwZWYwNmQ2ZGFhN2YwNmU1NSI+dGNwLmg8L2E+PC9saT4KIDxsaT50Y3BfZXh0X2FyZ19hbGxvY19pZCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwjZ2E0ODM2ZTBiNGY2NjQzOTQ5M2UxMDZhNTA0MDBkMTYxNiI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhNDgzNmUwYjRmNjY0Mzk0OTNlMTA2YTUwNDAwZDE2MTYiPnRjcC5oPC9hPjwvbGk+Ci08bGk+dGNwX2V4dF9hcmdfZ2V0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYWRjN2FhOTZkZGQxNWZiNjU5ODUyMzA2OGI4OWY4ODU1Ij50Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwjZ2FkYzdhYTk2ZGRkMTVmYjY1OTg1MjMwNjhiODlmODg1NSI+dGNwLmg8L2E+PC9saT4KKzxsaT50Y3BfZXh0X2FyZ19nZXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhNzQ5OTAxODQ2OWNkOWMzZGM2YTE1YWQ5MWMzMzhlNTYiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYTc0OTkwMTg0NjljZDljM2RjNmExNWFkOTFjMzM4ZTU2Ij50Y3AuaDwvYT48L2xpPgogPGxpPnRjcF9leHRfYXJnX2ludm9rZV9jYWxsYmFja3NfcGFzc2l2ZV9vcGVuKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGMuaHRtbCNhNTI2NWIxZGYwMjRkMDQyODdlZDNlZGMwMmIxYjljY2MiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfX3ByaXZfOGguaHRtbCNhNTI2NWIxZGYwMjRkMDQyODdlZDNlZGMwMmIxYjljY2MiPnRjcF9wcml2Lmg8L2E+PC9saT4KLTxsaT50Y3BfZXh0X2FyZ19zZXQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhNTg1MDBjYjJjZTIyNDM4ZTE2YTM3MzczNTk1YWYzMTgiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYTU4NTAwY2IyY2UyMjQzOGUxNmEzNzM3MzU5NWFmMzE4Ij50Y3AuaDwvYT48L2xpPgotPGxpPnRjcF9leHRfYXJnX3NldF9jYWxsYmFja3MoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhMzZlNjBkYzAyYmZlMDQzN2M4ZGEzNjhhNjJlMmYzMTYiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYTM2ZTYwZGMwMmJmZTA0MzdjOGRhMzY4YTYyZTJmMzE2Ij50Y3AuaDwvYT48L2xpPgorPGxpPnRjcF9leHRfYXJnX3NldCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwjZ2FmNWMyMzk3YjJkODViM2E5MDI1ODRmYjY0Y2RiOTYxZSI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhZjVjMjM5N2IyZDg1YjNhOTAyNTg0ZmI2NGNkYjk2MWUiPnRjcC5oPC9hPjwvbGk+Cis8bGk+dGNwX2V4dF9hcmdfc2V0X2NhbGxiYWNrcygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwjZ2FhY2VhNTRjZTExNTRlN2FlOGVmMDE5OWZmMWM1YmRjNSI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sI2dhYWNlYTU0Y2UxMTU0ZTdhZThlZjAxOTlmZjFjNWJkYzUiPnRjcC5oPC9hPjwvbGk+CiA8bGk+dGNwX2V4dGFyZ19jYWxsYmFja19wYXNzaXZlX29wZW5fZm4mIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGguaHRtbCNhYmE2NDljNWJkZjE5ZDQ3ZTM5NjQzMzkyYjZkODg1ODgiPnRjcC5oPC9hPjwvbGk+CiA8bGk+dGNwX2V4dGFyZ19jYWxsYmFja19wY2JfZGVzdHJveWVkX2ZuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwXzhoLmh0bWwjYTIwODgxZTUzN2Y1YmU3ODQ3ZDg4ZmUyYTBjOGZkMmNkIj50Y3AuaDwvYT48L2xpPgogPGxpPnRjcF9mYXN0dG1yKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGMuaHRtbCNhYmY0NDZiMDdlNTIxNjFiOGE1M2NlYTA3YmM2YzM2NmQiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfX3ByaXZfOGguaHRtbCNhYmY0NDZiMDdlNTIxNjFiOGE1M2NlYTA3YmM2YzM2NmQiPnRjcF9wcml2Lmg8L2E+PC9saT4KQEAgLTE3OSw2ICsxNzksNyBAQAogPGxpPnRjcF9yZXhtaXRfcnRvX3ByZXBhcmUoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYTFmMzE4OTMwYmQ2ZDQ5MDc0MzQzY2M3OWM1MTY2ZjM5Ij50Y3Bfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2ExZjMxODkzMGJkNmQ0OTA3NDM0M2NjNzljNTE2NmYzOSI+dGNwX3ByaXYuaDwvYT48L2xpPgogPGxpPnRjcF9yc3QoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYWE5MGY4MDUxYzk2MzNkMzAxN2M1ODgyNDVjZGM0MDE0Ij50Y3Bfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2FhOTBmODA1MWM5NjMzZDMwMTdjNTg4MjQ1Y2RjNDAxNCI+dGNwX3ByaXYuaDwvYT48L2xpPgogPGxpPlRDUF9SU1RfREVCVUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuaHRtbCNnYTM3NTk2ZjdiYmI5Yjc2NjM4MjYyNDRiYTU0NDg2Njc5Ij5vcHQuaDwvYT48L2xpPgorPGxpPnRjcF9yc3RfbmV0aWYoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fb3V0XzhjLmh0bWwjYTdjZjdjYmM1YWE0NzNkZTgxMTZkYzlmMDBjYmM1ZDU3Ij50Y3Bfb3V0LmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2E3Y2Y3Y2JjNWFhNDczZGU4MTE2ZGM5ZjAwY2JjNWQ1NyI+dGNwX3ByaXYuaDwvYT48L2xpPgogPGxpPlRDUF9SVE9fREVCVUcmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuaHRtbCNnYWQ2ZTUyZTM3NDE1ZDBkMGNiZTQ5MzFhMjhmNWE5NjYyIj5vcHQuaDwvYT48L2xpPgogPGxpPnRjcF9zZWdfY29weSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwXzhjLmh0bWwjYTkzODRiNDM2ZGU5NWQ1YmY4NTUwNDM4YjlkM2M4Y2Q0Ij50Y3AuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19wcml2XzhoLmh0bWwjYTkzODRiNDM2ZGU5NWQ1YmY4NTUwNDM4YjlkM2M4Y2Q0Ij50Y3BfcHJpdi5oPC9hPjwvbGk+CiA8bGk+dGNwX3NlZ19mcmVlKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGMuaHRtbCNhYzYyODM2NTFiMjZmNzRkYmEyNDQ0MTU5YWVlODhiMjAiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfX3ByaXZfOGguaHRtbCNhYzYyODM2NTFiMjZmNzRkYmEyNDQ0MTU5YWVlODhiMjAiPnRjcF9wcml2Lmg8L2E+PC9saT4KQEAgLTE4Nyw3ICsxODgsNyBAQAogPGxpPnRjcF9zZW5kX2ZpbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19vdXRfOGMuaHRtbCNhZjQwYmE5ZDY0NWE4OTEwNDM2YzNkN2NmMTNkYmEzNDIiPnRjcF9vdXQuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19wcml2XzhoLmh0bWwjYWY0MGJhOWQ2NDVhODkxMDQzNmMzZDdjZjEzZGJhMzQyIj50Y3BfcHJpdi5oPC9hPjwvbGk+CiA8bGk+dGNwX3NlbnQoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhdy5odG1sI2dhMTU5NjMzMmI5M2JiNjI0OTE3OWYzYjg5ZjI0YmQ4MDgiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXcuaHRtbCNnYTE1OTYzMzJiOTNiYjYyNDkxNzlmM2I4OWYyNGJkODA4Ij50Y3AuaDwvYT48L2xpPgogPGxpPnRjcF9zZW50X2ZuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwXzhoLmh0bWwjYWE2MDYyMmZmYWEwOTllOTdmNjZmYjU2ZTQzN2ZjYTE4Ij50Y3AuaDwvYT48L2xpPgotPGxpPnRjcF9zZXRwcmlvKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGMuaHRtbCNhMmM0MjM0ZjFlOTViNmJkZTBlODRkNGVhOTdhZTk1YmMiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BfOGguaHRtbCNhMmM0MjM0ZjFlOTViNmJkZTBlODRkNGVhOTdhZTk1YmMiPnRjcC5oPC9hPjwvbGk+Cis8bGk+dGNwX3NldHByaW8oKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhdy5odG1sI2dhMmM0MjM0ZjFlOTViNmJkZTBlODRkNGVhOTdhZTk1YmMiPnRjcC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGNwX19yYXcuaHRtbCNnYTJjNDIzNGYxZTk1YjZiZGUwZTg0ZDRlYTk3YWU5NWJjIj50Y3AuaDwvYT48L2xpPgogPGxpPnRjcF9zaHV0ZG93bigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2E1Yjk0ZDU3ZjE4OTFiOTI4N2Y4ODUyNWEyYWM1NjFkZCI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhdy5odG1sI2dhNWI5NGQ1N2YxODkxYjkyODdmODg1MjVhMmFjNTYxZGQiPnRjcC5oPC9hPjwvbGk+CiA8bGk+dGNwX3Nsb3d0bXIoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF84Yy5odG1sI2E0MjFmYjQyZWY5MTkwMThlMTRhZTQxM2FkZmVlOTkwNSI+dGNwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2E0MjFmYjQyZWY5MTkwMThlMTRhZTQxM2FkZmVlOTkwNSI+dGNwX3ByaXYuaDwvYT48L2xpPgogPGxpPlRDUF9TTkRfQlVGJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhODcxZDExMTk2OGQ4YzZjNzg4MGZmMzZiOTNjNWM0ZGQiPm9wdC5oPC9hPjwvbGk+CkBAIC0yMTIsNiArMjEzLDcgQEAKIDxsaT50Y3BpcF9hcGlfY2FsbCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwaXBfOGMuaHRtbCNhM2Q0MmIwYzQ2NjA3ZjkxYWVkY2M3NzQ1ZWQ0NjZiMDgiPnRjcGlwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InRjcGlwX19wcml2XzhoLmh0bWwjYTNkNDJiMGM0NjYwN2Y5MWFlZGNjNzc0NWVkNDY2YjA4Ij50Y3BpcF9wcml2Lmg8L2E+PC9saT4KIDxsaT50Y3BpcF9jYWxsYmFjaygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FhYjgzOGZlMzQxN2FiM2ExZjYxZjA3MjgwMDlhMGMyYSI+dGNwaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FhYjgzOGZlMzQxN2FiM2ExZjYxZjA3MjgwMDlhMGMyYSI+dGNwaXAuaDwvYT48L2xpPgogPGxpPnRjcGlwX2NhbGxiYWNrX2ZuJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwaXBfOGguaHRtbCNhMzUyMDMyOTZiYjgzOGYzYjQ5MzgzOWZmYzZlNzI4NWQiPnRjcGlwLmg8L2E+PC9saT4KKzxsaT50Y3BpcF9jYWxsYmFja193YWl0KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJ0Y3BpcF84Yy5odG1sI2E4ZDhhMmFjMDI3MWRlZjcxYTRjYTMxYjI0YTMxMjI4ZiI+dGNwaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwaXBfOGguaHRtbCNhOGQ4YTJhYzAyNzFkZWY3MWE0Y2EzMWIyNGEzMTIyOGYiPnRjcGlwLmg8L2E+PC9saT4KIDxsaT50Y3BpcF9jYWxsYmFja193aXRoX2Jsb2NrJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FjZDBhODY1NjIzOTIxYWRhMmRkMDg5NjJlYjgyYzlkZiI+dGNwaXAuaDwvYT48L2xpPgogPGxpPnRjcGlwX2NhbGxiYWNrbXNnX2RlbGV0ZSgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FjNWI3YTU5ZjRjM2Y1ZjcyMWFiOWVlODFmMjMxYzlmZCI+dGNwaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FjNWI3YTU5ZjRjM2Y1ZjcyMWFiOWVlODFmMjMxYzlmZCI+dGNwaXAuaDwvYT48L2xpPgogPGxpPnRjcGlwX2NhbGxiYWNrbXNnX25ldygpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2EwN2RlODc1MTQ1MmE4ODg2ZGU4NTg0OWY3OWZlMjNhMSI+dGNwaXAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2EwN2RlODc1MTQ1MmE4ODg2ZGU4NTg0OWY3OWZlMjNhMSI+dGNwaXAuaDwvYT48L2xpPgpAQCAtMjMwLDkgKzIzMiwxMSBAQAogPGxpPlRDUElQX1RIUkVBRF9TVEFDS1NJWkUmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGhyZWFkLmh0bWwjZ2FhMDJiODRlYWZhMGM4YjA5YjE1OGI5N2M5NmQ3OWRiMCI+b3B0Lmg8L2E+PC9saT4KIDxsaT50Y3BpcF90cnlfY2FsbGJhY2soKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcy5odG1sI2dhZWI3YjNjNzQxNGM3NmFkOGRkZTE0ZDJmYmE2Y2IwMjAiPnRjcGlwLmM8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcy5odG1sI2dhZWI3YjNjNzQxNGM3NmFkOGRkZTE0ZDJmYmE2Y2IwMjAiPnRjcGlwLmg8L2E+PC9saT4KIDxsaT5URl9SRVNFVCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9InRjcF9fcHJpdl84aC5odG1sI2FjOWRiZGFlYWMzZTI1ZjViYWRmM2E3NjNhMWIwYjk5MCI+dGNwX3ByaXYuaDwvYT48L2xpPgotPGxpPnRmdHBfY2xlYW51cCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RmdHAuaHRtbCNnYWJiNGE0ZTI0YjVjN2VjOGRmNzBlYzVhNjhhMjA2ZGVjIj50ZnRwX3NlcnZlci5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sI2dhYmI0YTRlMjRiNWM3ZWM4ZGY3MGVjNWE2OGEyMDZkZWMiPnRmdHBfc2VydmVyLmg8L2E+PC9saT4KKzxsaT50ZnRwX2NsZWFudXAoKSYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190ZnRwLmh0bWwjZ2FiYjRhNGUyNGI1YzdlYzhkZjcwZWM1YTY4YTIwNmRlYyI+dGZ0cC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sI2dhYmI0YTRlMjRiNWM3ZWM4ZGY3MGVjNWE2OGEyMDZkZWMiPnRmdHBfY29tbW9uLmg8L2E+PC9saT4KIDxsaT5URlRQX0RFQlVHJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RmdHBfX29wdHMuaHRtbCNnYTJkZDU0YTFkMGMzMDA2NTI3YjhhN2E4NjA0YjgxOTgxIj50ZnRwX29wdHMuaDwvYT48L2xpPgotPGxpPnRmdHBfaW5pdCgpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RmdHAuaHRtbCNnYTdhODA2NzNhMTMyNGRhNWM4YWUyNDQwYWY3YjAwOGEzIj50ZnRwX3NlcnZlci5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sI2dhN2E4MDY3M2ExMzI0ZGE1YzhhZTI0NDBhZjdiMDA4YTMiPnRmdHBfc2VydmVyLmg8L2E+PC9saT4KKzxsaT50ZnRwX2luaXRfY2xpZW50KCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sI2dhYTZiNzQzYTY0Mjg3MjA2YWNiODI1YmQ2MDQ0OGU1ZjgiPnRmdHAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RmdHAuaHRtbCNnYWE2Yjc0M2E2NDI4NzIwNmFjYjgyNWJkNjA0NDhlNWY4Ij50ZnRwX2NsaWVudC5oPC9hPjwvbGk+Cis8bGk+dGZ0cF9pbml0X2NvbW1vbigpJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0idGZ0cF84Yy5odG1sI2E1YzZjZjNkZTg0YTBkYzk5MGMwNTVkNjZlNTc0Y2E3MCI+dGZ0cC5jPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJ0ZnRwX19jb21tb25fOGguaHRtbCNhNWM2Y2YzZGU4NGEwZGM5OTBjMDU1ZDY2ZTU3NGNhNzAiPnRmdHBfY29tbW9uLmg8L2E+PC9saT4KKzxsaT50ZnRwX2luaXRfc2VydmVyKCkmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sI2dhNzNhOThmMDgxMTI0NGQ1YmQyNGQ1Yjk1OWRiOGVkNDAiPnRmdHAuYzwvYT4sIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RmdHAuaHRtbCNnYTczYTk4ZjA4MTEyNDRkNWJkMjRkNWI5NTlkYjhlZDQwIj50ZnRwX3NlcnZlci5oPC9hPjwvbGk+CiA8bGk+VEZUUF9NQVhfRklMRU5BTUVfTEVOJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RmdHBfX29wdHMuaHRtbCNnYThlOTc1OTAwYjQzOTczMTNmMWE2NDlmZjc2YTMwNjNiIj50ZnRwX29wdHMuaDwvYT48L2xpPgogPGxpPlRGVFBfTUFYX01PREVfTEVOJiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RmdHBfX29wdHMuaHRtbCNnYWE4YTQ0OWMyNWUzN2JlNzU3ZjVlZmNjZDQyMmM5MDU1Ij50ZnRwX29wdHMuaDwvYT48L2xpPgogPGxpPlRGVFBfTUFYX1JFVFJJRVMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cF9fb3B0cy5odG1sI2dhNmEwMTc1N2FkOTQyZWI2MDJlOGE4N2UyYmU0MmQzMTMiPnRmdHBfb3B0cy5oPC9hPjwvbGk+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3R5cGUuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfdHlwZS5odG1sCmluZGV4IGEyM2YzNjQuLjBlZmIxMmEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfdHlwZS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfdHlwZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTk5LDEyICs5OSwxOSBAQAogPGRpdiBjbGFzcz0iY29udGVudHMiPgogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj5IZXJlIGlzIGEgbGlzdCBvZiBhbGwgZG9jdW1lbnRlZCB0eXBlZGVmcyB3aXRoIGxpbmtzIHRvIHRoZSBkb2N1bWVudGF0aW9uOjwvZGl2PgogCis8aDM+PGEgaWQ9ImluZGV4X2EiIG5hbWU9ImluZGV4X2EiPjwvYT4tIGEgLTwvaDM+PHVsPgorPGxpPmFjZF9jb25mbGljdF9jYWxsYmFja190JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iYWNkXzhoLmh0bWwjYWJiNDQ2NDA0NzUyZjU2YjAyOGVhZmE4MzAyZGI5NTVmIj5hY2QuaDwvYT48L2xpPgorPGxpPmFsdGNwX2FsbG9jYXRvcl90JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSI+YWx0Y3AuaDwvYT48L2xpPgorPC91bD4KKworCiA8aDM+PGEgaWQ9ImluZGV4X2IiIG5hbWU9ImluZGV4X2IiPjwvYT4tIGIgLTwvaDM+PHVsPgogPGxpPmJyaWRnZWlmX2luaXRkYXRhX3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYnJpZGdlaWYuaHRtbCNnYTYxYzhmMjMyYTU5MDdmMzY2MjE1Nzc0NmU3MWQzNWNjIj5icmlkZ2VpZi5oPC9hPjwvbGk+CiA8L3VsPgogCiAKIDxoMz48YSBpZD0iaW5kZXhfZCIgbmFtZT0iaW5kZXhfZCI+PC9hPi0gZCAtPC9oMz48dWw+Cis8bGk+ZGhjcF90aW1lb3V0X3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhoLmh0bWwjYWE4NWQ2NjFjN2UxNjA5MjFjMDQ5N2U3YmFhODkyYjY3Ij5kaGNwLmg8L2E+PC9saT4KIDxsaT5kbnNfZm91bmRfY2FsbGJhY2smIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkbnNfOGguaHRtbCNhYjVhOWRlYzViMjI4MDJmOTE4NzZjNTNlOTlmNDI3YWUiPmRucy5oPC9hPjwvbGk+CiA8L3VsPgogCkBAIC0xMzgsNyArMTQ1LDcgQEAKIAogCiA8aDM+PGEgaWQ9ImluZGV4X20iIG5hbWU9ImluZGV4X20iPjwvYT4tIG0gLTwvaDM+PHVsPgotPGxpPm1kbnNfbmFtZV9yZXN1bHRfY2JfdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGguaHRtbCNhMTlmMTJkNzA5MmRlNmZlOTBkNTg0M2U0ZWY4ZDQ1MzYiPm1kbnMuaDwvYT48L2xpPgorPGxpPm1kbnNfbmFtZV9yZXN1bHRfY2JfdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGguaHRtbCNhNmQ2NThlMmM1MjI4YjIyNGI4OTQ4ODY2M2QyYjcyZjciPm1kbnMuaDwvYT48L2xpPgogPGxpPm1xdHRfY29ubmVjdGlvbl9jYl90JiMxNjA7OiYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21xdHQuaHRtbCNnYTg1NTg3NDNiZGI3ZDU5OWE5Mzg0NGZiYzU2YzkwMjlmIj5tcXR0Lmg8L2E+PC9saT4KIDxsaT5tcXR0X2luY29taW5nX2RhdGFfY2JfdCYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tcXR0Lmh0bWwjZ2FmZWM3ZTc1ZmU2YTc0NmVlZjljYTQxMTQ2MzQ0NmM4MSI+bXF0dC5oPC9hPjwvbGk+CiA8bGk+bXF0dF9pbmNvbWluZ19wdWJsaXNoX2NiX3QmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbXF0dC5odG1sI2dhNzExNmJiODUyNTUzOTRjZWM0YjFkOWZhMzg4NDJjMjkiPm1xdHQuaDwvYT48L2xpPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc191Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3UuaHRtbAppbmRleCAzZDA3OTJkLi5mMzMzOWNjIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3UuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3UuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3ZhcnMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfdmFycy5odG1sCmluZGV4IDcwNmY3MDEuLmY0MmE4YmIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfdmFycy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dsb2JhbHNfdmFycy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMSw4ICsxMDEsNiBAQAogCiA8aDM+PGEgaWQ9ImluZGV4X2QiIG5hbWU9ImluZGV4X2QiPjwvYT4tIGQgLTwvaDM+PHVsPgogPGxpPmRoY3A2X3J4X29wdGlvbnMmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwNl84Yy5odG1sI2FiY2NlMDZmMDc4ZGE0YjAzMjY1ZDIwYzBiYzFiZGNlMCI+ZGhjcDYuYzwvYT48L2xpPgotPGxpPmRoY3Bfcnhfb3B0aW9uc19naXZlbiYjMTYwOzomIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9ImRoY3BfOGMuaHRtbCNhMDU4YjcxZTFkMjZiMzc1OGIyOWQxNmQ5Zjg5MmM4Y2MiPmRoY3AuYzwvYT48L2xpPgotPGxpPmRoY3Bfcnhfb3B0aW9uc192YWwmIzE2MDs6JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJkaGNwXzhjLmh0bWwjYTVhYmQyMzI0OTYwNjNiZGRjYmM2NjkyYzBlOGY5YzFmIj5kaGNwLmM8L2E+PC9saT4KIDwvdWw+CiAKIApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ2xvYmFsc196Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3ouaHRtbAppbmRleCAxM2Q5MTZlLi4xZTU1NTNlIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3ouaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9nbG9iYWxzX3ouaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYWNkLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYWNkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM1ZjA0NgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hY2QuaHRtbApAQCAtMCwwICsxLDMyNSBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHBzOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbi1VUyI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC94aHRtbDtjaGFyc2V0PVVURi04Ii8+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPTExIi8+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRveHlnZW4gMS4xMi4wIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLz4KKzx0aXRsZT5sd0lQOiBBQ0Q8L3RpdGxlPgorPGxpbmsgaHJlZj0idGFicy5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpxdWVyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkeW5zZWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJjbGlwYm9hcmQuanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0ibmF2dHJlZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5hdnRyZWVkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5hdnRyZWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzaXplLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImNvb2tpZS5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJzZWFyY2gvc2VhcmNoLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VhcmNoL3NlYXJjaGRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VhcmNoL3NlYXJjaC5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJkb3h5Z2VuLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0idG9wIj48IS0tIGRvIG5vdCByZW1vdmUgdGhpcyBkaXYsIGl0IGlzIGNsb3NlZCBieSBkb3h5Z2VuISAtLT4KKzxkaXYgaWQ9InRpdGxlYXJlYSI+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KKyA8dGJvZHk+CisgPHRyIGlkPSJwcm9qZWN0cm93Ij4KKyAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CisgICA8L2Rpdj4KKyAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KKyAgPC90ZD4KKyA8L3RyPgorIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9kaXY+Cis8IS0tIGVuZCBoZWFkZXIgcGFydCAtLT4KKzwhLS0gR2VuZXJhdGVkIGJ5IERveHlnZW4gMS4xMi4wIC0tPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCit2YXIgc2VhcmNoQm94ID0gbmV3IFNlYXJjaEJveCgic2VhcmNoQm94IiwgInNlYXJjaC8iLCcuaHRtbCcpOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpIHsgY29kZWZvbGQuaW5pdCgwKTsgfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVudWRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVudS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKSB7CisgIGluaXRNZW51KCcnLHRydWUsZmFsc2UsJ3NlYXJjaC5waHAnLCdTZWFyY2gnLHRydWUpOworICAkKGZ1bmN0aW9uKCkgeyBpbml0X3NlYXJjaCgpOyB9KTsKK30pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9Im1haW4tbmF2Ij48L2Rpdj4KKzwvZGl2PjwhLS0gdG9wIC0tPgorPGRpdiBpZD0ic2lkZS1uYXYiIGNsYXNzPSJ1aS1yZXNpemFibGUgc2lkZS1uYXYtcmVzaXphYmxlIj4KKyAgPGRpdiBpZD0ibmF2LXRyZWUiPgorICAgIDxkaXYgaWQ9Im5hdi10cmVlLWNvbnRlbnRzIj4KKyAgICAgIDxkaXYgaWQ9Im5hdi1zeW5jIiBjbGFzcz0ic3luYyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGlkPSJzcGxpdGJhciIgc3R5bGU9Ii1tb3otdXNlci1zZWxlY3Q6bm9uZTsiIAorICAgICAgIGNsYXNzPSJ1aS1yZXNpemFibGUtaGFuZGxlIj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpe2luaXROYXZUcmVlKCdncm91cF9fYWNkLmh0bWwnLCcnKTsgaW5pdFJlc2l6YWJsZSh0cnVlKTsgfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPGRpdiBpZD0iZG9jLWNvbnRlbnQiPgorPCEtLSB3aW5kb3cgc2hvd2luZyB0aGUgZmlsdGVyIG9wdGlvbnMgLS0+Cis8ZGl2IGlkPSJNU2VhcmNoU2VsZWN0V2luZG93IgorICAgICBvbm1vdXNlb3Zlcj0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdFNob3coKSIKKyAgICAgb25tb3VzZW91dD0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdEhpZGUoKSIKKyAgICAgb25rZXlkb3duPSJyZXR1cm4gc2VhcmNoQm94Lk9uU2VhcmNoU2VsZWN0S2V5KGV2ZW50KSI+Cis8L2Rpdj4KKworPCEtLSBpZnJhbWUgc2hvd2luZyB0aGUgc2VhcmNoIHJlc3VsdHMgKGNsb3NlZCBieSBkZWZhdWx0KSAtLT4KKzxkaXYgaWQ9Ik1TZWFyY2hSZXN1bHRzV2luZG93Ij4KKzxkaXYgaWQ9Ik1TZWFyY2hSZXN1bHRzIj4KKzxkaXYgY2xhc3M9IlNSUGFnZSI+Cis8ZGl2IGlkPSJTUkluZGV4Ij4KKzxkaXYgaWQ9IlNSUmVzdWx0cyI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9IkxvYWRpbmciPkxvYWRpbmcuLi48L2Rpdj4KKzxkaXYgY2xhc3M9IlNSU3RhdHVzIiBpZD0iU2VhcmNoaW5nIj5TZWFyY2hpbmcuLi48L2Rpdj4KKzxkaXYgY2xhc3M9IlNSU3RhdHVzIiBpZD0iTm9NYXRjaGVzIj5ObyBNYXRjaGVzPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iaGVhZGVyIj4KKyAgPGRpdiBjbGFzcz0ic3VtbWFyeSI+Cis8YSBocmVmPSIjZnVuYy1tZW1iZXJzIj5GdW5jdGlvbnM8L2E+ICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5BQ0Q8ZGl2IGNsYXNzPSJpbmdyb3VwcyI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXBpLmh0bWwiPkFQSXM8L2E+ICZyYXF1bzsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fY2FsbGJhY2tzdHlsZV9fYXBpLmh0bWwiPiZxdW90O3JhdyZxdW90OyBBUElzPC9hPiAmcmFxdW87IDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwLmh0bWwiPklQPC9hPiAmcmFxdW87IDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNC5odG1sIj5JUHY0PC9hPjwvZGl2PjwvZGl2PjwvZGl2PgorPC9kaXY+PCEtLWhlYWRlci0tPgorPGRpdiBjbGFzcz0iY29udGVudHMiPgorPHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZnVuYy1tZW1iZXJzIiBuYW1lPSJmdW5jLW1lbWJlcnMiPjwvYT4KK0Z1bmN0aW9uczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiIGlkPSJyX2dhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2ExNTg4NTZiZjEzOWNiMjc2MTgzN2RkZmEwNzMwM2JkYyI+YWNkX2FkZDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84aC5odG1sI2FiYjQ0NjQwNDc1MmY1NmIwMjhlYWZhODMwMmRiOTU1ZiI+YWNkX2NvbmZsaWN0X2NhbGxiYWNrX3Q8L2E+IGFjZF9jb25mbGljdF9jYWxsYmFjayk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTE1ODg1NmJmMTM5Y2IyNzYxODM3ZGRmYTA3MzAzYmRjIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiIGlkPSJyX2dhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E3MDUwMzY5NmJjYTI1ZTFjZmI2MWZhZDM4YjQzMjdkYSI+YWNkX3JlbW92ZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNzA1MDM2OTZiY2EyNWUxY2ZiNjFmYWQzOGI0MzI3ZGEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiIgaWQ9InJfZ2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTJjYTJlMmRiYjk3MTNmOTA1MTVkNDQzZGM2OTFiNWNiIj5hY2Rfc3RhcnQ8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiPmlwNF9hZGRyX3Q8L2E+IGlwYWRkcik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTJjYTJlMmRiYjk3MTNmOTA1MTVkNDQzZGM2OTFiNWNiIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMzZkYTJiMjM5NTFhMTRjYTNjOTJmNWU3OGRiMmYxYjciIGlkPSJyX2dhMzZkYTJiMjM5NTFhMTRjYTNjOTJmNWU3OGRiMmYxYjciPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EzNmRhMmIyMzk1MWExNGNhM2M5MmY1ZTc4ZGIyZjFiNyI+YWNkX3N0b3A8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTM2ZGEyYjIzOTUxYTE0Y2EzYzkyZjVlNzhkYjJmMWI3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMjg3MmZhMzc1ZjljZDhmNWIwOTU2MzlkNjUyZjZiZmYiIGlkPSJyX2dhMjg3MmZhMzc1ZjljZDhmNWIwOTU2MzlkNjUyZjZiZmYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EyODcyZmEzNzVmOWNkOGY1YjA5NTYzOWQ2NTJmNmJmZiI+YWNkX25ldHdvcmtfY2hhbmdlZF9saW5rX2Rvd248L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMjg3MmZhMzc1ZjljZDhmNWIwOTU2MzlkNjUyZjZiZmYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyIgaWQ9InJfZ2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTE4YjQ0NGY2ZmM2OTMyNTQxNmI0NjMyMDhhNzU0Yzk3Ij5hY2RfbmV0aWZfaXBfYWRkcl9jaGFuZ2VkPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgY29uc3QgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EzMzVhOGM5ZGY2NjMxOWU4OGExYTUyOTA0N2NlMGExZSI+aXBfYWRkcl90PC9hPiAqb2xkX2FkZHIsIGNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhMzM1YThjOWRmNjYzMTllODhhMWE1MjkwNDdjZTBhMWUiPmlwX2FkZHJfdDwvYT4gKm5ld19hZGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMThiNDQ0ZjZmYzY5MzI1NDE2YjQ2MzIwOGE3NTRjOTciPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8L3RhYmxlPgorPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+Cis8cD5BQ0QgcmVsYXRlZCBmdW5jdGlvbnMgVVNBR0U6PC9wPgorPHA+ZGVmaW5lIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2FjZC5odG1sI2dhNmYxNjY3ODY2MzM1Y2FkM2E3YjEyMjFiZDBiMjc0ZTciPkxXSVBfQUNEPC9hPiAxIGluIHlvdXIgbHdpcG9wdHMuaCBPcHRpb25zOiBBQ0RfVE1SX0lOVEVSVkFMIG1zZWNzLCBJIHJlY29tbWVuZCBhIHZhbHVlIG9mIDEwMC4gVGhlIHZhbHVlIG11c3QgZGl2aWRlIDEwMDAgd2l0aCBhIHJlbWFpbmRlciBhbG1vc3QgMC4gUG9zc2libGUgdmFsdWVzIGFyZSAxMDAwLCA1MDAsIDMzMywgMjUwLCAyMDAsIDE2NiwgMTQyLCAxMjUsIDExMSwgMTAwIC4uLi48L3A+Cis8cD5Gb3IgZml4ZWQgSVA6PC9wPjx1bD4KKzxsaT5jYWxsIGFjZF9zdGFydCBhZnRlciBzZWxlY3RpbmcgYW4gSVAgYWRkcmVzcy4gVGhlIGNhbGxlciB3aWxsIGJlIGluZm9ybWVkIG9uIGNvbmZsaWN0IHN0YXR1cyB2aWEgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLjwvbGk+Cis8L3VsPgorPHA+V2l0aCBBVVRPSVA6PC9wPjx1bD4KKzxsaT53aWxsIGJlIGNhbGxlZCBmcm9tIHRoZSBhdXRvaXAgbW9kdWxlLiBObyBleHRyYSdzIG5lZWRlZC48L2xpPgorPC91bD4KKzxwPldpdGggREhDUDo8L3A+PHVsPgorPGxpPmVuYWJsZSBMV0lQX0RIQ1BfRE9FU19BQ0RfQ0hFQ0suIFRoZW4gaXQgd2lsbCBiZSBjYWxsZWQgZnJvbSB0aGUgZGhjcCBtb2R1bGUuIE5vIGV4dHJhJ3MgbmVlZGVkLiA8L2xpPgorPC91bD4KKzxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImdhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiIG5hbWU9ImdhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTE1ODg1NmJmMTM5Y2IyNzYxODM3ZGRmYTA3MzAzYmRjIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hY2RfYWRkKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gYWNkX2FkZCA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm5ldGlmPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwiPmFjZDwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWNkPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PGEgY2xhc3M9ImVsIiBocmVmPSJhY2RfOGguaHRtbCNhYmI0NDY0MDQ3NTJmNTZiMDI4ZWFmYTgzMDJkYjk1NWYiPmFjZF9jb25mbGljdF9jYWxsYmFja190PC9hPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWNkX2NvbmZsaWN0X2NhbGxiYWNrPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkFkZCBBQ0QgY2xpZW50IHRvIHRoZSBjbGllbnQgbGlzdCBhbmQgaW5pdGlhbGl6ZSBjYWxsYmFjayBmdW5jdGlvbjwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPm5ldHdvcmsgaW50ZXJmYWNlIG9uIHdoaWNoIHRvIHN0YXJ0IHRoZSBhY2QgY2xpZW50IDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmFjZDwvdGQ+PHRkPmFjZCBtb2R1bGUgdG8gYmUgYWRkZWQgdG8gdGhlIGxpc3QgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+YWNkX2NvbmZsaWN0X2NhbGxiYWNrPC90ZD48dGQ+Y2FsbGJhY2sgdG8gYmUgY2FsbGVkIHdoZW4gY29uZmxpY3QgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyIgbmFtZT0iZ2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMThiNDQ0ZjZmYzY5MzI1NDE2YjQ2MzIwOGE3NTRjOTciPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmFjZF9uZXRpZl9pcF9hZGRyX2NoYW5nZWQoKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dm9pZCBhY2RfbmV0aWZfaXBfYWRkcl9jaGFuZ2VkIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bmV0aWY8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5jb25zdCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTMzNWE4YzlkZjY2MzE5ZTg4YTFhNTI5MDQ3Y2UwYTFlIj5pcF9hZGRyX3Q8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm9sZF9hZGRyPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3QgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EzMzVhOGM5ZGY2NjMxOWU4OGExYTUyOTA0N2NlMGExZSI+aXBfYWRkcl90PC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXdfYWRkcjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5JbmZvcm0gdGhlIEFDRCBtb2R1bGVzIG9mIGFkZHJlc3MgY2hhbmdlczwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPm5ldHdvcmsgaW50ZXJmYWNlIG9uIHdoaWNoIHRoZSBhZGRyZXNzIGlzIGNoYW5naW5nIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPm9sZF9hZGRyPC90ZD48dGQ+b2xkIGlwIGFkZHJlc3MgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bmV3X2FkZHI8L3RkPjx0ZD5uZXcgaXAgYWRkcmVzcyA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImdhMjg3MmZhMzc1ZjljZDhmNWIwOTU2MzlkNjUyZjZiZmYiIG5hbWU9ImdhMjg3MmZhMzc1ZjljZDhmNWIwOTU2MzlkNjUyZjZiZmYiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTI4NzJmYTM3NWY5Y2Q4ZjViMDk1NjM5ZDY1MmY2YmZmIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hY2RfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93bigpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIGFjZF9uZXR3b3JrX2NoYW5nZWRfbGlua19kb3duIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bmV0aWY8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+SW5mb3JtIHRoZSBBQ0QgbW9kdWxlcyB3aGVuIHRoZSBsaW5rIGdvZXMgZG93bjwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPm5ldHdvcmsgaW50ZXJmYWNlIG9uIHdoaWNoIHRvIGluZm9ybSB0aGUgQUNEIGNsaWVudHMgPC90ZD48L3RyPgorICA8L3RhYmxlPgorICA8L2RkPgorPC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYTcwNTAzNjk2YmNhMjVlMWNmYjYxZmFkMzhiNDMyN2RhIiBuYW1lPSJnYTcwNTAzNjk2YmNhMjVlMWNmYjYxZmFkMzhiNDMyN2RhIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E3MDUwMzY5NmJjYTI1ZTFjZmI2MWZhZDM4YjQzMjdkYSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YWNkX3JlbW92ZSgpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIGFjZF9yZW1vdmUgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGFjZC5odG1sIj5hY2Q8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFjZDwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5SZW12b2UgQUNEIGNsaWVudCBmcm9tIHRoZSBjbGllbnQgbGlzdDwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPm5ldHdvcmsgaW50ZXJmYWNlIGZyb20gd2hpY2ggdG8gcmVtb3ZlIHRoZSBhY2QgY2xpZW50IDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmFjZDwvdGQ+PHRkPmFjZCBtb2R1bGUgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBsaXN0IDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiIgbmFtZT0iZ2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMmNhMmUyZGJiOTcxM2Y5MDUxNWQ0NDNkYzY5MWI1Y2IiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmFjZF9zdGFydCgpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IGFjZF9zdGFydCA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm5ldGlmPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWNkLmh0bWwiPmFjZDwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWNkPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiPmlwNF9hZGRyX3Q8L2E+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5pcGFkZHI8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+U3RhcnQgQUNEIGNsaWVudDwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPm5ldHdvcmsgaW50ZXJmYWNlIG9uIHdoaWNoIHRvIHN0YXJ0IHRoZSBhY2QgY2xpZW50IDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmFjZDwvdGQ+PHRkPmFjZCBtb2R1bGUgdG8gc3RhcnQgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+aXBhZGRyPC90ZD48dGQ+aXAgYWRkcmVzcyB0byBwZXJmb3JtIGFjZCBvbiA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImdhMzZkYTJiMjM5NTFhMTRjYTNjOTJmNWU3OGRiMmYxYjciIG5hbWU9ImdhMzZkYTJiMjM5NTFhMTRjYTNjOTJmNWU3OGRiMmYxYjciPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTM2ZGEyYjIzOTUxYTE0Y2EzYzkyZjVlNzhkYjJmMWI3Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hY2Rfc3RvcCgpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IGFjZF9zdG9wIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhY2QuaHRtbCI+YWNkPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hY2Q8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+U3RvcCBBQ0QgY2xpZW50PC9wPgorPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CisgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmFjZDwvdGQ+PHRkPmFjZCBtb2R1bGUgdG8gc3RvcCA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KKzwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+Cis8IS0tIHN0YXJ0IGZvb3RlciBwYXJ0IC0tPgorPGRpdiBpZD0ibmF2LXBhdGgiIGNsYXNzPSJuYXZwYXRoIj48IS0tIGlkIGlzIG5lZWRlZCBmb3IgdHJlZXZpZXcgZnVuY3Rpb24hIC0tPgorICA8dWw+CisgICAgPGxpIGNsYXNzPSJmb290ZXIiPkdlbmVyYXRlZCBieSA8YSBocmVmPSJodHRwczovL3d3dy5kb3h5Z2VuLm9yZy9pbmRleC5odG1sIj48aW1nIGNsYXNzPSJmb290ZXIiIHNyYz0iZG94eWdlbi5zdmciIHdpZHRoPSIxMDQiIGhlaWdodD0iMzEiIGFsdD0iZG94eWdlbiIvPjwvYT4gMS4xMi4wIDwvbGk+CisgIDwvdWw+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hY2QuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYWNkLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlOTg5MTcKLS0tIC9kZXYvbnVsbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYWNkLmpzCkBAIC0wLDAgKzEsOSBAQAordmFyIGdyb3VwX19hY2QgPQorWworICAgIFsgImFjZF9hZGQiLCAiZ3JvdXBfX2FjZC5odG1sI2dhMTU4ODU2YmYxMzljYjI3NjE4MzdkZGZhMDczMDNiZGMiLCBudWxsIF0sCisgICAgWyAiYWNkX25ldGlmX2lwX2FkZHJfY2hhbmdlZCIsICJncm91cF9fYWNkLmh0bWwjZ2ExOGI0NDRmNmZjNjkzMjU0MTZiNDYzMjA4YTc1NGM5NyIsIG51bGwgXSwKKyAgICBbICJhY2RfbmV0d29ya19jaGFuZ2VkX2xpbmtfZG93biIsICJncm91cF9fYWNkLmh0bWwjZ2EyODcyZmEzNzVmOWNkOGY1YjA5NTYzOWQ2NTJmNmJmZiIsIG51bGwgXSwKKyAgICBbICJhY2RfcmVtb3ZlIiwgImdyb3VwX19hY2QuaHRtbCNnYTcwNTAzNjk2YmNhMjVlMWNmYjYxZmFkMzhiNDMyN2RhIiwgbnVsbCBdLAorICAgIFsgImFjZF9zdGFydCIsICJncm91cF9fYWNkLmh0bWwjZ2EyY2EyZTJkYmI5NzEzZjkwNTE1ZDQ0M2RjNjkxYjVjYiIsIG51bGwgXSwKKyAgICBbICJhY2Rfc3RvcCIsICJncm91cF9fYWNkLmh0bWwjZ2EzNmRhMmIyMzk1MWExNGNhM2M5MmY1ZTc4ZGIyZjFiNyIsIG51bGwgXQorXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYWx0Y3AuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcC5odG1sCmluZGV4IDEwYzIzMjcuLjg2YTY5YTQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTk5LDYgKzk5LDggQEAKIDxkaXYgY2xhc3M9ImhlYWRlciI+CiAgIDxkaXYgY2xhc3M9InN1bW1hcnkiPgogPGEgaHJlZj0iI2dyb3VwcyI+VG9waWNzPC9hPiAmIzEyNDsKKzxhIGhyZWY9IiNuZXN0ZWQtY2xhc3NlcyI+RGF0YSBTdHJ1Y3R1cmVzPC9hPiAmIzEyNDsKKzxhIGhyZWY9IiN0eXBlZGVmLW1lbWJlcnMiPlR5cGVkZWZzPC9hPiAmIzEyNDsKIDxhIGhyZWY9IiNmdW5jLW1lbWJlcnMiPkZ1bmN0aW9uczwvYT4gIDwvZGl2PgogICA8ZGl2IGNsYXNzPSJoZWFkZXJ0aXRsZSI+PGRpdiBjbGFzcz0idGl0bGUiPkFwcGxpY2F0aW9uIGxheWVyZWQgVENQIEZ1bmN0aW9uczxkaXYgY2xhc3M9ImluZ3JvdXBzIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hcGkuaHRtbCI+QVBJczwvYT4gJnJhcXVvOyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19jYWxsYmFja3N0eWxlX19hcGkuaHRtbCI+JnF1b3Q7cmF3JnF1b3Q7IEFQSXM8L2E+ICZyYXF1bzsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX2FwaS5odG1sIj5BcHBsaWNhdGlvbiBsYXllcmVkIFRDUCBJbnRyb2R1Y3Rpb248L2E+PC9kaXY+PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0taGVhZGVyLS0+CkBAIC0xMDksMTMgKzExMSwyMyBAQAogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCI+VExTIGxheWVyPC9hPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0ibmVzdGVkLWNsYXNzZXMiIG5hbWU9Im5lc3RlZC1jbGFzc2VzIj48L2E+CitEYXRhIFN0cnVjdHVyZXM8L2gyPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCAmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhbHRjcF9fYWxsb2NhdG9yX19zLmh0bWwiPmFsdGNwX2FsbG9jYXRvcl9zPC9hPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzwvdGFibGU+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0idHlwZWRlZi1tZW1iZXJzIiBuYW1lPSJ0eXBlZGVmLW1lbWJlcnMiPjwvYT4KK1R5cGVkZWZzPC9oMj48L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSIgaWQ9InJfZ2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dHlwZWRlZiBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RhbHRjcF9fYWxsb2NhdG9yX19zLmh0bWwiPmFsdGNwX2FsbG9jYXRvcl9zPC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ij5hbHRjcF9hbGxvY2F0b3JfdDwvYT48L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPC90YWJsZT48dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KIDx0ciBjbGFzcz0iaGVhZGluZyI+PHRkIGNvbHNwYW49IjIiPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPjxhIGlkPSJmdW5jLW1lbWJlcnMiIG5hbWU9ImZ1bmMtbWVtYmVycyI+PC9hPgogRnVuY3Rpb25zPC9oMj48L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCIgaWQ9InJfZ2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IGFsdGNwX3BjYiAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZmZjNzJiOWRjODViYjBhOWU4M2QwNDkyMWQ0YzdiY2QiPmFsdGNwX25ld19pcDY8L2E+IChhbHRjcF9hbGxvY2F0b3JfdCAqYWxsb2NhdG9yKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWZmYzcyYjlkYzg1YmIwYTllODNkMDQ5MjFkNGM3YmNkIiBpZD0icl9nYWZmYzcyYjlkYzg1YmIwYTllODNkMDQ5MjFkNGM3YmNkIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfcGNiIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCI+YWx0Y3BfbmV3X2lwNjwvYT4gKDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMDRhMzI4ZjY3MzU5ZWUwM2QxZWM2ODI0OTc4YjcyMDkiPmFsdGNwX2FsbG9jYXRvcl90PC9hPiAqYWxsb2NhdG9yKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZmZjNzJiOWRjODViYjBhOWU4M2QwNDkyMWQ0YzdiY2QiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2E2YjBmYzIwY2NlNDAzNjRhYTgyMWMwN2RjMzRjYjkwOCIgaWQ9InJfZ2E2YjBmYzIwY2NlNDAzNjRhYTgyMWMwN2RjMzRjYjkwOCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IGFsdGNwX3BjYiAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNmIwZmMyMGNjZTQwMzY0YWE4MjFjMDdkYzM0Y2I5MDgiPmFsdGNwX25ldzwvYT4gKGFsdGNwX2FsbG9jYXRvcl90ICphbGxvY2F0b3IpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNmIwZmMyMGNjZTQwMzY0YWE4MjFjMDdkYzM0Y2I5MDgiIGlkPSJyX2dhNmIwZmMyMGNjZTQwMzY0YWE4MjFjMDdkYzM0Y2I5MDgiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCBhbHRjcF9wY2IgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij5hbHRjcF9uZXc8L2E+ICg8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ij5hbHRjcF9hbGxvY2F0b3JfdDwvYT4gKmFsbG9jYXRvcik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTZiMGZjMjBjY2U0MDM2NGFhODIxYzA3ZGMzNGNiOTA4Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiIGlkPSJyX2dhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCBhbHRjcF9wY2IgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWJhODg1MDYyZmU0M2QzMTdlNjZjMjVmZWI5ZjdmNzFkIj5hbHRjcF9uZXdfaXBfdHlwZTwvYT4gKGFsdGNwX2FsbG9jYXRvcl90ICphbGxvY2F0b3IsIHU4X3QgaXBfdHlwZSk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FiYTg4NTA2MmZlNDNkMzE3ZTY2YzI1ZmViOWY3ZjcxZCIgaWQ9InJfZ2FiYTg4NTA2MmZlNDNkMzE3ZTY2YzI1ZmViOWY3ZjcxZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IGFsdGNwX3BjYiAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiPmFsdGNwX25ld19pcF90eXBlPC9hPiAoPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSI+YWx0Y3BfYWxsb2NhdG9yX3Q8L2E+ICphbGxvY2F0b3IsIHU4X3QgaXBfdHlwZSk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWJhODg1MDYyZmU0M2QzMTdlNjZjMjVmZWI5ZjdmNzFkIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhMTk3YTMzYWYwMzg1NTZhMDRkOGYyN2M3MDMzZDc3MWYiIGlkPSJyX2dhMTk3YTMzYWYwMzg1NTZhMDRkOGYyN2M3MDMzZDc3MWYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2ExOTdhMzNhZjAzODU1NmEwNGQ4ZjI3YzcwMzNkNzcxZiI+YWx0Y3BfYXJnPC9hPiAoc3RydWN0IGFsdGNwX3BjYiAqY29ubiwgdm9pZCAqYXJnKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMTk3YTMzYWYwMzg1NTZhMDRkOGYyN2M3MDMzZDc3MWYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CkBAIC0xNTgsNiArMTcwLDIyIEBACiA8L3RhYmxlPgogPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+CiA8cD5UaGlzIGZpbGUgY29udGFpbnMgdGhlIGNvbW1vbiBmdW5jdGlvbnMgZm9yIGFsdGNwIHRvIHdvcmsuIEZvciBtb3JlIGRldGFpbHMgc2VlIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX19hcGkuaHRtbCI+QXBwbGljYXRpb24gbGF5ZXJlZCBUQ1AgSW50cm9kdWN0aW9uPC9hPi4gPC9wPgorPGgyIGNsYXNzPSJncm91cGhlYWRlciI+VHlwZWRlZiBEb2N1bWVudGF0aW9uPC9oMj4KKzxhIGlkPSJnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5IiBuYW1lPSJnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YWx0Y3BfYWxsb2NhdG9yX3Q8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnR5cGVkZWYgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0YWx0Y3BfX2FsbG9jYXRvcl9fcy5odG1sIj5hbHRjcF9hbGxvY2F0b3JfczwvYT4gPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSI+YWx0Y3BfYWxsb2NhdG9yX3Q8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+U3RydWN0IGNvbnRhaW5pbmcgYW4gYWxsb2NhdG9yIGFuZCBpdHMgc3RhdGUuIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgogPGEgaWQ9ImdhN2Y2ZmFiOTlmZWQ0NDgzODVhNzZiNGE1MTAwNzk2YWIiIG5hbWU9ImdhN2Y2ZmFiOTlmZWQ0NDgzODVhNzZiNGE1MTAwNzk2YWIiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTdmNmZhYjk5ZmVkNDQ4Mzg1YTc2YjRhNTEwMDc5NmFiIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hbHRjcF9hYm9ydCgpPC9oMj4KQEAgLTM3NCw3ICs0MDIsNyBAQAogICAgICAgICA8dHI+CiAgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj5zdHJ1Y3QgYWx0Y3BfcGNiICogYWx0Y3BfbmV3IDwvdGQ+CiAgICAgICAgICAgPHRkPig8L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5hbHRjcF9hbGxvY2F0b3JfdCAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hbGxvY2F0b3I8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EwNGEzMjhmNjczNTllZTAzZDFlYzY4MjQ5NzhiNzIwOSI+YWx0Y3BfYWxsb2NhdG9yX3Q8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFsbG9jYXRvcjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgogICAgICAgICAgIDx0ZD48L3RkPgogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KQEAgLTM5Miw3ICs0MjAsNyBAQAogICAgICAgICA8dHI+CiAgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj5zdHJ1Y3QgYWx0Y3BfcGNiICogYWx0Y3BfbmV3X2lwNiA8L3RkPgogICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+YWx0Y3BfYWxsb2NhdG9yX3QgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWxsb2NhdG9yPC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMDRhMzI4ZjY3MzU5ZWUwM2QxZWM2ODI0OTc4YjcyMDkiPmFsdGNwX2FsbG9jYXRvcl90PC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hbGxvY2F0b3I8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CkBAIC00MTAsNyArNDM4LDcgQEAKICAgICAgICAgPHRyPgogICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+c3RydWN0IGFsdGNwX3BjYiAqIGFsdGNwX25ld19pcF90eXBlIDwvdGQ+CiAgICAgICAgICAgPHRkPig8L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5hbHRjcF9hbGxvY2F0b3JfdCAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hbGxvY2F0b3I8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMDRhMzI4ZjY3MzU5ZWUwM2QxZWM2ODI0OTc4YjcyMDkiPmFsdGNwX2FsbG9jYXRvcl90PC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hbGxvY2F0b3I8L2VtPjwvc3Bhbj4sIDwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgpAQCAtNTYwLDcgKzU4OCw3IEBACiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0idGNwXzhjLmh0bWwjYTJjNDIzNGYxZTk1YjZiZGUwZTg0ZDRlYTk3YWU5NWJjIj50Y3Bfc2V0cHJpbygpPC9hPiA8L2RkPjwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gc2VlIj48ZHQ+U2VlIGFsc288L2R0PjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhdy5odG1sI2dhMmM0MjM0ZjFlOTViNmJkZTBlODRkNGVhOTdhZTk1YmMiPnRjcF9zZXRwcmlvKCk8L2E+IDwvZGQ+PC9kbD4KIAogPC9kaXY+CiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcC5qcwppbmRleCBkNjk1MDdmLi5iM2VmMGVhIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYWx0Y3AuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2FsdGNwLmpzCkBAIC0xLDYgKzEsMTEgQEAKIHZhciBncm91cF9fYWx0Y3AgPQogWwogICAgIFsgIlRMUyBsYXllciIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sIiwgImdyb3VwX19hbHRjcF9fdGxzIiBdLAorICAgIFsgImFsdGNwX2FsbG9jYXRvcl9zIiwgInN0cnVjdGFsdGNwX19hbGxvY2F0b3JfX3MuaHRtbCIsIFsKKyAgICAgIFsgImFsbG9jIiwgInN0cnVjdGFsdGNwX19hbGxvY2F0b3JfX3MuaHRtbCNhYWYwN2ViZjE4MWExMWQwMzIwMzgxZWY0NmQ0MGU2ODciLCBudWxsIF0sCisgICAgICBbICJhcmciLCAic3RydWN0YWx0Y3BfX2FsbG9jYXRvcl9fcy5odG1sI2E4ZDhhYTQ4ZTlhMTA1ZTlkMjVhZDRiOTBkMjU5ZDBiMSIsIG51bGwgXQorICAgIF0gXSwKKyAgICBbICJhbHRjcF9hbGxvY2F0b3JfdCIsICJncm91cF9fYWx0Y3AuaHRtbCNnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5IiwgbnVsbCBdLAogICAgIFsgImFsdGNwX2Fib3J0IiwgImdyb3VwX19hbHRjcC5odG1sI2dhN2Y2ZmFiOTlmZWQ0NDgzODVhNzZiNGE1MTAwNzk2YWIiLCBudWxsIF0sCiAgICAgWyAiYWx0Y3BfYWNjZXB0IiwgImdyb3VwX19hbHRjcC5odG1sI2dhN2M0Y2QwYjExNzlhNTNiMWEyMjM5MzZiYTIyNzBiZjkiLCBudWxsIF0sCiAgICAgWyAiYWx0Y3BfYXJnIiwgImdyb3VwX19hbHRjcC5odG1sI2dhMTk3YTMzYWYwMzg1NTZhMDRkOGYyN2M3MDMzZDc3MWYiLCBudWxsIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYWx0Y3BfX2FwaS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2FsdGNwX19hcGkuaHRtbAppbmRleCA5NmRlY2Y5Li41NjQwOTM4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYWx0Y3BfX2FwaS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcF9fYXBpLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTIyLDggKzEyMiw4IEBACiA8bGk+SW5jbHVkZSAibHdpcC9hbHRjcC5oIiBpbnN0ZWFkIG9mICJsd2lwL3RjcC5oIjwvbGk+CiA8bGk+UmVwbGFjZSAic3RydWN0IHRjcF9wY2IiIHdpdGggInN0cnVjdCBhbHRjcF9wY2IiPC9saT4KIDxsaT5QcmVmaXggYWxsIGNhbGxlZCB0Y3AgQVBJIGZ1bmN0aW9ucyB3aXRoICJhbHRjcF8iIGluc3RlYWQgb2YgInRjcF8iIHRvIGxpbmsgYWdhaW5zdCB0aGUgYWx0Y3AgZnVuY3Rpb25zPC9saT4KLTxsaT48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhNmIwZmMyMGNjZTQwMzY0YWE4MjFjMDdkYzM0Y2I5MDgiPmFsdGNwX25ldzwvYT4gKGFuZCBhbHRjcF9uZXdfaXBfdHlwZS8gYWx0Y3BfbmV3X2lwNikgdGFrZSBhbiBhbHRjcF9hbGxvY2F0b3JfdCBhcyBhbiBhcmd1bWVudCwgd2hlcmVhcyB0aGUgb3JpZ2luYWwgdGNwIEFQSSBmdW5jdGlvbnMgdGFrZSBubyBhcmd1bWVudHMuPC9saT4KLTxsaT5BbiBhbHRjcF9hbGxvY2F0b3JfdCBhbGxvY2F0b3IgaXMgYW4gb2JqZWN0IHRoYXQgaG9sZHMgYSBwb2ludGVyIHRvIGFuIGFsbG9jYXRvciBvYmplY3QgYW5kIGEgY29ycmVzcG9uZGluZyBzdGF0ZSAoZS5nLiBmb3IgVExTLCB0aGUgY29ycmVzcG9uZGluZyBzdGF0ZSBtYXkgaG9sZCBjZXJ0aWZpY2F0ZXMgb3Iga2V5cykuIFRoaXMgd2F5LCB0aGUgYXBwbGljYXRpb24gZG9lcyBub3QgZXZlbiBuZWVkIHRvIGtub3cgaWYgaXQgdXNlcyBUTFMgb3IgcHVyZSBUQ1AsIHRoaXMgaXMgaGFuZGxlZCBhdCBydW50aW1lIGJ5IHBhc3NpbmcgYSBzcGVjaWZpYyBhbGxvY2F0b3IuPC9saT4KKzxsaT48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhNmIwZmMyMGNjZTQwMzY0YWE4MjFjMDdkYzM0Y2I5MDgiPmFsdGNwX25ldzwvYT4gKGFuZCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhYmE4ODUwNjJmZTQzZDMxN2U2NmMyNWZlYjlmN2Y3MWQiPmFsdGNwX25ld19pcF90eXBlPC9hPiAvIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2FmZmM3MmI5ZGM4NWJiMGE5ZTgzZDA0OTIxZDRjN2JjZCI+YWx0Y3BfbmV3X2lwNjwvYT4pIHRha2UgYW4gPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ij5hbHRjcF9hbGxvY2F0b3JfdDwvYT4gYXMgYW4gYXJndW1lbnQsIHdoZXJlYXMgdGhlIG9yaWdpbmFsIHRjcCBBUEkgZnVuY3Rpb25zIHRha2Ugbm8gYXJndW1lbnRzLjwvbGk+Cis8bGk+QW4gPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYTA0YTMyOGY2NzM1OWVlMDNkMWVjNjgyNDk3OGI3MjA5Ij5hbHRjcF9hbGxvY2F0b3JfdDwvYT4gYWxsb2NhdG9yIGlzIGFuIG9iamVjdCB0aGF0IGhvbGRzIGEgcG9pbnRlciB0byBhbiBhbGxvY2F0b3Igb2JqZWN0IGFuZCBhIGNvcnJlc3BvbmRpbmcgc3RhdGUgKGUuZy4gZm9yIFRMUywgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGUgbWF5IGhvbGQgY2VydGlmaWNhdGVzIG9yIGtleXMpLiBUaGlzIHdheSwgdGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IGV2ZW4gbmVlZCB0byBrbm93IGlmIGl0IHVzZXMgVExTIG9yIHB1cmUgVENQLCB0aGlzIGlzIGhhbmRsZWQgYXQgcnVudGltZSBieSBwYXNzaW5nIGEgc3BlY2lmaWMgYWxsb2NhdG9yLjwvbGk+CiA8bGk+QW4gYXBwbGljYXRpb24gY2FuIGFsdGVybmF0aXZlbHkgYmluZCBoYXJkIHRvIHRoZSBhbHRjcF90bHMgQVBJIGJ5IGNhbGxpbmcgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhYjZhNzE3NDQ2YWY5MzE5NDliYzNlMGRhY2ViMDkwYzgiPmFsdGNwX3Rsc19uZXc8L2E+IG9yIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYWE1MjdiNzU2YWQ2NjczYTE5Y2M3ODI4NzAyNmM3NjVjIj5hbHRjcF90bHNfd3JhcDwvYT4uPC9saT4KIDxsaT5UaGUgVExTIGxheWVyIGlzIG5vdCBkaXJlY3RseSBpbXBsZW1lbnRlZCBieSBsd0lQLCBidXQgYSBwb3J0IHRvIG1iZWRUTFMgaXMgcHJvdmlkZWQuPC9saT4KIDxsaT5Bbm90aGVyIGFsdGNwIGxheWVyIGlzIHByb3h5LWNvbm5lY3QgdG8gdXNlIFRMUyBiZWhpbmQgYSBIVFRQIHByb3h5IChzZWUgPGEgY2xhc3M9ImVsIiBocmVmPSJhbHRjcF9fcHJveHljb25uZWN0XzhoLmh0bWwiPmFsdGNwX3Byb3h5Y29ubmVjdC5oPC9hPik8L2xpPgpAQCAtMTMxLDE0ICsxMzEsMTUgQEAKIDxoMj5hbHRjcF9hbGxvY2F0b3JfdCA8L2gyPgogPHA+QW4gYWx0Y3AgYWxsb2NhdG9yIGlzIGNyZWF0ZWQgYnkgdGhlIGFwcGxpY2F0aW9uIGJ5IGNvbWJpbmluZyBhbiBhbGxvY2F0b3IgY2FsbGJhY2sgZnVuY3Rpb24gYW5kIGEgY29ycmVzcG9uZGluZyBzdGF0ZSwgZS5nLjo8L3A+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdGF0aWM8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmR0eXBlIj51bnNpZ25lZDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmR0eXBlIj5jaGFyPC9zcGFuPiBjZXJ0W10gPSB7MHgyRCwgLi4uIChzZWUgbWJlZFRMUyBkb2MgPHNwYW4gY2xhc3M9ImtleXdvcmRmbG93Ij5mb3I8L3NwYW4+IGhvdyB0byBjcmVhdGUgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnRoaXM8L3NwYW4+KX07PC9kaXY+CiA8ZGl2IGNsYXNzPSJsaW5lIj48c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RydWN0IDwvc3Bhbj5hbHRjcF90bHNfY29uZmlnICogY29uZiA9IDxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhN2IzYzExYzhhMjczZDY4YWNjMzMyYzU1ZTZiMzgxNzAiPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX2NsaWVudDwvYT4oY2VydCwgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnNpemVvZjwvc3Bhbj4oY2VydCkpOzwvZGl2PgotPGRpdiBjbGFzcz0ibGluZSI+YWx0Y3BfYWxsb2NhdG9yX3QgdGxzX2FsbG9jYXRvciA9IHs8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0YWx0Y3BfX2FsbG9jYXRvcl9fcy5odG1sIj5hbHRjcF9hbGxvY2F0b3JfdDwvYT4gdGxzX2FsbG9jYXRvciA9IHs8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgPGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FiMGJkZmQyZWRlMGRmNGQ0N2I2ZTEyY2NhYzJiMTRiYyI+YWx0Y3BfdGxzX2FsbG9jPC9hPiwgY29uZjwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+fTs8L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fYWx0Y3BfX3Rsc19odG1sX2dhN2IzYzExYzhhMjczZDY4YWNjMzMyYzU1ZTZiMzgxNzAiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTdiM2MxMWM4YTI3M2Q2OGFjYzMzMmM1NWU2YjM4MTcwIj5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19jbGllbnQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5zdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyAqIGFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX2NsaWVudChjb25zdCB1OF90ICpjZXJ0LCBzaXplX3QgY2VydF9sZW4pPC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2FsdGNwX190bHNfaHRtbF9nYWIwYmRmZDJlZGUwZGY0ZDQ3YjZlMTJjY2FjMmIxNGJjIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FiMGJkZmQyZWRlMGRmNGQ0N2I2ZTEyY2NhYzJiMTRiYyI+YWx0Y3BfdGxzX2FsbG9jPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+c3RydWN0IGFsdGNwX3BjYiAqIGFsdGNwX3Rsc19hbGxvYyh2b2lkICphcmcsIHU4X3QgaXBfdHlwZSk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gYWx0Y3BfYWxsb2MuYzo4MDwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdGFsdGNwX19hbGxvY2F0b3JfX3NfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RhbHRjcF9fYWxsb2NhdG9yX19zLmh0bWwiPmFsdGNwX2FsbG9jYXRvcl9zPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBhbHRjcC5oOjg1PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxoMj5zdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyA8L2gyPgogPHA+VGhlIHN0cnVjdCBhbHRjcF90bHNfY29uZmlnIGhvbGRzIHN0YXRlIHRoYXQgaXMgbmVlZGVkIHRvIGNyZWF0ZSBuZXcgVExTIGNsaWVudCBvciBzZXJ2ZXIgY29ubmVjdGlvbnMgKGUuZy4gY2VydGlmaWNhdGVzIGFuZCBwcml2YXRlIGtleXMpLjwvcD4KLTxwPkl0IGlzIG5vdCBkZWZpbmVkIGJ5IGx3SVAgaXRzZWxmIGJ1dCBieSB0aGUgVExTIHBvcnQgKGUuZy4gYWx0Y3BfdGxzIHRvIG1iZWRUTFMgYWRhcHRpb24pLiBIb3dldmVyLCB0aGUgcGFyYW1ldGVycyB1c2VkIHRvIGNyZWF0ZSBpdCBhcmUgZGVmaW5lZCBpbiA8YSBjbGFzcz0iZWwiIGhyZWY9ImFsdGNwX190bHNfOGguaHRtbCI+YWx0Y3BfdGxzLmg8L2E+IChzZWUgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhNjBiNDYzNWM4MGI4MzJhOGMzYjMzMmZkZWRlNjlkNWUiPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX3NlcnZlcl9wcml2a2V5X2NlcnQ8L2E+IGZvciBzZXJ2ZXJzIGFuZCBhbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19jbGllbnQvIGFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX2NsaWVudF8yd2F5YXV0aCBmb3IgY2xpZW50cykuPC9wPgorPHA+SXQgaXMgbm90IGRlZmluZWQgYnkgbHdJUCBpdHNlbGYgYnV0IGJ5IHRoZSBUTFMgcG9ydCAoZS5nLiBhbHRjcF90bHMgdG8gbWJlZFRMUyBhZGFwdGlvbikuIEhvd2V2ZXIsIHRoZSBwYXJhbWV0ZXJzIHVzZWQgdG8gY3JlYXRlIGl0IGFyZSBkZWZpbmVkIGluIDxhIGNsYXNzPSJlbCIgaHJlZj0iYWx0Y3BfX3Rsc184aC5odG1sIj5hbHRjcF90bHMuaDwvYT4gKHNlZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E2MGI0NjM1YzgwYjgzMmE4YzNiMzMyZmRlZGU2OWQ1ZSI+YWx0Y3BfdGxzX2NyZWF0ZV9jb25maWdfc2VydmVyX3ByaXZrZXlfY2VydDwvYT4gZm9yIHNlcnZlcnMgYW5kIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTdiM2MxMWM4YTI3M2Q2OGFjYzMzMmM1NWU2YjM4MTcwIj5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19jbGllbnQ8L2E+IC8gPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhNGRjY2JkODYxYzAzYTljMDllYWU2Nzk5ZGEwMDQ1OTciPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX2NsaWVudF8yd2F5YXV0aDwvYT4gZm9yIGNsaWVudHMpLjwvcD4KIDxwPkZvciBtYmVkVExTLCBlbnN1cmUgdGhhdCBjZXJ0aWZpY2F0ZXMgY2FuIGJlIHBhcnNlZCBieSAnbWJlZHRsc194NTA5X2NydF9wYXJzZSgpJyBhbmQgcHJpdmF0ZSBrZXlzIGNhbiBiZSBwYXJzZWQgYnkgJ21iZWR0bHNfcGtfcGFyc2Vfa2V5KCknLiA8L3A+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcF9fdGxzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYWx0Y3BfX3Rscy5odG1sCmluZGV4IGQyYjg1ZDcuLjE5MThmYWYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcF9fdGxzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2FsdGNwX190bHMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDUsOCArMTA1LDggQEAKIDx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImZ1bmMtbWVtYmVycyIgbmFtZT0iZnVuYy1tZW1iZXJzIj48L2E+CiBGdW5jdGlvbnM8L2gyPjwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYWY2ZWQxMzI3MTM5NDM3MWNjODlkNzBlZjUxMjhjNDExIiBpZD0icl9nYWY2ZWQxMzI3MTM5NDM3MWNjODlkNzBlZjUxMjhjNDExIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZjZlZDEzMjcxMzk0MzcxY2M4OWQ3MGVmNTEyOGM0MTEiPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX3NlcnZlcjwvYT4gKHVpbnQ4X3QgY2VydF9jb3VudCk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYWY2ZWQxMzI3MTM5NDM3MWNjODlkNzBlZjUxMjhjNDExIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhYTM3NjQ5YmYyNGViZWEyMzVhOGUzZThmNTBiOTgzMWYiIGlkPSJyX2dhYTM3NjQ5YmYyNGViZWEyMzVhOGUzZThmNTBiOTgzMWYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCBhbHRjcF90bHNfY29uZmlnIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FhMzc2NDliZjI0ZWJlYTIzNWE4ZTNlOGY1MGI5ODMxZiI+YWx0Y3BfdGxzX2NyZWF0ZV9jb25maWdfc2VydmVyPC9hPiAodThfdCBjZXJ0X2NvdW50KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYTM3NjQ5YmYyNGViZWEyMzVhOGUzZThmNTBiOTgzMWYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FlNmY1MjM3MGI2MmIwZjRiYThkMzczYzUxODZjOWU3ZSIgaWQ9InJfZ2FlNmY1MjM3MGI2MmIwZjRiYThkMzczYzUxODZjOWU3ZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWU2ZjUyMzcwYjYyYjBmNGJhOGQzNzNjNTE4NmM5ZTdlIj5hbHRjcF90bHNfY29uZmlnX3NlcnZlcl9hZGRfcHJpdmtleV9jZXJ0PC9hPiAoc3RydWN0IGFsdGNwX3Rsc19jb25maWcgKmNvbmZpZywgY29uc3QgdThfdCAqcHJpdmtleSwgc2l6ZV90IHByaXZrZXlfbGVuLCBjb25zdCB1OF90ICpwcml2a2V5X3Bhc3MsIHNpemVfdCBwcml2a2V5X3Bhc3NfbGVuLCBjb25zdCB1OF90ICpjZXJ0LCBzaXplX3QgY2VydF9sZW4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FlNmY1MjM3MGI2MmIwZjRiYThkMzczYzUxODZjOWU3ZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTYwYjQ2MzVjODBiODMyYThjM2IzMzJmZGVkZTY5ZDVlIiBpZD0icl9nYTYwYjQ2MzVjODBiODMyYThjM2IzMzJmZGVkZTY5ZDVlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNjBiNDYzNWM4MGI4MzJhOGMzYjMzMmZkZWRlNjlkNWUiPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX3NlcnZlcl9wcml2a2V5X2NlcnQ8L2E+IChjb25zdCB1OF90ICpwcml2a2V5LCBzaXplX3QgcHJpdmtleV9sZW4sIGNvbnN0IHU4X3QgKnByaXZrZXlfcGFzcywgc2l6ZV90IHByaXZrZXlfcGFzc19sZW4sIGNvbnN0IHU4X3QgKmNlcnQsIHNpemVfdCBjZXJ0X2xlbik8L3RkPjwvdHI+CkBAIC0xMTUsNiArMTE1LDggQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhN2IzYzExYzhhMjczZDY4YWNjMzMyYzU1ZTZiMzgxNzAiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E0ZGNjYmQ4NjFjMDNhOWMwOWVhZTY3OTlkYTAwNDU5NyIgaWQ9InJfZ2E0ZGNjYmQ4NjFjMDNhOWMwOWVhZTY3OTlkYTAwNDU5NyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IGFsdGNwX3Rsc19jb25maWcgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTRkY2NiZDg2MWMwM2E5YzA5ZWFlNjc5OWRhMDA0NTk3Ij5hbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19jbGllbnRfMndheWF1dGg8L2E+IChjb25zdCB1OF90ICpjYSwgc2l6ZV90IGNhX2xlbiwgY29uc3QgdThfdCAqcHJpdmtleSwgc2l6ZV90IHByaXZrZXlfbGVuLCBjb25zdCB1OF90ICpwcml2a2V5X3Bhc3MsIHNpemVfdCBwcml2a2V5X3Bhc3NfbGVuLCBjb25zdCB1OF90ICpjZXJ0LCBzaXplX3QgY2VydF9sZW4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E0ZGNjYmQ4NjFjMDNhOWMwOWVhZTY3OTlkYTAwNDU5NyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTFmNjBiMTJhNmE0NDQwMjE0YjdiY2YyZTNiYTQzMTI2IiBpZD0icl9nYTFmNjBiMTJhNmE0NDQwMjE0YjdiY2YyZTNiYTQzMTI2Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5pbnQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2ExZjYwYjEyYTZhNDQ0MDIxNGI3YmNmMmUzYmE0MzEyNiI+YWx0Y3BfdGxzX2NvbmZpZ3VyZV9hbHBuX3Byb3RvY29sczwvYT4gKHN0cnVjdCBhbHRjcF90bHNfY29uZmlnICpjb25mLCBjb25zdCBjaGFyICoqcHJvdG9zKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMWY2MGIxMmE2YTQ0NDAyMTRiN2JjZjJlM2JhNDMxMjYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E4ZmI4YTkyZmEzZjg0MTcwMDUwZGRhYjI4ODhiOTE0NSIgaWQ9InJfZ2E4ZmI4YTkyZmEzZjg0MTcwMDUwZGRhYjI4ODhiOTE0NSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYThmYjhhOTJmYTNmODQxNzAwNTBkZGFiMjg4OGI5MTQ1Ij5hbHRjcF90bHNfZnJlZV9jb25maWc8L2E+IChzdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyAqY29uZik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYThmYjhhOTJmYTNmODQxNzAwNTBkZGFiMjg4OGI5MTQ1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhNzU2NzVjY2VjMTQyZDE3ZmMwNjk1YjQyNWYzZWMxYzIiIGlkPSJyX2dhNzU2NzVjY2VjMTQyZDE3ZmMwNjk1YjQyNWYzZWMxYzIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E3NTY3NWNjZWMxNDJkMTdmYzA2OTViNDI1ZjNlYzFjMiI+YWx0Y3BfdGxzX2ZyZWVfZW50cm9weTwvYT4gKHZvaWQpPC90ZD48L3RyPgpAQCAtMTI3LDYgKzEyOSwxNCBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FiMGJkZmQyZWRlMGRmNGQ0N2I2ZTEyY2NhYzJiMTRiYyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTg1ZDIwYjRkYzMyMTM0MmNmMDlhZDkzMDg2MzA5YmI3IiBpZD0icl9nYTg1ZDIwYjRkYzMyMTM0MmNmMDlhZDkzMDg2MzA5YmI3Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E4NWQyMGI0ZGMzMjEzNDJjZjA5YWQ5MzA4NjMwOWJiNyI+YWx0Y3BfdGxzX2NvbnRleHQ8L2E+IChzdHJ1Y3QgYWx0Y3BfcGNiICpjb25uKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhODVkMjBiNGRjMzIxMzQyY2YwOWFkOTMwODYzMDliYjciPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FlNmMzY2Y3MmZjZDI5ZTZlYTRjNzQxODEzNzA0MjBjMyIgaWQ9InJfZ2FlNmMzY2Y3MmZjZDI5ZTZlYTRjNzQxODEzNzA0MjBjMyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWU2YzNjZjcyZmNkMjllNmVhNGM3NDE4MTM3MDQyMGMzIj5hbHRjcF90bHNfaW5pdF9zZXNzaW9uPC9hPiAoc3RydWN0IGFsdGNwX3Rsc19zZXNzaW9uICpkZXN0KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZTZjM2NmNzJmY2QyOWU2ZWE0Yzc0MTgxMzcwNDIwYzMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E4MjdjNzZhMGJkZGM0OTIzYjlhMTdjODEzZTEzODkxZSIgaWQ9InJfZ2E4MjdjNzZhMGJkZGM0OTIzYjlhMTdjODEzZTEzODkxZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTgyN2M3NmEwYmRkYzQ5MjNiOWExN2M4MTNlMTM4OTFlIj5hbHRjcF90bHNfZ2V0X3Nlc3Npb248L2E+IChzdHJ1Y3QgYWx0Y3BfcGNiICpjb25uLCBzdHJ1Y3QgYWx0Y3BfdGxzX3Nlc3Npb24gKmRlc3QpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E4MjdjNzZhMGJkZGM0OTIzYjlhMTdjODEzZTEzODkxZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTRhZWQ0YWE1NWQwZTFiMTVmNDExODg2M2NlYTA2ZDE4IiBpZD0icl9nYTRhZWQ0YWE1NWQwZTFiMTVmNDExODg2M2NlYTA2ZDE4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNGFlZDRhYTU1ZDBlMWIxNWY0MTE4ODYzY2VhMDZkMTgiPmFsdGNwX3Rsc19zZXRfc2Vzc2lvbjwvYT4gKHN0cnVjdCBhbHRjcF9wY2IgKmNvbm4sIHN0cnVjdCBhbHRjcF90bHNfc2Vzc2lvbiAqZnJvbSk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTRhZWQ0YWE1NWQwZTFiMTVmNDExODg2M2NlYTA2ZDE4Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhOTA2ZWVmY2VmNjZlOWRkMmI0M2MzMzkyNzA0OTA1ZjUiIGlkPSJyX2dhOTA2ZWVmY2VmNjZlOWRkMmI0M2MzMzkyNzA0OTA1ZjUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E5MDZlZWZjZWY2NmU5ZGQyYjQzYzMzOTI3MDQ5MDVmNSI+YWx0Y3BfdGxzX2ZyZWVfc2Vzc2lvbjwvYT4gKHN0cnVjdCBhbHRjcF90bHNfc2Vzc2lvbiAqZGVzdCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTkwNmVlZmNlZjY2ZTlkZDJiNDNjMzM5MjcwNDkwNWY1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPHA+VGhpcyBmaWxlIGNvbnRhaW5zIGZ1bmN0aW9uIHByb3RvdHlwZXMgZm9yIGEgVExTIGxheWVyLiBBIHBvcnQgdG8gQVJNIG1iZWR0bHMgaXMgcHJvdmlkZWQgaW4gdGhlIGFwcHMvIHRyZWUgKExXSVBfQUxUQ1BfVExTX01CRURUTFMgb3B0aW9uKS4gPC9wPgpAQCAtMTQ5LDcgKzE1OSw3IEBACiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPkNyZWF0ZSBuZXcgQUxUQ1BfVExTIGxheWVyIHBjYiBhbmQgaXRzIGlubmVyIHRjcCBwY2IuIFNhbWUgYXMgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FiNmE3MTc0NDZhZjkzMTk0OWJjM2UwZGFjZWIwOTBjOCI+YWx0Y3BfdGxzX25ldzwvYT4gYnV0IHRoaXMgYWxsb2NhdG9yIGZ1bmN0aW9uIGZpdHMgdG8gYWx0Y3BfYWxsb2NhdG9yX3QgLyBhbHRjcF9uZXcuPGJyICAvPgorPHA+Q3JlYXRlIG5ldyBBTFRDUF9UTFMgbGF5ZXIgcGNiIGFuZCBpdHMgaW5uZXIgdGNwIHBjYi4gU2FtZSBhcyA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWI2YTcxNzQ0NmFmOTMxOTQ5YmMzZTBkYWNlYjA5MGM4Ij5hbHRjcF90bHNfbmV3PC9hPiBidXQgdGhpcyBhbGxvY2F0b3IgZnVuY3Rpb24gZml0cyB0byA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hbHRjcC5odG1sI2dhMDRhMzI4ZjY3MzU5ZWUwM2QxZWM2ODI0OTc4YjcyMDkiPmFsdGNwX2FsbG9jYXRvcl90PC9hPiAvIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FsdGNwLmh0bWwjZ2E2YjBmYzIwY2NlNDAzNjRhYTgyMWMwN2RjMzRjYjkwOCI+YWx0Y3BfbmV3PC9hPi48YnIgIC8+CiAgJ2FyZycgbXVzdCBjb250YWluIGEgc3RydWN0IGFsdGNwX3Rsc19jb25maWcgKi48L3A+CiA8cD5UaGlzIHN0YW5kYXJkIGFsbG9jYXRvciBmdW5jdGlvbiBjcmVhdGVzIGFuIGFsdGNwIHBjYiBmb3IgVExTIG92ZXIgVENQIDwvcD4KIApAQCAtMjAyLDYgKzIxMiwzMiBAQAogCiA8L2Rpdj4KIDwvZGl2PgorPGEgaWQ9ImdhMWY2MGIxMmE2YTQ0NDAyMTRiN2JjZjJlM2JhNDMxMjYiIG5hbWU9ImdhMWY2MGIxMmE2YTQ0NDAyMTRiN2JjZjJlM2JhNDMxMjYiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTFmNjBiMTJhNmE0NDQwMjE0YjdiY2YyZTNiYTQzMTI2Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hbHRjcF90bHNfY29uZmlndXJlX2FscG5fcHJvdG9jb2xzKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPmludCBhbHRjcF90bHNfY29uZmlndXJlX2FscG5fcHJvdG9jb2xzIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5jb25mPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3QgY2hhciAqKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+cHJvdG9zPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkNvbmZpZ3VyZSBBTFBOIFRMUyBleHRlbnNpb24gRXhhbXBsZTo8YnIgIC8+Cisgc3RhdGljIGNvbnN0IGNoYXIgKmdfYWxwbl9wcm90b2NvbHNbXSA9IHsgIngtYW16bi1tcXR0LWNhIiwgTlVMTCB9OzxiciAgLz4KKyB0bHNfY29uZmlnID0gYWx0Y3BfdGxzX2NyZWF0ZV9jb25maWdfY2xpZW50KGNhLCBjYV9sZW4pOzxiciAgLz4KKyBhbHRjcF90bHNfY29uZl9hbHBuX3Byb3RvY29scyh0bHNfY29uZmlnLCBnX2FscG5fcHJvdG9jb2xzKTs8YnIgIC8+CisgPC9wPgorCis8L2Rpdj4KKzwvZGl2PgogPGEgaWQ9ImdhODVkMjBiNGRjMzIxMzQyY2YwOWFkOTMwODYzMDliYjciIG5hbWU9ImdhODVkMjBiNGRjMzIxMzQyY2YwOWFkOTMwODYzMDliYjciPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTg1ZDIwYjRkYzMyMTM0MmNmMDlhZDkzMDg2MzA5YmI3Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hbHRjcF90bHNfY29udGV4dCgpPC9oMj4KIApAQCAtMjk0LDggKzMzMCw4IEBACiAKIDwvZGl2PgogPC9kaXY+Ci08YSBpZD0iZ2FmNmVkMTMyNzEzOTQzNzFjYzg5ZDcwZWY1MTI4YzQxMSIgbmFtZT0iZ2FmNmVkMTMyNzEzOTQzNzFjYzg5ZDcwZWY1MTI4YzQxMSI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhZjZlZDEzMjcxMzk0MzcxY2M4OWQ3MGVmNTEyOGM0MTEiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX3NlcnZlcigpPC9oMj4KKzxhIGlkPSJnYWEzNzY0OWJmMjRlYmVhMjM1YThlM2U4ZjUwYjk4MzFmIiBuYW1lPSJnYWEzNzY0OWJmMjRlYmVhMjM1YThlM2U4ZjUwYjk4MzFmIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FhMzc2NDliZjI0ZWJlYTIzNWE4ZTNlOGY1MGI5ODMxZiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YWx0Y3BfdGxzX2NyZWF0ZV9jb25maWdfc2VydmVyKCk8L2gyPgogCiA8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KIDxkaXYgY2xhc3M9Im1lbXByb3RvIj4KQEAgLTMwMyw3ICszMzksNyBAQAogICAgICAgICA8dHI+CiAgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj5zdHJ1Y3QgYWx0Y3BfdGxzX2NvbmZpZyAqIGFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX3NlcnZlciA8L3RkPgogICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dWludDhfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+Y2VydF9jb3VudDwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51OF90PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5jZXJ0X2NvdW50PC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CiAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgpAQCAtMzUwLDcgKzM4Niw3IEBACiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPkNyZWF0ZSBhbiBBTFRDUF9UTFMgc2VydmVyIGNvbmZpZ3VyYXRpb24gaGFuZGxlIHdpdGggb25lIGNlcnRpZmljYXRlIChzaG9ydCB2ZXJzaW9uIG9mIGNhbGxpbmcgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FmNmVkMTMyNzEzOTQzNzFjYzg5ZDcwZWY1MTI4YzQxMSI+YWx0Y3BfdGxzX2NyZWF0ZV9jb25maWdfc2VydmVyPC9hPiBhbmQgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FlNmY1MjM3MGI2MmIwZjRiYThkMzczYzUxODZjOWU3ZSI+YWx0Y3BfdGxzX2NvbmZpZ19zZXJ2ZXJfYWRkX3ByaXZrZXlfY2VydDwvYT4pIDwvcD4KKzxwPkNyZWF0ZSBhbiBBTFRDUF9UTFMgc2VydmVyIGNvbmZpZ3VyYXRpb24gaGFuZGxlIHdpdGggb25lIGNlcnRpZmljYXRlIChzaG9ydCB2ZXJzaW9uIG9mIGNhbGxpbmcgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FhMzc2NDliZjI0ZWJlYTIzNWE4ZTNlOGY1MGI5ODMxZiI+YWx0Y3BfdGxzX2NyZWF0ZV9jb25maWdfc2VydmVyPC9hPiBhbmQgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FlNmY1MjM3MGI2MmIwZjRiYThkMzczYzUxODZjOWU3ZSI+YWx0Y3BfdGxzX2NvbmZpZ19zZXJ2ZXJfYWRkX3ByaXZrZXlfY2VydDwvYT4pIDwvcD4KIAogPC9kaXY+CiA8L2Rpdj4KQEAgLTM5MCw2ICs0MjYsNjQgQEAKIAogPC9kaXY+CiA8L2Rpdj4KKzxhIGlkPSJnYTkwNmVlZmNlZjY2ZTlkZDJiNDNjMzM5MjcwNDkwNWY1IiBuYW1lPSJnYTkwNmVlZmNlZjY2ZTlkZDJiNDNjMzM5MjcwNDkwNWY1Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E5MDZlZWZjZWY2NmU5ZGQyYjQzYzMzOTI3MDQ5MDVmNSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YWx0Y3BfdGxzX2ZyZWVfc2Vzc2lvbigpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIGFsdGNwX3Rsc19mcmVlX3Nlc3Npb24gPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCBhbHRjcF90bHNfc2Vzc2lvbiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5kZXN0PC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkZyZWUgYWxsb2NhdGVkIGRhdGEgaW5zaWRlIGEgVExTIHNlc3Npb24gYnVmZmVyLiBSZWFsIHR5cGUgZGVwZW5kcyBvbiBwb3J0IChlLmcuIG1iZWR0bHMgdXNlIG1iZWR0bHNfc3NsX3Nlc3Npb24pIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYTgyN2M3NmEwYmRkYzQ5MjNiOWExN2M4MTNlMTM4OTFlIiBuYW1lPSJnYTgyN2M3NmEwYmRkYzQ5MjNiOWExN2M4MTNlMTM4OTFlIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E4MjdjNzZhMGJkZGM0OTIzYjlhMTdjODEzZTEzODkxZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YWx0Y3BfdGxzX2dldF9zZXNzaW9uKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gYWx0Y3BfdGxzX2dldF9zZXNzaW9uIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgYWx0Y3BfcGNiICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmNvbm48L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgYWx0Y3BfdGxzX3Nlc3Npb24gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+ZGVzdDwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5TYXZlIGN1cnJlbnQgY29ubmVjdGVkIHNlc3Npb24gdG8gcmV1c2UgaXQgbGF0ZXIuIFNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYWZhZjFkNTMzZTRlODlkYzI0OWEzZjkzMWFmYTkzNDkyIj5hbHRjcF9jb25uZWN0KCk8L2E+IHN1Y2NlZWRlZC4gUmV0dXJuIGVycm9yIGlmIHNhdmluZyBzZXNzaW9uIGZhaWwuIFJlYWwgdHlwZSBkZXBlbmRzIG9uIHBvcnQgKGUuZy4gbWJlZHRscyB1c2UgbWJlZHRsc19zc2xfc2Vzc2lvbikgPC9wPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImdhZTZjM2NmNzJmY2QyOWU2ZWE0Yzc0MTgxMzcwNDIwYzMiIG5hbWU9ImdhZTZjM2NmNzJmY2QyOWU2ZWE0Yzc0MTgxMzcwNDIwYzMiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYWU2YzNjZjcyZmNkMjllNmVhNGM3NDE4MTM3MDQyMGMzIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5hbHRjcF90bHNfaW5pdF9zZXNzaW9uKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgYWx0Y3BfdGxzX2luaXRfc2Vzc2lvbiA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IGFsdGNwX3Rsc19zZXNzaW9uICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmRlc3Q8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+SW5pdGlhbGlzZSBhIFRMUyBzZXNzaW9uIGJ1ZmZlci4gUmVhbCB0eXBlIGRlcGVuZHMgb24gcG9ydCAoZS5nLiBtYmVkdGxzIHVzZSBtYmVkdGxzX3NzbF9zZXNzaW9uKSA8L3A+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iZ2FiNmE3MTc0NDZhZjkzMTk0OWJjM2UwZGFjZWIwOTBjOCIgbmFtZT0iZ2FiNmE3MTc0NDZhZjkzMTk0OWJjM2UwZGFjZWIwOTBjOCI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhYjZhNzE3NDQ2YWY5MzE5NDliYzNlMGRhY2ViMDkwYzgiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmFsdGNwX3Rsc19uZXcoKTwvaDI+CiAKQEAgLTQxMyw2ICs1MDcsMjggQEAKIAogPC9kaXY+CiA8L2Rpdj4KKzxhIGlkPSJnYTRhZWQ0YWE1NWQwZTFiMTVmNDExODg2M2NlYTA2ZDE4IiBuYW1lPSJnYTRhZWQ0YWE1NWQwZTFiMTVmNDExODg2M2NlYTA2ZDE4Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E0YWVkNGFhNTVkMGUxYjE1ZjQxMTg4NjNjZWEwNmQxOCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YWx0Y3BfdGxzX3NldF9zZXNzaW9uKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gYWx0Y3BfdGxzX3NldF9zZXNzaW9uIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgYWx0Y3BfcGNiICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmNvbm48L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgYWx0Y3BfdGxzX3Nlc3Npb24gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+ZnJvbTwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5SZXN0b3JlIGEgcHJldmlvdXNseSBzYXZlZCBzZXNzaW9uLiBNdXN0IGJlIGNhbGxlZCBiZWZvcmUgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWx0Y3AuaHRtbCNnYWZhZjFkNTMzZTRlODlkYzI0OWEzZjkzMWFmYTkzNDkyIj5hbHRjcF9jb25uZWN0KCk8L2E+LiBSZXR1cm4gZXJyb3IgaWYgY2Fubm90IHJlc3RvcmUgc2Vzc2lvbi4gUmVhbCB0eXBlIGRlcGVuZHMgb24gcG9ydCAoZS5nLiBtYmVkdGxzIHVzZSBtYmVkdGxzX3NzbF9zZXNzaW9uKSA8L3A+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iZ2FhNTI3Yjc1NmFkNjY3M2ExOWNjNzgyODcwMjZjNzY1YyIgbmFtZT0iZ2FhNTI3Yjc1NmFkNjY3M2ExOWNjNzgyODcwMjZjNzY1YyI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhYTUyN2I3NTZhZDY2NzNhMTljYzc4Mjg3MDI2Yzc2NWMiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmFsdGNwX3Rsc193cmFwKCk8L2gyPgogCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYWx0Y3BfX3Rscy5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcF9fdGxzLmpzCmluZGV4IGQ0MjU5ZDQuLjUyZGM1NDAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcF9fdGxzLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hbHRjcF9fdGxzLmpzCkBAIC0yLDEzICsyLDE4IEBACiBbCiAgICAgWyAiYWx0Y3BfdGxzX2FsbG9jIiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FiMGJkZmQyZWRlMGRmNGQ0N2I2ZTEyY2NhYzJiMTRiYyIsIG51bGwgXSwKICAgICBbICJhbHRjcF90bHNfY29uZmlnX3NlcnZlcl9hZGRfcHJpdmtleV9jZXJ0IiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FlNmY1MjM3MGI2MmIwZjRiYThkMzczYzUxODZjOWU3ZSIsIG51bGwgXSwKKyAgICBbICJhbHRjcF90bHNfY29uZmlndXJlX2FscG5fcHJvdG9jb2xzIiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2ExZjYwYjEyYTZhNDQ0MDIxNGI3YmNmMmUzYmE0MzEyNiIsIG51bGwgXSwKICAgICBbICJhbHRjcF90bHNfY29udGV4dCIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhODVkMjBiNGRjMzIxMzQyY2YwOWFkOTMwODYzMDliYjciLCBudWxsIF0sCiAgICAgWyAiYWx0Y3BfdGxzX2NyZWF0ZV9jb25maWdfY2xpZW50IiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E3YjNjMTFjOGEyNzNkNjhhY2MzMzJjNTVlNmIzODE3MCIsIG51bGwgXSwKICAgICBbICJhbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19jbGllbnRfMndheWF1dGgiLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTRkY2NiZDg2MWMwM2E5YzA5ZWFlNjc5OWRhMDA0NTk3IiwgbnVsbCBdLAotICAgIFsgImFsdGNwX3Rsc19jcmVhdGVfY29uZmlnX3NlcnZlciIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhZjZlZDEzMjcxMzk0MzcxY2M4OWQ3MGVmNTEyOGM0MTEiLCBudWxsIF0sCisgICAgWyAiYWx0Y3BfdGxzX2NyZWF0ZV9jb25maWdfc2VydmVyIiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2FhMzc2NDliZjI0ZWJlYTIzNWE4ZTNlOGY1MGI5ODMxZiIsIG51bGwgXSwKICAgICBbICJhbHRjcF90bHNfY3JlYXRlX2NvbmZpZ19zZXJ2ZXJfcHJpdmtleV9jZXJ0IiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E2MGI0NjM1YzgwYjgzMmE4YzNiMzMyZmRlZGU2OWQ1ZSIsIG51bGwgXSwKICAgICBbICJhbHRjcF90bHNfZnJlZV9jb25maWciLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYThmYjhhOTJmYTNmODQxNzAwNTBkZGFiMjg4OGI5MTQ1IiwgbnVsbCBdLAogICAgIFsgImFsdGNwX3Rsc19mcmVlX2VudHJvcHkiLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTc1Njc1Y2NlYzE0MmQxN2ZjMDY5NWI0MjVmM2VjMWMyIiwgbnVsbCBdLAorICAgIFsgImFsdGNwX3Rsc19mcmVlX3Nlc3Npb24iLCAiZ3JvdXBfX2FsdGNwX190bHMuaHRtbCNnYTkwNmVlZmNlZjY2ZTlkZDJiNDNjMzM5MjcwNDkwNWY1IiwgbnVsbCBdLAorICAgIFsgImFsdGNwX3Rsc19nZXRfc2Vzc2lvbiIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhODI3Yzc2YTBiZGRjNDkyM2I5YTE3YzgxM2UxMzg5MWUiLCBudWxsIF0sCisgICAgWyAiYWx0Y3BfdGxzX2luaXRfc2Vzc2lvbiIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhZTZjM2NmNzJmY2QyOWU2ZWE0Yzc0MTgxMzcwNDIwYzMiLCBudWxsIF0sCiAgICAgWyAiYWx0Y3BfdGxzX25ldyIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhYjZhNzE3NDQ2YWY5MzE5NDliYzNlMGRhY2ViMDkwYzgiLCBudWxsIF0sCisgICAgWyAiYWx0Y3BfdGxzX3NldF9zZXNzaW9uIiwgImdyb3VwX19hbHRjcF9fdGxzLmh0bWwjZ2E0YWVkNGFhNTVkMGUxYjE1ZjQxMTg4NjNjZWEwNmQxOCIsIG51bGwgXSwKICAgICBbICJhbHRjcF90bHNfd3JhcCIsICJncm91cF9fYWx0Y3BfX3Rscy5odG1sI2dhYTUyN2I3NTZhZDY2NzNhMTljYzc4Mjg3MDI2Yzc2NWMiLCBudWxsIF0KIF07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2FwaS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2FwaS5odG1sCmluZGV4IGE5Yzk2OWUuLmU3NjlhOTYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hcGkuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYXBpLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2FwcHMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hcHBzLmh0bWwKaW5kZXggZGUwZDY5OC4uNmQ2ZmQ5NyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2FwcHMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYXBwcy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyMyw3ICsxMjMsNyBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NudHAuaHRtbCI+U05UUDwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sIj5URlRQIHNlcnZlcjwvYT48L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sIj5URlRQIGNsaWVudC9zZXJ2ZXI8L2E+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2FwcHMuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYXBwcy5qcwppbmRleCA0NjE0ZWQyLi5hOGYzZjNhIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYXBwcy5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYXBwcy5qcwpAQCAtOSw1ICs5LDUgQEAKICAgICBbICJTTVRQIGNsaWVudCIsICJncm91cF9fc210cC5odG1sIiwgImdyb3VwX19zbXRwIiBdLAogICAgIFsgIlNOTVB2MmMvdjMgYWdlbnQiLCAiZ3JvdXBfX3NubXAuaHRtbCIsICJncm91cF9fc25tcCIgXSwKICAgICBbICJTTlRQIiwgImdyb3VwX19zbnRwLmh0bWwiLCAiZ3JvdXBfX3NudHAiIF0sCi0gICAgWyAiVEZUUCBzZXJ2ZXIiLCAiZ3JvdXBfX3RmdHAuaHRtbCIsICJncm91cF9fdGZ0cCIgXQorICAgIFsgIlRGVFAgY2xpZW50L3NlcnZlciIsICJncm91cF9fdGZ0cC5odG1sIiwgImdyb3VwX190ZnRwIiBdCiBdOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hdXRvaXAuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hdXRvaXAuaHRtbAppbmRleCA2NTMxZDVmLi40ZDRmZGJiIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYXV0b2lwLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2F1dG9pcC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwNyw2ICsxMDcsOCBAQAogRnVuY3Rpb25zPC9oMj48L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCIgaWQ9InJfZ2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTIxMjJjMGIyNTE4YjM3MTU1OWZlZjVlYzFkMmFlZDkwIj5hdXRvaXBfc2V0X3N0cnVjdDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sIj5hdXRvaXA8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGF1dG9pcC5odG1sIj5hdXRvaXA8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMjEyMmMwYjI1MThiMzcxNTU5ZmVmNWVjMWQyYWVkOTAiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FjMGM5ODAzNTc5NTUwMGVkZTQ2NGFhNGFmMjUxNWYzMCIgaWQ9InJfZ2FjMGM5ODAzNTc5NTUwMGVkZTQ2NGFhNGFmMjUxNWYzMCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWMwYzk4MDM1Nzk1NTAwZWRlNDY0YWE0YWYyNTE1ZjMwIj5hdXRvaXBfcmVtb3ZlX3N0cnVjdDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FjMGM5ODAzNTc5NTUwMGVkZTQ2NGFhNGFmMjUxNWYzMCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTE0NjFmNTgyNmViZWZjMDUwZTBkNjMwMTM4MThkMWU4IiBpZD0icl9nYTE0NjFmNTgyNmViZWZjMDUwZTBkNjMwMTM4MThkMWU4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiPmF1dG9pcF9zdGFydDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2ExNDYxZjU4MjZlYmVmYzA1MGUwZDYzMDEzODE4ZDFlOCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTU4YTRkY2U2NThkZDEyNjNlODRlYjk4MmY2MjU4N2Q0IiBpZD0icl9nYTU4YTRkY2U2NThkZDEyNjNlODRlYjk4MmY2MjU4N2Q0Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNThhNGRjZTY1OGRkMTI2M2U4NGViOTgyZjYyNTg3ZDQiPmF1dG9pcF9zdG9wPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CkBAIC0xMTQsNyArMTE2LDcgQEAKIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxwPkFVVE9JUCByZWxhdGVkIGZ1bmN0aW9ucyBVU0FHRTo8L3A+Ci08cD5kZWZpbmUgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYXV0b2lwLmh0bWwjZ2FhZjFiM2EwODk4MjcyMjM1ODliYWYxYjdmNGY1NzA2OSI+TFdJUF9BVVRPSVA8L2E+IDEgaW4geW91ciBsd2lwb3B0cy5oIE9wdGlvbnM6IEFVVE9JUF9UTVJfSU5URVJWQUwgbXNlY3MsIEkgcmVjb21tZW5kIGEgdmFsdWUgb2YgMTAwLiBUaGUgdmFsdWUgbXVzdCBkaXZpZGUgMTAwMCB3aXRoIGEgcmVtYWluZGVyIGFsbW9zdCAwLiBQb3NzaWJsZSB2YWx1ZXMgYXJlIDEwMDAsIDUwMCwgMzMzLCAyNTAsIDIwMCwgMTY2LCAxNDIsIDEyNSwgMTExLCAxMDAgLi4uLjwvcD4KKzxwPmRlZmluZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hdXRvaXAuaHRtbCNnYWFmMWIzYTA4OTgyNzIyMzU4OWJhZjFiN2Y0ZjU3MDY5Ij5MV0lQX0FVVE9JUDwvYT4gMSBpbiB5b3VyIGx3aXBvcHRzLmg8L3A+CiA8cD5XaXRob3V0IERIQ1A6PC9wPjx1bD4KIDxsaT5DYWxsIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiPmF1dG9pcF9zdGFydCgpPC9hPiBhZnRlciA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMjIwNTU3NTlhMjVmNWQ2Y2VhN2U3ZGVhYjBhMDc0MzQiPm5ldGlmX2FkZCgpPC9hPi48L2xpPgogPC91bD4KQEAgLTEyNCw2ICsxMjYsMzAgQEAKIDwvdWw+CiA8ZGwgY2xhc3M9InNlY3Rpb24gc2VlIj48ZHQ+U2VlIGFsc288L2R0PjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fYXV0b2lwLmh0bWwiPkFVVE9JUDwvYT4gPC9kZD48L2RsPgogPGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+Cis8YSBpZD0iZ2FjMGM5ODAzNTc5NTUwMGVkZTQ2NGFhNGFmMjUxNWYzMCIgbmFtZT0iZ2FjMGM5ODAzNTc5NTUwMGVkZTQ2NGFhNGFmMjUxNWYzMCI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhYzBjOTgwMzU3OTU1MDBlZGU0NjRhYTRhZjI1MTVmMzAiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmF1dG9pcF9yZW1vdmVfc3RydWN0KCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgYXV0b2lwX3JlbW92ZV9zdHJ1Y3QgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5SZW1vdmUgYSBzdHJ1Y3QgYXV0b2lwIHByZXZpb3VzbHkgc2V0IHRvIHRoZSBuZXRpZiB1c2luZyA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTIxMjJjMGIyNTE4YjM3MTU1OWZlZjVlYzFkMmFlZDkwIj5hdXRvaXBfc2V0X3N0cnVjdCgpPC9hPjwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPnRoZSBuZXRpZiBmb3Igd2hpY2ggdG8gc2V0IHRoZSBzdHJ1Y3QgYXV0b2lwIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iZ2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCIgbmFtZT0iZ2EyMTIyYzBiMjUxOGIzNzE1NTlmZWY1ZWMxZDJhZWQ5MCI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMjEyMmMwYjI1MThiMzcxNTU5ZmVmNWVjMWQyYWVkOTAiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmF1dG9pcF9zZXRfc3RydWN0KCk8L2gyPgogCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYXV0b2lwLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2F1dG9pcC5qcwppbmRleCA4MDkxNzlmLi4yNTc3MjgwIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYXV0b2lwLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19hdXRvaXAuanMKQEAgLTEsNSArMSw2IEBACiB2YXIgZ3JvdXBfX2F1dG9pcCA9CiBbCisgICAgWyAiYXV0b2lwX3JlbW92ZV9zdHJ1Y3QiLCAiZ3JvdXBfX2F1dG9pcC5odG1sI2dhYzBjOTgwMzU3OTU1MDBlZGU0NjRhYTRhZjI1MTVmMzAiLCBudWxsIF0sCiAgICAgWyAiYXV0b2lwX3NldF9zdHJ1Y3QiLCAiZ3JvdXBfX2F1dG9pcC5odG1sI2dhMjEyMmMwYjI1MThiMzcxNTU5ZmVmNWVjMWQyYWVkOTAiLCBudWxsIF0sCiAgICAgWyAiYXV0b2lwX3N0YXJ0IiwgImdyb3VwX19hdXRvaXAuaHRtbCNnYTE0NjFmNTgyNmViZWZjMDUwZTBkNjMwMTM4MThkMWU4IiwgbnVsbCBdLAogICAgIFsgImF1dG9pcF9zdG9wIiwgImdyb3VwX19hdXRvaXAuaHRtbCNnYTU4YTRkY2U2NThkZDEyNjNlODRlYjk4MmY2MjU4N2Q0IiwgbnVsbCBdCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYnJpZGdlaWYuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19icmlkZ2VpZi5odG1sCmluZGV4IGNiYWUxZDIuLmNkNWMyYjAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19icmlkZ2VpZi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19icmlkZ2VpZi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19icmlkZ2VpZl9fZmRiLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYnJpZGdlaWZfX2ZkYi5odG1sCmluZGV4IDExNTcxNmMuLjY2Mjg0ZDMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19icmlkZ2VpZl9fZmRiLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2JyaWRnZWlmX19mZGIuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fYnJpZGdlaWZfX29wdHMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19icmlkZ2VpZl9fb3B0cy5odG1sCmluZGV4IGI4YTEzZTUuLmRhM2MyMjQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19icmlkZ2VpZl9fb3B0cy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19icmlkZ2VpZl9fb3B0cy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19jYWxsYmFja3N0eWxlX19hcGkuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19jYWxsYmFja3N0eWxlX19hcGkuaHRtbAppbmRleCBkY2FlNzZhLi42YjdmNjA5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fY2FsbGJhY2tzdHlsZV9fYXBpLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2NhbGxiYWNrc3R5bGVfX2FwaS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19jb21waWxlcl9fYWJzdHJhY3Rpb24uaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19jb21waWxlcl9fYWJzdHJhY3Rpb24uaHRtbAppbmRleCBiYjhhNDMyLi4xY2FmMjE0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fY29tcGlsZXJfX2Fic3RyYWN0aW9uLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2NvbXBpbGVyX19hYnN0cmFjdGlvbi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTI0NCwxMCArMjQ0LDEwIEBACiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPnU4X3QgdmFyaWFibGVfbmFtZVs8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNnYTI1NTkxZGNiNzJmY2NjN2I1ZGM0NmZiYzE5NTk2OTRlIj5MV0lQX01FTV9BTElHTl9CVUZGRVI8L2E+KHNpemUpXTwvZGl2PgogPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19jb21waWxlcl9fYWJzdHJhY3Rpb25faHRtbF9nYTI1NTkxZGNiNzJmY2NjN2I1ZGM0NmZiYzE5NTk2OTRlIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnYTI1NTkxZGNiNzJmY2NjN2I1ZGM0NmZiYzE5NTk2OTRlIj5MV0lQX01FTV9BTElHTl9CVUZGRVI8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIExXSVBfTUVNX0FMSUdOX0JVRkZFUihzaXplKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBhcmNoLmg6Mjg3PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkFsbG9jYXRlcyBhIG1lbW9yeSBidWZmZXIgb2Ygc3BlY2lmaWVkIHNpemUgdGhhdCBpcyBvZiBzdWZmaWNpZW50IHNpemUgdG8gYWxpZ24gaXRzIHN0YXJ0IGFkZHJlc3MgdXNpbmcgTFdJUF9NRU1fQUxJR04uIFlvdSBjYW4gZGVjbGFyZSB5b3VyIG93biB2ZXJzaW9uIGhlcmUgZS5nLiB0byBlbmZvcmNlIGFsaWdubWVudCB3aXRob3V0IGFkZGluZyB0cmFpbGluZyBwYWRkaW5nIGJ5dGVzIChzZWUgTFdJUF9NRU1fQUxJR05fQlVGRkVSKSBvciB5b3VyIG93biBzZWN0aW9uIHBsYWNlbWVudCByZXF1aXJlbWVudHMuPGJyICAvPgotZS5nLiBpZiB5b3UgdXNlIGdjYyBhbmQgbmVlZCAzMiBiaXQgYWxpZ25tZW50OjxiciAgLz4KLSNkZWZpbmUgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E2NTFiYjM0OTA0MTY2OWZlNzE3YjE5ZjEyN2VmMTZjMCI+TFdJUF9ERUNMQVJFX01FTU9SWV9BTElHTkVEKHZhcmlhYmxlX25hbWUsIHNpemUpPC9hPiB1OF90IHZhcmlhYmxlX25hbWVbc2l6ZV0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpPGJyICAvPgotb3IgbW9yZSBwb3J0YWJsZTo8YnIgIC8+Ci0jZGVmaW5lIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNjUxYmIzNDkwNDE2NjlmZTcxN2IxOWYxMjdlZjE2YzAiPkxXSVBfREVDTEFSRV9NRU1PUllfQUxJR05FRCh2YXJpYWJsZV9uYW1lLCBzaXplKTwvYT4gdTMyX3QgdmFyaWFibGVfbmFtZVsoc2l6ZSArIHNpemVvZih1MzJfdCkgLSAxKSAvIHNpemVvZih1MzJfdCldIDwvcD4KKyBlLmcuIGlmIHlvdSB1c2UgZ2NjIGFuZCBuZWVkIDMyIGJpdCBhbGlnbm1lbnQ6PGJyICAvPgorICNkZWZpbmUgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E2NTFiYjM0OTA0MTY2OWZlNzE3YjE5ZjEyN2VmMTZjMCI+TFdJUF9ERUNMQVJFX01FTU9SWV9BTElHTkVEKHZhcmlhYmxlX25hbWUsIHNpemUpPC9hPiB1OF90IHZhcmlhYmxlX25hbWVbc2l6ZV0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpPGJyICAvPgorIG9yIG1vcmUgcG9ydGFibGU6PGJyICAvPgorICNkZWZpbmUgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E2NTFiYjM0OTA0MTY2OWZlNzE3YjE5ZjEyN2VmMTZjMCI+TFdJUF9ERUNMQVJFX01FTU9SWV9BTElHTkVEKHZhcmlhYmxlX25hbWUsIHNpemUpPC9hPiB1MzJfdCB2YXJpYWJsZV9uYW1lWyhzaXplICsgc2l6ZW9mKHUzMl90KSAtIDEpIC8gc2l6ZW9mKHUzMl90KV0gPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtMjY2LDcgKzI2Niw3IEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+KCg8c3BhbiBjbGFzcz0ia2V5d29yZHR5cGUiPnZvaWQ8L3NwYW4+ICopKCgobWVtX3B0cl90KShhZGRyKSArIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX21lbS5odG1sI2dhOTczNDMyMTQ2NjZlZTZkY2IxOGMwYmQ3N2I0NDFlYTciPk1FTV9BTElHTk1FTlQ8L2E+IC0gMSkgJmFtcDsgfihtZW1fcHRyX3QpKDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX21lbS5odG1sI2dhOTczNDMyMTQ2NjZlZTZkY2IxOGMwYmQ3N2I0NDFlYTciPk1FTV9BTElHTk1FTlQ8L2E+LTEpKSk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbHdpcF9fb3B0c19fbWVtX2h0bWxfZ2E5NzM0MzIxNDY2NmVlNmRjYjE4YzBiZDc3YjQ0MWVhNyI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fbWVtLmh0bWwjZ2E5NzM0MzIxNDY2NmVlNmRjYjE4YzBiZDc3YjQ0MWVhNyI+TUVNX0FMSUdOTUVOVDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgTUVNX0FMSUdOTUVOVDwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBvcHQuaDoyODk8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbHdpcF9fb3B0c19fbWVtX2h0bWxfZ2E5NzM0MzIxNDY2NmVlNmRjYjE4YzBiZDc3YjQ0MWVhNyI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fbWVtLmh0bWwjZ2E5NzM0MzIxNDY2NmVlNmRjYjE4YzBiZDc3YjQ0MWVhNyI+TUVNX0FMSUdOTUVOVDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgTUVNX0FMSUdOTUVOVDwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBvcHQuaDoyODI8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+QWxpZ24gYSBtZW1vcnkgcG9pbnRlciB0byB0aGUgYWxpZ25tZW50IGRlZmluZWQgYnkgTUVNX0FMSUdOTUVOVCBzbyB0aGF0IEFERFIgJSBNRU1fQUxJR05NRU5UID09IDAgPC9wPgogCiA8L2Rpdj4KQEAgLTQyNCw3ICs0MjQsNyBAQAogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImtleXdvcmRmbG93Ij5kbzwvc3Bhbj4ge3ByaW50Zig8c3BhbiBjbGFzcz0ic3RyaW5nbGl0ZXJhbCI+JnF1b3Q7QXNzZXJ0aW9uIFwmcXVvdDslc1wmcXVvdDsgZmFpbGVkIGF0IGxpbmUgJWQgaW4gJXNcbiZxdW90Ozwvc3Bhbj4sIFw8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LCBfX0xJTkVfXywgX19GSUxFX18pOyBmZmx1c2goTlVMTCk7IGFib3J0KCk7fSA8c3BhbiBjbGFzcz0ia2V5d29yZGZsb3ciPndoaWxlPC9zcGFuPigwKTwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5QbGF0Zm9ybSBzcGVjaWZpYyBhc3NlcnRpb24gaGFuZGxpbmcuPGJyICAvPgotTm90ZSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBwdWxscyBpbiBwcmludGYsIGZmbHVzaCBhbmQgYWJvcnQsIHdoaWNoIG1heSBpbiB0dXJuIHB1bGwgaW4gYSBsb3Qgb2Ygc3RhbmRhcmQgbGliYXJ5IGNvZGUuIEluIHJlc291cmNlLWNvbnN0cmFpbmVkIHN5c3RlbXMsIHRoaXMgc2hvdWxkIGJlIGRlZmluZWQgdG8gc29tZXRoaW5nIGxlc3MgcmVzb3VyY2UtY29uc3VtaW5nLiA8L3A+CisgTm90ZSB0aGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBwdWxscyBpbiBwcmludGYsIGZmbHVzaCBhbmQgYWJvcnQsIHdoaWNoIG1heSBpbiB0dXJuIHB1bGwgaW4gYSBsb3Qgb2Ygc3RhbmRhcmQgbGlicmFyeSBjb2RlLiBJbiByZXNvdXJjZS1jb25zdHJhaW5lZCBzeXN0ZW1zLCB0aGlzIHNob3VsZCBiZSBkZWZpbmVkIHRvIHNvbWV0aGluZyBsZXNzIHJlc291cmNlLWNvbnN1bWluZy4gPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtNDQ0LDcgKzQ0NCw3IEBACiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48c3BhbiBjbGFzcz0ia2V5d29yZGZsb3ciPmRvPC9zcGFuPiB7cHJpbnRmIHg7fSA8c3BhbiBjbGFzcz0ia2V5d29yZGZsb3ciPndoaWxlPC9zcGFuPigwKTwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5QbGF0Zm9ybSBzcGVjaWZpYyBkaWFnbm9zdGljIG91dHB1dC48YnIgIC8+Ci1Ob3RlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHB1bGxzIGluIHByaW50Ziwgd2hpY2ggbWF5IGluIHR1cm4gcHVsbCBpbiBhIGxvdCBvZiBzdGFuZGFyZCBsaWJhcnkgY29kZS4gSW4gcmVzb3VyY2UtY29uc3RyYWluZWQgc3lzdGVtcywgdGhpcyBzaG91bGQgYmUgZGVmaW5lZCB0byBzb21ldGhpbmcgbGVzcyByZXNvdXJjZS1jb25zdW1pbmcuIDwvcD4KKyBOb3RlIHRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHB1bGxzIGluIHByaW50Ziwgd2hpY2ggbWF5IGluIHR1cm4gcHVsbCBpbiBhIGxvdCBvZiBzdGFuZGFyZCBsaWJyYXJ5IGNvZGUuIEluIHJlc291cmNlLWNvbnN0cmFpbmVkIHN5c3RlbXMsIHRoaXMgc2hvdWxkIGJlIGRlZmluZWQgdG8gc29tZXRoaW5nIGxlc3MgcmVzb3VyY2UtY29uc3VtaW5nLiA8L3A+CiAKIDwvZGl2PgogPC9kaXY+CkBAIC01MzYsOCArNTM2LDggQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPHA+UGFja2VkIHN0cnVjdHMgc3VwcG9ydC4gUGxhY2VkIEJFRk9SRSBkZWNsYXJhdGlvbiBvZiBhIHBhY2tlZCBzdHJ1Y3QuPGJyICAvPgotRm9yIGV4YW1wbGVzIG9mIHBhY2tlZCBzdHJ1Y3QgZGVjbGFyYXRpb25zLCBzZWUgaW5jbHVkZS9sd2lwL3Byb3QvIHN1YmZvbGRlci48YnIgIC8+Ci1BIHBvcnQgdG8gR0NDL2NsYW5nIGlzIGluY2x1ZGVkIGluIGx3SVAsIGlmIHlvdSB1c2UgdGhlc2UgY29tcGlsZXJzIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8gaGVyZS4gPC9wPgorIEZvciBleGFtcGxlcyBvZiBwYWNrZWQgc3RydWN0IGRlY2xhcmF0aW9ucywgc2VlIGluY2x1ZGUvbHdpcC9wcm90LyBzdWJmb2xkZXIuPGJyICAvPgorIEEgcG9ydCB0byBHQ0MvY2xhbmcgaXMgaW5jbHVkZWQgaW4gbHdJUCwgaWYgeW91IHVzZSB0aGVzZSBjb21waWxlcnMgdGhlcmUgaXMgbm90aGluZyB0byBkbyBoZXJlLiA8L3A+CiAKIDwvZGl2PgogPC9kaXY+CkBAIC01NTMsOCArNTUzLDggQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPHA+UGFja2VkIHN0cnVjdHMgc3VwcG9ydC4gUGxhY2VkIEFGVEVSIGRlY2xhcmF0aW9uIG9mIGEgcGFja2VkIHN0cnVjdC48YnIgIC8+Ci1Gb3IgZXhhbXBsZXMgb2YgcGFja2VkIHN0cnVjdCBkZWNsYXJhdGlvbnMsIHNlZSBpbmNsdWRlL2x3aXAvcHJvdC8gc3ViZm9sZGVyLjxiciAgLz4KLUEgcG9ydCB0byBHQ0MvY2xhbmcgaXMgaW5jbHVkZWQgaW4gbHdJUCwgaWYgeW91IHVzZSB0aGVzZSBjb21waWxlcnMgdGhlcmUgaXMgbm90aGluZyB0byBkbyBoZXJlLiA8L3A+CisgRm9yIGV4YW1wbGVzIG9mIHBhY2tlZCBzdHJ1Y3QgZGVjbGFyYXRpb25zLCBzZWUgaW5jbHVkZS9sd2lwL3Byb3QvIHN1YmZvbGRlci48YnIgIC8+CisgQSBwb3J0IHRvIEdDQy9jbGFuZyBpcyBpbmNsdWRlZCBpbiBsd0lQLCBpZiB5b3UgdXNlIHRoZXNlIGNvbXBpbGVycyB0aGVyZSBpcyBub3RoaW5nIHRvIGRvIGhlcmUuIDwvcD4KIAogPC9kaXY+CiA8L2Rpdj4KQEAgLTU3NCw4ICs1NzQsOCBAQAogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+eDwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5QYWNrZWQgc3RydWN0cyBzdXBwb3J0LiBXcmFwcyB1MzJfdCBhbmQgdTE2X3QgbWVtYmVycy48YnIgIC8+Ci1Gb3IgZXhhbXBsZXMgb2YgcGFja2VkIHN0cnVjdCBkZWNsYXJhdGlvbnMsIHNlZSBpbmNsdWRlL2x3aXAvcHJvdC8gc3ViZm9sZGVyLjxiciAgLz4KLUEgcG9ydCB0byBHQ0MvY2xhbmcgaXMgaW5jbHVkZWQgaW4gbHdJUCwgaWYgeW91IHVzZSB0aGVzZSBjb21waWxlcnMgdGhlcmUgaXMgbm90aGluZyB0byBkbyBoZXJlLiA8L3A+CisgRm9yIGV4YW1wbGVzIG9mIHBhY2tlZCBzdHJ1Y3QgZGVjbGFyYXRpb25zLCBzZWUgaW5jbHVkZS9sd2lwL3Byb3QvIHN1YmZvbGRlci48YnIgIC8+CisgQSBwb3J0IHRvIEdDQy9jbGFuZyBpcyBpbmNsdWRlZCBpbiBsd0lQLCBpZiB5b3UgdXNlIHRoZXNlIGNvbXBpbGVycyB0aGVyZSBpcyBub3RoaW5nIHRvIGRvIGhlcmUuIDwvcD4KIAogPC9kaXY+CiA8L2Rpdj4KQEAgLTU5Niw4ICs1OTYsOCBAQAogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNnYWFiMGI5ODgxMjRlMzdhOTc4ZDlhODhlN2MxYzc3OGUwIj5QQUNLX1NUUlVDVF9GSUVMRDwvYT4oeCk8L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fY29tcGlsZXJfX2Fic3RyYWN0aW9uX2h0bWxfZ2FhYjBiOTg4MTI0ZTM3YTk3OGQ5YTg4ZTdjMWM3NzhlMCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjZ2FhYjBiOTg4MTI0ZTM3YTk3OGQ5YTg4ZTdjMWM3NzhlMCI+UEFDS19TVFJVQ1RfRklFTEQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIFBBQ0tfU1RSVUNUX0ZJRUxEKHgpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGFyY2guaDozMzg8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+UGFja2VkIHN0cnVjdHMgc3VwcG9ydC4gV3JhcHMgdThfdCBtZW1iZXJzLCB3aGVyZSBzb21lIGNvbXBpbGVycyB3YXJuIHRoYXQgcGFja2luZyBpcyBub3QgbmVjZXNzYXJ5LjxiciAgLz4KLUZvciBleGFtcGxlcyBvZiBwYWNrZWQgc3RydWN0IGRlY2xhcmF0aW9ucywgc2VlIGluY2x1ZGUvbHdpcC9wcm90LyBzdWJmb2xkZXIuPGJyICAvPgotQSBwb3J0IHRvIEdDQy9jbGFuZyBpcyBpbmNsdWRlZCBpbiBsd0lQLCBpZiB5b3UgdXNlIHRoZXNlIGNvbXBpbGVycyB0aGVyZSBpcyBub3RoaW5nIHRvIGRvIGhlcmUuIDwvcD4KKyBGb3IgZXhhbXBsZXMgb2YgcGFja2VkIHN0cnVjdCBkZWNsYXJhdGlvbnMsIHNlZSBpbmNsdWRlL2x3aXAvcHJvdC8gc3ViZm9sZGVyLjxiciAgLz4KKyBBIHBvcnQgdG8gR0NDL2NsYW5nIGlzIGluY2x1ZGVkIGluIGx3SVAsIGlmIHlvdSB1c2UgdGhlc2UgY29tcGlsZXJzIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8gaGVyZS4gPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtNjE3LDggKzYxNyw4IEBACiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNnYWFiMGI5ODgxMjRlMzdhOTc4ZDlhODhlN2MxYzc3OGUwIj5QQUNLX1NUUlVDVF9GSUVMRDwvYT4oeCk8L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+UGFja2VkIHN0cnVjdHMgc3VwcG9ydC4gV3JhcHMgbWVtYmVycyB0aGF0IGFyZSBwYWNrZWQgc3RydWN0cyB0aGVtc2VsdmVzLCB3aGVyZSBzb21lIGNvbXBpbGVycyB3YXJuIHRoYXQgcGFja2luZyBpcyBub3QgbmVjZXNzYXJ5LjxiciAgLz4KLUZvciBleGFtcGxlcyBvZiBwYWNrZWQgc3RydWN0IGRlY2xhcmF0aW9ucywgc2VlIGluY2x1ZGUvbHdpcC9wcm90LyBzdWJmb2xkZXIuPGJyICAvPgotQSBwb3J0IHRvIEdDQy9jbGFuZyBpcyBpbmNsdWRlZCBpbiBsd0lQLCBpZiB5b3UgdXNlIHRoZXNlIGNvbXBpbGVycyB0aGVyZSBpcyBub3RoaW5nIHRvIGRvIGhlcmUuIDwvcD4KKyBGb3IgZXhhbXBsZXMgb2YgcGFja2VkIHN0cnVjdCBkZWNsYXJhdGlvbnMsIHNlZSBpbmNsdWRlL2x3aXAvcHJvdC8gc3ViZm9sZGVyLjxiciAgLz4KKyBBIHBvcnQgdG8gR0NDL2NsYW5nIGlzIGluY2x1ZGVkIGluIGx3SVAsIGlmIHlvdSB1c2UgdGhlc2UgY29tcGlsZXJzIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8gaGVyZS4gPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtNjM0LDggKzYzNCw4IEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxwPlBhY2tlZCBzdHJ1Y3RzIHN1cHBvcnQuIFBsYWNlZCBiZXR3ZWVuIGVuZCBvZiBkZWNsYXJhdGlvbiBvZiBhIHBhY2tlZCBzdHJ1Y3QgYW5kIHRyYWlsaW5nIHNlbWljb2xvbi48YnIgIC8+Ci1Gb3IgZXhhbXBsZXMgb2YgcGFja2VkIHN0cnVjdCBkZWNsYXJhdGlvbnMsIHNlZSBpbmNsdWRlL2x3aXAvcHJvdC8gc3ViZm9sZGVyLjxiciAgLz4KLUEgcG9ydCB0byBHQ0MvY2xhbmcgaXMgaW5jbHVkZWQgaW4gbHdJUCwgaWYgeW91IHVzZSB0aGVzZSBjb21waWxlcnMgdGhlcmUgaXMgbm90aGluZyB0byBkbyBoZXJlLiA8L3A+CisgRm9yIGV4YW1wbGVzIG9mIHBhY2tlZCBzdHJ1Y3QgZGVjbGFyYXRpb25zLCBzZWUgaW5jbHVkZS9sd2lwL3Byb3QvIHN1YmZvbGRlci48YnIgIC8+CisgQSBwb3J0IHRvIEdDQy9jbGFuZyBpcyBpbmNsdWRlZCBpbiBsd0lQLCBpZiB5b3UgdXNlIHRoZXNlIGNvbXBpbGVycyB0aGVyZSBpcyBub3RoaW5nIHRvIGRvIGhlcmUuIDwvcD4KIAogPC9kaXY+CiA8L2Rpdj4KQEAgLTY1MSwxMCArNjUxLDEwIEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxwPlBBQ0tfU1RSVUNUX1VTRV9JTkNMVURFUz09MTogUGFja2VkIHN0cnVjdHMgc3VwcG9ydCB1c2luZyAjaW5jbHVkZSBmaWxlcyBiZWZvcmUgYW5kIGFmdGVyIHN0cnVjdCB0byBiZSBwYWNrZWQuPGJyICAvPgotVGhlIGZpbGUgaW5jbHVkZWQgQkVGT1JFIHRoZSBzdHJ1Y3QgaXMgImFyY2gvYnBzdHJ1Y3QuaCIuPGJyICAvPgotVGhlIGZpbGUgaW5jbHVkZWQgQUZURVIgdGhlIHN0cnVjdCBpcyAiYXJjaC9lcHN0cnVjdC5oIi48YnIgIC8+Ci1UaGlzIGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCBzdHJ1Y3QgcGFja2luZyBvbiBNUyBWaXN1YWwgQyBjb21waWxlcnMsIHNlZSB0aGUgV2luMzIgcG9ydCBpbiB0aGUgbHdJUCBjb250cmliIHJlcG9zaXRvcnkgZm9yIHJlZmVyZW5jZS4gRm9yIGV4YW1wbGVzIG9mIHBhY2tlZCBzdHJ1Y3QgZGVjbGFyYXRpb25zLCBzZWUgaW5jbHVkZS9sd2lwL3Byb3QvIHN1YmZvbGRlci48YnIgIC8+Ci1BIHBvcnQgdG8gR0NDL2NsYW5nIGlzIGluY2x1ZGVkIGluIGx3SVAsIGlmIHlvdSB1c2UgdGhlc2UgY29tcGlsZXJzIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8gaGVyZS4gPC9wPgorIFRoZSBmaWxlIGluY2x1ZGVkIEJFRk9SRSB0aGUgc3RydWN0IGlzICJhcmNoL2Jwc3RydWN0LmgiLjxiciAgLz4KKyBUaGUgZmlsZSBpbmNsdWRlZCBBRlRFUiB0aGUgc3RydWN0IGlzICJhcmNoL2Vwc3RydWN0LmgiLjxiciAgLz4KKyBUaGlzIGNhbiBiZSB1c2VkIHRvIGltcGxlbWVudCBzdHJ1Y3QgcGFja2luZyBvbiBNUyBWaXN1YWwgQyBjb21waWxlcnMsIHNlZSB0aGUgV2luMzIgcG9ydCBpbiB0aGUgbHdJUC9jb250cmliIHN1YmRpciBmb3IgcmVmZXJlbmNlLiBGb3IgZXhhbXBsZXMgb2YgcGFja2VkIHN0cnVjdCBkZWNsYXJhdGlvbnMsIHNlZSBpbmNsdWRlL2x3aXAvcHJvdC8gc3ViZm9sZGVyLjxiciAgLz4KKyBBIHBvcnQgdG8gR0NDL2NsYW5nIGlzIGluY2x1ZGVkIGluIGx3SVAsIGlmIHlvdSB1c2UgdGhlc2UgY29tcGlsZXJzIHRoZXJlIGlzIG5vdGhpbmcgdG8gZG8gaGVyZS4gPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2RlYnVnZ2luZ19fbGV2ZWxzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fZGVidWdnaW5nX19sZXZlbHMuaHRtbAppbmRleCBjOWYzYWM3Li4wNThkMmEyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fZGVidWdnaW5nX19sZXZlbHMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fZGVidWdnaW5nX19sZXZlbHMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fZGhjcDQuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19kaGNwNC5odG1sCmluZGV4IDM2NmQ2MDIuLmI4ZGM0MjMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19kaGNwNC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19kaGNwNC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19kaGNwNi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2RoY3A2Lmh0bWwKaW5kZXggMTYwNjVhMS4uY2IzMzQzMCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2RoY3A2Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2RoY3A2Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTI3LDggKzEyNyw4IEBACiA8bGk+b25seSBzdGFydCBpbmZvcm1hdGlvbiByZXF1ZXN0cyBpZiByZXF1aXJlZCAobm90IGZvciBldmVyeSBSQSk8L2xpPgogPC91bD4KIDxwPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYTllOTcyZmNkMWQ2NDhjYTVmMDIzMzRiMTU5MWI2MTkiPmRoY3A2X2VuYWJsZV9zdGF0ZWZ1bCgpPC9hPiBlbmFibGVzIHN0YXRlZnVsIERIQ1B2NiBmb3IgYSBuZXRpZiAoc3RhdGVsZXNzIGRpc2FibGVkKTxiciAgLz4KLTxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZjMzNDk0NjM1NDFlNjczZmVjMzM4NDNlYjAxOWIxOGMiPmRoY3A2X2VuYWJsZV9zdGF0ZWxlc3MoKTwvYT4gZW5hYmxlcyBzdGF0ZWxlc3MgREhDUHY2IGZvciBhIG5ldGlmIChzdGF0ZWZ1bCBkaXNhYmxlZCk8YnIgIC8+Ci08YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWRkMGM3ODNhODVhNDEwZjc1YjM3YTNkOTIyYWQ2MGQyIj5kaGNwNl9kaXNhYmxlKCk8L2E+IGRpc2FibGUgREhDUHY2IGZvciBhIG5ldGlmPC9wPgorIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZjMzNDk0NjM1NDFlNjczZmVjMzM4NDNlYjAxOWIxOGMiPmRoY3A2X2VuYWJsZV9zdGF0ZWxlc3MoKTwvYT4gZW5hYmxlcyBzdGF0ZWxlc3MgREhDUHY2IGZvciBhIG5ldGlmIChzdGF0ZWZ1bCBkaXNhYmxlZCk8YnIgIC8+CisgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FkZDBjNzgzYTg1YTQxMGY3NWIzN2EzZDkyMmFkNjBkMiI+ZGhjcDZfZGlzYWJsZSgpPC9hPiBkaXNhYmxlIERIQ1B2NiBmb3IgYSBuZXRpZjwvcD4KIDxwPldoZW4gZW5hYmxlZCwgcmVxdWVzdHMgYXJlIG9ubHkgaXNzdWVkIGFmdGVyIHJlY2VpcHQgb2YgUkEgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBiaXRzIHNldC4gPC9wPgogPGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iZ2FjYjcwNDIwMDA1MDlmYjIxZThkMjc1OGUyMzVkNmRkZSIgbmFtZT0iZ2FjYjcwNDIwMDA1MDlmYjIxZThkMjc1OGUyMzVkNmRkZSI+PC9hPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2Rucy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2Rucy5odG1sCmluZGV4IDI5MDI0MjAuLjg2ZjNmN2MgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19kbnMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fZG5zLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2V0aGVybmV0Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fZXRoZXJuZXQuaHRtbAppbmRleCAwYTI4NTNmLi40NDljMzdlIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fZXRoZXJuZXQuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fZXRoZXJuZXQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faHR0cGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19odHRwYy5odG1sCmluZGV4IDE4NzY3ZWEuLjk1MGNiYWQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19odHRwYy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19odHRwYy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19odHRwZC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2h0dHBkLmh0bWwKaW5kZXggOTljN2M4OC4uYjk1YjEzNSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2h0dHBkLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2h0dHBkLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faHR0cGRfX29wdHMuaHRtbAppbmRleCA4ZTEzNDM3Li5mMzY1ZGQ4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faHR0cGRfX29wdHMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faHR0cGRfX29wdHMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTUsNiArMTE1LDggQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNTIwODU4Nzc4Yjg0ZDRkMmZhMTI1Mjk0YzBmMTE5ZTUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FiYTJkNGNmZTRjMWY1YmRiZTM3YjMzOTA4NGE3ZDQ2NiIgaWQ9InJfZ2FiYTJkNGNmZTRjMWY1YmRiZTM3YjMzOTA4NGE3ZDQ2NiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWJhMmQ0Y2ZlNGMxZjViZGJlMzdiMzM5MDg0YTdkNDY2Ij5MV0lQX0hUVFBEX1NTSV9CWV9GSUxFX0VYVEVOU0lPTjwvYT4mIzE2MDsmIzE2MDsmIzE2MDsxPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FiYTJkNGNmZTRjMWY1YmRiZTM3YjMzOTA4NGE3ZDQ2NiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTAwNmJhYTcyMTljZmY1ZWUwMmY1YTE0ZWY3ZDdjODlkIiBpZD0icl9nYTAwNmJhYTcyMTljZmY1ZWUwMmY1YTE0ZWY3ZDdjODlkIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMDA2YmFhNzIxOWNmZjVlZTAyZjVhMTRlZjdkN2M4OWQiPkxXSVBfSFRUUERfU1NJX0VYVEVOU0lPTlM8L2E+JiMxNjA7JiMxNjA7JiMxNjA7JnF1b3Q7LnNodG1sJnF1b3Q7LCAmcXVvdDsuc2h0bSZxdW90OywgJnF1b3Q7LnNzaSZxdW90OywgJnF1b3Q7LnhtbCZxdW90OywgJnF1b3Q7Lmpzb24mcXVvdDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTAwNmJhYTcyMTljZmY1ZWUwMmY1YTE0ZWY3ZDdjODlkIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhY2JlYTA2Y2UzMzkzM2UzZWYyZjJmMTgzNGEyMWNjMmMiIGlkPSJyX2dhY2JlYTA2Y2UzMzkzM2UzZWYyZjJmMTgzNGEyMWNjMmMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FjYmVhMDZjZTMzOTMzZTNlZjJmMmYxODM0YTIxY2MyYyI+TFdJUF9IVFRQRF9TVVBQT1JUX1BPU1Q8L2E+JiMxNjA7JiMxNjA7JiMxNjA7MDwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhY2JlYTA2Y2UzMzkzM2UzZWYyZjJmMTgzNGEyMWNjMmMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2EzMTY3ZDUyZDIwY2Y5MDg1N2UyYzgwOWI5MjQ1OGJmMCIgaWQ9InJfZ2EzMTY3ZDUyZDIwY2Y5MDg1N2UyYzgwOWI5MjQ1OGJmMCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTMxNjdkNTJkMjBjZjkwODU3ZTJjODA5YjkyNDU4YmYwIj5MV0lQX0hUVFBEX1NTSV9NVUxUSVBBUlQ8L2E+JiMxNjA7JiMxNjA7JiMxNjA7MDwvdGQ+PC90cj4KQEAgLTE3NSw2ICsxNzcsOCBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2ExZWU4ZDdjOTc1YzdlM2QxYzlkOWRkOWI0MzY2MGM3OSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWVkZDBmYTNkMzU2MTcwZDhjYTM1NTdhY2I0MTBmZDdjIiBpZD0icl9nYWVkZDBmYTNkMzU2MTcwZDhjYTM1NTdhY2I0MTBmZDdjIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZWRkMGZhM2QzNTYxNzBkOGNhMzU1N2FjYjQxMGZkN2MiPkxXSVBfSFRUUERfRklMRV9TVEFURTwvYT4mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FlZGQwZmEzZDM1NjE3MGQ4Y2EzNTU3YWNiNDEwZmQ3YyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWEzNjQ4YTlmZGVmZTNhYjFjODkwYjcxNWE0Nzg2NDI5IiBpZD0icl9nYWEzNjQ4YTlmZGVmZTNhYjFjODkwYjcxNWE0Nzg2NDI5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYTM2NDhhOWZkZWZlM2FiMWM4OTBiNzE1YTQ3ODY0MjkiPkxXSVBfSFRUUERfRklMRV9FWFRFTlNJT048L2E+JiMxNjA7JiMxNjA7JiMxNjA7MDwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYTM2NDhhOWZkZWZlM2FiMWM4OTBiNzE1YTQ3ODY0MjkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E2ZTVkZTg1MTVjODlhZjEyMjc3ZTRjYjAxMTE2NTEwMyIgaWQ9InJfZ2E2ZTVkZTg1MTVjODlhZjEyMjc3ZTRjYjAxMTE2NTEwMyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTZlNWRlODUxNWM4OWFmMTIyNzdlNGNiMDExMTY1MTAzIj5IVFRQRF9QUkVDQUxDVUxBVEVEX0NIRUNLU1VNPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzA8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTZlNWRlODUxNWM4OWFmMTIyNzdlNGNiMDExMTY1MTAzIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhNTFjYjY3M2NiNWNjMzYyYWNjNDA5ZjIzYzFlMGEzMzEiIGlkPSJyX2dhNTFjYjY3M2NiNWNjMzYyYWNjNDA5ZjIzYzFlMGEzMzEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E1MWNiNjczY2I1Y2MzNjJhY2M0MDlmMjNjMWUwYTMzMSI+TFdJUF9IVFRQRF9GU19BU1lOQ19SRUFEPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzA8L3RkPjwvdHI+CkBAIC00NjgsNiArNDcyLDIxIEBACiAKIDwvZGl2PgogPC9kaXY+Cis8YSBpZD0iZ2FhMzY0OGE5ZmRlZmUzYWIxYzg5MGI3MTVhNDc4NjQyOSIgbmFtZT0iZ2FhMzY0OGE5ZmRlZmUzYWIxYzg5MGI3MTVhNDc4NjQyOSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhYTM2NDhhOWZkZWZlM2FiMWM4OTBiNzE1YTQ3ODY0MjkiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPkxXSVBfSFRUUERfRklMRV9FWFRFTlNJT048L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgTFdJUF9IVFRQRF9GSUxFX0VYVEVOU0lPTiYjMTYwOyYjMTYwOyYjMTYwOzA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5TZXQgdGhpcyB0byAxIHRvIGFkZCB0aGUgcGV4dGVuc2lvbiBmaWVsZCB0byB0aGUgZnNfZmlsZSBzdHJ1Y3R1cmUuIFRoaXMgaXMgaW5jbHVkZWQgaGVyZSB0byByZXRhaW4gY29tcGF0aWJpbGl0eSB3aXRoIGxlZ2FjeSBjb2RlIHRoYXQgcmVsaWVzIG9uIHRoZSBwcmVzZW5jZSBvZiB0aGUgcGV4dGVuc2lvbiBmaWVsZC4gTmV3IGNvZGUgc2hvdWxkIHVzZSBMV0lQX0hUVFBEX0ZJTEVfU1RBVEUgaW5zdGVhZC4gVGhpcyBvcHRpb24gbWF5IGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBsd2lwLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iZ2FlZGQwZmEzZDM1NjE3MGQ4Y2EzNTU3YWNiNDEwZmQ3YyIgbmFtZT0iZ2FlZGQwZmEzZDM1NjE3MGQ4Y2EzNTU3YWNiNDEwZmQ3YyI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhZWRkMGZhM2QzNTYxNzBkOGNhMzU1N2FjYjQxMGZkN2MiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPkxXSVBfSFRUUERfRklMRV9TVEFURTwvaDI+CiAKQEAgLTYxOSw3ICs2MzgsNyBAQAogPHA+QSBkb3duc2lkZSBvZiB0aGUgY3VycmVudCBTU0kgaW1wbGVtZW50YXRpb24gaXMgdGhhdCBwZXJzaXN0ZW50IGNvbm5lY3Rpb25zIGRvbid0IHdvcmssIGFzIHRoZSBmaWxlIGxlbmd0aCBpcyBub3Qga25vd24gaW4gYWR2YW5jZSAoYW5kIGh0dHBkIGN1cnJlbnRseSByZWxpZXMgb24gdGhlIENvbnRlbnQtTGVuZ3RoIGhlYWRlciBmb3IgcGVyc2lzdGVudCBjb25uZWN0aW9ucykuPC9wPgogPHA+VG8gc2F2ZSBtZW1vcnksIHRoZSBtYXhpbXVtIHRhZyBsZW5ndGggaXMgbGltaXRlZCAoPC9wPjxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPkxXSVBfSFRUUERfTUFYX1RBR19OQU1FX0xFTikuIFRvIHNhdmUgbWVtb3J5LCB0aGUgbWF4aW11bSBpbnNlcnRpb24gc3RyaW5nIGxlbmd0aCBpcyBsaW1pdGVkICg8L2RkPgogPGRkPgotTFdJUF9IVFRQRF9NQVhfVEFHX0lOU0VSVF9MRU4pLiBJZiB0aGlzIGlzIG5vdCBlbm91Z2h0LCA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTMxNjdkNTJkMjBjZjkwODU3ZTJjODA5YjkyNDU4YmYwIj5MV0lQX0hUVFBEX1NTSV9NVUxUSVBBUlQ8L2E+IGNhbiBiZSB1c2VkLiA8L2RkPjwvZGw+CitMV0lQX0hUVFBEX01BWF9UQUdfSU5TRVJUX0xFTikuIElmIHRoaXMgaXMgbm90IGVub3VnaCwgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EzMTY3ZDUyZDIwY2Y5MDg1N2UyYzgwOWI5MjQ1OGJmMCI+TFdJUF9IVFRQRF9TU0lfTVVMVElQQVJUPC9hPiBjYW4gYmUgdXNlZC4gPC9kZD48L2RsPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtNjM0LDExICs2NTMsMjYgQEAKICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+U2V0IHRoaXMgdG8gMCB0byBwcmV2ZW50IHBhcnNpbmcgdGhlIGZpbGUgZXh0ZW5zaW9uIGF0IHJ1bnRpbWUgdG8gZGVjaWRlIGlmIGEgZmlsZSBzaG91bGQgYmUgc2Nhbm5lZCBmb3IgU1NJIHRhZ3Mgb3Igbm90LiBEZWZhdWx0IGlzIDEgKGZpbGUgZXh0ZW5zaW9ucyBhcmUgY2hlY2tlZCB1c2luZyB0aGUgZ19wY1NTSUV4dGVuc2lvbnMgYXJyYXkpIFNldCB0byAyIHRvIG92ZXJyaWRlIHRoaXMgcnVudGltZSB0ZXN0IGZ1bmN0aW9uLjwvcD4KKzxwPlNldCB0aGlzIHRvIDAgdG8gcHJldmVudCBwYXJzaW5nIHRoZSBmaWxlIGV4dGVuc2lvbiBhdCBydW50aW1lIHRvIGRlY2lkZSBpZiBhIGZpbGUgc2hvdWxkIGJlIHNjYW5uZWQgZm9yIFNTSSB0YWdzIG9yIG5vdC4gRGVmYXVsdCBpcyAxIChmaWxlIGV4dGVuc2lvbnMgYXJlIGNoZWNrZWQgdXNpbmcgdGhlIGdfcGNTU0lFeHRlbnNpb25zIGFycmF5KSBTZXQgdG8gMiB0byBvdmVycmlkZSB0aGlzIHJ1bnRpbWUgdGVzdCBmdW5jdGlvbi4gSW4gdGhpcyBjYXNlLCB5b3UgaGF2ZSB0byBwcm92aWRlIGFuIGV4dGVybmFsIGZ1bmN0aW9uIHRoYXQgZG9lcyB0aGUgY2hlY2s6IHU4X3QgaHR0cF91cmlfaXNfc3NpKHN0cnVjdCBmc19maWxlICpmaWxlLCBjb25zdCBjaGFyICp1cmkpPC9wPgogPHA+VGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBpZiB5b3Ugb25seSB1c2UgYSBuZXdlciB2ZXJzaW9uIG9mIG1ha2Vmc2RhdGEgc3VwcG9ydGluZyB0aGUgIi1zc2kiIG9wdGlvbiwgdGhpcyBpbmZvIGlzIGFscmVhZHkgcHJlc2VudCBpbiA8L3A+CiAKIDwvZGl2PgogPC9kaXY+Cis8YSBpZD0iZ2EwMDZiYWE3MjE5Y2ZmNWVlMDJmNWExNGVmN2Q3Yzg5ZCIgbmFtZT0iZ2EwMDZiYWE3MjE5Y2ZmNWVlMDJmNWExNGVmN2Q3Yzg5ZCI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMDA2YmFhNzIxOWNmZjVlZTAyZjVhMTRlZjdkN2M4OWQiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPkxXSVBfSFRUUERfU1NJX0VYVEVOU0lPTlM8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgTFdJUF9IVFRQRF9TU0lfRVhURU5TSU9OUyYjMTYwOyYjMTYwOyYjMTYwOyZxdW90Oy5zaHRtbCZxdW90OywgJnF1b3Q7LnNodG0mcXVvdDssICZxdW90Oy5zc2kmcXVvdDssICZxdW90Oy54bWwmcXVvdDssICZxdW90Oy5qc29uJnF1b3Q7PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+VGhpcyBpcyBhIGxpc3Qgb2YgZmlsZSBleHRlbnNpb25zIGhhbmRsZWQgYXMgU1NJIGZpbGVzLiBUaGlzIGRlZmluZSBpcyB1c2VkIHRvIGluaXRpYWxpemUgYSAnY29uc3QgY2hhciAqY29uc3RbXScuIEl0IGlzIG9ubHkgdXNlZCBpZiBMV0lQX0hUVFBEX1NTSV9CWV9GSUxFX0VYVEVOU0lPTiAhPSAwLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iZ2E5NzU5NjFhNmQyMmQxYTA3NzExOGZiODVkZmVjODA5YSIgbmFtZT0iZ2E5NzU5NjFhNmQyMmQxYTA3NzExOGZiODVkZmVjODA5YSI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhOTc1OTYxYTZkMjJkMWEwNzcxMThmYjg1ZGZlYzgwOWEiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPkxXSVBfSFRUUERfU1NJX0lOQ0xVREVfVEFHPC9oMj4KIApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2h0dHBkX19vcHRzLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2h0dHBkX19vcHRzLmpzCmluZGV4IDFlYzc3ZjAuLmY5Y2VhMDQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19odHRwZF9fb3B0cy5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faHR0cGRfX29wdHMuanMKQEAgLTE4LDYgKzE4LDcgQEAKICAgICBbICJMV0lQX0hUVFBEX0NVU1RPTV9GSUxFUyIsICJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYWRhZGI3MGY1NjYzY2RmMDA0YmY4NzllM2I1ZDMyNmJkIiwgbnVsbCBdLAogICAgIFsgIkxXSVBfSFRUUERfRFlOQU1JQ19GSUxFX1JFQUQiLCAiZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2ExZWU4ZDdjOTc1YzdlM2QxYzlkOWRkOWI0MzY2MGM3OSIsIG51bGwgXSwKICAgICBbICJMV0lQX0hUVFBEX0RZTkFNSUNfSEVBREVSUyIsICJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTc1OTMyZmM1ZWViOWFiZWRkZmRhZjg0MTM1NzRjNmQ3IiwgbnVsbCBdLAorICAgIFsgIkxXSVBfSFRUUERfRklMRV9FWFRFTlNJT04iLCAiZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FhMzY0OGE5ZmRlZmUzYWIxYzg5MGI3MTVhNDc4NjQyOSIsIG51bGwgXSwKICAgICBbICJMV0lQX0hUVFBEX0ZJTEVfU1RBVEUiLCAiZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FlZGQwZmEzZDM1NjE3MGQ4Y2EzNTU3YWNiNDEwZmQ3YyIsIG51bGwgXSwKICAgICBbICJMV0lQX0hUVFBEX0ZTX0FTWU5DX1JFQUQiLCAiZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2E1MWNiNjczY2I1Y2MzNjJhY2M0MDlmMjNjMWUwYTMzMSIsIG51bGwgXSwKICAgICBbICJMV0lQX0hUVFBEX0tJTExfT0xEX09OX0NPTk5FQ1RJT05TX0VYQ0VFREVEIiwgImdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhMGQ1MDc0OTY1ZWZkNDA3ODYxODIyODc4OTVmZWI2OTEiLCBudWxsIF0sCkBAIC0yOSw2ICszMCw3IEBACiAgICAgWyAiTFdJUF9IVFRQRF9SRVFfUVVFVUVMRU4iLCAiZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FlZjIzZjRlMzUyNWFhNWRkMGVjYmNlOWI1ZTE2ZDRlMCIsIG51bGwgXSwKICAgICBbICJMV0lQX0hUVFBEX1NTSSIsICJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYWNiNzBlMGNkZDMwYTk0MGY4YmNlNjgxYzZjYzYzOTQ5IiwgbnVsbCBdLAogICAgIFsgIkxXSVBfSFRUUERfU1NJX0JZX0ZJTEVfRVhURU5TSU9OIiwgImdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhYmEyZDRjZmU0YzFmNWJkYmUzN2IzMzkwODRhN2Q0NjYiLCBudWxsIF0sCisgICAgWyAiTFdJUF9IVFRQRF9TU0lfRVhURU5TSU9OUyIsICJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTAwNmJhYTcyMTljZmY1ZWUwMmY1YTE0ZWY3ZDdjODlkIiwgbnVsbCBdLAogICAgIFsgIkxXSVBfSFRUUERfU1NJX0lOQ0xVREVfVEFHIiwgImdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhOTc1OTYxYTZkMjJkMWEwNzcxMThmYjg1ZGZlYzgwOWEiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9IVFRQRF9TU0lfTVVMVElQQVJUIiwgImdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhMzE2N2Q1MmQyMGNmOTA4NTdlMmM4MDliOTI0NThiZjAiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9IVFRQRF9TU0lfUkFXIiwgImdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhNTIwODU4Nzc4Yjg0ZDRkMmZhMTI1Mjk0YzBmMTE5ZTUiLCBudWxsIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faWFuYS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lhbmEuaHRtbAppbmRleCBlZGIwYTQ0Li42ZTc0MzI5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faWFuYS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pYW5hLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2llZWUuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pZWVlLmh0bWwKaW5kZXggNzBkOTM0NC4uODI2YzQ4MSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2llZWUuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faWVlZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pZl9fYXBpLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faWZfX2FwaS5odG1sCmluZGV4IGZmYWE1YTYuLjc2NjA5MzYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pZl9fYXBpLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lmX19hcGkuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xNTUsNyArMTU1LDcgQEAKICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+UmV0dXJzIHRoZSBpbnRlcmZhY2UgaW5kZXggY29ycmVzcG9uZGluZyB0byBuYW1lIGlmbmFtZS4gPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorPHA+UmV0dXJucyB0aGUgaW50ZXJmYWNlIGluZGV4IGNvcnJlc3BvbmRpbmcgdG8gbmFtZSBpZm5hbWUuIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KICAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+aWZuYW1lPC90ZD48dGQ+SW50ZXJmYWNlIG5hbWUgPC90ZD48L3RyPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lnbXAuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pZ21wLmh0bWwKaW5kZXggNjViNTcxYi4uYzRmMTU1ZSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lnbXAuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faWdtcC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEzOCwxMCArMTM4LDEwIEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+KCg8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RydWN0IDwvc3Bhbj48YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdGlnbXBfX2dyb3VwLmh0bWwiPmlnbXBfZ3JvdXA8L2E+ICopPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9fbmV0aWZfX2NkLmh0bWwjZ2E0YmNlMDFkZGJmMGZkNzBjYjg4NDMxZjc3M2M5MWJjNSI+bmV0aWZfZ2V0X2NsaWVudF9kYXRhPC9hPig8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgTFdJUF9ORVRJRl9DTElFTlRfREFUQV9JTkRFWF9JR01QKSk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfX2NkX2h0bWxfZ2E0YmNlMDFkZGJmMGZkNzBjYjg4NDMxZjc3M2M5MWJjNSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbmV0aWZfX2NkLmh0bWwjZ2E0YmNlMDFkZGJmMGZkNzBjYjg4NDMxZjc3M2M5MWJjNSI+bmV0aWZfZ2V0X2NsaWVudF9kYXRhPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBuZXRpZl9nZXRfY2xpZW50X2RhdGEobmV0aWYsIGlkKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjIzNzwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9fY2RfaHRtbF9nYTRiY2UwMWRkYmYwZmQ3MGNiODg0MzFmNzczYzkxYmM1Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZl9fY2QuaHRtbCNnYTRiY2UwMWRkYmYwZmQ3MGNiODg0MzFmNzczYzkxYmM1Ij5uZXRpZl9nZXRfY2xpZW50X2RhdGE8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIG5ldGlmX2dldF9jbGllbnRfZGF0YShuZXRpZiwgaWQpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjQwPC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0aWdtcF9fZ3JvdXBfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RpZ21wX19ncm91cC5odG1sIj5pZ21wX2dyb3VwPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpZ21wLmg6NzQ8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2MDwvZGl2PjwvZGl2PgotPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5HZXQgbGlzdCBoZWFkIG9mIElHTVAgZ3JvdXBzIGZvciBuZXRpZi4gTm90ZTogVGhlIGFsbHN5c3RlbXMgZ3JvdXAgSVAgaXMgY29udGFpbmVkIGluIHRoZSBsaXN0IGFzIGZpcnN0IGVudHJ5LiA8L3A+PGRsIGNsYXNzPSJzZWN0aW9uIHNlZSI+PGR0PlNlZSBhbHNvPC9kdD48ZGQ+bmV0aWZfc2V0X2lnbXBfbWFjX2ZpbHRlcigpIDwvZGQ+PC9kbD4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2OTwvZGl2PjwvZGl2PgorPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5HZXQgbGlzdCBoZWFkIG9mIElHTVAgZ3JvdXBzIGZvciBuZXRpZi4gTm90ZTogVGhlIGFsbHN5c3RlbXMgZ3JvdXAgSVAgaXMgY29udGFpbmVkIGluIHRoZSBsaXN0IGFzIGZpcnN0IGVudHJ5LiA8L3A+PGRsIGNsYXNzPSJzZWN0aW9uIHNlZSI+PGR0PlNlZSBhbHNvPC9kdD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTM0MjhiM2Y4MTk1MjQ5YzZjZDg3MDRhNGRiNDZiNDAxIj5uZXRpZl9zZXRfaWdtcF9tYWNfZmlsdGVyKCk8L2E+IDwvZGQ+PC9kbD4KIAogPC9kaXY+CiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pbmZyYXN0cnVjdHVyZS5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2luZnJhc3RydWN0dXJlLmh0bWwKaW5kZXggNmYwN2MwMC4uZTBjZjM2ZCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2luZnJhc3RydWN0dXJlLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2luZnJhc3RydWN0dXJlLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwKaW5kZXggNzQ2NTNhNC4uNjg5ZDZkOSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwLmh0bWwKaW5kZXggOTIxMTQxOC4uZGFiMTE4YyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTQ4LDcgKzE0OCw3IEBACiA8ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgIGlwNl9uZXRpZl9nZXRfbG9jYWxfaXAoPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNmFkZHIuaHRtbCNnYTA2ZTc1YmNkMTk4MDEyYjViYTM5NDgwYzIzMzYwOGJkIj5pcF8yX2lwNjwvYT4oZGVzdCkpIDogXDwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICBpcDRfbmV0aWZfZ2V0X2xvY2FsX2lwKDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KSk8L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9faXA2YWRkcl9odG1sX2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2lwNmFkZHIuaHRtbCNnYTA2ZTc1YmNkMTk4MDEyYjViYTM5NDgwYzIzMzYwOGJkIj5pcF8yX2lwNjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgaXBfMl9pcDYoaXBhZGRyKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcF9hZGRyLmg6MTE2PC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNjA8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2OTwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5HZXQgbmV0aWYgZm9yIElQLiA8L3A+CiAKIDwvZGl2PgpAQCAtMTk1LDcgKzE5NSw3IEBACiA8ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgIGlwNl9vdXRwdXQocCwgPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPmlwXzJfaXA2PC9hPihzcmMpLCA8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19pcDZhZGRyLmh0bWwjZ2EwNmU3NWJjZDE5ODAxMmI1YmEzOTQ4MGMyMzM2MDhiZCI+aXBfMl9pcDY8L2E+KGRlc3QpLCB0dGwsIHRvcywgcHJvdG8pIDogXDwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iaXA0XzhjLmh0bWwjYWM4N2QyOTYyMDVlYjVhYzA0MDU4ZTYwOTY3MmQ0YmE4Ij5pcDRfb3V0cHV0PC9hPihwLCA8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2FkNzI2OGE0OTZiN2UzZjg3MmVmZWNkODU5ZWJhNmYwMyI+aXBfMl9pcDQ8L2E+KHNyYyksIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj5pcF8yX2lwNDwvYT4oZGVzdCksIHR0bCwgdG9zLCBwcm90bykpPC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2lwNGFkZHJfaHRtbF9nYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2FkNzI2OGE0OTZiN2UzZjg3MmVmZWNkODU5ZWJhNmYwMyI+aXBfMl9pcDQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIGlwXzJfaXA0KGlwYWRkcik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXBfYWRkci5oOjEyMDwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWlwNF84Y19odG1sX2FjODdkMjk2MjA1ZWI1YWMwNDA1OGU2MDk2NzJkNGJhOCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJpcDRfOGMuaHRtbCNhYzg3ZDI5NjIwNWViNWFjMDQwNThlNjA5NjcyZDRiYTgiPmlwNF9vdXRwdXQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCBpcDRfb3V0cHV0KHN0cnVjdCBwYnVmICpwLCBjb25zdCBpcDRfYWRkcl90ICpzcmMsIGNvbnN0IGlwNF9hZGRyX3QgKmRlc3QsIHU4X3QgdHRsLCB1OF90IHRvcywgdThfdCBwcm90byk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA0LmM6MTAyODwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWlwNF84Y19odG1sX2FjODdkMjk2MjA1ZWI1YWMwNDA1OGU2MDk2NzJkNGJhOCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJpcDRfOGMuaHRtbCNhYzg3ZDI5NjIwNWViNWFjMDQwNThlNjA5NjcyZDRiYTgiPmlwNF9vdXRwdXQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCBpcDRfb3V0cHV0KHN0cnVjdCBwYnVmICpwLCBjb25zdCBpcDRfYWRkcl90ICpzcmMsIGNvbnN0IGlwNF9hZGRyX3QgKmRlc3QsIHU4X3QgdHRsLCB1OF90IHRvcywgdThfdCBwcm90byk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA0LmM6MTA2MjwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5PdXRwdXQgSVAgcGFja2V0LCBuZXRpZiBpcyBzZWxlY3RlZCBieSBzb3VyY2UgYWRkcmVzcyA8L3A+CiAKIDwvZGl2PgpAQCAtMjQ2LDcgKzI0Niw3IEBACiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgKElQX0lTX1Y2KGRlc3QpID8gXDwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICBpcDZfb3V0cHV0X2lmKHAsIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNmFkZHIuaHRtbCNnYTA2ZTc1YmNkMTk4MDEyYjViYTM5NDgwYzIzMzYwOGJkIj5pcF8yX2lwNjwvYT4oc3JjKSwgPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPmlwXzJfaXA2PC9hPihkZXN0KSwgdHRsLCB0b3MsIHByb3RvLCA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPikgOiBcPC9kaXY+CiA8ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgIDxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJpcDRfOGMuaHRtbCNhYjIyMGJjNGNlNGY0OGJkYmJhNDQ3MzU4YjM1OTQ5MTciPmlwNF9vdXRwdXRfaWY8L2E+KHAsIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj5pcF8yX2lwNDwvYT4oc3JjKSwgPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiPmlwXzJfaXA0PC9hPihkZXN0KSwgdHRsLCB0b3MsIHByb3RvLCA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPikpPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXA0XzhjX2h0bWxfYWIyMjBiYzRjZTRmNDhiZGJiYTQ0NzM1OGIzNTk0OTE3Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9ImlwNF84Yy5odG1sI2FiMjIwYmM0Y2U0ZjQ4YmRiYmE0NDczNThiMzU5NDkxNyI+aXA0X291dHB1dF9pZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGlwNF9vdXRwdXRfaWYoc3RydWN0IHBidWYgKnAsIGNvbnN0IGlwNF9hZGRyX3QgKnNyYywgY29uc3QgaXA0X2FkZHJfdCAqZGVzdCwgdThfdCB0dGwsIHU4X3QgdG9zLCB1OF90IHByb3RvLCBzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcDQuYzo3ODc8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFpcDRfOGNfaHRtbF9hYjIyMGJjNGNlNGY0OGJkYmJhNDQ3MzU4YjM1OTQ5MTciPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iaXA0XzhjLmh0bWwjYWIyMjBiYzRjZTRmNDhiZGJiYTQ0NzM1OGIzNTk0OTE3Ij5pcDRfb3V0cHV0X2lmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgaXA0X291dHB1dF9pZihzdHJ1Y3QgcGJ1ZiAqcCwgY29uc3QgaXA0X2FkZHJfdCAqc3JjLCBjb25zdCBpcDRfYWRkcl90ICpkZXN0LCB1OF90IHR0bCwgdThfdCB0b3MsIHU4X3QgcHJvdG8sIHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwNC5jOjgyMTwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5PdXRwdXQgSVAgcGFja2V0IHRvIHNwZWNpZmllZCBpbnRlcmZhY2UgPC9wPgogCiA8L2Rpdj4KQEAgLTI5Nyw3ICsyOTcsNyBAQAogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgIChJUF9JU19WNihkZXN0KSA/IFw8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgaXA2X291dHB1dF9pZl9zcmMocCwgPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPmlwXzJfaXA2PC9hPihzcmMpLCA8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19pcDZhZGRyLmh0bWwjZ2EwNmU3NWJjZDE5ODAxMmI1YmEzOTQ4MGMyMzM2MDhiZCI+aXBfMl9pcDY8L2E+KGRlc3QpLCB0dGwsIHRvcywgcHJvdG8sIDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KSA6IFw8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgPGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9ImlwNF84Yy5odG1sI2EyOTQzZDExODg3M2U5ZWIxZDgyOTZlMDRhNjc0MGRiNyI+aXA0X291dHB1dF9pZl9zcmM8L2E+KHAsIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj5pcF8yX2lwNDwvYT4oc3JjKSwgPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiPmlwXzJfaXA0PC9hPihkZXN0KSwgdHRsLCB0b3MsIHByb3RvLCA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPikpPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXA0XzhjX2h0bWxfYTI5NDNkMTE4ODczZTllYjFkODI5NmUwNGE2NzQwZGI3Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9ImlwNF84Yy5odG1sI2EyOTQzZDExODg3M2U5ZWIxZDgyOTZlMDRhNjc0MGRiNyI+aXA0X291dHB1dF9pZl9zcmM8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCBpcDRfb3V0cHV0X2lmX3NyYyhzdHJ1Y3QgcGJ1ZiAqcCwgY29uc3QgaXA0X2FkZHJfdCAqc3JjLCBjb25zdCBpcDRfYWRkcl90ICpkZXN0LCB1OF90IHR0bCwgdThfdCB0b3MsIHU4X3QgcHJvdG8sIHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwNC5jOjgyNzwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWlwNF84Y19odG1sX2EyOTQzZDExODg3M2U5ZWIxZDgyOTZlMDRhNjc0MGRiNyI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJpcDRfOGMuaHRtbCNhMjk0M2QxMTg4NzNlOWViMWQ4Mjk2ZTA0YTY3NDBkYjciPmlwNF9vdXRwdXRfaWZfc3JjPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgaXA0X291dHB1dF9pZl9zcmMoc3RydWN0IHBidWYgKnAsIGNvbnN0IGlwNF9hZGRyX3QgKnNyYywgY29uc3QgaXA0X2FkZHJfdCAqZGVzdCwgdThfdCB0dGwsIHU4X3QgdG9zLCB1OF90IHByb3RvLCBzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcDQuYzo4NjE8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+T3V0cHV0IElQIHBhY2tldCB0byBpbnRlcmZhY2Ugc3BlY2lmeWluZyBzb3VyY2UgYWRkcmVzcyA8L3A+CiAKIDwvZGl2PgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwNC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwNC5odG1sCmluZGV4IDNhNTUwYmEuLjZiNzcxZjQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDQuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faXA0Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTA2LDYgKzEwNiw4IEBACiA8dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KIDx0ciBjbGFzcz0iaGVhZGluZyI+PHRkIGNvbHNwYW49IjIiPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPjxhIGlkPSJncm91cHMiIG5hbWU9Imdyb3VwcyI+PC9hPgogVG9waWNzPC9oMj48L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYWNkLmh0bWwiPkFDRDwvYT48L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwiPkFVVE9JUDwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCI+REhDUHY0PC9hPjwvdGQ+PC90cj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDQuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faXA0LmpzCmluZGV4IDMyNmI5N2IuLmZjNDRiZTIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDQuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwNC5qcwpAQCAtMSw1ICsxLDYgQEAKIHZhciBncm91cF9faXA0ID0KIFsKKyAgICBbICJBQ0QiLCAiZ3JvdXBfX2FjZC5odG1sIiwgImdyb3VwX19hY2QiIF0sCiAgICAgWyAiQVVUT0lQIiwgImdyb3VwX19hdXRvaXAuaHRtbCIsICJncm91cF9fYXV0b2lwIiBdLAogICAgIFsgIkRIQ1B2NCIsICJncm91cF9fZGhjcDQuaHRtbCIsICJncm91cF9fZGhjcDQiIF0sCiAgICAgWyAiSUdNUCIsICJncm91cF9faWdtcC5odG1sIiwgImdyb3VwX19pZ21wIiBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwNGFkZHIuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDRhZGRyLmh0bWwKaW5kZXggYThlMDE0NS4uZmI2ZGQ0ZCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwNGFkZHIuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faXA0YWRkci5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDYuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDYuaHRtbAppbmRleCAwOGZhMzQxLi43ODk4Zjg0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faXA2Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwNi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDZfX3pvbmVzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faXA2X196b25lcy5odG1sCmluZGV4IGNiYjJiMzkuLjcyYmNkMTYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDZfX3pvbmVzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwNl9fem9uZXMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMjIsOCArMTIyLDEwIEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTczNDc3Mjk0ODVkODM3YmNmZjg1YWU0NzMxYmJmNWM0Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhZWVhZDgzNzljYzNmZDRjMjU3YmUwYmI2NTQ5OTRhOGYiIGlkPSJyX2dhZWVhZDgzNzljYzNmZDRjMjU3YmUwYmI2NTQ5OTRhOGYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FlZWFkODM3OWNjM2ZkNGMyNTdiZTBiYjY1NDk5NGE4ZiI+aXA2X2FkZHJfZXF1YWxzX3pvbmU8L2E+KGlwNmFkZHIsICB6b25lX2lkeCk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWVlYWQ4Mzc5Y2MzZmQ0YzI1N2JlMGJiNjU0OTk0YThmIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhY2JiOGUxYTc1MDVkOTc3MjE4MWRlZmEwZTc1YjhkYTkiIGlkPSJyX2dhY2JiOGUxYTc1MDVkOTc3MjE4MWRlZmEwZTc1YjhkYTkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FjYmI4ZTFhNzUwNWQ5NzcyMTgxZGVmYTBlNzViOGRhOSI+aXA2X2FkZHJfY21wX3pvbmU8L2E+KGlwNmFkZHIxLCAgaXA2YWRkcjIpPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FjYmI4ZTFhNzUwNWQ5NzcyMTgxZGVmYTBlNzViOGRhOSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWMwMWQwYmFkMGE2ODJkY2MyMzliYTNkNTY5NWUwNjQ4IiBpZD0icl9nYWMwMWQwYmFkMGE2ODJkY2MyMzliYTNkNTY5NWUwNjQ4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYzAxZDBiYWQwYTY4MmRjYzIzOWJhM2Q1Njk1ZTA2NDgiPmlwNl9hZGRyX2NtcF96b25lPC9hPihhZGRyMSwgIGFkZHIyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYzAxZDBiYWQwYTY4MmRjYzIzOWJhM2Q1Njk1ZTA2NDgiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FiYzZkNWY4MzNiMmFiZWYzMWFhNjAyZGMxMWFjZTBhOSIgaWQ9InJfZ2FiYzZkNWY4MzNiMmFiZWYzMWFhNjAyZGMxMWFjZTBhOSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWJjNmQ1ZjgzM2IyYWJlZjMxYWE2MDJkYzExYWNlMGE5Ij5pcDZfYWRkcl96b25lX2VxPC9hPihpcDZhZGRyMSwgIGlwNmFkZHIyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYmM2ZDVmODMzYjJhYmVmMzFhYTYwMmRjMTFhY2UwYTkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FlNjc3YTY1OTcwZjRiNjY3MTU2YjI1NmRkOWE0OTI0YiIgaWQ9InJfZ2FlNjc3YTY1OTcwZjRiNjY3MTU2YjI1NmRkOWE0OTI0YiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWU2NzdhNjU5NzBmNGI2NjcxNTZiMjU2ZGQ5YTQ5MjRiIj5JUFY2X0NVU1RPTV9TQ09QRVM8L2E+JiMxNjA7JiMxNjA7JiMxNjA7MDwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZTY3N2E2NTk3MGY0YjY2NzE1NmIyNTZkZDlhNDkyNGIiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FhNTMzMmJiM2I3MGMxYTlhY2JhMWJlYTNlYTBlY2I5MCIgaWQ9InJfZ2FhNTMzMmJiM2I3MGMxYTlhY2JhMWJlYTNlYTBlY2I5MCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWE1MzMyYmIzYjcwYzFhOWFjYmExYmVhM2VhMGVjYjkwIj5pcDZfYWRkcl9oYXNfc2NvcGU8L2E+KGlwNmFkZHIsICB0eXBlKTwvdGQ+PC90cj4KQEAgLTE3Myw4ICsxNzUsOCBAQAogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4gICAgKDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2dhMjEzMzEwYjMwM2RkMDUwZGE3ODU2ZDY3ZGE3MmFiZDYiPmlwNl9hZGRyX3NldF96b25lPC9hPigoaXA2YWRkciksIFw8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgICAgIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2dhYTUzMzJiYjNiNzBjMWE5YWNiYTFiZWEzZWEwZWNiOTAiPmlwNl9hZGRyX2hhc19zY29wZTwvYT4oKGlwNmFkZHIpLCAodHlwZSkpID8gbmV0aWZfZ2V0X2luZGV4KDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KSA6IDApKTwvZGl2PgogPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19pcDZfX3pvbmVzX2h0bWxfZ2EyMTMzMTBiMzAzZGQwNTBkYTc4NTZkNjdkYTcyYWJkNiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjZ2EyMTMzMTBiMzAzZGQwNTBkYTc4NTZkNjdkYTcyYWJkNiI+aXA2X2FkZHJfc2V0X3pvbmU8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIGlwNl9hZGRyX3NldF96b25lKGlwNmFkZHIsIHpvbmVfaWR4KTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcDZfem9uZS5oOjExNTwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19pcDZfX3pvbmVzX2h0bWxfZ2FhNTMzMmJiM2I3MGMxYTlhY2JhMWJlYTNlYTBlY2I5MCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjZ2FhNTMzMmJiM2I3MGMxYTlhY2JhMWJlYTNlYTBlY2I5MCI+aXA2X2FkZHJfaGFzX3Njb3BlPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBpcDZfYWRkcl9oYXNfc2NvcGUoaXA2YWRkciwgdHlwZSk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA2X3pvbmUuaDoxNzc8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2MDwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19pcDZfX3pvbmVzX2h0bWxfZ2FhNTMzMmJiM2I3MGMxYTlhY2JhMWJlYTNlYTBlY2I5MCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjZ2FhNTMzMmJiM2I3MGMxYTlhY2JhMWJlYTNlYTBlY2I5MCI+aXA2X2FkZHJfaGFzX3Njb3BlPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBpcDZfYWRkcl9oYXNfc2NvcGUoaXA2YWRkciwgdHlwZSk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA2X3pvbmUuaDoxNzk8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2OTwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5Bc3NpZ24gYSB6b25lIGluZGV4IHRvIGFuIElQdjYgYWRkcmVzcywgYmFzZWQgb24gYSBuZXR3b3JrIGludGVyZmFjZS4gSWYgdGhlIGdpdmVuIGFkZHJlc3MgaGFzIGEgc2NvcGUsIHRoZSBhc3NpZ25lZCB6b25lIGluZGV4IGlzIHRoYXQgc2NvcGUncyB6b25lIG9mIHRoZSBnaXZlbiBuZXRpZjsgb3RoZXJ3aXNlLCB0aGUgYXNzaWduZWQgem9uZSBpbmRleCBpcyAibm8gem9uZSIuPC9wPgogPHA+VGhpcyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvbGxvd3MgdGhlIGRlZmF1bHQgbW9kZWwgb2YgUkZDIDQwMDcsIHdoZXJlIG9ubHkgaW50ZXJmYWNlLWxvY2FsIGFuZCBsaW5rLWxvY2FsIHNjb3BlcyBhcmUgZGVmaW5lZCwgYW5kIHRoZSB6b25lIGluZGV4IG9mIGJvdGggb2YgdGhvc2Ugc2NvcGVzIGFsd2F5cyBlcXVhbHMgdGhlIGluZGV4IG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gQXMgc3VjaCwgdGhpcyBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG5lZWQgbm90IGRpc3Rpbmd1aXNoIGJldHdlZW4gZGlmZmVyZW50IGNvbnN0cmFpbmVkIHNjb3BlcyB3aGVuIGFzc2lnbmluZyB0aGUgem9uZS48L3A+CiA8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KQEAgLTIwOCw4ICsyMTAsOCBAQAogCiA8L2Rpdj4KIDwvZGl2PgotPGEgaWQ9ImdhY2JiOGUxYTc1MDVkOTc3MjE4MWRlZmEwZTc1YjhkYTkiIG5hbWU9ImdhY2JiOGUxYTc1MDVkOTc3MjE4MWRlZmEwZTc1YjhkYTkiPjwvYT4KLTxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYWNiYjhlMWE3NTA1ZDk3NzIxODFkZWZhMGU3NWI4ZGE5Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcDZfYWRkcl9jbXBfem9uZTwvaDI+Cis8YSBpZD0iZ2FjMDFkMGJhZDBhNjgyZGNjMjM5YmEzZDU2OTVlMDY0OCIgbmFtZT0iZ2FjMDFkMGJhZDBhNjgyZGNjMjM5YmEzZDU2OTVlMDY0OCI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhYzAxZDBiYWQwYTY4MmRjYzIzOWJhM2Q1Njk1ZTA2NDgiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwNl9hZGRyX2NtcF96b25lPC9oMj4KIAogPGRpdiBjbGFzcz0ibWVtaXRlbSI+CiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CkBAIC0yMTcsMTcgKzIxOSwxOCBAQAogICAgICAgICA8dHI+CiAgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIGlwNl9hZGRyX2NtcF96b25lPC90ZD4KICAgICAgICAgICA8dGQ+KDwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+aXA2YWRkcjE8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWRkcjE8L2VtPjwvc3Bhbj4sIDwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgogICAgICAgICAgIDx0ZD48L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmlwNmFkZHIyPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWRkcjI8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4oKGlwNmFkZHIxKS0mZ3Q7em9uZSA9PSAoaXA2YWRkcjIpLSZndDt6b25lKTwvZGl2PgotPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5BcmUgdGhlIHpvbmUgZmllbGRzIG9mIHRoZSBnaXZlbiBJUHY2IGFkZHJlc3NlcyBlcXVhbD8gKDAvMSkgVGhpcyBtYWNybyBtdXN0IG9ubHkgYmUgdXNlZCBvbiBJUHY2IGFkZHJlc3NlcyBvZiB0aGUgc2FtZSBzY29wZS4gPC9wPgorPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNnYWJjNmQ1ZjgzM2IyYWJlZjMxYWE2MDJkYzExYWNlMGE5Ij5pcDZfYWRkcl96b25lX2VxPC9hPihpcDZhZGRyMSwgaXA2YWRkcjIpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2lwNl9fem9uZXNfaHRtbF9nYWJjNmQ1ZjgzM2IyYWJlZjMxYWE2MDJkYzExYWNlMGE5Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnYWJjNmQ1ZjgzM2IyYWJlZjMxYWE2MDJkYzExYWNlMGE5Ij5pcDZfYWRkcl96b25lX2VxPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBpcDZfYWRkcl96b25lX2VxKGlwNmFkZHIxLCBpcDZhZGRyMik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA2X3pvbmUuaDoxMzA8L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PGRsIGNsYXNzPSJkZXByZWNhdGVkIj48ZHQ+PGI+PGEgY2xhc3M9ImVsIiBocmVmPSJkZXByZWNhdGVkLmh0bWwjX2RlcHJlY2F0ZWQwMDAwMTAiPkRlcHJlY2F0ZWQ8L2E+PC9iPjwvZHQ+PGRkPlJlbmFtZWQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FiYzZkNWY4MzNiMmFiZWYzMWFhNjAyZGMxMWFjZTBhOSI+aXA2X2FkZHJfem9uZV9lcTwvYT4gPC9kZD48L2RsPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtMjk4LDcgKzMwMSw3IEBACiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgKGlwNl9hZGRyX2lzbGlua2xvY2FsKGlwNmFkZHIpIHx8ICgoKHR5cGUpICE9IDxhIGNsYXNzPSJjb2RlIGhsX2VudW12YWx1ZSIgaHJlZj0iI2dnYTE5OTNjNGI2YTI5N2I2ZTkyZDgwYTljZTQ2ZGRlZGZlYWFjYmNjNjU1Njk4MzdkNDM3ZWVhNTNjM2JiYjAxN2IwIj5JUDZfVU5JQ0FTVDwvYT4pICZhbXA7JmFtcDsgXDwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICAgKGlwNl9hZGRyX2lzbXVsdGljYXN0X2lmbG9jYWwoaXA2YWRkcikgfHwgXDwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICAgIGlwNl9hZGRyX2lzbXVsdGljYXN0X2xpbmtsb2NhbChpcDZhZGRyKSkpKTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19pcDZfX3pvbmVzX2h0bWxfZ2dhMTk5M2M0YjZhMjk3YjZlOTJkODBhOWNlNDZkZGVkZmVhYWNiY2M2NTU2OTgzN2Q0MzdlZWE1M2MzYmJiMDE3YjAiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2dnYTE5OTNjNGI2YTI5N2I2ZTkyZDgwYTljZTQ2ZGRlZGZlYWFjYmNjNjU1Njk4MzdkNDM3ZWVhNTNjM2JiYjAxN2IwIj5JUDZfVU5JQ0FTVDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPkAgSVA2X1VOSUNBU1Q8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA2X3pvbmUuaDoxNDE8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9faXA2X196b25lc19odG1sX2dnYTE5OTNjNGI2YTI5N2I2ZTkyZDgwYTljZTQ2ZGRlZGZlYWFjYmNjNjU1Njk4MzdkNDM3ZWVhNTNjM2JiYjAxN2IwIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnZ2ExOTkzYzRiNmEyOTdiNmU5MmQ4MGE5Y2U0NmRkZWRmZWFhY2JjYzY1NTY5ODM3ZDQzN2VlYTUzYzNiYmIwMTdiMCI+SVA2X1VOSUNBU1Q8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5AIElQNl9VTklDQVNUPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwNl96b25lLmg6MTQzPC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkRldGVybWluZSB3aGV0aGVyIGFuIElQdjYgYWRkcmVzcyBoYXMgYSBjb25zdHJhaW5lZCBzY29wZSwgYW5kIGFzIHN1Y2ggaXMgbWVhbmluZ2Z1bCBvbmx5IGlmIGFjY29tcGFuaWVkIGJ5IGEgem9uZSBpbmRleCB0byBpZGVudGlmeSB0aGUgc2NvcGUncyB6b25lLiBUaGUgZ2l2ZW4gYWRkcmVzcyB0eXBlIG1heSBiZSB1c2VkIHRvIGVsaW1pbmF0ZSBhdCBjb21waWxlIHRpbWUgY2VydGFpbiBjaGVja3MgdGhhdCB3aWxsIGV2YWx1YXRlIHRvIGZhbHNlIGF0IHJ1biB0aW1lIGFueXdheS48L3A+CiA8cD5UaGlzIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9sbG93cyB0aGUgZGVmYXVsdCBtb2RlbCBvZiBSRkMgNDAwNywgd2hlcmUgb25seSBpbnRlcmZhY2UtbG9jYWwgYW5kIGxpbmstbG9jYWwgc2NvcGVzIGFyZSBkZWZpbmVkLjwvcD4KIDxwPkV2ZW4gdGhvdWdoIHRoZSB1bmljYXN0IGxvb3BiYWNrIGFkZHJlc3MgZG9lcyBoYXZlIGFuIGltcGxpZWQgbGluay1sb2NhbCBzY29wZSwgaW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBpdCBkb2VzIG5vdCBoYXZlIGFuIGV4cGxpY2l0bHkgYXNzaWduZWQgem9uZSBpbmRleC4gQXMgc3VjaCBpdCBzaG91bGQgbm90IGJlIHRlc3RlZCBmb3IgaW4gdGhpcyBtYWNyby48L3A+CkBAIC0zODAsNyArMzgzLDcgQEAKIDxkaXYgY2xhc3M9ImxpbmUiPiAgaWYgKHNlbGVjdGVkX25ldGlmICE9IE5VTEwpIHsgXDwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICAgIGlwNl9hZGRyX2Fzc2lnbl96b25lKChkZXN0KSwgPGEgY2xhc3M9ImNvZGUgaGxfZW51bXZhbHVlIiBocmVmPSIjZ2dhMTk5M2M0YjZhMjk3YjZlOTJkODBhOWNlNDZkZGVkZmVhZGRiMWQyOThjZTk2Y2VhNWNjYzhlMTM5NzQ0M2RiYjgiPklQNl9VTktOT1dOPC9hPiwgc2VsZWN0ZWRfbmV0aWYpOyBcPC9kaXY+CiA8ZGl2IGNsYXNzPSJsaW5lIj4gIH0gfSA8c3BhbiBjbGFzcz0ia2V5d29yZGZsb3ciPndoaWxlPC9zcGFuPiAoMCk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9faXA2X196b25lc19odG1sX2dnYTE5OTNjNGI2YTI5N2I2ZTkyZDgwYTljZTQ2ZGRlZGZlYWRkYjFkMjk4Y2U5NmNlYTVjY2M4ZTEzOTc0NDNkYmI4Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnZ2ExOTkzYzRiNmEyOTdiNmU5MmQ4MGE5Y2U0NmRkZWRmZWFkZGIxZDI5OGNlOTZjZWE1Y2NjOGUxMzk3NDQzZGJiOCI+SVA2X1VOS05PV048L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5AIElQNl9VTktOT1dOPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwNl96b25lLmg6MTM5PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2lwNl9fem9uZXNfaHRtbF9nZ2ExOTkzYzRiNmEyOTdiNmU5MmQ4MGE5Y2U0NmRkZWRmZWFkZGIxZDI5OGNlOTZjZWE1Y2NjOGUxMzk3NDQzZGJiOCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjZ2dhMTk5M2M0YjZhMjk3YjZlOTJkODBhOWNlNDZkZGVkZmVhZGRiMWQyOThjZTk2Y2VhNWNjYzhlMTM5NzQ0M2RiYjgiPklQNl9VTktOT1dOPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+QCBJUDZfVU5LTk9XTjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcDZfem9uZS5oOjE0MTwvZGl2PjwvZGl2PgogPGRpdiBjbGFzcz0idHRjIiBpZD0iYWlwNl84Y19odG1sX2E1MTk2ODZhMmMzYmViNjg5YmYxZDMzODBjNGU1ZWZiMSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJpcDZfOGMuaHRtbCNhNTE5Njg2YTJjM2JlYjY4OWJmMWQzMzgwYzRlNWVmYjEiPmlwNl9yb3V0ZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnN0cnVjdCBuZXRpZiAqIGlwNl9yb3V0ZShjb25zdCBpcDZfYWRkcl90ICpzcmMsIGNvbnN0IGlwNl9hZGRyX3QgKmRlc3QpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwNi5jOjg2PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPlRyeSB0byBzZWxlY3QgYSB6b25lIGZvciBhIHNjb3BlZCBhZGRyZXNzIHRoYXQgZG9lcyBub3QgeWV0IGhhdmUgYSB6b25lLiBDYWxsZWQgZnJvbSBQQ0IgYmluZCBhbmQgY29ubmVjdCByb3V0aW5lcywgZm9yIHR3byByZWFzb25zOiAxKSB0byBzYXZlIG9uIHRoaXMgKHJlbGF0aXZlbHkgZXhwZW5zaXZlKSBzZWxlY3Rpb24gZm9yIGV2ZXJ5IGluZGl2aWR1YWwgcGFja2V0IHJvdXRlIG9wZXJhdGlvbiBhbmQgMikgdG8gYWxsb3cgdGhlIGFwcGxpY2F0aW9uIHRvIG9idGFpbiB0aGUgc2VsZWN0ZWQgem9uZSBmcm9tIHRoZSBQQ0IgYXMgaXMgY3VzdG9tYXJ5IGZvciBlLmcuIGdldHNvY2tuYW1lL2dldHBlZXJuYW1lIEJTRCBzb2NrZXQgY2FsbHMuPC9wPgogPHA+SWRlYWxseSwgY2FsbGVycyB3b3VsZCBhbHdheXMgc3VwcGx5IGEgcHJvcGVybHkgem9uZWQgYWRkcmVzcywgaW4gd2hpY2ggY2FzZSB0aGlzIGZ1bmN0aW9uIHdvdWxkIG5vdCBiZSBuZWVkZWQuIEl0IGV4aXN0cyBib3RoIGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIEJTRCBzb2NrZXQgQVBJICh3aGljaCBhY2NlcHRzIHpvbmVsZXNzIGRlc3RpbmF0aW9uIGFkZHJlc3NlcykgYW5kIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggcHJlLXNjb3BpbmcgbHdJUCBjb2RlLjwvcD4KQEAgLTQ3MCw2ICs0NzMsMjkgQEAKIAogPC9kaXY+CiA8L2Rpdj4KKzxhIGlkPSJnYWJjNmQ1ZjgzM2IyYWJlZjMxYWE2MDJkYzExYWNlMGE5IiBuYW1lPSJnYWJjNmQ1ZjgzM2IyYWJlZjMxYWE2MDJkYzExYWNlMGE5Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FiYzZkNWY4MzNiMmFiZWYzMWFhNjAyZGMxMWFjZTBhOSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+aXA2X2FkZHJfem9uZV9lcTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBpcDZfYWRkcl96b25lX2VxPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+aXA2YWRkcjE8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmlwNmFkZHIyPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+KChpcDZhZGRyMSktJmd0O3pvbmUgPT0gKGlwNmFkZHIyKS0mZ3Q7em9uZSk8L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+QXJlIHRoZSB6b25lIGZpZWxkcyBvZiB0aGUgZ2l2ZW4gSVB2NiBhZGRyZXNzZXMgZXF1YWw/ICgwLzEpIFRoaXMgbWFjcm8gbXVzdCBvbmx5IGJlIHVzZWQgb24gSVB2NiBhZGRyZXNzZXMgb2YgdGhlIHNhbWUgc2NvcGUuIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxhIGlkPSJnYTIwNDkxNjdkMTcxNWI5YTljZjI3MzBlMTIyYzBkNGZiIiBuYW1lPSJnYTIwNDkxNjdkMTcxNWI5YTljZjI3MzBlMTIyYzBkNGZiIj48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2EyMDQ5MTY3ZDE3MTViOWE5Y2YyNzMwZTEyMmMwZDRmYiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+SVA2X05PX1pPTkU8L2gyPgogCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faXA2X196b25lcy5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDZfX3pvbmVzLmpzCmluZGV4IDAyNTA1NmEuLjgyYjI2OTIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDZfX3pvbmVzLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDZfX3pvbmVzLmpzCkBAIC0yLDcgKzIsNyBAQAogWwogICAgIFsgImlwNl9hZGRyX2Fzc2lnbl96b25lIiwgImdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2ExMDQwYTNkNjc0OThhMWVmNjE3YmRhOGQ5ZTBiYTNhNSIsIG51bGwgXSwKICAgICBbICJpcDZfYWRkcl9jbGVhcl96b25lIiwgImdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FlMDI0OWRiNmNkMjY4N2YyZGJjNDQ1ZTc3NzhkMzdhZCIsIG51bGwgXSwKLSAgICBbICJpcDZfYWRkcl9jbXBfem9uZSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhY2JiOGUxYTc1MDVkOTc3MjE4MWRlZmEwZTc1YjhkYTkiLCBudWxsIF0sCisgICAgWyAiaXA2X2FkZHJfY21wX3pvbmUiLCAiZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWMwMWQwYmFkMGE2ODJkY2MyMzliYTNkNTY5NWUwNjQ4IiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX2NvcHlfem9uZSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhNzM0NzcyOTQ4NWQ4MzdiY2ZmODVhZTQ3MzFiYmY1YzQiLCBudWxsIF0sCiAgICAgWyAiaXA2X2FkZHJfZXF1YWxzX3pvbmUiLCAiZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWVlYWQ4Mzc5Y2MzZmQ0YzI1N2JlMGJiNjU0OTk0YThmIiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX2hhc19zY29wZSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhYTUzMzJiYjNiNzBjMWE5YWNiYTFiZWEzZWEwZWNiOTAiLCBudWxsIF0sCkBAIC0xMiw2ICsxMiw3IEBACiAgICAgWyAiaXA2X2FkZHJfc2V0X3pvbmUiLCAiZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYTIxMzMxMGIzMDNkZDA1MGRhNzg1NmQ2N2RhNzJhYmQ2IiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX3Rlc3Rfem9uZSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhYzNlYzVmOTRlMWNkNjJiMTIzN2VmY2EzNzIzZGMwNmUiLCBudWxsIF0sCiAgICAgWyAiaXA2X2FkZHJfem9uZSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhZWU4M2UxMjY0OWZhOTcwNjg1N2M5YWQ4ZjllZjg2MzQiLCBudWxsIF0sCisgICAgWyAiaXA2X2FkZHJfem9uZV9lcSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhYmM2ZDVmODMzYjJhYmVmMzFhYTYwMmRjMTFhY2UwYTkiLCBudWxsIF0sCiAgICAgWyAiSVA2X05PX1pPTkUiLCAiZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYTIwNDkxNjdkMTcxNWI5YTljZjI3MzBlMTIyYzBkNGZiIiwgbnVsbCBdLAogICAgIFsgIklQQUREUjZfWk9ORV9JTklUIiwgImdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FhMDkwZTU0ZjYzMmM4NTEyYTc5OTEzMDdlMDExYzFiOSIsIG51bGwgXSwKICAgICBbICJJUFY2X0NVU1RPTV9TQ09QRVMiLCAiZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWU2NzdhNjU5NzBmNGI2NjcxNTZiMjU2ZGQ5YTQ5MjRiIiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwNmFkZHIuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcDZhZGRyLmh0bWwKaW5kZXggYWI2MjhlNy4uZTk0YTc2NiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwNmFkZHIuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faXA2YWRkci5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcGFkZHIuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcGFkZHIuaHRtbAppbmRleCAzNGI1MWNhLi42YjczYWQxIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faXBhZGRyLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwYWRkci5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwMCw2ICsxMDAsNyBAQAogICA8ZGl2IGNsYXNzPSJzdW1tYXJ5Ij4KIDxhIGhyZWY9IiNncm91cHMiPlRvcGljczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjbmVzdGVkLWNsYXNzZXMiPkRhdGEgU3RydWN0dXJlczwvYT4gJiMxMjQ7Cis8YSBocmVmPSIjZGVmaW5lLW1lbWJlcnMiPk1hY3JvczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjdHlwZWRlZi1tZW1iZXJzIj5UeXBlZGVmczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjZW51bS1tZW1iZXJzIj5FbnVtZXJhdGlvbnM8L2E+ICYjMTI0OwogPGEgaHJlZj0iI2Z1bmMtbWVtYmVycyI+RnVuY3Rpb25zPC9hPiAgPC9kaXY+CkBAIC0xMTksNiArMTIwLDM1IEBACiA8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0aXBfX2FkZHIuaHRtbCI+aXBfYWRkcjwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgorPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImRlZmluZS1tZW1iZXJzIiBuYW1lPSJkZWZpbmUtbWVtYmVycyI+PC9hPgorTWFjcm9zPC9oMj48L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EzYTIxMjNmMGJiZjZmZTg0M2M4NTQyZTM0OWM2ODBlYiIgaWQ9InJfZ2EzYTIxMjNmMGJiZjZmZTg0M2M4NTQyZTM0OWM2ODBlYiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTNhMjEyM2YwYmJmNmZlODQzYzg1NDJlMzQ5YzY4MGViIj5pcF9hZGRyX25ldGNtcDwvYT4oYWRkcjEsICBhZGRyMiwgIG1hc2spPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EzYTIxMjNmMGJiZjZmZTg0M2M4NTQyZTM0OWM2ODBlYiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWQxYmJiZTRjOTNlYTIzNjg2NjNlOTA4MTQ5NTNiOTI5IiBpZD0icl9nYWQxYmJiZTRjOTNlYTIzNjg2NjNlOTA4MTQ5NTNiOTI5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZDFiYmJlNGM5M2VhMjM2ODY2M2U5MDgxNDk1M2I5MjkiPmlwX2FkZHJfbmV0X2VxPC9hPihhZGRyMSwgIGFkZHIyLCAgbWFzayk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWQxYmJiZTRjOTNlYTIzNjg2NjNlOTA4MTQ5NTNiOTI5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMDA4YzljOTJkNzcwY2MwMzBlYTA1NGU2YjI1OTgzNWEiIGlkPSJyX2dhMDA4YzljOTJkNzcwY2MwMzBlYTA1NGU2YjI1OTgzNWEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EwMDhjOWM5MmQ3NzBjYzAzMGVhMDU0ZTZiMjU5ODM1YSI+aXBfYWRkcl9jbXA8L2E+KGFkZHIxLCAgYWRkcjIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EwMDhjOWM5MmQ3NzBjYzAzMGVhMDU0ZTZiMjU5ODM1YSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTViNDAxNThiZGZmYTRiMGM4MWM0ZWU3NzA2NmU2YjI4IiBpZD0icl9nYTViNDAxNThiZGZmYTRiMGM4MWM0ZWU3NzA2NmU2YjI4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNWI0MDE1OGJkZmZhNGIwYzgxYzRlZTc3MDY2ZTZiMjgiPmlwX2FkZHJfZXE8L2E+KGFkZHIxLCAgYWRkcjIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E1YjQwMTU4YmRmZmE0YjBjODFjNGVlNzcwNjZlNmIyOCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWRiNjZmNmQ1ZmE5MjZlZDRiMGU2OWRiNThkZmZjYmU0IiBpZD0icl9nYWRiNjZmNmQ1ZmE5MjZlZDRiMGU2OWRiNThkZmZjYmU0Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZGI2NmY2ZDVmYTkyNmVkNGIwZTY5ZGI1OGRmZmNiZTQiPmlwX2FkZHJfY21wX3pvbmVsZXNzPC9hPihhZGRyMSwgIGFkZHIyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZGI2NmY2ZDVmYTkyNmVkNGIwZTY5ZGI1OGRmZmNiZTQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E4YWMyNjg2NDE3ZWMyOTc0YmIwYjNmYzZlZTBlZTFhNyIgaWQ9InJfZ2E4YWMyNjg2NDE3ZWMyOTc0YmIwYjNmYzZlZTBlZTFhNyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3Ij5pcF9hZGRyX3pvbmVsZXNzX2VxPC9hPihhZGRyMSwgIGFkZHIyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhOGFjMjY4NjQxN2VjMjk3NGJiMGIzZmM2ZWUwZWUxYTciPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EyNzkxMTg4OTBlNmE5MGFhNzQwMDUxZmI4YjBjYzVmNCIgaWQ9InJfZ2EyNzkxMTg4OTBlNmE5MGFhNzQwMDUxZmI4YjBjYzVmNCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTI3OTExODg5MGU2YTkwYWE3NDAwNTFmYjhiMGNjNWY0Ij5pcF9hZGRyX2lzYW55PC9hPihpcGFkZHIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EyNzkxMTg4OTBlNmE5MGFhNzQwMDUxZmI4YjBjYzVmNCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWNkOGY1YWExNTFjZmY5NjZmZDI4MzY4Yjg1ZjM4YzA1IiBpZD0icl9nYWNkOGY1YWExNTFjZmY5NjZmZDI4MzY4Yjg1ZjM4YzA1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhY2Q4ZjVhYTE1MWNmZjk2NmZkMjgzNjhiODVmMzhjMDUiPmlwX2FkZHJfaXNhbnlfdmFsPC9hPihpcGFkZHIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FjZDhmNWFhMTUxY2ZmOTY2ZmQyODM2OGI4NWYzOGMwNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWEzMzQ1NzA2ZTNhYThiMzJkZDYzMGMxOTViMDUzZTc1IiBpZD0icl9nYWEzMzQ1NzA2ZTNhYThiMzJkZDYzMGMxOTViMDUzZTc1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYTMzNDU3MDZlM2FhOGIzMmRkNjMwYzE5NWIwNTNlNzUiPmlwX2FkZHJfaXNicm9hZGNhc3Q8L2E+KGlwYWRkciwgIDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYTMzNDU3MDZlM2FhOGIzMmRkNjMwYzE5NWIwNTNlNzUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EyMTcwZDNlZTEzZGQyMjcyMjIyMjIyOGU3YjFjNTc1MiIgaWQ9InJfZ2EyMTcwZDNlZTEzZGQyMjcyMjIyMjIyOGU3YjFjNTc1MiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTIxNzBkM2VlMTNkZDIyNzIyMjIyMjI4ZTdiMWM1NzUyIj5pcF9hZGRyX2lzbXVsdGljYXN0PC9hPihpcGFkZHIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EyMTcwZDNlZTEzZGQyMjcyMjIyMjIyOGU3YjFjNTc1MiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTBmYzhiZjY2NjI4MDkyNzQ3NTA4Njg2ODNiM2E0MjJlIiBpZD0icl9nYTBmYzhiZjY2NjI4MDkyNzQ3NTA4Njg2ODNiM2E0MjJlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMGZjOGJmNjY2MjgwOTI3NDc1MDg2ODY4M2IzYTQyMmUiPmlwX2FkZHJfaXNsb29wYmFjazwvYT4oaXBhZGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMGZjOGJmNjY2MjgwOTI3NDc1MDg2ODY4M2IzYTQyMmUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EzM2JjMDc5YmFhZjUxM2E5YTczODFiOTUzMWExZjY1MyIgaWQ9InJfZ2EzM2JjMDc5YmFhZjUxM2E5YTczODFiOTUzMWExZjY1MyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTMzYmMwNzliYWFmNTEzYTlhNzM4MWI5NTMxYTFmNjUzIj5pcF9hZGRyX2lzbGlua2xvY2FsPC9hPihpcGFkZHIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EzM2JjMDc5YmFhZjUxM2E5YTczODFiOTUzMWExZjY1MyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWJlNDNiMTU0NTMzYjczNTg1YzRlNThmNTY4MzcwZWRlIiBpZD0icl9nYWJlNDNiMTU0NTMzYjczNTg1YzRlNThmNTY4MzcwZWRlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYmU0M2IxNTQ1MzNiNzM1ODVjNGU1OGY1NjgzNzBlZGUiPklQX0FOWV9UWVBFPC9hPiYjMTYwOyYjMTYwOyYjMTYwOygmYW1wO2lwX2FkZHJfYW55X3R5cGUpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FiZTQzYjE1NDUzM2I3MzU4NWM0ZTU4ZjU2ODM3MGVkZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzwvdGFibGU+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+CiA8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0idHlwZWRlZi1tZW1iZXJzIiBuYW1lPSJ0eXBlZGVmLW1lbWJlcnMiPjwvYT4KIFR5cGVkZWZzPC9oMj48L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2EzMzVhOGM5ZGY2NjMxOWU4OGExYTUyOTA0N2NlMGExZSIgaWQ9InJfZ2EzMzVhOGM5ZGY2NjMxOWU4OGExYTUyOTA0N2NlMGExZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dHlwZWRlZiBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcF9fYWRkci5odG1sIj5pcF9hZGRyPC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTMzNWE4YzlkZjY2MzE5ZTg4YTFhNTI5MDQ3Y2UwYTFlIj5pcF9hZGRyX3Q8L2E+PC90ZD48L3RyPgpAQCAtMTQyLDYgKzE3MiwzMTMgQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNGRlNzBmZGQ3ZmQzNmM1YjZlYWVkOGI4NTVkNWYxNTEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPgogPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+Cis8aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5NYWNybyBEZWZpbml0aW9uIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImdhMDA4YzljOTJkNzcwY2MwMzBlYTA1NGU2YjI1OTgzNWEiIG5hbWU9ImdhMDA4YzljOTJkNzcwY2MwMzBlYTA1NGU2YjI1OTgzNWEiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTAwOGM5YzkyZDc3MGNjMDMwZWEwNTRlNmIyNTk4MzVhIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcF9hZGRyX2NtcDwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBpcF9hZGRyX2NtcDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFkZHIxPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyMjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2dhNWI0MDE1OGJkZmZhNGIwYzgxYzRlZTc3MDY2ZTZiMjgiPmlwX2FkZHJfZXE8L2E+KChhZGRyMSksIChhZGRyMikpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2lwYWRkcl9odG1sX2dhNWI0MDE1OGJkZmZhNGIwYzgxYzRlZTc3MDY2ZTZiMjgiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2dhNWI0MDE1OGJkZmZhNGIwYzgxYzRlZTc3MDY2ZTZiMjgiPmlwX2FkZHJfZXE8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIGlwX2FkZHJfZXEoYWRkcjEsIGFkZHIyKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcF9hZGRyLmg6MjE0PC9kaXY+PC9kaXY+Cis8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxkbCBjbGFzcz0iZGVwcmVjYXRlZCI+PGR0PjxiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGVwcmVjYXRlZC5odG1sI19kZXByZWNhdGVkMDAwMDEyIj5EZXByZWNhdGVkPC9hPjwvYj48L2R0PjxkZD5SZW5hbWVkIHRvIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNWI0MDE1OGJkZmZhNGIwYzgxYzRlZTc3MDY2ZTZiMjgiPmlwX2FkZHJfZXE8L2E+IDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYWRiNjZmNmQ1ZmE5MjZlZDRiMGU2OWRiNThkZmZjYmU0IiBuYW1lPSJnYWRiNjZmNmQ1ZmE5MjZlZDRiMGU2OWRiNThkZmZjYmU0Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FkYjY2ZjZkNWZhOTI2ZWQ0YjBlNjlkYjU4ZGZmY2JlNCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+aXBfYWRkcl9jbXBfem9uZWxlc3M8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgaXBfYWRkcl9jbXBfem9uZWxlc3M8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyMTwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWRkcjI8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3Ij5pcF9hZGRyX3pvbmVsZXNzX2VxPC9hPigoYWRkcjEpLCAoYWRkcjIpKTwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19pcGFkZHJfaHRtbF9nYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3Ij5pcF9hZGRyX3pvbmVsZXNzX2VxPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBpcF9hZGRyX3pvbmVsZXNzX2VxKGFkZHIxLCBhZGRyMik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXBfYWRkci5oOjIyNDwvZGl2PjwvZGl2PgorPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48ZGwgY2xhc3M9ImRlcHJlY2F0ZWQiPjxkdD48Yj48YSBjbGFzcz0iZWwiIGhyZWY9ImRlcHJlY2F0ZWQuaHRtbCNfZGVwcmVjYXRlZDAwMDAxMyI+RGVwcmVjYXRlZDwvYT48L2I+PC9kdD48ZGQ+UmVuYW1lZCB0byA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3Ij5pcF9hZGRyX3pvbmVsZXNzX2VxPC9hPiA8L2RkPjwvZGw+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2E1YjQwMTU4YmRmZmE0YjBjODFjNGVlNzcwNjZlNmIyOCIgbmFtZT0iZ2E1YjQwMTU4YmRmZmE0YjBjODFjNGVlNzcwNjZlNmIyOCI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhNWI0MDE1OGJkZmZhNGIwYzgxYzRlZTc3MDY2ZTZiMjgiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwX2FkZHJfZXE8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgaXBfYWRkcl9lcTwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFkZHIxPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyMjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgKChJUF9HRVRfVFlQRShhZGRyMSkgIT0gSVBfR0VUX1RZUEUoYWRkcjIpKSA/IDAgOiAoSVBfSVNfVjZfVkFMKCooYWRkcjEpKSA/IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgaXA2X2FkZHJfZXEoPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPmlwXzJfaXA2PC9hPihhZGRyMSksIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNmFkZHIuaHRtbCNnYTA2ZTc1YmNkMTk4MDEyYjViYTM5NDgwYzIzMzYwOGJkIj5pcF8yX2lwNjwvYT4oYWRkcjIpKSA6IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgaXA0X2FkZHJfZXEoPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiPmlwXzJfaXA0PC9hPihhZGRyMSksIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj5pcF8yX2lwNDwvYT4oYWRkcjIpKSkpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2lwNGFkZHJfaHRtbF9nYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2FkNzI2OGE0OTZiN2UzZjg3MmVmZWNkODU5ZWJhNmYwMyI+aXBfMl9pcDQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIGlwXzJfaXA0KGlwYWRkcik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXBfYWRkci5oOjEyMDwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19pcDZhZGRyX2h0bWxfZ2EwNmU3NWJjZDE5ODAxMmI1YmEzOTQ4MGMyMzM2MDhiZCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPmlwXzJfaXA2PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBpcF8yX2lwNihpcGFkZHIpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwX2FkZHIuaDoxMTY8L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+Q2hlY2sgaWYgdHdvIGlwIGFkZHJlc3NlcyBhcmUgZXF1YWwuIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYTI3OTExODg5MGU2YTkwYWE3NDAwNTFmYjhiMGNjNWY0IiBuYW1lPSJnYTI3OTExODg5MGU2YTkwYWE3NDAwNTFmYjhiMGNjNWY0Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2EyNzkxMTg4OTBlNmE5MGFhNzQwMDUxZmI4YjBjYzVmNCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+aXBfYWRkcl9pc2FueTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBpcF9hZGRyX2lzYW55PC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+aXBhZGRyPC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+ICAoKChpcGFkZHIpID09IE5VTEwpID8gMSA6ICgoSVBfSVNfVjYoaXBhZGRyKSkgPyBcPC9kaXY+Cis8ZGl2IGNsYXNzPSJsaW5lIj4gIGlwNl9hZGRyX2lzYW55KDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNmFkZHIuaHRtbCNnYTA2ZTc1YmNkMTk4MDEyYjViYTM5NDgwYzIzMzYwOGJkIj5pcF8yX2lwNjwvYT4oaXBhZGRyKSkgOiBcPC9kaXY+Cis8ZGl2IGNsYXNzPSJsaW5lIj4gIGlwNF9hZGRyX2lzYW55KDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj5pcF8yX2lwNDwvYT4oaXBhZGRyKSkpKTwvZGl2PgorPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5DaGVjayBpZiBhbiBpcCBhZGRyZXNzIGlzIHRoZSAnYW55JyBhZGRyZXNzLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2FjZDhmNWFhMTUxY2ZmOTY2ZmQyODM2OGI4NWYzOGMwNSIgbmFtZT0iZ2FjZDhmNWFhMTUxY2ZmOTY2ZmQyODM2OGI4NWYzOGMwNSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhY2Q4ZjVhYTE1MWNmZjk2NmZkMjgzNjhiODVmMzhjMDUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwX2FkZHJfaXNhbnlfdmFsPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIGlwX2FkZHJfaXNhbnlfdmFsPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+aXBhZGRyPC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+ICAoKElQX0lTX1Y2X1ZBTChpcGFkZHIpKSA/IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgaXA2X2FkZHJfaXNhbnlfdmFsKCo8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19pcDZhZGRyLmh0bWwjZ2EwNmU3NWJjZDE5ODAxMmI1YmEzOTQ4MGMyMzM2MDhiZCI+aXBfMl9pcDY8L2E+KCZhbXA7KGlwYWRkcikpKSA6IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgaXA0X2FkZHJfaXNhbnlfdmFsKCo8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2FkNzI2OGE0OTZiN2UzZjg3MmVmZWNkODU5ZWJhNmYwMyI+aXBfMl9pcDQ8L2E+KCZhbXA7KGlwYWRkcikpKSk8L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+Q2hlY2sgaWYgYW4gaXAgYWRkcmVzcyBpcyB0aGUgJ2FueScgYWRkcmVzcywgYnkgdmFsdWUuIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYWEzMzQ1NzA2ZTNhYThiMzJkZDYzMGMxOTViMDUzZTc1IiBuYW1lPSJnYWEzMzQ1NzA2ZTNhYThiMzJkZDYzMGMxOTViMDUzZTc1Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FhMzM0NTcwNmUzYWE4YjMyZGQ2MzBjMTk1YjA1M2U3NSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+aXBfYWRkcl9pc2Jyb2FkY2FzdDwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBpcF9hZGRyX2lzYnJvYWRjYXN0PC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+aXBhZGRyPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgKChJUF9JU19WNihpcGFkZHIpKSA/IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgMCA6IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgaXA0X2FkZHJfaXNicm9hZGNhc3QoPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiPmlwXzJfaXA0PC9hPihpcGFkZHIpLCA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPikpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNjk8L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+Q2hlY2sgaWYgYW4gaXAgYWRkcmVzcyBpcyBhIGJyb2FkY2FzdCBhZGRyZXNzLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2EzM2JjMDc5YmFhZjUxM2E5YTczODFiOTUzMWExZjY1MyIgbmFtZT0iZ2EzM2JjMDc5YmFhZjUxM2E5YTczODFiOTUzMWExZjY1MyI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMzNiYzA3OWJhYWY1MTNhOWE3MzgxYjk1MzFhMWY2NTMiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwX2FkZHJfaXNsaW5rbG9jYWw8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgaXBfYWRkcl9pc2xpbmtsb2NhbDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmlwYWRkcjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgKChJUF9JU19WNihpcGFkZHIpKSA/IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgaXA2X2FkZHJfaXNsaW5rbG9jYWwoPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPmlwXzJfaXA2PC9hPihpcGFkZHIpKSA6IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgaXA0X2FkZHJfaXNsaW5rbG9jYWwoPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiPmlwXzJfaXA0PC9hPihpcGFkZHIpKSk8L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+Q2hlY2sgaW5mIGFuIGlwIGFkZHJlc3MgaXMgYSBsaW5rLWxvY2FsIGFkZHJlc3MuIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYTBmYzhiZjY2NjI4MDkyNzQ3NTA4Njg2ODNiM2E0MjJlIiBuYW1lPSJnYTBmYzhiZjY2NjI4MDkyNzQ3NTA4Njg2ODNiM2E0MjJlIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2EwZmM4YmY2NjYyODA5Mjc0NzUwODY4NjgzYjNhNDIyZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+aXBfYWRkcl9pc2xvb3BiYWNrPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIGlwX2FkZHJfaXNsb29wYmFjazwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmlwYWRkcjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgKChJUF9JU19WNihpcGFkZHIpKSA/IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgaXA2X2FkZHJfaXNsb29wYmFjayg8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19pcDZhZGRyLmh0bWwjZ2EwNmU3NWJjZDE5ODAxMmI1YmEzOTQ4MGMyMzM2MDhiZCI+aXBfMl9pcDY8L2E+KGlwYWRkcikpIDogXDwvZGl2PgorPGRpdiBjbGFzcz0ibGluZSI+ICA8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2E0NmRhYmI0ZGYyMTJkMTU2MDA0ZmE1YWZlMDNlMjA1MSI+aXA0X2FkZHJfaXNsb29wYmFjazwvYT4oPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiPmlwXzJfaXA0PC9hPihpcGFkZHIpKSk8L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFpcDRfX2FkZHJfOGhfaHRtbF9hNDZkYWJiNGRmMjEyZDE1NjAwNGZhNWFmZTAzZTIwNTEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTQ2ZGFiYjRkZjIxMmQxNTYwMDRmYTVhZmUwM2UyMDUxIj5pcDRfYWRkcl9pc2xvb3BiYWNrPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBpcDRfYWRkcl9pc2xvb3BiYWNrKGlwYWRkcik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA0X2FkZHIuaDoxMTk8L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+Q2hlY2sgaW5mIGFuIGlwIGFkZHJlc3MgaXMgYSBsb29wYmFjayBhZGRyZXNzLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2EyMTcwZDNlZTEzZGQyMjcyMjIyMjIyOGU3YjFjNTc1MiIgbmFtZT0iZ2EyMTcwZDNlZTEzZGQyMjcyMjIyMjIyOGU3YjFjNTc1MiI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMjE3MGQzZWUxM2RkMjI3MjIyMjIyMjhlN2IxYzU3NTIiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwX2FkZHJfaXNtdWx0aWNhc3Q8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgaXBfYWRkcl9pc211bHRpY2FzdDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmlwYWRkcjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgKChJUF9JU19WNihpcGFkZHIpKSA/IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgaXA2X2FkZHJfaXNtdWx0aWNhc3QoPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPmlwXzJfaXA2PC9hPihpcGFkZHIpKSA6IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgaXA0X2FkZHJfaXNtdWx0aWNhc3QoPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiPmlwXzJfaXA0PC9hPihpcGFkZHIpKSk8L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+Q2hlY2sgaW5mIGFuIGlwIGFkZHJlc3MgaXMgYSBtdWx0aWNhc3QgYWRkcmVzcy4gPC9wPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImdhZDFiYmJlNGM5M2VhMjM2ODY2M2U5MDgxNDk1M2I5MjkiIG5hbWU9ImdhZDFiYmJlNGM5M2VhMjM2ODY2M2U5MDgxNDk1M2I5MjkiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYWQxYmJiZTRjOTNlYTIzNjg2NjNlOTA4MTQ5NTNiOTI5Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcF9hZGRyX25ldF9lcTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBpcF9hZGRyX25ldF9lcTwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFkZHIxPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyMjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bWFzazwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgKChJUF9JU19WNihhZGRyMSkgJmFtcDsmYW1wOyBJUF9JU19WNihhZGRyMikpID8gXDwvZGl2PgorPGRpdiBjbGFzcz0ibGluZSI+ICAwIDogXDwvZGl2PgorPGRpdiBjbGFzcz0ibGluZSI+ICBpcDRfYWRkcl9uZXRfZXEoPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiPmlwXzJfaXA0PC9hPihhZGRyMSksIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj5pcF8yX2lwNDwvYT4oYWRkcjIpLCBtYXNrKSk8L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+Q2hlY2sgaWYgdHdvIGlwIGFkZHJlc3NlcyBhcmUgc2hhcmUgdGhlIHNhbWUgbmV0d29yaywgZm9yIGEgc3BlY2lmaWMgbmV0bWFzay4gPC9wPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImdhM2EyMTIzZjBiYmY2ZmU4NDNjODU0MmUzNDljNjgwZWIiIG5hbWU9ImdhM2EyMTIzZjBiYmY2ZmU4NDNjODU0MmUzNDljNjgwZWIiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTNhMjEyM2YwYmJmNmZlODQzYzg1NDJlMzQ5YzY4MGViIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcF9hZGRyX25ldGNtcDwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBpcF9hZGRyX25ldGNtcDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFkZHIxPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyMjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bWFzazwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2dhZDFiYmJlNGM5M2VhMjM2ODY2M2U5MDgxNDk1M2I5MjkiPmlwX2FkZHJfbmV0X2VxPC9hPigoYWRkcjEpLCAoYWRkcjIpLCAobWFzaykpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2lwYWRkcl9odG1sX2dhZDFiYmJlNGM5M2VhMjM2ODY2M2U5MDgxNDk1M2I5MjkiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2dhZDFiYmJlNGM5M2VhMjM2ODY2M2U5MDgxNDk1M2I5MjkiPmlwX2FkZHJfbmV0X2VxPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBpcF9hZGRyX25ldF9lcShhZGRyMSwgYWRkcjIsIG1hc2spPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwX2FkZHIuaDoyMDQ8L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PGRsIGNsYXNzPSJkZXByZWNhdGVkIj48ZHQ+PGI+PGEgY2xhc3M9ImVsIiBocmVmPSJkZXByZWNhdGVkLmh0bWwjX2RlcHJlY2F0ZWQwMDAwMTEiPkRlcHJlY2F0ZWQ8L2E+PC9iPjwvZHQ+PGRkPlJlbmFtZWQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FkMWJiYmU0YzkzZWEyMzY4NjYzZTkwODE0OTUzYjkyOSI+aXBfYWRkcl9uZXRfZXE8L2E+IDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3IiBuYW1lPSJnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E4YWMyNjg2NDE3ZWMyOTc0YmIwYjNmYzZlZTBlZTFhNyI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+aXBfYWRkcl96b25lbGVzc19lcTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBpcF9hZGRyX3pvbmVsZXNzX2VxPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWRkcjE8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFkZHIyPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+ICAoKElQX0dFVF9UWVBFKGFkZHIxKSAhPSBJUF9HRVRfVFlQRShhZGRyMikpID8gMCA6IChJUF9JU19WNl9WQUwoKihhZGRyMSkpID8gXDwvZGl2PgorPGRpdiBjbGFzcz0ibGluZSI+ICBpcDZfYWRkcl96b25lbGVzc19lcSg8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19pcDZhZGRyLmh0bWwjZ2EwNmU3NWJjZDE5ODAxMmI1YmEzOTQ4MGMyMzM2MDhiZCI+aXBfMl9pcDY8L2E+KGFkZHIxKSwgPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPmlwXzJfaXA2PC9hPihhZGRyMikpIDogXDwvZGl2PgorPGRpdiBjbGFzcz0ibGluZSI+ICBpcDRfYWRkcl9lcSg8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2FkNzI2OGE0OTZiN2UzZjg3MmVmZWNkODU5ZWJhNmYwMyI+aXBfMl9pcDQ8L2E+KGFkZHIxKSwgPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiPmlwXzJfaXA0PC9hPihhZGRyMikpKSk8L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+Q2hlY2sgaWYgdHdvIGlwIGFkZHJlc3NlcyBhcmUgZXF1YWwsIGlnbm9yaW5nIHRoZSB6b25lLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2FiZTQzYjE1NDUzM2I3MzU4NWM0ZTU4ZjU2ODM3MGVkZSIgbmFtZT0iZ2FiZTQzYjE1NDUzM2I3MzU4NWM0ZTU4ZjU2ODM3MGVkZSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhYmU0M2IxNTQ1MzNiNzM1ODVjNGU1OGY1NjgzNzBlZGUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPklQX0FOWV9UWVBFPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIElQX0FOWV9UWVBFJiMxNjA7JiMxNjA7JiMxNjA7KCZhbXA7aXBfYWRkcl9hbnlfdHlwZSk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5NYWNybyByZXByZXNlbnRpbmcgdGhlICdhbnknIGFkZHJlc3MuIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPlR5cGVkZWYgRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iZ2EzMzVhOGM5ZGY2NjMxOWU4OGExYTUyOTA0N2NlMGExZSIgbmFtZT0iZ2EzMzVhOGM5ZGY2NjMxOWU4OGExYTUyOTA0N2NlMGExZSI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMzM1YThjOWRmNjYzMTllODhhMWE1MjkwNDdjZTBhMWUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwX2FkZHJfdDwvaDI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faXBhZGRyLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwYWRkci5qcwppbmRleCBhNDNlOGFhLi4zZDQyOTQ3IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9faXBhZGRyLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcGFkZHIuanMKQEAgLTUsNiArNSwxOSBAQAogICAgIFsgImlwX2FkZHIiLCAic3RydWN0aXBfX2FkZHIuaHRtbCIsIFsKICAgICAgIFsgInR5cGUiLCAic3RydWN0aXBfX2FkZHIuaHRtbCNhNjZlYWE4ZTkwNTFlNzEwMmJmOWYwYzE5NWZiZTU1NWEiLCBudWxsIF0KICAgICBdIF0sCisgICAgWyAiaXBfYWRkcl9jbXAiLCAiZ3JvdXBfX2lwYWRkci5odG1sI2dhMDA4YzljOTJkNzcwY2MwMzBlYTA1NGU2YjI1OTgzNWEiLCBudWxsIF0sCisgICAgWyAiaXBfYWRkcl9jbXBfem9uZWxlc3MiLCAiZ3JvdXBfX2lwYWRkci5odG1sI2dhZGI2NmY2ZDVmYTkyNmVkNGIwZTY5ZGI1OGRmZmNiZTQiLCBudWxsIF0sCisgICAgWyAiaXBfYWRkcl9lcSIsICJncm91cF9faXBhZGRyLmh0bWwjZ2E1YjQwMTU4YmRmZmE0YjBjODFjNGVlNzcwNjZlNmIyOCIsIG51bGwgXSwKKyAgICBbICJpcF9hZGRyX2lzYW55IiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYTI3OTExODg5MGU2YTkwYWE3NDAwNTFmYjhiMGNjNWY0IiwgbnVsbCBdLAorICAgIFsgImlwX2FkZHJfaXNhbnlfdmFsIiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYWNkOGY1YWExNTFjZmY5NjZmZDI4MzY4Yjg1ZjM4YzA1IiwgbnVsbCBdLAorICAgIFsgImlwX2FkZHJfaXNicm9hZGNhc3QiLCAiZ3JvdXBfX2lwYWRkci5odG1sI2dhYTMzNDU3MDZlM2FhOGIzMmRkNjMwYzE5NWIwNTNlNzUiLCBudWxsIF0sCisgICAgWyAiaXBfYWRkcl9pc2xpbmtsb2NhbCIsICJncm91cF9faXBhZGRyLmh0bWwjZ2EzM2JjMDc5YmFhZjUxM2E5YTczODFiOTUzMWExZjY1MyIsIG51bGwgXSwKKyAgICBbICJpcF9hZGRyX2lzbG9vcGJhY2siLCAiZ3JvdXBfX2lwYWRkci5odG1sI2dhMGZjOGJmNjY2MjgwOTI3NDc1MDg2ODY4M2IzYTQyMmUiLCBudWxsIF0sCisgICAgWyAiaXBfYWRkcl9pc211bHRpY2FzdCIsICJncm91cF9faXBhZGRyLmh0bWwjZ2EyMTcwZDNlZTEzZGQyMjcyMjIyMjIyOGU3YjFjNTc1MiIsIG51bGwgXSwKKyAgICBbICJpcF9hZGRyX25ldF9lcSIsICJncm91cF9faXBhZGRyLmh0bWwjZ2FkMWJiYmU0YzkzZWEyMzY4NjYzZTkwODE0OTUzYjkyOSIsIG51bGwgXSwKKyAgICBbICJpcF9hZGRyX25ldGNtcCIsICJncm91cF9faXBhZGRyLmh0bWwjZ2EzYTIxMjNmMGJiZjZmZTg0M2M4NTQyZTM0OWM2ODBlYiIsIG51bGwgXSwKKyAgICBbICJpcF9hZGRyX3pvbmVsZXNzX2VxIiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3IiwgbnVsbCBdLAorICAgIFsgIklQX0FOWV9UWVBFIiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYWJlNDNiMTU0NTMzYjczNTg1YzRlNThmNTY4MzcwZWRlIiwgbnVsbCBdLAogICAgIFsgImlwX2FkZHJfdCIsICJncm91cF9faXBhZGRyLmh0bWwjZ2EzMzVhOGM5ZGY2NjMxOWU4OGExYTUyOTA0N2NlMGExZSIsIG51bGwgXSwKICAgICBbICJsd2lwX2lwX2FkZHJfdHlwZSIsICJncm91cF9faXBhZGRyLmh0bWwjZ2FmMjE0MmYwZGZkY2M5MzhlMmRiMTZhYTc0NWVkNTg1YyIsIFsKICAgICAgIFsgIklQQUREUl9UWVBFX1Y0IiwgImdyb3VwX19pcGFkZHIuaHRtbCNnZ2FmMjE0MmYwZGZkY2M5MzhlMmRiMTZhYTc0NWVkNTg1Y2FjZTQ3ZmE4MjYwOGRlZWIxYzFjN2MyYzg5MWViNTA0OSIsIG51bGwgXSwKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19pcGVyZi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwZXJmLmh0bWwKaW5kZXggNWE1ZTFjMC4uNTExNGYxYSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwZXJmLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2lwZXJmLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTE3LDcgKzExNyw3IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWM1MWM5YzQ0YTM4YmZhMTE0MGJkNDRiNzkzYTBhMDA0Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgotPHA+VGhpcyBpcyBhIHNpbXBsZSBwZXJmb3JtYW5jZSBtZWFzdXJpbmcgY2xpZW50L3NlcnZlciB0byBjaGVjayB5b3VyIGJhbmR3aXRoIHVzaW5nIGlQZXJmMiBvbiBhIFBDIGFzIHNlcnZlci9jbGllbnQuIEl0IGlzIGN1cnJlbnRseSBhIG1pbmltYWwgaW1wbGVtZW50YXRpb24gcHJvdmlkaW5nIGEgVENQIGNsaWVudC9zZXJ2ZXIgb25seS48L3A+Cis8cD5UaGlzIGlzIGEgc2ltcGxlIHBlcmZvcm1hbmNlIG1lYXN1cmluZyBjbGllbnQvc2VydmVyIHRvIGNoZWNrIHlvdXIgYmFuZHdpZHRoIHVzaW5nIGlQZXJmMiBvbiBhIFBDIGFzIHNlcnZlci9jbGllbnQuIEl0IGlzIGN1cnJlbnRseSBhIG1pbmltYWwgaW1wbGVtZW50YXRpb24gcHJvdmlkaW5nIGEgVENQIGNsaWVudC9zZXJ2ZXIgb25seS48L3A+CiA8aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KIDxhIGlkPSJnYWM1MWM5YzQ0YTM4YmZhMTE0MGJkNDRiNzkzYTBhMDA0IiBuYW1lPSJnYWM1MWM5YzQ0YTM4YmZhMTE0MGJkNDRiNzkzYTBhMDA0Ij48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FjNTFjOWM0NGEzOGJmYTExNDBiZDQ0Yjc5M2EwYTAwNCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bHdpcGVyZl9hYm9ydCgpPC9oMj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcC5odG1sCmluZGV4IGU2ZWUzMTguLmRkMjFmYzIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXAuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fYXNzZXJ0aW9ucy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX2Fzc2VydGlvbnMuaHRtbAppbmRleCA2MDVhN2YzLi4xMzk2YjM1IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fYXNzZXJ0aW9ucy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19hc3NlcnRpb25zLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX25vc3lzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fbm9zeXMuaHRtbAppbmRleCBkZjVlNmE5Li43MzY4YzgzIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fbm9zeXMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fbm9zeXMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTgsMTEgKzExOCwxMCBAQAogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPHA+VXNlIHRoaXMgbW9kZSBpZiB5b3UgZG8gbm90IHJ1biBhbiBPUyBvbiB5b3VyIHN5c3RlbS4gI2RlZmluZSBOT19TWVMgdG8gMS4gRmVlZCBpbmNvbWluZyBwYWNrZXRzIHRvIG5ldGlmLSZndDtpbnB1dChwYnVmLCBuZXRpZikgZnVuY3Rpb24gZnJvbSBtYWlubG9vcCwgPGVtPm5vdDwvZW0+IDxlbT5mcm9tPC9lbT4gPGVtPmludGVycnVwdDwvZW0+IDxlbT5jb250ZXh0PC9lbT4uIFlvdSBjYW4gYWxsb2NhdGUgYSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19wYnVmLmh0bWwiPlBhY2tldCBidWZmZXJzIChQQlVGKTwvYT4gaW4gaW50ZXJydXB0IGNvbnRleHQgYW5kIHB1dCB0aGVtIGludG8gYSBxdWV1ZSB3aGljaCBpcyBwcm9jZXNzZWQgZnJvbSBtYWlubG9vcC48YnIgIC8+Ci1DYWxsIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhODNjZmZkZjY5YWI2MGZkMGViYTlkMTdkMzYzZjk4ODMiPnN5c19jaGVja190aW1lb3V0cygpPC9hPiBwZXJpb2RpY2FsbHkgaW4gdGhlIG1haW5sb29wLjxiciAgLz4KLVBvcnRpbmc6IGltcGxlbWVudCBhbGwgZnVuY3Rpb25zIGluIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3N5c19fdGltZS5odG1sIj5UaW1lPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19wcm90Lmh0bWwiPkNyaXRpY2FsIHNlY3Rpb25zPC9hPiBhbmQgY29tcGlsZXJfYWJzdHJhY3Rpb24uPGJyICAvPgorIENhbGwgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E4M2NmZmRmNjlhYjYwZmQwZWJhOWQxN2QzNjNmOTg4MyI+c3lzX2NoZWNrX3RpbWVvdXRzKCk8L2E+IHBlcmlvZGljYWxseSBpbiB0aGUgbWFpbmxvb3AuPGJyICAvPgorIFBvcnRpbmc6IGltcGxlbWVudCBhbGwgZnVuY3Rpb25zIGluIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3N5c19fdGltZS5odG1sIj5UaW1lPC9hPiwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc3lzX19wcm90Lmh0bWwiPkNyaXRpY2FsIHNlY3Rpb25zPC9hPiBhbmQgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fY29tcGlsZXJfX2Fic3RyYWN0aW9uLmh0bWwiPkNvbXBpbGVyL3BsYXRmb3JtIGFic3RyYWN0aW9uPC9hPi48YnIgIC8+CiAgWW91IGNhbiBvbmx5IHVzZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19jYWxsYmFja3N0eWxlX19hcGkuaHRtbCI+InJhdyIgQVBJczwvYT4gaW4gdGhpcyBtb2RlLjxiciAgLz4KLVNhbXBsZSBjb2RlOjxiciAgLz4KLTwvcD48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+PHNwYW4gY2xhc3M9ImtleXdvcmR0eXBlIj52b2lkPC9zcGFuPjwvZGl2PgorIFNhbXBsZSBjb2RlOiA8L3A+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxzcGFuIGNsYXNzPSJrZXl3b3JkdHlwZSI+dm9pZDwvc3Bhbj48L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPmV0aF9tYWNfaXJxKCk8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPns8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8qIFNlcnZpY2UgTUFDIElSUSBoZXJlICovPC9zcGFuPjwvZGl2PgpAQCAtMTk3LDcgKzE5Niw2IEBACiA8ZGl2IGNsYXNzPSJsaW5lIj4gIDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LjxhIGNsYXNzPSJjb2RlIGhsX3ZhcmlhYmxlIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2EzMmZjYTZmZmQyOGJiOWFmM2Y4OTFhMzc4ODI3YTY3ZSI+bmFtZTwvYT5bMF0gPSA8c3BhbiBjbGFzcz0iY2hhcmxpdGVyYWwiPiYjMzk7ZSYjMzk7PC9zcGFuPjs8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4uPGEgY2xhc3M9ImNvZGUgaGxfdmFyaWFibGUiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYTMyZmNhNmZmZDI4YmI5YWYzZjg5MWEzNzg4MjdhNjdlIj5uYW1lPC9hPlsxXSA9IDxzcGFuIGNsYXNzPSJjaGFybGl0ZXJhbCI+JiMzOTswJiMzOTs8L3NwYW4+OzwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX25ldGlmX19pcDYuaHRtbCNnYWU4NjQyMTFhNWViMDUyZGViNWRhN2JjN2UzNDI3ZmI5Ij5uZXRpZl9jcmVhdGVfaXA2X2xpbmtsb2NhbF9hZGRyZXNzPC9hPigmYW1wOzxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCAxKTs8L2Rpdj4KLTxkaXYgY2xhc3M9ImxpbmUiPiAgPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4uPGEgY2xhc3M9ImNvZGUgaGxfdmFyaWFibGUiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWQ5OGJhZmI3NzMzYjQwZWY4OThlNTNkOTFmYmZhMjBmIj5pcDZfYXV0b2NvbmZpZ19lbmFibGVkPC9hPiA9IDE7PC9kaXY+CiA8ZGl2IGNsYXNzPSJsaW5lIj4gIDxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWRjODc4N2IyM2FjMGVlMDIzOTc5Y2JhZGY4NzgxM2Q0Ij5uZXRpZl9zZXRfc3RhdHVzX2NhbGxiYWNrPC9hPigmYW1wOzxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBuZXRpZl9zdGF0dXNfY2FsbGJhY2spOzwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FjOTBmMjkwZWRkMDA1MjM4ZDYyYWE5NGM0YWM5ZGVhMyI+bmV0aWZfc2V0X2RlZmF1bHQ8L2E+KCZhbXA7PGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pOzwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FmMTk2OTNiZTQwMWEyNjVhNTJkMmE1NmM2NTc1MzEyMSI+bmV0aWZfc2V0X3VwPC9hPigmYW1wOzxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTs8L2Rpdj4KQEAgLTI0NCwxNSArMjQyLDE1IEBACiA8ZGl2IGNsYXNzPSJsaW5lIj4gICAgPHNwYW4gY2xhc3M9ImNvbW1lbnQiPi8qIHlvdXIgYXBwbGljYXRpb24gZ29lcyBoZXJlICovPC9zcGFuPjwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICB9PC9kaXY+CiA8ZGl2IGNsYXNzPSJsaW5lIj59PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZXRoYXJwXzhjX2h0bWxfYTE5MjU4Yzc1YTM3NzhiNmVkMGM4MmY2M2E0MTk1MDJkIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9ImV0aGFycF84Yy5odG1sI2ExOTI1OGM3NWEzNzc4YjZlZDBjODJmNjNhNDE5NTAyZCI+ZXRoYXJwX291dHB1dDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGV0aGFycF9vdXRwdXQoc3RydWN0IG5ldGlmICpuZXRpZiwgc3RydWN0IHBidWYgKnEsIGNvbnN0IGlwNF9hZGRyX3QgKmlwYWRkcik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gZXRoYXJwLmM6NzkxPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZXRoYXJwXzhjX2h0bWxfYTE5MjU4Yzc1YTM3NzhiNmVkMGM4MmY2M2E0MTk1MDJkIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9ImV0aGFycF84Yy5odG1sI2ExOTI1OGM3NWEzNzc4YjZlZDBjODJmNjNhNDE5NTAyZCI+ZXRoYXJwX291dHB1dDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGV0aGFycF9vdXRwdXQoc3RydWN0IG5ldGlmICpuZXRpZiwgc3RydWN0IHBidWYgKnEsIGNvbnN0IGlwNF9hZGRyX3QgKmlwYWRkcik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gZXRoYXJwLmM6NzkyPC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZXRoaXA2XzhjX2h0bWxfYWI1MzI2NTQ2ZDMzMTc0ZjkxZjFmYjBjYzZkMzk4YmZkIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9ImV0aGlwNl84Yy5odG1sI2FiNTMyNjU0NmQzMzE3NGY5MWYxZmIwY2M2ZDM5OGJmZCI+ZXRoaXA2X291dHB1dDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGV0aGlwNl9vdXRwdXQoc3RydWN0IG5ldGlmICpuZXRpZiwgc3RydWN0IHBidWYgKnEsIGNvbnN0IGlwNl9hZGRyX3QgKmlwNmFkZHIpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGV0aGlwNi5jOjc5PC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2RoY3A0X2h0bWxfZ2EwYzUwOTY4ZDk4MTFhYTJhYTY3ZmFkYzA4ODVkNzQ0ZiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYTBjNTA5NjhkOTgxMWFhMmFhNjdmYWRjMDg4NWQ3NDRmIj5kaGNwX3N0YXJ0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgZGhjcF9zdGFydChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBkaGNwLmM6NzQyPC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2h0dHBkX2h0bWxfZ2FjMzY0MzA1Y2VlOTY5YTBiZTQzYzA3MTcyMmIxMzZlNiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9faHR0cGQuaHRtbCNnYWMzNjQzMDVjZWU5NjlhMGJlNDNjMDcxNzIyYjEzNmU2Ij5odHRwZF9pbml0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBodHRwZF9pbml0KHZvaWQpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGh0dHBkLmM6MjY3NTwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19kaGNwNF9odG1sX2dhMGM1MDk2OGQ5ODExYWEyYWE2N2ZhZGMwODg1ZDc0NGYiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2EwYzUwOTY4ZDk4MTFhYTJhYTY3ZmFkYzA4ODVkNzQ0ZiI+ZGhjcF9zdGFydDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGRoY3Bfc3RhcnQoc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gZGhjcC5jOjgxMDwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19odHRwZF9odG1sX2dhYzM2NDMwNWNlZTk2OWEwYmU0M2MwNzE3MjJiMTM2ZTYiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2h0dHBkLmh0bWwjZ2FjMzY0MzA1Y2VlOTY5YTBiZTQzYzA3MTcyMmIxMzZlNiI+aHR0cGRfaW5pdDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgaHR0cGRfaW5pdCh2b2lkKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBodHRwZC5jOjI2ODM8L2Rpdj48L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9yc19odG1sX2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnM4X3QgZXJyX3Q8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gZXJyLmg6OTY8L2Rpdj48L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9yc19odG1sX2dnYWUyZTY2YzdkMTNhZmM5MGZmZWNkNjE1MTY4MGZiYWRjYWEyNmMxNjNiODBiMWY2Nzg2Y2E4MWRhZGMxNGIwMGZiIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2dhZTJlNjZjN2QxM2FmYzkwZmZlY2Q2MTUxNjgwZmJhZGNhYTI2YzE2M2I4MGIxZjY3ODZjYTgxZGFkYzE0YjAwZmIiPkVSUl9PSzwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPkAgRVJSX09LPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGVyci5oOjU1PC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2lwNGFkZHJfaHRtbF9nYWU5MjBiNmU4MTYxMGEzOGNmOWFkYTUyMTE4ODA3ZWZmIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2FlOTIwYjZlODE2MTBhMzhjZjlhZGE1MjExODgwN2VmZiI+SVA0X0FERFJfQU5ZPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBJUDRfQUREUl9BTlk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXBfYWRkci5oOjM4ODwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19sd2lwX19ub3N5c19odG1sX2dhMGMxYTE4NDM5NTI0ZDJmNGE1ZTUxZDI1YzBjYTJjZTkiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2dhMGMxYTE4NDM5NTI0ZDJmNGE1ZTUxZDI1YzBjYTJjZTkiPmx3aXBfaW5pdDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbHdpcF9pbml0KHZvaWQpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGluaXQuYzozMzM8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbHdpcF9fbm9zeXNfaHRtbF9nYTU1MzJmOTNkNjhjODc0ZmI5OWM2ODFiZmYyMTY1Mzg1Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnYTU1MzJmOTNkNjhjODc0ZmI5OWM2ODFiZmYyMTY1Mzg1Ij5uZXRpZl9pbnB1dDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IG5ldGlmX2lucHV0KHN0cnVjdCBwYnVmICpwLCBzdHJ1Y3QgbmV0aWYgKmlucCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuYzoyMTc8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9faXA0YWRkcl9odG1sX2dhZTkyMGI2ZTgxNjEwYTM4Y2Y5YWRhNTIxMTg4MDdlZmYiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWU5MjBiNmU4MTYxMGEzOGNmOWFkYTUyMTE4ODA3ZWZmIj5JUDRfQUREUl9BTlk8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIElQNF9BRERSX0FOWTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcF9hZGRyLmg6NDE3PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2x3aXBfX25vc3lzX2h0bWxfZ2EwYzFhMTg0Mzk1MjRkMmY0YTVlNTFkMjVjMGNhMmNlOSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjZ2EwYzFhMTg0Mzk1MjRkMmY0YTVlNTFkMjVjMGNhMmNlOSI+bHdpcF9pbml0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBsd2lwX2luaXQodm9pZCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaW5pdC5jOjMzOTwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19sd2lwX19ub3N5c19odG1sX2dhNTUzMmY5M2Q2OGM4NzRmYjk5YzY4MWJmZjIxNjUzODUiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2dhNTUzMmY5M2Q2OGM4NzRmYjk5YzY4MWJmZjIxNjUzODUiPm5ldGlmX2lucHV0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgbmV0aWZfaW5wdXQoc3RydWN0IHBidWYgKnAsIHN0cnVjdCBuZXRpZiAqaW5wKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjIyODwvZGl2PjwvZGl2PgogPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19sd2lwX19ub3N5c19odG1sX2dhODNjZmZkZjY5YWI2MGZkMGViYTlkMTdkMzYzZjk4ODMiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2dhODNjZmZkZjY5YWI2MGZkMGViYTlkMTdkMzYzZjk4ODMiPnN5c19jaGVja190aW1lb3V0czwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgc3lzX2NoZWNrX3RpbWVvdXRzKHZvaWQpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IHRpbWVvdXRzLmM6MzUyPC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2x3aXBfX29wdHNfX21lbWNweV9odG1sX2dhOGM2ZTNjMWU0Zjc0YWNiMTYzNzYxODhkYmY4OTA5ZWMiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX21lbWNweS5odG1sI2dhOGM2ZTNjMWU0Zjc0YWNiMTYzNzYxODhkYmY4OTA5ZWMiPlNNRU1DUFk8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIFNNRU1DUFkoZHN0LCBzcmMsIGxlbik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gb3B0Lmg6MTQ1PC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX19mbGFnc19odG1sX2dhNzZhZDlkMGNmOWYwMjlkZjBhYjJhOTk4YzY0MDQwZGMiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmX19mbGFncy5odG1sI2dhNzZhZDlkMGNmOWYwMjlkZjBhYjJhOTk4YzY0MDQwZGMiPk5FVElGX0ZMQUdfRVRIRVJORVQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIE5FVElGX0ZMQUdfRVRIRVJORVQ8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoxMDE8L2Rpdj48L2Rpdj4KQEAgLTI2MCwzNCArMjU4LDMzIEBACiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX19mbGFnc19odG1sX2dhYjE0ZmJlMTQ0N2QyZmRiZGY1YWJjODdmNTFlYjY1MDgiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmX19mbGFncy5odG1sI2dhYjE0ZmJlMTQ0N2QyZmRiZGY1YWJjODdmNTFlYjY1MDgiPk5FVElGX0ZMQUdfTUxENjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgTkVUSUZfRkxBR19NTEQ2PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MTA3PC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX19mbGFnc19odG1sX2dhYzk0OTNiOTIzZDczM2M3M2Y2MDA2ZDk3MTQ4MjY1NTgiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmX19mbGFncy5odG1sI2dhYzk0OTNiOTIzZDczM2M3M2Y2MDA2ZDk3MTQ4MjY1NTgiPk5FVElGX0ZMQUdfSUdNUDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgTkVUSUZfRkxBR19JR01QPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MTA0PC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX19mbGFnc19odG1sX2dhZWY2NGZlMTVjODJiYzdiMjM1MzY2OTIzZTUxNzEwNGUiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmX19mbGFncy5odG1sI2dhZWY2NGZlMTVjODJiYzdiMjM1MzY2OTIzZTUxNzEwNGUiPk5FVElGX0ZMQUdfQlJPQURDQVNUPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBORVRJRl9GTEFHX0JST0FEQ0FTVDwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjg3PC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX19pcDZfaHRtbF9nYWU4NjQyMTFhNWViMDUyZGViNWRhN2JjN2UzNDI3ZmI5Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZl9faXA2Lmh0bWwjZ2FlODY0MjExYTVlYjA1MmRlYjVkYTdiYzdlMzQyN2ZiOSI+bmV0aWZfY3JlYXRlX2lwNl9saW5rbG9jYWxfYWRkcmVzczwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfY3JlYXRlX2lwNl9saW5rbG9jYWxfYWRkcmVzcyhzdHJ1Y3QgbmV0aWYgKm5ldGlmLCB1OF90IGZyb21fbWFjXzQ4Yml0KTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjE1MTU8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfX2lwNl9odG1sX2dhZTg2NDIxMWE1ZWIwNTJkZWI1ZGE3YmM3ZTM0MjdmYjkiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmX19pcDYuaHRtbCNnYWU4NjQyMTFhNWViMDUyZGViNWRhN2JjN2UzNDI3ZmI5Ij5uZXRpZl9jcmVhdGVfaXA2X2xpbmtsb2NhbF9hZGRyZXNzPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBuZXRpZl9jcmVhdGVfaXA2X2xpbmtsb2NhbF9hZGRyZXNzKHN0cnVjdCBuZXRpZiAqbmV0aWYsIHU4X3QgZnJvbV9tYWNfNDhiaXQpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmM6MTU1MTwvZGl2PjwvZGl2PgogPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9fbWliMl9odG1sX2dhMDU2NDE0Mzg3NzUwMTRiN2UxM2I5ZTU1ZWJhNDhiZWQiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmX19taWIyLmh0bWwjZ2EwNTY0MTQzODc3NTAxNGI3ZTEzYjllNTVlYmE0OGJlZCI+TUlCMl9TVEFUU19ORVRJRl9BREQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIE1JQjJfU1RBVFNfTkVUSUZfQUREKG4sIHgsIHZhbCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gc25tcC5oOjExMDwvZGl2PjwvZGl2PgogPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9fbWliMl9odG1sX2dhM2M1MmNhZjU2NmQzNzcwNWM2NTQ3ZjJkMDI1YWZkOWYiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmX19taWIyLmh0bWwjZ2EzYzUyY2FmNTY2ZDM3NzA1YzY1NDdmMmQwMjVhZmQ5ZiI+TUlCMl9TVEFUU19ORVRJRl9JTkM8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIE1JQjJfU1RBVFNfTkVUSUZfSU5DKG4sIHgpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IHNubXAuaDoxMDU8L2Rpdj48L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfX21pYjJfaHRtbF9nYTViZTFiOGNiYTFkNjdiZjZlN2Y4ODUxZWM5MWIxMGYwIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZl9fbWliMi5odG1sI2dhNWJlMWI4Y2JhMWQ2N2JmNmU3Zjg4NTFlYzkxYjEwZjAiPk1JQjJfSU5JVF9ORVRJRjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgTUlCMl9JTklUX05FVElGKG5ldGlmLCB0eXBlLCBzcGVlZCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gc25tcC5oOjExOTwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhMjIwNTU3NTlhMjVmNWQ2Y2VhN2U3ZGVhYjBhMDc0MzQiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EyMjA1NTc1OWEyNWY1ZDZjZWE3ZTdkZWFiMGEwNzQzNCI+bmV0aWZfYWRkPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+c3RydWN0IG5ldGlmICogbmV0aWZfYWRkKHN0cnVjdCBuZXRpZiAqbmV0aWYsIGNvbnN0IGlwNF9hZGRyX3QgKmlwYWRkciwgY29uc3QgaXA0X2FkZHJfdCAqbmV0bWFzaywgY29uc3QgaXA0X2FkZHJfdCAqZ3csIHZvaWQgKnN0YXRlLCBuZXRpZl9pbml0X2ZuIGluaXQsIG5ldGlmX2lucHV0X2ZuIGlucHV0KTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjI3NjwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhMzRlMzdhMWU4ZTM1ODc2MGRjMWM0Mzg4NzkyMmM3ZGIiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EzNGUzN2ExZThlMzU4NzYwZGMxYzQzODg3OTIyYzdkYiI+bmV0aWZfc2V0X2xpbmtfZG93bjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfc2V0X2xpbmtfZG93bihzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjEwMjk8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYWM5MGYyOTBlZGQwMDUyMzhkNjJhYTk0YzRhYzlkZWEzIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhYzkwZjI5MGVkZDAwNTIzOGQ2MmFhOTRjNGFjOWRlYTMiPm5ldGlmX3NldF9kZWZhdWx0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBuZXRpZl9zZXRfZGVmYXVsdChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjgyNTwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhZGM4Nzg3YjIzYWMwZWUwMjM5NzljYmFkZjg3ODEzZDQiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FkYzg3ODdiMjNhYzBlZTAyMzk3OWNiYWRmODc4MTNkNCI+bmV0aWZfc2V0X3N0YXR1c19jYWxsYmFjazwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfc2V0X3N0YXR1c19jYWxsYmFjayhzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBuZXRpZl9zdGF0dXNfY2FsbGJhY2tfZm4gc3RhdHVzX2NhbGxiYWNrKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjk2MDwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhZTBkMjk3NWYxODkyNzc5OTBlOWQ1Mjc2ZmRkOWU5ZWEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FlMGQyOTc1ZjE4OTI3Nzk5MGU5ZDUyNzZmZGQ5ZTllYSI+bmV0aWZfc2V0X2xpbmtfdXA8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG5ldGlmX3NldF9saW5rX3VwKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmM6OTkxPC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX2h0bWxfZ2FmMTk2OTNiZTQwMWEyNjVhNTJkMmE1NmM2NTc1MzEyMSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWYxOTY5M2JlNDAxYTI2NWE1MmQyYTU2YzY1NzUzMTIxIj5uZXRpZl9zZXRfdXA8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG5ldGlmX3NldF91cChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjg0NzwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhMjIwNTU3NTlhMjVmNWQ2Y2VhN2U3ZGVhYjBhMDc0MzQiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EyMjA1NTc1OWEyNWY1ZDZjZWE3ZTdkZWFiMGEwNzQzNCI+bmV0aWZfYWRkPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+c3RydWN0IG5ldGlmICogbmV0aWZfYWRkKHN0cnVjdCBuZXRpZiAqbmV0aWYsIGNvbnN0IGlwNF9hZGRyX3QgKmlwYWRkciwgY29uc3QgaXA0X2FkZHJfdCAqbmV0bWFzaywgY29uc3QgaXA0X2FkZHJfdCAqZ3csIHZvaWQgKnN0YXRlLCBuZXRpZl9pbml0X2ZuIGluaXQsIG5ldGlmX2lucHV0X2ZuIGlucHV0KTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjI4NzwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhMzRlMzdhMWU4ZTM1ODc2MGRjMWM0Mzg4NzkyMmM3ZGIiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2EzNGUzN2ExZThlMzU4NzYwZGMxYzQzODg3OTIyYzdkYiI+bmV0aWZfc2V0X2xpbmtfZG93bjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfc2V0X2xpbmtfZG93bihzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjEwNTY8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYWM5MGYyOTBlZGQwMDUyMzhkNjJhYTk0YzRhYzlkZWEzIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhYzkwZjI5MGVkZDAwNTIzOGQ2MmFhOTRjNGFjOWRlYTMiPm5ldGlmX3NldF9kZWZhdWx0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBuZXRpZl9zZXRfZGVmYXVsdChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjg0OTwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhZGM4Nzg3YjIzYWMwZWUwMjM5NzljYmFkZjg3ODEzZDQiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FkYzg3ODdiMjNhYzBlZTAyMzk3OWNiYWRmODc4MTNkNCI+bmV0aWZfc2V0X3N0YXR1c19jYWxsYmFjazwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfc2V0X3N0YXR1c19jYWxsYmFjayhzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBuZXRpZl9zdGF0dXNfY2FsbGJhY2tfZm4gc3RhdHVzX2NhbGxiYWNrKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjk4NzwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhZTBkMjk3NWYxODkyNzc5OTBlOWQ1Mjc2ZmRkOWU5ZWEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FlMGQyOTc1ZjE4OTI3Nzk5MGU5ZDUyNzZmZGQ5ZTllYSI+bmV0aWZfc2V0X2xpbmtfdXA8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG5ldGlmX3NldF9saW5rX3VwKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmM6MTAxODwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhZjE5NjkzYmU0MDFhMjY1YTUyZDJhNTZjNjU3NTMxMjEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FmMTk2OTNiZTQwMWEyNjVhNTJkMmE1NmM2NTc1MzEyMSI+bmV0aWZfc2V0X3VwPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBuZXRpZl9zZXRfdXAoc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuYzo4NzE8L2Rpdj48L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fcGJ1Zl9odG1sX2dhOGJiOWM1ZDU0YTA2OTk1YjFjNjdjZTY5NWVhZDk5NjkiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX3BidWYuaHRtbCNnYThiYjljNWQ1NGEwNjk5NWIxYzY3Y2U2OTVlYWQ5OTY5Ij5wYnVmX2FsbG9jPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+c3RydWN0IHBidWYgKiBwYnVmX2FsbG9jKHBidWZfbGF5ZXIgbGF5ZXIsIHUxNl90IGxlbmd0aCwgcGJ1Zl90eXBlIHR5cGUpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IHBidWYuYzoyMjQ8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fcGJ1Zl9odG1sX2dhYjBkZDY5NmZiNGI2YmM2NWU1NDg5NDQ1ODRmMTczOGIiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX3BidWYuaHRtbCNnYWIwZGQ2OTZmYjRiNmJjNjVlNTQ4OTQ0NTg0ZjE3MzhiIj5wYnVmX2ZyZWU8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj51OF90IHBidWZfZnJlZShzdHJ1Y3QgcGJ1ZiAqcCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gcGJ1Zi5jOjcyNTwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19wYnVmX2h0bWxfZ2FjMmYxZjU4ZmQzNjA0MmU4MmFmNDZmNTAxNTcyMDg5OSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fcGJ1Zi5odG1sI2dhYzJmMWY1OGZkMzYwNDJlODJhZjQ2ZjUwMTU3MjA4OTkiPnBidWZfY29weV9wYXJ0aWFsPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dTE2X3QgcGJ1Zl9jb3B5X3BhcnRpYWwoY29uc3Qgc3RydWN0IHBidWYgKmJ1Ziwgdm9pZCAqZGF0YXB0ciwgdTE2X3QgbGVuLCB1MTZfdCBvZmZzZXQpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IHBidWYuYzoxMDYxPC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX3BidWZfaHRtbF9nYWQxZTMxZTM3MDI3MTMzNWIxOTcyNzJhZjI3MjRjYTg1Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19wYnVmLmh0bWwjZ2FkMWUzMWUzNzAyNzEzMzViMTk3MjcyYWYyNzI0Y2E4NSI+cGJ1Zl90YWtlPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgcGJ1Zl90YWtlKHN0cnVjdCBwYnVmICpidWYsIGNvbnN0IHZvaWQgKmRhdGFwdHIsIHUxNl90IGxlbik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gcGJ1Zi5jOjEyMzA8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fcGJ1Zl9odG1sX2dhYjBkZDY5NmZiNGI2YmM2NWU1NDg5NDQ1ODRmMTczOGIiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX3BidWYuaHRtbCNnYWIwZGQ2OTZmYjRiNmJjNjVlNTQ4OTQ0NTg0ZjE3MzhiIj5wYnVmX2ZyZWU8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj51OF90IHBidWZfZnJlZShzdHJ1Y3QgcGJ1ZiAqcCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gcGJ1Zi5jOjcyNzwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19wYnVmX2h0bWxfZ2FjMmYxZjU4ZmQzNjA0MmU4MmFmNDZmNTAxNTcyMDg5OSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fcGJ1Zi5odG1sI2dhYzJmMWY1OGZkMzYwNDJlODJhZjQ2ZjUwMTU3MjA4OTkiPnBidWZfY29weV9wYXJ0aWFsPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dTE2X3QgcGJ1Zl9jb3B5X3BhcnRpYWwoY29uc3Qgc3RydWN0IHBidWYgKmJ1Ziwgdm9pZCAqZGF0YXB0ciwgdTE2X3QgbGVuLCB1MTZfdCBvZmZzZXQpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IHBidWYuYzoxMDU4PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX3BidWZfaHRtbF9nYWQxZTMxZTM3MDI3MTMzNWIxOTcyNzJhZjI3MjRjYTg1Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19wYnVmLmh0bWwjZ2FkMWUzMWUzNzAyNzEzMzViMTk3MjcyYWYyNzI0Y2E4NSI+cGJ1Zl90YWtlPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgcGJ1Zl90YWtlKHN0cnVjdCBwYnVmICpidWYsIGNvbnN0IHZvaWQgKmRhdGFwdHIsIHUxNl90IGxlbik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gcGJ1Zi5jOjEyMjc8L2Rpdj48L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fcGJ1Zl9odG1sX2dnYWI3ZTBlMzJmY2MyOTJjMGQ3MTA3NzIxNzY2ZWQ5MmZiYWU5NjkzNDcxMjczODdiOWI1OWEyM2NjZDI0Yjc2ZDIxIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19wYnVmLmh0bWwjZ2dhYjdlMGUzMmZjYzI5MmMwZDcxMDc3MjE3NjZlZDkyZmJhZTk2OTM0NzEyNzM4N2I5YjU5YTIzY2NkMjRiNzZkMjEiPlBCVUZfUE9PTDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPkAgUEJVRl9QT09MPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IHBidWYuaDoxNjc8L2Rpdj48L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fcGJ1Zl9odG1sX2dnYWVlMWJhYTU5YmIyZjg1YmE1NzViNWE4NjE5YWMxZWJmYTIxMTE2NjU0ZmJhYjZkNWE0ZGZlYjg3YTFiYjhmMGJhIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19wYnVmLmh0bWwjZ2dhZWUxYmFhNTliYjJmODViYTU3NWI1YTg2MTlhYzFlYmZhMjExMTY2NTRmYmFiNmQ1YTRkZmViODdhMWJiOGYwYmEiPlBCVUZfUkFXPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+QCBQQlVGX1JBVzwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBwYnVmLmg6MTExPC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXA0X19hZGRyXzhjX2h0bWxfYWYwMWU0MDZjNWY0NGEzMjVkNzc5YzRiNDI4MmExNzQ0Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9ImlwNF9fYWRkcl84Yy5odG1sI2FmMDFlNDA2YzVmNDRhMzI1ZDc3OWM0YjQyODJhMTc0NCI+aXA0YWRkcl9udG9hPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+Y2hhciAqIGlwNGFkZHJfbnRvYShjb25zdCBpcDRfYWRkcl90ICphZGRyKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcDRfYWRkci5jOjI2OTwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjYwPC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbF9hMWMxNzFkYjYwOTdiYmI2ZjA5ZjYzNTQ5YTY2ZTAwZWEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhMWMxNzFkYjYwOTdiYmI2ZjA5ZjYzNTQ5YTY2ZTAwZWEiPm5ldGlmOjpmbGFnczwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnU4X3QgZmxhZ3M8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDozNDU8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sX2EzMmZjYTZmZmQyOGJiOWFmM2Y4OTFhMzc4ODI3YTY3ZSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2EzMmZjYTZmZmQyOGJiOWFmM2Y4OTFhMzc4ODI3YTY3ZSI+bmV0aWY6Om5hbWU8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5jaGFyIG5hbWVbMl08L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDozNDc8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sX2E4ZTFkY2ZlNjVkYjQ4N2ZlZWNkMjQ0MzU1ZjM5MjE1ZSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2E4ZTFkY2ZlNjVkYjQ4N2ZlZWNkMjQ0MzU1ZjM5MjE1ZSI+bmV0aWY6Om91dHB1dDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPm5ldGlmX291dHB1dF9mbiBvdXRwdXQ8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyOTQ8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sX2E4ZmU0ZjFiN2IwZDcxMDIxNjI4N2RhOTYxNTE2NGE1YyI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2E4ZmU0ZjFiN2IwZDcxMDIxNjI4N2RhOTYxNTE2NGE1YyI+bmV0aWY6OmlucHV0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+bmV0aWZfaW5wdXRfZm4gaW5wdXQ8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyODg8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sX2FjMzgzODMzNzljZmYyMmM0MDIxNTZmZWM3MWMxOTYxNyI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FjMzgzODMzNzljZmYyMmM0MDIxNTZmZWM3MWMxOTYxNyI+bmV0aWY6Om91dHB1dF9pcDY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5uZXRpZl9vdXRwdXRfaXA2X2ZuIG91dHB1dF9pcDY8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDozMDU8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sX2FjYTdkNTZiNGUwZjgyMmIwY2VkMjg4NWYyMjJiOGQ0OCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FjYTdkNTZiNGUwZjgyMmIwY2VkMjg4NWYyMjJiOGQ0OCI+bmV0aWY6Om10dTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnUxNl90IG10dTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjMzNTwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWxfYWNhYWFjOWI0MTVhN2JlNzNlYjhhMjg3YzhlZDE4YThkIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWNhYWFjOWI0MTVhN2JlNzNlYjhhMjg3YzhlZDE4YThkIj5uZXRpZjo6bGlua291dHB1dDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPm5ldGlmX2xpbmtvdXRwdXRfZm4gbGlua291dHB1dDwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI5OTwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWxfYWQ5OGJhZmI3NzMzYjQwZWY4OThlNTNkOTFmYmZhMjBmIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWQ5OGJhZmI3NzMzYjQwZWY4OThlNTNkOTFmYmZhMjBmIj5uZXRpZjo6aXA2X2F1dG9jb25maWdfZW5hYmxlZDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnU4X3QgaXA2X2F1dG9jb25maWdfZW5hYmxlZDwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjM1MzwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWxfYWVlOTY3OTY1ZDk5OWZjMWE0YzQwYTY2NzA5MzA0ZTY5Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWVlOTY3OTY1ZDk5OWZjMWE0YzQwYTY2NzA5MzA0ZTY5Ij5uZXRpZjo6aHdhZGRyPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dThfdCBod2FkZHJbNlVdPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MzQxPC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbF9hZmUxMTgxNTYxY2IxNjI0MWYzY2I1ZWQwMWU1NjdkNDIiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhZmUxMTgxNTYxY2IxNjI0MWYzY2I1ZWQwMWU1NjdkNDIiPm5ldGlmOjpod2FkZHJfbGVuPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dThfdCBod2FkZHJfbGVuPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MzQzPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNjk8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sX2ExYzE3MWRiNjA5N2JiYjZmMDlmNjM1NDlhNjZlMDBlYSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2ExYzE3MWRiNjA5N2JiYjZmMDlmNjM1NDlhNjZlMDBlYSI+bmV0aWY6OmZsYWdzPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dThfdCBmbGFnczwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjM1NDwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWxfYTMyZmNhNmZmZDI4YmI5YWYzZjg5MWEzNzg4MjdhNjdlIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYTMyZmNhNmZmZDI4YmI5YWYzZjg5MWEzNzg4MjdhNjdlIj5uZXRpZjo6bmFtZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmNoYXIgbmFtZVsyXTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjM1NjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWxfYThlMWRjZmU2NWRiNDg3ZmVlY2QyNDQzNTVmMzkyMTVlIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYThlMWRjZmU2NWRiNDg3ZmVlY2QyNDQzNTVmMzkyMTVlIj5uZXRpZjo6b3V0cHV0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+bmV0aWZfb3V0cHV0X2ZuIG91dHB1dDwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjMwMzwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWxfYThmZTRmMWI3YjBkNzEwMjE2Mjg3ZGE5NjE1MTY0YTVjIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYThmZTRmMWI3YjBkNzEwMjE2Mjg3ZGE5NjE1MTY0YTVjIj5uZXRpZjo6aW5wdXQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5uZXRpZl9pbnB1dF9mbiBpbnB1dDwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI5NzwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWxfYWMzODM4MzM3OWNmZjIyYzQwMjE1NmZlYzcxYzE5NjE3Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWMzODM4MzM3OWNmZjIyYzQwMjE1NmZlYzcxYzE5NjE3Ij5uZXRpZjo6b3V0cHV0X2lwNjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPm5ldGlmX291dHB1dF9pcDZfZm4gb3V0cHV0X2lwNjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjMxNDwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWxfYWNhN2Q1NmI0ZTBmODIyYjBjZWQyODg1ZjIyMmI4ZDQ4Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwjYWNhN2Q1NmI0ZTBmODIyYjBjZWQyODg1ZjIyMmI4ZDQ4Ij5uZXRpZjo6bXR1PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dTE2X3QgbXR1PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MzQ0PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbF9hY2FhYWM5YjQxNWE3YmU3M2ViOGEyODdjOGVkMThhOGQiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhY2FhYWM5YjQxNWE3YmU3M2ViOGEyODdjOGVkMThhOGQiPm5ldGlmOjpsaW5rb3V0cHV0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+bmV0aWZfbGlua291dHB1dF9mbiBsaW5rb3V0cHV0PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MzA4PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbF9hZWU5Njc5NjVkOTk5ZmMxYTRjNDBhNjY3MDkzMDRlNjkiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCNhZWU5Njc5NjVkOTk5ZmMxYTRjNDBhNjY3MDkzMDRlNjkiPm5ldGlmOjpod2FkZHI8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj51OF90IGh3YWRkcls2VV08L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDozNTA8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sX2FmZTExODE1NjFjYjE2MjQxZjNjYjVlZDAxZTU2N2Q0MiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FmZTExODE1NjFjYjE2MjQxZjNjYjVlZDAxZTU2N2Q0MiI+bmV0aWY6Omh3YWRkcl9sZW48L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj51OF90IGh3YWRkcl9sZW48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDozNTI8L2Rpdj48L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RwYnVmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0cGJ1Zi5odG1sIj5wYnVmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBwYnVmLmg6MTg2PC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0cGJ1Zl9odG1sX2E1MjU5ZTdlYzI5YmFiOWMwOTk5YjY0ZjJlODZiNDExZiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwjYTUyNTllN2VjMjliYWI5YzA5OTliNjRmMmU4NmI0MTFmIj5wYnVmOjp0b3RfbGVuPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dTE2X3QgdG90X2xlbjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBwYnVmLmg6MjAwPC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0cGJ1Zl9odG1sX2E4ZDMyZGMzZTk2NDM2OWQ0ZWVjNjM4ZmMzN2ZiYzQ2MCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwjYThkMzJkYzNlOTY0MzY5ZDRlZWM2MzhmYzM3ZmJjNDYwIj5wYnVmOjpwYXlsb2FkPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCAqIHBheWxvYWQ8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gcGJ1Zi5oOjE5MTwvZGl2PjwvZGl2PgpAQCAtMzExLDcgKzMwOCw3IEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxwPlByb2Nlc3MgcmVjZWl2ZWQgZXRoZXJuZXQgZnJhbWVzLiBVc2luZyB0aGlzIGZ1bmN0aW9uIGluc3RlYWQgb2YgZGlyZWN0bHkgY2FsbGluZyBpcF9pbnB1dCBhbmQgcGFzc2luZyBBUlAgZnJhbWVzIHRocm91Z2ggZXRoYXJwIGluIGV0aGVybmV0aWZfaW5wdXQsIHRoZSBBUlAgY2FjaGUgaXMgcHJvdGVjdGVkIGZyb20gY29uY3VycmVudCBhY2Nlc3MuPGJyICAvPgotRG9uJ3QgY2FsbCBkaXJlY3RseSwgcGFzcyB0byA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMjIwNTU3NTlhMjVmNWQ2Y2VhN2U3ZGVhYjBhMDc0MzQiPm5ldGlmX2FkZCgpPC9hPiBhbmQgY2FsbCBuZXRpZi0mZ3Q7aW5wdXQoKS48L3A+CisgRG9uJ3QgY2FsbCBkaXJlY3RseSwgcGFzcyB0byA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMjIwNTU3NTlhMjVmNWQ2Y2VhN2U3ZGVhYjBhMDc0MzQiPm5ldGlmX2FkZCgpPC9hPiBhbmQgY2FsbCBuZXRpZi0mZ3Q7aW5wdXQoKS48L3A+CiA8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KICAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+cDwvdGQ+PHRkPnRoZSByZWNlaXZlZCBwYWNrZXQsIHAtJmd0O3BheWxvYWQgcG9pbnRpbmcgdG8gdGhlIGV0aGVybmV0IGhlYWRlciA8L3RkPjwvdHI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0cy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHMuaHRtbAppbmRleCA2OThmYWI3Li5iMzA1YzI4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0cy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2FjZC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2FjZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxZWZjNGUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fYWNkLmh0bWwKQEAgLTAsMCArMSwxMzcgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwczovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZW4tVVMiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQveGh0bWw7Y2hhcnNldD1VVEYtOCIvPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT0xMSIvPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb3h5Z2VuIDEuMTIuMCIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIi8+Cis8dGl0bGU+bHdJUDogQUNEPC90aXRsZT4KKzxsaW5rIGhyZWY9InRhYnMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcXVlcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZHluc2VjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iY2xpcGJvYXJkLmpzIj48L3NjcmlwdD4KKzxsaW5rIGhyZWY9Im5hdnRyZWUuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJuYXZ0cmVlZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJuYXZ0cmVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc2l6ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJjb29raWUuanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0ic2VhcmNoL3NlYXJjaC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlYXJjaC9zZWFyY2hkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlYXJjaC9zZWFyY2guanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0iZG94eWdlbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRvcCI+PCEtLSBkbyBub3QgcmVtb3ZlIHRoaXMgZGl2LCBpdCBpcyBjbG9zZWQgYnkgZG94eWdlbiEgLS0+Cis8ZGl2IGlkPSJ0aXRsZWFyZWEiPgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+CisgPHRib2R5PgorIDx0ciBpZD0icHJvamVjdHJvdyI+CisgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgorICAgPC9kaXY+CisgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CisgIDwvdGQ+CisgPC90cj4KKyA8L3Rib2R5PgorPC90YWJsZT4KKzwvZGl2PgorPCEtLSBlbmQgaGVhZGVyIHBhcnQgLS0+Cis8IS0tIEdlbmVyYXRlZCBieSBEb3h5Z2VuIDEuMTIuMCAtLT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLwordmFyIHNlYXJjaEJveCA9IG5ldyBTZWFyY2hCb3goInNlYXJjaEJveCIsICJzZWFyY2gvIiwnLmh0bWwnKTsKKy8qIEBsaWNlbnNlLWVuZCAqLworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKSB7IGNvZGVmb2xkLmluaXQoMCk7IH0pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lbnVkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lbnUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCiskKGZ1bmN0aW9uKCkgeworICBpbml0TWVudSgnJyx0cnVlLGZhbHNlLCdzZWFyY2gucGhwJywnU2VhcmNoJyx0cnVlKTsKKyAgJChmdW5jdGlvbigpIHsgaW5pdF9zZWFyY2goKTsgfSk7Cit9KTsKKy8qIEBsaWNlbnNlLWVuZCAqLworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJtYWluLW5hdiI+PC9kaXY+Cis8L2Rpdj48IS0tIHRvcCAtLT4KKzxkaXYgaWQ9InNpZGUtbmF2IiBjbGFzcz0idWktcmVzaXphYmxlIHNpZGUtbmF2LXJlc2l6YWJsZSI+CisgIDxkaXYgaWQ9Im5hdi10cmVlIj4KKyAgICA8ZGl2IGlkPSJuYXYtdHJlZS1jb250ZW50cyI+CisgICAgICA8ZGl2IGlkPSJuYXYtc3luYyIgY2xhc3M9InN5bmMiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBpZD0ic3BsaXRiYXIiIHN0eWxlPSItbW96LXVzZXItc2VsZWN0Om5vbmU7IiAKKyAgICAgICBjbGFzcz0idWktcmVzaXphYmxlLWhhbmRsZSI+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKXtpbml0TmF2VHJlZSgnZ3JvdXBfX2x3aXBfX29wdHNfX2FjZC5odG1sJywnJyk7IGluaXRSZXNpemFibGUodHJ1ZSk7IH0pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9ImRvYy1jb250ZW50Ij4KKzwhLS0gd2luZG93IHNob3dpbmcgdGhlIGZpbHRlciBvcHRpb25zIC0tPgorPGRpdiBpZD0iTVNlYXJjaFNlbGVjdFdpbmRvdyIKKyAgICAgb25tb3VzZW92ZXI9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RTaG93KCkiCisgICAgIG9ubW91c2VvdXQ9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RIaWRlKCkiCisgICAgIG9ua2V5ZG93bj0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdEtleShldmVudCkiPgorPC9kaXY+CisKKzwhLS0gaWZyYW1lIHNob3dpbmcgdGhlIHNlYXJjaCByZXN1bHRzIChjbG9zZWQgYnkgZGVmYXVsdCkgLS0+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0c1dpbmRvdyI+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0cyI+Cis8ZGl2IGNsYXNzPSJTUlBhZ2UiPgorPGRpdiBpZD0iU1JJbmRleCI+Cis8ZGl2IGlkPSJTUlJlc3VsdHMiPjwvZGl2PgorPGRpdiBjbGFzcz0iU1JTdGF0dXMiIGlkPSJMb2FkaW5nIj5Mb2FkaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9IlNlYXJjaGluZyI+U2VhcmNoaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9Ik5vTWF0Y2hlcyI+Tm8gTWF0Y2hlczwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImhlYWRlciI+CisgIDxkaXYgY2xhc3M9InN1bW1hcnkiPgorPGEgaHJlZj0iI2RlZmluZS1tZW1iZXJzIj5NYWNyb3M8L2E+ICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5BQ0Q8ZGl2IGNsYXNzPSJpbmdyb3VwcyI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcC5odG1sIj5sd0lQPC9hPiAmcmFxdW87IDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHMuaHRtbCI+T3B0aW9ucyAobHdpcG9wdHMuaCk8L2E+ICZyYXF1bzsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19faXB2NC5odG1sIj5JUHY0PC9hPjwvZGl2PjwvZGl2PjwvZGl2PgorPC9kaXY+PCEtLWhlYWRlci0tPgorPGRpdiBjbGFzcz0iY29udGVudHMiPgorPHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZGVmaW5lLW1lbWJlcnMiIG5hbWU9ImRlZmluZS1tZW1iZXJzIj48L2E+CitNYWNyb3M8L2gyPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTZmMTY2Nzg2NjMzNWNhZDNhN2IxMjIxYmQwYjI3NGU3IiBpZD0icl9nYTZmMTY2Nzg2NjMzNWNhZDNhN2IxMjIxYmQwYjI3NGU3Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNmYxNjY3ODY2MzM1Y2FkM2E3YjEyMjFiZDBiMjc0ZTciPkxXSVBfQUNEPC9hPiYjMTYwOyYjMTYwOyYjMTYwOyg8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hdXRvaXAuaHRtbCNnYWFmMWIzYTA4OTgyNzIyMzU4OWJhZjFiN2Y0ZjU3MDY5Ij5MV0lQX0FVVE9JUDwvYT4gfHwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhZGQwYzgyMzI5ZmNjYjc4MzQyZTNlZWY5ODIzM2FhNTUiPkxXSVBfREhDUF9ET0VTX0FDRF9DSEVDSzwvYT4pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E2ZjE2Njc4NjYzMzVjYWQzYTdiMTIyMWJkMGIyNzRlNyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzwvdGFibGU+Cis8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KKzxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPk1hY3JvIERlZmluaXRpb24gRG9jdW1lbnRhdGlvbjwvaDI+Cis8YSBpZD0iZ2E2ZjE2Njc4NjYzMzVjYWQzYTdiMTIyMWJkMGIyNzRlNyIgbmFtZT0iZ2E2ZjE2Njc4NjYzMzVjYWQzYTdiMTIyMWJkMGIyNzRlNyI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhNmYxNjY3ODY2MzM1Y2FkM2E3YjEyMjFiZDBiMjc0ZTciPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPkxXSVBfQUNEPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIExXSVBfQUNEJiMxNjA7JiMxNjA7JiMxNjA7KDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2F1dG9pcC5odG1sI2dhYWYxYjNhMDg5ODI3MjIzNTg5YmFmMWI3ZjRmNTcwNjkiPkxXSVBfQVVUT0lQPC9hPiB8fCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwjZ2FkZDBjODIzMjlmY2NiNzgzNDJlM2VlZjk4MjMzYWE1NSI+TFdJUF9ESENQX0RPRVNfQUNEX0NIRUNLPC9hPik8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5MV0lQX0FDRD09MTogRW5hYmxlIEFDRCBtb2R1bGUuIEFDRCBtb2R1bGUgaXMgbmVlZGVkIHdoZW4gdXNpbmcgQVVUT0lQLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgorPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KKzwhLS0gc3RhcnQgZm9vdGVyIHBhcnQgLS0+Cis8ZGl2IGlkPSJuYXYtcGF0aCIgY2xhc3M9Im5hdnBhdGgiPjwhLS0gaWQgaXMgbmVlZGVkIGZvciB0cmVldmlldyBmdW5jdGlvbiEgLS0+CisgIDx1bD4KKyAgICA8bGkgY2xhc3M9ImZvb3RlciI+R2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmRveHlnZW4ub3JnL2luZGV4Lmh0bWwiPjxpbWcgY2xhc3M9ImZvb3RlciIgc3JjPSJkb3h5Z2VuLnN2ZyIgd2lkdGg9IjEwNCIgaGVpZ2h0PSIzMSIgYWx0PSJkb3h5Z2VuIi8+PC9hPiAxLjEyLjAgPC9saT4KKyAgPC91bD4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2FjZC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19hY2QuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTk3OGQwMgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19hY2QuanMKQEAgLTAsMCArMSw0IEBACit2YXIgZ3JvdXBfX2x3aXBfX29wdHNfX2FjZCA9CitbCisgICAgWyAiTFdJUF9BQ0QiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX2FjZC5odG1sI2dhNmYxNjY3ODY2MzM1Y2FkM2E3YjEyMjFiZDBiMjc0ZTciLCBudWxsIF0KK107ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2FycC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2FycC5odG1sCmluZGV4IGQ3NGI1M2YuLjMzZmQ4MDQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19hcnAuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fYXJwLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMjc0LDcgKzI3NCwxMSBAQAogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5MV0lQX0VUSEVSTkVUPT0xOiBlbmFibGUgZXRoZXJuZXQgc3VwcG9ydCBldmVuIHRob3VnaCBBUlAgbWlnaHQgYmUgZGlzYWJsZWQgPC9wPgorPHA+TFdJUF9WTEFOX1BDUD09MTogRW5hYmxlIG91dGdvaW5nIFZMQU4gdGFnZ25pbmcgb2YgZnJhbWVzIG9uIGEgcGVyLVBDQiBiYXNpcyBmb3IgUW9TIHB1cnBvc2VzLiBXaXRoIHRoaXMgZmVhdHVyZSBlbmFibGVkLCBlYWNoIFBDQiBoYXMgYSBuZXcgdmFyaWFibGU6ICJuZXRpZl9oaW50cy50Y2kiIChUYWcgQ29udHJvbCBJZGVudGlmaWVyKS4gVGhlIFRDSSBjb250YWlucyB0aHJlZSBmaWVsZHM6IFZJRCwgQ0ZJIGFuZCBQQ1AuPC9wPjx1bD4KKzxsaT5WSUQgaXMgdGhlIFZMQU4gSUQsIHdoaWNoIHNob3VsZCBiZSBzZXQgdG8gemVyby48L2xpPgorPGxpPlRoZSAiQ0ZJIiBiaXQgaXMgdXNlZCB0byBlbmFibGUgb3IgZGlzYWJsZSBWTEFOIHRhZ3MgZm9yIHRoZSBQQ0IuPC9saT4KKzxsaT5QQ1AgKFByaW9yaXR5IENvZGUgUG9pbnQpIGlzIGEgMyBiaXQgZmllbGQgdXNlZCBmb3IgRXRoZXJuZXQgbGV2ZWwgUW9TLiBTZWUgcGNiX3RjaV8qKCkgZnVuY3Rpb25zIHRvIGdldC9zZXQvY2xlYXIgdGhpcy4gTFdJUF9FVEhFUk5FVD09MTogZW5hYmxlIGV0aGVybmV0IHN1cHBvcnQgZXZlbiB0aG91Z2ggQVJQIG1pZ2h0IGJlIGRpc2FibGVkIDwvbGk+Cis8L3VsPgogCiA8L2Rpdj4KIDwvZGl2PgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2F1dG9pcC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2F1dG9pcC5odG1sCmluZGV4IDc0NDcxZTkuLjU0MDU5YWMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19hdXRvaXAuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fYXV0b2lwLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2NhbGxiYWNrLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fY2FsbGJhY2suaHRtbAppbmRleCA2M2UzNWJmLi5hMWY1YWFkIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fY2FsbGJhY2suaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fY2FsbGJhY2suaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fY2hlY2tzdW0uaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19jaGVja3N1bS5odG1sCmluZGV4IDBhODA4ZjAuLjY1OWUwYjIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19jaGVja3N1bS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19jaGVja3N1bS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19kZWJ1Zy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2RlYnVnLmh0bWwKaW5kZXggZTFjNjE2Zi4uOTMxMzNjNSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2RlYnVnLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2RlYnVnLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2RlYnVnbXNnLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuaHRtbAppbmRleCBiNDVjYTg3Li4zNjFlZjNjIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xNzUsNiArMTc1LDggQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhOTc5MjdjZWVjYWJjZGI1ZjQxNzM1YmYzNzJhMDVjZWUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FmYWVlNTIyZTdmMzJkODEwMjIyMTVlMTgwNWUzMDNhNSIgaWQ9InJfZ2FmYWVlNTIyZTdmMzJkODEwMjIyMTVlMTgwNWUzMDNhNSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWZhZWU1MjJlN2YzMmQ4MTAyMjIxNWUxODA1ZTMwM2E1Ij5BVVRPSVBfREVCVUc8L2E+JiMxNjA7JiMxNjA7JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGVidWdnaW5nX19sZXZlbHMuaHRtbCNnYWRhYjFjZGMzZjQ1OTM5YTNhNWM5YTNkN2UwNDk4N2UxIj5MV0lQX0RCR19PRkY8L2E+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FmYWVlNTIyZTdmMzJkODEwMjIyMTVlMTgwNWUzMDNhNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTg3ZmYwYzYwNzdiOWEzNmIwNWMzZmM1YjhmYWU4YWQzIiBpZD0icl9nYTg3ZmYwYzYwNzdiOWEzNmIwNWMzZmM1YjhmYWU4YWQzIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhODdmZjBjNjA3N2I5YTM2YjA1YzNmYzViOGZhZThhZDMiPkFDRF9ERUJVRzwvYT4mIzE2MDsmIzE2MDsmIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kZWJ1Z2dpbmdfX2xldmVscy5odG1sI2dhZGFiMWNkYzNmNDU5MzlhM2E1YzlhM2Q3ZTA0OTg3ZTEiPkxXSVBfREJHX09GRjwvYT48L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTg3ZmYwYzYwNzdiOWEzNmIwNWMzZmM1YjhmYWU4YWQzIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhYmE1NWRhMjM1MmM5OWQ4MTM3Njc5MTNlNWUzNmJlMWYiIGlkPSJyX2dhYmE1NWRhMjM1MmM5OWQ4MTM3Njc5MTNlNWUzNmJlMWYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FiYTU1ZGEyMzUyYzk5ZDgxMzc2NzkxM2U1ZTM2YmUxZiI+RE5TX0RFQlVHPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RlYnVnZ2luZ19fbGV2ZWxzLmh0bWwjZ2FkYWIxY2RjM2Y0NTkzOWEzYTVjOWEzZDdlMDQ5ODdlMSI+TFdJUF9EQkdfT0ZGPC9hPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYmE1NWRhMjM1MmM5OWQ4MTM3Njc5MTNlNWUzNmJlMWYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FjMmY5NzI2NzU2Yjc4ZDRkN2M0MjViMDQyMmE3NzZjZSIgaWQ9InJfZ2FjMmY5NzI2NzU2Yjc4ZDRkN2M0MjViMDQyMmE3NzZjZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWMyZjk3MjY3NTZiNzhkNGQ3YzQyNWIwNDIyYTc3NmNlIj5JUDZfREVCVUc8L2E+JiMxNjA7JiMxNjA7JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGVidWdnaW5nX19sZXZlbHMuaHRtbCNnYWRhYjFjZGMzZjQ1OTM5YTNhNWM5YTNkN2UwNDk4N2UxIj5MV0lQX0RCR19PRkY8L2E+PC90ZD48L3RyPgpAQCAtMTg0LDYgKzE4NiwyMSBAQAogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPGgyIGNsYXNzPSJncm91cGhlYWRlciI+TWFjcm8gRGVmaW5pdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KKzxhIGlkPSJnYTg3ZmYwYzYwNzdiOWEzNmIwNWMzZmM1YjhmYWU4YWQzIiBuYW1lPSJnYTg3ZmYwYzYwNzdiOWEzNmIwNWMzZmM1YjhmYWU4YWQzIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E4N2ZmMGM2MDc3YjlhMzZiMDVjM2ZjNWI4ZmFlOGFkMyI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+QUNEX0RFQlVHPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIEFDRF9ERUJVRyYjMTYwOyYjMTYwOyYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2RlYnVnZ2luZ19fbGV2ZWxzLmh0bWwjZ2FkYWIxY2RjM2Y0NTkzOWEzYTVjOWEzZDdlMDQ5ODdlMSI+TFdJUF9EQkdfT0ZGPC9hPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkFDRF9ERUJVRzogRW5hYmxlIGRlYnVnZ2luZyBpbiA8YSBjbGFzcz0iZWwiIGhyZWY9ImFjZF84Yy5odG1sIj5hY2QuYzwvYT4uIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxhIGlkPSJnYTY3MTAwOTU1MDIxNmY3ZGMwM2U2N2JhNTc1MWUzMTYwIiBuYW1lPSJnYTY3MTAwOTU1MDIxNmY3ZGMwM2U2N2JhNTc1MWUzMTYwIj48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E2NzEwMDk1NTAyMTZmN2RjMDNlNjdiYTU3NTFlMzE2MCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+QVBJX0xJQl9ERUJVRzwvaDI+CiAKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5qcwppbmRleCA3MDUyNTNmLi42MWI1YjU5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2RlYnVnbXNnLmpzCkBAIC0xLDYgKzEsNyBAQAogdmFyIGdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZyA9CiBbCiAgICAgWyAiTFdJUF9EQkdfTUlOX0xFVkVMIGFuZCBMV0lQX0RCR19UWVBFU19PTiB2YWx1ZXMiLCAiZ3JvdXBfX2RlYnVnZ2luZ19fbGV2ZWxzLmh0bWwiLCAiZ3JvdXBfX2RlYnVnZ2luZ19fbGV2ZWxzIiBdLAorICAgIFsgIkFDRF9ERUJVRyIsICJncm91cF9fbHdpcF9fb3B0c19fZGVidWdtc2cuaHRtbCNnYTg3ZmYwYzYwNzdiOWEzNmIwNWMzZmM1YjhmYWU4YWQzIiwgbnVsbCBdLAogICAgIFsgIkFQSV9MSUJfREVCVUciLCAiZ3JvdXBfX2x3aXBfX29wdHNfX2RlYnVnbXNnLmh0bWwjZ2E2NzEwMDk1NTAyMTZmN2RjMDNlNjdiYTU3NTFlMzE2MCIsIG51bGwgXSwKICAgICBbICJBUElfTVNHX0RFQlVHIiwgImdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhNDI3OWQ3ZmY5Zjk4NmIyZmYzZWIwNjhiYjAxMmI2OTciLCBudWxsIF0sCiAgICAgWyAiQVVUT0lQX0RFQlVHIiwgImdyb3VwX19sd2lwX19vcHRzX19kZWJ1Z21zZy5odG1sI2dhZmFlZTUyMmU3ZjMyZDgxMDIyMjE1ZTE4MDVlMzAzYTUiLCBudWxsIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbAppbmRleCBmN2FjZGE1Li42NmMwM2ViIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTA3LDggKzEwNyw4IEBACiBNYWNyb3M8L2gyPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYThhNmVjNjJkYzEyMTA2NGFjNTkxYjFmZDg1NjdiZWU5IiBpZD0icl9nYThhNmVjNjJkYzEyMTA2NGFjNTkxYjFmZDg1NjdiZWU5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhOGE2ZWM2MmRjMTIxMDY0YWM1OTFiMWZkODU2N2JlZTkiPkxXSVBfREhDUDwvYT4mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E4YTZlYzYyZGMxMjEwNjRhYzU5MWIxZmQ4NTY3YmVlOSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYWIyZDkxZGU3YjJmY2U4NzliMGEyMTM2ODJlMWIwYjY5IiBpZD0icl9nYWIyZDkxZGU3YjJmY2U4NzliMGEyMTM2ODJlMWIwYjY5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYjJkOTFkZTdiMmZjZTg3OWIwYTIxMzY4MmUxYjBiNjkiPkRIQ1BfRE9FU19BUlBfQ0hFQ0s8L2E+JiMxNjA7JiMxNjA7JiMxNjA7KDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhOGE2ZWM2MmRjMTIxMDY0YWM1OTFiMWZkODU2N2JlZTkiPkxXSVBfREhDUDwvYT4gJmFtcDsmYW1wOyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hcnAuaHRtbCNnYTk2MDlhMDE0YmJhNDYzOGNjMTkxZDZhOGY5NTU2Yzg3Ij5MV0lQX0FSUDwvYT4pPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FiMmQ5MWRlN2IyZmNlODc5YjBhMjEzNjgyZTFiMGI2OSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWRkMGM4MjMyOWZjY2I3ODM0MmUzZWVmOTgyMzNhYTU1IiBpZD0icl9nYWRkMGM4MjMyOWZjY2I3ODM0MmUzZWVmOTgyMzNhYTU1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZGQwYzgyMzI5ZmNjYjc4MzQyZTNlZWY5ODIzM2FhNTUiPkxXSVBfREhDUF9ET0VTX0FDRF9DSEVDSzwvYT4mIzE2MDsmIzE2MDsmIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYThhNmVjNjJkYzEyMTA2NGFjNTkxYjFmZDg1NjdiZWU5Ij5MV0lQX0RIQ1A8L2E+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FkZDBjODIzMjlmY2NiNzgzNDJlM2VlZjk4MjMzYWE1NSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTNjMjk4M2NiZDIyODAxMWRkM2UxOGNiNDE3ZTdlNDIzIiBpZD0icl9nYTNjMjk4M2NiZDIyODAxMWRkM2UxOGNiNDE3ZTdlNDIzIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhM2MyOTgzY2JkMjI4MDExZGQzZTE4Y2I0MTdlN2U0MjMiPkxXSVBfREhDUF9CT09UUF9GSUxFPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzA8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTNjMjk4M2NiZDIyODAxMWRkM2UxOGNiNDE3ZTdlNDIzIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhMmNjMTgzMTVlZGNkNWZmYzA4M2QxMjU2ZjdkMjJhODMiIGlkPSJyX2dhMmNjMTgzMTVlZGNkNWZmYzA4M2QxMjU2ZjdkMjJhODMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EyY2MxODMxNWVkY2Q1ZmZjMDgzZDEyNTZmN2QyMmE4MyI+TFdJUF9ESENQX0dFVF9OVFBfU1JWPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzA8L3RkPjwvdHI+CkBAIC0xMTcsMjQgKzExNywxMSBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E5ZDAxNGUzZjdkYzllMWU3YzdkZWNkODY1MmJhNjVlMiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTYwY2NjMjBmYmIwOGJlMjRiNWQ1ZjU5OWRkNDdhNmE2IiBpZD0icl9nYTYwY2NjMjBmYmIwOGJlMjRiNWQ1ZjU5OWRkNDdhNmE2Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNjBjY2MyMGZiYjA4YmUyNGI1ZDVmNTk5ZGQ0N2E2YTYiPkxXSVBfREhDUF9NQVhfRE5TX1NFUlZFUlM8L2E+JiMxNjA7JiMxNjA7JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZG5zLmh0bWwjZ2E5Zjk4ODFjODg3YThhY2ViOTc2NTgyMGMyZGJkZjI5MiI+RE5TX01BWF9TRVJWRVJTPC9hPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNjBjY2MyMGZiYjA4YmUyNGI1ZDVmNTk5ZGQ0N2E2YTYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FkNmIwMzBmOGU4Mjg2NjY5NTM2NjE1NzhmOTM2ZTYwNSIgaWQ9InJfZ2FkNmIwMzBmOGU4Mjg2NjY5NTM2NjE1NzhmOTM2ZTYwNSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWQ2YjAzMGY4ZTgyODY2Njk1MzY2MTU3OGY5MzZlNjA1Ij5MV0lQX0RIQ1BfRElTQ09WRVJfQUREX0hPU1ROQU1FPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzA8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWQ2YjAzMGY4ZTgyODY2Njk1MzY2MTU3OGY5MzZlNjA1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPGgyIGNsYXNzPSJncm91cGhlYWRlciI+TWFjcm8gRGVmaW5pdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KLTxhIGlkPSJnYWIyZDkxZGU3YjJmY2U4NzliMGEyMTM2ODJlMWIwYjY5IiBuYW1lPSJnYWIyZDkxZGU3YjJmY2U4NzliMGEyMTM2ODJlMWIwYjY5Ij48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FiMmQ5MWRlN2IyZmNlODc5YjBhMjEzNjgyZTFiMGI2OSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+REhDUF9ET0VTX0FSUF9DSEVDSzwvaDI+Ci0KLTxkaXYgY2xhc3M9Im1lbWl0ZW0iPgotPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgotICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBESENQX0RPRVNfQVJQX0NIRUNLJiMxNjA7JiMxNjA7JiMxNjA7KDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhOGE2ZWM2MmRjMTIxMDY0YWM1OTFiMWZkODU2N2JlZTkiPkxXSVBfREhDUDwvYT4gJmFtcDsmYW1wOyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hcnAuaHRtbCNnYTk2MDlhMDE0YmJhNDYzOGNjMTkxZDZhOGY5NTU2Yzg3Ij5MV0lQX0FSUDwvYT4pPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgIDwvdGFibGU+Ci08L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+REhDUF9ET0VTX0FSUF9DSEVDSz09MTogRG8gYW4gQVJQIGNoZWNrIG9uIHRoZSBvZmZlcmVkIGFkZHJlc3MuIDwvcD4KLQotPC9kaXY+Ci08L2Rpdj4KIDxhIGlkPSJnYThhNmVjNjJkYzEyMTA2NGFjNTkxYjFmZDg1NjdiZWU5IiBuYW1lPSJnYThhNmVjNjJkYzEyMTA2NGFjNTkxYjFmZDg1NjdiZWU5Ij48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E4YTZlYzYyZGMxMjEwNjRhYzU5MWIxZmQ4NTY3YmVlOSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+TFdJUF9ESENQPC9oMj4KIApAQCAtMTY1LDYgKzE1MiwzNiBAQAogCiA8L2Rpdj4KIDwvZGl2PgorPGEgaWQ9ImdhZDZiMDMwZjhlODI4NjY2OTUzNjYxNTc4ZjkzNmU2MDUiIG5hbWU9ImdhZDZiMDMwZjhlODI4NjY2OTUzNjYxNTc4ZjkzNmU2MDUiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYWQ2YjAzMGY4ZTgyODY2Njk1MzY2MTU3OGY5MzZlNjA1Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5MV0lQX0RIQ1BfRElTQ09WRVJfQUREX0hPU1ROQU1FPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIExXSVBfREhDUF9ESVNDT1ZFUl9BRERfSE9TVE5BTUUmIzE2MDsmIzE2MDsmIzE2MDswPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+TFdJUF9ESENQX0RJU0NPVkVSX0FERF9IT1NUTkFNRTogU2V0IHRvIDEgdG8gaW5jbHVkZSBob3N0bmFtZSBvcHQgaW4gZGlzY292ZXIgcGFja2V0cy4gSWYgdGhlIGhvc3RuYW1lIGlzIG5vdCBzZXQgaW4gdGhlIERJU0NPVkVSIHBhY2tldCwgdGhlbiBzb21lIHNlcnZlcnMgbWlnaHQgaXNzdWUgYW4gT0ZGRVIgd2l0aCBob3N0bmFtZSBjb25maWd1cmVkIGFuZCBjb25zZXF1ZW50bHkgcmVqZWN0IHRoZSBSRVFVRVNUIHdpdGggYW55IG90aGVyIGhvc3RuYW1lLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2FkZDBjODIzMjlmY2NiNzgzNDJlM2VlZjk4MjMzYWE1NSIgbmFtZT0iZ2FkZDBjODIzMjlmY2NiNzgzNDJlM2VlZjk4MjMzYWE1NSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhZGQwYzgyMzI5ZmNjYjc4MzQyZTNlZWY5ODIzM2FhNTUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPkxXSVBfREhDUF9ET0VTX0FDRF9DSEVDSzwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBMV0lQX0RIQ1BfRE9FU19BQ0RfQ0hFQ0smIzE2MDsmIzE2MDsmIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYThhNmVjNjJkYzEyMTA2NGFjNTkxYjFmZDg1NjdiZWU5Ij5MV0lQX0RIQ1A8L2E+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+TFdJUF9ESENQX0RPRVNfQUNEX0NIRUNLPT0xOiBQZXJmb3JtIGFkZHJlc3MgY29uZmxpY3QgZGV0ZWN0aW9uIG9uIHRoZSBkaGNwIGFkZHJlc3MuIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxhIGlkPSJnYTJjYzE4MzE1ZWRjZDVmZmMwODNkMTI1NmY3ZDIyYTgzIiBuYW1lPSJnYTJjYzE4MzE1ZWRjZDVmZmMwODNkMTI1NmY3ZDIyYTgzIj48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2EyY2MxODMxNWVkY2Q1ZmZjMDgzZDEyNTZmN2QyMmE4MyI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+TFdJUF9ESENQX0dFVF9OVFBfU1JWPC9oMj4KIApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGhjcC5qcwppbmRleCAyNjc0NTFkLi42NDhlOWMwIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGhjcC5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGhjcC5qcwpAQCAtMSw4ICsxLDkgQEAKIHZhciBncm91cF9fbHdpcF9fb3B0c19fZGhjcCA9CiBbCi0gICAgWyAiREhDUF9ET0VTX0FSUF9DSEVDSyIsICJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhYjJkOTFkZTdiMmZjZTg3OWIwYTIxMzY4MmUxYjBiNjkiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9ESENQIiwgImdyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwjZ2E4YTZlYzYyZGMxMjEwNjRhYzU5MWIxZmQ4NTY3YmVlOSIsIG51bGwgXSwKICAgICBbICJMV0lQX0RIQ1BfQk9PVFBfRklMRSIsICJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhM2MyOTgzY2JkMjI4MDExZGQzZTE4Y2I0MTdlN2U0MjMiLCBudWxsIF0sCisgICAgWyAiTFdJUF9ESENQX0RJU0NPVkVSX0FERF9IT1NUTkFNRSIsICJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhZDZiMDMwZjhlODI4NjY2OTUzNjYxNTc4ZjkzNmU2MDUiLCBudWxsIF0sCisgICAgWyAiTFdJUF9ESENQX0RPRVNfQUNEX0NIRUNLIiwgImdyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwjZ2FkZDBjODIzMjlmY2NiNzgzNDJlM2VlZjk4MjMzYWE1NSIsIG51bGwgXSwKICAgICBbICJMV0lQX0RIQ1BfR0VUX05UUF9TUlYiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYTJjYzE4MzE1ZWRjZDVmZmMwODNkMTI1NmY3ZDIyYTgzIiwgbnVsbCBdLAogICAgIFsgIkxXSVBfREhDUF9NQVhfRE5TX1NFUlZFUlMiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYTYwY2NjMjBmYmIwOGJlMjRiNWQ1ZjU5OWRkNDdhNmE2IiwgbnVsbCBdLAogICAgIFsgIkxXSVBfREhDUF9NQVhfTlRQX1NFUlZFUlMiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYTlkMDE0ZTNmN2RjOWUxZTdjN2RlY2Q4NjUyYmE2NWUyIiwgbnVsbCBdCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGhjcHY2Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZGhjcHY2Lmh0bWwKaW5kZXggMGExZWFiNi4uNmQ4OWE0YiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3B2Ni5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19kaGNwdjYuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZG5zLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fZG5zLmh0bWwKaW5kZXggM2I2ZDZlMC4uNDQ3MzdlMiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2Rucy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19kbnMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xNTUsNyArMTU1LDcgQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPHA+RE5TX0xPQ0FMX0hPU1RMSVNUOiBJbXBsZW1lbnRzIGEgbG9jYWwgaG9zdC10by1hZGRyZXNzIGxpc3QuIElmIGVuYWJsZWQsIHlvdSBoYXZlIHRvIGRlZmluZSBhbiBpbml0aWFsaXplcjogI2RlZmluZSBETlNfTE9DQUxfSE9TVExJU1RfSU5JVCB7RE5TX0xPQ0FMX0hPU1RMSVNUX0VMRU0oImhvc3RfaXA0IiwgSVBBRERSNF9JTklUX0JZVEVTKDEsMiwzLDQpKSwgXCBETlNfTE9DQUxfSE9TVExJU1RfRUxFTSgiaG9zdF9pcDYiLCBJUEFERFI2X0lOSVRfSE9TVCgxMjMsIDIzNCwgMzQ1LCA0NTYpfTwvcD4KLTxwPkluc3RlYWQsIHlvdSBjYW4gYWxzbyB1c2UgYW4gZXh0ZXJuYWwgZnVuY3Rpb246ICNkZWZpbmUgRE5TX0xPT0tVUF9MT0NBTF9FWFRFUk4oeCkgZXh0ZXJuIGVycl90IG15X2xvb2t1cF9mdW5jdGlvbihjb25zdCBjaGFyICpuYW1lLCBpcF9hZGRyX3QgKmFkZHIsIHU4X3QgZG5zX2FkZHJ0eXBlKSB0aGF0IGxvb2tzIHVwIHRoZSBJUCBhZGRyZXNzIGFuZCByZXR1cm5zIEVSUl9PSyBpZiBmb3VuZCAoTFdJUF9ETlNfQUREUlRZUEVfeHh4IGlzIHBhc3NlZCBpbiBkbnNfYWRkcnR5cGUpLiA8L3A+Cis8cD5JbnN0ZWFkLCB5b3UgY2FuIGFsc28gdXNlIGFuIGV4dGVybmFsIGZ1bmN0aW9uOiAjZGVmaW5lIEROU19MT09LVVBfTE9DQUxfRVhURVJOKG5hbWUsIG5hbWVsZW4sIGFkZHIsIGRuc19hZGRydHlwZSkgbXlfbG9va3VwX2Z1bmN0aW9uKG5hbWUsIG5hbWVsZW4sIGFkZHIsIGRuc19hZGRydHlwZSkgd2l0aCBmdW5jdGlvbiBzaWduYXR1cmU6IGV4dGVybiBlcnJfdCBteV9sb29rdXBfZnVuY3Rpb24oY29uc3QgY2hhciAqbmFtZSwgc2l6ZV90IG5hbWVsZW4sIGlwX2FkZHJfdCAqYWRkciwgdThfdCBkbnNfYWRkcnR5cGUpIHRoYXQgbG9va3MgdXAgdGhlIElQIGFkZHJlc3MgYW5kIHJldHVybnMgRVJSX09LIGlmIGZvdW5kIChMV0lQX0ROU19BRERSVFlQRV94eHggaXMgcGFzc2VkIGluIGRuc19hZGRydHlwZSkuIDwvcD4KIAogPC9kaXY+CiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19ob29rcy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2hvb2tzLmh0bWwKaW5kZXggNGJhYjJkOS4uZjg0OGExYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2hvb2tzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2hvb2tzLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMjAxLDcgKzIwMSw3IEBACiA8cD48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTQwNjhiMzMxM2UzMmY3MTFiYTAxNjIxNWZjMmM4ODZhIj5MV0lQX0hPT0tfREhDUDZfQVBQRU5EX09QVElPTlMobmV0aWYsIGRoY3A2LCBzdGF0ZSwgbXNnLCBtc2dfdHlwZSwgb3B0aW9uc19sZW5fcHRyLCBtYXhfbGVuKTwvYT46IENhbGxlZCBmcm9tIHZhcmlvdXMgZGhjcDYgZnVuY3Rpb25zIHdoZW4gc2VuZGluZyBhIERIQ1A2IG1lc3NhZ2UuIFRoaXMgaG9vayBpcyBjYWxsZWQganVzdCBiZWZvcmUgdGhlIERIQ1A2IG1lc3NhZ2UgaXMgc2VudCwgc28gdGhlIG9wdGlvbnMgYXJlIGF0IHRoZSBlbmQgb2YgYSBESENQNiBtZXNzYWdlLiBTaWduYXR1cmU6PC9wPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48c3BhbiBjbGFzcz0ia2V5d29yZHR5cGUiPnZvaWQ8L3NwYW4+IG15X2hvb2soPHNwYW4gY2xhc3M9ImtleXdvcmQiPnN0cnVjdDwvc3Bhbj4gPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCA8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RydWN0PC9zcGFuPiBkaGNwNiAqZGhjcCwgdThfdCBzdGF0ZSwgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnN0cnVjdDwvc3Bhbj4gPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RkaGNwNl9fbXNnLmh0bWwiPmRoY3A2X21zZzwvYT4gKm1zZyw8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICB1OF90IG1zZ190eXBlLCB1MTZfdCAqb3B0aW9uc19sZW5fcHRyKTs8L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RkaGNwNl9fbXNnX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0ZGhjcDZfX21zZy5odG1sIj5kaGNwNl9tc2c8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGRoY3A2Lmg6NTk8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2MDwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjY5PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPiBBcmd1bWVudHM6PC9wPjx1bD4KIDxsaT5uZXRpZjogc3RydWN0IG5ldGlmIHRoYXQgdGhlIHBhY2tldCB3aWxsIGJlIHNlbnQgdGhyb3VnaDwvbGk+CiA8bGk+ZGhjcDY6IHN0cnVjdCBkaGNwNiBvbiB0aGF0IG5ldGlmPC9saT4KQEAgLTgwNCw3ICs4MDQsNyBAQAogPGxpPm9wdGxlbjogdGNwIG9wdGlvbiBsZW5ndGg8L2xpPgogPGxpPm9wdDFsZW46IHRjcCBvcHRpb24gbGVuZ3RoIDFzdCBwYXJ0PC9saT4KIDxsaT5vcHQyOiBpZiB0aGlzIGlzICE9IE5VTEwsIHRjcCBvcHRpb25zIGFyZSBzcGxpdCBhbW9uZyAyIHBidWZzLiBJbiB0aGF0IGNhc2UsIG9wdGlvbnMgc3RhcnQgYXQgcmlnaHQgYWZ0ZXIgdGhlIHRjcCBoZWFkZXIgKCcodThfdCopKGhkciArIDEpJykgZm9yIHRoZSBmaXJzdCAnb3B0MWxlbicgYnl0ZXMgYW5kIHRoZSByZXN0IHN0YXJ0cyBhdCAnb3B0MicuIG9wdDJsZW4gY2FuIGJlIHNpbXBseSBjYWxjdWxhdGVkOiAnb3B0MmxlbiA9IG9wdGxlbiAtIG9wdDFsZW47JzwvbGk+Ci08bGk+cDogaW5wdXQgcGFja2V0LCBwLSZndDtwYXlsb2FkIHBvaW50cyB0byBhcHBsaWNhdGlvbiBkYXRhICh0aGF0J3Mgd2h5IHRjcCBoZHIgYW5kIG9wdGlvbnMgYXJlIHBhc3NlZCBpbiBzZXBlcmF0ZWx5KSBSZXR1cm4gdmFsdWU6PC9saT4KKzxsaT5wOiBpbnB1dCBwYWNrZXQsIHAtJmd0O3BheWxvYWQgcG9pbnRzIHRvIGFwcGxpY2F0aW9uIGRhdGEgKHRoYXQncyB3aHkgdGNwIGhkciBhbmQgb3B0aW9ucyBhcmUgcGFzc2VkIGluIHNlcGFyYXRlbHkpIFJldHVybiB2YWx1ZTo8L2xpPgogPGxpPkVSUl9PSzogY29udGludWUgaW5wdXQgb2YgdGhpcyBwYWNrZXQgYXMgbm9ybWFsPC9saT4KIDxsaT4hPSBFUlJfT0s6IGRyb3AgdGhpcyBwYWNrZXQgZm9yIGlucHV0IChkb24ndCBjb250aW51ZSBpbnB1dCBwcm9jZXNzaW5nKTwvbGk+CiA8L3VsPgpAQCAtODQxLDE1ICs4NDEsMTUgQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPHA+TFdJUF9IT09LX1RDUF9JU046IEhvb2sgZm9yIGdlbmVyYXRpb24gb2YgdGhlIEluaXRpYWwgU2VxdWVuY2UgTnVtYmVyIChJU04pIGZvciBhIG5ldyBUQ1AgY29ubmVjdGlvbi4gVGhlIGRlZmF1bHQgbHdJUCBJU04gZ2VuZXJhdGlvbiBhbGdvcml0aG0gaXMgdmVyeSBiYXNpYyBhbmQgbWF5IGFsbG93IGZvciBUQ1Agc3Bvb2ZpbmcgYXR0YWNrcy4gVGhpcyBob29rIHByb3ZpZGVzIHRoZSBtZWFucyB0byBpbXBsZW1lbnQgdGhlIHN0YW5kYXJkaXplZCBJU04gZ2VuZXJhdGlvbiBhbGdvcml0aG0gZnJvbSBSRkMgNjUyOCAoc2VlIGNvbnRyaWIvYWRvbnMvdGNwX2lzbiksIG9yIGFueSBvdGhlciBkZXNpcmVkIGFsZ29yaXRobSBhcyBhIHJlcGxhY2VtZW50LiBDYWxsZWQgZnJvbSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX190Y3BfX3Jhdy5odG1sI2dhOWEzMWRlZWE0Y2FkYWNkMzlmOTQ4NWYzN2NmZGQwMTIiPnRjcF9jb25uZWN0KCk8L2E+IGFuZCB0Y3BfbGlzdGVuX2lucHV0KCkgd2hlbiBhbiBJU04gaXMgbmVlZGVkIGZvciBhIG5ldyBUQ1AgY29ubmVjdGlvbiwgaWYgVENQIHN1cHBvcnQgKDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhYTRlZDk4ZGViOTdiNzdjNjMzY2I4ODcwZjM0YzcxZTkiPkxXSVBfVENQPC9hPikgaXMgZW5hYmxlZC48YnIgIC8+Ci1TaWduYXR1cmU6PC9wPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj51MzJfdCBteV9ob29rX3RjcF9pc24oPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdGlwX19hZGRyLmh0bWwiPmlwX2FkZHJfdDwvYT4qIGxvY2FsX2lwLCB1MTZfdCBsb2NhbF9wb3J0LCA8c3BhbiBjbGFzcz0ia2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0aXBfX2FkZHIuaHRtbCI+aXBfYWRkcl90PC9hPiogcmVtb3RlX2lwLCB1MTZfdCByZW1vdGVfcG9ydCk7PC9kaXY+CisgU2lnbmF0dXJlOjwvcD48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+dTMyX3QgbXlfaG9va190Y3BfaXNuKDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jb25zdDwvc3Bhbj4gPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RpcF9fYWRkci5odG1sIj5pcF9hZGRyX3Q8L2E+KiBsb2NhbF9pcCwgdTE2X3QgbG9jYWxfcG9ydCwgPHNwYW4gY2xhc3M9ImtleXdvcmQiPmNvbnN0PC9zcGFuPiA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdGlwX19hZGRyLmh0bWwiPmlwX2FkZHJfdDwvYT4qIHJlbW90ZV9pcCwgdTE2X3QgcmVtb3RlX3BvcnQpOzwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48dWw+CiA8bGk+aXQgbWF5IGJlIG5lY2Vzc2FyeSB0byB1c2UgInN0cnVjdCBpcF9hZGRyIiAoPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RpcDRfX2FkZHIuaHRtbCI+aXA0X2FkZHI8L2E+LCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGlwNl9fYWRkci5odG1sIj5pcDZfYWRkcjwvYT4pIGluc3RlYWQgb2YgImlwX2FkZHJfdCIgaW4gZnVuY3Rpb24gZGVjbGFyYXRpb25zPGJyICAvPgotQXJndW1lbnRzOjwvbGk+CisgQXJndW1lbnRzOjwvbGk+CiA8bGk+bG9jYWxfaXA6IHBvaW50ZXIgdG8gdGhlIGxvY2FsIElQIGFkZHJlc3Mgb2YgdGhlIGNvbm5lY3Rpb248L2xpPgogPGxpPmxvY2FsX3BvcnQ6IGxvY2FsIHBvcnQgbnVtYmVyIG9mIHRoZSBjb25uZWN0aW9uIChob3N0LWJ5dGUgb3JkZXIpPC9saT4KIDxsaT5yZW1vdGVfaXA6IHBvaW50ZXIgdG8gdGhlIHJlbW90ZSBJUCBhZGRyZXNzIG9mIHRoZSBjb25uZWN0aW9uPC9saT4KIDxsaT5yZW1vdGVfcG9ydDogcmVtb3RlIHBvcnQgbnVtYmVyIG9mIHRoZSBjb25uZWN0aW9uIChob3N0LWJ5dGUgb3JkZXIpPGJyICAvPgotUmV0dXJuIHZhbHVlOjwvbGk+CisgUmV0dXJuIHZhbHVlOjwvbGk+CiA8bGk+dGhlIDMyLWJpdCBJbml0aWFsIFNlcXVlbmNlIE51bWJlciB0byB1c2UgZm9yIHRoZSBuZXcgVENQIGNvbm5lY3Rpb24uIDwvbGk+CiA8L3VsPgogCkBAIC0xMDIyLDcgKzEwMjIsNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8cD5MV0lQX0hPT0tfVkxBTl9TRVQ6IEhvb2sgY2FuIGJlIHVzZWQgdG8gc2V0IHByaW9fdmlkIGZpZWxkIG9mIHZsYW5faGRyLiBJZiB5b3UgbmVlZCB0byBzdG9yZSBkYXRhIG9uIHBlci1uZXRpZiBiYXNpcyB0byBpbXBsZW1lbnQgdGhpcyBjYWxsYmFjaywgc2VlIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmX19jZC5odG1sIj5DbGllbnQgZGF0YSBoYW5kbGluZzwvYT4uIENhbGxlZCBmcm9tIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2V0aGVybmV0Lmh0bWwjZ2FjOWNhZDU4MDJiZmEzZDg4NWYxM2QyYmEwZjQwYjc3OCI+ZXRoZXJuZXRfb3V0cHV0KCk8L2E+IGlmIFZMQU4gc3VwcG9ydCAoPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYXJwLmh0bWwjZ2E3MGNlMGVjZjU2Y2Y1ZmFiMDAwMTM0ZTY2ZDg2M2Y5MCI+RVRIQVJQX1NVUFBPUlRfVkxBTjwvYT4pIGlzIGVuYWJsZWQuPGJyICAvPgotU2lnbmF0dXJlOjwvcD48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+czMyX3QgbXlfaG9va192bGFuX3NldCg8c3BhbiBjbGFzcz0ia2V5d29yZCI+c3RydWN0PC9zcGFuPiA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiogPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdHJ1Y3Q8L3NwYW4+IDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0cGJ1Zi5odG1sIj5wYnVmPC9hPiogPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwiPnBidWY8L2E+LCA8c3BhbiBjbGFzcz0ia2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdHJ1Y3Q8L3NwYW4+IDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0ZXRoX19hZGRyLmh0bWwiPmV0aF9hZGRyPC9hPiogc3JjLCA8c3BhbiBjbGFzcz0ia2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdHJ1Y3Q8L3NwYW4+IDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0ZXRoX19hZGRyLmh0bWwiPmV0aF9hZGRyPC9hPiogZHN0LCB1MTZfdCBldGhfdHlwZSk7XG48L2Rpdj4KKyBTaWduYXR1cmU6PC9wPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj5zMzJfdCBteV9ob29rX3ZsYW5fc2V0KDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdHJ1Y3Q8L3NwYW4+IDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KiA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgPHNwYW4gY2xhc3M9ImtleXdvcmQiPnN0cnVjdDwvc3Bhbj4gPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwiPnBidWY8L2E+KiA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdHBidWYuaHRtbCI+cGJ1ZjwvYT4sIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPnN0cnVjdDwvc3Bhbj4gPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RldGhfX2FkZHIuaHRtbCI+ZXRoX2FkZHI8L2E+KiBzcmMsIDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmQiPnN0cnVjdDwvc3Bhbj4gPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RldGhfX2FkZHIuaHRtbCI+ZXRoX2FkZHI8L2E+KiBkc3QsIHUxNl90IGV0aF90eXBlKTs8L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RldGhfX2FkZHJfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RldGhfX2FkZHIuaHRtbCI+ZXRoX2FkZHI8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGV0aGVybmV0Lmg6NjA8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+IEFyZ3VtZW50czo8L3A+PHVsPgogPGxpPm5ldGlmOiBzdHJ1Y3QgbmV0aWYgdGhhdCB0aGUgcGFja2V0IHdpbGwgYmUgc2VudCB0aHJvdWdoPC9saT4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pY21wLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19faWNtcC5odG1sCmluZGV4IDIzOWJjYzcuLmNiMDk4ZWQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pY21wLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2ljbXAuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19faWNtcDYuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pY21wNi5odG1sCmluZGV4IGFjMTIwZTAuLjMzMzI1ZDQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pY21wNi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pY21wNi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pZ21wLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19faWdtcC5odG1sCmluZGV4IGY3YzRmYjYuLjNhNWY5NjIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pZ21wLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2lnbXAuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19faW5mcmFzdHJ1Y3R1cmUuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pbmZyYXN0cnVjdHVyZS5odG1sCmluZGV4IGFhNWM1MWIuLjc2MDMzNGQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pbmZyYXN0cnVjdHVyZS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pbmZyYXN0cnVjdHVyZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pcHY0Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19faXB2NC5odG1sCmluZGV4IDE1YmVhM2EuLjA5NDVhNTUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pcHY0Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2lwdjQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTQsNiArMTE0LDggQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hdXRvaXAuaHRtbCI+QVVUT0lQPC9hPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hY2QuaHRtbCI+QUNEPC9hPjwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19pZ21wLmh0bWwiPklHTVA8L2E+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT48dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pcHY0LmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2lwdjQuanMKaW5kZXggYTI2OWMyZS4uNTg2ZDc0NSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2lwdjQuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2lwdjQuanMKQEAgLTQsNiArNCw3IEBACiAgICAgWyAiSUNNUCIsICJncm91cF9fbHdpcF9fb3B0c19faWNtcC5odG1sIiwgImdyb3VwX19sd2lwX19vcHRzX19pY21wIiBdLAogICAgIFsgIkRIQ1AiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCIsICJncm91cF9fbHdpcF9fb3B0c19fZGhjcCIgXSwKICAgICBbICJBVVRPSVAiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX2F1dG9pcC5odG1sIiwgImdyb3VwX19sd2lwX19vcHRzX19hdXRvaXAiIF0sCisgICAgWyAiQUNEIiwgImdyb3VwX19sd2lwX19vcHRzX19hY2QuaHRtbCIsICJncm91cF9fbHdpcF9fb3B0c19fYWNkIiBdLAogICAgIFsgIklHTVAiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX2lnbXAuaHRtbCIsICJncm91cF9fbHdpcF9fb3B0c19faWdtcCIgXSwKICAgICBbICJJUF9ERUZBVUxUX1RUTCIsICJncm91cF9fbHdpcF9fb3B0c19faXB2NC5odG1sI2dhNTU2YjliNThmZDAyYzBmZGQxMjY3OTFiYWVmNzc0MTEiLCBudWxsIF0sCiAgICAgWyAiSVBfRk9SV0FSRCIsICJncm91cF9fbHdpcF9fb3B0c19faXB2NC5odG1sI2dhODgxZDMyZmY1ZWUwMmFmMDFmNzU4OTUzZjFiNTFkNTkiLCBudWxsIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19faXB2Ni5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2lwdjYuaHRtbAppbmRleCBkNDU1MDIxLi43Yzg5MTE4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19faXB2Ni5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19pcHY2Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2xvY2suaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19sb2NrLmh0bWwKaW5kZXggOWEzMDdmNS4uNDliMjczNCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2xvY2suaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbG9jay5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19sb29wLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbG9vcC5odG1sCmluZGV4IDVmZDMwNWIuLjg2MDlhM2YgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19sb29wLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX2xvb3AuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbWVtLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbWVtLmh0bWwKaW5kZXggZWM1NGViMy4uNzQ4YjliYyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX21lbS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19tZW0uaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbWVtY3B5Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbWVtY3B5Lmh0bWwKaW5kZXggZjEzYzlmNS4uMDQ2MGI0NiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX21lbWNweS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19tZW1jcHkuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbWVtcC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX21lbXAuaHRtbAppbmRleCA3NDI2OGQ5Li4wOTIwMTc2IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbWVtcC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19tZW1wLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTI3LDcgKzEyNyw3IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTA4N2IwMGVhMjBhN2VkZWJjYWQzM2ExYTEzNTNhNWQ3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhYjY0OGZmOTVkOGZmYTQyMTZiOTVmODJhNTY4YTVkOWEiIGlkPSJyX2dhYjY0OGZmOTVkOGZmYTQyMTZiOTVmODJhNTY4YTVkOWEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FiNjQ4ZmY5NWQ4ZmZhNDIxNmI5NWY4MmE1NjhhNWQ5YSI+TUVNUF9OVU1fSUdNUF9HUk9VUDwvYT4mIzE2MDsmIzE2MDsmIzE2MDs4PC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FiNjQ4ZmY5NWQ4ZmZhNDIxNmI5NWY4MmE1NjhhNWQ5YSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYTg3YTA1ZGViYjQ2ZmY4MjA5M2QwZTZkYzFhYWQ4ODA0IiBpZD0icl9nYTg3YTA1ZGViYjQ2ZmY4MjA5M2QwZTZkYzFhYWQ4ODA0Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhODdhMDVkZWJiNDZmZjgyMDkzZDBlNmRjMWFhZDg4MDQiPkxXSVBfTlVNX1NZU19USU1FT1VUX0lOVEVSTkFMPC9hPiYjMTYwOyYjMTYwOyYjMTYwOyg8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX190Y3AuaHRtbCNnYWE0ZWQ5OGRlYjk3Yjc3YzYzM2NiODg3MGYzNGM3MWU5Ij5MV0lQX1RDUDwvYT4gKyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19pcHY0Lmh0bWwjZ2ExYTMxYWIwZTBmMzdiMTdkNDBmYTdjMzViYzJjNGY2OSI+SVBfUkVBU1NFTUJMWTwvYT4gKyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hcnAuaHRtbCNnYTk2MDlhMDE0YmJhNDYzOGNjMTkxZDZhOGY5NTU2Yzg3Ij5MV0lQX0FSUDwvYT4gKyAoMio8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwLmh0bWwjZ2E4YTZlYzYyZGMxMjEwNjRhYzU5MWIxZmQ4NTY3YmVlOSI+TFdJUF9ESENQPC9hPikgKyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19hdXRvaXAuaHRtbCNnYWFmMWIzYTA4OTgyNzIyMzU4OWJhZjFiN2Y0ZjU3MDY5Ij5MV0lQX0FVVE9JUDwvYT4gKyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19pZ21wLmh0bWwjZ2FkYWYyNTkxNWFlMWZkNjljMDk0M2VmNjhjYmIzODkyMyI+TFdJUF9JR01QPC9hPiArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2Rucy5odG1sI2dhOTg3MTBkZDgxNDQ2YjdjYjJkYWFjNzM2YmFlNmY2NDYiPkxXSVBfRE5TPC9hPiArIFBQUF9OVU1fVElNRU9VVFMgKyAoPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19faXB2Ni5odG1sI2dhODcyZTNiYjNmZTIyMTIxNTZkNjZiMThmY2NjOTY0M2YiPkxXSVBfSVBWNjwvYT4gKiAoMSArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2lwdjYuaHRtbCNnYWQwZWYxNjBkNzJlNjNiMDJjNWU4NzViMDZlYzUzODY0Ij5MV0lQX0lQVjZfUkVBU1M8L2E+ICsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fbWxkNi5odG1sI2dhNDRkOGYyNGVhZWJiYzUwMjIxYWMxMzM2MjEyYTM1MjgiPkxXSVBfSVBWNl9NTEQ8L2E+KSkpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhODdhMDVkZWJiNDZmZjgyMDkzZDBlNmRjMWFhZDg4MDQiIGlkPSJyX2dhODdhMDVkZWJiNDZmZjgyMDkzZDBlNmRjMWFhZDg4MDQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E4N2EwNWRlYmI0NmZmODIwOTNkMGU2ZGMxYWFkODgwNCI+TFdJUF9OVU1fU1lTX1RJTUVPVVRfSU5URVJOQUw8L2E+JiMxNjA7JiMxNjA7JiMxNjA7KDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhYTRlZDk4ZGViOTdiNzdjNjMzY2I4ODcwZjM0YzcxZTkiPkxXSVBfVENQPC9hPiArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2lwdjQuaHRtbCNnYTFhMzFhYjBlMGYzN2IxN2Q0MGZhN2MzNWJjMmM0ZjY5Ij5JUF9SRUFTU0VNQkxZPC9hPiArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2FycC5odG1sI2dhOTYwOWEwMTRiYmE0NjM4Y2MxOTFkNmE4Zjk1NTZjODciPkxXSVBfQVJQPC9hPiArICgyKjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYThhNmVjNjJkYzEyMTA2NGFjNTkxYjFmZDg1NjdiZWU5Ij5MV0lQX0RIQ1A8L2E+KSArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2FjZC5odG1sI2dhNmYxNjY3ODY2MzM1Y2FkM2E3YjEyMjFiZDBiMjc0ZTciPkxXSVBfQUNEPC9hPiArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2lnbXAuaHRtbCNnYWRhZjI1OTE1YWUxZmQ2OWMwOTQzZWY2OGNiYjM4OTIzIj5MV0lQX0lHTVA8L2E+ICsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZG5zLmh0bWwjZ2E5ODcxMGRkODE0NDZiN2NiMmRhYWM3MzZiYWU2ZjY0NiI+TFdJUF9ETlM8L2E+ICsgUFBQX05VTV9USU1FT1VUUyArICg8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19pcHY2Lmh0bWwjZ2E4NzJlM2JiM2ZlMjIxMjE1NmQ2NmIxOGZjY2M5NjQzZiI+TFdJUF9JUFY2PC9hPiAqICgxICsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19faXB2Ni5odG1sI2dhZDBlZjE2MGQ3MmU2M2IwMmM1ZTg3NWIwNmVjNTM4NjQiPkxXSVBfSVBWNl9SRUFTUzwvYT4gKyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19tbGQ2Lmh0bWwjZ2E0NGQ4ZjI0ZWFlYmJjNTAyMjFhYzEzMzYyMTJhMzUyOCI+TFdJUF9JUFY2X01MRDwvYT4gKyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwdjYuaHRtbCNnYTFiYTY3YjY2NjUwMjZlYzBjNjg4ZGM0YjBkZjA0N2E2Ij5MV0lQX0lQVjZfREhDUDY8L2E+KSkpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E4N2EwNWRlYmI0NmZmODIwOTNkMGU2ZGMxYWFkODgwNCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTRhZmJkY2E1ODFhNThkNTdiYzdhODExMThhOTUzMjdlIiBpZD0icl9nYTRhZmJkY2E1ODFhNThkNTdiYzdhODExMThhOTUzMjdlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNGFmYmRjYTU4MWE1OGQ1N2JjN2E4MTExOGE5NTMyN2UiPk1FTVBfTlVNX1NZU19USU1FT1VUPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhODdhMDVkZWJiNDZmZjgyMDkzZDBlNmRjMWFhZDg4MDQiPkxXSVBfTlVNX1NZU19USU1FT1VUX0lOVEVSTkFMPC9hPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNGFmYmRjYTU4MWE1OGQ1N2JjN2E4MTExOGE5NTMyN2UiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CkBAIC0xNjUsNyArMTY1LDcgQEAKIDxkaXYgY2xhc3M9Im1lbXByb3RvIj4KICAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CiAgICAgICAgIDx0cj4KLSAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgTFdJUF9OVU1fU1lTX1RJTUVPVVRfSU5URVJOQUwmIzE2MDsmIzE2MDsmIzE2MDsoPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2FhNGVkOThkZWI5N2I3N2M2MzNjYjg4NzBmMzRjNzFlOSI+TFdJUF9UQ1A8L2E+ICsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19faXB2NC5odG1sI2dhMWEzMWFiMGUwZjM3YjE3ZDQwZmE3YzM1YmMyYzRmNjkiPklQX1JFQVNTRU1CTFk8L2E+ICsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYXJwLmh0bWwjZ2E5NjA5YTAxNGJiYTQ2MzhjYzE5MWQ2YThmOTU1NmM4NyI+TFdJUF9BUlA8L2E+ICsgKDIqPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZGhjcC5odG1sI2dhOGE2ZWM2MmRjMTIxMDY0YWM1OTFiMWZkODU2N2JlZTkiPkxXSVBfREhDUDwvYT4pICsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fYXV0b2lwLmh0bWwjZ2FhZjFiM2EwODk4MjcyMjM1ODliYWYxYjdmNGY1NzA2OSI+TFdJUF9BVVRPSVA8L2E+ICsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19faWdtcC5odG1sI2dhZGFmMjU5MTVhZTFmZDY5YzA5NDNlZjY4Y2JiMzg5MjMiPkxXSVBfSUdNUDwvYT4gKyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kbnMuaHRtbCNnYTk4NzEwZGQ4MTQ0NmI3Y2IyZGFhYzczNmJhZTZmNjQ2Ij5MV0lQX0ROUzwvYT4gKyBQUFBfTlVNX1RJTUVPVVRTICsgKDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2lwdjYuaHRtbCNnYTg3MmUzYmIzZmUyMjEyMTU2ZDY2YjE4ZmNjYzk2NDNmIj5MV0lQX0lQVjY8L2E+ICogKDEgKyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19pcHY2Lmh0bWwjZ2FkMGVmMTYwZDcyZTYzYjAyYzVlODc1YjA2ZWM1Mzg2NCI+TFdJUF9JUFY2X1JFQVNTPC9hPiArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX21sZDYuaHRtbCNnYTQ0ZDhmMjRlYWViYmM1MDIyMWFjMTMzNjIxMmEzNTI4Ij5MV0lQX0lQVjZfTUxEPC9hPikpKTwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIExXSVBfTlVNX1NZU19USU1FT1VUX0lOVEVSTkFMJiMxNjA7JiMxNjA7JiMxNjA7KDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhYTRlZDk4ZGViOTdiNzdjNjMzY2I4ODcwZjM0YzcxZTkiPkxXSVBfVENQPC9hPiArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2lwdjQuaHRtbCNnYTFhMzFhYjBlMGYzN2IxN2Q0MGZhN2MzNWJjMmM0ZjY5Ij5JUF9SRUFTU0VNQkxZPC9hPiArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2FycC5odG1sI2dhOTYwOWEwMTRiYmE0NjM4Y2MxOTFkNmE4Zjk1NTZjODciPkxXSVBfQVJQPC9hPiArICgyKjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2RoY3AuaHRtbCNnYThhNmVjNjJkYzEyMTA2NGFjNTkxYjFmZDg1NjdiZWU5Ij5MV0lQX0RIQ1A8L2E+KSArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2FjZC5odG1sI2dhNmYxNjY3ODY2MzM1Y2FkM2E3YjEyMjFiZDBiMjc0ZTciPkxXSVBfQUNEPC9hPiArIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29wdHNfX2lnbXAuaHRtbCNnYWRhZjI1OTE1YWUxZmQ2OWMwOTQzZWY2OGNiYjM4OTIzIj5MV0lQX0lHTVA8L2E+ICsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fZG5zLmh0bWwjZ2E5ODcxMGRkODE0NDZiN2NiMmRhYWM3MzZiYWU2ZjY0NiI+TFdJUF9ETlM8L2E+ICsgUFBQX05VTV9USU1FT1VUUyArICg8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19pcHY2Lmh0bWwjZ2E4NzJlM2JiM2ZlMjIxMjE1NmQ2NmIxOGZjY2M5NjQzZiI+TFdJUF9JUFY2PC9hPiAqICgxICsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19faXB2Ni5odG1sI2dhZDBlZjE2MGQ3MmU2M2IwMmM1ZTg3NWIwNmVjNTM4NjQiPkxXSVBfSVBWNl9SRUFTUzwvYT4gKyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19tbGQ2Lmh0bWwjZ2E0NGQ4ZjI0ZWFlYmJjNTAyMjFhYzEzMzYyMTJhMzUyOCI+TFdJUF9JUFY2X01MRDwvYT4gKyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19kaGNwdjYuaHRtbCNnYTFiYTY3YjY2NjUwMjZlYzBjNjg4ZGM0YjBkZjA0N2E2Ij5MV0lQX0lQVjZfREhDUDY8L2E+KSkpPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX21pYjIuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19taWIyLmh0bWwKaW5kZXggMjRhOGFjYS4uYTdiNmJmOCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX21pYjIuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbWliMi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19tbGQ2Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbWxkNi5odG1sCmluZGV4IDE5NDU2MDguLjExZTFiMTggMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19tbGQ2Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX21sZDYuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbXVsdGljYXN0Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbXVsdGljYXN0Lmh0bWwKaW5kZXggMzM3ZTFlNy4uM2E5NWVhZiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX211bHRpY2FzdC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19tdWx0aWNhc3QuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbmQ2Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbmQ2Lmh0bWwKaW5kZXggMWFhMDA0NS4uZDZiYjAzYSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX25kNi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19uZDYuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbmV0Y29ubi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX25ldGNvbm4uaHRtbAppbmRleCBiZGZjZjFmLi43NjQ4YTc0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbmV0Y29ubi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19uZXRjb25uLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX25ldGlmLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbmV0aWYuaHRtbAppbmRleCA1ZDA3MzY3Li5kYWU3OTI1IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbmV0aWYuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbmV0aWYuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fbm9zeXMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19ub3N5cy5odG1sCmluZGV4IDFkODlhMWYuLjBhZGI4ZjMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19ub3N5cy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19ub3N5cy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19wYnVmLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fcGJ1Zi5odG1sCmluZGV4IDNjZDFhY2EuLmZjZWRmZGMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19wYnVmLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3BidWYuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fcGVyZi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3BlcmYuaHRtbAppbmRleCBlODk4ODQxLi40MjdlYmEzIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fcGVyZi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19wZXJmLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3Jhdy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3Jhdy5odG1sCmluZGV4IGVhMWQ2OGUuLjZmYjVhMWIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19yYXcuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fcmF3Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sCmluZGV4IGRjYWU2MjIuLjcwYzBlOTIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTEzLDYgKzExMyw4IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTQ4NGMzOGFiMDhmNjBkNWIzMzM1ZDIzZDMxZjlhNDAyIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhZDAxOTdjODQ1ZmJiNDRjOTIwYjI3MmYwZmVmM2I1N2UiIGlkPSJyX2dhZDAxOTdjODQ1ZmJiNDRjOTIwYjI3MmYwZmVmM2I1N2UiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FkMDE5N2M4NDVmYmI0NGM5MjBiMjcyZjBmZWYzYjU3ZSI+TFdJUF9TT0NLRVRfT0ZGU0VUPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzA8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWQwMTk3Yzg0NWZiYjQ0YzkyMGIyNzJmMGZlZjNiNTdlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNTI0YzAxM2VjZGQ4YTQ1YTI5NDlmMmE0MzM0NjllODIiIGlkPSJyX2dhNTI0YzAxM2VjZGQ4YTQ1YTI5NDlmMmE0MzM0NjllODIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E1MjRjMDEzZWNkZDhhNDVhMjk0OWYyYTQzMzQ2OWU4MiI+TFdJUF9TT0NLRVRfRVhURVJOQUxfSEVBREVSUzwvYT4mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E1MjRjMDEzZWNkZDhhNDVhMjk0OWYyYTQzMzQ2OWU4MiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYThiOTM2OWFiMjYwZjAzMjY4NmE4MWM3N2M1YjRkYjc3IiBpZD0icl9nYThiOTM2OWFiMjYwZjAzMjY4NmE4MWM3N2M1YjRkYjc3Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhOGI5MzY5YWIyNjBmMDMyNjg2YTgxYzc3YzViNGRiNzciPkxXSVBfVENQX0tFRVBBTElWRTwvYT4mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E4YjkzNjlhYjI2MGYwMzI2ODZhODFjNzdjNWI0ZGI3NyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTExNjJjYjY4NWYyMDJkOWIyMWMxMTM0NGI4MjA5YTU4IiBpZD0icl9nYTExNjJjYjY4NWYyMDJkOWIyMWMxMTM0NGI4MjA5YTU4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMTE2MmNiNjg1ZjIwMmQ5YjIxYzExMzQ0YjgyMDlhNTgiPkxXSVBfU09fU05EVElNRU88L2E+JiMxNjA7JiMxNjA7JiMxNjA7MDwvdGQ+PC90cj4KQEAgLTI3Nyw2ICsyNzksMjEgQEAKIAogPC9kaXY+CiA8L2Rpdj4KKzxhIGlkPSJnYTUyNGMwMTNlY2RkOGE0NWEyOTQ5ZjJhNDMzNDY5ZTgyIiBuYW1lPSJnYTUyNGMwMTNlY2RkOGE0NWEyOTQ5ZjJhNDMzNDY5ZTgyIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E1MjRjMDEzZWNkZDhhNDVhMjk0OWYyYTQzMzQ2OWU4MiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+TFdJUF9TT0NLRVRfRVhURVJOQUxfSEVBREVSUzwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBMV0lQX1NPQ0tFVF9FWFRFUk5BTF9IRUFERVJTJiMxNjA7JiMxNjA7JiMxNjA7MDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkxXSVBfU09DS0VUX0VYVEVSTkFMX0hFQURFUlM9PTE6IFVzZSBleHRlcm5hbCBoZWFkZXJzIGluc3RlYWQgb2YgPGEgY2xhc3M9ImVsIiBocmVmPSJzb2NrZXRzXzhoLmh0bWwiPnNvY2tldHMuaDwvYT4gYW5kIGluZXQuaC4gSW4gdGhpcyBjYXNlLCB1c2VyIG11c3QgcHJvdmlkZSBpdHMgb3duIGhlYWRlcnMgYnkgc2V0dGluZyB0aGUgdmFsdWVzIGZvciBMV0lQX1NPQ0tFVF9FWFRFUk5BTF9IRUFERVJfU09DS0VUU19IIGFuZCBMV0lQX1NPQ0tFVF9FWFRFUk5BTF9IRUFERVJfSU5FVF9IIHRvIGFwcHJvcHJpYXRlIGluY2x1ZGUgZmlsZSBuYW1lcyBhbmQgdGhlIHdob2xlIGNvbnRlbnQgb2YgdGhlIGRlZmF1bHQgPGEgY2xhc3M9ImVsIiBocmVmPSJzb2NrZXRzXzhoLmh0bWwiPnNvY2tldHMuaDwvYT4gYW5kIGluZXQuaCBpcyBza2lwcGVkLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iZ2FkMDE5N2M4NDVmYmI0NGM5MjBiMjcyZjBmZWYzYjU3ZSIgbmFtZT0iZ2FkMDE5N2M4NDVmYmI0NGM5MjBiMjcyZjBmZWYzYjU3ZSI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhZDAxOTdjODQ1ZmJiNDRjOTIwYjI3MmYwZmVmM2I1N2UiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPkxXSVBfU09DS0VUX09GRlNFVDwvaDI+CiAKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fc29ja2V0LmpzCmluZGV4IDQyZDZkYmIuLmNhZjJhNWYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5qcwpAQCAtOSw2ICs5LDcgQEAKICAgICBbICJMV0lQX1NPX1NORFJDVlRJTUVPX05PTlNUQU5EQVJEIiwgImdyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbCNnYTViMTE1YmFjYjU2OTc2M2Q4YTM4ODlhMTIyMjllOTQyIiwgbnVsbCBdLAogICAgIFsgIkxXSVBfU09fU05EVElNRU8iLCAiZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sI2dhMTE2MmNiNjg1ZjIwMmQ5YjIxYzExMzQ0YjgyMDlhNTgiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9TT0NLRVQiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sI2dhMWNiNjJjZTYxYWMzOWQ3ZDY3MjhhZTVkM2QzYjkyN2YiLCBudWxsIF0sCisgICAgWyAiTFdJUF9TT0NLRVRfRVhURVJOQUxfSEVBREVSUyIsICJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2E1MjRjMDEzZWNkZDhhNDVhMjk0OWYyYTQzMzQ2OWU4MiIsIG51bGwgXSwKICAgICBbICJMV0lQX1NPQ0tFVF9PRkZTRVQiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sI2dhZDAxOTdjODQ1ZmJiNDRjOTIwYjI3MmYwZmVmM2I1N2UiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9TT0NLRVRfUE9MTCIsICJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2E2YzE0ZDcwNWUzMzIxNDI5NjgzZjI0ZGU5ZjVhNzIwMCIsIG51bGwgXSwKICAgICBbICJMV0lQX1NPQ0tFVF9TRUxFQ1QiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX3NvY2tldC5odG1sI2dhNjg0MTcwNzhiNzFiMGJlOTczNTI1NmY1MjkzM2RjZGIiLCBudWxsIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fc3RhdHMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19zdGF0cy5odG1sCmluZGV4IDg1MzljMjYuLmYyYjkxNTcgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19zdGF0cy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX19zdGF0cy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX190Y3AuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX190Y3AuaHRtbAppbmRleCBlNGQzNjQxLi41MzdhOTUzIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyNSw2ICsxMjUsOCBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FmMWFiN2JiMjc4NjBhYTM2NzdjMzg3YTJmM2JhMzE3YiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWMwNGI4NGQzMjI1MWFjNTU4ZjBjM2E4YWY4NWJhM2E1IiBpZD0icl9nYWMwNGI4NGQzMjI1MWFjNTU4ZjBjM2E4YWY4NWJhM2E1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYzA0Yjg0ZDMyMjUxYWM1NThmMGMzYThhZjg1YmEzYTUiPlRDUF9DQUxDVUxBVEVfRUZGX1NFTkRfTVNTPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzE8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWMwNGI4NGQzMjI1MWFjNTU4ZjBjM2E4YWY4NWJhM2E1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhZGUyMzM3MzkwMTk4MGM2ZTdhNDNjZWY4MTMzODZlYmUiIGlkPSJyX2dhZGUyMzM3MzkwMTk4MGM2ZTdhNDNjZWY4MTMzODZlYmUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FkZTIzMzczOTAxOTgwYzZlN2E0M2NlZjgxMzM4NmViZSI+TFdJUF9UQ1BfUlRPX1RJTUU8L2E+JiMxNjA7JiMxNjA7JiMxNjA7MzAwMDwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZGUyMzM3MzkwMTk4MGM2ZTdhNDNjZWY4MTMzODZlYmUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E4NzFkMTExOTY4ZDhjNmM3ODgwZmYzNmI5M2M1YzRkZCIgaWQ9InJfZ2E4NzFkMTExOTY4ZDhjNmM3ODgwZmYzNmI5M2M1YzRkZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTg3MWQxMTE5NjhkOGM2Yzc4ODBmZjM2YjkzYzVjNGRkIj5UQ1BfU05EX0JVRjwvYT4mIzE2MDsmIzE2MDsmIzE2MDsoMiAqIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZjFhYjdiYjI3ODYwYWEzNjc3YzM4N2EyZjNiYTMxN2IiPlRDUF9NU1M8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhODcxZDExMTk2OGQ4YzZjNzg4MGZmMzZiOTNjNWM0ZGQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E5YmVhYTQ3ODMyZWFkNDE4MDk4MWJmYmY3MTA3NDkwNCIgaWQ9InJfZ2E5YmVhYTQ3ODMyZWFkNDE4MDk4MWJmYmY3MTA3NDkwNCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTliZWFhNDc4MzJlYWQ0MTgwOTgxYmZiZjcxMDc0OTA0Ij5UQ1BfU05EX1FVRVVFTEVOPC9hPiYjMTYwOyYjMTYwOyYjMTYwOygoNCAqICg8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTg3MWQxMTE5NjhkOGM2Yzc4ODBmZjM2YjkzYzVjNGRkIj5UQ1BfU05EX0JVRjwvYT4pICsgKDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZjFhYjdiYjI3ODYwYWEzNjc3YzM4N2EyZjNiYTMxN2IiPlRDUF9NU1M8L2E+IC0gMSkpLyg8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWYxYWI3YmIyNzg2MGFhMzY3N2MzODdhMmYzYmEzMTdiIj5UQ1BfTVNTPC9hPikpPC90ZD48L3RyPgpAQCAtMjUyLDYgKzI1NCwyMSBAQAogCiA8L2Rpdj4KIDwvZGl2PgorPGEgaWQ9ImdhZGUyMzM3MzkwMTk4MGM2ZTdhNDNjZWY4MTMzODZlYmUiIG5hbWU9ImdhZGUyMzM3MzkwMTk4MGM2ZTdhNDNjZWY4MTMzODZlYmUiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYWRlMjMzNzM5MDE5ODBjNmU3YTQzY2VmODEzMzg2ZWJlIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5MV0lQX1RDUF9SVE9fVElNRTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBMV0lQX1RDUF9SVE9fVElNRSYjMTYwOyYjMTYwOyYjMTYwOzMwMDA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5MV0lQX1RDUF9SVE9fVElNRTogSW5pdGlhbCBUQ1AgcmV0cmFuc21pc3Npb24gdGltZW91dCAobXMpLiBUaGlzIGRlZmF1bHRzIHRvIDMgc2Vjb25kcyBhcyB0cmFkaXRpb25hbGx5IGRlZmluZWQgaW4gdGhlIFRDUCBwcm90b2NvbC4gRm9yIGltcHJvdmluZyB0aW1lbHkgcmVjb3Zlcnkgb24gZmFzdGVyIG5ldHdvcmtzLCB0aGlzIHZhbHVlIGNvdWxkIGJlIGxvd2VyZWQgZG93biB0byAxIHNlY29uZCAoUkZDIDYyOTgpIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxhIGlkPSJnYWYxYjZhMDE1ZDI5ZmVhNjdiOTA2YzI3NmUxZTgzMTRmIiBuYW1lPSJnYWYxYjZhMDE1ZDI5ZmVhNjdiOTA2YzI3NmUxZTgzMTRmIj48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FmMWI2YTAxNWQyOWZlYTY3YjkwNmMyNzZlMWU4MzE0ZiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+TFdJUF9UQ1BfU0FDS19PVVQ8L2gyPgogCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fdGNwLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5qcwppbmRleCA4NzNkYWIwLi5iNGRkMjA0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fdGNwLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX190Y3AuanMKQEAgLTYsNiArNiw3IEBACiAgICAgWyAiTFdJUF9UQ1AiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhYTRlZDk4ZGViOTdiNzdjNjMzY2I4ODcwZjM0YzcxZTkiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9UQ1BfTUFYX1NBQ0tfTlVNIiwgImdyb3VwX19sd2lwX19vcHRzX190Y3AuaHRtbCNnYWFhYzBlOWY1NTlhOGUzYzI1MWYzNTA0Y2ViY2Y0NGRjIiwgbnVsbCBdLAogICAgIFsgIkxXSVBfVENQX1BDQl9OVU1fRVhUX0FSR1MiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhNDBiMWNkYWQ1MmVhYTkxYTNmNWMyNDJmYzkyZWUyMjMiLCBudWxsIF0sCisgICAgWyAiTFdJUF9UQ1BfUlRPX1RJTUUiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhZGUyMzM3MzkwMTk4MGM2ZTdhNDNjZWY4MTMzODZlYmUiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9UQ1BfU0FDS19PVVQiLCAiZ3JvdXBfX2x3aXBfX29wdHNfX3RjcC5odG1sI2dhZjFiNmEwMTVkMjlmZWE2N2I5MDZjMjc2ZTFlODMxNGYiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9UQ1BfVElNRVNUQU1QUyIsICJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2EyNDliYzQ1MGJiODE4Y2YyZWYzY2YxNDcyZmYzNTRmZCIsIG51bGwgXSwKICAgICBbICJMV0lQX1dORF9TQ0FMRSIsICJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2E4OGRiYmZlZWViNDFiMTI5ZmRjODIzNWZjMDhiYjUzMCIsIG51bGwgXSwKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX190aHJlYWQuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX190aHJlYWQuaHRtbAppbmRleCA2ZjllMDRjLi4wMGQyN2UzIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fdGhyZWFkLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3RocmVhZC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX190aHJlYWRzYWZlX19hcGlzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fdGhyZWFkc2FmZV9fYXBpcy5odG1sCmluZGV4IDhlMzNkNzAuLmUwMWZjMGEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX190aHJlYWRzYWZlX19hcGlzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3RocmVhZHNhZmVfX2FwaXMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fdGltZXJzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fdGltZXJzLmh0bWwKaW5kZXggZDkyNDcyYS4uZTg1YWJiMiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3RpbWVycy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX190aW1lcnMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fdWRwLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3B0c19fdWRwLmh0bWwKaW5kZXggMGE1MjU5Zi4uOTU0ZGU3NCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX29wdHNfX3VkcC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcHRzX191ZHAuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fb3MuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcy5odG1sCmluZGV4IDg5OGM4OTAuLjcyMzM0YTEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX19vcy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyOSw4ICsxMjksOCBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2ExZjNhODhiOGRmNmJhM2I5ZWQxYzAwZTBhMzA1ZTNkYiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KLTxwPlVzZSB0aGlzIG1vZGUgaWYgeW91IHJ1biBhbiBPUyBvbiB5b3VyIHN5c3RlbS4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIGFuIFJUT1MgdGhhdCBjb3JyZWN0bHkgaGFuZGxlcyBwcmlvcml0eSBpbnZlcnNpb24gYW5kIHRvIHVzZSBMV0lQX1RDUElQX0NPUkVfTE9DS0lORy48YnIgIC8+Ci0gUG9ydGluZzogaW1wbGVtZW50IGFsbCBmdW5jdGlvbnMgaW4gc3lzX2xheWVyLjxiciAgLz4KKzxwPlVzZSB0aGlzIG1vZGUgaWYgeW91IHJ1biBhbiBPUyBvbiB5b3VyIHN5c3RlbS4gSXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlIGFuIFJUT1MgdGhhdCBjb3JyZWN0bHkgaGFuZGxlcyBwcmlvcml0eSBpbnZlcnNpb24gYW5kIHRvIHVzZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19sb2NrLmh0bWwjZ2E4ZTQ2MjMyNzk0MzQ5YzIwOWU4ZWQ0ZTllN2U0ZjAxMSI+TFdJUF9UQ1BJUF9DT1JFX0xPQ0tJTkc8L2E+LjxiciAgLz4KKyBQb3J0aW5nOiBpbXBsZW1lbnQgYWxsIGZ1bmN0aW9ucyBpbiA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19zeXNfX2xheWVyLmh0bWwiPlBvcnRpbmcgKHN5c3RlbSBhYnN0cmFjdGlvbiBsYXllcik8L2E+LjxiciAgLz4KICBZb3UgY2FuIHVzZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19jYWxsYmFja3N0eWxlX19hcGkuaHRtbCI+InJhdyIgQVBJczwvYT4gdG9nZXRoZXIgd2l0aCA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWFiODM4ZmUzNDE3YWIzYTFmNjFmMDcyODAwOWEwYzJhIj50Y3BpcF9jYWxsYmFjazwvYT4sIGFuZCBhbGwgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fc2VxdWVudGlhbF9fYXBpLmh0bWwiPlNlcXVlbnRpYWwtc3R5bGUgQVBJczwvYT4uIDwvcD4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPk1hY3JvIERlZmluaXRpb24gRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iZ2FjZDBhODY1NjIzOTIxYWRhMmRkMDg5NjJlYjgyYzlkZiIgbmFtZT0iZ2FjZDBhODY1NjIzOTIxYWRhMmRkMDg5NjJlYjgyYzlkZiI+PC9hPgpAQCAtMTU3LDkgKzE1Nyw5IEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+KChibG9jayAhPSAwKT8gPGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9IiNnYWFiODM4ZmUzNDE3YWIzYTFmNjFmMDcyODAwOWEwYzJhIj50Y3BpcF9jYWxsYmFjazwvYT4oZnVuY3Rpb24sIGN0eCkgOiA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iI2dhZWI3YjNjNzQxNGM3NmFkOGRkZTE0ZDJmYmE2Y2IwMjAiPnRjcGlwX3RyeV9jYWxsYmFjazwvYT4oZnVuY3Rpb24sIGN0eCkpPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2x3aXBfX29zX2h0bWxfZ2FhYjgzOGZlMzQxN2FiM2ExZjYxZjA3MjgwMDlhMGMyYSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjZ2FhYjgzOGZlMzQxN2FiM2ExZjYxZjA3MjgwMDlhMGMyYSI+dGNwaXBfY2FsbGJhY2s8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCB0Y3BpcF9jYWxsYmFjayh0Y3BpcF9jYWxsYmFja19mbiBmdW5jdGlvbiwgdm9pZCAqY3R4KTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiB0Y3BpcC5jOjMwOTwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19sd2lwX19vc19odG1sX2dhZWI3YjNjNzQxNGM3NmFkOGRkZTE0ZDJmYmE2Y2IwMjAiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2dhZWI3YjNjNzQxNGM3NmFkOGRkZTE0ZDJmYmE2Y2IwMjAiPnRjcGlwX3RyeV9jYWxsYmFjazwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IHRjcGlwX3RyeV9jYWxsYmFjayh0Y3BpcF9jYWxsYmFja19mbiBmdW5jdGlvbiwgdm9pZCAqY3R4KTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiB0Y3BpcC5jOjM0NTwvZGl2PjwvZGl2PgotPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48ZGwgY2xhc3M9ImRlcHJlY2F0ZWQiPjxkdD48Yj48YSBjbGFzcz0iZWwiIGhyZWY9ImRlcHJlY2F0ZWQuaHRtbCNfZGVwcmVjYXRlZDAwMDAwNSI+RGVwcmVjYXRlZDwvYT48L2I+PC9kdD48ZGQ+dXNlIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZWI3YjNjNzQxNGM3NmFkOGRkZTE0ZDJmYmE2Y2IwMjAiPnRjcGlwX3RyeV9jYWxsYmFjaygpPC9hPiBvciA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWFiODM4ZmUzNDE3YWIzYTFmNjFmMDcyODAwOWEwYzJhIj50Y3BpcF9jYWxsYmFjaygpPC9hPiBpbnN0ZWFkIDwvZGQ+PC9kbD4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbHdpcF9fb3NfaHRtbF9nYWFiODM4ZmUzNDE3YWIzYTFmNjFmMDcyODAwOWEwYzJhIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnYWFiODM4ZmUzNDE3YWIzYTFmNjFmMDcyODAwOWEwYzJhIj50Y3BpcF9jYWxsYmFjazwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IHRjcGlwX2NhbGxiYWNrKHRjcGlwX2NhbGxiYWNrX2ZuIGZ1bmN0aW9uLCB2b2lkICpjdHgpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IHRjcGlwLmM6MzE0PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2x3aXBfX29zX2h0bWxfZ2FlYjdiM2M3NDE0Yzc2YWQ4ZGRlMTRkMmZiYTZjYjAyMCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjZ2FlYjdiM2M3NDE0Yzc2YWQ4ZGRlMTRkMmZiYTZjYjAyMCI+dGNwaXBfdHJ5X2NhbGxiYWNrPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgdGNwaXBfdHJ5X2NhbGxiYWNrKHRjcGlwX2NhbGxiYWNrX2ZuIGZ1bmN0aW9uLCB2b2lkICpjdHgpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IHRjcGlwLmM6MzUwPC9kaXY+PC9kaXY+Cis8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxkbCBjbGFzcz0iZGVwcmVjYXRlZCI+PGR0PjxiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGVwcmVjYXRlZC5odG1sI19kZXByZWNhdGVkMDAwMDE2Ij5EZXByZWNhdGVkPC9hPjwvYj48L2R0PjxkZD51c2UgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FlYjdiM2M3NDE0Yzc2YWQ4ZGRlMTRkMmZiYTZjYjAyMCI+dGNwaXBfdHJ5X2NhbGxiYWNrKCk8L2E+IG9yIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYWI4MzhmZTM0MTdhYjNhMWY2MWYwNzI4MDA5YTBjMmEiPnRjcGlwX2NhbGxiYWNrKCk8L2E+IGluc3RlYWQgPC9kZD48L2RsPgogCiA8L2Rpdj4KIDwvZGl2PgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX3ZlcnNpb24uaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19sd2lwX192ZXJzaW9uLmh0bWwKaW5kZXggYWMwZDhjNi4uMDAxZGJiNSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX2x3aXBfX3ZlcnNpb24uaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbHdpcF9fdmVyc2lvbi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwNyw5ICsxMDcsOSBAQAogTWFjcm9zPC9oMj48L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E0MzA4YzA2ZWYzNjQ5NmUwMGM3OThkOTZkN2QwMzI0NiIgaWQ9InJfZ2E0MzA4YzA2ZWYzNjQ5NmUwMGM3OThkOTZkN2QwMzI0NiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTQzMDhjMDZlZjM2NDk2ZTAwYzc5OGQ5NmQ3ZDAzMjQ2Ij5MV0lQX1ZFUlNJT05fTUFKT1I8L2E+JiMxNjA7JiMxNjA7JiMxNjA7MjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNDMwOGMwNmVmMzY0OTZlMDBjNzk4ZDk2ZDdkMDMyNDYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2ExZTU5NjM4OGMxNWJhODFlNzUzYzU2MzNmYWQxYzAzNCIgaWQ9InJfZ2ExZTU5NjM4OGMxNWJhODFlNzUzYzU2MzNmYWQxYzAzNCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTFlNTk2Mzg4YzE1YmE4MWU3NTNjNTYzM2ZhZDFjMDM0Ij5MV0lQX1ZFUlNJT05fTUlOT1I8L2E+JiMxNjA7JiMxNjA7JiMxNjA7MTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTFlNTk2Mzg4YzE1YmE4MWU3NTNjNTYzM2ZhZDFjMDM0IiBpZD0icl9nYTFlNTk2Mzg4YzE1YmE4MWU3NTNjNTYzM2ZhZDFjMDM0Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMWU1OTYzODhjMTViYTgxZTc1M2M1NjMzZmFkMWMwMzQiPkxXSVBfVkVSU0lPTl9NSU5PUjwvYT4mIzE2MDsmIzE2MDsmIzE2MDsyPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2ExZTU5NjM4OGMxNWJhODFlNzUzYzU2MzNmYWQxYzAzNCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYTBhNTc5ODNkZjFiMTk5Y2YzOWEyZTZhMmQ5MGUzZDUwIiBpZD0icl9nYTBhNTc5ODNkZjFiMTk5Y2YzOWEyZTZhMmQ5MGUzZDUwIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMGE1Nzk4M2RmMWIxOTljZjM5YTJlNmEyZDkwZTNkNTAiPkxXSVBfVkVSU0lPTl9SRVZJU0lPTjwvYT4mIzE2MDsmIzE2MDsmIzE2MDszPC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMGE1Nzk4M2RmMWIxOTljZjM5YTJlNmEyZDkwZTNkNTAiIGlkPSJyX2dhMGE1Nzk4M2RmMWIxOTljZjM5YTJlNmEyZDkwZTNkNTAiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EwYTU3OTgzZGYxYjE5OWNmMzlhMmU2YTJkOTBlM2Q1MCI+TFdJUF9WRVJTSU9OX1JFVklTSU9OPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzA8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTBhNTc5ODNkZjFiMTk5Y2YzOWEyZTZhMmQ5MGUzZDUwIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhYzFkYzkyZDhmNDUzYTk4NTYwZGU3ZTJlMDBhMjIxYTEiIGlkPSJyX2dhYzFkYzkyZDhmNDUzYTk4NTYwZGU3ZTJlMDBhMjIxYTEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FjMWRjOTJkOGY0NTNhOTg1NjBkZTdlMmUwMGEyMjFhMSI+TFdJUF9WRVJTSU9OX1JDPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMzc1ZWU4NjhlNzZlZDdjNDU4Y2RmMjQ5Mzg3YmQ0NjkiPkxXSVBfUkNfUkVMRUFTRTwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWMxZGM5MmQ4ZjQ1M2E5ODU2MGRlN2UyZTAwYTIyMWExIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgpAQCAtMTk3LDcgKzE5Nyw3IEBACiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CiAgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgogICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIExXSVBfVkVSU0lPTl9NSU5PUiYjMTYwOyYjMTYwOyYjMTYwOzE8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBMV0lQX1ZFUlNJT05fTUlOT1ImIzE2MDsmIzE2MDsmIzE2MDsyPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgpAQCAtMjI3LDcgKzIyNyw3IEBACiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CiAgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgogICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIExXSVBfVkVSU0lPTl9SRVZJU0lPTiYjMTYwOyYjMTYwOyYjMTYwOzM8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBMV0lQX1ZFUlNJT05fUkVWSVNJT04mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21kbnMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19tZG5zLmh0bWwKaW5kZXggNTI0MGVjMi4uMDI2MmM2NSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21kbnMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbWRucy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTExNywzMSArMTE3LDQyIEBACiA8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImZ1bmMtbWVtYmVycyIgbmFtZT0iZnVuYy1tZW1iZXJzIj48L2E+CiBGdW5jdGlvbnM8L2gyPjwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYWE2MTlhYzhmNDZhNGI0MDIxMTk1NzIwZjAzNTVjYmViIiBpZD0icl9nYWE2MTlhYzhmNDZhNGI0MDIxMTk1NzIwZjAzNTVjYmViIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYTYxOWFjOGY0NmE0YjQwMjExOTU3MjBmMDM1NWNiZWIiPm1kbnNfcmVzcF9hZGRfbmV0aWY8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBjb25zdCBjaGFyICpob3N0bmFtZSwgdTMyX3QgZG5zX3R0bCk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYWE2MTlhYzhmNDZhNGI0MDIxMTk1NzIwZjAzNTVjYmViIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiIGlkPSJyX2dhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E2N2Y4NDJjMjdmMzdjMDNiNDhkMTBlNGNlNjg1NmI4ZSI+bWRuc19yZXNwX2FkZF9uZXRpZjwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIGNvbnN0IGNoYXIgKmhvc3RuYW1lKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FhODE0NGUzYzc3YTkyYzQwNDNlNjIxNGZmNmI2MDEwYyIgaWQ9InJfZ2FhODE0NGUzYzc3YTkyYzQwNDNlNjIxNGZmNmI2MDEwYyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWE4MTQ0ZTNjNzdhOTJjNDA0M2U2MjE0ZmY2YjYwMTBjIj5tZG5zX3Jlc3BfcmVtb3ZlX25ldGlmPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWE4MTQ0ZTNjNzdhOTJjNDA0M2U2MjE0ZmY2YjYwMTBjIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhN2IxNDczZTU5NWViMGMxODViYWIyOTNmM2VjMmU1MGUiIGlkPSJyX2dhN2IxNDczZTU5NWViMGMxODViYWIyOTNmM2VjMmU1MGUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E3YjE0NzNlNTk1ZWIwYzE4NWJhYjI5M2YzZWMyZTUwZSI+bWRuc19yZXNwX3JlbmFtZV9uZXRpZjwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIGNvbnN0IGNoYXIgKmhvc3RuYW1lKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhN2IxNDczZTU5NWViMGMxODViYWIyOTNmM2VjMmU1MGUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSIgaWQ9InJfZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+czhfdCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTgyNGU5OTJlOTRiZTIxNmM4ZTA1OWY0OGY0OWE1OWNlIj5tZG5zX3Jlc3BfYWRkX3NlcnZpY2U8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpzZXJ2aWNlLCBlbnVtIG1kbnNfc2RfcHJvdG8gcHJvdG8sIHUxNl90IHBvcnQsIHUzMl90IGRuc190dGwsIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184aC5odG1sI2EzYjllZTU5NTMyMTQ2NjVlNTg1ZTViY2FmNmI4ZWE4MyI+c2VydmljZV9nZXRfdHh0X2ZuX3Q8L2E+IHR4dF9mbiwgdm9pZCAqdHh0X2RhdGEpPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYTNkZjJhZTc1MWNkZmRmZmIwYTU2NzM5MDk0MGViOGFkIiBpZD0icl9nYTNkZjJhZTc1MWNkZmRmZmIwYTU2NzM5MDk0MGViOGFkIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhM2RmMmFlNzUxY2RmZGZmYjBhNTY3MzkwOTQwZWI4YWQiPm1kbnNfcmVzcF9kZWxfc2VydmljZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHM4X3Qgc2xvdCk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYTNkZjJhZTc1MWNkZmRmZmIwYTU2NzM5MDk0MGViOGFkIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhZjI3Mzg5NzA1OWYxYmJkZGM3NGNmY2I4MjA3NzdkZDkiIGlkPSJyX2dhZjI3Mzg5NzA1OWYxYmJkZGM3NGNmY2I4MjA3NzdkZDkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSI+bWRuc19yZXNwX3JlbmFtZV9zZXJ2aWNlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgczhfdCBzbG90LCBjb25zdCBjaGFyICpuYW1lKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZjI3Mzg5NzA1OWYxYmJkZGM3NGNmY2I4MjA3NzdkZDkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwOWI3YTI1OWY0OTc2NDhkOGVmNzM0YjA4MGY5OTdjMSIgaWQ9InJfZ2EwOWI3YTI1OWY0OTc2NDhkOGVmNzM0YjA4MGY5OTdjMSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+aW50JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMDliN2EyNTlmNDk3NjQ4ZDhlZjczNGIwODBmOTk3YzEiPm1kbnNfcmVzcF9uZXRpZl9hY3RpdmU8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMDliN2EyNTlmNDk3NjQ4ZDhlZjczNGIwODBmOTk3YzEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EyMTMwMTExNjYyZDA0NGIzMjk3MGNlOWM3NjNiZDQwOSIgaWQ9InJfZ2EyMTMwMTExNjYyZDA0NGIzMjk3MGNlOWM3NjNiZDQwOSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+czhfdCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTIxMzAxMTE2NjJkMDQ0YjMyOTcwY2U5Yzc2M2JkNDA5Ij5tZG5zX3Jlc3BfYWRkX3NlcnZpY2U8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpzZXJ2aWNlLCBlbnVtIG1kbnNfc2RfcHJvdG8gcHJvdG8sIHUxNl90IHBvcnQsIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184aC5odG1sI2EzYjllZTU5NTMyMTQ2NjVlNTg1ZTViY2FmNmI4ZWE4MyI+c2VydmljZV9nZXRfdHh0X2ZuX3Q8L2E+IHR4dF9mbiwgdm9pZCAqdHh0X2RhdGEpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EyMTMwMTExNjYyZDA0NGIzMjk3MGNlOWM3NjNiZDQwOSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTU1ZjNmZDQ2Y2ZlMTM3NTQ1MjIxMDY4OGZjMDViZjlhIiBpZD0icl9nYTU1ZjNmZDQ2Y2ZlMTM3NTQ1MjIxMDY4OGZjMDViZjlhIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNTVmM2ZkNDZjZmUxMzc1NDUyMjEwNjg4ZmMwNWJmOWEiPm1kbnNfcmVzcF9kZWxfc2VydmljZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHU4X3Qgc2xvdCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTU1ZjNmZDQ2Y2ZlMTM3NTQ1MjIxMDY4OGZjMDViZjlhIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhYjFlOTg5YTRjNzMwNWQ3NTQzNzdjNzYwNTI0NzRiZWIiIGlkPSJyX2dhYjFlOTg5YTRjNzMwNWQ3NTQzNzdjNzYwNTI0NzRiZWIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FiMWU5ODlhNGM3MzA1ZDc1NDM3N2M3NjA1MjQ3NGJlYiI+bWRuc19yZXNwX3JlbmFtZV9zZXJ2aWNlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgdThfdCBzbG90LCBjb25zdCBjaGFyICpuYW1lKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYjFlOTg5YTRjNzMwNWQ3NTQzNzdjNzYwNTI0NzRiZWIiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwMWM4NTIwMmY0Yjg1ZWRjOGI1NzFmMmY0MTlkYjU3NiIgaWQ9InJfZ2EwMWM4NTIwMmY0Yjg1ZWRjOGI1NzFmMmY0MTlkYjU3NiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTAxYzg1MjAyZjRiODVlZGM4YjU3MWYyZjQxOWRiNTc2Ij5tZG5zX3Jlc3BfYWRkX3NlcnZpY2VfdHh0aXRlbTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCI+bWRuc19zZXJ2aWNlPC9hPiAqc2VydmljZSwgY29uc3QgY2hhciAqdHh0LCB1OF90IHR4dF9sZW4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EwMWM4NTIwMmY0Yjg1ZWRjOGI1NzFmMmY0MTlkYjU3NiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTBjNTYxN2I0ZDAyMTM1M2JiZDBmYjI0ZGRjYjhiM2FjIiBpZD0icl9nYTBjNTYxN2I0ZDAyMTM1M2JiZDBmYjI0ZGRjYjhiM2FjIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiPm1kbnNfc2VhcmNoX3N0b3A8L2E+ICh1OF90IHJlcXVlc3RfaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EwYzU2MTdiNGQwMjEzNTNiYmQwZmIyNGRkY2I4YjNhYyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1IiBpZD0icl9nYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYzM4OGIyZWFiMzc5YTIzZGQxZjQ2ZjJhYzhkNjM3MjUiPm1kbnNfc2VhcmNoX3NlcnZpY2U8L2E+IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpzZXJ2aWNlLCBlbnVtIG1kbnNfc2RfcHJvdG8gcHJvdG8sIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHNlYXJjaF9yZXN1bHRfZm5fdCByZXN1bHRfZm4sIHZvaWQgKmFyZywgdThfdCAqcmVxdWVzdF9pZCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhMGY0NjJmYjkxYTlkMDMyM2JiNDYzNmJkNzI1ZjBlODUiIGlkPSJyX2dhMGY0NjJmYjkxYTlkMDMyM2JiNDYzNmJkNzI1ZjBlODUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EwZjQ2MmZiOTFhOWQwMzIzYmI0NjM2YmQ3MjVmMGU4NSI+bWRuc19yZXNwX2Fubm91bmNlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMzY3YWM4OWRkYWU2Y2JlYzNlMGE5YzU1ZTljNDY3MzciIGlkPSJyX2dhMzY3YWM4OWRkYWU2Y2JlYzNlMGE5YzU1ZTljNDY3MzciPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EzNjdhYzg5ZGRhZTZjYmVjM2UwYTljNTVlOWM0NjczNyI+bWRuc19yZXNwX3Jlc3RhcnRfZGVsYXk8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCB1aW50MzJfdCBkZWxheSk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTM2N2FjODlkZGFlNmNiZWMzZTBhOWM1NWU5YzQ2NzM3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiIGlkPSJyX2dhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E5M2VjY2RjMGQ5YWZmZjBmMjQxNjBkMzFjNzBlMmM5YSI+bWRuc19yZXNwX3Jlc3RhcnQ8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E1ZmExNTk3OGEzOThkYWUxYThkNzYyMGFlMTY5YmRkMyIgaWQ9InJfZ2E1ZmExNTk3OGEzOThkYWUxYThkNzYyMGFlMTY5YmRkMyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTVmYTE1OTc4YTM5OGRhZTFhOGQ3NjIwYWUxNjliZGQzIj5tZG5zX3Jlc3BfaW5pdDwvYT4gKHZvaWQpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E1ZmExNTk3OGEzOThkYWUxYThkNzYyMGFlMTY5YmRkMyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWVlNWI0ODliNzdiNzQ1MTE1MTdkNDFmNzYwOWNjZDQ5IiBpZD0icl9nYWVlNWI0ODliNzdiNzQ1MTE1MTdkNDFmNzYwOWNjZDQ5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkIComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FlZTViNDg5Yjc3Yjc0NTExNTE3ZDQxZjc2MDljY2Q0OSI+bWRuc19nZXRfc2VydmljZV90eHRfdXNlcmRhdGE8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzOF90IHNsb3QpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FlZTViNDg5Yjc3Yjc0NTExNTE3ZDQxZjc2MDljY2Q0OSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxwPlJGQyA2NzYyIC0gTXVsdGljYXN0IEROUzxiciAgLz4KLVJGQyA2NzYzIC0gRE5TLUJhc2VkIFNlcnZpY2UgRGlzY292ZXJ5PGJyICAvPgotIDwvcD48cHJlIGNsYXNzPSJmcmFnbWVudCI+TXVsdGljYXN0IEROUyBmb3IgbHdJUAorIFJGQyA2NzYzIC0gRE5TLUJhc2VkIFNlcnZpY2UgRGlzY292ZXJ5PC9wPgorPHA+WW91IG5lZWQgdG8gaW5jcmVhc2UgTUVNUF9OVU1fU1lTX1RJTUVPVVQgYnkgb25lIGlmIHlvdSB1c2UgTUROUyE8L3A+Cis8cHJlIGNsYXNzPSJmcmFnbWVudCI+TXVsdGljYXN0IEROUyBmb3IgbHdJUAogCiBBdXRob3I6IEVyaWsgRWttYW4KIApAQCAtMTg4LDcgKzE5OSw3IEBACiAKIAogVG8gc3RhcnQgcmVzcG9uZGluZyBvbiBhIG5ldGlmLCBydW4KLSAgbWRuc19yZXNwX2FkZF9uZXRpZihzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBjaGFyICpob3N0bmFtZSwgdTMyX3QgZG5zX3R0bCkKKyAgbWRuc19yZXNwX2FkZF9uZXRpZihzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBjb25zdCBjaGFyICpob3N0bmFtZSkKIAogVGhlIGhvc3RuYW1lIHdpbGwgYmUgY29waWVkLiBJZiB0aGlzIHJldHVybnMgc3VjY2Vzc2Z1bGx5LCB0aGUgbmV0aWYgd2lsbCBqb2luCiB0aGUgbXVsdGljYXN0IGdyb3VwcyBhbmQgYW55IE1ETlMvbGVnYWN5IEROUyByZXF1ZXN0cyBzZW50IHVuaWNhc3Qgb3IgbXVsdGljYXN0CkBAIC0xOTYsNyArMjA3LDYgQEAKIC0gJmx0O2hvc3RuYW1lJmd0Oy5sb2NhbCB0eXBlIEEsIEFBQUEgb3IgQU5ZIHJldHVybnMgcmVsZXZhbnQgSVAgYWRkcmVzc2VzCiAtIFJldmVyc2UgbG9va3VwcyAoUFRSIGluLWFkZHIuYXJwYSwgaXA2LmFycGEpIG9mIG5ldGlmIGFkZHJlc3NlcwogICByZXR1cm5zICZsdDtob3N0bmFtZSZndDsubG9jYWwKLUFuc3dlcnMgd2lsbCB1c2UgdGhlIHN1cHBsaWVkIFRUTCAoaW4gc2Vjb25kcykKIE1ETlMgYWxsb3dzIFVURi04IG5hbWVzLCBidXQgaXQgaXMgcmVjb21tZW5kZWQgdG8gc3RheSB3aXRoaW4gQVNDSUksCiBzaW5jZSB0aGUgZGVmYXVsdCBjYXNlLWluc2Vuc2l0aXZlIGNvbXBhcmlzb24gYXNzdW1lcyB0aGlzLgogCkBAIC0yMTQsOCArMjI0LDggQEAKID09PT09PT09PT09PT09PT0KIAogVGhlIG5ldGlmIGZpcnN0IG5lZWRzIHRvIGJlIHJlZ2lzdGVyZWQuIFRoZW4gcnVuCi0gIG1kbnNfcmVzcF9hZGRfc2VydmljZShzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBjaGFyICpuYW1lLCBjaGFyICpzZXJ2aWNlLAotICAgICAgdTE2X3QgcHJvdG8sIHUxNl90IHBvcnQsIHUzMl90IGRuc190dGwsCisgIG1kbnNfcmVzcF9hZGRfc2VydmljZShzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpzZXJ2aWNlLAorICAgICAgZW51bSBtZG5zX3NkX3Byb3RvIHByb3RvLCB1MTZfdCBwb3J0LAogICAgICAgc2VydmljZV9nZXRfdHh0X2ZuX3QgdHh0X2ZuLCB2b2lkICp0eHRfdXNlcmRhdGEpOwogCiBUaGUgbmFtZSBhbmQgc2VydmljZSBwb2ludGVycyB3aWxsIGJlIGNvcGllZC4gTmFtZSByZWZlcnMgdG8gdGhlIG5hbWUgb2YgdGhlCkBAIC0yNDMsNyArMjUzLDcgQEAKIElmIHlvdXIgZGV2aWNlIHJ1bnMgYSB3ZWJzZXJ2ZXIgb24gcG9ydCA4MCwgYW4gZXhhbXBsZSBjYWxsIG1pZ2h0IGJlOgogCiAgIG1kbnNfcmVzcF9hZGRfc2VydmljZShuZXRpZiwgIm15d2ViIiwgIl9odHRwIgotICAgICAgRE5TU0RfUFJPVE9fVENQLCA4MCwgMzYwMCwgc3J2X3R4dCwgTlVMTCk7CisgICAgICBETlNTRF9QUk9UT19UQ1AsIDgwLCBzcnZfdHh0LCBOVUxMKTsKIAogd2hpY2ggd2lsbCBwdWJsaXNoIG15d2ViLl9odHRwLl90Y3AubG9jYWwgZm9yIGFueSBob3N0cyBsb29raW5nIGZvciB3ZWIgc2VydmVycywKIGFuZCBwb2ludCB0aGVtIHRvICZsdDtob3N0bmFtZSZndDsubG9jYWw6ODAKQEAgLTI1MiwxNSArMjYyLDEyIEBACiByZXF1ZXN0cyByZXF1aXJlZCBmcm9tIGEgY2xpZW50LgogCiBUbyByZW1vdmUgYSBzZXJ2aWNlIGZyb20gYSBuZXRpZiwgcnVuCi0gIG1kbnNfcmVzcF9kZWxfc2VydmljZShzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBzOF90IHNsb3QpCisgIG1kbnNfcmVzcF9kZWxfc2VydmljZShzdHJ1Y3QgbmV0aWYgKm5ldGlmLCB1OF90IHNsb3QpCiA8L3ByZT48aDI+VGhpbmdzIGxlZnQgdG8gaW1wbGVtZW50OiA8L2gyPgogPHVsPgotPGxpPlRpZWJyZWFraW5nIGZvciBzaW11bHRhbmVvdXMgcHJvYmluZzwvbGk+CiA8bGk+U2VuZGluZyBnb29kYnllIG1lc3NhZ2VzICh6ZXJvIHR0bCkgLSBzaHV0ZG93biwgREhDUCBsZWFzZSBhYm91dCB0byBleHBpcmUsIERIQ1AgdHVybmVkIG9mZi4uLjwvbGk+Ci08bGk+Q2hlY2tpbmcgdGhhdCBzb3VyY2UgYWRkcmVzcyBvZiB1bmljYXN0IHJlcXVlc3RzIGFyZSBvbiB0aGUgc2FtZSBuZXR3b3JrPC9saT4KLTxsaT5MaW1pdGluZyBtdWx0aWNhc3QgcmVzcG9uc2VzIHRvIDEgcGVyIHNlY29uZCBwZXIgcmVzb3VyY2UgcmVjb3JkPC9saT4KKzxsaT5TZW5kaW5nIG5lZ2F0aXZlIHJlc3BvbnNlcyBOU0VDPC9saT4KIDxsaT5GcmFnbWVudGluZyByZXBsaWVzIGlmIHJlcXVpcmVkPC9saT4KLTxsaT5IYW5kbGluZyBtdWx0aS1wYWNrZXQga25vd24gYW5zd2VyczwvbGk+CiA8bGk+SW5kaXZpZHVhbCBrbm93biBhbnN3ZXIgZGV0ZWN0aW9uIGZvciBhbGwgbG9jYWwgSVB2NiBhZGRyZXNzZXM8L2xpPgogPGxpPkR5bmFtaWMgc2l6ZSBvZiBvdXRnb2luZyBwYWNrZXQgPC9saT4KIDwvdWw+CkBAIC0yODAsOCArMjg3LDggQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iI2dhMGY0NjJmYjkxYTlkMDMyM2JiNDYzNmJkNzI1ZjBlODUiPm1kbnNfcmVzcF9hbm5vdW5jZTwvYT4oPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX21kbnNfaHRtbF9nYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1Ij5tZG5zX3Jlc3BfYW5ub3VuY2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG1kbnNfcmVzcF9hbm5vdW5jZShzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBtZG5zLmM6MjMxNzwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjYwPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX21kbnNfaHRtbF9nYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1Ij5tZG5zX3Jlc3BfYW5ub3VuY2U8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG1kbnNfcmVzcF9hbm5vdW5jZShzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBtZG5zLmM6MjcyMTwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjY5PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkFubm91bmNlIElQIHNldHRpbmdzIGhhdmUgY2hhbmdlZCBvbiBuZXRpZi4gQ2FsbCB0aGlzIGluIHlvdXIgY2FsbGJhY2sgcmVnaXN0ZXJlZCBieSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhZGM4Nzg3YjIzYWMwZWUwMjM5NzljYmFkZjg3ODEzZDQiPm5ldGlmX3NldF9zdGF0dXNfY2FsbGJhY2soKTwvYT4uIE5vIG5lZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHdoZW4gTFdJUF9ORVRJRl9FWFRfU1RBVFVTX0NBTExCQUNLPT0xLCB0aGlzIGhhbmRsZWQgYXV0b21hdGljYWxseSBmb3IgeW91LiA8L3A+PGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CiAgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPm5ldGlmPC90ZD48dGQ+VGhlIG5ldHdvcmsgaW50ZXJmYWNlIHdoZXJlIHNldHRpbmdzIGhhdmUgY2hhbmdlZC4gPC90ZD48L3RyPgpAQCAtMjkyLDggKzI5OSwzNiBAQAogPC9kaXY+CiA8L2Rpdj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgotPGEgaWQ9ImdhYTYxOWFjOGY0NmE0YjQwMjExOTU3MjBmMDM1NWNiZWIiIG5hbWU9ImdhYTYxOWFjOGY0NmE0YjQwMjExOTU3MjBmMDM1NWNiZWIiPjwvYT4KLTxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYWE2MTlhYzhmNDZhNGI0MDIxMTk1NzIwZjAzNTVjYmViIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5tZG5zX3Jlc3BfYWRkX25ldGlmKCk8L2gyPgorPGEgaWQ9ImdhZWU1YjQ4OWI3N2I3NDUxMTUxN2Q0MWY3NjA5Y2NkNDkiIG5hbWU9ImdhZWU1YjQ4OWI3N2I3NDUxMTUxN2Q0MWY3NjA5Y2NkNDkiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYWVlNWI0ODliNzdiNzQ1MTE1MTdkNDFmNzYwOWNjZDQ5Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5tZG5zX2dldF9zZXJ2aWNlX3R4dF91c2VyZGF0YSgpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkICogbWRuc19nZXRfc2VydmljZV90eHRfdXNlcmRhdGEgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnM4X3Q8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnNsb3Q8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+UmV0dXJuIFRYVCB1c2VyZGF0YSBvZiBhIHNwZWNpZmljIHNlcnZpY2Ugb24gYSBuZXR3b3JrIGludGVyZmFjZS4gPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPk5ldHdvcmsgaW50ZXJmYWNlLiA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5zbG90PC90ZD48dGQ+U2VydmljZSBpbmRleC4gPC90ZD48L3RyPgorICA8L3RhYmxlPgorICA8L2RkPgorPC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYTY3Zjg0MmMyN2YzN2MwM2I0OGQxMGU0Y2U2ODU2YjhlIiBuYW1lPSJnYTY3Zjg0MmMyN2YzN2MwM2I0OGQxMGU0Y2U2ODU2YjhlIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E2N2Y4NDJjMjdmMzdjMDNiNDhkMTBlNGNlNjg1NmI4ZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bWRuc19yZXNwX2FkZF9uZXRpZigpPC9oMj4KIAogPGRpdiBjbGFzcz0ibWVtaXRlbSI+CiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CkBAIC0zMDYsMTIgKzM0MSw3IEBACiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgogICAgICAgICAgIDx0ZD48L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5jb25zdCBjaGFyICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmhvc3RuYW1lPC9lbT48L3NwYW4+LCA8L3RkPgotICAgICAgICA8L3RyPgotICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KLSAgICAgICAgICA8dGQ+PC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dTMyX3Q8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmRuc190dGw8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3QgY2hhciAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5ob3N0bmFtZTwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CkBAIC0zMTksNyArMzQ5LDYgQEAKICAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bmV0aWY8L3RkPjx0ZD5UaGUgbmV0d29yayBpbnRlcmZhY2UgdG8gYWN0aXZhdGUuIDwvdGQ+PC90cj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmhvc3RuYW1lPC90ZD48dGQ+TmFtZSB0byB1c2UuIFF1ZXJpZXMgZm9yICZsdDtob3N0bmFtZSZndDsubG9jYWwgd2lsbCBiZSBhbnN3ZXJlZCB3aXRoIHRoZSBJUCBhZGRyZXNzZXMgb2YgdGhlIG5ldGlmLiBUaGUgaG9zdG5hbWUgd2lsbCBiZSBjb3BpZWQsIHRoZSBnaXZlbiBwb2ludGVyIGNhbiBiZSBvbiB0aGUgc3RhY2suIDwvdGQ+PC90cj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmRuc190dGw8L3RkPjx0ZD5WYWxpZGl0eSB0aW1lIGluIHNlY29uZHMgdG8gc2VuZCBvdXQgZm9yIElQIGFkZHJlc3MgZGF0YSBpbiBETlMgcmVwbGllcyA8L3RkPjwvdHI+CiAgIDwvdGFibGU+CiAgIDwvZGQ+CiA8L2RsPgpAQCAtMzI3LDggKzM1Niw4IEBACiAKIDwvZGl2PgogPC9kaXY+Ci08YSBpZD0iZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSIgbmFtZT0iZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhODI0ZTk5MmU5NGJlMjE2YzhlMDU5ZjQ4ZjQ5YTU5Y2UiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfcmVzcF9hZGRfc2VydmljZSgpPC9oMj4KKzxhIGlkPSJnYTIxMzAxMTE2NjJkMDQ0YjMyOTcwY2U5Yzc2M2JkNDA5IiBuYW1lPSJnYTIxMzAxMTE2NjJkMDQ0YjMyOTcwY2U5Yzc2M2JkNDA5Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2EyMTMwMTExNjYyZDA0NGIzMjk3MGNlOWM3NjNiZDQwOSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bWRuc19yZXNwX2FkZF9zZXJ2aWNlKCk8L2gyPgogCiA8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KIDxkaXYgY2xhc3M9Im1lbXByb3RvIj4KQEAgLTM2MSwxMSArMzkwLDYgQEAKICAgICAgICAgPHRyPgogICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CiAgICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnUzMl90PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5kbnNfdHRsPC9lbT48L3NwYW4+LCA8L3RkPgotICAgICAgICA8L3RyPgotICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KLSAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhoLmh0bWwjYTNiOWVlNTk1MzIxNDY2NWU1ODVlNWJjYWY2YjhlYTgzIj5zZXJ2aWNlX2dldF90eHRfZm5fdDwvYT48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnR4dF9mbjwvZW0+PC9zcGFuPiwgPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgICAgPHRyPgpAQCAtMzgyLDcgKzQwNiw2IEBACiAgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5zZXJ2aWNlPC90ZD48dGQ+VGhlIHNlcnZpY2UgdHlwZSwgbGlrZSAiX2h0dHAiIDwvdGQ+PC90cj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnByb3RvPC90ZD48dGQ+VGhlIHNlcnZpY2UgcHJvdG9jb2wsIEROU1NEX1BST1RPX1RDUCBmb3IgVENQICgiX3RjcCIpIGFuZCBETlNTRF9QUk9UT19VRFAgZm9yIG90aGVycyAoIl91ZHAiKSA8L3RkPjwvdHI+CiAgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5wb3J0PC90ZD48dGQ+VGhlIHBvcnQgdGhlIHNlcnZpY2UgbGlzdGVucyB0byA8L3RkPjwvdHI+Ci0gICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5kbnNfdHRsPC90ZD48dGQ+VmFsaWRpdHkgdGltZSBpbiBzZWNvbmRzIHRvIHNlbmQgb3V0IGZvciBzZXJ2aWNlIGRhdGEgaW4gRE5TIHJlcGxpZXMgPC90ZD48L3RyPgogICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+dHh0X2ZuPC90ZD48dGQ+Q2FsbGJhY2sgdG8gZ2V0IFRYVCBkYXRhLiBXaWxsIGJlIGNhbGxlZCBlYWNoIHRpbWUgYSBUWFQgcmVwbHkgaXMgY3JlYXRlZCB0byBhbGxvdyBkeW5hbWljIHJlcGxpZXMuIDwvdGQ+PC90cj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnR4dF9kYXRhPC90ZD48dGQ+VXNlcmRhdGEgcG9pbnRlciBmb3IgdHh0X2ZuIDwvdGQ+PC90cj4KICAgPC90YWJsZT4KQEAgLTQ1MCw4ICs0NzMsOCBAQAogCiA8L2Rpdj4KIDwvZGl2PgotPGEgaWQ9ImdhM2RmMmFlNzUxY2RmZGZmYjBhNTY3MzkwOTQwZWI4YWQiIG5hbWU9ImdhM2RmMmFlNzUxY2RmZGZmYjBhNTY3MzkwOTQwZWI4YWQiPjwvYT4KLTxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTNkZjJhZTc1MWNkZmRmZmIwYTU2NzM5MDk0MGViOGFkIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5tZG5zX3Jlc3BfZGVsX3NlcnZpY2UoKTwvaDI+Cis8YSBpZD0iZ2E1NWYzZmQ0NmNmZTEzNzU0NTIyMTA2ODhmYzA1YmY5YSIgbmFtZT0iZ2E1NWYzZmQ0NmNmZTEzNzU0NTIyMTA2ODhmYzA1YmY5YSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhNTVmM2ZkNDZjZmUxMzc1NDUyMjEwNjg4ZmMwNWJmOWEiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfcmVzcF9kZWxfc2VydmljZSgpPC9oMj4KIAogPGRpdiBjbGFzcz0ibWVtaXRlbSI+CiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CkBAIC00NjQsNyArNDg3LDcgQEAKICAgICAgICAgPHRyPgogICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CiAgICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnM4X3Q8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnNsb3Q8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dThfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+c2xvdDwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CkBAIC00OTcsNiArNTIwLDMwIEBACiAKIDwvZGl2PgogPC9kaXY+Cis8YSBpZD0iZ2EwOWI3YTI1OWY0OTc2NDhkOGVmNzM0YjA4MGY5OTdjMSIgbmFtZT0iZ2EwOWI3YTI1OWY0OTc2NDhkOGVmNzM0YjA4MGY5OTdjMSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMDliN2EyNTlmNDk3NjQ4ZDhlZjczNGIwODBmOTk3YzEiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfcmVzcF9uZXRpZl9hY3RpdmUoKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+aW50IG1kbnNfcmVzcF9uZXRpZl9hY3RpdmUgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5DaGVja3MgaWYgYW4gTUROUyByZXNwb25kZXIgaXMgYWN0aXZlIGZvciBhIGdpdmVuIG5ldHdvcmsgaW50ZXJmYWNlLiA8L3A+PGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CisgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPm5ldGlmPC90ZD48dGQ+VGhlIG5ldHdvcmsgaW50ZXJmYWNlIHRvIHRlc3QuIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPm5vbnplcm8gaWYgcmVzcG9uZGVyIGFjdGl2ZSwgemVybyBvdGhlcndpc2UuIDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KIDxhIGlkPSJnYWE4MTQ0ZTNjNzdhOTJjNDA0M2U2MjE0ZmY2YjYwMTBjIiBuYW1lPSJnYWE4MTQ0ZTNjNzdhOTJjNDA0M2U2MjE0ZmY2YjYwMTBjIj48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FhODE0NGUzYzc3YTkyYzQwNDNlNjIxNGZmNmI2MDEwYyI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bWRuc19yZXNwX3JlbW92ZV9uZXRpZigpPC9oMj4KIApAQCAtNTUwLDggKzU5Nyw4IEBACiAKIDwvZGl2PgogPC9kaXY+Ci08YSBpZD0iZ2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSIgbmFtZT0iZ2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhZjI3Mzg5NzA1OWYxYmJkZGM3NGNmY2I4MjA3NzdkZDkiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfcmVzcF9yZW5hbWVfc2VydmljZSgpPC9oMj4KKzxhIGlkPSJnYWIxZTk4OWE0YzczMDVkNzU0Mzc3Yzc2MDUyNDc0YmViIiBuYW1lPSJnYWIxZTk4OWE0YzczMDVkNzU0Mzc3Yzc2MDUyNDc0YmViIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FiMWU5ODlhNGM3MzA1ZDc1NDM3N2M3NjA1MjQ3NGJlYiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bWRuc19yZXNwX3JlbmFtZV9zZXJ2aWNlKCk8L2gyPgogCiA8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KIDxkaXYgY2xhc3M9Im1lbXByb3RvIj4KQEAgLTU2NCw3ICs2MTEsNyBAQAogICAgICAgICA8dHI+CiAgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KICAgICAgICAgICA8dGQ+PC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+czhfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+c2xvdDwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dThfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+c2xvdDwvZW0+PC9zcGFuPiwgPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgICAgPHRyPgogICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CkBAIC02MDgsNiArNjU1LDExNiBAQAogCiA8L2Rpdj4KIDwvZGl2PgorPGEgaWQ9ImdhMzY3YWM4OWRkYWU2Y2JlYzNlMGE5YzU1ZTljNDY3MzciIG5hbWU9ImdhMzY3YWM4OWRkYWU2Y2JlYzNlMGE5YzU1ZTljNDY3MzciPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTM2N2FjODlkZGFlNmNiZWMzZTBhOWM1NWU5YzQ2NzM3Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5tZG5zX3Jlc3BfcmVzdGFydF9kZWxheSgpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIG1kbnNfcmVzcF9yZXN0YXJ0X2RlbGF5IDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bmV0aWY8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51aW50MzJfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+ZGVsYXk8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+UmVzdGFydCBtZG5zIHJlc3BvbmRlciBhZnRlciBhIHNwZWNpZmllZCBkZWxheS4gQ2FsbCB0aGlzIHdoZW4gY2FibGUgaXMgY29ubmVjdGVkIGFmdGVyIGJlaW5nIGRpc2Nvbm5lY3RlZCBvciBhZG1pbmlzdHJhdGl2ZSBpbnRlcmZhY2UgaXMgc2V0IHVwIGFmdGVyIGJlaW5nIGRvd24gPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPlRoZSBuZXR3b3JrIGludGVyZmFjZSB0byBzZW5kIG9uIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmRlbGF5PC90ZD48dGQ+VGhlIGRlbGF5IHRvIHVzZSBiZWZvcmUgc2VuZGluZyBwcm9iZSA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImdhYzM4OGIyZWFiMzc5YTIzZGQxZjQ2ZjJhYzhkNjM3MjUiIG5hbWU9ImdhYzM4OGIyZWFiMzc5YTIzZGQxZjQ2ZjJhYzhkNjM3MjUiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5tZG5zX3NlYXJjaF9zZXJ2aWNlKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gbWRuc19zZWFyY2hfc2VydmljZSA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3QgY2hhciAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uYW1lPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3QgY2hhciAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5zZXJ2aWNlPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+ZW51bSBtZG5zX3NkX3Byb3RvPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5wcm90bzwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnNlYXJjaF9yZXN1bHRfZm5fdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+cmVzdWx0X2ZuPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dm9pZCAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hcmc8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51OF90ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnJlcXVlc3RfaWQ8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+U2VhcmNoIGEgc3BlY2lmaWMgc2VydmljZSBvbiB0aGUgbmV0d29yay4gPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uYW1lPC90ZD48dGQ+VGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+c2VydmljZTwvdGQ+PHRkPlRoZSBzZXJ2aWNlIHR5cGUsIGxpa2UgIl9odHRwIiA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5wcm90bzwvdGQ+PHRkPlRoZSBzZXJ2aWNlIHByb3RvY29sLCBETlNTRF9QUk9UT19UQ1AgZm9yIFRDUCAoIl90Y3AiKSBhbmQgRE5TU0RfUFJPVE9fVURQIGZvciBvdGhlcnMgKCJfdWRwIikgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bmV0aWY8L3RkPjx0ZD5UaGUgbmV0d29yayBpbnRlcmZhY2Ugd2hlcmUgdG8gc2VuZCBzZWFyY2ggcmVxdWVzdCA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5yZXN1bHRfZm48L3RkPjx0ZD5DYWxsYmFjayB0byBzZW5kIGFuc3dlciByZWNlaXZlZC4gV2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggYW5zd2VyIG9mIGEgcmVzcG9uc2UgZnJhbWUgbWF0Y2hpbmcgcmVxdWVzdCBzZW50LiA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5hcmc8L3RkPjx0ZD5Vc2VyZGF0YSBwb2ludGVyIGZvciByZXN1bHRfZm4gPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+cmVxdWVzdF9pZDwvdGQ+PHRkPlJldHVybmVkIHJlcXVlc3QgaWRlbnRpZmllciB0byBhbGxvdyBzdG9wIGl0LiA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5FUlJfT0sgaWYgdGhlIHNlYXJjaCByZXF1ZXN0IHdhcyBjcmVhdGVkIGFuZCBzZW50LCBhbiBlcnJfdCBvdGhlcndpc2UgPC9kZD48L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImdhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiIG5hbWU9ImdhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTBjNTYxN2I0ZDAyMTM1M2JiZDBmYjI0ZGRjYjhiM2FjIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5tZG5zX3NlYXJjaF9zdG9wKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgbWRuc19zZWFyY2hfc3RvcCA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dThfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+cmVxdWVzdF9pZDwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5TdG9wIGEgc2VhcmNoIHJlcXVlc3QuIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+cmVxdWVzdF9pZDwvdGQ+PHRkPlRoZSBzZWFyY2ggcmVxdWVzdCB0byBzdG9wIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+CisKKzwvZGl2PgorPC9kaXY+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KIDwhLS0gc3RhcnQgZm9vdGVyIHBhcnQgLS0+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbWRucy5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19tZG5zLmpzCmluZGV4IDM3NTAzYTMuLjZkOTVlYTAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19tZG5zLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19tZG5zLmpzCkBAIC0yLDE0ICsyLDE5IEBACiBbCiAgICAgWyAiT3B0aW9ucyIsICJncm91cF9fbWRuc19fb3B0cy5odG1sIiwgImdyb3VwX19tZG5zX19vcHRzIiBdLAogICAgIFsgIm1kbnNfcmVzcF9uZXRpZl9zZXR0aW5nc19jaGFuZ2VkIiwgImdyb3VwX19tZG5zLmh0bWwjZ2FiMmVkYmExMmQ1Y2FkMTk0OWY3Y2EwNDBhZTEyYmVlYyIsIG51bGwgXSwKLSAgICBbICJtZG5zX3Jlc3BfYWRkX25ldGlmIiwgImdyb3VwX19tZG5zLmh0bWwjZ2FhNjE5YWM4ZjQ2YTRiNDAyMTE5NTcyMGYwMzU1Y2JlYiIsIG51bGwgXSwKLSAgICBbICJtZG5zX3Jlc3BfYWRkX3NlcnZpY2UiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTgyNGU5OTJlOTRiZTIxNmM4ZTA1OWY0OGY0OWE1OWNlIiwgbnVsbCBdLAorICAgIFsgIm1kbnNfZ2V0X3NlcnZpY2VfdHh0X3VzZXJkYXRhIiwgImdyb3VwX19tZG5zLmh0bWwjZ2FlZTViNDg5Yjc3Yjc0NTExNTE3ZDQxZjc2MDljY2Q0OSIsIG51bGwgXSwKKyAgICBbICJtZG5zX3Jlc3BfYWRkX25ldGlmIiwgImdyb3VwX19tZG5zLmh0bWwjZ2E2N2Y4NDJjMjdmMzdjMDNiNDhkMTBlNGNlNjg1NmI4ZSIsIG51bGwgXSwKKyAgICBbICJtZG5zX3Jlc3BfYWRkX3NlcnZpY2UiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTIxMzAxMTE2NjJkMDQ0YjMyOTcwY2U5Yzc2M2JkNDA5IiwgbnVsbCBdLAogICAgIFsgIm1kbnNfcmVzcF9hZGRfc2VydmljZV90eHRpdGVtIiwgImdyb3VwX19tZG5zLmh0bWwjZ2EwMWM4NTIwMmY0Yjg1ZWRjOGI1NzFmMmY0MTlkYjU3NiIsIG51bGwgXSwKICAgICBbICJtZG5zX3Jlc3BfYW5ub3VuY2UiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1IiwgbnVsbCBdLAotICAgIFsgIm1kbnNfcmVzcF9kZWxfc2VydmljZSIsICJncm91cF9fbWRucy5odG1sI2dhM2RmMmFlNzUxY2RmZGZmYjBhNTY3MzkwOTQwZWI4YWQiLCBudWxsIF0sCisgICAgWyAibWRuc19yZXNwX2RlbF9zZXJ2aWNlIiwgImdyb3VwX19tZG5zLmh0bWwjZ2E1NWYzZmQ0NmNmZTEzNzU0NTIyMTA2ODhmYzA1YmY5YSIsIG51bGwgXSwKICAgICBbICJtZG5zX3Jlc3BfaW5pdCIsICJncm91cF9fbWRucy5odG1sI2dhNWZhMTU5NzhhMzk4ZGFlMWE4ZDc2MjBhZTE2OWJkZDMiLCBudWxsIF0sCisgICAgWyAibWRuc19yZXNwX25ldGlmX2FjdGl2ZSIsICJncm91cF9fbWRucy5odG1sI2dhMDliN2EyNTlmNDk3NjQ4ZDhlZjczNGIwODBmOTk3YzEiLCBudWxsIF0sCiAgICAgWyAibWRuc19yZXNwX3JlbW92ZV9uZXRpZiIsICJncm91cF9fbWRucy5odG1sI2dhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiLCBudWxsIF0sCiAgICAgWyAibWRuc19yZXNwX3JlbmFtZV9uZXRpZiIsICJncm91cF9fbWRucy5odG1sI2dhN2IxNDczZTU5NWViMGMxODViYWIyOTNmM2VjMmU1MGUiLCBudWxsIF0sCi0gICAgWyAibWRuc19yZXNwX3JlbmFtZV9zZXJ2aWNlIiwgImdyb3VwX19tZG5zLmh0bWwjZ2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSIsIG51bGwgXSwKLSAgICBbICJtZG5zX3Jlc3BfcmVzdGFydCIsICJncm91cF9fbWRucy5odG1sI2dhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiLCBudWxsIF0KKyAgICBbICJtZG5zX3Jlc3BfcmVuYW1lX3NlcnZpY2UiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYWIxZTk4OWE0YzczMDVkNzU0Mzc3Yzc2MDUyNDc0YmViIiwgbnVsbCBdLAorICAgIFsgIm1kbnNfcmVzcF9yZXN0YXJ0IiwgImdyb3VwX19tZG5zLmh0bWwjZ2E5M2VjY2RjMGQ5YWZmZjBmMjQxNjBkMzFjNzBlMmM5YSIsIG51bGwgXSwKKyAgICBbICJtZG5zX3Jlc3BfcmVzdGFydF9kZWxheSIsICJncm91cF9fbWRucy5odG1sI2dhMzY3YWM4OWRkYWU2Y2JlYzNlMGE5YzU1ZTljNDY3MzciLCBudWxsIF0sCisgICAgWyAibWRuc19zZWFyY2hfc2VydmljZSIsICJncm91cF9fbWRucy5odG1sI2dhYzM4OGIyZWFiMzc5YTIzZGQxZjQ2ZjJhYzhkNjM3MjUiLCBudWxsIF0sCisgICAgWyAibWRuc19zZWFyY2hfc3RvcCIsICJncm91cF9fbWRucy5odG1sI2dhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiLCBudWxsIF0KIF07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21kbnNfX29wdHMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19tZG5zX19vcHRzLmh0bWwKaW5kZXggZmE3NTY0Ny4uNzBlYzk4MCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21kbnNfX29wdHMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbWRuc19fb3B0cy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwNywxMyArMTA3LDM4IEBACiBNYWNyb3M8L2gyPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTgyNzQ5ZWUwOGJlMjE5NjdiNmRhZjU3N2I5NzEwYWM2IiBpZD0icl9nYTgyNzQ5ZWUwOGJlMjE5NjdiNmRhZjU3N2I5NzEwYWM2Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhODI3NDllZTA4YmUyMTk2N2I2ZGFmNTc3Yjk3MTBhYzYiPk1ETlNfTUFYX1NFUlZJQ0VTPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzE8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTgyNzQ5ZWUwOGJlMjE5NjdiNmRhZjU3N2I5NzEwYWM2Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhN2Y2ODUzZDAxYWQzMmViNmNlOTlhZTU1MzA3YTM3ZDkiIGlkPSJyX2dhN2Y2ODUzZDAxYWQzMmViNmNlOTlhZTU1MzA3YTM3ZDkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E3ZjY4NTNkMDFhZDMyZWI2Y2U5OWFlNTUzMDdhMzdkOSI+TUROU19QUk9CRV9ERUxBWV9NUzwvYT4mIzE2MDsmIzE2MDsmIzE2MDsyNTA8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTdmNjg1M2QwMWFkMzJlYjZjZTk5YWU1NTMwN2EzN2Q5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhODI3ZDFkMmFiZDI0YTI2NjM4NzIzY2ZkMGE4YjllZmQiIGlkPSJyX2dhODI3ZDFkMmFiZDI0YTI2NjM4NzIzY2ZkMGE4YjllZmQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E4MjdkMWQyYWJkMjRhMjY2Mzg3MjNjZmQwYThiOWVmZCI+TUROU19NQVhfU1RPUkVEX1BLVFM8L2E+JiMxNjA7JiMxNjA7JiMxNjA7NDwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhODI3ZDFkMmFiZDI0YTI2NjM4NzIzY2ZkMGE4YjllZmQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwZjBhZGY3YjFkNzQyYjRlYTgxOGMxYjdmNmIwYzU0NyIgaWQ9InJfZ2EwZjBhZGY3YjFkNzQyYjRlYTgxOGMxYjdmNmIwYzU0NyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTBmMGFkZjdiMWQ3NDJiNGVhODE4YzFiN2Y2YjBjNTQ3Ij5NRE5TX09VVFBVVF9QQUNLRVRfU0laRTwvYT4mIzE2MDsmIzE2MDsmIzE2MDsoKDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhODI3NDllZTA4YmUyMTk2N2I2ZGFmNTc3Yjk3MTBhYzYiPk1ETlNfTUFYX1NFUlZJQ0VTPC9hPiA9PSAxKSA/IDUxMiA6IDE0NTApPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EwZjBhZGY3YjFkNzQyYjRlYTgxOGMxYjdmNmIwYzU0NyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTE3MmU1NzljZDA5YTFkYjUxY2YyMjQzMTljMDEyMzk2IiBpZD0icl9nYTE3MmU1NzljZDA5YTFkYjUxY2YyMjQzMTljMDEyMzk2Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMTcyZTU3OWNkMDlhMWRiNTFjZjIyNDMxOWMwMTIzOTYiPk1ETlNfUkVTUF9VU0VORVRJRl9FWFRDQUxMQkFDSzwvYT4mIzE2MDsmIzE2MDsmIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19uZXRpZi5odG1sI2dhMDkwNDgyODY3YmEwNGQ0NDJhYjViOGFkNzQ1YzBlMWUiPkxXSVBfTkVUSUZfRVhUX1NUQVRVU19DQUxMQkFDSzwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTE3MmU1NzljZDA5YTFkYjUxY2YyMjQzMTljMDEyMzk2Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhYWY0ODk2MDRkY2RmOTRkMmFkY2Q3MjNmNmM3ZDcxNjMiIGlkPSJyX2dhYWY0ODk2MDRkY2RmOTRkMmFkY2Q3MjNmNmM3ZDcxNjMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FhZjQ4OTYwNGRjZGY5NGQyYWRjZDcyM2Y2YzdkNzE2MyI+TFdJUF9NRE5TX1NFQVJDSDwvYT4mIzE2MDsmIzE2MDsmIzE2MDsxPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FhZjQ4OTYwNGRjZGY5NGQyYWRjZDcyM2Y2YzdkNzE2MyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTE3YTk4ODRhZjgxNjljZjE5ZDU3ZDgwMDVmYzNkOTVlIiBpZD0icl9nYTE3YTk4ODRhZjgxNjljZjE5ZDU3ZDgwMDVmYzNkOTVlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMTdhOTg4NGFmODE2OWNmMTlkNTdkODAwNWZjM2Q5NWUiPk1ETlNfTUFYX1JFUVVFU1RTPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzI8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTE3YTk4ODRhZjgxNjljZjE5ZDU3ZDgwMDVmYzNkOTVlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhNTNhOTc1MDJlZmRjZjEyMTRjYWI0MDc4ZjkzYTZkYzkiIGlkPSJyX2dhNTNhOTc1MDJlZmRjZjEyMTRjYWI0MDc4ZjkzYTZkYzkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E1M2E5NzUwMmVmZGNmMTIxNGNhYjQwNzhmOTNhNmRjOSI+TUROU19ERUJVRzwvYT4mIzE2MDsmIzE2MDsmIzE2MDs8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kZWJ1Z2dpbmdfX2xldmVscy5odG1sI2dhZGFiMWNkYzNmNDU5MzlhM2E1YzlhM2Q3ZTA0OTg3ZTEiPkxXSVBfREJHX09GRjwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTUzYTk3NTAyZWZkY2YxMjE0Y2FiNDA3OGY5M2E2ZGM5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPGgyIGNsYXNzPSJncm91cGhlYWRlciI+TWFjcm8gRGVmaW5pdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KKzxhIGlkPSJnYWFmNDg5NjA0ZGNkZjk0ZDJhZGNkNzIzZjZjN2Q3MTYzIiBuYW1lPSJnYWFmNDg5NjA0ZGNkZjk0ZDJhZGNkNzIzZjZjN2Q3MTYzIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FhZjQ4OTYwNGRjZGY5NGQyYWRjZDcyM2Y2YzdkNzE2MyI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+TFdJUF9NRE5TX1NFQVJDSDwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBMV0lQX01ETlNfU0VBUkNIJiMxNjA7JiMxNjA7JiMxNjA7MTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkxXSVBfTUROU19TRUFSQ0g9PTE6IFR1cm4gb24gc2VhcmNoIG92ZXIgbXVsdGljYXN0IEROUyBtb2R1bGUuIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxhIGlkPSJnYTUzYTk3NTAyZWZkY2YxMjE0Y2FiNDA3OGY5M2E2ZGM5IiBuYW1lPSJnYTUzYTk3NTAyZWZkY2YxMjE0Y2FiNDA3OGY5M2E2ZGM5Ij48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E1M2E5NzUwMmVmZGNmMTIxNGNhYjQwNzhmOTNhNmRjOSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+TUROU19ERUJVRzwvaDI+CiAKQEAgLTEyOSw2ICsxNTQsMjEgQEAKIAogPC9kaXY+CiA8L2Rpdj4KKzxhIGlkPSJnYTE3YTk4ODRhZjgxNjljZjE5ZDU3ZDgwMDVmYzNkOTVlIiBuYW1lPSJnYTE3YTk4ODRhZjgxNjljZjE5ZDU3ZDgwMDVmYzNkOTVlIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2ExN2E5ODg0YWY4MTY5Y2YxOWQ1N2Q4MDA1ZmMzZDk1ZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+TUROU19NQVhfUkVRVUVTVFM8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgTUROU19NQVhfUkVRVUVTVFMmIzE2MDsmIzE2MDsmIzE2MDsyPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIHJ1bm5pbmcgcmVxdWVzdHMgPC9wPgorCis8L2Rpdj4KKzwvZGl2PgogPGEgaWQ9ImdhODI3NDllZTA4YmUyMTk2N2I2ZGFmNTc3Yjk3MTBhYzYiIG5hbWU9ImdhODI3NDllZTA4YmUyMTk2N2I2ZGFmNTc3Yjk3MTBhYzYiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTgyNzQ5ZWUwOGJlMjE5NjdiNmRhZjU3N2I5NzEwYWM2Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5NRE5TX01BWF9TRVJWSUNFUzwvaDI+CiAKQEAgLTE0NCw2ICsxODQsNTEgQEAKIAogPC9kaXY+CiA8L2Rpdj4KKzxhIGlkPSJnYTgyN2QxZDJhYmQyNGEyNjYzODcyM2NmZDBhOGI5ZWZkIiBuYW1lPSJnYTgyN2QxZDJhYmQyNGEyNjYzODcyM2NmZDBhOGI5ZWZkIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E4MjdkMWQyYWJkMjRhMjY2Mzg3MjNjZmQwYThiOWVmZCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+TUROU19NQVhfU1RPUkVEX1BLVFM8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgTUROU19NQVhfU1RPUkVEX1BLVFMmIzE2MDsmIzE2MDsmIzE2MDs0PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+VGhlIG1heGltdW0gbnVtYmVyIG9mIHJlY2VpdmVkIHBhY2tldHMgc3RvcmVkIGluIGNoYWluZWQgbGlzdCBvZiBrbm93biBhbnN3ZXJzIGZvciBwZW5kaW5nIHRydW5jYXRlZCBxdWVzdGlvbnMuIFRoaXMgdmFsdWUgZGVmaW5lIHRoZSBzaXplIG9mIHRoZSBNRE5TX1BLVFMgbWVtcG9vbC4gVXAgdG8gTUROU19NQVhfU1RPUkVEX1BLVFMgcGJ1ZiBjYW4gYmUgc3RvcmVkIGluIGFkZGl0aW9uIHRvIFRDIHF1ZXN0aW9ucyB0aGF0IGFyZSBwZW5kaW5nLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2EwZjBhZGY3YjFkNzQyYjRlYTgxOGMxYjdmNmIwYzU0NyIgbmFtZT0iZ2EwZjBhZGY3YjFkNzQyYjRlYTgxOGMxYjdmNmIwYzU0NyI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMGYwYWRmN2IxZDc0MmI0ZWE4MThjMWI3ZjZiMGM1NDciPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPk1ETlNfT1VUUFVUX1BBQ0tFVF9TSVpFPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIE1ETlNfT1VUUFVUX1BBQ0tFVF9TSVpFJiMxNjA7JiMxNjA7JiMxNjA7KCg8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTgyNzQ5ZWUwOGJlMjE5NjdiNmRhZjU3N2I5NzEwYWM2Ij5NRE5TX01BWF9TRVJWSUNFUzwvYT4gPT0gMSkgPyA1MTIgOiAxNDUwKTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPlBheWxvYWQgc2l6ZSBhbGxvY2F0ZWQgZm9yIGVhY2ggb3V0Z29pbmcgVURQIHBhY2tldC4gV2lsbCBiZSBhbGxvY2F0ZWQgd2l0aCBQQlVGX1JBTSBhbmQgZnJlZWQgYWZ0ZXIgcGFja2V0IHdhcyBzZW50LiBBY2NvcmRpbmcgdG8gUkZDIDY3NjIsIHRoZXJlIGlzIG5vIHJlYXNvbiB0byByZXRhaW4gdGhlIDUxMiBieXRlcyByZXN0cmljdGlvbiBmb3IgbGluay1sb2NhbCBtdWx0aWNhc3QgcGFja2V0LiA1MTIgYnl0ZXMgaXNuJ3QgZW5vdWdoIHdoZW4gMiBzZXJ2aWNlcyBuZWVkIHRvIGJlIHByb2JlZC4gPC9wPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImdhN2Y2ODUzZDAxYWQzMmViNmNlOTlhZTU1MzA3YTM3ZDkiIG5hbWU9ImdhN2Y2ODUzZDAxYWQzMmViNmNlOTlhZTU1MzA3YTM3ZDkiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTdmNjg1M2QwMWFkMzJlYjZjZTk5YWU1NTMwN2EzN2Q5Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5NRE5TX1BST0JFX0RFTEFZX01TPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIE1ETlNfUFJPQkVfREVMQVlfTVMmIzE2MDsmIzE2MDsmIzE2MDsyNTA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5UaGUgbWluaW11bSBkZWxheSBiZXR3ZWVuIHByb2JlcyBpbiBtcy4gUkZDIDY3NjIgcmVxdWlyZSAyNTBtcy4gSW4gbm9pc3kgV2lGaSBlbnZpcm9ubWVudCwgYWRkaW5nIDMwLTUwbXMgdG8gdGhpcyB2YWx1ZSBoZWxwIGEgbG90IGZvciBhIHN1Y2Nlc3NmdWwgQXBwbGUgQkNUIHRlc3RzLiA8L3A+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iZ2ExNzJlNTc5Y2QwOWExZGI1MWNmMjI0MzE5YzAxMjM5NiIgbmFtZT0iZ2ExNzJlNTc5Y2QwOWExZGI1MWNmMjI0MzE5YzAxMjM5NiI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMTcyZTU3OWNkMDlhMWRiNTFjZjIyNDMxOWMwMTIzOTYiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPk1ETlNfUkVTUF9VU0VORVRJRl9FWFRDQUxMQkFDSzwvaDI+CiAKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19tZG5zX19vcHRzLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21kbnNfX29wdHMuanMKaW5kZXggNGQ5MmEzZC4uNTNmZGY2OCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21kbnNfX29wdHMuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21kbnNfX29wdHMuanMKQEAgLTEsNiArMSwxMSBAQAogdmFyIGdyb3VwX19tZG5zX19vcHRzID0KIFsKKyAgICBbICJMV0lQX01ETlNfU0VBUkNIIiwgImdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2FhZjQ4OTYwNGRjZGY5NGQyYWRjZDcyM2Y2YzdkNzE2MyIsIG51bGwgXSwKICAgICBbICJNRE5TX0RFQlVHIiwgImdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2E1M2E5NzUwMmVmZGNmMTIxNGNhYjQwNzhmOTNhNmRjOSIsIG51bGwgXSwKKyAgICBbICJNRE5TX01BWF9SRVFVRVNUUyIsICJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhMTdhOTg4NGFmODE2OWNmMTlkNTdkODAwNWZjM2Q5NWUiLCBudWxsIF0sCiAgICAgWyAiTUROU19NQVhfU0VSVklDRVMiLCAiZ3JvdXBfX21kbnNfX29wdHMuaHRtbCNnYTgyNzQ5ZWUwOGJlMjE5NjdiNmRhZjU3N2I5NzEwYWM2IiwgbnVsbCBdLAorICAgIFsgIk1ETlNfTUFYX1NUT1JFRF9QS1RTIiwgImdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2E4MjdkMWQyYWJkMjRhMjY2Mzg3MjNjZmQwYThiOWVmZCIsIG51bGwgXSwKKyAgICBbICJNRE5TX09VVFBVVF9QQUNLRVRfU0laRSIsICJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhMGYwYWRmN2IxZDc0MmI0ZWE4MThjMWI3ZjZiMGM1NDciLCBudWxsIF0sCisgICAgWyAiTUROU19QUk9CRV9ERUxBWV9NUyIsICJncm91cF9fbWRuc19fb3B0cy5odG1sI2dhN2Y2ODUzZDAxYWQzMmViNmNlOTlhZTU1MzA3YTM3ZDkiLCBudWxsIF0sCiAgICAgWyAiTUROU19SRVNQX1VTRU5FVElGX0VYVENBTExCQUNLIiwgImdyb3VwX19tZG5zX19vcHRzLmh0bWwjZ2ExNzJlNTc5Y2QwOWExZGI1MWNmMjI0MzE5YzAxMjM5NiIsIG51bGwgXQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbWVtcG9vbC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21lbXBvb2wuaHRtbAppbmRleCA4NDEwNWZlLi42ZGY3MGFhIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbWVtcG9vbC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19tZW1wb29sLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21sZDYuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19tbGQ2Lmh0bWwKaW5kZXggYmU3MmFkZS4uMGUxNzJiOCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21sZDYuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbWxkNi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyMiw5ICsxMjIsOSBAQAogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPHA+TXVsdGljYXN0IGxpc3RlbmVyIGRpc2NvdmVyeSBmb3IgSVB2Ni4gQWltcyB0byBiZSBjb21wbGlhbnQgd2l0aCBSRkMgMjcxMC4gTm8gc3VwcG9ydCBmb3IgTUxEdjIuPGJyICAvPgotTm90ZTogVGhlIGFsbG5vZGVzIChmZjAxOjoxLCBmZjAyOjoxKSBncm91cCBpcyBhc3N1bWVkIGJlIHJlY2VpdmVkIGJ5IHlvdXIgbmV0aWYgc2luY2UgaXQgbXVzdCBhbHdheXMgYmUgcmVjZWl2ZWQgZm9yIGNvcnJlY3QgSVB2NiBvcGVyYXRpb24gKGUuZy4gU0xBQUMpLiBFbnN1cmUgdGhlIG5ldGlmIGZpbHRlcnMgYXJlIGNvbmZpZ3VyZWQgYWNjb3JkaW5nbHkhPGJyICAvPgotVGhlIG5ldGlmIGZsYWdzIGFsc28gbmVlZCBORVRJRl9GTEFHX01MRDYgZmxhZyBzZXQgdG8gZW5hYmxlIE1MRDYgb24gYSBuZXRpZiAoIm5ldGlmLSZndDtmbGFncyB8PSBORVRJRl9GTEFHX01MRDY7IikuPGJyICAvPgotVG8gYmUgY2FsbGVkIGZyb20gVENQSVAgdGhyZWFkLiA8L3A+CisgTm90ZTogVGhlIGFsbG5vZGVzIChmZjAxOjoxLCBmZjAyOjoxKSBncm91cCBpcyBhc3N1bWVkIGJlIHJlY2VpdmVkIGJ5IHlvdXIgbmV0aWYgc2luY2UgaXQgbXVzdCBhbHdheXMgYmUgcmVjZWl2ZWQgZm9yIGNvcnJlY3QgSVB2NiBvcGVyYXRpb24gKGUuZy4gU0xBQUMpLiBFbnN1cmUgdGhlIG5ldGlmIGZpbHRlcnMgYXJlIGNvbmZpZ3VyZWQgYWNjb3JkaW5nbHkhPGJyICAvPgorIFRoZSBuZXRpZiBmbGFncyBhbHNvIG5lZWQgTkVUSUZfRkxBR19NTEQ2IGZsYWcgc2V0IHRvIGVuYWJsZSBNTEQ2IG9uIGEgbmV0aWYgKCJuZXRpZi0mZ3Q7ZmxhZ3MgfD0gTkVUSUZfRkxBR19NTEQ2OyIpLjxiciAgLz4KKyBUbyBiZSBjYWxsZWQgZnJvbSBUQ1BJUCB0aHJlYWQuIDwvcD4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPk1hY3JvIERlZmluaXRpb24gRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iZ2EwMmEyMjU5MDgyZjIyYzU5ODlhM2M5MjliZTk1ZTY0MSIgbmFtZT0iZ2EwMmEyMjU5MDgyZjIyYzU5ODlhM2M5MjliZTk1ZTY0MSI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMDJhMjI1OTA4MmYyMmM1OTg5YTNjOTI5YmU5NWU2NDEiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm5ldGlmX21sZDZfZGF0YTwvaDI+CkBAIC0xNDEsMTAgKzE0MSwxMCBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPigoPHNwYW4gY2xhc3M9ImtleXdvcmQiPnN0cnVjdCA8L3NwYW4+PGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RtbGRfX2dyb3VwLmh0bWwiPm1sZF9ncm91cDwvYT4gKik8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19uZXRpZl9fY2QuaHRtbCNnYTRiY2UwMWRkYmYwZmQ3MGNiODg0MzFmNzczYzkxYmM1Ij5uZXRpZl9nZXRfY2xpZW50X2RhdGE8L2E+KDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBMV0lQX05FVElGX0NMSUVOVF9EQVRBX0lOREVYX01MRDYpKTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9fY2RfaHRtbF9nYTRiY2UwMWRkYmYwZmQ3MGNiODg0MzFmNzczYzkxYmM1Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZl9fY2QuaHRtbCNnYTRiY2UwMWRkYmYwZmQ3MGNiODg0MzFmNzczYzkxYmM1Ij5uZXRpZl9nZXRfY2xpZW50X2RhdGE8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIG5ldGlmX2dldF9jbGllbnRfZGF0YShuZXRpZiwgaWQpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjM3PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX19jZF9odG1sX2dhNGJjZTAxZGRiZjBmZDcwY2I4ODQzMWY3NzNjOTFiYzUiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmX19jZC5odG1sI2dhNGJjZTAxZGRiZjBmZDcwY2I4ODQzMWY3NzNjOTFiYzUiPm5ldGlmX2dldF9jbGllbnRfZGF0YTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgbmV0aWZfZ2V0X2NsaWVudF9kYXRhKG5ldGlmLCBpZCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNDA8L2Rpdj48L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RtbGRfX2dyb3VwX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bWxkX19ncm91cC5odG1sIj5tbGRfZ3JvdXA8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG1sZDYuaDo1ODwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjYwPC9kaXY+PC9kaXY+Ci08L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkdldCBsaXN0IGhlYWQgb2YgTUxENiBncm91cHMgZm9yIG5ldGlmLiBOb3RlOiBUaGUgYWxsbm9kZXMgZ3JvdXAgSVAgaXMgTk9UIGluIHRoZSBsaXN0LCBzaW5jZSBpdCBtdXN0IGFsd2F5cyBiZSByZWNlaXZlZCBmb3IgY29ycmVjdCBJUHY2IG9wZXJhdGlvbi4gPC9wPjxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPm5ldGlmX3NldF9tbGRfbWFjX2ZpbHRlcigpIDwvZGQ+PC9kbD4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2OTwvZGl2PjwvZGl2PgorPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5HZXQgbGlzdCBoZWFkIG9mIE1MRDYgZ3JvdXBzIGZvciBuZXRpZi4gTm90ZTogVGhlIGFsbG5vZGVzIGdyb3VwIElQIGlzIE5PVCBpbiB0aGUgbGlzdCwgc2luY2UgaXQgbXVzdCBhbHdheXMgYmUgcmVjZWl2ZWQgZm9yIGNvcnJlY3QgSVB2NiBvcGVyYXRpb24uIDwvcD48ZGwgY2xhc3M9InNlY3Rpb24gc2VlIj48ZHQ+U2VlIGFsc288L2R0PjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhOTdmMzBiYjU1NDJlNGMwN2QzYjMyZTNjNzU0ZTEwNGMiPm5ldGlmX3NldF9tbGRfbWFjX2ZpbHRlcigpPC9hPiA8L2RkPjwvZGw+CiAKIDwvZGl2PgogPC9kaXY+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbXF0dC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21xdHQuaHRtbAppbmRleCAxNzUzMjFkLi41NTUwMzc0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbXF0dC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19tcXR0Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTU1LDkgKzE1NSw5IEBACiA8YnIgLz4KICB9PC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E4Y2YwZjM2MGFiMjAzNDNhZjM3ZTFkMTI0Mzk1YTc3ZCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYTk5ZmI4MzAzMWNlOTkyM2M4NDM5MmI0ZTkyZjk1NmI1IiBpZD0icl9nYTk5ZmI4MzAzMWNlOTkyM2M4NDM5MmI0ZTkyZjk1NmI1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5lbnVtICYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj57IDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dnYTk5ZmI4MzAzMWNlOTkyM2M4NDM5MmI0ZTkyZjk1NmI1YTc5Y2QwMGQwYTVhOGRmMTMyMDdlMGM0OTQ0N2RmODdmIj5NUVRUX0RBVEFfRkxBR19MQVNUPC9hPiA9IDEKKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWJjNjEyNmFmMWQ0NTg0N2JjNTlhZmEwYWEzMjE2YjA0IiBpZD0icl9nYWJjNjEyNmFmMWQ0NTg0N2JjNTlhZmEwYWEzMjE2YjA0Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5lbnVtICYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj57IDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dnYWJjNjEyNmFmMWQ0NTg0N2JjNTlhZmEwYWEzMjE2YjA0YTc5Y2QwMGQwYTVhOGRmMTMyMDdlMGM0OTQ0N2RmODdmIj5NUVRUX0RBVEFfRkxBR19MQVNUPC9hPiA9IDEKICB9PC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E5OWZiODMwMzFjZTk5MjNjODQzOTJiNGU5MmY5NTZiNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYmM2MTI2YWYxZDQ1ODQ3YmM1OWFmYTBhYTMyMTZiMDQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImZ1bmMtbWVtYmVycyIgbmFtZT0iZnVuYy1tZW1iZXJzIj48L2E+CiBGdW5jdGlvbnM8L2gyPjwvdGQ+PC90cj4KQEAgLTE4NCwxMSArMTg0LDEzIEBACiBBdXRob3I6IEVyaWsgQW5kZXJzc29uCiAKIERldGFpbHMgb2YgdGhlIE1RVFQgcHJvdG9jb2wgY2FuIGJlIGZvdW5kIGF0OgotaHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvbXF0dC9tcXR0L3YzLjEuMS9vcy9tcXR0LXYzLjEuMS1vcy5odG1sIAoraHR0cDovL2RvY3Mub2FzaXMtb3Blbi5vcmcvbXF0dC9tcXR0L3YzLjEuMS9vcy9tcXR0LXYzLjEuMS1vcy5odG1sCiAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxLiBJbml0aWFsIHN0ZXBzLCByZXNlcnZlIG1lbW9yeSBhbmQgbWFrZSBjb25uZWN0aW9uIHRvIHNlcnZlcjoKIAorWW91IG5lZWQgdG8gaW5jcmVhc2UgTUVNUF9OVU1fU1lTX1RJTUVPVVQgYnkgb25lIGlmIHlvdSB1c2UgTVFUVCEKKwogMS4xOiBQcm92aWRlIHN0b3JhZ2UKIAogU3RhdGljIGFsbG9jYXRpb246CkBAIC0yMDAsMzQgKzIwMiwzNCBAQAogICBpZihjbGllbnQgIT0gTlVMTCkgewogICAgIGV4YW1wbGVfZG9fY29ubmVjdCgmYW1wO2NsaWVudCk7CiAgIH0KLSAgCisKIDEuMjogRXN0YWJsaXNoIENvbm5lY3Rpb24gd2l0aCBzZXJ2ZXIKIAogdm9pZCBleGFtcGxlX2RvX2Nvbm5lY3QobXF0dF9jbGllbnRfdCAqY2xpZW50KQogewogICBzdHJ1Y3QgbXF0dF9jb25uZWN0X2NsaWVudF9pbmZvX3QgY2k7CiAgIGVycl90IGVycjsKLSAgCisKICAgLyogU2V0dXAgYW4gZW1wdHkgY2xpZW50IGluZm8gc3RydWN0dXJlICovCiAgIG1lbXNldCgmYW1wO2NpLCAwLCBzaXplb2YoY2kpKTsKLSAgCi0gIC8qIE1pbmltYWwgYW1vdW50IG9mIGluZm9ybWF0aW9uIHJlcXVpcmVkIGlzIGNsaWVudCBpZGVudGlmaWVyLCBzbyBzZXQgaXQgaGVyZSAqLyAKKworICAvKiBNaW5pbWFsIGFtb3VudCBvZiBpbmZvcm1hdGlvbiByZXF1aXJlZCBpcyBjbGllbnQgaWRlbnRpZmllciwgc28gc2V0IGl0IGhlcmUgKi8KICAgY2kuY2xpZW50X2lkID0gImx3aXBfdGVzdCI7Ci0gIAorCiAgIC8qIEluaXRpYXRlIGNsaWVudCBhbmQgY29ubmVjdCB0byBzZXJ2ZXIsIGlmIHRoaXMgZmFpbHMgaW1tZWRpYXRlbHkgYW4gZXJyb3IgY29kZSBpcyByZXR1cm5lZAotICAgICBvdGhlcndpc2UgbXF0dF9jb25uZWN0aW9uX2NiIHdpbGwgYmUgY2FsbGVkIHdpdGggY29ubmVjdGlvbiByZXN1bHQgYWZ0ZXIgYXR0ZW1wdGluZyAKLSAgICAgdG8gZXN0YWJsaXNoIGEgY29ubmVjdGlvbiB3aXRoIHRoZSBzZXJ2ZXIuIAorICAgICBvdGhlcndpc2UgbXF0dF9jb25uZWN0aW9uX2NiIHdpbGwgYmUgY2FsbGVkIHdpdGggY29ubmVjdGlvbiByZXN1bHQgYWZ0ZXIgYXR0ZW1wdGluZworICAgICB0byBlc3RhYmxpc2ggYSBjb25uZWN0aW9uIHdpdGggdGhlIHNlcnZlci4KICAgICAgRm9yIG5vdyBNUVRUIHZlcnNpb24gMy4xLjEgaXMgYWx3YXlzIHVzZWQgKi8KLSAgCisKICAgZXJyID0gbXF0dF9jbGllbnRfY29ubmVjdChjbGllbnQsIGlwX2FkZHIsIE1RVFRfUE9SVCwgbXF0dF9jb25uZWN0aW9uX2NiLCAwLCAmYW1wO2NpKTsKLSAgCisKICAgLyogRm9yIG5vdyBqdXN0IHByaW50IHRoZSByZXN1bHQgY29kZSBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZyAqLwogICBpZihlcnIgIT0gRVJSX09LKSB7CiAgICAgcHJpbnRmKCJtcXR0X2Nvbm5lY3QgcmV0dXJuICVkXG4iLCBlcnIpOwogICB9CiB9CiAKLUNvbm5lY3Rpb24gdG8gc2VydmVyIGNhbiBhbHNvIGJlIHByb2JlZCBieSBjYWxsaW5nIG1xdHRfY2xpZW50X2lzX2Nvbm5lY3RlZChjbGllbnQpIAorQ29ubmVjdGlvbiB0byBzZXJ2ZXIgY2FuIGFsc28gYmUgcHJvYmVkIGJ5IGNhbGxpbmcgbXF0dF9jbGllbnRfaXNfY29ubmVjdGVkKGNsaWVudCkKIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIuIEltcGxlbWVudGluZyB0aGUgY29ubmVjdGlvbiBzdGF0dXMgY2FsbGJhY2sKQEAgLTIzOCwxMSArMjQwLDExIEBACiAgIGVycl90IGVycjsKICAgaWYoc3RhdHVzID09IE1RVFRfQ09OTkVDVF9BQ0NFUFRFRCkgewogICAgIHByaW50ZigibXF0dF9jb25uZWN0aW9uX2NiOiBTdWNjZXNzZnVsbHkgY29ubmVjdGVkXG4iKTsKLSAgICAKKwogICAgIC8qIFNldHVwIGNhbGxiYWNrIGZvciBpbmNvbWluZyBwdWJsaXNoIHJlcXVlc3RzICovCiAgICAgbXF0dF9zZXRfaW5wdWJfY2FsbGJhY2soY2xpZW50LCBtcXR0X2luY29taW5nX3B1Ymxpc2hfY2IsIG1xdHRfaW5jb21pbmdfZGF0YV9jYiwgYXJnKTsKLSAgICAKLSAgICAvKiBTdWJzY3JpYmUgdG8gYSB0b3BpYyBuYW1lZCAic3VidG9waWMiIHdpdGggUW9TIGxldmVsIDEsIGNhbGwgbXF0dF9zdWJfcmVxdWVzdF9jYiB3aXRoIHJlc3VsdCAqLyAKKworICAgIC8qIFN1YnNjcmliZSB0byBhIHRvcGljIG5hbWVkICJzdWJ0b3BpYyIgd2l0aCBRb1MgbGV2ZWwgMSwgY2FsbCBtcXR0X3N1Yl9yZXF1ZXN0X2NiIHdpdGggcmVzdWx0ICovCiAgICAgZXJyID0gbXF0dF9zdWJzY3JpYmUoY2xpZW50LCAic3VidG9waWMiLCAxLCBtcXR0X3N1Yl9yZXF1ZXN0X2NiLCBhcmcpOwogCiAgICAgaWYoZXJyICE9IEVSUl9PSykgewpAQCAtMjUwLDE2ICsyNTIsMTYgQEAKICAgICB9CiAgIH0gZWxzZSB7CiAgICAgcHJpbnRmKCJtcXR0X2Nvbm5lY3Rpb25fY2I6IERpc2Nvbm5lY3RlZCwgcmVhc29uOiAlZFxuIiwgc3RhdHVzKTsKLSAgICAKKwogICAgIC8qIEl0cyBtb3JlIG5pY2UgdG8gYmUgY29ubmVjdGVkLCBzbyB0cnkgdG8gcmVjb25uZWN0ICovCiAgICAgZXhhbXBsZV9kb19jb25uZWN0KGNsaWVudCk7Ci0gIH0gIAorICB9CiB9CiAKIHN0YXRpYyB2b2lkIG1xdHRfc3ViX3JlcXVlc3RfY2Iodm9pZCAqYXJnLCBlcnJfdCByZXN1bHQpCiB7Ci0gIC8qIEp1c3QgcHJpbnQgdGhlIHJlc3VsdCBjb2RlIGhlcmUgZm9yIHNpbXBsaWNpdHksIAotICAgICBub3JtYWwgYmVoYXZpb3VyIHdvdWxkIGJlIHRvIHRha2Ugc29tZSBhY3Rpb24gaWYgc3Vic2NyaWJlIGZhaWxzIGxpa2UgCisgIC8qIEp1c3QgcHJpbnQgdGhlIHJlc3VsdCBjb2RlIGhlcmUgZm9yIHNpbXBsaWNpdHksCisgICAgIG5vcm1hbCBiZWhhdmlvdXIgd291bGQgYmUgdG8gdGFrZSBzb21lIGFjdGlvbiBpZiBzdWJzY3JpYmUgZmFpbHMgbGlrZQogICAgICBub3RpZnlpbmcgdXNlciwgcmV0cnkgc3Vic2NyaWJlIG9yIGRpc2Nvbm5lY3QgZnJvbSBzZXJ2ZXIgKi8KICAgcHJpbnRmKCJTdWJzY3JpYmUgcmVzdWx0OiAlZFxuIiwgcmVzdWx0KTsKIH0KQEAgLTMyOSw3ICszMzEsNyBAQAogICB9CiB9CiAKLS8qIENhbGxlZCB3aGVuIHB1Ymxpc2ggaXMgY29tcGxldGUgZWl0aGVyIHdpdGggc3VjZXNzIG9yIGZhaWx1cmUgKi8KKy8qIENhbGxlZCB3aGVuIHB1Ymxpc2ggaXMgY29tcGxldGUgZWl0aGVyIHdpdGggc3VjY2VzcyBvciBmYWlsdXJlICovCiBzdGF0aWMgdm9pZCBtcXR0X3B1Yl9yZXF1ZXN0X2NiKHZvaWQgKmFyZywgZXJyX3QgcmVzdWx0KQogewogICBpZihyZXN1bHQgIT0gRVJSX09LKSB7CkBAIC0zOTEsNyArMzkzLDcgQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iI2dhZmRiMzlkNGE5NzU4Zjk4YzAyNDUxYWFhOWE5YjMxMDMiPm1xdHRfc3ViX3Vuc3ViPC9hPihjbGllbnQsIHRvcGljLCBxb3MsIGNiLCBhcmcsIDEpPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX21xdHRfaHRtbF9nYWZkYjM5ZDRhOTc1OGY5OGMwMjQ1MWFhYTlhOWIzMTAzIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnYWZkYjM5ZDRhOTc1OGY5OGMwMjQ1MWFhYTlhOWIzMTAzIj5tcXR0X3N1Yl91bnN1YjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IG1xdHRfc3ViX3Vuc3ViKG1xdHRfY2xpZW50X3QgKmNsaWVudCwgY29uc3QgY2hhciAqdG9waWMsIHU4X3QgcW9zLCBtcXR0X3JlcXVlc3RfY2JfdCBjYiwgdm9pZCAqYXJnLCB1OF90IHN1Yik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbXF0dC5jOjExNzI8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbXF0dF9odG1sX2dhZmRiMzlkNGE5NzU4Zjk4YzAyNDUxYWFhOWE5YjMxMDMiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2dhZmRiMzlkNGE5NzU4Zjk4YzAyNDUxYWFhOWE5YjMxMDMiPm1xdHRfc3ViX3Vuc3ViPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgbXF0dF9zdWJfdW5zdWIobXF0dF9jbGllbnRfdCAqY2xpZW50LCBjb25zdCBjaGFyICp0b3BpYywgdThfdCBxb3MsIG1xdHRfcmVxdWVzdF9jYl90IGNiLCB2b2lkICphcmcsIHU4X3Qgc3ViKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBtcXR0LmM6MTE4MDwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5TdWJzY3JpYmUgdG8gdG9waWMgPC9wPgogCiA8L2Rpdj4KQEAgLTUzOCw4ICs1NDAsOCBAQAogPC9kaXY+CiA8L2Rpdj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkVudW1lcmF0aW9uIFR5cGUgRG9jdW1lbnRhdGlvbjwvaDI+Ci08YSBpZD0iZ2E5OWZiODMwMzFjZTk5MjNjODQzOTJiNGU5MmY5NTZiNSIgbmFtZT0iZ2E5OWZiODMwMzFjZTk5MjNjODQzOTJiNGU5MmY5NTZiNSI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhOTlmYjgzMDMxY2U5OTIzYzg0MzkyYjRlOTJmOTU2YjUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmFub255bW91cyBlbnVtPC9oMj4KKzxhIGlkPSJnYWJjNjEyNmFmMWQ0NTg0N2JjNTlhZmEwYWEzMjE2YjA0IiBuYW1lPSJnYWJjNjEyNmFmMWQ0NTg0N2JjNTlhZmEwYWEzMjE2YjA0Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FiYzYxMjZhZjFkNDU4NDdiYzU5YWZhMGFhMzIxNmIwNCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YW5vbnltb3VzIGVudW08L2gyPgogCiA8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KIDxkaXYgY2xhc3M9Im1lbXByb3RvIj4KQEAgLTU1MSw3ICs1NTMsNyBAQAogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxwPkRhdGEgY2FsbGJhY2sgZmxhZ3MgPC9wPgogPHRhYmxlIGNsYXNzPSJmaWVsZHRhYmxlIj4KLTx0cj48dGggY29sc3Bhbj0iMiI+RW51bWVyYXRvcjwvdGg+PC90cj48dHI+PHRkIGNsYXNzPSJmaWVsZG5hbWUiPjxhIGlkPSJnZ2E5OWZiODMwMzFjZTk5MjNjODQzOTJiNGU5MmY5NTZiNWE3OWNkMDBkMGE1YThkZjEzMjA3ZTBjNDk0NDdkZjg3ZiIgbmFtZT0iZ2dhOTlmYjgzMDMxY2U5OTIzYzg0MzkyYjRlOTJmOTU2YjVhNzljZDAwZDBhNWE4ZGYxMzIwN2UwYzQ5NDQ3ZGY4N2YiPjwvYT5NUVRUX0RBVEFfRkxBR19MQVNUJiMxNjA7PC90ZD48dGQgY2xhc3M9ImZpZWxkZG9jIj48cD5GbGFnIHNldCB3aGVuIGxhc3QgZnJhZ21lbnQgb2YgZGF0YSBhcnJpdmVzIGluIGRhdGEgY2FsbGJhY2sgPC9wPgorPHRyPjx0aCBjb2xzcGFuPSIyIj5FbnVtZXJhdG9yPC90aD48L3RyPjx0cj48dGQgY2xhc3M9ImZpZWxkbmFtZSI+PGEgaWQ9ImdnYWJjNjEyNmFmMWQ0NTg0N2JjNTlhZmEwYWEzMjE2YjA0YTc5Y2QwMGQwYTVhOGRmMTMyMDdlMGM0OTQ0N2RmODdmIiBuYW1lPSJnZ2FiYzYxMjZhZjFkNDU4NDdiYzU5YWZhMGFhMzIxNmIwNGE3OWNkMDBkMGE1YThkZjEzMjA3ZTBjNDk0NDdkZjg3ZiI+PC9hPk1RVFRfREFUQV9GTEFHX0xBU1QmIzE2MDs8L3RkPjx0ZCBjbGFzcz0iZmllbGRkb2MiPjxwPkZsYWcgc2V0IHdoZW4gbGFzdCBmcmFnbWVudCBvZiBkYXRhIGFycml2ZXMgaW4gZGF0YSBjYWxsYmFjayA8L3A+CiA8L3RkPjwvdHI+CiA8L3RhYmxlPgogCkBAIC04ODEsNyArODgzLDcgQEAKICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmNsaWVudDwvdGQ+PHRkPk1RVFQgY2xpZW50IDwvdGQ+PC90cj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnRvcGljPC90ZD48dGQ+dG9waWMgdG8gc3Vic2NyaWJlIHRvIDwvdGQ+PC90cj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnFvczwvdGQ+PHRkPlF1YWxpdHkgb2Ygc2VydmljZSwgMCAxIG9yIDIgKG9ubHkgdXNlZCBmb3Igc3Vic2NyaWJlKSA8L3RkPjwvdHI+Ci0gICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5jYjwvdGQ+PHRkPkNhbGxiYWNrIHRvIGNhbGwgd2hlbiBzdWJzY3JpYmUvdW5zdWJzY3JpYmUgcmVwb25zZSBpcyByZWNlaXZlZCA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5jYjwvdGQ+PHRkPkNhbGxiYWNrIHRvIGNhbGwgd2hlbiBzdWJzY3JpYmUvdW5zdWJzY3JpYmUgcmVzcG9uc2UgaXMgcmVjZWl2ZWQgPC90ZD48L3RyPgogICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+YXJnPC90ZD48dGQ+VXNlciBzdXBwbGllZCBhcmd1bWVudCB0byBwdWJsaXNoIGNhbGxiYWNrIDwvdGQ+PC90cj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnN1YjwvdGQ+PHRkPjEgZm9yIHN1YnNjcmliZSwgMCBmb3IgdW5zdWJzY3JpYmUgPC90ZD48L3RyPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21xdHQuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbXF0dC5qcwppbmRleCA0ZDdkZjk3Li5kNmIxMjE2IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbXF0dC5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbXF0dC5qcwpAQCAtMjAsNyArMjAsNyBAQAogICAgIFsgIm1xdHRfaW5jb21pbmdfZGF0YV9jYl90IiwgImdyb3VwX19tcXR0Lmh0bWwjZ2FmZWM3ZTc1ZmU2YTc0NmVlZjljYTQxMTQ2MzQ0NmM4MSIsIG51bGwgXSwKICAgICBbICJtcXR0X2luY29taW5nX3B1Ymxpc2hfY2JfdCIsICJncm91cF9fbXF0dC5odG1sI2dhNzExNmJiODUyNTUzOTRjZWM0YjFkOWZhMzg4NDJjMjkiLCBudWxsIF0sCiAgICAgWyAibXF0dF9yZXF1ZXN0X2NiX3QiLCAiZ3JvdXBfX21xdHQuaHRtbCNnYWNhZDJiYmUyY2VlNzZlYWExMjBjYzYzZTJmNjA5NGZkIiwgWwotICAgICAgWyAiTVFUVF9EQVRBX0ZMQUdfTEFTVCIsICJncm91cF9fbXF0dC5odG1sI2dnYTk5ZmI4MzAzMWNlOTkyM2M4NDM5MmI0ZTkyZjk1NmI1YTc5Y2QwMGQwYTVhOGRmMTMyMDdlMGM0OTQ0N2RmODdmIiwgbnVsbCBdCisgICAgICBbICJNUVRUX0RBVEFfRkxBR19MQVNUIiwgImdyb3VwX19tcXR0Lmh0bWwjZ2dhYmM2MTI2YWYxZDQ1ODQ3YmM1OWFmYTBhYTMyMTZiMDRhNzljZDAwZDBhNWE4ZGYxMzIwN2UwYzQ5NDQ3ZGY4N2YiLCBudWxsIF0KICAgICBdIF0sCiAgICAgWyAibXF0dF9jb25uZWN0aW9uX3N0YXR1c190IiwgImdyb3VwX19tcXR0Lmh0bWwjZ2E4Y2YwZjM2MGFiMjAzNDNhZjM3ZTFkMTI0Mzk1YTc3ZCIsIFsKICAgICAgIFsgIk1RVFRfQ09OTkVDVF9BQ0NFUFRFRCIsICJncm91cF9fbXF0dC5odG1sI2dnYThjZjBmMzYwYWIyMDM0M2FmMzdlMWQxMjQzOTVhNzdkYTA3NGRjMWQyODliOGU4ZDRhYWQ5MWY2YTJjYjkzZGMxIiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21xdHRfX29wdHMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19tcXR0X19vcHRzLmh0bWwKaW5kZXggMzJkODNiZC4uZDZiNmNhMiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX21xdHRfX29wdHMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbXF0dF9fb3B0cy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRiaW9zbnMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRiaW9zbnMuaHRtbAppbmRleCAxYzUyMjQ1Li4yM2E0ZTU1IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0Ymlvc25zLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGJpb3Nucy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRiaW9zbnNfX29wdHMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRiaW9zbnNfX29wdHMuaHRtbAppbmRleCA2MjlhNzFkLi4zNjA4NWM1IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0Ymlvc25zX19vcHRzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGJpb3Nuc19fb3B0cy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEzOCw3ICsxMzgsNyBAQAogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5OZXRCSU9TIG5hbWUgb2YgbHdpcCBkZXZpY2UgVGhpcyBtdXN0IGJlIHVwcGVyY2FzZSB1bnRpbCBORVRCSU9TX1NUUkNNUCgpIGlzIGRlZmluZWQgdG8gYSBzdHJpbmcgY29tcGFyaXNpb24gZnVuY3Rpb24gdGhhdCBpcyBjYXNlIGluc2Vuc2l0aXZlLiBJZiB5b3Ugd2FudCB0byB1c2UgdGhlIG5ldGlmJ3MgaG9zdG5hbWUsIHVzZSB0aGlzICh3aXRoIExXSVBfTkVUSUZfSE9TVE5BTUUpOiAoPGEgY2xhc3M9ImVsIiBocmVmPSJpcF84aC5odG1sI2FhYmVjZWYzYzc2NTNhOTc2N2M3OTI0NWM0NGZjYWI5ZiI+aXBfY3VycmVudF9uZXRpZigpPC9hPiAhPSBOVUxMID8gPGEgY2xhc3M9ImVsIiBocmVmPSJpcF84aC5odG1sI2FhYmVjZWYzYzc2NTNhOTc2N2M3OTI0NWM0NGZjYWI5ZiI+aXBfY3VycmVudF9uZXRpZigpPC9hPi0mZ3Q7aG9zdG5hbWUgIT0gTlVMTCA/IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXBfOGguaHRtbCNhYWJlY2VmM2M3NjUzYTk3NjdjNzkyNDVjNDRmY2FiOWYiPmlwX2N1cnJlbnRfbmV0aWYoKTwvYT4tJmd0O2hvc3RuYW1lIDogIiIgOiAiIik8L3A+Cis8cD5OZXRCSU9TIG5hbWUgb2YgbHdpcCBkZXZpY2UgVGhpcyBtdXN0IGJlIHVwcGVyY2FzZSB1bnRpbCBORVRCSU9TX1NUUkNNUCgpIGlzIGRlZmluZWQgdG8gYSBzdHJpbmcgY29tcGFyaXNvbiBmdW5jdGlvbiB0aGF0IGlzIGNhc2UgaW5zZW5zaXRpdmUuIElmIHlvdSB3YW50IHRvIHVzZSB0aGUgbmV0aWYncyBob3N0bmFtZSwgdXNlIHRoaXMgKHdpdGggTFdJUF9ORVRJRl9IT1NUTkFNRSk6ICg8YSBjbGFzcz0iZWwiIGhyZWY9ImlwXzhoLmh0bWwjYWFiZWNlZjNjNzY1M2E5NzY3Yzc5MjQ1YzQ0ZmNhYjlmIj5pcF9jdXJyZW50X25ldGlmKCk8L2E+ICE9IE5VTEwgPyA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwXzhoLmh0bWwjYWFiZWNlZjNjNzY1M2E5NzY3Yzc5MjQ1YzQ0ZmNhYjlmIj5pcF9jdXJyZW50X25ldGlmKCk8L2E+LSZndDtob3N0bmFtZSAhPSBOVUxMID8gPGEgY2xhc3M9ImVsIiBocmVmPSJpcF84aC5odG1sI2FhYmVjZWYzYzc2NTNhOTc2N2M3OTI0NWM0NGZjYWI5ZiI+aXBfY3VycmVudF9uZXRpZigpPC9hPi0mZ3Q7aG9zdG5hbWUgOiAiIiA6ICIiKTwvcD4KIDxwPklmIHRoaXMgaXMgbm90IGRlZmluZWQsIG5ldGJpb3Nuc19zZXRfbmFtZSgpIGNhbiBiZSBjYWxsZWQgYXQgcnVudGltZSB0byBjaGFuZ2UgdGhlIG5hbWUuIDwvcD4KIAogPC9kaXY+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0YnVmLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0YnVmLmh0bWwKaW5kZXggZmU3YWUxMS4uMDRjODUzYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGJ1Zi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRidWYuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMjYsNyArMTI2LDcgQEAKIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxwPk5ldHdvcmsgYnVmZmVyIGRlc2NyaXB0b3IgZm9yIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGNvbm4uaHRtbCI+TmV0Y29ubiBBUEk8L2E+LiBCYXNlZCBvbiA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19wYnVmLmh0bWwiPlBhY2tldCBidWZmZXJzIChQQlVGKTwvYT4gaW50ZXJuYWxseSB0byBhdm9pZCBjb3B5aW5nIGRhdGEgYXJvdW5kLjxiciAgLz4KLUJ1ZmZlcnMgbXVzdCBub3QgYmUgc2hhcmVkIGFjY3Jvc3MgbXVsdGlwbGUgdGhyZWFkcywgYWxsIGZ1bmN0aW9ucyBleGNlcHQgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FkZThhZmU0ZDViODQ5Y2VjMzc4NDcwOGQ2OTFiZTcxMSI+bmV0YnVmX25ldygpPC9hPiBhbmQgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E5ZGZkM2RkZmUwZWM2NTAwOWNiMTQwYzY4NDA0YjA5ZCI+bmV0YnVmX2RlbGV0ZSgpPC9hPiBhcmUgbm90IHRocmVhZC1zYWZlLiA8L3A+CisgQnVmZmVycyBtdXN0IG5vdCBiZSBzaGFyZWQgYWNyb3NzIG11bHRpcGxlIHRocmVhZHMsIGFsbCBmdW5jdGlvbnMgZXhjZXB0IDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZGU4YWZlNGQ1Yjg0OWNlYzM3ODQ3MDhkNjkxYmU3MTEiPm5ldGJ1Zl9uZXcoKTwvYT4gYW5kIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhOWRmZDNkZGZlMGVjNjUwMDljYjE0MGM2ODQwNGIwOWQiPm5ldGJ1Zl9kZWxldGUoKTwvYT4gYXJlIG5vdCB0aHJlYWQtc2FmZS4gPC9wPgogPGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iZ2ExNTI1MDAxY2JlYTkyNmZkYWU4OGIwYWM0MGJkNjUyNSIgbmFtZT0iZ2ExNTI1MDAxY2JlYTkyNmZkYWU4OGIwYWM0MGJkNjUyNSI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMTUyNTAwMWNiZWE5MjZmZGFlODhiMGFjNDBiZDY1MjUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm5ldGJ1Zl9hbGxvYygpPC9oMj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRjb25uLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0Y29ubi5odG1sCmluZGV4IGVjOTNmOTcuLjRjYzQyZDIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRjb25uLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGNvbm4uaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0Y29ubl9fY29tbW9uLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0Y29ubl9fY29tbW9uLmh0bWwKaW5kZXggMzBmNmQ0Ny4uNDA3NDc0MCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGNvbm5fX2NvbW1vbi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRjb25uX19jb21tb24uaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC00MzAsMTEgKzQzMCwxNiBAQAogICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CiAgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uYW1lPC90ZD48dGQ+YSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIEROUyBob3N0IG5hbWUgdG8gcXVlcnkgPC90ZD48L3RyPgogICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+YWRkcjwvdGQ+PHRkPmEgcHJlYWxsb2NhdGVkIGlwX2FkZHJfdCB3aGVyZSB0byBzdG9yZSB0aGUgcmVzb2x2ZWQgSVAgYWRkcmVzcyA8L3RkPjwvdHI+Ci0gICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5kbnNfYWRkcnR5cGU8L3RkPjx0ZD5JUCBhZGRyZXNzIHR5cGUgKElQdjQgLyBJUHY2KSA8L3RkPjwvdHI+CiAgIDwvdGFibGU+CiAgIDwvZGQ+CiA8L2RsPgogPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5FUlJfT0s6IHJlc29sdmluZyBzdWNjZWVkZWQgRVJSX01FTTogbWVtb3J5IGVycm9yLCB0cnkgYWdhaW4gbGF0ZXIgRVJSX0FSRzogZG5zIGNsaWVudCBub3QgaW5pdGlhbGl6ZWQgb3IgaW52YWxpZCBob3N0bmFtZSBFUlJfVkFMOiBkbnMgc2VydmVyIHJlc3BvbnNlIHdhcyBpbnZhbGlkIDwvZGQ+PC9kbD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5kbnNfYWRkcnR5cGU8L3RkPjx0ZD5JUCBhZGRyZXNzIHR5cGUgKElQdjQgLyBJUHY2KSA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgogCiA8L2Rpdj4KIDwvZGl2PgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGNvbm5fX3RjcC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGNvbm5fX3RjcC5odG1sCmluZGV4IDEwYWE5ZTUuLjA3N2ZkMzAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRjb25uX190Y3AuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0Y29ubl9fdGNwLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGNvbm5fX3VkcC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGNvbm5fX3VkcC5odG1sCmluZGV4IDI2MjBiNDYuLjA2Zjk1NmUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRjb25uX191ZHAuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0Y29ubl9fdWRwLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGRiYXBpLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0ZGJhcGkuaHRtbAppbmRleCBkNGVkZDQ1Li4wOThlNzkyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0ZGJhcGkuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0ZGJhcGkuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWYuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZi5odG1sCmluZGV4IGZjNWFiMzQuLjZiNDJkZDEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyOSw2ICsxMjksMTAgQEAKIE1hY3JvczwvaDI+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhOTRhNGMyNGM5ODhhZmMwYTU3NzM4NzczMGYzMDNiMTkiIGlkPSJyX2dhOTRhNGMyNGM5ODhhZmMwYTU3NzM4NzczMGYzMDNiMTkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E5NGE0YzI0Yzk4OGFmYzBhNTc3Mzg3NzMwZjMwM2IxOSI+bmV0aWZfaXNfdXA8L2E+KDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhOTRhNGMyNGM5ODhhZmMwYTU3NzM4NzczMGYzMDNiMTkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EzNDI4YjNmODE5NTI0OWM2Y2Q4NzA0YTRkYjQ2YjQwMSIgaWQ9InJfZ2EzNDI4YjNmODE5NTI0OWM2Y2Q4NzA0YTRkYjQ2YjQwMSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTM0MjhiM2Y4MTk1MjQ5YzZjZDg3MDRhNGRiNDZiNDAxIj5uZXRpZl9zZXRfaWdtcF9tYWNfZmlsdGVyPC9hPig8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgIGZ1bmN0aW9uKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMzQyOGIzZjgxOTUyNDljNmNkODcwNGE0ZGI0NmI0MDEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E5N2YzMGJiNTU0MmU0YzA3ZDNiMzJlM2M3NTRlMTA0YyIgaWQ9InJfZ2E5N2YzMGJiNTU0MmU0YzA3ZDNiMzJlM2M3NTRlMTA0YyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTk3ZjMwYmI1NTQyZTRjMDdkM2IzMmUzYzc1NGUxMDRjIj5uZXRpZl9zZXRfbWxkX21hY19maWx0ZXI8L2E+KDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCAgZnVuY3Rpb24pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E5N2YzMGJiNTU0MmU0YzA3ZDNiMzJlM2M3NTRlMTA0YyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+CiA8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0idHlwZWRlZi1tZW1iZXJzIiBuYW1lPSJ0eXBlZGVmLW1lbWJlcnMiPjwvYT4KIFR5cGVkZWZzPC9oMj48L3RkPjwvdHI+CkBAIC0xOTQsMTEgKzE5OCw1NyBAQAogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+KCgoPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pLSZndDtmbGFncyAmYW1wOyA8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9Imdyb3VwX19uZXRpZl9fZmxhZ3MuaHRtbCNnYWI0N2Q3ZDEzMDY5M2RjMTU1ZjQ4MGE1YmY0NDc3MjVlIj5ORVRJRl9GTEFHX1VQPC9hPikgPyAodThfdCkxIDogKHU4X3QpMCk8L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfX2ZsYWdzX2h0bWxfZ2FiNDdkN2QxMzA2OTNkYzE1NWY0ODBhNWJmNDQ3NzI1ZSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbmV0aWZfX2ZsYWdzLmh0bWwjZ2FiNDdkN2QxMzA2OTNkYzE1NWY0ODBhNWJmNDQ3NzI1ZSI+TkVUSUZfRkxBR19VUDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgTkVUSUZfRkxBR19VUDwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjg0PC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNjA8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2OTwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5Bc2sgaWYgYW4gaW50ZXJmYWNlIGlzIHVwIDwvcD4KIAogPC9kaXY+CiA8L2Rpdj4KKzxhIGlkPSJnYTM0MjhiM2Y4MTk1MjQ5YzZjZDg3MDRhNGRiNDZiNDAxIiBuYW1lPSJnYTM0MjhiM2Y4MTk1MjQ5YzZjZDg3MDRhNGRiNDZiNDAxIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2EzNDI4YjNmODE5NTI0OWM2Y2Q4NzA0YTRkYjQ2YjQwMSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bmV0aWZfc2V0X2lnbXBfbWFjX2ZpbHRlcjwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBuZXRpZl9zZXRfaWdtcF9tYWNfZmlsdGVyPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmZ1bmN0aW9uPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+PHNwYW4gY2xhc3M9ImtleXdvcmRmbG93Ij5kbzwvc3Bhbj4geyA8c3BhbiBjbGFzcz0ia2V5d29yZGZsb3ciPmlmPC9zcGFuPigoPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pICE9IE5VTEwpIHsgKDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KS0mZ3Q7aWdtcF9tYWNfZmlsdGVyID0gZnVuY3Rpb247IH19PHNwYW4gY2xhc3M9ImtleXdvcmRmbG93Ij53aGlsZTwvc3Bhbj4oMCk8L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+U2V0IGlnbXAgbWFjIGZpbHRlciBmdW5jdGlvbiBmb3IgYSBuZXRpZi4gPC9wPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImdhOTdmMzBiYjU1NDJlNGMwN2QzYjMyZTNjNzU0ZTEwNGMiIG5hbWU9ImdhOTdmMzBiYjU1NDJlNGMwN2QzYjMyZTNjNzU0ZTEwNGMiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTk3ZjMwYmI1NTQyZTRjMDdkM2IzMmUzYzc1NGUxMDRjIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5uZXRpZl9zZXRfbWxkX21hY19maWx0ZXI8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgbmV0aWZfc2V0X21sZF9tYWNfZmlsdGVyPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmZ1bmN0aW9uPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+PHNwYW4gY2xhc3M9ImtleXdvcmRmbG93Ij5kbzwvc3Bhbj4geyA8c3BhbiBjbGFzcz0ia2V5d29yZGZsb3ciPmlmPC9zcGFuPigoPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pICE9IE5VTEwpIHsgKDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KS0mZ3Q7bWxkX21hY19maWx0ZXIgPSBmdW5jdGlvbjsgfX08c3BhbiBjbGFzcz0ia2V5d29yZGZsb3ciPndoaWxlPC9zcGFuPigwKTwvZGl2PgorPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5TZXQgbWxkIG1hYyBmaWx0ZXIgZnVuY3Rpb24gZm9yIGEgbmV0aWYuIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPlR5cGVkZWYgRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iZ2E1ZWUyMTNjZWEwNjU0MjRjODljNjZmMTM4YzAwOGRhMSIgbmFtZT0iZ2E1ZWUyMTNjZWEwNjU0MjRjODljNjZmMTM4YzAwOGRhMSI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhNWVlMjEzY2VhMDY1NDI0Yzg5YzY2ZjEzOGMwMDhkYTEiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm5ldGlmX2V4dF9jYWxsYmFja19mbjwvaDI+CkBAIC0yOTEsMTAgKzM0MSwxMCBAQAogICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+c3RhdGU8L3RkPjx0ZD5vcGFxdWUgZGF0YSBwYXNzZWQgdG8gdGhlIG5ldyBuZXRpZiA8L3RkPjwvdHI+CiAgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5pbml0PC90ZD48dGQ+Y2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpbml0aWFsaXplcyB0aGUgaW50ZXJmYWNlIDwvdGQ+PC90cj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmlucHV0PC90ZD48dGQ+Y2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgdG8gcGFzcyBpbmdyZXNzIHBhY2tldHMgdXAgaW4gdGhlIHByb3RvY29sIGxheWVyIHN0YWNrLjxiciAgLz4KLUl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBhIGZ1bmN0aW9uIHRoYXQgcGFzc2VzIHRoZSBpbnB1dCBkaXJlY3RseSB0byB0aGUgc3RhY2sgKDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX25vc3lzLmh0bWwjZ2E1NTMyZjkzZDY4Yzg3NGZiOTljNjgxYmZmMjE2NTM4NSI+bmV0aWZfaW5wdXQoKTwvYT4sIE5PX1NZUz0xIG1vZGUpIG9yIHZpYSBzZW5kaW5nIGEgbWVzc2FnZSB0byBUQ1BJUCB0aHJlYWQgKDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FlNTEwZjE5NTE3MWJlZDg0OTlhZTk0ZTI2NGE5MjcxNyI+dGNwaXBfaW5wdXQoKTwvYT4sIE5PX1NZUz0wIG1vZGUpLjxiciAgLz4KLVRoZXNlIGZ1bmN0aW9ucyB1c2UgbmV0aWYgZmxhZ3MgTkVUSUZfRkxBR19FVEhBUlAgYW5kIE5FVElGX0ZMQUdfRVRIRVJORVQgdG8gZGVjaWRlIHdoZXRoZXIgdG8gZm9yd2FyZCB0byA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19ub3N5cy5odG1sI2dhNmExMGM1OGI4MmM1NmQwMmM0OGIzY2ZhMmMyNDk0ZmYiPmV0aGVybmV0X2lucHV0KCk8L2E+IG9yIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX25vc3lzLmh0bWwjZ2EzYzQyMGRhYjBjNjc2MGRmMDk5YTJkNjg4ZmE0MmEyNiI+aXBfaW5wdXQoKTwvYT4uIEluIG90aGVyIHdvcmRzLCB0aGUgZnVuY3Rpb25zIG9ubHkgd29yayB3aGVuIHRoZSBuZXRpZiBkcml2ZXIgaXMgaW1wbGVtZW50ZWQgY29ycmVjdGx5ITxiciAgLz4KLU1vc3QgbWVtYmVycyBvZiBzdHJ1Y3QgbmV0aWYgc2hvdWxkIGJlIGJlIGluaXRpYWxpemVkIGJ5IHRoZSBuZXRpZiBpbml0IGZ1bmN0aW9uID0gbmV0aWYgZHJpdmVyIChpbml0IHBhcmFtZXRlciBvZiB0aGlzIGZ1bmN0aW9uKS48YnIgIC8+Ci1JUHY2OiBEb24ndCBmb3JnZXQgdG8gY2FsbCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZl9faXA2Lmh0bWwjZ2FlODY0MjExYTVlYjA1MmRlYjVkYTdiYzdlMzQyN2ZiOSI+bmV0aWZfY3JlYXRlX2lwNl9saW5rbG9jYWxfYWRkcmVzcygpPC9hPiBhZnRlciBzZXR0aW5nIHRoZSBNQUMgYWRkcmVzcyBpbiBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FlZTk2Nzk2NWQ5OTlmYzFhNGM0MGE2NjcwOTMwNGU2OSI+bmV0aWYuaHdhZGRyPC9hPiAoSVB2NiByZXF1aXJlcyBhIGxpbmstbG9jYWwgYWRkcmVzcykuPC90ZD48L3RyPgorIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBhIGZ1bmN0aW9uIHRoYXQgcGFzc2VzIHRoZSBpbnB1dCBkaXJlY3RseSB0byB0aGUgc3RhY2sgKDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX25vc3lzLmh0bWwjZ2E1NTMyZjkzZDY4Yzg3NGZiOTljNjgxYmZmMjE2NTM4NSI+bmV0aWZfaW5wdXQoKTwvYT4sIE5PX1NZUz0xIG1vZGUpIG9yIHZpYSBzZW5kaW5nIGEgbWVzc2FnZSB0byBUQ1BJUCB0aHJlYWQgKDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX29zLmh0bWwjZ2FlNTEwZjE5NTE3MWJlZDg0OTlhZTk0ZTI2NGE5MjcxNyI+dGNwaXBfaW5wdXQoKTwvYT4sIE5PX1NZUz0wIG1vZGUpLjxiciAgLz4KKyBUaGVzZSBmdW5jdGlvbnMgdXNlIG5ldGlmIGZsYWdzIE5FVElGX0ZMQUdfRVRIQVJQIGFuZCBORVRJRl9GTEFHX0VUSEVSTkVUIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGZvcndhcmQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fbm9zeXMuaHRtbCNnYTZhMTBjNThiODJjNTZkMDJjNDhiM2NmYTJjMjQ5NGZmIj5ldGhlcm5ldF9pbnB1dCgpPC9hPiBvciA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19ub3N5cy5odG1sI2dhM2M0MjBkYWIwYzY3NjBkZjA5OWEyZDY4OGZhNDJhMjYiPmlwX2lucHV0KCk8L2E+LiBJbiBvdGhlciB3b3JkcywgdGhlIGZ1bmN0aW9ucyBvbmx5IHdvcmsgd2hlbiB0aGUgbmV0aWYgZHJpdmVyIGlzIGltcGxlbWVudGVkIGNvcnJlY3RseSE8YnIgIC8+CisgTW9zdCBtZW1iZXJzIG9mIHN0cnVjdCBuZXRpZiBzaG91bGQgYmUgYmUgaW5pdGlhbGl6ZWQgYnkgdGhlIG5ldGlmIGluaXQgZnVuY3Rpb24gPSBuZXRpZiBkcml2ZXIgKGluaXQgcGFyYW1ldGVyIG9mIHRoaXMgZnVuY3Rpb24pLjxiciAgLz4KKyBJUHY2OiBEb24ndCBmb3JnZXQgdG8gY2FsbCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZl9faXA2Lmh0bWwjZ2FlODY0MjExYTVlYjA1MmRlYjVkYTdiYzdlMzQyN2ZiOSI+bmV0aWZfY3JlYXRlX2lwNl9saW5rbG9jYWxfYWRkcmVzcygpPC9hPiBhZnRlciBzZXR0aW5nIHRoZSBNQUMgYWRkcmVzcyBpbiBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sI2FlZTk2Nzk2NWQ5OTlmYzFhNGM0MGE2NjcwOTMwNGU2OSI+bmV0aWYuaHdhZGRyPC9hPiAoSVB2NiByZXF1aXJlcyBhIGxpbmstbG9jYWwgYWRkcmVzcykuPC90ZD48L3RyPgogICA8L3RhYmxlPgogICA8L2RkPgogPC9kbD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZi5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZi5qcwppbmRleCA2MTg4ZmMzLi44Y2Q4M2E5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWYuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmLmpzCkBAIC0yNiw2ICsyNiw4IEBACiAgICAgICBdIF0KICAgICBdIF0sCiAgICAgWyAibmV0aWZfaXNfdXAiLCAiZ3JvdXBfX25ldGlmLmh0bWwjZ2E5NGE0YzI0Yzk4OGFmYzBhNTc3Mzg3NzMwZjMwM2IxOSIsIG51bGwgXSwKKyAgICBbICJuZXRpZl9zZXRfaWdtcF9tYWNfZmlsdGVyIiwgImdyb3VwX19uZXRpZi5odG1sI2dhMzQyOGIzZjgxOTUyNDljNmNkODcwNGE0ZGI0NmI0MDEiLCBudWxsIF0sCisgICAgWyAibmV0aWZfc2V0X21sZF9tYWNfZmlsdGVyIiwgImdyb3VwX19uZXRpZi5odG1sI2dhOTdmMzBiYjU1NDJlNGMwN2QzYjMyZTNjNzU0ZTEwNGMiLCBudWxsIF0sCiAgICAgWyAibmV0aWZfZXh0X2NhbGxiYWNrX2ZuIiwgImdyb3VwX19uZXRpZi5odG1sI2dhNWVlMjEzY2VhMDY1NDI0Yzg5YzY2ZjEzOGMwMDhkYTEiLCBudWxsIF0sCiAgICAgWyAibmV0aWZfbnNjX3JlYXNvbl90IiwgImdyb3VwX19uZXRpZi5odG1sI2dhYjJiOTM4NzM4OTUxM2EwMjAyN2M2MmUyNDY3MjM4MDgiLCBudWxsIF0sCiAgICAgWyAibmV0aWZfYWRkIiwgImdyb3VwX19uZXRpZi5odG1sI2dhMjIwNTU3NTlhMjVmNWQ2Y2VhN2U3ZGVhYjBhMDc0MzQiLCBudWxsIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZfX2NkLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZfX2NkLmh0bWwKaW5kZXggZTU3OTAyNS4uYjAxOGQ4ZCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmX19jZC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZl9fY2QuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMzgsNyArMTM4LDcgQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4oPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pLSZndDtjbGllbnRfZGF0YVsoPHNwYW4gY2xhc3M9ImtleXdvcmR0eXBlIj5pZDwvc3Bhbj4pXTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjYwPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNjk8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+R2V0IGNsaWVudCBkYXRhLiBPYnRhaW4gSUQgZnJvbSA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTU1ZDYyZDQzYjVhOWE1NTI3ZjAxMTZlYzM4MzY5OTc4Ij5uZXRpZl9hbGxvY19jbGllbnRfZGF0YV9pZCgpPC9hPi4gPC9wPgogCiA8L2Rpdj4KQEAgLTE2Nyw3ICsxNjcsNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2dhNGJjZTAxZGRiZjBmZDcwY2I4ODQzMWY3NzNjOTFiYzUiPm5ldGlmX2dldF9jbGllbnRfZGF0YTwvYT4oPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIDxzcGFuIGNsYXNzPSJrZXl3b3JkdHlwZSI+aWQ8L3NwYW4+KSA9IChkYXRhKTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9fY2RfaHRtbF9nYTRiY2UwMWRkYmYwZmQ3MGNiODg0MzFmNzczYzkxYmM1Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNnYTRiY2UwMWRkYmYwZmQ3MGNiODg0MzFmNzczYzkxYmM1Ij5uZXRpZl9nZXRfY2xpZW50X2RhdGE8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIG5ldGlmX2dldF9jbGllbnRfZGF0YShuZXRpZiwgaWQpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjM3PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX19jZF9odG1sX2dhNGJjZTAxZGRiZjBmZDcwY2I4ODQzMWY3NzNjOTFiYzUiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2dhNGJjZTAxZGRiZjBmZDcwY2I4ODQzMWY3NzNjOTFiYzUiPm5ldGlmX2dldF9jbGllbnRfZGF0YTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgbmV0aWZfZ2V0X2NsaWVudF9kYXRhKG5ldGlmLCBpZCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNDA8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+U2V0IGNsaWVudCBkYXRhLiBPYnRhaW4gSUQgZnJvbSA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTU1ZDYyZDQzYjVhOWE1NTI3ZjAxMTZlYzM4MzY5OTc4Ij5uZXRpZl9hbGxvY19jbGllbnRfZGF0YV9pZCgpPC9hPi4gPC9wPgogCiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZl9fZmxhZ3MuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZl9fZmxhZ3MuaHRtbAppbmRleCBiZjYxM2QxLi4yYjY4ZDgzIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZfX2ZsYWdzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmX19mbGFncy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZl9faXA0Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZfX2lwNC5odG1sCmluZGV4IDAyMzdlZmQuLmMzNWM2OGMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZl9faXA0Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmX19pcDQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZfX2lwNi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmX19pcDYuaHRtbAppbmRleCA3OGQ1NzY5Li5kMjQ5YzdlIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZfX2lwNi5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZl9faXA2Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmX19taWIyLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZfX21pYjIuaHRtbAppbmRleCBiODRiNjk5Li4yNDg1MTlhIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZfX21pYjIuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZfX21pYjIuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xNjQsNyArMTY0LDcgQEAKIDxkaXYgY2xhc3M9ImxpbmUiPiAgKDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KS0mZ3Q7bWliMl9jb3VudGVycy5pZm91dG51Y2FzdHBrdHMgPSAwOyBcPC9kaXY+CiA8ZGl2IGNsYXNzPSJsaW5lIj4gICg8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiktJmd0O21pYjJfY291bnRlcnMuaWZvdXRkaXNjYXJkcyA9IDA7IFw8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgKDxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KS0mZ3Q7bWliMl9jb3VudGVycy5pZm91dGVycm9ycyA9IDA7IH0gPHNwYW4gY2xhc3M9ImtleXdvcmRmbG93Ij53aGlsZTwvc3Bhbj4oMCk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2MDwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdG5ldGlmX2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmg6MjY5PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkluaXQgTUlCMiBzdGF0aXN0aWMgY291bnRlcnMgaW4gbmV0aWYgPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgogICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CiAgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPk5ldGlmIHRvIGluaXQgPC90ZD48L3RyPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmYXBpLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZhcGkuaHRtbAppbmRleCBiZDcwMDczLi5hOTI1MjEzIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZhcGkuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZhcGkuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDcsNiArMTA3LDggQEAKIFRvcGljczwvaDI+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmYXBpX19uZXRpZi5odG1sIj5ORVRJRiByZWxhdGVkPC9hPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZmFwaV9fYXJwLmh0bWwiPkFSUDwvYT48L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZhcGlfX2RoY3A0Lmh0bWwiPkRIQ1B2NDwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZhcGlfX2F1dG9pcC5odG1sIj5BVVRPSVA8L2E+PC90ZD48L3RyPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmYXBpLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmYXBpLmpzCmluZGV4IDk2MjUyMjcuLmE5ODdlZjYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZmFwaS5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZhcGkuanMKQEAgLTEsNiArMSw3IEBACiB2YXIgZ3JvdXBfX25ldGlmYXBpID0KIFsKICAgICBbICJORVRJRiByZWxhdGVkIiwgImdyb3VwX19uZXRpZmFwaV9fbmV0aWYuaHRtbCIsICJncm91cF9fbmV0aWZhcGlfX25ldGlmIiBdLAorICAgIFsgIkFSUCIsICJncm91cF9fbmV0aWZhcGlfX2FycC5odG1sIiwgImdyb3VwX19uZXRpZmFwaV9fYXJwIiBdLAogICAgIFsgIkRIQ1B2NCIsICJncm91cF9fbmV0aWZhcGlfX2RoY3A0Lmh0bWwiLCAiZ3JvdXBfX25ldGlmYXBpX19kaGNwNCIgXSwKICAgICBbICJBVVRPSVAiLCAiZ3JvdXBfX25ldGlmYXBpX19hdXRvaXAuaHRtbCIsICJncm91cF9fbmV0aWZhcGlfX2F1dG9pcCIgXQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZhcGlfX2FycC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmYXBpX19hcnAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjcwYTlmCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmYXBpX19hcnAuaHRtbApAQCAtMCwwICsxLDE5MCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHBzOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbi1VUyI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC94aHRtbDtjaGFyc2V0PVVURi04Ii8+Cis8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPTExIi8+Cis8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRveHlnZW4gMS4xMi4wIi8+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLz4KKzx0aXRsZT5sd0lQOiBBUlA8L3RpdGxlPgorPGxpbmsgaHJlZj0idGFicy5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImpxdWVyeS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJkeW5zZWN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJjbGlwYm9hcmQuanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0ibmF2dHJlZS5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5hdnRyZWVkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im5hdnRyZWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzaXplLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9ImNvb2tpZS5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJzZWFyY2gvc2VhcmNoLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIvPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VhcmNoL3NlYXJjaGRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ic2VhcmNoL3NlYXJjaC5qcyI+PC9zY3JpcHQ+Cis8bGluayBocmVmPSJkb3h5Z2VuLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0idG9wIj48IS0tIGRvIG5vdCByZW1vdmUgdGhpcyBkaXYsIGl0IGlzIGNsb3NlZCBieSBkb3h5Z2VuISAtLT4KKzxkaXYgaWQ9InRpdGxlYXJlYSI+Cis8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIj4KKyA8dGJvZHk+CisgPHRyIGlkPSJwcm9qZWN0cm93Ij4KKyAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CisgICA8L2Rpdj4KKyAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KKyAgPC90ZD4KKyA8L3RyPgorIDwvdGJvZHk+Cis8L3RhYmxlPgorPC9kaXY+Cis8IS0tIGVuZCBoZWFkZXIgcGFydCAtLT4KKzwhLS0gR2VuZXJhdGVkIGJ5IERveHlnZW4gMS4xMi4wIC0tPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCit2YXIgc2VhcmNoQm94ID0gbmV3IFNlYXJjaEJveCgic2VhcmNoQm94IiwgInNlYXJjaC8iLCcuaHRtbCcpOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpIHsgY29kZWZvbGQuaW5pdCgwKTsgfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVudWRhdGEuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0ibWVudS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKSB7CisgIGluaXRNZW51KCcnLHRydWUsZmFsc2UsJ3NlYXJjaC5waHAnLCdTZWFyY2gnLHRydWUpOworICAkKGZ1bmN0aW9uKCkgeyBpbml0X3NlYXJjaCgpOyB9KTsKK30pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9Im1haW4tbmF2Ij48L2Rpdj4KKzwvZGl2PjwhLS0gdG9wIC0tPgorPGRpdiBpZD0ic2lkZS1uYXYiIGNsYXNzPSJ1aS1yZXNpemFibGUgc2lkZS1uYXYtcmVzaXphYmxlIj4KKyAgPGRpdiBpZD0ibmF2LXRyZWUiPgorICAgIDxkaXYgaWQ9Im5hdi10cmVlLWNvbnRlbnRzIj4KKyAgICAgIDxkaXYgaWQ9Im5hdi1zeW5jIiBjbGFzcz0ic3luYyI+PC9kaXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IGlkPSJzcGxpdGJhciIgc3R5bGU9Ii1tb3otdXNlci1zZWxlY3Q6bm9uZTsiIAorICAgICAgIGNsYXNzPSJ1aS1yZXNpemFibGUtaGFuZGxlIj4KKyAgPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLworJChmdW5jdGlvbigpe2luaXROYXZUcmVlKCdncm91cF9fbmV0aWZhcGlfX2FycC5odG1sJywnJyk7IGluaXRSZXNpemFibGUodHJ1ZSk7IH0pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxkaXYgaWQ9ImRvYy1jb250ZW50Ij4KKzwhLS0gd2luZG93IHNob3dpbmcgdGhlIGZpbHRlciBvcHRpb25zIC0tPgorPGRpdiBpZD0iTVNlYXJjaFNlbGVjdFdpbmRvdyIKKyAgICAgb25tb3VzZW92ZXI9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RTaG93KCkiCisgICAgIG9ubW91c2VvdXQ9InJldHVybiBzZWFyY2hCb3guT25TZWFyY2hTZWxlY3RIaWRlKCkiCisgICAgIG9ua2V5ZG93bj0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdEtleShldmVudCkiPgorPC9kaXY+CisKKzwhLS0gaWZyYW1lIHNob3dpbmcgdGhlIHNlYXJjaCByZXN1bHRzIChjbG9zZWQgYnkgZGVmYXVsdCkgLS0+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0c1dpbmRvdyI+Cis8ZGl2IGlkPSJNU2VhcmNoUmVzdWx0cyI+Cis8ZGl2IGNsYXNzPSJTUlBhZ2UiPgorPGRpdiBpZD0iU1JJbmRleCI+Cis8ZGl2IGlkPSJTUlJlc3VsdHMiPjwvZGl2PgorPGRpdiBjbGFzcz0iU1JTdGF0dXMiIGlkPSJMb2FkaW5nIj5Mb2FkaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9IlNlYXJjaGluZyI+U2VhcmNoaW5nLi4uPC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9Ik5vTWF0Y2hlcyI+Tm8gTWF0Y2hlczwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImhlYWRlciI+CisgIDxkaXYgY2xhc3M9InN1bW1hcnkiPgorPGEgaHJlZj0iI2Z1bmMtbWVtYmVycyI+RnVuY3Rpb25zPC9hPiAgPC9kaXY+CisgIDxkaXYgY2xhc3M9ImhlYWRlcnRpdGxlIj48ZGl2IGNsYXNzPSJ0aXRsZSI+QVJQPGRpdiBjbGFzcz0iaW5ncm91cHMiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FwaS5odG1sIj5BUElzPC9hPiAmcmFxdW87IDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3NlcXVlbnRpYWxfX2FwaS5odG1sIj5TZXF1ZW50aWFsLXN0eWxlIEFQSXM8L2E+ICZyYXF1bzsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWZhcGkuaHRtbCI+TkVUSUYgQVBJPC9hPjwvZGl2PjwvZGl2PjwvZGl2PgorPC9kaXY+PCEtLWhlYWRlci0tPgorPGRpdiBjbGFzcz0iY29udGVudHMiPgorPHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZnVuYy1tZW1iZXJzIiBuYW1lPSJmdW5jLW1lbWJlcnMiPjwvYT4KK0Z1bmN0aW9uczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNjJiMGJkYmIzNzgzZWIyN2FhNzM0ODUwODEzMDYxMTkiIGlkPSJyX2dhNjJiMGJkYmIzNzgzZWIyN2FhNzM0ODUwODEzMDYxMTkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E2MmIwYmRiYjM3ODNlYjI3YWE3MzQ4NTA4MTMwNjExOSI+bmV0aWZhcGlfYXJwX2FkZDwvYT4gKGNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTNkM2I0NWRhZmZiYzE1ZDY1ZGEyMzZlMzFlNjIxYjdlIj5pcDRfYWRkcl90PC9hPiAqaXBhZGRyLCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RldGhfX2FkZHIuaHRtbCI+ZXRoX2FkZHI8L2E+ICpldGhhZGRyLCBlbnVtIG5ldGlmYXBpX2FycF9lbnRyeSB0eXBlKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNjJiMGJkYmIzNzgzZWIyN2FhNzM0ODUwODEzMDYxMTkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwMzdjM2QwNWMxOWI0ZDQ2N2I2Y2UwNmViNDYzOWVlOCIgaWQ9InJfZ2EwMzdjM2QwNWMxOWI0ZDQ2N2I2Y2UwNmViNDYzOWVlOCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTAzN2MzZDA1YzE5YjRkNDY3YjZjZTA2ZWI0NjM5ZWU4Ij5uZXRpZmFwaV9hcnBfcmVtb3ZlPC9hPiAoY29uc3QgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiPmlwNF9hZGRyX3Q8L2E+ICppcGFkZHIsIGVudW0gbmV0aWZhcGlfYXJwX2VudHJ5IHR5cGUpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EwMzdjM2QwNWMxOWI0ZDQ2N2I2Y2UwNmViNDYzOWVlOCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzwvdGFibGU+Cis8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KKzxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImdhNjJiMGJkYmIzNzgzZWIyN2FhNzM0ODUwODEzMDYxMTkiIG5hbWU9ImdhNjJiMGJkYmIzNzgzZWIyN2FhNzM0ODUwODEzMDYxMTkiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTYyYjBiZGJiMzc4M2ViMjdhYTczNDg1MDgxMzA2MTE5Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5uZXRpZmFwaV9hcnBfYWRkKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gbmV0aWZhcGlfYXJwX2FkZCA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3QgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiPmlwNF9hZGRyX3Q8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmlwYWRkcjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdGV0aF9fYWRkci5odG1sIj5ldGhfYWRkcjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+ZXRoYWRkcjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmVudW0gbmV0aWZhcGlfYXJwX2VudHJ5PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT50eXBlPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkFkZCBvciB1cGRhdGUgYW4gZW50cnkgaW4gdGhlIEFSUCBjYWNoZS4gRm9yIGFuIHVwZGF0ZSwgaXBhZGRyIGlzIHVzZWQgdG8gZmluZCB0aGUgY2FjaGUgZW50cnkuPC9wPgorPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CisgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmlwYWRkcjwvdGQ+PHRkPklQdjQgYWRkcmVzcyBvZiBjYWNoZSBlbnRyeSA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5ldGhhZGRyPC90ZD48dGQ+aGFyZHdhcmUgYWRkcmVzcyBtYXBwZWQgdG8gaXBhZGRyIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnR5cGU8L3RkPjx0ZD50eXBlIG9mIEFSUCBjYWNoZSBlbnRyeSA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5FUlJfT0s6IGVudHJ5IGFkZGVkL3VwZGF0ZWQsIGVsc2UgZXJyb3IgZnJvbSBlcnJfdCA8L2RkPjwvZGw+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2EwMzdjM2QwNWMxOWI0ZDQ2N2I2Y2UwNmViNDYzOWVlOCIgbmFtZT0iZ2EwMzdjM2QwNWMxOWI0ZDQ2N2I2Y2UwNmViNDYzOWVlOCI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMDM3YzNkMDVjMTliNGQ0NjdiNmNlMDZlYjQ2MzllZTgiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm5ldGlmYXBpX2FycF9yZW1vdmUoKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiBuZXRpZmFwaV9hcnBfcmVtb3ZlIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5jb25zdCA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2EzZDNiNDVkYWZmYmMxNWQ2NWRhMjM2ZTMxZTYyMWI3ZSI+aXA0X2FkZHJfdDwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+aXBhZGRyPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+ZW51bSBuZXRpZmFwaV9hcnBfZW50cnk8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnR5cGU8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+UmVtb3ZlIGFuIGVudHJ5IGluIHRoZSBBUlAgY2FjaGUgaWRlbnRpZmllZCBieSBpcGFkZHI8L3A+Cis8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+aXBhZGRyPC90ZD48dGQ+SVB2NCBhZGRyZXNzIG9mIGNhY2hlIGVudHJ5IDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnR5cGU8L3RkPjx0ZD50eXBlIG9mIEFSUCBjYWNoZSBlbnRyeSA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5FUlJfT0s6IGVudHJ5IHJlbW92ZWQsIGVsc2UgZXJyb3IgZnJvbSBlcnJfdCA8L2RkPjwvZGw+CisKKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgorPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KKzwhLS0gc3RhcnQgZm9vdGVyIHBhcnQgLS0+Cis8ZGl2IGlkPSJuYXYtcGF0aCIgY2xhc3M9Im5hdnBhdGgiPjwhLS0gaWQgaXMgbmVlZGVkIGZvciB0cmVldmlldyBmdW5jdGlvbiEgLS0+CisgIDx1bD4KKyAgICA8bGkgY2xhc3M9ImZvb3RlciI+R2VuZXJhdGVkIGJ5IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmRveHlnZW4ub3JnL2luZGV4Lmh0bWwiPjxpbWcgY2xhc3M9ImZvb3RlciIgc3JjPSJkb3h5Z2VuLnN2ZyIgd2lkdGg9IjEwNCIgaGVpZ2h0PSIzMSIgYWx0PSJkb3h5Z2VuIi8+PC9hPiAxLjEyLjAgPC9saT4KKyAgPC91bD4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmYXBpX19hcnAuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZhcGlfX2FycC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmIyOWQxCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmYXBpX19hcnAuanMKQEAgLTAsMCArMSw1IEBACit2YXIgZ3JvdXBfX25ldGlmYXBpX19hcnAgPQorWworICAgIFsgIm5ldGlmYXBpX2FycF9hZGQiLCAiZ3JvdXBfX25ldGlmYXBpX19hcnAuaHRtbCNnYTYyYjBiZGJiMzc4M2ViMjdhYTczNDg1MDgxMzA2MTE5IiwgbnVsbCBdLAorICAgIFsgIm5ldGlmYXBpX2FycF9yZW1vdmUiLCAiZ3JvdXBfX25ldGlmYXBpX19hcnAuaHRtbCNnYTAzN2MzZDA1YzE5YjRkNDY3YjZjZTA2ZWI0NjM5ZWU4IiwgbnVsbCBdCitdOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZmFwaV9fYXV0b2lwLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZhcGlfX2F1dG9pcC5odG1sCmluZGV4IDc0ODZhZjQuLmVkNGNlNTAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZmFwaV9fYXV0b2lwLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmYXBpX19hdXRvaXAuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMjgsNyArMTI4LDcgQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0ibmV0aWZhcGlfOGguaHRtbCNhMjZmZDgzMDQyYjUzYjJmZjgyZTE1MjYyZWQ3MmYwYTciPm5ldGlmYXBpX25ldGlmX2NvbW1vbjwvYT4obiwgTlVMTCwgPGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCNnYTE0NjFmNTgyNmViZWZjMDUwZTBkNjMwMTM4MThkMWU4Ij5hdXRvaXBfc3RhcnQ8L2E+KTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19hdXRvaXBfaHRtbF9nYTE0NjFmNTgyNmViZWZjMDUwZTBkNjMwMTM4MThkMWU4Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19hdXRvaXAuaHRtbCNnYTE0NjFmNTgyNmViZWZjMDUwZTBkNjMwMTM4MThkMWU4Ij5hdXRvaXBfc3RhcnQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCBhdXRvaXBfc3RhcnQoc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gYXV0b2lwLmM6MjU1PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2F1dG9pcF9odG1sX2dhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiPmF1dG9pcF9zdGFydDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGF1dG9pcF9zdGFydChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBhdXRvaXAuYzoyNDM8L2Rpdj48L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFuZXRpZmFwaV84aF9odG1sX2EyNmZkODMwNDJiNTNiMmZmODJlMTUyNjJlZDcyZjBhNyI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EyNmZkODMwNDJiNTNiMmZmODJlMTUyNjJlZDcyZjBhNyI+bmV0aWZhcGlfbmV0aWZfY29tbW9uPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgbmV0aWZhcGlfbmV0aWZfY29tbW9uKHN0cnVjdCBuZXRpZiAqbmV0aWYsIG5ldGlmYXBpX3ZvaWRfZm4gdm9pZGZ1bmMsIG5ldGlmYXBpX2VycnRfZm4gZXJydGZ1bmMpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmYXBpLmM6MzAzPC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhMTQ2MWY1ODI2ZWJlZmMwNTBlMGQ2MzAxMzgxOGQxZTgiPmF1dG9pcF9zdGFydCgpPC9hPiA8L2RkPjwvZGw+CiAKQEAgLTE0OSw3ICsxNDksNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EyNmZkODMwNDJiNTNiMmZmODJlMTUyNjJlZDcyZjBhNyI+bmV0aWZhcGlfbmV0aWZfY29tbW9uPC9hPihuLCBOVUxMLCA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX2F1dG9pcC5odG1sI2dhNThhNGRjZTY1OGRkMTI2M2U4NGViOTgyZjYyNTg3ZDQiPmF1dG9pcF9zdG9wPC9hPik8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fYXV0b2lwX2h0bWxfZ2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCI+YXV0b2lwX3N0b3A8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCBhdXRvaXBfc3RvcChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBhdXRvaXAuYzozNDk8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fYXV0b2lwX2h0bWxfZ2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCI+YXV0b2lwX3N0b3A8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCBhdXRvaXBfc3RvcChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBhdXRvaXAuYzozNDA8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PGRsIGNsYXNzPSJzZWN0aW9uIHNlZSI+PGR0PlNlZSBhbHNvPC9kdD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXV0b2lwLmh0bWwjZ2E1OGE0ZGNlNjU4ZGQxMjYzZTg0ZWI5ODJmNjI1ODdkNCI+YXV0b2lwX3N0b3AoKTwvYT4gPC9kZD48L2RsPgogCiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZmFwaV9fZGhjcDQuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZmFwaV9fZGhjcDQuaHRtbAppbmRleCBkYjRmMjU2Li5mYmEzOGY3IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZhcGlfX2RoY3A0Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmYXBpX19kaGNwNC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEzNiw3ICsxMzYsNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EyNmZkODMwNDJiNTNiMmZmODJlMTUyNjJlZDcyZjBhNyI+bmV0aWZhcGlfbmV0aWZfY29tbW9uPC9hPihuLCA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2FiZDdmY2M3ZTA3OTllMzEzODg1ZmM3ZmQ5ZDQ5OTJhZCI+ZGhjcF9pbmZvcm08L2E+LCBOVUxMKTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19kaGNwNF9odG1sX2dhYmQ3ZmNjN2UwNzk5ZTMxMzg4NWZjN2ZkOWQ0OTkyYWQiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2FiZDdmY2M3ZTA3OTllMzEzODg1ZmM3ZmQ5ZDQ5OTJhZCI+ZGhjcF9pbmZvcm08L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIGRoY3BfaW5mb3JtKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGRoY3AuYzo4MTk8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fZGhjcDRfaHRtbF9nYWJkN2ZjYzdlMDc5OWUzMTM4ODVmYzdmZDlkNDk5MmFkIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhYmQ3ZmNjN2UwNzk5ZTMxMzg4NWZjN2ZkOWQ0OTkyYWQiPmRoY3BfaW5mb3JtPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBkaGNwX2luZm9ybShzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBkaGNwLmM6ODk0PC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhbmV0aWZhcGlfOGhfaHRtbF9hMjZmZDgzMDQyYjUzYjJmZjgyZTE1MjYyZWQ3MmYwYTciPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ibmV0aWZhcGlfOGguaHRtbCNhMjZmZDgzMDQyYjUzYjJmZjgyZTE1MjYyZWQ3MmYwYTciPm5ldGlmYXBpX25ldGlmX2NvbW1vbjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IG5ldGlmYXBpX25ldGlmX2NvbW1vbihzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBuZXRpZmFwaV92b2lkX2ZuIHZvaWRmdW5jLCBuZXRpZmFwaV9lcnJ0X2ZuIGVycnRmdW5jKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZmFwaS5jOjMwMzwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48ZGwgY2xhc3M9InNlY3Rpb24gc2VlIj48ZHQ+U2VlIGFsc288L2R0PjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhYmQ3ZmNjN2UwNzk5ZTMxMzg4NWZjN2ZkOWQ0OTkyYWQiPmRoY3BfaW5mb3JtKCk8L2E+IDwvZGQ+PC9kbD4KIApAQCAtMTU3LDggKzE1Nyw4IEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+PGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9Im5ldGlmYXBpXzhoLmh0bWwjYTI2ZmQ4MzA0MmI1M2IyZmY4MmUxNTI2MmVkNzJmMGE3Ij5uZXRpZmFwaV9uZXRpZl9jb21tb248L2E+KG4sIE5VTEwsIDxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYWY5MmY3YWZiNTgyNTJmODJhNzQ5MDY0NjAyOTc0YmQ0Ij5kaGNwX3JlbGVhc2U8L2E+KTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19kaGNwNF9odG1sX2dhZjkyZjdhZmI1ODI1MmY4MmE3NDkwNjQ2MDI5NzRiZDQiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2FmOTJmN2FmYjU4MjUyZjgyYTc0OTA2NDYwMjk3NGJkNCI+ZGhjcF9yZWxlYXNlPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgZGhjcF9yZWxlYXNlKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGRoY3AuYzoxMzkzPC9kaXY+PC9kaXY+Ci08L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxkbCBjbGFzcz0iZGVwcmVjYXRlZCI+PGR0PjxiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGVwcmVjYXRlZC5odG1sI19kZXByZWNhdGVkMDAwMDA0Ij5EZXByZWNhdGVkPC9hPjwvYj48L2R0PjxkZD5Vc2UgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2ExOTcxYWYwNGY4ODJmNWFmZGIzYWRlNDU0YTY4MDEzNCI+bmV0aWZhcGlfZGhjcF9yZWxlYXNlX2FuZF9zdG9wKCk8L2E+IGluc3RlYWQuIDwvZGQ+PC9kbD4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fZGhjcDRfaHRtbF9nYWY5MmY3YWZiNTgyNTJmODJhNzQ5MDY0NjAyOTc0YmQ0Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhZjkyZjdhZmI1ODI1MmY4MmE3NDkwNjQ2MDI5NzRiZDQiPmRoY3BfcmVsZWFzZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGRoY3BfcmVsZWFzZShzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBkaGNwLmM6MTQwMDwvZGl2PjwvZGl2PgorPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48ZGwgY2xhc3M9ImRlcHJlY2F0ZWQiPjxkdD48Yj48YSBjbGFzcz0iZWwiIGhyZWY9ImRlcHJlY2F0ZWQuaHRtbCNfZGVwcmVjYXRlZDAwMDAxNSI+RGVwcmVjYXRlZDwvYT48L2I+PC9kdD48ZGQ+VXNlIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMTk3MWFmMDRmODgyZjVhZmRiM2FkZTQ1NGE2ODAxMzQiPm5ldGlmYXBpX2RoY3BfcmVsZWFzZV9hbmRfc3RvcCgpPC9hPiBpbnN0ZWFkLiA8L2RkPjwvZGw+CiAKIDwvZGl2PgogPC9kaXY+CkBAIC0xNzcsNyArMTc3LDcgQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0ibmV0aWZhcGlfOGguaHRtbCNhMjZmZDgzMDQyYjUzYjJmZjgyZTE1MjYyZWQ3MmYwYTciPm5ldGlmYXBpX25ldGlmX2NvbW1vbjwvYT4obiwgPGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhZjdjZDQyYjlmMjIwNDQ2YjZhNTk3ZDM0NzRkYTZlY2UiPmRoY3BfcmVsZWFzZV9hbmRfc3RvcDwvYT4sIE5VTEwpPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2RoY3A0X2h0bWxfZ2FmN2NkNDJiOWYyMjA0NDZiNmE1OTdkMzQ3NGRhNmVjZSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYWY3Y2Q0MmI5ZjIyMDQ0NmI2YTU5N2QzNDc0ZGE2ZWNlIj5kaGNwX3JlbGVhc2VfYW5kX3N0b3A8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIGRoY3BfcmVsZWFzZV9hbmRfc3RvcChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBkaGNwLmM6MTMxNjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19kaGNwNF9odG1sX2dhZjdjZDQyYjlmMjIwNDQ2YjZhNTk3ZDM0NzRkYTZlY2UiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2FmN2NkNDJiOWYyMjA0NDZiNmE1OTdkMzQ3NGRhNmVjZSI+ZGhjcF9yZWxlYXNlX2FuZF9zdG9wPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBkaGNwX3JlbGVhc2VfYW5kX3N0b3Aoc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gZGhjcC5jOjEzMjU8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PGRsIGNsYXNzPSJzZWN0aW9uIHNlZSI+PGR0PlNlZSBhbHNvPC9kdD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYWY3Y2Q0MmI5ZjIyMDQ0NmI2YTU5N2QzNDc0ZGE2ZWNlIj5kaGNwX3JlbGVhc2VfYW5kX3N0b3AoKTwvYT4gPC9kZD48L2RsPgogCiA8L2Rpdj4KQEAgLTE5Nyw3ICsxOTcsNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EyNmZkODMwNDJiNTNiMmZmODJlMTUyNjJlZDcyZjBhNyI+bmV0aWZhcGlfbmV0aWZfY29tbW9uPC9hPihuLCBOVUxMLCA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2E1ODNlYjhkNThmNWU5NmI3ZGVhNzE3OTQ4NTc4YTk0NyI+ZGhjcF9yZW5ldzwvYT4pPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX2RoY3A0X2h0bWxfZ2E1ODNlYjhkNThmNWU5NmI3ZGVhNzE3OTQ4NTc4YTk0NyI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYTU4M2ViOGQ1OGY1ZTk2YjdkZWE3MTc5NDg1NzhhOTQ3Ij5kaGNwX3JlbmV3PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgZGhjcF9yZW5ldyhzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBkaGNwLmM6MTE0ODwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19kaGNwNF9odG1sX2dhNTgzZWI4ZDU4ZjVlOTZiN2RlYTcxNzk0ODU3OGE5NDciPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2E1ODNlYjhkNThmNWU5NmI3ZGVhNzE3OTQ4NTc4YTk0NyI+ZGhjcF9yZW5ldzwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGRoY3BfcmVuZXcoc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gZGhjcC5jOjExNTc8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PGRsIGNsYXNzPSJzZWN0aW9uIHNlZSI+PGR0PlNlZSBhbHNvPC9kdD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fZGhjcDQuaHRtbCNnYTU4M2ViOGQ1OGY1ZTk2YjdkZWE3MTc5NDg1NzhhOTQ3Ij5kaGNwX3JlbmV3KCk8L2E+IDwvZGQ+PC9kbD4KIAogPC9kaXY+CkBAIC0yMTcsNyArMjE3LDcgQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0ibmV0aWZhcGlfOGguaHRtbCNhMjZmZDgzMDQyYjUzYjJmZjgyZTE1MjYyZWQ3MmYwYTciPm5ldGlmYXBpX25ldGlmX2NvbW1vbjwvYT4obiwgTlVMTCwgPGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhMGM1MDk2OGQ5ODExYWEyYWE2N2ZhZGMwODg1ZDc0NGYiPmRoY3Bfc3RhcnQ8L2E+KTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19kaGNwNF9odG1sX2dhMGM1MDk2OGQ5ODExYWEyYWE2N2ZhZGMwODg1ZDc0NGYiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2EwYzUwOTY4ZDk4MTFhYTJhYTY3ZmFkYzA4ODVkNzQ0ZiI+ZGhjcF9zdGFydDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGRoY3Bfc3RhcnQoc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gZGhjcC5jOjc0MjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19kaGNwNF9odG1sX2dhMGM1MDk2OGQ5ODExYWEyYWE2N2ZhZGMwODg1ZDc0NGYiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2EwYzUwOTY4ZDk4MTFhYTJhYTY3ZmFkYzA4ODVkNzQ0ZiI+ZGhjcF9zdGFydDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGRoY3Bfc3RhcnQoc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gZGhjcC5jOjgxMDwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48ZGwgY2xhc3M9InNlY3Rpb24gc2VlIj48ZHQ+U2VlIGFsc288L2R0PjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhMGM1MDk2OGQ5ODExYWEyYWE2N2ZhZGMwODg1ZDc0NGYiPmRoY3Bfc3RhcnQoKTwvYT4gPC9kZD48L2RsPgogCiA8L2Rpdj4KQEAgLTIzNyw4ICsyMzcsOCBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EyNmZkODMwNDJiNTNiMmZmODJlMTUyNjJlZDcyZjBhNyI+bmV0aWZhcGlfbmV0aWZfY29tbW9uPC9hPihuLCA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX2RoY3A0Lmh0bWwjZ2E5M2Y2YmYyMTA4NmRjOWIxMGMwYmVjNDY3NmY5NzMxMiI+ZGhjcF9zdG9wPC9hPiwgTlVMTCk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fZGhjcDRfaHRtbF9nYTkzZjZiZjIxMDg2ZGM5YjEwYzBiZWM0Njc2Zjk3MzEyIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhOTNmNmJmMjEwODZkYzliMTBjMGJlYzQ2NzZmOTczMTIiPmRoY3Bfc3RvcDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgZGhjcF9zdG9wKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGRoY3AuYzoxNDA1PC9kaXY+PC9kaXY+Ci08L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxkbCBjbGFzcz0iZGVwcmVjYXRlZCI+PGR0PjxiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGVwcmVjYXRlZC5odG1sI19kZXByZWNhdGVkMDAwMDAzIj5EZXByZWNhdGVkPC9hPjwvYj48L2R0PjxkZD5Vc2UgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2ExOTcxYWYwNGY4ODJmNWFmZGIzYWRlNDU0YTY4MDEzNCI+bmV0aWZhcGlfZGhjcF9yZWxlYXNlX2FuZF9zdG9wKCk8L2E+IGluc3RlYWQuIDwvZGQ+PC9kbD4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fZGhjcDRfaHRtbF9nYTkzZjZiZjIxMDg2ZGM5YjEwYzBiZWM0Njc2Zjk3MzEyIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19kaGNwNC5odG1sI2dhOTNmNmJmMjEwODZkYzliMTBjMGJlYzQ2NzZmOTczMTIiPmRoY3Bfc3RvcDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgZGhjcF9zdG9wKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGRoY3AuYzoxNDEyPC9kaXY+PC9kaXY+Cis8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxkbCBjbGFzcz0iZGVwcmVjYXRlZCI+PGR0PjxiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGVwcmVjYXRlZC5odG1sI19kZXByZWNhdGVkMDAwMDE0Ij5EZXByZWNhdGVkPC9hPjwvYj48L2R0PjxkZD5Vc2UgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2ExOTcxYWYwNGY4ODJmNWFmZGIzYWRlNDU0YTY4MDEzNCI+bmV0aWZhcGlfZGhjcF9yZWxlYXNlX2FuZF9zdG9wKCk8L2E+IGluc3RlYWQuIDwvZGQ+PC9kbD4KIAogPC9kaXY+CiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZmFwaV9fbmV0aWYuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZmFwaV9fbmV0aWYuaHRtbAppbmRleCBmMDE3NTA3Li4xNmM5M2ExIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZhcGlfX25ldGlmLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmYXBpX19uZXRpZi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTE0OCw3ICsxNDgsNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EyNmZkODMwNDJiNTNiMmZmODJlMTUyNjJlZDcyZjBhNyI+bmV0aWZhcGlfbmV0aWZfY29tbW9uPC9hPihuLCA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2E5YzZlNTQxZjBjMTg0ZTFlYTYxYTVjZDhhZmUzZTk3OSI+bmV0aWZfcmVtb3ZlPC9hPiwgTlVMTCk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYTljNmU1NDFmMGMxODRlMWVhNjFhNWNkOGFmZTNlOTc5Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhOWM2ZTU0MWYwYzE4NGUxZWE2MWE1Y2Q4YWZlM2U5NzkiPm5ldGlmX3JlbW92ZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfcmVtb3ZlKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmM6NzQwPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX2h0bWxfZ2E5YzZlNTQxZjBjMTg0ZTFlYTYxYTVjZDhhZmUzZTk3OSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTljNmU1NDFmMGMxODRlMWVhNjFhNWNkOGFmZTNlOTc5Ij5uZXRpZl9yZW1vdmU8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG5ldGlmX3JlbW92ZShzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjc2NDwvZGl2PjwvZGl2PgogPGRpdiBjbGFzcz0idHRjIiBpZD0iYW5ldGlmYXBpXzhoX2h0bWxfYTI2ZmQ4MzA0MmI1M2IyZmY4MmUxNTI2MmVkNzJmMGE3Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Im5ldGlmYXBpXzhoLmh0bWwjYTI2ZmQ4MzA0MmI1M2IyZmY4MmUxNTI2MmVkNzJmMGE3Ij5uZXRpZmFwaV9uZXRpZl9jb21tb248L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCBuZXRpZmFwaV9uZXRpZl9jb21tb24oc3RydWN0IG5ldGlmICpuZXRpZiwgbmV0aWZhcGlfdm9pZF9mbiB2b2lkZnVuYywgbmV0aWZhcGlfZXJydF9mbiBlcnJ0ZnVuYyk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWZhcGkuYzozMDM8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PGRsIGNsYXNzPSJzZWN0aW9uIHNlZSI+PGR0PlNlZSBhbHNvPC9kdD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTljNmU1NDFmMGMxODRlMWVhNjFhNWNkOGFmZTNlOTc5Ij5uZXRpZl9yZW1vdmUoKTwvYT4gPC9kZD48L2RsPgogCkBAIC0xNjksNyArMTY5LDcgQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0ibmV0aWZhcGlfOGguaHRtbCNhMjZmZDgzMDQyYjUzYjJmZjgyZTE1MjYyZWQ3MmYwYTciPm5ldGlmYXBpX25ldGlmX2NvbW1vbjwvYT4obiwgPGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhYzkwZjI5MGVkZDAwNTIzOGQ2MmFhOTRjNGFjOWRlYTMiPm5ldGlmX3NldF9kZWZhdWx0PC9hPiwgTlVMTCk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYWM5MGYyOTBlZGQwMDUyMzhkNjJhYTk0YzRhYzlkZWEzIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhYzkwZjI5MGVkZDAwNTIzOGQ2MmFhOTRjNGFjOWRlYTMiPm5ldGlmX3NldF9kZWZhdWx0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBuZXRpZl9zZXRfZGVmYXVsdChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjgyNTwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhYzkwZjI5MGVkZDAwNTIzOGQ2MmFhOTRjNGFjOWRlYTMiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FjOTBmMjkwZWRkMDA1MjM4ZDYyYWE5NGM0YWM5ZGVhMyI+bmV0aWZfc2V0X2RlZmF1bHQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG5ldGlmX3NldF9kZWZhdWx0KHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmM6ODQ5PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FjOTBmMjkwZWRkMDA1MjM4ZDYyYWE5NGM0YWM5ZGVhMyI+bmV0aWZfc2V0X2RlZmF1bHQoKTwvYT4gPC9kZD48L2RsPgogCiA8L2Rpdj4KQEAgLTE4OSw3ICsxODksNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EyNmZkODMwNDJiNTNiMmZmODJlMTUyNjJlZDcyZjBhNyI+bmV0aWZhcGlfbmV0aWZfY29tbW9uPC9hPihuLCA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2E2NDFkMDdlZDhjMzFmZTUzMDZiYzAxNjA1YTY3OTBjZiI+bmV0aWZfc2V0X2Rvd248L2E+LCBOVUxMKTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhNjQxZDA3ZWQ4YzMxZmU1MzA2YmMwMTYwNWE2NzkwY2YiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2E2NDFkMDdlZDhjMzFmZTUzMDZiYzAxNjA1YTY3OTBjZiI+bmV0aWZfc2V0X2Rvd248L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG5ldGlmX3NldF9kb3duKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmM6OTIyPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX2h0bWxfZ2E2NDFkMDdlZDhjMzFmZTUzMDZiYzAxNjA1YTY3OTBjZiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTY0MWQwN2VkOGMzMWZlNTMwNmJjMDE2MDVhNjc5MGNmIj5uZXRpZl9zZXRfZG93bjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfc2V0X2Rvd24oc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuYzo5NDk8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PGRsIGNsYXNzPSJzZWN0aW9uIHNlZSI+PGR0PlNlZSBhbHNvPC9kdD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTY0MWQwN2VkOGMzMWZlNTMwNmJjMDE2MDVhNjc5MGNmIj5uZXRpZl9zZXRfZG93bigpPC9hPiA8L2RkPjwvZGw+CiAKIDwvZGl2PgpAQCAtMjA5LDcgKzIwOSw3IEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+PGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9Im5ldGlmYXBpXzhoLmh0bWwjYTI2ZmQ4MzA0MmI1M2IyZmY4MmUxNTI2MmVkNzJmMGE3Ij5uZXRpZmFwaV9uZXRpZl9jb21tb248L2E+KG4sIDxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTM0ZTM3YTFlOGUzNTg3NjBkYzFjNDM4ODc5MjJjN2RiIj5uZXRpZl9zZXRfbGlua19kb3duPC9hPiwgTlVMTCk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYTM0ZTM3YTFlOGUzNTg3NjBkYzFjNDM4ODc5MjJjN2RiIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMzRlMzdhMWU4ZTM1ODc2MGRjMWM0Mzg4NzkyMmM3ZGIiPm5ldGlmX3NldF9saW5rX2Rvd248L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG5ldGlmX3NldF9saW5rX2Rvd24oc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuYzoxMDI5PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX2h0bWxfZ2EzNGUzN2ExZThlMzU4NzYwZGMxYzQzODg3OTIyYzdkYiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYTM0ZTM3YTFlOGUzNTg3NjBkYzFjNDM4ODc5MjJjN2RiIj5uZXRpZl9zZXRfbGlua19kb3duPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBuZXRpZl9zZXRfbGlua19kb3duKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmM6MTA1NjwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48ZGwgY2xhc3M9InNlY3Rpb24gc2VlIj48ZHQ+U2VlIGFsc288L2R0PjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMzRlMzdhMWU4ZTM1ODc2MGRjMWM0Mzg4NzkyMmM3ZGIiPm5ldGlmX3NldF9saW5rX2Rvd24oKTwvYT4gPC9kZD48L2RsPgogCiA8L2Rpdj4KQEAgLTIyOSw3ICsyMjksNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EyNmZkODMwNDJiNTNiMmZmODJlMTUyNjJlZDcyZjBhNyI+bmV0aWZhcGlfbmV0aWZfY29tbW9uPC9hPihuLCA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FlMGQyOTc1ZjE4OTI3Nzk5MGU5ZDUyNzZmZGQ5ZTllYSI+bmV0aWZfc2V0X2xpbmtfdXA8L2E+LCBOVUxMKTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhZTBkMjk3NWYxODkyNzc5OTBlOWQ1Mjc2ZmRkOWU5ZWEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FlMGQyOTc1ZjE4OTI3Nzk5MGU5ZDUyNzZmZGQ5ZTllYSI+bmV0aWZfc2V0X2xpbmtfdXA8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG5ldGlmX3NldF9saW5rX3VwKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmM6OTkxPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX2h0bWxfZ2FlMGQyOTc1ZjE4OTI3Nzk5MGU5ZDUyNzZmZGQ5ZTllYSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWUwZDI5NzVmMTg5Mjc3OTkwZTlkNTI3NmZkZDllOWVhIj5uZXRpZl9zZXRfbGlua191cDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfc2V0X2xpbmtfdXAoc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuYzoxMDE4PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FlMGQyOTc1ZjE4OTI3Nzk5MGU5ZDUyNzZmZGQ5ZTllYSI+bmV0aWZfc2V0X2xpbmtfdXAoKTwvYT4gPC9kZD48L2RsPgogCiA8L2Rpdj4KQEAgLTI0OSw3ICsyNDksNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJuZXRpZmFwaV84aC5odG1sI2EyNmZkODMwNDJiNTNiMmZmODJlMTUyNjJlZDcyZjBhNyI+bmV0aWZhcGlfbmV0aWZfY29tbW9uPC9hPihuLCA8YSBjbGFzcz0iY29kZSBobF9mdW5jdGlvbiIgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FmMTk2OTNiZTQwMWEyNjVhNTJkMmE1NmM2NTc1MzEyMSI+bmV0aWZfc2V0X3VwPC9hPiwgTlVMTCk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYWYxOTY5M2JlNDAxYTI2NWE1MmQyYTU2YzY1NzUzMTIxIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhZjE5NjkzYmU0MDFhMjY1YTUyZDJhNTZjNjU3NTMxMjEiPm5ldGlmX3NldF91cDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfc2V0X3VwKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmM6ODQ3PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX2h0bWxfZ2FmMTk2OTNiZTQwMWEyNjVhNTJkMmE1NmM2NTc1MzEyMSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fbmV0aWYuaHRtbCNnYWYxOTY5M2JlNDAxYTI2NWE1MmQyYTU2YzY1NzUzMTIxIj5uZXRpZl9zZXRfdXA8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj52b2lkIG5ldGlmX3NldF91cChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjg3MTwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48ZGwgY2xhc3M9InNlY3Rpb24gc2VlIj48ZHQ+U2VlIGFsc288L2R0PjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhZjE5NjkzYmU0MDFhMjY1YTUyZDJhNTZjNjU3NTMxMjEiPm5ldGlmX3NldF91cCgpPC9hPiA8L2RkPjwvZGw+CiAKIDwvZGl2PgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmcy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX25ldGlmcy5odG1sCmluZGV4IDQwOTNhZmYuLjAzOGZjMDMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19uZXRpZnMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fbmV0aWZzLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3BidWYuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19wYnVmLmh0bWwKaW5kZXggNGZlZjBmNC4uNTljYzdkMyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3BidWYuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fcGJ1Zi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTU0NywxMSArNTQ3LDggQEAKICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+Q3JlYXRlIFBCVUZfUkFNIGNvcGllcyBvZiBwYnVmcy48L3A+Ci08cD5Vc2VkIHRvIHF1ZXVlIHBhY2tldHMgb24gYmVoYWxmIG9mIHRoZSBsd0lQIHN0YWNrLCBzdWNoIGFzIEFSUCBiYXNlZCBxdWV1ZWluZy48L3A+Ci08ZGwgY2xhc3M9InNlY3Rpb24gbm90ZSI+PGR0Pk5vdGU8L2R0PjxkZD5Zb3UgTVVTVCBleHBsaWNpdGx5IHVzZSBwID0gcGJ1Zl90YWtlKHApOzwvZGQ+Ci08ZGQ+Ci1Pbmx5IG9uZSBwYWNrZXQgaXMgY29waWVkLCBubyBwYWNrZXQgcXVldWUhPC9kZD48L2RsPgorPHA+Q29weSB0aGUgY29udGVudHMgb2Ygb25lIHBhY2tldCBidWZmZXIgaW50byBhbm90aGVyLjwvcD4KKzxkbCBjbGFzcz0ic2VjdGlvbiBub3RlIj48ZHQ+Tm90ZTwvZHQ+PGRkPk9ubHkgb25lIHBhY2tldCBpcyBjb3BpZWQsIG5vIHBhY2tldCBxdWV1ZSE8L2RkPjwvZGw+CiA8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KICAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgogICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+cF90bzwvdGQ+PHRkPnBidWYgZGVzdGluYXRpb24gb2YgdGhlIGNvcHkgPC90ZD48L3RyPgpAQCAtNTU5LDcgKzU1Niw3IEBACiAgIDwvdGFibGU+CiAgIDwvZGQ+CiA8L2RsPgotPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5FUlJfT0sgaWYgcGJ1ZiB3YXMgY29waWVkIEVSUl9BUkcgaWYgb25lIG9mIHRoZSBwYnVmcyBpcyBOVUxMIG9yIHBfdG8gaXMgbm90IGJpZyBlbm91Z2ggdG8gaG9sZCBwX2Zyb20gPC9kZD48L2RsPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5FUlJfT0sgaWYgcGJ1ZiB3YXMgY29waWVkIEVSUl9BUkcgaWYgb25lIG9mIHRoZSBwYnVmcyBpcyBOVUxMIG9yIHBfdG8gaXMgbm90IGJpZyBlbm91Z2ggdG8gaG9sZCBwX2Zyb20gRVJSX1ZBTCBpZiBhbnkgb2YgdGhlIHBidWZzIGFyZSBwYXJ0IG9mIGEgcXVldWUgPC9kZD48L2RsPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtNjc0LDkgKzY3MSw3IEBACiAgIDwvZGQ+CiA8L2RsPgogPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD50aGUgbnVtYmVyIG9mIHBidWZzIHRoYXQgd2VyZSBkZS1hbGxvY2F0ZWQgZnJvbSB0aGUgaGVhZCBvZiB0aGUgY2hhaW4uPC9kZD48L2RsPgotPGRsIGNsYXNzPSJzZWN0aW9uIG5vdGUiPjxkdD5Ob3RlPC9kdD48ZGQ+TVVTVCBOT1QgYmUgY2FsbGVkIG9uIGEgcGFja2V0IHF1ZXVlIChOb3QgdmVyaWZpZWQgdG8gd29yayB5ZXQpLiA8L2RkPgotPGRkPgotdGhlIHJlZmVyZW5jZSBjb3VudGVyIG9mIGEgcGJ1ZiBlcXVhbHMgdGhlIG51bWJlciBvZiBwb2ludGVycyB0aGF0IHJlZmVyIHRvIHRoZSBwYnVmIChvciBpbnRvIHRoZSBwYnVmKS4gPC9kZD48L2RsPgorPGRsIGNsYXNzPSJzZWN0aW9uIG5vdGUiPjxkdD5Ob3RlPC9kdD48ZGQ+dGhlIHJlZmVyZW5jZSBjb3VudGVyIG9mIGEgcGJ1ZiBlcXVhbHMgdGhlIG51bWJlciBvZiBwb2ludGVycyB0aGF0IHJlZmVyIHRvIHRoZSBwYnVmIChvciBpbnRvIHRoZSBwYnVmKS4gPC9kZD48L2RsPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtOTY4LDcgKzk2Myw3IEBACiAgIDwvdGFibGU+CiAgIDwvZGQ+CiA8L2RsPgotPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD50aGUgcGJ1ZiBpbiB0aGUgcXVldWUgd2hlcmUgdGhlIG9mZnNldCBpcyA8L2RkPjwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPnRoZSBwYnVmIGluIHRoZSBxdWV1ZSB3aGVyZSB0aGUgb2Zmc2V0IGlzIG9yIE5VTEwgd2hlbiB0aGUgb2Zmc2V0IGlzIHRvbyBoaWdoIDwvZGQ+PC9kbD4KIAogPC9kaXY+CiA8L2Rpdj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19wZXJmLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fcGVyZi5odG1sCmluZGV4IDlkYjU0ZWYuLmIwMzQzYTQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19wZXJmLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3BlcmYuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fcHBwLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fcHBwLmh0bWwKaW5kZXggMTRiOWY1NC4uYTgzZjhlMCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3BwcC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19wcHAuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0yOTcsNyArMjk3LDcgQEAKICAqCiAgKiBSZXR1cm4gdmFsdWU6IGxlbiBpZiB3cml0ZSBzdWNjZWVkCiAgKi8KLXN0YXRpYyB1MzJfdCBvdXRwdXRfY2IocHBwX3BjYiAqcGNiLCB1OF90ICpkYXRhLCB1MzJfdCBsZW4sIHZvaWQgKmN0eCkgeworc3RhdGljIHUzMl90IG91dHB1dF9jYihwcHBfcGNiICpwY2IsIGNvbnN0IHZvaWQgKmRhdGEsIHUzMl90IGxlbiwgdm9pZCAqY3R4KSB7CiAgIHJldHVybiB1YXJ0X3dyaXRlKFVBUlQsIGRhdGEsIGxlbik7CiB9CiAKQEAgLTUwNiw3ICs1MDYsNyBAQAogCiAKIC8qCi0gKiBGb25jdGlvbiB0byBjYWxsIGZvciByZWNlaXZlZCBkYXRhCisgKiBGdW5jdGlvbiB0byBjYWxsIGZvciByZWNlaXZlZCBkYXRhCiAgKgogICogcHBwLCBQUFAgY29udHJvbCBibG9jawogICogYnVmZmVyLCBpbnB1dCBidWZmZXIKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19yYXdfX3Jhdy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3Jhd19fcmF3Lmh0bWwKaW5kZXggNjQyZjI1Yy4uYjI4NjhmZCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3Jhd19fcmF3Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3Jhd19fcmF3Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTMwLDcgKzEzMCw3IEBACiA8L3RhYmxlPgogPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+CiA8cD5JbXBsZW1lbnRhdGlvbiBvZiByYXcgcHJvdG9jb2wgUENCcyBmb3IgbG93LWxldmVsIGhhbmRsaW5nIG9mIGRpZmZlcmVudCB0eXBlcyBvZiBwcm90b2NvbHMgYmVzaWRlcyAob3Igb3ZlcnJpZGluZykgdGhvc2UgYWxyZWFkeSBhdmFpbGFibGUgaW4gbHdJUC48YnIgIC8+Ci08L3A+PGRsIGNsYXNzPSJzZWN0aW9uIHNlZSI+PGR0PlNlZSBhbHNvPC9kdD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXBpLmh0bWwiPkFQSXM8L2E+IDwvZGQ+PC9kbD4KKyA8L3A+PGRsIGNsYXNzPSJzZWN0aW9uIHNlZSI+PGR0PlNlZSBhbHNvPC9kdD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXBpLmh0bWwiPkFQSXM8L2E+IDwvZGQ+PC9kbD4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgogPGEgaWQ9ImdhODU3NmRiYmM3ZjAzNzk3NTI1ZDJjZGI3ZWMzYjlmZTQiIG5hbWU9ImdhODU3NmRiYmM3ZjAzNzk3NTI1ZDJjZGI3ZWMzYjlmZTQiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTg1NzZkYmJjN2YwMzc5NzUyNWQyY2RiN2VjM2I5ZmU0Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5yYXdfYmluZCgpPC9oMj4KQEAgLTMwMSw3ICszMDEsNyBAQAogPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5UaGUgUkFXIFBDQiB3aGljaCB3YXMgY3JlYXRlZC4gTlVMTCBpZiB0aGUgUENCIGRhdGEgc3RydWN0dXJlIGNvdWxkIG5vdCBiZSBhbGxvY2F0ZWQuPC9kZD48L2RsPgogPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CiAgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnR5cGU8L3RkPjx0ZD5JUCBhZGRyZXNzIHR5cGUsIHNlZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWYyMTQyZjBkZmRjYzkzOGUyZGIxNmFhNzQ1ZWQ1ODVjIj5sd2lwX2lwX2FkZHJfdHlwZTwvYT4gZGVmaW5pdGlvbnMuIElmIHlvdSB3YW50IHRvIGxpc3RlbiB0byBJUHY0IGFuZCBJUHY2IChkdWFsLXN0YWNrKSBwYWNrZXRzLCBzdXBwbHkgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2dhZjIxNDJmMGRmZGNjOTM4ZTJkYjE2YWE3NDVlZDU4NWNhYzZiMmM5OWNmOTIwZTA4ZWZjYjU1ZGM0MGU0Mjk0NGUiPklQQUREUl9UWVBFX0FOWTwvYT4gYXMgYXJndW1lbnQgYW5kIGJpbmQgdG8gSVBfQU5ZX1RZUEUuIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnR5cGU8L3RkPjx0ZD5JUCBhZGRyZXNzIHR5cGUsIHNlZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWYyMTQyZjBkZmRjYzkzOGUyZGIxNmFhNzQ1ZWQ1ODVjIj5sd2lwX2lwX2FkZHJfdHlwZTwvYT4gZGVmaW5pdGlvbnMuIElmIHlvdSB3YW50IHRvIGxpc3RlbiB0byBJUHY0IGFuZCBJUHY2IChkdWFsLXN0YWNrKSBwYWNrZXRzLCBzdXBwbHkgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2dhZjIxNDJmMGRmZGNjOTM4ZTJkYjE2YWE3NDVlZDU4NWNhYzZiMmM5OWNmOTIwZTA4ZWZjYjU1ZGM0MGU0Mjk0NGUiPklQQUREUl9UWVBFX0FOWTwvYT4gYXMgYXJndW1lbnQgYW5kIGJpbmQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2FiZTQzYjE1NDUzM2I3MzU4NWM0ZTU4ZjU2ODM3MGVkZSI+SVBfQU5ZX1RZUEU8L2E+LiA8L3RkPjwvdHI+CiAgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5wcm90bzwvdGQ+PHRkPnRoZSBwcm90b2NvbCBudW1iZXIgKG5leHQgaGVhZGVyKSBvZiB0aGUgSVB2NiBwYWNrZXQgcGF5bG9hZCAoZS5nLiBJUDZfTkVYVEhfSUNNUDYpPC90ZD48L3RyPgogICA8L3RhYmxlPgogICA8L2RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3JmYzc2NjhpZi5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3JmYzc2NjhpZi5odG1sCmluZGV4IDc2ODBlY2UuLjRiZGU3YWUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19yZmM3NjY4aWYuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fcmZjNzY2OGlmLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTA1LDEwICsxMDUsMTAgQEAKIDx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImZ1bmMtbWVtYmVycyIgbmFtZT0iZnVuYy1tZW1iZXJzIj48L2E+CiBGdW5jdGlvbnM8L2gyPjwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYWE1YjE4MjNjMjUwOWI4ODE2ZWY5OGRjYWM2N2UwMzdjIiBpZD0icl9nYWE1YjE4MjNjMjUwOWI4ODE2ZWY5OGRjYWM2N2UwMzdjIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYTViMTgyM2MyNTA5Yjg4MTZlZjk4ZGNhYzY3ZTAzN2MiPmJsZV9hZGRyX3RvX2V1aTY0PC9hPiAodWludDhfdCAqZHN0LCBjb25zdCB1aW50OF90ICpzcmMsIGludCBwdWJsaWNfYWRkcik8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYWE1YjE4MjNjMjUwOWI4ODE2ZWY5OGRjYWM2N2UwMzdjIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhM2UyNDVhODVmOWVkZGRjYTkzZGRkMjk2NzIwOTg4MWQiIGlkPSJyX2dhM2UyNDVhODVmOWVkZGRjYTkzZGRkMjk2NzIwOTg4MWQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EzZTI0NWE4NWY5ZWRkZGNhOTNkZGQyOTY3MjA5ODgxZCI+ZXVpNjRfdG9fYmxlX2FkZHI8L2E+ICh1aW50OF90ICpkc3QsIGNvbnN0IHVpbnQ4X3QgKnNyYyk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYTNlMjQ1YTg1ZjllZGRkY2E5M2RkZDI5NjcyMDk4ODFkIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNDllM2ExZmNlZGQ5MzcxMDIzYzc3NmYwYzNiYjNmMGYiIGlkPSJyX2dhNDllM2ExZmNlZGQ5MzcxMDIzYzc3NmYwYzNiYjNmMGYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E0OWUzYTFmY2VkZDkzNzEwMjNjNzc2ZjBjM2JiM2YwZiI+YmxlX2FkZHJfdG9fZXVpNjQ8L2E+ICh1OF90ICpkc3QsIGNvbnN0IHU4X3QgKnNyYywgaW50IHB1YmxpY19hZGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNDllM2ExZmNlZGQ5MzcxMDIzYzc3NmYwYzNiYjNmMGYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCIgaWQ9InJfZ2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTU3ZDMzZjYwMjRlNDE5ZThjYmMzMmRmYjc4M2UzOWE0Ij5ldWk2NF90b19ibGVfYWRkcjwvYT4gKHU4X3QgKmRzdCwgY29uc3QgdThfdCAqc3JjKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNTdkMzNmNjAyNGU0MTllOGNiYzMyZGZiNzgzZTM5YTQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2EyOWRjMGViYjhlNjQwYjY0YTU3MDA4Yjk0MGZiY2ExZSIgaWQ9InJfZ2EyOWRjMGViYjhlNjQwYjY0YTU3MDA4Yjk0MGZiY2ExZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTI5ZGMwZWJiOGU2NDBiNjRhNTcwMDhiOTQwZmJjYTFlIj5yZmM3NjY4X3NldF9jb250ZXh0PC9hPiAodThfdCBpZHgsIGNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWFjYTllNzk2ZTkzYTM1NTI5NGM0OTU0YzA4ZDAxNzYyIj5pcDZfYWRkcl90PC9hPiAqY29udGV4dCk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTI5ZGMwZWJiOGU2NDBiNjRhNTcwMDhiOTQwZmJjYTFlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhMjI5MzBhZGU0ZTc3YjMxOTVmZTU5OTQ5ODM0ZDg1ZjAiIGlkPSJyX2dhMjI5MzBhZGU0ZTc3YjMxOTVmZTU5OTQ5ODM0ZDg1ZjAiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EyMjkzMGFkZTRlNzdiMzE5NWZlNTk5NDk4MzRkODVmMCI+cmZjNzY2OF9vdXRwdXQ8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwiPnBidWY8L2E+ICpxLCBjb25zdCA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNl9fYWRkcl84aC5odG1sI2FhY2E5ZTc5NmU5M2EzNTUyOTRjNDk1NGMwOGQwMTc2MiI+aXA2X2FkZHJfdDwvYT4gKmlwNmFkZHIpPC90ZD48L3RyPgpAQCAtMTIzLDcgKzEyMyw3IEBACiA8cD5Vc2FnZTo8L3A+PHVsPgogPGxpPmFkZCB0aGlzIG5ldGlmPHVsPgogPGxpPmRvbid0IGFkZCBJUHY0IGFkZHJlc3NlcyAobm8gSVB2NCBzdXBwb3J0IGluIFJGQzc2NjgpLCBwYXNzICdOVUxMJywnTlVMTCcsJ05VTEwnPC9saT4KLTxsaT51c2UgdGhlIEJMRSB0byBFVUk2NCBjb252ZXJzYXRpb24gdXRpbCB0byBjcmVhdGUgYW4gSVB2NiBsaW5rLWxvY2FsIGFkZHJlc3MgZnJvbSB0aGUgQkxFIE1BQyAoPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FhNWIxODIzYzI1MDliODgxNmVmOThkY2FjNjdlMDM3YyI+YmxlX2FkZHJfdG9fZXVpNjQ8L2E+KTwvbGk+Cis8bGk+dXNlIHRoZSBCTEUgdG8gRVVJNjQgY29udmVyc2F0aW9uIHV0aWwgdG8gY3JlYXRlIGFuIElQdjYgbGluay1sb2NhbCBhZGRyZXNzIGZyb20gdGhlIEJMRSBNQUMgKDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNDllM2ExZmNlZGQ5MzcxMDIzYzc3NmYwYzNiYjNmMGYiPmJsZV9hZGRyX3RvX2V1aTY0PC9hPik8L2xpPgogPGxpPmlucHV0IGZ1bmN0aW9uOiA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTFkOWQ3YWZmOWYyZjA1MTVmNzYxYmUwODAyMTc4MTk3Ij5yZmM3NjY4X2lucHV0PC9hPjwvbGk+CiA8L3VsPgogPC9saT4KQEAgLTEzNiw4ICsxMzYsOCBAQAogPC9saT4KIDwvdWw+CiA8aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KLTxhIGlkPSJnYWE1YjE4MjNjMjUwOWI4ODE2ZWY5OGRjYWM2N2UwMzdjIiBuYW1lPSJnYWE1YjE4MjNjMjUwOWI4ODE2ZWY5OGRjYWM2N2UwMzdjIj48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FhNWIxODIzYzI1MDliODgxNmVmOThkY2FjNjdlMDM3YyI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+YmxlX2FkZHJfdG9fZXVpNjQoKTwvaDI+Cis8YSBpZD0iZ2E0OWUzYTFmY2VkZDkzNzEwMjNjNzc2ZjBjM2JiM2YwZiIgbmFtZT0iZ2E0OWUzYTFmY2VkZDkzNzEwMjNjNzc2ZjBjM2JiM2YwZiI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhNDllM2ExZmNlZGQ5MzcxMDIzYzc3NmYwYzNiYjNmMGYiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmJsZV9hZGRyX3RvX2V1aTY0KCk8L2gyPgogCiA8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KIDxkaXYgY2xhc3M9Im1lbXByb3RvIj4KQEAgLTE0NSwxMiArMTQ1LDEyIEBACiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgYmxlX2FkZHJfdG9fZXVpNjQgPC90ZD4KICAgICAgICAgICA8dGQ+KDwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnVpbnQ4X3QgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+ZHN0PC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51OF90ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmRzdDwvZW0+PC9zcGFuPiwgPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgICAgPHRyPgogICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CiAgICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IHVpbnQ4X3QgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+c3JjPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5jb25zdCB1OF90ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnNyYzwvZW0+PC9zcGFuPiwgPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgICAgPHRyPgogICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CkBAIC0xNzMsOCArMTczLDggQEAKIAogPC9kaXY+CiA8L2Rpdj4KLTxhIGlkPSJnYTNlMjQ1YTg1ZjllZGRkY2E5M2RkZDI5NjcyMDk4ODFkIiBuYW1lPSJnYTNlMjQ1YTg1ZjllZGRkY2E5M2RkZDI5NjcyMDk4ODFkIj48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2EzZTI0NWE4NWY5ZWRkZGNhOTNkZGQyOTY3MjA5ODgxZCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+ZXVpNjRfdG9fYmxlX2FkZHIoKTwvaDI+Cis8YSBpZD0iZ2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCIgbmFtZT0iZ2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhNTdkMzNmNjAyNGU0MTllOGNiYzMyZGZiNzgzZTM5YTQiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmV1aTY0X3RvX2JsZV9hZGRyKCk8L2gyPgogCiA8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KIDxkaXYgY2xhc3M9Im1lbXByb3RvIj4KQEAgLTE4MiwxMiArMTgyLDEyIEBACiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgZXVpNjRfdG9fYmxlX2FkZHIgPC90ZD4KICAgICAgICAgICA8dGQ+KDwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnVpbnQ4X3QgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+ZHN0PC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51OF90ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmRzdDwvZW0+PC9zcGFuPiwgPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgICAgPHRyPgogICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CiAgICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IHVpbnQ4X3QgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+c3JjPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IHU4X3QgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+c3JjPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19yZmM3NjY4aWYuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fcmZjNzY2OGlmLmpzCmluZGV4IGU0OGFlNzQuLjFiOGUwYTEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19yZmM3NjY4aWYuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3JmYzc2NjhpZi5qcwpAQCAtMSw3ICsxLDcgQEAKIHZhciBncm91cF9fcmZjNzY2OGlmID0KIFsKLSAgICBbICJibGVfYWRkcl90b19ldWk2NCIsICJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2FhNWIxODIzYzI1MDliODgxNmVmOThkY2FjNjdlMDM3YyIsIG51bGwgXSwKLSAgICBbICJldWk2NF90b19ibGVfYWRkciIsICJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2EzZTI0NWE4NWY5ZWRkZGNhOTNkZGQyOTY3MjA5ODgxZCIsIG51bGwgXSwKKyAgICBbICJibGVfYWRkcl90b19ldWk2NCIsICJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2E0OWUzYTFmY2VkZDkzNzEwMjNjNzc2ZjBjM2JiM2YwZiIsIG51bGwgXSwKKyAgICBbICJldWk2NF90b19ibGVfYWRkciIsICJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCIsIG51bGwgXSwKICAgICBbICJyZmM3NjY4X2lmX2luaXQiLCAiZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhM2Q5NDAzNzZiZDk4M2MxNGZmY2M4ZDI1ODBmM2JkZGUiLCBudWxsIF0sCiAgICAgWyAicmZjNzY2OF9pbnB1dCIsICJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2ExZDlkN2FmZjlmMmYwNTE1Zjc2MWJlMDgwMjE3ODE5NyIsIG51bGwgXSwKICAgICBbICJyZmM3NjY4X291dHB1dCIsICJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2EyMjkzMGFkZTRlNzdiMzE5NWZlNTk5NDk4MzRkODVmMCIsIG51bGwgXSwKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zZXF1ZW50aWFsX19hcGkuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zZXF1ZW50aWFsX19hcGkuaHRtbAppbmRleCBkZGUyNTUxLi45YzU2Yzc3IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc2VxdWVudGlhbF9fYXBpLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NlcXVlbnRpYWxfX2FwaS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zaXhsb3dwYW4uaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zaXhsb3dwYW4uaHRtbAppbmRleCAzY2FmMzZlLi5kZWRhMGYyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc2l4bG93cGFuLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NpeGxvd3Bhbi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbGlwaWYuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbGlwaWYuaHRtbAppbmRleCBiNjFhM2YyLi40MWY4ZDZiIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc2xpcGlmLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NsaXBpZi5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTExOCwxMCArMTE4LDExIEBACiA8L3RhYmxlPgogPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+CiA8cD5UaGlzIGlzIGFuIGFyY2ggaW5kZXBlbmRlbnQgU0xJUCBuZXRpZi4gVGhlIHNwZWNpZmljIHNlcmlhbCBob29rcyBtdXN0IGJlIHByb3ZpZGVkIGJ5IGFub3RoZXIgZmlsZS4gVGhleSBhcmUgc2lvX29wZW4sIHNpb19yZWFkL3Npb190cnlyZWFkIGFuZCBzaW9fc2VuZDwvcD4KLTxwPlVzYWdlOiBUaGlzIG5ldGlmIGNhbiBiZSB1c2VkIGluIHRocmVlIHdheXM6PGJyICAvPgotIDEpIEZvciBOT19TWVM9PTAsIGFuIFJYIHRocmVhZCBjYW4gYmUgdXNlZCB3aGljaCBibG9ja3Mgb24gc2lvX3JlYWQoKSB1bnRpbCBkYXRhIGlzIHJlY2VpdmVkLjxiciAgLz4KLSAyKSBJbiB5b3VyIG1haW4gbG9vcCwgY2FsbCA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTdiMDM2ZmQxY2RlOWIyOTkxMzljYWM2MmY1MmQxNWE2Ij5zbGlwaWZfcG9sbCgpPC9hPiB0byBjaGVjayBmb3IgbmV3IFJYIGJ5dGVzLCBjb21wbGV0ZWQgcGFja2V0cyBhcmUgZmVkIGludG8gbmV0aWYtJmd0O2lucHV0KCkuPGJyICAvPgotIDMpIENhbGwgc2xpcGlmX3JlY2VpdmVkX2J5dGVbc10oKSBmcm9tIHlvdXIgc2VyaWFsIFJYIElTUiBhbmQgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FlMTM1YmU3ZDYxZTViYjQ5YWI3MjQ3NmIwYWE3MDk0NiI+c2xpcGlmX3Byb2Nlc3NfcnhxdWV1ZSgpPC9hPiBmcm9tIHlvdXIgbWFpbiBsb29wLiBJU1IgbGV2ZWwgZGVjb2RlcyBwYWNrZXRzIGFuZCBwdXRzIGNvbXBsZXRlZCBwYWNrZXRzIG9uIGEgcXVldWUgd2hpY2ggaXMgZmVkIGludG8gdGhlIHN0YWNrIGZyb20gdGhlIG1haW4gbG9vcCAobmVlZHMgU1lTX0xJR0hUV0VJR0hUX1BST1QgZm9yIHBidWZfYWxsb2MgdG8gd29yayBvbiBJU1IgbGV2ZWwhKS4gPC9wPgorPHA+VXNhZ2U6IFRoaXMgbmV0aWYgY2FuIGJlIHVzZWQgaW4gdGhyZWUgd2F5czo8L3A+PG9sIHR5cGU9IjEiPgorPGxpPkZvciBOT19TWVM9PTAsIGFuIFJYIHRocmVhZCBjYW4gYmUgdXNlZCB3aGljaCBibG9ja3Mgb24gc2lvX3JlYWQoKSB1bnRpbCBkYXRhIGlzIHJlY2VpdmVkLjwvbGk+Cis8bGk+SW4geW91ciBtYWluIGxvb3AsIGNhbGwgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E3YjAzNmZkMWNkZTliMjk5MTM5Y2FjNjJmNTJkMTVhNiI+c2xpcGlmX3BvbGwoKTwvYT4gdG8gY2hlY2sgZm9yIG5ldyBSWCBieXRlcywgY29tcGxldGVkIHBhY2tldHMgYXJlIGZlZCBpbnRvIG5ldGlmLSZndDtpbnB1dCgpLjwvbGk+Cis8bGk+Q2FsbCBzbGlwaWZfcmVjZWl2ZWRfYnl0ZVtzXSgpIGZyb20geW91ciBzZXJpYWwgUlggSVNSIGFuZCA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWUxMzViZTdkNjFlNWJiNDlhYjcyNDc2YjBhYTcwOTQ2Ij5zbGlwaWZfcHJvY2Vzc19yeHF1ZXVlKCk8L2E+IGZyb20geW91ciBtYWluIGxvb3AuIElTUiBsZXZlbCBkZWNvZGVzIHBhY2tldHMgYW5kIHB1dHMgY29tcGxldGVkIHBhY2tldHMgb24gYSBxdWV1ZSB3aGljaCBpcyBmZWQgaW50byB0aGUgc3RhY2sgZnJvbSB0aGUgbWFpbiBsb29wIChuZWVkcyBTWVNfTElHSFRXRUlHSFRfUFJPVCBmb3IgcGJ1Zl9hbGxvYyB0byB3b3JrIG9uIElTUiBsZXZlbCEpLiA8L2xpPgorPC9vbD4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgogPGEgaWQ9ImdhNjg3OTczYmE4MmRhYjEzYTViOWQzOGQ3Mzk5YWVlZTMiIG5hbWU9ImdhNjg3OTczYmE4MmRhYjEzYTViOWQzOGQ3Mzk5YWVlZTMiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTY4Nzk3M2JhODJkYWIxM2E1YjlkMzhkNzM5OWFlZWUzIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5zbGlwaWZfaW5pdCgpPC9oMj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbXRwLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc210cC5odG1sCmluZGV4IDJiYWZkYTQuLjU1YjZmNDAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbXRwLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NtdHAuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xNTcsNyArMTU3LDcgQEAKIDxkaXYgY2xhc3M9ImxpbmUiPiAgIDxzcGFuIGNsYXNzPSJrZXl3b3JkZmxvdyI+cmV0dXJuPC9zcGFuPiBCREhfV09SS0lORzs8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPn08L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiA8L2Rpdj4KLTxkaXYgY2xhc3M9ImxpbmUiPnNtdHBfc2VuZF9tYWlsX2JvZHljYmFjayg8c3BhbiBjbGFzcz0ic3RyaW5nbGl0ZXJhbCI+JnF1b3Q7c2VuZGVyJnF1b3Q7PC9zcGFuPiwgPHNwYW4gY2xhc3M9InN0cmluZ2xpdGVyYWwiPiZxdW90O3JlY2lwaWVudCZxdW90Ozwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJzdHJpbmdsaXRlcmFsIj4mcXVvdDtzdWJqZWN0JnF1b3Q7PC9zcGFuPiwgPC9kaXY+Cis8ZGl2IGNsYXNzPSJsaW5lIj5zbXRwX3NlbmRfbWFpbF9ib2R5Y2JhY2soPHNwYW4gY2xhc3M9InN0cmluZ2xpdGVyYWwiPiZxdW90O3NlbmRlciZxdW90Ozwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJzdHJpbmdsaXRlcmFsIj4mcXVvdDtyZWNpcGllbnQmcXVvdDs8L3NwYW4+LCA8c3BhbiBjbGFzcz0ic3RyaW5nbGl0ZXJhbCI+JnF1b3Q7c3ViamVjdCZxdW90Ozwvc3Bhbj4sPC9kaXY+CiA8ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICBteV9zbXRwX2JvZHlkaF9mbiwgbXlfc210cF9yZXN1bHRfZm4sIHNvbWVfYXJndW1lbnQpOzwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KIDxhIGlkPSJnYWU0MzExOTQ4MGM0MTQ2ZGY5ZWVmZjdhZTgwYzc2N2Y3IiBuYW1lPSJnYWU0MzExOTQ4MGM0MTQ2ZGY5ZWVmZjdhZTgwYzc2N2Y3Ij48L2E+CkBAIC0yMTAsNyArMjEwLDcgQEAKICAgPC90YWJsZT4KICAgPC9kZD4KIDwvZGw+Ci08ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPi0gRVJSX09LIGlmIHN0cnVjdHVyZXMgd2VyZSBhbGxvY2F0ZWQgYW5kIG5vIGVycm9yIG9jY3VyZWQgc3RhcnRpbmcgdGhlIGNvbm5lY3Rpb24gKHRoaXMgZG9lcyBub3QgbWVhbiB0aGUgZW1haWwgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHNlbnQhKTx1bD4KKzxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+LSBFUlJfT0sgaWYgc3RydWN0dXJlcyB3ZXJlIGFsbG9jYXRlZCBhbmQgbm8gZXJyb3Igb2NjdXJyZWQgc3RhcnRpbmcgdGhlIGNvbm5lY3Rpb24gKHRoaXMgZG9lcyBub3QgbWVhbiB0aGUgZW1haWwgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHNlbnQhKTx1bD4KIDxsaT5hbm90aGVyIGVycl90IG9uIGVycm9yLiA8L2xpPgogPC91bD4KIDwvZGQ+PC9kbD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbXRwX19vcHRzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc210cF9fb3B0cy5odG1sCmluZGV4IDZhY2Q0MjUuLjg2OGQwYTYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbXRwX19vcHRzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NtdHBfX29wdHMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NubXAuaHRtbAppbmRleCA3YWRmM2Y2Li5iNDg2NWVhIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbm1wLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTE2LDEwICsxMTYsMTAgQEAKIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxwPlNOTVB2MmMgYW5kIFNOTVB2MyBjb21wYXRpYmxlIGFnZW50PGJyICAvPgotVGhlcmUgaXMgYWxzbyBhIE1JQiBjb21waWxlciBhbmQgYSBNSUIgdmlld2VyIGluIGx3SVAgY29udHJpYiByZXBvc2l0b3J5IChsd2lwLWNvbnRyaWIvYXBwcy9Md2lwTWliQ29tcGlsZXIpLjxiciAgLz4KLVRoZSBhZ2VudCBpbXBsZW1lbnRzIHRoZSBtb3N0IGltcG9ydGFudCBNSUIyIE1JQnMgaW5jbHVkaW5nIElQdjYgc3VwcG9ydCAoaW50ZXJmYWNlcywgVURQLCBUQ1AsIFNOTVAsIElDTVAsIFNZU1RFTSkuIElQIE1JQiBpcyBhbiBvbGRlciB2ZXJzaW9uIHdpdGhvdXQgSVB2NiBzdGF0aXN0aWNzIChUT0RPKS48YnIgIC8+Ci1SZXdyaXR0ZW4gYnkgTWFydGluIEhlbnRzY2hlbCA8YSBocmVmPSIjIiBvbmNsaWNrPSJsb2NhdGlvbi5ocmVmPSdtYWknKydsdG86JysnaW5mJysnb0AnKydjbC0nKydzbycrJ2Z0LicrJ2RlJzsgcmV0dXJuIGZhbHNlOyI+aW5mb0A8c3BhbiBjbGFzcz0ib2JmdXNjYXRvciI+Lm5vc3BAbS48L3NwYW4+Y2wtczxzcGFuIGNsYXNzPSJvYmZ1c2NhdG9yIj4ubm9zcEBtLjwvc3Bhbj5vZnQuZDxzcGFuIGNsYXNzPSJvYmZ1c2NhdG9yIj4ubm9zcEBtLjwvc3Bhbj5lPC9hPiBhbmQgRGlyayBaaWVnZWxtZWllciA8YSBocmVmPSIjIiBvbmNsaWNrPSJsb2NhdGlvbi5ocmVmPSdtYWknKydsdG86JysnZHppJysnZWcnKydlbEAnKydnbScrJ3guZCcrJ2UnOyByZXR1cm4gZmFsc2U7Ij5kemllZzxzcGFuIGNsYXNzPSJvYmZ1c2NhdG9yIj4ubm9zcEBtLjwvc3Bhbj5lbEBnPHNwYW4gY2xhc3M9Im9iZnVzY2F0b3IiPi5ub3NwQG0uPC9zcGFuPm14LmRlPC9hPjxiciAgLz4KLSA8L3A+PGgxPjAgQWdlbnQgQ2FwYWJpbGl0aWVzIDwvaDE+CisgVGhlcmUgaXMgYWxzbyBhIE1JQiBjb21waWxlciBhbmQgYSBNSUIgdmlld2VyIGluIGx3SVAvY29udHJpYiBzdWJkaXIgKGx3aXAvY29udHJpYi9hcHBzL0x3aXBNaWJDb21waWxlcikuPGJyICAvPgorIFRoZSBhZ2VudCBpbXBsZW1lbnRzIHRoZSBtb3N0IGltcG9ydGFudCBNSUIyIE1JQnMgaW5jbHVkaW5nIElQdjYgc3VwcG9ydCAoaW50ZXJmYWNlcywgVURQLCBUQ1AsIFNOTVAsIElDTVAsIFNZU1RFTSkuIElQIE1JQiBpcyBhbiBvbGRlciB2ZXJzaW9uIHdpdGhvdXQgSVB2NiBzdGF0aXN0aWNzIChUT0RPKS48YnIgIC8+CisgUmV3cml0dGVuIGJ5IE1hcnRpbiBIZW50c2NoZWwgPGEgaHJlZj0iIyIgb25jbGljaz0ibG9jYXRpb24uaHJlZj0nbWFpJysnbHRvOicrJ2luZicrJ29AJysnY2wtJysnc28nKydmdC4nKydkZSc7IHJldHVybiBmYWxzZTsiPmluZm9APHNwYW4gY2xhc3M9Im9iZnVzY2F0b3IiPi5ub3NwQG0uPC9zcGFuPmNsLXM8c3BhbiBjbGFzcz0ib2JmdXNjYXRvciI+Lm5vc3BAbS48L3NwYW4+b2Z0LmQ8c3BhbiBjbGFzcz0ib2JmdXNjYXRvciI+Lm5vc3BAbS48L3NwYW4+ZTwvYT4gYW5kIERpcmsgWmllZ2VsbWVpZXIgPGEgaHJlZj0iIyIgb25jbGljaz0ibG9jYXRpb24uaHJlZj0nbWFpJysnbHRvOicrJ2R6aScrJ2VnJysnZWxAJysnZ20nKyd4LmQnKydlJzsgcmV0dXJuIGZhbHNlOyI+ZHppZWc8c3BhbiBjbGFzcz0ib2JmdXNjYXRvciI+Lm5vc3BAbS48L3NwYW4+ZWxAZzxzcGFuIGNsYXNzPSJvYmZ1c2NhdG9yIj4ubm9zcEBtLjwvc3Bhbj5teC5kZTwvYT48L3A+Cis8aDE+MCBBZ2VudCBDYXBhYmlsaXRpZXMgPC9oMT4KIDxoMj5GZWF0dXJlczogPC9oMj4KIDx1bD4KIDxsaT5TTk1QdjJjIHN1cHBvcnQuPC9saT4KQEAgLTEzNywxMSArMTM3LDExIEBACiA8L3VsPgogPGgyPk1JQiBjb21waWxlciAoY29kZSBnZW5lcmF0b3IpOiA8L2gyPgogPHVsPgotPGxpPlByb3ZpZGVkIGluIGx3SVAgY29udHJpYiByZXBvc2l0b3J5LjwvbGk+Ci08bGk+V3JpdHRlbiBpbiBDIy4gTUlCIHZpZXdlciB1c2VkIFdpbmRvd3MgRm9ybXMuPC9saT4KKzxsaT5Qcm92aWRlZCBpbiBjb250cmliIGRpci48L2xpPgorPGxpPldyaXR0ZW4gaW4gQyMuIE1JQiB2aWV3ZXIgdXNpbmcgV2luZG93cyBGb3Jtcy48L2xpPgogPGxpPkRldmVsb3BlZCBvbiBXaW5kb3dzIHdpdGggVmlzdWFsIFN0dWRpbyAyMDEwLjwvbGk+CiA8bGk+Q2FuIGJlIGNvbXBpbGVkIGFuZCB1c2VkIG9uIGFsbCBwbGF0Zm9ybXMgd2l0aCA8YSBocmVmPSJodHRwOi8vd3d3Lm1vbm9kZXZlbG9wLmNvbS8iPmh0dHA6Ly93d3cubW9ub2RldmVsb3AuY29tLzwvYT4uPC9saT4KLTxsaT5CYXNlZCBvbiBhIGhlYXZpbHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBvZiBTaGFycFNubXBMaWIgKGE0YmQwNWM2YWZiNCkgKDxhIGhyZWY9Imh0dHBzOi8vc2hhcnBzbm1wbGliLmNvZGVwbGV4LmNvbS9Tb3VyY2VDb250cm9sL25ldHdvcmsvZm9ya3MvTmVtbzE1Ny9NSUJQYXJzZXJVcGRhdGUiPmh0dHBzOi8vc2hhcnBzbm1wbGliLmNvZGVwbGV4LmNvbS9Tb3VyY2VDb250cm9sL25ldHdvcmsvZm9ya3MvTmVtbzE1Ny9NSUJQYXJzZXJVcGRhdGU8L2E+KS48L2xpPgorPGxpPkJhc2VkIG9uIGEgaGVhdmlseSBtb2RpZmllZCB2ZXJzaW9uIG9mIG9mIFNoYXJwU25tcExpYiAoYTRiZDA1YzZhZmI0KSAoPGEgaHJlZj0iaHR0cHM6Ly9zaGFycHNubXBsaWIuY29kZXBsZXguY29tL1NvdXJjZUNvbnRyb2wvbmV0d29yay9mb3Jrcy9OZW1vMTU3L01JQlBhcnNlclVwZGF0ZSI+aHR0cHM6Ly9zaGFycHNubXBsaWIuY29kZXBsZXguY29tL1NvdXJjZUNvbnRyb2wvbmV0d29yay9mb3Jrcy9OZW1vMTU3L01JQlBhcnNlclVwZGF0ZTwvYT4pLiBUaGlzIGhhcyBiZWVuIHRoZSBsYXN0IGtub3duIHJldmlzaW9uIG9mIHRoYXQgY29kZSBiZWZvcmUgYmVpbmcgY29udmVydGVkIHRvIGNsb3NlZCBzb3VyY2UuIFRoZSBuZXcgY29kZSBvbiBnaXRodWIgaGFzIGNvbXBsZXRlbHkgY2hhbmdlZCwgc28gd2UgY2FuIG5vdCBqdXN0IHVwZGF0ZSA6LSg8L2xpPgogPGxpPk1JQiBwYXJzZXIsIEMgZmlsZSBnZW5lcmF0aW9uIGZyYW1ld29yayBhbmQgTFdJUCBjb2RlIGdlbmVyYXRpb24gYXJlIGNsZWFubHkgc2VwYXJhdGVkLCB3aGljaCBtZWFucyB0aGUgY29kZSBtYXkgYmUgdXNlZnVsIGFzIGEgYmFzZSBmb3IgY29kZSBnZW5lcmF0aW9uIG9mIG90aGVyIFNOTVAgYWdlbnRzLjwvbGk+CiA8L3VsPgogPGgyPk5vdGVzOiA8L2gyPgpAQCAtMTU1LDcgKzE1NSw3IEBACiA8aDI+TUlCIElJIDwvaDI+CiA8cD5UaGUgc3RhbmRhcmQgbHdJUCBzdGFjayBtYW5hZ2VtZW50IGluZm9ybWF0aW9uIGJhc2UuIFRoaXMgaXMgYSByZXF1aXJlZCBNSUIsIHNvIHRoaXMgaXMgYWx3YXlzIGVuYWJsZWQuIFRoZSBncm91cHMgRUdQLCBDTU9UIGFuZCB0cmFuc21pc3Npb24gYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQuPC9wPgogPHA+TW9zdCBtaWItMiBvYmplY3RzIGFyZSBub3Qgd3JpdGFibGUgZXhjZXB0OiBzeXNOYW1lLCBzeXNMb2NhdGlvbiwgc3lzQ29udGFjdCwgc25tcEVuYWJsZUF1dGhlblRyYXBzLiBXcml0aW5nIHRvIG9yIGNoYW5naW5nIHRoZSBBUlAgYW5kIElQIGFkZHJlc3MgYW5kIHJvdXRlIHRhYmxlcyBpcyBub3QgcG9zc2libGUuPC9wPgotPHA+Tm90ZSBsd0lQIGhhcyBhIHZlcnkgbGltaXRlZCBub3Rpb24gb2YgSVAgcm91dGluZy4gSXQgY3VycmVudGx5IGRvZW4ndCBoYXZlIGEgcm91dGUgdGFibGUgYW5kIGRvZXNuJ3QgaGF2ZSBhIG5vdGlvbiBvZiB0aGUgVSxHLEggZmxhZ3MuIEluc3RlYWQgbHdJUCB1c2VzIHRoZSBpbnRlcmZhY2UgbGlzdCB3aXRoIG9ubHkgb25lIGRlZmF1bHQgaW50ZXJmYWNlIGFjdGluZyBhcyBhIHNpbmdsZSBnYXRld2F5IGludGVyZmFjZSAoRykgZm9yIHRoZSBkZWZhdWx0IHJvdXRlLjwvcD4KKzxwPk5vdGUgbHdJUCBoYXMgYSB2ZXJ5IGxpbWl0ZWQgbm90aW9uIG9mIElQIHJvdXRpbmcuIEl0IGN1cnJlbnRseSBkb2Vzbid0IGhhdmUgYSByb3V0ZSB0YWJsZSBhbmQgZG9lc24ndCBoYXZlIGEgbm90aW9uIG9mIHRoZSBVLEcsSCBmbGFncy4gSW5zdGVhZCBsd0lQIHVzZXMgdGhlIGludGVyZmFjZSBsaXN0IHdpdGggb25seSBvbmUgZGVmYXVsdCBpbnRlcmZhY2UgYWN0aW5nIGFzIGEgc2luZ2xlIGdhdGV3YXkgaW50ZXJmYWNlIChHKSBmb3IgdGhlIGRlZmF1bHQgcm91dGUuPC9wPgogPHA+VGhlIGFnZW50IHJldHVybnMgYSAidmlydHVhbCB0YWJsZSIgd2l0aCB0aGUgZGVmYXVsdCByb3V0ZSAwLjAuMC4wIGZvciB0aGUgZGVmYXVsdCBpbnRlcmZhY2UgYW5kIG5ldHdvcmsgcm91dGVzIChubyBIKSBmb3IgZWFjaCBuZXR3b3JrIGludGVyZmFjZSBpbiB0aGUgbmV0aWZfbGlzdC4gQWxsIHJvdXRlcyBhcmUgY29uc2lkZXJlZCB0byBiZSB1cCAoVSkuPC9wPgogPGgyPkxvYWRpbmcgYWRkaXRpb25hbCBNSUJzIDwvaDI+CiA8cD5NSUJzIGNhbiBvbmx5IGJlIGFkZGVkIGluIGNvbXBpbGUtdGltZSwgbm90IGluIHJ1bi10aW1lLjwvcD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbm1wX19jb3JlLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcF9fY29yZS5odG1sCmluZGV4IDQxMGE3MjYuLmE0ZDVlMTYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbm1wX19jb3JlLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NubXBfX2NvcmUuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMjEsNiArMTIxLDggQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMzQxNDYxNzY2ODYzY2ZmNDZhNDRlNWY0MzFmMmRhMDEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FmZjZhNmIzOTMyMmU5Mjg2MmFiNTVjZmNkZGZlMjU0YiIgaWQ9InJfZ2FmZjZhNmIzOTMyMmU5Mjg2MmFiNTVjZmNkZGZlMjU0YiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWZmNmE2YjM5MzIyZTkyODYyYWI1NWNmY2RkZmUyNTRiIj5zbm1wX3NldF93cml0ZV9jYWxsYmFjazwvYT4gKHNubXBfd3JpdGVfY2FsbGJhY2tfZmN0IHdyaXRlX2NhbGxiYWNrLCB2b2lkICpjYWxsYmFja19hcmcpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FmZjZhNmIzOTMyMmU5Mjg2MmFiNTVjZmNkZGZlMjU0YiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4IiBpZD0icl9nYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMzIzZWQwODFjYzk5MDNjZWI2ZWJiMjZhMDQ2ZTA4MzgiPnNubXBfc2V0X2luZm9ybV9jYWxsYmFjazwvYT4gKHNubXBfaW5mb3JtX2NhbGxiYWNrX2ZjdCBpbmZvcm1fY2FsbGJhY2ssIHZvaWQgKmNhbGxiYWNrX2FyZyk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhNGQ4OGYyZmM3NjU1MjgwMzg0MTMxZDU0M2UwZDgzZTUiIGlkPSJyX2dhNGQ4OGYyZmM3NjU1MjgwMzg0MTMxZDU0M2UwZDgzZTUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E0ZDg4ZjJmYzc2NTUyODAzODQxMzFkNTQzZTBkODNlNSI+c25tcF9pbml0PC9hPiAodm9pZCk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTRkODhmMmZjNzY1NTI4MDM4NDEzMWQ1NDNlMGQ4M2U1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KQEAgLTI2NSw2ICsyNjcsMjggQEAKIAogPC9kaXY+CiA8L2Rpdj4KKzxhIGlkPSJnYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4IiBuYW1lPSJnYTMyM2VkMDgxY2M5OTAzY2ViNmViYjI2YTA0NmUwODM4Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2EzMjNlZDA4MWNjOTkwM2NlYjZlYmIyNmEwNDZlMDgzOCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+c25tcF9zZXRfaW5mb3JtX2NhbGxiYWNrKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgc25tcF9zZXRfaW5mb3JtX2NhbGxiYWNrIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zbm1wX2luZm9ybV9jYWxsYmFja19mY3Q8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmluZm9ybV9jYWxsYmFjazwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnZvaWQgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+Y2FsbGJhY2tfYXJnPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkNhbGxiYWNrIGZpcmVkIG9uIGV2ZXJ5IHJlY2VpdmVkIElORk9STSBjb25maXJtYXRpb24gKGdldC1yZXNwb25zZSkgPC9wPgorCis8L2Rpdj4KKzwvZGl2PgogPGEgaWQ9ImdhMjljNzY0NzQ5NzFmMjVkMDM4ZmQ0ODY0NDdjNzBlMjEiIG5hbWU9ImdhMjljNzY0NzQ5NzFmMjVkMDM4ZmQ0ODY0NDdjNzBlMjEiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTI5Yzc2NDc0OTcxZjI1ZDAzOGZkNDg2NDQ3YzcwZTIxIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5zbm1wX3NldF9taWJzKCk8L2gyPgogCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcF9fY29yZS5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbm1wX19jb3JlLmpzCmluZGV4IGI3OWYyZjcuLjU2MjZmMWEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbm1wX19jb3JlLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbm1wX19jb3JlLmpzCkBAIC03LDYgKzcsNyBAQAogICAgIFsgInNubXBfc2V0X2NvbW11bml0eSIsICJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMzBjYzU4N2EyNjA3NTdmZGIyYjgxZDQ2MmY0MzBlZjEiLCBudWxsIF0sCiAgICAgWyAic25tcF9zZXRfY29tbXVuaXR5X3dyaXRlIiwgImdyb3VwX19zbm1wX19jb3JlLmh0bWwjZ2EzNDE0NjE3NjY4NjNjZmY0NmE0NGU1ZjQzMWYyZGEwMSIsIG51bGwgXSwKICAgICBbICJzbm1wX3NldF9kZXZpY2VfZW50ZXJwcmlzZV9vaWQiLCAiZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYWNjNzFhYzg1N2JmOTIxNWYwNmE2MjRkZGEwOWFiZTNhIiwgbnVsbCBdLAorICAgIFsgInNubXBfc2V0X2luZm9ybV9jYWxsYmFjayIsICJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMzIzZWQwODFjYzk5MDNjZWI2ZWJiMjZhMDQ2ZTA4MzgiLCBudWxsIF0sCiAgICAgWyAic25tcF9zZXRfbWlicyIsICJncm91cF9fc25tcF9fY29yZS5odG1sI2dhMjljNzY0NzQ5NzFmMjVkMDM4ZmQ0ODY0NDdjNzBlMjEiLCBudWxsIF0sCiAgICAgWyAic25tcF9zZXRfd3JpdGVfY2FsbGJhY2siLCAiZ3JvdXBfX3NubXBfX2NvcmUuaHRtbCNnYWZmNmE2YjM5MzIyZTkyODYyYWI1NWNmY2RkZmUyNTRiIiwgbnVsbCBdCiBdOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbm1wX19taWIyLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcF9fbWliMi5odG1sCmluZGV4IGJhNTY4YzkuLjg3ZmE5N2MgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbm1wX19taWIyLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NubXBfX21pYjIuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcF9fb3B0cy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NubXBfX29wdHMuaHRtbAppbmRleCA4ZGVjZjEyLi4yNWJlYjY2IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcF9fb3B0cy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbm1wX19vcHRzLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcF9fdHJhcHMuaHRtbAppbmRleCBkNzc2YmIxLi40ZWJhOTI0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcF9fdHJhcHMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcF9fdHJhcHMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTcsOCArMTE3LDEyIEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWNhZjgxNmZmOTE3ZjdiN2U1ZDAwZWQ2YzlmNzliNTFjIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhNzgwNGEyMjYxNWJkOWIzYTMyM2EzZjQ4YTlmYjhjYjciIGlkPSJyX2dhNzgwNGEyMjYxNWJkOWIzYTMyM2EzZjQ4YTlmYjhjYjciPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnU4X3QmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E3ODA0YTIyNjE1YmQ5YjNhMzIzYTNmNDhhOWZiOGNiNyI+c25tcF9nZXRfYXV0aF90cmFwc19lbmFibGVkPC9hPiAodm9pZCk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTc4MDRhMjI2MTViZDliM2EzMjNhM2Y0OGE5ZmI4Y2I3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhOTZjYzdhZjAxMThkNzUwNDk2MDk4NzJlYTQxMTg3Y2QiIGlkPSJyX2dhOTZjYzdhZjAxMThkNzUwNDk2MDk4NzJlYTQxMTg3Y2QiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E5NmNjN2FmMDExOGQ3NTA0OTYwOTg3MmVhNDExODdjZCI+c25tcF9zZW5kX3RyYXA8L2E+IChjb25zdCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19vYmpfX2lkLmh0bWwiPnNubXBfb2JqX2lkPC9hPiAqZW9pZCwgczMyX3QgZ2VuZXJpY190cmFwLCBzMzJfdCBzcGVjaWZpY190cmFwLCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwiPnNubXBfdmFyYmluZDwvYT4gKnZhcmJpbmRzKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhOTZjYzdhZjAxMThkNzUwNDk2MDk4NzJlYTQxMTg3Y2QiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E2ZDQxMWMwYmE3YThmYjFlZDM3NzdlYmRlNWI1ZjQ1NSIgaWQ9InJfZ2E2ZDQxMWMwYmE3YThmYjFlZDM3NzdlYmRlNWI1ZjQ1NSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTZkNDExYzBiYTdhOGZiMWVkMzc3N2ViZGU1YjVmNDU1Ij5zbm1wX3NldF9kZWZhdWx0X3RyYXBfdmVyc2lvbjwvYT4gKHU4X3Qgc25tcF92ZXJzaW9uKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNmQ0MTFjMGJhN2E4ZmIxZWQzNzc3ZWJkZTViNWY0NTUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FmNmQ4M2FhZTY0NjQ4NTI0MjdhODEyZjU3M2E0MDM1OSIgaWQ9InJfZ2FmNmQ4M2FhZTY0NjQ4NTI0MjdhODEyZjU3M2E0MDM1OSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dThfdCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWY2ZDgzYWFlNjQ2NDg1MjQyN2E4MTJmNTczYTQwMzU5Ij5zbm1wX2dldF9kZWZhdWx0X3RyYXBfdmVyc2lvbjwvYT4gKHZvaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FmNmQ4M2FhZTY0NjQ4NTI0MjdhODEyZjU3M2E0MDM1OSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTIxOTc0YjFmNmI2MjZiY2UxZTAwNmYwOWRiNzEyZTljIiBpZD0icl9nYTIxOTc0YjFmNmI2MjZiY2UxZTAwNmYwOWRiNzEyZTljIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMjE5NzRiMWY2YjYyNmJjZTFlMDA2ZjA5ZGI3MTJlOWMiPnNubXBfc2VuZF90cmFwPC9hPiAoY29uc3Qgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fb2JqX19pZC5odG1sIj5zbm1wX29ial9pZDwvYT4gKm9pZCwgczMyX3QgZ2VuZXJpY190cmFwLCBzMzJfdCBzcGVjaWZpY190cmFwLCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwiPnNubXBfdmFyYmluZDwvYT4gKnZhcmJpbmRzKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMjE5NzRiMWY2YjYyNmJjZTFlMDA2ZjA5ZGI3MTJlOWMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwZTA0NDI1OTI4OWNiNjkwMTk3MTczZjkzYzE3NjA3ZCIgaWQ9InJfZ2EwZTA0NDI1OTI4OWNiNjkwMTk3MTczZjkzYzE3NjA3ZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTBlMDQ0MjU5Mjg5Y2I2OTAxOTcxNzNmOTNjMTc2MDdkIj5zbm1wX3NlbmRfdHJhcF9nZW5lcmljPC9hPiAoczMyX3QgZ2VuZXJpY190cmFwKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMGUwNDQyNTkyODljYjY5MDE5NzE3M2Y5M2MxNzYwN2QiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E1NmJkY2UwNGU5ZTc3Y2IzZjhhODcyNzE4Y2QyNzNkMSIgaWQ9InJfZ2E1NmJkY2UwNGU5ZTc3Y2IzZjhhODcyNzE4Y2QyNzNkMSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTU2YmRjZTA0ZTllNzdjYjNmOGE4NzI3MThjZDI3M2QxIj5zbm1wX3NlbmRfdHJhcF9zcGVjaWZpYzwvYT4gKHMzMl90IHNwZWNpZmljX3RyYXAsIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHNubXBfX3ZhcmJpbmQuaHRtbCI+c25tcF92YXJiaW5kPC9hPiAqdmFyYmluZHMpPC90ZD48L3RyPgpAQCAtMTI3LDYgKzEzMSwxMiBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FhOGE0OWQxYTZhMjA3NzQwYmE0NGUyN2I1YmJjMjJiZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWY2ZDBhOTVhM2E0MDZkOGVhMDA4NDljMDdhY2EwNWVlIiBpZD0icl9nYWY2ZDBhOTVhM2E0MDZkOGVhMDA4NDljMDdhY2EwNWVlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZjZkMGE5NWEzYTQwNmQ4ZWEwMDg0OWMwN2FjYTA1ZWUiPnNubXBfYXV0aGZhaWxfdHJhcDwvYT4gKHZvaWQpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FmNmQwYTk1YTNhNDA2ZDhlYTAwODQ5YzA3YWNhMDVlZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTc0OTJiYjg2MWJhNzM5MjMyMjFhOGFiNDllYTc5MjEwIiBpZD0icl9nYTc0OTJiYjg2MWJhNzM5MjMyMjFhOGFiNDllYTc5MjEwIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNzQ5MmJiODYxYmE3MzkyMzIyMWE4YWI0OWVhNzkyMTAiPnNubXBfc2VuZF9pbmZvcm1fc3BlY2lmaWM8L2E+IChzMzJfdCBzcGVjaWZpY190cmFwLCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwiPnNubXBfdmFyYmluZDwvYT4gKnZhcmJpbmRzLCBzMzJfdCAqcHRyX3JlcXVlc3RfaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E3NDkyYmI4NjFiYTczOTIzMjIxYThhYjQ5ZWE3OTIxMCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWI3ZTRiOTQzYTk3NTgwMTBiMDIzNzFiODc2YWJjMjc1IiBpZD0icl9nYWI3ZTRiOTQzYTk3NTgwMTBiMDIzNzFiODc2YWJjMjc1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYjdlNGI5NDNhOTc1ODAxMGIwMjM3MWI4NzZhYmMyNzUiPnNubXBfc2VuZF9pbmZvcm1fZ2VuZXJpYzwvYT4gKHMzMl90IGdlbmVyaWNfdHJhcCwgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZC5odG1sIj5zbm1wX3ZhcmJpbmQ8L2E+ICp2YXJiaW5kcywgczMyX3QgKnB0cl9yZXF1ZXN0X2lkKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYjdlNGI5NDNhOTc1ODAxMGIwMjM3MWI4NzZhYmMyNzUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FlNDUwZGQ3MWFkOTFmNmMwYmMyNDM0OTNhOTEzZjY5MiIgaWQ9InJfZ2FlNDUwZGQ3MWFkOTFmNmMwYmMyNDM0OTNhOTEzZjY5MiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWU0NTBkZDcxYWQ5MWY2YzBiYzI0MzQ5M2E5MTNmNjkyIj5zbm1wX3NlbmRfaW5mb3JtPC9hPiAoY29uc3Qgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fb2JqX19pZC5odG1sIj5zbm1wX29ial9pZDwvYT4gKm9pZCwgczMyX3QgZ2VuZXJpY190cmFwLCBzMzJfdCBzcGVjaWZpY190cmFwLCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX192YXJiaW5kLmh0bWwiPnNubXBfdmFyYmluZDwvYT4gKnZhcmJpbmRzLCBzMzJfdCAqcHRyX3JlcXVlc3RfaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FlNDUwZGQ3MWFkOTFmNmMwYmMyNDM0OTNhOTEzZjY5MiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgpAQCAtMTgwLDcgKzE5MCw4IEBACiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPkdldCBhdXRoZW50aWNhdGlvbiB0cmFwcyBlbmFibGVkIHN0YXRlIDwvcD4KKzxwPkdldCBhdXRoZW50aWNhdGlvbiB0cmFwcyBlbmFibGVkIHN0YXRlPC9wPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5UUlVFIGlmIHRyYXBzIGFyZSBlbmFibGVkLCBGQUxTRSBpZiB0aGV5IGFyZW4ndCA8L2RkPjwvZGw+CiAKIDwvZGl2PgogPC9kaXY+CkBAIC0yMDIsOCArMjEzLDE0NCBAQAogCiA8L2Rpdj4KIDwvZGl2PgotPGEgaWQ9ImdhOTZjYzdhZjAxMThkNzUwNDk2MDk4NzJlYTQxMTg3Y2QiIG5hbWU9ImdhOTZjYzdhZjAxMThkNzUwNDk2MDk4NzJlYTQxMTg3Y2QiPjwvYT4KLTxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTk2Y2M3YWYwMTE4ZDc1MDQ5NjA5ODcyZWE0MTE4N2NkIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5zbm1wX3NlbmRfdHJhcCgpPC9oMj4KKzxhIGlkPSJnYWY2ZDgzYWFlNjQ2NDg1MjQyN2E4MTJmNTczYTQwMzU5IiBuYW1lPSJnYWY2ZDgzYWFlNjQ2NDg1MjQyN2E4MTJmNTczYTQwMzU5Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FmNmQ4M2FhZTY0NjQ4NTI0MjdhODEyZjU3M2E0MDM1OSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+c25tcF9nZXRfZGVmYXVsdF90cmFwX3ZlcnNpb24oKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dThfdCBzbm1wX2dldF9kZWZhdWx0X3RyYXBfdmVyc2lvbiA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dm9pZDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+PC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkdldCBkZWZhdWx0IFNOTVAgdmVyc2lvbiBmb3Igc2VuZGluZyB0cmFwczwvcD4KKzxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+c2VsZWN0ZWQgZGVmYXVsdCB2ZXJzaW9uOiAwIC0gU05NUF9WRVJTSU9OXzEgMSAtIFNOTVBfVkVSU0lPTl8yYyAzIC0gU05NUF9WRVJTSU9OXzMgPC9kZD48L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImdhZTQ1MGRkNzFhZDkxZjZjMGJjMjQzNDkzYTkxM2Y2OTIiIG5hbWU9ImdhZTQ1MGRkNzFhZDkxZjZjMGJjMjQzNDkzYTkxM2Y2OTIiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYWU0NTBkZDcxYWQ5MWY2YzBiYzI0MzQ5M2E5MTNmNjkyIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5zbm1wX3NlbmRfaW5mb3JtKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gc25tcF9zZW5kX2luZm9ybSA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3Qgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fb2JqX19pZC5odG1sIj5zbm1wX29ial9pZDwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+b2lkPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+czMyX3Q8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmdlbmVyaWNfdHJhcDwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnMzMl90PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5zcGVjaWZpY190cmFwPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZC5odG1sIj5zbm1wX3ZhcmJpbmQ8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnZhcmJpbmRzPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+czMyX3QgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+cHRyX3JlcXVlc3RfaWQ8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+R2VuZXJpYyBmdW5jdGlvbiBmb3Igc2VuZGluZyBpbmZvcm1zIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+b2lkPC90ZD48dGQ+cG9pbnRzIHRvIG9iamVjdCBpZGVudGlmaWVyIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmdlbmVyaWNfdHJhcDwvdGQ+PHRkPmlzIHRoZSB0cmFwIGNvZGUgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+c3BlY2lmaWNfdHJhcDwvdGQ+PHRkPnVzZWQgZm9yIGVudGVycHJpc2UgdHJhcHMgd2hlbiBnZW5lcmljX3RyYXAgPT0gNiA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj52YXJiaW5kczwvdGQ+PHRkPmxpbmtlZCBsaXN0IG9mIHZhcmJpbmRzIChhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgbGlzdCBmdW5jdGlvbiB3aWxsIGluc2VydCAyIHNwZWNpYWwgcHVycG9zZSB2YXJiaW5kcyBbc2VlIFJGQyAzNTg0XSkgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+cHRyX3JlcXVlc3RfaWQ8L3RkPjx0ZD5bb3V0XSB2YXJpYWJsZSBpbiB3aGljaCB0byBzdG9yZSByZXF1ZXN0X2lkIG5lZWRlZCB0byB2ZXJpZnkgYWNrbm93bGVkZ2VtZW50IDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyBpZiBzdWNjZXNzZnVsIDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYWI3ZTRiOTQzYTk3NTgwMTBiMDIzNzFiODc2YWJjMjc1IiBuYW1lPSJnYWI3ZTRiOTQzYTk3NTgwMTBiMDIzNzFiODc2YWJjMjc1Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FiN2U0Yjk0M2E5NzU4MDEwYjAyMzcxYjg3NmFiYzI3NSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+c25tcF9zZW5kX2luZm9ybV9nZW5lcmljKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gc25tcF9zZW5kX2luZm9ybV9nZW5lcmljIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zMzJfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+Z2VuZXJpY190cmFwPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZC5odG1sIj5zbm1wX3ZhcmJpbmQ8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnZhcmJpbmRzPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+czMyX3QgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+cHRyX3JlcXVlc3RfaWQ8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+V3JhcHBlciBmdW5jdGlvbiBmb3Igc2VuZGluZyBpbmZvcm1zIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+Z2VuZXJpY190cmFwPC90ZD48dGQ+aXMgdGhlIHRyYXAgY29kZSA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj52YXJiaW5kczwvdGQ+PHRkPmxpbmtlZCBsaXN0IG9mIHZhcmJpbmRzIChhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgbGlzdCBmdW5jdGlvbiB3aWxsIGluc2VydCAyIHNwZWNpYWwgcHVycG9zZSB2YXJiaW5kcyBbc2VlIFJGQyAzNTg0XSkgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+cHRyX3JlcXVlc3RfaWQ8L3RkPjx0ZD5bb3V0XSB2YXJpYWJsZSBpbiB3aGljaCB0byBzdG9yZSByZXF1ZXN0X2lkIG5lZWRlZCB0byB2ZXJpZnkgYWNrbm93bGVkZ2VtZW50IDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyBpZiBzdWNjZXNzZnVsIDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYTc0OTJiYjg2MWJhNzM5MjMyMjFhOGFiNDllYTc5MjEwIiBuYW1lPSJnYTc0OTJiYjg2MWJhNzM5MjMyMjFhOGFiNDllYTc5MjEwIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E3NDkyYmI4NjFiYTczOTIzMjIxYThhYjQ5ZWE3OTIxMCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+c25tcF9zZW5kX2luZm9ybV9zcGVjaWZpYygpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IHNubXBfc2VuZF9pbmZvcm1fc3BlY2lmaWMgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnMzMl90PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5zcGVjaWZpY190cmFwPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0c25tcF9fdmFyYmluZC5odG1sIj5zbm1wX3ZhcmJpbmQ8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnZhcmJpbmRzPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+czMyX3QgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+cHRyX3JlcXVlc3RfaWQ8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+V3JhcHBlciBmdW5jdGlvbiBmb3Igc2VuZGluZyBpbmZvcm1zIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+c3BlY2lmaWNfdHJhcDwvdGQ+PHRkPndpbGwgYmUgYXBwZW5kZWQgdG8gZW50ZXJwcmlzZSBvaWQgW3NlZSBSRkMgMzU4NF0gPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+dmFyYmluZHM8L3RkPjx0ZD5saW5rZWQgbGlzdCBvZiB2YXJiaW5kcyAoYXQgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGxpc3QgZnVuY3Rpb24gd2lsbCBpbnNlcnQgMiBzcGVjaWFsIHB1cnBvc2UgdmFyYmluZHMgW3NlZSBSRkMgMzU4NF0pIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnB0cl9yZXF1ZXN0X2lkPC90ZD48dGQ+W291dF0gdmFyaWFibGUgaW4gd2hpY2ggdG8gc3RvcmUgcmVxdWVzdF9pZCBuZWVkZWQgdG8gdmVyaWZ5IGFja25vd2xlZGdlbWVudCA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5FUlJfT0sgaWYgc3VjY2Vzc2Z1bCA8L2RkPjwvZGw+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iZ2EyMTk3NGIxZjZiNjI2YmNlMWUwMDZmMDlkYjcxMmU5YyIgbmFtZT0iZ2EyMTk3NGIxZjZiNjI2YmNlMWUwMDZmMDlkYjcxMmU5YyI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMjE5NzRiMWY2YjYyNmJjZTFlMDA2ZjA5ZGI3MTJlOWMiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPnNubXBfc2VuZF90cmFwKCk8L2gyPgogCiA8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KIDxkaXYgY2xhc3M9Im1lbXByb3RvIj4KQEAgLTIxMSw3ICszNTgsNyBAQAogICAgICAgICA8dHI+CiAgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IHNubXBfc2VuZF90cmFwIDwvdGQ+CiAgICAgICAgICAgPHRkPig8L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5jb25zdCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19vYmpfX2lkLmh0bWwiPnNubXBfb2JqX2lkPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5lb2lkPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5jb25zdCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3Rzbm1wX19vYmpfX2lkLmh0bWwiPnNubXBfb2JqX2lkPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5vaWQ8L2VtPjwvc3Bhbj4sIDwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgpAQCAtMjMwLDEwICszNzcsMTAgQEAKICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+U2VuZHMgYSBnZW5lcmljIG9yIGVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcCBtZXNzYWdlLjwvcD4KKzxwPlRoaXMgZnVuY3Rpb24gaXMgYSB3cmFwcGVyIGZ1bmN0aW9uIGZvciBwcmVwYXJpbmcgYW5kIHNlbmRpbmcgZ2VuZXJpYyBvciBzcGVjaWZpYyB0cmFwcy48L3A+CiA8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KICAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgotICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+ZW9pZDwvdGQ+PHRkPnBvaW50cyB0byBlbnRlcnByaXNlIG9iamVjdCBpZGVudGlmaWVyIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPm9pZDwvdGQ+PHRkPnBvaW50cyB0byBlbnRlcnByaXNlIG9iamVjdCBpZGVudGlmaWVyIDwvdGQ+PC90cj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmdlbmVyaWNfdHJhcDwvdGQ+PHRkPmlzIHRoZSB0cmFwIGNvZGUgPC90ZD48L3RyPgogICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+c3BlY2lmaWNfdHJhcDwvdGQ+PHRkPnVzZWQgZm9yIGVudGVycHJpc2UgdHJhcHMgd2hlbiBnZW5lcmljX3RyYXAgPT0gNiA8L3RkPjwvdHI+CiAgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj52YXJiaW5kczwvdGQ+PHRkPmxpbmtlZCBsaXN0IG9mIHZhcmJpbmRzIHRvIGJlIHNlbnQgPC90ZD48L3RyPgpAQCAtMjQyLDcgKzM4OSw2IEBACiA8L2RsPgogPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5FUlJfT0sgd2hlbiBzdWNjZXNzLCBFUlJfTUVNIGlmIHdlJ3JlIG91dCBvZiBtZW1vcnk8L2RkPjwvZGw+CiA8ZGwgY2xhc3M9InNlY3Rpb24gbm90ZSI+PGR0Pk5vdGU8L2R0PjxkZD50aGUgdXNlIG9mIHRoZSBlbnRlcnByaXNlIGlkZW50aWZpZXIgZmllbGQgaXMgcGVyIFJGQzEyMTUuIFVzZSAuaXNvLm9yZy5kb2QuaW50ZXJuZXQubWdtdC5taWItMi5zbm1wIGZvciBnZW5lcmljIHRyYXBzIGFuZCAuaXNvLm9yZy5kb2QuaW50ZXJuZXQucHJpdmF0ZS5lbnRlcnByaXNlcy55b3VyZW50ZXJwcmlzZSAoc3lzT2JqZWN0SUQpIGZvciBzcGVjaWZpYyB0cmFwcy4gPC9kZD48L2RsPgotPHA+c2VuZCB0byB0aGUgVFJBUCBkZXN0aW5hdGlvbjwvcD4KIAogPC9kaXY+CiA8L2Rpdj4KQEAgLTI2MCw3ICs0MDYsMTIgQEAKICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+U2VuZCBnZW5lcmljIFNOTVAgdHJhcCA8L3A+Cis8cD5TZW5kIGdlbmVyaWMgU05NUCB0cmFwIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+Z2VuZXJpY190cmFwPC90ZD48dGQ+aXMgdGhlIHRyYXAgY29kZSByZXR1cm4gRVJSX09LIHdoZW4gc3VjY2VzcyA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtMjgyLDcgKzQzMywxNCBAQAogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5TZW5kIHNwZWNpZmljIFNOTVAgdHJhcCB3aXRoIHZhcmlhYmxlIGJpbmRpbmdzIDwvcD4KKzxwPlNlbmQgc3BlY2lmaWMgU05NUCB0cmFwIHdpdGggdmFyaWFibGUgYmluZGluZ3MgPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5zcGVjaWZpY190cmFwPC90ZD48dGQ+dXNlZCBmb3IgZW50ZXJwcmlzZSB0cmFwcyAoZ2VuZXJpY190cmFwID0gNikgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+dmFyYmluZHM8L3RkPjx0ZD5saW5rZWQgbGlzdCBvZiB2YXJiaW5kcyB0byBiZSBzZW50IDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyB3aGVuIHN1Y2Nlc3MgPC9kZD48L2RsPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtMzAwLDcgKzQ1OCwxMyBAQAogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5FbmFibGUvZGlzYWJsZSBhdXRoZW50aWNhdGlvbiB0cmFwcyA8L3A+Cis8cD5FbmFibGUvZGlzYWJsZSBhdXRoZW50aWNhdGlvbiB0cmFwczwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5lbmFibGU8L3RkPjx0ZD5lbmFibGUgU05NUCB0cmFwcyA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtMzI4LDYgKzQ5MiwzMCBAQAogCiA8L2Rpdj4KIDwvZGl2PgorPGEgaWQ9ImdhNmQ0MTFjMGJhN2E4ZmIxZWQzNzc3ZWJkZTViNWY0NTUiIG5hbWU9ImdhNmQ0MTFjMGJhN2E4ZmIxZWQzNzc3ZWJkZTViNWY0NTUiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTZkNDExYzBiYTdhOGZiMWVkMzc3N2ViZGU1YjVmNDU1Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5zbm1wX3NldF9kZWZhdWx0X3RyYXBfdmVyc2lvbigpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIHNubXBfc2V0X2RlZmF1bHRfdHJhcF92ZXJzaW9uIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51OF90PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5zbm1wX3ZlcnNpb248L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+Q2hvb3NlIGRlZmF1bHQgU05NUCB2ZXJzaW9uIGZvciBzZW5kaW5nIHRyYXBzIChpZiBub3Qgc3BlY2lmaWVkLCBkZWZhdWx0IHZlcnNpb24gaXMgU05NUF9WRVJTSU9OXzEpIFNOTVBfVkVSU0lPTl8xIDAgU05NUF9WRVJTSU9OXzJjIDEgU05NUF9WRVJTSU9OXzMgMzwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5zbm1wX3ZlcnNpb248L3RkPjx0ZD52ZXJzaW9uIHRoYXQgd2lsbCBiZSB1c2VkIGZvciBzZW5kaW5nIHRyYXBzIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iZ2FiMTAxNTA1YmU1OTc3OGNmMGYyZjFhYzQwYmNmM2YzMiIgbmFtZT0iZ2FiMTAxNTA1YmU1OTc3OGNmMGYyZjFhYzQwYmNmM2YzMiI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhYjEwMTUwNWJlNTk3NzhjZjBmMmYxYWM0MGJjZjNmMzIiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPnNubXBfdHJhcF9kc3RfZW5hYmxlKCk8L2gyPgogCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcF9fdHJhcHMuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc25tcF9fdHJhcHMuanMKaW5kZXggZmZjOWU1Yi4uYjZmM2RhOCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NubXBfX3RyYXBzLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbm1wX190cmFwcy5qcwpAQCAtNCwxMSArNCwxNiBAQAogICAgIFsgInNubXBfY29sZHN0YXJ0X3RyYXAiLCAiZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FhOGE0OWQxYTZhMjA3NzQwYmE0NGUyN2I1YmJjMjJiZSIsIG51bGwgXSwKICAgICBbICJzbm1wX2dldF9hdXRoX3RyYXBzX2VuYWJsZWQiLCAiZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E3ODA0YTIyNjE1YmQ5YjNhMzIzYTNmNDhhOWZiOGNiNyIsIG51bGwgXSwKICAgICBbICJzbm1wX2dldF9jb21tdW5pdHlfdHJhcCIsICJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTU2NmFhN2FlYWY1ZmI3NWNhMGEyYWY1ODQ4NmY0Y2JhIiwgbnVsbCBdLAotICAgIFsgInNubXBfc2VuZF90cmFwIiwgImdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhOTZjYzdhZjAxMThkNzUwNDk2MDk4NzJlYTQxMTg3Y2QiLCBudWxsIF0sCisgICAgWyAic25tcF9nZXRfZGVmYXVsdF90cmFwX3ZlcnNpb24iLCAiZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2FmNmQ4M2FhZTY0NjQ4NTI0MjdhODEyZjU3M2E0MDM1OSIsIG51bGwgXSwKKyAgICBbICJzbm1wX3NlbmRfaW5mb3JtIiwgImdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhZTQ1MGRkNzFhZDkxZjZjMGJjMjQzNDkzYTkxM2Y2OTIiLCBudWxsIF0sCisgICAgWyAic25tcF9zZW5kX2luZm9ybV9nZW5lcmljIiwgImdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhYjdlNGI5NDNhOTc1ODAxMGIwMjM3MWI4NzZhYmMyNzUiLCBudWxsIF0sCisgICAgWyAic25tcF9zZW5kX2luZm9ybV9zcGVjaWZpYyIsICJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTc0OTJiYjg2MWJhNzM5MjMyMjFhOGFiNDllYTc5MjEwIiwgbnVsbCBdLAorICAgIFsgInNubXBfc2VuZF90cmFwIiwgImdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhMjE5NzRiMWY2YjYyNmJjZTFlMDA2ZjA5ZGI3MTJlOWMiLCBudWxsIF0sCiAgICAgWyAic25tcF9zZW5kX3RyYXBfZ2VuZXJpYyIsICJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTBlMDQ0MjU5Mjg5Y2I2OTAxOTcxNzNmOTNjMTc2MDdkIiwgbnVsbCBdLAogICAgIFsgInNubXBfc2VuZF90cmFwX3NwZWNpZmljIiwgImdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhNTZiZGNlMDRlOWU3N2NiM2Y4YTg3MjcxOGNkMjczZDEiLCBudWxsIF0sCiAgICAgWyAic25tcF9zZXRfYXV0aF90cmFwc19lbmFibGVkIiwgImdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhY2FmODE2ZmY5MTdmN2I3ZTVkMDBlZDZjOWY3OWI1MWMiLCBudWxsIF0sCiAgICAgWyAic25tcF9zZXRfY29tbXVuaXR5X3RyYXAiLCAiZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2E1NjMxNzExZjM1N2I2NjEwYmU3ZTkzYjFjNmQ4Nzc2MCIsIG51bGwgXSwKKyAgICBbICJzbm1wX3NldF9kZWZhdWx0X3RyYXBfdmVyc2lvbiIsICJncm91cF9fc25tcF9fdHJhcHMuaHRtbCNnYTZkNDExYzBiYTdhOGZiMWVkMzc3N2ViZGU1YjVmNDU1IiwgbnVsbCBdLAogICAgIFsgInNubXBfdHJhcF9kc3RfZW5hYmxlIiwgImdyb3VwX19zbm1wX190cmFwcy5odG1sI2dhYjEwMTUwNWJlNTk3NzhjZjBmMmYxYWM0MGJjZjNmMzIiLCBudWxsIF0sCiAgICAgWyAic25tcF90cmFwX2RzdF9pcF9zZXQiLCAiZ3JvdXBfX3NubXBfX3RyYXBzLmh0bWwjZ2ExNWU0YWZiZjgwZWQyMjYwODUwODQyZTY2MDhjNmQ4NiIsIG51bGwgXQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc250cC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NudHAuaHRtbAppbmRleCA4NWE2Y2ZiLi42NmEyNTYzIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc250cC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbnRwLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTI3LDkgKzEyNywxMiBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E0ZmEwMzhkY2VhNjYzNDlmYWZkYmUxY2MzZTUyZmYzYSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWIxMTRjMTIxNTRjZjJjM2UzYTczMzcyNGM2YTc3NDI5IiBpZD0icl9nYWIxMTRjMTIxNTRjZjJjM2UzYTczMzcyNGM2YTc3NDI5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5jb25zdCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTMzNWE4YzlkZjY2MzE5ZTg4YTFhNTI5MDQ3Y2UwYTFlIj5pcF9hZGRyX3Q8L2E+IComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FiMTE0YzEyMTU0Y2YyYzNlM2E3MzM3MjRjNmE3NzQyOSI+c250cF9nZXRzZXJ2ZXI8L2E+ICh1OF90IGlkeCk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWIxMTRjMTIxNTRjZjJjM2UzYTczMzcyNGM2YTc3NDI5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNjgxNDZkMmVlMWJiYTEwZTVhYTAxZjA5OGI1OTdkOWUiIGlkPSJyX2dhNjgxNDZkMmVlMWJiYTEwZTVhYTAxZjA5OGI1OTdkOWUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnU4X3QmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E2ODE0NmQyZWUxYmJhMTBlNWFhMDFmMDk4YjU5N2Q5ZSI+c250cF9nZXRrb2RyZWNlaXZlZDwvYT4gKHU4X3QgaWR4KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNjgxNDZkMmVlMWJiYTEwZTVhYTAxZjA5OGI1OTdkOWUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPgogPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+CiA8cD5UaGlzIGlzIHNpbXBsZSAiU05UUCIgY2xpZW50IGZvciB0aGUgbHdJUCByYXcgQVBJLiBJdCBpcyBhIG1pbmltYWwgaW1wbGVtZW50YXRpb24gb2YgU05UUHY0IGFzIHNwZWNpZmllZCBpbiBSRkMgNDMzMC48L3A+Cis8cD5Zb3UgbmVlZCB0byBpbmNyZWFzZSBNRU1QX05VTV9TWVNfVElNRU9VVCBieSBvbmUgaWYgeW91IHVzZSBTTlRQITwvcD4KIDxwPkZvciBhIGxpc3Qgb2Ygc29tZSBwdWJsaWMgTlRQIHNlcnZlcnMsIHNlZSB0aGlzIGxpbms6IDxhIGhyZWY9Imh0dHA6Ly9zdXBwb3J0Lm50cC5vcmcvYmluL3ZpZXcvU2VydmVycy9OVFBQb29sU2VydmVycyI+aHR0cDovL3N1cHBvcnQubnRwLm9yZy9iaW4vdmlldy9TZXJ2ZXJzL05UUFBvb2xTZXJ2ZXJzPC9hPjwvcD4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgogPGEgaWQ9ImdhM2ZlNTI1NGU1YTA1NmZjYTgwODAyZDlmMjZiOWMzYzUiIG5hbWU9ImdhM2ZlNTI1NGU1YTA1NmZjYTgwODAyZDlmMjZiOWMzYzUiPjwvYT4KQEAgLTE1MCw2ICsxNTMsMzEgQEAKIAogPC9kaXY+CiA8L2Rpdj4KKzxhIGlkPSJnYTY4MTQ2ZDJlZTFiYmExMGU1YWEwMWYwOThiNTk3ZDllIiBuYW1lPSJnYTY4MTQ2ZDJlZTFiYmExMGU1YWEwMWYwOThiNTk3ZDllIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E2ODE0NmQyZWUxYmJhMTBlNWFhMDFmMDk4YjU5N2Q5ZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+c250cF9nZXRrb2RyZWNlaXZlZCgpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj51OF90IHNudHBfZ2V0a29kcmVjZWl2ZWQgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnU4X3Q8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmlkeDwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5DaGVjayBpZiBhIEtpc3Mtb2YtRGVhdGggaGFzIGJlZW4gcmVjZWl2ZWQgZnJvbSB0aGlzIHNlcnZlciAob25seSB2YWxpZCBmb3IgU05UUF9NQVhfU0VSVkVSUyAmZ3Q7IDEpLjwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5pZHg8L3RkPjx0ZD50aGUgaW5kZXggb2YgdGhlIE5UUCBzZXJ2ZXIgPC90ZD48L3RyPgorICA8L3RhYmxlPgorICA8L2RkPgorPC9kbD4KKzxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+MSBpZiBhIEtvRCBoYXMgYmVlbiByZWNlaXZlZCwgMCBpZiBub3QuIDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KIDxhIGlkPSJnYWU2NjQwNGE1NTFkNWNlZjQyMGNmODQ0YTcxMzU2ZmFlIiBuYW1lPSJnYWU2NjQwNGE1NTFkNWNlZjQyMGNmODQ0YTcxMzU2ZmFlIj48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FlNjY0MDRhNTUxZDVjZWY0MjBjZjg0NGE3MTM1NmZhZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+c250cF9nZXRvcGVyYXRpbmdtb2RlKCk8L2gyPgogCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc250cC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbnRwLmpzCmluZGV4IGFhNGQxZjQuLmUwZDkxMDUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbnRwLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbnRwLmpzCkBAIC0yLDYgKzIsNyBAQAogWwogICAgIFsgIk9wdGlvbnMiLCAiZ3JvdXBfX3NudHBfX29wdHMuaHRtbCIsICJncm91cF9fc250cF9fb3B0cyIgXSwKICAgICBbICJzbnRwX2VuYWJsZWQiLCAiZ3JvdXBfX3NudHAuaHRtbCNnYTNmZTUyNTRlNWEwNTZmY2E4MDgwMmQ5ZjI2YjljM2M1IiwgbnVsbCBdLAorICAgIFsgInNudHBfZ2V0a29kcmVjZWl2ZWQiLCAiZ3JvdXBfX3NudHAuaHRtbCNnYTY4MTQ2ZDJlZTFiYmExMGU1YWEwMWYwOThiNTk3ZDllIiwgbnVsbCBdLAogICAgIFsgInNudHBfZ2V0b3BlcmF0aW5nbW9kZSIsICJncm91cF9fc250cC5odG1sI2dhZTY2NDA0YTU1MWQ1Y2VmNDIwY2Y4NDRhNzEzNTZmYWUiLCBudWxsIF0sCiAgICAgWyAic250cF9nZXRyZWFjaGFiaWxpdHkiLCAiZ3JvdXBfX3NudHAuaHRtbCNnYWM4MDk3ODI5YTgxY2I2ZjM3ZDlhY2Y4ZWZiMmNjODJlIiwgbnVsbCBdLAogICAgIFsgInNudHBfZ2V0c2VydmVyIiwgImdyb3VwX19zbnRwLmh0bWwjZ2FiMTE0YzEyMTU0Y2YyYzNlM2E3MzM3MjRjNmE3NzQyOSIsIG51bGwgXSwKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbnRwX19vcHRzLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc250cF9fb3B0cy5odG1sCmluZGV4IDYwYWEzMjkuLjRiMzE3OTUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zbnRwX19vcHRzLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NudHBfX29wdHMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc29ja2V0Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc29ja2V0Lmh0bWwKaW5kZXggYjQ0MjljYS4uZmViMzI2MSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3NvY2tldC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zb2NrZXQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTIsMTAgKzExMiwxMCBAQAogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPHA+QlNELXN0eWxlIHNvY2tldCBBUEkuPGJyICAvPgotVGhyZWFkLXNhZmUsIHRvIGJlIGNhbGxlZCBmcm9tIG5vbi1UQ1BJUCB0aHJlYWRzIG9ubHkuPGJyICAvPgotQ2FuIGJlIGFjdGl2YXRlZCBieSBkZWZpbmluZyA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19zb2NrZXQuaHRtbCNnYTFjYjYyY2U2MWFjMzlkN2Q2NzI4YWU1ZDNkM2I5MjdmIj5MV0lQX1NPQ0tFVDwvYT4gdG8gMS48YnIgIC8+Ci1IZWFkZXIgaXMgaW4gPGEgY2xhc3M9ImVsIiBocmVmPSJzb2NrZXRfOGguaHRtbCI+cG9zaXgvc3lzL3NvY2tldC5oPC9hPjxiciAgLz4KLVRoZSBzb2NrZXQgQVBJIGlzIGEgY29tcGF0aWJpbGl0eSBBUEkgZm9yIGV4aXN0aW5nIGFwcGxpY2F0aW9ucywgY3VycmVudGx5IGl0IGlzIGJ1aWx0IG9uIHRvcCBvZiB0aGUgc2VxdWVudGlhbCBBUEkuIEl0IGlzIG1lYW50IHRvIHByb3ZpZGUgYWxsIGZ1bmN0aW9ucyBuZWVkZWQgdG8gcnVuIHNvY2tldCBBUEkgYXBwbGljYXRpb25zIHJ1bm5pbmcgb24gb3RoZXIgcGxhdGZvcm1zIChlLmcuIHVuaXggLyB3aW5kb3dzIGV0Yy4pLiBIb3dldmVyLCBkdWUgdG8gbGltaXRhdGlvbnMgaW4gdGhlIHNwZWNpZmljYXRpb24gb2YgdGhpcyBBUEksIHRoZXJlIG1pZ2h0IGJlIGluY29tcGF0aWJpbGl0aWVzIHRoYXQgcmVxdWlyZSBzbWFsbCBtb2RpZmljYXRpb25zIG9mIGV4aXN0aW5nIHByb2dyYW1zLiA8L3A+CisgVGhyZWFkLXNhZmUsIHRvIGJlIGNhbGxlZCBmcm9tIG5vbi1UQ1BJUCB0aHJlYWRzIG9ubHkuPGJyICAvPgorIENhbiBiZSBhY3RpdmF0ZWQgYnkgZGVmaW5pbmcgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fc29ja2V0Lmh0bWwjZ2ExY2I2MmNlNjFhYzM5ZDdkNjcyOGFlNWQzZDNiOTI3ZiI+TFdJUF9TT0NLRVQ8L2E+IHRvIDEuPGJyICAvPgorIEhlYWRlciBpcyBpbiA8YSBjbGFzcz0iZWwiIGhyZWY9InNvY2tldF84aC5odG1sIj5wb3NpeC9zeXMvc29ja2V0Lmg8L2E+PGJyICAvPgorIFRoZSBzb2NrZXQgQVBJIGlzIGEgY29tcGF0aWJpbGl0eSBBUEkgZm9yIGV4aXN0aW5nIGFwcGxpY2F0aW9ucywgY3VycmVudGx5IGl0IGlzIGJ1aWx0IG9uIHRvcCBvZiB0aGUgc2VxdWVudGlhbCBBUEkuIEl0IGlzIG1lYW50IHRvIHByb3ZpZGUgYWxsIGZ1bmN0aW9ucyBuZWVkZWQgdG8gcnVuIHNvY2tldCBBUEkgYXBwbGljYXRpb25zIHJ1bm5pbmcgb24gb3RoZXIgcGxhdGZvcm1zIChlLmcuIHVuaXggLyB3aW5kb3dzIGV0Yy4pLiBIb3dldmVyLCBkdWUgdG8gbGltaXRhdGlvbnMgaW4gdGhlIHNwZWNpZmljYXRpb24gb2YgdGhpcyBBUEksIHRoZXJlIG1pZ2h0IGJlIGluY29tcGF0aWJpbGl0aWVzIHRoYXQgcmVxdWlyZSBzbWFsbCBtb2RpZmljYXRpb25zIG9mIGV4aXN0aW5nIHByb2dyYW1zLiA8L3A+CiA8L2Rpdj48IS0tIGNvbnRlbnRzIC0tPgogPC9kaXY+PCEtLSBkb2MtY29udGVudCAtLT4KIDwhLS0gc3RhcnQgZm9vdGVyIHBhcnQgLS0+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19sYXllci5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fbGF5ZXIuaHRtbAppbmRleCBmOTA1Y2JjLi5lOWYxMDMzIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19sYXllci5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX2xheWVyLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fbWJveC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fbWJveC5odG1sCmluZGV4IGY5N2Y1MmEuLjY2YTAyMGYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX21ib3guaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19tYm94Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fbWlzYy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fbWlzYy5odG1sCmluZGV4IGZiMjcxYjUuLjQ0MjZjNTAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX21pc2MuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19taXNjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fbXV0ZXguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX211dGV4Lmh0bWwKaW5kZXggZjFkYjkwNi4uMDdlNjY0MiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fbXV0ZXguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19tdXRleC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sCmluZGV4IDJkMTk0YWQuLmVjMjEwY2IgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDcsNiArMTA3LDggQEAKIEZ1bmN0aW9uczwvaDI+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhYTJiYTRiNGUyZGQ3ZTFjODU2ZmVkYzZhNjA2OTgxM2UiIGlkPSJyX2dhYTJiYTRiNGUyZGQ3ZTFjODU2ZmVkYzZhNjA2OTgxM2UiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPmNoYXIgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWEyYmE0YjRlMmRkN2UxYzg1NmZlZGM2YTYwNjk4MTNlIj5sd2lwX3N0cm5zdHI8L2E+IChjb25zdCBjaGFyICpidWZmZXIsIGNvbnN0IGNoYXIgKnRva2VuLCBzaXplX3Qgbik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWEyYmE0YjRlMmRkN2UxYzg1NmZlZGM2YTYwNjk4MTNlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiIGlkPSJyX2dhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPmNoYXIgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWMwY2Q2M2I0YTFhNDRmNTA4MTg1ODE5OWU2OGY0NmFhIj5sd2lwX3N0cm5pc3RyPC9hPiAoY29uc3QgY2hhciAqYnVmZmVyLCBjb25zdCBjaGFyICp0b2tlbiwgc2l6ZV90IG4pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FjMGNkNjNiNGExYTQ0ZjUwODE4NTgxOTllNjhmNDZhYSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTI2M2NiYWZjYjY5N2VmZjk2NDEzOWE5OTk4YTY2NjhhIiBpZD0icl9nYTI2M2NiYWZjYjY5N2VmZjk2NDEzOWE5OTk4YTY2NjhhIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5pbnQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EyNjNjYmFmY2I2OTdlZmY5NjQxMzlhOTk5OGE2NjY4YSI+bHdpcF9zdHJpY21wPC9hPiAoY29uc3QgY2hhciAqc3RyMSwgY29uc3QgY2hhciAqc3RyMik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTI2M2NiYWZjYjY5N2VmZjk2NDEzOWE5OTk4YTY2NjhhIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhOTk3ZGNjNDk0NTExMjFkNGVkNzU1YjMzYmM3YmQyNmEiIGlkPSJyX2dhOTk3ZGNjNDk0NTExMjFkNGVkNzU1YjMzYmM3YmQyNmEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPmludCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTk5N2RjYzQ5NDUxMTIxZDRlZDc1NWIzM2JjN2JkMjZhIj5sd2lwX3N0cm5pY21wPC9hPiAoY29uc3QgY2hhciAqc3RyMSwgY29uc3QgY2hhciAqc3RyMiwgc2l6ZV90IGxlbik8L3RkPjwvdHI+CkBAIC0xOTMsNiArMTk1LDMzIEBACiAKIDwvZGl2PgogPC9kaXY+Cis8YSBpZD0iZ2FjMGNkNjNiNGExYTQ0ZjUwODE4NTgxOTllNjhmNDZhYSIgbmFtZT0iZ2FjMGNkNjNiNGExYTQ0ZjUwODE4NTgxOTllNjhmNDZhYSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhYzBjZDYzYjRhMWE0NGY1MDgxODU4MTk5ZTY4ZjQ2YWEiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmx3aXBfc3RybmlzdHIoKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+Y2hhciAqIGx3aXBfc3RybmlzdHIgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IGNoYXIgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YnVmZmVyPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3QgY2hhciAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT50b2tlbjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnNpemVfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5sd0lQIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZm9yIHN0cm5pc3RyKCkgbm9uLXN0YW5kYXJkIGZ1bmN0aW9uLiBUaGlzIGNhbiBiZSAjZGVmaW5lZCB0byBzdHJuaXN0cigpIGRlcGVuZGluZyBvbiB5b3VyIHBsYXRmb3JtIHBvcnQuIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxhIGlkPSJnYWEyYmE0YjRlMmRkN2UxYzg1NmZlZGM2YTYwNjk4MTNlIiBuYW1lPSJnYWEyYmE0YjRlMmRkN2UxYzg1NmZlZGM2YTYwNjk4MTNlIj48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FhMmJhNGI0ZTJkZDdlMWM4NTZmZWRjNmE2MDY5ODEzZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bHdpcF9zdHJuc3RyKCk8L2gyPgogCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19ub25zdGFuZGFyZC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX25vbnN0YW5kYXJkLmpzCmluZGV4IDdkNWI5OGMuLjljMmU5OGIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX25vbnN0YW5kYXJkLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX25vbnN0YW5kYXJkLmpzCkBAIC0zLDUgKzMsNiBAQAogICAgIFsgImx3aXBfaXRvYSIsICJncm91cF9fc3lzX19ub25zdGFuZGFyZC5odG1sI2dhZjE1YjRmYmFhYWU1YmI3ZjZkYTQzMDFmM2Y5NzkyODQiLCBudWxsIF0sCiAgICAgWyAibHdpcF9zdHJpY21wIiwgImdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2EyNjNjYmFmY2I2OTdlZmY5NjQxMzlhOTk5OGE2NjY4YSIsIG51bGwgXSwKICAgICBbICJsd2lwX3N0cm5pY21wIiwgImdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2E5OTdkY2M0OTQ1MTEyMWQ0ZWQ3NTViMzNiYzdiZDI2YSIsIG51bGwgXSwKKyAgICBbICJsd2lwX3N0cm5pc3RyIiwgImdyb3VwX19zeXNfX25vbnN0YW5kYXJkLmh0bWwjZ2FjMGNkNjNiNGExYTQ0ZjUwODE4NTgxOTllNjhmNDZhYSIsIG51bGwgXSwKICAgICBbICJsd2lwX3N0cm5zdHIiLCAiZ3JvdXBfX3N5c19fbm9uc3RhbmRhcmQuaHRtbCNnYWEyYmE0YjRlMmRkN2UxYzg1NmZlZGM2YTYwNjk4MTNlIiwgbnVsbCBdCiBdOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX29zLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19vcy5odG1sCmluZGV4IGM0ZmIwZDUuLjE5MzkyYjQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX29zLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fb3MuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19wcm90Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19wcm90Lmh0bWwKaW5kZXggNDc5OGUwNC4uNWViYzM4OCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fcHJvdC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX3Byb3QuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX19zZW0uaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX3NlbS5odG1sCmluZGV4IDdlM2FhZjcuLjcyY2M0NjYgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX3NlbS5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX3NlbS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX3RpbWUuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX19zeXNfX3RpbWUuaHRtbAppbmRleCBhMjg2YjAxLi5mNmMwOTY0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fc3lzX190aW1lLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3N5c19fdGltZS5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX190Y3BfX3Jhdy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RjcF9fcmF3Lmh0bWwKaW5kZXggN2ZlYThmMS4uMWVjOWMwNiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RjcF9fcmF3Lmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RjcF9fcmF3Lmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTMzLDYgKzEzMyw4IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWJkYWMwODU2YTUyYjU3ODlkYzg5N2Q0YzcxMzdlYzQ0Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhOWEzMWRlZWE0Y2FkYWNkMzlmOTQ4NWYzN2NmZGQwMTIiIGlkPSJyX2dhOWEzMWRlZWE0Y2FkYWNkMzlmOTQ4NWYzN2NmZGQwMTIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E5YTMxZGVlYTRjYWRhY2QzOWY5NDg1ZjM3Y2ZkZDAxMiI+dGNwX2Nvbm5lY3Q8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYi5odG1sIj50Y3BfcGNiPC9hPiAqcGNiLCBjb25zdCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTMzNWE4YzlkZjY2MzE5ZTg4YTFhNTI5MDQ3Y2UwYTFlIj5pcF9hZGRyX3Q8L2E+ICppcGFkZHIsIHUxNl90IHBvcnQsIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwXzhoLmh0bWwjYTkzOTg2NzEwNmJkNDkyY2FmMmQ4NTg1MmZiN2Y2YWU4Ij50Y3BfY29ubmVjdGVkX2ZuPC9hPiBjb25uZWN0ZWQpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E5YTMxZGVlYTRjYWRhY2QzOWY5NDg1ZjM3Y2ZkZDAxMiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTJjNDIzNGYxZTk1YjZiZGUwZTg0ZDRlYTk3YWU5NWJjIiBpZD0icl9nYTJjNDIzNGYxZTk1YjZiZGUwZTg0ZDRlYTk3YWU5NWJjIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMmM0MjM0ZjFlOTViNmJkZTBlODRkNGVhOTdhZTk1YmMiPnRjcF9zZXRwcmlvPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19wY2IuaHRtbCI+dGNwX3BjYjwvYT4gKnBjYiwgdThfdCBwcmlvKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMmM0MjM0ZjFlOTViNmJkZTBlODRkNGVhOTdhZTk1YmMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2EyZTAwYzY2OGI5OWQ5MjExM2NkNTk1NjQ3NzAyYmU4MyIgaWQ9InJfZ2EyZTAwYzY2OGI5OWQ5MjExM2NkNTk1NjQ3NzAyYmU4MyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19wY2IuaHRtbCI+dGNwX3BjYjwvYT4gKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTJlMDBjNjY4Yjk5ZDkyMTEzY2Q1OTU2NDc3MDJiZTgzIj50Y3BfbmV3PC9hPiAodm9pZCk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTJlMDBjNjY4Yjk5ZDkyMTEzY2Q1OTU2NDc3MDJiZTgzIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhODlmNjk1NWI3MjQ4Yzc2YTA3M2NkMWJlNDYxYWViNWIiIGlkPSJyX2dhODlmNjk1NWI3MjQ4Yzc2YTA3M2NkMWJlNDYxYWViNWIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRjcF9fcGNiLmh0bWwiPnRjcF9wY2I8L2E+IComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2E4OWY2OTU1YjcyNDhjNzZhMDczY2QxYmU0NjFhZWI1YiI+dGNwX25ld19pcF90eXBlPC9hPiAodThfdCB0eXBlKTwvdGQ+PC90cj4KQEAgLTE1Niw5ICsxNTgsMTAgQEAKIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxwPlRyYW5zbWlzc2lvbiBDb250cm9sIFByb3RvY29sIGZvciBJUDxiciAgLz4KLTwvcD48ZGwgY2xhc3M9InNlY3Rpb24gc2VlIj48ZHQ+U2VlIGFsc288L2R0PjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hcGkuaHRtbCI+QVBJczwvYT48L2RkPjwvZGw+CisgPC9wPjxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FwaS5odG1sIj5BUElzPC9hPjwvZGQ+PC9kbD4KIDxwPkNvbW1vbiBmdW5jdGlvbnMgZm9yIHRoZSBUQ1AgaW1wbGVtZW50YXRpb24sIHN1Y2ggYXMgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRpbmcgdGhlIGRhdGEgc3RydWN0dXJlcyBhbmQgdGhlIFRDUCB0aW1lciBmdW5jdGlvbnMuIFRDUCBmdW5jdGlvbnMgcmVsYXRlZCB0byBpbnB1dCBhbmQgb3V0cHV0IGlzIGZvdW5kIGluIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19pbl84Yy5odG1sIj50Y3BfaW4uYzwvYT4gYW5kIDxhIGNsYXNzPSJlbCIgaHJlZj0idGNwX19vdXRfOGMuaHRtbCI+dGNwX291dC5jPC9hPiByZXNwZWN0aXZlbHkuPGJyICAvPgotIDwvcD48aDI+VENQIGNvbm5lY3Rpb24gc2V0dXAgPC9oMj4KKzwvcD4KKzxoMj5UQ1AgY29ubmVjdGlvbiBzZXR1cCA8L2gyPgogPHA+VGhlIGZ1bmN0aW9ucyB1c2VkIGZvciBzZXR0aW5nIHVwIGNvbm5lY3Rpb25zIGlzIHNpbWlsYXIgdG8gdGhhdCBvZiB0aGUgc2VxdWVudGlhbCBBUEkgYW5kIG9mIHRoZSBCU0Qgc29ja2V0IEFQSS4gQSBuZXcgVENQIGNvbm5lY3Rpb24gaWRlbnRpZmllciAoaS5lLiwgYSBwcm90b2NvbCBjb250cm9sIGJsb2NrIC0gUENCKSBpcyBjcmVhdGVkIHdpdGggdGhlIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhMmUwMGM2NjhiOTlkOTIxMTNjZDU5NTY0NzcwMmJlODMiPnRjcF9uZXcoKTwvYT4gZnVuY3Rpb24uIFRoaXMgUENCIGNhbiB0aGVuIGJlIGVpdGhlciBzZXQgdG8gbGlzdGVuIGZvciBuZXcgaW5jb21pbmcgY29ubmVjdGlvbnMgb3IgYmUgZXhwbGljaXRseSBjb25uZWN0ZWQgdG8gYW5vdGhlciBob3N0LjwvcD48dWw+CiA8bGk+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EyZTAwYzY2OGI5OWQ5MjExM2NkNTk1NjQ3NzAyYmU4MyI+dGNwX25ldygpPC9hPjwvbGk+CiA8bGk+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FjZjVhYTY3YmQ3ZmM2NmZlZjQzZjc3YTU1YTEyMDFlZSI+dGNwX2JpbmQoKTwvYT48L2xpPgpAQCAtNDQ5LDcgKzQ1Miw3IEBACiAgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5wY2I8L3RkPjx0ZD50aGUgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYi5odG1sIj50Y3BfcGNiPC9hPiB1c2VkIHRvIGVzdGFibGlzaCB0aGUgY29ubmVjdGlvbiA8L3RkPjwvdHI+CiAgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5pcGFkZHI8L3RkPjx0ZD50aGUgcmVtb3RlIGlwIGFkZHJlc3MgdG8gY29ubmVjdCB0byA8L3RkPjwvdHI+CiAgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5wb3J0PC90ZD48dGQ+dGhlIHJlbW90ZSB0Y3AgcG9ydCB0byBjb25uZWN0IHRvIDwvdGQ+PC90cj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmNvbm5lY3RlZDwvdGQ+PHRkPmNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBjb25uZWN0ZWQgKG9uIGVycm9yLCB0aGUgZXJyIGNhbGJhY2sgd2lsbCBiZSBjYWxsZWQpIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmNvbm5lY3RlZDwvdGQ+PHRkPmNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBjb25uZWN0ZWQgKG9uIGVycm9yLCB0aGUgZXJyIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkKSA8L3RkPjwvdHI+CiAgIDwvdGFibGU+CiAgIDwvZGQ+CiA8L2RsPgpAQCAtNTk0LDcgKzU5Nyw3IEBACiA8cD5DcmVhdGVzIGEgbmV3IFRDUCBwcm90b2NvbCBjb250cm9sIGJsb2NrIGJ1dCBkb2Vzbid0IHBsYWNlIGl0IG9uIGFueSBvZiB0aGUgVENQIFBDQiBsaXN0cy4gVGhlIHBjYiBpcyBub3QgcHV0IG9uIGFueSBsaXN0IHVudGlsIGJpbmRpbmcgdXNpbmcgPGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FjZjVhYTY3YmQ3ZmM2NmZlZjQzZjc3YTU1YTEyMDFlZSI+dGNwX2JpbmQoKTwvYT4uIDwvcD48ZGwgY2xhc3M9InNlY3Rpb24gc2VlIj48ZHQ+U2VlIGFsc288L2R0PjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19tZW1wLmh0bWwjZ2EwNGZiYTZhMjQ5MTIzNTEzMjcxZGNjYjRlYzI2YWE1YSI+TUVNUF9OVU1fVENQX1BDQl9MSVNURU48L2E+IGFuZCA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX19vcHRzX19tZW1wLmh0bWwjZ2E3M2JlZWNjMTljZmJjMzExNDc2OGY5YjMyYjJjZDcwZSI+TUVNUF9OVU1fVENQX1BDQjwvYT48L2RkPjwvZGw+CiA8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KICAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgotICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+dHlwZTwvdGQ+PHRkPklQIGFkZHJlc3MgdHlwZSwgc2VlIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhZjIxNDJmMGRmZGNjOTM4ZTJkYjE2YWE3NDVlZDU4NWMiPmx3aXBfaXBfYWRkcl90eXBlPC9hPiBkZWZpbml0aW9ucy4gSWYgeW91IHdhbnQgdG8gbGlzdGVuIHRvIElQdjQgYW5kIElQdjYgKGR1YWwtc3RhY2spIGNvbm5lY3Rpb25zLCBzdXBwbHkgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2dhZjIxNDJmMGRmZGNjOTM4ZTJkYjE2YWE3NDVlZDU4NWNhYzZiMmM5OWNmOTIwZTA4ZWZjYjU1ZGM0MGU0Mjk0NGUiPklQQUREUl9UWVBFX0FOWTwvYT4gYXMgYXJndW1lbnQgYW5kIGJpbmQgdG8gSVBfQU5ZX1RZUEUuIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnR5cGU8L3RkPjx0ZD5JUCBhZGRyZXNzIHR5cGUsIHNlZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWYyMTQyZjBkZmRjYzkzOGUyZGIxNmFhNzQ1ZWQ1ODVjIj5sd2lwX2lwX2FkZHJfdHlwZTwvYT4gZGVmaW5pdGlvbnMuIElmIHlvdSB3YW50IHRvIGxpc3RlbiB0byBJUHY0IGFuZCBJUHY2IChkdWFsLXN0YWNrKSBjb25uZWN0aW9ucywgc3VwcGx5IDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dnYWYyMTQyZjBkZmRjYzkzOGUyZGIxNmFhNzQ1ZWQ1ODVjYWM2YjJjOTljZjkyMGUwOGVmY2I1NWRjNDBlNDI5NDRlIj5JUEFERFJfVFlQRV9BTlk8L2E+IGFzIGFyZ3VtZW50IGFuZCBiaW5kIHRvIDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhYmU0M2IxNTQ1MzNiNzM1ODVjNGU1OGY1NjgzNzBlZGUiPklQX0FOWV9UWVBFPC9hPi4gPC90ZD48L3RyPgogICA8L3RhYmxlPgogICA8L2RkPgogPC9kbD4KQEAgLTc0Miw2ICs3NDUsMzUgQEAKIAogPC9kaXY+CiA8L2Rpdj4KKzxhIGlkPSJnYTJjNDIzNGYxZTk1YjZiZGUwZTg0ZDRlYTk3YWU5NWJjIiBuYW1lPSJnYTJjNDIzNGYxZTk1YjZiZGUwZTg0ZDRlYTk3YWU5NWJjIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2EyYzQyMzRmMWU5NWI2YmRlMGU4NGQ0ZWE5N2FlOTViYyI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+dGNwX3NldHByaW8oKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dm9pZCB0Y3Bfc2V0cHJpbyA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19wY2IuaHRtbCI+dGNwX3BjYjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+cGNiPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dThfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+cHJpbzwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5TZXRzIHRoZSBwcmlvcml0eSBvZiBhIGNvbm5lY3Rpb24uPC9wPgorPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CisgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnBjYjwvdGQ+PHRkPnRoZSA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRjcF9fcGNiLmh0bWwiPnRjcF9wY2I8L2E+IHRvIG1hbmlwdWxhdGUgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+cHJpbzwvdGQ+PHRkPm5ldyBwcmlvcml0eSA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorCis8L2Rpdj4KKzwvZGl2PgogPGEgaWQ9ImdhNWI5NGQ1N2YxODkxYjkyODdmODg1MjVhMmFjNTYxZGQiIG5hbWU9ImdhNWI5NGQ1N2YxODkxYjkyODdmODg1MjVhMmFjNTYxZGQiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTViOTRkNTdmMTg5MWI5Mjg3Zjg4NTI1YTJhYzU2MWRkIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj50Y3Bfc2h1dGRvd24oKTwvaDI+CiAKQEAgLTc2NSw3ICs3OTcsNyBAQAogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5DYXVzZXMgYWxsIG9yIHBhcnQgb2YgYSBmdWxsLWR1cGxleCBjb25uZWN0aW9uIG9mIHRoaXMgUENCIHRvIGJlIHNodXQgZG93bi4gVGhpcyBkb2Vzbid0IGRlYWxsb2NhdGUgdGhlIFBDQiB1bmxlc3Mgc2h1dHRpbmcgZG93biBib3RoIHNpZGVzISBTaHV0dGluZyBkb3duIGJvdGggc2lkZXMgaXMgdGhlIHNhbWUgYXMgY2FsbGluZyB0Y3BfY2xvc2UsIHNvIGlmIGl0IHN1Y2NlZHMgKGkuZS4gcmV0dXJucyBFUl9PSyksIHRoZSBQQ0IgbXVzdCBub3QgYmUgcmVmZXJlbmNlZCBhbnkgbW9yZSE8L3A+Cis8cD5DYXVzZXMgYWxsIG9yIHBhcnQgb2YgYSBmdWxsLWR1cGxleCBjb25uZWN0aW9uIG9mIHRoaXMgUENCIHRvIGJlIHNodXQgZG93bi4gVGhpcyBkb2Vzbid0IGRlYWxsb2NhdGUgdGhlIFBDQiB1bmxlc3Mgc2h1dHRpbmcgZG93biBib3RoIHNpZGVzISBTaHV0dGluZyBkb3duIGJvdGggc2lkZXMgaXMgdGhlIHNhbWUgYXMgY2FsbGluZyB0Y3BfY2xvc2UsIHNvIGlmIGl0IHN1Y2NlZWRzIChpLmUuIHJldHVybnMgRVJfT0spLCB0aGUgUENCIG11c3Qgbm90IGJlIHJlZmVyZW5jZWQgYW55IG1vcmUhPC9wPgogPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CiAgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnBjYjwvdGQ+PHRkPlBDQiB0byBzaHV0ZG93biA8L3RkPjwvdHI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdGNwX19yYXcuanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdGNwX19yYXcuanMKaW5kZXggZTUwNDY3NS4uN2EzZDIxYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RjcF9fcmF3LmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX190Y3BfX3Jhdy5qcwpAQCAtMjAsNiArMjAsNyBAQAogICAgIFsgInRjcF9yZWN2IiwgImdyb3VwX190Y3BfX3Jhdy5odG1sI2dhOGFmZDBiMzE2YTg3YTVlZWZmNDcyNmRjOTUwMDZlZDAiLCBudWxsIF0sCiAgICAgWyAidGNwX3JlY3ZlZCIsICJncm91cF9fdGNwX19yYXcuaHRtbCNnYWJkYWMwODU2YTUyYjU3ODlkYzg5N2Q0YzcxMzdlYzQ0IiwgbnVsbCBdLAogICAgIFsgInRjcF9zZW50IiwgImdyb3VwX190Y3BfX3Jhdy5odG1sI2dhMTU5NjMzMmI5M2JiNjI0OTE3OWYzYjg5ZjI0YmQ4MDgiLCBudWxsIF0sCisgICAgWyAidGNwX3NldHByaW8iLCAiZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2EyYzQyMzRmMWU5NWI2YmRlMGU4NGQ0ZWE5N2FlOTViYyIsIG51bGwgXSwKICAgICBbICJ0Y3Bfc2h1dGRvd24iLCAiZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2E1Yjk0ZDU3ZjE4OTFiOTI4N2Y4ODUyNWEyYWM1NjFkZCIsIG51bGwgXSwKICAgICBbICJ0Y3Bfd3JpdGUiLCAiZ3JvdXBfX3RjcF9fcmF3Lmh0bWwjZ2E2YjJhYTBlZmJmMTBlMjU0OTMwMzMyYjdjODljZDhjNSIsIG51bGwgXQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sCmluZGV4IGUxNjBlNGEuLmU1MjIyODEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwNywxOSArMTA3LDE5IEBACiBGdW5jdGlvbnM8L2gyPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTQ4MzZlMGI0ZjY2NDM5NDkzZTEwNmE1MDQwMGQxNjE2IiBpZD0icl9nYTQ4MzZlMGI0ZjY2NDM5NDkzZTEwNmE1MDQwMGQxNjE2Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj51OF90JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNDgzNmUwYjRmNjY0Mzk0OTNlMTA2YTUwNDAwZDE2MTYiPnRjcF9leHRfYXJnX2FsbG9jX2lkPC9hPiAodm9pZCk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTQ4MzZlMGI0ZjY2NDM5NDkzZTEwNmE1MDQwMGQxNjE2Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhMzZlNjBkYzAyYmZlMDQzN2M4ZGEzNjhhNjJlMmYzMTYiIGlkPSJyX2dhMzZlNjBkYzAyYmZlMDQzN2M4ZGEzNjhhNjJlMmYzMTYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2EzNmU2MGRjMDJiZmUwNDM3YzhkYTM2OGE2MmUyZjMxNiI+dGNwX2V4dF9hcmdfc2V0X2NhbGxiYWNrczwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRjcF9fcGNiLmh0bWwiPnRjcF9wY2I8L2E+ICpwY2IsIHVpbnQ4X3QgaWQsIGNvbnN0IHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRjcF9fZXh0X19hcmdfX2NhbGxiYWNrcy5odG1sIj50Y3BfZXh0X2FyZ19jYWxsYmFja3M8L2E+ICpjb25zdCBjYWxsYmFja3MpPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EzNmU2MGRjMDJiZmUwNDM3YzhkYTM2OGE2MmUyZjMxNiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYTU4NTAwY2IyY2UyMjQzOGUxNmEzNzM3MzU5NWFmMzE4IiBpZD0icl9nYTU4NTAwY2IyY2UyMjQzOGUxNmEzNzM3MzU5NWFmMzE4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNTg1MDBjYjJjZTIyNDM4ZTE2YTM3MzczNTk1YWYzMTgiPnRjcF9leHRfYXJnX3NldDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRjcF9fcGNiLmh0bWwiPnRjcF9wY2I8L2E+ICpwY2IsIHVpbnQ4X3QgaWQsIHZvaWQgKmFyZyk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYTU4NTAwY2IyY2UyMjQzOGUxNmEzNzM3MzU5NWFmMzE4Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhZGM3YWE5NmRkZDE1ZmI2NTk4NTIzMDY4Yjg5Zjg4NTUiIGlkPSJyX2dhZGM3YWE5NmRkZDE1ZmI2NTk4NTIzMDY4Yjg5Zjg4NTUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWRjN2FhOTZkZGQxNWZiNjU5ODUyMzA2OGI4OWY4ODU1Ij50Y3BfZXh0X2FyZ19nZXQ8L2E+IChjb25zdCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0Y3BfX3BjYi5odG1sIj50Y3BfcGNiPC9hPiAqcGNiLCB1aW50OF90IGlkKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZGM3YWE5NmRkZDE1ZmI2NTk4NTIzMDY4Yjg5Zjg4NTUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FhY2VhNTRjZTExNTRlN2FlOGVmMDE5OWZmMWM1YmRjNSIgaWQ9InJfZ2FhY2VhNTRjZTExNTRlN2FlOGVmMDE5OWZmMWM1YmRjNSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWFjZWE1NGNlMTE1NGU3YWU4ZWYwMTk5ZmYxYzViZGM1Ij50Y3BfZXh0X2FyZ19zZXRfY2FsbGJhY2tzPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19wY2IuaHRtbCI+dGNwX3BjYjwvYT4gKnBjYiwgdThfdCBpZCwgY29uc3Qgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19leHRfX2FyZ19fY2FsbGJhY2tzLmh0bWwiPnRjcF9leHRfYXJnX2NhbGxiYWNrczwvYT4gKmNvbnN0IGNhbGxiYWNrcyk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWFjZWE1NGNlMTE1NGU3YWU4ZWYwMTk5ZmYxYzViZGM1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhZjVjMjM5N2IyZDg1YjNhOTAyNTg0ZmI2NGNkYjk2MWUiIGlkPSJyX2dhZjVjMjM5N2IyZDg1YjNhOTAyNTg0ZmI2NGNkYjk2MWUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FmNWMyMzk3YjJkODViM2E5MDI1ODRmYjY0Y2RiOTYxZSI+dGNwX2V4dF9hcmdfc2V0PC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19wY2IuaHRtbCI+dGNwX3BjYjwvYT4gKnBjYiwgdThfdCBpZCwgdm9pZCAqYXJnKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZjVjMjM5N2IyZDg1YjNhOTAyNTg0ZmI2NGNkYjk2MWUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E3NDk5MDE4NDY5Y2Q5YzNkYzZhMTVhZDkxYzMzOGU1NiIgaWQ9InJfZ2E3NDk5MDE4NDY5Y2Q5YzNkYzZhMTVhZDkxYzMzOGU1NiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNzQ5OTAxODQ2OWNkOWMzZGM2YTE1YWQ5MWMzMzhlNTYiPnRjcF9leHRfYXJnX2dldDwvYT4gKGNvbnN0IHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRjcF9fcGNiLmh0bWwiPnRjcF9wY2I8L2E+ICpwY2IsIHU4X3QgaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E3NDk5MDE4NDY5Y2Q5YzNkYzZhMTVhZDkxYzMzOGU1NiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxwPkFkZGl0aW9uYWwgZGF0YSBzdG9yYWdlIHBlciB0Y3AgcGNiPGJyICAvPgotPC9wPjxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwiPlRDUDwvYT48L2RkPjwvZGw+CisgPC9wPjxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RjcF9fcmF3Lmh0bWwiPlRDUDwvYT48L2RkPjwvZGw+CiA8cD5XaGVuIExXSVBfVENQX1BDQl9OVU1fRVhUX0FSR1MgaXMgJmd0OyAwLCBldmVyeSB0Y3AgcGNiIChpbmNsdWRpbmcgbGlzdGVuIHBjYikgaW5jbHVkZXMgYSBudW1iZXIgb2YgYWRkaXRpb25hbCBhcmd1bWVudCBlbnRyaWVzIGluIGFuIGFycmF5LjwvcD4KIDxwPlRvIHN1cHBvcnQgbWVtb3J5IG1hbmFnZW1lbnQsIGluIGFkZGl0aW9uIHRvIGEgJ3ZvaWQgKicsIGNhbGxiYWNrcyBjYW4gYmUgcHJvdmlkZWQgdG8gbWFuYWdlIHRyYW5zaXRpb24gZnJvbSBsaXN0ZW5pbmcgcGNicyB0byBjb25uZWN0aW9ucyBhbmQgdG8gZGVhbGxvY2F0ZSBtZW1vcnkgd2hlbiBhIHBjYiBpcyBkZWFsbG9jYXRlZCAoc2VlIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRjcF9fZXh0X19hcmdfX2NhbGxiYWNrcy5odG1sIj50Y3BfZXh0X2FyZ19jYWxsYmFja3M8L2E+KS48L3A+Ci08cD5BZnRlciBhbGxvY2F0aW5nIHRoaXMgaW5kZXgsIHVzZSA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTU4NTAwY2IyY2UyMjQzOGUxNmEzNzM3MzU5NWFmMzE4Ij50Y3BfZXh0X2FyZ19zZXQ8L2E+IGFuZCA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWRjN2FhOTZkZGQxNWZiNjU5ODUyMzA2OGI4OWY4ODU1Ij50Y3BfZXh0X2FyZ19nZXQ8L2E+IHRvIHN0b3JlIGFuZCBsb2FkIGFyZ3VtZW50cyBmcm9tIHRoaXMgaW5kZXggZm9yIGEgZ2l2ZW4gcGNiLiA8L3A+Cis8cD5BZnRlciBhbGxvY2F0aW5nIHRoaXMgaW5kZXgsIHVzZSA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWY1YzIzOTdiMmQ4NWIzYTkwMjU4NGZiNjRjZGI5NjFlIj50Y3BfZXh0X2FyZ19zZXQ8L2E+IGFuZCA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTc0OTkwMTg0NjljZDljM2RjNmExNWFkOTFjMzM4ZTU2Ij50Y3BfZXh0X2FyZ19nZXQ8L2E+IHRvIHN0b3JlIGFuZCBsb2FkIGFyZ3VtZW50cyBmcm9tIHRoaXMgaW5kZXggZm9yIGEgZ2l2ZW4gcGNiLiA8L3A+CiA8aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KIDxhIGlkPSJnYTQ4MzZlMGI0ZjY2NDM5NDkzZTEwNmE1MDQwMGQxNjE2IiBuYW1lPSJnYTQ4MzZlMGI0ZjY2NDM5NDkzZTEwNmE1MDQwMGQxNjE2Ij48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E0ODM2ZTBiNGY2NjQzOTQ5M2UxMDZhNTA0MDBkMTYxNiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+dGNwX2V4dF9hcmdfYWxsb2NfaWQoKTwvaDI+CkBAIC0xMzgsMTMgKzEzOCwxMyBAQAogPHA+QWxsb2NhdGUgYW4gaW5kZXggdG8gc3RvcmUgZGF0YSBpbiBleHRfYXJncyBtZW1iZXIgb2Ygc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGNwX19wY2IuaHRtbCI+dGNwX3BjYjwvYT4uIFJldHVybmVkIHZhbHVlIGlzIGFuIGluZGV4IGluIG1lbnRpb25lZCBhcnJheS4gVGhlIGluZGV4IGlzIDxlbT5nbG9iYWw8L2VtPiBvdmVyIGFsbCBwY2JzITwvcD4KIDxwPldoZW4gPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fdGNwLmh0bWwjZ2E0MGIxY2RhZDUyZWFhOTFhM2Y1YzI0MmZjOTJlZTIyMyI+TFdJUF9UQ1BfUENCX05VTV9FWFRfQVJHUzwvYT4gaXMgJmd0OyAwLCBldmVyeSB0Y3AgcGNiIChpbmNsdWRpbmcgbGlzdGVuIHBjYikgaW5jbHVkZXMgYSBudW1iZXIgb2YgYWRkaXRpb25hbCBhcmd1bWVudCBlbnRyaWVzIGluIGFuIGFycmF5LjwvcD4KIDxwPlRvIHN1cHBvcnQgbWVtb3J5IG1hbmFnZW1lbnQsIGluIGFkZGl0aW9uIHRvIGEgJ3ZvaWQgKicsIGNhbGxiYWNrcyBjYW4gYmUgcHJvdmlkZWQgdG8gbWFuYWdlIHRyYW5zaXRpb24gZnJvbSBsaXN0ZW5pbmcgcGNicyB0byBjb25uZWN0aW9ucyBhbmQgdG8gZGVhbGxvY2F0ZSBtZW1vcnkgd2hlbiBhIHBjYiBpcyBkZWFsbG9jYXRlZCAoc2VlIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRjcF9fZXh0X19hcmdfX2NhbGxiYWNrcy5odG1sIj50Y3BfZXh0X2FyZ19jYWxsYmFja3M8L2E+KS48L3A+Ci08cD5BZnRlciBhbGxvY2F0aW5nIHRoaXMgaW5kZXgsIHVzZSA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTU4NTAwY2IyY2UyMjQzOGUxNmEzNzM3MzU5NWFmMzE4Ij50Y3BfZXh0X2FyZ19zZXQ8L2E+IGFuZCA8YSBjbGFzcz0iZWwiIGhyZWY9IiNnYWRjN2FhOTZkZGQxNWZiNjU5ODUyMzA2OGI4OWY4ODU1Ij50Y3BfZXh0X2FyZ19nZXQ8L2E+IHRvIHN0b3JlIGFuZCBsb2FkIGFyZ3VtZW50cyBmcm9tIHRoaXMgaW5kZXggZm9yIGEgZ2l2ZW4gcGNiLjwvcD4KKzxwPkFmdGVyIGFsbG9jYXRpbmcgdGhpcyBpbmRleCwgdXNlIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhZjVjMjM5N2IyZDg1YjNhOTAyNTg0ZmI2NGNkYjk2MWUiPnRjcF9leHRfYXJnX3NldDwvYT4gYW5kIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhNzQ5OTAxODQ2OWNkOWMzZGM2YTE1YWQ5MWMzMzhlNTYiPnRjcF9leHRfYXJnX2dldDwvYT4gdG8gc3RvcmUgYW5kIGxvYWQgYXJndW1lbnRzIGZyb20gdGhpcyBpbmRleCBmb3IgYSBnaXZlbiBwY2IuPC9wPgogPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5hIHVuaXF1ZSBpbmRleCBpbnRvIHN0cnVjdCB0Y3BfcGNiLmV4dF9hcmdzIDwvZGQ+PC9kbD4KIAogPC9kaXY+CiA8L2Rpdj4KLTxhIGlkPSJnYWRjN2FhOTZkZGQxNWZiNjU5ODUyMzA2OGI4OWY4ODU1IiBuYW1lPSJnYWRjN2FhOTZkZGQxNWZiNjU5ODUyMzA2OGI4OWY4ODU1Ij48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FkYzdhYTk2ZGRkMTVmYjY1OTg1MjMwNjhiODlmODg1NSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+dGNwX2V4dF9hcmdfZ2V0KCk8L2gyPgorPGEgaWQ9ImdhNzQ5OTAxODQ2OWNkOWMzZGM2YTE1YWQ5MWMzMzhlNTYiIG5hbWU9ImdhNzQ5OTAxODQ2OWNkOWMzZGM2YTE1YWQ5MWMzMzhlNTYiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYTc0OTkwMTg0NjljZDljM2RjNmExNWFkOTFjMzM4ZTU2Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj50Y3BfZXh0X2FyZ19nZXQoKTwvaDI+CiAKIDxkaXYgY2xhc3M9Im1lbWl0ZW0iPgogPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgpAQCAtMTU3LDcgKzE1Nyw3IEBACiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgogICAgICAgICAgIDx0ZD48L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51aW50OF90PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5pZDwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51OF90PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5pZDwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CkBAIC0xNzMsOCArMTczLDggQEAKIAogPC9kaXY+CiA8L2Rpdj4KLTxhIGlkPSJnYTU4NTAwY2IyY2UyMjQzOGUxNmEzNzM3MzU5NWFmMzE4IiBuYW1lPSJnYTU4NTAwY2IyY2UyMjQzOGUxNmEzNzM3MzU5NWFmMzE4Ij48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E1ODUwMGNiMmNlMjI0MzhlMTZhMzczNzM1OTVhZjMxOCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+dGNwX2V4dF9hcmdfc2V0KCk8L2gyPgorPGEgaWQ9ImdhZjVjMjM5N2IyZDg1YjNhOTAyNTg0ZmI2NGNkYjk2MWUiIG5hbWU9ImdhZjVjMjM5N2IyZDg1YjNhOTAyNTg0ZmI2NGNkYjk2MWUiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNnYWY1YzIzOTdiMmQ4NWIzYTkwMjU4NGZiNjRjZGI5NjFlIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj50Y3BfZXh0X2FyZ19zZXQoKTwvaDI+CiAKIDxkaXYgY2xhc3M9Im1lbWl0ZW0iPgogPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgpAQCAtMTg3LDcgKzE4Nyw3IEBACiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgogICAgICAgICAgIDx0ZD48L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51aW50OF90PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5pZDwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dThfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+aWQ8L2VtPjwvc3Bhbj4sIDwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgpAQCAtMjA4LDggKzIwOCw4IEBACiAKIDwvZGl2PgogPC9kaXY+Ci08YSBpZD0iZ2EzNmU2MGRjMDJiZmUwNDM3YzhkYTM2OGE2MmUyZjMxNiIgbmFtZT0iZ2EzNmU2MGRjMDJiZmUwNDM3YzhkYTM2OGE2MmUyZjMxNiI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhMzZlNjBkYzAyYmZlMDQzN2M4ZGEzNjhhNjJlMmYzMTYiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPnRjcF9leHRfYXJnX3NldF9jYWxsYmFja3MoKTwvaDI+Cis8YSBpZD0iZ2FhY2VhNTRjZTExNTRlN2FlOGVmMDE5OWZmMWM1YmRjNSIgbmFtZT0iZ2FhY2VhNTRjZTExNTRlN2FlOGVmMDE5OWZmMWM1YmRjNSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhYWNlYTU0Y2UxMTU0ZTdhZThlZjAxOTlmZjFjNWJkYzUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPnRjcF9leHRfYXJnX3NldF9jYWxsYmFja3MoKTwvaDI+CiAKIDxkaXYgY2xhc3M9Im1lbWl0ZW0iPgogPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgpAQCAtMjIyLDcgKzIyMiw3IEBACiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgogICAgICAgICAgIDx0ZD48L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51aW50OF90PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5pZDwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dThfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+aWQ8L2VtPjwvc3Bhbj4sIDwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmpzCmluZGV4IDA0ZDUxZDcuLjU4ZTJhZDEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX190Y3BfX3Jhd19fZXh0YXJncy5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuanMKQEAgLTEsNyArMSw3IEBACiB2YXIgZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzID0KIFsKICAgICBbICJ0Y3BfZXh0X2FyZ19hbGxvY19pZCIsICJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYTQ4MzZlMGI0ZjY2NDM5NDkzZTEwNmE1MDQwMGQxNjE2IiwgbnVsbCBdLAotICAgIFsgInRjcF9leHRfYXJnX2dldCIsICJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYWRjN2FhOTZkZGQxNWZiNjU5ODUyMzA2OGI4OWY4ODU1IiwgbnVsbCBdLAotICAgIFsgInRjcF9leHRfYXJnX3NldCIsICJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYTU4NTAwY2IyY2UyMjQzOGUxNmEzNzM3MzU5NWFmMzE4IiwgbnVsbCBdLAotICAgIFsgInRjcF9leHRfYXJnX3NldF9jYWxsYmFja3MiLCAiZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwjZ2EzNmU2MGRjMDJiZmUwNDM3YzhkYTM2OGE2MmUyZjMxNiIsIG51bGwgXQorICAgIFsgInRjcF9leHRfYXJnX2dldCIsICJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYTc0OTkwMTg0NjljZDljM2RjNmExNWFkOTFjMzM4ZTU2IiwgbnVsbCBdLAorICAgIFsgInRjcF9leHRfYXJnX3NldCIsICJncm91cF9fdGNwX19yYXdfX2V4dGFyZ3MuaHRtbCNnYWY1YzIzOTdiMmQ4NWIzYTkwMjU4NGZiNjRjZGI5NjFlIiwgbnVsbCBdLAorICAgIFsgInRjcF9leHRfYXJnX3NldF9jYWxsYmFja3MiLCAiZ3JvdXBfX3RjcF9fcmF3X19leHRhcmdzLmh0bWwjZ2FhY2VhNTRjZTExNTRlN2FlOGVmMDE5OWZmMWM1YmRjNSIsIG51bGwgXQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdGZ0cC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RmdHAuaHRtbAppbmRleCAwNDE4NmViLi43NDZmMGVjIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdGZ0cC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX190ZnRwLmh0bWwKQEAgLTUsNyArNSw3IEBACiA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPTExIi8+CiA8bWV0YSBuYW1lPSJnZW5lcmF0b3IiIGNvbnRlbnQ9IkRveHlnZW4gMS4xMi4wIi8+CiA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLz4KLTx0aXRsZT5sd0lQOiBURlRQIHNlcnZlcjwvdGl0bGU+Cis8dGl0bGU+bHdJUDogVEZUUCBjbGllbnQvc2VydmVyPC90aXRsZT4KIDxsaW5rIGhyZWY9InRhYnMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcXVlcnkuanMiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZHluc2VjdGlvbnMuanMiPjwvc2NyaXB0PgpAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMDEsNyArMTAxLDcgQEAKIDxhIGhyZWY9IiNncm91cHMiPlRvcGljczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjbmVzdGVkLWNsYXNzZXMiPkRhdGEgU3RydWN0dXJlczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjZnVuYy1tZW1iZXJzIj5GdW5jdGlvbnM8L2E+ICA8L2Rpdj4KLSAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5URlRQIHNlcnZlcjxkaXYgY2xhc3M9ImluZ3JvdXBzIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19hcHBzLmh0bWwiPkFwcGxpY2F0aW9uczwvYT48L2Rpdj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5URlRQIGNsaWVudC9zZXJ2ZXI8ZGl2IGNsYXNzPSJpbmdyb3VwcyI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXBwcy5odG1sIj5BcHBsaWNhdGlvbnM8L2E+PC9kaXY+PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0taGVhZGVyLS0+CiA8ZGl2IGNsYXNzPSJjb250ZW50cyI+CiA8dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KQEAgLTExNywxMyArMTE3LDE1IEBACiA8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImZ1bmMtbWVtYmVycyIgbmFtZT0iZnVuYy1tZW1iZXJzIj48L2E+CiBGdW5jdGlvbnM8L2gyPjwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYTdhODA2NzNhMTMyNGRhNWM4YWUyNDQwYWY3YjAwOGEzIiBpZD0icl9nYTdhODA2NzNhMTMyNGRhNWM4YWUyNDQwYWY3YjAwOGEzIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhN2E4MDY3M2ExMzI0ZGE1YzhhZTI0NDBhZjdiMDA4YTMiPnRmdHBfaW5pdDwvYT4gKGNvbnN0IHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRmdHBfX2NvbnRleHQuaHRtbCI+dGZ0cF9jb250ZXh0PC9hPiAqY3R4KTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhN2E4MDY3M2ExMzI0ZGE1YzhhZTI0NDBhZjdiMDA4YTMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E3M2E5OGYwODExMjQ0ZDViZDI0ZDViOTU5ZGI4ZWQ0MCIgaWQ9InJfZ2E3M2E5OGYwODExMjQ0ZDViZDI0ZDViOTU5ZGI4ZWQ0MCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYTczYTk4ZjA4MTEyNDRkNWJkMjRkNWI5NTlkYjhlZDQwIj50ZnRwX2luaXRfc2VydmVyPC9hPiAoY29uc3Qgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dGZ0cF9fY29udGV4dC5odG1sIj50ZnRwX2NvbnRleHQ8L2E+ICpjdHgpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E3M2E5OGYwODExMjQ0ZDViZDI0ZDViOTU5ZGI4ZWQ0MCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWE2Yjc0M2E2NDI4NzIwNmFjYjgyNWJkNjA0NDhlNWY4IiBpZD0icl9nYWE2Yjc0M2E2NDI4NzIwNmFjYjgyNWJkNjA0NDhlNWY4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYTZiNzQzYTY0Mjg3MjA2YWNiODI1YmQ2MDQ0OGU1ZjgiPnRmdHBfaW5pdF9jbGllbnQ8L2E+IChjb25zdCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0ZnRwX19jb250ZXh0Lmh0bWwiPnRmdHBfY29udGV4dDwvYT4gKmN0eCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWE2Yjc0M2E2NDI4NzIwNmFjYjgyNWJkNjA0NDhlNWY4Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhYmI0YTRlMjRiNWM3ZWM4ZGY3MGVjNWE2OGEyMDZkZWMiIGlkPSJyX2dhYmI0YTRlMjRiNWM3ZWM4ZGY3MGVjNWE2OGEyMDZkZWMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FiYjRhNGUyNGI1YzdlYzhkZjcwZWM1YTY4YTIwNmRlYyI+dGZ0cF9jbGVhbnVwPC9hPiAodm9pZCk8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWJiNGE0ZTI0YjVjN2VjOGRmNzBlYzVhNjhhMjA2ZGVjIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgotPHA+VGhpcyBpcyBzaW1wbGUgVEZUUCBzZXJ2ZXIgZm9yIHRoZSBsd0lQIHJhdyBBUEkuIDwvcD4KKzxwPlRoaXMgaXMgc2ltcGxlIFRGVFAgY2xpZW50L3NlcnZlciBmb3IgdGhlIGx3SVAgcmF3IEFQSS4gWW91IG5lZWQgdG8gaW5jcmVhc2UgTUVNUF9OVU1fU1lTX1RJTUVPVVQgYnkgb25lIGlmIHlvdSB1c2UgVEZUUCEgPC9wPgogPGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iZ2FiYjRhNGUyNGI1YzdlYzhkZjcwZWM1YTY4YTIwNmRlYyIgbmFtZT0iZ2FiYjRhNGUyNGI1YzdlYzhkZjcwZWM1YTY4YTIwNmRlYyI+PC9hPgogPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhYmI0YTRlMjRiNWM3ZWM4ZGY3MGVjNWE2OGEyMDZkZWMiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPnRmdHBfY2xlYW51cCgpPC9oMj4KQEAgLTEzOSwxOCArMTQxLDQxIEBACiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPkRlaW5pdGlhbGl6ZSAoInR1cm4gb2ZmIikgVEZUUCBzZXJ2ZXIuIDwvcD4KKzxwPkRlaW5pdGlhbGl6ZSAoInR1cm4gb2ZmIikgVEZUUCBjbGllbnQvc2VydmVyLiA8L3A+CiAKIDwvZGl2PgogPC9kaXY+Ci08YSBpZD0iZ2E3YTgwNjczYTEzMjRkYTVjOGFlMjQ0MGFmN2IwMDhhMyIgbmFtZT0iZ2E3YTgwNjczYTEzMjRkYTVjOGFlMjQ0MGFmN2IwMDhhMyI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2dhN2E4MDY3M2ExMzI0ZGE1YzhhZTI0NDBhZjdiMDA4YTMiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPnRmdHBfaW5pdCgpPC9oMj4KKzxhIGlkPSJnYWE2Yjc0M2E2NDI4NzIwNmFjYjgyNWJkNjA0NDhlNWY4IiBuYW1lPSJnYWE2Yjc0M2E2NDI4NzIwNmFjYjgyNWJkNjA0NDhlNWY4Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FhNmI3NDNhNjQyODcyMDZhY2I4MjViZDYwNDQ4ZTVmOCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+dGZ0cF9pbml0X2NsaWVudCgpPC9oMj4KIAogPGRpdiBjbGFzcz0ibWVtaXRlbSI+CiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CiAgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgogICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IHRmdHBfaW5pdCA8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiB0ZnRwX2luaXRfY2xpZW50IDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5jb25zdCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R0ZnRwX19jb250ZXh0Lmh0bWwiPnRmdHBfY29udGV4dDwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+Y3R4PC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkluaXRpYWxpemUgVEZUUCBjbGllbnQuIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+Y3R4PC90ZD48dGQ+VEZUUCBjYWxsYmFjayBzdHJ1Y3QgPC90ZD48L3RyPgorICA8L3RhYmxlPgorICA8L2RkPgorPC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJnYTczYTk4ZjA4MTEyNDRkNWJkMjRkNWI5NTlkYjhlZDQwIiBuYW1lPSJnYTczYTk4ZjA4MTEyNDRkNWJkMjRkNWI5NTlkYjhlZDQwIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2E3M2E5OGYwODExMjQ0ZDViZDI0ZDViOTU5ZGI4ZWQ0MCI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+dGZ0cF9pbml0X3NlcnZlcigpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IHRmdHBfaW5pdF9zZXJ2ZXIgPC90ZD4KICAgICAgICAgICA8dGQ+KDwvdGQ+CiAgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHRmdHBfX2NvbnRleHQuaHRtbCI+dGZ0cF9jb250ZXh0PC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5jdHg8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KICAgICAgICAgICA8dGQ+PC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX190ZnRwLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RmdHAuanMKaW5kZXggZTc0MTI2MS4uNDA4MTU4MCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RmdHAuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RmdHAuanMKQEAgLTMsMTAgKzMsMTIgQEAKICAgICBbICJPcHRpb25zIiwgImdyb3VwX190ZnRwX19vcHRzLmh0bWwiLCAiZ3JvdXBfX3RmdHBfX29wdHMiIF0sCiAgICAgWyAidGZ0cF9jb250ZXh0IiwgInN0cnVjdHRmdHBfX2NvbnRleHQuaHRtbCIsIFsKICAgICAgIFsgImNsb3NlIiwgInN0cnVjdHRmdHBfX2NvbnRleHQuaHRtbCNhZTkxODFjNTdkMWNmODliYzI2M2Y3NjcxZTU2MzBhNjUiLCBudWxsIF0sCisgICAgICBbICJlcnJvciIsICJzdHJ1Y3R0ZnRwX19jb250ZXh0Lmh0bWwjYTM5Y2JiODRhOWMwZWFhOGVhNjJkMTgzYmE4MjE0NTE5IiwgbnVsbCBdLAogICAgICAgWyAib3BlbiIsICJzdHJ1Y3R0ZnRwX19jb250ZXh0Lmh0bWwjYTY1ZDYzNTllMmFhYzU3MTgxM2MwNWM2MTY3NmMwMWExIiwgbnVsbCBdLAogICAgICAgWyAicmVhZCIsICJzdHJ1Y3R0ZnRwX19jb250ZXh0Lmh0bWwjYTc0OGUzN2RmMGM4Yjg0YjNhZGRhNzhkNjAzYjkwMzNjIiwgbnVsbCBdLAogICAgICAgWyAid3JpdGUiLCAic3RydWN0dGZ0cF9fY29udGV4dC5odG1sI2E5ZTZlNGVjODAzZWM5NTk3ODIyOTIzMzY5NzAxNzU0ZCIsIG51bGwgXQogICAgIF0gXSwKICAgICBbICJ0ZnRwX2NsZWFudXAiLCAiZ3JvdXBfX3RmdHAuaHRtbCNnYWJiNGE0ZTI0YjVjN2VjOGRmNzBlYzVhNjhhMjA2ZGVjIiwgbnVsbCBdLAotICAgIFsgInRmdHBfaW5pdCIsICJncm91cF9fdGZ0cC5odG1sI2dhN2E4MDY3M2ExMzI0ZGE1YzhhZTI0NDBhZjdiMDA4YTMiLCBudWxsIF0KKyAgICBbICJ0ZnRwX2luaXRfY2xpZW50IiwgImdyb3VwX190ZnRwLmh0bWwjZ2FhNmI3NDNhNjQyODcyMDZhY2I4MjViZDYwNDQ4ZTVmOCIsIG51bGwgXSwKKyAgICBbICJ0ZnRwX2luaXRfc2VydmVyIiwgImdyb3VwX190ZnRwLmh0bWwjZ2E3M2E5OGYwODExMjQ0ZDViZDI0ZDViOTU5ZGI4ZWQ0MCIsIG51bGwgXQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdGZ0cF9fb3B0cy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3RmdHBfX29wdHMuaHRtbAppbmRleCA0Yjg1MDc4Li44ZTgxMzllIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdGZ0cF9fb3B0cy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2dyb3VwX190ZnRwX19vcHRzLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtOTksNyArOTksNyBAQAogPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgPGRpdiBjbGFzcz0ic3VtbWFyeSI+CiA8YSBocmVmPSIjZGVmaW5lLW1lbWJlcnMiPk1hY3JvczwvYT4gIDwvZGl2PgotICA8ZGl2IGNsYXNzPSJoZWFkZXJ0aXRsZSI+PGRpdiBjbGFzcz0idGl0bGUiPk9wdGlvbnM8ZGl2IGNsYXNzPSJpbmdyb3VwcyI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fYXBwcy5odG1sIj5BcHBsaWNhdGlvbnM8L2E+ICZyYXF1bzsgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fdGZ0cC5odG1sIj5URlRQIHNlcnZlcjwvYT48L2Rpdj48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5PcHRpb25zPGRpdiBjbGFzcz0iaW5ncm91cHMiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FwcHMuaHRtbCI+QXBwbGljYXRpb25zPC9hPiAmcmFxdW87IDxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3RmdHAuaHRtbCI+VEZUUCBjbGllbnQvc2VydmVyPC9hPjwvZGl2PjwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLWhlYWRlci0tPgogPGRpdiBjbGFzcz0iY29udGVudHMiPgogPHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+CkBAIC0xMTcsNyArMTE3LDcgQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhM2U2Y2FhY2IzZjRkNDNmNzgwYjJkNjhmZmU0MjU4ZWEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E4ZTk3NTkwMGI0Mzk3MzEzZjFhNjQ5ZmY3NmEzMDYzYiIgaWQ9InJfZ2E4ZTk3NTkwMGI0Mzk3MzEzZjFhNjQ5ZmY3NmEzMDYzYiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNnYThlOTc1OTAwYjQzOTczMTNmMWE2NDlmZjc2YTMwNjNiIj5URlRQX01BWF9GSUxFTkFNRV9MRU48L2E+JiMxNjA7JiMxNjA7JiMxNjA7MjA8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYThlOTc1OTAwYjQzOTczMTNmMWE2NDlmZjc2YTMwNjNiIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhYThhNDQ5YzI1ZTM3YmU3NTdmNWVmY2NkNDIyYzkwNTUiIGlkPSJyX2dhYThhNDQ5YzI1ZTM3YmU3NTdmNWVmY2NkNDIyYzkwNTUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjZ2FhOGE0NDljMjVlMzdiZTc1N2Y1ZWZjY2Q0MjJjOTA1NSI+VEZUUF9NQVhfTU9ERV9MRU48L2E+JiMxNjA7JiMxNjA7JiMxNjA7NzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWE4YTQ0OWMyNWUzN2JlNzU3ZjVlZmNjZDQyMmM5MDU1IiBpZD0icl9nYWE4YTQ0OWMyNWUzN2JlNzU3ZjVlZmNjZDQyMmM5MDU1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2dhYThhNDQ5YzI1ZTM3YmU3NTdmNWVmY2NkNDIyYzkwNTUiPlRGVFBfTUFYX01PREVfTEVOPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzEwPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FhOGE0NDljMjVlMzdiZTc1N2Y1ZWZjY2Q0MjJjOTA1NSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KQEAgLTE1OSw3ICsxNTksNyBAQAogPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgogICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KICAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBURlRQX01BWF9NT0RFX0xFTiYjMTYwOyYjMTYwOyYjMTYwOzc8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBURlRQX01BWF9NT0RFX0xFTiYjMTYwOyYjMTYwOyYjMTYwOzEwPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3VkcF9fcmF3Lmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdWRwX19yYXcuaHRtbAppbmRleCBmYzA1NjBjLi4xMDdlODE2IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdWRwX19yYXcuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9fdWRwX19yYXcuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMzIsNyArMTMyLDcgQEAKIDwvdGFibGU+CiA8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KIDxwPlVzZXIgRGF0YWdyYW0gUHJvdG9jb2wgbW9kdWxlPGJyICAvPgotPC9wPjxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FwaS5odG1sIj5BUElzPC9hPiA8L2RkPjwvZGw+CisgPC9wPjxkbCBjbGFzcz0ic2VjdGlvbiBzZWUiPjxkdD5TZWUgYWxzbzwvZHQ+PGRkPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2FwaS5odG1sIj5BUElzPC9hPiA8L2RkPjwvZGw+CiA8aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KIDxhIGlkPSJnYWM3ZmJkYThiMTJiOWI5MzYwZTkyYjUxZTgwNWU3OTllIiBuYW1lPSJnYWM3ZmJkYThiMTJiOWI5MzYwZTkyYjUxZTgwNWU3OTllIj48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjZ2FjN2ZiZGE4YjEyYjliOTM2MGU5MmI1MWU4MDVlNzk5ZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+dWRwX2JpbmQoKTwvaDI+CkBAIC0zMDYsNyArMzA2LDcgQEAKIDxwPkNyZWF0ZSBhIFVEUCBQQ0IgZm9yIHNwZWNpZmljIElQIHR5cGUuIFRoZSBwY2IgaXMgbm90IGFjdGl2ZSB1bnRpbCBpdCBoYXMgZWl0aGVyIGJlZW4gYm91bmQgdG8gYSBsb2NhbCBhZGRyZXNzIG9yIGNvbm5lY3RlZCB0byBhIHJlbW90ZSBhZGRyZXNzLiA8L3A+PGRsIGNsYXNzPSJzZWN0aW9uIHNlZSI+PGR0PlNlZSBhbHNvPC9kdD48ZGQ+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fb3B0c19fbWVtcC5odG1sI2dhMmM0MTZkYTQ4MWFiMDliZDFiYTI1N2I3NWEwNzA3ZWIiPk1FTVBfTlVNX1VEUF9QQ0I8L2E+PC9kZD48L2RsPgogPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CiAgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnR5cGU8L3RkPjx0ZD5JUCBhZGRyZXNzIHR5cGUsIHNlZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWYyMTQyZjBkZmRjYzkzOGUyZGIxNmFhNzQ1ZWQ1ODVjIj5sd2lwX2lwX2FkZHJfdHlwZTwvYT4gZGVmaW5pdGlvbnMuIElmIHlvdSB3YW50IHRvIGxpc3RlbiB0byBJUHY0IGFuZCBJUHY2IChkdWFsLXN0YWNrKSBwYWNrZXRzLCBzdXBwbHkgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2dhZjIxNDJmMGRmZGNjOTM4ZTJkYjE2YWE3NDVlZDU4NWNhYzZiMmM5OWNmOTIwZTA4ZWZjYjU1ZGM0MGU0Mjk0NGUiPklQQUREUl9UWVBFX0FOWTwvYT4gYXMgYXJndW1lbnQgYW5kIGJpbmQgdG8gSVBfQU5ZX1RZUEUuIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnR5cGU8L3RkPjx0ZD5JUCBhZGRyZXNzIHR5cGUsIHNlZSA8YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWYyMTQyZjBkZmRjYzkzOGUyZGIxNmFhNzQ1ZWQ1ODVjIj5sd2lwX2lwX2FkZHJfdHlwZTwvYT4gZGVmaW5pdGlvbnMuIElmIHlvdSB3YW50IHRvIGxpc3RlbiB0byBJUHY0IGFuZCBJUHY2IChkdWFsLXN0YWNrKSBwYWNrZXRzLCBzdXBwbHkgPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2dhZjIxNDJmMGRmZGNjOTM4ZTJkYjE2YWE3NDVlZDU4NWNhYzZiMmM5OWNmOTIwZTA4ZWZjYjU1ZGM0MGU0Mjk0NGUiPklQQUREUl9UWVBFX0FOWTwvYT4gYXMgYXJndW1lbnQgYW5kIGJpbmQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2FiZTQzYjE1NDUzM2I3MzU4NWM0ZTU4ZjU2ODM3MGVkZSI+SVBfQU5ZX1RZUEU8L2E+LiA8L3RkPjwvdHI+CiAgIDwvdGFibGU+CiAgIDwvZGQ+CiA8L2RsPgpAQCAtMzY0LDggKzM2NCw3IEBACiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPlJlbW92ZXMgYW5kIGRlYWxsb2NhdGVzIHRoZSBwY2IuIDxiciAgLz4KLTwvcD4KKzxwPlJlbW92ZXMgYW5kIGRlYWxsb2NhdGVzIHRoZSBwY2IuPC9wPgogPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CiAgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KICAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnBjYjwvdGQ+PHRkPlVEUCBQQ0IgdG8gYmUgcmVtb3ZlZC4gVGhlIFBDQiBpcyByZW1vdmVkIGZyb20gdGhlIGxpc3Qgb2YgVURQIFBDQidzIGFuZCB0aGUgZGF0YSBzdHJ1Y3R1cmUgaXMgZnJlZWQgZnJvbSBtZW1vcnkuPC90ZD48L3RyPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvZ3JvdXBfX3plcGlmLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9femVwaWYuaHRtbAppbmRleCBlNWJjYTE1Li5mMTQxM2RiIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9femVwaWYuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9ncm91cF9femVwaWYuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTQsMTEgKzExNCwxMSBAQAogPGRpdiBjbGFzcz0ibGluZSI+PGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9Imdyb3VwX19uZXRpZl9faXA2Lmh0bWwjZ2FlODY0MjExYTVlYjA1MmRlYjVkYTdiYzdlMzQyN2ZiOSI+bmV0aWZfY3JlYXRlX2lwNl9saW5rbG9jYWxfYWRkcmVzczwvYT4oJmFtcDt6ZXBfbmV0aWYsIDEpOzwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+PGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhZjE5NjkzYmU0MDFhMjY1YTUyZDJhNTZjNjU3NTMxMjEiPm5ldGlmX3NldF91cDwvYT4oJmFtcDt6ZXBfbmV0aWYpOzwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+PGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhZTBkMjk3NWYxODkyNzc5OTBlOWQ1Mjc2ZmRkOWU5ZWEiPm5ldGlmX3NldF9saW5rX3VwPC9hPigmYW1wO3plcF9uZXRpZik7PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX19pcDZfaHRtbF9nYWU4NjQyMTFhNWViMDUyZGViNWRhN2JjN2UzNDI3ZmI5Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZl9faXA2Lmh0bWwjZ2FlODY0MjExYTVlYjA1MmRlYjVkYTdiYzdlMzQyN2ZiOSI+bmV0aWZfY3JlYXRlX2lwNl9saW5rbG9jYWxfYWRkcmVzczwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfY3JlYXRlX2lwNl9saW5rbG9jYWxfYWRkcmVzcyhzdHJ1Y3QgbmV0aWYgKm5ldGlmLCB1OF90IGZyb21fbWFjXzQ4Yml0KTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjE1MTU8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYTIyMDU1NzU5YTI1ZjVkNmNlYTdlN2RlYWIwYTA3NDM0Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMjIwNTU3NTlhMjVmNWQ2Y2VhN2U3ZGVhYjBhMDc0MzQiPm5ldGlmX2FkZDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnN0cnVjdCBuZXRpZiAqIG5ldGlmX2FkZChzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBjb25zdCBpcDRfYWRkcl90ICppcGFkZHIsIGNvbnN0IGlwNF9hZGRyX3QgKm5ldG1hc2ssIGNvbnN0IGlwNF9hZGRyX3QgKmd3LCB2b2lkICpzdGF0ZSwgbmV0aWZfaW5pdF9mbiBpbml0LCBuZXRpZl9pbnB1dF9mbiBpbnB1dCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuYzoyNzY8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYWUwZDI5NzVmMTg5Mjc3OTkwZTlkNTI3NmZkZDllOWVhIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhZTBkMjk3NWYxODkyNzc5OTBlOWQ1Mjc2ZmRkOWU5ZWEiPm5ldGlmX3NldF9saW5rX3VwPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBuZXRpZl9zZXRfbGlua191cChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjk5MTwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYWdyb3VwX19uZXRpZl9odG1sX2dhZjE5NjkzYmU0MDFhMjY1YTUyZDJhNTZjNjU3NTMxMjEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX25ldGlmLmh0bWwjZ2FmMTk2OTNiZTQwMWEyNjVhNTJkMmE1NmM2NTc1MzEyMSI+bmV0aWZfc2V0X3VwPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBuZXRpZl9zZXRfdXAoc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuYzo4NDc8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fc2l4bG93cGFuX2h0bWxfZ2E5ZDliOTNjNDdkZDEzOGZkODRhNTAzZmZlY2I5MzM2YiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJncm91cF9fc2l4bG93cGFuLmh0bWwjZ2E5ZDliOTNjNDdkZDEzOGZkODRhNTAzZmZlY2I5MzM2YiI+dGNwaXBfNmxvd3Bhbl9pbnB1dDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IHRjcGlwXzZsb3dwYW5faW5wdXQoc3RydWN0IHBidWYgKnAsIHN0cnVjdCBuZXRpZiAqaW5wKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBsb3dwYW42LmM6OTE0PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX25ldGlmX19pcDZfaHRtbF9nYWU4NjQyMTFhNWViMDUyZGViNWRhN2JjN2UzNDI3ZmI5Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZl9faXA2Lmh0bWwjZ2FlODY0MjExYTVlYjA1MmRlYjVkYTdiYzdlMzQyN2ZiOSI+bmV0aWZfY3JlYXRlX2lwNl9saW5rbG9jYWxfYWRkcmVzczwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfY3JlYXRlX2lwNl9saW5rbG9jYWxfYWRkcmVzcyhzdHJ1Y3QgbmV0aWYgKm5ldGlmLCB1OF90IGZyb21fbWFjXzQ4Yml0KTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjE1NTE8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYTIyMDU1NzU5YTI1ZjVkNmNlYTdlN2RlYWIwYTA3NDM0Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhMjIwNTU3NTlhMjVmNWQ2Y2VhN2U3ZGVhYjBhMDc0MzQiPm5ldGlmX2FkZDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnN0cnVjdCBuZXRpZiAqIG5ldGlmX2FkZChzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBjb25zdCBpcDRfYWRkcl90ICppcGFkZHIsIGNvbnN0IGlwNF9hZGRyX3QgKm5ldG1hc2ssIGNvbnN0IGlwNF9hZGRyX3QgKmd3LCB2b2lkICpzdGF0ZSwgbmV0aWZfaW5pdF9mbiBpbml0LCBuZXRpZl9pbnB1dF9mbiBpbnB1dCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuYzoyODc8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYWUwZDI5NzVmMTg5Mjc3OTkwZTlkNTI3NmZkZDllOWVhIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhZTBkMjk3NWYxODkyNzc5OTBlOWQ1Mjc2ZmRkOWU5ZWEiPm5ldGlmX3NldF9saW5rX3VwPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+dm9pZCBuZXRpZl9zZXRfbGlua191cChzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5jOjEwMTg8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9fbmV0aWZfaHRtbF9nYWYxOTY5M2JlNDAxYTI2NWE1MmQyYTU2YzY1NzUzMTIxIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9Imdyb3VwX19uZXRpZi5odG1sI2dhZjE5NjkzYmU0MDFhMjY1YTUyZDJhNTZjNjU3NTMxMjEiPm5ldGlmX3NldF91cDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnZvaWQgbmV0aWZfc2V0X3VwKHN0cnVjdCBuZXRpZiAqbmV0aWYpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IG5ldGlmLmM6ODcxPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhZ3JvdXBfX3NpeGxvd3Bhbl9odG1sX2dhOWQ5YjkzYzQ3ZGQxMzhmZDg0YTUwM2ZmZWNiOTMzNmIiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX3NpeGxvd3Bhbi5odG1sI2dhOWQ5YjkzYzQ3ZGQxMzhmZDg0YTUwM2ZmZWNiOTMzNmIiPnRjcGlwXzZsb3dwYW5faW5wdXQ8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCB0Y3BpcF82bG93cGFuX2lucHV0KHN0cnVjdCBwYnVmICpwLCBzdHJ1Y3QgbmV0aWYgKmlucCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbG93cGFuNi5jOjkxNTwvZGl2PjwvZGl2PgogPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdHplcGlmX19pbml0X2h0bWwiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0emVwaWZfX2luaXQuaHRtbCI+emVwaWZfaW5pdDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gemVwaWYuaDo1ODwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT4gPGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iZ2FkNjFhNmQ5YzFhYjE3ZTViMmMyYzNlYjliNDJjYzAwNCIgbmFtZT0iZ2FkNjFhNmQ5YzFhYjE3ZTViMmMyYzNlYjliNDJjYzAwNCI+PC9hPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaHR0cF9fY2xpZW50XzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9odHRwX19jbGllbnRfOGMuaHRtbAppbmRleCA3MzhhOWJjLi40ZGRkMWRjIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9odHRwX19jbGllbnRfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9odHRwX19jbGllbnRfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9odHRwX19jbGllbnRfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2h0dHBfX2NsaWVudF84aC5odG1sCmluZGV4IDE1YzdhYjguLjg5ODM4OTUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2h0dHBfX2NsaWVudF84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2h0dHBfX2NsaWVudF84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2h0dHBkXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9odHRwZF84Yy5odG1sCmluZGV4IDA0MDhkOTIuLjU0ODUyODIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2h0dHBkXzhjLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaHR0cGRfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9odHRwZF84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaHR0cGRfOGguaHRtbAppbmRleCA1NzJkYjAzLi5iOTFlZWM5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9odHRwZF84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2h0dHBkXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaHR0cGRfX29wdHNfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2h0dHBkX19vcHRzXzhoLmh0bWwKaW5kZXggN2FmMWZlYy4uNjhhNTFmMiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaHR0cGRfX29wdHNfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9odHRwZF9fb3B0c184aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTExNyw2ICsxMTcsOCBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E1MjA4NTg3NzhiODRkNGQyZmExMjUyOTRjMGYxMTllNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWJhMmQ0Y2ZlNGMxZjViZGJlMzdiMzM5MDg0YTdkNDY2IiBpZD0icl9nYWJhMmQ0Y2ZlNGMxZjViZGJlMzdiMzM5MDg0YTdkNDY2Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FiYTJkNGNmZTRjMWY1YmRiZTM3YjMzOTA4NGE3ZDQ2NiI+TFdJUF9IVFRQRF9TU0lfQllfRklMRV9FWFRFTlNJT048L2E+JiMxNjA7JiMxNjA7JiMxNjA7MTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYmEyZDRjZmU0YzFmNWJkYmUzN2IzMzkwODRhN2Q0NjYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwMDZiYWE3MjE5Y2ZmNWVlMDJmNWExNGVmN2Q3Yzg5ZCIgaWQ9InJfZ2EwMDZiYWE3MjE5Y2ZmNWVlMDJmNWExNGVmN2Q3Yzg5ZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhMDA2YmFhNzIxOWNmZjVlZTAyZjVhMTRlZjdkN2M4OWQiPkxXSVBfSFRUUERfU1NJX0VYVEVOU0lPTlM8L2E+JiMxNjA7JiMxNjA7JiMxNjA7JnF1b3Q7LnNodG1sJnF1b3Q7LCAmcXVvdDsuc2h0bSZxdW90OywgJnF1b3Q7LnNzaSZxdW90OywgJnF1b3Q7LnhtbCZxdW90OywgJnF1b3Q7Lmpzb24mcXVvdDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTAwNmJhYTcyMTljZmY1ZWUwMmY1YTE0ZWY3ZDdjODlkIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhY2JlYTA2Y2UzMzkzM2UzZWYyZjJmMTgzNGEyMWNjMmMiIGlkPSJyX2dhY2JlYTA2Y2UzMzkzM2UzZWYyZjJmMTgzNGEyMWNjMmMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYWNiZWEwNmNlMzM5MzNlM2VmMmYyZjE4MzRhMjFjYzJjIj5MV0lQX0hUVFBEX1NVUFBPUlRfUE9TVDwvYT4mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FjYmVhMDZjZTMzOTMzZTNlZjJmMmYxODM0YTIxY2MyYyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTMxNjdkNTJkMjBjZjkwODU3ZTJjODA5YjkyNDU4YmYwIiBpZD0icl9nYTMxNjdkNTJkMjBjZjkwODU3ZTJjODA5YjkyNDU4YmYwIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2EzMTY3ZDUyZDIwY2Y5MDg1N2UyYzgwOWI5MjQ1OGJmMCI+TFdJUF9IVFRQRF9TU0lfTVVMVElQQVJUPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzA8L3RkPjwvdHI+CkBAIC0xNzcsNiArMTc5LDggQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMWVlOGQ3Yzk3NWM3ZTNkMWM5ZDlkZDliNDM2NjBjNzkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FlZGQwZmEzZDM1NjE3MGQ4Y2EzNTU3YWNiNDEwZmQ3YyIgaWQ9InJfZ2FlZGQwZmEzZDM1NjE3MGQ4Y2EzNTU3YWNiNDEwZmQ3YyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhZWRkMGZhM2QzNTYxNzBkOGNhMzU1N2FjYjQxMGZkN2MiPkxXSVBfSFRUUERfRklMRV9TVEFURTwvYT4mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FlZGQwZmEzZDM1NjE3MGQ4Y2EzNTU3YWNiNDEwZmQ3YyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWEzNjQ4YTlmZGVmZTNhYjFjODkwYjcxNWE0Nzg2NDI5IiBpZD0icl9nYWEzNjQ4YTlmZGVmZTNhYjFjODkwYjcxNWE0Nzg2NDI5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FhMzY0OGE5ZmRlZmUzYWIxYzg5MGI3MTVhNDc4NjQyOSI+TFdJUF9IVFRQRF9GSUxFX0VYVEVOU0lPTjwvYT4mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FhMzY0OGE5ZmRlZmUzYWIxYzg5MGI3MTVhNDc4NjQyOSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTZlNWRlODUxNWM4OWFmMTIyNzdlNGNiMDExMTY1MTAzIiBpZD0icl9nYTZlNWRlODUxNWM4OWFmMTIyNzdlNGNiMDExMTY1MTAzIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2E2ZTVkZTg1MTVjODlhZjEyMjc3ZTRjYjAxMTE2NTEwMyI+SFRUUERfUFJFQ0FMQ1VMQVRFRF9DSEVDS1NVTTwvYT4mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E2ZTVkZTg1MTVjODlhZjEyMjc3ZTRjYjAxMTE2NTEwMyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTUxY2I2NzNjYjVjYzM2MmFjYzQwOWYyM2MxZTBhMzMxIiBpZD0icl9nYTUxY2I2NzNjYjVjYzM2MmFjYzQwOWYyM2MxZTBhMzMxIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2E1MWNiNjczY2I1Y2MzNjJhY2M0MDlmMjNjMWUwYTMzMSI+TFdJUF9IVFRQRF9GU19BU1lOQ19SRUFEPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzA8L3RkPjwvdHI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9odHRwZF9fb3B0c184aC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2h0dHBkX19vcHRzXzhoLmpzCmluZGV4IGJiMjY1M2QuLjVjODU2NDkgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2h0dHBkX19vcHRzXzhoLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2h0dHBkX19vcHRzXzhoLmpzCkBAIC0xOCw2ICsxOCw3IEBACiAgICAgWyAiTFdJUF9IVFRQRF9DVVNUT01fRklMRVMiLCAiZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FkYWRiNzBmNTY2M2NkZjAwNGJmODc5ZTNiNWQzMjZiZCIsIG51bGwgXSwKICAgICBbICJMV0lQX0hUVFBEX0RZTkFNSUNfRklMRV9SRUFEIiwgImdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhMWVlOGQ3Yzk3NWM3ZTNkMWM5ZDlkZDliNDM2NjBjNzkiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9IVFRQRF9EWU5BTUlDX0hFQURFUlMiLCAiZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2E3NTkzMmZjNWVlYjlhYmVkZGZkYWY4NDEzNTc0YzZkNyIsIG51bGwgXSwKKyAgICBbICJMV0lQX0hUVFBEX0ZJTEVfRVhURU5TSU9OIiwgImdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhYTM2NDhhOWZkZWZlM2FiMWM4OTBiNzE1YTQ3ODY0MjkiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9IVFRQRF9GSUxFX1NUQVRFIiwgImdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhZWRkMGZhM2QzNTYxNzBkOGNhMzU1N2FjYjQxMGZkN2MiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9IVFRQRF9GU19BU1lOQ19SRUFEIiwgImdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhNTFjYjY3M2NiNWNjMzYyYWNjNDA5ZjIzYzFlMGEzMzEiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9IVFRQRF9LSUxMX09MRF9PTl9DT05ORUNUSU9OU19FWENFRURFRCIsICJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTBkNTA3NDk2NWVmZDQwNzg2MTgyMjg3ODk1ZmViNjkxIiwgbnVsbCBdLApAQCAtMjksNiArMzAsNyBAQAogICAgIFsgIkxXSVBfSFRUUERfUkVRX1FVRVVFTEVOIiwgImdyb3VwX19odHRwZF9fb3B0cy5odG1sI2dhZWYyM2Y0ZTM1MjVhYTVkZDBlY2JjZTliNWUxNmQ0ZTAiLCBudWxsIF0sCiAgICAgWyAiTFdJUF9IVFRQRF9TU0kiLCAiZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2FjYjcwZTBjZGQzMGE5NDBmOGJjZTY4MWM2Y2M2Mzk0OSIsIG51bGwgXSwKICAgICBbICJMV0lQX0hUVFBEX1NTSV9CWV9GSUxFX0VYVEVOU0lPTiIsICJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYWJhMmQ0Y2ZlNGMxZjViZGJlMzdiMzM5MDg0YTdkNDY2IiwgbnVsbCBdLAorICAgIFsgIkxXSVBfSFRUUERfU1NJX0VYVEVOU0lPTlMiLCAiZ3JvdXBfX2h0dHBkX19vcHRzLmh0bWwjZ2EwMDZiYWE3MjE5Y2ZmNWVlMDJmNWExNGVmN2Q3Yzg5ZCIsIG51bGwgXSwKICAgICBbICJMV0lQX0hUVFBEX1NTSV9JTkNMVURFX1RBRyIsICJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTk3NTk2MWE2ZDIyZDFhMDc3MTE4ZmI4NWRmZWM4MDlhIiwgbnVsbCBdLAogICAgIFsgIkxXSVBfSFRUUERfU1NJX01VTFRJUEFSVCIsICJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTMxNjdkNTJkMjBjZjkwODU3ZTJjODA5YjkyNDU4YmYwIiwgbnVsbCBdLAogICAgIFsgIkxXSVBfSFRUUERfU1NJX1JBVyIsICJncm91cF9faHR0cGRfX29wdHMuaHRtbCNnYTUyMDg1ODc3OGI4NGQ0ZDJmYTEyNTI5NGMwZjExOWU1IiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWFuYV84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWFuYV84aC5odG1sCmluZGV4IDFkNDI0ZmIuLjk3ZmIxYzAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lhbmFfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pYW5hXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWNtcDZfOGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2ljbXA2XzhjLmh0bWwKaW5kZXggNzA5ZGI1OC4uMDExYWQ4MCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWNtcDZfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pY21wNl84Yy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2ljbXA2XzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pY21wNl84aC5odG1sCmluZGV4IDFhNzdmYTAuLjcxYjVhOTIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2ljbXA2XzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWNtcDZfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pY21wXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pY21wXzhjLmh0bWwKaW5kZXggMzIyOWE0My4uMzdlMmYyOSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWNtcF84Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2ljbXBfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pY21wXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pY21wXzhoLmh0bWwKaW5kZXggOWM5MWQ5Mi4uMzYyZjUyNiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWNtcF84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2ljbXBfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pZWVlODAyMTU0XzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pZWVlODAyMTU0XzhoLmh0bWwKaW5kZXggN2M2MGYwNi4uZWU0NWY5MCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWVlZTgwMjE1NF84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2llZWU4MDIxNTRfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pZWVlXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pZWVlXzhoLmh0bWwKaW5kZXggZDQwNmM2NC4uZDYwOTQzNCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWVlZV84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2llZWVfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pZl84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWZfOGguaHRtbAppbmRleCA0MGMzZjhhLi40YzUwODg0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pZl84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lmXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWZfX2FwaV84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWZfX2FwaV84Yy5odG1sCmluZGV4IDEzNWI1YzQuLjRiZmM5M2EgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lmX19hcGlfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pZl9fYXBpXzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWZfX2FwaV84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWZfX2FwaV84aC5odG1sCmluZGV4IDU5YjA4NWIuLjAzYjAwMWQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lmX19hcGlfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pZl9fYXBpXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWdtcF84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWdtcF84Yy5odG1sCmluZGV4IGRhZGEzZDYuLjMyOThiMmIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lnbXBfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pZ21wXzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWdtcF84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaWdtcF84aC5odG1sCmluZGV4IDBiZmU1OTMuLjRlMDg2NDEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lnbXBfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pZ21wXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5kZXguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2luZGV4Lmh0bWwKaW5kZXggZTFjYTg2ZS4uZjI2Y2JjMCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5kZXguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pbmRleC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTExOSwxMiArMTE5LDEzIEBACiAgICAgbXVsdGlwbGUgbmV0d29yayBpbnRlcmZhY2VzCiAgICogSUNNUCAoSW50ZXJuZXQgQ29udHJvbCBNZXNzYWdlIFByb3RvY29sKSBmb3IgbmV0d29yayBtYWludGVuYW5jZSBhbmQgZGVidWdnaW5nCiAgICogSUdNUCAoSW50ZXJuZXQgR3JvdXAgTWFuYWdlbWVudCBQcm90b2NvbCkgZm9yIG11bHRpY2FzdCB0cmFmZmljIG1hbmFnZW1lbnQKLSAgKiBNTEQgKE11bHRpY2FzdCBsaXN0ZW5lciBkaXNjb3ZlcnkgZm9yIElQdjYpLiBBaW1zIHRvIGJlIGNvbXBsaWFudCB3aXRoIAorICAqIE1MRCAoTXVsdGljYXN0IGxpc3RlbmVyIGRpc2NvdmVyeSBmb3IgSVB2NikuIEFpbXMgdG8gYmUgY29tcGxpYW50IHdpdGgKICAgICBSRkMgMjcxMC4gTm8gc3VwcG9ydCBmb3IgTUxEdjIKICAgKiBORCAoTmVpZ2hib3IgZGlzY292ZXJ5IGFuZCBzdGF0ZWxlc3MgYWRkcmVzcyBhdXRvY29uZmlndXJhdGlvbiBmb3IgSVB2NikuCiAgICAgQWltcyB0byBiZSBjb21wbGlhbnQgd2l0aCBSRkMgNDg2MSAoTmVpZ2hib3IgZGlzY292ZXJ5KSBhbmQgUkZDIDQ4NjIKICAgICAoQWRkcmVzcyBhdXRvY29uZmlndXJhdGlvbikKLSAgKiBESENQLCBBdXRvSVAvQVBJUEEgKFplcm9jb25mKSBhbmQgKHN0YXRlbGVzcykgREhDUHY2CisgICogREhDUCwgQXV0b0lQL0FQSVBBIChaZXJvY29uZiksIEFDRCAoQWRkcmVzcyBDb25mbGljdCBEZXRlY3Rpb24pCisgICAgYW5kIChzdGF0ZWxlc3MpIERIQ1B2NgogICAqIFVEUCAoVXNlciBEYXRhZ3JhbSBQcm90b2NvbCkgaW5jbHVkaW5nIGV4cGVyaW1lbnRhbCBVRFAtbGl0ZSBleHRlbnNpb25zCiAgICogVENQIChUcmFuc21pc3Npb24gQ29udHJvbCBQcm90b2NvbCkgd2l0aCBjb25nZXN0aW9uIGNvbnRyb2wsIFJUVCBlc3RpbWF0aW9uCiAgICAgZmFzdCByZWNvdmVyeS9mYXN0IHJldHJhbnNtaXQgYW5kIHNlbmRpbmcgU0FDS3MKQEAgLTE2NSwzNyArMTY2LDM5IEBACiBtYWlsaW5nIGxpc3QuIEEgY29yZSB0ZWFtIG9mIGRldmVsb3BlcnMgd2lsbCBjb21taXQgY2hhbmdlcyB0byB0aGUKIEdpdCBzb3VyY2UgdHJlZS4KIAotVGhlIGx3SVAgVENQL0lQIHN0YWNrIGlzIG1haW50YWluZWQgaW4gdGhlICdsd2lwJyBHaXQgbW9kdWxlIGFuZAotY29udHJpYnV0aW9ucyAoc3VjaCBhcyBwbGF0Zm9ybSBwb3J0cykgYXJlIGluIHRoZSAnY29udHJpYicgR2l0IG1vZHVsZS4KK1RoZSBsd0lQIFRDUC9JUCBzdGFjayBpcyBtYWludGFpbmVkIGluIHRoZSAnc3JjJyBkaXJlY3RvcnkgYW5kCitjb250cmlidXRpb25zIChzdWNoIGFzIHBsYXRmb3JtIHBvcnRzIGFuZCBhcHBsaWNhdGlvbnMpIGFyZSBpbgordGhlICdjb250cmliJyBkaXJlY3RvcnkuCiAKIFNlZSBkb2Mvc2F2YW5uYWgudHh0IGZvciBkZXRhaWxzIG9uIEdpdCBzZXJ2ZXIgYWNjZXNzIGZvciB1c2VycyBhbmQKIGRldmVsb3BlcnMuCiAKLVRoZSBjdXJyZW50IEdpdCB0cmVlcyBhcmUgd2ViLWJyb3dzYWJsZToKLSAgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2NnaXQvbHdpcC5naXQKLSAgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2NnaXQvbHdpcC9sd2lwLWNvbnRyaWIuZ2l0CitUaGUgY3VycmVudCBHaXQgdHJlZSBpcyB3ZWItYnJvd3NhYmxlOgorICBodHRwczovL2dpdC5zYXZhbm5haC5nbnUub3JnL2NnaXQvbHdpcC5naXQKIAogU3VibWl0IHBhdGNoZXMgYW5kIGJ1Z3MgdmlhIHRoZSBsd0lQIHByb2plY3QgcGFnZToKLSAgaHR0cDovL3NhdmFubmFoLm5vbmdudS5vcmcvcHJvamVjdHMvbHdpcC8KKyAgaHR0cHM6Ly9zYXZhbm5haC5ub25nbnUub3JnL3Byb2plY3RzL2x3aXAvCiAKIENvbnRpbnVvdXMgaW50ZWdyYXRpb24gYnVpbGRzIChHQ0MsIGNsYW5nKToKLSAgaHR0cHM6Ly90cmF2aXMtY2kub3JnL3lhcnJpY2svbHdpcC1tZXJnZWQKKyAgaHR0cHM6Ly9naXRodWIuY29tL2x3aXAtdGNwaXAvbHdpcC9hY3Rpb25zCiAKIAogRE9DVU1FTlRBVElPTgogCiBTZWxmIGRvY3VtZW50YXRpb24gb2YgdGhlIHNvdXJjZSBjb2RlIGlzIHJlZ3VsYXJseSBleHRyYWN0ZWQgZnJvbSB0aGUgY3VycmVudAogR2l0IHNvdXJjZXMgYW5kIGlzIGF2YWlsYWJsZSBmcm9tIHRoaXMgd2ViIHBhZ2U6Ci0gIGh0dHA6Ly93d3cubm9uZ251Lm9yZy9sd2lwLwotCi1UaGVyZSBpcyBub3cgYSBjb25zdGFudGx5IGdyb3dpbmcgd2lraSBhYm91dCBsd0lQIGF0Ci0gIGh0dHA6Ly9sd2lwLndpa2lhLmNvbS93aWtpL0x3SVBfV2lraQorICBodHRwczovL3d3dy5ub25nbnUub3JnL2x3aXAvCiAKIEFsc28sIHRoZXJlIGFyZSBtYWlsaW5nIGxpc3RzIHlvdSBjYW4gc3Vic2NyaWJlIGF0Ci0gIGh0dHA6Ly9zYXZhbm5haC5ub25nbnUub3JnL21haWwvP2dyb3VwPWx3aXAKKyAgaHR0cHM6Ly9zYXZhbm5haC5ub25nbnUub3JnL21haWwvP2dyb3VwPWx3aXAKIHBsdXMgc2VhcmNoYWJsZSBhcmNoaXZlczoKLSAgaHR0cDovL2xpc3RzLm5vbmdudS5vcmcvYXJjaGl2ZS9odG1sL2x3aXAtdXNlcnMvCi0gIGh0dHA6Ly9saXN0cy5ub25nbnUub3JnL2FyY2hpdmUvaHRtbC9sd2lwLWRldmVsLworICBodHRwczovL2xpc3RzLm5vbmdudS5vcmcvYXJjaGl2ZS9odG1sL2x3aXAtdXNlcnMvCisgIGh0dHBzOi8vbGlzdHMubm9uZ251Lm9yZy9hcmNoaXZlL2h0bWwvbHdpcC1kZXZlbC8KKworVGhlcmUgaXMgYSB3aWtpIGFib3V0IGx3SVAgYXQKKyAgaHR0cHM6Ly9sd2lwLndpa2lhLmNvbS93aWtpL0x3SVBfV2lraQorWW91IG1pZ2h0IGdldCBxdWVzdGlvbnMgYW5zd2VyZWQgdGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5LCBpdCBpcyBub3QgYXMKK3dlbGwgbWFpbnRhaW5lZCBhcyBpdCBzaG91bGQgYmUuCiAKIGx3SVAgd2FzIG9yaWdpbmFsbHkgd3JpdHRlbiBieSBBZGFtIER1bmtlbHM6CiAgIGh0dHA6Ly9kdW5rZWxzLmNvbS9hZGFtLwpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5ldDZfOGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2luZXQ2XzhjLmh0bWwKaW5kZXggZDM1ODlkZS4uYzY5ZGNkYSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5ldDZfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pbmV0Nl84Yy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2luZXRfX2Noa3N1bV84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5ldF9fY2hrc3VtXzhjLmh0bWwKaW5kZXggODBhYzhhZC4uYjNiNThlYiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5ldF9fY2hrc3VtXzhjLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5ldF9fY2hrc3VtXzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTE4LDggKzExOCw4IEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjphYjM1OTY3YTUwNDE4MzU4ZTE5NGU4ZjgwZmRjM2M4NjUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPgogPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+Ci08ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxwPkludGVybmV0IGNoZWNrc3VtIGZ1bmN0aW9ucy48YnIgIC8+Ci0gVGhlc2UgYXJlIHNvbWUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgY2hlY2tzdW0gYWxnb3JpdGhtLCB3aXRoIHRoZSBhaW0gb2YgYmVpbmcgc2ltcGxlLCBjb3JyZWN0IGFuZCBmdWxseSBwb3J0YWJsZS4gQ2hlY2tzdW1taW5nIGlzIHRoZSBmaXJzdCB0aGluZyB5b3Ugd291bGQgd2FudCB0byBvcHRpbWl6ZSBmb3IgeW91ciBwbGF0Zm9ybS4gSWYgeW91IGNyZWF0ZSB5b3VyIG93biB2ZXJzaW9uLCBsaW5rIGl0IGluIGFuZCBpbiB5b3VyIGNjLmggcHV0OjwvcD4KKzxkaXYgY2xhc3M9InRleHRibG9jayI+PHA+SW50ZXJuZXQgY2hlY2tzdW0gZnVuY3Rpb25zLjwvcD4KKzxwPlRoZXNlIGFyZSBzb21lIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGNoZWNrc3VtIGFsZ29yaXRobSwgd2l0aCB0aGUgYWltIG9mIGJlaW5nIHNpbXBsZSwgY29ycmVjdCBhbmQgZnVsbHkgcG9ydGFibGUuIENoZWNrc3VtbWluZyBpcyB0aGUgZmlyc3QgdGhpbmcgeW91IHdvdWxkIHdhbnQgdG8gb3B0aW1pemUgZm9yIHlvdXIgcGxhdGZvcm0uIElmIHlvdSBjcmVhdGUgeW91ciBvd24gdmVyc2lvbiwgbGluayBpdCBpbiBhbmQgaW4geW91ciBjYy5oIHB1dDo8L3A+CiA8cD4jZGVmaW5lIExXSVBfQ0hLU1VNIHlvdXJfY2hlY2tzdW1fcm91dGluZTwvcD4KIDxwPk9yIHlvdSBjYW4gc2VsZWN0IGZyb20gdGhlIGltcGxlbWVudGF0aW9ucyBiZWxvdyBieSBkZWZpbmluZyBMV0lQX0NIS1NVTV9BTEdPUklUSE0gdG8gMSwgMiBvciAzLiA8L3A+CiA8L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2luZXRfX2Noa3N1bV84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5ldF9fY2hrc3VtXzhoLmh0bWwKaW5kZXggN2Y5ZmJjNi4uZmZmNWU3YSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5ldF9fY2hrc3VtXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5ldF9fY2hrc3VtXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5pdF84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5pdF84Yy5odG1sCmluZGV4IDcyMjUzMzQuLjY4OTY2NTAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2luaXRfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pbml0XzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5pdF84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaW5pdF84aC5odG1sCmluZGV4IGZiNDczNWMuLmZkY2M2MTcgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2luaXRfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pbml0XzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTA5LDkgKzEwOSw5IEBACiBNYWNyb3M8L2gyPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTQzMDhjMDZlZjM2NDk2ZTAwYzc5OGQ5NmQ3ZDAzMjQ2IiBpZD0icl9nYTQzMDhjMDZlZjM2NDk2ZTAwYzc5OGQ5NmQ3ZDAzMjQ2Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX3ZlcnNpb24uaHRtbCNnYTQzMDhjMDZlZjM2NDk2ZTAwYzc5OGQ5NmQ3ZDAzMjQ2Ij5MV0lQX1ZFUlNJT05fTUFKT1I8L2E+JiMxNjA7JiMxNjA7JiMxNjA7MjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNDMwOGMwNmVmMzY0OTZlMDBjNzk4ZDk2ZDdkMDMyNDYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2ExZTU5NjM4OGMxNWJhODFlNzUzYzU2MzNmYWQxYzAzNCIgaWQ9InJfZ2ExZTU5NjM4OGMxNWJhODFlNzUzYzU2MzNmYWQxYzAzNCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX192ZXJzaW9uLmh0bWwjZ2ExZTU5NjM4OGMxNWJhODFlNzUzYzU2MzNmYWQxYzAzNCI+TFdJUF9WRVJTSU9OX01JTk9SPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzE8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2ExZTU5NjM4OGMxNWJhODFlNzUzYzU2MzNmYWQxYzAzNCIgaWQ9InJfZ2ExZTU5NjM4OGMxNWJhODFlNzUzYzU2MzNmYWQxYzAzNCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19sd2lwX192ZXJzaW9uLmh0bWwjZ2ExZTU5NjM4OGMxNWJhODFlNzUzYzU2MzNmYWQxYzAzNCI+TFdJUF9WRVJTSU9OX01JTk9SPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzI8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTFlNTk2Mzg4YzE1YmE4MWU3NTNjNTYzM2ZhZDFjMDM0Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhMGE1Nzk4M2RmMWIxOTljZjM5YTJlNmEyZDkwZTNkNTAiIGlkPSJyX2dhMGE1Nzk4M2RmMWIxOTljZjM5YTJlNmEyZDkwZTNkNTAiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fdmVyc2lvbi5odG1sI2dhMGE1Nzk4M2RmMWIxOTljZjM5YTJlNmEyZDkwZTNkNTAiPkxXSVBfVkVSU0lPTl9SRVZJU0lPTjwvYT4mIzE2MDsmIzE2MDsmIzE2MDszPC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMGE1Nzk4M2RmMWIxOTljZjM5YTJlNmEyZDkwZTNkNTAiIGlkPSJyX2dhMGE1Nzk4M2RmMWIxOTljZjM5YTJlNmEyZDkwZTNkNTAiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fdmVyc2lvbi5odG1sI2dhMGE1Nzk4M2RmMWIxOTljZjM5YTJlNmEyZDkwZTNkNTAiPkxXSVBfVkVSU0lPTl9SRVZJU0lPTjwvYT4mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EwYTU3OTgzZGYxYjE5OWNmMzlhMmU2YTJkOTBlM2Q1MCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWMxZGM5MmQ4ZjQ1M2E5ODU2MGRlN2UyZTAwYTIyMWExIiBpZD0icl9nYWMxZGM5MmQ4ZjQ1M2E5ODU2MGRlN2UyZTAwYTIyMWExIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2x3aXBfX3ZlcnNpb24uaHRtbCNnYWMxZGM5MmQ4ZjQ1M2E5ODU2MGRlN2UyZTAwYTIyMWExIj5MV0lQX1ZFUlNJT05fUkM8L2E+JiMxNjA7JiMxNjA7JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbHdpcF9fdmVyc2lvbi5odG1sI2dhMzc1ZWU4NjhlNzZlZDdjNDU4Y2RmMjQ5Mzg3YmQ0NjkiPkxXSVBfUkNfUkVMRUFTRTwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWMxZGM5MmQ4ZjQ1M2E5ODU2MGRlN2UyZTAwYTIyMWExIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA0XzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfOGMuaHRtbAppbmRleCA3NjIwYzdiLi4xMjgwMDk4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNF84aC5odG1sCmluZGV4IGMzYWEzY2UuLjI0ZjNkN2UgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNF84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNF84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNF9fYWRkcl84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA0X19hZGRyXzhjLmh0bWwKaW5kZXggNDNjM2Y3Ny4uZTRlNDZmMyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA0X19hZGRyXzhjLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA0X19hZGRyXzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA0X19hZGRyXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfX2FkZHJfOGguaHRtbAppbmRleCA3ZWQwOWM3Li4zYTE5NTE5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfX2FkZHJfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfX2FkZHJfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xNDcsNiArMTQ3LDEwIEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjphODE2NThjYjA1YmE1MDRkMTNlZTg2MGU4MmRjNDQ0ZTkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06YWZkNDNmNmNlYjJkZjhkNTBjODQ1MDlhZDEwNTlmNTE0IiBpZD0icl9hZmQ0M2Y2Y2ViMmRmOGQ1MGM4NDUwOWFkMTA1OWY1MTQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWZkNDNmNmNlYjJkZjhkNTBjODQ1MDlhZDEwNTlmNTE0Ij5pcDRfYWRkcl9uZXRjbXA8L2E+KGFkZHIxLCAgYWRkcjIsICBtYXNrKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmFmZDQzZjZjZWIyZGY4ZDUwYzg0NTA5YWQxMDU5ZjUxNCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphOTVkMDVkZjkyMDE2MDJmYzg3M2E5N2ZiNjFmZDExMzQiIGlkPSJyX2E5NWQwNWRmOTIwMTYwMmZjODczYTk3ZmI2MWZkMTEzNCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhOTVkMDVkZjkyMDE2MDJmYzg3M2E5N2ZiNjFmZDExMzQiPmlwNF9hZGRyX25ldF9lcTwvYT4oYWRkcjEsICBhZGRyMiwgIG1hc2spPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTk1ZDA1ZGY5MjAxNjAyZmM4NzNhOTdmYjYxZmQxMTM0Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmE1OTQ5NGM1NjJjNjJmZGY2MmE2YzljNmE2NmE1MGZiMyIgaWQ9InJfYTU5NDk0YzU2MmM2MmZkZjYyYTZjOWM2YTY2YTUwZmIzIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E1OTQ5NGM1NjJjNjJmZGY2MmE2YzljNmE2NmE1MGZiMyI+aXA0X2FkZHJfY21wPC9hPihhZGRyMSwgIGFkZHIyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmE1OTQ5NGM1NjJjNjJmZGY2MmE2YzljNmE2NmE1MGZiMyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTphMmIyMjMwNTE2ZTc5MTFkZmFjYzliODc2NDRiYTMwZjEiIGlkPSJyX2EyYjIyMzA1MTZlNzkxMWRmYWNjOWI4NzY0NGJhMzBmMSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhMmIyMjMwNTE2ZTc5MTFkZmFjYzliODc2NDRiYTMwZjEiPmlwX250b2E8L2E+KGlwYWRkcik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjphMmIyMjMwNTE2ZTc5MTFkZmFjYzliODc2NDRiYTMwZjEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgpAQCAtMjEyLDYgKzIxNiwyOSBAQAogCiA8L2Rpdj4KIDwvZGl2PgorPGEgaWQ9ImE1OTQ5NGM1NjJjNjJmZGY2MmE2YzljNmE2NmE1MGZiMyIgbmFtZT0iYTU5NDk0YzU2MmM2MmZkZjYyYTZjOWM2YTY2YTUwZmIzIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTU5NDk0YzU2MmM2MmZkZjYyYTZjOWM2YTY2YTUwZmIzIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcDRfYWRkcl9jbXA8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgaXA0X2FkZHJfY21wPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWRkcjE8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFkZHIyPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+aXA0X2FkZHJfZXEoYWRkcjEsIGFkZHIyKTwvZGl2PgorPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48ZGwgY2xhc3M9ImRlcHJlY2F0ZWQiPjxkdD48Yj48YSBjbGFzcz0iZWwiIGhyZWY9ImRlcHJlY2F0ZWQuaHRtbCNfZGVwcmVjYXRlZDAwMDAwNCI+RGVwcmVjYXRlZDwvYT48L2I+PC9kdD48ZGQ+UmVuYW1lZCB0byBpcDRfYWRkcl9lcSA8L2RkPjwvZGw+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iYTJmNGU5YzMzOWU4OTdlNmNhNWNiNGEyZjFlODM5NGQ1IiBuYW1lPSJhMmY0ZTljMzM5ZTg5N2U2Y2E1Y2I0YTJmMWU4Mzk0ZDUiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhMmY0ZTljMzM5ZTg5N2U2Y2E1Y2I0YTJmMWU4Mzk0ZDUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwNF9hZGRyX2NvcHk8L2gyPgogCkBAIC0zMDEsMTQgKzMyOCwxNCBAQAogCiA8L2Rpdj4KIDwvZGl2PgotPGEgaWQ9ImFmZDQzZjZjZWIyZGY4ZDUwYzg0NTA5YWQxMDU5ZjUxNCIgbmFtZT0iYWZkNDNmNmNlYjJkZjhkNTBjODQ1MDlhZDEwNTlmNTE0Ij48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWZkNDNmNmNlYjJkZjhkNTBjODQ1MDlhZDEwNTlmNTE0Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcDRfYWRkcl9uZXRjbXA8L2gyPgorPGEgaWQ9ImE5NWQwNWRmOTIwMTYwMmZjODczYTk3ZmI2MWZkMTEzNCIgbmFtZT0iYTk1ZDA1ZGY5MjAxNjAyZmM4NzNhOTdmYjYxZmQxMTM0Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTk1ZDA1ZGY5MjAxNjAyZmM4NzNhOTdmYjYxZmQxMTM0Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcDRfYWRkcl9uZXRfZXE8L2gyPgogCiA8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KIDxkaXYgY2xhc3M9Im1lbXByb3RvIj4KICAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CiAgICAgICAgIDx0cj4KLSAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgaXA0X2FkZHJfbmV0Y21wPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgaXA0X2FkZHJfbmV0X2VxPC90ZD4KICAgICAgICAgICA8dGQ+KDwvdGQ+CiAgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWRkcjE8L2VtPjwvc3Bhbj4sIDwvdGQ+CiAgICAgICAgIDwvdHI+CkBAIC0zMzgsNiArMzY1LDM1IEBACiAKIDwvZGl2PgogPC9kaXY+Cis8YSBpZD0iYWZkNDNmNmNlYjJkZjhkNTBjODQ1MDlhZDEwNTlmNTE0IiBuYW1lPSJhZmQ0M2Y2Y2ViMmRmOGQ1MGM4NDUwOWFkMTA1OWY1MTQiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhZmQ0M2Y2Y2ViMmRmOGQ1MGM4NDUwOWFkMTA1OWY1MTQiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwNF9hZGRyX25ldGNtcDwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBpcDRfYWRkcl9uZXRjbXA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyMTwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWRkcjI8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm1hc2s8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNhOTVkMDVkZjkyMDE2MDJmYzg3M2E5N2ZiNjFmZDExMzQiPmlwNF9hZGRyX25ldF9lcTwvYT4oYWRkcjEsIGFkZHIyLCBtYXNrKTwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWlwNF9fYWRkcl84aF9odG1sX2E5NWQwNWRmOTIwMTYwMmZjODczYTk3ZmI2MWZkMTEzNCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjYTk1ZDA1ZGY5MjAxNjAyZmM4NzNhOTdmYjYxZmQxMTM0Ij5pcDRfYWRkcl9uZXRfZXE8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIGlwNF9hZGRyX25ldF9lcShhZGRyMSwgYWRkcjIsIG1hc2spPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwNF9hZGRyLmg6MTQ2PC9kaXY+PC9kaXY+Cis8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkRldGVybWluZSBpZiB0d28gYWRkcmVzcyBhcmUgb24gdGhlIHNhbWUgbmV0d29yay4gPC9wPjxkbCBjbGFzcz0iZGVwcmVjYXRlZCI+PGR0PjxiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZGVwcmVjYXRlZC5odG1sI19kZXByZWNhdGVkMDAwMDAzIj5EZXByZWNhdGVkPC9hPjwvYj48L2R0PjxkZD5SZW5hbWVkIHRvIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2E5NWQwNWRmOTIwMTYwMmZjODczYTk3ZmI2MWZkMTEzNCI+aXA0X2FkZHJfbmV0X2VxPC9hPiA8L2RkPjwvZGw+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iYTMzYTE3YThkMjAyNWNlMzcxNWRiODM1NTM0ODY4ZTg4IiBuYW1lPSJhMzNhMTdhOGQyMDI1Y2UzNzE1ZGI4MzU1MzQ4NjhlODgiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhMzNhMTdhOGQyMDI1Y2UzNzE1ZGI4MzU1MzQ4NjhlODgiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwNF9hZGRyX3NldDwvaDI+CiAKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNF9fYWRkcl84aC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNF9fYWRkcl84aC5qcwppbmRleCBkYmU5MjM0Li4zZTQ3ODQ4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfX2FkZHJfOGguanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA0X19hZGRyXzhoLmpzCkBAIC0yLDEwICsyLDEyIEBACiBbCiAgICAgWyAiaXA0X2FkZHIiLCAic3RydWN0aXA0X19hZGRyLmh0bWwiLCBudWxsIF0sCiAgICAgWyAiSVA0X0FERFIiLCAiaXA0X19hZGRyXzhoLmh0bWwjYTU4YWVlNDE2NmM0NjZmOWFjNzAzNWJmNWNjOWY5OTc0IiwgbnVsbCBdLAorICAgIFsgImlwNF9hZGRyX2NtcCIsICJpcDRfX2FkZHJfOGguaHRtbCNhNTk0OTRjNTYyYzYyZmRmNjJhNmM5YzZhNjZhNTBmYjMiLCBudWxsIF0sCiAgICAgWyAiaXA0X2FkZHJfY29weSIsICJpcDRfX2FkZHJfOGguaHRtbCNhMmY0ZTljMzM5ZTg5N2U2Y2E1Y2I0YTJmMWU4Mzk0ZDUiLCBudWxsIF0sCiAgICAgWyAiaXA0X2FkZHJfZ2V0X25ldHdvcmsiLCAiaXA0X19hZGRyXzhoLmh0bWwjYTgxNjU4Y2IwNWJhNTA0ZDEzZWU4NjBlODJkYzQ0NGU5IiwgbnVsbCBdLAogICAgIFsgImlwNF9hZGRyX2dldF91MzIiLCAiaXA0X19hZGRyXzhoLmh0bWwjYWQ1MGQ5MzQ2NGJiYmRhMTk5YjU4NWM1NDg2OWEzYTRiIiwgbnVsbCBdLAogICAgIFsgImlwNF9hZGRyX2lzbG9vcGJhY2siLCAiaXA0X19hZGRyXzhoLmh0bWwjYTQ2ZGFiYjRkZjIxMmQxNTYwMDRmYTVhZmUwM2UyMDUxIiwgbnVsbCBdLAorICAgIFsgImlwNF9hZGRyX25ldF9lcSIsICJpcDRfX2FkZHJfOGguaHRtbCNhOTVkMDVkZjkyMDE2MDJmYzg3M2E5N2ZiNjFmZDExMzQiLCBudWxsIF0sCiAgICAgWyAiaXA0X2FkZHJfbmV0Y21wIiwgImlwNF9fYWRkcl84aC5odG1sI2FmZDQzZjZjZWIyZGY4ZDUwYzg0NTA5YWQxMDU5ZjUxNCIsIG51bGwgXSwKICAgICBbICJpcDRfYWRkcl9zZXQiLCAiaXA0X19hZGRyXzhoLmh0bWwjYTMzYTE3YThkMjAyNWNlMzcxNWRiODM1NTM0ODY4ZTg4IiwgbnVsbCBdLAogICAgIFsgImlwNF9hZGRyX3NldF9hbnkiLCAiaXA0X19hZGRyXzhoLmh0bWwjYWZhYWVkMzc2MmNlOGU5ZGUxNGZjZjczYjE5OTY0NTY3IiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA0X19mcmFnXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfX2ZyYWdfOGMuaHRtbAppbmRleCBkN2E1OTEwLi5lZWVjMTQ5IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfX2ZyYWdfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfX2ZyYWdfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDRfX2ZyYWdfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNF9fZnJhZ184aC5odG1sCmluZGV4IDg2NWUyZDAuLjE3Y2EyMzEgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNF9fZnJhZ184aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNF9fZnJhZ184aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2XzhjLmh0bWwKaW5kZXggMDkzY2E3My4uMzM0OWU1YSAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2XzhjLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2XzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2XzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfOGguaHRtbAppbmRleCA4MjU5NWNmLi5lY2M1ZGU3IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfX2FkZHJfOGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl9fYWRkcl84Yy5odG1sCmluZGV4IDI3ZmI2MTEuLjZiNzgzYzggMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl9fYWRkcl84Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl9fYWRkcl84Yy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEwNSw2ICsxMDUsNyBAQAogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Im9wdF84aC5odG1sIj5sd2lwL29wdC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0iaXBfX2FkZHJfOGguaHRtbCI+bHdpcC9pcF9hZGRyLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJkZWZfOGguaHRtbCI+bHdpcC9kZWYuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+Cis8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhoLmh0bWwiPmx3aXAvbmV0aWYuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCI+bHdpcC9pcDRfYWRkci5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDwvZGl2Pjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2X19hZGRyXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfX2FkZHJfOGguaHRtbAppbmRleCA4M2IwZDMzLi41M2JhNzdiIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfX2FkZHJfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfX2FkZHJfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xNTQsMTQgKzE1NCwyNCBAQAogPHRyIGNsYXNzPSJzZXBhcmF0b3I6YWQ2MzZjMjdkNTZkMWIzZGVjYTlmNzgwYmMxNzNkM2MyIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmFjYzE2MjJhYjg5NTY4MGRhMGEzYjZlNWU1NjA3MDM0MiIgaWQ9InJfYWNjMTYyMmFiODk1NjgwZGEwYTNiNmU1ZTU2MDcwMzQyIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2FjYzE2MjJhYjg5NTY4MGRhMGEzYjZlNWU1NjA3MDM0MiI+aXA2X2FkZHJfbmV0Y21wX3pvbmVsZXNzPC9hPihhZGRyMSwgIGFkZHIyKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmFjYzE2MjJhYjg5NTY4MGRhMGEzYjZlNWU1NjA3MDM0MiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphZmM5ZDJiOGQwYTA1ZjJmZjIzYWIzYjdmZDNiZjgyMjkiIGlkPSJyX2FmYzlkMmI4ZDBhMDVmMmZmMjNhYjNiN2ZkM2JmODIyOSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhZmM5ZDJiOGQwYTA1ZjJmZjIzYWIzYjdmZDNiZjgyMjkiPmlwNl9hZGRyX25ldF96b25lbGVzc19lcTwvYT4oYWRkcjEsICBhZGRyMik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphZmM5ZDJiOGQwYTA1ZjJmZjIzYWIzYjdmZDNiZjgyMjkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06YTc2YjAxZjc2YjY1NjQ3NzY3ZDAwZWU5ZmFkOWZiYWEyIiBpZD0icl9hNzZiMDFmNzZiNjU2NDc3NjdkMDBlZTlmYWQ5ZmJhYTIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTc2YjAxZjc2YjY1NjQ3NzY3ZDAwZWU5ZmFkOWZiYWEyIj5pcDZfYWRkcl9uZXRjbXA8L2E+KGFkZHIxLCAgYWRkcjIpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTc2YjAxZjc2YjY1NjQ3NzY3ZDAwZWU5ZmFkOWZiYWEyIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmE5YTk4M2M3ZDYxM2FiNDVlMzdhYWY2NmMwNjdhMGM3YSIgaWQ9InJfYTlhOTgzYzdkNjEzYWI0NWUzN2FhZjY2YzA2N2EwYzdhIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E5YTk4M2M3ZDYxM2FiNDVlMzdhYWY2NmMwNjdhMGM3YSI+aXA2X2FkZHJfbmV0X2VxPC9hPihhZGRyMSwgIGFkZHIyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmE5YTk4M2M3ZDYxM2FiNDVlMzdhYWY2NmMwNjdhMGM3YSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTphZDBmYzA4ODk3MmQzOTU4MzlhN2FkNzVkM2RhYjgzMjIiIGlkPSJyX2FkMGZjMDg4OTcyZDM5NTgzOWE3YWQ3NWQzZGFiODMyMiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhZDBmYzA4ODk3MmQzOTU4MzlhN2FkNzVkM2RhYjgzMjIiPmlwNl9hZGRyX2NtcF96b25lbGVzczwvYT4oYWRkcjEsICBhZGRyMik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjphZDBmYzA4ODk3MmQzOTU4MzlhN2FkNzVkM2RhYjgzMjIiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YTgxMWQ4YTJhYTY0MTdhZTIyYTdhNDZiMjdkOWVhZDI2IiBpZD0icl9hODExZDhhMmFhNjQxN2FlMjJhN2E0NmIyN2Q5ZWFkMjYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTgxMWQ4YTJhYTY0MTdhZTIyYTdhNDZiMjdkOWVhZDI2Ij5pcDZfYWRkcl96b25lbGVzc19lcTwvYT4oYWRkcjEsICBhZGRyMik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphODExZDhhMmFhNjQxN2FlMjJhN2E0NmIyN2Q5ZWFkMjYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06YWVhOGQ0YzQxMzRhYmZmMWM3NmJjOTk3YTkxMTYzZmUxIiBpZD0icl9hZWE4ZDRjNDEzNGFiZmYxYzc2YmM5OTdhOTExNjNmZTEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWVhOGQ0YzQxMzRhYmZmMWM3NmJjOTk3YTkxMTYzZmUxIj5pcDZfYWRkcl9jbXA8L2E+KGFkZHIxLCAgYWRkcjIpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6YWVhOGQ0YzQxMzRhYmZmMWM3NmJjOTk3YTkxMTYzZmUxIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmE5ZWEwYjZiODM3YmFmZjFlMWU2MmNjY2Q0ZjE3ZDUwZSIgaWQ9InJfYTllYTBiNmI4MzdiYWZmMWUxZTYyY2NjZDRmMTdkNTBlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E5ZWEwYjZiODM3YmFmZjFlMWU2MmNjY2Q0ZjE3ZDUwZSI+aXA2X2FkZHJfZXE8L2E+KGFkZHIxLCAgYWRkcjIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTllYTBiNmI4MzdiYWZmMWUxZTYyY2NjZDRmMTdkNTBlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmExMWZlODQ3ODllM2YwMzliM2Y3MTAwOWU4MDI5NDZhOCIgaWQ9InJfYTExZmU4NDc4OWUzZjAzOWIzZjcxMDA5ZTgwMjk0NmE4Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2ExMWZlODQ3ODllM2YwMzliM2Y3MTAwOWU4MDI5NDZhOCI+aXA2X2FkZHJfY21wX3BhY2tlZDwvYT4oaXA2YWRkciwgIHBhZGRyLCAgem9uZV9pZHgpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTExZmU4NDc4OWUzZjAzOWIzZjcxMDA5ZTgwMjk0NmE4Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmFhMzI0YWM2NWQ1Mzc5OTdlYmFhZWQ3OGJkNDBmNmRhOSIgaWQ9InJfYWEzMjRhYzY1ZDUzNzk5N2ViYWFlZDc4YmQ0MGY2ZGE5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2FhMzI0YWM2NWQ1Mzc5OTdlYmFhZWQ3OGJkNDBmNmRhOSI+aXA2X2FkZHJfcGFja2VkX2VxPC9hPihpcDZhZGRyLCAgcGFkZHIsICB6b25lX2lkeCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphYTMyNGFjNjVkNTM3OTk3ZWJhYWVkNzhiZDQwZjZkYTkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9InR5cGVkZWYtbWVtYmVycyIgbmFtZT0idHlwZWRlZi1tZW1iZXJzIj48L2E+CiBUeXBlZGVmczwvaDI+PC90ZD48L3RyPgpAQCAtMzk0LDE4ICs0MDQsOSBAQAogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNhZDBmYzA4ODk3MmQzOTU4MzlhN2FkNzVkM2RhYjgzMjIiPmlwNl9hZGRyX2NtcF96b25lbGVzczwvYT4oKGFkZHIxKSwgKGFkZHIyKSkgJmFtcDsmYW1wOyBcPC9kaXY+Ci08ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcDZfYWRkcl9jbXBfem9uZSgoYWRkcjEpLCAoYWRkcjIpKSk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFpcDZfX2FkZHJfOGhfaHRtbF9hZDBmYzA4ODk3MmQzOTU4MzlhN2FkNzVkM2RhYjgzMjIiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2FkMGZjMDg4OTcyZDM5NTgzOWE3YWQ3NWQzZGFiODMyMiI+aXA2X2FkZHJfY21wX3pvbmVsZXNzPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBpcDZfYWRkcl9jbXBfem9uZWxlc3MoYWRkcjEsIGFkZHIyKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcDZfYWRkci5oOjE2ODwvZGl2PjwvZGl2PgotPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5EZXRlcm1pbmUgaWYgdHdvIElQdjYgYWRkcmVzc2VzIGFyZSB0aGUgc2FtZS4gSW4gcGFydGljdWxhciwgdGhlIGFkZHJlc3MgcGFydCBvZiBib3RoIG11c3QgYmUgdGhlIHNhbWUsIGFuZCB0aGUgem9uZSBtdXN0IGJlIGNvbXBhdGlibGUuPC9wPgotPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+Ci0gIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmFkZHIxPC90ZD48dGQ+SVB2NiBhZGRyZXNzIDEgPC90ZD48L3RyPgotICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+YWRkcjI8L3RkPjx0ZD5JUHY2IGFkZHJlc3MgMiA8L3RkPjwvdHI+Ci0gIDwvdGFibGU+Ci0gIDwvZGQ+Ci08L2RsPgotPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD4xIGlmIHRoZSBhZGRyZXNzZXMgYXJlIGNvbnNpZGVyZWQgZXF1YWwsIDAgaWYgbm90IDwvZGQ+PC9kbD4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+PGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSIjYTllYTBiNmI4MzdiYWZmMWUxZTYyY2NjZDRmMTdkNTBlIj5pcDZfYWRkcl9lcTwvYT4oYWRkcjEsIGFkZHIyKTwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWlwNl9fYWRkcl84aF9odG1sX2E5ZWEwYjZiODM3YmFmZjFlMWU2MmNjY2Q0ZjE3ZDUwZSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjYTllYTBiNmI4MzdiYWZmMWUxZTYyY2NjZDRmMTdkNTBlIj5pcDZfYWRkcl9lcTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgaXA2X2FkZHJfZXEoYWRkcjEsIGFkZHIyKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcDZfYWRkci5oOjE5MjwvZGl2PjwvZGl2PgorPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48ZGwgY2xhc3M9ImRlcHJlY2F0ZWQiPjxkdD48Yj48YSBjbGFzcz0iZWwiIGhyZWY9ImRlcHJlY2F0ZWQuaHRtbCNfZGVwcmVjYXRlZDAwMDAwOCI+RGVwcmVjYXRlZDwvYT48L2I+PC9kdD48ZGQ+UmVuYW1lZCB0byA8YSBjbGFzcz0iZWwiIGhyZWY9IiNhOWVhMGI2YjgzN2JhZmYxZTFlNjJjY2NkNGYxN2Q1MGUiPmlwNl9hZGRyX2VxPC9hPiA8L2RkPjwvZGw+CiAKIDwvZGl2PgogPC9kaXY+CkBAIC00MzIsMTIgKzQzMyw5IEBACiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgoaXA2YWRkciktJmd0O2FkZHJbMF0gPT0gKHBhZGRyKS0mZ3Q7YWRkclswXSkgJmFtcDsmYW1wOyBcPC9kaXY+Ci08ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGlwNmFkZHIpLSZndDthZGRyWzFdID09IChwYWRkciktJmd0O2FkZHJbMV0pICZhbXA7JmFtcDsgXDwvZGl2PgotPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChpcDZhZGRyKS0mZ3Q7YWRkclsyXSA9PSAocGFkZHIpLSZndDthZGRyWzJdKSAmYW1wOyZhbXA7IFw8L2Rpdj4KLTxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoaXA2YWRkciktJmd0O2FkZHJbM10gPT0gKHBhZGRyKS0mZ3Q7YWRkclszXSkgJmFtcDsmYW1wOyBcPC9kaXY+Ci08ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcDZfYWRkcl9lcXVhbHNfem9uZSgoaXA2YWRkciksICh6b25lX2lkeCkpKTwvZGl2PgotPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5Db21wYXJlIElQdjYgYWRkcmVzcyB0byBwYWNrZWQgYWRkcmVzcyBhbmQgem9uZSA8L3A+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2FhMzI0YWM2NWQ1Mzc5OTdlYmFhZWQ3OGJkNDBmNmRhOSI+aXA2X2FkZHJfcGFja2VkX2VxPC9hPihpcDZhZGRyLCBwYWRkciwgem9uZV9pZHgpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXA2X19hZGRyXzhoX2h0bWxfYWEzMjRhYzY1ZDUzNzk5N2ViYWFlZDc4YmQ0MGY2ZGE5Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNhYTMyNGFjNjVkNTM3OTk3ZWJhYWVkNzhiZDQwZjZkYTkiPmlwNl9hZGRyX3BhY2tlZF9lcTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgaXA2X2FkZHJfcGFja2VkX2VxKGlwNmFkZHIsIHBhZGRyLCB6b25lX2lkeCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA2X2FkZHIuaDoxOTg8L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PGRsIGNsYXNzPSJkZXByZWNhdGVkIj48ZHQ+PGI+PGEgY2xhc3M9ImVsIiBocmVmPSJkZXByZWNhdGVkLmh0bWwjX2RlcHJlY2F0ZWQwMDAwMDkiPkRlcHJlY2F0ZWQ8L2E+PC9iPjwvZHQ+PGRkPlJlbmFtZWQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSIjYWEzMjRhYzY1ZDUzNzk5N2ViYWFlZDc4YmQ0MGY2ZGE5Ij5pcDZfYWRkcl9wYWNrZWRfZXE8L2E+IDwvZGQ+PC9kbD4KIAogPC9kaXY+CiA8L2Rpdj4KQEAgLTQ1OSwxMSArNDU3LDkgQEAKICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChhZGRyMSktJmd0O2FkZHJbMF0gPT0gKGFkZHIyKS0mZ3Q7YWRkclswXSkgJmFtcDsmYW1wOyBcPC9kaXY+Ci08ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGFkZHIxKS0mZ3Q7YWRkclsxXSA9PSAoYWRkcjIpLSZndDthZGRyWzFdKSAmYW1wOyZhbXA7IFw8L2Rpdj4KLTxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYWRkcjEpLSZndDthZGRyWzJdID09IChhZGRyMiktJmd0O2FkZHJbMl0pICZhbXA7JmFtcDsgXDwvZGl2PgotPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChhZGRyMSktJmd0O2FkZHJbM10gPT0gKGFkZHIyKS0mZ3Q7YWRkclszXSkpPC9kaXY+Ci08L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkNvbXBhcmUgSVB2NiBhZGRyZXNzZXMsIGlnbm9yaW5nIHpvbmUgaW5mb3JtYXRpb24uIFRvIGJlIHVzZWQgc3BhcmluZ2x5ISA8L3A+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2E4MTFkOGEyYWE2NDE3YWUyMmE3YTQ2YjI3ZDllYWQyNiI+aXA2X2FkZHJfem9uZWxlc3NfZXE8L2E+KGFkZHIxLCBhZGRyMik8L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFpcDZfX2FkZHJfOGhfaHRtbF9hODExZDhhMmFhNjQxN2FlMjJhN2E0NmIyN2Q5ZWFkMjYiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2E4MTFkOGEyYWE2NDE3YWUyMmE3YTQ2YjI3ZDllYWQyNiI+aXA2X2FkZHJfem9uZWxlc3NfZXE8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIGlwNl9hZGRyX3pvbmVsZXNzX2VxKGFkZHIxLCBhZGRyMik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA2X2FkZHIuaDoxNzg8L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PGRsIGNsYXNzPSJkZXByZWNhdGVkIj48ZHQ+PGI+PGEgY2xhc3M9ImVsIiBocmVmPSJkZXByZWNhdGVkLmh0bWwjX2RlcHJlY2F0ZWQwMDAwMDciPkRlcHJlY2F0ZWQ8L2E+PC9iPjwvZHQ+PGRkPlJlbmFtZWQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSIjYTgxMWQ4YTJhYTY0MTdhZTIyYTdhNDZiMjdkOWVhZDI2Ij5pcDZfYWRkcl96b25lbGVzc19lcTwvYT4gPC9kZD48L2RsPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtNTQ3LDYgKzU0Myw5NSBAQAogCiA8L2Rpdj4KIDwvZGl2PgorPGEgaWQ9ImE5ZWEwYjZiODM3YmFmZjFlMWU2MmNjY2Q0ZjE3ZDUwZSIgbmFtZT0iYTllYTBiNmI4MzdiYWZmMWUxZTYyY2NjZDRmMTdkNTBlIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTllYTBiNmI4MzdiYWZmMWUxZTYyY2NjZDRmMTdkNTBlIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcDZfYWRkcl9lcTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBpcDZfYWRkcl9lcTwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFkZHIxPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyMjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNhODExZDhhMmFhNjQxN2FlMjJhN2E0NmIyN2Q5ZWFkMjYiPmlwNl9hZGRyX3pvbmVsZXNzX2VxPC9hPigoYWRkcjEpLCAoYWRkcjIpKSAmYW1wOyZhbXA7IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwNl9hZGRyX3pvbmVfZXEoKGFkZHIxKSwgKGFkZHIyKSkpPC9kaXY+Cis8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkRldGVybWluZSBpZiB0d28gSVB2NiBhZGRyZXNzZXMgYXJlIHRoZSBzYW1lLiBJbiBwYXJ0aWN1bGFyLCB0aGUgYWRkcmVzcyBwYXJ0IG9mIGJvdGggbXVzdCBiZSB0aGUgc2FtZSwgYW5kIHRoZSB6b25lIG11c3QgYmUgY29tcGF0aWJsZS48L3A+Cis8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+YWRkcjE8L3RkPjx0ZD5JUHY2IGFkZHJlc3MgMSA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5hZGRyMjwvdGQ+PHRkPklQdjYgYWRkcmVzcyAyIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPjEgaWYgdGhlIGFkZHJlc3NlcyBhcmUgY29uc2lkZXJlZCBlcXVhbCwgMCBpZiBub3QgPC9kZD48L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImE5YTk4M2M3ZDYxM2FiNDVlMzdhYWY2NmMwNjdhMGM3YSIgbmFtZT0iYTlhOTgzYzdkNjEzYWI0NWUzN2FhZjY2YzA2N2EwYzdhIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTlhOTgzYzdkNjEzYWI0NWUzN2FhZjY2YzA2N2EwYzdhIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcDZfYWRkcl9uZXRfZXE8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgaXA2X2FkZHJfbmV0X2VxPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWRkcjE8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFkZHIyPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2FmYzlkMmI4ZDBhMDVmMmZmMjNhYjNiN2ZkM2JmODIyOSI+aXA2X2FkZHJfbmV0X3pvbmVsZXNzX2VxPC9hPigoYWRkcjEpLCAoYWRkcjIpKSAmYW1wOyZhbXA7IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwNl9hZGRyX3pvbmVfZXEoKGFkZHIxKSwgKGFkZHIyKSkpPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXA2X19hZGRyXzhoX2h0bWxfYWZjOWQyYjhkMGEwNWYyZmYyM2FiM2I3ZmQzYmY4MjI5Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNhZmM5ZDJiOGQwYTA1ZjJmZjIzYWIzYjdmZDNiZjgyMjkiPmlwNl9hZGRyX25ldF96b25lbGVzc19lcTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgaXA2X2FkZHJfbmV0X3pvbmVsZXNzX2VxKGFkZHIxLCBhZGRyMik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA2X2FkZHIuaDoxNTI8L2Rpdj48L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+RGV0ZXJtaW5lIGlmIHR3byBJUHY2IGFkZHJlc3MgYXJlIG9uIHRoZSBzYW1lIG5ldHdvcmsuPC9wPgorPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CisgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmFkZHIxPC90ZD48dGQ+SVB2NiBhZGRyZXNzIDEgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+YWRkcjI8L3RkPjx0ZD5JUHY2IGFkZHJlc3MgMiA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD4xIGlmIHRoZSBuZXR3b3JrIGlkZW50aWZpZXJzIG9mIGJvdGggYWRkcmVzcyBtYXRjaCwgMCBpZiBub3QgPC9kZD48L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImFmYzlkMmI4ZDBhMDVmMmZmMjNhYjNiN2ZkM2JmODIyOSIgbmFtZT0iYWZjOWQyYjhkMGEwNWYyZmYyM2FiM2I3ZmQzYmY4MjI5Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWZjOWQyYjhkMGEwNWYyZmYyM2FiM2I3ZmQzYmY4MjI5Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcDZfYWRkcl9uZXRfem9uZWxlc3NfZXE8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgaXA2X2FkZHJfbmV0X3pvbmVsZXNzX2VxPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWRkcjE8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFkZHIyPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChhZGRyMSktJmd0O2FkZHJbMF0gPT0gKGFkZHIyKS0mZ3Q7YWRkclswXSkgJmFtcDsmYW1wOyBcPC9kaXY+Cis8ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYWRkcjEpLSZndDthZGRyWzFdID09IChhZGRyMiktJmd0O2FkZHJbMV0pKTwvZGl2PgorPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5Db21wYXJlIElQdjYgbmV0d29ya3MsIGlnbm9yaW5nIHpvbmUgaW5mb3JtYXRpb24uIFRvIGJlIHVzZWQgc3BhcmluZ2x5ISA8L3A+CisKKzwvZGl2PgorPC9kaXY+CiA8YSBpZD0iYTc2YjAxZjc2YjY1NjQ3NzY3ZDAwZWU5ZmFkOWZiYWEyIiBuYW1lPSJhNzZiMDFmNzZiNjU2NDc3NjdkMDBlZTlmYWQ5ZmJhYTIiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhNzZiMDFmNzZiNjU2NDc3NjdkMDBlZTlmYWQ5ZmJhYTIiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwNl9hZGRyX25ldGNtcDwvaDI+CiAKQEAgLTU2NSwxOCArNjUwLDkgQEAKICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSIjYWNjMTYyMmFiODk1NjgwZGEwYTNiNmU1ZTU2MDcwMzQyIj5pcDZfYWRkcl9uZXRjbXBfem9uZWxlc3M8L2E+KChhZGRyMSksIChhZGRyMikpICZhbXA7JmFtcDsgXDwvZGl2PgotPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXA2X2FkZHJfY21wX3pvbmUoKGFkZHIxKSwgKGFkZHIyKSkpPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXA2X19hZGRyXzhoX2h0bWxfYWNjMTYyMmFiODk1NjgwZGEwYTNiNmU1ZTU2MDcwMzQyIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNhY2MxNjIyYWI4OTU2ODBkYTBhM2I2ZTVlNTYwNzAzNDIiPmlwNl9hZGRyX25ldGNtcF96b25lbGVzczwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgaXA2X2FkZHJfbmV0Y21wX3pvbmVsZXNzKGFkZHIxLCBhZGRyMik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA2X2FkZHIuaDoxNTA8L2Rpdj48L2Rpdj4KLTwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+RGV0ZXJtaW5lIGlmIHR3byBJUHY2IGFkZHJlc3MgYXJlIG9uIHRoZSBzYW1lIG5ldHdvcmsuPC9wPgotPGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+Ci0gIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmFkZHIxPC90ZD48dGQ+SVB2NiBhZGRyZXNzIDEgPC90ZD48L3RyPgotICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+YWRkcjI8L3RkPjx0ZD5JUHY2IGFkZHJlc3MgMiA8L3RkPjwvdHI+Ci0gIDwvdGFibGU+Ci0gIDwvZGQ+Ci08L2RsPgotPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD4xIGlmIHRoZSBuZXR3b3JrIGlkZW50aWZpZXJzIG9mIGJvdGggYWRkcmVzcyBtYXRjaCwgMCBpZiBub3QgPC9kZD48L2RsPgorPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj48YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNhOWE5ODNjN2Q2MTNhYjQ1ZTM3YWFmNjZjMDY3YTBjN2EiPmlwNl9hZGRyX25ldF9lcTwvYT4oYWRkcjEsIGFkZHIyKTwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWlwNl9fYWRkcl84aF9odG1sX2E5YTk4M2M3ZDYxM2FiNDVlMzdhYWY2NmMwNjdhMGM3YSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjYTlhOTgzYzdkNjEzYWI0NWUzN2FhZjY2YzA2N2EwYzdhIj5pcDZfYWRkcl9uZXRfZXE8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIGlwNl9hZGRyX25ldF9lcShhZGRyMSwgYWRkcjIpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwNl9hZGRyLmg6MTY3PC9kaXY+PC9kaXY+Cis8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkRldGVybWluZSBpZiB0d28gSVB2NiBhZGRyZXNzIGFyZSBvbiB0aGUgc2FtZSBuZXR3b3JrLiA8L3A+PGRsIGNsYXNzPSJkZXByZWNhdGVkIj48ZHQ+PGI+PGEgY2xhc3M9ImVsIiBocmVmPSJkZXByZWNhdGVkLmh0bWwjX2RlcHJlY2F0ZWQwMDAwMDYiPkRlcHJlY2F0ZWQ8L2E+PC9iPjwvZHQ+PGRkPlJlbmFtZWQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSIjYTlhOTgzYzdkNjEzYWI0NWUzN2FhZjY2YzA2N2EwYzdhIj5pcDZfYWRkcl9uZXRfZXE8L2E+IDwvZGQ+PC9kbD4KIAogPC9kaXY+CiA8L2Rpdj4KQEAgLTU5OCw5ICs2NzQsNDAgQEAKICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKGFkZHIxKS0mZ3Q7YWRkclswXSA9PSAoYWRkcjIpLSZndDthZGRyWzBdKSAmYW1wOyZhbXA7IFw8L2Rpdj4KLTxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChhZGRyMSktJmd0O2FkZHJbMV0gPT0gKGFkZHIyKS0mZ3Q7YWRkclsxXSkpPC9kaXY+Ci08L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkNvbXBhcmUgSVB2NiBuZXR3b3JrcywgaWdub3Jpbmcgem9uZSBpbmZvcm1hdGlvbi4gVG8gYmUgdXNlZCBzcGFyaW5nbHkhIDwvcD4KKzxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+PGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSIjYWZjOWQyYjhkMGEwNWYyZmYyM2FiM2I3ZmQzYmY4MjI5Ij5pcDZfYWRkcl9uZXRfem9uZWxlc3NfZXE8L2E+KGFkZHIxLCBhZGRyMik8L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PGRsIGNsYXNzPSJkZXByZWNhdGVkIj48ZHQ+PGI+PGEgY2xhc3M9ImVsIiBocmVmPSJkZXByZWNhdGVkLmh0bWwjX2RlcHJlY2F0ZWQwMDAwMDUiPkRlcHJlY2F0ZWQ8L2E+PC9iPjwvZHQ+PGRkPlJlbmFtZWQgdG8gPGEgY2xhc3M9ImVsIiBocmVmPSIjYWZjOWQyYjhkMGEwNWYyZmYyM2FiM2I3ZmQzYmY4MjI5Ij5pcDZfYWRkcl9uZXRfem9uZWxlc3NfZXE8L2E+IDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJhYTMyNGFjNjVkNTM3OTk3ZWJhYWVkNzhiZDQwZjZkYTkiIG5hbWU9ImFhMzI0YWM2NWQ1Mzc5OTdlYmFhZWQ3OGJkNDBmNmRhOSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FhMzI0YWM2NWQ1Mzc5OTdlYmFhZWQ3OGJkNDBmNmRhOSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+aXA2X2FkZHJfcGFja2VkX2VxPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj4jZGVmaW5lIGlwNl9hZGRyX3BhY2tlZF9lcTwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmlwNmFkZHI8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnBhZGRyPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT56b25lX2lkeDwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKGlwNmFkZHIpLSZndDthZGRyWzBdID09IChwYWRkciktJmd0O2FkZHJbMF0pICZhbXA7JmFtcDsgXDwvZGl2PgorPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChpcDZhZGRyKS0mZ3Q7YWRkclsxXSA9PSAocGFkZHIpLSZndDthZGRyWzFdKSAmYW1wOyZhbXA7IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoaXA2YWRkciktJmd0O2FkZHJbMl0gPT0gKHBhZGRyKS0mZ3Q7YWRkclsyXSkgJmFtcDsmYW1wOyBcPC9kaXY+Cis8ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGlwNmFkZHIpLSZndDthZGRyWzNdID09IChwYWRkciktJmd0O2FkZHJbM10pICZhbXA7JmFtcDsgXDwvZGl2PgorPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXA2X2FkZHJfZXF1YWxzX3pvbmUoKGlwNmFkZHIpLCAoem9uZV9pZHgpKSk8L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+Q29tcGFyZSBJUHY2IGFkZHJlc3MgdG8gcGFja2VkIGFkZHJlc3MgYW5kIHpvbmUgPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgpAQCAtNzcwLDYgKzg3NywzMiBAQAogCiA8L2Rpdj4KIDwvZGl2PgorPGEgaWQ9ImE4MTFkOGEyYWE2NDE3YWUyMmE3YTQ2YjI3ZDllYWQyNiIgbmFtZT0iYTgxMWQ4YTJhYTY0MTdhZTIyYTdhNDZiMjdkOWVhZDI2Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTgxMWQ4YTJhYTY0MTdhZTIyYTdhNDZiMjdkOWVhZDI2Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5pcDZfYWRkcl96b25lbGVzc19lcTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBpcDZfYWRkcl96b25lbGVzc19lcTwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmFkZHIxPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyMjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKGFkZHIxKS0mZ3Q7YWRkclswXSA9PSAoYWRkcjIpLSZndDthZGRyWzBdKSAmYW1wOyZhbXA7IFw8L2Rpdj4KKzxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYWRkcjEpLSZndDthZGRyWzFdID09IChhZGRyMiktJmd0O2FkZHJbMV0pICZhbXA7JmFtcDsgXDwvZGl2PgorPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChhZGRyMSktJmd0O2FkZHJbMl0gPT0gKGFkZHIyKS0mZ3Q7YWRkclsyXSkgJmFtcDsmYW1wOyBcPC9kaXY+Cis8ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGFkZHIxKS0mZ3Q7YWRkclszXSA9PSAoYWRkcjIpLSZndDthZGRyWzNdKSk8L2Rpdj4KKzwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+Q29tcGFyZSBJUHY2IGFkZHJlc3NlcywgaWdub3Jpbmcgem9uZSBpbmZvcm1hdGlvbi4gVG8gYmUgdXNlZCBzcGFyaW5nbHkhIDwvcD4KKworPC9kaXY+Cis8L2Rpdj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPlR5cGVkZWYgRG9jdW1lbnRhdGlvbjwvaDI+CiA8YSBpZD0iYWFjYTllNzk2ZTkzYTM1NTI5NGM0OTU0YzA4ZDAxNzYyIiBuYW1lPSJhYWNhOWU3OTZlOTNhMzU1Mjk0YzQ5NTRjMDhkMDE3NjIiPjwvYT4KIDxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhYWNhOWU3OTZlOTNhMzU1Mjk0YzQ5NTRjMDhkMDE3NjIiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPmlwNl9hZGRyX3Q8L2gyPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2X19hZGRyXzhoLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2X19hZGRyXzhoLmpzCmluZGV4IDRlYzBmYzguLmE3MjEwNzQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl9fYWRkcl84aC5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfX2FkZHJfOGguanMKQEAgLTE2LDE0ICsxNiwxOSBAQAogICAgIFsgImlwNl9hZGRyX2NvcHkiLCAiaXA2X19hZGRyXzhoLmh0bWwjYTdiMTdlODVhNDZiZDgzNjhjZTI3ZmM2NDRlMDU4MDczIiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX2NvcHlfZnJvbV9wYWNrZWQiLCAiaXA2X19hZGRyXzhoLmh0bWwjYTA1NTc1ZDQ2YzIzM2ZmYjEzZmIwM2EzYTJjOGExNmIzIiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX2NvcHlfdG9fcGFja2VkIiwgImlwNl9fYWRkcl84aC5odG1sI2E2YzQ2ZDEyZmE3ZDM2YzQ3YjYyOWQwY2NkZWZhMTE0YiIsIG51bGwgXSwKKyAgICBbICJpcDZfYWRkcl9lcSIsICJpcDZfX2FkZHJfOGguaHRtbCNhOWVhMGI2YjgzN2JhZmYxZTFlNjJjY2NkNGYxN2Q1MGUiLCBudWxsIF0sCisgICAgWyAiaXA2X2FkZHJfbmV0X2VxIiwgImlwNl9fYWRkcl84aC5odG1sI2E5YTk4M2M3ZDYxM2FiNDVlMzdhYWY2NmMwNjdhMGM3YSIsIG51bGwgXSwKKyAgICBbICJpcDZfYWRkcl9uZXRfem9uZWxlc3NfZXEiLCAiaXA2X19hZGRyXzhoLmh0bWwjYWZjOWQyYjhkMGEwNWYyZmYyM2FiM2I3ZmQzYmY4MjI5IiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX25ldGNtcCIsICJpcDZfX2FkZHJfOGguaHRtbCNhNzZiMDFmNzZiNjU2NDc3NjdkMDBlZTlmYWQ5ZmJhYTIiLCBudWxsIF0sCiAgICAgWyAiaXA2X2FkZHJfbmV0Y21wX3pvbmVsZXNzIiwgImlwNl9fYWRkcl84aC5odG1sI2FjYzE2MjJhYjg5NTY4MGRhMGEzYjZlNWU1NjA3MDM0MiIsIG51bGwgXSwKKyAgICBbICJpcDZfYWRkcl9wYWNrZWRfZXEiLCAiaXA2X19hZGRyXzhoLmh0bWwjYWEzMjRhYzY1ZDUzNzk5N2ViYWFlZDc4YmQ0MGY2ZGE5IiwgbnVsbCBdLAogICAgIFsgIklQNl9BRERSX1BBUlQiLCAiaXA2X19hZGRyXzhoLmh0bWwjYTFkNzhmZWViNTBhZWM4ZjJjMDdkODQwODI5ZjQ5ZGRkIiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX3NldCIsICJpcDZfX2FkZHJfOGguaHRtbCNhYTdiNGJhNDIwMmI1ZjY0ZGVlNjA1ZmUxNTllOWMzYWQiLCBudWxsIF0sCiAgICAgWyAiaXA2X2FkZHJfc2V0X2FueSIsICJpcDZfX2FkZHJfOGguaHRtbCNhZTJkMWNlNTBlYzZkYmVlODkwZTJmOGFlNjRhYmRmNmIiLCBudWxsIF0sCiAgICAgWyAiaXA2X2FkZHJfc2V0X2h0b24iLCAiaXA2X19hZGRyXzhoLmh0bWwjYWQ2MzZjMjdkNTZkMWIzZGVjYTlmNzgwYmMxNzNkM2MyIiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX3NldF9sb29wYmFjayIsICJpcDZfX2FkZHJfOGguaHRtbCNhMDJmNTI3MWU5MjJmMzRhMDkxNTNjZTg0ODM5YWQyOTIiLCBudWxsIF0sCiAgICAgWyAiaXA2X2FkZHJfc2V0X3plcm8iLCAiaXA2X19hZGRyXzhoLmh0bWwjYWY2OTZkM2I4MWY0Y2I5YzQwZWNlOTEyZGU3M2VkNTNjIiwgbnVsbCBdLAorICAgIFsgImlwNl9hZGRyX3pvbmVsZXNzX2VxIiwgImlwNl9fYWRkcl84aC5odG1sI2E4MTFkOGEyYWE2NDE3YWUyMmE3YTQ2YjI3ZDllYWQyNiIsIG51bGwgXSwKICAgICBbICJpcDZfYWRkcl90IiwgImlwNl9fYWRkcl84aC5odG1sI2FhY2E5ZTc5NmU5M2EzNTUyOTRjNDk1NGMwOGQwMTc2MiIsIG51bGwgXSwKICAgICBbICJpcDZhZGRyX2F0b24iLCAiaXA2X19hZGRyXzhoLmh0bWwjYTNmNTU1YWUzMDJlYjA1NmYyOGY2Y2IyNjZhMjcwMzZlIiwgbnVsbCBdLAogICAgIFsgImlwNmFkZHJfbnRvYSIsICJpcDZfX2FkZHJfOGguaHRtbCNhYjE1M2U1YjU4YTU2NzRlNWUxYmFjZGJiYzA5MzRjNDQiLCBudWxsIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfX2ZyYWdfOGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl9fZnJhZ184Yy5odG1sCmluZGV4IGI5MGI0ZmIuLmVjNzIxYjcgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl9fZnJhZ184Yy5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl9fZnJhZ184Yy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl9fZnJhZ184aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2X19mcmFnXzhoLmh0bWwKaW5kZXggM2UwYjNhYi4uOTc5MGU4ZiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2X19mcmFnXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2X19mcmFnXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2X196b25lXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfX3pvbmVfOGguaHRtbAppbmRleCBiMjhlZWU2Li43MmM1NWE4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfX3pvbmVfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfX3pvbmVfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMjIsOCArMTIyLDEwIEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTczNDc3Mjk0ODVkODM3YmNmZjg1YWU0NzMxYmJmNWM0Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhZWVhZDgzNzljYzNmZDRjMjU3YmUwYmI2NTQ5OTRhOGYiIGlkPSJyX2dhZWVhZDgzNzljYzNmZDRjMjU3YmUwYmI2NTQ5OTRhOGYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhZWVhZDgzNzljYzNmZDRjMjU3YmUwYmI2NTQ5OTRhOGYiPmlwNl9hZGRyX2VxdWFsc196b25lPC9hPihpcDZhZGRyLCAgem9uZV9pZHgpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FlZWFkODM3OWNjM2ZkNGMyNTdiZTBiYjY1NDk5NGE4ZiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYWNiYjhlMWE3NTA1ZDk3NzIxODFkZWZhMGU3NWI4ZGE5IiBpZD0icl9nYWNiYjhlMWE3NTA1ZDk3NzIxODFkZWZhMGU3NWI4ZGE5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWNiYjhlMWE3NTA1ZDk3NzIxODFkZWZhMGU3NWI4ZGE5Ij5pcDZfYWRkcl9jbXBfem9uZTwvYT4oaXA2YWRkcjEsICBpcDZhZGRyMik8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYWNiYjhlMWE3NTA1ZDk3NzIxODFkZWZhMGU3NWI4ZGE5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhYzAxZDBiYWQwYTY4MmRjYzIzOWJhM2Q1Njk1ZTA2NDgiIGlkPSJyX2dhYzAxZDBiYWQwYTY4MmRjYzIzOWJhM2Q1Njk1ZTA2NDgiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhYzAxZDBiYWQwYTY4MmRjYzIzOWJhM2Q1Njk1ZTA2NDgiPmlwNl9hZGRyX2NtcF96b25lPC9hPihhZGRyMSwgIGFkZHIyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYzAxZDBiYWQwYTY4MmRjYzIzOWJhM2Q1Njk1ZTA2NDgiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FiYzZkNWY4MzNiMmFiZWYzMWFhNjAyZGMxMWFjZTBhOSIgaWQ9InJfZ2FiYzZkNWY4MzNiMmFiZWYzMWFhNjAyZGMxMWFjZTBhOSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FiYzZkNWY4MzNiMmFiZWYzMWFhNjAyZGMxMWFjZTBhOSI+aXA2X2FkZHJfem9uZV9lcTwvYT4oaXA2YWRkcjEsICBpcDZhZGRyMik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWJjNmQ1ZjgzM2IyYWJlZjMxYWE2MDJkYzExYWNlMGE5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhZTY3N2E2NTk3MGY0YjY2NzE1NmIyNTZkZDlhNDkyNGIiIGlkPSJyX2dhZTY3N2E2NTk3MGY0YjY2NzE1NmIyNTZkZDlhNDkyNGIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2X196b25lcy5odG1sI2dhZTY3N2E2NTk3MGY0YjY2NzE1NmIyNTZkZDlhNDkyNGIiPklQVjZfQ1VTVE9NX1NDT1BFUzwvYT4mIzE2MDsmIzE2MDsmIzE2MDswPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FlNjc3YTY1OTcwZjRiNjY3MTU2YjI1NmRkOWE0OTI0YiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYWE1MzMyYmIzYjcwYzFhOWFjYmExYmVhM2VhMGVjYjkwIiBpZD0icl9nYWE1MzMyYmIzYjcwYzFhOWFjYmExYmVhM2VhMGVjYjkwIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWE1MzMyYmIzYjcwYzFhOWFjYmExYmVhM2VhMGVjYjkwIj5pcDZfYWRkcl9oYXNfc2NvcGU8L2E+KGlwNmFkZHIsICB0eXBlKTwvdGQ+PC90cj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl9fem9uZV84aC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwNl9fem9uZV84aC5qcwppbmRleCAzYWUzYWFlLi5iN2FiZmM2IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcDZfX3pvbmVfOGguanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXA2X196b25lXzhoLmpzCkBAIC0yLDcgKzIsNyBAQAogWwogICAgIFsgImlwNl9hZGRyX2Fzc2lnbl96b25lIiwgImdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2ExMDQwYTNkNjc0OThhMWVmNjE3YmRhOGQ5ZTBiYTNhNSIsIG51bGwgXSwKICAgICBbICJpcDZfYWRkcl9jbGVhcl96b25lIiwgImdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FlMDI0OWRiNmNkMjY4N2YyZGJjNDQ1ZTc3NzhkMzdhZCIsIG51bGwgXSwKLSAgICBbICJpcDZfYWRkcl9jbXBfem9uZSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhY2JiOGUxYTc1MDVkOTc3MjE4MWRlZmEwZTc1YjhkYTkiLCBudWxsIF0sCisgICAgWyAiaXA2X2FkZHJfY21wX3pvbmUiLCAiZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWMwMWQwYmFkMGE2ODJkY2MyMzliYTNkNTY5NWUwNjQ4IiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX2NvcHlfem9uZSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhNzM0NzcyOTQ4NWQ4MzdiY2ZmODVhZTQ3MzFiYmY1YzQiLCBudWxsIF0sCiAgICAgWyAiaXA2X2FkZHJfZXF1YWxzX3pvbmUiLCAiZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWVlYWQ4Mzc5Y2MzZmQ0YzI1N2JlMGJiNjU0OTk0YThmIiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX2hhc19zY29wZSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhYTUzMzJiYjNiNzBjMWE5YWNiYTFiZWEzZWEwZWNiOTAiLCBudWxsIF0sCkBAIC0xMiw2ICsxMiw3IEBACiAgICAgWyAiaXA2X2FkZHJfc2V0X3pvbmUiLCAiZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYTIxMzMxMGIzMDNkZDA1MGRhNzg1NmQ2N2RhNzJhYmQ2IiwgbnVsbCBdLAogICAgIFsgImlwNl9hZGRyX3Rlc3Rfem9uZSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhYzNlYzVmOTRlMWNkNjJiMTIzN2VmY2EzNzIzZGMwNmUiLCBudWxsIF0sCiAgICAgWyAiaXA2X2FkZHJfem9uZSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhZWU4M2UxMjY0OWZhOTcwNjg1N2M5YWQ4ZjllZjg2MzQiLCBudWxsIF0sCisgICAgWyAiaXA2X2FkZHJfem9uZV9lcSIsICJncm91cF9faXA2X196b25lcy5odG1sI2dhYmM2ZDVmODMzYjJhYmVmMzFhYTYwMmRjMTFhY2UwYTkiLCBudWxsIF0sCiAgICAgWyAiSVA2X05PX1pPTkUiLCAiZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYTIwNDkxNjdkMTcxNWI5YTljZjI3MzBlMTIyYzBkNGZiIiwgbnVsbCBdLAogICAgIFsgIklQQUREUjZfWk9ORV9JTklUIiwgImdyb3VwX19pcDZfX3pvbmVzLmh0bWwjZ2FhMDkwZTU0ZjYzMmM4NTEyYTc5OTEzMDdlMDExYzFiOSIsIG51bGwgXSwKICAgICBbICJJUFY2X0NVU1RPTV9TQ09QRVMiLCAiZ3JvdXBfX2lwNl9fem9uZXMuaHRtbCNnYWU2NzdhNjU5NzBmNGI2NjcxNTZiMjU2ZGQ5YTQ5MjRiIiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXBfOGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwXzhjLmh0bWwKaW5kZXggYzJkNjRhMy4uZWNmZjljNyAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXBfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcF84Yy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcF84aC5odG1sCmluZGV4IGQ3ZTRmNmEuLjU1NGU4NDQgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXBfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0yMDksNyArMjA5LDcgQEAKIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+KDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj5pcF8yX2lwNDwvYT4oJmFtcDs8YSBjbGFzcz0iY29kZSBobF92YXJpYWJsZSIgaHJlZj0iI2FjOTQ0ZmI2NTY0ZjE4MWJjOTBiYzdjMmI4YjAwZDk0YyI+aXBfZGF0YTwvYT4uPGEgY2xhc3M9ImNvZGUgaGxfdmFyaWFibGUiIGhyZWY9InN0cnVjdGlwX19nbG9iYWxzLmh0bWwjYTBiNGU1NDI1MGM2OTJjNjM4NDA4ZGU1NDU5M2QyYWExIj5jdXJyZW50X2lwaGRyX2Rlc3Q8L2E+KSk8L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFncm91cF9faXA0YWRkcl9odG1sX2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj5pcF8yX2lwNDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgaXBfMl9pcDQoaXBhZGRyKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcF9hZGRyLmg6MTIwPC9kaXY+PC9kaXY+CiA8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXBfOGhfaHRtbF9hYzk0NGZiNjU2NGYxODFiYzkwYmM3YzJiOGIwMGQ5NGMiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2FjOTQ0ZmI2NTY0ZjE4MWJjOTBiYzdjMmI4YjAwZDk0YyI+aXBfZGF0YTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnN0cnVjdCBpcF9nbG9iYWxzIGlwX2RhdGE8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXAuYzo2NDwvZGl2PjwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdGlwX19nbG9iYWxzX2h0bWxfYTBiNGU1NDI1MGM2OTJjNjM4NDA4ZGU1NDU5M2QyYWExIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdGlwX19nbG9iYWxzLmh0bWwjYTBiNGU1NDI1MGM2OTJjNjM4NDA4ZGU1NDU5M2QyYWExIj5pcF9nbG9iYWxzOjpjdXJyZW50X2lwaGRyX2Rlc3Q8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5pcF9hZGRyX3QgY3VycmVudF9pcGhkcl9kZXN0PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTI2PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0aXBfX2dsb2JhbHNfaHRtbF9hMGI0ZTU0MjUwYzY5MmM2Mzg0MDhkZTU0NTkzZDJhYTEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0aXBfX2dsb2JhbHMuaHRtbCNhMGI0ZTU0MjUwYzY5MmM2Mzg0MDhkZTU0NTkzZDJhYTEiPmlwX2dsb2JhbHM6OmN1cnJlbnRfaXBoZHJfZGVzdDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmlwX2FkZHJfdCBjdXJyZW50X2lwaGRyX2Rlc3Q8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXAuaDoxMzc8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+RGVzdGluYXRpb24gSVA0IGFkZHJlc3Mgb2YgY3VycmVudF9oZWFkZXIgPC9wPgogCiA8L2Rpdj4KQEAgLTIyOSw3ICsyMjksNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPjxhIGNsYXNzPSJjb2RlIGhsX3ZhcmlhYmxlIiBocmVmPSIjYWM5NDRmYjY1NjRmMTgxYmM5MGJjN2MyYjhiMDBkOTRjIj5pcF9kYXRhPC9hPi48YSBjbGFzcz0iY29kZSBobF92YXJpYWJsZSIgaHJlZj0ic3RydWN0aXBfX2dsb2JhbHMuaHRtbCNhMmU4MTBmOTdjZjNlOGU4NTVlM2JhYWZjM2JlOGMwZDQiPmN1cnJlbnRfaXA0X2hlYWRlcjwvYT48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RpcF9fZ2xvYmFsc19odG1sX2EyZTgxMGY5N2NmM2U4ZTg1NWUzYmFhZmMzYmU4YzBkNCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RpcF9fZ2xvYmFscy5odG1sI2EyZTgxMGY5N2NmM2U4ZTg1NWUzYmFhZmMzYmU4YzBkNCI+aXBfZ2xvYmFsczo6Y3VycmVudF9pcDRfaGVhZGVyPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+Y29uc3Qgc3RydWN0IGlwX2hkciAqIGN1cnJlbnRfaXA0X2hlYWRlcjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcC5oOjExNTwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdGlwX19nbG9iYWxzX2h0bWxfYTJlODEwZjk3Y2YzZThlODU1ZTNiYWFmYzNiZThjMGQ0Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdGlwX19nbG9iYWxzLmh0bWwjYTJlODEwZjk3Y2YzZThlODU1ZTNiYWFmYzNiZThjMGQ0Ij5pcF9nbG9iYWxzOjpjdXJyZW50X2lwNF9oZWFkZXI8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5jb25zdCBzdHJ1Y3QgaXBfaGRyICogY3VycmVudF9pcDRfaGVhZGVyPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTI2PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkdldCB0aGUgSVB2NCBoZWFkZXIgb2YgdGhlIGN1cnJlbnQgcGFja2V0LiBUaGlzIGZ1bmN0aW9uIG11c3Qgb25seSBiZSBjYWxsZWQgZnJvbSBhIHJlY2VpdmUgY2FsbGJhY2sgKHVkcF9yZWN2LCByYXdfcmVjdiwgdGNwX2FjY2VwdCkuIEl0IHdpbGwgcmV0dXJuIE5VTEwgb3RoZXJ3aXNlLiA8L3A+CiAKIDwvZGl2PgpAQCAtMjQ5LDcgKzI0OSw3IEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+KDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj5pcF8yX2lwNDwvYT4oJmFtcDs8YSBjbGFzcz0iY29kZSBobF92YXJpYWJsZSIgaHJlZj0iI2FjOTQ0ZmI2NTY0ZjE4MWJjOTBiYzdjMmI4YjAwZDk0YyI+aXBfZGF0YTwvYT4uPGEgY2xhc3M9ImNvZGUgaGxfdmFyaWFibGUiIGhyZWY9InN0cnVjdGlwX19nbG9iYWxzLmh0bWwjYTA0ZDg1YTNkYzJjNDE3MDUwYjNlMDg4ZmE1OGE3NGIwIj5jdXJyZW50X2lwaGRyX3NyYzwvYT4pKTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdGlwX19nbG9iYWxzX2h0bWxfYTA0ZDg1YTNkYzJjNDE3MDUwYjNlMDg4ZmE1OGE3NGIwIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdGlwX19nbG9iYWxzLmh0bWwjYTA0ZDg1YTNkYzJjNDE3MDUwYjNlMDg4ZmE1OGE3NGIwIj5pcF9nbG9iYWxzOjpjdXJyZW50X2lwaGRyX3NyYzwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmlwX2FkZHJfdCBjdXJyZW50X2lwaGRyX3NyYzwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcC5oOjEyNDwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdGlwX19nbG9iYWxzX2h0bWxfYTA0ZDg1YTNkYzJjNDE3MDUwYjNlMDg4ZmE1OGE3NGIwIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdGlwX19nbG9iYWxzLmh0bWwjYTA0ZDg1YTNkYzJjNDE3MDUwYjNlMDg4ZmE1OGE3NGIwIj5pcF9nbG9iYWxzOjpjdXJyZW50X2lwaGRyX3NyYzwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmlwX2FkZHJfdCBjdXJyZW50X2lwaGRyX3NyYzwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcC5oOjEzNTwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5Tb3VyY2UgSVA0IGFkZHJlc3Mgb2YgY3VycmVudF9oZWFkZXIgPC9wPgogCiA8L2Rpdj4KQEAgLTI5MCw3ICsyOTAsNyBAQAogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+KCg8c3BhbiBjbGFzcz0ia2V5d29yZCI+Y29uc3Q8L3NwYW4+IDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5zdHJ1Y3QgPC9zcGFuPjxhIGNsYXNzPSJjb2RlIGhsX3N0cnVjdCIgaHJlZj0ic3RydWN0aXA2X19oZHIuaHRtbCI+aXA2X2hkcjwvYT4qKSg8YSBjbGFzcz0iY29kZSBobF92YXJpYWJsZSIgaHJlZj0iI2FjOTQ0ZmI2NTY0ZjE4MWJjOTBiYzdjMmI4YjAwZDk0YyI+aXBfZGF0YTwvYT4uPGEgY2xhc3M9ImNvZGUgaGxfdmFyaWFibGUiIGhyZWY9InN0cnVjdGlwX19nbG9iYWxzLmh0bWwjYWE1Y2ZjM2FjMjlkYzc0NmE0Y2JlODQ0MjA2YjBlZDQxIj5jdXJyZW50X2lwNl9oZWFkZXI8L2E+KSk8L2Rpdj4KIDxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RpcDZfX2hkcl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdGlwNl9faGRyLmh0bWwiPmlwNl9oZHI8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwNi5oOjgyPC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0aXBfX2dsb2JhbHNfaHRtbF9hYTVjZmMzYWMyOWRjNzQ2YTRjYmU4NDQyMDZiMGVkNDEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0aXBfX2dsb2JhbHMuaHRtbCNhYTVjZmMzYWMyOWRjNzQ2YTRjYmU4NDQyMDZiMGVkNDEiPmlwX2dsb2JhbHM6OmN1cnJlbnRfaXA2X2hlYWRlcjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnN0cnVjdCBpcDZfaGRyICogY3VycmVudF9pcDZfaGVhZGVyPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTE5PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0aXBfX2dsb2JhbHNfaHRtbF9hYTVjZmMzYWMyOWRjNzQ2YTRjYmU4NDQyMDZiMGVkNDEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0aXBfX2dsb2JhbHMuaHRtbCNhYTVjZmMzYWMyOWRjNzQ2YTRjYmU4NDQyMDZiMGVkNDEiPmlwX2dsb2JhbHM6OmN1cnJlbnRfaXA2X2hlYWRlcjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnN0cnVjdCBpcDZfaGRyICogY3VycmVudF9pcDZfaGVhZGVyPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTMwPC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkdldCB0aGUgSVB2NiBoZWFkZXIgb2YgdGhlIGN1cnJlbnQgcGFja2V0LiBUaGlzIGZ1bmN0aW9uIG11c3Qgb25seSBiZSBjYWxsZWQgZnJvbSBhIHJlY2VpdmUgY2FsbGJhY2sgKHVkcF9yZWN2LCByYXdfcmVjdiwgdGNwX2FjY2VwdCkuIEl0IHdpbGwgcmV0dXJuIE5VTEwgb3RoZXJ3aXNlLiA8L3A+CiAKIDwvZGl2PgpAQCAtMzcxLDkgKzM3MSw5IEBACiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2FiYzU2NjIzZDQzNGEyMDQyOThhNGU5ODM1MmFmMWM5ZCI+aXBfY3VycmVudF9pc192NjwvYT4oKSA/IFw8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVA2SF9ORVhUSCg8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNhZjliZjc0NzUwYzlkN2EyMTllZTg4ZDI0MDMwMGZlNjkiPmlwNl9jdXJyZW50X2hlYWRlcjwvYT4oKSkgOlw8L2Rpdj4KIDxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVBIX1BST1RPKDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2EzY2U0ODJiN2UwODI4MmVmZmQ2NzAwMDExOThlY2Q4NyI+aXA0X2N1cnJlbnRfaGVhZGVyPC9hPigpKSk8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFpcF84aF9odG1sX2EzY2U0ODJiN2UwODI4MmVmZmQ2NzAwMDExOThlY2Q4NyI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjYTNjZTQ4MmI3ZTA4MjgyZWZmZDY3MDAwMTE5OGVjZDg3Ij5pcDRfY3VycmVudF9oZWFkZXI8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIGlwNF9jdXJyZW50X2hlYWRlcigpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTUxPC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXBfOGhfaHRtbF9hYmM1NjYyM2Q0MzRhMjA0Mjk4YTRlOTgzNTJhZjFjOWQiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2FiYzU2NjIzZDQzNGEyMDQyOThhNGU5ODM1MmFmMWM5ZCI+aXBfY3VycmVudF9pc192NjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgaXBfY3VycmVudF9pc192NigpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTU3PC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXBfOGhfaHRtbF9hZjliZjc0NzUwYzlkN2EyMTllZTg4ZDI0MDMwMGZlNjkiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2FmOWJmNzQ3NTBjOWQ3YTIxOWVlODhkMjQwMzAwZmU2OSI+aXA2X2N1cnJlbnRfaGVhZGVyPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBpcDZfY3VycmVudF9oZWFkZXIoKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcC5oOjE1NTwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWlwXzhoX2h0bWxfYTNjZTQ4MmI3ZTA4MjgyZWZmZDY3MDAwMTE5OGVjZDg3Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNhM2NlNDgyYjdlMDgyODJlZmZkNjcwMDAxMTk4ZWNkODciPmlwNF9jdXJyZW50X2hlYWRlcjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgaXA0X2N1cnJlbnRfaGVhZGVyKCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXAuaDoxNjI8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFpcF84aF9odG1sX2FiYzU2NjIzZDQzNGEyMDQyOThhNGU5ODM1MmFmMWM5ZCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjYWJjNTY2MjNkNDM0YTIwNDI5OGE0ZTk4MzUyYWYxYzlkIj5pcF9jdXJyZW50X2lzX3Y2PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+I2RlZmluZSBpcF9jdXJyZW50X2lzX3Y2KCk8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXAuaDoxNjg8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFpcF84aF9odG1sX2FmOWJmNzQ3NTBjOWQ3YTIxOWVlODhkMjQwMzAwZmU2OSI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSIjYWY5YmY3NDc1MGM5ZDdhMjE5ZWU4OGQyNDAzMDBmZTY5Ij5pcDZfY3VycmVudF9oZWFkZXI8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj4jZGVmaW5lIGlwNl9jdXJyZW50X2hlYWRlcigpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTY2PC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkdldCB0aGUgdHJhbnNwb3J0IGxheWVyIHByb3RvY29sIDwvcD4KIAogPC9kaXY+CkBAIC0zOTMsNyArMzkzLDcgQEAKICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgogPGI+VmFsdWU6PC9iPjxkaXYgY2xhc3M9ImZyYWdtZW50Ij48ZGl2IGNsYXNzPSJsaW5lIj4oPGEgY2xhc3M9ImNvZGUgaGxfdmFyaWFibGUiIGhyZWY9IiNhYzk0NGZiNjU2NGYxODFiYzkwYmM3YzJiOGIwMGQ5NGMiPmlwX2RhdGE8L2E+LjxhIGNsYXNzPSJjb2RlIGhsX3ZhcmlhYmxlIiBocmVmPSJzdHJ1Y3RpcF9fZ2xvYmFscy5odG1sI2ExNzAwNDUyNmU2ZjFhMTY0YzBiYWIwMWFlYWM1ZTM0YSI+Y3VycmVudF9pcF9oZWFkZXJfdG90X2xlbjwvYT4pPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0aXBfX2dsb2JhbHNfaHRtbF9hMTcwMDQ1MjZlNmYxYTE2NGMwYmFiMDFhZWFjNWUzNGEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0aXBfX2dsb2JhbHMuaHRtbCNhMTcwMDQ1MjZlNmYxYTE2NGMwYmFiMDFhZWFjNWUzNGEiPmlwX2dsb2JhbHM6OmN1cnJlbnRfaXBfaGVhZGVyX3RvdF9sZW48L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj51MTZfdCBjdXJyZW50X2lwX2hlYWRlcl90b3RfbGVuPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTIyPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0aXBfX2dsb2JhbHNfaHRtbF9hMTcwMDQ1MjZlNmYxYTE2NGMwYmFiMDFhZWFjNWUzNGEiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0ic3RydWN0aXBfX2dsb2JhbHMuaHRtbCNhMTcwMDQ1MjZlNmYxYTE2NGMwYmFiMDFhZWFjNWUzNGEiPmlwX2dsb2JhbHM6OmN1cnJlbnRfaXBfaGVhZGVyX3RvdF9sZW48L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj51MTZfdCBjdXJyZW50X2lwX2hlYWRlcl90b3RfbGVuPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTMzPC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPlRvdGFsIGhlYWRlciBsZW5ndGggb2YgaXAoNilfY3VycmVudF9oZWFkZXIoKSAoaS5lLiBhZnRlciB0aGlzLCB0aGUgVURQL1RDUCBoZWFkZXIgc3RhcnRzKSA8L3A+CiAKIDwvZGl2PgpAQCAtNDEzLDcgKzQxMyw3IEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+KDxhIGNsYXNzPSJjb2RlIGhsX3ZhcmlhYmxlIiBocmVmPSIjYWM5NDRmYjY1NjRmMTgxYmM5MGJjN2MyYjhiMDBkOTRjIj5pcF9kYXRhPC9hPi48YSBjbGFzcz0iY29kZSBobF92YXJpYWJsZSIgaHJlZj0ic3RydWN0aXBfX2dsb2JhbHMuaHRtbCNhN2RhODk5YzY2M2IxZDU2MGI2MWQ5MmJhNmQ1NDQ3MDEiPmN1cnJlbnRfaW5wdXRfbmV0aWY8L2E+KTwvZGl2PgotPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdGlwX19nbG9iYWxzX2h0bWxfYTdkYTg5OWM2NjNiMWQ1NjBiNjFkOTJiYTZkNTQ0NzAxIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdGlwX19nbG9iYWxzLmh0bWwjYTdkYTg5OWM2NjNiMWQ1NjBiNjFkOTJiYTZkNTQ0NzAxIj5pcF9nbG9iYWxzOjpjdXJyZW50X2lucHV0X25ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+c3RydWN0IG5ldGlmICogY3VycmVudF9pbnB1dF9uZXRpZjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcC5oOjExMjwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYXN0cnVjdGlwX19nbG9iYWxzX2h0bWxfYTdkYTg5OWM2NjNiMWQ1NjBiNjFkOTJiYTZkNTQ0NzAxIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdGlwX19nbG9iYWxzLmh0bWwjYTdkYTg5OWM2NjNiMWQ1NjBiNjFkOTJiYTZkNTQ0NzAxIj5pcF9nbG9iYWxzOjpjdXJyZW50X2lucHV0X25ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+c3RydWN0IG5ldGlmICogY3VycmVudF9pbnB1dF9uZXRpZjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcC5oOjEyMzwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5HZXQgdGhlIGludGVyZmFjZSB0aGF0IHJlY2VpdmVkIHRoZSBjdXJyZW50IHBhY2tldC4gVGhpcyBmdW5jdGlvbiBtdXN0IG9ubHkgYmUgY2FsbGVkIGZyb20gYSByZWNlaXZlIGNhbGxiYWNrICh1ZHBfcmVjdiwgcmF3X3JlY3YsIHRjcF9hY2NlcHQpLiBJdCB3aWxsIHJldHVybiBOVUxMIG90aGVyd2lzZS4gPC9wPgogCiA8L2Rpdj4KQEAgLTQ1Miw3ICs0NTIsNyBAQAogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+CiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPig8YSBjbGFzcz0iY29kZSBobF92YXJpYWJsZSIgaHJlZj0iI2FjOTQ0ZmI2NTY0ZjE4MWJjOTBiYzdjMmI4YjAwZDk0YyI+aXBfZGF0YTwvYT4uPGEgY2xhc3M9ImNvZGUgaGxfdmFyaWFibGUiIGhyZWY9InN0cnVjdGlwX19nbG9iYWxzLmh0bWwjYTc4MDNkYzU5NTBkMTQzZTQ0MzNhMGRmNjg5OTg5YmFiIj5jdXJyZW50X25ldGlmPC9hPik8L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RpcF9fZ2xvYmFsc19odG1sX2E3ODAzZGM1OTUwZDE0M2U0NDMzYTBkZjY4OTk4OWJhYiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RpcF9fZ2xvYmFscy5odG1sI2E3ODAzZGM1OTUwZDE0M2U0NDMzYTBkZjY4OTk4OWJhYiI+aXBfZ2xvYmFsczo6Y3VycmVudF9uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnN0cnVjdCBuZXRpZiAqIGN1cnJlbnRfbmV0aWY8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXAuaDoxMTA8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RpcF9fZ2xvYmFsc19odG1sX2E3ODAzZGM1OTUwZDE0M2U0NDMzYTBkZjY4OTk4OWJhYiI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RpcF9fZ2xvYmFscy5odG1sI2E3ODAzZGM1OTUwZDE0M2U0NDMzYTBkZjY4OTk4OWJhYiI+aXBfZ2xvYmFsczo6Y3VycmVudF9uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPnN0cnVjdCBuZXRpZiAqIGN1cnJlbnRfbmV0aWY8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXAuaDoxMjE8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+R2V0IHRoZSBpbnRlcmZhY2UgdGhhdCBhY2NlcHRlZCB0aGUgY3VycmVudCBwYWNrZXQuIFRoaXMgbWF5IG9yIG1heSBub3QgYmUgdGhlIHJlY2VpdmluZyBuZXRpZiwgZGVwZW5kaW5nIG9uIHlvdXIgbmV0aWYvbmV0d29yayBzZXR1cC4gVGhpcyBmdW5jdGlvbiBtdXN0IG9ubHkgYmUgY2FsbGVkIGZyb20gYSByZWNlaXZlIGNhbGxiYWNrICh1ZHBfcmVjdiwgcmF3X3JlY3YsIHRjcF9hY2NlcHQpLiBJdCB3aWxsIHJldHVybiBOVUxMIG90aGVyd2lzZS4gPC9wPgogCiA8L2Rpdj4KQEAgLTUzNiw3ICs1MzYsNyBAQAogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+ICAoKDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jb25zdDwvc3Bhbj4gPHNwYW4gY2xhc3M9ImtleXdvcmR0eXBlIj52b2lkPC9zcGFuPiopKCg8YSBjbGFzcz0iY29kZSBobF9kZWZpbmUiIGhyZWY9IiNhYmM1NjYyM2Q0MzRhMjA0Mjk4YTRlOTgzNTJhZjFjOWQiPmlwX2N1cnJlbnRfaXNfdjY8L2E+KCkgPyBcPC9kaXY+CiA8ZGl2IGNsYXNzPSJsaW5lIj4gICg8c3BhbiBjbGFzcz0ia2V5d29yZCI+Y29uc3Q8L3NwYW4+IHU4X3QqKTxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2FmOWJmNzQ3NTBjOWQ3YTIxOWVlODhkMjQwMzAwZmU2OSI+aXA2X2N1cnJlbnRfaGVhZGVyPC9hPigpIDogKDxzcGFuIGNsYXNzPSJrZXl3b3JkIj5jb25zdDwvc3Bhbj4gdThfdCopPGEgY2xhc3M9ImNvZGUgaGxfZGVmaW5lIiBocmVmPSIjYTNjZTQ4MmI3ZTA4MjgyZWZmZDY3MDAwMTE5OGVjZDg3Ij5pcDRfY3VycmVudF9oZWFkZXI8L2E+KCkpICArIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iI2EyY2ExNWVhMjg1YTEwOTgyMjk0Mzc4Y2Q3YjhlODNlMiI+aXBfY3VycmVudF9oZWFkZXJfdG90X2xlbjwvYT4oKSkpPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXBfOGhfaHRtbF9hMmNhMTVlYTI4NWExMDk4MjI5NDM3OGNkN2I4ZTgzZTIiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2EyY2ExNWVhMjg1YTEwOTgyMjk0Mzc4Y2Q3YjhlODNlMiI+aXBfY3VycmVudF9oZWFkZXJfdG90X2xlbjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgaXBfY3VycmVudF9oZWFkZXJfdG90X2xlbigpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTQxPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXBfOGhfaHRtbF9hMmNhMTVlYTI4NWExMDk4MjI5NDM3OGNkN2I4ZTgzZTIiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2EyY2ExNWVhMjg1YTEwOTgyMjk0Mzc4Y2Q3YjhlODNlMiI+aXBfY3VycmVudF9oZWFkZXJfdG90X2xlbjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPiNkZWZpbmUgaXBfY3VycmVudF9oZWFkZXJfdG90X2xlbigpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGlwLmg6MTUyPC9kaXY+PC9kaXY+CiA8L2Rpdj48IS0tIGZyYWdtZW50IC0tPjxwPkdldCB0aGUgdHJhbnNwb3J0IGxheWVyIGhlYWRlciA8L3A+CiAKIDwvZGl2PgpAQCAtNjIyLDggKzYyMiw4IEBACiA8Yj5WYWx1ZTo8L2I+PGRpdiBjbGFzcz0iZnJhZ21lbnQiPjxkaXYgY2xhc3M9ImxpbmUiPiAgICAgICAgKElQX0lTX1Y2KGRlc3QpID8gXDwvZGl2PgogPGRpdiBjbGFzcz0ibGluZSI+ICAgICAgICBpcDZfb3V0cHV0X2lmKHAsIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNmFkZHIuaHRtbCNnYTA2ZTc1YmNkMTk4MDEyYjViYTM5NDgwYzIzMzYwOGJkIj5pcF8yX2lwNjwvYT4oc3JjKSwgTFdJUF9JUF9IRFJJTkNMLCAwLCAwLCAwLCA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPikgOiBcPC9kaXY+CiA8ZGl2IGNsYXNzPSJsaW5lIj4gICAgICAgIDxhIGNsYXNzPSJjb2RlIGhsX2Z1bmN0aW9uIiBocmVmPSJpcDRfOGMuaHRtbCNhYjIyMGJjNGNlNGY0OGJkYmJhNDQ3MzU4YjM1OTQ5MTciPmlwNF9vdXRwdXRfaWY8L2E+KHAsIDxhIGNsYXNzPSJjb2RlIGhsX2RlZmluZSIgaHJlZj0iZ3JvdXBfX2lwNGFkZHIuaHRtbCNnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj5pcF8yX2lwNDwvYT4oc3JjKSwgTFdJUF9JUF9IRFJJTkNMLCAwLCAwLCAwLCA8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPikpPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhaXA0XzhjX2h0bWxfYWIyMjBiYzRjZTRmNDhiZGJiYTQ0NzM1OGIzNTk0OTE3Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9ImlwNF84Yy5odG1sI2FiMjIwYmM0Y2U0ZjQ4YmRiYmE0NDczNThiMzU5NDkxNyI+aXA0X291dHB1dF9pZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlY2kiPmVycl90IGlwNF9vdXRwdXRfaWYoc3RydWN0IHBidWYgKnAsIGNvbnN0IGlwNF9hZGRyX3QgKnNyYywgY29uc3QgaXA0X2FkZHJfdCAqZGVzdCwgdThfdCB0dGwsIHU4X3QgdG9zLCB1OF90IHByb3RvLCBzdHJ1Y3QgbmV0aWYgKm5ldGlmKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBpcDQuYzo3ODc8L2Rpdj48L2Rpdj4KLTxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2MDwvZGl2PjwvZGl2PgorPGRpdiBjbGFzcz0idHRjIiBpZD0iYWlwNF84Y19odG1sX2FiMjIwYmM0Y2U0ZjQ4YmRiYmE0NDczNThiMzU5NDkxNyI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJpcDRfOGMuaHRtbCNhYjIyMGJjNGNlNGY0OGJkYmJhNDQ3MzU4YjM1OTQ5MTciPmlwNF9vdXRwdXRfaWY8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCBpcDRfb3V0cHV0X2lmKHN0cnVjdCBwYnVmICpwLCBjb25zdCBpcDRfYWRkcl90ICpzcmMsIGNvbnN0IGlwNF9hZGRyX3QgKmRlc3QsIHU4X3QgdHRsLCB1OF90IHRvcywgdThfdCBwcm90bywgc3RydWN0IG5ldGlmICpuZXRpZik8L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gaXA0LmM6ODIxPC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNjk8L2Rpdj48L2Rpdj4KIDwvZGl2PjwhLS0gZnJhZ21lbnQgLS0+PHA+T3V0cHV0IElQIHBhY2tldCB0aGF0IGFscmVhZHkgaW5jbHVkZXMgYW4gSVAgaGVhZGVyLiA8L3A+CiAKIDwvZGl2PgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXBfX2FkZHJfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwX19hZGRyXzhoLmh0bWwKaW5kZXggODJkOWNhMC4uOTg3MDVkMiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvaXBfX2FkZHJfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcF9fYWRkcl84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyMiw2ICsxMjIsMzAgQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FkNzI2OGE0OTZiN2UzZjg3MmVmZWNkODU5ZWJhNmYwMyIgaWQ9InJfZ2FkNzI2OGE0OTZiN2UzZjg3MmVmZWNkODU5ZWJhNmYwMyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2FkNzI2OGE0OTZiN2UzZjg3MmVmZWNkODU5ZWJhNmYwMyI+aXBfMl9pcDQ8L2E+KGlwYWRkcik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWQ3MjY4YTQ5NmI3ZTNmODcyZWZlY2Q4NTllYmE2ZjAzIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhM2EyMTIzZjBiYmY2ZmU4NDNjODU0MmUzNDljNjgwZWIiIGlkPSJyX2dhM2EyMTIzZjBiYmY2ZmU4NDNjODU0MmUzNDljNjgwZWIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EzYTIxMjNmMGJiZjZmZTg0M2M4NTQyZTM0OWM2ODBlYiI+aXBfYWRkcl9uZXRjbXA8L2E+KGFkZHIxLCAgYWRkcjIsICBtYXNrKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhM2EyMTIzZjBiYmY2ZmU4NDNjODU0MmUzNDljNjgwZWIiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FkMWJiYmU0YzkzZWEyMzY4NjYzZTkwODE0OTUzYjkyOSIgaWQ9InJfZ2FkMWJiYmU0YzkzZWEyMzY4NjYzZTkwODE0OTUzYjkyOSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWQxYmJiZTRjOTNlYTIzNjg2NjNlOTA4MTQ5NTNiOTI5Ij5pcF9hZGRyX25ldF9lcTwvYT4oYWRkcjEsICBhZGRyMiwgIG1hc2spPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FkMWJiYmU0YzkzZWEyMzY4NjYzZTkwODE0OTUzYjkyOSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTAwOGM5YzkyZDc3MGNjMDMwZWEwNTRlNmIyNTk4MzVhIiBpZD0icl9nYTAwOGM5YzkyZDc3MGNjMDMwZWEwNTRlNmIyNTk4MzVhIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhMDA4YzljOTJkNzcwY2MwMzBlYTA1NGU2YjI1OTgzNWEiPmlwX2FkZHJfY21wPC9hPihhZGRyMSwgIGFkZHIyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMDA4YzljOTJkNzcwY2MwMzBlYTA1NGU2YjI1OTgzNWEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E1YjQwMTU4YmRmZmE0YjBjODFjNGVlNzcwNjZlNmIyOCIgaWQ9InJfZ2E1YjQwMTU4YmRmZmE0YjBjODFjNGVlNzcwNjZlNmIyOCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTViNDAxNThiZGZmYTRiMGM4MWM0ZWU3NzA2NmU2YjI4Ij5pcF9hZGRyX2VxPC9hPihhZGRyMSwgIGFkZHIyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNWI0MDE1OGJkZmZhNGIwYzgxYzRlZTc3MDY2ZTZiMjgiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FkYjY2ZjZkNWZhOTI2ZWQ0YjBlNjlkYjU4ZGZmY2JlNCIgaWQ9InJfZ2FkYjY2ZjZkNWZhOTI2ZWQ0YjBlNjlkYjU4ZGZmY2JlNCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWRiNjZmNmQ1ZmE5MjZlZDRiMGU2OWRiNThkZmZjYmU0Ij5pcF9hZGRyX2NtcF96b25lbGVzczwvYT4oYWRkcjEsICBhZGRyMik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWRiNjZmNmQ1ZmE5MjZlZDRiMGU2OWRiNThkZmZjYmU0Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhOGFjMjY4NjQxN2VjMjk3NGJiMGIzZmM2ZWUwZWUxYTciIGlkPSJyX2dhOGFjMjY4NjQxN2VjMjk3NGJiMGIzZmM2ZWUwZWUxYTciPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2E4YWMyNjg2NDE3ZWMyOTc0YmIwYjNmYzZlZTBlZTFhNyI+aXBfYWRkcl96b25lbGVzc19lcTwvYT4oYWRkcjEsICBhZGRyMik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYThhYzI2ODY0MTdlYzI5NzRiYjBiM2ZjNmVlMGVlMWE3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMjc5MTE4ODkwZTZhOTBhYTc0MDA1MWZiOGIwY2M1ZjQiIGlkPSJyX2dhMjc5MTE4ODkwZTZhOTBhYTc0MDA1MWZiOGIwY2M1ZjQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EyNzkxMTg4OTBlNmE5MGFhNzQwMDUxZmI4YjBjYzVmNCI+aXBfYWRkcl9pc2FueTwvYT4oaXBhZGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMjc5MTE4ODkwZTZhOTBhYTc0MDA1MWZiOGIwY2M1ZjQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FjZDhmNWFhMTUxY2ZmOTY2ZmQyODM2OGI4NWYzOGMwNSIgaWQ9InJfZ2FjZDhmNWFhMTUxY2ZmOTY2ZmQyODM2OGI4NWYzOGMwNSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWNkOGY1YWExNTFjZmY5NjZmZDI4MzY4Yjg1ZjM4YzA1Ij5pcF9hZGRyX2lzYW55X3ZhbDwvYT4oaXBhZGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhY2Q4ZjVhYTE1MWNmZjk2NmZkMjgzNjhiODVmMzhjMDUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FhMzM0NTcwNmUzYWE4YjMyZGQ2MzBjMTk1YjA1M2U3NSIgaWQ9InJfZ2FhMzM0NTcwNmUzYWE4YjMyZGQ2MzBjMTk1YjA1M2U3NSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYWEzMzQ1NzA2ZTNhYThiMzJkZDYzMGMxOTViMDUzZTc1Ij5pcF9hZGRyX2lzYnJvYWRjYXN0PC9hPihpcGFkZHIsICA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWEzMzQ1NzA2ZTNhYThiMzJkZDYzMGMxOTViMDUzZTc1Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMjE3MGQzZWUxM2RkMjI3MjIyMjIyMjhlN2IxYzU3NTIiIGlkPSJyX2dhMjE3MGQzZWUxM2RkMjI3MjIyMjIyMjhlN2IxYzU3NTIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EyMTcwZDNlZTEzZGQyMjcyMjIyMjIyOGU3YjFjNTc1MiI+aXBfYWRkcl9pc211bHRpY2FzdDwvYT4oaXBhZGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMjE3MGQzZWUxM2RkMjI3MjIyMjIyMjhlN2IxYzU3NTIiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwZmM4YmY2NjYyODA5Mjc0NzUwODY4NjgzYjNhNDIyZSIgaWQ9InJfZ2EwZmM4YmY2NjYyODA5Mjc0NzUwODY4NjgzYjNhNDIyZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcGFkZHIuaHRtbCNnYTBmYzhiZjY2NjI4MDkyNzQ3NTA4Njg2ODNiM2E0MjJlIj5pcF9hZGRyX2lzbG9vcGJhY2s8L2E+KGlwYWRkcik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTBmYzhiZjY2NjI4MDkyNzQ3NTA4Njg2ODNiM2E0MjJlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMzNiYzA3OWJhYWY1MTNhOWE3MzgxYjk1MzFhMWY2NTMiIGlkPSJyX2dhMzNiYzA3OWJhYWY1MTNhOWE3MzgxYjk1MzFhMWY2NTMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXBhZGRyLmh0bWwjZ2EzM2JjMDc5YmFhZjUxM2E5YTczODFiOTUzMWExZjY1MyI+aXBfYWRkcl9pc2xpbmtsb2NhbDwvYT4oaXBhZGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMzNiYzA3OWJhYWY1MTNhOWE3MzgxYjk1MzFhMWY2NTMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2EzZTVlNjdiNzI5MmIxNTYwMzQ1NjBmZWYyMjAyNzc2YyIgaWQ9InJfZ2EzZTVlNjdiNzI5MmIxNTYwMzQ1NjBmZWYyMjAyNzc2YyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDRhZGRyLmh0bWwjZ2EzZTVlNjdiNzI5MmIxNTYwMzQ1NjBmZWYyMjAyNzc2YyI+SVBfQUREUl9BTlk8L2E+JiMxNjA7JiMxNjA7JiMxNjA7PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZTkyMGI2ZTgxNjEwYTM4Y2Y5YWRhNTIxMTg4MDdlZmYiPklQNF9BRERSX0FOWTwvYT48L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTNlNWU2N2I3MjkyYjE1NjAzNDU2MGZlZjIyMDI3NzZjIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhZTkyMGI2ZTgxNjEwYTM4Y2Y5YWRhNTIxMTg4MDdlZmYiIGlkPSJyX2dhZTkyMGI2ZTgxNjEwYTM4Y2Y5YWRhNTIxMTg4MDdlZmYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA0YWRkci5odG1sI2dhZTkyMGI2ZTgxNjEwYTM4Y2Y5YWRhNTIxMTg4MDdlZmYiPklQNF9BRERSX0FOWTwvYT4mIzE2MDsmIzE2MDsmIzE2MDsoJmFtcDtpcF9hZGRyX2FueSk8L3RkPjwvdHI+CkBAIC0xMzIsNiArMTU2LDggQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNTE4MWQyY2I2YjkyNTRlYjVhZDQxMzdmN2IzNjM1YTAiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E5NTNjZGQyNTkyNzY0YmEyZTZlMDIxYWVhMzUwYWQ0MyIgaWQ9InJfZ2E5NTNjZGQyNTkyNzY0YmEyZTZlMDIxYWVhMzUwYWQ0MyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pcDZhZGRyLmh0bWwjZ2E5NTNjZGQyNTkyNzY0YmEyZTZlMDIxYWVhMzUwYWQ0MyI+SVA2X0FERFJfQU5ZNjwvYT4mIzE2MDsmIzE2MDsmIzE2MDsoPGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faXA2YWRkci5odG1sI2dhMDZlNzViY2QxOTgwMTJiNWJhMzk0ODBjMjMzNjA4YmQiPmlwXzJfaXA2PC9hPigmYW1wO2lwNl9hZGRyX2FueSkpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E5NTNjZGQyNTkyNzY0YmEyZTZlMDIxYWVhMzUwYWQ0MyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWJlNDNiMTU0NTMzYjczNTg1YzRlNThmNTY4MzcwZWRlIiBpZD0icl9nYWJlNDNiMTU0NTMzYjczNTg1YzRlNThmNTY4MzcwZWRlIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj4jZGVmaW5lJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2lwYWRkci5odG1sI2dhYmU0M2IxNTQ1MzNiNzM1ODVjNGU1OGY1NjgzNzBlZGUiPklQX0FOWV9UWVBFPC9hPiYjMTYwOyYjMTYwOyYjMTYwOygmYW1wO2lwX2FkZHJfYW55X3R5cGUpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FiZTQzYjE1NDUzM2I3MzU4NWM0ZTU4ZjU2ODM3MGVkZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+CiA8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0idHlwZWRlZi1tZW1iZXJzIiBuYW1lPSJ0eXBlZGVmLW1lbWJlcnMiPjwvYT4KIFR5cGVkZWZzPC9oMj48L3RkPjwvdHI+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9pcF9fYWRkcl84aC5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwX19hZGRyXzhoLmpzCmluZGV4IGU5YzQ5NjguLjUwN2FhNzggMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwX19hZGRyXzhoLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2lwX19hZGRyXzhoLmpzCkBAIC03LDYgKzcsMTkgQEAKICAgICBbICJpcF8yX2lwNCIsICJncm91cF9faXA0YWRkci5odG1sI2dhZDcyNjhhNDk2YjdlM2Y4NzJlZmVjZDg1OWViYTZmMDMiLCBudWxsIF0sCiAgICAgWyAiaXBfMl9pcDYiLCAiZ3JvdXBfX2lwNmFkZHIuaHRtbCNnYTA2ZTc1YmNkMTk4MDEyYjViYTM5NDgwYzIzMzYwOGJkIiwgbnVsbCBdLAogICAgIFsgIklQX0FERFJfQU5ZIiwgImdyb3VwX19pcDRhZGRyLmh0bWwjZ2EzZTVlNjdiNzI5MmIxNTYwMzQ1NjBmZWYyMjAyNzc2YyIsIG51bGwgXSwKKyAgICBbICJpcF9hZGRyX2NtcCIsICJncm91cF9faXBhZGRyLmh0bWwjZ2EwMDhjOWM5MmQ3NzBjYzAzMGVhMDU0ZTZiMjU5ODM1YSIsIG51bGwgXSwKKyAgICBbICJpcF9hZGRyX2NtcF96b25lbGVzcyIsICJncm91cF9faXBhZGRyLmh0bWwjZ2FkYjY2ZjZkNWZhOTI2ZWQ0YjBlNjlkYjU4ZGZmY2JlNCIsIG51bGwgXSwKKyAgICBbICJpcF9hZGRyX2VxIiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYTViNDAxNThiZGZmYTRiMGM4MWM0ZWU3NzA2NmU2YjI4IiwgbnVsbCBdLAorICAgIFsgImlwX2FkZHJfaXNhbnkiLCAiZ3JvdXBfX2lwYWRkci5odG1sI2dhMjc5MTE4ODkwZTZhOTBhYTc0MDA1MWZiOGIwY2M1ZjQiLCBudWxsIF0sCisgICAgWyAiaXBfYWRkcl9pc2FueV92YWwiLCAiZ3JvdXBfX2lwYWRkci5odG1sI2dhY2Q4ZjVhYTE1MWNmZjk2NmZkMjgzNjhiODVmMzhjMDUiLCBudWxsIF0sCisgICAgWyAiaXBfYWRkcl9pc2Jyb2FkY2FzdCIsICJncm91cF9faXBhZGRyLmh0bWwjZ2FhMzM0NTcwNmUzYWE4YjMyZGQ2MzBjMTk1YjA1M2U3NSIsIG51bGwgXSwKKyAgICBbICJpcF9hZGRyX2lzbGlua2xvY2FsIiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYTMzYmMwNzliYWFmNTEzYTlhNzM4MWI5NTMxYTFmNjUzIiwgbnVsbCBdLAorICAgIFsgImlwX2FkZHJfaXNsb29wYmFjayIsICJncm91cF9faXBhZGRyLmh0bWwjZ2EwZmM4YmY2NjYyODA5Mjc0NzUwODY4NjgzYjNhNDIyZSIsIG51bGwgXSwKKyAgICBbICJpcF9hZGRyX2lzbXVsdGljYXN0IiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYTIxNzBkM2VlMTNkZDIyNzIyMjIyMjI4ZTdiMWM1NzUyIiwgbnVsbCBdLAorICAgIFsgImlwX2FkZHJfbmV0X2VxIiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYWQxYmJiZTRjOTNlYTIzNjg2NjNlOTA4MTQ5NTNiOTI5IiwgbnVsbCBdLAorICAgIFsgImlwX2FkZHJfbmV0Y21wIiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYTNhMjEyM2YwYmJmNmZlODQzYzg1NDJlMzQ5YzY4MGViIiwgbnVsbCBdLAorICAgIFsgImlwX2FkZHJfem9uZWxlc3NfZXEiLCAiZ3JvdXBfX2lwYWRkci5odG1sI2dhOGFjMjY4NjQxN2VjMjk3NGJiMGIzZmM2ZWUwZWUxYTciLCBudWxsIF0sCisgICAgWyAiSVBfQU5ZX1RZUEUiLCAiZ3JvdXBfX2lwYWRkci5odG1sI2dhYmU0M2IxNTQ1MzNiNzM1ODVjNGU1OGY1NjgzNzBlZGUiLCBudWxsIF0sCiAgICAgWyAiaXBfYWRkcl90IiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYTMzNWE4YzlkZjY2MzE5ZTg4YTFhNTI5MDQ3Y2UwYTFlIiwgbnVsbCBdLAogICAgIFsgImx3aXBfaXBfYWRkcl90eXBlIiwgImdyb3VwX19pcGFkZHIuaHRtbCNnYWYyMTQyZjBkZmRjYzkzOGUyZGIxNmFhNzQ1ZWQ1ODVjIiwgWwogICAgICAgWyAiSVBBRERSX1RZUEVfVjQiLCAiZ3JvdXBfX2lwYWRkci5odG1sI2dnYWYyMTQyZjBkZmRjYzkzOGUyZGIxNmFhNzQ1ZWQ1ODVjYWNlNDdmYTgyNjA4ZGVlYjFjMWM3YzJjODkxZWI1MDQ5IiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbG93cGFuNl84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbG93cGFuNl84Yy5odG1sCmluZGV4IDE0MjEyNDAuLmI4OWQ0ZDIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42XzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbG93cGFuNl84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbG93cGFuNl84aC5odG1sCmluZGV4IGYxZTIwYjIuLjJjZWE3YTAgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42XzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbG93cGFuNl9fYmxlXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19ibGVfOGMuaHRtbAppbmRleCBjMjZkMDVkLi44NzMzMTY0IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19ibGVfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19ibGVfOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CkBAIC0xMTYsMTAgKzExNiwxMCBAQAogPC9kaXY+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+CiA8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZnVuYy1tZW1iZXJzIiBuYW1lPSJmdW5jLW1lbWJlcnMiPjwvYT4KIEZ1bmN0aW9uczwvaDI+PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhYTViMTgyM2MyNTA5Yjg4MTZlZjk4ZGNhYzY3ZTAzN2MiIGlkPSJyX2dhYTViMTgyM2MyNTA5Yjg4MTZlZjk4ZGNhYzY3ZTAzN2MiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2FhNWIxODIzYzI1MDliODgxNmVmOThkY2FjNjdlMDM3YyI+YmxlX2FkZHJfdG9fZXVpNjQ8L2E+ICh1aW50OF90ICpkc3QsIGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50IHB1YmxpY19hZGRyKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYTViMTgyM2MyNTA5Yjg4MTZlZjk4ZGNhYzY3ZTAzN2MiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2EzZTI0NWE4NWY5ZWRkZGNhOTNkZGQyOTY3MjA5ODgxZCIgaWQ9InJfZ2EzZTI0NWE4NWY5ZWRkZGNhOTNkZGQyOTY3MjA5ODgxZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTNlMjQ1YTg1ZjllZGRkY2E5M2RkZDI5NjcyMDk4ODFkIj5ldWk2NF90b19ibGVfYWRkcjwvYT4gKHVpbnQ4X3QgKmRzdCwgY29uc3QgdWludDhfdCAqc3JjKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhM2UyNDVhODVmOWVkZGRjYTkzZGRkMjk2NzIwOTg4MWQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E0OWUzYTFmY2VkZDkzNzEwMjNjNzc2ZjBjM2JiM2YwZiIgaWQ9InJfZ2E0OWUzYTFmY2VkZDkzNzEwMjNjNzc2ZjBjM2JiM2YwZiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTQ5ZTNhMWZjZWRkOTM3MTAyM2M3NzZmMGMzYmIzZjBmIj5ibGVfYWRkcl90b19ldWk2NDwvYT4gKHU4X3QgKmRzdCwgY29uc3QgdThfdCAqc3JjLCBpbnQgcHVibGljX2FkZHIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E0OWUzYTFmY2VkZDkzNzEwMjNjNzc2ZjBjM2JiM2YwZiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTU3ZDMzZjYwMjRlNDE5ZThjYmMzMmRmYjc4M2UzOWE0IiBpZD0icl9nYTU3ZDMzZjYwMjRlNDE5ZThjYmMzMmRmYjc4M2UzOWE0Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhNTdkMzNmNjAyNGU0MTllOGNiYzMyZGZiNzgzZTM5YTQiPmV1aTY0X3RvX2JsZV9hZGRyPC9hPiAodThfdCAqZHN0LCBjb25zdCB1OF90ICpzcmMpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTphOWM1YjcyMWY2ZmIyOGI0Yzk5OWJhYWI1NmE2NWQ4ZTIiIGlkPSJyX2E5YzViNzIxZjZmYjI4YjRjOTk5YmFhYjU2YTY1ZDhlMiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhOWM1YjcyMWY2ZmIyOGI0Yzk5OWJhYWI1NmE2NWQ4ZTIiPnJmYzc2Njhfc2V0X2xvY2FsX2FkZHJfZXVpNjQ8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBjb25zdCB1OF90ICpsb2NhbF9hZGRyLCBzaXplX3QgbG9jYWxfYWRkcl9sZW4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTljNWI3MjFmNmZiMjhiNGM5OTliYWFiNTZhNjVkOGUyIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmE1M2Q0ZTgwOTZkZDcxNGY5NGM2OWQ2N2E2Y2Q0OWFjMiIgaWQ9InJfYTUzZDRlODA5NmRkNzE0Zjk0YzY5ZDY3YTZjZDQ5YWMyIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E1M2Q0ZTgwOTZkZDcxNGY5NGM2OWQ2N2E2Y2Q0OWFjMiI+cmZjNzY2OF9zZXRfbG9jYWxfYWRkcl9tYWM0ODwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIGNvbnN0IHU4X3QgKmxvY2FsX2FkZHIsIHNpemVfdCBsb2NhbF9hZGRyX2xlbiwgaW50IGlzX3B1YmxpY19hZGRyKTwvdGQ+PC90cj4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX2JsZV84Yy5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX2JsZV84Yy5qcwppbmRleCAzODhlZWI3Li4yM2JhOWY4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19ibGVfOGMuanMKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbG93cGFuNl9fYmxlXzhjLmpzCkBAIC0xLDcgKzEsNyBAQAogdmFyIGxvd3BhbjZfX2JsZV84YyA9CiBbCi0gICAgWyAiYmxlX2FkZHJfdG9fZXVpNjQiLCAiZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhYTViMTgyM2MyNTA5Yjg4MTZlZjk4ZGNhYzY3ZTAzN2MiLCBudWxsIF0sCi0gICAgWyAiZXVpNjRfdG9fYmxlX2FkZHIiLCAiZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhM2UyNDVhODVmOWVkZGRjYTkzZGRkMjk2NzIwOTg4MWQiLCBudWxsIF0sCisgICAgWyAiYmxlX2FkZHJfdG9fZXVpNjQiLCAiZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhNDllM2ExZmNlZGQ5MzcxMDIzYzc3NmYwYzNiYjNmMGYiLCBudWxsIF0sCisgICAgWyAiZXVpNjRfdG9fYmxlX2FkZHIiLCAiZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhNTdkMzNmNjAyNGU0MTllOGNiYzMyZGZiNzgzZTM5YTQiLCBudWxsIF0sCiAgICAgWyAicmZjNzY2OF9pZl9pbml0IiwgImdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTNkOTQwMzc2YmQ5ODNjMTRmZmNjOGQyNTgwZjNiZGRlIiwgbnVsbCBdLAogICAgIFsgInJmYzc2NjhfaW5wdXQiLCAiZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhMWQ5ZDdhZmY5ZjJmMDUxNWY3NjFiZTA4MDIxNzgxOTciLCBudWxsIF0sCiAgICAgWyAicmZjNzY2OF9vdXRwdXQiLCAiZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhMjI5MzBhZGU0ZTc3YjMxOTVmZTU5OTQ5ODM0ZDg1ZjAiLCBudWxsIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19ibGVfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX2JsZV84aC5odG1sCmluZGV4IDUzOGFiNzQuLmJlN2E5M2UgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX2JsZV84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX2JsZV84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTEyOSwxMCArMTI5LDEwIEBACiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTNkOTQwMzc2YmQ5ODNjMTRmZmNjOGQyNTgwZjNiZGRlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmE2YWU5MGFkNjlmNWQ5MDFlYjQ0Y2Y4N2I5MTIwY2Q5YSIgaWQ9InJfYTZhZTkwYWQ2OWY1ZDkwMWViNDRjZjg3YjkxMjBjZDlhIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E2YWU5MGFkNjlmNWQ5MDFlYjQ0Y2Y4N2I5MTIwY2Q5YSI+dGNwaXBfcmZjNzY2OF9pbnB1dDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWYuaHRtbCI+cGJ1ZjwvYT4gKnAsIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqaW5wKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmE2YWU5MGFkNjlmNWQ5MDFlYjQ0Y2Y4N2I5MTIwY2Q5YSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYWE1YjE4MjNjMjUwOWI4ODE2ZWY5OGRjYWM2N2UwMzdjIiBpZD0icl9nYWE1YjE4MjNjMjUwOWI4ODE2ZWY5OGRjYWM2N2UwMzdjIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX3JmYzc2NjhpZi5odG1sI2dhYTViMTgyM2MyNTA5Yjg4MTZlZjk4ZGNhYzY3ZTAzN2MiPmJsZV9hZGRyX3RvX2V1aTY0PC9hPiAodWludDhfdCAqZHN0LCBjb25zdCB1aW50OF90ICpzcmMsIGludCBwdWJsaWNfYWRkcik8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYWE1YjE4MjNjMjUwOWI4ODE2ZWY5OGRjYWM2N2UwMzdjIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhM2UyNDVhODVmOWVkZGRjYTkzZGRkMjk2NzIwOTg4MWQiIGlkPSJyX2dhM2UyNDVhODVmOWVkZGRjYTkzZGRkMjk2NzIwOTg4MWQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2EzZTI0NWE4NWY5ZWRkZGNhOTNkZGQyOTY3MjA5ODgxZCI+ZXVpNjRfdG9fYmxlX2FkZHI8L2E+ICh1aW50OF90ICpkc3QsIGNvbnN0IHVpbnQ4X3QgKnNyYyk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYTNlMjQ1YTg1ZjllZGRkY2E5M2RkZDI5NjcyMDk4ODFkIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNDllM2ExZmNlZGQ5MzcxMDIzYzc3NmYwYzNiYjNmMGYiIGlkPSJyX2dhNDllM2ExZmNlZGQ5MzcxMDIzYzc3NmYwYzNiYjNmMGYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2E0OWUzYTFmY2VkZDkzNzEwMjNjNzc2ZjBjM2JiM2YwZiI+YmxlX2FkZHJfdG9fZXVpNjQ8L2E+ICh1OF90ICpkc3QsIGNvbnN0IHU4X3QgKnNyYywgaW50IHB1YmxpY19hZGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNDllM2ExZmNlZGQ5MzcxMDIzYzc3NmYwYzNiYjNmMGYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCIgaWQ9InJfZ2E1N2QzM2Y2MDI0ZTQxOWU4Y2JjMzJkZmI3ODNlMzlhNCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTU3ZDMzZjYwMjRlNDE5ZThjYmMzMmRmYjc4M2UzOWE0Ij5ldWk2NF90b19ibGVfYWRkcjwvYT4gKHU4X3QgKmRzdCwgY29uc3QgdThfdCAqc3JjKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNTdkMzNmNjAyNGU0MTllOGNiYzMyZGZiNzgzZTM5YTQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPgogPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+CiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxwPjZMb3dQQU4gb3ZlciBCTEUgZm9yIElQdjYgKFJGQzc2NjgpLiA8L3A+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19ibGVfOGguanMgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19ibGVfOGguanMKaW5kZXggOTNmYTJlZi4uODI4YzUwNCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbG93cGFuNl9fYmxlXzhoLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX2JsZV84aC5qcwpAQCAtMSw3ICsxLDcgQEAKIHZhciBsb3dwYW42X19ibGVfOGggPQogWwotICAgIFsgImJsZV9hZGRyX3RvX2V1aTY0IiwgImdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYWE1YjE4MjNjMjUwOWI4ODE2ZWY5OGRjYWM2N2UwMzdjIiwgbnVsbCBdLAotICAgIFsgImV1aTY0X3RvX2JsZV9hZGRyIiwgImdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTNlMjQ1YTg1ZjllZGRkY2E5M2RkZDI5NjcyMDk4ODFkIiwgbnVsbCBdLAorICAgIFsgImJsZV9hZGRyX3RvX2V1aTY0IiwgImdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTQ5ZTNhMWZjZWRkOTM3MTAyM2M3NzZmMGMzYmIzZjBmIiwgbnVsbCBdLAorICAgIFsgImV1aTY0X3RvX2JsZV9hZGRyIiwgImdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTU3ZDMzZjYwMjRlNDE5ZThjYmMzMmRmYjc4M2UzOWE0IiwgbnVsbCBdLAogICAgIFsgInJmYzc2NjhfaWZfaW5pdCIsICJncm91cF9fcmZjNzY2OGlmLmh0bWwjZ2EzZDk0MDM3NmJkOTgzYzE0ZmZjYzhkMjU4MGYzYmRkZSIsIG51bGwgXSwKICAgICBbICJyZmM3NjY4X2lucHV0IiwgImdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTFkOWQ3YWZmOWYyZjA1MTVmNzYxYmUwODAyMTc4MTk3IiwgbnVsbCBdLAogICAgIFsgInJmYzc2Njhfb3V0cHV0IiwgImdyb3VwX19yZmM3NjY4aWYuaHRtbCNnYTIyOTMwYWRlNGU3N2IzMTk1ZmU1OTk0OTgzNGQ4NWYwIiwgbnVsbCBdLApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbG93cGFuNl9fY29tbW9uXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19jb21tb25fOGMuaHRtbAppbmRleCAxMTRiNGVhLi44ZjVjN2IyIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19jb21tb25fOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19jb21tb25fOGMuaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19jb21tb25fOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX2NvbW1vbl84aC5odG1sCmluZGV4IGU3MGQ2YjMuLjAwN2FkYWUgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX2NvbW1vbl84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX2NvbW1vbl84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX29wdHNfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2xvd3BhbjZfX29wdHNfOGguaHRtbAppbmRleCBhMDVhMGQ4Li44ZjhlYjMwIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sb3dwYW42X19vcHRzXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbG93cGFuNl9fb3B0c184aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBfMmVycm5vXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJlcnJub184aC5odG1sCmluZGV4IDYxMmY0MDcuLmM5NmNiMTcgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBfMmVycm5vXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcF8yZXJybm9fOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJldGhhcnBfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBfMmV0aGFycF84aC5odG1sCmluZGV4IDYzNmQ0YzAuLjBiZjJiZTIgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBfMmV0aGFycF84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBfMmV0aGFycF84aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTE0MCw2ICsxNDAsMTAgQEAKIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmEzZTU2ZmFjZWQ5Njg0MWU2MTVmODhkZDU3ZDFiMmIxNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTphZTk0Njc3YTJhNWYzNjk4Mjc2MDI3Yzc0NzVmNmNhMDUiIGlkPSJyX2FlOTQ2NzdhMmE1ZjM2OTgyNzYwMjdjNzQ3NWY2Y2EwNSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhZTk0Njc3YTJhNWYzNjk4Mjc2MDI3Yzc0NzVmNmNhMDUiPmV0aGFycF9jbGVhbnVwX25ldGlmPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjphZTk0Njc3YTJhNWYzNjk4Mjc2MDI3Yzc0NzVmNmNhMDUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YWFjN2Q1MDQ4YTgxZWYxYzYzYjE4ZDc2OTcwMGY0ODk5IiBpZD0icl9hYWM3ZDUwNDhhODFlZjFjNjNiMThkNzY5NzAwZjQ4OTkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWFjN2Q1MDQ4YTgxZWYxYzYzYjE4ZDc2OTcwMGY0ODk5Ij5ldGhhcnBfYWNkX3Byb2JlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgY29uc3QgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiPmlwNF9hZGRyX3Q8L2E+ICppcGFkZHIpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YWFjN2Q1MDQ4YTgxZWYxYzYzYjE4ZDc2OTcwMGY0ODk5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmE3YzQxYmE4YjE0NWZhNGQwNmY4ZDZhZjNkZjQ0YzRmZiIgaWQ9InJfYTdjNDFiYThiMTQ1ZmE0ZDA2ZjhkNmFmM2RmNDRjNGZmIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E3YzQxYmE4YjE0NWZhNGQwNmY4ZDZhZjNkZjQ0YzRmZiI+ZXRoYXJwX2FjZF9hbm5vdW5jZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIGNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTNkM2I0NWRhZmZiYzE1ZDY1ZGEyMzZlMzFlNjIxYjdlIj5pcDRfYWRkcl90PC9hPiAqaXBhZGRyKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmE3YzQxYmE4YjE0NWZhNGQwNmY4ZDZhZjNkZjQ0YzRmZiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTphNTQwYTU1MDY5Nzk2OTNlZjlhYzQ0OTZkYjliZmE3ZDYiIGlkPSJyX2E1NDBhNTUwNjk3OTY5M2VmOWFjNDQ5NmRiOWJmYTdkNiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhNTQwYTU1MDY5Nzk2OTNlZjlhYzQ0OTZkYjliZmE3ZDYiPmV0aGFycF9pbnB1dDwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWYuaHRtbCI+cGJ1ZjwvYT4gKnAsIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTU0MGE1NTA2OTc5NjkzZWY5YWM0NDk2ZGI5YmZhN2Q2Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KQEAgLTE3NiwxMyArMTgwLDczIEBACiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxiPlZhbHVlOjwvYj48ZGl2IGNsYXNzPSJmcmFnbWVudCI+PGRpdiBjbGFzcz0ibGluZSI+PGEgY2xhc3M9ImNvZGUgaGxfZnVuY3Rpb24iIGhyZWY9IiNhM2U1NmZhY2VkOTY4NDFlNjE1Zjg4ZGQ1N2QxYjJiMTUiPmV0aGFycF9yZXF1ZXN0PC9hPigoPGEgY2xhc3M9ImNvZGUgaGxfc3RydWN0IiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pLCBuZXRpZl9pcDRfYWRkcig8YSBjbGFzcz0iY29kZSBobF9zdHJ1Y3QiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPikpPC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhbHdpcF8yZXRoYXJwXzhoX2h0bWxfYTNlNTZmYWNlZDk2ODQxZTYxNWY4OGRkNTdkMWIyYjE1Ij48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9IiNhM2U1NmZhY2VkOTY4NDFlNjE1Zjg4ZGQ1N2QxYjJiMTUiPmV0aGFycF9yZXF1ZXN0PC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVjaSI+ZXJyX3QgZXRoYXJwX3JlcXVlc3Qoc3RydWN0IG5ldGlmICpuZXRpZiwgY29uc3QgaXA0X2FkZHJfdCAqaXBhZGRyKTwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBldGhhcnAuYzoxMjA2PC9kaXY+PC9kaXY+Ci08ZGl2IGNsYXNzPSJ0dGMiIGlkPSJhc3RydWN0bmV0aWZfaHRtbCI+PGRpdiBjbGFzcz0idHRuYW1lIj48YSBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJ0dGRlZiI+PGI+RGVmaW5pdGlvbjwvYj4gbmV0aWYuaDoyNjA8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFsd2lwXzJldGhhcnBfOGhfaHRtbF9hM2U1NmZhY2VkOTY4NDFlNjE1Zjg4ZGQ1N2QxYjJiMTUiPjxkaXYgY2xhc3M9InR0bmFtZSI+PGEgaHJlZj0iI2EzZTU2ZmFjZWQ5Njg0MWU2MTVmODhkZDU3ZDFiMmIxNSI+ZXRoYXJwX3JlcXVlc3Q8L2E+PC9kaXY+PGRpdiBjbGFzcz0idHRkZWNpIj5lcnJfdCBldGhhcnBfcmVxdWVzdChzdHJ1Y3QgbmV0aWYgKm5ldGlmLCBjb25zdCBpcDRfYWRkcl90ICppcGFkZHIpPC9kaXY+PGRpdiBjbGFzcz0idHRkZWYiPjxiPkRlZmluaXRpb248L2I+IGV0aGFycC5jOjEyMDc8L2Rpdj48L2Rpdj4KKzxkaXYgY2xhc3M9InR0YyIgaWQ9ImFzdHJ1Y3RuZXRpZl9odG1sIj48ZGl2IGNsYXNzPSJ0dG5hbWUiPjxhIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPjwvZGl2PjxkaXYgY2xhc3M9InR0ZGVmIj48Yj5EZWZpbml0aW9uPC9iPiBuZXRpZi5oOjI2OTwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLSBmcmFnbWVudCAtLT48cD5Gb3IgRXRoZXJuZXQgbmV0d29yayBpbnRlcmZhY2VzLCB3ZSBtaWdodCB3YW50IHRvIHNlbmQgImdyYXR1aXRvdXMgQVJQIjsgdGhpcyBpcyBhbiBBUlAgcGFja2V0IHNlbnQgYnkgYSBub2RlIGluIG9yZGVyIHRvIHNwb250YW5lb3VzbHkgY2F1c2Ugb3RoZXIgbm9kZXMgdG8gdXBkYXRlIGFuIGVudHJ5IGluIHRoZWlyIEFSUCBjYWNoZS4gRnJvbSBSRkMgMzIyMCAiSVAgTW9iaWxpdHkgU3VwcG9ydCBmb3IgSVB2NCIgc2VjdGlvbiA0LjYuIDwvcD4KIAogPC9kaXY+CiA8L2Rpdj4KIDxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImE3YzQxYmE4YjE0NWZhNGQwNmY4ZDZhZjNkZjQ0YzRmZiIgbmFtZT0iYTdjNDFiYThiMTQ1ZmE0ZDA2ZjhkNmFmM2RmNDRjNGZmIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTdjNDFiYThiMTQ1ZmE0ZDA2ZjhkNmFmM2RmNDRjNGZmIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5ldGhhcnBfYWNkX2Fubm91bmNlKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gZXRoYXJwX2FjZF9hbm5vdW5jZSA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm5ldGlmPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+Y29uc3QgPGEgY2xhc3M9ImVsIiBocmVmPSJpcDRfX2FkZHJfOGguaHRtbCNhM2QzYjQ1ZGFmZmJjMTVkNjVkYTIzNmUzMWU2MjFiN2UiPmlwNF9hZGRyX3Q8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmlwYWRkcjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5TZW5kIGFuIEFSUCByZXF1ZXN0IHBhY2tldCBhbm5vdW5jaW5nIGFuIGlwYWRkci4gVXNlZCB0byBzZW5kIGFubm91bmNlIG1lc3NhZ2VzIGZvciBhZGRyZXNzIGNvbmZsaWN0IGRldGVjdGlvbi48L3A+Cis8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bmV0aWY8L3RkPjx0ZD50aGUgbHdpcCBuZXR3b3JrIGludGVyZmFjZSBvbiB3aGljaCB0byBzZW5kIHRoZSByZXF1ZXN0IDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmlwYWRkcjwvdGQ+PHRkPnRoZSBJUCBhZGRyZXNzIHRvIGFubm91bmNlIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyBpZiB0aGUgcmVxdWVzdCBoYXMgYmVlbiBzZW50IEVSUl9NRU0gaWYgdGhlIEFSUCBwYWNrZXQgY291bGRuJ3QgYmUgYWxsb2NhdGVkIGFueSBvdGhlciBlcnJfdCBvbiBmYWlsdXJlIDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJhYWM3ZDUwNDhhODFlZjFjNjNiMThkNzY5NzAwZjQ4OTkiIG5hbWU9ImFhYzdkNTA0OGE4MWVmMWM2M2IxOGQ3Njk3MDBmNDg5OSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FhYzdkNTA0OGE4MWVmMWM2M2IxOGQ3Njk3MDBmNDg5OSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+ZXRoYXJwX2FjZF9wcm9iZSgpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IGV0aGFycF9hY2RfcHJvYmUgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5uZXRpZjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTNkM2I0NWRhZmZiYzE1ZDY1ZGEyMzZlMzFlNjIxYjdlIj5pcDRfYWRkcl90PC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5pcGFkZHI8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+U2VuZCBhbiBBUlAgcmVxdWVzdCBwYWNrZXQgcHJvYmluZyBmb3IgYW4gaXBhZGRyLiBVc2VkIHRvIHNlbmQgcHJvYmUgbWVzc2FnZXMgZm9yIGFkZHJlc3MgY29uZmxpY3QgZGV0ZWN0aW9uLjwvcD4KKzxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5uZXRpZjwvdGQ+PHRkPnRoZSBsd2lwIG5ldHdvcmsgaW50ZXJmYWNlIG9uIHdoaWNoIHRvIHNlbmQgdGhlIHJlcXVlc3QgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+aXBhZGRyPC90ZD48dGQ+dGhlIElQIGFkZHJlc3MgdG8gcHJvYmUgPC90ZD48L3RyPgorICA8L3RhYmxlPgorICA8L2RkPgorPC9kbD4KKzxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+RVJSX09LIGlmIHRoZSByZXF1ZXN0IGhhcyBiZWVuIHNlbnQgRVJSX01FTSBpZiB0aGUgQVJQIHBhY2tldCBjb3VsZG4ndCBiZSBhbGxvY2F0ZWQgYW55IG90aGVyIGVycl90IG9uIGZhaWx1cmUgPC9kZD48L2RsPgorCis8L2Rpdj4KKzwvZGl2PgogPGEgaWQ9ImFlOTQ2NzdhMmE1ZjM2OTgyNzYwMjdjNzQ3NWY2Y2EwNSIgbmFtZT0iYWU5NDY3N2EyYTVmMzY5ODI3NjAyN2M3NDc1ZjZjYTA1Ij48L2E+CiA8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWU5NDY3N2EyYTVmMzY5ODI3NjAyN2M3NDc1ZjZjYTA1Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5ldGhhcnBfY2xlYW51cF9uZXRpZigpPC9oMj4KIApkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcF8yZXRoYXJwXzhoLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcF8yZXRoYXJwXzhoLmpzCmluZGV4IGJkZDkzOGEuLmQyZjg5YmMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBfMmV0aGFycF84aC5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJldGhhcnBfOGguanMKQEAgLTMsNiArMyw4IEBACiAgICAgWyAiZXRoYXJwX3FfZW50cnkiLCAic3RydWN0ZXRoYXJwX19xX19lbnRyeS5odG1sIiwgbnVsbCBdLAogICAgIFsgIkFSUF9UTVJfSU5URVJWQUwiLCAibHdpcF8yZXRoYXJwXzhoLmh0bWwjYWFhM2Q4ZWQxZWIxMTI5ZjUxODM0NWUzN2IzOGNmYzM3IiwgbnVsbCBdLAogICAgIFsgImV0aGFycF9ncmF0dWl0b3VzIiwgImx3aXBfMmV0aGFycF84aC5odG1sI2E4Mzk0N2RlYTE1OWJhZjM0MjA5MjIwODQwNzJlNjMxZSIsIG51bGwgXSwKKyAgICBbICJldGhhcnBfYWNkX2Fubm91bmNlIiwgImx3aXBfMmV0aGFycF84aC5odG1sI2E3YzQxYmE4YjE0NWZhNGQwNmY4ZDZhZjNkZjQ0YzRmZiIsIG51bGwgXSwKKyAgICBbICJldGhhcnBfYWNkX3Byb2JlIiwgImx3aXBfMmV0aGFycF84aC5odG1sI2FhYzdkNTA0OGE4MWVmMWM2M2IxOGQ3Njk3MDBmNDg5OSIsIG51bGwgXSwKICAgICBbICJldGhhcnBfY2xlYW51cF9uZXRpZiIsICJsd2lwXzJldGhhcnBfOGguaHRtbCNhZTk0Njc3YTJhNWYzNjk4Mjc2MDI3Yzc0NzVmNmNhMDUiLCBudWxsIF0sCiAgICAgWyAiZXRoYXJwX2ZpbmRfYWRkciIsICJsd2lwXzJldGhhcnBfOGguaHRtbCNhMGY4Y2E4N2M1NDcyZmExNjU3NjNjOGMzOGI3NjE3NGMiLCBudWxsIF0sCiAgICAgWyAiZXRoYXJwX2dldF9lbnRyeSIsICJsd2lwXzJldGhhcnBfOGguaHRtbCNhYjkzZGY3Y2NiMjY0OTYxMDBkNDUxMzc1NDFlODYzYzgiLCBudWxsIF0sCmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJpbmV0XzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJpbmV0XzhoLmh0bWwKaW5kZXggM2UzMzc1NS4uY2NkNTQ1ZCAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcF8yaW5ldF84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBfMmluZXRfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJuZXRkYl84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcF8ybmV0ZGJfOGguaHRtbAppbmRleCA1ZmM0MzdkLi41MzEzYTJhIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJuZXRkYl84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBfMm5ldGRiXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcF8ycHJvdF8yZXRoYXJwXzhoLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJwcm90XzJldGhhcnBfOGguaHRtbAppbmRleCBhNzJkMzk0Li42ZWYwNzhjIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJwcm90XzJldGhhcnBfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJwcm90XzJldGhhcnBfOGguaHRtbApAQCAtMjcsNyArMjcsNyBAQAogIDx0Ym9keT4KICA8dHIgaWQ9InByb2plY3Ryb3ciPgogICA8dGQgaWQ9InByb2plY3RhbGlnbiI+Ci0gICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjEuMzwvc3Bhbj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgogICAgPC9kaXY+CiAgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CiAgIDwvdGQ+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJwcm90XzJldGhlcm5ldF84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcF8ycHJvdF8yZXRoZXJuZXRfOGguaHRtbAppbmRleCAyYzFlMjQ2Li41ZTJjMjNkIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwXzJwcm90XzJldGhlcm5ldF84aC5odG1sCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBfMnByb3RfMmV0aGVybmV0XzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcGVyZl84Yy5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcGVyZl84Yy5odG1sCmluZGV4IDk0OGY1YmMuLjM2NjlhODkgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBlcmZfOGMuaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwZXJmXzhjLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTA4LDYgKzEwOCw3IEBACiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibHdpcGVyZl84aC5odG1sIj5sd2lwL2FwcHMvbHdpcGVyZi5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0idGNwXzhoLmh0bWwiPmx3aXAvdGNwLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJzeXNfOGguaHRtbCI+bHdpcC9zeXMuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+Cis8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Imx3aXBfMmluZXRfOGguaHRtbCI+bHdpcC9pbmV0Lmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJmx0O3N0cmluZy5oJmd0OzwvY29kZT48YnIgLz4KIDwvZGl2Pjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9Im5lc3RlZC1jbGFzc2VzIiBuYW1lPSJuZXN0ZWQtY2xhc3NlcyI+PC9hPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcGVyZl84aC5odG1sIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbHdpcGVyZl84aC5odG1sCmluZGV4IDM3ZTFhMTguLjRlYjk3YmMgMTAwNjQ0Ci0tLSBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL2x3aXBlcmZfOGguaHRtbAorKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9sd2lwZXJmXzhoLmh0bWwKQEAgLTI3LDcgKzI3LDcgQEAKICA8dGJvZHk+CiAgPHRyIGlkPSJwcm9qZWN0cm93Ij4KICAgPHRkIGlkPSJwcm9qZWN0YWxpZ24iPgotICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4xLjM8L3NwYW4+CisgICA8ZGl2IGlkPSJwcm9qZWN0bmFtZSI+bHdJUDxzcGFuIGlkPSJwcm9qZWN0bnVtYmVyIj4mIzE2MDsyLjIuMDwvc3Bhbj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0icHJvamVjdGJyaWVmIj5MaWdodHdlaWdodCBJUCBzdGFjazwvZGl2PgogICA8L3RkPgpAQCAtMTYwLDcgKzE2MCwxNSBAQAogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KIDxwPlByb3RvdHlwZSBvZiBhIHJlcG9ydCBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB3aGVuIGEgc2Vzc2lvbiBpcyBmaW5pc2hlZC4gVGhpcyByZXBvcnQgZnVuY3Rpb24gY2FuIHNob3cgdGhlIHRlc3QgcmVzdWx0cy4gPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgogICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5hcmc8L3RkPjx0ZD5SZXBvcnRfYXJnIGZyb20gd2hlbiB0aGUgdGVzdCB3YXMgc3RhcnRlZC4gPC90ZD48L3RyPgogICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+cmVwb3J0X3R5cGU8L3RkPjx0ZD5jb250YWlucyB0aGUgdGVzdCByZXN1bHQgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bG9jYWxfYWRkcjwvdGQ+PHRkPlRoZSBsb2NhbCBhZGRyZXNzIGZyb20gdGhlIHNlc3Npb24gPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bG9jYWxfcG9ydDwvdGQ+PHRkPlRoZSBsb2NhbCBwb3J0IDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnJlbW90ZV9hZGRyPC90ZD48dGQ+VGhlIHJlbW90ZSBhZGRyZXNzIGZyb20gdGhlIHNlc3Npb24gPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+cmVtb3RlX3BvcnQ8L3RkPjx0ZD5UaGUgcmVtb3RlIHBvcnQgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+Ynl0ZXNfdHJhbnNmZXJyZWQ8L3RkPjx0ZD5Ub3RhbCB0cmFuc2ZlcnJlZCBieXRlcyA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5tc19kdXJhdGlvbjwvdGQ+PHRkPlRvdGFsIHNlc3Npb24gZHVyYXRpb24sIGluIG1pbGxpc2Vjb25kcyA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5iYW5kd2lkdGhfa2JpdHBzZWM8L3RkPjx0ZD5BdmVyYWdlIGJhbmR3aWR0aCBkdXJpbmcgdGhlIHNlc3Npb24sIGluIGticHMgPC90ZD48L3RyPgogICA8L3RhYmxlPgogICA8L2RkPgogPC9kbD4KZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL21kbnNfOGMuaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL21kbnNfOGMuaHRtbAppbmRleCAxN2Q2ZDg0Li4yMzdkZmFlIDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9tZG5zXzhjLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbWRuc184Yy5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTk5LDIwMyArOTksMTMwIEBACiA8ZGl2IGNsYXNzPSJoZWFkZXIiPgogICA8ZGl2IGNsYXNzPSJzdW1tYXJ5Ij4KIDxhIGhyZWY9IiNuZXN0ZWQtY2xhc3NlcyI+RGF0YSBTdHJ1Y3R1cmVzPC9hPiAmIzEyNDsKKzxhIGhyZWY9IiNkZWZpbmUtbWVtYmVycyI+TWFjcm9zPC9hPiAmIzEyNDsKIDxhIGhyZWY9IiNmdW5jLW1lbWJlcnMiPkZ1bmN0aW9uczwvYT4gIDwvZGl2PgogICA8ZGl2IGNsYXNzPSJoZWFkZXJ0aXRsZSI+PGRpdiBjbGFzcz0idGl0bGUiPm1kbnMuYyBGaWxlIFJlZmVyZW5jZTwvZGl2PjwvZGl2PgogPC9kaXY+PCEtLWhlYWRlci0tPgogPGRpdiBjbGFzcz0iY29udGVudHMiPgogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGguaHRtbCI+bHdpcC9hcHBzL21kbnMuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfX3ByaXZfOGguaHRtbCI+bHdpcC9hcHBzL21kbnNfcHJpdi5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KKzxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwiPmx3aXAvYXBwcy9tZG5zX2RvbWFpbi5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KKzxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhoLmh0bWwiPmx3aXAvYXBwcy9tZG5zX291dC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibmV0aWZfOGguaHRtbCI+bHdpcC9uZXRpZi5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0idWRwXzhoLmh0bWwiPmx3aXAvdWRwLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJpcF9fYWRkcl84aC5odG1sIj5sd2lwL2lwX2FkZHIuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Im1lbV84aC5odG1sIj5sd2lwL21lbS5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KKzxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibWVtcF84aC5odG1sIj5sd2lwL21lbXAuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmRuc184aC5odG1sIj5sd2lwL3Byb3QvZG5zLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJpYW5hXzhoLmh0bWwiPmx3aXAvcHJvdC9pYW5hLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJ0aW1lb3V0c184aC5odG1sIj5sd2lwL3RpbWVvdXRzLmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgorPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJzeXNfOGguaHRtbCI+bHdpcC9zeXMuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmbHQ7c3RyaW5nLmgmZ3Q7PC9jb2RlPjxiciAvPgorPGNvZGU+I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7PC9jb2RlPjxiciAvPgogPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJpZ21wXzhoLmh0bWwiPmx3aXAvaWdtcC5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KIDxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibWxkNl84aC5odG1sIj5sd2lwL21sZDYuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8L2Rpdj48dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KIDx0ciBjbGFzcz0iaGVhZGluZyI+PHRkIGNvbHNwYW49IjIiPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPjxhIGlkPSJuZXN0ZWQtY2xhc3NlcyIgbmFtZT0ibmVzdGVkLWNsYXNzZXMiPjwvYT4KIERhdGEgU3RydWN0dXJlczwvaDI+PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0ICYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCI+bWRuc19zZXJ2aWNlPC9hPjwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCAmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwiPm1kbnNfaG9zdDwvYT48L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zdHJ1Y3QgJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcGFja2V0Lmh0bWwiPm1kbnNfcGFja2V0PC9hPjwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbToiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnN0cnVjdCAmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCI+bWRuc19vdXRwYWNrZXQ8L2E+PC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0ICYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3JyX19pbmZvLmh0bWwiPm1kbnNfcnJfaW5mbzwvYT48L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgorPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImRlZmluZS1tZW1iZXJzIiBuYW1lPSJkZWZpbmUtbWVtYmVycyI+PC9hPgorTWFjcm9zPC9oMj48L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YTQ4MmQ2YmY3MTBhZjQ0MjRiNzFlZTU3MDM0ZWRiZGJlIiBpZD0icl9hNDgyZDZiZjcxMGFmNDQyNGI3MWVlNTcwMzRlZGJkYmUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTQ4MmQ2YmY3MTBhZjQ0MjRiNzFlZTU3MDM0ZWRiZGJlIj5NRE5TX1JFU1BPTlNFX0RFTEFZX01BWDwvYT4mIzE2MDsmIzE2MDsmIzE2MDsxMjA8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphNDgyZDZiZjcxMGFmNDQyNGI3MWVlNTcwMzRlZGJkYmUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YWYyNGU1OTBiZjljMjI1YTJlZmMwYjU1ZmFjMTQ4MDlkIiBpZD0icl9hZjI0ZTU5MGJmOWMyMjVhMmVmYzBiNTVmYWMxNDgwOWQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPiNkZWZpbmUmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWYyNGU1OTBiZjljMjI1YTJlZmMwYjU1ZmFjMTQ4MDlkIj5NRE5TX1BST0JFX0NPVU5UPC9hPiYjMTYwOyYjMTYwOyYjMTYwOzM8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphZjI0ZTU5MGJmOWMyMjVhMmVmYzBiNTVmYWMxNDgwOWQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImZ1bmMtbWVtYmVycyIgbmFtZT0iZnVuYy1tZW1iZXJzIj48L2E+CiBGdW5jdGlvbnM8L2gyPjwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTphMTdkYjY5ZmE4ODc1MTUzNzQ0NTJiOTQ1ZTk1OWJiZjkiIGlkPSJyX2ExN2RiNjlmYTg4NzUxNTM3NDQ1MmI5NDVlOTU5YmJmOSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhMTdkYjY5ZmE4ODc1MTUzNzQ0NTJiOTQ1ZTk1OWJiZjkiPm1kbnNfZG9tYWluX2FkZF9sYWJlbDwvYT4gKHN0cnVjdCBtZG5zX2RvbWFpbiAqZG9tYWluLCBjb25zdCBjaGFyICpsYWJlbCwgdThfdCBsZW4pPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmFiNWY0OWQ5MzU2YTc2ODc5ZTBlNmExNGViMDY0M2IyMyIgaWQ9InJfYWI1ZjQ5ZDkzNTZhNzY4NzllMGU2YTE0ZWIwNjQzYjIzIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj51MTZfdCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiPm1kbnNfcmVhZG5hbWU8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwiPnBidWY8L2E+ICpwLCB1MTZfdCBvZmZzZXQsIHN0cnVjdCBtZG5zX2RvbWFpbiAqZG9tYWluKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmFiNWY0OWQ5MzU2YTc2ODc5ZTBlNmExNGViMDY0M2IyMyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTphNTJkOGY3MDQzMmFlOTk4ODE0ZjE2YjE4NDMxMjEzY2QiIGlkPSJyX2E1MmQ4ZjcwNDMyYWU5OTg4MTRmMTZiMTg0MzEyMTNjZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+aW50JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E1MmQ4ZjcwNDMyYWU5OTg4MTRmMTZiMTg0MzEyMTNjZCI+bWRuc19kb21haW5fZXE8L2E+IChzdHJ1Y3QgbWRuc19kb21haW4gKmEsIHN0cnVjdCBtZG5zX2RvbWFpbiAqYik8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjphNTJkOGY3MDQzMmFlOTk4ODE0ZjE2YjE4NDMxMjEzY2QiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YWI3MmU0OGNmMDc2YWZkMWUzYTA4MDMwZDFkMGJmZjllIiBpZD0icl9hYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnUxNl90JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2FiNzJlNDhjZjA3NmFmZDFlM2EwODAzMGQxZDBiZmY5ZSI+bWRuc19jb21wcmVzc19kb21haW48L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RwYnVmLmh0bWwiPnBidWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWYuaHRtbCI+cGJ1ZjwvYT4sIHUxNl90ICpvZmZzZXQsIHN0cnVjdCBtZG5zX2RvbWFpbiAqZG9tYWluKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmFiNzJlNDhjZjA3NmFmZDFlM2EwODAzMGQxZDBiZmY5ZSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTpnYWE2MTlhYzhmNDZhNGI0MDIxMTk1NzIwZjAzNTVjYmViIiBpZD0icl9nYWE2MTlhYzhmNDZhNGI0MDIxMTk1NzIwZjAzNTVjYmViIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWE2MTlhYzhmNDZhNGI0MDIxMTk1NzIwZjAzNTVjYmViIj5tZG5zX3Jlc3BfYWRkX25ldGlmPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgY29uc3QgY2hhciAqaG9zdG5hbWUsIHUzMl90IGRuc190dGwpPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FhNjE5YWM4ZjQ2YTRiNDAyMTE5NTcyMGYwMzU1Y2JlYiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphZjE1ZmE1YjYzMzFiZWM2MDVmNjhmNTNjYjg3ZjU4ZmEiIGlkPSJyX2FmMTVmYTViNjMzMWJlYzYwNWY2OGY1M2NiODdmNThmYSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19faG9zdC5odG1sIj5tZG5zX2hvc3Q8L2E+IComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWYxNWZhNWI2MzMxYmVjNjA1ZjY4ZjUzY2I4N2Y1OGZhIj5uZXRpZl9tZG5zX2RhdGE8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmFmMTVmYTViNjMzMWJlYzYwNWY2OGY1M2NiODdmNThmYSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphYTMxYjc5OGE1ZmI5NmI2ZWYwZGRlNWQ0ZjMyMzcxYWYiIGlkPSJyX2FhMzFiNzk4YTVmYjk2YjZlZjBkZGU1ZDRmMzIzNzFhZiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0dWRwX19wY2IuaHRtbCI+dWRwX3BjYjwvYT4gKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhYTMxYjc5OGE1ZmI5NmI2ZWYwZGRlNWQ0ZjMyMzcxYWYiPmdldF9tZG5zX3BjYjwvYT4gKHZvaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YWEzMWI3OThhNWZiOTZiNmVmMGRkZTVkNGYzMjM3MWFmIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiIGlkPSJyX2dhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiPm1kbnNfcmVzcF9hZGRfbmV0aWY8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBjb25zdCBjaGFyICpob3N0bmFtZSk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTY3Zjg0MmMyN2YzN2MwM2I0OGQxMGU0Y2U2ODU2YjhlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiIGlkPSJyX2dhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiPm1kbnNfcmVzcF9yZW1vdmVfbmV0aWY8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E3YjE0NzNlNTk1ZWIwYzE4NWJhYjI5M2YzZWMyZTUwZSIgaWQ9InJfZ2E3YjE0NzNlNTk1ZWIwYzE4NWJhYjI5M2YzZWMyZTUwZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E3YjE0NzNlNTk1ZWIwYzE4NWJhYjI5M2YzZWMyZTUwZSI+bWRuc19yZXNwX3JlbmFtZV9uZXRpZjwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIGNvbnN0IGNoYXIgKmhvc3RuYW1lKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhN2IxNDczZTU5NWViMGMxODViYWIyOTNmM2VjMmU1MGUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSIgaWQ9InJfZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+czhfdCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSI+bWRuc19yZXNwX2FkZF9zZXJ2aWNlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqc2VydmljZSwgZW51bSBtZG5zX3NkX3Byb3RvIHByb3RvLCB1MTZfdCBwb3J0LCB1MzJfdCBkbnNfdHRsLCA8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGguaHRtbCNhM2I5ZWU1OTUzMjE0NjY1ZTU4NWU1YmNhZjZiOGVhODMiPnNlcnZpY2VfZ2V0X3R4dF9mbl90PC9hPiB0eHRfZm4sIHZvaWQgKnR4dF9kYXRhKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhODI0ZTk5MmU5NGJlMjE2YzhlMDU5ZjQ4ZjQ5YTU5Y2UiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2EzZGYyYWU3NTFjZGZkZmZiMGE1NjczOTA5NDBlYjhhZCIgaWQ9InJfZ2EzZGYyYWU3NTFjZGZkZmZiMGE1NjczOTA5NDBlYjhhZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EzZGYyYWU3NTFjZGZkZmZiMGE1NjczOTA5NDBlYjhhZCI+bWRuc19yZXNwX2RlbF9zZXJ2aWNlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgczhfdCBzbG90KTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhM2RmMmFlNzUxY2RmZGZmYjBhNTY3MzkwOTQwZWI4YWQiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSIgaWQ9InJfZ2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSI+bWRuc19yZXNwX3JlbmFtZV9zZXJ2aWNlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgczhfdCBzbG90LCBjb25zdCBjaGFyICpuYW1lKTwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhZjI3Mzg5NzA1OWYxYmJkZGM3NGNmY2I4MjA3NzdkZDkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwOWI3YTI1OWY0OTc2NDhkOGVmNzM0YjA4MGY5OTdjMSIgaWQ9InJfZ2EwOWI3YTI1OWY0OTc2NDhkOGVmNzM0YjA4MGY5OTdjMSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+aW50JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTA5YjdhMjU5ZjQ5NzY0OGQ4ZWY3MzRiMDgwZjk5N2MxIj5tZG5zX3Jlc3BfbmV0aWZfYWN0aXZlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTA5YjdhMjU5ZjQ5NzY0OGQ4ZWY3MzRiMDgwZjk5N2MxIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMjEzMDExMTY2MmQwNDRiMzI5NzBjZTljNzYzYmQ0MDkiIGlkPSJyX2dhMjEzMDExMTY2MmQwNDRiMzI5NzBjZTljNzYzYmQ0MDkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnM4X3QmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMjEzMDExMTY2MmQwNDRiMzI5NzBjZTljNzYzYmQ0MDkiPm1kbnNfcmVzcF9hZGRfc2VydmljZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnNlcnZpY2UsIGVudW0gbWRuc19zZF9wcm90byBwcm90bywgdTE2X3QgcG9ydCwgPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhoLmh0bWwjYTNiOWVlNTk1MzIxNDY2NWU1ODVlNWJjYWY2YjhlYTgzIj5zZXJ2aWNlX2dldF90eHRfZm5fdDwvYT4gdHh0X2ZuLCB2b2lkICp0eHRfZGF0YSk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTIxMzAxMTE2NjJkMDQ0YjMyOTcwY2U5Yzc2M2JkNDA5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNTVmM2ZkNDZjZmUxMzc1NDUyMjEwNjg4ZmMwNWJmOWEiIGlkPSJyX2dhNTVmM2ZkNDZjZmUxMzc1NDUyMjEwNjg4ZmMwNWJmOWEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhNTVmM2ZkNDZjZmUxMzc1NDUyMjEwNjg4ZmMwNWJmOWEiPm1kbnNfcmVzcF9kZWxfc2VydmljZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHU4X3Qgc2xvdCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTU1ZjNmZDQ2Y2ZlMTM3NTQ1MjIxMDY4OGZjMDViZjlhIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhYjFlOTg5YTRjNzMwNWQ3NTQzNzdjNzYwNTI0NzRiZWIiIGlkPSJyX2dhYjFlOTg5YTRjNzMwNWQ3NTQzNzdjNzYwNTI0NzRiZWIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYjFlOTg5YTRjNzMwNWQ3NTQzNzdjNzYwNTI0NzRiZWIiPm1kbnNfcmVzcF9yZW5hbWVfc2VydmljZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHU4X3Qgc2xvdCwgY29uc3QgY2hhciAqbmFtZSk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWIxZTk4OWE0YzczMDVkNzU0Mzc3Yzc2MDUyNDc0YmViIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhMDFjODUyMDJmNGI4NWVkYzhiNTcxZjJmNDE5ZGI1NzYiIGlkPSJyX2dhMDFjODUyMDJmNGI4NWVkYzhiNTcxZjJmNDE5ZGI1NzYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMDFjODUyMDJmNGI4NWVkYzhiNTcxZjJmNDE5ZGI1NzYiPm1kbnNfcmVzcF9hZGRfc2VydmljZV90eHRpdGVtPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sIj5tZG5zX3NlcnZpY2U8L2E+ICpzZXJ2aWNlLCBjb25zdCBjaGFyICp0eHQsIHU4X3QgdHh0X2xlbik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTAxYzg1MjAyZjRiODVlZGM4YjU3MWYyZjQxOWRiNTc2Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiIGlkPSJyX2dhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiPm1kbnNfc2VhcmNoX3N0b3A8L2E+ICh1OF90IHJlcXVlc3RfaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EwYzU2MTdiNGQwMjEzNTNiYmQwZmIyNGRkY2I4YjNhYyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1IiBpZD0icl9nYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1Ij5tZG5zX3NlYXJjaF9zZXJ2aWNlPC9hPiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqc2VydmljZSwgZW51bSBtZG5zX3NkX3Byb3RvIHByb3RvLCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzZWFyY2hfcmVzdWx0X2ZuX3QgcmVzdWx0X2ZuLCB2b2lkICphcmcsIHU4X3QgKnJlcXVlc3RfaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FjMzg4YjJlYWIzNzlhMjNkZDFmNDZmMmFjOGQ2MzcyNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1IiBpZD0icl9nYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1Ij5tZG5zX3Jlc3BfYW5ub3VuY2U8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMGY0NjJmYjkxYTlkMDMyM2JiNDYzNmJkNzI1ZjBlODUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06YTAxZjg4NTBiOWMyZDJjZDQwZWQ3N2ExNDM4Yzg1YmYxIiBpZD0icl9hMDFmODg1MGI5YzJkMmNkNDBlZDc3YTE0MzhjODViZjEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTAxZjg4NTBiOWMyZDJjZDQwZWQ3N2ExNDM4Yzg1YmYxIj5tZG5zX3Jlc3BfcmVnaXN0ZXJfbmFtZV9yZXN1bHRfY2I8L2E+ICg8YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGguaHRtbCNhMTlmMTJkNzA5MmRlNmZlOTBkNTg0M2U0ZWY4ZDQ1MzYiPm1kbnNfbmFtZV9yZXN1bHRfY2JfdDwvYT4gY2IpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmEwMWY4ODUwYjljMmQyY2Q0MGVkNzdhMTQzOGM4NWJmMSIgaWQ9InJfYTAxZjg4NTBiOWMyZDJjZDQwZWQ3N2ExNDM4Yzg1YmYxIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2EwMWY4ODUwYjljMmQyY2Q0MGVkNzdhMTQzOGM4NWJmMSI+bWRuc19yZXNwX3JlZ2lzdGVyX25hbWVfcmVzdWx0X2NiPC9hPiAoPGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhoLmh0bWwjYTZkNjU4ZTJjNTIyOGIyMjRiODk0ODg2NjNkMmI3MmY3Ij5tZG5zX25hbWVfcmVzdWx0X2NiX3Q8L2E+IGNiKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmEwMWY4ODUwYjljMmQyY2Q0MGVkNzdhMTQzOGM4NWJmMSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTM2N2FjODlkZGFlNmNiZWMzZTBhOWM1NWU5YzQ2NzM3IiBpZD0icl9nYTM2N2FjODlkZGFlNmNiZWMzZTBhOWM1NWU5YzQ2NzM3Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTM2N2FjODlkZGFlNmNiZWMzZTBhOWM1NWU5YzQ2NzM3Ij5tZG5zX3Jlc3BfcmVzdGFydF9kZWxheTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHVpbnQzMl90IGRlbGF5KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMzY3YWM4OWRkYWU2Y2JlYzNlMGE5YzU1ZTljNDY3MzciPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E5M2VjY2RjMGQ5YWZmZjBmMjQxNjBkMzFjNzBlMmM5YSIgaWQ9InJfZ2E5M2VjY2RjMGQ5YWZmZjBmMjQxNjBkMzFjNzBlMmM5YSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E5M2VjY2RjMGQ5YWZmZjBmMjQxNjBkMzFjNzBlMmM5YSI+bWRuc19yZXNwX3Jlc3RhcnQ8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E1ZmExNTk3OGEzOThkYWUxYThkNzYyMGFlMTY5YmRkMyIgaWQ9InJfZ2E1ZmExNTk3OGEzOThkYWUxYThkNzYyMGFlMTY5YmRkMyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E1ZmExNTk3OGEzOThkYWUxYThkNzYyMGFlMTY5YmRkMyI+bWRuc19yZXNwX2luaXQ8L2E+ICh2b2lkKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNWZhMTU5NzhhMzk4ZGFlMWE4ZDc2MjBhZTE2OWJkZDMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FlZTViNDg5Yjc3Yjc0NTExNTE3ZDQxZjc2MDljY2Q0OSIgaWQ9InJfZ2FlZTViNDg5Yjc3Yjc0NTExNTE3ZDQxZjc2MDljY2Q0OSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCAqJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWVlNWI0ODliNzdiNzQ1MTE1MTdkNDFmNzYwOWNjZDQ5Ij5tZG5zX2dldF9zZXJ2aWNlX3R4dF91c2VyZGF0YTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHM4X3Qgc2xvdCk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYWVlNWI0ODliNzdiNzQ1MTE1MTdkNDFmNzYwOWNjZDQ5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPC90YWJsZT4KIDxhIG5hbWU9ImRldGFpbHMiIGlkPSJkZXRhaWxzIj48L2E+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RGV0YWlsZWQgRGVzY3JpcHRpb248L2gyPgogPGRpdiBjbGFzcz0idGV4dGJsb2NrIj48cD5NRE5TIHJlc3BvbmRlciBpbXBsZW1lbnRhdGlvbiA8L3A+Ci08L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5GdW5jdGlvbiBEb2N1bWVudGF0aW9uPC9oMj4KLTxhIGlkPSJhYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiIG5hbWU9ImFiNzJlNDhjZjA3NmFmZDFlM2EwODAzMGQxZDBiZmY5ZSI+PC9hPgotPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FiNzJlNDhjZjA3NmFmZDFlM2EwODAzMGQxZDBiZmY5ZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bWRuc19jb21wcmVzc19kb21haW4oKTwvaDI+Cis8L2Rpdj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5NYWNybyBEZWZpbml0aW9uIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImFmMjRlNTkwYmY5YzIyNWEyZWZjMGI1NWZhYzE0ODA5ZCIgbmFtZT0iYWYyNGU1OTBiZjljMjI1YTJlZmMwYjU1ZmFjMTQ4MDlkIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWYyNGU1OTBiZjljMjI1YTJlZmMwYjU1ZmFjMTQ4MDlkIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5NRE5TX1BST0JFX0NPVU5UPC9oMj4KIAogPGRpdiBjbGFzcz0ibWVtaXRlbSI+CiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CiAgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgogICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj51MTZfdCBtZG5zX2NvbXByZXNzX2RvbWFpbiA8L3RkPgotICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zi5odG1sIj5wYnVmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5wYnVmPC9lbT48L3NwYW4+LCA8L3RkPgotICAgICAgICA8L3RyPgotICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KLSAgICAgICAgICA8dGQ+PC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dTE2X3QgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+b2Zmc2V0PC9lbT48L3NwYW4+LCA8L3RkPgotICAgICAgICA8L3RyPgotICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KLSAgICAgICAgICA8dGQ+PC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IG1kbnNfZG9tYWluICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmRvbWFpbjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+I2RlZmluZSBNRE5TX1BST0JFX0NPVU5UJiMxNjA7JiMxNjA7JiMxNjA7MzwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgogPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KLTxwPlJldHVybiBieXRlcyBuZWVkZWQgdG8gd3JpdGUgYmVmb3JlIGp1bXAgZm9yIGJlc3QgcmVzdWx0IG9mIGNvbXByZXNzaW5nIHN1cHBsaWVkIGRvbWFpbiBhZ2FpbnN0IGRvbWFpbiBpbiBvdXRwYWNrZXQgc3RhcnRpbmcgYXQgc3BlY2lmaWVkIG9mZnNldC4gSWYgYSBtYXRjaCBpcyBmb3VuZCwgb2Zmc2V0IGlzIHVwZGF0ZWQgdG8gd2hlcmUgdG8ganVtcCB0byA8L3A+PGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+Ci0gIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnBidWY8L3RkPjx0ZD5Qb2ludGVyIHRvIHBidWYgd2l0aCB0aGUgcGFydGlhbGx5IGNvbnN0cnVjdGVkIEROUyBwYWNrZXQgPC90ZD48L3RyPgotICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+b2Zmc2V0PC90ZD48dGQ+U3RhcnQgcG9zaXRpb24gb2YgYSBkb21haW4gd3JpdHRlbiBlYXJsaWVyLiBJZiB0aGlzIGxvY2F0aW9uIGlzIHN1aXRhYmxlIGZvciBjb21wcmVzc2lvbiwgdGhlIHBvaW50ZXIgaXMgdXBkYXRlZCB0byB3aGVyZSBpbiB0aGUgZG9tYWluIHRvIGp1bXAgdG8uIDwvdGQ+PC90cj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmRvbWFpbjwvdGQ+PHRkPlRoZSBkb21haW4gdG8gd3JpdGUgPC90ZD48L3RyPgotICA8L3RhYmxlPgotICA8L2RkPgotPC9kbD4KLTxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+TnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlIG9mIHRoZSBuZXcgZG9tYWluIGJlZm9yZSB3cml0aW5nIGEganVtcCB0byB0aGUgb2Zmc2V0LiBJZiBjb21wcmVzc2lvbiBjYW4gbm90IGJlIGRvbmUgYWdhaW5zdCB0aGlzIHByZXZpb3VzIGRvbWFpbiBuYW1lLCB0aGUgZnVsbCBuZXcgZG9tYWluIGxlbmd0aCBpcyByZXR1cm5lZC4gPC9kZD48L2RsPgorPHA+UHJvYmluZyAmYW1wOyBhbm5vdW5jaW5nIGRlZmluZXMgPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgotPGEgaWQ9ImExN2RiNjlmYTg4NzUxNTM3NDQ1MmI5NDVlOTU5YmJmOSIgbmFtZT0iYTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ij48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5tZG5zX2RvbWFpbl9hZGRfbGFiZWwoKTwvaDI+Cis8YSBpZD0iYTQ4MmQ2YmY3MTBhZjQ0MjRiNzFlZTU3MDM0ZWRiZGJlIiBuYW1lPSJhNDgyZDZiZjcxMGFmNDQyNGI3MWVlNTcwMzRlZGJkYmUiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhNDgyZDZiZjcxMGFmNDQyNGI3MWVlNTcwMzRlZGJkYmUiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPk1ETlNfUkVTUE9OU0VfREVMQVlfTUFYPC9oMj4KIAogPGRpdiBjbGFzcz0ibWVtaXRlbSI+CiA8ZGl2IGNsYXNzPSJtZW1wcm90byI+CiAgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgogICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IG1kbnNfZG9tYWluX2FkZF9sYWJlbCA8L3RkPgotICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IG1kbnNfZG9tYWluICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmRvbWFpbjwvZW0+PC9zcGFuPiwgPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+Ci0gICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IGNoYXIgKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bGFiZWw8L2VtPjwvc3Bhbj4sIDwvdGQ+Ci0gICAgICAgIDwvdHI+Ci0gICAgICAgIDx0cj4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgotICAgICAgICAgIDx0ZD48L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj51OF90PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5sZW48L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPiNkZWZpbmUgTUROU19SRVNQT05TRV9ERUxBWV9NQVgmIzE2MDsmIzE2MDsmIzE2MDsxMjA8L3RkPgogICAgICAgICA8L3RyPgogICAgICAgPC90YWJsZT4KIDwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Ci08cD5BZGQgYSBsYWJlbCBwYXJ0IHRvIGEgZG9tYWluIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KLSAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgotICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+ZG9tYWluPC90ZD48dGQ+VGhlIGRvbWFpbiB0byBhZGQgYSBsYWJlbCB0byA8L3RkPjwvdHI+Ci0gICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5sYWJlbDwvdGQ+PHRkPlRoZSBsYWJlbCB0byBhZGQsIGxpa2UgJmx0O2hvc3RuYW1lJmd0OywgJ2xvY2FsJywgJ2NvbScgb3IgJycgPC90ZD48L3RyPgotICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bGVuPC90ZD48dGQ+VGhlIGxlbmd0aCBvZiB0aGUgbGFiZWwgPC90ZD48L3RyPgotICA8L3RhYmxlPgotICA8L2RkPgotPC9kbD4KLTxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+RVJSX09LIG9uIHN1Y2Nlc3MsIGFuIGVycl90IG90aGVyd2lzZSBpZiBsYWJlbCB0b28gbG9uZyA8L2RkPjwvZGw+Cis8cD5EZWxheWVkIHJlc3BvbnNlIGRlZmluZXMgPC9wPgogCiA8L2Rpdj4KIDwvZGl2PgotPGEgaWQ9ImE1MmQ4ZjcwNDMyYWU5OTg4MTRmMTZiMTg0MzEyMTNjZCIgbmFtZT0iYTUyZDhmNzA0MzJhZTk5ODgxNGYxNmIxODQzMTIxM2NkIj48L2E+Ci08aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTUyZDhmNzA0MzJhZTk5ODgxNGYxNmIxODQzMTIxM2NkIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5tZG5zX2RvbWFpbl9lcSgpPC9oMj4KKzxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkZ1bmN0aW9uIERvY3VtZW50YXRpb248L2gyPgorPGEgaWQ9ImFhMzFiNzk4YTVmYjk2YjZlZjBkZGU1ZDRmMzIzNzFhZiIgbmFtZT0iYWEzMWI3OThhNWZiOTZiNmVmMGRkZTVkNGYzMjM3MWFmIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWEzMWI3OThhNWZiOTZiNmVmMGRkZTVkNGYzMjM3MWFmIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5nZXRfbWRuc19wY2IoKTwvaDI+CiAKIDxkaXYgY2xhc3M9Im1lbWl0ZW0iPgogPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgogICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KICAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+aW50IG1kbnNfZG9tYWluX2VxIDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3R1ZHBfX3BjYi5odG1sIj51ZHBfcGNiPC9hPiAqIGdldF9tZG5zX3BjYiA8L3RkPgogICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IG1kbnNfZG9tYWluICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmE8L2VtPjwvc3Bhbj4sIDwvdGQ+Ci0gICAgICAgIDwvdHI+Ci0gICAgICAgIDx0cj4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj52b2lkPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT48L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KICAgICAgICAgICA8dGQ+PC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IG1kbnNfZG9tYWluICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmI8L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+UmV0dXJuIDEgaWYgY29udGVudHMgb2YgZG9tYWlucyBtYXRjaCAoY2FzZS1pbnNlbnNpdGl2ZSkgPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgotICA8dGFibGUgY2xhc3M9InBhcmFtcyI+Ci0gICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5hPC90ZD48dGQ+RG9tYWluIG5hbWUgdG8gY29tcGFyZSAxIDwvdGQ+PC90cj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmI8L3RkPjx0ZD5Eb21haW4gbmFtZSB0byBjb21wYXJlIDIgPC90ZD48L3RyPgotICA8L3RhYmxlPgotICA8L2RkPgotPC9kbD4KLTxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+MSBpZiBkb21haW5zIGFyZSBlcXVhbCBpZ25vcmluZyBjYXNlLCAwIG90aGVyd2lzZSA8L2RkPjwvZGw+Ci0KLTwvZGl2PgotPC9kaXY+Ci08YSBpZD0iYWI1ZjQ5ZDkzNTZhNzY4NzllMGU2YTE0ZWIwNjQzYjIzIiBuYW1lPSJhYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiPjwvYT4KLTxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfcmVhZG5hbWUoKTwvaDI+Ci0KLTxkaXYgY2xhc3M9Im1lbWl0ZW0iPgotPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgotICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dTE2X3QgbWRuc19yZWFkbmFtZSA8L3RkPgotICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zi5odG1sIj5wYnVmPC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5wPC9lbT48L3NwYW4+LCA8L3RkPgotICAgICAgICA8L3RyPgotICAgICAgICA8dHI+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KLSAgICAgICAgICA8dGQ+PC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dTE2X3Q8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm9mZnNldDwvZW0+PC9zcGFuPiwgPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+Ci0gICAgICAgICAgPHRkPjwvdGQ+Ci0gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCBtZG5zX2RvbWFpbiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5kb21haW48L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICAgIDwvdGFibGU+Ci08L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgotPHA+UmVhZCBwb3NzaWJseSBjb21wcmVzc2VkIGRvbWFpbiBuYW1lIGZyb20gcGFja2V0IGJ1ZmZlciA8L3A+PGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+Ci0gIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnA8L3RkPjx0ZD5UaGUgcGFja2V0IDwvdGQ+PC90cj4KLSAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPm9mZnNldDwvdGQ+PHRkPnN0YXJ0IHBvc2l0aW9uIG9mIGRvbWFpbiBuYW1lIGluIHBhY2tldCA8L3RkPjwvdHI+Ci0gICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5kb21haW48L3RkPjx0ZD5UaGUgZG9tYWluIG5hbWUgZGVzdGluYXRpb24gPC90ZD48L3RyPgotICA8L3RhYmxlPgotICA8L2RkPgotPC9kbD4KLTxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+VGhlIG5ldyBvZmZzZXQgYWZ0ZXIgdGhlIGRvbWFpbiwgb3IgTUROU19SRUFETkFNRV9FUlJPUiBpZiByZWFkaW5nIGZhaWxlZCA8L2RkPjwvZGw+Cis8cD5Db25zdHJ1Y3Rpb24gdG8gYWNjZXNzIHRoZSBtZG5zIHVkcCBwY2IuPC9wPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHVkcF9fcGNiLmh0bWwiPnVkcF9wY2I8L2E+IHN0cnVjdCBvZiBtZG5zIDwvZGQ+PC9kbD4KIAogPC9kaXY+CiA8L2Rpdj4KQEAgLTMwOCw3ICsyMzUsNyBAQAogICAgICAgICA8dHI+CiAgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj52b2lkIG1kbnNfcmVzcF9yZWdpc3Rlcl9uYW1lX3Jlc3VsdF9jYiA8L3RkPgogICAgICAgICAgIDx0ZD4oPC90ZD4KLSAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zXzhoLmh0bWwjYTE5ZjEyZDcwOTJkZTZmZTkwZDU4NDNlNGVmOGQ0NTM2Ij5tZG5zX25hbWVfcmVzdWx0X2NiX3Q8L2E+PC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5jYjwvZW0+PC9zcGFuPjwvdGQ+PHRkPik8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48YSBjbGFzcz0iZWwiIGhyZWY9Im1kbnNfOGguaHRtbCNhNmQ2NThlMmM1MjI4YjIyNGI4OTQ4ODY2M2QyYjcyZjciPm1kbnNfbmFtZV9yZXN1bHRfY2JfdDwvYT48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmNiPC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CiAgICAgICAgICAgPHRkPjwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICA8L3RhYmxlPgpAQCAtMzE3LDYgKzI0NCwzMSBAQAogCiA8L2Rpdj4KIDwvZGl2PgorPGEgaWQ9ImFmMTVmYTViNjMzMWJlYzYwNWY2OGY1M2NiODdmNThmYSIgbmFtZT0iYWYxNWZhNWI2MzMxYmVjNjA1ZjY4ZjUzY2I4N2Y1OGZhIj48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYWYxNWZhNWI2MzMxYmVjNjA1ZjY4ZjUzY2I4N2Y1OGZhIj4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5uZXRpZl9tZG5zX2RhdGEoKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19faG9zdC5odG1sIj5tZG5zX2hvc3Q8L2E+ICogbmV0aWZfbWRuc19kYXRhIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bmV0aWY8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+Q29uc3RydWN0aW9uIHRvIG1ha2UgbWRucyBzdHJ1Y3QgYWNjZXNzaWJsZSBmcm9tIDxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fb3V0XzhjLmh0bWwiPm1kbnNfb3V0LmM8L2E+IFRPRE86IGNhbiB3ZSBhZGQgdGhlIG1kbnMgc3RydWN0IHRvIHRoZSBuZXRpZiBsaWtlIHdlIGRvIGZvciBkaGNwLCBhdXRvaXAsLi4uPyBUaGVuIHRoaXMgaXMgbm90IG5lZWRlZCBhbnkgbW9yZS48L3A+Cis8ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bmV0aWY8L3RkPjx0ZD5UaGUgbmV0d29yayBpbnRlcmZhY2UgPC90ZD48L3RyPgorICA8L3RhYmxlPgorICA8L2RkPgorPC9kbD4KKzxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+bWRucyBzdHJ1Y3QgPC9kZD48L2RsPgorCis8L2Rpdj4KKzwvZGl2PgogPC9kaXY+PCEtLSBjb250ZW50cyAtLT4KIDwvZGl2PjwhLS0gZG9jLWNvbnRlbnQgLS0+CiA8IS0tIHN0YXJ0IGZvb3RlciBwYXJ0IC0tPgpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbWRuc184Yy5qcyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL21kbnNfOGMuanMKaW5kZXggNmZlNDE4Ny4uZmJlZWFkMiAxMDA2NDQKLS0tIGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbWRuc184Yy5qcworKysgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9tZG5zXzhjLmpzCkBAIC0xLDIzICsxLDI0IEBACiB2YXIgbWRuc184YyA9CiBbCi0gICAgWyAibWRuc19zZXJ2aWNlIiwgInN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCIsICJzdHJ1Y3RtZG5zX19zZXJ2aWNlIiBdLAotICAgIFsgIm1kbnNfaG9zdCIsICJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwiLCAic3RydWN0bWRuc19faG9zdCIgXSwKICAgICBbICJtZG5zX3BhY2tldCIsICJzdHJ1Y3RtZG5zX19wYWNrZXQuaHRtbCIsICJzdHJ1Y3RtZG5zX19wYWNrZXQiIF0sCi0gICAgWyAibWRuc19vdXRwYWNrZXQiLCAic3RydWN0bWRuc19fb3V0cGFja2V0Lmh0bWwiLCAic3RydWN0bWRuc19fb3V0cGFja2V0IiBdLAotICAgIFsgIm1kbnNfcnJfaW5mbyIsICJzdHJ1Y3RtZG5zX19ycl9faW5mby5odG1sIiwgbnVsbCBdLAotICAgIFsgIm1kbnNfY29tcHJlc3NfZG9tYWluIiwgIm1kbnNfOGMuaHRtbCNhYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiLCBudWxsIF0sCi0gICAgWyAibWRuc19kb21haW5fYWRkX2xhYmVsIiwgIm1kbnNfOGMuaHRtbCNhMTdkYjY5ZmE4ODc1MTUzNzQ0NTJiOTQ1ZTk1OWJiZjkiLCBudWxsIF0sCi0gICAgWyAibWRuc19kb21haW5fZXEiLCAibWRuc184Yy5odG1sI2E1MmQ4ZjcwNDMyYWU5OTg4MTRmMTZiMTg0MzEyMTNjZCIsIG51bGwgXSwKLSAgICBbICJtZG5zX3JlYWRuYW1lIiwgIm1kbnNfOGMuaHRtbCNhYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiLCBudWxsIF0sCi0gICAgWyAibWRuc19yZXNwX2FkZF9uZXRpZiIsICJncm91cF9fbWRucy5odG1sI2dhYTYxOWFjOGY0NmE0YjQwMjExOTU3MjBmMDM1NWNiZWIiLCBudWxsIF0sCi0gICAgWyAibWRuc19yZXNwX2FkZF9zZXJ2aWNlIiwgImdyb3VwX19tZG5zLmh0bWwjZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSIsIG51bGwgXSwKKyAgICBbICJNRE5TX1BST0JFX0NPVU5UIiwgIm1kbnNfOGMuaHRtbCNhZjI0ZTU5MGJmOWMyMjVhMmVmYzBiNTVmYWMxNDgwOWQiLCBudWxsIF0sCisgICAgWyAiTUROU19SRVNQT05TRV9ERUxBWV9NQVgiLCAibWRuc184Yy5odG1sI2E0ODJkNmJmNzEwYWY0NDI0YjcxZWU1NzAzNGVkYmRiZSIsIG51bGwgXSwKKyAgICBbICJnZXRfbWRuc19wY2IiLCAibWRuc184Yy5odG1sI2FhMzFiNzk4YTVmYjk2YjZlZjBkZGU1ZDRmMzIzNzFhZiIsIG51bGwgXSwKKyAgICBbICJtZG5zX2dldF9zZXJ2aWNlX3R4dF91c2VyZGF0YSIsICJncm91cF9fbWRucy5odG1sI2dhZWU1YjQ4OWI3N2I3NDUxMTUxN2Q0MWY3NjA5Y2NkNDkiLCBudWxsIF0sCisgICAgWyAibWRuc19yZXNwX2FkZF9uZXRpZiIsICJncm91cF9fbWRucy5odG1sI2dhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiLCBudWxsIF0sCisgICAgWyAibWRuc19yZXNwX2FkZF9zZXJ2aWNlIiwgImdyb3VwX19tZG5zLmh0bWwjZ2EyMTMwMTExNjYyZDA0NGIzMjk3MGNlOWM3NjNiZDQwOSIsIG51bGwgXSwKICAgICBbICJtZG5zX3Jlc3BfYWRkX3NlcnZpY2VfdHh0aXRlbSIsICJncm91cF9fbWRucy5odG1sI2dhMDFjODUyMDJmNGI4NWVkYzhiNTcxZjJmNDE5ZGI1NzYiLCBudWxsIF0sCiAgICAgWyAibWRuc19yZXNwX2Fubm91bmNlIiwgImdyb3VwX19tZG5zLmh0bWwjZ2EwZjQ2MmZiOTFhOWQwMzIzYmI0NjM2YmQ3MjVmMGU4NSIsIG51bGwgXSwKLSAgICBbICJtZG5zX3Jlc3BfZGVsX3NlcnZpY2UiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTNkZjJhZTc1MWNkZmRmZmIwYTU2NzM5MDk0MGViOGFkIiwgbnVsbCBdLAorICAgIFsgIm1kbnNfcmVzcF9kZWxfc2VydmljZSIsICJncm91cF9fbWRucy5odG1sI2dhNTVmM2ZkNDZjZmUxMzc1NDUyMjEwNjg4ZmMwNWJmOWEiLCBudWxsIF0sCiAgICAgWyAibWRuc19yZXNwX2luaXQiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTVmYTE1OTc4YTM5OGRhZTFhOGQ3NjIwYWUxNjliZGQzIiwgbnVsbCBdLAorICAgIFsgIm1kbnNfcmVzcF9uZXRpZl9hY3RpdmUiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTA5YjdhMjU5ZjQ5NzY0OGQ4ZWY3MzRiMDgwZjk5N2MxIiwgbnVsbCBdLAogICAgIFsgIm1kbnNfcmVzcF9yZWdpc3Rlcl9uYW1lX3Jlc3VsdF9jYiIsICJtZG5zXzhjLmh0bWwjYTAxZjg4NTBiOWMyZDJjZDQwZWQ3N2ExNDM4Yzg1YmYxIiwgbnVsbCBdLAogICAgIFsgIm1kbnNfcmVzcF9yZW1vdmVfbmV0aWYiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYWE4MTQ0ZTNjNzdhOTJjNDA0M2U2MjE0ZmY2YjYwMTBjIiwgbnVsbCBdLAogICAgIFsgIm1kbnNfcmVzcF9yZW5hbWVfbmV0aWYiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTdiMTQ3M2U1OTVlYjBjMTg1YmFiMjkzZjNlYzJlNTBlIiwgbnVsbCBdLAotICAgIFsgIm1kbnNfcmVzcF9yZW5hbWVfc2VydmljZSIsICJncm91cF9fbWRucy5odG1sI2dhZjI3Mzg5NzA1OWYxYmJkZGM3NGNmY2I4MjA3NzdkZDkiLCBudWxsIF0sCi0gICAgWyAibWRuc19yZXNwX3Jlc3RhcnQiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTkzZWNjZGMwZDlhZmZmMGYyNDE2MGQzMWM3MGUyYzlhIiwgbnVsbCBdCisgICAgWyAibWRuc19yZXNwX3JlbmFtZV9zZXJ2aWNlIiwgImdyb3VwX19tZG5zLmh0bWwjZ2FiMWU5ODlhNGM3MzA1ZDc1NDM3N2M3NjA1MjQ3NGJlYiIsIG51bGwgXSwKKyAgICBbICJtZG5zX3Jlc3BfcmVzdGFydCIsICJncm91cF9fbWRucy5odG1sI2dhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiLCBudWxsIF0sCisgICAgWyAibWRuc19yZXNwX3Jlc3RhcnRfZGVsYXkiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTM2N2FjODlkZGFlNmNiZWMzZTBhOWM1NWU5YzQ2NzM3IiwgbnVsbCBdLAorICAgIFsgIm1kbnNfc2VhcmNoX3NlcnZpY2UiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1IiwgbnVsbCBdLAorICAgIFsgIm1kbnNfc2VhcmNoX3N0b3AiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTBjNTYxN2I0ZDAyMTM1M2JiZDBmYjI0ZGRjYjhiM2FjIiwgbnVsbCBdLAorICAgIFsgIm5ldGlmX21kbnNfZGF0YSIsICJtZG5zXzhjLmh0bWwjYWYxNWZhNWI2MzMxYmVjNjA1ZjY4ZjUzY2I4N2Y1OGZhIiwgbnVsbCBdCiBdOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL21kbnNfOGguaHRtbCBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL21kbnNfOGguaHRtbAppbmRleCBmNjUxN2M3Li45YmY0ZjA3IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9tZG5zXzhoLmh0bWwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbWRuc184aC5odG1sCkBAIC0yNyw3ICsyNyw3IEBACiAgPHRib2R5PgogIDx0ciBpZD0icHJvamVjdHJvdyI+CiAgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KLSAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMS4zPC9zcGFuPgorICAgPGRpdiBpZD0icHJvamVjdG5hbWUiPmx3SVA8c3BhbiBpZD0icHJvamVjdG51bWJlciI+JiMxNjA7Mi4yLjA8L3NwYW4+CiAgICA8L2Rpdj4KICAgIDxkaXYgaWQ9InByb2plY3RicmllZiI+TGlnaHR3ZWlnaHQgSVAgc3RhY2s8L2Rpdj4KICAgPC90ZD4KQEAgLTk4LDYgKzk4LDcgQEAKIAogPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgPGRpdiBjbGFzcz0ic3VtbWFyeSI+Cis8YSBocmVmPSIjbmVzdGVkLWNsYXNzZXMiPkRhdGEgU3RydWN0dXJlczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjZGVmaW5lLW1lbWJlcnMiPk1hY3JvczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjdHlwZWRlZi1tZW1iZXJzIj5UeXBlZGVmczwvYT4gJiMxMjQ7CiA8YSBocmVmPSIjZnVuYy1tZW1iZXJzIj5GdW5jdGlvbnM8L2E+ICA8L2Rpdj4KQEAgLTEwNyw2ICsxMDgsMTEgQEAKIDxkaXYgY2xhc3M9InRleHRibG9jayI+PGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJtZG5zX19vcHRzXzhoLmh0bWwiPmx3aXAvYXBwcy9tZG5zX29wdHMuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9Im5ldGlmXzhoLmh0bWwiPmx3aXAvbmV0aWYuaDwvYT4mcXVvdDs8L2NvZGU+PGJyIC8+CiA8L2Rpdj48dGFibGUgY2xhc3M9Im1lbWJlcmRlY2xzIj4KKzx0ciBjbGFzcz0iaGVhZGluZyI+PHRkIGNvbHNwYW49IjIiPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPjxhIGlkPSJuZXN0ZWQtY2xhc3NlcyIgbmFtZT0ibmVzdGVkLWNsYXNzZXMiPjwvYT4KK0RhdGEgU3RydWN0dXJlczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+c3RydWN0ICYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3JyX19pbmZvLmh0bWwiPm1kbnNfcnJfaW5mbzwvYT48L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjoiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8L3RhYmxlPjx0YWJsZSBjbGFzcz0ibWVtYmVyZGVjbHMiPgogPHRyIGNsYXNzPSJoZWFkaW5nIj48dGQgY29sc3Bhbj0iMiI+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+PGEgaWQ9ImRlZmluZS1tZW1iZXJzIiBuYW1lPSJkZWZpbmUtbWVtYmVycyI+PC9hPgogTWFjcm9zPC9oMj48L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2FiMmVkYmExMmQ1Y2FkMTk0OWY3Y2EwNDBhZTEyYmVlYyIgaWQ9InJfZ2FiMmVkYmExMmQ1Y2FkMTk0OWY3Y2EwNDBhZTEyYmVlYyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+I2RlZmluZSYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FiMmVkYmExMmQ1Y2FkMTk0OWY3Y2EwNDBhZTEyYmVlYyI+bWRuc19yZXNwX25ldGlmX3NldHRpbmdzX2NoYW5nZWQ8L2E+KDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KQEAgLTExNiw0NSArMTIyLDU1IEBACiBUeXBlZGVmczwvaDI+PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmEzYjllZTU5NTMyMTQ2NjVlNTg1ZTViY2FmNmI4ZWE4MyIgaWQ9InJfYTNiOWVlNTk1MzIxNDY2NWU1ODVlNWJjYWY2YjhlYTgzIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj50eXBlZGVmIHZvaWQoKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhM2I5ZWU1OTUzMjE0NjY1ZTU4NWU1YmNhZjZiOGVhODMiPnNlcnZpY2VfZ2V0X3R4dF9mbl90PC9hPikgKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX3NlcnZpY2UuaHRtbCI+bWRuc19zZXJ2aWNlPC9hPiAqc2VydmljZSwgdm9pZCAqdHh0X3VzZXJkYXRhKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmEzYjllZTU5NTMyMTQ2NjVlNTg1ZTViY2FmNmI4ZWE4MyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTphMTlmMTJkNzA5MmRlNmZlOTBkNTg0M2U0ZWY4ZDQ1MzYiIGlkPSJyX2ExOWYxMmQ3MDkyZGU2ZmU5MGQ1ODQzZTRlZjhkNDUzNiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dHlwZWRlZiB2b2lkKComIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTE5ZjEyZDcwOTJkZTZmZTkwZDU4NDNlNGVmOGQ0NTM2Ij5tZG5zX25hbWVfcmVzdWx0X2NiX3Q8L2E+KSAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgdThfdCByZXN1bHQpPC90ZD48L3RyPgotPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTE5ZjEyZDcwOTJkZTZmZTkwZDU4NDNlNGVmOGQ0NTM2Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmE2ZDY1OGUyYzUyMjhiMjI0Yjg5NDg4NjYzZDJiNzJmNyIgaWQ9InJfYTZkNjU4ZTJjNTIyOGIyMjRiODk0ODg2NjNkMmI3MmY3Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj50eXBlZGVmIHZvaWQoKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhNmQ2NThlMmM1MjI4YjIyNGI4OTQ4ODY2M2QyYjcyZjciPm1kbnNfbmFtZV9yZXN1bHRfY2JfdDwvYT4pIChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCB1OF90IHJlc3VsdCwgczhfdCBzbG90KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmE2ZDY1OGUyYzUyMjhiMjI0Yjg5NDg4NjYzZDJiNzJmNyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDwvdGFibGU+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+CiA8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZnVuYy1tZW1iZXJzIiBuYW1lPSJmdW5jLW1lbWJlcnMiPjwvYT4KIEZ1bmN0aW9uczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhZWU1YjQ4OWI3N2I3NDUxMTUxN2Q0MWY3NjA5Y2NkNDkiIGlkPSJyX2dhZWU1YjQ4OWI3N2I3NDUxMTUxN2Q0MWY3NjA5Y2NkNDkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQgKiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FlZTViNDg5Yjc3Yjc0NTExNTE3ZDQxZjc2MDljY2Q0OSI+bWRuc19nZXRfc2VydmljZV90eHRfdXNlcmRhdGE8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzOF90IHNsb3QpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FlZTViNDg5Yjc3Yjc0NTExNTE3ZDQxZjc2MDljY2Q0OSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ibWVtaXRlbTpnYTVmYTE1OTc4YTM5OGRhZTFhOGQ3NjIwYWUxNjliZGQzIiBpZD0icl9nYTVmYTE1OTc4YTM5OGRhZTFhOGQ3NjIwYWUxNjliZGQzIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTVmYTE1OTc4YTM5OGRhZTFhOGQ3NjIwYWUxNjliZGQzIj5tZG5zX3Jlc3BfaW5pdDwvYT4gKHZvaWQpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2E1ZmExNTk3OGEzOThkYWUxYThkNzYyMGFlMTY5YmRkMyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KLTx0ciBjbGFzcz0ibWVtaXRlbTphMDFmODg1MGI5YzJkMmNkNDBlZDc3YTE0MzhjODViZjEiIGlkPSJyX2EwMWY4ODUwYjljMmQyY2Q0MGVkNzdhMTQzOGM4NWJmMSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhMDFmODg1MGI5YzJkMmNkNDBlZDc3YTE0MzhjODViZjEiPm1kbnNfcmVzcF9yZWdpc3Rlcl9uYW1lX3Jlc3VsdF9jYjwvYT4gKDxhIGNsYXNzPSJlbCIgaHJlZj0iI2ExOWYxMmQ3MDkyZGU2ZmU5MGQ1ODQzZTRlZjhkNDUzNiI+bWRuc19uYW1lX3Jlc3VsdF9jYl90PC9hPiBjYik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YTAxZjg4NTBiOWMyZDJjZDQwZWQ3N2ExNDM4Yzg1YmYxIiBpZD0icl9hMDFmODg1MGI5YzJkMmNkNDBlZDc3YTE0MzhjODViZjEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTAxZjg4NTBiOWMyZDJjZDQwZWQ3N2ExNDM4Yzg1YmYxIj5tZG5zX3Jlc3BfcmVnaXN0ZXJfbmFtZV9yZXN1bHRfY2I8L2E+ICg8YSBjbGFzcz0iZWwiIGhyZWY9IiNhNmQ2NThlMmM1MjI4YjIyNGI4OTQ4ODY2M2QyYjcyZjciPm1kbnNfbmFtZV9yZXN1bHRfY2JfdDwvYT4gY2IpPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6YTAxZjg4NTBiOWMyZDJjZDQwZWQ3N2ExNDM4Yzg1YmYxIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhYTYxOWFjOGY0NmE0YjQwMjExOTU3MjBmMDM1NWNiZWIiIGlkPSJyX2dhYTYxOWFjOGY0NmE0YjQwMjExOTU3MjBmMDM1NWNiZWIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYTYxOWFjOGY0NmE0YjQwMjExOTU3MjBmMDM1NWNiZWIiPm1kbnNfcmVzcF9hZGRfbmV0aWY8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBjb25zdCBjaGFyICpob3N0bmFtZSwgdTMyX3QgZG5zX3R0bCk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYWE2MTlhYzhmNDZhNGI0MDIxMTk1NzIwZjAzNTVjYmViIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiIGlkPSJyX2dhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhNjdmODQyYzI3ZjM3YzAzYjQ4ZDEwZTRjZTY4NTZiOGUiPm1kbnNfcmVzcF9hZGRfbmV0aWY8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBjb25zdCBjaGFyICpob3N0bmFtZSk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTY3Zjg0MmMyN2YzN2MwM2I0OGQxMGU0Y2U2ODU2YjhlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiIGlkPSJyX2dhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiPm1kbnNfcmVzcF9yZW1vdmVfbmV0aWY8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+KTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2E3YjE0NzNlNTk1ZWIwYzE4NWJhYjI5M2YzZWMyZTUwZSIgaWQ9InJfZ2E3YjE0NzNlNTk1ZWIwYzE4NWJhYjI5M2YzZWMyZTUwZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E3YjE0NzNlNTk1ZWIwYzE4NWJhYjI5M2YzZWMyZTUwZSI+bWRuc19yZXNwX3JlbmFtZV9uZXRpZjwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIGNvbnN0IGNoYXIgKmhvc3RuYW1lKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhN2IxNDczZTU5NWViMGMxODViYWIyOTNmM2VjMmU1MGUiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Ci08dHIgY2xhc3M9Im1lbWl0ZW06Z2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSIgaWQ9InJfZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+czhfdCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E4MjRlOTkyZTk0YmUyMTZjOGUwNTlmNDhmNDlhNTljZSI+bWRuc19yZXNwX2FkZF9zZXJ2aWNlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqc2VydmljZSwgZW51bSBtZG5zX3NkX3Byb3RvIHByb3RvLCB1MTZfdCBwb3J0LCB1MzJfdCBkbnNfdHRsLCA8YSBjbGFzcz0iZWwiIGhyZWY9IiNhM2I5ZWU1OTUzMjE0NjY1ZTU4NWU1YmNhZjZiOGVhODMiPnNlcnZpY2VfZ2V0X3R4dF9mbl90PC9hPiB0eHRfZm4sIHZvaWQgKnR4dF91c2VyZGF0YSk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYTgyNGU5OTJlOTRiZTIxNmM4ZTA1OWY0OGY0OWE1OWNlIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhM2RmMmFlNzUxY2RmZGZmYjBhNTY3MzkwOTQwZWI4YWQiIGlkPSJyX2dhM2RmMmFlNzUxY2RmZGZmYjBhNTY3MzkwOTQwZWI4YWQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhM2RmMmFlNzUxY2RmZGZmYjBhNTY3MzkwOTQwZWI4YWQiPm1kbnNfcmVzcF9kZWxfc2VydmljZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHM4X3Qgc2xvdCk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYTNkZjJhZTc1MWNkZmRmZmIwYTU2NzM5MDk0MGViOGFkIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgotPHRyIGNsYXNzPSJtZW1pdGVtOmdhZjI3Mzg5NzA1OWYxYmJkZGM3NGNmY2I4MjA3NzdkZDkiIGlkPSJyX2dhZjI3Mzg5NzA1OWYxYmJkZGM3NGNmY2I4MjA3NzdkZDkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhZjI3Mzg5NzA1OWYxYmJkZGM3NGNmY2I4MjA3NzdkZDkiPm1kbnNfcmVzcF9yZW5hbWVfc2VydmljZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHM4X3Qgc2xvdCwgY29uc3QgY2hhciAqbmFtZSk8L3RkPjwvdHI+Ci08dHIgY2xhc3M9InNlcGFyYXRvcjpnYWYyNzM4OTcwNTlmMWJiZGRjNzRjZmNiODIwNzc3ZGQ5Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmdhMDliN2EyNTlmNDk3NjQ4ZDhlZjczNGIwODBmOTk3YzEiIGlkPSJyX2dhMDliN2EyNTlmNDk3NjQ4ZDhlZjczNGIwODBmOTk3YzEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPmludCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EwOWI3YTI1OWY0OTc2NDhkOGVmNzM0YjA4MGY5OTdjMSI+bWRuc19yZXNwX25ldGlmX2FjdGl2ZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EwOWI3YTI1OWY0OTc2NDhkOGVmNzM0YjA4MGY5OTdjMSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTIxMzAxMTE2NjJkMDQ0YjMyOTcwY2U5Yzc2M2JkNDA5IiBpZD0icl9nYTIxMzAxMTE2NjJkMDQ0YjMyOTcwY2U5Yzc2M2JkNDA5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj5zOF90JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTIxMzAxMTE2NjJkMDQ0YjMyOTcwY2U5Yzc2M2JkNDA5Ij5tZG5zX3Jlc3BfYWRkX3NlcnZpY2U8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpzZXJ2aWNlLCBlbnVtIG1kbnNfc2RfcHJvdG8gcHJvdG8sIHUxNl90IHBvcnQsIDxhIGNsYXNzPSJlbCIgaHJlZj0iI2EzYjllZTU5NTMyMTQ2NjVlNTg1ZTViY2FmNmI4ZWE4MyI+c2VydmljZV9nZXRfdHh0X2ZuX3Q8L2E+IHR4dF9mbiwgdm9pZCAqdHh0X3VzZXJkYXRhKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMjEzMDExMTY2MmQwNDRiMzI5NzBjZTljNzYzYmQ0MDkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2E1NWYzZmQ0NmNmZTEzNzU0NTIyMTA2ODhmYzA1YmY5YSIgaWQ9InJfZ2E1NWYzZmQ0NmNmZTEzNzU0NTIyMTA2ODhmYzA1YmY5YSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2E1NWYzZmQ0NmNmZTEzNzU0NTIyMTA2ODhmYzA1YmY5YSI+bWRuc19yZXNwX2RlbF9zZXJ2aWNlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgdThfdCBzbG90KTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhNTVmM2ZkNDZjZmUxMzc1NDUyMjEwNjg4ZmMwNWJmOWEiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2FiMWU5ODlhNGM3MzA1ZDc1NDM3N2M3NjA1MjQ3NGJlYiIgaWQ9InJfZ2FiMWU5ODlhNGM3MzA1ZDc1NDM3N2M3NjA1MjQ3NGJlYiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2FiMWU5ODlhNGM3MzA1ZDc1NDM3N2M3NjA1MjQ3NGJlYiI+bWRuc19yZXNwX3JlbmFtZV9zZXJ2aWNlPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgdThfdCBzbG90LCBjb25zdCBjaGFyICpuYW1lKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhYjFlOTg5YTRjNzMwNWQ3NTQzNzdjNzYwNTI0NzRiZWIiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8dHIgY2xhc3M9Im1lbWl0ZW06Z2EwMWM4NTIwMmY0Yjg1ZWRjOGI1NzFmMmY0MTlkYjU3NiIgaWQ9InJfZ2EwMWM4NTIwMmY0Yjg1ZWRjOGI1NzFmMmY0MTlkYjU3NiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EwMWM4NTIwMmY0Yjg1ZWRjOGI1NzFmMmY0MTlkYjU3NiI+bWRuc19yZXNwX2FkZF9zZXJ2aWNlX3R4dGl0ZW08L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19zZXJ2aWNlLmh0bWwiPm1kbnNfc2VydmljZTwvYT4gKnNlcnZpY2UsIGNvbnN0IGNoYXIgKnR4dCwgdThfdCB0eHRfbGVuKTwvdGQ+PC90cj4KIDx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMDFjODUyMDJmNGI4NWVkYzhiNTcxZjJmNDE5ZGI1NzYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06Z2EzNjdhYzg5ZGRhZTZjYmVjM2UwYTljNTVlOWM0NjczNyIgaWQ9InJfZ2EzNjdhYzg5ZGRhZTZjYmVjM2UwYTljNTVlOWM0NjczNyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dm9pZCYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19tZG5zLmh0bWwjZ2EzNjdhYzg5ZGRhZTZjYmVjM2UwYTljNTVlOWM0NjczNyI+bWRuc19yZXNwX3Jlc3RhcnRfZGVsYXk8L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCB1aW50MzJfdCBkZWxheSk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTM2N2FjODlkZGFlNmNiZWMzZTBhOWM1NWU5YzQ2NzM3Ij48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiIGlkPSJyX2dhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiPm1kbnNfcmVzcF9yZXN0YXJ0PC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPik8L3RkPjwvdHI+CiA8dHIgY2xhc3M9InNlcGFyYXRvcjpnYTkzZWNjZGMwZDlhZmZmMGYyNDE2MGQzMWM3MGUyYzlhIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgogPHRyIGNsYXNzPSJtZW1pdGVtOmdhMGY0NjJmYjkxYTlkMDMyM2JiNDYzNmJkNzI1ZjBlODUiIGlkPSJyX2dhMGY0NjJmYjkxYTlkMDMyM2JiNDYzNmJkNzI1ZjBlODUiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9fbWRucy5odG1sI2dhMGY0NjJmYjkxYTlkMDMyM2JiNDYzNmJkNzI1ZjBlODUiPm1kbnNfcmVzcF9hbm5vdW5jZTwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4pPC90ZD48L3RyPgogPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2EwZjQ2MmZiOTFhOWQwMzIzYmI0NjM2YmQ3MjVmMGU4NSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1IiBpZD0icl9nYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYWMzODhiMmVhYjM3OWEyM2RkMWY0NmYyYWM4ZDYzNzI1Ij5tZG5zX3NlYXJjaF9zZXJ2aWNlPC9hPiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqc2VydmljZSwgZW51bSBtZG5zX3NkX3Byb3RvIHByb3RvLCBzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+LCBzZWFyY2hfcmVzdWx0X2ZuX3QgcmVzdWx0X2ZuLCB2b2lkICphcmcsIHU4X3QgKnJlcXVlc3RfaWQpPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6Z2FjMzg4YjJlYWIzNzlhMjNkZDFmNDZmMmFjOGQ2MzcyNSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTpnYTBjNTYxN2I0ZDAyMTM1M2JiZDBmYjI0ZGRjYjhiM2FjIiBpZD0icl9nYTBjNTYxN2I0ZDAyMTM1M2JiZDBmYjI0ZGRjYjhiM2FjIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj52b2lkJiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX21kbnMuaHRtbCNnYTBjNTYxN2I0ZDAyMTM1M2JiZDBmYjI0ZGRjYjhiM2FjIj5tZG5zX3NlYXJjaF9zdG9wPC9hPiAodThfdCByZXF1ZXN0X2lkKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmdhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+CiA8L3RhYmxlPgogPGEgbmFtZT0iZGV0YWlscyIgaWQ9ImRldGFpbHMiPjwvYT48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj5EZXRhaWxlZCBEZXNjcmlwdGlvbjwvaDI+CiA8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxwPk1ETlMgcmVzcG9uZGVyIDwvcD4KIDwvZGl2PjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPlR5cGVkZWYgRG9jdW1lbnRhdGlvbjwvaDI+Ci08YSBpZD0iYTE5ZjEyZDcwOTJkZTZmZTkwZDU4NDNlNGVmOGQ0NTM2IiBuYW1lPSJhMTlmMTJkNzA5MmRlNmZlOTBkNTg0M2U0ZWY4ZDQ1MzYiPjwvYT4KLTxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhMTlmMTJkNzA5MmRlNmZlOTBkNTg0M2U0ZWY4ZDQ1MzYiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfbmFtZV9yZXN1bHRfY2JfdDwvaDI+Cis8YSBpZD0iYTZkNjU4ZTJjNTIyOGIyMjRiODk0ODg2NjNkMmI3MmY3IiBuYW1lPSJhNmQ2NThlMmM1MjI4YjIyNGI4OTQ4ODY2M2QyYjcyZjciPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhNmQ2NThlMmM1MjI4YjIyNGI4OTQ4ODY2M2QyYjcyZjciPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfbmFtZV9yZXN1bHRfY2JfdDwvaDI+CiAKIDxkaXYgY2xhc3M9Im1lbWl0ZW0iPgogPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgogICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KICAgICAgICAgPHRyPgotICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dHlwZWRlZiB2b2lkKCogbWRuc19uYW1lX3Jlc3VsdF9jYl90KSAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bmV0aWYuaHRtbCI+bmV0aWY8L2E+ICo8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiwgdThfdCByZXN1bHQpPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnR5cGVkZWYgdm9pZCgqIG1kbnNfbmFtZV9yZXN1bHRfY2JfdCkgKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG5ldGlmLmh0bWwiPm5ldGlmPC9hPiAqPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RuZXRpZi5odG1sIj5uZXRpZjwvYT4sIHU4X3QgcmVzdWx0LCBzOF90IHNsb3QpPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CiA8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgpAQCAtMTg3LDcgKzIwMyw3IEBACiAgICAgICAgIDx0cj4KICAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPnZvaWQgbWRuc19yZXNwX3JlZ2lzdGVyX25hbWVfcmVzdWx0X2NiIDwvdGQ+CiAgICAgICAgICAgPHRkPig8L3RkPgotICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhMTlmMTJkNzA5MmRlNmZlOTBkNTg0M2U0ZWY4ZDQ1MzYiPm1kbnNfbmFtZV9yZXN1bHRfY2JfdDwvYT48L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmNiPC9lbT48L3NwYW4+PC90ZD48dGQ+KTwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E2ZDY1OGUyYzUyMjhiMjI0Yjg5NDg4NjYzZDJiNzJmNyI+bWRuc19uYW1lX3Jlc3VsdF9jYl90PC9hPjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+Y2I8L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KICAgICAgICAgICA8dGQ+PC90ZD4KICAgICAgICAgPC90cj4KICAgICAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9tZG5zXzhoLmpzIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbWRuc184aC5qcwppbmRleCA1NWY5OGUwLi4wYmQ1MzE4IDEwMDY0NAotLS0gYS9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9tZG5zXzhoLmpzCisrKyBiL2RvYy9kb3h5Z2VuL291dHB1dC9odG1sL21kbnNfOGguanMKQEAgLTEsMTcgKzEsMjMgQEAKIHZhciBtZG5zXzhoID0KIFsKKyAgICBbICJtZG5zX3JyX2luZm8iLCAic3RydWN0bWRuc19fcnJfX2luZm8uaHRtbCIsIG51bGwgXSwKICAgICBbICJtZG5zX3Jlc3BfbmV0aWZfc2V0dGluZ3NfY2hhbmdlZCIsICJncm91cF9fbWRucy5odG1sI2dhYjJlZGJhMTJkNWNhZDE5NDlmN2NhMDQwYWUxMmJlZWMiLCBudWxsIF0sCi0gICAgWyAibWRuc19uYW1lX3Jlc3VsdF9jYl90IiwgIm1kbnNfOGguaHRtbCNhMTlmMTJkNzA5MmRlNmZlOTBkNTg0M2U0ZWY4ZDQ1MzYiLCBudWxsIF0sCisgICAgWyAibWRuc19uYW1lX3Jlc3VsdF9jYl90IiwgIm1kbnNfOGguaHRtbCNhNmQ2NThlMmM1MjI4YjIyNGI4OTQ4ODY2M2QyYjcyZjciLCBudWxsIF0sCiAgICAgWyAic2VydmljZV9nZXRfdHh0X2ZuX3QiLCAibWRuc184aC5odG1sI2EzYjllZTU5NTMyMTQ2NjVlNTg1ZTViY2FmNmI4ZWE4MyIsIG51bGwgXSwKLSAgICBbICJtZG5zX3Jlc3BfYWRkX25ldGlmIiwgImdyb3VwX19tZG5zLmh0bWwjZ2FhNjE5YWM4ZjQ2YTRiNDAyMTE5NTcyMGYwMzU1Y2JlYiIsIG51bGwgXSwKLSAgICBbICJtZG5zX3Jlc3BfYWRkX3NlcnZpY2UiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTgyNGU5OTJlOTRiZTIxNmM4ZTA1OWY0OGY0OWE1OWNlIiwgbnVsbCBdLAorICAgIFsgIm1kbnNfZ2V0X3NlcnZpY2VfdHh0X3VzZXJkYXRhIiwgImdyb3VwX19tZG5zLmh0bWwjZ2FlZTViNDg5Yjc3Yjc0NTExNTE3ZDQxZjc2MDljY2Q0OSIsIG51bGwgXSwKKyAgICBbICJtZG5zX3Jlc3BfYWRkX25ldGlmIiwgImdyb3VwX19tZG5zLmh0bWwjZ2E2N2Y4NDJjMjdmMzdjMDNiNDhkMTBlNGNlNjg1NmI4ZSIsIG51bGwgXSwKKyAgICBbICJtZG5zX3Jlc3BfYWRkX3NlcnZpY2UiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTIxMzAxMTE2NjJkMDQ0YjMyOTcwY2U5Yzc2M2JkNDA5IiwgbnVsbCBdLAogICAgIFsgIm1kbnNfcmVzcF9hZGRfc2VydmljZV90eHRpdGVtIiwgImdyb3VwX19tZG5zLmh0bWwjZ2EwMWM4NTIwMmY0Yjg1ZWRjOGI1NzFmMmY0MTlkYjU3NiIsIG51bGwgXSwKICAgICBbICJtZG5zX3Jlc3BfYW5ub3VuY2UiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYTBmNDYyZmI5MWE5ZDAzMjNiYjQ2MzZiZDcyNWYwZTg1IiwgbnVsbCBdLAotICAgIFsgIm1kbnNfcmVzcF9kZWxfc2VydmljZSIsICJncm91cF9fbWRucy5odG1sI2dhM2RmMmFlNzUxY2RmZGZmYjBhNTY3MzkwOTQwZWI4YWQiLCBudWxsIF0sCisgICAgWyAibWRuc19yZXNwX2RlbF9zZXJ2aWNlIiwgImdyb3VwX19tZG5zLmh0bWwjZ2E1NWYzZmQ0NmNmZTEzNzU0NTIyMTA2ODhmYzA1YmY5YSIsIG51bGwgXSwKICAgICBbICJtZG5zX3Jlc3BfaW5pdCIsICJncm91cF9fbWRucy5odG1sI2dhNWZhMTU5NzhhMzk4ZGFlMWE4ZDc2MjBhZTE2OWJkZDMiLCBudWxsIF0sCisgICAgWyAibWRuc19yZXNwX25ldGlmX2FjdGl2ZSIsICJncm91cF9fbWRucy5odG1sI2dhMDliN2EyNTlmNDk3NjQ4ZDhlZjczNGIwODBmOTk3YzEiLCBudWxsIF0sCiAgICAgWyAibWRuc19yZXNwX3JlZ2lzdGVyX25hbWVfcmVzdWx0X2NiIiwgIm1kbnNfOGguaHRtbCNhMDFmODg1MGI5YzJkMmNkNDBlZDc3YTE0MzhjODViZjEiLCBudWxsIF0sCiAgICAgWyAibWRuc19yZXNwX3JlbW92ZV9uZXRpZiIsICJncm91cF9fbWRucy5odG1sI2dhYTgxNDRlM2M3N2E5MmM0MDQzZTYyMTRmZjZiNjAxMGMiLCBudWxsIF0sCiAgICAgWyAibWRuc19yZXNwX3JlbmFtZV9uZXRpZiIsICJncm91cF9fbWRucy5odG1sI2dhN2IxNDczZTU5NWViMGMxODViYWIyOTNmM2VjMmU1MGUiLCBudWxsIF0sCi0gICAgWyAibWRuc19yZXNwX3JlbmFtZV9zZXJ2aWNlIiwgImdyb3VwX19tZG5zLmh0bWwjZ2FmMjczODk3MDU5ZjFiYmRkYzc0Y2ZjYjgyMDc3N2RkOSIsIG51bGwgXSwKLSAgICBbICJtZG5zX3Jlc3BfcmVzdGFydCIsICJncm91cF9fbWRucy5odG1sI2dhOTNlY2NkYzBkOWFmZmYwZjI0MTYwZDMxYzcwZTJjOWEiLCBudWxsIF0KKyAgICBbICJtZG5zX3Jlc3BfcmVuYW1lX3NlcnZpY2UiLCAiZ3JvdXBfX21kbnMuaHRtbCNnYWIxZTk4OWE0YzczMDVkNzU0Mzc3Yzc2MDUyNDc0YmViIiwgbnVsbCBdLAorICAgIFsgIm1kbnNfcmVzcF9yZXN0YXJ0IiwgImdyb3VwX19tZG5zLmh0bWwjZ2E5M2VjY2RjMGQ5YWZmZjBmMjQxNjBkMzFjNzBlMmM5YSIsIG51bGwgXSwKKyAgICBbICJtZG5zX3Jlc3BfcmVzdGFydF9kZWxheSIsICJncm91cF9fbWRucy5odG1sI2dhMzY3YWM4OWRkYWU2Y2JlYzNlMGE5YzU1ZTljNDY3MzciLCBudWxsIF0sCisgICAgWyAibWRuc19zZWFyY2hfc2VydmljZSIsICJncm91cF9fbWRucy5odG1sI2dhYzM4OGIyZWFiMzc5YTIzZGQxZjQ2ZjJhYzhkNjM3MjUiLCBudWxsIF0sCisgICAgWyAibWRuc19zZWFyY2hfc3RvcCIsICJncm91cF9fbWRucy5odG1sI2dhMGM1NjE3YjRkMDIxMzUzYmJkMGZiMjRkZGNiOGIzYWMiLCBudWxsIF0KIF07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbWRuc19fZG9tYWluXzhjLmh0bWwgYi9kb2MvZG94eWdlbi9vdXRwdXQvaHRtbC9tZG5zX19kb21haW5fOGMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmUxMDRjCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL2RveHlnZW4vb3V0cHV0L2h0bWwvbWRuc19fZG9tYWluXzhjLmh0bWwKQEAgLTAsMCArMSw1ODEgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwczovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgbGFuZz0iZW4tVVMiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQveGh0bWw7Y2hhcnNldD1VVEYtOCIvPgorPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT0xMSIvPgorPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb3h5Z2VuIDEuMTIuMCIvPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIi8+Cis8dGl0bGU+bHdJUDogc3JjL2FwcHMvbWRucy9tZG5zX2RvbWFpbi5jIEZpbGUgUmVmZXJlbmNlPC90aXRsZT4KKzxsaW5rIGhyZWY9InRhYnMuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJqcXVlcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iZHluc2VjdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iY2xpcGJvYXJkLmpzIj48L3NjcmlwdD4KKzxsaW5rIGhyZWY9Im5hdnRyZWUuY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIi8+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJuYXZ0cmVlZGF0YS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJuYXZ0cmVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc2l6ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJjb29raWUuanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0ic2VhcmNoL3NlYXJjaC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiLz4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlYXJjaC9zZWFyY2hkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InNlYXJjaC9zZWFyY2guanMiPjwvc2NyaXB0PgorPGxpbmsgaHJlZj0iZG94eWdlbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRvcCI+PCEtLSBkbyBub3QgcmVtb3ZlIHRoaXMgZGl2LCBpdCBpcyBjbG9zZWQgYnkgZG94eWdlbiEgLS0+Cis8ZGl2IGlkPSJ0aXRsZWFyZWEiPgorPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCI+CisgPHRib2R5PgorIDx0ciBpZD0icHJvamVjdHJvdyI+CisgIDx0ZCBpZD0icHJvamVjdGFsaWduIj4KKyAgIDxkaXYgaWQ9InByb2plY3RuYW1lIj5sd0lQPHNwYW4gaWQ9InByb2plY3RudW1iZXIiPiYjMTYwOzIuMi4wPC9zcGFuPgorICAgPC9kaXY+CisgICA8ZGl2IGlkPSJwcm9qZWN0YnJpZWYiPkxpZ2h0d2VpZ2h0IElQIHN0YWNrPC9kaXY+CisgIDwvdGQ+CisgPC90cj4KKyA8L3Rib2R5PgorPC90YWJsZT4KKzwvZGl2PgorPCEtLSBlbmQgaGVhZGVyIHBhcnQgLS0+Cis8IS0tIEdlbmVyYXRlZCBieSBEb3h5Z2VuIDEuMTIuMCAtLT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKy8qIEBsaWNlbnNlIG1hZ25ldDo/eHQ9dXJuOmJ0aWg6ZDNkOWE5YTY1OTU1MjFmOTY2NmE1ZTk0Y2M4MzBkYWI4M2I2NTY5OSZhbXA7ZG49ZXhwYXQudHh0IE1JVCAqLwordmFyIHNlYXJjaEJveCA9IG5ldyBTZWFyY2hCb3goInNlYXJjaEJveCIsICJzZWFyY2gvIiwnLmh0bWwnKTsKKy8qIEBsaWNlbnNlLWVuZCAqLworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKSB7IGNvZGVmb2xkLmluaXQoMCk7IH0pOworLyogQGxpY2Vuc2UtZW5kICovCis8L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lbnVkYXRhLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Im1lbnUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorLyogQGxpY2Vuc2UgbWFnbmV0Oj94dD11cm46YnRpaDpkM2Q5YTlhNjU5NTUyMWY5NjY2YTVlOTRjYzgzMGRhYjgzYjY1Njk5JmFtcDtkbj1leHBhdC50eHQgTUlUICovCiskKGZ1bmN0aW9uKCkgeworICBpbml0TWVudSgnJyx0cnVlLGZhbHNlLCdzZWFyY2gucGhwJywnU2VhcmNoJyx0cnVlKTsKKyAgJChmdW5jdGlvbigpIHsgaW5pdF9zZWFyY2goKTsgfSk7Cit9KTsKKy8qIEBsaWNlbnNlLWVuZCAqLworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJtYWluLW5hdiI+PC9kaXY+Cis8L2Rpdj48IS0tIHRvcCAtLT4KKzxkaXYgaWQ9InNpZGUtbmF2IiBjbGFzcz0idWktcmVzaXphYmxlIHNpZGUtbmF2LXJlc2l6YWJsZSI+CisgIDxkaXYgaWQ9Im5hdi10cmVlIj4KKyAgICA8ZGl2IGlkPSJuYXYtdHJlZS1jb250ZW50cyI+CisgICAgICA8ZGl2IGlkPSJuYXYtc3luYyIgY2xhc3M9InN5bmMiPjwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBpZD0ic3BsaXRiYXIiIHN0eWxlPSItbW96LXVzZXItc2VsZWN0Om5vbmU7IiAKKyAgICAgICBjbGFzcz0idWktcmVzaXphYmxlLWhhbmRsZSI+CisgIDwvZGl2PgorPC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisvKiBAbGljZW5zZSBtYWduZXQ6P3h0PXVybjpidGloOmQzZDlhOWE2NTk1NTIxZjk2NjZhNWU5NGNjODMwZGFiODNiNjU2OTkmYW1wO2RuPWV4cGF0LnR4dCBNSVQgKi8KKyQoZnVuY3Rpb24oKXtpbml0TmF2VHJlZSgnbWRuc19fZG9tYWluXzhjLmh0bWwnLCcnKTsgaW5pdFJlc2l6YWJsZSh0cnVlKTsgfSk7CisvKiBAbGljZW5zZS1lbmQgKi8KKzwvc2NyaXB0PgorPGRpdiBpZD0iZG9jLWNvbnRlbnQiPgorPCEtLSB3aW5kb3cgc2hvd2luZyB0aGUgZmlsdGVyIG9wdGlvbnMgLS0+Cis8ZGl2IGlkPSJNU2VhcmNoU2VsZWN0V2luZG93IgorICAgICBvbm1vdXNlb3Zlcj0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdFNob3coKSIKKyAgICAgb25tb3VzZW91dD0icmV0dXJuIHNlYXJjaEJveC5PblNlYXJjaFNlbGVjdEhpZGUoKSIKKyAgICAgb25rZXlkb3duPSJyZXR1cm4gc2VhcmNoQm94Lk9uU2VhcmNoU2VsZWN0S2V5KGV2ZW50KSI+Cis8L2Rpdj4KKworPCEtLSBpZnJhbWUgc2hvd2luZyB0aGUgc2VhcmNoIHJlc3VsdHMgKGNsb3NlZCBieSBkZWZhdWx0KSAtLT4KKzxkaXYgaWQ9Ik1TZWFyY2hSZXN1bHRzV2luZG93Ij4KKzxkaXYgaWQ9Ik1TZWFyY2hSZXN1bHRzIj4KKzxkaXYgY2xhc3M9IlNSUGFnZSI+Cis8ZGl2IGlkPSJTUkluZGV4Ij4KKzxkaXYgaWQ9IlNSUmVzdWx0cyI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJTUlN0YXR1cyIgaWQ9IkxvYWRpbmciPkxvYWRpbmcuLi48L2Rpdj4KKzxkaXYgY2xhc3M9IlNSU3RhdHVzIiBpZD0iU2VhcmNoaW5nIj5TZWFyY2hpbmcuLi48L2Rpdj4KKzxkaXYgY2xhc3M9IlNSU3RhdHVzIiBpZD0iTm9NYXRjaGVzIj5ObyBNYXRjaGVzPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iaGVhZGVyIj4KKyAgPGRpdiBjbGFzcz0ic3VtbWFyeSI+Cis8YSBocmVmPSIjZnVuYy1tZW1iZXJzIj5GdW5jdGlvbnM8L2E+ICA8L2Rpdj4KKyAgPGRpdiBjbGFzcz0iaGVhZGVydGl0bGUiPjxkaXYgY2xhc3M9InRpdGxlIj5tZG5zX2RvbWFpbi5jIEZpbGUgUmVmZXJlbmNlPC9kaXY+PC9kaXY+Cis8L2Rpdj48IS0taGVhZGVyLS0+Cis8ZGl2IGNsYXNzPSJjb250ZW50cyI+Cis8ZGl2IGNsYXNzPSJ0ZXh0YmxvY2siPjxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc184aC5odG1sIj5sd2lwL2FwcHMvbWRucy5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KKzxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fZG9tYWluXzhoLmh0bWwiPmx3aXAvYXBwcy9tZG5zX2RvbWFpbi5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KKzxjb2RlPiNpbmNsdWRlICZxdW90OzxhIGNsYXNzPSJlbCIgaHJlZj0ibWRuc19fcHJpdl84aC5odG1sIj5sd2lwL2FwcHMvbWRuc19wcml2Lmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgorPGNvZGU+I2luY2x1ZGUgJnF1b3Q7PGEgY2xhc3M9ImVsIiBocmVmPSJwcm90XzJkbnNfOGguaHRtbCI+bHdpcC9wcm90L2Rucy5oPC9hPiZxdW90OzwvY29kZT48YnIgLz4KKzxjb2RlPiNpbmNsdWRlICZsdDtzdHJpbmcuaCZndDs8L2NvZGU+PGJyIC8+Cis8Y29kZT4jaW5jbHVkZSAmcXVvdDs8YSBjbGFzcz0iZWwiIGhyZWY9InByb3RfMmlwNl84aC5odG1sIj5sd2lwL3Byb3QvaXA2Lmg8L2E+JnF1b3Q7PC9jb2RlPjxiciAvPgorPC9kaXY+PHRhYmxlIGNsYXNzPSJtZW1iZXJkZWNscyI+Cis8dHIgY2xhc3M9ImhlYWRpbmciPjx0ZCBjb2xzcGFuPSIyIj48aDIgY2xhc3M9Imdyb3VwaGVhZGVyIj48YSBpZD0iZnVuYy1tZW1iZXJzIiBuYW1lPSJmdW5jLW1lbWJlcnMiPjwvYT4KK0Z1bmN0aW9uczwvaDI+PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmExN2RiNjlmYTg4NzUxNTM3NDQ1MmI5NDVlOTU5YmJmOSIgaWQ9InJfYTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ij48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2ExN2RiNjlmYTg4NzUxNTM3NDQ1MmI5NDVlOTU5YmJmOSI+bWRuc19kb21haW5fYWRkX2xhYmVsPC9hPiAoc3RydWN0IG1kbnNfZG9tYWluICpkb21haW4sIGNvbnN0IGNoYXIgKmxhYmVsLCB1OF90IGxlbik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphMTdkYjY5ZmE4ODc1MTUzNzQ0NTJiOTQ1ZTk1OWJiZjkiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YTY0MjQ0OWNiZjAwNzRmMWEyNTA0ZTcyMTU4ZTc1ODU5IiBpZD0icl9hNjQyNDQ5Y2JmMDA3NGYxYTI1MDRlNzIxNThlNzU4NTkiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTY0MjQ0OWNiZjAwNzRmMWEyNTA0ZTcyMTU4ZTc1ODU5Ij5tZG5zX2RvbWFpbl9hZGRfZG9tYWluPC9hPiAoc3RydWN0IG1kbnNfZG9tYWluICpkb21haW4sIHN0cnVjdCBtZG5zX2RvbWFpbiAqc291cmNlKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmE2NDI0NDljYmYwMDc0ZjFhMjUwNGU3MjE1OGU3NTg1OSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphZjIyOGQxY2Y4ZDc3OWM3MTRhMDE2NzAyZGIwOTVkYjYiIGlkPSJyX2FmMjI4ZDFjZjhkNzc5YzcxNGEwMTY3MDJkYjA5NWRiNiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhZjIyOGQxY2Y4ZDc3OWM3MTRhMDE2NzAyZGIwOTVkYjYiPm1kbnNfZG9tYWluX2FkZF9zdHJpbmc8L2E+IChzdHJ1Y3QgbWRuc19kb21haW4gKmRvbWFpbiwgY29uc3QgY2hhciAqc291cmNlKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmFmMjI4ZDFjZjhkNzc5YzcxNGEwMTY3MDJkYjA5NWRiNiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiIGlkPSJyX2FiNWY0OWQ5MzU2YTc2ODc5ZTBlNmExNGViMDY0M2IyMyI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dTE2X3QmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWI1ZjQ5ZDkzNTZhNzY4NzllMGU2YTE0ZWIwNjQzYjIzIj5tZG5zX3JlYWRuYW1lPC9hPiAoc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zi5odG1sIj5wYnVmPC9hPiAqcCwgdTE2X3Qgb2Zmc2V0LCBzdHJ1Y3QgbWRuc19kb21haW4gKmRvbWFpbik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphYjVmNDlkOTM1NmE3Njg3OWUwZTZhMTRlYjA2NDNiMjMiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YTBhZmYwOTY2OTVlZWJhY2IyNjY4ZDI3NjI3MjI4NjBjIiBpZD0icl9hMGFmZjA5NjY5NWVlYmFjYjI2NjhkMjc2MjcyMjg2MGMiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPnZvaWQmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTBhZmYwOTY2OTVlZWJhY2IyNjY4ZDI3NjI3MjI4NjBjIj5tZG5zX2RvbWFpbl9kZWJ1Z19wcmludDwvYT4gKHN0cnVjdCBtZG5zX2RvbWFpbiAqZG9tYWluKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmEwYWZmMDk2Njk1ZWViYWNiMjY2OGQyNzYyNzIyODYwYyI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphNTJkOGY3MDQzMmFlOTk4ODE0ZjE2YjE4NDMxMjEzY2QiIGlkPSJyX2E1MmQ4ZjcwNDMyYWU5OTg4MTRmMTZiMTg0MzEyMTNjZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+aW50JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E1MmQ4ZjcwNDMyYWU5OTg4MTRmMTZiMTg0MzEyMTNjZCI+bWRuc19kb21haW5fZXE8L2E+IChzdHJ1Y3QgbWRuc19kb21haW4gKmEsIHN0cnVjdCBtZG5zX2RvbWFpbiAqYik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphNTJkOGY3MDQzMmFlOTk4ODE0ZjE2YjE4NDMxMjEzY2QiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YWMyZDg5NTFlMjQzNWY5M2ZkYzg4OWY2YTcxZTBjOGE2IiBpZD0icl9hYzJkODk1MWUyNDM1ZjkzZmRjODg5ZjZhNzFlMGM4YTYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWMyZDg5NTFlMjQzNWY5M2ZkYzg4OWY2YTcxZTBjOGE2Ij5tZG5zX2J1aWxkX3JldmVyc2VfdjRfZG9tYWluPC9hPiAoc3RydWN0IG1kbnNfZG9tYWluICpkb21haW4sIGNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA0X19hZGRyXzhoLmh0bWwjYTNkM2I0NWRhZmZiYzE1ZDY1ZGEyMzZlMzFlNjIxYjdlIj5pcDRfYWRkcl90PC9hPiAqYWRkcik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphYzJkODk1MWUyNDM1ZjkzZmRjODg5ZjZhNzFlMGM4YTYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YTljZGUzOTAzOWUwZTFlMjFiNDg1MWQ4NDBkNzMzOTI2IiBpZD0icl9hOWNkZTM5MDM5ZTBlMWUyMWI0ODUxZDg0MGQ3MzM5MjYiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTljZGUzOTAzOWUwZTFlMjFiNDg1MWQ4NDBkNzMzOTI2Ij5tZG5zX2J1aWxkX3JldmVyc2VfdjZfZG9tYWluPC9hPiAoc3RydWN0IG1kbnNfZG9tYWluICpkb21haW4sIGNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWFjYTllNzk2ZTkzYTM1NTI5NGM0OTU0YzA4ZDAxNzYyIj5pcDZfYWRkcl90PC9hPiAqYWRkcik8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphOWNkZTM5MDM5ZTBlMWUyMWI0ODUxZDg0MGQ3MzM5MjYiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YTE5MWQ5YjcwYTY2MDgzZjQwYWFhMDIyYzJlZDg4YjEyIiBpZD0icl9hMTkxZDliNzBhNjYwODNmNDBhYWEwMjJjMmVkODhiMTIiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTE5MWQ5YjcwYTY2MDgzZjQwYWFhMDIyYzJlZDg4YjEyIj5tZG5zX2J1aWxkX2hvc3RfZG9tYWluPC9hPiAoc3RydWN0IG1kbnNfZG9tYWluICpkb21haW4sIHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdG1kbnNfX2hvc3QuaHRtbCI+bWRuc19ob3N0PC9hPiAqbWRucyk8L3RkPjwvdHI+Cis8dHIgY2xhc3M9InNlcGFyYXRvcjphMTkxZDliNzBhNjYwODNmNDBhYWEwMjJjMmVkODhiMTIiPjx0ZCBjbGFzcz0ibWVtU2VwYXJhdG9yIiBjb2xzcGFuPSIyIj4mIzE2MDs8L3RkPjwvdHI+Cis8dHIgY2xhc3M9Im1lbWl0ZW06YTc0ODVkNzU5NzZiNzMzNTQ2NjhhNWE1NGJjODY1OGVkIiBpZD0icl9hNzQ4NWQ3NTk3NmI3MzM1NDY2OGE1YTU0YmM4NjU4ZWQiPjx0ZCBjbGFzcz0ibWVtSXRlbUxlZnQiIGFsaWduPSJyaWdodCIgdmFsaWduPSJ0b3AiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4mIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYTc0ODVkNzU5NzZiNzMzNTQ2NjhhNWE1NGJjODY1OGVkIj5tZG5zX2J1aWxkX2Ruc3NkX2RvbWFpbjwvYT4gKHN0cnVjdCBtZG5zX2RvbWFpbiAqZG9tYWluKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmE3NDg1ZDc1OTc2YjczMzU0NjY4YTVhNTRiYzg2NThlZCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphMjlkZGIwYTZiYTBlZGNmMzQxMDRlYzFmNjMyMjk2OGIiIGlkPSJyX2EyOWRkYjBhNmJhMGVkY2YzNDEwNGVjMWY2MzIyOTY4YiI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhMjlkZGIwYTZiYTBlZGNmMzQxMDRlYzFmNjMyMjk2OGIiPm1kbnNfYnVpbGRfc2VydmljZV9kb21haW48L2E+IChzdHJ1Y3QgbWRuc19kb21haW4gKmRvbWFpbiwgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sIj5tZG5zX3NlcnZpY2U8L2E+ICpzZXJ2aWNlLCBpbnQgaW5jbHVkZV9uYW1lKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmEyOWRkYjBhNmJhMGVkY2YzNDEwNGVjMWY2MzIyOTY4YiI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphNzIyMWNiMWE4M2VkNmRjZmIzYTJiMTM2NTE1NGI0M2QiIGlkPSJyX2E3MjIxY2IxYTgzZWQ2ZGNmYjNhMmIxMzY1MTU0YjQzZCI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiYjMTYwOzwvdGQ+PHRkIGNsYXNzPSJtZW1JdGVtUmlnaHQiIHZhbGlnbj0iYm90dG9tIj48YSBjbGFzcz0iZWwiIGhyZWY9IiNhNzIyMWNiMWE4M2VkNmRjZmIzYTJiMTM2NTE1NGI0M2QiPm1kbnNfYnVpbGRfcmVxdWVzdF9kb21haW48L2E+IChzdHJ1Y3QgbWRuc19kb21haW4gKmRvbWFpbiwgc3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcmVxdWVzdC5odG1sIj5tZG5zX3JlcXVlc3Q8L2E+ICpyZXF1ZXN0LCBpbnQgaW5jbHVkZV9uYW1lKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmE3MjIxY2IxYTgzZWQ2ZGNmYjNhMmIxMzY1MTU0YjQzZCI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ibWVtaXRlbTphYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiIGlkPSJyX2FiNzJlNDhjZjA3NmFmZDFlM2EwODAzMGQxZDBiZmY5ZSI+PHRkIGNsYXNzPSJtZW1JdGVtTGVmdCIgYWxpZ249InJpZ2h0IiB2YWxpZ249InRvcCI+dTE2X3QmIzE2MDs8L3RkPjx0ZCBjbGFzcz0ibWVtSXRlbVJpZ2h0IiB2YWxpZ249ImJvdHRvbSI+PGEgY2xhc3M9ImVsIiBocmVmPSIjYWI3MmU0OGNmMDc2YWZkMWUzYTA4MDMwZDFkMGJmZjllIj5tZG5zX2NvbXByZXNzX2RvbWFpbjwvYT4gKHN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWYuaHRtbCI+cGJ1ZjwvYT4gKjxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0cGJ1Zi5odG1sIj5wYnVmPC9hPiwgdTE2X3QgKm9mZnNldCwgc3RydWN0IG1kbnNfZG9tYWluICpkb21haW4pPC90ZD48L3RyPgorPHRyIGNsYXNzPSJzZXBhcmF0b3I6YWI3MmU0OGNmMDc2YWZkMWUzYTA4MDMwZDFkMGJmZjllIj48dGQgY2xhc3M9Im1lbVNlcGFyYXRvciIgY29sc3Bhbj0iMiI+JiMxNjA7PC90ZD48L3RyPgorPHRyIGNsYXNzPSJtZW1pdGVtOmE5MmRlNTRkMmYzODRhNGU0ZmZhODVlNTI5Y2MwNTQxMSIgaWQ9InJfYTkyZGU1NGQyZjM4NGE0ZTRmZmE4NWU1MjljYzA1NDExIj48dGQgY2xhc3M9Im1lbUl0ZW1MZWZ0IiBhbGlnbj0icmlnaHQiIHZhbGlnbj0idG9wIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+JiMxNjA7PC90ZD48dGQgY2xhc3M9Im1lbUl0ZW1SaWdodCIgdmFsaWduPSJib3R0b20iPjxhIGNsYXNzPSJlbCIgaHJlZj0iI2E5MmRlNTRkMmYzODRhNGU0ZmZhODVlNTI5Y2MwNTQxMSI+bWRuc193cml0ZV9kb21haW48L2E+IChzdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19vdXRwYWNrZXQuaHRtbCI+bWRuc19vdXRwYWNrZXQ8L2E+ICpvdXRwa3QsIHN0cnVjdCBtZG5zX2RvbWFpbiAqZG9tYWluKTwvdGQ+PC90cj4KKzx0ciBjbGFzcz0ic2VwYXJhdG9yOmE5MmRlNTRkMmYzODRhNGU0ZmZhODVlNTI5Y2MwNTQxMSI+PHRkIGNsYXNzPSJtZW1TZXBhcmF0b3IiIGNvbHNwYW49IjIiPiYjMTYwOzwvdGQ+PC90cj4KKzwvdGFibGU+Cis8YSBuYW1lPSJkZXRhaWxzIiBpZD0iZGV0YWlscyI+PC9hPjxoMiBjbGFzcz0iZ3JvdXBoZWFkZXIiPkRldGFpbGVkIERlc2NyaXB0aW9uPC9oMj4KKzxkaXYgY2xhc3M9InRleHRibG9jayI+PHA+TUROUyByZXNwb25kZXIgaW1wbGVtZW50YXRpb24gLSBkb21haW4gcmVsYXRlZCBmdW5jdGlvbmFsaXRpZXMgPC9wPgorPC9kaXY+PGgyIGNsYXNzPSJncm91cGhlYWRlciI+RnVuY3Rpb24gRG9jdW1lbnRhdGlvbjwvaDI+Cis8YSBpZD0iYTc0ODVkNzU5NzZiNzMzNTQ2NjhhNWE1NGJjODY1OGVkIiBuYW1lPSJhNzQ4NWQ3NTk3NmI3MzM1NDY2OGE1YTU0YmM4NjU4ZWQiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhNzQ4NWQ3NTk3NmI3MzM1NDY2OGE1YTU0YmM4NjU4ZWQiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfYnVpbGRfZG5zc2RfZG9tYWluKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gbWRuc19idWlsZF9kbnNzZF9kb21haW4gPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCBtZG5zX2RvbWFpbiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5kb21haW48L2VtPjwvc3Bhbj48L3RkPjx0ZD4pPC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+QnVpbGQgdGhlIGxvb2t1cC1hbGwtc2VydmljZXMgc3BlY2lhbCBETlMtU0QgZG9tYWluIG5hbWUgPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5kb21haW48L3RkPjx0ZD5XaGVyZSB0byB3cml0ZSB0aGUgZG9tYWluIG5hbWUgPC90ZD48L3RyPgorICA8L3RhYmxlPgorICA8L2RkPgorPC9kbD4KKzxkbCBjbGFzcz0ic2VjdGlvbiByZXR1cm4iPjxkdD5SZXR1cm5zPC9kdD48ZGQ+RVJSX09LIGlmIGRvbWFpbiBfc2VydmljZXMuX2Rucy1zZC5fdWRwLmxvY2FsLiB3YXMgd3JpdHRlbiwgYW4gZXJyX3Qgb3RoZXJ3aXNlIDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJhMTkxZDliNzBhNjYwODNmNDBhYWEwMjJjMmVkODhiMTIiIG5hbWU9ImExOTFkOWI3MGE2NjA4M2Y0MGFhYTAyMmMyZWQ4OGIxMiI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2ExOTFkOWI3MGE2NjA4M2Y0MGFhYTAyMmMyZWQ4OGIxMiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bWRuc19idWlsZF9ob3N0X2RvbWFpbigpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IG1kbnNfYnVpbGRfaG9zdF9kb21haW4gPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCBtZG5zX2RvbWFpbiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5kb21haW48L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgPGEgY2xhc3M9ImVsIiBocmVmPSJzdHJ1Y3RtZG5zX19ob3N0Lmh0bWwiPm1kbnNfaG9zdDwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bWRuczwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5CdWlsZCB0aGUgJmx0O2hvc3RuYW1lJmd0Oy5sb2NhbC4gZG9tYWluIG5hbWUgPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5kb21haW48L3RkPjx0ZD5XaGVyZSB0byB3cml0ZSB0aGUgZG9tYWluIG5hbWUgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+bWRuczwvdGQ+PHRkPlRNRE5TIG5ldGlmIGRlc2NyaXB0b3IuIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyBpZiBkb21haW4gJmx0O2hvc3RuYW1lJmd0Oy5sb2NhbC4gd2FzIHdyaXR0ZW4sIGFuIGVycl90IG90aGVyd2lzZSA8L2RkPjwvZGw+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iYTcyMjFjYjFhODNlZDZkY2ZiM2EyYjEzNjUxNTRiNDNkIiBuYW1lPSJhNzIyMWNiMWE4M2VkNmRjZmIzYTJiMTM2NTE1NGI0M2QiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhNzIyMWNiMWE4M2VkNmRjZmIzYTJiMTM2NTE1NGI0M2QiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfYnVpbGRfcmVxdWVzdF9kb21haW4oKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiBtZG5zX2J1aWxkX3JlcXVlc3RfZG9tYWluIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgbWRuc19kb21haW4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+ZG9tYWluPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fcmVxdWVzdC5odG1sIj5tZG5zX3JlcXVlc3Q8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnJlcXVlc3Q8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5pbnQ8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmluY2x1ZGVfbmFtZTwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5CdWlsZCBkb21haW4gbmFtZSBmb3IgYSByZXF1ZXN0IDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+ZG9tYWluPC90ZD48dGQ+V2hlcmUgdG8gd3JpdGUgdGhlIGRvbWFpbiBuYW1lIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnJlcXVlc3Q8L3RkPjx0ZD5UaGUgcmVxdWVzdCBzdHJ1Y3QsIGNvbnRhaW5pbmcgc2VydmljZSBuYW1lLCB0eXBlIGFuZCBwcm90b2NvbCA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5pbmNsdWRlX25hbWU8L3RkPjx0ZD5XaGV0aGVyIHRvIGluY2x1ZGUgdGhlIHNlcnZpY2UgbmFtZSBpbiB0aGUgZG9tYWluIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyBpZiBkb21haW4gd2FzIHdyaXR0ZW4uIElmIHNlcnZpY2UgbmFtZSBpcyBpbmNsdWRlZCwgJmx0O25hbWUmZ3Q7LiZsdDt0eXBlJmd0Oy4mbHQ7cHJvdG8mZ3Q7LmxvY2FsLiB3aWxsIGJlIHdyaXR0ZW4sIG90aGVyd2lzZSAmbHQ7dHlwZSZndDsuJmx0O3Byb3RvJmd0Oy5sb2NhbC4gQW4gZXJyX3QgaXMgcmV0dXJuZWQgb24gZXJyb3IuIDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJhYzJkODk1MWUyNDM1ZjkzZmRjODg5ZjZhNzFlMGM4YTYiIG5hbWU9ImFjMmQ4OTUxZTI0MzVmOTNmZGM4ODlmNmE3MWUwYzhhNiI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FjMmQ4OTUxZTI0MzVmOTNmZGM4ODlmNmE3MWUwYzhhNiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bWRuc19idWlsZF9yZXZlcnNlX3Y0X2RvbWFpbigpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IG1kbnNfYnVpbGRfcmV2ZXJzZV92NF9kb21haW4gPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCBtZG5zX2RvbWFpbiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5kb21haW48L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5jb25zdCA8YSBjbGFzcz0iZWwiIGhyZWY9ImlwNF9fYWRkcl84aC5odG1sI2EzZDNiNDVkYWZmYmMxNWQ2NWRhMjM2ZTMxZTYyMWI3ZSI+aXA0X2FkZHJfdDwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+YWRkcjwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5CdWlsZCBkb21haW4gZm9yIHJldmVyc2UgbG9va3VwIG9mIElQdjQgYWRkcmVzcyBsaWtlIDEyLjAuMTY4LjE5Mi5pbi1hZGRyLmFycGEuIGZvciAxOTIuMTY4LjAuMTIgPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5kb21haW48L3RkPjx0ZD5XaGVyZSB0byB3cml0ZSB0aGUgZG9tYWluIG5hbWUgPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+YWRkcjwvdGQ+PHRkPlBvaW50ZXIgdG8gYW4gSVB2NCBhZGRyZXNzIHRvIGVuY29kZSA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5FUlJfT0sgaWYgZG9tYWluIHdhcyB3cml0dGVuLCBhbiBlcnJfdCBvdGhlcndpc2UgPC9kZD48L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImE5Y2RlMzkwMzllMGUxZTIxYjQ4NTFkODQwZDczMzkyNiIgbmFtZT0iYTljZGUzOTAzOWUwZTFlMjFiNDg1MWQ4NDBkNzMzOTI2Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTljZGUzOTAzOWUwZTFlMjFiNDg1MWQ4NDBkNzMzOTI2Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5tZG5zX2J1aWxkX3JldmVyc2VfdjZfZG9tYWluKCk8L2gyPgorCis8ZGl2IGNsYXNzPSJtZW1pdGVtIj4KKzxkaXYgY2xhc3M9Im1lbXByb3RvIj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ibWVtbmFtZSI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9Im1lbW5hbWUiPjxhIGNsYXNzPSJlbCIgaHJlZj0iZ3JvdXBfX2luZnJhc3RydWN0dXJlX19lcnJvcnMuaHRtbCNnYWYwMmQ5ZGE4MGZkNjZiNGY5ODZkMmM1M2Q3MjMxZGRiIj5lcnJfdDwvYT4gbWRuc19idWlsZF9yZXZlcnNlX3Y2X2RvbWFpbiA8L3RkPgorICAgICAgICAgIDx0ZD4oPC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IG1kbnNfZG9tYWluICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmRvbWFpbjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPmNvbnN0IDxhIGNsYXNzPSJlbCIgaHJlZj0iaXA2X19hZGRyXzhoLmh0bWwjYWFjYTllNzk2ZTkzYTM1NTI5NGM0OTU0YzA4ZDAxNzYyIj5pcDZfYWRkcl90PC9hPiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5hZGRyPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkJ1aWxkIGRvbWFpbiBmb3IgcmV2ZXJzZSBsb29rdXAgb2YgSVAgYWRkcmVzcyBsaWtlIGIuYS45LjguNy42LjUuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjAuMC4wLjguYi5kLjAuMS4wLjAuMi5pcDYuYXJwYS4gZm9yIDIwMDE6ZGI4Ojo1Njc6ODlhYiA8L3A+PGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CisgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmRvbWFpbjwvdGQ+PHRkPldoZXJlIHRvIHdyaXRlIHRoZSBkb21haW4gbmFtZSA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5hZGRyPC90ZD48dGQ+UG9pbnRlciB0byBhbiBJUHY2IGFkZHJlc3MgdG8gZW5jb2RlIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyBpZiBkb21haW4gd2FzIHdyaXR0ZW4sIGFuIGVycl90IG90aGVyd2lzZSA8L2RkPjwvZGw+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iYTI5ZGRiMGE2YmEwZWRjZjM0MTA0ZWMxZjYzMjI5NjhiIiBuYW1lPSJhMjlkZGIwYTZiYTBlZGNmMzQxMDRlYzFmNjMyMjk2OGIiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhMjlkZGIwYTZiYTBlZGNmMzQxMDRlYzFmNjMyMjk2OGIiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfYnVpbGRfc2VydmljZV9kb21haW4oKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiBtZG5zX2J1aWxkX3NlcnZpY2VfZG9tYWluIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgbWRuc19kb21haW4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+ZG9tYWluPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IDxhIGNsYXNzPSJlbCIgaHJlZj0ic3RydWN0bWRuc19fc2VydmljZS5odG1sIj5tZG5zX3NlcnZpY2U8L2E+ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnNlcnZpY2U8L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5pbnQ8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmluY2x1ZGVfbmFtZTwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5CdWlsZCBkb21haW4gbmFtZSBmb3IgYSBzZXJ2aWNlIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+ZG9tYWluPC90ZD48dGQ+V2hlcmUgdG8gd3JpdGUgdGhlIGRvbWFpbiBuYW1lIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPnNlcnZpY2U8L3RkPjx0ZD5UaGUgc2VydmljZSBzdHJ1Y3QsIGNvbnRhaW5pbmcgc2VydmljZSBuYW1lLCB0eXBlIGFuZCBwcm90b2NvbCA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5pbmNsdWRlX25hbWU8L3RkPjx0ZD5XaGV0aGVyIHRvIGluY2x1ZGUgdGhlIHNlcnZpY2UgbmFtZSBpbiB0aGUgZG9tYWluIDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyBpZiBkb21haW4gd2FzIHdyaXR0ZW4uIElmIHNlcnZpY2UgbmFtZSBpcyBpbmNsdWRlZCwgJmx0O25hbWUmZ3Q7LiZsdDt0eXBlJmd0Oy4mbHQ7cHJvdG8mZ3Q7LmxvY2FsLiB3aWxsIGJlIHdyaXR0ZW4sIG90aGVyd2lzZSAmbHQ7dHlwZSZndDsuJmx0O3Byb3RvJmd0Oy5sb2NhbC4gQW4gZXJyX3QgaXMgcmV0dXJuZWQgb24gZXJyb3IuIDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJhYjcyZTQ4Y2YwNzZhZmQxZTNhMDgwMzBkMWQwYmZmOWUiIG5hbWU9ImFiNzJlNDhjZjA3NmFmZDFlM2EwODAzMGQxZDBiZmY5ZSI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FiNzJlNDhjZjA3NmFmZDFlM2EwODAzMGQxZDBiZmY5ZSI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bWRuc19jb21wcmVzc19kb21haW4oKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+dTE2X3QgbWRuc19jb21wcmVzc19kb21haW4gPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCA8YSBjbGFzcz0iZWwiIGhyZWY9InN0cnVjdHBidWYuaHRtbCI+cGJ1ZjwvYT4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+cGJ1ZjwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnUxNl90ICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPm9mZnNldDwvZW0+PC9zcGFuPiwgPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1rZXkiPjwvdGQ+CisgICAgICAgICAgPHRkPjwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCBtZG5zX2RvbWFpbiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5kb21haW48L2VtPjwvc3Bhbj4mIzE2MDspPC90ZD4KKyAgICAgICAgPC90cj4KKyAgICAgIDwvdGFibGU+Cis8L2Rpdj48ZGl2IGNsYXNzPSJtZW1kb2MiPgorPHA+UmV0dXJuIGJ5dGVzIG5lZWRlZCB0byB3cml0ZSBiZWZvcmUganVtcCBmb3IgYmVzdCByZXN1bHQgb2YgY29tcHJlc3Npbmcgc3VwcGxpZWQgZG9tYWluIGFnYWluc3QgZG9tYWluIGluIG91dHBhY2tldCBzdGFydGluZyBhdCBzcGVjaWZpZWQgb2Zmc2V0LiBJZiBhIG1hdGNoIGlzIGZvdW5kLCBvZmZzZXQgaXMgdXBkYXRlZCB0byB3aGVyZSB0byBqdW1wIHRvIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+cGJ1ZjwvdGQ+PHRkPlBvaW50ZXIgdG8gcGJ1ZiB3aXRoIHRoZSBwYXJ0aWFsbHkgY29uc3RydWN0ZWQgRE5TIHBhY2tldCA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5vZmZzZXQ8L3RkPjx0ZD5TdGFydCBwb3NpdGlvbiBvZiBhIGRvbWFpbiB3cml0dGVuIGVhcmxpZXIuIElmIHRoaXMgbG9jYXRpb24gaXMgc3VpdGFibGUgZm9yIGNvbXByZXNzaW9uLCB0aGUgcG9pbnRlciBpcyB1cGRhdGVkIHRvIHdoZXJlIGluIHRoZSBkb21haW4gdG8ganVtcCB0by4gPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+ZG9tYWluPC90ZD48dGQ+VGhlIGRvbWFpbiB0byB3cml0ZSA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5OdW1iZXIgb2YgYnl0ZXMgdG8gd3JpdGUgb2YgdGhlIG5ldyBkb21haW4gYmVmb3JlIHdyaXRpbmcgYSBqdW1wIHRvIHRoZSBvZmZzZXQuIElmIGNvbXByZXNzaW9uIGNhbiBub3QgYmUgZG9uZSBhZ2FpbnN0IHRoaXMgcHJldmlvdXMgZG9tYWluIG5hbWUsIHRoZSBmdWxsIG5ldyBkb21haW4gbGVuZ3RoIGlzIHJldHVybmVkLiA8L2RkPjwvZGw+CisKKzwvZGl2PgorPC9kaXY+Cis8YSBpZD0iYTY0MjQ0OWNiZjAwNzRmMWEyNTA0ZTcyMTU4ZTc1ODU5IiBuYW1lPSJhNjQyNDQ5Y2JmMDA3NGYxYTI1MDRlNzIxNThlNzU4NTkiPjwvYT4KKzxoMiBjbGFzcz0ibWVtdGl0bGUiPjxzcGFuIGNsYXNzPSJwZXJtYWxpbmsiPjxhIGhyZWY9IiNhNjQyNDQ5Y2JmMDA3NGYxYTI1MDRlNzIxNThlNzU4NTkiPiYjOTY3MDsmIzE2MDs8L2E+PC9zcGFuPm1kbnNfZG9tYWluX2FkZF9kb21haW4oKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiBtZG5zX2RvbWFpbl9hZGRfZG9tYWluIDwvdGQ+CisgICAgICAgICAgPHRkPig8L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5zdHJ1Y3QgbWRuc19kb21haW4gKjwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+ZG9tYWluPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+c3RydWN0IG1kbnNfZG9tYWluICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnNvdXJjZTwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5BZGQgYSBwYXJ0aWFsIGRvbWFpbiB0byBhIGRvbWFpbiA8L3A+PGRsIGNsYXNzPSJwYXJhbXMiPjxkdD5QYXJhbWV0ZXJzPC9kdD48ZGQ+CisgIDx0YWJsZSBjbGFzcz0icGFyYW1zIj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmRvbWFpbjwvdGQ+PHRkPlRoZSBkb21haW4gdG8gYWRkIGEgbGFiZWwgdG8gPC90ZD48L3RyPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+c291cmNlPC90ZD48dGQ+VGhlIGRvbWFpbiB0byBhZGQsIGxpa2UgJmx0O1x4MDlfc2VydmljZXNcMDA3X2Rucy1zZFwwMDAmZ3Q7IDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyBvbiBzdWNjZXNzLCBhbiBlcnJfdCBvdGhlcndpc2UgaWYgbGFiZWwgdG9vIGxvbmcgPC9kZD48L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImExN2RiNjlmYTg4NzUxNTM3NDQ1MmI5NDVlOTU5YmJmOSIgbmFtZT0iYTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ij48L2E+Cis8aDIgY2xhc3M9Im1lbXRpdGxlIj48c3BhbiBjbGFzcz0icGVybWFsaW5rIj48YSBocmVmPSIjYTE3ZGI2OWZhODg3NTE1Mzc0NDUyYjk0NWU5NTliYmY5Ij4mIzk2NzA7JiMxNjA7PC9hPjwvc3Bhbj5tZG5zX2RvbWFpbl9hZGRfbGFiZWwoKTwvaDI+CisKKzxkaXYgY2xhc3M9Im1lbWl0ZW0iPgorPGRpdiBjbGFzcz0ibWVtcHJvdG8iPgorICAgICAgPHRhYmxlIGNsYXNzPSJtZW1uYW1lIj4KKyAgICAgICAgPHRyPgorICAgICAgICAgIDx0ZCBjbGFzcz0ibWVtbmFtZSI+PGEgY2xhc3M9ImVsIiBocmVmPSJncm91cF9faW5mcmFzdHJ1Y3R1cmVfX2Vycm9ycy5odG1sI2dhZjAyZDlkYTgwZmQ2NmI0Zjk4NmQyYzUzZDcyMzFkZGIiPmVycl90PC9hPiBtZG5zX2RvbWFpbl9hZGRfbGFiZWwgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCBtZG5zX2RvbWFpbiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5kb21haW48L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5jb25zdCBjaGFyICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPmxhYmVsPC9lbT48L3NwYW4+LCA8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbWtleSI+PC90ZD4KKyAgICAgICAgICA8dGQ+PC90ZD4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtdHlwZSI+dThfdDwvdGQ+ICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW1uYW1lIj48c3BhbiBjbGFzcz0icGFyYW1uYW1lIj48ZW0+bGVuPC9lbT48L3NwYW4+JiMxNjA7KTwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICA8L3RhYmxlPgorPC9kaXY+PGRpdiBjbGFzcz0ibWVtZG9jIj4KKzxwPkFkZCBhIGxhYmVsIHBhcnQgdG8gYSBkb21haW4gPC9wPjxkbCBjbGFzcz0icGFyYW1zIj48ZHQ+UGFyYW1ldGVyczwvZHQ+PGRkPgorICA8dGFibGUgY2xhc3M9InBhcmFtcyI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5kb21haW48L3RkPjx0ZD5UaGUgZG9tYWluIHRvIGFkZCBhIGxhYmVsIHRvIDwvdGQ+PC90cj4KKyAgICA8dHI+PHRkIGNsYXNzPSJwYXJhbW5hbWUiPmxhYmVsPC90ZD48dGQ+VGhlIGxhYmVsIHRvIGFkZCwgbGlrZSAmbHQ7aG9zdG5hbWUmZ3Q7LCAnbG9jYWwnLCAnY29tJyBvciAnJyA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5sZW48L3RkPjx0ZD5UaGUgbGVuZ3RoIG9mIHRoZSBsYWJlbCA8L3RkPjwvdHI+CisgIDwvdGFibGU+CisgIDwvZGQ+Cis8L2RsPgorPGRsIGNsYXNzPSJzZWN0aW9uIHJldHVybiI+PGR0PlJldHVybnM8L2R0PjxkZD5FUlJfT0sgb24gc3VjY2VzcywgYW4gZXJyX3Qgb3RoZXJ3aXNlIGlmIGxhYmVsIHRvbyBsb25nIDwvZGQ+PC9kbD4KKworPC9kaXY+Cis8L2Rpdj4KKzxhIGlkPSJhZjIyOGQxY2Y4ZDc3OWM3MTRhMDE2NzAyZGIwOTVkYjYiIG5hbWU9ImFmMjI4ZDFjZjhkNzc5YzcxNGEwMTY3MDJkYjA5NWRiNiI+PC9hPgorPGgyIGNsYXNzPSJtZW10aXRsZSI+PHNwYW4gY2xhc3M9InBlcm1hbGluayI+PGEgaHJlZj0iI2FmMjI4ZDFjZjhkNzc5YzcxNGEwMTY3MDJkYjA5NWRiNiI+JiM5NjcwOyYjMTYwOzwvYT48L3NwYW4+bWRuc19kb21haW5fYWRkX3N0cmluZygpPC9oMj4KKworPGRpdiBjbGFzcz0ibWVtaXRlbSI+Cis8ZGl2IGNsYXNzPSJtZW1wcm90byI+CisgICAgICA8dGFibGUgY2xhc3M9Im1lbW5hbWUiPgorICAgICAgICA8dHI+CisgICAgICAgICAgPHRkIGNsYXNzPSJtZW1uYW1lIj48YSBjbGFzcz0iZWwiIGhyZWY9Imdyb3VwX19pbmZyYXN0cnVjdHVyZV9fZXJyb3JzLmh0bWwjZ2FmMDJkOWRhODBmZDY2YjRmOTg2ZDJjNTNkNzIzMWRkYiI+ZXJyX3Q8L2E+IG1kbnNfZG9tYWluX2FkZF9zdHJpbmcgPC90ZD4KKyAgICAgICAgICA8dGQ+KDwvdGQ+CisgICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbXR5cGUiPnN0cnVjdCBtZG5zX2RvbWFpbiAqPC90ZD4gICAgICAgICAgPHRkIGNsYXNzPSJwYXJhbW5hbWUiPjxzcGFuIGNsYXNzPSJwYXJhbW5hbWUiPjxlbT5kb21haW48L2VtPjwvc3Bhbj4sIDwvdGQ+CisgICAgICAgIDwvdHI+CisgICAgICAgIDx0cj4KKyAgICAgICAgICA8dGQgY2xhc3M9InBhcmFta2V5Ij48L3RkPgorICAgICAgICAgIDx0ZD48L3RkPgorICAgICAgICAgIDx0ZCBjbGFzcz0icGFyYW10eXBlIj5jb25zdCBjaGFyICo8L3RkPiAgICAgICAgICA8dGQgY2xhc3M9InBhcmFtbmFtZSI+PHNwYW4gY2xhc3M9InBhcmFtbmFtZSI+PGVtPnNvdXJjZTwvZW0+PC9zcGFuPiYjMTYwOyk8L3RkPgorICAgICAgICA8L3RyPgorICAgICAgPC90YWJsZT4KKzwvZGl2PjxkaXYgY2xhc3M9Im1lbWRvYyI+Cis8cD5BZGQgYSBzdHJpbmcgZG9tYWluIHRvIGEgZG9tYWluIDwvcD48ZGwgY2xhc3M9InBhcmFtcyI+PGR0PlBhcmFtZXRlcnM8L2R0PjxkZD4KKyAgPHRhYmxlIGNsYXNzPSJwYXJhbXMiPgorICAgIDx0cj48dGQgY2xhc3M9InBhcmFtbmFtZSI+ZG9tYWluPC90ZD48dGQ+VGhlIGRvbWFpbiB0byBhZGQgYSBsYWJlbCB0byA8L3RkPjwvdHI+CisgICAgPHRyPjx0ZCBjbGFzcz0icGFyYW1uYW1lIj5zb3VyY2U8L3RkPjx0ZD5UaGUgc3RyaW5nIHRvIGFkZCwgbGlrZSAmbHQ7X3NlcnZpY2VzLl9kbnMtc2QmZ3Q7IDwvdGQ+PC90cj4KKyAgPC90YWJsZT4KKyAgPC9kZD4KKzwvZGw+Cis8ZGwgY2xhc3M9InNlY3Rpb24gcmV0dXJuIj48ZHQ+UmV0dXJuczwvZHQ+PGRkPkVSUl9PSyBvbiBzdWNjZXNzLCBhbiBlcnJfdCBvdGhlcndpc2UgaWYgbGFiZWwgdG9vIGxvbmcgPC9kZD48L2RsPgorCis8L2Rpdj4KKzwvZGl2PgorPGEgaWQ9ImEwYWZmMDk2Njk1ZWViYWNiMjY2OGQyNzYyNzIyODYwYyIgbmFtZT0iYTBhZmYwOTY2OTVlZWJh