From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zg8tmja2lje4os4yms4ymjma.icoremail.net (zg8tmja2lje4os4yms4ymjma.icoremail.net [206.189.21.223]) by sourceware.org (Postfix) with ESMTP id DAD7B3858D20 for ; Tue, 31 Oct 2023 01:19:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org DAD7B3858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=eswincomputing.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=eswincomputing.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org DAD7B3858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=206.189.21.223 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698715167; cv=none; b=poVhMX0/0luJjIuNC4Iz4Vz6dOSMDuUWL5fiyyoOPul/C1b96u/PQVUhtnsoDIkxqYAgn3gGYqteyicaskMzcxBBABMD9R+34JwaKVDob2IdIPRPk/tKQMlyIABJskjng23mxJw5sM9yajzsZg07o1jVuUYkPO7TPzfEo/2q3K4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698715167; c=relaxed/simple; bh=9r8+bSnVvoFfsRBYPaxLie/M7JqqoyRyN8Dz0jOrTb4=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=WOFw9pLWwk0kjAQqQCJ/ktu4QiBHYuFDTJmh+pSZXifVQsr939vDBzLGV1ln70UznOfPyKN0oePvbWjem655VlwOQw/gVutv+3SbqLCUjLSAH+cbT4XpCgjYYPaRLLC5AhQPSQkL5pT/qxUwwIdaL60/lZ7/EBoRp+fzB7llbmI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from E0002559DT1 (unknown [123.157.234.42]) by app1 (Coremail) with SMTP id TAJkCgAXfkUFVkBlTnsBAA--.1589S2; Tue, 31 Oct 2023 09:19:01 +0800 (CST) Date: Tue, 31 Oct 2023 09:19:15 +0800 From: "Li Xu" To: pan2.li , juzhe.zhong , gcc-patches Cc: kito.cheng , palmer Subject: Re: RE: [PATCH V4] RISC-V: Implement RESOLVE_OVERLOADED_BUILTIN for RVV intrinsic References: <20231030093443.6200-1-xuli1@eswincomputing.com>, <839C5E081D94D65E+202310301744296827912@rivai.ai>, <2023103018040240058218@eswincomputing.com>, <0C278EB6E3922DA6+202310301814443499214@rivai.ai>, <2023103018170603895119@eswincomputing.com>, X-Priority: 3 X-GUID: 1D387245-03F3-4529-A54E-432842F4E0B7 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <2023103109191411657038@eswincomputing.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-CM-TRANSID:TAJkCgAXfkUFVkBlTnsBAA--.1589S2 X-Coremail-Antispam: 1UD129KBjvAXoWDCrWUJr43Ww15AF4DCFW5trb_yoWxJw1fWo WDur1xAr15Xr1Uur1UJw1UJr15Jw18Jr1DJryUJr17Gr1jy3WUA348JryUG3y5Jr1rGr1U JryUJryUAFyUJr1Un29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7v73VFW2AGmfu7bjvjm3 AaLaJ3UjIYCTnIWjp_UUU5s7k0a2IF6w4kM7kC6x804xWl1xkIjI8I6I8E6xAIw20EY4v2 0xvaj40_Wr0E3s1l8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7 IYx2IY67AKxVWDJVCq3wA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_Cr1UM28EF7xv wVC2z280aVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_GcCE3s1le2I262 IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E74AGY7Cv6cx2 6r4UJr1UJwAv7VCY1x0262k0Y48FwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UMxkIec xEwVAFwVWkMxAIw28IcVCjz48v1sIEY20_Gr1UJr1UMxC20s026xCaFVCjc4AY6r1j6r4U MI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67 AKxVWUAVWUtwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AK xVWUJVW8JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Jr0_Gr 1lIxAIcVC2z280aVCY1x0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjxUfs2-UUUU U X-CM-SenderInfo: 50xoxi46hv4xpqfrz1xxwl0woofrz/ X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Pj4gV2UgdmFsaWRhdGVkIHRoaXMgZnJhbWV3b3JrIGJ5IHRoZSB2bXZfdiBpbnRyaW5zaWMgQVBJ KHMpLCBhbmQgd2Ugd2lsbAoKPj4gYWRkIG1vcmUgaW50cmlucyBBUEkgc3VwcG9ydCBpbiB0aGUg dW5kZXJseWluZyBwYXRjaGVzLgoKPgoKCj5JcyBhYm92ZSBjaGFuZ2UgbmVjZXNzYXJ5PwoKVGhl IG1vZGlmaWNhdGlvbiBoZXJlIGlzIGJlY2F1c2UgdGhlIGNoZWNrIGZ1bmN0aW9uIG9mIHZzZXQv dmdldCBjcmFzaGVzLgpmb3IgZXhhbXBsZToKX19yaXNjdl92Z2V0X2k4bTEoc3JjLCAwKTsKClRo ZSAib3JpZ19mbmRlY2wiIG9idGFpbmVkIGJ5IGVudGVyaW5nIHRoZSBob29rIGlzOgp2b2lkIF9f cmlzY3ZfdmdldF9pOG0xKHZvaWQpOwoKVGhlICJmbmRlY2wiIGZvdW5kIHdpdGggaGFzaCB2YWx1 ZSBpczoKdmludDhtMV90IF9fcmlzY3ZfdmdldF92X2k4bTJfaThtMSh2aW50OG0yX3Qgc3JjLCBz aXplX3QgaW5kZXgpOwoKc3RydWN0IHZnZXRfZGVmIDogcHVibGljIG1pc2NfZGVmCnsKICBib29s IGNoZWNrIChmdW5jdGlvbl9jaGVja2VyICZjKSBjb25zdCBvdmVycmlkZQogIHsKICAgIHBvbHlf aW50NjQgb3V0ZXJfc2l6ZSA9IEdFVF9NT0RFX1NJWkUgKGMuYXJnX21vZGUgKDApKTsvL2lmIHVz ZSAib3JpZ19mbmRlY2wiLCBjLmFyZ19tb2RlID0gbnVsbCwgd2lsbCBjcmFzaC4KICAgIHBvbHlf aW50NjQgaW5uZXJfc2l6ZSA9IEdFVF9NT0RFX1NJWkUgKGMucmV0X21vZGUgKCkpOwogICAgdW5z aWduZWQgaW50IG52ZWNzID0gZXhhY3RfZGl2IChvdXRlcl9zaXplLCBpbm5lcl9zaXplKS50b19j b25zdGFudCAoKTsKICAgIHJldHVybiBjLnJlcXVpcmVfaW1tZWRpYXRlICgxLCAwLCBudmVjcyAt IDEpOwogIH0KfTsKCgo+PiAtICByZXR1cm4gZnVuY3Rpb25fY2hlY2tlciAobG9jYXRpb24sIHJm bi5pbnN0YW5jZSwgZm5kZWNsLAoKPj4gLQkJCSAgIFRSRUVfVFlQRSAocmZuLmRlY2wpLCBuYXJn cywgYXJncykuY2hlY2sgKCk7Cgo+PiArICByZXR1cm4gZnVuY3Rpb25fY2hlY2tlciAobG9jYXRp b24sIHJmbi5pbnN0YW5jZSwgZm5kZWNsLCBUUkVFX1RZUEUgKHJmbi5kZWNsKSwKCj4+ICsJCQkg ICBuYXJncywgYXJncykKCj4+ICsgICAgLmNoZWNrICgpOwoKPgoKPk9ubHkgZm9ybWF0IGNoYW5n ZXM/CgpJIGNoYW5nZWQgdGhlIGZvcm1hdCBieSBtaXN0YWtlLCBpdCB3aWxsIGJlIGNvcnJlY3Rl ZCBpbiB0aGUgbmV4dCBwYXRjaC4KCgotLS0tLS0tLS0tLS0tLQoKCgpMaSBYdQoKCgo+VGhhbmtz IGxpIGZvciBtYWtpbmcgdGhpcyBoYXBwZW4sIG92ZXJhbGwgTEdUTSBleGNlcHRzIHNvbWUgbml0 IGNvbW1lbnRzIGFzIGJlbG93LgoKCgo+CgoKCj4+IFdlIHZhbGlkYXRlZCB0aGlzIGZyYW1ld29y ayBieSB0aGUgdm12X3YgaW50cmluc2ljIEFQSShzKSwgYW5kIHdlIHdpbGwKCgoKPj4gYWRkIG1v cmUgaW50cmlucyBBUEkgc3VwcG9ydCBpbiB0aGUgdW5kZXJseWluZyBwYXRjaGVzLgoKCgo+Cgo+ UGxlYXNlIGhlbHAgdG8gcmVtb3ZlIGFib3ZlIHBhcnQgZnJvbSBjb21taXQgbG9nIGFzIG91dCBv ZiBkYXRlLgoKCgo+CgoKCj4+IC0JCQkJCcKgwqDCoMKgwqDCoCBvcmlnX2ZuZGVjbCwgbmFyZ3Ms IGFyZ3MpOwoKCgo+PiArCQkJCQnCoMKgwqDCoMKgwqAgZm5kZWNsLCBuYXJncywgYXJncyk7CgoK Cj4KCgoKPklzIGFib3ZlIGNoYW5nZSBuZWNlc3Nhcnk/CgoKCj4KCgoKPj4gK8KgIC8qIFRoZSBv dmVybG9hZCBoYXNoIG9mIG5vbi1vdmVybG9hZGVkIGludHJpbnNpYyBpcyBkZXRlcm1pbmVkIGJ5 CgoKCj4+ICvCoMKgwqDCoCB0aGUgb3ZlcmxvYWQgbmFtZSBhbmQgYXJndW1lbnQgbGlzdC4gQWRk aW5nIHRoZSBvdmVybG9hZCBuYW1lIHRvCgoKCj4+ICvCoMKgwqDCoCB0aGUgaGFzaCBpcyBhbHNv IHRvIGFkZHJlc3MgdGhlIGZvbGxvd2luZyBzaXR1YXRpb25zOgoKCgo+PiArwqDCoMKgwqAgdmlu dDE2bWY0X3TCoCBfX3Jpc2N2X3ZyZWludGVycHJldF9pMTZtZjQgKHZmbG9hdDE2bWY0X3Qgc3Jj KTsKCgoKPj4gK8KgwqDCoMKgIHZ1aW50MTZtZjRfdCBfX3Jpc2N2X3ZyZWludGVycHJldF91MTZt ZjQgKHZmbG9hdDE2bWY0X3Qgc3JjKTsKCgoKPj4gK8KgwqDCoMKgIFRoZSBiYXNlLCBzaGFwZSBh bmQgYXJndW1lbnQgbGlzdCBvZiB0aGUgdnJlaW50ZXJwcmV0IGluc3RhbmNlIGFyZQoKCgo+PiAr wqDCoMKgwqAgdGhlIHNhbWUsIG9ubHkgdGhlIG92ZXJsb2FkIG5hbWUgaXMgZGlmZmVyZW50LiAq LwoKCgo+CgoKCj5UaGUgaGFzaCBkb2Vzbid0IHJlcXVpcmUgYmFzZSBhbmQgc2hhcGUgYW55bW9y ZSA/IElmIHNvIEkgYmV0IHRoZSBjb21tZW50cyBuZWVkIG1pbm9yIHVwZGF0ZXMuCgoKCgo+CgoK Cj4+IC3CoCByZXR1cm4gZnVuY3Rpb25fY2hlY2tlciAobG9jYXRpb24sIHJmbi5pbnN0YW5jZSwg Zm5kZWNsLAoKCgo+PiAtCQkJwqDCoCBUUkVFX1RZUEUgKHJmbi5kZWNsKSwgbmFyZ3MsIGFyZ3Mp LmNoZWNrICgpOwoKCgo+PiArwqAgcmV0dXJuIGZ1bmN0aW9uX2NoZWNrZXIgKGxvY2F0aW9uLCBy Zm4uaW5zdGFuY2UsIGZuZGVjbCwgVFJFRV9UWVBFIChyZm4uZGVjbCksCgoKCj4+ICsJCQnCoMKg IG5hcmdzLCBhcmdzKQoKCgo+PiArwqDCoMKgIC5jaGVjayAoKTsKCgoKPgoKCgo+T25seSBmb3Jt YXQgY2hhbmdlcz8KCgoKPgoKCgo+PiArwqDCoMKgwqDCoCBlbHNlIGlmIChoYXNfdnhybV9vcl9m cm1fcCAoaW5zdGFuY2UsIGFyZ2xpc3QpICYmIChpID09IChsZW4gLSAyKSkpCgoKCj4+ICsJYXJn dW1lbnRfdHlwZXMuc2FmZV9wdXNoICh1bnNpZ25lZF90eXBlX25vZGUpOwoKCgo+CgoKCj5Ib3cg YWJvdXQgbW92ZSB0aGUgY29tbWVudHMgZnJvbSB0aGUgaGVhZCBvZiBoYXNfdnhybV9vcl9mcm1f cCB0byBoZXJlPyBHaXZlbiB0aGUgaGFzX3Z4cm1fb3JfZnJtX3AKCgoKPmxvb2tzIGxpa2Ugc2lt cGxlIHByZWRpY2F0ZSBmdW5jdGlvbiByZXR1cm4gdHJ1ZSBvciBmYWxzZSwgd2hpY2ggbWF5IGJl IGlycmVsZXZhbnQgdG8gdGhlIGhhc2ggcGFydC4KCgoKPgoKCgo+UGFuCgoKCj4KCgoKPi0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tCgoKCj5Gcm9tOiBMaSBYdSA8eHVsaTFAZXN3aW5jb21wdXRp bmcuY29tPiAKCgoKPlNlbnQ6IE1vbmRheSwgT2N0b2JlciAzMCwgMjAyMyA2OjE3IFBNCgoKCj5U bzoganV6aGUuemhvbmcgPGp1emhlLnpob25nQHJpdmFpLmFpPjsgZ2NjLXBhdGNoZXMgPGdjYy1w YXRjaGVzQGdjYy5nbnUub3JnPgoKCgo+Q2M6IGtpdG8uY2hlbmcgPGtpdG8uY2hlbmdAZ21haWwu Y29tPjsgcGFsbWVyIDxwYWxtZXJAZGFiYmVsdC5jb20+CgoKCj5TdWJqZWN0OiBSZTogUmU6IFtQ QVRDSCBWNF0gUklTQy1WOiBJbXBsZW1lbnQgUkVTT0xWRV9PVkVSTE9BREVEX0JVSUxUSU4gZm9y IFJWViBpbnRyaW5zaWMKCgoKPgoKCgo+CgoKCj5PSywgSSB3aWxsIHNlbmQgcGF0Y2ggdjUuCgoK Cj4KCgoKPgoKCgo+LS0tLS0tLS0tLS0tLS0KCgoKPgoKCgo+CgoKCj4KCgoKPkxpIFh1CgoKCj4K CgoKPgoKCgo+CgoKCj4+T2suIFVuZGVyc3RhbmQuCgoKCj4KCgoKPgoKCgo+CgoKCj4+CgoKCj4K CgoKPgoKCgo+CgoKCj4+Q291bGQgeW91IGFkZCB3cmFwcGVyICJtYXliZV9yZXF1aXJlX3Z4cm1f cCIgYW5kICJtYXliZV9yZXF1aXJlX2ZybV9wIsKgID8KCgoKPgoKCgo+CgoKCj4KCgoKPj4KCgoK PgoKCgo+CgoKCj4KCgoKPj5zdGF0aWMgYm9vbAoKCgo+CgoKCj4KCgoKPgoKCgo+Pm1heWJlX3Jl cXVpcmVfZnJtX3AKCgoKPgoKCgo+CgoKCj4KCgoKPj5yZXR1cm4gaW5zdGFuY2UuYmFzZSA9PSBi YXNlczo6dmZ3cmVkdXN1bSB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndyZWRvc3VtCgoK Cj4KCgoKPgoKCgo+CgoKCj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6 dmZhZGQgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZ3c3ViCgoKCj4KCgoKPgoKCgo+CgoK Cj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZ3bm1zYWMgfHwgaW5z dGFuY2UuYmFzZSA9PSBiYXNlczo6dmZ3bm1hY2MKCgoKPgoKCgo+CgoKCj4KCgoKPj4rwqDCoMKg wqDCoCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndtdWwgfHwgaW5zdGFuY2UuYmFzZSA9 PSBiYXNlczo6dmZjdnRfeAoKCgo+CgoKCj4KCgoKPgoKCgo+PivCoMKgwqDCoMKgIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmY3Z0X2YgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZj dnRfeHUKCgoKPgoKCgo+CgoKCj4KCgoKPj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5jZS5iYXNlID09 IGJhc2VzOjp2Zndtc2FjIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd21hY2MKCgoKPgoK Cgo+CgoKCj4KCgoKPj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zndj dnRfeCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndhZGQKCgoKPgoKCgo+CgoKCj4KCgoK Pj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZnN1YiB8fCBpbnN0YW5j ZS5iYXNlID09IGJhc2VzOjp2ZnNxcnQKCgoKPgoKCgo+CgoKCj4KCgoKPj4rwqDCoMKgwqDCoCB8 fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZnJlZHVzdW0gfHwgaW5zdGFuY2UuYmFzZSA9PSBi YXNlczo6dmZyc3ViCgoKCj4KCgoKPgoKCgo+CgoKCj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFuY2Uu YmFzZSA9PSBiYXNlczo6dmZyZWRvc3VtIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmcmVj NwoKCgo+CgoKCj4KCgoKPgoKCgo+PivCoMKgwqDCoMKgIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFz ZXM6OnZmcmRpdiB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm5tc3ViCgoKCj4KCgoKPgoK Cgo+CgoKCj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZubXNhYyB8 fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm5tYWRkCgoKCj4KCgoKPgoKCgo+CgoKCj4+K8Kg wqDCoMKgwqAgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZubWFjYyB8fCBpbnN0YW5jZS5i YXNlID09IGJhc2VzOjp2Zm5jdnRfZgoKCgo+CgoKCj4KCgoKPgoKCgo+PivCoMKgwqDCoMKgIHx8 IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbmN2dF94IHx8IGluc3RhbmNlLmJhc2UgPT0gYmFz ZXM6OnZmbmN2dF94dQoKCgo+CgoKCj4KCgoKPgoKCgo+PivCoMKgwqDCoMKgIHx8IGluc3RhbmNl LmJhc2UgPT0gYmFzZXM6OnZmbXVsIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbXN1YgoK Cgo+CgoKCj4KCgoKPgoKCgo+PivCoMKgwqDCoMKgIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6 OnZmbXNhYyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm1hZGQKCgoKPgoKCgo+CgoKCj4K CgoKPj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm1hY2MgfHwgaW5z dGFuY2UuYmFzZSA9PSBiYXNlczo6dmZkaXYKCgoKPgoKCgo+CgoKCj4KCgoKPj4rwqDCoMKgwqDC oCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndjdnRfeHUKCgoKPgoKCgo+CgoKCj4KCgoK Pj4KCgoKPgoKCgo+CgoKCj4KCgoKPj4KCgoKPgoKCgo+CgoKCj4KCgoKPj4KCgoKPgoKCgo+CgoK Cj4KCgoKPj5qdXpoZS56aG9uZ0ByaXZhaS5haQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj5Gcm9tOiBMaSBYdQoKCgo+CgoKCj4KCgoKPgoKCgo+PkRhdGU6IDIwMjMt MTAtMzAgMTg6MDQKCgoKPgoKCgo+CgoKCj4KCgoKPj5UbzoganV6aGUuemhvbmc7IGdjYy1wYXRj aGVzCgoKCj4KCgoKPgoKCgo+CgoKCj4+Q0M6IGtpdG8uY2hlbmc7IHBhbG1lcgoKCgo+CgoKCj4K CgoKPgoKCgo+PlN1YmplY3Q6IFJlOiBSZTogW1BBVENIIFY0XSBSSVNDLVY6IEltcGxlbWVudCBS RVNPTFZFX09WRVJMT0FERURfQlVJTFRJTiBmb3IgUlZWIGludHJpbnNpYwoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pi0tLS0tLS0tLS0tLS0tCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+TGkgWHUKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+VGhhbmtzLgoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+SSBsaWtl IHRoaXMgJ0hBU0gnIHNvbHV0aW9uIHdoaWNoIGlzIG11Y2ggbW9yZSByZWFzb25hYmxlIHRvIG1l LgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+U29tZSBjb21tZW50cyBoZXJlOgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4K CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K2Jvb2wKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+K2hhc192eHJtX29yX2ZybV9wIChmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2Us IGNvbnN0IHZlYzx0cmVlLCB2YV9nYz4gJmFyZ2xpc3QpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+Pit7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCAvKiBWZWN0b3IgZml4 ZWQtcG9pbnQgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgcmVxdWlyaW5nIGFyZ3VtZW50IHZ4cm0u CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoCBGb3IgZXhhbXBsZTogdnVp bnQzMm00X3QgX19yaXNjdl92YWFkZHUodnVpbnQzMm00X3QgdnMyLCB2dWludDMybTRfdCB2czEs CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIHVuc2lnbmVkIGludCB2 eHJtLCBzaXplX3QgdmwpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqAg VGhlIHVzZXIgY2FsbHMgdmFhZGR1IGludHJpbnNpYyBpbiB0aGUgZm9ybSBvZiBfX3Jpc2N2X3Zh YWRkdSh2czIsIHZzMSwgMiwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKg IHZsKS4gVGhlIGNvbXBpbGVyIHJlY29nbml6ZXMgdGhhdCB0aGUgcGFyYW1ldGVyIHZ4cm0gaXMg YSBzaWduZWQgaW50LCB3aGljaAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKg wqAgaXMgaW5jb25zaXN0ZW50IHdpdGggdGhlIHBhcmFtZXRlciB1bnNpZ25lZCBpbnQgdnhybSBk ZWNsYXJlZCBieSBpbnRyaW5zaWMsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKg wqDCoCBzbyB0aGUgcGFyYW1ldGVyIHZ4cm0gaXMgY29udmVydGVkIHRvIGFuIHVuc2lnbmVkIGlu dCB0eXBlIGluIG9yZGVyIHRvIGdldAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDC oMKgwqAgY29ycmVjdCBoYXNoIHZhbHVlLiAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rwqAgaWYgKGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZhYWRkIHx8IGluc3RhbmNlLmJhc2Ug PT0gYmFzZXM6OnZhYWRkdQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDC oCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2YXN1YiB8fCBpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2YXN1YnUKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgfHwg aW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dnNzcmwgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6 dnNzcmEKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFu Y2UuYmFzZSA9PSBiYXNlczo6dnNtdWwgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dm5jbGlw dQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5jZS5i YXNlID09IGJhc2VzOjp2bmNsaXApCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKg wqAgcmV0dXJuIHRydWU7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIC8qIFZlY3RvciBGbG9hdGluZy1Qb2ludCBJbnN0cnVj dGlvbnMgcmVxdWlyaW5nIGFyZ3VtZW50IGZybS4gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+K8KgIGlmIChpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndyZWR1c3VtIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmd3JlZG9zdW0KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZhZGQgfHwgaW5zdGFu Y2UuYmFzZSA9PSBiYXNlczo6dmZ3c3ViCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivC oMKgwqDCoMKgIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd25tc2FjIHx8IGluc3RhbmNl LmJhc2UgPT0gYmFzZXM6OnZmd25tYWNjCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivC oMKgwqDCoMKgIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd211bCB8fCBpbnN0YW5jZS5i YXNlID09IGJhc2VzOjp2ZmN2dF94CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKg wqDCoMKgIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmY3Z0X2YgfHwgaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dmZjdnRfeHUKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDC oMKgwqAgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZ3bXNhYyB8fCBpbnN0YW5jZS5iYXNl ID09IGJhc2VzOjp2ZndtYWNjCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDC oMKgIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd2N2dF94IHx8IGluc3RhbmNlLmJhc2Ug PT0gYmFzZXM6OnZmd2FkZAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDC oCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZnN1YiB8fCBpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2ZnNxcnQKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgfHwg aW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZyZWR1c3VtIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFz ZXM6OnZmcnN1YgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB8fCBp bnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZnJlZG9zdW0gfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmZyZWM3CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIHx8IGlu c3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmcmRpdiB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2 Zm5tc3ViCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmbm1zYWMgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZu bWFkZAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5j ZS5iYXNlID09IGJhc2VzOjp2Zm5tYWNjIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbmN2 dF9mCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIHx8IGluc3RhbmNl LmJhc2UgPT0gYmFzZXM6OnZmbmN2dF94IHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbmN2 dF94dQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5j ZS5iYXNlID09IGJhc2VzOjp2Zm11bCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm1zdWIK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dmZtc2FjIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbWFkZAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5jZS5iYXNlID09 IGJhc2VzOjp2Zm1hY2MgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZkaXYKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmZ3Y3Z0X3h1KQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgIHsKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgLyogREVGX1JWVl9GVU5DVElP TiAodmZhZGQsIGFsdSwgZnVsbF9wcmVkcywgZl92dnZfb3BzKQoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rIERFRl9SVlZfRlVOQ1RJT04gKHZmYWRkX2ZybSwgYWx1X2ZybSwgZnVsbF9w cmVkcywgZl92dnZfb3BzKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rIFRha2luZyB2 ZmFkZCBhcyBhbiBleGFtcGxlLCB0aGVvcmV0aWNhbGx5IHdlIGNhbiBhZGQgYmFzZSBvciBzaGFw ZSB0bwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rIHRoZSBoYXNoIHZhbHVlIHRvIGRp c3Rpbmd1aXNoIHdoZXRoZXIgdGhlIGZybSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQuCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgdmZsb2F0MzJtMV90IF9fcmlzY3ZfdmZhZGQodmZsb2F0 MzJtMV90IHZzMiwgZmxvYXQzMl90IHJzMSwgc2l6ZV90IHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+KyB2ZmxvYXQzMm0xX3QgX19yaXNjdl92ZmFkZCh2ZmxvYXQzMm0xX3QgdnMy LCB2ZmxvYXQzMm0xX3QgdnMxLCB1bnNpZ25lZAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rIGludCBmcm0sIHNpemVfdCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyBIb3dldmVyLCB0aGUgY3VycmVudCByZWdp c3RyYXRpb24gbWVjaGFuaXNtIG9mIG92ZXJsb2FkZWQgaW50aW5zaWMgZm9yCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PisgZ2NjIGxpbWl0cyB0aGUgaW50cmluc2ljIG9idGFpbmVkIGJ5 IGVudGVyaW5nIHRoZSBob29rIHRvIGFsd2F5cyBiZQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rIHZmYWRkLCBub3QgdmZhZGRfZnJtLiBUaGVyZWZvcmUsIHRoZSBjb3JyZWN0IGhhc2gg dmFsdWUgY2Fubm90IGJlCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pisgb2J0YWluZWQg dGhyb3VnaCB0aGUgcGFyYW1ldGVyIGxpc3QgYW5kIG92ZXJsb2FkIG5hbWUsIGJhc2Ugb3Igc2hh cGUuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rIHwgaW5kZXjCoCB8IG5hbWXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfCBraW5kwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ KyB8IDEyNDczMyB8IF9fcmlzY3ZfdmZhZGTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBPdmVy bG9hZGVkwqDCoMKgwqDCoMKgwqAgfCA8LSBIb29rIGZ1biBjb2RlCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PisgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rIHwgMTI0NzM1 IHzCoCBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xwqDCoCB8IE5vbi1vdmVybG9hZGVkwqDCoMKgIHwK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PisgfCAxMjQ3MzcgfCBfX3Jpc2N2X3ZmYWRkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHwgUGxhY2Vob2xkZXLCoMKgwqDCoMKgwqAgfAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyB8IC4uLsKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PisgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rIHwgLi4uwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+KyArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgfCAxMjU3Mzkg fCBfX3Jpc2N2X3ZmYWRkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgT3ZlcmxvYWRlZMKgwqDC oMKgwqDCoMKgIHwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyArLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PisgfCAxMjU3NDEgfCBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IHwgTm9uLW92ZXJsb2FkZWTCoMKgwqAgfAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r ICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyB8IDEyNTc0MyB8IF9fcmlzY3ZfdmZh ZGTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBQbGFjZWhvbGRlcsKgwqDCoMKgwqDCoCB8CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgVGhlcmVmb3JlLCB0aGUgaGFz aCB2YWx1ZSBjYW5ub3QgYmUgYWRkZWQgd2l0aCBiYXNlIG9yIHNoYXBlLCBhbmQgbmVlZHMKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyB0byBiZSBkaXN0aW5ndWlzaGVkIGJ5IHdoZXRo ZXIgdGhlIHBlbnVsdGltYXRlIHBhcmFtZXRlciBpcwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rIElOVEVHRVJfVFlQRS4gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8Kg wqDCoMKgwqAgaWYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChhcmdsaXN0W2FyZ2xpc3QubGVuZ3Ro ICgpIC0gMl0pKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoCA9PSBJTlRFR0VS X1RZUEUpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgcmV0dXJuIHRydWU7CgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqAgfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rwqAgcmV0dXJuIGZhbHNlOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r fQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5JcyBpcyBwb3NzaWJsZSB0byB1c2UgaW5z dGFuY2UuYmFzZS5oYXNfcm91bmRpbmdfbW9kZV9vcGVyYW5kX3AgPwoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj5TbyB0aGF0IHdlIHdvbid0IG5lZWQgdG8gd3JpdGUgdGhpcyBsb25nIGNv ZGUuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj5UYWtpbmcgdmZhZGQgYXMgYW4gZXhhbXBsZSwgYmVjYXVzZSB0aGUgb3Zlcmxv YWRlZCBmdW5jdGlvbiBuYW1lcyBvZiB2ZmFkZCBhbmQgZnJtIHZmYWRkIGFyZSB0aGUgc2FtZSwg CgoKCj4KCgoKPgoKCgo+CgoKCj4+aW4gb3JkZXIgdG8gYXZvaWQgY29uZmxpY3RzLCB0aGUgb3Zl cmxvYWRlZCBmdW5jdGlvbiBpcyBkZWNsYXJlZCBhcyB2b2lkIF9fcmlzY3ZfdmZhZGQgKHZvaWQp LCAKCgoKPgoKCgo+CgoKCj4KCgoKPj5zbyB0aGUgaW5zdGFuY2Ugb2J0YWluZWQgd2hlbiBlbnRl cmluZyB0aGUgaG9vayBpcyBhbHdheXMgdmZhZGQsIG5vdCBmcm0gdmZhZGQsCgoKCj4KCgoKPgoK Cgo+CgoKCj4+c28gSSBjYW5ub3QgcmVseSBvbiBpbnN0YW5jZSB0byBkaXN0aW5ndWlzaCB3aGV0 aGVyIGZybSBpcyBuZWVkZWQuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PnZmbG9hdDMybTFfdCBfX3Jpc2N2X3ZmYWRkKHZmbG9hdDMybTFfdCB2czIsIGZsb2F0MzJf dCByczEsIHNpemVfdCB2bCk7Ly8gaW5zdGFuY2UuYmFzZS5oYXNfcm91bmRpbmdfbW9kZV9vcGVy YW5kX3AgaXMgYWx3YXlzIGZhbHNlCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PnZmbG9hdDMybTFfdCBfX3Jpc2N2X3ZmYWRkKHZmbG9hdDMybTFfdCB2czIsIHZmbG9h dDMybTFfdCB2czEsIHVuc2lnbmVkCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PsKgwqDCoCBpbnQgZnJtLCBzaXplX3QgdmwpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PivCoCByZXR1cm4gKCgwID09IHN0cmNtcCAodmFsdWUtPm92ZXJsb2FkX25hbWUsIGtleS0+ b3ZlcmxvYWRfbmFtZSkpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pj4+c3RyY21wICh2 YWx1ZS0+b3ZlcmxvYWRfbmFtZSwga2V5LT5vdmVybG9hZF9uYW1lKSA9PSAwCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4KCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PgoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5qdXpoZS56aG9uZ0ByaXZhaS5haQoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkZy b206IExpIFh1CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkRhdGU6IDIwMjMtMTAtMzAg MTc6MzQKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+VG86IGdjYy1wYXRjaGVzCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkNDOiBraXRvLmNoZW5nOyBwYWxtZXI7IGp1emhlLnpo b25nOyB4dWxpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PlN1YmplY3Q6IFtQQVRDSCBW NF0gUklTQy1WOiBJbXBsZW1lbnQgUkVTT0xWRV9PVkVSTE9BREVEX0JVSUxUSU4gZm9yIFJWViBp bnRyaW5zaWMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+RnJvbTogeHVsaSA8eHVsaTFA ZXN3aW5jb21wdXRpbmcuY29tPgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PlVwZGF0ZSBpbiB2NDoKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+KiBSZW1vdmUgY2xhc3MgZnVuY3Rpb25fcmVzb2x2ZXIuCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PiogUmVtb3ZlIGZ1bmN0aW9uIGdldF9ub25fb3ZlcmxvYWRlZF9p bnN0YW5jZS4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KiBBZGQgb3ZlcmxvYWRlZCBo YXNoIHRyYWl0cyBmb3Igbm9uLW92ZXJsb2FkZWQgaW50cmluc2ljLgoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4qIEFsbCBvdmVybG9hZGVkIGludHJpbnNpY3MgYXJlIGltcGxlbWVudGVk LCBhbmQgdGhlIHRlc3RzIHBhc3MuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+VXBkYXRlIGluIHYzOgoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PiogUmV3cml0ZSBj b21tZW50IGZvciBvdmVybG9hZGVkIGZ1bmN0aW9uIGFkZC4KCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+KiBNb3ZlIGdldF9ub25fb3ZlcmxvYWRlZF9pbnN0YW5jZSB0byBmdW5jdGlvbl9i YXNlLgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PlVwZGF0ZSBpbiB2MjoKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4qIEFkZCBnZXRfbm9uX292ZXJsb2FkZWRfaW5z dGFuY2UgZm9yIGZ1bmN0aW9uIGluc3RhbmNlLgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4qIEZpeCBvdmVybG9hZCBjaGVjayBmb3IgcG9saWN5IGZ1bmN0aW9uLgoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj4qIEVucmljaCB0aGUgdGVzdCBjYXNlcyBjaGVjay4KCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5Pcmln aW5hbCBsb2c6CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+VGhpcyBwYXRjaCB3b3VsZCBsaWtlIGFkZCB0aGUgZnJhbWV3b3JrIHRv IHN1cHBvcnQgdGhlIFJWViBvdmVybG9hZGVkCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PmludHJpbnNpYyBBUEkgaW4gcmlzY3YteHh4LXh4eC1nY2MsIGxpa2UgcmlzY3YteHh4LXh4eC1n KysgZGlkLgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+Pkhvd2V2ZXIsIGl0IGFsbW9zdCBsZXZlcmFnZSB0aGUgaG9vayBUQVJHRVRf UkVTT0xWRV9PVkVSTE9BREVEX0JVSUxUSU4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ d2l0aCBiZWxvdyBzdGVwcy4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4qIFJlZ2lzdGVyIG92ZXJsb2FkZWQgZnVuY3Rpb25zLgoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4qIEFkZCBmdW5jdGlvbl9yZXNvbHZlciBmb3Ig b3ZlcmxvYWRlZCBmdW5jdGlvbiByZXNvbHZpbmcuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PiogQWRkIHJlc29sdmUgQVBJIGZvciBmdW5jdGlvbiBzaGFwZSB3aXRoIGRlZmF1bHQgaW1w bGVtZW50YXRpb24uCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PiogSW1wbGVtZW50IEhP T0sgZm9yIG5hdmlnYXRpbmcgdGhlIG92ZXJsb2FkZWQgQVBJIHRvIG5vbi1vdmVybG9hZGVkIEFQ SS4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj5XZSB2YWxpZGF0ZWQgdGhpcyBmcmFtZXdvcmsgYnkgdGhlIHZtdl92IGludHJpbnNp YyBBUEkocyksIGFuZCB3ZSB3aWxsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmFkZCBt b3JlIGludHJpbnMgQVBJIHN1cHBvcnQgaW4gdGhlIHVuZGVybHlpbmcgcGF0Y2hlcy4KCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5n Y2MvQ2hhbmdlTG9nOgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgwqDCoMKgICogY29uZmlnL3Jpc2N2L3Jpc2N2LWMu Y2MgKHJpc2N2X3Jlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluKTogTmV3IGZ1bmN0aW9uIGZvciB0 aGUgaG9vay4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoMKgwqDCoMKgwqAgKHJp c2N2X3JlZ2lzdGVyX3ByYWdtYXMpOiBSZWdpc3RlciB0aGUgaG9vay4KCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+wqDCoMKgwqDCoMKgwqAgKiBjb25maWcvcmlzY3YvcmlzY3YtcHJvdG9z LmggKHJlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluKTogTmV3IGRlY2wuCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgwqDCoMKgICogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy1zaGFwZXMuY2MgKGJ1aWxkX29uZSk6IFJlZ2lzdGVyIG92ZXJsb2FkZWQgZnVu Y3Rpb24uCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgwqDCoMKgICogY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyAoc3RydWN0IG5vbl9vdmVybG9hZGVk X3JlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyKTogTmV3IGhhc2ggdGFibGUuCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgwqDCoMKgIChmdW5jdGlvbl9idWlsZGVyOjphZGRf ZnVuY3Rpb24pOiBBZGQgb3ZlcmxvYWRlZCBhcmcuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PsKgwqDCoMKgwqDCoMKgIChmdW5jdGlvbl9idWlsZGVyOjphZGRfdW5pcXVlX2Z1bmN0aW9u KTogTWFwIG92ZXJsb2FkZWQgZnVuY3Rpb24gdG8gbm9uLW92ZXJsb2FkZWQgZnVuY3Rpb24uCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgwqDCoMKgIChmdW5jdGlvbl9idWls ZGVyOjphZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbik6IE5ldyBBUEkgaW1wbC4KCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4+wqDCoMKgwqDCoMKgwqAgKHJlZ2lzdGVyZWRfZnVuY3Rpb246Om92 ZXJsb2FkZWRfaGFzaCk6IENhbGN1bGF0ZSBoYXNoIHZhbHVlLgoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj7CoMKgwqDCoMKgwqDCoCAoaGFzX3Z4cm1fb3JfZnJtX3ApOiBOZXcgZnVuY3Rp b24gaW1wbC4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoMKgwqDCoMKgwqAgKG5v bl9vdmVybG9hZGVkX3JlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyOjpoYXNoKTogRGl0dG8uCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgwqDCoMKgIChub25fb3ZlcmxvYWRl ZF9yZWdpc3RlcmVkX2Z1bmN0aW9uX2hhc2hlcjo6ZXF1YWwpOiBEaXR0by4KCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4+wqDCoMKgwqDCoMKgwqAgKGhhbmRsZV9wcmFnbWFfdmVjdG9yKTog QWxsb2NhdGUgc3BhY2UgZm9yIGhhc2ggdGFibGUuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PsKgwqDCoMKgwqDCoMKgIChyZXNvbHZlX292ZXJsb2FkZWRfYnVpbHRpbik6IE5ldyBmdW5j dGlvbiBpbXBsLgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDCoMKgwqDCoCAq IGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaDogQWRkIGFkZGl0aW9uYWwgcGFy YW1ldGVycyB0byBhZGRfZnVuY3Rpb24uCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Z2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+wqDCoMKgwqDCoMKgwqAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnYzMl92YWRkLmM6IE5ldyB0ZXN0LgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKg wqDCoMKgwqDCoCAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Zm YWRkLmM6IE5ldyB0ZXN0LgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDCoMKg wqDCoCAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZnZXRfdnNl dC5jOiBOZXcgdGVzdC4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoMKgwqDCoMKg wqAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bG94c2VnMmVp MTYuYzogTmV3IHRlc3QuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgwqDC oMKgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdm12LmM6IE5l dyB0ZXN0LgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDCoMKgwqDCoCAqIGdj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZyZWludGVycHJldC5jOiBO ZXcgdGVzdC4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoMKgwqDCoMKgwqAgKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92YWRkLmM6IE5ldyB0ZXN0 LgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDCoMKgwqDCoCAqIGdjYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZmYWRkLmM6IE5ldyB0ZXN0LgoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDCoMKgwqDCoCAqIGdjYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZnZXRfdnNldC5jOiBOZXcgdGVzdC4KCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoMKgwqDCoMKgwqAgKiBnY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bG94c2VnMmVpMTYuYzogTmV3IHRlc3QuCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgwqDCoMKgICogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdm12LmM6IE5ldyB0ZXN0LgoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDCoMKgwqDCoCAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2Uvb3ZlcmxvYWRlZF9ydjY0X3ZyZWludGVycHJldC5jOiBOZXcgdGVzdC4KCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4+wqDCoMKgwqDCoMKgwqAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfdmFkZC5oOiBOZXcgdGVzdC4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+wqDCoMKgwqDCoMKgwqAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfdmZhZGQuaDogTmV3IHRlc3QuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDC oMKgwqDCoMKgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZnZXRfdnNl dC5oOiBOZXcgdGVzdC4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoMKgwqDCoMKg wqAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmxveHNlZzJlaTE2Lmg6 IE5ldyB0ZXN0LgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDCoMKgwqDCoCAq IGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bXYuaDogTmV3IHRlc3QuCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgwqDCoMKgICogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZyZWludGVycHJldC5oOiBOZXcgdGVzdC4KCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5T aWduZWQtb2ZmLWJ5OiBMaSBYdSA8eHVsaTFAZXN3aW5jb21wdXRpbmcuY29tPgoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj5Dby1BdXRob3JlZC1CeTogUGFuIExpIDxwYW4yLmxpQGludGVs LmNvbT4KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+LS0tCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PmdjYy9jb25maWcvcmlzY3YvcmlzY3YtYy5jY8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMzYgKystCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PmdjYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHzCoMKgIDEgKwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4uLi4vcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jY8KgwqDCoMKgIHzCoMKgIDEgKwoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy5jY8KgwqDCoMKgIHwgMjU1ICsrKysrKysrKysrKysrKysrLQoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj5nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5owqDC oMKgwqDCoCB8wqDCoCA1ICstCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi4uLi9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmFkZC5jwqDCoMKgwqAgfMKgIDEyICsKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Li4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYz Ml92ZmFkZC5jwqDCoMKgIHzCoCAxMiArCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi4u Li9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmdldF92c2V0LmPCoMKgwqDCoMKgIHzCoMKgIDcg KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4uLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9y djMyX3Zsb3hzZWcyZWkxNi5jwqDCoCB8wqAgMTEgKwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4uLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Ztdi5jwqDCoMKgwqDCoCB8 wqAgMTAgKwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4uLi4vcnZ2L2Jhc2Uvb3Zlcmxv YWRlZF9ydjMyX3ZyZWludGVycHJldC5jwqDCoCB8wqAgMTAgKwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4uLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZhZGQuY8KgwqDC oMKgIHzCoCAxMSArCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi4uLi9yaXNjdi9ydnYv YmFzZS9vdmVybG9hZGVkX3J2NjRfdmZhZGQuY8KgwqDCoCB8wqAgMTEgKwoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj4uLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZnZXRfdnNldC5j wqDCoMKgwqDCoCB8wqDCoCA2ICsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Li4uL3J2 di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bG94c2VnMmVpMTYuY8KgwqAgfMKgIDEwICsKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Li4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2 NF92bXYuY8KgwqDCoMKgwqAgfMKgIDEwICsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ Li4uL3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92cmVpbnRlcnByZXQuY8KgwqAgfMKgwqAgOSAr CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi4uLi9yaXNjdi9ydnYvYmFzZS9vdmVybG9h ZGVkX3ZhZGQuaMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNTkgKysrKwoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4uLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92ZmFkZC5owqDCoMKg wqDCoMKgwqDCoCB8wqAgNjcgKysrKysKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Li4u L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmdldF92c2V0LmjCoMKgwqDCoCB8wqAgMjcgKysK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Li4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfdmxveHNlZzJlaTE2LmjCoCB8wqAgMzkgKysrCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+Pi4uLi9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Ztdi5owqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgIDI2ICsrCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi4uLi9yaXNjdi9ydnYv YmFzZS9vdmVybG9hZGVkX3ZyZWludGVycHJldC5owqAgfMKgIDI5ICsrCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PjIzIGZpbGVzIGNoYW5nZWQsIDY1MyBpbnNlcnRpb25zKCspLCAxMSBk ZWxldGlvbnMoLSkKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2 MzJfdmFkZC5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMy X3ZmYWRkLmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y3JlYXRlIG1vZGUgMTAwNjQ0 IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJf dmdldF92c2V0LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2 MzJfdmxveHNlZzJlaTE2LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9h ZGVkX3J2MzJfdm12LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2MzJfdnJlaW50ZXJwcmV0LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3J2NjRfdmFkZC5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zlcmxv YWRlZF9ydjY0X3ZmYWRkLmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9h ZGVkX3J2NjRfdmdldF92c2V0LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3J2NjRfdmxveHNlZzJlaTE2LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3J2NjRfdm12LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y3Jl YXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2NjRfdnJlaW50ZXJwcmV0LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9vdmVybG9hZGVkX3ZhZGQuaAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5jcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfdmZhZGQuaAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5jcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfdmdldF92c2V0LmgKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3Zsb3hzZWcyZWkxNi5oCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF92bXYuaAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5jcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdnJlaW50 ZXJwcmV0LmgKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj5kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1jLmNjIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1jLmNjCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PmluZGV4IDI4MzA1MmFlMzEzLi5iZWRmNzIxNzM5MCAxMDA2NDQKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+LS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1jLmNjCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtYy5jYwoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5AQCAtMjE1LDE2ICsyMTUsNTAgQEAgcmlzY3ZfY2hl Y2tfYnVpbHRpbl9jYWxsIChsb2NhdGlvbl90IGxvYywgdmVjPGxvY2F0aW9uX3Q+IGFyZ19sb2Ms IHRyZWUgZm5kZWNsLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDCoCBjYXNl IFJJU0NWX0JVSUxUSU5fVkVDVE9SOgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKg wqDCoMKgwqAgcmV0dXJuIHJpc2N2X3ZlY3Rvcjo6Y2hlY2tfYnVpbHRpbl9jYWxsIChsb2MsIGFy Z19sb2MsIHN1YmNvZGUsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi3CoMKgwqDCoMKg wqDCoCBvcmlnX2ZuZGVjbCwgbmFyZ3MsIGFyZ3MpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rwqDCoMKgwqDCoMKgwqAgZm5kZWNsLCBuYXJncywgYXJncyk7CgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgIH0KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ wqDCoCBnY2NfdW5yZWFjaGFibGUgKCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pn0K CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIEltcGxlbWVudCBUQVJHRVRfUkVTT0xW RV9PVkVSTE9BREVEX0JVSUxUSU4uwqAgKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ K3N0YXRpYyB0cmVlCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PityaXNjdl9yZXNvbHZl X292ZXJsb2FkZWRfYnVpbHRpbiAodW5zaWduZWQgaW50IHVuY2FzdF9sb2NhdGlvbiwgdHJlZSBm bmRlY2wsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgIHZvaWQgKnVuY2FzdF9h cmdsaXN0KQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rewoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4rwqAgdmVjPHRyZWUsIHZhX2djPiBlbXB0eSA9IHt9OwoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgbG9jYXRpb25fdCBsb2MgPSAobG9jYXRpb25fdCkgdW5j YXN0X2xvY2F0aW9uOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgdmVjPHRyZWUs IHZhX2djPiAqYXJnbGlzdCA9ICh2ZWM8dHJlZSwgdmFfZ2M+ICopIHVuY2FzdF9hcmdsaXN0OwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgdW5zaWduZWQgaW50IGNvZGUgPSBERUNM X01EX0ZVTkNUSU9OX0NPREUgKGZuZGVjbCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PivCoCB1bnNpZ25lZCBpbnQgc3ViY29kZSA9IGNvZGUgPj4gUklTQ1ZfQlVJTFRJTl9TSElGVDsK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHRyZWUgbmV3X2ZuZGVjbCA9IE5VTExf VFJFRTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rwqAgaWYgKCFhcmdsaXN0KQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rwqDCoMKgIGFyZ2xpc3QgPSAmZW1wdHk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHN3aXRjaCAoY29kZSAmIFJJU0NW X0JVSUxUSU5fQ0xBU1MpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqAgewoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgIGNhc2UgUklTQ1ZfQlVJTFRJTl9H RU5FUkFMOgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCBicmVhazsK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoCBjYXNlIFJJU0NWX0JVSUxUSU5f VkVDVE9SOgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCBuZXdfZm5k ZWNsID0gcmlzY3ZfdmVjdG9yOjpyZXNvbHZlX292ZXJsb2FkZWRfYnVpbHRpbiAoc3ViY29kZSwg YXJnbGlzdCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIGJyZWFr OwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgIGRlZmF1bHQ6CgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIGdjY191bnJlYWNoYWJsZSAoKTsKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoCB9CgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIGlmIChuZXdfZm5k ZWNsID09IE5VTExfVFJFRSkKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoCBy ZXR1cm4gbmV3X2ZuZGVjbDsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgcmV0dXJuIGJ1aWxkX2Z1bmN0aW9uX2NhbGxfdmVj IChsb2MsIHZOVUxMLCBuZXdfZm5kZWNsLCBhcmdsaXN0LCBOVUxMLAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4rwqDCoCBmbmRlY2wpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+Pi8qIEltcGxlbWVudCBSRUdJU1RFUl9UQVJHRVRfUFJBR01BUy7CoCAqLwoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj52b2lkCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PnJpc2N2X3JlZ2lzdGVyX3ByYWdtYXMgKHZvaWQpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PnsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHRhcmdldG0ucmVzb2x2 ZV9vdmVybG9hZGVkX2J1aWx0aW4gPSByaXNjdl9yZXNvbHZlX292ZXJsb2FkZWRfYnVpbHRpbjsK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoCB0YXJnZXRtLmNoZWNrX2J1aWx0aW5f Y2FsbCA9IHJpc2N2X2NoZWNrX2J1aWx0aW5fY2FsbDsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+wqDCoCBjX3JlZ2lzdGVyX3ByYWdtYSAoInJpc2N2IiwgImludHJpbnNpYyIsIHJpc2N2 X3ByYWdtYV9pbnRyaW5zaWMpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj59CgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXByb3Rvcy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1wcm90b3MuaAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj5pbmRleCAyOTI2ZDVkNTBkNS4uNTgzNjMzM2JjNWQgMTAwNjQ0 CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi0tLSBhL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtcHJvdG9zLmgKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi1wcm90b3MuaAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5AQCAt NDMwLDYgKzQzMCw3IEBAIGdpbXBsZSAqZ2ltcGxlX2ZvbGRfYnVpbHRpbiAodW5zaWduZWQgaW50 LCBnaW1wbGVfc3RtdF9pdGVyYXRvciAqLCBnY2FsbCAqKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+cnR4IGV4cGFuZF9idWlsdGluICh1bnNpZ25lZCBpbnQsIHRyZWUsIHJ0eCk7CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmJvb2wgY2hlY2tfYnVpbHRpbl9jYWxsIChsb2Nh dGlvbl90LCB2ZWM8bG9jYXRpb25fdD4sIHVuc2lnbmVkIGludCwKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+wqDCoCB0cmVlLCB1bnNpZ25lZCBpbnQsIHRyZWUgKik7CgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+Pit0cmVlIHJlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluICh1bnNp Z25lZCBpbnQsIHZlYzx0cmVlLCB2YV9nYz4gKik7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PmJvb2wgY29uc3RfdmVjX2FsbF9zYW1lX2luX3JhbmdlX3AgKHJ0eCwgSE9TVF9XSURFX0lO VCwgSE9TVF9XSURFX0lOVCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmJvb2wgbGVn aXRpbWl6ZV9tb3ZlIChydHgsIHJ0eCAqKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ dm9pZCBlbWl0X3ZsbWF4X3ZzZXR2bCAobWFjaGluZV9tb2RlLCBydHgpOwoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj5kaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtc2hhcGVzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtc2hhcGVzLmNjCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmluZGV4IDBiZGE5 MzRhZTE2Li5lZTU3MDQ1OGNlOSAxMDA2NDQKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ LS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5A QCAtNDksNiArNDksNyBAQCBidWlsZF9vbmUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1 bmN0aW9uX2dyb3VwX2luZm8gJmdyb3VwLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7C oMKgwqDCoCBncm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleCk7CgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqAgYi5hbGxvY2F0ZV9hcmd1bWVudF90eXBlcyAo ZnVuY3Rpb25faW5zdGFuY2UsIGFyZ3VtZW50X3R5cGVzKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+wqDCoCBiLmFwcGx5X3ByZWRpY2F0aW9uIChmdW5jdGlvbl9pbnN0YW5jZSwgcmV0 dXJuX3R5cGUsIGFyZ3VtZW50X3R5cGVzKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ K8KgIGIuYWRkX292ZXJsb2FkZWRfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCAqZ3JvdXAu c2hhcGUpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgIGIuYWRkX3VuaXF1ZV9m dW5jdGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsICgqZ3JvdXAuc2hhcGUpLCByZXR1cm5fdHlwZSwK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+YXJndW1lbnRfdHlwZXMpOwoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj59CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmRpZmYg LS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PmluZGV4IDVkNGRjMjY0ZmE2Li5lOWFmNzdkNGY2MyAxMDA2NDQKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+LS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMuY2MKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KysrIGIvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+QEAgLTgwLDYgKzgwLDMxIEBAIHB1YmxpYzoKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+wqDCoCAvKiBUaGUgZGVjbCBpdHNlbGYuwqAgKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+wqDCoCB0cmVlIEdUWSAoKHNraXApKSBkZWNsOwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCAvKiBUaGUgb3Zl cmxvYWQgaGFzaCBvZiBub24tb3ZlcmxvYWRlZCBpbnRyaW5zaWMgaXMgZGV0ZXJtaW5lZCBieQoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqAgdGhlIG92ZXJsb2FkIG5hbWUg YW5kIGFyZ3VtZW50IGxpc3QuIEFkZGluZyB0aGUgb3ZlcmxvYWQgbmFtZSB0bwoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqAgdGhlIGhhc2ggaXMgYWxzbyB0byBhZGRyZXNz IHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uczoKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ K8KgwqDCoMKgIHZpbnQxNm1mNF90wqAgX19yaXNjdl92cmVpbnRlcnByZXRfaTE2bWY0ICh2Zmxv YXQxNm1mNF90IHNyYyk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoCB2 dWludDE2bWY0X3QgX19yaXNjdl92cmVpbnRlcnByZXRfdTE2bWY0ICh2ZmxvYXQxNm1mNF90IHNy Yyk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoCBUaGUgYmFzZSwgc2hh cGUgYW5kIGFyZ3VtZW50IGxpc3Qgb2YgdGhlIHZyZWludGVycHJldCBpbnN0YW5jZSBhcmUKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgIHRoZSBzYW1lLCBvbmx5IHRoZSBv dmVybG9hZCBuYW1lIGlzIGRpZmZlcmVudC4gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K8KgIGNvbnN0IGNoYXIgKm92ZXJsb2FkX25hbWU7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIC8qIFRoZSBhcmd1bWVu dCBsaXN0IHBhcnQgb2YgdGhlIGhhc2ggdmFsdWUuIEFkZCB0aGUgdW5zaWduZWQvc2lnbmVkIHR5 cGUKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgIGFuZCBtYWNoaW5lIG1v ZGUgb2YgZWFjaCBhcmd1bWVudCB0byB0aGUgaGFzaCB2YWx1ZS4gKi8KCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+K8KgIHZlYzx0cmVlPiBHVFkgKChza2lwKSkgYXJndW1lbnRfdHlwZXM7 CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+K8KgIC8qIFRydWUgaWYgdGhlIGRlY2wgcmVwcmVzZW50cyBhbiBvdmVybG9hZGVkIGZ1 bmN0aW9uIHRoYXQgbmVlZHMgdG8gYmUKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8Kg wqDCoMKgIHJlc29sdmVkLiAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgYm9v bCBvdmVybG9hZGVkX3A7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIC8qIFRoZSBoYXNoIHZhbHVlIHRvIGluZGljYXRlIHRo ZSBub24tb3ZlcmxvYWRlZCBmdW5jdGlvbi4gR2VuZXJhdGUgaGFzaCB2YWx1ZQoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqAgYmFzZWQgb24gb3ZlcmxvYWRfbmFtZSBhbmQg YXJndW1lbnRfdHlwZXMuICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCBoYXNo dmFsX3Qgb3ZlcmxvYWRlZF9oYXNoICgpIGNvbnN0OwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCAvKiBHZW5lcmF0ZSBoYXNo IHZhbHVlIGJhc2VkIG9uIHRoZSBvdmVybG9hZF9uYW1lIGFuZCB0aGUgYXJndW1lbnQgbGlzdCBw YXNzZWQKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgIGJ5IHRoZSB1c2Vy IHdoZW4gY2FsbGluZy4gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIGhhc2h2 YWxfdCBvdmVybG9hZGVkX2hhc2ggKGNvbnN0IHZlYzx0cmVlLCB2YV9nYz4gJik7CgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+Pn07CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi8q IEhhc2ggdHJhaXRzIGZvciByZWdpc3RlcmVkX2Z1bmN0aW9uLsKgICovCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PkBAIC05MSw2ICsxMTYsMTQgQEAgc3RydWN0IHJlZ2lzdGVyZWRfZnVu Y3Rpb25faGFzaGVyIDogbm9mcmVlX3B0cl9oYXNoPHJlZ2lzdGVyZWRfZnVuY3Rpb24+CgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqAgc3RhdGljIGJvb2wgZXF1YWwgKHZhbHVlX3R5 cGUsIGNvbnN0IGNvbXBhcmVfdHlwZSAmKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ fTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIEhhc2ggdHJhaXRzIGZvciBvdmVy bG9hZCByZWdpc3RlcmVkX2Z1bmN0aW9uLiAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rc3RydWN0IG5vbl9vdmVybG9hZGVkX3JlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCA6IG5vZnJlZV9wdHJfaGFzaDxyZWdpc3RlcmVk X2Z1bmN0aW9uPgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rewoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj4rwqAgc3RhdGljIGhhc2h2YWxfdCBoYXNoICh2YWx1ZV90eXBlKTsK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHN0YXRpYyBib29sIGVxdWFsICh2YWx1 ZV90eXBlLCBjb25zdCBjb21wYXJlX3R5cGUgJik7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+Pit9OwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+Pi8qIFN0YXRpYyBpbmZvcm1hdGlvbiBhYm91dCBlYWNoIFJWViB0eXBlLsKg ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PnN0YXRpYyBDT05TVEVYUFIgY29uc3Qg dmVjdG9yX3R5cGVfaW5mbyB2ZWN0b3JfdHlwZXNbXSA9IHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+I2RlZmluZSBERUZfUlZWX1RZUEUoTkFNRSwgTkNIQVJTLCBBQklfTkFNRSwgQVJH Uy4uLinCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBc CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkBAIC0yNjExLDYgKzI2NDQsMTIgQEAgc3Rh dGljIEdUWSAoKCkpIHZlYzxyZWdpc3RlcmVkX2Z1bmN0aW9uICosIHZhX2djPiAqcmVnaXN0ZXJl ZF9mdW5jdGlvbnM7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoCBvdmVybG9h ZGVkIGZ1bmN0aW9ucy7CoCAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5zdGF0aWMg aGFzaF90YWJsZTxyZWdpc3RlcmVkX2Z1bmN0aW9uX2hhc2hlcj4gKmZ1bmN0aW9uX3RhYmxlOwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogQWxsIHJlZ2lzdGVyZWQgZnVuY3Rpb24g ZGVjbHMsIGhhc2hlZCBvbiBvdmVybG9hZF9uYW1lIGFuZCBhcmd1bWVudCBsaXN0CgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgIG9mIHRoZSByZWdpc3RlcmVkX2Z1bmN0aW9uLsKg IFRoaXMgaXMgdXNlZCBmb3IgbG9va2luZyB1cCBpbXBsZW1lbnRhdGlvbnMKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4+K8KgwqAgb2Ygbm9uLW92ZXJsb2FkZWQgZnVuY3Rpb25zLiAqLwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rc3RhdGljIGhhc2hfdGFibGU8bm9uX292ZXJs b2FkZWRfcmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXI+CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PivCoCAqbm9uX292ZXJsb2FkZWRfZnVuY3Rpb25fdGFibGU7CgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+LyogUkFJSSBj bGFzcyBmb3IgZW5hYmxpbmcgZW5vdWdoIFJWViBmZWF0dXJlcyB0byBkZWZpbmUgdGhlIGJ1aWx0 LWluCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoCB0eXBlcyBhbmQgaW1wbGVt ZW50IHRoZSByaXNjdl92ZWN0b3IuaCBwcmFnbWEuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PkBAIC0zMzY5LDcgKzM0MDgsOSBAQCBmdW5jdGlvbl9idWlsZGVyOjpnZXRfYXR0cmlidXRl cyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlKQoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj5yZWdpc3RlcmVkX2Z1bmN0aW9uICYKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+ZnVuY3Rpb25fYnVpbGRlcjo6YWRkX2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0 YW5jZSAmaW5zdGFuY2UsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmNvbnN0IGNoYXIg Km5hbWUsIHRyZWUgZm50eXBlLCB0cmVlIGF0dHJzLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4tIGJvb2wgcGxhY2Vob2xkZXJfcCkKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ KyBib29sIHBsYWNlaG9sZGVyX3AsIGNvbnN0IGNoYXIgKm92ZXJsb2FkX25hbWUsCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgY29uc3QgdmVjPHRyZWU+ICZhcmd1bWVudF90eXBlcywK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyBib29sIG92ZXJsb2FkZWRfcCA9IGZhbHNl KQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj57CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PsKgwqAgdW5zaWduZWQgaW50IGNvZGUgPSB2ZWNfc2FmZV9sZW5ndGggKHJlZ2lzdGVy ZWRfZnVuY3Rpb25zKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoCBjb2RlID0g KGNvZGUgPDwgUklTQ1ZfQlVJTFRJTl9TSElGVCkgKyBSSVNDVl9CVUlMVElOX1ZFQ1RPUjsKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+QEAgLTMzOTUsNiArMzQzNiw5IEBAIGZ1bmN0aW9u X2J1aWxkZXI6OmFkZF9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNl LAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgIHJlZ2lzdGVyZWRfZnVuY3Rpb24g JnJmbiA9ICpnZ2NfYWxsb2M8cmVnaXN0ZXJlZF9mdW5jdGlvbj4gKCk7CgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PsKgwqAgcmZuLmluc3RhbmNlID0gaW5zdGFuY2U7CgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PsKgwqAgcmZuLmRlY2wgPSBkZWNsOwoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4rwqAgcmZuLm92ZXJsb2FkX25hbWUgPSBvdmVybG9hZF9uYW1lID8geHN0 cmR1cCAob3ZlcmxvYWRfbmFtZSkgOiBOVUxMOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rwqAgcmZuLmFyZ3VtZW50X3R5cGVzID0gYXJndW1lbnRfdHlwZXM7CgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PivCoCByZm4ub3ZlcmxvYWRlZF9wID0gb3ZlcmxvYWRlZF9wOwoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgIHZlY19zYWZlX3B1c2ggKHJlZ2lzdGVyZWRf ZnVuY3Rpb25zLCAmcmZuKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoCByZXR1 cm4gcmZuOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5AQCAtMzQxNSw2ICszNDU5LDEw IEBAIGZ1bmN0aW9uX2J1aWxkZXI6OmFkZF91bmlxdWVfZnVuY3Rpb24gKGNvbnN0IGZ1bmN0aW9u X2luc3RhbmNlICZpbnN0YW5jZSwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoCBp ZiAoIWNoZWNrX3JlcXVpcmVkX2V4dGVuc2lvbnMgKGluc3RhbmNlKSkKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+wqDCoMKgwqAgcmV0dXJuOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rwqAgLyogQWxzbyBhZGQgdGhlIGZ1bmN0aW9uIHVuZGVyIGl0cyBvdmVybG9hZGVkIGFs aWFzLCBpZiB3ZSB3YW50CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoCBh IHNlcGFyYXRlIGRlY2wgZm9yIGVhY2ggaW5zdGFuY2Ugb2YgYW4gb3ZlcmxvYWRlZCBmdW5jdGlv bi7CoCAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgY2hhciAqb3ZlcmxvYWRf bmFtZSA9IHNoYXBlLT5nZXRfbmFtZSAoKnRoaXMsIGluc3RhbmNlLCB0cnVlKTsKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKg IC8qIEFkZCB0aGUgZnVuY3Rpb24gdW5kZXIgaXRzIGZ1bGwgKHVuaXF1ZSkgbmFtZS7CoCAqLwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgIGNoYXIgKm5hbWUgPSBzaGFwZS0+Z2V0 X25hbWUgKCp0aGlzLCBpbnN0YW5jZSwgZmFsc2UpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj7CoMKgIHRyZWUgZm50eXBlCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkBAIC0z NDIyLDcgKzM0NzAsOCBAQCBmdW5jdGlvbl9idWlsZGVyOjphZGRfdW5pcXVlX2Z1bmN0aW9uIChj b25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PmFyZ3VtZW50X3R5cGVzLmFkZHJlc3MgKCkpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj7CoMKgIHRyZWUgYXR0cnMgPSBnZXRfYXR0cmlidXRlcyAoaW5zdGFuY2UpOwoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgIHJlZ2lzdGVyZWRfZnVuY3Rpb24gJnJmbgoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4twqDCoMKgID0gYWRkX2Z1bmN0aW9uIChpbnN0 YW5jZSwgbmFtZSwgZm50eXBlLCBhdHRycywgZmFsc2UpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rwqDCoMKgID0gYWRkX2Z1bmN0aW9uIChpbnN0YW5jZSwgbmFtZSwgZm50eXBlLCBh dHRycywgZmFsc2UsIG92ZXJsb2FkX25hbWUsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PivCoMKgwqDCoCBhcmd1bWVudF90eXBlcy5jb3B5ICgpKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+wqDCoCAvKiBFbnRlciB0aGUgZnVuY3Rpb24gaW50byB0aGUgaGFzaCB0YWJsZS7C oCAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgIGhhc2h2YWxfdCBoYXNoID0g aW5zdGFuY2UuaGFzaCAoKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+QEAgLTM0MzEs MTkgKzM0ODAsNDUgQEAgZnVuY3Rpb25fYnVpbGRlcjo6YWRkX3VuaXF1ZV9mdW5jdGlvbiAoY29u c3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj7CoMKgIGdjY19hc3NlcnQgKCEqcmZuX3Nsb3QpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj7CoMKgICpyZm5fc2xvdCA9ICZyZm47CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+Pi3CoCAvKiBBbHNvIGFkZCB0aGUgZnVuY3Rpb24gdW5kZXIgaXRzIG92ZXJsb2FkZWQgYWxp YXMsIGlmIHdlIHdhbnQKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+LcKgwqDCoMKgIGEg c2VwYXJhdGUgZGVjbCBmb3IgZWFjaCBpbnN0YW5jZSBvZiBhbiBvdmVybG9hZGVkIGZ1bmN0aW9u LsKgICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi3CoCBjaGFyICpvdmVybG9hZF9u YW1lID0gc2hhcGUtPmdldF9uYW1lICgqdGhpcywgaW5zdGFuY2UsIHRydWUpOwoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgIGlmIChvdmVybG9hZF9uYW1lKQoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDCoCB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PsKgwqDCoMKgwqDCoCAvKiBBdHRyaWJ1dGUgbGlzdHMgc2hvdWxkbid0IGJlIHNoYXJlZC7CoCAq LwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDCoMKgwqAgdHJlZSBhdHRycyA9 IGdldF9hdHRyaWJ1dGVzIChpbnN0YW5jZSk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PsKgwqDCoMKgwqDCoCBib29sIHBsYWNlaG9sZGVyX3AgPSAhbV9kaXJlY3Rfb3ZlcmxvYWRzOwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4twqDCoMKgwqDCoCBhZGRfZnVuY3Rpb24gKGlu c3RhbmNlLCBvdmVybG9hZF9uYW1lLCBmbnR5cGUsIGF0dHJzLCBwbGFjZWhvbGRlcl9wKTsKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgYWRkX2Z1bmN0aW9uIChpbnN0 YW5jZSwgb3ZlcmxvYWRfbmFtZSwgZm50eXBlLCBhdHRycywgcGxhY2Vob2xkZXJfcCwgTlVMTCwK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgIHZOVUxMKTsKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDC oMKgwqDCoCAvKiBFbnRlciB0aGUgZnVuY3Rpb24gaW50byB0aGUgbm9uLW92ZXJsb2FkZWQgaGFz aCB0YWJsZS7CoCAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCBo YXNoID0gcmZuLm92ZXJsb2FkZWRfaGFzaCAoKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K8KgwqDCoMKgwqAgcmZuX3Nsb3QgPSBub25fb3ZlcmxvYWRlZF9mdW5jdGlvbl90YWJsZS0+ ZmluZF9zbG90X3dpdGhfaGFzaCAoJnJmbiwgaGFzaCwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+K8KgwqDCoMKgwqAgSU5TRVJUKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ K8KgwqDCoMKgwqAgZ2NjX2Fzc2VydCAoISpyZm5fc2xvdCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PivCoMKgwqDCoMKgICpyZm5fc2xvdCA9ICZyZm47CgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PsKgwqDCoMKgIH0KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDC oCBvYnN0YWNrX2ZyZWUgKCZtX3N0cmluZ19vYnN0YWNrLCBuYW1lKTsKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+fQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogQWRkIG92 ZXJsb2FkZWQgZnVuY3Rpb24gZm9yIGdjYy4gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K3ZvaWQKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K2Z1bmN0aW9uX2J1aWxkZXI6 OmFkZF9vdmVybG9hZGVkX2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFu Y2UsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqAgY29uc3QgZnVuY3Rpb25f c2hhcGUgKnNoYXBlKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rewoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgaWYgKCFjaGVja19yZXF1aXJlZF9leHRlbnNpb25zIChp bnN0YW5jZSkpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqAgcmV0dXJuOwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PivCoCBjaGFyICpuYW1lID0gc2hhcGUtPmdldF9uYW1lICgqdGhpcywgaW5zdGFuY2UsIHRy dWUpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PivCoCBpZiAobmFtZSkKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8Kg wqDCoCB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIC8qIFRvIGF2 b2lkIEFQSSBjb25mbGljdGluZywgdGFrZSB2b2lkIHJldHVybiB0eXBlIGFuZCB2b2lkIGFyZ3Vt ZW50CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgZm9yIHRoZSBvdmVybG9hZGVkIGZ1 bmN0aW9uLsKgICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIHRy ZWUgZm50eXBlID0gYnVpbGRfZnVuY3Rpb25fdHlwZSAodm9pZF90eXBlX25vZGUsIHZvaWRfbGlz dF9ub2RlKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgYWRkX2Z1 bmN0aW9uIChpbnN0YW5jZSwgbmFtZSwgZm50eXBlLCBOVUxMX1RSRUUsIG1fZGlyZWN0X292ZXJs b2FkcywgbmFtZSwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgIHZOVUxM LCB0cnVlKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgb2JzdGFj a19mcmVlICgmbV9zdHJpbmdfb2JzdGFjaywgbmFtZSk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PivCoMKgwqAgfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmZ1 bmN0aW9uX2NhbGxfaW5mbzo6ZnVuY3Rpb25fY2FsbF9pbmZvIChsb2NhdGlvbl90IGxvY2F0aW9u X2luLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5jb25zdCBmdW5jdGlvbl9pbnN0YW5j ZSAmaW5zdGFuY2VfaW4sCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PnRyZWUgZm5kZWNs X2luKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5AQCAtMzk5MSw2ICs0MDY2LDE0NyBA QCByZWdpc3RlcmVkX2Z1bmN0aW9uX2hhc2hlcjo6ZXF1YWwgKHZhbHVlX3R5cGUgdmFsdWUsIGNv bnN0IGNvbXBhcmVfdHlwZSAma2V5KQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKg IHJldHVybiB2YWx1ZS0+aW5zdGFuY2UgPT0ga2V5OwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj59CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PitoYXNodmFsX3QKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K3JlZ2lzdGVyZWRfZnVuY3Rpb246Om92ZXJsb2FkZWRfaGFz aCAoKSBjb25zdAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rewoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj4rwqAgaW5jaGFzaDo6aGFzaCBoOwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rwqAgdHJlZSB0eXBlOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r wqAgdW5zaWduZWQgaW50IHVuc2lnbmVkX3AsIG1vZGVfcDsKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+K8KgIGguYWRkIChvdmVybG9hZF9uYW1lLCBzdHJsZW4gKG92ZXJsb2FkX25hbWUp KTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIGZvciAodW5zaWduZWQgaW50IGkg PSAwOyBpIDwgYXJndW1lbnRfdHlwZXMubGVuZ3RoICgpOyBpKyspCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PivCoMKgwqAgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDC oMKgwqDCoCB0eXBlID0gYXJndW1lbnRfdHlwZXNbaV07CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PivCoMKgwqDCoMKgIHVuc2lnbmVkX3AgPSBQT0lOVEVSX1RZUEVfUCAodHlwZSkgPyBU WVBFX1VOU0lHTkVEIChUUkVFX1RZUEUgKHR5cGUpKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rIDogVFlQRV9VTlNJR05FRCAodHlwZSk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PivCoMKgwqDCoMKgIG1vZGVfcCA9IFBPSU5URVJfVFlQRV9QICh0eXBlKSA/IFRZUEVfTU9E RSAoVFJFRV9UWVBFICh0eXBlKSkKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDC oMKgwqAgOiBUWVBFX01PREUgKHR5cGUpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r wqDCoMKgwqDCoCBoLmFkZF9pbnQgKHVuc2lnbmVkX3ApOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rwqDCoMKgwqDCoCBoLmFkZF9pbnQgKG1vZGVfcCk7CgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PivCoMKgwqAgfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gaC5lbmQgKCk7CgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K2Jvb2wKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+K2hhc192eHJtX29yX2ZybV9wIChmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2Us IGNvbnN0IHZlYzx0cmVlLCB2YV9nYz4gJmFyZ2xpc3QpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+Pit7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCAvKiBWZWN0b3IgZml4 ZWQtcG9pbnQgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgcmVxdWlyaW5nIGFyZ3VtZW50IHZ4cm0u CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoCBGb3IgZXhhbXBsZTogdnVp bnQzMm00X3QgX19yaXNjdl92YWFkZHUodnVpbnQzMm00X3QgdnMyLCB2dWludDMybTRfdCB2czEs CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIHVuc2lnbmVkIGludCB2 eHJtLCBzaXplX3QgdmwpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqAg VGhlIHVzZXIgY2FsbHMgdmFhZGR1IGludHJpbnNpYyBpbiB0aGUgZm9ybSBvZiBfX3Jpc2N2X3Zh YWRkdSh2czIsIHZzMSwgMiwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKg IHZsKS4gVGhlIGNvbXBpbGVyIHJlY29nbml6ZXMgdGhhdCB0aGUgcGFyYW1ldGVyIHZ4cm0gaXMg YSBzaWduZWQgaW50LCB3aGljaAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKg wqAgaXMgaW5jb25zaXN0ZW50IHdpdGggdGhlIHBhcmFtZXRlciB1bnNpZ25lZCBpbnQgdnhybSBk ZWNsYXJlZCBieSBpbnRyaW5zaWMsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKg wqDCoCBzbyB0aGUgcGFyYW1ldGVyIHZ4cm0gaXMgY29udmVydGVkIHRvIGFuIHVuc2lnbmVkIGlu dCB0eXBlIGluIG9yZGVyIHRvIGdldAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDC oMKgwqAgY29ycmVjdCBoYXNoIHZhbHVlLiAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rwqAgaWYgKGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZhYWRkIHx8IGluc3RhbmNlLmJhc2Ug PT0gYmFzZXM6OnZhYWRkdQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDC oCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2YXN1YiB8fCBpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2YXN1YnUKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgfHwg aW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dnNzcmwgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6 dnNzcmEKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFu Y2UuYmFzZSA9PSBiYXNlczo6dnNtdWwgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dm5jbGlw dQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5jZS5i YXNlID09IGJhc2VzOjp2bmNsaXApCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKg wqAgcmV0dXJuIHRydWU7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIC8qIFZlY3RvciBGbG9hdGluZy1Qb2ludCBJbnN0cnVj dGlvbnMgcmVxdWlyaW5nIGFyZ3VtZW50IGZybS4gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+K8KgIGlmIChpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndyZWR1c3VtIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmd3JlZG9zdW0KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZhZGQgfHwgaW5zdGFu Y2UuYmFzZSA9PSBiYXNlczo6dmZ3c3ViCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivC oMKgwqDCoMKgIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd25tc2FjIHx8IGluc3RhbmNl LmJhc2UgPT0gYmFzZXM6OnZmd25tYWNjCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivC oMKgwqDCoMKgIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd211bCB8fCBpbnN0YW5jZS5i YXNlID09IGJhc2VzOjp2ZmN2dF94CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKg wqDCoMKgIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmY3Z0X2YgfHwgaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dmZjdnRfeHUKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDC oMKgwqAgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZ3bXNhYyB8fCBpbnN0YW5jZS5iYXNl ID09IGJhc2VzOjp2ZndtYWNjCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDC oMKgIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd2N2dF94IHx8IGluc3RhbmNlLmJhc2Ug PT0gYmFzZXM6OnZmd2FkZAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDC oCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZnN1YiB8fCBpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2ZnNxcnQKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgfHwg aW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZyZWR1c3VtIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFz ZXM6OnZmcnN1YgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB8fCBp bnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZnJlZG9zdW0gfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmZyZWM3CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIHx8IGlu c3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmcmRpdiB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2 Zm5tc3ViCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmbm1zYWMgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZu bWFkZAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5j ZS5iYXNlID09IGJhc2VzOjp2Zm5tYWNjIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbmN2 dF9mCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIHx8IGluc3RhbmNl LmJhc2UgPT0gYmFzZXM6OnZmbmN2dF94IHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbmN2 dF94dQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5j ZS5iYXNlID09IGJhc2VzOjp2Zm11bCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm1zdWIK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dmZtc2FjIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbWFkZAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB8fCBpbnN0YW5jZS5iYXNlID09 IGJhc2VzOjp2Zm1hY2MgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZkaXYKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmZ3Y3Z0X3h1KQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgIHsKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgLyogREVGX1JWVl9GVU5DVElP TiAodmZhZGQsIGFsdSwgZnVsbF9wcmVkcywgZl92dnZfb3BzKQoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rIERFRl9SVlZfRlVOQ1RJT04gKHZmYWRkX2ZybSwgYWx1X2ZybSwgZnVsbF9w cmVkcywgZl92dnZfb3BzKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rIFRha2luZyB2 ZmFkZCBhcyBhbiBleGFtcGxlLCB0aGVvcmV0aWNhbGx5IHdlIGNhbiBhZGQgYmFzZSBvciBzaGFw ZSB0bwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rIHRoZSBoYXNoIHZhbHVlIHRvIGRp c3Rpbmd1aXNoIHdoZXRoZXIgdGhlIGZybSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQuCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgdmZsb2F0MzJtMV90IF9fcmlzY3ZfdmZhZGQodmZsb2F0 MzJtMV90IHZzMiwgZmxvYXQzMl90IHJzMSwgc2l6ZV90IHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+KyB2ZmxvYXQzMm0xX3QgX19yaXNjdl92ZmFkZCh2ZmxvYXQzMm0xX3QgdnMy LCB2ZmxvYXQzMm0xX3QgdnMxLCB1bnNpZ25lZAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rIGludCBmcm0sIHNpemVfdCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyBIb3dldmVyLCB0aGUgY3VycmVudCByZWdp c3RyYXRpb24gbWVjaGFuaXNtIG9mIG92ZXJsb2FkZWQgaW50aW5zaWMgZm9yCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PisgZ2NjIGxpbWl0cyB0aGUgaW50cmluc2ljIG9idGFpbmVkIGJ5 IGVudGVyaW5nIHRoZSBob29rIHRvIGFsd2F5cyBiZQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rIHZmYWRkLCBub3QgdmZhZGRfZnJtLiBUaGVyZWZvcmUsIHRoZSBjb3JyZWN0IGhhc2gg dmFsdWUgY2Fubm90IGJlCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pisgb2J0YWluZWQg dGhyb3VnaCB0aGUgcGFyYW1ldGVyIGxpc3QgYW5kIG92ZXJsb2FkIG5hbWUsIGJhc2Ugb3Igc2hh cGUuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rIHwgaW5kZXjCoCB8IG5hbWXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfCBraW5kwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ KyB8IDEyNDczMyB8IF9fcmlzY3ZfdmZhZGTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBPdmVy bG9hZGVkwqDCoMKgwqDCoMKgwqAgfCA8LSBIb29rIGZ1biBjb2RlCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PisgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rIHwgMTI0NzM1 IHzCoCBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xwqDCoCB8IE5vbi1vdmVybG9hZGVkwqDCoMKgIHwK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PisgfCAxMjQ3MzcgfCBfX3Jpc2N2X3ZmYWRkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHwgUGxhY2Vob2xkZXLCoMKgwqDCoMKgwqAgfAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyB8IC4uLsKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PisgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rIHwgLi4uwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+KyArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgfCAxMjU3Mzkg fCBfX3Jpc2N2X3ZmYWRkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgT3ZlcmxvYWRlZMKgwqDC oMKgwqDCoMKgIHwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyArLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PisgfCAxMjU3NDEgfCBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3Jt IHwgTm9uLW92ZXJsb2FkZWTCoMKgwqAgfAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r ICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyB8IDEyNTc0MyB8IF9fcmlzY3ZfdmZh ZGTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCBQbGFjZWhvbGRlcsKgwqDCoMKgwqDCoCB8CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgVGhlcmVmb3JlLCB0aGUgaGFz aCB2YWx1ZSBjYW5ub3QgYmUgYWRkZWQgd2l0aCBiYXNlIG9yIHNoYXBlLCBhbmQgbmVlZHMKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyB0byBiZSBkaXN0aW5ndWlzaGVkIGJ5IHdoZXRo ZXIgdGhlIHBlbnVsdGltYXRlIHBhcmFtZXRlciBpcwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rIElOVEVHRVJfVFlQRS4gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8Kg wqDCoMKgwqAgaWYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChhcmdsaXN0W2FyZ2xpc3QubGVuZ3Ro ICgpIC0gMl0pKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoCA9PSBJTlRFR0VS X1RZUEUpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgcmV0dXJuIHRydWU7CgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqAgfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rwqAgcmV0dXJuIGZhbHNlOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r fQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PitoYXNodmFsX3QKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3JlZ2lzdGVy ZWRfZnVuY3Rpb246Om92ZXJsb2FkZWRfaGFzaCAoY29uc3QgdmVjPHRyZWUsIHZhX2djPiAmYXJn bGlzdCkKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3sKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+K8KgIGFyZ3VtZW50X3R5cGVzID0gdk5VTEw7CgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PivCoCB1bnNpZ25lZCBpbnQgbGVuID0gYXJnbGlzdC5sZW5ndGggKCk7CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K8KgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqAgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rwqDCoMKgwqDCoCAvKiB2aW50OG0xX3QgX19yaXNjdl92Z2V0X2k4bTEodmludDhtMl90IHNy Yywgc2l6ZV90IGluZGV4KTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyBXaGVuIHRo ZSB1c2VyIGNhbGxzIHZnZXQgaW50cmluc2ljLCB0aGUgX19yaXNjdl92Z2V0X2k4bTEoc3JjLCAx KSBmb3JtCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgaXMgdXNlZC4gVGhlIGNvbXBp bGVyIHJlY29nbml6ZXMgdGhhdCB0aGUgcGFyYW1ldGVyIGluZGV4IGlzIHNpZ25lZAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rIGludCwgd2hpY2ggaXMgaW5jb25zaXN0ZW50IHdpdGgg c2l6ZV90LCBzbyB0aGUgaW5kZXggaXMgY29udmVydGVkIHRvCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+Pisgc2l6ZV90IHR5cGUgaW4gb3JkZXIgdG8gZ2V0IGNvcnJlY3QgaGFzaCB2YWx1 ZS4gdmludDhtMl90CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgX19yaXNjdl92c2V0 KHZpbnQ4bTJfdCBkZXN0LCBzaXplX3QgaW5kZXgsIHZpbnQ4bTFfdCB2YWx1ZSk7CgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PisgVGhlIHJlYXNvbiBpcyB0aGUgc2FtZSBhcyBhYm92ZS4g Ki8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqAgaWYgKChpbnN0YW5j ZS5iYXNlID09IGJhc2VzOjp2Z2V0ICYmIChpID09IChsZW4gLSAxKSkpCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PivCoMKgIHx8IChpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2c2V0ICYm IChpID09IChsZW4gLSAyKSkpKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rIGFyZ3Vt ZW50X3R5cGVzLnNhZmVfcHVzaCAoc2l6ZV90eXBlX25vZGUpOwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCBlbHNlIGlmIChoYXNfdnhybV9vcl9mcm1fcCAoaW5zdGFu Y2UsIGFyZ2xpc3QpICYmIChpID09IChsZW4gLSAyKSkpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PisgYXJndW1lbnRfdHlwZXMuc2FmZV9wdXNoICh1bnNpZ25lZF90eXBlX25vZGUpOwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCBlbHNlCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PisgYXJndW1lbnRfdHlwZXMuc2FmZV9wdXNoIChUUkVFX1RZUEUg KGFyZ2xpc3RbaV0pKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoCB9CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gb3ZlcmxvYWRlZF9oYXNoICgp OwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PitpbmxpbmUgaGFzaHZhbF90 CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pitub25fb3ZlcmxvYWRlZF9yZWdpc3RlcmVk X2Z1bmN0aW9uX2hhc2hlcjo6aGFzaCAodmFsdWVfdHlwZSB2YWx1ZSkKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+K3sKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVy biB2YWx1ZS0+b3ZlcmxvYWRlZF9oYXNoICgpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PitpbmxpbmUgYm9vbAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rbm9u X292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXI6OmVxdWFsICh2YWx1ZV90eXBl IHZhbHVlLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoCBjb25zdCBjb21wYXJl X3R5cGUgJmtleSkKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3sKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiAoKDAgPT0gc3RyY21wICh2YWx1ZS0+b3Zlcmxv YWRfbmFtZSwga2V5LT5vdmVybG9hZF9uYW1lKSkKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K8KgwqAgJiYgdmFsdWUtPm92ZXJsb2FkZWRfaGFzaCAoKSA9PSBrZXktPm92ZXJsb2FkZWRf aGFzaCAoKSk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+LyogSWYgVFlQ RSBpcyBhIGJ1aWx0LWluIHR5cGUgZGVmaW5lZCBieSB0aGUgUlZWIEFCSSwgcmV0dXJuIHRoZSBt YW5nbGVkIG5hbWUsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoCBvdGhlcndp c2UgcmV0dXJuIE5VTEwuwqAgKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Y29uc3Qg Y2hhciAqCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkBAIC00MTM5LDcgKzQzNTUsNyBA QCByZWdpc3Rlcl9mcm0gKCkKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+dm9pZAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5oYW5kbGVfcHJhZ21hX3ZlY3RvciAoKQoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj57CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi3C oCBpZiAoZnVuY3Rpb25fdGFibGUpCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCBp ZiAoZnVuY3Rpb25fdGFibGUgfHwgbm9uX292ZXJsb2FkZWRfZnVuY3Rpb25fdGFibGUpCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+wqDCoMKgwqDCoMKgIGVycm9yICgiZHVwbGljYXRlIGRlZmluaXRpb24gb2YgJXFz IiwgInJpc2N2X3ZlY3Rvci5oIik7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDC oMKgwqDCoCByZXR1cm47CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkBAIC00MTU2LDYg KzQzNzIsOCBAQCBoYW5kbGVfcHJhZ21hX3ZlY3RvciAoKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj7CoMKgIC8qIERlZmluZSB0aGUgZnVuY3Rpb25zLsKgICovCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PsKgwqAgZnVuY3Rpb25fdGFibGUgPSBuZXcgaGFzaF90YWJsZTxyZWdp c3RlcmVkX2Z1bmN0aW9uX2hhc2hlcj4gKDEwMjMpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rwqAgbm9uX292ZXJsb2FkZWRfZnVuY3Rpb25fdGFibGUKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+K8KgwqDCoCA9IG5ldyBoYXNoX3RhYmxlPG5vbl9vdmVybG9hZGVkX3JlZ2lz dGVyZWRfZnVuY3Rpb25faGFzaGVyPiAoMTAyMyk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PsKgwqAgZnVuY3Rpb25fYnVpbGRlciBidWlsZGVyOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj7CoMKgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRSAoZnVu Y3Rpb25fZ3JvdXBzKTsgKytpKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgwqDC oCBidWlsZGVyLnJlZ2lzdGVyX2Z1bmN0aW9uX2dyb3VwIChmdW5jdGlvbl9ncm91cHNbaV0pOwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5AQCAtNDIwNCw4ICs0NDIyLDI3IEBAIGNoZWNr X2J1aWx0aW5fY2FsbCAobG9jYXRpb25fdCBsb2NhdGlvbiwgdmVjPGxvY2F0aW9uX3Q+LCB1bnNp Z25lZCBpbnQgY29kZSwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoMKgIHRyZWUg Zm5kZWNsLCB1bnNpZ25lZCBpbnQgbmFyZ3MsIHRyZWUgKmFyZ3MpCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PnsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoCBjb25zdCBy ZWdpc3RlcmVkX2Z1bmN0aW9uICZyZm4gPSAqKCpyZWdpc3RlcmVkX2Z1bmN0aW9ucylbY29kZV07 CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi3CoCByZXR1cm4gZnVuY3Rpb25fY2hlY2tl ciAobG9jYXRpb24sIHJmbi5pbnN0YW5jZSwgZm5kZWNsLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4twqDCoMKgIFRSRUVfVFlQRSAocmZuLmRlY2wpLCBuYXJncywgYXJncykuY2hlY2sg KCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gZnVuY3Rpb25fY2hl Y2tlciAobG9jYXRpb24sIHJmbi5pbnN0YW5jZSwgZm5kZWNsLCBUUkVFX1RZUEUgKHJmbi5kZWNs KSwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoCBuYXJncywgYXJncykKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoCAuY2hlY2sgKCk7CgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3RyZWUKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+K3Jlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluICh1bnNpZ25lZCBpbnQgY29kZSwgdmVj PHRyZWUsIHZhX2djPiAqYXJnbGlzdCkKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3sK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIGlmIChjb2RlID49IHZlY19zYWZlX2xl bmd0aCAocmVnaXN0ZXJlZF9mdW5jdGlvbnMpKQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rwqDCoMKgIHJldHVybiBOVUxMX1RSRUU7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJlZ2lzdGVyZWRfZnVuY3Rpb24g KnJmdW4gPSAoKnJlZ2lzdGVyZWRfZnVuY3Rpb25zKVtjb2RlXTsKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgaWYgKCFyZnVu IHx8ICFyZnVuLT5vdmVybG9hZGVkX3ApCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivC oMKgwqAgcmV0dXJuIE5VTExfVFJFRTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgaGFzaHZhbF90IGhhc2ggPSByZnVuLT5v dmVybG9hZGVkX2hhc2ggKCphcmdsaXN0KTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ K8KgIHJlZ2lzdGVyZWRfZnVuY3Rpb24gKnJmbgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rwqDCoMKgID0gbm9uX292ZXJsb2FkZWRfZnVuY3Rpb25fdGFibGUtPmZpbmRfd2l0aF9oYXNo IChyZnVuLCBoYXNoKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIGdjY19hc3Nl cnQgKHJmbik7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gcmZuLT5k ZWNsOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj59CgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PmZ1bmN0aW9uX2luc3RhbmNlCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj5pbmRleCBlMzU4YThlNGQ5MS4uNGY0MWU4ODBhYzMgMTAwNjQ0CgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLmgKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KysrIGIvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj5AQCAtMjc3LDYgKzI3Nyw4IEBAIHB1YmxpYzoKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+wqDCoCB2b2lkIGFwcGx5X3ByZWRpY2F0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0 YW5jZSAmLCB0cmVlLCB2ZWM8dHJlZT4gJikgY29uc3Q7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PsKgwqAgdm9pZCBhZGRfdW5pcXVlX2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0 YW5jZSAmLCBjb25zdCBmdW5jdGlvbl9zaGFwZSAqLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj7CoMKgwqAgdHJlZSwgdmVjPHRyZWU+ICYpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rwqAgdm9pZCBhZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5z dGFuY2UgJiwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyBjb25zdCBmdW5jdGlvbl9z aGFwZSAqKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoCB2b2lkIHJlZ2lzdGVy X2Z1bmN0aW9uX2dyb3VwIChjb25zdCBmdW5jdGlvbl9ncm91cF9pbmZvICYpOwoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj7CoMKgIHZvaWQgYXBwZW5kX25hbWUgKGNvbnN0IGNoYXIgKik7 CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqAgdm9pZCBhcHBlbmRfYmFzZV9uYW1l IChjb25zdCBjaGFyICopOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5AQCAtMjg4LDcg KzI5MCw4IEBAIHByaXZhdGU6CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqAgdHJl ZSBnZXRfYXR0cmlidXRlcyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJik7CgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PsKgwqAgcmVnaXN0ZXJlZF9mdW5jdGlvbiAmYWRkX2Z1bmN0aW9u IChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmLCBjb25zdCBjaGFyICosCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+Pi3CoMKgwqDCoMKgIHRyZWUsIHRyZWUsIGJvb2wpOwoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoCB0cmVlLCB0cmVlLCBib29sLCBjb25zdCBj aGFyICosCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgIGNvbnN0IHZl Yzx0cmVlPiAmLCBib29sKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+wqDCoCAvKiBU cnVlIGlmIHdlIHNob3VsZCBjcmVhdGUgYSBzZXBhcmF0ZSBkZWNsIGZvciBlYWNoIGluc3RhbmNl IG9mIGFuCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PsKgwqDCoMKgwqAgb3ZlcmxvYWRl ZCBmdW5jdGlvbiwgaW5zdGVhZCBvZiB1c2luZyBmdW5jdGlvbl9idWlsZGVyLsKgICovCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZhZGQuYyBiL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmFkZC5jCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PmluZGV4IDAwMDAwMDAwMDAwLi41ZjEwYWE5YmYzNQoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4tLS0gL2Rldi9udWxsCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2MzJfdmFkZC5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkBAIC0w LDAgKzEsMTIgQEAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctZG8gY29t cGlsZSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLW9wdGlvbnMg Ii1tYXJjaD1ydjMyZ2N2X3p2ZmggLW1hYmk9aWxwMzIgLU8zIC1Xbm8tcHNhYmkiIH0gKi8KCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rI2luY2x1ZGUgIm92ZXJsb2FkZWRfdmFkZC5oIgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTgsXHMq bTEsXHMqdGEsXHMqbWF9IDQgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0r LFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDggfSB9ICovCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTgsXHMqbTEsXHMqdHUsXHMqbWF9IDQgfSB9 ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTgsXHMqbTEs XHMqdGEsXHMqbXV9IDIgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1b MC05XSssXHMqZTgsXHMqbTEsXHMqdHUsXHMqbXV9IDIgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZhZGRc LnZ2XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDYgfSB9ICovCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZhZGRcLnZ4XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKltheF1bMC05XSt9IDYgfSB9ICovCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZmYWRkLmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZmYWRkLmMK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+bmV3IGZpbGUgbW9kZSAxMDA2NDQKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+aW5kZXggMDAwMDAwMDAwMDAuLmJlYTM1YTEzYTdiCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi0tLSAvZGV2L251bGwKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfcnYzMl92ZmFkZC5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PkBAIC0wLDAgKzEsMTIgQEAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGct ZG8gY29tcGlsZSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLW9w dGlvbnMgIi1tYXJjaD1ydjMyZ2N2X3p2ZmggLW1hYmk9aWxwMzIgLU8zIC1Xbm8tcHNhYmkiIH0g Ki8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rI2luY2x1ZGUgIm92ZXJsb2FkZWRfdmZhZGQuaCIKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxz KmUxNixccyptZjQsXHMqdGEsXHMqbWF9IDE2IH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMr emVybyxccypbYXhdWzAtOV0rLFxzKmUxNixccyptZjQsXHMqdGEsXHMqbWF9IDQgfSB9ICovCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWY4LFxzKnRh LFxzKm1hfSA4IH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0r LFxzKmUxNixccyptZjQsXHMqdHUsXHMqbWF9IDQgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlc cyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm1mNCxccyp0dSxccyptdX0gMiB9IH0gKi8K CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMqbWY0LFxz KnRhLFxzKm11fSAyIH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2ZmFkZFwudnZccyt2WzAtOV0rLFxzKnZb MC05XSssXHMqdlswLTldK30gMTIgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjMyX3ZnZXRfdnNldC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92Z2V0X3ZzZXQuYwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj5uZXcgZmlsZSBtb2RlIDEwMDY0NAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj5pbmRleCAwMDAwMDAwMDAwMC4uNmIwYmExNDJiOTAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+LS0tIC9kZXYvbnVsbAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMy X3ZnZXRfdnNldC5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkBAIC0wLDAgKzEsNyBA QAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1kbyBjb21waWxlIH0gKi8K CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2 MzJnY3ZfenZmaCAtbWFiaT1pbHAzMiAtTzMgLVduby1wc2FiaSIgfSAqLwoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisjaW5jbHVk ZSAib3ZlcmxvYWRlZF92Z2V0X3ZzZXQuaCIKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2bFswLTldK3JlWzAtOV0rXC52XHMrdlswLTldKyxccyowXChbYXhdWzAt OV0rXCl9IDE0IH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c1swLTldK3JcLnZccyt2WzAtOV0rLFxzKjBc KFtheF1bMC05XStcKX0gMTMgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zlcmxv YWRlZF9ydjMyX3Zsb3hzZWcyZWkxNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bG94c2VnMmVpMTYuYwoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj5uZXcgZmlsZSBtb2RlIDEwMDY0NAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj5pbmRleCAwMDAwMDAwMDAwMC4uYTIwZTRhM2JiNGYKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+LS0tIC9kZXYvbnVsbAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9y djMyX3Zsb3hzZWcyZWkxNi5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkBAIC0wLDAg KzEsMTEgQEAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctZG8gY29tcGls ZSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjMyZ2N2X3p2ZmggLW1hYmk9aWxwMzIgLU8zIC1Xbm8tcHNhYmkiIH0gKi8KCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r I2luY2x1ZGUgIm92ZXJsb2FkZWRfdmxveHNlZzJlaTE2LmgiCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccypl NjQsXHMqbTQsXHMqdGEsXHMqbWF9IDIgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhd WzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSA0IH0gfSAqLwoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU2NCxccyptNCxccyp0dSxccypt YX0gMiB9IH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccypl NjQsXHMqbTQsXHMqdHUsXHMqbXV9IDEgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJv LFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnRhLFxzKm11fSAxIH0gfSAqLwoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2bG94c2VnMmVpMTZcLnZccyt2WzAtOV0rLFxzKlwoW2F4XVswLTldK1wpLFxzKnZbMC05 XSt9IDYgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Zt di5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnYzMl92bXYuYwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5uZXcgZmlsZSBtb2RlIDEw MDY0NAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5pbmRleCAwMDAwMDAwMDAwMC4uMjM3 YjM0ZGJlOTEKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+LS0tIC9kZXYvbnVsbAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Ztdi5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PkBAIC0wLDAgKzEsMTAgQEAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pisv KiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMyZ2N2X3p2ZmggLW1hYmk9aWxwMzIgLU8zIC1Xbm8t cHNhYmkiIH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj4rI2luY2x1ZGUgIm92ZXJsb2FkZWRfdm12LmgiCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVsw LTldKyxccyplOCxccyptMSxccyp0YSxccyptYX0gMSB9IH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZs aVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccyptMSxccyp0dSxccyptYX0gMiB9IH0gKi8K CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMqbTEsXHMq dGEsXHMqbWF9IDEgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05 XSssXHMqZTE2LFxzKm0xLFxzKnR1LFxzKm1hfSAxIH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0aXZs aVxzK3plcm8sXHMqMCxccyplOCxccyptMSxccyp0YSxccyptYX0gMSB9IH0gKi8KCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdnJlaW50ZXJwcmV0LmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZyZWludGVy cHJldC5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmluZGV4IDAwMDAwMDAwMDAwLi40MmQ1MDU4 OTI0NgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4tLS0gL2Rldi9udWxsCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdnJlaW50ZXJwcmV0LmMKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+QEAgLTAsMCArMSwxMCBAQAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rLyogeyBkZy1kbyBjb21waWxlIH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3ZfenZmaCAtbWFiaT1pbHAzMiAtTzMg LVduby1wc2FiaSIgfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PisjaW5jbHVkZSAib3ZlcmxvYWRlZF92cmVpbnRlcnByZXQu aCIKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMr W2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLwoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxz Km1hfSAxIH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxz KmU4LFxzKm1mMixccyp0YSxccyptYX0gMSB9IH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th eF1bMC05XSssXHMqemVybyxccyplMTYsXHMqbWYyLFxzKnRhLFxzKm1hfSAyIH0gfSAqLwoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmUzMixccyptZjIsXHMqdGEs XHMqbWF9IDEgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0 X3ZhZGQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9h ZGVkX3J2NjRfdmFkZC5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmluZGV4IDAwMDAwMDAwMDAw Li5jNDU1NWUzZjQ3NwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4tLS0gL2Rldi9udWxs CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmFkZC5jCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PkBAIC0wLDAgKzEsMTEgQEAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3ZfenZmaCAtbWFiaT1scDY0IC1P MyAtV25vLXBzYWJpIiB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyNpbmNsdWRlICJvdmVybG9hZGVkX3ZhZGQuaCIKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxc cypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSA0IH0gfSAqLwoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1hfSA4 IH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxz Km0xLFxzKnR1LFxzKm1hfSA0IH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypb YXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm11fSAyIH0gfSAqLwoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxzKnR1LFxzKm11fSAyIH0g fSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2YWRkXC52dlxzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0r fSA2IH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2YWRkXC52eFxzK3ZbMC05XSssXHMqdlswLTldKyxccypb YXhdWzAtOV0rfSA2IH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5kaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnY2NF92ZmFkZC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfcnY2NF92ZmFkZC5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pm5ldyBm aWxlIG1vZGUgMTAwNjQ0CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmluZGV4IDAwMDAw MDAwMDAwLi5jYTk4MTM2Y2U5YgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4tLS0gL2Rl di9udWxsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmZhZGQuYwoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5AQCAtMCwwICsxLDExIEBACgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2X3p2ZmggLW1hYmk9 bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisjaW5jbHVkZSAib3ZlcmxvYWRlZF92ZmFk ZC5oIgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlc cytbYXhdWzAtOV0rLFxzKnplcm8sXHMqZTE2LFxzKm1mNCxccyp0YSxccyptYX0gMTYgfSB9ICov CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm1mNCxc cyp0YSxccyptYX0gNCB9IH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMq emVybyxccyplOCxccyptZjgsXHMqdGEsXHMqbWF9IDggfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2 bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm1mNCxccyp0dSxccyptYX0gNCB9IH0g Ki8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMqbWY0 LFxzKnR1LFxzKm11fSAyIH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhd WzAtOV0rLFxzKmUxNixccyptZjQsXHMqdGEsXHMqbXV9IDIgfSB9ICovCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zm YWRkXC52dlxzK3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAxMiB9IH0gKi8KCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmdldF92c2V0LmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZnZXRfdnNl dC5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmluZGV4IDAwMDAwMDAwMDAwLi4xY2I0MjI1MDg0 YwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4tLS0gL2Rldi9udWxsCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+PisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmdldF92c2V0LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+QEAgLTAsMCArMSw2IEBACgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pisv KiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2X3p2ZmggLW1hYmk9bHA2NCAtTzMgLVduby1w c2FiaSIgfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PisjaW5jbHVkZSAib3ZlcmxvYWRlZF92Z2V0X3ZzZXQuaCIKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2bFswLTldK3JlWzAtOV0rXC52 XHMrdlswLTldKyxccyowXChbYXhdWzAtOV0rXCl9IDE0IH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c1sw LTldK3JcLnZccyt2WzAtOV0rLFxzKjBcKFtheF1bMC05XStcKX0gMTMgfSB9ICovCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3Zsb3hzZWcyZWkxNi5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bG94c2Vn MmVpMTYuYwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5uZXcgZmlsZSBtb2RlIDEwMDY0 NAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5pbmRleCAwMDAwMDAwMDAwMC4uZWE3MzE3 MDQ0NGQKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+LS0tIC9kZXYvbnVsbAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3Zsb3hzZWcyZWkxNi5jCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PkBAIC0wLDAgKzEsMTAgQEAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+Ky8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3ZfenZmaCAtbWFiaT1scDY0IC1P MyAtV25vLXBzYWJpIiB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyNpbmNsdWRlICJvdmVybG9hZGVkX3Zsb3hzZWcyZWkx Ni5oIgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlc cyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnRhLFxzKm1hfSAyIH0gfSAqLwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0 YSxccyptYX0gNCB9IH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTld KyxccyplNjQsXHMqbTQsXHMqdHUsXHMqbWF9IDIgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlc cyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnR1LFxzKm11fSAxIH0gfSAqLwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU2NCxccyptNCxccyp0 YSxccyptdX0gMSB9IH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxveHNlZzJlaTE2XC52XHMrdlswLTldKyxc cypcKFtheF1bMC05XStcKSxccyp2WzAtOV0rfSA2IH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj5kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bXYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdm12LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+bmV3IGZpbGUgbW9kZSAxMDA2NDQKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+aW5kZXggMDAwMDAwMDAwMDAuLmM1ZGE2YmJmY2E4CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+Pi0tLSAvZGV2L251bGwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92 bXYuYwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5AQCAtMCwwICsxLDEwIEBACgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnY2NGdjdl96 dmZoIC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rI2luY2x1ZGUgIm92ZXJs b2FkZWRfdm12LmgiCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccyptMSxccyp0YSxccyptYX0gMSB9 IH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccypt MSxccyp0dSxccyptYX0gMiB9IH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4 XVswLTldKyxccyplMTYsXHMqbTEsXHMqdGEsXHMqbWF9IDEgfSB9ICovCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm0xLFxzKnR1LFxzKm1hfSAxIH0g fSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0aXZsaVxzK3plcm8sXHMqMCxccyplOCxccyptMSxccyp0YSxc cyptYX0gMSB9IH0gKi8KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRf dnJlaW50ZXJwcmV0LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF9ydjY0X3ZyZWludGVycHJldC5jCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+Pm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pmlu ZGV4IDAwMDAwMDAwMDAwLi4zYjgzOTljMTI2ZAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4tLS0gL2Rldi9udWxsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdnJlaW50 ZXJwcmV0LmMKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+QEAgLTAsMCArMSw5IEBACgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0 Z2N2X3p2ZmggLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIgfSAqLwoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisjaW5jbHVkZSAi b3ZlcmxvYWRlZF92cmVpbnRlcnByZXQuaCIKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm00LFxz KnRhLFxzKm1hfSAxIH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6 ZXJvLFxzKmU4LFxzKm0yLFxzKnRhLFxzKm1hfSAxIH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxccyptYX0gMSB9IH0gKi8K CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxccyplMTYsXHMqbWYyLFxz KnRhLFxzKm1hfSAyIH0gfSAqLwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6 ZXJvLFxzKmUzMixccyptZjIsXHMqdGEsXHMqbWF9IDEgfSB9ICovCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92YWRkLmggYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92YWRkLmgKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+bmV3IGZpbGUgbW9kZSAxMDA2NDQKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+aW5k ZXggMDAwMDAwMDAwMDAuLjNiNDFjZmYxYjYyCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ Pi0tLSAvZGV2L251bGwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdmFkZC5oCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkBAIC0wLDAgKzEsNTkgQEAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCIKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmludDhtMV90 IHRlc3RfdmFkZF92dl9pOG0xKHZpbnQ4bTFfdCB2czIsIHZpbnQ4bTFfdCB2czEsIHNpemVfdCB2 bCkgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgcmV0dXJuIF9fcmlzY3ZfdmFk ZCh2czIsIHZzMSwgdmwpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit2 aW50OG0xX3QgdGVzdF92YWRkX3Z4X2k4bTEodmludDhtMV90IHZzMiwgaW50OF90IHJzMSwgc2l6 ZV90IHZsKSB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gX19yaXNj dl92YWRkKHZzMiwgcnMxLCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRfdnZfaThtMV9tKHZib29sOF90IHZtLCB2aW50OG0xX3Qg dnMyLCB2aW50OG0xX3QgdnMxLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXpl X3QgdmwpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2 X3ZhZGQodm0sIHZzMiwgdnMxLCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9 CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+K3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRfdnhfaThtMV9tKHZib29sOF90IHZtLCB2aW50OG0x X3QgdnMyLCBpbnQ4X3QgcnMxLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXpl X3QgdmwpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2 X3ZhZGQodm0sIHZzMiwgcnMxLCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9 CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+K3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRfdnZfaThtMV90dSh2aW50OG0xX3QgdmQsIHZpbnQ4 bTFfdCB2czIsIHZpbnQ4bTFfdCB2czEsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc2l6ZV90IHZsKSB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4g X19yaXNjdl92YWRkX3R1KHZkLCB2czIsIHZzMSwgdmwpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+Pit2aW50OG0xX3QgdGVzdF92YWRkX3Z4X2k4bTFfdHUodmludDhtMV90 IHZkLCB2aW50OG0xX3QgdnMyLCBpbnQ4X3QgcnMxLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHNpemVfdCB2bCkgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAg cmV0dXJuIF9fcmlzY3ZfdmFkZF90dSh2ZCwgdnMyLCByczEsIHZsKTsKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmludDhtMV90IHRlc3RfdmFkZF92dl9pOG0xX3R1bSh2 Ym9vbDhfdCB2bSwgdmludDhtMV90IHZkLCB2aW50OG0xX3QgdnMyLAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgdmludDhtMV90IHZzMSwgc2l6ZV90IHZsKSB7CgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gX19yaXNjdl92YWRkX3R1bSh2bSwgdmQs IHZzMiwgdnMxLCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3Zp bnQ4bTFfdCB0ZXN0X3ZhZGRfdnhfaThtMV90dW0odmJvb2w4X3Qgdm0sIHZpbnQ4bTFfdCB2ZCwg dmludDhtMV90IHZzMiwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludDhf dCByczEsIHNpemVfdCB2bCkgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgcmV0 dXJuIF9fcmlzY3ZfdmFkZF90dW0odm0sIHZkLCB2czIsIHJzMSwgdmwpOwoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit2aW50OG0xX3QgdGVzdF92YWRkX3Z2X2k4bTFfbXUo dmJvb2w4X3Qgdm0sIHZpbnQ4bTFfdCB2ZCwgdmludDhtMV90IHZzMiwKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB2aW50OG0xX3QgdnMxLCBzaXplX3QgdmwpIHsKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2X3ZhZGRfbXUodm0sIHZkLCB2 czIsIHZzMSwgdmwpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit2aW50 OG0xX3QgdGVzdF92YWRkX3Z4X2k4bTFfbXUodmJvb2w4X3Qgdm0sIHZpbnQ4bTFfdCB2ZCwgdmlu dDhtMV90IHZzMiwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQ4X3QgcnMx LCBzaXplX3QgdmwpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBf X3Jpc2N2X3ZhZGRfbXUodm0sIHZkLCB2czIsIHJzMSwgdmwpOwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+Pit2aW50OG0xX3QgdGVzdF92YWRkX3Z2X2k4bTFfdHVtdSh2Ym9v bDhfdCB2bSwgdmludDhtMV90IHZkLCB2aW50OG0xX3QgdnMyLAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB2aW50OG0xX3QgdnMxLCBzaXplX3QgdmwpIHsKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2X3ZhZGRfdHVtdSh2bSwgdmQs IHZzMiwgdnMxLCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3Zp bnQ4bTFfdCB0ZXN0X3ZhZGRfdnhfaThtMV90dW11KHZib29sOF90IHZtLCB2aW50OG0xX3QgdmQs IHZpbnQ4bTFfdCB2czIsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlu dDhfdCByczEsIHNpemVfdCB2bCkgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAg cmV0dXJuIF9fcmlzY3ZfdmFkZF90dW11KHZtLCB2ZCwgdnMyLCByczEsIHZsKTsKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9h ZGVkX3ZmYWRkLmggYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF92ZmFkZC5oCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmluZGV4IDAwMDAwMDAwMDAw Li43OThhZjQyMGYyZAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4tLS0gL2Rldi9udWxs CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZmYWRkLmgKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+QEAgLTAsMCArMSw2NyBAQAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit2ZmxvYXQxNm1mNF90IHRlc3RfdmZh ZGRfdnZfZjE2bWY0KHZmbG9hdDE2bWY0X3QgdnMyLCB2ZmxvYXQxNm1mNF90IHZzMSwKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVfdCB2bCkgewoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgcmV0dXJuIF9fcmlzY3ZfdmZhZGQodnMyLCB2czEs IHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmZsb2F0MTZtZjRf dCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9tKHZib29sNjRfdCB2bSwgdmZsb2F0MTZtZjRfdCB2czIs CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmZsb2F0MTZt ZjRfdCB2czEsIHNpemVfdCB2bCkgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAg cmV0dXJuIF9fcmlzY3ZfdmZhZGQodm0sIHZzMiwgdnMxLCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRf dHUodmZsb2F0MTZtZjRfdCB2ZCwgdmZsb2F0MTZtZjRfdCB2czIsCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2ZmxvYXQxNm1mNF90IHZzMSwgc2l6ZV90 IHZsKSB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gX19yaXNjdl92 ZmFkZF90dSh2ZCwgdnMyLCB2czEsIHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rdmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF90dW0odmJvb2w2NF90 IHZtLCB2ZmxvYXQxNm1mNF90IHZkLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB2ZmxvYXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVfdCB2 bCkgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgcmV0dXJuIF9fcmlzY3ZfdmZh ZGRfdHVtKHZtLCB2ZCwgdnMyLCB2czEsIHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rdmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF90dW11KHZib29s NjRfdCB2bSwgdmZsb2F0MTZtZjRfdCB2ZCwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2ZmxvYXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRfdCB2 czEsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg c2l6ZV90IHZsKSB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gX19y aXNjdl92ZmFkZF90dW11KHZtLCB2ZCwgdnMyLCB2czEsIHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9t dSh2Ym9vbDY0X3Qgdm0sIHZmbG9hdDE2bWY0X3QgdmQsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2ZmxvYXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRf dCB2czEsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBz aXplX3QgdmwpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jp c2N2X3ZmYWRkX211KHZtLCB2ZCwgdnMyLCB2czEsIHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj4rdmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9ybSh2 ZmxvYXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplX3QgdmwpIHsKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2X3ZmYWRkKHZzMiwgdnMxLCBfX1JJU0NW X0ZSTV9STkUsIHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmZs b2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9ybV9tKHZib29sNjRfdCB2bSwgdmZsb2F0 MTZtZjRfdCB2czIsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgdmZsb2F0MTZtZjRfdCB2czEsIHNpemVfdCB2bCkgewoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4rwqAgcmV0dXJuIF9fcmlzY3ZfdmZhZGQodm0sIHZzMiwgdnMxLCBfX1JJ U0NWX0ZSTV9STkUsIHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r dmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9ybV90dSh2ZmxvYXQxNm1mNF90IHZk LCB2ZmxvYXQxNm1mNF90IHZzMiwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHZmbG9hdDE2bWY0X3QgdnMxLCBzaXplX3QgdmwpIHsKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2X3ZmYWRkX3R1KHZkLCB2 czIsIHZzMSwgX19SSVNDVl9GUk1fUk5FLCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+Pit9CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+K3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRfcm1fdHVtKHZi b29sNjRfdCB2bSwgdmZsb2F0MTZtZjRfdCB2ZCwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmZsb2F0MTZtZjRfdCB2czIsIHZmbG9hdDE2 bWY0X3QgdnMxLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzaXplX3QgdmwpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8Kg IHJldHVybiBfX3Jpc2N2X3ZmYWRkX3R1bSh2bSwgdmQsIHZzMiwgdnMxLCBfX1JJU0NWX0ZSTV9S TkUsIHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmZsb2F0MTZt ZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1mNF9ybV90dW11KHZib29sNjRfdCB2bSwgdmZsb2F0MTZt ZjRfdCB2ZCwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB2ZmxvYXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZV90 IHZsKSB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gX19yaXNjdl92 ZmFkZF90dW11KHZtLCB2ZCwgdnMyLCB2czEsIF9fUklTQ1ZfRlJNX1JORSwgdmwpOwoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4r CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit2ZmxvYXQxNm1mNF90IHRlc3RfdmZhZGRf dnZfZjE2bWY0X3JtX211KHZib29sNjRfdCB2bSwgdmZsb2F0MTZtZjRfdCB2ZCwKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZmbG9hdDE2bWY0 X3QgdnMyLCB2ZmxvYXQxNm1mNF90IHZzMSwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemVfdCB2bCkgewoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rwqAgcmV0dXJuIF9fcmlzY3ZfdmZhZGRfbXUodm0sIHZkLCB2czIsIHZzMSwg X19SSVNDVl9GUk1fUk5FLCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92Z2V0X3ZzZXQuaCBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZnZXRfdnNldC5oCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pm5ldyBmaWxlIG1vZGUgMTAwNjQ0CgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PmluZGV4IDAwMDAwMDAwMDAwLi4wMWUwNzJlYjM4ZgoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4tLS0gL2Rldi9udWxsCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3ZnZXRfdnNldC5oCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PkBA IC0wLDAgKzEsMjcgQEAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KyNpbmNsdWRlICJy aXNjdl92ZWN0b3IuaCIKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmZsb2F0MTZtMV90IHRlc3RfdmdldF92X2YxNm0yX2YxNm0x KHZmbG9hdDE2bTJfdCBzcmMsIHNpemVfdCBpbmRleCkgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rwqAgcmV0dXJuIF9fcmlzY3ZfdmdldF9mMTZtMShzcmMsIDApOwoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit2aW50NjRtMV90IHRlc3RfdmdldF92X2k2NG00 X2k2NG0xKHZpbnQ2NG00X3Qgc3JjLCBzaXplX3QgaW5kZXgpIHsKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2X3ZnZXRfaTY0bTEoc3JjLCAwKTsKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmZsb2F0MTZtMV90IHRlc3RfdmdldF92 X2YxNm0xeDRfZjE2bTEodmZsb2F0MTZtMXg0X3Qgc3JjLCBzaXplX3QgaW5kZXgpIHsKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2X3ZnZXRfZjE2bTEoc3Jj LCAwKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmludDhtMl90IHRl c3RfdmdldF92X2k4bTJ4M19pOG0yKHZpbnQ4bTJ4M190IHNyYywgc2l6ZV90IGluZGV4KSB7CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gX19yaXNjdl92Z2V0X2k4bTIo c3JjLCAwKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmZsb2F0MTZt Ml90IHRlc3RfdnNldF92X2YxNm0xX2YxNm0yKHZmbG9hdDE2bTJfdCBkZXN0LCBzaXplX3QgaW5k ZXgsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmZsb2F0 MTZtMV90IHZhbHVlKSB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4g X19yaXNjdl92c2V0KGRlc3QsIDAsIHZhbHVlKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rdmZsb2F0NjRtMXg3X3QgdGVzdF92c2V0X3ZfZjY0bTFfZjY0bTF4Nyh2Zmxv YXQ2NG0xeDdfdCBkZXN0LCBzaXplX3QgaW5kZXgsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2ZmxvYXQ2NG0xX3QgdmFsdWUpIHsKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2X3ZzZXQoZGVzdCwgMCwg dmFsdWUpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj5kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL292ZXJsb2FkZWRfdmxveHNlZzJlaTE2LmggYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bG94c2VnMmVpMTYuaAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj5uZXcgZmlsZSBtb2RlIDEwMDY0NAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj5pbmRleCAwMDAwMDAwMDAwMC4uMmViY2RiNDE3OTUKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4+LS0tIC9kZXYvbnVsbAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zlcmxv YWRlZF92bG94c2VnMmVpMTYuaAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5AQCAtMCww ICsxLDM5IEBACgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4+K3R5cGVkZWYgX0Zsb2F0MTYgZmxvYXQxNl90OwoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+Pj4rdHlwZWRlZiBmbG9hdCBmbG9hdDMyX3Q7CgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+Pit0eXBlZGVmIGRvdWJsZSBmbG9hdDY0X3Q7CgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3ZmbG9hdDY0 bTR4Ml90IHRlc3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4Mihjb25zdCBmbG9hdDY0X3QgKnJzMSwK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB2dWludDE2bTFfdCByczIsIHNpemVfdCB2bCkgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rwqAgcmV0dXJuIF9fcmlzY3ZfdmxveHNlZzJlaTE2KHJzMSwgcnMyLCB2bCk7CgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3ZmbG9hdDY0bTR4Ml90IHRlc3Rfdmxv eHNlZzJlaTE2X3ZfZjY0bTR4Ml9tKHZib29sMTZfdCB2bSwgY29uc3QgZmxvYXQ2NF90ICpyczEs CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHZ1aW50MTZtMV90IHJzMiwgc2l6ZV90IHZsKSB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PivCoCByZXR1cm4gX19yaXNjdl92bG94c2VnMmVpMTYodm0sIHJzMSwgcnMyLCB2 bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3ZmbG9hdDY0bTR4Ml90 IHRlc3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4Ml90dW0odmJvb2wxNl90IHZtLCB2ZmxvYXQ2NG00 eDJfdCB2ZCwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IGZsb2F0NjRfdCAqcnMxLAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdnVpbnQx Nm0xX3QgcnMyLCBzaXplX3QgdmwpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8Kg IHJldHVybiBfX3Jpc2N2X3Zsb3hzZWcyZWkxNl90dW0odm0sIHZkLCByczEsIHJzMiwgdmwpOwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit2ZmxvYXQ2NG00eDJfdCB0ZXN0 X3Zsb3hzZWcyZWkxNl92X2Y2NG00eDJfdHVtdSh2Ym9vbDE2X3Qgdm0sIHZmbG9hdDY0bTR4Ml90 IHZkLAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBjb25zdCBmbG9hdDY0X3QgKnJzMSwKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdnVpbnQx Nm0xX3QgcnMyLCBzaXplX3QgdmwpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8Kg IHJldHVybiBfX3Jpc2N2X3Zsb3hzZWcyZWkxNl90dW11KHZtLCB2ZCwgcnMxLCByczIsIHZsKTsK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmZsb2F0NjRtNHgyX3QgdGVz dF92bG94c2VnMmVpMTZfdl9mNjRtNHgyX211KHZib29sMTZfdCB2bSwgdmZsb2F0NjRtNHgyX3Qg dmQsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgY29uc3QgZmxvYXQ2NF90ICpyczEsCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdnVpbnQxNm0xX3QgcnMy LCBzaXplX3QgdmwpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBf X3Jpc2N2X3Zsb3hzZWcyZWkxNl9tdSh2bSwgdmQsIHJzMSwgcnMyLCB2bCk7CgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3ZmbG9hdDY0bTR4Ml90IHRlc3RfdmxveHNlZzJl aTE2X3ZfZjY0bTR4Ml90dSh2ZmxvYXQ2NG00eDJfdCB2ZCwKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25zdCBmbG9hdDY0 X3QgKnJzMSwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB2dWludDE2bTFfdCByczIsIHNpemVfdCB2bCkgewoKCgo+CgoKCj4K CgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgcmV0dXJuIF9fcmlzY3ZfdmxveHNlZzJlaTE2X3R1KHZk LCByczEsIHJzMiwgdmwpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5kaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdm12LmggYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bXYuaAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj5uZXcgZmlsZSBtb2RlIDEwMDY0NAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+Pj5pbmRleCAwMDAwMDAwMDAwMC4uZmQzZjFkMjhjMGEKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4+LS0tIC9kZXYvbnVsbAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bXYu aAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj5AQCAtMCwwICsxLDI2IEBACgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3Zp bnQ4bTFfdCB0ZXN0X3Ztdl92X3ZfaThtMSAodmludDhtMV90IHZzMSwgc2l6ZV90IHZsKSB7CgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4K CgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gX19yaXNjdl92bXZfdiAodnMx LCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K3ZpbnQ4bTFfdCB0 ZXN0X3Ztdl92X3ZfaThtMV90dSAodmludDhtMV90IHZkLCB2aW50OG0xX3QgdnMxLCBzaXplX3Qg dmwpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2X3Zt dl92X3R1KHZkLCB2czEsIHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4rdmZsb2F0MTZtMV90IHRlc3Rfdm12X3Zfdl9mMTZtMSAodmZsb2F0MTZtMV90IHZzMSwgc2l6 ZV90IHZsKSB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PivCoCByZXR1cm4gX19yaXNj dl92bXZfdiAodnMxLCB2bCk7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit9CgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ K3ZmbG9hdDE2bTFfdCB0ZXN0X3Ztdl92X3ZfZjE2bTFfdHUgKHZmbG9hdDE2bTFfdCB2ZCwgdmZs b2F0MTZtMV90IHZzMSwKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHNpemVfdCB2bCkgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAgcmV0dXJuIF9f cmlzY3Zfdm12X3ZfdHUgKHZkLCB2czEsIHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4raW50OF90IHRlc3Rfdm12X3hfc19pOG0xX2k4KHZpbnQ4bTFfdCB2czEpIHsK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2X3Ztdl94ICh2 czEpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4K CgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit2aW50OG0xX3QgdGVz dF92bXZfc194X2k4bTFfdHUodmludDhtMV90IHZkLCBpbnQ4X3QgcnMxLCBzaXplX3QgdmwpIHsK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJldHVybiBfX3Jpc2N2X3Ztdl9zX3R1 KHZkLCByczEsIHZsKTsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZyZWludGVycHJldC5oIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdnJlaW50ZXJwcmV0LmgKCgoK PgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoK Cgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+bmV3IGZpbGUgbW9kZSAxMDA2NDQKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+aW5kZXggMDAwMDAwMDAwMDAuLjkwNGIwY2VlZTcyCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+Pi0tLSAvZGV2L251bGwKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+ CgoKCj4KCgoKPj4+KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfdnJlaW50ZXJwcmV0LmgKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ QEAgLTAsMCArMSwyOSBAQAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rI2luY2x1ZGUg InJpc2N2X3ZlY3Rvci5oIgoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4g CgoKCj4KCgoKPgoKCgo+CgoKCj4+Pit2dWludDE2bTFfdCB0ZXN0X3ZyZWludGVycHJldF92X2Iy X3UxNm0xKHZib29sMl90IHNyYykgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAg cmV0dXJuIF9fcmlzY3ZfdnJlaW50ZXJwcmV0X3UxNm0xKHNyYyk7CgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K3Zib29sNF90IHRlc3RfdnJlaW50ZXJwcmV0X3ZfaTMybTFf YjQodmludDMybTFfdCBzcmMpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K8KgIHJl dHVybiBfX3Jpc2N2X3ZyZWludGVycHJldF9iNChzcmMpOwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoK Cj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+Pit2aW50OG1mMl90IHRlc3RfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2k4 bWYyKHZpbnQxNm1mMl90IHNyYykgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoK Cj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rwqAg cmV0dXJuIF9fcmlzY3ZfdnJlaW50ZXJwcmV0X2k4bWYyKHNyYyk7CgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+Pit9CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+PisKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K3ZpbnQzMm1mMl90IHRlc3RfdnJlaW50ZXJwcmV0X3ZfaTE2 bWYyX2kzMm1mMih2aW50MTZtZjJfdCBzcmMpIHsKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoK Pj4+K8KgIHJldHVybiBfX3Jpc2N2X3ZyZWludGVycHJldF9pMzJtZjIoc3JjKTsKCgoKPgoKCgo+ CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+KwoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmludDMybTFfdCB0ZXN0X3ZyZWludGVycHJl dF92X2kxNm0xX2kzMm0xKHZpbnQxNm0xX3Qgc3JjKSB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoK Cgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+ CgoKCj4+PivCoCByZXR1cm4gX19yaXNjdl92cmVpbnRlcnByZXRfaTMybTEoc3JjKTsKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdmludDhtNF90IHRlc3RfdnJlaW50ZXJw cmV0X3ZfaTMybTRfaThtNCh2aW50MzJtNF90IHNyYykgewoKCgo+CgoKCj4KCgoKPgoKCgo+PiAK CgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoK PgoKCgo+Pj4rwqAgcmV0dXJuIF9fcmlzY3ZfdnJlaW50ZXJwcmV0X2k4bTQoc3JjKTsKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+K30KCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoK PgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+ KwoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rdnVpbnQ4bThfdCB0ZXN0X3ZyZWludGVy cHJldF92X3UzMm04X3U4bTgodnVpbnQzMm04X3Qgc3JjKSB7CgoKCj4KCgoKPgoKCgo+CgoKCj4+ IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoK Cgo+CgoKCj4+PivCoCByZXR1cm4gX19yaXNjdl92cmVpbnRlcnByZXRfdThtOChzcmMpOwoKCgo+ CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+Pj4rfQoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoK Cgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+ Pj4tLSAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoKCj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+Mi4xNy4xCgoKCj4KCgoKPgoKCgo+ CgoKCj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4K CgoKPgoKCgo+CgoKCj4+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCgo+CgoK Cj4+IAoKCgo+CgoKCj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4+IAoKCgo+CgoK Cj4KCgoKPgoKCgo+PiAKCgoKPgoKCgo+CgoKCj4KCgoKPj4gCgoKCj4KCgoKPgoKCg==