From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS3215 2.6.0.0/16 X-Spam-Status: No, score=-3.4 required=3.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI,PYZOR_CHECK, RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS,UNPARSEABLE_RELAY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id D0A951F910 for ; Mon, 31 Oct 2022 14:11:37 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="jWsbOCmg"; dkim-atps=neutral Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 51643385E02C for ; Mon, 31 Oct 2022 14:11:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 51643385E02C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1667225494; bh=7JPSjYQ3K7m9BNDZ3Cr3dzD1KBWGMXGPZw99X+3ms7Y=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=jWsbOCmgozKookGYbSv9IPHPwgmop+dh9e+Uax6dOJCtSsT4oF600AS6nZK+NBRUD Vd57XVAMKDZN/b43qQ6mQ4ENzsmLTpo2NVXCmU9BdG/zxjt3gX0RsYlfZ66UW3kiz0 LhWjOiPc1UiUgtrjufSUWRIxAwNCsrdLPZW7e/Xk= Received: from mail-yb1-xb36.google.com (mail-yb1-xb36.google.com [IPv6:2607:f8b0:4864:20::b36]) by sourceware.org (Postfix) with ESMTPS id 83FB63854175 for ; Mon, 31 Oct 2022 14:11:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 83FB63854175 Received: by mail-yb1-xb36.google.com with SMTP id g127so5284757ybg.8 for ; Mon, 31 Oct 2022 07:11:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:mime-version:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Nl4S+rcmfzG3pR3ZAADsDsqbJRNvQIFcSBGSv/Gv2x0=; b=z9/inHI38IqcM+TMdM4tx1WOBJNbBDLJ30DKFNvq6s6Szr1mf782HdOHBSWX84Y+/Z AHEADECQvaSjuIvFjRFDPenmb2IGLfaf1brhbiBbixWm7ATe35SSCj3iD3GZgRZZYVzu KXOLLF53D6lowgsc5Ft+AfEUhoWY1cJI78VYUubPcee2XMf47nKAl0eRAPk7kr8r3bPf Vse0Hf9JTve0Iae3levftg9nvwKZDZXeA9fB1DA62kAIivYzj76oEDT7Y1O9kjb8PeNj mtYqlpt2YIrAbqTSvFghn2qCjGCZoWlzYhlXyHODGjl5oeViM2RadYHzrhcNdfhZQdq0 Q7ew== X-Gm-Message-State: ACrzQf0938na240YC8hABx0bQNLzOxVK8B2Tt3xYs6DGUjR3ss87WAQZ e3Tv1WTzPkePGn+dyjWLPdynaHL1nqMtnWfju1Pq8r6Psdc= X-Google-Smtp-Source: AMsMyM6xBdLIMBEc3hENxkmag4lq3T/cyColguS1LPYzfwoT8AlwyF22a57OKVGsuxPVDQNxC/oLH4tBYpMMQS4L3uw= X-Received: by 2002:a25:afc2:0:b0:6cd:3a43:a395 with SMTP id d2-20020a25afc2000000b006cd3a43a395mr60277ybj.220.1667225471654; Mon, 31 Oct 2022 07:11:11 -0700 (PDT) Received: from 349319672217 named unknown by gmailapi.google.com with HTTPREST; Mon, 31 Oct 2022 07:11:10 -0700 Mime-Version: 1.0 Date: Mon, 31 Oct 2022 07:11:10 -0700 Message-ID: Subject: [PATCH] risc-v: Add support on mem* functions with V & B extension To: "libc-alpha@sourceware.org" Content-Type: multipart/mixed; boundary="000000000000ffdeab05ec552db0" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: =?utf-8?b?5pyx5aicIHZpYSBMaWJjLWFscGhh?= Reply-To: =?UTF-8?B?5pyx5aic?= Errors-To: libc-alpha-bounces+e=80x24.org@sourceware.org Sender: "Libc-alpha" --000000000000ffdeab05ec552db0 Content-Type: text/plain; charset="UTF-8" --000000000000ffdeab05ec552db0 Content-Type: application/octet-stream; name="0001-risc-v-Add-support-on-mem-functions-with-V-B-extensi.patch" Content-Disposition: attachment; filename="0001-risc-v-Add-support-on-mem-functions-with-V-B-extensi.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: 31061deffa794947_0.1 RnJvbSAzZTI1NDJjY2RiNWVlYjEyY2MwYjY1YTdkMWE4ZTdkMmY3NGUyNjI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUU2PTlDPUIxPUU1PUE4PTlDPz0gPHpodW5h LjEwMjRAYnl0ZWRhbmNlLmNvbT4KRGF0ZTogTW9uLCAzMSBPY3QgMjAyMiAyMTo1Nzo0OSArMDgw MApTdWJqZWN0OiBbUEFUQ0hdIHJpc2MtdjogQWRkIHN1cHBvcnQgb24gbWVtKiBmdW5jdGlvbnMg d2l0aCBWICYgQiBleHRlbnNpb24KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKVG86 IGxpYmMtYWxwaGFAc291cmNld2FyZS5vcmcKCkhpLiBJIHdyb3RlIG1lbSogZnVuY3Rpb25zLCB0 YWtpbmcgYWR2YW50YWdlIG9mIFJJU0MtViBWICYgQiBleHRlbnNpb25zLiBTSU1EIG1lY2hhbmlz bSBtb3N0bHkgbGVhcm5lZCBmcm9tIHg4Nl82NCAmIGFhcmNoNjQgU0lNRCBpbXBsZW1lbnRhdGlv bi4gSG9wZSBJIGdvdCBpdCByaWdodC4gSUZVTkNzIHJlc29sdmVkIHRvIG11bHRpYXJjaHMgdmVy c2lvbiBieSBkZWZhdWx0LgoKU2lnbmVkLW9mZi1ieTog5pyx5aicIDx6aHVuYS4xMDI0QGJ5dGVk YW5jZS5jb20+Ci0tLQogc3lzZGVwcy9yaXNjdi9ocC10aW1pbmcuaCAgICAgICAgICAgICAgICAg IHwgIDM5ICsrKysrCiBzeXNkZXBzL3Jpc2N2L2luaXQtYXJjaC5oICAgICAgICAgICAgICAgICAg fCAgIDQgKwogc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvTWFrZWZpbGUgICAgICAgICAgIHwgIDE5 ICsrKwogc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgIHwgIDU4ICsr KysrKysrCiBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1tZW1jaHIuaCAgICAgfCAgMjgg KysrKwogc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtY21wLmggICAgIHwgIDI4ICsr KysKIHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbWNtcGVxLmggICB8ICAyOSArKysr CiBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1tZW1jcHkuaCAgICAgfCAgMjggKysrKwog c3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtc2V0LmggICAgIHwgIDI4ICsrKysKIHN5 c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNoci1ydnYtdmxlbi5TICB8IDExOCArKysrKysrKysr KysrKysKIHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNoci1ydnYuUyAgICAgICB8IDEzMiAr KysrKysrKysrKysrKysrKwogc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY2hyLmMgICAgICAg ICAgIHwgIDM1ICsrKysrCiBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jbXAtcnZ2LXZsZW4u UyAgfCAxMjAgKysrKysrKysrKysrKysrKwogc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY21w LXJ2di5TICAgICAgIHwgMTU4ICsrKysrKysrKysrKysrKysrKysrKwogc3lzZGVwcy9yaXNjdi9t dWx0aWFyY2gvbWVtY21wLmMgICAgICAgICAgIHwgIDM1ICsrKysrCiBzeXNkZXBzL3Jpc2N2L211 bHRpYXJjaC9tZW1jbXBlcS5jICAgICAgICAgfCAgMzUgKysrKysKIHN5c2RlcHMvcmlzY3YvbXVs dGlhcmNoL21lbWNweS1ydnYtdmxlbi5TICB8IDEwMCArKysrKysrKysrKysrCiBzeXNkZXBzL3Jp c2N2L211bHRpYXJjaC9tZW1jcHktcnZ2LlMgICAgICAgfCAxMjcgKysrKysrKysrKysrKysrKysK IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNweS5jICAgICAgICAgICB8ICAzNSArKysrKwog c3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtbW92ZS1ydnYtdmxlbi5TIHwgMTEwICsrKysrKysr KysrKysrCiBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1tb3ZlLXJ2di5TICAgICAgfCAxMzgg KysrKysrKysrKysrKysrKysrCiBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1zZXQtcnZ2LXZs ZW4uUyAgfCAgOTQgKysrKysrKysrKysrCiBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1zZXQt cnZ2LlMgICAgICAgfCAxMjYgKysrKysrKysrKysrKysrKwogc3lzZGVwcy9yaXNjdi9tdWx0aWFy Y2gvbWVtc2V0LmMgICAgICAgICAgIHwgIDM1ICsrKysrCiAyNCBmaWxlcyBjaGFuZ2VkLCAxNjU5 IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2L2hwLXRpbWlu Zy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9pbml0LWFyY2guaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL01ha2VmaWxlCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1tZW1jaHIuaAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbWNtcC5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtY21wZXEu aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbWNw eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVt c2V0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jaHIt cnZ2LXZsZW4uUwogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21l bWNoci1ydnYuUwogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21l bWNoci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY21w LXJ2di12bGVuLlMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9t ZW1jbXAtcnZ2LlMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9t ZW1jbXAuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNt cGVxLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jcHkt cnZ2LXZsZW4uUwogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21l bWNweS1ydnYuUwogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21l bWNweS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtbW92 ZS1ydnYtdmxlbi5TCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gv bWVtbW92ZS1ydnYuUwogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNo L21lbXNldC1ydnYtdmxlbi5TCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0 aWFyY2gvbWVtc2V0LXJ2di5TCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0 aWFyY2gvbWVtc2V0LmMKCmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L2hwLXRpbWluZy5oIGIv c3lzZGVwcy9yaXNjdi9ocC10aW1pbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi5mNzI4ZDg2NGExCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9yaXNjdi9ocC10 aW1pbmcuaApAQCAtMCwwICsxLDM5IEBACisvKiBIaWdoIHByZWNpc2lvbiwgbG93IG92ZXJoZWFk IHRpbWluZyBmdW5jdGlvbnMuICBSSVNDLVYgdmVyc2lvbi4KKyAgIENvcHlyaWdodCAoQykgMjAy MS0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBh cnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg ICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAg TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNl ZQorICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpZm5kZWYgX0hQ X1RJTUlOR19ICisjZGVmaW5lIF9IUF9USU1JTkdfSAkxCisKKyNpbmNsdWRlIDx0aW1lLmg+Cisj aW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8aHAtdGltaW5nLWNvbW1vbi5oPgorI2luY2x1 ZGUgPGxpYmMtc3ltYm9scy5oPgorCisvKiBEb24ndCB1c2UgaW5saW5lIHRpbWVyIGluIGxkLnNv LiAgKi8KKyNpZiBJU19JTihydGxkKQorIyBkZWZpbmUgSFBfVElNSU5HX0lOTElORQkoMCkKKyNl bHNlCisjIGRlZmluZSBIUF9USU1JTkdfSU5MSU5FCSgxKQorI2VuZGlmCisKK3R5cGVkZWYgdWlu dDY0X3QgaHBfdGltaW5nX3Q7CisKKyNkZWZpbmUgSFBfVElNSU5HX05PVyh2YXIpIFwKKyAgX19h c21fXyBfX3ZvbGF0aWxlX18gKCJyZGN5Y2xlICUwICIgOiAiPXIiICh2YXIpKSBcCisKKyNlbmRp ZgkvKiBocC10aW1pbmcuaCAqLwpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNjdi9pbml0LWFyY2gu aCBiL3N5c2RlcHMvcmlzY3YvaW5pdC1hcmNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uODVkZmM0ZTM5OAotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3Yv aW5pdC1hcmNoLmgKQEAgLTAsMCArMSw0IEBACisjaW5jbHVkZSA8bGRzb2RlZnMuaD4KKyNpbmNs dWRlIDxpZnVuYy1pbml0Lmg+CisKKyMgZGVmaW5lIElOSVRfQVJDSCgpICAgIApkaWZmIC0tZ2l0 IGEvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvTWFrZWZpbGUgYi9zeXNkZXBzL3Jpc2N2L211bHRp YXJjaC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41YmQw MmFiOTc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvTWFrZWZp bGUKQEAgLTAsMCArMSwxOSBAQAoraWZlcSAoJChzdWJkaXIpLHN0cmluZykKK3N5c2RlcF9yb3V0 aW5lcyArPSBcCisgIG1lbXNldC1ydnYgXAorICBtZW1jcHktcnZ2IFwKKyAgbWVtY21wLXJ2diBc CisgIG1lbWNoci1ydnYgXAorICBtZW1tb3ZlLXJ2diBcCisgIG1lbXNldC1ydnYtdmxlbiBcCisg IG1lbWNweS1ydnYtdmxlbiBcCisgIG1lbWNtcC1ydnYtdmxlbiBcCisgIG1lbWNoci1ydnYtdmxl biBcCisgIG1lbW1vdmUtcnZ2LXZsZW4gXAorICAjIGdlbmVyaWMtbWVtc2V0IFwKKyAgIyBnZW5l cmljLW1lbWNociBcCisgICMgZ2VuZXJpYy1tZW1jcHkgXAorICAjIGdlbmVyaWMtbWVtY21wIFwK KworIyBzeXNkZXBfcm91dGluZXMKK2VuZGlmCmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L211 bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5j LWltcGwtbGlzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmVmYjBk MWNkYjUKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1p bXBsLWxpc3QuYwpAQCAtMCwwICsxLDU4IEBACisvKiBFbnVtZXJhdGUgYXZhaWxhYmxlIElGVU5D IGltcGxlbWVudGF0aW9ucyBvZiBhIGZ1bmN0aW9uLiAgUklTQ1Y2NCB2ZXJzaW9uLgorICAgQ29w eXJpZ2h0IChDKSAyMDEyLTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBU aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg ICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi bGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJh cnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8K KworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHdj aGFyLmg+CisjaW5jbHVkZSA8aWZ1bmMtaW1wbC1saXN0Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4K KworCisvKiBGaWxsIEFSUkFZIG9mIE1BWCBlbGVtZW50cyB3aXRoIElGVU5DIGltcGxlbWVudGF0 aW9ucyBmb3IgZnVuY3Rpb24KKyAgIE5BTUUgc3VwcG9ydGVkIG9uIHRhcmdldCBtYWNoaW5lIGFu ZCByZXR1cm4gdGhlIG51bWJlciBvZiB2YWxpZAorICAgZW50cmllcy4gIEVhY2ggc2V0IG9mIGlt cGxlbWVudGF0aW9ucyBmb3IgYSBnaXZlbiBmdW5jdGlvbiBpcyBzb3J0ZWQgaW4KKyAgIGRlc2Nl bmRpbmcgb3JkZXIgYnkgSVNBIGxldmVsLiAgKi8KKworc2l6ZV90CitfX2xpYmNfaWZ1bmNfaW1w bF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19pZnVuY19pbXBsICphcnJheSwK KwkJCXNpemVfdCBtYXgpCit7CisgIHNpemVfdCBpID0gbWF4OworCisgIC8qIFN1cHBvcnQgc3lz ZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtc2V0LXJ2di5TLiAgKi8KKyAgSUZVTkNfSU1QTCAoaSwg bmFtZSwgbWVtc2V0LAorCSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwgbWVtc2V0LCAx LCBtZW1zZXRfcnZ2KQorCSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwgbWVtc2V0LCAx LCBtZW1zZXRfcnZ2X3ZsZW4pCisJICAgICApOworICAvKiBTdXBwb3J0IHN5c2RlcHMvcmlzY3Yv bXVsdGlhcmNoL21lbWNweS1ydnYuUy4gICovCisgIElGVU5DX0lNUEwgKGksIG5hbWUsIG1lbWNw eSwKKwkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGksIG1lbWNweSwgMSwgbWVtY3B5X3J2 dikKKwkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGksIG1lbWNweSwgMSwgbWVtY3B5X3J2 dl92bGVuKQorCSAgICAgKTsKKyAgLyogU3VwcG9ydCBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9t ZW1jbXAtcnZ2LlMuICAqLworICBJRlVOQ19JTVBMIChpLCBuYW1lLCBtZW1jbXAsCisJICAgICAg SUZVTkNfSU1QTF9BREQgKGFycmF5LCBpLCBtZW1jbXAsIDEsIG1lbWNtcF9ydnYpCisJICAgICAg SUZVTkNfSU1QTF9BREQgKGFycmF5LCBpLCBtZW1jbXAsIDEsIG1lbWNtcF9ydnZfdmxlbikKKwkg ICAgICk7CisgIC8qIFN1cHBvcnQgc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY2hyLXJ2di5T LiAgKi8KKyAgSUZVTkNfSU1QTCAoaSwgbmFtZSwgbWVtY2hyLAorCSAgICAgIElGVU5DX0lNUExf QUREIChhcnJheSwgaSwgbWVtY2hyLCAxLCBtZW1jaHJfcnZ2KQorCSAgICAgIElGVU5DX0lNUExf QUREIChhcnJheSwgaSwgbWVtY2hyLCAxLCBtZW1jaHJfcnZ2X3ZsZW4pCisJICAgICApOworICBy ZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1l bWNoci5oIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtY2hyLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjVlMjUwMDg2NAotLS0gL2Rldi9udWxsCisr KyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbWNoci5oCkBAIC0wLDAgKzEsMjgg QEAKKy8qIEFsbCB2ZXJzaW9ucyBtdXN0IGJlIGxpc3RlZCBpbiBpZnVuYy1tZW1jaHIuYy4KKyAg IENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBM aWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCisKKyNpbmNsdWRlIDxpbml0LWFyY2guaD4KKworZXh0ZXJuIF9fdHlwZW9mIChSRURJUkVD VF9OQU1FKSBtZW1jaHJfcnZ2IGF0dHJpYnV0ZV9oaWRkZW47CitleHRlcm4gX190eXBlb2YgKFJF RElSRUNUX05BTUUpIG1lbWNocl9ydnZfdmxlbiBhdHRyaWJ1dGVfaGlkZGVuOworCitzdGF0aWMg aW5saW5lIHZvaWQgKgorSUZVTkNfU0VMRUNUT1IgKHZvaWQpCit7CisgIHJldHVybiBtZW1jaHJf cnZ2X3ZsZW47Cit9CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1t ZW1jbXAuaCBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbWNtcC5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmI4NmE2NjE1YjgKLS0tIC9kZXYvbnVsbAor KysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1tZW1jbXAuaApAQCAtMCwwICsxLDI4 IEBACisvKiBBbGwgdmVyc2lvbnMgbXVzdCBiZSBsaXN0ZWQgaW4gaWZ1bmMtbWVtY21wLmMuCisg ICBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05V IEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMg TGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u ICAqLworCisjaW5jbHVkZSA8aW5pdC1hcmNoLmg+CisKK2V4dGVybiBfX3R5cGVvZiAoUkVESVJF Q1RfTkFNRSkgbWVtY21wX3J2diBhdHRyaWJ1dGVfaGlkZGVuOworZXh0ZXJuIF9fdHlwZW9mIChS RURJUkVDVF9OQU1FKSBtZW1jbXBfcnZ2X3ZsZW4gYXR0cmlidXRlX2hpZGRlbjsKKworc3RhdGlj IGlubGluZSB2b2lkICoKK0lGVU5DX1NFTEVDVE9SICh2b2lkKQoreworICByZXR1cm4gbWVtY21w X3J2dl92bGVuOworfQpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMt bWVtY21wZXEuaCBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbWNtcGVxLmgKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODc3ZWRjOTRmNAotLS0gL2Rldi9u dWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbWNtcGVxLmgKQEAgLTAs MCArMSwyOSBAQAorLyogQ29tbW9uIGRlZmluaXRpb24gZm9yIF9fbWVtY21wZXEgaWZ1bmMgc2Vs ZWN0aW9ucy4KKyAgIEFsbCB2ZXJzaW9ucyBtdXN0IGJlIGxpc3RlZCBpbiBpZnVuYy1pbXBsLWxp c3QuYy4KKyAgIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAg IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRo ZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCisKKyMgaW5jbHVkZSA8aW5pdC1hcmNoLmg+CisKK2V4dGVybiBfX3R5cGVv ZiAoUkVESVJFQ1RfTkFNRSkgbWVtY21wX3J2diBhdHRyaWJ1dGVfaGlkZGVuOworZXh0ZXJuIF9f dHlwZW9mIChSRURJUkVDVF9OQU1FKSBtZW1jbXBfcnZ2X3ZsZW4gYXR0cmlidXRlX2hpZGRlbjsK Kworc3RhdGljIGlubGluZSB2b2lkICoKK0lGVU5DX1NFTEVDVE9SICh2b2lkKQoreworICByZXR1 cm4gbWVtY21wX3J2dl92bGVuOworfQpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNjdi9tdWx0aWFy Y2gvaWZ1bmMtbWVtY3B5LmggYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1tZW1jcHku aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kNGUxZDkwMDRiCi0tLSAv ZGV2L251bGwKKysrIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtY3B5LmgKQEAg LTAsMCArMSwyOCBAQAorLyogQWxsIHZlcnNpb25zIG11c3QgYmUgbGlzdGVkIGluIGlmdW5jLW1l bWNweS5jLgorICAgQ29weXJpZ2h0IChDKSAyMDE3LTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKwor ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMg TGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGgg dGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPGluaXQtYXJjaC5oPgorCitleHRlcm4gX190eXBl b2YgKFJFRElSRUNUX05BTUUpIG1lbWNweV9ydnYgYXR0cmlidXRlX2hpZGRlbjsKK2V4dGVybiBf X3R5cGVvZiAoUkVESVJFQ1RfTkFNRSkgbWVtY3B5X3J2dl92bGVuIGF0dHJpYnV0ZV9oaWRkZW47 CisKK3N0YXRpYyBpbmxpbmUgdm9pZCAqCitJRlVOQ19TRUxFQ1RPUiAodm9pZCkKK3sKKyAgcmV0 dXJuIG1lbWNweV9ydnZfdmxlbjsKK30KZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVsdGlh cmNoL2lmdW5jLW1lbXNldC5oIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtc2V0 LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDgzMDEwMDlmMgotLS0g L2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbXNldC5oCkBA IC0wLDAgKzEsMjggQEAKKy8qIEFsbCB2ZXJzaW9ucyBtdXN0IGJlIGxpc3RlZCBpbiBpZnVuYy1t ZW1zZXQuYy4KKyAgIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisK KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRo IHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisKKyNpbmNsdWRlIDxpbml0LWFyY2guaD4KKworZXh0ZXJuIF9fdHlw ZW9mIChSRURJUkVDVF9OQU1FKSBtZW1zZXRfcnZ2IGF0dHJpYnV0ZV9oaWRkZW47CitleHRlcm4g X190eXBlb2YgKFJFRElSRUNUX05BTUUpIG1lbXNldF9ydnZfdmxlbiBhdHRyaWJ1dGVfaGlkZGVu OworCitzdGF0aWMgaW5saW5lIHZvaWQgKgorSUZVTkNfU0VMRUNUT1IgKHZvaWQpCit7CisgIHJl dHVybiBtZW1zZXRfcnZ2X3ZsZW47Cit9CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L211bHRp YXJjaC9tZW1jaHItcnZ2LXZsZW4uUyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNoci1y dnYtdmxlbi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjI2NjM1YWE1 ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jaHItcnZ2 LXZsZW4uUwpAQCAtMCwwICsxLDExOCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjIgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg R05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24g Mi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBM aWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0 cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKyAgIAorCS50ZXh0CisJLmdsb2JsCW1l bWNocl9ydnZfdmxlbiAgICAgICAgICAgICAgICAgIyAtLSBCZWdpbiBmdW5jdGlvbiBtZW1jaHJf cnZ2CisJLnAyYWxpZ24JMQorCS50eXBlCW1lbWNocl9ydnZfdmxlbixAZnVuY3Rpb24KKworIyBh MDogc3JjIGExOiBjIGEyOiBuYnl0ZQorI2RlZmluZSBTUkMgYTAKKyNkZWZpbmUgU1JDX0VORCBh NworI2RlZmluZSBDQyBhMQorI2RlZmluZSBDQ19VOCBhNgorI2RlZmluZSBOQllURSBhMgorIyB1 dGlsaXRpZXMKKyNkZWZpbmUgVkxFTiBhMworI2RlZmluZSBDVFpfSSBhNAorI2RlZmluZSBYTEVO IGE1CisjZGVmaW5lIEFMSUdOIDgKKyNkZWZpbmUgTChsYWJlbCkgLm1lbWNocl9ydnZfdmxlbl8j I2xhYmVsCisKK21lbWNocl9ydnZfdmxlbjoKKwliZXF6IE5CWVRFLCBMKG5vdF9mb3VuZCkKKwlh ZGQgU1JDX0VORCwgU1JDLCBOQllURQorCWFkZGkgWExFTiwgemVybywgOCAgIyB4bGVuID0gOEIK KwkjIHRvIHVpbnQ4CisJYW5kaSBDQywgQ0MsIDB4ZmYKKwltdiBDQ19VOCwgQ0MKKwkjIGJyb2Fk Y2FzdCBpbiB1aW50NjQKKwlzbGxpIHQwLCBDQywgOCAgICAgIyB0MCA9IENDIDw8IDgKKwlvciBD QywgdDAsIENDICAgICAgIyBDQyA9IENDIHwgdDAKKwlzbGxpIHQwLCBDQywgMTYgICAgIyB0MCA9 IENDIDw8IDE2CisJb3IgQ0MsIHQwLCBDQyAgICAgICMgQ0MgPSBDQyB8IHQwCisJc2xsaSB0MCwg Q0MsIDMyICAgICMgdDAgPSBDQyA8PCAzMgorCW9yIENDLCB0MCwgQ0MgICAgICAjIENDID0gQ0Mg fCB0MAorIyBCRUdJTiBzbWFsbCBsZW5ndGhzCisJYWRkaSB0MSwgemVybywgMTYKKwlhZGRpIFZM RU4sIHplcm8sIC0xCisJdnNldHZsaSBWTEVOLCBWTEVOLCBlOCwgbTgsIHRhLCBtYQorCSMgYmx0 IE5CWVRFLCB0MSwgTChsZXNzX204eDEpCisJc2xsaSB0MSwgVkxFTiwgMQorCWJsdCBOQllURSwg dDEsIEwobTh4MV9sb29wKQorIyBFTkQgc21hbGwgbGVuZ3RoCisjIG5ieXRlID49IHZsZW4geCAy CisKKyMgQkVHSU4gYWxpZ24gb24gOEIKKwlhbmRpIHQwLCBTUkMsIDcKKwliZXF6IHQwLCBMKHZl Y19zZXQpCisJc3ViIHQwLCB6ZXJvLCB0MAorCWFkZGkgdDAsIHQwLCA4CisJbGQgdDIsIChTUkMp CisJeG9yIHQxLCBDQywgdDIKKwlvcmMuYiB0MywgdDEKKwl4b3JpIHQzLCB0MywgLTEKKwljdHog Q1RaX0ksIHQzCisJc3JsaSBDVFpfSSwgQ1RaX0ksIDMKKwlibmUgQ1RaX0ksIFhMRU4sIEwoZm91 bmQpCisJYWRkIFNSQywgU1JDLCB0MAorIyBFTkQgYWxpZ24gb24gOEIKKyMgQkVHSU4gVkVDIFNU T1JFIEJVTEsKK0wodmVjX3NldCk6CisjIHQwOiB0b3RhbCB2bGVuICogMiAgdDE6IHNyYyArIHRv dGFsIHZsZW4gKiAyCisJc2xsaSB0MCwgVkxFTiwgMQorCWFkZCB0MSwgU1JDLCB0MAorCWJsdCBT UkNfRU5ELCB0MSwgTChtOHgyX2xvb3BfZW5kKSAgIyBicmFuY2ggaWYgbGVzcyB0aGFuIHRvdGFs IHZsZW4KKyMgdXNlIG1hbnkgdCogdG8gZXhwbG9pdCBkYXRhIHBhcmFsbGVsaXNtCitMKG04eDJf bG9vcCk6CisJdmxlOC52CXYwLCAoU1JDKQorCWFkZCB0MiwgU1JDLCBWTEVOCisJdmxlOC52CXYx NiwgKHQyKQorCXZtc2VxLnZ4IHY4LCB2MCwgQ0MKKwl2bXNlcS52eCB2MjQsIHYxNiwgQ0MKKwl2 Zmlyc3QubQlDVFpfSSwgdjgKKwliZ2UgQ1RaX0ksIHplcm8sIEwoZm91bmQpCisJdmZpcnN0Lm0J Q1RaX0ksIHYyNAorCW12IFNSQywgdDIKKwliZ2UgQ1RaX0ksIHplcm8sIEwoZm91bmQpCisJYWRk IFNSQywgU1JDLCBWTEVOCisJYWRkIHQxLCBTUkMsIHQwCisJYmdlIFNSQ19FTkQsIHQxLCBMKG04 eDJfbG9vcCkgICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3RhbCB2bGVuCitMKG04eDJfbG9vcF9l bmQpOgorIyBFTkQgVkVDIFNUT1JFIEJVTEsKKwlzdWIgTkJZVEUsIFNSQ19FTkQsIFNSQworCW12 IHQxLCBOQllURQorTChtOHgxX2xvb3ApOgorCW12IE5CWVRFLCB0MQorCXZzZXR2bGkgVkxFTiwg TkJZVEUsIGU4LCBtOCwgdGEsIG1hCisJdmxlOC52CXYwLCAoU1JDKQorCXZtc2VxLnZ4IHY4LCB2 MCwgQ0MKKwl2Zmlyc3QubQlDVFpfSSwgdjgKKwliZ2UgQ1RaX0ksIHplcm8sIEwoZm91bmQpCisJ YWRkIFNSQywgU1JDLCBWTEVOCisJc3ViIHQxLCBOQllURSwgVkxFTgorCWJuZXogdDEsIEwobTh4 MV9sb29wKQorCSMgbm90IGZvdW5kCisJbXYgYTAsIHplcm8KKwlyZXQKK0woZm91bmQpOgorCWFk ZCBTUkMsIFNSQywgQ1RaX0kKKwliZ2UgU1JDLCBTUkNfRU5ELCBMKG5vdF9mb3VuZCkKKwlyZXQK K0wobm90X2ZvdW5kKToKKwltdiBhMCwgemVybworCXJldApkaWZmIC0tZ2l0IGEvc3lzZGVwcy9y aXNjdi9tdWx0aWFyY2gvbWVtY2hyLXJ2di5TIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVt Y2hyLXJ2di5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM2YjZjY2I4 MGYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jaHItcnZ2 LlMKQEAgLTAsMCArMSwxMzIgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBD IExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5z ZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisgICAKKwkudGV4dAorCS5nbG9ibAltZW1jaHJf cnZ2ICAgICAgICAgICAgICAgICAjIC0tIEJlZ2luIGZ1bmN0aW9uIG1lbWNocl9ydnYKKwkucDJh bGlnbgkxCisJLnR5cGUJbWVtY2hyX3J2dixAZnVuY3Rpb24KKworIyBhMDogc3JjIGExOiBjIGEy OiBuYnl0ZQorI2RlZmluZSBTUkMgYTAKKyNkZWZpbmUgU1JDX0VORCBhNworI2RlZmluZSBDQyBh MQorI2RlZmluZSBDQ19VOCBhNgorI2RlZmluZSBOQllURSBhMgorIyB1dGlsaXRpZXMKKyNkZWZp bmUgVkxFTiBhMworI2RlZmluZSBDVFpfSSBhNAorI2RlZmluZSBYTEVOIGE1CisjZGVmaW5lIEFM SUdOIDgKKyNkZWZpbmUgTChsYWJlbCkgLm1lbWNocl9ydnZfIyNsYWJlbAorCittZW1jaHJfcnZ2 OgorCWJlcXogTkJZVEUsIEwobm90X2ZvdW5kKQorCWFkZCBTUkNfRU5ELCBTUkMsIE5CWVRFCisJ YWRkaSBYTEVOLCB6ZXJvLCA4ICAjIHhsZW4gPSA4QgorCSMgdG8gdWludDgKKwlhbmRpIENDLCBD QywgMHhmZgorCW12IENDX1U4LCBDQworCSMgYnJvYWRjYXN0IGluIHVpbnQ2NAorCXNsbGkgdDAs IENDLCA4ICAgICAjIHQwID0gQ0MgPDwgOAorCW9yIENDLCB0MCwgQ0MgICAgICAjIENDID0gQ0Mg fCB0MAorCXNsbGkgdDAsIENDLCAxNiAgICAjIHQwID0gQ0MgPDwgMTYKKwlvciBDQywgdDAsIEND ICAgICAgIyBDQyA9IENDIHwgdDAKKwlzbGxpIHQwLCBDQywgMzIgICAgIyB0MCA9IENDIDw8IDMy CisJb3IgQ0MsIHQwLCBDQyAgICAgICMgQ0MgPSBDQyB8IHQwCisjIEJFR0lOIHNtYWxsIGxlbmd0 aHMKKwlhZGRpIHQxLCB6ZXJvLCAxNgorCWFkZGkgVkxFTiwgemVybywgLTEKKwl2c2V0dmxpIFZM RU4sIFZMRU4sIGU4LCBtOCwgdGEsIG1hCisJYmx0IE5CWVRFLCB0MSwgTChsZXNzX204eDEpCisJ c2xsaSB0MSwgVkxFTiwgMQorCWJsdCBOQllURSwgdDEsIEwobGVzc19tOHgyKQorIyBFTkQgc21h bGwgbGVuZ3RoCisjIG5ieXRlID49IHZsZW4geCAyCisKKyMgQkVHSU4gYWxpZ24gb24gOEIKKwlh bmRpIHQwLCBTUkMsIDcKKwliZXF6IHQwLCBMKHZlY19zZXQpCisJc3ViIHQwLCB6ZXJvLCB0MAor CWFkZGkgdDAsIHQwLCA4CisJbGQgdDIsIChTUkMpCisJeG9yIHQxLCBDQywgdDIKKwlvcmMuYiB0 MywgdDEKKwl4b3JpIHQzLCB0MywgLTEKKwljdHogQ1RaX0ksIHQzCisJc3JsaSBDVFpfSSwgQ1Ra X0ksIDMKKwlibmUgQ1RaX0ksIFhMRU4sIEwoZm91bmQpCisJYWRkIFNSQywgU1JDLCB0MAorIyBF TkQgYWxpZ24gb24gOEIKKyMgQkVHSU4gVkVDIFNUT1JFIEJVTEsKK0wodmVjX3NldCk6CisjIHQw OiB0b3RhbCB2bGVuICogMiAgdDE6IHNyYyArIHRvdGFsIHZsZW4gKiAyCisJc2xsaSB0MCwgVkxF TiwgMQorCWFkZCB0MSwgU1JDLCB0MAorCWJsdCBTUkNfRU5ELCB0MSwgTChtOHgyX2xvb3BfZW5k KSAgIyBicmFuY2ggaWYgbGVzcyB0aGFuIHRvdGFsIHZsZW4KKyMgdXNlIG1hbnkgdCogdG8gZXhw bG9pdCBkYXRhIHBhcmFsbGVsaXNtCitMKG04eDJfbG9vcCk6CisJdmxlOC52CXYwLCAoU1JDKQor CWFkZCB0MiwgU1JDLCBWTEVOCisJdmxlOC52CXYxNiwgKHQyKQorCXZtc2VxLnZ4IHY4LCB2MCwg Q0MKKwl2bXNlcS52eCB2MjQsIHYxNiwgQ0MKKwl2Zmlyc3QubQlDVFpfSSwgdjgKKwliZ2UgQ1Ra X0ksIHplcm8sIEwoZm91bmQpCisJdmZpcnN0Lm0JQ1RaX0ksIHYyNAorCW12IFNSQywgdDIKKwli Z2UgQ1RaX0ksIHplcm8sIEwoZm91bmQpCisJYWRkIFNSQywgU1JDLCBWTEVOCisJYWRkIHQxLCBT UkMsIHQwCisJYmdlIFNSQ19FTkQsIHQxLCBMKG04eDJfbG9vcCkgICMgYnJhbmNoIGlmIGxlc3Mg dGhhbiB0b3RhbCB2bGVuCitMKG04eDJfbG9vcF9lbmQpOgorIyBFTkQgVkVDIFNUT1JFIEJVTEsK KwlzdWIgTkJZVEUsIFNSQ19FTkQsIFNSQworCitMKGxlc3NfbTh4Mik6CisJYmx0IE5CWVRFLCBW TEVOLCBMKGxlc3NfbTh4MSkKKwkjIG5ieXRlID49IHZsZW4obTgpICogMQorCSMgMSBsb2FkIGZv bGxvd2VkIGJ5IGFuIG92ZXJsYXAgbG9hZAorCXN1YiB0MSwgU1JDX0VORCwgVkxFTgorCSMgZmly c3QgbG9hZAorCXZsZTgudgl2MCwgKFNSQykKKwl2bXNlcS52eCB2OCwgdjAsIENDCisJIyBvdmVy bGFwIGxvYWQKKwl2bGU4LnYJdjE2LCAodDEpCisJdm1zZXEudnggdjI0LCB2MTYsIENDCisJdmZp cnN0Lm0JQ1RaX0ksIHY4CisJYmdlIENUWl9JLCB6ZXJvLCBMKGZvdW5kKQorCXZmaXJzdC5tCUNU Wl9JLCB2MjQKKwliZ2UgQ1RaX0ksIHplcm8sIEwoZm91bmQpCisJIyBub3QgZm91bmQKKwltdiBh MCwgemVybworCXJldAorTChsZXNzX204eDEpOgorCXZzZXR2bGkgVkxFTiwgTkJZVEUsIGU4LCBt OCwgdGEsIG1hCisJdmxlOC52CXYwLCAoU1JDKQorCXZtc2VxLnZ4IHY4LCB2MCwgQ0MKKwl2Zmly c3QubQlDVFpfSSwgdjgKKwliZ2UgQ1RaX0ksIHplcm8sIEwoZm91bmQpCisJIyBub3QgZm91bmQK KwltdiBhMCwgemVybworCXJldAorTChmb3VuZCk6CisJYWRkIFNSQywgU1JDLCBDVFpfSQorCWJn ZSBTUkMsIFNSQ19FTkQsIEwobm90X2ZvdW5kKQorCXJldAorTChub3RfZm91bmQpOgorCW12IGEw LCB6ZXJvCisJcmV0CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jaHIu YyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNoci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLjg5MzkxZTc4MjEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBz L3Jpc2N2L211bHRpYXJjaC9tZW1jaHIuYwpAQCAtMCwwICsxLDM1IEBACisvKiBNdWx0aXBsZSB2 ZXJzaW9ucyBvZiBtZW1jaHIuCisgICBBbGwgdmVyc2lvbnMgbXVzdCBiZSBsaXN0ZWQgaW4gaWZ1 bmMtaW1wbC1saXN0LmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJy YXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhl IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisvKiBEZWZpbmUgbXVsdGlwbGUgdmVyc2lvbnMgb25s eSBmb3IgdGhlIGRlZmluaXRpb24gaW4gbGliYy4gICovCisjaWYgSVNfSU4gKGxpYmMpCisjIGRl ZmluZSBtZW1jaHIgX19yZWRpcmVjdF9tZW1jaHIKKyMgaW5jbHVkZSA8c3RyaW5nLmg+CisjIHVu ZGVmIG1lbWNocgorCisjIGRlZmluZSBTWU1CT0xfTkFNRSBtZW1jaHIKKyMgaW5jbHVkZSAiaWZ1 bmMtbWVtY2hyLmgiCisKK2xpYmNfaWZ1bmNfcmVkaXJlY3RlZCAoX19yZWRpcmVjdF9tZW1jaHIs IG1lbWNociwgSUZVTkNfU0VMRUNUT1IgKCkpOworCisjIGlmZGVmIFNIQVJFRAorX19oaWRkZW5f dmVyMSAobWVtY2hyLCBfX0dJX21lbWNociwgX19yZWRpcmVjdF9tZW1jaHIpCisgIF9fYXR0cmli dXRlX18gKCh2aXNpYmlsaXR5ICgiaGlkZGVuIikpKSBfX2F0dHJpYnV0ZV9jb3B5X18gKG1lbWNo cik7CisjIGVuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNo L21lbWNtcC1ydnYtdmxlbi5TIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY21wLXJ2di12 bGVuLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODc1YzViYmJmMwot LS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNtcC1ydnYtdmxl bi5TCkBAIC0wLDAgKzEsMTIwIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUg QyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEg b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vu c2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworICAgCisJLnRleHQKKwkuZ2xvYmwJbWVtY21w X3J2dl92bGVuICAgICAgICAgICAgICAgICAjIC0tIEJlZ2luIGZ1bmN0aW9uIG1lbWNocl9ydnYK KwkucDJhbGlnbgkxCisJLnR5cGUJbWVtY21wX3J2dl92bGVuLEBmdW5jdGlvbgorCisjIGEwOiBz cmMxIGExOiBzcmMyIGEyOiBuYnl0ZQorI2RlZmluZSBTUkMxIGEwCisjZGVmaW5lIFNSQzIgYTEK KyNkZWZpbmUgTkJZVEUgYTIKKyNkZWZpbmUgU1JDX0VORDEgYTUKKyNkZWZpbmUgU1JDX0VORDIg YTYKKyMgdXRpbGl0aWVzCisjZGVmaW5lIFZMRU4gYTMKKyNkZWZpbmUgWExFTiBhNAorI2RlZmlu ZSBNQVNLIGE3CisjZGVmaW5lIEwobGFiZWwpIC5tZW1jbXBfcnZ2X3ZsZW5fIyNsYWJlbAorCitt ZW1jbXBfcnZ2X3ZsZW46CisJYm5leiBOQllURSwgTChndF8wKQorCW12IGEwLCB6ZXJvCisJcmV0 CitMKGd0XzApOgorCWFkZCBTUkNfRU5EMSwgU1JDMSwgTkJZVEUKKwlhZGQgU1JDX0VORDIsIFNS QzIsIE5CWVRFCisKKwlhZGRpIFZMRU4sIHplcm8sIC0xCisJdnNldHZsaSBWTEVOLCBWTEVOLCBl OCwgbTgsIHRhLCBtYQorCSMgYmx0IE5CWVRFLCBWTEVOLCBMKGxlc3NfbTh4MSkKKwlzbGxpIHQw LCBWTEVOLCAxCisJYmx0IE5CWVRFLCB0MCwgTChtOHgyX2xvb3BfZW5kKQorIyBuYnl0ZSA+PSB2 bGVuIHggMgorCitMKG04eDJfbG9vcCk6CisJIyBsb2FkIGZpcnN0CisJdmxlOC52CXYwLCAoU1JD MSkKKwlhZGQgdDIsIFNSQzEsIFZMRU4KKwl2bGU4LnYJdjgsIChTUkMyKQorCWFkZCB0MywgU1JD MiwgVkxFTgorCSMgY29tcGFyZSBmaXJzdAorCXZtc25lLnZ2IHYyNCwgdjAsIHY4CisJdmZpcnN0 Lm0gdDEsIHYyNAorCWJsdCB0MSwgemVybywgTChtOHgyX2xvb3BfZmlyc3Rfbm90X2ZvdW5kKQor CSMgZm91bmQgaW4gZmlyc3QgbG9hZAorCXZzbGlkZWRvd24udnggdjAsIHYwLCB0MQorCXZzbGlk ZWRvd24udnggdjgsIHY4LCB0MQorCXZtdi54LnMgdDAsIHYwCisJdm12LngucyB0MSwgdjgKKwlh bmRpIHQwLCB0MCwgMHhmZgorCWFuZGkgdDEsIHQxLCAweGZmCisJc3ViIGEwLCB0MCwgdDEKKwly ZXQKK0wobTh4Ml9sb29wX2ZpcnN0X25vdF9mb3VuZCk6CisJIyBsb2FkIHNlY29uZAorCXZsZTgu diB2MTYsICh0MikKKwl2bGU4LnYgdjI0LCAodDMpCisJIyBjb21wYXJlIHNlY29uZAorCXZtc25l LnZ2IHYxNiwgdjE2LCB2MjQKKwl2Zmlyc3QubSB0MSwgdjE2CisJYmx0IHQxLCB6ZXJvLCBMKG04 eDJfbG9vcF9zZWNvbmRfbm90X2ZvdW5kKQorCSMgZm91bmQgaW4gc2Vjb25kIGxvYWQKKwl2c2xp ZGVkb3duLnZ4IHYxNiwgdjE2LCB0MQorCXZzbGlkZWRvd24udnggdjI0LCB2MjQsIHQxCisJdm12 LngucyB0MCwgdjE2CisJdm12LngucyB0MSwgdjI0CisJYW5kaSB0MCwgdDAsIDB4ZmYKKwlhbmRp IHQxLCB0MSwgMHhmZgorCXN1YiBhMCwgdDAsIHQxCisJcmV0CitMKG04eDJfbG9vcF9zZWNvbmRf bm90X2ZvdW5kKToKKwlhZGQgU1JDMSwgdDIsIFZMRU4KKwlhZGQgU1JDMiwgdDMsIFZMRU4gCisJ YWRkIHQxLCBTUkMxLCB0MAorCWJsdCB0MSwgU1JDX0VORDEsIEwobTh4Ml9sb29wKQorTChtOHgy X2xvb3BfZW5kKToKKyMgRU5EIFZFQyBTVE9SRSBCVUxLCisJc3ViIE5CWVRFLCBTUkNfRU5EMSwg U1JDMQorCW12IHQxLCBOQllURQorTChtOHgxX2xvb3ApOgorCW12IE5CWVRFLCB0MQorCXZzZXR2 bGkgVkxFTiwgTkJZVEUsIGU4LCBtOCwgdGEsIG1hCisJdmxlOC52CXYwLCAoU1JDMSkKKwl2bGU4 LnYJdjgsIChTUkMyKQorCXZtc25lLnZ2IHYyNCwgdjAsIHY4CisJdmZpcnN0Lm0gdDEsIHYyNAor CWJsdCB0MSwgemVybywgTChtOHgxX2xvb3Bfbm90X2ZvdW5kKQorCSMgZm91bmQKKwl2c2xpZGVk b3duLnZ4IHYwLCB2MCwgdDEKKwl2c2xpZGVkb3duLnZ4IHY4LCB2OCwgdDEKKwl2bXYueC5zIHQw LCB2MAorCXZtdi54LnMgdDEsIHY4CisJYW5kaSB0MCwgdDAsIDB4ZmYKKwlhbmRpIHQxLCB0MSwg MHhmZgorCXN1YiBhMCwgdDAsIHQxCisJcmV0CitMKG04eDFfbG9vcF9ub3RfZm91bmQpOgorCWFk ZCBTUkMxLCBTUkMxLCBWTEVOCisJYWRkIFNSQzIsIFNSQzIsIFZMRU4KKwlzdWIgdDEsIE5CWVRF LCBWTEVOCisJYm5leiB0MSwgTChtOHgxX2xvb3ApCisJIyBub3QgZm91bmQKKwltdiBhMCwgemVy bworCXJldAorCQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N5c2Rl cHMvcmlzY3YvbXVsdGlhcmNoL21lbWNtcC1ydnYuUyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNo L21lbWNtcC1ydnYuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iNjA0 ODZkYjIxCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY21w LXJ2di5TCkBAIC0wLDAgKzEsMTU4IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBH TlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAy LjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExp Y2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRw czovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworICAgCisJLnRleHQKKwkuZ2xvYmwJbWVt Y21wX3J2diAgICAgICAgICAgICAgICAgIyAtLSBCZWdpbiBmdW5jdGlvbiBtZW1jaHJfcnZ2CisJ LnAyYWxpZ24JMQorCS50eXBlCW1lbWNtcF9ydnYsQGZ1bmN0aW9uCisKKyMgYTA6IHNyYzEgYTE6 IHNyYzIgYTI6IG5ieXRlCisjZGVmaW5lIFNSQzEgYTAKKyNkZWZpbmUgU1JDMiBhMQorI2RlZmlu ZSBOQllURSBhMgorI2RlZmluZSBTUkNfRU5EMSBhNQorI2RlZmluZSBTUkNfRU5EMiBhNgorIyB1 dGlsaXRpZXMKKyNkZWZpbmUgVkxFTiBhMworI2RlZmluZSBYTEVOIGE0CisjZGVmaW5lIE1BU0sg YTcKKyNkZWZpbmUgTChsYWJlbCkgLm1lbWNtcF9ydnZfIyNsYWJlbAorCittZW1jbXBfcnZ2Ogor CWJuZXogTkJZVEUsIEwoZ3RfMCkKKwltdiBhMCwgemVybworCXJldAorTChndF8wKToKKwlhZGQg U1JDX0VORDEsIFNSQzEsIE5CWVRFCisJYWRkIFNSQ19FTkQyLCBTUkMyLCBOQllURQorCisJYWRk aSBWTEVOLCB6ZXJvLCAtMQorCXZzZXR2bGkgVkxFTiwgVkxFTiwgZTgsIG04LCB0YSwgbWEKKwli bHQgTkJZVEUsIFZMRU4sIEwobGVzc19tOHgxKQorCXNsbGkgdDAsIFZMRU4sIDEKKwlibHQgTkJZ VEUsIHQwLCBMKGxlc3NfbTh4MikKKyMgbmJ5dGUgPj0gdmxlbiB4IDIKKworTChtOHgyX2xvb3Ap OgorCSMgbG9hZCBmaXJzdAorCXZsZTgudgl2MCwgKFNSQzEpCisJYWRkIHQyLCBTUkMxLCBWTEVO CisJdmxlOC52CXY4LCAoU1JDMikKKwlhZGQgdDMsIFNSQzIsIFZMRU4KKwkjIGNvbXBhcmUgZmly c3QKKwl2bXNuZS52diB2MjQsIHYwLCB2OAorCXZmaXJzdC5tIHQxLCB2MjQKKwlibHQgdDEsIHpl cm8sIEwobTh4Ml9sb29wX2ZpcnN0X25vdF9mb3VuZCkKKwkjIGZvdW5kIGluIGZpcnN0IGxvYWQK Kwl2c2xpZGVkb3duLnZ4IHYwLCB2MCwgdDEKKwl2c2xpZGVkb3duLnZ4IHY4LCB2OCwgdDEKKwl2 bXYueC5zIHQwLCB2MAorCXZtdi54LnMgdDEsIHY4CisJYW5kaSB0MCwgdDAsIDB4ZmYKKwlhbmRp IHQxLCB0MSwgMHhmZgorCXN1YiBhMCwgdDAsIHQxCisJcmV0CitMKG04eDJfbG9vcF9maXJzdF9u b3RfZm91bmQpOgorCSMgbG9hZCBzZWNvbmQKKwl2bGU4LnYgdjE2LCAodDIpCisJdmxlOC52IHYy NCwgKHQzKQorCSMgY29tcGFyZSBzZWNvbmQKKwl2bXNuZS52diB2MTYsIHYxNiwgdjI0CisJdmZp cnN0Lm0gdDEsIHYxNgorCWJsdCB0MSwgemVybywgTChtOHgyX2xvb3Bfc2Vjb25kX25vdF9mb3Vu ZCkKKwkjIGZvdW5kIGluIHNlY29uZCBsb2FkCisJdnNsaWRlZG93bi52eCB2MTYsIHYxNiwgdDEK Kwl2c2xpZGVkb3duLnZ4IHYyNCwgdjI0LCB0MQorCXZtdi54LnMgdDAsIHYxNgorCXZtdi54LnMg dDEsIHYyNAorCWFuZGkgdDAsIHQwLCAweGZmCisJYW5kaSB0MSwgdDEsIDB4ZmYKKwlzdWIgYTAs IHQwLCB0MQorCXJldAorTChtOHgyX2xvb3Bfc2Vjb25kX25vdF9mb3VuZCk6CisJYWRkIFNSQzEs IHQyLCBWTEVOCisJYWRkIFNSQzIsIHQzLCBWTEVOIAorCWFkZCB0MSwgU1JDMSwgdDAKKwlibHQg dDEsIFNSQ19FTkQxLCBMKG04eDJfbG9vcCkKK0wobTh4Ml9sb29wX2VuZCk6CisjIEVORCBWRUMg U1RPUkUgQlVMSworCXN1YiBOQllURSwgU1JDX0VORDEsIFNSQzEKKworTChsZXNzX204eDIpOgor CWJsdCBOQllURSwgVkxFTiwgTChsZXNzX204eDEpCisJIyBuYnl0ZSA+PSB2bGVuKG04KSAqIDEK KwkjIDEgbG9hZCBmb2xsb3dlZCBieSBhbiBvdmVybGFwIGxvYWQKKwlzdWIgdDEsIFNSQ19FTkQx LCBWTEVOCisJc3ViIHQyLCBTUkNfRU5EMiwgVkxFTgorCSMgZmlyc3QgbG9hZAorCXZsZTgudgl2 MCwgKFNSQzEpCisJdmxlOC52CXY4LCAoU1JDMikKKwl2bXNuZS52diB2MTYsIHYwLCB2OAorCXZm aXJzdC5tIHQwLCB2MTYKKwlibHQgdDAsIHplcm8sIEwobGVzc19tOHgyX2ZpcnN0X25vdF9mb3Vu ZCkKKwkjIGZvdW5kIGluIHZlY3RvcgorCXZzbGlkZWRvd24udnggdjAsIHYwLCB0MAorCXZzbGlk ZWRvd24udnggdjgsIHY4LCB0MAorCXZtdi54LnMgdDAsIHYwCisJdm12LngucyB0MSwgdjgKKwlh bmRpIHQwLCB0MCwgMHhmZgorCWFuZGkgdDEsIHQxLCAweGZmCisJc3ViIGEwLCB0MCwgdDEKKwly ZXQKK0wobGVzc19tOHgyX2ZpcnN0X25vdF9mb3VuZCk6CisJIyBvdmVybGFwIGxvYWQKKwl2bGU4 LnYJdjE2LCAodDEpCisJdmxlOC52CXYyNCwgKHQyKQorCXZtc25lLnZ2IHYwLCB2MTYsIHYyNAor CXZmaXJzdC5tIHQwLCB2MAorCWJsdCB0MCwgemVybywgTChsZXNzX204eDJfc2Vjb25kX25vdF9m b3VuZCkKKwkjIGZvdW5kIGluIHZlY3RvcgorCXZzbGlkZWRvd24udnggdjE2LCB2MTYsIHQwCisJ dnNsaWRlZG93bi52eCB2MjQsIHYyNCwgdDAKKwl2bXYueC5zIHQwLCB2MTYKKwl2bXYueC5zIHQx LCB2MjQKKwlhbmRpIHQwLCB0MCwgMHhmZgorCWFuZGkgdDEsIHQxLCAweGZmCisJc3ViIGEwLCB0 MCwgdDEKKwlyZXQKK0wobGVzc19tOHgyX3NlY29uZF9ub3RfZm91bmQpOgorCSMgaWRlbnRpY2Fs CisJbXYgYTAsIHplcm8KKwlyZXQKKworTChsZXNzX204eDEpOgorCSMgYWRkaSB0MywgemVybywg MQorCSMgYmVxIE5CWVRFLCB0MywgTCgxYnl0ZSkKKwl2c2V0dmxpIFZMRU4sIE5CWVRFLCBlOCwg bTgsIHRhLCBtYQorCXZsZTgudiB2MCwgKFNSQzEpCisJdmxlOC52IHY4LCAoU1JDMikKKwl2bXNu ZS52diB2MTYsIHYwLCB2OAorCXZmaXJzdC5tIHQwLCB2MTYKKwlibHQgdDAsIHplcm8sIEwobGVz c19tOHgxX25vdF9mb3VuZCkKKwkjIGZvdW5kIGluIHZlY3RvcgorCXZzbGlkZWRvd24udnggdjAs IHYwLCB0MAorCXZzbGlkZWRvd24udnggdjgsIHY4LCB0MAorCXZtdi54LnMgdDAsIHYwCisJdm12 LngucyB0MSwgdjgKKwlhbmRpIHQwLCB0MCwgMHhmZgorCWFuZGkgdDEsIHQxLCAweGZmCisJc3Vi IGEwLCB0MCwgdDEKKwlyZXQKK0wobGVzc19tOHgxX25vdF9mb3VuZCk6CisJbXYgYTAsIHplcm8K KwlyZXQKKwkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zeXNkZXBz L3Jpc2N2L211bHRpYXJjaC9tZW1jbXAuYyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNt cC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmJhZTI5ZDhkYWQKLS0t IC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jbXAuYwpAQCAtMCww ICsxLDM1IEBACisvKiBNdWx0aXBsZSB2ZXJzaW9ucyBvZiBtZW1jbXAuCisgICBBbGwgdmVyc2lv bnMgbXVzdCBiZSBsaXN0ZWQgaW4gaWZ1bmMtaW1wbC1saXN0LmMuCisgICBDb3B5cmlnaHQgKEMp IDIwMTctMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl cgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK KyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90 LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisvKiBEZWZp bmUgbXVsdGlwbGUgdmVyc2lvbnMgb25seSBmb3IgdGhlIGRlZmluaXRpb24gaW4gbGliYy4gICov CisjaWYgSVNfSU4gKGxpYmMpCisjIGRlZmluZSBtZW1jbXAgX19yZWRpcmVjdF9tZW1jbXAKKyMg aW5jbHVkZSA8c3RyaW5nLmg+CisjIHVuZGVmIG1lbWNtcAorCisjIGRlZmluZSBTWU1CT0xfTkFN RSBtZW1jbXAKKyMgaW5jbHVkZSAiaWZ1bmMtbWVtY21wLmgiCisKK2xpYmNfaWZ1bmNfcmVkaXJl Y3RlZCAoX19yZWRpcmVjdF9tZW1jbXAsIG1lbWNtcCwgSUZVTkNfU0VMRUNUT1IgKCkpOworCisj IGlmZGVmIFNIQVJFRAorX19oaWRkZW5fdmVyMSAobWVtY21wLCBfX0dJX21lbWNtcCwgX19yZWRp cmVjdF9tZW1jbXApCisgIF9fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5ICgiaGlkZGVuIikpKSBf X2F0dHJpYnV0ZV9jb3B5X18gKG1lbWNtcCk7CisjIGVuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBh L3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNtcGVxLmMgYi9zeXNkZXBzL3Jpc2N2L211bHRp YXJjaC9tZW1jbXBlcS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmFh MWM4YWQ0ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1j bXBlcS5jCkBAIC0wLDAgKzEsMzUgQEAKKy8qIE11bHRpcGxlIHZlcnNpb25zIG9mIF9fbWVtY21w ZXEuCisgICBBbGwgdmVyc2lvbnMgbXVzdCBiZSBsaXN0ZWQgaW4gaWZ1bmMtaW1wbC1saXN0LmMu CisgICBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUg R05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05V IEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLworCisvKiBEZWZpbmUgbXVsdGlwbGUgdmVyc2lvbnMgb25seSBmb3IgdGhlIGRlZmlu aXRpb24gaW4gbGliYy4gICovCisjaWYgSVNfSU4gKGxpYmMpCisjIGRlZmluZSBfX21lbWNtcGVx IF9fcmVkaXJlY3RfX19tZW1jbXBlcQorIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyMgdW5kZWYgX19t ZW1jbXBlcQorCisjIGRlZmluZSBTWU1CT0xfTkFNRSBfX21lbWNtcGVxCisjIGluY2x1ZGUgImlm dW5jLW1lbWNtcGVxLmgiCisKK2xpYmNfaWZ1bmNfcmVkaXJlY3RlZCAoX19yZWRpcmVjdF9fX21l bWNtcGVxLCBfX21lbWNtcGVxLCBJRlVOQ19TRUxFQ1RPUiAoKSk7CisKKyMgaWZkZWYgU0hBUkVE CitfX2hpZGRlbl92ZXIxIChfX21lbWNtcGVxLCBfX0dJX19fbWVtY21wZXEsIF9fcmVkaXJlY3Rf X19tZW1jbXBlcSkKKyAgICBfX2F0dHJpYnV0ZV9fICgodmlzaWJpbGl0eSAoImhpZGRlbiIpKSkg X19hdHRyaWJ1dGVfY29weV9fIChfX21lbWNtcGVxKTsKKyMgZW5kaWYKKyNlbmRpZgpkaWZmIC0t Z2l0IGEvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY3B5LXJ2di12bGVuLlMgYi9zeXNkZXBz L3Jpc2N2L211bHRpYXJjaC9tZW1jcHktcnZ2LXZsZW4uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi44NzZjMTNmNTA5Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9y aXNjdi9tdWx0aWFyY2gvbWVtY3B5LXJ2di12bGVuLlMKQEAgLTAsMCArMSwxMDAgQEAKKy8qIENv cHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBM aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJy YXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov CisgICAKKwkuZ2xvYmwJbWVtY3B5X3J2dl92bGVuCisJLnAyYWxpZ24JMQorCS50eXBlCW1lbWNw eV9ydnZfdmxlbixAZnVuY3Rpb24KKyMgYTA6IGRzdCBhMTogc3JjIGEyOiBuYnl0ZQorI2RlZmlu ZSBEU1QgYTUKKyNkZWZpbmUgRFNUX0VORCBhNgorI2RlZmluZSBTUkMgYTEKKyNkZWZpbmUgU1JD X0VORCBhNAorI2RlZmluZSBOQllURSBhMgorIyB1dGlsaXRpZXMKKyNkZWZpbmUgVkxFTiBhMwor I2RlZmluZSBBTElHTiA4CisjZGVmaW5lIEwobGFiZWwpIC5tZW1jcHlfcnZ2X3ZsZW5fIyNsYWJl bAorCittZW1jcHlfcnZ2X3ZsZW46CisJIyByZXR1cm4gdmFsdWUKKwltdiBEU1QsIGEwCisJYWRk IERTVF9FTkQsIERTVCwgTkJZVEUKKwlhZGQgU1JDX0VORCwgU1JDLCBOQllURQorIyBCRUdJTiBz bWFsbCBsZW5ndGhzCisJIyBhZGRpIHQxLCB6ZXJvLCAxNgorCSMgYmx0IE5CWVRFLCB0MSwgTChs ZXNzXzE2Ynl0ZXMpCisJYWRkaSBWTEVOLCB6ZXJvLCAtMQorCXZzZXR2bGkgVkxFTiwgVkxFTiwg ZTgsIG04LCB0YSwgbWEKKwkjIGJsdCBOQllURSwgVkxFTiwgTChsZXNzX204eDEpCisJc2xsaSB0 MSwgVkxFTiwgMgorCWJsdCBOQllURSwgdDEsIEwobTh4NF9sb29wX2VuZCkKKyMgRU5EIHNtYWxs IGxlbmd0aAorCisjIEJFR0lOIGNoZWNrIGFsaWdubWVudAorIyBhbGlnbiBvbiA4QgorCWFuZGkg dDAsIERTVCwgNworCWJlcXogdDAsIEwodmVjX3NldCkKKwlzdWIgdDAsIHplcm8sIHQwCisJYWRk aSB0MCwgdDAsIDgKKwlsZCB0MSwgKFNSQykKKwlzZCB0MSwgKERTVCkKKwlhZGQgU1JDLCBTUkMs IHQwCisJYWRkIERTVCwgRFNULCB0MAorIyBFTkQgY2hlY2sgYWxpZ25tZW50CisjIEJFR0lOIFZF QyBTVE9SRSBCVUxLCitMKHZlY19zZXQpOgorIyB0MDogdG90YWwgdmxlbiAqIDQgIHQxOiBkc3Qg KyB0b3RhbCB2bGVuICogNAorCXNsbGkgdDAsIFZMRU4sIDIKKwlhZGQgdDEsIERTVCwgdDAKKwli bHQgRFNUX0VORCwgdDEsIEwobTh4NF9sb29wX2VuZCkgICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0 b3RhbCB2bGVuCisjIHVzZSBtYW55IHQqIHRvIGV4cGxvaXQgZGF0YSBwYXJhbGxlbGlzbQorTCht OHg0X2xvb3ApOgorCSMgbG9hZHMKKwl2bGU4LnYgdjAsIChTUkMpCisJYWRkIHQxLCBTUkMsIFZM RU4KKwl2bGU4LnYgdjgsICh0MSkKKwlhZGQgdDIsIHQxLCBWTEVOCisJdmxlOC52IHYxNiwgKHQy KQorCWFkZCB0MywgdDIsIFZMRU4KKwl2bGU4LnYgdjI0LCAodDMpCisJYWRkIFNSQywgdDMsIFZM RU4KKwkjIHN0b3JlCisJdnNlOC52IHYwLCAoRFNUKQorCWFkZCB0MSwgRFNULCBWTEVOCisJdnNl OC52IHY4LCAodDEpCisJYWRkIHQyLCB0MSwgVkxFTgorCXZzZTgudiB2MTYsICh0MikKKwlhZGQg dDMsIHQyLCBWTEVOCisJdnNlOC52IHYyNCwgKHQzKQorCWFkZCBEU1QsIHQzLCBWTEVOCisJIyBj aGVjayBsb29wCisJYWRkIHQ0LCBEU1QsIHQwCisJYmdlIERTVF9FTkQsIHQ0LCBMKG04eDRfbG9v cCkgICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3RhbCB2bGVuCitMKG04eDRfbG9vcF9lbmQpOgor IyBFTkQgVkVDIFNUT1JFIEJVTEsKKwlzdWIgTkJZVEUsIERTVF9FTkQsIERTVAorCW12IHQxLCBO QllURQorTChtOHgxX2xvb3ApOgorCW12IE5CWVRFLCB0MQorCXZzZXR2bGkgVkxFTiwgTkJZVEUs IGU4LCBtOCwgdGEsIG1hCisJdmxlOC52IHYwLCAoU1JDKQorCXZzZTgudiB2MCwgKERTVCkKKwlh ZGQgU1JDLCBTUkMsIFZMRU4KKwlhZGQgRFNULCBEU1QsIFZMRU4KKwlzdWIgdDEsIE5CWVRFLCBW TEVOCisJYm5leiB0MSwgTChtOHgxX2xvb3ApCisJcmV0CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jp c2N2L211bHRpYXJjaC9tZW1jcHktcnZ2LlMgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1j cHktcnZ2LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNTg2YTkyZWU1 MAotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNweS1ydnYu UwpAQCAtMCwwICsxLDEyNyBAQAorLyogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjIgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMg TGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9m IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNl IGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworCS5nbG9ibAltZW1jcHlfcnZ2CisJLnAyYWxp Z24JMQorCS50eXBlCW1lbWNweV9ydnYsQGZ1bmN0aW9uCisjIGEwOiBkc3QgYTE6IHNyYyBhMjog bmJ5dGUKKyNkZWZpbmUgRFNUIGE1CisjZGVmaW5lIERTVF9FTkQgYTYKKyNkZWZpbmUgU1JDIGEx CisjZGVmaW5lIFNSQ19FTkQgYTQKKyNkZWZpbmUgTkJZVEUgYTIKKyMgdXRpbGl0aWVzCisjZGVm aW5lIFZMRU4gYTMKKyNkZWZpbmUgQUxJR04gOAorI2RlZmluZSBMKGxhYmVsKSAubWVtY3B5X3J2 dl8jI2xhYmVsCisKK21lbWNweV9ydnY6CisJIyByZXR1cm4gdmFsdWUKKwltdiBEU1QsIGEwCisJ YWRkIERTVF9FTkQsIERTVCwgTkJZVEUKKwlhZGQgU1JDX0VORCwgU1JDLCBOQllURQorIyBCRUdJ TiBzbWFsbCBsZW5ndGhzCisJIyBhZGRpIHQxLCB6ZXJvLCAxNgorCSMgYmx0IE5CWVRFLCB0MSwg TChsZXNzXzE2Ynl0ZXMpCisJYWRkaSBWTEVOLCB6ZXJvLCAtMQorCXZzZXR2bGkgVkxFTiwgVkxF TiwgZTgsIG04LCB0YSwgbWEKKwlibHQgTkJZVEUsIFZMRU4sIEwobGVzc19tOHgxKQorCXNsbGkg dDEsIFZMRU4sIDIKKwlibHQgTkJZVEUsIHQxLCBMKGxlc3NfbTh4NCkKKyMgRU5EIHNtYWxsIGxl bmd0aAorCisjIEJFR0lOIGNoZWNrIGFsaWdubWVudAorIyBhbGlnbiBvbiA4QgorCWFuZGkgdDAs IERTVCwgNworCWJlcXogdDAsIEwodmVjX3NldCkKKwlzdWIgdDAsIHplcm8sIHQwCisJYWRkaSB0 MCwgdDAsIDgKKwlsZCB0MSwgKFNSQykKKwlzZCB0MSwgKERTVCkKKwlhZGQgU1JDLCBTUkMsIHQw CisJYWRkIERTVCwgRFNULCB0MAorIyBFTkQgY2hlY2sgYWxpZ25tZW50CisjIEJFR0lOIFZFQyBT VE9SRSBCVUxLCitMKHZlY19zZXQpOgorIyB0MDogdG90YWwgdmxlbiAqIDQgIHQxOiBkc3QgKyB0 b3RhbCB2bGVuICogNAorCXNsbGkgdDAsIFZMRU4sIDIKKwlhZGQgdDEsIERTVCwgdDAKKwlibHQg RFNUX0VORCwgdDEsIEwobTh4NF9sb29wX2VuZCkgICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3Rh bCB2bGVuCisjIHVzZSBtYW55IHQqIHRvIGV4cGxvaXQgZGF0YSBwYXJhbGxlbGlzbQorTChtOHg0 X2xvb3ApOgorCSMgbG9hZHMKKwl2bGU4LnYgdjAsIChTUkMpCisJYWRkIHQxLCBTUkMsIFZMRU4K Kwl2bGU4LnYgdjgsICh0MSkKKwlhZGQgdDIsIHQxLCBWTEVOCisJdmxlOC52IHYxNiwgKHQyKQor CWFkZCB0MywgdDIsIFZMRU4KKwl2bGU4LnYgdjI0LCAodDMpCisJYWRkIFNSQywgdDMsIFZMRU4K KwkjIHN0b3JlCisJdnNlOC52IHYwLCAoRFNUKQorCWFkZCB0MSwgRFNULCBWTEVOCisJdnNlOC52 IHY4LCAodDEpCisJYWRkIHQyLCB0MSwgVkxFTgorCXZzZTgudiB2MTYsICh0MikKKwlhZGQgdDMs IHQyLCBWTEVOCisJdnNlOC52IHYyNCwgKHQzKQorCWFkZCBEU1QsIHQzLCBWTEVOCisJIyBjaGVj ayBsb29wCisJYWRkIHQ0LCBEU1QsIHQwCisJYmdlIERTVF9FTkQsIHQ0LCBMKG04eDRfbG9vcCkg ICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3RhbCB2bGVuCitMKG04eDRfbG9vcF9lbmQpOgorIyBF TkQgVkVDIFNUT1JFIEJVTEsKKwlzdWIgTkJZVEUsIERTVF9FTkQsIERTVAorTChsZXNzX204eDQp OgorCXNsbGkgdDEsIFZMRU4sIDEKKwlibHQgTkJZVEUsIHQxLCBMKGxlc3NfbTh4MikKKwkjIG5i eXRlID49IHZsZW4obTgpICogMgorCSMgbG9hZHMKKwl2bGU4LnYgdjAsIChTUkMpCisJYWRkIHQx LCBTUkMsIFZMRU4KKwl2bGU4LnYgdjgsICh0MSkKKwlzdWIgdDIsIFNSQ19FTkQsIFZMRU4KKwl2 bGU4LnYgdjI0LCAodDIpCisJc3ViIHQzLCB0MiwgVkxFTgorCXZsZTgudiB2MTYsICh0MykKKwkj IHN0b3JlcworCXZzZTgudiB2MCwgKERTVCkKKwlhZGQgdDEsIERTVCwgVkxFTgorCXZzZTgudiB2 OCwgKHQxKQorCXN1YiB0MiwgRFNUX0VORCwgVkxFTgorCXZzZTgudiB2MjQsICh0MikKKwlzdWIg dDMsIHQyLCBWTEVOCisJdnNlOC52IHYxNiwgKHQzKQorCXJldAorTChsZXNzX204eDIpOgorCWJs dCBOQllURSwgVkxFTiwgTChsZXNzX204eDEpCisJIyBuYnl0ZSA+PSB2bGVuKG04KSAqIDEKKwkj IGxvYWRzCisJdmxlOC52IHYwLCAoU1JDKQorCXN1YiB0MSwgU1JDX0VORCwgVkxFTgorCXZsZTgu diB2OCwgKHQxKQorCSMgc3RvcmVzCisJdnNlOC52IHYwLCAoRFNUKQorCXN1YiB0MiwgRFNUX0VO RCwgVkxFTgorCXZzZTgudiB2OCwgKHQyKQorCXJldAorTChsZXNzX204eDEpOgorCXZzZXR2bGkg VkxFTiwgTkJZVEUsIGU4LCBtOCwgdGEsIG1hCisJdmxlOC52IHY4LCAoU1JDKQorCXZzZTgudiB2 OCwgKERTVCkKKwlyZXQKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNw eS5jIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY3B5LmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uN2M5MDIzN2FkOQotLS0gL2Rldi9udWxsCisrKyBiL3N5c2Rl cHMvcmlzY3YvbXVsdGlhcmNoL21lbWNweS5jCkBAIC0wLDAgKzEsMzUgQEAKKy8qIE11bHRpcGxl IHZlcnNpb25zIG9mIG1lbWNweS4KKyAgIEFsbCB2ZXJzaW9ucyBtdXN0IGJlIGxpc3RlZCBpbiBp ZnVuYy1pbXBsLWxpc3QuYy4KKyAgIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExp YnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBh bG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKy8qIERlZmluZSBtdWx0aXBsZSB2ZXJzaW9ucyBv bmx5IGZvciB0aGUgZGVmaW5pdGlvbiBpbiBsaWJjLiAgKi8KKyNpZiBJU19JTiAobGliYykKKyMg ZGVmaW5lIG1lbWNweSBfX3JlZGlyZWN0X21lbWNweQorIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyMg dW5kZWYgbWVtY3B5CisKKyMgZGVmaW5lIFNZTUJPTF9OQU1FIG1lbWNweQorIyBpbmNsdWRlICJp ZnVuYy1tZW1jcHkuaCIKKworbGliY19pZnVuY19yZWRpcmVjdGVkIChfX3JlZGlyZWN0X21lbWNw eSwgbWVtY3B5LCBJRlVOQ19TRUxFQ1RPUiAoKSk7CisKKyMgaWZkZWYgU0hBUkVECitfX2hpZGRl bl92ZXIxIChtZW1jcHksIF9fR0lfbWVtY3B5LCBfX3JlZGlyZWN0X21lbWNweSkKKyAgX19hdHRy aWJ1dGVfXyAoKHZpc2liaWxpdHkgKCJoaWRkZW4iKSkpIF9fYXR0cmlidXRlX2NvcHlfXyAobWVt Y3B5KTsKKyMgZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNjdi9tdWx0aWFy Y2gvbWVtbW92ZS1ydnYtdmxlbi5TIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtbW92ZS1y dnYtdmxlbi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmVkYzdhN2Iw ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1tb3ZlLXJ2 di12bGVuLlMKQEAgLTAsMCArMSwxMTAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9u IDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAg TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0 dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisgICAKKwkuZ2xvYmwJbWVtbW92ZV9y dnZfdmxlbgorCS5wMmFsaWduCTEKKwkudHlwZQltZW1tb3ZlX3J2dl92bGVuLEBmdW5jdGlvbgor IyBhMDogZHN0IGExOiBzcmMgYTI6IG5ieXRlCisjZGVmaW5lIERTVCBhNQorI2RlZmluZSBEU1Rf RU5EIGE2CisjZGVmaW5lIFNSQyBhMQorI2RlZmluZSBTUkNfRU5EIGE0CisjZGVmaW5lIE5CWVRF IGEyCisjIHV0aWxpdGllcworI2RlZmluZSBWTEVOIGEzCisjZGVmaW5lIEFMSUdOIDgKKyNkZWZp bmUgTChsYWJlbCkgLm1lbW1vdmVfcnZ2X3ZsZW5fIyNsYWJlbAorCittZW1tb3ZlX3J2dl92bGVu OgorCSMgcmV0dXJuIHZhbHVlCisJbXYgRFNULCBhMAorCWFkZCBEU1RfRU5ELCBEU1QsIE5CWVRF CisJYWRkIFNSQ19FTkQsIFNSQywgTkJZVEUKKyMgQkVHSU4gb3ZlcmxhcHBpbmcgY29uZGl0aW9u CisgICAgc3ViIHQwLCBEU1QsIFNSQworICAgIGJsdCB0MCwgTkJZVEUsIEwob3ZlcmxhcHBpbmcp ICAjIHVzZSBtZW1jcHkgaWYgZHN0IC0gc3JjID49IG5ieXRlCisgICAgbXYgczEsIHJhCisgICAg amFsIHJhLCBtZW1jcHlfcnZ2CisgICAgbXYgcmEsIHMxCisgICAgcmV0CisjIEVORCBvdmVybGFw cGluZyBjb25kaXRpb24KKyMgQkVHSU4gc21hbGwgbGVuZ3RocworCSMgYWRkaSB0MSwgemVybywg MTYKKwkjIGJsdCBOQllURSwgdDEsIEwobGVzc18xNmJ5dGVzKQorTChvdmVybGFwcGluZyk6CisJ YWRkaSBWTEVOLCB6ZXJvLCAtMQorCXZzZXR2bGkgVkxFTiwgVkxFTiwgZTgsIG04LCB0YSwgbWEK KwkjIGJsdCBOQllURSwgVkxFTiwgTChsZXNzX204eDEpCisJc2xsaSB0MSwgVkxFTiwgMgorCWJs dCBOQllURSwgdDEsIEwobTh4NF9sb29wX2VuZCkKKyMgRU5EIHNtYWxsIGxlbmd0aAorCisjIEJF R0lOIGNoZWNrIGFsaWdubWVudAorIyBhbGlnbiBvbiA4QgorIyBoYXJkIHRvIGdldCBhbGlnbm1l bnQgcmlnaHQKKwkjIGFuZGkgdDAsIERTVF9FTkQsIDcKKwkjIGJlcXogdDAsIEwodmVjX3NldCkK KwkjIGxkIHQxLCAtOChTUkNfRU5EKQorCSMgc2QgdDEsIC04KERTVF9FTkQpCisJIyBzdWIgU1JD X0VORCwgU1JDX0VORCwgdDAKKwkjIHN1YiBEU1RfRU5ELCBEU1RfRU5ELCB0MAorIyBFTkQgY2hl Y2sgYWxpZ25tZW50CisjIEJFR0lOIFZFQyBTVE9SRSBCVUxLCitMKHZlY19zZXQpOgorIyB0MDog dG90YWwgdmxlbiAqIDQgIHQxOiBkc3RfZW5kIC0gdG90YWwgdmxlbiAqIDQKKwlzbGxpIHQwLCBW TEVOLCAyCisJc3ViIHQxLCBEU1RfRU5ELCB0MAorCWJsdCB0MSwgRFNULCBMKG04eDRfbG9vcF9l bmQpICAjIGJyYW5jaCBpZiBsZXNzIHRoYW4gdG90YWwgdmxlbgorIyB1c2UgbWFueSB0KiB0byBl eHBsb2l0IGRhdGEgcGFyYWxsZWxpc20KK0wobTh4NF9sb29wKToKKwkjIGxvYWRzCisgICAgc3Vi IFNSQ19FTkQsIFNSQ19FTkQsIFZMRU4KKwl2bGU4LnYgdjAsIChTUkNfRU5EKQorCXN1YiB0MSwg U1JDX0VORCwgVkxFTgorCXZsZTgudiB2OCwgKHQxKQorCXN1YiB0MiwgdDEsIFZMRU4KKwl2bGU4 LnYgdjE2LCAodDIpCisJc3ViIHQzLCB0MiwgVkxFTgorCXZsZTgudiB2MjQsICh0MykKKyAgICBt diBTUkNfRU5ELCB0MworCSMgc3RvcmUKKyAgICBzdWIgRFNUX0VORCwgRFNUX0VORCwgVkxFTgor CXZzZTgudiB2MCwgKERTVF9FTkQpCisJc3ViIHQxLCBEU1RfRU5ELCBWTEVOCisJdnNlOC52IHY4 LCAodDEpCisJc3ViIHQyLCB0MSwgVkxFTgorCXZzZTgudiB2MTYsICh0MikKKwlzdWIgdDMsIHQy LCBWTEVOCisJdnNlOC52IHYyNCwgKHQzKQorCW12IERTVF9FTkQsIHQzCisJIyBjaGVjayBsb29w CisJc3ViIHQ0LCBEU1RfRU5ELCB0MAorCWJnZSB0NCwgRFNULCBMKG04eDRfbG9vcCkgICMgYnJh bmNoIGlmIGxlc3MgdGhhbiB0b3RhbCB2bGVuCitMKG04eDRfbG9vcF9lbmQpOgorIyBFTkQgVkVD IFNUT1JFIEJVTEsKKwlzdWIgTkJZVEUsIERTVF9FTkQsIERTVAorICAgIG12IHQxLCBOQllURQor TChtOHgxX2xvb3ApOgorCW12IE5CWVRFLCB0MQorCXZzZXR2bGkgVkxFTiwgTkJZVEUsIGU4LCBt OCwgdGEsIG1hCisgICAgc3ViIFNSQ19FTkQsIFNSQ19FTkQsIFZMRU4KKyAgICBzdWIgRFNUX0VO RCwgRFNUX0VORCwgVkxFTgorCXZsZTgudiB2MCwgKFNSQ19FTkQpCisJdnNlOC52IHYwLCAoRFNU X0VORCkKKwlzdWIgdDEsIE5CWVRFLCBWTEVOCisJYm5leiB0MSwgTChtOHgxX2xvb3ApCisJcmV0 CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1tb3ZlLXJ2di5TIGIvc3lz ZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtbW92ZS1ydnYuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi44ZTQwMzUyYTIzCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9y aXNjdi9tdWx0aWFyY2gvbWVtbW92ZS1ydnYuUwpAQCAtMCwwICsxLDEzOCBAQAorLyogQ29weXJp Z2h0IChDKSAyMDE3LTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlz IGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7 IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKyAg IAorCS5nbG9ibAltZW1tb3ZlX3J2dgorCS5wMmFsaWduCTEKKwkudHlwZQltZW1tb3ZlX3J2dixA ZnVuY3Rpb24KKyMgYTA6IGRzdCBhMTogc3JjIGEyOiBuYnl0ZQorI2RlZmluZSBEU1QgYTUKKyNk ZWZpbmUgRFNUX0VORCBhNgorI2RlZmluZSBTUkMgYTEKKyNkZWZpbmUgU1JDX0VORCBhNAorI2Rl ZmluZSBOQllURSBhMgorIyB1dGlsaXRpZXMKKyNkZWZpbmUgVkxFTiBhMworI2RlZmluZSBBTElH TiA4CisjZGVmaW5lIEwobGFiZWwpIC5tZW1tb3ZlX3J2dl8jI2xhYmVsCisKK21lbW1vdmVfcnZ2 OgorCSMgcmV0dXJuIHZhbHVlCisJbXYgRFNULCBhMAorCWFkZCBEU1RfRU5ELCBEU1QsIE5CWVRF CisJYWRkIFNSQ19FTkQsIFNSQywgTkJZVEUKKyMgQkVHSU4gb3ZlcmxhcHBpbmcgY29uZGl0aW9u CisgICAgc3ViIHQwLCBEU1QsIFNSQworICAgIGJsdCB0MCwgTkJZVEUsIEwob3ZlcmxhcHBpbmcp ICAjIHVzZSBtZW1jcHkgaWYgZHN0IC0gc3JjID49IG5ieXRlCisgICAgbXYgczEsIHJhCisgICAg amFsIHJhLCBtZW1jcHlfcnZ2CisgICAgbXYgcmEsIHMxCisgICAgcmV0CisjIEVORCBvdmVybGFw cGluZyBjb25kaXRpb24KKyMgQkVHSU4gc21hbGwgbGVuZ3RocworCSMgYWRkaSB0MSwgemVybywg MTYKKwkjIGJsdCBOQllURSwgdDEsIEwobGVzc18xNmJ5dGVzKQorTChvdmVybGFwcGluZyk6CisJ YWRkaSBWTEVOLCB6ZXJvLCAtMQorCXZzZXR2bGkgVkxFTiwgVkxFTiwgZTgsIG04LCB0YSwgbWEK KwkjIGJsdCBOQllURSwgVkxFTiwgTChsZXNzX204eDEpCisJc2xsaSB0MSwgVkxFTiwgMgorCWJs dCBOQllURSwgdDEsIEwobGVzc19tOHg0KQorIyBFTkQgc21hbGwgbGVuZ3RoCisKKyMgQkVHSU4g Y2hlY2sgYWxpZ25tZW50CisjIGFsaWduIG9uIDhCCisjIGhhcmQgdG8gZ2V0IGFsaWdubWVudCBy aWdodAorCSMgYW5kaSB0MCwgRFNUX0VORCwgNworCSMgYmVxeiB0MCwgTCh2ZWNfc2V0KQorCSMg bGQgdDEsIC04KFNSQ19FTkQpCisJIyBzZCB0MSwgLTgoRFNUX0VORCkKKwkjIHN1YiBTUkNfRU5E LCBTUkNfRU5ELCB0MAorCSMgc3ViIERTVF9FTkQsIERTVF9FTkQsIHQwCisjIEVORCBjaGVjayBh bGlnbm1lbnQKKyMgQkVHSU4gVkVDIFNUT1JFIEJVTEsKK0wodmVjX3NldCk6CisjIHQwOiB0b3Rh bCB2bGVuICogNCAgdDE6IGRzdF9lbmQgLSB0b3RhbCB2bGVuICogNAorCXNsbGkgdDAsIFZMRU4s IDIKKwlzdWIgdDEsIERTVF9FTkQsIHQwCisJYmx0IHQxLCBEU1QsIEwobTh4NF9sb29wX2VuZCkg ICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3RhbCB2bGVuCisjIHVzZSBtYW55IHQqIHRvIGV4cGxv aXQgZGF0YSBwYXJhbGxlbGlzbQorTChtOHg0X2xvb3ApOgorCSMgbG9hZHMKKyAgICBzdWIgU1JD X0VORCwgU1JDX0VORCwgVkxFTgorCXZsZTgudiB2MCwgKFNSQ19FTkQpCisJc3ViIHQxLCBTUkNf RU5ELCBWTEVOCisJdmxlOC52IHY4LCAodDEpCisJc3ViIHQyLCB0MSwgVkxFTgorCXZsZTgudiB2 MTYsICh0MikKKwlzdWIgdDMsIHQyLCBWTEVOCisJdmxlOC52IHYyNCwgKHQzKQorICAgIG12IFNS Q19FTkQsIHQzCisJIyBzdG9yZQorICAgIHN1YiBEU1RfRU5ELCBEU1RfRU5ELCBWTEVOCisJdnNl OC52IHYwLCAoRFNUX0VORCkKKwlzdWIgdDEsIERTVF9FTkQsIFZMRU4KKwl2c2U4LnYgdjgsICh0 MSkKKwlzdWIgdDIsIHQxLCBWTEVOCisJdnNlOC52IHYxNiwgKHQyKQorCXN1YiB0MywgdDIsIFZM RU4KKwl2c2U4LnYgdjI0LCAodDMpCisJbXYgRFNUX0VORCwgdDMKKwkjIGNoZWNrIGxvb3AKKwlz dWIgdDQsIERTVF9FTkQsIHQwCisJYmdlIHQ0LCBEU1QsIEwobTh4NF9sb29wKSAgIyBicmFuY2gg aWYgbGVzcyB0aGFuIHRvdGFsIHZsZW4KK0wobTh4NF9sb29wX2VuZCk6CisjIEVORCBWRUMgU1RP UkUgQlVMSworCXN1YiBOQllURSwgRFNUX0VORCwgRFNUCitMKGxlc3NfbTh4NCk6CisJc2xsaSB0 MSwgVkxFTiwgMQorCWJsdCBOQllURSwgdDEsIEwobGVzc19tOHgyKQorCSMgbmJ5dGUgPj0gdmxl bihtOCkgKiAyCisJIyBsb2FkcworCXZsZTgudiB2MCwgKFNSQykKKwlhZGQgdDEsIFNSQywgVkxF TgorCXZsZTgudiB2OCwgKHQxKQorCXN1YiB0MiwgU1JDX0VORCwgVkxFTgorCXZsZTgudiB2MjQs ICh0MikKKwlzdWIgdDMsIHQyLCBWTEVOCisJdmxlOC52IHYxNiwgKHQzKQorCSMgc3RvcmVzCisJ dnNlOC52IHYwLCAoRFNUKQorCWFkZCB0MSwgRFNULCBWTEVOCisJdnNlOC52IHY4LCAodDEpCisJ c3ViIHQyLCBEU1RfRU5ELCBWTEVOCisJdnNlOC52IHYyNCwgKHQyKQorCXN1YiB0MywgdDIsIFZM RU4KKwl2c2U4LnYgdjE2LCAodDMpCisJcmV0CitMKGxlc3NfbTh4Mik6CisJYmx0IE5CWVRFLCBW TEVOLCBMKGxlc3NfbTh4MSkKKwkjIG5ieXRlID49IHZsZW4obTgpICogMQorCSMgbG9hZHMKKwl2 bGU4LnYgdjAsIChTUkMpCisJc3ViIHQxLCBTUkNfRU5ELCBWTEVOCisJdmxlOC52IHY4LCAodDEp CisJIyBzdG9yZXMKKwl2c2U4LnYgdjAsIChEU1QpCisJc3ViIHQyLCBEU1RfRU5ELCBWTEVOCisJ dnNlOC52IHY4LCAodDIpCisJcmV0CitMKGxlc3NfbTh4MSk6CisJdnNldHZsaSBWTEVOLCBOQllU RSwgZTgsIG04LCB0YSwgbWEKKwl2bGU4LnYgdjgsIChTUkMpCisJdnNlOC52IHY4LCAoRFNUKQor CXJldAorICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N5c2Rl cHMvcmlzY3YvbXVsdGlhcmNoL21lbXNldC1ydnYtdmxlbi5TIGIvc3lzZGVwcy9yaXNjdi9tdWx0 aWFyY2gvbWVtc2V0LXJ2di12bGVuLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uMmEwMTViNjkwMAotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlh cmNoL21lbXNldC1ydnYtdmxlbi5TCkBAIC0wLDAgKzEsOTQgQEAKKy8qIENvcHlyaWdodCAoQykg MjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy CisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor ICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3Qs IHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisJLmdsb2JsCW1l bXNldF9ydnZfdmxlbgorCS5wMmFsaWduCTEKKwkudHlwZQltZW1zZXRfcnZ2X3ZsZW4sQGZ1bmN0 aW9uCisjIGEwOiBkc3QgYTE6IGMgYTI6IG5ieXRlCisjZGVmaW5lIERTVCBhNQorI2RlZmluZSBE U1RfRU5EIGE3CisjZGVmaW5lIENDIGExCisjZGVmaW5lIE5CWVRFIGEyCisjIHV0aWxpdGllcwor I2RlZmluZSBWTEVOIGEzCisjZGVmaW5lIEE0IGE0CisjZGVmaW5lIEE2IGE2CisjZGVmaW5lIEFM SUdOIDgKKyNkZWZpbmUgTChsYWJlbCkgLm1lbXNldF9ydnZfdmxlbl8jI2xhYmVsCisKK21lbXNl dF9ydnZfdmxlbjoKKwkjIHJldHVybiB2YWx1ZQorCW12IERTVCwgYTAKKwlhZGQgRFNUX0VORCwg RFNULCBOQllURQorCSMgdG8gdWludDgKKwlhbmRpIENDLCBDQywgMHhmZgorCSMgYnJvYWRjYXN0 IGluIHVpbnQ2NAorCXNsbGkgdDAsIENDLCA4ICAgICAjIHQwID0gQ0MgPDwgOAorCW9yIENDLCB0 MCwgQ0MgICAgICAjIENDID0gQ0MgfCB0MAorCXNsbGkgdDAsIENDLCAxNiAgICAjIHQwID0gQ0Mg PDwgMTYKKwlvciBDQywgdDAsIENDICAgICAgIyBDQyA9IENDIHwgdDAKKwlzbGxpIHQwLCBDQywg MzIgICAgIyB0MCA9IENDIDw8IDMyCisJb3IgQ0MsIHQwLCBDQyAgICAgICMgQ0MgPSBDQyB8IHQw CisjIEJFR0lOIHNtYWxsIGxlbmd0aHMKKwkjIGFkZGkgdDEsIHplcm8sIDE2CisJIyBibHQgTkJZ VEUsIHQxLCBMKGxlc3NfMTZieXRlcykKKwlhZGRpIFZMRU4sIHplcm8sIC0xCisJdnNldHZsaSBW TEVOLCBWTEVOLCBlOCwgbTgsIHRhLCBtYQorCXZtdi52LngJdjgsIENDCisJIyBibHQgTkJZVEUs IFZMRU4sIEwobGVzc19tOHgxKQorCXNsbGkgdDEsIFZMRU4sIDIKKwlibHQgTkJZVEUsIHQxLCBM KG04eDRfbG9vcF9lbmQpCisjIEVORCBzbWFsbCBsZW5ndGgKKyMgbmJ5dGUgPj0gdmxlbiB4IDQK KworIyBCRUdJTiBhbGlnbiBvbiA4QgorCWFuZGkgdDAsIERTVCwgNworCWJlcXogdDAsIEwodmVj X3NldCkKKwlzdWIgdDAsIHplcm8sIHQwCisJYWRkaSB0MCwgdDAsIDgKKwlzZCBDQywgKERTVCkK KwlhZGQgRFNULCBEU1QsIHQwCisjIEVORCBhbGlnbiBvbiA4QgorIyBCRUdJTiBWRUMgU1RPUkUg QlVMSworTCh2ZWNfc2V0KToKKyMgdDA6IHRvdGFsIHZsZW4gKiA0ICB0MTogZHN0ICsgdG90YWwg dmxlbiAqIDQKKwlzbGxpIHQwLCBWTEVOLCAyCisJYWRkIHQxLCBEU1QsIHQwCisJYmx0IERTVF9F TkQsIHQxLCBMKG04eDRfbG9vcF9lbmQpICAjIGJyYW5jaCBpZiBsZXNzIHRoYW4gdG90YWwgdmxl bgorIyB1c2UgbWFueSB0KiB0byBleHBsb2l0IGRhdGEgcGFyYWxsZWxpc20KK0wobTh4NF9sb29w KToKKwl2c2U4LnYJdjgsIChEU1QpCisJYWRkIHQyLCBEU1QsIFZMRU4KKwl2c2U4LnYJdjgsICh0 MikKKwlhZGQgdDMsIHQyLCBWTEVOCisJdnNlOC52CXY4LCAodDMpCisJYWRkIHQ0LCB0MywgVkxF TgorCXZzZTgudgl2OCwgKHQ0KQorCWFkZCBEU1QsIHQ0LCBWTEVOCisJYWRkIHQxLCBEU1QsIHQw CisJYmdlIERTVF9FTkQsIHQxLCBMKG04eDRfbG9vcCkgICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0 b3RhbCB2bGVuCitMKG04eDRfbG9vcF9lbmQpOgorIyBFTkQgVkVDIFNUT1JFIEJVTEsKKwlzdWIg TkJZVEUsIERTVF9FTkQsIERTVAorCW12IHQxLCBOQllURQorTChtOHgxX2xvb3ApOgorCW12IE5C WVRFLCB0MQorCXZzZXR2bGkgdDAsIE5CWVRFLCBlOCwgbTgsIHRhLCBtYQorCXZzZTgudiB2OCwg KERTVCkKKwlhZGQgRFNULCBEU1QsIHQwCisJc3ViIHQxLCBOQllURSwgdDAKKwlibmV6IHQxLCBM KG04eDFfbG9vcCkKKwlyZXQKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21l bXNldC1ydnYuUyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbXNldC1ydnYuUwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lNTE2MTg1ZTYxCi0tLSAvZGV2L251bGwK KysrIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtc2V0LXJ2di5TCkBAIC0wLDAgKzEsMTI2 IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBU aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJy YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUg R05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLworICAgCisJLmdsb2JsCW1lbXNldF9ydnYKKwkucDJhbGlnbgkxCisJLnR5cGUJ bWVtc2V0X3J2dixAZnVuY3Rpb24KKyMgYTA6IGRzdCBhMTogYyBhMjogbmJ5dGUKKyNkZWZpbmUg RFNUIGE1CisjZGVmaW5lIERTVF9FTkQgYTcKKyNkZWZpbmUgQ0MgYTEKKyNkZWZpbmUgTkJZVEUg YTIKKyMgdXRpbGl0aWVzCisjZGVmaW5lIFZMRU4gYTMKKyNkZWZpbmUgQTQgYTQKKyNkZWZpbmUg QTYgYTYKKyNkZWZpbmUgQUxJR04gOAorI2RlZmluZSBMKGxhYmVsKSAubWVtc2V0X3J2dl8jI2xh YmVsCisKK21lbXNldF9ydnY6CisJIyByZXR1cm4gdmFsdWUKKwltdiBEU1QsIGEwCisJYWRkIERT VF9FTkQsIERTVCwgTkJZVEUKKwkjIHRvIHVpbnQ4CisJYW5kaSBDQywgQ0MsIDB4ZmYKKwkjIGJy b2FkY2FzdCBpbiB1aW50NjQKKwlzbGxpIHQwLCBDQywgOCAgICAgIyB0MCA9IENDIDw8IDgKKwlv ciBDQywgdDAsIENDICAgICAgIyBDQyA9IENDIHwgdDAKKwlzbGxpIHQwLCBDQywgMTYgICAgIyB0 MCA9IENDIDw8IDE2CisJb3IgQ0MsIHQwLCBDQyAgICAgICMgQ0MgPSBDQyB8IHQwCisJc2xsaSB0 MCwgQ0MsIDMyICAgICMgdDAgPSBDQyA8PCAzMgorCW9yIENDLCB0MCwgQ0MgICAgICAjIENDID0g Q0MgfCB0MAorIyBCRUdJTiBzbWFsbCBsZW5ndGhzCisJIyBhZGRpIHQxLCB6ZXJvLCAxNgorCSMg Ymx0IE5CWVRFLCB0MSwgTChsZXNzXzE2Ynl0ZXMpCisJYWRkaSBWTEVOLCB6ZXJvLCAtMQorCXZz ZXR2bGkgVkxFTiwgVkxFTiwgZTgsIG04LCB0YSwgbWEKKwl2bXYudi54CXY4LCBDQworCWJsdCBO QllURSwgVkxFTiwgTChsZXNzX204eDEpCisJc2xsaSB0MSwgVkxFTiwgMgorCWJsdCBOQllURSwg dDEsIEwobGVzc19tOHg0KQorIyBFTkQgc21hbGwgbGVuZ3RoCisjIG5ieXRlID49IHZsZW4geCA0 CisKKyMgQkVHSU4gYWxpZ24gb24gOEIKKwlhbmRpIHQwLCBEU1QsIDcKKwliZXF6IHQwLCBMKHZl Y19zZXQpCisJc3ViIHQwLCB6ZXJvLCB0MAorCWFkZGkgdDAsIHQwLCA4CisJc2QgQ0MsIChEU1Qp CisJYWRkIERTVCwgRFNULCB0MAorIyBFTkQgYWxpZ24gb24gOEIKKyMgQkVHSU4gVkVDIFNUT1JF IEJVTEsKK0wodmVjX3NldCk6CisjIHQwOiB0b3RhbCB2bGVuICogNCAgdDE6IGRzdCArIHRvdGFs IHZsZW4gKiA0CisJc2xsaSB0MCwgVkxFTiwgMgorCWFkZCB0MSwgRFNULCB0MAorCWJsdCBEU1Rf RU5ELCB0MSwgTChtOHg0X2xvb3BfZW5kKSAgIyBicmFuY2ggaWYgbGVzcyB0aGFuIHRvdGFsIHZs ZW4KKyMgdXNlIG1hbnkgdCogdG8gZXhwbG9pdCBkYXRhIHBhcmFsbGVsaXNtCitMKG04eDRfbG9v cCk6CisJdnNlOC52CXY4LCAoRFNUKQorCWFkZCB0MiwgRFNULCBWTEVOCisJdnNlOC52CXY4LCAo dDIpCisJYWRkIHQzLCB0MiwgVkxFTgorCXZzZTgudgl2OCwgKHQzKQorCWFkZCB0NCwgdDMsIFZM RU4KKwl2c2U4LnYJdjgsICh0NCkKKwlhZGQgRFNULCB0NCwgVkxFTgorCWFkZCB0MSwgRFNULCB0 MAorCWJnZSBEU1RfRU5ELCB0MSwgTChtOHg0X2xvb3ApICAjIGJyYW5jaCBpZiBsZXNzIHRoYW4g dG90YWwgdmxlbgorTChtOHg0X2xvb3BfZW5kKToKKyMgRU5EIFZFQyBTVE9SRSBCVUxLCisJc3Vi IE5CWVRFLCBEU1RfRU5ELCBEU1QKK0wobGVzc19tOHg0KToKKwlhZGRpIHQxLCB6ZXJvLCAzCisJ bXVsIHQxLCBWTEVOLCB0MQorCWJsdCBOQllURSwgdDEsIEwobGVzc19tOHgzKQorCSMgbmJ5dGUg Pj0gdmxlbihtOCkgKiAzCisJIyAzIHN0b3JlcyBmb2xsb3dlZCBieSBhbiBvdmVybGFwIHN0b3Jl CisJdnNlOC52IHY4LCAoRFNUKQorCWFkZCB0MiwgRFNULCBWTEVOCisJdnNlOC52IHY4LCAodDIp CisJYWRkIHQzLCB0MiwgVkxFTgorCXZzZTgudiB2OCwgKHQzKQorCSMgb3ZlcmxhcCBzdG9yZQor CXN1YiB0MSwgRFNUX0VORCwgVkxFTgorCXZzZTgudiB2OCwgKHQxKQorCXJldAorTChsZXNzX204 eDMpOgorCXNsbGkgdDEsIFZMRU4sIDEKKwlibHQgTkJZVEUsIHQxLCBMKGxlc3NfbTh4MikKKwkj IG5ieXRlID49IHZsZW4obTgpICogMgorCSMgMiBzdG9yZXMgZm9sbG93ZWQgYnkgYW4gb3Zlcmxh cCBzdG9yZQorCXZzZTgudiB2OCwgKERTVCkKKwlhZGQgRFNULCBEU1QsIFZMRU4KKwl2c2U4LnYg djgsIChEU1QpCisJIyBvdmVybGFwIHN0b3JlCisJc3ViIHQxLCBEU1RfRU5ELCBWTEVOCisJdnNl OC52IHY4LCAodDEpCisJcmV0CitMKGxlc3NfbTh4Mik6CisJYmx0IE5CWVRFLCBWTEVOLCBMKGxl c3NfbTh4MSkKKwkjIG5ieXRlID49IHZsZW4obTgpICogMQorCSMgMSBzdG9yZXMgZm9sbG93ZWQg YnkgYW4gb3ZlcmxhcCBzdG9yZQorCXZzZTgudiB2OCwgKERTVCkKKwkjIG92ZXJsYXAgc3RvcmUK KwlzdWIgdDEsIERTVF9FTkQsIFZMRU4KKwl2c2U4LnYgdjgsICh0MSkKKwlyZXQKK0wobGVzc19t OHgxKToKKwl2c2V0dmxpIFZMRU4sIE5CWVRFLCBlOCwgbTgsIHRhLCBtYQorCXZzZTgudiB2OCwg KERTVCkKKwlyZXQKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbXNldC5j IGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtc2V0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uN2M5MzM2MDY5OQotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMv cmlzY3YvbXVsdGlhcmNoL21lbXNldC5jCkBAIC0wLDAgKzEsMzUgQEAKKy8qIE11bHRpcGxlIHZl cnNpb25zIG9mIG1lbXNldC4KKyAgIEFsbCB2ZXJzaW9ucyBtdXN0IGJlIGxpc3RlZCBpbiBpZnVu Yy1pbXBsLWxpc3QuYy4KKyAgIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJh cnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9u ZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCisKKy8qIERlZmluZSBtdWx0aXBsZSB2ZXJzaW9ucyBvbmx5 IGZvciB0aGUgZGVmaW5pdGlvbiBpbiBsaWJjLiAgKi8KKyNpZiBJU19JTiAobGliYykKKyMgZGVm aW5lIG1lbXNldCBfX3JlZGlyZWN0X21lbXNldAorIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyMgdW5k ZWYgbWVtc2V0CisKKyMgZGVmaW5lIFNZTUJPTF9OQU1FIG1lbXNldAorIyBpbmNsdWRlICJpZnVu Yy1tZW1zZXQuaCIKKworbGliY19pZnVuY19yZWRpcmVjdGVkIChfX3JlZGlyZWN0X21lbXNldCwg bWVtc2V0LCBJRlVOQ19TRUxFQ1RPUiAoKSk7CisKKyMgaWZkZWYgU0hBUkVECitfX2hpZGRlbl92 ZXIxIChtZW1zZXQsIF9fR0lfbWVtc2V0LCBfX3JlZGlyZWN0X21lbXNldCkKKyAgX19hdHRyaWJ1 dGVfXyAoKHZpc2liaWxpdHkgKCJoaWRkZW4iKSkpIF9fYXR0cmlidXRlX2NvcHlfXyAobWVtc2V0 KTsKKyMgZW5kaWYKKyNlbmRpZgotLSAKMi4yMC4xCgo= --000000000000ffdeab05ec552db0--