From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=bytedance.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=bytedance.com Received: by mail-yb1-xb36.google.com with SMTP id g127so5284757ybg.8 for ; Mon, 31 Oct 2022 07:11:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:mime-version:from:from:to:cc:subject :date:message-id:reply-to; bh=Nl4S+rcmfzG3pR3ZAADsDsqbJRNvQIFcSBGSv/Gv2x0=; b=OzYaBXFwuNW0f90nlXWeNExItqVWpu7mGahn2GWJvVxvCiPfNCUvI5B/AVEbkbO+a6 DctUSKZvh2+EPmPvu5b6CTkf9N+WTE3BymFofCnP2aNLG/oy/GNZsj+ZR5lNw2uinaa5 xqfrcuauwFsjNcry5R2QP1zjZLei3K+tFCwavkohopjznfgiO51V1VQcpST2/xLtd4bI ILj8Ki4zogK6Kh/f7em9bQwCB+UFVzKP2mdohfcWp2jjNc6lKL9NRR9r50LuFWjAyFkD biyEq0jfm8G3vUDyq7OHmgFk23wOeVhXl7jZdiGn8TYvHaAcTaDelKQGGXppDG8a61Yr bFIA== 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 From: =?UTF-8?B?5pyx5aic?= 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-Spam-Status: No, score=0.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,HTML_MESSAGE,MIME_HTML_MOSTLY,PYZOR_CHECK,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000ffdeab05ec552db0 Content-Type: multipart/alternative; boundary="000000000000ffdea905ec552dae" --000000000000ffdea905ec552dae Content-Type: text/plain; charset="UTF-8" --000000000000ffdea905ec552dae-- --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 RnJvbSAzZTI1NDJjY2RiNWVlYjEyY2MwYjY1YTdkMWE4ZTdkMmY3NGUyNjI2 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUU2 PTlDPUIxPUU1PUE4PTlDPz0gPHpodW5hLjEwMjRAYnl0ZWRhbmNlLmNvbT4K RGF0ZTogTW9uLCAzMSBPY3QgMjAyMiAyMTo1Nzo0OSArMDgwMApTdWJqZWN0 OiBbUEFUQ0hdIHJpc2MtdjogQWRkIHN1cHBvcnQgb24gbWVtKiBmdW5jdGlv bnMgd2l0aCBWICYgQiBleHRlbnNpb24KTUlNRS1WZXJzaW9uOiAxLjAKQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKVG86IGxpYmMtYWxwaGFAc291cmNl d2FyZS5vcmcKCkhpLiBJIHdyb3RlIG1lbSogZnVuY3Rpb25zLCB0YWtpbmcg YWR2YW50YWdlIG9mIFJJU0MtViBWICYgQiBleHRlbnNpb25zLiBTSU1EIG1l Y2hhbmlzbSBtb3N0bHkgbGVhcm5lZCBmcm9tIHg4Nl82NCAmIGFhcmNoNjQg U0lNRCBpbXBsZW1lbnRhdGlvbi4gSG9wZSBJIGdvdCBpdCByaWdodC4gSUZV TkNzIHJlc29sdmVkIHRvIG11bHRpYXJjaHMgdmVyc2lvbiBieSBkZWZhdWx0 LgoKU2lnbmVkLW9mZi1ieTog5pyx5aicIDx6aHVuYS4xMDI0QGJ5dGVkYW5j ZS5jb20+Ci0tLQogc3lzZGVwcy9yaXNjdi9ocC10aW1pbmcuaCAgICAgICAg ICAgICAgICAgIHwgIDM5ICsrKysrCiBzeXNkZXBzL3Jpc2N2L2luaXQtYXJj aC5oICAgICAgICAgICAgICAgICAgfCAgIDQgKwogc3lzZGVwcy9yaXNjdi9t dWx0aWFyY2gvTWFrZWZpbGUgICAgICAgICAgIHwgIDE5ICsrKwogc3lzZGVw cy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMgIHwgIDU4ICsr KysrKysrCiBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1tZW1jaHIu aCAgICAgfCAgMjggKysrKwogc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1 bmMtbWVtY21wLmggICAgIHwgIDI4ICsrKysKIHN5c2RlcHMvcmlzY3YvbXVs dGlhcmNoL2lmdW5jLW1lbWNtcGVxLmggICB8ICAyOSArKysrCiBzeXNkZXBz L3Jpc2N2L211bHRpYXJjaC9pZnVuYy1tZW1jcHkuaCAgICAgfCAgMjggKysr Kwogc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtc2V0LmggICAg IHwgIDI4ICsrKysKIHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNoci1y dnYtdmxlbi5TICB8IDExOCArKysrKysrKysrKysrKysKIHN5c2RlcHMvcmlz Y3YvbXVsdGlhcmNoL21lbWNoci1ydnYuUyAgICAgICB8IDEzMiArKysrKysr KysrKysrKysrKwogc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY2hyLmMg ICAgICAgICAgIHwgIDM1ICsrKysrCiBzeXNkZXBzL3Jpc2N2L211bHRpYXJj aC9tZW1jbXAtcnZ2LXZsZW4uUyAgfCAxMjAgKysrKysrKysrKysrKysrKwog c3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY21wLXJ2di5TICAgICAgIHwg MTU4ICsrKysrKysrKysrKysrKysrKysrKwogc3lzZGVwcy9yaXNjdi9tdWx0 aWFyY2gvbWVtY21wLmMgICAgICAgICAgIHwgIDM1ICsrKysrCiBzeXNkZXBz L3Jpc2N2L211bHRpYXJjaC9tZW1jbXBlcS5jICAgICAgICAgfCAgMzUgKysr KysKIHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNweS1ydnYtdmxlbi5T ICB8IDEwMCArKysrKysrKysrKysrCiBzeXNkZXBzL3Jpc2N2L211bHRpYXJj aC9tZW1jcHktcnZ2LlMgICAgICAgfCAxMjcgKysrKysrKysrKysrKysrKysK IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNweS5jICAgICAgICAgICB8 ICAzNSArKysrKwogc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtbW92ZS1y dnYtdmxlbi5TIHwgMTEwICsrKysrKysrKysrKysrCiBzeXNkZXBzL3Jpc2N2 L211bHRpYXJjaC9tZW1tb3ZlLXJ2di5TICAgICAgfCAxMzggKysrKysrKysr KysrKysrKysrCiBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1zZXQtcnZ2 LXZsZW4uUyAgfCAgOTQgKysrKysrKysrKysrCiBzeXNkZXBzL3Jpc2N2L211 bHRpYXJjaC9tZW1zZXQtcnZ2LlMgICAgICAgfCAxMjYgKysrKysrKysrKysr KysrKwogc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtc2V0LmMgICAgICAg ICAgIHwgIDM1ICsrKysrCiAyNCBmaWxlcyBjaGFuZ2VkLCAxNjU5IGluc2Vy dGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2L2hw LXRpbWluZy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9p bml0LWFyY2guaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3Yv bXVsdGlhcmNoL01ha2VmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVw cy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtaW1wbC1saXN0LmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1tZW1j aHIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlh cmNoL2lmdW5jLW1lbWNtcC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVw cy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtY21wZXEuaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbWNw eS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0aWFy Y2gvaWZ1bmMtbWVtc2V0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBz L3Jpc2N2L211bHRpYXJjaC9tZW1jaHItcnZ2LXZsZW4uUwogY3JlYXRlIG1v ZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNoci1ydnYu UwogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNo L21lbWNoci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9t dWx0aWFyY2gvbWVtY21wLXJ2di12bGVuLlMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jbXAtcnZ2LlMKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jbXAu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNo L21lbWNtcGVxLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzeXNkZXBzL3Jpc2N2 L211bHRpYXJjaC9tZW1jcHktcnZ2LXZsZW4uUwogY3JlYXRlIG1vZGUgMTAw NjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNweS1ydnYuUwogY3Jl YXRlIG1vZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNw eS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0aWFy Y2gvbWVtbW92ZS1ydnYtdmxlbi5TCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lz ZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtbW92ZS1ydnYuUwogY3JlYXRlIG1v ZGUgMTAwNjQ0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbXNldC1ydnYt dmxlbi5TCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVwcy9yaXNjdi9tdWx0 aWFyY2gvbWVtc2V0LXJ2di5TCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3lzZGVw cy9yaXNjdi9tdWx0aWFyY2gvbWVtc2V0LmMKCmRpZmYgLS1naXQgYS9zeXNk ZXBzL3Jpc2N2L2hwLXRpbWluZy5oIGIvc3lzZGVwcy9yaXNjdi9ocC10aW1p bmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5m NzI4ZDg2NGExCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9yaXNjdi9o cC10aW1pbmcuaApAQCAtMCwwICsxLDM5IEBACisvKiBIaWdoIHByZWNpc2lv biwgbG93IG92ZXJoZWFkIHRpbWluZyBmdW5jdGlvbnMuICBSSVNDLVYgdmVy c2lvbi4KKyAgIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg dGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v cgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2 ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAg TGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3Qs IHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICov CisKKyNpZm5kZWYgX0hQX1RJTUlOR19ICisjZGVmaW5lIF9IUF9USU1JTkdf SAkxCisKKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+ CisjaW5jbHVkZSA8aHAtdGltaW5nLWNvbW1vbi5oPgorI2luY2x1ZGUgPGxp YmMtc3ltYm9scy5oPgorCisvKiBEb24ndCB1c2UgaW5saW5lIHRpbWVyIGlu IGxkLnNvLiAgKi8KKyNpZiBJU19JTihydGxkKQorIyBkZWZpbmUgSFBfVElN SU5HX0lOTElORQkoMCkKKyNlbHNlCisjIGRlZmluZSBIUF9USU1JTkdfSU5M SU5FCSgxKQorI2VuZGlmCisKK3R5cGVkZWYgdWludDY0X3QgaHBfdGltaW5n X3Q7CisKKyNkZWZpbmUgSFBfVElNSU5HX05PVyh2YXIpIFwKKyAgX19hc21f XyBfX3ZvbGF0aWxlX18gKCJyZGN5Y2xlICUwICIgOiAiPXIiICh2YXIpKSBc CisKKyNlbmRpZgkvKiBocC10aW1pbmcuaCAqLwpkaWZmIC0tZ2l0IGEvc3lz ZGVwcy9yaXNjdi9pbml0LWFyY2guaCBiL3N5c2RlcHMvcmlzY3YvaW5pdC1h cmNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u ODVkZmM0ZTM5OAotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3Yv aW5pdC1hcmNoLmgKQEAgLTAsMCArMSw0IEBACisjaW5jbHVkZSA8bGRzb2Rl ZnMuaD4KKyNpbmNsdWRlIDxpZnVuYy1pbml0Lmg+CisKKyMgZGVmaW5lIElO SVRfQVJDSCgpICAgIApkaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNjdi9tdWx0 aWFyY2gvTWFrZWZpbGUgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9NYWtl ZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41 YmQwMmFiOTc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9yaXNjdi9t dWx0aWFyY2gvTWFrZWZpbGUKQEAgLTAsMCArMSwxOSBAQAoraWZlcSAoJChz dWJkaXIpLHN0cmluZykKK3N5c2RlcF9yb3V0aW5lcyArPSBcCisgIG1lbXNl dC1ydnYgXAorICBtZW1jcHktcnZ2IFwKKyAgbWVtY21wLXJ2diBcCisgIG1l bWNoci1ydnYgXAorICBtZW1tb3ZlLXJ2diBcCisgIG1lbXNldC1ydnYtdmxl biBcCisgIG1lbWNweS1ydnYtdmxlbiBcCisgIG1lbWNtcC1ydnYtdmxlbiBc CisgIG1lbWNoci1ydnYtdmxlbiBcCisgIG1lbW1vdmUtcnZ2LXZsZW4gXAor ICAjIGdlbmVyaWMtbWVtc2V0IFwKKyAgIyBnZW5lcmljLW1lbWNociBcCisg ICMgZ2VuZXJpYy1tZW1jcHkgXAorICAjIGdlbmVyaWMtbWVtY21wIFwKKwor IyBzeXNkZXBfcm91dGluZXMKK2VuZGlmCmRpZmYgLS1naXQgYS9zeXNkZXBz L3Jpc2N2L211bHRpYXJjaC9pZnVuYy1pbXBsLWxpc3QuYyBiL3N5c2RlcHMv cmlzY3YvbXVsdGlhcmNoL2lmdW5jLWltcGwtbGlzdC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmVmYjBkMWNkYjUKLS0tIC9k ZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1p bXBsLWxpc3QuYwpAQCAtMCwwICsxLDU4IEBACisvKiBFbnVtZXJhdGUgYXZh aWxhYmxlIElGVU5DIGltcGxlbWVudGF0aW9ucyBvZiBhIGZ1bmN0aW9uLiAg UklTQ1Y2NCB2ZXJzaW9uLgorICAgQ29weXJpZ2h0IChDKSAyMDEyLTIwMjIg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUg aXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05V IEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJh cnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUg PHN0cmluZy5oPgorI2luY2x1ZGUgPHdjaGFyLmg+CisjaW5jbHVkZSA8aWZ1 bmMtaW1wbC1saXN0Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKworCisvKiBG aWxsIEFSUkFZIG9mIE1BWCBlbGVtZW50cyB3aXRoIElGVU5DIGltcGxlbWVu dGF0aW9ucyBmb3IgZnVuY3Rpb24KKyAgIE5BTUUgc3VwcG9ydGVkIG9uIHRh cmdldCBtYWNoaW5lIGFuZCByZXR1cm4gdGhlIG51bWJlciBvZiB2YWxpZAor ICAgZW50cmllcy4gIEVhY2ggc2V0IG9mIGltcGxlbWVudGF0aW9ucyBmb3Ig YSBnaXZlbiBmdW5jdGlvbiBpcyBzb3J0ZWQgaW4KKyAgIGRlc2NlbmRpbmcg b3JkZXIgYnkgSVNBIGxldmVsLiAgKi8KKworc2l6ZV90CitfX2xpYmNfaWZ1 bmNfaW1wbF9saXN0IChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgbGliY19p ZnVuY19pbXBsICphcnJheSwKKwkJCXNpemVfdCBtYXgpCit7CisgIHNpemVf dCBpID0gbWF4OworCisgIC8qIFN1cHBvcnQgc3lzZGVwcy9yaXNjdi9tdWx0 aWFyY2gvbWVtc2V0LXJ2di5TLiAgKi8KKyAgSUZVTkNfSU1QTCAoaSwgbmFt ZSwgbWVtc2V0LAorCSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwg bWVtc2V0LCAxLCBtZW1zZXRfcnZ2KQorCSAgICAgIElGVU5DX0lNUExfQURE IChhcnJheSwgaSwgbWVtc2V0LCAxLCBtZW1zZXRfcnZ2X3ZsZW4pCisJICAg ICApOworICAvKiBTdXBwb3J0IHN5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21l bWNweS1ydnYuUy4gICovCisgIElGVU5DX0lNUEwgKGksIG5hbWUsIG1lbWNw eSwKKwkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXksIGksIG1lbWNweSwg MSwgbWVtY3B5X3J2dikKKwkgICAgICBJRlVOQ19JTVBMX0FERCAoYXJyYXks IGksIG1lbWNweSwgMSwgbWVtY3B5X3J2dl92bGVuKQorCSAgICAgKTsKKyAg LyogU3VwcG9ydCBzeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jbXAtcnZ2 LlMuICAqLworICBJRlVOQ19JTVBMIChpLCBuYW1lLCBtZW1jbXAsCisJICAg ICAgSUZVTkNfSU1QTF9BREQgKGFycmF5LCBpLCBtZW1jbXAsIDEsIG1lbWNt cF9ydnYpCisJICAgICAgSUZVTkNfSU1QTF9BREQgKGFycmF5LCBpLCBtZW1j bXAsIDEsIG1lbWNtcF9ydnZfdmxlbikKKwkgICAgICk7CisgIC8qIFN1cHBv cnQgc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY2hyLXJ2di5TLiAgKi8K KyAgSUZVTkNfSU1QTCAoaSwgbmFtZSwgbWVtY2hyLAorCSAgICAgIElGVU5D X0lNUExfQUREIChhcnJheSwgaSwgbWVtY2hyLCAxLCBtZW1jaHJfcnZ2KQor CSAgICAgIElGVU5DX0lNUExfQUREIChhcnJheSwgaSwgbWVtY2hyLCAxLCBt ZW1jaHJfcnZ2X3ZsZW4pCisJICAgICApOworICByZXR1cm4gMDsKK30KZGlm ZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbWNo ci5oIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtY2hyLmgK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMjVlMjUw MDg2NAotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlh cmNoL2lmdW5jLW1lbWNoci5oCkBAIC0wLDAgKzEsMjggQEAKKy8qIEFsbCB2 ZXJzaW9ucyBtdXN0IGJlIGxpc3RlZCBpbiBpZnVuYy1tZW1jaHIuYy4KKyAg IENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBD IExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIu MSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAg IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor ICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBh bG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAg PGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpbmNs dWRlIDxpbml0LWFyY2guaD4KKworZXh0ZXJuIF9fdHlwZW9mIChSRURJUkVD VF9OQU1FKSBtZW1jaHJfcnZ2IGF0dHJpYnV0ZV9oaWRkZW47CitleHRlcm4g X190eXBlb2YgKFJFRElSRUNUX05BTUUpIG1lbWNocl9ydnZfdmxlbiBhdHRy aWJ1dGVfaGlkZGVuOworCitzdGF0aWMgaW5saW5lIHZvaWQgKgorSUZVTkNf U0VMRUNUT1IgKHZvaWQpCit7CisgIHJldHVybiBtZW1jaHJfcnZ2X3ZsZW47 Cit9CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVu Yy1tZW1jbXAuaCBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1l bWNtcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LmI4NmE2NjE1YjgKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2 L211bHRpYXJjaC9pZnVuYy1tZW1jbXAuaApAQCAtMCwwICsxLDI4IEBACisv KiBBbGwgdmVyc2lvbnMgbXVzdCBiZSBsaXN0ZWQgaW4gaWZ1bmMtbWVtY21w LmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo ZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVy c2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExp Y2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBz ZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwor CisjaW5jbHVkZSA8aW5pdC1hcmNoLmg+CisKK2V4dGVybiBfX3R5cGVvZiAo UkVESVJFQ1RfTkFNRSkgbWVtY21wX3J2diBhdHRyaWJ1dGVfaGlkZGVuOwor ZXh0ZXJuIF9fdHlwZW9mIChSRURJUkVDVF9OQU1FKSBtZW1jbXBfcnZ2X3Zs ZW4gYXR0cmlidXRlX2hpZGRlbjsKKworc3RhdGljIGlubGluZSB2b2lkICoK K0lGVU5DX1NFTEVDVE9SICh2b2lkKQoreworICByZXR1cm4gbWVtY21wX3J2 dl92bGVuOworfQpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNjdi9tdWx0aWFy Y2gvaWZ1bmMtbWVtY21wZXEuaCBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNo L2lmdW5jLW1lbWNtcGVxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uODc3ZWRjOTRmNAotLS0gL2Rldi9udWxsCisrKyBiL3N5 c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1lbWNtcGVxLmgKQEAgLTAs MCArMSwyOSBAQAorLyogQ29tbW9uIGRlZmluaXRpb24gZm9yIF9fbWVtY21w ZXEgaWZ1bmMgc2VsZWN0aW9ucy4KKyAgIEFsbCB2ZXJzaW9ucyBtdXN0IGJl IGxpc3RlZCBpbiBpZnVuYy1pbXBsLWxpc3QuYy4KKyAgIENvcHlyaWdodCAo QykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor ICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisK KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor ICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGlj ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K KworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl c3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRo ZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyMgaW5jbHVkZSA8aW5pdC1h cmNoLmg+CisKK2V4dGVybiBfX3R5cGVvZiAoUkVESVJFQ1RfTkFNRSkgbWVt Y21wX3J2diBhdHRyaWJ1dGVfaGlkZGVuOworZXh0ZXJuIF9fdHlwZW9mIChS RURJUkVDVF9OQU1FKSBtZW1jbXBfcnZ2X3ZsZW4gYXR0cmlidXRlX2hpZGRl bjsKKworc3RhdGljIGlubGluZSB2b2lkICoKK0lGVU5DX1NFTEVDVE9SICh2 b2lkKQoreworICByZXR1cm4gbWVtY21wX3J2dl92bGVuOworfQpkaWZmIC0t Z2l0IGEvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtY3B5Lmgg Yi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9pZnVuYy1tZW1jcHkuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kNGUxZDkwMDRi Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gv aWZ1bmMtbWVtY3B5LmgKQEAgLTAsMCArMSwyOCBAQAorLyogQWxsIHZlcnNp b25zIG11c3QgYmUgbGlzdGVkIGluIGlmdW5jLW1lbWNweS5jLgorICAgQ29w eXJpZ2h0IChDKSAyMDE3LTIwMjIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGli cmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9m IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25n IHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisgICA8aHR0 cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUg PGluaXQtYXJjaC5oPgorCitleHRlcm4gX190eXBlb2YgKFJFRElSRUNUX05B TUUpIG1lbWNweV9ydnYgYXR0cmlidXRlX2hpZGRlbjsKK2V4dGVybiBfX3R5 cGVvZiAoUkVESVJFQ1RfTkFNRSkgbWVtY3B5X3J2dl92bGVuIGF0dHJpYnV0 ZV9oaWRkZW47CisKK3N0YXRpYyBpbmxpbmUgdm9pZCAqCitJRlVOQ19TRUxF Q1RPUiAodm9pZCkKK3sKKyAgcmV0dXJuIG1lbWNweV9ydnZfdmxlbjsKK30K ZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL2lmdW5jLW1l bXNldC5oIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvaWZ1bmMtbWVtc2V0 LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDgz MDEwMDlmMgotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvbXVs dGlhcmNoL2lmdW5jLW1lbXNldC5oCkBAIC0wLDAgKzEsMjggQEAKKy8qIEFs bCB2ZXJzaW9ucyBtdXN0IGJlIGxpc3RlZCBpbiBpZnVuYy1tZW1zZXQuYy4K KyAgIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdO VSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAg bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9u IDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5z ZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQor ICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNp bmNsdWRlIDxpbml0LWFyY2guaD4KKworZXh0ZXJuIF9fdHlwZW9mIChSRURJ UkVDVF9OQU1FKSBtZW1zZXRfcnZ2IGF0dHJpYnV0ZV9oaWRkZW47CitleHRl cm4gX190eXBlb2YgKFJFRElSRUNUX05BTUUpIG1lbXNldF9ydnZfdmxlbiBh dHRyaWJ1dGVfaGlkZGVuOworCitzdGF0aWMgaW5saW5lIHZvaWQgKgorSUZV TkNfU0VMRUNUT1IgKHZvaWQpCit7CisgIHJldHVybiBtZW1zZXRfcnZ2X3Zs ZW47Cit9CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9t ZW1jaHItcnZ2LXZsZW4uUyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21l bWNoci1ydnYtdmxlbi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLjI2NjM1YWE1ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNk ZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jaHItcnZ2LXZsZW4uUwpAQCAtMCww ICsxLDExOCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjIgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFy dCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK KyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGli cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlm IG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKyAgIAorCS50ZXh0CisJLmdsb2JsCW1lbWNocl9ydnZfdmxlbiAg ICAgICAgICAgICAgICAgIyAtLSBCZWdpbiBmdW5jdGlvbiBtZW1jaHJfcnZ2 CisJLnAyYWxpZ24JMQorCS50eXBlCW1lbWNocl9ydnZfdmxlbixAZnVuY3Rp b24KKworIyBhMDogc3JjIGExOiBjIGEyOiBuYnl0ZQorI2RlZmluZSBTUkMg YTAKKyNkZWZpbmUgU1JDX0VORCBhNworI2RlZmluZSBDQyBhMQorI2RlZmlu ZSBDQ19VOCBhNgorI2RlZmluZSBOQllURSBhMgorIyB1dGlsaXRpZXMKKyNk ZWZpbmUgVkxFTiBhMworI2RlZmluZSBDVFpfSSBhNAorI2RlZmluZSBYTEVO IGE1CisjZGVmaW5lIEFMSUdOIDgKKyNkZWZpbmUgTChsYWJlbCkgLm1lbWNo cl9ydnZfdmxlbl8jI2xhYmVsCisKK21lbWNocl9ydnZfdmxlbjoKKwliZXF6 IE5CWVRFLCBMKG5vdF9mb3VuZCkKKwlhZGQgU1JDX0VORCwgU1JDLCBOQllU RQorCWFkZGkgWExFTiwgemVybywgOCAgIyB4bGVuID0gOEIKKwkjIHRvIHVp bnQ4CisJYW5kaSBDQywgQ0MsIDB4ZmYKKwltdiBDQ19VOCwgQ0MKKwkjIGJy b2FkY2FzdCBpbiB1aW50NjQKKwlzbGxpIHQwLCBDQywgOCAgICAgIyB0MCA9 IENDIDw8IDgKKwlvciBDQywgdDAsIENDICAgICAgIyBDQyA9IENDIHwgdDAK KwlzbGxpIHQwLCBDQywgMTYgICAgIyB0MCA9IENDIDw8IDE2CisJb3IgQ0Ms IHQwLCBDQyAgICAgICMgQ0MgPSBDQyB8IHQwCisJc2xsaSB0MCwgQ0MsIDMy ICAgICMgdDAgPSBDQyA8PCAzMgorCW9yIENDLCB0MCwgQ0MgICAgICAjIEND ID0gQ0MgfCB0MAorIyBCRUdJTiBzbWFsbCBsZW5ndGhzCisJYWRkaSB0MSwg emVybywgMTYKKwlhZGRpIFZMRU4sIHplcm8sIC0xCisJdnNldHZsaSBWTEVO LCBWTEVOLCBlOCwgbTgsIHRhLCBtYQorCSMgYmx0IE5CWVRFLCB0MSwgTChs ZXNzX204eDEpCisJc2xsaSB0MSwgVkxFTiwgMQorCWJsdCBOQllURSwgdDEs IEwobTh4MV9sb29wKQorIyBFTkQgc21hbGwgbGVuZ3RoCisjIG5ieXRlID49 IHZsZW4geCAyCisKKyMgQkVHSU4gYWxpZ24gb24gOEIKKwlhbmRpIHQwLCBT UkMsIDcKKwliZXF6IHQwLCBMKHZlY19zZXQpCisJc3ViIHQwLCB6ZXJvLCB0 MAorCWFkZGkgdDAsIHQwLCA4CisJbGQgdDIsIChTUkMpCisJeG9yIHQxLCBD QywgdDIKKwlvcmMuYiB0MywgdDEKKwl4b3JpIHQzLCB0MywgLTEKKwljdHog Q1RaX0ksIHQzCisJc3JsaSBDVFpfSSwgQ1RaX0ksIDMKKwlibmUgQ1RaX0ks IFhMRU4sIEwoZm91bmQpCisJYWRkIFNSQywgU1JDLCB0MAorIyBFTkQgYWxp Z24gb24gOEIKKyMgQkVHSU4gVkVDIFNUT1JFIEJVTEsKK0wodmVjX3NldCk6 CisjIHQwOiB0b3RhbCB2bGVuICogMiAgdDE6IHNyYyArIHRvdGFsIHZsZW4g KiAyCisJc2xsaSB0MCwgVkxFTiwgMQorCWFkZCB0MSwgU1JDLCB0MAorCWJs dCBTUkNfRU5ELCB0MSwgTChtOHgyX2xvb3BfZW5kKSAgIyBicmFuY2ggaWYg bGVzcyB0aGFuIHRvdGFsIHZsZW4KKyMgdXNlIG1hbnkgdCogdG8gZXhwbG9p dCBkYXRhIHBhcmFsbGVsaXNtCitMKG04eDJfbG9vcCk6CisJdmxlOC52CXYw LCAoU1JDKQorCWFkZCB0MiwgU1JDLCBWTEVOCisJdmxlOC52CXYxNiwgKHQy KQorCXZtc2VxLnZ4IHY4LCB2MCwgQ0MKKwl2bXNlcS52eCB2MjQsIHYxNiwg Q0MKKwl2Zmlyc3QubQlDVFpfSSwgdjgKKwliZ2UgQ1RaX0ksIHplcm8sIEwo Zm91bmQpCisJdmZpcnN0Lm0JQ1RaX0ksIHYyNAorCW12IFNSQywgdDIKKwli Z2UgQ1RaX0ksIHplcm8sIEwoZm91bmQpCisJYWRkIFNSQywgU1JDLCBWTEVO CisJYWRkIHQxLCBTUkMsIHQwCisJYmdlIFNSQ19FTkQsIHQxLCBMKG04eDJf bG9vcCkgICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3RhbCB2bGVuCitMKG04 eDJfbG9vcF9lbmQpOgorIyBFTkQgVkVDIFNUT1JFIEJVTEsKKwlzdWIgTkJZ VEUsIFNSQ19FTkQsIFNSQworCW12IHQxLCBOQllURQorTChtOHgxX2xvb3Ap OgorCW12IE5CWVRFLCB0MQorCXZzZXR2bGkgVkxFTiwgTkJZVEUsIGU4LCBt OCwgdGEsIG1hCisJdmxlOC52CXYwLCAoU1JDKQorCXZtc2VxLnZ4IHY4LCB2 MCwgQ0MKKwl2Zmlyc3QubQlDVFpfSSwgdjgKKwliZ2UgQ1RaX0ksIHplcm8s IEwoZm91bmQpCisJYWRkIFNSQywgU1JDLCBWTEVOCisJc3ViIHQxLCBOQllU RSwgVkxFTgorCWJuZXogdDEsIEwobTh4MV9sb29wKQorCSMgbm90IGZvdW5k CisJbXYgYTAsIHplcm8KKwlyZXQKK0woZm91bmQpOgorCWFkZCBTUkMsIFNS QywgQ1RaX0kKKwliZ2UgU1JDLCBTUkNfRU5ELCBMKG5vdF9mb3VuZCkKKwly ZXQKK0wobm90X2ZvdW5kKToKKwltdiBhMCwgemVybworCXJldApkaWZmIC0t Z2l0IGEvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY2hyLXJ2di5TIGIv c3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY2hyLXJ2di5TCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM2YjZjY2I4MGYKLS0t IC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1j aHItcnZ2LlMKQEAgLTAsMCArMSwxMzIgQEAKKy8qIENvcHlyaWdodCAoQykg MjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAg IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5z ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBH TlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCisgICAKKwkudGV4dAorCS5nbG9ibAlt ZW1jaHJfcnZ2ICAgICAgICAgICAgICAgICAjIC0tIEJlZ2luIGZ1bmN0aW9u IG1lbWNocl9ydnYKKwkucDJhbGlnbgkxCisJLnR5cGUJbWVtY2hyX3J2dixA ZnVuY3Rpb24KKworIyBhMDogc3JjIGExOiBjIGEyOiBuYnl0ZQorI2RlZmlu ZSBTUkMgYTAKKyNkZWZpbmUgU1JDX0VORCBhNworI2RlZmluZSBDQyBhMQor I2RlZmluZSBDQ19VOCBhNgorI2RlZmluZSBOQllURSBhMgorIyB1dGlsaXRp ZXMKKyNkZWZpbmUgVkxFTiBhMworI2RlZmluZSBDVFpfSSBhNAorI2RlZmlu ZSBYTEVOIGE1CisjZGVmaW5lIEFMSUdOIDgKKyNkZWZpbmUgTChsYWJlbCkg Lm1lbWNocl9ydnZfIyNsYWJlbAorCittZW1jaHJfcnZ2OgorCWJlcXogTkJZ VEUsIEwobm90X2ZvdW5kKQorCWFkZCBTUkNfRU5ELCBTUkMsIE5CWVRFCisJ YWRkaSBYTEVOLCB6ZXJvLCA4ICAjIHhsZW4gPSA4QgorCSMgdG8gdWludDgK KwlhbmRpIENDLCBDQywgMHhmZgorCW12IENDX1U4LCBDQworCSMgYnJvYWRj YXN0IGluIHVpbnQ2NAorCXNsbGkgdDAsIENDLCA4ICAgICAjIHQwID0gQ0Mg PDwgOAorCW9yIENDLCB0MCwgQ0MgICAgICAjIENDID0gQ0MgfCB0MAorCXNs bGkgdDAsIENDLCAxNiAgICAjIHQwID0gQ0MgPDwgMTYKKwlvciBDQywgdDAs IENDICAgICAgIyBDQyA9IENDIHwgdDAKKwlzbGxpIHQwLCBDQywgMzIgICAg IyB0MCA9IENDIDw8IDMyCisJb3IgQ0MsIHQwLCBDQyAgICAgICMgQ0MgPSBD QyB8IHQwCisjIEJFR0lOIHNtYWxsIGxlbmd0aHMKKwlhZGRpIHQxLCB6ZXJv LCAxNgorCWFkZGkgVkxFTiwgemVybywgLTEKKwl2c2V0dmxpIFZMRU4sIFZM RU4sIGU4LCBtOCwgdGEsIG1hCisJYmx0IE5CWVRFLCB0MSwgTChsZXNzX204 eDEpCisJc2xsaSB0MSwgVkxFTiwgMQorCWJsdCBOQllURSwgdDEsIEwobGVz c19tOHgyKQorIyBFTkQgc21hbGwgbGVuZ3RoCisjIG5ieXRlID49IHZsZW4g eCAyCisKKyMgQkVHSU4gYWxpZ24gb24gOEIKKwlhbmRpIHQwLCBTUkMsIDcK KwliZXF6IHQwLCBMKHZlY19zZXQpCisJc3ViIHQwLCB6ZXJvLCB0MAorCWFk ZGkgdDAsIHQwLCA4CisJbGQgdDIsIChTUkMpCisJeG9yIHQxLCBDQywgdDIK KwlvcmMuYiB0MywgdDEKKwl4b3JpIHQzLCB0MywgLTEKKwljdHogQ1RaX0ks IHQzCisJc3JsaSBDVFpfSSwgQ1RaX0ksIDMKKwlibmUgQ1RaX0ksIFhMRU4s IEwoZm91bmQpCisJYWRkIFNSQywgU1JDLCB0MAorIyBFTkQgYWxpZ24gb24g OEIKKyMgQkVHSU4gVkVDIFNUT1JFIEJVTEsKK0wodmVjX3NldCk6CisjIHQw OiB0b3RhbCB2bGVuICogMiAgdDE6IHNyYyArIHRvdGFsIHZsZW4gKiAyCisJ c2xsaSB0MCwgVkxFTiwgMQorCWFkZCB0MSwgU1JDLCB0MAorCWJsdCBTUkNf RU5ELCB0MSwgTChtOHgyX2xvb3BfZW5kKSAgIyBicmFuY2ggaWYgbGVzcyB0 aGFuIHRvdGFsIHZsZW4KKyMgdXNlIG1hbnkgdCogdG8gZXhwbG9pdCBkYXRh IHBhcmFsbGVsaXNtCitMKG04eDJfbG9vcCk6CisJdmxlOC52CXYwLCAoU1JD KQorCWFkZCB0MiwgU1JDLCBWTEVOCisJdmxlOC52CXYxNiwgKHQyKQorCXZt c2VxLnZ4IHY4LCB2MCwgQ0MKKwl2bXNlcS52eCB2MjQsIHYxNiwgQ0MKKwl2 Zmlyc3QubQlDVFpfSSwgdjgKKwliZ2UgQ1RaX0ksIHplcm8sIEwoZm91bmQp CisJdmZpcnN0Lm0JQ1RaX0ksIHYyNAorCW12IFNSQywgdDIKKwliZ2UgQ1Ra X0ksIHplcm8sIEwoZm91bmQpCisJYWRkIFNSQywgU1JDLCBWTEVOCisJYWRk IHQxLCBTUkMsIHQwCisJYmdlIFNSQ19FTkQsIHQxLCBMKG04eDJfbG9vcCkg ICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3RhbCB2bGVuCitMKG04eDJfbG9v cF9lbmQpOgorIyBFTkQgVkVDIFNUT1JFIEJVTEsKKwlzdWIgTkJZVEUsIFNS Q19FTkQsIFNSQworCitMKGxlc3NfbTh4Mik6CisJYmx0IE5CWVRFLCBWTEVO LCBMKGxlc3NfbTh4MSkKKwkjIG5ieXRlID49IHZsZW4obTgpICogMQorCSMg MSBsb2FkIGZvbGxvd2VkIGJ5IGFuIG92ZXJsYXAgbG9hZAorCXN1YiB0MSwg U1JDX0VORCwgVkxFTgorCSMgZmlyc3QgbG9hZAorCXZsZTgudgl2MCwgKFNS QykKKwl2bXNlcS52eCB2OCwgdjAsIENDCisJIyBvdmVybGFwIGxvYWQKKwl2 bGU4LnYJdjE2LCAodDEpCisJdm1zZXEudnggdjI0LCB2MTYsIENDCisJdmZp cnN0Lm0JQ1RaX0ksIHY4CisJYmdlIENUWl9JLCB6ZXJvLCBMKGZvdW5kKQor CXZmaXJzdC5tCUNUWl9JLCB2MjQKKwliZ2UgQ1RaX0ksIHplcm8sIEwoZm91 bmQpCisJIyBub3QgZm91bmQKKwltdiBhMCwgemVybworCXJldAorTChsZXNz X204eDEpOgorCXZzZXR2bGkgVkxFTiwgTkJZVEUsIGU4LCBtOCwgdGEsIG1h CisJdmxlOC52CXYwLCAoU1JDKQorCXZtc2VxLnZ4IHY4LCB2MCwgQ0MKKwl2 Zmlyc3QubQlDVFpfSSwgdjgKKwliZ2UgQ1RaX0ksIHplcm8sIEwoZm91bmQp CisJIyBub3QgZm91bmQKKwltdiBhMCwgemVybworCXJldAorTChmb3VuZCk6 CisJYWRkIFNSQywgU1JDLCBDVFpfSQorCWJnZSBTUkMsIFNSQ19FTkQsIEwo bm90X2ZvdW5kKQorCXJldAorTChub3RfZm91bmQpOgorCW12IGEwLCB6ZXJv CisJcmV0CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9t ZW1jaHIuYyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNoci5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjg5MzkxZTc4 MjEKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJj aC9tZW1jaHIuYwpAQCAtMCwwICsxLDM1IEBACisvKiBNdWx0aXBsZSB2ZXJz aW9ucyBvZiBtZW1jaHIuCisgICBBbGwgdmVyc2lvbnMgbXVzdCBiZSBsaXN0 ZWQgaW4gaWZ1bmMtaW1wbC1saXN0LmMuCisgICBDb3B5cmlnaHQgKEMpIDIw MTctMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBU aGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05V IEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uICAqLworCisvKiBEZWZpbmUgbXVsdGlwbGUgdmVy c2lvbnMgb25seSBmb3IgdGhlIGRlZmluaXRpb24gaW4gbGliYy4gICovCisj aWYgSVNfSU4gKGxpYmMpCisjIGRlZmluZSBtZW1jaHIgX19yZWRpcmVjdF9t ZW1jaHIKKyMgaW5jbHVkZSA8c3RyaW5nLmg+CisjIHVuZGVmIG1lbWNocgor CisjIGRlZmluZSBTWU1CT0xfTkFNRSBtZW1jaHIKKyMgaW5jbHVkZSAiaWZ1 bmMtbWVtY2hyLmgiCisKK2xpYmNfaWZ1bmNfcmVkaXJlY3RlZCAoX19yZWRp cmVjdF9tZW1jaHIsIG1lbWNociwgSUZVTkNfU0VMRUNUT1IgKCkpOworCisj IGlmZGVmIFNIQVJFRAorX19oaWRkZW5fdmVyMSAobWVtY2hyLCBfX0dJX21l bWNociwgX19yZWRpcmVjdF9tZW1jaHIpCisgIF9fYXR0cmlidXRlX18gKCh2 aXNpYmlsaXR5ICgiaGlkZGVuIikpKSBfX2F0dHJpYnV0ZV9jb3B5X18gKG1l bWNocik7CisjIGVuZGlmCisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5c2RlcHMv cmlzY3YvbXVsdGlhcmNoL21lbWNtcC1ydnYtdmxlbi5TIGIvc3lzZGVwcy9y aXNjdi9tdWx0aWFyY2gvbWVtY21wLXJ2di12bGVuLlMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODc1YzViYmJmMwotLS0gL2Rl di9udWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNtcC1y dnYtdmxlbi5TCkBAIC0wLDAgKzEsMTIwIEBACisvKiBDb3B5cmlnaHQgKEMp IDIwMTctMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAg IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAg IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUg R05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworICAgCisJLnRleHQKKwkuZ2xvYmwJ bWVtY21wX3J2dl92bGVuICAgICAgICAgICAgICAgICAjIC0tIEJlZ2luIGZ1 bmN0aW9uIG1lbWNocl9ydnYKKwkucDJhbGlnbgkxCisJLnR5cGUJbWVtY21w X3J2dl92bGVuLEBmdW5jdGlvbgorCisjIGEwOiBzcmMxIGExOiBzcmMyIGEy OiBuYnl0ZQorI2RlZmluZSBTUkMxIGEwCisjZGVmaW5lIFNSQzIgYTEKKyNk ZWZpbmUgTkJZVEUgYTIKKyNkZWZpbmUgU1JDX0VORDEgYTUKKyNkZWZpbmUg U1JDX0VORDIgYTYKKyMgdXRpbGl0aWVzCisjZGVmaW5lIFZMRU4gYTMKKyNk ZWZpbmUgWExFTiBhNAorI2RlZmluZSBNQVNLIGE3CisjZGVmaW5lIEwobGFi ZWwpIC5tZW1jbXBfcnZ2X3ZsZW5fIyNsYWJlbAorCittZW1jbXBfcnZ2X3Zs ZW46CisJYm5leiBOQllURSwgTChndF8wKQorCW12IGEwLCB6ZXJvCisJcmV0 CitMKGd0XzApOgorCWFkZCBTUkNfRU5EMSwgU1JDMSwgTkJZVEUKKwlhZGQg U1JDX0VORDIsIFNSQzIsIE5CWVRFCisKKwlhZGRpIFZMRU4sIHplcm8sIC0x CisJdnNldHZsaSBWTEVOLCBWTEVOLCBlOCwgbTgsIHRhLCBtYQorCSMgYmx0 IE5CWVRFLCBWTEVOLCBMKGxlc3NfbTh4MSkKKwlzbGxpIHQwLCBWTEVOLCAx CisJYmx0IE5CWVRFLCB0MCwgTChtOHgyX2xvb3BfZW5kKQorIyBuYnl0ZSA+ PSB2bGVuIHggMgorCitMKG04eDJfbG9vcCk6CisJIyBsb2FkIGZpcnN0CisJ dmxlOC52CXYwLCAoU1JDMSkKKwlhZGQgdDIsIFNSQzEsIFZMRU4KKwl2bGU4 LnYJdjgsIChTUkMyKQorCWFkZCB0MywgU1JDMiwgVkxFTgorCSMgY29tcGFy ZSBmaXJzdAorCXZtc25lLnZ2IHYyNCwgdjAsIHY4CisJdmZpcnN0Lm0gdDEs IHYyNAorCWJsdCB0MSwgemVybywgTChtOHgyX2xvb3BfZmlyc3Rfbm90X2Zv dW5kKQorCSMgZm91bmQgaW4gZmlyc3QgbG9hZAorCXZzbGlkZWRvd24udngg djAsIHYwLCB0MQorCXZzbGlkZWRvd24udnggdjgsIHY4LCB0MQorCXZtdi54 LnMgdDAsIHYwCisJdm12LngucyB0MSwgdjgKKwlhbmRpIHQwLCB0MCwgMHhm ZgorCWFuZGkgdDEsIHQxLCAweGZmCisJc3ViIGEwLCB0MCwgdDEKKwlyZXQK K0wobTh4Ml9sb29wX2ZpcnN0X25vdF9mb3VuZCk6CisJIyBsb2FkIHNlY29u ZAorCXZsZTgudiB2MTYsICh0MikKKwl2bGU4LnYgdjI0LCAodDMpCisJIyBj b21wYXJlIHNlY29uZAorCXZtc25lLnZ2IHYxNiwgdjE2LCB2MjQKKwl2Zmly c3QubSB0MSwgdjE2CisJYmx0IHQxLCB6ZXJvLCBMKG04eDJfbG9vcF9zZWNv bmRfbm90X2ZvdW5kKQorCSMgZm91bmQgaW4gc2Vjb25kIGxvYWQKKwl2c2xp ZGVkb3duLnZ4IHYxNiwgdjE2LCB0MQorCXZzbGlkZWRvd24udnggdjI0LCB2 MjQsIHQxCisJdm12LngucyB0MCwgdjE2CisJdm12LngucyB0MSwgdjI0CisJ YW5kaSB0MCwgdDAsIDB4ZmYKKwlhbmRpIHQxLCB0MSwgMHhmZgorCXN1YiBh MCwgdDAsIHQxCisJcmV0CitMKG04eDJfbG9vcF9zZWNvbmRfbm90X2ZvdW5k KToKKwlhZGQgU1JDMSwgdDIsIFZMRU4KKwlhZGQgU1JDMiwgdDMsIFZMRU4g CisJYWRkIHQxLCBTUkMxLCB0MAorCWJsdCB0MSwgU1JDX0VORDEsIEwobTh4 Ml9sb29wKQorTChtOHgyX2xvb3BfZW5kKToKKyMgRU5EIFZFQyBTVE9SRSBC VUxLCisJc3ViIE5CWVRFLCBTUkNfRU5EMSwgU1JDMQorCW12IHQxLCBOQllU RQorTChtOHgxX2xvb3ApOgorCW12IE5CWVRFLCB0MQorCXZzZXR2bGkgVkxF TiwgTkJZVEUsIGU4LCBtOCwgdGEsIG1hCisJdmxlOC52CXYwLCAoU1JDMSkK Kwl2bGU4LnYJdjgsIChTUkMyKQorCXZtc25lLnZ2IHYyNCwgdjAsIHY4CisJ dmZpcnN0Lm0gdDEsIHYyNAorCWJsdCB0MSwgemVybywgTChtOHgxX2xvb3Bf bm90X2ZvdW5kKQorCSMgZm91bmQKKwl2c2xpZGVkb3duLnZ4IHYwLCB2MCwg dDEKKwl2c2xpZGVkb3duLnZ4IHY4LCB2OCwgdDEKKwl2bXYueC5zIHQwLCB2 MAorCXZtdi54LnMgdDEsIHY4CisJYW5kaSB0MCwgdDAsIDB4ZmYKKwlhbmRp IHQxLCB0MSwgMHhmZgorCXN1YiBhMCwgdDAsIHQxCisJcmV0CitMKG04eDFf bG9vcF9ub3RfZm91bmQpOgorCWFkZCBTUkMxLCBTUkMxLCBWTEVOCisJYWRk IFNSQzIsIFNSQzIsIFZMRU4KKwlzdWIgdDEsIE5CWVRFLCBWTEVOCisJYm5l eiB0MSwgTChtOHgxX2xvb3ApCisJIyBub3QgZm91bmQKKwltdiBhMCwgemVy bworCXJldAorCQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNtcC1ydnYuUyBi L3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNtcC1ydnYuUwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5iNjA0ODZkYjIxCi0t LSAvZGV2L251bGwKKysrIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVt Y21wLXJ2di5TCkBAIC0wLDAgKzEsMTU4IEBACisvKiBDb3B5cmlnaHQgKEMp IDIwMTctMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAg IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAg IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vu c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUg R05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworICAgCisJLnRleHQKKwkuZ2xvYmwJ bWVtY21wX3J2diAgICAgICAgICAgICAgICAgIyAtLSBCZWdpbiBmdW5jdGlv biBtZW1jaHJfcnZ2CisJLnAyYWxpZ24JMQorCS50eXBlCW1lbWNtcF9ydnYs QGZ1bmN0aW9uCisKKyMgYTA6IHNyYzEgYTE6IHNyYzIgYTI6IG5ieXRlCisj ZGVmaW5lIFNSQzEgYTAKKyNkZWZpbmUgU1JDMiBhMQorI2RlZmluZSBOQllU RSBhMgorI2RlZmluZSBTUkNfRU5EMSBhNQorI2RlZmluZSBTUkNfRU5EMiBh NgorIyB1dGlsaXRpZXMKKyNkZWZpbmUgVkxFTiBhMworI2RlZmluZSBYTEVO IGE0CisjZGVmaW5lIE1BU0sgYTcKKyNkZWZpbmUgTChsYWJlbCkgLm1lbWNt cF9ydnZfIyNsYWJlbAorCittZW1jbXBfcnZ2OgorCWJuZXogTkJZVEUsIEwo Z3RfMCkKKwltdiBhMCwgemVybworCXJldAorTChndF8wKToKKwlhZGQgU1JD X0VORDEsIFNSQzEsIE5CWVRFCisJYWRkIFNSQ19FTkQyLCBTUkMyLCBOQllU RQorCisJYWRkaSBWTEVOLCB6ZXJvLCAtMQorCXZzZXR2bGkgVkxFTiwgVkxF TiwgZTgsIG04LCB0YSwgbWEKKwlibHQgTkJZVEUsIFZMRU4sIEwobGVzc19t OHgxKQorCXNsbGkgdDAsIFZMRU4sIDEKKwlibHQgTkJZVEUsIHQwLCBMKGxl c3NfbTh4MikKKyMgbmJ5dGUgPj0gdmxlbiB4IDIKKworTChtOHgyX2xvb3Ap OgorCSMgbG9hZCBmaXJzdAorCXZsZTgudgl2MCwgKFNSQzEpCisJYWRkIHQy LCBTUkMxLCBWTEVOCisJdmxlOC52CXY4LCAoU1JDMikKKwlhZGQgdDMsIFNS QzIsIFZMRU4KKwkjIGNvbXBhcmUgZmlyc3QKKwl2bXNuZS52diB2MjQsIHYw LCB2OAorCXZmaXJzdC5tIHQxLCB2MjQKKwlibHQgdDEsIHplcm8sIEwobTh4 Ml9sb29wX2ZpcnN0X25vdF9mb3VuZCkKKwkjIGZvdW5kIGluIGZpcnN0IGxv YWQKKwl2c2xpZGVkb3duLnZ4IHYwLCB2MCwgdDEKKwl2c2xpZGVkb3duLnZ4 IHY4LCB2OCwgdDEKKwl2bXYueC5zIHQwLCB2MAorCXZtdi54LnMgdDEsIHY4 CisJYW5kaSB0MCwgdDAsIDB4ZmYKKwlhbmRpIHQxLCB0MSwgMHhmZgorCXN1 YiBhMCwgdDAsIHQxCisJcmV0CitMKG04eDJfbG9vcF9maXJzdF9ub3RfZm91 bmQpOgorCSMgbG9hZCBzZWNvbmQKKwl2bGU4LnYgdjE2LCAodDIpCisJdmxl OC52IHYyNCwgKHQzKQorCSMgY29tcGFyZSBzZWNvbmQKKwl2bXNuZS52diB2 MTYsIHYxNiwgdjI0CisJdmZpcnN0Lm0gdDEsIHYxNgorCWJsdCB0MSwgemVy bywgTChtOHgyX2xvb3Bfc2Vjb25kX25vdF9mb3VuZCkKKwkjIGZvdW5kIGlu IHNlY29uZCBsb2FkCisJdnNsaWRlZG93bi52eCB2MTYsIHYxNiwgdDEKKwl2 c2xpZGVkb3duLnZ4IHYyNCwgdjI0LCB0MQorCXZtdi54LnMgdDAsIHYxNgor CXZtdi54LnMgdDEsIHYyNAorCWFuZGkgdDAsIHQwLCAweGZmCisJYW5kaSB0 MSwgdDEsIDB4ZmYKKwlzdWIgYTAsIHQwLCB0MQorCXJldAorTChtOHgyX2xv b3Bfc2Vjb25kX25vdF9mb3VuZCk6CisJYWRkIFNSQzEsIHQyLCBWTEVOCisJ YWRkIFNSQzIsIHQzLCBWTEVOIAorCWFkZCB0MSwgU1JDMSwgdDAKKwlibHQg dDEsIFNSQ19FTkQxLCBMKG04eDJfbG9vcCkKK0wobTh4Ml9sb29wX2VuZCk6 CisjIEVORCBWRUMgU1RPUkUgQlVMSworCXN1YiBOQllURSwgU1JDX0VORDEs IFNSQzEKKworTChsZXNzX204eDIpOgorCWJsdCBOQllURSwgVkxFTiwgTChs ZXNzX204eDEpCisJIyBuYnl0ZSA+PSB2bGVuKG04KSAqIDEKKwkjIDEgbG9h ZCBmb2xsb3dlZCBieSBhbiBvdmVybGFwIGxvYWQKKwlzdWIgdDEsIFNSQ19F TkQxLCBWTEVOCisJc3ViIHQyLCBTUkNfRU5EMiwgVkxFTgorCSMgZmlyc3Qg bG9hZAorCXZsZTgudgl2MCwgKFNSQzEpCisJdmxlOC52CXY4LCAoU1JDMikK Kwl2bXNuZS52diB2MTYsIHYwLCB2OAorCXZmaXJzdC5tIHQwLCB2MTYKKwli bHQgdDAsIHplcm8sIEwobGVzc19tOHgyX2ZpcnN0X25vdF9mb3VuZCkKKwkj IGZvdW5kIGluIHZlY3RvcgorCXZzbGlkZWRvd24udnggdjAsIHYwLCB0MAor CXZzbGlkZWRvd24udnggdjgsIHY4LCB0MAorCXZtdi54LnMgdDAsIHYwCisJ dm12LngucyB0MSwgdjgKKwlhbmRpIHQwLCB0MCwgMHhmZgorCWFuZGkgdDEs IHQxLCAweGZmCisJc3ViIGEwLCB0MCwgdDEKKwlyZXQKK0wobGVzc19tOHgy X2ZpcnN0X25vdF9mb3VuZCk6CisJIyBvdmVybGFwIGxvYWQKKwl2bGU4LnYJ djE2LCAodDEpCisJdmxlOC52CXYyNCwgKHQyKQorCXZtc25lLnZ2IHYwLCB2 MTYsIHYyNAorCXZmaXJzdC5tIHQwLCB2MAorCWJsdCB0MCwgemVybywgTChs ZXNzX204eDJfc2Vjb25kX25vdF9mb3VuZCkKKwkjIGZvdW5kIGluIHZlY3Rv cgorCXZzbGlkZWRvd24udnggdjE2LCB2MTYsIHQwCisJdnNsaWRlZG93bi52 eCB2MjQsIHYyNCwgdDAKKwl2bXYueC5zIHQwLCB2MTYKKwl2bXYueC5zIHQx LCB2MjQKKwlhbmRpIHQwLCB0MCwgMHhmZgorCWFuZGkgdDEsIHQxLCAweGZm CisJc3ViIGEwLCB0MCwgdDEKKwlyZXQKK0wobGVzc19tOHgyX3NlY29uZF9u b3RfZm91bmQpOgorCSMgaWRlbnRpY2FsCisJbXYgYTAsIHplcm8KKwlyZXQK KworTChsZXNzX204eDEpOgorCSMgYWRkaSB0MywgemVybywgMQorCSMgYmVx IE5CWVRFLCB0MywgTCgxYnl0ZSkKKwl2c2V0dmxpIFZMRU4sIE5CWVRFLCBl OCwgbTgsIHRhLCBtYQorCXZsZTgudiB2MCwgKFNSQzEpCisJdmxlOC52IHY4 LCAoU1JDMikKKwl2bXNuZS52diB2MTYsIHYwLCB2OAorCXZmaXJzdC5tIHQw LCB2MTYKKwlibHQgdDAsIHplcm8sIEwobGVzc19tOHgxX25vdF9mb3VuZCkK KwkjIGZvdW5kIGluIHZlY3RvcgorCXZzbGlkZWRvd24udnggdjAsIHYwLCB0 MAorCXZzbGlkZWRvd24udnggdjgsIHY4LCB0MAorCXZtdi54LnMgdDAsIHYw CisJdm12LngucyB0MSwgdjgKKwlhbmRpIHQwLCB0MCwgMHhmZgorCWFuZGkg dDEsIHQxLCAweGZmCisJc3ViIGEwLCB0MCwgdDEKKwlyZXQKK0wobGVzc19t OHgxX25vdF9mb3VuZCk6CisJbXYgYTAsIHplcm8KKwlyZXQKKwkKXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jp c2N2L211bHRpYXJjaC9tZW1jbXAuYyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlh cmNoL21lbWNtcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLmJhZTI5ZDhkYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBz L3Jpc2N2L211bHRpYXJjaC9tZW1jbXAuYwpAQCAtMCwwICsxLDM1IEBACisv KiBNdWx0aXBsZSB2ZXJzaW9ucyBvZiBtZW1jbXAuCisgICBBbGwgdmVyc2lv bnMgbXVzdCBiZSBsaXN0ZWQgaW4gaWZ1bmMtaW1wbC1saXN0LmMuCisgICBD b3B5cmlnaHQgKEMpIDIwMTctMjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBM aWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlm eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh bCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEg b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxo dHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworCisvKiBEZWZp bmUgbXVsdGlwbGUgdmVyc2lvbnMgb25seSBmb3IgdGhlIGRlZmluaXRpb24g aW4gbGliYy4gICovCisjaWYgSVNfSU4gKGxpYmMpCisjIGRlZmluZSBtZW1j bXAgX19yZWRpcmVjdF9tZW1jbXAKKyMgaW5jbHVkZSA8c3RyaW5nLmg+Cisj IHVuZGVmIG1lbWNtcAorCisjIGRlZmluZSBTWU1CT0xfTkFNRSBtZW1jbXAK KyMgaW5jbHVkZSAiaWZ1bmMtbWVtY21wLmgiCisKK2xpYmNfaWZ1bmNfcmVk aXJlY3RlZCAoX19yZWRpcmVjdF9tZW1jbXAsIG1lbWNtcCwgSUZVTkNfU0VM RUNUT1IgKCkpOworCisjIGlmZGVmIFNIQVJFRAorX19oaWRkZW5fdmVyMSAo bWVtY21wLCBfX0dJX21lbWNtcCwgX19yZWRpcmVjdF9tZW1jbXApCisgIF9f YXR0cmlidXRlX18gKCh2aXNpYmlsaXR5ICgiaGlkZGVuIikpKSBfX2F0dHJp YnV0ZV9jb3B5X18gKG1lbWNtcCk7CisjIGVuZGlmCisjZW5kaWYKZGlmZiAt LWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNtcGVxLmMgYi9z eXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jbXBlcS5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmFhMWM4YWQ0ZGUKLS0tIC9k ZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211bHRpYXJjaC9tZW1jbXBl cS5jCkBAIC0wLDAgKzEsMzUgQEAKKy8qIE11bHRpcGxlIHZlcnNpb25zIG9m IF9fbWVtY21wZXEuCisgICBBbGwgdmVyc2lvbnMgbXVzdCBiZSBsaXN0ZWQg aW4gaWZ1bmMtaW1wbC1saXN0LmMuCisgICBDb3B5cmlnaHQgKEMpIDIwMTct MjAyMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUg R05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu ZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMg TGlicmFyeTsgaWYgbm90LCBzZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLworCisvKiBEZWZpbmUgbXVsdGlwbGUgdmVyc2lv bnMgb25seSBmb3IgdGhlIGRlZmluaXRpb24gaW4gbGliYy4gICovCisjaWYg SVNfSU4gKGxpYmMpCisjIGRlZmluZSBfX21lbWNtcGVxIF9fcmVkaXJlY3Rf X19tZW1jbXBlcQorIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyMgdW5kZWYgX19t ZW1jbXBlcQorCisjIGRlZmluZSBTWU1CT0xfTkFNRSBfX21lbWNtcGVxCisj IGluY2x1ZGUgImlmdW5jLW1lbWNtcGVxLmgiCisKK2xpYmNfaWZ1bmNfcmVk aXJlY3RlZCAoX19yZWRpcmVjdF9fX21lbWNtcGVxLCBfX21lbWNtcGVxLCBJ RlVOQ19TRUxFQ1RPUiAoKSk7CisKKyMgaWZkZWYgU0hBUkVECitfX2hpZGRl bl92ZXIxIChfX21lbWNtcGVxLCBfX0dJX19fbWVtY21wZXEsIF9fcmVkaXJl Y3RfX19tZW1jbXBlcSkKKyAgICBfX2F0dHJpYnV0ZV9fICgodmlzaWJpbGl0 eSAoImhpZGRlbiIpKSkgX19hdHRyaWJ1dGVfY29weV9fIChfX21lbWNtcGVx KTsKKyMgZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3lzZGVwcy9yaXNj di9tdWx0aWFyY2gvbWVtY3B5LXJ2di12bGVuLlMgYi9zeXNkZXBzL3Jpc2N2 L211bHRpYXJjaC9tZW1jcHktcnZ2LXZsZW4uUwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi44NzZjMTNmNTA5Ci0tLSAvZGV2L251 bGwKKysrIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtY3B5LXJ2di12 bGVuLlMKQEAgLTAsMCArMSwxMDAgQEAKKy8qIENvcHlyaWdodCAoQykgMjAx Ny0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUg QyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCisgICAKKwkuZ2xvYmwJbWVtY3B5X3J2dl92 bGVuCisJLnAyYWxpZ24JMQorCS50eXBlCW1lbWNweV9ydnZfdmxlbixAZnVu Y3Rpb24KKyMgYTA6IGRzdCBhMTogc3JjIGEyOiBuYnl0ZQorI2RlZmluZSBE U1QgYTUKKyNkZWZpbmUgRFNUX0VORCBhNgorI2RlZmluZSBTUkMgYTEKKyNk ZWZpbmUgU1JDX0VORCBhNAorI2RlZmluZSBOQllURSBhMgorIyB1dGlsaXRp ZXMKKyNkZWZpbmUgVkxFTiBhMworI2RlZmluZSBBTElHTiA4CisjZGVmaW5l IEwobGFiZWwpIC5tZW1jcHlfcnZ2X3ZsZW5fIyNsYWJlbAorCittZW1jcHlf cnZ2X3ZsZW46CisJIyByZXR1cm4gdmFsdWUKKwltdiBEU1QsIGEwCisJYWRk IERTVF9FTkQsIERTVCwgTkJZVEUKKwlhZGQgU1JDX0VORCwgU1JDLCBOQllU RQorIyBCRUdJTiBzbWFsbCBsZW5ndGhzCisJIyBhZGRpIHQxLCB6ZXJvLCAx NgorCSMgYmx0IE5CWVRFLCB0MSwgTChsZXNzXzE2Ynl0ZXMpCisJYWRkaSBW TEVOLCB6ZXJvLCAtMQorCXZzZXR2bGkgVkxFTiwgVkxFTiwgZTgsIG04LCB0 YSwgbWEKKwkjIGJsdCBOQllURSwgVkxFTiwgTChsZXNzX204eDEpCisJc2xs aSB0MSwgVkxFTiwgMgorCWJsdCBOQllURSwgdDEsIEwobTh4NF9sb29wX2Vu ZCkKKyMgRU5EIHNtYWxsIGxlbmd0aAorCisjIEJFR0lOIGNoZWNrIGFsaWdu bWVudAorIyBhbGlnbiBvbiA4QgorCWFuZGkgdDAsIERTVCwgNworCWJlcXog dDAsIEwodmVjX3NldCkKKwlzdWIgdDAsIHplcm8sIHQwCisJYWRkaSB0MCwg dDAsIDgKKwlsZCB0MSwgKFNSQykKKwlzZCB0MSwgKERTVCkKKwlhZGQgU1JD LCBTUkMsIHQwCisJYWRkIERTVCwgRFNULCB0MAorIyBFTkQgY2hlY2sgYWxp Z25tZW50CisjIEJFR0lOIFZFQyBTVE9SRSBCVUxLCitMKHZlY19zZXQpOgor IyB0MDogdG90YWwgdmxlbiAqIDQgIHQxOiBkc3QgKyB0b3RhbCB2bGVuICog NAorCXNsbGkgdDAsIFZMRU4sIDIKKwlhZGQgdDEsIERTVCwgdDAKKwlibHQg RFNUX0VORCwgdDEsIEwobTh4NF9sb29wX2VuZCkgICMgYnJhbmNoIGlmIGxl c3MgdGhhbiB0b3RhbCB2bGVuCisjIHVzZSBtYW55IHQqIHRvIGV4cGxvaXQg ZGF0YSBwYXJhbGxlbGlzbQorTChtOHg0X2xvb3ApOgorCSMgbG9hZHMKKwl2 bGU4LnYgdjAsIChTUkMpCisJYWRkIHQxLCBTUkMsIFZMRU4KKwl2bGU4LnYg djgsICh0MSkKKwlhZGQgdDIsIHQxLCBWTEVOCisJdmxlOC52IHYxNiwgKHQy KQorCWFkZCB0MywgdDIsIFZMRU4KKwl2bGU4LnYgdjI0LCAodDMpCisJYWRk IFNSQywgdDMsIFZMRU4KKwkjIHN0b3JlCisJdnNlOC52IHYwLCAoRFNUKQor CWFkZCB0MSwgRFNULCBWTEVOCisJdnNlOC52IHY4LCAodDEpCisJYWRkIHQy LCB0MSwgVkxFTgorCXZzZTgudiB2MTYsICh0MikKKwlhZGQgdDMsIHQyLCBW TEVOCisJdnNlOC52IHYyNCwgKHQzKQorCWFkZCBEU1QsIHQzLCBWTEVOCisJ IyBjaGVjayBsb29wCisJYWRkIHQ0LCBEU1QsIHQwCisJYmdlIERTVF9FTkQs IHQ0LCBMKG04eDRfbG9vcCkgICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3Rh bCB2bGVuCitMKG04eDRfbG9vcF9lbmQpOgorIyBFTkQgVkVDIFNUT1JFIEJV TEsKKwlzdWIgTkJZVEUsIERTVF9FTkQsIERTVAorCW12IHQxLCBOQllURQor TChtOHgxX2xvb3ApOgorCW12IE5CWVRFLCB0MQorCXZzZXR2bGkgVkxFTiwg TkJZVEUsIGU4LCBtOCwgdGEsIG1hCisJdmxlOC52IHYwLCAoU1JDKQorCXZz ZTgudiB2MCwgKERTVCkKKwlhZGQgU1JDLCBTUkMsIFZMRU4KKwlhZGQgRFNU LCBEU1QsIFZMRU4KKwlzdWIgdDEsIE5CWVRFLCBWTEVOCisJYm5leiB0MSwg TChtOHgxX2xvb3ApCisJcmV0CmRpZmYgLS1naXQgYS9zeXNkZXBzL3Jpc2N2 L211bHRpYXJjaC9tZW1jcHktcnZ2LlMgYi9zeXNkZXBzL3Jpc2N2L211bHRp YXJjaC9tZW1jcHktcnZ2LlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uNTg2YTkyZWU1MAotLS0gL2Rldi9udWxsCisrKyBiL3N5 c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbWNweS1ydnYuUwpAQCAtMCwwICsx LDEyNyBAQAorLyogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjIgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAg IHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMgTGlicmFy eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg ICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5v dCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAg Ki8KKworCS5nbG9ibAltZW1jcHlfcnZ2CisJLnAyYWxpZ24JMQorCS50eXBl CW1lbWNweV9ydnYsQGZ1bmN0aW9uCisjIGEwOiBkc3QgYTE6IHNyYyBhMjog bmJ5dGUKKyNkZWZpbmUgRFNUIGE1CisjZGVmaW5lIERTVF9FTkQgYTYKKyNk ZWZpbmUgU1JDIGExCisjZGVmaW5lIFNSQ19FTkQgYTQKKyNkZWZpbmUgTkJZ VEUgYTIKKyMgdXRpbGl0aWVzCisjZGVmaW5lIFZMRU4gYTMKKyNkZWZpbmUg QUxJR04gOAorI2RlZmluZSBMKGxhYmVsKSAubWVtY3B5X3J2dl8jI2xhYmVs CisKK21lbWNweV9ydnY6CisJIyByZXR1cm4gdmFsdWUKKwltdiBEU1QsIGEw CisJYWRkIERTVF9FTkQsIERTVCwgTkJZVEUKKwlhZGQgU1JDX0VORCwgU1JD LCBOQllURQorIyBCRUdJTiBzbWFsbCBsZW5ndGhzCisJIyBhZGRpIHQxLCB6 ZXJvLCAxNgorCSMgYmx0IE5CWVRFLCB0MSwgTChsZXNzXzE2Ynl0ZXMpCisJ YWRkaSBWTEVOLCB6ZXJvLCAtMQorCXZzZXR2bGkgVkxFTiwgVkxFTiwgZTgs IG04LCB0YSwgbWEKKwlibHQgTkJZVEUsIFZMRU4sIEwobGVzc19tOHgxKQor CXNsbGkgdDEsIFZMRU4sIDIKKwlibHQgTkJZVEUsIHQxLCBMKGxlc3NfbTh4 NCkKKyMgRU5EIHNtYWxsIGxlbmd0aAorCisjIEJFR0lOIGNoZWNrIGFsaWdu bWVudAorIyBhbGlnbiBvbiA4QgorCWFuZGkgdDAsIERTVCwgNworCWJlcXog dDAsIEwodmVjX3NldCkKKwlzdWIgdDAsIHplcm8sIHQwCisJYWRkaSB0MCwg dDAsIDgKKwlsZCB0MSwgKFNSQykKKwlzZCB0MSwgKERTVCkKKwlhZGQgU1JD LCBTUkMsIHQwCisJYWRkIERTVCwgRFNULCB0MAorIyBFTkQgY2hlY2sgYWxp Z25tZW50CisjIEJFR0lOIFZFQyBTVE9SRSBCVUxLCitMKHZlY19zZXQpOgor IyB0MDogdG90YWwgdmxlbiAqIDQgIHQxOiBkc3QgKyB0b3RhbCB2bGVuICog NAorCXNsbGkgdDAsIFZMRU4sIDIKKwlhZGQgdDEsIERTVCwgdDAKKwlibHQg RFNUX0VORCwgdDEsIEwobTh4NF9sb29wX2VuZCkgICMgYnJhbmNoIGlmIGxl c3MgdGhhbiB0b3RhbCB2bGVuCisjIHVzZSBtYW55IHQqIHRvIGV4cGxvaXQg ZGF0YSBwYXJhbGxlbGlzbQorTChtOHg0X2xvb3ApOgorCSMgbG9hZHMKKwl2 bGU4LnYgdjAsIChTUkMpCisJYWRkIHQxLCBTUkMsIFZMRU4KKwl2bGU4LnYg djgsICh0MSkKKwlhZGQgdDIsIHQxLCBWTEVOCisJdmxlOC52IHYxNiwgKHQy KQorCWFkZCB0MywgdDIsIFZMRU4KKwl2bGU4LnYgdjI0LCAodDMpCisJYWRk IFNSQywgdDMsIFZMRU4KKwkjIHN0b3JlCisJdnNlOC52IHYwLCAoRFNUKQor CWFkZCB0MSwgRFNULCBWTEVOCisJdnNlOC52IHY4LCAodDEpCisJYWRkIHQy LCB0MSwgVkxFTgorCXZzZTgudiB2MTYsICh0MikKKwlhZGQgdDMsIHQyLCBW TEVOCisJdnNlOC52IHYyNCwgKHQzKQorCWFkZCBEU1QsIHQzLCBWTEVOCisJ IyBjaGVjayBsb29wCisJYWRkIHQ0LCBEU1QsIHQwCisJYmdlIERTVF9FTkQs IHQ0LCBMKG04eDRfbG9vcCkgICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3Rh bCB2bGVuCitMKG04eDRfbG9vcF9lbmQpOgorIyBFTkQgVkVDIFNUT1JFIEJV TEsKKwlzdWIgTkJZVEUsIERTVF9FTkQsIERTVAorTChsZXNzX204eDQpOgor CXNsbGkgdDEsIFZMRU4sIDEKKwlibHQgTkJZVEUsIHQxLCBMKGxlc3NfbTh4 MikKKwkjIG5ieXRlID49IHZsZW4obTgpICogMgorCSMgbG9hZHMKKwl2bGU4 LnYgdjAsIChTUkMpCisJYWRkIHQxLCBTUkMsIFZMRU4KKwl2bGU4LnYgdjgs ICh0MSkKKwlzdWIgdDIsIFNSQ19FTkQsIFZMRU4KKwl2bGU4LnYgdjI0LCAo dDIpCisJc3ViIHQzLCB0MiwgVkxFTgorCXZsZTgudiB2MTYsICh0MykKKwkj IHN0b3JlcworCXZzZTgudiB2MCwgKERTVCkKKwlhZGQgdDEsIERTVCwgVkxF TgorCXZzZTgudiB2OCwgKHQxKQorCXN1YiB0MiwgRFNUX0VORCwgVkxFTgor CXZzZTgudiB2MjQsICh0MikKKwlzdWIgdDMsIHQyLCBWTEVOCisJdnNlOC52 IHYxNiwgKHQzKQorCXJldAorTChsZXNzX204eDIpOgorCWJsdCBOQllURSwg VkxFTiwgTChsZXNzX204eDEpCisJIyBuYnl0ZSA+PSB2bGVuKG04KSAqIDEK KwkjIGxvYWRzCisJdmxlOC52IHYwLCAoU1JDKQorCXN1YiB0MSwgU1JDX0VO RCwgVkxFTgorCXZsZTgudiB2OCwgKHQxKQorCSMgc3RvcmVzCisJdnNlOC52 IHYwLCAoRFNUKQorCXN1YiB0MiwgRFNUX0VORCwgVkxFTgorCXZzZTgudiB2 OCwgKHQyKQorCXJldAorTChsZXNzX204eDEpOgorCXZzZXR2bGkgVkxFTiwg TkJZVEUsIGU4LCBtOCwgdGEsIG1hCisJdmxlOC52IHY4LCAoU1JDKQorCXZz ZTgudiB2OCwgKERTVCkKKwlyZXQKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlz Y3YvbXVsdGlhcmNoL21lbWNweS5jIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFy Y2gvbWVtY3B5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uN2M5MDIzN2FkOQotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMv cmlzY3YvbXVsdGlhcmNoL21lbWNweS5jCkBAIC0wLDAgKzEsMzUgQEAKKy8q IE11bHRpcGxlIHZlcnNpb25zIG9mIG1lbWNweS4KKyAgIEFsbCB2ZXJzaW9u cyBtdXN0IGJlIGxpc3RlZCBpbiBpZnVuYy1pbXBsLWxpc3QuYy4KKyAgIENv cHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExp YnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAg TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9u ZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0 dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKy8qIERlZmlu ZSBtdWx0aXBsZSB2ZXJzaW9ucyBvbmx5IGZvciB0aGUgZGVmaW5pdGlvbiBp biBsaWJjLiAgKi8KKyNpZiBJU19JTiAobGliYykKKyMgZGVmaW5lIG1lbWNw eSBfX3JlZGlyZWN0X21lbWNweQorIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyMg dW5kZWYgbWVtY3B5CisKKyMgZGVmaW5lIFNZTUJPTF9OQU1FIG1lbWNweQor IyBpbmNsdWRlICJpZnVuYy1tZW1jcHkuaCIKKworbGliY19pZnVuY19yZWRp cmVjdGVkIChfX3JlZGlyZWN0X21lbWNweSwgbWVtY3B5LCBJRlVOQ19TRUxF Q1RPUiAoKSk7CisKKyMgaWZkZWYgU0hBUkVECitfX2hpZGRlbl92ZXIxICht ZW1jcHksIF9fR0lfbWVtY3B5LCBfX3JlZGlyZWN0X21lbWNweSkKKyAgX19h dHRyaWJ1dGVfXyAoKHZpc2liaWxpdHkgKCJoaWRkZW4iKSkpIF9fYXR0cmli dXRlX2NvcHlfXyAobWVtY3B5KTsKKyMgZW5kaWYKKyNlbmRpZgpkaWZmIC0t Z2l0IGEvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtbW92ZS1ydnYtdmxl bi5TIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtbW92ZS1ydnYtdmxl bi5TCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmVk YzdhN2IwZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zeXNkZXBzL3Jpc2N2L211 bHRpYXJjaC9tZW1tb3ZlLXJ2di12bGVuLlMKQEAgLTAsMCArMSwxMTAgQEAK Ky8qIENvcHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdO VSBDIExpYnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAg bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9u IDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5z ZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQor ICAgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisgICAK KwkuZ2xvYmwJbWVtbW92ZV9ydnZfdmxlbgorCS5wMmFsaWduCTEKKwkudHlw ZQltZW1tb3ZlX3J2dl92bGVuLEBmdW5jdGlvbgorIyBhMDogZHN0IGExOiBz cmMgYTI6IG5ieXRlCisjZGVmaW5lIERTVCBhNQorI2RlZmluZSBEU1RfRU5E IGE2CisjZGVmaW5lIFNSQyBhMQorI2RlZmluZSBTUkNfRU5EIGE0CisjZGVm aW5lIE5CWVRFIGEyCisjIHV0aWxpdGllcworI2RlZmluZSBWTEVOIGEzCisj ZGVmaW5lIEFMSUdOIDgKKyNkZWZpbmUgTChsYWJlbCkgLm1lbW1vdmVfcnZ2 X3ZsZW5fIyNsYWJlbAorCittZW1tb3ZlX3J2dl92bGVuOgorCSMgcmV0dXJu IHZhbHVlCisJbXYgRFNULCBhMAorCWFkZCBEU1RfRU5ELCBEU1QsIE5CWVRF CisJYWRkIFNSQ19FTkQsIFNSQywgTkJZVEUKKyMgQkVHSU4gb3ZlcmxhcHBp bmcgY29uZGl0aW9uCisgICAgc3ViIHQwLCBEU1QsIFNSQworICAgIGJsdCB0 MCwgTkJZVEUsIEwob3ZlcmxhcHBpbmcpICAjIHVzZSBtZW1jcHkgaWYgZHN0 IC0gc3JjID49IG5ieXRlCisgICAgbXYgczEsIHJhCisgICAgamFsIHJhLCBt ZW1jcHlfcnZ2CisgICAgbXYgcmEsIHMxCisgICAgcmV0CisjIEVORCBvdmVy bGFwcGluZyBjb25kaXRpb24KKyMgQkVHSU4gc21hbGwgbGVuZ3RocworCSMg YWRkaSB0MSwgemVybywgMTYKKwkjIGJsdCBOQllURSwgdDEsIEwobGVzc18x NmJ5dGVzKQorTChvdmVybGFwcGluZyk6CisJYWRkaSBWTEVOLCB6ZXJvLCAt MQorCXZzZXR2bGkgVkxFTiwgVkxFTiwgZTgsIG04LCB0YSwgbWEKKwkjIGJs dCBOQllURSwgVkxFTiwgTChsZXNzX204eDEpCisJc2xsaSB0MSwgVkxFTiwg MgorCWJsdCBOQllURSwgdDEsIEwobTh4NF9sb29wX2VuZCkKKyMgRU5EIHNt YWxsIGxlbmd0aAorCisjIEJFR0lOIGNoZWNrIGFsaWdubWVudAorIyBhbGln biBvbiA4QgorIyBoYXJkIHRvIGdldCBhbGlnbm1lbnQgcmlnaHQKKwkjIGFu ZGkgdDAsIERTVF9FTkQsIDcKKwkjIGJlcXogdDAsIEwodmVjX3NldCkKKwkj IGxkIHQxLCAtOChTUkNfRU5EKQorCSMgc2QgdDEsIC04KERTVF9FTkQpCisJ IyBzdWIgU1JDX0VORCwgU1JDX0VORCwgdDAKKwkjIHN1YiBEU1RfRU5ELCBE U1RfRU5ELCB0MAorIyBFTkQgY2hlY2sgYWxpZ25tZW50CisjIEJFR0lOIFZF QyBTVE9SRSBCVUxLCitMKHZlY19zZXQpOgorIyB0MDogdG90YWwgdmxlbiAq IDQgIHQxOiBkc3RfZW5kIC0gdG90YWwgdmxlbiAqIDQKKwlzbGxpIHQwLCBW TEVOLCAyCisJc3ViIHQxLCBEU1RfRU5ELCB0MAorCWJsdCB0MSwgRFNULCBM KG04eDRfbG9vcF9lbmQpICAjIGJyYW5jaCBpZiBsZXNzIHRoYW4gdG90YWwg dmxlbgorIyB1c2UgbWFueSB0KiB0byBleHBsb2l0IGRhdGEgcGFyYWxsZWxp c20KK0wobTh4NF9sb29wKToKKwkjIGxvYWRzCisgICAgc3ViIFNSQ19FTkQs IFNSQ19FTkQsIFZMRU4KKwl2bGU4LnYgdjAsIChTUkNfRU5EKQorCXN1YiB0 MSwgU1JDX0VORCwgVkxFTgorCXZsZTgudiB2OCwgKHQxKQorCXN1YiB0Miwg dDEsIFZMRU4KKwl2bGU4LnYgdjE2LCAodDIpCisJc3ViIHQzLCB0MiwgVkxF TgorCXZsZTgudiB2MjQsICh0MykKKyAgICBtdiBTUkNfRU5ELCB0MworCSMg c3RvcmUKKyAgICBzdWIgRFNUX0VORCwgRFNUX0VORCwgVkxFTgorCXZzZTgu diB2MCwgKERTVF9FTkQpCisJc3ViIHQxLCBEU1RfRU5ELCBWTEVOCisJdnNl OC52IHY4LCAodDEpCisJc3ViIHQyLCB0MSwgVkxFTgorCXZzZTgudiB2MTYs ICh0MikKKwlzdWIgdDMsIHQyLCBWTEVOCisJdnNlOC52IHYyNCwgKHQzKQor CW12IERTVF9FTkQsIHQzCisJIyBjaGVjayBsb29wCisJc3ViIHQ0LCBEU1Rf RU5ELCB0MAorCWJnZSB0NCwgRFNULCBMKG04eDRfbG9vcCkgICMgYnJhbmNo IGlmIGxlc3MgdGhhbiB0b3RhbCB2bGVuCitMKG04eDRfbG9vcF9lbmQpOgor IyBFTkQgVkVDIFNUT1JFIEJVTEsKKwlzdWIgTkJZVEUsIERTVF9FTkQsIERT VAorICAgIG12IHQxLCBOQllURQorTChtOHgxX2xvb3ApOgorCW12IE5CWVRF LCB0MQorCXZzZXR2bGkgVkxFTiwgTkJZVEUsIGU4LCBtOCwgdGEsIG1hCisg ICAgc3ViIFNSQ19FTkQsIFNSQ19FTkQsIFZMRU4KKyAgICBzdWIgRFNUX0VO RCwgRFNUX0VORCwgVkxFTgorCXZsZTgudiB2MCwgKFNSQ19FTkQpCisJdnNl OC52IHYwLCAoRFNUX0VORCkKKwlzdWIgdDEsIE5CWVRFLCBWTEVOCisJYm5l eiB0MSwgTChtOHgxX2xvb3ApCisJcmV0CmRpZmYgLS1naXQgYS9zeXNkZXBz L3Jpc2N2L211bHRpYXJjaC9tZW1tb3ZlLXJ2di5TIGIvc3lzZGVwcy9yaXNj di9tdWx0aWFyY2gvbWVtbW92ZS1ydnYuUwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi44ZTQwMzUyYTIzCi0tLSAvZGV2L251bGwK KysrIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFyY2gvbWVtbW92ZS1ydnYuUwpA QCAtMCwwICsxLDEzOCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjIg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUg aXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05V IEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJh cnk7IGlmIG5vdCwgc2VlCisgICA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LiAgKi8KKyAgIAorCS5nbG9ibAltZW1tb3ZlX3J2dgorCS5wMmFs aWduCTEKKwkudHlwZQltZW1tb3ZlX3J2dixAZnVuY3Rpb24KKyMgYTA6IGRz dCBhMTogc3JjIGEyOiBuYnl0ZQorI2RlZmluZSBEU1QgYTUKKyNkZWZpbmUg RFNUX0VORCBhNgorI2RlZmluZSBTUkMgYTEKKyNkZWZpbmUgU1JDX0VORCBh NAorI2RlZmluZSBOQllURSBhMgorIyB1dGlsaXRpZXMKKyNkZWZpbmUgVkxF TiBhMworI2RlZmluZSBBTElHTiA4CisjZGVmaW5lIEwobGFiZWwpIC5tZW1t b3ZlX3J2dl8jI2xhYmVsCisKK21lbW1vdmVfcnZ2OgorCSMgcmV0dXJuIHZh bHVlCisJbXYgRFNULCBhMAorCWFkZCBEU1RfRU5ELCBEU1QsIE5CWVRFCisJ YWRkIFNSQ19FTkQsIFNSQywgTkJZVEUKKyMgQkVHSU4gb3ZlcmxhcHBpbmcg Y29uZGl0aW9uCisgICAgc3ViIHQwLCBEU1QsIFNSQworICAgIGJsdCB0MCwg TkJZVEUsIEwob3ZlcmxhcHBpbmcpICAjIHVzZSBtZW1jcHkgaWYgZHN0IC0g c3JjID49IG5ieXRlCisgICAgbXYgczEsIHJhCisgICAgamFsIHJhLCBtZW1j cHlfcnZ2CisgICAgbXYgcmEsIHMxCisgICAgcmV0CisjIEVORCBvdmVybGFw cGluZyBjb25kaXRpb24KKyMgQkVHSU4gc21hbGwgbGVuZ3RocworCSMgYWRk aSB0MSwgemVybywgMTYKKwkjIGJsdCBOQllURSwgdDEsIEwobGVzc18xNmJ5 dGVzKQorTChvdmVybGFwcGluZyk6CisJYWRkaSBWTEVOLCB6ZXJvLCAtMQor CXZzZXR2bGkgVkxFTiwgVkxFTiwgZTgsIG04LCB0YSwgbWEKKwkjIGJsdCBO QllURSwgVkxFTiwgTChsZXNzX204eDEpCisJc2xsaSB0MSwgVkxFTiwgMgor CWJsdCBOQllURSwgdDEsIEwobGVzc19tOHg0KQorIyBFTkQgc21hbGwgbGVu Z3RoCisKKyMgQkVHSU4gY2hlY2sgYWxpZ25tZW50CisjIGFsaWduIG9uIDhC CisjIGhhcmQgdG8gZ2V0IGFsaWdubWVudCByaWdodAorCSMgYW5kaSB0MCwg RFNUX0VORCwgNworCSMgYmVxeiB0MCwgTCh2ZWNfc2V0KQorCSMgbGQgdDEs IC04KFNSQ19FTkQpCisJIyBzZCB0MSwgLTgoRFNUX0VORCkKKwkjIHN1YiBT UkNfRU5ELCBTUkNfRU5ELCB0MAorCSMgc3ViIERTVF9FTkQsIERTVF9FTkQs IHQwCisjIEVORCBjaGVjayBhbGlnbm1lbnQKKyMgQkVHSU4gVkVDIFNUT1JF IEJVTEsKK0wodmVjX3NldCk6CisjIHQwOiB0b3RhbCB2bGVuICogNCAgdDE6 IGRzdF9lbmQgLSB0b3RhbCB2bGVuICogNAorCXNsbGkgdDAsIFZMRU4sIDIK KwlzdWIgdDEsIERTVF9FTkQsIHQwCisJYmx0IHQxLCBEU1QsIEwobTh4NF9s b29wX2VuZCkgICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3RhbCB2bGVuCisj IHVzZSBtYW55IHQqIHRvIGV4cGxvaXQgZGF0YSBwYXJhbGxlbGlzbQorTCht OHg0X2xvb3ApOgorCSMgbG9hZHMKKyAgICBzdWIgU1JDX0VORCwgU1JDX0VO RCwgVkxFTgorCXZsZTgudiB2MCwgKFNSQ19FTkQpCisJc3ViIHQxLCBTUkNf RU5ELCBWTEVOCisJdmxlOC52IHY4LCAodDEpCisJc3ViIHQyLCB0MSwgVkxF TgorCXZsZTgudiB2MTYsICh0MikKKwlzdWIgdDMsIHQyLCBWTEVOCisJdmxl OC52IHYyNCwgKHQzKQorICAgIG12IFNSQ19FTkQsIHQzCisJIyBzdG9yZQor ICAgIHN1YiBEU1RfRU5ELCBEU1RfRU5ELCBWTEVOCisJdnNlOC52IHYwLCAo RFNUX0VORCkKKwlzdWIgdDEsIERTVF9FTkQsIFZMRU4KKwl2c2U4LnYgdjgs ICh0MSkKKwlzdWIgdDIsIHQxLCBWTEVOCisJdnNlOC52IHYxNiwgKHQyKQor CXN1YiB0MywgdDIsIFZMRU4KKwl2c2U4LnYgdjI0LCAodDMpCisJbXYgRFNU X0VORCwgdDMKKwkjIGNoZWNrIGxvb3AKKwlzdWIgdDQsIERTVF9FTkQsIHQw CisJYmdlIHQ0LCBEU1QsIEwobTh4NF9sb29wKSAgIyBicmFuY2ggaWYgbGVz cyB0aGFuIHRvdGFsIHZsZW4KK0wobTh4NF9sb29wX2VuZCk6CisjIEVORCBW RUMgU1RPUkUgQlVMSworCXN1YiBOQllURSwgRFNUX0VORCwgRFNUCitMKGxl c3NfbTh4NCk6CisJc2xsaSB0MSwgVkxFTiwgMQorCWJsdCBOQllURSwgdDEs IEwobGVzc19tOHgyKQorCSMgbmJ5dGUgPj0gdmxlbihtOCkgKiAyCisJIyBs b2FkcworCXZsZTgudiB2MCwgKFNSQykKKwlhZGQgdDEsIFNSQywgVkxFTgor CXZsZTgudiB2OCwgKHQxKQorCXN1YiB0MiwgU1JDX0VORCwgVkxFTgorCXZs ZTgudiB2MjQsICh0MikKKwlzdWIgdDMsIHQyLCBWTEVOCisJdmxlOC52IHYx NiwgKHQzKQorCSMgc3RvcmVzCisJdnNlOC52IHYwLCAoRFNUKQorCWFkZCB0 MSwgRFNULCBWTEVOCisJdnNlOC52IHY4LCAodDEpCisJc3ViIHQyLCBEU1Rf RU5ELCBWTEVOCisJdnNlOC52IHYyNCwgKHQyKQorCXN1YiB0MywgdDIsIFZM RU4KKwl2c2U4LnYgdjE2LCAodDMpCisJcmV0CitMKGxlc3NfbTh4Mik6CisJ Ymx0IE5CWVRFLCBWTEVOLCBMKGxlc3NfbTh4MSkKKwkjIG5ieXRlID49IHZs ZW4obTgpICogMQorCSMgbG9hZHMKKwl2bGU4LnYgdjAsIChTUkMpCisJc3Vi IHQxLCBTUkNfRU5ELCBWTEVOCisJdmxlOC52IHY4LCAodDEpCisJIyBzdG9y ZXMKKwl2c2U4LnYgdjAsIChEU1QpCisJc3ViIHQyLCBEU1RfRU5ELCBWTEVO CisJdnNlOC52IHY4LCAodDIpCisJcmV0CitMKGxlc3NfbTh4MSk6CisJdnNl dHZsaSBWTEVOLCBOQllURSwgZTgsIG04LCB0YSwgbWEKKwl2bGU4LnYgdjgs IChTUkMpCisJdnNlOC52IHY4LCAoRFNUKQorCXJldAorICAgIApcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlz Y3YvbXVsdGlhcmNoL21lbXNldC1ydnYtdmxlbi5TIGIvc3lzZGVwcy9yaXNj di9tdWx0aWFyY2gvbWVtc2V0LXJ2di12bGVuLlMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMmEwMTViNjkwMAotLS0gL2Rldi9u dWxsCisrKyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNoL21lbXNldC1ydnYt dmxlbi5TCkBAIC0wLDAgKzEsOTQgQEAKKy8qIENvcHlyaWdodCAoQykgMjAx Ny0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisKKyAgIFRo ZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUg QyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0dHBzOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCisJLmdsb2JsCW1lbXNldF9ydnZfdmxlbgor CS5wMmFsaWduCTEKKwkudHlwZQltZW1zZXRfcnZ2X3ZsZW4sQGZ1bmN0aW9u CisjIGEwOiBkc3QgYTE6IGMgYTI6IG5ieXRlCisjZGVmaW5lIERTVCBhNQor I2RlZmluZSBEU1RfRU5EIGE3CisjZGVmaW5lIENDIGExCisjZGVmaW5lIE5C WVRFIGEyCisjIHV0aWxpdGllcworI2RlZmluZSBWTEVOIGEzCisjZGVmaW5l IEE0IGE0CisjZGVmaW5lIEE2IGE2CisjZGVmaW5lIEFMSUdOIDgKKyNkZWZp bmUgTChsYWJlbCkgLm1lbXNldF9ydnZfdmxlbl8jI2xhYmVsCisKK21lbXNl dF9ydnZfdmxlbjoKKwkjIHJldHVybiB2YWx1ZQorCW12IERTVCwgYTAKKwlh ZGQgRFNUX0VORCwgRFNULCBOQllURQorCSMgdG8gdWludDgKKwlhbmRpIEND LCBDQywgMHhmZgorCSMgYnJvYWRjYXN0IGluIHVpbnQ2NAorCXNsbGkgdDAs IENDLCA4ICAgICAjIHQwID0gQ0MgPDwgOAorCW9yIENDLCB0MCwgQ0MgICAg ICAjIENDID0gQ0MgfCB0MAorCXNsbGkgdDAsIENDLCAxNiAgICAjIHQwID0g Q0MgPDwgMTYKKwlvciBDQywgdDAsIENDICAgICAgIyBDQyA9IENDIHwgdDAK KwlzbGxpIHQwLCBDQywgMzIgICAgIyB0MCA9IENDIDw8IDMyCisJb3IgQ0Ms IHQwLCBDQyAgICAgICMgQ0MgPSBDQyB8IHQwCisjIEJFR0lOIHNtYWxsIGxl bmd0aHMKKwkjIGFkZGkgdDEsIHplcm8sIDE2CisJIyBibHQgTkJZVEUsIHQx LCBMKGxlc3NfMTZieXRlcykKKwlhZGRpIFZMRU4sIHplcm8sIC0xCisJdnNl dHZsaSBWTEVOLCBWTEVOLCBlOCwgbTgsIHRhLCBtYQorCXZtdi52LngJdjgs IENDCisJIyBibHQgTkJZVEUsIFZMRU4sIEwobGVzc19tOHgxKQorCXNsbGkg dDEsIFZMRU4sIDIKKwlibHQgTkJZVEUsIHQxLCBMKG04eDRfbG9vcF9lbmQp CisjIEVORCBzbWFsbCBsZW5ndGgKKyMgbmJ5dGUgPj0gdmxlbiB4IDQKKwor IyBCRUdJTiBhbGlnbiBvbiA4QgorCWFuZGkgdDAsIERTVCwgNworCWJlcXog dDAsIEwodmVjX3NldCkKKwlzdWIgdDAsIHplcm8sIHQwCisJYWRkaSB0MCwg dDAsIDgKKwlzZCBDQywgKERTVCkKKwlhZGQgRFNULCBEU1QsIHQwCisjIEVO RCBhbGlnbiBvbiA4QgorIyBCRUdJTiBWRUMgU1RPUkUgQlVMSworTCh2ZWNf c2V0KToKKyMgdDA6IHRvdGFsIHZsZW4gKiA0ICB0MTogZHN0ICsgdG90YWwg dmxlbiAqIDQKKwlzbGxpIHQwLCBWTEVOLCAyCisJYWRkIHQxLCBEU1QsIHQw CisJYmx0IERTVF9FTkQsIHQxLCBMKG04eDRfbG9vcF9lbmQpICAjIGJyYW5j aCBpZiBsZXNzIHRoYW4gdG90YWwgdmxlbgorIyB1c2UgbWFueSB0KiB0byBl eHBsb2l0IGRhdGEgcGFyYWxsZWxpc20KK0wobTh4NF9sb29wKToKKwl2c2U4 LnYJdjgsIChEU1QpCisJYWRkIHQyLCBEU1QsIFZMRU4KKwl2c2U4LnYJdjgs ICh0MikKKwlhZGQgdDMsIHQyLCBWTEVOCisJdnNlOC52CXY4LCAodDMpCisJ YWRkIHQ0LCB0MywgVkxFTgorCXZzZTgudgl2OCwgKHQ0KQorCWFkZCBEU1Qs IHQ0LCBWTEVOCisJYWRkIHQxLCBEU1QsIHQwCisJYmdlIERTVF9FTkQsIHQx LCBMKG04eDRfbG9vcCkgICMgYnJhbmNoIGlmIGxlc3MgdGhhbiB0b3RhbCB2 bGVuCitMKG04eDRfbG9vcF9lbmQpOgorIyBFTkQgVkVDIFNUT1JFIEJVTEsK KwlzdWIgTkJZVEUsIERTVF9FTkQsIERTVAorCW12IHQxLCBOQllURQorTCht OHgxX2xvb3ApOgorCW12IE5CWVRFLCB0MQorCXZzZXR2bGkgdDAsIE5CWVRF LCBlOCwgbTgsIHRhLCBtYQorCXZzZTgudiB2OCwgKERTVCkKKwlhZGQgRFNU LCBEU1QsIHQwCisJc3ViIHQxLCBOQllURSwgdDAKKwlibmV6IHQxLCBMKG04 eDFfbG9vcCkKKwlyZXQKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlzY3YvbXVs dGlhcmNoL21lbXNldC1ydnYuUyBiL3N5c2RlcHMvcmlzY3YvbXVsdGlhcmNo L21lbXNldC1ydnYuUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwLi5lNTE2MTg1ZTYxCi0tLSAvZGV2L251bGwKKysrIGIvc3lzZGVw cy9yaXNjdi9tdWx0aWFyY2gvbWVtc2V0LXJ2di5TCkBAIC0wLDAgKzEsMTI2 IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo ZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVy c2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExp Y2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBz ZWUKKyAgIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwor ICAgCisJLmdsb2JsCW1lbXNldF9ydnYKKwkucDJhbGlnbgkxCisJLnR5cGUJ bWVtc2V0X3J2dixAZnVuY3Rpb24KKyMgYTA6IGRzdCBhMTogYyBhMjogbmJ5 dGUKKyNkZWZpbmUgRFNUIGE1CisjZGVmaW5lIERTVF9FTkQgYTcKKyNkZWZp bmUgQ0MgYTEKKyNkZWZpbmUgTkJZVEUgYTIKKyMgdXRpbGl0aWVzCisjZGVm aW5lIFZMRU4gYTMKKyNkZWZpbmUgQTQgYTQKKyNkZWZpbmUgQTYgYTYKKyNk ZWZpbmUgQUxJR04gOAorI2RlZmluZSBMKGxhYmVsKSAubWVtc2V0X3J2dl8j I2xhYmVsCisKK21lbXNldF9ydnY6CisJIyByZXR1cm4gdmFsdWUKKwltdiBE U1QsIGEwCisJYWRkIERTVF9FTkQsIERTVCwgTkJZVEUKKwkjIHRvIHVpbnQ4 CisJYW5kaSBDQywgQ0MsIDB4ZmYKKwkjIGJyb2FkY2FzdCBpbiB1aW50NjQK KwlzbGxpIHQwLCBDQywgOCAgICAgIyB0MCA9IENDIDw8IDgKKwlvciBDQywg dDAsIENDICAgICAgIyBDQyA9IENDIHwgdDAKKwlzbGxpIHQwLCBDQywgMTYg ICAgIyB0MCA9IENDIDw8IDE2CisJb3IgQ0MsIHQwLCBDQyAgICAgICMgQ0Mg PSBDQyB8IHQwCisJc2xsaSB0MCwgQ0MsIDMyICAgICMgdDAgPSBDQyA8PCAz MgorCW9yIENDLCB0MCwgQ0MgICAgICAjIENDID0gQ0MgfCB0MAorIyBCRUdJ TiBzbWFsbCBsZW5ndGhzCisJIyBhZGRpIHQxLCB6ZXJvLCAxNgorCSMgYmx0 IE5CWVRFLCB0MSwgTChsZXNzXzE2Ynl0ZXMpCisJYWRkaSBWTEVOLCB6ZXJv LCAtMQorCXZzZXR2bGkgVkxFTiwgVkxFTiwgZTgsIG04LCB0YSwgbWEKKwl2 bXYudi54CXY4LCBDQworCWJsdCBOQllURSwgVkxFTiwgTChsZXNzX204eDEp CisJc2xsaSB0MSwgVkxFTiwgMgorCWJsdCBOQllURSwgdDEsIEwobGVzc19t OHg0KQorIyBFTkQgc21hbGwgbGVuZ3RoCisjIG5ieXRlID49IHZsZW4geCA0 CisKKyMgQkVHSU4gYWxpZ24gb24gOEIKKwlhbmRpIHQwLCBEU1QsIDcKKwli ZXF6IHQwLCBMKHZlY19zZXQpCisJc3ViIHQwLCB6ZXJvLCB0MAorCWFkZGkg dDAsIHQwLCA4CisJc2QgQ0MsIChEU1QpCisJYWRkIERTVCwgRFNULCB0MAor IyBFTkQgYWxpZ24gb24gOEIKKyMgQkVHSU4gVkVDIFNUT1JFIEJVTEsKK0wo dmVjX3NldCk6CisjIHQwOiB0b3RhbCB2bGVuICogNCAgdDE6IGRzdCArIHRv dGFsIHZsZW4gKiA0CisJc2xsaSB0MCwgVkxFTiwgMgorCWFkZCB0MSwgRFNU LCB0MAorCWJsdCBEU1RfRU5ELCB0MSwgTChtOHg0X2xvb3BfZW5kKSAgIyBi cmFuY2ggaWYgbGVzcyB0aGFuIHRvdGFsIHZsZW4KKyMgdXNlIG1hbnkgdCog dG8gZXhwbG9pdCBkYXRhIHBhcmFsbGVsaXNtCitMKG04eDRfbG9vcCk6CisJ dnNlOC52CXY4LCAoRFNUKQorCWFkZCB0MiwgRFNULCBWTEVOCisJdnNlOC52 CXY4LCAodDIpCisJYWRkIHQzLCB0MiwgVkxFTgorCXZzZTgudgl2OCwgKHQz KQorCWFkZCB0NCwgdDMsIFZMRU4KKwl2c2U4LnYJdjgsICh0NCkKKwlhZGQg RFNULCB0NCwgVkxFTgorCWFkZCB0MSwgRFNULCB0MAorCWJnZSBEU1RfRU5E LCB0MSwgTChtOHg0X2xvb3ApICAjIGJyYW5jaCBpZiBsZXNzIHRoYW4gdG90 YWwgdmxlbgorTChtOHg0X2xvb3BfZW5kKToKKyMgRU5EIFZFQyBTVE9SRSBC VUxLCisJc3ViIE5CWVRFLCBEU1RfRU5ELCBEU1QKK0wobGVzc19tOHg0KToK KwlhZGRpIHQxLCB6ZXJvLCAzCisJbXVsIHQxLCBWTEVOLCB0MQorCWJsdCBO QllURSwgdDEsIEwobGVzc19tOHgzKQorCSMgbmJ5dGUgPj0gdmxlbihtOCkg KiAzCisJIyAzIHN0b3JlcyBmb2xsb3dlZCBieSBhbiBvdmVybGFwIHN0b3Jl CisJdnNlOC52IHY4LCAoRFNUKQorCWFkZCB0MiwgRFNULCBWTEVOCisJdnNl OC52IHY4LCAodDIpCisJYWRkIHQzLCB0MiwgVkxFTgorCXZzZTgudiB2OCwg KHQzKQorCSMgb3ZlcmxhcCBzdG9yZQorCXN1YiB0MSwgRFNUX0VORCwgVkxF TgorCXZzZTgudiB2OCwgKHQxKQorCXJldAorTChsZXNzX204eDMpOgorCXNs bGkgdDEsIFZMRU4sIDEKKwlibHQgTkJZVEUsIHQxLCBMKGxlc3NfbTh4MikK KwkjIG5ieXRlID49IHZsZW4obTgpICogMgorCSMgMiBzdG9yZXMgZm9sbG93 ZWQgYnkgYW4gb3ZlcmxhcCBzdG9yZQorCXZzZTgudiB2OCwgKERTVCkKKwlh ZGQgRFNULCBEU1QsIFZMRU4KKwl2c2U4LnYgdjgsIChEU1QpCisJIyBvdmVy bGFwIHN0b3JlCisJc3ViIHQxLCBEU1RfRU5ELCBWTEVOCisJdnNlOC52IHY4 LCAodDEpCisJcmV0CitMKGxlc3NfbTh4Mik6CisJYmx0IE5CWVRFLCBWTEVO LCBMKGxlc3NfbTh4MSkKKwkjIG5ieXRlID49IHZsZW4obTgpICogMQorCSMg MSBzdG9yZXMgZm9sbG93ZWQgYnkgYW4gb3ZlcmxhcCBzdG9yZQorCXZzZTgu diB2OCwgKERTVCkKKwkjIG92ZXJsYXAgc3RvcmUKKwlzdWIgdDEsIERTVF9F TkQsIFZMRU4KKwl2c2U4LnYgdjgsICh0MSkKKwlyZXQKK0wobGVzc19tOHgx KToKKwl2c2V0dmxpIFZMRU4sIE5CWVRFLCBlOCwgbTgsIHRhLCBtYQorCXZz ZTgudiB2OCwgKERTVCkKKwlyZXQKZGlmZiAtLWdpdCBhL3N5c2RlcHMvcmlz Y3YvbXVsdGlhcmNoL21lbXNldC5jIGIvc3lzZGVwcy9yaXNjdi9tdWx0aWFy Y2gvbWVtc2V0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uN2M5MzM2MDY5OQotLS0gL2Rldi9udWxsCisrKyBiL3N5c2RlcHMv cmlzY3YvbXVsdGlhcmNoL21lbXNldC5jCkBAIC0wLDAgKzEsMzUgQEAKKy8q IE11bHRpcGxlIHZlcnNpb25zIG9mIG1lbXNldC4KKyAgIEFsbCB2ZXJzaW9u cyBtdXN0IGJlIGxpc3RlZCBpbiBpZnVuYy1pbXBsLWxpc3QuYy4KKyAgIENv cHlyaWdodCAoQykgMjAxNy0yMDIyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExp YnJhcnkuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBv ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAg TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9u ZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorICAgPGh0 dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKy8qIERlZmlu ZSBtdWx0aXBsZSB2ZXJzaW9ucyBvbmx5IGZvciB0aGUgZGVmaW5pdGlvbiBp biBsaWJjLiAgKi8KKyNpZiBJU19JTiAobGliYykKKyMgZGVmaW5lIG1lbXNl dCBfX3JlZGlyZWN0X21lbXNldAorIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyMg dW5kZWYgbWVtc2V0CisKKyMgZGVmaW5lIFNZTUJPTF9OQU1FIG1lbXNldAor IyBpbmNsdWRlICJpZnVuYy1tZW1zZXQuaCIKKworbGliY19pZnVuY19yZWRp cmVjdGVkIChfX3JlZGlyZWN0X21lbXNldCwgbWVtc2V0LCBJRlVOQ19TRUxF Q1RPUiAoKSk7CisKKyMgaWZkZWYgU0hBUkVECitfX2hpZGRlbl92ZXIxICht ZW1zZXQsIF9fR0lfbWVtc2V0LCBfX3JlZGlyZWN0X21lbXNldCkKKyAgX19h dHRyaWJ1dGVfXyAoKHZpc2liaWxpdHkgKCJoaWRkZW4iKSkpIF9fYXR0cmli dXRlX2NvcHlfXyAobWVtc2V0KTsKKyMgZW5kaWYKKyNlbmRpZgotLSAKMi4y MC4xCgo= --000000000000ffdeab05ec552db0--