From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-99.freemail.mail.aliyun.com (out30-99.freemail.mail.aliyun.com [115.124.30.99]) by sourceware.org (Postfix) with ESMTPS id 62E9B385828F for ; Wed, 10 Jan 2024 11:14:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 62E9B385828F 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 ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 62E9B385828F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=115.124.30.99 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704885264; cv=none; b=fUiod1far12eIPJmHNJbM/rQRhUxZJcBBnbh3KEmuU32vGGo5jMUNsoF4aNg9IS/pyyLK0TkdPwdHVyvkIwd0JiqWDygzWu7d0t3xk9Z1ioP1v7cwMaulU+eCAjyypNmYtEBxATk1wE62H/45qjVB8o0z88Ig2nVSDsZY9Opzag= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704885264; c=relaxed/simple; bh=V3y2CjQ41Po11eb8HXGkwDbzO8Afi16YL12dSUK70sQ=; h=Date:From:To:Message-ID:Subject:MIME-Version; b=GXHRwSgFKRUhpc+wHVwKVSbdFLBGN33ohRL4/+ePejbGj8VhbHc94x0CuXMrGPzyMM2NzREUc0XNUqpLvwqcgwHMzl3k9tOdyFW923JpdMI0uhcUtMh8/YSJxDISabiXflVghe9q0QE9yojZw9m7QUjlrDg25p2rdr+uctp/JUo= ARC-Authentication-Results: i=1; server2.sourceware.org X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R201e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045168;MF=cooper.joshua@linux.alibaba.com;NM=1;PH=DW;RN=10;SR=0;TI=W4_0.2.3_v5ForWebDing_211285CC_1704885132275_o7001c230; Received: from WS-web (cooper.joshua@linux.alibaba.com[W4_0.2.3_v5ForWebDing_211285CC_1704885132275_o7001c230]) at Wed, 10 Jan 2024 19:14:12 +0800 Date: Wed, 10 Jan 2024 19:14:12 +0800 From: "joshua" To: "juzhe.zhong@rivai.ai" , "gcc-patches" Cc: "Jim Wilson" , "palmer" , "andrew" , "philipp.tomsich" , "jeffreyalaw" , "christoph.muellner" , "jinma" , "cooper.qu" Reply-To: "joshua" Message-ID: <514dd6d7-1ac7-40e1-aedb-e2a7bc0aebd5.cooper.joshua@linux.alibaba.com> Subject: =?UTF-8?B?UmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVj?= =?UTF-8?B?dG9yLXNwZWNpZmljIGludHJpbnNpY3Mu?= X-Mailer: [Alimail-Mailagent revision 79][W4_0.2.3][v5ForWebDing][Chrome] MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} References: x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_SFRTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMjAuMC4wLjA=Ch In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-18.1 required=5.0 tests=BAYES_00,BODY_8BITS,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_DMARC_STATUS,KAM_LINEPADDING,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,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: dmxiIGNhbiBhY2NlcHQgc2V3PTgvMTYvMzIvNjQuCnZsaCBjYW4gYWNjZXB0IHNldz0xNi8zMi82 NDsKdmx3IGNhbiBhY2NlcHQgc2V3PTMyLzY0LgoKdmludDhtMV90IF9fcmlzY3ZfdGhfdmxiX3Zf aThtMSAoY29uc3QgaW50OF90ICphLCBzaXplX3QgdmwpOwp2aW50OG0yX3QgX19yaXNjdl90aF92 bGJfdl9pOG0yIChjb25zdCBpbnQ4X3QgKmEsIHNpemVfdCB2bCk7CnZpbnQ4bTRfdCBfX3Jpc2N2 X3RoX3ZsYl92X2k4bTQgKGNvbnN0IGludDhfdCAqYSwgc2l6ZV90IHZsKTsKdmludDhtOF90IF9f cmlzY3ZfdGhfdmxiX3ZfaThtOCAoY29uc3QgaW50OF90ICphLCBzaXplX3QgdmwpOwp2aW50MTZt MV90IF9fcmlzY3ZfdGhfdmxiX3ZfaTE2bTEgKGNvbnN0IGludDE2X3QgKmEsIHNpemVfdCB2bCk7 CnZpbnQxNm0yX3QgX19yaXNjdl90aF92bGJfdl9pMTZtMiAoY29uc3QgaW50MTZfdCAqYSwgc2l6 ZV90IHZsKTsKdmludDE2bTRfdCBfX3Jpc2N2X3RoX3ZsYl92X2kxNm00IChjb25zdCBpbnQxNl90 ICphLCBzaXplX3QgdmwpOwp2aW50MTZtOF90IF9fcmlzY3ZfdGhfdmxiX3ZfaTE2bTggKGNvbnN0 IGludDE2X3QgKmEsIHNpemVfdCB2bCk7CnZpbnQzMm0xX3QgX19yaXNjdl90aF92bGJfdl9pMzJt MSAoY29uc3QgaW50MzJfdCAqYSwgc2l6ZV90IHZsKTsKdmludDMybTJfdCBfX3Jpc2N2X3RoX3Zs Yl92X2kzMm0yIChjb25zdCBpbnQzMl90ICphLCBzaXplX3QgdmwpOwp2aW50MzJtNF90IF9fcmlz Y3ZfdGhfdmxiX3ZfaTMybTQgKGNvbnN0IGludDMyX3QgKmEsIHNpemVfdCB2bCk7CnZpbnQzMm04 X3QgX19yaXNjdl90aF92bGJfdl9pMzJtOCAoY29uc3QgaW50MzJfdCAqYSwgc2l6ZV90IHZsKTsK dmludDY0bTFfdCBfX3Jpc2N2X3RoX3ZsYl92X2k2NG0xIChjb25zdCBpbnQ2NF90ICphLCBzaXpl X3QgdmwpOwp2aW50NjRtMl90IF9fcmlzY3ZfdGhfdmxiX3ZfaTY0bTIgKGNvbnN0IGludDY0X3Qg KmEsIHNpemVfdCB2bCk7CnZpbnQ2NG00X3QgX19yaXNjdl90aF92bGJfdl9pNjRtNCAoY29uc3Qg aW50NjRfdCAqYSwgc2l6ZV90IHZsKTsKdmludDY0bThfdCBfX3Jpc2N2X3RoX3ZsYl92X2k2NG04 IChjb25zdCBpbnQ2NF90ICphLCBzaXplX3QgdmwpOwp2aW50MTZtMV90IF9fcmlzY3ZfdGhfdmxo X3ZfaTE2bTEgKGNvbnN0IGludDE2X3QgKmEsIHNpemVfdCB2bCk7CnZpbnQxNm0yX3QgX19yaXNj dl90aF92bGhfdl9pMTZtMiAoY29uc3QgaW50MTZfdCAqYSwgc2l6ZV90IHZsKTsKdmludDE2bTRf dCBfX3Jpc2N2X3RoX3ZsaF92X2kxNm00IChjb25zdCBpbnQxNl90ICphLCBzaXplX3QgdmwpOwp2 aW50MTZtOF90IF9fcmlzY3ZfdGhfdmxoX3ZfaTE2bTggKGNvbnN0IGludDE2X3QgKmEsIHNpemVf dCB2bCk7CnZpbnQzMm0xX3QgX19yaXNjdl90aF92bGhfdl9pMzJtMSAoY29uc3QgaW50MzJfdCAq YSwgc2l6ZV90IHZsKTsKdmludDMybTJfdCBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0yIChjb25zdCBp bnQzMl90ICphLCBzaXplX3QgdmwpOwp2aW50MzJtNF90IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTQg KGNvbnN0IGludDMyX3QgKmEsIHNpemVfdCB2bCk7CnZpbnQzMm04X3QgX19yaXNjdl90aF92bGhf dl9pMzJtOCAoY29uc3QgaW50MzJfdCAqYSwgc2l6ZV90IHZsKTsKdmludDY0bTFfdCBfX3Jpc2N2 X3RoX3ZsaF92X2k2NG0xIChjb25zdCBpbnQ2NF90ICphLCBzaXplX3QgdmwpOwp2aW50NjRtMl90 IF9fcmlzY3ZfdGhfdmxoX3ZfaTY0bTIgKGNvbnN0IGludDY0X3QgKmEsIHNpemVfdCB2bCk7CnZp bnQ2NG00X3QgX19yaXNjdl90aF92bGhfdl9pNjRtNCAoY29uc3QgaW50NjRfdCAqYSwgc2l6ZV90 IHZsKTsKdmludDY0bThfdCBfX3Jpc2N2X3RoX3ZsaF92X2k2NG04IChjb25zdCBpbnQ2NF90ICph LCBzaXplX3QgdmwpOwp2aW50MzJtMV90IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEgKGNvbnN0IGlu dDMyX3QgKmEsIHNpemVfdCB2bCk7CnZpbnQzMm0yX3QgX19yaXNjdl90aF92bHdfdl9pMzJtMiAo Y29uc3QgaW50MzJfdCAqYSwgc2l6ZV90IHZsKTsKdmludDMybTRfdCBfX3Jpc2N2X3RoX3Zsd192 X2kzMm00IChjb25zdCBpbnQzMl90ICphLCBzaXplX3QgdmwpOwp2aW50MzJtOF90IF9fcmlzY3Zf dGhfdmx3X3ZfaTMybTggKGNvbnN0IGludDMyX3QgKmEsIHNpemVfdCB2bCk7CnZpbnQ2NG0xX3Qg X19yaXNjdl90aF92bHdfdl9pNjRtMSAoY29uc3QgaW50NjRfdCAqYSwgc2l6ZV90IHZsKTsKdmlu dDY0bTJfdCBfX3Jpc2N2X3RoX3Zsd192X2k2NG0yIChjb25zdCBpbnQ2NF90ICphLCBzaXplX3Qg dmwpOwp2aW50NjRtNF90IF9fcmlzY3ZfdGhfdmx3X3ZfaTY0bTQgKGNvbnN0IGludDY0X3QgKmEs IHNpemVfdCB2bCk7CnZpbnQ2NG04X3QgX19yaXNjdl90aF92bHdfdl9pNjRtOCAoY29uc3QgaW50 NjRfdCAqYSwgc2l6ZV90IHZsKTsKCldpdGggdGhlIGV4aXNpdGluZyBmcmFtZXdvcmssIEkgY2Fu bm90IGNvbWUgdXAgd2l0aCBiZXR0ZXIgd2F5IHRvIGRpZmZlcmVudGlhdGUKYmV0d2VlbiB2bGIv dmx3LnZsaC4KCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hku7bkurrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8 anV6aGUuemhvbmdAcml2YWkuYWk+CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTDml6Uo5pif 5pyf5LiJKSAxOTowOQrmlLbku7bkurrvvJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBs aW51eC5hbGliYWJhLmNvbT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+ CuaKhOOAgOmAge+8mkppbSBXaWxzb248amltLndpbHNvbi5nY2NAZ21haWwuY29tPjsgcGFsbWVy PHBhbG1lckBkYWJiZWx0LmNvbT47IGFuZHJldzxhbmRyZXdAc2lmaXZlLmNvbT47ICJwaGlsaXBw LnRvbXNpY2giPHBoaWxpcHAudG9tc2ljaEB2cnVsbC5ldT47IGplZmZyZXlhbGF3PGplZmZyZXlh bGF3QGdtYWlsLmNvbT47ICJjaHJpc3RvcGgubXVlbGxuZXIiPGNocmlzdG9waC5tdWVsbG5lckB2 cnVsbC5ldT47IGppbm1hPGppbm1hQGxpbnV4LmFsaWJhYmEuY29tPjsgImNvb3Blci5xdSI8Y29v cGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPgrkuLvjgIDpopjvvJpSZTogUmXvvJpbUEFUQ0ggdjVd IFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNz LgoKClNvIHZsYiBoYXMgbm90IG9ubHkgc2V3ID0gOCA/CgpCdXQgd2h5IGRvIHlvdSBhZGQgaW50 cmluc2ljcyBhcyBmb2xsb3dzID8KCitERUZfUlZWX0ZVTkNUSU9OICh0aF92bGIsIHRoX2xvYWRz dG9yZV93aWR0aCwgZnVsbF9wcmVkcywgaThfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKCldoeSBp dCBpcyBub3QgOgoKREVGX1JWVl9GVU5DVElPTiAodGhfdmxiLCB0aF9sb2Fkc3RvcmVfd2lkdGgs IGZ1bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQo/IAoKanV6aGUuemhvbmdA cml2YWkuYWkKIArlj5Hku7bkurrvvJogam9zaHVhCuWPkemAgeaXtumXtO+8miAyMDI0LTAxLTEw IDE5OjA2CuaUtuS7tuS6uu+8miBqdXpoZS56aG9uZ0ByaXZhaS5haTsgZ2NjLXBhdGNoZXMK5oqE 6YCB77yaIEppbSBXaWxzb247IHBhbG1lcjsgYW5kcmV3OyBwaGlsaXBwLnRvbXNpY2g7IGplZmZy ZXlhbGF3OyBjaHJpc3RvcGgubXVlbGxuZXI7IGppbm1hOyBjb29wZXIucXUK5Li76aKY77yaIFJl 77yaUmXvvJpbUEFUQ0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1z cGVjaWZpYyBpbnRyaW5zaWNzLgpUaGUga2V5IGRpZmZlcmVuY2UgYmV0d2VlbiB2bGIvdmxoL3Zs dyBpcyBub3Qgb3V0cHV0IHR5cGUgdG9vLgpUaGVpciBkaWZmZXJlbmNlIGlzIHRoZSByYW5nZSBv ZiBkYXRhdHlwZSwgbm90IG9uZSBzcGVjaWZpYyB0eXBlLgpXZSBoYXZlIGRpdmVkIGludG8gdGhl IHh0aGVhZHZlY3RvciBzcGVjaWFsIGludHJpbnNpY3MgYW5kIGFyZQpzdXJlIGFib3V0IHRoYXQu CiAKIAogCiAKIAogCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hku7bkurrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8 anV6aGUuemhvbmdAcml2YWkuYWk+CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTDml6Uo5pif 5pyf5LiJKSAxOTowMArmlLbku7bkurrvvJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBs aW51eC5hbGliYWJhLmNvbT47ICJnY2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+ CuaKhCDpgIHvvJpKaW0gV2lsc29uPGppbS53aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxw YWxtZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhpbGlwcC50 b21zaWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxh d0BnbWFpbC5jb20+OyAiY2hyaXN0b3BoLm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1 bGwuZXU+OyBqaW5tYTxqaW5tYUBsaW51eC5hbGliYWJhLmNvbT47ICJjb29wZXIucXUiPGNvb3Bl ci5xdUBsaW51eC5hbGliYWJhLmNvbT4K5Li7IOmimO+8mlJlOiBSZe+8mltQQVRDSCB2NV0gUklT Qy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCiAK IAppbnN0YW5jZS5vcF9pbmZvLT5hcmdzW2ldLmdldF90cmVlX3R5cGUgKGluc3RhbmNlLnR5cGUu aW5kZXgpwqAgaXMgb3V0cHV0IHR5cGUuCiAKIApZb3UgY2FuIHVzZSBHREIgZGVidWcgaXQgLgog CiAKanV6aGUuemhvbmdAcml2YWkuYWkKIAogCuWPkeS7tuS6uu+8miBqb3NodWEK5Y+R6YCB5pe2 6Ze077yaIDIwMjQtMDEtMTAgMTg6NTcK5pS25Lu25Lq677yaIGp1emhlLnpob25nQHJpdmFpLmFp OyBnY2MtcGF0Y2hlcwrmioTpgIHvvJogSmltIFdpbHNvbjsgcGFsbWVyOyBhbmRyZXc7IHBoaWxp cHAudG9tc2ljaDsgamVmZnJleWFsYXc7IGNocmlzdG9waC5tdWVsbG5lcjsgamlubWE7IGNvb3Bl ci5xdQrkuLvpopjvvJogUmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBm b3IgeHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCiAKSGkgSnV6aGUsCiAKUGVyaGFw cyB0aGluZ3MgYXJlIG5vdCBhcyBzaW1wbGUgYXMgaW1hZ2luZWQuClRoZSBkaWZmZXJlbmNlcyBi ZXR3ZWVuIHZsYi92bGgvdmx3IGlzIG5vdCB0aGUgc2FtZQphcyB2bGU4L3ZsZTE2L3ZsZTMyLiAi OCIsICIxNiIgb3IgIjMyIiBpbiB2bGU4L3ZsZTE2L3ZsZTMyCmNhbiBiZSBhcHBlbmRlZCBmcm9t ICJ2bGUiIGFjY29yZGluZyB0byBpbnB1dCB0eXBlLgpCdXQgdmxiL3ZsaC92bHcgaXMgZGlmZmVy ZW50IG5vdCBpbiBpbnB1dCB0eXBlLgogCiAKIAogCiAKIAogCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hku7bkurrv vJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2YWkuYWk+CuWPkemAgeaXtumX tO+8mjIwMjTlubQx5pyIMTDml6Uo5pif5pyf5LiJKSAxODowMwrmlLbku7bkurrvvJoiY29vcGVy Lmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47ICJnY2MtcGF0Y2hlcyI8 Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+CuaKhCDpgIHvvJpKaW0gV2lsc29uPGppbS53aWxzb24u Z2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3 QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21zaWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+ OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0b3BoLm11ZWxsbmVy IjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyBqaW5tYTxqaW5tYUBsaW51eC5hbGliYWJh LmNvbT47ICJjb29wZXIucXUiPGNvb3Blci5xdUBsaW51eC5hbGliYWJhLmNvbT4K5Li7IOmimO+8 mlJlOiBSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9y LXNwZWNpZmljIGludHJpbnNpY3MuCiAKIApJIG1lYW4gY2hhbmdlIHRoZXNlOgorREVGX1JWVl9G VU5DVElPTiAodGhfdmxiLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGk4X3Zfc2Nh bGFyX2NvbnN0X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92bGgsIHRoX2xvYWRzdG9y ZV93aWR0aCwgZnVsbF9wcmVkcywgaTE2X3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpCitERUZfUlZW X0ZVTkNUSU9OICh0aF92bHcsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgaTMyX3Zf c2NhbGFyX2NvbnN0X3B0cl9vcHMpCiAKIAogCmludG8gYSBzaW5nbGU6CitERUZfUlZWX0ZVTkNU SU9OICh0aF92bCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBhbGxfdl9zY2FsYXJf Y29uc3RfcHRyX29wcykKIAogCmFuZCBhcHBlbmQgImgiLCAidyIsIG9yImIiIGFjY29yZGluZyB0 bwpUWVBFX1VOU0lHTkVEIGFuZApHRVRfTU9ERV9CSVRTSVpFIChHRVRfTU9ERV9JTk5FUiAoVFlQ RV9NT0RFIChpbnN0YW5jZS5vcF9pbmZvLT5hcmdzW2ldLmdldF90cmVlX3R5cGUgKGluc3RhbmNl LnR5cGUuaW5kZXgpKSkpCiAKIAogCmluIHRoX2xvYWRzdG9yZV93aWR0aC4KIAogCkl0IHNob3Vs ZCBkZWZpbml0ZWx5IHdvcmtzLCBJIGFsbG93IHRoaXMgZmxleGliaWxpdHkgaW4gZGVzaWduIG9m IHRoZSBmcmFtZXdvcmsuCiAKIAogCiAKanV6aGUuemhvbmdAcml2YWkuYWkKIArlj5Hku7bkurrv vJogam9zaHVhCuWPkemAgeaXtumXtO+8miAyMDI0LTAxLTEwIDE3OjU1CuaUtuS7tuS6uu+8miBq dXpoZS56aG9uZ0ByaXZhaS5haTsgZ2NjLXBhdGNoZXMK5oqE6YCB77yaIEppbSBXaWxzb247IHBh bG1lcjsgYW5kcmV3OyBwaGlsaXBwLnRvbXNpY2g7IGplZmZyZXlhbGF3OyBjaHJpc3RvcGgubXVl bGxuZXI7IGppbm1hOyBjb29wZXIucXUK5Li76aKY77yaIFJl77yaW1BBVENIIHY1XSBSSVNDLVY6 IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4KIApBbmQg cmV2aXNlIHRoX2xvYWRzdG9yZV93aWR0aCwgYXBwZW5kIHRoZSBuYW1lIGFjY29yZGluZyBUWVBF X1VOU0lHTkVEIGFuZApHRVRfTU9ERV9CSVRTSVpFIChHRVRfTU9ERV9JTk5FUiAoVFlQRV9NT0RF IChpbnN0YW5jZS5vcF9pbmZvLT5hcmdzW2ldLmdldF90cmVlX3R5cGUgKGluc3RhbmNlLnR5cGUu aW5kZXgpKSkpCldoYXQgZG8geW91IG1lYW4gYnkgaXQ/IEknbSBhIGJpdCBjb25mdXNlZC4KQ2hh bmdpbmcgaThfdl9zY2FsYXJfY29uc3RfcHRyX29wcyBpbnRvIGFsbF92X3NjYWxhcl9jb25zdF9w dHJfb3BzCndpbGwgZXhwYW5kIHRoZSBkYXRhdHlwZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiB0aF92 bGIuIENhbiB3ZSByZXN0cmljdAphZ2FpbiBpbiB0aF9sb2Fkc3RvcmVfd2lkdGg/Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQrlj5Hku7bkurrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2YWkuYWk+ CuWPkemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTDml6Uo5pif5pyf5LiJKSAxNzozNQrmlLbku7bk urrvvJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47ICJn Y2MtcGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+CuaKhCDpgIHvvJpKaW0gV2lsc29u PGppbS53aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBhbG1lcjxwYWxtZXJAZGFiYmVsdC5jb20+OyBh bmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhpbGlwcC50b21zaWNoIjxwaGlsaXBwLnRvbXNp Y2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxqZWZmcmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0 b3BoLm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+OyAiY29vcGVyLmpvc2h1 YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47IGppbm1hPGppbm1hQGxpbnV4LmFs aWJhYmEuY29tPjsgImNvb3Blci5xdSI8Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPgrkuLsg 6aKY77yaUmU6IFtQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9y LXNwZWNpZmljIGludHJpbnNpY3MuCitERUZfUlZWX0ZVTkNUSU9OICh0aF92bGIsIHRoX2xvYWRz dG9yZV93aWR0aCwgZnVsbF9wcmVkcywgaThfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9S VlZfRlVOQ1RJT04gKHRoX3ZsaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBpMTZf dl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZsdywgdGhfbG9h ZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBpMzJfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKSSB0 aGluayB3ZSBzaG91bGQgcmVtb3ZlIHRob3NlIG1hbnkgZGF0YSBzdHJ1Y3R1cmUgeW91IGFkZGVk IGxpa2U6IGk4X3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMKSW5zdGVhZCwgeW91IHNob3VsZCB1c2Ug YWxsX3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMKQW5kIHJldmlzZSB0aF9sb2Fkc3RvcmVfd2lkdGgs IGFwcGVuZCB0aGUgbmFtZSBhY2NvcmRpbmcgVFlQRV9VTlNJR05FRCBhbmQKR0VUX01PREVfQklU U0laRSAoR0VUX01PREVfSU5ORVIgKFRZUEVfTU9ERSAoaW5zdGFuY2Uub3BfaW5mby0+YXJnc1tp XS5nZXRfdHJlZV90eXBlIChpbnN0YW5jZS50eXBlLmluZGV4KSkpKQpqdXpoZS56aG9uZ0ByaXZh aS5haQpGcm9tOiBKdW4gU2hhIChKb3NodWEpCkRhdGU6IDIwMjQtMDEtMTAgMTc6MjcKVG86IGdj Yy1wYXRjaGVzCkNDOiBqaW0ud2lsc29uLmdjYzsgcGFsbWVyOyBhbmRyZXc7IHBoaWxpcHAudG9t c2ljaDsgamVmZnJleWFsYXc7IGNocmlzdG9waC5tdWVsbG5lcjsganV6aGUuemhvbmc7IEp1biBT aGEgKEpvc2h1YSk7IEppbiBNYTsgWGlhbm1pYW8gUXUKU3ViamVjdDogW1BBVENIIHY1XSBSSVND LVY6IEFkZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4KVGhp cyBwYXRjaCBvbmx5IGludm9sdmVzIHRoZSBnZW5lcmF0aW9uIG9mIHh0aGVhZHZlY3RvcgpzcGVj aWFsIGxvYWQvc3RvcmUgaW5zdHJ1Y3Rpb25zIGFuZCB2ZXh0IGluc3RydWN0aW9ucy4KZ2NjL0No YW5nZUxvZzoKKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCihj bGFzcyB0aF9sb2Fkc3RvcmVfd2lkdGgpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gYmFzZXMuCihCQVNF KTogRGVmaW5lIG5ldyBidWlsdGluIGJhc2VzLgoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtYmFzZXMuaDoKRGVmaW5lIG5ldyBidWlsdGluIGNsYXNzLgoqIGNvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiAodmxzZWdmZik6CkluY2x1ZGUg dGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYuCiogY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MKKHN0cnVjdCB0aF9sb2Fkc3RvcmVfd2lkdGhfZGVm KTogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4KKHN0cnVjdCB0aF9pbmRleGVkX2xvYWRzdG9y ZV93aWR0aF9kZWYpOgpEZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVzLgooU0hBUEUpOiBEZWZpbmUg bmV3IGJ1aWx0aW4gc2hhcGVzLgoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt c2hhcGVzLmg6CkRlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuCiogY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYKKERFRl9SVlZfSThfT1BTKTogQWRkIGRhdGF0eXBl cyBmb3IgWFRoZWFkVmVjdG9yLgooREVGX1JWVl9JMTZfT1BTKTogQWRkIGRhdGF0eXBlcyBmb3Ig WFRoZWFkVmVjdG9yLgooREVGX1JWVl9JMzJfT1BTKTogQWRkIGRhdGF0eXBlcyBmb3IgWFRoZWFk VmVjdG9yLgooREVGX1JWVl9VOF9PUFMpOiBBZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3Iu CihERUZfUlZWX1UxNl9PUFMpOiBBZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3IuCihERUZf UlZWX1UzMl9PUFMpOiBBZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3IuCih2aW50OG0xX3Qp OiBBZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3IuCih2aW50OG0yX3QpOiBMaWtld2lzZS4K KHZpbnQ4bTRfdCk6IExpa2V3aXNlLgoodmludDhtOF90KTogTGlrZXdpc2UuCih2aW50MTZtMV90 KTogTGlrZXdpc2UuCih2aW50MTZtMl90KTogTGlrZXdpc2UuCih2aW50MTZtNF90KTogTGlrZXdp c2UuCih2aW50MTZtOF90KTogTGlrZXdpc2UuCih2aW50MzJtMV90KTogTGlrZXdpc2UuCih2aW50 MzJtMl90KTogTGlrZXdpc2UuCih2aW50MzJtNF90KTogTGlrZXdpc2UuCih2aW50MzJtOF90KTog TGlrZXdpc2UuCih2aW50NjRtMV90KTogTGlrZXdpc2UuCih2aW50NjRtMl90KTogTGlrZXdpc2Uu Cih2aW50NjRtNF90KTogTGlrZXdpc2UuCih2aW50NjRtOF90KTogTGlrZXdpc2UuCih2dWludDht MV90KTogTGlrZXdpc2UuCih2dWludDhtMl90KTogTGlrZXdpc2UuCih2dWludDhtNF90KTogTGlr ZXdpc2UuCih2dWludDhtOF90KTogTGlrZXdpc2UuCih2dWludDE2bTFfdCk6IExpa2V3aXNlLgoo dnVpbnQxNm0yX3QpOiBMaWtld2lzZS4KKHZ1aW50MTZtNF90KTogTGlrZXdpc2UuCih2dWludDE2 bThfdCk6IExpa2V3aXNlLgoodnVpbnQzMm0xX3QpOiBMaWtld2lzZS4KKHZ1aW50MzJtMl90KTog TGlrZXdpc2UuCih2dWludDMybTRfdCk6IExpa2V3aXNlLgoodnVpbnQzMm04X3QpOiBMaWtld2lz ZS4KKHZ1aW50NjRtMV90KTogTGlrZXdpc2UuCih2dWludDY0bTJfdCk6IExpa2V3aXNlLgoodnVp bnQ2NG00X3QpOiBMaWtld2lzZS4KKHZ1aW50NjRtOF90KTogTGlrZXdpc2UuCiogY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYwooREVGX1JWVl9JOF9PUFMpOiBBZGQgZGF0YXR5 cGVzIGZvciBYVGhlYWRWZWN0b3IuCihERUZfUlZWX0kxNl9PUFMpOiBBZGQgZGF0YXR5cGVzIGZv ciBYVGhlYWRWZWN0b3IuCihERUZfUlZWX0kzMl9PUFMpOiBBZGQgZGF0YXR5cGVzIGZvciBYVGhl YWRWZWN0b3IuCihERUZfUlZWX1U4X09QUyk6IEFkZCBkYXRhdHlwZXMgZm9yIFhUaGVhZFZlY3Rv ci4KKERFRl9SVlZfVTE2X09QUyk6IEFkZCBkYXRhdHlwZXMgZm9yIFhUaGVhZFZlY3Rvci4KKERF Rl9SVlZfVTMyX09QUyk6IEFkZCBkYXRhdHlwZXMgZm9yIFhUaGVhZFZlY3Rvci4KKiBjb25maWcv cmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWY6IE5ldyBmaWxlLgoqIGNv bmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQ6IEFkZCBuZXcgcGF0dGVybnMuCmdjYy90ZXN0c3Vp dGUvQ2hhbmdlTG9nOgoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNi LmM6IE5ldyB0ZXN0LgoqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZz Yi5jOiBOZXcgdGVzdC4KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZz aC5jOiBOZXcgdGVzdC4KKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12 c2guYzogTmV3IHRlc3QuCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12 c3cuYzogTmV3IHRlc3QuCiogZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3Ut dnN3LmM6IE5ldyB0ZXN0LgpDby1hdXRob3JlZC1ieTogSmluIE1hIDxqaW5tYUBsaW51eC5hbGli YWJhLmNvbT4KQ28tYXV0aG9yZWQtYnk6IFhpYW5taWFvIFF1IDxjb29wZXIucXVAbGludXguYWxp YmFiYS5jb20+CkNvLWF1dGhvcmVkLWJ5OiBDaHJpc3RvcGggTcO8bGxuZXIgPGNocmlzdG9waC5t dWVsbG5lckB2cnVsbC5ldT4KLS0tCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFz ZXMuY2PCoCDCoCDCoCB8IDEzOSArKysrKysrKwouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLWJhc2VzLmggwqAgwqAgwqAgfMKgIDMxICsrCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtc2hhcGVzLmNjIMKgIMKgIHzCoCA5OCArKysrKysKLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1zaGFwZXMuaMKgIMKgIMKgIHwgwqAgMyArCi4uLi9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtdHlwZXMuZGVmIMKgIMKgIHwgMTIwICsrKysrKysKZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgwqAgwqAgfCAzMTEgKysrKysrKysrKysrKysrKysr CmdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmjCoCDCoCDCoCB8IMKgIDMg KwpnY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3bCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCB8IMKgIDEgKwouLi4vcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYg fMKgIDM5ICsrKwpnY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZMKgIMKgIMKgIMKgIMKg IMKgIMKgIHwgMjUzICsrKysrKysrKysrKysrCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs Yi12c2IuY8KgIMKgIMKgIMKgIMKgIHzCoCA2OCArKysrCi4uLi9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3ZsYnUtdnNiLmMgwqAgwqAgwqAgwqAgfMKgIDY4ICsrKysKLi4uL3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxoLXZzaC5jwqAgwqAgwqAgwqAgwqAgfMKgIDY4ICsrKysKLi4uL3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3IvdmxodS12c2guYyDCoCDCoCDCoCDCoCB8wqAgNjggKysrKwouLi4vcmlz Y3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmPCoCDCoCDCoCDCoCDCoCB8wqAgNjggKysrKwou Li4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jIMKgIMKgIMKgIMKgIHzCoCA2OCAr KysrCjE2IGZpbGVzIGNoYW5nZWQsIDE0MDYgaW5zZXJ0aW9ucygrKQpjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZgpj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxiLXZzYi5jCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jCmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNo LmMKY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMKY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYwpjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3 dS12c3cuYwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMtYmFzZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNl cy5jYwppbmRleCA0NmYxYTFkYTMzZS4uNWY0NGYzMWExMmIgMTAwNjQ0Ci0tLSBhL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCisrKyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCkBAIC0yMTI1LDYgKzIxMjUsODMg QEAgcHVibGljOgrCoCB9Cn07CisvKiBJbXBsZW1lbnRzCisgKiB0aC52bChiL2gvdylbdV0udi90 aC52cyhiL2gvdylbdV0udi90aC52bHMoYi9oL3cpW3VdLnYvdGgudnNzKGIvaC93KVt1XS52Lwor ICogdGgudmx4KGIvaC93KVt1XS52L3RoLnZzW3VdeChiL2gvdykudgorICogY29kZWdlbi7CoCAq LwordGVtcGxhdGU8Ym9vbCBTVE9SRV9QLCBsc3RfdHlwZSBMU1RfVFlQRSwgaW50IFVOU1BFQz4K K2NsYXNzIHRoX2xvYWRzdG9yZV93aWR0aCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlCit7CitwdWJs aWM6CivCoCBib29sIGFwcGx5X3RhaWxfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1 cm4gIVNUT1JFX1A7IH0KK8KgIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVy cmlkZSB7IHJldHVybiAhU1RPUkVfUDsgfQorCivCoCB1bnNpZ25lZCBpbnQgY2FsbF9wcm9wZXJ0 aWVzIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmKSBjb25zdCBvdmVycmlkZQorwqAgeworwqAg wqAgaWYgKFNUT1JFX1ApCivCoCDCoCDCoCByZXR1cm4gQ1BfV1JJVEVfTUVNT1JZOworwqAgwqAg ZWxzZQorwqAgwqAgwqAgcmV0dXJuIENQX1JFQURfTUVNT1JZOworwqAgfQorCivCoCBib29sIGNh bl9iZV9vdmVybG9hZGVkX3AgKGVudW0gcHJlZGljYXRpb25fdHlwZV9pbmRleCBwcmVkKSBjb25z dCBvdmVycmlkZQorwqAgeworwqAgwqAgaWYgKFNUT1JFX1AgfHwgTFNUX1RZUEUgPT0gTFNUX0lO REVYRUQpCivCoCDCoCDCoCByZXR1cm4gdHJ1ZTsKK8KgIMKgIHJldHVybiBwcmVkICE9IFBSRURf VFlQRV9ub25lOworwqAgfQorCivCoCBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkg Y29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIGdjY19hc3NlcnQgKFRBUkdFVF9YVEhFQURWRUNU T1IpOworwqAgwqAgaWYgKExTVF9UWVBFID09IExTVF9JTkRFWEVEKQorwqAgwqAgwqAgeworIGlm IChTVE9SRV9QKQorIMKgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuICgKKyDCoCDCoCBjb2RlX2Zv cl9wcmVkX2luZGV4ZWRfc3RvcmVfd2lkdGggKFVOU1BFQywgVU5TUEVDLAorwqAgwqAgwqAgwqAg wqAgwqAgZS52ZWN0b3JfbW9kZSAoKSkpOworIGVsc2UKKyDCoCByZXR1cm4gZS51c2VfZXhhY3Rf aW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9pbmRleGVkX2xvYWRfd2lkdGggKFVOU1BFQywg ZS52ZWN0b3JfbW9kZSAoKSkpOworwqAgwqAgwqAgfQorwqAgwqAgZWxzZSBpZiAoTFNUX1RZUEUg PT0gTFNUX1NUUklERUQpCivCoCDCoCDCoCB7CisgaWYgKFNUT1JFX1ApCisgwqAgcmV0dXJuIGUu dXNlX2NvbnRpZ3VvdXNfc3RvcmVfaW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9zdHJpZGVk X3N0b3JlX3dpZHRoIChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkpKTsKKyBlbHNlCisgwqAgcmV0 dXJuIGUudXNlX2NvbnRpZ3VvdXNfbG9hZF9pbnNuICgKKyDCoCDCoCBjb2RlX2Zvcl9wcmVkX3N0 cmlkZWRfbG9hZF93aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7CivCoCDCoCDCoCB9 CivCoCDCoCBlbHNlCivCoCDCoCDCoCB7CisgaWYgKFNUT1JFX1ApCisgwqAgcmV0dXJuIGUudXNl X2NvbnRpZ3VvdXNfc3RvcmVfaW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9zdG9yZV93aWR0 aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7CisgZWxzZQorIMKgIHJldHVybiBlLnVzZV9j b250aWd1b3VzX2xvYWRfaW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9tb3Zfd2lkdGggKFVO U1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOworwqAgwqAgwqAgfQorwqAgfQorfTsKKworLyogSW1w bGVtZW50cyB2ZXh0Lngudi7CoCAqLworY2xhc3MgdGhfZXh0cmFjdCA6IHB1YmxpYyBmdW5jdGlv bl9iYXNlCit7CitwdWJsaWM6CivCoCBib29sIGFwcGx5X3ZsX3AgKCkgY29uc3Qgb3ZlcnJpZGUg eyByZXR1cm4gZmFsc2U7IH0KK8KgIGJvb2wgYXBwbHlfdGFpbF9wb2xpY3lfcCAoKSBjb25zdCBv dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorwqAgYm9vbCBhcHBseV9tYXNrX3BvbGljeV9wICgp IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CivCoCBib29sIHVzZV9tYXNrX3ByZWRp Y2F0aW9uX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KK8KgIGJvb2wgaGFz X21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorCivC oCBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsK K8KgIMKgIGdjY19hc3NlcnQgKFRBUkdFVF9YVEhFQURWRUNUT1IpOworwqAgwqAgcmV0dXJuIGUu dXNlX2V4YWN0X2luc24gKGNvZGVfZm9yX3ByZWRfdGhfZXh0cmFjdCAoZS52ZWN0b3JfbW9kZSAo KSkpOworwqAgfQorfTsKKwovKiBCZWxvdyBpbXBsZW1lbnRzIGFyZSB2ZWN0b3IgY3J5cHRvICov Ci8qIEltcGxlbWVudHMgdmFuZG4uW3Z2LHZ4XSAqLwpjbGFzcyB2YW5kbiA6IHB1YmxpYyBmdW5j dGlvbl9iYXNlCkBAIC0yNTg3LDYgKzI2NjQsMzcgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBz ZWdfaW5kZXhlZF9sb2FkPFVOU1BFQ19PUkRFUkVEPiB2bG94c2VnX29iajsKc3RhdGljIENPTlNU RVhQUiBjb25zdCBzZWdfaW5kZXhlZF9zdG9yZTxVTlNQRUNfVU5PUkRFUkVEPiB2c3V4c2VnX29i ajsKc3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5kZXhlZF9zdG9yZTxVTlNQRUNfT1JERVJF RD4gdnNveHNlZ19vYmo7CnN0YXRpYyBDT05TVEVYUFIgY29uc3QgdmxzZWdmZiB2bHNlZ2ZmX29i ajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1Rf VU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTEI+IHRoX3ZsYl9vYmo7CitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNf VEhfVkxCVT4gdGhfdmxidV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9y ZV93aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxIPiB0aF92bGhfb2Jq Oworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9V TklUX1NUUklERSwgVU5TUEVDX1RIX1ZMSFU+IHRoX3ZsaHVfb2JqOworc3RhdGljIENPTlNURVhQ UiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVD X1RIX1ZMVz4gdGhfdmx3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTFdVPiB0aF92bHd1X29i ajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9V TklUX1NUUklERSwgVU5TUEVDX1RIX1ZMQj4gdGhfdnNiX29iajsKK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RI X1ZMSD4gdGhfdnNoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPHRydWUsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMVz4gdGhfdnN3X29iajsKK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURF RCwgVU5TUEVDX1RIX1ZMU0I+IHRoX3Zsc2Jfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0 aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQRUNfVEhfVkxTQlU+IHRo X3Zsc2J1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZh bHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0g+IHRoX3Zsc2hfb2JqOworc3RhdGljIENP TlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9TVFJJREVELCBVTlNQ RUNfVEhfVkxTSFU+IHRoX3Zsc2h1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU1c+IHRoX3Zsc3df b2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExT VF9TVFJJREVELCBVTlNQRUNfVEhfVkxTV1U+IHRoX3Zsc3d1X29iajsKK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJREVELCBVTlNQRUNfVEhf VkxTQj4gdGhfdnNzYl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0g+IHRoX3Zzc2hfb2JqOworc3Rh dGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX1NUUklERUQs IFVOU1BFQ19USF9WTFNXPiB0aF92c3N3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEI+IHRoX3Zs eGJfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2Us IExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYQlU+IHRoX3ZseGJ1X29iajsKK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVD X1RIX1ZMWEg+IHRoX3ZseGhfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3Rv cmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYSFU+IHRoX3ZseGh1X29i ajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1Rf SU5ERVhFRCwgVU5TUEVDX1RIX1ZMWFc+IHRoX3ZseHdfb2JqOworc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxY V1U+IHRoX3ZseHd1X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dp ZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYQj4gdGhfdnN4Yl9vYmo7CitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwg VU5TUEVDX1RIX1ZMWEg+IHRoX3ZzeGhfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9s b2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhXPiB0aF92c3h3 X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExT VF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWEI+IHRoX3ZzdXhiX29iajsKK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhf VlNVWEg+IHRoX3ZzdXhoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVlNVWFc+IHRoX3ZzdXh3X29iajsK K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfZXh0cmFjdCB0aF92ZXh0X3hfdl9vYmo7Ci8qIENy eXB0byBWZWN0b3IgKi8Kc3RhdGljIENPTlNURVhQUiBjb25zdCB2YW5kbiB2YW5kbl9vYmo7CkBA IC0yODc4LDYgKzI5ODYsMzcgQEAgQkFTRSAodmxveHNlZykKQkFTRSAodnN1eHNlZykKQkFTRSAo dnNveHNlZykKQkFTRSAodmxzZWdmZikKK0JBU0UgKHRoX3ZsYikKK0JBU0UgKHRoX3ZsaCkKK0JB U0UgKHRoX3ZsdykKK0JBU0UgKHRoX3ZsYnUpCitCQVNFICh0aF92bGh1KQorQkFTRSAodGhfdmx3 dSkKK0JBU0UgKHRoX3ZzYikKK0JBU0UgKHRoX3ZzaCkKK0JBU0UgKHRoX3ZzdykKK0JBU0UgKHRo X3Zsc2IpCitCQVNFICh0aF92bHNoKQorQkFTRSAodGhfdmxzdykKK0JBU0UgKHRoX3Zsc2J1KQor QkFTRSAodGhfdmxzaHUpCitCQVNFICh0aF92bHN3dSkKK0JBU0UgKHRoX3Zzc2IpCitCQVNFICh0 aF92c3NoKQorQkFTRSAodGhfdnNzdykKK0JBU0UgKHRoX3ZseGIpCitCQVNFICh0aF92bHhoKQor QkFTRSAodGhfdmx4dykKK0JBU0UgKHRoX3ZseGJ1KQorQkFTRSAodGhfdmx4aHUpCitCQVNFICh0 aF92bHh3dSkKK0JBU0UgKHRoX3ZzeGIpCitCQVNFICh0aF92c3hoKQorQkFTRSAodGhfdnN4dykK K0JBU0UgKHRoX3ZzdXhiKQorQkFTRSAodGhfdnN1eGgpCitCQVNFICh0aF92c3V4dykKK0JBU0Ug KHRoX3ZleHRfeF92KQovKiBDcnlwdG8gdmVjdG9yICovCkJBU0UgKHZhbmRuKQpCQVNFICh2YnJl dikKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJh c2VzLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oCmlu ZGV4IDExMjJlMzgwMWE3Li5kZjQzYWRmOWExNyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oCkBAIC0yOTksNiArMjk5LDM3IEBAIGV4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bG94c2VnOwpleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdnN1eHNlZzsKZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZz b3hzZWc7CmV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2bHNlZ2ZmOworZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZsYjsKK2V4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB0aF92bGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dGhfdmx3OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZsYnU7CitleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmxodTsKK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB0aF92bHd1OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHRoX3ZzYjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92c2g7Citl eHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdnN3OworZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3Zsc2I7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdGhfdmxzaDsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHN3 OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3Zsc2J1OworZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3Zsc2h1OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHRoX3Zsc3d1OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHRoX3Zzc2I7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdnNzaDsKK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3N3OworZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZseGI7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdGhfdmx4aDsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bHh3 OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZseGJ1OworZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZseGh1OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHRoX3ZseHd1OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHRoX3ZzeGI7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdnN4aDsKK2V4 dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3h3OworZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZzdXhiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2Ug KmNvbnN0IHRoX3ZzdXhoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3Zz dXh3OworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZleHRfeF92OwovKiBC ZWxvdyBmdW5jdGlvbl9iYXNlIGFyZSBWZWN0cm8gQ3J5cHRvKi8KZXh0ZXJuIGNvbnN0IGZ1bmN0 aW9uX2Jhc2UgKmNvbnN0IHZhbmRuOwpleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dmJyZXY7CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1zaGFwZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFw ZXMuY2MKaW5kZXggMWU0ZjRkNTNkZTYuLjQ4OWE5NWNmNjg0IDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MKKysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjCkBAIC0yMTEsNiArMjExLDg2 IEBAIHN0cnVjdCBpbmRleGVkX2xvYWRzdG9yZV9kZWYgOiBwdWJsaWMgZnVuY3Rpb25fc2hhcGUK wqAgfQp9OworLyogdGhfbG9hZHN0b3JlX3dpZHRoX2RlZiBjbGFzcy7CoCAqLworc3RydWN0IHRo X2xvYWRzdG9yZV93aWR0aF9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQoreworwqAgY2hhciAqZ2V0 X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0 YW5jZSwKK8KgIMKgIGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQorwqAgeworwqAg wqAgLyogUmV0dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLsKgICovCivC oCDCoCBpZiAob3ZlcmxvYWRlZF9wICYmICFpbnN0YW5jZS5iYXNlLT5jYW5fYmVfb3ZlcmxvYWRl ZF9wIChpbnN0YW5jZS5wcmVkKSkKK8KgIMKgIMKgIHJldHVybiBudWxscHRyOworCivCoCDCoCBi LmFwcGVuZF9iYXNlX25hbWUgKGluc3RhbmNlLmJhc2VfbmFtZSk7CisKK8KgIMKgIC8qIHZvcF92 IC0tPiB2b3Bfdl88dHlwZT4uwqAgKi8KK8KgIMKgIGlmICghb3ZlcmxvYWRlZF9wKQorwqAgwqAg wqAgeworIC8qIHZvcCAtLT4gdm9wX3YuwqAgKi8KKyBiLmFwcGVuZF9uYW1lIChvcGVyYW5kX3N1 ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8tPm9wXSk7CisgLyogdm9wX3YgLS0+IHZvcF92Xzx0eXBl Pi7CoCAqLworIGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRl eF0udmVjdG9yKTsKK8KgIMKgIMKgIH0KKworwqAgwqAgLyogQWNjb3JkaW5nIHRvIHJ2di1pbnRy aW5zaWMtZG9jLCBpdCBkb2VzIG5vdCBhZGQgIl9tIiBzdWZmaXgKKyDCoCDCoCDCoCBmb3Igdm9w X20gQysrIG92ZXJsb2FkZWQgQVBJLsKgICovCivCoCDCoCBpZiAob3ZlcmxvYWRlZF9wICYmIGlu c3RhbmNlLnByZWQgPT0gUFJFRF9UWVBFX20pCivCoCDCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFt ZSAoKTsKK8KgIMKgIGIuYXBwZW5kX25hbWUgKHByZWRpY2F0aW9uX3N1ZmZpeGVzW2luc3RhbmNl LnByZWRdKTsKK8KgIMKgIHJldHVybiBiLmZpbmlzaF9uYW1lICgpOworwqAgfQorfTsKKworCisv KiB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aF9kZWYgY2xhc3MuwqAgKi8KK3N0cnVjdCB0aF9p bmRleGVkX2xvYWRzdG9yZV93aWR0aF9kZWYgOiBwdWJsaWMgZnVuY3Rpb25fc2hhcGUKK3sKK8Kg IHZvaWQgYnVpbGQgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsCisgwqAgwqAgwqAgY29uc3QgZnVuY3Rp b25fZ3JvdXBfaW5mbyAmZ3JvdXApIGNvbnN0IG92ZXJyaWRlCivCoCB7CivCoCDCoCBmb3IgKHVu c2lnbmVkIGludCBwcmVkX2lkeCA9IDA7IGdyb3VwLnByZWRzW3ByZWRfaWR4XSAhPSBOVU1fUFJF RF9UWVBFUzsKK8KgICsrcHJlZF9pZHgpCivCoCDCoCDCoCB7CisgZm9yICh1bnNpZ25lZCBpbnQg dmVjX3R5cGVfaWR4ID0gMDsKK8KgIMKgIMKgIGdyb3VwLm9wc19pbmZvcy50eXBlc1t2ZWNfdHlw ZV9pZHhdLmluZGV4ICE9IE5VTV9WRUNUT1JfVFlQRVM7CivCoCDCoCDCoCArK3ZlY190eXBlX2lk eCkKKyDCoCB7CivCoCDCoCB0cmVlIGluZGV4X3R5cGUgPSBncm91cC5vcHNfaW5mb3MuYXJnc1sx XS5nZXRfdHJlZV90eXBlICgKKyDCoCDCoCDCoCBncm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5 cGVfaWR4XS5pbmRleCk7CivCoCDCoCBpZiAoIWluZGV4X3R5cGUpCisgwqAgwqAgwqAgY29udGlu dWU7CivCoCDCoCBidWlsZF9vbmUgKGIsIGdyb3VwLCBwcmVkX2lkeCwgdmVjX3R5cGVfaWR4KTsK KyDCoCB9CivCoCDCoCDCoCB9CivCoCB9CisKK8KgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9i dWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsCivCoCDCoCBib29s IG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKKworwqAgwqAgLyogUmV0dXJuIG51 bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLsKgICovCivCoCDCoCBpZiAob3Zlcmxv YWRlZF9wICYmICFpbnN0YW5jZS5iYXNlLT5jYW5fYmVfb3ZlcmxvYWRlZF9wIChpbnN0YW5jZS5w cmVkKSkKK8KgIMKgIMKgIHJldHVybiBudWxscHRyOworCivCoCDCoCBiLmFwcGVuZF9iYXNlX25h bWUgKGluc3RhbmNlLmJhc2VfbmFtZSk7CivCoCDCoCAvKiB2b3BfdiAtLT4gdm9wX3ZfPHR5cGU+ LsKgICovCivCoCDCoCBpZiAoIW92ZXJsb2FkZWRfcCkKK8KgIMKgIMKgIHsKKyAvKiB2b3AgLS0+ IHZvcF92LsKgICovCisgYi5hcHBlbmRfbmFtZSAob3BlcmFuZF9zdWZmaXhlc1tpbnN0YW5jZS5v cF9pbmZvLT5vcF0pOworIC8qIHZvcF92IC0tPiB2b3Bfdl88dHlwZT4uwqAgKi8KKyBiLmFwcGVu ZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7CivCoCDC oCDCoCB9CisKK8KgIMKgIC8qIEFjY29yZGluZyB0byBydnYtaW50cmluc2ljLWRvYywgaXQgZG9l cyBub3QgYWRkICJfbSIgc3VmZml4CisgwqAgwqAgwqAgZm9yIHZvcF9tIEMrKyBvdmVybG9hZGVk IEFQSS7CoCAqLworwqAgwqAgaWYgKG92ZXJsb2FkZWRfcCAmJiBpbnN0YW5jZS5wcmVkID09IFBS RURfVFlQRV9tKQorwqAgwqAgwqAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7CivCoCDCoCBiLmFw cGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZmaXhlc1tpbnN0YW5jZS5wcmVkXSk7CivCoCDCoCBy ZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsKK8KgIH0KK307CisKLyogYWx1X2RlZiBjbGFzcy7CoCAq LwpzdHJ1Y3QgYWx1X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlCnsKQEAgLTYzMiw2ICs3MTIsMjEg QEAgc3RydWN0IHJlZHVjX2FsdV9kZWYgOiBwdWJsaWMgYnVpbGRfYmFzZQrCoCB9Cn07CisvKiB0 aF9leHRyYWN0X2RlZiBjbGFzcy7CoCAqLworc3RydWN0IHRoX2V4dHJhY3RfZGVmIDogcHVibGlj IGJ1aWxkX2Jhc2UKK3sKK8KgIGNoYXIgKmdldF9uYW1lIChmdW5jdGlvbl9idWlsZGVyICZiLCBj b25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsCivCoCDCoCDCoCBib29sIG92ZXJsb2Fk ZWRfcCkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIGIuYXBwZW5kX2Jhc2VfbmFtZSAoaW5z dGFuY2UuYmFzZV9uYW1lKTsKK8KgIMKgIGlmIChvdmVybG9hZGVkX3ApCivCoCDCoCDCoCByZXR1 cm4gYi5maW5pc2hfbmFtZSAoKTsKK8KgIMKgIGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNb aW5zdGFuY2UudHlwZS5pbmRleF0udmVjdG9yKTsKK8KgIMKgIGIuYXBwZW5kX25hbWUgKHR5cGVf c3VmZml4ZXNbaW5zdGFuY2UudHlwZS5pbmRleF0uc2NhbGFyKTsKK8KgIMKgIHJldHVybiBiLmZp bmlzaF9uYW1lICgpOworwqAgfQorfTsKKwovKiBzY2FsYXJfbW92ZV9kZWYgY2xhc3MuwqAgKi8K c3RydWN0IHNjYWxhcl9tb3ZlX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlCnsKQEAgLTEwOTQsNiAr MTE4OSw4IEBAIFNIQVBFKHZzZXR2bCwgdnNldHZsKQpTSEFQRSh2c2V0dmwsIHZzZXR2bG1heCkK U0hBUEUobG9hZHN0b3JlLCBsb2Fkc3RvcmUpClNIQVBFKGluZGV4ZWRfbG9hZHN0b3JlLCBpbmRl eGVkX2xvYWRzdG9yZSkKK1NIQVBFKHRoX2xvYWRzdG9yZV93aWR0aCwgdGhfbG9hZHN0b3JlX3dp ZHRoKQorU0hBUEUodGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIHRoX2luZGV4ZWRfbG9hZHN0 b3JlX3dpZHRoKQpTSEFQRShhbHUsIGFsdSkKU0hBUEUoYWx1X2ZybSwgYWx1X2ZybSkKU0hBUEUo d2lkZW5fYWx1LCB3aWRlbl9hbHUpCkBAIC0xMTA2LDYgKzEyMDMsNyBAQCBTSEFQRShtb3ZlLCBt b3ZlKQpTSEFQRShtYXNrX2FsdSwgbWFza19hbHUpClNIQVBFKHJlZHVjX2FsdSwgcmVkdWNfYWx1 KQpTSEFQRShyZWR1Y19hbHVfZnJtLCByZWR1Y19hbHVfZnJtKQorU0hBUEUodGhfZXh0cmFjdCwg dGhfZXh0cmFjdCkKU0hBUEUoc2NhbGFyX21vdmUsIHNjYWxhcl9tb3ZlKQpTSEFQRSh2dW5kZWZp bmVkLCB2dW5kZWZpbmVkKQpTSEFQRShtaXNjLCBtaXNjKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmggYi9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaAppbmRleCBhYzJhMjhjZTAxNy4uYTc2MjRk MGZhYmQgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5z LXNoYXBlcy5oCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNo YXBlcy5oCkBAIC0yOCw2ICsyOCw4IEBAIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29u c3QgdnNldHZsOwpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHZzZXR2bG1heDsK ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBsb2Fkc3RvcmU7CmV4dGVybiBjb25z dCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgaW5kZXhlZF9sb2Fkc3RvcmU7CitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDsKK2V4dGVybiBjb25zdCBm dW5jdGlvbl9zaGFwZSAqY29uc3QgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGg7CmV4dGVybiBj b25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgYWx1OwpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hh cGUgKmNvbnN0IGFsdV9mcm07CmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3Qgd2lk ZW5fYWx1OwpAQCAtNDEsNiArNDMsNyBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNv bnN0IG1hc2tfYWx1OwpleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHJlZHVjX2Fs dTsKZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZWR1Y19hbHVfZnJtOwpleHRl cm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHNjYWxhcl9tb3ZlOworZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB0aF9leHRyYWN0OwpleHRlcm4gY29uc3QgZnVuY3Rpb25f c2hhcGUgKmNvbnN0IHZ1bmRlZmluZWQ7CmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29u c3QgbWlzYzsKZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCB2c2V0OwpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmCmluZGV4IDYx MDE5YTU2ODQ0Li5hYmZlYjRmY2Q5YiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZgpAQCAtMjQsMTIgKzI0LDQ4IEBAIGFsb25nIHdpdGgg R0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuIElmIG5vdCBzZWUKI2RlZmluZSBERUZfUlZWX0lf T1BTKFRZUEUsIFJFUVVJUkUpCiNlbmRpZgorLyogVXNlICJERUZfUlZWX0k4X09QUyIgbWFjcm8g aW5jbHVkZSBzb21lIHNpZ25lZCBpbnRlZ2VyIChpOC9pMTYvaTMyL2k2NCkKKyDCoCB3aGljaCB3 aWxsIGJlIGl0ZXJhdGVkIGFuZCByZWdpc3RlcmVkIGFzIGludHJpbnNpYyBmdW5jdGlvbnMuwqAg Ki8KKyNpZm5kZWYgREVGX1JWVl9JOF9PUFMKKyNkZWZpbmUgREVGX1JWVl9JOF9PUFMoVFlQRSwg UkVRVUlSRSkKKyNlbmRpZgorCisvKiBVc2UgIkRFRl9SVlZfSTE2X09QUyIgbWFjcm8gaW5jbHVk ZSBzb21lIHNpZ25lZCBpbnRlZ2VyIChpMTYvaTMyL2k2NCkKKyDCoCB3aGljaCB3aWxsIGJlIGl0 ZXJhdGVkIGFuZCByZWdpc3RlcmVkIGFzIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KKyNpZm5k ZWYgREVGX1JWVl9JMTZfT1BTCisjZGVmaW5lIERFRl9SVlZfSTE2X09QUyhUWVBFLCBSRVFVSVJF KQorI2VuZGlmCisKKy8qIFVzZSAiREVGX1JWVl9JMzJfT1BTIiBtYWNybyBpbmNsdWRlIHNvbWUg c2lnbmVkIGludGVnZXIgKGkzMi9pNjQpCisgwqAgd2hpY2ggd2lsbCBiZSBpdGVyYXRlZCBhbmQg cmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVuY3Rpb25zLsKgICovCisjaWZuZGVmIERFRl9SVlZf STMyX09QUworI2RlZmluZSBERUZfUlZWX0kzMl9PUFMoVFlQRSwgUkVRVUlSRSkKKyNlbmRpZgor Ci8qIFVzZSAiREVGX1JWVl9VX09QUyIgbWFjcm8gaW5jbHVkZSBhbGwgdW5zaWduZWQgaW50ZWdl ciB3aGljaCB3aWxsIGJlCsKgIMKgIGl0ZXJhdGVkIGFuZCByZWdpc3RlcmVkIGFzIGludHJpbnNp YyBmdW5jdGlvbnMuwqAgKi8KI2lmbmRlZiBERUZfUlZWX1VfT1BTCiNkZWZpbmUgREVGX1JWVl9V X09QUyhUWVBFLCBSRVFVSVJFKQojZW5kaWYKKy8qIFVzZSAiREVGX1JWVl9VOF9PUFMiIG1hY3Jv IGluY2x1ZGUgc29tZSB1bnNpZ25lZCBpbnRlZ2VyIChpOC9pMTYvaTMyL2k2NCkKKyDCoCB3aGlj aCB3aWxsIGJlIGl0ZXJhdGVkIGFuZCByZWdpc3RlcmVkIGFzIGludHJpbnNpYyBmdW5jdGlvbnMu wqAgKi8KKyNpZm5kZWYgREVGX1JWVl9VOF9PUFMKKyNkZWZpbmUgREVGX1JWVl9VOF9PUFMoVFlQ RSwgUkVRVUlSRSkKKyNlbmRpZgorCisvKiBVc2UgIkRFRl9SVlZfVTE2X09QUyIgbWFjcm8gaW5j bHVkZSBzb21lIHVuc2lnbmVkIGludGVnZXIgKGkxNi9pMzIvaTY0KQorIMKgIHdoaWNoIHdpbGwg YmUgaXRlcmF0ZWQgYW5kIHJlZ2lzdGVyZWQgYXMgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLwor I2lmbmRlZiBERUZfUlZWX1UxNl9PUFMKKyNkZWZpbmUgREVGX1JWVl9VMTZfT1BTKFRZUEUsIFJF UVVJUkUpCisjZW5kaWYKKworLyogVXNlICJERUZfUlZWX1UzMl9PUFMiIG1hY3JvIGluY2x1ZGUg c29tZSB1bnNpZ25lZCBpbnRlZ2VyIChpMzIvaTY0KQorIMKgIHdoaWNoIHdpbGwgYmUgaXRlcmF0 ZWQgYW5kIHJlZ2lzdGVyZWQgYXMgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLworI2lmbmRlZiBE RUZfUlZWX1UzMl9PUFMKKyNkZWZpbmUgREVGX1JWVl9VMzJfT1BTKFRZUEUsIFJFUVVJUkUpCisj ZW5kaWYKKwovKiBVc2UgIkRFRl9SVlZfRl9PUFMiIG1hY3JvIGluY2x1ZGUgYWxsIGZsb2F0aW5n LXBvaW50IHdoaWNoIHdpbGwgYmUKwqAgwqAgaXRlcmF0ZWQgYW5kIHJlZ2lzdGVyZWQgYXMgaW50 cmluc2ljIGZ1bmN0aW9ucy7CoCAqLwojaWZuZGVmIERFRl9SVlZfRl9PUFMKQEAgLTM3NCw2ICs0 MTAsNDUgQEAgREVGX1JWVl9JX09QUyAodmludDY0bTJfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkK REVGX1JWVl9JX09QUyAodmludDY0bTRfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKREVGX1JWVl9J X09QUyAodmludDY0bThfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfSThfT1BTICh2 aW50OG0xX3QsIDApCitERUZfUlZWX0k4X09QUyAodmludDhtMl90LCAwKQorREVGX1JWVl9JOF9P UFMgKHZpbnQ4bTRfdCwgMCkKK0RFRl9SVlZfSThfT1BTICh2aW50OG04X3QsIDApCitERUZfUlZW X0k4X09QUyAodmludDE2bTFfdCwgMCkKK0RFRl9SVlZfSThfT1BTICh2aW50MTZtMl90LCAwKQor REVGX1JWVl9JOF9PUFMgKHZpbnQxNm00X3QsIDApCitERUZfUlZWX0k4X09QUyAodmludDE2bThf dCwgMCkKK0RFRl9SVlZfSThfT1BTICh2aW50MzJtMV90LCAwKQorREVGX1JWVl9JOF9PUFMgKHZp bnQzMm0yX3QsIDApCitERUZfUlZWX0k4X09QUyAodmludDMybTRfdCwgMCkKK0RFRl9SVlZfSThf T1BTICh2aW50MzJtOF90LCAwKQorREVGX1JWVl9JOF9PUFMgKHZpbnQ2NG0xX3QsIFJWVl9SRVFV SVJFX0VMRU5fNjQpCitERUZfUlZWX0k4X09QUyAodmludDY0bTJfdCwgUlZWX1JFUVVJUkVfRUxF Tl82NCkKK0RFRl9SVlZfSThfT1BTICh2aW50NjRtNF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQor REVGX1JWVl9JOF9PUFMgKHZpbnQ2NG04X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCisKK0RFRl9S VlZfSTE2X09QUyAodmludDE2bTFfdCwgMCkKK0RFRl9SVlZfSTE2X09QUyAodmludDE2bTJfdCwg MCkKK0RFRl9SVlZfSTE2X09QUyAodmludDE2bTRfdCwgMCkKK0RFRl9SVlZfSTE2X09QUyAodmlu dDE2bThfdCwgMCkKK0RFRl9SVlZfSTE2X09QUyAodmludDMybTFfdCwgMCkKK0RFRl9SVlZfSTE2 X09QUyAodmludDMybTJfdCwgMCkKK0RFRl9SVlZfSTE2X09QUyAodmludDMybTRfdCwgMCkKK0RF Rl9SVlZfSTE2X09QUyAodmludDMybThfdCwgMCkKK0RFRl9SVlZfSTE2X09QUyAodmludDY0bTFf dCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfSTE2X09QUyAodmludDY0bTJfdCwgUlZW X1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfSTE2X09QUyAodmludDY0bTRfdCwgUlZWX1JFUVVJ UkVfRUxFTl82NCkKK0RFRl9SVlZfSTE2X09QUyAodmludDY0bThfdCwgUlZWX1JFUVVJUkVfRUxF Tl82NCkKKworREVGX1JWVl9JMzJfT1BTICh2aW50MzJtMV90LCAwKQorREVGX1JWVl9JMzJfT1BT ICh2aW50MzJtMl90LCAwKQorREVGX1JWVl9JMzJfT1BTICh2aW50MzJtNF90LCAwKQorREVGX1JW Vl9JMzJfT1BTICh2aW50MzJtOF90LCAwKQorREVGX1JWVl9JMzJfT1BTICh2aW50NjRtMV90LCBS VlZfUkVRVUlSRV9FTEVOXzY0KQorREVGX1JWVl9JMzJfT1BTICh2aW50NjRtMl90LCBSVlZfUkVR VUlSRV9FTEVOXzY0KQorREVGX1JWVl9JMzJfT1BTICh2aW50NjRtNF90LCBSVlZfUkVRVUlSRV9F TEVOXzY0KQorREVGX1JWVl9JMzJfT1BTICh2aW50NjRtOF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0 KQorCkRFRl9SVlZfVV9PUFMgKHZ1aW50OG1mOF90LCBSVlZfUkVRVUlSRV9NSU5fVkxFTl82NCkK REVGX1JWVl9VX09QUyAodnVpbnQ4bWY0X3QsIDApCkRFRl9SVlZfVV9PUFMgKHZ1aW50OG1mMl90 LCAwKQpAQCAtMzk3LDYgKzQ3Miw0NSBAQCBERUZfUlZWX1VfT1BTICh2dWludDY0bTJfdCwgUlZW X1JFUVVJUkVfRUxFTl82NCkKREVGX1JWVl9VX09QUyAodnVpbnQ2NG00X3QsIFJWVl9SRVFVSVJF X0VMRU5fNjQpCkRFRl9SVlZfVV9PUFMgKHZ1aW50NjRtOF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0 KQorREVGX1JWVl9VOF9PUFMgKHZ1aW50OG0xX3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQ4 bTJfdCwgMCkKK0RFRl9SVlZfVThfT1BTICh2dWludDhtNF90LCAwKQorREVGX1JWVl9VOF9PUFMg KHZ1aW50OG04X3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQxNm0xX3QsIDApCitERUZfUlZW X1U4X09QUyAodnVpbnQxNm0yX3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQxNm00X3QsIDAp CitERUZfUlZWX1U4X09QUyAodnVpbnQxNm04X3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQz Mm0xX3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQzMm0yX3QsIDApCitERUZfUlZWX1U4X09Q UyAodnVpbnQzMm00X3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQzMm04X3QsIDApCitERUZf UlZWX1U4X09QUyAodnVpbnQ2NG0xX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX1U4 X09QUyAodnVpbnQ2NG0yX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX1U4X09QUyAo dnVpbnQ2NG00X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX1U4X09QUyAodnVpbnQ2 NG04X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCisKK0RFRl9SVlZfVTE2X09QUyAodnVpbnQxNm0x X3QsIDApCitERUZfUlZWX1UxNl9PUFMgKHZ1aW50MTZtMl90LCAwKQorREVGX1JWVl9VMTZfT1BT ICh2dWludDE2bTRfdCwgMCkKK0RFRl9SVlZfVTE2X09QUyAodnVpbnQxNm04X3QsIDApCitERUZf UlZWX1UxNl9PUFMgKHZ1aW50MzJtMV90LCAwKQorREVGX1JWVl9VMTZfT1BTICh2dWludDMybTJf dCwgMCkKK0RFRl9SVlZfVTE2X09QUyAodnVpbnQzMm00X3QsIDApCitERUZfUlZWX1UxNl9PUFMg KHZ1aW50MzJtOF90LCAwKQorREVGX1JWVl9VMTZfT1BTICh2dWludDY0bTFfdCwgUlZWX1JFUVVJ UkVfRUxFTl82NCkKK0RFRl9SVlZfVTE2X09QUyAodnVpbnQ2NG0yX3QsIFJWVl9SRVFVSVJFX0VM RU5fNjQpCitERUZfUlZWX1UxNl9PUFMgKHZ1aW50NjRtNF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0 KQorREVGX1JWVl9VMTZfT1BTICh2dWludDY0bThfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKKwor REVGX1JWVl9VMzJfT1BTICh2dWludDMybTFfdCwgMCkKK0RFRl9SVlZfVTMyX09QUyAodnVpbnQz Mm0yX3QsIDApCitERUZfUlZWX1UzMl9PUFMgKHZ1aW50MzJtNF90LCAwKQorREVGX1JWVl9VMzJf T1BTICh2dWludDMybThfdCwgMCkKK0RFRl9SVlZfVTMyX09QUyAodnVpbnQ2NG0xX3QsIFJWVl9S RVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX1UzMl9PUFMgKHZ1aW50NjRtMl90LCBSVlZfUkVRVUlS RV9FTEVOXzY0KQorREVGX1JWVl9VMzJfT1BTICh2dWludDY0bTRfdCwgUlZWX1JFUVVJUkVfRUxF Tl82NCkKK0RFRl9SVlZfVTMyX09QUyAodnVpbnQ2NG04X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQp CisKREVGX1JWVl9GX09QUyAodmZsb2F0MTZtZjRfdCwgUlZWX1JFUVVJUkVfRUxFTl9GUF8xNiB8 IFJWVl9SRVFVSVJFX01JTl9WTEVOXzY0KQpERUZfUlZWX0ZfT1BTICh2ZmxvYXQxNm1mMl90LCBS VlZfUkVRVUlSRV9FTEVOX0ZQXzE2KQpERUZfUlZWX0ZfT1BTICh2ZmxvYXQxNm0xX3QsIFJWVl9S RVFVSVJFX0VMRU5fRlBfMTYpCkBAIC0xMzc5LDcgKzE0OTMsMTMgQEAgREVGX1JWVl9DUllQVE9f U0VXNjRfT1BTICh2dWludDY0bTRfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKREVGX1JWVl9DUllQ VE9fU0VXNjRfT1BTICh2dWludDY0bThfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKI3VuZGVmIERF Rl9SVlZfSV9PUFMKKyN1bmRlZiBERUZfUlZWX0k4X09QUworI3VuZGVmIERFRl9SVlZfSTE2X09Q UworI3VuZGVmIERFRl9SVlZfSTMyX09QUwojdW5kZWYgREVGX1JWVl9VX09QUworI3VuZGVmIERF Rl9SVlZfVThfT1BTCisjdW5kZWYgREVGX1JWVl9VMTZfT1BTCisjdW5kZWYgREVGX1JWVl9VMzJf T1BTCiN1bmRlZiBERUZfUlZWX0ZfT1BTCiN1bmRlZiBERUZfUlZWX0JfT1BTCiN1bmRlZiBERUZf UlZWX1dFWFRJX09QUwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYwpp bmRleCAyNWUwYjZlNTZkZS4uZjQyOWYxMmRjMTggMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLmNjCkBAIC0yNDYsNiArMjQ2LDYzIEBAIHN0YXRpYyBjb25zdCBydnZf dHlwZV9pbmZvIGl1X29wc1tdID0gewojaW5jbHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5 cGVzLmRlZiIKwqAge05VTV9WRUNUT1JfVFlQRVMsIDB9fTsKKy8qIEEgbGlzdCBvZiBhbGwgaW50 ZWdlciB3aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KK3N0 YXRpYyBjb25zdCBydnZfdHlwZV9pbmZvIGk4X29wc1tdID0geworI2RlZmluZSBERUZfUlZWX0k4 X09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwKKyNpbmNs dWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIgorwqAge05VTV9WRUNUT1JfVFlQ RVMsIDB9fTsKKworLyogQSBsaXN0IG9mIGFsbCBpbnRlZ2VyIHdpbGwgYmUgcmVnaXN0ZXJlZCBm b3IgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLworc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8g aTE2X29wc1tdID0geworI2RlZmluZSBERUZfUlZWX0kxNl9PUFMoVFlQRSwgUkVRVUlSRSkge1ZF Q1RPUl9UWVBFXyMjVFlQRSwgUkVRVUlSRX0sCisjaW5jbHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLXR5cGVzLmRlZiIKK8KgIHtOVU1fVkVDVE9SX1RZUEVTLCAwfX07CisKKy8qIEEgbGlzdCBv ZiBhbGwgaW50ZWdlciB3aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGludHJpbnNpYyBmdW5jdGlvbnMu wqAgKi8KK3N0YXRpYyBjb25zdCBydnZfdHlwZV9pbmZvIGkzMl9vcHNbXSA9IHsKKyNkZWZpbmUg REVGX1JWVl9JMzJfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJ UkV9LAorI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYiCivCoCB7TlVN X1ZFQ1RPUl9UWVBFUywgMH19OworCisvKiBBIGxpc3Qgb2YgYWxsIGludGVnZXIgd2lsbCBiZSBy ZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25zLsKgICovCitzdGF0aWMgY29uc3QgcnZ2 X3R5cGVfaW5mbyB1OF9vcHNbXSA9IHsKKyNkZWZpbmUgREVGX1JWVl9VOF9PUFMoVFlQRSwgUkVR VUlSRSkge1ZFQ1RPUl9UWVBFXyMjVFlQRSwgUkVRVUlSRX0sCisjaW5jbHVkZSAicmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiIKK8KgIHtOVU1fVkVDVE9SX1RZUEVTLCAwfX07CisKKy8q IEEgbGlzdCBvZiBhbGwgaW50ZWdlciB3aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGludHJpbnNpYyBm dW5jdGlvbnMuwqAgKi8KK3N0YXRpYyBjb25zdCBydnZfdHlwZV9pbmZvIHUxNl9vcHNbXSA9IHsK KyNkZWZpbmUgREVGX1JWVl9VMTZfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZ UEUsIFJFUVVJUkV9LAorI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYi CivCoCB7TlVNX1ZFQ1RPUl9UWVBFUywgMH19OworCisvKiBBIGxpc3Qgb2YgYWxsIGludGVnZXIg d2lsbCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25zLsKgICovCitzdGF0aWMg Y29uc3QgcnZ2X3R5cGVfaW5mbyB1MzJfb3BzW10gPSB7CisjZGVmaW5lIERFRl9SVlZfVTMyX09Q UyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwKKyNpbmNsdWRl ICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIgorwqAge05VTV9WRUNUT1JfVFlQRVMs IDB9fTsKKworLyogQSBsaXN0IG9mIGFsbCBpbnRlZ2VyIHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3Ig aW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLworc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8gaXU4 X29wc1tdID0geworI2RlZmluZSBERUZfUlZWX0k4X09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9S X1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwKKyNkZWZpbmUgREVGX1JWVl9VOF9PUFMoVFlQRSwgUkVR VUlSRSkge1ZFQ1RPUl9UWVBFXyMjVFlQRSwgUkVRVUlSRX0sCisjaW5jbHVkZSAicmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiIKK8KgIHtOVU1fVkVDVE9SX1RZUEVTLCAwfX07CisKKy8q IEEgbGlzdCBvZiBhbGwgaW50ZWdlciB3aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGludHJpbnNpYyBm dW5jdGlvbnMuwqAgKi8KK3N0YXRpYyBjb25zdCBydnZfdHlwZV9pbmZvIGl1MTZfb3BzW10gPSB7 CisjZGVmaW5lIERFRl9SVlZfSTE2X09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNU WVBFLCBSRVFVSVJFfSwKKyNkZWZpbmUgREVGX1JWVl9VMTZfT1BTKFRZUEUsIFJFUVVJUkUpIHtW RUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9LAorI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWls dGlucy10eXBlcy5kZWYiCivCoCB7TlVNX1ZFQ1RPUl9UWVBFUywgMH19OworCisvKiBBIGxpc3Qg b2YgYWxsIGludGVnZXIgd2lsbCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25z LsKgICovCitzdGF0aWMgY29uc3QgcnZ2X3R5cGVfaW5mbyBpdTMyX29wc1tdID0geworI2RlZmlu ZSBERUZfUlZWX0kzMl9PUFMoVFlQRSwgUkVRVUlSRSkge1ZFQ1RPUl9UWVBFXyMjVFlQRSwgUkVR VUlSRX0sCisjZGVmaW5lIERFRl9SVlZfVTMyX09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZ UEVfIyNUWVBFLCBSRVFVSVJFfSwKKyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlw ZXMuZGVmIgorwqAge05VTV9WRUNUT1JfVFlQRVMsIDB9fTsKKwovKiBBIGxpc3Qgb2YgYWxsIHR5 cGVzIHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLwpzdGF0 aWMgY29uc3QgcnZ2X3R5cGVfaW5mbyBhbGxfb3BzW10gPSB7CiNkZWZpbmUgREVGX1JWVl9JX09Q UyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwKQEAgLTkzNCw2 ICs5OTEsMzIgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBleHRf dmNyZWF0ZV9hcmdzW10KwqAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rvciks CsKgIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07CisvKiBBIGxpc3Qgb2YgYXJncyBmb3Ig dmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwgc2l6ZV90KQorICogZnVuY3Rp b24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFy X2NvbnN0X3B0cl9zaXplX2FyZ3NbXQorwqAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNF X3NjYWxhcl9jb25zdF9wdHIpLAorIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9z aXplKSwgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsKKworLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZl Y3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosIGVldzhfaW5kZXhfdHlwZSkKKyAq IGZ1bmN0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZv IHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJnc1tdCivCoCA9IHtydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0Vfc2NhbGFyX2NvbnN0X3B0ciksCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3Vuc2lnbmVkX3ZlY3RvciksIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07CisKKy8qIEEg bGlzdCBvZiBhcmdzIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGVldzhfaW5kZXhfdHlw ZSwgdmVjdG9yX3R5cGUpCisgKiBmdW5jdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfYXJnX3R5cGVfaW5mbyBzY2FsYXJfcHRyX2luZGV4X2FyZ3NbXQorwqAgPSB7cnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhcl9wdHIpLAorIMKgIMKgIHJ2dl9hcmdfdHlwZV9p bmZvIChSVlZfQkFTRV91bnNpZ25lZF92ZWN0b3IpLAorIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZv IChSVlZfQkFTRV92ZWN0b3IpLCBydnZfYXJnX3R5cGVfaW5mb19lbmR9OworCisvKiBBIGxpc3Qg b2YgYXJncyBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBzaXplX3QsIHZlY3Rvcl90eXBl KQorICogZnVuY3Rpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBl X2luZm8gc2NhbGFyX3B0cl9zaXplX2FyZ3NbXQorwqAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3NjYWxhcl9wdHIpLAorIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9z aXplKSwgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksCisgwqAgwqAgcnZ2X2Fy Z190eXBlX2luZm9fZW5kfTsKKwovKiBBIGxpc3Qgb2Ygbm9uZSBwcmVkcyB0aGF0IHdpbGwgYmUg cmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLwpzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHByZWRpY2F0aW9uX3R5cGVfaW5kZXggbm9uZV9wcmVkc1tdCsKgID0ge1BSRURfVFlQ RV9ub25lLCBOVU1fUFJFRF9UWVBFU307CkBAIC0xNDU1LDYgKzE1MzgsMTQgQEAgc3RhdGljIENP TlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdV9zaGlmdF92dnZfb3BzCsKgIMKgIMKgIHJ2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAqLwrCoCDCoCDC oCBzaGlmdF92dl9hcmdzIC8qIEFyZ3MgKi99OworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1h dGlvbiBmb3Igc2NhbGFyX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUsIHNpemVfdCkKKyAqIGZ1bmN0 aW9uIHJlZ2lzdHJhdGlvbi4gKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8g aXVfeF9zX3Vfb3BzCivCoCA9IHtpdV9vcHMswqAgwqAgwqAgwqAgwqAgLyogVHlwZXMgKi8KKyDC oCDCoCBPUF9UWVBFX3Z4LMKgIMKgIMKgIMKgIC8qIFN1ZmZpeCAqLworIMKgIMKgIHJ2dl9hcmdf dHlwZV9pbmZvIChSVlZfQkFTRV9zY2FsYXIpLCAvKiBSZXR1cm4gdHlwZSAqLworIMKgIMKgIHZf c2l6ZV9hcmdzIC8qIEFyZ3MgKi99OworCi8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24g Zm9yIHZlY3Rvcl90eXBlIGZ1bmMgKHZlY3Rvcl90eXBlLCBzaXplX3QpCsKgICogZnVuY3Rpb24g cmVnaXN0cmF0aW9uLiAqLwpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1X3No aWZ0X3Z2eF9vcHMKQEAgLTI2MzgsNiArMjcyOSwyMjIgQEAgc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfb3BfaW5mbyBhbGxfdl92Y3JlYXRlX2xtdWw0X3gyX29wcwrCoCDCoCDCoCBydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0VfdmxtdWxfZXh0X3gyKSwgLyogUmV0dXJuIHR5cGUgKi8KwqAg wqAgwqAgZXh0X3ZjcmVhdGVfYXJncyAvKiBBcmdzICovfTsKKy8qIEEgc3RhdGljIG9wZXJhbmQg aW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICopCisg KiBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X29wX2luZm8gaThfdl9zY2FsYXJfY29uc3RfcHRyX29wcworwqAgPSB7aThfb3BzLMKgIMKgIMKg IC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8K KyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5 cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfYXJncyAvKiBBcmdzwqAgKi99OworCisv KiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25z dCBzY2FsYXJfdHlwZSAqKQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGkxNl92X3NjYWxhcl9jb25zdF9wdHJfb3BzCivC oCA9IHtpMTZfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAg wqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf dmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfYXJn cyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVj dG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKikKKyAqIGZ1bmN0aW9uIHJlZ2lzdHJh dGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpMzJfdl9zY2Fs YXJfY29uc3RfcHRyX29wcworwqAgPSB7aTMyX29wcyzCoCDCoCDCoCAvKiBUeXBlc8KgICovCisg wqAgwqAgT1BfVFlQRV92LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBz Y2FsYXJfY29uc3RfcHRyX2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQg aW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICopCisg KiBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X29wX2luZm8gdThfdl9zY2FsYXJfY29uc3RfcHRyX29wcworwqAgPSB7dThfb3BzLMKgIMKgIMKg IC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8K KyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5 cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfYXJncyAvKiBBcmdzICovfTsKKworLyog QSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qg c2NhbGFyX3R5cGUgKikKKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENP TlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1MTZfdl9zY2FsYXJfY29uc3RfcHRyX29wcworwqAg PSB7dTE2X29wcyzCoCDCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKg IMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Zl Y3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfY29uc3RfcHRyX2FyZ3Mg LyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rv cl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICopCisgKiBmdW5jdGlvbiByZWdpc3RyYXRp b24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdTMyX3Zfc2NhbGFy X2NvbnN0X3B0cl9vcHMKK8KgID0ge3UzMl9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKg IMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlw ZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2Nh bGFyX2NvbnN0X3B0cl9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGlu Zm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICog c2l6ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgcnZ2X29wX2luZm8gaThfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzCivCoCA9IHtpOF9v cHMswqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBT dWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAv KiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0cl9zaXplX2FyZ3MgLyog QXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90 eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosCisgKiBzaXplX3QpIGZ1bmN0aW9uIHJlZ2lz dHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpMTZfdl9z Y2FsYXJfY29uc3RfcHRyX3NpemVfb3BzCivCoCA9IHtpMTZfb3BzLMKgIMKgIMKgIC8qIFR5cGVz wqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLwor IMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0 YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2Fs YXJfdHlwZSAqLAorICogc2l6ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXpl X29wcworwqAgPSB7aTMyX29wcyzCoCDCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQ RV92LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfY29uc3Rf cHRyX3NpemVfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1h dGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwKKyAqIHNpemVf dCkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2 dl9vcF9pbmZvIHU4X3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcworwqAgPSB7dThfb3BzLMKg IMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4 wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0 dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3Mg Ki99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBm dW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogc2l6ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRp b24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdTE2X3Zfc2NhbGFy X2NvbnN0X3B0cl9zaXplX29wcworwqAgPSB7dTE2X29wcyzCoCDCoCDCoCAvKiBUeXBlc8KgICov CisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDC oCBzY2FsYXJfY29uc3RfcHRyX3NpemVfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMg b3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5 cGUgKiwKKyAqIHNpemVfdCkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHUzMl92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMK K8KgID0ge3UzMl9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizC oCDCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFT RV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0cl9z aXplX2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24g Zm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosCisgKiBlZXc4X2luZGV4 X3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfb3BfaW5mbyBpOF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzCivCoCA9IHtpOF9v cHMswqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBT dWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAv KiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzIC8q IEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3Jf dHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogZWV3OF9pbmRleF90eXBlKSBmdW5j dGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2lu Zm8gdThfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29wcworwqAgPSB7dThfb3BzLMKgIMKgIMKg IC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8K KyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5 cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsK KworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAo Y29uc3Qgc2NhbGFyX3R5cGUgKiwKKyAqIGVldzhfaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0 cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGkxNl92X3Nj YWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzCivCoCA9IHtpMTZfb3BzLMKgIMKgIMKgIC8qIFR5cGVz wqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLwor IMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBz dGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2Nh bGFyX3R5cGUgKiwKKyAqIGVldzhfaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKg ICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHUxNl92X3NjYWxhcl9jb25z dF9wdHJfaW5kZXhfb3BzCivCoCA9IHt1MTZfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDC oCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5 cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNj YWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3Bl cmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUg KiwKKyAqIGVldzhfaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGkzMl92X3NjYWxhcl9jb25zdF9wdHJfaW5k ZXhfb3BzCivCoCA9IHtpMzJfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9U WVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25z dF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZv cm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwKKyAqIGVl dzhfaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHUzMl92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzCivC oCA9IHt1MzJfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAg wqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf dmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfaW5k ZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBm b3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBlZXc4X2luZGV4X3R5cGUsCisgKiB2ZWN0b3Jf dHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHJ2dl9vcF9pbmZvIGl1OF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzCivCoCA9IHtpdThfb3BzLMKg IMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgLyogU3VmZml4wqAgKi8K KyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8qIFJldHVybiB0eXBl wqAgKi8KKyDCoCDCoCBzY2FsYXJfcHRyX2luZGV4X2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEg c3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwg ZWV3MTZfaW5kZXhfdHlwZSwKKyAqIHZlY3Rvcl90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24u wqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXUxNl92X3NjYWxhcl9w dHJfaW5kZXhfb3BzCivCoCA9IHtpdTE2X29wcyzCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAg T1BfVFlQRV92LMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8g KFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX3B0cl9p bmRleF9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9u IGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGVldzMyX2luZGV4X3R5cGUsCisgKiB2ZWN0 b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJ2dl9vcF9pbmZvIGl1MzJfdl9zY2FsYXJfcHRyX2luZGV4X29wcworwqAgPSB7aXUzMl9v cHMswqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAvKiBTdWZmaXjC oCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJu IHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKwor LyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlw ZSAqLCB2ZWN0b3JfdHlwZSwKKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGlj IENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdThfdl9zY2FsYXJfcHRyX29wcworwqAgPSB7 aXU4X29wcyzCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIC8qIFN1 ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBS ZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX3B0cl9hcmdzIC8qIEFyZ3MgKi99OworCisv KiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBl ICosIHZlY3Rvcl90eXBlKQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1MTZfdl9zY2FsYXJfcHRyX29wcworwqAgPSB7 aXUxNl9vcHMswqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAvKiBT dWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyog UmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9wdHJfYXJncyAvKiBBcmdzICovfTsKKwor LyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlw ZSAqLCB2ZWN0b3JfdHlwZSkKKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGlj IENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdTMyX3Zfc2NhbGFyX3B0cl9vcHMKK8KgID0g e2l1MzJfb3BzLMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgLyog U3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8q IFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfcHRyX2FyZ3MgLyogQXJncyAqL307CisK Ky8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5 cGUgKiwgc2l6ZV90LAorICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAq Lworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdThfdl9zY2FsYXJfcHRyX3Np emVfb3BzCivCoCA9IHtpdThfb3BzLMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBF X3YswqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JB U0Vfdm9pZCksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfcHRyX3NpemVfYXJn cyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9p ZCBmdW5jIChzY2FsYXJfdHlwZSAqLCBzaXplX3QsCisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24g cmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1 MTZfdl9zY2FsYXJfcHRyX3NpemVfb3BzCivCoCA9IHtpdTE2X29wcyzCoCDCoCAvKiBUeXBlc8Kg ICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAg c2NhbGFyX3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQg aW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgc2l6ZV90LAorICogdmVj dG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBj b25zdCBydnZfb3BfaW5mbyBpdTMyX3Zfc2NhbGFyX3B0cl9zaXplX29wcworwqAgPSB7aXUzMl9v cHMswqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAvKiBTdWZmaXjC oCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJu IHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99OworCi8q IEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKHZlY3Rv cl90eXBlKS4KwqAgwqAgU29tZSBpbnMganVzdCBzdXBwb3J0cyBTRVc9MzIsIHN1Y2ggYXMgY3J5 cHRvIHZlY3RvbCBadmtnIGV4dGVuc2lvbi4KwqAgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAg Ki8KQEAgLTI4MTYsNiArMzEyMywxMCBAQCBzdGF0aWMgZnVuY3Rpb25fZ3JvdXBfaW5mbyBmdW5j dGlvbl9ncm91cHNbXSA9IHsKI2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQ UkVEUywgT1BTX0lORk8pIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFwKwqAg eyNOQU1FLCAmYmFzZXM6Ok5BTUUsICZzaGFwZXM6OlNIQVBFLCBQUkVEUywgT1BTX0lORk8sIFJF UVVJUkVEX0VYVEVOU0lPTlN9LAojaW5jbHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0 aW9ucy5kZWYiCisjdW5kZWYgREVGX1JWVl9GVU5DVElPTgorI2RlZmluZSBERUZfUlZWX0ZVTkNU SU9OKE5BTUUsIFNIQVBFLCBQUkVEUywgT1BTX0lORk8pIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIFwKK8KgIHsjTkFNRSwgJmJhc2VzOjpOQU1FLCAmc2hhcGVzOjpTSEFQRSwg UFJFRFMsIE9QU19JTkZPLCBSRVFVSVJFRF9FWFRFTlNJT05TfSwKKyNpbmNsdWRlICJ0aGVhZC12 ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiIKfTsKLyogVGhlIFJWViB0eXBlcywgd2l0aCB0 aGVpciBidWlsdC1pbgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgKaW5k ZXggNTRjODgyNGZmOTIuLmE4ZWUzOWEzY2IyIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLmgKQEAgLTExNCw2ICsxMTQsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQg aW50IENQX1dSSVRFX0NTUiA9IDFVIDw8IDU7CmVudW0gcmVxdWlyZWRfZXh0CnsKwqAgVkVDVE9S X0VYVCwgwqAgLyogVmVjdG9yIGV4dGVuc2lvbiAqLworwqAgWFRIRUFEVkVDVE9SX0VYVCwgwqAg LyogWFRoZWFkVmVjdG9yIGV4dGVuc2lvbiAqLwrCoCBaVkJCX0VYVCzCoCDCoCAvKiBDcnl0byB2 ZWN0b3IgWnZiYiBzdWItZXh0ICovCsKgIFpWQkJfT1JfWlZLQl9FWFQsIC8qIENyeXRvIHZlY3Rv ciBadmJiIG9yIHp2a2Igc3ViLWV4dCAqLwrCoCBaVkJDX0VYVCzCoCDCoCAvKiBDcnlwdG8gdmVj dG9yIFp2YmMgc3ViLWV4dCAqLwpAQCAtMjM0LDYgKzIzNSw4IEBAIHN0cnVjdCBmdW5jdGlvbl9n cm91cF9pbmZvCsKgIMKgIHsKwqAgwqAgwqAgY2FzZSBWRUNUT1JfRVhUOgrCoCDCoCDCoCDCoCBy ZXR1cm4gVEFSR0VUX1ZFQ1RPUjsKK8KgIMKgIMKgIGNhc2UgWFRIRUFEVkVDVE9SX0VYVDoKKyBy ZXR1cm4gVEFSR0VUX1hUSEVBRFZFQ1RPUjsKwqAgwqAgwqAgY2FzZSBaVkJCX0VYVDoKwqAgwqAg wqAgwqAgcmV0dXJuIFRBUkdFVF9aVkJCOwrCoCDCoCDCoCBjYXNlIFpWQkJfT1JfWlZLQl9FWFQ6 CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YgYi9nY2MvY29uZmlnL3Jpc2N2 L3QtcmlzY3YKaW5kZXggMzJkZTZiODUxYzEuLjM4NDk0MzIwZDhiIDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3QtcmlzY3YKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi90LXJpc2N2CkBAIC0x LDYgKzEsNyBAQApSSVNDVl9CVUlMVElOU19IID0gJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMuaCBcCsKgIMKgIMKgICQoc3JjZGlyKS9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLmRlZiBcCsKgIMKgIMKgICQoc3JjZGlyKS9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgXAorIMKgIMKgIMKgICQoc3JjZGly KS9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgXArCoCDC oCDCoCByaXNjdi12ZWN0b3ItdHlwZS1pbmRleGVyLmdlbi5kZWYKcmlzY3YtYnVpbHRpbnMubzog JChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi1idWlsdGlucy5jYyAkKENPTkZJR19IKSBcCmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlucy1mdW5jdGlv bnMuZGVmIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25z LmRlZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjY3ODIwZDRjM2UK LS0tIC9kZXYvbnVsbAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1idWlsdGlu cy1mdW5jdGlvbnMuZGVmCkBAIC0wLDAgKzEsMzkgQEAKKyNpZm5kZWYgREVGX1JWVl9GVU5DVElP TgorI2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQUkVEUywgT1BTX0lORk8p CisjZW5kaWYKKworI2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFhUSEVBRFZFQ1RPUl9FWFQK K0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZsYiwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRz LCBpOF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxoLCB0 aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGkxNl92X3NjYWxhcl9jb25zdF9wdHJfb3Bz KQorREVGX1JWVl9GVU5DVElPTiAodGhfdmx3LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJl ZHMsIGkzMl92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxi dSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1OF92X3NjYWxhcl9jb25zdF9wdHJf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxodSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxs X3ByZWRzLCB1MTZfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRo X3Zsd3UsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgdTMyX3Zfc2NhbGFyX2NvbnN0 X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92c2IsIHRoX2xvYWRzdG9yZV93aWR0aCwg bm9uZV9tX3ByZWRzLCBpdThfdl9zY2FsYXJfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRo X3ZzaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGl1MTZfdl9zY2FsYXJfcHRy X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZzdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25l X21fcHJlZHMsIGl1MzJfdl9zY2FsYXJfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3Zs c2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgaThfdl9zY2FsYXJfY29uc3RfcHRy X3NpemVfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxzaCwgdGhfbG9hZHN0b3JlX3dpZHRo LCBmdWxsX3ByZWRzLCBpMTZfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQorREVGX1JWVl9G VU5DVElPTiAodGhfdmxzdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBpMzJfdl9z Y2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxzYnUsIHRo X2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgdThfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxzaHUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVs bF9wcmVkcywgdTE2X3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJ T04gKHRoX3Zsc3d1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIHUzMl92X3NjYWxh cl9jb25zdF9wdHJfc2l6ZV9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92c3NiLCB0aF9sb2Fk c3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgaXU4X3Zfc2NhbGFyX3B0cl9zaXplX29wcykKK0RF Rl9SVlZfRlVOQ1RJT04gKHRoX3Zzc2gsIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRz LCBpdTE2X3Zfc2NhbGFyX3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3Zzc3cs IHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBpdTMyX3Zfc2NhbGFyX3B0cl9zaXpl X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZseGIsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dp ZHRoLCBmdWxsX3ByZWRzLCBpOF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQorREVGX1JW Vl9GVU5DVElPTiAodGhfdmx4aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJl ZHMsIGkxNl92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAo dGhfdmx4dywgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGkzMl92X3Nj YWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmx4YnUsIHRo X2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1OF92X3NjYWxhcl9jb25zdF9w dHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmx4aHUsIHRoX2luZGV4ZWRfbG9h ZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1MTZfdl9zY2FsYXJfY29uc3RfcHRyX2luZGV4X29w cykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZseHd1LCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCwgZnVsbF9wcmVkcywgdTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9vcHMpCitERUZfUlZW X0ZVTkNUSU9OICh0aF92c3hiLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3By ZWRzLCBpdThfdl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3Zz eGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGl1MTZfdl9zY2Fs YXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZzeHcsIHRoX2luZGV4ZWRf bG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGl1MzJfdl9zY2FsYXJfcHRyX2luZGV4X29w cykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZzdXhiLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCwgbm9uZV9tX3ByZWRzLCBpdThfdl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVO Q1RJT04gKHRoX3ZzdXhoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRz LCBpdTE2X3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92c3V4 dywgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgaXUzMl92X3NjYWxh cl9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmV4dF94X3YsIHRoX2V4dHJh Y3QsIG5vbmVfcHJlZHMsIGl1X3hfc191X29wcykKKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05T CisKKyN1bmRlZiBERUZfUlZWX0ZVTkNUSU9OCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2 L3RoZWFkLXZlY3Rvci5tZCBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kCmluZGV4 IDY5NmI4MTUyNTJkLi4wZjM3MDBkOTI2OSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi90 aGVhZC12ZWN0b3IubWQKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQKQEAg LTEsNyArMSw5NSBAQAooZGVmaW5lX2NfZW51bSAidW5zcGVjIiBbCivCoCBVTlNQRUNfVEhfVkxC CivCoCBVTlNQRUNfVEhfVkxCVQorwqAgVU5TUEVDX1RIX1ZMSAorwqAgVU5TUEVDX1RIX1ZMSFUK K8KgIFVOU1BFQ19USF9WTFcKK8KgIFVOU1BFQ19USF9WTFdVCisKK8KgIFVOU1BFQ19USF9WTFNC CivCoCBVTlNQRUNfVEhfVkxTQlUKK8KgIFVOU1BFQ19USF9WTFNICivCoCBVTlNQRUNfVEhfVkxT SFUKK8KgIFVOU1BFQ19USF9WTFNXCivCoCBVTlNQRUNfVEhfVkxTV1UKKworwqAgVU5TUEVDX1RI X1ZMWEIKK8KgIFVOU1BFQ19USF9WTFhCVQorwqAgVU5TUEVDX1RIX1ZMWEgKK8KgIFVOU1BFQ19U SF9WTFhIVQorwqAgVU5TUEVDX1RIX1ZMWFcKK8KgIFVOU1BFQ19USF9WTFhXVQorCivCoCBVTlNQ RUNfVEhfVlNVWEIKK8KgIFVOU1BFQ19USF9WU1VYSAorwqAgVU5TUEVDX1RIX1ZTVVhXCisKwqAg VU5TUEVDX1RIX1ZXTERTVApdKQorKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZMTUVN X09QIFsKK8KgIFVOU1BFQ19USF9WTEIgVU5TUEVDX1RIX1ZMQlUKK8KgIFVOU1BFQ19USF9WTEgg VU5TUEVDX1RIX1ZMSFUKK8KgIFVOU1BFQ19USF9WTFcgVU5TUEVDX1RIX1ZMV1UKK10pCisKKyhk ZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WTFNNRU1fT1AgWworwqAgVU5TUEVDX1RIX1ZM U0IgVU5TUEVDX1RIX1ZMU0JVCivCoCBVTlNQRUNfVEhfVkxTSCBVTlNQRUNfVEhfVkxTSFUKK8Kg IFVOU1BFQ19USF9WTFNXIFVOU1BFQ19USF9WTFNXVQorXSkKKworKGRlZmluZV9pbnRfaXRlcmF0 b3IgVU5TUEVDX1RIX1ZMWE1FTV9PUCBbCivCoCBVTlNQRUNfVEhfVkxYQiBVTlNQRUNfVEhfVkxY QlUKK8KgIFVOU1BFQ19USF9WTFhIIFVOU1BFQ19USF9WTFhIVQorwqAgVU5TUEVDX1RIX1ZMWFcg VU5TUEVDX1RIX1ZMWFdVCitdKQorCisoZGVmaW5lX2ludF9hdHRyIHZsbWVtX29wX2F0dHIgWwor wqAgKFVOU1BFQ19USF9WTEIgImIiKSAoVU5TUEVDX1RIX1ZMQlUgImJ1IikKK8KgIChVTlNQRUNf VEhfVkxIICJoIikgKFVOU1BFQ19USF9WTEhVICJodSIpCivCoCAoVU5TUEVDX1RIX1ZMVyAidyIp IChVTlNQRUNfVEhfVkxXVSAid3UiKQorwqAgKFVOU1BFQ19USF9WTFNCICJiIikgKFVOU1BFQ19U SF9WTFNCVSAiYnUiKQorwqAgKFVOU1BFQ19USF9WTFNIICJoIikgKFVOU1BFQ19USF9WTFNIVSAi aHUiKQorwqAgKFVOU1BFQ19USF9WTFNXICJ3IikgKFVOU1BFQ19USF9WTFNXVSAid3UiKQorwqAg KFVOU1BFQ19USF9WTFhCICJiIikgKFVOU1BFQ19USF9WTFhCVSAiYnUiKQorwqAgKFVOU1BFQ19U SF9WTFhIICJoIikgKFVOU1BFQ19USF9WTFhIVSAiaHUiKQorwqAgKFVOU1BFQ19USF9WTFhXICJ3 IikgKFVOU1BFQ19USF9WTFhXVSAid3UiKQorwqAgKFVOU1BFQ19USF9WU1VYQiAiYiIpCivCoCAo VU5TUEVDX1RIX1ZTVVhIICJoIikKK8KgIChVTlNQRUNfVEhfVlNVWFcgInciKQorXSkKKworKGRl ZmluZV9pbnRfYXR0ciB2bG1lbV9vcmRlcl9hdHRyIFsKK8KgIChVTlNQRUNfVEhfVkxYQiAiIikK K8KgIChVTlNQRUNfVEhfVkxYSCAiIikKK8KgIChVTlNQRUNfVEhfVkxYVyAiIikKK8KgIChVTlNQ RUNfVEhfVlNVWEIgInUiKQorwqAgKFVOU1BFQ19USF9WU1VYSCAidSIpCivCoCAoVU5TUEVDX1RI X1ZTVVhXICJ1IikKK10pCisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WU01FTV9P UCBbCivCoCBVTlNQRUNfVEhfVkxCCivCoCBVTlNQRUNfVEhfVkxICivCoCBVTlNQRUNfVEhfVkxX CitdKQorCisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVlNTTUVNX09QIFsKK8KgIFVO U1BFQ19USF9WTFNCCivCoCBVTlNQRUNfVEhfVkxTSAorwqAgVU5TUEVDX1RIX1ZMU1cKK10pCisK KyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19USF9WU1hNRU1fT1AgWworwqAgVU5TUEVDX1RI X1ZMWEIKK8KgIFVOU1BFQ19USF9WTFhICivCoCBVTlNQRUNfVEhfVkxYVworwqAgVU5TUEVDX1RI X1ZTVVhCCivCoCBVTlNQRUNfVEhfVlNVWEgKK8KgIFVOU1BFQ19USF9WU1VYVworXSkKKwooZGVm aW5lX21vZGVfaXRlcmF0b3IgVl9WTFNfVlQgW1YgVkxTIFZUXSkKKGRlZmluZV9tb2RlX2l0ZXJh dG9yIFZfVkJfVkxTX1ZUIFtWIFZCIFZMUyBWVF0pCkBAIC0xMDAsMyArMTg4LDE2OCBAQArCoCB9 CsKgIFsoc2V0X2F0dHIgInR5cGUiICJ2bGRtLHZzdG0sdm1hbHUsdm1hbHUsdm1hbHUiKQrCoCDC oCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCisKKyhkZWZpbmVfZXhwYW5kICJAcHJlZF9t b3Zfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpW X1ZMUyAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIpCivCoCDCoCAoaWZfdGhlbl9lbHNlOlZfVkxT CivCoCDCoCDCoCAodW5zcGVjOjxWTT4KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3Jf bWFza19vcGVyYW5kIikKK8KgIChtYXRjaF9vcGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFu ZCIpCivCoCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9pbnRfb3BlcmFuZCIpCivCoCAobWF0Y2hf b3BlcmFuZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIpCivCoCAobWF0Y2hfb3BlcmFuZCA3ICJjb25z dF9pbnRfb3BlcmFuZCIpCivCoCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIChyZWc6U0kgVlRZUEVf UkVHTlVNKV0gVU5TUEVDX1RIX1ZMTUVNX09QKQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQ6Vl9W TFMgMyAidmVjdG9yX21vdmVfb3BlcmFuZCIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZDpWX1ZM UyAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIpKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIK K8KgIHt9KQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcHJlZF9tb3Zfd2lkdGg8dmxtZW1f b3BfYXR0cj48bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAwICJub25pbW1l ZGlhdGVfb3BlcmFuZCIgwqAgwqAgIj12cizCoCDCoCB2cizCoCDCoCB2ZCwgwqAgwqAgbSzCoCDC oCB2cizCoCDCoCB2ciIpCivCoCDCoCAoaWZfdGhlbl9lbHNlOlZfVkxTCivCoCDCoCDCoCAodW5z cGVjOjxWTT4KKyBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIsKg IMKgICJ2bVdjMSwgwqAgV2MxLMKgIMKgIHZtLCB2bVdjMSwgwqAgV2MxLCDCoCBXYzEiKQorwqAg KG1hdGNoX29wZXJhbmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiDCoCDCoCDCoCAiIMKgIHJL LMKgIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJLIikKK8KgIChtYXRj aF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIsKgIMKgICLCoCDCoCBpLCDCoCDCoCBpLCDC oCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8KgIChtYXRjaF9vcGVyYW5kIDYg ImNvbnN0X2ludF9vcGVyYW5kIsKgIMKgICLCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDC oCBpLCDCoCDCoCBpLCDCoCDCoCBpIikKK8KgIChtYXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9v cGVyYW5kIsKgIMKgICLCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBp LCDCoCDCoCBpIikKK8KgIChyZWc6U0kgVkxfUkVHTlVNKQorwqAgKHJlZzpTSSBWVFlQRV9SRUdO VU0pXSBVTlNQRUNfVEhfVkxNRU1fT1ApCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAz ICJyZWdfb3JfbWVtX29wZXJhbmQiIMKgIMKgIMKgICLCoCDCoCBtLCDCoCDCoCBtLCDCoCDCoCBt LMKgIMKgIHZyLMKgIMKgIHZyLMKgIMKgIHZyIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kOlZf VkxTIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIiDCoCDCoCAiwqAgwqAgMCzCoCDCoCB2dSzCoCDC oCB2dSzCoCDCoCB2dSzCoCDCoCB2dSwgwqAgwqAgMCIpKSldCivCoCAiKFRBUkdFVF9YVEhFQURW RUNUT1IKK8KgIMKgICYmIChyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgPE1PREU+bW9k ZSkKKyB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1szXSwgPE1PREU+bW9kZSkpKSIKK8Kg ICJACisgwqAgdmw8dmxtZW1fb3BfYXR0cj4udlx0JTAsJTMlcDEKKyDCoCB2bDx2bG1lbV9vcF9h dHRyPi52XHQlMCwlMworIMKgIHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzLCUxLnQKKyDCoCB2 czx2bG1lbV9vcF9hdHRyPi52XHQlMywlMCVwMQorIMKgIHZtdi52LnZcdCUwLCUzCisgwqAgdm12 LnYudlx0JTAsJTMiCivCoCAiJiYgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RF Pm1vZGUpCisgwqAgJiYgcmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbM10sIDxNT0RFPm1vZGUp CisgwqAgJiYgc2F0aXNmaWVzX2NvbnN0cmFpbnRfdnUgKG9wZXJhbmRzWzJdKQorIMKgICYmIElO VFZBTCAob3BlcmFuZHNbN10pID09IHJpc2N2X3ZlY3Rvcjo6VkxNQVgiCivCoCBbKHNldCAobWF0 Y2hfZHVwIDApIChtYXRjaF9kdXAgMykpXQorwqAgIiIKK8KgIFsoc2V0X2F0dHIgInR5cGUiICJ2 bGRlLHZsZGUsdmxkZSx2c3RlLHZpbW92LHZpbW92IikKKyDCoCAoc2V0X2F0dHIgIm1vZGUiICI8 TU9ERT4iKV0pCisKKyhkZWZpbmVfaW5zbiAiQHByZWRfc3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0 cj48bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJtZW1vcnlfb3BlcmFuZCIg wqAgIittIikKKyAoaWZfdGhlbl9lbHNlOlZJCisgwqAgKHVuc3BlYzo8Vk0+CisgwqAgwqAgWyht YXRjaF9vcGVyYW5kOjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikKK8KgIMKg IMKgIChtYXRjaF9vcGVyYW5kIDMgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCLCoCDCoCAiIMKgIHJL IikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDQgImNvbnN0X2ludF9vcGVyYW5kIiAiwqAgwqAg aSIpCivCoCDCoCDCoCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIMKgIMKgIChyZWc6U0kgVlRZUEVf UkVHTlVNKV0gVU5TUEVDX1RIX1ZTTUVNX09QKQorIMKgIChtYXRjaF9vcGVyYW5kOlZJIDIgInJl Z2lzdGVyX29wZXJhbmQiwqAgIsKgIMKgIHZyIikKKyDCoCAobWF0Y2hfZHVwIDApKSldCivCoCAi VEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2czx2bG1lbV9vcF9hdHRyPi52XHQlMiwlMCVwMSIK K8KgIFsoc2V0X2F0dHIgInR5cGUiICJ2c3RlIikKKyDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9E RT4iKQorIMKgIChzZXQgKGF0dHIgImF2bF90eXBlX2lkeCIpIChjb25zdF9pbnQgNCkpCisgwqAg KHNldF9hdHRyICJ2bF9vcF9pZHgiICIzIildKQorCisoZGVmaW5lX2luc24gIkBwcmVkX3N0cmlk ZWRfbG9hZF93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlZJIDAgInJlZ2lzdGVyX29wZXJhbmQiIMKgIMKgIMKgICI9dnIswqAgwqAgdnIswqAgwqAg dmQiKQorIChpZl90aGVuX2Vsc2U6VkkKKyDCoCAodW5zcGVjOjxWTT4KKyDCoCDCoCBbKG1hdGNo X29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIiAidm1XYzEsIMKgIFdjMSzCoCDC oCB2bSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA1ICJ2ZWN0b3JfbGVuZ3RoX29wZXJhbmQi wqAgwqAgIiDCoCBySyzCoCDCoCBySyzCoCDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFu ZCA2ICJjb25zdF9pbnRfb3BlcmFuZCIgIsKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGkiKQorwqAg wqAgwqAgKG1hdGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiICLCoCDCoCBpLCDCoCDC oCBpLCDCoCDCoCBpIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDggImNvbnN0X2ludF9vcGVy YW5kIiAiwqAgwqAgaSwgwqAgwqAgaSwgwqAgwqAgaSIpCivCoCDCoCDCoCAocmVnOlNJIFZMX1JF R05VTSkKK8KgIMKgIMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMU01FTV9P UCkKKyDCoCAodW5zcGVjOlZJCisgwqAgwqAgWyhtYXRjaF9vcGVyYW5kOlZJIDMgIm1lbW9yeV9v cGVyYW5kIsKgICLCoCDCoCBtLCDCoCDCoCBtLCDCoCDCoCBtIikKK8KgIMKgIMKgIChtYXRjaF9v cGVyYW5kIDQgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiIMKgICIgwqAgckoswqAgwqAgckoswqAg wqAgckoiKV0gVU5TUEVDX1RIX1ZMU01FTV9PUCkKKyDCoCAobWF0Y2hfb3BlcmFuZDpWSSAyICJ2 ZWN0b3JfbWVyZ2Vfb3BlcmFuZCLCoCDCoCDCoCAiwqAgwqAgMCzCoCDCoCB2dSzCoCDCoCB2dSIp KSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2bHM8dmxtZW1fb3BfYXR0cj4udlx0 JTAsJTMsJXo0JXAxIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZsZHMiKQorIMKgIChzZXRfYXR0 ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9pbnNuICJAcHJlZF9zdHJpZGVkX3N0b3Jl X3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorwqAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vkkg MCAibWVtb3J5X29wZXJhbmQiIMKgICIrbSIpCisgKGlmX3RoZW5fZWxzZTpWSQorIMKgICh1bnNw ZWM6PFZNPgorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJh bmQiICJ2bVdjMSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29w ZXJhbmQiwqAgwqAgIiDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9p bnRfb3BlcmFuZCIgIsKgIMKgIGkiKQorwqAgwqAgwqAgKHJlZzpTSSBWTF9SRUdOVU0pCivCoCDC oCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU1NNRU1fT1ApCisgwqAgKHVu c3BlYzpWSQorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZCAyICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5k IiDCoCAiIMKgIHJKIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kOlZJIDMgInJlZ2lzdGVyX29w ZXJhbmQiIMKgIMKgIMKgICIgwqAgdnIiKV0gVU5TUEVDX1RIX1ZTU01FTV9PUCkKKyDCoCAobWF0 Y2hfZHVwIDApKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2c3M8dmxtZW1fb3Bf YXR0cj4udlx0JTMsJTAsJXoyJXAxIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZzdHMiKQorIMKg IChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpCisgwqAgKHNldCAoYXR0ciAiYXZsX3R5cGVfaWR4 IikgKGNvbnN0X2ludCA1KSldKQorCisoZGVmaW5lX2luc24gIkBwcmVkX2luZGV4ZWRfbG9hZF93 aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJIDAg InJlZ2lzdGVyX29wZXJhbmQiwqAgwqAgwqAgIj12ZCwgdnIsdmQsIHZyIikKKyAoaWZfdGhlbl9l bHNlOlZJCisgwqAgKHVuc3BlYzo8Vk0+CisgwqAgwqAgWyhtYXRjaF9vcGVyYW5kOjxWTT4gMSAi dmVjdG9yX21hc2tfb3BlcmFuZCLCoCAiIHZtLFdjMSx2bSxXYzEiKQorwqAgwqAgwqAgKG1hdGNo X29wZXJhbmQgNSAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIiDCoCDCoCAiIHJLLCBySyxySywgcksi KQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiwqAgIsKgIGks wqAgaSwgaSzCoCBpIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9vcGVy YW5kIsKgICLCoCBpLMKgIGksIGkswqAgaSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA4ICJj b25zdF9pbnRfb3BlcmFuZCLCoCAiwqAgaSzCoCBpLCBpLMKgIGkiKQorwqAgwqAgwqAgKHJlZzpT SSBWTF9SRUdOVU0pCivCoCDCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9W TFhNRU1fT1ApCisgwqAgKHVuc3BlYzpWSQorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZCAzICJwbW9k ZV9yZWdfb3JfMF9vcGVyYW5kIsKgIMKgICIgckosIHJKLHJKLCBySiIpCivCoCDCoCDCoCAobWVt OkJMSyAoc2NyYXRjaCkpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZDpWSSA0ICJyZWdpc3Rlcl9v cGVyYW5kIiAiIHZyLCB2cix2ciwgdnIiKV0gVU5TUEVDX1RIX1ZMWE1FTV9PUCkKKyDCoCAobWF0 Y2hfb3BlcmFuZDpWSSAyICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCIgwqAgwqAgwqAgIiB2dSwgdnUs IDAswqAgMCIpKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2bHg8dmxtZW1fb3Bf YXR0cj4udlx0JTAsKCV6MyksJTQlcDEiCivCoCBbKHNldF9hdHRyICJ0eXBlIiAidmxkdXgiKQor IMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9pbnNuICJAcHJlZF9p bmRleGVkXzx2bG1lbV9vcmRlcl9hdHRyPnN0b3JlX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+ IgorwqAgWyhzZXQgKG1lbTpCTEsgKHNjcmF0Y2gpKQorICh1bnNwZWM6QkxLCisgwqAgWyh1bnNw ZWM6PFZNPgorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDAgInZlY3Rvcl9tYXNrX29wZXJh bmQiICJ2bVdjMSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3RoX29w ZXJhbmQiwqAgwqAgIiDCoCBySyIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA1ICJjb25zdF9p bnRfb3BlcmFuZCIgIsKgIMKgIGkiKQorwqAgwqAgwqAgKHJlZzpTSSBWTF9SRUdOVU0pCivCoCDC oCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WU1hNRU1fT1ApCivCoCDCoCAo bWF0Y2hfb3BlcmFuZCAxICJwbW9kZV9yZWdfb3JfMF9vcGVyYW5kIsKgIMKgIMKgICLCoCBySiIp CivCoCDCoCAobWF0Y2hfb3BlcmFuZDpWSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiwqAgdnIiKQor wqAgwqAgKG1hdGNoX29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFuZCLCoCAiwqAgdnIiKV0g VU5TUEVDX1RIX1ZTWE1FTV9PUCkpXQorwqAgIlRBUkdFVF9YVEhFQURWRUNUT1IiCivCoCAidnM8 dmxtZW1fb3JkZXJfYXR0cj54PHZsbWVtX29wX2F0dHI+LnZcdCUzLCglejEpLCUyJXAwIgorwqAg WyhzZXRfYXR0ciAidHlwZSIgInZzdHV4IikKKyDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4i KV0pCisKKyhkZWZpbmVfZXhwYW5kICJAcHJlZF90aF9leHRyYWN0PG1vZGU+IgorwqAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6PFZFTD4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisgKHVuc3BlYzo8VkVM PgorIMKgIFsodmVjX3NlbGVjdDo8VkVMPgorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQ6Vl9WTFNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiKQorwqAgwqAgwqAgKHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFu ZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpCivCoCDCoCAocmVnOlNJIFZUWVBFX1JF R05VTSldIFVOU1BFQ19WUFJFRElDQVRFKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK3t9 KQorCisoZGVmaW5lX2luc24gIipwcmVkX3RoX2V4dHJhY3Q8bW9kZT4iCivCoCBbKHNldCAobWF0 Y2hfb3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rlcl9vcGVyYW5kIiDCoCAiPXIiKQorwqAgKHVuc3Bl Yzo8VkVMPgorwqAgwqAgWyh2ZWNfc2VsZWN0OjxWRUw+CisgwqAgwqAgwqAgKG1hdGNoX29wZXJh bmQ6Vl9WTFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ2ciIpCisgwqAgwqAgwqAgKHBhcmFsbGVs IFsobWF0Y2hfb3BlcmFuZDpESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpXSkpCisgwqAgwqAg KHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVlBSRURJQ0FURSkpXQorwqAgIlRBUkdFVF9Y VEhFQURWRUNUT1IiCivCoCAidmV4dC54LnZcdCUwLCUxLCUyIgorwqAgWyhzZXRfYXR0ciAidHlw ZSIgInZpbW92dngiKQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12 c2IuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zs Yi12c2IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGUxOTJiYmYw MjUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2 L3h0aGVhZHZlY3Rvci92bGItdnNiLmMKQEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1kbyBjb21w aWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFi aT1pbHAzMmQgLU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVz ICIqKiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiCisKKy8qCisqKiBmMToK KyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hCisqKiB0aC52bGJcLnZcdHZbMC05 XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQor KiogdGgudmFkZFwudnZcdHZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rCisqKiB0aC52YWRk XC52dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsKKyoqIHRoLnZzYlwudlx0dlswLTld KywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpv dXQpCit7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xIChpbiwg NCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJfdl9pMzJtMV90dSAodiwg aW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92dl9pMzJtMSAodjIs IHYyLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTFfdHUg KHYzLCB2MiwgdjIsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2Jfdl9pMzJtMSAob3V0LCB2NCwg NCk7Cit9CisKKy8qCisqKiBmMjoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1m NCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRp dmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hCisqKiB0aC52bGIudlx0dlswLTldKywwXChbYS14MC05 XStcKSx2MC50CisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsK KyoqIHRoLnZhZGRcLnZ2XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyp2WzAtOV0rLFxzKnYw LnQKKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lk IGYyICh2b2lkICogaW4sIHZvaWQgKm91dCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2 Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKg IHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZp bnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xX20gKG1hc2ssIGluLCA0KTsKK8Kg IMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTEgKHYyLCB2MiwgNCk7CivC oCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xX20gKG1hc2ssIHYzLCB2 MywgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzYl92X2kzMm0xIChvdXQsIHY0LCA0KTsKK30KKwor LyoKKyoqIGYzOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisq KiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlcdHplcm8s NCxlMzIsbTEsdHUsbXUKKyoqIHRoLnZsYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiog dGgudmxiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwudnZcdHZb MC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rCisqKiB0aC52YWRkXC52dlx0dlsxLTldWzAtOV0/ LFxzKnZbMC05XSssXHMqdlswLTldKyxccyp2MC50CisqKiB0aC52c2Iudlx0dlswLTldKywwXChb YS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQpCit7 CivCoCDCoCB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xh dGlsZSAoIiI6OjoibWVtb3J5Iik7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zs Yl92X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGJf dl9pMzJtMV90dW11IChtYXNrLCB2LCBpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19y aXNjdl92YWRkX3Z2X2kzMm0xICh2MiwgdjIsIDQpOworwqAgwqAgdmludDMybTFfdCB2NCA9IF9f cmlzY3ZfdmFkZF92dl9pMzJtMV90dW11IChtYXNrLCB2MywgdjIsIHYyLCA0KTsKK8KgIMKgIF9f cmlzY3ZfdGhfdnNiX3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYnUtdnNiLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE1MzhhZmVjNjhlCi0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxidS12c2IuYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAq LworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMy ZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAi IiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCIKKworLyoKKyoqIGYxOgorKiogdGgu dnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwo W2EteDAtOV0rXCkKKyoqIHRoLnZsYnVcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRo LnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsw LTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnNiXC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3Qg eCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4s IDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV90dSAo diwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEg KHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMy bTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNiX3ZfdTMybTEgKG91 dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVy byxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0 aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmxidS52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYw LnQKKyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lk IGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJf dCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1v cnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4s IDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV9tICht YXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJt MSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNiX3ZfdTMybTEg KG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSss emVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmxidVwudlx0dlswLTld KywwXChbYS14MC05XStcKQorKiogdGgudmxidS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYw LnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRk XC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzYi52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2b2lkICogaW4s IHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9v bDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1 aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVp bnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYnVfdl91MzJtMV90dW11IChtYXNrLCB2LCBpbiwg NCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0x NiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dW11 IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzYl92X3UzMm0xIChv dXQsIHY0LCA0KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNo LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJmNDkyNGExZDc2Ci0t LSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxoLXZzaC5jCkBAIC0wLDAgKzEsNjggQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9 ICovCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxw MzJkIC1PMyIgfSAqLworLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioi ICIiIH0gfSAqLworI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIgorCisvKgorKiogZjE6CisqKiB0 aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBc KFthLXgwLTldK1wpCisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRo LnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsw LTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnNoXC52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4 KQoreworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGhfdl9pMzJtMSAoaW4sIDQp OworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTFfdHUgKHYsIGlu LCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCAt MTYsIDQpOworwqAgwqAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dSAo djMsIHYyLCAtMTYsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2hfdl9pMzJtMSAob3V0LCB2NCwg NCk7Cit9CisKKy8qCisqKiBmMjoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1m NCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRp dmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hCisqKiB0aC52bGgudlx0dlswLTldKywwXChbYS14MC05 XStcKSx2MC50CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiog dGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50CisqKiB0 aC52c2gudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMiAodm9p ZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0g Kih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8Kg IMKgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTEgKGluLCA0KTsKK8KgIMKg IHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsaF92X2kzMm0xX20gKG1hc2ssIGluLCA0KTsK K8KgIMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCAtMTYsIDQp OworwqAgwqAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV9tIChtYXNrLCB2 MywgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNoX3ZfaTMybTEgKG91dCwgdjQsIDQpOwor fQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEs bWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0 emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmxoXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp CisqKiB0aC52bGgudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52 aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTld Pyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50CisqKiB0aC52c2gudlx0dlswLTldKywwXChbYS14 MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMy X3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAg YXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZpbnQzMm0xX3QgdiA9IF9fcmlz Y3ZfdGhfdmxoX3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2 X3RoX3ZsaF92X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3Qg djMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdmludDMybTFf dCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7 CivCoCDCoCBfX3Jpc2N2X3RoX3ZzaF92X2kzMm0xIChvdXQsIHY0LCA0KTsKK30KXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uOGM0NTE4NDUxNzUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1LXZzaC5jCkBA IC0wLDAgKzEsNjggQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMg Ii1tYXJjaD1ydjMyZ2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLworLyogeyBk Zy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLworI2luY2x1ZGUg InJpc2N2X3ZlY3Rvci5oIgorCisvKgorKiogZjE6CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUz MixtMSx0dSxtYQorKiogdGgudmxodVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgu dmxodVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmFkZFwudmlcdHZbMC05XSss XHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMq LTE2CisqKiB0aC52c2hcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3Zv aWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQoreworwqAgwqAgdnVpbnQz Mm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xIChpbiwgNCk7CivCoCDCoCB2dWludDMy bTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xX3R1ICh2LCBpbiwgNCk7CivCoCDCoCB2 dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDC oCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dSAodjMsIHYyLCAtMTYs IDQpOworwqAgwqAgX19yaXNjdl90aF92c2hfdl91MzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8q CisqKiBmMjoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiog dGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQs ZTMyLG0xLHRhLG1hCisqKiB0aC52bGh1LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAor KiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZp XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudAorKiogdGgudnNoLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9p ZCAqb3V0LCB1aW50MzJfdCB4KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJf dCopaW47CivCoCDCoCBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdnVpbnQz Mm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xIChpbiwgNCk7CivCoCDCoCB2dWludDMy bTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxodV92X3UzMm0xX20gKG1hc2ssIGluLCA0KTsKK8KgIMKg IHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsKK8Kg IMKgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX20gKG1hc2ssIHYzLCAt MTYsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2hfdl91MzJtMSAob3V0LCB2NCwgNCk7Cit9CisK Ky8qCisqKiBmMzoKKyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQor KiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJv LDQsZTMyLG0xLHR1LG11CisqKiB0aC52bGh1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiB0aC52bGh1LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwudmlc dHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8s XHMqdlswLTldKyxccyotMTYsXHMqdjAudAorKiogdGgudnNoLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJf dCB4KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBh c20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdnVpbnQzMm0xX3QgdiA9IF9fcmlz Y3ZfdGhfdmxodV92X3UzMm0xIChpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MiA9IF9fcmlz Y3ZfdGhfdmxodV92X3UzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsKK8KgIMKgIHZ1aW50MzJt MV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsKK8KgIMKgIHZ1aW50 MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2 LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNoX3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGY1YjA5Njg0YTUKLS0tIC9kZXYvbnVsbAorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHctdnN3LmMK QEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9u cyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisvKiB7 IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5jbHVk ZSAicmlzY3ZfdmVjdG9yLmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQs ZTMyLG0xLHR1LG1hCisqKiB0aC52bHdcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRo LnZsd1wudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmFkZFwudnhcdHZbMC05XSss XHMqdlswLTldKyxccypbYS14MC05XSsKKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05 XSssXHMqW2EteDAtOV0rCisqKiB0aC52c3dcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoq IHJldAorKi8KK3ZvaWQgZjEgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CivC oCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7CivCoCDC oCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV90dSAodiwgaW4sIDQpOwor wqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIHgsIDQpOwor wqAgwqAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMV90dSAodjMsIHYyLCB4 LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQorCisv KgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoq IHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0 LGUzMixtMSx0YSxtYQorKiogdGgudmx3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAor KiogdGgudmFkZFwudnhcdHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsKKyoqIHRoLnZh ZGRcLnZ4XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccypbYS14MC05XSssXHMqdjAudAorKiog dGgudnN3LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjIgKHZv aWQgKiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CivCoCDCoCB2Ym9vbDMyX3QgbWFzayA9 ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CivC oCDCoCB2aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xIChpbiwgNCk7CivCoCDC oCB2aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHdfdl9pMzJtMV9tIChtYXNrLCBpbiwgNCk7 CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xICh2MiwgeCwgNCk7 CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX20gKG1hc2ssIHYz LCB4LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQor CisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEK KyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVy byw0LGUzMixtMSx0dSxtdQorKiogdGgudmx3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiB0aC52bHcudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52eFx0 dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTldKworKiogdGgudmFkZFwudnhcdHZbMS05XVsw LTldPyxccyp2WzAtOV0rLFxzKlthLXgwLTldKyxccyp2MC50CisqKiB0aC52c3cudlx0dlswLTld KywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpv dXQsIGludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWlu OworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZpbnQzMm0xX3Qg diA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjIg PSBfX3Jpc2N2X3RoX3Zsd192X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsKK8KgIMKgIHZp bnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTEgKHYyLCB4LCA0KTsKK8KgIMKgIHZp bnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfaTMybTFfdHVtdSAobWFzaywgdjMsIHYyLCB4 LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3X3ZfaTMybTEgKG91dCwgdjQsIDQpOworfQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bHd1LXZzdy5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYWE3NWJlMDIzZAotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3 LmMKQEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0 aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisv KiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5j bHVkZSAicmlzY3ZfdmVjdG9yLmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJv LDQsZTMyLG0xLHR1LG1hCisqKiB0aC52bHd1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisq KiB0aC52bHd1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52YWRkXC52aVx0dlsw LTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTld KyxccyotMTYKKyoqIHRoLnZzd1wudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0Cisq Lwordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpCit7CivCoCDCoCB2 dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTEgKGluLCA0KTsKK8KgIMKgIHZ1 aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTFfdHUgKHYsIGluLCA0KTsKK8Kg IMKgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsK K8KgIMKgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1ICh2MywgdjIs IC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3Zzd192X3UzMm0xIChvdXQsIHY0LCA0KTsKK30K KworLyoKKyoqIGYyOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1h CisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlcdHpl cm8sNCxlMzIsbTEsdGEsbWEKKyoqIHRoLnZsd3Uudlx0dlswLTldKywwXChbYS14MC05XStcKSx2 MC50CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudmFk ZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50CisqKiB0aC52c3cu dlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMiAodm9pZCAqIGlu LCB2b2lkICpvdXQsIHVpbnQzMl90IHgpCit7CivCoCDCoCB2Ym9vbDMyX3QgbWFzayA9ICoodmJv b2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CivCoCDCoCB2 dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTEgKGluLCA0KTsKK8KgIMKgIHZ1 aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bHd1X3ZfdTMybTFfbSAobWFzaywgaW4sIDQpOwor wqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQp OworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfbSAobWFzaywg djMsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3Zzd192X3UzMm0xIChvdXQsIHY0LCA0KTsK K30KKworLyoKKyoqIGYzOgorKiogdGgudnNldHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRh LG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlc dHplcm8sNCxlMzIsbTEsdHUsbXUKKyoqIHRoLnZsd3VcLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkKKyoqIHRoLnZsd3Uudlx0dlswLTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRk XC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudmFkZFwudmlcdHZbMS05XVsw LTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50CisqKiB0aC52c3cudlx0dlswLTldKywwXChb YS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVp bnQzMl90IHgpCit7CivCoCDCoCB2Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKK8Kg IMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CivCoCDCoCB2dWludDMybTFfdCB2ID0g X19yaXNjdl90aF92bHd1X3ZfdTMybTEgKGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYyID0g X19yaXNjdl90aF92bHd1X3ZfdTMybTFfdHVtdSAobWFzaywgdiwgaW4sIDQpOworwqAgwqAgdnVp bnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAg dnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTFfdHVtdSAobWFzaywgdjMsIHYy LCAtMTYsIDQpOworwqAgwqAgX19yaXNjdl90aF92c3dfdl91MzJtMSAob3V0LCB2NCwgNCk7Cit9 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQotLQoyLjE3LjEKIAogCiAKIAogCiA=