<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>123047</bug_id>
          
          <creation_ts>2013-10-18 16:22:29 -0700</creation_ts>
          <short_desc>Spread operator should be performing direct &quot;puts&quot; and not triggering setters</short_desc>
          <delta_ts>2013-10-19 11:08:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>941375</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-18 16:22:29 -0700</bug_when>
    <thetext>Spread operator should be performing direct &quot;puts&quot; and not triggering setters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941379</commentid>
    <comment_count>1</comment_count>
      <attachid>214614</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-18 16:28:07 -0700</bug_when>
    <thetext>Created attachment 214614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941380</commentid>
    <comment_count>2</comment_count>
      <attachid>214614</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-10-18 16:30:10 -0700</bug_when>
    <thetext>Comment on attachment 214614
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=214614&amp;action=review

r=me

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        Add a new opcode -- op_direct_put_by_value -- and make use of it in the spread

Can we call this put_by_value_direct to match put_by_id_direct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941401</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-10-18 17:08:13 -0700</bug_when>
    <thetext>Committed r157656: &lt;http://trac.webkit.org/changeset/157656&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>941522</commentid>
    <comment_count>4</comment_count>
      <attachid>214614</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-19 11:08:24 -0700</bug_when>
    <thetext>Comment on attachment 214614
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=214614&amp;action=review

Can you please de-duplicate some of this code?

