From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-132.freemail.mail.aliyun.com (out30-132.freemail.mail.aliyun.com [115.124.30.132]) by sourceware.org (Postfix) with ESMTPS id 07B1B3858D20 for ; Thu, 12 Jan 2023 01:56:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 07B1B3858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.alibaba.com X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R111e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046049;MF=jinma@linux.alibaba.com;NM=1;PH=DW;RN=1;SR=0;TI=W4_0.1.41_DEFAULT_21286EE2_1673488456184_o7001c1283; Received: from WS-web (jinma@linux.alibaba.com[W4_0.1.41_DEFAULT_21286EE2_1673488456184_o7001c1283]) at Thu, 12 Jan 2023 09:56:03 +0800 Date: Thu, 12 Jan 2023 09:56:03 +0800 From: "jinma" To: "gcc-patches" Reply-To: "jinma" Message-ID: <77a18666-f71d-48e2-a502-a879b3eb6ccf.jinma@linux.alibaba.com> Subject: =?UTF-8?B?W1BBVENIIHYyXSBbUklTQ1ZdIEFkZCAnWmZhJyBleHRlbnNpb24gYWNjb3JkaW5nIHRvIHJp?= =?UTF-8?B?c2N2LWlzYS1tYW51YWw=?= X-Mailer: [Alimail-Mailagent][W4_0.1.41][DEFAULT][Chrome] MIME-Version: 1.0 x-aliyun-mail-creator: W4_0.1.41_DEFAULT_M3LTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwOC4wLjAuMCBTYWZhcmkvNTM3LjM2vN Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-20.5 required=5.0 tests=BAYES_00,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: RnJvbSBlNGNlOGU4MjVjMTQ1ZDc0ZTZiOTgyN2Y5NzI2Mjk1NDhlMzlmMTE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW4gTWEgPGppbm1hQGxpbnV4LmFsaWJhYmEuY29tPgpEYXRl OiBXZWQsIDExIEphbiAyMDIzIDE5OjEzOjI3ICswODAwClN1YmplY3Q6IFtQQVRDSF0gW1JJU0NW XSBBZGQgJ1pmYScgZXh0ZW5zaW9uIGFjY29yZGluZyB0byByaXNjdi1pc2EtbWFudWFsCgpGcm9t IGU0Y2U4ZTgyNWMxNDVkNzRlNmI5ODI3Zjk3MjYyOTU0OGUzOWYxMTggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEppbiBNYSA8amlubWFAbGludXguYWxpYmFiYS5jb20+CkRhdGU6IFdl ZCwgMTEgSmFuIDIwMjMgMTk6MTM6MjcgKzA4MDAKU3ViamVjdDogW1BBVENIXSBbUklTQ1ZdIEFk ZCAnWmZhJyBleHRlbnNpb24gYWNjb3JkaW5nIHRvIHJpc2N2LWlzYS1tYW51YWwKClRoaXMgcGF0 Y2ggYWRkcyB0aGUgJ1pmYScgZXh0ZW5zaW9uIGZvciByaXNjdiwgd2hpY2ggaXMgYW4gaW1wbGVt ZW50YXRpb24gZm9yCnVucmF0aWZpZWQgYW5kIHVuZnJvemVuIFJJU0MtViBleHRlbnNpb24uCgpB bHRob3VnaCB0aGUgYmludXRpbHMtZ2RiIGZvciAnWmZhJyBleHRlbnNpb24gaXMgbm90IHlldCB1 cHN0cmVhbSwgd2UgY2FuIHRyeQp0byBkaXNjdXNzIGl0LiBBbmQgd2UgY2FuIHRlc3QgbmV3IGlu c3RydWN0aW9ucyBmb3IgeW91ciAocG9zc2libHkgdmlydHVhbCkKZW52aXJvbm1lbnQgYW5kIGVh cmx5IHJldmlldyBmb3IgZmFzdCBhZG9wdGlvbiBhZnRlciByYXRpZmljYXRpb24uCgpUaGlzIGlz IGJhc2VkIG9uOgooIGh0dHBzOi8vZ2l0aHViLmNvbS9yaXNjdi9yaXNjdi1pc2EtbWFudWFsL2Nv bW1pdC9kNzRkOTllMjJkNWY2ODgzMmY3MDk4MmQ4Njc2MTRlMjE0OWEzYmQ3ICkKbGF0ZXN0ICda ZmEnIGNoYW5nZSBvbiB0aGUgbWFzdGVyIGJyYW5jaCBvZiB0aGUgUklTQy1WIElTQSBNYW51YWwg YXMKb2YgdGhpcyB3cml0aW5nLgoKVGhlIFdpa2kgUGFnZSAoZGV0YWlscyk6CiggaHR0cHM6Ly9n aXRodWIuY29tL2E0bGcvYmludXRpbHMtZ2RiL3dpa2kvcmlzY3ZfemZhIO+8iQoKVGhlIGJpbnV0 aWxzLWdkYiBmb3IgJ1pmYScgZXh0ZW5zaW9uOgooIGh0dHBzOi8vc291cmNld2FyZS5vcmcvcGlw ZXJtYWlsL2JpbnV0aWxzLzIwMjItU2VwdGVtYmVyLzEyMjkzOC5odG1sICkKCmdjYy9DaGFuZ2VM b2c6CgogICAgICAgICogY29tbW9uL2NvbmZpZy9yaXNjdi9yaXNjdi1jb21tb24uY2M6CiAgICAg ICAgKiBjb25maWcvcmlzY3YvY29uc3RyYWludHMubWQgKFpmKToKICAgICAgICAqIGNvbmZpZy9y aXNjdi9wcmVkaWNhdGVzLm1kOgogICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LWJ1aWx0aW5z LmNjIChSSVNDVl9GVFlQRV9OQU1FMik6CiAgICAgICAgKEFWQUlMKToKICAgICAgICAoUklTQ1Zf QVRZUEVfU0YpOgogICAgICAgIChSSVNDVl9BVFlQRV9ERik6CiAgICAgICAgKFJJU0NWX0ZUWVBF X0FUWVBFUzIpOgogICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LWZ0eXBlcy5kZWYgKDIpOgog ICAgICAgICogY29uZmlnL3Jpc2N2L3Jpc2N2LW9wdHMuaCAoTUFTS19aRkEpOgogICAgICAgIChU QVJHRVRfWkZBKToKICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaCAocmlzY3Zf ZmxvYXRfY29uc3RfcnR4X2luZGV4X2Zvcl9mbGkpOgogICAgICAgICogY29uZmlnL3Jpc2N2L3Jp c2N2LmNjIChyaXNjdl9mbG9hdF9jb25zdF9ydHhfaW5kZXhfZm9yX2ZsaSk6CiAgICAgICAgKHJp c2N2X2Nhbm5vdF9mb3JjZV9jb25zdF9tZW0pOgogICAgICAgIChyaXNjdl9jb25zdF9pbnNucyk6 CiAgICAgICAgKHJpc2N2X2xlZ2l0aW1pemVfY29uc3RfbW92ZSk6CiAgICAgICAgKHJpc2N2X3Nw bGl0XzY0Yml0X21vdmVfcCk6CiAgICAgICAgKHJpc2N2X291dHB1dF9tb3ZlKToKICAgICAgICAo cmlzY3ZfbWVtbW9kZWxfbmVlZHNfcmVsZWFzZV9mZW5jZSk6CiAgICAgICAgKHJpc2N2X3ByaW50 X29wZXJhbmQpOgogICAgICAgIChyaXNjdl9zZWNvbmRhcnlfbWVtb3J5X25lZWRlZCk6CiAgICAg ICAgKiBjb25maWcvcmlzY3YvcmlzY3YuaCAoR1BfUkVHX1JUWF9QKToKICAgICAgICAqIGNvbmZp Zy9yaXNjdi9yaXNjdi5tZCAocmlzY3ZfZm1pbm08bW9kZT4zKToKICAgICAgICAocmlzY3ZfZm1h eG08bW9kZT4zKToKICAgICAgICAoZml4X3RydW5jZGZzaTJfemZhKToKICAgICAgICAocm91bmQ8 QU5ZRjptb2RlPjIpOgogICAgICAgIChyaW50PEFOWUY6bW9kZT4yKToKICAgICAgICAoZjxxdWll dF9wYXR0ZXJuPl9xdWlldDxBTllGOm1vZGU+PFg6bW9kZT40X3pmYSk6CiAgICAgICAgKiBjb25m aWcvcmlzY3YvcmlzY3Yub3B0OgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgogICAgICAgICog Z2NjLnRhcmdldC9yaXNjdi96ZmEtZmN2dG1vZC5jOiBOZXcgdGVzdC4KICAgICAgICAqIGdjYy50 YXJnZXQvcmlzY3YvemZhLWZsZXEtZmx0cS5jOiBOZXcgdGVzdC4KICAgICAgICAqIGdjYy50YXJn ZXQvcmlzY3YvemZhLWZsaS16ZmguYzogTmV3IHRlc3QuCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jp c2N2L3pmYS1mbGkuYzogTmV3IHRlc3QuCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3pmYS1m bWlubS1mbWF4bS5jOiBOZXcgdGVzdC4KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvemZhLWZt b3ZoLWZtb3ZwLmM6IE5ldyB0ZXN0LgogICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi96ZmEtZnJv dW5kLmM6IE5ldyB0ZXN0LgotLS0KIGdjYy9jb21tb24vY29uZmlnL3Jpc2N2L3Jpc2N2LWNvbW1v bi5jYyAgICAgICB8ICAgNCArCiBnY2MvY29uZmlnL3Jpc2N2L2NvbnN0cmFpbnRzLm1kICAgICAg ICAgICAgICAgfCAgIDcgKysKIGdjYy9jb25maWcvcmlzY3YvcHJlZGljYXRlcy5tZCAgICAgICAg ICAgICAgICB8ICAgNCArCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LWJ1aWx0aW5zLmNjICAgICAg ICAgICAgfCAgMTEgKysKIGdjYy9jb25maWcvcmlzY3YvcmlzY3YtZnR5cGVzLmRlZiAgICAgICAg ICAgICB8ICAgMiArCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW9wdHMuaCAgICAgICAgICAgICAg ICAgfCAgIDMgKwogZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaCAgICAgICAgICAgICAg IHwgICAxICsKIGdjYy9jb25maWcvcmlzY3YvcmlzY3YuY2MgICAgICAgICAgICAgICAgICAgICB8 IDEwNSArKysrKysrKysrKysrKystCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmggICAgICAgICAg ICAgICAgICAgICAgfCAgIDEgKwogZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5tZCAgICAgICAgICAg ICAgICAgICAgIHwgMTE0ICsrKysrKysrKysrKysrLS0tLQogZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di5vcHQgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi96ZmEtZmN2dG1vZC5jICB8ICAxMiArKwogLi4uL2djYy50YXJnZXQvcmlzY3YvemZh LWZsZXEtZmx0cS5jICAgICAgICAgIHwgIDIwICsrKwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3pmYS1mbGktemZoLmMgIHwgIDQyICsrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi96ZmEtZmxpLmMgICAgICB8ICA4MCArKysrKysrKysrKysKIC4uLi9nY2MudGFy Z2V0L3Jpc2N2L3pmYS1mbWlubS1mbWF4bS5jICAgICAgICB8ICAyNSArKysrCiAuLi4vZ2NjLnRh cmdldC9yaXNjdi96ZmEtZm1vdmgtZm1vdnAuYyAgICAgICAgfCAgMTEgKysKIGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZnJvdW5kLmMgICB8ICAyNSArKysrCiAxOCBmaWxlcyBj aGFuZ2VkLCA0NDggaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pmYS1mY3Z0bW9kLmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemZhLWZsZXEtZmx0 cS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pm YS1mbGktemZoLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvemZhLWZsaS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3pmYS1mbWlubS1mbWF4bS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pmYS1mbW92aC1mbW92cC5jCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pmYS1mcm91bmQuYwoKZGlmZiAtLWdp dCBhL2djYy9jb21tb24vY29uZmlnL3Jpc2N2L3Jpc2N2LWNvbW1vbi5jYyBiL2djYy9jb21tb24v Y29uZmlnL3Jpc2N2L3Jpc2N2LWNvbW1vbi5jYwppbmRleCAwYTg5ZmRhZmZlMi4uY2NjZWMxMjk3 NWMgMTAwNjQ0Ci0tLSBhL2djYy9jb21tb24vY29uZmlnL3Jpc2N2L3Jpc2N2LWNvbW1vbi5jYwor KysgYi9nY2MvY29tbW9uL2NvbmZpZy9yaXNjdi9yaXNjdi1jb21tb24uY2MKQEAgLTIxNyw2ICsy MTcsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJpc2N2X2V4dF92ZXJzaW9uIHJpc2N2X2V4dF92 ZXJzaW9uX3RhYmxlW10gPQogICB7InpmaCIsICAgICAgIElTQV9TUEVDX0NMQVNTX05PTkUsIDEs IDB9LAogICB7InpmaG1pbiIsICAgIElTQV9TUEVDX0NMQVNTX05PTkUsIDEsIDB9LAoKKyAgeyJ6 ZmEiLCAgICAgSVNBX1NQRUNfQ0xBU1NfTk9ORSwgMSwgMH0sCisKICAgeyJ6bW11bCIsIElTQV9T UEVDX0NMQVNTX05PTkUsIDEsIDB9LAoKICAgeyJzdmludmFsIiwgSVNBX1NQRUNfQ0xBU1NfTk9O RSwgMSwgMH0sCkBAIC0xMjQyLDYgKzEyNDQsOCBAQCBzdGF0aWMgY29uc3QgcmlzY3ZfZXh0X2Zs YWdfdGFibGVfdCByaXNjdl9leHRfZmxhZ190YWJsZVtdID0KICAgeyJ6ZmhtaW4iLCAgICAmZ2Nj X29wdGlvbnM6OnhfcmlzY3ZfemZfc3ViZXh0LCBNQVNLX1pGSE1JTn0sCiAgIHsiemZoIiwgICAg ICAgJmdjY19vcHRpb25zOjp4X3Jpc2N2X3pmX3N1YmV4dCwgTUFTS19aRkh9LAoKKyAgeyJ6ZmEi LCAgICAgICAmZ2NjX29wdGlvbnM6OnhfcmlzY3ZfemZfc3ViZXh0LCBNQVNLX1pGQX0sCisKICAg eyJ6bW11bCIsICZnY2Nfb3B0aW9uczo6eF9yaXNjdl96bV9zdWJleHQsIE1BU0tfWk1NVUx9LAoK ICAgeyJzdmludmFsIiwgJmdjY19vcHRpb25zOjp4X3Jpc2N2X3N2X3N1YmV4dCwgTUFTS19TVklO VkFMfSwKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvY29uc3RyYWludHMubWQgYi9nY2Mv Y29uZmlnL3Jpc2N2L2NvbnN0cmFpbnRzLm1kCmluZGV4IDUxY2ZmYjJiY2I2Li4yZmQ0MDdiMWQ5 YyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9jb25zdHJhaW50cy5tZAorKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L2NvbnN0cmFpbnRzLm1kCkBAIC0xMTAsNiArMTEwLDEzIEBAIChkZWZpbmVf Y29uc3RyYWludCAiVCIKICAgKGFuZCAobWF0Y2hfb3BlcmFuZCAwICJtb3ZlX29wZXJhbmQiKQog ICAgICAgIChtYXRjaF90ZXN0ICJDT05TVEFOVF9QIChvcCkiKSkpCgorOzsgWmZhIGNvbnN0cmFp bnRzLgorCisoZGVmaW5lX2NvbnN0cmFpbnQgIlpmIgorICAiQSBmbG9hdGluZyBwb2ludCBudW1i ZXIgdGhhdCBjYW4gYmUgbG9hZGVkIHVzaW5nIGluc3RydWN0aW9uIGBmbGlgIGluIHpmYS4iCisg IChhbmQgKG1hdGNoX2NvZGUgImNvbnN0X2RvdWJsZSIpCisgICAgICAgKG1hdGNoX3Rlc3QgIihy aXNjdl9mbG9hdF9jb25zdF9ydHhfaW5kZXhfZm9yX2ZsaSAob3ApICE9IC0xKSIpKSkKKwogOzsg VmVjdG9yIGNvbnN0cmFpbnRzLgoKIChkZWZpbmVfcmVnaXN0ZXJfY29uc3RyYWludCAidnIiICJU QVJHRVRfVkVDVE9SID8gVl9SRUdTIDogTk9fUkVHUyIKZGlmZiAtLWdpdCBhL2djYy9jb25maWcv cmlzY3YvcHJlZGljYXRlcy5tZCBiL2djYy9jb25maWcvcmlzY3YvcHJlZGljYXRlcy5tZAppbmRl eCA1YTVhNDliZjdjMC4uMGU4Y2YzYjM3MDggMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3Yv cHJlZGljYXRlcy5tZAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3ByZWRpY2F0ZXMubWQKQEAgLTE0 OSw2ICsxNDksMTAgQEAgKGRlZmluZV9wcmVkaWNhdGUgIm1vdmVfb3BlcmFuZCIKICAgICBjYXNl IENPTlNUX1BPTFlfSU5UOgogICAgICAgcmV0dXJuIGtub3duX2VxIChydHhfdG9fcG9seV9pbnQ2 NCAob3ApLCBCWVRFU19QRVJfUklTQ1ZfVkVDVE9SKTsKCisgICAgY2FzZSBDT05TVF9ET1VCTEU6 CisgICAgICByZXR1cm4gY29uc3RfMF9vcGVyYW5kIChvcCwgbW9kZSkKKyAgICAgICAgICAgICB8 fCAocmlzY3ZfZmxvYXRfY29uc3RfcnR4X2luZGV4X2Zvcl9mbGkgKG9wKSAhPSAtMSk7CisKICAg ICBjYXNlIENPTlNUOgogICAgIGNhc2UgU1lNQk9MX1JFRjoKICAgICBjYXNlIExBQkVMX1JFRjoK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtYnVpbHRpbnMuY2MgYi9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LWJ1aWx0aW5zLmNjCmluZGV4IDI0YWUyMmM5OWNkLi5hOTliMWU1MGQ5 NiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1idWlsdGlucy5jYworKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LWJ1aWx0aW5zLmNjCkBAIC00Miw2ICs0Miw3IEBAIGFsb25n IHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAvKiBNYWNyb3Mg dG8gY3JlYXRlIGFuIGVudW1lcmF0aW9uIGlkZW50aWZpZXIgZm9yIGEgZnVuY3Rpb24gcHJvdG90 eXBlLiAgKi8KICNkZWZpbmUgUklTQ1ZfRlRZUEVfTkFNRTAoQSkgUklTQ1ZfIyNBIyNfRlRZUEUK ICNkZWZpbmUgUklTQ1ZfRlRZUEVfTkFNRTEoQSwgQikgUklTQ1ZfIyNBIyNfRlRZUEVfIyNCCisj ZGVmaW5lIFJJU0NWX0ZUWVBFX05BTUUyKEEsIEIsIEMpIFJJU0NWXyMjQSMjX0ZUWVBFXyMjQiMj XyMjQwoKIC8qIENsYXNzaWZpZXMgdGhlIHByb3RvdHlwZSBvZiBhIGJ1aWx0LWluIGZ1bmN0aW9u LiAgKi8KIGVudW0gcmlzY3ZfZnVuY3Rpb25fdHlwZSB7CkBAIC05OCw2ICs5OSw3IEBAIEFWQUlM ICh6ZXJvMzIsICBUQVJHRVRfWklDQk9aICYmICFUQVJHRVRfNjRCSVQpCiBBVkFJTCAoemVybzY0 LCAgVEFSR0VUX1pJQ0JPWiAmJiBUQVJHRVRfNjRCSVQpCiBBVkFJTCAocHJlZmV0Y2hpMzIsIFRB UkdFVF9aSUNCT1AgJiYgIVRBUkdFVF82NEJJVCkKIEFWQUlMIChwcmVmZXRjaGk2NCwgVEFSR0VU X1pJQ0JPUCAmJiBUQVJHRVRfNjRCSVQpCitBVkFJTCAoemZhLCBUQVJHRVRfWkZBKQogQVZBSUwg KGFsd2F5cywgICAgICghMCkpCgogLyogQ29uc3RydWN0IGEgcmlzY3ZfYnVpbHRpbl9kZXNjcmlw dGlvbiBmcm9tIHRoZSBnaXZlbiBhcmd1bWVudHMuCkBAIC0xMzUsNiArMTM3LDggQEAgQVZBSUwg KGFsd2F5cywgICAgICghMCkpCiAjZGVmaW5lIFJJU0NWX0FUWVBFX1NJIGludFNJX3R5cGVfbm9k ZQogI2RlZmluZSBSSVNDVl9BVFlQRV9ESSBpbnRESV90eXBlX25vZGUKICNkZWZpbmUgUklTQ1Zf QVRZUEVfVk9JRF9QVFIgcHRyX3R5cGVfbm9kZQorI2RlZmluZSBSSVNDVl9BVFlQRV9TRiBmbG9h dF90eXBlX25vZGUKKyNkZWZpbmUgUklTQ1ZfQVRZUEVfREYgZG91YmxlX3R5cGVfbm9kZQoKIC8q IFJJU0NWX0ZUWVBFX0FUWVBFU04gdGFrZXMgTiBSSVNDVl9GVFlQRVMtbGlrZSB0eXBlIGNvZGVz IGFuZCBsaXN0cwogICAgdGhlaXIgYXNzb2NpYXRlZCBSSVNDVl9BVFlQRXMuICAqLwpAQCAtMTQy LDYgKzE0Niw4IEBAIEFWQUlMIChhbHdheXMsICAgICAoITApKQogICBSSVNDVl9BVFlQRV8jI0EK ICNkZWZpbmUgUklTQ1ZfRlRZUEVfQVRZUEVTMShBLCBCKSBcCiAgIFJJU0NWX0FUWVBFXyMjQSwg UklTQ1ZfQVRZUEVfIyNCCisjZGVmaW5lIFJJU0NWX0ZUWVBFX0FUWVBFUzIoQSwgQiwgQykgXAor ICBSSVNDVl9BVFlQRV8jI0EsIFJJU0NWX0FUWVBFXyMjQiwgUklTQ1ZfQVRZUEVfIyNDCgogc3Rh dGljIGNvbnN0IHN0cnVjdCByaXNjdl9idWlsdGluX2Rlc2NyaXB0aW9uIHJpc2N2X2J1aWx0aW5z W10gPSB7CiAgICNpbmNsdWRlICJyaXNjdi1jbW8uZGVmIgpAQCAtMTQ5LDYgKzE1NSwxMSBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHJpc2N2X2J1aWx0aW5fZGVzY3JpcHRpb24gcmlzY3ZfYnVpbHRp bnNbXSA9IHsKICAgRElSRUNUX0JVSUxUSU4gKGZyZmxhZ3MsIFJJU0NWX1VTSV9GVFlQRSwgaGFy ZF9mbG9hdCksCiAgIERJUkVDVF9OT19UQVJHRVRfQlVJTFRJTiAoZnNmbGFncywgUklTQ1ZfVk9J RF9GVFlQRV9VU0ksIGhhcmRfZmxvYXQpLAogICBESVJFQ1RfTk9fVEFSR0VUX0JVSUxUSU4gKHBh dXNlLCBSSVNDVl9WT0lEX0ZUWVBFLCBhbHdheXMpLAorCisgIFJJU0NWX0JVSUxUSU4gKGZtaW5t c2YzLCAiZm1pbm1mIiwgUklTQ1ZfQlVJTFRJTl9ESVJFQ1QsIFJJU0NWX1NGX0ZUWVBFX1NGX1NG LCB6ZmEpLAorICBSSVNDVl9CVUlMVElOIChmbWlubWRmMywgImZtaW5tIiwgUklTQ1ZfQlVJTFRJ Tl9ESVJFQ1QsIFJJU0NWX0RGX0ZUWVBFX0RGX0RGLCB6ZmEpLAorICBSSVNDVl9CVUlMVElOIChm bWF4bXNmMywgImZtYXhtZiIsIFJJU0NWX0JVSUxUSU5fRElSRUNULCBSSVNDVl9TRl9GVFlQRV9T Rl9TRiwgemZhKSwKKyAgUklTQ1ZfQlVJTFRJTiAoZm1heG1kZjMsICJmbWF4bSIsIFJJU0NWX0JV SUxUSU5fRElSRUNULCBSSVNDVl9ERl9GVFlQRV9ERl9ERiwgemZhKSwKIH07CgogLyogSW5kZXgg SSBpcyB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb24gZm9yIHJpc2N2X2J1aWx0aW5zW0ldLCBvciBu dWxsIGlmIHRoZQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1mdHlwZXMuZGVm IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1mdHlwZXMuZGVmCmluZGV4IGJmMmQzMDc4MmQ5Li5k ZDNlNmYzOWZmMCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1mdHlwZXMuZGVm CisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtZnR5cGVzLmRlZgpAQCAtMzIsMyArMzIsNSBA QCBERUZfUklTQ1ZfRlRZUEUgKDEsIChWT0lELCBVU0kpKQogREVGX1JJU0NWX0ZUWVBFICgxLCAo Vk9JRCwgVk9JRF9QVFIpKQogREVGX1JJU0NWX0ZUWVBFICgxLCAoU0ksIFNJKSkKIERFRl9SSVND Vl9GVFlQRSAoMSwgKERJLCBESSkpCitERUZfUklTQ1ZfRlRZUEUgKDIsIChTRiwgU0YsIFNGKSkK K0RFRl9SSVNDVl9GVFlQRSAoMiwgKERGLCBERiwgREYpKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi1vcHRzLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LW9wdHMuaAppbmRl eCAyNWZkODViMDliMS4uM2FiNmQ1NzY2YzQgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3Ytb3B0cy5oCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Ytb3B0cy5oCkBAIC0xNzIs NiArMTcyLDkgQEAgZW51bSBzdGFja19wcm90ZWN0b3JfZ3VhcmQgewogI2RlZmluZSBUQVJHRVRf WkZITUlOICgocmlzY3ZfemZfc3ViZXh0ICYgTUFTS19aRkhNSU4pICE9IDApCiAjZGVmaW5lIFRB UkdFVF9aRkggICAgKChyaXNjdl96Zl9zdWJleHQgJiBNQVNLX1pGSCkgIT0gMCkKCisjZGVmaW5l IE1BU0tfWkZBICAgKDEgPDwgMCkKKyNkZWZpbmUgVEFSR0VUX1pGQSAgICAoKHJpc2N2X3pmX3N1 YmV4dCAmIE1BU0tfWkZBKSAhPSAwKQorCiAjZGVmaW5lIE1BU0tfWk1NVUwgICAgICAoMSA8PCAw KQogI2RlZmluZSBUQVJHRVRfWk1NVUwgICAgKChyaXNjdl96bV9zdWJleHQgJiBNQVNLX1pNTVVM KSAhPSAwKQoKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oCmluZGV4IDY0ZWU1NmI4YTdjLi5kOTllYzNl OTAwMiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaAorKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oCkBAIC0zOCw2ICszOCw3IEBAIGVudW0gcmlz Y3Zfc3ltYm9sX3R5cGUgewogLyogUm91dGluZXMgaW1wbGVtZW50ZWQgaW4gcmlzY3YuY2MuICAq LwogZXh0ZXJuIGVudW0gcmlzY3Zfc3ltYm9sX3R5cGUgcmlzY3ZfY2xhc3NpZnlfc3ltYm9saWNf ZXhwcmVzc2lvbiAocnR4KTsKIGV4dGVybiBib29sIHJpc2N2X3N5bWJvbGljX2NvbnN0YW50X3Ag KHJ0eCwgZW51bSByaXNjdl9zeW1ib2xfdHlwZSAqKTsKK2V4dGVybiBpbnQgcmlzY3ZfZmxvYXRf Y29uc3RfcnR4X2luZGV4X2Zvcl9mbGkgKHJ0eCk7CiBleHRlcm4gaW50IHJpc2N2X3JlZ25vX21v ZGVfb2tfZm9yX2Jhc2VfcCAoaW50LCBtYWNoaW5lX21vZGUsIGJvb2wpOwogZXh0ZXJuIGludCBy aXNjdl9hZGRyZXNzX2luc25zIChydHgsIG1hY2hpbmVfbW9kZSwgYm9vbCk7CiBleHRlcm4gaW50 IHJpc2N2X2NvbnN0X2luc25zIChydHgpOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MKaW5kZXggOWE1Mzk5OWEzOWQuLjFi MjY5Yjc2ZGQ2IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjCisrKyBiL2dj Yy9jb25maWcvcmlzY3YvcmlzY3YuY2MKQEAgLTc5OSw2ICs3OTksNTMgQEAgc3RhdGljIGludCBy aXNjdl9zeW1ib2xfaW5zbnMgKGVudW0gcmlzY3Zfc3ltYm9sX3R5cGUgdHlwZSkKICAgICB9CiB9 Cgorc3RhdGljIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgZmxpX3ZhbHVlWzMyXSA9Cit7CisgIDB4 YmY4MDAwMDAsIDB4MDA4MDAwMDAsIDB4Mzc4MDAwMDAsIDB4MzgwMDAwMDAsIDB4M2I4MDAwMDAs IDB4M2MwMDAwMDAsIDB4M2Q4MDAwMDAsIDB4M2UwMDAwMDAsCisgIDB4M2U4MDAwMDAsIDB4M2Vh MDAwMDAsIDB4M2VjMDAwMDAsIDB4M2VlMDAwMDAsIDB4M2YwMDAwMDAsIDB4M2YyMDAwMDAsIDB4 M2Y0MDAwMDAsIDB4M2Y2MDAwMDAsCisgIDB4M2Y4MDAwMDAsIDB4M2ZhMDAwMDAsIDB4M2ZjMDAw MDAsIDB4M2ZlMDAwMDAsIDB4NDAwMDAwMDAsIDB4NDAyMDAwMDAsIDB4NDA0MDAwMDAsIDB4NDA4 MDAwMDAsCisgIDB4NDEwMDAwMDAsIDB4NDE4MDAwMDAsIDB4NDMwMDAwMDAsIDB4NDM4MDAwMDAs IDB4NDcwMDAwMDAsIDB4NDc4MDAwMDAsIDB4N2Y4MDAwMDAsIDB4N2ZjMDAwMDAKK307CisKKy8q IFJldHVybiBpbmRleCBvZiB0aGUgRkxJIGluc3RydWN0aW9uIHRhYmxlIGlmIHJ0eCBYIGlzIGFu IGltbWVkaWF0ZSBjb25zdGFudCB0aGF0CisgICBjYW4gYmUgbW92ZWQgdXNpbmcgYSBzaW5nbGUg RkxJIGluc3RydWN0aW9uIGluIHpmYSBleHRlbnNpb24uIC0xIG90aGVyd2lzZS4gKi8KKworaW50 CityaXNjdl9mbG9hdF9jb25zdF9ydHhfaW5kZXhfZm9yX2ZsaSAocnR4IHgpCit7CisgIG1hY2hp bmVfbW9kZSBtb2RlID0gR0VUX01PREUgKHgpOworCisgIGlmICghVEFSR0VUX1pGQSB8fCBtb2Rl ID09IFZPSURtb2RlCisgICAgICB8fCAhQ09OU1RfRE9VQkxFX1AoeCkKKyAgICAgIHx8IChtb2Rl ID09IEhGbW9kZSAmJiAhVEFSR0VUX1pGSE1JTikKKyAgICAgIHx8IChtb2RlID09IFNGbW9kZSAm JiAhVEFSR0VUX0hBUkRfRkxPQVQpCisgICAgICB8fCAobW9kZSA9PSBERm1vZGUgJiYgIVRBUkdF VF9ET1VCTEVfRkxPQVQpKQorICAgIHJldHVybiAtMTsKKworICBpZiAoU0NBTEFSX0ZMT0FUX01P REVfUCAobW9kZSkKKyAgICAgICYmIEdFVF9NT0RFX0JJVFNJWkUgKG1vZGUpLnRvX2NvbnN0YW50 ICgpIDw9IEhPU1RfQklUU19QRVJfV0lERV9JTlQKKyAgICAgIC8qIE9ubHkgc3VwcG9ydCB1cCB0 byBERiBtb2RlLiAgKi8KKyAgICAgICYmIEdFVF9NT0RFX0JJVFNJWkUgKG1vZGUpLnRvX2NvbnN0 YW50ICgpIDw9IEdFVF9NT0RFX0JJVFNJWkUgKERGbW9kZSkpCisgICAgeworICAgICAgdW5zaWdu ZWQgSE9TVF9XSURFX0lOVCBpdmFsID0gMDsKKyAgICAgIFJFQUxfVkFMVUVfVFlQRSBkOworCisg ICAgICBkID0gcmVhbF92YWx1ZV90cnVuY2F0ZSAoZmxvYXRfbW9kZV9mb3Jfc2l6ZSAoMzIpLnJl cXVpcmUgKCksICpDT05TVF9ET1VCTEVfUkVBTF9WQUxVRSAoeCkpOworICAgICAgUkVBTF9WQUxV RV9UT19UQVJHRVRfU0lOR0xFIChkLCBpdmFsKTsKKworICAgICAgZm9yIChpbnQgaSA9IDA7IGkg PCAzMjsgaSsrKQorICAgICAgIHsKKyAgICAgICAgIGlmIChpdmFsID09IGZsaV92YWx1ZVtpXSkK KyAgICAgICAgICAgcmV0dXJuIGk7CisgICAgICAgfQorCisgICAgICAvKiBUaGUgbWluaW11bSBw b3NpdGl2ZSBub3JtYWwgdmFsdWUgKDYuMTA0RS01KSBmb3IgaGFsZi1wcmVjaXNpb24uICovCisg ICAgICBpZiAobW9kZSA9PSBIRm1vZGUgJiYgaXZhbCA9PSAweDM4ODAwMDAwKQorICAgICAgIHJl dHVybiAxOworICAgIH0KKyAgcmV0dXJuIC0xOworfQorCiAvKiBJbXBsZW1lbnQgVEFSR0VUX0xF R0lUSU1BVEVfQ09OU1RBTlRfUC4gICovCgogc3RhdGljIGJvb2wKQEAgLTgyNiw2ICs4NzMsOSBA QCByaXNjdl9jYW5ub3RfZm9yY2VfY29uc3RfbWVtIChtYWNoaW5lX21vZGUgbW9kZSBBVFRSSUJV VEVfVU5VU0VELCBydHggeCkKICAgaWYgKEdFVF9DT0RFICh4KSA9PSBISUdIKQogICAgIHJldHVy biB0cnVlOwoKKyAgaWYgKHJpc2N2X2Zsb2F0X2NvbnN0X3J0eF9pbmRleF9mb3JfZmxpICh4KSAh PSAtMSkKKyAgIHJldHVybiB0cnVlOworCiAgIHNwbGl0X2NvbnN0ICh4LCAmYmFzZSwgJm9mZnNl dCk7CiAgIGlmIChyaXNjdl9zeW1ib2xpY19jb25zdGFudF9wIChiYXNlLCAmdHlwZSkpCiAgICAg ewpAQCAtMTE3OSw2ICsxMjI5LDggQEAgcmlzY3ZfY29uc3RfaW5zbnMgKHJ0eCB4KQogICAgICAg fQoKICAgICBjYXNlIENPTlNUX0RPVUJMRToKKyAgICAgIGlmIChyaXNjdl9mbG9hdF9jb25zdF9y dHhfaW5kZXhfZm9yX2ZsaSAoeCkgIT0gLTEpCisgICAgICAgcmV0dXJuIDQ7CiAgICAgY2FzZSBD T05TVF9WRUNUT1I6CiAgICAgICAvKiBXZSBjYW4gdXNlIHgwIHRvIGxvYWQgZmxvYXRpbmctcG9p bnQgemVyby4gICovCiAgICAgICByZXR1cm4geCA9PSBDT05TVDBfUlRYIChHRVRfTU9ERSAoeCkp ID8gMSA6IDA7CkBAIC0xNzE1LDYgKzE3NjcsMTIgQEAgcmlzY3ZfbGVnaXRpbWl6ZV9jb25zdF9t b3ZlIChtYWNoaW5lX21vZGUgbW9kZSwgcnR4IGRlc3QsIHJ0eCBzcmMpCiAgICAgICByZXR1cm47 CiAgICAgfQoKKyAgaWYgKHJpc2N2X2Zsb2F0X2NvbnN0X3J0eF9pbmRleF9mb3JfZmxpIChzcmMp ICE9IC0xKQorICAgIHsKKyAgICAgIHJpc2N2X2VtaXRfc2V0IChkZXN0LCBzcmMpOworICAgICAg cmV0dXJuOworICAgIH0KKwogICAvKiBTcGxpdCBtb3ZlcyBvZiBzeW1ib2xpYyBjb25zdGFudHMg aW50byBoaWdoL2xvdyBwYWlycy4gICovCiAgIGlmIChyaXNjdl9zcGxpdF9zeW1ib2wgKGRlc3Qs IHNyYywgTUFYX01BQ0hJTkVfTU9ERSwgJnNyYywgRkFMU0UpKQogICAgIHsKQEAgLTI3MzIsNiAr Mjc5MCw5IEBAIHJpc2N2X3NwbGl0XzY0Yml0X21vdmVfcCAocnR4IGRlc3QsIHJ0eCBzcmMpCiAg ICAgICAmJiAoKEZQX1JFR19SVFhfUCAoc3JjKSAmJiBGUF9SRUdfUlRYX1AgKGRlc3QpKQogICAg ICAgICAgfHwgKEZQX1JFR19SVFhfUCAoZGVzdCkgJiYgTUVNX1AgKHNyYykpCiAgICAgICAgICB8 fCAoRlBfUkVHX1JUWF9QIChzcmMpICYmIE1FTV9QIChkZXN0KSkKKyAgICAgICAgIHx8IChUQVJH RVRfWkZBCisgICAgICAgICAgICAgJiYgKChGUF9SRUdfUlRYX1AgKGRlc3QpICYmIEdQX1JFR19S VFhfUCAoc3JjKSkKKyAgICAgICAgICAgICB8fCAoRlBfUkVHX1JUWF9QIChzcmMpICYmIEdQX1JF R19SVFhfUCAoZGVzdCkpKSkKICAgICAgICAgIHx8IChGUF9SRUdfUlRYX1AgKGRlc3QpICYmIHNy YyA9PSBDT05TVDBfUlRYIChHRVRfTU9ERSAoc3JjKSkpKSkKICAgICByZXR1cm4gZmFsc2U7CgpA QCAtMjc5NSw2ICsyODU2LDggQEAgcmlzY3Zfb3V0cHV0X21vdmUgKHJ0eCBkZXN0LCBydHggc3Jj KQogICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICByZXR1cm4gImZtdi54LnNcdCUwLCUxIjsK ICAgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgaWYgKCFUQVJHRVRfNjRCSVQgJiYgVEFSR0VU X1pGQSkKKyAgICAgICAgICAgICByZXR1cm4gImZtdi54LndcdCUwLCUxXG5cdGZtdmgueC5kXHQl TjAsJTEiOwogICAgICAgICAgICByZXR1cm4gImZtdi54LmRcdCUwLCUxIjsKICAgICAgICAgIH0K CkBAIC0yODU0LDYgKzI5MTcsOCBAQCByaXNjdl9vdXRwdXRfbW92ZSAocnR4IGRlc3QsIHJ0eCBz cmMpCiAgICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgICAgaWYgKFRBUkdFVF82NEJJ VCkKICAgICAgICAgICAgICAgICAgcmV0dXJuICJmbXYuZC54XHQlMCwlejEiOworICAgICAgICAg ICAgICAgZWxzZSBpZiAoVEFSR0VUX1pGQSAmJiBzcmMgIT0gQ09OU1QwX1JUWCAobW9kZSkpCisg ICAgICAgICAgICAgICAgIHJldHVybiAiZm12cC5kLnhcdCUwLCUxLCVOMSI7CiAgICAgICAgICAg ICAgICAvKiBpbiBSVjMyLCB3ZSBjYW4gZW11bGF0ZSBmbXYuZC54ICUwLCB4MCB1c2luZyBmY3Z0 LmQudyAqLwogICAgICAgICAgICAgICAgZ2NjX2Fzc2VydCAoc3JjID09IENPTlNUMF9SVFggKG1v ZGUpKTsKICAgICAgICAgICAgICAgIHJldHVybiAiZmN2dC5kLndcdCUwLHgwIjsKQEAgLTI5MDYs NiArMjk3MSwxNCBAQCByaXNjdl9vdXRwdXRfbW92ZSAocnR4IGRlc3QsIHJ0eCBzcmMpCiAgICAg ICAgICBjYXNlIDg6CiAgICAgICAgICAgIHJldHVybiAiZmxkXHQlMCwlMSI7CiAgICAgICAgICB9 CisKKyAgICAgIGlmIChzcmNfY29kZSA9PSBDT05TVF9ET1VCTEUgJiYgKHJpc2N2X2Zsb2F0X2Nv bnN0X3J0eF9pbmRleF9mb3JfZmxpIChzcmMpICE9IC0xKSkKKyAgICAgICBzd2l0Y2ggKHdpZHRo KQorICAgICAgICAgeworICAgICAgICAgICBjYXNlIDI6IHJldHVybiAiZmxpLmhcdCUwLCUxIjsK KyAgICAgICAgICAgY2FzZSA0OiByZXR1cm4gImZsaS5zXHQlMCwlMSI7CisgICAgICAgICAgIGNh c2UgODogcmV0dXJuICJmbGkuZFx0JTAsJTEiOworICAgICAgICAgfQogICAgIH0KICAgaWYgKGRl c3RfY29kZSA9PSBSRUcgJiYgR1BfUkVHX1AgKFJFR05PIChkZXN0KSkgJiYgc3JjX2NvZGUgPT0g Q09OU1RfUE9MWV9JTlQpCiAgICAgewpAQCAtNDIwOSw2ICs0MjgyLDcgQEAgcmlzY3ZfbWVtbW9k ZWxfbmVlZHNfcmVsZWFzZV9mZW5jZSAoZW51bSBtZW1tb2RlbCBtb2RlbCkKICAgICdTJyBQcmlu dCBzaGlmdC1pbmRleCBvZiBzaW5nbGUtYml0IG1hc2sgT1AuCiAgICAnVCcgUHJpbnQgc2hpZnQt aW5kZXggb2YgaW52ZXJ0ZWQgc2luZ2xlLWJpdCBtYXNrIE9QLgogICAgJ34nIFByaW50IHcgaWYg VEFSR0VUXzY0QklUIGlzIHRydWU7IG90aGVyd2lzZSBub3QgcHJpbnQgYW55dGhpbmcuCisgICAn TicgIFByaW50IG5leHQgcmVnaXN0ZXIuCgogICAgTm90ZSBwbGVhc2Uga2VlcCB0aGlzIGxpc3Qg YW5kIHRoZSBsaXN0IGluIHJpc2N2Lm1kIGluIHN5bmMuICAqLwoKQEAgLTQzNTAsNiArNDQyNCw5 IEBAIHJpc2N2X3ByaW50X29wZXJhbmQgKEZJTEUgKmZpbGUsIHJ0eCBvcCwgaW50IGxldHRlcikK ICAgICAgICBvdXRwdXRfYWRkcl9jb25zdCAoZmlsZSwgbmV3b3ApOwogICAgICAgIGJyZWFrOwog ICAgICAgfQorICAgIGNhc2UgJ04nOgorICAgICAgZnB1dHMgKHJlZ19uYW1lc1tSRUdOTyAob3Ap ICsgMV0sIGZpbGUpOworICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgIHN3aXRjaCAo Y29kZSkKICAgICAgICB7CkBAIC00MzY2LDYgKzQ0NDMsMzEgQEAgcmlzY3ZfcHJpbnRfb3BlcmFu ZCAoRklMRSAqZmlsZSwgcnR4IG9wLCBpbnQgbGV0dGVyKQogICAgICAgICAgICBvdXRwdXRfYWRk cmVzcyAobW9kZSwgWEVYUCAob3AsIDApKTsKICAgICAgICAgIGJyZWFrOwoKKyAgICAgICBjYXNl IENPTlNUX0RPVUJMRToKKyAgICAgICAgIHsKKyAgICAgICAgICAgaWYgKGxldHRlciA9PSAneicg JiYgb3AgPT0gQ09OU1QwX1JUWCAoR0VUX01PREUgKG9wKSkpCisgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgZnB1dHMgKHJlZ19uYW1lc1tHUF9SRUdfRklSU1RdLCBmaWxlKTsKKyAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKworICAgICAgICAgICBpZiAocmlzY3Zf ZmxvYXRfY29uc3RfcnR4X2luZGV4X2Zvcl9mbGkgKG9wKSA9PSAtMSkKKyAgICAgICAgICAgICBv dXRwdXRfb3BlcmFuZF9sb3NzYWdlICgiaW52YWxpZCB1c2Ugb2YgJyUlJWMnIiwgbGV0dGVyKTsK KworICAgICAgICAgICBpZiAocmlzY3ZfZmxpX3ZhbHVlX2J5X2ludCkKKyAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICBhc21fZnByaW50ZiAoZmlsZSwgIiVkIiwgcmlzY3ZfZmxvYXRfY29u c3RfcnR4X2luZGV4X2Zvcl9mbGkgKG9wKSk7CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgICB9CisKKyAgICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IGJ1Zl9zaXplID0gMzI7 CisgICAgICAgICAgIGNoYXIgZmxvYXRfYnVmW2J1Zl9zaXplXSA9IHsnXDAnfTsKKyAgICAgICAg ICAgcmVhbF90b19kZWNpbWFsX2Zvcl9tb2RlIChmbG9hdF9idWYsIENPTlNUX0RPVUJMRV9SRUFM X1ZBTFVFIChvcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmX3Np emUsIGJ1Zl9zaXplLCAxLCBHRVRfTU9ERShvcCkpOworICAgICAgICAgICBhc21fZnByaW50ZiAo ZmlsZSwgIiVzIiwgZmxvYXRfYnVmKTsKKyAgICAgICAgICAgYnJlYWs7CisgICAgICAgICB9CisK ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgaWYgKGxldHRlciA9PSAneicgJiYgb3AgPT0gQ09O U1QwX1JUWCAoR0VUX01PREUgKG9wKSkpCiAgICAgICAgICAgIGZwdXRzIChyZWdfbmFtZXNbR1Bf UkVHX0ZJUlNUXSwgZmlsZSk7CkBAIC01Njc2LDcgKzU3NzgsOCBAQCByaXNjdl9zZWNvbmRhcnlf bWVtb3J5X25lZWRlZCAobWFjaGluZV9tb2RlIG1vZGUsIHJlZ19jbGFzc190IGNsYXNzMSwKIHsK ICAgcmV0dXJuICghcmlzY3Zfdl9leHRfdmVjdG9yX21vZGVfcCAobW9kZSkKICAgICAgICAgICYm IEdFVF9NT0RFX1NJWkUgKG1vZGUpLnRvX2NvbnN0YW50ICgpID4gVU5JVFNfUEVSX1dPUkQKLSAg ICAgICAgICYmIChjbGFzczEgPT0gRlBfUkVHUykgIT0gKGNsYXNzMiA9PSBGUF9SRUdTKSk7Cisg ICAgICAgICAmJiAoY2xhc3MxID09IEZQX1JFR1MpICE9IChjbGFzczIgPT0gRlBfUkVHUykKKyAg ICAgICAgICYmICFUQVJHRVRfWkZBKTsKIH0KCiAvKiBJbXBsZW1lbnQgVEFSR0VUX1JFR0lTVEVS X01PVkVfQ09TVC4gICovCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmggYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmgKaW5kZXggMGFiNzM5YmQ2ZWIuLjg5MThmMzUwZWMwIDEw MDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmgKKysrIGIvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi5oCkBAIC0zNzcsNiArMzc3LDcgQEAgQVNNX01JU0FfU1BFQwogI2RlZmluZSBTSUJD QUxMX1JFR19QKFJFR05PKSAgIFwKICAgVEVTVF9IQVJEX1JFR19CSVQgKHJlZ19jbGFzc19jb250 ZW50c1tTSUJDQUxMX1JFR1NdLCBSRUdOTykKCisjZGVmaW5lIEdQX1JFR19SVFhfUChYKSAoUkVH X1AgKFgpICYmIEdQX1JFR19QIChSRUdOTyAoWCkpKQogI2RlZmluZSBGUF9SRUdfUlRYX1AoWCkg KFJFR19QIChYKSAmJiBGUF9SRUdfUCAoUkVHTk8gKFgpKSkKCiAvKiBVc2UgczAgYXMgdGhlIGZy YW1lIHBvaW50ZXIgaWYgaXQgaXMgc28gcmVxdWVzdGVkLiAgKi8KZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvcmlzY3YubWQgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2Lm1kCmluZGV4IGEx MGNlZTJhMGRjLi5kOTBlYThkMzVlNyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di5tZAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2Lm1kCkBAIC01OSw2ICs1OSw4IEBAIChk ZWZpbmVfY19lbnVtICJ1bnNwZWMiIFsKICAgVU5TUEVDX0xST1VORAogICBVTlNQRUNfRk1JTgog ICBVTlNQRUNfRk1BWAorICBVTlNQRUNfRk1JTk0KKyAgVU5TUEVDX0ZNQVhNCgogICA7OyBTdGFj ayB0aWUKICAgVU5TUEVDX1RJRQpAQCAtMTIyMCw2ICsxMjIyLDI2IEBAIChkZWZpbmVfaW5zbiAi bmVnPG1vZGU+MiIKIDs7CiA7OyAgLi4uLi4uLi4uLi4uLi4uLi4uLi4KCisoZGVmaW5lX2luc24g InJpc2N2X2ZtaW5tPG1vZGU+MyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QU5ZRiAgICAgICAg ICAgICAgICAgICAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1mIikKKyAgICAgICAodW5zcGVjOkFO WUYgWyh1c2UgKG1hdGNoX29wZXJhbmQ6QU5ZRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIGYiKSkK KyAgICAgICAgICAgICAgICAgICAgICh1c2UgKG1hdGNoX29wZXJhbmQ6QU5ZRiAyICJyZWdpc3Rl cl9vcGVyYW5kIiAiIGYiKSldCisgICAgICAgICAgICAgICAgICAgIFVOU1BFQ19GTUlOTSkpXQor ICAiVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX1pGQSAmJiAhSE9OT1JfU05BTlMgKDxNT0RF Pm1vZGUpIgorICAiZm1pbm0uPGZtdD5cdCUwLCUxLCUyIgorICBbKHNldF9hdHRyICJ0eXBlIiAi Zm1vdmUiKQorICAgKHNldF9hdHRyICJtb2RlIiAiPFVOSVRNT0RFPiIpXSkKKworKGRlZmluZV9p bnNuICJyaXNjdl9mbWF4bTxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFOWUYgICAg ICAgICAgICAgICAgICAgIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ZiIpCisgICAgICAgKHVuc3Bl YzpBTllGIFsodXNlIChtYXRjaF9vcGVyYW5kOkFOWUYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiBm IikpCisgICAgICAgICAgICAgICAgICAgICAodXNlIChtYXRjaF9vcGVyYW5kOkFOWUYgMiAicmVn aXN0ZXJfb3BlcmFuZCIgIiBmIikpXQorICAgICAgICAgICAgICAgICAgICBVTlNQRUNfRk1BWE0p KV0KKyAgIlRBUkdFVF9IQVJEX0ZMT0FUICYmIFRBUkdFVF9aRkEgJiYgIUhPTk9SX1NOQU5TICg8 TU9ERT5tb2RlKSIKKyAgImZtYXhtLjxmbXQ+XHQlMCwlMSwlMiIKKyAgWyhzZXRfYXR0ciAidHlw ZSIgImZtb3ZlIikKKyAgIChzZXRfYXR0ciAibW9kZSIgIjxVTklUTU9ERT4iKV0pCisKIChkZWZp bmVfaW5zbiAiZm1pbjxtb2RlPjMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFOWUYgICAgICAg ICAgICAgICAgICAgIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ZiIpCiAgICAgICAgKHVuc3BlYzpB TllGIFsodXNlIChtYXRjaF9vcGVyYW5kOkFOWUYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiBmIikp CkBAIC0xNDk0LDEzICsxNTE2LDEzIEBAIChkZWZpbmVfZXhwYW5kICJtb3ZoZiIKIH0pCgogKGRl ZmluZV9pbnNuICIqbW92aGZfaGFyZGZsb2F0IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpIRiAw ICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1mLGYsZixtLG0sKmYsKnIsICAqciwqciwqbSIpCi0g ICAgICAgKG1hdGNoX29wZXJhbmQ6SEYgMSAibW92ZV9vcGVyYW5kIiAgICAgICAgICIgZixHLG0s ZixHLCpyLCpmLCpHKnIsKm0sKnIiKSldCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhGIDAgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAiPWYsIGYsZixmLG0sbSwqZiwqciwgICpyLCpyLCptIikKKyAg ICAgICAobWF0Y2hfb3BlcmFuZDpIRiAxICJtb3ZlX29wZXJhbmQiICAgICAgICAgIiBmLFpmLEcs bSxmLEcsKnIsKmYsKkcqciwqbSwqciIpKV0KICAgIlRBUkdFVF9aRkhNSU4KICAgICYmIChyZWdp c3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgSEZtb2RlKQogICAgICAgIHx8IHJlZ19vcl8wX29w ZXJhbmQgKG9wZXJhbmRzWzFdLCBIRm1vZGUpKSIKICAgeyByZXR1cm4gcmlzY3Zfb3V0cHV0X21v dmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSk7IH0KLSAgWyhzZXRfYXR0ciAibW92ZV90eXBl IiAiZm1vdmUsbXRjLGZwbG9hZCxmcHN0b3JlLHN0b3JlLG10YyxtZmMsbW92ZSxsb2FkLHN0b3Jl IikKKyAgWyhzZXRfYXR0ciAibW92ZV90eXBlIiAiZm1vdmUsZm1vdmUsbXRjLGZwbG9hZCxmcHN0 b3JlLHN0b3JlLG10YyxtZmMsbW92ZSxsb2FkLHN0b3JlIikKICAgIChzZXRfYXR0ciAibW9kZSIg IkhGIildKQoKIChkZWZpbmVfaW5zbiAiKm1vdmhmX3NvZnRmbG9hdCIKQEAgLTE1MjAsNiArMTU0 MiwxNSBAQCAoZGVmaW5lX2luc24gIiptb3ZoZl9zb2Z0ZmxvYXQiCiA7OwogOzsgIC4uLi4uLi4u Li4uLi4uLi4uLi4uCgorKGRlZmluZV9pbnNuICJmaXhfdHJ1bmNkZnNpMl96ZmEiCisgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlNJICAgICAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKyAgICAg ICAoZml4OlNJCisgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkRGIDEgInJlZ2lzdGVyX29wZXJh bmQiICIgZiIpKSldCisgICJUQVJHRVRfWkZBICYmIChUQVJHRVRfSEFSRF9GTE9BVCB8fCBUQVJH RVRfWkZJTlgpIgorICAiZmN2dG1vZC53LmRcdCUwLCUxLHJ0eiIKKyAgWyhzZXRfYXR0ciAidHlw ZSIgImZjdnQiKQorICAgKHNldF9hdHRyICJtb2RlIiAiREYiKV0pCisKIChkZWZpbmVfaW5zbiAi Zml4X3RydW5jPEFOWUY6bW9kZT48R1BSOm1vZGU+MiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 R1BSICAgICAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKICAgICAgICAoZml4OkdQUgpAQCAt MTU2Niw2ICsxNTk3LDI2IEBAIChkZWZpbmVfaW5zbiAibDxyaW50X3BhdHRlcm4+PEFOWUY6bW9k ZT48R1BSOm1vZGU+MiIKICAgWyhzZXRfYXR0ciAidHlwZSIgImZjdnQiKQogICAgKHNldF9hdHRy ICJtb2RlIiAiPEFOWUY6TU9ERT4iKV0pCgorKGRlZmluZV9pbnNuICJyb3VuZDxBTllGOm1vZGU+ MiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QU5ZRiAgICAgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1mIikKKyAgICAgICAodW5zcGVjOkFOWUYKKyAgICAgICAgICAgWyhtYXRjaF9vcGVyYW5kOkFO WUYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiBmIildCisgICAgICAgVU5TUEVDX0xST1VORCkpXQor ICAiVEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX1pGQSIKKyAgImZyb3VuZC48QU5ZRjpmbXQ+ XHQlMCwlMSIKKyAgWyhzZXRfYXR0ciAidHlwZSIgImZjdnQiKQorICAgKHNldF9hdHRyICJtb2Rl IiAiPEFOWUY6TU9ERT4iKV0pCisKKyhkZWZpbmVfaW5zbiAicmludDxBTllGOm1vZGU+MiIKKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6QU5ZRiAgICAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1mIikK KyAgICAgICAodW5zcGVjOkFOWUYKKyAgICAgICAgICAgWyhtYXRjaF9vcGVyYW5kOkFOWUYgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgIiBmIildCisgICAgICAgVU5TUEVDX0xSSU5UKSldCisgICJUQVJH RVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRfWkZBIgorICAiZnJvdW5kbnguPEFOWUY6Zm10Plx0JTAs JTEiCisgIFsoc2V0X2F0dHIgInR5cGUiICJmY3Z0IikKKyAgIChzZXRfYXR0ciAibW9kZSIgIjxB TllGOk1PREU+IildKQorCiA7OwogOzsgIC4uLi4uLi4uLi4uLi4uLi4uLi4uCiA7OwpAQCAtMTgy MywxMyArMTg3NCwxMyBAQCAoZGVmaW5lX2V4cGFuZCAibW92c2YiCiB9KQoKIChkZWZpbmVfaW5z biAiKm1vdnNmX2hhcmRmbG9hdCIKLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAibm9uaW1t ZWRpYXRlX29wZXJhbmQiICI9ZixmLGYsbSxtLCpmLCpyLCAgKnIsKnIsKm0iKQotICAgICAgICht YXRjaF9vcGVyYW5kOlNGIDEgIm1vdmVfb3BlcmFuZCIgICAgICAgICAiIGYsRyxtLGYsRywqciwq ZiwqRypyLCptLCpyIikpXQorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJub25pbW1lZGlh dGVfb3BlcmFuZCIgIj1mLCBmLGYsZixtLG0sKmYsKnIsICAqciwqciwqbSIpCisgICAgICAgKG1h dGNoX29wZXJhbmQ6U0YgMSAibW92ZV9vcGVyYW5kIiAgICAgICAgICIgZixaZixHLG0sZixHLCpy LCpmLCpHKnIsKm0sKnIiKSldCiAgICJUQVJHRVRfSEFSRF9GTE9BVAogICAgJiYgKHJlZ2lzdGVy X29wZXJhbmQgKG9wZXJhbmRzWzBdLCBTRm1vZGUpCiAgICAgICAgfHwgcmVnX29yXzBfb3BlcmFu ZCAob3BlcmFuZHNbMV0sIFNGbW9kZSkpIgogICB7IHJldHVybiByaXNjdl9vdXRwdXRfbW92ZSAo b3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsgfQotICBbKHNldF9hdHRyICJtb3ZlX3R5cGUiICJm bW92ZSxtdGMsZnBsb2FkLGZwc3RvcmUsc3RvcmUsbXRjLG1mYyxtb3ZlLGxvYWQsc3RvcmUiKQor ICBbKHNldF9hdHRyICJtb3ZlX3R5cGUiICJmbW92ZSxmbW92ZSxtdGMsZnBsb2FkLGZwc3RvcmUs c3RvcmUsbXRjLG1mYyxtb3ZlLGxvYWQsc3RvcmUiKQogICAgKHNldF9hdHRyICJtb2RlIiAiU0Yi KV0pCgogKGRlZmluZV9pbnNuICIqbW92c2Zfc29mdGZsb2F0IgpAQCAtMTg1NiwyMyArMTkwNywy MyBAQCAoZGVmaW5lX2V4cGFuZCAibW92ZGYiCiA7OyBJbiBSVjMyLCB3ZSBsYWNrIGZtdi54LmQg YW5kIGZtdi5kLnguICBHbyB0aHJvdWdoIG1lbW9yeSBpbnN0ZWFkLgogOzsgKEhvd2V2ZXIsIHdl IGNhbiBzdGlsbCB1c2UgZmN2dC5kLncgdG8gemVybyBhIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVy LikKIChkZWZpbmVfaW5zbiAiKm1vdmRmX2hhcmRmbG9hdF9ydjMyIgotICBbKHNldCAobWF0Y2hf b3BlcmFuZDpERiAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1mLGYsZixtLG0sICAqciwqciwq bSIpCi0gICAgICAgKG1hdGNoX29wZXJhbmQ6REYgMSAibW92ZV9vcGVyYW5kIiAgICAgICAgICIg ZixHLG0sZixHLCpyKkcsKm0sKnIiKSldCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgIm5v bmltbWVkaWF0ZV9vcGVyYW5kIiAiPWYsIGYsZixmLG0sbSwqZiwqciwgICpyLCpyLCptIikKKyAg ICAgICAobWF0Y2hfb3BlcmFuZDpERiAxICJtb3ZlX29wZXJhbmQiICAgICAgICAgIiBmLFpmLEcs bSxmLEcsKnIsKmYsKnIqRywqbSwqciIpKV0KICAgIiFUQVJHRVRfNjRCSVQgJiYgVEFSR0VUX0RP VUJMRV9GTE9BVAogICAgJiYgKHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzBdLCBERm1vZGUp CiAgICAgICAgfHwgcmVnX29yXzBfb3BlcmFuZCAob3BlcmFuZHNbMV0sIERGbW9kZSkpIgogICB7 IHJldHVybiByaXNjdl9vdXRwdXRfbW92ZSAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsgfQot ICBbKHNldF9hdHRyICJtb3ZlX3R5cGUiICJmbW92ZSxtdGMsZnBsb2FkLGZwc3RvcmUsc3RvcmUs bW92ZSxsb2FkLHN0b3JlIikKKyAgWyhzZXRfYXR0ciAibW92ZV90eXBlIiAiZm1vdmUsZm1vdmUs bXRjLGZwbG9hZCxmcHN0b3JlLHN0b3JlLG10YyxtZmMsbW92ZSxsb2FkLHN0b3JlIikKICAgIChz ZXRfYXR0ciAibW9kZSIgIkRGIildKQoKIChkZWZpbmVfaW5zbiAiKm1vdmRmX2hhcmRmbG9hdF9y djY0IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpERiAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIg Ij1mLGYsZixtLG0sKmYsKnIsICAqciwqciwqbSIpCi0gICAgICAgKG1hdGNoX29wZXJhbmQ6REYg MSAibW92ZV9vcGVyYW5kIiAgICAgICAgICIgZixHLG0sZixHLCpyLCpmLCpyKkcsKm0sKnIiKSld CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPWYs IGYsZixmLG0sbSwqZiwqciwgICpyLCpyLCptIikKKyAgICAgICAobWF0Y2hfb3BlcmFuZDpERiAx ICJtb3ZlX29wZXJhbmQiICAgICAgICAgIiBmLFpmLEcsbSxmLEcsKnIsKmYsKnIqRywqbSwqciIp KV0KICAgIlRBUkdFVF82NEJJVCAmJiBUQVJHRVRfRE9VQkxFX0ZMT0FUCiAgICAmJiAocmVnaXN0 ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIERGbW9kZSkKICAgICAgICB8fCByZWdfb3JfMF9vcGVy YW5kIChvcGVyYW5kc1sxXSwgREZtb2RlKSkiCiAgIHsgcmV0dXJuIHJpc2N2X291dHB1dF9tb3Zl IChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pOyB9Ci0gIFsoc2V0X2F0dHIgIm1vdmVfdHlwZSIg ImZtb3ZlLG10YyxmcGxvYWQsZnBzdG9yZSxzdG9yZSxtdGMsbWZjLG1vdmUsbG9hZCxzdG9yZSIp CisgIFsoc2V0X2F0dHIgIm1vdmVfdHlwZSIgImZtb3ZlLGZtb3ZlLG10YyxmcGxvYWQsZnBzdG9y ZSxzdG9yZSxtdGMsbWZjLG1vdmUsbG9hZCxzdG9yZSIpCiAgICAoc2V0X2F0dHIgIm1vZGUiICJE RiIpXSkKCiAoZGVmaW5lX2luc24gIiptb3ZkZl9zb2Z0ZmxvYXQiCkBAIC0yNDc5LDE2ICsyNTMw LDIzIEBAIChkZWZpbmVfZXhwYW5kICJmPHF1aWV0X3BhdHRlcm4+X3F1aWV0PEFOWUY6bW9kZT48 WDptb2RlPjQiCiAgIHJ0eCBvcDAgPSBvcGVyYW5kc1swXTsKICAgcnR4IG9wMSA9IG9wZXJhbmRz WzFdOwogICBydHggb3AyID0gb3BlcmFuZHNbMl07Ci0gIHJ0eCB0bXAgPSBnZW5fcmVnX3J0eCAo U0ltb2RlKTsKLSAgcnR4IGNtcCA9IGdlbl9ydHhfPFFVSUVUX1BBVFRFUk4+ICg8WDpNT0RFPm1v ZGUsIG9wMSwgb3AyKTsKLSAgcnR4IGZyZmxhZ3MgPSBnZW5fcnR4X1VOU1BFQ19WT0xBVElMRSAo U0ltb2RlLCBnZW5fcnR2ZWMgKDEsIGNvbnN0MF9ydHgpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFVOU1BFQ1ZfRlJGTEFHUyk7Ci0gIHJ0eCBmc2ZsYWdzID0gZ2Vu X3J0eF9VTlNQRUNfVk9MQVRJTEUgKFNJbW9kZSwgZ2VuX3J0dmVjICgxLCB0bXApLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOU1BFQ1ZfRlNGTEFHUyk7Ci0KLSAg ZW1pdF9pbnNuIChnZW5fcnR4X1NFVCAodG1wLCBmcmZsYWdzKSk7Ci0gIGVtaXRfaW5zbiAoZ2Vu X3J0eF9TRVQgKG9wMCwgY21wKSk7Ci0gIGVtaXRfaW5zbiAoZnNmbGFncyk7CisKKyAgaWYgKFRB UkdFVF9aRkEpCisgICAgZW1pdF9pbnNuIChnZW5fZjxxdWlldF9wYXR0ZXJuPl9xdWlldDxBTllG Om1vZGU+PFg6bW9kZT40X3pmYShvcDAsIG9wMSwgb3AyKSk7CisgIGVsc2UKKyAgICB7CisgICAg ICBydHggdG1wID0gZ2VuX3JlZ19ydHggKFNJbW9kZSk7CisgICAgICBydHggY21wID0gZ2VuX3J0 eF88UVVJRVRfUEFUVEVSTj4gKDxYOk1PREU+bW9kZSwgb3AxLCBvcDIpOworICAgICAgcnR4IGZy ZmxhZ3MgPSBnZW5fcnR4X1VOU1BFQ19WT0xBVElMRSAoU0ltb2RlLCBnZW5fcnR2ZWMgKDEsIGNv bnN0MF9ydHgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV TlNQRUNWX0ZSRkxBR1MpOworICAgICAgcnR4IGZzZmxhZ3MgPSBnZW5fcnR4X1VOU1BFQ19WT0xB VElMRSAoU0ltb2RlLCBnZW5fcnR2ZWMgKDEsIHRtcCksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFVOU1BFQ1ZfRlNGTEFHUyk7CisKKyAgICAgIGVtaXRfaW5z biAoZ2VuX3J0eF9TRVQgKHRtcCwgZnJmbGFncykpOworICAgICAgZW1pdF9pbnNuIChnZW5fcnR4 X1NFVCAob3AwLCBjbXApKTsKKyAgICAgIGVtaXRfaW5zbiAoZnNmbGFncyk7CisgICAgfQorCiAg IGlmIChIT05PUl9TTkFOUyAoPEFOWUY6TU9ERT5tb2RlKSkKICAgICBlbWl0X2luc24gKGdlbl9y dHhfVU5TUEVDX1ZPTEFUSUxFICg8QU5ZRjpNT0RFPm1vZGUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnZW5fcnR2ZWMgKDIsIG9wMSwgb3AyKSwKQEAgLTI0OTYsNiAr MjU1NCwxOCBAQCAoZGVmaW5lX2V4cGFuZCAiZjxxdWlldF9wYXR0ZXJuPl9xdWlldDxBTllGOm1v ZGU+PFg6bW9kZT40IgogICBET05FOwogfSkKCisoZGVmaW5lX2luc24gImY8cXVpZXRfcGF0dGVy bj5fcXVpZXQ8QU5ZRjptb2RlPjxYOm1vZGU+NF96ZmEiCisgICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpYICAgICAgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKyAgICAgICAgKHVuc3BlYzpYCisg ICAgICAgICBbKG1hdGNoX29wZXJhbmQ6QU5ZRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIGYiKQor ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkFOWUYgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIiBmIild CisgICAgICAgICBRVUlFVF9DT01QQVJJU09OKSldCisgICJUQVJHRVRfSEFSRF9GTE9BVCAmJiBU QVJHRVRfWkZBIgorICAiZjxxdWlldF9wYXR0ZXJuPnEuPGZtdD5cdCUwLCUxLCUyIgorICBbKHNl dF9hdHRyICJ0eXBlIiAiZmNtcCIpCisgICAoc2V0X2F0dHIgIm1vZGUiICI8VU5JVE1PREU+IikK KyAgIChzZXQgKGF0dHIgImxlbmd0aCIpIChjb25zdF9pbnQgMTYpKV0pCisKIChkZWZpbmVfaW5z biAiKnNlcV96ZXJvXzxYOm1vZGU+PEdQUjptb2RlPiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 R1BSICAgICAgIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAgICAgICAgKGVxOkdQUiAobWF0 Y2hfb3BlcmFuZDpYIDEgInJlZ2lzdGVyX29wZXJhbmQiICIgciIpCmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2Lm9wdCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yub3B0CmluZGV4 IDdjM2NhNDhkMWNjLi4xNDQyNzYyNDM5MiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi5vcHQKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5vcHQKQEAgLTE2Miw2ICsxNjIs MTAgQEAgbWFsaWduLWRhdGE9CiBUYXJnZXQgUmVqZWN0TmVnYXRpdmUgSm9pbmVkIFZhcihyaXNj dl9hbGlnbl9kYXRhX3R5cGUpIEVudW0ocmlzY3ZfYWxpZ25fZGF0YSkgSW5pdChyaXNjdl9hbGln bl9kYXRhX3R5cGVfeGxlbikKIFVzZSB0aGUgZ2l2ZW4gZGF0YSBhbGlnbm1lbnQuCgorbWZsaV92 YWx1ZV9ieV9pbnQKK1RhcmdldCBWYXIocmlzY3ZfZmxpX3ZhbHVlX2J5X2ludCkgSW5pdCgxKSBV bmRvY3VtZW50ZWQKK1RoZSBmbGkgaW5zdHJ1Y3Rpb24gaW4gdGhlIHpmYSBleHRlbnNpb24gdXNl cyBpbnRlZ2VycyB0byByZXByZXNlbnQgZmxvYXRpbmctcG9pbnQgdmFsdWVzLgorCiBFbnVtCiBO YW1lKHJpc2N2X2FsaWduX2RhdGEpIFR5cGUoZW51bSByaXNjdl9hbGlnbl9kYXRhKQogS25vd24g ZGF0YSBhbGlnbm1lbnQgY2hvaWNlcyAoZm9yIHVzZSB3aXRoIHRoZSAtbWFsaWduLWRhdGE9IG9w dGlvbik6CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemZhLWZj dnRtb2QuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZmN2dG1vZC5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NTQ1NTUxNmE3NwotLS0gL2Rl di9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZmN2dG1vZC5j CkBAIC0wLDAgKzEsMTIgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLXNraXAt aWYgIiIgeyAqLSotKiB9IHsgIioiIH0geyAiLW1hcmNoPXJ2NjQqIC1PMiIgfSB9ICovCisvKiB7 IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z196ZmEgLW1hYmk9bHA2NGQiIH0gKi8KKworZXh0ZXJu IGRvdWJsZSBhOworCit2b2lkIGZvbyhpbnQgKngsIGRvdWJsZSBhKQoreworICAqeCA9IGE7Cit9 CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZmN2dG1vZC53LmQiIDEg fSB9ICovClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3pmYS1mbGVxLWZsdHEuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi96ZmEtZmxlcS1mbHRxLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmI1N2IwODEwZTk2Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3pmYS1mbGVxLWZsdHEuYwpAQCAtMCwwICsxLDIwIEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1za2lwLWlmICIiIHsgKi0qLSogfSB7ICIqIiB9 IHsgIi1tYXJjaD1ydjY0KiAtTzIiIH0gfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2 NGdfemZhIC1tYWJpPWxwNjRkIiB9ICovCisKK2V4dGVybiB2b2lkIGFib3J0KHZvaWQpOworZXh0 ZXJuIGZsb2F0IGEsIGI7CitleHRlcm4gZG91YmxlIGMsIGQ7CisKK3ZvaWQKK2ZvbygpCit7Cisg IGlmICgoX19idWlsdGluX2lzbGVzcyhhLCBiKSB8fCAgX19idWlsdGluX2lzbGVzc2VxdWFsKGMs IGQpKQorICAgICAgJiYgKF9fYnVpbHRpbl9pc2xlc3NlcXVhbChhLCBiKXx8IF9fYnVpbHRpbl9p c2xlc3MoYywgZCkpKQorICAgIGFib3J0KCk7Cit9CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyAiZmxlcS5zIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzICJmbHRxLnMiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMgImZsZXEuZCIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyAiZmx0cS5kIiAxIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3pmYS1mbGktemZoLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvemZhLWZsaS16ZmguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uMjZiNDNmNjE3NzQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvemZhLWZsaS16ZmguYwpAQCAtMCwwICsxLDQyIEBACisvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLworLyogeyBkZy1za2lwLWlmICIiIHsgKi0qLSogfSB7ICIqIiB9IHsgIi1tYXJjaD1y djY0KiAtTzIiIH0gfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdfemZhX3pmaCAt bWFiaT1scDY0ZCIgfSAqLworCit2b2lkIGZvb19mbG9hdDE2ICgpCit7CisgIHZvbGF0aWxlIF9G bG9hdDE2IGE7CisgIGEgPSAtMS4wOworICBhID0gNi4xMDRFLTU7CisgIGEgPSAxLjAvKDEgPDwg MTYpOworICBhID0gMS4wLygxIDw8IDE1KTsKKyAgYSA9IDEuMC8oMSA8PCA4KTsKKyAgYSA9IDEu MC8oMSA8PCA3KTsKKyAgYSA9IDEuMC8oMSA8PCA0KTsKKyAgYSA9IDEuMC8oMSA8PCAzKTsKKyAg YSA9IDEuMC8oMSA8PCAyKTsKKyAgYSA9IDAuMzEyNTsKKyAgYSA9IDAuMzc1OworICBhID0gMC40 Mzc1OworICBhID0gMC41OworICBhID0gMC42MjU7CisgIGEgPSAwLjc1OworICBhID0gMC44NzU7 CisgIGEgPSAxLjA7CisgIGEgPSAxLjI1OworICBhID0gMS41OworICBhID0gMS43NTsKKyAgYSA9 IDIuMDsKKyAgYSA9IDIuNTsKKyAgYSA9IDMuMDsKKyAgYSA9IDEuMCooMSA8PCAyKTsKKyAgYSA9 IDEuMCooMSA8PCAzKTsKKyAgYSA9IDEuMCooMSA8PCA0KTsKKyAgYSA9IDEuMCooMSA8PCA3KTsK KyAgYSA9IDEuMCooMSA8PCA4KTsKKyAgYSA9IDEuMCooMSA8PCAxNSk7CisgIGEgPSAxLjAqKDEg PDwgMTYpOworICBhID0gX19idWlsdGluX2luZmYgKCk7CisgIGEgPSBfX2J1aWx0aW5fbmFuZiAo IiIpOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImZsaS5oIiAz MSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEt ZmxpLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemZhLWZsaS5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMzM5MGM2OTdjZQotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZmxpLmMKQEAgLTAsMCAr MSw4MCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctc2tpcC1pZiAiIiB7ICot Ki0qIH0geyAiKiIgfSB7ICItbWFyY2g9cnY2NCogLU8yIiB9IH0gKi8KKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2NjRnX3pmYSAtbWFiaT1scDY0ZCIgfSAqLworCit2b2lkIGZvb19mbG9hdDMy ICgpCit7CisgIHZvbGF0aWxlIGZsb2F0IGE7CisgIGEgPSAtMS4wOworICBhID0gMS4xNzU0OTQ0 ZS0zODsKKyAgYSA9IDEuMC8oMSA8PCAxNik7CisgIGEgPSAxLjAvKDEgPDwgMTUpOworICBhID0g MS4wLygxIDw8IDgpOworICBhID0gMS4wLygxIDw8IDcpOworICBhID0gMS4wLygxIDw8IDQpOwor ICBhID0gMS4wLygxIDw8IDMpOworICBhID0gMS4wLygxIDw8IDIpOworICBhID0gMC4zMTI1Owor ICBhID0gMC4zNzU7CisgIGEgPSAwLjQzNzU7CisgIGEgPSAwLjU7CisgIGEgPSAwLjYyNTsKKyAg YSA9IDAuNzU7CisgIGEgPSAwLjg3NTsKKyAgYSA9IDEuMDsKKyAgYSA9IDEuMjU7CisgIGEgPSAx LjU7CisgIGEgPSAxLjc1OworICBhID0gMi4wOworICBhID0gMi41OworICBhID0gMy4wOworICBh ID0gMS4wKigxIDw8IDIpOworICBhID0gMS4wKigxIDw8IDMpOworICBhID0gMS4wKigxIDw8IDQp OworICBhID0gMS4wKigxIDw8IDcpOworICBhID0gMS4wKigxIDw8IDgpOworICBhID0gMS4wKigx IDw8IDE1KTsKKyAgYSA9IDEuMCooMSA8PCAxNik7CisgIGEgPSBfX2J1aWx0aW5faW5mZiAoKTsK KyAgYSA9IF9fYnVpbHRpbl9uYW5mICgiIik7Cit9CisKK3ZvaWQgZm9vX2RvdWJsZTY0ICgpCit7 CisgIHZvbGF0aWxlIGRvdWJsZSBhOworICBhID0gLTEuMDsKKyAgYSA9IDEuMTc1NDk0MzUwODIy Mjg3NUUtMzg7CisgIGEgPSAxLjAvKDEgPDwgMTYpOworICBhID0gMS4wLygxIDw8IDE1KTsKKyAg YSA9IDEuMC8oMSA8PCA4KTsKKyAgYSA9IDEuMC8oMSA8PCA3KTsKKyAgYSA9IDEuMC8oMSA8PCA0 KTsKKyAgYSA9IDEuMC8oMSA8PCAzKTsKKyAgYSA9IDEuMC8oMSA8PCAyKTsKKyAgYSA9IDAuMzEy NTsKKyAgYSA9IDAuMzc1OworICBhID0gMC40Mzc1OworICBhID0gMC41OworICBhID0gMC42MjU7 CisgIGEgPSAwLjc1OworICBhID0gMC44NzU7CisgIGEgPSAxLjA7CisgIGEgPSAxLjI1OworICBh ID0gMS41OworICBhID0gMS43NTsKKyAgYSA9IDIuMDsKKyAgYSA9IDIuNTsKKyAgYSA9IDMuMDsK KyAgYSA9IDEuMCooMSA8PCAyKTsKKyAgYSA9IDEuMCooMSA8PCAzKTsKKyAgYSA9IDEuMCooMSA8 PCA0KTsKKyAgYSA9IDEuMCooMSA8PCA3KTsKKyAgYSA9IDEuMCooMSA8PCA4KTsKKyAgYSA9IDEu MCooMSA8PCAxNSk7CisgIGEgPSAxLjAqKDEgPDwgMTYpOworICBhID0gX19idWlsdGluX2luZiAo KTsKKyAgYSA9IF9fYnVpbHRpbl9uYW4gKCIiKTsKK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJmbGkucyIgMzIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMgImZsaS5kIiAzMiB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZm1pbm0tZm1heG0uYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi96ZmEtZm1pbm0tZm1heG0uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uMzg2NzI1YTkwMzAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvemZhLWZtaW5tLWZtYXhtLmMKQEAgLTAsMCArMSwyNSBAQAor LyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctc2tpcC1pZiAiIiB7ICotKi0qIH0geyAi KiIgfSB7ICItbWFyY2g9cnY2NCogLU8yIiB9IH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNo PXJ2NjRnX3pmYSAtbWFiaT1scDY0ZCIgfSAqLworCitleHRlcm4gZmxvYXQgYSwgYjsKK2V4dGVy biBkb3VibGUgYywgZDsKKwordm9pZAorZm9vKGZsb2F0ICp4LCBkb3VibGUgKnkpCit7CisgIHsK KyAgICAqeCA9IF9fYnVpbHRpbl9yaXNjdl9mbWlubWYoYSwgYik7CisgICAgKnkgPSBfX2J1aWx0 aW5fcmlzY3ZfZm1pbm0oYywgZCk7CisgIH0KKworICB7CisgICAgKnggPSBfX2J1aWx0aW5fcmlz Y3ZfZm1heG1mKGEsIGIpOworICAgICp5ID0gX19idWlsdGluX3Jpc2N2X2ZtYXhtKGMsIGQpOwor ICB9Cit9CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZm1pbm0ucyIg MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZm1pbm0uZCIg MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZm1heG0ucyIg MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZm1heG0uZCIg MSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEt Zm1vdmgtZm1vdnAuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZm1vdmgt Zm1vdnAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTAwNWU3NWQ4 NjgKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemZh LWZtb3ZoLWZtb3ZwLmMKQEAgLTAsMCArMSwxMSBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8K Ky8qIHsgZGctc2tpcC1pZiAiIiB7ICotKi0qIH0geyAiKiIgfSB7ICItbWFyY2g9cnYzMiogLU8w IiB9IH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnX3pmYSAtbWFiaT1pbHAzMiIg fSAqLworCitkb3VibGUgZm9vKGxvbmcgbG9uZyBhKQoreworICByZXR1cm4gKGRvdWJsZSkoYSAr IDMpOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImZtdnAuZC54 IiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJmbXZoLngu ZCIgMSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96 ZmEtZnJvdW5kLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvemZhLWZyb3VuZC5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lODRhMGJkMTk5OAotLS0g L2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi96ZmEtZnJvdW5k LmMKQEAgLTAsMCArMSwyNSBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctc2tp cC1pZiAiIiB7ICotKi0qIH0geyAiKiIgfSB7ICItbWFyY2g9cnY2NCogLU8yIiB9IH0gKi8KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnX3pmYSAtbWFiaT1scDY0ZCIgfSAqLworCisjaW5j bHVkZSA8bWF0aC5oPgorCitleHRlcm4gZmxvYXQgYTsKK2V4dGVybiBkb3VibGUgYjsKKwordm9p ZCBmb28gKGZsb2F0ICp4LCBkb3VibGUgKnkpCit7CisgIHsKKyAgICAqeCA9IHJvdW5kZiAoYSk7 CisgICAgKnkgPSByb3VuZCAoYik7CisgIH0KKyAgeworICAgICp4ID0gcmludGYgKGEpOworICAg ICp5ID0gcmludCAoYik7CisgIH0KK30KKworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzICJmcm91bmQucyIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyAiZnJvdW5kLmQiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgImZyb3VuZG54LnMiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMgImZyb3VuZG54LmQiIDEgfSB9ICovCi0tCjIuMTcuMQ==