From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 2490D3858D28 for ; Tue, 2 May 2023 17:19:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2490D3858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.99,244,1677571200"; d="scan'208,223";a="4626940" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 02 May 2023 09:19:21 -0800 IronPort-SDR: AKuYNFYAObwUusTdlrngUR45jB+mpKyCf9l8EwQwU4n3YVwk/PFOiYRttMKBtZEIDlGDtYATer XTxGoLTvaSYSRzhRl/mY6gU73tQKDzQXsXT5FwWM7temAUVTsTDds/PQsO6P/fbvsC17Q5NRvV xUc5+dxBXzQS22aGxk2Be1xrKREYF3TY+HrnJcxVkI7U1fO/3+20wtBo00Zu4P0sOqnUU8HhKA 4nh7ecX8wiicPWNspRxPh+DTQUqEGHysgpD9cA2u3HPuzfHl2xWFdbA5MuBCz+2TwNfRmD50GM PWw= Content-Type: multipart/mixed; boundary="------------QK0hvwLZe0l0nD5xSDWgPSgg" Message-ID: <3cdc56a8-62eb-d33c-3038-0af00d8a52ba@codesourcery.com> Date: Tue, 2 May 2023 19:19:14 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 Content-Language: en-US To: Binutils , gcc-patches From: Tobias Burnus Subject: [RFC,patch] Linker plugin - extend API for offloading corner case (aka: LDPT_REGISTER_CLAIM_FILE_HOOK_V2 linker plugin hook [GCC PR109128]) CC: Joseph Myers X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-10.mgc.mentorg.com (139.181.222.10) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: --------------QK0hvwLZe0l0nD5xSDWgPSgg Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable See also https://gcc.gnu.org/PR109128 (+ description in the patch log) The linker plugin API was designed to handle LTO - such that the compiler (= i.e. GCC's lto-plugin) can claim an input file if it finds LTO code. In that case, the symbols ins= ide that file are ignored by 'ld'. However, GCC also uses the LTO for offloading: code designated for running = on a non-host device (GPUs) is saved in a special section in LTO format. This code then ends up = being compiled for offloading but otherwise not the file is not claimed, keeping the symbols f= or 'ld' to process, unless that file is also uses real, host-side LTO. This mostly works okay, but a corner case exists (see PR for an example) wh= ere 'ld' calls the GCC's lto-plugin but does not actually use the symbols of that file. That's= fine, in principle, but if that file contains offloading code, there is a problem: To match hos= t and device functions, a table is created on both sides, but that table obviously must match. Howe= ver, when lto-plugin's offload code processes those while ld does not link them, it fails. It turned out (kudos to Joseph for debugging + writing the patches) that in= that case ld.bfd does not actually regards that file as being used but just offers it to llto-plu= gin in case it needs symbols from it. To get this working, the current API is insufficient. Possible solutions: * Tell lto-plugin whether 'ld' actually needs symbols from a file or it jus= t offers the file in case that lto-plugin wants to claim that file =3D> That's implemented in the attached patch. * Make it possible to "claim" a file without discarding the ld-visible symb= ols * Asking the linker later whether the file/some symbols are actually used. * something else ... What this patch does: * It adds a new API callback (LDPT_REGISTER_CLAIM_FILE_HOOK_V2) that takes = an additional boolean argument which states whether ld.bdf intens to use that file/sym= bols from that file or whether it just asks the plugin in case it wants to claim it. * On the ld.bfd side, it wires this up. * On the GCC lto-plugin side, it uses that API is available, otherwise it u= ses the existing API. The way the linker plugin handling is written, it works fine at runtime if = only one side supports the new hook. (Except, of course, that for fixing the issue both n= eed to support it.) Regarding those patches: Are they ok for mainline? Any comment, better appr= oach, suggestion? Tobias PS: Attached is the Binutils' ld side of the patch and the GCC lto-plugin s= ide of the patch set. ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------QK0hvwLZe0l0nD5xSDWgPSgg Content-Type: text/x-patch; charset="UTF-8"; name="gcc-0001-Implement-LDPT_REGISTER_CLAIM_FILE_HOOK_V2-linker-pl.patch" Content-Disposition: attachment; filename*0="gcc-0001-Implement-LDPT_REGISTER_CLAIM_FILE_HOOK_V2-linker-p"; filename*1="l.patch" Content-Transfer-Encoding: base64 RnJvbSBjYjViZjhmYWQyZTY1M2U0NGZjYWU4ZjRiYTBjZTZlYjVmOTI4Y2IzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NlcGggTXllcnMgPGpvc2VwaEBjb2Rlc291cmNl cnkuY29tPgpEYXRlOiBUdWUsIDIgTWF5IDIwMjMgMTc6MTA6MDEgKzAwMDAKU3ViamVjdDog W1BBVENIXSBJbXBsZW1lbnQgTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0tfVjIgbGlu a2VyIHBsdWdpbiBob29rCiBbUFIxMDkxMjhdCgpUaGlzIGlzIG9uZSBwYXJ0IG9mIHRoZSBm aXggZm9yIFBSMTA5MTI4LCBhbG9uZyB3aXRoIGEgY29ycmVzcG9uZGluZwpiaW51dGlscydz IGxpbmtlciBjaGFuZ2UuICBXaXRob3V0IHRoaXMgcGF0Y2gsIHdoYXQgaGFwcGVucyBpbiB0 aGUKbGlua2VyLCB3aGVuIGFuIHVudXNlZCBvYmplY3QgaW4gYSAuYSBmaWxlIGhhcyBvZmZs b2FkIGRhdGEsIGlzIHRoYXQKZWxmX2xpbmtfaXNfZGVmaW5lZF9hcmNoaXZlX3N5bWJvbCBj YWxscyBiZmRfbGlua19wbHVnaW5fb2JqZWN0X3AsCndoaWNoIGVuZHMgdXAgY2FsbGluZyB0 aGUgcGx1Z2luJ3MgY2xhaW1fZmlsZV9oYW5kbGVyLCB3aGljaCB0aGVuCnJlY29yZHMgdGhl IG9iamVjdCBhcyBvbmUgd2l0aCBvZmZsb2FkIGRhdGEuIFRoYXQgaXMsIHRoZSBsaW5rZXIg bmV2ZXIKZGVjaWRlcyB0byB1c2UgdGhlIG9iamVjdCBpbiB0aGUgZmlyc3QgcGxhY2UsIGJ1 dCB1c2Ugb2YgdGhpcyBfcAppbnRlcmZhY2UgKGNhbGxlZCBhcyBwYXJ0IG9mIHRyeWluZyB0 byBkZWNpZGUgd2hldGhlciB0byB1c2UgdGhlCm9iamVjdCkgcmVzdWx0cyBpbiB0aGUgcGx1 Z2luIGRlY2lkaW5nIHRvIHVzZSBpdHMgb2ZmbG9hZCBkYXRhIChhbmQgYQpjb25zZXF1ZW50 IG1pc21hdGNoIGluIHRoZSBvZmZsb2FkIGRhdGEgcHJlc2VudCBhdCBydW50aW1lKS4KClRo ZSBuZXcgaG9vayBhbGxvd3MgdGhlIGxpbmtlciBwbHVnaW4gdG8gZGlzdGluZ3Vpc2ggY2Fs bHMgdG8KY2xhaW1fZmlsZV9oYW5kbGVyIHRoYXQga25vdyB0aGUgb2JqZWN0IGlzIGJlaW5n IHVzZWQgYnkgdGhlIGxpbmtlcgooZnJvbSBsZG1haW4uYzphZGRfYXJjaGl2ZV9lbGVtZW50 KSwgZnJvbSBjYWxscyB0aGF0IGRvbid0IGtub3cgaXQncwpiZWluZyB1c2VkIGJ5IHRoZSBs aW5rZXIgKGZyb20gZWxmX2xpbmtfaXNfZGVmaW5lZF9hcmNoaXZlX3N5bWJvbCk7IGluCnRo ZSBsYXR0ZXIgY2FzZSwgdGhlIHBsdWdpbiBzaG91bGQgYXZvaWQgcmVjb3JkaW5nIHRoZSBv YmplY3QgYXMgb25lCndpdGggb2ZmbG9hZCBkYXRhLgoKCVBSIG1pZGRsZS1lbmQvMTA5MTI4 CgoJaW5jbHVkZS8KCSogcGx1Z2luLWFwaS5oIChsZF9wbHVnaW5fY2xhaW1fZmlsZV9oYW5k bGVyX3YyKQoJKGxkX3BsdWdpbl9yZWdpc3Rlcl9jbGFpbV9maWxlX3YyKQoJKExEUFRfUkVH SVNURVJfQ0xBSU1fRklMRV9IT09LX1YyKTogTmV3LgogICAgICAgCShzdHJ1Y3QgbGRfcGx1 Z2luX3R2KTogQWRkIHR2X3JlZ2lzdGVyX2NsYWltX2ZpbGVfdjIuCgoJbHRvLXBsdWdpbi8K CSogbHRvLXBsdWdpbi5jIChyZWdpc3Rlcl9jbGFpbV9maWxlX3YyKTogTmV3LgoJKGNsYWlt X2ZpbGVfaGFuZGxlcl92Mik6IE5ldy4KCShjbGFpbV9maWxlX2hhbmRsZXIpOiBXcmFwIGNs YWltX2ZpbGVfaGFuZGxlcl92Mi4KCShvbmxvYWQpOiBIYW5kbGUgTERQVF9SRUdJU1RFUl9D TEFJTV9GSUxFX0hPT0tfVjIuCi0tLQogaW5jbHVkZS9wbHVnaW4tYXBpLmggICAgfCAxNiAr KysrKysrKysrKysrKysrCiBsdG8tcGx1Z2luL2x0by1wbHVnaW4uYyB8IDMxICsrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BsdWdpbi1hcGku aCBiL2luY2x1ZGUvcGx1Z2luLWFwaS5oCmluZGV4IDM3OTgyOGJhODU0Li4zOTVkNWJjYzU5 OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wbHVnaW4tYXBpLmgKKysrIGIvaW5jbHVkZS9wbHVn aW4tYXBpLmgKQEAgLTI2MCw2ICsyNjAsMTMgQEAgZW51bSBsZF9wbHVnaW5fc3RhdHVzCiAo KmxkX3BsdWdpbl9jbGFpbV9maWxlX2hhbmRsZXIpICgKICAgY29uc3Qgc3RydWN0IGxkX3Bs dWdpbl9pbnB1dF9maWxlICpmaWxlLCBpbnQgKmNsYWltZWQpOwogCisvKiBUaGUgcGx1Z2lu IGxpYnJhcnkncyAiY2xhaW0gZmlsZSIgaGFuZGxlciwgdmVyc2lvbiAyLiAgKi8KKwordHlw ZWRlZgorZW51bSBsZF9wbHVnaW5fc3RhdHVzCisoKmxkX3BsdWdpbl9jbGFpbV9maWxlX2hh bmRsZXJfdjIpICgKKyAgY29uc3Qgc3RydWN0IGxkX3BsdWdpbl9pbnB1dF9maWxlICpmaWxl LCBpbnQgKmNsYWltZWQsIGludCBrbm93bl91c2VkKTsKKwogLyogVGhlIHBsdWdpbiBsaWJy YXJ5J3MgImFsbCBzeW1ib2xzIHJlYWQiIGhhbmRsZXIuICAqLwogCiB0eXBlZGVmCkBAIC0y NzgsNiArMjg1LDEzIEBAIHR5cGVkZWYKIGVudW0gbGRfcGx1Z2luX3N0YXR1cwogKCpsZF9w bHVnaW5fcmVnaXN0ZXJfY2xhaW1fZmlsZSkgKGxkX3BsdWdpbl9jbGFpbV9maWxlX2hhbmRs ZXIgaGFuZGxlcik7CiAKKy8qIFRoZSBsaW5rZXIncyBpbnRlcmZhY2UgZm9yIHJlZ2lzdGVy aW5nIHRoZSAiY2xhaW0gZmlsZSIgaGFuZGxlciwKKyAgIHZlcnNpb24gMi4gICovCisKK3R5 cGVkZWYKK2VudW0gbGRfcGx1Z2luX3N0YXR1cworKCpsZF9wbHVnaW5fcmVnaXN0ZXJfY2xh aW1fZmlsZV92MikgKGxkX3BsdWdpbl9jbGFpbV9maWxlX2hhbmRsZXJfdjIgaGFuZGxlcik7 CisKIC8qIFRoZSBsaW5rZXIncyBpbnRlcmZhY2UgZm9yIHJlZ2lzdGVyaW5nIHRoZSAiYWxs IHN5bWJvbHMgcmVhZCIgaGFuZGxlci4gICovCiAKIHR5cGVkZWYKQEAgLTU1Myw2ICs1Njcs NyBAQCBlbnVtIGxkX3BsdWdpbl90YWcKICAgTERQVF9HRVRfV1JBUF9TWU1CT0xTLAogICBM RFBUX0FERF9TWU1CT0xTX1YyLAogICBMRFBUX0dFVF9BUElfVkVSU0lPTiwKKyAgTERQVF9S RUdJU1RFUl9DTEFJTV9GSUxFX0hPT0tfVjIKIH07CiAKIC8qIFRoZSBwbHVnaW4gdHJhbnNm ZXIgdmVjdG9yLiAgKi8KQEAgLTU2NSw2ICs1ODAsNyBAQCBzdHJ1Y3QgbGRfcGx1Z2luX3R2 CiAgICAgaW50IHR2X3ZhbDsKICAgICBjb25zdCBjaGFyICp0dl9zdHJpbmc7CiAgICAgbGRf cGx1Z2luX3JlZ2lzdGVyX2NsYWltX2ZpbGUgdHZfcmVnaXN0ZXJfY2xhaW1fZmlsZTsKKyAg ICBsZF9wbHVnaW5fcmVnaXN0ZXJfY2xhaW1fZmlsZV92MiB0dl9yZWdpc3Rlcl9jbGFpbV9m aWxlX3YyOwogICAgIGxkX3BsdWdpbl9yZWdpc3Rlcl9hbGxfc3ltYm9sc19yZWFkIHR2X3Jl Z2lzdGVyX2FsbF9zeW1ib2xzX3JlYWQ7CiAgICAgbGRfcGx1Z2luX3JlZ2lzdGVyX2NsZWFu dXAgdHZfcmVnaXN0ZXJfY2xlYW51cDsKICAgICBsZF9wbHVnaW5fYWRkX3N5bWJvbHMgdHZf YWRkX3N5bWJvbHM7CmRpZmYgLS1naXQgYS9sdG8tcGx1Z2luL2x0by1wbHVnaW4uYyBiL2x0 by1wbHVnaW4vbHRvLXBsdWdpbi5jCmluZGV4IGNjNTEyYTQ2M2YzLi5hZTg3MDg5YjA1ZCAx MDA2NDQKLS0tIGEvbHRvLXBsdWdpbi9sdG8tcGx1Z2luLmMKKysrIGIvbHRvLXBsdWdpbi9s dG8tcGx1Z2luLmMKQEAgLTE3Myw2ICsxNzMsNyBAQCBzdGF0aWMgcHRocmVhZF9tdXRleF90 IHBsdWdpbl9sb2NrOwogCiBzdGF0aWMgY2hhciAqYXJndW1lbnRzX2ZpbGVfbmFtZTsKIHN0 YXRpYyBsZF9wbHVnaW5fcmVnaXN0ZXJfY2xhaW1fZmlsZSByZWdpc3Rlcl9jbGFpbV9maWxl Oworc3RhdGljIGxkX3BsdWdpbl9yZWdpc3Rlcl9jbGFpbV9maWxlX3YyIHJlZ2lzdGVyX2Ns YWltX2ZpbGVfdjI7CiBzdGF0aWMgbGRfcGx1Z2luX3JlZ2lzdGVyX2FsbF9zeW1ib2xzX3Jl YWQgcmVnaXN0ZXJfYWxsX3N5bWJvbHNfcmVhZDsKIHN0YXRpYyBsZF9wbHVnaW5fZ2V0X3N5 bWJvbHMgZ2V0X3N5bWJvbHMsIGdldF9zeW1ib2xzX3YyLCBnZXRfc3ltYm9sc192MzsKIHN0 YXRpYyBsZF9wbHVnaW5fcmVnaXN0ZXJfY2xlYW51cCByZWdpc3Rlcl9jbGVhbnVwOwpAQCAt MTE5MSwxMCArMTE5MiwxNSBAQCBwcm9jZXNzX29mZmxvYWRfc2VjdGlvbiAodm9pZCAqZGF0 YSwgY29uc3QgY2hhciAqbmFtZSwgb2ZmX3Qgb2Zmc2V0LCBvZmZfdCBsZW4pCiB9CiAKIC8q IENhbGxiYWNrIHVzZWQgYnkgYSBsaW5rZXIgdG8gY2hlY2sgaWYgdGhlIHBsdWdpbiB3aWxs IGNsYWltIEZJTEUuIFdyaXRlcwotICAgdGhlIHJlc3VsdCBpbiBDTEFJTUVELiAqLworICAg dGhlIHJlc3VsdCBpbiBDTEFJTUVELiAgSWYgS05PV05fVVNFRCwgdGhlIG9iamVjdCBpcyBr bm93biBieSB0aGUgbGlua2VyCisgICB0byBiZSB1c2VkLCBvciBhbiBvbGRlciBBUEkgdmVy c2lvbiBpcyBpbiB1c2UgdGhhdCBkb2VzIG5vdCBwcm92aWRlIHRoYXQKKyAgIGluZm9ybWF0 aW9uOyBvdGhlcndpc2UsIHRoZSBsaW5rZXIgaXMgb25seSBkZXRlcm1pbmluZyB3aGV0aGVy IHRoaXMgaXMKKyAgIGEgcGx1Z2luIG9iamVjdCBhbmQgaXQgc2hvdWxkIG5vdCBiZSByZWdp c3RlcmVkIGFzIGhhdmluZyBvZmZsb2FkIGRhdGEgaWYKKyAgIG5vdCBjbGFpbWVkIGJ5IHRo ZSBwbHVnaW4uICAqLwogCiBzdGF0aWMgZW51bSBsZF9wbHVnaW5fc3RhdHVzCi1jbGFpbV9m aWxlX2hhbmRsZXIgKGNvbnN0IHN0cnVjdCBsZF9wbHVnaW5faW5wdXRfZmlsZSAqZmlsZSwg aW50ICpjbGFpbWVkKQorY2xhaW1fZmlsZV9oYW5kbGVyX3YyIChjb25zdCBzdHJ1Y3QgbGRf cGx1Z2luX2lucHV0X2ZpbGUgKmZpbGUsIGludCAqY2xhaW1lZCwKKwkJICAgICAgIGludCBr bm93bl91c2VkKQogewogICBlbnVtIGxkX3BsdWdpbl9zdGF0dXMgc3RhdHVzOwogICBzdHJ1 Y3QgcGx1Z2luX29iamZpbGUgb2JqOwpAQCAtMTMwNyw3ICsxMzEzLDcgQEAgY2xhaW1fZmls ZV9oYW5kbGVyIChjb25zdCBzdHJ1Y3QgbGRfcGx1Z2luX2lucHV0X2ZpbGUgKmZpbGUsIGlu dCAqY2xhaW1lZCkKICAgaWYgKCpjbGFpbWVkICYmICFvYmoub2ZmbG9hZCAmJiBvZmZsb2Fk X2ZpbGVzX2xhc3RfbHRvID09IE5VTEwpCiAgICAgb2ZmbG9hZF9maWxlc19sYXN0X2x0byA9 IG9mZmxvYWRfZmlsZXNfbGFzdDsKIAotICBpZiAob2JqLm9mZmxvYWQpCisgIGlmIChvYmou b2ZmbG9hZCAmJiAoa25vd25fdXNlZCB8fCBvYmouZm91bmQgPiAwKSkKICAgICB7CiAgICAg ICAvKiBBZGQgZmlsZSB0byB0aGUgbGlzdC4gIFRoZSBvcmRlciBtdXN0IGJlIGV4YWN0bHkg dGhlIHNhbWUgYXMgdGhlIGZpbmFsCiAJIG9yZGVyIGFmdGVyIHJlY29tcGlsYXRpb24gYW5k IGxpbmtpbmcsIG90aGVyd2lzZSBob3N0IGFuZCB0YXJnZXQgdGFibGVzCkBAIC0xMzcyLDYg KzEzNzgsMTUgQEAgY2xhaW1fZmlsZV9oYW5kbGVyIChjb25zdCBzdHJ1Y3QgbGRfcGx1Z2lu X2lucHV0X2ZpbGUgKmZpbGUsIGludCAqY2xhaW1lZCkKICAgcmV0dXJuIExEUFNfT0s7CiB9 CiAKKy8qIENhbGxiYWNrIHVzZWQgYnkgYSBsaW5rZXIgdG8gY2hlY2sgaWYgdGhlIHBsdWdp biB3aWxsIGNsYWltIEZJTEUuIFdyaXRlcworICAgdGhlIHJlc3VsdCBpbiBDTEFJTUVELiAq LworCitzdGF0aWMgZW51bSBsZF9wbHVnaW5fc3RhdHVzCitjbGFpbV9maWxlX2hhbmRsZXIg KGNvbnN0IHN0cnVjdCBsZF9wbHVnaW5faW5wdXRfZmlsZSAqZmlsZSwgaW50ICpjbGFpbWVk KQoreworICByZXR1cm4gY2xhaW1fZmlsZV9oYW5kbGVyX3YyIChmaWxlLCBjbGFpbWVkLCB0 cnVlKTsKK30KKwogLyogUGFyc2UgdGhlIHBsdWdpbiBvcHRpb25zLiAqLwogCiBzdGF0aWMg dm9pZApAQCAtMTQ5Niw2ICsxNTExLDkgQEAgb25sb2FkIChzdHJ1Y3QgbGRfcGx1Z2luX3R2 ICp0dikKIAljYXNlIExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LOgogCSAgcmVnaXN0 ZXJfY2xhaW1fZmlsZSA9IHAtPnR2X3UudHZfcmVnaXN0ZXJfY2xhaW1fZmlsZTsKIAkgIGJy ZWFrOworCWNhc2UgTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0tfVjI6CisJICByZWdp c3Rlcl9jbGFpbV9maWxlX3YyID0gcC0+dHZfdS50dl9yZWdpc3Rlcl9jbGFpbV9maWxlX3Yy OworCSAgYnJlYWs7CiAJY2FzZSBMRFBUX0FERF9TWU1CT0xTX1YyOgogCSAgYWRkX3N5bWJv bHNfdjIgPSBwLT50dl91LnR2X2FkZF9zeW1ib2xzOwogCSAgYnJlYWs7CkBAIC0xNTU1LDYg KzE1NzMsMTMgQEAgb25sb2FkIChzdHJ1Y3QgbGRfcGx1Z2luX3R2ICp0dikKICAgY2hlY2sg KHN0YXR1cyA9PSBMRFBTX09LLCBMRFBMX0ZBVEFMLAogCSAiY291bGQgbm90IHJlZ2lzdGVy IHRoZSBjbGFpbV9maWxlIGNhbGxiYWNrIik7CiAKKyAgaWYgKHJlZ2lzdGVyX2NsYWltX2Zp bGVfdjIpCisgICAgeworICAgICAgc3RhdHVzID0gcmVnaXN0ZXJfY2xhaW1fZmlsZV92MiAo Y2xhaW1fZmlsZV9oYW5kbGVyX3YyKTsKKyAgICAgIGNoZWNrIChzdGF0dXMgPT0gTERQU19P SywgTERQTF9GQVRBTCwKKwkgICAgICJjb3VsZCBub3QgcmVnaXN0ZXIgdGhlIGNsYWltX2Zp bGVfdjIgY2FsbGJhY2siKTsKKyAgICB9CisKICAgaWYgKHJlZ2lzdGVyX2NsZWFudXApCiAg ICAgewogICAgICAgc3RhdHVzID0gcmVnaXN0ZXJfY2xlYW51cCAoY2xlYW51cF9oYW5kbGVy KTsKLS0gCjIuMjUuMQoK --------------QK0hvwLZe0l0nD5xSDWgPSgg Content-Type: text/x-patch; charset="UTF-8"; name="binutils-0001-Add-LDPT_REGISTER_CLAIM_FILE_HOOK_V2-linker-plugin-h.patch" Content-Disposition: attachment; filename*0="binutils-0001-Add-LDPT_REGISTER_CLAIM_FILE_HOOK_V2-linker-pl"; filename*1="ugin-h.patch" Content-Transfer-Encoding: base64 RnJvbSA2YzljNTVhMmY3MmQwYThiZjQ4OTE1NjBmNzlhMjAxOWRkY2E0MDRkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NlcGggTXllcnMgPGpvc2VwaEBjb2Rlc291cmNl cnkuY29tPgpEYXRlOiBUdWUsIDIgTWF5IDIwMjMgMTc6MDI6MjkgKzAwMDAKU3ViamVjdDog W1BBVENIXSBBZGQgTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0tfVjIgbGlua2VyIHBs dWdpbiBob29rCiBbR0NDIFBSMTA5MTI4XQoKVGhpcyBpcyBvbmUgcGFydCBvZiB0aGUgZml4 IGZvciBHQ0MgUFIxMDkxMjgsIGFsb25nIHdpdGggYQpjb3JyZXNwb25kaW5nIEdDQyBjaGFu Z2UuICBXaXRob3V0IHRoaXMgcGF0Y2gsIHdoYXQgaGFwcGVucyBpbiB0aGUKbGlua2VyLCB3 aGVuIGFuIHVudXNlZCBvYmplY3QgaW4gYSAuYSBmaWxlIGhhcyBvZmZsb2FkIGRhdGEsIGlz IHRoYXQKZWxmX2xpbmtfaXNfZGVmaW5lZF9hcmNoaXZlX3N5bWJvbCBjYWxscyBiZmRfbGlu a19wbHVnaW5fb2JqZWN0X3AsCndoaWNoIGVuZHMgdXAgY2FsbGluZyB0aGUgcGx1Z2luJ3Mg Y2xhaW1fZmlsZV9oYW5kbGVyLCB3aGljaCB0aGVuCnJlY29yZHMgdGhlIG9iamVjdCBhcyBv bmUgd2l0aCBvZmZsb2FkIGRhdGEuIFRoYXQgaXMsIHRoZSBsaW5rZXIgbmV2ZXIKZGVjaWRl cyB0byB1c2UgdGhlIG9iamVjdCBpbiB0aGUgZmlyc3QgcGxhY2UsIGJ1dCB1c2Ugb2YgdGhp cyBfcAppbnRlcmZhY2UgKGNhbGxlZCBhcyBwYXJ0IG9mIHRyeWluZyB0byBkZWNpZGUgd2hl dGhlciB0byB1c2UgdGhlCm9iamVjdCkgcmVzdWx0cyBpbiB0aGUgcGx1Z2luIGRlY2lkaW5n IHRvIHVzZSBpdHMgb2ZmbG9hZCBkYXRhIChhbmQgYQpjb25zZXF1ZW50IG1pc21hdGNoIGlu IHRoZSBvZmZsb2FkIGRhdGEgcHJlc2VudCBhdCBydW50aW1lKS4KClRoZSBuZXcgaG9vayBh bGxvd3MgdGhlIGxpbmtlciBwbHVnaW4gdG8gZGlzdGluZ3Vpc2ggY2FsbHMgdG8KY2xhaW1f ZmlsZV9oYW5kbGVyIHRoYXQga25vdyB0aGUgb2JqZWN0IGlzIGJlaW5nIHVzZWQgYnkgdGhl IGxpbmtlcgooZnJvbSBsZG1haW4uYzphZGRfYXJjaGl2ZV9lbGVtZW50KSwgZnJvbSBjYWxs cyB0aGF0IGRvbid0IGtub3cgaXQncwpiZWluZyB1c2VkIGJ5IHRoZSBsaW5rZXIgKGZyb20g ZWxmX2xpbmtfaXNfZGVmaW5lZF9hcmNoaXZlX3N5bWJvbCk7IGluCnRoZSBsYXR0ZXIgY2Fz ZSwgdGhlIHBsdWdpbiBzaG91bGQgYXZvaWQgcmVjb3JkaW5nIHRoZSBvYmplY3QgYXMgb25l CndpdGggb2ZmbG9hZCBkYXRhLgoKCWJmZC8KCSogcGx1Z2luLmMgKHN0cnVjdCBwbHVnaW5f bGlzdF9lbnRyeSk6IEFkZCBjbGFpbV9maWxlX3YyLgoJKHJlZ2lzdGVyX2NsYWltX2ZpbGVf djIpOiBOZXcuCgkodHJ5X2xvYWRfcGx1Z2luKTogVXNlIExEUFRfUkVHSVNURVJfQ0xBSU1f RklMRV9IT09LX1YyLgoJKGxkX3BsdWdpbl9vYmplY3RfcCk6IFRha2Ugc2Vjb25kIGFyZ3Vt ZW50LgoJKGJmZF9saW5rX3BsdWdpbl9vYmplY3RfcCk6IFVwZGF0ZSBjYWxsIHRvIGxkX3Bs dWdpbl9vYmplY3RfcC4KCShyZWdpc3Rlcl9sZF9wbHVnaW5fb2JqZWN0X3ApOiBVcGRhdGUg YXJndW1lbnQgcHJvdG90eXBlLgoJKGJmZF9wbHVnaW5fb2JqZWN0X3ApOiBVcGRhdGUgY2Fs bCB0byBsZF9wbHVnaW5fb2JqZWN0X3AuCgkqIHBsdWdpbi5oIChyZWdpc3Rlcl9sZF9wbHVn aW5fb2JqZWN0X3ApOiBVcGRhdGUgYXJndW1lbnQKCXByb3RvdHlwZS4KCglpbmNsdWRlLwoJ KiBwbHVnaW4uYXBpO2ggKGxkX3BsdWdpbl9jbGFpbV9maWxlX2hhbmRsZXJfdjIpCgkobGRf cGx1Z2luX3JlZ2lzdGVyX2NsYWltX2ZpbGVfdjIpCgkoTERQVF9SRUdJU1RFUl9DTEFJTV9G SUxFX0hPT0tfVjIpOiBOZXcuCgkoc3RydWN0IGxkX3BsdWdpbl90dik6IEFkZCB0dl9yZWdp c3Rlcl9jbGFpbV9maWxlX3YyLgoKCWxkLwoJKiBwbHVnaW4uYyAoc3RydWN0IHBsdWdpbik6 IEFkZCBjbGFpbV9maWxlX2hhbmRsZXJfdjIuCgkoTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxF X0hPT0tfVjIpOiBOZXcuCgkocGx1Z2luX29iamVjdF9wKTogQWRkIHNlY29uZCBhcmd1bWVu dC4gIFVwZGF0ZSBjYWxsIHRvCglwbHVnaW5fY2FsbF9jbGFpbV9maWxlLgoJKHJlZ2lzdGVy X2NsYWltX2ZpbGVfdjIpOiBOZXcuCgkoc2V0X3R2X2hlYWRlcik6IEhhbmRsZSBMRFBUX1JF R0lTVEVSX0NMQUlNX0ZJTEVfSE9PS19WMi4KCShwbHVnaW5fY2FsbF9jbGFpbV9maWxlKTog QWRkIGFyZ3VtZW50IGtub3duX3VzZWQuCgkocGx1Z2luX21heWJlX2NsYWltKTogVXBkYXRl IGNhbGwgdG8gcGx1Z2luX29iamVjdF9wLgoJKiB0ZXN0cGx1Zy5jLCB0ZXN0cGx1ZzIuYywg dGVzdHBsdWczLmMsIHRlc3RwbHVnNC5jOiBIYW5kbGUKCUxEUFRfUkVHSVNURVJfQ0xBSU1f RklMRV9IT09LX1YyLgoJKiB0ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xLmQsIHRlc3Rz dWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTEwLmQsCgl0ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdp bi0xMS5kLCB0ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xMy5kLAoJdGVzdHN1aXRlL2xk LXBsdWdpbi9wbHVnaW4tMTQuZCwgdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMTUuZCwK CXRlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTE2LmQsIHRlc3RzdWl0ZS9sZC1wbHVnaW4v cGx1Z2luLTE3LmQsCgl0ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xOC5kLCB0ZXN0c3Vp dGUvbGQtcGx1Z2luL3BsdWdpbi0xOS5kLAoJdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4t Mi5kLCB0ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0yNi5kLAoJdGVzdHN1aXRlL2xkLXBs dWdpbi9wbHVnaW4tMy5kLCB0ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0zMC5kLAoJdGVz dHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tNC5kLCB0ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdp bi01LmQsCgl0ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi02LmQsIHRlc3RzdWl0ZS9sZC1w bHVnaW4vcGx1Z2luLTcuZCwKCXRlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTguZCwgdGVz dHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tOS5kOgoJVXBkYXRlIHRlc3QgZXhwZWN0YXRpb25z LgotLS0KIGJmZC9wbHVnaW4uYyAgICAgICAgICAgICAgICAgICAgICAgfCAyNSArKysrKysr KysrKysrKysrKysrKy0tLS0tCiBiZmQvcGx1Z2luLmggICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGluY2x1ZGUvcGx1Z2luLWFwaS5oICAgICAgICAgICAgICAgfCAxNiArKysr KysrKysrKysrKysrCiBsZC9wbHVnaW4uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMzAg KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiBsZC90ZXN0cGx1Zy5jICAgICAgICAg ICAgICAgICAgICAgIHwgIDYgKysrKysrCiBsZC90ZXN0cGx1ZzIuYyAgICAgICAgICAgICAg ICAgICAgIHwgIDUgKysrKysKIGxkL3Rlc3RwbHVnMy5jICAgICAgICAgICAgICAgICAgICAg fCAgNSArKysrKwogbGQvdGVzdHBsdWc0LmMgICAgICAgICAgICAgICAgICAgICB8ICA1ICsr KysrCiBsZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xLmQgIHwgIDEgKwogbGQvdGVz dHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMTAuZCB8ICAxICsKIGxkL3Rlc3RzdWl0ZS9sZC1w bHVnaW4vcGx1Z2luLTExLmQgfCAgMSArCiBsZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdp bi0xMy5kIHwgIDEgKwogbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMTQuZCB8ICAx ICsKIGxkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTE1LmQgfCAgMSArCiBsZC90ZXN0 c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xNi5kIHwgIDEgKwogbGQvdGVzdHN1aXRlL2xkLXBs dWdpbi9wbHVnaW4tMTcuZCB8ICAxICsKIGxkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2lu LTE4LmQgfCAgMSArCiBsZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xOS5kIHwgIDEg KwogbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMi5kICB8ICAxICsKIGxkL3Rlc3Rz dWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTI2LmQgfCAgMSArCiBsZC90ZXN0c3VpdGUvbGQtcGx1 Z2luL3BsdWdpbi0zLmQgIHwgIDEgKwogbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4t MzAuZCB8ICAxICsKIGxkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTQuZCAgfCAgMSAr CiBsZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi01LmQgIHwgIDEgKwogbGQvdGVzdHN1 aXRlL2xkLXBsdWdpbi9wbHVnaW4tNi5kICB8ICAxICsKIGxkL3Rlc3RzdWl0ZS9sZC1wbHVn aW4vcGx1Z2luLTcuZCAgfCAgMSArCiBsZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi04 LmQgIHwgIDEgKwogbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tOS5kICB8ICAxICsK IDI4IGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9iZmQvcGx1Z2luLmMgYi9iZmQvcGx1Z2luLmMKaW5kZXggNjZkMjg2 YWY2YjYuLmI3OThkMzQ3N2FlIDEwMDY0NAotLS0gYS9iZmQvcGx1Z2luLmMKKysrIGIvYmZk L3BsdWdpbi5jCkBAIC0xMjksNiArMTI5LDcgQEAgc3RydWN0IHBsdWdpbl9saXN0X2VudHJ5 CiB7CiAgIC8qIFRoZXNlIG11c3QgYmUgaW5pdGlhbGl6ZWQgZm9yIGVhY2ggSVIgb2JqZWN0 IHdpdGggTFRPIHdyYXBwZXIuICAqLwogICBsZF9wbHVnaW5fY2xhaW1fZmlsZV9oYW5kbGVy IGNsYWltX2ZpbGU7CisgIGxkX3BsdWdpbl9jbGFpbV9maWxlX2hhbmRsZXJfdjIgY2xhaW1f ZmlsZV92MjsKICAgbGRfcGx1Z2luX2FsbF9zeW1ib2xzX3JlYWRfaGFuZGxlciBhbGxfc3lt Ym9sc19yZWFkOwogICBsZF9wbHVnaW5fYWxsX3N5bWJvbHNfcmVhZF9oYW5kbGVyIGNsZWFu dXBfaGFuZGxlcjsKICAgYm9vbCBoYXNfc3ltYm9sX3R5cGU7CkBAIC0xNTksNiArMTYwLDE2 IEBAIHJlZ2lzdGVyX2NsYWltX2ZpbGUgKGxkX3BsdWdpbl9jbGFpbV9maWxlX2hhbmRsZXIg aGFuZGxlcikKICAgcmV0dXJuIExEUFNfT0s7CiB9CiAKKworLyogUmVnaXN0ZXIgYSBjbGFp bS1maWxlIGhhbmRsZXIsIHZlcnNpb24gMi4gKi8KKworc3RhdGljIGVudW0gbGRfcGx1Z2lu X3N0YXR1cworcmVnaXN0ZXJfY2xhaW1fZmlsZV92MiAobGRfcGx1Z2luX2NsYWltX2ZpbGVf aGFuZGxlcl92MiBoYW5kbGVyKQoreworICBjdXJyZW50X3BsdWdpbi0+Y2xhaW1fZmlsZV92 MiA9IGhhbmRsZXI7CisgIHJldHVybiBMRFBTX09LOworfQorCiBzdGF0aWMgZW51bSBsZF9w bHVnaW5fc3RhdHVzCiBhZGRfc3ltYm9scyAodm9pZCAqIGhhbmRsZSwKIAkgICAgIGludCBu c3ltcywKQEAgLTMzNyw3ICszNDgsNyBAQCB0cnlfbG9hZF9wbHVnaW4gKGNvbnN0IGNoYXIg KnBuYW1lLAogCQkgYm9vbCBidWlsZF9saXN0X3ApCiB7CiAgIHZvaWQgKnBsdWdpbl9oYW5k bGU7Ci0gIHN0cnVjdCBsZF9wbHVnaW5fdHYgdHZbNV07CisgIHN0cnVjdCBsZF9wbHVnaW5f dHYgdHZbNl07CiAgIGludCBpOwogICBsZF9wbHVnaW5fb25sb2FkIG9ubG9hZDsKICAgZW51 bSBsZF9wbHVnaW5fc3RhdHVzIHN0YXR1czsKQEAgLTQwMiw2ICs0MTMsMTAgQEAgdHJ5X2xv YWRfcGx1Z2luIChjb25zdCBjaGFyICpwbmFtZSwKICAgdHZbaV0udHZfdGFnID0gTERQVF9S RUdJU1RFUl9DTEFJTV9GSUxFX0hPT0s7CiAgIHR2W2ldLnR2X3UudHZfcmVnaXN0ZXJfY2xh aW1fZmlsZSA9IHJlZ2lzdGVyX2NsYWltX2ZpbGU7CiAKKyAgKytpOworICB0dltpXS50dl90 YWcgPSBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PS19WMjsKKyAgdHZbaV0udHZfdS50 dl9yZWdpc3Rlcl9jbGFpbV9maWxlX3YyID0gcmVnaXN0ZXJfY2xhaW1fZmlsZV92MjsKKwog ICArK2k7CiAgIHR2W2ldLnR2X3RhZyA9IExEUFRfQUREX1NZTUJPTFM7CiAgIHR2W2ldLnR2 X3UudHZfYWRkX3N5bWJvbHMgPSBhZGRfc3ltYm9sczsKQEAgLTQzOSw3ICs0NTQsNyBAQCB0 cnlfbG9hZF9wbHVnaW4gKGNvbnN0IGNoYXIgKnBuYW1lLAogLyogVGhlcmUgbWF5IGJlIHBs dWdpbiBsaWJyYXJpZXMgaW4gbGliL2JmZC1wbHVnaW5zLiAgKi8KIHN0YXRpYyBpbnQgaGFz X3BsdWdpbl9saXN0ID0gLTE7CiAKLXN0YXRpYyBiZmRfY2xlYW51cCAoKmxkX3BsdWdpbl9v YmplY3RfcCkgKGJmZCAqKTsKK3N0YXRpYyBiZmRfY2xlYW51cCAoKmxkX3BsdWdpbl9vYmpl Y3RfcCkgKGJmZCAqLCBib29sKTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKnBsdWdpbl9uYW1l OwogCkBAIC00NjMsNyArNDc4LDcgQEAgYm9vbAogYmZkX2xpbmtfcGx1Z2luX29iamVjdF9w IChiZmQgKmFiZmQpCiB7CiAgIGlmIChsZF9wbHVnaW5fb2JqZWN0X3ApCi0gICAgcmV0dXJu IGxkX3BsdWdpbl9vYmplY3RfcCAoYWJmZCkgIT0gTlVMTDsKKyAgICByZXR1cm4gbGRfcGx1 Z2luX29iamVjdF9wIChhYmZkLCBmYWxzZSkgIT0gTlVMTDsKICAgcmV0dXJuIGZhbHNlOwog fQogCkBAIC00ODAsNyArNDk1LDcgQEAgYmZkX3BsdWdpbl90YXJnZXRfcCAoY29uc3QgYmZk X3RhcmdldCAqdGFyZ2V0KQogLyogUmVnaXN0ZXIgT0JKRUNUX1AgdG8gYmUgdXNlZCBieSBi ZmRfcGx1Z2luX29iamVjdF9wLiAgKi8KIAogdm9pZAotcmVnaXN0ZXJfbGRfcGx1Z2luX29i amVjdF9wIChiZmRfY2xlYW51cCAoKm9iamVjdF9wKSAoYmZkICopKQorcmVnaXN0ZXJfbGRf cGx1Z2luX29iamVjdF9wIChiZmRfY2xlYW51cCAoKm9iamVjdF9wKSAoYmZkICosIGJvb2wp KQogewogICBsZF9wbHVnaW5fb2JqZWN0X3AgPSBvYmplY3RfcDsKIH0KQEAgLTU3Miw3ICs1 ODcsNyBAQCBzdGF0aWMgYmZkX2NsZWFudXAKIGJmZF9wbHVnaW5fb2JqZWN0X3AgKGJmZCAq YWJmZCkKIHsKICAgaWYgKGxkX3BsdWdpbl9vYmplY3RfcCkKLSAgICByZXR1cm4gbGRfcGx1 Z2luX29iamVjdF9wIChhYmZkKTsKKyAgICByZXR1cm4gbGRfcGx1Z2luX29iamVjdF9wIChh YmZkLCBmYWxzZSk7CiAKICAgaWYgKGFiZmQtPnBsdWdpbl9mb3JtYXQgPT0gYmZkX3BsdWdp bl91bmtub3duICYmICFsb2FkX3BsdWdpbiAoYWJmZCkpCiAgICAgcmV0dXJuIE5VTEw7CmRp ZmYgLS1naXQgYS9iZmQvcGx1Z2luLmggYi9iZmQvcGx1Z2luLmgKaW5kZXggOGRhNDM2YTg2 YjkuLjZhNmYwZjE5ZmMyIDEwMDY0NAotLS0gYS9iZmQvcGx1Z2luLmgKKysrIGIvYmZkL3Bs dWdpbi5oCkBAIC0yNyw3ICsyNyw3IEBAIHZvaWQgYmZkX3BsdWdpbl9zZXRfcGx1Z2luIChj b25zdCBjaGFyICopOwogYm9vbCBiZmRfcGx1Z2luX3RhcmdldF9wIChjb25zdCBiZmRfdGFy Z2V0ICopOwogYm9vbCBiZmRfcGx1Z2luX3NwZWNpZmllZF9wICh2b2lkKTsKIGJvb2wgYmZk X2xpbmtfcGx1Z2luX29iamVjdF9wIChiZmQgKik7Ci12b2lkIHJlZ2lzdGVyX2xkX3BsdWdp bl9vYmplY3RfcCAoYmZkX2NsZWFudXAgKCpvYmplY3RfcCkgKGJmZCAqKSk7Cit2b2lkIHJl Z2lzdGVyX2xkX3BsdWdpbl9vYmplY3RfcCAoYmZkX2NsZWFudXAgKCpvYmplY3RfcCkgKGJm ZCAqLCBib29sKSk7CiB2b2lkIGJmZF9wbHVnaW5fY2xvc2VfZmlsZV9kZXNjcmlwdG9yIChi ZmQgKiwgaW50KTsKIAogdHlwZWRlZiBzdHJ1Y3QgcGx1Z2luX2RhdGFfc3RydWN0CmRpZmYg LS1naXQgYS9pbmNsdWRlL3BsdWdpbi1hcGkuaCBiL2luY2x1ZGUvcGx1Z2luLWFwaS5oCmlu ZGV4IDM3OTgyOGJhODU0Li4zOTVkNWJjYzU5OCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wbHVn aW4tYXBpLmgKKysrIGIvaW5jbHVkZS9wbHVnaW4tYXBpLmgKQEAgLTI2MCw2ICsyNjAsMTMg QEAgZW51bSBsZF9wbHVnaW5fc3RhdHVzCiAoKmxkX3BsdWdpbl9jbGFpbV9maWxlX2hhbmRs ZXIpICgKICAgY29uc3Qgc3RydWN0IGxkX3BsdWdpbl9pbnB1dF9maWxlICpmaWxlLCBpbnQg KmNsYWltZWQpOwogCisvKiBUaGUgcGx1Z2luIGxpYnJhcnkncyAiY2xhaW0gZmlsZSIgaGFu ZGxlciwgdmVyc2lvbiAyLiAgKi8KKwordHlwZWRlZgorZW51bSBsZF9wbHVnaW5fc3RhdHVz CisoKmxkX3BsdWdpbl9jbGFpbV9maWxlX2hhbmRsZXJfdjIpICgKKyAgY29uc3Qgc3RydWN0 IGxkX3BsdWdpbl9pbnB1dF9maWxlICpmaWxlLCBpbnQgKmNsYWltZWQsIGludCBrbm93bl91 c2VkKTsKKwogLyogVGhlIHBsdWdpbiBsaWJyYXJ5J3MgImFsbCBzeW1ib2xzIHJlYWQiIGhh bmRsZXIuICAqLwogCiB0eXBlZGVmCkBAIC0yNzgsNiArMjg1LDEzIEBAIHR5cGVkZWYKIGVu dW0gbGRfcGx1Z2luX3N0YXR1cwogKCpsZF9wbHVnaW5fcmVnaXN0ZXJfY2xhaW1fZmlsZSkg KGxkX3BsdWdpbl9jbGFpbV9maWxlX2hhbmRsZXIgaGFuZGxlcik7CiAKKy8qIFRoZSBsaW5r ZXIncyBpbnRlcmZhY2UgZm9yIHJlZ2lzdGVyaW5nIHRoZSAiY2xhaW0gZmlsZSIgaGFuZGxl ciwKKyAgIHZlcnNpb24gMi4gICovCisKK3R5cGVkZWYKK2VudW0gbGRfcGx1Z2luX3N0YXR1 cworKCpsZF9wbHVnaW5fcmVnaXN0ZXJfY2xhaW1fZmlsZV92MikgKGxkX3BsdWdpbl9jbGFp bV9maWxlX2hhbmRsZXJfdjIgaGFuZGxlcik7CisKIC8qIFRoZSBsaW5rZXIncyBpbnRlcmZh Y2UgZm9yIHJlZ2lzdGVyaW5nIHRoZSAiYWxsIHN5bWJvbHMgcmVhZCIgaGFuZGxlci4gICov CiAKIHR5cGVkZWYKQEAgLTU1Myw2ICs1NjcsNyBAQCBlbnVtIGxkX3BsdWdpbl90YWcKICAg TERQVF9HRVRfV1JBUF9TWU1CT0xTLAogICBMRFBUX0FERF9TWU1CT0xTX1YyLAogICBMRFBU X0dFVF9BUElfVkVSU0lPTiwKKyAgTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0tfVjIK IH07CiAKIC8qIFRoZSBwbHVnaW4gdHJhbnNmZXIgdmVjdG9yLiAgKi8KQEAgLTU2NSw2ICs1 ODAsNyBAQCBzdHJ1Y3QgbGRfcGx1Z2luX3R2CiAgICAgaW50IHR2X3ZhbDsKICAgICBjb25z dCBjaGFyICp0dl9zdHJpbmc7CiAgICAgbGRfcGx1Z2luX3JlZ2lzdGVyX2NsYWltX2ZpbGUg dHZfcmVnaXN0ZXJfY2xhaW1fZmlsZTsKKyAgICBsZF9wbHVnaW5fcmVnaXN0ZXJfY2xhaW1f ZmlsZV92MiB0dl9yZWdpc3Rlcl9jbGFpbV9maWxlX3YyOwogICAgIGxkX3BsdWdpbl9yZWdp c3Rlcl9hbGxfc3ltYm9sc19yZWFkIHR2X3JlZ2lzdGVyX2FsbF9zeW1ib2xzX3JlYWQ7CiAg ICAgbGRfcGx1Z2luX3JlZ2lzdGVyX2NsZWFudXAgdHZfcmVnaXN0ZXJfY2xlYW51cDsKICAg ICBsZF9wbHVnaW5fYWRkX3N5bWJvbHMgdHZfYWRkX3N5bWJvbHM7CmRpZmYgLS1naXQgYS9s ZC9wbHVnaW4uYyBiL2xkL3BsdWdpbi5jCmluZGV4IDM0YWVmYzU4NGNjLi45NzBjZjU2NmZm ZSAxMDA2NDQKLS0tIGEvbGQvcGx1Z2luLmMKKysrIGIvbGQvcGx1Z2luLmMKQEAgLTg3LDYg Kzg3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgcGx1Z2luCiAgIHNpemVfdCBuX2FyZ3M7CiAgIC8q IFRoZSBwbHVnaW4ncyBldmVudCBoYW5kbGVycy4gICovCiAgIGxkX3BsdWdpbl9jbGFpbV9m aWxlX2hhbmRsZXIgY2xhaW1fZmlsZV9oYW5kbGVyOworICBsZF9wbHVnaW5fY2xhaW1fZmls ZV9oYW5kbGVyX3YyIGNsYWltX2ZpbGVfaGFuZGxlcl92MjsKICAgbGRfcGx1Z2luX2FsbF9z eW1ib2xzX3JlYWRfaGFuZGxlciBhbGxfc3ltYm9sc19yZWFkX2hhbmRsZXI7CiAgIGxkX3Bs dWdpbl9jbGVhbnVwX2hhbmRsZXIgY2xlYW51cF9oYW5kbGVyOwogICAvKiBUUlVFIGlmIHRo ZSBjbGVhbnVwIGhhbmRsZXJzIGhhdmUgYmVlbiBjYWxsZWQuICAqLwpAQCAtMTU5LDYgKzE2 MCw3IEBAIHN0YXRpYyBjb25zdCBlbnVtIGxkX3BsdWdpbl90YWcgdHZfaGVhZGVyX3RhZ3Nb XSA9CiAgIExEUFRfTElOS0VSX09VVFBVVCwKICAgTERQVF9PVVRQVVRfTkFNRSwKICAgTERQ VF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0ssCisgIExEUFRfUkVHSVNURVJfQ0xBSU1fRklM RV9IT09LX1YyLAogICBMRFBUX1JFR0lTVEVSX0FMTF9TWU1CT0xTX1JFQURfSE9PSywKICAg TERQVF9SRUdJU1RFUl9DTEVBTlVQX0hPT0ssCiAgIExEUFRfQUREX1NZTUJPTFMsCkBAIC0x ODEsNyArMTgzLDcgQEAgc3RhdGljIGJvb2wgcGx1Z2luX25vdGljZSAoc3RydWN0IGJmZF9s aW5rX2luZm8gKiwKIAkJCSAgIHN0cnVjdCBiZmRfbGlua19oYXNoX2VudHJ5ICosCiAJCQkg ICBiZmQgKiwgYXNlY3Rpb24gKiwgYmZkX3ZtYSwgZmxhZ3dvcmQpOwogCi1zdGF0aWMgYmZk X2NsZWFudXAgcGx1Z2luX29iamVjdF9wIChiZmQgKik7CitzdGF0aWMgYmZkX2NsZWFudXAg cGx1Z2luX29iamVjdF9wIChiZmQgKiwgYm9vbCk7CiAKICNpZiAhZGVmaW5lZCAoSEFWRV9E TEZDTl9IKSAmJiBkZWZpbmVkIChIQVZFX1dJTkRPV1NfSCkKIApAQCAtNDY3LDYgKzQ2OSwx NSBAQCByZWdpc3Rlcl9jbGFpbV9maWxlIChsZF9wbHVnaW5fY2xhaW1fZmlsZV9oYW5kbGVy IGhhbmRsZXIpCiAgIHJldHVybiBMRFBTX09LOwogfQogCisvKiBSZWdpc3RlciBhIGNsYWlt LWZpbGUgdmVyc2lvbiAyIGhhbmRsZXIuICAqLworc3RhdGljIGVudW0gbGRfcGx1Z2luX3N0 YXR1cworcmVnaXN0ZXJfY2xhaW1fZmlsZV92MiAobGRfcGx1Z2luX2NsYWltX2ZpbGVfaGFu ZGxlcl92MiBoYW5kbGVyKQoreworICBBU1NFUlQgKGNhbGxlZF9wbHVnaW4pOworICBjYWxs ZWRfcGx1Z2luLT5jbGFpbV9maWxlX2hhbmRsZXJfdjIgPSBoYW5kbGVyOworICByZXR1cm4g TERQU19PSzsKK30KKwogLyogUmVnaXN0ZXIgYW4gYWxsLXN5bWJvbHMtcmVhZCBoYW5kbGVy LiAgKi8KIHN0YXRpYyBlbnVtIGxkX3BsdWdpbl9zdGF0dXMKIHJlZ2lzdGVyX2FsbF9zeW1i b2xzX3JlYWQgKGxkX3BsdWdpbl9hbGxfc3ltYm9sc19yZWFkX2hhbmRsZXIgaGFuZGxlcikK QEAgLTEwMTksNiArMTAzMCw5IEBAIHNldF90dl9oZWFkZXIgKHN0cnVjdCBsZF9wbHVnaW5f dHYgKnR2KQogCWNhc2UgTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0s6CiAJICBUVlUo cmVnaXN0ZXJfY2xhaW1fZmlsZSkgPSByZWdpc3Rlcl9jbGFpbV9maWxlOwogCSAgYnJlYWs7 CisJY2FzZSBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PS19WMjoKKwkgIFRWVShyZWdp c3Rlcl9jbGFpbV9maWxlX3YyKSA9IHJlZ2lzdGVyX2NsYWltX2ZpbGVfdjI7CisJICBicmVh azsKIAljYXNlIExEUFRfUkVHSVNURVJfQUxMX1NZTUJPTFNfUkVBRF9IT09LOgogCSAgVFZV KHJlZ2lzdGVyX2FsbF9zeW1ib2xzX3JlYWQpID0gcmVnaXN0ZXJfYWxsX3N5bWJvbHNfcmVh ZDsKIAkgIGJyZWFrOwpAQCAtMTE0NCw3ICsxMTU4LDggQEAgcGx1Z2luX2xvYWRfcGx1Z2lu cyAodm9pZCkKIAogLyogQ2FsbCAnY2xhaW0gZmlsZScgaG9vayBmb3IgYWxsIHBsdWdpbnMu ICAqLwogc3RhdGljIGludAotcGx1Z2luX2NhbGxfY2xhaW1fZmlsZSAoY29uc3Qgc3RydWN0 IGxkX3BsdWdpbl9pbnB1dF9maWxlICpmaWxlLCBpbnQgKmNsYWltZWQpCitwbHVnaW5fY2Fs bF9jbGFpbV9maWxlIChjb25zdCBzdHJ1Y3QgbGRfcGx1Z2luX2lucHV0X2ZpbGUgKmZpbGUs IGludCAqY2xhaW1lZCwKKwkJCWJvb2wga25vd25fdXNlZCkKIHsKICAgcGx1Z2luX3QgKmN1 cnBsdWcgPSBwbHVnaW5zX2xpc3Q7CiAgICpjbGFpbWVkID0gZmFsc2U7CkBAIC0xMTU1LDcg KzExNzAsMTAgQEAgcGx1Z2luX2NhbGxfY2xhaW1fZmlsZSAoY29uc3Qgc3RydWN0IGxkX3Bs dWdpbl9pbnB1dF9maWxlICpmaWxlLCBpbnQgKmNsYWltZWQpCiAJICBlbnVtIGxkX3BsdWdp bl9zdGF0dXMgcnY7CiAKIAkgIGNhbGxlZF9wbHVnaW4gPSBjdXJwbHVnOwotCSAgcnYgPSAo KmN1cnBsdWctPmNsYWltX2ZpbGVfaGFuZGxlcikgKGZpbGUsIGNsYWltZWQpOworCSAgaWYg KGN1cnBsdWctPmNsYWltX2ZpbGVfaGFuZGxlcl92MikKKwkgICAgcnYgPSAoKmN1cnBsdWct PmNsYWltX2ZpbGVfaGFuZGxlcl92MikgKGZpbGUsIGNsYWltZWQsIGtub3duX3VzZWQpOwor CSAgZWxzZQorCSAgICBydiA9ICgqY3VycGx1Zy0+Y2xhaW1fZmlsZV9oYW5kbGVyKSAoZmls ZSwgY2xhaW1lZCk7CiAJICBjYWxsZWRfcGx1Z2luID0gTlVMTDsKIAkgIGlmIChydiAhPSBM RFBTX09LKQogCSAgICBzZXRfcGx1Z2luX2Vycm9yIChjdXJwbHVnLT5uYW1lKTsKQEAgLTEx ODcsNyArMTIwNSw3IEBAIHBsdWdpbl9jbGVhbnVwIChiZmQgKmFiZmQgQVRUUklCVVRFX1VO VVNFRCkKIH0KIAogc3RhdGljIGJmZF9jbGVhbnVwCi1wbHVnaW5fb2JqZWN0X3AgKGJmZCAq aWJmZCkKK3BsdWdpbl9vYmplY3RfcCAoYmZkICppYmZkLCBib29sIGtub3duX3VzZWQpCiB7 CiAgIGludCBjbGFpbWVkOwogICBwbHVnaW5faW5wdXRfZmlsZV90ICppbnB1dDsKQEAgLTEy MzksNyArMTI1Nyw3IEBAIHBsdWdpbl9vYmplY3RfcCAoYmZkICppYmZkKQogCiAgIGNsYWlt ZWQgPSAwOwogCi0gIGlmIChwbHVnaW5fY2FsbF9jbGFpbV9maWxlICgmZmlsZSwgJmNsYWlt ZWQpKQorICBpZiAocGx1Z2luX2NhbGxfY2xhaW1fZmlsZSAoJmZpbGUsICZjbGFpbWVkLCBr bm93bl91c2VkKSkKICAgICBlaW5mbyAoXygiJUYlUDogJXM6IHBsdWdpbiByZXBvcnRlZCBl cnJvciBjbGFpbWluZyBmaWxlXG4iKSwKIAkgICBwbHVnaW5fZXJyb3JfcGx1Z2luICgpKTsK IApAQCAtMTI5NCw3ICsxMzEyLDcgQEAgdm9pZAogcGx1Z2luX21heWJlX2NsYWltIChsYW5n X2lucHV0X3N0YXRlbWVudF90eXBlICplbnRyeSkKIHsKICAgQVNTRVJUIChlbnRyeS0+aGVh ZGVyLnR5cGUgPT0gbGFuZ19pbnB1dF9zdGF0ZW1lbnRfZW51bSk7Ci0gIGlmIChwbHVnaW5f b2JqZWN0X3AgKGVudHJ5LT50aGVfYmZkKSkKKyAgaWYgKHBsdWdpbl9vYmplY3RfcCAoZW50 cnktPnRoZV9iZmQsIHRydWUpKQogICAgIHsKICAgICAgIGJmZCAqYWJmZCA9IGVudHJ5LT50 aGVfYmZkLT5wbHVnaW5fZHVtbXlfYmZkOwogCmRpZmYgLS1naXQgYS9sZC90ZXN0cGx1Zy5j IGIvbGQvdGVzdHBsdWcuYwppbmRleCA3OTZkNjdmZTA1Ni4uNGIxYmI4ZWNkYmUgMTAwNjQ0 Ci0tLSBhL2xkL3Rlc3RwbHVnLmMKKysrIGIvbGQvdGVzdHBsdWcuYwpAQCAtODIsNiArODIs NyBAQCBzdGF0aWMgY29uc3QgdGFnX25hbWVfdCB0YWdfbmFtZXNbXSA9CiAgIEFEREVOVFJZ KExEUFRfTElOS0VSX09VVFBVVCksCiAgIEFEREVOVFJZKExEUFRfT1BUSU9OKSwKICAgQURE RU5UUlkoTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0spLAorICBBRERFTlRSWShMRFBU X1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PS19WMiksCiAgIEFEREVOVFJZKExEUFRfUkVHSVNU RVJfQUxMX1NZTUJPTFNfUkVBRF9IT09LKSwKICAgQURERU5UUlkoTERQVF9SRUdJU1RFUl9D TEVBTlVQX0hPT0spLAogICBBRERFTlRSWShMRFBUX0FERF9TWU1CT0xTKSwKQEAgLTEwMCw2 ICsxMDEsNyBAQCBzdGF0aWMgY29uc3QgdGFnX25hbWVfdCB0YWdfbmFtZXNbXSA9CiAKIC8q IEZ1bmN0aW9uIHBvaW50ZXJzIHRvIGNhY2hlIGhvb2tzIHBhc3NlZCBhdCBvbmxvYWQgdGlt ZS4gICovCiBzdGF0aWMgbGRfcGx1Z2luX3JlZ2lzdGVyX2NsYWltX2ZpbGUgdHZfcmVnaXN0 ZXJfY2xhaW1fZmlsZSA9IDA7CitzdGF0aWMgbGRfcGx1Z2luX3JlZ2lzdGVyX2NsYWltX2Zp bGVfdjIgdHZfcmVnaXN0ZXJfY2xhaW1fZmlsZV92MiA9IDA7CiBzdGF0aWMgbGRfcGx1Z2lu X3JlZ2lzdGVyX2FsbF9zeW1ib2xzX3JlYWQgdHZfcmVnaXN0ZXJfYWxsX3N5bWJvbHNfcmVh ZCA9IDA7CiBzdGF0aWMgbGRfcGx1Z2luX3JlZ2lzdGVyX2NsZWFudXAgdHZfcmVnaXN0ZXJf Y2xlYW51cCA9IDA7CiBzdGF0aWMgbGRfcGx1Z2luX2FkZF9zeW1ib2xzIHR2X2FkZF9zeW1i b2xzID0gMDsKQEAgLTM4OSw2ICszOTEsNyBAQCBkdW1wX3R2X3RhZyAoc2l6ZV90IG4sIHN0 cnVjdCBsZF9wbHVnaW5fdHYgKnR2KQogCQkgICAgdHYtPnR2X3UudHZfc3RyaW5nKTsKICAg ICAgICAgYnJlYWs7CiAgICAgICBjYXNlIExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09L OgorICAgICAgY2FzZSBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PS19WMjoKICAgICAg IGNhc2UgTERQVF9SRUdJU1RFUl9BTExfU1lNQk9MU19SRUFEX0hPT0s6CiAgICAgICBjYXNl IExEUFRfUkVHSVNURVJfQ0xFQU5VUF9IT09LOgogICAgICAgY2FzZSBMRFBUX0FERF9TWU1C T0xTOgpAQCAtNDQwLDYgKzQ0Myw5IEBAIHBhcnNlX3R2X3RhZyAoc3RydWN0IGxkX3BsdWdp bl90diAqdHYpCiAgICAgICBjYXNlIExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LOgog CVNFVFZBUih0dl9yZWdpc3Rlcl9jbGFpbV9maWxlKTsKIAlicmVhazsKKyAgICAgIGNhc2Ug TERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0tfVjI6CisJU0VUVkFSKHR2X3JlZ2lzdGVy X2NsYWltX2ZpbGVfdjIpOworCWJyZWFrOwogICAgICAgY2FzZSBMRFBUX1JFR0lTVEVSX0FM TF9TWU1CT0xTX1JFQURfSE9PSzoKIAlTRVRWQVIodHZfcmVnaXN0ZXJfYWxsX3N5bWJvbHNf cmVhZCk7CiAJYnJlYWs7CmRpZmYgLS1naXQgYS9sZC90ZXN0cGx1ZzIuYyBiL2xkL3Rlc3Rw bHVnMi5jCmluZGV4IDBhMzMzOTIzOGYwLi5mMWQ2ZjVmOTU1MyAxMDA2NDQKLS0tIGEvbGQv dGVzdHBsdWcyLmMKKysrIGIvbGQvdGVzdHBsdWcyLmMKQEAgLTgyLDYgKzgyLDcgQEAgc3Rh dGljIGNvbnN0IHRhZ19uYW1lX3QgdGFnX25hbWVzW10gPQogICBBRERFTlRSWShMRFBUX0xJ TktFUl9PVVRQVVQpLAogICBBRERFTlRSWShMRFBUX09QVElPTiksCiAgIEFEREVOVFJZKExE UFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LKSwKKyAgQURERU5UUlkoTERQVF9SRUdJU1RF Ul9DTEFJTV9GSUxFX0hPT0tfVjIpLAogICBBRERFTlRSWShMRFBUX1JFR0lTVEVSX0FMTF9T WU1CT0xTX1JFQURfSE9PSyksCiAgIEFEREVOVFJZKExEUFRfUkVHSVNURVJfQ0xFQU5VUF9I T09LKSwKICAgQURERU5UUlkoTERQVF9BRERfU1lNQk9MUyksCkBAIC0xMDAsNiArMTAxLDcg QEAgc3RhdGljIGNvbnN0IHRhZ19uYW1lX3QgdGFnX25hbWVzW10gPQogCiAvKiBGdW5jdGlv biBwb2ludGVycyB0byBjYWNoZSBob29rcyBwYXNzZWQgYXQgb25sb2FkIHRpbWUuICAqLwog c3RhdGljIGxkX3BsdWdpbl9yZWdpc3Rlcl9jbGFpbV9maWxlIHR2X3JlZ2lzdGVyX2NsYWlt X2ZpbGUgPSAwOworc3RhdGljIGxkX3BsdWdpbl9yZWdpc3Rlcl9jbGFpbV9maWxlX3YyIHR2 X3JlZ2lzdGVyX2NsYWltX2ZpbGVfdjIgPSAwOwogc3RhdGljIGxkX3BsdWdpbl9yZWdpc3Rl cl9hbGxfc3ltYm9sc19yZWFkIHR2X3JlZ2lzdGVyX2FsbF9zeW1ib2xzX3JlYWQgPSAwOwog c3RhdGljIGxkX3BsdWdpbl9yZWdpc3Rlcl9jbGVhbnVwIHR2X3JlZ2lzdGVyX2NsZWFudXAg PSAwOwogc3RhdGljIGxkX3BsdWdpbl9hZGRfc3ltYm9scyB0dl9hZGRfc3ltYm9scyA9IDA7 CkBAIC0zOTIsNiArMzk0LDkgQEAgcGFyc2VfdHZfdGFnIChzdHJ1Y3QgbGRfcGx1Z2luX3R2 ICp0dikKICAgICAgIGNhc2UgTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0s6CiAJU0VU VkFSKHR2X3JlZ2lzdGVyX2NsYWltX2ZpbGUpOwogCWJyZWFrOworICAgICAgY2FzZSBMRFBU X1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PS19WMjoKKwlTRVRWQVIodHZfcmVnaXN0ZXJfY2xh aW1fZmlsZV92Mik7CisJYnJlYWs7CiAgICAgICBjYXNlIExEUFRfUkVHSVNURVJfQUxMX1NZ TUJPTFNfUkVBRF9IT09LOgogCVNFVFZBUih0dl9yZWdpc3Rlcl9hbGxfc3ltYm9sc19yZWFk KTsKIAlicmVhazsKZGlmZiAtLWdpdCBhL2xkL3Rlc3RwbHVnMy5jIGIvbGQvdGVzdHBsdWcz LmMKaW5kZXggN2UwMDllMWVlN2EuLjY1MmQxMWY0NzEwIDEwMDY0NAotLS0gYS9sZC90ZXN0 cGx1ZzMuYworKysgYi9sZC90ZXN0cGx1ZzMuYwpAQCAtODIsNiArODIsNyBAQCBzdGF0aWMg Y29uc3QgdGFnX25hbWVfdCB0YWdfbmFtZXNbXSA9CiAgIEFEREVOVFJZKExEUFRfTElOS0VS X09VVFBVVCksCiAgIEFEREVOVFJZKExEUFRfT1BUSU9OKSwKICAgQURERU5UUlkoTERQVF9S RUdJU1RFUl9DTEFJTV9GSUxFX0hPT0spLAorICBBRERFTlRSWShMRFBUX1JFR0lTVEVSX0NM QUlNX0ZJTEVfSE9PS19WMiksCiAgIEFEREVOVFJZKExEUFRfUkVHSVNURVJfQUxMX1NZTUJP TFNfUkVBRF9IT09LKSwKICAgQURERU5UUlkoTERQVF9SRUdJU1RFUl9DTEVBTlVQX0hPT0sp LAogICBBRERFTlRSWShMRFBUX0FERF9TWU1CT0xTKSwKQEAgLTEwMCw2ICsxMDEsNyBAQCBz dGF0aWMgY29uc3QgdGFnX25hbWVfdCB0YWdfbmFtZXNbXSA9CiAKIC8qIEZ1bmN0aW9uIHBv aW50ZXJzIHRvIGNhY2hlIGhvb2tzIHBhc3NlZCBhdCBvbmxvYWQgdGltZS4gICovCiBzdGF0 aWMgbGRfcGx1Z2luX3JlZ2lzdGVyX2NsYWltX2ZpbGUgdHZfcmVnaXN0ZXJfY2xhaW1fZmls ZSA9IDA7CitzdGF0aWMgbGRfcGx1Z2luX3JlZ2lzdGVyX2NsYWltX2ZpbGVfdjIgdHZfcmVn aXN0ZXJfY2xhaW1fZmlsZV92MiA9IDA7CiBzdGF0aWMgbGRfcGx1Z2luX3JlZ2lzdGVyX2Fs bF9zeW1ib2xzX3JlYWQgdHZfcmVnaXN0ZXJfYWxsX3N5bWJvbHNfcmVhZCA9IDA7CiBzdGF0 aWMgbGRfcGx1Z2luX3JlZ2lzdGVyX2NsZWFudXAgdHZfcmVnaXN0ZXJfY2xlYW51cCA9IDA7 CiBzdGF0aWMgbGRfcGx1Z2luX2FkZF9zeW1ib2xzIHR2X2FkZF9zeW1ib2xzID0gMDsKQEAg LTM3MSw2ICszNzMsOSBAQCBwYXJzZV90dl90YWcgKHN0cnVjdCBsZF9wbHVnaW5fdHYgKnR2 KQogICAgICAgY2FzZSBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PSzoKIAlTRVRWQVIo dHZfcmVnaXN0ZXJfY2xhaW1fZmlsZSk7CiAJYnJlYWs7CisgICAgICBjYXNlIExEUFRfUkVH SVNURVJfQ0xBSU1fRklMRV9IT09LX1YyOgorCVNFVFZBUih0dl9yZWdpc3Rlcl9jbGFpbV9m aWxlX3YyKTsKKwlicmVhazsKICAgICAgIGNhc2UgTERQVF9SRUdJU1RFUl9BTExfU1lNQk9M U19SRUFEX0hPT0s6CiAJU0VUVkFSKHR2X3JlZ2lzdGVyX2FsbF9zeW1ib2xzX3JlYWQpOwog CWJyZWFrOwpkaWZmIC0tZ2l0IGEvbGQvdGVzdHBsdWc0LmMgYi9sZC90ZXN0cGx1ZzQuYwpp bmRleCAxMDlkNTAwZGMwYS4uOWI2M2U4MzQzYzggMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RwbHVn NC5jCisrKyBiL2xkL3Rlc3RwbHVnNC5jCkBAIC04Miw2ICs4Miw3IEBAIHN0YXRpYyBjb25z dCB0YWdfbmFtZV90IHRhZ19uYW1lc1tdID0KICAgQURERU5UUlkoTERQVF9MSU5LRVJfT1VU UFVUKSwKICAgQURERU5UUlkoTERQVF9PUFRJT04pLAogICBBRERFTlRSWShMRFBUX1JFR0lT VEVSX0NMQUlNX0ZJTEVfSE9PSyksCisgIEFEREVOVFJZKExEUFRfUkVHSVNURVJfQ0xBSU1f RklMRV9IT09LX1YyKSwKICAgQURERU5UUlkoTERQVF9SRUdJU1RFUl9BTExfU1lNQk9MU19S RUFEX0hPT0spLAogICBBRERFTlRSWShMRFBUX1JFR0lTVEVSX0NMRUFOVVBfSE9PSyksCiAg IEFEREVOVFJZKExEUFRfQUREX1NZTUJPTFMpLApAQCAtMTAwLDYgKzEwMSw3IEBAIHN0YXRp YyBjb25zdCB0YWdfbmFtZV90IHRhZ19uYW1lc1tdID0KIAogLyogRnVuY3Rpb24gcG9pbnRl cnMgdG8gY2FjaGUgaG9va3MgcGFzc2VkIGF0IG9ubG9hZCB0aW1lLiAgKi8KIHN0YXRpYyBs ZF9wbHVnaW5fcmVnaXN0ZXJfY2xhaW1fZmlsZSB0dl9yZWdpc3Rlcl9jbGFpbV9maWxlID0g MDsKK3N0YXRpYyBsZF9wbHVnaW5fcmVnaXN0ZXJfY2xhaW1fZmlsZV92MiB0dl9yZWdpc3Rl cl9jbGFpbV9maWxlX3YyID0gMDsKIHN0YXRpYyBsZF9wbHVnaW5fcmVnaXN0ZXJfYWxsX3N5 bWJvbHNfcmVhZCB0dl9yZWdpc3Rlcl9hbGxfc3ltYm9sc19yZWFkID0gMDsKIHN0YXRpYyBs ZF9wbHVnaW5fcmVnaXN0ZXJfY2xlYW51cCB0dl9yZWdpc3Rlcl9jbGVhbnVwID0gMDsKIHN0 YXRpYyBsZF9wbHVnaW5fYWRkX3N5bWJvbHMgdHZfYWRkX3N5bWJvbHMgPSAwOwpAQCAtMzky LDYgKzM5NCw5IEBAIHBhcnNlX3R2X3RhZyAoc3RydWN0IGxkX3BsdWdpbl90diAqdHYpCiAg ICAgICBjYXNlIExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LOgogCVNFVFZBUih0dl9y ZWdpc3Rlcl9jbGFpbV9maWxlKTsKIAlicmVhazsKKyAgICAgIGNhc2UgTERQVF9SRUdJU1RF Ul9DTEFJTV9GSUxFX0hPT0tfVjI6CisJU0VUVkFSKHR2X3JlZ2lzdGVyX2NsYWltX2ZpbGVf djIpOworCWJyZWFrOwogICAgICAgY2FzZSBMRFBUX1JFR0lTVEVSX0FMTF9TWU1CT0xTX1JF QURfSE9PSzoKIAlTRVRWQVIodHZfcmVnaXN0ZXJfYWxsX3N5bWJvbHNfcmVhZCk7CiAJYnJl YWs7CmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xLmQgYi9s ZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xLmQKaW5kZXggNmFhZTRjZGMzODMuLjM4 MTk3NGZjYjQ5IDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0x LmQKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMS5kCkBAIC01LDYgKzUs NyBAQCBIZWxsbyBmcm9tIHRlc3RwbHVnaW4uCiAuKjogTERQVF9MSU5LRVJfT1VUUFVUIHZh bHVlICAgICAgICAweDEgXCgxXCkKIC4qOiBMRFBUX09VVFBVVF9OQU1FICd0bXBkaXIvbWFp bi54JwogLio6IExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LIGZ1bmNAMHguKgorLio6 IExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LX1YyIGZ1bmNAMHguKgogLio6IExEUFRf UkVHSVNURVJfQUxMX1NZTUJPTFNfUkVBRF9IT09LIGZ1bmNAMHguKgogLio6IExEUFRfUkVH SVNURVJfQ0xFQU5VUF9IT09LIGZ1bmNAMHguKgogLio6IExEUFRfQUREX1NZTUJPTFMgZnVu Y0AweC4qCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xMC5k IGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMTAuZAppbmRleCBmOTJlZTY1MGMx My4uZjZiYjBlYjQ1YzYgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1 Z2luLTEwLmQKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMTAuZApAQCAt NSw2ICs1LDcgQEAgSGVsbG8gZnJvbSB0ZXN0cGx1Z2luLgogLio6IExEUFRfTElOS0VSX09V VFBVVCB2YWx1ZSAgICAgICAgMHgxIFwoMVwpCiAuKjogTERQVF9PVVRQVVRfTkFNRSAndG1w ZGlyL21haW4ueCcKIC4qOiBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PSyBmdW5jQDB4 LioKKy4qOiBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PS19WMiBmdW5jQDB4LioKIC4q OiBMRFBUX1JFR0lTVEVSX0FMTF9TWU1CT0xTX1JFQURfSE9PSyBmdW5jQDB4LioKIC4qOiBM RFBUX1JFR0lTVEVSX0NMRUFOVVBfSE9PSyBmdW5jQDB4LioKIC4qOiBMRFBUX0FERF9TWU1C T0xTIGZ1bmNAMHguKgpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVn aW4tMTEuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTExLmQKaW5kZXggNmE1 YWJjZmMwNjAuLjYzYjgxNjAzNjg0IDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtcGx1 Z2luL3BsdWdpbi0xMS5kCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTEx LmQKQEAgLTUsNiArNSw3IEBAIEhlbGxvIGZyb20gdGVzdHBsdWdpbi4KIC4qOiBMRFBUX0xJ TktFUl9PVVRQVVQgdmFsdWUgICAgICAgIDB4MSBcKDFcKQogLio6IExEUFRfT1VUUFVUX05B TUUgJ3RtcGRpci9tYWluLngnCiAuKjogTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0sg ZnVuY0AweC4qCisuKjogTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0tfVjIgZnVuY0Aw eC4qCiAuKjogTERQVF9SRUdJU1RFUl9BTExfU1lNQk9MU19SRUFEX0hPT0sgZnVuY0AweC4q CiAuKjogTERQVF9SRUdJU1RFUl9DTEVBTlVQX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9B RERfU1lNQk9MUyBmdW5jQDB4LioKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVn aW4vcGx1Z2luLTEzLmQgYi9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xMy5kCmlu ZGV4IDU1ZGVhNjUxZWM1Li40NTIxYjM0NDU5YyAxMDA2NDQKLS0tIGEvbGQvdGVzdHN1aXRl L2xkLXBsdWdpbi9wbHVnaW4tMTMuZAorKysgYi9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3Bs dWdpbi0xMy5kCkBAIC01LDYgKzUsNyBAQCBIZWxsbyBmcm9tIHRlc3RwbHVnaW4uCiAuKjog TERQVF9MSU5LRVJfT1VUUFVUIHZhbHVlICAgICAgICAweDEgXCgxXCkKIC4qOiBMRFBUX09V VFBVVF9OQU1FICd0bXBkaXIvbWFpbi54JwogLio6IExEUFRfUkVHSVNURVJfQ0xBSU1fRklM RV9IT09LIGZ1bmNAMHguKgorLio6IExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LX1Yy IGZ1bmNAMHguKgogLio6IExEUFRfUkVHSVNURVJfQUxMX1NZTUJPTFNfUkVBRF9IT09LIGZ1 bmNAMHguKgogLio6IExEUFRfUkVHSVNURVJfQ0xFQU5VUF9IT09LIGZ1bmNAMHguKgogLio6 IExEUFRfQUREX1NZTUJPTFMgZnVuY0AweC4qCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUv bGQtcGx1Z2luL3BsdWdpbi0xNC5kIGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4t MTQuZAppbmRleCA4MTM2NWFmNzUyNC4uYmQ4ZWY2NWEyMDQgMTAwNjQ0Ci0tLSBhL2xkL3Rl c3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTE0LmQKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXBs dWdpbi9wbHVnaW4tMTQuZApAQCAtNSw2ICs1LDcgQEAgSGVsbG8gZnJvbSB0ZXN0cGx1Z2lu LgogLio6IExEUFRfTElOS0VSX09VVFBVVCB2YWx1ZSAgICAgICAgMHgxIFwoMVwpCiAuKjog TERQVF9PVVRQVVRfTkFNRSAndG1wZGlyL21haW4ueCcKIC4qOiBMRFBUX1JFR0lTVEVSX0NM QUlNX0ZJTEVfSE9PSyBmdW5jQDB4LioKKy4qOiBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVf SE9PS19WMiBmdW5jQDB4LioKIC4qOiBMRFBUX1JFR0lTVEVSX0FMTF9TWU1CT0xTX1JFQURf SE9PSyBmdW5jQDB4LioKIC4qOiBMRFBUX1JFR0lTVEVSX0NMRUFOVVBfSE9PSyBmdW5jQDB4 LioKIC4qOiBMRFBUX0FERF9TWU1CT0xTIGZ1bmNAMHguKgpkaWZmIC0tZ2l0IGEvbGQvdGVz dHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMTUuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4v cGx1Z2luLTE1LmQKaW5kZXggMDJjNWU2MGJmOWIuLjE2NDc1MDBlOThmIDEwMDY0NAotLS0g YS9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xNS5kCisrKyBiL2xkL3Rlc3RzdWl0 ZS9sZC1wbHVnaW4vcGx1Z2luLTE1LmQKQEAgLTUsNiArNSw3IEBAIEhlbGxvIGZyb20gdGVz dHBsdWdpbi4KIC4qOiBMRFBUX0xJTktFUl9PVVRQVVQgdmFsdWUgICAgICAgIDB4MSBcKDFc KQogLio6IExEUFRfT1VUUFVUX05BTUUgJ3RtcGRpci9tYWluLngnCiAuKjogTERQVF9SRUdJ U1RFUl9DTEFJTV9GSUxFX0hPT0sgZnVuY0AweC4qCisuKjogTERQVF9SRUdJU1RFUl9DTEFJ TV9GSUxFX0hPT0tfVjIgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9BTExfU1lNQk9M U19SRUFEX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9DTEVBTlVQX0hPT0sg ZnVuY0AweC4qCiAuKjogTERQVF9BRERfU1lNQk9MUyBmdW5jQDB4LioKZGlmZiAtLWdpdCBh L2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTE2LmQgYi9sZC90ZXN0c3VpdGUvbGQt cGx1Z2luL3BsdWdpbi0xNi5kCmluZGV4IDUwNGZiZGJjMGU5Li5mMWVlMDNhNDc2OCAxMDA2 NDQKLS0tIGEvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMTYuZAorKysgYi9sZC90 ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xNi5kCkBAIC01LDYgKzUsNyBAQCBIZWxsbyBm cm9tIHRlc3RwbHVnaW4uCiAuKjogTERQVF9MSU5LRVJfT1VUUFVUIHZhbHVlICAgICAgICAw eDEgXCgxXCkKIC4qOiBMRFBUX09VVFBVVF9OQU1FICd0bXBkaXIvbWFpbi54JwogLio6IExE UFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LIGZ1bmNAMHguKgorLio6IExEUFRfUkVHSVNU RVJfQ0xBSU1fRklMRV9IT09LX1YyIGZ1bmNAMHguKgogLio6IExEUFRfUkVHSVNURVJfQUxM X1NZTUJPTFNfUkVBRF9IT09LIGZ1bmNAMHguKgogLio6IExEUFRfUkVHSVNURVJfQ0xFQU5V UF9IT09LIGZ1bmNAMHguKgogLio6IExEUFRfQUREX1NZTUJPTFMgZnVuY0AweC4qCmRpZmYg LS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xNy5kIGIvbGQvdGVzdHN1 aXRlL2xkLXBsdWdpbi9wbHVnaW4tMTcuZAppbmRleCAxNTlkNGU0NzU4MC4uNWE1MjBiNjg0 NjYgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTE3LmQKKysr IGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMTcuZApAQCAtNSw2ICs1LDcgQEAg SGVsbG8gZnJvbSB0ZXN0cGx1Z2luLgogLio6IExEUFRfTElOS0VSX09VVFBVVCB2YWx1ZSAg ICAgICAgMHgxIFwoMVwpCiAuKjogTERQVF9PVVRQVVRfTkFNRSAndG1wZGlyL21haW4ueCcK IC4qOiBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PSyBmdW5jQDB4LioKKy4qOiBMRFBU X1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PS19WMiBmdW5jQDB4LioKIC4qOiBMRFBUX1JFR0lT VEVSX0FMTF9TWU1CT0xTX1JFQURfSE9PSyBmdW5jQDB4LioKIC4qOiBMRFBUX1JFR0lTVEVS X0NMRUFOVVBfSE9PSyBmdW5jQDB4LioKIC4qOiBMRFBUX0FERF9TWU1CT0xTIGZ1bmNAMHgu KgpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMTguZCBiL2xk L3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTE4LmQKaW5kZXggMjg0ZmQwNTc2ODYuLjYz ZDgxNDdjZThlIDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0x OC5kCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTE4LmQKQEAgLTUsNiAr NSw3IEBAIEhlbGxvIGZyb20gdGVzdHBsdWdpbi4KIC4qOiBMRFBUX0xJTktFUl9PVVRQVVQg dmFsdWUgICAgICAgIDB4MSBcKDFcKQogLio6IExEUFRfT1VUUFVUX05BTUUgJ3RtcGRpci9t YWluLngnCiAuKjogTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0sgZnVuY0AweC4qCisu KjogTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0tfVjIgZnVuY0AweC4qCiAuKjogTERQ VF9SRUdJU1RFUl9BTExfU1lNQk9MU19SRUFEX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9S RUdJU1RFUl9DTEVBTlVQX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9BRERfU1lNQk9MUyBm dW5jQDB4LioKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTE5 LmQgYi9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xOS5kCmluZGV4IDYyMWVlNzY4 OWYwLi5hYTMwNzYzNzJiMyAxMDA2NDQKLS0tIGEvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9w bHVnaW4tMTkuZAorKysgYi9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0xOS5kCkBA IC01LDYgKzUsNyBAQCBIZWxsbyBmcm9tIHRlc3RwbHVnaW4uCiAuKjogTERQVF9MSU5LRVJf T1VUUFVUIHZhbHVlICAgICAgICAweDEgXCgxXCkKIC4qOiBMRFBUX09VVFBVVF9OQU1FICd0 bXBkaXIvbWFpbi54JwogLio6IExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LIGZ1bmNA MHguKgorLio6IExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LX1YyIGZ1bmNAMHguKgog Lio6IExEUFRfUkVHSVNURVJfQUxMX1NZTUJPTFNfUkVBRF9IT09LIGZ1bmNAMHguKgogLio6 IExEUFRfUkVHSVNURVJfQ0xFQU5VUF9IT09LIGZ1bmNAMHguKgogLio6IExEUFRfQUREX1NZ TUJPTFMgZnVuY0AweC4qCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3Bs dWdpbi0yLmQgYi9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0yLmQKaW5kZXggOTE4 MjJjMWY4NjcuLmYyNzJmNTNiM2MxIDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtcGx1 Z2luL3BsdWdpbi0yLmQKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMi5k CkBAIC01LDYgKzUsNyBAQCBIZWxsbyBmcm9tIHRlc3RwbHVnaW4uCiAuKjogTERQVF9MSU5L RVJfT1VUUFVUIHZhbHVlICAgICAgICAweDEgXCgxXCkKIC4qOiBMRFBUX09VVFBVVF9OQU1F ICd0bXBkaXIvbWFpbi54JwogLio6IExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LIGZ1 bmNAMHguKgorLio6IExEUFRfUkVHSVNURVJfQ0xBSU1fRklMRV9IT09LX1YyIGZ1bmNAMHgu KgogLio6IExEUFRfUkVHSVNURVJfQUxMX1NZTUJPTFNfUkVBRF9IT09LIGZ1bmNAMHguKgog Lio6IExEUFRfUkVHSVNURVJfQ0xFQU5VUF9IT09LIGZ1bmNAMHguKgogLio6IExEUFRfQURE X1NZTUJPTFMgZnVuY0AweC4qCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtcGx1Z2lu L3BsdWdpbi0yNi5kIGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMjYuZAppbmRl eCBjNjMxZTM4N2EwNS4uZmVmMjVkNWMyOTUgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9s ZC1wbHVnaW4vcGx1Z2luLTI2LmQKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVn aW4tMjYuZApAQCAtNSw2ICs1LDcgQEAgSGVsbG8gZnJvbSB0ZXN0cGx1Z2luLgogLio6IExE UFRfTElOS0VSX09VVFBVVCB2YWx1ZSAgICAgICAgMHgxIFwoMVwpCiAuKjogTERQVF9PVVRQ VVRfTkFNRSAndG1wZGlyL21haW4ueCcKIC4qOiBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVf SE9PSyBmdW5jQDB4LioKKy4qOiBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PS19WMiBm dW5jQDB4LioKIC4qOiBMRFBUX1JFR0lTVEVSX0FMTF9TWU1CT0xTX1JFQURfSE9PSyBmdW5j QDB4LioKIC4qOiBMRFBUX1JFR0lTVEVSX0NMRUFOVVBfSE9PSyBmdW5jQDB4LioKIC4qOiBM RFBUX0FERF9TWU1CT0xTIGZ1bmNAMHguKgpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xk LXBsdWdpbi9wbHVnaW4tMy5kIGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wbHVnaW4tMy5k CmluZGV4IGYwMzBkYTQ2N2IzLi4wYzIzMjE4ZmVmOSAxMDA2NDQKLS0tIGEvbGQvdGVzdHN1 aXRlL2xkLXBsdWdpbi9wbHVnaW4tMy5kCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4v cGx1Z2luLTMuZApAQCAtNSw2ICs1LDcgQEAgSGVsbG8gZnJvbSB0ZXN0cGx1Z2luLgogLio6 IExEUFRfTElOS0VSX09VVFBVVCB2YWx1ZSAgICAgICAgMHgxIFwoMVwpCiAuKjogTERQVF9P VVRQVVRfTkFNRSAndG1wZGlyL21haW4ueCcKIC4qOiBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJ TEVfSE9PSyBmdW5jQDB4LioKKy4qOiBMRFBUX1JFR0lTVEVSX0NMQUlNX0ZJTEVfSE9PS19W MiBmdW5jQDB4LioKIC4qOiBMRFBUX1JFR0lTVEVSX0FMTF9TWU1CT0xTX1JFQURfSE9PSyBm dW5jQDB4LioKIC4qOiBMRFBUX1JFR0lTVEVSX0NMRUFOVVBfSE9PSyBmdW5jQDB4LioKIC4q OiBMRFBUX0FERF9TWU1CT0xTIGZ1bmNAMHguKgpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRl L2xkLXBsdWdpbi9wbHVnaW4tMzAuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2lu LTMwLmQKaW5kZXggZWI5ZDQyNDQ3ODYuLjY5MGFlODMyOTkwIDEwMDY0NAotLS0gYS9sZC90 ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi0zMC5kCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1w bHVnaW4vcGx1Z2luLTMwLmQKQEAgLTUsNiArNSw3IEBAIEhlbGxvIGZyb20gdGVzdHBsdWdp bi4KIC4qOiBMRFBUX0xJTktFUl9PVVRQVVQgdmFsdWUgICAgICAgIDB4MSBcKDFcKQogLio6 IExEUFRfT1VUUFVUX05BTUUgJ3RtcGRpci9tYWluLngnCiAuKjogTERQVF9SRUdJU1RFUl9D TEFJTV9GSUxFX0hPT0sgZnVuY0AweC4qCisuKjogTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxF X0hPT0tfVjIgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9BTExfU1lNQk9MU19SRUFE X0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9DTEVBTlVQX0hPT0sgZnVuY0Aw eC4qCiAuKjogTERQVF9BRERfU1lNQk9MUyBmdW5jQDB4LioKZGlmZiAtLWdpdCBhL2xkL3Rl c3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTQuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4v cGx1Z2luLTQuZAppbmRleCBiMjQwZWIyMjFlMC4uYWM0NzY5Yjk5ZDIgMTAwNjQ0Ci0tLSBh L2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTQuZAorKysgYi9sZC90ZXN0c3VpdGUv bGQtcGx1Z2luL3BsdWdpbi00LmQKQEAgLTUsNiArNSw3IEBAIEhlbGxvIGZyb20gdGVzdHBs dWdpbi4KIC4qOiBMRFBUX0xJTktFUl9PVVRQVVQgdmFsdWUgICAgICAgIDB4MSBcKDFcKQog Lio6IExEUFRfT1VUUFVUX05BTUUgJ3RtcGRpci9tYWluLngnCiAuKjogTERQVF9SRUdJU1RF Ul9DTEFJTV9GSUxFX0hPT0sgZnVuY0AweC4qCisuKjogTERQVF9SRUdJU1RFUl9DTEFJTV9G SUxFX0hPT0tfVjIgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9BTExfU1lNQk9MU19S RUFEX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9DTEVBTlVQX0hPT0sgZnVu Y0AweC4qCiAuKjogTERQVF9BRERfU1lNQk9MUyBmdW5jQDB4LioKZGlmZiAtLWdpdCBhL2xk L3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTUuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1wbHVn aW4vcGx1Z2luLTUuZAppbmRleCA1MmFiYWYyZGI5ZC4uNWM4ZThiODM5M2MgMTAwNjQ0Ci0t LSBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTUuZAorKysgYi9sZC90ZXN0c3Vp dGUvbGQtcGx1Z2luL3BsdWdpbi01LmQKQEAgLTUsNiArNSw3IEBAIEhlbGxvIGZyb20gdGVz dHBsdWdpbi4KIC4qOiBMRFBUX0xJTktFUl9PVVRQVVQgdmFsdWUgICAgICAgIDB4MSBcKDFc KQogLio6IExEUFRfT1VUUFVUX05BTUUgJ3RtcGRpci9tYWluLngnCiAuKjogTERQVF9SRUdJ U1RFUl9DTEFJTV9GSUxFX0hPT0sgZnVuY0AweC4qCisuKjogTERQVF9SRUdJU1RFUl9DTEFJ TV9GSUxFX0hPT0tfVjIgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9BTExfU1lNQk9M U19SRUFEX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9DTEVBTlVQX0hPT0sg ZnVuY0AweC4qCiAuKjogTERQVF9BRERfU1lNQk9MUyBmdW5jQDB4LioKZGlmZiAtLWdpdCBh L2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTYuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1w bHVnaW4vcGx1Z2luLTYuZAppbmRleCBiMTg1NGFjMDNmNC4uNDFmNDRmYmMzN2UgMTAwNjQ0 Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTYuZAorKysgYi9sZC90ZXN0 c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi02LmQKQEAgLTUsNiArNSw3IEBAIEhlbGxvIGZyb20g dGVzdHBsdWdpbi4KIC4qOiBMRFBUX0xJTktFUl9PVVRQVVQgdmFsdWUgICAgICAgIDB4MSBc KDFcKQogLio6IExEUFRfT1VUUFVUX05BTUUgJ3RtcGRpci9tYWluLngnCiAuKjogTERQVF9S RUdJU1RFUl9DTEFJTV9GSUxFX0hPT0sgZnVuY0AweC4qCisuKjogTERQVF9SRUdJU1RFUl9D TEFJTV9GSUxFX0hPT0tfVjIgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9BTExfU1lN Qk9MU19SRUFEX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9DTEVBTlVQX0hP T0sgZnVuY0AweC4qCiAuKjogTERQVF9BRERfU1lNQk9MUyBmdW5jQDB4LioKZGlmZiAtLWdp dCBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTcuZCBiL2xkL3Rlc3RzdWl0ZS9s ZC1wbHVnaW4vcGx1Z2luLTcuZAppbmRleCBjNzdiNjZmYTliYy4uYjIwMmVkYzg2M2UgMTAw NjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTcuZAorKysgYi9sZC90 ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi03LmQKQEAgLTUsNiArNSw3IEBAIEhlbGxvIGZy b20gdGVzdHBsdWdpbi4KIC4qOiBMRFBUX0xJTktFUl9PVVRQVVQgdmFsdWUgICAgICAgIDB4 MSBcKDFcKQogLio6IExEUFRfT1VUUFVUX05BTUUgJ3RtcGRpci9tYWluLngnCiAuKjogTERQ VF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0sgZnVuY0AweC4qCisuKjogTERQVF9SRUdJU1RF Ul9DTEFJTV9GSUxFX0hPT0tfVjIgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9BTExf U1lNQk9MU19SRUFEX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9DTEVBTlVQ X0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9BRERfU1lNQk9MUyBmdW5jQDB4LioKZGlmZiAt LWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTguZCBiL2xkL3Rlc3RzdWl0 ZS9sZC1wbHVnaW4vcGx1Z2luLTguZAppbmRleCBjYTI0MjI3YTAyZi4uMGEzOGRkYjFlNGUg MTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTguZAorKysgYi9s ZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi04LmQKQEAgLTUsNiArNSw3IEBAIEhlbGxv IGZyb20gdGVzdHBsdWdpbi4KIC4qOiBMRFBUX0xJTktFUl9PVVRQVVQgdmFsdWUgICAgICAg IDB4MSBcKDFcKQogLio6IExEUFRfT1VUUFVUX05BTUUgJ3RtcGRpci9tYWluLngnCiAuKjog TERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0sgZnVuY0AweC4qCisuKjogTERQVF9SRUdJ U1RFUl9DTEFJTV9GSUxFX0hPT0tfVjIgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9B TExfU1lNQk9MU19SRUFEX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9DTEVB TlVQX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9BRERfU1lNQk9MUyBmdW5jQDB4LioKZGlm ZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTkuZCBiL2xkL3Rlc3Rz dWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTkuZAppbmRleCAxMTU1ZjRmMmUzMy4uMzVmZGU0MGMw YjEgMTAwNjQ0Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcGx1Z2luLTkuZAorKysg Yi9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3BsdWdpbi05LmQKQEAgLTUsNiArNSw3IEBAIEhl bGxvIGZyb20gdGVzdHBsdWdpbi4KIC4qOiBMRFBUX0xJTktFUl9PVVRQVVQgdmFsdWUgICAg ICAgIDB4MSBcKDFcKQogLio6IExEUFRfT1VUUFVUX05BTUUgJ3RtcGRpci9tYWluLngnCiAu KjogTERQVF9SRUdJU1RFUl9DTEFJTV9GSUxFX0hPT0sgZnVuY0AweC4qCisuKjogTERQVF9S RUdJU1RFUl9DTEFJTV9GSUxFX0hPT0tfVjIgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RF Ul9BTExfU1lNQk9MU19SRUFEX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9SRUdJU1RFUl9D TEVBTlVQX0hPT0sgZnVuY0AweC4qCiAuKjogTERQVF9BRERfU1lNQk9MUyBmdW5jQDB4LioK LS0gCjIuMjUuMQoK --------------QK0hvwLZe0l0nD5xSDWgPSgg--