From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.4 required=3.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 280F7C2B9F4 for ; Sat, 26 Jun 2021 00:38:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E02746194B for ; Sat, 26 Jun 2021 00:38:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229885AbhFZAkm (ORCPT ); Fri, 25 Jun 2021 20:40:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229882AbhFZAkk (ORCPT ); Fri, 25 Jun 2021 20:40:40 -0400 Received: from mail-qk1-x734.google.com (mail-qk1-x734.google.com [IPv6:2607:f8b0:4864:20::734]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 26491C061574 for ; Fri, 25 Jun 2021 17:38:18 -0700 (PDT) Received: by mail-qk1-x734.google.com with SMTP id bm25so21258848qkb.0 for ; Fri, 25 Jun 2021 17:38:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:from:to:cc:subject:in-reply-to:message-id:references :mime-version; bh=3azuBf2ZnzvW1cxkhHLPdc3EW/VeWbTSuMm4KQHaMn8=; b=dw/jvAnXUbqUkFqqPKg0nJhN6hb+WpyYf+fc35mAFBHD1EpKRpT+GB+TymMPQN34Dk NFaTLXuUzVk6A0Bi+xqVwu7E/nEL9qQjBsIyKRxfSEJZUJ1xh5cVDB3LcCmD5vQvsE+m roPcVvuVad5oMJBFZHLdFoEax9PeLhZcWYBoLZgFQyj42R8jfzH0kLW4UlloXPNAJKum ChiiVNesa8eqEfAz8n3o8X7bhMfBZ+VldXitXMcfRTHe8JuEGdk2SeV8IPmtwLyJ4HdK QP7zTWHQJTPe+gUhV+CNxWNTkM/bazQNHJ+xIvFbCppSnXMZSdhMYrDA7mimbUDAk2vb xTSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:mime-version; bh=3azuBf2ZnzvW1cxkhHLPdc3EW/VeWbTSuMm4KQHaMn8=; b=ObF7s0WpACPwhGxUqRuDX6IRXn2B+jzpG1C5aaVgdze/l8G87ibdVp2b+8b+snWTDD RN/xKUUqDjB95qLsnfNFHJEm+wZu1S4NXd7aoNUX39bOkccIhvmYim2oXrDCRdWaZmps AvCnUsNiNTdg0FgXMgrBe6TL0bvxse4QxljjtmYXoSSz/rxMN95TLgU+PKeJw5H0FwU1 3I6APVIFR+Mjc0VXbKcFPQZdSPekSVdxQ4zqZJ9gNw/Pypufu/Wnc03uIenRSmEWhkki HrPEUpXcxPV9CkmpwYdUoPltZbAhDHYhJ50BI/vpWETTYLl3wW5SBBbyDkRIT5+Pa3Q5 kzxg== X-Gm-Message-State: AOAM53399v1k3696404I9GC73o52geEl9fuxqAW8l1HhTecu4LjMxo/C e7HJ3x8O8WukAWDhEtNKhmqObw== X-Google-Smtp-Source: ABdhPJwkZHwcScZ8aP7mPsmEg+SZU9okw0hIx5XUHm2rxDDdGR45M3k1bXfhwHT68ilfe7CIHUhXOA== X-Received: by 2002:a05:620a:24c9:: with SMTP id m9mr14138230qkn.66.1624667895721; Fri, 25 Jun 2021 17:38:15 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id c8sm4871516qtn.67.2021.06.25.17.38.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jun 2021 17:38:14 -0700 (PDT) Date: Fri, 25 Jun 2021 17:38:01 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.anvils To: Greg Kroah-Hartman cc: Andrew Morton , Hugh Dickins , "Kirill A. Shutemov" , Yang Shi , Wang Yugui , Xu Yu , Jue Wang , Matthew Wilcox , Sasha Levin , Alex Shi , Miaohe Lin , Michal Hocko , stable@vger.kernel.org Subject: Re: mm/thp commits: please wait a few days In-Reply-To: Message-ID: <6b253bc4-2562-d1bb-18f2-517cfad5d5e7@google.com> References: <88937026-b998-8d9b-7a23-ff24576491f4@google.com> <20210623134642.2927395a89b1d07bab620a20@linux-foundation.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-2110569515-1624667894=:24517" Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --0-2110569515-1624667894=:24517 Content-Type: text/plain; charset=US-ASCII On Wed, 23 Jun 2021, Hugh Dickins wrote: > On Wed, 23 Jun 2021, Andrew Morton wrote: > > On Wed, 23 Jun 2021 09:44:14 -0700 (PDT) Hugh Dickins wrote: > > > > > > Any word on this? > > > > > > I have a "matrix" of what's needed ready, but I'm still waiting on > > > "I expect some more to follow in a few days time (thanks Andrew)": > > > I believe akpm does still intend to send them in to Linus for 5.13 > > > this week, but they've not gone yet. > > > > Linuswards tomorrow. Is that OK? > > That's great, thanks Andrew. Then when they appear in Linus's tree, > I'll complete my notes and tarball, and mail GregKH in reply here. All in now, thanks: so attached is a tarball of the variants, and here the finalized summary of what each stable needs. 5.12.13 5.10.46 5.4.128 4.19.195 4.14.237 4.9.273 4.14/0001 << chpick 5.10/0001 << chpick << chpick << chpick << chpick 5.10/0002 << chpick << chpick << chpick 5.10/0003 << chpick << chpick << chpick ffc90cbb2970 << chpick << chpick 99fa8a48203d 5.10/0005 << chpick << chpick 3b77e8c8cde5 << chpick << chpick << chpick 732ed55823fc << chpick 5.04/0007 << chpick << chpick 494334e43c16 << chpick 5.04/0008 4.19/0007 << chpick 31657170deaf << chpick << chpick << chpick << chpick 22061a1ffabd 5.10/0010 5.04/0010 << chpick 504e070dc08f 5.10/0011 5.04/0011 4.19/0010 4.14/0008 4.09/0003 f003c03^..a7a69d8 chpick << chpick << chpick << chpick fe19bd3dae3d << chpick 5.04/0022 << chpick << chpick 4.09/0004 19 recent THP-related upstream commits for 5.13: ffc90cbb2970 mm, thp: use head page in __migration_entry_wait() 99fa8a48203d mm/thp: fix __split_huge_pmd_locked() on shmem migration entry 3b77e8c8cde5 mm/thp: make is_huge_zero_pmd() safe and quicker 732ed55823fc mm/thp: try_to_unmap() use TTU_SYNC for safe splitting 494334e43c16 mm/thp: fix vma_address() if virtual address below file offset 31657170deaf mm/thp: fix page_address_in_vma() on file THP tails 22061a1ffabd mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page() 504e070dc08f mm: thp: replace DEBUG_VM BUG with VM_WARN when unmap fails for split f003c03bd29e mm: page_vma_mapped_walk(): use page for pvmw->page 6d0fd5987657 mm: page_vma_mapped_walk(): settle PageHuge on entry 3306d3119cea mm: page_vma_mapped_walk(): use pmde for *pvmw->pmd e2e1d4076c77 mm: page_vma_mapped_walk(): prettify PVMW_MIGRATION block 448282487483 mm: page_vma_mapped_walk(): crossing page table boundary b3807a91aca7 mm: page_vma_mapped_walk(): add a level of indentation 474466301dfd mm: page_vma_mapped_walk(): use goto instead of while (1) a765c417d876 mm: page_vma_mapped_walk(): get vma_address_end() earlier a9a7504d9bea mm/thp: fix page_vma_mapped_walk() if THP mapped by ptes a7a69d8ba88d mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk() fe19bd3dae3d mm, futex: fix shared futex pgoff on shmem huge page Antecedents which get added into some older kernels: 4.14/0001 91241681c62a include/linux/mmdebug.h: make VM_WARN* non-rvals 5.10/0001 a4055888629b (part) mm: add VM_WARN_ON_ONCE_PAGE() macro 5.10/0002 e0af87ff7afc mm/rmap: remove unneeded semicolon in page_not_mapped() 5.10/0003 b7e188ec98b1 mm/rmap: use page_not_mapped in try_to_unmap() Nothing special for 5.12.13: all 19 can be cherry-picked cleanly. Antecedents and fixedups for 5.10.46 and older: 5.10/0001-mm-add-VM_WARN_ON_ONCE_PAGE-macro.patch 5.10/0002-mm-rmap-remove-unneeded-semicolon-in-page_not_mapped.patch 5.10/0003-mm-rmap-use-page_not_mapped-in-try_to_unmap.patch 5.10/0005-mm-thp-fix-__split_huge_pmd_locked-on-shmem-migratio.patch 5.10/0010-mm-thp-unmap_mapping_page-to-fix-THP-truncate_cleanu.patch 5.10/0011-mm-thp-replace-DEBUG_VM-BUG-with-VM_WARN-when-unmap-.patch Fixedups for 5.4.128 and older: 5.04/0007-mm-thp-try_to_unmap-use-TTU_SYNC-for-safe-splitting.patch 5.04/0008-mm-thp-fix-vma_address-if-virtual-address-below-file.patch 5.04/0010-mm-thp-unmap_mapping_page-to-fix-THP-truncate_cleanu.patch 5.04/0011-mm-thp-replace-DEBUG_VM-BUG-with-VM_WARN-when-unmap-.patch 5.04/0022-mm-futex-fix-shared-futex-pgoff-on-shmem-huge-page.patch Fixedups for 4.19.195 and older: 4.19/0007-mm-thp-fix-vma_address-if-virtual-address-below-file.patch 4.19/0010-mm-thp-replace-DEBUG_VM-BUG-with-VM_WARN-when-unmap-.patch (Why does matrix say not to port ffc90cbb2970 "use head page" to 4.19 and older? It is correct, and would apply to them: but they do not have put_and_wait_on_page_locked(), so it may behave worse on them.) Antecedent and fixedup for 4.14.237 and older: 4.14/0001-include-linux-mmdebug.h-make-VM_WARN-non-rvals.patch 4.14/0008-mm-thp-replace-DEBUG_VM-BUG-with-VM_WARN-when-unmap-.patch Fixedups for 4.9.273: 4.09/0003-mm-thp-replace-DEBUG_VM-BUG-with-VM_WARN-when-unmap-.patch 4.09/0004-mm-futex-fix-shared-futex-pgoff-on-shmem-huge-page.patch No backports to 4.4.273: it's too old and different for these. Thanks! Hugh --0-2110569515-1624667894=:24517 Content-Type: application/x-tar; name=mm-thp-stable-variants.tar Content-Transfer-Encoding: BASE64 Content-ID: <95d0b4a5-82f-a73a-ac1b-f15ee0a6c95@google.com> Content-Description: Content-Disposition: attachment; filename=mm-thp-stable-variants.tar Li9QYXhIZWFkZXJzLjI0NTEzL1JFQURNRQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAwMTMy ADE0MDY1NDcwMzIwADAxMTYyNwAgeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAzMCBtdGltZT0xNjI0NjY2MzIwLjk3MTAzMTIy OAozMCBhdGltZT0xNjI0NjY2MzIwLjk3MTAzMTIyOAozMCBjdGltZT0xNjI0 NjY2MzIwLjk3MTAzMTIyOAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFJFQURNRQAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw MDAwNjQ0ADAwMDE3NTAAMDAwMDE0NAAwMDAwMDAxMDQxMAAxNDA2NTQ3MDMy MAAwMTIxMDUAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDBodWdoAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAHVzZXJzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAMDAwMDAwMAAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAANS4xMi4xMyAgICAgICAgIDUuMTAuNDYgICAgICA1LjQuMTI4ICAg ICAgNC4xOS4xOTUgICAgIDQuMTQuMjM3ICAgICA0LjkuMjczCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA0LjE0LzAwMDEgICAgPDwgY2hwaWNrCiAgICAgICAgICAgICAgICA1LjEw LzAwMDEgICAgPDwgY2hwaWNrICAgIDw8IGNocGljayAgICA8PCBjaHBpY2sg ICAgPDwgY2hwaWNrCiAgICAgICAgICAgICAgICA1LjEwLzAwMDIgICAgPDwg Y2hwaWNrICAgIDw8IGNocGljayAgICA8PCBjaHBpY2sKICAgICAgICAgICAg ICAgIDUuMTAvMDAwMyAgICA8PCBjaHBpY2sgICAgPDwgY2hwaWNrICAgIDw8 IGNocGljawpmZmM5MGNiYjI5NzAgICAgPDwgY2hwaWNrICAgIDw8IGNocGlj awo5OWZhOGE0ODIwM2QgICAgNS4xMC8wMDA1ICAgIDw8IGNocGljayAgICA8 PCBjaHBpY2sKM2I3N2U4YzhjZGU1ICAgIDw8IGNocGljayAgICA8PCBjaHBp Y2sgICAgPDwgY2hwaWNrCjczMmVkNTU4MjNmYyAgICA8PCBjaHBpY2sgICAg NS4wNC8wMDA3ICAgIDw8IGNocGljayAgICA8PCBjaHBpY2sKNDk0MzM0ZTQz YzE2ICAgIDw8IGNocGljayAgICA1LjA0LzAwMDggICAgNC4xOS8wMDA3ICAg IDw8IGNocGljawozMTY1NzE3MGRlYWYgICAgPDwgY2hwaWNrICAgIDw8IGNo cGljayAgICA8PCBjaHBpY2sgICAgPDwgY2hwaWNrCjIyMDYxYTFmZmFiZCAg ICA1LjEwLzAwMTAgICAgNS4wNC8wMDEwICAgIDw8IGNocGljawo1MDRlMDcw ZGMwOGYgICAgNS4xMC8wMDExICAgIDUuMDQvMDAxMSAgICA0LjE5LzAwMTAg ICAgNC4xNC8wMDA4ICAgNC4wOS8wMDAzCmYwMDNjMDNeLi5hN2E2OWQ4ICBj aHBpY2sgICAgPDwgY2hwaWNrICAgIDw8IGNocGljayAgICA8PCBjaHBpY2sK ZmUxOWJkM2RhZTNkICAgIDw8IGNocGljayAgICA1LjA0LzAwMjIgICAgPDwg Y2hwaWNrICAgIDw8IGNocGljayAgIDQuMDkvMDAwNAoKMTkgcmVjZW50IFRI UC1yZWxhdGVkIHVwc3RyZWFtIGNvbW1pdHMgZm9yIDUuMTM6CmZmYzkwY2Ji Mjk3MCBtbSwgdGhwOiB1c2UgaGVhZCBwYWdlIGluIF9fbWlncmF0aW9uX2Vu dHJ5X3dhaXQoKQo5OWZhOGE0ODIwM2QgbW0vdGhwOiBmaXggX19zcGxpdF9o dWdlX3BtZF9sb2NrZWQoKSBvbiBzaG1lbSBtaWdyYXRpb24gZW50cnkKM2I3 N2U4YzhjZGU1IG1tL3RocDogbWFrZSBpc19odWdlX3plcm9fcG1kKCkgc2Fm ZSBhbmQgcXVpY2tlcgo3MzJlZDU1ODIzZmMgbW0vdGhwOiB0cnlfdG9fdW5t YXAoKSB1c2UgVFRVX1NZTkMgZm9yIHNhZmUgc3BsaXR0aW5nCjQ5NDMzNGU0 M2MxNiBtbS90aHA6IGZpeCB2bWFfYWRkcmVzcygpIGlmIHZpcnR1YWwgYWRk cmVzcyBiZWxvdyBmaWxlIG9mZnNldAozMTY1NzE3MGRlYWYgbW0vdGhwOiBm aXggcGFnZV9hZGRyZXNzX2luX3ZtYSgpIG9uIGZpbGUgVEhQIHRhaWxzCjIy MDYxYTFmZmFiZCBtbS90aHA6IHVubWFwX21hcHBpbmdfcGFnZSgpIHRvIGZp eCBUSFAgdHJ1bmNhdGVfY2xlYW51cF9wYWdlKCkKNTA0ZTA3MGRjMDhmIG1t OiB0aHA6IHJlcGxhY2UgREVCVUdfVk0gQlVHIHdpdGggVk1fV0FSTiB3aGVu IHVubWFwIGZhaWxzIGZvciBzcGxpdApmMDAzYzAzYmQyOWUgbW06IHBhZ2Vf dm1hX21hcHBlZF93YWxrKCk6IHVzZSBwYWdlIGZvciBwdm13LT5wYWdlCjZk MGZkNTk4NzY1NyBtbTogcGFnZV92bWFfbWFwcGVkX3dhbGsoKTogc2V0dGxl IFBhZ2VIdWdlIG9uIGVudHJ5CjMzMDZkMzExOWNlYSBtbTogcGFnZV92bWFf bWFwcGVkX3dhbGsoKTogdXNlIHBtZGUgZm9yICpwdm13LT5wbWQKZTJlMWQ0 MDc2Yzc3IG1tOiBwYWdlX3ZtYV9tYXBwZWRfd2FsaygpOiBwcmV0dGlmeSBQ Vk1XX01JR1JBVElPTiBibG9jawo0NDgyODI0ODc0ODMgbW06IHBhZ2Vfdm1h X21hcHBlZF93YWxrKCk6IGNyb3NzaW5nIHBhZ2UgdGFibGUgYm91bmRhcnkK YjM4MDdhOTFhY2E3IG1tOiBwYWdlX3ZtYV9tYXBwZWRfd2FsaygpOiBhZGQg YSBsZXZlbCBvZiBpbmRlbnRhdGlvbgo0NzQ0NjYzMDFkZmQgbW06IHBhZ2Vf dm1hX21hcHBlZF93YWxrKCk6IHVzZSBnb3RvIGluc3RlYWQgb2Ygd2hpbGUg KDEpCmE3NjVjNDE3ZDg3NiBtbTogcGFnZV92bWFfbWFwcGVkX3dhbGsoKTog Z2V0IHZtYV9hZGRyZXNzX2VuZCgpIGVhcmxpZXIKYTlhNzUwNGQ5YmVhIG1t L3RocDogZml4IHBhZ2Vfdm1hX21hcHBlZF93YWxrKCkgaWYgVEhQIG1hcHBl ZCBieSBwdGVzCmE3YTY5ZDhiYTg4ZCBtbS90aHA6IGFub3RoZXIgUFZNV19T WU5DIGZpeCBpbiBwYWdlX3ZtYV9tYXBwZWRfd2FsaygpCmZlMTliZDNkYWUz ZCBtbSwgZnV0ZXg6IGZpeCBzaGFyZWQgZnV0ZXggcGdvZmYgb24gc2htZW0g aHVnZSBwYWdlCgpBbnRlY2VkZW50cyB3aGljaCBnZXQgYWRkZWQgaW50byBz b21lIG9sZGVyIGtlcm5lbHM6CjQuMTQvMDAwMSA5MTI0MTY4MWM2MmEgaW5j bHVkZS9saW51eC9tbWRlYnVnLmg6IG1ha2UgVk1fV0FSTiogbm9uLXJ2YWxz CjUuMTAvMDAwMSBhNDA1NTg4ODYyOWIgKHBhcnQpIG1tOiBhZGQgVk1fV0FS Tl9PTl9PTkNFX1BBR0UoKSBtYWNybwo1LjEwLzAwMDIgZTBhZjg3ZmY3YWZj IG1tL3JtYXA6IHJlbW92ZSB1bm5lZWRlZCBzZW1pY29sb24gaW4gcGFnZV9u b3RfbWFwcGVkKCkKNS4xMC8wMDAzIGI3ZTE4OGVjOThiMSBtbS9ybWFwOiB1 c2UgcGFnZV9ub3RfbWFwcGVkIGluIHRyeV90b191bm1hcCgpCgpOb3RoaW5n IHNwZWNpYWwgZm9yIDUuMTIuMTM6IGFsbCAxOSBjYW4gYmUgY2hlcnJ5LXBp Y2tlZCBjbGVhbmx5LgoKQW50ZWNlZGVudHMgYW5kIGZpeGVkdXBzIGZvciA1 LjEwLjQ2IGFuZCBvbGRlcjoKNS4xMC8wMDAxLW1tLWFkZC1WTV9XQVJOX09O X09OQ0VfUEFHRS1tYWNyby5wYXRjaAo1LjEwLzAwMDItbW0tcm1hcC1yZW1v dmUtdW5uZWVkZWQtc2VtaWNvbG9uLWluLXBhZ2Vfbm90X21hcHBlZC5wYXRj aAo1LjEwLzAwMDMtbW0tcm1hcC11c2UtcGFnZV9ub3RfbWFwcGVkLWluLXRy eV90b191bm1hcC5wYXRjaAo1LjEwLzAwMDUtbW0tdGhwLWZpeC1fX3NwbGl0 X2h1Z2VfcG1kX2xvY2tlZC1vbi1zaG1lbS1taWdyYXRpby5wYXRjaAo1LjEw LzAwMTAtbW0tdGhwLXVubWFwX21hcHBpbmdfcGFnZS10by1maXgtVEhQLXRy dW5jYXRlX2NsZWFudS5wYXRjaAo1LjEwLzAwMTEtbW0tdGhwLXJlcGxhY2Ut REVCVUdfVk0tQlVHLXdpdGgtVk1fV0FSTi13aGVuLXVubWFwLS5wYXRjaAoK Rml4ZWR1cHMgZm9yIDUuNC4xMjggYW5kIG9sZGVyOgo1LjA0LzAwMDctbW0t dGhwLXRyeV90b191bm1hcC11c2UtVFRVX1NZTkMtZm9yLXNhZmUtc3BsaXR0 aW5nLnBhdGNoCjUuMDQvMDAwOC1tbS10aHAtZml4LXZtYV9hZGRyZXNzLWlm LXZpcnR1YWwtYWRkcmVzcy1iZWxvdy1maWxlLnBhdGNoCjUuMDQvMDAxMC1t bS10aHAtdW5tYXBfbWFwcGluZ19wYWdlLXRvLWZpeC1USFAtdHJ1bmNhdGVf Y2xlYW51LnBhdGNoCjUuMDQvMDAxMS1tbS10aHAtcmVwbGFjZS1ERUJVR19W TS1CVUctd2l0aC1WTV9XQVJOLXdoZW4tdW5tYXAtLnBhdGNoCjUuMDQvMDAy Mi1tbS1mdXRleC1maXgtc2hhcmVkLWZ1dGV4LXBnb2ZmLW9uLXNobWVtLWh1 Z2UtcGFnZS5wYXRjaAoKRml4ZWR1cHMgZm9yIDQuMTkuMTk1IGFuZCBvbGRl cjoKNC4xOS8wMDA3LW1tLXRocC1maXgtdm1hX2FkZHJlc3MtaWYtdmlydHVh bC1hZGRyZXNzLWJlbG93LWZpbGUucGF0Y2gKNC4xOS8wMDEwLW1tLXRocC1y ZXBsYWNlLURFQlVHX1ZNLUJVRy13aXRoLVZNX1dBUk4td2hlbi11bm1hcC0u cGF0Y2gKCihXaHkgZG9lcyBtYXRyaXggc2F5IG5vdCB0byBwb3J0IGZmYzkw Y2JiMjk3MCAidXNlIGhlYWQgcGFnZSIgdG8gNC4xOQphbmQgb2xkZXI/ICBJ dCBpcyBjb3JyZWN0LCBhbmQgd291bGQgYXBwbHkgdG8gdGhlbTogYnV0IHRo ZXkgZG8gbm90CmhhdmUgcHV0X2FuZF93YWl0X29uX3BhZ2VfbG9ja2VkKCks IHNvIGl0IG1heSBiZWhhdmUgd29yc2Ugb24gdGhlbS4pCgpBbnRlY2VkZW50 IGFuZCBmaXhlZHVwIGZvciA0LjE0LjIzNyBhbmQgb2xkZXI6CjQuMTQvMDAw MS1pbmNsdWRlLWxpbnV4LW1tZGVidWcuaC1tYWtlLVZNX1dBUk4tbm9uLXJ2 YWxzLnBhdGNoCjQuMTQvMDAwOC1tbS10aHAtcmVwbGFjZS1ERUJVR19WTS1C VUctd2l0aC1WTV9XQVJOLXdoZW4tdW5tYXAtLnBhdGNoCgpGaXhlZHVwcyBm b3IgNC45LjI3MzoKNC4wOS8wMDAzLW1tLXRocC1yZXBsYWNlLURFQlVHX1ZN LUJVRy13aXRoLVZNX1dBUk4td2hlbi11bm1hcC0ucGF0Y2gKNC4wOS8wMDA0 LW1tLWZ1dGV4LWZpeC1zaGFyZWQtZnV0ZXgtcGdvZmYtb24tc2htZW0taHVn ZS1wYWdlLnBhdGNoCgpObyBiYWNrcG9ydHMgdG8gNC40LjI3MzogaXQncyB0 b28gb2xkIGFuZCBkaWZmZXJlbnQgZm9yIHRoZXNlLgoKVGhhbmtzIQpIdWdo CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANS4xMC9QYXhIZWFkZXJzLjI0NTEz LzAwMDEtbW0tYWRkLVZNX1dBUk5fT05fT05DRV9QQUdFLW1hY3JvLnBhdGNo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAw MDAwMAAwMDAwMDAwADAwMDAwMDAwMDc0ADE0MDYzNDY2NjA2ADAyMDIxNAAg eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB1c3RhcgAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMCBh dGltZT0xNjI0NjY1Njg5LjgwNzE5MDk3MwozMCBjdGltZT0xNjI0MjUyNTA5 LjU0NDEzNTAzNgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADUuMTAvMDAwMS1tbS1hZGQtVk1fV0FSTl9PTl9PTkNF X1BBR0UtbWFjcm8ucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQwADAwMDE3NTAAMDAwMDE0 NAAwMDAwMDAwNDQ0MQAxNDA2MzQ2NjYwNgAwMjA2MjUAIDAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA dXN0YXIAMDBodWdoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzZXJz AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMAAwMDAwMDAwAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARnJvbSBkOWE4OTFiMWFk MzM2N2M4NjcxN2YzOGU0MTZjMzJiNWZkYTk5NmQ0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBBbGV4IFNoaSA8YWxleC5zaGlAbGludXguYWxp YmFiYS5jb20+CkRhdGU6IEZyaSwgMTggRGVjIDIwMjAgMTQ6MDE6MzEgLTA4 MDAKU3ViamVjdDogW1BBVENIIDAxLzIyXSBtbTogYWRkIFZNX1dBUk5fT05f T05DRV9QQUdFKCkgbWFjcm8KClsgVXBzdHJlYW0gY29tbWl0IGE0MDU1ODg4 NjI5YmMwNDY3ZDEyZDkxMmNkN2M5MGFjZGYzZDliMTIgcGFydCBdCgpBZGQg Vk1fV0FSTl9PTl9PTkNFX1BBR0UoKSBtYWNyby4KCkxpbms6IGh0dHBzOi8v bGttbC5rZXJuZWwub3JnL3IvMTYwNDI4MzQzNi0xODg4MC0zLWdpdC1zZW5k LWVtYWlsLWFsZXguc2hpQGxpbnV4LmFsaWJhYmEuY29tClNpZ25lZC1vZmYt Ynk6IEFsZXggU2hpIDxhbGV4LnNoaUBsaW51eC5hbGliYWJhLmNvbT4KQWNr ZWQtYnk6IE1pY2hhbCBIb2NrbyA8bWhvY2tvQHN1c2UuY29tPgpBY2tlZC1i eTogSHVnaCBEaWNraW5zIDxodWdoZEBnb29nbGUuY29tPgpBY2tlZC1ieTog Sm9oYW5uZXMgV2VpbmVyIDxoYW5uZXNAY21weGNoZy5vcmc+CkNjOiBWbGFk aW1pciBEYXZ5ZG92IDx2ZGF2eWRvdi5kZXZAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24u b3JnPgpTaWduZWQtb2ZmLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNA bGludXgtZm91bmRhdGlvbi5vcmc+CgpOb3RlIG9uIHN0YWJsZSBiYWNrcG9y dDogb3JpZ2luYWwgY29tbWl0IHdhcyB0aXRsZWQKbW0vbWVtY2c6IHdhcm5p bmcgb24gIW1lbWNnIGFmdGVyIHJlYWRhaGVhZCBwYWdlIGNoYXJnZWQKd2hp Y2ggaW5jbHVkZWQgdXNlcyBvZiB0aGlzIG1hY3JvIGluIG1tL21lbWNvbnRy b2wuYzogaGVyZSBvbWl0dGVkLgoKU2lnbmVkLW9mZi1ieTogSHVnaCBEaWNr aW5zIDxodWdoZEBnb29nbGUuY29tPgotLS0KIGluY2x1ZGUvbGludXgvbW1k ZWJ1Zy5oIHwgMTMgKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEz IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21t ZGVidWcuaCBiL2luY2x1ZGUvbGludXgvbW1kZWJ1Zy5oCmluZGV4IDJhZDcy ZDJjOGNjNS4uNWQwNzY3Y2I0MjRhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xp bnV4L21tZGVidWcuaAorKysgYi9pbmNsdWRlL2xpbnV4L21tZGVidWcuaApA QCAtMzcsNiArMzcsMTggQEAgdm9pZCBkdW1wX21tKGNvbnN0IHN0cnVjdCBt bV9zdHJ1Y3QgKm1tKTsKIAkJCUJVRygpOwkJCQkJCVwKIAkJfQkJCQkJCQlc CiAJfSB3aGlsZSAoMCkKKyNkZWZpbmUgVk1fV0FSTl9PTl9PTkNFX1BBR0Uo Y29uZCwgcGFnZSkJKHsJCQlcCisJc3RhdGljIGJvb2wgX19zZWN0aW9uKCIu ZGF0YS5vbmNlIikgX193YXJuZWQ7CQkJXAorCWludCBfX3JldF93YXJuX29u Y2UgPSAhIShjb25kKTsJCQkJCVwKKwkJCQkJCQkJCVwKKwlpZiAodW5saWtl bHkoX19yZXRfd2Fybl9vbmNlICYmICFfX3dhcm5lZCkpIHsJCQlcCisJCWR1 bXBfcGFnZShwYWdlLCAiVk1fV0FSTl9PTl9PTkNFX1BBR0UoIiBfX3N0cmlu Z2lmeShjb25kKSIpIik7XAorCQlfX3dhcm5lZCA9IHRydWU7CQkJCQlcCisJ CVdBUk5fT04oMSk7CQkJCQkJXAorCX0JCQkJCQkJCVwKKwl1bmxpa2VseShf X3JldF93YXJuX29uY2UpOwkJCQkJXAorfSkKKwogI2RlZmluZSBWTV9XQVJO X09OKGNvbmQpICh2b2lkKVdBUk5fT04oY29uZCkKICNkZWZpbmUgVk1fV0FS Tl9PTl9PTkNFKGNvbmQpICh2b2lkKVdBUk5fT05fT05DRShjb25kKQogI2Rl ZmluZSBWTV9XQVJOX09OQ0UoY29uZCwgZm9ybWF0Li4uKSAodm9pZClXQVJO X09OQ0UoY29uZCwgZm9ybWF0KQpAQCAtNDgsNiArNjAsNyBAQCB2b2lkIGR1 bXBfbW0oY29uc3Qgc3RydWN0IG1tX3N0cnVjdCAqbW0pOwogI2RlZmluZSBW TV9CVUdfT05fTU0oY29uZCwgbW0pIFZNX0JVR19PTihjb25kKQogI2RlZmlu ZSBWTV9XQVJOX09OKGNvbmQpIEJVSUxEX0JVR19PTl9JTlZBTElEKGNvbmQp CiAjZGVmaW5lIFZNX1dBUk5fT05fT05DRShjb25kKSBCVUlMRF9CVUdfT05f SU5WQUxJRChjb25kKQorI2RlZmluZSBWTV9XQVJOX09OX09OQ0VfUEFHRShj b25kLCBwYWdlKSAgQlVJTERfQlVHX09OX0lOVkFMSUQoY29uZCkKICNkZWZp bmUgVk1fV0FSTl9PTkNFKGNvbmQsIGZvcm1hdC4uLikgQlVJTERfQlVHX09O X0lOVkFMSUQoY29uZCkKICNkZWZpbmUgVk1fV0FSTihjb25kLCBmb3JtYXQu Li4pIEJVSUxEX0JVR19PTl9JTlZBTElEKGNvbmQpCiAjZW5kaWYKLS0gCjIu MzIuMC4yODguZzYyYThkMjI0ZTYtZ29vZwoKAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUuMTAvUGF4SGVhZGVycy4yNDUx My8wMDAyLW1tLXJtYXAtcmVtb3ZlLXVubmVlZGVkLXNlbWljb2xvbi1pbi1w YWdlX25vdF9tYXBwZWQucGF0Y2gAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAw MDAwMDAAMDAwMDAwMAAwMDAwMDAwMDA3NAAxNDA2MzQ2NjYwNgAwMjQ3NTQA IHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAdXN0YXIAMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzAg YXRpbWU9MTYyNDY2NjI4Mi44OTA3OTk1NTEKMzAgY3RpbWU9MTYyNDI1MjUw OS41NDQxMzUwMzYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAA1LjEwLzAwMDItbW0tcm1hcC1yZW1vdmUtdW5uZWVk ZWQtc2VtaWNvbG9uLWluLXBhZ2Vfbm90X21hcHBlZC5wYXRjaAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0MAAwMDAxNzUwADAwMDAx NDQAMDAwMDAwMDIwMDIAMTQwNjM0NjY2MDYAMDI1MzU0ACAwAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHVzdGFyADAwaHVnaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c2Vy cwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAAMDAwMDAwMAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZyb20gMDVmNWMyOGFk ZjZhMDNhMzc1ZTUzNjFlODNhZTdkODRlOTViMTU5YyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogTWlhb2hlIExpbiA8bGlubWlhb2hlQGh1YXdl aS5jb20+CkRhdGU6IFRodSwgMjUgRmViIDIwMjEgMTc6MTc6NTYgLTA4MDAK U3ViamVjdDogW1BBVENIIDAyLzIyXSBtbS9ybWFwOiByZW1vdmUgdW5uZWVk ZWQgc2VtaWNvbG9uIGluIHBhZ2Vfbm90X21hcHBlZCgpCgpbIFVwc3RyZWFt IGNvbW1pdCBlMGFmODdmZjdhZmNkZTI2NjBiZTQ0MzAyODM2ZDJkNTYxODE4 NWFmIF0KClJlbW92ZSBleHRyYSBzZW1pY29sb24gd2l0aG91dCBhbnkgZnVu Y3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuCgpMaW5rOiBodHRwczovL2xrbWwu a2VybmVsLm9yZy9yLzIwMjEwMTI3MDkzNDI1LjM5NjQwLTEtbGlubWlhb2hl QGh1YXdlaS5jb20KU2lnbmVkLW9mZi1ieTogTWlhb2hlIExpbiA8bGlubWlh b2hlQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJldyBNb3J0b24g PGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IExp bnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4K LS0tCiBtbS9ybWFwLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9tbS9ybWFw LmMgYi9tbS9ybWFwLmMKaW5kZXggNjY1NzAwMGIxOGQ0Li41ODU4NjM5NDQz YjQgMTAwNjQ0Ci0tLSBhL21tL3JtYXAuYworKysgYi9tbS9ybWFwLmMKQEAg LTE3NjMsNyArMTc2Myw3IEBAIGJvb2wgdHJ5X3RvX3VubWFwKHN0cnVjdCBw YWdlICpwYWdlLCBlbnVtIHR0dV9mbGFncyBmbGFncykKIHN0YXRpYyBpbnQg cGFnZV9ub3RfbWFwcGVkKHN0cnVjdCBwYWdlICpwYWdlKQogewogCXJldHVy biAhcGFnZV9tYXBwZWQocGFnZSk7Ci19OworfQogCiAvKioKICAqIHRyeV90 b19tdW5sb2NrIC0gdHJ5IHRvIG11bmxvY2sgYSBwYWdlCi0tIAoyLjMyLjAu Mjg4Lmc2MmE4ZDIyNGU2LWdvb2cKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUuMTAvUGF4 SGVhZGVycy4yNDUxMy8wMDAzLW1tLXJtYXAtdXNlLXBhZ2Vfbm90X21hcHBl ZC1pbi10cnlfdG9fdW5tYXAucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDA3NAAxNDA2MzQ2 NjYwNgAwMjMyMTcAIHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAMzAgYXRpbWU9MTYyNDY2NjI4Mi44OTA3OTk1NTEKMzAgY3Rp bWU9MTYyNDI1MjUwOS41NDQxMzUwMzYKAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1LjEwLzAwMDMtbW0tcm1hcC11 c2UtcGFnZV9ub3RfbWFwcGVkLWluLXRyeV90b191bm1hcC5wYXRjaAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0MAAw MDAxNzUwADAwMDAxNDQAMDAwMDAwMDM3NjUAMTQwNjM0NjY2MDYAMDIzNjQw ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHVzdGFyADAwaHVnaAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAB1c2VycwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAw MDAAMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZy b20gODQxZDQ2ODYxNzY3ZjYwZTdkYThlNTA1YzZhNzQ5MDcyZTgzNmY5YSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWlhb2hlIExpbiA8bGlu bWlhb2hlQGh1YXdlaS5jb20+CkRhdGU6IFRodSwgMjUgRmViIDIwMjEgMTc6 MTg6MDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDAzLzIyXSBtbS9ybWFwOiB1 c2UgcGFnZV9ub3RfbWFwcGVkIGluIHRyeV90b191bm1hcCgpCgpbIFVwc3Ry ZWFtIGNvbW1pdCBiN2UxODhlYzk4YjE2NDRmZjcwYTZkMzYyNGVhMTZhYWRj MzlmNWUwIF0KCnBhZ2VfbWFwY291bnRfaXNfemVybygpIGNhbGN1bGF0ZXMg YWNjdXJhdGVseSBob3cgbWFueSBtYXBwaW5ncyBhIGh1Z2VwYWdlCmhhcyBp biBvcmRlciB0byBjaGVjayBhZ2FpbnN0IDAgb25seS4gIFRoaXMgaXMgYSB3 YXN0ZSBvZiBjcHUgdGltZS4gIFdlCmNhbiBkbyB0aGlzIHZpYSBwYWdlX25v dF9tYXBwZWQoKSB0byBzYXZlIHNvbWUgcG9zc2libGUgYXRvbWljX3JlYWQK Y3ljbGVzLiAgUmVtb3ZlIHRoZSBmdW5jdGlvbiBwYWdlX21hcGNvdW50X2lz X3plcm8oKSBhcyBpdCdzIG5vdCB1c2VkCmFueW1vcmUgYW5kIG1vdmUgcGFn ZV9ub3RfbWFwcGVkKCkgYWJvdmUgdHJ5X3RvX3VubWFwKCkgdG8gYXZvaWQK aWRlbnRpZmllciB1bmRlY2xhcmVkIGNvbXBpbGF0aW9uIGVycm9yLgoKTGlu azogaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci8yMDIxMDEzMDA4NDkwNC4z NTMwNy0xLWxpbm1pYW9oZUBodWF3ZWkuY29tClNpZ25lZC1vZmYtYnk6IE1p YW9oZSBMaW4gPGxpbm1pYW9oZUBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5 OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpT aWduZWQtb2ZmLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgt Zm91bmRhdGlvbi5vcmc+Ci0tLQogbW0vcm1hcC5jIHwgMTEgKysrLS0tLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDggZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbW0vcm1hcC5jIGIvbW0vcm1hcC5jCmlu ZGV4IDU4NTg2Mzk0NDNiNC4uMzg1NzNjYjkzNTc4IDEwMDY0NAotLS0gYS9t bS9ybWFwLmMKKysrIGIvbW0vcm1hcC5jCkBAIC0xNzE2LDkgKzE3MTYsOSBA QCBzdGF0aWMgYm9vbCBpbnZhbGlkX21pZ3JhdGlvbl92bWEoc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsIHZvaWQgKmFyZykKIAlyZXR1cm4gdm1hX2lz X3RlbXBvcmFyeV9zdGFjayh2bWEpOwogfQogCi1zdGF0aWMgaW50IHBhZ2Vf bWFwY291bnRfaXNfemVybyhzdHJ1Y3QgcGFnZSAqcGFnZSkKK3N0YXRpYyBp bnQgcGFnZV9ub3RfbWFwcGVkKHN0cnVjdCBwYWdlICpwYWdlKQogewotCXJl dHVybiAhdG90YWxfbWFwY291bnQocGFnZSk7CisJcmV0dXJuICFwYWdlX21h cHBlZChwYWdlKTsKIH0KIAogLyoqCkBAIC0xNzM2LDcgKzE3MzYsNyBAQCBi b29sIHRyeV90b191bm1hcChzdHJ1Y3QgcGFnZSAqcGFnZSwgZW51bSB0dHVf ZmxhZ3MgZmxhZ3MpCiAJc3RydWN0IHJtYXBfd2Fsa19jb250cm9sIHJ3YyA9 IHsKIAkJLnJtYXBfb25lID0gdHJ5X3RvX3VubWFwX29uZSwKIAkJLmFyZyA9 ICh2b2lkICopZmxhZ3MsCi0JCS5kb25lID0gcGFnZV9tYXBjb3VudF9pc196 ZXJvLAorCQkuZG9uZSA9IHBhZ2Vfbm90X21hcHBlZCwKIAkJLmFub25fbG9j ayA9IHBhZ2VfbG9ja19hbm9uX3ZtYV9yZWFkLAogCX07CiAKQEAgLTE3NjAs MTEgKzE3NjAsNiBAQCBib29sIHRyeV90b191bm1hcChzdHJ1Y3QgcGFnZSAq cGFnZSwgZW51bSB0dHVfZmxhZ3MgZmxhZ3MpCiAJcmV0dXJuICFwYWdlX21h cGNvdW50KHBhZ2UpID8gdHJ1ZSA6IGZhbHNlOwogfQogCi1zdGF0aWMgaW50 IHBhZ2Vfbm90X21hcHBlZChzdHJ1Y3QgcGFnZSAqcGFnZSkKLXsKLQlyZXR1 cm4gIXBhZ2VfbWFwcGVkKHBhZ2UpOwotfQotCiAvKioKICAqIHRyeV90b19t dW5sb2NrIC0gdHJ5IHRvIG11bmxvY2sgYSBwYWdlCiAgKiBAcGFnZTogdGhl IHBhZ2UgdG8gYmUgbXVubG9ja2VkCi0tIAoyLjMyLjAuMjg4Lmc2MmE4ZDIy NGU2LWdvb2cKCgAAAAAAAAAAAAAANS4xMC9QYXhIZWFkZXJzLjI0NTEzLzAw MDUtbW0tdGhwLWZpeC1fX3NwbGl0X2h1Z2VfcG1kX2xvY2tlZC1vbi1zaG1l bS1taWdyYXRpby5wYXRjaAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAw MAAwMDAwMDAwADAwMDAwMDAwMDc0ADE0MDYzNDY2NjA2ADAyNDc1NwAgeAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAB1c3RhcgAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMCBhdGlt ZT0xNjI0NjY2MjgyLjg5MDc5OTU1MQozMCBjdGltZT0xNjI0MjUyNTA5LjU0 NDEzNTAzNgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADUuMTAvMDAwNS1tbS10aHAtZml4LV9fc3BsaXRfaHVnZV9w bWRfbG9ja2VkLW9uLXNobWVtLW1pZ3JhdGlvLnBhdGNoAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQwADAwMDE3NTAAMDAwMDE0NAAw MDAwMDAxMjQyNQAxNDA2MzQ2NjYwNgAwMjUzNzEAIDAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0 YXIAMDBodWdoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzZXJzAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMAAwMDAwMDAwAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARnJvbSA5MDhmN2Y1NTdmODgx NjEyNzI0YmJhMzEwMjQ1NjU4OTA5ODRjZDI0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBIdWdoIERpY2tpbnMgPGh1Z2hkQGdvb2dsZS5jb20+ CkRhdGU6IFR1ZSwgMTUgSnVuIDIwMjEgMTg6MjM6NDUgLTA3MDAKU3ViamVj dDogW1BBVENIIDA1LzIyXSBtbS90aHA6IGZpeCBfX3NwbGl0X2h1Z2VfcG1k X2xvY2tlZCgpIG9uIHNobWVtCiBtaWdyYXRpb24gZW50cnkKClsgVXBzdHJl YW0gY29tbWl0IDk5ZmE4YTQ4MjAzZDYyYjM3NDNkODY2ZmM0OGVmNmFiYWVl NjgyYmUgXQoKUGF0Y2ggc2VyaWVzICJtbS90aHA6IGZpeCBUSFAgc3BsaXR0 aW5nIHVubWFwIEJVR3MgYW5kIHJlbGF0ZWQiLCB2MTAuCgpIZXJlIGlzIHYy IGJhdGNoIG9mIGxvbmctc3RhbmRpbmcgVEhQIGJ1ZyBmaXhlcyB0aGF0IEkg aGFkIG5vdCBnb3QKYXJvdW5kIHRvIHNlbmRpbmcgYmVmb3JlLCBidXQgcHJv bXB0ZWQgbm93IGJ5IFdhbmcgWXVndWkncyByZXBvcnQKaHR0cHM6Ly9sb3Jl Lmtlcm5lbC5vcmcvbGludXgtbW0vMjAyMTA0MTIxODA2NTkuQjlFMy40MDk1 MDlGNEBlMTYtdGVjaC5jb20vCgpXYW5nIFl1Z3VpIGhhcyB0ZXN0ZWQgYSBy b2xsdXAgb2YgdGhlc2UgZml4ZXMgYXBwbGllZCB0byA1LjEwLjM5LCBhbmQK dGhleSBoYXZlIGRvbmUgbm8gaGFybSwgYnV0IGhhdmUgKm5vdCogZml4ZWQg dGhhdCBpc3N1ZTogc29tZXRoaW5nIG1vcmUKaXMgbmVlZGVkIGFuZCBJIGhh dmUgbm8gaWRlYSBvZiB3aGF0LgoKVGhpcyBwYXRjaCAob2YgNyk6CgpTdHJl c3NpbmcgaHVnZSB0bXBmcyBwYWdlIG1pZ3JhdGlvbiByYWNpbmcgaG9sZSBw dW5jaCBvZnRlbiBjcmFzaGVkIG9uCnRoZSBWTV9CVUdfT04oIXBtZF9wcmVz ZW50KSBpbiBwbWRwX2h1Z2VfY2xlYXJfZmx1c2goKSwgd2l0aCBERUJVR19W TT15Cmtlcm5lbDsgb3Igc2hvcnRseSBhZnRlcndhcmRzLCBvbiBhIGJhZCBk ZXJlZmVyZW5jZSBpbgpfX3NwbGl0X2h1Z2VfcG1kX2xvY2tlZCgpIHdoZW4g REVCVUdfVk09bi4gIFRoZXkgZm9yZ290IHRvIGFsbG93IGZvciBwbWQKbWln cmF0aW9uIGVudHJpZXMgaW4gdGhlIG5vbi1hbm9ueW1vdXMgY2FzZS4KCkZ1 bGwgZGlzY2xvc3VyZTogdGhvc2UgcGFydGljdWxhciBleHBlcmltZW50cyB3 ZXJlIG9uIGEga2VybmVsIHdpdGggbW9yZQpyZWxheGVkIG1tYXBfbG9jayBh bmQgaV9tbWFwX3J3c2VtIGxvY2tpbmcsIGFuZCB3ZXJlIG5vdCByZXBlYXRl ZCBvbiB0aGUKdmFuaWxsYSBrZXJuZWw6IGl0IGlzIGNvbmNlaXZhYmxlIHRo YXQgc3RyaWN0ZXIgbG9ja2luZyBoYXBwZW5zIHRvIGF2b2lkCnRob3NlIGNh c2VzLCBvciBtYWtlcyB0aGVtIGxlc3MgbGlrZWx5OyBidXQgX19zcGxpdF9o dWdlX3BtZF9sb2NrZWQoKQphbHJlYWR5IGFsbG93ZWQgZm9yIHBtZCBtaWdy YXRpb24gZW50cmllcyB3aGVuIGhhbmRsaW5nIGFub255bW91cyBUSFBzLApz byB0aGlzIGNvbW1pdCBicmluZ3MgdGhlIHNobWVtIGFuZCBmaWxlIFRIUCBo YW5kbGluZyBpbnRvIGxpbmUuCgpBbmQgd2hpbGUgdGhlcmU6IHVzZSBvbGRf cG1kIHJhdGhlciB0aGFuIF9wbWQsIGFzIGluIHRoZSBmb2xsb3dpbmcKYmxv Y2tzOyBhbmQgbWFrZSBpdCBjbGVhcmVyIHRvIHRoZSBleWUgdGhhdCB0aGUg IXZtYV9pc19hbm9ueW1vdXMoKQpibG9jayBpcyBzZWxmLWNvbnRhaW5lZCwg bWFraW5nIGFuIGVhcmx5IHJldHVybiBhZnRlciBhY2NvdW50aW5nIGZvcgp1 bm1hcHBpbmcuCgpMaW5rOiBodHRwczovL2xrbWwua2VybmVsLm9yZy9yL2Fm ODg2MTItMTQ3My0yZWFhLTkwMy04ZDFhNDQ4YjI2QGdvb2dsZS5jb20KTGlu azogaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci9kZDIyMWE5OS1lZmIzLWNk MWQtNjI1Ni03ZTY0NmFmMjkzMTRAZ29vZ2xlLmNvbQpGaXhlczogZTcxNzY5 YWU1MjYwICgibW06IGVuYWJsZSB0aHAgbWlncmF0aW9uIGZvciBzaG1lbSB0 aHAiKQpTaWduZWQtb2ZmLWJ5OiBIdWdoIERpY2tpbnMgPGh1Z2hkQGdvb2ds ZS5jb20+CkNjOiBLaXJpbGwgQS4gU2h1dGVtb3YgPGtpcmlsbC5zaHV0ZW1v dkBsaW51eC5pbnRlbC5jb20+CkNjOiBZYW5nIFNoaSA8c2h5ODI4MzAxQGdt YWlsLmNvbT4KQ2M6IFdhbmcgWXVndWkgPHdhbmd5dWd1aUBlMTYtdGVjaC5j b20+CkNjOiAiTWF0dGhldyBXaWxjb3ggKE9yYWNsZSkiIDx3aWxseUBpbmZy YWRlYWQub3JnPgpDYzogTmFveWEgSG9yaWd1Y2hpIDxuYW95YS5ob3JpZ3Vj aGlAbmVjLmNvbT4KQ2M6IEFsaXN0YWlyIFBvcHBsZSA8YXBvcHBsZUBudmlk aWEuY29tPgpDYzogUmFscGggQ2FtcGJlbGwgPHJjYW1wYmVsbEBudmlkaWEu Y29tPgpDYzogWmkgWWFuIDx6aXlAbnZpZGlhLmNvbT4KQ2M6IE1pYW9oZSBM aW4gPGxpbm1pYW9oZUBodWF3ZWkuY29tPgpDYzogTWluY2hhbiBLaW0gPG1p bmNoYW5Aa2VybmVsLm9yZz4KQ2M6IEp1ZSBXYW5nIDxqdWV3QGdvb2dsZS5j b20+CkNjOiBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+CkNjOiBKYW4g S2FyYSA8amFja0BzdXNlLmN6PgpDYzogU2hha2VlbCBCdXR0IDxzaGFrZWVs YkBnb29nbGUuY29tPgpDYzogT3NjYXIgU2FsdmFkb3IgPG9zYWx2YWRvckBz dXNlLmRlPgpDYzogPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5v cmc+ClNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0Bs aW51eC1mb3VuZGF0aW9uLm9yZz4KCk5vdGUgb24gc3RhYmxlIGJhY2twb3J0 OiB0aGlzIGNvbW1pdCBtYWRlIGludGVydmVuaW5nIGNsZWFudXBzIGluCnBt ZHBfaHVnZV9jbGVhcl9mbHVzaCgpIHJlZHVuZGFudDogaGVyZSBpdCdzIHJl ZGlmZmVkIHRvIHNraXAgdGhlbS4KClNpZ25lZC1vZmYtYnk6IEh1Z2ggRGlj a2lucyA8aHVnaGRAZ29vZ2xlLmNvbT4KLS0tCiBtbS9odWdlX21lbW9yeS5j ICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogbW0vcGd0 YWJsZS1nZW5lcmljLmMgfCAgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDIw IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L21tL2h1Z2VfbWVtb3J5LmMgYi9tbS9odWdlX21lbW9yeS5jCmluZGV4IGQ5 YWRlMjNhYzJiMi4uYmUwYWQ2Zjc5ODFlIDEwMDY0NAotLS0gYS9tbS9odWdl X21lbW9yeS5jCisrKyBiL21tL2h1Z2VfbWVtb3J5LmMKQEAgLTIwMzEsNyAr MjAzMSw3IEBAIHN0YXRpYyB2b2lkIF9fc3BsaXRfaHVnZV9wbWRfbG9ja2Vk KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBwbWRfdCAqcG1kLAogCWNv dW50X3ZtX2V2ZW50KFRIUF9TUExJVF9QTUQpOwogCiAJaWYgKCF2bWFfaXNf YW5vbnltb3VzKHZtYSkpIHsKLQkJX3BtZCA9IHBtZHBfaHVnZV9jbGVhcl9m bHVzaF9ub3RpZnkodm1hLCBoYWRkciwgcG1kKTsKKwkJb2xkX3BtZCA9IHBt ZHBfaHVnZV9jbGVhcl9mbHVzaF9ub3RpZnkodm1hLCBoYWRkciwgcG1kKTsK IAkJLyoKIAkJICogV2UgYXJlIGdvaW5nIHRvIHVubWFwIHRoaXMgaHVnZSBw YWdlLiBTbwogCQkgKiBqdXN0IGdvIGFoZWFkIGFuZCB6YXAgaXQKQEAgLTIw NDAsMTYgKzIwNDAsMjUgQEAgc3RhdGljIHZvaWQgX19zcGxpdF9odWdlX3Bt ZF9sb2NrZWQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHBtZF90ICpw bWQsCiAJCQl6YXBfZGVwb3NpdGVkX3RhYmxlKG1tLCBwbWQpOwogCQlpZiAo dm1hX2lzX3NwZWNpYWxfaHVnZSh2bWEpKQogCQkJcmV0dXJuOwotCQlwYWdl ID0gcG1kX3BhZ2UoX3BtZCk7Ci0JCWlmICghUGFnZURpcnR5KHBhZ2UpICYm IHBtZF9kaXJ0eShfcG1kKSkKLQkJCXNldF9wYWdlX2RpcnR5KHBhZ2UpOwot CQlpZiAoIVBhZ2VSZWZlcmVuY2VkKHBhZ2UpICYmIHBtZF95b3VuZyhfcG1k KSkKLQkJCVNldFBhZ2VSZWZlcmVuY2VkKHBhZ2UpOwotCQlwYWdlX3JlbW92 ZV9ybWFwKHBhZ2UsIHRydWUpOwotCQlwdXRfcGFnZShwYWdlKTsKKwkJaWYg KHVubGlrZWx5KGlzX3BtZF9taWdyYXRpb25fZW50cnkob2xkX3BtZCkpKSB7 CisJCQlzd3BfZW50cnlfdCBlbnRyeTsKKworCQkJZW50cnkgPSBwbWRfdG9f c3dwX2VudHJ5KG9sZF9wbWQpOworCQkJcGFnZSA9IG1pZ3JhdGlvbl9lbnRy eV90b19wYWdlKGVudHJ5KTsKKwkJfSBlbHNlIHsKKwkJCXBhZ2UgPSBwbWRf cGFnZShvbGRfcG1kKTsKKwkJCWlmICghUGFnZURpcnR5KHBhZ2UpICYmIHBt ZF9kaXJ0eShvbGRfcG1kKSkKKwkJCQlzZXRfcGFnZV9kaXJ0eShwYWdlKTsK KwkJCWlmICghUGFnZVJlZmVyZW5jZWQocGFnZSkgJiYgcG1kX3lvdW5nKG9s ZF9wbWQpKQorCQkJCVNldFBhZ2VSZWZlcmVuY2VkKHBhZ2UpOworCQkJcGFn ZV9yZW1vdmVfcm1hcChwYWdlLCB0cnVlKTsKKwkJCXB1dF9wYWdlKHBhZ2Up OworCQl9CiAJCWFkZF9tbV9jb3VudGVyKG1tLCBtbV9jb3VudGVyX2ZpbGUo cGFnZSksIC1IUEFHRV9QTURfTlIpOwogCQlyZXR1cm47Ci0JfSBlbHNlIGlm IChwbWRfdHJhbnNfaHVnZSgqcG1kKSAmJiBpc19odWdlX3plcm9fcG1kKCpw bWQpKSB7CisJfQorCisJaWYgKHBtZF90cmFuc19odWdlKCpwbWQpICYmIGlz X2h1Z2VfemVyb19wbWQoKnBtZCkpIHsKIAkJLyoKIAkJICogRklYTUU6IERv IHdlIHdhbnQgdG8gaW52YWxpZGF0ZSBzZWNvbmRhcnkgbW11IGJ5IGNhbGxp bmcKIAkJICogbW11X25vdGlmaWVyX2ludmFsaWRhdGVfcmFuZ2UoKSBzZWUg Y29tbWVudHMgYmVsb3cgaW5zaWRlCmRpZmYgLS1naXQgYS9tbS9wZ3RhYmxl LWdlbmVyaWMuYyBiL21tL3BndGFibGUtZ2VuZXJpYy5jCmluZGV4IDk1Nzhk YjgzZTMxMi4uNGU2NDBiYWY5Nzk0IDEwMDY0NAotLS0gYS9tbS9wZ3RhYmxl LWdlbmVyaWMuYworKysgYi9tbS9wZ3RhYmxlLWdlbmVyaWMuYwpAQCAtMTM1 LDggKzEzNSw4IEBAIHBtZF90IHBtZHBfaHVnZV9jbGVhcl9mbHVzaChzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNz LAogewogCXBtZF90IHBtZDsKIAlWTV9CVUdfT04oYWRkcmVzcyAmIH5IUEFH RV9QTURfTUFTSyk7Ci0JVk1fQlVHX09OKChwbWRfcHJlc2VudCgqcG1kcCkg JiYgIXBtZF90cmFuc19odWdlKCpwbWRwKSAmJgotCQkJICAgIXBtZF9kZXZt YXAoKnBtZHApKSB8fCAhcG1kX3ByZXNlbnQoKnBtZHApKTsKKwlWTV9CVUdf T04ocG1kX3ByZXNlbnQoKnBtZHApICYmICFwbWRfdHJhbnNfaHVnZSgqcG1k cCkgJiYKKwkJCSAgICFwbWRfZGV2bWFwKCpwbWRwKSk7CiAJcG1kID0gcG1k cF9odWdlX2dldF9hbmRfY2xlYXIodm1hLT52bV9tbSwgYWRkcmVzcywgcG1k cCk7CiAJZmx1c2hfcG1kX3RsYl9yYW5nZSh2bWEsIGFkZHJlc3MsIGFkZHJl c3MgKyBIUEFHRV9QTURfU0laRSk7CiAJcmV0dXJuIHBtZDsKLS0gCjIuMzIu MC4yODguZzYyYThkMjI0ZTYtZ29vZwoKAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUuMTAvUGF4SGVh ZGVycy4yNDUxMy8wMDEwLW1tLXRocC11bm1hcF9tYXBwaW5nX3BhZ2UtdG8t Zml4LVRIUC10cnVuY2F0ZV9jbGVhbnUucGF0Y2gAAAAAAAAAAAAAAAAAAAAw MDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDA3NAAxNDA2MzQ2NjYw NgAwMjQ2NTEAIHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAMzAgYXRpbWU9MTYyNDY2NjI4Mi44OTA3OTk1NTEKMzAgY3RpbWU9 MTYyNDI1MjUwOS41NDQxMzUwMzYKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1LjEwLzAwMTAtbW0tdGhwLXVubWFw X21hcHBpbmdfcGFnZS10by1maXgtVEhQLXRydW5jYXRlX2NsZWFudS5wYXRj aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0MAAwMDAx NzUwADAwMDAxNDQAMDAwMDAwMjQwNzUAMTQwNjM0NjY2MDYAMDI1MjY3ACAw AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAHVzdGFyADAwaHVnaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAB1c2VycwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAA MDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZyb20g ZGJmYTM0MTFlYTAzMGEzZWZhMWU2NTM1MDMzZmZiN2RiYmIzNThiZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSHVnaCBEaWNraW5zIDxodWdo ZEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDE1IEp1biAyMDIxIDE4OjI0OjAz IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMC8yMl0gbW0vdGhwOiB1bm1hcF9t YXBwaW5nX3BhZ2UoKSB0byBmaXggVEhQCiB0cnVuY2F0ZV9jbGVhbnVwX3Bh Z2UoKQoKWyBVcHN0cmVhbSBjb21taXQgMjIwNjFhMWZmYWJkYjljMzM4NWRl MTU5YzVkYjdhYWMzYTRkZjFjYyBdCgpUaGVyZSBpcyBhIHJhY2UgYmV0d2Vl biBUSFAgdW5tYXBwaW5nIGFuZCB0cnVuY2F0aW9uLCB3aGVuIHRydW5jYXRl IHNlZXMKcG1kX25vbmUoKSBhbmQgc2tpcHMgdGhlIGVudHJ5LCBhZnRlciBt dW5tYXAncyB6YXBfaHVnZV9wbWQoKSBjbGVhcmVkCml0LCBidXQgYmVmb3Jl IGl0cyBwYWdlX3JlbW92ZV9ybWFwKCkgZ2V0cyB0byBkZWNyZW1lbnQKY29t cG91bmRfbWFwY291bnQ6IGdlbmVyYXRpbmcgZmFsc2UgIkJVRzogQmFkIHBh Z2UgY2FjaGUiIHJlcG9ydHMgdGhhdAp0aGUgcGFnZSBpcyBzdGlsbCBtYXBw ZWQgd2hlbiBkZWxldGVkLiAgVGhpcyBjb21taXQgZml4ZXMgdGhhdCwgYnV0 IG5vdAppbiB0aGUgd2F5IEkgaG9wZWQuCgpUaGUgZmlyc3QgYXR0ZW1wdCB1 c2VkIHRyeV90b191bm1hcChwYWdlLCBUVFVfU1lOQ3xUVFVfSUdOT1JFX01M T0NLKQppbnN0ZWFkIG9mIHVubWFwX21hcHBpbmdfcmFuZ2UoKSBpbiB0cnVu Y2F0ZV9jbGVhbnVwX3BhZ2UoKTogaXQgaGFzCm9mdGVuIGJlZW4gYW4gYW5u b3lhbmNlIHRoYXQgd2UgdXN1YWxseSBjYWxsIHVubWFwX21hcHBpbmdfcmFu Z2UoKSB3aXRoCm5vIHBhZ2VzIGxvY2tlZCwgYnV0IHRoZXJlIGFwcGx5IGl0 IHRvIGEgc2luZ2xlIGxvY2tlZCBwYWdlLgp0cnlfdG9fdW5tYXAoKSBsb29r cyBtb3JlIHN1aXRhYmxlIGZvciBhIHNpbmdsZSBsb2NrZWQgcGFnZS4KCkhv d2V2ZXIsIHRyeV90b191bm1hcF9vbmUoKSBjb250YWlucyBhIFZNX0JVR19P Tl9QQUdFKCFwdm13LnB0ZSxwYWdlKToKaXQgaXMgdXNlZCB0byBpbnNlcnQg VEhQIG1pZ3JhdGlvbiBlbnRyaWVzLCBidXQgbm90IHVzZWQgdG8gdW5tYXAg VEhQcy4KQ29weSB6YXBfaHVnZV9wbWQoKSBhbmQgYWRkIFRIUCBoYW5kbGlu ZyBub3c/IFBlcmhhcHMsIGJ1dCB0aGVpciBUTEIKbmVlZHMgYXJlIGRpZmZl cmVudCwgSSdtIHRvbyBpZ25vcmFudCBvZiB0aGUgREFYIGNhc2VzLCBhbmQg Y291bGRuJ3QKZGVjaWRlIGhvdyBmYXIgdG8gZ28gZm9yIGFub24rc3dhcC4g IFNldCB0aGF0IGFzaWRlLgoKVGhlIHNlY29uZCBhdHRlbXB0IHRvb2sgYSBk aWZmZXJlbnQgdGFjazogbWFrZSBubyBjaGFuZ2UgaW4gdHJ1bmNhdGUuYywK YnV0IG1vZGlmeSB6YXBfaHVnZV9wbWQoKSB0byBpbnNlcnQgYW4gaW52YWxp ZGF0ZWQgaHVnZSBwbWQgaW5zdGVhZCBvZgpjbGVhcmluZyBpdCBpbml0aWFs bHksIHRoZW4gcG1kX2NsZWFyKCkgYmV0d2VlbiBwYWdlX3JlbW92ZV9ybWFw KCkgYW5kCnVubG9ja2luZyBhdCB0aGUgZW5kLiAgTmljZS4gIEJ1dCBwb3dl cnBjIGJsb3dzIHRoYXQgYXBwcm9hY2ggb3V0IG9mIHRoZQp3YXRlciwgd2l0 aCBpdHMgc2VyaWFsaXplX2FnYWluc3RfcHRlX2xvb2t1cCgpLCBhbmQgaW50 ZXJlc3RpbmcgcGd0YWJsZQp1c2FnZS4gIEl0IHdvdWxkIG5lZWQgc2VyaW91 cyBoZWxwIHRvIGdldCB3b3JraW5nIG9uIHBvd2VycGMgKHdpdGggYQptaW5v ciBvcHRpbWl6YXRpb24gaXNzdWUgb24gczM5MCB0b28pLiAgU2V0IHRoYXQg YXNpZGUuCgpKdXN0IGFkZCBhbiAiaWYgKHBhZ2VfbWFwcGVkKHBhZ2UpKSBz eW5jaHJvbml6ZV9yY3UoKTsiIG9yIG90aGVyIHN1Y2gKZGVsYXksIGFmdGVy IHVubWFwcGluZyBpbiB0cnVuY2F0ZV9jbGVhbnVwX3BhZ2UoKT8gUGVyaGFw cywgYnV0IHRob3VnaAp0aGF0J3MgbGlrZWx5IHRvIHJlZHVjZSBvciBlbGlt aW5hdGUgdGhlIG51bWJlciBvZiBpbmNpZGVudHMsIGl0IHdvdWxkCmdpdmUg bGVzcyBhc3N1cmFuY2Ugb2Ygd2hldGhlciB3ZSBoYWQgaWRlbnRpZmllZCB0 aGUgcHJvYmxlbSBjb3JyZWN0bHkuCgpUaGlzIHN1Y2Nlc3NmdWwgaXRlcmF0 aW9uIGludHJvZHVjZXMgInVubWFwX21hcHBpbmdfcGFnZShwYWdlKSIgaW5z dGVhZApvZiB0cnlfdG9fdW5tYXAoKSwgYW5kIGdvZXMgdGhlIHVzdWFsIHVu bWFwX21hcHBpbmdfcmFuZ2VfdHJlZSgpIHJvdXRlLAp3aXRoIGFuIGFkZGl0 aW9uIHRvIGRldGFpbHMuICBUaGVuIHphcF9wbWRfcmFuZ2UoKSB3YXRjaGVz IGZvciB0aGlzCmNhc2UsIGFuZCBkb2VzIHNwaW5fdW5sb2NrKHBtZF9sb2Nr KSBpZiBzbyAtIGp1c3QgbGlrZQpwYWdlX3ZtYV9tYXBwZWRfd2FsaygpIG5v dyBkb2VzIGluIHRoZSBQVk1XX1NZTkMgY2FzZS4gIE5vdCBwcmV0dHksIGJ1 dApzYWZlLgoKTm90ZSB0aGF0IHVubWFwX21hcHBpbmdfcGFnZSgpIGlzIGRv aW5nIGEgVk1fQlVHX09OKCFQYWdlTG9ja2VkKSB0bwphc3NlcnQgaXRzIGlu dGVyZmFjZTsgYnV0IGN1cnJlbnRseSB0aGF0J3Mgb25seSB1c2VkIHRvIG1h a2Ugc3VyZSB0aGF0CnBhZ2UtPm1hcHBpbmcgaXMgc3RhYmxlLCBhbmQgemFw X3BtZF9yYW5nZSgpIGRvZXNuJ3QgY2FyZSBpZiB0aGUgcGFnZSBpcwpsb2Nr ZWQgb3Igbm90LiAgQWxvbmcgdGhlc2UgbGluZXMsIGluIGludmFsaWRhdGVf aW5vZGVfcGFnZXMyX3JhbmdlKCkKbW92ZSB0aGUgaW5pdGlhbCB1bm1hcF9t YXBwaW5nX3JhbmdlKCkgb3V0IGZyb20gdW5kZXIgcGFnZSBsb2NrLCBiZWZv cmUKdGhlbiBjYWxsaW5nIHVubWFwX21hcHBpbmdfcGFnZSgpIHVuZGVyIHBh Z2UgbG9jayBpZiBzdGlsbCBtYXBwZWQuCgpMaW5rOiBodHRwczovL2xrbWwu a2VybmVsLm9yZy9yL2EyYTRhMTQ4LWNkZDgtOTQyYy00ZWY4LTUxYjc3ZjY0 M2RiZUBnb29nbGUuY29tCkZpeGVzOiBmYzEyN2RhMDg1YzIgKCJ0cnVuY2F0 ZTogaGFuZGxlIGZpbGUgdGhwIikKU2lnbmVkLW9mZi1ieTogSHVnaCBEaWNr aW5zIDxodWdoZEBnb29nbGUuY29tPgpBY2tlZC1ieTogS2lyaWxsIEEuIFNo dXRlbW92IDxraXJpbGwuc2h1dGVtb3ZAbGludXguaW50ZWwuY29tPgpSZXZp ZXdlZC1ieTogWWFuZyBTaGkgPHNoeTgyODMwMUBnbWFpbC5jb20+CkNjOiBB bGlzdGFpciBQb3BwbGUgPGFwb3BwbGVAbnZpZGlhLmNvbT4KQ2M6IEphbiBL YXJhIDxqYWNrQHN1c2UuY3o+CkNjOiBKdWUgV2FuZyA8anVld0Bnb29nbGUu Y29tPgpDYzogIk1hdHRoZXcgV2lsY294IChPcmFjbGUpIiA8d2lsbHlAaW5m cmFkZWFkLm9yZz4KQ2M6IE1pYW9oZSBMaW4gPGxpbm1pYW9oZUBodWF3ZWku Y29tPgpDYzogTWluY2hhbiBLaW0gPG1pbmNoYW5Aa2VybmVsLm9yZz4KQ2M6 IE5hb3lhIEhvcmlndWNoaSA8bmFveWEuaG9yaWd1Y2hpQG5lYy5jb20+CkNj OiBPc2NhciBTYWx2YWRvciA8b3NhbHZhZG9yQHN1c2UuZGU+CkNjOiBQZXRl ciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+CkNjOiBSYWxwaCBDYW1wYmVsbCA8 cmNhbXBiZWxsQG52aWRpYS5jb20+CkNjOiBTaGFrZWVsIEJ1dHQgPHNoYWtl ZWxiQGdvb2dsZS5jb20+CkNjOiBXYW5nIFl1Z3VpIDx3YW5neXVndWlAZTE2 LXRlY2guY29tPgpDYzogWmkgWWFuIDx6aXlAbnZpZGlhLmNvbT4KQ2M6IDxz dGFibGVAdmdlci5rZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg TW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpTaWduZWQtb2Zm LWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlv bi5vcmc+CgpOb3RlIG9uIHN0YWJsZSBiYWNrcG9ydDogZml4ZWQgdXAgY2Fs bCB0byB0cnVuY2F0ZV9jbGVhbnVwX3BhZ2UoKQppbiB0cnVuY2F0ZV9pbm9k ZV9wYWdlc19yYW5nZSgpLgoKU2lnbmVkLW9mZi1ieTogSHVnaCBEaWNraW5z IDxodWdoZEBnb29nbGUuY29tPgotLS0KIGluY2x1ZGUvbGludXgvbW0uaCB8 ICAzICsrKwogbW0vbWVtb3J5LmMgICAgICAgIHwgNDEgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIG1tL3RydW5jYXRlLmMg ICAgICB8IDQzICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwg MjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9t bS5oIGIvaW5jbHVkZS9saW51eC9tbS5oCmluZGV4IDUxMDZkYjNhZDFjZS4u Mjg5YzI2ZjA1NWNkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tLmgK KysrIGIvaW5jbHVkZS9saW51eC9tbS5oCkBAIC0xNjQ4LDYgKzE2NDgsNyBA QCBzdHJ1Y3QgemFwX2RldGFpbHMgewogCXN0cnVjdCBhZGRyZXNzX3NwYWNl ICpjaGVja19tYXBwaW5nOwkvKiBDaGVjayBwYWdlLT5tYXBwaW5nIGlmIHNl dCAqLwogCXBnb2ZmX3QJZmlyc3RfaW5kZXg7CQkJLyogTG93ZXN0IHBhZ2Ut PmluZGV4IHRvIHVubWFwICovCiAJcGdvZmZfdCBsYXN0X2luZGV4OwkJCS8q IEhpZ2hlc3QgcGFnZS0+aW5kZXggdG8gdW5tYXAgKi8KKwlzdHJ1Y3QgcGFn ZSAqc2luZ2xlX3BhZ2U7CQkvKiBMb2NrZWQgcGFnZSB0byBiZSB1bm1hcHBl ZCAqLwogfTsKIAogc3RydWN0IHBhZ2UgKnZtX25vcm1hbF9wYWdlKHN0cnVj dCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCkBA IC0xNjk1LDYgKzE2OTYsNyBAQCBleHRlcm4gdm1fZmF1bHRfdCBoYW5kbGVf bW1fZmF1bHQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiBleHRlcm4g aW50IGZpeHVwX3VzZXJfZmF1bHQoc3RydWN0IG1tX3N0cnVjdCAqbW0sCiAJ CQkgICAgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCB1bnNpZ25lZCBpbnQgZmF1 bHRfZmxhZ3MsCiAJCQkgICAgYm9vbCAqdW5sb2NrZWQpOwordm9pZCB1bm1h cF9tYXBwaW5nX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpOwogdm9pZCB1bm1h cF9tYXBwaW5nX3BhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n LAogCQlwZ29mZl90IHN0YXJ0LCBwZ29mZl90IG5yLCBib29sIGV2ZW5fY293 cyk7CiB2b2lkIHVubWFwX21hcHBpbmdfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nf c3BhY2UgKm1hcHBpbmcsCkBAIC0xNzE1LDYgKzE3MTcsNyBAQCBzdGF0aWMg aW5saW5lIGludCBmaXh1cF91c2VyX2ZhdWx0KHN0cnVjdCBtbV9zdHJ1Y3Qg Km1tLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCiAJQlVHKCk7CiAJcmV0dXJu IC1FRkFVTFQ7CiB9CitzdGF0aWMgaW5saW5lIHZvaWQgdW5tYXBfbWFwcGlu Z19wYWdlKHN0cnVjdCBwYWdlICpwYWdlKSB7IH0KIHN0YXRpYyBpbmxpbmUg dm9pZCB1bm1hcF9tYXBwaW5nX3BhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLAogCQlwZ29mZl90IHN0YXJ0LCBwZ29mZl90IG5yLCBib29s IGV2ZW5fY293cykgeyB9CiBzdGF0aWMgaW5saW5lIHZvaWQgdW5tYXBfbWFw cGluZ19yYW5nZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKZGlm ZiAtLWdpdCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKaW5kZXggYjcw YmQzYmEzMzg4Li5lYjMxYjNlNGVmOTMgMTAwNjQ0Ci0tLSBhL21tL21lbW9y eS5jCisrKyBiL21tL21lbW9yeS5jCkBAIC0xMzU1LDcgKzEzNTUsMTggQEAg c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHphcF9wbWRfcmFuZ2Uoc3Ry dWN0IG1tdV9nYXRoZXIgKnRsYiwKIAkJCWVsc2UgaWYgKHphcF9odWdlX3Bt ZCh0bGIsIHZtYSwgcG1kLCBhZGRyKSkKIAkJCQlnb3RvIG5leHQ7CiAJCQkv KiBmYWxsIHRocm91Z2ggKi8KKwkJfSBlbHNlIGlmIChkZXRhaWxzICYmIGRl dGFpbHMtPnNpbmdsZV9wYWdlICYmCisJCQkgICBQYWdlVHJhbnNDb21wb3Vu ZChkZXRhaWxzLT5zaW5nbGVfcGFnZSkgJiYKKwkJCSAgIG5leHQgLSBhZGRy ID09IEhQQUdFX1BNRF9TSVpFICYmIHBtZF9ub25lKCpwbWQpKSB7CisJCQlz cGlubG9ja190ICpwdGwgPSBwbWRfbG9jayh0bGItPm1tLCBwbWQpOworCQkJ LyoKKwkJCSAqIFRha2UgYW5kIGRyb3AgVEhQIHBtZCBsb2NrIHNvIHRoYXQg d2UgY2Fubm90IHJldHVybgorCQkJICogcHJlbWF0dXJlbHksIHdoaWxlIHph cF9odWdlX3BtZCgpIGhhcyBjbGVhcmVkICpwbWQsCisJCQkgKiBidXQgbm90 IHlldCBkZWNyZW1lbnRlZCBjb21wb3VuZF9tYXBjb3VudCgpLgorCQkJICov CisJCQlzcGluX3VubG9jayhwdGwpOwogCQl9CisKIAkJLyoKIAkJICogSGVy ZSB0aGVyZSBjYW4gYmUgb3RoZXIgY29uY3VycmVudCBNQURWX0RPTlRORUVE IG9yCiAJCSAqIHRyYW5zIGh1Z2UgcGFnZSBmYXVsdHMgcnVubmluZywgYW5k IGlmIHRoZSBwbWQgaXMKQEAgLTMxODUsNiArMzE5NiwzNiBAQCBzdGF0aWMg aW5saW5lIHZvaWQgdW5tYXBfbWFwcGluZ19yYW5nZV90cmVlKHN0cnVjdCBy Yl9yb290X2NhY2hlZCAqcm9vdCwKIAl9CiB9CiAKKy8qKgorICogdW5tYXBf bWFwcGluZ19wYWdlKCkgLSBVbm1hcCBzaW5nbGUgcGFnZSBmcm9tIHByb2Nl c3Nlcy4KKyAqIEBwYWdlOiBUaGUgbG9ja2VkIHBhZ2UgdG8gYmUgdW5tYXBw ZWQuCisgKgorICogVW5tYXAgdGhpcyBwYWdlIGZyb20gYW55IHVzZXJzcGFj ZSBwcm9jZXNzIHdoaWNoIHN0aWxsIGhhcyBpdCBtbWFwZWQuCisgKiBUeXBp Y2FsbHksIGZvciBlZmZpY2llbmN5LCB0aGUgcmFuZ2Ugb2YgbmVhcmJ5IHBh Z2VzIGhhcyBhbHJlYWR5IGJlZW4KKyAqIHVubWFwcGVkIGJ5IHVubWFwX21h cHBpbmdfcGFnZXMoKSBvciB1bm1hcF9tYXBwaW5nX3JhbmdlKCkuICBCdXQg b25jZQorICogdHJ1bmNhdGlvbiBvciBpbnZhbGlkYXRpb24gaG9sZHMgdGhl IGxvY2sgb24gYSBwYWdlLCBpdCBtYXkgZmluZCB0aGF0CisgKiB0aGUgcGFn ZSBoYXMgYmVlbiByZW1hcHBlZCBhZ2FpbjogYW5kIHRoZW4gdXNlcyB1bm1h cF9tYXBwaW5nX3BhZ2UoKQorICogdG8gdW5tYXAgaXQgZmluYWxseS4KKyAq Lwordm9pZCB1bm1hcF9tYXBwaW5nX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2Up Cit7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBwYWdlLT5t YXBwaW5nOworCXN0cnVjdCB6YXBfZGV0YWlscyBkZXRhaWxzID0geyB9Owor CisJVk1fQlVHX09OKCFQYWdlTG9ja2VkKHBhZ2UpKTsKKwlWTV9CVUdfT04o UGFnZVRhaWwocGFnZSkpOworCisJZGV0YWlscy5jaGVja19tYXBwaW5nID0g bWFwcGluZzsKKwlkZXRhaWxzLmZpcnN0X2luZGV4ID0gcGFnZS0+aW5kZXg7 CisJZGV0YWlscy5sYXN0X2luZGV4ID0gcGFnZS0+aW5kZXggKyB0aHBfbnJf cGFnZXMocGFnZSkgLSAxOworCWRldGFpbHMuc2luZ2xlX3BhZ2UgPSBwYWdl OworCisJaV9tbWFwX2xvY2tfd3JpdGUobWFwcGluZyk7CisJaWYgKHVubGlr ZWx5KCFSQl9FTVBUWV9ST09UKCZtYXBwaW5nLT5pX21tYXAucmJfcm9vdCkp KQorCQl1bm1hcF9tYXBwaW5nX3JhbmdlX3RyZWUoJm1hcHBpbmctPmlfbW1h cCwgJmRldGFpbHMpOworCWlfbW1hcF91bmxvY2tfd3JpdGUobWFwcGluZyk7 Cit9CisKIC8qKgogICogdW5tYXBfbWFwcGluZ19wYWdlcygpIC0gVW5tYXAg cGFnZXMgZnJvbSBwcm9jZXNzZXMuCiAgKiBAbWFwcGluZzogVGhlIGFkZHJl c3Mgc3BhY2UgY29udGFpbmluZyBwYWdlcyB0byBiZSB1bm1hcHBlZC4KZGlm ZiAtLWdpdCBhL21tL3RydW5jYXRlLmMgYi9tbS90cnVuY2F0ZS5jCmluZGV4 IDk2MGVkZjU4MDNjYS4uODkxNGNhNGNlNGIxIDEwMDY0NAotLS0gYS9tbS90 cnVuY2F0ZS5jCisrKyBiL21tL3RydW5jYXRlLmMKQEAgLTE3MywxMyArMTcz LDEwIEBAIHZvaWQgZG9faW52YWxpZGF0ZXBhZ2Uoc3RydWN0IHBhZ2UgKnBh Z2UsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgKiBpdHMgbG9jaywgYikgd2hl biBhIGNvbmN1cnJlbnQgaW52YWxpZGF0ZV9tYXBwaW5nX3BhZ2VzIGdvdCB0 aGVyZSBmaXJzdCBhbmQKICAqIGMpIHdoZW4gdG1wZnMgc3dpenpsZXMgYSBw YWdlIGJldHdlZW4gYSB0bXBmcyBpbm9kZSBhbmQgc3dhcHBlcl9zcGFjZS4K ICAqLwotc3RhdGljIHZvaWQKLXRydW5jYXRlX2NsZWFudXBfcGFnZShzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgc3RydWN0IHBhZ2UgKnBhZ2Up CitzdGF0aWMgdm9pZCB0cnVuY2F0ZV9jbGVhbnVwX3BhZ2Uoc3RydWN0IHBh Z2UgKnBhZ2UpCiB7Ci0JaWYgKHBhZ2VfbWFwcGVkKHBhZ2UpKSB7Ci0JCXVu c2lnbmVkIGludCBuciA9IHRocF9ucl9wYWdlcyhwYWdlKTsKLQkJdW5tYXBf bWFwcGluZ19wYWdlcyhtYXBwaW5nLCBwYWdlLT5pbmRleCwgbnIsIGZhbHNl KTsKLQl9CisJaWYgKHBhZ2VfbWFwcGVkKHBhZ2UpKQorCQl1bm1hcF9tYXBw aW5nX3BhZ2UocGFnZSk7CiAKIAlpZiAocGFnZV9oYXNfcHJpdmF0ZShwYWdl KSkKIAkJZG9faW52YWxpZGF0ZXBhZ2UocGFnZSwgMCwgdGhwX3NpemUocGFn ZSkpOwpAQCAtMjI0LDcgKzIyMSw3IEBAIGludCB0cnVuY2F0ZV9pbm9kZV9w YWdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBzdHJ1Y3QgcGFn ZSAqcGFnZSkKIAlpZiAocGFnZS0+bWFwcGluZyAhPSBtYXBwaW5nKQogCQly ZXR1cm4gLUVJTzsKIAotCXRydW5jYXRlX2NsZWFudXBfcGFnZShtYXBwaW5n LCBwYWdlKTsKKwl0cnVuY2F0ZV9jbGVhbnVwX3BhZ2UocGFnZSk7CiAJZGVs ZXRlX2Zyb21fcGFnZV9jYWNoZShwYWdlKTsKIAlyZXR1cm4gMDsKIH0KQEAg LTM2Miw3ICszNTksNyBAQCB2b2lkIHRydW5jYXRlX2lub2RlX3BhZ2VzX3Jh bmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCQkJcGFnZXZl Y19hZGQoJmxvY2tlZF9wdmVjLCBwYWdlKTsKIAkJfQogCQlmb3IgKGkgPSAw OyBpIDwgcGFnZXZlY19jb3VudCgmbG9ja2VkX3B2ZWMpOyBpKyspCi0JCQl0 cnVuY2F0ZV9jbGVhbnVwX3BhZ2UobWFwcGluZywgbG9ja2VkX3B2ZWMucGFn ZXNbaV0pOworCQkJdHJ1bmNhdGVfY2xlYW51cF9wYWdlKGxvY2tlZF9wdmVj LnBhZ2VzW2ldKTsKIAkJZGVsZXRlX2Zyb21fcGFnZV9jYWNoZV9iYXRjaCht YXBwaW5nLCAmbG9ja2VkX3B2ZWMpOwogCQlmb3IgKGkgPSAwOyBpIDwgcGFn ZXZlY19jb3VudCgmbG9ja2VkX3B2ZWMpOyBpKyspCiAJCQl1bmxvY2tfcGFn ZShsb2NrZWRfcHZlYy5wYWdlc1tpXSk7CkBAIC03MzcsNiArNzM0LDE2IEBA IGludCBpbnZhbGlkYXRlX2lub2RlX3BhZ2VzMl9yYW5nZShzdHJ1Y3QgYWRk cmVzc19zcGFjZSAqbWFwcGluZywKIAkJCQljb250aW51ZTsKIAkJCX0KIAor CQkJaWYgKCFkaWRfcmFuZ2VfdW5tYXAgJiYgcGFnZV9tYXBwZWQocGFnZSkp IHsKKwkJCQkvKgorCQkJCSAqIElmIHBhZ2UgaXMgbWFwcGVkLCBiZWZvcmUg dGFraW5nIGl0cyBsb2NrLAorCQkJCSAqIHphcCB0aGUgcmVzdCBvZiB0aGUg ZmlsZSBpbiBvbmUgaGl0LgorCQkJCSAqLworCQkJCXVubWFwX21hcHBpbmdf cGFnZXMobWFwcGluZywgaW5kZXgsCisJCQkJCQkoMSArIGVuZCAtIGluZGV4 KSwgZmFsc2UpOworCQkJCWRpZF9yYW5nZV91bm1hcCA9IDE7CisJCQl9CisK IAkJCWxvY2tfcGFnZShwYWdlKTsKIAkJCVdBUk5fT04ocGFnZV90b19pbmRl eChwYWdlKSAhPSBpbmRleCk7CiAJCQlpZiAocGFnZS0+bWFwcGluZyAhPSBt YXBwaW5nKSB7CkBAIC03NDQsMjMgKzc1MSwxMSBAQCBpbnQgaW52YWxpZGF0 ZV9pbm9kZV9wYWdlczJfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcsCiAJCQkJY29udGludWU7CiAJCQl9CiAJCQl3YWl0X29uX3BhZ2Vf d3JpdGViYWNrKHBhZ2UpOwotCQkJaWYgKHBhZ2VfbWFwcGVkKHBhZ2UpKSB7 Ci0JCQkJaWYgKCFkaWRfcmFuZ2VfdW5tYXApIHsKLQkJCQkJLyoKLQkJCQkJ ICogWmFwIHRoZSByZXN0IG9mIHRoZSBmaWxlIGluIG9uZSBoaXQuCi0JCQkJ CSAqLwotCQkJCQl1bm1hcF9tYXBwaW5nX3BhZ2VzKG1hcHBpbmcsIGluZGV4 LAotCQkJCQkJKDEgKyBlbmQgLSBpbmRleCksIGZhbHNlKTsKLQkJCQkJZGlk X3JhbmdlX3VubWFwID0gMTsKLQkJCQl9IGVsc2UgewotCQkJCQkvKgotCQkJ CQkgKiBKdXN0IHphcCB0aGlzIHBhZ2UKLQkJCQkJICovCi0JCQkJCXVubWFw X21hcHBpbmdfcGFnZXMobWFwcGluZywgaW5kZXgsCi0JCQkJCQkJCTEsIGZh bHNlKTsKLQkJCQl9Ci0JCQl9CisKKwkJCWlmIChwYWdlX21hcHBlZChwYWdl KSkKKwkJCQl1bm1hcF9tYXBwaW5nX3BhZ2UocGFnZSk7CiAJCQlCVUdfT04o cGFnZV9tYXBwZWQocGFnZSkpOworCiAJCQlyZXQyID0gZG9fbGF1bmRlcl9w YWdlKG1hcHBpbmcsIHBhZ2UpOwogCQkJaWYgKHJldDIgPT0gMCkgewogCQkJ CWlmICghaW52YWxpZGF0ZV9jb21wbGV0ZV9wYWdlMihtYXBwaW5nLCBwYWdl KSkKLS0gCjIuMzIuMC4yODguZzYyYThkMjI0ZTYtZ29vZwoKAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUuMTAvUGF4 SGVhZGVycy4yNDUxMy8wMDExLW1tLXRocC1yZXBsYWNlLURFQlVHX1ZNLUJV Ry13aXRoLVZNX1dBUk4td2hlbi11bm1hcC0ucGF0Y2gAAAAAAAAAAAAAAAAA AAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDA3NAAxNDA2MzQ2 NjYwNgAwMjM1NDIAIHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAMzAgYXRpbWU9MTYyNDY2NjI4Mi44OTA3OTk1NTEKMzAgY3Rp bWU9MTYyNDI1MjUwOS41NDQxMzUwMzYKAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1LjEwLzAwMTEtbW0tdGhwLXJl cGxhY2UtREVCVUdfVk0tQlVHLXdpdGgtVk1fV0FSTi13aGVuLXVubWFwLS5w YXRjaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0MAAw MDAxNzUwADAwMDAxNDQAMDAwMDAwMTA0MjMAMTQwNjM0NjY2MDYAMDI0MTUw ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAHVzdGFyADAwaHVnaAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAB1c2VycwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDAw MDAAMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZy b20gYjg3Mzk3ZjA1MWViNTcyODMxYjRkYjkzOTg2MDU1YmIzZGY4MmY5MiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWWFuZyBTaGkgPHNoeTgy ODMwMUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgSnVuIDIwMjEgMTg6MjQ6 MDcgLTA3MDAKU3ViamVjdDogW1BBVENIIDExLzIyXSBtbTogdGhwOiByZXBs YWNlIERFQlVHX1ZNIEJVRyB3aXRoIFZNX1dBUk4gd2hlbiB1bm1hcAogZmFp bHMgZm9yIHNwbGl0CgpbIFVwc3RyZWFtIGNvbW1pdCA1MDRlMDcwZGMwOGY3 NTdiY2NhZWQ2ZDA1YzBmNTNlY2JmYWM4YTIzIF0KCldoZW4gZGVidWdnaW5n IHRoZSBidWcgcmVwb3J0ZWQgYnkgV2FuZyBZdWd1aSBbMV0sIHRyeV90b191 bm1hcCgpIG1heQpmYWlsLCBidXQgdGhlIGZpcnN0IFZNX0JVR19PTl9QQUdF KCkganVzdCBjaGVja3MgcGFnZV9tYXBjb3VudCgpIGhvd2V2ZXIKaXQgbWF5 IG1pc3MgdGhlIGZhaWx1cmUgd2hlbiBoZWFkIHBhZ2UgaXMgdW5tYXBwZWQg YnV0IG90aGVyIHN1YnBhZ2UgaXMKbWFwcGVkLiAgVGhlbiB0aGUgc2Vjb25k IERFQlVHX1ZNIEJVRygpIHRoYXQgY2hlY2sgdG90YWwgbWFwY291bnQgd291 bGQKY2F0Y2ggaXQuICBUaGlzIG1heSBpbmN1ciBzb21lIGNvbmZ1c2lvbi4K CkFzIHRoaXMgaXMgbm90IGEgZmF0YWwgaXNzdWUsIHNvIGNvbnNvbGlkYXRl IHRoZSB0d28gREVCVUdfVk0gY2hlY2tzCmludG8gb25lIFZNX1dBUk5fT05f T05DRV9QQUdFKCkuCgpbMV0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbGlu dXgtbW0vMjAyMTA0MTIxODA2NTkuQjlFMy40MDk1MDlGNEBlMTYtdGVjaC5j b20vCgpMaW5rOiBodHRwczovL2xrbWwua2VybmVsLm9yZy9yL2QwZjBkYjY4 LTk4YjgtZWJmYi0xNmRjLWYyOWRmMjRjZjAxMkBnb29nbGUuY29tClNpZ25l ZC1vZmYtYnk6IFlhbmcgU2hpIDxzaHk4MjgzMDFAZ21haWwuY29tPgpSZXZp ZXdlZC1ieTogWmkgWWFuIDx6aXlAbnZpZGlhLmNvbT4KQWNrZWQtYnk6IEtp cmlsbCBBLiBTaHV0ZW1vdiA8a2lyaWxsLnNodXRlbW92QGxpbnV4LmludGVs LmNvbT4KU2lnbmVkLW9mZi1ieTogSHVnaCBEaWNraW5zIDxodWdoZEBnb29n bGUuY29tPgpDYzogQWxpc3RhaXIgUG9wcGxlIDxhcG9wcGxlQG52aWRpYS5j b20+CkNjOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgpDYzogSnVlIFdhbmcg PGp1ZXdAZ29vZ2xlLmNvbT4KQ2M6ICJNYXR0aGV3IFdpbGNveCAoT3JhY2xl KSIgPHdpbGx5QGluZnJhZGVhZC5vcmc+CkNjOiBNaWFvaGUgTGluIDxsaW5t aWFvaGVAaHVhd2VpLmNvbT4KQ2M6IE1pbmNoYW4gS2ltIDxtaW5jaGFuQGtl cm5lbC5vcmc+CkNjOiBOYW95YSBIb3JpZ3VjaGkgPG5hb3lhLmhvcmlndWNo aUBuZWMuY29tPgpDYzogT3NjYXIgU2FsdmFkb3IgPG9zYWx2YWRvckBzdXNl LmRlPgpDYzogUGV0ZXIgWHUgPHBldGVyeEByZWRoYXQuY29tPgpDYzogUmFs cGggQ2FtcGJlbGwgPHJjYW1wYmVsbEBudmlkaWEuY29tPgpDYzogU2hha2Vl bCBCdXR0IDxzaGFrZWVsYkBnb29nbGUuY29tPgpDYzogV2FuZyBZdWd1aSA8 d2FuZ3l1Z3VpQGUxNi10ZWNoLmNvbT4KQ2M6IDxzdGFibGVAdmdlci5rZXJu ZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxp bnV4LWZvdW5kYXRpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBMaW51cyBUb3J2 YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+CgpOb3RlIG9u IHN0YWJsZSBiYWNrcG9ydDogZml4ZWQgdXAgdmFyaWFibGVzIGluIHNwbGl0 X2h1Z2VfcGFnZV90b19saXN0KCkuCgpTaWduZWQtb2ZmLWJ5OiBIdWdoIERp Y2tpbnMgPGh1Z2hkQGdvb2dsZS5jb20+Ci0tLQogbW0vaHVnZV9tZW1vcnku YyB8IDI0ICsrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbW0vaHVnZV9tZW1vcnkuYyBiL21tL2h1Z2VfbWVtb3J5LmMKaW5k ZXggMTQxMzYzOTBkNjQxLi42MzAxZWNjMWY2NzkgMTAwNjQ0Ci0tLSBhL21t L2h1Z2VfbWVtb3J5LmMKKysrIGIvbW0vaHVnZV9tZW1vcnkuYwpAQCAtMjM0 NCwxNSArMjM0NCwxNSBAQCBzdGF0aWMgdm9pZCB1bm1hcF9wYWdlKHN0cnVj dCBwYWdlICpwYWdlKQogewogCWVudW0gdHR1X2ZsYWdzIHR0dV9mbGFncyA9 IFRUVV9JR05PUkVfTUxPQ0sgfCBUVFVfU1lOQyB8CiAJCVRUVV9STUFQX0xP Q0tFRCB8IFRUVV9TUExJVF9IVUdFX1BNRDsKLQlib29sIHVubWFwX3N1Y2Nl c3M7CiAKIAlWTV9CVUdfT05fUEFHRSghUGFnZUhlYWQocGFnZSksIHBhZ2Up OwogCiAJaWYgKFBhZ2VBbm9uKHBhZ2UpKQogCQl0dHVfZmxhZ3MgfD0gVFRV X1NQTElUX0ZSRUVaRTsKIAotCXVubWFwX3N1Y2Nlc3MgPSB0cnlfdG9fdW5t YXAocGFnZSwgdHR1X2ZsYWdzKTsKLQlWTV9CVUdfT05fUEFHRSghdW5tYXBf c3VjY2VzcywgcGFnZSk7CisJdHJ5X3RvX3VubWFwKHBhZ2UsIHR0dV9mbGFn cyk7CisKKwlWTV9XQVJOX09OX09OQ0VfUEFHRShwYWdlX21hcHBlZChwYWdl KSwgcGFnZSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJlbWFwX3BhZ2Uoc3RydWN0 IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBucikKQEAgLTI2NDIsNyArMjY0 Miw3IEBAIGludCBzcGxpdF9odWdlX3BhZ2VfdG9fbGlzdChzdHJ1Y3QgcGFn ZSAqcGFnZSwgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCkKIAlzdHJ1Y3QgZGVm ZXJyZWRfc3BsaXQgKmRzX3F1ZXVlID0gZ2V0X2RlZmVycmVkX3NwbGl0X3F1 ZXVlKGhlYWQpOwogCXN0cnVjdCBhbm9uX3ZtYSAqYW5vbl92bWEgPSBOVUxM OwogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gTlVMTDsKLQlp bnQgY291bnQsIG1hcGNvdW50LCBleHRyYV9waW5zLCByZXQ7CisJaW50IGV4 dHJhX3BpbnMsIHJldDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXBnb2Zm X3QgZW5kOwogCkBAIC0yNzAyLDcgKzI3MDIsNiBAQCBpbnQgc3BsaXRfaHVn ZV9wYWdlX3RvX2xpc3Qoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCBsaXN0 X2hlYWQgKmxpc3QpCiAJfQogCiAJdW5tYXBfcGFnZShoZWFkKTsKLQlWTV9C VUdfT05fUEFHRShjb21wb3VuZF9tYXBjb3VudChoZWFkKSwgaGVhZCk7CiAK IAkvKiBwcmV2ZW50IFBhZ2VMUlUgdG8gZ28gYXdheSBmcm9tIHVuZGVyIHVz LCBhbmQgZnJlZXplIGxydSBzdGF0cyAqLwogCXNwaW5fbG9ja19pcnFzYXZl KCZwZ2RhdGEtPmxydV9sb2NrLCBmbGFncyk7CkBAIC0yNzIxLDkgKzI3MjAs NyBAQCBpbnQgc3BsaXRfaHVnZV9wYWdlX3RvX2xpc3Qoc3RydWN0IHBhZ2Ug KnBhZ2UsIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCiAKIAkvKiBQcmV2ZW50 IGRlZmVycmVkX3NwbGl0X3NjYW4oKSB0b3VjaGluZyAtPl9yZWZjb3VudCAq LwogCXNwaW5fbG9jaygmZHNfcXVldWUtPnNwbGl0X3F1ZXVlX2xvY2spOwot CWNvdW50ID0gcGFnZV9jb3VudChoZWFkKTsKLQltYXBjb3VudCA9IHRvdGFs X21hcGNvdW50KGhlYWQpOwotCWlmICghbWFwY291bnQgJiYgcGFnZV9yZWZf ZnJlZXplKGhlYWQsIDEgKyBleHRyYV9waW5zKSkgeworCWlmIChwYWdlX3Jl Zl9mcmVlemUoaGVhZCwgMSArIGV4dHJhX3BpbnMpKSB7CiAJCWlmICghbGlz dF9lbXB0eShwYWdlX2RlZmVycmVkX2xpc3QoaGVhZCkpKSB7CiAJCQlkc19x dWV1ZS0+c3BsaXRfcXVldWVfbGVuLS07CiAJCQlsaXN0X2RlbChwYWdlX2Rl ZmVycmVkX2xpc3QoaGVhZCkpOwpAQCAtMjczOSwxNiArMjczNiw5IEBAIGlu dCBzcGxpdF9odWdlX3BhZ2VfdG9fbGlzdChzdHJ1Y3QgcGFnZSAqcGFnZSwg c3RydWN0IGxpc3RfaGVhZCAqbGlzdCkKIAkJX19zcGxpdF9odWdlX3BhZ2Uo cGFnZSwgbGlzdCwgZW5kLCBmbGFncyk7CiAJCXJldCA9IDA7CiAJfSBlbHNl IHsKLQkJaWYgKElTX0VOQUJMRUQoQ09ORklHX0RFQlVHX1ZNKSAmJiBtYXBj b3VudCkgewotCQkJcHJfYWxlcnQoInRvdGFsX21hcGNvdW50OiAldSwgcGFn ZV9jb3VudCgpOiAldVxuIiwKLQkJCQkJbWFwY291bnQsIGNvdW50KTsKLQkJ CWlmIChQYWdlVGFpbChwYWdlKSkKLQkJCQlkdW1wX3BhZ2UoaGVhZCwgTlVM TCk7Ci0JCQlkdW1wX3BhZ2UocGFnZSwgInRvdGFsX21hcGNvdW50KGhlYWQp ID4gMCIpOwotCQkJQlVHKCk7Ci0JCX0KIAkJc3Bpbl91bmxvY2soJmRzX3F1 ZXVlLT5zcGxpdF9xdWV1ZV9sb2NrKTsKLWZhaWw6CQlpZiAobWFwcGluZykK K2ZhaWw6CisJCWlmIChtYXBwaW5nKQogCQkJeGFfdW5sb2NrKCZtYXBwaW5n LT5pX3BhZ2VzKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcGdkYXRh LT5scnVfbG9jaywgZmxhZ3MpOwogCQlyZW1hcF9wYWdlKGhlYWQsIHRocF9u cl9wYWdlcyhoZWFkKSk7Ci0tIAoyLjMyLjAuMjg4Lmc2MmE4ZDIyNGU2LWdv b2cKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADUuMDQvUGF4SGVhZGVycy4yNDUxMy8wMDA3LW1t LXRocC10cnlfdG9fdW5tYXAtdXNlLVRUVV9TWU5DLWZvci1zYWZlLXNwbGl0 dGluZy5wYXRjaAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwMDAAMDAw MDAwMAAwMDAwMDAwMDA3MwAxNDA2MzUzNDQ1NQAwMjQzNTQAIHgAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdXN0YXIAMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzAgYXRpbWU9MTYy NDY2NjI4Mi44OTA3OTk1NTEKMjkgY3RpbWU9MTYyNDI1MjUwOS41NDAxMzQ5 NwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAA1LjA0LzAwMDctbW0tdGhwLXRyeV90b191bm1hcC11c2UtVFRVX1NZ TkMtZm9yLXNhZmUtc3BsaXR0aW5nLnBhdGNoAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAMDAwMDY0MAAwMDAxNzUwADAwMDAxNDQAMDAwMDAw MTM3MTMAMTQwNjM1MzQ0NTUAMDI0NzcwACAwAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyADAw aHVnaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c2VycwAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAAMDAwMDAwMAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEZyb20gZTFiYjE0NmJiYjQ2N2Q1Y2Iy NmQxMDMzMGYwNDIwMmE2YzI5ZWFkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSHVnaCBEaWNraW5zIDxodWdoZEBnb29nbGUuY29tPgpEYXRl OiBUdWUsIDE1IEp1biAyMDIxIDE4OjIzOjUzIC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAwNy8yMl0gbW0vdGhwOiB0cnlfdG9fdW5tYXAoKSB1c2UgVFRVX1NZ TkMgZm9yIHNhZmUgc3BsaXR0aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCA3MzJl ZDU1ODIzZmMzYWQ5OThkNDNiODZiZjc3MTg4N2JjYzVlYzY3IF0KClN0cmVz c2luZyBodWdlIHRtcGZzIG9mdGVuIGNyYXNoZWQgb24gdW5tYXBfcGFnZSgp J3MgVk1fQlVHX09OX1BBR0UKKCF1bm1hcF9zdWNjZXNzKTogd2l0aCBkdW1w X3BhZ2UoKSBzaG93aW5nIG1hcGNvdW50OjEsIGJ1dCB0aGVuIGl0cyByYXcK c3RydWN0IHBhZ2Ugb3V0cHV0IHNob3dpbmcgX21hcGNvdW50IGZmZmZmZmZm IGkuZS4gIG1hcGNvdW50IDAuCgpBbmQgZXZlbiBpZiB0aGF0IHBhcnRpY3Vs YXIgVk1fQlVHX09OX1BBR0UoIXVubWFwX3N1Y2Nlc3MpIGlzIHJlbW92ZWQs Cml0IGlzIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGEgVk1fQlVHX09OX1BB R0UoY29tcG91bmRfbWFwY291bnQoaGVhZCkpLAphbmQgZnVydGhlciBkb3du IGFuIElTX0VOQUJMRUQoQ09ORklHX0RFQlVHX1ZNKSB0b3RhbF9tYXBjb3Vu dCBCVUcoKToKYWxsIGluZGljYXRpdmUgb2Ygc29tZSBtYXBjb3VudCBkaWZm aWN1bHR5IGluIGRldmVsb3BtZW50IGhlcmUgcGVyaGFwcy4KQnV0IHRoZSAh Q09ORklHX0RFQlVHX1ZNIHBhdGggaGFuZGxlcyB0aGUgZmFpbHVyZXMgY29y cmVjdGx5IGFuZApzaWxlbnRseS4KCkkgYmVsaWV2ZSB0aGUgcHJvYmxlbSBp cyB0aGF0IG9uY2UgYSByYWNpbmcgdW5tYXAgaGFzIGNsZWFyZWQgcHRlIG9y CnBtZCwgdHJ5X3RvX3VubWFwX29uZSgpIG1heSBza2lwIHRha2luZyB0aGUg cGFnZSB0YWJsZSBsb2NrLCBhbmQgZW1lcmdlCmZyb20gdHJ5X3RvX3VubWFw KCkgYmVmb3JlIHRoZSByYWNpbmcgdGFzayBoYXMgcmVhY2hlZCBkZWNyZW1l bnRpbmcKbWFwY291bnQuCgpJbnN0ZWFkIG9mIGFiYW5kb25pbmcgdGhlIHVu c2FmZSBWTV9CVUdfT05fUEFHRSgpLCBhbmQgdGhlIG9uZXMgdGhhdApmb2xs b3csIHVzZSBQVk1XX1NZTkMgaW4gdHJ5X3RvX3VubWFwX29uZSgpIGluIHRo aXMgY2FzZTogYWRkaW5nClRUVV9TWU5DIHRvIHRoZSBvcHRpb25zLCBhbmQg cGFzc2luZyB0aGF0IGZyb20gdW5tYXBfcGFnZSgpLgoKV2hlbiBDT05GSUdf REVCVUdfVk0sIG9yIGZvciBub24tZGVidWcgdG9vPyBDb25zZW5zdXMgaXMg dG8gZG8gdGhlIHNhbWUKZm9yIGJvdGg6IHRoZSBzbGlnaHQgb3ZlcmhlYWQg YWRkZWQgc2hvdWxkIHJhcmVseSBtYXR0ZXIsIGV4Y2VwdCBwZXJoYXBzCmlm IHNwbGl0dGluZyBzcGFyc2VseS1wb3B1bGF0ZWQgbXVsdGlwbHktbWFwcGVk IHNobWVtLiAgT25jZSBjb25maWRlbnQKdGhhdCBidWdzIGFyZSBmaXhlZCwg VFRVX1NZTkMgaGVyZSBjYW4gYmUgcmVtb3ZlZCwgYW5kIHRoZSByYWNlCnRv bGVyYXRlZC4KCkxpbms6IGh0dHBzOi8vbGttbC5rZXJuZWwub3JnL3IvYzFl OTU4NTMtOGJjZC1kOGZkLTU1ZmEtZTdmMjQ4OGU3OGZAZ29vZ2xlLmNvbQpG aXhlczogZmVjODljMTA5ZjNhICgidGhwOiByZXdyaXRlIGZyZWV6ZV9wYWdl KCkvdW5mcmVlemVfcGFnZSgpIHdpdGggZ2VuZXJpYyBybWFwIHdhbGtlcnMi KQpTaWduZWQtb2ZmLWJ5OiBIdWdoIERpY2tpbnMgPGh1Z2hkQGdvb2dsZS5j b20+CkNjOiBBbGlzdGFpciBQb3BwbGUgPGFwb3BwbGVAbnZpZGlhLmNvbT4K Q2M6IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+CkNjOiBKdWUgV2FuZyA8anVl d0Bnb29nbGUuY29tPgpDYzogS2lyaWxsIEEuIFNodXRlbW92IDxraXJpbGwu c2h1dGVtb3ZAbGludXguaW50ZWwuY29tPgpDYzogIk1hdHRoZXcgV2lsY294 IChPcmFjbGUpIiA8d2lsbHlAaW5mcmFkZWFkLm9yZz4KQ2M6IE1pYW9oZSBM aW4gPGxpbm1pYW9oZUBodWF3ZWkuY29tPgpDYzogTWluY2hhbiBLaW0gPG1p bmNoYW5Aa2VybmVsLm9yZz4KQ2M6IE5hb3lhIEhvcmlndWNoaSA8bmFveWEu aG9yaWd1Y2hpQG5lYy5jb20+CkNjOiBPc2NhciBTYWx2YWRvciA8b3NhbHZh ZG9yQHN1c2UuZGU+CkNjOiBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+ CkNjOiBSYWxwaCBDYW1wYmVsbCA8cmNhbXBiZWxsQG52aWRpYS5jb20+CkNj OiBTaGFrZWVsIEJ1dHQgPHNoYWtlZWxiQGdvb2dsZS5jb20+CkNjOiBXYW5n IFl1Z3VpIDx3YW5neXVndWlAZTE2LXRlY2guY29tPgpDYzogWWFuZyBTaGkg PHNoeTgyODMwMUBnbWFpbC5jb20+CkNjOiBaaSBZYW4gPHppeUBudmlkaWEu Y29tPgpDYzogPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ClNpZ25lZC1vZmYt Ynk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+ ClNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51 eC1mb3VuZGF0aW9uLm9yZz4KCk5vdGUgb24gc3RhYmxlIGJhY2twb3J0OiB1 cHN0cmVhbSBUVFVfU1lOQyAweDEwIHRha2VzIHRoZSB2YWx1ZSB3aGljaAo1 LjExIGNvbW1pdCAwMTMzMzlkZjExNmMgKCJtbS9ybWFwOiBhbHdheXMgZG8g VFRVX0lHTk9SRV9BQ0NFU1MiKSBmcmVlZC4KSXQgaXMgdmVyeSB0ZW1wdGlu ZyB0byBiYWNrcG9ydCB0aGF0IGNvbW1pdCAoYXMgNS4xMCBhbHJlYWR5IGRp ZCkgYW5kCm1ha2Ugbm8gY2hhbmdlIGhlcmU7IGJ1dCBvbiByZWZsZWN0aW9u LCBnb29kIGFzIHRoYXQgY29tbWl0IGlzLCBJJ20KcmVsdWN0YW50IHRvIGlu Y2x1ZGUgYW55IHBvc3NpYmxlIHNpZGUtZWZmZWN0IG9mIGl0IGluIHRoaXMg c2VyaWVzLgoKU2lnbmVkLW9mZi1ieTogSHVnaCBEaWNraW5zIDxodWdoZEBn b29nbGUuY29tPgotLS0KIGluY2x1ZGUvbGludXgvcm1hcC5oIHwgIDMgKyst CiBtbS9odWdlX21lbW9yeS5jICAgICB8ICAyICstCiBtbS9wYWdlX3ZtYV9t YXBwZWQuYyB8IDExICsrKysrKysrKysrCiBtbS9ybWFwLmMgICAgICAgICAg ICB8IDE3ICsrKysrKysrKysrKysrKystCiA0IGZpbGVzIGNoYW5nZWQsIDMw IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC9ybWFwLmggYi9pbmNsdWRlL2xpbnV4L3JtYXAuaApp bmRleCBkN2Q2ZDRlYjE3OTQuLjkxY2NhZTk0NjcxNiAxMDA2NDQKLS0tIGEv aW5jbHVkZS9saW51eC9ybWFwLmgKKysrIGIvaW5jbHVkZS9saW51eC9ybWFw LmgKQEAgLTk4LDcgKzk4LDggQEAgZW51bSB0dHVfZmxhZ3MgewogCQkJCQkg KiBkbyBhIGZpbmFsIGZsdXNoIGlmIG5lY2Vzc2FyeSAqLwogCVRUVV9STUFQ X0xPQ0tFRAkJPSAweDgwLAkvKiBkbyBub3QgZ3JhYiBybWFwIGxvY2s6CiAJ CQkJCSAqIGNhbGxlciBob2xkcyBpdCAqLwotCVRUVV9TUExJVF9GUkVFWkUJ PSAweDEwMCwJCS8qIGZyZWV6ZSBwdGUgdW5kZXIgc3BsaXR0aW5nIHRocCAq LworCVRUVV9TUExJVF9GUkVFWkUJPSAweDEwMCwgLyogZnJlZXplIHB0ZSB1 bmRlciBzcGxpdHRpbmcgdGhwICovCisJVFRVX1NZTkMJCT0gMHgyMDAsIC8q IGF2b2lkIHJhY3kgY2hlY2tzIHdpdGggUFZNV19TWU5DICovCiB9OwogCiAj aWZkZWYgQ09ORklHX01NVQpkaWZmIC0tZ2l0IGEvbW0vaHVnZV9tZW1vcnku YyBiL21tL2h1Z2VfbWVtb3J5LmMKaW5kZXggNDdkOTUwNDhmMzFlLi45Y2I0 ZTFlN2UyODIgMTAwNjQ0Ci0tLSBhL21tL2h1Z2VfbWVtb3J5LmMKKysrIGIv bW0vaHVnZV9tZW1vcnkuYwpAQCAtMjQ2MSw3ICsyNDYxLDcgQEAgdm9pZCB2 bWFfYWRqdXN0X3RyYW5zX2h1Z2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEsCiBzdGF0aWMgdm9pZCB1bm1hcF9wYWdlKHN0cnVjdCBwYWdlICpwYWdl KQogewogCWVudW0gdHR1X2ZsYWdzIHR0dV9mbGFncyA9IFRUVV9JR05PUkVf TUxPQ0sgfCBUVFVfSUdOT1JFX0FDQ0VTUyB8Ci0JCVRUVV9STUFQX0xPQ0tF RCB8IFRUVV9TUExJVF9IVUdFX1BNRDsKKwkJVFRVX1JNQVBfTE9DS0VEIHwg VFRVX1NQTElUX0hVR0VfUE1EIHwgVFRVX1NZTkM7CiAJYm9vbCB1bm1hcF9z dWNjZXNzOwogCiAJVk1fQlVHX09OX1BBR0UoIVBhZ2VIZWFkKHBhZ2UpLCBw YWdlKTsKZGlmZiAtLWdpdCBhL21tL3BhZ2Vfdm1hX21hcHBlZC5jIGIvbW0v cGFnZV92bWFfbWFwcGVkLmMKaW5kZXggZWZmNGI0NTIwYzhkLi41YTJhMzcx YTJjOTggMTAwNjQ0Ci0tLSBhL21tL3BhZ2Vfdm1hX21hcHBlZC5jCisrKyBi L21tL3BhZ2Vfdm1hX21hcHBlZC5jCkBAIC0yMDcsNiArMjA3LDE3IEBAIGJv b2wgcGFnZV92bWFfbWFwcGVkX3dhbGsoc3RydWN0IHBhZ2Vfdm1hX21hcHBl ZF93YWxrICpwdm13KQogCQkJcHZtdy0+cHRsID0gTlVMTDsKIAkJfQogCX0g ZWxzZSBpZiAoIXBtZF9wcmVzZW50KHBtZGUpKSB7CisJCS8qCisJCSAqIElm IFBWTVdfU1lOQywgdGFrZSBhbmQgZHJvcCBUSFAgcG1kIGxvY2sgc28gdGhh dCB3ZQorCQkgKiBjYW5ub3QgcmV0dXJuIHByZW1hdHVyZWx5LCB3aGlsZSB6 YXBfaHVnZV9wbWQoKSBoYXMKKwkJICogY2xlYXJlZCAqcG1kIGJ1dCBub3Qg ZGVjcmVtZW50ZWQgY29tcG91bmRfbWFwY291bnQoKS4KKwkJICovCisJCWlm ICgocHZtdy0+ZmxhZ3MgJiBQVk1XX1NZTkMpICYmCisJCSAgICBQYWdlVHJh bnNDb21wb3VuZChwdm13LT5wYWdlKSkgeworCQkJc3BpbmxvY2tfdCAqcHRs ID0gcG1kX2xvY2sobW0sIHB2bXctPnBtZCk7CisKKwkJCXNwaW5fdW5sb2Nr KHB0bCk7CisJCX0KIAkJcmV0dXJuIGZhbHNlOwogCX0KIAlpZiAoIW1hcF9w dGUocHZtdykpCmRpZmYgLS1naXQgYS9tbS9ybWFwLmMgYi9tbS9ybWFwLmMK aW5kZXggY2JkZTExYzA2YTc2Li5jNjFhNjM4NGQ5NTAgMTAwNjQ0Ci0tLSBh L21tL3JtYXAuYworKysgYi9tbS9ybWFwLmMKQEAgLTEzNTMsNiArMTM1Mywx NSBAQCBzdGF0aWMgYm9vbCB0cnlfdG9fdW5tYXBfb25lKHN0cnVjdCBwYWdl ICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKIAlzdHJ1Y3Qg bW11X25vdGlmaWVyX3JhbmdlIHJhbmdlOwogCWVudW0gdHR1X2ZsYWdzIGZs YWdzID0gKGVudW0gdHR1X2ZsYWdzKWFyZzsKIAorCS8qCisJICogV2hlbiBy YWNpbmcgYWdhaW5zdCBlLmcuIHphcF9wdGVfcmFuZ2UoKSBvbiBhbm90aGVy IGNwdSwKKwkgKiBpbiBiZXR3ZWVuIGl0cyBwdGVwX2dldF9hbmRfY2xlYXJf ZnVsbCgpIGFuZCBwYWdlX3JlbW92ZV9ybWFwKCksCisJICogdHJ5X3RvX3Vu bWFwKCkgbWF5IHJldHVybiBmYWxzZSB3aGVuIGl0IGlzIGFib3V0IHRvIGJl Y29tZSB0cnVlLAorCSAqIGlmIHBhZ2UgdGFibGUgbG9ja2luZyBpcyBza2lw cGVkOiB1c2UgVFRVX1NZTkMgdG8gd2FpdCBmb3IgdGhhdC4KKwkgKi8KKwlp ZiAoZmxhZ3MgJiBUVFVfU1lOQykKKwkJcHZtdy5mbGFncyA9IFBWTVdfU1lO QzsKKwogCS8qIG11bmxvY2sgaGFzIG5vdGhpbmcgdG8gZ2FpbiBmcm9tIGV4 YW1pbmluZyB1bi1sb2NrZWQgdm1hcyAqLwogCWlmICgoZmxhZ3MgJiBUVFVf TVVOTE9DSykgJiYgISh2bWEtPnZtX2ZsYWdzICYgVk1fTE9DS0VEKSkKIAkJ cmV0dXJuIHRydWU7CkBAIC0xNzMxLDcgKzE3NDAsMTMgQEAgYm9vbCB0cnlf dG9fdW5tYXAoc3RydWN0IHBhZ2UgKnBhZ2UsIGVudW0gdHR1X2ZsYWdzIGZs YWdzKQogCWVsc2UKIAkJcm1hcF93YWxrKHBhZ2UsICZyd2MpOwogCi0JcmV0 dXJuICFwYWdlX21hcGNvdW50KHBhZ2UpID8gdHJ1ZSA6IGZhbHNlOworCS8q CisJICogV2hlbiByYWNpbmcgYWdhaW5zdCBlLmcuIHphcF9wdGVfcmFuZ2Uo KSBvbiBhbm90aGVyIGNwdSwKKwkgKiBpbiBiZXR3ZWVuIGl0cyBwdGVwX2dl dF9hbmRfY2xlYXJfZnVsbCgpIGFuZCBwYWdlX3JlbW92ZV9ybWFwKCksCisJ ICogdHJ5X3RvX3VubWFwKCkgbWF5IHJldHVybiBmYWxzZSB3aGVuIGl0IGlz IGFib3V0IHRvIGJlY29tZSB0cnVlLAorCSAqIGlmIHBhZ2UgdGFibGUgbG9j a2luZyBpcyBza2lwcGVkOiB1c2UgVFRVX1NZTkMgdG8gd2FpdCBmb3IgdGhh dC4KKwkgKi8KKwlyZXR1cm4gIXBhZ2VfbWFwY291bnQocGFnZSk7CiB9CiAK IC8qKgotLSAKMi4zMi4wLjI4OC5nNjJhOGQyMjRlNi1nb29nCgoAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ADUuMDQvUGF4SGVhZGVycy4yNDUxMy8wMDA4LW1tLXRocC1maXgtdm1hX2Fk ZHJlc3MtaWYtdmlydHVhbC1hZGRyZXNzLWJlbG93LWZpbGUucGF0Y2gAAAAA AAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAwMAAwMDAwMDAwMDA3 NAAxNDA2MzUzNDQ1NQAwMjQ2MjUAIHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAMzAgYXRpbWU9MTYyNDY2NjI4Mi44OTA3OTk1 NTEKMzAgY3RpbWU9MTYyNDI1MjUwOS41NDQxMzUwMzYKAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1LjA0LzAwMDgt bW0tdGhwLWZpeC12bWFfYWRkcmVzcy1pZi12aXJ0dWFsLWFkZHJlc3MtYmVs b3ctZmlsZS5wYXRjaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA MDAwMDY0MAAwMDAxNzUwADAwMDAxNDQAMDAwMDAwMjM1NTEAMTQwNjM1MzQ0 NTUAMDI1MjQxACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyADAwaHVnaAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB1c2VycwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAADAwMDAwMDAAMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAEZyb20gMDMzMTQ0OTdmYWUwYjY3NjRmZDExYjg0ODc4ZjAwMjdi ZjgzY2M0ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSHVnaCBE aWNraW5zIDxodWdoZEBnb29nbGUuY29tPgpEYXRlOiBUdWUsIDE1IEp1biAy MDIxIDE4OjIzOjU2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOC8yMl0gbW0v dGhwOiBmaXggdm1hX2FkZHJlc3MoKSBpZiB2aXJ0dWFsIGFkZHJlc3MgYmVs b3cgZmlsZQogb2Zmc2V0CgpbIFVwc3RyZWFtIGNvbW1pdCA0OTQzMzRlNDNj MTZkNjNiODc4NTM2YTI2NTA1Mzk3ZmNlNmZmM2EyIF0KClJ1bm5pbmcgY2Vy dGFpbiB0ZXN0cyB3aXRoIGEgREVCVUdfVk0ga2VybmVsIHdvdWxkIGNyYXNo IHdpdGhpbiBob3VycywKb24gdGhlIHRvdGFsX21hcGNvdW50IEJVRygpIGlu IHNwbGl0X2h1Z2VfcGFnZV90b19saXN0KCksIHdoaWxlIHRyeWluZwp0byBm cmVlIHVwIHNvbWUgbWVtb3J5IGJ5IHB1bmNoaW5nIGEgaG9sZSBpbiBhIHNo bWVtIGh1Z2UgcGFnZTogc3BsaXQncwp0cnlfdG9fdW5tYXAoKSB3YXMgdW5h YmxlIHRvIGZpbmQgYWxsIHRoZSBtYXBwaW5ncyBvZiB0aGUgcGFnZSAod2hp Y2gsCm9uIGEgIURFQlVHX1ZNIGtlcm5lbCwgd291bGQgdGhlbiBrZWVwIHRo ZSBodWdlIHBhZ2UgcGlubmVkIGluIG1lbW9yeSkuCgpXaGVuIHRoYXQgQlVH KCkgd2FzIGNoYW5nZWQgdG8gYSBXQVJOKCksIGl0IHdvdWxkIGxhdGVyIGNy YXNoIG9uIHRoZQpWTV9CVUdfT05fVk1BKGVuZCA8IHZtYS0+dm1fc3RhcnQg fHwgc3RhcnQgPj0gdm1hLT52bV9lbmQsIHZtYSkgaW4KbW0vaW50ZXJuYWwu aDp2bWFfYWRkcmVzcygpLCB1c2VkIGJ5IHJtYXBfd2Fsa19maWxlKCkgZm9y CnRyeV90b191bm1hcCgpLgoKdm1hX2FkZHJlc3MoKSBpcyB1c3VhbGx5IGNv cnJlY3QsIGJ1dCB0aGVyZSdzIGEgd3JhcGFyb3VuZCBjYXNlIHdoZW4gdGhl CnZtX3N0YXJ0IGFkZHJlc3MgaXMgdW51c3VhbGx5IGxvdywgYnV0IHZtX3Bn b2ZmIG5vdCBzbyBsb3c6CnZtYV9hZGRyZXNzKCkgY2hvb3NlcyBtYXgoc3Rh cnQsIHZtYS0+dm1fc3RhcnQpLCBidXQgdGhhdCBkZWNpZGVzIG9uIHRoZQp3 cm9uZyBhZGRyZXNzLCBiZWNhdXNlIHN0YXJ0IGhhcyBiZWNvbWUgYWxtb3N0 IFVMT05HX01BWC4KClJld3JpdGUgdm1hX2FkZHJlc3MoKSB0byBiZSBtb3Jl IGNhcmVmdWwgYWJvdXQgdm1fcGdvZmY7IG1vdmUgdGhlClZNX0JVR19PTl9W TUEoKSBvdXQgb2YgaXQsIHJldHVybmluZyAtRUZBVUxUIGZvciBlcnJvcnMs IHNvIHRoYXQgaXQgY2FuCmJlIHNhZmVseSB1c2VkIGZyb20gcGFnZV9tYXBw ZWRfaW5fdm1hKCkgYW5kIHBhZ2VfYWRkcmVzc19pbl92bWEoKSB0b28uCgpB ZGQgdm1hX2FkZHJlc3NfZW5kKCkgdG8gYXBwbHkgc2ltaWxhciBjYXJlIHRv IGVuZCBhZGRyZXNzIGNhbGN1bGF0aW9uLAppbiBwYWdlX3ZtYV9tYXBwZWRf d2FsaygpIGFuZCBwYWdlX21rY2xlYW5fb25lKCkgYW5kIHRyeV90b191bm1h cF9vbmUoKTsKdGhvdWdoIGl0IHJhaXNlcyBhIHF1ZXN0aW9uIG9mIHdoZXRo ZXIgY2FsbGVycyB3b3VsZCBkbyBiZXR0ZXIgdG8gc3VwcGx5CnB2bXctPmVu ZCB0byBwYWdlX3ZtYV9tYXBwZWRfd2FsaygpIC0gSSBjaG9zZSBub3QsIGZv ciBhIHNtYWxsZXIgcGF0Y2guCgpBbiBpcnJpdGF0aW9uIGlzIHRoYXQgdGhl aXIgYXBwYXJlbnQgZ2VuZXJhbGl0eSBicmVha3MgZG93biBvbiBLU00KcGFn ZXMsIHdoaWNoIGNhbm5vdCBiZSBsb2NhdGVkIGJ5IHRoZSBwYWdlLT5pbmRl eCB0aGF0IHBhZ2VfdG9fcGdvZmYoKQp1c2VzOiBhcyBjb21taXQgNGIwZWNl NmZhMDE2ICgibW06IG1pZ3JhdGU6IGZpeCByZW1vdmVfbWlncmF0aW9uX3B0 ZSgpCmZvciBrc20gcGFnZXMiKSBvbmNlIGRpc2NvdmVyZWQuICBJIGRpdGhl cmVkIG92ZXIgdGhlIGJlc3QgdGhpbmcgdG8gZG8KYWJvdXQgdGhhdCwgYW5k IGhhdmUgZW5kZWQgdXAgd2l0aCBhIFZNX0JVR19PTl9QQUdFKFBhZ2VLc20p IGluIGJvdGgKdm1hX2FkZHJlc3MoKSBhbmQgdm1hX2FkZHJlc3NfZW5kKCk7 IHRob3VnaCB0aGUgb25seSBwbGFjZSBpbiBkYW5nZXIgb2YKdXNpbmcgaXQg b24gdGhlbSB3YXMgdHJ5X3RvX3VubWFwX29uZSgpLgoKU2lkZW5vdGU6IHZt YV9hZGRyZXNzKCkgYW5kIHZtYV9hZGRyZXNzX2VuZCgpIG5vdyB1c2UgY29t cG91bmRfbnIoKSBvbiBhCmhlYWQgcGFnZSwgaW5zdGVhZCBvZiB0aHBfc2l6 ZSgpOiB0byBtYWtlIHRoZSByaWdodCBjYWxjdWxhdGlvbiBvbiBhCmh1Z2V0 bGJmcyBwYWdlLCB3aGV0aGVyIG9yIG5vdCBUSFBzIGFyZSBjb25maWd1cmVk LiAgdHJ5X3RvX3VubWFwKCkgaXMKdXNlZCBvbiBodWdldGxiZnMgcGFnZXMs IGJ1dCBwZXJoYXBzIHRoZSB3cm9uZyBjYWxjdWxhdGlvbiBuZXZlcgptYXR0 ZXJlZC4KCkxpbms6IGh0dHBzOi8vbGttbC5rZXJuZWwub3JnL3IvY2FmMWMx YTMtN2NmYi03ZjhmLTFiZWItYmE4MTZlOTMyODI1QGdvb2dsZS5jb20KRml4 ZXM6IGE4ZmE0MWFkMmY2ZiAoIm1tLCBybWFwOiBjaGVjayBhbGwgVk1BcyB0 aGF0IFBURS1tYXBwZWQgVEhQIGNhbiBiZSBwYXJ0IG9mIikKU2lnbmVkLW9m Zi1ieTogSHVnaCBEaWNraW5zIDxodWdoZEBnb29nbGUuY29tPgpBY2tlZC1i eTogS2lyaWxsIEEuIFNodXRlbW92IDxraXJpbGwuc2h1dGVtb3ZAbGludXgu aW50ZWwuY29tPgpDYzogQWxpc3RhaXIgUG9wcGxlIDxhcG9wcGxlQG52aWRp YS5jb20+CkNjOiBKYW4gS2FyYSA8amFja0BzdXNlLmN6PgpDYzogSnVlIFdh bmcgPGp1ZXdAZ29vZ2xlLmNvbT4KQ2M6ICJNYXR0aGV3IFdpbGNveCAoT3Jh Y2xlKSIgPHdpbGx5QGluZnJhZGVhZC5vcmc+CkNjOiBNaWFvaGUgTGluIDxs aW5taWFvaGVAaHVhd2VpLmNvbT4KQ2M6IE1pbmNoYW4gS2ltIDxtaW5jaGFu QGtlcm5lbC5vcmc+CkNjOiBOYW95YSBIb3JpZ3VjaGkgPG5hb3lhLmhvcmln dWNoaUBuZWMuY29tPgpDYzogT3NjYXIgU2FsdmFkb3IgPG9zYWx2YWRvckBz dXNlLmRlPgpDYzogUGV0ZXIgWHUgPHBldGVyeEByZWRoYXQuY29tPgpDYzog UmFscGggQ2FtcGJlbGwgPHJjYW1wYmVsbEBudmlkaWEuY29tPgpDYzogU2hh a2VlbCBCdXR0IDxzaGFrZWVsYkBnb29nbGUuY29tPgpDYzogV2FuZyBZdWd1 aSA8d2FuZ3l1Z3VpQGUxNi10ZWNoLmNvbT4KQ2M6IFlhbmcgU2hpIDxzaHk4 MjgzMDFAZ21haWwuY29tPgpDYzogWmkgWWFuIDx6aXlAbnZpZGlhLmNvbT4K Q2M6IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBB bmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpTaWdu ZWQtb2ZmLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91 bmRhdGlvbi5vcmc+CgpOb3RlIG9uIHN0YWJsZSBiYWNrcG9ydDogZml4ZWQg dXAgY29uZmxpY3RzIG9uIGludGVydmVuaW5nIHRocF9zaXplKCkuCgpTaWdu ZWQtb2ZmLWJ5OiBIdWdoIERpY2tpbnMgPGh1Z2hkQGdvb2dsZS5jb20+Ci0t LQogbW0vaW50ZXJuYWwuaCAgICAgICAgfCA1MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogbW0vcGFnZV92bWFfbWFw cGVkLmMgfCAxNiArKysrKy0tLS0tLS0tCiBtbS9ybWFwLmMgICAgICAgICAg ICB8IDE2ICsrKysrKy0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTMgaW5z ZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbW0v aW50ZXJuYWwuaCBiL21tL2ludGVybmFsLmgKaW5kZXggN2RkN2ZiYjU3N2E5 Li5jZjM4MjU0OWRkNzAgMTAwNjQ0Ci0tLSBhL21tL2ludGVybmFsLmgKKysr IGIvbW0vaW50ZXJuYWwuaApAQCAtMzM5LDI3ICszMzksNTIgQEAgc3RhdGlj IGlubGluZSB2b2lkIG1sb2NrX21pZ3JhdGVfcGFnZShzdHJ1Y3QgcGFnZSAq bmV3cGFnZSwgc3RydWN0IHBhZ2UgKnBhZ2UpCiBleHRlcm4gcG1kX3QgbWF5 YmVfcG1kX21rd3JpdGUocG1kX3QgcG1kLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSk7CiAKIC8qCi0gKiBBdCB3aGF0IHVzZXIgdmlydHVhbCBhZGRy ZXNzIGlzIHBhZ2UgZXhwZWN0ZWQgaW4gQHZtYT8KKyAqIEF0IHdoYXQgdXNl ciB2aXJ0dWFsIGFkZHJlc3MgaXMgcGFnZSBleHBlY3RlZCBpbiB2bWE/Cisg KiBSZXR1cm5zIC1FRkFVTFQgaWYgYWxsIG9mIHRoZSBwYWdlIGlzIG91dHNp ZGUgdGhlIHJhbmdlIG9mIHZtYS4KKyAqIElmIHBhZ2UgaXMgYSBjb21wb3Vu ZCBoZWFkLCB0aGUgZW50aXJlIGNvbXBvdW5kIHBhZ2UgaXMgY29uc2lkZXJl ZC4KICAqLwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCi1fX3ZtYV9h ZGRyZXNzKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKnZtYSkKK3ZtYV9hZGRyZXNzKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIHsKLQlwZ29mZl90IHBnb2ZmID0g cGFnZV90b19wZ29mZihwYWdlKTsKLQlyZXR1cm4gdm1hLT52bV9zdGFydCAr ICgocGdvZmYgLSB2bWEtPnZtX3Bnb2ZmKSA8PCBQQUdFX1NISUZUKTsKKwlw Z29mZl90IHBnb2ZmOworCXVuc2lnbmVkIGxvbmcgYWRkcmVzczsKKworCVZN X0JVR19PTl9QQUdFKFBhZ2VLc20ocGFnZSksIHBhZ2UpOwkvKiBLU00gcGFn ZS0+aW5kZXggdW51c2FibGUgKi8KKwlwZ29mZiA9IHBhZ2VfdG9fcGdvZmYo cGFnZSk7CisJaWYgKHBnb2ZmID49IHZtYS0+dm1fcGdvZmYpIHsKKwkJYWRk cmVzcyA9IHZtYS0+dm1fc3RhcnQgKworCQkJKChwZ29mZiAtIHZtYS0+dm1f cGdvZmYpIDw8IFBBR0VfU0hJRlQpOworCQkvKiBDaGVjayBmb3IgYWRkcmVz cyBiZXlvbmQgdm1hIChvciB3cmFwcGVkIHRocm91Z2ggMD8pICovCisJCWlm IChhZGRyZXNzIDwgdm1hLT52bV9zdGFydCB8fCBhZGRyZXNzID49IHZtYS0+ dm1fZW5kKQorCQkJYWRkcmVzcyA9IC1FRkFVTFQ7CisJfSBlbHNlIGlmIChQ YWdlSGVhZChwYWdlKSAmJgorCQkgICBwZ29mZiArIGNvbXBvdW5kX25yKHBh Z2UpIC0gMSA+PSB2bWEtPnZtX3Bnb2ZmKSB7CisJCS8qIFRlc3QgYWJvdmUg YXZvaWRzIHBvc3NpYmlsaXR5IG9mIHdyYXAgdG8gMCBvbiAzMi1iaXQgKi8K KwkJYWRkcmVzcyA9IHZtYS0+dm1fc3RhcnQ7CisJfSBlbHNlIHsKKwkJYWRk cmVzcyA9IC1FRkFVTFQ7CisJfQorCXJldHVybiBhZGRyZXNzOwogfQogCisv KgorICogVGhlbiBhdCB3aGF0IHVzZXIgdmlydHVhbCBhZGRyZXNzIHdpbGwg bm9uZSBvZiB0aGUgcGFnZSBiZSBmb3VuZCBpbiB2bWE/CisgKiBBc3N1bWVz IHRoYXQgdm1hX2FkZHJlc3MoKSBhbHJlYWR5IHJldHVybmVkIGEgZ29vZCBz dGFydGluZyBhZGRyZXNzLgorICogSWYgcGFnZSBpcyBhIGNvbXBvdW5kIGhl YWQsIHRoZSBlbnRpcmUgY29tcG91bmQgcGFnZSBpcyBjb25zaWRlcmVkLgor ICovCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKLXZtYV9hZGRyZXNz KHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSkKK3ZtYV9hZGRyZXNzX2VuZChzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0 IHZtX2FyZWFfc3RydWN0ICp2bWEpCiB7Ci0JdW5zaWduZWQgbG9uZyBzdGFy dCwgZW5kOwotCi0Jc3RhcnQgPSBfX3ZtYV9hZGRyZXNzKHBhZ2UsIHZtYSk7 Ci0JZW5kID0gc3RhcnQgKyBQQUdFX1NJWkUgKiAoaHBhZ2VfbnJfcGFnZXMo cGFnZSkgLSAxKTsKLQotCS8qIHBhZ2Ugc2hvdWxkIGJlIHdpdGhpbiBAdm1h IG1hcHBpbmcgcmFuZ2UgKi8KLQlWTV9CVUdfT05fVk1BKGVuZCA8IHZtYS0+ dm1fc3RhcnQgfHwgc3RhcnQgPj0gdm1hLT52bV9lbmQsIHZtYSk7Ci0KLQly ZXR1cm4gbWF4KHN0YXJ0LCB2bWEtPnZtX3N0YXJ0KTsKKwlwZ29mZl90IHBn b2ZmOworCXVuc2lnbmVkIGxvbmcgYWRkcmVzczsKKworCVZNX0JVR19PTl9Q QUdFKFBhZ2VLc20ocGFnZSksIHBhZ2UpOwkvKiBLU00gcGFnZS0+aW5kZXgg dW51c2FibGUgKi8KKwlwZ29mZiA9IHBhZ2VfdG9fcGdvZmYocGFnZSkgKyBj b21wb3VuZF9ucihwYWdlKTsKKwlhZGRyZXNzID0gdm1hLT52bV9zdGFydCAr ICgocGdvZmYgLSB2bWEtPnZtX3Bnb2ZmKSA8PCBQQUdFX1NISUZUKTsKKwkv KiBDaGVjayBmb3IgYWRkcmVzcyBiZXlvbmQgdm1hIChvciB3cmFwcGVkIHRo cm91Z2ggMD8pICovCisJaWYgKGFkZHJlc3MgPCB2bWEtPnZtX3N0YXJ0IHx8 IGFkZHJlc3MgPiB2bWEtPnZtX2VuZCkKKwkJYWRkcmVzcyA9IHZtYS0+dm1f ZW5kOworCXJldHVybiBhZGRyZXNzOwogfQogCiBzdGF0aWMgaW5saW5lIHN0 cnVjdCBmaWxlICptYXliZV91bmxvY2tfbW1hcF9mb3JfaW8oc3RydWN0IHZt X2ZhdWx0ICp2bWYsCmRpZmYgLS1naXQgYS9tbS9wYWdlX3ZtYV9tYXBwZWQu YyBiL21tL3BhZ2Vfdm1hX21hcHBlZC5jCmluZGV4IDVhMmEzNzFhMmM5OC4u ZDRlMDQ0MGZlZjJhIDEwMDY0NAotLS0gYS9tbS9wYWdlX3ZtYV9tYXBwZWQu YworKysgYi9tbS9wYWdlX3ZtYV9tYXBwZWQuYwpAQCAtMjIzLDE4ICsyMjMs MTggQEAgYm9vbCBwYWdlX3ZtYV9tYXBwZWRfd2FsayhzdHJ1Y3QgcGFnZV92 bWFfbWFwcGVkX3dhbGsgKnB2bXcpCiAJaWYgKCFtYXBfcHRlKHB2bXcpKQog CQlnb3RvIG5leHRfcHRlOwogCXdoaWxlICgxKSB7CisJCXVuc2lnbmVkIGxv bmcgZW5kOworCiAJCWlmIChjaGVja19wdGUocHZtdykpCiAJCQlyZXR1cm4g dHJ1ZTsKIG5leHRfcHRlOgogCQkvKiBTZWVrIHRvIG5leHQgcHRlIG9ubHkg bWFrZXMgc2Vuc2UgZm9yIFRIUCAqLwogCQlpZiAoIVBhZ2VUcmFuc0h1Z2Uo cHZtdy0+cGFnZSkgfHwgUGFnZUh1Z2UocHZtdy0+cGFnZSkpCiAJCQlyZXR1 cm4gbm90X2ZvdW5kKHB2bXcpOworCQllbmQgPSB2bWFfYWRkcmVzc19lbmQo cHZtdy0+cGFnZSwgcHZtdy0+dm1hKTsKIAkJZG8gewogCQkJcHZtdy0+YWRk cmVzcyArPSBQQUdFX1NJWkU7Ci0JCQlpZiAocHZtdy0+YWRkcmVzcyA+PSBw dm13LT52bWEtPnZtX2VuZCB8fAotCQkJICAgIHB2bXctPmFkZHJlc3MgPj0K LQkJCQkJX192bWFfYWRkcmVzcyhwdm13LT5wYWdlLCBwdm13LT52bWEpICsK LQkJCQkJaHBhZ2VfbnJfcGFnZXMocHZtdy0+cGFnZSkgKiBQQUdFX1NJWkUp CisJCQlpZiAocHZtdy0+YWRkcmVzcyA+PSBlbmQpCiAJCQkJcmV0dXJuIG5v dF9mb3VuZChwdm13KTsKIAkJCS8qIERpZCB3ZSBjcm9zcyBwYWdlIHRhYmxl IGJvdW5kYXJ5PyAqLwogCQkJaWYgKHB2bXctPmFkZHJlc3MgJSBQTURfU0la RSA9PSAwKSB7CkBAIC0yNzIsMTQgKzI3MiwxMCBAQCBpbnQgcGFnZV9tYXBw ZWRfaW5fdm1hKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSkKIAkJLnZtYSA9IHZtYSwKIAkJLmZsYWdzID0gUFZNV19T WU5DLAogCX07Ci0JdW5zaWduZWQgbG9uZyBzdGFydCwgZW5kOwotCi0Jc3Rh cnQgPSBfX3ZtYV9hZGRyZXNzKHBhZ2UsIHZtYSk7Ci0JZW5kID0gc3RhcnQg KyBQQUdFX1NJWkUgKiAoaHBhZ2VfbnJfcGFnZXMocGFnZSkgLSAxKTsKIAot CWlmICh1bmxpa2VseShlbmQgPCB2bWEtPnZtX3N0YXJ0IHx8IHN0YXJ0ID49 IHZtYS0+dm1fZW5kKSkKKwlwdm13LmFkZHJlc3MgPSB2bWFfYWRkcmVzcyhw YWdlLCB2bWEpOworCWlmIChwdm13LmFkZHJlc3MgPT0gLUVGQVVMVCkKIAkJ cmV0dXJuIDA7Ci0JcHZtdy5hZGRyZXNzID0gbWF4KHN0YXJ0LCB2bWEtPnZt X3N0YXJ0KTsKIAlpZiAoIXBhZ2Vfdm1hX21hcHBlZF93YWxrKCZwdm13KSkK IAkJcmV0dXJuIDA7CiAJcGFnZV92bWFfbWFwcGVkX3dhbGtfZG9uZSgmcHZt dyk7CmRpZmYgLS1naXQgYS9tbS9ybWFwLmMgYi9tbS9ybWFwLmMKaW5kZXgg YzYxYTYzODRkOTUwLi5kZmFkYzgzNjRhYTkgMTAwNjQ0Ci0tLSBhL21tL3Jt YXAuYworKysgYi9tbS9ybWFwLmMKQEAgLTY4Nyw3ICs2ODcsNiBAQCBzdGF0 aWMgYm9vbCBzaG91bGRfZGVmZXJfZmx1c2goc3RydWN0IG1tX3N0cnVjdCAq bW0sIGVudW0gdHR1X2ZsYWdzIGZsYWdzKQogICovCiB1bnNpZ25lZCBsb25n IHBhZ2VfYWRkcmVzc19pbl92bWEoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVj dCB2bV9hcmVhX3N0cnVjdCAqdm1hKQogewotCXVuc2lnbmVkIGxvbmcgYWRk cmVzczsKIAlpZiAoUGFnZUFub24ocGFnZSkpIHsKIAkJc3RydWN0IGFub25f dm1hICpwYWdlX19hbm9uX3ZtYSA9IHBhZ2VfYW5vbl92bWEocGFnZSk7CiAJ CS8qCkBAIC03MDIsMTAgKzcwMSw4IEBAIHVuc2lnbmVkIGxvbmcgcGFnZV9h ZGRyZXNzX2luX3ZtYShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHZtX2Fy ZWFfc3RydWN0ICp2bWEpCiAJCQlyZXR1cm4gLUVGQVVMVDsKIAl9IGVsc2UK IAkJcmV0dXJuIC1FRkFVTFQ7Ci0JYWRkcmVzcyA9IF9fdm1hX2FkZHJlc3Mo cGFnZSwgdm1hKTsKLQlpZiAodW5saWtlbHkoYWRkcmVzcyA8IHZtYS0+dm1f c3RhcnQgfHwgYWRkcmVzcyA+PSB2bWEtPnZtX2VuZCkpCi0JCXJldHVybiAt RUZBVUxUOwotCXJldHVybiBhZGRyZXNzOworCisJcmV0dXJuIHZtYV9hZGRy ZXNzKHBhZ2UsIHZtYSk7CiB9CiAKIHBtZF90ICptbV9maW5kX3BtZChzdHJ1 Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQpAQCAt ODk5LDcgKzg5Niw3IEBAIHN0YXRpYyBib29sIHBhZ2VfbWtjbGVhbl9vbmUo c3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1h LAogCSAqLwogCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwgTU1V X05PVElGWV9QUk9URUNUSU9OX1BBR0UsCiAJCQkJMCwgdm1hLCB2bWEtPnZt X21tLCBhZGRyZXNzLAotCQkJCW1pbih2bWEtPnZtX2VuZCwgYWRkcmVzcyAr IHBhZ2Vfc2l6ZShwYWdlKSkpOworCQkJCXZtYV9hZGRyZXNzX2VuZChwYWdl LCB2bWEpKTsKIAltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFy dCgmcmFuZ2UpOwogCiAJd2hpbGUgKHBhZ2Vfdm1hX21hcHBlZF93YWxrKCZw dm13KSkgewpAQCAtMTM4Myw5ICsxMzgwLDEwIEBAIHN0YXRpYyBib29sIHRy eV90b191bm1hcF9vbmUoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLAogCSAqIE5vdGUgdGhhdCB0aGUgcGFnZSBjYW4g bm90IGJlIGZyZWUgaW4gdGhpcyBmdW5jdGlvbiBhcyBjYWxsIG9mCiAJICog dHJ5X3RvX3VubWFwKCkgbXVzdCBob2xkIGEgcmVmZXJlbmNlIG9uIHRoZSBw YWdlLgogCSAqLworCXJhbmdlLmVuZCA9IFBhZ2VLc20ocGFnZSkgPworCQkJ YWRkcmVzcyArIFBBR0VfU0laRSA6IHZtYV9hZGRyZXNzX2VuZChwYWdlLCB2 bWEpOwogCW1tdV9ub3RpZmllcl9yYW5nZV9pbml0KCZyYW5nZSwgTU1VX05P VElGWV9DTEVBUiwgMCwgdm1hLCB2bWEtPnZtX21tLAotCQkJCWFkZHJlc3Ms Ci0JCQkJbWluKHZtYS0+dm1fZW5kLCBhZGRyZXNzICsgcGFnZV9zaXplKHBh Z2UpKSk7CisJCQkJYWRkcmVzcywgcmFuZ2UuZW5kKTsKIAlpZiAoUGFnZUh1 Z2UocGFnZSkpIHsKIAkJLyoKIAkJICogSWYgc2hhcmluZyBpcyBwb3NzaWJs ZSwgc3RhcnQgYW5kIGVuZCB3aWxsIGJlIGFkanVzdGVkCkBAIC0xODQzLDYg KzE4NDEsNyBAQCBzdGF0aWMgdm9pZCBybWFwX3dhbGtfYW5vbihzdHJ1Y3Qg cGFnZSAqcGFnZSwgc3RydWN0IHJtYXBfd2Fsa19jb250cm9sICpyd2MsCiAJ CXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gYXZjLT52bWE7CiAJCXVu c2lnbmVkIGxvbmcgYWRkcmVzcyA9IHZtYV9hZGRyZXNzKHBhZ2UsIHZtYSk7 CiAKKwkJVk1fQlVHX09OX1ZNQShhZGRyZXNzID09IC1FRkFVTFQsIHZtYSk7 CiAJCWNvbmRfcmVzY2hlZCgpOwogCiAJCWlmIChyd2MtPmludmFsaWRfdm1h ICYmIHJ3Yy0+aW52YWxpZF92bWEodm1hLCByd2MtPmFyZykpCkBAIC0xODk3 LDYgKzE4OTYsNyBAQCBzdGF0aWMgdm9pZCBybWFwX3dhbGtfZmlsZShzdHJ1 Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHJtYXBfd2Fsa19jb250cm9sICpyd2Ms CiAJCQlwZ29mZl9zdGFydCwgcGdvZmZfZW5kKSB7CiAJCXVuc2lnbmVkIGxv bmcgYWRkcmVzcyA9IHZtYV9hZGRyZXNzKHBhZ2UsIHZtYSk7CiAKKwkJVk1f QlVHX09OX1ZNQShhZGRyZXNzID09IC1FRkFVTFQsIHZtYSk7CiAJCWNvbmRf cmVzY2hlZCgpOwogCiAJCWlmIChyd2MtPmludmFsaWRfdm1hICYmIHJ3Yy0+ aW52YWxpZF92bWEodm1hLCByd2MtPmFyZykpCi0tIAoyLjMyLjAuMjg4Lmc2 MmE4ZDIyNGU2LWdvb2cKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1LjA0L1BheEhlYWRl cnMuMjQ1MTMvMDAxMC1tbS10aHAtdW5tYXBfbWFwcGluZ19wYWdlLXRvLWZp eC1USFAtdHJ1bmNhdGVfY2xlYW51LnBhdGNoAAAAAAAAAAAAAAAAAAAAMDAw MDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDAwNzQAMTQwNjM1MzQ0NTUA MDI0NjUyACB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyADAwAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAADMwIGF0aW1lPTE2MjQ2NjYyODIuODkwNzk5NTUxCjMwIGN0aW1lPTE2 MjQyNTI1MDkuNTQ0MTM1MDM2CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAANS4wNC8wMDEwLW1tLXRocC11bm1hcF9t YXBwaW5nX3BhZ2UtdG8tZml4LVRIUC10cnVuY2F0ZV9jbGVhbnUucGF0Y2gA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDAAMDAwMTc1 MAAwMDAwMTQ0ADAwMDAwMDI0MTc1ADE0MDYzNTM0NDU1ADAyNTI3MQAgMAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAB1c3RhcgAwMGh1Z2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAdXNlcnMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwADAw MDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGcm9tIGYx ZDZjMDYwMmY3YmM4ZTk2MTFkYWU3NWNkM2Q0YzAxMjFjODQxZWYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEh1Z2ggRGlja2lucyA8aHVnaGRA Z29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAxNSBKdW4gMjAyMSAxODoyNDowMyAt MDcwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjJdIG1tL3RocDogdW5tYXBfbWFw cGluZ19wYWdlKCkgdG8gZml4IFRIUAogdHJ1bmNhdGVfY2xlYW51cF9wYWdl KCkKClsgVXBzdHJlYW0gY29tbWl0IDIyMDYxYTFmZmFiZGI5YzMzODVkZTE1 OWM1ZGI3YWFjM2E0ZGYxY2MgXQoKVGhlcmUgaXMgYSByYWNlIGJldHdlZW4g VEhQIHVubWFwcGluZyBhbmQgdHJ1bmNhdGlvbiwgd2hlbiB0cnVuY2F0ZSBz ZWVzCnBtZF9ub25lKCkgYW5kIHNraXBzIHRoZSBlbnRyeSwgYWZ0ZXIgbXVu bWFwJ3MgemFwX2h1Z2VfcG1kKCkgY2xlYXJlZAppdCwgYnV0IGJlZm9yZSBp dHMgcGFnZV9yZW1vdmVfcm1hcCgpIGdldHMgdG8gZGVjcmVtZW50CmNvbXBv dW5kX21hcGNvdW50OiBnZW5lcmF0aW5nIGZhbHNlICJCVUc6IEJhZCBwYWdl IGNhY2hlIiByZXBvcnRzIHRoYXQKdGhlIHBhZ2UgaXMgc3RpbGwgbWFwcGVk IHdoZW4gZGVsZXRlZC4gIFRoaXMgY29tbWl0IGZpeGVzIHRoYXQsIGJ1dCBu b3QKaW4gdGhlIHdheSBJIGhvcGVkLgoKVGhlIGZpcnN0IGF0dGVtcHQgdXNl ZCB0cnlfdG9fdW5tYXAocGFnZSwgVFRVX1NZTkN8VFRVX0lHTk9SRV9NTE9D SykKaW5zdGVhZCBvZiB1bm1hcF9tYXBwaW5nX3JhbmdlKCkgaW4gdHJ1bmNh dGVfY2xlYW51cF9wYWdlKCk6IGl0IGhhcwpvZnRlbiBiZWVuIGFuIGFubm95 YW5jZSB0aGF0IHdlIHVzdWFsbHkgY2FsbCB1bm1hcF9tYXBwaW5nX3Jhbmdl KCkgd2l0aApubyBwYWdlcyBsb2NrZWQsIGJ1dCB0aGVyZSBhcHBseSBpdCB0 byBhIHNpbmdsZSBsb2NrZWQgcGFnZS4KdHJ5X3RvX3VubWFwKCkgbG9va3Mg bW9yZSBzdWl0YWJsZSBmb3IgYSBzaW5nbGUgbG9ja2VkIHBhZ2UuCgpIb3dl dmVyLCB0cnlfdG9fdW5tYXBfb25lKCkgY29udGFpbnMgYSBWTV9CVUdfT05f UEFHRSghcHZtdy5wdGUscGFnZSk6Cml0IGlzIHVzZWQgdG8gaW5zZXJ0IFRI UCBtaWdyYXRpb24gZW50cmllcywgYnV0IG5vdCB1c2VkIHRvIHVubWFwIFRI UHMuCkNvcHkgemFwX2h1Z2VfcG1kKCkgYW5kIGFkZCBUSFAgaGFuZGxpbmcg bm93PyBQZXJoYXBzLCBidXQgdGhlaXIgVExCCm5lZWRzIGFyZSBkaWZmZXJl bnQsIEknbSB0b28gaWdub3JhbnQgb2YgdGhlIERBWCBjYXNlcywgYW5kIGNv dWxkbid0CmRlY2lkZSBob3cgZmFyIHRvIGdvIGZvciBhbm9uK3N3YXAuICBT ZXQgdGhhdCBhc2lkZS4KClRoZSBzZWNvbmQgYXR0ZW1wdCB0b29rIGEgZGlm ZmVyZW50IHRhY2s6IG1ha2Ugbm8gY2hhbmdlIGluIHRydW5jYXRlLmMsCmJ1 dCBtb2RpZnkgemFwX2h1Z2VfcG1kKCkgdG8gaW5zZXJ0IGFuIGludmFsaWRh dGVkIGh1Z2UgcG1kIGluc3RlYWQgb2YKY2xlYXJpbmcgaXQgaW5pdGlhbGx5 LCB0aGVuIHBtZF9jbGVhcigpIGJldHdlZW4gcGFnZV9yZW1vdmVfcm1hcCgp IGFuZAp1bmxvY2tpbmcgYXQgdGhlIGVuZC4gIE5pY2UuICBCdXQgcG93ZXJw YyBibG93cyB0aGF0IGFwcHJvYWNoIG91dCBvZiB0aGUKd2F0ZXIsIHdpdGgg aXRzIHNlcmlhbGl6ZV9hZ2FpbnN0X3B0ZV9sb29rdXAoKSwgYW5kIGludGVy ZXN0aW5nIHBndGFibGUKdXNhZ2UuICBJdCB3b3VsZCBuZWVkIHNlcmlvdXMg aGVscCB0byBnZXQgd29ya2luZyBvbiBwb3dlcnBjICh3aXRoIGEKbWlub3Ig b3B0aW1pemF0aW9uIGlzc3VlIG9uIHMzOTAgdG9vKS4gIFNldCB0aGF0IGFz aWRlLgoKSnVzdCBhZGQgYW4gImlmIChwYWdlX21hcHBlZChwYWdlKSkgc3lu Y2hyb25pemVfcmN1KCk7IiBvciBvdGhlciBzdWNoCmRlbGF5LCBhZnRlciB1 bm1hcHBpbmcgaW4gdHJ1bmNhdGVfY2xlYW51cF9wYWdlKCk/IFBlcmhhcHMs IGJ1dCB0aG91Z2gKdGhhdCdzIGxpa2VseSB0byByZWR1Y2Ugb3IgZWxpbWlu YXRlIHRoZSBudW1iZXIgb2YgaW5jaWRlbnRzLCBpdCB3b3VsZApnaXZlIGxl c3MgYXNzdXJhbmNlIG9mIHdoZXRoZXIgd2UgaGFkIGlkZW50aWZpZWQgdGhl IHByb2JsZW0gY29ycmVjdGx5LgoKVGhpcyBzdWNjZXNzZnVsIGl0ZXJhdGlv biBpbnRyb2R1Y2VzICJ1bm1hcF9tYXBwaW5nX3BhZ2UocGFnZSkiIGluc3Rl YWQKb2YgdHJ5X3RvX3VubWFwKCksIGFuZCBnb2VzIHRoZSB1c3VhbCB1bm1h cF9tYXBwaW5nX3JhbmdlX3RyZWUoKSByb3V0ZSwKd2l0aCBhbiBhZGRpdGlv biB0byBkZXRhaWxzLiAgVGhlbiB6YXBfcG1kX3JhbmdlKCkgd2F0Y2hlcyBm b3IgdGhpcwpjYXNlLCBhbmQgZG9lcyBzcGluX3VubG9jayhwbWRfbG9jaykg aWYgc28gLSBqdXN0IGxpa2UKcGFnZV92bWFfbWFwcGVkX3dhbGsoKSBub3cg ZG9lcyBpbiB0aGUgUFZNV19TWU5DIGNhc2UuICBOb3QgcHJldHR5LCBidXQK c2FmZS4KCk5vdGUgdGhhdCB1bm1hcF9tYXBwaW5nX3BhZ2UoKSBpcyBkb2lu ZyBhIFZNX0JVR19PTighUGFnZUxvY2tlZCkgdG8KYXNzZXJ0IGl0cyBpbnRl cmZhY2U7IGJ1dCBjdXJyZW50bHkgdGhhdCdzIG9ubHkgdXNlZCB0byBtYWtl IHN1cmUgdGhhdApwYWdlLT5tYXBwaW5nIGlzIHN0YWJsZSwgYW5kIHphcF9w bWRfcmFuZ2UoKSBkb2Vzbid0IGNhcmUgaWYgdGhlIHBhZ2UgaXMKbG9ja2Vk IG9yIG5vdC4gIEFsb25nIHRoZXNlIGxpbmVzLCBpbiBpbnZhbGlkYXRlX2lu b2RlX3BhZ2VzMl9yYW5nZSgpCm1vdmUgdGhlIGluaXRpYWwgdW5tYXBfbWFw cGluZ19yYW5nZSgpIG91dCBmcm9tIHVuZGVyIHBhZ2UgbG9jaywgYmVmb3Jl CnRoZW4gY2FsbGluZyB1bm1hcF9tYXBwaW5nX3BhZ2UoKSB1bmRlciBwYWdl IGxvY2sgaWYgc3RpbGwgbWFwcGVkLgoKTGluazogaHR0cHM6Ly9sa21sLmtl cm5lbC5vcmcvci9hMmE0YTE0OC1jZGQ4LTk0MmMtNGVmOC01MWI3N2Y2NDNk YmVAZ29vZ2xlLmNvbQpGaXhlczogZmMxMjdkYTA4NWMyICgidHJ1bmNhdGU6 IGhhbmRsZSBmaWxlIHRocCIpClNpZ25lZC1vZmYtYnk6IEh1Z2ggRGlja2lu cyA8aHVnaGRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IEtpcmlsbCBBLiBTaHV0 ZW1vdiA8a2lyaWxsLnNodXRlbW92QGxpbnV4LmludGVsLmNvbT4KUmV2aWV3 ZWQtYnk6IFlhbmcgU2hpIDxzaHk4MjgzMDFAZ21haWwuY29tPgpDYzogQWxp c3RhaXIgUG9wcGxlIDxhcG9wcGxlQG52aWRpYS5jb20+CkNjOiBKYW4gS2Fy YSA8amFja0BzdXNlLmN6PgpDYzogSnVlIFdhbmcgPGp1ZXdAZ29vZ2xlLmNv bT4KQ2M6ICJNYXR0aGV3IFdpbGNveCAoT3JhY2xlKSIgPHdpbGx5QGluZnJh ZGVhZC5vcmc+CkNjOiBNaWFvaGUgTGluIDxsaW5taWFvaGVAaHVhd2VpLmNv bT4KQ2M6IE1pbmNoYW4gS2ltIDxtaW5jaGFuQGtlcm5lbC5vcmc+CkNjOiBO YW95YSBIb3JpZ3VjaGkgPG5hb3lhLmhvcmlndWNoaUBuZWMuY29tPgpDYzog T3NjYXIgU2FsdmFkb3IgPG9zYWx2YWRvckBzdXNlLmRlPgpDYzogUGV0ZXIg WHUgPHBldGVyeEByZWRoYXQuY29tPgpDYzogUmFscGggQ2FtcGJlbGwgPHJj YW1wYmVsbEBudmlkaWEuY29tPgpDYzogU2hha2VlbCBCdXR0IDxzaGFrZWVs YkBnb29nbGUuY29tPgpDYzogV2FuZyBZdWd1aSA8d2FuZ3l1Z3VpQGUxNi10 ZWNoLmNvbT4KQ2M6IFppIFlhbiA8eml5QG52aWRpYS5jb20+CkNjOiA8c3Rh YmxlQHZnZXIua2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogQW5kcmV3IE1v cnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KU2lnbmVkLW9mZi1i eTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24u b3JnPgoKTm90ZSBvbiBzdGFibGUgYmFja3BvcnQ6IGZpeGVkIHVwIGNhbGwg dG8gdHJ1bmNhdGVfY2xlYW51cF9wYWdlKCkKaW4gdHJ1bmNhdGVfaW5vZGVf cGFnZXNfcmFuZ2UoKS4gIFVzZSBocGFnZV9ucl9wYWdlcygpIGluCnVubWFw X21hcHBpbmdfcGFnZSgpLgoKU2lnbmVkLW9mZi1ieTogSHVnaCBEaWNraW5z IDxodWdoZEBnb29nbGUuY29tPgotLS0KIGluY2x1ZGUvbGludXgvbW0uaCB8 ICAzICsrKwogbW0vbWVtb3J5LmMgICAgICAgIHwgNDEgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIG1tL3RydW5jYXRlLmMg ICAgICB8IDQzICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwg MjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9t bS5oIGIvaW5jbHVkZS9saW51eC9tbS5oCmluZGV4IDU1NjVkMTFmOTU0Mi4u YTdkNjI2YjRjYWQxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21tLmgK KysrIGIvaW5jbHVkZS9saW51eC9tbS5oCkBAIC0xNDU5LDYgKzE0NTksNyBA QCBzdHJ1Y3QgemFwX2RldGFpbHMgewogCXN0cnVjdCBhZGRyZXNzX3NwYWNl ICpjaGVja19tYXBwaW5nOwkvKiBDaGVjayBwYWdlLT5tYXBwaW5nIGlmIHNl dCAqLwogCXBnb2ZmX3QJZmlyc3RfaW5kZXg7CQkJLyogTG93ZXN0IHBhZ2Ut PmluZGV4IHRvIHVubWFwICovCiAJcGdvZmZfdCBsYXN0X2luZGV4OwkJCS8q IEhpZ2hlc3QgcGFnZS0+aW5kZXggdG8gdW5tYXAgKi8KKwlzdHJ1Y3QgcGFn ZSAqc2luZ2xlX3BhZ2U7CQkvKiBMb2NrZWQgcGFnZSB0byBiZSB1bm1hcHBl ZCAqLwogfTsKIAogc3RydWN0IHBhZ2UgKnZtX25vcm1hbF9wYWdlKHN0cnVj dCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCkBA IC0xNTA1LDYgKzE1MDYsNyBAQCBleHRlcm4gdm1fZmF1bHRfdCBoYW5kbGVf bW1fZmF1bHQoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiBleHRlcm4g aW50IGZpeHVwX3VzZXJfZmF1bHQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ss IHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLAogCQkJICAgIHVuc2lnbmVkIGxvbmcg YWRkcmVzcywgdW5zaWduZWQgaW50IGZhdWx0X2ZsYWdzLAogCQkJICAgIGJv b2wgKnVubG9ja2VkKTsKK3ZvaWQgdW5tYXBfbWFwcGluZ19wYWdlKHN0cnVj dCBwYWdlICpwYWdlKTsKIHZvaWQgdW5tYXBfbWFwcGluZ19wYWdlcyhzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJcGdvZmZfdCBzdGFydCwg cGdvZmZfdCBuciwgYm9vbCBldmVuX2Nvd3MpOwogdm9pZCB1bm1hcF9tYXBw aW5nX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLApAQCAt MTUyNSw2ICsxNTI3LDcgQEAgc3RhdGljIGlubGluZSBpbnQgZml4dXBfdXNl cl9mYXVsdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywKIAlCVUcoKTsKIAly ZXR1cm4gLUVGQVVMVDsKIH0KK3N0YXRpYyBpbmxpbmUgdm9pZCB1bm1hcF9t YXBwaW5nX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpIHsgfQogc3RhdGljIGlu bGluZSB2b2lkIHVubWFwX21hcHBpbmdfcGFnZXMoc3RydWN0IGFkZHJlc3Nf c3BhY2UgKm1hcHBpbmcsCiAJCXBnb2ZmX3Qgc3RhcnQsIHBnb2ZmX3QgbnIs IGJvb2wgZXZlbl9jb3dzKSB7IH0KIHN0YXRpYyBpbmxpbmUgdm9pZCB1bm1h cF9tYXBwaW5nX3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n LApkaWZmIC0tZ2l0IGEvbW0vbWVtb3J5LmMgYi9tbS9tZW1vcnkuYwppbmRl eCAxM2E1NzVjZTJlYzguLjRiYjdjNmEzNjRjOCAxMDA2NDQKLS0tIGEvbW0v bWVtb3J5LmMKKysrIGIvbW0vbWVtb3J5LmMKQEAgLTExNjUsNyArMTE2NSwx OCBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgemFwX3BtZF9yYW5n ZShzdHJ1Y3QgbW11X2dhdGhlciAqdGxiLAogCQkJZWxzZSBpZiAoemFwX2h1 Z2VfcG1kKHRsYiwgdm1hLCBwbWQsIGFkZHIpKQogCQkJCWdvdG8gbmV4dDsK IAkJCS8qIGZhbGwgdGhyb3VnaCAqLworCQl9IGVsc2UgaWYgKGRldGFpbHMg JiYgZGV0YWlscy0+c2luZ2xlX3BhZ2UgJiYKKwkJCSAgIFBhZ2VUcmFuc0Nv bXBvdW5kKGRldGFpbHMtPnNpbmdsZV9wYWdlKSAmJgorCQkJICAgbmV4dCAt IGFkZHIgPT0gSFBBR0VfUE1EX1NJWkUgJiYgcG1kX25vbmUoKnBtZCkpIHsK KwkJCXNwaW5sb2NrX3QgKnB0bCA9IHBtZF9sb2NrKHRsYi0+bW0sIHBtZCk7 CisJCQkvKgorCQkJICogVGFrZSBhbmQgZHJvcCBUSFAgcG1kIGxvY2sgc28g dGhhdCB3ZSBjYW5ub3QgcmV0dXJuCisJCQkgKiBwcmVtYXR1cmVseSwgd2hp bGUgemFwX2h1Z2VfcG1kKCkgaGFzIGNsZWFyZWQgKnBtZCwKKwkJCSAqIGJ1 dCBub3QgeWV0IGRlY3JlbWVudGVkIGNvbXBvdW5kX21hcGNvdW50KCkuCisJ CQkgKi8KKwkJCXNwaW5fdW5sb2NrKHB0bCk7CiAJCX0KKwogCQkvKgogCQkg KiBIZXJlIHRoZXJlIGNhbiBiZSBvdGhlciBjb25jdXJyZW50IE1BRFZfRE9O VE5FRUQgb3IKIAkJICogdHJhbnMgaHVnZSBwYWdlIGZhdWx0cyBydW5uaW5n LCBhbmQgaWYgdGhlIHBtZCBpcwpAQCAtMjc2OSw2ICsyNzgwLDM2IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCB1bm1hcF9tYXBwaW5nX3JhbmdlX3RyZWUoc3Ry dWN0IHJiX3Jvb3RfY2FjaGVkICpyb290LAogCX0KIH0KIAorLyoqCisgKiB1 bm1hcF9tYXBwaW5nX3BhZ2UoKSAtIFVubWFwIHNpbmdsZSBwYWdlIGZyb20g cHJvY2Vzc2VzLgorICogQHBhZ2U6IFRoZSBsb2NrZWQgcGFnZSB0byBiZSB1 bm1hcHBlZC4KKyAqCisgKiBVbm1hcCB0aGlzIHBhZ2UgZnJvbSBhbnkgdXNl cnNwYWNlIHByb2Nlc3Mgd2hpY2ggc3RpbGwgaGFzIGl0IG1tYXBlZC4KKyAq IFR5cGljYWxseSwgZm9yIGVmZmljaWVuY3ksIHRoZSByYW5nZSBvZiBuZWFy YnkgcGFnZXMgaGFzIGFscmVhZHkgYmVlbgorICogdW5tYXBwZWQgYnkgdW5t YXBfbWFwcGluZ19wYWdlcygpIG9yIHVubWFwX21hcHBpbmdfcmFuZ2UoKS4g IEJ1dCBvbmNlCisgKiB0cnVuY2F0aW9uIG9yIGludmFsaWRhdGlvbiBob2xk cyB0aGUgbG9jayBvbiBhIHBhZ2UsIGl0IG1heSBmaW5kIHRoYXQKKyAqIHRo ZSBwYWdlIGhhcyBiZWVuIHJlbWFwcGVkIGFnYWluOiBhbmQgdGhlbiB1c2Vz IHVubWFwX21hcHBpbmdfcGFnZSgpCisgKiB0byB1bm1hcCBpdCBmaW5hbGx5 LgorICovCit2b2lkIHVubWFwX21hcHBpbmdfcGFnZShzdHJ1Y3QgcGFnZSAq cGFnZSkKK3sKKwlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IHBh Z2UtPm1hcHBpbmc7CisJc3RydWN0IHphcF9kZXRhaWxzIGRldGFpbHMgPSB7 IH07CisKKwlWTV9CVUdfT04oIVBhZ2VMb2NrZWQocGFnZSkpOworCVZNX0JV R19PTihQYWdlVGFpbChwYWdlKSk7CisKKwlkZXRhaWxzLmNoZWNrX21hcHBp bmcgPSBtYXBwaW5nOworCWRldGFpbHMuZmlyc3RfaW5kZXggPSBwYWdlLT5p bmRleDsKKwlkZXRhaWxzLmxhc3RfaW5kZXggPSBwYWdlLT5pbmRleCArIGhw YWdlX25yX3BhZ2VzKHBhZ2UpIC0gMTsKKwlkZXRhaWxzLnNpbmdsZV9wYWdl ID0gcGFnZTsKKworCWlfbW1hcF9sb2NrX3dyaXRlKG1hcHBpbmcpOworCWlm ICh1bmxpa2VseSghUkJfRU1QVFlfUk9PVCgmbWFwcGluZy0+aV9tbWFwLnJi X3Jvb3QpKSkKKwkJdW5tYXBfbWFwcGluZ19yYW5nZV90cmVlKCZtYXBwaW5n LT5pX21tYXAsICZkZXRhaWxzKTsKKwlpX21tYXBfdW5sb2NrX3dyaXRlKG1h cHBpbmcpOworfQorCiAvKioKICAqIHVubWFwX21hcHBpbmdfcGFnZXMoKSAt IFVubWFwIHBhZ2VzIGZyb20gcHJvY2Vzc2VzLgogICogQG1hcHBpbmc6IFRo ZSBhZGRyZXNzIHNwYWNlIGNvbnRhaW5pbmcgcGFnZXMgdG8gYmUgdW5tYXBw ZWQuCmRpZmYgLS1naXQgYS9tbS90cnVuY2F0ZS5jIGIvbW0vdHJ1bmNhdGUu YwppbmRleCBkZDllYmMxZGEzNTYuLjRkNWFkZDdkOGFiNiAxMDA2NDQKLS0t IGEvbW0vdHJ1bmNhdGUuYworKysgYi9tbS90cnVuY2F0ZS5jCkBAIC0xNzMs MTMgKzE3MywxMCBAQCB2b2lkIGRvX2ludmFsaWRhdGVwYWdlKHN0cnVjdCBw YWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICogaXRzIGxvY2ss IGIpIHdoZW4gYSBjb25jdXJyZW50IGludmFsaWRhdGVfbWFwcGluZ19wYWdl cyBnb3QgdGhlcmUgZmlyc3QgYW5kCiAgKiBjKSB3aGVuIHRtcGZzIHN3aXp6 bGVzIGEgcGFnZSBiZXR3ZWVuIGEgdG1wZnMgaW5vZGUgYW5kIHN3YXBwZXJf c3BhY2UuCiAgKi8KLXN0YXRpYyB2b2lkCi10cnVuY2F0ZV9jbGVhbnVwX3Bh Z2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHN0cnVjdCBwYWdl ICpwYWdlKQorc3RhdGljIHZvaWQgdHJ1bmNhdGVfY2xlYW51cF9wYWdlKHN0 cnVjdCBwYWdlICpwYWdlKQogewotCWlmIChwYWdlX21hcHBlZChwYWdlKSkg ewotCQlwZ29mZl90IG5yID0gUGFnZVRyYW5zSHVnZShwYWdlKSA/IEhQQUdF X1BNRF9OUiA6IDE7Ci0JCXVubWFwX21hcHBpbmdfcGFnZXMobWFwcGluZywg cGFnZS0+aW5kZXgsIG5yLCBmYWxzZSk7Ci0JfQorCWlmIChwYWdlX21hcHBl ZChwYWdlKSkKKwkJdW5tYXBfbWFwcGluZ19wYWdlKHBhZ2UpOwogCiAJaWYg KHBhZ2VfaGFzX3ByaXZhdGUocGFnZSkpCiAJCWRvX2ludmFsaWRhdGVwYWdl KHBhZ2UsIDAsIFBBR0VfU0laRSk7CkBAIC0yMjQsNyArMjIxLDcgQEAgaW50 IHRydW5jYXRlX2lub2RlX3BhZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcsIHN0cnVjdCBwYWdlICpwYWdlKQogCWlmIChwYWdlLT5tYXBwaW5n ICE9IG1hcHBpbmcpCiAJCXJldHVybiAtRUlPOwogCi0JdHJ1bmNhdGVfY2xl YW51cF9wYWdlKG1hcHBpbmcsIHBhZ2UpOworCXRydW5jYXRlX2NsZWFudXBf cGFnZShwYWdlKTsKIAlkZWxldGVfZnJvbV9wYWdlX2NhY2hlKHBhZ2UpOwog CXJldHVybiAwOwogfQpAQCAtMzYyLDcgKzM1OSw3IEBAIHZvaWQgdHJ1bmNh dGVfaW5vZGVfcGFnZXNfcmFuZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcsCiAJCQlwYWdldmVjX2FkZCgmbG9ja2VkX3B2ZWMsIHBhZ2UpOwog CQl9CiAJCWZvciAoaSA9IDA7IGkgPCBwYWdldmVjX2NvdW50KCZsb2NrZWRf cHZlYyk7IGkrKykKLQkJCXRydW5jYXRlX2NsZWFudXBfcGFnZShtYXBwaW5n LCBsb2NrZWRfcHZlYy5wYWdlc1tpXSk7CisJCQl0cnVuY2F0ZV9jbGVhbnVw X3BhZ2UobG9ja2VkX3B2ZWMucGFnZXNbaV0pOwogCQlkZWxldGVfZnJvbV9w YWdlX2NhY2hlX2JhdGNoKG1hcHBpbmcsICZsb2NrZWRfcHZlYyk7CiAJCWZv ciAoaSA9IDA7IGkgPCBwYWdldmVjX2NvdW50KCZsb2NrZWRfcHZlYyk7IGkr KykKIAkJCXVubG9ja19wYWdlKGxvY2tlZF9wdmVjLnBhZ2VzW2ldKTsKQEAg LTcxNSw2ICs3MTIsMTYgQEAgaW50IGludmFsaWRhdGVfaW5vZGVfcGFnZXMy X3JhbmdlKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLAogCQkJCWNv bnRpbnVlOwogCQkJfQogCisJCQlpZiAoIWRpZF9yYW5nZV91bm1hcCAmJiBw YWdlX21hcHBlZChwYWdlKSkgeworCQkJCS8qCisJCQkJICogSWYgcGFnZSBp cyBtYXBwZWQsIGJlZm9yZSB0YWtpbmcgaXRzIGxvY2ssCisJCQkJICogemFw IHRoZSByZXN0IG9mIHRoZSBmaWxlIGluIG9uZSBoaXQuCisJCQkJICovCisJ CQkJdW5tYXBfbWFwcGluZ19wYWdlcyhtYXBwaW5nLCBpbmRleCwKKwkJCQkJ CSgxICsgZW5kIC0gaW5kZXgpLCBmYWxzZSk7CisJCQkJZGlkX3JhbmdlX3Vu bWFwID0gMTsKKwkJCX0KKwogCQkJbG9ja19wYWdlKHBhZ2UpOwogCQkJV0FS Tl9PTihwYWdlX3RvX2luZGV4KHBhZ2UpICE9IGluZGV4KTsKIAkJCWlmIChw YWdlLT5tYXBwaW5nICE9IG1hcHBpbmcpIHsKQEAgLTcyMiwyMyArNzI5LDEx IEBAIGludCBpbnZhbGlkYXRlX2lub2RlX3BhZ2VzMl9yYW5nZShzdHJ1Y3Qg YWRkcmVzc19zcGFjZSAqbWFwcGluZywKIAkJCQljb250aW51ZTsKIAkJCX0K IAkJCXdhaXRfb25fcGFnZV93cml0ZWJhY2socGFnZSk7Ci0JCQlpZiAocGFn ZV9tYXBwZWQocGFnZSkpIHsKLQkJCQlpZiAoIWRpZF9yYW5nZV91bm1hcCkg ewotCQkJCQkvKgotCQkJCQkgKiBaYXAgdGhlIHJlc3Qgb2YgdGhlIGZpbGUg aW4gb25lIGhpdC4KLQkJCQkJICovCi0JCQkJCXVubWFwX21hcHBpbmdfcGFn ZXMobWFwcGluZywgaW5kZXgsCi0JCQkJCQkoMSArIGVuZCAtIGluZGV4KSwg ZmFsc2UpOwotCQkJCQlkaWRfcmFuZ2VfdW5tYXAgPSAxOwotCQkJCX0gZWxz ZSB7Ci0JCQkJCS8qCi0JCQkJCSAqIEp1c3QgemFwIHRoaXMgcGFnZQotCQkJ CQkgKi8KLQkJCQkJdW5tYXBfbWFwcGluZ19wYWdlcyhtYXBwaW5nLCBpbmRl eCwKLQkJCQkJCQkJMSwgZmFsc2UpOwotCQkJCX0KLQkJCX0KKworCQkJaWYg KHBhZ2VfbWFwcGVkKHBhZ2UpKQorCQkJCXVubWFwX21hcHBpbmdfcGFnZShw YWdlKTsKIAkJCUJVR19PTihwYWdlX21hcHBlZChwYWdlKSk7CisKIAkJCXJl dDIgPSBkb19sYXVuZGVyX3BhZ2UobWFwcGluZywgcGFnZSk7CiAJCQlpZiAo cmV0MiA9PSAwKSB7CiAJCQkJaWYgKCFpbnZhbGlkYXRlX2NvbXBsZXRlX3Bh Z2UyKG1hcHBpbmcsIHBhZ2UpKQotLSAKMi4zMi4wLjI4OC5nNjJhOGQyMjRl Ni1nb29nCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1LjA0L1BheEhl YWRlcnMuMjQ1MTMvMDAxMS1tbS10aHAtcmVwbGFjZS1ERUJVR19WTS1CVUct d2l0aC1WTV9XQVJOLXdoZW4tdW5tYXAtLnBhdGNoAAAAAAAAAAAAAAAAAAAA MDAwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDAwNzQAMTQwNjM1MzQ0 NTUAMDIzNTQzACB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyADAwAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAADMwIGF0aW1lPTE2MjQ2NjYyODIuODkwNzk5NTUxCjMwIGN0aW1l PTE2MjQyNTI1MDkuNTQ0MTM1MDM2CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANS4wNC8wMDExLW1tLXRocC1yZXBs YWNlLURFQlVHX1ZNLUJVRy13aXRoLVZNX1dBUk4td2hlbi11bm1hcC0ucGF0 Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDAAMDAw MTc1MAAwMDAwMTQ0ADAwMDAwMDEwNDM2ADE0MDYzNTM0NDU1ADAyNDE1NQAg MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAB1c3RhcgAwMGh1Z2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAdXNlcnMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAw ADAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGcm9t IDkxN2FlZWE1ZWI0OTg5MjBjMTcyYjI1ZTBlMzZmODRlYmExNmRhNTcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFlhbmcgU2hpIDxzaHk4Mjgz MDFAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE1IEp1biAyMDIxIDE4OjI0OjA3 IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxMS8yMl0gbW06IHRocDogcmVwbGFj ZSBERUJVR19WTSBCVUcgd2l0aCBWTV9XQVJOIHdoZW4gdW5tYXAKIGZhaWxz IGZvciBzcGxpdAoKWyBVcHN0cmVhbSBjb21taXQgNTA0ZTA3MGRjMDhmNzU3 YmNjYWVkNmQwNWMwZjUzZWNiZmFjOGEyMyBdCgpXaGVuIGRlYnVnZ2luZyB0 aGUgYnVnIHJlcG9ydGVkIGJ5IFdhbmcgWXVndWkgWzFdLCB0cnlfdG9fdW5t YXAoKSBtYXkKZmFpbCwgYnV0IHRoZSBmaXJzdCBWTV9CVUdfT05fUEFHRSgp IGp1c3QgY2hlY2tzIHBhZ2VfbWFwY291bnQoKSBob3dldmVyCml0IG1heSBt aXNzIHRoZSBmYWlsdXJlIHdoZW4gaGVhZCBwYWdlIGlzIHVubWFwcGVkIGJ1 dCBvdGhlciBzdWJwYWdlIGlzCm1hcHBlZC4gIFRoZW4gdGhlIHNlY29uZCBE RUJVR19WTSBCVUcoKSB0aGF0IGNoZWNrIHRvdGFsIG1hcGNvdW50IHdvdWxk CmNhdGNoIGl0LiAgVGhpcyBtYXkgaW5jdXIgc29tZSBjb25mdXNpb24uCgpB cyB0aGlzIGlzIG5vdCBhIGZhdGFsIGlzc3VlLCBzbyBjb25zb2xpZGF0ZSB0 aGUgdHdvIERFQlVHX1ZNIGNoZWNrcwppbnRvIG9uZSBWTV9XQVJOX09OX09O Q0VfUEFHRSgpLgoKWzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4 LW1tLzIwMjEwNDEyMTgwNjU5LkI5RTMuNDA5NTA5RjRAZTE2LXRlY2guY29t LwoKTGluazogaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci9kMGYwZGI2OC05 OGI4LWViZmItMTZkYy1mMjlkZjI0Y2YwMTJAZ29vZ2xlLmNvbQpTaWduZWQt b2ZmLWJ5OiBZYW5nIFNoaSA8c2h5ODI4MzAxQGdtYWlsLmNvbT4KUmV2aWV3 ZWQtYnk6IFppIFlhbiA8eml5QG52aWRpYS5jb20+CkFja2VkLWJ5OiBLaXJp bGwgQS4gU2h1dGVtb3YgPGtpcmlsbC5zaHV0ZW1vdkBsaW51eC5pbnRlbC5j b20+ClNpZ25lZC1vZmYtYnk6IEh1Z2ggRGlja2lucyA8aHVnaGRAZ29vZ2xl LmNvbT4KQ2M6IEFsaXN0YWlyIFBvcHBsZSA8YXBvcHBsZUBudmlkaWEuY29t PgpDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KQ2M6IEp1ZSBXYW5nIDxq dWV3QGdvb2dsZS5jb20+CkNjOiAiTWF0dGhldyBXaWxjb3ggKE9yYWNsZSki IDx3aWxseUBpbmZyYWRlYWQub3JnPgpDYzogTWlhb2hlIExpbiA8bGlubWlh b2hlQGh1YXdlaS5jb20+CkNjOiBNaW5jaGFuIEtpbSA8bWluY2hhbkBrZXJu ZWwub3JnPgpDYzogTmFveWEgSG9yaWd1Y2hpIDxuYW95YS5ob3JpZ3VjaGlA bmVjLmNvbT4KQ2M6IE9zY2FyIFNhbHZhZG9yIDxvc2FsdmFkb3JAc3VzZS5k ZT4KQ2M6IFBldGVyIFh1IDxwZXRlcnhAcmVkaGF0LmNvbT4KQ2M6IFJhbHBo IENhbXBiZWxsIDxyY2FtcGJlbGxAbnZpZGlhLmNvbT4KQ2M6IFNoYWtlZWwg QnV0dCA8c2hha2VlbGJAZ29vZ2xlLmNvbT4KQ2M6IFdhbmcgWXVndWkgPHdh bmd5dWd1aUBlMTYtdGVjaC5jb20+CkNjOiA8c3RhYmxlQHZnZXIua2VybmVs Lm9yZz4KU2lnbmVkLW9mZi1ieTogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51 eC1mb3VuZGF0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogTGludXMgVG9ydmFs ZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgoKTm90ZSBvbiBz dGFibGUgYmFja3BvcnQ6IGZpeGVkIHVwIHZhcmlhYmxlcyBpbiBzcGxpdF9o dWdlX3BhZ2VfdG9fbGlzdCgpLAphbmQgZml4ZWQgdXAgdGhlIGNvbmZsaWN0 IG9uIHR0dV9mbGFncyBpbiB1bm1hcF9wYWdlKCkuCgpTaWduZWQtb2ZmLWJ5 OiBIdWdoIERpY2tpbnMgPGh1Z2hkQGdvb2dsZS5jb20+Ci0tLQogbW0vaHVn ZV9tZW1vcnkuYyB8IDI0ICsrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbW0vaHVnZV9tZW1vcnkuYyBiL21tL2h1Z2VfbWVt b3J5LmMKaW5kZXggOWNiNGUxZTdlMjgyLi44N2EwN2FhNjFiZTAgMTAwNjQ0 Ci0tLSBhL21tL2h1Z2VfbWVtb3J5LmMKKysrIGIvbW0vaHVnZV9tZW1vcnku YwpAQCAtMjQ2MiwxNSArMjQ2MiwxNSBAQCBzdGF0aWMgdm9pZCB1bm1hcF9w YWdlKHN0cnVjdCBwYWdlICpwYWdlKQogewogCWVudW0gdHR1X2ZsYWdzIHR0 dV9mbGFncyA9IFRUVV9JR05PUkVfTUxPQ0sgfCBUVFVfSUdOT1JFX0FDQ0VT UyB8CiAJCVRUVV9STUFQX0xPQ0tFRCB8IFRUVV9TUExJVF9IVUdFX1BNRCB8 IFRUVV9TWU5DOwotCWJvb2wgdW5tYXBfc3VjY2VzczsKIAogCVZNX0JVR19P Tl9QQUdFKCFQYWdlSGVhZChwYWdlKSwgcGFnZSk7CiAKIAlpZiAoUGFnZUFu b24ocGFnZSkpCiAJCXR0dV9mbGFncyB8PSBUVFVfU1BMSVRfRlJFRVpFOwog Ci0JdW5tYXBfc3VjY2VzcyA9IHRyeV90b191bm1hcChwYWdlLCB0dHVfZmxh Z3MpOwotCVZNX0JVR19PTl9QQUdFKCF1bm1hcF9zdWNjZXNzLCBwYWdlKTsK Kwl0cnlfdG9fdW5tYXAocGFnZSwgdHR1X2ZsYWdzKTsKKworCVZNX1dBUk5f T05fT05DRV9QQUdFKHBhZ2VfbWFwcGVkKHBhZ2UpLCBwYWdlKTsKIH0KIAog c3RhdGljIHZvaWQgcmVtYXBfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkKQEAg LTI3NDksNyArMjc0OSw3IEBAIGludCBzcGxpdF9odWdlX3BhZ2VfdG9fbGlz dChzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCkK IAlzdHJ1Y3QgZGVmZXJyZWRfc3BsaXQgKmRzX3F1ZXVlID0gZ2V0X2RlZmVy cmVkX3NwbGl0X3F1ZXVlKHBhZ2UpOwogCXN0cnVjdCBhbm9uX3ZtYSAqYW5v bl92bWEgPSBOVUxMOwogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n ID0gTlVMTDsKLQlpbnQgY291bnQsIG1hcGNvdW50LCBleHRyYV9waW5zLCBy ZXQ7CisJaW50IGV4dHJhX3BpbnMsIHJldDsKIAlib29sIG1sb2NrZWQ7CiAJ dW5zaWduZWQgbG9uZyBmbGFnczsKIAlwZ29mZl90IGVuZDsKQEAgLTI4MTEs NyArMjgxMSw2IEBAIGludCBzcGxpdF9odWdlX3BhZ2VfdG9fbGlzdChzdHJ1 Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCkKIAogCW1s b2NrZWQgPSBQYWdlTWxvY2tlZChwYWdlKTsKIAl1bm1hcF9wYWdlKGhlYWQp OwotCVZNX0JVR19PTl9QQUdFKGNvbXBvdW5kX21hcGNvdW50KGhlYWQpLCBo ZWFkKTsKIAogCS8qIE1ha2Ugc3VyZSB0aGUgcGFnZSBpcyBub3Qgb24gcGVy LUNQVSBwYWdldmVjIGFzIGl0IHRha2VzIHBpbiAqLwogCWlmIChtbG9ja2Vk KQpAQCAtMjgzNCw5ICsyODMzLDcgQEAgaW50IHNwbGl0X2h1Z2VfcGFnZV90 b19saXN0KHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbGlzdF9oZWFkICps aXN0KQogCiAJLyogUHJldmVudCBkZWZlcnJlZF9zcGxpdF9zY2FuKCkgdG91 Y2hpbmcgLT5fcmVmY291bnQgKi8KIAlzcGluX2xvY2soJmRzX3F1ZXVlLT5z cGxpdF9xdWV1ZV9sb2NrKTsKLQljb3VudCA9IHBhZ2VfY291bnQoaGVhZCk7 Ci0JbWFwY291bnQgPSB0b3RhbF9tYXBjb3VudChoZWFkKTsKLQlpZiAoIW1h cGNvdW50ICYmIHBhZ2VfcmVmX2ZyZWV6ZShoZWFkLCAxICsgZXh0cmFfcGlu cykpIHsKKwlpZiAocGFnZV9yZWZfZnJlZXplKGhlYWQsIDEgKyBleHRyYV9w aW5zKSkgewogCQlpZiAoIWxpc3RfZW1wdHkocGFnZV9kZWZlcnJlZF9saXN0 KGhlYWQpKSkgewogCQkJZHNfcXVldWUtPnNwbGl0X3F1ZXVlX2xlbi0tOwog CQkJbGlzdF9kZWwocGFnZV9kZWZlcnJlZF9saXN0KGhlYWQpKTsKQEAgLTI4 NTcsMTYgKzI4NTQsOSBAQCBpbnQgc3BsaXRfaHVnZV9wYWdlX3RvX2xpc3Qo c3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCiAJ CX0gZWxzZQogCQkJcmV0ID0gMDsKIAl9IGVsc2UgewotCQlpZiAoSVNfRU5B QkxFRChDT05GSUdfREVCVUdfVk0pICYmIG1hcGNvdW50KSB7Ci0JCQlwcl9h bGVydCgidG90YWxfbWFwY291bnQ6ICV1LCBwYWdlX2NvdW50KCk6ICV1XG4i LAotCQkJCQltYXBjb3VudCwgY291bnQpOwotCQkJaWYgKFBhZ2VUYWlsKHBh Z2UpKQotCQkJCWR1bXBfcGFnZShoZWFkLCBOVUxMKTsKLQkJCWR1bXBfcGFn ZShwYWdlLCAidG90YWxfbWFwY291bnQoaGVhZCkgPiAwIik7Ci0JCQlCVUco KTsKLQkJfQogCQlzcGluX3VubG9jaygmZHNfcXVldWUtPnNwbGl0X3F1ZXVl X2xvY2spOwotZmFpbDoJCWlmIChtYXBwaW5nKQorZmFpbDoKKwkJaWYgKG1h cHBpbmcpCiAJCQl4YV91bmxvY2soJm1hcHBpbmctPmlfcGFnZXMpOwogCQlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZwZ2RhdGEtPmxydV9sb2NrLCBmbGFn cyk7CiAJCXJlbWFwX3BhZ2UoaGVhZCk7Ci0tIAoyLjMyLjAuMjg4Lmc2MmE4 ZDIyNGU2LWdvb2cKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAA1LjA0L1BheEhlYWRlcnMuMjQ1MTMvMDAyMi1tbS1m dXRleC1maXgtc2hhcmVkLWZ1dGV4LXBnb2ZmLW9uLXNobWVtLWh1Z2UtcGFn ZS5wYXRjaAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwMDAwADAwMDAw MDAAMDAwMDAwMDAxMzIAMTQwNjU0NzAwMDUAMDI0MjA1ACB4AAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHVzdGFyADAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMwIG10aW1lPTE2MjQ2 NjYxMTcuMjQ1NzkxNzczCjMwIGF0aW1lPTE2MjQ2NjYyODIuODkwNzk5NTUx CjMwIGN0aW1lPTE2MjQ2NjYxMTcuMjQ5NzkxNzk4CgAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAANS4wNC8wMDIyLW1tLWZ1dGV4LWZpeC1zaGFyZWQtZnV0ZXgtcGdvZmYt b24tc2htZW0taHVnZS1wYWdlLnBhdGNoAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADAwMDA2NDAAMDAwMTc1MAAwMDAwMTQ0ADAwMDAwMDEz MDczADE0MDY1NDcwMDA1ADAyNDYyNAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMGh1 Z2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXNlcnMAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwADAwMDAwMDAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAABGcm9tIGEyMTg1ZjkzMDJjNGM2M2M5NDky Y2JhMzY3MTc2OTk2MTdlMzAyYTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEh1Z2ggRGlja2lucyA8aHVnaGRAZ29vZ2xlLmNvbT4KRGF0ZTog VGh1LCAyNCBKdW4gMjAyMSAxODozOTo1MiAtMDcwMApTdWJqZWN0OiBbUEFU Q0ggMjIvMjJdIG1tLCBmdXRleDogZml4IHNoYXJlZCBmdXRleCBwZ29mZiBv biBzaG1lbSBodWdlIHBhZ2UKClsgVXBzdHJlYW0gY29tbWl0IGZlMTliZDNk YWUzZDE1ZDJmYmZkYjNkZTg4MzlhNmVhMGZlOTQyNjQgXQoKSWYgbW9yZSB0 aGFuIG9uZSBmdXRleCBpcyBwbGFjZWQgb24gYSBzaG1lbSBodWdlIHBhZ2Us IGl0IGNhbiBoYXBwZW4KdGhhdCB3YWtpbmcgdGhlIHNlY29uZCB3YWtlcyB0 aGUgZmlyc3QgaW5zdGVhZCwgYW5kIGxlYXZlcyB0aGUgc2Vjb25kCndhaXRp bmc6IHRoZSBrZXkncyBzaGFyZWQucGdvZmYgaXMgd3JvbmcuCgpXaGVuIDMu MTEgY29tbWl0IDEzZDYwZjRiNmFiNSAoImZ1dGV4OiBUYWtlIGh1Z2VwYWdl cyBpbnRvIGFjY291bnQgd2hlbgpnZW5lcmF0aW5nIGZ1dGV4X2tleSIpLCB0 aGUgb25seSBzaGFyZWQgaHVnZSBwYWdlcyBjYW1lIGZyb20gaHVnZXRsYmZz LAphbmQgdGhlIGNvZGUgYWRkZWQgdG8gZGVhbCB3aXRoIGl0cyBleGNlcHRp b25hbCBwYWdlLT5pbmRleCB3YXMgcHV0IGludG8KaHVnZXRsYiBzb3VyY2Uu ICBUaGVuIHRoYXQgd2FzIG1pc3NlZCB3aGVuIDQuOCBhZGRlZCBzaG1lbSBo dWdlIHBhZ2VzLgoKcGFnZV90b19wZ29mZigpIGlzIHdoYXQgb3RoZXJzIHVz ZSBmb3IgdGhpcyBub3dhZGF5czogZXhjZXB0IHRoYXQsIGFzCmN1cnJlbnRs eSB3cml0dGVuLCBpdCBnaXZlcyB0aGUgcmlnaHQgYW5zd2VyIG9uIGh1Z2V0 bGJmcyBoZWFkLCBidXQKbm9uc2Vuc2Ugb24gaHVnZXRsYmZzIHRhaWxzLiAg Rml4IHRoYXQgYnkgY2FsbGluZyBodWdldGxiZnMtc3BlY2lmaWMKaHVnZXRs Yl9iYXNlcGFnZV9pbmRleCgpIG9uIFBhZ2VIdWdlIHRhaWxzIGFzIHdlbGwg YXMgb24gaGVhZC4KClllcywgaXQncyB1bmNvbnZlbnRpb25hbCB0byBkZWNs YXJlIGh1Z2V0bGJfYmFzZXBhZ2VfaW5kZXgoKSB0aGVyZSBpbgpwYWdlbWFw LmgsIHJhdGhlciB0aGFuIGluIGh1Z2V0bGIuaDsgYnV0IEkgZG8gbm90IGV4 cGVjdCBhbnl0aGluZyBidXQKcGFnZV90b19wZ29mZigpIGV2ZXIgdG8gbmVl ZCBpdC4KCltha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnOiBnaXZlIGh1Z2V0 bGJfYmFzZXBhZ2VfaW5kZXgoKSBwcm90b3R5cGUgdGhlIGNvcnJlY3Qgc2Nv cGVdCgpMaW5rOiBodHRwczovL2xrbWwua2VybmVsLm9yZy9yL2IxN2Q5NDZi LWQwOS0zMjZlLWI0MmEtNTI4ODRjMzZkZjMyQGdvb2dsZS5jb20KRml4ZXM6 IDgwMGQ4YzYzYjJlOSAoInNobWVtOiBhZGQgaHVnZSBwYWdlcyBzdXBwb3J0 IikKUmVwb3J0ZWQtYnk6IE5lZWwgTmF0dSA8bmVlbG5hdHVAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogSHVnaCBEaWNraW5zIDxodWdoZEBnb29nbGUu Y29tPgpSZXZpZXdlZC1ieTogTWF0dGhldyBXaWxjb3ggKE9yYWNsZSkgPHdp bGx5QGluZnJhZGVhZC5vcmc+CkFja2VkLWJ5OiBUaG9tYXMgR2xlaXhuZXIg PHRnbHhAbGludXRyb25peC5kZT4KQ2M6ICJLaXJpbGwgQS4gU2h1dGVtb3Yi IDxraXJpbGwuc2h1dGVtb3ZAbGludXguaW50ZWwuY29tPgpDYzogWmhhbmcg WWkgPHdldHB6eUBnbWFpbC5jb20+CkNjOiBNZWwgR29ybWFuIDxtZ29ybWFu QHRlY2hzaW5ndWxhcml0eS5uZXQ+CkNjOiBNaWtlIEtyYXZldHogPG1pa2Uu a3JhdmV0ekBvcmFjbGUuY29tPgpDYzogSW5nbyBNb2xuYXIgPG1pbmdvQHJl ZGhhdC5jb20+CkNjOiBQZXRlciBaaWpsc3RyYSA8cGV0ZXJ6QGluZnJhZGVh ZC5vcmc+CkNjOiBEYXJyZW4gSGFydCA8ZHZoYXJ0QGluZnJhZGVhZC5vcmc+ CkNjOiBEYXZpZGxvaHIgQnVlc28gPGRhdmVAc3Rnb2xhYnMubmV0PgpDYzog PHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IEFuZHJl dyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+ClNpZ25lZC1v ZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0 aW9uLm9yZz4KCk5vdGUgb24gc3RhYmxlIGJhY2twb3J0OiBsZWF2ZSByZWR1 bmRhbnQgI2luY2x1ZGUgPGxpbnV4L2h1Z2V0bGIuaD4KaW4ga2VybmVsL2Z1 dGV4LmMsIHRvIGF2b2lkIGNvbmZsaWN0IG92ZXIgdGhlIGhlYWRlciBmaWxl cyBpbmNsdWRlZC4KClNpZ25lZC1vZmYtYnk6IEh1Z2ggRGlja2lucyA8aHVn aGRAZ29vZ2xlLmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaCB8 IDE2IC0tLS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvcGFnZW1hcC5o IHwgMTMgKysrKysrKy0tLS0tLQoga2VybmVsL2Z1dGV4LmMgICAgICAgICAg fCAgMiArLQogbW0vaHVnZXRsYi5jICAgICAgICAgICAgfCAgNSArLS0tLQog NCBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaHVnZXRsYi5oIGIv aW5jbHVkZS9saW51eC9odWdldGxiLmgKaW5kZXggZmM3MTdhZWIyYjNkLi5h MDUxM2M0NDQ0NDYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaHVnZXRs Yi5oCisrKyBiL2luY2x1ZGUvbGludXgvaHVnZXRsYi5oCkBAIC00NjksMTcg KzQ2OSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGhzdGF0ZV9pbmRleChzdHJ1 Y3QgaHN0YXRlICpoKQogCXJldHVybiBoIC0gaHN0YXRlczsKIH0KIAotcGdv ZmZfdCBfX2Jhc2VwYWdlX2luZGV4KHN0cnVjdCBwYWdlICpwYWdlKTsKLQot LyogUmV0dXJuIHBhZ2UtPmluZGV4IGluIFBBR0VfU0laRSB1bml0cyAqLwot c3RhdGljIGlubGluZSBwZ29mZl90IGJhc2VwYWdlX2luZGV4KHN0cnVjdCBw YWdlICpwYWdlKQotewotCWlmICghUGFnZUNvbXBvdW5kKHBhZ2UpKQotCQly ZXR1cm4gcGFnZS0+aW5kZXg7Ci0KLQlyZXR1cm4gX19iYXNlcGFnZV9pbmRl eChwYWdlKTsKLX0KLQogZXh0ZXJuIGludCBkaXNzb2x2ZV9mcmVlX2h1Z2Vf cGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSk7CiBleHRlcm4gaW50IGRpc3NvbHZl X2ZyZWVfaHVnZV9wYWdlcyh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwKIAkJ CQkgICAgdW5zaWduZWQgbG9uZyBlbmRfcGZuKTsKQEAgLTY5NSwxMSArNjg0 LDYgQEAgc3RhdGljIGlubGluZSBpbnQgaHN0YXRlX2luZGV4KHN0cnVjdCBo c3RhdGUgKmgpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbmxpbmUgcGdv ZmZfdCBiYXNlcGFnZV9pbmRleChzdHJ1Y3QgcGFnZSAqcGFnZSkKLXsKLQly ZXR1cm4gcGFnZS0+aW5kZXg7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgaW50IGRp c3NvbHZlX2ZyZWVfaHVnZV9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKQogewog CXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wYWdlbWFw LmggYi9pbmNsdWRlL2xpbnV4L3BhZ2VtYXAuaAppbmRleCAzN2E0ZDllMzJj ZDMuLjg1NDNiMWFhYTUyOSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9w YWdlbWFwLmgKKysrIGIvaW5jbHVkZS9saW51eC9wYWdlbWFwLmgKQEAgLTM5 Nyw3ICszOTcsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlICpyZWFk X21hcHBpbmdfcGFnZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywK IH0KIAogLyoKLSAqIEdldCBpbmRleCBvZiB0aGUgcGFnZSB3aXRoIGluIHJh ZGl4LXRyZWUKKyAqIEdldCBpbmRleCBvZiB0aGUgcGFnZSB3aXRoaW4gcmFk aXgtdHJlZSAoYnV0IG5vdCBmb3IgaHVnZXRsYiBwYWdlcykuCiAgKiAoVE9E TzogcmVtb3ZlIG9uY2UgaHVnZXRsYiBwYWdlcyB3aWxsIGhhdmUgLT5pbmRl eCBpbiBQQUdFX1NJWkUpCiAgKi8KIHN0YXRpYyBpbmxpbmUgcGdvZmZfdCBw YWdlX3RvX2luZGV4KHN0cnVjdCBwYWdlICpwYWdlKQpAQCAtNDE2LDE1ICs0 MTYsMTYgQEAgc3RhdGljIGlubGluZSBwZ29mZl90IHBhZ2VfdG9faW5kZXgo c3RydWN0IHBhZ2UgKnBhZ2UpCiAJcmV0dXJuIHBnb2ZmOwogfQogCitleHRl cm4gcGdvZmZfdCBodWdldGxiX2Jhc2VwYWdlX2luZGV4KHN0cnVjdCBwYWdl ICpwYWdlKTsKKwogLyoKLSAqIEdldCB0aGUgb2Zmc2V0IGluIFBBR0VfU0la RS4KLSAqIChUT0RPOiBodWdlcGFnZSBzaG91bGQgaGF2ZSAtPmluZGV4IGlu IFBBR0VfU0laRSkKKyAqIEdldCB0aGUgb2Zmc2V0IGluIFBBR0VfU0laRSAo ZXZlbiBmb3IgaHVnZXRsYiBwYWdlcykuCisgKiAoVE9ETzogaHVnZXRsYiBw YWdlcyBzaG91bGQgaGF2ZSAtPmluZGV4IGluIFBBR0VfU0laRSkKICAqLwog c3RhdGljIGlubGluZSBwZ29mZl90IHBhZ2VfdG9fcGdvZmYoc3RydWN0IHBh Z2UgKnBhZ2UpCiB7Ci0JaWYgKHVubGlrZWx5KFBhZ2VIZWFkSHVnZShwYWdl KSkpCi0JCXJldHVybiBwYWdlLT5pbmRleCA8PCBjb21wb3VuZF9vcmRlcihw YWdlKTsKLQorCWlmICh1bmxpa2VseShQYWdlSHVnZShwYWdlKSkpCisJCXJl dHVybiBodWdldGxiX2Jhc2VwYWdlX2luZGV4KHBhZ2UpOwogCXJldHVybiBw YWdlX3RvX2luZGV4KHBhZ2UpOwogfQogCmRpZmYgLS1naXQgYS9rZXJuZWwv ZnV0ZXguYyBiL2tlcm5lbC9mdXRleC5jCmluZGV4IDM3NWU3ZTk4ZTMwMS4u ZjgyODc5YWU2NTc3IDEwMDY0NAotLS0gYS9rZXJuZWwvZnV0ZXguYworKysg Yi9rZXJuZWwvZnV0ZXguYwpAQCAtNzM3LDcgKzczNyw3IEBAIGdldF9mdXRl eF9rZXkodTMyIF9fdXNlciAqdWFkZHIsIGludCBmc2hhcmVkLCB1bmlvbiBm dXRleF9rZXkgKmtleSwgZW51bSBmdXRleF9hCiAKIAkJa2V5LT5ib3RoLm9m ZnNldCB8PSBGVVRfT0ZGX0lOT0RFOyAvKiBpbm9kZS1iYXNlZCBrZXkgKi8K IAkJa2V5LT5zaGFyZWQuaV9zZXEgPSBnZXRfaW5vZGVfc2VxdWVuY2VfbnVt YmVyKGlub2RlKTsKLQkJa2V5LT5zaGFyZWQucGdvZmYgPSBiYXNlcGFnZV9p bmRleCh0YWlsKTsKKwkJa2V5LT5zaGFyZWQucGdvZmYgPSBwYWdlX3RvX3Bn b2ZmKHRhaWwpOwogCQlyY3VfcmVhZF91bmxvY2soKTsKIAl9CiAKZGlmZiAt LWdpdCBhL21tL2h1Z2V0bGIuYyBiL21tL2h1Z2V0bGIuYwppbmRleCBmZTE1 ZTdkODIyMGEuLjk1YTMyNzQ5YWY0ZCAxMDA2NDQKLS0tIGEvbW0vaHVnZXRs Yi5jCisrKyBiL21tL2h1Z2V0bGIuYwpAQCAtMTQ2MSwxNSArMTQ2MSwxMiBA QCBpbnQgUGFnZUhlYWRIdWdlKHN0cnVjdCBwYWdlICpwYWdlX2hlYWQpCiAJ cmV0dXJuIGdldF9jb21wb3VuZF9wYWdlX2R0b3IocGFnZV9oZWFkKSA9PSBm cmVlX2h1Z2VfcGFnZTsKIH0KIAotcGdvZmZfdCBfX2Jhc2VwYWdlX2luZGV4 KHN0cnVjdCBwYWdlICpwYWdlKQorcGdvZmZfdCBodWdldGxiX2Jhc2VwYWdl X2luZGV4KHN0cnVjdCBwYWdlICpwYWdlKQogewogCXN0cnVjdCBwYWdlICpw YWdlX2hlYWQgPSBjb21wb3VuZF9oZWFkKHBhZ2UpOwogCXBnb2ZmX3QgaW5k ZXggPSBwYWdlX2luZGV4KHBhZ2VfaGVhZCk7CiAJdW5zaWduZWQgbG9uZyBj b21wb3VuZF9pZHg7CiAKLQlpZiAoIVBhZ2VIdWdlKHBhZ2VfaGVhZCkpCi0J CXJldHVybiBwYWdlX2luZGV4KHBhZ2UpOwotCiAJaWYgKGNvbXBvdW5kX29y ZGVyKHBhZ2VfaGVhZCkgPj0gTUFYX09SREVSKQogCQljb21wb3VuZF9pZHgg PSBwYWdlX3RvX3BmbihwYWdlKSAtIHBhZ2VfdG9fcGZuKHBhZ2VfaGVhZCk7 CiAJZWxzZQotLSAKMi4zMi4wLjI4OC5nNjJhOGQyMjRlNi1nb29nCgoAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0 LjE5L1BheEhlYWRlcnMuMjQ1MTMvMDAwNy1tbS10aHAtZml4LXZtYV9hZGRy ZXNzLWlmLXZpcnR1YWwtYWRkcmVzcy1iZWxvdy1maWxlLnBhdGNoAAAAAAAA AAAAAAAAAAAAMDAwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDAwNzMA MTQwNjM2NjUxNjEAMDI0NjI3ACB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyADAwAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADMwIGF0aW1lPTE2MjQ2NjYyODIuODkwNzk5NTUx CjI5IGN0aW1lPTE2MjQyNTI1MDkuNTQwMTM0OTcKAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANC4xOS8wMDA3LW1t LXRocC1maXgtdm1hX2FkZHJlc3MtaWYtdmlydHVhbC1hZGRyZXNzLWJlbG93 LWZpbGUucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw MDA2NDAAMDAwMTc1MAAwMDAwMTQ0ADAwMDAwMDIzNTYyADE0MDYzNjY1MTYx ADAyNTI0NgAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMGh1Z2gAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAdXNlcnMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAwMDAwMDAwADAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAABGcm9tIGI3MWFhYTdlZjJlNDg0NzFhNmMwY2E1MmVkMWQ2ZDAxNTI0 Njg2YTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEh1Z2ggRGlj a2lucyA8aHVnaGRAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAxNSBKdW4gMjAy MSAxODoyMzo1NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMjFdIG1tL3Ro cDogZml4IHZtYV9hZGRyZXNzKCkgaWYgdmlydHVhbCBhZGRyZXNzIGJlbG93 IGZpbGUKIG9mZnNldAoKWyBVcHN0cmVhbSBjb21taXQgNDk0MzM0ZTQzYzE2 ZDYzYjg3ODUzNmEyNjUwNTM5N2ZjZTZmZjNhMiBdCgpSdW5uaW5nIGNlcnRh aW4gdGVzdHMgd2l0aCBhIERFQlVHX1ZNIGtlcm5lbCB3b3VsZCBjcmFzaCB3 aXRoaW4gaG91cnMsCm9uIHRoZSB0b3RhbF9tYXBjb3VudCBCVUcoKSBpbiBz cGxpdF9odWdlX3BhZ2VfdG9fbGlzdCgpLCB3aGlsZSB0cnlpbmcKdG8gZnJl ZSB1cCBzb21lIG1lbW9yeSBieSBwdW5jaGluZyBhIGhvbGUgaW4gYSBzaG1l bSBodWdlIHBhZ2U6IHNwbGl0J3MKdHJ5X3RvX3VubWFwKCkgd2FzIHVuYWJs ZSB0byBmaW5kIGFsbCB0aGUgbWFwcGluZ3Mgb2YgdGhlIHBhZ2UgKHdoaWNo LApvbiBhICFERUJVR19WTSBrZXJuZWwsIHdvdWxkIHRoZW4ga2VlcCB0aGUg aHVnZSBwYWdlIHBpbm5lZCBpbiBtZW1vcnkpLgoKV2hlbiB0aGF0IEJVRygp IHdhcyBjaGFuZ2VkIHRvIGEgV0FSTigpLCBpdCB3b3VsZCBsYXRlciBjcmFz aCBvbiB0aGUKVk1fQlVHX09OX1ZNQShlbmQgPCB2bWEtPnZtX3N0YXJ0IHx8 IHN0YXJ0ID49IHZtYS0+dm1fZW5kLCB2bWEpIGluCm1tL2ludGVybmFsLmg6 dm1hX2FkZHJlc3MoKSwgdXNlZCBieSBybWFwX3dhbGtfZmlsZSgpIGZvcgp0 cnlfdG9fdW5tYXAoKS4KCnZtYV9hZGRyZXNzKCkgaXMgdXN1YWxseSBjb3Jy ZWN0LCBidXQgdGhlcmUncyBhIHdyYXBhcm91bmQgY2FzZSB3aGVuIHRoZQp2 bV9zdGFydCBhZGRyZXNzIGlzIHVudXN1YWxseSBsb3csIGJ1dCB2bV9wZ29m ZiBub3Qgc28gbG93Ogp2bWFfYWRkcmVzcygpIGNob29zZXMgbWF4KHN0YXJ0 LCB2bWEtPnZtX3N0YXJ0KSwgYnV0IHRoYXQgZGVjaWRlcyBvbiB0aGUKd3Jv bmcgYWRkcmVzcywgYmVjYXVzZSBzdGFydCBoYXMgYmVjb21lIGFsbW9zdCBV TE9OR19NQVguCgpSZXdyaXRlIHZtYV9hZGRyZXNzKCkgdG8gYmUgbW9yZSBj YXJlZnVsIGFib3V0IHZtX3Bnb2ZmOyBtb3ZlIHRoZQpWTV9CVUdfT05fVk1B KCkgb3V0IG9mIGl0LCByZXR1cm5pbmcgLUVGQVVMVCBmb3IgZXJyb3JzLCBz byB0aGF0IGl0IGNhbgpiZSBzYWZlbHkgdXNlZCBmcm9tIHBhZ2VfbWFwcGVk X2luX3ZtYSgpIGFuZCBwYWdlX2FkZHJlc3NfaW5fdm1hKCkgdG9vLgoKQWRk IHZtYV9hZGRyZXNzX2VuZCgpIHRvIGFwcGx5IHNpbWlsYXIgY2FyZSB0byBl bmQgYWRkcmVzcyBjYWxjdWxhdGlvbiwKaW4gcGFnZV92bWFfbWFwcGVkX3dh bGsoKSBhbmQgcGFnZV9ta2NsZWFuX29uZSgpIGFuZCB0cnlfdG9fdW5tYXBf b25lKCk7CnRob3VnaCBpdCByYWlzZXMgYSBxdWVzdGlvbiBvZiB3aGV0aGVy IGNhbGxlcnMgd291bGQgZG8gYmV0dGVyIHRvIHN1cHBseQpwdm13LT5lbmQg dG8gcGFnZV92bWFfbWFwcGVkX3dhbGsoKSAtIEkgY2hvc2Ugbm90LCBmb3Ig YSBzbWFsbGVyIHBhdGNoLgoKQW4gaXJyaXRhdGlvbiBpcyB0aGF0IHRoZWly IGFwcGFyZW50IGdlbmVyYWxpdHkgYnJlYWtzIGRvd24gb24gS1NNCnBhZ2Vz LCB3aGljaCBjYW5ub3QgYmUgbG9jYXRlZCBieSB0aGUgcGFnZS0+aW5kZXgg dGhhdCBwYWdlX3RvX3Bnb2ZmKCkKdXNlczogYXMgY29tbWl0IDRiMGVjZTZm YTAxNiAoIm1tOiBtaWdyYXRlOiBmaXggcmVtb3ZlX21pZ3JhdGlvbl9wdGUo KQpmb3Iga3NtIHBhZ2VzIikgb25jZSBkaXNjb3ZlcmVkLiAgSSBkaXRoZXJl ZCBvdmVyIHRoZSBiZXN0IHRoaW5nIHRvIGRvCmFib3V0IHRoYXQsIGFuZCBo YXZlIGVuZGVkIHVwIHdpdGggYSBWTV9CVUdfT05fUEFHRShQYWdlS3NtKSBp biBib3RoCnZtYV9hZGRyZXNzKCkgYW5kIHZtYV9hZGRyZXNzX2VuZCgpOyB0 aG91Z2ggdGhlIG9ubHkgcGxhY2UgaW4gZGFuZ2VyIG9mCnVzaW5nIGl0IG9u IHRoZW0gd2FzIHRyeV90b191bm1hcF9vbmUoKS4KClNpZGVub3RlOiB2bWFf YWRkcmVzcygpIGFuZCB2bWFfYWRkcmVzc19lbmQoKSBub3cgdXNlIGNvbXBv dW5kX25yKCkgb24gYQpoZWFkIHBhZ2UsIGluc3RlYWQgb2YgdGhwX3NpemUo KTogdG8gbWFrZSB0aGUgcmlnaHQgY2FsY3VsYXRpb24gb24gYQpodWdldGxi ZnMgcGFnZSwgd2hldGhlciBvciBub3QgVEhQcyBhcmUgY29uZmlndXJlZC4g IHRyeV90b191bm1hcCgpIGlzCnVzZWQgb24gaHVnZXRsYmZzIHBhZ2VzLCBi dXQgcGVyaGFwcyB0aGUgd3JvbmcgY2FsY3VsYXRpb24gbmV2ZXIKbWF0dGVy ZWQuCgpMaW5rOiBodHRwczovL2xrbWwua2VybmVsLm9yZy9yL2NhZjFjMWEz LTdjZmItN2Y4Zi0xYmViLWJhODE2ZTkzMjgyNUBnb29nbGUuY29tCkZpeGVz OiBhOGZhNDFhZDJmNmYgKCJtbSwgcm1hcDogY2hlY2sgYWxsIFZNQXMgdGhh dCBQVEUtbWFwcGVkIFRIUCBjYW4gYmUgcGFydCBvZiIpClNpZ25lZC1vZmYt Ynk6IEh1Z2ggRGlja2lucyA8aHVnaGRAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6 IEtpcmlsbCBBLiBTaHV0ZW1vdiA8a2lyaWxsLnNodXRlbW92QGxpbnV4Lmlu dGVsLmNvbT4KQ2M6IEFsaXN0YWlyIFBvcHBsZSA8YXBvcHBsZUBudmlkaWEu Y29tPgpDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KQ2M6IEp1ZSBXYW5n IDxqdWV3QGdvb2dsZS5jb20+CkNjOiAiTWF0dGhldyBXaWxjb3ggKE9yYWNs ZSkiIDx3aWxseUBpbmZyYWRlYWQub3JnPgpDYzogTWlhb2hlIExpbiA8bGlu bWlhb2hlQGh1YXdlaS5jb20+CkNjOiBNaW5jaGFuIEtpbSA8bWluY2hhbkBr ZXJuZWwub3JnPgpDYzogTmFveWEgSG9yaWd1Y2hpIDxuYW95YS5ob3JpZ3Vj aGlAbmVjLmNvbT4KQ2M6IE9zY2FyIFNhbHZhZG9yIDxvc2FsdmFkb3JAc3Vz ZS5kZT4KQ2M6IFBldGVyIFh1IDxwZXRlcnhAcmVkaGF0LmNvbT4KQ2M6IFJh bHBoIENhbXBiZWxsIDxyY2FtcGJlbGxAbnZpZGlhLmNvbT4KQ2M6IFNoYWtl ZWwgQnV0dCA8c2hha2VlbGJAZ29vZ2xlLmNvbT4KQ2M6IFdhbmcgWXVndWkg PHdhbmd5dWd1aUBlMTYtdGVjaC5jb20+CkNjOiBZYW5nIFNoaSA8c2h5ODI4 MzAxQGdtYWlsLmNvbT4KQ2M6IFppIFlhbiA8eml5QG52aWRpYS5jb20+CkNj OiA8c3RhYmxlQHZnZXIua2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogQW5k cmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KU2lnbmVk LW9mZi1ieTogTGludXMgVG9ydmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5k YXRpb24ub3JnPgoKTm90ZSBvbiBzdGFibGUgYmFja3BvcnQ6IGZpeGVkIHVw IGNvbmZsaWN0cyBvbiBpbnRlcnZlbmluZyB0aHBfc2l6ZSgpLAphbmQgbW11 X25vdGlmaWVyX3JhbmdlIGluaXRpYWxpemF0aW9uczsgc3Vic3RpdHV0ZSBm b3IgY29tcG91bmRfbnIoKS4KClNpZ25lZC1vZmYtYnk6IEh1Z2ggRGlja2lu cyA8aHVnaGRAZ29vZ2xlLmNvbT4KLS0tCiBtbS9pbnRlcm5hbC5oICAgICAg ICB8IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tCiBtbS9wYWdlX3ZtYV9tYXBwZWQuYyB8IDE2ICsrKysrLS0tLS0t LS0KIG1tL3JtYXAuYyAgICAgICAgICAgIHwgMTQgKysrKysrLS0tLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDUyIGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL21tL2ludGVybmFsLmggYi9tbS9pbnRlcm5h bC5oCmluZGV4IDM5NzE4M2M4ZmU0Ny4uM2EyZTk3MzEzOGQzIDEwMDY0NAot LS0gYS9tbS9pbnRlcm5hbC5oCisrKyBiL21tL2ludGVybmFsLmgKQEAgLTMz MSwyNyArMzMxLDUyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtbG9ja19taWdy YXRlX3BhZ2Uoc3RydWN0IHBhZ2UgKm5ld3BhZ2UsIHN0cnVjdCBwYWdlICpw YWdlKQogZXh0ZXJuIHBtZF90IG1heWJlX3BtZF9ta3dyaXRlKHBtZF90IHBt ZCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwogCiAvKgotICogQXQg d2hhdCB1c2VyIHZpcnR1YWwgYWRkcmVzcyBpcyBwYWdlIGV4cGVjdGVkIGlu IEB2bWE/CisgKiBBdCB3aGF0IHVzZXIgdmlydHVhbCBhZGRyZXNzIGlzIHBh Z2UgZXhwZWN0ZWQgaW4gdm1hPworICogUmV0dXJucyAtRUZBVUxUIGlmIGFs bCBvZiB0aGUgcGFnZSBpcyBvdXRzaWRlIHRoZSByYW5nZSBvZiB2bWEuCisg KiBJZiBwYWdlIGlzIGEgY29tcG91bmQgaGVhZCwgdGhlIGVudGlyZSBjb21w b3VuZCBwYWdlIGlzIGNvbnNpZGVyZWQuCiAgKi8KIHN0YXRpYyBpbmxpbmUg dW5zaWduZWQgbG9uZwotX192bWFfYWRkcmVzcyhzdHJ1Y3QgcGFnZSAqcGFn ZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit2bWFfYWRkcmVzcyhz dHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEp CiB7Ci0JcGdvZmZfdCBwZ29mZiA9IHBhZ2VfdG9fcGdvZmYocGFnZSk7Ci0J cmV0dXJuIHZtYS0+dm1fc3RhcnQgKyAoKHBnb2ZmIC0gdm1hLT52bV9wZ29m ZikgPDwgUEFHRV9TSElGVCk7CisJcGdvZmZfdCBwZ29mZjsKKwl1bnNpZ25l ZCBsb25nIGFkZHJlc3M7CisKKwlWTV9CVUdfT05fUEFHRShQYWdlS3NtKHBh Z2UpLCBwYWdlKTsJLyogS1NNIHBhZ2UtPmluZGV4IHVudXNhYmxlICovCisJ cGdvZmYgPSBwYWdlX3RvX3Bnb2ZmKHBhZ2UpOworCWlmIChwZ29mZiA+PSB2 bWEtPnZtX3Bnb2ZmKSB7CisJCWFkZHJlc3MgPSB2bWEtPnZtX3N0YXJ0ICsK KwkJCSgocGdvZmYgLSB2bWEtPnZtX3Bnb2ZmKSA8PCBQQUdFX1NISUZUKTsK KwkJLyogQ2hlY2sgZm9yIGFkZHJlc3MgYmV5b25kIHZtYSAob3Igd3JhcHBl ZCB0aHJvdWdoIDA/KSAqLworCQlpZiAoYWRkcmVzcyA8IHZtYS0+dm1fc3Rh cnQgfHwgYWRkcmVzcyA+PSB2bWEtPnZtX2VuZCkKKwkJCWFkZHJlc3MgPSAt RUZBVUxUOworCX0gZWxzZSBpZiAoUGFnZUhlYWQocGFnZSkgJiYKKwkJICAg cGdvZmYgKyAoMVVMIDw8IGNvbXBvdW5kX29yZGVyKHBhZ2UpKSAtIDEgPj0g dm1hLT52bV9wZ29mZikgeworCQkvKiBUZXN0IGFib3ZlIGF2b2lkcyBwb3Nz aWJpbGl0eSBvZiB3cmFwIHRvIDAgb24gMzItYml0ICovCisJCWFkZHJlc3Mg PSB2bWEtPnZtX3N0YXJ0OworCX0gZWxzZSB7CisJCWFkZHJlc3MgPSAtRUZB VUxUOworCX0KKwlyZXR1cm4gYWRkcmVzczsKIH0KIAorLyoKKyAqIFRoZW4g YXQgd2hhdCB1c2VyIHZpcnR1YWwgYWRkcmVzcyB3aWxsIG5vbmUgb2YgdGhl IHBhZ2UgYmUgZm91bmQgaW4gdm1hPworICogQXNzdW1lcyB0aGF0IHZtYV9h ZGRyZXNzKCkgYWxyZWFkeSByZXR1cm5lZCBhIGdvb2Qgc3RhcnRpbmcgYWRk cmVzcy4KKyAqIElmIHBhZ2UgaXMgYSBjb21wb3VuZCBoZWFkLCB0aGUgZW50 aXJlIGNvbXBvdW5kIHBhZ2UgaXMgY29uc2lkZXJlZC4KKyAqLwogc3RhdGlj IGlubGluZSB1bnNpZ25lZCBsb25nCi12bWFfYWRkcmVzcyhzdHJ1Y3QgcGFn ZSAqcGFnZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCit2bWFfYWRk cmVzc19lbmQoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hKQogewotCXVuc2lnbmVkIGxvbmcgc3RhcnQsIGVuZDsKLQot CXN0YXJ0ID0gX192bWFfYWRkcmVzcyhwYWdlLCB2bWEpOwotCWVuZCA9IHN0 YXJ0ICsgUEFHRV9TSVpFICogKGhwYWdlX25yX3BhZ2VzKHBhZ2UpIC0gMSk7 Ci0KLQkvKiBwYWdlIHNob3VsZCBiZSB3aXRoaW4gQHZtYSBtYXBwaW5nIHJh bmdlICovCi0JVk1fQlVHX09OX1ZNQShlbmQgPCB2bWEtPnZtX3N0YXJ0IHx8 IHN0YXJ0ID49IHZtYS0+dm1fZW5kLCB2bWEpOwotCi0JcmV0dXJuIG1heChz dGFydCwgdm1hLT52bV9zdGFydCk7CisJcGdvZmZfdCBwZ29mZjsKKwl1bnNp Z25lZCBsb25nIGFkZHJlc3M7CisKKwlWTV9CVUdfT05fUEFHRShQYWdlS3Nt KHBhZ2UpLCBwYWdlKTsJLyogS1NNIHBhZ2UtPmluZGV4IHVudXNhYmxlICov CisJcGdvZmYgPSBwYWdlX3RvX3Bnb2ZmKHBhZ2UpICsgKDFVTCA8PCBjb21w b3VuZF9vcmRlcihwYWdlKSk7CisJYWRkcmVzcyA9IHZtYS0+dm1fc3RhcnQg KyAoKHBnb2ZmIC0gdm1hLT52bV9wZ29mZikgPDwgUEFHRV9TSElGVCk7CisJ LyogQ2hlY2sgZm9yIGFkZHJlc3MgYmV5b25kIHZtYSAob3Igd3JhcHBlZCB0 aHJvdWdoIDA/KSAqLworCWlmIChhZGRyZXNzIDwgdm1hLT52bV9zdGFydCB8 fCBhZGRyZXNzID4gdm1hLT52bV9lbmQpCisJCWFkZHJlc3MgPSB2bWEtPnZt X2VuZDsKKwlyZXR1cm4gYWRkcmVzczsKIH0KIAogI2Vsc2UgLyogIUNPTkZJ R19NTVUgKi8KZGlmZiAtLWdpdCBhL21tL3BhZ2Vfdm1hX21hcHBlZC5jIGIv bW0vcGFnZV92bWFfbWFwcGVkLmMKaW5kZXggMDhlMjgzYWQ0NjYwLi5iYjc0 ODhlODZiZWEgMTAwNjQ0Ci0tLSBhL21tL3BhZ2Vfdm1hX21hcHBlZC5jCisr KyBiL21tL3BhZ2Vfdm1hX21hcHBlZC5jCkBAIC0yMjQsMTggKzIyNCwxOCBA QCBib29sIHBhZ2Vfdm1hX21hcHBlZF93YWxrKHN0cnVjdCBwYWdlX3ZtYV9t YXBwZWRfd2FsayAqcHZtdykKIAlpZiAoIW1hcF9wdGUocHZtdykpCiAJCWdv dG8gbmV4dF9wdGU7CiAJd2hpbGUgKDEpIHsKKwkJdW5zaWduZWQgbG9uZyBl bmQ7CisKIAkJaWYgKGNoZWNrX3B0ZShwdm13KSkKIAkJCXJldHVybiB0cnVl OwogbmV4dF9wdGU6CiAJCS8qIFNlZWsgdG8gbmV4dCBwdGUgb25seSBtYWtl cyBzZW5zZSBmb3IgVEhQICovCiAJCWlmICghUGFnZVRyYW5zSHVnZShwdm13 LT5wYWdlKSB8fCBQYWdlSHVnZShwdm13LT5wYWdlKSkKIAkJCXJldHVybiBu b3RfZm91bmQocHZtdyk7CisJCWVuZCA9IHZtYV9hZGRyZXNzX2VuZChwdm13 LT5wYWdlLCBwdm13LT52bWEpOwogCQlkbyB7CiAJCQlwdm13LT5hZGRyZXNz ICs9IFBBR0VfU0laRTsKLQkJCWlmIChwdm13LT5hZGRyZXNzID49IHB2bXct PnZtYS0+dm1fZW5kIHx8Ci0JCQkgICAgcHZtdy0+YWRkcmVzcyA+PQotCQkJ CQlfX3ZtYV9hZGRyZXNzKHB2bXctPnBhZ2UsIHB2bXctPnZtYSkgKwotCQkJ CQlocGFnZV9ucl9wYWdlcyhwdm13LT5wYWdlKSAqIFBBR0VfU0laRSkKKwkJ CWlmIChwdm13LT5hZGRyZXNzID49IGVuZCkKIAkJCQlyZXR1cm4gbm90X2Zv dW5kKHB2bXcpOwogCQkJLyogRGlkIHdlIGNyb3NzIHBhZ2UgdGFibGUgYm91 bmRhcnk/ICovCiAJCQlpZiAocHZtdy0+YWRkcmVzcyAlIFBNRF9TSVpFID09 IDApIHsKQEAgLTI3MywxNCArMjczLDEwIEBAIGludCBwYWdlX21hcHBlZF9p bl92bWEoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCB2bV9hcmVhX3N0cnVj dCAqdm1hKQogCQkudm1hID0gdm1hLAogCQkuZmxhZ3MgPSBQVk1XX1NZTkMs CiAJfTsKLQl1bnNpZ25lZCBsb25nIHN0YXJ0LCBlbmQ7Ci0KLQlzdGFydCA9 IF9fdm1hX2FkZHJlc3MocGFnZSwgdm1hKTsKLQllbmQgPSBzdGFydCArIFBB R0VfU0laRSAqIChocGFnZV9ucl9wYWdlcyhwYWdlKSAtIDEpOwogCi0JaWYg KHVubGlrZWx5KGVuZCA8IHZtYS0+dm1fc3RhcnQgfHwgc3RhcnQgPj0gdm1h LT52bV9lbmQpKQorCXB2bXcuYWRkcmVzcyA9IHZtYV9hZGRyZXNzKHBhZ2Us IHZtYSk7CisJaWYgKHB2bXcuYWRkcmVzcyA9PSAtRUZBVUxUKQogCQlyZXR1 cm4gMDsKLQlwdm13LmFkZHJlc3MgPSBtYXgoc3RhcnQsIHZtYS0+dm1fc3Rh cnQpOwogCWlmICghcGFnZV92bWFfbWFwcGVkX3dhbGsoJnB2bXcpKQogCQly ZXR1cm4gMDsKIAlwYWdlX3ZtYV9tYXBwZWRfd2Fsa19kb25lKCZwdm13KTsK ZGlmZiAtLWdpdCBhL21tL3JtYXAuYyBiL21tL3JtYXAuYwppbmRleCA1ZGYw NTU2NTRlNjMuLmZmNTZjNDYwYWY1MyAxMDA2NDQKLS0tIGEvbW0vcm1hcC5j CisrKyBiL21tL3JtYXAuYwpAQCAtNjg2LDcgKzY4Niw2IEBAIHN0YXRpYyBi b29sIHNob3VsZF9kZWZlcl9mbHVzaChzdHJ1Y3QgbW1fc3RydWN0ICptbSwg ZW51bSB0dHVfZmxhZ3MgZmxhZ3MpCiAgKi8KIHVuc2lnbmVkIGxvbmcgcGFn ZV9hZGRyZXNzX2luX3ZtYShzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEpCiB7Ci0JdW5zaWduZWQgbG9uZyBhZGRyZXNz OwogCWlmIChQYWdlQW5vbihwYWdlKSkgewogCQlzdHJ1Y3QgYW5vbl92bWEg KnBhZ2VfX2Fub25fdm1hID0gcGFnZV9hbm9uX3ZtYShwYWdlKTsKIAkJLyoK QEAgLTcwMSwxMCArNzAwLDggQEAgdW5zaWduZWQgbG9uZyBwYWdlX2FkZHJl c3NfaW5fdm1hKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSkKIAkJCXJldHVybiAtRUZBVUxUOwogCX0gZWxzZQogCQly ZXR1cm4gLUVGQVVMVDsKLQlhZGRyZXNzID0gX192bWFfYWRkcmVzcyhwYWdl LCB2bWEpOwotCWlmICh1bmxpa2VseShhZGRyZXNzIDwgdm1hLT52bV9zdGFy dCB8fCBhZGRyZXNzID49IHZtYS0+dm1fZW5kKSkKLQkJcmV0dXJuIC1FRkFV TFQ7Ci0JcmV0dXJuIGFkZHJlc3M7CisKKwlyZXR1cm4gdm1hX2FkZHJlc3Mo cGFnZSwgdm1hKTsKIH0KIAogcG1kX3QgKm1tX2ZpbmRfcG1kKHN0cnVjdCBt bV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MpCkBAIC04OTYs NyArODkzLDcgQEAgc3RhdGljIGJvb2wgcGFnZV9ta2NsZWFuX29uZShzdHJ1 Y3QgcGFnZSAqcGFnZSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJ ICogV2UgaGF2ZSB0byBhc3N1bWUgdGhlIHdvcnNlIGNhc2UgaWUgcG1kIGZv ciBpbnZhbGlkYXRpb24uIE5vdGUgdGhhdAogCSAqIHRoZSBwYWdlIGNhbiBu b3QgYmUgZnJlZSBmcm9tIHRoaXMgZnVuY3Rpb24uCiAJICovCi0JZW5kID0g bWluKHZtYS0+dm1fZW5kLCBzdGFydCArIChQQUdFX1NJWkUgPDwgY29tcG91 bmRfb3JkZXIocGFnZSkpKTsKKwllbmQgPSB2bWFfYWRkcmVzc19lbmQocGFn ZSwgdm1hKTsKIAltbXVfbm90aWZpZXJfaW52YWxpZGF0ZV9yYW5nZV9zdGFy dCh2bWEtPnZtX21tLCBzdGFydCwgZW5kKTsKIAogCXdoaWxlIChwYWdlX3Zt YV9tYXBwZWRfd2FsaygmcHZtdykpIHsKQEAgLTEzNzgsNyArMTM3NSw4IEBA IHN0YXRpYyBib29sIHRyeV90b191bm1hcF9vbmUoc3RydWN0IHBhZ2UgKnBh Z2UsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCSAqIE5vdGUgdGhh dCB0aGUgcGFnZSBjYW4gbm90IGJlIGZyZWUgaW4gdGhpcyBmdW5jdGlvbiBh cyBjYWxsIG9mCiAJICogdHJ5X3RvX3VubWFwKCkgbXVzdCBob2xkIGEgcmVm ZXJlbmNlIG9uIHRoZSBwYWdlLgogCSAqLwotCWVuZCA9IG1pbih2bWEtPnZt X2VuZCwgc3RhcnQgKyAoUEFHRV9TSVpFIDw8IGNvbXBvdW5kX29yZGVyKHBh Z2UpKSk7CisJZW5kID0gUGFnZUtzbShwYWdlKSA/CisJCQlhZGRyZXNzICsg UEFHRV9TSVpFIDogdm1hX2FkZHJlc3NfZW5kKHBhZ2UsIHZtYSk7CiAJaWYg KFBhZ2VIdWdlKHBhZ2UpKSB7CiAJCS8qCiAJCSAqIElmIHNoYXJpbmcgaXMg cG9zc2libGUsIHN0YXJ0IGFuZCBlbmQgd2lsbCBiZSBhZGp1c3RlZApAQCAt MTgzNSw2ICsxODMzLDcgQEAgc3RhdGljIHZvaWQgcm1hcF93YWxrX2Fub24o c3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCBybWFwX3dhbGtfY29udHJvbCAq cndjLAogCQlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSA9IGF2Yy0+dm1h OwogCQl1bnNpZ25lZCBsb25nIGFkZHJlc3MgPSB2bWFfYWRkcmVzcyhwYWdl LCB2bWEpOwogCisJCVZNX0JVR19PTl9WTUEoYWRkcmVzcyA9PSAtRUZBVUxU LCB2bWEpOwogCQljb25kX3Jlc2NoZWQoKTsKIAogCQlpZiAocndjLT5pbnZh bGlkX3ZtYSAmJiByd2MtPmludmFsaWRfdm1hKHZtYSwgcndjLT5hcmcpKQpA QCAtMTg4OSw2ICsxODg4LDcgQEAgc3RhdGljIHZvaWQgcm1hcF93YWxrX2Zp bGUoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCBybWFwX3dhbGtfY29udHJv bCAqcndjLAogCQkJcGdvZmZfc3RhcnQsIHBnb2ZmX2VuZCkgewogCQl1bnNp Z25lZCBsb25nIGFkZHJlc3MgPSB2bWFfYWRkcmVzcyhwYWdlLCB2bWEpOwog CisJCVZNX0JVR19PTl9WTUEoYWRkcmVzcyA9PSAtRUZBVUxULCB2bWEpOwog CQljb25kX3Jlc2NoZWQoKTsKIAogCQlpZiAocndjLT5pbnZhbGlkX3ZtYSAm JiByd2MtPmludmFsaWRfdm1hKHZtYSwgcndjLT5hcmcpKQotLSAKMi4zMi4w LjI4OC5nNjJhOGQyMjRlNi1nb29nCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANC4xOS9QYXhIZWFkZXJz LjI0NTEzLzAwMTAtbW0tdGhwLXJlcGxhY2UtREVCVUdfVk0tQlVHLXdpdGgt Vk1fV0FSTi13aGVuLXVubWFwLS5wYXRjaAAAAAAAAAAAAAAAAAAAADAwMDA2 NDQAMDAwMDAwMAAwMDAwMDAwADAwMDAwMDAwMDczADE0MDYzNjY1MTYxADAy MzU0NQAgeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAwMAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAzMCBhdGltZT0xNjI0NjY2MjgyLjg5NDc5OTU3NQoyOSBjdGltZT0xNjI0 MjUyNTA5LjU0MDEzNDk3CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAADQuMTkvMDAxMC1tbS10aHAtcmVwbGFjZS1E RUJVR19WTS1CVUctd2l0aC1WTV9XQVJOLXdoZW4tdW5tYXAtLnBhdGNoAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQwADAwMDE3NTAA MDAwMDE0NAAwMDAwMDAxMDQ0NgAxNDA2MzY2NTE2MQAwMjQxNjEAIDAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAdXN0YXIAMDBodWdoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AHVzZXJzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMAAwMDAw MDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARnJvbSA2OWYz OWE0MjI2YmYwMTIxMDMwZDA4OThjZGYyMDI1ZjBlMjc0YjdjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZYW5nIFNoaSA8c2h5ODI4MzAxQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCAxNSBKdW4gMjAyMSAxODoyNDowNyAtMDcw MApTdWJqZWN0OiBbUEFUQ0ggMTAvMjFdIG1tOiB0aHA6IHJlcGxhY2UgREVC VUdfVk0gQlVHIHdpdGggVk1fV0FSTiB3aGVuIHVubWFwCiBmYWlscyBmb3Ig c3BsaXQKClsgVXBzdHJlYW0gY29tbWl0IDUwNGUwNzBkYzA4Zjc1N2JjY2Fl ZDZkMDVjMGY1M2VjYmZhYzhhMjMgXQoKV2hlbiBkZWJ1Z2dpbmcgdGhlIGJ1 ZyByZXBvcnRlZCBieSBXYW5nIFl1Z3VpIFsxXSwgdHJ5X3RvX3VubWFwKCkg bWF5CmZhaWwsIGJ1dCB0aGUgZmlyc3QgVk1fQlVHX09OX1BBR0UoKSBqdXN0 IGNoZWNrcyBwYWdlX21hcGNvdW50KCkgaG93ZXZlcgppdCBtYXkgbWlzcyB0 aGUgZmFpbHVyZSB3aGVuIGhlYWQgcGFnZSBpcyB1bm1hcHBlZCBidXQgb3Ro ZXIgc3VicGFnZSBpcwptYXBwZWQuICBUaGVuIHRoZSBzZWNvbmQgREVCVUdf Vk0gQlVHKCkgdGhhdCBjaGVjayB0b3RhbCBtYXBjb3VudCB3b3VsZApjYXRj aCBpdC4gIFRoaXMgbWF5IGluY3VyIHNvbWUgY29uZnVzaW9uLgoKQXMgdGhp cyBpcyBub3QgYSBmYXRhbCBpc3N1ZSwgc28gY29uc29saWRhdGUgdGhlIHR3 byBERUJVR19WTSBjaGVja3MKaW50byBvbmUgVk1fV0FSTl9PTl9PTkNFX1BB R0UoKS4KClsxXSBodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1tbS8y MDIxMDQxMjE4MDY1OS5COUUzLjQwOTUwOUY0QGUxNi10ZWNoLmNvbS8KCkxp bms6IGh0dHBzOi8vbGttbC5rZXJuZWwub3JnL3IvZDBmMGRiNjgtOThiOC1l YmZiLTE2ZGMtZjI5ZGYyNGNmMDEyQGdvb2dsZS5jb20KU2lnbmVkLW9mZi1i eTogWWFuZyBTaGkgPHNoeTgyODMwMUBnbWFpbC5jb20+ClJldmlld2VkLWJ5 OiBaaSBZYW4gPHppeUBudmlkaWEuY29tPgpBY2tlZC1ieTogS2lyaWxsIEEu IFNodXRlbW92IDxraXJpbGwuc2h1dGVtb3ZAbGludXguaW50ZWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBIdWdoIERpY2tpbnMgPGh1Z2hkQGdvb2dsZS5jb20+ CkNjOiBBbGlzdGFpciBQb3BwbGUgPGFwb3BwbGVAbnZpZGlhLmNvbT4KQ2M6 IEphbiBLYXJhIDxqYWNrQHN1c2UuY3o+CkNjOiBKdWUgV2FuZyA8anVld0Bn b29nbGUuY29tPgpDYzogIk1hdHRoZXcgV2lsY294IChPcmFjbGUpIiA8d2ls bHlAaW5mcmFkZWFkLm9yZz4KQ2M6IE1pYW9oZSBMaW4gPGxpbm1pYW9oZUBo dWF3ZWkuY29tPgpDYzogTWluY2hhbiBLaW0gPG1pbmNoYW5Aa2VybmVsLm9y Zz4KQ2M6IE5hb3lhIEhvcmlndWNoaSA8bmFveWEuaG9yaWd1Y2hpQG5lYy5j b20+CkNjOiBPc2NhciBTYWx2YWRvciA8b3NhbHZhZG9yQHN1c2UuZGU+CkNj OiBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+CkNjOiBSYWxwaCBDYW1w YmVsbCA8cmNhbXBiZWxsQG52aWRpYS5jb20+CkNjOiBTaGFrZWVsIEJ1dHQg PHNoYWtlZWxiQGdvb2dsZS5jb20+CkNjOiBXYW5nIFl1Z3VpIDx3YW5neXVn dWlAZTE2LXRlY2guY29tPgpDYzogPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ ClNpZ25lZC1vZmYtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91 bmRhdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0 b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KCk5vdGUgb24gc3RhYmxl IGJhY2twb3J0OiBmaXhlZCB1cCB2YXJpYWJsZXMgYW5kIHNwbGl0X3F1ZXVl X2xvY2sgaW4Kc3BsaXRfaHVnZV9wYWdlX3RvX2xpc3QoKSwgYW5kIGNvbmZs aWN0IG9uIHR0dV9mbGFncyBpbiB1bm1hcF9wYWdlKCkuCgpTaWduZWQtb2Zm LWJ5OiBIdWdoIERpY2tpbnMgPGh1Z2hkQGdvb2dsZS5jb20+Ci0tLQogbW0v aHVnZV9tZW1vcnkuYyB8IDI0ICsrKysrKystLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbW0vaHVnZV9tZW1vcnkuYyBiL21tL2h1Z2Vf bWVtb3J5LmMKaW5kZXggNzhjMWFkNWY4MTA5Li40NDAwOTU3ZDhlNGUgMTAw NjQ0Ci0tLSBhL21tL2h1Z2VfbWVtb3J5LmMKKysrIGIvbW0vaHVnZV9tZW1v cnkuYwpAQCAtMjQzMSwxNSArMjQzMSwxNSBAQCBzdGF0aWMgdm9pZCB1bm1h cF9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKQogewogCWVudW0gdHR1X2ZsYWdz IHR0dV9mbGFncyA9IFRUVV9JR05PUkVfTUxPQ0sgfCBUVFVfSUdOT1JFX0FD Q0VTUyB8CiAJCVRUVV9STUFQX0xPQ0tFRCB8IFRUVV9TUExJVF9IVUdFX1BN RCB8IFRUVV9TWU5DOwotCWJvb2wgdW5tYXBfc3VjY2VzczsKIAogCVZNX0JV R19PTl9QQUdFKCFQYWdlSGVhZChwYWdlKSwgcGFnZSk7CiAKIAlpZiAoUGFn ZUFub24ocGFnZSkpCiAJCXR0dV9mbGFncyB8PSBUVFVfU1BMSVRfRlJFRVpF OwogCi0JdW5tYXBfc3VjY2VzcyA9IHRyeV90b191bm1hcChwYWdlLCB0dHVf ZmxhZ3MpOwotCVZNX0JVR19PTl9QQUdFKCF1bm1hcF9zdWNjZXNzLCBwYWdl KTsKKwl0cnlfdG9fdW5tYXAocGFnZSwgdHR1X2ZsYWdzKTsKKworCVZNX1dB Uk5fT05fT05DRV9QQUdFKHBhZ2VfbWFwcGVkKHBhZ2UpLCBwYWdlKTsKIH0K IAogc3RhdGljIHZvaWQgcmVtYXBfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkK QEAgLTI2OTgsNyArMjY5OCw3IEBAIGludCBzcGxpdF9odWdlX3BhZ2VfdG9f bGlzdChzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGxpc3RfaGVhZCAqbGlz dCkKIAlzdHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0YSA9IE5PREVfREFUQShw YWdlX3RvX25pZChoZWFkKSk7CiAJc3RydWN0IGFub25fdm1hICphbm9uX3Zt YSA9IE5VTEw7CiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBO VUxMOwotCWludCBjb3VudCwgbWFwY291bnQsIGV4dHJhX3BpbnMsIHJldDsK KwlpbnQgZXh0cmFfcGlucywgcmV0OwogCWJvb2wgbWxvY2tlZDsKIAl1bnNp Z25lZCBsb25nIGZsYWdzOwogCXBnb2ZmX3QgZW5kOwpAQCAtMjc2MCw3ICsy NzYwLDYgQEAgaW50IHNwbGl0X2h1Z2VfcGFnZV90b19saXN0KHN0cnVjdCBw YWdlICpwYWdlLCBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KQogCiAJbWxvY2tl ZCA9IFBhZ2VNbG9ja2VkKHBhZ2UpOwogCXVubWFwX3BhZ2UoaGVhZCk7Ci0J Vk1fQlVHX09OX1BBR0UoY29tcG91bmRfbWFwY291bnQoaGVhZCksIGhlYWQp OwogCiAJLyogTWFrZSBzdXJlIHRoZSBwYWdlIGlzIG5vdCBvbiBwZXItQ1BV IHBhZ2V2ZWMgYXMgaXQgdGFrZXMgcGluICovCiAJaWYgKG1sb2NrZWQpCkBA IC0yNzg2LDkgKzI3ODUsNyBAQCBpbnQgc3BsaXRfaHVnZV9wYWdlX3RvX2xp c3Qoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3Qp CiAKIAkvKiBQcmV2ZW50IGRlZmVycmVkX3NwbGl0X3NjYW4oKSB0b3VjaGlu ZyAtPl9yZWZjb3VudCAqLwogCXNwaW5fbG9jaygmcGdkYXRhLT5zcGxpdF9x dWV1ZV9sb2NrKTsKLQljb3VudCA9IHBhZ2VfY291bnQoaGVhZCk7Ci0JbWFw Y291bnQgPSB0b3RhbF9tYXBjb3VudChoZWFkKTsKLQlpZiAoIW1hcGNvdW50 ICYmIHBhZ2VfcmVmX2ZyZWV6ZShoZWFkLCAxICsgZXh0cmFfcGlucykpIHsK KwlpZiAocGFnZV9yZWZfZnJlZXplKGhlYWQsIDEgKyBleHRyYV9waW5zKSkg ewogCQlpZiAoIWxpc3RfZW1wdHkocGFnZV9kZWZlcnJlZF9saXN0KGhlYWQp KSkgewogCQkJcGdkYXRhLT5zcGxpdF9xdWV1ZV9sZW4tLTsKIAkJCWxpc3Rf ZGVsKHBhZ2VfZGVmZXJyZWRfbGlzdChoZWFkKSk7CkBAIC0yODA0LDE2ICsy ODAxLDkgQEAgaW50IHNwbGl0X2h1Z2VfcGFnZV90b19saXN0KHN0cnVjdCBw YWdlICpwYWdlLCBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0KQogCQl9IGVsc2UK IAkJCXJldCA9IDA7CiAJfSBlbHNlIHsKLQkJaWYgKElTX0VOQUJMRUQoQ09O RklHX0RFQlVHX1ZNKSAmJiBtYXBjb3VudCkgewotCQkJcHJfYWxlcnQoInRv dGFsX21hcGNvdW50OiAldSwgcGFnZV9jb3VudCgpOiAldVxuIiwKLQkJCQkJ bWFwY291bnQsIGNvdW50KTsKLQkJCWlmIChQYWdlVGFpbChwYWdlKSkKLQkJ CQlkdW1wX3BhZ2UoaGVhZCwgTlVMTCk7Ci0JCQlkdW1wX3BhZ2UocGFnZSwg InRvdGFsX21hcGNvdW50KGhlYWQpID4gMCIpOwotCQkJQlVHKCk7Ci0JCX0K IAkJc3Bpbl91bmxvY2soJnBnZGF0YS0+c3BsaXRfcXVldWVfbG9jayk7Ci1m YWlsOgkJaWYgKG1hcHBpbmcpCitmYWlsOgorCQlpZiAobWFwcGluZykKIAkJ CXhhX3VubG9jaygmbWFwcGluZy0+aV9wYWdlcyk7CiAJCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoem9uZV9scnVfbG9jayhwYWdlX3pvbmUoaGVhZCkpLCBm bGFncyk7CiAJCXJlbWFwX3BhZ2UoaGVhZCk7Ci0tIAoyLjMyLjAuMjg4Lmc2 MmE4ZDIyNGU2LWdvb2cKCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAANC4xNC9QYXhIZWFkZXJzLjI0NTEzLzAwMDEtaW5jbHVkZS1s aW51eC1tbWRlYnVnLmgtbWFrZS1WTV9XQVJOLW5vbi1ydmFscy5wYXRjaAAA AAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDAwMAAwMDAwMDAwADAw MDAwMDAwMDczADE0MDYzNzA0NDIzADAyMzIzMAAgeAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3Rh cgAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMCBhdGltZT0xNjI0NjY2Mjgy Ljg5NDc5OTU3NQoyOSBjdGltZT0xNjI0MjUyNTA5LjU0MDEzNDk3CgAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQu MTQvMDAwMS1pbmNsdWRlLWxpbnV4LW1tZGVidWcuaC1tYWtlLVZNX1dBUk4t bm9uLXJ2YWxzLnBhdGNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAwMDAwNjQwADAwMDE3NTAAMDAwMDE0NAAwMDAwMDAwMzc2MwAx NDA2MzcwNDQyMwAwMjM2NTAAIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXN0YXIAMDBodWdoAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzZXJzAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAMDAwMDAwMAAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAARnJvbSAyOGExMTAzOGIwOTJmNGNhYzliNjU1NDk1 OTYxMGRiMjMzZWIwNWQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBNaWNoYWwgSG9ja28gPG1ob2Nrb0BrZXJuZWwub3JnPgpEYXRlOiBUaHUs IDUgQXByIDIwMTggMTY6MjU6MzAgLTA3MDAKU3ViamVjdDogW1BBVENIIDAx LzE5XSBpbmNsdWRlL2xpbnV4L21tZGVidWcuaDogbWFrZSBWTV9XQVJOKiBu b24tcnZhbHMKClsgVXBzdHJlYW0gY29tbWl0IDkxMjQxNjgxYzYyYTVhNjkw Yzg4ZWIyYWNhMDI3ZjA5NDEyNWVhYWMgXQoKQXQgcHJlc2VudCB0aGUgY29u c3RydWN0CgoJaWYgKFZNX1dBUk4oLi4uKSkKCndpbGwgY29tcGlsZSBPSyB3 aXRoIENPTkZJR19ERUJVR19WTT15IGFuZCB3aWxsIGZhaWwgd2l0aApDT05G SUdfREVCVUdfVk09bi4gIFRoZSByZWFzb24gaXMgdGhhdCBWTV97V0FSTixC VUd9KiBoYXZlIGFsd2F5cyBiZWVuCnNwZWNpYWwgd3J0LiAge1dBUk4vQlVH fSogYW5kIG5ldmVyIGdlbmVyYXRlIGFueSBjb2RlIHdoZW4gREVCVUdfVk0g aXMKZGlzYWJsZWQuICBTbyB3ZSBjYW5ub3QgcmVhbGx5IHVzZSBpdCBpbiBj b25kaXRpb25hbHMuCgpXZSBjb25zaWRlcmVkIGNoYW5naW5nIHRoaW5ncyBz byB0aGF0IHRoaXMgY29uc3RydWN0IHdvcmtzIGluIGJvdGggY2FzZXMKYnV0 IHRoYXQgbWlnaHQgY2F1c2UgdW53YW50ZWQgY29kZSBnZW5lcmF0aW9uIHdp dGggQ09ORklHX0RFQlVHX1ZNPW4uCkl0IGlzIHNhZmVyIGFuZCBzaW1wbGVy IHRvIG1ha2UgdGhlIGJ1aWxkIGZhaWwgaW4gYm90aCBjYXNlcy4KCltha3Bt QGxpbnV4LWZvdW5kYXRpb24ub3JnOiBjaGFuZ2Vsb2ddClNpZ25lZC1vZmYt Ynk6IE1pY2hhbCBIb2NrbyA8bWhvY2tvQHN1c2UuY29tPgpSZXZpZXdlZC1i eTogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4K Q2M6IFN0ZXBoZW4gUm90aHdlbGwgPHNmckBjYW5iLmF1dWcub3JnLmF1PgpT aWduZWQtb2ZmLWJ5OiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5k YXRpb24ub3JnPgpTaWduZWQtb2ZmLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9y dmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+Ci0tLQogaW5jbHVkZS9saW51 eC9tbWRlYnVnLmggfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBp bnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbGludXgvbW1kZWJ1Zy5oIGIvaW5jbHVkZS9saW51eC9tbWRlYnVn LmgKaW5kZXggNTdiMDAzMGQzODAwLi4yYWQ3MmQyYzhjYzUgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvbGludXgvbW1kZWJ1Zy5oCisrKyBiL2luY2x1ZGUvbGlu dXgvbW1kZWJ1Zy5oCkBAIC0zNywxMCArMzcsMTAgQEAgdm9pZCBkdW1wX21t KGNvbnN0IHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKTsKIAkJCUJVRygpOwkJCQkJ CVwKIAkJfQkJCQkJCQlcCiAJfSB3aGlsZSAoMCkKLSNkZWZpbmUgVk1fV0FS Tl9PTihjb25kKSBXQVJOX09OKGNvbmQpCi0jZGVmaW5lIFZNX1dBUk5fT05f T05DRShjb25kKSBXQVJOX09OX09OQ0UoY29uZCkKLSNkZWZpbmUgVk1fV0FS Tl9PTkNFKGNvbmQsIGZvcm1hdC4uLikgV0FSTl9PTkNFKGNvbmQsIGZvcm1h dCkKLSNkZWZpbmUgVk1fV0FSTihjb25kLCBmb3JtYXQuLi4pIFdBUk4oY29u ZCwgZm9ybWF0KQorI2RlZmluZSBWTV9XQVJOX09OKGNvbmQpICh2b2lkKVdB Uk5fT04oY29uZCkKKyNkZWZpbmUgVk1fV0FSTl9PTl9PTkNFKGNvbmQpICh2 b2lkKVdBUk5fT05fT05DRShjb25kKQorI2RlZmluZSBWTV9XQVJOX09OQ0Uo Y29uZCwgZm9ybWF0Li4uKSAodm9pZClXQVJOX09OQ0UoY29uZCwgZm9ybWF0 KQorI2RlZmluZSBWTV9XQVJOKGNvbmQsIGZvcm1hdC4uLikgKHZvaWQpV0FS Tihjb25kLCBmb3JtYXQpCiAjZWxzZQogI2RlZmluZSBWTV9CVUdfT04oY29u ZCkgQlVJTERfQlVHX09OX0lOVkFMSUQoY29uZCkKICNkZWZpbmUgVk1fQlVH X09OX1BBR0UoY29uZCwgcGFnZSkgVk1fQlVHX09OKGNvbmQpCi0tIAoyLjMy LjAuMjg4Lmc2MmE4ZDIyNGU2LWdvb2cKCgAAAAAAAAAAAAAAAAA0LjE0L1Bh eEhlYWRlcnMuMjQ1MTMvMDAwOC1tbS10aHAtcmVwbGFjZS1ERUJVR19WTS1C VUctd2l0aC1WTV9XQVJOLXdoZW4tdW5tYXAtLnBhdGNoAAAAAAAAAAAAAAAA AAAAMDAwMDY0NAAwMDAwMDAwADAwMDAwMDAAMDAwMDAwMDAwNzMAMTQwNjM3 MDQ0MjMAMDIzNTQyACB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyADAwAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAADMwIGF0aW1lPTE2MjQ2NjYyODIuODk0Nzk5NTc1CjI5IGN0 aW1lPTE2MjQyNTI1MDkuNTQwMTM0OTcKAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANC4xNC8wMDA4LW1tLXRocC1y ZXBsYWNlLURFQlVHX1ZNLUJVRy13aXRoLVZNX1dBUk4td2hlbi11bm1hcC0u cGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDAA MDAwMTc1MAAwMDAwMTQ0ADAwMDAwMDEwNDYyADE0MDYzNzA0NDIzADAyNDE1 NAAgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAB1c3RhcgAwMGh1Z2gAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAdXNlcnMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAw MDAwADAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG cm9tIDY1MWE0MmFjMmUyZGJjOGJhZDE3NjQ5YmVlMjI5YzJmZjc3YWU2MzUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFlhbmcgU2hpIDxzaHk4 MjgzMDFAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE1IEp1biAyMDIxIDE4OjI0 OjA3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAwOC8xOV0gbW06IHRocDogcmVw bGFjZSBERUJVR19WTSBCVUcgd2l0aCBWTV9XQVJOIHdoZW4gdW5tYXAKIGZh aWxzIGZvciBzcGxpdAoKWyBVcHN0cmVhbSBjb21taXQgNTA0ZTA3MGRjMDhm NzU3YmNjYWVkNmQwNWMwZjUzZWNiZmFjOGEyMyBdCgpXaGVuIGRlYnVnZ2lu ZyB0aGUgYnVnIHJlcG9ydGVkIGJ5IFdhbmcgWXVndWkgWzFdLCB0cnlfdG9f dW5tYXAoKSBtYXkKZmFpbCwgYnV0IHRoZSBmaXJzdCBWTV9CVUdfT05fUEFH RSgpIGp1c3QgY2hlY2tzIHBhZ2VfbWFwY291bnQoKSBob3dldmVyCml0IG1h eSBtaXNzIHRoZSBmYWlsdXJlIHdoZW4gaGVhZCBwYWdlIGlzIHVubWFwcGVk IGJ1dCBvdGhlciBzdWJwYWdlIGlzCm1hcHBlZC4gIFRoZW4gdGhlIHNlY29u ZCBERUJVR19WTSBCVUcoKSB0aGF0IGNoZWNrIHRvdGFsIG1hcGNvdW50IHdv dWxkCmNhdGNoIGl0LiAgVGhpcyBtYXkgaW5jdXIgc29tZSBjb25mdXNpb24u CgpBcyB0aGlzIGlzIG5vdCBhIGZhdGFsIGlzc3VlLCBzbyBjb25zb2xpZGF0 ZSB0aGUgdHdvIERFQlVHX1ZNIGNoZWNrcwppbnRvIG9uZSBWTV9XQVJOX09O X09OQ0VfUEFHRSgpLgoKWzFdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xp bnV4LW1tLzIwMjEwNDEyMTgwNjU5LkI5RTMuNDA5NTA5RjRAZTE2LXRlY2gu Y29tLwoKTGluazogaHR0cHM6Ly9sa21sLmtlcm5lbC5vcmcvci9kMGYwZGI2 OC05OGI4LWViZmItMTZkYy1mMjlkZjI0Y2YwMTJAZ29vZ2xlLmNvbQpTaWdu ZWQtb2ZmLWJ5OiBZYW5nIFNoaSA8c2h5ODI4MzAxQGdtYWlsLmNvbT4KUmV2 aWV3ZWQtYnk6IFppIFlhbiA8eml5QG52aWRpYS5jb20+CkFja2VkLWJ5OiBL aXJpbGwgQS4gU2h1dGVtb3YgPGtpcmlsbC5zaHV0ZW1vdkBsaW51eC5pbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IEh1Z2ggRGlja2lucyA8aHVnaGRAZ29v Z2xlLmNvbT4KQ2M6IEFsaXN0YWlyIFBvcHBsZSA8YXBvcHBsZUBudmlkaWEu Y29tPgpDYzogSmFuIEthcmEgPGphY2tAc3VzZS5jej4KQ2M6IEp1ZSBXYW5n IDxqdWV3QGdvb2dsZS5jb20+CkNjOiAiTWF0dGhldyBXaWxjb3ggKE9yYWNs ZSkiIDx3aWxseUBpbmZyYWRlYWQub3JnPgpDYzogTWlhb2hlIExpbiA8bGlu bWlhb2hlQGh1YXdlaS5jb20+CkNjOiBNaW5jaGFuIEtpbSA8bWluY2hhbkBr ZXJuZWwub3JnPgpDYzogTmFveWEgSG9yaWd1Y2hpIDxuYW95YS5ob3JpZ3Vj aGlAbmVjLmNvbT4KQ2M6IE9zY2FyIFNhbHZhZG9yIDxvc2FsdmFkb3JAc3Vz ZS5kZT4KQ2M6IFBldGVyIFh1IDxwZXRlcnhAcmVkaGF0LmNvbT4KQ2M6IFJh bHBoIENhbXBiZWxsIDxyY2FtcGJlbGxAbnZpZGlhLmNvbT4KQ2M6IFNoYWtl ZWwgQnV0dCA8c2hha2VlbGJAZ29vZ2xlLmNvbT4KQ2M6IFdhbmcgWXVndWkg PHdhbmd5dWd1aUBlMTYtdGVjaC5jb20+CkNjOiA8c3RhYmxlQHZnZXIua2Vy bmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogQW5kcmV3IE1vcnRvbiA8YWtwbUBs aW51eC1mb3VuZGF0aW9uLm9yZz4KU2lnbmVkLW9mZi1ieTogTGludXMgVG9y dmFsZHMgPHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgoKTm90ZSBv biBzdGFibGUgYmFja3BvcnQ6IGZpeGVkIHVwIHZhcmlhYmxlcywgc3BsaXRf cXVldWVfbG9jaywgdHJlZV9sb2NrCmluIHNwbGl0X2h1Z2VfcGFnZV90b19s aXN0KCksIGFuZCBjb25mbGljdCBvbiB0dHVfZmxhZ3MgaW4gdW5tYXBfcGFn ZSgpLgoKU2lnbmVkLW9mZi1ieTogSHVnaCBEaWNraW5zIDxodWdoZEBnb29n bGUuY29tPgotLS0KIG1tL2h1Z2VfbWVtb3J5LmMgfCAyNCArKysrKysrLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMo KyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL21tL2h1Z2VfbWVt b3J5LmMgYi9tbS9odWdlX21lbW9yeS5jCmluZGV4IDU3MDVjY2ZmM2U3Zi4u OTcyODkzOTA4YmNkIDEwMDY0NAotLS0gYS9tbS9odWdlX21lbW9yeS5jCisr KyBiL21tL2h1Z2VfbWVtb3J5LmMKQEAgLTIzMjUsMTUgKzIzMjUsMTUgQEAg c3RhdGljIHZvaWQgdW5tYXBfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkKIHsK IAllbnVtIHR0dV9mbGFncyB0dHVfZmxhZ3MgPSBUVFVfSUdOT1JFX01MT0NL IHwgVFRVX0lHTk9SRV9BQ0NFU1MgfAogCQlUVFVfUk1BUF9MT0NLRUQgfCBU VFVfU1BMSVRfSFVHRV9QTUQgfCBUVFVfU1lOQzsKLQlib29sIHVubWFwX3N1 Y2Nlc3M7CiAKIAlWTV9CVUdfT05fUEFHRSghUGFnZUhlYWQocGFnZSksIHBh Z2UpOwogCiAJaWYgKFBhZ2VBbm9uKHBhZ2UpKQogCQl0dHVfZmxhZ3MgfD0g VFRVX1NQTElUX0ZSRUVaRTsKIAotCXVubWFwX3N1Y2Nlc3MgPSB0cnlfdG9f dW5tYXAocGFnZSwgdHR1X2ZsYWdzKTsKLQlWTV9CVUdfT05fUEFHRSghdW5t YXBfc3VjY2VzcywgcGFnZSk7CisJdHJ5X3RvX3VubWFwKHBhZ2UsIHR0dV9m bGFncyk7CisKKwlWTV9XQVJOX09OX09OQ0VfUEFHRShwYWdlX21hcHBlZChw YWdlKSwgcGFnZSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJlbWFwX3BhZ2Uoc3Ry dWN0IHBhZ2UgKnBhZ2UpCkBAIC0yNTg2LDcgKzI1ODYsNyBAQCBpbnQgc3Bs aXRfaHVnZV9wYWdlX3RvX2xpc3Qoc3RydWN0IHBhZ2UgKnBhZ2UsIHN0cnVj dCBsaXN0X2hlYWQgKmxpc3QpCiAJc3RydWN0IHBnbGlzdF9kYXRhICpwZ2Rh dGEgPSBOT0RFX0RBVEEocGFnZV90b19uaWQoaGVhZCkpOwogCXN0cnVjdCBh bm9uX3ZtYSAqYW5vbl92bWEgPSBOVUxMOwogCXN0cnVjdCBhZGRyZXNzX3Nw YWNlICptYXBwaW5nID0gTlVMTDsKLQlpbnQgY291bnQsIG1hcGNvdW50LCBl eHRyYV9waW5zLCByZXQ7CisJaW50IGV4dHJhX3BpbnMsIHJldDsKIAlib29s IG1sb2NrZWQ7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAlwZ29mZl90IGVu ZDsKQEAgLTI2NDgsNyArMjY0OCw2IEBAIGludCBzcGxpdF9odWdlX3BhZ2Vf dG9fbGlzdChzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGxpc3RfaGVhZCAq bGlzdCkKIAogCW1sb2NrZWQgPSBQYWdlTWxvY2tlZChwYWdlKTsKIAl1bm1h cF9wYWdlKGhlYWQpOwotCVZNX0JVR19PTl9QQUdFKGNvbXBvdW5kX21hcGNv dW50KGhlYWQpLCBoZWFkKTsKIAogCS8qIE1ha2Ugc3VyZSB0aGUgcGFnZSBp cyBub3Qgb24gcGVyLUNQVSBwYWdldmVjIGFzIGl0IHRha2VzIHBpbiAqLwog CWlmIChtbG9ja2VkKQpAQCAtMjY3NCw5ICsyNjczLDcgQEAgaW50IHNwbGl0 X2h1Z2VfcGFnZV90b19saXN0KHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qg bGlzdF9oZWFkICpsaXN0KQogCiAJLyogUHJldmVudCBkZWZlcnJlZF9zcGxp dF9zY2FuKCkgdG91Y2hpbmcgLT5fcmVmY291bnQgKi8KIAlzcGluX2xvY2so JnBnZGF0YS0+c3BsaXRfcXVldWVfbG9jayk7Ci0JY291bnQgPSBwYWdlX2Nv dW50KGhlYWQpOwotCW1hcGNvdW50ID0gdG90YWxfbWFwY291bnQoaGVhZCk7 Ci0JaWYgKCFtYXBjb3VudCAmJiBwYWdlX3JlZl9mcmVlemUoaGVhZCwgMSAr IGV4dHJhX3BpbnMpKSB7CisJaWYgKHBhZ2VfcmVmX2ZyZWV6ZShoZWFkLCAx ICsgZXh0cmFfcGlucykpIHsKIAkJaWYgKCFsaXN0X2VtcHR5KHBhZ2VfZGVm ZXJyZWRfbGlzdChoZWFkKSkpIHsKIAkJCXBnZGF0YS0+c3BsaXRfcXVldWVf bGVuLS07CiAJCQlsaXN0X2RlbChwYWdlX2RlZmVycmVkX2xpc3QoaGVhZCkp OwpAQCAtMjY5MiwxNiArMjY4OSw5IEBAIGludCBzcGxpdF9odWdlX3BhZ2Vf dG9fbGlzdChzdHJ1Y3QgcGFnZSAqcGFnZSwgc3RydWN0IGxpc3RfaGVhZCAq bGlzdCkKIAkJfSBlbHNlCiAJCQlyZXQgPSAwOwogCX0gZWxzZSB7Ci0JCWlm IChJU19FTkFCTEVEKENPTkZJR19ERUJVR19WTSkgJiYgbWFwY291bnQpIHsK LQkJCXByX2FsZXJ0KCJ0b3RhbF9tYXBjb3VudDogJXUsIHBhZ2VfY291bnQo KTogJXVcbiIsCi0JCQkJCW1hcGNvdW50LCBjb3VudCk7Ci0JCQlpZiAoUGFn ZVRhaWwocGFnZSkpCi0JCQkJZHVtcF9wYWdlKGhlYWQsIE5VTEwpOwotCQkJ ZHVtcF9wYWdlKHBhZ2UsICJ0b3RhbF9tYXBjb3VudChoZWFkKSA+IDAiKTsK LQkJCUJVRygpOwotCQl9CiAJCXNwaW5fdW5sb2NrKCZwZ2RhdGEtPnNwbGl0 X3F1ZXVlX2xvY2spOwotZmFpbDoJCWlmIChtYXBwaW5nKQorZmFpbDoKKwkJ aWYgKG1hcHBpbmcpCiAJCQlzcGluX3VubG9jaygmbWFwcGluZy0+dHJlZV9s b2NrKTsKIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSh6b25lX2xydV9sb2Nr KHBhZ2Vfem9uZShoZWFkKSksIGZsYWdzKTsKIAkJcmVtYXBfcGFnZShoZWFk KTsKLS0gCjIuMzIuMC4yODguZzYyYThkMjI0ZTYtZ29vZwoKAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAA0LjA5L1BheEhlYWRlcnMuMjQ1MTMvMDAwMy1t bS10aHAtcmVwbGFjZS1ERUJVR19WTS1CVUctd2l0aC1WTV9XQVJOLXdoZW4t dW5tYXAtLnBhdGNoAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwMDAwADAw MDAwMDAAMDAwMDAwMDAwNzMAMTQwNjM3MTA1MTAAMDIzNTMzACB4AAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAHVzdGFyADAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMwIGF0aW1lPTE2 MjQ2NjYyODIuODk0Nzk5NTc1CjI5IGN0aW1lPTE2MjQyNTI1MDkuNTQwMTM0 OTcKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAANC4wOS8wMDAzLW1tLXRocC1yZXBsYWNlLURFQlVHX1ZNLUJVRy13 aXRoLVZNX1dBUk4td2hlbi11bm1hcC0ucGF0Y2gAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADAwMDA2NDAAMDAwMTc1MAAwMDAwMTQ0ADAwMDAw MDExMjU1ADE0MDYzNzEwNTEwADAyNDE0NgAgMAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhcgAw MGh1Z2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXNlcnMAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwADAwMDAwMDAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGcm9tIDg0NTVmZmIzMTcxNzkyYjhl Y2E2NjZkY2Y3MjBlZDYzNGNlYjM2MDMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFlhbmcgU2hpIDxzaHk4MjgzMDFAZ21haWwuY29tPgpEYXRl OiBUdWUsIDE1IEp1biAyMDIxIDE4OjI0OjA3IC0wNzAwClN1YmplY3Q6IFtQ QVRDSCAzLzRdIG1tOiB0aHA6IHJlcGxhY2UgREVCVUdfVk0gQlVHIHdpdGgg Vk1fV0FSTiB3aGVuIHVubWFwCiBmYWlscyBmb3Igc3BsaXQKClsgVXBzdHJl YW0gY29tbWl0IDUwNGUwNzBkYzA4Zjc1N2JjY2FlZDZkMDVjMGY1M2VjYmZh YzhhMjMgXQoKV2hlbiBkZWJ1Z2dpbmcgdGhlIGJ1ZyByZXBvcnRlZCBieSBX YW5nIFl1Z3VpIFsxXSwgdHJ5X3RvX3VubWFwKCkgbWF5CmZhaWwsIGJ1dCB0 aGUgZmlyc3QgVk1fQlVHX09OX1BBR0UoKSBqdXN0IGNoZWNrcyBwYWdlX21h cGNvdW50KCkgaG93ZXZlcgppdCBtYXkgbWlzcyB0aGUgZmFpbHVyZSB3aGVu IGhlYWQgcGFnZSBpcyB1bm1hcHBlZCBidXQgb3RoZXIgc3VicGFnZSBpcwpt YXBwZWQuICBUaGVuIHRoZSBzZWNvbmQgREVCVUdfVk0gQlVHKCkgdGhhdCBj aGVjayB0b3RhbCBtYXBjb3VudCB3b3VsZApjYXRjaCBpdC4gIFRoaXMgbWF5 IGluY3VyIHNvbWUgY29uZnVzaW9uLgoKQXMgdGhpcyBpcyBub3QgYSBmYXRh bCBpc3N1ZSwgc28gY29uc29saWRhdGUgdGhlIHR3byBERUJVR19WTSBjaGVj a3MKaW50byBvbmUgVk1fV0FSTl9PTl9PTkNFX1BBR0UoKS4KClsxXSBodHRw czovL2xvcmUua2VybmVsLm9yZy9saW51eC1tbS8yMDIxMDQxMjE4MDY1OS5C OUUzLjQwOTUwOUY0QGUxNi10ZWNoLmNvbS8KCkxpbms6IGh0dHBzOi8vbGtt bC5rZXJuZWwub3JnL3IvZDBmMGRiNjgtOThiOC1lYmZiLTE2ZGMtZjI5ZGYy NGNmMDEyQGdvb2dsZS5jb20KU2lnbmVkLW9mZi1ieTogWWFuZyBTaGkgPHNo eTgyODMwMUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBaaSBZYW4gPHppeUBu dmlkaWEuY29tPgpBY2tlZC1ieTogS2lyaWxsIEEuIFNodXRlbW92IDxraXJp bGwuc2h1dGVtb3ZAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBI dWdoIERpY2tpbnMgPGh1Z2hkQGdvb2dsZS5jb20+CkNjOiBBbGlzdGFpciBQ b3BwbGUgPGFwb3BwbGVAbnZpZGlhLmNvbT4KQ2M6IEphbiBLYXJhIDxqYWNr QHN1c2UuY3o+CkNjOiBKdWUgV2FuZyA8anVld0Bnb29nbGUuY29tPgpDYzog Ik1hdHRoZXcgV2lsY294IChPcmFjbGUpIiA8d2lsbHlAaW5mcmFkZWFkLm9y Zz4KQ2M6IE1pYW9oZSBMaW4gPGxpbm1pYW9oZUBodWF3ZWkuY29tPgpDYzog TWluY2hhbiBLaW0gPG1pbmNoYW5Aa2VybmVsLm9yZz4KQ2M6IE5hb3lhIEhv cmlndWNoaSA8bmFveWEuaG9yaWd1Y2hpQG5lYy5jb20+CkNjOiBPc2NhciBT YWx2YWRvciA8b3NhbHZhZG9yQHN1c2UuZGU+CkNjOiBQZXRlciBYdSA8cGV0 ZXJ4QHJlZGhhdC5jb20+CkNjOiBSYWxwaCBDYW1wYmVsbCA8cmNhbXBiZWxs QG52aWRpYS5jb20+CkNjOiBTaGFrZWVsIEJ1dHQgPHNoYWtlZWxiQGdvb2ds ZS5jb20+CkNjOiBXYW5nIFl1Z3VpIDx3YW5neXVndWlAZTE2LXRlY2guY29t PgpDYzogPHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6 IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+ClNp Z25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1m b3VuZGF0aW9uLm9yZz4KCk5vdGUgb24gc3RhYmxlIGJhY2twb3J0OiBmaXhl ZCB1cCB2YXJpYWJsZXMsIHNwbGl0X3F1ZXVlX2xvY2ssIHRyZWVfbG9jawpp biBzcGxpdF9odWdlX3BhZ2VfdG9fbGlzdCgpOyBhZGFwdGVkIHRvIGVhcmx5 IHZlcnNpb24gb2YgdW5tYXBfcGFnZSgpLgoKU2lnbmVkLW9mZi1ieTogSHVn aCBEaWNraW5zIDxodWdoZEBnb29nbGUuY29tPgotLS0KIG1tL2h1Z2VfbWVt b3J5LmMgfCAyOSArKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL21tL2h1Z2VfbWVtb3J5LmMgYi9tbS9odWdlX21l bW9yeS5jCmluZGV4IDE0Y2QwZWYzM2I2Mi4uMTc3Y2EwMjhiOTg2IDEwMDY0 NAotLS0gYS9tbS9odWdlX21lbW9yeS5jCisrKyBiL21tL2h1Z2VfbWVtb3J5 LmMKQEAgLTE4OTEsNyArMTg5MSw3IEBAIHN0YXRpYyB2b2lkIHVubWFwX3Bh Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UpCiB7CiAJZW51bSB0dHVfZmxhZ3MgdHR1 X2ZsYWdzID0gVFRVX0lHTk9SRV9NTE9DSyB8IFRUVV9JR05PUkVfQUNDRVNT IHwKIAkJVFRVX1JNQVBfTE9DS0VEOwotCWludCBpLCByZXQ7CisJaW50IGk7 CiAKIAlWTV9CVUdfT05fUEFHRSghUGFnZUhlYWQocGFnZSksIHBhZ2UpOwog CkBAIC0xODk5LDE1ICsxODk5LDE2IEBAIHN0YXRpYyB2b2lkIHVubWFwX3Bh Z2Uoc3RydWN0IHBhZ2UgKnBhZ2UpCiAJCXR0dV9mbGFncyB8PSBUVFVfTUlH UkFUSU9OOwogCiAJLyogV2Ugb25seSBuZWVkIFRUVV9TUExJVF9IVUdFX1BN RCBvbmNlICovCi0JcmV0ID0gdHJ5X3RvX3VubWFwKHBhZ2UsIHR0dV9mbGFn cyB8IFRUVV9TUExJVF9IVUdFX1BNRCk7Ci0JZm9yIChpID0gMTsgIXJldCAm JiBpIDwgSFBBR0VfUE1EX05SOyBpKyspIHsKKwl0cnlfdG9fdW5tYXAocGFn ZSwgdHR1X2ZsYWdzIHwgVFRVX1NQTElUX0hVR0VfUE1EKTsKKwlmb3IgKGkg PSAxOyBpIDwgSFBBR0VfUE1EX05SOyBpKyspIHsKIAkJLyogQ3V0IHNob3J0 IGlmIHRoZSBwYWdlIGlzIHVubWFwcGVkICovCiAJCWlmIChwYWdlX2NvdW50 KHBhZ2UpID09IDEpCiAJCQlyZXR1cm47CiAKLQkJcmV0ID0gdHJ5X3RvX3Vu bWFwKHBhZ2UgKyBpLCB0dHVfZmxhZ3MpOworCQl0cnlfdG9fdW5tYXAocGFn ZSArIGksIHR0dV9mbGFncyk7CiAJfQotCVZNX0JVR19PTl9QQUdFKHJldCwg cGFnZSArIGkgLSAxKTsKKworCVZNX1dBUk5fT05fT05DRV9QQUdFKHBhZ2Vf bWFwcGVkKHBhZ2UpLCBwYWdlKTsKIH0KIAogc3RhdGljIHZvaWQgcmVtYXBf cGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkKQEAgLTIxMzcsNyArMjEzOCw3IEBA IGludCBzcGxpdF9odWdlX3BhZ2VfdG9fbGlzdChzdHJ1Y3QgcGFnZSAqcGFn ZSwgc3RydWN0IGxpc3RfaGVhZCAqbGlzdCkKIAlzdHJ1Y3QgcGdsaXN0X2Rh dGEgKnBnZGF0YSA9IE5PREVfREFUQShwYWdlX3RvX25pZChoZWFkKSk7CiAJ c3RydWN0IGFub25fdm1hICphbm9uX3ZtYSA9IE5VTEw7CiAJc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcgPSBOVUxMOwotCWludCBjb3VudCwgbWFw Y291bnQsIGV4dHJhX3BpbnMsIHJldDsKKwlpbnQgZXh0cmFfcGlucywgcmV0 OwogCWJvb2wgbWxvY2tlZDsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogCXBn b2ZmX3QgZW5kOwpAQCAtMjIwMCw3ICsyMjAxLDYgQEAgaW50IHNwbGl0X2h1 Z2VfcGFnZV90b19saXN0KHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbGlz dF9oZWFkICpsaXN0KQogCiAJbWxvY2tlZCA9IFBhZ2VNbG9ja2VkKHBhZ2Up OwogCXVubWFwX3BhZ2UoaGVhZCk7Ci0JVk1fQlVHX09OX1BBR0UoY29tcG91 bmRfbWFwY291bnQoaGVhZCksIGhlYWQpOwogCiAJLyogTWFrZSBzdXJlIHRo ZSBwYWdlIGlzIG5vdCBvbiBwZXItQ1BVIHBhZ2V2ZWMgYXMgaXQgdGFrZXMg cGluICovCiAJaWYgKG1sb2NrZWQpCkBAIC0yMjI2LDkgKzIyMjYsNyBAQCBp bnQgc3BsaXRfaHVnZV9wYWdlX3RvX2xpc3Qoc3RydWN0IHBhZ2UgKnBhZ2Us IHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCiAKIAkvKiBQcmV2ZW50IGRlZmVy cmVkX3NwbGl0X3NjYW4oKSB0b3VjaGluZyAtPl9yZWZjb3VudCAqLwogCXNw aW5fbG9jaygmcGdkYXRhLT5zcGxpdF9xdWV1ZV9sb2NrKTsKLQljb3VudCA9 IHBhZ2VfY291bnQoaGVhZCk7Ci0JbWFwY291bnQgPSB0b3RhbF9tYXBjb3Vu dChoZWFkKTsKLQlpZiAoIW1hcGNvdW50ICYmIHBhZ2VfcmVmX2ZyZWV6ZSho ZWFkLCAxICsgZXh0cmFfcGlucykpIHsKKwlpZiAocGFnZV9yZWZfZnJlZXpl KGhlYWQsIDEgKyBleHRyYV9waW5zKSkgewogCQlpZiAoIWxpc3RfZW1wdHko cGFnZV9kZWZlcnJlZF9saXN0KGhlYWQpKSkgewogCQkJcGdkYXRhLT5zcGxp dF9xdWV1ZV9sZW4tLTsKIAkJCWxpc3RfZGVsKHBhZ2VfZGVmZXJyZWRfbGlz dChoZWFkKSk7CkBAIC0yMjM5LDE2ICsyMjM3LDkgQEAgaW50IHNwbGl0X2h1 Z2VfcGFnZV90b19saXN0KHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3QgbGlz dF9oZWFkICpsaXN0KQogCQlfX3NwbGl0X2h1Z2VfcGFnZShwYWdlLCBsaXN0 LCBlbmQsIGZsYWdzKTsKIAkJcmV0ID0gMDsKIAl9IGVsc2UgewotCQlpZiAo SVNfRU5BQkxFRChDT05GSUdfREVCVUdfVk0pICYmIG1hcGNvdW50KSB7Ci0J CQlwcl9hbGVydCgidG90YWxfbWFwY291bnQ6ICV1LCBwYWdlX2NvdW50KCk6 ICV1XG4iLAotCQkJCQltYXBjb3VudCwgY291bnQpOwotCQkJaWYgKFBhZ2VU YWlsKHBhZ2UpKQotCQkJCWR1bXBfcGFnZShoZWFkLCBOVUxMKTsKLQkJCWR1 bXBfcGFnZShwYWdlLCAidG90YWxfbWFwY291bnQoaGVhZCkgPiAwIik7Ci0J CQlCVUcoKTsKLQkJfQogCQlzcGluX3VubG9jaygmcGdkYXRhLT5zcGxpdF9x dWV1ZV9sb2NrKTsKLWZhaWw6CQlpZiAobWFwcGluZykKK2ZhaWw6CisJCWlm IChtYXBwaW5nKQogCQkJc3Bpbl91bmxvY2soJm1hcHBpbmctPnRyZWVfbG9j ayk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoem9uZV9scnVfbG9jayhw YWdlX3pvbmUoaGVhZCkpLCBmbGFncyk7CiAJCXJlbWFwX3BhZ2UoaGVhZCk7 Ci0tIAoyLjMyLjAuMjg4Lmc2MmE4ZDIyNGU2LWdvb2cKCgAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAADQuMDkvUGF4SGVhZGVycy4yNDUxMy8wMDA0LW1tLWZ1 dGV4LWZpeC1zaGFyZWQtZnV0ZXgtcGdvZmYtb24tc2htZW0taHVnZS1wYWdl LnBhdGNoAAAAAAAAAAAAAAAAAAAAAAAwMDAwNjQ0ADAwMDAwMDAAMDAwMDAw MAAwMDAwMDAwMDEzMgAxNDA2NTQ3MDIxMgAwMjQyMTEAIHgAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA dXN0YXIAMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzAgbXRpbWU9MTYyNDY2 NjI1MC40MjY2MDIwMjUKMzAgYXRpbWU9MTYyNDY2NjI4Mi44OTQ3OTk1NzUK MzAgY3RpbWU9MTYyNDY2NjI1MC40MzA2MDIwNDkKAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAA0LjA5LzAwMDQtbW0tZnV0ZXgtZml4LXNoYXJlZC1mdXRleC1wZ29mZi1v bi1zaG1lbS1odWdlLXBhZ2UucGF0Y2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAMDAwMDY0MAAwMDAxNzUwADAwMDAxNDQAMDAwMDAwMTMz MDUAMTQwNjU0NzAyMTIAMDI0NjI2ACAwAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyADAwaHVn aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c2VycwAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAADAwMDAwMDAAMDAwMDAwMAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAEZyb20gYjQ4OWNiNDM2NjAwOWQ3NWQ0MTM3 ZDgxY2I0NGFiNzUwMDc4YmFjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSHVnaCBEaWNraW5zIDxodWdoZEBnb29nbGUuY29tPgpEYXRlOiBU aHUsIDI0IEp1biAyMDIxIDE4OjM5OjUyIC0wNzAwClN1YmplY3Q6IFtQQVRD SCA0LzRdIG1tLCBmdXRleDogZml4IHNoYXJlZCBmdXRleCBwZ29mZiBvbiBz aG1lbSBodWdlIHBhZ2UKClsgVXBzdHJlYW0gY29tbWl0IGZlMTliZDNkYWUz ZDE1ZDJmYmZkYjNkZTg4MzlhNmVhMGZlOTQyNjQgXQoKSWYgbW9yZSB0aGFu IG9uZSBmdXRleCBpcyBwbGFjZWQgb24gYSBzaG1lbSBodWdlIHBhZ2UsIGl0 IGNhbiBoYXBwZW4KdGhhdCB3YWtpbmcgdGhlIHNlY29uZCB3YWtlcyB0aGUg Zmlyc3QgaW5zdGVhZCwgYW5kIGxlYXZlcyB0aGUgc2Vjb25kCndhaXRpbmc6 IHRoZSBrZXkncyBzaGFyZWQucGdvZmYgaXMgd3JvbmcuCgpXaGVuIDMuMTEg Y29tbWl0IDEzZDYwZjRiNmFiNSAoImZ1dGV4OiBUYWtlIGh1Z2VwYWdlcyBp bnRvIGFjY291bnQgd2hlbgpnZW5lcmF0aW5nIGZ1dGV4X2tleSIpLCB0aGUg b25seSBzaGFyZWQgaHVnZSBwYWdlcyBjYW1lIGZyb20gaHVnZXRsYmZzLAph bmQgdGhlIGNvZGUgYWRkZWQgdG8gZGVhbCB3aXRoIGl0cyBleGNlcHRpb25h bCBwYWdlLT5pbmRleCB3YXMgcHV0IGludG8KaHVnZXRsYiBzb3VyY2UuICBU aGVuIHRoYXQgd2FzIG1pc3NlZCB3aGVuIDQuOCBhZGRlZCBzaG1lbSBodWdl IHBhZ2VzLgoKcGFnZV90b19wZ29mZigpIGlzIHdoYXQgb3RoZXJzIHVzZSBm b3IgdGhpcyBub3dhZGF5czogZXhjZXB0IHRoYXQsIGFzCmN1cnJlbnRseSB3 cml0dGVuLCBpdCBnaXZlcyB0aGUgcmlnaHQgYW5zd2VyIG9uIGh1Z2V0bGJm cyBoZWFkLCBidXQKbm9uc2Vuc2Ugb24gaHVnZXRsYmZzIHRhaWxzLiAgRml4 IHRoYXQgYnkgY2FsbGluZyBodWdldGxiZnMtc3BlY2lmaWMKaHVnZXRsYl9i YXNlcGFnZV9pbmRleCgpIG9uIFBhZ2VIdWdlIHRhaWxzIGFzIHdlbGwgYXMg b24gaGVhZC4KClllcywgaXQncyB1bmNvbnZlbnRpb25hbCB0byBkZWNsYXJl IGh1Z2V0bGJfYmFzZXBhZ2VfaW5kZXgoKSB0aGVyZSBpbgpwYWdlbWFwLmgs IHJhdGhlciB0aGFuIGluIGh1Z2V0bGIuaDsgYnV0IEkgZG8gbm90IGV4cGVj dCBhbnl0aGluZyBidXQKcGFnZV90b19wZ29mZigpIGV2ZXIgdG8gbmVlZCBp dC4KCltha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnOiBnaXZlIGh1Z2V0bGJf YmFzZXBhZ2VfaW5kZXgoKSBwcm90b3R5cGUgdGhlIGNvcnJlY3Qgc2NvcGVd CgpMaW5rOiBodHRwczovL2xrbWwua2VybmVsLm9yZy9yL2IxN2Q5NDZiLWQw OS0zMjZlLWI0MmEtNTI4ODRjMzZkZjMyQGdvb2dsZS5jb20KRml4ZXM6IDgw MGQ4YzYzYjJlOSAoInNobWVtOiBhZGQgaHVnZSBwYWdlcyBzdXBwb3J0IikK UmVwb3J0ZWQtYnk6IE5lZWwgTmF0dSA8bmVlbG5hdHVAZ29vZ2xlLmNvbT4K U2lnbmVkLW9mZi1ieTogSHVnaCBEaWNraW5zIDxodWdoZEBnb29nbGUuY29t PgpSZXZpZXdlZC1ieTogTWF0dGhldyBXaWxjb3ggKE9yYWNsZSkgPHdpbGx5 QGluZnJhZGVhZC5vcmc+CkFja2VkLWJ5OiBUaG9tYXMgR2xlaXhuZXIgPHRn bHhAbGludXRyb25peC5kZT4KQ2M6ICJLaXJpbGwgQS4gU2h1dGVtb3YiIDxr aXJpbGwuc2h1dGVtb3ZAbGludXguaW50ZWwuY29tPgpDYzogWmhhbmcgWWkg PHdldHB6eUBnbWFpbC5jb20+CkNjOiBNZWwgR29ybWFuIDxtZ29ybWFuQHRl Y2hzaW5ndWxhcml0eS5uZXQ+CkNjOiBNaWtlIEtyYXZldHogPG1pa2Uua3Jh dmV0ekBvcmFjbGUuY29tPgpDYzogSW5nbyBNb2xuYXIgPG1pbmdvQHJlZGhh dC5jb20+CkNjOiBQZXRlciBaaWpsc3RyYSA8cGV0ZXJ6QGluZnJhZGVhZC5v cmc+CkNjOiBEYXJyZW4gSGFydCA8ZHZoYXJ0QGluZnJhZGVhZC5vcmc+CkNj OiBEYXZpZGxvaHIgQnVlc28gPGRhdmVAc3Rnb2xhYnMubmV0PgpDYzogPHN0 YWJsZUB2Z2VyLmtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IEFuZHJldyBN b3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+ClNpZ25lZC1vZmYt Ynk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9u Lm9yZz4KCk5vdGUgb24gc3RhYmxlIGJhY2twb3J0OiBsZWF2ZSByZWR1bmRh bnQgI2luY2x1ZGUgPGxpbnV4L2h1Z2V0bGIuaD4KaW4ga2VybmVsL2Z1dGV4 LmMsIHRvIGF2b2lkIGNvbmZsaWN0IG92ZXIgdGhlIGhlYWRlciBmaWxlcyBp bmNsdWRlZC4KUmVzb2x2ZWQgdHJpdmlhbCBjb25mbGljdHMgaW4gaW5jbHVk ZS9saW51eC9odWdldGxiLmguCgpTaWduZWQtb2ZmLWJ5OiBIdWdoIERpY2tp bnMgPGh1Z2hkQGdvb2dsZS5jb20+Ci0tLQogaW5jbHVkZS9saW51eC9odWdl dGxiLmggfCAxNSAtLS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvcGFn ZW1hcC5oIHwgMTMgKysrKysrKy0tLS0tLQoga2VybmVsL2Z1dGV4LmMgICAg ICAgICAgfCAgMiArLQogbW0vaHVnZXRsYi5jICAgICAgICAgICAgfCAgNSAr LS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDI2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaHVnZXRs Yi5oIGIvaW5jbHVkZS9saW51eC9odWdldGxiLmgKaW5kZXggOGRkMzY1YzY1 NDc4Li42NDE3YmM4NDVkYjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgv aHVnZXRsYi5oCisrKyBiL2luY2x1ZGUvbGludXgvaHVnZXRsYi5oCkBAIC00 NTEsMTcgKzQ1MSw2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGhzdGF0ZV9pbmRl eChzdHJ1Y3QgaHN0YXRlICpoKQogCXJldHVybiBoIC0gaHN0YXRlczsKIH0K IAotcGdvZmZfdCBfX2Jhc2VwYWdlX2luZGV4KHN0cnVjdCBwYWdlICpwYWdl KTsKLQotLyogUmV0dXJuIHBhZ2UtPmluZGV4IGluIFBBR0VfU0laRSB1bml0 cyAqLwotc3RhdGljIGlubGluZSBwZ29mZl90IGJhc2VwYWdlX2luZGV4KHN0 cnVjdCBwYWdlICpwYWdlKQotewotCWlmICghUGFnZUNvbXBvdW5kKHBhZ2Up KQotCQlyZXR1cm4gcGFnZS0+aW5kZXg7Ci0KLQlyZXR1cm4gX19iYXNlcGFn ZV9pbmRleChwYWdlKTsKLX0KLQogZXh0ZXJuIGludCBkaXNzb2x2ZV9mcmVl X2h1Z2VfcGFnZXModW5zaWduZWQgbG9uZyBzdGFydF9wZm4sCiAJCQkJICAg IHVuc2lnbmVkIGxvbmcgZW5kX3Bmbik7CiBzdGF0aWMgaW5saW5lIGJvb2wg aHVnZXBhZ2VfbWlncmF0aW9uX3N1cHBvcnRlZChzdHJ1Y3QgaHN0YXRlICpo KQpAQCAtNTI5LDEwICs1MTgsNiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVk IGludCBwYWdlc19wZXJfaHVnZV9wYWdlKHN0cnVjdCBoc3RhdGUgKmgpCiAj ZGVmaW5lIGhzdGF0ZV9pbmRleF90b19zaGlmdChpbmRleCkgMAogI2RlZmlu ZSBoc3RhdGVfaW5kZXgoaCkgMAogCi1zdGF0aWMgaW5saW5lIHBnb2ZmX3Qg YmFzZXBhZ2VfaW5kZXgoc3RydWN0IHBhZ2UgKnBhZ2UpCi17Ci0JcmV0dXJu IHBhZ2UtPmluZGV4OwotfQogI2RlZmluZSBkaXNzb2x2ZV9mcmVlX2h1Z2Vf cGFnZXMocywgZSkJMAogI2RlZmluZSBodWdlcGFnZV9taWdyYXRpb25fc3Vw cG9ydGVkKGgpCWZhbHNlCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv cGFnZW1hcC5oIGIvaW5jbHVkZS9saW51eC9wYWdlbWFwLmgKaW5kZXggMzVm NGM0ZDljNDA1Li44NjcyMjkxNjMzZGQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv bGludXgvcGFnZW1hcC5oCisrKyBiL2luY2x1ZGUvbGludXgvcGFnZW1hcC5o CkBAIC0zNzQsNyArMzc0LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFn ZSAqcmVhZF9tYXBwaW5nX3BhZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcsCiB9CiAKIC8qCi0gKiBHZXQgaW5kZXggb2YgdGhlIHBhZ2Ugd2l0 aCBpbiByYWRpeC10cmVlCisgKiBHZXQgaW5kZXggb2YgdGhlIHBhZ2Ugd2l0 aGluIHJhZGl4LXRyZWUgKGJ1dCBub3QgZm9yIGh1Z2V0bGIgcGFnZXMpLgog ICogKFRPRE86IHJlbW92ZSBvbmNlIGh1Z2V0bGIgcGFnZXMgd2lsbCBoYXZl IC0+aW5kZXggaW4gUEFHRV9TSVpFKQogICovCiBzdGF0aWMgaW5saW5lIHBn b2ZmX3QgcGFnZV90b19pbmRleChzdHJ1Y3QgcGFnZSAqcGFnZSkKQEAgLTM5 MywxNSArMzkzLDE2IEBAIHN0YXRpYyBpbmxpbmUgcGdvZmZfdCBwYWdlX3Rv X2luZGV4KHN0cnVjdCBwYWdlICpwYWdlKQogCXJldHVybiBwZ29mZjsKIH0K IAorZXh0ZXJuIHBnb2ZmX3QgaHVnZXRsYl9iYXNlcGFnZV9pbmRleChzdHJ1 Y3QgcGFnZSAqcGFnZSk7CisKIC8qCi0gKiBHZXQgdGhlIG9mZnNldCBpbiBQ QUdFX1NJWkUuCi0gKiAoVE9ETzogaHVnZXBhZ2Ugc2hvdWxkIGhhdmUgLT5p bmRleCBpbiBQQUdFX1NJWkUpCisgKiBHZXQgdGhlIG9mZnNldCBpbiBQQUdF X1NJWkUgKGV2ZW4gZm9yIGh1Z2V0bGIgcGFnZXMpLgorICogKFRPRE86IGh1 Z2V0bGIgcGFnZXMgc2hvdWxkIGhhdmUgLT5pbmRleCBpbiBQQUdFX1NJWkUp CiAgKi8KIHN0YXRpYyBpbmxpbmUgcGdvZmZfdCBwYWdlX3RvX3Bnb2ZmKHN0 cnVjdCBwYWdlICpwYWdlKQogewotCWlmICh1bmxpa2VseShQYWdlSGVhZEh1 Z2UocGFnZSkpKQotCQlyZXR1cm4gcGFnZS0+aW5kZXggPDwgY29tcG91bmRf b3JkZXIocGFnZSk7Ci0KKwlpZiAodW5saWtlbHkoUGFnZUh1Z2UocGFnZSkp KQorCQlyZXR1cm4gaHVnZXRsYl9iYXNlcGFnZV9pbmRleChwYWdlKTsKIAly ZXR1cm4gcGFnZV90b19pbmRleChwYWdlKTsKIH0KIApkaWZmIC0tZ2l0IGEv a2VybmVsL2Z1dGV4LmMgYi9rZXJuZWwvZnV0ZXguYwppbmRleCAzMjRmYjg1 Yzg5MDQuLmIzODIzNzM2YWY2ZiAxMDA2NDQKLS0tIGEva2VybmVsL2Z1dGV4 LmMKKysrIGIva2VybmVsL2Z1dGV4LmMKQEAgLTcxNyw3ICs3MTcsNyBAQCBn ZXRfZnV0ZXhfa2V5KHUzMiBfX3VzZXIgKnVhZGRyLCBpbnQgZnNoYXJlZCwg dW5pb24gZnV0ZXhfa2V5ICprZXksIGludCBydykKIAogCQlrZXktPmJvdGgu b2Zmc2V0IHw9IEZVVF9PRkZfSU5PREU7IC8qIGlub2RlLWJhc2VkIGtleSAq LwogCQlrZXktPnNoYXJlZC5pX3NlcSA9IGdldF9pbm9kZV9zZXF1ZW5jZV9u dW1iZXIoaW5vZGUpOwotCQlrZXktPnNoYXJlZC5wZ29mZiA9IGJhc2VwYWdl X2luZGV4KHRhaWwpOworCQlrZXktPnNoYXJlZC5wZ29mZiA9IHBhZ2VfdG9f cGdvZmYodGFpbCk7CiAJCXJjdV9yZWFkX3VubG9jaygpOwogCX0KIApkaWZm IC0tZ2l0IGEvbW0vaHVnZXRsYi5jIGIvbW0vaHVnZXRsYi5jCmluZGV4IGI3 MjE1YjA4MDdjYS4uZGU4OWU5Mjk1ZjZjIDEwMDY0NAotLS0gYS9tbS9odWdl dGxiLmMKKysrIGIvbW0vaHVnZXRsYi5jCkBAIC0xMzgwLDE1ICsxMzgwLDEy IEBAIGludCBQYWdlSGVhZEh1Z2Uoc3RydWN0IHBhZ2UgKnBhZ2VfaGVhZCkK IAlyZXR1cm4gZ2V0X2NvbXBvdW5kX3BhZ2VfZHRvcihwYWdlX2hlYWQpID09 IGZyZWVfaHVnZV9wYWdlOwogfQogCi1wZ29mZl90IF9fYmFzZXBhZ2VfaW5k ZXgoc3RydWN0IHBhZ2UgKnBhZ2UpCitwZ29mZl90IGh1Z2V0bGJfYmFzZXBh Z2VfaW5kZXgoc3RydWN0IHBhZ2UgKnBhZ2UpCiB7CiAJc3RydWN0IHBhZ2Ug KnBhZ2VfaGVhZCA9IGNvbXBvdW5kX2hlYWQocGFnZSk7CiAJcGdvZmZfdCBp bmRleCA9IHBhZ2VfaW5kZXgocGFnZV9oZWFkKTsKIAl1bnNpZ25lZCBsb25n IGNvbXBvdW5kX2lkeDsKIAotCWlmICghUGFnZUh1Z2UocGFnZV9oZWFkKSkK LQkJcmV0dXJuIHBhZ2VfaW5kZXgocGFnZSk7Ci0KIAlpZiAoY29tcG91bmRf b3JkZXIocGFnZV9oZWFkKSA+PSBNQVhfT1JERVIpCiAJCWNvbXBvdW5kX2lk eCA9IHBhZ2VfdG9fcGZuKHBhZ2UpIC0gcGFnZV90b19wZm4ocGFnZV9oZWFk KTsKIAllbHNlCi0tIAoyLjMyLjAuMjg4Lmc2MmE4ZDIyNGU2LWdvb2cKCgAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAA== --0-2110569515-1624667894=:24517--