From: "Dave Yeo" Received: from [192.168.100.201] (HELO mail.2rosenthals.com) by 2rosenthals.com (CommuniGate Pro SMTP 5.4.10) with ESMTPS id 3013374 for gnuports@2rosenthals.com; Tue, 01 Feb 2022 18:15:51 -0500 Received: from secmgr-va.randr ([192.168.200.201]:51939 helo=mail2.2rosenthals.com) by mail.2rosenthals.com with esmtp (Exim 4.94.2) (envelope-from ) id 1nF2NH-0003iM-0Q for gnuports@2rosenthals.com; Tue, 01 Feb 2022 18:15:47 -0500 Received: from mail-pj1-f42.google.com ([209.85.216.42]:45968) by mail2.2rosenthals.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1nF2NC-0007Mu-2W for gnuports@2rosenthals.com; Tue, 01 Feb 2022 18:15:43 -0500 Received: by mail-pj1-f42.google.com with SMTP id g15-20020a17090a67cf00b001b7d5b6bedaso4178079pjm.4 for ; Tue, 01 Feb 2022 15:15:42 -0800 (PST) X-SASI-Hits: BODYTEXTP_SIZE_3000_LESS 0.000000, BODYTEXTP_SIZE_400_LESS 0.000000, BODY_SIZE_10000_PLUS 0.000000, BODY_SIZE_100K_PLUS 0.000000, BODY_SIZE_25K_PLUS 0.000000, BODY_SIZE_500K_PLUS 0.000000, BODY_SIZE_50K_PLUS 0.000000, BODY_SIZE_75K_PLUS 0.000000, DATE_TZ_NA 0.000000, DKIM_ALIGNS 0.000000, DKIM_SIGNATURE 0.000000, HTML_00_01 0.050000, HTML_00_10 0.050000, IN_REP_TO 0.000000, KNOWN_MTA_TFX 0.000000, LEGITIMATE_SIGNS 0.000000, MSG_THREAD 0.000000, MULTIPLE_APP_ATT 0.000000, NO_CTA_URI_FOUND 0.000000, NO_URI_FOUND 0.000000, NO_URI_HTTPS 0.000000, REFERENCES 0.000000, SENDER_NO_AUTH 0.000000, SXL_IP_TFX_WM 0.000000, WEBMAIL_SOURCE 0.000000, __ATTACHMENT_NOT_IMG 0.000000, __ATTACHMENT_SIZE_0_10K 0.000000, __ATTACHMENT_SIZE_25_50K 0.000000, __BAT_BOUNDARY 0.000000, __BODY_NO_MAILTO 0.000000, __BOUNCE_CHALLENGE_SUBJ 0.000000, __BOUNCE_NDR_SUBJ_EXEMPT 0.000000, __CT 0.000000, __CTYPE_HAS_BOUNDARY 0.000000, __CTYPE_MULTIPART 0.000000, __CTYPE_MULTIPART_MIXED 0.000000, __DKIM_ALIGNS_1 0.000000, __DKIM_ALIGNS_2 0.000000, __DQ_NEG_HEUR 0.000000, __DQ_NEG_IP 0.000000, __FRAUD_WEBMAIL 0.000000, __FRAUD_WEBMAIL_FROM 0.000000, __FROM_DOMAIN_NOT_IN_BODY 0.000000, __FROM_GMAIL 0.000000, __FUR_HEADER 0.000000, __FUR_RDNS_GMAIL 0.000000, __HAS_ATTACHMENT 0.000000, __HAS_ATTACHMENT1 0.000000, __HAS_ATTACHMENT2 0.000000, __HAS_FROM 0.000000, __HAS_MSGID 0.000000, __HAS_REFERENCES 0.000000, __HEADER_ORDER_FROM 0.000000, __IN_REP_TO 0.000000, __MAIL_CHAIN 0.000000, __MIME_TEXT_P 0.000000, __MIME_TEXT_P1 0.000000, __MIME_TEXT_P2 0.000000, __MIME_VERSION 0.000000, __MOZILLA_USER_AGENT 0.000000, __NO_HTML_TAG_RAW 0.000000, __RDNS_WEBMAIL 0.000000, __REFERENCES 0.000000, __SANE_MSGID 0.000000, __SUBJ_ALPHA_NEGATE 0.000000, __SUBJ_REPLY 0.000000, __TO_MALFORMED_2 0.000000, __TO_NAME 0.000000, __TO_NAME_DIFF_FROM_ACC 0.000000, __TO_REAL_NAMES 0.000000, __URI_NO_MAILTO 0.000000, __USER_AGENT 0.000000, __X_GM_MESSAGE_STATE 0.000000, __X_GOOGLE_DKIM_SIGNATURE 0.000000, __X_GOOGLE_SMTP_SOURCE 0.000000, __YOUTUBE_RCVD 0.000000 X-SASI-Probability: 7% X-SASI-RCODE: 200 X-SASI-Version: Antispam-Engine: 4.1.4, AntispamData: 2022.2.1.222716 X-SASI-Hits: BODYTEXTP_SIZE_3000_LESS 0.000000, BODYTEXTP_SIZE_400_LESS 0.000000, BODY_SIZE_10000_PLUS 0.000000, BODY_SIZE_100K_PLUS 0.000000, BODY_SIZE_25K_PLUS 0.000000, BODY_SIZE_500K_PLUS 0.000000, BODY_SIZE_50K_PLUS 0.000000, BODY_SIZE_75K_PLUS 0.000000, DATE_TZ_NA 0.000000, DKIM_ALIGNS 0.000000, DKIM_SIGNATURE 0.000000, HTML_00_01 0.050000, HTML_00_10 0.050000, IN_REP_TO 0.000000, KNOWN_MTA_TFX 0.000000, LEGITIMATE_SIGNS 0.000000, MSG_THREAD 0.000000, MULTIPLE_APP_ATT 0.000000, NO_CTA_URI_FOUND 0.000000, NO_URI_FOUND 0.000000, NO_URI_HTTPS 0.000000, REFERENCES 0.000000, SENDER_NO_AUTH 0.000000, SXL_IP_TFX_WM 0.000000, WEBMAIL_SOURCE 0.000000, __ATTACHMENT_NOT_IMG 0.000000, __ATTACHMENT_SIZE_0_10K 0.000000, __ATTACHMENT_SIZE_25_50K 0.000000, __BAT_BOUNDARY 0.000000, __BODY_NO_MAILTO 0.000000, __BOUNCE_CHALLENGE_SUBJ 0.000000, __BOUNCE_NDR_SUBJ_EXEMPT 0.000000, __CT 0.000000, __CTYPE_HAS_BOUNDARY 0.000000, __CTYPE_MULTIPART 0.000000, __CTYPE_MULTIPART_MIXED 0.000000, __DKIM_ALIGNS_1 0.000000, __DKIM_ALIGNS_2 0.000000, __DQ_NEG_HEUR 0.000000, __DQ_NEG_IP 0.000000, __FRAUD_WEBMAIL 0.000000, __FRAUD_WEBMAIL_FROM 0.000000, __FROM_DOMAIN_NOT_IN_BODY 0.000000, __FROM_GMAIL 0.000000, __FUR_HEADER 0.000000, __FUR_RDNS_GMAIL 0.000000, __HAS_ATTACHMENT 0.000000, __HAS_ATTACHMENT1 0.000000, __HAS_ATTACHMENT2 0.000000, __HAS_FROM 0.000000, __HAS_MSGID 0.000000, __HAS_REFERENCES 0.000000, __HEADER_ORDER_FROM 0.000000, __IN_REP_TO 0.000000, __MAIL_CHAIN 0.000000, __MIME_TEXT_P 0.000000, __MIME_TEXT_P1 0.000000, __MIME_TEXT_P2 0.000000, __MIME_VERSION 0.000000, __MOZILLA_USER_AGENT 0.000000, __NO_HTML_TAG_RAW 0.000000, __RDNS_WEBMAIL 0.000000, __REFERENCES 0.000000, __SANE_MSGID 0.000000, __SUBJ_ALPHA_NEGATE 0.000000, __SUBJ_REPLY 0.000000, __TO_MALFORMED_2 0.000000, __TO_NAME 0.000000, __TO_NAME_DIFF_FROM_ACC 0.000000, __TO_REAL_NAMES 0.000000, __URI_NO_MAILTO 0.000000, __USER_AGENT 0.000000, __X_GM_MESSAGE_STATE 0.000000, __X_GOOGLE_DKIM_SIGNATURE 0.000000, __X_GOOGLE_SMTP_SOURCE 0.000000, __YOUTUBE_RCVD 0.000000 X-SASI-Probability: 7% X-SASI-RCODE: 200 X-SASI-Version: Antispam-Engine: 4.1.4, AntispamData: 2022.2.1.225116 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to; bh=Hcv9P8f/03+uqHpoWIads78Pk6+k+RBdMB0HmWHj7GA=; b=Ow3TNk0/dl+eseneJINrVp/2w3yLnQ0S6N0xk43tPD9hnCphhKpHb/JIBfLdfYRbLi c13/2YSdMP4HekCP/p3/RwBHxA7iyZ6erUeBapaH+r2zeASxZ5icDzpramTOD3TMYFi1 WyJkInp6KiLuKavscdpA97MZcDFsNfWUVGx3SeWx1JDb4IPqvrmvY2klc4uUPMpHpOma UjJLBiCB6QWZGkqqnNA6sT8wLONBMi5RBFemYkdqCoux8EdqcsTpaTheFfdGiwi2+r1B /x7c8BzJJ+g/EBpe46ocF+PMSHrcGvmd/feQO+cMHL+S9rXlm69iMvLqm4E6M0QYjgSJ seXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to; bh=Hcv9P8f/03+uqHpoWIads78Pk6+k+RBdMB0HmWHj7GA=; b=SbAoN6W0k7+NluJONIZ2X2ZyGvG/Bk1fy2KhxEkTFtMAjPPjruOK5LoAkApiS5VSQT xszrEOdqJ0jW1cuCWEr1ZIsK/nbkTT+ECOM/KZ0Qlt6lWRr4ruOrk1pK4/JeVD8ykyuu 2eWeblnSdanjwYy3SI0LNusrfMGbro2jjKyHVzxhAsaavgYMK2+7YLfWF1RRPKXEFkzt uqT+RfYsO09uedKUIYPBIxdG1kQijFpzqh2CDTLE9fl6zwtKVBp0y5Oe89qMQBNwqq6+ il7euRKF2lGjEv1erF+hlmfX07IDP13zcfPpex/nEJStil6ZhgAWYK4ZRyojpUc5hJAD dfAw== X-Gm-Message-State: AOAM531gw6eBPx3mvefCxWTVL3Pjj2OnPrYVLEJm8MBwL0x+2GOK+/4X 2ILvaGnKVFoKo5n/B4wPIvOqrFoOFNg= X-Google-Smtp-Source: ABdhPJzUe6WKGfZQ/mILI00o/W/wq1LVsidEGdkIBI+ESBBYXUZwN+BwlEg5Qr2oV6EZsYE9nR6icA== X-Received: by 2002:a17:903:1210:: with SMTP id l16mr25569521plh.63.1643757340926; Tue, 01 Feb 2022 15:15:40 -0800 (PST) Return-Path: Received: from [192.168.0.100] ([209.52.88.174]) by smtp.gmail.com with ESMTPSA id 19sm3701363pjb.42.2022.02.01.15.15.39 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 01 Feb 2022 15:15:40 -0800 (PST) Subject: Re: [GNU Ports] Building privoxy - need to specify PTHREAD_LIB - why? To: GNU Ports for eCS Mailing List References: Message-ID: <3977fdf8-6e03-c3e6-15b8-6015a530b504@gmail.com> Date: Tue, 1 Feb 2022 15:15:39 -0800 User-Agent: Mozilla/5.0 (OS/2; Warp 4.5; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------54E0AF7966BC6630B1C2436B" This is a multi-part message in MIME format. --------------54E0AF7966BC6630B1C2436B Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 02/01/22 08:18 AM, Dave Yeo wrote: > Could probably find the commit that removed it and restore or at least > see if the warpin script was in the tree. Here's the commits. Raw as Gmail doesn't like zips. Dave --------------54E0AF7966BC6630B1C2436B Content-Type: application/x-patch; name="0001-Remove-OS-2-support.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Remove-OS-2-support.patch" RnJvbSA3NGY4NDk4ODEyNmM5NjgwZTVlMDU1MTNhNDIwMTZmMGRiZTZjMTg1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGYWJpYW4gS2VpbCA8ZmtAZmFiaWFua2VpbC5kZT4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxNDozNDowNSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MS83XSBSZW1vdmUgT1MvMiBzdXBwb3J0CgpXZSBoYXZlbid0IHByb3ZpZGVkIE9TLzIgcGFj a2FnZXMgaW4geWVhcnMsIGl0IGNvbXBsaWNhdGVzIHRoZSBjb2RlCmFuZCBpdCBkZXBlbmRz IG9uIHRoZSBmYWxsYmFjayBzbnByaW50ZiBpbXBsZW1lbnRhdGlvbiB3aGljaCBpcyBHUEx2 Mgpvbmx5LgoKTm8gb2JqZWN0aW9ucyBmcm9tIHByaXZveHktZGV2ZWxALgotLS0KIGNvbmZp Z3VyZS5pbiB8ICAgMiArLQogZXJybG9nLmMgICAgIHwgMTE4ICsrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBmaWx0ZXJzLmMg ICAgfCAgIDYgLS0tCiBnYXRld2F5LmMgICAgfCAgIDQgLS0KIGpic29ja2V0cy5jICB8ICA4 NyArKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBqY2MuYyAg ICAgICAgfCAgMzkgKystLS0tLS0tLS0tLS0tLS0tLS0KIGxpc3QuYyAgICAgICB8ICAgMiAr LQogbG9hZGNmZy5jICAgIHwgICA0IC0tCiBsb2FkZXJzLmMgICAgfCAgIDIgKy0KIG1pc2N1 dGlsLmMgICB8ICAyMCArKysrLS0tLS0tCiBwYXJzZXJzLmMgICAgfCAgIDIgKy0KIHNzbF9j b21tb24uYyB8ICAgNiArLS0KIHVybG1hdGNoLmMgICB8ICAgMiArLQogMTMgZmlsZXMgY2hh bmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMjUyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgppbmRleCBjMWU4ZGJhYy4uYzU0MjAzOGEg MTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5pbgorKysgYi9jb25maWd1cmUuaW4KQEAgLTE2Myw3 ICsxNjMsNyBAQCBkbmwgQ2hlY2sgZm9yIHVzZXIgYW5kIGdyb3VwIHZhbGlkaXR5CiBkbmwg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIAogCi1pZiB0ZXN0ICIkRU1YT1MyIiA9IHllcyB8fCB0ZXN0ICIkaG9z dF9vcyIgPSBoYWlrdTsgdGhlbgoraWYgdGVzdCAiJGhvc3Rfb3MiID0gaGFpa3U7IHRoZW4K ICAgZWNobyAiU2tpcHBpbmcgdXNlciBhbmQgZ3JvdXAgdmFsaWRpdHkgc3R1ZmYuIjsKIAog ZWxzZQpkaWZmIC0tZ2l0IGEvZXJybG9nLmMgYi9lcnJsb2cuYwppbmRleCA3Y2M0ZTIwMC4u ZGQwNjM4N2UgMTAwNjQ0Ci0tLSBhL2VycmxvZy5jCisrKyBiL2VycmxvZy5jCkBAIC00NSw5 ICs0NSw5IEBACiAvKiBGb3IgZ2V0dGltZW9mZGF5KCkgKi8KICNpbmNsdWRlIDxzeXMvdGlt ZS5oPgogCi0jaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX09TMl9fKQorI2lm ICFkZWZpbmVkKF9XSU4zMikKICNpbmNsdWRlIDx1bmlzdGQuaD4KLSNlbmRpZiAvKiAhZGVm aW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fT1MyX18pICovCisjZW5kaWYgLyogIWRlZmlu ZWQoX1dJTjMyKSAqLwogCiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxhc3NlcnQu aD4KQEAgLTY1LDEyICs2NSw2IEBACiAjZGVmaW5lIGlubGluZSBfX2lubGluZQogI2VuZGlm IC8qIGRlZiBfTVNDX1ZFUiAqLwogCi0jaWZkZWYgX19PUzJfXwotI2luY2x1ZGUgPHN5cy9z b2NrZXQuaD4gLyogRm9yIHNvY2tfZXJybm8gKi8KLSNkZWZpbmUgSU5DTF9ET1MKLSNpbmNs dWRlIDxvczIuaD4KLSNlbmRpZgotCiAjaW5jbHVkZSAiZXJybG9nLmgiCiAjaW5jbHVkZSAi cHJvamVjdC5oIgogI2luY2x1ZGUgImpjYy5oIgpAQCAtOTYsOSArOTAsNiBAQCBzdGF0aWMg dm9pZCBmYXRhbF9lcnJvcihjb25zdCBjaGFyICogZXJyb3JfbWVzc2FnZSk7CiAjaWZkZWYg X1dJTjMyCiBzdGF0aWMgY2hhciAqdzMyX3NvY2tldF9zdHJlcnIoaW50IGVycmNvZGUsIGNo YXIgKnRtcF9idWYpOwogI2VuZGlmCi0jaWZkZWYgX19PUzJfXwotc3RhdGljIGNoYXIgKm9z Ml9zb2NrZXRfc3RyZXJyKGludCBlcnJjb2RlLCBjaGFyICp0bXBfYnVmKTsKLSNlbmRpZgog CiAjaWZkZWYgTVVURVhfTE9DS1NfQVZBSUxBQkxFCiBzdGF0aWMgaW5saW5lIHZvaWQgbG9j a19sb2dmaWxlKHZvaWQpCkBAIC0zMzEsOSArMzIyLDkgQEAgdm9pZCBpbml0X2Vycm9yX2xv Zyhjb25zdCBjaGFyICpwcm9nX25hbWUsIGNvbnN0IGNoYXIgKmxvZ2ZuYW1lKQogICAgaWYg KChOVUxMID09IGZwKSAmJiAobG9nZnAgIT0gTlVMTCkpCiAgICB7CiAgICAgICAvKgotICAg ICAgICogU29tZSBwbGF0Zm9ybXMgKGxpa2UgT1MvMikgZG9uJ3QgYWxsb3cgdXMgdG8gb3Bl bgotICAgICAgICogdGhlIHNhbWUgZmlsZSB0d2ljZSwgdGhlcmVmb3JlIHdlIGdpdmUgaXQg YW5vdGhlcgotICAgICAgICogc2hvdCBhZnRlciBjbG9zaW5nIHRoZSBvbGQgZmlsZSBkZXNj cmlwdG9yIGZpcnN0LgorICAgICAgICogU29tZSBwbGF0Zm9ybXMgKGxpa2UgT1MvMiAoWFhY OiBubyBsb25nZXIgc3VwcG9ydGVkKSkgZG9uJ3QKKyAgICAgICAqIGFsbG93IHVzIHRvIG9w ZW4gdGhlIHNhbWUgZmlsZSB0d2ljZSwgdGhlcmVmb3JlIHdlIGdpdmUgaXQKKyAgICAgICAq IGFub3RoZXIgc2hvdCBhZnRlciBjbG9zaW5nIHRoZSBvbGQgZmlsZSBkZXNjcmlwdG9yIGZp cnN0LgogICAgICAgICoKICAgICAgICAqIFdlIGRvbid0IGRvIGl0IHJpZ2h0IGF3YXkgYmVj YXVzZSBpdCBwcmV2ZW50cyB1cwogICAgICAgICogZnJvbSBsb2dnaW5nIHRoZSAiY2FuJ3Qg b3BlbiBsb2dmaWxlIiBtZXNzYWdlIHRvCkBAIC00MTgsMTEgKzQwOSw2IEBAIHN0YXRpYyBs b25nIGdldF90aHJlYWRfaWQodm9pZCkKIHsKICAgIGxvbmcgdGhpc190aHJlYWQ7CiAKLSNp ZmRlZiBfX09TMl9fCi0gICBQVElCICAgICBwdGliOwotICAgQVBJUkVUICAgdWxyYzsgLyog WFhYOiBJIGhhdmUgbm8gY2x1ZSB3aGF0IHRoaXMgZG9lcyAqLwotI2VuZGlmIC8qIF9fT1My X18gKi8KLQogICAgLyogRklYTUUgZ2V0IGN1cnJlbnQgdGhyZWFkIGlkICovCiAjaWZkZWYg RkVBVFVSRV9QVEhSRUFECiAgICB0aGlzX3RocmVhZCA9IChsb25nKXB0aHJlYWRfc2VsZigp OwpAQCAtNDM2LDEwICs0MjIsNiBAQCBzdGF0aWMgbG9uZyBnZXRfdGhyZWFkX2lkKHZvaWQp CiAjZW5kaWYgLyogZGVmIF9fTUFDSF9fICovCiAjZWxpZiBkZWZpbmVkKF9XSU4zMikKICAg IHRoaXNfdGhyZWFkID0gR2V0Q3VycmVudFRocmVhZElkKCk7Ci0jZWxpZiBkZWZpbmVkKF9f T1MyX18pCi0gICB1bHJjID0gRG9zR2V0SW5mb0Jsb2NrcygmcHRpYiwgTlVMTCk7Ci0gICBp ZiAodWxyYyA9PSAwKQotICAgICB0aGlzX3RocmVhZCA9IHB0aWIgLT4gdGliX3B0aWIyIC0+ IHRpYjJfdWx0aWQ7CiAjZWxzZQogICAgLyogRm9ya2luZyBpbnN0ZWFkIG9mIHRocmVhZGlu Zy4gKi8KICAgIHRoaXNfdGhyZWFkID0gMTsKQEAgLTc0Niw3ICs3MjgsOCBAQCB2b2lkIGxv Z19lcnJvcihpbnQgbG9nbGV2ZWwsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQogICAgICAgICAg LyoKICAgICAgICAgICAqIFhYWDogT25seSBuZWNlc3Nhcnkgb24gcGxhdGZvcm1zIHdoZXJl IG11bHRpcGxlIHRocmVhZHMKICAgICAgICAgICAqIGNhbiB3cml0ZSB0byB0aGUgYnVmZmVy IGF0IHRoZSBzYW1lIHRpbWUgYmVjYXVzZSB3ZQotICAgICAgICAgICogZG9uJ3Qgc3VwcG9y dCBtdXRleGVzIChPUy8yIGZvciBleGFtcGxlKS4KKyAgICAgICAgICAqIGRvbid0IHN1cHBv cnQgbXV0ZXhlcy4KKyAgICAgICAgICAqIFhYWDogQXJlIHRoZXJlIGFueSBzdWNoIHBsYXRm b3JtcyBsZWZ0IG5vdyB0aGF0IE9TLzIgaXMgZ29uZT8KICAgICAgICAgICAqLwogICAgICAg ICAgb3V0YnVmW2xlbmd0aF0gPSAnXDAnOwogICAgICAgICAgY29udGludWU7CkBAIC04NDQs MTcgKzgyNyw2IEBAIHZvaWQgbG9nX2Vycm9yKGludCBsb2dsZXZlbCwgY29uc3QgY2hhciAq Zm10LCAuLi4pCiAjaWZkZWYgX1dJTjMyCiAgICAgICAgICAgICBpdmFsID0gV1NBR2V0TGFz dEVycm9yKCk7CiAgICAgICAgICAgICBmb3JtYXRfc3RyaW5nID0gdzMyX3NvY2tldF9zdHJl cnIoaXZhbCwgdGVtcGJ1Zik7Ci0jZWxpZiBfX09TMl9fCi0gICAgICAgICAgICBpdmFsID0g c29ja19lcnJubygpOwotICAgICAgICAgICAgaWYgKGl2YWwgIT0gMCkKLSAgICAgICAgICAg IHsKLSAgICAgICAgICAgICAgIGZvcm1hdF9zdHJpbmcgPSBvczJfc29ja2V0X3N0cmVycihp dmFsLCB0ZW1wYnVmKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgIGl2YWwgPSBlcnJubzsKLSAgICAgICAgICAgICAg IGZvcm1hdF9zdHJpbmcgPSBzdHJlcnJvcihpdmFsKTsKLSAgICAgICAgICAgIH0KICNlbHNl IC8qIGlmbmRlZiBfV0lOMzIgKi8KICAgICAgICAgICAgIGl2YWwgPSBlcnJubzsKICNpZmRl ZiBIQVZFX1NUUkVSUk9SCkBAIC0xMDc3LDgyICsxMDQ5LDYgQEAgc3RhdGljIGNoYXIgKncz Ml9zb2NrZXRfc3RyZXJyKGludCBlcnJjb2RlLCBjaGFyICp0bXBfYnVmKQogI2VuZGlmIC8q IGRlZiBfV0lOMzIgKi8KIAogCi0jaWZkZWYgX19PUzJfXwotLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgot ICoKLSAqIEZ1bmN0aW9uICAgIDogIG9zMl9zb2NrZXRfc3RyZXJyCi0gKgotICogRGVzY3Jp cHRpb24gOiAgVHJhbnNsYXRlIHRoZSByZXR1cm4gdmFsdWUgZnJvbSBzb2NrX2Vycm5vKCkK LSAqICAgICAgICAgICAgICAgIGludG8gYSBzdHJpbmcuCi0gKgotICogUGFyYW1ldGVycyAg OgotICogICAgICAgICAgMSAgOiAgZXJyY29kZSA9IFRoZSByZXR1cm4gdmFsdWUgZnJvbSBz b2NrX2Vycm5vKCkuCi0gKiAgICAgICAgICAyICA6ICB0bXBfYnVmID0gQSB0ZW1wb3Jhcnkg YnVmZmVyIHRoYXQgbWlnaHQgYmUgdXNlZCB0bwotICogICAgICAgICAgICAgICAgICAgICAg ICAgIHN0b3JlIHRoZSBzdHJpbmcuCi0gKgotICogUmV0dXJucyAgICAgOiAgU3RyaW5nIHJl cHJlc2VudGluZyB0aGUgZXJyb3IgY29kZS4gIFRoaXMgbWF5IGJlCi0gKiAgICAgICAgICAg ICAgICBhIGdsb2JhbCBzdHJpbmcgY29uc3RhbnQgb3IgYSBzdHJpbmcgc3RvcmVkIGluCi0g KiAgICAgICAgICAgICAgICB0bXBfYnVmLgotICoKLSAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0 aWMgY2hhciAqb3MyX3NvY2tldF9zdHJlcnIoaW50IGVycmNvZGUsIGNoYXIgKnRtcF9idWYp Ci17Ci0jZGVmaW5lIFRFWFRfRk9SX0VSUk9SKGNvZGUsdGV4dCkgXAotICAgaWYgKGVycmNv ZGUgPT0gY29kZSkgICAgICAgICAgIFwKLSAgIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0gICAgICByZXR1cm4gI2NvZGUgIiAtICIgdGV4dDsgICAgXAotICAgfQotCi0g ICBURVhUX0ZPUl9FUlJPUihTT0NFUEVSTSAgICAgICAgICAsICJOb3Qgb3duZXIuIikKLSAg IFRFWFRfRk9SX0VSUk9SKFNPQ0VTUkNIICAgICAgICAgICwgIk5vIHN1Y2ggcHJvY2Vzcy4i KQotICAgVEVYVF9GT1JfRVJST1IoU09DRUlOVFIgICAgICAgICAgLCAiSW50ZXJydXB0ZWQg c3lzdGVtIGNhbGwuIikKLSAgIFRFWFRfRk9SX0VSUk9SKFNPQ0VOWElPICAgICAgICAgICwg Ik5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MuIikKLSAgIFRFWFRfRk9SX0VSUk9SKFNPQ0VC QURGICAgICAgICAgICwgIkJhZCBmaWxlIG51bWJlci4iKQotICAgVEVYVF9GT1JfRVJST1Io U09DRUFDQ0VTICAgICAgICAgLCAiUGVybWlzc2lvbiBkZW5pZWQuIikKLSAgIFRFWFRfRk9S X0VSUk9SKFNPQ0VGQVVMVCAgICAgICAgICwgIkJhZCBhZGRyZXNzLiIpCi0gICBURVhUX0ZP Ul9FUlJPUihTT0NFSU5WQUwgICAgICAgICAsICJJbnZhbGlkIGFyZ3VtZW50LiIpCi0gICBU RVhUX0ZPUl9FUlJPUihTT0NFTUZJTEUgICAgICAgICAsICJUb28gbWFueSBvcGVuIGZpbGVz LiIpCi0gICBURVhUX0ZPUl9FUlJPUihTT0NFUElQRSAgICAgICAgICAsICJCcm9rZW4gcGlw ZS4iKQotICAgVEVYVF9GT1JfRVJST1IoU09DRVdPVUxEQkxPQ0sgICAgLCAiT3BlcmF0aW9u IHdvdWxkIGJsb2NrLiIpCi0gICBURVhUX0ZPUl9FUlJPUihTT0NFSU5QUk9HUkVTUyAgICAs ICJPcGVyYXRpb24gbm93IGluIHByb2dyZXNzLiIpCi0gICBURVhUX0ZPUl9FUlJPUihTT0NF QUxSRUFEWSAgICAgICAsICJPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcy4iKQotICAg VEVYVF9GT1JfRVJST1IoU09DRU5PVFNPQ0sgICAgICAgLCAiU29ja2V0IG9wZXJhdGlvbiBv biBub24tc29ja2V0LiIpCi0gICBURVhUX0ZPUl9FUlJPUihTT0NFREVTVEFERFJSRVEgICAs ICJEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkLiIpCi0gICBURVhUX0ZPUl9FUlJPUihT T0NFTVNHU0laRSAgICAgICAsICJNZXNzYWdlIHRvbyBsb25nLiIpCi0gICBURVhUX0ZPUl9F UlJPUihTT0NFUFJPVE9UWVBFICAgICAsICJQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2Nr ZXQuIikKLSAgIFRFWFRfRk9SX0VSUk9SKFNPQ0VOT1BST1RPT1BUICAgICwgIlByb3RvY29s IG5vdCBhdmFpbGFibGUuIikKLSAgIFRFWFRfRk9SX0VSUk9SKFNPQ0VQUk9UT05PU1VQUE9S VCwgIlByb3RvY29sIG5vdCBzdXBwb3J0ZWQuIikKLSAgIFRFWFRfRk9SX0VSUk9SKFNPQ0VT T0NLVE5PU1VQUE9SVCwgIlNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQuIikKLSAgIFRFWFRf Rk9SX0VSUk9SKFNPQ0VPUE5PVFNVUFAgICAgICwgIk9wZXJhdGlvbiBub3Qgc3VwcG9ydGVk LiIpCi0gICBURVhUX0ZPUl9FUlJPUihTT0NFUEZOT1NVUFBPUlQgICAsICJQcm90b2NvbCBm YW1pbHkgbm90IHN1cHBvcnRlZC4iKQotICAgVEVYVF9GT1JfRVJST1IoU09DRUFGTk9TVVBQ T1JUICAgLCAiQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbCBmYW1p bHkuIikKLSAgIFRFWFRfRk9SX0VSUk9SKFNPQ0VBRERSSU5VU0UgICAgICwgIkFkZHJlc3Mg YWxyZWFkeSBpbiB1c2UuIikKLSAgIFRFWFRfRk9SX0VSUk9SKFNPQ0VBRERSTk9UQVZBSUwg ICwgIkNhbid0IGFzc2lnbiByZXF1ZXN0ZWQgYWRkcmVzcy4iKQotICAgVEVYVF9GT1JfRVJS T1IoU09DRU5FVERPV04gICAgICAgLCAiTmV0d29yayBpcyBkb3duLiIpCi0gICBURVhUX0ZP Ul9FUlJPUihTT0NFTkVUVU5SRUFDSCAgICAsICJOZXR3b3JrIGlzIHVucmVhY2hhYmxlLiIp Ci0gICBURVhUX0ZPUl9FUlJPUihTT0NFTkVUUkVTRVQgICAgICAsICJOZXR3b3JrIGRyb3Bw ZWQgY29ubmVjdGlvbiBvbiByZXNldC4iKQotICAgVEVYVF9GT1JfRVJST1IoU09DRUNPTk5B Qk9SVEVEICAgLCAiU29mdHdhcmUgY2F1c2VkIGNvbm5lY3Rpb24gYWJvcnQuIikKLSAgIFRF WFRfRk9SX0VSUk9SKFNPQ0VDT05OUkVTRVQgICAgICwgIkNvbm5lY3Rpb24gcmVzZXQgYnkg cGVlci4iKQotICAgVEVYVF9GT1JfRVJST1IoU09DRU5PQlVGUyAgICAgICAgLCAiTm8gYnVm ZmVyIHNwYWNlIGF2YWlsYWJsZS4iKQotICAgVEVYVF9GT1JfRVJST1IoU09DRUlTQ09OTiAg ICAgICAgLCAiU29ja2V0IGlzIGFscmVhZHkgY29ubmVjdGVkLiIpCi0gICBURVhUX0ZPUl9F UlJPUihTT0NFTk9UQ09OTiAgICAgICAsICJTb2NrZXQgaXMgbm90IGNvbm5lY3RlZC4iKQot ICAgVEVYVF9GT1JfRVJST1IoU09DRVNIVVRET1dOICAgICAgLCAiQ2FuJ3Qgc2VuZCBhZnRl ciBzb2NrZXQgc2h1dGRvd24uIikKLSAgIFRFWFRfRk9SX0VSUk9SKFNPQ0VUT09NQU5ZUkVG UyAgICwgIlRvbyBtYW55IHJlZmVyZW5jZXM6IGNhbid0IHNwbGljZS4iKQotICAgVEVYVF9G T1JfRVJST1IoU09DRVRJTUVET1VUICAgICAgLCAiT3BlcmF0aW9uIHRpbWVkIG91dC4iKQot ICAgVEVYVF9GT1JfRVJST1IoU09DRUNPTk5SRUZVU0VEICAgLCAiQ29ubmVjdGlvbiByZWZ1 c2VkLiIpCi0gICBURVhUX0ZPUl9FUlJPUihTT0NFTE9PUCAgICAgICAgICAsICJUb28gbWFu eSBsZXZlbHMgb2Ygc3ltYm9saWMgbGlua3MuIikKLSAgIFRFWFRfRk9SX0VSUk9SKFNPQ0VO QU1FVE9PTE9ORyAgICwgIkZpbGUgbmFtZSB0b28gbG9uZy4iKQotICAgVEVYVF9GT1JfRVJS T1IoU09DRUhPU1RET1dOICAgICAgLCAiSG9zdCBpcyBkb3duLiIpCi0gICBURVhUX0ZPUl9F UlJPUihTT0NFSE9TVFVOUkVBQ0ggICAsICJObyByb3V0ZSB0byBob3N0LiIpCi0gICBURVhU X0ZPUl9FUlJPUihTT0NFTk9URU1QVFkgICAgICAsICJEaXJlY3Rvcnkgbm90IGVtcHR5LiIp Ci0gICBURVhUX0ZPUl9FUlJPUihTT0NFT1MyRVJSICAgICAgICAsICJPUy8yIEVycm9yLiIp Ci0KLSAgIHNwcmludGYodG1wX2J1ZiwgIihlcnJvciBudW1iZXIgJWQpIiwgZXJyY29kZSk7 Ci0gICByZXR1cm4gdG1wX2J1ZjsKLX0KLSNlbmRpZiAvKiBkZWYgX19PUzJfXyAqLwotCi0K IC8qCiAgIExvY2FsIFZhcmlhYmxlczoKICAgdGFiLXdpZHRoOiAzCmRpZmYgLS1naXQgYS9m aWx0ZXJzLmMgYi9maWx0ZXJzLmMKaW5kZXggYTlkOTc2NzYuLjlkMzUwZTdjIDEwMDY0NAot LS0gYS9maWx0ZXJzLmMKKysrIGIvZmlsdGVycy5jCkBAIC00MiwxOCArNDIsMTIgQEAKICNp bmNsdWRlIDxhc3NlcnQuaD4KIAogI2lmbmRlZiBfV0lOMzIKLSNpZm5kZWYgX19PUzJfXwog I2luY2x1ZGUgPHVuaXN0ZC5oPgotI2VuZGlmIC8qIG5kZWYgX19PUzJfXyAqLwogI2luY2x1 ZGUgPG5ldGluZXQvaW4uaD4KICNlbHNlCiAjaW5jbHVkZSA8d2luc29jazIuaD4KICNlbmRp ZiAvKiBuZGVmIF9XSU4zMiAqLwogCi0jaWZkZWYgX19PUzJfXwotI2luY2x1ZGUgPHV0aWxz Lmg+Ci0jZW5kaWYgLyogZGVmIF9fT1MyX18gKi8KLQogI2luY2x1ZGUgInByb2plY3QuaCIK ICNpbmNsdWRlICJmaWx0ZXJzLmgiCiAjaW5jbHVkZSAiZW5jb2RlLmgiCmRpZmYgLS1naXQg YS9nYXRld2F5LmMgYi9nYXRld2F5LmMKaW5kZXggMDc3NTJiMDAuLjliMjFhYTUzIDEwMDY0 NAotLS0gYS9nYXRld2F5LmMKKysrIGIvZ2F0ZXdheS5jCkBAIC01NSwxMCArNTUsNiBAQAog I2luY2x1ZGUgPG5ldGRiLmg+CiAjZW5kaWYgLyogZGVmIF9fQkVPU19fICovCiAKLSNpZmRl ZiBfX09TMl9fCi0jaW5jbHVkZSA8dXRpbHMuaD4KLSNlbmRpZiAvKiBkZWYgX19PUzJfXyAq LwotCiAjaW5jbHVkZSAicHJvamVjdC5oIgogI2luY2x1ZGUgImpjYy5oIgogI2luY2x1ZGUg ImVycmxvZy5oIgpkaWZmIC0tZ2l0IGEvamJzb2NrZXRzLmMgYi9qYnNvY2tldHMuYwppbmRl eCA1ZTRiMjhjNy4uZWQ5ZjllYWUgMTAwNjQ0Ci0tLSBhL2pic29ja2V0cy5jCisrKyBiL2pi c29ja2V0cy5jCkBAIC01Niw5ICs1Niw3IEBACiAKICNlbHNlCiAKLSNpZm5kZWYgX19PUzJf XwogI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2VuZGlmCiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4K ICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CiAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CkBAIC02 NywyMCArNjUsMTEgQEAKIAogI2lmbmRlZiBfX0JFT1NfXwogI2luY2x1ZGUgPG5ldGluZXQv dGNwLmg+Ci0jaWZuZGVmIF9fT1MyX18KICNpbmNsdWRlIDxhcnBhL2luZXQuaD4KLSNlbmRp ZgogI2Vsc2UKICNpbmNsdWRlIDxzb2NrZXQuaD4KICNlbmRpZgogCi0jaWYgZGVmaW5lZChf X0VNWF9fKSB8fCBkZWZpbmVkIChfX09TMl9fKQotI2luY2x1ZGUgPHN5cy9zZWxlY3QuaD4g IC8qIE9TLzIvRU1YIG5lZWRzIGEgbGl0dGxlIGhlbHAgd2l0aCBzZWxlY3QgKi8KLSNpZmRl ZiBfX09TMl9fCi0jaW5jbHVkZSA8bmVycm5vLmg+Ci0jZW5kaWYKLSNlbmRpZgotCiAjZW5k aWYKIAogI2lmZGVmIEhBVkVfUE9MTApAQCAtMjEzLDcgKzIwMiw3IEBAIHN0YXRpYyBqYl9z b2NrZXQgcmZjMjU1M19jb25uZWN0X3RvKGNvbnN0IGNoYXIgKmhvc3QsIGludCBwb3J0bnVt LCBzdHJ1Y3QgY2xpZW50CiAgICBmZF9zZXQgd2ZkczsKICAgIHN0cnVjdCB0aW1ldmFsIHRp bWVvdXQ7CiAjZW5kaWYKLSNpZiAhZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fQkVP U19fKSAmJiAhZGVmaW5lZChfX09TMl9fKQorI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgIWRl ZmluZWQoX19CRU9TX18pCiAgICBpbnQgICBmbGFnczsKICNlbmRpZgogICAgaW50IGNvbm5l Y3RfZmFpbGVkOwpAQCAtMjcxLDExICsyNjAsNyBAQCBzdGF0aWMgamJfc29ja2V0IHJmYzI1 NTNfY29ubmVjdF90byhjb25zdCBjaGFyICpob3N0LCBpbnQgcG9ydG51bSwgc3RydWN0IGNs aWVudAogCiAgICAgICBpZiAoYmxvY2tfYWNsKGRzdCwgY3NwKSkKICAgICAgIHsKLSNpZmRl ZiBfX09TMl9fCi0gICAgICAgICBzb2NrZXRfZXJyb3IgPSBlcnJubyA9IFNPQ0VQRVJNOwot I2Vsc2UKICAgICAgICAgIHNvY2tldF9lcnJvciA9IGVycm5vID0gRVBFUk07Ci0jZW5kaWYK ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQogI2VuZGlmIC8qIGRlZiBGRUFUVVJFX0FD TCAqLwpAQCAtMzIwLDI2ICszMDUsMjIgQEAgc3RhdGljIGpiX3NvY2tldCByZmMyNTUzX2Nv bm5lY3RfdG8oY29uc3QgY2hhciAqaG9zdCwgaW50IHBvcnRudW0sIHN0cnVjdCBjbGllbnQK IAogICAgICAgc2V0X25vX2RlbGF5X2ZsYWcoZmQpOwogCi0jaWYgIWRlZmluZWQoX1dJTjMy KSAmJiAhZGVmaW5lZChfX0JFT1NfXykgJiYgIWRlZmluZWQoX19PUzJfXykKKyNpZiAhZGVm aW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fQkVPU19fKQogICAgICAgaWYgKChmbGFncyA9 IGZjbnRsKGZkLCBGX0dFVEZMLCAwKSkgIT0gLTEpCiAgICAgICB7CiAgICAgICAgICBmbGFn cyB8PSBPX05ERUxBWTsKICAgICAgICAgIGZjbnRsKGZkLCBGX1NFVEZMLCBmbGFncyk7CiAg ICAgICB9Ci0jZW5kaWYgLyogIWRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX0JFT1Nf XykgJiYgIWRlZmluZWQoX19PUzJfXykgKi8KKyNlbmRpZiAvKiAhZGVmaW5lZChfV0lOMzIp ICYmICFkZWZpbmVkKF9fQkVPU19fKSAqLwogCiAgICAgICBjb25uZWN0X2ZhaWxlZCA9IDA7 CiAgICAgICB3aGlsZSAoY29ubmVjdChmZCwgcnAtPmFpX2FkZHIsIHJwLT5haV9hZGRybGVu KSA9PSBKQl9JTlZBTElEX1NPQ0tFVCkKICAgICAgIHsKLSNpZmRlZiBfX09TMl9fCi0gICAg ICAgICBlcnJubyA9IHNvY2tfZXJybm8oKTsKLSNlbmRpZiAvKiBfX09TMl9fICovCi0KICNp ZmRlZiBfV0lOMzIKICAgICAgICAgIGlmIChlcnJubyA9PSBXU0FFSU5QUk9HUkVTUykKICNl bHNlIC8qIGlmbmRlZiBfV0lOMzIgKi8KICAgICAgICAgIGlmIChlcnJubyA9PSBFSU5QUk9H UkVTUykKLSNlbmRpZiAvKiBuZGVmIF9XSU4zMiB8fCBfX09TMl9fICovCisjZW5kaWYgLyog bmRlZiBfV0lOMzIgKi8KICAgICAgICAgIHsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICAgfQpAQCAtMzU3LDEzICszMzgsMTMgQEAgc3RhdGljIGpiX3NvY2tldCByZmMyNTUzX2Nv bm5lY3RfdG8oY29uc3QgY2hhciAqaG9zdCwgaW50IHBvcnRudW0sIHN0cnVjdCBjbGllbnQK ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgfQogCi0jaWYgIWRlZmluZWQoX1dJTjMyKSAm JiAhZGVmaW5lZChfX0JFT1NfXykgJiYgIWRlZmluZWQoX19PUzJfXykKKyNpZiAhZGVmaW5l ZChfV0lOMzIpICYmICFkZWZpbmVkKF9fQkVPU19fKQogICAgICAgaWYgKGZsYWdzICE9IC0x KQogICAgICAgewogICAgICAgICAgZmxhZ3MgJj0gfk9fTkRFTEFZOwogICAgICAgICAgZmNu dGwoZmQsIEZfU0VURkwsIGZsYWdzKTsKICAgICAgIH0KLSNlbmRpZiAvKiAhZGVmaW5lZChf V0lOMzIpICYmICFkZWZpbmVkKF9fQkVPU19fKSAmJiAhZGVmaW5lZChfX09TMl9fKSAqLwor I2VuZGlmIC8qICFkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19CRU9TX18pICovCiAK ICNpZmRlZiBIQVZFX1BPTEwKICAgICAgIHBvbGxfZmRbMF0uZmQgPSBmZDsKQEAgLTQ2NCw3 ICs0NDUsNyBAQCBzdGF0aWMgamJfc29ja2V0IG5vX3JmYzI1NTNfY29ubmVjdF90byhjb25z dCBjaGFyICpob3N0LCBpbnQgcG9ydG51bSwgc3RydWN0IGNsaQogICAgZmRfc2V0IHdmZHM7 CiAgICBzdHJ1Y3QgdGltZXZhbCB0dlsxXTsKICNlbmRpZgotI2lmICFkZWZpbmVkKF9XSU4z MikgJiYgIWRlZmluZWQoX19CRU9TX18pICYmICFkZWZpbmVkKF9fT1MyX18pCisjaWYgIWRl ZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX0JFT1NfXykKICAgIGludCAgIGZsYWdzOwog I2VuZGlmCiAKQEAgLTQ4OSwxMSArNDcwLDcgQEAgc3RhdGljIGpiX3NvY2tldCBub19yZmMy NTUzX2Nvbm5lY3RfdG8oY29uc3QgY2hhciAqaG9zdCwgaW50IHBvcnRudW0sIHN0cnVjdCBj bGkKIAogICAgaWYgKGJsb2NrX2FjbChkc3QsIGNzcCkpCiAgICB7Ci0jaWZkZWYgX19PUzJf XwotICAgICAgZXJybm8gPSBTT0NFUEVSTTsKLSNlbHNlCiAgICAgICBlcnJubyA9IEVQRVJN OwotI2VuZGlmCiAgICAgICByZXR1cm4oSkJfSU5WQUxJRF9TT0NLRVQpOwogICAgfQogI2Vu ZGlmIC8qIGRlZiBGRUFUVVJFX0FDTCAqLwpAQCAtNTQwLDcgKzUxNyw3IEBAIHN0YXRpYyBq Yl9zb2NrZXQgbm9fcmZjMjU1M19jb25uZWN0X3RvKGNvbnN0IGNoYXIgKmhvc3QsIGludCBw b3J0bnVtLCBzdHJ1Y3QgY2xpCiAKICAgIHNldF9ub19kZWxheV9mbGFnKGZkKTsKIAotI2lm ICFkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19CRU9TX18pICYmICFkZWZpbmVkKF9f T1MyX18pCisjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX0JFT1NfXykKICAg IGlmICgoZmxhZ3MgPSBmY250bChmZCwgRl9HRVRGTCwgMCkpICE9IC0xKQogICAgewogICAg ICAgZmxhZ3MgfD0gT19OREVMQVk7CkBAIC01NDksMzkgKzUyNiwzMyBAQCBzdGF0aWMgamJf c29ja2V0IG5vX3JmYzI1NTNfY29ubmVjdF90byhjb25zdCBjaGFyICpob3N0LCBpbnQgcG9y dG51bSwgc3RydWN0IGNsaQogICAgICAgbWFya19zb2NrZXRfZm9yX2Nsb3NlX29uX2V4ZWN1 dGUoZmQpOwogI2VuZGlmCiAgICB9Ci0jZW5kaWYgLyogIWRlZmluZWQoX1dJTjMyKSAmJiAh ZGVmaW5lZChfX0JFT1NfXykgJiYgIWRlZmluZWQoX19PUzJfXykgKi8KKyNlbmRpZiAvKiAh ZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fQkVPU19fKSAqLwogCiAgICB3aGlsZSAo Y29ubmVjdChmZCwgKHN0cnVjdCBzb2NrYWRkciAqKSAmIGluYWRkciwgc2l6ZW9mIGluYWRk cikgPT0gSkJfSU5WQUxJRF9TT0NLRVQpCiAgICB7CiAjaWZkZWYgX1dJTjMyCiAgICAgICBp ZiAoZXJybm8gPT0gV1NBRUlOUFJPR1JFU1MpCi0jZWxpZiBfX09TMl9fCi0gICAgICBpZiAo c29ja19lcnJubygpID09IEVJTlBST0dSRVNTKQogI2Vsc2UgLyogaWZuZGVmIF9XSU4zMiAq LwogICAgICAgaWYgKGVycm5vID09IEVJTlBST0dSRVNTKQotI2VuZGlmIC8qIG5kZWYgX1dJ TjMyIHx8IF9fT1MyX18gKi8KKyNlbmRpZiAvKiBuZGVmIF9XSU4zMiAqLwogICAgICAgewog ICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAKLSNpZmRlZiBfX09TMl9fCi0gICAgICBpZiAo c29ja19lcnJubygpICE9IEVJTlRSKQotI2Vsc2UKICAgICAgIGlmIChlcnJubyAhPSBFSU5U UikKLSNlbmRpZiAvKiBfX09TMl9fICovCiAgICAgICB7CiAgICAgICAgICBjbG9zZV9zb2Nr ZXQoZmQpOwogICAgICAgICAgcmV0dXJuKEpCX0lOVkFMSURfU09DS0VUKTsKICAgICAgIH0K ICAgIH0KIAotI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19CRU9TX18pICYm ICFkZWZpbmVkKF9fT1MyX18pCisjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChf X0JFT1NfXykKICAgIGlmIChmbGFncyAhPSAtMSkKICAgIHsKICAgICAgIGZsYWdzICY9IH5P X05ERUxBWTsKICAgICAgIGZjbnRsKGZkLCBGX1NFVEZMLCBmbGFncyk7CiAgICB9Ci0jZW5k aWYgLyogIWRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChfX0JFT1NfXykgJiYgIWRlZmlu ZWQoX19PUzJfXykgKi8KKyNlbmRpZiAvKiAhZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVk KF9fQkVPU19fKSAqLwogCiAjaWZkZWYgSEFWRV9QT0xMCiAgICBwb2xsX2ZkWzBdLmZkID0g ZmQ7CkBAIC02NDUsMjcgKzYxNiw2IEBAIGludCB3cml0ZV9zb2NrZXQoamJfc29ja2V0IGZk LCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBsZW4pCiAgICByZXR1cm4gKHNlbmQoZmQsIGJ1 ZiwgKGludClsZW4sIDApICE9IChpbnQpbGVuKTsKICNlbGlmIGRlZmluZWQoX19CRU9TX18p CiAgICByZXR1cm4gKHNlbmQoZmQsIGJ1ZiwgbGVuLCAwKSAhPSBsZW4pOwotI2VsaWYgZGVm aW5lZChfX09TMl9fKQotICAgLyoKLSAgICAqIEJyZWFrIHRoZSBkYXRhIHVwIGludG8gU09D S0VUX1NFTkRfTUFYIGNodW5rcyBmb3Igc2VuZGluZy4uLgotICAgICogT1MvMiBzZWVtZWQg dG8gY29tcGxhaW4gd2hlbiB0aGUgY2h1bmtzIHdlcmUgdG9vIGxhcmdlLgotICAgICovCi0j ZGVmaW5lIFNPQ0tFVF9TRU5EX01BWCA2NTAwMAotICAgewotICAgICAgaW50IHNlbmRfbGVu LCBzZW5kX3JjID0gMCwgaSA9IDA7Ci0gICAgICB3aGlsZSAoKGkgPCBsZW4pICYmIChzZW5k X3JjICE9IC0xKSkKLSAgICAgIHsKLSAgICAgICAgIGlmICgoaSArIFNPQ0tFVF9TRU5EX01B WCkgPiBsZW4pCi0gICAgICAgICAgICBzZW5kX2xlbiA9IGxlbiAtIGk7Ci0gICAgICAgICBl bHNlCi0gICAgICAgICAgICBzZW5kX2xlbiA9IFNPQ0tFVF9TRU5EX01BWDsKLSAgICAgICAg IHNlbmRfcmMgPSBzZW5kKGZkLChjaGFyKilidWYgKyBpLCBzZW5kX2xlbiwgMCk7Ci0gICAg ICAgICBpZiAoc2VuZF9yYyA9PSAtMSkKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAg ICAgaSA9IGkgKyBzZW5kX2xlbjsKLSAgICAgIH0KLSAgICAgIHJldHVybiAwOwotICAgfQog I2Vsc2UKICAgIHJldHVybiAod3JpdGUoZmQsIGJ1ZiwgbGVuKSAhPSBsZW4pOwogI2VuZGlm CkBAIC03NjMsNyArNzEzLDcgQEAgaW50IHJlYWRfc29ja2V0KGpiX3NvY2tldCBmZCwgY2hh ciAqYnVmLCBpbnQgbGVuKQogCiAjaWYgZGVmaW5lZChfV0lOMzIpCiAgICByZXQgPSByZWN2 KGZkLCBidWYsIGxlbiwgMCk7Ci0jZWxpZiBkZWZpbmVkKF9fQkVPU19fKSB8fCBkZWZpbmVk KF9fT1MyX18pCisjZWxpZiBkZWZpbmVkKF9fQkVPU19fKQogICAgcmV0ID0gcmVjdihmZCwg YnVmLCAoc2l6ZV90KWxlbiwgMCk7CiAjZWxzZQogICAgcmV0ID0gKGludClyZWFkKGZkLCBi dWYsIChzaXplX3QpbGVuKTsKQEAgLTgxMCwxMiArNzYwLDcgQEAgaW50IGRhdGFfaXNfYXZh aWxhYmxlKGpiX3NvY2tldCBmZCwgaW50IHNlY29uZHNfdG9fd2FpdCkKICAgIG1lbXNldCgm dGltZW91dCwgMCwgc2l6ZW9mKHRpbWVvdXQpKTsKICAgIHRpbWVvdXQudHZfc2VjID0gc2Vj b25kc190b193YWl0OwogCi0jaWZkZWYgX19PUzJfXwotICAgLyogQ29weSBhbmQgcGFzdGVk IGZyb20gamNjLmMgLi4uICovCi0gICBtZW1zZXQoJnJmZHMsIDAsIHNpemVvZihmZF9zZXQp KTsKLSNlbHNlCiAgICBGRF9aRVJPKCZyZmRzKTsKLSNlbmRpZgogICAgRkRfU0VUKGZkLCAm cmZkcyk7CiAKICAgIG4gPSBzZWxlY3QoZmQrMSwgJnJmZHMsIE5VTEwsIE5VTEwsICZ0aW1l b3V0KTsKQEAgLTg0NCw4ICs3ODksNiBAQCB2b2lkIGNsb3NlX3NvY2tldChqYl9zb2NrZXQg ZmQpCiB7CiAjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19CRU9TX18pCiAgICBj bG9zZXNvY2tldChmZCk7Ci0jZWxpZiBkZWZpbmVkKF9fT1MyX18pCi0gICBzb2Nsb3NlKGZk KTsKICNlbHNlCiAgICBjbG9zZShmZCk7CiAjZW5kaWYKQEAgLTExNzAsNyArMTExMyw3IEBA IHZvaWQgZ2V0X2hvc3RfaW5mb3JtYXRpb24oamJfc29ja2V0IGFmZCwgY2hhciAqKmlwX2Fk ZHJlc3MsIGNoYXIgKipwb3J0LAogICAgc3RydWN0IHNvY2thZGRyX2luIHNlcnZlcjsKICAg IHN0cnVjdCBob3N0ZW50ICpob3N0ID0gTlVMTDsKICNlbmRpZiAvKiBIQVZFX1JGQzI1NTMg Ki8KLSNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX09TMl9fKQorI2lmIGRlZmlu ZWQoX1dJTjMyKQogICAgLyogYWNjb3JkaW5nIHRvIGFjY2VwdF9jb25uZWN0aW9uKCkgdGhp cyBmaXhlcyBhIHdhcm5pbmcuICovCiAgICBpbnQgc19sZW5ndGgsIHNfbGVuZ3RoX3Byb3Zp ZGVkOwogI2Vsc2UKQEAgLTEzMjIsNyArMTI2NSw3IEBAIGludCBhY2NlcHRfY29ubmVjdGlv bihzdHJ1Y3QgY2xpZW50X3N0YXRlICogY3NwLCBqYl9zb2NrZXQgZmRzW10pCiAgICBzdHJ1 Y3Qgc29ja2FkZHJfaW4gY2xpZW50OwogI2VuZGlmCiAgICBqYl9zb2NrZXQgYWZkOwotI2lm IGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fT1MyX18pCisjaWYgZGVmaW5lZChfV0lO MzIpCiAgICAvKiBXZWlyZG5lc3MgLSBmaXggYSB3YXJuaW5nLiAqLwogICAgaW50IGNfbGVu Z3RoOwogI2Vsc2UKZGlmZiAtLWdpdCBhL2pjYy5jIGIvamNjLmMKaW5kZXggZWM0OTJlZjYu LjRkYjIxN2YyIDEwMDY0NAotLS0gYS9qY2MuYworKysgYi9qY2MuYwpAQCAtNjIsMTAgKzYy LDggQEAKIAogI2Vsc2UgLyogaWZuZGVmIF9XSU4zMiAqLwogCi0jIGlmICFkZWZpbmVkIChf X09TMl9fKQogIyBpbmNsdWRlIDx1bmlzdGQuaD4KICMgaW5jbHVkZSA8c3lzL3dhaXQuaD4K LSMgZW5kaWYgLyogbmRlZiBfX09TMl9fICovCiAjIGluY2x1ZGUgPHN5cy90aW1lLmg+CiAj IGluY2x1ZGUgPHN5cy9zdGF0Lmg+CiAjIGluY2x1ZGUgPHN5cy9pb2N0bC5oPgpAQCAtODYs MTQgKzg0LDYgQEAKICMgIGluY2x1ZGUgPE9TLmg+ICAgICAgLyogZGVjbGFyYXRpb25zIGZv ciB0aHJlYWRzIGFuZCBzdHVmZi4gKi8KICMgZW5kaWYKIAotIyBpZiBkZWZpbmVkKF9fRU1Y X18pIHx8IGRlZmluZWQoX19PUzJfXykKLSMgIGluY2x1ZGUgPHN5cy9zZWxlY3QuaD4gIC8q IE9TLzIvRU1YIG5lZWRzIGEgbGl0dGxlIGhlbHAgd2l0aCBzZWxlY3QgKi8KLSMgZW5kaWYK LSMgaWZkZWYgX19PUzJfXwotI2RlZmluZSBJTkNMX0RPUwotIyBpbmNsdWRlIDxvczIuaD4K LSMgZW5kaWYKLQogI2lmZGVmIEhBVkVfUE9MTAogI2lmZGVmIF9fR0xJQkNfXwogI2luY2x1 ZGUgPHN5cy9wb2xsLmg+CkBAIC0xNDMsNyArMTMzLDcgQEAgaW50IHVybHNfcmVqZWN0ZWQg PSAwOyAgICAgLyogdG90YWwgbnIgb2YgdXJscyByZWplY3RlZCAqLwogaW50IGdfdGVybWlu YXRlID0gMDsKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAhZGVmaW5lZChf X09TMl9fKQorI2lmICFkZWZpbmVkKF9XSU4zMikKIHN0YXRpYyB2b2lkIHNpZ19oYW5kbGVy KGludCB0aGVfc2lnbmFsKTsKICNlbmRpZgogc3RhdGljIGludCBjbGllbnRfcHJvdG9jb2xf aXNfdW5zdXBwb3J0ZWQoc3RydWN0IGNsaWVudF9zdGF0ZSAqY3NwLCBjaGFyICpyZXEpOwpA QCAtMTc3LDEwICsxNjcsNiBAQCBzdGF0aWMgaW50MzIgc2VydmVyX3RocmVhZCh2b2lkICpk YXRhKTsKICNkZWZpbmUgc2xlZXAoTikgIFNsZWVwKCgoTikgKiAxMDAwKSkKICNlbmRpZgog Ci0jaWZkZWYgX19PUzJfXwotI2RlZmluZSBzbGVlcChOKSAgRG9zU2xlZXAoKChOKSAqIDEw MCkpCi0jZW5kaWYKLQogI2lmZGVmIEZVWloKIGludCBwcm9jZXNzX2Z1enplZF9pbnB1dChj aGFyICpmdXp6X2lucHV0X3R5cGUsIGNoYXIgKmZ1enpfaW5wdXRfZmlsZSk7CiB2b2lkIHNo b3dfZnV6el91c2FnZShjb25zdCBjaGFyICpuYW1lKTsKQEAgLTM0Nyw3ICszMzMsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGNydW5jaGVyIGNydW5jaGVyc19saWdodFtdID0gewogICoK ICAqIGhlcmU/CiAgKi8KLSNpZiAhZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fT1My X18pCisjaWYgIWRlZmluZWQoX1dJTjMyKQogLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEZ1 bmN0aW9uICAgIDogIHNpZ19oYW5kbGVyCkBAIC0yNjMxLDE1ICsyNjE3LDcgQEAgc3RhdGlj IHZvaWQgaGFuZGxlX2VzdGFibGlzaGVkX2Nvbm5lY3Rpb24oc3RydWN0IGNsaWVudF9zdGF0 ZSAqY3NwKQogICAgZm9yICg7OykKICAgIHsKICNpZm5kZWYgSEFWRV9QT0xMCi0jaWZkZWYg X19PUzJfXwotICAgICAgLyoKLSAgICAgICAqIEZEX1pFUk8gaGVyZSBzZWVtcyB0byBwb2lu dCB0byBhbiBlcnJhbnQgbWFjcm8gd2hpY2ggY3Jhc2hlcy4KLSAgICAgICAqIFNvIGRvIHRo aXMgYnkgaGFuZCBmb3Igbm93Li4uCi0gICAgICAgKi8KLSAgICAgIG1lbXNldCgmcmZkcyww eDAwLHNpemVvZihmZF9zZXQpKTsKLSNlbHNlCiAgICAgICBGRF9aRVJPKCZyZmRzKTsKLSNl bmRpZgogI2lmZGVmIEZFQVRVUkVfQ09OTkVDVElPTl9LRUVQX0FMSVZFCiAgICAgICBpZiAo IXdhdGNoX2NsaWVudF9zb2NrZXQpCiAgICAgICB7CkBAIC01MDEyLDcgKzQ5OTAsNyBAQCBp bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgKiBhcmUgaGFuZGxlZCB3aGVu IGFuZCB3aGVyZSB0aGV5IG9jY3VyIHdpdGhvdXQgcmVseWluZwogICAgICogb24gYSBzaWdu YWwuCiAgICAgKi8KLSNpZiAhZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fT1MyX18p CisjaWYgIWRlZmluZWQoX1dJTjMyKQogewogICAgaW50IGlkeDsKICAgIGNvbnN0IGludCBj YXRjaGVkX3NpZ25hbHNbXSA9IHsgU0lHVEVSTSwgU0lHSU5ULCBTSUdIVVAgfTsKQEAgLTU0 NzQsNyArNTQ1Miw3IEBAIHN0YXRpYyB2b2lkIGxpc3Rlbl9sb29wKHZvaWQpCiAgICBmb3Ig KDs7KQogI2VuZGlmCiAgICB7Ci0jaWYgIWRlZmluZWQoRkVBVFVSRV9QVEhSRUFEKSAmJiAh ZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fQkVPU19fKSAmJiAhZGVmaW5lZChfX09T Ml9fKQorI2lmICFkZWZpbmVkKEZFQVRVUkVfUFRIUkVBRCkgJiYgIWRlZmluZWQoX1dJTjMy KSAmJiAhZGVmaW5lZChfX0JFT1NfXykKICAgICAgIHdoaWxlICh3YWl0cGlkKC0xLCBOVUxM LCBXTk9IQU5HKSA+IDApCiAgICAgICB7CiAgICAgICAgICAvKiB6b21iaWUgY2hpbGRyZW4g Ki8KQEAgLTU2MTksMTUgKzU1OTcsNiBAQCBzdGF0aWMgdm9pZCBsaXN0ZW5fbG9vcCh2b2lk KQogICAgICAgICAgICAgY3NwKTsKICNlbmRpZgogCi0jaWYgZGVmaW5lZChfX09TMl9fKSAm JiAhZGVmaW5lZChTRUxFQ1RFRF9PTkVfT1BUSU9OKQotI2RlZmluZSBTRUxFQ1RFRF9PTkVf T1BUSU9OCi0gICAgICAgICBjaGlsZF9pZCA9IF9iZWdpbnRocmVhZCgKLSAgICAgICAgICAg ICh2b2lkKCogX09wdGxpbmspKHZvaWQqKSlzZXJ2ZSwKLSAgICAgICAgICAgIE5VTEwsCi0g ICAgICAgICAgICA2NCAqIDEwMjQsCi0gICAgICAgICAgICBjc3ApOwotI2VuZGlmCi0KICNp ZiBkZWZpbmVkKF9fQkVPU19fKSAmJiAhZGVmaW5lZChTRUxFQ1RFRF9PTkVfT1BUSU9OKQog I2RlZmluZSBTRUxFQ1RFRF9PTkVfT1BUSU9OCiAgICAgICAgICB7CmRpZmYgLS1naXQgYS9s aXN0LmMgYi9saXN0LmMKaW5kZXggODliYjAxMDIuLmI5OTYzYWYxIDEwMDY0NAotLS0gYS9s aXN0LmMKKysrIGIvbGlzdC5jCkBAIC00NSw3ICs0NSw3IEBACiAjZW5kaWYKICNpbmNsdWRl IDxzdHJpbmcuaD4KIAotI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19PUzJf XykKKyNpZiAhZGVmaW5lZChfV0lOMzIpCiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYK IApkaWZmIC0tZ2l0IGEvbG9hZGNmZy5jIGIvbG9hZGNmZy5jCmluZGV4IDU1ODc0ZDU3Li41 MzlkMmIxYyAxMDA2NDQKLS0tIGEvbG9hZGNmZy5jCisrKyBiL2xvYWRjZmcuYwpAQCAtNjIs MTAgKzYyLDggQEAKIAogI2Vsc2UgLyogaWZuZGVmIF9XSU4zMiAqLwogCi0jaWZuZGVmIF9f T1MyX18KICMgaW5jbHVkZSA8dW5pc3RkLmg+CiAjIGluY2x1ZGUgPHN5cy93YWl0Lmg+Ci0j ZW5kaWYKICMgaW5jbHVkZSA8c3lzL3RpbWUuaD4KICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4K ICMgaW5jbHVkZSA8c2lnbmFsLmg+CkBAIC0xNDg4LDggKzE0ODYsNiBAQCBzdHJ1Y3QgY29u ZmlndXJhdGlvbl9zcGVjICogbG9hZF9jb25maWcodm9pZCkKICAgICAgICAgICAgICAqCiAg ICAgICAgICAgICAgKiBPbiBwbGF0Zm9ybXMgd2VyZSB3ZSB1c2UgcG9sbCgpIHdlIGRvbid0 IGhhdmUgdG8gZW5mb3JjZQogICAgICAgICAgICAgICogYW4gdXBwZXIgY29ubmVjdGlvbiBs aW1pdCBlaXRoZXIuCi0gICAgICAgICAgICAgKgotICAgICAgICAgICAgICogWFhYOiBEbyBP Uy8yIGV0Yy4gYmVsb25nIGhlcmUgYXMgd2VsbD8KICAgICAgICAgICAgICAqLwogICAgICAg ICAgICAgaWYgKG1heF9jbGllbnRfY29ubmVjdGlvbnMgPCAxKQogICAgICAgICAgICAgewpk aWZmIC0tZ2l0IGEvbG9hZGVycy5jIGIvbG9hZGVycy5jCmluZGV4IDNiZmNkZDI3Li42NTRh MWI5ZiAxMDA2NDQKLS0tIGEvbG9hZGVycy5jCisrKyBiL2xvYWRlcnMuYwpAQCAtNDYsNyAr NDYsNyBAQAogI2luY2x1ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAKLSNp ZiAhZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fT1MyX18pCisjaWYgIWRlZmluZWQo X1dJTjMyKQogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL21p c2N1dGlsLmMgYi9taXNjdXRpbC5jCmluZGV4IDQ4OGE3NzRiLi5jYmE1ODliZiAxMDA2NDQK LS0tIGEvbWlzY3V0aWwuYworKysgYi9taXNjdXRpbC5jCkBAIC00OCw5ICs0OCw5IEBACiAj aW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxz dGRsaWIuaD4KLSNpZiAhZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fT1MyX18pCisj aWYgIWRlZmluZWQoX1dJTjMyKQogI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2VuZGlmIC8qICNp ZiAhZGVmaW5lZChfV0lOMzIpICYmICFkZWZpbmVkKF9fT1MyX18pICovCisjZW5kaWYgLyog I2lmICFkZWZpbmVkKF9XSU4zMikgKi8KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRl IDxjdHlwZS5oPgogI2luY2x1ZGUgPGFzc2VydC5oPgpAQCAtNjQ3LDExICs2NDcsMTEgQEAg Y2hhciAqIG1ha2VfcGF0aChjb25zdCBjaGFyICogZGlyLCBjb25zdCBjaGFyICogZmlsZSkK ICAgIH0KIAogICAgaWYgKChkaXIgPT0gTlVMTCkgfHwgKCpkaXIgPT0gJ1wwJykgLyogTm8g ZGlyZWN0b3J5IHNwZWNpZmllZCAqLwotI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVk KF9fT1MyX18pCisjaWYgZGVmaW5lZChfV0lOMzIpCiAgICAgICB8fCAoKmZpbGUgPT0gJ1xc JykgfHwgKGZpbGVbMV0gPT0gJzonKSAvKiBBYnNvbHV0ZSBwYXRoIChET1MpICovCi0jZWxz ZSAvKiBpZm5kZWYgX1dJTjMyIHx8IF9fT1MyX18gKi8KKyNlbHNlIC8qIGlmbmRlZiBfV0lO MzIgKi8KICAgICAgIHx8ICgqZmlsZSA9PSAnLycpIC8qIEFic29sdXRlIHBhdGggKFUqaXgp ICovCi0jZW5kaWYgLyogaWZuZGVmIF9XSU4zMiB8fCBfX09TMl9fICAqLworI2VuZGlmIC8q IGlmbmRlZiBfV0lOMzIgKi8KICAgICAgICkKICAgIHsKICAgICAgIHJldHVybiBzdHJkdXAo ZmlsZSk7CkBAIC02ODMsMTcgKzY4MywxNyBAQCBjaGFyICogbWFrZV9wYXRoKGNvbnN0IGNo YXIgKiBkaXIsIGNvbnN0IGNoYXIgKiBmaWxlKQogICAgICAgfQogCiAgICAgICBhc3NlcnQo TlVMTCAhPSBwYXRoKTsKLSNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX09TMl9f KQorI2lmIGRlZmluZWQoX1dJTjMyKQogICAgICAgaWYgKHBhdGhbc3RybGVuKHBhdGgpLTFd ICE9ICdcXCcpCiAgICAgICB7CiAgICAgICAgICBzdHJsY2F0KHBhdGgsICJcXCIsIHBhdGhf c2l6ZSk7CiAgICAgICB9Ci0jZWxzZSAvKiBpZm5kZWYgX1dJTjMyIHx8IF9fT1MyX18gKi8K KyNlbHNlIC8qIGlmbmRlZiBfV0lOMzIgKi8KICAgICAgIGlmIChwYXRoW3N0cmxlbihwYXRo KS0xXSAhPSAnLycpCiAgICAgICB7CiAgICAgICAgICBzdHJsY2F0KHBhdGgsICIvIiwgcGF0 aF9zaXplKTsKICAgICAgIH0KLSNlbmRpZiAvKiBpZm5kZWYgX1dJTjMyIHx8IF9fT1MyX18g Ki8KKyNlbmRpZiAvKiBpZm5kZWYgX1dJTjMyICovCiAgICAgICBzdHJsY2F0KHBhdGgsIGZp bGUsIHBhdGhfc2l6ZSk7CiAKICAgICAgIHJldHVybiBwYXRoOwpAQCAtODQyLDEwICs4NDIs NiBAQCBpbnQgcHJpdm94eV9taWxsaXNsZWVwKHVuc2lnbmVkIG1pbGxpc2Vjb25kcykKICAg IFNsZWVwKG1pbGxpc2Vjb25kcyk7CiAKICAgIHJldHVybiAwOwotI2VsaWYgZGVmaW5lZChf X09TMl9fKQotICAgRG9zU2xlZXAobWlsbGlzZWNvbmRzICogMTApOwotCi0gICByZXR1cm4g MDsKICNlbHNlCiAjd2FybmluZyBNaXNzaW5nIHByaXZveHlfbWlsaXNsZWVwKCkgaW1wbGVt ZW50YXRpb24uIGRlbGF5LXJlc3BvbnNle30gd2lsbCBub3Qgd29yay4KIApkaWZmIC0tZ2l0 IGEvcGFyc2Vycy5jIGIvcGFyc2Vycy5jCmluZGV4IDliNGExMjk4Li5lYzNhZDcxZSAxMDA2 NDQKLS0tIGEvcGFyc2Vycy5jCisrKyBiL3BhcnNlcnMuYwpAQCAtNjgsNyArNjgsNyBAQAog I2luY2x1ZGUgPGJyb3RsaS9kZWNvZGUuaD4KICNlbmRpZgogCi0jaWYgIWRlZmluZWQoX1dJ TjMyKSAmJiAhZGVmaW5lZChfX09TMl9fKQorI2lmICFkZWZpbmVkKF9XSU4zMikKICNpbmNs dWRlIDx1bmlzdGQuaD4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9zc2xfY29tbW9uLmMgYi9z c2xfY29tbW9uLmMKaW5kZXggYWRkNjhhMjguLjZhZDU5MjQxIDEwMDY0NAotLS0gYS9zc2xf Y29tbW9uLmMKKysrIGIvc3NsX2NvbW1vbi5jCkBAIC00ODcsMTIgKzQ4NywxMiBAQCBleHRl cm4gY2hhciAqbWFrZV9jZXJ0c19wYXRoKGNvbnN0IGNoYXIgKmNvbmZfZGlyLCBjb25zdCBj aGFyICpmaWxlX25hbWUsCiAgICAgICArIHN0cmxlbihmaWxlX25hbWUpICsgc3RybGVuKHN1 ZmZpeCkgKyAyOwogCiAgICAvKiBTZXR0aW5nIGRlbGltaXRlciBhbmQgZWRpdGluZyBwYXRo IGxlbmd0aCAqLwotI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fT1MyX18pCisj aWYgZGVmaW5lZChfV0lOMzIpCiAgICBjaGFyIGRlbGltW10gPSAiXFwiOwogICAgcGF0aF9z aXplICs9IDE7Ci0jZWxzZSAvKiBpZm5kZWYgX1dJTjMyIHx8IF9fT1MyX18gKi8KKyNlbHNl IC8qIGlmbmRlZiBfV0lOMzIgKi8KICAgIGNoYXIgZGVsaW1bXSA9ICIvIjsKLSNlbmRpZiAv KiBpZm5kZWYgX1dJTjMyIHx8IF9fT1MyX18gKi8KKyNlbmRpZiAvKiBpZm5kZWYgX1dJTjMy ICovCiAKICAgIC8qCiAgICAgKiBCdWlsZGluZyB1cCBwYXRoIGZyb20gbWFueSBwYXJ0cwpk aWZmIC0tZ2l0IGEvdXJsbWF0Y2guYyBiL3VybG1hdGNoLmMKaW5kZXggYTAyODM2MWUuLjQ4 ODZlNGM0IDEwMDY0NAotLS0gYS91cmxtYXRjaC5jCisrKyBiL3VybG1hdGNoLmMKQEAgLTQ1 LDcgKzQ1LDcgQEAKICNpbmNsdWRlIDxhc3NlcnQuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4K IAotI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgIWRlZmluZWQoX19PUzJfXykKKyNpZiAhZGVm aW5lZChfV0lOMzIpCiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAotLSAKMi4xMS4w Cgo= --------------54E0AF7966BC6630B1C2436B Content-Type: application/x-patch; name="0002-Remove-OS-2-from-the-list-of-supported-platforms.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0002-Remove-OS-2-from-the-list-of-supported-platforms.patch" RnJvbSBiZmJjODVmN2I2MGQ4NTFmZWEwZjA0Zjc1YmU2YjIwMzBlNzBkNjU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGYWJpYW4gS2VpbCA8ZmtAZmFiaWFua2VpbC5kZT4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxNDo0MTo0MiArMDIwMApTdWJqZWN0OiBbUEFUQ0gg Mi83XSBSZW1vdmUgT1MvMiBmcm9tIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBwbGF0Zm9ybXMK Ci0tLQogZG9jL3NvdXJjZS9zdXBwb3J0ZWQuc2dtbCB8IDEgLQogMSBmaWxlIGNoYW5nZWQs IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kb2Mvc291cmNlL3N1cHBvcnRlZC5zZ21s IGIvZG9jL3NvdXJjZS9zdXBwb3J0ZWQuc2dtbAppbmRleCA1MWQ5NjBlMy4uMTZlNWVlMDAg MTAwNjQ0Ci0tLSBhL2RvYy9zb3VyY2Uvc3VwcG9ydGVkLnNnbWwKKysrIGIvZG9jL3NvdXJj ZS9zdXBwb3J0ZWQuc2dtbApAQCAtMjYsNyArMjYsNiBAQAogIFdpbmRvd3MgOTUgYW5kIGxh dGVyIHZlcnNpb25zICg5OCwgTUUsIDIwMDAsIFhQLCBWaXN0YSwgV2luZG93cyA3IGV0Yy4p LAogIEdOVS9MaW51eCAoUmVkSGF0LCBTdVNFLCBEZWJpYW4sIEZlZG9yYSwgR2VudG9vLCBT bGFja3dhcmUgYW5kIG90aGVycyksCiAgTWFjIE9TIFggKDEwLjQgYW5kIHVwd2FyZHMgb24g UFBDIGFuZCBJbnRlbCBwcm9jZXNzb3JzKSwKLSBPUy8yLAogIEhhaWt1LAogIERyYWdvbkZs eSwgRWxlY3Ryb0JTRCwgRnJlZUJTRCwgTmV0QlNELCBPcGVuQlNELAogIFNvbGFyaXMsCi0t IAoyLjExLjAKCg== --------------54E0AF7966BC6630B1C2436B Content-Type: application/x-patch; name="0003-Remove-OS-2-specific-stuff-from-the-user-manual.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0003-Remove-OS-2-specific-stuff-from-the-user-manual.patch" RnJvbSA5OWZmZTg1NTNjYzA4ZjM3ODRjZmNkNGUzY2ZiM2NmZWZiM2E0MTcxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGYWJpYW4gS2VpbCA8ZmtAZmFiaWFua2VpbC5kZT4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxNDo0MjowMiArMDIwMApTdWJqZWN0OiBbUEFUQ0gg My83XSBSZW1vdmUgT1MvMiBzcGVjaWZpYyBzdHVmZiBmcm9tIHRoZSB1c2VyIG1hbnVhbAoK LS0tCiBkb2Mvc291cmNlL3VzZXItbWFudWFsLnNnbWwgfCAzOSArKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zb3VyY2UvdXNlci1tYW51 YWwuc2dtbCBiL2RvYy9zb3VyY2UvdXNlci1tYW51YWwuc2dtbAppbmRleCAwYjA4NWFhNy4u YzIxNDdlMDIgMTAwNjQ0Ci0tLSBhL2RvYy9zb3VyY2UvdXNlci1tYW51YWwuc2dtbAorKysg Yi9kb2Mvc291cmNlL3VzZXItbWFudWFsLnNnbWwKQEAgLTIyOCwzMSArMjI4LDYgQEAgSG93 IHRvIGluc3RhbGwgdGhlIGJpbmFyeSBwYWNrYWdlcyBkZXBlbmRzIG9uIHlvdXIgb3BlcmF0 aW5nIHN5c3RlbToKIDwvc2VjdDM+CiAKIDwhLS0gICB+fn5+fiAgICAgICBOZXcgc2VjdGlv biAgICAgIH5+fn5+ICAgICAtLT4KLTxzZWN0MyBpZD0iaW5zdGFsbGF0aW9uLW9zMiI+PHRp dGxlPk9TLzI8L3RpdGxlPgotCi08cGFyYT4KLSBGaXJzdCwgbWFrZSBzdXJlIHRoYXQgbm8g cHJldmlvdXMgaW5zdGFsbGF0aW9ucyBvZgotIDxhcHBsaWNhdGlvbj5KdW5rYnVzdGVyPC9h cHBsaWNhdGlvbj4gYW5kIC8gb3IKLSA8YXBwbGljYXRpb24+UHJpdm94eTwvYXBwbGljYXRp b24+IGFyZSBsZWZ0IG9uIHlvdXIKLSBzeXN0ZW0uIENoZWNrIHRoYXQgbm8gPGFwcGxpY2F0 aW9uPkp1bmtidXN0ZXI8L2FwcGxpY2F0aW9uPgotIG9yIDxhcHBsaWNhdGlvbj5Qcml2b3h5 PC9hcHBsaWNhdGlvbj4gb2JqZWN0cyBhcmUgaW4KLSB5b3VyIHN0YXJ0dXAgZm9sZGVyLgot PC9wYXJhPgotCi08cGFyYT4KLSBUaGVuLCBqdXN0IGRvdWJsZS1jbGljayB0aGUgV2FycElO IHNlbGYtaW5zdGFsbGluZyBhcmNoaXZlLCB3aGljaCB3aWxsCi0gZ3VpZGUgeW91IHRocm91 Z2ggdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBBIHNoYWRvdyBvZiB0aGUKLSA8YXBwbGlj YXRpb24+UHJpdm94eTwvYXBwbGljYXRpb24+IGV4ZWN1dGFibGUgd2lsbCBiZSBwbGFjZWQg aW4geW91cgotIHN0YXJ0dXAgZm9sZGVyIHNvIGl0IHdpbGwgc3RhcnQgYXV0b21hdGljYWxs eSB3aGVuZXZlciBPUy8yIHN0YXJ0cy4KLTwvcGFyYT4KLQotPHBhcmE+Ci0gVGhlIGRpcmVj dG9yeSB5b3UgY2hvb3NlIHRvIGluc3RhbGwgPGFwcGxpY2F0aW9uPlByaXZveHk8L2FwcGxp Y2F0aW9uPgotIGludG8gd2lsbCBjb250YWluIGFsbCBvZiB0aGUgY29uZmlndXJhdGlvbiBm aWxlcy4KLTwvcGFyYT4KLTwvc2VjdDM+Ci0KLTwhLS0gICB+fn5+fiAgICAgICBOZXcgc2Vj dGlvbiAgICAgIH5+fn5+ICAgICAtLT4KIDxzZWN0MyBpZD0iaW5zdGFsbGF0aW9uLW1hYyI+ PHRpdGxlPk1hYyBPUyBYPC90aXRsZT4KIDxwYXJhPgogIEluc3RhbGxhdGlvbiBpbnN0cnVj dGlvbnMgZm9yIHRoZSBPUyBYIHBsYXRmb3JtIGRlcGVuZCB1cG9uIHdoZXRoZXIKQEAgLTEy MTgsMTYgKzExOTMsNiBAQCBFeGFtcGxlIFVuaXggc3RhcnR1cCBjb21tYW5kOgogPC9wYXJh PgogPC9zZWN0Mj4KIAotPHNlY3QyIGlkPSJzdGFydC1vczIiPgotPHRpdGxlPk9TLzI8L3Rp dGxlPgotPHBhcmE+Ci0gRHVyaW5nIGluc3RhbGxhdGlvbiwgPGFwcGxpY2F0aW9uPlByaXZv eHk8L2FwcGxpY2F0aW9uPiBpcyBjb25maWd1cmVkIHRvCi0gc3RhcnQgYXV0b21hdGljYWxs eSB3aGVuIHRoZSBzeXN0ZW0gcmVzdGFydHMuIFlvdSBjYW4gc3RhcnQgaXQgbWFudWFsbHkg YnkKLSBkb3VibGUtY2xpY2tpbmcgb24gdGhlIDxhcHBsaWNhdGlvbj5Qcml2b3h5PC9hcHBs aWNhdGlvbj4gaWNvbiBpbiB0aGUKLSA8YXBwbGljYXRpb24+UHJpdm94eTwvYXBwbGljYXRp b24+IGZvbGRlci4KLTwvcGFyYT4KLTwvc2VjdDI+Ci0KIDxzZWN0MiBpZD0ic3RhcnQtbWFj b3N4Ij4KIDx0aXRsZT5NYWMgT1MgWDwvdGl0bGU+CiA8cGFyYT4KQEAgLTE1NzcsNyArMTU0 Miw3IEBAIGZvciBkZXRhaWxzLgogPHRpdGxlPkNvbmZpZ3VyYXRpb24gRmlsZXMgT3ZlcnZp ZXc8L3RpdGxlPgogPHBhcmE+CiAgRm9yIFVuaXgsICpCU0QgYW5kIEdOVS9MaW51eCwgYWxs IGNvbmZpZ3VyYXRpb24gZmlsZXMgYXJlIGxvY2F0ZWQgaW4KLSA8ZmlsZW5hbWU+L2V0Yy9w cml2b3h5LzwvZmlsZW5hbWU+IGJ5IGRlZmF1bHQuIEZvciBNUyBXaW5kb3dzIGFuZCBPUy8y CisgPGZpbGVuYW1lPi9ldGMvcHJpdm94eS88L2ZpbGVuYW1lPiBieSBkZWZhdWx0LiBGb3Ig TVMgV2luZG93cwogIHRoZXNlIGFyZSBhbGwgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRo ZQogIDxhcHBsaWNhdGlvbj5Qcml2b3h5PC9hcHBsaWNhdGlvbj4gZXhlY3V0YWJsZS4gPCFb JXAtbm90LXN0YWJsZTtbIFRoZSBuYW1lCiAgYW5kIG51bWJlciBvZiBjb25maWd1cmF0aW9u IGZpbGVzIGhhcyBjaGFuZ2VkIGZyb20gcHJldmlvdXMgdmVyc2lvbnMsIGFuZCBpcwpAQCAt MTU5NSw3ICsxNTYwLDcgQEAgZm9yIGRldGFpbHMuCiAgIDxsaXN0aXRlbT4KICAgIDxwYXJh PgogICAgICBUaGUgPGxpbmsgbGlua2VuZD0iY29uZmlnIj5tYWluIGNvbmZpZ3VyYXRpb24g ZmlsZTwvbGluaz4gaXMgbmFtZWQgPGZpbGVuYW1lPmNvbmZpZzwvZmlsZW5hbWU+Ci0gICAg IG9uIEdOVS9MaW51eCwgVW5peCwgQlNELCBhbmQgT1MvMiwgYW5kIDxmaWxlbmFtZT5jb25m aWcudHh0PC9maWxlbmFtZT4KKyAgICAgb24gR05VL0xpbnV4LCBVbml4LCBCU0QsIGFuZCA8 ZmlsZW5hbWU+Y29uZmlnLnR4dDwvZmlsZW5hbWU+CiAgICAgIG9uIFdpbmRvd3MuIFRoaXMg aXMgYSByZXF1aXJlZCBmaWxlLgogICAgPC9wYXJhPgogICA8L2xpc3RpdGVtPgotLSAKMi4x MS4wCgo= --------------54E0AF7966BC6630B1C2436B Content-Type: application/x-patch; name="0004-Remove-OS-2-specific-stuff-from-the-developer-manual.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0004-Remove-OS-2-specific-stuff-from-the-developer-manual.pa"; filename*1="tch" RnJvbSA1NTE3MzhiMmU3Y2E5MWNmNjVhY2Y1ZjYwNTJiNWUyY2RlNDdlOTU3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGYWJpYW4gS2VpbCA8ZmtAZmFiaWFua2VpbC5kZT4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxNDo0MjoxMyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg NC83XSBSZW1vdmUgT1MvMiBzcGVjaWZpYyBzdHVmZiBmcm9tIHRoZSBkZXZlbG9wZXIgbWFu dWFsCgotLS0KIGRvYy9zb3VyY2UvZGV2ZWxvcGVyLW1hbnVhbC5zZ21sIHwgNDkgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ5 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zb3VyY2UvZGV2ZWxvcGVyLW1hbnVh bC5zZ21sIGIvZG9jL3NvdXJjZS9kZXZlbG9wZXItbWFudWFsLnNnbWwKaW5kZXggNmEwZTcy ZTguLmNkYmU0NTdlIDEwMDY0NAotLS0gYS9kb2Mvc291cmNlL2RldmVsb3Blci1tYW51YWwu c2dtbAorKysgYi9kb2Mvc291cmNlL2RldmVsb3Blci1tYW51YWwuc2dtbApAQCAtMjUzNiw1 NSArMjUzNiw2IEBAIGZvci1wcml2b3h5LXZlcnNpb249My4wLjExCiAgICAgICA8L3BhcmE+ CiAgICAgPC9zZWN0Mz4KIAotICAgIDxzZWN0MyBpZD0ibmV3cmVsZWFzZS1vczIiPjx0aXRs ZT5PUy8yPC90aXRsZT4KLSAgICAgIDxwYXJhPgotICAgICAgICBGaXJzdCwgPGVtcGhhc2lz Pm1ha2Ugc3VyZSB0aGF0IHlvdSBoYXZlIGZyZXNobHkgZXhwb3J0ZWQgdGhlIHJpZ2h0Ci0g ICAgICAgIHZlcnNpb24gaW50byBhbiBlbXB0eSBkaXJlY3Rvcnk8L2VtcGhhc2lzPi4gKFNl ZSAiQnVpbGRpbmcgYW5kIHJlbGVhc2luZwotICAgICAgICBwYWNrYWdlcyIgYWJvdmUpLiBU aGVuIGdldCB0aGUgT1MvMiBTZXR1cCBtb2R1bGU6Ci0gICAgICA8L3BhcmE+Ci0gICAgICAg IDxwcm9ncmFtbGlzdGluZz4KLSAgY3ZzIC16MyAtZDpwc2VydmVyOmFub255bW91c0BpamJz d2EuY3ZzLnNvdXJjZWZvcmdlLm5ldDovY3Zzcm9vdC9pamJzd2EgY28gb3Myc2V0dXAKLTwv cHJvZ3JhbWxpc3Rpbmc+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgWW91IHdpbGwgbmVlZCBh IG1peCBvZiBkZXZlbG9wbWVudCB0b29scy4KLSAgICAgICAgVGhlIG1haW4gY29tcGlsYXRp b24gdGFrZXMgcGxhY2Ugd2l0aCBJQk0gVmlzdWFsIEFnZSBDKysuCi0gICAgICAgIFNvbWUg YW5jaWxsYXJ5IHdvcmsgdGFrZXMgcGxhY2Ugd2l0aCBHTlUgdG9vbHMsIGF2YWlsYWJsZSBm cm9tCi0gICAgICAgIHZhcmlvdXMgc291cmNlcyBsaWtlIGhvYmJlcy5ubXN1LmVkdS4KLSAg ICAgICAgU3BlY2lmaWNhbGx5LCB5b3Ugd2lsbCBuZWVkIDxmaWxlbmFtZT5hdXRvaGVhZGVy PC9maWxlbmFtZT4sCi0gICAgICAgIDxmaWxlbmFtZT5hdXRvY29uZjwvZmlsZW5hbWU+IGFu ZCA8ZmlsZW5hbWU+c2g8L2ZpbGVuYW1lPiB0b29scy4KLSAgICAgICAgVGhlIHBhY2thZ2lu ZyB0YWtlcyBwbGFjZSB3aXRoIFdhcnBJTiwgYXZhaWxhYmxlIGZyb20gdmFyaW91cyBzb3Vy Y2VzLCBpbmNsdWRpbmcKLSAgICAgICAgaXRzIGhvbWUgcGFnZTogPHVsaW5rIHVybD0iaHR0 cDovL3d3dy54d29ya3BsYWNlLm9yZy8iPnh3b3JrcGxhY2U8L3VsaW5rPi4KLSAgICAgIDwv cGFyYT4KLSAgICAgIDxwYXJhPgotICAgICAgICBDaGFuZ2UgZGlyZWN0b3J5IHRvIHRoZSA8 ZmlsZW5hbWU+b3Myc2V0dXA8L2ZpbGVuYW1lPiBkaXJlY3RvcnkuCi0gICAgICAgIEVkaXQg dGhlIG9zMmJ1aWxkLmNtZCBmaWxlIHRvIHNldCB0aGUgZmluYWwgZXhlY3V0YWJsZSBmaWxl bmFtZS4KLSAgICAgICAgRm9yIGV4YW1wbGUsCi0gICAgICA8L3BhcmE+Ci0gICAgICAgIDxw cm9ncmFtbGlzdGluZz4KLSAgaW5zdGFsbEV4ZU5hbWU9J3ByaXZveHlvczJfc2V0dXBfWC5Z LlouZXhlJwotPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgIDxwYXJhPgotICAgICAgICBOZXh0 LCBlZGl0IHRoZSA8ZmlsZW5hbWU+SUpCLndpczwvZmlsZW5hbWU+IGZpbGUgc28gdGhlIHJl bGVhc2UgbnVtYmVyIG1hdGNoZXMKLSAgICAgICAgaW4gdGhlIDxmaWxlbmFtZT5QQUNLQUdF SUQ8L2ZpbGVuYW1lPiBzZWN0aW9uOgotICAgICAgPC9wYXJhPgotICAgICAgICA8cHJvZ3Jh bWxpc3Rpbmc+Ci0gIFBBQ0tBR0VJRD0iUHJpdm94eSBUZWFtXFByaXZveHlcUHJpdm94eSBQ YWNrYWdlXFhcWVxaIgotPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgIDxwYXJhPgotICAgICAg ICBZb3UncmUgbm93IHJlYWR5IHRvIGJ1aWxkLiAgUnVuOgotICAgICAgPC9wYXJhPgotICAg ICAgICA8cHJvZ3JhbWxpc3Rpbmc+Ci0gIG9zMmJ1aWxkCi08L3Byb2dyYW1saXN0aW5nPgot ICAgICAgPHBhcmE+Ci0gICAgICAgICBZb3Ugd2lsbCBmaW5kIHRoZSAgV2FycElOLWluc3Rh bGxhYmxlIGV4ZWN1dGFibGUgaW4gdGhlCi0gICAgICAgIDxmaWxlbmFtZT4uL2ZpbGVzPC9m aWxlbmFtZT4gZGlyZWN0b3J5LiBVcGxvYWQgdGhpcyBhbm9ueW1vdXNseSB0bwotICAgICAg ICAgPGZpbGVuYW1lPnVwbG9hZHMuc291cmNlZm9yZ2UubmV0L2luY29taW5nPC9maWxlbmFt ZT4sIGNyZWF0ZSBhIHJlbGVhc2UKLSAgICAgICAgIGZvciBpdCwgYW5kIHlvdSdyZSBkb25l LiBVc2UgdGhlIHJlbGVhc2Ugbm90ZXMgYW5kIENoYW5nZSBMb2cgZnJvbSB0aGUKLSAgICAg ICAgIHNvdXJjZSB0YXJiYWxsIHBhY2thZ2UuCi0gICAgICA8L3BhcmE+Ci0gICAgPC9zZWN0 Mz4KLQogICAgIDxzZWN0MyBpZD0ibmV3cmVsZWFzZS1zb2xhcmlzIj48dGl0bGU+U29sYXJp czwvdGl0bGU+CiAgICAgICA8cGFyYT4KICAgICAgICAgTG9naW4gdG8gU291cmNlZm9yZ2Un cyBjb21waWxlZmFybSB2aWEgc3NoOgotLSAKMi4xMS4wCgo= --------------54E0AF7966BC6630B1C2436B Content-Type: application/x-patch; name="0005-Remove-OS-2-from-the-PACKAGERS-list.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0005-Remove-OS-2-from-the-PACKAGERS-list.patch" RnJvbSBkYzEzZDU5NmU3NDQzNGNjNjdlZmZlOWQwZjVmZjQyMGMwMWUwODQ1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGYWJpYW4gS2VpbCA8ZmtAZmFiaWFua2VpbC5kZT4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxNDo0NDowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg NS83XSBSZW1vdmUgT1MvMiBmcm9tIHRoZSBQQUNLQUdFUlMgbGlzdAoKLS0tCiBQQUNLQUdF UlMgfCAxIC0KIDEgZmlsZSBjaGFuZ2VkLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv UEFDS0FHRVJTIGIvUEFDS0FHRVJTCmluZGV4IGMzNTczMWUzLi44Y2M1ZDFlZiAxMDA2NDQK LS0tIGEvUEFDS0FHRVJTCisrKyBiL1BBQ0tBR0VSUwpAQCAtMTAsNyArMTAsNiBAQCBSZXNw b25zaWJsZSBwZXJzb25zIGZvciByZWxlYXNpbmcgcGFja2FnZXMgYXJlIC4uLgogCiBEZWJp YW4gLi4uLi4uOiBSb2xhbmQgUm9zZW5mZWxkICA8cm9sYW5kQGRlYmlhbi5vcmc+ICAgICAg ICAgICAocm9ybykKIEZyZWVCU0QgLi4uLi46IEZhYmlhbiBLZWlsICAgICAgIDxma0BmYWJp YW5rZWlsLmRlPiAgICAgICAgICAgIChmYWJpYW5rZWlsKQotT1MvMiAuLi4uLi4uLjogRGF2 aWQgU2NobWlkdCAgICAgPGRhdmlkX19zY2htaWR0QHVzZXJzLnNmLm5ldD4gKGRhdmlkX19z Y2htaWR0KQogV2luZG93cyAuLi4uLjogTGVlIFJpYW4gICAgICAgICAgPGxlcjc2MkBnbWFp bC5jb20+ICAgICAgICAgICAgKGxlcjc2MikKIE9TIFggKHg4NikuLi46IElhbiBTaWx2ZXN0 ZXIgICAgIDxpYW5zaWx2ZXN0ZXJAZmFzdG1haWwuZm0+ICAgIChkaWVtKQogT1MgWCAoUFBD KS4uLjogVG9iaWFzIE5ldHplbCAgICAgPHRvYmlhcy5uZXR6ZWxAZ21haWwuY29tPiAgICAg KGludGVybmV0emVsKQotLSAKMi4xMS4wCgo= --------------54E0AF7966BC6630B1C2436B Content-Type: application/x-patch; name="0006-Regenerate-docs-after-removing-OS-2-specific-stuff.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0006-Regenerate-docs-after-removing-OS-2-specific-stuff.patc"; filename*1="h" RnJvbSA2NThmMTQ2ZWY5NzdkNzM2Yzg3OTA5ZGNlMDVjMmNlMmYwYWNkYzc3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGYWJpYW4gS2VpbCA8ZmtAZmFiaWFua2VpbC5kZT4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxNDo0NjozNSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg Ni83XSBSZWdlbmVyYXRlIGRvY3MgYWZ0ZXIgcmVtb3ZpbmcgT1MvMi1zcGVjaWZpYyBzdHVm ZgoKLS0tCiBkb2Mvd2Vic2VydmVyL2RldmVsb3Blci1tYW51YWwvaW5kZXguaHRtbCAgICAg IHwgMTEgKystLS0KIGRvYy93ZWJzZXJ2ZXIvZGV2ZWxvcGVyLW1hbnVhbC9uZXdyZWxlYXNl Lmh0bWwgfCA2NCArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZG9jL3dlYnNlcnZlci9m YXEvaW5zdGFsbGF0aW9uLmh0bWwgICAgICAgICAgICB8ICAyICstCiBkb2Mvd2Vic2VydmVy L3VzZXItbWFudWFsL2FjdGlvbnMtZmlsZS5odG1sICAgIHwgIDIgKy0KIGRvYy93ZWJzZXJ2 ZXIvdXNlci1tYW51YWwvYXBwZW5kaXguaHRtbCAgICAgICAgfCAxNiArKystLS0tCiBkb2Mv d2Vic2VydmVyL3VzZXItbWFudWFsL2NvbmZpZ3VyYXRpb24uaHRtbCAgIHwgMTEgKystLS0K IGRvYy93ZWJzZXJ2ZXIvdXNlci1tYW51YWwvaW5kZXguaHRtbCAgICAgICAgICAgfCAxNCAr KystLS0KIGRvYy93ZWJzZXJ2ZXIvdXNlci1tYW51YWwvaW5zdGFsbGF0aW9uLmh0bWwgICAg fCAyMCArKy0tLS0tLQogZG9jL3dlYnNlcnZlci91c2VyLW1hbnVhbC9xdWlja3N0YXJ0Lmh0 bWwgICAgICB8ICAyICstCiBkb2Mvd2Vic2VydmVyL3VzZXItbWFudWFsL3N0YXJ0dXAuaHRt bCAgICAgICAgIHwgMTQgKystLS0tCiAxMCBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25z KCspLCAxMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3dlYnNlcnZlci9kZXZl bG9wZXItbWFudWFsL2luZGV4Lmh0bWwgYi9kb2Mvd2Vic2VydmVyL2RldmVsb3Blci1tYW51 YWwvaW5kZXguaHRtbAppbmRleCBjZDg0NmJmMi4uYmE1ZDc0YWQgMTAwNjQ0Ci0tLSBhL2Rv Yy93ZWJzZXJ2ZXIvZGV2ZWxvcGVyLW1hbnVhbC9pbmRleC5odG1sCisrKyBiL2RvYy93ZWJz ZXJ2ZXIvZGV2ZWxvcGVyLW1hbnVhbC9pbmRleC5odG1sCkBAIC0xNTIsMTIgKzE1MiwxMSBA QAogICAgICAgICAgICAgICAgIDxkdD42LjMuMS4gPGEgaHJlZj0ibmV3cmVsZWFzZS5odG1s I1BBQ0stR1VJREVMSU5FUyI+Tm90ZSBvbiBQcml2b3h5IFBhY2thZ2luZzwvYT48L2R0Pgog ICAgICAgICAgICAgICAgIDxkdD42LjMuMi4gPGEgaHJlZj0ibmV3cmVsZWFzZS5odG1sI05F V1JFTEVBU0UtVEFSQkFMTCI+U291cmNlIFRhcmJhbGw8L2E+PC9kdD4KICAgICAgICAgICAg ICAgICA8ZHQ+Ni4zLjMuIDxhIGhyZWY9Im5ld3JlbGVhc2UuaHRtbCNORVdSRUxFQVNFLVJQ TSI+U3VTRSwgQ29uZWN0aXZhIG9yIFJlZCBIYXQgUlBNPC9hPjwvZHQ+Ci0gICAgICAgICAg ICAgICAgPGR0PjYuMy40LiA8YSBocmVmPSJuZXdyZWxlYXNlLmh0bWwjTkVXUkVMRUFTRS1P UzIiPk9TLzI8L2E+PC9kdD4KLSAgICAgICAgICAgICAgICA8ZHQ+Ni4zLjUuIDxhIGhyZWY9 Im5ld3JlbGVhc2UuaHRtbCNORVdSRUxFQVNFLVNPTEFSSVMiPlNvbGFyaXM8L2E+PC9kdD4K LSAgICAgICAgICAgICAgICA8ZHQ+Ni4zLjYuIDxhIGhyZWY9Im5ld3JlbGVhc2UuaHRtbCNO RVdSRUxFQVNFLVdJTkRPV1MiPldpbmRvd3M8L2E+PC9kdD4KLSAgICAgICAgICAgICAgICA8 ZHQ+Ni4zLjcuIDxhIGhyZWY9Im5ld3JlbGVhc2UuaHRtbCNORVdSRUxFQVNFLURFQklBTiI+ RGViaWFuPC9hPjwvZHQ+Ci0gICAgICAgICAgICAgICAgPGR0PjYuMy44LiA8YSBocmVmPSJu ZXdyZWxlYXNlLmh0bWwjTkVXUkVMRUFTRS1NQUNPU1giPk1hYyBPUyBYPC9hPjwvZHQ+Ci0g ICAgICAgICAgICAgICAgPGR0PjYuMy45LiA8YSBocmVmPSJuZXdyZWxlYXNlLmh0bWwjTkVX UkVMRUFTRS1GUkVFQlNEIj5GcmVlQlNEPC9hPjwvZHQ+CisgICAgICAgICAgICAgICAgPGR0 PjYuMy40LiA8YSBocmVmPSJuZXdyZWxlYXNlLmh0bWwjTkVXUkVMRUFTRS1TT0xBUklTIj5T b2xhcmlzPC9hPjwvZHQ+CisgICAgICAgICAgICAgICAgPGR0PjYuMy41LiA8YSBocmVmPSJu ZXdyZWxlYXNlLmh0bWwjTkVXUkVMRUFTRS1XSU5ET1dTIj5XaW5kb3dzPC9hPjwvZHQ+Cisg ICAgICAgICAgICAgICAgPGR0PjYuMy42LiA8YSBocmVmPSJuZXdyZWxlYXNlLmh0bWwjTkVX UkVMRUFTRS1ERUJJQU4iPkRlYmlhbjwvYT48L2R0PgorICAgICAgICAgICAgICAgIDxkdD42 LjMuNy4gPGEgaHJlZj0ibmV3cmVsZWFzZS5odG1sI05FV1JFTEVBU0UtTUFDT1NYIj5NYWMg T1MgWDwvYT48L2R0PgorICAgICAgICAgICAgICAgIDxkdD42LjMuOC4gPGEgaHJlZj0ibmV3 cmVsZWFzZS5odG1sI05FV1JFTEVBU0UtRlJFRUJTRCI+RnJlZUJTRDwvYT48L2R0PgogICAg ICAgICAgICAgICA8L2RsPgogICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgIDxkdD42 LjQuIDxhIGhyZWY9Im5ld3JlbGVhc2UuaHRtbCNSRUxFQVNJTkciPlVwbG9hZGluZyBhbmQg UmVsZWFzaW5nIFlvdXIgUGFja2FnZTwvYT48L2R0PgpkaWZmIC0tZ2l0IGEvZG9jL3dlYnNl cnZlci9kZXZlbG9wZXItbWFudWFsL25ld3JlbGVhc2UuaHRtbCBiL2RvYy93ZWJzZXJ2ZXIv ZGV2ZWxvcGVyLW1hbnVhbC9uZXdyZWxlYXNlLmh0bWwKaW5kZXggMGEwNzZjYTIuLmNkZjJm MDRkIDEwMDY0NAotLS0gYS9kb2Mvd2Vic2VydmVyL2RldmVsb3Blci1tYW51YWwvbmV3cmVs ZWFzZS5odG1sCisrKyBiL2RvYy93ZWJzZXJ2ZXIvZGV2ZWxvcGVyLW1hbnVhbC9uZXdyZWxl YXNlLmh0bWwKQEAgLTQyMSw1NSArNDIxLDcgQEAgZm9yLXByaXZveHktdmVyc2lvbj0zLjAu MTE8L3ByZT4KICAgICAgICAgdGhlIHNvdXJjZSB0YXJiYWxsIHBhY2thZ2UuPC9wPgogICAg ICAgPC9kaXY+CiAgICAgICA8ZGl2IGNsYXNzPSJTRUNUMyI+Ci0gICAgICAgIDxoMyBjbGFz cz0iU0VDVDMiPjxhIG5hbWU9Ik5FV1JFTEVBU0UtT1MyIiBpZD0iTkVXUkVMRUFTRS1PUzIi PjYuMy40LiBPUy8yPC9hPjwvaDM+Ci0gICAgICAgIDxwPkZpcnN0LCA8c3BhbiBjbGFzcz0i ZW1waGFzaXMiPjxpIGNsYXNzPSJFTVBIQVNJUyI+bWFrZSBzdXJlIHRoYXQgeW91IGhhdmUg ZnJlc2hseSBleHBvcnRlZCB0aGUgcmlnaHQgdmVyc2lvbgotICAgICAgICBpbnRvIGFuIGVt cHR5IGRpcmVjdG9yeTwvaT48L3NwYW4+LiAoU2VlICJCdWlsZGluZyBhbmQgcmVsZWFzaW5n IHBhY2thZ2VzIiBhYm92ZSkuIFRoZW4gZ2V0IHRoZSBPUy8yIFNldHVwCi0gICAgICAgIG1v ZHVsZTo8L3A+Ci0gICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGJnY29sb3I9IiNFMEUwRTAi IHdpZHRoPSIxMDAlIj4KLSAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICA8dGQ+Ci0gICAg ICAgICAgICAgIDxwcmUgY2xhc3M9Ci0gICAgICAgICAgICAgICJQUk9HUkFNTElTVElORyI+ ICBjdnMgLXozIC1kOnBzZXJ2ZXI6YW5vbnltb3VzQGlqYnN3YS5jdnMuc291cmNlZm9yZ2Uu bmV0Oi9jdnNyb290L2lqYnN3YSBjbyBvczJzZXR1cDwvcHJlPgotICAgICAgICAgICAgPC90 ZD4KLSAgICAgICAgICA8L3RyPgotICAgICAgICA8L3RhYmxlPgotICAgICAgICA8cD5Zb3Ug d2lsbCBuZWVkIGEgbWl4IG9mIGRldmVsb3BtZW50IHRvb2xzLiBUaGUgbWFpbiBjb21waWxh dGlvbiB0YWtlcyBwbGFjZSB3aXRoIElCTSBWaXN1YWwgQWdlIEMrKy4gU29tZQotICAgICAg ICBhbmNpbGxhcnkgd29yayB0YWtlcyBwbGFjZSB3aXRoIEdOVSB0b29scywgYXZhaWxhYmxl IGZyb20gdmFyaW91cyBzb3VyY2VzIGxpa2UgaG9iYmVzLm5tc3UuZWR1LiBTcGVjaWZpY2Fs bHksCi0gICAgICAgIHlvdSB3aWxsIG5lZWQgPHR0IGNsYXNzPSJGSUxFTkFNRSI+YXV0b2hl YWRlcjwvdHQ+LCA8dHQgY2xhc3M9IkZJTEVOQU1FIj5hdXRvY29uZjwvdHQ+IGFuZCA8dHQg Y2xhc3M9Ci0gICAgICAgICJGSUxFTkFNRSI+c2g8L3R0PiB0b29scy4gVGhlIHBhY2thZ2lu ZyB0YWtlcyBwbGFjZSB3aXRoIFdhcnBJTiwgYXZhaWxhYmxlIGZyb20gdmFyaW91cyBzb3Vy Y2VzLCBpbmNsdWRpbmcgaXRzCi0gICAgICAgIGhvbWUgcGFnZTogPGEgaHJlZj0iaHR0cDov L3d3dy54d29ya3BsYWNlLm9yZy8iIHRhcmdldD0iX3RvcCI+eHdvcmtwbGFjZTwvYT4uPC9w PgotICAgICAgICA8cD5DaGFuZ2UgZGlyZWN0b3J5IHRvIHRoZSA8dHQgY2xhc3M9IkZJTEVO QU1FIj5vczJzZXR1cDwvdHQ+IGRpcmVjdG9yeS4gRWRpdCB0aGUgb3MyYnVpbGQuY21kIGZp bGUgdG8gc2V0IHRoZQotICAgICAgICBmaW5hbCBleGVjdXRhYmxlIGZpbGVuYW1lLiBGb3Ig ZXhhbXBsZSw8L3A+Ci0gICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGJnY29sb3I9IiNFMEUw RTAiIHdpZHRoPSIxMDAlIj4KLSAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICA8dGQ+Ci0g ICAgICAgICAgICAgIDxwcmUgY2xhc3M9IlBST0dSQU1MSVNUSU5HIj4gIGluc3RhbGxFeGVO YW1lPSdwcml2b3h5b3MyX3NldHVwX1guWS5aLmV4ZSc8L3ByZT4KLSAgICAgICAgICAgIDwv dGQ+Ci0gICAgICAgICAgPC90cj4KLSAgICAgICAgPC90YWJsZT4KLSAgICAgICAgPHA+TmV4 dCwgZWRpdCB0aGUgPHR0IGNsYXNzPSJGSUxFTkFNRSI+SUpCLndpczwvdHQ+IGZpbGUgc28g dGhlIHJlbGVhc2UgbnVtYmVyIG1hdGNoZXMgaW4gdGhlIDx0dCBjbGFzcz0KLSAgICAgICAg IkZJTEVOQU1FIj5QQUNLQUdFSUQ8L3R0PiBzZWN0aW9uOjwvcD4KLSAgICAgICAgPHRhYmxl IGJvcmRlcj0iMCIgYmdjb2xvcj0iI0UwRTBFMCIgd2lkdGg9IjEwMCUiPgotICAgICAgICAg IDx0cj4KLSAgICAgICAgICAgIDx0ZD4KLSAgICAgICAgICAgICAgPHByZSBjbGFzcz0iUFJP R1JBTUxJU1RJTkciPiAgUEFDS0FHRUlEPSJQcml2b3h5IFRlYW1cUHJpdm94eVxQcml2b3h5 IFBhY2thZ2VcWFxZXFoiPC9wcmU+Ci0gICAgICAgICAgICA8L3RkPgotICAgICAgICAgIDwv dHI+Ci0gICAgICAgIDwvdGFibGU+Ci0gICAgICAgIDxwPllvdSdyZSBub3cgcmVhZHkgdG8g YnVpbGQuIFJ1bjo8L3A+Ci0gICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGJnY29sb3I9IiNF MEUwRTAiIHdpZHRoPSIxMDAlIj4KLSAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICA8dGQ+ Ci0gICAgICAgICAgICAgIDxwcmUgY2xhc3M9IlBST0dSQU1MSVNUSU5HIj4gIG9zMmJ1aWxk PC9wcmU+Ci0gICAgICAgICAgICA8L3RkPgotICAgICAgICAgIDwvdHI+Ci0gICAgICAgIDwv dGFibGU+Ci0gICAgICAgIDxwPllvdSB3aWxsIGZpbmQgdGhlIFdhcnBJTi1pbnN0YWxsYWJs ZSBleGVjdXRhYmxlIGluIHRoZSA8dHQgY2xhc3M9IkZJTEVOQU1FIj4uL2ZpbGVzPC90dD4g ZGlyZWN0b3J5LiBVcGxvYWQKLSAgICAgICAgdGhpcyBhbm9ueW1vdXNseSB0byA8dHQgY2xh c3M9IkZJTEVOQU1FIj51cGxvYWRzLnNvdXJjZWZvcmdlLm5ldC9pbmNvbWluZzwvdHQ+LCBj cmVhdGUgYSByZWxlYXNlIGZvciBpdCwgYW5kCi0gICAgICAgIHlvdSdyZSBkb25lLiBVc2Ug dGhlIHJlbGVhc2Ugbm90ZXMgYW5kIENoYW5nZSBMb2cgZnJvbSB0aGUgc291cmNlIHRhcmJh bGwgcGFja2FnZS48L3A+Ci0gICAgICA8L2Rpdj4KLSAgICAgIDxkaXYgY2xhc3M9IlNFQ1Qz Ij4KLSAgICAgICAgPGgzIGNsYXNzPSJTRUNUMyI+PGEgbmFtZT0iTkVXUkVMRUFTRS1TT0xB UklTIiBpZD0iTkVXUkVMRUFTRS1TT0xBUklTIj42LjMuNS4gU29sYXJpczwvYT48L2gzPgor ICAgICAgICA8aDMgY2xhc3M9IlNFQ1QzIj48YSBuYW1lPSJORVdSRUxFQVNFLVNPTEFSSVMi IGlkPSJORVdSRUxFQVNFLVNPTEFSSVMiPjYuMy40LiBTb2xhcmlzPC9hPjwvaDM+CiAgICAg ICAgIDxwPkxvZ2luIHRvIFNvdXJjZWZvcmdlJ3MgY29tcGlsZWZhcm0gdmlhIHNzaDo8L3A+ CiAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGJnY29sb3I9IiNFMEUwRTAiIHdpZHRoPSIx MDAlIj4KICAgICAgICAgICA8dHI+CkBAIC01MDIsNyArNDU0LDcgQEAgZm9yLXByaXZveHkt dmVyc2lvbj0zLjAuMTE8L3ByZT4KICAgICAgICAgcmVsZWFzZSB0aGUgZmlsZSBwdWJsaWNs eS4gVXNlIHRoZSByZWxlYXNlIG5vdGVzIGFuZCBDaGFuZ2UgTG9nIGZyb20gdGhlIHNvdXJj ZSB0YXJiYWxsIHBhY2thZ2UuPC9wPgogICAgICAgPC9kaXY+CiAgICAgICA8ZGl2IGNsYXNz PSJTRUNUMyI+Ci0gICAgICAgIDxoMyBjbGFzcz0iU0VDVDMiPjxhIG5hbWU9Ik5FV1JFTEVB U0UtV0lORE9XUyIgaWQ9Ik5FV1JFTEVBU0UtV0lORE9XUyI+Ni4zLjYuIFdpbmRvd3M8L2E+ PC9oMz4KKyAgICAgICAgPGgzIGNsYXNzPSJTRUNUMyI+PGEgbmFtZT0iTkVXUkVMRUFTRS1X SU5ET1dTIiBpZD0iTkVXUkVMRUFTRS1XSU5ET1dTIj42LjMuNS4gV2luZG93czwvYT48L2gz PgogICAgICAgICA8cD5Ob3RlIHRoYXQgdGhlIGRvY2Jvb2sgZ2VuZXJhdGVkIGZpbGVzIG1p Z2h0IG5lZWQgc29tZSBoYW5kIGVkaXRpbmcsIHNvIHRoZSBXaW5kb3dzIGJ1aWxkIG1ha2Vm aWxlIGRvZXMgbm90CiAgICAgICAgIHJlYnVpbGQgdGhlIGRvY3MuPC9wPgogICAgICAgICA8 cD5GaXJzdCwgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48aSBjbGFzcz0iRU1QSEFTSVMiPm1h a2Ugc3VyZSB0aGF0IHlvdSBoYXZlIGZyZXNobHkgZXhwb3J0ZWQgdGhlIHJpZ2h0IHZlcnNp b24KQEAgLTUzNSw3ICs0ODcsNyBAQCBmb3ItcHJpdm94eS12ZXJzaW9uPTMuMC4xMTwvcHJl PgogICAgICAgICBwYWNrYWdlLjwvcD4KICAgICAgIDwvZGl2PgogICAgICAgPGRpdiBjbGFz cz0iU0VDVDMiPgotICAgICAgICA8aDMgY2xhc3M9IlNFQ1QzIj48YSBuYW1lPSJORVdSRUxF QVNFLURFQklBTiIgaWQ9Ik5FV1JFTEVBU0UtREVCSUFOIj42LjMuNy4gRGViaWFuPC9hPjwv aDM+CisgICAgICAgIDxoMyBjbGFzcz0iU0VDVDMiPjxhIG5hbWU9Ik5FV1JFTEVBU0UtREVC SUFOIiBpZD0iTkVXUkVMRUFTRS1ERUJJQU4iPjYuMy42LiBEZWJpYW48L2E+PC9oMz4KICAg ICAgICAgPHA+Rmlyc3QsIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGkgY2xhc3M9IkVNUEhB U0lTIj5tYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSBmcmVzaGx5IGV4cG9ydGVkIHRoZSByaWdo dCB2ZXJzaW9uCiAgICAgICAgIGludG8gYW4gZW1wdHkgZGlyZWN0b3J5PC9pPjwvc3Bhbj4u IChTZWUgIkJ1aWxkaW5nIGFuZCByZWxlYXNpbmcgcGFja2FnZXMiIGFib3ZlKS4gVGhlbiBh ZGQgYSBsb2cgZW50cnkgdG8KICAgICAgICAgPHR0IGNsYXNzPSJGSUxFTkFNRSI+ZGViaWFu L2NoYW5nZWxvZzwvdHQ+LCBpZiBpdCBpcyBub3QgYWxyZWFkeSB0aGVyZSwgZm9yIGV4YW1w bGUgYnkgcnVubmluZzo8L3A+CkBAIC01NjUsMTMgKzUxNywxMyBAQCBmb3ItcHJpdm94eS12 ZXJzaW9uPTMuMC4xMTwvcHJlPgogICAgICAgICA8L3RhYmxlPgogICAgICAgPC9kaXY+CiAg ICAgICA8ZGl2IGNsYXNzPSJTRUNUMyI+Ci0gICAgICAgIDxoMyBjbGFzcz0iU0VDVDMiPjxh IG5hbWU9Ik5FV1JFTEVBU0UtTUFDT1NYIiBpZD0iTkVXUkVMRUFTRS1NQUNPU1giPjYuMy44 LiBNYWMgT1MgWDwvYT48L2gzPgorICAgICAgICA8aDMgY2xhc3M9IlNFQ1QzIj48YSBuYW1l PSJORVdSRUxFQVNFLU1BQ09TWCIgaWQ9Ik5FV1JFTEVBU0UtTUFDT1NYIj42LjMuNy4gTWFj IE9TIFg8L2E+PC9oMz4KICAgICAgICAgPHA+Rmlyc3QsIDxzcGFuIGNsYXNzPSJlbXBoYXNp cyI+PGkgY2xhc3M9IkVNUEhBU0lTIj5tYWtlIHN1cmUgdGhhdCB5b3UgaGF2ZSBmcmVzaGx5 IGV4cG9ydGVkIHRoZSByaWdodCB2ZXJzaW9uCiAgICAgICAgIGludG8gYW4gZW1wdHkgZGly ZWN0b3J5PC9pPjwvc3Bhbj4uIChTZWUgIkJ1aWxkaW5nIGFuZCByZWxlYXNpbmcgcGFja2Fn ZXMiIGFib3ZlKS48L3A+CiAgICAgICAgIDxwPlRoZXJlIGFyZSB0aHJlZSBtb2R1bGVzIGF2 YWlsYWJsZSBpbiB0aGUgR2l0IHJlcG9zaXRvcnkgZm9yIHVzZSBvbiBNYWMgT1MgWCwgdGhv dWdoIHRlY2huaWNhbGx5IG9ubHkgdHdvIG9mCiAgICAgICAgIHRoZW0gZ2VuZXJhdGUgYSBy ZWxlYXNlICh0aGUgb3RoZXIgY2FuIGJlIHVzZWQgdG8gaW5zdGFsbCBmcm9tIHNvdXJjZSku PC9wPgogICAgICAgICA8ZGl2IGNsYXNzPSJTRUNUNCI+Ci0gICAgICAgICAgPGg0IGNsYXNz PSJTRUNUNCI+PGEgbmFtZT0iT1MtWC1PU1hQQUNLQUdFQlVJTERFUi1NT0RVTEUiIGlkPSJP Uy1YLU9TWFBBQ0tBR0VCVUlMREVSLU1PRFVMRSI+Ni4zLjguMS4KKyAgICAgICAgICA8aDQg Y2xhc3M9IlNFQ1Q0Ij48YSBuYW1lPSJPUy1YLU9TWFBBQ0tBR0VCVUlMREVSLU1PRFVMRSIg aWQ9Ik9TLVgtT1NYUEFDS0FHRUJVSUxERVItTU9EVUxFIj42LjMuNy4xLgogICAgICAgICAg IE9TWFBhY2thZ2VCdWlsZGVyIG1vZHVsZTwvYT48L2g0PgogICAgICAgICAgIDxwPlRoZSBP U1hQYWNrYWdlQnVpbGRlciBtb2R1bGUgZ2VuZXJhdGVzIE9TIFggaW5zdGFsbGVyIHBhY2th Z2VzIHN1cHBvcnRpbmcgYWxsIE1hY3MgcnVubmluZyBPUyBYIDEwLjQgYW5kCiAgICAgICAg ICAgYWJvdmUuIE9idGFpbiBpdCBmcm9tIEdpdCBhcyBmb2xsb3dzIGludG8gYSBmb2xkZXIg cGFyYWxsZWwgdG8gdGhlIGV4cG9ydGVkIHByaXZveHkgc291cmNlOjwvcD4KQEAgLTU5MSw3 ICs1NDMsNyBAQCBmb3ItcHJpdm94eS12ZXJzaW9uPTMuMC4xMTwvcHJlPgogICAgICAgICAg IG1ha2VzIGl0IGNsZWFyIHdoaWNoIHBhY2thZ2UgaXMgZm9yIHdoaWNodmVyc2lvbiBvZiBP UyBYLjwvcD4KICAgICAgICAgPC9kaXY+CiAgICAgICAgIDxkaXYgY2xhc3M9IlNFQ1Q0Ij4K LSAgICAgICAgICA8aDQgY2xhc3M9IlNFQ1Q0Ij48YSBuYW1lPSJPUy1YLU9TWFNFVFVQLU1P RFVMRSIgaWQ9Ik9TLVgtT1NYU0VUVVAtTU9EVUxFIj42LjMuOC4yLiBvc3hzZXR1cCBtb2R1 bGUKKyAgICAgICAgICA8aDQgY2xhc3M9IlNFQ1Q0Ij48YSBuYW1lPSJPUy1YLU9TWFNFVFVQ LU1PRFVMRSIgaWQ9Ik9TLVgtT1NYU0VUVVAtTU9EVUxFIj42LjMuNy4yLiBvc3hzZXR1cCBt b2R1bGUKICAgICAgICAgICAoREVQUkVDQVRFRCk8L2E+PC9oND4KICAgICAgICAgICA8cD48 c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxpIGNsYXNzPSJFTVBIQVNJUyI+VGhpcyBtb2R1bGUg aXMgZGVwcmVjYXRlZCBzaW5jZSB0aGUgaW5zdGFsbGVyIGl0IGdlbmVyYXRlcwogICAgICAg ICAgIHBsYWNlcyBhbGwgUHJpdm94eSBmaWxlcyBpbiBvbmUgZm9sZGVyIGluIGEgbm9uLXN0 YW5kYXJkIGxvY2F0aW9uLCBhbmQgc3VwcG9ydHMgb25seSBJbnRlbCBNYWNzIHJ1bm5pbmcg T1MgWApAQCAtNjMzLDcgKzU4NSw3IEBAIGZvci1wcml2b3h5LXZlcnNpb249My4wLjExPC9w cmU+CiAgICAgICAgICAgcGFja2FnZSBzdXBwb3J0cy48L3A+CiAgICAgICAgIDwvZGl2Pgog ICAgICAgICA8ZGl2IGNsYXNzPSJTRUNUNCI+Ci0gICAgICAgICAgPGg0IGNsYXNzPSJTRUNU NCI+PGEgbmFtZT0iT1MtWC1NQUNTRVRVUC1NT0RVTEUiIGlkPSJPUy1YLU1BQ1NFVFVQLU1P RFVMRSI+Ni4zLjguMy4gbWFjc2V0dXAgbW9kdWxlPC9hPjwvaDQ+CisgICAgICAgICAgPGg0 IGNsYXNzPSJTRUNUNCI+PGEgbmFtZT0iT1MtWC1NQUNTRVRVUC1NT0RVTEUiIGlkPSJPUy1Y LU1BQ1NFVFVQLU1PRFVMRSI+Ni4zLjcuMy4gbWFjc2V0dXAgbW9kdWxlPC9hPjwvaDQ+CiAg ICAgICAgICAgPHA+VGhlIG1hY3NldHVwIG1vZHVsZSBpcyBpZGVhbCBpZiB5b3Ugd2lzaCB0 byBidWlsZCBhbmQgaW5zdGFsbCBQcml2b3h5IGZyb20gc291cmNlIG9uIGEgc2luZ2xlIG1h Y2hpbmUuPC9wPgogICAgICAgICAgIDxwPkNoZWNrIG91dCB0aGUgbW9kdWxlIGZyb20gR2l0 IGFzIGZvbGxvd3MgaW50byBhIGZvbGRlciBwYXJhbGxlbCB0byB0aGUgZXhwb3J0ZWQgcHJp dm94eSBzb3VyY2U6PC9wPgogICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjAiIGJnY29sb3I9 IiNFMEUwRTAiIHdpZHRoPSIxMDAlIj4KQEAgLTY0OSw3ICs2MDEsNyBAQCBmb3ItcHJpdm94 eS12ZXJzaW9uPTMuMC4xMTwvcHJlPgogICAgICAgICA8L2Rpdj4KICAgICAgIDwvZGl2Pgog ICAgICAgPGRpdiBjbGFzcz0iU0VDVDMiPgotICAgICAgICA8aDMgY2xhc3M9IlNFQ1QzIj48 YSBuYW1lPSJORVdSRUxFQVNFLUZSRUVCU0QiIGlkPSJORVdSRUxFQVNFLUZSRUVCU0QiPjYu My45LiBGcmVlQlNEPC9hPjwvaDM+CisgICAgICAgIDxoMyBjbGFzcz0iU0VDVDMiPjxhIG5h bWU9Ik5FV1JFTEVBU0UtRlJFRUJTRCIgaWQ9Ik5FV1JFTEVBU0UtRlJFRUJTRCI+Ni4zLjgu IEZyZWVCU0Q8L2E+PC9oMz4KICAgICAgICAgPHA+VXBkYXRlIHRoZSB3d3cvcHJpdm94eSBw b3J0IGFuZCBzdWJtaXQgYSBkaWZmIHVwc3RyZWFtLiBGb3IgZGV0YWlscyBzZWUgdGhlIDxh IGhyZWY9CiAgICAgICAgICJodHRwczovL3d3dy5mcmVlYnNkLm9yZy9kb2MvZW5fVVMuSVNP ODg1OS0xL2Jvb2tzL3BvcnRlcnMtaGFuZGJvb2svIiB0YXJnZXQ9Il90b3AiPkZyZWVCU0Qg UG9ydGVyJ3MKICAgICAgICAgSGFuZGJvb2s8L2E+LjwvcD4KZGlmZiAtLWdpdCBhL2RvYy93 ZWJzZXJ2ZXIvZmFxL2luc3RhbGxhdGlvbi5odG1sIGIvZG9jL3dlYnNlcnZlci9mYXEvaW5z dGFsbGF0aW9uLmh0bWwKaW5kZXggODBmZGIzNWEuLjI5NjJiZWVlIDEwMDY0NAotLS0gYS9k b2Mvd2Vic2VydmVyL2ZhcS9pbnN0YWxsYXRpb24uaHRtbAorKysgYi9kb2Mvd2Vic2VydmVy L2ZhcS9pbnN0YWxsYXRpb24uaHRtbApAQCAtMzksNyArMzksNyBAQAogICAgICAgPGgzIGNs YXNzPSJTRUNUMiI+PGEgbmFtZT0iV0hJQ0hPUyIgaWQ9IldISUNIT1MiPjIuMi4gV2hpY2gg b3BlcmF0aW5nIHN5c3RlbXMgYXJlIHN1cHBvcnRlZD88L2E+PC9oMz4KICAgICAgIDxwPkF0 IHByZXNlbnQsIDxzcGFuIGNsYXNzPSJBUFBMSUNBVElPTiI+UHJpdm94eTwvc3Bhbj4gaXMg a25vd24gdG8gcnVuIG9uIFdpbmRvd3MgOTUgYW5kIGxhdGVyIHZlcnNpb25zICg5OCwgTUUs CiAgICAgICAyMDAwLCBYUCwgVmlzdGEsIFdpbmRvd3MgNyBldGMuKSwgR05VL0xpbnV4IChS ZWRIYXQsIFN1U0UsIERlYmlhbiwgRmVkb3JhLCBHZW50b28sIFNsYWNrd2FyZSBhbmQgb3Ro ZXJzKSwgTWFjIE9TCi0gICAgICBYICgxMC40IGFuZCB1cHdhcmRzIG9uIFBQQyBhbmQgSW50 ZWwgcHJvY2Vzc29ycyksIE9TLzIsIEhhaWt1LCBEcmFnb25GbHksIEVsZWN0cm9CU0QsIEZy ZWVCU0QsIE5ldEJTRCwgT3BlbkJTRCwKKyAgICAgIFggKDEwLjQgYW5kIHVwd2FyZHMgb24g UFBDIGFuZCBJbnRlbCBwcm9jZXNzb3JzKSwgSGFpa3UsIERyYWdvbkZseSwgRWxlY3Ryb0JT RCwgRnJlZUJTRCwgTmV0QlNELCBPcGVuQlNELAogICAgICAgU29sYXJpcywgYW5kIHZhcmlv dXMgb3RoZXIgZmxhdm9ycyBvZiBVbml4LjwvcD4KICAgICAgIDxwPkJ1dCBhbnkgb3BlcmF0 aW5nIHN5c3RlbSB0aGF0IHJ1bnMgVENQL0lQLCBjYW4gY29uY2VpdmFibHkgdGFrZSBhZHZh bnRhZ2Ugb2YgPHNwYW4gY2xhc3M9CiAgICAgICAiQVBQTElDQVRJT04iPlByaXZveHk8L3Nw YW4+IGluIGEgbmV0d29ya2VkIHNpdHVhdGlvbiB3aGVyZSA8c3BhbiBjbGFzcz0iQVBQTElD QVRJT04iPlByaXZveHk8L3NwYW4+IHdvdWxkIHJ1biBhcwpkaWZmIC0tZ2l0IGEvZG9jL3dl YnNlcnZlci91c2VyLW1hbnVhbC9hY3Rpb25zLWZpbGUuaHRtbCBiL2RvYy93ZWJzZXJ2ZXIv dXNlci1tYW51YWwvYWN0aW9ucy1maWxlLmh0bWwKaW5kZXggYTMzMzgyNWYuLmQxYjY1Njcy IDEwMDY0NAotLS0gYS9kb2Mvd2Vic2VydmVyL3VzZXItbWFudWFsL2FjdGlvbnMtZmlsZS5o dG1sCisrKyBiL2RvYy93ZWJzZXJ2ZXIvdXNlci1tYW51YWwvYWN0aW9ucy1maWxlLmh0bWwK QEAgLTczLDcgKzczLDcgQEAKICAgICAgICAgPHA+VGhlIGRlZmF1bHQgcHJvZmlsZXMsIGFu ZCB0aGVpciBhc3NvY2lhdGVkIGFjdGlvbnMsIGFzIHByZS1kZWZpbmVkIGluIDx0dCBjbGFz cz0KICAgICAgICAgIkZJTEVOQU1FIj5kZWZhdWx0LmFjdGlvbjwvdHQ+IGFyZTo8L3A+CiAg ICAgICAgIDxkaXYgY2xhc3M9IlRBQkxFIj4KLSAgICAgICAgICA8YSBuYW1lPSJBRU4zMTA0 IiBpZD0iQUVOMzEwNCI+PC9hPgorICAgICAgICAgIDxhIG5hbWU9IkFFTjMwODciIGlkPSJB RU4zMDg3Ij48L2E+CiAgICAgICAgICAgPHA+PGI+VGFibGUgMS4gRGVmYXVsdCBDb25maWd1 cmF0aW9uczwvYj48L3A+CiAgICAgICAgICAgPHRhYmxlIGJvcmRlcj0iMSIgZnJhbWU9ImJv cmRlciIgcnVsZXM9ImFsbCIgY2xhc3M9IkNBTFNUQUJMRSI+CiAgICAgICAgICAgICA8Y29s IHdpZHRoPSIxKiIgdGl0bGU9IkMxIj4KZGlmZiAtLWdpdCBhL2RvYy93ZWJzZXJ2ZXIvdXNl ci1tYW51YWwvYXBwZW5kaXguaHRtbCBiL2RvYy93ZWJzZXJ2ZXIvdXNlci1tYW51YWwvYXBw ZW5kaXguaHRtbAppbmRleCAwNmI0NzJmNS4uNjAzMjRlMDAgMTAwNjQ0Ci0tLSBhL2RvYy93 ZWJzZXJ2ZXIvdXNlci1tYW51YWwvYXBwZW5kaXguaHRtbAorKysgYi9kb2Mvd2Vic2VydmVy L3VzZXItbWFudWFsL2FwcGVuZGl4Lmh0bWwKQEAgLTIwMiw3ICsyMDIsNyBAQAogICAgICAg dGhlc2UuIElmIG5vdCwgeW91IHdpbGwgZ2V0IGEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZS4g SW50ZXJuZXQgYWNjZXNzIGlzIG5vdCBuZWNlc3NhcnkgZWl0aGVyLjwvcD4KICAgICAgIDx1 bD4KICAgICAgICAgPGxpPgotICAgICAgICAgIDxwPlByaXZveHkgbWFpbiBwYWdlOjwvcD48 YSBuYW1lPSJBRU42MzAzIiBpZD0iQUVONjMwMyI+PC9hPgorICAgICAgICAgIDxwPlByaXZv eHkgbWFpbiBwYWdlOjwvcD48YSBuYW1lPSJBRU42Mjg2IiBpZD0iQUVONjI4NiI+PC9hPgog ICAgICAgICAgIDxibG9ja3F1b3RlIGNsYXNzPSJCTE9DS1FVT1RFIj4KICAgICAgICAgICAg IDxwPjxhIGhyZWY9Imh0dHA6Ly9jb25maWcucHJpdm94eS5vcmcvIiB0YXJnZXQ9Il90b3Ai Pmh0dHA6Ly9jb25maWcucHJpdm94eS5vcmcvPC9hPjwvcD4KICAgICAgICAgICA8L2Jsb2Nr cXVvdGU+CkBAIC0yMTEsNyArMjExLDcgQEAKICAgICAgICAgICAiQVBQTElDQVRJT04iPlBy aXZveHk8L3NwYW4+KTwvcD4KICAgICAgICAgPC9saT4KICAgICAgICAgPGxpPgotICAgICAg ICAgIDxwPlZpZXcgYW5kIHRvZ2dsZSBjbGllbnQgdGFnczo8L3A+PGEgbmFtZT0iQUVONjMx MSIgaWQ9IkFFTjYzMTEiPjwvYT4KKyAgICAgICAgICA8cD5WaWV3IGFuZCB0b2dnbGUgY2xp ZW50IHRhZ3M6PC9wPjxhIG5hbWU9IkFFTjYyOTQiIGlkPSJBRU42Mjk0Ij48L2E+CiAgICAg ICAgICAgPGJsb2NrcXVvdGUgY2xhc3M9IkJMT0NLUVVPVEUiPgogICAgICAgICAgICAgPHA+ PGEgaHJlZj0iaHR0cDovL2NvbmZpZy5wcml2b3h5Lm9yZy9jbGllbnQtdGFncyIgdGFyZ2V0 PQogICAgICAgICAgICAgIl90b3AiPmh0dHA6Ly9jb25maWcucHJpdm94eS5vcmcvY2xpZW50 LXRhZ3M8L2E+PC9wPgpAQCAtMjE5LDIxICsyMTksMjEgQEAKICAgICAgICAgPC9saT4KICAg ICAgICAgPGxpPgogICAgICAgICAgIDxwPlNob3cgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1 cnJlbnQgY29uZmlndXJhdGlvbiwgaW5jbHVkaW5nIHZpZXdpbmcgYW5kIGVkaXRpbmcgb2Yg YWN0aW9ucwotICAgICAgICAgIGZpbGVzOjwvcD48YSBuYW1lPSJBRU42MzE2IiBpZD0iQUVO NjMxNiI+PC9hPgorICAgICAgICAgIGZpbGVzOjwvcD48YSBuYW1lPSJBRU42Mjk5IiBpZD0i QUVONjI5OSI+PC9hPgogICAgICAgICAgIDxibG9ja3F1b3RlIGNsYXNzPSJCTE9DS1FVT1RF Ij4KICAgICAgICAgICAgIDxwPjxhIGhyZWY9Imh0dHA6Ly9jb25maWcucHJpdm94eS5vcmcv c2hvdy1zdGF0dXMiIHRhcmdldD0KICAgICAgICAgICAgICJfdG9wIj5odHRwOi8vY29uZmln LnByaXZveHkub3JnL3Nob3ctc3RhdHVzPC9hPjwvcD4KICAgICAgICAgICA8L2Jsb2NrcXVv dGU+CiAgICAgICAgIDwvbGk+CiAgICAgICAgIDxsaT4KLSAgICAgICAgICA8cD5TaG93IHRo ZSBicm93c2VyJ3MgcmVxdWVzdCBoZWFkZXJzOjwvcD48YSBuYW1lPSJBRU42MzIxIiBpZD0i QUVONjMyMSI+PC9hPgorICAgICAgICAgIDxwPlNob3cgdGhlIGJyb3dzZXIncyByZXF1ZXN0 IGhlYWRlcnM6PC9wPjxhIG5hbWU9IkFFTjYzMDQiIGlkPSJBRU42MzA0Ij48L2E+CiAgICAg ICAgICAgPGJsb2NrcXVvdGUgY2xhc3M9IkJMT0NLUVVPVEUiPgogICAgICAgICAgICAgPHA+ PGEgaHJlZj0iaHR0cDovL2NvbmZpZy5wcml2b3h5Lm9yZy9zaG93LXJlcXVlc3QiIHRhcmdl dD0KICAgICAgICAgICAgICJfdG9wIj5odHRwOi8vY29uZmlnLnByaXZveHkub3JnL3Nob3ct cmVxdWVzdDwvYT48L3A+CiAgICAgICAgICAgPC9ibG9ja3F1b3RlPgogICAgICAgICA8L2xp PgogICAgICAgICA8bGk+Ci0gICAgICAgICAgPHA+U2hvdyB3aGljaCBhY3Rpb25zIGFwcGx5 IHRvIGEgVVJMIGFuZCB3aHk6PC9wPjxhIG5hbWU9IkFFTjYzMjYiIGlkPSJBRU42MzI2Ij48 L2E+CisgICAgICAgICAgPHA+U2hvdyB3aGljaCBhY3Rpb25zIGFwcGx5IHRvIGEgVVJMIGFu ZCB3aHk6PC9wPjxhIG5hbWU9IkFFTjYzMDkiIGlkPSJBRU42MzA5Ij48L2E+CiAgICAgICAg ICAgPGJsb2NrcXVvdGUgY2xhc3M9IkJMT0NLUVVPVEUiPgogICAgICAgICAgICAgPHA+PGEg aHJlZj0iaHR0cDovL2NvbmZpZy5wcml2b3h5Lm9yZy9zaG93LXVybC1pbmZvIiB0YXJnZXQ9 CiAgICAgICAgICAgICAiX3RvcCI+aHR0cDovL2NvbmZpZy5wcml2b3h5Lm9yZy9zaG93LXVy bC1pbmZvPC9hPjwvcD4KQEAgLTI0MiwxNSArMjQyLDE1IEBACiAgICAgICAgIDxsaT4KICAg ICAgICAgICA8cD5Ub2dnbGUgUHJpdm94eSBvbiBvciBvZmYuIFRoaXMgZmVhdHVyZSBjYW4g YmUgdHVybmVkIG9mZi9vbiBpbiB0aGUgbWFpbiA8dHQgY2xhc3M9IkZJTEVOQU1FIj5jb25m aWc8L3R0PgogICAgICAgICAgIGZpbGUuIFdoZW4gdG9nZ2xlZCA8c3BhbiBjbGFzcz0iUVVP VEUiPiJvZmYiPC9zcGFuPiwgPHNwYW4gY2xhc3M9IlFVT1RFIj4iUHJpdm94eSI8L3NwYW4+ IGNvbnRpbnVlcyB0byBydW4sCi0gICAgICAgICAgYnV0IG9ubHkgYXMgYSBwYXNzLXRocm91 Z2ggcHJveHksIHdpdGggbm8gYWN0aW9ucyB0YWtpbmcgcGxhY2U6PC9wPjxhIG5hbWU9IkFF TjYzMzQiIGlkPSJBRU42MzM0Ij48L2E+CisgICAgICAgICAgYnV0IG9ubHkgYXMgYSBwYXNz LXRocm91Z2ggcHJveHksIHdpdGggbm8gYWN0aW9ucyB0YWtpbmcgcGxhY2U6PC9wPjxhIG5h bWU9IkFFTjYzMTciIGlkPSJBRU42MzE3Ij48L2E+CiAgICAgICAgICAgPGJsb2NrcXVvdGUg Y2xhc3M9IkJMT0NLUVVPVEUiPgogICAgICAgICAgICAgPHA+PGEgaHJlZj0iaHR0cDovL2Nv bmZpZy5wcml2b3h5Lm9yZy90b2dnbGUiIHRhcmdldD0iX3RvcCI+aHR0cDovL2NvbmZpZy5w cml2b3h5Lm9yZy90b2dnbGU8L2E+PC9wPgogICAgICAgICAgIDwvYmxvY2txdW90ZT4KLSAg ICAgICAgICA8cD5TaG9ydCBjdXRzLiBUdXJuIG9mZiwgdGhlbiBvbjo8L3A+PGEgbmFtZT0i QUVONjMzOCIgaWQ9IkFFTjYzMzgiPjwvYT4KKyAgICAgICAgICA8cD5TaG9ydCBjdXRzLiBU dXJuIG9mZiwgdGhlbiBvbjo8L3A+PGEgbmFtZT0iQUVONjMyMSIgaWQ9IkFFTjYzMjEiPjwv YT4KICAgICAgICAgICA8YmxvY2txdW90ZSBjbGFzcz0iQkxPQ0tRVU9URSI+CiAgICAgICAg ICAgICA8cD48YSBocmVmPSJodHRwOi8vY29uZmlnLnByaXZveHkub3JnL3RvZ2dsZT9zZXQ9 ZGlzYWJsZSIgdGFyZ2V0PQogICAgICAgICAgICAgIl90b3AiPmh0dHA6Ly9jb25maWcucHJp dm94eS5vcmcvdG9nZ2xlP3NldD1kaXNhYmxlPC9hPjwvcD4KLSAgICAgICAgICA8L2Jsb2Nr cXVvdGU+PGEgbmFtZT0iQUVONjM0MSIgaWQ9IkFFTjYzNDEiPjwvYT4KKyAgICAgICAgICA8 L2Jsb2NrcXVvdGU+PGEgbmFtZT0iQUVONjMyNCIgaWQ9IkFFTjYzMjQiPjwvYT4KICAgICAg ICAgICA8YmxvY2txdW90ZSBjbGFzcz0iQkxPQ0tRVU9URSI+CiAgICAgICAgICAgICA8cD48 YSBocmVmPSJodHRwOi8vY29uZmlnLnByaXZveHkub3JnL3RvZ2dsZT9zZXQ9ZW5hYmxlIiB0 YXJnZXQ9CiAgICAgICAgICAgICAiX3RvcCI+aHR0cDovL2NvbmZpZy5wcml2b3h5Lm9yZy90 b2dnbGU/c2V0PWVuYWJsZTwvYT48L3A+CmRpZmYgLS1naXQgYS9kb2Mvd2Vic2VydmVyL3Vz ZXItbWFudWFsL2NvbmZpZ3VyYXRpb24uaHRtbCBiL2RvYy93ZWJzZXJ2ZXIvdXNlci1tYW51 YWwvY29uZmlndXJhdGlvbi5odG1sCmluZGV4IDM2NTEzOTA0Li4wZGQ2ZDA3ZiAxMDA2NDQK LS0tIGEvZG9jL3dlYnNlcnZlci91c2VyLW1hbnVhbC9jb25maWd1cmF0aW9uLmh0bWwKKysr IGIvZG9jL3dlYnNlcnZlci91c2VyLW1hbnVhbC9jb25maWd1cmF0aW9uLmh0bWwKQEAgLTQw LDcgKzQwLDcgQEAKICAgICAgICAgPHRyPgogICAgICAgICAgIDx0ZD4KICAgICAgICAgICAg IDxwcmUgY2xhc3M9IlNDUkVFTiI+IDwvcHJlPgotICAgICAgICAgICAgPGgyIGNsYXNzPSJC UklER0VIRUFEIj48YSBuYW1lPSJBRU45MTUiPjwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDtQcml2b3h5IE1lbnU8L2gyPgorICAgICAgICAgICAgPGgyIGNsYXNzPSJCUklER0VIRUFE Ij48YSBuYW1lPSJBRU44OTgiPjwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQcml2b3h5 IE1lbnU8L2gyPgogICAgICAgICAgICAgPHByZT48YnI+PC9wcmU+CiAgICAgICAgICAgICA8 dGFibGUgYm9yZGVyPSIwIj4KICAgICAgICAgICAgICAgPHRib2R5PgpAQCAtOTMsMTYgKzkz LDE1IEBACiAgICAgPGRpdiBjbGFzcz0iU0VDVDIiPgogICAgICAgPGgyIGNsYXNzPSJTRUNU MiI+PGEgbmFtZT0iQ09ORk9WRVJWSUVXIj42LjIuIENvbmZpZ3VyYXRpb24gRmlsZXMgT3Zl cnZpZXc8L2E+PC9oMj4KICAgICAgIDxwPkZvciBVbml4LCAqQlNEIGFuZCBHTlUvTGludXgs IGFsbCBjb25maWd1cmF0aW9uIGZpbGVzIGFyZSBsb2NhdGVkIGluIDx0dCBjbGFzcz0iRklM RU5BTUUiPi9ldGMvcHJpdm94eS88L3R0PgotICAgICAgYnkgZGVmYXVsdC4gRm9yIE1TIFdp bmRvd3MgYW5kIE9TLzIgdGhlc2UgYXJlIGFsbCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMg dGhlIDxzcGFuIGNsYXNzPQotICAgICAgIkFQUExJQ0FUSU9OIj5Qcml2b3h5PC9zcGFuPiBl eGVjdXRhYmxlLiBUaGUgbmFtZSBhbmQgbnVtYmVyIG9mIGNvbmZpZ3VyYXRpb24gZmlsZXMg aGFzIGNoYW5nZWQgZnJvbSBwcmV2aW91cwotICAgICAgdmVyc2lvbnMsIGFuZCBpcyBzdWJq ZWN0IHRvIGNoYW5nZSBhcyBkZXZlbG9wbWVudCBwcm9ncmVzc2VzLjwvcD4KKyAgICAgIGJ5 IGRlZmF1bHQuIEZvciBNUyBXaW5kb3dzIHRoZXNlIGFyZSBhbGwgaW4gdGhlIHNhbWUgZGly ZWN0b3J5IGFzIHRoZSA8c3BhbiBjbGFzcz0iQVBQTElDQVRJT04iPlByaXZveHk8L3NwYW4+ CisgICAgICBleGVjdXRhYmxlLiBUaGUgbmFtZSBhbmQgbnVtYmVyIG9mIGNvbmZpZ3VyYXRp b24gZmlsZXMgaGFzIGNoYW5nZWQgZnJvbSBwcmV2aW91cyB2ZXJzaW9ucywgYW5kIGlzIHN1 YmplY3QgdG8KKyAgICAgIGNoYW5nZSBhcyBkZXZlbG9wbWVudCBwcm9ncmVzc2VzLjwvcD4K ICAgICAgIDxwPlRoZSBpbnN0YWxsZWQgZGVmYXVsdHMgcHJvdmlkZSBhIHJlYXNvbmFibGUg c3RhcnRpbmcgcG9pbnQsIHRob3VnaCBzb21lIHNldHRpbmdzIG1heSBiZSBhZ2dyZXNzaXZl IGJ5IHNvbWUKICAgICAgIHN0YW5kYXJkcy4gRm9yIHRoZSB0aW1lIGJlaW5nLCB0aGUgcHJp bmNpcGxlIGNvbmZpZ3VyYXRpb24gZmlsZXMgYXJlOjwvcD4KICAgICAgIDx1bD4KICAgICAg ICAgPGxpPgogICAgICAgICAgIDxwPlRoZSA8YSBocmVmPSJjb25maWcuaHRtbCI+bWFpbiBj b25maWd1cmF0aW9uIGZpbGU8L2E+IGlzIG5hbWVkIDx0dCBjbGFzcz0iRklMRU5BTUUiPmNv bmZpZzwvdHQ+IG9uCi0gICAgICAgICAgR05VL0xpbnV4LCBVbml4LCBCU0QsIGFuZCBPUy8y LCBhbmQgPHR0IGNsYXNzPSJGSUxFTkFNRSI+Y29uZmlnLnR4dDwvdHQ+IG9uIFdpbmRvd3Mu IFRoaXMgaXMgYSByZXF1aXJlZAotICAgICAgICAgIGZpbGUuPC9wPgorICAgICAgICAgIEdO VS9MaW51eCwgVW5peCwgQlNELCBhbmQgPHR0IGNsYXNzPSJGSUxFTkFNRSI+Y29uZmlnLnR4 dDwvdHQ+IG9uIFdpbmRvd3MuIFRoaXMgaXMgYSByZXF1aXJlZCBmaWxlLjwvcD4KICAgICAg ICAgPC9saT4KICAgICAgICAgPGxpPgogICAgICAgICAgIDxwPjx0dCBjbGFzcz0iRklMRU5B TUUiPm1hdGNoLWFsbC5hY3Rpb248L3R0PiBpcyB1c2VkIHRvIGRlZmluZSB3aGljaCA8c3Bh biBjbGFzcz0iUVVPVEUiPiJhY3Rpb25zIjwvc3Bhbj4KZGlmZiAtLWdpdCBhL2RvYy93ZWJz ZXJ2ZXIvdXNlci1tYW51YWwvaW5kZXguaHRtbCBiL2RvYy93ZWJzZXJ2ZXIvdXNlci1tYW51 YWwvaW5kZXguaHRtbAppbmRleCA0YWQxNTA0MC4uZWIwMGQ4OWYgMTAwNjQ0Ci0tLSBhL2Rv Yy93ZWJzZXJ2ZXIvdXNlci1tYW51YWwvaW5kZXguaHRtbAorKysgYi9kb2Mvd2Vic2VydmVy L3VzZXItbWFudWFsL2luZGV4Lmh0bWwKQEAgLTYxLDEyICs2MSwxMSBAQAogICAgICAgICAg ICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgPGR0PjIuMS4xLiA8YSBocmVmPSJpbnN0YWxs YXRpb24uaHRtbCNJTlNUQUxMQVRJT04tREVCIj5EZWJpYW4gYW5kIFVidW50dTwvYT48L2R0 PgogICAgICAgICAgICAgICAgIDxkdD4yLjEuMi4gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLmh0 bWwjSU5TVEFMTEFUSU9OLVBBQ0stV0lOIj5XaW5kb3dzPC9hPjwvZHQ+Ci0gICAgICAgICAg ICAgICAgPGR0PjIuMS4zLiA8YSBocmVmPSJpbnN0YWxsYXRpb24uaHRtbCNJTlNUQUxMQVRJ T04tT1MyIj5PUy8yPC9hPjwvZHQ+Ci0gICAgICAgICAgICAgICAgPGR0PjIuMS40LiA8YSBo cmVmPSJpbnN0YWxsYXRpb24uaHRtbCNJTlNUQUxMQVRJT04tTUFDIj5NYWMgT1MgWDwvYT48 L2R0PgotICAgICAgICAgICAgICAgIDxkdD4yLjEuNS4gPGEgaHJlZj0iaW5zdGFsbGF0aW9u Lmh0bWwjT1MtWC1JTlNUQUxMLUZST00tUEFDS0FHRSI+SW5zdGFsbGF0aW9uIGZyb20gcmVh ZHktYnVpbHQKKyAgICAgICAgICAgICAgICA8ZHQ+Mi4xLjMuIDxhIGhyZWY9Imluc3RhbGxh dGlvbi5odG1sI0lOU1RBTExBVElPTi1NQUMiPk1hYyBPUyBYPC9hPjwvZHQ+CisgICAgICAg ICAgICAgICAgPGR0PjIuMS40LiA8YSBocmVmPSJpbnN0YWxsYXRpb24uaHRtbCNPUy1YLUlO U1RBTEwtRlJPTS1QQUNLQUdFIj5JbnN0YWxsYXRpb24gZnJvbSByZWFkeS1idWlsdAogICAg ICAgICAgICAgICAgIHBhY2thZ2U8L2E+PC9kdD4KLSAgICAgICAgICAgICAgICA8ZHQ+Mi4x LjYuIDxhIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sI09TLVgtSU5TVEFMTC1GUk9NLVNPVVJD RSI+SW5zdGFsbGF0aW9uIGZyb20gc291cmNlPC9hPjwvZHQ+Ci0gICAgICAgICAgICAgICAg PGR0PjIuMS43LiA8YSBocmVmPSJpbnN0YWxsYXRpb24uaHRtbCNJTlNUQUxMQVRJT04tRlJF RUJTRCI+RnJlZUJTRDwvYT48L2R0PgorICAgICAgICAgICAgICAgIDxkdD4yLjEuNS4gPGEg aHJlZj0iaW5zdGFsbGF0aW9uLmh0bWwjT1MtWC1JTlNUQUxMLUZST00tU09VUkNFIj5JbnN0 YWxsYXRpb24gZnJvbSBzb3VyY2U8L2E+PC9kdD4KKyAgICAgICAgICAgICAgICA8ZHQ+Mi4x LjYuIDxhIGhyZWY9Imluc3RhbGxhdGlvbi5odG1sI0lOU1RBTExBVElPTi1GUkVFQlNEIj5G cmVlQlNEPC9hPjwvZHQ+CiAgICAgICAgICAgICAgIDwvZGw+CiAgICAgICAgICAgICA8L2Rk PgogICAgICAgICAgICAgPGR0PjIuMi4gPGEgaHJlZj0iaW5zdGFsbGF0aW9uLmh0bWwjSU5T VEFMTEFUSU9OLVNPVVJDRSI+QnVpbGRpbmcgZnJvbSBTb3VyY2U8L2E+PC9kdD4KQEAgLTk4 LDkgKzk3LDggQEAKICAgICAgICAgICAgIDxkdD41LjMuIDxhIGhyZWY9InN0YXJ0dXAuaHRt bCNTVEFSVC1XSU5ET1dTIj5XaW5kb3dzPC9hPjwvZHQ+CiAgICAgICAgICAgICA8ZHQ+NS40 LiA8YSBocmVmPSJzdGFydHVwLmh0bWwjU1RBUlQtVU5JQ0VTIj5HZW5lcmljIGluc3RydWN0 aW9ucyBmb3IgVW5peCBkZXJpdmF0ZXMgKFNvbGFyaXMsIE5ldEJTRCwKICAgICAgICAgICAg IEhQLVVYIGV0Yy4pPC9hPjwvZHQ+Ci0gICAgICAgICAgICA8ZHQ+NS41LiA8YSBocmVmPSJz dGFydHVwLmh0bWwjU1RBUlQtT1MyIj5PUy8yPC9hPjwvZHQ+Ci0gICAgICAgICAgICA8ZHQ+ NS42LiA8YSBocmVmPSJzdGFydHVwLmh0bWwjU1RBUlQtTUFDT1NYIj5NYWMgT1MgWDwvYT48 L2R0PgotICAgICAgICAgICAgPGR0PjUuNy4gPGEgaHJlZj0ic3RhcnR1cC5odG1sI0NNRE9Q VElPTlMiPkNvbW1hbmQgTGluZSBPcHRpb25zPC9hPjwvZHQ+CisgICAgICAgICAgICA8ZHQ+ NS41LiA8YSBocmVmPSJzdGFydHVwLmh0bWwjU1RBUlQtTUFDT1NYIj5NYWMgT1MgWDwvYT48 L2R0PgorICAgICAgICAgICAgPGR0PjUuNi4gPGEgaHJlZj0ic3RhcnR1cC5odG1sI0NNRE9Q VElPTlMiPkNvbW1hbmQgTGluZSBPcHRpb25zPC9hPjwvZHQ+CiAgICAgICAgICAgPC9kbD4K ICAgICAgICAgPC9kZD4KICAgICAgICAgPGR0PjYuIDxhIGhyZWY9ImNvbmZpZ3VyYXRpb24u aHRtbCI+UHJpdm94eSBDb25maWd1cmF0aW9uPC9hPjwvZHQ+CmRpZmYgLS1naXQgYS9kb2Mv d2Vic2VydmVyL3VzZXItbWFudWFsL2luc3RhbGxhdGlvbi5odG1sIGIvZG9jL3dlYnNlcnZl ci91c2VyLW1hbnVhbC9pbnN0YWxsYXRpb24uaHRtbAppbmRleCBlYzdiY2E4MS4uZTU3ZTRl NmMgMTAwNjQ0Ci0tLSBhL2RvYy93ZWJzZXJ2ZXIvdXNlci1tYW51YWwvaW5zdGFsbGF0aW9u Lmh0bWwKKysrIGIvZG9jL3dlYnNlcnZlci91c2VyLW1hbnVhbC9pbnN0YWxsYXRpb24uaHRt bApAQCAtNjgsMjQgKzY4LDEyIEBACiAgICAgICAgIGZpbGVzLjwvcD4KICAgICAgIDwvZGl2 PgogICAgICAgPGRpdiBjbGFzcz0iU0VDVDMiPgotICAgICAgICA8aDMgY2xhc3M9IlNFQ1Qz Ij48YSBuYW1lPSJJTlNUQUxMQVRJT04tT1MyIiBpZD0iSU5TVEFMTEFUSU9OLU9TMiI+Mi4x LjMuIE9TLzI8L2E+PC9oMz4KLSAgICAgICAgPHA+Rmlyc3QsIG1ha2Ugc3VyZSB0aGF0IG5v IHByZXZpb3VzIGluc3RhbGxhdGlvbnMgb2YgPHNwYW4gY2xhc3M9IkFQUExJQ0FUSU9OIj5K dW5rYnVzdGVyPC9zcGFuPiBhbmQgLyBvcgotICAgICAgICA8c3BhbiBjbGFzcz0iQVBQTElD QVRJT04iPlByaXZveHk8L3NwYW4+IGFyZSBsZWZ0IG9uIHlvdXIgc3lzdGVtLiBDaGVjayB0 aGF0IG5vIDxzcGFuIGNsYXNzPQotICAgICAgICAiQVBQTElDQVRJT04iPkp1bmtidXN0ZXI8 L3NwYW4+IG9yIDxzcGFuIGNsYXNzPSJBUFBMSUNBVElPTiI+UHJpdm94eTwvc3Bhbj4gb2Jq ZWN0cyBhcmUgaW4geW91ciBzdGFydHVwCi0gICAgICAgIGZvbGRlci48L3A+Ci0gICAgICAg IDxwPlRoZW4sIGp1c3QgZG91YmxlLWNsaWNrIHRoZSBXYXJwSU4gc2VsZi1pbnN0YWxsaW5n IGFyY2hpdmUsIHdoaWNoIHdpbGwgZ3VpZGUgeW91IHRocm91Z2ggdGhlIGluc3RhbGxhdGlv bgotICAgICAgICBwcm9jZXNzLiBBIHNoYWRvdyBvZiB0aGUgPHNwYW4gY2xhc3M9IkFQUExJ Q0FUSU9OIj5Qcml2b3h5PC9zcGFuPiBleGVjdXRhYmxlIHdpbGwgYmUgcGxhY2VkIGluIHlv dXIgc3RhcnR1cAotICAgICAgICBmb2xkZXIgc28gaXQgd2lsbCBzdGFydCBhdXRvbWF0aWNh bGx5IHdoZW5ldmVyIE9TLzIgc3RhcnRzLjwvcD4KLSAgICAgICAgPHA+VGhlIGRpcmVjdG9y eSB5b3UgY2hvb3NlIHRvIGluc3RhbGwgPHNwYW4gY2xhc3M9IkFQUExJQ0FUSU9OIj5Qcml2 b3h5PC9zcGFuPiBpbnRvIHdpbGwgY29udGFpbiBhbGwgb2YgdGhlCi0gICAgICAgIGNvbmZp Z3VyYXRpb24gZmlsZXMuPC9wPgotICAgICAgPC9kaXY+Ci0gICAgICA8ZGl2IGNsYXNzPSJT RUNUMyI+Ci0gICAgICAgIDxoMyBjbGFzcz0iU0VDVDMiPjxhIG5hbWU9IklOU1RBTExBVElP Ti1NQUMiIGlkPSJJTlNUQUxMQVRJT04tTUFDIj4yLjEuNC4gTWFjIE9TIFg8L2E+PC9oMz4K KyAgICAgICAgPGgzIGNsYXNzPSJTRUNUMyI+PGEgbmFtZT0iSU5TVEFMTEFUSU9OLU1BQyIg aWQ9IklOU1RBTExBVElPTi1NQUMiPjIuMS4zLiBNYWMgT1MgWDwvYT48L2gzPgogICAgICAg ICA8cD5JbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGZvciB0aGUgT1MgWCBwbGF0Zm9ybSBk ZXBlbmQgdXBvbiB3aGV0aGVyIHlvdSBkb3dubG9hZGVkIGEgcmVhZHktYnVpbHQKICAgICAg ICAgaW5zdGFsbGF0aW9uIHBhY2thZ2UgKC5wa2cgb3IgLm1wa2cpIG9yIGhhdmUgZG93bmxv YWRlZCB0aGUgc291cmNlIGNvZGUuPC9wPgogICAgICAgPC9kaXY+CiAgICAgICA8ZGl2IGNs YXNzPSJTRUNUMyI+Ci0gICAgICAgIDxoNCBjbGFzcz0iU0VDVDMiPjxhIG5hbWU9Ik9TLVgt SU5TVEFMTC1GUk9NLVBBQ0tBR0UiIGlkPSJPUy1YLUlOU1RBTEwtRlJPTS1QQUNLQUdFIj4y LjEuNS4gSW5zdGFsbGF0aW9uIGZyb20KKyAgICAgICAgPGg0IGNsYXNzPSJTRUNUMyI+PGEg bmFtZT0iT1MtWC1JTlNUQUxMLUZST00tUEFDS0FHRSIgaWQ9Ik9TLVgtSU5TVEFMTC1GUk9N LVBBQ0tBR0UiPjIuMS40LiBJbnN0YWxsYXRpb24gZnJvbQogICAgICAgICByZWFkeS1idWls dCBwYWNrYWdlPC9hPjwvaDQ+CiAgICAgICAgIDxwPlRoZSBkb3dubG9hZGVkIGZpbGUgd2ls bCBlaXRoZXIgYmUgYSAucGtnIChmb3IgT1MgWCAxMC41IHVwd2FyZHMpIG9yIGEgYnppcHBl ZCAubXBrZyBmaWxlIChmb3IgT1MgWCAxMC40KS4KICAgICAgICAgVGhlIGZvcm1lciBjYW4g YmUgZG91YmxlLWNsaWNrZWQgYXMgaXMgYW5kIHRoZSBpbnN0YWxsYXRpb24gd2lsbCBzdGFy dDsgZG91YmxlLWNsaWNraW5nIHRoZSBsYXR0ZXIgd2lsbCB1bnppcApAQCAtMTAxLDcgKzg5 LDcgQEAKICAgICAgICAgPHA+VG8gdW5pbnN0YWxsLCBydW4gL0FwcGxpY2F0aW9ucy9Qcml2 b3h5L3VuaW5zdGFsbC5jb21tYW5kIGFzIHN1ZG8gZnJvbSBhbiBhZG1pbmlzdHJhdG9yIGFj Y291bnQuPC9wPgogICAgICAgPC9kaXY+CiAgICAgICA8ZGl2IGNsYXNzPSJTRUNUMyI+Ci0g ICAgICAgIDxoNCBjbGFzcz0iU0VDVDMiPjxhIG5hbWU9Ik9TLVgtSU5TVEFMTC1GUk9NLVNP VVJDRSIgaWQ9Ik9TLVgtSU5TVEFMTC1GUk9NLVNPVVJDRSI+Mi4xLjYuIEluc3RhbGxhdGlv biBmcm9tCisgICAgICAgIDxoNCBjbGFzcz0iU0VDVDMiPjxhIG5hbWU9Ik9TLVgtSU5TVEFM TC1GUk9NLVNPVVJDRSIgaWQ9Ik9TLVgtSU5TVEFMTC1GUk9NLVNPVVJDRSI+Mi4xLjUuIElu c3RhbGxhdGlvbiBmcm9tCiAgICAgICAgIHNvdXJjZTwvYT48L2g0PgogICAgICAgICA8cD5U byBidWlsZCBhbmQgaW5zdGFsbCB0aGUgUHJpdm94eSBzb3VyY2UgY29kZSBvbiBPUyBYIHlv dSB3aWxsIG5lZWQgdG8gb2J0YWluIHRoZSBtYWNzZXR1cCBtb2R1bGUgZnJvbSB0aGUKICAg ICAgICAgUHJpdm94eSBTb3VyY2Vmb3JnZSBDVlMgcmVwb3NpdG9yeSAocmVmZXIgdG8gU291 cmNlZm9yZ2UgaGVscCBmb3IgZGV0YWlscyBvZiBob3cgdG8gc2V0IHVwIGEgQ1ZTIGNsaWVu dCB0byBoYXZlCkBAIC0xMjEsNyArMTA5LDcgQEAKICAgICAgICAgPHA+VG8gdW5pbnN0YWxs LCBydW4gdGhlIG1hY3NldHVwIG1vZHVsZSdzIHVuaW5zdGFsbC5zaCBhcyBzdWRvIGZyb20g YW4gYWRtaW5pc3RyYXRvciBhY2NvdW50LjwvcD4KICAgICAgIDwvZGl2PgogICAgICAgPGRp diBjbGFzcz0iU0VDVDMiPgotICAgICAgICA8aDMgY2xhc3M9IlNFQ1QzIj48YSBuYW1lPSJJ TlNUQUxMQVRJT04tRlJFRUJTRCIgaWQ9IklOU1RBTExBVElPTi1GUkVFQlNEIj4yLjEuNy4g RnJlZUJTRDwvYT48L2gzPgorICAgICAgICA8aDMgY2xhc3M9IlNFQ1QzIj48YSBuYW1lPSJJ TlNUQUxMQVRJT04tRlJFRUJTRCIgaWQ9IklOU1RBTExBVElPTi1GUkVFQlNEIj4yLjEuNi4g RnJlZUJTRDwvYT48L2gzPgogICAgICAgICA8cD5Qcml2b3h5IGlzIHBhcnQgb2YgRnJlZUJT RCdzIFBvcnRzIENvbGxlY3Rpb24sIHlvdSBjYW4gYnVpbGQgYW5kIGluc3RhbGwgaXQgd2l0 aCA8dHQgY2xhc3M9IkxJVEVSQUwiPmNkCiAgICAgICAgIC91c3IvcG9ydHMvd3d3L3ByaXZv eHk7IG1ha2UgaW5zdGFsbCBjbGVhbjwvdHQ+LjwvcD4KICAgICAgIDwvZGl2PgpkaWZmIC0t Z2l0IGEvZG9jL3dlYnNlcnZlci91c2VyLW1hbnVhbC9xdWlja3N0YXJ0Lmh0bWwgYi9kb2Mv d2Vic2VydmVyL3VzZXItbWFudWFsL3F1aWNrc3RhcnQuaHRtbAppbmRleCA3ZmMwZWRmNy4u MTE5Mzc0NmMgMTAwNjQ0Ci0tLSBhL2RvYy93ZWJzZXJ2ZXIvdXNlci1tYW51YWwvcXVpY2tz dGFydC5odG1sCisrKyBiL2RvYy93ZWJzZXJ2ZXIvdXNlci1tYW51YWwvcXVpY2tzdGFydC5o dG1sCkBAIC0yMTksNyArMjE5LDcgQEAKICAgICAgICAgICA8cD5GaW5kIDx0dCBjbGFzcz0i RklMRU5BTUUiPnVzZXIuYWN0aW9uPC90dD4gaW4gdGhlIHRvcCBzZWN0aW9uLCBhbmQgY2xp Y2sgb24gPHNwYW4gY2xhc3M9CiAgICAgICAgICAgIlFVT1RFIj4iPHNwYW4gY2xhc3M9IkdV SUJVVFRPTiI+RWRpdDwvc3Bhbj4iPC9zcGFuPjo8L3A+CiAgICAgICAgICAgPGRpdiBjbGFz cz0iRklHVVJFIj4KLSAgICAgICAgICAgIDxhIG5hbWU9IkFFTjY3NCIgaWQ9IkFFTjY3NCI+ PC9hPgorICAgICAgICAgICAgPGEgbmFtZT0iQUVONjYzIiBpZD0iQUVONjYzIj48L2E+CiAg ICAgICAgICAgICA8cD48Yj5GaWd1cmUgMS4gQWN0aW9ucyBGaWxlcyBpbiBVc2U8L2I+PC9w PgogICAgICAgICAgICAgPGRpdiBjbGFzcz0iTUVESUFPQkpFQ1QiPgogICAgICAgICAgICAg ICA8cD48aW1nIHNyYz0iZmlsZXMtaW4tdXNlLmpwZyI+PC9wPgpkaWZmIC0tZ2l0IGEvZG9j L3dlYnNlcnZlci91c2VyLW1hbnVhbC9zdGFydHVwLmh0bWwgYi9kb2Mvd2Vic2VydmVyL3Vz ZXItbWFudWFsL3N0YXJ0dXAuaHRtbAppbmRleCA1N2IyNDk0Yi4uZGRjYWQ3NzkgMTAwNjQ0 Ci0tLSBhL2RvYy93ZWJzZXJ2ZXIvdXNlci1tYW51YWwvc3RhcnR1cC5odG1sCisrKyBiL2Rv Yy93ZWJzZXJ2ZXIvdXNlci1tYW51YWwvc3RhcnR1cC5odG1sCkBAIC0zNSw3ICszNSw3IEBA CiAgICAgPHA+UGxlYXNlIG5vdGUgdGhhdCA8c3BhbiBjbGFzcz0iQVBQTElDQVRJT04iPlBy aXZveHk8L3NwYW4+IGNhbiBvbmx5IHByb3h5IEhUVFAgYW5kIEhUVFBTIHRyYWZmaWMuIEl0 IHdpbGwgbm90CiAgICAgd29yayB3aXRoIEZUUCBvciBvdGhlciBwcm90b2NvbHMuPC9wPgog ICAgIDxkaXYgY2xhc3M9IkZJR1VSRSI+Ci0gICAgICA8YSBuYW1lPSJBRU43MjgiIGlkPSJB RU43MjgiPjwvYT4KKyAgICAgIDxhIG5hbWU9IkFFTjcxNyIgaWQ9IkFFTjcxNyI+PC9hPgog ICAgICAgPHA+PGI+RmlndXJlIDIuIFByb3h5IENvbmZpZ3VyYXRpb24gU2hvd2luZyBNb3pp bGxhL05ldHNjYXBlIEhUVFAgYW5kIEhUVFBTIChTU0wpIFNldHRpbmdzPC9iPjwvcD4KICAg ICAgIDxkaXYgY2xhc3M9Ik1FRElBT0JKRUNUIj4KICAgICAgICAgPHA+PGltZyBzcmM9InBy b3h5X3NldHVwLmpwZyI+PC9wPgpAQCAtNjcsNyArNjcsNyBAQAogICAgIHByb3RvY29scyI8 L3NwYW4+IGlzIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGkgY2xhc3M9IkVNUEhBU0lTIj5V TkNIRUNLRUQ8L2k+PC9zcGFuPi4gWW91IHdhbnQgb25seSBIVFRQIGFuZCBIVFRQUwogICAg IChTU0wpITwvcD4KICAgICA8ZGl2IGNsYXNzPSJGSUdVUkUiPgotICAgICAgPGEgbmFtZT0i QUVONzcyIiBpZD0iQUVONzcyIj48L2E+CisgICAgICA8YSBuYW1lPSJBRU43NjEiIGlkPSJB RU43NjEiPjwvYT4KICAgICAgIDxwPjxiPkZpZ3VyZSAzLiBQcm94eSBDb25maWd1cmF0aW9u IFNob3dpbmcgSW50ZXJuZXQgRXhwbG9yZXIgSFRUUCBhbmQgSFRUUFMgKFNlY3VyZSkgU2V0 dGluZ3M8L2I+PC9wPgogICAgICAgPGRpdiBjbGFzcz0iTUVESUFPQkpFQ1QiPgogICAgICAg ICA8cD48aW1nIHNyYz0icHJveHkyLmpwZyI+PC9wPgpAQCAtMTM2LDEzICsxMzYsNyBAQAog ICAgICAgIkFQUExJQ0FUSU9OIj5Qcml2b3h5PC9zcGFuPiB1cG9uIGJvb3QuPC9wPgogICAg IDwvZGl2PgogICAgIDxkaXYgY2xhc3M9IlNFQ1QyIj4KLSAgICAgIDxoMiBjbGFzcz0iU0VD VDIiPjxhIG5hbWU9IlNUQVJULU9TMiIgaWQ9IlNUQVJULU9TMiI+NS41LiBPUy8yPC9hPjwv aDI+Ci0gICAgICA8cD5EdXJpbmcgaW5zdGFsbGF0aW9uLCA8c3BhbiBjbGFzcz0iQVBQTElD QVRJT04iPlByaXZveHk8L3NwYW4+IGlzIGNvbmZpZ3VyZWQgdG8gc3RhcnQgYXV0b21hdGlj YWxseSB3aGVuIHRoZQotICAgICAgc3lzdGVtIHJlc3RhcnRzLiBZb3UgY2FuIHN0YXJ0IGl0 IG1hbnVhbGx5IGJ5IGRvdWJsZS1jbGlja2luZyBvbiB0aGUgPHNwYW4gY2xhc3M9IkFQUExJ Q0FUSU9OIj5Qcml2b3h5PC9zcGFuPgotICAgICAgaWNvbiBpbiB0aGUgPHNwYW4gY2xhc3M9 IkFQUExJQ0FUSU9OIj5Qcml2b3h5PC9zcGFuPiBmb2xkZXIuPC9wPgotICAgIDwvZGl2Pgot ICAgIDxkaXYgY2xhc3M9IlNFQ1QyIj4KLSAgICAgIDxoMiBjbGFzcz0iU0VDVDIiPjxhIG5h bWU9IlNUQVJULU1BQ09TWCIgaWQ9IlNUQVJULU1BQ09TWCI+NS42LiBNYWMgT1MgWDwvYT48 L2gyPgorICAgICAgPGgyIGNsYXNzPSJTRUNUMiI+PGEgbmFtZT0iU1RBUlQtTUFDT1NYIiBp ZD0iU1RBUlQtTUFDT1NYIj41LjUuIE1hYyBPUyBYPC9hPjwvaDI+CiAgICAgICA8cD5UaGUg cHJpdm94eSBzZXJ2aWNlIHdpbGwgYXV0b21hdGljYWxseSBzdGFydCBhZnRlciBhIHN1Y2Nl c3NmdWwgaW5zdGFsbGF0aW9uIChhbmQgdGhlcmVhZnRlciBldmVyeSB0aW1lIHlvdXIKICAg ICAgIGNvbXB1dGVyIHN0YXJ0cyB1cCkgaG93ZXZlciB5b3Ugd2lsbCBuZWVkIHRvIGNvbmZp Z3VyZSB5b3VyIHdlYiBicm93c2VyKHMpIHRvIHVzZSBpdC4gVG8gZG8gc28sIGNvbmZpZ3Vy ZSB0aGVtIHRvCiAgICAgICB1c2UgYSBwcm94eSBmb3IgSFRUUCBhbmQgSFRUUFMgYXQgdGhl IGFkZHJlc3MgMTI3LjAuMC4xOjgxMTguPC9wPgpAQCAtMTUzLDcgKzE0Nyw3IEBACiAgICAg ICAvQXBwbGljYXRpb25zL1ByaXZveHkuIFRoZXkgbXVzdCBiZSBydW4gZnJvbSBhbiBhZG1p bmlzdHJhdG9yIGFjY291bnQsIHVzaW5nIHN1ZG8uPC9wPgogICAgIDwvZGl2PgogICAgIDxk aXYgY2xhc3M9IlNFQ1QyIj4KLSAgICAgIDxoMiBjbGFzcz0iU0VDVDIiPjxhIG5hbWU9IkNN RE9QVElPTlMiIGlkPSJDTURPUFRJT05TIj41LjcuIENvbW1hbmQgTGluZSBPcHRpb25zPC9h PjwvaDI+CisgICAgICA8aDIgY2xhc3M9IlNFQ1QyIj48YSBuYW1lPSJDTURPUFRJT05TIiBp ZD0iQ01ET1BUSU9OUyI+NS42LiBDb21tYW5kIExpbmUgT3B0aW9uczwvYT48L2gyPgogICAg ICAgPHA+PHNwYW4gY2xhc3M9IkFQUExJQ0FUSU9OIj5Qcml2b3h5PC9zcGFuPiBtYXkgYmUg aW52b2tlZCB3aXRoIHRoZSBmb2xsb3dpbmcgY29tbWFuZC1saW5lIG9wdGlvbnM6PC9wPgog ICAgICAgPHVsPgogICAgICAgICA8bGk+Ci0tIAoyLjExLjAKCg== --------------54E0AF7966BC6630B1C2436B Content-Type: application/x-patch; name="0007-Remove-the-fallback-snprintf-implementation.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0007-Remove-the-fallback-snprintf-implementation.patch" RnJvbSA5ZTc1MmYyYmU1ODFkMTVkYWU3MmYwMDY1NzBjYTNlMDUzZGMwMDM2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGYWJpYW4gS2VpbCA8ZmtAZmFiaWFua2VpbC5kZT4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxNDo1NTo0MSArMDIwMApTdWJqZWN0OiBbUEFUQ0gg Ny83XSBSZW1vdmUgdGhlIGZhbGxiYWNrIHNucHJpbnRmKCkgaW1wbGVtZW50YXRpb24KCk5v dyB0aGF0IE9TLzIgc3VwcG9ydCBpcyBnb25lIHdlIG5vIGxvbmdlciBuZWVkIGl0LgotLS0K IG1pc2N1dGlsLmMgfCA3NzAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbWlzY3V0aWwuaCB8ICAgNCAtCiAyIGZpbGVz IGNoYW5nZWQsIDc3NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9taXNjdXRpbC5jIGIv bWlzY3V0aWwuYwppbmRleCBjYmE1ODliZi4uNDk5NTc5ZjcgMTAwNjQ0Ci0tLSBhL21pc2N1 dGlsLmMKKysrIGIvbWlzY3V0aWwuYwpAQCAtMTcsMTEgKzE3LDYgQEAKICAqICAgICAgICAg ICAgICAgIFRoZSB0aW1lZ20gcmVwbGFjZW1lbnQgZnVuY3Rpb24gd2FzIHRha2VuIGZyb20g R251UEcsCiAgKiAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDIwMDQgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgKgotICogICAgICAgICAgICAgICAgVGhlIHNucHJp bnRmIHJlcGxhY2VtZW50IGZ1bmN0aW9uIGlzIHdyaXR0ZW4gYnkKLSAqICAgICAgICAgICAg ICAgIE1hcmsgTWFydGluZWMgd2hvIGFsc28gaG9sZHMgdGhlIGNvcHlyaWdodC4gSXQgY2Fu IGJlCi0gKiAgICAgICAgICAgICAgICB1c2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR1BM IG9yIHRoZSB0ZXJtcyBvZiB0aGUKLSAqICAgICAgICAgICAgICAgICJGcm9udGllciBBcnRp c3RpYyBMaWNlbnNlIi4KLSAqCiAgKiAgICAgICAgICAgICAgICBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQKICAqICAgICAgICAgICAg ICAgIGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bAogICogICAgICAgICAgICAgICAgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlCkBAIC05NzAsNzcxICs5NjUsNiBAQCB0aW1lX3QgdGltZWdtKHN0 cnVjdCB0bSAqdG0pCiAjZW5kaWYgLyogIWRlZmluZWQoSEFWRV9USU1FR00pICYmIGRlZmlu ZWQoSEFWRV9UWlNFVCkgJiYgZGVmaW5lZChIQVZFX1BVVEVOVikgKi8KIAogCi0jaWZuZGVm IEhBVkVfU05QUklOVEYKLS8qCi0gKiBXaGF0IGZvbGxvd3MgaXMgYSBwb3J0YWJsZSBzbnBy aW50ZiByb3V0aW5lLCB3cml0dGVuIGJ5IE1hcmsgTWFydGluZWMuCi0gKiBTZWU6IGh0dHA6 Ly93d3cuaWpzLnNpL3NvZnR3YXJlL3NucHJpbnRmLwotCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc25wcmludGYuYwotICAgICAgICAgICAgICAgICAgIC0gYSBwb3J0 YWJsZSBpbXBsZW1lbnRhdGlvbiBvZiBzbnByaW50ZiwKLSAgICAgICBpbmNsdWRpbmcgdnNu cHJpbnRmLmMsIGFzbnByaW50ZiwgdmFzbnByaW50ZiwgYXNwcmludGYsIHZhc3ByaW50Zgot Ci0gICBzbnByaW50ZiBpcyBhIHJvdXRpbmUgdG8gY29udmVydCBudW1lcmljIGFuZCBzdHJp bmcgYXJndW1lbnRzIHRvCi0gICBmb3JtYXR0ZWQgc3RyaW5ncy4gSXQgaXMgc2ltaWxhciB0 byBzcHJpbnRmKDMpIHByb3ZpZGVkIGluIGEgc3lzdGVtJ3MKLSAgIEMgbGlicmFyeSwgeWV0 IGl0IHJlcXVpcmVzIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgLSB0aGUgYnVmZmVyIHNpemUg LQotICAgYW5kIGl0IGd1YXJhbnRlZXMgbmV2ZXIgdG8gc3RvcmUgYW55dGhpbmcgYmV5b25k IHRoZSBnaXZlbiBidWZmZXIsCi0gICByZWdhcmRsZXNzIG9mIHRoZSBmb3JtYXQgb3IgYXJn dW1lbnRzIHRvIGJlIGZvcm1hdHRlZC4gU29tZSBuZXdlcgotICAgb3BlcmF0aW5nIHN5c3Rl bXMgZG8gcHJvdmlkZSBzbnByaW50ZiBpbiB0aGVpciBDIGxpYnJhcnksIGJ1dCBtYW55IGRv Ci0gICBub3Qgb3IgZG8gcHJvdmlkZSBhbiBpbmFkZXF1YXRlIChzbG93IG9yIGlkaW9zeW5j cmF0aWMpIHZlcnNpb24sIHdoaWNoCi0gICBjYWxscyBmb3IgYSBwb3J0YWJsZSBpbXBsZW1l bnRhdGlvbiBvZiB0aGlzIHJvdXRpbmUuCi0KLUF1dGhvcgotCi0gICBNYXJrIE1hcnRpbmVj IDxtYXJrLm1hcnRpbmVjQGlqcy5zaT4sIEFwcmlsIDE5OTksIEp1bmUgMjAwMAotICAgQ29w eXJpZ2h0IKkgMTk5OSwgTWFyayBNYXJ0aW5lYwotCi0gKi8KLQotI2RlZmluZSBQT1JUQUJM RV9TTlBSSU5URl9WRVJTSU9OX01BSk9SIDIKLSNkZWZpbmUgUE9SVEFCTEVfU05QUklOVEZf VkVSU0lPTl9NSU5PUiAyCi0KLSNpZiBkZWZpbmVkKE5FRURfQVNQUklOVEYpIHx8IGRlZmlu ZWQoTkVFRF9BU05QUklOVEYpIHx8IGRlZmluZWQoTkVFRF9WQVNQUklOVEYpIHx8IGRlZmlu ZWQoTkVFRF9WQVNOUFJJTlRGKQotIyBpZiBkZWZpbmVkKE5FRURfU05QUklOVEZfT05MWSkK LSMgdW5kZWYgTkVFRF9TTlBSSU5URl9PTkxZCi0jIGVuZGlmCi0jIGlmICFkZWZpbmVkKFBS RUZFUl9QT1JUQUJMRV9TTlBSSU5URikKLSMgZGVmaW5lIFBSRUZFUl9QT1JUQUJMRV9TTlBS SU5URgotIyBlbmRpZgotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKFNPTEFSSVNfQlVHX0NPTVBB VElCTEUpICYmICFkZWZpbmVkKFNPTEFSSVNfQ09NUEFUSUJMRSkKLSNkZWZpbmUgU09MQVJJ U19DT01QQVRJQkxFCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoSFBVWF9CVUdfQ09NUEFUSUJM RSkgJiYgIWRlZmluZWQoSFBVWF9DT01QQVRJQkxFKQotI2RlZmluZSBIUFVYX0NPTVBBVElC TEUKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChESUdJVEFMX1VOSVhfQlVHX0NPTVBBVElCTEUp ICYmICFkZWZpbmVkKERJR0lUQUxfVU5JWF9DT01QQVRJQkxFKQotI2RlZmluZSBESUdJVEFM X1VOSVhfQ09NUEFUSUJMRQotI2VuZGlmCi0KLSNpZiBkZWZpbmVkKFBFUkxfQlVHX0NPTVBB VElCTEUpICYmICFkZWZpbmVkKFBFUkxfQ09NUEFUSUJMRSkKLSNkZWZpbmUgUEVSTF9DT01Q QVRJQkxFCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoTElOVVhfQlVHX0NPTVBBVElCTEUpICYm ICFkZWZpbmVkKExJTlVYX0NPTVBBVElCTEUpCi0jZGVmaW5lIExJTlVYX0NPTVBBVElCTEUK LSNlbmRpZgotCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+ Ci0jaW5jbHVkZSA8c3RkbGliLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxz dGRhcmcuaD4KLSNpbmNsdWRlIDxhc3NlcnQuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotCi0j aWZkZWYgaXNkaWdpdAotI3VuZGVmIGlzZGlnaXQKLSNlbmRpZgotI2RlZmluZSBpc2RpZ2l0 KGMpICgoYykgPj0gJzAnICYmIChjKSA8PSAnOScpCi0KLS8qIEZvciBjb3B5aW5nIHN0cmlu Z3MgbG9uZ2VyIG9yIGVxdWFsIHRvICdicmVha2V2ZW5fcG9pbnQnCi0gKiBpdCBpcyBtb3Jl IGVmZmljaWVudCB0byBjYWxsIG1lbWNweSgpIHRoYW4gdG8gZG8gaXQgaW5saW5lLgotICog VGhlIHZhbHVlIGRlcGVuZHMgbW9zdGx5IG9uIHRoZSBwcm9jZXNzb3IgYXJjaGl0ZWN0dXJl LAotICogYnV0IGFsc28gb24gdGhlIGNvbXBpbGVyIGFuZCBpdHMgb3B0aW1pemF0aW9uIGNh cGFiaWxpdGllcy4KLSAqIFRoZSB2YWx1ZSBpcyBub3QgY3JpdGljYWwsIHNvbWUgc21hbGwg dmFsdWUgZ3JlYXRlciB0aGFuIHplcm8KLSAqIHdpbGwgYmUganVzdCBmaW5lIGlmIHlvdSBk b24ndCBjYXJlIHRvIHNxdWVlemUgZXZlcnkgZHJvcAotICogb2YgcGVyZm9ybWFuY2Ugb3V0 IG9mIHRoZSBjb2RlLgotICoKLSAqIFNtYWxsIHZhbHVlcyBmYXZvciBtZW1jcHksIGxhcmdl IHZhbHVlcyBmYXZvciBpbmxpbmUgY29kZS4KLSAqLwotI2lmIGRlZmluZWQoX19hbHBoYV9f KSB8fCBkZWZpbmVkKF9fYWxwaGEpCi0jICBkZWZpbmUgYnJlYWtldmVuX3BvaW50ICAgMiAg ICAvKiBBWFAgKERFQyBBbHBoYSkgICAgIC0gZ2NjIG9yIGNjIG9yIGVnY3MgKi8KLSNlbmRp ZgotI2lmIGRlZmluZWQoX19pMzg2X18pICB8fCBkZWZpbmVkKF9faTM4NikKLSMgIGRlZmlu ZSBicmVha2V2ZW5fcG9pbnQgIDEyICAgIC8qIEludGVsIFBlbnRpdW0vTGludXggLSBnY2Mg Mi45NiAqLwotI2VuZGlmCi0jaWYgZGVmaW5lZChfX2hwcGEpCi0jICBkZWZpbmUgYnJlYWtl dmVuX3BvaW50ICAxMCAgICAvKiBIUC1QQSAgICAgICAgICAgICAgIC0gZ2NjICovCi0jZW5k aWYKLSNpZiBkZWZpbmVkKF9fc3BhcmNfXykgfHwgZGVmaW5lZChfX3NwYXJjKQotIyAgZGVm aW5lIGJyZWFrZXZlbl9wb2ludCAgMzMgICAgLyogU3VuIFNwYXJjIDUgICAgICAgICAtIGdj YyAyLjguMSAqLwotI2VuZGlmCi0KLS8qIHNvbWUgb3RoZXIgdmFsdWVzIG9mIHBvc3NpYmxl IGludGVyZXN0OiAqLwotLyogI2RlZmluZSBicmVha2V2ZW5fcG9pbnQgIDggKi8gLyogVkFY IDQwMDAgICAgICAgICAgLSB2YXhjICovCi0vKiAjZGVmaW5lIGJyZWFrZXZlbl9wb2ludCAx OSAqLyAvKiBWQVggNDAwMCAgICAgICAgICAtIGdjYyAyLjcuMCAqLwotCi0jaWZuZGVmIGJy ZWFrZXZlbl9wb2ludAotIyAgZGVmaW5lIGJyZWFrZXZlbl9wb2ludCAgIDYgICAgLyogc29t ZSByZWFzb25hYmxlIG9uZS1zaXplLWZpdHMtYWxsIHZhbHVlICovCi0jZW5kaWYKLQotI2Rl ZmluZSBmYXN0X21lbWNweShkLHMsbikgXAotICB7IHJlZ2lzdGVyIHNpemVfdCBubiA9IChz aXplX3QpKG4pOyBcCi0gICAgaWYgKG5uID49IGJyZWFrZXZlbl9wb2ludCkgbWVtY3B5KChk KSwgKHMpLCBubik7IFwKLSAgICBlbHNlIGlmIChubiA+IDApIHsgLyogcHJvYyBjYWxsIG92 ZXJoZWFkIGlzIHdvcnRoIG9ubHkgZm9yIGxhcmdlIHN0cmluZ3MqL1wKLSAgICAgIHJlZ2lz dGVyIGNoYXIgKmRkOyByZWdpc3RlciBjb25zdCBjaGFyICpzczsgXAotICAgICAgZm9yIChz cz0ocyksIGRkPShkKTsgbm4+MDsgbm4tLSkgKmRkKysgPSAqc3MrKzsgfSB9Ci0KLSNkZWZp bmUgZmFzdF9tZW1zZXQoZCxjLG4pIFwKLSAgeyByZWdpc3RlciBzaXplX3Qgbm4gPSAoc2l6 ZV90KShuKTsgXAotICAgIGlmIChubiA+PSBicmVha2V2ZW5fcG9pbnQpIG1lbXNldCgoZCks IChpbnQpKGMpLCBubik7IFwKLSAgICBlbHNlIGlmIChubiA+IDApIHsgLyogcHJvYyBjYWxs IG92ZXJoZWFkIGlzIHdvcnRoIG9ubHkgZm9yIGxhcmdlIHN0cmluZ3MqL1wKLSAgICAgIHJl Z2lzdGVyIGNoYXIgKmRkOyByZWdpc3RlciBjb25zdCBpbnQgY2M9KGludCkoYyk7IFwKLSAg ICAgIGZvciAoZGQ9KGQpOyBubj4wOyBubi0tKSAqZGQrKyA9IGNjOyB9IH0KLQotLyogcHJv dG90eXBlcyAqLwotCi0jaWYgZGVmaW5lZChORUVEX0FTUFJJTlRGKQotaW50IGFzcHJpbnRm ICAgKGNoYXIgKipwdHIsIGNvbnN0IGNoYXIgKmZtdCwgLyphcmdzKi8gLi4uKTsKLSNlbmRp ZgotI2lmIGRlZmluZWQoTkVFRF9WQVNQUklOVEYpCi1pbnQgdmFzcHJpbnRmICAoY2hhciAq KnB0ciwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwKTsKLSNlbmRpZgotI2lmIGRlZmlu ZWQoTkVFRF9BU05QUklOVEYpCi1pbnQgYXNucHJpbnRmICAoY2hhciAqKnB0ciwgc2l6ZV90 IHN0cl9tLCBjb25zdCBjaGFyICpmbXQsIC8qYXJncyovIC4uLik7Ci0jZW5kaWYKLSNpZiBk ZWZpbmVkKE5FRURfVkFTTlBSSU5URikKLWludCB2YXNucHJpbnRmIChjaGFyICoqcHRyLCBz aXplX3Qgc3RyX20sIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCk7Ci0jZW5kaWYKLQot I2lmIGRlZmluZWQoSEFWRV9TTlBSSU5URikKLS8qIGRlY2xhcmUgb3VyIHBvcnRhYmxlIHNu cHJpbnRmICByb3V0aW5lIHVuZGVyIG5hbWUgcG9ydGFibGVfc25wcmludGYgICovCi0vKiBk ZWNsYXJlIG91ciBwb3J0YWJsZSB2c25wcmludGYgcm91dGluZSB1bmRlciBuYW1lIHBvcnRh YmxlX3ZzbnByaW50ZiAqLwotI2Vsc2UKLS8qIGRlY2xhcmUgb3VyIHBvcnRhYmxlIHJvdXRp bmVzIHVuZGVyIG5hbWVzIHNucHJpbnRmIGFuZCB2c25wcmludGYgKi8KLSNkZWZpbmUgcG9y dGFibGVfc25wcmludGYgc25wcmludGYKLSNpZiAhZGVmaW5lZChORUVEX1NOUFJJTlRGX09O TFkpCi0jZGVmaW5lIHBvcnRhYmxlX3ZzbnByaW50ZiB2c25wcmludGYKLSNlbmRpZgotI2Vu ZGlmCi0KLSNpZiAhZGVmaW5lZChIQVZFX1NOUFJJTlRGKSB8fCBkZWZpbmVkKFBSRUZFUl9Q T1JUQUJMRV9TTlBSSU5URikKLWludCBwb3J0YWJsZV9zbnByaW50ZihjaGFyICpzdHIsIHNp emVfdCBzdHJfbSwgY29uc3QgY2hhciAqZm10LCAvKmFyZ3MqLyAuLi4pOwotI2lmICFkZWZp bmVkKE5FRURfU05QUklOVEZfT05MWSkKLWludCBwb3J0YWJsZV92c25wcmludGYoY2hhciAq c3RyLCBzaXplX3Qgc3RyX20sIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCk7Ci0jZW5k aWYKLSNlbmRpZgotCi0vKiBkZWNsYXJhdGlvbnMgKi8KLQotc3RhdGljIGNoYXIgY3JlZGl0 c1tdID0gIlxuXAotQCgjKXNucHJpbnRmLmMsIHYyLjI6IE1hcmsgTWFydGluZWMsIDxtYXJr Lm1hcnRpbmVjQGlqcy5zaT5cblwKLUAoIylzbnByaW50Zi5jLCB2Mi4yOiBDb3B5cmlnaHQg MTk5OSwgTWFyayBNYXJ0aW5lYy4gRnJvbnRpZXIgQXJ0aXN0aWMgTGljZW5zZSBhcHBsaWVz LlxuXAotQCgjKXNucHJpbnRmLmMsIHYyLjI6IGh0dHA6Ly93d3cuaWpzLnNpL3NvZnR3YXJl L3NucHJpbnRmL1xuIjsKLQotI2lmIGRlZmluZWQoTkVFRF9BU1BSSU5URikKLWludCBhc3By aW50ZihjaGFyICoqcHRyLCBjb25zdCBjaGFyICpmbXQsIC8qYXJncyovIC4uLikgewotICB2 YV9saXN0IGFwOwotICBzaXplX3Qgc3RyX207Ci0gIGludCBzdHJfbDsKLQotICAqcHRyID0g TlVMTDsKLSAgdmFfc3RhcnQoYXAsIGZtdCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIG1lYXN1cmUgdGhlIHJlcXVpcmVkIHNpemUgKi8KLSAgc3RyX2wgPSBwb3J0YWJsZV92 c25wcmludGYoTlVMTCwgKHNpemVfdCkwLCBmbXQsIGFwKTsKLSAgdmFfZW5kKGFwKTsKLSAg YXNzZXJ0KHN0cl9sID49IDApOyAgICAgICAgLyogcG9zc2libGUgaW50ZWdlciBvdmVyZmxv dyBpZiBzdHJfbSA+IElOVF9NQVggKi8KLSAgKnB0ciA9IChjaGFyICopIG1hbGxvYyhzdHJf bSA9IChzaXplX3Qpc3RyX2wgKyAxKTsKLSAgaWYgKCpwdHIgPT0gTlVMTCkgeyBlcnJubyA9 IEVOT01FTTsgc3RyX2wgPSAtMTsgfQotICBlbHNlIHsKLSAgICBpbnQgc3RyX2wyOwotICAg IHZhX3N0YXJ0KGFwLCBmbXQpOwotICAgIHN0cl9sMiA9IHBvcnRhYmxlX3ZzbnByaW50Zigq cHRyLCBzdHJfbSwgZm10LCBhcCk7Ci0gICAgdmFfZW5kKGFwKTsKLSAgICBhc3NlcnQoc3Ry X2wyID09IHN0cl9sKTsKLSAgfQotICByZXR1cm4gc3RyX2w7Ci19Ci0jZW5kaWYKLQotI2lm IGRlZmluZWQoTkVFRF9WQVNQUklOVEYpCi1pbnQgdmFzcHJpbnRmKGNoYXIgKipwdHIsIGNv bnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcCkgewotICBzaXplX3Qgc3RyX207Ci0gIGludCBz dHJfbDsKLQotICAqcHRyID0gTlVMTDsKLSAgeyB2YV9saXN0IGFwMjsKLSAgICB2YV9jb3B5 KGFwMiwgYXApOyAgLyogZG9uJ3QgY29uc3VtZSB0aGUgb3JpZ2luYWwgYXAsIHdlJ2xsIG5l ZWQgaXQgYWdhaW4gKi8KLSAgICBzdHJfbCA9IHBvcnRhYmxlX3ZzbnByaW50ZihOVUxMLCAo c2l6ZV90KTAsIGZtdCwgYXAyKTsvKmdldCByZXF1aXJlZCBzaXplKi8KLSAgICB2YV9lbmQo YXAyKTsKLSAgfQotICBhc3NlcnQoc3RyX2wgPj0gMCk7ICAgICAgICAvKiBwb3NzaWJsZSBp bnRlZ2VyIG92ZXJmbG93IGlmIHN0cl9tID4gSU5UX01BWCAqLwotICAqcHRyID0gKGNoYXIg KikgbWFsbG9jKHN0cl9tID0gKHNpemVfdClzdHJfbCArIDEpOwotICBpZiAoKnB0ciA9PSBO VUxMKSB7IGVycm5vID0gRU5PTUVNOyBzdHJfbCA9IC0xOyB9Ci0gIGVsc2UgewotICAgIGlu dCBzdHJfbDIgPSBwb3J0YWJsZV92c25wcmludGYoKnB0ciwgc3RyX20sIGZtdCwgYXApOwot ICAgIGFzc2VydChzdHJfbDIgPT0gc3RyX2wpOwotICB9Ci0gIHJldHVybiBzdHJfbDsKLX0K LSNlbmRpZgotCi0jaWYgZGVmaW5lZChORUVEX0FTTlBSSU5URikKLWludCBhc25wcmludGYg KGNoYXIgKipwdHIsIHNpemVfdCBzdHJfbSwgY29uc3QgY2hhciAqZm10LCAvKmFyZ3MqLyAu Li4pIHsKLSAgdmFfbGlzdCBhcDsKLSAgaW50IHN0cl9sOwotCi0gICpwdHIgPSBOVUxMOwot ICB2YV9zdGFydChhcCwgZm10KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbWVh c3VyZSB0aGUgcmVxdWlyZWQgc2l6ZSAqLwotICBzdHJfbCA9IHBvcnRhYmxlX3ZzbnByaW50 ZihOVUxMLCAoc2l6ZV90KTAsIGZtdCwgYXApOwotICB2YV9lbmQoYXApOwotICBhc3NlcnQo c3RyX2wgPj0gMCk7ICAgICAgICAvKiBwb3NzaWJsZSBpbnRlZ2VyIG92ZXJmbG93IGlmIHN0 cl9tID4gSU5UX01BWCAqLwotICBpZiAoKHNpemVfdClzdHJfbCArIDEgPCBzdHJfbSkgc3Ry X20gPSAoc2l6ZV90KXN0cl9sICsgMTsgICAgICAvKiB0cnVuY2F0ZSAqLwotICAvKiBpZiBz dHJfbSBpcyAwLCBubyBidWZmZXIgaXMgYWxsb2NhdGVkLCBqdXN0IHNldCAqcHRyIHRvIE5V TEwgKi8KLSAgaWYgKHN0cl9tID09IDApIHsgIC8qIG5vdCBpbnRlcmVzdGVkIGluIHJlc3Vs dGluZyBzdHJpbmcsIGp1c3QgcmV0dXJuIHNpemUgKi8KLSAgfSBlbHNlIHsKLSAgICAqcHRy ID0gKGNoYXIgKikgbWFsbG9jKHN0cl9tKTsKLSAgICBpZiAoKnB0ciA9PSBOVUxMKSB7IGVy cm5vID0gRU5PTUVNOyBzdHJfbCA9IC0xOyB9Ci0gICAgZWxzZSB7Ci0gICAgICBpbnQgc3Ry X2wyOwotICAgICAgdmFfc3RhcnQoYXAsIGZtdCk7Ci0gICAgICBzdHJfbDIgPSBwb3J0YWJs ZV92c25wcmludGYoKnB0ciwgc3RyX20sIGZtdCwgYXApOwotICAgICAgdmFfZW5kKGFwKTsK LSAgICAgIGFzc2VydChzdHJfbDIgPT0gc3RyX2wpOwotICAgIH0KLSAgfQotICByZXR1cm4g c3RyX2w7Ci19Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTkVFRF9WQVNOUFJJTlRGKQotaW50 IHZhc25wcmludGYgKGNoYXIgKipwdHIsIHNpemVfdCBzdHJfbSwgY29uc3QgY2hhciAqZm10 LCB2YV9saXN0IGFwKSB7Ci0gIGludCBzdHJfbDsKLQotICAqcHRyID0gTlVMTDsKLSAgeyB2 YV9saXN0IGFwMjsKLSAgICB2YV9jb3B5KGFwMiwgYXApOyAgLyogZG9uJ3QgY29uc3VtZSB0 aGUgb3JpZ2luYWwgYXAsIHdlJ2xsIG5lZWQgaXQgYWdhaW4gKi8KLSAgICBzdHJfbCA9IHBv cnRhYmxlX3ZzbnByaW50ZihOVUxMLCAoc2l6ZV90KTAsIGZtdCwgYXAyKTsvKmdldCByZXF1 aXJlZCBzaXplKi8KLSAgICB2YV9lbmQoYXAyKTsKLSAgfQotICBhc3NlcnQoc3RyX2wgPj0g MCk7ICAgICAgICAvKiBwb3NzaWJsZSBpbnRlZ2VyIG92ZXJmbG93IGlmIHN0cl9tID4gSU5U X01BWCAqLwotICBpZiAoKHNpemVfdClzdHJfbCArIDEgPCBzdHJfbSkgc3RyX20gPSAoc2l6 ZV90KXN0cl9sICsgMTsgICAgICAvKiB0cnVuY2F0ZSAqLwotICAvKiBpZiBzdHJfbSBpcyAw LCBubyBidWZmZXIgaXMgYWxsb2NhdGVkLCBqdXN0IHNldCAqcHRyIHRvIE5VTEwgKi8KLSAg aWYgKHN0cl9tID09IDApIHsgIC8qIG5vdCBpbnRlcmVzdGVkIGluIHJlc3VsdGluZyBzdHJp bmcsIGp1c3QgcmV0dXJuIHNpemUgKi8KLSAgfSBlbHNlIHsKLSAgICAqcHRyID0gKGNoYXIg KikgbWFsbG9jKHN0cl9tKTsKLSAgICBpZiAoKnB0ciA9PSBOVUxMKSB7IGVycm5vID0gRU5P TUVNOyBzdHJfbCA9IC0xOyB9Ci0gICAgZWxzZSB7Ci0gICAgICBpbnQgc3RyX2wyID0gcG9y dGFibGVfdnNucHJpbnRmKCpwdHIsIHN0cl9tLCBmbXQsIGFwKTsKLSAgICAgIGFzc2VydChz dHJfbDIgPT0gc3RyX2wpOwotICAgIH0KLSAgfQotICByZXR1cm4gc3RyX2w7Ci19Ci0jZW5k aWYKLQotLyoKLSAqIElmIHRoZSBzeXN0ZW0gZG9lcyBoYXZlIHNucHJpbnRmIGFuZCB0aGUg cG9ydGFibGUgcm91dGluZSBpcyBub3QKLSAqIHNwZWNpZmljYWxseSByZXF1aXJlZCwgdGhp cyBtb2R1bGUgcHJvZHVjZXMgbm8gY29kZSBmb3Igc25wcmludGYvdnNucHJpbnRmLgotICov Ci0jaWYgIWRlZmluZWQoSEFWRV9TTlBSSU5URikgfHwgZGVmaW5lZChQUkVGRVJfUE9SVEFC TEVfU05QUklOVEYpCi0KLSNpZiAhZGVmaW5lZChORUVEX1NOUFJJTlRGX09OTFkpCi1pbnQg cG9ydGFibGVfc25wcmludGYoY2hhciAqc3RyLCBzaXplX3Qgc3RyX20sIGNvbnN0IGNoYXIg KmZtdCwgLyphcmdzKi8gLi4uKSB7Ci0gIHZhX2xpc3QgYXA7Ci0gIGludCBzdHJfbDsKLQot ICB2YV9zdGFydChhcCwgZm10KTsKLSAgc3RyX2wgPSBwb3J0YWJsZV92c25wcmludGYoc3Ry LCBzdHJfbSwgZm10LCBhcCk7Ci0gIHZhX2VuZChhcCk7Ci0gIHJldHVybiBzdHJfbDsKLX0K LSNlbmRpZgotCi0jaWYgZGVmaW5lZChORUVEX1NOUFJJTlRGX09OTFkpCi1pbnQgcG9ydGFi bGVfc25wcmludGYoY2hhciAqc3RyLCBzaXplX3Qgc3RyX20sIGNvbnN0IGNoYXIgKmZtdCwg LyphcmdzKi8gLi4uKSB7Ci0jZWxzZQotaW50IHBvcnRhYmxlX3ZzbnByaW50ZihjaGFyICpz dHIsIHNpemVfdCBzdHJfbSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFwKSB7Ci0jZW5k aWYKLQotI2lmIGRlZmluZWQoTkVFRF9TTlBSSU5URl9PTkxZKQotICB2YV9saXN0IGFwOwot I2VuZGlmCi0gIHNpemVfdCBzdHJfbCA9IDA7Ci0gIGNvbnN0IGNoYXIgKnAgPSBmbXQ7Ci0K LS8qIEluIGNvbnRyYXN0IHdpdGggUE9TSVgsIHRoZSBJU08gQzk5IG5vdyBzYXlzCi0gKiB0 aGF0IHN0ciBjYW4gYmUgTlVMTCBhbmQgc3RyX20gY2FuIGJlIDAuCi0gKiBUaGlzIGlzIG1v cmUgdXNlZnVsIHRoYW4gdGhlIG9sZDogIGlmIChzdHJfbSA8IDEpIHJldHVybiAtMTsgKi8K LQotI2lmIGRlZmluZWQoTkVFRF9TTlBSSU5URl9PTkxZKQotICB2YV9zdGFydChhcCwgZm10 KTsKLSNlbmRpZgotICBpZiAoIXApIHAgPSAiIjsKLSAgd2hpbGUgKCpwKSB7Ci0gICAgaWYg KCpwICE9ICclJykgewotICAgLyogaWYgKHN0cl9sIDwgc3RyX20pIHN0cltzdHJfbCsrXSA9 ICpwKys7ICAgIC0tIHRoaXMgd291bGQgYmUgc3VmZmljaWVudCAqLwotICAgLyogYnV0IHRo ZSBmb2xsb3dpbmcgY29kZSBhY2hpZXZlcyBiZXR0ZXIgcGVyZm9ybWFuY2UgZm9yIGNhc2Vz Ci0gICAgKiB3aGVyZSBmb3JtYXQgc3RyaW5nIGlzIGxvbmcgYW5kIGNvbnRhaW5zIGZldyBj b252ZXJzaW9ucyAqLwotICAgICAgY29uc3QgY2hhciAqcSA9IHN0cmNocihwKzEsJyUnKTsK LSAgICAgIHNpemVfdCBuID0gIXEgPyBzdHJsZW4ocCkgOiAocS1wKTsKLSAgICAgIGlmIChz dHJfbCA8IHN0cl9tKSB7Ci0gICAgICAgIHNpemVfdCBhdmFpbCA9IHN0cl9tLXN0cl9sOwot ICAgICAgICBmYXN0X21lbWNweShzdHIrc3RyX2wsIHAsIChuPmF2YWlsP2F2YWlsOm4pKTsK LSAgICAgIH0KLSAgICAgIHAgKz0gbjsgc3RyX2wgKz0gbjsKLSAgICB9IGVsc2UgewotICAg ICAgY29uc3QgY2hhciAqc3RhcnRpbmdfcDsKLSAgICAgIHNpemVfdCBtaW5fZmllbGRfd2lk dGggPSAwLCBwcmVjaXNpb24gPSAwOwotICAgICAgaW50IHplcm9fcGFkZGluZyA9IDAsIHBy ZWNpc2lvbl9zcGVjaWZpZWQgPSAwLCBqdXN0aWZ5X2xlZnQgPSAwOwotICAgICAgaW50IGFs dGVybmF0ZV9mb3JtID0gMCwgZm9yY2Vfc2lnbiA9IDA7Ci0gICAgICBpbnQgc3BhY2VfZm9y X3Bvc2l0aXZlID0gMTsgLyogSWYgYm90aCB0aGUgJyAnIGFuZCAnKycgZmxhZ3MgYXBwZWFy LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSAnICcgZmxhZyBz aG91bGQgYmUgaWdub3JlZC4gKi8KLSAgICAgIGNoYXIgbGVuZ3RoX21vZGlmaWVyID0gJ1ww JzsgICAgICAgICAgICAvKiBhbGxvd2VkIHZhbHVlczogXDAsIGgsIGwsIEwgKi8KLSAgICAg IGNoYXIgdG1wWzMyXTsvKiB0ZW1wb3JhcnkgYnVmZmVyIGZvciBzaW1wbGUgbnVtZXJpYy0+ c3RyaW5nIGNvbnZlcnNpb24gKi8KLQotICAgICAgY29uc3QgY2hhciAqc3RyX2FyZzsgICAg ICAvKiBzdHJpbmcgYWRkcmVzcyBpbiBjYXNlIG9mIHN0cmluZyBhcmd1bWVudCAqLwotICAg ICAgc2l6ZV90IHN0cl9hcmdfbDsgICAgICAgICAvKiBuYXR1cmFsIGZpZWxkIHdpZHRoIG9m IGFyZyB3aXRob3V0IHBhZGRpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYW5kIHNpZ24gKi8KLSAgICAgIHVuc2lnbmVkIGNoYXIgdWNoYXJfYXJnOwotICAgICAg ICAvKiB1bnNpZ25lZCBjaGFyIGFyZ3VtZW50IHZhbHVlIC0gb25seSBkZWZpbmVkIGZvciBj IGNvbnZlcnNpb24uCi0gICAgICAgICAgIE4uQi4gc3RhbmRhcmQgZXhwbGljaXRseSBzdGF0 ZXMgdGhlIGNoYXIgYXJndW1lbnQgZm9yCi0gICAgICAgICAgIHRoZSBjIGNvbnZlcnNpb24g aXMgdW5zaWduZWQgKi8KLQotICAgICAgc2l6ZV90IG51bWJlcl9vZl96ZXJvc190b19wYWQg PSAwOwotICAgICAgICAvKiBudW1iZXIgb2YgemVyb3MgdG8gYmUgaW5zZXJ0ZWQgZm9yIG51 bWVyaWMgY29udmVyc2lvbnMKLSAgICAgICAgICAgYXMgcmVxdWlyZWQgYnkgdGhlIHByZWNp c2lvbiBvciBtaW5pbWFsIGZpZWxkIHdpZHRoICovCi0KLSAgICAgIHNpemVfdCB6ZXJvX3Bh ZGRpbmdfaW5zZXJ0aW9uX2luZCA9IDA7Ci0gICAgICAgIC8qIGluZGV4IGludG8gdG1wIHdo ZXJlIHplcm8gcGFkZGluZyBpcyB0byBiZSBpbnNlcnRlZCAqLwotCi0gICAgICBjaGFyIGZt dF9zcGVjID0gJ1wwJzsKLSAgICAgICAgLyogY3VycmVudCBjb252ZXJzaW9uIHNwZWNpZmll ciBjaGFyYWN0ZXIgKi8KLQotICAgICAgc3RyX2FyZyA9IGNyZWRpdHM7LyoganVzdCB0byBt YWtlIGNvbXBpbGVyIGhhcHB5IChkZWZpbmVkIGJ1dCBub3QgdXNlZCkqLwotICAgICAgc3Ry X2FyZyA9IE5VTEw7Ci0gICAgICBzdGFydGluZ19wID0gcDsgcCsrOyAgLyogc2tpcCAnJScg Ki8KLSAgIC8qIHBhcnNlIGZsYWdzICovCi0gICAgICB3aGlsZSAoKnAgPT0gJzAnIHx8ICpw ID09ICctJyB8fCAqcCA9PSAnKycgfHwKLSAgICAgICAgICAgICAqcCA9PSAnICcgfHwgKnAg PT0gJyMnIHx8ICpwID09ICdcJycpIHsKLSAgICAgICAgc3dpdGNoICgqcCkgewotICAgICAg ICBjYXNlICcwJzogemVyb19wYWRkaW5nID0gMTsgYnJlYWs7Ci0gICAgICAgIGNhc2UgJy0n OiBqdXN0aWZ5X2xlZnQgPSAxOyBicmVhazsKLSAgICAgICAgY2FzZSAnKyc6IGZvcmNlX3Np Z24gPSAxOyBzcGFjZV9mb3JfcG9zaXRpdmUgPSAwOyBicmVhazsKLSAgICAgICAgY2FzZSAn ICc6IGZvcmNlX3NpZ24gPSAxOwotICAgICAvKiBJZiBib3RoIHRoZSAnICcgYW5kICcrJyBm bGFncyBhcHBlYXIsIHRoZSAnICcgZmxhZyBzaG91bGQgYmUgaWdub3JlZCAqLwotI2lmZGVm IFBFUkxfQ09NUEFUSUJMRQotICAgICAvKiAuLi4gYnV0IGluIFBlcmwgdGhlIGxhc3Qgb2Yg JyAnIGFuZCAnKycgYXBwbGllcyAqLwotICAgICAgICAgICAgICAgICAgc3BhY2VfZm9yX3Bv c2l0aXZlID0gMTsKLSNlbmRpZgotICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg IGNhc2UgJyMnOiBhbHRlcm5hdGVfZm9ybSA9IDE7IGJyZWFrOwotICAgICAgICBjYXNlICdc Jyc6IGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIHArKzsKLSAgICAgIH0KLSAgIC8qIElm IHRoZSAnMCcgYW5kICctJyBmbGFncyBib3RoIGFwcGVhciwgdGhlICcwJyBmbGFnIHNob3Vs ZCBiZSBpZ25vcmVkLiAqLwotCi0gICAvKiBwYXJzZSBmaWVsZCB3aWR0aCAqLwotICAgICAg aWYgKCpwID09ICcqJykgewotICAgICAgICBpbnQgajsKLSAgICAgICAgcCsrOyBqID0gdmFf YXJnKGFwLCBpbnQpOwotICAgICAgICBpZiAoaiA+PSAwKSBtaW5fZmllbGRfd2lkdGggPSBq OwotICAgICAgICBlbHNlIHsgbWluX2ZpZWxkX3dpZHRoID0gLWo7IGp1c3RpZnlfbGVmdCA9 IDE7IH0KLSAgICAgIH0gZWxzZSBpZiAoaXNkaWdpdCgoaW50KSgqcCkpKSB7Ci0gICAgICAg IC8qIHNpemVfdCBjb3VsZCBiZSB3aWRlciB0aGFuIHVuc2lnbmVkIGludDsKLSAgICAgICAg ICAgbWFrZSBzdXJlIHdlIHRyZWF0IGFyZ3VtZW50IGxpa2UgY29tbW9uIGltcGxlbWVudGF0 aW9ucyBkbyAqLwotICAgICAgICB1bnNpZ25lZCBpbnQgdWogPSAqcCsrIC0gJzAnOwotICAg ICAgICB3aGlsZSAoaXNkaWdpdCgoaW50KSgqcCkpKSB1aiA9IDEwKnVqICsgKHVuc2lnbmVk IGludCkoKnArKyAtICcwJyk7Ci0gICAgICAgIG1pbl9maWVsZF93aWR0aCA9IHVqOwotICAg ICAgfQotICAgLyogcGFyc2UgcHJlY2lzaW9uICovCi0gICAgICBpZiAoKnAgPT0gJy4nKSB7 Ci0gICAgICAgIHArKzsgcHJlY2lzaW9uX3NwZWNpZmllZCA9IDE7Ci0gICAgICAgIGlmICgq cCA9PSAnKicpIHsKLSAgICAgICAgICBpbnQgaiA9IHZhX2FyZyhhcCwgaW50KTsKLSAgICAg ICAgICBwKys7Ci0gICAgICAgICAgaWYgKGogPj0gMCkgcHJlY2lzaW9uID0gajsKLSAgICAg ICAgICBlbHNlIHsKLSAgICAgICAgICAgIHByZWNpc2lvbl9zcGVjaWZpZWQgPSAwOyBwcmVj aXNpb24gPSAwOwotICAgICAgICAgLyogTk9URToKLSAgICAgICAgICAqICAgU29sYXJpcyAy LjYgbWFuIHBhZ2UgY2xhaW1zIHRoYXQgaW4gdGhpcyBjYXNlIHRoZSBwcmVjaXNpb24KLSAg ICAgICAgICAqICAgc2hvdWxkIGJlIHNldCB0byAwLiAgRGlnaXRhbCBVbml4IDQuMCwgSFBV WCAxMCBhbmQgQlNEIG1hbiBwYWdlCi0gICAgICAgICAgKiAgIGNsYWltIHRoYXQgdGhpcyBj YXNlIHNob3VsZCBiZSB0cmVhdGVkIGFzIHVuc3BlY2lmaWVkIHByZWNpc2lvbiwKLSAgICAg ICAgICAqICAgd2hpY2ggaXMgd2hhdCB3ZSBkbyBoZXJlLgotICAgICAgICAgICovCi0gICAg ICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKGlzZGlnaXQoKGludCkoKnApKSkgewotICAg ICAgICAgIC8qIHNpemVfdCBjb3VsZCBiZSB3aWRlciB0aGFuIHVuc2lnbmVkIGludDsKLSAg ICAgICAgICAgICBtYWtlIHN1cmUgd2UgdHJlYXQgYXJndW1lbnQgbGlrZSBjb21tb24gaW1w bGVtZW50YXRpb25zIGRvICovCi0gICAgICAgICAgdW5zaWduZWQgaW50IHVqID0gKnArKyAt ICcwJzsKLSAgICAgICAgICB3aGlsZSAoaXNkaWdpdCgoaW50KSgqcCkpKSB1aiA9IDEwKnVq ICsgKHVuc2lnbmVkIGludCkoKnArKyAtICcwJyk7Ci0gICAgICAgICAgcHJlY2lzaW9uID0g dWo7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgIC8qIHBhcnNlICdoJywgJ2wnIGFuZCAnbGwn IGxlbmd0aCBtb2RpZmllcnMgKi8KLSAgICAgIGlmICgqcCA9PSAnaCcgfHwgKnAgPT0gJ2wn KSB7Ci0gICAgICAgIGxlbmd0aF9tb2RpZmllciA9ICpwOyBwKys7Ci0gICAgICAgIGlmIChs ZW5ndGhfbW9kaWZpZXIgPT0gJ2wnICYmICpwID09ICdsJykgeyAgIC8qIGRvdWJsZSBsID0g bG9uZyBsb25nICovCi0jaWZkZWYgU05QUklOVEZfTE9OR0xPTkdfU1VQUE9SVAotICAgICAg ICAgIGxlbmd0aF9tb2RpZmllciA9ICcyJzsgICAgICAgICAgICAgICAgICAvKiBkb3VibGUg bCBlbmNvZGVkIGFzICcyJyAqLwotI2Vsc2UKLSAgICAgICAgICBsZW5ndGhfbW9kaWZpZXIg PSAnbCc7ICAgICAgICAgICAgICAgICAvKiB0cmVhdCBpdCBhcyBhIHNpbmdsZSAnbCcgKi8K LSNlbmRpZgotICAgICAgICAgIHArKzsKLSAgICAgICAgfQotICAgICAgfQotICAgICAgZm10 X3NwZWMgPSAqcDsKLSAgIC8qIGNvbW1vbiBzeW5vbnltczogKi8KLSAgICAgIHN3aXRjaCAo Zm10X3NwZWMpIHsKLSAgICAgIGNhc2UgJ2knOiBmbXRfc3BlYyA9ICdkJzsgYnJlYWs7Ci0g ICAgICBjYXNlICdEJzogZm10X3NwZWMgPSAnZCc7IGxlbmd0aF9tb2RpZmllciA9ICdsJzsg YnJlYWs7Ci0gICAgICBjYXNlICdVJzogZm10X3NwZWMgPSAndSc7IGxlbmd0aF9tb2RpZmll ciA9ICdsJzsgYnJlYWs7Ci0gICAgICBjYXNlICdPJzogZm10X3NwZWMgPSAnbyc7IGxlbmd0 aF9tb2RpZmllciA9ICdsJzsgYnJlYWs7Ci0gICAgICBkZWZhdWx0OiBicmVhazsKLSAgICAg IH0KLSAgIC8qIGdldCBwYXJhbWV0ZXIgdmFsdWUsIGRvIGluaXRpYWwgcHJvY2Vzc2luZyAq LwotICAgICAgc3dpdGNoIChmbXRfc3BlYykgewotICAgICAgY2FzZSAnJSc6IC8qICUgYmVo YXZlcyBzaW1pbGFyIHRvICdzJyByZWdhcmRpbmcgZmxhZ3MgYW5kIGZpZWxkIHdpZHRocyAq LwotICAgICAgY2FzZSAnYyc6IC8qIGMgYmVoYXZlcyBzaW1pbGFyIHRvICdzJyByZWdhcmRp bmcgZmxhZ3MgYW5kIGZpZWxkIHdpZHRocyAqLwotICAgICAgY2FzZSAncyc6Ci0gICAgICAg IGxlbmd0aF9tb2RpZmllciA9ICdcMCc7ICAgICAgICAgIC8qIHdpbnRfdCBhbmQgd2NoYXJf dCBub3Qgc3VwcG9ydGVkICovCi0gICAgIC8qIHRoZSByZXN1bHQgb2YgemVybyBwYWRkaW5n IGZsYWcgd2l0aCBub24tbnVtZXJpYyBjb252ZXJzaW9uIHNwZWNpZmllciovCi0gICAgIC8q IGlzIHVuZGVmaW5lZC4gU29sYXJpcyBhbmQgSFBVWCAxMCBkb2VzIHplcm8gcGFkZGluZyBp biB0aGlzIGNhc2UsICAgICovCi0gICAgIC8qIERpZ2l0YWwgVW5peCBhbmQgTGludXggZG9l cyBub3QuICovCi0jaWYgIWRlZmluZWQoU09MQVJJU19DT01QQVRJQkxFKSAmJiAhZGVmaW5l ZChIUFVYX0NPTVBBVElCTEUpCi0gICAgICAgIHplcm9fcGFkZGluZyA9IDA7ICAgIC8qIHR1 cm4gemVybyBwYWRkaW5nIG9mZiBmb3Igc3RyaW5nIGNvbnZlcnNpb25zICovCi0jZW5kaWYK LSAgICAgICAgc3RyX2FyZ19sID0gMTsKLSAgICAgICAgc3dpdGNoIChmbXRfc3BlYykgewot ICAgICAgICBjYXNlICclJzoKLSAgICAgICAgICBzdHJfYXJnID0gcDsgYnJlYWs7Ci0gICAg ICAgIGNhc2UgJ2MnOiB7Ci0gICAgICAgICAgaW50IGogPSB2YV9hcmcoYXAsIGludCk7Ci0g ICAgICAgICAgdWNoYXJfYXJnID0gKHVuc2lnbmVkIGNoYXIpIGo7ICAgLyogc3RhbmRhcmQg ZGVtYW5kcyB1bnNpZ25lZCBjaGFyICovCi0gICAgICAgICAgc3RyX2FyZyA9IChjb25zdCBj aGFyICopICZ1Y2hhcl9hcmc7Ci0gICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAg ICAgY2FzZSAncyc6Ci0gICAgICAgICAgc3RyX2FyZyA9IHZhX2FyZyhhcCwgY29uc3QgY2hh ciAqKTsKLSAgICAgICAgICBpZiAoIXN0cl9hcmcpIHN0cl9hcmdfbCA9IDA7Ci0gICAgICAg LyogbWFrZSBzdXJlIG5vdCB0byBhZGRyZXNzIHN0cmluZyBiZXlvbmQgdGhlIHNwZWNpZmll ZCBwcmVjaXNpb24gISEhICovCi0gICAgICAgICAgZWxzZSBpZiAoIXByZWNpc2lvbl9zcGVj aWZpZWQpIHN0cl9hcmdfbCA9IHN0cmxlbihzdHJfYXJnKTsKLSAgICAgICAvKiB0cnVuY2F0 ZSBzdHJpbmcgaWYgbmVjZXNzYXJ5IGFzIHJlcXVlc3RlZCBieSBwcmVjaXNpb24gKi8KLSAg ICAgICAgICBlbHNlIGlmIChwcmVjaXNpb24gPT0gMCkgc3RyX2FyZ19sID0gMDsKLSAgICAg ICAgICBlbHNlIHsKLSAgICAgICAvKiBtZW1jaHIgb24gSFAgZG9lcyBub3QgbGlrZSBuID4g Ml4zMSAgISEhICovCi0gICAgICAgICAgICBjb25zdCBjaGFyICpxID0gbWVtY2hyKHN0cl9h cmcsICdcMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWNpc2lvbiA8PSAw eDdmZmZmZmZmID8gcHJlY2lzaW9uIDogMHg3ZmZmZmZmZik7Ci0gICAgICAgICAgICBzdHJf YXJnX2wgPSAhcSA/IHByZWNpc2lvbiA6IChxLXN0cl9hcmcpOwotICAgICAgICAgIH0KLSAg ICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDogYnJlYWs7Ci0gICAgICAgIH0KLSAg ICAgICAgYnJlYWs7Ci0gICAgICBjYXNlICdkJzogY2FzZSAndSc6IGNhc2UgJ28nOiBjYXNl ICd4JzogY2FzZSAnWCc6IGNhc2UgJ3AnOiB7Ci0gICAgICAgIC8qIE5PVEU6IHRoZSB1LCBv LCB4LCBYIGFuZCBwIGNvbnZlcnNpb24gc3BlY2lmaWVycyBpbXBseQotICAgICAgICAgICAg ICAgICB0aGUgdmFsdWUgaXMgdW5zaWduZWQ7ICBkIGltcGxpZXMgYSBzaWduZWQgdmFsdWUg Ki8KLQotICAgICAgICBpbnQgYXJnX3NpZ24gPSAwOwotICAgICAgICAgIC8qIDAgaWYgbnVt ZXJpYyBhcmd1bWVudCBpcyB6ZXJvIChvciBpZiBwb2ludGVyIGlzIE5VTEwgZm9yICdwJyks Ci0gICAgICAgICAgICArMSBpZiBncmVhdGVyIHRoYW4gemVybyAob3Igbm9uemVybyBmb3Ig dW5zaWduZWQgYXJndW1lbnRzKSwKLSAgICAgICAgICAgIC0xIGlmIG5lZ2F0aXZlICh1bnNp Z25lZCBhcmd1bWVudCBpcyBuZXZlciBuZWdhdGl2ZSkgKi8KLQotICAgICAgICBpbnQgaW50 X2FyZyA9IDA7ICB1bnNpZ25lZCBpbnQgdWludF9hcmcgPSAwOwotICAgICAgICAgIC8qIG9u bHkgZGVmaW5lZCBmb3IgbGVuZ3RoIG1vZGlmaWVyIGgsIG9yIGZvciBubyBsZW5ndGggbW9k aWZpZXJzICovCi0KLSAgICAgICAgbG9uZyBpbnQgbG9uZ19hcmcgPSAwOyAgdW5zaWduZWQg bG9uZyBpbnQgdWxvbmdfYXJnID0gMDsKLSAgICAgICAgICAvKiBvbmx5IGRlZmluZWQgZm9y IGxlbmd0aCBtb2RpZmllciBsICovCi0KLSAgICAgICAgdm9pZCAqcHRyX2FyZyA9IE5VTEw7 Ci0gICAgICAgICAgLyogcG9pbnRlciBhcmd1bWVudCB2YWx1ZSAtb25seSBkZWZpbmVkIGZv ciBwIGNvbnZlcnNpb24gKi8KLQotI2lmZGVmIFNOUFJJTlRGX0xPTkdMT05HX1NVUFBPUlQK LSAgICAgICAgbG9uZyBsb25nIGludCBsb25nX2xvbmdfYXJnID0gMDsKLSAgICAgICAgdW5z aWduZWQgbG9uZyBsb25nIGludCB1bG9uZ19sb25nX2FyZyA9IDA7Ci0gICAgICAgICAgLyog b25seSBkZWZpbmVkIGZvciBsZW5ndGggbW9kaWZpZXIgbGwgKi8KLSNlbmRpZgotICAgICAg ICBpZiAoZm10X3NwZWMgPT0gJ3AnKSB7Ci0gICAgICAgIC8qIEhQVVggMTA6IEFuIGwsIGgs IGxsIG9yIEwgYmVmb3JlIGFueSBvdGhlciBjb252ZXJzaW9uIGNoYXJhY3RlcgotICAgICAg ICAgKiAgIChvdGhlciB0aGFuIGQsIGksIHUsIG8sIHgsIG9yIFgpIGlzIGlnbm9yZWQuCi0g ICAgICAgICAqIERpZ2l0YWwgVW5peDoKLSAgICAgICAgICogICBub3Qgc3BlY2lmaWVkLCBi dXQgc2VlbXMgdG8gYmVoYXZlIGFzIEhQVVggZG9lcy4KLSAgICAgICAgICogU29sYXJpczog SWYgYW4gaCwgbCwgb3IgTCBhcHBlYXJzIGJlZm9yZSBhbnkgb3RoZXIgY29udmVyc2lvbgot ICAgICAgICAgKiAgIHNwZWNpZmllciAob3RoZXIgdGhhbiBkLCBpLCB1LCBvLCB4LCBvciBY KSwgdGhlIGJlaGF2aW9yCi0gICAgICAgICAqICAgaXMgdW5kZWZpbmVkLiAoQWN0dWFsbHkg JWhwIGNvbnZlcnRzIG9ubHkgMTYtYml0cyBvZiBhZGRyZXNzCi0gICAgICAgICAqICAgYW5k ICVsbHAgdHJlYXRzIGFkZHJlc3MgYXMgNjQtYml0IGRhdGEgd2hpY2ggaXMgaW5jb21wYXRp YmxlCi0gICAgICAgICAqICAgd2l0aCAodm9pZCAqKSBhcmd1bWVudCBvbiBhIDMyLWJpdCBz eXN0ZW0pLgotICAgICAgICAgKi8KLSNpZmRlZiBTT0xBUklTX0NPTVBBVElCTEUKLSMgIGlm ZGVmIFNPTEFSSVNfQlVHX0NPTVBBVElCTEUKLSAgICAgICAgICAvKiBrZWVwIGxlbmd0aCBt b2RpZmllcnMgZXZlbiBpZiBpdCByZXByZXNlbnRzICdsbCcgKi8KLSMgIGVsc2UKLSAgICAg ICAgICBpZiAobGVuZ3RoX21vZGlmaWVyID09ICcyJykgbGVuZ3RoX21vZGlmaWVyID0gJ1ww JzsKLSMgIGVuZGlmCi0jZWxzZQotICAgICAgICAgIGxlbmd0aF9tb2RpZmllciA9ICdcMCc7 Ci0jZW5kaWYKLSAgICAgICAgICBwdHJfYXJnID0gdmFfYXJnKGFwLCB2b2lkICopOwotICAg ICAgICAgIGlmIChwdHJfYXJnICE9IE5VTEwpIGFyZ19zaWduID0gMTsKLSAgICAgICAgfSBl bHNlIGlmIChmbXRfc3BlYyA9PSAnZCcpIHsgIC8qIHNpZ25lZCAqLwotICAgICAgICAgIHN3 aXRjaCAobGVuZ3RoX21vZGlmaWVyKSB7Ci0gICAgICAgICAgY2FzZSAnXDAnOgotICAgICAg ICAgIGNhc2UgJ2gnOgotICAgICAgICAgLyogSXQgaXMgbm9uLXBvcnRhYmxlIHRvIHNwZWNp ZnkgYSBzZWNvbmQgYXJndW1lbnQgb2YgY2hhciBvciBzaG9ydAotICAgICAgICAgICogdG8g dmFfYXJnLCBiZWNhdXNlIGFyZ3VtZW50cyBzZWVuIGJ5IHRoZSBjYWxsZWQgZnVuY3Rpb24K LSAgICAgICAgICAqIGFyZSBub3QgY2hhciBvciBzaG9ydC4gIEMgY29udmVydHMgY2hhciBh bmQgc2hvcnQgYXJndW1lbnRzCi0gICAgICAgICAgKiB0byBpbnQgYmVmb3JlIHBhc3Npbmcg dGhlbSB0byBhIGZ1bmN0aW9uLgotICAgICAgICAgICovCi0gICAgICAgICAgICBpbnRfYXJn ID0gdmFfYXJnKGFwLCBpbnQpOwotICAgICAgICAgICAgaWYgICAgICAoaW50X2FyZyA+IDAp IGFyZ19zaWduID0gIDE7Ci0gICAgICAgICAgICBlbHNlIGlmIChpbnRfYXJnIDwgMCkgYXJn X3NpZ24gPSAtMTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgIGNhc2UgJ2wnOgot ICAgICAgICAgICAgbG9uZ19hcmcgPSB2YV9hcmcoYXAsIGxvbmcgaW50KTsKLSAgICAgICAg ICAgIGlmICAgICAgKGxvbmdfYXJnID4gMCkgYXJnX3NpZ24gPSAgMTsKLSAgICAgICAgICAg IGVsc2UgaWYgKGxvbmdfYXJnIDwgMCkgYXJnX3NpZ24gPSAtMTsKLSAgICAgICAgICAgIGJy ZWFrOwotI2lmZGVmIFNOUFJJTlRGX0xPTkdMT05HX1NVUFBPUlQKLSAgICAgICAgICBjYXNl ICcyJzoKLSAgICAgICAgICAgIGxvbmdfbG9uZ19hcmcgPSB2YV9hcmcoYXAsIGxvbmcgbG9u ZyBpbnQpOwotICAgICAgICAgICAgaWYgICAgICAobG9uZ19sb25nX2FyZyA+IDApIGFyZ19z aWduID0gIDE7Ci0gICAgICAgICAgICBlbHNlIGlmIChsb25nX2xvbmdfYXJnIDwgMCkgYXJn X3NpZ24gPSAtMTsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0gICAgICAgICAgfQot ICAgICAgICB9IGVsc2UgeyAgLyogdW5zaWduZWQgKi8KLSAgICAgICAgICBzd2l0Y2ggKGxl bmd0aF9tb2RpZmllcikgewotICAgICAgICAgIGNhc2UgJ1wwJzoKLSAgICAgICAgICBjYXNl ICdoJzoKLSAgICAgICAgICAgIHVpbnRfYXJnID0gdmFfYXJnKGFwLCB1bnNpZ25lZCBpbnQp OwotICAgICAgICAgICAgaWYgKHVpbnRfYXJnKSBhcmdfc2lnbiA9IDE7Ci0gICAgICAgICAg ICBicmVhazsKLSAgICAgICAgICBjYXNlICdsJzoKLSAgICAgICAgICAgIHVsb25nX2FyZyA9 IHZhX2FyZyhhcCwgdW5zaWduZWQgbG9uZyBpbnQpOwotICAgICAgICAgICAgaWYgKHVsb25n X2FyZykgYXJnX3NpZ24gPSAxOwotICAgICAgICAgICAgYnJlYWs7Ci0jaWZkZWYgU05QUklO VEZfTE9OR0xPTkdfU1VQUE9SVAotICAgICAgICAgIGNhc2UgJzInOgotICAgICAgICAgICAg dWxvbmdfbG9uZ19hcmcgPSB2YV9hcmcoYXAsIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQpOwot ICAgICAgICAgICAgaWYgKHVsb25nX2xvbmdfYXJnKSBhcmdfc2lnbiA9IDE7Ci0gICAgICAg ICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBz dHJfYXJnID0gdG1wOyBzdHJfYXJnX2wgPSAwOwotICAgICAvKiBOT1RFOgotICAgICAgKiAg IEZvciBkLCBpLCB1LCBvLCB4LCBhbmQgWCBjb252ZXJzaW9ucywgaWYgcHJlY2lzaW9uIGlz IHNwZWNpZmllZCwKLSAgICAgICogICB0aGUgJzAnIGZsYWcgc2hvdWxkIGJlIGlnbm9yZWQu IFRoaXMgaXMgc28gd2l0aCBTb2xhcmlzIDIuNiwKLSAgICAgICogICBEaWdpdGFsIFVOSVgg NC4wLCBIUFVYIDEwLCBMaW51eCwgRnJlZUJTRCwgTmV0QlNEOyBidXQgbm90IHdpdGggUGVy bC4KLSAgICAgICovCi0jaWZuZGVmIFBFUkxfQ09NUEFUSUJMRQotICAgICAgICBpZiAocHJl Y2lzaW9uX3NwZWNpZmllZCkgemVyb19wYWRkaW5nID0gMDsKLSNlbmRpZgotICAgICAgICBp ZiAoZm10X3NwZWMgPT0gJ2QnKSB7Ci0gICAgICAgICAgaWYgKGZvcmNlX3NpZ24gJiYgYXJn X3NpZ24gPj0gMCkKLSAgICAgICAgICAgIHRtcFtzdHJfYXJnX2wrK10gPSBzcGFjZV9mb3Jf cG9zaXRpdmUgPyAnICcgOiAnKyc7Ci0gICAgICAgICAvKiBsZWF2ZSBuZWdhdGl2ZSBudW1i ZXJzIGZvciBzcHJpbnRmIHRvIGhhbmRsZSwKLSAgICAgICAgICAgIHRvIGF2b2lkIGhhbmRs aW5nIHRyaWNreSBjYXNlcyBsaWtlIChzaG9ydCBpbnQpKC0zMjc2OCkgKi8KLSNpZmRlZiBM SU5VWF9DT01QQVRJQkxFCi0gICAgICAgIH0gZWxzZSBpZiAoZm10X3NwZWMgPT0gJ3AnICYm IGZvcmNlX3NpZ24gJiYgYXJnX3NpZ24gPiAwKSB7Ci0gICAgICAgICAgdG1wW3N0cl9hcmdf bCsrXSA9IHNwYWNlX2Zvcl9wb3NpdGl2ZSA/ICcgJyA6ICcrJzsKLSNlbmRpZgotICAgICAg ICB9IGVsc2UgaWYgKGFsdGVybmF0ZV9mb3JtKSB7Ci0gICAgICAgICAgaWYgKGFyZ19zaWdu ICE9IDAgJiYgKGZtdF9zcGVjID09ICd4JyB8fCBmbXRfc3BlYyA9PSAnWCcpICkKLSAgICAg ICAgICAgIHsgdG1wW3N0cl9hcmdfbCsrXSA9ICcwJzsgdG1wW3N0cl9hcmdfbCsrXSA9IGZt dF9zcGVjOyB9Ci0gICAgICAgICAvKiBhbHRlcm5hdGUgZm9ybSBzaG91bGQgaGF2ZSBubyBl ZmZlY3QgZm9yIHAgY29udmVyc2lvbiwgYnV0IC4uLiAqLwotI2lmZGVmIEhQVVhfQ09NUEFU SUJMRQotICAgICAgICAgIGVsc2UgaWYgKGZtdF9zcGVjID09ICdwJwotICAgICAgICAgLyog SFBVWCAxMDogZm9yIGFuIGFsdGVybmF0ZSBmb3JtIG9mIHAgY29udmVyc2lvbiwKLSAgICAg ICAgICAqICAgICAgICAgIGEgbm9uemVybyByZXN1bHQgaXMgcHJlZml4ZWQgYnkgMHguICov Ci0jaWZuZGVmIEhQVVhfQlVHX0NPTVBBVElCTEUKLSAgICAgICAgIC8qIEFjdHVhbGx5IGl0 IHVzZXMgMHggcHJlZml4IGV2ZW4gZm9yIGEgemVybyB2YWx1ZS4gKi8KLSAgICAgICAgICAg ICAgICAgICAmJiBhcmdfc2lnbiAhPSAwCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICkg eyB0bXBbc3RyX2FyZ19sKytdID0gJzAnOyB0bXBbc3RyX2FyZ19sKytdID0gJ3gnOyB9Ci0j ZW5kaWYKLSAgICAgICAgfQotICAgICAgICB6ZXJvX3BhZGRpbmdfaW5zZXJ0aW9uX2luZCA9 IHN0cl9hcmdfbDsKLSAgICAgICAgaWYgKCFwcmVjaXNpb25fc3BlY2lmaWVkKSBwcmVjaXNp b24gPSAxOyAgIC8qIGRlZmF1bHQgcHJlY2lzaW9uIGlzIDEgKi8KLSAgICAgICAgaWYgKHBy ZWNpc2lvbiA9PSAwICYmIGFyZ19zaWduID09IDAKLSNpZiBkZWZpbmVkKEhQVVhfQlVHX0NP TVBBVElCTEUpIHx8IGRlZmluZWQoTElOVVhfQ09NUEFUSUJMRSkKLSAgICAgICAgICAgICYm IGZtdF9zcGVjICE9ICdwJwotICAgICAgICAgLyogSFBVWCAxMCBtYW4gcGFnZSBjbGFpbXM6 IFdpdGggY29udmVyc2lvbiBjaGFyYWN0ZXIgcCB0aGUgcmVzdWx0IG9mCi0gICAgICAgICAg KiBjb252ZXJ0aW5nIGEgemVybyB2YWx1ZSB3aXRoIGEgcHJlY2lzaW9uIG9mIHplcm8gaXMg YSBudWxsIHN0cmluZy4KLSAgICAgICAgICAqIEFjdHVhbGx5IEhQIHJldHVybnMgYWxsIHpl cm9lcywgYW5kIExpbnV4IHJldHVybnMgIihuaWwpIi4gKi8KLSNlbmRpZgotICAgICAgICAp IHsKLSAgICAgICAgIC8qIGNvbnZlcnRlZCB0byBudWxsIHN0cmluZyAqLwotICAgICAgICAg LyogV2hlbiB6ZXJvIHZhbHVlIGlzIGZvcm1hdHRlZCB3aXRoIGFuIGV4cGxpY2l0IHByZWNp c2lvbiAwLAotICAgICAgICAgICAgdGhlIHJlc3VsdGluZyBmb3JtYXR0ZWQgc3RyaW5nIGlz IGVtcHR5IChkLCBpLCB1LCBvLCB4LCBYLCBwKS4gICAqLwotICAgICAgICB9IGVsc2Ugewot ICAgICAgICAgIGNoYXIgZls1XTsgaW50IGZfbCA9IDA7Ci0gICAgICAgICAgZltmX2wrK10g PSAnJSc7ICAgIC8qIGNvbnN0cnVjdCBhIHNpbXBsZSBmb3JtYXQgc3RyaW5nIGZvciBzcHJp bnRmICovCi0gICAgICAgICAgaWYgKCFsZW5ndGhfbW9kaWZpZXIpIHsgfQotICAgICAgICAg IGVsc2UgaWYgKGxlbmd0aF9tb2RpZmllcj09JzInKSB7IGZbZl9sKytdID0gJ2wnOyBmW2Zf bCsrXSA9ICdsJzsgfQotICAgICAgICAgIGVsc2UgZltmX2wrK10gPSBsZW5ndGhfbW9kaWZp ZXI7Ci0gICAgICAgICAgZltmX2wrK10gPSBmbXRfc3BlYzsgZltmX2wrK10gPSAnXDAnOwot ICAgICAgICAgIGlmIChmbXRfc3BlYyA9PSAncCcpIHN0cl9hcmdfbCArPSBzcHJpbnRmKHRt cCtzdHJfYXJnX2wsIGYsIHB0cl9hcmcpOwotICAgICAgICAgIGVsc2UgaWYgKGZtdF9zcGVj ID09ICdkJykgeyAgLyogc2lnbmVkICovCi0gICAgICAgICAgICBzd2l0Y2ggKGxlbmd0aF9t b2RpZmllcikgewotICAgICAgICAgICAgY2FzZSAnXDAnOgotICAgICAgICAgICAgY2FzZSAn aCc6IHN0cl9hcmdfbCs9c3ByaW50Zih0bXArc3RyX2FyZ19sLCBmLCBpbnRfYXJnKTsgIGJy ZWFrOwotICAgICAgICAgICAgY2FzZSAnbCc6IHN0cl9hcmdfbCs9c3ByaW50Zih0bXArc3Ry X2FyZ19sLCBmLCBsb25nX2FyZyk7IGJyZWFrOwotI2lmZGVmIFNOUFJJTlRGX0xPTkdMT05H X1NVUFBPUlQKLSAgICAgICAgICAgIGNhc2UgJzInOiBzdHJfYXJnX2wrPXNwcmludGYodG1w K3N0cl9hcmdfbCxmLGxvbmdfbG9uZ19hcmcpOyBicmVhazsKLSNlbmRpZgotICAgICAgICAg ICAgfQotICAgICAgICAgIH0gZWxzZSB7ICAvKiB1bnNpZ25lZCAqLwotICAgICAgICAgICAg c3dpdGNoIChsZW5ndGhfbW9kaWZpZXIpIHsKLSAgICAgICAgICAgIGNhc2UgJ1wwJzoKLSAg ICAgICAgICAgIGNhc2UgJ2gnOiBzdHJfYXJnX2wrPXNwcmludGYodG1wK3N0cl9hcmdfbCwg ZiwgdWludF9hcmcpOyAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICdsJzogc3RyX2FyZ19s Kz1zcHJpbnRmKHRtcCtzdHJfYXJnX2wsIGYsIHVsb25nX2FyZyk7IGJyZWFrOwotI2lmZGVm IFNOUFJJTlRGX0xPTkdMT05HX1NVUFBPUlQKLSAgICAgICAgICAgIGNhc2UgJzInOiBzdHJf YXJnX2wrPXNwcmludGYodG1wK3N0cl9hcmdfbCxmLHVsb25nX2xvbmdfYXJnKTticmVhazsK LSNlbmRpZgotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgIC8qIGluY2x1 ZGUgdGhlIG9wdGlvbmFsIG1pbnVzIHNpZ24gYW5kIHBvc3NpYmxlICIweCIKLSAgICAgICAg ICAgIGluIHRoZSByZWdpb24gYmVmb3JlIHRoZSB6ZXJvIHBhZGRpbmcgaW5zZXJ0aW9uIHBv aW50ICovCi0gICAgICAgICAgaWYgKHplcm9fcGFkZGluZ19pbnNlcnRpb25faW5kIDwgc3Ry X2FyZ19sICYmCi0gICAgICAgICAgICAgIHRtcFt6ZXJvX3BhZGRpbmdfaW5zZXJ0aW9uX2lu ZF0gPT0gJy0nKSB7Ci0gICAgICAgICAgICB6ZXJvX3BhZGRpbmdfaW5zZXJ0aW9uX2luZCsr OwotICAgICAgICAgIH0KLSAgICAgICAgICBpZiAoemVyb19wYWRkaW5nX2luc2VydGlvbl9p bmQrMSA8IHN0cl9hcmdfbCAmJgotICAgICAgICAgICAgICB0bXBbemVyb19wYWRkaW5nX2lu c2VydGlvbl9pbmRdICAgPT0gJzAnICYmCi0gICAgICAgICAgICAgKHRtcFt6ZXJvX3BhZGRp bmdfaW5zZXJ0aW9uX2luZCsxXSA9PSAneCcgfHwKLSAgICAgICAgICAgICAgdG1wW3plcm9f cGFkZGluZ19pbnNlcnRpb25faW5kKzFdID09ICdYJykgKSB7Ci0gICAgICAgICAgICB6ZXJv X3BhZGRpbmdfaW5zZXJ0aW9uX2luZCArPSAyOwotICAgICAgICAgIH0KLSAgICAgICAgfQot ICAgICAgICB7IHNpemVfdCBudW1fb2ZfZGlnaXRzID0gc3RyX2FyZ19sIC0gemVyb19wYWRk aW5nX2luc2VydGlvbl9pbmQ7Ci0gICAgICAgICAgaWYgKGFsdGVybmF0ZV9mb3JtICYmIGZt dF9zcGVjID09ICdvJwotI2lmZGVmIEhQVVhfQ09NUEFUSUJMRSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiAoIiUjLm8iLDApIC0+ICIiICAqLwotICAgICAgICAgICAg ICAmJiAoc3RyX2FyZ19sID4gMCkKLSNlbmRpZgotI2lmZGVmIERJR0lUQUxfVU5JWF9CVUdf Q09NUEFUSUJMRSAgICAgICAgICAgICAgICAgICAgICAvKiAoIiUjbyIsMCkgLT4gIjAwIiAq LwotI2Vsc2UKLSAgICAgICAgICAgICAgLyogdW5sZXNzIHplcm8gaXMgYWxyZWFkeSB0aGUg Zmlyc3QgY2hhcmFjdGVyICovCi0gICAgICAgICAgICAgICYmICEoemVyb19wYWRkaW5nX2lu c2VydGlvbl9pbmQgPCBzdHJfYXJnX2wKLSAgICAgICAgICAgICAgICAgICAmJiB0bXBbemVy b19wYWRkaW5nX2luc2VydGlvbl9pbmRdID09ICcwJykKLSNlbmRpZgotICAgICAgICAgICkg eyAgICAgICAgLyogYXNzdXJlIGxlYWRpbmcgemVybyBmb3IgYWx0ZXJuYXRlLWZvcm0gb2N0 YWwgbnVtYmVycyAqLwotICAgICAgICAgICAgaWYgKCFwcmVjaXNpb25fc3BlY2lmaWVkIHx8 IHByZWNpc2lvbiA8IG51bV9vZl9kaWdpdHMrMSkgewotICAgICAgICAgICAgIC8qIHByZWNp c2lvbiBpcyBpbmNyZWFzZWQgdG8gZm9yY2UgdGhlIGZpcnN0IGNoYXJhY3RlciB0byBiZSB6 ZXJvLAotICAgICAgICAgICAgICAgIGV4Y2VwdCBpZiBhIHplcm8gdmFsdWUgaXMgZm9ybWF0 dGVkIHdpdGggYW4gZXhwbGljaXQgcHJlY2lzaW9uCi0gICAgICAgICAgICAgICAgb2YgemVy byAqLwotICAgICAgICAgICAgICBwcmVjaXNpb24gPSBudW1fb2ZfZGlnaXRzKzE7IHByZWNp c2lvbl9zcGVjaWZpZWQgPSAxOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAg ICAvKiB6ZXJvIHBhZGRpbmcgdG8gc3BlY2lmaWVkIHByZWNpc2lvbj8gKi8KLSAgICAgICAg ICBpZiAobnVtX29mX2RpZ2l0cyA8IHByZWNpc2lvbikKLSAgICAgICAgICAgIG51bWJlcl9v Zl96ZXJvc190b19wYWQgPSBwcmVjaXNpb24gLSBudW1fb2ZfZGlnaXRzOwotICAgICAgICB9 Ci0gICAgIC8qIHplcm8gcGFkZGluZyB0byBzcGVjaWZpZWQgbWluaW1hbCBmaWVsZCB3aWR0 aD8gKi8KLSAgICAgICAgaWYgKCFqdXN0aWZ5X2xlZnQgJiYgemVyb19wYWRkaW5nKSB7Ci0g ICAgICAgICAgaW50IG4gPSBtaW5fZmllbGRfd2lkdGggLSAoc3RyX2FyZ19sK251bWJlcl9v Zl96ZXJvc190b19wYWQpOwotICAgICAgICAgIGlmIChuID4gMCkgbnVtYmVyX29mX3plcm9z X3RvX3BhZCArPSBuOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgICAgfQotICAg ICAgZGVmYXVsdDogLyogdW5yZWNvZ25pemVkIGNvbnZlcnNpb24gc3BlY2lmaWVyLCBrZWVw IGZvcm1hdCBzdHJpbmcgYXMtaXMqLwotICAgICAgICB6ZXJvX3BhZGRpbmcgPSAwOyAgLyog dHVybiB6ZXJvIHBhZGRpbmcgb2ZmIGZvciBub24tbnVtZXJpYyBjb252ZXJzLiAqLwotI2lm bmRlZiBESUdJVEFMX1VOSVhfQ09NUEFUSUJMRQotICAgICAgICBqdXN0aWZ5X2xlZnQgPSAx OyBtaW5fZmllbGRfd2lkdGggPSAwOyAgICAgICAgICAgICAgICAvKiByZXNldCBmbGFncyAq LwotI2VuZGlmCi0jaWYgZGVmaW5lZChQRVJMX0NPTVBBVElCTEUpIHx8IGRlZmluZWQoTElO VVhfQ09NUEFUSUJMRSkKLSAgICAgLyoga2VlcCB0aGUgZW50aXJlIGZvcm1hdCBzdHJpbmcg dW5jaGFuZ2VkICovCi0gICAgICAgIHN0cl9hcmcgPSBzdGFydGluZ19wOyBzdHJfYXJnX2wg PSBwIC0gc3RhcnRpbmdfcDsKLSAgICAgLyogd2VsbCwgbm90IGV4YWN0bHkgc28gZm9yIExp bnV4LCB3aGljaCBkb2VzIHNvbWV0aGluZyBiZXR3ZWVuLAotICAgICAgKiBhbmQgSSBkb24n dCBmZWVsIGFuIHVyZ2UgdG8gaW1pdGF0ZSBpdDogIiUrKysrK2h5IiAtPiAiJSt5IiAgKi8K LSNlbHNlCi0gICAgIC8qIGRpc2NhcmQgdGhlIHVucmVjb2duaXplZCBjb252ZXJzaW9uLCBq dXN0IGtlZXAgKgotICAgICAgKiB0aGUgdW5yZWNvZ25pemVkIGNvbnZlcnNpb24gY2hhcmFj dGVyICAgICAgICAgICovCi0gICAgICAgIHN0cl9hcmcgPSBwOyBzdHJfYXJnX2wgPSAwOwot I2VuZGlmCi0gICAgICAgIGlmICgqcCkgc3RyX2FyZ19sKys7ICAvKiBpbmNsdWRlIGludmFs aWQgY29udmVyc2lvbiBzcGVjaWZpZXIgdW5jaGFuZ2VkCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBub3QgYXQgZW5kLW9mLXN0cmluZyAqLwotICAgICAgICBicmVh azsKLSAgICAgIH0KLSAgICAgIGlmICgqcCkgcCsrOyAgICAgIC8qIHN0ZXAgb3ZlciB0aGUg anVzdCBwcm9jZXNzZWQgY29udmVyc2lvbiBzcGVjaWZpZXIgKi8KLSAgIC8qIGluc2VydCBw YWRkaW5nIHRvIHRoZSBsZWZ0IGFzIHJlcXVlc3RlZCBieSBtaW5fZmllbGRfd2lkdGg7Ci0g ICAgICB0aGlzIGRvZXMgbm90IGluY2x1ZGUgdGhlIHplcm8gcGFkZGluZyBpbiBjYXNlIG9m IG51bWVyaWNhbCBjb252ZXJzaW9ucyovCi0gICAgICBpZiAoIWp1c3RpZnlfbGVmdCkgeyAg ICAgICAgICAgICAgICAvKiBsZWZ0IHBhZGRpbmcgd2l0aCBibGFuayBvciB6ZXJvICovCi0g ICAgICAgIGludCBuID0gbWluX2ZpZWxkX3dpZHRoIC0gKHN0cl9hcmdfbCtudW1iZXJfb2Zf emVyb3NfdG9fcGFkKTsKLSAgICAgICAgaWYgKG4gPiAwKSB7Ci0gICAgICAgICAgaWYgKHN0 cl9sIDwgc3RyX20pIHsKLSAgICAgICAgICAgIHNpemVfdCBhdmFpbCA9IHN0cl9tLXN0cl9s OwotICAgICAgICAgICAgZmFzdF9tZW1zZXQoc3RyK3N0cl9sLCAoemVyb19wYWRkaW5nPycw JzonICcpLCAobj5hdmFpbD9hdmFpbDpuKSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHN0 cl9sICs9IG47Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgIC8qIHplcm8gcGFkZGluZyBhcyBy ZXF1ZXN0ZWQgYnkgdGhlIHByZWNpc2lvbiBvciBieSB0aGUgbWluaW1hbCBmaWVsZCB3aWR0 aAotICAgICogZm9yIG51bWVyaWMgY29udmVyc2lvbnMgcmVxdWlyZWQ/ICovCi0gICAgICBp ZiAobnVtYmVyX29mX3plcm9zX3RvX3BhZCA8PSAwKSB7Ci0gICAgIC8qIHdpbGwgbm90IGNv cHkgZmlyc3QgcGFydCBvZiBudW1lcmljIHJpZ2h0IG5vdywgKgotICAgICAgKiBmb3JjZSBp dCB0byBiZSBjb3BpZWQgbGF0ZXIgaW4gaXRzIGVudGlyZXR5ICAgICovCi0gICAgICAgIHpl cm9fcGFkZGluZ19pbnNlcnRpb25faW5kID0gMDsKLSAgICAgIH0gZWxzZSB7Ci0gICAgIC8q IGluc2VydCBmaXJzdCBwYXJ0IG9mIG51bWVyaWNzIChzaWduIG9yICcweCcpIGJlZm9yZSB6 ZXJvIHBhZGRpbmcgKi8KLSAgICAgICAgaW50IG4gPSB6ZXJvX3BhZGRpbmdfaW5zZXJ0aW9u X2luZDsKLSAgICAgICAgaWYgKG4gPiAwKSB7Ci0gICAgICAgICAgaWYgKHN0cl9sIDwgc3Ry X20pIHsKLSAgICAgICAgICAgIHNpemVfdCBhdmFpbCA9IHN0cl9tLXN0cl9sOwotICAgICAg ICAgICAgZmFzdF9tZW1jcHkoc3RyK3N0cl9sLCBzdHJfYXJnLCAobj5hdmFpbD9hdmFpbDpu KSk7Ci0gICAgICAgICAgfQotICAgICAgICAgIHN0cl9sICs9IG47Ci0gICAgICAgIH0KLSAg ICAgLyogaW5zZXJ0IHplcm8gcGFkZGluZyBhcyByZXF1ZXN0ZWQgYnkgdGhlIHByZWNpc2lv biBvciBtaW4gZmllbGQgd2lkdGggKi8KLSAgICAgICAgbiA9IG51bWJlcl9vZl96ZXJvc190 b19wYWQ7Ci0gICAgICAgIGlmIChuID4gMCkgewotICAgICAgICAgIGlmIChzdHJfbCA8IHN0 cl9tKSB7Ci0gICAgICAgICAgICBzaXplX3QgYXZhaWwgPSBzdHJfbS1zdHJfbDsKLSAgICAg ICAgICAgIGZhc3RfbWVtc2V0KHN0citzdHJfbCwgJzAnLCAobj5hdmFpbD9hdmFpbDpuKSk7 Ci0gICAgICAgICAgfQotICAgICAgICAgIHN0cl9sICs9IG47Ci0gICAgICAgIH0KLSAgICAg IH0KLSAgIC8qIGluc2VydCBmb3JtYXR0ZWQgc3RyaW5nCi0gICAgKiAob3IgYXMtaXMgY29u dmVyc2lvbiBzcGVjaWZpZXIgZm9yIHVua25vd24gY29udmVyc2lvbnMpICovCi0gICAgICB7 IGludCBuID0gc3RyX2FyZ19sIC0gemVyb19wYWRkaW5nX2luc2VydGlvbl9pbmQ7Ci0gICAg ICAgIGlmIChuID4gMCkgewotICAgICAgICAgIGlmIChzdHJfbCA8IHN0cl9tKSB7Ci0gICAg ICAgICAgICBzaXplX3QgYXZhaWwgPSBzdHJfbS1zdHJfbDsKLSAgICAgICAgICAgIGZhc3Rf bWVtY3B5KHN0citzdHJfbCwgc3RyX2FyZyt6ZXJvX3BhZGRpbmdfaW5zZXJ0aW9uX2luZCwK LSAgICAgICAgICAgICAgICAgICAgICAgIChuPmF2YWlsP2F2YWlsOm4pKTsKLSAgICAgICAg ICB9Ci0gICAgICAgICAgc3RyX2wgKz0gbjsKLSAgICAgICAgfQotICAgICAgfQotICAgLyog aW5zZXJ0IHJpZ2h0IHBhZGRpbmcgKi8KLSAgICAgIGlmIChqdXN0aWZ5X2xlZnQpIHsgICAg ICAgICAgLyogcmlnaHQgYmxhbmsgcGFkZGluZyB0byB0aGUgZmllbGQgd2lkdGggKi8KLSAg ICAgICAgaW50IG4gPSBtaW5fZmllbGRfd2lkdGggLSAoc3RyX2FyZ19sK251bWJlcl9vZl96 ZXJvc190b19wYWQpOwotICAgICAgICBpZiAobiA+IDApIHsKLSAgICAgICAgICBpZiAoc3Ry X2wgPCBzdHJfbSkgewotICAgICAgICAgICAgc2l6ZV90IGF2YWlsID0gc3RyX20tc3RyX2w7 Ci0gICAgICAgICAgICBmYXN0X21lbXNldChzdHIrc3RyX2wsICcgJywgKG4+YXZhaWw/YXZh aWw6bikpOwotICAgICAgICAgIH0KLSAgICAgICAgICBzdHJfbCArPSBuOwotICAgICAgICB9 Ci0gICAgICB9Ci0gICAgfQotICB9Ci0jaWYgZGVmaW5lZChORUVEX1NOUFJJTlRGX09OTFkp Ci0gIHZhX2VuZChhcCk7Ci0jZW5kaWYKLSAgaWYgKHN0cl9tID4gMCkgeyAvKiBtYWtlIHN1 cmUgdGhlIHN0cmluZyBpcyBudWxsLXRlcm1pbmF0ZWQKLSAgICAgICAgICAgICAgICAgICAg ICBldmVuIGF0IHRoZSBleHBlbnNlIG9mIG92ZXJ3cml0aW5nIHRoZSBsYXN0IGNoYXJhY3Rl cgotICAgICAgICAgICAgICAgICAgICAgIChzaG91bGRuJ3QgaGFwcGVuLCBidXQganVzdCBp biBjYXNlKSAqLwotICAgIHN0cltzdHJfbCA8PSBzdHJfbS0xID8gc3RyX2wgOiBzdHJfbS0x XSA9ICdcMCc7Ci0gIH0KLSAgLyogUmV0dXJuIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBm b3JtYXR0ZWQgKGV4Y2x1ZGluZyB0cmFpbGluZyBudWxsCi0gICAqIGNoYXJhY3RlciksIHRo YXQgaXMsIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyB0aGF0IHdvdWxkIGhhdmUgYmVlbgot ICAgKiB3cml0dGVuIHRvIHRoZSBidWZmZXIgaWYgaXQgd2VyZSBsYXJnZSBlbm91Z2guCi0g ICAqCi0gICAqIFRoZSB2YWx1ZSBvZiBzdHJfbCBzaG91bGQgYmUgcmV0dXJuZWQsIGJ1dCBz dHJfbCBpcyBvZiB1bnNpZ25lZCB0eXBlCi0gICAqIHNpemVfdCwgYW5kIHNucHJpbnRmIGlz IGludCwgcG9zc2libHkgbGVhZGluZyB0byBhbiB1bmRldGVjdGVkCi0gICAqIGludGVnZXIg b3ZlcmZsb3csIHJlc3VsdGluZyBpbiBhIG5lZ2F0aXZlIHJldHVybiB2YWx1ZSwgd2hpY2gg aXMgaWxsZWdhbC4KLSAgICogQm90aCBYU0g1IGFuZCBJU08gQzk5IChhdCBsZWFzdCB0aGUg ZHJhZnQpIGFyZSBzaWxlbnQgb24gdGhpcyBpc3N1ZS4KLSAgICogU2hvdWxkIGVycm5vIGJl IHNldCB0byBFT1ZFUkZMT1cgYW5kIEVPRiByZXR1cm5lZCBpbiB0aGlzIGNhc2U/Pz8KLSAg ICovCi0gIHJldHVybiAoaW50KSBzdHJfbDsKLX0KLSNlbmRpZgotI2VuZGlmIC8qIG5kZWYg SEFWRV9TTlBSSU5URiAqLwogLyoKICAgTG9jYWwgVmFyaWFibGVzOgogICB0YWItd2lkdGg6 IDMKZGlmZiAtLWdpdCBhL21pc2N1dGlsLmggYi9taXNjdXRpbC5oCmluZGV4IDRmODEyOTlh Li4wNDA1MGYwMSAxMDA2NDQKLS0tIGEvbWlzY3V0aWwuaAorKysgYi9taXNjdXRpbC5oCkBA IC03MCwxMCArNzAsNiBAQCBleHRlcm4gY2hhciAqbWFrZV9wYXRoKGNvbnN0IGNoYXIgKiBk aXIsIGNvbnN0IGNoYXIgKiBmaWxlKTsKIAogbG9uZyBpbnQgcGlja19mcm9tX3JhbmdlKGxv bmcgaW50IHJhbmdlKTsKIAotI2lmbmRlZiBIQVZFX1NOUFJJTlRGCi1leHRlcm4gaW50IHNu cHJpbnRmKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIC8qYXJncyovIC4uLik7Ci0j ZW5kaWYgLyogbmRlZiBIQVZFX1NOUFJJTlRGICovCi0KICNpZiAhZGVmaW5lZChIQVZFX1RJ TUVHTSkgJiYgZGVmaW5lZChIQVZFX1RaU0VUKSAmJiBkZWZpbmVkKEhBVkVfUFVURU5WKQog dGltZV90IHRpbWVnbShzdHJ1Y3QgdG0gKnRtKTsKICNlbmRpZiAvKiAhZGVmaW5lZChIQVZF X1RJTUVHTSkgJiYgZGVmaW5lZChIQVZFX1RaU0VUKSAmJiBkZWZpbmVkKEhBVkVfUFVURU5W KSAqLwotLSAKMi4xMS4wCgo= --------------54E0AF7966BC6630B1C2436B--