&gt; Source/JavaScriptCore/jit/JITOperations.cpp:598
&gt; +void JIT_OPERATION operationDirectPutByVal(ExecState* callFrame, EncodedJSValue encodedBaseValue, EncodedJSValue encodedSubscript, EncodedJSValue encodedValue)
&gt; +{
&gt; +    VM&amp; vm = callFrame-&gt;vm();
&gt; +    NativeCallFrameTracer tracer(&amp;vm, callFrame);
&gt; +    
&gt; +    JSValue baseValue = JSValue::decode(encodedBaseValue);
&gt; +    JSValue subscript = JSValue::decode(encodedSubscript);
&gt; +    JSValue value = JSValue::decode(encodedValue);
&gt; +    RELEASE_ASSERT(baseValue.isObject());
&gt; +    JSObject* object = asObject(baseValue);
&gt; +    if (subscript.isInt32()) {
&gt; +        // See if it&apos;s worth optimizing at all.
&gt; +        bool didOptimize = false;
&gt; +        
&gt; +        unsigned bytecodeOffset = callFrame-&gt;locationAsBytecodeOffset();
&gt; +        ASSERT(bytecodeOffset);
&gt; +        ByValInfo&amp; byValInfo = callFrame-&gt;codeBlock()-&gt;getByValInfo(bytecodeOffset - 1);
&gt; +        ASSERT(!byValInfo.stubRoutine);
&gt; +        
&gt; +        if (hasOptimizableIndexing(object-&gt;structure())) {
&gt; +            // Attempt to optimize.
&gt; +            JITArrayMode arrayMode = jitArrayModeForStructure(object-&gt;structure());
&gt; +            if (arrayMode != byValInfo.arrayMode) {
&gt; +                JIT::compileDirectPutByVal(&amp;vm, callFrame-&gt;codeBlock(), &amp;byValInfo, ReturnAddressPtr(OUR_RETURN_ADDRESS), arrayMode);
&gt; +                didOptimize = true;
&gt; +            }
&gt; +        }
&gt; +        
&gt; +        if (!didOptimize) {
&gt; +            // If we take slow path more than 10 times without patching then make sure we
&gt; +            // never make that mistake again. Or, if we failed to patch and we have some object
&gt; +            // that intercepts indexed get, then don&apos;t even wait until 10 times. For cases
&gt; +            // where we see non-index-intercepting objects, this gives 10 iterations worth of
&gt; +            // opportunity for us to observe that the get_by_val may be polymorphic.
&gt; +            if (++byValInfo.slowPathCount &gt;= 10
&gt; +                || object-&gt;structure()-&gt;typeInfo().interceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero()) {

Is this really a copy-paste job?  That&apos;s not cool, man.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214614</attachid>
            <date>2013-10-18 16:28:07 -0700</date>
            <delta_ts>2013-10-19 11:08:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123047-20131018162806.patch</filename>
            <type>text/plain</type>
            <size>58730</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3NjM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
M2E3YTBjY2E2NDJkZWNjOGNkZGIxMDIzN2VlMzJhMWUyYzc4ZDI0Li4xYmZhNThiOTlkNzFhZjg0
YzY2YWMyM2U1N2VjMWJmZGMzNjk1ZThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NyBAQAorMjAxMy0xMC0xOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFNwcmVhZCBvcGVyYXRvciBzaG91bGQgYmUgcGVyZm9ybWluZyBkaXJlY3QgInB1
dHMiIGFuZCBub3QgdHJpZ2dlcmluZyBzZXR0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMwNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgb3Bjb2RlIC0tIG9wX2RpcmVjdF9wdXRf
YnlfdmFsdWUgLS0gYW5kIG1ha2UgdXNlIG9mIGl0IGluIHRoZSBzcHJlYWQKKyAgICAgICAgdG8g
YXJyYXkgY29uc3RydWN0LiAgVGhpcyByZXF1aXJlZCBhIG5ldyBQdXRCeVZhbERpcmVjdCBub2Rl
IHRvIGJlIGludHJvZHVjZWQgdG8KKyAgICAgICAgdGhlIERGRy4gIFRoZSBjdXJyZW50IGltcGxl
bWVudGF0aW9uIHNpbXBseSBjaGFuZ2VzIHRoZSBzbG93IHBhdGggZnVuY3Rpb24gdGhhdAorICAg
ICAgICBpcyBjYWxsZWQsIGJ1dCBpbiBmdXR1cmUgdGhpcyBjb3VsZCBiZSBtYWRlIGZhc3RlciBh
cyBpdCBkb2VzIG5vdCBuZWVkIHRvIGNoZWNrCisgICAgICAgIHRoZSBwcm90b3R5cGUgY2hhaW4u
CisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZSk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Q29kZUJsb2Nr
KToKKyAgICAgICAgKiBieXRlY29kZS9PcGNvZGUuaDoKKyAgICAgICAgKEpTQzo6cGFkT3Bjb2Rl
TmFtZSk6CisgICAgICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAg
ICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXREaXJlY3RQdXRCeVZhbCk6CisgICAg
ICAgICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogYnl0ZWNv
bXBpbGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkFycmF5Tm9kZTo6ZW1pdEJ5
dGVjb2RlKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6REZHOjo6OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZH
QmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6QmFja3dh
cmRzUHJvcGFnYXRpb25QaGFzZTo6cHJvcGFnYXRlKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJs
b2NrKToKKyAgICAgICAgKiBkZmcvREZHQ1NFUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkNTRVBoYXNlOjpnZXRBcnJheUxlbmd0aEVsaW1pbmF0aW9uKToKKyAgICAgICAgKEpTQzo6REZH
OjpDU0VQaGFzZTo6Z2V0QnlWYWxMb2FkRWxpbWluYXRpb24pOgorICAgICAgICAoSlNDOjpERkc6
OkNTRVBoYXNlOjpjaGVja1N0cnVjdHVyZUVsaW1pbmF0aW9uKToKKyAgICAgICAgKEpTQzo6REZH
OjpDU0VQaGFzZTo6c3RydWN0dXJlVHJhbnNpdGlvbldhdGNocG9pbnRFbGltaW5hdGlvbik6Cisg
ICAgICAgIChKU0M6OkRGRzo6Q1NFUGhhc2U6OmdldEJ5T2Zmc2V0TG9hZEVsaW1pbmF0aW9uKToK
KyAgICAgICAgKEpTQzo6REZHOjpDU0VQaGFzZTo6cHV0QnlPZmZzZXRTdG9yZUVsaW1pbmF0aW9u
KToKKyAgICAgICAgKEpTQzo6REZHOjpDU0VQaGFzZTo6Z2V0UHJvcGVydHlTdG9yYWdlTG9hZEVs
aW1pbmF0aW9uKToKKyAgICAgICAgKEpTQzo6REZHOjpDU0VQaGFzZTo6cGVyZm9ybU5vZGVDU0Up
OgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OmNhcGFiaWxpdHlMZXZlbCk6CisgICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAg
KiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6Y2xvYmJlcnNXb3Js
ZCk6CisgICAgICAgICogZGZnL0RGR05vZGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpOb2RlOjpo
YXNBcnJheU1vZGUpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRm
Zy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpwdXRCeVZhbCk6CisgICAg
ICAgIChKU0M6OkRGRzo6b3BlcmF0aW9uUHV0QnlWYWxJbnRlcm5hbCk6CisgICAgICAgICogZGZn
L0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9u
UGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
Ojpwcm9wYWdhdGUpOgorICAgICAgICAoSlNDOjpERkc6OlByZWRpY3Rpb25Qcm9wYWdhdGlvblBo
YXNlOjpkb0RvdWJsZVZvdGluZyk6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVDb250aWd1b3VzUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0
aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IGRmZy9ERkdUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpU
eXBlQ2hlY2tIb2lzdGluZ1BoYXNlOjppZGVudGlmeVJlZHVuZGFudFN0cnVjdHVyZUNoZWNrcyk6
CisgICAgICAgIChKU0M6OkRGRzo6VHlwZUNoZWNrSG9pc3RpbmdQaGFzZTo6aWRlbnRpZnlSZWR1
bmRhbnRBcnJheUNoZWNrcyk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6
OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0
ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKEpTQzo6
SklUOjpjb21waWxlRGlyZWN0UHV0QnlWYWwpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25z
LmNwcDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcHV0X2J5
X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVQdXRCeVZhbCk6CisgICAg
ICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRTbG93X29wX3B1dF9ieV92YWwpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhz
LmNwcDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAg
ICAgKiBsbGludC9MTEludFNsb3dQYXRocy5oOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50
ZXJwcmV0ZXIzMl82NC5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbToKKwogMjAxMy0xMC0xOCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4K
IAogICAgICAgICBDaGFuZ2UgbmF0aXZlIGZ1bmN0aW9uIGNhbGwgc3R1YnMgdG8gdXNlIEpJVCBv
cGVyYXRpb25zIGluc3RlYWQgb2YgY3RpVk1IYW5kbGVFeGNlcHRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKaW5kZXggMjVkMzdiYmZhMjY2MGZkZDc0
MGJlNDc3ODUxMTFjZDdhYmY0ODkyZS4uZTc3MjcyNjExMzlhNWEyYTk3NmE3ZWUyNWM4MzlhN2Nk
ZjdmYWJhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVC
bG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5j
cHAKQEAgLTEwNDksNiArMTA0OSwxNSBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFBy
aW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSW5zdHJ1Y3RpbwogICAgICAg
ICAgICAgZHVtcEFycmF5UHJvZmlsaW5nKG91dCwgaXQsIGhhc1ByaW50ZWRQcm9maWxpbmcpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBvcF9kaXJlY3RfcHV0
X2J5X3ZhbDogeworICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAg
ICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGludCByMiA9
ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgcHJpbnRMb2NhdGlvbkFuZE9wKG91dCwg
ZXhlYywgbG9jYXRpb24sIGl0LCAiZGlyZWN0X3B1dF9ieV92YWwiKTsKKyAgICAgICAgICAgIG91
dC5wcmludGYoIiVzLCAlcywgJXMiLCByZWdpc3Rlck5hbWUocjApLmRhdGEoKSwgcmVnaXN0ZXJO
YW1lKHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMikuZGF0YSgpKTsKKyAgICAgICAgICAgIGR1
bXBBcnJheVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZGVsX2J5X3ZhbDogewogICAg
ICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEg
PSAoKytpdCktPnUub3BlcmFuZDsKQEAgLTE3NDcsNiArMTc1NiwxMiBAQCBDb2RlQmxvY2s6OkNv
ZGVCbG9jayhTY3JpcHRFeGVjdXRhYmxlKiBvd25lckV4ZWN1dGFibGUsIFVubGlua2VkQ29kZUJs
b2NrKiB1bmxpbgogICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zW2kgKyBvcExlbmd0aCAtIDFdID0g
Jm1fYXJyYXlQcm9maWxlc1thcnJheVByb2ZpbGVJbmRleF07CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX2RpcmVjdF9wdXRfYnlfdmFsOiB7CisgICAgICAg
ICAgICBpbnQgYXJyYXlQcm9maWxlSW5kZXggPSBwY1tpICsgb3BMZW5ndGggLSAxXS51Lm9wZXJh
bmQ7CisgICAgICAgICAgICBtX2FycmF5UHJvZmlsZXNbYXJyYXlQcm9maWxlSW5kZXhdID0gQXJy
YXlQcm9maWxlKGkpOworICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zW2kgKyBvcExlbmd0aCAtIDFd
ID0gJm1fYXJyYXlQcm9maWxlc1thcnJheVByb2ZpbGVJbmRleF07CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQogCiAgICAgICAgIGNhc2Ugb3BfbmV3X2FycmF5OgogICAgICAgICBjYXNl
IG9wX25ld19hcnJheV9idWZmZXI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvT3Bjb2RlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2Rl
LmgKaW5kZXggZjAzNjRlMmRjNzk1ZWI4MmFlY2YxZmZlNDRlZTZiNTdlOWIxOTNkNy4uM2JlNjMy
Nzc5Y2IwOWE4NGJkYjMwZjJlYWQzNTE0ODMxMDVlMDhiNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9PcGNvZGUuaApAQCAtMTI2LDYgKzEyNiw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgIG1hY3JvKG9wX2dldF9hcmd1bWVudF9ieV92YWwsIDYpIC8qIG11c3QgYmUgdGhlIHNhbWUg
c2l6ZSBhcyBvcF9nZXRfYnlfdmFsICovIFwKICAgICBtYWNybyhvcF9nZXRfYnlfcG5hbWUsIDcp
IFwKICAgICBtYWNybyhvcF9wdXRfYnlfdmFsLCA1KSBcCisgICAgbWFjcm8ob3BfZGlyZWN0X3B1
dF9ieV92YWwsIDUpIFwKICAgICBtYWNybyhvcF9kZWxfYnlfdmFsLCA0KSBcCiAgICAgbWFjcm8o
b3BfcHV0X2J5X2luZGV4LCA0KSBcCiAgICAgbWFjcm8ob3BfcHV0X2dldHRlcl9zZXR0ZXIsIDUp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHAKaW5kZXggYWQ0YzJjZmE3OTBjMzczNTc0YTAzOGRhNTU3YjIxODhh
ZWNhMzE0Zi4uZGM3MjFiMDA4NTM0ODQyYTFhNTQzNzdmODllN2E0ZjdhZDkyZWQwNyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAKQEAgLTE0MTMsNiArMTQxMywxNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdFB1dEJ5VmFsKFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHByb3Bl
cgogICAgIHJldHVybiB2YWx1ZTsKIH0KIAorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXREaXJlY3RQdXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0
eSwgUmVnaXN0ZXJJRCogdmFsdWUpCit7CisgICAgVW5saW5rZWRBcnJheVByb2ZpbGUgYXJyYXlQ
cm9maWxlID0gbmV3QXJyYXlQcm9maWxlKCk7CisgICAgZW1pdE9wY29kZShvcF9kaXJlY3RfcHV0
X2J5X3ZhbCk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGJhc2UtPmluZGV4KCkpOworICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZChwcm9wZXJ0eS0+aW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rp
b25zKCkuYXBwZW5kKHZhbHVlLT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
YXJyYXlQcm9maWxlKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKIFJlZ2lzdGVySUQqIEJ5dGVj
b2RlR2VuZXJhdG9yOjplbWl0RGVsZXRlQnlWYWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklE
KiBiYXNlLCBSZWdpc3RlcklEKiBwcm9wZXJ0eSkKIHsKICAgICBlbWl0T3Bjb2RlKG9wX2RlbF9i
eV92YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5oCmluZGV4IGIwZTliZDRmMzU5NzBkZTY0YTYxMzFhOWUyMWJjODkx
YmEzMjA4ZjYuLmQ1YzBkNGY3OTViOGE4MDVmNTMzMWMzYTcxNDUxYzY2YTA1NzhlMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0
b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmgKQEAgLTM1OCw2ICszNTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVn
aXN0ZXJJRCogZW1pdEdldEJ5VmFsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwg
UmVnaXN0ZXJJRCogcHJvcGVydHkpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0R2V0QXJndW1l
bnRCeVZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIFJlZ2lzdGVySUQqIHBy
b3BlcnR5KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFB1dEJ5VmFsKFJlZ2lzdGVySUQqIGJh
c2UsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiB2YWx1ZSk7CisgICAgICAgIFJl
Z2lzdGVySUQqIGVtaXREaXJlY3RQdXRCeVZhbChSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklE
KiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogdmFsdWUpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
RGVsZXRlQnlWYWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBSZWdpc3RlcklE
KiBwcm9wZXJ0eSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRQdXRCeUluZGV4KFJlZ2lzdGVy
SUQqIGJhc2UsIHVuc2lnbmVkIGluZGV4LCBSZWdpc3RlcklEKiB2YWx1ZSk7CiAgICAgICAgIHZv
aWQgZW1pdFB1dEdldHRlclNldHRlcihSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogZ2V0dGVyLCBSZWdpc3RlcklEKiBzZXR0ZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3Bw
CmluZGV4IGRkMzcxNzgxMDZiMGU5Y2ViZjEwZWQ2ODM5OWQ2NGRiNTA5NDY1M2IuLmM5NTE3YTc2
MzE3YTA3M2IyMWMyNmZmMzY4MTRkODEyNGE5NDA3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTE5Nyw3ICsxOTcs
NyBAQCBoYW5kbGVTcHJlYWQ6CiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGluZGV4ID0gZ2VuZXJh
dG9yLmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwganNOdW1iZXIobGVuZ3RoKSk7
CiAgICAgYXV0byBzcHJlYWRlciA9IFt0aGlzLCBhcnJheSwgaW5kZXhdKEJ5dGVjb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIHZhbHVlKQogICAgIHsKLSAgICAgICAgZ2VuZXJh
dG9yLmVtaXRQdXRCeVZhbChhcnJheS5nZXQoKSwgaW5kZXguZ2V0KCksIHZhbHVlKTsKKyAgICAg
ICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeVZhbChhcnJheS5nZXQoKSwgaW5kZXguZ2V0KCks
IHZhbHVlKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRJbmMoaW5kZXguZ2V0KCkpOwogICAgIH07
CiAgICAgZm9yICg7IG47IG4gPSBuLT5uZXh0KCkpIHsKQEAgLTIwNyw3ICsyMDcsNyBAQCBoYW5k
bGVTcHJlYWQ6CiAgICAgICAgICAgICBTcHJlYWRFeHByZXNzaW9uTm9kZSogc3ByZWFkID0gc3Rh
dGljX2Nhc3Q8U3ByZWFkRXhwcmVzc2lvbk5vZGUqPihuLT52YWx1ZSgpKTsKICAgICAgICAgICAg
IGdlbmVyYXRvci5lbWl0RW51bWVyYXRpb24oc3ByZWFkLCBzcHJlYWQtPmV4cHJlc3Npb24oKSwg
c3ByZWFkZXIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZ2VuZXJhdG9yLmVtaXRQ
dXRCeVZhbChhcnJheS5nZXQoKSwgaW5kZXguZ2V0KCksIGdlbmVyYXRvci5lbWl0Tm9kZShuLT52
YWx1ZSgpKSk7CisgICAgICAgICAgICBnZW5lcmF0b3IuZW1pdERpcmVjdFB1dEJ5VmFsKGFycmF5
LmdldCgpLCBpbmRleC5nZXQoKSwgZ2VuZXJhdG9yLmVtaXROb2RlKG4tPnZhbHVlKCkpKTsKICAg
ICAgICAgICAgIGdlbmVyYXRvci5lbWl0SW5jKGluZGV4LmdldCgpKTsKICAgICAgICAgfQogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRl
cnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaAppbmRleCA3ZTFiYjU2Zjg3NjIwMzY1ZmFlZTNhNjNlY2ZhN2Ji
OWY5MDZiNDU2Li43YmMzYjhjNGU2YmUwYzVmMGFkMDdhOGUwZmQ2Yjg2N2IzMWFmMmQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVy
cHJldGVySW5saW5lcy5oCkBAIC04ODMsNiArODgzLDcgQEAgYm9vbCBBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxp
bWkKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAgICAgCisgICAgY2FzZSBQdXRCeVZh
bERpcmVjdDoKICAgICBjYXNlIFB1dEJ5VmFsOgogICAgIGNhc2UgUHV0QnlWYWxBbGlhczogewog
ICAgICAgICBub2RlLT5zZXRDYW5FeGl0KHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXgg
YTg5NDQ5ODBiNjMzM2Y3MDU3N2NlN2UyNGExZTVmNmViNzQ2NWQyMS4uMGEyZDUzM2E1ODhkNjUy
NDA1ZGUxZGM4MTk3YzllYjBhYmFiOTA5NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuY3BwCkBAIC0zNDcs
NyArMzQ3LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIG5vZGUtPmNoaWxkMSgpLT5tZXJnZUZs
YWdzKGZsYWdzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgICAgICAK
KworICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAgICAgICBjYXNlIFB1dEJ5VmFsOiB7
CiAgICAgICAgICAgICBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApLT5tZXJnZUZsYWdzKE5v
ZGVCeXRlY29kZVVzZXNBc1ZhbHVlKTsKICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bm9kZSwgMSktPm1lcmdlRmxhZ3MoTm9kZUJ5dGVjb2RlVXNlc0FzTnVtYmVyIHwgTm9kZUJ5dGVj
b2RlVXNlc0FzT3RoZXIgfCBOb2RlQnl0ZWNvZGVVc2VzQXNJbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCAxZWE3ZTZkNTEwYjYx
MzExNzQyMWY1OWIzYjAxZTEyZTY3NGMwYzc4Li45NWExOGJlZGZkYzdlMzhmMzYzYzczYmE0ZTY3
ZWE1YjY4YmFjODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcApAQCAtMjQxMSw2ICsyNDExLDcgQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6
cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2dl
dF9ieV92YWwpOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBvcF9kaXJlY3RfcHV0X2J5X3Zh
bDoKICAgICAgICAgY2FzZSBvcF9wdXRfYnlfdmFsOiB7CiAgICAgICAgICAgICBOb2RlKiBiYXNl
ID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7
CiAKQEAgLTI0MjMsNyArMjQyNCw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2so
dW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBhZGRWYXJBcmdDaGlsZChwcm9wZXJ0eSk7CiAg
ICAgICAgICAgICBhZGRWYXJBcmdDaGlsZCh2YWx1ZSk7CiAgICAgICAgICAgICBhZGRWYXJBcmdD
aGlsZCgwKTsgLy8gTGVhdmUgcm9vbSBmb3IgcHJvcGVydHkgc3RvcmFnZS4KLSAgICAgICAgICAg
IGFkZFRvR3JhcGgoTm9kZTo6VmFyQXJnLCBQdXRCeVZhbCwgT3BJbmZvKGFycmF5TW9kZS5hc1dv
cmQoKSksIE9wSW5mbygwKSk7CisgICAgICAgICAgICBhZGRUb0dyYXBoKE5vZGU6OlZhckFyZywg
b3Bjb2RlSUQgPT0gb3BfZGlyZWN0X3B1dF9ieV92YWwgPyBQdXRCeVZhbERpcmVjdCA6IFB1dEJ5
VmFsLCBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgpKSwgT3BJbmZvKDApKTsKIAogICAgICAgICAg
ICAgTkVYVF9PUENPREUob3BfcHV0X2J5X3ZhbCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1NFUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKaW5kZXggYmY3YTJjODBiMDRhOWJkZGFiOGVkMGEy
NzUyOGRkMGY2MzFiZDk3My4uMDEyOWU5NDU3ZDFhOTBhNTRhMDdjMGVmMDljYmU1YWQ0OTU2YmMw
NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAKQEAgLTE4OSw2
ICsxODksNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2Ug
UHV0QnlWYWxEaXJlY3Q6CiAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsOgogICAgICAgICAgICAg
ICAgIGlmICghbV9ncmFwaC5ieVZhbElzUHVyZShub2RlKSkKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIDA7CkBAIC0zNjgsNiArMzY5LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBp
ZiAobm9kZS0+Y2hpbGQxKCkgPT0gY2hpbGQxICYmIG5vZGUtPmNoaWxkMigpID09IGNoaWxkMikK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoK
ICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsQWxp
YXM6IHsKICAgICAgICAgICAgICAgICBpZiAoIW1fZ3JhcGguYnlWYWxJc1B1cmUobm9kZSkpCkBA
IC00NDcsNyArNDUwLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNhc2UgUHV0QnlPZmZzZXQ6
CiAgICAgICAgICAgICAgICAgLy8gU2V0dGluZyBhIHByb3BlcnR5IGNhbm5vdCBjaGFuZ2UgdGhl
IHN0cnVjdHVyZS4KICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAg
ICAgICAgICAgY2FzZSBQdXRCeVZhbDoKICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWxBbGlhczoK
ICAgICAgICAgICAgICAgICBpZiAobV9ncmFwaC5ieVZhbElzUHVyZShub2RlKSkgewpAQCAtNDk0
LDcgKzQ5OCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBjYXNlIFB1dEJ5T2Zmc2V0OgogICAg
ICAgICAgICAgICAgIC8vIFNldHRpbmcgYSBwcm9wZXJ0eSBjYW5ub3QgY2hhbmdlIHRoZSBzdHJ1
Y3R1cmUuCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAgICAg
ICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6CiAgICAg
ICAgICAgICAgICAgaWYgKG1fZ3JhcGguYnlWYWxJc1B1cmUobm9kZSkpIHsKQEAgLTYxMiw3ICs2
MTcsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAg
ICAgICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6CiAg
ICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGguYnlWYWxJc1B1cmUobm9kZSkpIHsKQEAgLTY1Miw3
ICs2NTgsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAg
ICAgICAgICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6
CiAgICAgICAgICAgICBjYXNlIEdldEJ5VmFsOgpAQCAtNjk4LDcgKzcwNSw4IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgLy8gc3RvcmFnZSwgc28gd2UgY29uc2VydmF0aXZlbHkgYXNzdW1l
IHRoYXQgaXQgbWF5IGNoYW5nZSB0aGUgc3RvcmFnZQogICAgICAgICAgICAgICAgIC8vIHBvaW50
ZXIgb2YgYW55IG9iamVjdCwgaW5jbHVkaW5nIG91cnMuCiAgICAgICAgICAgICAgICAgcmV0dXJu
IDA7Ci0gICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
Y2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgICAg
ICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6CiAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGguYnlW
YWxJc1B1cmUobm9kZSkpIHsKQEAgLTEyNTIsNyArMTI2MCw4IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBpZiAobV9ncmFwaC5ieVZhbElzUHVyZShub2RlKSkKICAgICAgICAgICAgICAgICBzZXRS
ZXBsYWNlbWVudChnZXRCeVZhbExvYWRFbGltaW5hdGlvbihub2RlLT5jaGlsZDEoKS5ub2RlKCks
IG5vZGUtPmNoaWxkMigpLm5vZGUoKSkpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAg
ICAgY2FzZSBQdXRCeVZhbDogewogICAgICAgICAgICAgaWYgKGNzZU1vZGUgPT0gU3RvcmVFbGlt
aW5hdGlvbikKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcAppbmRleCAzNThlYWJjNDhjMDUzN2ZkNzM1OTY3MWFk
M2ExZGJkOWE4YWViYmQ3Li42ZDIzNjRmNDM5NGY3M2I0MWI5NWFhOWY1ODkzMDk5NmUxOGIxNDAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCkBA
IC0xMjEsNiArMTIxLDcgQEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJ
RCBvcGNvZGVJRCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEluc3RydWMKICAgICBjYXNlIG9wX25z
dHJpY3RlcToKICAgICBjYXNlIG9wX2dldF9ieV92YWw6CiAgICAgY2FzZSBvcF9wdXRfYnlfdmFs
OgorICAgIGNhc2Ugb3BfZGlyZWN0X3B1dF9ieV92YWw6CiAgICAgY2FzZSBvcF9nZXRfYnlfaWQ6
CiAgICAgY2FzZSBvcF9nZXRfYnlfaWRfb3V0X29mX2xpbmU6CiAgICAgY2FzZSBvcF9nZXRfYXJy
YXlfbGVuZ3RoOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRl
eCAyNDVjZWU5MjIyNGVmZWZjMGI5Yjk0MzUzMDYwMDNmZjE0ZjMzYzFhLi5kOTY4ZmU2ODc2ZmU5
YjhmMjcwZTRkYjdmZmYxMzRlMjI5NGM0OTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Nsb2JiZXJpemUuaApAQCAtMzExLDcgKzMxMSw4IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUsIFJlYWRGdW5jdG9yJiByZWFkLCBXcml0ZUZ1bmN0b3ImIHdy
aXRlCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgICAgIAorCisgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICBjYXNl
IFB1dEJ5VmFsOgogICAgIGNhc2UgUHV0QnlWYWxBbGlhczogewogICAgICAgICBBcnJheU1vZGUg
bW9kZSA9IG5vZGUtPmFycmF5TW9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Rml4dXBQaGFzZS5jcHAKaW5kZXggMWEzODU1YzVlZjdhODQ1M2UxNDc0MGI0OTBlNGZkM2RlNjA2
NTNmMi4uZjc3ZmQ1OTMzMjQ2ZDlkNmNkNDhhOTFhY2Q1MmY0MjE0MzUwMTM3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC00NzMsNyArNDczLDgg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
LSAgICAgICAgICAgIAorCisgICAgICAgIGNhc2UgUHV0QnlWYWxEaXJlY3Q6CiAgICAgICAgIGNh
c2UgUHV0QnlWYWw6CiAgICAgICAgIGNhc2UgUHV0QnlWYWxBbGlhczogewogICAgICAgICAgICAg
RWRnZSYgY2hpbGQxID0gbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHR3JhcGguaAppbmRleCAwODRhNWEwNTI5MTEwNzAwZWFiMTVkZDkzMTgzOTc5
ZWJmNjZhZGJiLi4yZjFhMDI0MWMxN2Q2Yzk5OWVlM2NmMDM4NDg2ZDIyNTJlNDEzNGY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCkBAIC02MzEsNiArNjMxLDcgQEAgcHVibGlj
OgogICAgICAgICBjYXNlIENvbXBhcmVFcToKICAgICAgICAgICAgIHJldHVybiAhaXNQcmVkaWN0
ZWROdW1lcmljYWwobm9kZSk7CiAgICAgICAgIGNhc2UgR2V0QnlWYWw6CisgICAgICAgIGNhc2Ug
UHV0QnlWYWxEaXJlY3Q6CiAgICAgICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgICAgIGNhc2UgUHV0
QnlWYWxBbGlhczoKICAgICAgICAgICAgIHJldHVybiAhYnlWYWxJc1B1cmUobm9kZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCmluZGV4IDRmNDVhOGY4MjAxOWVjMTNhMWFlNzgyYmE4
NDExZjNlMDUyNWQ2MDAuLjhjZWNmOGVlMmJkMzM1YzdhZDQ2NzI4MDYxNTI1NDk1MmJlYzNkODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCkBAIC0xMDcxLDYgKzEwNzEsNyBAQCBz
dHJ1Y3QgTm9kZSB7CiAgICAgICAgIHN3aXRjaCAob3AoKSkgewogICAgICAgICBjYXNlIEdldElu
ZGV4ZWRQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgICAgIGNhc2UgR2V0QXJyYXlMZW5ndGg6CisgICAg
ICAgIGNhc2UgUHV0QnlWYWxEaXJlY3Q6CiAgICAgICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgICAg
IGNhc2UgUHV0QnlWYWxBbGlhczoKICAgICAgICAgY2FzZSBHZXRCeVZhbDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAppbmRleCA4ZDdlZjRjNDdiM2IzYTU5YWQyN2JkYzZh
ZjQxZjJhN2U0MjBlZjFjLi5lMDM5OWIyYTgwOGRmNDk1MDJhNGFmNzEzMzY0M2U4NDcyNGIyMjNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCkBAIC0xNDAsNiArMTQw
LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIC8qIHRoaXMgbXVzdCBi
ZSB0aGUgZGlyZWN0bHkgc3Vic2VxdWVudCBwcm9wZXJ0eSBwdXQuIE5vdGUgdGhhdCBQdXRCeVZh
bCAqL1wKICAgICAvKiBvcGNvZGVzIHVzZSBWYXJBcmdzIGJlYXVzZSB0aGV5IG1heSBoYXZlIHVw
IHRvIDQgY2hpbGRyZW4uICovXAogICAgIG1hY3JvKEdldEJ5VmFsLCBOb2RlUmVzdWx0SlMgfCBO
b2RlTXVzdEdlbmVyYXRlIHwgTm9kZU1pZ2h0Q2xvYmJlcikgXAorICAgIG1hY3JvKFB1dEJ5VmFs
RGlyZWN0LCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MgfCBOb2RlTWlnaHRDbG9i
YmVyKSBcCiAgICAgbWFjcm8oUHV0QnlWYWwsIE5vZGVNdXN0R2VuZXJhdGUgfCBOb2RlSGFzVmFy
QXJncyB8IE5vZGVNaWdodENsb2JiZXIpIFwKICAgICBtYWNybyhQdXRCeVZhbEFsaWFzLCBOb2Rl
TXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MgfCBOb2RlTWlnaHRDbG9iYmVyKSBcCiAgICAg
bWFjcm8oR2V0QnlJZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSB8IE5vZGVDbG9i
YmVyc1dvcmxkKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09w
ZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNw
cAppbmRleCAzNDg2YTY2NjE5NDQwOTZlZmJlMGYxMmI3ODg5OTY2Zjg3Y2Y5M2FkLi40ZGEwYzkx
ZDcyMGQ3ZTg4M2E3NjZkMDlkMDhiOWRjMTFhNjUwN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTYxLDEyICs2MSwxNiBAQAogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAKLXRlbXBsYXRlPGJvb2wgc3RyaWN0PgordGVtcGxh
dGU8Ym9vbCBzdHJpY3QsIGJvb2wgZGlyZWN0Pgogc3RhdGljIGlubGluZSB2b2lkIHB1dEJ5VmFs
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIHVpbnQzMl90IGluZGV4LCBKU1Zh
bHVlIHZhbHVlKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwotICAgIAorICAgIGlmIChkaXJlY3QpIHsKKyAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoYmFzZVZhbHVlLmlzT2JqZWN0KCkpOworICAgICAgICBhc09i
amVjdChiYXNlVmFsdWUpLT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCwgdmFsdWUsIDAsIHN0
cmljdCA/IFB1dERpcmVjdEluZGV4U2hvdWxkVGhyb3cgOiBQdXREaXJlY3RJbmRleFNob3VsZE5v
dFRocm93KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBpZiAoYmFzZVZhbHVlLmlzT2Jq
ZWN0KCkpIHsKICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7
CiAgICAgICAgIGlmIChvYmplY3QtPmNhblNldEluZGV4UXVpY2tseShpbmRleCkpIHsKQEAgLTgx
LDcgKzg1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBiYXNlVmFsdWUsIHVpbnQzMl90IGluZGV4LAogICAgIGJhc2VWYWx1ZS5wdXRCeUlu
ZGV4KGV4ZWMsIGluZGV4LCB2YWx1ZSwgc3RyaWN0KTsKIH0KIAotdGVtcGxhdGU8Ym9vbCBzdHJp
Y3Q+Cit0ZW1wbGF0ZTxib29sIHN0cmljdCwgYm9vbCBkaXJlY3Q+CiBBTFdBWVNfSU5MSU5FIHN0
YXRpYyB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxJbnRlcm5hbChFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkUHJvcGVydHksIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBWTSogdm0g
PSAmZXhlYy0+dm0oKTsKQEAgLTkyLDcgKzk2LDcgQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsSW50ZXJuYWwoRXhlY1N0YXRlKiBleGUK
ICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CiAKICAg
ICBpZiAoTElLRUxZKHByb3BlcnR5LmlzVUludDMyKCkpKSB7Ci0gICAgICAgIHB1dEJ5VmFsPHN0
cmljdD4oZXhlYywgYmFzZVZhbHVlLCBwcm9wZXJ0eS5hc1VJbnQzMigpLCB2YWx1ZSk7CisgICAg
ICAgIHB1dEJ5VmFsPHN0cmljdCwgZGlyZWN0PihleGVjLCBiYXNlVmFsdWUsIHByb3BlcnR5LmFz
VUludDMyKCksIHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTAwLDE0ICsx
MDQsMTggQEAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEJ5VmFsSW50ZXJuYWwoRXhlY1N0YXRlKiBleGUKICAgICAgICAgZG91YmxlIHByb3BlcnR5
QXNEb3VibGUgPSBwcm9wZXJ0eS5hc0RvdWJsZSgpOwogICAgICAgICB1aW50MzJfdCBwcm9wZXJ0
eUFzVUludDMyID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHByb3BlcnR5QXNEb3VibGUpOwogICAg
ICAgICBpZiAocHJvcGVydHlBc0RvdWJsZSA9PSBwcm9wZXJ0eUFzVUludDMyKSB7Ci0gICAgICAg
ICAgICBwdXRCeVZhbDxzdHJpY3Q+KGV4ZWMsIGJhc2VWYWx1ZSwgcHJvcGVydHlBc1VJbnQzMiwg
dmFsdWUpOworICAgICAgICAgICAgcHV0QnlWYWw8c3RyaWN0LCBkaXJlY3Q+KGV4ZWMsIGJhc2VW
YWx1ZSwgcHJvcGVydHlBc1VJbnQzMiwgdmFsdWUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgfQogCiAgICAgaWYgKGlzTmFtZShwcm9wZXJ0eSkpIHsKICAgICAgICAgUHV0
UHJvcGVydHlTbG90IHNsb3Qoc3RyaWN0KTsKLSAgICAgICAgYmFzZVZhbHVlLnB1dChleGVjLCBq
c0Nhc3Q8TmFtZUluc3RhbmNlKj4ocHJvcGVydHkuYXNDZWxsKCkpLT5wcml2YXRlTmFtZSgpLCB2
YWx1ZSwgc2xvdCk7CisgICAgICAgIGlmIChkaXJlY3QpIHsKKyAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKKyAgICAgICAgICAgIGFzT2JqZWN0KGJhc2VW
YWx1ZSktPnB1dERpcmVjdCgqdm0sIGpzQ2FzdDxOYW1lSW5zdGFuY2UqPihwcm9wZXJ0eS5hc0Nl
bGwoKSktPnByaXZhdGVOYW1lKCksIHZhbHVlLCBzbG90KTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBiYXNlVmFsdWUucHV0KGV4ZWMsIGpzQ2FzdDxOYW1lSW5zdGFuY2UqPihwcm9wZXJ0
eS5hc0NlbGwoKSktPnByaXZhdGVOYW1lKCksIHZhbHVlLCBzbG90KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTE1LDcgKzEyMywxMSBAQCBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZQog
ICAgIElkZW50aWZpZXIgaWRlbnQoZXhlYywgcHJvcGVydHkudG9TdHJpbmcoZXhlYyktPnZhbHVl
KGV4ZWMpKTsKICAgICBpZiAoIXZtLT5leGNlcHRpb24oKSkgewogICAgICAgICBQdXRQcm9wZXJ0
eVNsb3Qgc2xvdChzdHJpY3QpOwotICAgICAgICBiYXNlVmFsdWUucHV0KGV4ZWMsIGlkZW50LCB2
YWx1ZSwgc2xvdCk7CisgICAgICAgIGlmIChkaXJlY3QpIHsKKyAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKKyAgICAgICAgICAgIGFzT2JqZWN0KGJhc2VW
YWx1ZSktPnB1dERpcmVjdCgqdm0sIGpzQ2FzdDxOYW1lSW5zdGFuY2UqPihwcm9wZXJ0eS5hc0Nl
bGwoKSktPnByaXZhdGVOYW1lKCksIHZhbHVlLCBzbG90KTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBiYXNlVmFsdWUucHV0KGV4ZWMsIGlkZW50LCB2YWx1ZSwgc2xvdCk7CiAgICAgfQog
fQogCkBAIC0zNTAsNyArMzYyLDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5
VmFsU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2QKICAgICBWTSog
dm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBl
eGVjKTsKICAgICAKLSAgICBvcGVyYXRpb25QdXRCeVZhbEludGVybmFsPHRydWU+KGV4ZWMsIGVu
Y29kZWRCYXNlLCBlbmNvZGVkUHJvcGVydHksIGVuY29kZWRWYWx1ZSk7CisgICAgb3BlcmF0aW9u
UHV0QnlWYWxJbnRlcm5hbDx0cnVlLCBmYWxzZT4oZXhlYywgZW5jb2RlZEJhc2UsIGVuY29kZWRQ
cm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEJ5VmFsTm9uU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQpAQCAtMzU4LDcgKzM3MCw3IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeVZhbE5vblN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIGVuCiAg
ICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNl
cih2bSwgZXhlYyk7CiAgICAgCi0gICAgb3BlcmF0aW9uUHV0QnlWYWxJbnRlcm5hbDxmYWxzZT4o
ZXhlYywgZW5jb2RlZEJhc2UsIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKKyAgICBv
cGVyYXRpb25QdXRCeVZhbEludGVybmFsPGZhbHNlLCBmYWxzZT4oZXhlYywgZW5jb2RlZEJhc2Us
IGVuY29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKIH0KIAogdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogY2Vs
bCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCkBAIC0zNjYsNyArMzc4LDcgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1
dEJ5VmFsQ2VsbFN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogY2VsbCwgRW4KICAgICBW
TSogdm0gPSAmZXhlYy0+dm0oKTsKICAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZt
LCBleGVjKTsKICAgICAKLSAgICBvcGVyYXRpb25QdXRCeVZhbEludGVybmFsPHRydWU+KGV4ZWMs
IEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwor
ICAgIG9wZXJhdGlvblB1dEJ5VmFsSW50ZXJuYWw8dHJ1ZSwgZmFsc2U+KGV4ZWMsIEpTVmFsdWU6
OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOwogfQogCiB2b2lk
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsTm9uU3RyaWN0KEV4ZWNTdGF0ZSog
ZXhlYywgSlNDZWxsKiBjZWxsLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkUHJvcGVydHksIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKQEAgLTM3NCw3ICszODYsNyBAQCB2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsTm9uU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgSlND
ZWxsKiBjZWxsLAogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwogICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOwogICAgIAotICAgIG9wZXJhdGlvblB1dEJ5VmFsSW50
ZXJuYWw8ZmFsc2U+KGV4ZWMsIEpTVmFsdWU6OmVuY29kZShjZWxsKSwgZW5jb2RlZFByb3BlcnR5
LCBlbmNvZGVkVmFsdWUpOworICAgIG9wZXJhdGlvblB1dEJ5VmFsSW50ZXJuYWw8ZmFsc2UsIGZh
bHNlPihleGVjLCBKU1ZhbHVlOjplbmNvZGUoY2VsbCksIGVuY29kZWRQcm9wZXJ0eSwgZW5jb2Rl
ZFZhbHVlKTsKIH0KIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQmV5b25k
QXJyYXlCb3VuZHNTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYXJyYXksIGludDMy
X3QgaW5kZXgsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKQEAgLTQ0MSw2ICs0NTMsNjUg
QEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dERvdWJsZUJ5VmFsQmV5b25kQXJyYXlC
b3VuZHNOb25TdHJpY3QoRXhlY1N0YXRlKgogICAgICAgICBhcnJheSwgZXhlYywgSWRlbnRpZmll
cjo6ZnJvbShleGVjLCBpbmRleCksIGpzVmFsdWUsIHNsb3QpOwogfQogCit2b2lkIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7
CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAg
b3BlcmF0aW9uUHV0QnlWYWxJbnRlcm5hbDx0cnVlLCB0cnVlPihleGVjLCBlbmNvZGVkQmFzZSwg
ZW5jb2RlZFByb3BlcnR5LCBlbmNvZGVkVmFsdWUpOworfQorCit2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkQmFzZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7Cisg
ICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgb3Bl
cmF0aW9uUHV0QnlWYWxJbnRlcm5hbDxmYWxzZSwgdHJ1ZT4oZXhlYywgZW5jb2RlZEJhc2UsIGVu
Y29kZWRQcm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKK30KKwordm9pZCBKSVRfT1BFUkFUSU9OIG9w
ZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCog
Y2VsbCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZy
YW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgb3BlcmF0aW9uUHV0QnlWYWxJ
bnRlcm5hbDx0cnVlLCB0cnVlPihleGVjLCBKU1ZhbHVlOjplbmNvZGUoY2VsbCksIGVuY29kZWRQ
cm9wZXJ0eSwgZW5jb2RlZFZhbHVlKTsKK30KKwordm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0Q2VsbE5vblN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogY2Vs
bCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFByb3BlcnR5LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1l
VHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CisgICAgCisgICAgb3BlcmF0aW9uUHV0QnlWYWxJbnRl
cm5hbDxmYWxzZSwgdHJ1ZT4oZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKGNlbGwpLCBlbmNvZGVkUHJv
cGVydHksIGVuY29kZWRWYWx1ZSk7Cit9CisKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Q
dXRCeVZhbERpcmVjdEJleW9uZEFycmF5Qm91bmRzU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIGFycmF5LCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Cit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2Vy
IHRyYWNlcih2bSwgZXhlYyk7CisgICAgaWYgKGluZGV4ID49IDApIHsKKyAgICAgICAgYXJyYXkt
PnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4LCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KSwgMCwgUHV0RGlyZWN0SW5kZXhTaG91bGRUaHJvdyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgCisgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodHJ1ZSk7CisgICAgYXJyYXktPnB1dERp
cmVjdChleGVjLT52bSgpLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGluZGV4KSwgSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRWYWx1ZSksIHNsb3QpOworfQorCit2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdChFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBhcnJheSwgaW50MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQoreworICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxG
cmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIAorICAgIGlmIChpbmRleCA+PSAwKSB7
CisgICAgICAgIGFycmF5LT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCwgSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIFB1
dFByb3BlcnR5U2xvdCBzbG90KGZhbHNlKTsKKyAgICBhcnJheS0+cHV0RGlyZWN0KGV4ZWMtPnZt
KCksIElkZW50aWZpZXI6OmZyb20oZXhlYywgaW5kZXgpLCBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKSwgc2xvdCk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQXJyYXlQdXNoKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
LCBKU0FycmF5KiBhcnJheSkKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXggNGYxYzlhZDBhZmMxNTRlNmVm
ZWJhODE4OTE0NTI5MDhmNGVhYTJiOS4uNzM1YzQ2ZTY3NDNlNjI4NmEzOThkOGIyYmRiMWU1ODEx
Mzg0Mjk0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKQEAg
LTc5LDYgKzc5LDEzIEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbENlbGxT
dHJpY3QoRXhlY1N0YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsCiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlWYWxDZWxsTm9uU3RyaWN0KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxCZXlv
bmRBcnJheUJvdW5kc1N0cmljdChFeGVjU3RhdGUqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QoRXhlY1N0
YXRlKiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpIFdURl9JTlRFUk5BTDsKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbERp
cmVjdEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgaW50
MzJfdCBpbmRleCwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Cit2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RTdHJpY3QoRXhlY1N0YXRl
KiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9w
ZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3QoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJhc2UsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0
eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RDZWxsU3RyaWN0KEV4ZWNTdGF0ZSosIEpT
Q2VsbCosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
QnlWYWxEaXJlY3RDZWxsTm9uU3RyaWN0KEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRQcm9wZXJ0eSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKSBXVEZfSU5U
RVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRB
cnJheUJvdW5kc1N0cmljdChFeGVjU3RhdGUqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkgV1RGX0lOVEVSTkFMOwordm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QoRXhl
Y1N0YXRlKiwgSlNPYmplY3QqLCBpbnQzMl90IGluZGV4LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXREb3Vi
bGVCeVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgaW50
MzJfdCBpbmRleCwgZG91YmxlIHZhbHVlKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0RG91YmxlQnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmljdChFeGVj
U3RhdGUqLCBKU09iamVjdCosIGludDMyX3QgaW5kZXgsIGRvdWJsZSB2YWx1ZSkgV1RGX0lOVEVS
TkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25BcnJheVB1c2goRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBKU0FycmF5KikgV1RGX0lOVEVS
TkFMOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAppbmRleCA4MjQ4ZWU1NTJhNGRlYWRhNzRkZDg3NmQz
Mjk1Yjg3ZjAyYjdjZmQyLi4zOTU1NzhmZTgyNGI1Mzc4ODU0MzVhYmQ5NTQyMjcwZGRmZmYzYTk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRp
Y3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcApAQCAtNTQ1LDYgKzU0NSw3IEBAIHByaXZhdGU6CiAK
ICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIC8vIFRoZXNlIGdldCBpZ25vcmVkIGJlY2F1c2UgdGhl
eSBkb24ndCByZXR1cm4gYW55dGhpbmcuCisgICAgICAgIGNhc2UgUHV0QnlWYWxEaXJlY3Q6CiAg
ICAgICAgIGNhc2UgUHV0QnlWYWw6CiAgICAgICAgIGNhc2UgUHV0Q2xvc3VyZVZhcjoKICAgICAg
ICAgY2FzZSBSZXR1cm46CkBAIC03MjYsNyArNzI3LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICBub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+dm90ZShWb3RlVmFsdWUpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKworICAgICAgICBjYXNl
IFB1dEJ5VmFsRGlyZWN0OgogICAgICAgICBjYXNlIFB1dEJ5VmFsOgogICAgICAgICBjYXNlIFB1
dEJ5VmFsQWxpYXM6IHsKICAgICAgICAgICAgIEVkZ2UgY2hpbGQxID0gbV9ncmFwaC52YXJBcmdD
aGlsZChub2RlLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVj
dXRlLmgKaW5kZXggMTczZTVhYTQ0YzNlMDRiNjE3OTI2Yzc1NWVmM2YyM2EzZDcyNWIxNC4uMzQ2
ODQzNjhiZGUwNDlkMmNjOGFlYjc4MGM2YjgwNDBmMDUyNjFjNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTI1Myw3ICsyNTMsOCBAQCBib29s
IHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUpCiAgICAgICAgIAogICAgIGNhc2UgR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQ6CiAg
ICAgICAgIHJldHVybiAhKHN0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH4o
U3BlY1R5cGVkQXJyYXlWaWV3KSk7Ci0gICAgICAgIAorICAgICAgICAgICAgCisgICAgY2FzZSBQ
dXRCeVZhbERpcmVjdDoKICAgICBjYXNlIFB1dEJ5VmFsOgogICAgIGNhc2UgUHV0QnlWYWxBbGlh
czoKICAgICAgICAgcmV0dXJuIG5vZGUtPmFycmF5TW9kZSgpLm1vZGVGb3JQdXQoKS5hbHJlYWR5
Q2hlY2tlZCgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUMzJfNjQuY3BwCmluZGV4IDBkMTdlNTE1NDUzNDNkYTYyYmEzN2E5MjI4NWMyNzI1Nzlm
ODdjMTAuLmQ4NTE4ZjMxOTM1ZmNkNzRhNTAwMjM4MDVlYmE2YzgzMGYxODllMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cApAQCAtMTg2NiwxMSArMTg2NiwxNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29u
dGlndW91c1B1dEJ5VmFsKE5vZGUqIG5vZGUsIEJhc2VPcGVyYW5kVHlwZSYgYmFzZQogICAgIHN0
b3JhZ2UudXNlKCk7CiAgICAgCiAgICAgaWYgKGFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpIHsK
LSAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCi0gICAgICAgICAgICBzbG93UGF0aENhbGwo
CisgICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KSB7CisgICAgICAgICAg
ICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCisgICAgICAgICAgICAgICAgc2xv
d0Nhc2UsIHRoaXMsCisgICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCktPmlzU3RyaWN0
TW9kZSgpID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6
IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsCisgICAg
ICAgICAgICAgICAgTm9SZXN1bHQsIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVRhZywgdmFs
dWVQYXlsb2FkUmVnKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhZGRTbG93UGF0
aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCiAgICAgICAgICAgICAgICAgc2xvd0Nhc2UsIHRoaXMs
CiAgICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpID8gb3Bl
cmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFs
QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsCiAgICAgICAgICAgICAgICAgTm9SZXN1bHQsIGJh
c2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVRhZywgdmFsdWVQYXlsb2FkUmVnKSk7CisgICAgICAg
IH0KICAgICB9CiAKICAgICBub1Jlc3VsdChub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0
bHkpOyAgICAKQEAgLTI2MjQsNiArMjYzMCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2FzZSBQdXRCeVZh
bERpcmVjdDoKICAgICBjYXNlIFB1dEJ5VmFsOgogICAgIGNhc2UgUHV0QnlWYWxBbGlhczogewog
ICAgICAgICBFZGdlIGNoaWxkMSA9IG1faml0LmdyYXBoKCkudmFyQXJnQ2hpbGQobm9kZSwgMCk7
CkBAIC0yNjQyLDcgKzI2NDksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgICAgICAgICBhbHJlYWR5SGFuZGxlZCA9IHRydWU7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzogewotICAgICAgICAgICAgQVNTRVJU
KG5vZGUtPm9wKCkgPT0gUHV0QnlWYWwpOworICAgICAgICAgICAgQVNTRVJUKG5vZGUtPm9wKCkg
PT0gUHV0QnlWYWwgfHwgbm9kZS0+b3AoKSA9PSBQdXRCeVZhbERpcmVjdCk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgY2hpbGQxKTsg
Ly8gU2F2ZSBhIHJlZ2lzdGVyLCBzcGVjdWxhdGUgY2VsbC4gV2UnbGwgcHJvYmFibHkgYmUgcmln
aHQuCiAgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBjaGlsZDIpOwpA
QCAtMjY1NCw3ICsyNjYxLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSog
bm9kZSkKICAgICAgICAgICAgIEdQUlJlZyB2YWx1ZVBheWxvYWRHUFIgPSB2YWx1ZS5wYXlsb2Fk
R1BSKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7Ci0gICAg
ICAgICAgICBjYWxsT3BlcmF0aW9uKG1faml0LmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSA/
IG9wZXJhdGlvblB1dEJ5VmFsQ2VsbFN0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsQ2VsbE5vblN0
cmljdCwgYmFzZUdQUiwgcHJvcGVydHlUYWdHUFIsIHByb3BlcnR5UGF5bG9hZEdQUiwgdmFsdWVU
YWdHUFIsIHZhbHVlUGF5bG9hZEdQUik7CisgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBQ
dXRCeVZhbERpcmVjdCkKKyAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG1faml0LmNvZGVC
bG9jaygpLT5pc1N0cmljdE1vZGUoKSA/IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbFN0cmlj
dCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0Q2VsbE5vblN0cmljdCwgYmFzZUdQUiwgcHJvcGVy
dHlUYWdHUFIsIHByb3BlcnR5UGF5bG9hZEdQUiwgdmFsdWVUYWdHUFIsIHZhbHVlUGF5bG9hZEdQ
Uik7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihtX2pp
dC5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkgPyBvcGVyYXRpb25QdXRCeVZhbENlbGxTdHJp
Y3QgOiBvcGVyYXRpb25QdXRCeVZhbENlbGxOb25TdHJpY3QsIGJhc2VHUFIsIHByb3BlcnR5VGFn
R1BSLCBwcm9wZXJ0eVBheWxvYWRHUFIsIHZhbHVlVGFnR1BSLCB2YWx1ZVBheWxvYWRHUFIpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBub1Jlc3VsdChub2RlKTsKICAgICAgICAgICAgIGFs
cmVhZHlIYW5kbGVkID0gdHJ1ZTsKQEAgLTI3NzksMTEgKzI3ODksMTcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgc3RvcmFnZS51c2UoKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFzbG93Q2FzZXMuZW1wdHkoKSkgewotICAg
ICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKAotICAgICAgICAgICAgICAgICAgICBz
bG93UGF0aENhbGwoCisgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gUHV0QnlWYWxE
aXJlY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1Bh
dGhDYWxsKAorICAgICAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpID8gb3Bl
cmF0aW9uUHV0QnlWYWxEaXJlY3RCZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1
dEJ5VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNOb25TdHJpY3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICBOb1Jlc3VsdCwgYmFzZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlVGFnUmVnLCB2YWx1
ZVBheWxvYWRSZWcpKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoCiAgICAgICAgICAgICAgICAg
ICAgICAgICBzbG93Q2FzZXMsIHRoaXMsCiAgICAgICAgICAgICAgICAgICAgICAgICBtX2ppdC5j
b2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkgPyBvcGVyYXRpb25QdXRCeVZhbEJleW9uZEFycmF5
Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJheUJvdW5kc05vblN0cmlj
dCwKICAgICAgICAgICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBiYXNlUmVnLCBwcm9wZXJ0eVJl
ZywgdmFsdWVUYWdSZWcsIHZhbHVlUGF5bG9hZFJlZykpOworICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgbm9SZXN1bHQobm9kZSwgVXNlQ2hpbGRyZW5DYWxs
ZWRFeHBsaWNpdGx5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwCmluZGV4IDVjNTljODQ1NjQyOTBjNDc2YWQ4ZjhiMTJkMDMzZWMxMjAz
OWRmYTMuLmRhNjBjY2MyMDc2MzAwNTcwZmNlMDQ1ZWEwYTFhYWY3NTc5ZDg2ZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcApAQCAt
MjkxNSw2ICsyOTE1LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAg
IGNhc2UgUHV0QnlWYWw6CiAgICAgY2FzZSBQdXRCeVZhbEFsaWFzOiB7CiAgICAgICAgIEVkZ2Ug
Y2hpbGQxID0gbV9qaXQuZ3JhcGgoKS52YXJBcmdDaGlsZChub2RlLCAwKTsKQEAgLTI5NDIsOCAr
Mjk0MywxMCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAg
ICAgICAgICBHUFJSZWcgYXJnMkdQUiA9IGFyZzIuZ3ByKCk7CiAgICAgICAgICAgICBHUFJSZWcg
YXJnM0dQUiA9IGFyZzMuZ3ByKCk7CiAgICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG1faml0LnN0cmljdE1vZGVGb3Io
bm9kZS0+Y29kZU9yaWdpbikgPyBvcGVyYXRpb25QdXRCeVZhbFN0cmljdCA6IG9wZXJhdGlvblB1
dEJ5VmFsTm9uU3RyaWN0LCBhcmcxR1BSLCBhcmcyR1BSLCBhcmczR1BSKTsKKyAgICAgICAgICAg
IGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KQorICAgICAgICAgICAgICAgIGNhbGxP
cGVyYXRpb24obV9qaXQuc3RyaWN0TW9kZUZvcihub2RlLT5jb2RlT3JpZ2luKSA/IG9wZXJhdGlv
blB1dEJ5VmFsRGlyZWN0U3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3ROb25TdHJpY3Qs
IGFyZzFHUFIsIGFyZzJHUFIsIGFyZzNHUFIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIGNhbGxPcGVyYXRpb24obV9qaXQuc3RyaWN0TW9kZUZvcihub2RlLT5jb2RlT3JpZ2lu
KSA/IG9wZXJhdGlvblB1dEJ5VmFsU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxOb25TdHJpY3Qs
IGFyZzFHUFIsIGFyZzJHUFIsIGFyZzNHUFIpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBu
b1Jlc3VsdChub2RlKTsKICAgICAgICAgICAgIGFscmVhZHlIYW5kbGVkID0gdHJ1ZTsKQEAgLTMw
MzEsMTEgKzMwMzQsMTcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2Rl
KQogICAgICAgICAgICAgc3RvcmFnZS51c2UoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
aWYgKGFycmF5TW9kZS5pc091dE9mQm91bmRzKCkpIHsKLSAgICAgICAgICAgICAgICBhZGRTbG93
UGF0aEdlbmVyYXRvcigKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGhDYWxsKAorICAgICAg
ICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KSB7CisgICAgICAgICAg
ICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNsb3dDYXNlLCB0aGlzLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9q
aXQuY29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpID8gb3BlcmF0aW9uUHV0QnlWYWxEaXJlY3RC
ZXlvbmRBcnJheUJvdW5kc1N0cmljdCA6IG9wZXJhdGlvblB1dEJ5VmFsRGlyZWN0QmV5b25kQXJy
YXlCb3VuZHNOb25TdHJpY3QsCisgICAgICAgICAgICAgICAgICAgICAgICBOb1Jlc3VsdCwgYmFz
ZVJlZywgcHJvcGVydHlSZWcsIHZhbHVlUmVnKSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKAog
ICAgICAgICAgICAgICAgICAgICAgICAgc2xvd0Nhc2UsIHRoaXMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2ppdC5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkgPyBvcGVyYXRpb25QdXRC
eVZhbEJleW9uZEFycmF5Qm91bmRzU3RyaWN0IDogb3BlcmF0aW9uUHV0QnlWYWxCZXlvbmRBcnJh
eUJvdW5kc05vblN0cmljdCwKICAgICAgICAgICAgICAgICAgICAgICAgIE5vUmVzdWx0LCBiYXNl
UmVnLCBwcm9wZXJ0eVJlZywgdmFsdWVSZWcpKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIG5vUmVzdWx0KG5vZGUsIFVzZUNoaWxkcmVuQ2FsbGVkRXhw
bGljaXRseSk7CkBAIC0zMTE5LDExICszMTI4LDE3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgICAgIHN0b3JhZ2UudXNlKCk7CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGlmICghc2xvd0Nhc2VzLmVtcHR5KCkpIHsKLSAgICAgICAgICAgICAg
ICBhZGRTbG93UGF0aEdlbmVyYXRvcigKLSAgICAgICAgICAgICAgICAgICAgc2xvd1BhdGhDYWxs
KAorICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IFB1dEJ5VmFsRGlyZWN0KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbCgKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1faml0LmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSA/IG9wZXJhdGlvblB1dEJ5
VmFsRGlyZWN0QmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZhbERpcmVj
dEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgTm9S
ZXN1bHQsIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZykpOworICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQ
YXRoQ2FsbCgKICAgICAgICAgICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhpcywKICAgICAg
ICAgICAgICAgICAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLT5pc1N0cmljdE1vZGUoKSA/IG9w
ZXJhdGlvblB1dEJ5VmFsQmV5b25kQXJyYXlCb3VuZHNTdHJpY3QgOiBvcGVyYXRpb25QdXRCeVZh
bEJleW9uZEFycmF5Qm91bmRzTm9uU3RyaWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgTm9S
ZXN1bHQsIGJhc2VSZWcsIHByb3BlcnR5UmVnLCB2YWx1ZVJlZykpOworICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgbm9SZXN1bHQobm9kZSwgVXNlQ2hpbGRy
ZW5DYWxsZWRFeHBsaWNpdGx5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCmluZGV4IGMyMjMwZTM3YTAwODc4MDc0
OWQ0NWI5ZTYzZjc4OGE0Y2Q0MjBlOWQuLjk0ODM2MDJkODA0YWFjMjUzMzczNTIyMzJlNDI0NmEy
MDhhZTYwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNo
ZWNrSG9pc3RpbmdQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdU
eXBlQ2hlY2tIb2lzdGluZ1BoYXNlLmNwcApAQCAtMjQ5LDYgKzI0OSw3IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAgICAg
ICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAgICAgICAgICAgICAgIGNhc2UgR2V0QnlWYWw6
CisgICAgICAgICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAgICAgICAgICAgICBj
YXNlIFB1dEJ5VmFsOgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWxBbGlhczoKICAgICAg
ICAgICAgICAgICBjYXNlIEdldEFycmF5TGVuZ3RoOgpAQCAtMzUwLDYgKzM1MSw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAg
ICAgICAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgogICAgICAgICAgICAgICAgIGNhc2UgR2V0
QnlWYWw6CisgICAgICAgICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAgICAgICAg
ICAgICBjYXNlIFB1dEJ5VmFsOgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWxBbGlhczoK
ICAgICAgICAgICAgICAgICBjYXNlIEdldEFycmF5TGVuZ3RoOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwCmluZGV4IDA3NzUwZDIwMmYxMjAwZjYyNmZlZTBkOWJjMjA1OTk3NzU4MzI0MWIuLjgy
ZmVkMGJhM2JjYWY5YWM2YmZhMTE1OWFlYzg5NDZiZDZmZTU3NDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKQEAgLTI5Myw2ICsyOTMsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVN
YWluUGFzcygpCiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fbm9ybWFsX291
dF9vZl9saW5lOgogICAgICAgICBERUZJTkVfT1Aob3BfcHV0X2J5X2lkKQogICAgICAgICBERUZJ
TkVfT1Aob3BfcHV0X2J5X2luZGV4KQorICAgICAgICBjYXNlIG9wX2RpcmVjdF9wdXRfYnlfdmFs
OgogICAgICAgICBERUZJTkVfT1Aob3BfcHV0X2J5X3ZhbCkKICAgICAgICAgREVGSU5FX09QKG9w
X3B1dF9nZXR0ZXJfc2V0dGVyKQogICAgICAgICBjYXNlIG9wX2luaXRfZ2xvYmFsX2NvbnN0X25v
cDoKQEAgLTQ0Niw2ICs0NDcsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMo
KQogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pZF90cmFuc2l0aW9uX2RpcmVjdF9vdXRfb2ZfbGlu
ZToKICAgICAgICAgY2FzZSBvcF9wdXRfYnlfaWRfdHJhbnNpdGlvbl9ub3JtYWxfb3V0X29mX2xp
bmU6CiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9wdXRfYnlfaWQpCisgICAgICAgIGNh
c2Ugb3BfZGlyZWN0X3B1dF9ieV92YWw6CiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9w
dXRfYnlfdmFsKQogICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfcnNoaWZ0KQogICAgICAg
ICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfdXJzaGlmdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmlu
ZGV4IDhkODQ3Zjg3MzhkNzMwYTMyZjM1ODNjNTVmOWNiMjhmNDg0MjdkODMuLmY5OTYxNzg3MWQ4
ODJhMzE5MWJlODlmNGZiOTM4NzI0MmZiMDIxNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApA
QCAtMzIzLDYgKzMyMywxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGppdC5tX2J5
dGVjb2RlT2Zmc2V0ID0gYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4OwogICAgICAgICAgICAgaml0
LnByaXZhdGVDb21waWxlUHV0QnlWYWwoYnlWYWxJbmZvLCByZXR1cm5BZGRyZXNzLCBhcnJheU1v
ZGUpOwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzdGF0aWMgdm9pZCBjb21waWxlRGly
ZWN0UHV0QnlWYWwoVk0qIHZtLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQnlWYWxJbmZvKiBieVZh
bEluZm8sIFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcywgSklUQXJyYXlNb2RlIGFycmF5
TW9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgSklUIGppdCh2bSwgY29kZUJsb2NrKTsKKyAg
ICAgICAgICAgIGppdC5tX2J5dGVjb2RlT2Zmc2V0ID0gYnlWYWxJbmZvLT5ieXRlY29kZUluZGV4
OworICAgICAgICAgICAgaml0LnByaXZhdGVDb21waWxlUHV0QnlWYWwoYnlWYWxJbmZvLCByZXR1
cm5BZGRyZXNzLCBhcnJheU1vZGUpOworICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIENvZGVS
ZWYgY29tcGlsZUNUSU5hdGl2ZUNhbGwoVk0qIHZtLCBOYXRpdmVGdW5jdGlvbiBmdW5jKQogICAg
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRl
eCA1M2YyYTQxOGY1ZWJhMjUzMzkxZmM0NWNkNmJmNWE3YWU5ODNiZjY0Li4xYWE0ZDllNGFlZWY3
ZTc5ZWYwNzI3Njg1YjMwNzNjM2YxYWIzZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTQ5OCw2ICs0OTgsMjIgQEAgc3RhdGljIHZvaWQgcHV0
QnlWYWwoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1
YnNjcmlwdCwKICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKENhbGxGcmFt
ZSogY2FsbEZyYW1lLCBKU09iamVjdCogYmFzZU9iamVjdCwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpT
VmFsdWUgdmFsdWUpCit7CisgICAgaWYgKExJS0VMWShzdWJzY3JpcHQuaXNVSW50MzIoKSkpIHsK
KyAgICAgICAgdWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigpOworICAgICAgICBiYXNl
T2JqZWN0LT5wdXREaXJlY3RJbmRleChjYWxsRnJhbWUsIGksIHZhbHVlKTsKKyAgICB9IGVsc2Ug
aWYgKGlzTmFtZShzdWJzY3JpcHQpKSB7CisgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KGNh
bGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKKyAgICAgICAgYmFzZU9iamVj
dC0+cHV0RGlyZWN0KGNhbGxGcmFtZS0+dm0oKSwganNDYXN0PE5hbWVJbnN0YW5jZSo+KHN1YnNj
cmlwdC5hc0NlbGwoKSktPnByaXZhdGVOYW1lKCksIHZhbHVlLCBzbG90KTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5KGNhbGxGcmFtZSwgc3Vic2NyaXB0LnRvU3Ry
aW5nKGNhbGxGcmFtZSktPnZhbHVlKGNhbGxGcmFtZSkpOworICAgICAgICBpZiAoIWNhbGxGcmFt
ZS0+dm0oKS5leGNlcHRpb24oKSkgeyAvLyBEb24ndCBwdXQgdG8gYW4gb2JqZWN0IGlmIHRvU3Ry
aW5nIHRocmV3IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgIFB1dFByb3BlcnR5U2xvdCBzbG90
KGNhbGxGcmFtZS0+Y29kZUJsb2NrKCktPmlzU3RyaWN0TW9kZSgpKTsKKyAgICAgICAgICAgIGJh
c2VPYmplY3QtPnB1dERpcmVjdChjYWxsRnJhbWUtPnZtKCksIHByb3BlcnR5LCB2YWx1ZSwgc2xv
dCk7CisgICAgICAgIH0KKyAgICB9Cit9CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
QnlWYWwoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTU0NCw2ICs1NjAsNTEgQEAgdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZEJhc2UKICAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNj
cmlwdCwgdmFsdWUpOwogfQogCit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0
QnlWYWwoRXhlY1N0YXRlKiBjYWxsRnJhbWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRTdWJzY3JpcHQsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK3sKKyAgICBWTSYgdm0gPSBjYWxsRnJhbWUtPnZtKCk7CisgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGNhbGxGcmFtZSk7CisgICAgCisgICAgSlNWYWx1ZSBi
YXNlVmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2VWYWx1ZSk7CisgICAgSlNWYWx1
ZSBzdWJzY3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CisgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFJFTEVBU0Vf
QVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKKyAgICBKU09iamVjdCogb2JqZWN0ID0gYXNP
YmplY3QoYmFzZVZhbHVlKTsKKyAgICBpZiAoc3Vic2NyaXB0LmlzSW50MzIoKSkgeworICAgICAg
ICAvLyBTZWUgaWYgaXQncyB3b3J0aCBvcHRpbWl6aW5nIGF0IGFsbC4KKyAgICAgICAgYm9vbCBk
aWRPcHRpbWl6ZSA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgdW5zaWduZWQgYnl0ZWNvZGVP
ZmZzZXQgPSBjYWxsRnJhbWUtPmxvY2F0aW9uQXNCeXRlY29kZU9mZnNldCgpOworICAgICAgICBB
U1NFUlQoYnl0ZWNvZGVPZmZzZXQpOworICAgICAgICBCeVZhbEluZm8mIGJ5VmFsSW5mbyA9IGNh
bGxGcmFtZS0+Y29kZUJsb2NrKCktPmdldEJ5VmFsSW5mbyhieXRlY29kZU9mZnNldCAtIDEpOwor
ICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby5zdHViUm91dGluZSk7CisgICAgICAgIAorICAgICAg
ICBpZiAoaGFzT3B0aW1pemFibGVJbmRleGluZyhvYmplY3QtPnN0cnVjdHVyZSgpKSkgeworICAg
ICAgICAgICAgLy8gQXR0ZW1wdCB0byBvcHRpbWl6ZS4KKyAgICAgICAgICAgIEpJVEFycmF5TW9k
ZSBhcnJheU1vZGUgPSBqaXRBcnJheU1vZGVGb3JTdHJ1Y3R1cmUob2JqZWN0LT5zdHJ1Y3R1cmUo
KSk7CisgICAgICAgICAgICBpZiAoYXJyYXlNb2RlICE9IGJ5VmFsSW5mby5hcnJheU1vZGUpIHsK
KyAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVEaXJlY3RQdXRCeVZhbCgmdm0sIGNhbGxGcmFt
ZS0+Y29kZUJsb2NrKCksICZieVZhbEluZm8sIFJldHVybkFkZHJlc3NQdHIoT1VSX1JFVFVSTl9B
RERSRVNTKSwgYXJyYXlNb2RlKTsKKyAgICAgICAgICAgICAgICBkaWRPcHRpbWl6ZSA9IHRydWU7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICghZGlkT3B0
aW1pemUpIHsKKyAgICAgICAgICAgIC8vIElmIHdlIHRha2Ugc2xvdyBwYXRoIG1vcmUgdGhhbiAx
MCB0aW1lcyB3aXRob3V0IHBhdGNoaW5nIHRoZW4gbWFrZSBzdXJlIHdlCisgICAgICAgICAgICAv
LyBuZXZlciBtYWtlIHRoYXQgbWlzdGFrZSBhZ2Fpbi4gT3IsIGlmIHdlIGZhaWxlZCB0byBwYXRj
aCBhbmQgd2UgaGF2ZSBzb21lIG9iamVjdAorICAgICAgICAgICAgLy8gdGhhdCBpbnRlcmNlcHRz
IGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4gRm9yIGNh
c2VzCisgICAgICAgICAgICAvLyB3aGVyZSB3ZSBzZWUgbm9uLWluZGV4LWludGVyY2VwdGluZyBv
YmplY3RzLCB0aGlzIGdpdmVzIDEwIGl0ZXJhdGlvbnMgd29ydGggb2YKKyAgICAgICAgICAgIC8v
IG9wcG9ydHVuaXR5IGZvciB1cyB0byBvYnNlcnZlIHRoYXQgdGhlIGdldF9ieV92YWwgbWF5IGJl
IHBvbHltb3JwaGljLgorICAgICAgICAgICAgaWYgKCsrYnlWYWxJbmZvLnNsb3dQYXRoQ291bnQg
Pj0gMTAKKyAgICAgICAgICAgICAgICB8fCBvYmplY3QtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygp
LmludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFpl
cm8oKSkgeworICAgICAgICAgICAgICAgIC8vIERvbid0IGV2ZXIgdHJ5IHRvIG9wdGltaXplLgor
ICAgICAgICAgICAgICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihjYWxsRnJhbWUtPmNv
ZGVCbG9jaygpKTsKKyAgICAgICAgICAgICAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxlclRv
RnVuY3Rpb24oUmV0dXJuQWRkcmVzc1B0cihPVVJfUkVUVVJOX0FERFJFU1MpLCBGdW5jdGlvblB0
cihvcGVyYXRpb25EaXJlY3RQdXRCeVZhbEdlbmVyaWMpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KKyAgICBkaXJlY3RQdXRCeVZhbChjYWxsRnJhbWUsIG9iamVjdCwgc3Vic2Ny
aXB0LCB2YWx1ZSk7Cit9CisKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbEdl
bmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFzZVZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTU1Niw2ICs2MTcsMTkgQEAgdm9p
ZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3RhdGUqIGV4ZWMs
IEVuY29kZWRKU1ZhbHVlIGVuY28KICAgICBwdXRCeVZhbChleGVjLCBiYXNlVmFsdWUsIHN1YnNj
cmlwdCwgdmFsdWUpOwogfQogCisKK3ZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25EaXJlY3RQ
dXRCeVZhbEdlbmVyaWMoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkU3Vic2NyaXB0LCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCit7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxs
RnJhbWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CisgICAgCisgICAgSlNWYWx1ZSBiYXNlVmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZEJhc2VWYWx1ZSk7CisgICAgSlNWYWx1ZSBzdWJz
Y3JpcHQgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFN1YnNjcmlwdCk7CisgICAgSlNWYWx1ZSB2
YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOworICAgIFJFTEVBU0VfQVNTRVJU
KGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKKyAgICBkaXJlY3RQdXRCeVZhbChleGVjLCBhc09iamVj
dChiYXNlVmFsdWUpLCBzdWJzY3JpcHQsIHZhbHVlKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25DYWxsRXZhbChFeGVjU3RhdGUqIGV4ZWNDYWxsZWUpCiB7CiAg
ICAgQ2FsbEZyYW1lKiBjYWxsZXJGcmFtZSA9IGV4ZWNDYWxsZWUtPmNhbGxlckZyYW1lKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IDg4YWYxYmE1NjQ4
ZjUzNTI1ZDdhNmUzOWVlYTg0Njc5N2I3ZTVhMWYuLjI2ZDZjMWZjNTYyMjZlMDE5YzlmMGQxYjc5
NTAyMjgxYzM5OWI4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oCkBAIC0yMDIsNyArMjAyLDkgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5
SWREaXJlY3RTdHJpY3RCdWlsZExpc3QoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmEKIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0QnVpbGRMaXN0KEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZEJhc2UsIFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUmVhbGxvY2F0ZVN0b3JhZ2VBbmRGaW5pc2hQdXQoRXhlY1N0YXRlKiwgSlNPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBQcm9wZXJ0eU9mZnNldCwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5B
TDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeVZhbChFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7
Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWwoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVS
TkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5VmFsR2VuZXJpYyhFeGVjU3Rh
dGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKSBXVEZf
SU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGlyZWN0UHV0QnlWYWxHZW5l
cmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uQ2FsbEV2YWwoRXhlY1N0YXRlKikgV1RGX0lOVEVSTkFMOwogY2hhciogSklUX09QRVJBVElP
TiBvcGVyYXRpb25WaXJ0dWFsQ2FsbChFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBjaGFyKiBK
SVRfT1BFUkFUSU9OIG9wZXJhdGlvbkxpbmtDYWxsKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5k
ZXggNmU1YzE4ODc2YzUwZmZjNmIyMjM3OTI0ZDE0NTZkZDA2NTU4MDE1NC4uMmJhZjczNDQzZjRi
YjRiM2U5ZmI5ZjQxOWRlNzA3ZDFlOTY1YzNiYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTQ3NSw3ICs0NzUsOCBAQCB2b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfcHV0X2J5X3ZhbChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
LCBWZWN0b3I8U2xvd0NhcwogCiAgICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rlcihwcm9wZXJ0eSwg
cmVnVDEpOwogICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIodmFsdWUsIHJlZ1QyKTsKLSAgICBD
YWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblB1dEJ5VmFsLCByZWdUMCwgcmVnVDEs
IHJlZ1QyKTsKKyAgICBib29sIGlzRGlyZWN0ID0gbV9pbnRlcnByZXRlci0+Z2V0T3Bjb2RlSUQo
Y3VycmVudEluc3RydWN0aW9uLT51Lm9wY29kZSkgPT0gb3BfZGlyZWN0X3B1dF9ieV92YWw7Cisg
ICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1
dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwsIHJlZ1QwLCByZWdUMSwgcmVnVDIpOwogCiAgICAg
bV9ieVZhbENvbXBpbGF0aW9uSW5mb1ttX2J5VmFsSW5zdHJ1Y3Rpb25JbmRleF0uc2xvd1BhdGhU
YXJnZXQgPSBzbG93UGF0aDsKICAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0
cnVjdGlvbkluZGV4XS5yZXR1cm5BZGRyZXNzID0gY2FsbDsKQEAgLTEwMzAsMTMgKzEwMzEsMjAg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlUHV0QnlWYWwoQnlWYWxJbmZvKiBieVZhbEluZm8s
IFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWQKICAgICAKICAgICBwYXRjaEJ1ZmZlci5saW5rKGRv
bmUsIGJ5VmFsSW5mby0+YmFkVHlwZUp1bXAubGFiZWxBdE9mZnNldChieVZhbEluZm8tPmJhZFR5
cGVKdW1wVG9Eb25lKSk7CiAgICAgCi0gICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFM
SVpFX0NPREVfRk9SX1NUVUIoCi0gICAgICAgIHBhdGNoQnVmZmVyLAotICAgICAgICAoIkJhc2Vs
aW5lIHB1dF9ieV92YWwgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHRvQ1N0cmluZygq
bV9jb2RlQmxvY2spLmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7Ci0gICAgCisgICAg
Ym9vbCBpc0RpcmVjdCA9IG1faW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKGN1cnJlbnRJbnN0cnVj
dGlvbi0+dS5vcGNvZGUpID09IG9wX2RpcmVjdF9wdXRfYnlfdmFsOworICAgIGlmICghaXNEaXJl
Y3QpIHsKKyAgICAgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVfRk9S
X1NUVUIoCisgICAgICAgICAgICBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgICgiQmFzZWxpbmUg
cHV0X2J5X3ZhbCBzdHViIGZvciAlcywgcmV0dXJuIHBvaW50ICVwIiwgdG9DU3RyaW5nKCptX2Nv
ZGVCbG9jaykuZGF0YSgpLCByZXR1cm5BZGRyZXNzLnZhbHVlKCkpKTsKKyAgICAgICAgCisgICAg
fSBlbHNlIHsKKyAgICAgICAgYnlWYWxJbmZvLT5zdHViUm91dGluZSA9IEZJTkFMSVpFX0NPREVf
Rk9SX1NUVUIoCisgICAgICAgICAgICBwYXRjaEJ1ZmZlciwKKyAgICAgICAgICAgICgiQmFzZWxp
bmUgZGlyZWN0X3B1dF9ieV92YWwgc3R1YiBmb3IgJXMsIHJldHVybiBwb2ludCAlcCIsIHRvQ1N0
cmluZygqbV9jb2RlQmxvY2spLmRhdGEoKSwgcmV0dXJuQWRkcmVzcy52YWx1ZSgpKSk7CisgICAg
fQogICAgIFJlcGF0Y2hCdWZmZXIgcmVwYXRjaEJ1ZmZlcihtX2NvZGVCbG9jayk7CiAgICAgcmVw
YXRjaEJ1ZmZlci5yZWxpbmsoYnlWYWxJbmZvLT5iYWRUeXBlSnVtcCwgQ29kZUxvY2F0aW9uTGFi
ZWwoYnlWYWxJbmZvLT5zdHViUm91dGluZS0+Y29kZSgpLmNvZGUoKSkpOwotICAgIHJlcGF0Y2hC
dWZmZXIucmVsaW5rQ2FsbGVyVG9GdW5jdGlvbihyZXR1cm5BZGRyZXNzLCBGdW5jdGlvblB0cihv
cGVyYXRpb25QdXRCeVZhbEdlbmVyaWMpKTsKKyAgICByZXBhdGNoQnVmZmVyLnJlbGlua0NhbGxl
clRvRnVuY3Rpb24ocmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIoaXNEaXJlY3QgPyBvcGVyYXRp
b25EaXJlY3RQdXRCeVZhbEdlbmVyaWMgOiBvcGVyYXRpb25QdXRCeVZhbEdlbmVyaWMpKTsKIH0K
IAogSklUOjpKdW1wTGlzdCBKSVQ6OmVtaXRJbnRUeXBlZEFycmF5R2V0QnlWYWwoSW5zdHJ1Y3Rp
b24qLCBQYXRjaGFibGVKdW1wJiBiYWRUeXBlLCBUeXBlZEFycmF5VHlwZSB0eXBlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAK
aW5kZXggYjgyYzk3MjJiYzEwYmRjMmMwMmZkOTZmNTM1NjVjODUyZjYxNzU0YS4uYjQ3N2U2NDMx
MWYwMDhjZTA4Nzk0NGJmZTU2YWE1N2E4ZDM0NTBiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC00MzUsNiArNDM1
LDggQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBza2lwUHJvZmlsaW5nLmxpbmsodGhp
cyk7CiAKICAgICBMYWJlbCBzbG93UGF0aCA9IGxhYmVsKCk7CisgICAgCisgICAgYm9vbCBpc0Rp
cmVjdCA9IG1faW50ZXJwcmV0ZXItPmdldE9wY29kZUlEKGN1cnJlbnRJbnN0cnVjdGlvbi0+dS5v
cGNvZGUpID09IG9wX2RpcmVjdF9wdXRfYnlfdmFsOwogCiAjaWYgQ1BVKFg4NikKICAgICAvLyBG
SVhNRTogV2Ugb25seSBoYXZlIDUgdGVtcCByZWdpc3RlcnMsIGJ1dCBuZWVkIDYgdG8gbWFrZSB0
aGlzIGNhbGwsIHRoZXJlZm9yZSB3ZSBtYXRlcmlhbGl6ZQpAQCAtNDUxLDE0ICs0NTMsMTQgQEAg
dm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9ieV92YWwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXMKICAgICBlbWl0TG9hZCh2YWx1ZSwgcmVnVDAsIHJlZ1Qx
KTsKICAgICBhZGRDYWxsQXJndW1lbnQocmVnVDEpOwogICAgIGFkZENhbGxBcmd1bWVudChyZWdU
MCk7Ci0gICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVjayhvcGVyYXRp
b25QdXRCeVZhbCk7CisgICAgQ2FsbCBjYWxsID0gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVj
ayhpc0RpcmVjdCA/IG9wZXJhdGlvbkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwp
OwogI2Vsc2UKICAgICAvLyBUaGUgcmVnaXN0ZXIgc2VsZWN0aW9uIGJlbG93IGlzIGNob3NlbiB0
byByZWR1Y2UgcmVnaXN0ZXIgc3dhcHBpbmcgb24gQVJNLgogICAgIC8vIFN3YXBwaW5nIHNob3Vs
ZG4ndCBoYXBwZW4gb24gb3RoZXIgcGxhdGZvcm1zLgogICAgIGVtaXRMb2FkKGJhc2UsIHJlZ1Qy
LCByZWdUMSk7CiAgICAgZW1pdExvYWQocHJvcGVydHksIHJlZ1QzLCByZWdUMCk7CiAgICAgZW1p
dExvYWQodmFsdWUsIHJlZ1Q1LCByZWdUNCk7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25QdXRCeVZhbCwgcmVnVDIsIHJlZ1QxLCByZWdUMywgcmVnVDAsIHJlZ1Q1LCBy
ZWdUNCk7CisgICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihpc0RpcmVjdCA/IG9wZXJhdGlv
bkRpcmVjdFB1dEJ5VmFsIDogb3BlcmF0aW9uUHV0QnlWYWwsIHJlZ1QyLCByZWdUMSwgcmVnVDMs
IHJlZ1QwLCByZWdUNSwgcmVnVDQpOwogI2VuZGlmCiAKICAgICBtX2J5VmFsQ29tcGlsYXRpb25J
bmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXgg
MzhkZDJlYjA2ZGExMDBlMDEzNmI3YTdjODZlNmJmYzI4ZWViMTNmNy4uNjNkNmZiYWIyOWU0ZjYw
Y2EzMDc0OTU3YjFjOTU4M2M5MzlmMTA3MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
bGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCkBAIC03NDUsNiArNzQ1LDMxIEBAIExMSU5UX1NMT1df
UEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfdmFsKQogICAgIExMSU5UX0VORCgpOwogfQogCitM
TElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZGlyZWN0X3B1dF9ieV92YWwpCit7CisgICAg
TExJTlRfQkVHSU4oKTsKKyAgICAKKyAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IExMSU5UX09QX0Mo
MSkuanNWYWx1ZSgpOworICAgIEpTVmFsdWUgc3Vic2NyaXB0ID0gTExJTlRfT1BfQygyKS5qc1Zh
bHVlKCk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IExMSU5UX09QX0MoMykuanNWYWx1ZSgpOworICAg
IFJFTEVBU0VfQVNTRVJUKGJhc2VWYWx1ZS5pc09iamVjdCgpKTsKKyAgICBKU09iamVjdCogYmFz
ZU9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7CisgICAgaWYgKExJS0VMWShzdWJzY3JpcHQu
aXNVSW50MzIoKSkpIHsKKyAgICAgICAgdWludDMyX3QgaSA9IHN1YnNjcmlwdC5hc1VJbnQzMigp
OworICAgICAgICBiYXNlT2JqZWN0LT5wdXREaXJlY3RJbmRleChleGVjLCBpLCB2YWx1ZSk7Cisg
ICAgfSBlbHNlIGlmIChpc05hbWUoc3Vic2NyaXB0KSkgeworICAgICAgICBQdXRQcm9wZXJ0eVNs
b3Qgc2xvdChleGVjLT5jb2RlQmxvY2soKS0+aXNTdHJpY3RNb2RlKCkpOworICAgICAgICBiYXNl
T2JqZWN0LT5wdXREaXJlY3QoZXhlYy0+dm0oKSwganNDYXN0PE5hbWVJbnN0YW5jZSo+KHN1YnNj
cmlwdC5hc0NlbGwoKSktPnByaXZhdGVOYW1lKCksIHZhbHVlLCBzbG90KTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5KGV4ZWMsIHN1YnNjcmlwdC50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYykpOworICAgICAgICBpZiAoIWV4ZWMtPnZtKCkuZXhjZXB0aW9uKCkp
IHsgLy8gRG9uJ3QgcHV0IHRvIGFuIG9iamVjdCBpZiB0b1N0cmluZyB0aHJldyBhbiBleGNlcHRp
b24uCisgICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdChleGVjLT5jb2RlQmxvY2soKS0+
aXNTdHJpY3RNb2RlKCkpOworICAgICAgICAgICAgYmFzZU9iamVjdC0+cHV0RGlyZWN0KGV4ZWMt
PnZtKCksIHByb3BlcnR5LCB2YWx1ZSwgc2xvdCk7CisgICAgICAgIH0KKyAgICB9CisgICAgTExJ
TlRfRU5EKCk7Cit9CisKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9kZWxfYnlfdmFs
KQogewogICAgIExMSU5UX0JFR0lOKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9M
TEludFNsb3dQYXRocy5oCmluZGV4IDliZWFjZDA1NThiZDQ1YzY5NTA2ZTAwMDhlMzg3NjY4MDU2
YjEyNWQuLjUyNzZhNDM5YzkwOWNhN2JjY2Q3NjdlOTY5NTg2ODhlYjliY2M5M2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5oCkBAIC03OSw2ICs3OSw3
IEBAIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZ2V0X2J5X3ZhbCk7CiBM
TElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2dldF9hcmd1bWVudF9ieV92YWwp
OwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9nZXRfYnlfcG5hbWUpOwog
TExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfdmFsKTsKK0xMSU5U
X1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfZGlyZWN0X3B1dF9ieV92YWwpOwogTExJ
TlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9kZWxfYnlfdmFsKTsKIExMSU5UX1NM
T1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X2J5X2luZGV4KTsKIExMSU5UX1NMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfcHV0X2dldHRlcl9zZXR0ZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0
LmFzbQppbmRleCA2OTRhMjc5ZWJkODVhZmY1MGM2YWE1NzRjZGM1NzJkMTAwMmMwNWE1Li44N2Rk
ZTBkMmQyM2NkN2RjOWE4OTJhNjg3ZWY2YzA2NDE4OWViMmZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpA
QCAtMTMwMCw3ICsxMzAwLDcgQEAgbWFjcm8gY29udGlndW91c1B1dEJ5VmFsKHN0b3JlQ2FsbGJh
Y2spCiAgICAgam1wIC5zdG9yZVJlc3VsdAogZW5kCiAKLV9sbGludF9vcF9wdXRfYnlfdmFsOgor
bWFjcm8gcHV0QnlWYWwoaG9sZUNoZWNrLCBzbG93UGF0aCkKICAgICB0cmFjZUV4ZWN1dGlvbigp
CiAgICAgbG9hZGkgNFtQQ10sIHQwCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQo
dDAsIENlbGxUYWcsIHQxLCAub3BQdXRCeVZhbFNsb3cpCkBAIC0xMzUxLDcgKzEzNTEsNyBAQCBf
bGxpbnRfb3BfcHV0X2J5X3ZhbDoKIC5vcFB1dEJ5VmFsTm90Q29udGlndW91czoKICAgICBiaW5l
cSB0MiwgQXJyYXlTdG9yYWdlU2hhcGUsIC5vcFB1dEJ5VmFsU2xvdwogICAgIGJpYWVxIHQzLCAt
c2l6ZW9mIEluZGV4aW5nSGVhZGVyICsgSW5kZXhpbmdIZWFkZXI6OnUubGVuZ3Rocy52ZWN0b3JM
ZW5ndGhbdDBdLCAub3BQdXRCeVZhbE91dE9mQm91bmRzCi0gICAgYmllcSBBcnJheVN0b3JhZ2U6
Om1fdmVjdG9yICsgVGFnT2Zmc2V0W3QwLCB0MywgOF0sIEVtcHR5VmFsdWVUYWcsIC5vcFB1dEJ5
VmFsQXJyYXlTdG9yYWdlRW1wdHkKKyAgICBob2xlQ2hlY2soQXJyYXlTdG9yYWdlOjptX3ZlY3Rv
ciArIFRhZ09mZnNldFt0MCwgdDMsIDhdLCAub3BQdXRCeVZhbEFycmF5U3RvcmFnZUVtcHR5KQog
Lm9wUHV0QnlWYWxBcnJheVN0b3JhZ2VTdG9yZVJlc3VsdDoKICAgICBsb2FkaSAxMltQQ10sIHQy
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcodDIsIHQxLCB0MikKQEAgLTEzNzcsOSAr
MTM3NywxOCBAQCBfbGxpbnRfb3BfcHV0X2J5X3ZhbDoKICAgICAgICAgc3RvcmViIDEsIEFycmF5
UHJvZmlsZTo6bV9vdXRPZkJvdW5kc1t0MF0KICAgICBlbmQKIC5vcFB1dEJ5VmFsU2xvdzoKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXRfYnlfdmFsKQorICAgIGNhbGxTbG93
UGF0aChzbG93UGF0aCkKICAgICBkaXNwYXRjaCg1KQorZW5kCisKK19sbGludF9vcF9wdXRfYnlf
dmFsOgorICAgIHB1dEJ5VmFsKG1hY3JvKGFkZHIsIHNsb3dQYXRoKQorICAgICAgICBiaWVxIGFk
ZHIsIEVtcHR5VmFsdWVUYWcsIHNsb3dQYXRoCisgICAgZW5kLCBfbGxpbnRfc2xvd19wYXRoX3B1
dF9ieV92YWwpCiAKK19sbGludF9vcF9kaXJlY3RfcHV0X2J5X3ZhbDoKKyAgICBwdXRCeVZhbCht
YWNybyhhZGRyLCBzbG93UGF0aCkKKyAgICBlbmQsIF9sbGludF9zbG93X3BhdGhfZGlyZWN0X3B1
dF9ieV92YWwpCiAKIF9sbGludF9vcF9qbXA6CiAgICAgdHJhY2VFeGVjdXRpb24oKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQppbmRleCA3YmVlMGFjYmNhZmVmZDM2OTQzOGViZjVmNmZiMjg0NzMzOWQ4Y2U5Li4yZDJmMGQ0
MzM3NjQ2N2FiNjFiMTIzNTI5ODMzMzgyMDgxOTdhMjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMTE2Myw3
ICsxMTYzLDcgQEAgbWFjcm8gY29udGlndW91c1B1dEJ5VmFsKHN0b3JlQ2FsbGJhY2spCiAgICAg
am1wIC5zdG9yZVJlc3VsdAogZW5kCiAKLV9sbGludF9vcF9wdXRfYnlfdmFsOgorbWFjcm8gcHV0
QnlWYWwoaG9sZUNoZWNrLCBzbG93UGF0aCkKICAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9h
ZGlzRnJvbUluc3RydWN0aW9uKDEsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxs
KHQwLCB0MSwgLm9wUHV0QnlWYWxTbG93KQpAQCAtMTIxMSw3ICsxMjExLDcgQEAgX2xsaW50X29w
X3B1dF9ieV92YWw6CiAub3BQdXRCeVZhbE5vdENvbnRpZ3VvdXM6CiAgICAgYmluZXEgdDIsIEFy
cmF5U3RvcmFnZVNoYXBlLCAub3BQdXRCeVZhbFNsb3cKICAgICBiaWFlcSB0MywgLXNpemVvZiBJ
bmRleGluZ0hlYWRlciArIEluZGV4aW5nSGVhZGVyOjp1Lmxlbmd0aHMudmVjdG9yTGVuZ3RoW3Qw
XSwgLm9wUHV0QnlWYWxPdXRPZkJvdW5kcwotICAgIGJ0cXogQXJyYXlTdG9yYWdlOjptX3ZlY3Rv
clt0MCwgdDMsIDhdLCAub3BQdXRCeVZhbEFycmF5U3RvcmFnZUVtcHR5CisgICAgaG9sZUNoZWNr
KEFycmF5U3RvcmFnZTo6bV92ZWN0b3JbdDAsIHQzLCA4XSwgLm9wUHV0QnlWYWxBcnJheVN0b3Jh
Z2VFbXB0eSkKIC5vcFB1dEJ5VmFsQXJyYXlTdG9yYWdlU3RvcmVSZXN1bHQ6CiAgICAgbG9hZGlz
RnJvbUluc3RydWN0aW9uKDMsIHQyKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQx
KQpAQCAtMTIzNiw4ICsxMjM2LDE4IEBAIF9sbGludF9vcF9wdXRfYnlfdmFsOgogICAgICAgICBz
dG9yZWIgMSwgQXJyYXlQcm9maWxlOjptX291dE9mQm91bmRzW3QwXQogICAgIGVuZAogLm9wUHV0
QnlWYWxTbG93OgotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV92YWwp
CisgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKDUpCitlbmQKKworX2xs
aW50X29wX3B1dF9ieV92YWw6CisgICAgcHV0QnlWYWwobWFjcm8oc2xvdCwgc2xvd1BhdGgpCisg
ICAgICAgIGJ0cXogc2xvdCwgc2xvd1BhdGgKKyAgICBlbmQsIF9sbGludF9zbG93X3BhdGhfcHV0
X2J5X3ZhbCkKKworX2xsaW50X29wX2RpcmVjdF9wdXRfYnlfdmFsOgorICAgIHB1dEJ5VmFsKG1h
Y3JvKHNsb3QsIHNsb3dQYXRoKQorICAgIGVuZCwgX2xsaW50X3Nsb3dfcGF0aF9kaXJlY3RfcHV0
X2J5X3ZhbCkKIAogCiBfbGxpbnRfb3Bfam1wOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNmNTI3ZmRhMjkxYzZiZWVjYjg4
YzY2ZTM5NTNjNTAzNzZiMGYxNjMuLmI1MmVkMjliMGU1MjQyNDgyODE3MDk5MDc4MGVkNTE2ZjU1
ZDYyMTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMy0xMC0xOCAgT2xpdmVyIEh1bnQgIDxv
bGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFNwcmVhZCBvcGVyYXRvciBzaG91bGQgYmUgcGVy
Zm9ybWluZyBkaXJlY3QgInB1dHMiIGFuZCBub3QgdHJpZ2dlcmluZyBzZXR0ZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMwNDcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdGVzdGNh
c2UgZm9yIHRoZSBzZXR0ZXIgY2FzZS4gIHJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cyBoaXRzIHRo
aXMgd2l0aAorICAgICAgICB0aGUgbGxpbnQsIGJhc2VsaW5lLCBhbmQgZGZnLgorCisgICAgICAg
ICoganMvYmFzaWMtc3ByZWFkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVz
dHMvYmFzaWMtc3ByZWFkLmpzOgorICAgICAgICAoQXJyYXkpOgorCiAyMDEzLTEwLTE4ICBKaW53
b28gU29uZyAgPGppbndvbzcuc29uZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IEVGTCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9iYXNpYy1zcHJlYWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvYmFzaWMtc3ByZWFkLWV4cGVjdGVkLnR4dApp
bmRleCA5OGI3NzRjM2JkNTdlNTAzYmY0YjYxYjk3OGQ3N2M2YTA5MzA2YWUzLi5mNGRhYmU4OWVj
MWE4YWM5MzQ1M2Y4N2RmYmNlZWIzYjFmODEwYzQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9q
cy9iYXNpYy1zcHJlYWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2Jhc2ljLXNw
cmVhZC1leHBlY3RlZC50eHQKQEAgLTkzLDYgKzkzLDcgQEAgUEFTUyBbLC4uLmEsNF0gaXMgWywx
LDIsMyw0XQogUEFTUyBbLC4uLmEsLDVdIGlzIFssMSwyLDMsLDVdCiBQQVNTIFsuLi5hLmtleXMo
KV0gaXMgWzAsMSwyXQogUEFTUyBbLi4uYS5lbnRyaWVzKCldLmpvaW4oJ3wnKSBpcyBbWzAsMV0s
WzEsMl0sWzIsM11dLmpvaW4oJ3wnKQorUEFTUyBbLi4uYV0gaXMgWzEsMiwzXQogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYmFzaWMtc3ByZWFkLmpzIGIvTGF5b3V0VGVzdHMvanMv
c2NyaXB0LXRlc3RzL2Jhc2ljLXNwcmVhZC5qcwppbmRleCAxOWUxMDYyM2MwOWZiNTY5NGFhYjUz
MTJiZTExODZmODI1MTRlYzE1Li44ZjljZjM0ZGU0NDAwMDk1MDQxYjlhMzJhYTVlMzBlMTNiYzll
NjIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvYmFzaWMtc3ByZWFk
LmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9iYXNpYy1zcHJlYWQuanMKQEAg
LTU4LDQgKzU4LDEwIEBAIHNob3VsZEJlKCJbLC4uLmEsNF0iLCAiWywxLDIsMyw0XSIpCiBzaG91
bGRCZSgiWywuLi5hLCw1XSIsICJbLDEsMiwzLCw1XSIpCiBzaG91bGRCZSgiWy4uLmEua2V5cygp
XSIsICJbMCwxLDJdIikKIHNob3VsZEJlKCJbLi4uYS5lbnRyaWVzKCldLmpvaW4oJ3wnKSIsICJb
WzAsMV0sWzEsMl0sWzIsM11dLmpvaW4oJ3wnKSIpCitBcnJheS5wcm90b3R5cGUuX19kZWZpbmVT
ZXR0ZXJfXygwLCBmdW5jdGlvbigpeyBmYWlsKCkgfSk7CitBcnJheS5wcm90b3R5cGUuX19kZWZp
bmVTZXR0ZXJfXygxLCBmdW5jdGlvbigpeyBmYWlsKCkgfSk7CitBcnJheS5wcm90b3R5cGUuX19k
ZWZpbmVTZXR0ZXJfXygyLCBmdW5jdGlvbigpeyBmYWlsKCkgfSk7CitzaG91bGRCZSgiWy4uLmFd
IiwgIlsxLDIsM10iKQorCisKIAo=
</data>
<flag name="review"
          id="237180"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>