From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by sourceware.org (Postfix) with ESMTPS id CF576385700E for ; Wed, 14 Oct 2020 03:30:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org CF576385700E Received: by mail-wr1-x42a.google.com with SMTP id t9so1946306wrq.11 for ; Tue, 13 Oct 2020 20:30:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=XuM+HGhPQld7tMNfFCUhiPwIvlDwCLPaUtT1uWnLg0M=; b=QcbId5Qx6tfRV+6uuz42Wv5XZVsxYusyxwlpbqJoY9sz+FQ/z8Vw+r2IyDY/Nua2fd 0k4b1mHS9MO/dPZcCjfRQPP9418yiuVpMHqVCrAQPmxI6prGE/ovbycxWCLmG/6rvZio +YUjgL83GWvlOOUWnSBHiLCMkWKCVLmvx9YUXOuuTQBO54ruJYMB1n8w9UHOQDcN/Npt loIf4Ly74kX7LQoElTSQkgrUWr2EsJAMIvEHHNfq/KkT0aTwQGpQUN9qZSgeQvcLeQmY QvHKWSLvzSfTIulyssi0zXvDGxlCg/VCE005koD31h/Gg6icikffCsR9UK95coIwgpb+ 78gw== X-Gm-Message-State: AOAM533FdiP+0LgRF9udSVtAxvR478sTyMLu8noccFR/LW6l9zWkT+q7 riHlDiTXT2XJ3jOxIe5etWFV9x7mEkv7VEY9yLz+rGTmNiuw4Q== X-Google-Smtp-Source: ABdhPJw4N+dAkoK9GDNUEHcv7W/XqmjxXi9BWTiPOhkJ5hKkvM0a5Y+bHwXpeXDpyFpwPrG+iDbVv711LrsaJQboyog= X-Received: by 2002:adf:8290:: with SMTP id 16mr3064473wrc.103.1602646251713; Tue, 13 Oct 2020 20:30:51 -0700 (PDT) MIME-Version: 1.0 From: Hongyu Wang Date: Wed, 14 Oct 2020 11:27:08 +0800 Message-ID: Subject: [Patch] x86: Enable GCC support for Intel AVX-VNNI extension To: GCC Patches , Kirill Yukhin Content-Type: multipart/mixed; boundary="00000000000088d29c05b1992838" X-Spam-Status: No, score=-10.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Oct 2020 03:31:01 -0000 --00000000000088d29c05b1992838 Content-Type: text/plain; charset="UTF-8" Hi: This patch is about to support Intel AVX-VNNI instructions. AVX-VNNI is an equivalent to AVX512-VNNI with VEX encoding. The instructions are same, but with extra {vex} prefix to distinguish from AVX512-VNNI instructions in assembler. For more details, please refer to https://software.intel.com/content/dam/develop/external/us/en/documents/architecture-instruction-set-extensions-programming-reference.pdf Bootstrap ok, regression test on i386/x86 backend is ok. OK for master? 2020-10-13 Hongtao Liu Hongyu Wang gcc/ * common/config/i386/cpuinfo.h (get_available_features): Detect AVXVNNI. * common/config/i386/i386-common.c (OPTION_MASK_ISA2_AVXVNNI_SET, OPTION_MASK_ISA2_AVXVNNI_UNSET, OPTION_MASK_ISA2_AVX2_UNSET): New. (ix86_hanlde_option): Handle -mavxvnni, unset avxvnni when avx2 is disabled. * common/config/i386/i386-cpuinfo.h (enum processor_features): Add FEATURE_AVXVNNI. * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY for avxvnni. * config.gcc: Add avxvnniintrin.h. * config/i386/avx512vnniintrin.h: Remove 128/256 bit non-mask intrinsics. * config/i386/avxvnniintrin.h: New header file. * config/i386/cpuid.h (bit_AVXVNNI): New. * config/i386/i386-builtins.c (def_builtin): Handle AVXVNNI mask for unified builtin. * config/i386/i386-builtin.def (BDESC): Adjust AVX512VNNI builtins for AVXVNNI. * config/i386/i386-c.c (ix86_target_macros_internal): Define __AVXVNNI__. * config/i386/i386-expand.c (ix86_expand_builtin): Handle bisa for AVXVNNI to support unified intrinsic name, since there is no dependency between AVX512VNNI and AVXVNNI. * config/i386/i386-options.c (isa2_opts): Add -mavxvnni. (ix86_valid_target_attribute_inner_p): Handle avxnnni. (ix86_valid_target_attribute_inner_p): Ditto. * config/i386/i386.h (TARGET_AVXVNNI, TARGET_AVXVNNI_P, TARGET_AVXVNNI_P, PTA_AVXVNNI): New. (PTA_SAPPHIRERAPIDS): Add AVX_VNNI. (PTA_ALDERLAKE): Likewise. * config/i386/i386.md ("isa"): Add avxvnni, avx512vnnivl. ("enabled"): Adjust for avxvnni and avx512vnnivl. * config/i386/i386.opt: Add option -mavxvnni. * config/i386/immintrin.h: Include avxvnniintrin.h. * config/i386/sse.md (vpdpbusd_): Adjust for AVXVNNI. (vpdpbusds_): Likewise. (vpdpwssd_): Likewise. (vpdpwssds_): Likewise. (vpdpbusd_v16si): New. (vpdpbusds_v16si): Likewise. (vpdpwssd_v16si): Likewise. (vpdpwssds_v16si): Likewise. * doc/invoke.texi: Document -mavxvnni. * doc/extend.texi: Document avxvnni. * doc/sourcebuild.texi: Document target avxvnni. gcc/testsuite/ * gcc.target/i386/avx512vl-vnni-1.c: Rename.. * gcc.target/i386/avx512vl-vnni-1a.c: To This. * gcc.target/i386/avx512vl-vnni-1b.c: New test. * gcc.target/i386/avx512vl-vnni-2.c: Ditto. * gcc.target/i386/avx512vl-vnni-3.c: Ditto. * gcc.target/i386/avx-vnni-1.c: Ditto. * gcc.target/i386/avx-vnni-2.c: Ditto. * gcc.target/i386/avx-vnni-3.c: Ditto. * gcc.target/i386/avx-vnni-4.c: Ditto. * gcc.target/i386/avx-vnni-5.c: Ditto. * gcc.target/i386/avx-vnni-6.c: Ditto. * gcc.target/i386/avx-vpdpbusd-2.c: Ditto. * gcc.target/i386/avx-vpdpbusds-2.c: Ditto. * gcc.target/i386/avx-vpdpwssd-2.c: Ditto. * gcc.target/i386/avx-vpdpwssds-2.c: Ditto. * gcc.target/i386/vnni_inline_error.c: Ditto. * gcc.target/i386/avx512vnnivl-builtin.c: Ditto. * gcc.target/i386/avxvnni-builtin.c: Ditto. * gcc.target/i386/funcspec-56.inc: Add new target attribute. * gcc.target/i386/pr83488-3.c: Adjust. * gcc.target/i386/sse-12.c: Add -mavxvnni. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-14.c: Ditto. * gcc.target/i386/sse-22.c: Ditto. * gcc.target/i386/sse-23.c: Ditto. * g++.dg/other/i386-2.C: Ditto. * g++.dg/other/i386-3.C: Ditto. * lib/target-supports.exp (check_effective_target_avxvnni): New proc. -- Regards, Hongyu, Wang --00000000000088d29c05b1992838 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Support-Intel-AVX-VNNI.patch" Content-Disposition: attachment; filename="0001-Support-Intel-AVX-VNNI.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kg8u0ifx0 RnJvbSBjMjk3Zjc5MGY3ZjY1NzlkMmM2NWU3NGUzYzk3NmZkYjBlNTM1MTkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBsaXVob25ndCA8aG9uZ3Rhby5saXVAaW50ZWwuY29tPgpEYXRl OiBUdWUsIDEzIE9jdCAyMDIwIDE2OjE2OjE2ICswODAwClN1YmplY3Q6IFtQQVRDSF0gU3VwcG9y dCBJbnRlbCBBVlggVk5OSQoKMjAyMC0xMC0xMyAgSG9uZ3RhbyBMaXUgIDxob25ndGFvLmxpdUBp bnRlbC5jb20+CgkgICAgSG9uZ3l1IFdhbmcgIDxob25neXUud2FuZ0BpbnRlbC5jb20+CgpnY2Mv CgkqIGNvbW1vbi9jb25maWcvaTM4Ni9jcHVpbmZvLmggKGdldF9hdmFpbGFibGVfZmVhdHVyZXMp OgoJRGV0ZWN0IEFWWFZOTkkuCgkqIGNvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWNvbW1vbi5jCgko T1BUSU9OX01BU0tfSVNBMl9BVlhWTk5JX1NFVCwKCU9QVElPTl9NQVNLX0lTQTJfQVZYVk5OSV9V TlNFVCwgT1BUSU9OX01BU0tfSVNBMl9BVlgyX1VOU0VUKToKCU5ldy4KCShpeDg2X2hhbmxkZV9v cHRpb24pOiBIYW5kbGUgLW1hdnh2bm5pLCB1bnNldCBhdnh2bm5pIHdoZW4KCWF2eDIgaXMgZGlz YWJsZWQuCgkqIGNvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWNwdWluZm8uaCAoZW51bSBwcm9jZXNz b3JfZmVhdHVyZXMpOgoJQWRkIEZFQVRVUkVfQVZYVk5OSS4KCSogY29tbW9uL2NvbmZpZy9pMzg2 L2kzODYtaXNhcy5oOiBBZGQgSVNBX05BTUVTX1RBQkxFX0VOVFJZCglmb3IgYXZ4dm5uaS4KCSog Y29uZmlnLmdjYzogQWRkIGF2eHZubmlpbnRyaW4uaC4KCSogY29uZmlnL2kzODYvYXZ4NTEydm5u aWludHJpbi5oOiBSZW1vdmUgMTI4LzI1NiBiaXQgbm9uLW1hc2sKCWludHJpbnNpY3MuCgkqIGNv bmZpZy9pMzg2L2F2eHZubmlpbnRyaW4uaDogTmV3IGhlYWRlciBmaWxlLgoJKiBjb25maWcvaTM4 Ni9jcHVpZC5oIChiaXRfQVZYVk5OSSk6IE5ldy4KCSogY29uZmlnL2kzODYvaTM4Ni1idWlsdGlu cy5jIChkZWZfYnVpbHRpbik6IEhhbmRsZSBBVlhWTk5JIG1hc2sKCWZvciB1bmlmaWVkIGJ1aWx0 aW4uCgkqIGNvbmZpZy9pMzg2L2kzODYtYnVpbHRpbi5kZWYgKEJERVNDKTogQWRqdXN0IEFWWDUx MlZOTkkKCWJ1aWx0aW5zIGZvciBBVlhWTk5JLgoJKiBjb25maWcvaTM4Ni9pMzg2LWMuYyAoaXg4 Nl90YXJnZXRfbWFjcm9zX2ludGVybmFsKTogRGVmaW5lCglfX0FWWFZOTklfXy4KCSogY29uZmln L2kzODYvaTM4Ni1leHBhbmQuYyAoaXg4Nl9leHBhbmRfYnVpbHRpbik6IEhhbmRsZSBiaXNhCglm b3IgQVZYVk5OSSB0byBzdXBwb3J0IHVuaWZpZWQgaW50cmluc2ljIG5hbWUsIHNpbmNlIHRoZXJl IGlzIG5vCglkZXBlbmRlbmN5IGJldHdlZW4gQVZYNTEyVk5OSSBhbmQgQVZYVk5OSS4KCSogY29u ZmlnL2kzODYvaTM4Ni1vcHRpb25zLmMgKGlzYTJfb3B0cyk6IEFkZCAtbWF2eHZubmkuCgkoaXg4 Nl92YWxpZF90YXJnZXRfYXR0cmlidXRlX2lubmVyX3ApOiBIYW5kbGUgYXZ4bm5uaS4KCShpeDg2 X3ZhbGlkX3RhcmdldF9hdHRyaWJ1dGVfaW5uZXJfcCk6IERpdHRvLgoJKiBjb25maWcvaTM4Ni9p Mzg2LmggKFRBUkdFVF9BVlhWTk5JLCBUQVJHRVRfQVZYVk5OSV9QLAoJVEFSR0VUX0FWWFZOTklf UCwgUFRBX0FWWFZOTkkpOiBOZXcuCgkoUFRBX1NBUFBISVJFUkFQSURTKTogQWRkIEFWWF9WTk5J LgoJKFBUQV9BTERFUkxBS0UpOiBMaWtld2lzZS4KCSogY29uZmlnL2kzODYvaTM4Ni5tZCAoImlz YSIpOiBBZGQgYXZ4dm5uaSwgYXZ4NTEydm5uaXZsLgoJKCJlbmFibGVkIik6IEFkanVzdCBmb3Ig YXZ4dm5uaSBhbmQgYXZ4NTEydm5uaXZsLgoJKiBjb25maWcvaTM4Ni9pMzg2Lm9wdDogQWRkIG9w dGlvbiAtbWF2eHZubmkuCgkqIGNvbmZpZy9pMzg2L2ltbWludHJpbi5oOiBJbmNsdWRlIGF2eHZu bmlpbnRyaW4uaC4KCSogY29uZmlnL2kzODYvc3NlLm1kICh2cGRwYnVzZF88bW9kZT4pOiBBZGp1 c3QgZm9yIEFWWFZOTkkuCgkodnBkcGJ1c2RzXzxtb2RlPik6IExpa2V3aXNlLgoJKHZwZHB3c3Nk Xzxtb2RlPik6IExpa2V3aXNlLgoJKHZwZHB3c3Nkc188bW9kZT4pOiBMaWtld2lzZS4KCSh2cGRw YnVzZF92MTZzaSk6IE5ldy4KCSh2cGRwYnVzZHNfdjE2c2kpOiBMaWtld2lzZS4KCSh2cGRwd3Nz ZF92MTZzaSk6IExpa2V3aXNlLgoJKHZwZHB3c3Nkc192MTZzaSk6IExpa2V3aXNlLgoJKiBkb2Mv aW52b2tlLnRleGk6IERvY3VtZW50IC1tYXZ4dm5uaS4KCSogZG9jL2V4dGVuZC50ZXhpOiBEb2N1 bWVudCBhdnh2bm5pLgoJKiBkb2Mvc291cmNlYnVpbGQudGV4aTogRG9jdW1lbnQgdGFyZ2V0IGF2 eHZubmkuCgpnY2MvdGVzdHN1aXRlLwoKCSogZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZubmkt MS5jOiBSZW5hbWUuLgoJKiBnY2MudGFyZ2V0L2kzODYvYXZ4NTEydmwtdm5uaS0xYS5jOiBUbyBU aGlzLgoJKiBnY2MudGFyZ2V0L2kzODYvYXZ4NTEydmwtdm5uaS0xYi5jOiBOZXcgdGVzdC4KCSog Z2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZubmktMi5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9p Mzg2L2F2eDUxMnZsLXZubmktMy5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L2F2eC12bm5p LTEuYzogRGl0dG8uCgkqIGdjYy50YXJnZXQvaTM4Ni9hdngtdm5uaS0yLmM6IERpdHRvLgoJKiBn Y2MudGFyZ2V0L2kzODYvYXZ4LXZubmktMy5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2L2F2 eC12bm5pLTQuYzogRGl0dG8uCgkqIGdjYy50YXJnZXQvaTM4Ni9hdngtdm5uaS01LmM6IERpdHRv LgoJKiBnY2MudGFyZ2V0L2kzODYvYXZ4LXZubmktNi5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9p Mzg2L2F2eC12cGRwYnVzZC0yLmM6IERpdHRvLgoJKiBnY2MudGFyZ2V0L2kzODYvYXZ4LXZwZHBi dXNkcy0yLmM6IERpdHRvLgoJKiBnY2MudGFyZ2V0L2kzODYvYXZ4LXZwZHB3c3NkLTIuYzogRGl0 dG8uCgkqIGdjYy50YXJnZXQvaTM4Ni9hdngtdnBkcHdzc2RzLTIuYzogRGl0dG8uCgkqIGdjYy50 YXJnZXQvaTM4Ni92bm5pX2lubGluZV9lcnJvci5jOiBEaXR0by4KCSogZ2NjLnRhcmdldC9pMzg2 L2F2eDUxMnZubml2bC1idWlsdGluLmM6IERpdHRvLgoJKiBnY2MudGFyZ2V0L2kzODYvYXZ4dm5u aS1idWlsdGluLmM6IERpdHRvLgoJKiBnY2MudGFyZ2V0L2kzODYvZnVuY3NwZWMtNTYuaW5jOiBB ZGQgbmV3IHRhcmdldCBhdHRyaWJ1dGUuCgkqIGdjYy50YXJnZXQvaTM4Ni9wcjgzNDg4LTMuYzog QWRqdXN0LgoJKiBnY2MudGFyZ2V0L2kzODYvc3NlLTEyLmM6IEFkZCAtbWF2eHZubmkuCgkqIGdj Yy50YXJnZXQvaTM4Ni9zc2UtMTMuYzogRGl0dG8uCgkqIGdjYy50YXJnZXQvaTM4Ni9zc2UtMTQu YzogRGl0dG8uCgkqIGdjYy50YXJnZXQvaTM4Ni9zc2UtMjIuYzogRGl0dG8uCgkqIGdjYy50YXJn ZXQvaTM4Ni9zc2UtMjMuYzogRGl0dG8uCgkqIGcrKy5kZy9vdGhlci9pMzg2LTIuQzogRGl0dG8u CgkqIGcrKy5kZy9vdGhlci9pMzg2LTMuQzogRGl0dG8uCgkqIGxpYi90YXJnZXQtc3VwcG9ydHMu ZXhwIChjaGVja19lZmZlY3RpdmVfdGFyZ2V0X2F2eHZubmkpOgoJTmV3IHByb2MuCi0tLQogZ2Nj L2NvbW1vbi9jb25maWcvaTM4Ni9jcHVpbmZvLmggICAgICAgICAgICAgIHwgICAzICsKIGdjYy9j b21tb24vY29uZmlnL2kzODYvaTM4Ni1jb21tb24uYyAgICAgICAgICB8ICA1MSArKysrKy0tLQog Z2NjL2NvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWNwdWluZm8uaCAgICAgICAgIHwgICAxICsKIGdj Yy9jb21tb24vY29uZmlnL2kzODYvaTM4Ni1pc2FzLmggICAgICAgICAgICB8ICAgMSArCiBnY2Mv Y29uZmlnLmdjYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGdjYy9j b25maWcvaTM4Ni9hdng1MTJ2bm5pdmxpbnRyaW4uaCAgICAgICAgICB8ICA2NCAtLS0tLS0tLS0t CiBnY2MvY29uZmlnL2kzODYvYXZ4dm5uaWludHJpbi5oICAgICAgICAgICAgICAgfCAgOTAgKysr KysrKysrKysrKysKIGdjYy9jb25maWcvaTM4Ni9jcHVpZC5oICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMSArCiBnY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGluLmRlZiAgICAgICAgICAgICAg fCAgMTggKy0tCiBnY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGlucy5jICAgICAgICAgICAgICAg fCAgIDIgKwogZ2NjL2NvbmZpZy9pMzg2L2kzODYtYy5jICAgICAgICAgICAgICAgICAgICAgIHwg ICAyICsKIGdjYy9jb25maWcvaTM4Ni9pMzg2LWV4cGFuZC5jICAgICAgICAgICAgICAgICB8ICAx MiArKwogZ2NjL2NvbmZpZy9pMzg2L2kzODYtb3B0aW9ucy5jICAgICAgICAgICAgICAgIHwgICA4 ICstCiBnY2MvY29uZmlnL2kzODYvaTM4Ni5oICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcg Ky0KIGdjYy9jb25maWcvaTM4Ni9pMzg2Lm1kICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSAr LQogZ2NjL2NvbmZpZy9pMzg2L2kzODYub3B0ICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsK IGdjYy9jb25maWcvaTM4Ni9pbW1pbnRyaW4uaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBn Y2MvY29uZmlnL2kzODYvc3NlLm1kICAgICAgICAgICAgICAgICAgICAgICAgfCAxMTcgKysrKysr KysrKysrKy0tLS0tCiBnY2MvZG9jL2V4dGVuZC50ZXhpICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDUgKwogZ2NjL2RvYy9pbnZva2UudGV4aSAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICA2ICstCiBnY2MvZG9jL3NvdXJjZWJ1aWxkLnRleGkgICAgICAgICAgICAgICAgICAgICAg fCAgIDMgKwogZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3RoZXIvaTM4Ni0yLkMgICAgICAgICAgIHwg ICAyICstCiBnY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9pMzg2LTMuQyAgICAgICAgICAgfCAg IDIgKy0KIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12bm5pLTEuYyAgICB8ICAy OSArKysrKwogZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4LXZubmktMi5jICAgIHwg IDMwICsrKysrCiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdm5uaS0zLmMgICAg fCAgMTYgKysrCiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdm5uaS00LmMgICAg fCAgMTYgKysrCiBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdm5uaS01LmMgICAg fCAgMjkgKysrKysKIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12bm5pLTYuYyAg ICB8ICAyOSArKysrKwogLi4uL2djYy50YXJnZXQvaTM4Ni9hdngtdnBkcGJ1c2QtMi5jICAgICAg ICAgIHwgIDcxICsrKysrKysrKysrCiAuLi4vZ2NjLnRhcmdldC9pMzg2L2F2eC12cGRwYnVzZHMt Mi5jICAgICAgICAgfCAgNzEgKysrKysrKysrKysKIC4uLi9nY2MudGFyZ2V0L2kzODYvYXZ4LXZw ZHB3c3NkLTIuYyAgICAgICAgICB8ICA2NyArKysrKysrKysrCiAuLi4vZ2NjLnRhcmdldC9pMzg2 L2F2eC12cGRwd3NzZHMtMi5jICAgICAgICAgfCAgNjcgKysrKysrKysrKwogLi4uL3thdng1MTJ2 bC12bm5pLTEuYyA9PiBhdng1MTJ2bC12bm5pLTFhLmN9IHwgICAwCiAuLi4vZ2NjLnRhcmdldC9p Mzg2L2F2eDUxMnZsLXZubmktMWIuYyAgICAgICAgfCAgNjkgKysrKysrKysrKysKIC4uLi9nY2Mu dGFyZ2V0L2kzODYvYXZ4NTEydmwtdm5uaS0yLmMgICAgICAgICB8ICAzMCArKysrKwogLi4uL2dj Yy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12bm5pLTMuYyAgICAgICAgIHwgIDQ3ICsrKysrKysKIC4u Li9nY2MudGFyZ2V0L2kzODYvYXZ4NTEydm5uaXZsLWJ1aWx0aW4uYyAgICB8ICAgOCArKwogLi4u L2djYy50YXJnZXQvaTM4Ni9hdnh2bm5pLWJ1aWx0aW4uYyAgICAgICAgIHwgICA4ICsrCiBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9mdW5jc3BlYy01Ni5pbmMgfCAgIDIgKwogZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI4MzQ4OC0zLmMgICAgIHwgICAzICstCiBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMTIuYyAgICAgICAgfCAgIDIgKy0KIGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0xMy5jICAgICAgICB8ICAgMiArLQogZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTE0LmMgICAgICAgIHwgICAyICstCiBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMjIuYyAgICAgICAgfCAgIDQgKy0KIGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0yMy5jICAgICAgICB8ICAgMiArLQogLi4uL2djYy50YXJn ZXQvaTM4Ni92bm5pX2lubGluZV9lcnJvci5jICAgICAgIHwgIDEzICsrCiBnY2MvdGVzdHN1aXRl L2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwICAgICAgICAgfCAgMTIgKysKIDQ4IGZpbGVzIGNoYW5n ZWQsIDkwMyBpbnNlcnRpb25zKCspLCAxMzcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL2NvbmZpZy9pMzg2L2F2eHZubmlpbnRyaW4uaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12bm5pLTEuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12bm5pLTIuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12bm5pLTMuYwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12bm5pLTQu YwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12 bm5pLTUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2F2eC12bm5pLTYuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9pMzg2L2F2eC12cGRwYnVzZC0yLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9hdngtdnBkcGJ1c2RzLTIuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12cGRwd3NzZC0yLmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdnBkcHdzc2RzLTIuYwog cmVuYW1lIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3thdng1MTJ2bC12bm5pLTEuYyA9 PiBhdng1MTJ2bC12bm5pLTFhLmN9ICgxMDAlKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZubmktMWIuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZubmktMi5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEydmwtdm5u aS0zLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9h dng1MTJ2bm5pdmwtYnVpbHRpbi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2kzODYvYXZ4dm5uaS1idWlsdGluLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni92bm5pX2lubGluZV9lcnJvci5jCgpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbW1vbi9jb25maWcvaTM4Ni9jcHVpbmZvLmggYi9nY2MvY29tbW9uL2NvbmZpZy9p Mzg2L2NwdWluZm8uaAppbmRleCBjOTY0NTVjZTY0Zi4uODUzMjY2YzNmNDggMTAwNjQ0Ci0tLSBh L2djYy9jb21tb24vY29uZmlnL2kzODYvY3B1aW5mby5oCisrKyBiL2djYy9jb21tb24vY29uZmln L2kzODYvY3B1aW5mby5oCkBAIC03MDUsNiArNzA1LDkgQEAgZ2V0X2F2YWlsYWJsZV9mZWF0dXJl cyAoc3RydWN0IF9fcHJvY2Vzc29yX21vZGVsICpjcHVfbW9kZWwsCiAJICBfX2NwdWlkX2NvdW50 ICg3LCAxLCBlYXgsIGVieCwgZWN4LCBlZHgpOwogCSAgaWYgKGVheCAmIGJpdF9BVlg1MTJCRjE2 KQogCSAgICBzZXRfZmVhdHVyZSAoRkVBVFVSRV9BVlg1MTJCRjE2KTsKKwkgIGlmIChlYXggJiBi aXRfQVZYVk5OSSkKKwkgICAgc2V0X2ZlYXR1cmUgKEZFQVRVUkVfQVZYVk5OSSk7CisKIAl9CiAg ICAgfQogCmRpZmYgLS1naXQgYS9nY2MvY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtY29tbW9uLmMg Yi9nY2MvY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtY29tbW9uLmMKaW5kZXggNjJhNjIwYjQ0MzAu LjVkZjY0NGY2NTFlIDEwMDY0NAotLS0gYS9nY2MvY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtY29t bW9uLmMKKysrIGIvZ2NjL2NvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWNvbW1vbi5jCkBAIC04NCw2 ICs4NCw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qg c2VlCiAgIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVkJNSTIgfCBPUFRJT05fTUFTS19JU0FfQVZY NTEyRl9TRVQpCiAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTk5JX1NFVCBcCiAgIChP UFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJGX1NFVCkK KyNkZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BVlhWTk5JX1NFVCBPUFRJT05fTUFTS19JU0EyX0FW WFZOTkkKICNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZQT1BDTlREUV9TRVQgXAogICAo T1BUSU9OX01BU0tfSVNBX0FWWDUxMlZQT1BDTlREUSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJG X1NFVCkKICNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUxMkJJVEFMR19TRVQgXApAQCAtMjAx LDYgKzIwMiw4IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBu b3Qgc2VlCiAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9YU0FWRU9QVF9VTlNFVCBPUFRJT05fTUFT S19JU0FfWFNBVkVPUFQKICNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDJfVU5TRVQgXAogICAo T1BUSU9OX01BU0tfSVNBX0FWWDIgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRl9VTlNFVCkKKyNk ZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BVlgyX1VOU0VUIFwKKyAgKE9QVElPTl9NQVNLX0lTQTJf QVZYVk5OSV9VTlNFVCB8IE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyRl9VTlNFVCkKICNkZWZpbmUg T1BUSU9OX01BU0tfSVNBX0FWWDUxMkZfVU5TRVQgXAogICAoT1BUSU9OX01BU0tfSVNBX0FWWDUx MkYgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyQ0RfVU5TRVQgXAogICAgfCBPUFRJT05fTUFTS19J U0FfQVZYNTEyUEZfVU5TRVQgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyRVJfVU5TRVQgXApAQCAt MjIzLDYgKzIyNiw3IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJ ZiBub3Qgc2VlCiAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyNFZOTklXX1VOU0VUIE9Q VElPTl9NQVNLX0lTQTJfQVZYNTEyNFZOTklXCiAjZGVmaW5lIE9QVElPTl9NQVNLX0lTQV9BVlg1 MTJWQk1JMl9VTlNFVCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkJNSTIKICNkZWZpbmUgT1BUSU9O X01BU0tfSVNBX0FWWDUxMlZOTklfVU5TRVQgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkkKKyNk ZWZpbmUgT1BUSU9OX01BU0tfSVNBMl9BVlhWTk5JX1VOU0VUIE9QVElPTl9NQVNLX0lTQTJfQVZY Vk5OSQogI2RlZmluZSBPUFRJT05fTUFTS19JU0FfQVZYNTEyVlBPUENOVERRX1VOU0VUIE9QVElP Tl9NQVNLX0lTQV9BVlg1MTJWUE9QQ05URFEKICNkZWZpbmUgT1BUSU9OX01BU0tfSVNBX0FWWDUx MkJJVEFMR19VTlNFVCBPUFRJT05fTUFTS19JU0FfQVZYNTEyQklUQUxHCiAjZGVmaW5lIE9QVElP Tl9NQVNLX0lTQTJfQVZYNTEyQkYxNl9VTlNFVCBPUFRJT05fTUFTS19JU0EyX0FWWDUxMkJGMTYK QEAgLTM5NSw4ICszOTksOCBAQCBpeDg2X2hhbmRsZV9vcHRpb24gKHN0cnVjdCBnY2Nfb3B0aW9u cyAqb3B0cywKIAl7CiAJICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdzICY9IH5PUFRJT05fTUFTS19J U0FfU1NFX1VOU0VUOwogCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnc19leHBsaWNpdCB8PSBPUFRJ T05fTUFTS19JU0FfU1NFX1VOU0VUOwotCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczIgJj0gfk9Q VElPTl9NQVNLX0lTQTJfQVZYNTEyRl9VTlNFVDsKLQkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3My X2V4cGxpY2l0IHw9IE9QVElPTl9NQVNLX0lTQTJfQVZYNTEyRl9VTlNFVDsKKwkgIG9wdHMtPnhf aXg4Nl9pc2FfZmxhZ3MyICY9IH5PUFRJT05fTUFTS19JU0EyX0FWWDJfVU5TRVQ7CisJICBvcHRz LT54X2l4ODZfaXNhX2ZsYWdzMl9leHBsaWNpdCB8PSBPUFRJT05fTUFTS19JU0EyX0FWWDJfVU5T RVQ7CiAJfQogICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTQxMCw4ICs0MTQsOCBAQCBpeDg2X2hh bmRsZV9vcHRpb24gKHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0cywKIAl7CiAJICBvcHRzLT54X2l4 ODZfaXNhX2ZsYWdzICY9IH5PUFRJT05fTUFTS19JU0FfU1NFMl9VTlNFVDsKIAkgIG9wdHMtPnhf aXg4Nl9pc2FfZmxhZ3NfZXhwbGljaXQgfD0gT1BUSU9OX01BU0tfSVNBX1NTRTJfVU5TRVQ7Ci0J ICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdzMiAmPSB+T1BUSU9OX01BU0tfSVNBMl9BVlg1MTJGX1VO U0VUOwotCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczJfZXhwbGljaXQgfD0gT1BUSU9OX01BU0tf SVNBMl9BVlg1MTJGX1VOU0VUOworCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczIgJj0gfk9QVElP Tl9NQVNLX0lTQTJfQVZYMl9VTlNFVDsKKwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyX2V4cGxp Y2l0IHw9IE9QVElPTl9NQVNLX0lTQTJfQVZYMl9VTlNFVDsKIAl9CiAgICAgICByZXR1cm4gdHJ1 ZTsKIApAQCAtNDI1LDggKzQyOSw4IEBAIGl4ODZfaGFuZGxlX29wdGlvbiAoc3RydWN0IGdjY19v cHRpb25zICpvcHRzLAogCXsKIAkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MgJj0gfk9QVElPTl9N QVNLX0lTQV9TU0UzX1VOU0VUOwogCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnc19leHBsaWNpdCB8 PSBPUFRJT05fTUFTS19JU0FfU1NFM19VTlNFVDsKLQkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3My ICY9IH5PUFRJT05fTUFTS19JU0EyX0FWWDUxMkZfVU5TRVQ7Ci0JICBvcHRzLT54X2l4ODZfaXNh X2ZsYWdzMl9leHBsaWNpdCB8PSBPUFRJT05fTUFTS19JU0EyX0FWWDUxMkZfVU5TRVQ7CisJICBv cHRzLT54X2l4ODZfaXNhX2ZsYWdzMiAmPSB+T1BUSU9OX01BU0tfSVNBMl9BVlgyX1VOU0VUOwor CSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczJfZXhwbGljaXQgfD0gT1BUSU9OX01BU0tfSVNBMl9B VlgyX1VOU0VUOwogCX0KICAgICAgIHJldHVybiB0cnVlOwogCkBAIC00NDAsOCArNDQ0LDggQEAg aXg4Nl9oYW5kbGVfb3B0aW9uIChzdHJ1Y3QgZ2NjX29wdGlvbnMgKm9wdHMsCiAJewogCSAgb3B0 cy0+eF9peDg2X2lzYV9mbGFncyAmPSB+T1BUSU9OX01BU0tfSVNBX1NTU0UzX1VOU0VUOwogCSAg b3B0cy0+eF9peDg2X2lzYV9mbGFnc19leHBsaWNpdCB8PSBPUFRJT05fTUFTS19JU0FfU1NTRTNf VU5TRVQ7Ci0JICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdzMiAmPSB+T1BUSU9OX01BU0tfSVNBMl9B Vlg1MTJGX1VOU0VUOwotCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczJfZXhwbGljaXQgfD0gT1BU SU9OX01BU0tfSVNBMl9BVlg1MTJGX1VOU0VUOworCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczIg Jj0gfk9QVElPTl9NQVNLX0lTQTJfQVZYMl9VTlNFVDsKKwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxh Z3MyX2V4cGxpY2l0IHw9IE9QVElPTl9NQVNLX0lTQTJfQVZYMl9VTlNFVDsKIAl9CiAgICAgICBy ZXR1cm4gdHJ1ZTsKIApAQCAtNDU1LDggKzQ1OSw4IEBAIGl4ODZfaGFuZGxlX29wdGlvbiAoc3Ry dWN0IGdjY19vcHRpb25zICpvcHRzLAogCXsKIAkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MgJj0g fk9QVElPTl9NQVNLX0lTQV9TU0U0XzFfVU5TRVQ7CiAJICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdz X2V4cGxpY2l0IHw9IE9QVElPTl9NQVNLX0lTQV9TU0U0XzFfVU5TRVQ7Ci0JICBvcHRzLT54X2l4 ODZfaXNhX2ZsYWdzMiAmPSB+T1BUSU9OX01BU0tfSVNBMl9BVlg1MTJGX1VOU0VUOwotCSAgb3B0 cy0+eF9peDg2X2lzYV9mbGFnczJfZXhwbGljaXQgfD0gT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJG X1VOU0VUOworCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczIgJj0gfk9QVElPTl9NQVNLX0lTQTJf QVZYMl9VTlNFVDsKKwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyX2V4cGxpY2l0IHw9IE9QVElP Tl9NQVNLX0lTQTJfQVZYMl9VTlNFVDsKIAl9CiAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtNDcw LDggKzQ3NCw4IEBAIGl4ODZfaGFuZGxlX29wdGlvbiAoc3RydWN0IGdjY19vcHRpb25zICpvcHRz LAogCXsKIAkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MgJj0gfk9QVElPTl9NQVNLX0lTQV9TU0U0 XzJfVU5TRVQ7CiAJICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdzX2V4cGxpY2l0IHw9IE9QVElPTl9N QVNLX0lTQV9TU0U0XzJfVU5TRVQ7Ci0JICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdzMiAmPSB+T1BU SU9OX01BU0tfSVNBMl9BVlg1MTJGX1VOU0VUOwotCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczJf ZXhwbGljaXQgfD0gT1BUSU9OX01BU0tfSVNBMl9BVlg1MTJGX1VOU0VUOworCSAgb3B0cy0+eF9p eDg2X2lzYV9mbGFnczIgJj0gfk9QVElPTl9NQVNLX0lTQTJfQVZYMl9VTlNFVDsKKwkgIG9wdHMt PnhfaXg4Nl9pc2FfZmxhZ3MyX2V4cGxpY2l0IHw9IE9QVElPTl9NQVNLX0lTQTJfQVZYMl9VTlNF VDsKIAl9CiAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtNDg1LDggKzQ4OSw4IEBAIGl4ODZfaGFu ZGxlX29wdGlvbiAoc3RydWN0IGdjY19vcHRpb25zICpvcHRzLAogCXsKIAkgIG9wdHMtPnhfaXg4 Nl9pc2FfZmxhZ3MgJj0gfk9QVElPTl9NQVNLX0lTQV9BVlhfVU5TRVQ7CiAJICBvcHRzLT54X2l4 ODZfaXNhX2ZsYWdzX2V4cGxpY2l0IHw9IE9QVElPTl9NQVNLX0lTQV9BVlhfVU5TRVQ7Ci0JICBv cHRzLT54X2l4ODZfaXNhX2ZsYWdzMiAmPSB+T1BUSU9OX01BU0tfSVNBMl9BVlg1MTJGX1VOU0VU OwotCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczJfZXhwbGljaXQgfD0gT1BUSU9OX01BU0tfSVNB Ml9BVlg1MTJGX1VOU0VUOworCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczIgJj0gfk9QVElPTl9N QVNLX0lTQTJfQVZYMl9VTlNFVDsKKwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyX2V4cGxpY2l0 IHw9IE9QVElPTl9NQVNLX0lTQTJfQVZYMl9VTlNFVDsKIAl9CiAgICAgICByZXR1cm4gdHJ1ZTsK IApAQCAtNTAwLDggKzUwNCw4IEBAIGl4ODZfaGFuZGxlX29wdGlvbiAoc3RydWN0IGdjY19vcHRp b25zICpvcHRzLAogCXsKIAkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MgJj0gfk9QVElPTl9NQVNL X0lTQV9BVlgyX1VOU0VUOwogCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnc19leHBsaWNpdCB8PSBP UFRJT05fTUFTS19JU0FfQVZYMl9VTlNFVDsKLQkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyICY9 IH5PUFRJT05fTUFTS19JU0EyX0FWWDUxMkZfVU5TRVQ7Ci0JICBvcHRzLT54X2l4ODZfaXNhX2Zs YWdzMl9leHBsaWNpdCB8PSBPUFRJT05fTUFTS19JU0EyX0FWWDUxMkZfVU5TRVQ7CisJICBvcHRz LT54X2l4ODZfaXNhX2ZsYWdzMiAmPSB+T1BUSU9OX01BU0tfSVNBMl9BVlgyX1VOU0VUOworCSAg b3B0cy0+eF9peDg2X2lzYV9mbGFnczJfZXhwbGljaXQgfD0gT1BUSU9OX01BU0tfSVNBMl9BVlgy X1VOU0VUOwogCX0KICAgICAgIHJldHVybiB0cnVlOwogCkBAIC04MDIsNiArODA2LDIxIEBAIGl4 ODZfaGFuZGxlX29wdGlvbiAoc3RydWN0IGdjY19vcHRpb25zICpvcHRzLAogCX0KICAgICAgIHJl dHVybiB0cnVlOwogCisgICAgY2FzZSBPUFRfbWF2eHZubmk6CisgICAgICBpZiAodmFsdWUpCisJ eworCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczIgfD0gT1BUSU9OX01BU0tfSVNBMl9BVlhWTk5J X1NFVDsKKwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyX2V4cGxpY2l0IHw9IE9QVElPTl9NQVNL X0lTQTJfQVZYVk5OSV9TRVQ7CisJICBvcHRzLT54X2l4ODZfaXNhX2ZsYWdzIHw9IE9QVElPTl9N QVNLX0lTQV9BVlgyX1NFVDsKKwkgIG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3NfZXhwbGljaXQgfD0g T1BUSU9OX01BU0tfSVNBX0FWWDJfU0VUOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBvcHRzLT54 X2l4ODZfaXNhX2ZsYWdzMiAmPSB+T1BUSU9OX01BU0tfSVNBMl9BVlhWTk5JX1VOU0VUOworCSAg b3B0cy0+eF9peDg2X2lzYV9mbGFnczJfZXhwbGljaXQgfD0gT1BUSU9OX01BU0tfSVNBMl9BVlhW Tk5JX1VOU0VUOworCX0KKyAgICAgIHJldHVybiB0cnVlOworCiAgICAgY2FzZSBPUFRfbXNneDoK ICAgICAgIGlmICh2YWx1ZSkKIAl7CmRpZmYgLS1naXQgYS9nY2MvY29tbW9uL2NvbmZpZy9pMzg2 L2kzODYtY3B1aW5mby5oIGIvZ2NjL2NvbW1vbi9jb25maWcvaTM4Ni9pMzg2LWNwdWluZm8uaApp bmRleCA1Yjk0YjFmMWRmNy4uZmYxZDQ3ZGM5YmEgMTAwNjQ0Ci0tLSBhL2djYy9jb21tb24vY29u ZmlnL2kzODYvaTM4Ni1jcHVpbmZvLmgKKysrIGIvZ2NjL2NvbW1vbi9jb25maWcvaTM4Ni9pMzg2 LWNwdWluZm8uaApAQCAtMjE5LDYgKzIxOSw3IEBAIGVudW0gcHJvY2Vzc29yX2ZlYXR1cmVzCiAg IEZFQVRVUkVfQU1YX1RJTEUsCiAgIEZFQVRVUkVfQU1YX0lOVDgsCiAgIEZFQVRVUkVfQU1YX0JG MTYsCisgIEZFQVRVUkVfQVZYVk5OSSwKICAgQ1BVX0ZFQVRVUkVfTUFYCiB9OwogCmRpZmYgLS1n aXQgYS9nY2MvY29tbW9uL2NvbmZpZy9pMzg2L2kzODYtaXNhcy5oIGIvZ2NjL2NvbW1vbi9jb25m aWcvaTM4Ni9pMzg2LWlzYXMuaAppbmRleCAzYzgzMGVhMDhmZi4uMWY4ODYwOThhMzAgMTAwNjQ0 Ci0tLSBhL2djYy9jb21tb24vY29uZmlnL2kzODYvaTM4Ni1pc2FzLmgKKysrIGIvZ2NjL2NvbW1v bi9jb25maWcvaTM4Ni9pMzg2LWlzYXMuaApAQCAtMTYzLDQgKzE2Myw1IEBAIElTQV9OQU1FU19U QUJMRV9TVEFSVAogICBJU0FfTkFNRVNfVEFCTEVfRU5UUlkoImFteC10aWxlIiwgRkVBVFVSRV9B TVhfVElMRSwgUF9OT05FLCAiLW1hbXgtdGlsZSIpCiAgIElTQV9OQU1FU19UQUJMRV9FTlRSWSgi YW14LWludDgiLCBGRUFUVVJFX0FNWF9JTlQ4LCBQX05PTkUsICItbWFteC1pbnQ4IikKICAgSVNB X05BTUVTX1RBQkxFX0VOVFJZKCJhbXgtYmYxNiIsIEZFQVRVUkVfQU1YX0JGMTYsIFBfTk9ORSwg Ii1tYW14LWJmMTYiKQorICBJU0FfTkFNRVNfVEFCTEVfRU5UUlkoImF2eHZubmkiLCBGRUFUVVJF X0FWWFZOTkksIFBfTk9ORSwgIi1tYXZ4dm5uaSIpCiBJU0FfTkFNRVNfVEFCTEVfRU5ECmRpZmYg LS1naXQgYS9nY2MvY29uZmlnLmdjYyBiL2djYy9jb25maWcuZ2NjCmluZGV4IGQ1NjM0YjA0M2Uy Li40ZGU4YzYwZDkzZCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy5nY2MKKysrIGIvZ2NjL2NvbmZp Zy5nY2MKQEAgLTQxMyw3ICs0MTMsNyBAQCBpWzM0NTY3XTg2LSotKikKIAkJICAgICAgIGF2eDUx MmJmMTZpbnRyaW4uaCBlbnFjbWRpbnRyaW4uaCBzZXJpYWxpemVpbnRyaW4uaAogCQkgICAgICAg YXZ4NTEydnAyaW50ZXJzZWN0aW50cmluLmggYXZ4NTEydnAyaW50ZXJzZWN0dmxpbnRyaW4uaAog CQkgICAgICAgdHN4bGR0cmtpbnRyaW4uaCBhbXh0aWxlaW50cmluLmggYW14aW50OGludHJpbi5o Ci0JCSAgICAgICBhbXhiZjE2aW50cmluLmggeDg2Z3ByaW50cmluLmgiCisJCSAgICAgICBhbXhi ZjE2aW50cmluLmggeDg2Z3ByaW50cmluLmggYXZ4dm5uaWludHJpbi5oIgogCTs7CiB4ODZfNjQt Ki0qKQogCWNwdV90eXBlPWkzODYKQEAgLTQ0OSw3ICs0NDksNyBAQCB4ODZfNjQtKi0qKQogCQkg ICAgICAgYXZ4NTEyYmYxNmludHJpbi5oIGVucWNtZGludHJpbi5oIHNlcmlhbGl6ZWludHJpbi5o CiAJCSAgICAgICBhdng1MTJ2cDJpbnRlcnNlY3RpbnRyaW4uaCBhdng1MTJ2cDJpbnRlcnNlY3R2 bGludHJpbi5oCiAJCSAgICAgICB0c3hsZHRya2ludHJpbi5oIGFteHRpbGVpbnRyaW4uaCBhbXhp bnQ4aW50cmluLmgKLQkJICAgICAgIGFteGJmMTZpbnRyaW4uaCB4ODZncHJpbnRyaW4uaCIKKwkJ ICAgICAgIGFteGJmMTZpbnRyaW4uaCB4ODZncHJpbnRyaW4uaCBhdnh2bm5paW50cmluLmgiCiAJ OzsKIGlhNjQtKi0qKQogCWV4dHJhX2hlYWRlcnM9aWE2NGludHJpbi5oCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL2kzODYvYXZ4NTEydm5uaXZsaW50cmluLmggYi9nY2MvY29uZmlnL2kzODYvYXZ4 NTEydm5uaXZsaW50cmluLmgKaW5kZXggYjRhNmRiMzdiYTQuLjkxMTg4NTAwMDdiIDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2kzODYvYXZ4NTEydm5uaXZsaW50cmluLmgKKysrIGIvZ2NjL2NvbmZp Zy9pMzg2L2F2eDUxMnZubml2bGludHJpbi5oCkBAIC0zNCwxNCArMzQsNiBAQAogI2RlZmluZSBf X0RJU0FCTEVfQVZYNTEyVk5OSVZMX18KICNlbmRpZiAvKiBfX0FWWDUxMlZOTklWTF9fICovCiAK LWV4dGVybiBfX2lubGluZSBfX20yNTZpCi1fX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywg X19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLV9tbTI1Nl9kcGJ1c2RfZXBpMzIg KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MpCi17Ci0gIHJldHVybiAoX19t MjU2aSkgX19idWlsdGluX2lhMzJfdnBkcGJ1c2RfdjhzaSAoKF9fdjhzaSlfX0EsIChfX3Y4c2kp IF9fQiwKLQkJCQkJCQkJKF9fdjhzaSkgX19DKTsKLX0KLQogZXh0ZXJuIF9faW5saW5lIF9fbTI1 NmkKIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19h cnRpZmljaWFsX18pKQogX21tMjU2X21hc2tfZHBidXNkX2VwaTMyIChfX20yNTZpIF9fQSwgX19t bWFzazggX19CLCBfX20yNTZpIF9fQywgX19tMjU2aSBfX0QpCkBAIC01OCwxNCArNTAsNiBAQCBf bW0yNTZfbWFza3pfZHBidXNkX2VwaTMyIChfX21tYXNrOCBfX0EsIF9fbTI1NmkgX19CLCBfX20y NTZpIF9fQywgX19tMjU2aSBfX0QpCiAJCQkJKF9fdjhzaSkgX19DLCAoX192OHNpKSBfX0QsIChf X21tYXNrOClfX0EpOwogfQogCi1leHRlcm4gX19pbmxpbmUgX19tMTI4aQotX19hdHRyaWJ1dGVf XygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi1f bW1fZHBidXNkX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQot ewotICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkX3Y0c2kgKChfX3Y0 c2kpX19BLCAoX192NHNpKSBfX0IsCi0JCQkJCQkJCShfX3Y0c2kpIF9fQyk7Ci19Ci0KIGV4dGVy biBfX2lubGluZSBfX20xMjhpCiBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdh eXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIF9tbV9tYXNrX2RwYnVzZF9lcGkzMiAoX19t MTI4aSBfX0EsIF9fbW1hc2s4IF9fQiwgX19tMTI4aSBfX0MsIF9fbTEyOGkgX19EKQpAQCAtODIs MTQgKzY2LDYgQEAgX21tX21hc2t6X2RwYnVzZF9lcGkzMiAoX19tbWFzazggX19BLCBfX20xMjhp IF9fQiwgX19tMTI4aSBfX0MsIF9fbTEyOGkgX19EKQogCQkJCShfX3Y0c2kpIF9fQywgKF9fdjRz aSkgX19ELCAoX19tbWFzazgpX19BKTsKIH0KIAotZXh0ZXJuIF9faW5saW5lIF9fbTI1NmkKLV9f YXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmlj aWFsX18pKQotX21tMjU2X2RwYnVzZHNfZXBpMzIgKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQiwg X19tMjU2aSBfX0MpCi17Ci0gIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfdnBkcGJ1 c2RzX3Y4c2kgKChfX3Y4c2kpX19BLCAoX192OHNpKSBfX0IsCi0JCQkJCQkJCShfX3Y4c2kpIF9f Qyk7Ci19Ci0KIGV4dGVybiBfX2lubGluZSBfX20yNTZpCiBfX2F0dHJpYnV0ZV9fKChfX2dudV9p bmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIF9tbTI1Nl9tYXNr X2RwYnVzZHNfZXBpMzIgKF9fbTI1NmkgX19BLCBfX21tYXNrOCBfX0IsIF9fbTI1NmkgX19DLCBf X20yNTZpIF9fRCkKQEAgLTEwNywxNCArODMsNiBAQCBfbW0yNTZfbWFza3pfZHBidXNkc19lcGkz MiAoX19tbWFzazggX19BLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MsCiAJCQkJKF9fdjhzaSkg X19DLCAoX192OHNpKSBfX0QsIChfX21tYXNrOClfX0EpOwogfQogCi1leHRlcm4gX19pbmxpbmUg X19tMTI4aQotX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9f LCBfX2FydGlmaWNpYWxfXykpCi1fbW1fZHBidXNkc19lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEy OGkgX19CLCBfX20xMjhpIF9fQykKLXsKLSAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEz Ml92cGRwYnVzZHNfdjRzaSAoKF9fdjRzaSlfX0EsIChfX3Y0c2kpIF9fQiwKLQkJCQkJCQkJKF9f djRzaSkgX19DKTsKLX0KLQogZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKIF9fYXR0cmlidXRlX18o KF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogX21t X21hc2tfZHBidXNkc19lcGkzMiAoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fQiwgX19tMTI4aSBf X0MsIF9fbTEyOGkgX19EKQpAQCAtMTMxLDE0ICs5OSw2IEBAIF9tbV9tYXNrel9kcGJ1c2RzX2Vw aTMyIChfX21tYXNrOCBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQywgX19tMTI4aSBfX0Qp CiAJCQkJKF9fdjRzaSkgX19DLCAoX192NHNpKSBfX0QsIChfX21tYXNrOClfX0EpOwogfQogCi1l eHRlcm4gX19pbmxpbmUgX19tMjU2aQotX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9f YWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi1fbW0yNTZfZHB3c3NkX2VwaTMyIChf X20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQotewotICByZXR1cm4gKF9fbTI1 NmkpIF9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkX3Y4c2kgKChfX3Y4c2kpX19BLCAoX192OHNpKSBf X0IsCi0JCQkJCQkJCShfX3Y4c2kpIF9fQyk7Ci19Ci0KIGV4dGVybiBfX2lubGluZSBfX20yNTZp CiBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0 aWZpY2lhbF9fKSkKIF9tbTI1Nl9tYXNrX2Rwd3NzZF9lcGkzMiAoX19tMjU2aSBfX0EsIF9fbW1h c2s4IF9fQiwgX19tMjU2aSBfX0MsIF9fbTI1NmkgX19EKQpAQCAtMTU1LDE0ICsxMTUsNiBAQCBf bW0yNTZfbWFza3pfZHB3c3NkX2VwaTMyIChfX21tYXNrOCBfX0EsIF9fbTI1NmkgX19CLCBfX20y NTZpIF9fQywgX19tMjU2aSBfX0QpCiAJCQkJKF9fdjhzaSkgX19DLCAoX192OHNpKSBfX0QsIChf X21tYXNrOClfX0EpOwogfQogCi1leHRlcm4gX19pbmxpbmUgX19tMTI4aQotX19hdHRyaWJ1dGVf XygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi1f bW1fZHB3c3NkX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQot ewotICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkX3Y0c2kgKChfX3Y0 c2kpX19BLCAoX192NHNpKSBfX0IsCi0JCQkJCQkJCShfX3Y0c2kpIF9fQyk7Ci19Ci0KIGV4dGVy biBfX2lubGluZSBfX20xMjhpCiBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdh eXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIF9tbV9tYXNrX2Rwd3NzZF9lcGkzMiAoX19t MTI4aSBfX0EsIF9fbW1hc2s4IF9fQiwgX19tMTI4aSBfX0MsIF9fbTEyOGkgX19EKQpAQCAtMTc5 LDE0ICsxMzEsNiBAQCBfbW1fbWFza3pfZHB3c3NkX2VwaTMyIChfX21tYXNrOCBfX0EsIF9fbTEy OGkgX19CLCBfX20xMjhpIF9fQywgX19tMTI4aSBfX0QpCiAJCQkJKF9fdjRzaSkgX19DLCAoX192 NHNpKSBfX0QsIChfX21tYXNrOClfX0EpOwogfQogCi1leHRlcm4gX19pbmxpbmUgX19tMjU2aQot X19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCi1fbW0yNTZfZHB3c3Nkc19lcGkzMiAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19C LCBfX20yNTZpIF9fQykKLXsKLSAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl92cGRw d3NzZHNfdjhzaSAoKF9fdjhzaSlfX0EsIChfX3Y4c2kpIF9fQiwKLQkJCQkJCQkJKF9fdjhzaSkg X19DKTsKLX0KLQogZXh0ZXJuIF9faW5saW5lIF9fbTI1NmkKIF9fYXR0cmlidXRlX18oKF9fZ251 X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogX21tMjU2X21h c2tfZHB3c3Nkc19lcGkzMiAoX19tMjU2aSBfX0EsIF9fbW1hc2s4IF9fQiwgX19tMjU2aSBfX0Ms IF9fbTI1NmkgX19EKQpAQCAtMjA0LDE0ICsxNDgsNiBAQCBfbW0yNTZfbWFza3pfZHB3c3Nkc19l cGkzMiAoX19tbWFzazggX19BLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MsCiAJCQkJKF9fdjhz aSkgX19DLCAoX192OHNpKSBfX0QsIChfX21tYXNrOClfX0EpOwogfQogCi1leHRlcm4gX19pbmxp bmUgX19tMTI4aQotX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCi1fbW1fZHB3c3Nkc19lcGkzMiAoX19tMTI4aSBfX0EsIF9f bTEyOGkgX19CLCBfX20xMjhpIF9fQykKLXsKLSAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5f aWEzMl92cGRwd3NzZHNfdjRzaSAoKF9fdjRzaSlfX0EsIChfX3Y0c2kpIF9fQiwKLQkJCQkJCQkJ KF9fdjRzaSkgX19DKTsKLX0KLQogZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKIF9fYXR0cmlidXRl X18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQog X21tX21hc2tfZHB3c3Nkc19lcGkzMiAoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fQiwgX19tMTI4 aSBfX0MsIF9fbTEyOGkgX19EKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2F2eHZubmlp bnRyaW4uaCBiL2djYy9jb25maWcvaTM4Ni9hdnh2bm5paW50cmluLmgKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlmODE1Yzk4Yjk2Ci0tLSAvZGV2L251bGwKKysrIGIv Z2NjL2NvbmZpZy9pMzg2L2F2eHZubmlpbnRyaW4uaApAQCAtMCwwICsxLDkwIEBACisvKiBDb3B5 cmlnaHQgKEMpIDIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMg ZmlsZSBpcyBwYXJ0IG9mIEdDQy4KKworICAgR0NDIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRp b24pCisgICBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgR0NDIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICAgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgVW5kZXIgU2Vj dGlvbiA3IG9mIEdQTCB2ZXJzaW9uIDMsIHlvdSBhcmUgZ3JhbnRlZCBhZGRpdGlvbmFsCisgICBw ZXJtaXNzaW9ucyBkZXNjcmliZWQgaW4gdGhlIEdDQyBSdW50aW1lIExpYnJhcnkgRXhjZXB0aW9u LCB2ZXJzaW9uCisgICAzLjEsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbmQKKyAgIGEgY29weSBvZiB0aGUgR0NDIFJ1bnRpbWUg TGlicmFyeSBFeGNlcHRpb24gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07CisgICBzZWUgdGhlIGZp bGVzIENPUFlJTkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBz ZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpZm5kZWYgX0lN TUlOVFJJTl9IX0lOQ0xVREVECisjZXJyb3IgIk5ldmVyIHVzZSA8YXZ4dm5uaWludHJpbi5oPiBk aXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgorI2VuZGlmCisKKyNpZm5k ZWYgX0FWWFZOTklJTlRSSU5fSF9JTkNMVURFRAorI2RlZmluZSBfQVZYVk5OSUlOVFJJTl9IX0lO Q0xVREVECisKKyNpZmRlZiBfX0FWWFZOTklfXworI2RlZmluZSBfbW0yNTZfZHBidXNkX2F2eF9l cGkzMihBLCBCLCBDKSBcCisgIF9tbTI1Nl9kcGJ1c2RfZXBpMzIoKEEpLCAoQiksIChDKSkKKyNk ZWZpbmUgX21tX2RwYnVzZF9hdnhfZXBpMzIoQSwgQiwgQykgXAorICBfbW1fZHBidXNkX2VwaTMy KChBKSwgKEIpLCAoQykpCisjZGVmaW5lIF9tbTI1Nl9kcGJ1c2RzX2F2eF9lcGkzMihBLCBCLCBD KSBcCisgIF9tbTI1Nl9kcGJ1c2RzX2VwaTMyKChBKSwgKEIpLCAoQykpCisjZGVmaW5lIF9tbV9k cGJ1c2RzX2F2eF9lcGkzMihBLCBCLCBDKSBcCisgIF9tbV9kcGJ1c2RzX2VwaTMyKChBKSwgKEIp LCAoQykpCisjZGVmaW5lIF9tbTI1Nl9kcHdzc2RfYXZ4X2VwaTMyKEEsIEIsIEMpIFwKKyAgX21t MjU2X2Rwd3NzZF9lcGkzMigoQSksIChCKSwgKEMpKQorI2RlZmluZSBfbW1fZHB3c3NkX2F2eF9l cGkzMihBLCBCLCBDKSBcCisgIF9tbV9kcHdzc2RfZXBpMzIoKEEpLCAoQiksIChDKSkKKyNkZWZp bmUgX21tMjU2X2Rwd3NzZHNfYXZ4X2VwaTMyKEEsIEIsIEMpIFwKKyAgX21tMjU2X2Rwd3NzZHNf ZXBpMzIoKEEpLCAoQiksIChDKSkKKyNkZWZpbmUgX21tX2Rwd3NzZHNfYXZ4X2VwaTMyKEEsIEIs IEMpIFwKKyAgX21tX2Rwd3NzZHNfZXBpMzIoKEEpLCAoQiksIChDKSkKKyNlbmRpZiAvKiBfX0FW WFZOTklfXyAqLworCisjZGVmaW5lIF9tbTI1Nl9kcGJ1c2RfZXBpMzIoQSwgQiwgQykJCQkJXAor ICAoKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkX3Y4c2kgKChfX3Y4c2kpIChBKSwJ XAorCQkJCQkgICAoX192OHNpKSAoQiksCVwKKwkJCQkJICAgKF9fdjhzaSkgKEMpKSkKKworI2Rl ZmluZSBfbW1fZHBidXNkX2VwaTMyKEEsIEIsIEMpCQkJCVwKKyAgKChfX20xMjhpKSBfX2J1aWx0 aW5faWEzMl92cGRwYnVzZF92NHNpICgoX192NHNpKSAoQSksCVwKKwkJCQkJICAgKF9fdjRzaSkg KEIpLAlcCisJCQkJCSAgIChfX3Y0c2kpIChDKSkpCisKKyNkZWZpbmUgX21tMjU2X2RwYnVzZHNf ZXBpMzIoQSwgQiwgQykJCQkJXAorICAoKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3ZwZHBidXNk c192OHNpICgoX192OHNpKSAoQSksCVwKKwkJCQkJICAgIChfX3Y4c2kpIChCKSwJXAorCQkJCQkg ICAgKF9fdjhzaSkgKEMpKSkKKworI2RlZmluZSBfbW1fZHBidXNkc19lcGkzMihBLCBCLCBDKQkJ CQlcCisgICgoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBkcGJ1c2RzX3Y0c2kgKChfX3Y0c2kp IChBKSwJXAorCQkJCQkgICAgKF9fdjRzaSkgKEIpLAlcCisJCQkJCSAgICAoX192NHNpKSAoQykp KQorCisjZGVmaW5lIF9tbTI1Nl9kcHdzc2RfZXBpMzIoQSwgQiwgQykJCQkJXAorICAoKF9fbTI1 NmkpIF9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkX3Y4c2kgKChfX3Y4c2kpIChBKSwJXAorCQkJCQkg ICAoX192OHNpKSAoQiksCVwKKwkJCQkJICAgKF9fdjhzaSkgKEMpKSkKKworI2RlZmluZSBfbW1f ZHB3c3NkX2VwaTMyKEEsIEIsIEMpCQkJCVwKKyAgKChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92 cGRwd3NzZF92NHNpICgoX192NHNpKSAoQSksCVwKKwkJCQkJICAgKF9fdjRzaSkgKEIpLAlcCisJ CQkJCSAgIChfX3Y0c2kpIChDKSkpCisKKyNkZWZpbmUgX21tMjU2X2Rwd3NzZHNfZXBpMzIoQSwg QiwgQykJCQkJXAorICAoKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3ZwZHB3c3Nkc192OHNpICgo X192OHNpKSAoQSksCVwKKwkJCQkJICAgIChfX3Y4c2kpIChCKSwJXAorCQkJCQkgICAgKF9fdjhz aSkgKEMpKSkKKworI2RlZmluZSBfbW1fZHB3c3Nkc19lcGkzMihBLCBCLCBDKQkJCQlcCisgICgo X19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBkcHdzc2RzX3Y0c2kgKChfX3Y0c2kpIChBKSwJXAor CQkJCQkgICAgKF9fdjRzaSkgKEIpLAlcCisJCQkJCSAgICAoX192NHNpKSAoQykpKQorCisjZW5k aWYgLyogX0FWWFZOTklJTlRSSU5fSF9JTkNMVURFRCAqLwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9pMzg2L2NwdWlkLmggYi9nY2MvY29uZmlnL2kzODYvY3B1aWQuaAppbmRleCA0NTk4NDM0ZmQw Mi4uODY5NmQ5MDYwZGIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9jcHVpZC5oCisrKyBi L2djYy9jb25maWcvaTM4Ni9jcHVpZC5oCkBAIC0yNSw2ICsyNSw3IEBACiAjZGVmaW5lIF9DUFVJ RF9IX0lOQ0xVREVECiAKIC8qICVlYXggKi8KKyNkZWZpbmUgYml0X0FWWFZOTkkJKDEgPDwgNCkK ICNkZWZpbmUgYml0X0FWWDUxMkJGMTYJKDEgPDwgNSkKIAogLyogJWVjeCAqLwpkaWZmIC0tZ2l0 IGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYnVpbHRpbi5kZWYgYi9nY2MvY29uZmlnL2kzODYvaTM4 Ni1idWlsdGluLmRlZgppbmRleCBmZWM1Y2VmMGI1NS4uZGMyMTkxNzYxM2EgMTAwNjQ0Ci0tLSBh L2djYy9jb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW4uZGVmCisrKyBiL2djYy9jb25maWcvaTM4Ni9p Mzg2LWJ1aWx0aW4uZGVmCkBAIC0yNjA1LDQ1ICsyNjA1LDQ1IEBAIEJERVNDIChPUFRJT05fTUFT S19JU0FfR0ZOSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCB8IE9QVElPTl9NQVNLX0lTQV9B Vlg1MTJCCiBCREVTQyAoT1BUSU9OX01BU0tfSVNBX0dGTkkgfCBPUFRJT05fTUFTS19JU0FfU1NF MiwgMCwgQ09ERV9GT1JfdmdmMnA4bXVsYl92MTZxaSwgIl9fYnVpbHRpbl9pYTMyX3ZnZjJwOG11 bGJfdjE2cWkiLCBJWDg2X0JVSUxUSU5fVkdGMlA4TVVMQjEyOCwgVU5LTk9XTiwgKGludCkgVjE2 UUlfRlRZUEVfVjE2UUlfVjE2UUkpCiBCREVTQyAoT1BUSU9OX01BU0tfSVNBX0dGTkkgfCBPUFRJ T05fTUFTS19JU0FfQVZYNTEyVkwsIDAsIENPREVfRk9SX3ZnZjJwOG11bGJfdjE2cWlfbWFzaywg Il9fYnVpbHRpbl9pYTMyX3ZnZjJwOG11bGJfdjE2cWlfbWFzayIsIElYODZfQlVJTFRJTl9WR0Yy UDhNVUxCMTI4TUFTSywgVU5LTk9XTiwgKGludCkgVjE2UUlfRlRZUEVfVjE2UUlfVjE2UUlfVjE2 UUlfVUhJKQogCi0vKiBWTk5JICovCisvKiBBVlg1MTJfVk5OSSAqLwogCiBCREVTQyAoT1BUSU9O X01BU0tfSVNBX0FWWDUxMlZOTkksIDAsIENPREVfRk9SX3ZwZHBidXNkX3YxNnNpLCAiX19idWls dGluX2lhMzJfdnBkcGJ1c2RfdjE2c2kiLCBJWDg2X0JVSUxUSU5fVlBEUEJVU0RWMTZTSSwgVU5L Tk9XTiwgKGludCkgVjE2U0lfRlRZUEVfVjE2U0lfVjE2U0lfVjE2U0kpCiBCREVTQyAoT1BUSU9O X01BU0tfSVNBX0FWWDUxMlZOTkksIDAsIENPREVfRk9SX3ZwZHBidXNkX3YxNnNpX21hc2ssICJf X2J1aWx0aW5faWEzMl92cGRwYnVzZF92MTZzaV9tYXNrIiwgSVg4Nl9CVUlMVElOX1ZQRFBCVVNE VjE2U0lfTUFTSywgVU5LTk9XTiwgKGludCkgVjE2U0lfRlRZUEVfVjE2U0lfVjE2U0lfVjE2U0lf VUhJKQogQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTk5JLCAwLCBDT0RFX0ZPUl92cGRw YnVzZF92MTZzaV9tYXNreiwgIl9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkX3YxNnNpX21hc2t6Iiwg SVg4Nl9CVUlMVElOX1ZQRFBCVVNEVjE2U0lfTUFTS1osIFVOS05PV04sIChpbnQpIFYxNlNJX0ZU WVBFX1YxNlNJX1YxNlNJX1YxNlNJX1VISSkKLUJERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEy Vk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgMCwgQ09ERV9GT1JfdnBkcGJ1c2Rfdjhz aSwgIl9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkX3Y4c2kiLCBJWDg2X0JVSUxUSU5fVlBEUEJVU0RW OFNJLCBVTktOT1dOLCAoaW50KSBWOFNJX0ZUWVBFX1Y4U0lfVjhTSV9WOFNJKQorQkRFU0MgKE9Q VElPTl9NQVNLX0lTQV9BVlg1MTJWTk5JIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZMLCBPUFRJ T05fTUFTS19JU0EyX0FWWFZOTkksIENPREVfRk9SX3ZwZHBidXNkX3Y4c2ksICJfX2J1aWx0aW5f aWEzMl92cGRwYnVzZF92OHNpIiwgSVg4Nl9CVUlMVElOX1ZQRFBCVVNEVjhTSSwgVU5LTk9XTiwg KGludCkgVjhTSV9GVFlQRV9WOFNJX1Y4U0lfVjhTSSkKIEJERVNDIChPUFRJT05fTUFTS19JU0Ff QVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgMCwgQ09ERV9GT1JfdnBkcGJ1 c2RfdjhzaV9tYXNrLCAiX19idWlsdGluX2lhMzJfdnBkcGJ1c2RfdjhzaV9tYXNrIiwgSVg4Nl9C VUlMVElOX1ZQRFBCVVNEVjhTSV9NQVNLLCBVTktOT1dOLCAoaW50KSBWOFNJX0ZUWVBFX1Y4U0lf VjhTSV9WOFNJX1VRSSkKIEJERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8IE9QVElP Tl9NQVNLX0lTQV9BVlg1MTJWTCwgMCwgQ09ERV9GT1JfdnBkcGJ1c2RfdjhzaV9tYXNreiwgIl9f YnVpbHRpbl9pYTMyX3ZwZHBidXNkX3Y4c2lfbWFza3oiLCBJWDg2X0JVSUxUSU5fVlBEUEJVU0RW OFNJX01BU0taLCBVTktOT1dOLCAoaW50KSBWOFNJX0ZUWVBFX1Y4U0lfVjhTSV9WOFNJX1VRSSkK LUJERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1 MTJWTCwgMCwgQ09ERV9GT1JfdnBkcGJ1c2RfdjRzaSwgIl9fYnVpbHRpbl9pYTMyX3ZwZHBidXNk X3Y0c2kiLCBJWDg2X0JVSUxUSU5fVlBEUEJVU0RWNFNJLCBVTktOT1dOLCAoaW50KSBWNFNJX0ZU WVBFX1Y0U0lfVjRTSV9WNFNJKQorQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTk5JIHwg T1BUSU9OX01BU0tfSVNBX0FWWDUxMlZMLCBPUFRJT05fTUFTS19JU0EyX0FWWFZOTkksIENPREVf Rk9SX3ZwZHBidXNkX3Y0c2ksICJfX2J1aWx0aW5faWEzMl92cGRwYnVzZF92NHNpIiwgSVg4Nl9C VUlMVElOX1ZQRFBCVVNEVjRTSSwgVU5LTk9XTiwgKGludCkgVjRTSV9GVFlQRV9WNFNJX1Y0U0lf VjRTSSkKIEJERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lT QV9BVlg1MTJWTCwgMCwgQ09ERV9GT1JfdnBkcGJ1c2RfdjRzaV9tYXNrLCAiX19idWlsdGluX2lh MzJfdnBkcGJ1c2RfdjRzaV9tYXNrIiwgSVg4Nl9CVUlMVElOX1ZQRFBCVVNEVjRTSV9NQVNLLCBV TktOT1dOLCAoaW50KSBWNFNJX0ZUWVBFX1Y0U0lfVjRTSV9WNFNJX1VRSSkKIEJERVNDIChPUFRJ T05fTUFTS19JU0FfQVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgMCwgQ09E RV9GT1JfdnBkcGJ1c2RfdjRzaV9tYXNreiwgIl9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkX3Y0c2lf bWFza3oiLCBJWDg2X0JVSUxUSU5fVlBEUEJVU0RWNFNJX01BU0taLCBVTktOT1dOLCAoaW50KSBW NFNJX0ZUWVBFX1Y0U0lfVjRTSV9WNFNJX1VRSSkKIAogQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9B Vlg1MTJWTk5JLCAwLCBDT0RFX0ZPUl92cGRwYnVzZHNfdjE2c2ksICJfX2J1aWx0aW5faWEzMl92 cGRwYnVzZHNfdjE2c2kiLCBJWDg2X0JVSUxUSU5fVlBEUEJVU0RTVjE2U0ksIFVOS05PV04sIChp bnQpIFYxNlNJX0ZUWVBFX1YxNlNJX1YxNlNJX1YxNlNJKQogQkRFU0MgKE9QVElPTl9NQVNLX0lT QV9BVlg1MTJWTk5JLCAwLCBDT0RFX0ZPUl92cGRwYnVzZHNfdjE2c2lfbWFzaywgIl9fYnVpbHRp bl9pYTMyX3ZwZHBidXNkc192MTZzaV9tYXNrIiwgSVg4Nl9CVUlMVElOX1ZQRFBCVVNEU1YxNlNJ X01BU0ssIFVOS05PV04sIChpbnQpIFYxNlNJX0ZUWVBFX1YxNlNJX1YxNlNJX1YxNlNJX1VISSkK IEJERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSwgMCwgQ09ERV9GT1JfdnBkcGJ1c2Rz X3YxNnNpX21hc2t6LCAiX19idWlsdGluX2lhMzJfdnBkcGJ1c2RzX3YxNnNpX21hc2t6IiwgSVg4 Nl9CVUlMVElOX1ZQRFBCVVNEU1YxNlNJX01BU0taLCBVTktOT1dOLCAoaW50KSBWMTZTSV9GVFlQ RV9WMTZTSV9WMTZTSV9WMTZTSV9VSEkpCi1CREVTQyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZO TkkgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkwsIDAsIENPREVfRk9SX3ZwZHBidXNkc192OHNp LCAiX19idWlsdGluX2lhMzJfdnBkcGJ1c2RzX3Y4c2kiLCBJWDg2X0JVSUxUSU5fVlBEUEJVU0RT VjhTSSwgVU5LTk9XTiwgKGludCkgVjhTSV9GVFlQRV9WOFNJX1Y4U0lfVjhTSSkKK0JERVNDIChP UFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgT1BU SU9OX01BU0tfSVNBMl9BVlhWTk5JLCBDT0RFX0ZPUl92cGRwYnVzZHNfdjhzaSwgIl9fYnVpbHRp bl9pYTMyX3ZwZHBidXNkc192OHNpIiwgSVg4Nl9CVUlMVElOX1ZQRFBCVVNEU1Y4U0ksIFVOS05P V04sIChpbnQpIFY4U0lfRlRZUEVfVjhTSV9WOFNJX1Y4U0kpCiBCREVTQyAoT1BUSU9OX01BU0tf SVNBX0FWWDUxMlZOTkkgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkwsIDAsIENPREVfRk9SX3Zw ZHBidXNkc192OHNpX21hc2ssICJfX2J1aWx0aW5faWEzMl92cGRwYnVzZHNfdjhzaV9tYXNrIiwg SVg4Nl9CVUlMVElOX1ZQRFBCVVNEU1Y4U0lfTUFTSywgVU5LTk9XTiwgKGludCkgVjhTSV9GVFlQ RV9WOFNJX1Y4U0lfVjhTSV9VUUkpCiBCREVTQyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkkg fCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkwsIDAsIENPREVfRk9SX3ZwZHBidXNkc192OHNpX21h c2t6LCAiX19idWlsdGluX2lhMzJfdnBkcGJ1c2RzX3Y4c2lfbWFza3oiLCBJWDg2X0JVSUxUSU5f VlBEUEJVU0RTVjhTSV9NQVNLWiwgVU5LTk9XTiwgKGludCkgVjhTSV9GVFlQRV9WOFNJX1Y4U0lf VjhTSV9VUUkpCi1CREVTQyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkkgfCBPUFRJT05fTUFT S19JU0FfQVZYNTEyVkwsIDAsIENPREVfRk9SX3ZwZHBidXNkc192NHNpLCAiX19idWlsdGluX2lh MzJfdnBkcGJ1c2RzX3Y0c2kiLCBJWDg2X0JVSUxUSU5fVlBEUEJVU0RTVjRTSSwgVU5LTk9XTiwg KGludCkgVjRTSV9GVFlQRV9WNFNJX1Y0U0lfVjRTSSkKK0JERVNDIChPUFRJT05fTUFTS19JU0Ff QVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgT1BUSU9OX01BU0tfSVNBMl9B VlhWTk5JLCBDT0RFX0ZPUl92cGRwYnVzZHNfdjRzaSwgIl9fYnVpbHRpbl9pYTMyX3ZwZHBidXNk c192NHNpIiwgSVg4Nl9CVUlMVElOX1ZQRFBCVVNEU1Y0U0ksIFVOS05PV04sIChpbnQpIFY0U0lf RlRZUEVfVjRTSV9WNFNJX1Y0U0kpCiBCREVTQyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkkg fCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkwsIDAsIENPREVfRk9SX3ZwZHBidXNkc192NHNpX21h c2ssICJfX2J1aWx0aW5faWEzMl92cGRwYnVzZHNfdjRzaV9tYXNrIiwgSVg4Nl9CVUlMVElOX1ZQ RFBCVVNEU1Y0U0lfTUFTSywgVU5LTk9XTiwgKGludCkgVjRTSV9GVFlQRV9WNFNJX1Y0U0lfVjRT SV9VUUkpCiBCREVTQyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkkgfCBPUFRJT05fTUFTS19J U0FfQVZYNTEyVkwsIDAsIENPREVfRk9SX3ZwZHBidXNkc192NHNpX21hc2t6LCAiX19idWlsdGlu X2lhMzJfdnBkcGJ1c2RzX3Y0c2lfbWFza3oiLCBJWDg2X0JVSUxUSU5fVlBEUEJVU0RTVjRTSV9N QVNLWiwgVU5LTk9XTiwgKGludCkgVjRTSV9GVFlQRV9WNFNJX1Y0U0lfVjRTSV9VUUkpCiAKIEJE RVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSwgMCwgQ09ERV9GT1JfdnBkcHdzc2RfdjE2 c2ksICJfX2J1aWx0aW5faWEzMl92cGRwd3NzZF92MTZzaSIsIElYODZfQlVJTFRJTl9WUERQV1NT RFYxNlNJLCBVTktOT1dOLCAoaW50KSBWMTZTSV9GVFlQRV9WMTZTSV9WMTZTSV9WMTZTSSkKIEJE RVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSwgMCwgQ09ERV9GT1JfdnBkcHdzc2RfdjE2 c2lfbWFzaywgIl9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkX3YxNnNpX21hc2siLCBJWDg2X0JVSUxU SU5fVlBEUFdTU0RWMTZTSV9NQVNLLCBVTktOT1dOLCAoaW50KSBWMTZTSV9GVFlQRV9WMTZTSV9W MTZTSV9WMTZTSV9VSEkpCiBCREVTQyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkksIDAsIENP REVfRk9SX3ZwZHB3c3NkX3YxNnNpX21hc2t6LCAiX19idWlsdGluX2lhMzJfdnBkcHdzc2RfdjE2 c2lfbWFza3oiLCBJWDg2X0JVSUxUSU5fVlBEUFdTU0RWMTZTSV9NQVNLWiwgVU5LTk9XTiwgKGlu dCkgVjE2U0lfRlRZUEVfVjE2U0lfVjE2U0lfVjE2U0lfVUhJKQotQkRFU0MgKE9QVElPTl9NQVNL X0lTQV9BVlg1MTJWTk5JIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZMLCAwLCBDT0RFX0ZPUl92 cGRwd3NzZF92OHNpLCAiX19idWlsdGluX2lhMzJfdnBkcHdzc2RfdjhzaSIsIElYODZfQlVJTFRJ Tl9WUERQV1NTRFY4U0ksIFVOS05PV04sIChpbnQpIFY4U0lfRlRZUEVfVjhTSV9WOFNJX1Y4U0kp CitCREVTQyAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkkgfCBPUFRJT05fTUFTS19JU0FfQVZY NTEyVkwsIE9QVElPTl9NQVNLX0lTQTJfQVZYVk5OSSwgQ09ERV9GT1JfdnBkcHdzc2RfdjhzaSwg Il9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkX3Y4c2kiLCBJWDg2X0JVSUxUSU5fVlBEUFdTU0RWOFNJ LCBVTktOT1dOLCAoaW50KSBWOFNJX0ZUWVBFX1Y4U0lfVjhTSV9WOFNJKQogQkRFU0MgKE9QVElP Tl9NQVNLX0lTQV9BVlg1MTJWTk5JIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZMLCAwLCBDT0RF X0ZPUl92cGRwd3NzZF92OHNpX21hc2ssICJfX2J1aWx0aW5faWEzMl92cGRwd3NzZF92OHNpX21h c2siLCBJWDg2X0JVSUxUSU5fVlBEUFdTU0RWOFNJX01BU0ssIFVOS05PV04sIChpbnQpIFY4U0lf RlRZUEVfVjhTSV9WOFNJX1Y4U0lfVVFJKQogQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJW Tk5JIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZMLCAwLCBDT0RFX0ZPUl92cGRwd3NzZF92OHNp X21hc2t6LCAiX19idWlsdGluX2lhMzJfdnBkcHdzc2RfdjhzaV9tYXNreiIsIElYODZfQlVJTFRJ Tl9WUERQV1NTRFY4U0lfTUFTS1osIFVOS05PV04sIChpbnQpIFY4U0lfRlRZUEVfVjhTSV9WOFNJ X1Y4U0lfVVFJKQotQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTk5JIHwgT1BUSU9OX01B U0tfSVNBX0FWWDUxMlZMLCAwLCBDT0RFX0ZPUl92cGRwd3NzZF92NHNpLCAiX19idWlsdGluX2lh MzJfdnBkcHdzc2RfdjRzaSIsIElYODZfQlVJTFRJTl9WUERQV1NTRFY0U0ksIFVOS05PV04sIChp bnQpIFY0U0lfRlRZUEVfVjRTSV9WNFNJX1Y0U0kpCitCREVTQyAoT1BUSU9OX01BU0tfSVNBX0FW WDUxMlZOTkkgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkwsIE9QVElPTl9NQVNLX0lTQTJfQVZY Vk5OSSwgQ09ERV9GT1JfdnBkcHdzc2RfdjRzaSwgIl9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkX3Y0 c2kiLCBJWDg2X0JVSUxUSU5fVlBEUFdTU0RWNFNJLCBVTktOT1dOLCAoaW50KSBWNFNJX0ZUWVBF X1Y0U0lfVjRTSV9WNFNJKQogQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTk5JIHwgT1BU SU9OX01BU0tfSVNBX0FWWDUxMlZMLCAwLCBDT0RFX0ZPUl92cGRwd3NzZF92NHNpX21hc2ssICJf X2J1aWx0aW5faWEzMl92cGRwd3NzZF92NHNpX21hc2siLCBJWDg2X0JVSUxUSU5fVlBEUFdTU0RW NFNJX01BU0ssIFVOS05PV04sIChpbnQpIFY0U0lfRlRZUEVfVjRTSV9WNFNJX1Y0U0lfVVFJKQog QkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTk5JIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUx MlZMLCAwLCBDT0RFX0ZPUl92cGRwd3NzZF92NHNpX21hc2t6LCAiX19idWlsdGluX2lhMzJfdnBk cHdzc2RfdjRzaV9tYXNreiIsIElYODZfQlVJTFRJTl9WUERQV1NTRFY0U0lfTUFTS1osIFVOS05P V04sIChpbnQpIFY0U0lfRlRZUEVfVjRTSV9WNFNJX1Y0U0lfVVFJKQogCiBCREVTQyAoT1BUSU9O X01BU0tfSVNBX0FWWDUxMlZOTkksIDAsIENPREVfRk9SX3ZwZHB3c3Nkc192MTZzaSwgIl9fYnVp bHRpbl9pYTMyX3ZwZHB3c3Nkc192MTZzaSIsIElYODZfQlVJTFRJTl9WUERQV1NTRFNWMTZTSSwg VU5LTk9XTiwgKGludCkgVjE2U0lfRlRZUEVfVjE2U0lfVjE2U0lfVjE2U0kpCiBCREVTQyAoT1BU SU9OX01BU0tfSVNBX0FWWDUxMlZOTkksIDAsIENPREVfRk9SX3ZwZHB3c3Nkc192MTZzaV9tYXNr LCAiX19idWlsdGluX2lhMzJfdnBkcHdzc2RzX3YxNnNpX21hc2siLCBJWDg2X0JVSUxUSU5fVlBE UFdTU0RTVjE2U0lfTUFTSywgVU5LTk9XTiwgKGludCkgVjE2U0lfRlRZUEVfVjE2U0lfVjE2U0lf VjE2U0lfVUhJKQogQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTk5JLCAwLCBDT0RFX0ZP Ul92cGRwd3NzZHNfdjE2c2lfbWFza3osICJfX2J1aWx0aW5faWEzMl92cGRwd3NzZHNfdjE2c2lf bWFza3oiLCBJWDg2X0JVSUxUSU5fVlBEUFdTU0RTVjE2U0lfTUFTS1osIFVOS05PV04sIChpbnQp IFYxNlNJX0ZUWVBFX1YxNlNJX1YxNlNJX1YxNlNJX1VISSkKLUJERVNDIChPUFRJT05fTUFTS19J U0FfQVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgMCwgQ09ERV9GT1JfdnBk cHdzc2RzX3Y4c2ksICJfX2J1aWx0aW5faWEzMl92cGRwd3NzZHNfdjhzaSIsIElYODZfQlVJTFRJ Tl9WUERQV1NTRFNWOFNJLCBVTktOT1dOLCAoaW50KSBWOFNJX0ZUWVBFX1Y4U0lfVjhTSV9WOFNJ KQorQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTk5JIHwgT1BUSU9OX01BU0tfSVNBX0FW WDUxMlZMLCBPUFRJT05fTUFTS19JU0EyX0FWWFZOTkksIENPREVfRk9SX3ZwZHB3c3Nkc192OHNp LCAiX19idWlsdGluX2lhMzJfdnBkcHdzc2RzX3Y4c2kiLCBJWDg2X0JVSUxUSU5fVlBEUFdTU0RT VjhTSSwgVU5LTk9XTiwgKGludCkgVjhTSV9GVFlQRV9WOFNJX1Y4U0lfVjhTSSkKIEJERVNDIChP UFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgMCwg Q09ERV9GT1JfdnBkcHdzc2RzX3Y4c2lfbWFzaywgIl9fYnVpbHRpbl9pYTMyX3ZwZHB3c3Nkc192 OHNpX21hc2siLCBJWDg2X0JVSUxUSU5fVlBEUFdTU0RTVjhTSV9NQVNLLCBVTktOT1dOLCAoaW50 KSBWOFNJX0ZUWVBFX1Y4U0lfVjhTSV9WOFNJX1VRSSkKIEJERVNDIChPUFRJT05fTUFTS19JU0Ff QVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgMCwgQ09ERV9GT1JfdnBkcHdz c2RzX3Y4c2lfbWFza3osICJfX2J1aWx0aW5faWEzMl92cGRwd3NzZHNfdjhzaV9tYXNreiIsIElY ODZfQlVJTFRJTl9WUERQV1NTRFNWOFNJX01BU0taLCBVTktOT1dOLCAoaW50KSBWOFNJX0ZUWVBF X1Y4U0lfVjhTSV9WOFNJX1VRSSkKLUJERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8 IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgMCwgQ09ERV9GT1JfdnBkcHdzc2RzX3Y0c2ksICJf X2J1aWx0aW5faWEzMl92cGRwd3NzZHNfdjRzaSIsIElYODZfQlVJTFRJTl9WUERQV1NTRFNWNFNJ LCBVTktOT1dOLCAoaW50KSBWNFNJX0ZUWVBFX1Y0U0lfVjRTSV9WNFNJKQorQkRFU0MgKE9QVElP Tl9NQVNLX0lTQV9BVlg1MTJWTk5JIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZMLCBPUFRJT05f TUFTS19JU0EyX0FWWFZOTkksIENPREVfRk9SX3ZwZHB3c3Nkc192NHNpLCAiX19idWlsdGluX2lh MzJfdnBkcHdzc2RzX3Y0c2kiLCBJWDg2X0JVSUxUSU5fVlBEUFdTU0RTVjRTSSwgVU5LTk9XTiwg KGludCkgVjRTSV9GVFlQRV9WNFNJX1Y0U0lfVjRTSSkKIEJERVNDIChPUFRJT05fTUFTS19JU0Ff QVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgMCwgQ09ERV9GT1JfdnBkcHdz c2RzX3Y0c2lfbWFzaywgIl9fYnVpbHRpbl9pYTMyX3ZwZHB3c3Nkc192NHNpX21hc2siLCBJWDg2 X0JVSUxUSU5fVlBEUFdTU0RTVjRTSV9NQVNLLCBVTktOT1dOLCAoaW50KSBWNFNJX0ZUWVBFX1Y0 U0lfVjRTSV9WNFNJX1VRSSkKIEJERVNDIChPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8IE9Q VElPTl9NQVNLX0lTQV9BVlg1MTJWTCwgMCwgQ09ERV9GT1JfdnBkcHdzc2RzX3Y0c2lfbWFza3os ICJfX2J1aWx0aW5faWEzMl92cGRwd3NzZHNfdjRzaV9tYXNreiIsIElYODZfQlVJTFRJTl9WUERQ V1NTRFNWNFNJX01BU0taLCBVTktOT1dOLCAoaW50KSBWNFNJX0ZUWVBFX1Y0U0lfVjRTSV9WNFNJ X1VRSSkKIApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYnVpbHRpbnMuYyBiL2dj Yy9jb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW5zLmMKaW5kZXggY2E3YTg3MDg5NmIuLmY5MjRjMjlk YjM4IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGlucy5jCisrKyBiL2dj Yy9jb25maWcvaTM4Ni9pMzg2LWJ1aWx0aW5zLmMKQEAgLTI3NCw2ICsyNzQsOCBAQCBkZWZfYnVp bHRpbiAoSE9TVF9XSURFX0lOVCBtYXNrLCBIT1NUX1dJREVfSU5UIG1hc2syLAogICAgICAgaWYg KCgobWFzazIgPT0gMCB8fCAobWFzazIgJiBpeDg2X2lzYV9mbGFnczIpICE9IDApCiAJICAgJiYg KG1hc2sgPT0gMCB8fCAobWFzayAmIGl4ODZfaXNhX2ZsYWdzKSAhPSAwKSkKIAkgIHx8ICgobWFz ayAmIE9QVElPTl9NQVNLX0lTQV9NTVgpICE9IDAgJiYgVEFSR0VUX01NWF9XSVRIX1NTRSkKKwkg IC8qIFN1cHBvcnQgdW5pZmllZCBidWlsdGluLiAgKi8KKwkgIHx8IChtYXNrMiA9PSBPUFRJT05f TUFTS19JU0EyX0FWWFZOTkkpCiAJICB8fCAobGFuZ19ob29rcy5idWlsdGluX2Z1bmN0aW9uCiAJ ICAgICAgPT0gbGFuZ19ob29rcy5idWlsdGluX2Z1bmN0aW9uX2V4dF9zY29wZSkpCiAJewpkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYtYy5jIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYt Yy5jCmluZGV4IGU2NDdmY2U5YWQ0Li43Nzg1NmRjNGE2MyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZp Zy9pMzg2L2kzODYtYy5jCisrKyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LWMuYwpAQCAtNTk5LDYg KzU5OSw4IEBAIGl4ODZfdGFyZ2V0X21hY3Jvc19pbnRlcm5hbCAoSE9TVF9XSURFX0lOVCBpc2Ff ZmxhZywKICAgaWYgKGlzYV9mbGFnMiAmIE9QVElPTl9NQVNLX0lTQTJfTU9WQkUpCiAgICAgZGVm X29yX3VuZGVmIChwYXJzZV9pbiwgIl9fTU9WQkVfXyIpOwogCisgIGlmIChpc2FfZmxhZzIgJiBP UFRJT05fTUFTS19JU0EyX0FWWFZOTkkpCisgICAgZGVmX29yX3VuZGVmIChwYXJzZV9pbiwgIl9f QVZYVk5OSV9fIik7CiAgIGlmIChUQVJHRVRfSUFNQ1UpCiAgICAgewogICAgICAgZGVmX29yX3Vu ZGVmIChwYXJzZV9pbiwgIl9faWFtY3UiKTsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9p Mzg2LWV4cGFuZC5jIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYtZXhwYW5kLmMKaW5kZXggZTZmOGIz MTRmMTguLjEzZjU2NDBlMGM1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni1leHBh bmQuYworKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni1leHBhbmQuYwpAQCAtMTA5NjcsNiArMTA5 NjcsOCBAQCBpeDg2X2V4cGFuZF9idWlsdGluICh0cmVlIGV4cCwgcnR4IHRhcmdldCwgcnR4IHN1 YnRhcmdldCwKICAgICAgT1BUSU9OX01BU0tfSVNBX1NTRSB8IE9QVElPTl9NQVNLX0lTQV8zRE5P V19BCiAgICAgIE9QVElPTl9NQVNLX0lTQV9TU0U0XzIgfCBPUFRJT05fTUFTS19JU0FfQ1JDMzIK ICAgICAgT1BUSU9OX01BU0tfSVNBX0ZNQSB8IE9QVElPTl9NQVNLX0lTQV9GTUE0CisgICAgIChP UFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCkgb3IK KyAgICAgICBPUFRJT05fTUFTS19JU0EyX0FWWFZOTkkKICAgICAgd2hlcmUgZm9yIGVhY2ggc3Vj aCBwYWlyIGl0IGlzIHN1ZmZpY2llbnQgaWYgZWl0aGVyIG9mIHRoZSBJU0FzIGlzCiAgICAgIGVu YWJsZWQsIHBsdXMgaWYgaXQgaXMgb3JlZCB3aXRoIG90aGVyIG9wdGlvbnMgYWxzbyB0aG9zZSBv dGhlcnMuCiAgICAgIE9QVElPTl9NQVNLX0lTQV9NTVggaW4gYmlzYSBpcyBzYXRpc2ZpZWQgYWxz byBpZiBUQVJHRVRfTU1YX1dJVEhfU1NFLiAgKi8KQEAgLTEwOTgyLDYgKzEwOTg0LDE2IEBAIGl4 ODZfZXhwYW5kX2J1aWx0aW4gKHRyZWUgZXhwLCBydHggdGFyZ2V0LCBydHggc3VidGFyZ2V0LAog ICAgICAgID09IChPUFRJT05fTUFTS19JU0FfRk1BIHwgT1BUSU9OX01BU0tfSVNBX0ZNQTQpKQog ICAgICAgJiYgKGlzYSAmIChPUFRJT05fTUFTS19JU0FfRk1BIHwgT1BUSU9OX01BU0tfSVNBX0ZN QTQpKSAhPSAwKQogICAgIGlzYSB8PSAoT1BUSU9OX01BU0tfSVNBX0ZNQSB8IE9QVElPTl9NQVNL X0lTQV9GTUE0KTsKKyAgaWYgKCgoKGJpc2EgJiAoT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkkg fCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkwpKQorCT09IChPUFRJT05fTUFTS19JU0FfQVZYNTEy Vk5OSSB8IE9QVElPTl9NQVNLX0lTQV9BVlg1MTJWTCkpCisgICAgICAgfHwgKGJpc2EyICYgT1BU SU9OX01BU0tfSVNBMl9BVlhWTk5JKSAhPSAwKQorICAgICAgJiYgKCgoaXNhICYgKE9QVElPTl9N QVNLX0lTQV9BVlg1MTJWTk5JIHwgT1BUSU9OX01BU0tfSVNBX0FWWDUxMlZMKSkKKwkgICA9PSAo T1BUSU9OX01BU0tfSVNBX0FWWDUxMlZOTkkgfCBPUFRJT05fTUFTS19JU0FfQVZYNTEyVkwpKQor CSAgfHwgKGlzYTIgJiBPUFRJT05fTUFTS19JU0EyX0FWWFZOTkkpICE9IDApKQorICAgIHsKKyAg ICAgIGlzYSB8PSBPUFRJT05fTUFTS19JU0FfQVZYNTEyVk5OSSB8IE9QVElPTl9NQVNLX0lTQV9B Vlg1MTJWTDsKKyAgICAgIGlzYTIgfD0gT1BUSU9OX01BU0tfSVNBMl9BVlhWTk5JOworICAgIH0K ICAgaWYgKChiaXNhICYgT1BUSU9OX01BU0tfSVNBX01NWCkgJiYgIVRBUkdFVF9NTVggJiYgVEFS R0VUX01NWF9XSVRIX1NTRSkKICAgICB7CiAgICAgICBiaXNhICY9IH5PUFRJT05fTUFTS19JU0Ff TU1YOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYtb3B0aW9ucy5jIGIvZ2NjL2Nv bmZpZy9pMzg2L2kzODYtb3B0aW9ucy5jCmluZGV4IGE1OWJkNzAzODgwLi4yYTMzNmNiNjZmNiAx MDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYtb3B0aW9ucy5jCisrKyBiL2djYy9jb25m aWcvaTM4Ni9pMzg2LW9wdGlvbnMuYwpAQCAtMjEyLDcgKzIxMiw4IEBAIHN0YXRpYyBzdHJ1Y3Qg aXg4Nl90YXJnZXRfb3B0cyBpc2EyX29wdHNbXSA9CiAgIHsgIi1tdHN4bGR0cmsiLAlPUFRJT05f TUFTS19JU0EyX1RTWExEVFJLIH0sCiAgIHsgIi1tYW14LXRpbGUiLAlPUFRJT05fTUFTS19JU0Ey X0FNWF9USUxFIH0sCiAgIHsgIi1tYW14LWludDgiLAlPUFRJT05fTUFTS19JU0EyX0FNWF9JTlQ4 IH0sCi0gIHsgIi1tYW14LWJmMTYiLAlPUFRJT05fTUFTS19JU0EyX0FNWF9CRjE2IH0KKyAgeyAi LW1hbXgtYmYxNiIsCU9QVElPTl9NQVNLX0lTQTJfQU1YX0JGMTYgfSwKKyAgeyAiLW1hdnh2bm5p IiwJT1BUSU9OX01BU0tfSVNBMl9BVlhWTk5JIH0KIH07CiBzdGF0aWMgc3RydWN0IGl4ODZfdGFy Z2V0X29wdHMgaXNhX29wdHNbXSA9CiB7CkBAIC0xMDM5LDYgKzEwNDAsNyBAQCBpeDg2X3ZhbGlk X3RhcmdldF9hdHRyaWJ1dGVfaW5uZXJfcCAodHJlZSBmbmRlY2wsIHRyZWUgYXJncywgY2hhciAq cF9zdHJpbmdzW10sCiAgICAgSVg4Nl9BVFRSX0lTQSAoImFteC10aWxlIiwgT1BUX21hbXhfdGls ZSksCiAgICAgSVg4Nl9BVFRSX0lTQSAoImFteC1pbnQ4IiwgT1BUX21hbXhfaW50OCksCiAgICAg SVg4Nl9BVFRSX0lTQSAoImFteC1iZjE2IiwgT1BUX21hbXhfYmYxNiksCisgICAgSVg4Nl9BVFRS X0lTQSAoImF2eHZubmkiLCAgIE9QVF9tYXZ4dm5uaSksCiAKICAgICAvKiBlbnVtIG9wdGlvbnMg Ki8KICAgICBJWDg2X0FUVFJfRU5VTSAoImZwbWF0aD0iLAlPUFRfbWZwbWF0aF8pLApAQCAtMjI5 Myw2ICsyMjk1LDEwIEBAIGl4ODZfb3B0aW9uX292ZXJyaWRlX2ludGVybmFsIChib29sIG1haW5f YXJnc19wLAogCSAgICAmJiAhKG9wdHMtPnhfaXg4Nl9pc2FfZmxhZ3MyX2V4cGxpY2l0CiAJCSAm IE9QVElPTl9NQVNLX0lTQTJfQU1YX0JGMTYpKQogCSAgb3B0cy0+eF9peDg2X2lzYV9mbGFnczIg fD0gT1BUSU9OX01BU0tfSVNBMl9BTVhfQkYxNjsKKwlpZiAoKChwcm9jZXNzb3JfYWxpYXNfdGFi bGVbaV0uZmxhZ3MgJiBQVEFfQVZYVk5OSSkgIT0gMCkKKwkgICAgJiYgIShvcHRzLT54X2l4ODZf aXNhX2ZsYWdzMl9leHBsaWNpdAorCQkgJiBPUFRJT05fTUFTS19JU0EyX0FWWFZOTkkpKQorCSAg b3B0cy0+eF9peDg2X2lzYV9mbGFnczIgfD0gT1BUSU9OX01BU0tfSVNBMl9BVlhWTk5JOwogICAg ICAgICBpZiAoKChwcm9jZXNzb3JfYWxpYXNfdGFibGVbaV0uZmxhZ3MgJiBQVEFfTU9WRElSSSkg IT0gMCkKICAgICAgICAgICAgICYmICEob3B0cy0+eF9peDg2X2lzYV9mbGFnc19leHBsaWNpdCAm IE9QVElPTl9NQVNLX0lTQV9NT1ZESVJJKSkKICAgICAgICAgICBvcHRzLT54X2l4ODZfaXNhX2Zs YWdzIHw9IE9QVElPTl9NQVNLX0lTQV9NT1ZESVJJOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9p Mzg2L2kzODYuaCBiL2djYy9jb25maWcvaTM4Ni9pMzg2LmgKaW5kZXggOWE1ZGU2YTBlOWMuLmY5 Y2JkNmNmNTg1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5oCisrKyBiL2djYy9j b25maWcvaTM4Ni9pMzg2LmgKQEAgLTIwOSw2ICsyMDksOCBAQCBzZWUgdGhlIGZpbGVzIENPUFlJ TkczIGFuZCBDT1BZSU5HLlJVTlRJTUUgcmVzcGVjdGl2ZWx5LiAgSWYgbm90LCBzZWUKICNkZWZp bmUgVEFSR0VUX0FNWF9JTlQ4X1AoeCkgVEFSR0VUX0lTQTJfQU1YX0lOVDgoeCkKICNkZWZpbmUg VEFSR0VUX0FNWF9CRjE2IFRBUkdFVF9JU0EyX0FNWF9CRjE2CiAjZGVmaW5lIFRBUkdFVF9BTVhf QkYxNl9QKHgpIFRBUkdFVF9JU0EyX0FNWF9CRjE2KHgpCisjZGVmaW5lIFRBUkdFVF9BVlhWTk5J CVRBUkdFVF9JU0EyX0FWWFZOTkkKKyNkZWZpbmUgVEFSR0VUX0FWWFZOTklfUCh4KQlUQVJHRVRf SVNBMl9BVlhWTk5JX1AoeCkKIAogI2RlZmluZSBUQVJHRVRfTFA2NAlUQVJHRVRfQUJJXzY0CiAj ZGVmaW5lIFRBUkdFVF9MUDY0X1AoeCkJVEFSR0VUX0FCSV82NF9QKHgpCkBAIC0yNDc1LDYgKzI0 NzcsNyBAQCBjb25zdCB3aWRlX2ludF9iaXRtYXNrIFBUQV9UU1hMRFRSSyAoMCwgSE9TVF9XSURF X0lOVF8xVSA8PCAxOCk7CiBjb25zdCB3aWRlX2ludF9iaXRtYXNrIFBUQV9BTVhfVElMRSgwLCBI T1NUX1dJREVfSU5UXzFVIDw8IDE5KTsKIGNvbnN0IHdpZGVfaW50X2JpdG1hc2sgUFRBX0FNWF9J TlQ4KDAsIEhPU1RfV0lERV9JTlRfMVUgPDwgMjApOwogY29uc3Qgd2lkZV9pbnRfYml0bWFzayBQ VEFfQU1YX0JGMTYoMCwgSE9TVF9XSURFX0lOVF8xVSA8PCAyMSk7Citjb25zdCB3aWRlX2ludF9i aXRtYXNrIFBUQV9BVlhWTk5JICgwLCBIT1NUX1dJREVfSU5UXzFVIDw8IDIyKTsKIAogY29uc3Qg d2lkZV9pbnRfYml0bWFzayBQVEFfWDg2XzY0X0JBU0VMSU5FID0gUFRBXzY0QklUIHwgUFRBX01N WCB8IFBUQV9TU0UKICAgfCBQVEFfU1NFMiB8IFBUQV9OT19TQUhGIHwgUFRBX0ZYU1I7CkBAIC0y NTE4LDkgKzI1MjEsOSBAQCBjb25zdCB3aWRlX2ludF9iaXRtYXNrIFBUQV9USUdFUkxBS0UgPSBQ VEFfSUNFTEFLRV9DTElFTlQgfCBQVEFfTU9WRElSSQogY29uc3Qgd2lkZV9pbnRfYml0bWFzayBQ VEFfU0FQUEhJUkVSQVBJRFMgPSBQVEFfQ09PUEVSTEFLRSB8IFBUQV9NT1ZESVJJCiAgIHwgUFRB X01PVkRJUjY0QiB8IFBUQV9BVlg1MTJWUDJJTlRFUlNFQ1QgfCBQVEFfRU5RQ01EIHwgUFRBX0NM REVNT1RFCiAgIHwgUFRBX1BUV1JJVEUgfCBQVEFfV0FJVFBLRyB8IFBUQV9TRVJJQUxJWkUgfCBQ VEFfVFNYTERUUksgfCBQVEFfQU1YX1RJTEUKLSAgfCBQVEFfQU1YX0lOVDggfCBQVEFfQU1YX0JG MTY7CisgIHwgUFRBX0FNWF9JTlQ4IHwgUFRBX0FNWF9CRjE2IHwgUFRBX0FWWFZOTkk7CiBjb25z dCB3aWRlX2ludF9iaXRtYXNrIFBUQV9BTERFUkxBS0UgPSBQVEFfU0tZTEFLRSB8IFBUQV9DTERF TU9URSB8IFBUQV9QVFdSSVRFCi0gIHwgUFRBX1dBSVRQS0cgfCBQVEFfU0VSSUFMSVpFOworICB8 IFBUQV9XQUlUUEtHIHwgUFRBX1NFUklBTElaRSB8IFBUQV9BVlhWTk5JOwogY29uc3Qgd2lkZV9p bnRfYml0bWFzayBQVEFfS05MID0gUFRBX0JST0FEV0VMTCB8IFBUQV9BVlg1MTJQRiB8IFBUQV9B Vlg1MTJFUgogICB8IFBUQV9BVlg1MTJGIHwgUFRBX0FWWDUxMkNEOwogY29uc3Qgd2lkZV9pbnRf Yml0bWFzayBQVEFfQk9OTkVMTCA9IFBUQV9DT1JFMiB8IFBUQV9NT1ZCRTsKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvaTM4Ni9pMzg2Lm1kIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYubWQKaW5kZXgg OWRkMTJjZjg2NDMuLjk2MGViY2JmNTQ2IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvaTM4 Ni5tZAorKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5tZApAQCAtODA5LDcgKzgwOSw4IEBACiAJ CSAgICBzc2Vfbm9hdngsc3NlMixzc2UyX25vYXZ4LHNzZTMsc3NlM19ub2F2eCxzc2U0LHNzZTRf bm9hdngsCiAJCSAgICBhdngsbm9hdngsYXZ4Mixub2F2eDIsYm1pLGJtaTIsZm1hNCxmbWEsYXZ4 NTEyZixub2F2eDUxMmYsCiAJCSAgICBhdng1MTJidyxub2F2eDUxMmJ3LGF2eDUxMmRxLG5vYXZ4 NTEyZHEsCi0JCSAgICBhdng1MTJ2bCxub2F2eDUxMnZsLHg2NF9hdng1MTJkcSx4NjRfYXZ4NTEy YnciCisJCSAgICBhdng1MTJ2bCxub2F2eDUxMnZsLHg2NF9hdng1MTJkcSx4NjRfYXZ4NTEyYncs CisJCSAgICBhdnh2bm5pLGF2eDUxMnZubml2bCIKICAgKGNvbnN0X3N0cmluZyAiYmFzZSIpKQog CiA7OyBEZWZpbmUgaW5zdHJ1Y3Rpb24gc2V0IG9mIE1NWCBpbnN0cnVjdGlvbnMKQEAgLTg1OCw2 ICs4NTksOCBAQAogCSAoZXFfYXR0ciAiaXNhIiAibm9hdng1MTJkcSIpIChzeW1ib2xfcmVmICIh VEFSR0VUX0FWWDUxMkRRIikKIAkgKGVxX2F0dHIgImlzYSIgImF2eDUxMnZsIikgKHN5bWJvbF9y ZWYgIlRBUkdFVF9BVlg1MTJWTCIpCiAJIChlcV9hdHRyICJpc2EiICJub2F2eDUxMnZsIikgKHN5 bWJvbF9yZWYgIiFUQVJHRVRfQVZYNTEyVkwiKQorCSAoZXFfYXR0ciAiaXNhIiAiYXZ4dm5uaSIp IChzeW1ib2xfcmVmICJUQVJHRVRfQVZYVk5OSSIpCisJIChlcV9hdHRyICJpc2EiICJhdng1MTJ2 bm5pdmwiKSAoc3ltYm9sX3JlZiAiVEFSR0VUX0FWWDUxMlZOTkkgJiYgVEFSR0VUX0FWWDUxMlZM IikKIAogCSAoZXFfYXR0ciAibW14X2lzYSIgIm5hdGl2ZSIpCiAJICAgKHN5bWJvbF9yZWYgIiFU QVJHRVRfTU1YX1dJVEhfU1NFIikKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2Lm9w dCBiL2djYy9jb25maWcvaTM4Ni9pMzg2Lm9wdAppbmRleCA5Mzg5ZGMyNDk0OC4uMjY2NDQ2NWM4 OTAgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9pMzg2Lm9wdAorKysgYi9nY2MvY29uZmln L2kzODYvaTM4Ni5vcHQKQEAgLTExMjcsMyArMTEyNyw4IEBAIFN1cHBvcnQgQU1YLUlOVDggYnVp bHQtaW4gZnVuY3Rpb25zIGFuZCBjb2RlIGdlbmVyYXRpb24uCiBtYW14LWJmMTYKIFRhcmdldCBS ZXBvcnQgTWFzayhJU0EyX0FNWF9CRjE2KSBWYXIoaXg4Nl9pc2FfZmxhZ3MyKSBTYXZlCiBTdXBw b3J0IEFNWC1CRjE2IGJ1aWx0LWluIGZ1bmN0aW9ucyBhbmQgY29kZSBnZW5lcmF0aW9uLgorCitt YXZ4dm5uaQorVGFyZ2V0IFJlcG9ydCBNYXNrKElTQTJfQVZYVk5OSSkgVmFyKGl4ODZfaXNhX2Zs YWdzMikgU2F2ZQorU3VwcG9ydCBNTVgsIFNTRSwgU1NFMiwgU1NFMywgU1NTRTMsIFNTRTQuMSwg U1NFNC4yLCBBVlgsIEFWWDIsIGFuZAorQVZYVk5OSSBidWlsdC1pbiBmdW5jdGlvbnMgYW5kIGNv ZGUgZ2VuZXJhdGlvbi4KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pbW1pbnRyaW4uaCBi L2djYy9jb25maWcvaTM4Ni9pbW1pbnRyaW4uaAppbmRleCA3MWVhZTgzNjhhZi4uMjQ4ZTc4MzRi ZTYgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvaTM4Ni9pbW1pbnRyaW4uaAorKysgYi9nY2MvY29u ZmlnL2kzODYvaW1taW50cmluLmgKQEAgLTQyLDYgKzQyLDggQEAKIAogI2luY2x1ZGUgPGF2eGlu dHJpbi5oPgogCisjaW5jbHVkZSA8YXZ4dm5uaWludHJpbi5oPgorCiAjaW5jbHVkZSA8YXZ4Mmlu dHJpbi5oPgogCiAjaW5jbHVkZSA8YXZ4NTEyZmludHJpbi5oPgpkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9pMzg2L3NzZS5tZCBiL2djYy9jb25maWcvaTM4Ni9zc2UubWQKaW5kZXggOTM0YjYwYTI4 OGYuLjk2MjY2ZWE4YWY3IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvc3NlLm1kCisrKyBi L2djYy9jb25maWcvaTM4Ni9zc2UubWQKQEAgLTIzMTk5LDE2ICsyMzE5OSwzMCBAQAogICAgWyhz ZXRfYXR0ciAoInByZWZpeCIpICgiZXZleCIpKQogICAgKHNldF9hdHRyICJtb2RlIiAiPHNzZWlu c25tb2RlPiIpXSkKIAotKGRlZmluZV9pbnNuICJ2cGRwYnVzZF88bW9kZT4iCi0gIFsoc2V0ICht YXRjaF9vcGVyYW5kOlZJNF9BVlg1MTJWTCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQotCSh1 bnNwZWM6Vkk0X0FWWDUxMlZMCi0JICBbKG1hdGNoX29wZXJhbmQ6Vkk0X0FWWDUxMlZMIDEgInJl Z2lzdGVyX29wZXJhbmQiICIwIikKLQkgICAobWF0Y2hfb3BlcmFuZDpWSTRfQVZYNTEyVkwgMiAi cmVnaXN0ZXJfb3BlcmFuZCIgInYiKQotCSAgIChtYXRjaF9vcGVyYW5kOlZJNF9BVlg1MTJWTCAz ICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInZtIildCisoZGVmaW5lX2luc24gInZwZHBidXNkX3Yx NnNpIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMTZTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXYiKQorCSh1bnNwZWM6VjE2U0kKKwkgIFsobWF0Y2hfb3BlcmFuZDpWMTZTSSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiMCIpCisJICAgKG1hdGNoX29wZXJhbmQ6VjE2U0kgMiAicmVnaXN0ZXJfb3Bl cmFuZCIgInYiKQorCSAgIChtYXRjaF9vcGVyYW5kOlYxNlNJIDMgIm5vbmltbWVkaWF0ZV9vcGVy YW5kIiAidm0iKV0KIAkgIFVOU1BFQ19WUE1BRERVQlNXQUNDRCkpXQogICAiVEFSR0VUX0FWWDUx MlZOTkkiCi0gICJ2cGRwYnVzZFx0eyUzLCAlMiwgJTB8JTAsICUyLCAlMyB9IgotICAgWyhzZXRf YXR0ciAoInByZWZpeCIpICgiZXZleCIpKV0pCisgICJ2cGRwYnVzZFx0eyUzLCAlMiwgJTB8JTAs ICUyLCAlM30iCisgIFsoc2V0X2F0dHIgKCJwcmVmaXgiKSAoImV2ZXgiKSldKQorCisoZGVmaW5l X2luc24gInZwZHBidXNkXzxtb2RlPiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vkk0X0FWWDIg MCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHYiKQorCSh1bnNwZWM6Vkk0X0FWWDIKKwkgIFsobWF0 Y2hfb3BlcmFuZDpWSTRfQVZYMiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCwwIikKKwkgICAobWF0 Y2hfb3BlcmFuZDpWSTRfQVZYMiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAieCx2IikKKwkgICAobWF0 Y2hfb3BlcmFuZDpWSTRfQVZYMiAzICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtLHZtIildCisJ ICBVTlNQRUNfVlBNQUREVUJTV0FDQ0QpKV0KKyAgIlRBUkdFVF9BVlhWTk5JIHx8IChUQVJHRVRf QVZYNTEyVk5OSSAmJiBUQVJHRVRfQVZYNTEyVkwpIgorICAiQAorICAle3ZleCV9IHZwZHBidXNk XHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfQorICB2cGRwYnVzZFx0eyUzLCAlMiwgJTB8JTAsICUy LCAlM30iCisgIFsoc2V0X2F0dHIgKCJwcmVmaXgiKSAoInZleCxldmV4IikpCisgICAoc2V0X2F0 dHIgKCJpc2EiKSAoImF2eHZubmksYXZ4NTEydm5uaXZsIikpXSkKIAogKGRlZmluZV9pbnNuICJ2 cGRwYnVzZF88bW9kZT5fbWFzayIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vkk0X0FWWDUxMlZM IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCkBAIC0yMzI1MywxNyArMjMyNjcsMzAgQEAKICAg InZwZHBidXNkXHR7JTMsICUyLCAlMCV7JTUlfSV7eiV9fCUwJXslNSV9JXt6JX0sICUyLCAlMyB9 IgogICAgWyhzZXRfYXR0ciAoInByZWZpeCIpICgiZXZleCIpKV0pCiAKKyhkZWZpbmVfaW5zbiAi dnBkcGJ1c2RzX3YxNnNpIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMTZTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAiPXYiKQorCSh1bnNwZWM6VjE2U0kKKwkgIFsobWF0Y2hfb3BlcmFuZDpWMTZT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCisJICAgKG1hdGNoX29wZXJhbmQ6VjE2U0kgMiAi cmVnaXN0ZXJfb3BlcmFuZCIgInYiKQorCSAgIChtYXRjaF9vcGVyYW5kOlYxNlNJIDMgIm5vbmlt bWVkaWF0ZV9vcGVyYW5kIiAidm0iKV0KKwkgIFVOU1BFQ19WUE1BRERVQlNXQUNDU1NEKSldCisg ICJUQVJHRVRfQVZYNTEyVk5OSSIKKyAgInZwZHBidXNkc1x0eyUzLCAlMiwgJTB8JTAsICUyLCAl M30iCisgIFsoc2V0X2F0dHIgKCJwcmVmaXgiKSAoImV2ZXgiKSldKQogCiAoZGVmaW5lX2luc24g InZwZHBidXNkc188bW9kZT4iCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJNF9BVlg1MTJWTCAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXYiKQotCSh1bnNwZWM6Vkk0X0FWWDUxMlZMCi0JICBbKG1h dGNoX29wZXJhbmQ6Vkk0X0FWWDUxMlZMIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKLQkgICAo bWF0Y2hfb3BlcmFuZDpWSTRfQVZYNTEyVkwgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInYiKQotCSAg IChtYXRjaF9vcGVyYW5kOlZJNF9BVlg1MTJWTCAzICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInZt IildCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZJNF9BVlgyIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9eCx2IikKKwkodW5zcGVjOlZJNF9BVlgyCisJICBbKG1hdGNoX29wZXJhbmQ6Vkk0X0FWWDIg MSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAsMCIpCisJICAgKG1hdGNoX29wZXJhbmQ6Vkk0X0FWWDIg MiAicmVnaXN0ZXJfb3BlcmFuZCIgIngsdiIpCisJICAgKG1hdGNoX29wZXJhbmQ6Vkk0X0FWWDIg MyAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ4bSx2bSIpXQogCSAgVU5TUEVDX1ZQTUFERFVCU1dB Q0NTU0QpKV0KLSAgIlRBUkdFVF9BVlg1MTJWTk5JIgotICAidnBkcGJ1c2RzXHR7JTMsICUyLCAl MHwlMCwgJTIsICUzIH0iCi0gICBbKHNldF9hdHRyICgicHJlZml4IikgKCJldmV4IikpXSkKKyAg IlRBUkdFVF9BVlhWTk5JIHx8IChUQVJHRVRfQVZYNTEyVk5OSSAmJiBUQVJHRVRfQVZYNTEyVkwp IgorICAiQAorICAgJXt2ZXglfSB2cGRwYnVzZHNcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9Cisg ICB2cGRwYnVzZHNcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgorICBbKHNldF9hdHRyICgicHJl Zml4IikgKCJ2ZXgsZXZleCIpKQorICAgKHNldF9hdHRyICgiaXNhIikgKCJhdnh2bm5pLGF2eDUx MnZubml2bCIpKV0pCiAKIChkZWZpbmVfaW5zbiAidnBkcGJ1c2RzXzxtb2RlPl9tYXNrIgogICBb KHNldCAobWF0Y2hfb3BlcmFuZDpWSTRfQVZYNTEyVkwgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12 IikKQEAgLTIzMzA4LDE3ICsyMzMzNSwzMCBAQAogICAidnBkcGJ1c2RzXHR7JTMsICUyLCAlMCV7 JTUlfSV7eiV9fCUwJXslNSV9JXt6JX0sICUyLCAlMyB9IgogICAgWyhzZXRfYXR0ciAoInByZWZp eCIpICgiZXZleCIpKV0pCiAKKyhkZWZpbmVfaW5zbiAidnBkcHdzc2RfdjE2c2kiCisgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOlYxNlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCisJKHVuc3Bl YzpWMTZTSQorCSAgWyhtYXRjaF9vcGVyYW5kOlYxNlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIw IikKKwkgICAobWF0Y2hfb3BlcmFuZDpWMTZTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAidiIpCisJ ICAgKG1hdGNoX29wZXJhbmQ6VjE2U0kgMyAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ2bSIpXQor CSAgVU5TUEVDX1ZQTUFERFdEQUNDRCkpXQorICAiVEFSR0VUX0FWWDUxMlZOTkkiCisgICJ2cGRw d3NzZFx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCisgIFsoc2V0X2F0dHIgKCJwcmVmaXgiKSAo ImV2ZXgiKSldKQogCiAoZGVmaW5lX2luc24gInZwZHB3c3NkXzxtb2RlPiIKLSAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6Vkk0X0FWWDUxMlZMIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9diIpCi0JKHVu c3BlYzpWSTRfQVZYNTEyVkwKLQkgIFsobWF0Y2hfb3BlcmFuZDpWSTRfQVZYNTEyVkwgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIjAiKQotCSAgIChtYXRjaF9vcGVyYW5kOlZJNF9BVlg1MTJWTCAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAidiIpCi0JICAgKG1hdGNoX29wZXJhbmQ6Vkk0X0FWWDUxMlZMIDMg Im5vbmltbWVkaWF0ZV9vcGVyYW5kIiAidm0iKV0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vkk0 X0FWWDIgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14LHYiKQorCSh1bnNwZWM6Vkk0X0FWWDIKKwkg IFsobWF0Y2hfb3BlcmFuZDpWSTRfQVZYMiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCwwIikKKwkg ICAobWF0Y2hfb3BlcmFuZDpWSTRfQVZYMiAyICJyZWdpc3Rlcl9vcGVyYW5kIiAieCx2IikKKwkg ICAobWF0Y2hfb3BlcmFuZDpWSTRfQVZYMiAzICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtLHZt IildCiAJICBVTlNQRUNfVlBNQUREV0RBQ0NEKSldCi0gICJUQVJHRVRfQVZYNTEyVk5OSSIKLSAg InZwZHB3c3NkXHR7JTMsICUyLCAlMHwlMCwgJTIsICUzIH0iCi0gICBbKHNldF9hdHRyICgicHJl Zml4IikgKCJldmV4IikpXSkKKyAgIlRBUkdFVF9BVlhWTk5JIHx8IChUQVJHRVRfQVZYNTEyVk5O SSAmJiBUQVJHRVRfQVZYNTEyVkwpIgorICAiQAorICAle3ZleCV9IHZwZHB3c3NkXHR7JTMsICUy LCAlMHwlMCwgJTIsICUzfQorICB2cGRwd3NzZFx0eyUzLCAlMiwgJTB8JTAsICUyLCAlM30iCisg IFsoc2V0X2F0dHIgKCJwcmVmaXgiKSAoInZleCxldmV4IikpCisgICAoc2V0X2F0dHIgKCJpc2Ei KSAoImF2eHZubmksYXZ4NTEydm5uaXZsIikpXSkKIAogKGRlZmluZV9pbnNuICJ2cGRwd3NzZF88 bW9kZT5fbWFzayIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6Vkk0X0FWWDUxMlZMIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9diIpCkBAIC0yMzM2MywxNyArMjM0MDMsMzAgQEAKICAgInZwZHB3c3Nk XHR7JTMsICUyLCAlMCV7JTUlfSV7eiV9fCUwJXslNSV9JXt6JX0sICUyLCAlMyB9IgogICAgWyhz ZXRfYXR0ciAoInByZWZpeCIpICgiZXZleCIpKV0pCiAKKyhkZWZpbmVfaW5zbiAidnBkcHdzc2Rz X3YxNnNpIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWMTZTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXYiKQorCSh1bnNwZWM6VjE2U0kKKwkgIFsobWF0Y2hfb3BlcmFuZDpWMTZTSSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiMCIpCisJICAgKG1hdGNoX29wZXJhbmQ6VjE2U0kgMiAicmVnaXN0ZXJf b3BlcmFuZCIgInYiKQorCSAgIChtYXRjaF9vcGVyYW5kOlYxNlNJIDMgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAidm0iKV0KKwkgIFVOU1BFQ19WUE1BRERXREFDQ1NTRCkpXQorICAiVEFSR0VUX0FW WDUxMlZOTkkiCisgICJ2cGRwd3NzZHNcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgorICBbKHNl dF9hdHRyICgicHJlZml4IikgKCJldmV4IikpXSkKIAogKGRlZmluZV9pbnNuICJ2cGRwd3NzZHNf PG1vZGU+IgotICBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSTRfQVZYNTEyVkwgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj12IikKLQkodW5zcGVjOlZJNF9BVlg1MTJWTAotCSAgWyhtYXRjaF9vcGVyYW5k OlZJNF9BVlg1MTJWTCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCi0JICAgKG1hdGNoX29wZXJh bmQ6Vkk0X0FWWDUxMlZMIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ2IikKLQkgICAobWF0Y2hfb3Bl cmFuZDpWSTRfQVZYNTEyVkwgMyAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJ2bSIpXQorICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpWSTRfQVZYMiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgsdiIpCisJ KHVuc3BlYzpWSTRfQVZYMgorCSAgWyhtYXRjaF9vcGVyYW5kOlZJNF9BVlgyIDEgInJlZ2lzdGVy X29wZXJhbmQiICIwLDAiKQorCSAgIChtYXRjaF9vcGVyYW5kOlZJNF9BVlgyIDIgInJlZ2lzdGVy X29wZXJhbmQiICJ4LHYiKQorCSAgIChtYXRjaF9vcGVyYW5kOlZJNF9BVlgyIDMgIm5vbmltbWVk aWF0ZV9vcGVyYW5kIiAieG0sdm0iKV0KIAkgIFVOU1BFQ19WUE1BRERXREFDQ1NTRCkpXQotICAi VEFSR0VUX0FWWDUxMlZOTkkiCi0gICJ2cGRwd3NzZHNcdHslMywgJTIsICUwfCUwLCAlMiwgJTMg fSIKLSAgIFsoc2V0X2F0dHIgKCJwcmVmaXgiKSAoImV2ZXgiKSldKQorICAiVEFSR0VUX0FWWFZO TkkgfHwgKFRBUkdFVF9BVlg1MTJWTk5JICYmIFRBUkdFVF9BVlg1MTJWTCkiCisgICJACisgICV7 dmV4JX0gdnBkcHdzc2RzXHR7JTMsICUyLCAlMHwlMCwgJTIsICUzfQorICB2cGRwd3NzZHNcdHsl MywgJTIsICUwfCUwLCAlMiwgJTN9IgorICBbKHNldF9hdHRyICgicHJlZml4IikgKCJ2ZXgsZXZl eCIpKQorICAgKHNldF9hdHRyICgiaXNhIikgKCJhdnh2bm5pLGF2eDUxMnZubml2bCIpKV0pCiAK IChkZWZpbmVfaW5zbiAidnBkcHdzc2RzXzxtb2RlPl9tYXNrIgogICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWSTRfQVZYNTEyVkwgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj12IikKZGlmZiAtLWdpdCBh L2djYy9kb2MvZXh0ZW5kLnRleGkgYi9nY2MvZG9jL2V4dGVuZC50ZXhpCmluZGV4IGI5Njg0ZGM3 YTA2Li4yN2MzNjBlMjBkYyAxMDA2NDQKLS0tIGEvZ2NjL2RvYy9leHRlbmQudGV4aQorKysgYi9n Y2MvZG9jL2V4dGVuZC50ZXhpCkBAIC02NjM4LDYgKzY2MzgsMTEgQEAgRW5hYmxlL2Rpc2FibGUg dGhlIGdlbmVyYXRpb24gb2YgdGhlIEFNWC1JTlQ4IGluc3RydWN0aW9ucy4KIEBjaW5kZXggQGNv ZGV7dGFyZ2V0KCJhbXgtYmYxNiIpfSBmdW5jdGlvbiBhdHRyaWJ1dGUsIHg4NgogRW5hYmxlL2Rp c2FibGUgdGhlIGdlbmVyYXRpb24gb2YgdGhlIEFNWC1CRjE2IGluc3RydWN0aW9ucy4KIAorQGl0 ZW0gYXZ4dm5uaQorQGl0ZW14IG5vLWF2eHZubmkKK0BjaW5kZXggQGNvZGV7dGFyZ2V0KCJhdnh2 bm5pIil9IGZ1bmN0aW9uIGF0dHJpYnV0ZSwgeDg2CitFbmFibGUvZGlzYWJsZSB0aGUgZ2VuZXJh dGlvbiBvZiB0aGUgQVZYVk5OSSBpbnN0cnVjdGlvbnMuCisKIEBpdGVtIGNsZAogQGl0ZW14IG5v LWNsZAogQGNpbmRleCBAY29kZXt0YXJnZXQoImNsZCIpfSBmdW5jdGlvbiBhdHRyaWJ1dGUsIHg4 NgpkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9pbnZva2UudGV4aSBiL2djYy9kb2MvaW52b2tlLnRleGkK aW5kZXggYjhjODA3ZTYzMWMuLmI2MWEzMDQyNDM3IDEwMDY0NAotLS0gYS9nY2MvZG9jL2ludm9r ZS50ZXhpCisrKyBiL2djYy9kb2MvaW52b2tlLnRleGkKQEAgLTEzNjMsNiArMTM2Myw3IEBAIFNl ZSBSUy82MDAwIGFuZCBQb3dlclBDIE9wdGlvbnMuCiAtbWF2eDUxMjRmbWFwcyAgLW1hdng1MTJ2 bm5pICAtbWF2eDUxMjR2bm5pdyAgLW1wcmZjaHcgIC1tcmRwaWQgQGdvbAogLW1yZHNlZWQgIC1t c2d4IC1tYXZ4NTEydnAyaW50ZXJzZWN0IC1tc2VyaWFsaXplIC1tdHN4bGR0cmtAZ29sCiAtbWFt eC10aWxlICAtbWFteC1pbnQ4ICAtbWFteC1iZjE2QGdvbAorLW1hdnh2bm5pIEBnb2wKIC1tY2xk ZW1vdGUgIC1tbXMtYml0ZmllbGRzICAtbW5vLWFsaWduLXN0cmluZ29wcyAgLW1pbmxpbmUtYWxs LXN0cmluZ29wcyBAZ29sCiAtbWlubGluZS1zdHJpbmdvcHMtZHluYW1pY2FsbHkgIC1tc3RyaW5n b3Atc3RyYXRlZ3k9QHZhcnthbGd9IEBnb2wKIC1tbWVtY3B5LXN0cmF0ZWd5PUB2YXJ7c3RyYXRl Z3l9ICAtbW1lbXNldC1zdHJhdGVneT1AdmFye3N0cmF0ZWd5fSBAZ29sCkBAIC0zMDI0NCw2ICsz MDI0NSw5IEBAIHByZWZlcnJlZCBhbGlnbm1lbnQgdG8gQG9wdGlvbnstbXByZWZlcnJlZC1zdGFj ay1ib3VuZGFyeT0yfS4KIEBpdGVteCAtbWF2eDUxMnZubmkKIEBvcGluZGV4IG1hdng1MTJ2bm5p CiBAbmVlZCAyMDAKK0BpdGVteCAtbWF2eHZubmkKK0BvcGluZGV4IG1hdnh2bm5pCitAbmVlZCAy MDAKIEBpdGVteCAtbWF2eDUxMjR2bm5pdwogQG9waW5kZXggbWF2eDUxMjR2bm5pdwogQG5lZWQg MjAwCkBAIC0zMDI3MCw3ICszMDI3NCw3IEBAIFdCTk9JTlZELCBGTUE0LCBQUkVGRVRDSFcsIFJE UElELCBQUkVGRVRDSFdUMSwgUkRTRUVELCBTR1gsIFhPUCwgTFdQLAogWFNBVkVPUFQsIFhTQVZF QywgWFNBVkVTLCBSVE0sIEhMRSwgVEJNLCBNV0FJVFgsIENMWkVSTywgUEtVLCBBVlg1MTJWQk1J MiwKIEdGTkksIFZBRVMsIFdBSVRQS0csIFZQQ0xNVUxRRFEsIEFWWDUxMkJJVEFMRywgTU9WRElS SSwgTU9WRElSNjRCLCBBVlg1MTJCRjE2LAogRU5RQ01ELCBBVlg1MTJWUE9QQ05URFEsIEFWWDUx MjRGTUFQUywgQVZYNTEyVk5OSSwgQVZYNTEyNFZOTklXLCBTRVJJQUxJWkUKLW9yIENMREVNT1RF IGV4dGVuZGVkIGluc3RydWN0aW9uIHNldHMuICBFYWNoIGhhcyBhIGNvcnJlc3BvbmRpbmcKK0FW WFZOTkkgb3IgQ0xERU1PVEUgZXh0ZW5kZWQgaW5zdHJ1Y3Rpb24gc2V0cy4gIEVhY2ggaGFzIGEg Y29ycmVzcG9uZGluZwogQG9wdGlvbnstbW5vLX0gb3B0aW9uIHRvIGRpc2FibGUgdXNlIG9mIHRo ZXNlIGluc3RydWN0aW9ucy4KIAogVGhlc2UgZXh0ZW5zaW9ucyBhcmUgYWxzbyBhdmFpbGFibGUg YXMgYnVpbHQtaW4gZnVuY3Rpb25zOiBzZWUKZGlmZiAtLWdpdCBhL2djYy9kb2Mvc291cmNlYnVp bGQudGV4aSBiL2djYy9kb2Mvc291cmNlYnVpbGQudGV4aQppbmRleCA0OTMxNmE1ZDBmZi4uNzQw ODc5ZDIxMzEgMTAwNjQ0Ci0tLSBhL2djYy9kb2Mvc291cmNlYnVpbGQudGV4aQorKysgYi9nY2Mv ZG9jL3NvdXJjZWJ1aWxkLnRleGkKQEAgLTIyNDMsNiArMjI0Myw5IEBAIFRhcmdldCBzdXBwb3J0 cyBjb21waWxpbmcgQGNvZGV7YXZ4Mn0gaW5zdHJ1Y3Rpb25zLgogQGl0ZW0gYXZ4Ml9ydW50aW1l CiBUYXJnZXQgc3VwcG9ydHMgdGhlIGV4ZWN1dGlvbiBvZiBAY29kZXthdngyfSBpbnN0cnVjdGlv bnMuCiAKK0BpdGVtIGF2eHZubmkKK1RhcmdldCBzdXBwb3J0cyB0aGUgZXhlY3V0aW9uIG9mIEBj b2Rle2F2eHZubml9IGluc3RydWN0aW9ucy4KKwogQGl0ZW0gYXZ4NTEyZgogVGFyZ2V0IHN1cHBv cnRzIGNvbXBpbGluZyBAY29kZXthdng1MTJmfSBpbnN0cnVjdGlvbnMuCiAKZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZysrLmRnL290aGVyL2kzODYtMi5DIGIvZ2NjL3Rlc3RzdWl0ZS9nKysu ZGcvb3RoZXIvaTM4Ni0yLkMKaW5kZXggNDQ5ZjMwZGJhY2UuLjdlYWExODUxZmU1IDEwMDY0NAot LS0gYS9nY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9pMzg2LTIuQworKysgYi9nY2MvdGVzdHN1 aXRlL2crKy5kZy9vdGhlci9pMzg2LTIuQwpAQCAtMSw1ICsxLDUgQEAKIC8qIHsgZGctZG8gY29t cGlsZSB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotLyogeyBkZy1vcHRpb25z ICItTyAtcGVkYW50aWMtZXJyb3JzIC1tYXJjaD1rOCAtbXNzZTRhIC1tM2Rub3cgLW1hdnggLW1h dngyIC1tZm1hNCAtbXhvcCAtbWFlcyAtbXBjbG11bCAtbXBvcGNudCAtbWFibSAtbWx6Y250IC1t Ym1pIC1tYm1pMiAtbXRibSAtbWx3cCAtbWZzZ3NiYXNlIC1tcmRybmQgLW1mMTZjIC1tZm1hIC1t cnRtIC1tcmRzZWVkIC1tcHJmY2h3IC1tYWR4IC1tZnhzciAtbXhzYXZlb3B0IC1tYXZ4NTEyZiAt bWF2eDUxMmVyIC1tYXZ4NTEyY2QgLW1hdng1MTJwZiAtbXNoYSAtbXByZWZldGNod3QxIC1teHNh dmVjIC1teHNhdmVzIC1tY2xmbHVzaG9wdCAgLW1hdng1MTJkcSAtbWF2eDUxMmJ3IC1tYXZ4NTEy dmwgLW1hdng1MTJpZm1hIC1tYXZ4NTEydmJtaSAtbWF2eDUxMnZibWkyIC1tYXZ4NTEyNGZtYXBz IC1tYXZ4NTEyNHZubml3IC1tYXZ4NTEydnBvcGNudGRxIC1tY2x3YiAtbW13YWl0eCAtbWNsemVy byAtbXBrdSAtbXNneCAtbXJkcGlkIC1tZ2ZuaSAtbWF2eDUxMmJpdGFsZyAtbXBjb25maWcgLW13 Ym5vaW52ZCAtbWF2eDUxMmJmMTYgLW1lbnFjbWQgLW1hdng1MTJ2cDJpbnRlcnNlY3QgLW1zZXJp YWxpemUgLW10c3hsZHRyayAtbWFteC10aWxlIC1tYW14LWludDggLW1hbXgtYmYxNiIgfSAqLwor LyogeyBkZy1vcHRpb25zICItTyAtcGVkYW50aWMtZXJyb3JzIC1tYXJjaD1rOCAtbXNzZTRhIC1t M2Rub3cgLW1hdnggLW1hdngyIC1tZm1hNCAtbXhvcCAtbWFlcyAtbXBjbG11bCAtbXBvcGNudCAt bWFibSAtbWx6Y250IC1tYm1pIC1tYm1pMiAtbXRibSAtbWx3cCAtbWZzZ3NiYXNlIC1tcmRybmQg LW1mMTZjIC1tZm1hIC1tcnRtIC1tcmRzZWVkIC1tcHJmY2h3IC1tYWR4IC1tZnhzciAtbXhzYXZl b3B0IC1tYXZ4NTEyZiAtbWF2eDUxMmVyIC1tYXZ4NTEyY2QgLW1hdng1MTJwZiAtbXNoYSAtbXBy ZWZldGNod3QxIC1teHNhdmVjIC1teHNhdmVzIC1tY2xmbHVzaG9wdCAgLW1hdng1MTJkcSAtbWF2 eDUxMmJ3IC1tYXZ4NTEydmwgLW1hdng1MTJpZm1hIC1tYXZ4NTEydmJtaSAtbWF2eDUxMnZibWky IC1tYXZ4NTEyNGZtYXBzIC1tYXZ4NTEyNHZubml3IC1tYXZ4NTEydnBvcGNudGRxIC1tY2x3YiAt bW13YWl0eCAtbWNsemVybyAtbXBrdSAtbXNneCAtbXJkcGlkIC1tZ2ZuaSAtbWF2eDUxMmJpdGFs ZyAtbXBjb25maWcgLW13Ym5vaW52ZCAtbWF2eDUxMmJmMTYgLW1lbnFjbWQgLW1hdng1MTJ2cDJp bnRlcnNlY3QgLW1zZXJpYWxpemUgLW10c3hsZHRyayAtbWFteC10aWxlIC1tYW14LWludDggLW1h bXgtYmYxNiAtbWF2eHZubmkiIH0gKi8KIAogLyogVGVzdCB0aGF0IHsseCxlLHAsdCxzLHcsYSxi LGl9bW1pbnRyaW4uaCwgbW0zZG5vdy5oLCBmbWE0aW50cmluLmgsCiAgICB4b3BpbnRyaW4uaCwg YWJtaW50cmluLmgsIGJtaWludHJpbi5oLCB0Ym1pbnRyaW4uaCwgbHdwaW50cmluLmgsCmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5kZy9vdGhlci9pMzg2LTMuQyBiL2djYy90ZXN0c3Vp dGUvZysrLmRnL290aGVyL2kzODYtMy5DCmluZGV4IDI5ZTk4OTE5Mzg2Li4zNTFjNDYzZTdjZiAx MDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3RoZXIvaTM4Ni0zLkMKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nKysuZGcvb3RoZXIvaTM4Ni0zLkMKQEAgLTEsNSArMSw1IEBACiAvKiB7IGRn LWRvIGNvbXBpbGUgeyB0YXJnZXQgaT84Ni0qLSogeDg2XzY0LSotKiB9IH0gKi8KLS8qIHsgZGct b3B0aW9ucyAiLU8gLWZrZWVwLWlubGluZS1mdW5jdGlvbnMgLW1hcmNoPWs4IC1tc3NlNGEgLW0z ZG5vdyAtbWF2eCAtbWF2eDIgLW1mbWE0IC1teG9wIC1tYWVzIC1tcGNsbXVsIC1tcG9wY250IC1t YWJtIC1tbHpjbnQgLW1ibWkgLW1ibWkyIC1tdGJtIC1tbHdwIC1tZnNnc2Jhc2UgLW1yZHJuZCAt bWYxNmMgLW1mbWEgLW1ydG0gLW1yZHNlZWQgLW1wcmZjaHcgLW1hZHggLW1meHNyIC1teHNhdmVv cHQgLW1hdng1MTJmIC1tYXZ4NTEyZXIgLW1hdng1MTJjZCAtbWF2eDUxMnBmIC1tc2hhIC1tcHJl ZmV0Y2h3dDEgLW14c2F2ZWMgLW14c2F2ZXMgLW1jbGZsdXNob3B0IC1tYXZ4NTEyZHEgLW1hdng1 MTJidyAtbWF2eDUxMnZsIC1tYXZ4NTEyaWZtYSAtbWF2eDUxMnZibWkgLW1hdng1MTJ2Ym1pMiAt bWF2eDUxMjRmbWFwcyAtbWF2eDUxMjR2bm5pdyAtbWF2eDUxMnZwb3BjbnRkcSAtbWNsd2IgLW1t d2FpdHggLW1jbHplcm8gLW1wa3UgLW1zZ3ggLW1yZHBpZCAtbWdmbmkgLW1hdng1MTJiaXRhbGcg LW1wY29uZmlnIC1td2Jub2ludmQgLW1hdng1MTJiZjE2IC1tZW5xY21kIC1tYXZ4NTEydnAyaW50 ZXJzZWN0IC1tc2VyaWFsaXplIC1tdHN4bGR0cmsgLW1hbXgtdGlsZSAtbWFteC1pbnQ4IC1tYW14 LWJmMTYiIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8gLWZrZWVwLWlubGluZS1mdW5jdGlvbnMg LW1hcmNoPWs4IC1tc3NlNGEgLW0zZG5vdyAtbWF2eCAtbWF2eDIgLW1mbWE0IC1teG9wIC1tYWVz IC1tcGNsbXVsIC1tcG9wY250IC1tYWJtIC1tbHpjbnQgLW1ibWkgLW1ibWkyIC1tdGJtIC1tbHdw IC1tZnNnc2Jhc2UgLW1yZHJuZCAtbWYxNmMgLW1mbWEgLW1ydG0gLW1yZHNlZWQgLW1wcmZjaHcg LW1hZHggLW1meHNyIC1teHNhdmVvcHQgLW1hdng1MTJmIC1tYXZ4NTEyZXIgLW1hdng1MTJjZCAt bWF2eDUxMnBmIC1tc2hhIC1tcHJlZmV0Y2h3dDEgLW14c2F2ZWMgLW14c2F2ZXMgLW1jbGZsdXNo b3B0IC1tYXZ4NTEyZHEgLW1hdng1MTJidyAtbWF2eDUxMnZsIC1tYXZ4NTEyaWZtYSAtbWF2eDUx MnZibWkgLW1hdng1MTJ2Ym1pMiAtbWF2eDUxMjRmbWFwcyAtbWF2eDUxMjR2bm5pdyAtbWF2eDUx MnZwb3BjbnRkcSAtbWNsd2IgLW1td2FpdHggLW1jbHplcm8gLW1wa3UgLW1zZ3ggLW1yZHBpZCAt bWdmbmkgLW1hdng1MTJiaXRhbGcgLW1wY29uZmlnIC1td2Jub2ludmQgLW1hdng1MTJiZjE2IC1t ZW5xY21kIC1tYXZ4NTEydnAyaW50ZXJzZWN0IC1tc2VyaWFsaXplIC1tdHN4bGR0cmsgLW1hbXgt dGlsZSAtbWFteC1pbnQ4IC1tYW14LWJmMTYgLW1hdnh2bm5pIiB9ICovCiAKIC8qIFRlc3QgdGhh dCB7LHgsZSxwLHQscyx3LGEsYixpfW1taW50cmluLmgsIG1tM2Rub3cuaCwgZm1hNGludHJpbi5o LAogICAgeG9waW50cmluLmgsIGFibWludHJpbi5oLCBibWlpbnRyaW4uaCwgdGJtaW50cmluLmgs IGx3cGludHJpbi5oLApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYv YXZ4LXZubmktMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4LXZubmktMS5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMjJkMTJhYTk4MAotLS0g L2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12bm5pLTEu YwpAQCAtMCwwICsxLDI5IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRp b25zICItbWF2eHZubmkgLU8yIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMgIlx7dmV4XH0gdnBkcGJ1c2RcWyBcXHRcXStcW15ce1xuXF0qJXltbVxbMC05XF0rXFte XG5ccl0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIyki IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlx7dmV4XH0g dnBkcGJ1c2RcWyBcXHRcXStcW15ce1xuXF0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05 XF0rXFteXG5ccl0qJXhtbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlx7dmV4XH0gdnBkcGJ1c2RzXFsgXFx0 XF0rXFteXHtcblxdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5 bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzICJce3ZleFx9IHZwZHBidXNkc1xbIFxcdFxdK1xbXlx7XG5cXSol eG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXSsoPzpc bnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyAiXHt2ZXhcfSB2cGRwd3NzZFxbIFxcdFxdK1xbXlx7XG5cXSoleW1tXFswLTlcXStcW15c blxyXSoleW1tXFswLTlcXStcW15cblxyXSoleW1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIg MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXHt2ZXhcfSB2 cGRwd3NzZFxbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlc XStcW15cblxyXSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXHt2ZXhcfSB2cGRwd3NzZHNcWyBcXHRc XStcW15ce1xuXF0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0rXFteXG5ccl0qJXlt bVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMgIlx7dmV4XH0gdnBkcHdzc2RzXFsgXFx0XF0rXFteXHtcblxdKiV4 bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAtOVxdKyg/Olxu fFxbIFxcdFxdKyMpIiAxIH0gfSAqLworCisKKyNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KKwordm9s YXRpbGUgX19tMjU2aSB4LHksejsKK3ZvbGF0aWxlIF9fbTEyOGkgeF8seV8sel87CisKK3ZvaWQg ZXh0ZXJuCithdnh2bm5pX3Rlc3QgKHZvaWQpCit7CisgIHggPSBfbW0yNTZfZHBidXNkX2VwaTMy ICh4LCB5LCB6KTsKKyAgeF8gPSBfbW1fZHBidXNkX2VwaTMyICh4XywgeV8sIHpfKTsKKyAgeCA9 IF9tbTI1Nl9kcGJ1c2RzX2VwaTMyICh4LCB5LCB6KTsKKyAgeF8gPSBfbW1fZHBidXNkc19lcGkz MiAoeF8sIHlfLCB6Xyk7CisgIHggPSBfbW0yNTZfZHB3c3NkX2VwaTMyICh4LCB5LCB6KTsKKyAg eF8gPSBfbW1fZHB3c3NkX2VwaTMyICh4XywgeV8sIHpfKTsKKyAgeCA9IF9tbTI1Nl9kcHdzc2Rz X2VwaTMyICh4LCB5LCB6KTsKKyAgeF8gPSBfbW1fZHB3c3Nkc19lcGkzMiAoeF8sIHlfLCB6Xyk7 Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdm5uaS0y LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdm5uaS0yLmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRhYjZmMGM4YzFlCi0tLSAvZGV2L251bGwK KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4LXZubmktMi5jCkBAIC0wLDAg KzEsMzAgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiIg fSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJce3ZleFx9IHZwZHBi dXNkXFsgXFx0XF0rXFteXHtcblxdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xb XlxuXHJdKiV5bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJce3ZleFx9IHZwZHBidXNkXFsgXFx0XF0rXFte XHtcblxdKiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAt OVxdKyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzICJce3ZleFx9IHZwZHBidXNkc1xbIFxcdFxdK1xbXlx7XG5cXSoleW1tXFsw LTlcXStcW15cblxyXSoleW1tXFswLTlcXStcW15cblxyXSoleW1tXFswLTlcXSsoPzpcbnxcWyBc XHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAi XHt2ZXhcfSB2cGRwYnVzZHNcWyBcXHRcXStcW15ce1xuXF0qJXhtbVxbMC05XF0rXFteXG5ccl0q JXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlx7dmV4XH0gdnBkcHdz c2RcWyBcXHRcXStcW15ce1xuXF0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0rXFte XG5ccl0qJXltbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlx7dmV4XH0gdnBkcHdzc2RcWyBcXHRcXStcW15c e1xuXF0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05 XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMgIlx7dmV4XH0gdnBkcHdzc2RzXFsgXFx0XF0rXFteXHtcblxdKiV5bW1cWzAt OVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdKyg/OlxufFxbIFxc dFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJc e3ZleFx9IHZwZHB3c3Nkc1xbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStcW15cblxyXSol eG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0g Ki8KKworCisjaW5jbHVkZSA8aW1taW50cmluLmg+CisKK3ZvbGF0aWxlIF9fbTI1NmkgeCx5LHo7 Cit2b2xhdGlsZSBfX20xMjhpIHhfLHlfLHpfOworCitfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoImF2 eHZubmkiKSkpCit2b2lkCithdnh2bm5pX3Rlc3QgKHZvaWQpCit7CisgIHggPSBfbW0yNTZfZHBi dXNkX2VwaTMyICh4LCB5LCB6KTsKKyAgeF8gPSBfbW1fZHBidXNkX2VwaTMyICh4XywgeV8sIHpf KTsKKyAgeCA9IF9tbTI1Nl9kcGJ1c2RzX2VwaTMyICh4LCB5LCB6KTsKKyAgeF8gPSBfbW1fZHBi dXNkc19lcGkzMiAoeF8sIHlfLCB6Xyk7CisgIHggPSBfbW0yNTZfZHB3c3NkX2VwaTMyICh4LCB5 LCB6KTsKKyAgeF8gPSBfbW1fZHB3c3NkX2VwaTMyICh4XywgeV8sIHpfKTsKKyAgeCA9IF9tbTI1 Nl9kcHdzc2RzX2VwaTMyICh4LCB5LCB6KTsKKyAgeF8gPSBfbW1fZHB3c3Nkc19lcGkzMiAoeF8s IHlfLCB6Xyk7Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9h dngtdm5uaS0zLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdm5uaS0zLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZkZWE3Zjk1ODA4Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4LXZubmktMy5j CkBAIC0wLDAgKzEsMTYgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlv bnMgIi1PMiAtbWFyY2g9eDg2LTY0IiB9ICovCisKK19fYXR0cmlidXRlX18gKChfX2dudV9pbmxp bmVfXywgX19hbHdheXNfaW5saW5lX18sIHRhcmdldCgiYXZ4dm5uaSIpKSkKK2lubGluZSBpbnQK K2ZvbyAodm9pZCkgLyogeyBkZy1lcnJvciAiaW5saW5pbmcgZmFpbGVkIGluIGNhbGwgdG8gJ2Fs d2F5c19pbmxpbmUnIC4qIHRhcmdldCBzcGVjaWZpYyBvcHRpb24gbWlzbWF0Y2giIH0gKi8KK3sK KyAgcmV0dXJuIDA7Cit9CisKK19fYXR0cmlidXRlX18gKCh0YXJnZXQoImF2eDUxMnZubmksYXZ4 NTEydmwiKSkpCitpbnQKK2JhciAodm9pZCkKK3sKKyAgcmV0dXJuIGZvbyAoKTsgLyogeyBkZy1t ZXNzYWdlICJjYWxsZWQgZnJvbSBoZXJlIiB9ICovCit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdm5uaS00LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9hdngtdm5uaS00LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjFlZjNlZGMxNDBlCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvYXZ4LXZubmktNC5jCkBAIC0wLDAgKzEsMTYgQEAKKy8qIHsgZGctZG8gY29tcGls ZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWFyY2g9eDg2LTY0IiB9ICovCisKK19fYXR0 cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIHRhcmdldCgiYXZ4 NTEydm5uaSxhdng1MTJ2bCIpKSkKK2lubGluZSBpbnQKK2ZvbyAodm9pZCkgLyogeyBkZy1lcnJv ciAiaW5saW5pbmcgZmFpbGVkIGluIGNhbGwgdG8gJ2Fsd2F5c19pbmxpbmUnIC4qIHRhcmdldCBz cGVjaWZpYyBvcHRpb24gbWlzbWF0Y2giIH0gKi8KK3sKKyAgcmV0dXJuIDA7Cit9CisKK19fYXR0 cmlidXRlX18gKCh0YXJnZXQoImF2eHZubmkiKSkpCitpbnQKK2JhciAodm9pZCkKK3sKKyAgcmV0 dXJuIGZvbyAoKTsgLyogeyBkZy1tZXNzYWdlICJjYWxsZWQgZnJvbSBoZXJlIiB9ICovCit9CmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdm5uaS01LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdm5uaS01LmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY1NTZhMzIzYjFkCi0tLSAvZGV2L251bGwKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4LXZubmktNS5jCkBAIC0wLDAgKzEsMjkg QEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWF2eHZu bmkgLW1hdng1MTJ2bm5pIC1tYXZ4NTEydmwiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyAiXHt2ZXhcfSB2cGRwYnVzZFxbIFxcdFxdK1xbXlx7XG5cXSoleW1tXFsw LTlcXStcW15cblxyXSoleW1tXFswLTlcXStcW15cblxyXSoleW1tXFswLTlcXSsoPzpcbnxcWyBc XHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAi XHt2ZXhcfSB2cGRwYnVzZFxbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStcW15cblxyXSol eG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXHt2ZXhcfSB2cGRwYnVz ZHNcWyBcXHRcXStcW15ce1xuXF0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0rXFte XG5ccl0qJXltbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlx7dmV4XH0gdnBkcGJ1c2RzXFsgXFx0XF0rXFte XHtcblxdKiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAt OVxdKyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzICJce3ZleFx9IHZwZHB3c3NkXFsgXFx0XF0rXFteXHtcblxdKiV5bW1cWzAt OVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdKyg/OlxufFxbIFxc dFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJc e3ZleFx9IHZwZHB3c3NkXFsgXFx0XF0rXFteXHtcblxdKiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4 bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJce3ZleFx9IHZwZHB3c3Nk c1xbIFxcdFxdK1xbXlx7XG5cXSoleW1tXFswLTlcXStcW15cblxyXSoleW1tXFswLTlcXStcW15c blxyXSoleW1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXHt2ZXhcfSB2cGRwd3NzZHNcWyBcXHRcXStcW15c e1xuXF0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05 XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisKKworI2luY2x1ZGUgPGltbWludHJpbi5o PgorCit2b2xhdGlsZSBfX20yNTZpIHgseSx6Owordm9sYXRpbGUgX19tMTI4aSB4Xyx5Xyx6XzsK Kwordm9pZAorYXZ4dm5uaV90ZXN0ICh2b2lkKQoreworICB4ID0gX21tMjU2X2RwYnVzZF9lcGkz MiAoeCwgeSwgeik7CisgIHhfID0gX21tX2RwYnVzZF9lcGkzMiAoeF8sIHlfLCB6Xyk7CisgIHgg PSBfbW0yNTZfZHBidXNkc19lcGkzMiAoeCwgeSwgeik7CisgIHhfID0gX21tX2RwYnVzZHNfZXBp MzIgKHhfLCB5Xywgel8pOworICB4ID0gX21tMjU2X2Rwd3NzZF9lcGkzMiAoeCwgeSwgeik7Cisg IHhfID0gX21tX2Rwd3NzZF9lcGkzMiAoeF8sIHlfLCB6Xyk7CisgIHggPSBfbW0yNTZfZHB3c3Nk c19lcGkzMiAoeCwgeSwgeik7CisgIHhfID0gX21tX2Rwd3NzZHNfZXBpMzIgKHhfLCB5Xywgel8p OworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4LXZubmkt Ni5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4LXZubmktNi5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzQyNjI3ODhhNwotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12bm5pLTYuYwpAQCAtMCww ICsxLDI5IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWF2 eHZubmkgLU8yIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlx7 dmV4XH0gdnBkcGJ1c2RcWyBcXHRcXStcW15ce1xuXF0qJXltbVxbMC05XF0rXFteXG5ccl0qJXlt bVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlx7dmV4XH0gdnBkcGJ1c2Rc WyBcXHRcXStcW15ce1xuXF0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05XF0rXFteXG5c cl0qJXhtbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlx7dmV4XH0gdnBkcGJ1c2RzXFsgXFx0XF0rXFteXHtc blxdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxd Kyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzICJce3ZleFx9IHZwZHBidXNkc1xbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlc XStcW15cblxyXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRc XSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXHt2 ZXhcfSB2cGRwd3NzZFxbIFxcdFxdK1xbXlx7XG5cXSoleW1tXFswLTlcXStcW15cblxyXSoleW1t XFswLTlcXStcW15cblxyXSoleW1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXHt2ZXhcfSB2cGRwd3NzZFxb IFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXStcW15cblxy XSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXHt2ZXhcfSB2cGRwd3NzZHNcWyBcXHRcXStcW15ce1xu XF0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0r KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgIlx7dmV4XH0gdnBkcHdzc2RzXFsgXFx0XF0rXFteXHtcblxdKiV4bW1cWzAtOVxd K1xbXlxuXHJdKiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxd KyMpIiAxIH0gfSAqLworCisKKyNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KKwordm9sYXRpbGUgX19t MjU2aSB4LHksejsKK3ZvbGF0aWxlIF9fbTEyOGkgeF8seV8sel87CisKK3ZvaWQgZXh0ZXJuCith dnh2bm5pX3Rlc3QgKHZvaWQpCit7CisgIHggPSBfbW0yNTZfZHBidXNkX2F2eF9lcGkzMiAoeCwg eSwgeik7CisgIHhfID0gX21tX2RwYnVzZF9hdnhfZXBpMzIgKHhfLCB5Xywgel8pOworICB4ID0g X21tMjU2X2RwYnVzZHNfYXZ4X2VwaTMyICh4LCB5LCB6KTsKKyAgeF8gPSBfbW1fZHBidXNkc19h dnhfZXBpMzIgKHhfLCB5Xywgel8pOworICB4ID0gX21tMjU2X2Rwd3NzZF9hdnhfZXBpMzIgKHgs IHksIHopOworICB4XyA9IF9tbV9kcHdzc2RfYXZ4X2VwaTMyICh4XywgeV8sIHpfKTsKKyAgeCA9 IF9tbTI1Nl9kcHdzc2RzX2F2eF9lcGkzMiAoeCwgeSwgeik7CisgIHhfID0gX21tX2Rwd3NzZHNf YXZ4X2VwaTMyICh4XywgeV8sIHpfKTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L2F2eC12cGRwYnVzZC0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv aTM4Ni9hdngtdnBkcGJ1c2QtMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5iMDQzYmJmZjc5NwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9pMzg2L2F2eC12cGRwYnVzZC0yLmMKQEAgLTAsMCArMSw3MSBAQAorLyogeyBkZy1kbyBy dW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLW1hdnh2bm5pIiB9ICovCisvKiB7IGRnLXJl cXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhdnh2bm5pIH0gKi8KKworI2lmbmRlZiBDSEVDSworI2Rl ZmluZSBDSEVDSyAiYXZ4LWNoZWNrLmgiCisjZW5kaWYKKworI2lmbmRlZiBURVNUCisjZGVmaW5l IFRFU1QgYXZ4X3Rlc3QKKyNlbmRpZgorCisjaW5jbHVkZSBDSEVDSworCitzdGF0aWMgdm9pZAor Q0FMQyAoaW50ICpyLCBpbnQgKmRzdCwgdW5zaWduZWQgY2hhciAqczEsIGNoYXIgKnMyLCBpbnQg c2l6ZSkKK3sKKyAgc2hvcnQgdGVtcHJlc1szMl07CisgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6 ZTsgaSsrKSB7CisgICAgdGVtcHJlc1tpXSA9ICgodW5zaWduZWQgc2hvcnQpKHMxW2ldKSAqIChz aG9ydCkoczJbaV0pKTsKKyAgfQorICBmb3IgKGludCBpID0gMDsgaSA8IHNpemUgLyA0OyBpKysp IHsKKyAgICBsb25nIGxvbmcgdGVzdCA9IChsb25nIGxvbmcpZHN0W2ldICsgdGVtcHJlc1tpKjRd ICsgdGVtcHJlc1tpKjQgKyAxXSArIHRlbXByZXNbaSo0ICsgMl0gKyB0ZW1wcmVzW2kqNCArIDNd OworICAgIHJbaV0gPSB0ZXN0OworICB9Cit9CisKK3ZvaWQKK1RFU1QgKHZvaWQpCit7CisgIGlu dCBpOworICB1bmlvbjI1NmlfZCByZXNfMjU2OworICB1bmlvbjI1NmlfYiBzcmMyXzI1NjsKKyAg dW5pb24yNTZpX3ViIHNyYzFfMjU2OworICBpbnQgcmVzX3JlZl8yNTZbOF07CisKKyAgZm9yIChp ID0gMDsgaSA8IDMyOyBpKyspCisgICAgeworICAgICAgaW50IHNpZ24gPSBpICUgMiA/IDEgOiAt MTsKKyAgICAgIHNyYzFfMjU2LmFbaV0gPSAxMCArIDMqaSArIHNpZ247CisgICAgICBzcmMyXzI1 Ni5hW2ldID0gc2lnbioxMCppKmk7CisgICAgfQorCisgIGZvciAoaSA9IDA7IGkgPCA4OyBpKysp CisgICAgcmVzXzI1Ni5hW2ldID0gMHg3ZmZmZmZmZjsKKworICBDQUxDIChyZXNfcmVmXzI1Niwg cmVzXzI1Ni5hLCBzcmMxXzI1Ni5hLCBzcmMyXzI1Ni5hLCAzMik7CisgIHJlc18yNTYueCA9IF9t bTI1Nl9kcGJ1c2RfYXZ4X2VwaTMyIChyZXNfMjU2LngsIHNyYzFfMjU2LngsIHNyYzJfMjU2Lngp OworICBpZiAoY2hlY2tfdW5pb24yNTZpX2QgKHJlc18yNTYsIHJlc19yZWZfMjU2KSkKKyAgICBh Ym9ydCAoKTsKKworICB1bmlvbjEyOGlfZCByZXNfMTI4OworICB1bmlvbjEyOGlfYiBzcmMyXzEy ODsKKyAgdW5pb24xMjhpX3ViIHNyYzFfMTI4OworICBpbnQgcmVzX3JlZl8xMjhbNF07CisKKyAg Zm9yIChpID0gMDsgaSA8IDE2OyBpKyspCisgICAgeworICAgICAgaW50IHNpZ24gPSBpICUgMiA/ IDEgOiAtMTsKKyAgICAgIHNyYzFfMTI4LmFbaV0gPSAxMCArIDMqaSppICsgc2lnbjsKKyAgICAg IHNyYzJfMTI4LmFbaV0gPSBzaWduKjEwKmkqaTsKKyAgICB9CisKKyAgZm9yIChpID0gMDsgaSA8 IDQ7IGkrKykKKyAgICByZXNfMTI4LmFbaV0gPSAweDdmZmZmZmZmOworCisgIENBTEMgKHJlc19y ZWZfMTI4LCByZXNfMTI4LmEsIHNyYzFfMTI4LmEsIHNyYzJfMTI4LmEsIDE2KTsKKyAgcmVzXzEy OC54ID0gX21tX2RwYnVzZF9hdnhfZXBpMzIgKHJlc18xMjgueCwgc3JjMV8xMjgueCwgc3JjMl8x MjgueCk7CisgIGlmIChjaGVja191bmlvbjEyOGlfZCAocmVzXzEyOCwgcmVzX3JlZl8xMjgpKQor ICAgIGFib3J0ICgpOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvYXZ4LXZwZHBidXNkcy0yLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngt dnBkcGJ1c2RzLTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTg5 OWVlNDNkNjIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9hdngtdnBkcGJ1c2RzLTIuYwpAQCAtMCwwICsxLDcxIEBACisvKiB7IGRnLWRvIHJ1biB9ICov CisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWF2eHZubmkgIiB9ICovCisvKiB7IGRnLXJlcXVpcmUt ZWZmZWN0aXZlLXRhcmdldCBhdnh2bm5pIH0gKi8KKworI2lmbmRlZiBDSEVDSworI2RlZmluZSBD SEVDSyAiYXZ4LWNoZWNrLmgiCisjZW5kaWYKKworI2lmbmRlZiBURVNUCisjZGVmaW5lIFRFU1Qg YXZ4X3Rlc3QKKyNlbmRpZgorCisjaW5jbHVkZSBDSEVDSworCitzdGF0aWMgdm9pZAorQ0FMQyAo aW50ICpyLCBpbnQgKmRzdCwgdW5zaWduZWQgY2hhciAqczEsIGNoYXIgKnMyLCBpbnQgc2l6ZSkK K3sKKyAgc2hvcnQgdGVtcHJlc1szMl07CisgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsr KSB7CisgICAgdGVtcHJlc1tpXSA9ICgodW5zaWduZWQgc2hvcnQpKHMxW2ldKSAqIChzaG9ydCko czJbaV0pKTsKKyAgfQorICBmb3IgKGludCBpID0gMDsgaSA8IHNpemUgLyA0OyBpKyspIHsKKyAg ICBsb25nIGxvbmcgdGVzdCA9IChsb25nIGxvbmcpZHN0W2ldICsgdGVtcHJlc1tpKjRdICsgdGVt cHJlc1tpKjQgKyAxXSArIHRlbXByZXNbaSo0ICsgMl0gKyB0ZW1wcmVzW2kqNCArIDNdOworICAg IHJbaV0gPSB0ZXN0ID4gMHg3RkZGRkZGRiA/IDB4N0ZGRkZGRkYgOiB0ZXN0OworICB9Cit9CisK K3ZvaWQKK1RFU1QgKHZvaWQpCit7CisgIGludCBpOworICB1bmlvbjI1NmlfZCByZXNfMjU2Owor ICB1bmlvbjI1NmlfYiBzcmMyXzI1NjsKKyAgdW5pb24yNTZpX3ViIHNyYzFfMjU2OworICBpbnQg cmVzX3JlZl8yNTZbOF07CisKKyAgZm9yIChpID0gMDsgaSA8IDMyOyBpKyspCisgICAgeworICAg ICAgaW50IHNpZ24gPSBpICUgMiA/IDEgOiAtMTsKKyAgICAgIHNyYzFfMjU2LmFbaV0gPSAxMCAr IDMqaSppICsgc2lnbjsKKyAgICAgIHNyYzJfMjU2LmFbaV0gPSBzaWduKjEwKmkqaTsKKyAgICB9 CisKKyAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykKKyAgICByZXNfMjU2LmFbaV0gPSAweDdmZmZm ZmZmOworCisgIENBTEMgKHJlc19yZWZfMjU2LCByZXNfMjU2LmEsIHNyYzFfMjU2LmEsIHNyYzJf MjU2LmEsIDMyKTsKKyAgcmVzXzI1Ni54ID0gX21tMjU2X2RwYnVzZHNfYXZ4X2VwaTMyIChyZXNf MjU2LngsIHNyYzFfMjU2LngsIHNyYzJfMjU2LngpOworICBpZiAoY2hlY2tfdW5pb24yNTZpX2Qg KHJlc18yNTYsIHJlc19yZWZfMjU2KSkKKyAgICBhYm9ydCAoKTsKKworICB1bmlvbjEyOGlfZCBy ZXNfMTI4OworICB1bmlvbjEyOGlfYiBzcmMyXzEyODsKKyAgdW5pb24xMjhpX3ViIHNyYzFfMTI4 OworICBpbnQgcmVzX3JlZl8xMjhbNF07CisKKyAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspCisg ICAgeworICAgICAgaW50IHNpZ24gPSBpICUgMiA/IDEgOiAtMTsKKyAgICAgIHNyYzFfMTI4LmFb aV0gPSAxMCArIDMqaSppICsgc2lnbjsKKyAgICAgIHNyYzJfMTI4LmFbaV0gPSBzaWduKjEwKmkq aTsKKyAgICB9CisKKyAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykKKyAgICByZXNfMTI4LmFbaV0g PSAweDdmZmZmZmZmOworCisgIENBTEMgKHJlc19yZWZfMTI4LCByZXNfMTI4LmEsIHNyYzFfMTI4 LmEsIHNyYzJfMTI4LmEsIDE2KTsKKyAgcmVzXzEyOC54ID0gX21tX2RwYnVzZHNfYXZ4X2VwaTMy IChyZXNfMTI4LngsIHNyYzFfMTI4LngsIHNyYzJfMTI4LngpOworICBpZiAoY2hlY2tfdW5pb24x MjhpX2QgKHJlc18xMjgsIHJlc19yZWZfMTI4KSkKKyAgICBhYm9ydCAoKTsKK30KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12cGRwd3NzZC0yLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdnBkcHdzc2QtMi5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xNjc3Yjc5M2ZhMwotLS0gL2Rldi9udWxsCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eC12cGRwd3NzZC0yLmMKQEAgLTAsMCAr MSw2NyBAQAorLyogeyBkZy1kbyBydW4gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLW1hdnh2 bm5pIiB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhdnh2bm5pIH0gKi8K KworI2lmbmRlZiBDSEVDSworI2RlZmluZSBDSEVDSyAiYXZ4LWNoZWNrLmgiCisjZW5kaWYKKwor I2lmbmRlZiBURVNUCisjZGVmaW5lIFRFU1QgYXZ4X3Rlc3QKKyNlbmRpZgorCisjaW5jbHVkZSBD SEVDSworCitzdGF0aWMgdm9pZAorQ0FMQyAoaW50ICpyLCBpbnQgKmRzdCwgc2hvcnQgKnMxLCBz aG9ydCAqczIsIGludCBzaXplKQoreworICBzaG9ydCB0ZW1wcmVzWzE2XTsKKyAgZm9yIChpbnQg aSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICB0ZW1wcmVzW2ldID0gKChpbnQpKHMxW2ldKSAq IChpbnQpKHMyW2ldKSk7CisgIH0KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplIC8gMjsgaSsr KSB7CisgICAgbG9uZyBsb25nIHRlc3QgPSAobG9uZyBsb25nKWRzdFtpXSArIHRlbXByZXNbaSoy XSArIHRlbXByZXNbaSoyICsgMV07CisgICAgcltpXSA9IHRlc3Q7CisgIH0KK30KKwordm9pZAor VEVTVCAodm9pZCkKK3sKKyAgaW50IGk7CisgIHVuaW9uMjU2aV9kIHJlc18yNTY7CisgIHVuaW9u MjU2aV93IHNyYzFfMjU2LCBzcmMyXzI1NjsKKyAgaW50IHJlc19yZWZfMjU2WzhdOworCisgIGZv ciAoaSA9IDA7IGkgPCAxNjsgaSsrKQorICAgIHsKKyAgICAgIHNyYzFfMjU2LmFbaV0gPSAxICsg aTsKKyAgICAgIHNyYzJfMjU2LmFbaV0gPSAyICsgMippICsgaSAqIGk7CisgICAgfQorCisgIGZv ciAoaSA9IDA7IGkgPCA4OyBpKyspCisgICAgcmVzXzI1Ni5hW2ldID0gMHg3ZmZmZmZmZjsKKwor ICBDQUxDIChyZXNfcmVmXzI1NiwgcmVzXzI1Ni5hLCBzcmMxXzI1Ni5hLCBzcmMyXzI1Ni5hLCAx Nik7CisgIHJlc18yNTYueCA9IF9tbTI1Nl9kcHdzc2RfYXZ4X2VwaTMyIChyZXNfMjU2LngsIHNy YzFfMjU2LngsIHNyYzJfMjU2LngpOworICBpZiAoY2hlY2tfdW5pb24yNTZpX2QgKHJlc18yNTYs IHJlc19yZWZfMjU2KSkKKyAgICBhYm9ydCAoKTsKKworICB1bmlvbjEyOGlfZCByZXNfMTI4Owor ICB1bmlvbjEyOGlfdyBzcmMxXzEyOCwgc3JjMl8xMjg7CisgIGludCByZXNfcmVmXzEyOFs0XTsK KworICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQorICAgIHsKKyAgICAgIHNyYzFfMTI4LmFbaV0g PSAxICsgaTsKKyAgICAgIHNyYzJfMTI4LmFbaV0gPSAyICsgMippICsgaSAqIGk7CisgICAgfQor CisgIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspCisgICAgcmVzXzEyOC5hW2ldID0gMHg3ZmZmZmZm ZjsKKworICBDQUxDIChyZXNfcmVmXzEyOCwgcmVzXzEyOC5hLCBzcmMxXzEyOC5hLCBzcmMyXzEy OC5hLCA4KTsKKyAgcmVzXzEyOC54ID0gX21tX2Rwd3NzZF9hdnhfZXBpMzIgKHJlc18xMjgueCwg c3JjMV8xMjgueCwgc3JjMl8xMjgueCk7CisgIGlmIChjaGVja191bmlvbjEyOGlfZCAocmVzXzEy OCwgcmVzX3JlZl8xMjgpKQorICAgIGFib3J0ICgpOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4LXZwZHB3c3Nkcy0yLmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9hdngtdnBkcHdzc2RzLTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uZDA3NTY3ZDUyNGIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvaTM4Ni9hdngtdnBkcHdzc2RzLTIuYwpAQCAtMCwwICsxLDY3IEBACisv KiB7IGRnLWRvIHJ1biB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbWF2eHZubmkiIH0gKi8K Ky8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGF2eHZubmkgfSAqLworCisjaWZuZGVm IENIRUNLCisjZGVmaW5lIENIRUNLICJhdngtY2hlY2suaCIKKyNlbmRpZgorCisjaWZuZGVmIFRF U1QKKyNkZWZpbmUgVEVTVCBhdnhfdGVzdAorI2VuZGlmCisKKyNpbmNsdWRlIENIRUNLCisKK3N0 YXRpYyB2b2lkCitDQUxDIChpbnQgKnIsIGludCAqZHN0LCBzaG9ydCAqczEsIHNob3J0ICpzMiwg aW50IHNpemUpCit7CisgIHNob3J0IHRlbXByZXNbMTZdOworICBmb3IgKGludCBpID0gMDsgaSA8 IHNpemU7IGkrKykgeworICAgIHRlbXByZXNbaV0gPSAoKGludCkoczFbaV0pICogKGludCkoczJb aV0pKTsKKyAgfQorICBmb3IgKGludCBpID0gMDsgaSA8IHNpemUgLyAyOyBpKyspIHsKKyAgICBs b25nIGxvbmcgdGVzdCA9IChsb25nIGxvbmcpZHN0W2ldICsgdGVtcHJlc1tpKjJdICsgdGVtcHJl c1tpKjIgKyAxXTsKKyAgICByW2ldID0gdGVzdCA+IDB4N0ZGRkZGRkYgPyAweDdGRkZGRkZGIDog dGVzdDsKKyAgfQorfQorCit2b2lkCitURVNUICh2b2lkKQoreworICBpbnQgaTsKKyAgdW5pb24y NTZpX2QgcmVzXzI1NjsKKyAgdW5pb24yNTZpX3cgc3JjMV8yNTYsIHNyYzJfMjU2OworICBpbnQg cmVzX3JlZl8yNTZbOF07CisKKyAgZm9yIChpID0gMDsgaSA8IDE2OyBpKyspCisgICAgeworICAg ICAgc3JjMV8yNTYuYVtpXSA9IDEgKyBpOworICAgICAgc3JjMl8yNTYuYVtpXSA9IDIgKyAyKmkg KyBpICogaTsKKyAgICB9CisKKyAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykKKyAgICByZXNfMjU2 LmFbaV0gPSAweDdmZmZmZmZmOworCisgIENBTEMgKHJlc19yZWZfMjU2LCByZXNfMjU2LmEsIHNy YzFfMjU2LmEsIHNyYzJfMjU2LmEsIDE2KTsKKyAgcmVzXzI1Ni54ID0gX21tMjU2X2Rwd3NzZHNf YXZ4X2VwaTMyIChyZXNfMjU2LngsIHNyYzFfMjU2LngsIHNyYzJfMjU2LngpOworICBpZiAoY2hl Y2tfdW5pb24yNTZpX2QgKHJlc18yNTYsIHJlc19yZWZfMjU2KSkKKyAgICBhYm9ydCAoKTsKKwor ICB1bmlvbjEyOGlfZCByZXNfMTI4OworICB1bmlvbjEyOGlfdyBzcmMxXzEyOCwgc3JjMl8xMjg7 CisgIGludCByZXNfcmVmXzEyOFs0XTsKKworICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQorICAg IHsKKyAgICAgIHNyYzFfMTI4LmFbaV0gPSAxICsgaTsKKyAgICAgIHNyYzJfMTI4LmFbaV0gPSAy ICsgMippICsgaSAqIGk7CisgICAgfQorCisgIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspCisgICAg cmVzXzEyOC5hW2ldID0gMHg3ZmZmZmZmZjsKKworICBDQUxDIChyZXNfcmVmXzEyOCwgcmVzXzEy OC5hLCBzcmMxXzEyOC5hLCBzcmMyXzEyOC5hLCA4KTsKKyAgcmVzXzEyOC54ID0gX21tX2Rwd3Nz ZHNfYXZ4X2VwaTMyIChyZXNfMTI4LngsIHNyYzFfMTI4LngsIHNyYzJfMTI4LngpOworICBpZiAo Y2hlY2tfdW5pb24xMjhpX2QgKHJlc18xMjgsIHJlc19yZWZfMTI4KSkKKyAgICBhYm9ydCAoKTsK K30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZu bmktMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEydmwtdm5uaS0xYS5j CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBnY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9hdng1MTJ2bC12bm5pLTEuYwpyZW5hbWUgdG8gZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2kzODYvYXZ4NTEydmwtdm5uaS0xYS5jCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12bm5pLTFiLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9hdng1MTJ2bC12bm5pLTFiLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjA2N2U2MzFjODlhCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2kzODYvYXZ4NTEydmwtdm5uaS0xYi5jCkBAIC0wLDAgKzEsNjkgQEAKKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1tYXZ4NTEydmwgLW1hdng1MTJ2 bm5pIC1tYXZ4NTEyYncgLW1hdnh2bm5pIC1PMiIgfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJce3ZleFx9IHZwZHBidXNkXFsgXFx0XF0rXFteXHtcblxdKiV5bW1c WzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdKyg/OlxufFxb IFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz ICJ2cGRwYnVzZFxbIFxcdFxdK1xbXlx7XG5cXSoleW1tXFswLTlcXStcW15cXG5cXHJdKiV5bW1c WzAtOVxdK1xbXlxcblxcclxdKiV5bW1cWzAtOVxdK1x7JWtcWzEtN1xdXH0oPzpcbnxcWyBcXHRc XSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAidnBk cGJ1c2RcWyBcXHRcXStcW15ce1xuXF0qJXltbVxbMC05XF0rXFteXFxuXFxyXSoleW1tXFswLTlc XStcW15cXG5cXHJcXSoleW1tXFswLTlcXStceyVrXFsxLTdcXVx9XHt6XH0oPzpcbnxcWyBcXHRc XSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXHt2 ZXhcfSB2cGRwYnVzZFxbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStcW15cblxyXSoleG1t XFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAidnBkcGJ1c2RcWyBcXHRcXStc W15ce1xuXF0qJXhtbVxbMC05XF0rXFteXFxuXFxyXSoleG1tXFswLTlcXStcW15cXG5cXHJcXSol eG1tXFswLTlcXStceyVrXFsxLTdcXVx9KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInZwZHBidXNkXFsgXFx0XF0rXFteXHtc blxdKiV4bW1cWzAtOVxdK1xbXlxcblxccl0qJXhtbVxbMC05XF0rXFteXFxuXFxyXF0qJXhtbVxb MC05XF0rXHsla1xbMS03XF1cfVx7elx9KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlx7dmV4XH0gdnBkcGJ1c2RzXFsgXFx0 XF0rXFteXHtcblxdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5 bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzICJ2cGRwYnVzZHNcWyBcXHRcXStcW15ce1xuXF0qJXltbVxbMC05 XF0rXFteXFxuXFxyXSoleW1tXFswLTlcXStcW15cXG5cXHJcXSoleW1tXFswLTlcXStceyVrXFsx LTdcXVx9KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMgInZwZHBidXNkc1xbIFxcdFxdK1xbXlx7XG5cXSoleW1tXFswLTlcXStc W15cXG5cXHJdKiV5bW1cWzAtOVxdK1xbXlxcblxcclxdKiV5bW1cWzAtOVxdK1x7JWtcWzEtN1xd XH1ce3pcfSg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJce3ZleFx9IHZwZHBidXNkc1xbIFxcdFxdK1xbXlx7XG5cXSoleG1t XFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXSsoPzpcbnxc WyBcXHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyAidnBkcGJ1c2RzXFsgXFx0XF0rXFteXHtcblxdKiV4bW1cWzAtOVxdK1xbXlxcblxccl0qJXht bVxbMC05XF0rXFteXFxuXFxyXF0qJXhtbVxbMC05XF0rXHsla1xbMS03XF1cfSg/OlxufFxbIFxc dFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2 cGRwYnVzZHNcWyBcXHRcXStcW15ce1xuXF0qJXhtbVxbMC05XF0rXFteXFxuXFxyXSoleG1tXFsw LTlcXStcW15cXG5cXHJcXSoleG1tXFswLTlcXStceyVrXFsxLTdcXVx9XHt6XH0oPzpcbnxcWyBc XHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAi XHt2ZXhcfSB2cGRwd3NzZFxbIFxcdFxdK1xbXlx7XG5cXSoleW1tXFswLTlcXStcW15cblxyXSol eW1tXFswLTlcXStcW15cblxyXSoleW1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0g Ki8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAidnBkcHdzc2RcWyBcXHRc XStcW15ce1xuXF0qJXltbVxbMC05XF0rXFteXFxuXFxyXSoleW1tXFswLTlcXStcW15cXG5cXHJc XSoleW1tXFswLTlcXStceyVrXFsxLTdcXVx9KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInZwZHB3c3NkXFsgXFx0XF0rXFte XHtcblxdKiV5bW1cWzAtOVxdK1xbXlxcblxccl0qJXltbVxbMC05XF0rXFteXFxuXFxyXF0qJXlt bVxbMC05XF0rXHsla1xbMS03XF1cfVx7elx9KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlx7dmV4XH0gdnBkcHdzc2RcWyBc XHRcXStcW15ce1xuXF0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05XF0rXFteXG5ccl0q JXhtbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMgInZwZHB3c3NkXFsgXFx0XF0rXFteXHtcblxdKiV4bW1cWzAt OVxdK1xbXlxcblxccl0qJXhtbVxbMC05XF0rXFteXFxuXFxyXF0qJXhtbVxbMC05XF0rXHsla1xb MS03XF1cfSg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJ2cGRwd3NzZFxbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStc W15cXG5cXHJdKiV4bW1cWzAtOVxdK1xbXlxcblxcclxdKiV4bW1cWzAtOVxdK1x7JWtcWzEtN1xd XH1ce3pcfSg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJce3ZleFx9IHZwZHB3c3Nkc1xbIFxcdFxdK1xbXlx7XG5cXSoleW1t XFswLTlcXStcW15cblxyXSoleW1tXFswLTlcXStcW15cblxyXSoleW1tXFswLTlcXSsoPzpcbnxc WyBcXHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyAidnBkcHdzc2RzXFsgXFx0XF0rXFteXHtcblxdKiV5bW1cWzAtOVxdK1xbXlxcblxccl0qJXlt bVxbMC05XF0rXFteXFxuXFxyXF0qJXltbVxbMC05XF0rXHsla1xbMS03XF1cfSg/OlxufFxbIFxc dFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJ2 cGRwd3NzZHNcWyBcXHRcXStcW15ce1xuXF0qJXltbVxbMC05XF0rXFteXFxuXFxyXSoleW1tXFsw LTlcXStcW15cXG5cXHJcXSoleW1tXFswLTlcXStceyVrXFsxLTdcXVx9XHt6XH0oPzpcbnxcWyBc XHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAi XHt2ZXhcfSB2cGRwd3NzZHNcWyBcXHRcXStcW15ce1xuXF0qJXhtbVxbMC05XF0rXFteXG5ccl0q JXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9 ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInZwZHB3c3Nkc1xbIFxc dFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStcW15cXG5cXHJdKiV4bW1cWzAtOVxdK1xbXlxcblxc clxdKiV4bW1cWzAtOVxdK1x7JWtcWzEtN1xdXH0oPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAidnBkcHdzc2RzXFsgXFx0XF0r XFteXHtcblxdKiV4bW1cWzAtOVxdK1xbXlxcblxccl0qJXhtbVxbMC05XF0rXFteXFxuXFxyXF0q JXhtbVxbMC05XF0rXHsla1xbMS03XF1cfVx7elx9KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICov CisKKworI2luY2x1ZGUgPGltbWludHJpbi5oPgorCit2b2xhdGlsZSBfX20yNTZpIHgseSx6Owor dm9sYXRpbGUgX19tMTI4aSB4Xyx5Xyx6XzsKK3ZvbGF0aWxlIF9fbW1hc2szMiBtOworCit2b2lk IGV4dGVybgorYXZ4NTEyZl90ZXN0ICh2b2lkKQoreworICB4ID0gX21tMjU2X2RwYnVzZF9lcGkz MiAoeCwgeSwgeik7CisgIHggPSBfbW0yNTZfbWFza19kcGJ1c2RfZXBpMzIgKHgsIG0sIHksIHop OworICB4ID0gX21tMjU2X21hc2t6X2RwYnVzZF9lcGkzMiAobSwgeCwgeSwgeik7CisKKyAgeF8g PSBfbW1fZHBidXNkX2VwaTMyICh4XywgeV8sIHpfKTsKKyAgeF8gPSBfbW1fbWFza19kcGJ1c2Rf ZXBpMzIgKHhfLCBtLCB5Xywgel8pOworICB4XyA9IF9tbV9tYXNrel9kcGJ1c2RfZXBpMzIgKG0s IHhfLCB5Xywgel8pOworCisgIHggPSBfbW0yNTZfZHBidXNkc19lcGkzMiAoeCwgeSwgeik7Cisg IHggPSBfbW0yNTZfbWFza19kcGJ1c2RzX2VwaTMyICh4LCBtLCB5LCB6KTsKKyAgeCA9IF9tbTI1 Nl9tYXNrel9kcGJ1c2RzX2VwaTMyIChtLCB4LCB5LCB6KTsKKworICB4XyA9IF9tbV9kcGJ1c2Rz X2VwaTMyICh4XywgeV8sIHpfKTsKKyAgeF8gPSBfbW1fbWFza19kcGJ1c2RzX2VwaTMyICh4Xywg bSwgeV8sIHpfKTsKKyAgeF8gPSBfbW1fbWFza3pfZHBidXNkc19lcGkzMiAobSwgeF8sIHlfLCB6 Xyk7CisKKyAgeCA9IF9tbTI1Nl9kcHdzc2RfZXBpMzIgKHgsIHksIHopOworICB4ID0gX21tMjU2 X21hc2tfZHB3c3NkX2VwaTMyICh4LCBtLCB5LCB6KTsKKyAgeCA9IF9tbTI1Nl9tYXNrel9kcHdz c2RfZXBpMzIgKG0sIHgsIHksIHopOworCisgIHhfID0gX21tX2Rwd3NzZF9lcGkzMiAoeF8sIHlf LCB6Xyk7CisgIHhfID0gX21tX21hc2tfZHB3c3NkX2VwaTMyICh4XywgbSwgeV8sIHpfKTsKKyAg eF8gPSBfbW1fbWFza3pfZHB3c3NkX2VwaTMyIChtLCB4XywgeV8sIHpfKTsKKworICB4ID0gX21t MjU2X2Rwd3NzZHNfZXBpMzIgKHgsIHksIHopOworICB4ID0gX21tMjU2X21hc2tfZHB3c3Nkc19l cGkzMiAoeCwgbSwgeSwgeik7CisgIHggPSBfbW0yNTZfbWFza3pfZHB3c3Nkc19lcGkzMiAobSwg eCwgeSwgeik7CisKKyAgeF8gPSBfbW1fZHB3c3Nkc19lcGkzMiAoeF8sIHlfLCB6Xyk7CisgIHhf ID0gX21tX21hc2tfZHB3c3Nkc19lcGkzMiAoeF8sIG0sIHlfLCB6Xyk7CisgIHhfID0gX21tX21h c2t6X2Rwd3NzZHNfZXBpMzIgKG0sIHhfLCB5Xywgel8pOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4NTEydmwtdm5uaS0yLmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12bm5pLTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uZDRiNDYzNTZkODAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12bm5pLTIuYwpAQCAtMCwwICsxLDMwIEBA CisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXFx0dnBkcGJ1c2RcWyBcXHRcXStc W15ce1xuXF0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxb MC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMgIlxcdHZwZHBidXNkXFsgXFx0XF0rXFteXHtcblxdKiV4bW1cWzAtOVxd K1xbXlxuXHJdKiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxd KyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJcXHR2 cGRwYnVzZHNcWyBcXHRcXStcW15ce1xuXF0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05 XF0rXFteXG5ccl0qJXltbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlxcdHZwZHBidXNkc1xbIFxcdFxdK1xb Xlx7XG5cXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFsw LTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyAiXFx0dnBkcHdzc2RcWyBcXHRcXStcW15ce1xuXF0qJXltbVxbMC05XF0r XFteXG5ccl0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0rKD86XG58XFsgXFx0XF0r IykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlxcdHZw ZHB3c3NkXFsgXFx0XF0rXFteXHtcblxdKiV4bW1cWzAtOVxdK1xbXlxuXHJdKiV4bW1cWzAtOVxd K1xbXlxuXHJdKiV4bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJcXHR2cGRwd3NzZHNcWyBcXHRcXStcW15c e1xuXF0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05XF0rXFteXG5ccl0qJXltbVxbMC05 XF0rKD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMgIlxcdHZwZHB3c3Nkc1xbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStc W15cblxyXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsj KSIgMSB9IH0gKi8KKworCisjaW5jbHVkZSA8aW1taW50cmluLmg+CisKK3ZvbGF0aWxlIF9fbTI1 NmkgeCx5LHo7Cit2b2xhdGlsZSBfX20xMjhpIHhfLHlfLHpfOworCitfX2F0dHJpYnV0ZV9fKCh0 YXJnZXQoImF2eDUxMnZubmksYXZ4NTEydmwiKSkpCit2b2lkCithdnh2bm5pX3Rlc3QgKHZvaWQp Cit7CisgIHggPSBfbW0yNTZfZHBidXNkX2VwaTMyICh4LCB5LCB6KTsKKyAgeF8gPSBfbW1fZHBi dXNkX2VwaTMyICh4XywgeV8sIHpfKTsKKyAgeCA9IF9tbTI1Nl9kcGJ1c2RzX2VwaTMyICh4LCB5 LCB6KTsKKyAgeF8gPSBfbW1fZHBidXNkc19lcGkzMiAoeF8sIHlfLCB6Xyk7CisgIHggPSBfbW0y NTZfZHB3c3NkX2VwaTMyICh4LCB5LCB6KTsKKyAgeF8gPSBfbW1fZHB3c3NkX2VwaTMyICh4Xywg eV8sIHpfKTsKKyAgeCA9IF9tbTI1Nl9kcHdzc2RzX2VwaTMyICh4LCB5LCB6KTsKKyAgeF8gPSBf bW1fZHB3c3Nkc19lcGkzMiAoeF8sIHlfLCB6Xyk7Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJ2bC12bm5pLTMuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L2F2eDUxMnZsLXZubmktMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi4xNWE5NWFiZTgzYQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMnZsLXZubmktMy5jCkBAIC0wLDAgKzEsNDcgQEAKKy8q IHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7ICEgaWEzMiB9IH0gfSAqLworLyogeyBkZy1vcHRp b25zICItTzIgLW1hdnh2bm5pIC1tYXZ4NTEydm5uaSAtbWF2eDUxMnZsIiB9ICovCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlxcdHZwZHBidXNkXFsgXFx0XF0rXFteXHtc blxdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxd Kyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzICJcXHR2cGRwYnVzZFxbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStcW15c blxyXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIg MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXFx0dnBkcGJ1 c2RzXFsgXFx0XF0rXFteXHtcblxdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xb XlxuXHJdKiV5bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJcXHR2cGRwYnVzZHNcWyBcXHRcXStcW15ce1xu XF0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05XF0r KD86XG58XFsgXFx0XF0rIykiIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgIlxcdHZwZHB3c3NkXFsgXFx0XF0rXFteXHtcblxdKiV5bW1cWzAtOVxdK1xbXlxu XHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdKyg/OlxufFxbIFxcdFxdKyMpIiAx IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJcXHR2cGRwd3Nz ZFxbIFxcdFxdK1xbXlx7XG5cXSoleG1tXFswLTlcXStcW15cblxyXSoleG1tXFswLTlcXStcW15c blxyXSoleG1tXFswLTlcXSsoPzpcbnxcWyBcXHRcXSsjKSIgMSB9IH0gKi8KKy8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXFx0dnBkcHdzc2RzXFsgXFx0XF0rXFteXHtcblxd KiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdK1xbXlxuXHJdKiV5bW1cWzAtOVxdKyg/ OlxufFxbIFxcdFxdKyMpIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzICJcXHR2cGRwd3NzZHNcWyBcXHRcXStcW15ce1xuXF0qJXhtbVxbMC05XF0rXFteXG5c cl0qJXhtbVxbMC05XF0rXFteXG5ccl0qJXhtbVxbMC05XF0rKD86XG58XFsgXFx0XF0rIykiIDEg fSB9ICovCisKKworI2luY2x1ZGUgPGltbWludHJpbi5oPgorCit2b2xhdGlsZSBfX20yNTZpIHgs eSx6Owordm9sYXRpbGUgX19tMTI4aSB4Xyx5Xyx6XzsKKwordm9pZAorYXZ4dm5uaV90ZXN0ICh2 b2lkKQoreworICByZWdpc3RlciBfX20yNTZpIGEgX19hc20gKCJ4bW0xNiIpOworICByZWdpc3Rl ciBfX20xMjhpIGFfIF9fYXNtICgieG1tMjYiKTsKKyAgYSA9IF9tbTI1Nl9kcGJ1c2RfZXBpMzIg KHgsIHksIHopOworICBhc20gdm9sYXRpbGUgKCIiIDogIit2IiAoYSkpOworICB4ID0gYTsKKyAg YV8gPSBfbW1fZHBidXNkX2VwaTMyICh4XywgeV8sIHpfKTsKKyAgYXNtIHZvbGF0aWxlICgiIiA6 ICIrdiIgKGFfKSk7CisgIHhfID0gYV87CisgIGEgPSBfbW0yNTZfZHBidXNkc19lcGkzMiAoeCwg eSwgeik7CisgIGFzbSB2b2xhdGlsZSAoIiIgOiAiK3YiIChhKSk7CisgIHggPSBhOworICBhXyA9 IF9tbV9kcGJ1c2RzX2VwaTMyICh4XywgeV8sIHpfKTsKKyAgYXNtIHZvbGF0aWxlICgiIiA6ICIr diIgKGFfKSk7CisgIHhfID0gYV87CisgIGEgPSBfbW0yNTZfZHB3c3NkX2VwaTMyICh4LCB5LCB6 KTsKKyAgYXNtIHZvbGF0aWxlICgiIiA6ICIrdiIgKGEpKTsKKyAgeCA9IGE7CisgIGFfID0gX21t X2Rwd3NzZF9lcGkzMiAoeF8sIHlfLCB6Xyk7CisgIGFzbSB2b2xhdGlsZSAoIiIgOiAiK3YiIChh XykpOworICB4XyA9IGFfOworICBhID0gX21tMjU2X2Rwd3NzZHNfZXBpMzIgKHgsIHksIHopOwor ICBhc20gdm9sYXRpbGUgKCIiIDogIit2IiAoYSkpOworICB4ID0gYTsKKyAgYV8gPSBfbW1fZHB3 c3Nkc19lcGkzMiAoeF8sIHlfLCB6Xyk7CisgIGFzbSB2b2xhdGlsZSAoIiIgOiAiK3YiIChhXykp OworICB4XyA9IGFfOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvYXZ4NTEydm5uaXZsLWJ1aWx0aW4uYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2F2eDUxMnZubml2bC1idWlsdGluLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjk3YWFiYTBjM2VmCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2kzODYvYXZ4NTEydm5uaXZsLWJ1aWx0aW4uYwpAQCAtMCwwICsxLDggQEAKKy8qIHsg ZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMCAtbW5vLWF2eHZubmkgLW1h dng1MTJ2bm5pIC1tYXZ4NTEydmwiIH0gKi8KK3R5cGVkZWYgaW50IHY4c2kgX19hdHRyaWJ1dGVf XyAoKHZlY3Rvcl9zaXplICgzMikpKTsKK3Y4c2kKK2ZvbyAodjhzaSBhLCB2OHNpIGIsIHY4c2kg YykKK3sKKyAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkX3Y4c2kgKGEsIGIsIGMpOwor fQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvYXZ4dm5uaS1idWls dGluLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdnh2bm5pLWJ1aWx0aW4uYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODkzYTYyYWUxODUKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdnh2bm5pLWJ1aWx0 aW4uYwpAQCAtMCwwICsxLDggQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9w dGlvbnMgIi1PMCAtbWF2eHZubmkgLW1uby1hdng1MTJ2bm5pIiB9ICovCit0eXBlZGVmIGludCB2 OHNpIF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSAoMzIpKSk7Cit2OHNpCitmb28gKHY4c2kg YSwgdjhzaSBiLCB2OHNpIGMpCit7CisgIHJldHVybiBfX2J1aWx0aW5faWEzMl92cGRwYnVzZF92 OHNpIChhLCBiLCBjKTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9p Mzg2L2Z1bmNzcGVjLTU2LmluYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2Z1bmNz cGVjLTU2LmluYwppbmRleCA4ZTY2OWYxMjIxNS4uNmUwOWE0NGNiM2EgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2Z1bmNzcGVjLTU2LmluYworKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvaTM4Ni9mdW5jc3BlYy01Ni5pbmMKQEAgLTc0LDYgKzc0LDcgQEAg ZXh0ZXJuIHZvaWQgdGVzdF9hdng1MTJ2cDJpbnRlcnNlY3QgKHZvaWQpCV9fYXR0cmlidXRlX18o KF9fdGFyZ2V0X18oImF2eDUxMnZwMmkKIGV4dGVybiB2b2lkIHRlc3RfYW14X3RpbGUgKHZvaWQp CQlfX2F0dHJpYnV0ZV9fKChfX3RhcmdldF9fKCJhbXgtdGlsZSIpKSk7CiBleHRlcm4gdm9pZCB0 ZXN0X2FteF9pbnQ4ICh2b2lkKQkJX19hdHRyaWJ1dGVfXygoX190YXJnZXRfXygiYW14LWludDgi KSkpOwogZXh0ZXJuIHZvaWQgdGVzdF9hbXhfYmYxNiAodm9pZCkJCV9fYXR0cmlidXRlX18oKF9f dGFyZ2V0X18oImFteC1iZjE2IikpKTsKK2V4dGVybiB2b2lkIHRlc3RfYXZ4dm5uaSAodm9pZCkJ CQlfX2F0dHJpYnV0ZV9fKChfX3RhcmdldF9fKCJhdnh2bm5pIikpKTsKIAogZXh0ZXJuIHZvaWQg dGVzdF9ub19zZ3ggKHZvaWQpCQkJX19hdHRyaWJ1dGVfXygoX190YXJnZXRfXygibm8tc2d4Iikp KTsKIGV4dGVybiB2b2lkIHRlc3Rfbm9fYXZ4NTEyNGZtYXBzKHZvaWQpCQlfX2F0dHJpYnV0ZV9f KChfX3RhcmdldF9fKCJuby1hdng1MTI0Zm1hcHMiKSkpOwpAQCAtMTQ5LDYgKzE1MCw3IEBAIGV4 dGVybiB2b2lkIHRlc3Rfbm9fYXZ4NTEydnAyaW50ZXJzZWN0ICh2b2lkKQlfX2F0dHJpYnV0ZV9f KChfX3RhcmdldF9fKCJuby1hdng1CiBleHRlcm4gdm9pZCB0ZXN0X25vX2FteF90aWxlICh2b2lk KQkJX19hdHRyaWJ1dGVfXygoX190YXJnZXRfXygibm8tYW14LXRpbGUiKSkpOwogZXh0ZXJuIHZv aWQgdGVzdF9ub19hbXhfaW50OCAodm9pZCkJCV9fYXR0cmlidXRlX18oKF9fdGFyZ2V0X18oIm5v LWFteC1pbnQ4IikpKTsKIGV4dGVybiB2b2lkIHRlc3Rfbm9fYW14X2JmMTYgKHZvaWQpCQlfX2F0 dHJpYnV0ZV9fKChfX3RhcmdldF9fKCJuby1hbXgtYmYxNiIpKSk7CitleHRlcm4gdm9pZCB0ZXN0 X25vX2F2eHZubmkgKHZvaWQpCQlfX2F0dHJpYnV0ZV9fKChfX3RhcmdldF9fKCJuby1hdnh2bm5p IikpKTsKIAogZXh0ZXJuIHZvaWQgdGVzdF9hcmNoX25vY29uYSAodm9pZCkJCV9fYXR0cmlidXRl X18oKF9fdGFyZ2V0X18oImFyY2g9bm9jb25hIikpKTsKIGV4dGVybiB2b2lkIHRlc3RfYXJjaF9j b3JlMiAodm9pZCkJCV9fYXR0cmlidXRlX18oKF9fdGFyZ2V0X18oImFyY2g9Y29yZTIiKSkpOwpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI4MzQ4OC0zLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjgzNDg4LTMuYwppbmRleCA3MjU2NzQ5NzIy Yi4uYTQ4YzFlODFlNzEgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L3ByODM0ODgtMy5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByODM0ODgt My5jCkBAIC03LDUgKzcsNiBAQCB0eXBlZGVmIGludCBfX3Y4c2kgX19hdHRyaWJ1dGVfXygodmVj dG9yX3NpemUgKDMyKSkpOwogdm9pZAogZm9vIChfX3Y4c2kgKmEsIF9fdjhzaSAqYiwgX192OHNp ICpjLCBfX3Y4c2kgKmQpCiB7Ci0gICphID0gX19idWlsdGluX2lhMzJfdnBkcGJ1c2RfdjhzaSAo KmIsICpjLCAqZCk7CS8qIHsgZGctZXJyb3IgIm5lZWRzIGlzYSBvcHRpb24iIH0gKi8KKyAgKmEg PSBfX2J1aWx0aW5faWEzMl92cGRwYnVzZF92OHNpICgqYiwgKmMsICpkKTsJLyogeyBkZy1lcnJv ciAiaW5jb21wYXRpYmxlIHR5cGVzIiB9ICovCisgIC8qIHsgZGctd2FybmluZyAiaW1wbGljaXQg ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24iICIiIHsgdGFyZ2V0ICotKi0qIH0gLi0xIH0gKi8KIH0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0xMi5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEyLmMKaW5kZXggNjExNDZiMmIzMGEuLjE0 ZDUxYzkwNzQ2IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2Ut MTIuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMTIuYwpAQCAtMyw3 ICszLDcgQEAKICAgIHBvcGNudGludHJpbi5oIGdmbmlpbnRyaW4uaCBhbmQgbW1fbWFsbG9jLmgg YXJlIHVzYWJsZQogICAgd2l0aCAtTyAtc3RkPWM4OSAtcGVkYW50aWMtZXJyb3JzLiAgKi8KIC8q IHsgZGctZG8gY29tcGlsZSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PIC1zdGQ9Yzg5IC1wZWRh bnRpYy1lcnJvcnMgLW1hcmNoPWs4IC1tc3NlNGEgLW0zZG5vdyAtbWF2eCAtbWF2eDIgLW1mbWE0 IC1teG9wIC1tYWVzIC1tcGNsbXVsIC1tcG9wY250IC1tYWJtIC1tbHpjbnQgLW1ibWkgLW1ibWky IC1tdGJtIC1tbHdwIC1tZnNnc2Jhc2UgLW1yZHJuZCAtbWYxNmMgLW1mbWEgLW1ydG0gLW1yZHNl ZWQgLW1wcmZjaHcgLW1hZHggLW1meHNyIC1teHNhdmVvcHQgLW1hdng1MTJmIC1tYXZ4NTEyZXIg LW1hdng1MTJjZCAtbWF2eDUxMnBmIC1tc2hhIC1tcHJlZmV0Y2h3dDEgLW14c2F2ZWMgLW14c2F2 ZXMgLW1jbGZsdXNob3B0IC1tYXZ4NTEyYncgLW1hdng1MTJkcSAtbWF2eDUxMnZsIC1tYXZ4NTEy dmJtaSAtbWF2eDUxMnZibWkyIC1tYXZ4NTEyaWZtYSAtbWF2eDUxMjRmbWFwcyAtbWF2eDUxMjR2 bm5pdyAtbWF2eDUxMnZwb3BjbnRkcSAtbWNsd2IgLW1td2FpdHggLW1jbHplcm8gLW1wa3UgLW1z Z3ggLW1yZHBpZCAtbWdmbmkgLW1hdng1MTJiaXRhbGcgLW1wY29uZmlnIC1td2Jub2ludmQgLW1h dng1MTJiZjE2IC1tZW5xY21kIC1tYXZ4NTEydnAyaW50ZXJzZWN0IC1tc2VyaWFsaXplIC1tdHN4 bGR0cmsgLW1hbXgtdGlsZSAtbWFteC1pbnQ4IC1tYW14LWJmMTYiIH0gKi8KKy8qIHsgZGctb3B0 aW9ucyAiLU8gLXN0ZD1jODkgLXBlZGFudGljLWVycm9ycyAtbWFyY2g9azggLW1zc2U0YSAtbTNk bm93IC1tYXZ4IC1tYXZ4MiAtbWZtYTQgLW14b3AgLW1hZXMgLW1wY2xtdWwgLW1wb3BjbnQgLW1h Ym0gLW1semNudCAtbWJtaSAtbWJtaTIgLW10Ym0gLW1sd3AgLW1mc2dzYmFzZSAtbXJkcm5kIC1t ZjE2YyAtbWZtYSAtbXJ0bSAtbXJkc2VlZCAtbXByZmNodyAtbWFkeCAtbWZ4c3IgLW14c2F2ZW9w dCAtbWF2eDUxMmYgLW1hdng1MTJlciAtbWF2eDUxMmNkIC1tYXZ4NTEycGYgLW1zaGEgLW1wcmVm ZXRjaHd0MSAtbXhzYXZlYyAtbXhzYXZlcyAtbWNsZmx1c2hvcHQgLW1hdng1MTJidyAtbWF2eDUx MmRxIC1tYXZ4NTEydmwgLW1hdng1MTJ2Ym1pIC1tYXZ4NTEydmJtaTIgLW1hdng1MTJpZm1hIC1t YXZ4NTEyNGZtYXBzIC1tYXZ4NTEyNHZubml3IC1tYXZ4NTEydnBvcGNudGRxIC1tY2x3YiAtbW13 YWl0eCAtbWNsemVybyAtbXBrdSAtbXNneCAtbXJkcGlkIC1tZ2ZuaSAtbWF2eDUxMmJpdGFsZyAt bXBjb25maWcgLW13Ym5vaW52ZCAtbWF2eDUxMmJmMTYgLW1lbnFjbWQgLW1hdng1MTJ2cDJpbnRl cnNlY3QgLW1zZXJpYWxpemUgLW10c3hsZHRyayAtbWFteC10aWxlIC1tYW14LWludDggLW1hbXgt YmYxNiAtbWF2eHZubmkiIH0gKi8KIAogI2luY2x1ZGUgPHg4NmludHJpbi5oPgogCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMTMuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0xMy5jCmluZGV4IDRkNmM5YjNhMTdhLi4xMjA1NzBhNzQ2 ZSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEzLmMKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTEzLmMKQEAgLTEsNSArMSw1IEBA CiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLyogeyBkZy1vcHRpb25zICItTzIgLVdlcnJvci1p bXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbiAtbWFyY2g9azggLW1zc2U0YSAtbTNkbm93IC1t YXZ4IC1tYXZ4MiAtbWZtYTQgLW14b3AgLW1hZXMgLW1wY2xtdWwgLW1wb3BjbnQgLW1hYm0gLW1s emNudCAtbWJtaSAtbWJtaTIgLW10Ym0gLW1sd3AgLW1mc2dzYmFzZSAtbXJkcm5kIC1tZjE2YyAt bWZtYSAtbXJ0bSAtbXJkc2VlZCAtbXByZmNodyAtbWFkeCAtbWZ4c3IgLW14c2F2ZW9wdCAtbWF2 eDUxMmYgLW1hdng1MTJlciAtbWF2eDUxMmNkIC1tYXZ4NTEycGYgLW1zaGEgLW1wcmVmZXRjaHd0 MSAtbXhzYXZlYyAtbXhzYXZlcyAtbWNsZmx1c2hvcHQgLW1hdng1MTJ2bCAtbWF2eDUxMmRxIC1t YXZ4NTEyYncgLW1hdng1MTJ2Ym1pIC1tYXZ4NTEydmJtaTIgLW1hdng1MTJpZm1hIC1tYXZ4NTEy NGZtYXBzIC1tYXZ4NTEyNHZubml3IC1tYXZ4NTEydnBvcGNudGRxIC1tYXZ4NTEydnAyaW50ZXJz ZWN0IC1tY2x3YiAtbW13YWl0eCAtbWNsemVybyAtbXBrdSAtbXNneCAtbXJkcGlkIC1tZ2ZuaSAt bWF2eDUxMmJpdGFsZyAtbXBjb25maWcgLW13Ym5vaW52ZCAtbWF2eDUxMmJmMTYgLW1lbnFjbWQg LW1zZXJpYWxpemUgLW10c3hsZHRyayAtbWFteC10aWxlIC1tYW14LWludDggLW1hbXgtYmYxNiIg fSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLVdlcnJvci1pbXBsaWNpdC1mdW5jdGlvbi1kZWNs YXJhdGlvbiAtbWFyY2g9azggLW1zc2U0YSAtbTNkbm93IC1tYXZ4IC1tYXZ4MiAtbWZtYTQgLW14 b3AgLW1hZXMgLW1wY2xtdWwgLW1wb3BjbnQgLW1hYm0gLW1semNudCAtbWJtaSAtbWJtaTIgLW10 Ym0gLW1sd3AgLW1mc2dzYmFzZSAtbXJkcm5kIC1tZjE2YyAtbWZtYSAtbXJ0bSAtbXJkc2VlZCAt bXByZmNodyAtbWFkeCAtbWZ4c3IgLW14c2F2ZW9wdCAtbWF2eDUxMmYgLW1hdng1MTJlciAtbWF2 eDUxMmNkIC1tYXZ4NTEycGYgLW1zaGEgLW1wcmVmZXRjaHd0MSAtbXhzYXZlYyAtbXhzYXZlcyAt bWNsZmx1c2hvcHQgLW1hdng1MTJ2bCAtbWF2eDUxMmRxIC1tYXZ4NTEyYncgLW1hdng1MTJ2Ym1p IC1tYXZ4NTEydmJtaTIgLW1hdng1MTJpZm1hIC1tYXZ4NTEyNGZtYXBzIC1tYXZ4NTEyNHZubml3 IC1tYXZ4NTEydnBvcGNudGRxIC1tYXZ4NTEydnAyaW50ZXJzZWN0IC1tY2x3YiAtbW13YWl0eCAt bWNsemVybyAtbXBrdSAtbXNneCAtbXJkcGlkIC1tZ2ZuaSAtbWF2eDUxMmJpdGFsZyAtbXBjb25m aWcgLW13Ym5vaW52ZCAtbWF2eDUxMmJmMTYgLW1lbnFjbWQgLW1zZXJpYWxpemUgLW10c3hsZHRy ayAtbWFteC10aWxlIC1tYW14LWludDggLW1hbXgtYmYxNiAtbWF2eHZubmkiIH0gKi8KIC8qIHsg ZGctYWRkLW9wdGlvbnMgYmluZF9waWNfbG9jYWxseSB9ICovCiAKICNpbmNsdWRlIDxtbV9tYWxs b2MuaD4KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZS0xNC5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTE0LmMKaW5kZXggODM3YjUxYzUz ZTYuLjAwZTRjY2U1MWU0IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4 Ni9zc2UtMTQuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMTQuYwpA QCAtMSw1ICsxLDUgQEAKIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0vKiB7IGRnLW9wdGlvbnMg Ii1PMCAtV2Vycm9yLWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIC1tYXJjaD1rOCAtbXNz ZTRhIC1tM2Rub3cgLW1hdnggLW1hdngyIC1tZm1hNCAtbXhvcCAtbWFlcyAtbXBjbG11bCAtbXBv cGNudCAtbWFibSAtbWx6Y250IC1tYm1pIC1tYm1pMiAtbXRibSAtbWx3cCAtbWZzZ3NiYXNlIC1t cmRybmQgLW1mMTZjIC1tZm1hIC1tcnRtIC1tcmRzZWVkIC1tcHJmY2h3IC1tYWR4IC1tZnhzciAt bXhzYXZlb3B0IC1tYXZ4NTEyZiAtbWF2eDUxMmVyIC1tYXZ4NTEyY2QgLW1hdng1MTJwZiAtbXNo YSAtbXByZWZldGNod3QxIC1teHNhdmVjIC1teHNhdmVzIC1tY2xmbHVzaG9wdCAtbWF2eDUxMmRx IC1tYXZ4NTEyYncgLW1hdng1MTJ2bCAtbWF2eDUxMmlmbWEgLW1hdng1MTJ2Ym1pIC1tYXZ4NTEy dmJtaTIgLW1hdng1MTI0Zm1hcHMgLW1hdng1MTI0dm5uaXcgLW1hdng1MTJ2cG9wY250ZHEgLW1j bHdiIC1tbXdhaXR4IC1tY2x6ZXJvIC1tcGt1IC1tc2d4IC1tcmRwaWQgLW1nZm5pIC1tcGNvbmZp ZyAtbXdibm9pbnZkIC1tYXZ4NTEydmwgLW1hdng1MTJiZjE2IC1tZW5xY21kIC1tYXZ4NTEydnAy aW50ZXJzZWN0IC1tc2VyaWFsaXplIC1tdHN4bGR0cmsgLW1hbXgtdGlsZSAtbWFteC1pbnQ4IC1t YW14LWJmMTYiIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8wIC1XZXJyb3ItaW1wbGljaXQtZnVu Y3Rpb24tZGVjbGFyYXRpb24gLW1hcmNoPWs4IC1tc3NlNGEgLW0zZG5vdyAtbWF2eCAtbWF2eDIg LW1mbWE0IC1teG9wIC1tYWVzIC1tcGNsbXVsIC1tcG9wY250IC1tYWJtIC1tbHpjbnQgLW1ibWkg LW1ibWkyIC1tdGJtIC1tbHdwIC1tZnNnc2Jhc2UgLW1yZHJuZCAtbWYxNmMgLW1mbWEgLW1ydG0g LW1yZHNlZWQgLW1wcmZjaHcgLW1hZHggLW1meHNyIC1teHNhdmVvcHQgLW1hdng1MTJmIC1tYXZ4 NTEyZXIgLW1hdng1MTJjZCAtbWF2eDUxMnBmIC1tc2hhIC1tcHJlZmV0Y2h3dDEgLW14c2F2ZWMg LW14c2F2ZXMgLW1jbGZsdXNob3B0IC1tYXZ4NTEyZHEgLW1hdng1MTJidyAtbWF2eDUxMnZsIC1t YXZ4NTEyaWZtYSAtbWF2eDUxMnZibWkgLW1hdng1MTJ2Ym1pMiAtbWF2eDUxMjRmbWFwcyAtbWF2 eDUxMjR2bm5pdyAtbWF2eDUxMnZwb3BjbnRkcSAtbWNsd2IgLW1td2FpdHggLW1jbHplcm8gLW1w a3UgLW1zZ3ggLW1yZHBpZCAtbWdmbmkgLW1wY29uZmlnIC1td2Jub2ludmQgLW1hdng1MTJ2bCAt bWF2eDUxMmJmMTYgLW1lbnFjbWQgLW1hdng1MTJ2cDJpbnRlcnNlY3QgLW1zZXJpYWxpemUgLW10 c3hsZHRyayAtbWFteC10aWxlIC1tYW14LWludDggLW1hbXgtYmYxNiAtbWF2eHZubmkiIH0gKi8K IC8qIHsgZGctYWRkLW9wdGlvbnMgYmluZF9waWNfbG9jYWxseSB9ICovCiAKICNpbmNsdWRlIDxt bV9tYWxsb2MuaD4KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3Nz ZS0yMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlLTIyLmMKaW5kZXggZmM3 NTY2OWY0MWIuLjdhNWY2NjRmZmY2IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvaTM4Ni9zc2UtMjIuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2Ut MjIuYwpAQCAtMTAzLDcgKzEwMyw3IEBACiAKIAogI2lmbmRlZiBESUZGRVJFTlRfUFJBR01BUwot I3ByYWdtYSBHQ0MgdGFyZ2V0ICgic3NlNGEsM2Rub3csYXZ4LGF2eDIsZm1hNCx4b3AsYWVzLHBj bG11bCxwb3BjbnQsYWJtLGx6Y250LGJtaSxibWkyLHRibSxsd3AsZnNnc2Jhc2UscmRybmQsZjE2 YyxydG0scmRzZWVkLHByZmNodyxhZHgsZnhzcix4c2F2ZW9wdCxhdng1MTJmLGF2eDUxMmVyLGF2 eDUxMmNkLGF2eDUxMnBmLHNoYSxwcmVmZXRjaHd0MSxhdng1MTJ2bCxhdng1MTJidyxhdng1MTJk cSxhdng1MTJ2Ym1pLGF2eDUxMnZibWkyLGF2eDUxMmlmbWEsYXZ4NTEyNGZtYXBzLGF2eDUxMjR2 bm5pdyxhdng1MTJ2cG9wY250ZHEsZ2ZuaSxhdng1MTJiaXRhbGcsYXZ4NTEyYmYxNixhdng1MTJ2 cDJpbnRlcnNlY3Qsc2VyaWFsaXplLHRzeGxkdHJrLGFteC10aWxlLGFteC1pbnQ4LGFteC1iZjE2 IikKKyNwcmFnbWEgR0NDIHRhcmdldCAoInNzZTRhLDNkbm93LGF2eCxhdngyLGZtYTQseG9wLGFl cyxwY2xtdWwscG9wY250LGFibSxsemNudCxibWksYm1pMix0Ym0sbHdwLGZzZ3NiYXNlLHJkcm5k LGYxNmMscnRtLHJkc2VlZCxwcmZjaHcsYWR4LGZ4c3IseHNhdmVvcHQsYXZ4NTEyZixhdng1MTJl cixhdng1MTJjZCxhdng1MTJwZixzaGEscHJlZmV0Y2h3dDEsYXZ4NTEydmwsYXZ4NTEyYncsYXZ4 NTEyZHEsYXZ4NTEydmJtaSxhdng1MTJ2Ym1pMixhdng1MTJpZm1hLGF2eDUxMjRmbWFwcyxhdng1 MTI0dm5uaXcsYXZ4NTEydnBvcGNudGRxLGdmbmksYXZ4NTEyYml0YWxnLGF2eDUxMmJmMTYsYXZ4 NTEydnAyaW50ZXJzZWN0LHNlcmlhbGl6ZSx0c3hsZHRyayxhbXgtdGlsZSxhbXgtaW50OCxhbXgt YmYxNixhdnh2bm5pIikKICNlbmRpZgogCiAvKiBGb2xsb3dpbmcgaW50cmluc2ljcyByZXF1aXJl IGltbWVkaWF0ZSBhcmd1bWVudHMuICBUaGV5CkBAIC0yMjAsNyArMjIwLDcgQEAgdGVzdF80IChf bW1fY21wZXN0cnosIGludCwgX19tMTI4aSwgaW50LCBfX20xMjhpLCBpbnQsIDEpCiAKIC8qIGlt bWludHJpbi5oIChBVlgvQVZYMi9SRFJORC9GU0dTQkFTRS9GMTZDL1JUTS9BVlg1MTJGL1NIQSkg Ki8KICNpZmRlZiBESUZGRVJFTlRfUFJBR01BUwotI3ByYWdtYSBHQ0MgdGFyZ2V0ICgiYXZ4LGF2 eDIscmRybmQsZnNnc2Jhc2UsZjE2YyxydG0sYXZ4NTEyZixhdng1MTJlcixhdng1MTJjZCxhdng1 MTJwZixzaGEsYXZ4NTEydmwsYXZ4NTEyYncsYXZ4NTEyZHEsYXZ4NTEyaWZtYSxhdng1MTJ2Ym1p LGF2eDUxMnZibWkyLGF2eDUxMjRmbWFwcyxhdng1MTI0dm5uaXcsYXZ4NTEydnBvcGNudGRxLGdm bmksYXZ4NTEyYml0YWxnLGF2eDUxMmJmMTYsYXZ4NTEydnAyaW50ZXJzZWN0LHNlcmlhbGl6ZSx0 c3hsZHRyayxhbXgtdGlsZSxhbXgtaW50OCxhbXgtYmYxNiIpCisjcHJhZ21hIEdDQyB0YXJnZXQg KCJhdngsYXZ4MixyZHJuZCxmc2dzYmFzZSxmMTZjLHJ0bSxhdng1MTJmLGF2eDUxMmVyLGF2eDUx MmNkLGF2eDUxMnBmLHNoYSxhdng1MTJ2bCxhdng1MTJidyxhdng1MTJkcSxhdng1MTJpZm1hLGF2 eDUxMnZibWksYXZ4NTEydmJtaTIsYXZ4NTEyNGZtYXBzLGF2eDUxMjR2bm5pdyxhdng1MTJ2cG9w Y250ZHEsZ2ZuaSxhdng1MTJiaXRhbGcsYXZ4NTEyYmYxNixhdng1MTJ2cDJpbnRlcnNlY3Qsc2Vy aWFsaXplLHRzeGxkdHJrLGFteC10aWxlLGFteC1pbnQ4LGFteC1iZjE2LGF2eHZubmkiKQogI2Vu ZGlmCiAjaW5jbHVkZSA8aW1taW50cmluLmg+CiB0ZXN0XzEgKF9jdnRzc19zaCwgdW5zaWduZWQg c2hvcnQsIGZsb2F0LCAxKQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kz ODYvc3NlLTIzLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2UtMjMuYwppbmRl eCA5Y2E3YzVkOTE5ZC4uZjA1YTk1NzMxYTggMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L3NzZS0yMy5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L3NzZS0yMy5jCkBAIC02OTgsNiArNjk4LDYgQEAKICNkZWZpbmUgX19idWlsdGluX2lhMzJfdnBj bG11bHFkcV92MmRpKEEsIEIsIEMpICBfX2J1aWx0aW5faWEzMl92cGNsbXVscWRxX3YyZGkoQSwg QiwgMSkgCiAjZGVmaW5lIF9fYnVpbHRpbl9pYTMyX3ZwY2xtdWxxZHFfdjhkaShBLCBCLCBDKSAg X19idWlsdGluX2lhMzJfdnBjbG11bHFkcV92OGRpKEEsIEIsIDEpIAogCi0jcHJhZ21hIEdDQyB0 YXJnZXQgKCJzc2U0YSwzZG5vdyxhdngsYXZ4MixmbWE0LHhvcCxhZXMscGNsbXVsLHBvcGNudCxh Ym0sbHpjbnQsYm1pLGJtaTIsdGJtLGx3cCxmc2dzYmFzZSxyZHJuZCxmMTZjLGZtYSxydG0scmRz ZWVkLHByZmNodyxhZHgsZnhzcix4c2F2ZW9wdCxhdng1MTJmLGF2eDUxMmVyLGF2eDUxMmNkLGF2 eDUxMnBmLHNoYSxwcmVmZXRjaHd0MSx4c2F2ZWMseHNhdmVzLGNsZmx1c2hvcHQsYXZ4NTEyYncs YXZ4NTEyZHEsYXZ4NTEydmwsYXZ4NTEydmJtaSxhdng1MTJpZm1hLGF2eDUxMjRmbWFwcyxhdng1 MTI0dm5uaXcsYXZ4NTEydnBvcGNudGRxLGNsd2IsbXdhaXR4LGNsemVybyxwa3Usc2d4LHJkcGlk LGdmbmksYXZ4NTEydmJtaTIsdnBjbG11bHFkcSxhdng1MTJiaXRhbGcscGNvbmZpZyx3Ym5vaW52 ZCxhdng1MTJiZjE2LGVucWNtZCxhdng1MTJ2cDJpbnRlcnNlY3Qsc2VyaWFsaXplLHRzeGxkdHJr LGFteC10aWxlLGFteC1pbnQ4LGFteC1iZjE2IikKKyNwcmFnbWEgR0NDIHRhcmdldCAoInNzZTRh LDNkbm93LGF2eCxhdngyLGZtYTQseG9wLGFlcyxwY2xtdWwscG9wY250LGFibSxsemNudCxibWks Ym1pMix0Ym0sbHdwLGZzZ3NiYXNlLHJkcm5kLGYxNmMsZm1hLHJ0bSxyZHNlZWQscHJmY2h3LGFk eCxmeHNyLHhzYXZlb3B0LGF2eDUxMmYsYXZ4NTEyZXIsYXZ4NTEyY2QsYXZ4NTEycGYsc2hhLHBy ZWZldGNod3QxLHhzYXZlYyx4c2F2ZXMsY2xmbHVzaG9wdCxhdng1MTJidyxhdng1MTJkcSxhdng1 MTJ2bCxhdng1MTJ2Ym1pLGF2eDUxMmlmbWEsYXZ4NTEyNGZtYXBzLGF2eDUxMjR2bm5pdyxhdng1 MTJ2cG9wY250ZHEsY2x3Yixtd2FpdHgsY2x6ZXJvLHBrdSxzZ3gscmRwaWQsZ2ZuaSxhdng1MTJ2 Ym1pMix2cGNsbXVscWRxLGF2eDUxMmJpdGFsZyxwY29uZmlnLHdibm9pbnZkLGF2eDUxMmJmMTYs ZW5xY21kLGF2eDUxMnZwMmludGVyc2VjdCxzZXJpYWxpemUsdHN4bGR0cmssYW14LXRpbGUsYW14 LWludDgsYW14LWJmMTYsYXZ4dm5uaSIpCiAKICNpbmNsdWRlIDx4ODZpbnRyaW4uaD4KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ZubmlfaW5saW5lX2Vycm9yLmMg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni92bm5pX2lubGluZV9lcnJvci5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lYWVkOTg0MjYwNAotLS0gL2Rldi9u dWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ZubmlfaW5saW5lX2Vycm9y LmMKQEAgLTAsMCArMSwxMyBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0 aW9ucyAiLU8wIC1tYXZ4NTEydm5uaSAtbWF2eDUxMnZsIC1tbm8tcG9wY250IiB9ICovCisKK2lu bGluZSBpbnQgX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVf XywgdGFyZ2V0KCJwb3BjbnQiKSkpCitmb28gKCkgLyogeyBkZy1lcnJvciAiaW5saW5pbmcgZmFp bGVkIGluIGNhbGwgdG8gJ2Fsd2F5c19pbmxpbmUnIC4qIHRhcmdldCBzcGVjaWZpYyBvcHRpb24g bWlzbWF0Y2giIH0gKi8KK3sKKyAgcmV0dXJuIDA7Cit9CisKK2ludCBiYXIoKQoreworICByZXR1 cm4gZm9vICgpOyAvKiB7IGRnLW1lc3NhZ2UgImNhbGxlZCBmcm9tIGhlcmUiIH0gKi8KK30KZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvbGliL3RhcmdldC1zdXBwb3J0cy5leHAgYi9nY2MvdGVz dHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwCmluZGV4IGVjZjhiZTNlNTY3Li5lY2VmYmFh MmE3YyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAor KysgYi9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhwCkBAIC04NDU4LDYgKzg0 NTgsMTggQEAgcHJvYyBjaGVja19lZmZlY3RpdmVfdGFyZ2V0X2F2eDIgeyB9IHsKICAgICB9ICIt TzAgLW1hdngyIiBdCiB9CiAKKyMgUmV0dXJuIDEgaWYgYXZ4dm5uaSBpbnN0cnVjdGlvbnMgY2Fu IGJlIGNvbXBpbGVkLgorcHJvYyBjaGVja19lZmZlY3RpdmVfdGFyZ2V0X2F2eHZubmkgeyB9IHsK KyAgICByZXR1cm4gW2NoZWNrX25vX2NvbXBpbGVyX21lc3NhZ2VzIGF2eHZubmkgb2JqZWN0IHsK Kwl0eXBlZGVmIGludCBfX3Y4c2kgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMzIp KSk7CisJX192OHNpCisJX21tMjU2X2RwYnVzZF9lcGkzMiAoX192OHNpIF9fQSwgX192OHNpIF9f QiwgX192OHNpIF9fQykKKyAgICAgICAgeworCSAgIHJldHVybiBfX2J1aWx0aW5faWEzMl92cGRw YnVzZF92OHNpIChfX0EsIF9fQiwgX19DKTsKKwl9CisgICAgfSAiLW1hdnh2bm5pIiBdCit9CisK ICMgUmV0dXJuIDEgaWYgc3NlIGluc3RydWN0aW9ucyBjYW4gYmUgY29tcGlsZWQuCiBwcm9jIGNo ZWNrX2VmZmVjdGl2ZV90YXJnZXRfc3NlIHsgfSB7CiAgICAgcmV0dXJuIFtjaGVja19ub19jb21w aWxlcl9tZXNzYWdlcyBzc2Ugb2JqZWN0IHsKLS0gCjIuMjUuMQoK --00000000000088d29c05b1992838--