<?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>237624</bug_id>
          
          <creation_ts>2022-03-08 15:24:47 -0800</creation_ts>
          <short_desc>Rename LLInt macros using return to destination</short_desc>
          <delta_ts>2022-03-15 16:25:29 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1849432</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2022-03-08 15:24:47 -0800</bug_when>
    <thetext>Rename LLInt macros using return to destination</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849435</commentid>
    <comment_count>1</comment_count>
      <attachid>454160</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2022-03-08 15:28:02 -0800</bug_when>
    <thetext>Created attachment 454160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849439</commentid>
    <comment_count>2</comment_count>
      <attachid>454161</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2022-03-08 15:32:42 -0800</bug_when>
    <thetext>Created attachment 454161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849441</commentid>
    <comment_count>3</comment_count>
      <attachid>454162</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2022-03-08 15:37:18 -0800</bug_when>
    <thetext>Created attachment 454162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849442</commentid>
    <comment_count>4</comment_count>
      <attachid>454163</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2022-03-08 15:41:38 -0800</bug_when>
    <thetext>Created attachment 454163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849444</commentid>
    <comment_count>5</comment_count>
      <attachid>454164</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2022-03-08 15:47:35 -0800</bug_when>
    <thetext>Created attachment 454164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849448</commentid>
    <comment_count>6</comment_count>
      <attachid>454161</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-03-08 15:49:33 -0800</bug_when>
    <thetext>Comment on attachment 454161
Patch

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

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:832
&gt; +llintOpWithsetDestinationAndDispatch(op_argument_count, OpArgumentCount, macro (size, get, dispatch, setDestinationAndDispatch)

This should be llintOpWithDestination, and same at all the place below.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:839
&gt; +llintOpWithsetDestinationAndDispatch(op_get_scope, OpGetScope, macro (size, get, dispatch, setDestinationAndDispatch)

llintOpWithSet...

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:873
&gt; +llintOpWithsetDestinationAndDispatch(op_mov, OpMov, macro (size, get, dispatch, setDestinationAndDispatch)

Ditto.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:880
&gt; +llintOpWithsetDestinationAndDispatch(op_not, OpNot, macro (size, get, dispatch, setDestinationAndDispatch)

Ditto ... and all the place below too.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:976
&gt; +    llintOpWithsetDestinationAndDispatch(op_%opcodeName%, opcodeStruct, macro (size, get, dispatch, setDestinationAndDispatch)

Ditto

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:1083
&gt; +llintOpWithsetDestinationAndDispatch(op_to_string, OpToString, macro (size, get, dispatch, setDestinationAndDispatch)

Ditto.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:2366
&gt; +    dosetDestinationAndDispatch()

Wrong search and replace: should be doReturn?

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:2370
&gt; +llintOpWithsetDestinationAndDispatch(op_to_primitive, OpToPrimitive, macro (size, get, dispatch, setDestinationAndDispatch)

llintOpWithDestination

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:2384
&gt; +llintOpWithsetDestinationAndDispatch(op_to_property_key, OpToPropertyKey, macro (size, get, dispatch, setDestinationAndDispatch)

llintOpWithDestination

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:2450
&gt; +    dosetDestinationAndDispatch()

Wrong search and replace: should be doReturn?

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:2915
&gt; +llintOpWithsetDestinationAndDispatch(op_get_parent_scope, OpGetParentScope, macro (size, get, dispatch, setDestinationAndDispatch)

llintOpWithDestination

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:2979
&gt; +llintOpWithsetDestinationAndDispatch(op_get_rest_length, OpGetRestLength, macro (size, get, dispatch, setDestinationAndDispatch)

Ditto.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:3201
&gt; +    dosetDestinationAndDispatch()

Wrong search and replace: should be doReturn?

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:2479
&gt; -    # prepareCall in LLInt does not untag return address. So we need to untag that in the trampoline separately.
&gt; +    # prepareCall in LLInt does not untag setDestinationAndDispatch address. So we need to untag that in the trampoline separately.

Wrong search replace?  Should this one really be &quot;return address&quot;?

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:2557
&gt; -            # prepareCall in LLInt does not untag return address. So we need to untag that in the trampoline separately.
&gt; +            # prepareCall in LLInt does not untag setDestinationAndDispatch address. So we need to untag that in the trampoline separately.

Ditto: Wrong search replace?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849458</commentid>
    <comment_count>7</comment_count>
      <attachid>454164</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2022-03-08 15:58:37 -0800</bug_when>
    <thetext>Comment on attachment 454164
Patch

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

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:-1023
&gt; -        # return result;

Will revert

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:-2479
&gt; -    # prepareCall in LLInt does not untag return address. So we need to untag that in the trampoline separately.

Will revert</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849459</commentid>
    <comment_count>8</comment_count>
      <attachid>454168</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2022-03-08 16:01:42 -0800</bug_when>
    <thetext>Created attachment 454168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849544</commentid>
    <comment_count>9</comment_count>
      <attachid>454168</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-03-08 22:38:03 -0800</bug_when>
    <thetext>Comment on attachment 454168
Patch

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

r=me.  This patch is huge, and it&apos;s very difficult to review this by eyeballing, and be confident that it was done right.  It&apos;s too easy to miss something, and perhaps introduce a subtle change.  Just for a sanity check (if you haven&apos;t already done so), please generate a LLIntAssembly.h before and after your patch, and diff the 2 LLIntAssembly.h files.  If there are no errors, they should be identical.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter.asm:529
&gt;      llintOpWithMetadata(opcodeName, opcodeStruct, macro(size, get, dispatch, metadata, return)

/return/setDestinationAndDispatch/ to be consistent.

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:2557
&gt; +            # prepareCall in LLInt does not untag setDestinationAndDispatch address. So we need to untag that in the trampoline separately.

/setDestinationAndDispatch address/the return address/

&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:2795
&gt; -    macro returnConstantScope()
&gt; +    macro setDestinationAndDispatchConstantScope()

In this case, `returnConstantScope` would be a better name if not for the fact that there&apos;s no actual &quot;return&quot; operation.  How about `setDestinationAndDispatchWithConstantScope` instead?  `setDestinationAndDispatchConstantScope` just doesn&apos;t read like English.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1851567</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-15 16:25:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/90337195&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454160</attachid>
            <date>2022-03-08 15:28:02 -0800</date>
            <delta_ts>2022-03-08 15:38:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237624-20220308182801.patch</filename>
            <type>text/plain</type>
            <size>51896</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NTVjOGY5NWIwZWM2MmJjYTExYTE2NmEyYWJkNWVmYTM2N2QxOGI1Li4wN2U4NDE0M2QzMDMwNmVi
N2NjZDFkYzIzNzA0OGJhNTViODVjNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMi0wMy0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW5hbWUgTExJbnQgbWFjcm9zIHVzaW5nIHJldHVybiB0byBkZXN0
aW5hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3NjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpcyBqdXN0IGEgcmVmYWN0b3IvcmVuYW1lIHBhdGNoLCBubyBiZWhhdmlvcmFs
CisgICAgICAgIGNoYW5nZS4gSSBmaW5kIGl0IGNvbmZ1c2luZyB0aGF0IHRoZSBMTEludCBoYXMg
bWFjcm8gcGFyYW1ldGVycworICAgICAgICBuYW1lZCBgcmV0dXJuYCBidXQgY2xlYXJseSBzaG91
bGRuJ3QgZG8gYSBmdW5jdGlvbiByZXR1cm4KKyAgICAgICAgKGUuZy4gZ2V0X2J5X2lkKS4gIFRo
aXMgcGF0Y2ggcmVuYW1lcyB0aG9zZSBwYXJlbWV0ZXJzIHRvCisgICAgICAgICJzZXREU1RBbmRE
aXNwYXRjaCIgdG8gYmV0dGVyIGRlc2NyaWJlIHdoYXQncyBnb2luZworICAgICAgICBvbi4gQWRk
aXRpb25hbGx5LCB0aGUgYGxsaW50T3BXaXRoUmV0dXJuYCBoYXMgYmVlbiByZW5hbWVkIHRvCisg
ICAgICAgIGBsbGludE9wV2l0aERlc3RpbmF0aW9uYCBmb3IgZnVydGhlciBjbGFyaXR5LgorCisg
ICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKwogMjAyMi0wMy0wOCAgU2FhbSBCYXJhdGkgIDxz
YmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBFbmFibGUgVGhpbkxUTwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmlu
ZGV4IGE4ZTdjNzM5OWQ1ODFhNTk2MGQwYWE3YWE3MjQzMzVkYjAzNTRjNzUuLjAyYmI2OGZiNjc2
NzFmMDhlZTA0ZWY4MmVjZTI4MGE4ZTZiYzJjYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTQ5NywyNSArNDk3LDI1
IEBAIG1hY3JvIGxsaW50T3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKICAgICBlbmQp
CiBlbmQKIAotbWFjcm8gbGxpbnRPcFdpdGhSZXR1cm4ob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0
LCBmbikKK21hY3JvIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bjb2RlTmFtZSwgb3Bjb2RlU3Ry
dWN0LCBmbikKICAgICBsbGludE9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8oc2l6
ZSwgZ2V0LCBkaXNwYXRjaCkKLSAgICAgICAgbWFrZVJldHVybihnZXQsIGRpc3BhdGNoLCBtYWNy
byAocmV0dXJuKQotICAgICAgICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
ICAgICAgICBtYWtlRGVzdGluYXRpb24oZ2V0LCBkaXNwYXRjaCwgbWFjcm8gKHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCisgICAgICAgICAgICBmbihzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBlbmQpCiAgICAgZW5kKQogZW5kCiAKIG1h
Y3JvIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKLSAg
ICBsbGludE9wV2l0aFJldHVybihvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBtYWNybyBtZXRhKGRzdCwgc2NyYXRjaCkKICAg
ICAgICAgICAgIG1ldGFkYXRhKHNpemUsIG9wY29kZVN0cnVjdCwgZHN0LCBzY3JhdGNoKQogICAg
ICAgICBlbmQKLSAgICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YSwgcmV0dXJuKQor
ICAgICAgICBmbihzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhLCBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKQogICAgIGVuZCkKIGVuZAogCiBtYWNybyBsbGludE9wV2l0aEp1bXAob3Bjb2RlTmFt
ZSwgb3Bjb2RlU3RydWN0LCBpbXBsKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bjb2RlTmFt
ZSwgb3Bjb2RlU3RydWN0LCBtYWNybyhzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0
dXJuKQorICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBt
YWNybyhzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICAgICAgbWFjcm8ganVtcChmaWVsZE5hbWUpCiAgICAgICAgICAgICBnZXQoZmll
bGROYW1lLCB0MCkKICAgICAgICAgICAgIGp1bXBJbXBsKGRpc3BhdGNoSW5kaXJlY3QsIHQwKQpA
QCAtNTI3LDcgKzUyNyw3IEBAIGVuZAogCiBtYWNybyBsbGludE9wV2l0aFByb2ZpbGUob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKICAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgbWFjcm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJl
dHVybikKLSAgICAgICAgbWFrZVJldHVyblByb2ZpbGVkKG9wY29kZVN0cnVjdCwgZ2V0LCBtZXRh
ZGF0YSwgZGlzcGF0Y2gsIG1hY3JvIChyZXR1cm5Qcm9maWxlZCkKKyAgICAgICAgbWFrZURlc3Rp
bmF0aW9uUHJvZmlsZWQob3Bjb2RlU3RydWN0LCBnZXQsIG1ldGFkYXRhLCBkaXNwYXRjaCwgbWFj
cm8gKHJldHVyblByb2ZpbGVkKQogICAgICAgICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
cmV0dXJuUHJvZmlsZWQpCiAgICAgICAgIGVuZCkKICAgICBlbmQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCmluZGV4IDVk
ZTdiY2M3ZmQwZDRmMDQwZjJkZjk0YmQ0NzM0NWQ4MzU4Njk0NDcuLmY0Y2EwMDJjM2FhNTY2YjZi
YWYzYmQ2MWEzZjQ1OTJkODk3NDM5OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtCkBAIC03MSw3ICs3MSw3IEBAIG1h
Y3JvIGdldE9wZXJhbmRXaWRlMzJXYXNtKG9wY29kZVN0cnVjdCwgZmllbGROYW1lLCBkc3QpCiAg
ICAgbG9hZGlzIGNvbnN0ZXhwciAlb3Bjb2RlU3RydWN0JV8lZmllbGROYW1lJV9pbmRleCAqIDQg
KyBPcGNvZGVJRFdpZGUzMlNpemVXYXNtW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKLW1hY3JvIG1h
a2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb24oZ2V0LCBk
aXNwYXRjaCwgZm4pCiAgICAgZm4obWFjcm8gKHZhbHVlKQogICAgICAgICBtb3ZlIHZhbHVlLCB0
MgogICAgICAgICBnZXQobV9kc3QsIHQxKQpAQCAtODAsNyArODAsNyBAQCBtYWNybyBtYWtlUmV0
dXJuKGdldCwgZGlzcGF0Y2gsIGZuKQogICAgIGVuZCkKIGVuZAogCi1tYWNybyBtYWtlUmV0dXJu
UHJvZmlsZWQob3Bjb2RlU3RydWN0LCBnZXQsIG1ldGFkYXRhLCBkaXNwYXRjaCwgZm4pCittYWNy
byBtYWtlRGVzdGluYXRpb25Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwgbWV0YWRhdGEsIGRp
c3BhdGNoLCBmbikKICAgICBmbihtYWNybyAodmFsdWUpCiAgICAgICAgIG1vdmUgdmFsdWUsIHQz
CiAgICAgICAgIG1ldGFkYXRhKHQxLCB0MikKQEAgLTExNywxMyArMTE3LDEzIEBAIG1hY3JvIGND
YWxsMihmdW5jdGlvbikKICAgICBlbHNpZiBYODZfNjQgb3IgQVJNNjQgb3IgQVJNNjRFIG9yIFJJ
U0NWNjQKICAgICAgICAgY2FsbCBmdW5jdGlvbgogICAgIGVsc2lmIFg4Nl82NF9XSU4KLSAgICAg
ICAgIyBOb3RlOiB0aGlzIGltcGxlbWVudGF0aW9uIGlzIG9ubHkgY29ycmVjdCBpZiB0aGUgcmV0
dXJuIHR5cGUgc2l6ZSBpcyA+IDggYnl0ZXMuCi0gICAgICAgICMgU2VlIG1hY3JvIGNDYWxsMlZv
aWQgZm9yIGFuIGltcGxlbWVudGF0aW9uIHdoZW4gdGhlIHJldHVybiB0eXBlIDw9IDggYnl0ZXMu
Ci0gICAgICAgICMgT24gV2luNjQsIHdoZW4gdGhlIHJldHVybiB0eXBlIGlzIGxhcmdlciB0aGFu
IDggYnl0ZXMsIHdlIG5lZWQgdG8gYWxsb2NhdGUgc3BhY2Ugb24gdGhlIHN0YWNrIGZvciB0aGUg
cmV0dXJuIHZhbHVlLgorICAgICAgICAjIE5vdGU6IHRoaXMgaW1wbGVtZW50YXRpb24gaXMgb25s
eSBjb3JyZWN0IGlmIHRoZSBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoIHR5cGUgc2l6ZSBpcyA+
IDggYnl0ZXMuCisgICAgICAgICMgU2VlIG1hY3JvIGNDYWxsMlZvaWQgZm9yIGFuIGltcGxlbWVu
dGF0aW9uIHdoZW4gdGhlIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2ggdHlwZSA8PSA4IGJ5dGVz
LgorICAgICAgICAjIE9uIFdpbjY0LCB3aGVuIHRoZSBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
IHR5cGUgaXMgbGFyZ2VyIHRoYW4gOCBieXRlcywgd2UgbmVlZCB0byBhbGxvY2F0ZSBzcGFjZSBv
biB0aGUgc3RhY2sgZm9yIHRoZSBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoIHZhbHVlLgogICAg
ICAgICAjIE9uIGVudHJ5IHJjeCAoYTApLCBzaG91bGQgY29udGFpbiBhIHBvaW50ZXIgdG8gdGhp
cyBzdGFjayBzcGFjZS4gVGhlIG90aGVyIHBhcmFtZXRlcnMgYXJlIHNoaWZ0ZWQgdG8gdGhlIHJp
Z2h0LAogICAgICAgICAjIHJkeCAoYTEpIHNob3VsZCBjb250YWluIHRoZSBmaXJzdCBhcmd1bWVu
dCwgYW5kIHI4IChhMikgc2hvdWxkIGNvbnRhaW4gdGhlIHNlY29uZCBhcmd1bWVudC4KLSAgICAg
ICAgIyBPbiByZXR1cm4sIHJheCBjb250YWlucyBhIHBvaW50ZXIgdG8gdGhpcyBzdGFjayB2YWx1
ZSwgYW5kIHdlIHRoZW4gbmVlZCB0byBjb3B5IHRoZSAxNiBieXRlIHJldHVybiB2YWx1ZSBpbnRv
IHJheCAocjApIGFuZCByZHggKHIxKQotICAgICAgICAjIHNpbmNlIHRoZSByZXR1cm4gdmFsdWUg
aXMgZXhwZWN0ZWQgdG8gYmUgc3BsaXQgYmV0d2VlbiB0aGUgdHdvLgorICAgICAgICAjIE9uIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gsIHJheCBjb250YWlucyBhIHBvaW50ZXIgdG8gdGhpcyBz
dGFjayB2YWx1ZSwgYW5kIHdlIHRoZW4gbmVlZCB0byBjb3B5IHRoZSAxNiBieXRlIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2ggdmFsdWUgaW50byByYXggKHIwKSBhbmQgcmR4IChyMSkKKyAgICAg
ICAgIyBzaW5jZSB0aGUgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCB2YWx1ZSBpcyBleHBlY3Rl
ZCB0byBiZSBzcGxpdCBiZXR3ZWVuIHRoZSB0d28uCiAgICAgICAgICMgU2VlIGh0dHA6Ly9tc2Ru
Lm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS83NTcyenR6NC5hc3B4CiAgICAgICAgIG1vdmUg
YTEsIGEyCiAgICAgICAgIG1vdmUgYTAsIGExCkBAIC0xNDQsNyArMTQ0LDcgQEAgbWFjcm8gY0Nh
bGwyVm9pZChmdW5jdGlvbikKICAgICAgICAgY2xvb3BDYWxsU2xvd1BhdGhWb2lkIGZ1bmN0aW9u
LCBhMCwgYTEKICAgICBlbHNpZiBYODZfNjRfV0lOCiAgICAgICAgICMgTm90ZTogd2UgY2Fubm90
IHVzZSB0aGUgY0NhbGwyIG1hY3JvIGZvciBXaW42NCBpbiB0aGlzIGNhc2UsCi0gICAgICAgICMg
YXMgdGhlIFdpbjY0IGNDYWxsMiBpbXBsZW1lbmF0aW9uIGlzIG9ubHkgY29ycmVjdCB3aGVuIHRo
ZSByZXR1cm4gdHlwZSBzaXplIGlzID4gOCBieXRlcy4KKyAgICAgICAgIyBhcyB0aGUgV2luNjQg
Y0NhbGwyIGltcGxlbWVuYXRpb24gaXMgb25seSBjb3JyZWN0IHdoZW4gdGhlIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2ggdHlwZSBzaXplIGlzID4gOCBieXRlcy4KICAgICAgICAgIyBPbiBXaW42
NCwgcmN4IGFuZCByZHggYXJlIHVzZWQgZm9yIHBhc3NpbmcgdGhlIGZpcnN0IHR3byBwYXJhbWV0
ZXJzLgogICAgICAgICAjIFdlIGFsc28gbmVlZCB0byBtYWtlIHJvb20gb24gdGhlIHN0YWNrIGZv
ciBhbGwgZm91ciBwYXJhbWV0ZXIgcmVnaXN0ZXJzLgogICAgICAgICAjIFNlZSBodHRwOi8vbXNk
bi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXMyMzUyODYuYXNweApAQCAtMTYzLDEzICsx
NjMsMTMgQEAgbWFjcm8gY0NhbGwzKGZ1bmN0aW9uKQogICAgIGVsc2lmIFg4Nl82NCBvciBBUk02
NCBvciBBUk02NEUgb3IgUklTQ1Y2NAogICAgICAgICBjYWxsIGZ1bmN0aW9uCiAgICAgZWxzaWYg
WDg2XzY0X1dJTgotICAgICAgICAjIE5vdGU6IHRoaXMgaW1wbGVtZW50YXRpb24gaXMgb25seSBj
b3JyZWN0IGlmIHRoZSByZXR1cm4gdHlwZSBzaXplIGlzID4gOCBieXRlcy4KLSAgICAgICAgIyBT
ZWUgbWFjcm8gY0NhbGwyVm9pZCBmb3IgYW4gaW1wbGVtZW50YXRpb24gd2hlbiB0aGUgcmV0dXJu
IHR5cGUgPD0gOCBieXRlcy4KLSAgICAgICAgIyBPbiBXaW42NCwgd2hlbiB0aGUgcmV0dXJuIHR5
cGUgaXMgbGFyZ2VyIHRoYW4gOCBieXRlcywgd2UgbmVlZCB0byBhbGxvY2F0ZSBzcGFjZSBvbiB0
aGUgc3RhY2sgZm9yIHRoZSByZXR1cm4gdmFsdWUuCisgICAgICAgICMgTm90ZTogdGhpcyBpbXBs
ZW1lbnRhdGlvbiBpcyBvbmx5IGNvcnJlY3QgaWYgdGhlIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2ggdHlwZSBzaXplIGlzID4gOCBieXRlcy4KKyAgICAgICAgIyBTZWUgbWFjcm8gY0NhbGwyVm9p
ZCBmb3IgYW4gaW1wbGVtZW50YXRpb24gd2hlbiB0aGUgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCB0eXBlIDw9IDggYnl0ZXMuCisgICAgICAgICMgT24gV2luNjQsIHdoZW4gdGhlIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2ggdHlwZSBpcyBsYXJnZXIgdGhhbiA4IGJ5dGVzLCB3ZSBuZWVkIHRv
IGFsbG9jYXRlIHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhlIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2ggdmFsdWUuCiAgICAgICAgICMgT24gZW50cnkgcmN4IChhMCksIHNob3VsZCBjb250YWlu
IGEgcG9pbnRlciB0byB0aGlzIHN0YWNrIHNwYWNlLiBUaGUgb3RoZXIgcGFyYW1ldGVycyBhcmUg
c2hpZnRlZCB0byB0aGUgcmlnaHQsCiAgICAgICAgICMgcmR4IChhMSkgc2hvdWxkIGNvbnRhaW4g
dGhlIGZpcnN0IGFyZ3VtZW50LCByOCAoYTIpIHNob3VsZCBjb250YWluIHRoZSBzZWNvbmQgYXJn
dW1lbnQsIGFuZCByOSAoYTMpIHNob3VsZCBjb250YWluIHRoZSB0aGlyZCBhcmd1bWVudC4KLSAg
ICAgICAgIyBPbiByZXR1cm4sIHJheCBjb250YWlucyBhIHBvaW50ZXIgdG8gdGhpcyBzdGFjayB2
YWx1ZSwgYW5kIHdlIHRoZW4gbmVlZCB0byBjb3B5IHRoZSAxNiBieXRlIHJldHVybiB2YWx1ZSBp
bnRvIHJheCAocjApIGFuZCByZHggKHIxKQotICAgICAgICAjIHNpbmNlIHRoZSByZXR1cm4gdmFs
dWUgaXMgZXhwZWN0ZWQgdG8gYmUgc3BsaXQgYmV0d2VlbiB0aGUgdHdvLgorICAgICAgICAjIE9u
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gsIHJheCBjb250YWlucyBhIHBvaW50ZXIgdG8gdGhp
cyBzdGFjayB2YWx1ZSwgYW5kIHdlIHRoZW4gbmVlZCB0byBjb3B5IHRoZSAxNiBieXRlIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2ggdmFsdWUgaW50byByYXggKHIwKSBhbmQgcmR4IChyMSkKKyAg
ICAgICAgIyBzaW5jZSB0aGUgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCB2YWx1ZSBpcyBleHBl
Y3RlZCB0byBiZSBzcGxpdCBiZXR3ZWVuIHRoZSB0d28uCiAgICAgICAgICMgU2VlIGh0dHA6Ly9t
c2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS83NTcyenR6NC5hc3B4CiAgICAgICAgIG1v
dmUgYTIsIGEzCiAgICAgICAgIG1vdmUgYTEsIGEyCkBAIC04NzAsMzQgKzg3MCwzNCBAQCBfbGxp
bnRfb3BfZW50ZXI6CiAgICAgZGlzcGF0Y2hPcChuYXJyb3csIG9wX2VudGVyKQogCiAKLWxsaW50
T3BXaXRoUHJvZmlsZShvcF9nZXRfYXJndW1lbnQsIE9wR2V0QXJndW1lbnQsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2FyZ3Vt
ZW50LCBPcEdldEFyZ3VtZW50LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9pbmRleCwgdDIpCiAgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzW2Nmcl0sIHQwCiAgICAgYmlsdGVx
IHQwLCB0MiwgLm9wR2V0QXJndW1lbnRPdXRPZkJvdW5kcwogICAgIGxvYWRxIFRoaXNBcmd1bWVu
dE9mZnNldFtjZnIsIHQyLCA4XSwgdDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCh0MCkKIAogLm9wR2V0QXJndW1lbnRPdXRPZkJvdW5kczoKLSAgICByZXR1
cm4oVmFsdWVVbmRlZmluZWQpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChWYWx1ZVVu
ZGVmaW5lZCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9hcmd1bWVudF9jb3VudCwg
T3BBcmd1bWVudENvdW50LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxp
bnRPcFdpdGhEZXN0aW5hdGlvbihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50LCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAg
ICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwg
dDAKICAgICBzdWJpIDEsIHQwCiAgICAgb3JxIFRhZ051bWJlciwgdDAKLSAgICByZXR1cm4odDAp
CisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIGVuZCkKIAogCi1sbGludE9wV2l0
aFJldHVybihvcF9nZXRfc2NvcGUsIE9wR2V0U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2dldF9zY29wZSwgT3BHZXRT
Y29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQwCiAgICAgbG9hZHAgSlNDYWxsZWU6Om1fc2Nv
cGVbdDBdLCB0MAotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfdG9fdGhpcywgT3BUb1RoaXMs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdp
dGhNZXRhZGF0YShvcF90b190aGlzLCBPcFRvVGhpcywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyY0Rz
dCwgdDApCiAgICAgbG9hZHEgW2NmciwgdDAsIDhdLCB0MAogICAgIGJ0cW56IHQwLCBub3RDZWxs
TWFzaywgLm9wVG9UaGlzU2xvdwpAQCAtOTI1LDIwICs5MjUsMjAgQEAgbGxpbnRPcChvcF9jaGVj
a190ZHosIE9wQ2hlY2tUZHosIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQogZW5kKQogCiAK
LWxsaW50T3BXaXRoUmV0dXJuKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX21vdiwgT3BNb3YsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdl
dChtX3NyYywgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDIpCi0g
ICAgcmV0dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIpCiBlbmQpCiAK
IAotbGxpbnRPcFdpdGhSZXR1cm4ob3Bfbm90LCBPcE5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bfbm90LCBPcE5vdCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
Z2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwg
dDIpCiAgICAgeG9ycSBWYWx1ZUZhbHNlLCB0MgogICAgIGJ0cW56IHQyLCB+MSwgLm9wTm90U2xv
dwogICAgIHhvcnEgVmFsdWVUcnVlLCB0MgotICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BOb3RTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xv
d19wYXRoX25vdCkKQEAgLTk0NywxNCArOTQ3LDE0IEBAIGVuZCkKIAogCiBtYWNybyBlcXVhbGl0
eUNvbXBhcmlzb25PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJpc29u
KQotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGlu
YXRpb24ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQw
KQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
SW50MzIoc2l6ZSwgdDAsIHQxLCAuc2xvdykKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZUludDMyKHNpemUsIHQyLCB0MCwgLnNsb3cpCiAgICAgICAgIGludGVnZXJDb21wYXJpc29uKHQw
LCB0MSwgdDApCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgICAgICByZXR1cm4odDAp
CisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKICAgICAuc2xvdzoKICAg
ICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpAQCAtOTY0LDcgKzk2
NCw3IEBAIGVuZAogCiAKIG1hY3JvIGVxdWFsTnVsbENvbXBhcmlzb25PcChvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGZuKQotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wY29kZU5hbWUsIG9wY29k
ZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9w
V2l0aERlc3RpbmF0aW9uKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX29w
ZXJhbmQsIHQwKQogICAgICAgICBsb2FkcSBbY2ZyLCB0MCwgOF0sIHQwCiAgICAgICAgIGJ0cW56
IHQwLCBub3RDZWxsTWFzaywgLmltbWVkaWF0ZQpAQCAtOTgyLDcgKzk4Miw3IEBAIG1hY3JvIGVx
dWFsTnVsbENvbXBhcmlzb25PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQogICAgICAg
ICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCiAgICAgLmRvbmU6CiAgICAgICAgIGZuKHQwKQotICAg
ICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAg
ICAgZW5kKQogZW5kCiAKQEAgLTk5NCwxOCArOTk0LDE4IEBAIGVxdWFsTnVsbENvbXBhcmlzb25P
cChvcF9uZXFfbnVsbCwgT3BOZXFOdWxsLAogICAgIG1hY3JvICh2YWx1ZSkgeG9ycSBWYWx1ZVRy
dWUsIHZhbHVlIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc191bmRlZmluZWRfb3Jf
bnVsbCwgT3BJc1VuZGVmaW5lZE9yTnVsbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJl
dHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfdW5kZWZpbmVkX29yX251bGwsIE9w
SXNVbmRlZmluZWRPck51bGwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQogICAgIGFuZHEgflRhZ1VuZGVmaW5lZCwgdDAKICAg
ICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCiAgICAgb3JxIFZhbHVlRmFsc2UsIHQwCi0gICAgcmV0
dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIAogbWFj
cm8gc3RyaWN0RXFPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGNyZWF0ZUJvb2xlYW4pCi0g
ICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0aW5hdGlv
bihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX3JocywgdDApCiAg
ICAgICAgIGdldChtX2xocywgdDIpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6
ZSwgdDAsIHQxKQpAQCAtMTAyMCw3ICsxMDIwLDcgQEAgbWFjcm8gc3RyaWN0RXFPcChvcGNvZGVO
YW1lLCBvcGNvZGVTdHJ1Y3QsIGNyZWF0ZUJvb2xlYW4pCiAgICAgICAgICMgaWYgKGxlZnQgaXMg
Q2VsbCB8fCByaWdodCBpcyBDZWxsKQogICAgICAgICAjICAgICBnb3RvIHNsb3dQYXRoOwogICAg
ICAgICAjIGRvbmU6Ci0gICAgICAgICMgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgIyBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoIHJlc3VsdDsKIAogICAgICAgICAjIFRoaXMgZnJhZ21lbnQgaW1w
bGVtZW50cyAobGVmdCBpcyBEb3VibGUgfHwgcmlnaHQgaXMgRG91YmxlKSwgd2l0aCBhIHNpbmds
ZSBicmFuY2ggaW5zdGVhZCBvZiB0aGUgNCB0aGF0IHdvdWxkIGJlIG5haXZlbHkgcmVxdWlyZWQg
aWYgd2UgdXNlZCBicmFuY2hJZkludDMyL2JyYW5jaElmTnVtYmVyCiAgICAgICAgICMgVGhlIHRy
aWNrIGlzIHRoYXQgaWYgYSBKU1ZhbHVlIGlzIGFuIEludDMyLCB0aGVuIGFkZGluZyAxPDw0OSB0
byBpdCB3aWxsIG1ha2UgaXQgb3ZlcmZsb3csIGxlYXZpbmcgYWxsIGhpZ2ggYml0cyBhdCAwCkBA
IC0xMDQ1LDcgKzEwNDUsNyBAQCBtYWNybyBzdHJpY3RFcU9wKG9wY29kZU5hbWUsIG9wY29kZVN0
cnVjdCwgY3JlYXRlQm9vbGVhbikKIAogICAgIC5kb25lOgogICAgICAgICBjcmVhdGVCb29sZWFu
KHQ1KQotICAgICAgICByZXR1cm4odDUpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDUpCiAKICAgICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9w
Y29kZU5hbWUlKQpAQCAtMTExOSw3ICsxMTE5LDcgQEAgc3RyaWN0RXF1YWxpdHlKdW1wT3Aoam5z
dHJpY3RlcSwgT3BKbnN0cmljdGVxLAogICAgIG1hY3JvIChqdW1wLCB0YXJnZXRMYWJlbCwgZGlz
cGF0Y2gpIGp1bXAodGFyZ2V0TGFiZWwpIGVuZCkKIAogbWFjcm8gcHJlT3Aob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBpbnRlZ2VyT3BlcmF0aW9uKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEo
b3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5h
bWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAg
ICAgICAgbG9hZHEgW2NmciwgdDAsIDhdLCB0MQogICAgICAgICAjIHNyY0RzdCBpbiB0MQpAQCAt
MTEzOCwyNiArMTEzOCwyNiBAQCBtYWNybyBwcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3Qs
IGludGVnZXJPcGVyYXRpb24pCiAKIGVuZAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfdG9fbnVt
YmVyLCBPcFRvTnVtYmVyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxp
bnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWJlciwgT3BUb051bWJlciwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFu
ZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDIpCiAgICAgYnFh
ZXEgdDIsIG51bWJlclRhZywgLm9wVG9OdW1iZXJJc0ltbWVkaWF0ZQogICAgIGJ0cXogdDIsIG51
bWJlclRhZywgLm9wVG9OdW1iZXJTbG93CiAub3BUb051bWJlcklzSW1tZWRpYXRlOgotICAgIHJl
dHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BUb051bWJl
clNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9fbnVtYmVyKQogICAgIGRpc3Bh
dGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1l
cmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9m
aWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MikKICAgICBicWFlcSB0MiwgbnVt
YmVyVGFnLCAub3BUb051bWVyaWNJc0ltbWVkaWF0ZQogICAgIGJ0cXogdDIsIG51bWJlclRhZywg
Lm9wVG9OdW1lcmljU2xvdwogLm9wVG9OdW1lcmljSXNJbW1lZGlhdGU6Ci0gICAgcmV0dXJuKHQy
KQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIpCiAKIC5vcFRvTnVtZXJpY1Nsb3c6
CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9fbnVtZXJpYykKQEAgLTExNjUsMTMgKzEx
NjUsMTMgQEAgbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmljLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXIKIGVuZCkKIAogCi1sbGludE9wV2l0aFJl
dHVybihvcF90b19zdHJpbmcsIE9wVG9TdHJpbmcsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3RvX3N0cmluZywgT3BUb1N0cmlu
ZywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gp
CiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXpl
LCB0MSwgdDApCiAgICAgYnRxbnogdDAsIG5vdENlbGxNYXNrLCAub3BUb1N0cmluZ1Nsb3cKICAg
ICBiYm5lcSBKU0NlbGw6Om1fdHlwZVt0MF0sIFN0cmluZ1R5cGUsIC5vcFRvU3RyaW5nU2xvdwog
Lm9wVG9TdHJpbmdJc1N0cmluZzoKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCh0MCkKIAogLm9wVG9TdHJpbmdTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xv
d19wYXRoX3RvX3N0cmluZykKQEAgLTExNzksMTIgKzExNzksMTIgQEAgbGxpbnRPcFdpdGhSZXR1
cm4ob3BfdG9fc3RyaW5nLCBPcFRvU3RyaW5nLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
cmV0dXJuKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF90b19vYmplY3QsIE9wVG9P
YmplY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFBy
b2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MikKICAgICBidHFueiB0Miwgbm90
Q2VsbE1hc2ssIC5vcFRvT2JqZWN0U2xvdwogICAgIGJiYiBKU0NlbGw6Om1fdHlwZVt0Ml0sIE9i
amVjdFR5cGUsIC5vcFRvT2JqZWN0U2xvdwotICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BUb09iamVjdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRo
KF9zbG93X3BhdGhfdG9fb2JqZWN0KQpAQCAtMTE5Miw3ICsxMTkyLDcgQEAgbGxpbnRPcFdpdGhQ
cm9maWxlKG9wX3RvX29iamVjdCwgT3BUb09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHJldHVybikKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX25lZ2F0ZSwgT3BO
ZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9uZWdhdGUsIE9wTmVnYXRlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1f
b3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDMpCiAg
ICAgYnFiIHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0ZU5vdEludApAQCAtMTIwMCwxMiArMTIwMCwx
MiBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcgogICAgIG5lZ2kgdDMKICAgICBvcnEgbnVtYmVy
VGFnLCB0MwogICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKHNpemUsIE9wTmVnYXRlLCBBcml0
aFByb2ZpbGVJbnQsIHQxLCB0MikKLSAgICByZXR1cm4odDMpCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCh0MykKIC5vcE5lZ2F0ZU5vdEludDoKICAgICBidHF6IHQzLCBudW1iZXJUYWcs
IC5vcE5lZ2F0ZVNsb3cKICAgICB4b3JxIDB4ODAwMDAwMDAwMDAwMDAwMCwgdDMKICAgICB1cGRh
dGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0
MSwgdDIpCi0gICAgcmV0dXJuKHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDMp
CiAKIC5vcE5lZ2F0ZVNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfbmVnYXRlKQpA
QCAtMTIxNCw3ICsxMjE0LDcgQEAgZW5kKQogCiAKIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUo
b3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUsIGRvdWJs
ZU9wZXJhdGlvbikKLSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bj
b2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikK
KyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgICAgIGdldChtX3JocywgdDApCiAgICAgICAgIGdldChtX2xocywgdDIpCiAg
ICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxKQpAQCAtMTMyOCw3ICsx
MzI4LDcgQEAgYmluYXJ5T3Aoc3ViLCBPcFN1YiwKICAgICBtYWNybyAobGhzLCByaHMpIHN1YmQg
cmhzLCBsaHMgZW5kKQogCiBpZiBYODZfNjQgb3IgWDg2XzY0X1dJTgotICAgIGxsaW50T3BXaXRo
UmV0dXJuKG9wX21vZCwgT3BNb2QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CisgICAgbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9tb2QsIE9wTW9kLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1f
cmhzLCB0MCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikKICAgICAgICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZUludDMyKHNpemUsIHQwLCB0MSwgLnNsb3cpCkBAIC0xMzQ1LDEzICsxMzQ1LDEzIEBA
IGlmIFg4Nl82NCBvciBYODZfNjRfV0lOCiAgICAgICAgIGNkcWkKICAgICAgICAgaWRpdmkgdDMK
ICAgICAgICAgb3JxIG51bWJlclRhZywgcjEKLSAgICAgICAgcmV0dXJuKHIxKQorICAgICAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxKQogICAgIC5uZWVkc05lZ1plcm9DaGVjazoKICAg
ICAgICAgY2RxaQogICAgICAgICBpZGl2aSB0MwogICAgICAgICBidGl6IHIxLCAuc2xvdwogICAg
ICAgICBvcnEgbnVtYmVyVGFnLCByMQotICAgICAgICByZXR1cm4ocjEpCisgICAgICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2gocjEpCiAKICAgICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQ
YXRoKF9zbG93X3BhdGhfbW9kKQpAQCAtMTM2MSw3ICsxMzYxLDcgQEAgZWxzZQogICAgIHNsb3dQ
YXRoT3AobW9kKQogZW5kCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3BvdywgT3BQb3csIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9w
X3BvdywgT3BQb3csIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIGdldChtX3JocywgdDApCiAgICAgZ2V0KG1fbGhzLCB0MikKICAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIoc2l6ZSwgdDAsIHQxLCAuc2xvdykKQEAgLTE0MDAs
MTEgKzE0MDAsMTEgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfcG93LCBPcFBvdywgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50
T3BXaXRoUmV0dXJuKG9wX3Vuc2lnbmVkLCBPcFVuc2lnbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF91bnNpZ25lZCwgT3BV
bnNpZ25lZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MSwgdDIpCiAgICAgYmlsdCB0MiwgMCwgLm9wVW5zaWduZWRTbG93Ci0gICAgcmV0
dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIpCiAub3BVbnNpZ25lZFNs
b3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdW5zaWduZWQpCiAgICAgZGlzcGF0Y2go
KQpAQCAtMTQxMiw3ICsxNDEyLDcgQEAgZW5kKQogCiAKIG1hY3JvIGNvbW1vbkJpdE9wKG9wS2lu
ZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCi0gICAgb3BLaW5kKG9wXyVv
cGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0
dXJuKQorICAgIG9wS2luZChvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdl
dChtX3JocywgdDApCiAgICAgICAgIGdldChtX2xocywgdDIpCiAgICAgICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxKQpAQCAtMTQyMSw3ICsxNDIxLDcgQEAgbWFjcm8gY29t
bW9uQml0T3Aob3BLaW5kLCBvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKICAg
ICAgICAgYnFiIHQxLCBudW1iZXJUYWcsIC5zbG93CiAgICAgICAgIG9wZXJhdGlvbih0MCwgdDEp
CiAgICAgICAgIG9ycSBudW1iZXJUYWcsIHQwCi0gICAgICAgIHJldHVybih0MCkKKyAgICAgICAg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogICAgIC5zbG93OgogICAgICAgICBjYWxs
U2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUpCkBAIC0xNDMwLDcgKzE0MzAsNyBAQCBt
YWNybyBjb21tb25CaXRPcChvcEtpbmQsIG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0
aW9uKQogZW5kCiAKIG1hY3JvIGJpdE9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0
aW9uKQotICAgIGNvbW1vbkJpdE9wKGxsaW50T3BXaXRoUmV0dXJuLCBvcGNvZGVOYW1lLCBvcGNv
ZGVTdHJ1Y3QsIG9wZXJhdGlvbikKKyAgICBjb21tb25CaXRPcChsbGludE9wV2l0aERlc3RpbmF0
aW9uLCBvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKIGVuZAogCiBtYWNybyBi
aXRPcFByb2ZpbGVkKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0aW9uKQpAQCAtMTQ1
NywxMiArMTQ1NywxMiBAQCBiaXRPcFByb2ZpbGVkKGJpdG9yLCBPcEJpdG9yLAogYml0T3BQcm9m
aWxlZChiaXR4b3IsIE9wQml0eG9yLAogICAgIG1hY3JvIChsaHMsIHJocykgeG9yaSByaHMsIGxo
cyBlbmQpCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9iaXRub3QsIE9wQml0bm90LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX2JpdG5v
dCwgT3BCaXRub3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGVJbnQzMihzaXplLCB0MCwgdDMsIC5vcEJpdE5vdFNsb3cpCiAgICAgbm90aSB0MwogICAg
IG9ycSBudW1iZXJUYWcsIHQzCi0gICAgcmV0dXJuKHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDMpCiAub3BCaXROb3RTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRo
X2JpdG5vdCkKICAgICBkaXNwYXRjaCgpCkBAIC0xNDkyLDY3ICsxNDkyLDY3IEBAIGxsaW50T3Ao
b3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSwgT3BPdmVycmlkZXNIYXNJbnN0YW5jZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfZW1wdHks
IE9wSXNFbXB0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BX
aXRoRGVzdGluYXRpb24ob3BfaXNfZW1wdHksIE9wSXNFbXB0eSwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwg
dDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAgICAgY3FlcSB0
MCwgVmFsdWVFbXB0eSwgdDMKICAgICBvcnEgVmFsdWVGYWxzZSwgdDMKLSAgICByZXR1cm4odDMp
CisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MykKIGVuZCkKIAogCi1sbGludE9wV2l0
aFJldHVybihvcF90eXBlb2ZfaXNfdW5kZWZpbmVkLCBPcFR5cGVvZklzVW5kZWZpbmVkLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihv
cF90eXBlb2ZfaXNfdW5kZWZpbmVkLCBPcFR5cGVvZklzVW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVy
YW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MCkKICAgICBi
dHF6IHQwLCBub3RDZWxsTWFzaywgLm9wSXNVbmRlZmluZWRDZWxsCiAgICAgY3FlcSB0MCwgVmFs
dWVVbmRlZmluZWQsIHQzCiAgICAgb3JxIFZhbHVlRmFsc2UsIHQzCi0gICAgcmV0dXJuKHQzKQor
ICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDMpCiAub3BJc1VuZGVmaW5lZENlbGw6CiAg
ICAgYnRibnogSlNDZWxsOjptX2ZsYWdzW3QwXSwgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgLm1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQKICAgICBtb3ZlIFZhbHVlRmFsc2UsIHQxCi0gICAgcmV0dXJu
KHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDEpCiAubWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZDoKICAgICBsb2FkU3RydWN0dXJlV2l0aFNjcmF0Y2godDAsIHQzLCB0MSkKICAgICBs
b2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2Jq
ZWN0W3QxXSwgdDEKICAgICBjcGVxIFN0cnVjdHVyZTo6bV9nbG9iYWxPYmplY3RbdDNdLCB0MSwg
dDAKICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCh0MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19i
b29sZWFuLCBPcElzQm9vbGVhbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikK
K2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfYm9vbGVhbiwgT3BJc0Jvb2xlYW4sIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdl
dChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQw
KQogICAgIHhvcnEgVmFsdWVGYWxzZSwgdDAKICAgICB0cXogdDAsIH4xLCB0MAogICAgIG9ycSBW
YWx1ZUZhbHNlLCB0MAotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX251bWJlciwgT3BJc051
bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVz
dGluYXRpb24ob3BfaXNfbnVtYmVyLCBPcElzTnVtYmVyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkK
ICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MCkKICAgICB0cW56IHQwLCBu
dW1iZXJUYWcsIHQxCiAgICAgb3JxIFZhbHVlRmFsc2UsIHQxCi0gICAgcmV0dXJuKHQxKQorICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDEpCiBlbmQpCiAKIGlmIEJJR0lOVDMyCi0gICAg
bGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfYmlnX2ludCwgT3BJc0JpZ0ludCwgbWFjcm8oc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNf
YmlnX2ludCwgT3BJc0JpZ0ludCwgbWFjcm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQogICAgICAgICBidHFueiB0MCwgbm90
Q2VsbE1hc2ssIC5ub3RDZWxsQ2FzZQogICAgICAgICBjYmVxIEpTQ2VsbDo6bV90eXBlW3QwXSwg
SGVhcEJpZ0ludFR5cGUsIHQxCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNlLCB0MQotICAgICAgICBy
ZXR1cm4odDEpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDEpCiAgICAgLm5v
dENlbGxDYXNlOgogICAgICAgICBhbmRxIE1hc2tCaWdJbnQzMiwgdDAKICAgICAgICAgY3FlcSB0
MCwgVGFnQmlnSW50MzIsIHQwCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgICAgICBy
ZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAgICAgZW5k
KQogZWxzZQogIyBpZiBCSUdJTlQzMiBpcyBub3Qgc3VwcG9ydGVkIHdlIGdlbmVyYXRlIG9wX2lz
X2NlbGxfd2l0aF90eXBlIGluc3RlYWQgb2Ygb3BfaXNfYmlnX2ludApAQCAtMTU2MSwyOCArMTU2
MSwyOCBAQCBlbHNlCiAgICAgZW5kKQogZW5kCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX2Nl
bGxfd2l0aF90eXBlLCBPcElzQ2VsbFdpdGhUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19jZWxsX3dpdGhfdHlwZSwg
T3BJc0NlbGxXaXRoVHlwZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0dShzaXplLCBPcElzQ2VsbFdpdGhUeXBlLCBtX3R5cGUs
IHQwKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
c2l6ZSwgdDEsIHQzKQogICAgIGJ0cW56IHQzLCBub3RDZWxsTWFzaywgLm5vdENlbGxDYXNlCiAg
ICAgY2JlcSBKU0NlbGw6Om1fdHlwZVt0M10sIHQwLCB0MQogICAgIG9ycSBWYWx1ZUZhbHNlLCB0
MQotICAgIHJldHVybih0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogLm5v
dENlbGxDYXNlOgotICAgIHJldHVybihWYWx1ZUZhbHNlKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2goVmFsdWVGYWxzZSkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19v
YmplY3QsIE9wSXNPYmplY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCits
bGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX29iamVjdCwgT3BJc09iamVjdCwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1f
b3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAg
ICAgYnRxbnogdDAsIG5vdENlbGxNYXNrLCAub3BJc09iamVjdE5vdENlbGwKICAgICBjYmFlcSBK
U0NlbGw6Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIHQxCiAgICAgb3JxIFZhbHVlRmFsc2UsIHQx
Ci0gICAgcmV0dXJuKHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDEpCiAub3BJ
c09iamVjdE5vdENlbGw6Ci0gICAgcmV0dXJuKFZhbHVlRmFsc2UpCisgICAgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaChWYWx1ZUZhbHNlKQogZW5kKQogCiAKQEAgLTE2MTgsNyArMTYxOCw3IEBA
IG1hY3JvIHN0b3JlUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHByb3BlcnR5T2Zmc2V0QXNJbnQs
IG9iamVjdEFuZFN0b3JhZ2UsIHZhbHVlCiBlbmQKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9w
X3RyeV9nZXRfYnlfaWQsIE9wVHJ5R2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RyeV9nZXRfYnlfaWQs
IE9wVHJ5R2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQyLCB0MCkKICAgICBnZXQobV9i
YXNlLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChzaXplLCB0MCwgdDMsIC5v
cFRyeUdldEJ5SWRTbG93KQpAQCAtMTYyOCwxNCArMTYyOCwxNCBAQCBsbGludE9wV2l0aE1ldGFk
YXRhKG9wX3RyeV9nZXRfYnlfaWQsIE9wVHJ5R2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsCiAgICAgbG9hZGkgT3BUcnlHZXRCeUlkOjpNZXRhZGF0YTo6bV9vZmZzZXRbdDJdLCB0
MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDEsIHQzLCB0MCkKICAgICB2YWx1
ZVByb2ZpbGUoT3BUcnlHZXRCeUlkLCBtX3Byb2ZpbGUsIHQyLCB0MCkKLSAgICByZXR1cm4odDAp
CisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogLm9wVHJ5R2V0QnlJZFNsb3c6
CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdHJ5X2dldF9ieV9pZCkKICAgICBk
aXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkX2RpcmVj
dCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkX2RpcmVjdCwgT3BHZXRC
eUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDIsIHQwKQogICAgIGdldChtX2Jhc2Us
IHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQwLCB0MywgLm9wR2V0
QnlJZERpcmVjdFNsb3cpCkBAIC0xNjQ1LDcgKzE2NDUsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRh
KG9wX2dldF9ieV9pZF9kaXJlY3QsIE9wR2V0QnlJZERpcmVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcAogICAgIGxvYWRpIE9wR2V0QnlJZERpcmVjdDo6TWV0YWRhdGE6Om1fb2Zmc2V0W3QyXSwg
dDEKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDApCiAgICAgdmFs
dWVQcm9maWxlKE9wR2V0QnlJZERpcmVjdCwgbV9wcm9maWxlLCB0MiwgdDApCi0gICAgcmV0dXJu
KHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcEdldEJ5SWREaXJl
Y3RTbG93OgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZF9kaXJl
Y3QpCkBAIC0xNjUzLDcgKzE2NTMsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9p
ZF9kaXJlY3QsIE9wR2V0QnlJZERpcmVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcAogZW5kKQog
CiAjIFRoZSBiYXNlIG9iamVjdCBpcyBleHBlY3RlZCBpbiB0MwotbWFjcm8gcGVyZm9ybUdldEJ5
SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1lLCB2YWx1ZVByb2ZpbGVOYW1l
LCBzbG93TGFiZWwsIHNpemUsIG1ldGFkYXRhLCByZXR1cm4pCittYWNybyBwZXJmb3JtR2V0QnlJ
REhlbHBlcihvcGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUs
IHNsb3dMYWJlbCwgc2l6ZSwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAg
ICAgbWV0YWRhdGEodDIsIHQxKQogICAgIGxvYWRiICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6
JW1vZGVNZXRhZGF0YU5hbWUlLm1vZGVbdDJdLCB0MQogCkBAIC0xNjY1LDcgKzE2NjUsNyBAQCBt
YWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUs
IHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAgIGxvYWRpcyAlb3Bjb2RlU3RydWN0JTo6TWV0YWRh
dGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5kZWZhdWx0TW9kZS5jYWNoZWRPZmZzZXRbdDJdLCB0MQog
ICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDEsIHQzLCB0MCkKICAgICB2YWx1ZVBy
b2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCB0MiwgdDApCi0gICAgcmV0dXJu
KHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcEdldEJ5SWRQcm90
b0xvYWQ6CiAgICAgYmJuZXEgdDEsIGNvbnN0ZXhwciBHZXRCeUlkTW9kZTo6UHJvdG9Mb2FkLCAu
b3BHZXRCeUlkQXJyYXlMZW5ndGgKQEAgLTE2NzYsNyArMTY3Niw3IEBAIG1hY3JvIHBlcmZvcm1H
ZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxl
TmFtZSwgc2xvCiAgICAgbG9hZHAgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjolbW9kZU1ldGFk
YXRhTmFtZSUucHJvdG9Mb2FkTW9kZS5jYWNoZWRTbG90W3QyXSwgdDMKICAgICBsb2FkUHJvcGVy
dHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDApCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0
cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgdDIsIHQwKQotICAgIHJldHVybih0MCkKKyAgICBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BHZXRCeUlkQXJyYXlMZW5ndGg6CiAgICAg
YmJuZXEgdDEsIGNvbnN0ZXhwciBHZXRCeUlkTW9kZTo6QXJyYXlMZW5ndGgsIC5vcEdldEJ5SWRV
bnNldApAQCAtMTY4OSwyMSArMTY4OSwyMSBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihv
cGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAg
IGJpbHQgdDAsIDAsIHNsb3dMYWJlbAogICAgIG9ycSBudW1iZXJUYWcsIHQwCiAgICAgdmFsdWVQ
cm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgdDIsIHQwKQotICAgIHJldHVy
bih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BHZXRCeUlkVW5z
ZXQ6CiAgICAgbG9hZGkgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEKICAgICBsb2FkaSAl
b3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS51bnNldE1vZGUuc3Ry
dWN0dXJlSURbdDJdLCB0MAogICAgIGJpbmVxIHQwLCB0MSwgc2xvd0xhYmVsCiAgICAgdmFsdWVQ
cm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgdDIsIFZhbHVlVW5kZWZpbmVk
KQotICAgIHJldHVybihWYWx1ZVVuZGVmaW5lZCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKFZhbHVlVW5kZWZpbmVkKQogCiBlbmQKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRf
YnlfaWQsIE9wR2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBy
ZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgZ2V0KG1fYmFzZSwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwo
c2l6ZSwgdDAsIHQzLCAub3BHZXRCeUlkU2xvdykKLSAgICBwZXJmb3JtR2V0QnlJREhlbHBlcihP
cEdldEJ5SWQsIG1fbW9kZU1ldGFkYXRhLCBtX3Byb2ZpbGUsIC5vcEdldEJ5SWRTbG93LCBzaXpl
LCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIHBlcmZvcm1HZXRCeUlESGVscGVyKE9wR2V0QnlJZCwg
bV9tb2RlTWV0YWRhdGEsIG1fcHJvZmlsZSwgLm9wR2V0QnlJZFNsb3csIHNpemUsIG1ldGFkYXRh
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogCiAub3BHZXRCeUlkU2xvdzoKICAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWQpCkBAIC0xNzEzLDEyICsxNzEzLDEy
IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkLCBPcEdldEJ5SWQsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0CiAgICAgZ2V0dGVyU2V0dGVyT1NSRXhpdFJldHVy
blBvaW50KG9wX2dldF9ieV9pZCwgc2l6ZSkKICAgICBtZXRhZGF0YSh0MiwgdDMpCiAgICAgdmFs
dWVQcm9maWxlKE9wR2V0QnlJZCwgbV9wcm9maWxlLCB0MiwgcjApCi0gICAgcmV0dXJuKHIwKQor
ICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gocjApCiAKIGVuZCkKIAogCi1sbGludE9wV2l0
aFByb2ZpbGUob3BfZ2V0X3Byb3RvdHlwZV9vZiwgT3BHZXRQcm90b3R5cGVPZiwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfcHJv
dG90eXBlX29mLCBPcEdldFByb3RvdHlwZU9mLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV92YWx1ZSwgdDEpCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAKQEAgLTE3MzEsNyArMTczMSw3IEBA
IGxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfcHJvdG90eXBlX29mLCBPcEdldFByb3RvdHlwZU9m
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwCiAKICAgICBsb2FkcSBTdHJ1Y3R1cmU6Om1fcHJvdG90
eXBlW3QyXSwgdDIKICAgICBidHF6IHQyLCAub3BHZXRQcm90b3R5cGVPZlBvbHlQcm90bwotICAg
IHJldHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BHZXRQ
cm90b3R5cGVPZlNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfZ2V0X3Byb3RvdHlw
ZV9vZikKQEAgLTE3NDAsMTEgKzE3NDAsMTEgQEAgbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9w
cm90b3R5cGVfb2YsIE9wR2V0UHJvdG90eXBlT2YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3AKIC5v
cEdldFByb3RvdHlwZU9mUG9seVByb3RvOgogICAgIG1vdmUga25vd25Qb2x5UHJvdG9PZmZzZXQs
IHQxCiAgICAgbG9hZElubGluZU9mZnNldCh0MSwgdDAsIHQzKQotICAgIHJldHVybih0MykKKyAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQzKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0
YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1dEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9w
UHV0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGVDZWxsKHNpemUsIHQzLCB0MCwgLm9wUHV0QnlJZFNsb3cpCiAgICAgbWV0YWRhdGEo
dDUsIHQyKQpAQCAtMTgxNyw3ICsxODE3LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRf
YnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKIGVu
ZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV92YWwsIE9wR2V0QnlWYWwsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdldEJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWFjcm8gZmlu
aXNoR2V0QnlWYWwocmVzdWx0LCBzY3JhdGNoKQogICAgICAgICBnZXQobV9kc3QsIHNjcmF0Y2gp
CiAgICAgICAgIHN0b3JlcSByZXN1bHQsIFtjZnIsIHNjcmF0Y2gsIDhdCkBAIC0xOTA1LDExICsx
OTA1LDExIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X3ZhbCwgT3BHZXRCeVZhbCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkCiAgICAgZ2V0dGVyU2V0dGVyT1NSRXhp
dFJldHVyblBvaW50KG9wX2dldF9ieV92YWwsIHNpemUpCiAgICAgbWV0YWRhdGEodDUsIHQyKQog
ICAgIHZhbHVlUHJvZmlsZShPcEdldEJ5VmFsLCBtX3Byb2ZpbGUsIHQ1LCByMCkKLSAgICByZXR1
cm4ocjApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChyMCkKIAogZW5kKQogCi1sbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2dldF9wcml2YXRlX25hbWUsIE9wR2V0UHJpdmF0ZU5hbWUsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAg
ICAgbWV0YWRhdGEodDIsIHQwKQogCiAgICAgIyBTbG93IHBhdGggaWYgdGhlIHByaXZhdGUgZmll
bGQgaXMgc3RhbGUKQEAgLTE5MjcsMTQgKzE5MjcsMTQgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXMKICAgICBsb2FkaSBPcEdldFByaXZhdGVOYW1lOjpNZXRhZGF0YTo6bV9vZmZzZXRbdDJdLCB0
MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDEsIHQzLCB0MCkKICAgICB2YWx1
ZVByb2ZpbGUoT3BHZXRQcml2YXRlTmFtZSwgbV9wcm9maWxlLCB0MiwgdDApCi0gICAgcmV0dXJu
KHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcEdldFByaXZhdGVO
YW1lU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfcHJpdmF0ZV9u
YW1lKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRf
cHJpdmF0ZV9uYW1lLCBPcFB1dFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3ByaXZhdGVf
bmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFk
YXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX2Jhc2UsIHQzKQogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQzLCB0MCwgLm9wUHV0UHJpdmF0ZU5h
bWVTbG93KQogICAgIGdldChtX3Byb3BlcnR5LCB0MykKQEAgLTE5NzcsNyArMTk3Nyw3IEBAIGxs
aW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3ByaXZhdGVfbmFtZSwgT3BQdXRQcml2YXRlTmFtZSwg
bWFjcm8gKHNpemUsIGdldCwgZGlzCiAgICAgZGlzcGF0Y2goKQogZW5kKQogCi1sbGludE9wV2l0
aE1ldGFkYXRhKG9wX3NldF9wcml2YXRlX2JyYW5kLCBPcFNldFByaXZhdGVCcmFuZCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX3NldF9wcml2YXRlX2JyYW5kLCBPcFNldFByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IGdldChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQz
LCB0MCwgLm9wU2V0UHJpdmF0ZUJyYW5kU2xvdykKICAgICBnZXQobV9icmFuZCwgdDMpCkBAIC0x
OTk5LDcgKzE5OTksNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3NldF9wcml2YXRlX2JyYW5k
LCBPcFNldFByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZAogICAgIGRpc3BhdGNoKCkK
IGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9jaGVja19wcml2YXRlX2JyYW5kLCBPcENo
ZWNrUHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJl
dHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0ZV9icmFuZCwgT3BDaGVj
a1ByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQ1LCB0MikKICAgICBnZXQobV9i
YXNlLCB0MykKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChzaXplLCB0MywgdDAsIC5v
cENoZWNrUHJpdmF0ZUJyYW5kU2xvdykKQEAgLTIwMTksNyArMjAxOSw3IEBAIGxsaW50T3BXaXRo
TWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0ZV9icmFuZCwgT3BDaGVja1ByaXZhdGVCcmFuZCwgbWFj
cm8gKHNpemUsIGdlCiBlbmQpCiAKIG1hY3JvIHB1dEJ5VmFsT3Aob3Bjb2RlTmFtZSwgb3Bjb2Rl
U3RydWN0LCBvc3JFeGl0UG9pbnQpCi0gICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2Rl
TmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29k
ZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgICAgICBtYWNybyBjb250aWd1b3VzUHV0QnlWYWwoc3RvcmVD
YWxsYmFjaykKICAgICAgICAgICAgIGJpYWVxIHQzLCAtc2l6ZW9mIEluZGV4aW5nSGVhZGVyICsg
SW5kZXhpbmdIZWFkZXI6OnUubGVuZ3Rocy5wdWJsaWNMZW5ndGhbdDBdLCAub3V0T2ZCb3VuZHMK
ICAgICAgICAgLnN0b3JlUmVzdWx0OgpAQCAtMjIwNCw3ICsyMjA0LDcgQEAgdW5kZWZpbmVkT3JO
dWxsSnVtcE9wKGp1bmRlZmluZWRfb3JfbnVsbCwgT3BKdW5kZWZpbmVkT3JOdWxsLAogdW5kZWZp
bmVkT3JOdWxsSnVtcE9wKGpudW5kZWZpbmVkX29yX251bGwsIE9wSm51bmRlZmluZWRPck51bGws
CiAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJxbmVxIHZhbHVlLCBWYWx1ZU51bGwsIHRhcmdl
dCBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2plcV9wdHIsIE9wSmVxUHRyLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9q
ZXFfcHRyLCBPcEplcVB0ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fdmFsdWUsIHQwKQogICAgIGdldChtX3NwZWNpYWxQ
b2ludGVyLCB0MSkKICAgICBsb2FkQ29uc3RhbnQoc2l6ZSwgdDEsIHQyKQpAQCAtMjIxNyw3ICsy
MjE3LDcgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfamVxX3B0ciwgT3BKZXFQdHIsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9qbmVxX3B0ciwgT3BKbmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0
ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIGdldChtX3ZhbHVlLCB0MCkKICAgICBnZXQobV9zcGVjaWFsUG9pbnRl
ciwgdDEpCiAgICAgbG9hZENvbnN0YW50KHNpemUsIHQxLCB0MikKQEAgLTIzMTEsNyArMjMxMSw3
IEBAIGVuZAogCiAKIG1hY3JvIGNvbXBhcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGlu
dGVnZXJDb21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJlQW5kU2V0KQotICAgIGxsaW50T3BXaXRo
UmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29kZU5h
bWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBnZXQobV9y
aHMsIHQwKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSkKQEAg
LTIzMjAsNyArMjMyMCw3IEBAIG1hY3JvIGNvbXBhcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1
Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJlQW5kCiAgICAgICAgIGJxYiB0
MSwgbnVtYmVyVGFnLCAub3AyTm90SW50CiAgICAgICAgIGludGVnZXJDb21wYXJlQW5kU2V0KHQw
LCB0MSwgdDApCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgICAgICByZXR1cm4odDAp
CisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKICAgICAub3AxTm90SW50
OgogICAgICAgICBidHF6IHQwLCBudW1iZXJUYWcsIC5zbG93CkBAIC0yMzM4LDcgKzIzMzgsNyBA
QCBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFy
ZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZAogICAgICAgICBmcTJkIHQwLCBmdDAKICAgICAgICAg
ZG91YmxlQ29tcGFyZUFuZFNldChmdDAsIGZ0MSwgdDApCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNl
LCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDApCiAKICAgICAub3AyTm90SW50OgogICAgICAgICBjaTJkcyB0MCwgZnQwCkBAIC0yMzQ3
LDcgKzIzNDcsNyBAQCBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBp
bnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZAogICAgICAgICBmcTJkIHQxLCBm
dDEKICAgICAgICAgZG91YmxlQ29tcGFyZUFuZFNldChmdDAsIGZ0MSwgdDApCiAgICAgICAgIG9y
cSBWYWx1ZUZhbHNlLCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2godDApCiAKICAgICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9z
bG93X3BhdGhfJW9wY29kZU5hbWUlKQpAQCAtMjM1NywxNCArMjM1NywxNCBAQCBlbmQKIAogCiBt
YWNybyBjb21wYXJlVW5zaWduZWRPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJD
b21wYXJlQW5kU2V0KQotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bj
b2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50
T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBn
ZXQobV9saHMsIHQyKQogICAgICAgICBnZXQobV9yaHMsICB0MCkKICAgICAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDEpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUoc2l6ZSwgdDIsIHQwKQogICAgICAgICBpbnRlZ2VyQ29tcGFyZUFuZFNldCh0MCwgdDEsIHQw
KQogICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICAgICAgcmV0dXJuKHQwKQorICAgICAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogICAgIGVuZCkKIGVuZAogCkBAIC0yNDc2
LDcgKzI0NzYsNyBAQCBtYWNybyBjYWxsSGVscGVyKG9wY29kZU5hbWUsIHNsb3dQYXRoLCBvcGNv
ZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIGRzdFZpcnR1YQogCiAgICAgbG9hZHAgJW9wY29k
ZVN0cnVjdCU6Ok1ldGFkYXRhOjptX2NhbGxMaW5rSW5mby5tX2NhbGxlZU9yQ29kZUJsb2NrW3Q1
XSwgdDEKICAgICBidHB6IHQxLCAoY29uc3RleHByIENhbGxMaW5rSW5mbzo6cG9seW1vcnBoaWND
YWxsZWVNYXNrKSwgLm5vdFBvbHltb3JwaGljCi0gICAgIyBwcmVwYXJlQ2FsbCBpbiBMTEludCBk
b2VzIG5vdCB1bnRhZyByZXR1cm4gYWRkcmVzcy4gU28gd2UgbmVlZCB0byB1bnRhZyB0aGF0IGlu
IHRoZSB0cmFtcG9saW5lIHNlcGFyYXRlbHkuCisgICAgIyBwcmVwYXJlQ2FsbCBpbiBMTEludCBk
b2VzIG5vdCB1bnRhZyBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoIGFkZHJlc3MuIFNvIHdlIG5l
ZWQgdG8gdW50YWcgdGhhdCBpbiB0aGUgdHJhbXBvbGluZSBzZXBhcmF0ZWx5LgogICAgICMgQnV0
IHdlIHNob3VsZCBub3QgdW50YWcgdGhhdCBmb3IgcG9seW1vcnBoaWMgY2FsbCBjYXNlIHNpbmNl
IGl0IHNob3VsZCBiZSBkb25lIGluIHRoZSBwb2x5bW9ycGhpYyB0aHVuayBzaWRlLgogICAgIHBy
ZXBhcmVQb2x5bW9ycGhpYyhvcGNvZGVOYW1lLCBzaXplLCBvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJv
ZmlsZU5hbWUsIGRzdFZpcnR1YWxSZWdpc3RlciwgZGlzcGF0Y2gsIEpTRW50cnlQdHJUYWcpCiAg
ICAgam1wIC5nb1BvbHltb3JwaGljCkBAIC0yNTAyLDcgKzI1MDIsNyBAQCBtYWNybyBjYWxsSGVs
cGVyKG9wY29kZU5hbWUsIHNsb3dQYXRoLCBvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUs
IGRzdFZpcnR1YQogZW5kCiAKIG1hY3JvIGNvbW1vbkNhbGxPcChvcGNvZGVOYW1lLCBzbG93UGF0
aCwgb3Bjb2RlU3RydWN0LCBwcmVwYXJlQ2FsbCwgaW52b2tlQ2FsbCwgcHJlcGFyZVBvbHltb3Jw
aGljLCBwcmVwYXJlU2xvd0NhbGwsIHByb2xvZ3VlKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEo
b3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29k
ZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgICAgICBtZXRhZGF0YSh0NSwgdDApCiAKICAgICAgICAgcHJv
bG9ndWUobWFjcm8gKGZpZWxkTmFtZSwgZHN0KQpAQCAtMjU1NCw3ICsyNTU0LDcgQEAgbWFjcm8g
ZG9DYWxsVmFyYXJncyhvcGNvZGVOYW1lLCBzaXplLCBnZXQsIG9wY29kZVN0cnVjdCwgdmFsdWVQ
cm9maWxlTmFtZSwgZHN0VmkKIAogICAgICAgICAgICAgbG9hZHAgJW9wY29kZVN0cnVjdCU6Ok1l
dGFkYXRhOjptX2NhbGxMaW5rSW5mby5tX2NhbGxlZU9yQ29kZUJsb2NrW3Q1XSwgdDEKICAgICAg
ICAgICAgIGJ0cHogdDEsIChjb25zdGV4cHIgQ2FsbExpbmtJbmZvOjpwb2x5bW9ycGhpY0NhbGxl
ZU1hc2spLCAubm90UG9seW1vcnBoaWMKLSAgICAgICAgICAgICMgcHJlcGFyZUNhbGwgaW4gTExJ
bnQgZG9lcyBub3QgdW50YWcgcmV0dXJuIGFkZHJlc3MuIFNvIHdlIG5lZWQgdG8gdW50YWcgdGhh
dCBpbiB0aGUgdHJhbXBvbGluZSBzZXBhcmF0ZWx5LgorICAgICAgICAgICAgIyBwcmVwYXJlQ2Fs
bCBpbiBMTEludCBkb2VzIG5vdCB1bnRhZyBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoIGFkZHJl
c3MuIFNvIHdlIG5lZWQgdG8gdW50YWcgdGhhdCBpbiB0aGUgdHJhbXBvbGluZSBzZXBhcmF0ZWx5
LgogICAgICAgICAgICAgIyBCdXQgd2Ugc2hvdWxkIG5vdCB1bnRhZyB0aGF0IGZvciBwb2x5bW9y
cGhpYyBjYWxsIGNhc2Ugc2luY2UgaXQgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIHBvbHltb3JwaGlj
IHRodW5rIHNpZGUuCiAgICAgICAgICAgICBwcmVwYXJlUG9seW1vcnBoaWMob3Bjb2RlTmFtZSwg
c2l6ZSwgb3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCBkc3RWaXJ0dWFsUmVnaXN0ZXIs
IGRpc3BhdGNoLCBKU0VudHJ5UHRyVGFnKQogICAgICAgICAgICAgam1wIC5nb1BvbHltb3JwaGlj
CkBAIC0yNTkwLDEzICsyNTkwLDEzIEBAIGxsaW50T3Aob3BfcmV0LCBPcFJldCwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9fcHJp
bWl0aXZlLCBPcFRvUHJpbWl0aXZlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJu
KQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90b19wcmltaXRpdmUsIE9wVG9QcmltaXRpdmUs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX3NyYywgdDIpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0Miwg
dDApCiAgICAgYnRxbnogdDAsIG5vdENlbGxNYXNrLCAub3BUb1ByaW1pdGl2ZUlzSW1tCiAgICAg
YmJhZXEgSlNDZWxsOjptX3R5cGVbdDBdLCBPYmplY3RUeXBlLCAub3BUb1ByaW1pdGl2ZVNsb3dD
YXNlCiAub3BUb1ByaW1pdGl2ZUlzSW1tOgotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BUb1ByaW1pdGl2ZVNsb3dDYXNlOgogICAgIGNhbGxT
bG93UGF0aChfc2xvd19wYXRoX3RvX3ByaW1pdGl2ZSkKQEAgLTI2MDQsNyArMjYwNCw3IEBAIGxs
aW50T3BXaXRoUmV0dXJuKG9wX3RvX3ByaW1pdGl2ZSwgT3BUb1ByaW1pdGl2ZSwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHJlCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9f
cHJvcGVydHlfa2V5LCBPcFRvUHJvcGVydHlLZXksIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3RvX3Byb3BlcnR5X2tleSwgT3BU
b1Byb3BlcnR5S2V5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBnZXQobV9zcmMsIHQyKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUoc2l6ZSwgdDIsIHQwKQogCkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBsbGludE9wV2l0aFJldHVy
bihvcF90b19wcm9wZXJ0eV9rZXksIE9wVG9Qcm9wZXJ0eUtleSwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0YwogICAgIGJibmVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgU3RyaW5nVHlwZSwgLm9wVG9Q
cm9wZXJ0eUtleVNsb3cKIAogLmRvbmU6Ci0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcFRvUHJvcGVydHlLZXlTbG93OgogICAgIGNhbGxTbG93
UGF0aChfc2xvd19wYXRoX3RvX3Byb3BlcnR5X2tleSkKQEAgLTI2MjMsNyArMjYyMyw3IEBAIGVu
ZCkKIAogY29tbW9uT3AobGxpbnRfb3BfY2F0Y2gsIG1hY3JvICgpIGVuZCwgbWFjcm8gKHNpemUp
CiAgICAgIyBUaGlzIGlzIHdoZXJlIHdlIGVuZCB1cCBmcm9tIHRoZSBKSVQncyB0aHJvdyB0cmFt
cG9saW5lIChiZWNhdXNlIHRoZQotICAgICMgbWFjaGluZSBjb2RlIHJldHVybiBhZGRyZXNzIHdp
bGwgYmUgc2V0IHRvIF9sbGludF9vcF9jYXRjaCksIGFuZCBmcm9tCisgICAgIyBtYWNoaW5lIGNv
ZGUgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCBhZGRyZXNzIHdpbGwgYmUgc2V0IHRvIF9sbGlu
dF9vcF9jYXRjaCksIGFuZCBmcm9tCiAgICAgIyB0aGUgaW50ZXJwcmV0ZXIncyB0aHJvdyB0cmFt
cG9saW5lIChzZWUgX2xsaW50X3Rocm93X3RyYW1wb2xpbmUpLgogICAgICMgVGhlIHRocm93aW5n
IGNvZGUgbXVzdCBoYXZlIGtub3duIHRoYXQgd2Ugd2VyZSB0aHJvd2luZyB0byB0aGUgaW50ZXJw
cmV0ZXIsCiAgICAgIyBhbmQgaGF2ZSBzZXQgVk06OnRhcmdldEludGVycHJldGVyUENGb3JUaHJv
dy4KQEAgLTI3ODUsMTYgKzI3ODUsMTYgQEAgbWFjcm8gdmFySW5qZWN0aW9uQ2hlY2soc2xvd1Bh
dGgsIHNjcmF0Y2gpCiAgICAgYmJlcSBXYXRjaHBvaW50U2V0OjptX3N0YXRlW3NjcmF0Y2hdLCBJ
c0ludmFsaWRhdGVkLCBzbG93UGF0aAogZW5kCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVz
b2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBP
cFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQ1LCB0MCkKIAogICAgIG1hY3Jv
IGdldENvbnN0YW50U2NvcGUoZHN0KQogICAgICAgICBsb2FkcCBPcFJlc29sdmVTY29wZTo6TWV0
YWRhdGE6Om1fY29uc3RhbnRTY29wZVt0NV0sIGRzdAogICAgIGVuZAogCi0gICAgbWFjcm8gcmV0
dXJuQ29uc3RhbnRTY29wZSgpCisgICAgbWFjcm8gc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaENv
bnN0YW50U2NvcGUoKQogICAgICAgICBnZXRDb25zdGFudFNjb3BlKHQwKQotICAgICAgICByZXR1
cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAgICAgZW5kCiAK
ICAgICBtYWNybyBnbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2NoQ2hlY2soc2xvd1BhdGgsIGdsb2Jh
bE9iamVjdCwgc2NyYXRjaCkKQEAgLTI4MTQsNyArMjgxNCw3IEBAIGxsaW50T3BXaXRoTWV0YWRh
dGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoCiAgICAgICAgIGJ0aW56IHQyLCAucmVzb2x2ZVNjb3BlTG9vcAogCiAgICAgLnJlc29s
dmVTY29wZUxvb3BFbmQ6Ci0gICAgICAgIHJldHVybih0MCkKKyAgICAgICAgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCh0MCkKICAgICBlbmQKIAogICAgIGxvYWRpIE9wUmVzb2x2ZVNjb3BlOjpN
ZXRhZGF0YTo6bV9yZXNvbHZlVHlwZVt0NV0sIHQwCkBAIC0yODIzLDE1ICsyODIzLDE1IEBAIGxs
aW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAgYmluZXEgdDAsIEdsb2JhbFByb3BlcnR5LCAuckds
b2JhbFZhcgogICAgIGdldENvbnN0YW50U2NvcGUodDApCiAgICAgZ2xvYmFsTGV4aWNhbEJpbmRp
bmdFcG9jaENoZWNrKC5yRHluYW1pYywgdDAsIHQyKQotICAgIHJldHVybih0MCkKKyAgICBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAuckdsb2JhbFZhcjoKICAgICBiaW5lcSB0MCwg
R2xvYmFsVmFyLCAuckdsb2JhbExleGljYWxWYXIKLSAgICByZXR1cm5Db25zdGFudFNjb3BlKCkK
KyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoQ29uc3RhbnRTY29wZSgpCiAKIC5yR2xvYmFs
TGV4aWNhbFZhcjoKICAgICBiaW5lcSB0MCwgR2xvYmFsTGV4aWNhbFZhciwgLnJDbG9zdXJlVmFy
Ci0gICAgcmV0dXJuQ29uc3RhbnRTY29wZSgpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aENvbnN0YW50U2NvcGUoKQogCiAuckNsb3N1cmVWYXI6CiAgICAgYmluZXEgdDAsIENsb3N1cmVW
YXIsIC5yTW9kdWxlVmFyCkBAIC0yODM5LDI0ICsyODM5LDI0IEBAIGxsaW50T3BXaXRoTWV0YWRh
dGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoCiAKIC5yTW9kdWxlVmFyOgogICAgIGJpbmVxIHQwLCBNb2R1bGVWYXIsIC5yR2xvYmFs
UHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzCi0gICAgcmV0dXJuQ29uc3RhbnRTY29wZSgp
CisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaENvbnN0YW50U2NvcGUoKQogCiAuckdsb2Jh
bFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICBiaW5lcSB0MCwgR2xvYmFsUHJv
cGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAuckdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25D
aGVja3MKICAgICB2YXJJbmplY3Rpb25DaGVjayguckR5bmFtaWMsIHQyKQogICAgIGdldENvbnN0
YW50U2NvcGUodDApCiAgICAgZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKC5yRHluYW1p
YywgdDAsIHQyKQotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KHQwKQogCiAuckdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6CiAgICAgYmluZXEgdDAs
IEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MsIC5yR2xvYmFsTGV4aWNhbFZhcldpdGhW
YXJJbmplY3Rpb25DaGVja3MKICAgICB2YXJJbmplY3Rpb25DaGVjayguckR5bmFtaWMsIHQyKQot
ICAgIHJldHVybkNvbnN0YW50U2NvcGUoKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2hD
b25zdGFudFNjb3BlKCkKIAogLnJHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNr
czoKICAgICBiaW5lcSB0MCwgR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3Ms
IC5yQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MKICAgICB2YXJJbmplY3Rpb25DaGVj
ayguckR5bmFtaWMsIHQyKQotICAgIHJldHVybkNvbnN0YW50U2NvcGUoKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2hDb25zdGFudFNjb3BlKCkKIAogLnJDbG9zdXJlVmFyV2l0aFZhcklu
amVjdGlvbkNoZWNrczoKICAgICBiaW5lcSB0MCwgQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25D
aGVja3MsIC5yRHluYW1pYwpAQCAtMjg3NywxNCArMjg3NywxNCBAQCBtYWNybyBsb2FkV2l0aFN0
cnVjdHVyZUNoZWNrKG9wY29kZVN0cnVjdCwgZ2V0LCBzbG93UGF0aCkKICAgICBicG5lcSB0Miwg
dDEsIHNsb3dQYXRoCiBlbmQKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfZnJvbV9zY29w
ZSwgT3BHZXRGcm9tU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
cmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfZnJvbV9zY29wZSwgT3BHZXRGcm9t
U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDApCiAKICAgICBtYWNybyBnZXRQcm9w
ZXJ0eSgpCiAgICAgICAgIGxvYWRwIE9wR2V0RnJvbVNjb3BlOjpNZXRhZGF0YTo6bV9vcGVyYW5k
W3Q1XSwgdDEKICAgICAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDAsIHQy
KQogICAgICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRGcm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQy
KQotICAgICAgICByZXR1cm4odDIpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDIpCiAgICAgZW5kCiAKICAgICBtYWNybyBnZXRHbG9iYWxWYXIodGR6Q2hlY2tJZk5lY2Vzc2Fy
eSkKQEAgLTI4OTIsMTQgKzI4OTIsMTQgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfZnJv
bV9zY29wZSwgT3BHZXRGcm9tU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGMKICAgICAg
ICAgbG9hZHEgW3QwXSwgdDAKICAgICAgICAgdGR6Q2hlY2tJZk5lY2Vzc2FyeSh0MCkKICAgICAg
ICAgdmFsdWVQcm9maWxlKE9wR2V0RnJvbVNjb3BlLCBtX3Byb2ZpbGUsIHQ1LCB0MCkKLSAgICAg
ICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogICAg
IGVuZAogCiAgICAgbWFjcm8gZ2V0Q2xvc3VyZVZhcigpCiAgICAgICAgIGxvYWRwIE9wR2V0RnJv
bVNjb3BlOjpNZXRhZGF0YTo6bV9vcGVyYW5kW3Q1XSwgdDEKICAgICAgICAgbG9hZHEgSlNMZXhp
Y2FsRW52aXJvbm1lbnRfdmFyaWFibGVzW3QwLCB0MSwgOF0sIHQwCiAgICAgICAgIHZhbHVlUHJv
ZmlsZShPcEdldEZyb21TY29wZSwgbV9wcm9maWxlLCB0NSwgdDApCi0gICAgICAgIHJldHVybih0
MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKICAgICBlbmQKIAogICAg
IGxvYWRpIE9wR2V0RnJvbVNjb3BlOjpNZXRhZGF0YTo6bV9nZXRQdXRJbmZvICsgR2V0UHV0SW5m
bzo6bV9vcGVyYW5kW3Q1XSwgdDAKQEAgLTI5NTYsNyArMjk1Niw3IEBAIGxsaW50T3BXaXRoTWV0
YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9wR2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUs
IE9wUHV0VG9TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3B1dF90b19zY29wZSwgT3BQdXRUb1Njb3BlLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgbWFjcm8gcHV0UHJvcGVydHkoKQogICAgICAgICBnZXQobV92YWx1ZSwgdDEp
CiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQyKQpAQCAtMzA4Nywx
MSArMzA4NywxMSBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3B1dF90b19zY29wZSwgT3BQdXRU
b1Njb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbQogZW5kKQogCiAKLWxsaW50T3BX
aXRoUHJvZmlsZShvcF9nZXRfZnJvbV9hcmd1bWVudHMsIE9wR2V0RnJvbUFyZ3VtZW50cywgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF9n
ZXRfZnJvbV9hcmd1bWVudHMsIE9wR2V0RnJvbUFyZ3VtZW50cywgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZFZhcmlhYmxlKGdl
dCwgbV9hcmd1bWVudHMsIHQwKQogICAgIGdldHUoc2l6ZSwgT3BHZXRGcm9tQXJndW1lbnRzLCBt
X2luZGV4LCB0MSkKICAgICBsb2FkcSBEaXJlY3RBcmd1bWVudHNfc3RvcmFnZVt0MCwgdDEsIDhd
LCB0MAotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQog
ZW5kKQogCiAKQEAgLTMxMDYsMTQgKzMxMDYsMTQgQEAgbGxpbnRPcChvcF9wdXRfdG9fYXJndW1l
bnRzLCBPcFB1dFRvQXJndW1lbnRzLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9nZXRfcGFyZW50X3Njb3BlLCBPcEdldFBhcmVudFNj
b3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF9nZXRfcGFyZW50X3Njb3BlLCBPcEdldFBhcmVudFNjb3BlLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkVmFy
aWFibGUoZ2V0LCBtX3Njb3BlLCB0MCkKICAgICBsb2FkcCBKU1Njb3BlOjptX25leHRbdDBdLCB0
MAotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5k
KQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBl
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BX
aXRoTWV0YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
bG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW3QxXSwg
dDEKICAgICAjIHQxIGlzIGhvbGRpbmcgdGhlIHBvaW50ZXIgdG8gdGhlIHR5cGVQcm9maWxlckxv
Zy4KQEAgLTMxNTUsMTQgKzMxNTUsMTQgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxl
X3R5cGUsIE9wUHJvZmlsZVR5cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLAogZW5kKQog
CiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV9jb250cm9sX2Zsb3csIE9wUHJvZmls
ZUNvbnRyb2xGbG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVy
bikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV9jb250cm9sX2Zsb3csIE9wUHJvZmls
ZUNvbnRyb2xGbG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGxvYWRwIE9w
UHJvZmlsZUNvbnRyb2xGbG93OjpNZXRhZGF0YTo6bV9iYXNpY0Jsb2NrTG9jYXRpb25bdDVdLCB0
MAogICAgIGFkZHEgMSwgQmFzaWNCbG9ja0xvY2F0aW9uOjptX2V4ZWN1dGlvbkNvdW50W3QwXQog
ICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3Jlc3RfbGVu
Z3RoLCBPcEdldFJlc3RMZW5ndGgsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2dldF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVu
Z3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXNb
Y2ZyXSwgdDAKICAgICBzdWJpIDEsIHQwCiAgICAgZ2V0dShzaXplLCBPcEdldFJlc3RMZW5ndGgs
IG1fbnVtUGFyYW1ldGVyc1RvU2tpcCwgdDEpCkBAIC0zMTczLDExICszMTczLDExIEBAIGxsaW50
T3BXaXRoUmV0dXJuKG9wX2dldF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgbW92ZSAwLCB0MAogLmJveFVwOgogICAgIG9ycSBudW1i
ZXJUYWcsIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVuLCBPcEl0
ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4p
CitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX29wZW4sIE9wSXRlcmF0b3JPcGVuLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgbWFjcm8gZmFzdE5hcnJvdygpCiAgICAgICAgIGNhbGxTbG93UGF0aChfaXRl
cmF0b3Jfb3Blbl90cnlfZmFzdF9uYXJyb3cpCiAgICAgZW5kCkBAIC0zMjMxLDcgKzMyMzEsNyBA
QCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX29wZW4sIE9wSXRlcmF0b3JPcGVuLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAogCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEo
b3BfaXRlcmF0b3JfbmV4dCwgT3BJdGVyYXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9u
ZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogCiAgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9u
ZXh0LCB0MCkKICAgICBidHFueiB0MCwgdDAsIC5pdGVyYXRvck5leHRHZW5lcmljCkBAIC0zMzE1
LDcgKzMzMTUsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX25leHQsIE9wSXRl
cmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAogICAgIGRpc3BhdGNoKCkKIGVu
ZCkKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0
UHJvcGVydHlFbnVtZXJhdG9yLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfcHJvcGVydHlfZW51bWVyYXRvciwgT3BHZXRQ
cm9wZXJ0eUVudW1lcmF0b3IsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX2Jhc2UsIHQxKQogICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwgLnNsb3dQYXRoKQogCkBAIC0zMzMyLDcgKzMzMzIs
NyBAQCBsbGludE9wV2l0aFJldHVybihvcF9nZXRfcHJvcGVydHlfZW51bWVyYXRvciwgT3BHZXRQ
cm9wZXJ0eUVudW1lcmF0b3IsIG1hY3JvIChzaQogICAgIGJ0cHogdDEsIC5zbG93UGF0aAogICAg
IGJ0cG56IHQxLCAoY29uc3RleHByIFN0cnVjdHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5h
bWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2ZXJzaW5nRmxhZyksIC5zbG93UGF0aAogCi0g
ICAgcmV0dXJuKHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDEpCiAKIC5zbG93
UGF0aDoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9nZXRfcHJvcGVydHlfZW51bWVyYXRv
cikKQEAgLTMzNzAsNyArMzM3MCw3IEBAIGxsaW50T3Aob3BfZW51bWVyYXRvcl9uZXh0LCBPcEVu
dW1lcmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKICAgICBkaXNwYXRjaCgp
CiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9nZXRfYnlfdmFsLCBP
cEVudW1lcmF0b3JHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCwg
T3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDApCiAKICAg
ICBsb2FkVmFyaWFibGUoZ2V0LCBtX21vZGUsIHQwKQpAQCAtMzQwNiwxNCArMzQwNiwxNCBAQCBs
bGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCwgT3BFbnVtZXJhdG9y
R2V0QnlWYWwsIG1hY3JvIChzaXplLAogCiAuZG9uZToKICAgICB2YWx1ZVByb2ZpbGUoT3BFbnVt
ZXJhdG9yR2V0QnlWYWwsIG1fcHJvZmlsZSwgdDUsIHQyKQotICAgIHJldHVybih0MikKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAuZ2V0U2xvd1BhdGg6CiAgICAgY2FsbFNs
b3dQYXRoKF9zbG93X3BhdGhfZW51bWVyYXRvcl9nZXRfYnlfdmFsKQogICAgIGRpc3BhdGNoKCkK
IGVuZCkKIAotbWFjcm8gaGFzUHJvcGVydHlJbXBsKG9wY29kZVN0cnVjdCwgc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybiwgc2xvd1BhdGgpCittYWNybyBoYXNQcm9wZXJ0eUlt
cGwob3Bjb2RlU3RydWN0LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCwgc2xvd1BhdGgpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAg
bG9hZFZhcmlhYmxlKGdldCwgbV9tb2RlLCB0MCkKQEAgLTM0MzIsMjYgKzM0MzIsMjYgQEAgbWFj
cm8gaGFzUHJvcGVydHlJbXBsKG9wY29kZVN0cnVjdCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdGEsIHJldHVybiwgc2xvd1AKICAgICBiaW5lcSB0MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlE
W3QwXSwgLmNhbGxTbG93UGF0aAogCiAgICAgbW92ZSBWYWx1ZVRydWUsIHQyCi0gICAgcmV0dXJu
KHQyKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIpCiAKIC5jYWxsU2xvd1BhdGg6
CiAgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAgIGRpc3BhdGNoKCkKIGVuZAogCi1sbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfaW5fYnlfdmFsLCBPcEVudW1lcmF0b3JJbkJ5
VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKLSAgICBo
YXNQcm9wZXJ0eUltcGwoT3BFbnVtZXJhdG9ySW5CeVZhbCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybiwgX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX2luX2J5X3ZhbCkKK2xsaW50
T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9pbl9ieV92YWwsIE9wRW51bWVyYXRvckluQnlW
YWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKKyAgICBoYXNQcm9wZXJ0eUltcGwoT3BFbnVtZXJhdG9ySW5CeVZhbCwgc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gsIF9z
bG93X3BhdGhfZW51bWVyYXRvcl9pbl9ieV92YWwpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRh
dGEob3BfZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5LCBPcEVudW1lcmF0b3JIYXNPd25Qcm9w
ZXJ0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCi0gICAg
aGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckhhc093blByb3BlcnR5LCBzaXplLCBnZXQsIGRp
c3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuLCBfc2xvd19wYXRoX2VudW1lcmF0b3JfaGFzX293bl9w
cm9wZXJ0eSkKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9oYXNfb3duX3Byb3Bl
cnR5LCBPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQorICAgIGhhc1Byb3BlcnR5
SW1wbChPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gsIF9zbG93X3BhdGhfZW51bWVyYXRvcl9o
YXNfb3duX3Byb3BlcnR5KQogZW5kKQogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2ludGVy
bmFsX2ZpZWxkLCBPcEdldEludGVybmFsRmllbGQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdl
dEludGVybmFsRmllbGQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQogICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fYmFzZSwgdDEpCiAgICAgZ2V0
dShzaXplLCBPcEdldEludGVybmFsRmllbGQsIG1faW5kZXgsIHQyKQogICAgIGxvYWRxIEpTSW50
ZXJuYWxGaWVsZE9iamVjdEltcGxfaW50ZXJuYWxGaWVsZHNbdDEsIHQyLCBTbG90U2l6ZV0sIHQw
Ci0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQp
CiAKIGxsaW50T3Aob3BfcHV0X2ludGVybmFsX2ZpZWxkLCBPcFB1dEludGVybmFsRmllbGQsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQo=
</data>
<flag name="commit-queue"
          id="481747"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454161</attachid>
            <date>2022-03-08 15:32:42 -0800</date>
            <delta_ts>2022-03-08 16:03:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237624-20220308183241.patch</filename>
            <type>text/plain</type>
            <size>86804</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NTVjOGY5NWIwZWM2MmJjYTExYTE2NmEyYWJkNWVmYTM2N2QxOGI1Li4wYWQ4YmU5MGEwMWI5YTFi
M2IwODQ3NjgzNzQxYzc0YThlNTM1ODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW5hbWUgTExJbnQgbWFjcm9zIHVzaW5nIHJldHVybiB0byBkZXN0
aW5hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3NjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpcyBqdXN0IGEgcmVmYWN0b3IvcmVuYW1lIHBhdGNoLCBubyBiZWhhdmlvcmFs
CisgICAgICAgIGNoYW5nZS4gSSBmaW5kIGl0IGNvbmZ1c2luZyB0aGF0IHRoZSBMTEludCBoYXMg
bWFjcm8gcGFyYW1ldGVycworICAgICAgICBuYW1lZCBgcmV0dXJuYCBidXQgY2xlYXJseSBzaG91
bGRuJ3QgZG8gYSBmdW5jdGlvbiByZXR1cm4KKyAgICAgICAgKGUuZy4gZ2V0X2J5X2lkKS4gIFRo
aXMgcGF0Y2ggcmVuYW1lcyB0aG9zZSBwYXJlbWV0ZXJzIHRvCisgICAgICAgICJzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoIiB0byBiZXR0ZXIgZGVzY3JpYmUgd2hhdCdzIGdvaW5nCisgICAgICAg
IG9uLiBBZGRpdGlvbmFsbHksIHRoZSBgbGxpbnRPcFdpdGhSZXR1cm5gIGhhcyBiZWVuIHJlbmFt
ZWQgdG8KKyAgICAgICAgYGxsaW50T3BXaXRoRGVzdGluYXRpb25gIGZvciBmdXJ0aGVyIGNsYXJp
dHkuCisKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisKIDIwMjItMDMtMDggIFNhYW0gQmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRW5hYmxlIFRoaW5MVE8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRl
eCBhOGU3YzczOTlkNTgxYTU5NjBkMGFhN2FhNzI0MzM1ZGIwMzU0Yzc1Li4wMmJiNjhmYjY3Njcx
ZjA4ZWUwNGVmODJlY2UyODBhOGU2YmMyY2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC00OTcsMjUgKzQ5NywyNSBA
QCBtYWNybyBsbGludE9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgZW5kKQog
ZW5kCiAKLW1hY3JvIGxsaW50T3BXaXRoUmV0dXJuKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwg
Zm4pCittYWNybyBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wY29kZU5hbWUsIG9wY29kZVN0cnVj
dCwgZm4pCiAgICAgbGxpbnRPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvKHNpemUs
IGdldCwgZGlzcGF0Y2gpCi0gICAgICAgIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgbWFjcm8g
KHJldHVybikKLSAgICAgICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAg
ICAgICAgbWFrZURlc3RpbmF0aW9uKGdldCwgZGlzcGF0Y2gsIG1hY3JvIChzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQorICAgICAgICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZW5kKQogICAgIGVuZCkKIGVuZAogCiBtYWNy
byBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCi0gICAg
bGxpbnRPcFdpdGhSZXR1cm4ob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWFjcm8gbWV0YShkc3QsIHNjcmF0Y2gpCiAgICAg
ICAgICAgICBtZXRhZGF0YShzaXplLCBvcGNvZGVTdHJ1Y3QsIGRzdCwgc2NyYXRjaCkKICAgICAg
ICAgZW5kCi0gICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGEsIHJldHVybikKKyAg
ICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBlbmQpCiBlbmQKIAogbWFjcm8gbGxpbnRPcFdpdGhKdW1wKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgaW1wbCkKLSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgbWFjcm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVy
bikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFj
cm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgICAgIG1hY3JvIGp1bXAoZmllbGROYW1lKQogICAgICAgICAgICAgZ2V0KGZpZWxk
TmFtZSwgdDApCiAgICAgICAgICAgICBqdW1wSW1wbChkaXNwYXRjaEluZGlyZWN0LCB0MCkKQEAg
LTUyNyw3ICs1MjcsNyBAQCBlbmQKIAogbWFjcm8gbGxpbnRPcFdpdGhQcm9maWxlKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCi0gICAgICAgIG1ha2VSZXR1cm5Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwgbWV0YWRh
dGEsIGRpc3BhdGNoLCBtYWNybyAocmV0dXJuUHJvZmlsZWQpCisgICAgICAgIG1ha2VEZXN0aW5h
dGlvblByb2ZpbGVkKG9wY29kZVN0cnVjdCwgZ2V0LCBtZXRhZGF0YSwgZGlzcGF0Y2gsIG1hY3Jv
IChyZXR1cm5Qcm9maWxlZCkKICAgICAgICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJl
dHVyblByb2ZpbGVkKQogICAgICAgICBlbmQpCiAgICAgZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRl
eCBhY2U4NzExNjcyZTcwMjE2ZDM5YTQ4ZGYxNWZkNjZkNmI1N2M0MTFlLi5hZjY0NTY0NGQ2NDMz
OGI4MDU3N2Y1NWRkMDgwMmQ0NzkyZDFhN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtNTAsNyAr
NTAsNyBAQCBtYWNybyBnZXRPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUs
IGRzdCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2lu
ZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKLW1h
Y3JvIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb24o
Z2V0LCBkaXNwYXRjaCwgZm4pCiAgICAgZm4obWFjcm8odGFnLCBwYXlsb2FkKQogICAgICAgICBt
b3ZlIHRhZywgdDUKICAgICAgICAgbW92ZSBwYXlsb2FkLCB0MwpAQCAtNjEsNyArNjEsNyBAQCBt
YWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gsIGZuKQogICAgIGVuZCkKIGVuZAogCi1tYWNy
byBtYWtlUmV0dXJuUHJvZmlsZWQob3Bjb2RlU3RydWN0LCBnZXQsIG1ldGFkYXRhLCBkaXNwYXRj
aCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb25Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwg
bWV0YWRhdGEsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyAodGFnLCBwYXlsb2FkKQogICAg
ICAgICBtb3ZlIHRhZywgdDEKICAgICAgICAgbW92ZSBwYXlsb2FkLCB0MApAQCAtODE2LDM0ICs4
MTYsMzQgQEAgX2xsaW50X29wX2VudGVyOgogICAgIGRpc3BhdGNoT3AobmFycm93LCBvcF9lbnRl
cikKIAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2FyZ3VtZW50LCBPcEdldEFyZ3VtZW50
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxl
KG9wX2dldF9hcmd1bWVudCwgT3BHZXRBcmd1bWVudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1faW5kZXgsIHQyKQogICAg
IGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1tjZnJdLCB0
MAogICAgIGJpbHRlcSB0MCwgdDIsIC5vcEdldEFyZ3VtZW50T3V0T2ZCb3VuZHMKICAgICBsb2Fk
aSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCiAgICAgbG9h
ZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XSwgdDMKLSAg
ICByZXR1cm4gKHQwLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwLCB0MykK
IAogLm9wR2V0QXJndW1lbnRPdXRPZkJvdW5kczoKLSAgICByZXR1cm4gKFVuZGVmaW5lZFRhZywg
MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKFVuZGVmaW5lZFRhZywgMCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKG9wX2FyZ3VtZW50X2NvdW50LCBPcEFyZ3VtZW50Q291bnQsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1tjZnJdLCB0
MAogICAgIHN1YmkgMSwgdDAKLSAgICByZXR1cm4oSW50MzJUYWcsIHQwKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2goSW50MzJUYWcsIHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0
dXJuKG9wX2dldF9zY29wZSwgT3BHZXRTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHJldHVybikKK2xsaW50T3BXaXRoc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChvcF9nZXRfc2Nv
cGUsIE9wR2V0U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQogICAgIGxvYWRpIENhbGxlZSArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDAK
ICAgICBsb2FkcCBKU0NhbGxlZTo6bV9zY29wZVt0MF0sIHQwCi0gICAgcmV0dXJuIChDZWxsVGFn
LCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKENlbGxUYWcsIHQwKQogZW5kKQog
CiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfdG9fdGhpcywgT3BUb1RoaXMsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF90b190aGlzLCBPcFRvVGhpcywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyY0RzdCwgdDApCiAgICAg
YmluZXEgVGFnT2Zmc2V0W2NmciwgdDAsIDhdLCBDZWxsVGFnLCAub3BUb1RoaXNTbG93CiAgICAg
bG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKQEAgLTg3MCwxOSArODcwLDE5IEBA
IGxsaW50T3Aob3BfY2hlY2tfdGR6LCBPcENoZWNrVGR6LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9tb3YsIE9wTW92LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDEpCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDIsIHQzKQotICAgIHJldHVybih0MiwgdDMpCisgICAg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MiwgdDMpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhS
ZXR1cm4ob3Bfbm90LCBPcE5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikK
K2xsaW50T3BXaXRoc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChvcF9ub3QsIE9wTm90LCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBn
ZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0
MiwgdDMpCiAgICAgYmluZXEgdDIsIEJvb2xlYW5UYWcsIC5vcE5vdFNsb3cKICAgICB4b3JpIDEs
IHQzCi0gICAgcmV0dXJuKHQyLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQy
LCB0MykKIAogLm9wTm90U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9ub3QpCkBA
IC04OTEsNyArODkxLDcgQEAgZW5kKQogCiAKIG1hY3JvIGVxdWFsaXR5Q29tcGFyaXNvbk9wKG9w
Y29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmlzb24pCi0gICAgbGxpbnRPcFdp
dGhSZXR1cm4ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MikK
ICAgICAgICAgZ2V0KG1fbGhzLCB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShz
aXplLCB0MiwgdDMsIHQxKQpAQCAtOTAwLDcgKzkwMCw3IEBAIG1hY3JvIGVxdWFsaXR5Q29tcGFy
aXNvbk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmlzb24pCiAgICAg
ICAgIGJpZXEgdDIsIENlbGxUYWcsIC5vcEVxU2xvdwogICAgICAgICBiaWIgdDIsIExvd2VzdFRh
ZywgLm9wRXFTbG93CiAgICAgICAgIGludGVnZXJDb21wYXJpc29uKHQwLCB0MSwgdDApCi0gICAg
ICAgIHJldHVybihCb29sZWFuVGFnLCB0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaChCb29sZWFuVGFnLCB0MCkKIAogICAgIC5vcEVxU2xvdzoKICAgICAgICAgY2FsbFNsb3dQ
YXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpAQCAtOTMyLDcgKzkzMiw3IEBAIGVuZAogCiAK
IG1hY3JvIGVxdWFsTnVsbENvbXBhcmlzb25PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZu
KQotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fb3Bl
cmFuZCwgdDApCiAgICAgICAgIGFzc2VydE5vdENvbnN0YW50KHNpemUsIHQwKQogICAgICAgICBs
b2FkaSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0sIHQxCkBAIC05NTMsNyArOTUzLDcgQEAgbWFjcm8g
ZXF1YWxOdWxsQ29tcGFyaXNvbk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAg
ICAgIG9yaSB0MiwgdDEKICAgICAub3BFcU51bGxOb3RJbW1lZGlhdGU6CiAgICAgICAgIGZuKHQx
KQotICAgICAgICByZXR1cm4oQm9vbGVhblRhZywgdDEpCisgICAgICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDEpCiAgICAgZW5kKQogZW5kCiAKQEAgLTk2MywxNyAr
OTYzLDE3IEBAIGVxdWFsTnVsbENvbXBhcmlzb25PcChvcF9uZXFfbnVsbCwgT3BOZXFOdWxsLAog
ICAgIG1hY3JvICh2YWx1ZSkgeG9yaSAxLCB2YWx1ZSBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1
cm4ob3BfaXNfdW5kZWZpbmVkX29yX251bGwsIE9wSXNVbmRlZmluZWRPck51bGwsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gob3BfaXNfdW5kZWZpbmVkX29yX251bGwsIE9wSXNVbmRlZmluZWRPck51bGwsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IGdldChtX29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVUYWcoc2l6ZSwg
dDAsIHQxKQogICAgIG9yaSAxLCB0MQogICAgIGNpZXEgdDEsIE51bGxUYWcsIHQxCi0gICAgcmV0
dXJuKEJvb2xlYW5UYWcsIHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVh
blRhZywgdDEpCiBlbmQpCiAKIAogbWFjcm8gc3RyaWN0RXFPcChvcGNvZGVOYW1lLCBvcGNvZGVT
dHJ1Y3QsIGVxdWFsaXR5T3BlcmF0aW9uKQotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wXyVvcGNv
ZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJu
KQorICAgIGxsaW50T3BXaXRoc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChvcF8lb3Bjb2RlTmFt
ZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX3JocywgdDIpCiAgICAgICAgIGdldChtX2xo
cywgdDApCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQzLCB0MSkK
QEAgLTk4NSw3ICs5ODUsNyBAQCBtYWNybyBzdHJpY3RFcU9wKG9wY29kZU5hbWUsIG9wY29kZVN0
cnVjdCwgZXF1YWxpdHlPcGVyYXRpb24pCiAgICAgICAgIGJiYiBKU0NlbGw6Om1fdHlwZVt0MV0s
IE9iamVjdFR5cGUsIC5zbG93CiAgICAgLm5vdFN0cmluZ09yU3ltYm9sOgogICAgICAgICBlcXVh
bGl0eU9wZXJhdGlvbih0MCwgdDEsIHQwKQotICAgICAgICByZXR1cm4oQm9vbGVhblRhZywgdDAp
CisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDApCiAKICAg
ICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpA
QCAtMTAzNiw3ICsxMDM2LDcgQEAgc3RyaWN0RXF1YWxpdHlKdW1wT3Aoam5zdHJpY3RlcSwgT3BK
bnN0cmljdGVxLAogCiAKIG1hY3JvIHByZU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50
ZWdlck9wZXJhdGlvbikKLSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNvZGVOYW1lJSwg
b3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVy
bikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gpCiAgICAgICAgIGdldChtX3NyY0RzdCwgdDApCiAgICAgICAgIGJpbmVxIFRhZ09m
ZnNldFtjZnIsIHQwLCA4XSwgSW50MzJUYWcsIC5zbG93CiAgICAgICAgIGxvYWRpIFBheWxvYWRP
ZmZzZXRbY2ZyLCB0MCwgOF0sIHQyCkBAIC0xMDUzLDI2ICsxMDUzLDI2IEBAIG1hY3JvIHByZU9w
KG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlck9wZXJhdGlvbikKIGVuZAogCiAKLWxs
aW50T3BXaXRoUHJvZmlsZShvcF90b19udW1iZXIsIE9wVG9OdW1iZXIsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfdG9fbnVtYmVyLCBP
cFRvTnVtYmVyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHNpemUsIHQwLCB0MiwgdDMpCiAgICAgYmllcSB0MiwgSW50MzJUYWcsIC5vcFRvTnVtYmVy
SXNJbnQKICAgICBiaWFlcSB0MiwgTG93ZXN0VGFnLCAub3BUb051bWJlclNsb3cKIC5vcFRvTnVt
YmVySXNJbnQ6Ci0gICAgcmV0dXJuKHQyLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKHQyLCB0MykKIAogLm9wVG9OdW1iZXJTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19w
YXRoX3RvX251bWJlcikKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoUHJvZmls
ZShvcF90b19udW1lcmljLCBPcFRvTnVtZXJpYywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF90b19udW1lcmljLCBPcFRvTnVtZXJpYywg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAg
ICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0
MCwgdDIsIHQzKQogICAgIGJpZXEgdDIsIEludDMyVGFnLCAub3BUb051bWVyaWNJc0ludAogICAg
IGJpYWVxIHQyLCBMb3dlc3RUYWcsIC5vcFRvTnVtZXJpY1Nsb3cKIC5vcFRvTnVtZXJpY0lzSW50
OgotICAgIHJldHVybih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0Miwg
dDMpCiAKIC5vcFRvTnVtZXJpY1Nsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9f
bnVtZXJpYykKQEAgLTEwODAsMTMgKzEwODAsMTMgQEAgbGxpbnRPcFdpdGhQcm9maWxlKG9wX3Rv
X251bWVyaWMsIE9wVG9OdW1lcmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXIK
IGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90b19zdHJpbmcsIE9wVG9TdHJpbmcsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gob3BfdG9fc3RyaW5nLCBPcFRvU3RyaW5nLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5k
LCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MiwgdDMpCiAgICAg
YmluZXEgdDIsIENlbGxUYWcsIC5vcFRvU3RyaW5nU2xvdwogICAgIGJibmVxIEpTQ2VsbDo6bV90
eXBlW3QzXSwgU3RyaW5nVHlwZSwgLm9wVG9TdHJpbmdTbG93CiAub3BUb1N0cmluZ0lzU3RyaW5n
OgotICAgIHJldHVybih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0Miwg
dDMpCiAKIC5vcFRvU3RyaW5nU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19z
dHJpbmcpCkBAIC0xMDk0LDEyICsxMDk0LDEyIEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0
cmluZywgT3BUb1N0cmluZywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKIGVu
ZCkKIAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3Rv
X29iamVjdCwgT3BUb09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDIsIHQzKQogICAgIGJpbmVxIHQyLCBDZWxsVGFnLCAu
b3BUb09iamVjdFNsb3cKICAgICBiYmIgSlNDZWxsOjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCAu
b3BUb09iamVjdFNsb3cKLSAgICByZXR1cm4odDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDIsIHQzKQogCiAub3BUb09iamVjdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9z
bG93X3BhdGhfdG9fb2JqZWN0KQpAQCAtMTEwNywxOSArMTEwNywxOSBAQCBsbGludE9wV2l0aFBy
b2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfbmVnYXRlLCBPcE5l
Z2F0ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9v
cGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSwgdDIp
CiAgICAgYmluZXEgdDEsIEludDMyVGFnLCAub3BOZWdhdGVTcmNOb3RJbnQKICAgICBidGl6IHQy
LCAweDdmZmZmZmZmLCAub3BOZWdhdGVTbG93CiAgICAgbmVnaSB0MgogICAgIHVwZGF0ZVVuYXJ5
QXJpdGhQcm9maWxlKHNpemUsIE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQwLCB0MykKLSAg
ICByZXR1cm4gKEludDMyVGFnLCB0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKElu
dDMyVGFnLCB0MikKIC5vcE5lZ2F0ZVNyY05vdEludDoKICAgICBiaWEgdDEsIExvd2VzdFRhZywg
Lm9wTmVnYXRlU2xvdwogICAgIHhvcmkgMHg4MDAwMDAwMCwgdDEKICAgICB1cGRhdGVVbmFyeUFy
aXRoUHJvZmlsZShzaXplLCBPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0MCwgdDMpCi0g
ICAgcmV0dXJuKHQxLCB0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MikK
IAogLm9wTmVnYXRlU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9uZWdhdGUpCkBA
IC0xMTI4LDcgKzExMjgsNyBAQCBlbmQpCiAKIAogbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShv
cGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91Ymxl
T3BlcmF0aW9uKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNv
ZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQor
ICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1fbGhzLCB0MCkKICAg
ICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQxKQpAQCAtMTIyNSw3
ICsxMjI1LDcgQEAgYmluYXJ5T3BDdXN0b21TdG9yZShkaXYsIE9wRGl2LAogICAgIGVuZCwKICAg
ICBtYWNybyAobGhzLCByaHMpIGRpdmQgcmhzLCBsaHMgZW5kKQogCi1sbGludE9wV2l0aFJldHVy
bihvcF9wb3csIE9wUG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxp
bnRPcFdpdGhzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKG9wX3BvdywgT3BQb3csIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldCht
X3JocywgdDIpCiAgICAgZ2V0KG1fbGhzLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KHNpemUsIHQyLCB0MywgdDEpCkBAIC0xMjYyLDExICsxMjYyLDExIEBAIGxsaW50T3BXaXRoUmV0
dXJuKG9wX3BvdywgT3BQb3csIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCiAg
ICAgZGlzcGF0Y2goKQogZW5kKQogCi1sbGludE9wV2l0aFJldHVybihvcF91bnNpZ25lZCwgT3BV
bnNpZ25lZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRo
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChvcF91bnNpZ25lZCwgT3BVbnNpZ25lZCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0
KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQoc2l6ZSwg
dDEsIEludDMyVGFnLCB0MiwgLm9wVW5zaWduZWRTbG93KQogICAgIGJpbHQgdDIsIDAsIC5vcFVu
c2lnbmVkU2xvdwotICAgIHJldHVybiAoSW50MzJUYWcsIHQyKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2goSW50MzJUYWcsIHQyKQogLm9wVW5zaWduZWRTbG93OgogICAgIGNhbGxTbG93
UGF0aChfc2xvd19wYXRoX3Vuc2lnbmVkKQogICAgIGRpc3BhdGNoKCkKQEAgLTEyNzQsNyArMTI3
NCw3IEBAIGVuZCkKIAogCiBtYWNybyBjb21tb25CaXRPcChvcEtpbmQsIG9wY29kZU5hbWUsIG9w
Y29kZVN0cnVjdCwgb3BlcmF0aW9uKQotICAgIG9wS2luZChvcF8lb3Bjb2RlTmFtZSUsIG9wY29k
ZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBvcEtpbmQo
b3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQyKQogICAg
ICAgICBnZXQobV9saHMsIHQwKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUs
IHQyLCB0MywgdDEpCkBAIC0xMjgyLDcgKzEyODIsNyBAQCBtYWNybyBjb21tb25CaXRPcChvcEtp
bmQsIG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0aW9uKQogICAgICAgICBiaW5lcSB0
MywgSW50MzJUYWcsIC5zbG93CiAgICAgICAgIGJpbmVxIHQyLCBJbnQzMlRhZywgLnNsb3cKICAg
ICAgICAgb3BlcmF0aW9uKHQwLCB0MSkKLSAgICAgICAgcmV0dXJuICh0MywgdDApCisgICAgICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDMsIHQwKQogCiAgICAgLnNsb3c6CiAgICAgICAg
IGNhbGxTbG93UGF0aChfc2xvd19wYXRoXyVvcGNvZGVOYW1lJSkKQEAgLTEzMTksMTIgKzEzMTks
MTIgQEAgYml0T3BQcm9maWxlZChiaXRhbmQsIE9wQml0YW5kLAogYml0T3BQcm9maWxlZChiaXRv
ciwgT3BCaXRvciwKICAgICBtYWNybyAobGhzLCByaHMpIG9yaSByaHMsIGxocyBlbmQpCiAKLWxs
aW50T3BXaXRoUHJvZmlsZShvcF9iaXRub3QsIE9wQml0bm90LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX2JpdG5vdCwgT3BCaXRub3Qs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwg
dDAsIHQyLCB0MykKICAgICBiaW5lcSB0MiwgSW50MzJUYWcsIC5vcEJpdE5vdFNsb3cKICAgICBu
b3RpIHQzCi0gICAgcmV0dXJuIChJbnQzMlRhZywgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaChJbnQzMlRhZywgdDMpCiAKICAub3BCaXROb3RTbG93OgogICAgIGNhbGxTbG93UGF0
aChfc2xvd19wYXRoX2JpdG5vdCkKQEAgLTEzNjEsNDYgKzEzNjEsNDYgQEAgbGxpbnRPcChvcF9v
dmVycmlkZXNfaGFzX2luc3RhbmNlLCBPcE92ZXJyaWRlc0hhc0luc3RhbmNlLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXMKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19lbXB0eSwgT3BJ
c0VtcHR5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKG9wX2lzX2VtcHR5LCBPcElzRW1wdHksIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldCht
X29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQyLCB0
MykKICAgICBjaWVxIHQyLCBFbXB0eVZhbHVlVGFnLCB0MwotICAgIHJldHVybihCb29sZWFuVGFn
LCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQzKQogZW5k
KQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3R5cGVvZl9pc191bmRlZmluZWQsIE9wVHlwZW9m
SXNVbmRlZmluZWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9w
V2l0aHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gob3BfdHlwZW9mX2lzX3VuZGVmaW5lZCwgT3BU
eXBlb2ZJc1VuZGVmaW5lZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZShzaXplLCB0MSwgdDIsIHQzKQogICAgIGJpZXEgdDIsIENlbGxUYWcsIC5vcElz
VW5kZWZpbmVkQ2VsbAogICAgIGNpZXEgdDIsIFVuZGVmaW5lZFRhZywgdDMKLSAgICByZXR1cm4o
Qm9vbGVhblRhZywgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFn
LCB0MykKIC5vcElzVW5kZWZpbmVkQ2VsbDoKICAgICBidGJueiBKU0NlbGw6Om1fZmxhZ3NbdDNd
LCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLCAub3BJc1VuZGVmaW5lZE1hc3F1ZXJhZGVzQXNVbmRl
ZmluZWQKLSAgICByZXR1cm4oQm9vbGVhblRhZywgMCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKEJvb2xlYW5UYWcsIDApCiAub3BJc1VuZGVmaW5lZE1hc3F1ZXJhZGVzQXNVbmRlZmlu
ZWQ6CiAgICAgbG9hZGkgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEKICAgICBsb2FkcCBD
b2RlQmxvY2tbY2ZyXSwgdDMKICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3Qz
XSwgdDMKICAgICBjcGVxIFN0cnVjdHVyZTo6bV9nbG9iYWxPYmplY3RbdDFdLCB0MywgdDEKLSAg
ICByZXR1cm4oQm9vbGVhblRhZywgdDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChC
b29sZWFuVGFnLCB0MSkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19ib29sZWFu
LCBPcElzQm9vbGVhbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50
T3BXaXRoc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChvcF9pc19ib29sZWFuLCBPcElzQm9vbGVh
biwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gp
CiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVRhZyhz
aXplLCB0MSwgdDApCiAgICAgY2llcSB0MCwgQm9vbGVhblRhZywgdDAKLSAgICByZXR1cm4oQm9v
bGVhblRhZywgdDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0
MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19udW1iZXIsIE9wSXNOdW1iZXIs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gob3BfaXNfbnVtYmVyLCBPcElzTnVtYmVyLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVy
YW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlVGFnKHNpemUsIHQxLCB0MCkKICAg
ICBhZGRpIDEsIHQwCiAgICAgY2liIHQwLCBMb3dlc3RUYWcgKyAxLCB0MQotICAgIHJldHVybihC
b29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcs
IHQxKQogZW5kKQogCiAKQEAgLTE0MTAsMjYgKzE0MTAsMjYgQEAgbGxpbnRPcChvcF9pc19iaWdf
aW50LCBPcElzQmlnSW50LCBtYWNybyh1bnVzZWQsIHVudXNlZCwgdW51c2VkKQogZW5kKQogCiAK
LWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX2NlbGxfd2l0aF90eXBlLCBPcElzQ2VsbFdpdGhUeXBl
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKG9wX2lzX2NlbGxfd2l0aF90eXBlLCBPcElzQ2VsbFdpdGhUeXBl
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUs
IHQxLCB0MCwgdDMpCiAgICAgYmluZXEgdDAsIENlbGxUYWcsIC5ub3RDZWxsQ2FzZQogICAgIGdl
dHUoc2l6ZSwgT3BJc0NlbGxXaXRoVHlwZSwgbV90eXBlLCB0MCkKICAgICBjYmVxIEpTQ2VsbDo6
bV90eXBlW3QzXSwgdDAsIHQxCi0gICAgcmV0dXJuKEJvb2xlYW5UYWcsIHQxKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDEpCiAubm90Q2VsbENhc2U6Ci0gICAg
cmV0dXJuKEJvb2xlYW5UYWcsIDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29s
ZWFuVGFnLCAwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX29iamVjdCwgT3BJ
c09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRo
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChvcF9pc19vYmplY3QsIE9wSXNPYmplY3QsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdl
dChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQw
LCB0MykKICAgICBiaW5lcSB0MCwgQ2VsbFRhZywgLm9wSXNPYmplY3ROb3RDZWxsCiAgICAgY2Jh
ZXEgSlNDZWxsOjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCB0MQotICAgIHJldHVybihCb29sZWFu
VGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQog
Lm9wSXNPYmplY3ROb3RDZWxsOgotICAgIHJldHVybihCb29sZWFuVGFnLCAwKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgMCkKIGVuZCkKIAogCkBAIC0xNDc0LDcg
KzE0NzQsNyBAQCBlbmQKICMgY29udmVydCBvcGNvZGUgaW50byBhIGdldF9ieV9pZF9wcm90b19s
b2FkL2dldF9ieV9pZF91bnNldCwgcmVzcGVjdGl2ZWx5LCBhZnRlciBhbgogIyBleGVjdXRpb24g
Y291bnRlciBoaXRzIHplcm8uCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfdHJ5X2dldF9ieV9p
ZCwgT3BUcnlHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJl
dHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfdHJ5X2dldF9ieV9pZCwgT3BUcnlHZXRCeUlk
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdldChtX2Jhc2UsIHQwKQogICAg
IGxvYWRpIE9wVHJ5R2V0QnlJZDo6TWV0YWRhdGE6Om1fc3RydWN0dXJlSURbdDVdLCB0MQpAQCAt
MTQ4MywxNCArMTQ4MywxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RyeV9nZXRfYnlfaWQs
IE9wVHJ5R2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsCiAgICAgYmluZXEgSlND
ZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEsIC5vcFRyeUdldEJ5SWRTbG93CiAgICAgbG9hZFBy
b3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MiwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVByb2ZpbGUo
T3BUcnlHZXRCeUlkLCBtX3Byb2ZpbGUsIHQ1LCB0MCwgdDEpCi0gICAgcmV0dXJuKHQwLCB0MSkK
KyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwLCB0MSkKIAogLm9wVHJ5R2V0QnlJZFNs
b3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdHJ5X2dldF9ieV9pZCkKICAg
ICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkX2Rp
cmVjdCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkX2RpcmVjdCwgT3BH
ZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdldChtX2Jh
c2UsIHQwKQogICAgIGxvYWRpIE9wR2V0QnlJZERpcmVjdDo6TWV0YWRhdGE6Om1fc3RydWN0dXJl
SURbdDVdLCB0MQpAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9n
ZXRfYnlfaWRfZGlyZWN0LCBPcEdldEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3AK
ICAgICBiaW5lcSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MSwgLm9wR2V0QnlJZERpcmVj
dFNsb3cKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQyLCB0MywgdDAsIHQxKQog
ICAgIHZhbHVlUHJvZmlsZShPcEdldEJ5SWREaXJlY3QsIG1fcHJvZmlsZSwgdDUsIHQwLCB0MSkK
LSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDAsIHQx
KQogCiAub3BHZXRCeUlkRGlyZWN0U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9nZXRfYnlfaWRfZGlyZWN0KQpAQCAtMTUwOCw3ICsxNTA4LDcgQEAgZW5kKQogCiAjIEFz
c3VtcHRpb246IFRoZSBiYXNlIG9iamVjdCBpcyBpbiB0MwogIyBGSVhNRTogdGhpcyBpcyB2ZXJ5
IGNsb3NlIHRvIHRoZSA2NGJpdCB2ZXJzaW9uLiBDb25zaWRlciByZWZhY3RvcmluZy4KLW1hY3Jv
IHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFtZSwgdmFs
dWVQcm9maWxlTmFtZSwgc2xvd0xhYmVsLCBzaXplLCBtZXRhZGF0YSwgcmV0dXJuKQorbWFjcm8g
cGVyZm9ybUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1lLCB2YWx1
ZVByb2ZpbGVOYW1lLCBzbG93TGFiZWwsIHNpemUsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQyLCB0MSkKICAgICBsb2FkYiAlb3Bjb2RlU3RydWN0
JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5tb2RlW3QyXSwgdDEKICAgICAgICAgCkBA
IC0xNTIwLDcgKzE1MjAsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNvZGVTdHJ1
Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAgIGxvYWRpcyAl
b3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5kZWZhdWx0TW9kZS5j
YWNoZWRPZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDEs
IHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxl
TmFtZSwgdDIsIHQwLCB0MSkKLSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2godDAsIHQxKQogCiAub3BHZXRCeUlkUHJvdG9Mb2FkOgogICAgIGJibmVxIHQx
LCBjb25zdGV4cHIgR2V0QnlJZE1vZGU6OlByb3RvTG9hZCwgLm9wR2V0QnlJZEFycmF5TGVuZ3Ro
CkBAIC0xNTMxLDcgKzE1MzEsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNvZGVT
dHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAgIGxvYWRw
ICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRhZGF0YU5hbWUlLnByb3RvTG9hZE1v
ZGUuY2FjaGVkU2xvdFt0Ml0sIHQzCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0
MSwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2Zp
bGVOYW1lLCB0MiwgdDAsIHQxKQotICAgIHJldHVybih0MCwgdDEpCisgICAgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRBcnJheUxlbmd0aDoKICAgICBiYm5l
cSB0MSwgY29uc3RleHByIEdldEJ5SWRNb2RlOjpBcnJheUxlbmd0aCwgLm9wR2V0QnlJZFVuc2V0
CkBAIC0xNTQzLDE4ICsxNTQzLDE4IEBAIG1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29k
ZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvCiAgICAgbG9h
ZGkgLXNpemVvZiBJbmRleGluZ0hlYWRlciArIEluZGV4aW5nSGVhZGVyOjp1Lmxlbmd0aHMucHVi
bGljTGVuZ3RoW3QwXSwgdDAKICAgICBiaWx0IHQwLCAwLCBzbG93TGFiZWwKICAgICB2YWx1ZVBy
b2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCB0MiwgSW50MzJUYWcsIHQwKQot
ICAgIHJldHVybihJbnQzMlRhZywgdDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChJ
bnQzMlRhZywgdDApCiAgICAgCiAub3BHZXRCeUlkVW5zZXQ6CiAgICAgbG9hZGkgSlNDZWxsOjpt
X3N0cnVjdHVyZUlEW3QzXSwgdDEKICAgICBsb2FkaSAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6
OiVtb2RlTWV0YWRhdGFOYW1lJS51bnNldE1vZGUuc3RydWN0dXJlSURbdDJdLCB0MAogICAgIGJp
bmVxIHQwLCB0MSwgc2xvd0xhYmVsCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFs
dWVQcm9maWxlTmFtZSwgdDIsIFVuZGVmaW5lZFRhZywgMCkKLSAgICByZXR1cm4oVW5kZWZpbmVk
VGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goVW5kZWZpbmVkVGFnLCAwKQog
CiBlbmQKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1l
dGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUs
IHQwKQogICAgIGxvYWRiIE9wR2V0QnlJZDo6TWV0YWRhdGE6Om1fbW9kZU1ldGFkYXRhLm1vZGVb
dDVdLCB0MQogICAgIGdldChtX2Jhc2UsIHQwKQpAQCAtMTU2OCw3ICsxNTY4LDcgQEAgbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBsb2FkcCBPcEdldEJ5SWQ6Ok1ldGFkYXRhOjptX21vZGVN
ZXRhZGF0YS5wcm90b0xvYWRNb2RlLmNhY2hlZFNsb3RbdDVdLCB0MwogICAgIGxvYWRQcm9wZXJ0
eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQcm9maWxlKE9wR2V0
QnlJZCwgbV9wcm9maWxlLCB0NSwgdDAsIHQxKQotICAgIHJldHVybih0MCwgdDEpCisgICAgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRBcnJheUxlbmd0aDoK
ICAgICBiYm5lcSB0MSwgY29uc3RleHByIEdldEJ5SWRNb2RlOjpBcnJheUxlbmd0aCwgLm9wR2V0
QnlJZFVuc2V0CkBAIC0xNTgxLDcgKzE1ODEsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dl
dF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdAog
ICAgIGxvYWRpIC1zaXplb2YgSW5kZXhpbmdIZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6dS5sZW5n
dGhzLnB1YmxpY0xlbmd0aFt0MF0sIHQwCiAgICAgYmlsdCB0MCwgMCwgLm9wR2V0QnlJZFNsb3cK
ICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkLCBtX3Byb2ZpbGUsIHQ1LCBJbnQzMlRhZywgdDAp
Ci0gICAgcmV0dXJuKEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KEludDMyVGFnLCB0MCkKIAogLm9wR2V0QnlJZFVuc2V0OgogICAgIGJibmVxIHQxLCBjb25zdGV4
cHIgR2V0QnlJZE1vZGU6OlVuc2V0LCAub3BHZXRCeUlkRGVmYXVsdApAQCAtMTU4OSw3ICsxNTg5
LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
UGF5bG9hZChzaXplLCB0MCwgQ2VsbFRhZywgdDMsIC5vcEdldEJ5SWRTbG93KQogICAgIGJpbmVx
IEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BHZXRCeUlkU2xvdwogICAgIHZhbHVl
UHJvZmlsZShPcEdldEJ5SWQsIG1fcHJvZmlsZSwgdDUsIFVuZGVmaW5lZFRhZywgMCkKLSAgICBy
ZXR1cm4oVW5kZWZpbmVkVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goVW5k
ZWZpbmVkVGFnLCAwKQogCiAub3BHZXRCeUlkRGVmYXVsdDoKICAgICBsb2FkaSBPcEdldEJ5SWQ6
Ok1ldGFkYXRhOjptX21vZGVNZXRhZGF0YS5kZWZhdWx0TW9kZS5zdHJ1Y3R1cmVJRFt0NV0sIHQx
CkBAIC0xNTk4LDcgKzE1OTgsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZCwg
T3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdAogICAgIGJpbmVx
IEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BHZXRCeUlkU2xvdwogICAgIGxvYWRQ
cm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQcm9maWxl
KE9wR2V0QnlJZCwgbV9wcm9maWxlLCB0NSwgdDAsIHQxKQotICAgIHJldHVybih0MCwgdDEpCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRTbG93Ogog
ICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZCkKQEAgLTE2MDgsMTIg
KzE2MDgsMTIgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBnZXR0ZXJTZXR0ZXJPU1JF
eGl0UmV0dXJuUG9pbnQob3BfZ2V0X2J5X2lkLCBzaXplKQogICAgIG1ldGFkYXRhKHQyLCB0MykK
ICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkLCBtX3Byb2ZpbGUsIHQyLCByMSwgcjApCi0gICAg
cmV0dXJuKHIxLCByMCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxLCByMCkKIAog
ZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1dEJ5SWQsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIHdyaXRlQmFycmll
ck9uT3BlcmFuZHMoc2l6ZSwgZ2V0LCBtX2Jhc2UsIG1fdmFsdWUpCiAgICAgbWV0YWRhdGEodDUs
IHQzKQogICAgIGdldChtX2Jhc2UsIHQzKQpAQCAtMTY4MCw3ICsxNjgwLDcgQEAgbGxpbnRPcFdp
dGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXQKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV92
YWwsIE9wR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0
dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdldEJ5VmFsLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgbWFjcm8gZmluaXNoSW50R2V0QnlWYWwocmVzdWx0UGF5bG9hZCwgc2NyYXRjaCkK
ICAgICAgICAgZ2V0KG1fZHN0LCBzY3JhdGNoKQogICAgICAgICBzdG9yZWkgSW50MzJUYWcsIFRh
Z09mZnNldFtjZnIsIHNjcmF0Y2gsIDhdCkBAIC0xNzU3LDExICsxNzU3LDExIEBAIGxsaW50T3BX
aXRoTWV0YWRhdGEob3BfZ2V0X2J5X3ZhbCwgT3BHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkCiAgICAgZ2V0dGVyU2V0dGVyT1NSRXhpdFJldHVyblBvaW50KG9wX2dl
dF9ieV92YWwsIHNpemUpCiAgICAgbWV0YWRhdGEodDIsIHQzKQogICAgIHZhbHVlUHJvZmlsZShP
cEdldEJ5VmFsLCBtX3Byb2ZpbGUsIHQyLCByMSwgcjApCi0gICAgcmV0dXJuKHIxLCByMCkKKyAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxLCByMCkKIAogZW5kKQogCi1sbGludE9wV2l0
aE1ldGFkYXRhKG9wX2dldF9wcml2YXRlX25hbWUsIE9wR2V0UHJpdmF0ZU5hbWUsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0
YWRhdGEodDUsIHQwKQogCiAgICAgIyBTbG93IHBhdGggaWYgdGhlIHByaXZhdGUgZmllbGQgaXMg
c3RhbGUKQEAgLTE3NzgsMTQgKzE3NzgsMTQgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRf
cHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKIAog
ICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAgICAgdmFs
dWVQcm9maWxlKE9wR2V0UHJpdmF0ZU5hbWUsIG1fcHJvZmlsZSwgdDUsIHQwLCB0MSkKLSAgICBy
ZXR1cm4odDAsIHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDAsIHQxKQogCiAu
b3BHZXRQcml2YXRlTmFtZVNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
Z2V0X3ByaXZhdGVfbmFtZSkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0
YWRhdGEob3BfcHV0X3ByaXZhdGVfbmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9w
X3B1dF9wcml2YXRlX25hbWUsIE9wUHV0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICB3cml0ZUJh
cnJpZXJPbk9wZXJhbmRzKHNpemUsIGdldCwgbV9iYXNlLCBtX3ZhbHVlKQogICAgIGdldChtX2Jh
c2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHNpemUsIHQzLCBDZWxs
VGFnLCB0MCwgLm9wUHV0UHJpdmF0ZU5hbWVTbG93KQpAQCAtMTgyOSw3ICsxODI5LDcgQEAgbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfcHJpdmF0ZV9uYW1lLCBPcFB1dFByaXZhdGVOYW1lLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXMKIGVuZCkKIAogbWFjcm8gcHV0QnlWYWxPcChvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG9zckV4aXRQb2ludCkKLSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9w
XyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNvZGVOYW1l
JSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIG1hY3JvIGNvbnRpZ3VvdXNQdXRCeVZh
bChzdG9yZUNhbGxiYWNrKQogICAgICAgICAgICAgYmlhZXEgdDMsIC1zaXplb2YgSW5kZXhpbmdI
ZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6dS5sZW5ndGhzLnB1YmxpY0xlbmd0aFt0MF0sIC5vdXRP
ZkJvdW5kcwogICAgICAgICAuc3RvcmVSZXN1bHQ6CkBAIC0yMDA5LDcgKzIwMDksNyBAQCB1bmRl
ZmluZWRPck51bGxKdW1wT3AoanVuZGVmaW5lZF9vcl9udWxsLCBPcEp1bmRlZmluZWRPck51bGws
CiB1bmRlZmluZWRPck51bGxKdW1wT3Aoam51bmRlZmluZWRfb3JfbnVsbCwgT3BKbnVuZGVmaW5l
ZE9yTnVsbCwKICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYmluZXEgdmFsdWUsIE51bGxUYWcs
IHRhcmdldCBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2plcV9wdHIsIE9wSmVxUHRyLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKG9wX2plcV9wdHIsIE9wSmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV92YWx1ZSwgdDAp
CiAgICAgZ2V0KG1fc3BlY2lhbFBvaW50ZXIsIHQxKQogICAgIGxvYWRDb25zdGFudChzaXplLCB0
MSwgdDMsIHQyKQpAQCAtMjAyMyw3ICsyMDIzLDcgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfamVx
X3B0ciwgT3BKZXFQdHIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCiBlbmQp
CiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9qbmVxX3B0ciwgT3BKbmVxUHRyLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRh
dGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3ZhbHVlLCB0MCkK
ICAgICBnZXQobV9zcGVjaWFsUG9pbnRlciwgdDEpCiAgICAgbG9hZENvbnN0YW50KHNpemUsIHQx
LCB0MywgdDIpCkBAIC0yMDU1LDcgKzIwNTUsNyBAQCBlbmQKIAogCiBtYWNybyBjb21wYXJlT3Ao
b3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91YmxlQ29t
cGFyZUFuZFNldCkKLSAgICBsbGludE9wV2l0aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29k
ZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9w
V2l0aHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBnZXQobV9yaHMsIHQzKQogICAgICAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0MCwgdDEpCkBAIC0yMDYzLDcgKzIw
NjMsNyBAQCBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2Vy
Q29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZAogICAgICAgICBiaW5lcSB0MCwgSW50MzJU
YWcsIC5vcDFOb3RJbnQKICAgICAgICAgYmluZXEgdDIsIEludDMyVGFnLCAub3AyTm90SW50CiAg
ICAgICAgIGludGVnZXJDb21wYXJlQW5kU2V0KHQxLCB0MywgdDEpCi0gICAgICAgIHJldHVybihC
b29sZWFuVGFnLCB0MSkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFu
VGFnLCB0MSkKIAogICAgIC5vcDFOb3RJbnQ6CiAgICAgICAgIGJpYSB0MCwgTG93ZXN0VGFnLCAu
c2xvdwpAQCAtMjA3NiwxNCArMjA3NiwxNCBAQCBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZAogICAg
IC5vcDFOb3RJbnRSZWFkeToKICAgICAgICAgZmlpMmQgdDEsIHQwLCBmdDAKICAgICAgICAgZG91
YmxlQ29tcGFyZUFuZFNldChmdDAsIGZ0MSwgdDEpCi0gICAgICAgIHJldHVybihCb29sZWFuVGFn
LCB0MSkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MSkK
IAogICAgIC5vcDJOb3RJbnQ6CiAgICAgICAgIGNpMmRzIHQxLCBmdDAKICAgICAgICAgYmlhIHQy
LCBMb3dlc3RUYWcsIC5zbG93CiAgICAgICAgIGZpaTJkIHQzLCB0MiwgZnQxCiAgICAgICAgIGRv
dWJsZUNvbXBhcmVBbmRTZXQoZnQwLCBmdDEsIHQxKQotICAgICAgICByZXR1cm4oQm9vbGVhblRh
ZywgdDEpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDEp
CiAKICAgICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5h
bWUlKQpAQCAtMjA5MiwxMyArMjA5MiwxMyBAQCBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZAogZW5k
CiAKIG1hY3JvIGNvbXBhcmVVbnNpZ25lZE9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50
ZWdlckNvbXBhcmVBbmRTZXQpCi0gICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfJW9wY29kZU5hbWUl
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAg
bGxpbnRPcFdpdGhzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKG9wXyVvcGNvZGVOYW1lJSwgb3Bj
b2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1fbGhzLCB0MCkK
ICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQxKQogICAgICAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyhzaXplLCB0MCwgdDIsIHQwKQogICAgICAgICBp
bnRlZ2VyQ29tcGFyZUFuZFNldCh0MCwgdDEsIHQwKQotICAgICAgICByZXR1cm4oQm9vbGVhblRh
ZywgdDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDAp
CiAgICAgZW5kKQogZW5kCiAKQEAgLTIyNzgsNyArMjI3OCw3IEBAIG1hY3JvIGNhbGxIZWxwZXIo
b3Bjb2RlTmFtZSwgc2xvd1BhdGgsIG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgZHN0
VmlydHVhCiBlbmQKICAgICAgICAgCiBtYWNybyBjb21tb25DYWxsT3Aob3Bjb2RlTmFtZSwgc2xv
d1BhdGgsIG9wY29kZVN0cnVjdCwgcHJlcGFyZUNhbGwsIGludm9rZUNhbGwsIHByZXBhcmVQb2x5
bW9ycGhpYywgcHJlcGFyZVNsb3dDYWxsLCBwcm9sb2d1ZSkKLSAgICBsbGludE9wV2l0aE1ldGFk
YXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IG1ldGFkYXRhLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgICAg
IHByb2xvZ3VlKG1hY3JvIChmaWVsZE5hbWUsIGRzdCkKQEAgLTIzNjMsMTcgKzIzNjMsMTcgQEAg
bGxpbnRPcChvcF9yZXQsIE9wUmV0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKICAgICBj
aGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQogICAgIGdldChtX3ZhbHVlLCB0MikKICAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0MSwgdDApCi0gICAgZG9SZXR1cm4oKQor
ICAgIGRvc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCgpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhS
ZXR1cm4ob3BfdG9fcHJpbWl0aXZlLCBPcFRvUHJpbWl0aXZlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKG9w
X3RvX3ByaW1pdGl2ZSwgT3BUb1ByaW1pdGl2ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fc3JjLCB0MikKICAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0MSwgdDApCiAgICAgYmluZXEgdDEsIENlbGxU
YWcsIC5vcFRvUHJpbWl0aXZlSXNJbW0KICAgICBiYmFlcSBKU0NlbGw6Om1fdHlwZVt0MF0sIE9i
amVjdFR5cGUsIC5vcFRvUHJpbWl0aXZlU2xvd0Nhc2UKIC5vcFRvUHJpbWl0aXZlSXNJbW06Ci0g
ICAgcmV0dXJuKHQxLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MCkK
IAogLm9wVG9QcmltaXRpdmVTbG93Q2FzZToKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90
b19wcmltaXRpdmUpCkBAIC0yMzgxLDcgKzIzODEsNyBAQCBsbGludE9wV2l0aFJldHVybihvcF90
b19wcmltaXRpdmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBy
ZQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3Byb3BlcnR5X2tleSwgT3BUb1By
b3BlcnR5S2V5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdp
dGhzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKG9wX3RvX3Byb3BlcnR5X2tleSwgT3BUb1Byb3Bl
cnR5S2V5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBnZXQobV9zcmMsIHQyKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6
ZSwgdDIsIHQxLCB0MCkKICAgICBiaW5lcSB0MSwgQ2VsbFRhZywgLm9wVG9Qcm9wZXJ0eUtleVNs
b3cKQEAgLTIzODksNyArMjM4OSw3IEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3Byb3BlcnR5
X2tleSwgT3BUb1Byb3BlcnR5S2V5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgYmJu
ZXEgSlNDZWxsOjptX3R5cGVbdDBdLCBTdHJpbmdUeXBlLCAub3BUb1Byb3BlcnR5S2V5U2xvdwog
CiAuZG9uZToKLSAgICByZXR1cm4odDEsIHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDEsIHQwKQogCiAub3BUb1Byb3BlcnR5S2V5U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Ns
b3dfcGF0aF90b19wcm9wZXJ0eV9rZXkpCkBAIC0yNDQ3LDcgKzI0NDcsNyBAQCBsbGludE9wKG9w
X2VuZCwgT3BFbmQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQogICAgIGFzc2VydE5vdENv
bnN0YW50KHNpemUsIHQwKQogICAgIGxvYWRpIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgdDEKICAg
ICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0MAotICAgIGRvUmV0dXJuKCkKKyAg
ICBkb3NldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goKQogZW5kKQogCiAKQEAgLTI1ODMsNyArMjU4
Myw3IEBAIG1hY3JvIHZhckluamVjdGlvbkNoZWNrKHNsb3dQYXRoKQogZW5kCiAKIAotbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRh
KG9wX3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAKICAgICBtYWNybyBn
ZXRDb25zdGFudFNjb3BlKGRzdCkKICAgICAgICAgbG9hZHAgT3BSZXNvbHZlU2NvcGU6Ok1ldGFk
YXRhOjptX2NvbnN0YW50U2NvcGVbdDVdLCBkc3QKQEAgLTI1OTEsNyArMjU5MSw3IEBAIGxsaW50
T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoCiAKICAgICBtYWNybyByZXR1cm5Db25zdGFudFNjb3BlKCkKICAg
ICAgICAgZ2V0Q29uc3RhbnRTY29wZSh0MCkKLSAgICAgICAgcmV0dXJuKENlbGxUYWcsIHQwKQor
ICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKENlbGxUYWcsIHQwKQogICAgIGVuZAog
CiAgICAgbWFjcm8gZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKHNsb3dQYXRoLCBnbG9i
YWxPYmplY3QsIHNjcmF0Y2gpCkBAIC0yNjExLDcgKzI2MTEsNyBAQCBsbGludE9wV2l0aE1ldGFk
YXRhKG9wX3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaAogICAgICAgICBidGlueiB0MiwgLnJlc29sdmVTY29wZUxvb3AKIAogICAgIC5yZXNv
bHZlU2NvcGVMb29wRW5kOgotICAgICAgICByZXR1cm4oQ2VsbFRhZywgdDApCisgICAgICAgIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQ2VsbFRhZywgdDApCiAgICAgZW5kCiAKICAgICBtZXRh
ZGF0YSh0NSwgdDApCkBAIC0yNjIxLDcgKzI2MjEsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9w
X3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aAogICAgIGJpbmVxIHQwLCBHbG9iYWxQcm9wZXJ0eSwgLnJHbG9iYWxWYXIKICAgICBnZXRDb25z
dGFudFNjb3BlKHQwKQogICAgIGdsb2JhbExleGljYWxCaW5kaW5nRXBvY2hDaGVjayguckR5bmFt
aWMsIHQwLCB0MikKLSAgICByZXR1cm4oQ2VsbFRhZywgdDApCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaChDZWxsVGFnLCB0MCkKIAogLnJHbG9iYWxWYXI6CiAgICAgYmluZXEgdDAsIEds
b2JhbFZhciwgLnJHbG9iYWxMZXhpY2FsVmFyCkBAIC0yNjQ0LDcgKzI2NDQsNyBAQCBsbGludE9w
V2l0aE1ldGFkYXRhKG9wX3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaAogICAgIHZhckluamVjdGlvbkNoZWNrKC5yRHluYW1pYykKICAgICBn
ZXRDb25zdGFudFNjb3BlKHQwKQogICAgIGdsb2JhbExleGljYWxCaW5kaW5nRXBvY2hDaGVjaygu
ckR5bmFtaWMsIHQwLCB0MikKLSAgICByZXR1cm4oQ2VsbFRhZywgdDApCisgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaChDZWxsVGFnLCB0MCkKIAogLnJHbG9iYWxWYXJXaXRoVmFySW5qZWN0
aW9uQ2hlY2tzOgogICAgIGJpbmVxIHQwLCBHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tz
LCAuckdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzCkBAIC0yNjc1LDEyICsy
Njc1LDEyIEBAIG1hY3JvIGxvYWRXaXRoU3RydWN0dXJlQ2hlY2sob3Bjb2RlU3RydWN0LCBnZXQs
IG9wZXJhbmQsIHNsb3dQYXRoKQogZW5kCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRf
ZnJvbV9zY29wZSwgT3BHZXRGcm9tU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfZnJvbV9zY29wZSwg
T3BHZXRGcm9tU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtYWNybyBnZXRQcm9wZXJ0eSgpCiAgICAgICAg
IGxvYWRwIE9wR2V0RnJvbVNjb3BlOjpNZXRhZGF0YTo6bV9vcGVyYW5kW3Q1XSwgdDMKICAgICAg
ICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MywgdDAsIHQxLCB0MikKICAgICAgICAg
dmFsdWVQcm9maWxlKE9wR2V0RnJvbVNjb3BlLCBtX3Byb2ZpbGUsIHQ1LCB0MSwgdDIpCi0gICAg
ICAgIHJldHVybih0MSwgdDIpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDEs
IHQyKQogICAgIGVuZAogCiAgICAgbWFjcm8gZ2V0R2xvYmFsVmFyKHRkekNoZWNrSWZOZWNlc3Nh
cnkpCkBAIC0yNjg5LDcgKzI2ODksNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9t
X3Njb3BlLCBPcEdldEZyb21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0YwogICAgICAg
ICBsb2FkcCBQYXlsb2FkT2Zmc2V0W3QwXSwgdDIKICAgICAgICAgdGR6Q2hlY2tJZk5lY2Vzc2Fy
eSh0MSkKICAgICAgICAgdmFsdWVQcm9maWxlKE9wR2V0RnJvbVNjb3BlLCBtX3Byb2ZpbGUsIHQ1
LCB0MSwgdDIpCi0gICAgICAgIHJldHVybih0MSwgdDIpCisgICAgICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2godDEsIHQyKQogICAgIGVuZAogCiAgICAgbWFjcm8gZ2V0Q2xvc3VyZVZhcigp
CkBAIC0yNjk3LDcgKzI2OTcsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9tX3Nj
b3BlLCBPcEdldEZyb21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0YwogICAgICAgICBs
b2FkcCBKU0xleGljYWxFbnZpcm9ubWVudF92YXJpYWJsZXMgKyBUYWdPZmZzZXRbdDAsIHQzLCA4
XSwgdDEKICAgICAgICAgbG9hZHAgSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzICsgUGF5
bG9hZE9mZnNldFt0MCwgdDMsIDhdLCB0MgogICAgICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRGcm9t
U2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQxLCB0MikKLSAgICAgICAgcmV0dXJuKHQxLCB0MikKKyAg
ICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MSwgdDIpCiAgICAgZW5kCiAKICAgICBt
ZXRhZGF0YSh0NSwgdDApCkBAIC0yNzU1LDcgKzI3NTUsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRh
KG9wX2dldF9mcm9tX3Njb3BlLCBPcEdldEZyb21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0YwogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3RvX3Njb3BlLCBPcFB1
dFRvU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQor
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29wZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KQogICAgIG1hY3JvIHB1dFByb3BlcnR5KCkKICAgICAgICAgZ2V0KG1fdmFsdWUsIHQxKQogICAg
ICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MiwgdDMpCkBAIC0yODg5LDEz
ICsyODg5LDEzIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3RvX3Njb3BlLCBPcFB1dFRv
U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtCiBlbmQpCiAKIAotbGxpbnRPcFdp
dGhQcm9maWxlKG9wX2dldF9mcm9tX2FyZ3VtZW50cywgT3BHZXRGcm9tQXJndW1lbnRzLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dl
dF9mcm9tX2FyZ3VtZW50cywgT3BHZXRGcm9tQXJndW1lbnRzLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9hcmd1bWVudHMs
IHQwKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0sIHQwCiAgICAgZ2V0dShz
aXplLCBPcEdldEZyb21Bcmd1bWVudHMsIG1faW5kZXgsIHQxKQogICAgIGxvYWRpIERpcmVjdEFy
Z3VtZW50c19zdG9yYWdlICsgVGFnT2Zmc2V0W3QwLCB0MSwgOF0sIHQyCiAgICAgbG9hZGkgRGly
ZWN0QXJndW1lbnRzX3N0b3JhZ2UgKyBQYXlsb2FkT2Zmc2V0W3QwLCB0MSwgOF0sIHQzCi0gICAg
cmV0dXJuKHQyLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyLCB0MykKIGVu
ZCkKIAogCkBAIC0yOTEyLDE1ICsyOTEyLDE1IEBAIGxsaW50T3Aob3BfcHV0X3RvX2FyZ3VtZW50
cywgT3BQdXRUb0FyZ3VtZW50cywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCiBlbmQpCiAK
IAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3BhcmVudF9zY29wZSwgT3BHZXRQYXJlbnRTY29w
ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaChvcF9nZXRfcGFyZW50X3Njb3BlLCBPcEdldFBhcmVudFNjb3Bl
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV9zY29wZSwgdDApCiAgICAgbG9hZHAgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4
XSwgdDAKICAgICBsb2FkcCBKU1Njb3BlOjptX25leHRbdDBdLCB0MAotICAgIHJldHVybihDZWxs
VGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKENlbGxUYWcsIHQwKQogZW5k
KQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBl
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BX
aXRoTWV0YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
bG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW3QxXSwg
dDEKICAgICAjIHQxIGlzIGhvbGRpbmcgdGhlIHBvaW50ZXIgdG8gdGhlIHR5cGVQcm9maWxlckxv
Zy4KQEAgLTI5NjUsNyArMjk2NSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV90
eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwKIGVuZCkKIAog
Ci1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVD
b250cm9sRmxvdywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4p
CitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVD
b250cm9sRmxvdywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQ1LCB0MCkKICAgICBsb2FkcCBPcFBy
b2ZpbGVDb250cm9sRmxvdzo6TWV0YWRhdGE6Om1fYmFzaWNCbG9ja0xvY2F0aW9uW3Q1XSwgdDAK
ICAgICBsb2FkaSBCYXNpY0Jsb2NrTG9jYXRpb246Om1fZXhlY3V0aW9uQ291bnRbdDBdLCB0MQpA
QCAtMjk3Niw3ICsyOTc2LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxlX2NvbnRy
b2xfZmxvdywgT3BQcm9maWxlQ29udHJvbEZsb3csIG1hY3JvIChzaXplLAogZW5kKQogCiAKLWxs
aW50T3BXaXRoUmV0dXJuKG9wX2dldF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKG9wX2dldF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2Fk
aSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwgdDAKICAg
ICBzdWJpIDEsIHQwCiAgICAgZ2V0dShzaXplLCBPcEdldFJlc3RMZW5ndGgsIG1fbnVtUGFyYW1l
dGVyc1RvU2tpcCwgdDEpCkBAIC0yOTg2LDEwICsyOTg2LDEwIEBAIGxsaW50T3BXaXRoUmV0dXJu
KG9wX2dldF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjCiAuc3RvcmVaZXJvOgogICAgIG1vdmUgMCwgdDAKIC5maW5pc2g6Ci0gICAgcmV0dXJu
KEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEludDMyVGFnLCB0
MCkKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVuLCBPcEl0ZXJh
dG9yT3BlbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCits
bGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX29wZW4sIE9wSXRlcmF0b3JPcGVuLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgbWFjcm8gZmFzdE5hcnJvdygpCiAgICAgICAgIGNhbGxTbG93UGF0aChfaXRlcmF0
b3Jfb3Blbl90cnlfZmFzdF9uYXJyb3cpCiAgICAgZW5kCkBAIC0zMDQ2LDcgKzMwNDYsNyBAQCBs
bGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX29wZW4sIE9wSXRlcmF0b3JPcGVuLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdp
dGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9w
X2l0ZXJhdG9yX25leHQsIE9wSXRlcmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIAogICAgIGxv
YWRWYXJpYWJsZShnZXQsIG1fbmV4dCwgdDAsIHQxLCB0MCkKICAgICBiaW5lcSB0MSwgRW1wdHlW
YWx1ZVRhZywgLml0ZXJhdG9yTmV4dEdlbmVyaWMKQEAgLTMxMzYsMTMgKzMxMzYsMTMgQEAgbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRo
UHJvZmlsZShvcF9nZXRfaW50ZXJuYWxfZmllbGQsIE9wR2V0SW50ZXJuYWxGaWVsZCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRf
aW50ZXJuYWxfZmllbGQsIE9wR2V0SW50ZXJuYWxGaWVsZCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fYmFzZSwgdDApCiAg
ICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBnZXR1KHNpemUsIE9w
R2V0SW50ZXJuYWxGaWVsZCwgbV9pbmRleCwgdDEpCiAgICAgbG9hZGkgSlNJbnRlcm5hbEZpZWxk
T2JqZWN0SW1wbF9pbnRlcm5hbEZpZWxkcyArIFRhZ09mZnNldFt0MCwgdDEsIFNsb3RTaXplXSwg
dDIKICAgICBsb2FkaSBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsX2ludGVybmFsRmllbGRzICsg
UGF5bG9hZE9mZnNldFt0MCwgdDEsIFNsb3RTaXplXSwgdDMKLSAgICByZXR1cm4odDIsIHQzKQor
ICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIsIHQzKQogZW5kKQogCiBsbGludE9wKG9w
X3B1dF9pbnRlcm5hbF9maWVsZCwgT3BQdXRJbnRlcm5hbEZpZWxkLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCkKQEAgLTMxOTgsMTEgKzMxOTgsMTEgQEAgZW5kKQogb3AoZnV6emVyX3JldHVy
bl9lYXJseV9mcm9tX2xvb3BfaGludCwgbWFjcm8gKCkKICAgICBtb3ZlIFVuZGVmaW5lZFRhZywg
cjEKICAgICBtb3ZlIDAsIHIwCi0gICAgZG9SZXR1cm4oKQorICAgIGRvc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCgpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9jaGVja19wcml2
YXRlX2JyYW5kLCBPcENoZWNrUHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0
ZV9icmFuZCwgT3BDaGVja1ByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQ1LCB0
MikKICAgICBnZXQobV9iYXNlLCB0MykKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9h
ZChzaXplLCB0MywgQ2VsbFRhZywgdDAsIC5vcENoZWNrUHJpdmF0ZUJyYW5kU2xvdykKQEAgLTMy
MjIsNyArMzIyMiw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0ZV9icmFu
ZCwgT3BDaGVja1ByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdlCiBlbmQpCiAKIAotbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9zZXRfcHJpdmF0ZV9icmFuZCwgT3BTZXRQcml2YXRlQnJhbmQsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9zZXRfcHJpdmF0ZV9icmFuZCwgT3BTZXRQcml2YXRlQnJhbmQsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgZ2V0KG1fYmFzZSwgdDMpCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZVBheWxvYWQoc2l6ZSwgdDMsIENlbGxUYWcsIHQwLCAub3BTZXRQcml2YXRl
QnJhbmRTbG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA1ZGU3YmNjN2ZkMGQ0ZjA0MGYyZGY5NGJkNDczNDVk
ODM1ODY5NDQ3Li42ODgyYzQ4MzQ3MmZhOTlmNTQzNjg4MmQxNDQ0NjlmYmM3ZjJhZWNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0
LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRl
cjY0LmFzbQpAQCAtNzEsNyArNzEsNyBAQCBtYWNybyBnZXRPcGVyYW5kV2lkZTMyV2FzbShvcGNv
ZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRpcyBjb25zdGV4cHIgJW9wY29kZVN0
cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplV2FzbVtQQiwg
UEMsIDFdLCBkc3QKIGVuZAogCi1tYWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gsIGZuKQor
bWFjcm8gbWFrZURlc3RpbmF0aW9uKGdldCwgZGlzcGF0Y2gsIGZuKQogICAgIGZuKG1hY3JvICh2
YWx1ZSkKICAgICAgICAgbW92ZSB2YWx1ZSwgdDIKICAgICAgICAgZ2V0KG1fZHN0LCB0MSkKQEAg
LTgwLDcgKzgwLDcgQEAgbWFjcm8gbWFrZVJldHVybihnZXQsIGRpc3BhdGNoLCBmbikKICAgICBl
bmQpCiBlbmQKIAotbWFjcm8gbWFrZVJldHVyblByb2ZpbGVkKG9wY29kZVN0cnVjdCwgZ2V0LCBt
ZXRhZGF0YSwgZGlzcGF0Y2gsIGZuKQorbWFjcm8gbWFrZURlc3RpbmF0aW9uUHJvZmlsZWQob3Bj
b2RlU3RydWN0LCBnZXQsIG1ldGFkYXRhLCBkaXNwYXRjaCwgZm4pCiAgICAgZm4obWFjcm8gKHZh
bHVlKQogICAgICAgICBtb3ZlIHZhbHVlLCB0MwogICAgICAgICBtZXRhZGF0YSh0MSwgdDIpCkBA
IC04NzAsMzQgKzg3MCwzNCBAQCBfbGxpbnRfb3BfZW50ZXI6CiAgICAgZGlzcGF0Y2hPcChuYXJy
b3csIG9wX2VudGVyKQogCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfYXJndW1lbnQsIE9w
R2V0QXJndW1lbnQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9w
V2l0aFByb2ZpbGUob3BfZ2V0X2FyZ3VtZW50LCBPcEdldEFyZ3VtZW50LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9pbmRl
eCwgdDIpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdU
aGlzW2Nmcl0sIHQwCiAgICAgYmlsdGVxIHQwLCB0MiwgLm9wR2V0QXJndW1lbnRPdXRPZkJvdW5k
cwogICAgIGxvYWRxIFRoaXNBcmd1bWVudE9mZnNldFtjZnIsIHQyLCA4XSwgdDAKLSAgICByZXR1
cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogLm9wR2V0QXJndW1l
bnRPdXRPZkJvdW5kczoKLSAgICByZXR1cm4oVmFsdWVVbmRlZmluZWQpCisgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaChWYWx1ZVVuZGVmaW5lZCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJl
dHVybihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9hcmd1bWVudF9j
b3VudCwgT3BBcmd1bWVudENvdW50LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRD
b3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwgdDAKICAgICBzdWJpIDEsIHQwCiAgICAgb3JxIFRhZ051
bWJlciwgdDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9nZXRfc2NvcGUsIE9wR2V0U2NvcGUs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0
aW9uKG9wX2dldF9zY29wZSwgT3BHZXRTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHQwCiAg
ICAgbG9hZHAgSlNDYWxsZWU6Om1fc2NvcGVbdDBdLCB0MAotICAgIHJldHVybih0MCkKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRh
dGEob3BfdG9fdGhpcywgT3BUb1RoaXMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90b190aGlzLCBPcFRvVGhpcywg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKQogICAgIGdldChtX3NyY0RzdCwgdDApCiAgICAgbG9hZHEgW2NmciwgdDAsIDhdLCB0
MAogICAgIGJ0cW56IHQwLCBub3RDZWxsTWFzaywgLm9wVG9UaGlzU2xvdwpAQCAtOTI1LDIwICs5
MjUsMjAgQEAgbGxpbnRPcChvcF9jaGVja190ZHosIE9wQ2hlY2tUZHosIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX21vdiwgT3BNb3Ys
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0
aW9uKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDEpCiAgICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZShzaXplLCB0MSwgdDIpCi0gICAgcmV0dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2godDIpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3Bfbm90LCBPcE5v
dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGlu
YXRpb24ob3Bfbm90LCBPcE5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDIpCiAgICAgeG9ycSBWYWx1ZUZhbHNlLCB0MgogICAg
IGJ0cW56IHQyLCB+MSwgLm9wTm90U2xvdwogICAgIHhvcnEgVmFsdWVUcnVlLCB0MgotICAgIHJl
dHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BOb3RTbG93
OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX25vdCkKQEAgLTk0NywxNCArOTQ3LDE0IEBA
IGVuZCkKIAogCiBtYWNybyBlcXVhbGl0eUNvbXBhcmlzb25PcChvcGNvZGVOYW1lLCBvcGNvZGVT
dHJ1Y3QsIGludGVnZXJDb21wYXJpc29uKQotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wXyVvcGNv
ZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJu
KQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KQogICAgICAgICBnZXQobV9yaHMsIHQwKQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIoc2l6ZSwgdDAsIHQxLCAuc2xvdykKICAgICAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHNpemUsIHQyLCB0MCwgLnNsb3cpCiAgICAg
ICAgIGludGVnZXJDb21wYXJpc29uKHQwLCB0MSwgdDApCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNl
LCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDApCiAKICAgICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9w
Y29kZU5hbWUlKQpAQCAtOTY0LDcgKzk2NCw3IEBAIGVuZAogCiAKIG1hY3JvIGVxdWFsTnVsbENv
bXBhcmlzb25PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQotICAgIGxsaW50T3BXaXRo
UmV0dXJuKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wY29kZU5hbWUsIG9wY29k
ZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgICAgIGdldChtX29wZXJhbmQsIHQwKQogICAgICAgICBsb2FkcSBbY2ZyLCB0
MCwgOF0sIHQwCiAgICAgICAgIGJ0cW56IHQwLCBub3RDZWxsTWFzaywgLmltbWVkaWF0ZQpAQCAt
OTgyLDcgKzk4Miw3IEBAIG1hY3JvIGVxdWFsTnVsbENvbXBhcmlzb25PcChvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGZuKQogICAgICAgICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCiAgICAgLmRv
bmU6CiAgICAgICAgIGZuKHQwKQotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2godDApCiAgICAgZW5kKQogZW5kCiAKQEAgLTk5NCwxOCArOTk0LDE4
IEBAIGVxdWFsTnVsbENvbXBhcmlzb25PcChvcF9uZXFfbnVsbCwgT3BOZXFOdWxsLAogICAgIG1h
Y3JvICh2YWx1ZSkgeG9ycSBWYWx1ZVRydWUsIHZhbHVlIGVuZCkKIAogCi1sbGludE9wV2l0aFJl
dHVybihvcF9pc191bmRlZmluZWRfb3JfbnVsbCwgT3BJc1VuZGVmaW5lZE9yTnVsbCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bf
aXNfdW5kZWZpbmVkX29yX251bGwsIE9wSXNVbmRlZmluZWRPck51bGwsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJh
bmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQogICAgIGFu
ZHEgflRhZ1VuZGVmaW5lZCwgdDAKICAgICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCiAgICAgb3Jx
IFZhbHVlRmFsc2UsIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2godDApCiBlbmQpCiAKIAogbWFjcm8gc3RyaWN0RXFPcChvcGNvZGVOYW1lLCBvcGNvZGVT
dHJ1Y3QsIGNyZWF0ZUJvb2xlYW4pCi0gICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfJW9wY29kZU5h
bWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisg
ICAgbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAg
ICAgICAgIGdldChtX3JocywgdDApCiAgICAgICAgIGdldChtX2xocywgdDIpCiAgICAgICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxKQpAQCAtMTAyMCw3ICsxMDIwLDcgQEAg
bWFjcm8gc3RyaWN0RXFPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGNyZWF0ZUJvb2xlYW4p
CiAgICAgICAgICMgaWYgKGxlZnQgaXMgQ2VsbCB8fCByaWdodCBpcyBDZWxsKQogICAgICAgICAj
ICAgICBnb3RvIHNsb3dQYXRoOwogICAgICAgICAjIGRvbmU6Ci0gICAgICAgICMgcmV0dXJuIHJl
c3VsdDsKKyAgICAgICAgIyBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoIHJlc3VsdDsKIAogICAg
ICAgICAjIFRoaXMgZnJhZ21lbnQgaW1wbGVtZW50cyAobGVmdCBpcyBEb3VibGUgfHwgcmlnaHQg
aXMgRG91YmxlKSwgd2l0aCBhIHNpbmdsZSBicmFuY2ggaW5zdGVhZCBvZiB0aGUgNCB0aGF0IHdv
dWxkIGJlIG5haXZlbHkgcmVxdWlyZWQgaWYgd2UgdXNlZCBicmFuY2hJZkludDMyL2JyYW5jaElm
TnVtYmVyCiAgICAgICAgICMgVGhlIHRyaWNrIGlzIHRoYXQgaWYgYSBKU1ZhbHVlIGlzIGFuIElu
dDMyLCB0aGVuIGFkZGluZyAxPDw0OSB0byBpdCB3aWxsIG1ha2UgaXQgb3ZlcmZsb3csIGxlYXZp
bmcgYWxsIGhpZ2ggYml0cyBhdCAwCkBAIC0xMDQ1LDcgKzEwNDUsNyBAQCBtYWNybyBzdHJpY3RF
cU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgY3JlYXRlQm9vbGVhbikKIAogICAgIC5kb25l
OgogICAgICAgICBjcmVhdGVCb29sZWFuKHQ1KQotICAgICAgICByZXR1cm4odDUpCisgICAgICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDUpCiAKICAgICAuc2xvdzoKICAgICAgICAgY2Fs
bFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpAQCAtMTExOSw3ICsxMTE5LDcgQEAg
c3RyaWN0RXF1YWxpdHlKdW1wT3Aoam5zdHJpY3RlcSwgT3BKbnN0cmljdGVxLAogICAgIG1hY3Jv
IChqdW1wLCB0YXJnZXRMYWJlbCwgZGlzcGF0Y2gpIGp1bXAodGFyZ2V0TGFiZWwpIGVuZCkKIAog
bWFjcm8gcHJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyT3BlcmF0aW9uKQot
ICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIGxsaW50T3BX
aXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAg
ICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgbG9hZHEgW2NmciwgdDAsIDhdLCB0MQogICAg
ICAgICAjIHNyY0RzdCBpbiB0MQpAQCAtMTEzOCwyNiArMTEzOCwyNiBAQCBtYWNybyBwcmVPcChv
cGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb24pCiAKIGVuZAogCi1sbGlu
dE9wV2l0aFByb2ZpbGUob3BfdG9fbnVtYmVyLCBPcFRvTnVtYmVyLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWJlciwgT3BU
b051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MCwgdDIpCiAgICAgYnFhZXEgdDIsIG51bWJlclRhZywgLm9wVG9OdW1iZXJJc0lt
bWVkaWF0ZQogICAgIGJ0cXogdDIsIG51bWJlclRhZywgLm9wVG9OdW1iZXJTbG93CiAub3BUb051
bWJlcklzSW1tZWRpYXRlOgotICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKHQyKQogCiAub3BUb051bWJlclNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3Bh
dGhfdG9fbnVtYmVyKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhQcm9maWxl
KG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
cmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmljLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAg
ICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQw
LCB0MikKICAgICBicWFlcSB0MiwgbnVtYmVyVGFnLCAub3BUb051bWVyaWNJc0ltbWVkaWF0ZQog
ICAgIGJ0cXogdDIsIG51bWJlclRhZywgLm9wVG9OdW1lcmljU2xvdwogLm9wVG9OdW1lcmljSXNJ
bW1lZGlhdGU6Ci0gICAgcmV0dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDIpCiAKIC5vcFRvTnVtZXJpY1Nsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9f
bnVtZXJpYykKQEAgLTExNjUsMTMgKzExNjUsMTMgQEAgbGxpbnRPcFdpdGhQcm9maWxlKG9wX3Rv
X251bWVyaWMsIE9wVG9OdW1lcmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXIK
IGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90b19zdHJpbmcsIE9wVG9TdHJpbmcsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9u
KG9wX3RvX3N0cmluZywgT3BUb1N0cmluZywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAgICAgYnRxbnogdDAsIG5vdENlbGxN
YXNrLCAub3BUb1N0cmluZ1Nsb3cKICAgICBiYm5lcSBKU0NlbGw6Om1fdHlwZVt0MF0sIFN0cmlu
Z1R5cGUsIC5vcFRvU3RyaW5nU2xvdwogLm9wVG9TdHJpbmdJc1N0cmluZzoKLSAgICByZXR1cm4o
dDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogLm9wVG9TdHJpbmdTbG93
OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX3N0cmluZykKQEAgLTExNzksMTIgKzEx
NzksMTIgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9fc3RyaW5nLCBPcFRvU3RyaW5nLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUHJv
ZmlsZShvcF90b19vYmplY3QsIE9wVG9PYmplY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2JqZWN0LCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAg
ICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQw
LCB0MikKICAgICBidHFueiB0Miwgbm90Q2VsbE1hc2ssIC5vcFRvT2JqZWN0U2xvdwogICAgIGJi
YiBKU0NlbGw6Om1fdHlwZVt0Ml0sIE9iamVjdFR5cGUsIC5vcFRvT2JqZWN0U2xvdwotICAgIHJl
dHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BUb09iamVj
dFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9fb2JqZWN0KQpAQCAtMTE5Miw3
ICsxMTkyLDcgQEAgbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX29iamVjdCwgT3BUb09iamVjdCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKIGVuZCkKIAogCi1sbGludE9wV2l0
aE1ldGFkYXRhKG9wX25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9uZWdhdGUsIE9wTmVn
YXRlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZShzaXplLCB0MCwgdDMpCiAgICAgYnFiIHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0ZU5v
dEludApAQCAtMTIwMCwxMiArMTIwMCwxMiBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX25lZ2F0
ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcgogICAg
IG5lZ2kgdDMKICAgICBvcnEgbnVtYmVyVGFnLCB0MwogICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9m
aWxlKHNpemUsIE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQxLCB0MikKLSAgICByZXR1cm4o
dDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MykKIC5vcE5lZ2F0ZU5vdEludDoK
ICAgICBidHF6IHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0ZVNsb3cKICAgICB4b3JxIDB4ODAwMDAw
MDAwMDAwMDAwMCwgdDMKICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBPcE5lZ2F0
ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0MSwgdDIpCi0gICAgcmV0dXJuKHQzKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2godDMpCiAKIC5vcE5lZ2F0ZVNsb3c6CiAgICAgY2FsbFNsb3dQ
YXRoKF9zbG93X3BhdGhfbmVnYXRlKQpAQCAtMTIxNCw3ICsxMjE0LDcgQEAgZW5kKQogCiAKIG1h
Y3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2Vy
T3BlcmF0aW9uQW5kU3RvcmUsIGRvdWJsZU9wZXJhdGlvbikKLSAgICBsbGludE9wV2l0aE1ldGFk
YXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNv
ZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX3JocywgdDApCiAg
ICAgICAgIGdldChtX2xocywgdDIpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6
ZSwgdDAsIHQxKQpAQCAtMTMyOCw3ICsxMzI4LDcgQEAgYmluYXJ5T3Aoc3ViLCBPcFN1YiwKICAg
ICBtYWNybyAobGhzLCByaHMpIHN1YmQgcmhzLCBsaHMgZW5kKQogCiBpZiBYODZfNjQgb3IgWDg2
XzY0X1dJTgotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wX21vZCwgT3BNb2QsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9t
b2QsIE9wTW9kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikK
ICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHNpemUsIHQwLCB0MSwgLnNsb3cp
CkBAIC0xMzQ1LDEzICsxMzQ1LDEzIEBAIGlmIFg4Nl82NCBvciBYODZfNjRfV0lOCiAgICAgICAg
IGNkcWkKICAgICAgICAgaWRpdmkgdDMKICAgICAgICAgb3JxIG51bWJlclRhZywgcjEKLSAgICAg
ICAgcmV0dXJuKHIxKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxKQogICAg
IC5uZWVkc05lZ1plcm9DaGVjazoKICAgICAgICAgY2RxaQogICAgICAgICBpZGl2aSB0MwogICAg
ICAgICBidGl6IHIxLCAuc2xvdwogICAgICAgICBvcnEgbnVtYmVyVGFnLCByMQotICAgICAgICBy
ZXR1cm4ocjEpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gocjEpCiAKICAgICAu
c2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfbW9kKQpAQCAtMTM2MSw3ICsx
MzYxLDcgQEAgZWxzZQogICAgIHNsb3dQYXRoT3AobW9kKQogZW5kCiAKLWxsaW50T3BXaXRoUmV0
dXJuKG9wX3BvdywgT3BQb3csIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCits
bGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3BvdywgT3BQb3csIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3JocywgdDApCiAg
ICAgZ2V0KG1fbGhzLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIoc2l6ZSwg
dDAsIHQxLCAuc2xvdykKQEAgLTE0MDAsMTEgKzE0MDAsMTEgQEAgbGxpbnRPcFdpdGhSZXR1cm4o
b3BfcG93LCBPcFBvdywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKICAgICBk
aXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3Vuc2lnbmVkLCBPcFVuc2ln
bmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF91bnNpZ25lZCwgT3BVbnNpZ25lZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDIpCiAgICAgYmlsdCB0MiwgMCwg
Lm9wVW5zaWduZWRTbG93Ci0gICAgcmV0dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2godDIpCiAub3BVbnNpZ25lZFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhf
dW5zaWduZWQpCiAgICAgZGlzcGF0Y2goKQpAQCAtMTQxMiw3ICsxNDEyLDcgQEAgZW5kKQogCiAK
IG1hY3JvIGNvbW1vbkJpdE9wKG9wS2luZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVy
YXRpb24pCi0gICAgb3BLaW5kKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIG9wS2luZChvcF8lb3Bjb2RlTmFtZSUs
IG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX3JocywgdDApCiAgICAgICAgIGdldChtX2xocywg
dDIpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxKQpAQCAtMTQy
MSw3ICsxNDIxLDcgQEAgbWFjcm8gY29tbW9uQml0T3Aob3BLaW5kLCBvcGNvZGVOYW1lLCBvcGNv
ZGVTdHJ1Y3QsIG9wZXJhdGlvbikKICAgICAgICAgYnFiIHQxLCBudW1iZXJUYWcsIC5zbG93CiAg
ICAgICAgIG9wZXJhdGlvbih0MCwgdDEpCiAgICAgICAgIG9ycSBudW1iZXJUYWcsIHQwCi0gICAg
ICAgIHJldHVybih0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAog
ICAgIC5zbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUp
CkBAIC0xNDMwLDcgKzE0MzAsNyBAQCBtYWNybyBjb21tb25CaXRPcChvcEtpbmQsIG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0aW9uKQogZW5kCiAKIG1hY3JvIGJpdE9wKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0aW9uKQotICAgIGNvbW1vbkJpdE9wKGxsaW50T3BXaXRo
UmV0dXJuLCBvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKKyAgICBjb21tb25C
aXRPcChsbGludE9wV2l0aERlc3RpbmF0aW9uLCBvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9w
ZXJhdGlvbikKIGVuZAogCiBtYWNybyBiaXRPcFByb2ZpbGVkKG9wY29kZU5hbWUsIG9wY29kZVN0
cnVjdCwgb3BlcmF0aW9uKQpAQCAtMTQ1NywxMiArMTQ1NywxMiBAQCBiaXRPcFByb2ZpbGVkKGJp
dG9yLCBPcEJpdG9yLAogYml0T3BQcm9maWxlZChiaXR4b3IsIE9wQml0eG9yLAogICAgIG1hY3Jv
IChsaHMsIHJocykgeG9yaSByaHMsIGxocyBlbmQpCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9i
aXRub3QsIE9wQml0bm90LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxp
bnRPcFdpdGhQcm9maWxlKG9wX2JpdG5vdCwgT3BCaXRub3QsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQw
KQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMihzaXplLCB0MCwgdDMsIC5vcEJpdE5v
dFNsb3cpCiAgICAgbm90aSB0MwogICAgIG9ycSBudW1iZXJUYWcsIHQzCi0gICAgcmV0dXJuKHQz
KQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDMpCiAub3BCaXROb3RTbG93OgogICAg
IGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2JpdG5vdCkKICAgICBkaXNwYXRjaCgpCkBAIC0xNDky
LDY3ICsxNDkyLDY3IEBAIGxsaW50T3Aob3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSwgT3BPdmVy
cmlkZXNIYXNJbnN0YW5jZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzCiBlbmQpCiAKIAotbGxpbnRP
cFdpdGhSZXR1cm4ob3BfaXNfZW1wdHksIE9wSXNFbXB0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfZW1wdHksIE9wSXNF
bXB0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShz
aXplLCB0MSwgdDApCiAgICAgY3FlcSB0MCwgVmFsdWVFbXB0eSwgdDMKICAgICBvcnEgVmFsdWVG
YWxzZSwgdDMKLSAgICByZXR1cm4odDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MykKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90eXBlb2ZfaXNfdW5kZWZpbmVkLCBP
cFR5cGVvZklzVW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90eXBlb2ZfaXNfdW5kZWZpbmVkLCBPcFR5cGVvZklz
VW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHNpemUsIHQxLCB0MCkKICAgICBidHF6IHQwLCBub3RDZWxsTWFzaywgLm9wSXNVbmRlZmlu
ZWRDZWxsCiAgICAgY3FlcSB0MCwgVmFsdWVVbmRlZmluZWQsIHQzCiAgICAgb3JxIFZhbHVlRmFs
c2UsIHQzCi0gICAgcmV0dXJuKHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDMp
CiAub3BJc1VuZGVmaW5lZENlbGw6CiAgICAgYnRibnogSlNDZWxsOjptX2ZsYWdzW3QwXSwgTWFz
cXVlcmFkZXNBc1VuZGVmaW5lZCwgLm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQKICAgICBtb3ZlIFZh
bHVlRmFsc2UsIHQxCi0gICAgcmV0dXJuKHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDEpCiAubWFzcXVlcmFkZXNBc1VuZGVmaW5lZDoKICAgICBsb2FkU3RydWN0dXJlV2l0aFNj
cmF0Y2godDAsIHQzLCB0MSkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKICAgICBsb2Fk
cCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QxXSwgdDEKICAgICBjcGVxIFN0cnVjdHVyZTo6
bV9nbG9iYWxPYmplY3RbdDNdLCB0MSwgdDAKICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICBy
ZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIGVuZCkKIAogCi1s
bGludE9wV2l0aFJldHVybihvcF9pc19ib29sZWFuLCBPcElzQm9vbGVhbiwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfYm9v
bGVhbiwgT3BJc0Jvb2xlYW4sIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQogICAgIHhvcnEgVmFsdWVGYWxzZSwgdDAKICAgICB0
cXogdDAsIH4xLCB0MAogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgIHJldHVybih0MCkKKyAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0
dXJuKG9wX2lzX251bWJlciwgT3BJc051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfbnVtYmVyLCBPcElzTnVtYmVy
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUs
IHQxLCB0MCkKICAgICB0cW56IHQwLCBudW1iZXJUYWcsIHQxCiAgICAgb3JxIFZhbHVlRmFsc2Us
IHQxCi0gICAgcmV0dXJuKHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDEpCiBl
bmQpCiAKIGlmIEJJR0lOVDMyCi0gICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfYmlnX2ludCwg
T3BJc0JpZ0ludCwgbWFjcm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50
T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfYmlnX2ludCwgT3BJc0JpZ0ludCwgbWFjcm8oc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1f
b3BlcmFuZCwgdDEpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQw
KQogICAgICAgICBidHFueiB0MCwgbm90Q2VsbE1hc2ssIC5ub3RDZWxsQ2FzZQogICAgICAgICBj
YmVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgSGVhcEJpZ0ludFR5cGUsIHQxCiAgICAgICAgIG9ycSBW
YWx1ZUZhbHNlLCB0MQotICAgICAgICByZXR1cm4odDEpCisgICAgICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2godDEpCiAgICAgLm5vdENlbGxDYXNlOgogICAgICAgICBhbmRxIE1hc2tCaWdJ
bnQzMiwgdDAKICAgICAgICAgY3FlcSB0MCwgVGFnQmlnSW50MzIsIHQwCiAgICAgICAgIG9ycSBW
YWx1ZUZhbHNlLCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2godDApCiAgICAgZW5kKQogZWxzZQogIyBpZiBCSUdJTlQzMiBpcyBub3Qgc3Vw
cG9ydGVkIHdlIGdlbmVyYXRlIG9wX2lzX2NlbGxfd2l0aF90eXBlIGluc3RlYWQgb2Ygb3BfaXNf
YmlnX2ludApAQCAtMTU2MSwyOCArMTU2MSwyOCBAQCBlbHNlCiAgICAgZW5kKQogZW5kCiAKLWxs
aW50T3BXaXRoUmV0dXJuKG9wX2lzX2NlbGxfd2l0aF90eXBlLCBPcElzQ2VsbFdpdGhUeXBlLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlv
bihvcF9pc19jZWxsX3dpdGhfdHlwZSwgT3BJc0NlbGxXaXRoVHlwZSwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0dShzaXplLCBP
cElzQ2VsbFdpdGhUeXBlLCBtX3R5cGUsIHQwKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQzKQogICAgIGJ0cW56IHQzLCBub3RD
ZWxsTWFzaywgLm5vdENlbGxDYXNlCiAgICAgY2JlcSBKU0NlbGw6Om1fdHlwZVt0M10sIHQwLCB0
MQogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MQotICAgIHJldHVybih0MSkKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQxKQogLm5vdENlbGxDYXNlOgotICAgIHJldHVybihWYWx1ZUZhbHNl
KQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goVmFsdWVGYWxzZSkKIGVuZCkKIAogCi1s
bGludE9wV2l0aFJldHVybihvcF9pc19vYmplY3QsIE9wSXNPYmplY3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX29iamVj
dCwgT3BJc09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZShzaXplLCB0MSwgdDApCiAgICAgYnRxbnogdDAsIG5vdENlbGxNYXNrLCAub3BJc09i
amVjdE5vdENlbGwKICAgICBjYmFlcSBKU0NlbGw6Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIHQx
CiAgICAgb3JxIFZhbHVlRmFsc2UsIHQxCi0gICAgcmV0dXJuKHQxKQorICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2godDEpCiAub3BJc09iamVjdE5vdENlbGw6Ci0gICAgcmV0dXJuKFZhbHVl
RmFsc2UpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChWYWx1ZUZhbHNlKQogZW5kKQog
CiAKQEAgLTE2MTgsNyArMTYxOCw3IEBAIG1hY3JvIHN0b3JlUHJvcGVydHlBdFZhcmlhYmxlT2Zm
c2V0KHByb3BlcnR5T2Zmc2V0QXNJbnQsIG9iamVjdEFuZFN0b3JhZ2UsIHZhbHVlCiBlbmQKIAog
Ci1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3RyeV9nZXRfYnlfaWQsIE9wVHJ5R2V0QnlJZCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1l
dGFkYXRhKG9wX3RyeV9nZXRfYnlfaWQsIE9wVHJ5R2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFk
YXRhKHQyLCB0MCkKICAgICBnZXQobV9iYXNlLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlQ2VsbChzaXplLCB0MCwgdDMsIC5vcFRyeUdldEJ5SWRTbG93KQpAQCAtMTYyOCwxNCArMTYy
OCwxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RyeV9nZXRfYnlfaWQsIE9wVHJ5R2V0QnlJ
ZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsCiAgICAgbG9hZGkgT3BUcnlHZXRCeUlkOjpN
ZXRhZGF0YTo6bV9vZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZz
ZXQodDEsIHQzLCB0MCkKICAgICB2YWx1ZVByb2ZpbGUoT3BUcnlHZXRCeUlkLCBtX3Byb2ZpbGUs
IHQyLCB0MCkKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MCkKIAogLm9wVHJ5R2V0QnlJZFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfdHJ5X2dldF9ieV9pZCkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0
YWRhdGEob3BfZ2V0X2J5X2lkX2RpcmVjdCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bf
Z2V0X2J5X2lkX2RpcmVjdCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEo
dDIsIHQwKQogICAgIGdldChtX2Jhc2UsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVD
ZWxsKHNpemUsIHQwLCB0MywgLm9wR2V0QnlJZERpcmVjdFNsb3cpCkBAIC0xNjQ1LDcgKzE2NDUs
NyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZF9kaXJlY3QsIE9wR2V0QnlJZERp
cmVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcAogICAgIGxvYWRpIE9wR2V0QnlJZERpcmVjdDo6
TWV0YWRhdGE6Om1fb2Zmc2V0W3QyXSwgdDEKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zm
c2V0KHQxLCB0MywgdDApCiAgICAgdmFsdWVQcm9maWxlKE9wR2V0QnlJZERpcmVjdCwgbV9wcm9m
aWxlLCB0MiwgdDApCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDApCiAKIC5vcEdldEJ5SWREaXJlY3RTbG93OgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2dldF9ieV9pZF9kaXJlY3QpCkBAIC0xNjUzLDcgKzE2NTMsNyBAQCBsbGludE9w
V2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZF9kaXJlY3QsIE9wR2V0QnlJZERpcmVjdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcAogZW5kKQogCiAjIFRoZSBiYXNlIG9iamVjdCBpcyBleHBlY3RlZCBp
biB0MwotbWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRh
dGFOYW1lLCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG93TGFiZWwsIHNpemUsIG1ldGFkYXRhLCByZXR1
cm4pCittYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0
YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsb3dMYWJlbCwgc2l6ZSwgbWV0YWRhdGEsIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDIsIHQxKQogICAgIGxvYWRiICVv
cGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRhZGF0YU5hbWUlLm1vZGVbdDJdLCB0MQog
CkBAIC0xNjY1LDcgKzE2NjUsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNvZGVT
dHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAgIGxvYWRp
cyAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5kZWZhdWx0TW9k
ZS5jYWNoZWRPZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQo
dDEsIHQzLCB0MCkKICAgICB2YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVO
YW1lLCB0MiwgdDApCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDApCiAKIC5vcEdldEJ5SWRQcm90b0xvYWQ6CiAgICAgYmJuZXEgdDEsIGNvbnN0ZXhwciBH
ZXRCeUlkTW9kZTo6UHJvdG9Mb2FkLCAub3BHZXRCeUlkQXJyYXlMZW5ndGgKQEAgLTE2NzYsNyAr
MTY3Niw3IEBAIG1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9kZU1l
dGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvCiAgICAgbG9hZHAgJW9wY29kZVN0cnVj
dCU6Ok1ldGFkYXRhOjolbW9kZU1ldGFkYXRhTmFtZSUucHJvdG9Mb2FkTW9kZS5jYWNoZWRTbG90
W3QyXSwgdDMKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDApCiAg
ICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgdDIsIHQwKQot
ICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BH
ZXRCeUlkQXJyYXlMZW5ndGg6CiAgICAgYmJuZXEgdDEsIGNvbnN0ZXhwciBHZXRCeUlkTW9kZTo6
QXJyYXlMZW5ndGgsIC5vcEdldEJ5SWRVbnNldApAQCAtMTY4OSwyMSArMTY4OSwyMSBAQCBtYWNy
byBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZh
bHVlUHJvZmlsZU5hbWUsIHNsbwogICAgIGJpbHQgdDAsIDAsIHNsb3dMYWJlbAogICAgIG9ycSBu
dW1iZXJUYWcsIHQwCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxl
TmFtZSwgdDIsIHQwKQotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKHQwKQogCiAub3BHZXRCeUlkVW5zZXQ6CiAgICAgbG9hZGkgSlNDZWxsOjptX3N0cnVjdHVy
ZUlEW3QzXSwgdDEKICAgICBsb2FkaSAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0
YWRhdGFOYW1lJS51bnNldE1vZGUuc3RydWN0dXJlSURbdDJdLCB0MAogICAgIGJpbmVxIHQwLCB0
MSwgc2xvd0xhYmVsCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxl
TmFtZSwgdDIsIFZhbHVlVW5kZWZpbmVkKQotICAgIHJldHVybihWYWx1ZVVuZGVmaW5lZCkKKyAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKFZhbHVlVW5kZWZpbmVkKQogCiBlbmQKIAotbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dl
dF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fYmFzZSwgdDApCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwgdDAsIHQzLCAub3BHZXRCeUlkU2xvdykKLSAg
ICBwZXJmb3JtR2V0QnlJREhlbHBlcihPcEdldEJ5SWQsIG1fbW9kZU1ldGFkYXRhLCBtX3Byb2Zp
bGUsIC5vcEdldEJ5SWRTbG93LCBzaXplLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIHBlcmZvcm1H
ZXRCeUlESGVscGVyKE9wR2V0QnlJZCwgbV9tb2RlTWV0YWRhdGEsIG1fcHJvZmlsZSwgLm9wR2V0
QnlJZFNsb3csIHNpemUsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogCiAu
b3BHZXRCeUlkU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlf
aWQpCkBAIC0xNzEzLDEyICsxNzEzLDEyIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5
X2lkLCBPcEdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0CiAgICAg
Z2V0dGVyU2V0dGVyT1NSRXhpdFJldHVyblBvaW50KG9wX2dldF9ieV9pZCwgc2l6ZSkKICAgICBt
ZXRhZGF0YSh0MiwgdDMpCiAgICAgdmFsdWVQcm9maWxlKE9wR2V0QnlJZCwgbV9wcm9maWxlLCB0
MiwgcjApCi0gICAgcmV0dXJuKHIwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gocjAp
CiAKIGVuZCkKIAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X3Byb3RvdHlwZV9vZiwgT3BH
ZXRQcm90b3R5cGVPZiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50
T3BXaXRoUHJvZmlsZShvcF9nZXRfcHJvdG90eXBlX29mLCBPcEdldFByb3RvdHlwZU9mLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBn
ZXQobV92YWx1ZSwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDAp
CiAKQEAgLTE3MzEsNyArMTczMSw3IEBAIGxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfcHJvdG90
eXBlX29mLCBPcEdldFByb3RvdHlwZU9mLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwCiAKICAgICBs
b2FkcSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlW3QyXSwgdDIKICAgICBidHF6IHQyLCAub3BHZXRQ
cm90b3R5cGVPZlBvbHlQcm90bwotICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKHQyKQogCiAub3BHZXRQcm90b3R5cGVPZlNsb3c6CiAgICAgY2FsbFNsb3dQYXRo
KF9zbG93X3BhdGhfZ2V0X3Byb3RvdHlwZV9vZikKQEAgLTE3NDAsMTEgKzE3NDAsMTEgQEAgbGxp
bnRPcFdpdGhQcm9maWxlKG9wX2dldF9wcm90b3R5cGVfb2YsIE9wR2V0UHJvdG90eXBlT2YsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3AKIC5vcEdldFByb3RvdHlwZU9mUG9seVByb3RvOgogICAgIG1v
dmUga25vd25Qb2x5UHJvdG9PZmZzZXQsIHQxCiAgICAgbG9hZElubGluZU9mZnNldCh0MSwgdDAs
IHQzKQotICAgIHJldHVybih0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQzKQog
ZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1dEJ5SWQsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX2Jhc2Us
IHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQzLCB0MCwgLm9wUHV0
QnlJZFNsb3cpCiAgICAgbWV0YWRhdGEodDUsIHQyKQpAQCAtMTgxNyw3ICsxODE3LDcgQEAgbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXQKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dl
dF9ieV92YWwsIE9wR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdldEJ5VmFs
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gpCiAgICAgbWFjcm8gZmluaXNoR2V0QnlWYWwocmVzdWx0LCBzY3JhdGNoKQogICAg
ICAgICBnZXQobV9kc3QsIHNjcmF0Y2gpCiAgICAgICAgIHN0b3JlcSByZXN1bHQsIFtjZnIsIHNj
cmF0Y2gsIDhdCkBAIC0xOTA1LDExICsxOTA1LDExIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
Z2V0X2J5X3ZhbCwgT3BHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFk
CiAgICAgZ2V0dGVyU2V0dGVyT1NSRXhpdFJldHVyblBvaW50KG9wX2dldF9ieV92YWwsIHNpemUp
CiAgICAgbWV0YWRhdGEodDUsIHQyKQogICAgIHZhbHVlUHJvZmlsZShPcEdldEJ5VmFsLCBtX3By
b2ZpbGUsIHQ1LCByMCkKLSAgICByZXR1cm4ocjApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaChyMCkKIAogZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9wcml2YXRlX25h
bWUsIE9wR2V0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdl
dFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDIsIHQwKQogCiAgICAgIyBTbG93
IHBhdGggaWYgdGhlIHByaXZhdGUgZmllbGQgaXMgc3RhbGUKQEAgLTE5MjcsMTQgKzE5MjcsMTQg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVO
YW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKICAgICBsb2FkaSBPcEdldFByaXZhdGVOYW1lOjpN
ZXRhZGF0YTo6bV9vZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZz
ZXQodDEsIHQzLCB0MCkKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRQcml2YXRlTmFtZSwgbV9wcm9m
aWxlLCB0MiwgdDApCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDApCiAKIC5vcEdldFByaXZhdGVOYW1lU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9nZXRfcHJpdmF0ZV9uYW1lKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfcHJpdmF0ZV9uYW1lLCBPcFB1dFByaXZhdGVOYW1lLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRo
TWV0YWRhdGEob3BfcHV0X3ByaXZhdGVfbmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUs
IHQzLCB0MCwgLm9wUHV0UHJpdmF0ZU5hbWVTbG93KQogICAgIGdldChtX3Byb3BlcnR5LCB0MykK
QEAgLTE5NzcsNyArMTk3Nyw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3ByaXZhdGVf
bmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzCiAgICAgZGlzcGF0
Y2goKQogZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3NldF9wcml2YXRlX2JyYW5kLCBP
cFNldFByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBy
ZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3NldF9wcml2YXRlX2JyYW5kLCBPcFNldFBy
aXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGVDZWxsKHNpemUsIHQzLCB0MCwgLm9wU2V0UHJpdmF0ZUJyYW5kU2xvdykKICAg
ICBnZXQobV9icmFuZCwgdDMpCkBAIC0xOTk5LDcgKzE5OTksNyBAQCBsbGludE9wV2l0aE1ldGFk
YXRhKG9wX3NldF9wcml2YXRlX2JyYW5kLCBPcFNldFByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUs
IGdldCwgZAogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9j
aGVja19wcml2YXRlX2JyYW5kLCBPcENoZWNrUHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hl
Y2tfcHJpdmF0ZV9icmFuZCwgT3BDaGVja1ByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFk
YXRhKHQ1LCB0MikKICAgICBnZXQobV9iYXNlLCB0MykKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlQ2VsbChzaXplLCB0MywgdDAsIC5vcENoZWNrUHJpdmF0ZUJyYW5kU2xvdykKQEAgLTIwMTks
NyArMjAxOSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0ZV9icmFuZCwg
T3BDaGVja1ByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdlCiBlbmQpCiAKIG1hY3JvIHB1dEJ5
VmFsT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvc3JFeGl0UG9pbnQpCi0gICAgbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBtYWNybyBj
b250aWd1b3VzUHV0QnlWYWwoc3RvcmVDYWxsYmFjaykKICAgICAgICAgICAgIGJpYWVxIHQzLCAt
c2l6ZW9mIEluZGV4aW5nSGVhZGVyICsgSW5kZXhpbmdIZWFkZXI6OnUubGVuZ3Rocy5wdWJsaWNM
ZW5ndGhbdDBdLCAub3V0T2ZCb3VuZHMKICAgICAgICAgLnN0b3JlUmVzdWx0OgpAQCAtMjIwNCw3
ICsyMjA0LDcgQEAgdW5kZWZpbmVkT3JOdWxsSnVtcE9wKGp1bmRlZmluZWRfb3JfbnVsbCwgT3BK
dW5kZWZpbmVkT3JOdWxsLAogdW5kZWZpbmVkT3JOdWxsSnVtcE9wKGpudW5kZWZpbmVkX29yX251
bGwsIE9wSm51bmRlZmluZWRPck51bGwsCiAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJxbmVx
IHZhbHVlLCBWYWx1ZU51bGwsIHRhcmdldCBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2pl
cV9wdHIsIE9wSmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxp
bnRPcFdpdGhEZXN0aW5hdGlvbihvcF9qZXFfcHRyLCBPcEplcVB0ciwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fdmFsdWUs
IHQwKQogICAgIGdldChtX3NwZWNpYWxQb2ludGVyLCB0MSkKICAgICBsb2FkQ29uc3RhbnQoc2l6
ZSwgdDEsIHQyKQpAQCAtMjIxNyw3ICsyMjE3LDcgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfamVx
X3B0ciwgT3BKZXFQdHIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCiBlbmQp
CiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9qbmVxX3B0ciwgT3BKbmVxUHRyLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRh
dGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3ZhbHVlLCB0MCkK
ICAgICBnZXQobV9zcGVjaWFsUG9pbnRlciwgdDEpCiAgICAgbG9hZENvbnN0YW50KHNpemUsIHQx
LCB0MikKQEAgLTIzMTEsNyArMjMxMSw3IEBAIGVuZAogCiAKIG1hY3JvIGNvbXBhcmVPcChvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJl
QW5kU2V0KQotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3Ry
dWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRo
RGVzdGluYXRpb24ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9s
aHMsIHQyKQogICAgICAgICBnZXQobV9yaHMsIHQwKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlKHNpemUsIHQwLCB0MSkKQEAgLTIzMjAsNyArMjMyMCw3IEBAIG1hY3JvIGNvbXBhcmVP
cChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0LCBkb3VibGVD
b21wYXJlQW5kCiAgICAgICAgIGJxYiB0MSwgbnVtYmVyVGFnLCAub3AyTm90SW50CiAgICAgICAg
IGludGVnZXJDb21wYXJlQW5kU2V0KHQwLCB0MSwgdDApCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNl
LCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDApCiAKICAgICAub3AxTm90SW50OgogICAgICAgICBidHF6IHQwLCBudW1iZXJUYWcsIC5z
bG93CkBAIC0yMzM4LDcgKzIzMzgsNyBAQCBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwgb3Bj
b2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZAogICAgICAg
ICBmcTJkIHQwLCBmdDAKICAgICAgICAgZG91YmxlQ29tcGFyZUFuZFNldChmdDAsIGZ0MSwgdDAp
CiAgICAgICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKICAgICAub3AyTm90SW50OgogICAgICAg
ICBjaTJkcyB0MCwgZnQwCkBAIC0yMzQ3LDcgKzIzNDcsNyBAQCBtYWNybyBjb21wYXJlT3Aob3Bj
b2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFy
ZUFuZAogICAgICAgICBmcTJkIHQxLCBmdDEKICAgICAgICAgZG91YmxlQ29tcGFyZUFuZFNldChm
dDAsIGZ0MSwgdDApCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgICAgICByZXR1cm4o
dDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKICAgICAuc2xvdzoK
ICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpAQCAtMjM1Nywx
NCArMjM1NywxNCBAQCBlbmQKIAogCiBtYWNybyBjb21wYXJlVW5zaWduZWRPcChvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0KQotICAgIGxsaW50T3BXaXRoUmV0
dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29kZU5hbWUl
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBnZXQobV9yaHMs
ICB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDEpCiAgICAg
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQwKQogICAgICAgICBpbnRlZ2Vy
Q29tcGFyZUFuZFNldCh0MCwgdDEsIHQwKQogICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAg
ICAgICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQog
ICAgIGVuZCkKIGVuZAogCkBAIC0yNDc2LDcgKzI0NzYsNyBAQCBtYWNybyBjYWxsSGVscGVyKG9w
Y29kZU5hbWUsIHNsb3dQYXRoLCBvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIGRzdFZp
cnR1YQogCiAgICAgbG9hZHAgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjptX2NhbGxMaW5rSW5m
by5tX2NhbGxlZU9yQ29kZUJsb2NrW3Q1XSwgdDEKICAgICBidHB6IHQxLCAoY29uc3RleHByIENh
bGxMaW5rSW5mbzo6cG9seW1vcnBoaWNDYWxsZWVNYXNrKSwgLm5vdFBvbHltb3JwaGljCi0gICAg
IyBwcmVwYXJlQ2FsbCBpbiBMTEludCBkb2VzIG5vdCB1bnRhZyByZXR1cm4gYWRkcmVzcy4gU28g
d2UgbmVlZCB0byB1bnRhZyB0aGF0IGluIHRoZSB0cmFtcG9saW5lIHNlcGFyYXRlbHkuCisgICAg
IyBwcmVwYXJlQ2FsbCBpbiBMTEludCBkb2VzIG5vdCB1bnRhZyBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoIGFkZHJlc3MuIFNvIHdlIG5lZWQgdG8gdW50YWcgdGhhdCBpbiB0aGUgdHJhbXBvbGlu
ZSBzZXBhcmF0ZWx5LgogICAgICMgQnV0IHdlIHNob3VsZCBub3QgdW50YWcgdGhhdCBmb3IgcG9s
eW1vcnBoaWMgY2FsbCBjYXNlIHNpbmNlIGl0IHNob3VsZCBiZSBkb25lIGluIHRoZSBwb2x5bW9y
cGhpYyB0aHVuayBzaWRlLgogICAgIHByZXBhcmVQb2x5bW9ycGhpYyhvcGNvZGVOYW1lLCBzaXpl
LCBvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIGRzdFZpcnR1YWxSZWdpc3RlciwgZGlz
cGF0Y2gsIEpTRW50cnlQdHJUYWcpCiAgICAgam1wIC5nb1BvbHltb3JwaGljCkBAIC0yNTAyLDcg
KzI1MDIsNyBAQCBtYWNybyBjYWxsSGVscGVyKG9wY29kZU5hbWUsIHNsb3dQYXRoLCBvcGNvZGVT
dHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIGRzdFZpcnR1YQogZW5kCiAKIG1hY3JvIGNvbW1vbkNh
bGxPcChvcGNvZGVOYW1lLCBzbG93UGF0aCwgb3Bjb2RlU3RydWN0LCBwcmVwYXJlQ2FsbCwgaW52
b2tlQ2FsbCwgcHJlcGFyZVBvbHltb3JwaGljLCBwcmVwYXJlU2xvd0NhbGwsIHByb2xvZ3VlKQot
ICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1l
dGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBtZXRhZGF0
YSh0NSwgdDApCiAKICAgICAgICAgcHJvbG9ndWUobWFjcm8gKGZpZWxkTmFtZSwgZHN0KQpAQCAt
MjU1NCw3ICsyNTU0LDcgQEAgbWFjcm8gZG9DYWxsVmFyYXJncyhvcGNvZGVOYW1lLCBzaXplLCBn
ZXQsIG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgZHN0VmkKIAogICAgICAgICAgICAg
bG9hZHAgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjptX2NhbGxMaW5rSW5mby5tX2NhbGxlZU9y
Q29kZUJsb2NrW3Q1XSwgdDEKICAgICAgICAgICAgIGJ0cHogdDEsIChjb25zdGV4cHIgQ2FsbExp
bmtJbmZvOjpwb2x5bW9ycGhpY0NhbGxlZU1hc2spLCAubm90UG9seW1vcnBoaWMKLSAgICAgICAg
ICAgICMgcHJlcGFyZUNhbGwgaW4gTExJbnQgZG9lcyBub3QgdW50YWcgcmV0dXJuIGFkZHJlc3Mu
IFNvIHdlIG5lZWQgdG8gdW50YWcgdGhhdCBpbiB0aGUgdHJhbXBvbGluZSBzZXBhcmF0ZWx5Lgor
ICAgICAgICAgICAgIyBwcmVwYXJlQ2FsbCBpbiBMTEludCBkb2VzIG5vdCB1bnRhZyBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoIGFkZHJlc3MuIFNvIHdlIG5lZWQgdG8gdW50YWcgdGhhdCBpbiB0
aGUgdHJhbXBvbGluZSBzZXBhcmF0ZWx5LgogICAgICAgICAgICAgIyBCdXQgd2Ugc2hvdWxkIG5v
dCB1bnRhZyB0aGF0IGZvciBwb2x5bW9ycGhpYyBjYWxsIGNhc2Ugc2luY2UgaXQgc2hvdWxkIGJl
IGRvbmUgaW4gdGhlIHBvbHltb3JwaGljIHRodW5rIHNpZGUuCiAgICAgICAgICAgICBwcmVwYXJl
UG9seW1vcnBoaWMob3Bjb2RlTmFtZSwgc2l6ZSwgb3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVO
YW1lLCBkc3RWaXJ0dWFsUmVnaXN0ZXIsIGRpc3BhdGNoLCBKU0VudHJ5UHRyVGFnKQogICAgICAg
ICAgICAgam1wIC5nb1BvbHltb3JwaGljCkBAIC0yNTkwLDEzICsyNTkwLDEzIEBAIGxsaW50T3Ao
b3BfcmV0LCBPcFJldCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCiBlbmQpCiAKIAotbGxp
bnRPcFdpdGhSZXR1cm4ob3BfdG9fcHJpbWl0aXZlLCBPcFRvUHJpbWl0aXZlLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90b19w
cmltaXRpdmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDIpCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDApCiAgICAgYnRxbnogdDAsIG5vdENlbGxNYXNrLCAu
b3BUb1ByaW1pdGl2ZUlzSW1tCiAgICAgYmJhZXEgSlNDZWxsOjptX3R5cGVbdDBdLCBPYmplY3RU
eXBlLCAub3BUb1ByaW1pdGl2ZVNsb3dDYXNlCiAub3BUb1ByaW1pdGl2ZUlzSW1tOgotICAgIHJl
dHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BUb1ByaW1p
dGl2ZVNsb3dDYXNlOgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX3ByaW1pdGl2ZSkK
QEAgLTI2MDQsNyArMjYwNCw3IEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3ByaW1pdGl2ZSwg
T3BUb1ByaW1pdGl2ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJlCiBlbmQpCiAKIAot
bGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9fcHJvcGVydHlfa2V5LCBPcFRvUHJvcGVydHlLZXksIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9u
KG9wX3RvX3Byb3BlcnR5X2tleSwgT3BUb1Byb3BlcnR5S2V5LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9zcmMsIHQyKQog
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQwKQogCkBAIC0yNjEzLDcgKzI2
MTMsNyBAQCBsbGludE9wV2l0aFJldHVybihvcF90b19wcm9wZXJ0eV9rZXksIE9wVG9Qcm9wZXJ0
eUtleSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0YwogICAgIGJibmVxIEpTQ2VsbDo6bV90eXBl
W3QwXSwgU3RyaW5nVHlwZSwgLm9wVG9Qcm9wZXJ0eUtleVNsb3cKIAogLmRvbmU6Ci0gICAgcmV0
dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcFRvUHJvcGVy
dHlLZXlTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX3Byb3BlcnR5X2tleSkK
QEAgLTI2MjMsNyArMjYyMyw3IEBAIGVuZCkKIAogY29tbW9uT3AobGxpbnRfb3BfY2F0Y2gsIG1h
Y3JvICgpIGVuZCwgbWFjcm8gKHNpemUpCiAgICAgIyBUaGlzIGlzIHdoZXJlIHdlIGVuZCB1cCBm
cm9tIHRoZSBKSVQncyB0aHJvdyB0cmFtcG9saW5lIChiZWNhdXNlIHRoZQotICAgICMgbWFjaGlu
ZSBjb2RlIHJldHVybiBhZGRyZXNzIHdpbGwgYmUgc2V0IHRvIF9sbGludF9vcF9jYXRjaCksIGFu
ZCBmcm9tCisgICAgIyBtYWNoaW5lIGNvZGUgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCBhZGRy
ZXNzIHdpbGwgYmUgc2V0IHRvIF9sbGludF9vcF9jYXRjaCksIGFuZCBmcm9tCiAgICAgIyB0aGUg
aW50ZXJwcmV0ZXIncyB0aHJvdyB0cmFtcG9saW5lIChzZWUgX2xsaW50X3Rocm93X3RyYW1wb2xp
bmUpLgogICAgICMgVGhlIHRocm93aW5nIGNvZGUgbXVzdCBoYXZlIGtub3duIHRoYXQgd2Ugd2Vy
ZSB0aHJvd2luZyB0byB0aGUgaW50ZXJwcmV0ZXIsCiAgICAgIyBhbmQgaGF2ZSBzZXQgVk06OnRh
cmdldEludGVycHJldGVyUENGb3JUaHJvdy4KQEAgLTI3ODUsMTYgKzI3ODUsMTYgQEAgbWFjcm8g
dmFySW5qZWN0aW9uQ2hlY2soc2xvd1BhdGgsIHNjcmF0Y2gpCiAgICAgYmJlcSBXYXRjaHBvaW50
U2V0OjptX3N0YXRlW3NjcmF0Y2hdLCBJc0ludmFsaWRhdGVkLCBzbG93UGF0aAogZW5kCiAKLWxs
aW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRh
ZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFk
YXRhKHQ1LCB0MCkKIAogICAgIG1hY3JvIGdldENvbnN0YW50U2NvcGUoZHN0KQogICAgICAgICBs
b2FkcCBPcFJlc29sdmVTY29wZTo6TWV0YWRhdGE6Om1fY29uc3RhbnRTY29wZVt0NV0sIGRzdAog
ICAgIGVuZAogCi0gICAgbWFjcm8gcmV0dXJuQ29uc3RhbnRTY29wZSgpCisgICAgbWFjcm8gc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaENvbnN0YW50U2NvcGUoKQogICAgICAgICBnZXRDb25zdGFu
dFNjb3BlKHQwKQotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDApCiAgICAgZW5kCiAKICAgICBtYWNybyBnbG9iYWxMZXhpY2FsQmluZGluZ0Vw
b2NoQ2hlY2soc2xvd1BhdGgsIGdsb2JhbE9iamVjdCwgc2NyYXRjaCkKQEAgLTI4MTQsNyArMjgx
NCw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2Nv
cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAgICAgIGJ0aW56IHQyLCAucmVzb2x2
ZVNjb3BlTG9vcAogCiAgICAgLnJlc29sdmVTY29wZUxvb3BFbmQ6Ci0gICAgICAgIHJldHVybih0
MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKICAgICBlbmQKIAogICAg
IGxvYWRpIE9wUmVzb2x2ZVNjb3BlOjpNZXRhZGF0YTo6bV9yZXNvbHZlVHlwZVt0NV0sIHQwCkBA
IC0yODIzLDE1ICsyODIzLDE1IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29w
ZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAgYmluZXEg
dDAsIEdsb2JhbFByb3BlcnR5LCAuckdsb2JhbFZhcgogICAgIGdldENvbnN0YW50U2NvcGUodDAp
CiAgICAgZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKC5yRHluYW1pYywgdDAsIHQyKQot
ICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAuckds
b2JhbFZhcjoKICAgICBiaW5lcSB0MCwgR2xvYmFsVmFyLCAuckdsb2JhbExleGljYWxWYXIKLSAg
ICByZXR1cm5Db25zdGFudFNjb3BlKCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoQ29u
c3RhbnRTY29wZSgpCiAKIC5yR2xvYmFsTGV4aWNhbFZhcjoKICAgICBiaW5lcSB0MCwgR2xvYmFs
TGV4aWNhbFZhciwgLnJDbG9zdXJlVmFyCi0gICAgcmV0dXJuQ29uc3RhbnRTY29wZSgpCisgICAg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaENvbnN0YW50U2NvcGUoKQogCiAuckNsb3N1cmVWYXI6
CiAgICAgYmluZXEgdDAsIENsb3N1cmVWYXIsIC5yTW9kdWxlVmFyCkBAIC0yODM5LDI0ICsyODM5
LDI0IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2Nv
cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAKIC5yTW9kdWxlVmFyOgogICAgIGJpbmVx
IHQwLCBNb2R1bGVWYXIsIC5yR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzCi0g
ICAgcmV0dXJuQ29uc3RhbnRTY29wZSgpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaENv
bnN0YW50U2NvcGUoKQogCiAuckdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrczoK
ICAgICBiaW5lcSB0MCwgR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAuckds
b2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MKICAgICB2YXJJbmplY3Rpb25DaGVjayguckR5
bmFtaWMsIHQyKQogICAgIGdldENvbnN0YW50U2NvcGUodDApCiAgICAgZ2xvYmFsTGV4aWNhbEJp
bmRpbmdFcG9jaENoZWNrKC5yRHluYW1pYywgdDAsIHQyKQotICAgIHJldHVybih0MCkKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAuckdsb2JhbFZhcldpdGhWYXJJbmplY3Rp
b25DaGVja3M6CiAgICAgYmluZXEgdDAsIEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3Ms
IC5yR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MKICAgICB2YXJJbmplY3Rp
b25DaGVjayguckR5bmFtaWMsIHQyKQotICAgIHJldHVybkNvbnN0YW50U2NvcGUoKQorICAgIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2hDb25zdGFudFNjb3BlKCkKIAogLnJHbG9iYWxMZXhpY2Fs
VmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICBiaW5lcSB0MCwgR2xvYmFsTGV4aWNhbFZh
cldpdGhWYXJJbmplY3Rpb25DaGVja3MsIC5yQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVj
a3MKICAgICB2YXJJbmplY3Rpb25DaGVjayguckR5bmFtaWMsIHQyKQotICAgIHJldHVybkNvbnN0
YW50U2NvcGUoKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2hDb25zdGFudFNjb3BlKCkK
IAogLnJDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICBiaW5lcSB0MCwgQ2xv
c3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MsIC5yRHluYW1pYwpAQCAtMjg3NywxNCArMjg3
NywxNCBAQCBtYWNybyBsb2FkV2l0aFN0cnVjdHVyZUNoZWNrKG9wY29kZVN0cnVjdCwgZ2V0LCBz
bG93UGF0aCkKICAgICBicG5lcSB0MiwgdDEsIHNsb3dQYXRoCiBlbmQKIAotbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9nZXRfZnJvbV9zY29wZSwgT3BHZXRGcm9tU2NvcGUsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9n
ZXRfZnJvbV9zY29wZSwgT3BHZXRGcm9tU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwg
dDApCiAKICAgICBtYWNybyBnZXRQcm9wZXJ0eSgpCiAgICAgICAgIGxvYWRwIE9wR2V0RnJvbVNj
b3BlOjpNZXRhZGF0YTo6bV9vcGVyYW5kW3Q1XSwgdDEKICAgICAgICAgbG9hZFByb3BlcnR5QXRW
YXJpYWJsZU9mZnNldCh0MSwgdDAsIHQyKQogICAgICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRGcm9t
U2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQyKQotICAgICAgICByZXR1cm4odDIpCisgICAgICAgIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIpCiAgICAgZW5kCiAKICAgICBtYWNybyBnZXRHbG9i
YWxWYXIodGR6Q2hlY2tJZk5lY2Vzc2FyeSkKQEAgLTI4OTIsMTQgKzI4OTIsMTQgQEAgbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9nZXRfZnJvbV9zY29wZSwgT3BHZXRGcm9tU2NvcGUsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGMKICAgICAgICAgbG9hZHEgW3QwXSwgdDAKICAgICAgICAgdGR6Q2hl
Y2tJZk5lY2Vzc2FyeSh0MCkKICAgICAgICAgdmFsdWVQcm9maWxlKE9wR2V0RnJvbVNjb3BlLCBt
X3Byb2ZpbGUsIHQ1LCB0MCkKLSAgICAgICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQwKQogICAgIGVuZAogCiAgICAgbWFjcm8gZ2V0Q2xvc3VyZVZhcigp
CiAgICAgICAgIGxvYWRwIE9wR2V0RnJvbVNjb3BlOjpNZXRhZGF0YTo6bV9vcGVyYW5kW3Q1XSwg
dDEKICAgICAgICAgbG9hZHEgSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzW3QwLCB0MSwg
OF0sIHQwCiAgICAgICAgIHZhbHVlUHJvZmlsZShPcEdldEZyb21TY29wZSwgbV9wcm9maWxlLCB0
NSwgdDApCi0gICAgICAgIHJldHVybih0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MCkKICAgICBlbmQKIAogICAgIGxvYWRpIE9wR2V0RnJvbVNjb3BlOjpNZXRhZGF0YTo6
bV9nZXRQdXRJbmZvICsgR2V0UHV0SW5mbzo6bV9vcGVyYW5kW3Q1XSwgdDAKQEAgLTI5NTYsNyAr
Mjk1Niw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9wR2V0RnJv
bVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29wZSwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3B1dF90
b19zY29wZSwgT3BQdXRUb1Njb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWFjcm8gcHV0UHJvcGVydHkoKQog
ICAgICAgICBnZXQobV92YWx1ZSwgdDEpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
c2l6ZSwgdDEsIHQyKQpAQCAtMzA4NywxMSArMzA4NywxMSBAQCBsbGludE9wV2l0aE1ldGFkYXRh
KG9wX3B1dF90b19zY29wZSwgT3BQdXRUb1Njb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbQogZW5kKQogCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfZnJvbV9hcmd1bWVudHMs
IE9wR2V0RnJvbUFyZ3VtZW50cywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikK
K2xsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfZnJvbV9hcmd1bWVudHMsIE9wR2V0RnJvbUFyZ3Vt
ZW50cywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9hcmd1bWVudHMsIHQwKQogICAgIGdldHUoc2l6
ZSwgT3BHZXRGcm9tQXJndW1lbnRzLCBtX2luZGV4LCB0MSkKICAgICBsb2FkcSBEaXJlY3RBcmd1
bWVudHNfc3RvcmFnZVt0MCwgdDEsIDhdLCB0MAotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKQEAgLTMxMDYsMTQgKzMxMDYsMTQgQEAg
bGxpbnRPcChvcF9wdXRfdG9fYXJndW1lbnRzLCBPcFB1dFRvQXJndW1lbnRzLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9nZXRfcGFy
ZW50X3Njb3BlLCBPcEdldFBhcmVudFNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
cmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfcGFyZW50X3Njb3BlLCBPcEdl
dFBhcmVudFNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX3Njb3BlLCB0MCkKICAgICBsb2Fk
cCBKU1Njb3BlOjptX25leHRbdDBdLCB0MAotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJv
ZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFBy
b2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCiAgICAgbG9h
ZHAgQ29kZUJsb2NrOjptX3ZtW3QxXSwgdDEKICAgICAjIHQxIGlzIGhvbGRpbmcgdGhlIHBvaW50
ZXIgdG8gdGhlIHR5cGVQcm9maWxlckxvZy4KQEAgLTMxNTUsMTQgKzMxNTUsMTQgQEAgbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9wcm9maWxlX3R5cGUsIE9wUHJvZmlsZVR5cGUsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLAogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmls
ZV9jb250cm9sX2Zsb3csIE9wUHJvZmlsZUNvbnRyb2xGbG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmls
ZV9jb250cm9sX2Zsb3csIE9wUHJvZmlsZUNvbnRyb2xGbG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRh
dGEodDUsIHQwKQogICAgIGxvYWRwIE9wUHJvZmlsZUNvbnRyb2xGbG93OjpNZXRhZGF0YTo6bV9i
YXNpY0Jsb2NrTG9jYXRpb25bdDVdLCB0MAogICAgIGFkZHEgMSwgQmFzaWNCbG9ja0xvY2F0aW9u
OjptX2V4ZWN1dGlvbkNvdW50W3QwXQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdp
dGhSZXR1cm4ob3BfZ2V0X3Jlc3RfbGVuZ3RoLCBPcEdldFJlc3RMZW5ndGgsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2dldF9y
ZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwgdDAKICAgICBzdWJpIDEsIHQwCiAgICAgZ2V0
dShzaXplLCBPcEdldFJlc3RMZW5ndGgsIG1fbnVtUGFyYW1ldGVyc1RvU2tpcCwgdDEpCkBAIC0z
MTczLDExICszMTczLDExIEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX2dldF9yZXN0X2xlbmd0aCwg
T3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgbW92ZSAwLCB0
MAogLmJveFVwOgogICAgIG9ycSBudW1iZXJUYWcsIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9pdGVyYXRvcl9vcGVuLCBPcEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9y
X29wZW4sIE9wSXRlcmF0b3JPcGVuLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWFjcm8gZmFzdE5hcnJvdygpCiAg
ICAgICAgIGNhbGxTbG93UGF0aChfaXRlcmF0b3Jfb3Blbl90cnlfZmFzdF9uYXJyb3cpCiAgICAg
ZW5kCkBAIC0zMjMxLDcgKzMyMzEsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9y
X29wZW4sIE9wSXRlcmF0b3JPcGVuLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAogCiBlbmQp
CiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4dCwgT3BJdGVyYXRvck5leHQs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdp
dGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogCiAg
ICAgbG9hZFZhcmlhYmxlKGdldCwgbV9uZXh0LCB0MCkKICAgICBidHFueiB0MCwgdDAsIC5pdGVy
YXRvck5leHRHZW5lcmljCkBAIC0zMzE1LDcgKzMzMTUsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRh
KG9wX2l0ZXJhdG9yX25leHQsIE9wSXRlcmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaAogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3By
b3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0UHJvcGVydHlFbnVtZXJhdG9yLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfcHJv
cGVydHlfZW51bWVyYXRvciwgT3BHZXRQcm9wZXJ0eUVudW1lcmF0b3IsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX2Jhc2Us
IHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwgLnNsb3dQ
YXRoKQogCkBAIC0zMzMyLDcgKzMzMzIsNyBAQCBsbGludE9wV2l0aFJldHVybihvcF9nZXRfcHJv
cGVydHlfZW51bWVyYXRvciwgT3BHZXRQcm9wZXJ0eUVudW1lcmF0b3IsIG1hY3JvIChzaQogICAg
IGJ0cHogdDEsIC5zbG93UGF0aAogICAgIGJ0cG56IHQxLCAoY29uc3RleHByIFN0cnVjdHVyZVJh
cmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFUcmF2ZXJz
aW5nRmxhZyksIC5zbG93UGF0aAogCi0gICAgcmV0dXJuKHQxKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2godDEpCiAKIC5zbG93UGF0aDoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0
aF9nZXRfcHJvcGVydHlfZW51bWVyYXRvcikKQEAgLTMzNzAsNyArMzM3MCw3IEBAIGxsaW50T3Ao
b3BfZW51bWVyYXRvcl9uZXh0LCBPcEVudW1lcmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
ZW51bWVyYXRvcl9nZXRfYnlfdmFsLCBPcEVudW1lcmF0b3JHZXRCeVZhbCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9w
X2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCwgT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAg
ICBtZXRhZGF0YSh0NSwgdDApCiAKICAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX21vZGUsIHQwKQpA
QCAtMzQwNiwxNCArMzQwNiwxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3Jf
Z2V0X2J5X3ZhbCwgT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1hY3JvIChzaXplLAogCiAuZG9uZToK
ICAgICB2YWx1ZVByb2ZpbGUoT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1fcHJvZmlsZSwgdDUsIHQy
KQotICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAu
Z2V0U2xvd1BhdGg6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfZW51bWVyYXRvcl9nZXRf
YnlfdmFsKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbWFjcm8gaGFzUHJvcGVydHlJbXBsKG9w
Y29kZVN0cnVjdCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybiwgc2xvd1Bh
dGgpCittYWNybyBoYXNQcm9wZXJ0eUltcGwob3Bjb2RlU3RydWN0LCBzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCwgc2xvd1BhdGgpCiAgICAg
bWV0YWRhdGEodDUsIHQwKQogCiAgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9tb2RlLCB0MCkKQEAg
LTM0MzIsMjYgKzM0MzIsMjYgQEAgbWFjcm8gaGFzUHJvcGVydHlJbXBsKG9wY29kZVN0cnVjdCwg
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybiwgc2xvd1AKICAgICBiaW5lcSB0
MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QwXSwgLmNhbGxTbG93UGF0aAogCiAgICAgbW92ZSBW
YWx1ZVRydWUsIHQyCi0gICAgcmV0dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDIpCiAKIC5jYWxsU2xvd1BhdGg6CiAgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRoKQogICAg
IGRpc3BhdGNoKCkKIGVuZAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfaW5f
YnlfdmFsLCBPcEVudW1lcmF0b3JJbkJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybikKLSAgICBoYXNQcm9wZXJ0eUltcGwoT3BFbnVtZXJhdG9ySW5CeVZh
bCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybiwgX3Nsb3dfcGF0aF9lbnVt
ZXJhdG9yX2luX2J5X3ZhbCkKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9pbl9i
eV92YWwsIE9wRW51bWVyYXRvckluQnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKKyAgICBoYXNQcm9wZXJ0eUltcGwo
T3BFbnVtZXJhdG9ySW5CeVZhbCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2gsIF9zbG93X3BhdGhfZW51bWVyYXRvcl9pbl9ieV92YWwpCiBl
bmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5
LCBPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IG1ldGFkYXRhLCByZXR1cm4pCi0gICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckhhc093
blByb3BlcnR5LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuLCBfc2xvd19w
YXRoX2VudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSkKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bf
ZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5LCBPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKQorICAgIGhhc1Byb3BlcnR5SW1wbChPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwg
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gs
IF9zbG93X3BhdGhfZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5KQogZW5kKQogCi1sbGludE9w
V2l0aFByb2ZpbGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdldEludGVybmFsRmllbGQsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3Bf
Z2V0X2ludGVybmFsX2ZpZWxkLCBPcEdldEludGVybmFsRmllbGQsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGxvYWRWYXJpYWJsZShn
ZXQsIG1fYmFzZSwgdDEpCiAgICAgZ2V0dShzaXplLCBPcEdldEludGVybmFsRmllbGQsIG1faW5k
ZXgsIHQyKQogICAgIGxvYWRxIEpTSW50ZXJuYWxGaWVsZE9iamVjdEltcGxfaW50ZXJuYWxGaWVs
ZHNbdDEsIHQyLCBTbG90U2l6ZV0sIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIGxsaW50T3Aob3BfcHV0X2ludGVybmFsX2ZpZWxk
LCBPcFB1dEludGVybmFsRmllbGQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQo=
</data>
<flag name="commit-queue"
          id="481760"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454162</attachid>
            <date>2022-03-08 15:37:18 -0800</date>
            <delta_ts>2022-03-08 15:47:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237624-20220308183716.patch</filename>
            <type>text/plain</type>
            <size>86468</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NTVjOGY5NWIwZWM2MmJjYTExYTE2NmEyYWJkNWVmYTM2N2QxOGI1Li4wYWQ4YmU5MGEwMWI5YTFi
M2IwODQ3NjgzNzQxYzc0YThlNTM1ODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW5hbWUgTExJbnQgbWFjcm9zIHVzaW5nIHJldHVybiB0byBkZXN0
aW5hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3NjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpcyBqdXN0IGEgcmVmYWN0b3IvcmVuYW1lIHBhdGNoLCBubyBiZWhhdmlvcmFs
CisgICAgICAgIGNoYW5nZS4gSSBmaW5kIGl0IGNvbmZ1c2luZyB0aGF0IHRoZSBMTEludCBoYXMg
bWFjcm8gcGFyYW1ldGVycworICAgICAgICBuYW1lZCBgcmV0dXJuYCBidXQgY2xlYXJseSBzaG91
bGRuJ3QgZG8gYSBmdW5jdGlvbiByZXR1cm4KKyAgICAgICAgKGUuZy4gZ2V0X2J5X2lkKS4gIFRo
aXMgcGF0Y2ggcmVuYW1lcyB0aG9zZSBwYXJlbWV0ZXJzIHRvCisgICAgICAgICJzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoIiB0byBiZXR0ZXIgZGVzY3JpYmUgd2hhdCdzIGdvaW5nCisgICAgICAg
IG9uLiBBZGRpdGlvbmFsbHksIHRoZSBgbGxpbnRPcFdpdGhSZXR1cm5gIGhhcyBiZWVuIHJlbmFt
ZWQgdG8KKyAgICAgICAgYGxsaW50T3BXaXRoRGVzdGluYXRpb25gIGZvciBmdXJ0aGVyIGNsYXJp
dHkuCisKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisKIDIwMjItMDMtMDggIFNhYW0gQmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRW5hYmxlIFRoaW5MVE8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRl
eCBhOGU3YzczOTlkNTgxYTU5NjBkMGFhN2FhNzI0MzM1ZGIwMzU0Yzc1Li4wMmJiNjhmYjY3Njcx
ZjA4ZWUwNGVmODJlY2UyODBhOGU2YmMyY2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC00OTcsMjUgKzQ5NywyNSBA
QCBtYWNybyBsbGludE9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgZW5kKQog
ZW5kCiAKLW1hY3JvIGxsaW50T3BXaXRoUmV0dXJuKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwg
Zm4pCittYWNybyBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wY29kZU5hbWUsIG9wY29kZVN0cnVj
dCwgZm4pCiAgICAgbGxpbnRPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvKHNpemUs
IGdldCwgZGlzcGF0Y2gpCi0gICAgICAgIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgbWFjcm8g
KHJldHVybikKLSAgICAgICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAg
ICAgICAgbWFrZURlc3RpbmF0aW9uKGdldCwgZGlzcGF0Y2gsIG1hY3JvIChzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQorICAgICAgICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZW5kKQogICAgIGVuZCkKIGVuZAogCiBtYWNy
byBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCi0gICAg
bGxpbnRPcFdpdGhSZXR1cm4ob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWFjcm8gbWV0YShkc3QsIHNjcmF0Y2gpCiAgICAg
ICAgICAgICBtZXRhZGF0YShzaXplLCBvcGNvZGVTdHJ1Y3QsIGRzdCwgc2NyYXRjaCkKICAgICAg
ICAgZW5kCi0gICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGEsIHJldHVybikKKyAg
ICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBlbmQpCiBlbmQKIAogbWFjcm8gbGxpbnRPcFdpdGhKdW1wKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgaW1wbCkKLSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgbWFjcm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVy
bikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFj
cm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgICAgIG1hY3JvIGp1bXAoZmllbGROYW1lKQogICAgICAgICAgICAgZ2V0KGZpZWxk
TmFtZSwgdDApCiAgICAgICAgICAgICBqdW1wSW1wbChkaXNwYXRjaEluZGlyZWN0LCB0MCkKQEAg
LTUyNyw3ICs1MjcsNyBAQCBlbmQKIAogbWFjcm8gbGxpbnRPcFdpdGhQcm9maWxlKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCi0gICAgICAgIG1ha2VSZXR1cm5Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwgbWV0YWRh
dGEsIGRpc3BhdGNoLCBtYWNybyAocmV0dXJuUHJvZmlsZWQpCisgICAgICAgIG1ha2VEZXN0aW5h
dGlvblByb2ZpbGVkKG9wY29kZVN0cnVjdCwgZ2V0LCBtZXRhZGF0YSwgZGlzcGF0Y2gsIG1hY3Jv
IChyZXR1cm5Qcm9maWxlZCkKICAgICAgICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJl
dHVyblByb2ZpbGVkKQogICAgICAgICBlbmQpCiAgICAgZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRl
eCBhY2U4NzExNjcyZTcwMjE2ZDM5YTQ4ZGYxNWZkNjZkNmI1N2M0MTFlLi43ODFiZWY0Nzc4MjI1
NmZkMDM2ZTBhY2EyZjVhMTM2ODZhMGM5ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtNTAsNyAr
NTAsNyBAQCBtYWNybyBnZXRPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUs
IGRzdCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2lu
ZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKLW1h
Y3JvIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb24o
Z2V0LCBkaXNwYXRjaCwgZm4pCiAgICAgZm4obWFjcm8odGFnLCBwYXlsb2FkKQogICAgICAgICBt
b3ZlIHRhZywgdDUKICAgICAgICAgbW92ZSBwYXlsb2FkLCB0MwpAQCAtNjEsNyArNjEsNyBAQCBt
YWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gsIGZuKQogICAgIGVuZCkKIGVuZAogCi1tYWNy
byBtYWtlUmV0dXJuUHJvZmlsZWQob3Bjb2RlU3RydWN0LCBnZXQsIG1ldGFkYXRhLCBkaXNwYXRj
aCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb25Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwg
bWV0YWRhdGEsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyAodGFnLCBwYXlsb2FkKQogICAg
ICAgICBtb3ZlIHRhZywgdDEKICAgICAgICAgbW92ZSBwYXlsb2FkLCB0MApAQCAtODE2LDM0ICs4
MTYsMzQgQEAgX2xsaW50X29wX2VudGVyOgogICAgIGRpc3BhdGNoT3AobmFycm93LCBvcF9lbnRl
cikKIAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2FyZ3VtZW50LCBPcEdldEFyZ3VtZW50
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxl
KG9wX2dldF9hcmd1bWVudCwgT3BHZXRBcmd1bWVudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1faW5kZXgsIHQyKQogICAg
IGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1tjZnJdLCB0
MAogICAgIGJpbHRlcSB0MCwgdDIsIC5vcEdldEFyZ3VtZW50T3V0T2ZCb3VuZHMKICAgICBsb2Fk
aSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCiAgICAgbG9h
ZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XSwgdDMKLSAg
ICByZXR1cm4gKHQwLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwLCB0MykK
IAogLm9wR2V0QXJndW1lbnRPdXRPZkJvdW5kczoKLSAgICByZXR1cm4gKFVuZGVmaW5lZFRhZywg
MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKFVuZGVmaW5lZFRhZywgMCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5h
dGlvbihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkaSBQYXlsb2Fk
T2Zmc2V0ICsgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwgdDAKICAgICBzdWJpIDEs
IHQwCi0gICAgcmV0dXJuKEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKEludDMyVGFnLCB0MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9nZXRfc2Nv
cGUsIE9wR2V0U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGlu
dE9wV2l0aERlc3RpbmF0aW9uKG9wX2dldF9zY29wZSwgT3BHZXRTY29wZSwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZGkgQ2Fs
bGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MAogICAgIGxvYWRwIEpTQ2FsbGVlOjptX3Njb3Bl
W3QwXSwgdDAKLSAgICByZXR1cm4gKENlbGxUYWcsIHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2goQ2VsbFRhZywgdDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90
b190aGlzLCBPcFRvVGhpcywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBy
ZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RvX3RoaXMsIE9wVG9UaGlzLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gp
CiAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICBiaW5lcSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0s
IENlbGxUYWcsIC5vcFRvVGhpc1Nsb3cKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAs
IDhdLCB0MApAQCAtODcwLDE5ICs4NzAsMTkgQEAgbGxpbnRPcChvcF9jaGVja190ZHosIE9wQ2hl
Y2tUZHosIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQogZW5kKQogCiAKLWxsaW50T3BXaXRo
UmV0dXJuKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDEp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDIsIHQzKQotICAgIHJldHVy
bih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MiwgdDMpCiBlbmQpCiAK
IAotbGxpbnRPcFdpdGhSZXR1cm4ob3Bfbm90LCBPcE5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bfbm90LCBPcE5vdCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
Z2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwg
dDIsIHQzKQogICAgIGJpbmVxIHQyLCBCb29sZWFuVGFnLCAub3BOb3RTbG93CiAgICAgeG9yaSAx
LCB0MwotICAgIHJldHVybih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MiwgdDMpCiAKIC5vcE5vdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfbm90KQpA
QCAtODkxLDcgKzg5MSw3IEBAIGVuZCkKIAogCiBtYWNybyBlcXVhbGl0eUNvbXBhcmlzb25PcChv
cGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJpc29uKQotICAgIGxsaW50T3BX
aXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29k
ZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQyKQogICAgICAgICBnZXQo
bV9saHMsIHQwKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0Mywg
dDEpCkBAIC05MDAsNyArOTAwLDcgQEAgbWFjcm8gZXF1YWxpdHlDb21wYXJpc29uT3Aob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyaXNvbikKICAgICAgICAgYmllcSB0Miwg
Q2VsbFRhZywgLm9wRXFTbG93CiAgICAgICAgIGJpYiB0MiwgTG93ZXN0VGFnLCAub3BFcVNsb3cK
ICAgICAgICAgaW50ZWdlckNvbXBhcmlzb24odDAsIHQxLCB0MCkKLSAgICAgICAgcmV0dXJuKEJv
b2xlYW5UYWcsIHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5U
YWcsIHQwKQogCiAgICAgLm9wRXFTbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0
aF8lb3Bjb2RlTmFtZSUpCkBAIC05MzIsNyArOTMyLDcgQEAgZW5kCiAKIAogbWFjcm8gZXF1YWxO
dWxsQ29tcGFyaXNvbk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCi0gICAgbGxpbnRP
cFdpdGhSZXR1cm4ob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgICAgIGFzc2VydE5v
dENvbnN0YW50KHNpemUsIHQwKQogICAgICAgICBsb2FkaSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0s
IHQxCkBAIC05NTMsNyArOTUzLDcgQEAgbWFjcm8gZXF1YWxOdWxsQ29tcGFyaXNvbk9wKG9wY29k
ZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgICAgIG9yaSB0MiwgdDEKICAgICAub3BFcU51
bGxOb3RJbW1lZGlhdGU6CiAgICAgICAgIGZuKHQxKQotICAgICAgICByZXR1cm4oQm9vbGVhblRh
ZywgdDEpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDEp
CiAgICAgZW5kKQogZW5kCiAKQEAgLTk2MywxNyArOTYzLDE3IEBAIGVxdWFsTnVsbENvbXBhcmlz
b25PcChvcF9uZXFfbnVsbCwgT3BOZXFOdWxsLAogICAgIG1hY3JvICh2YWx1ZSkgeG9yaSAxLCB2
YWx1ZSBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfdW5kZWZpbmVkX29yX251bGws
IE9wSXNVbmRlZmluZWRPck51bGwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX3VuZGVmaW5lZF9vcl9udWxsLCBPcElzVW5k
ZWZpbmVkT3JOdWxsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlVGFnKHNpemUsIHQwLCB0MSkKICAgICBvcmkgMSwgdDEKICAgICBjaWVxIHQxLCBOdWxs
VGFnLCB0MQotICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogZW5kKQogCiAKIG1hY3JvIHN0cmljdEVxT3Aob3Bj
b2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBlcXVhbGl0eU9wZXJhdGlvbikKLSAgICBsbGludE9wV2l0
aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wXyVvcGNvZGVO
YW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1f
bGhzLCB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQx
KQpAQCAtOTg1LDcgKzk4NSw3IEBAIG1hY3JvIHN0cmljdEVxT3Aob3Bjb2RlTmFtZSwgb3Bjb2Rl
U3RydWN0LCBlcXVhbGl0eU9wZXJhdGlvbikKICAgICAgICAgYmJiIEpTQ2VsbDo6bV90eXBlW3Qx
XSwgT2JqZWN0VHlwZSwgLnNsb3cKICAgICAubm90U3RyaW5nT3JTeW1ib2w6CiAgICAgICAgIGVx
dWFsaXR5T3BlcmF0aW9uKHQwLCB0MSwgdDApCi0gICAgICAgIHJldHVybihCb29sZWFuVGFnLCB0
MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MCkKIAog
ICAgIC5zbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUp
CkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBzdHJpY3RFcXVhbGl0eUp1bXBPcChqbnN0cmljdGVxLCBP
cEpuc3RyaWN0ZXEsCiAKIAogbWFjcm8gcHJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBp
bnRlZ2VyT3BlcmF0aW9uKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUl
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0
dXJuKQorICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgYmluZXEgVGFn
T2Zmc2V0W2NmciwgdDAsIDhdLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldFtjZnIsIHQwLCA4XSwgdDIKQEAgLTEwNTMsMjYgKzEwNTMsMjYgQEAgbWFjcm8gcHJl
T3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyT3BlcmF0aW9uKQogZW5kCiAKIAot
bGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWJlciwgT3BUb051bWJlciwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF90b19udW1iZXIs
IE9wVG9OdW1iZXIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoc2l6ZSwgdDAsIHQyLCB0MykKICAgICBiaWVxIHQyLCBJbnQzMlRhZywgLm9wVG9OdW1i
ZXJJc0ludAogICAgIGJpYWVxIHQyLCBMb3dlc3RUYWcsIC5vcFRvTnVtYmVyU2xvdwogLm9wVG9O
dW1iZXJJc0ludDoKLSAgICByZXR1cm4odDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2godDIsIHQzKQogCiAub3BUb051bWJlclNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93
X3BhdGhfdG9fbnVtYmVyKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhQcm9m
aWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmlj
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUs
IHQwLCB0MiwgdDMpCiAgICAgYmllcSB0MiwgSW50MzJUYWcsIC5vcFRvTnVtZXJpY0lzSW50CiAg
ICAgYmlhZXEgdDIsIExvd2VzdFRhZywgLm9wVG9OdW1lcmljU2xvdwogLm9wVG9OdW1lcmljSXNJ
bnQ6Ci0gICAgcmV0dXJuKHQyLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQy
LCB0MykKIAogLm9wVG9OdW1lcmljU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90
b19udW1lcmljKQpAQCAtMTA4MCwxMyArMTA4MCwxMyBAQCBsbGludE9wV2l0aFByb2ZpbGUob3Bf
dG9fbnVtZXJpYywgT3BUb051bWVyaWMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1
cgogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0cmluZywgT3BUb1N0cmluZywg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRp
b24ob3BfdG9fc3RyaW5nLCBPcFRvU3RyaW5nLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MiwgdDMpCiAgICAgYmluZXEgdDIsIENl
bGxUYWcsIC5vcFRvU3RyaW5nU2xvdwogICAgIGJibmVxIEpTQ2VsbDo6bV90eXBlW3QzXSwgU3Ry
aW5nVHlwZSwgLm9wVG9TdHJpbmdTbG93CiAub3BUb1N0cmluZ0lzU3RyaW5nOgotICAgIHJldHVy
bih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MiwgdDMpCiAKIC5vcFRv
U3RyaW5nU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19zdHJpbmcpCkBAIC0x
MDk0LDEyICsxMDk0LDEyIEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0cmluZywgT3BUb1N0
cmluZywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKIGVuZCkKIAogCi1sbGlu
dE9wV2l0aFByb2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX29iamVjdCwgT3BU
b09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MCwgdDIsIHQzKQogICAgIGJpbmVxIHQyLCBDZWxsVGFnLCAub3BUb09iamVjdFNs
b3cKICAgICBiYmIgSlNDZWxsOjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCAub3BUb09iamVjdFNs
b3cKLSAgICByZXR1cm4odDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIs
IHQzKQogCiAub3BUb09iamVjdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9f
b2JqZWN0KQpAQCAtMTEwNywxOSArMTEwNywxOSBAQCBsbGludE9wV2l0aFByb2ZpbGUob3BfdG9f
b2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQog
ZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfbmVnYXRlLCBPcE5lZ2F0ZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkK
ICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSwgdDIpCiAgICAgYmluZXEg
dDEsIEludDMyVGFnLCAub3BOZWdhdGVTcmNOb3RJbnQKICAgICBidGl6IHQyLCAweDdmZmZmZmZm
LCAub3BOZWdhdGVTbG93CiAgICAgbmVnaSB0MgogICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxl
KHNpemUsIE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQwLCB0MykKLSAgICByZXR1cm4gKElu
dDMyVGFnLCB0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEludDMyVGFnLCB0MikK
IC5vcE5lZ2F0ZVNyY05vdEludDoKICAgICBiaWEgdDEsIExvd2VzdFRhZywgLm9wTmVnYXRlU2xv
dwogICAgIHhvcmkgMHg4MDAwMDAwMCwgdDEKICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShz
aXplLCBPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0MCwgdDMpCi0gICAgcmV0dXJuKHQx
LCB0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MikKIAogLm9wTmVnYXRl
U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9uZWdhdGUpCkBAIC0xMTI4LDcgKzEx
MjgsNyBAQCBlbmQpCiAKIAogbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uKQot
ICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIGxsaW50T3BX
aXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAg
ICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1fbGhzLCB0MCkKICAgICAgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQxKQpAQCAtMTIyNSw3ICsxMjI1LDcgQEAg
YmluYXJ5T3BDdXN0b21TdG9yZShkaXYsIE9wRGl2LAogICAgIGVuZCwKICAgICBtYWNybyAobGhz
LCByaHMpIGRpdmQgcmhzLCBsaHMgZW5kKQogCi1sbGludE9wV2l0aFJldHVybihvcF9wb3csIE9w
UG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF9wb3csIE9wUG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9yaHMsIHQyKQogICAgIGdldChtX2xocywg
dDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQxKQpAQCAtMTI2
MiwxMSArMTI2MiwxMSBAQCBsbGludE9wV2l0aFJldHVybihvcF9wb3csIE9wUG93LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxp
bnRPcFdpdGhSZXR1cm4ob3BfdW5zaWduZWQsIE9wVW5zaWduZWQsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3Vuc2lnbmVkLCBP
cFVuc2lnbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlUGF5bG9hZChzaXplLCB0MSwgSW50MzJUYWcsIHQyLCAub3BVbnNpZ25lZFNsb3cpCiAgICAg
YmlsdCB0MiwgMCwgLm9wVW5zaWduZWRTbG93Ci0gICAgcmV0dXJuIChJbnQzMlRhZywgdDIpCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChJbnQzMlRhZywgdDIpCiAub3BVbnNpZ25lZFNs
b3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdW5zaWduZWQpCiAgICAgZGlzcGF0Y2go
KQpAQCAtMTI3NCw3ICsxMjc0LDcgQEAgZW5kKQogCiAKIG1hY3JvIGNvbW1vbkJpdE9wKG9wS2lu
ZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCi0gICAgb3BLaW5kKG9wXyVv
cGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0
dXJuKQorICAgIG9wS2luZChvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdl
dChtX3JocywgdDIpCiAgICAgICAgIGdldChtX2xocywgdDApCiAgICAgICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQzLCB0MSkKQEAgLTEyODIsNyArMTI4Miw3IEBAIG1hY3Jv
IGNvbW1vbkJpdE9wKG9wS2luZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24p
CiAgICAgICAgIGJpbmVxIHQzLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgYmluZXEgdDIsIElu
dDMyVGFnLCAuc2xvdwogICAgICAgICBvcGVyYXRpb24odDAsIHQxKQotICAgICAgICByZXR1cm4g
KHQzLCB0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MywgdDApCiAKICAg
ICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpA
QCAtMTMxOSwxMiArMTMxOSwxMiBAQCBiaXRPcFByb2ZpbGVkKGJpdGFuZCwgT3BCaXRhbmQsCiBi
aXRPcFByb2ZpbGVkKGJpdG9yLCBPcEJpdG9yLAogICAgIG1hY3JvIChsaHMsIHJocykgb3JpIHJo
cywgbGhzIGVuZCkKIAotbGxpbnRPcFdpdGhQcm9maWxlKG9wX2JpdG5vdCwgT3BCaXRub3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3Bf
Yml0bm90LCBPcEJpdG5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZShzaXplLCB0MCwgdDIsIHQzKQogICAgIGJpbmVxIHQyLCBJbnQzMlRhZywgLm9w
Qml0Tm90U2xvdwogICAgIG5vdGkgdDMKLSAgICByZXR1cm4gKEludDMyVGFnLCB0MykKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEludDMyVGFnLCB0MykKIAogIC5vcEJpdE5vdFNsb3c6
CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfYml0bm90KQpAQCAtMTM2MSw0NiArMTM2MSw0
NiBAQCBsbGludE9wKG9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UsIE9wT3ZlcnJpZGVzSGFzSW5z
dGFuY2UsIG1hY3JvIChzaXplLCBnZXQsIGRpcwogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJu
KG9wX2lzX2VtcHR5LCBPcElzRW1wdHksIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1
cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX2VtcHR5LCBPcElzRW1wdHksIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdl
dChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQy
LCB0MykKICAgICBjaWVxIHQyLCBFbXB0eVZhbHVlVGFnLCB0MwotICAgIHJldHVybihCb29sZWFu
VGFnLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQzKQog
ZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3R5cGVvZl9pc191bmRlZmluZWQsIE9wVHlw
ZW9mSXNVbmRlZmluZWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGlu
dE9wV2l0aERlc3RpbmF0aW9uKG9wX3R5cGVvZl9pc191bmRlZmluZWQsIE9wVHlwZW9mSXNVbmRl
ZmluZWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
c2l6ZSwgdDEsIHQyLCB0MykKICAgICBiaWVxIHQyLCBDZWxsVGFnLCAub3BJc1VuZGVmaW5lZENl
bGwKICAgICBjaWVxIHQyLCBVbmRlZmluZWRUYWcsIHQzCi0gICAgcmV0dXJuKEJvb2xlYW5UYWcs
IHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDMpCiAub3BJ
c1VuZGVmaW5lZENlbGw6CiAgICAgYnRibnogSlNDZWxsOjptX2ZsYWdzW3QzXSwgTWFzcXVlcmFk
ZXNBc1VuZGVmaW5lZCwgLm9wSXNVbmRlZmluZWRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkCi0gICAg
cmV0dXJuKEJvb2xlYW5UYWcsIDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29s
ZWFuVGFnLCAwKQogLm9wSXNVbmRlZmluZWRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOgogICAgIGxv
YWRpIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHQzCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0M10sIHQzCiAgICAg
Y3BlcSBTdHJ1Y3R1cmU6Om1fZ2xvYmFsT2JqZWN0W3QxXSwgdDMsIHQxCi0gICAgcmV0dXJuKEJv
b2xlYW5UYWcsIHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywg
dDEpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfYm9vbGVhbiwgT3BJc0Jvb2xl
YW4sIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3Rp
bmF0aW9uKG9wX2lzX2Jvb2xlYW4sIE9wSXNCb29sZWFuLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkK
ICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlVGFnKHNpemUsIHQxLCB0MCkKICAgICBjaWVxIHQw
LCBCb29sZWFuVGFnLCB0MAotICAgIHJldHVybihCb29sZWFuVGFnLCB0MCkKKyAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRo
UmV0dXJuKG9wX2lzX251bWJlciwgT3BJc051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfbnVtYmVyLCBPcElzTnVt
YmVyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlVGFn
KHNpemUsIHQxLCB0MCkKICAgICBhZGRpIDEsIHQwCiAgICAgY2liIHQwLCBMb3dlc3RUYWcgKyAx
LCB0MQotICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogZW5kKQogCiAKQEAgLTE0MTAsMjYgKzE0MTAsMjYgQEAg
bGxpbnRPcChvcF9pc19iaWdfaW50LCBPcElzQmlnSW50LCBtYWNybyh1bnVzZWQsIHVudXNlZCwg
dW51c2VkKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX2NlbGxfd2l0aF90eXBl
LCBPcElzQ2VsbFdpdGhUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19jZWxsX3dpdGhfdHlwZSwgT3BJc0NlbGxXaXRo
VHlwZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShz
aXplLCB0MSwgdDAsIHQzKQogICAgIGJpbmVxIHQwLCBDZWxsVGFnLCAubm90Q2VsbENhc2UKICAg
ICBnZXR1KHNpemUsIE9wSXNDZWxsV2l0aFR5cGUsIG1fdHlwZSwgdDApCiAgICAgY2JlcSBKU0Nl
bGw6Om1fdHlwZVt0M10sIHQwLCB0MQotICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogLm5vdENlbGxDYXNlOgot
ICAgIHJldHVybihCb29sZWFuVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
Qm9vbGVhblRhZywgMCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19vYmplY3Qs
IE9wSXNPYmplY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9w
V2l0aERlc3RpbmF0aW9uKG9wX2lzX29iamVjdCwgT3BJc09iamVjdCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFu
ZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDAsIHQzKQogICAg
IGJpbmVxIHQwLCBDZWxsVGFnLCAub3BJc09iamVjdE5vdENlbGwKICAgICBjYmFlcSBKU0NlbGw6
Om1fdHlwZVt0M10sIE9iamVjdFR5cGUsIHQxCi0gICAgcmV0dXJuKEJvb2xlYW5UYWcsIHQxKQor
ICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDEpCiAub3BJc09iamVj
dE5vdENlbGw6Ci0gICAgcmV0dXJuKEJvb2xlYW5UYWcsIDApCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaChCb29sZWFuVGFnLCAwKQogZW5kKQogCiAKQEAgLTE0NzQsNyArMTQ3NCw3IEBA
IGVuZAogIyBjb252ZXJ0IG9wY29kZSBpbnRvIGEgZ2V0X2J5X2lkX3Byb3RvX2xvYWQvZ2V0X2J5
X2lkX3Vuc2V0LCByZXNwZWN0aXZlbHksIGFmdGVyIGFuCiAjIGV4ZWN1dGlvbiBjb3VudGVyIGhp
dHMgemVyby4KIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90cnlfZ2V0X2J5X2lkLCBPcFRyeUdl
dEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF90cnlfZ2V0X2J5X2lkLCBPcFRyeUdldEJ5SWQsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBtZXRhZGF0YSh0NSwgdDApCiAgICAgZ2V0KG1fYmFzZSwgdDApCiAgICAgbG9hZGkgT3BU
cnlHZXRCeUlkOjpNZXRhZGF0YTo6bV9zdHJ1Y3R1cmVJRFt0NV0sIHQxCkBAIC0xNDgzLDE0ICsx
NDgzLDE0IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfdHJ5X2dldF9ieV9pZCwgT3BUcnlHZXRC
eUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwKICAgICBiaW5lcSBKU0NlbGw6Om1fc3Ry
dWN0dXJlSURbdDNdLCB0MSwgLm9wVHJ5R2V0QnlJZFNsb3cKICAgICBsb2FkUHJvcGVydHlBdFZh
cmlhYmxlT2Zmc2V0KHQyLCB0MywgdDAsIHQxKQogICAgIHZhbHVlUHJvZmlsZShPcFRyeUdldEJ5
SWQsIG1fcHJvZmlsZSwgdDUsIHQwLCB0MSkKLSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2godDAsIHQxKQogCiAub3BUcnlHZXRCeUlkU2xvdzoKICAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90cnlfZ2V0X2J5X2lkKQogICAgIGRpc3BhdGNo
KCkKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWRfZGlyZWN0LCBPcEdl
dEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJu
KQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWRfZGlyZWN0LCBPcEdldEJ5SWREaXJl
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDApCiAgICAgZ2V0KG1fYmFzZSwgdDApCiAg
ICAgbG9hZGkgT3BHZXRCeUlkRGlyZWN0OjpNZXRhZGF0YTo6bV9zdHJ1Y3R1cmVJRFt0NV0sIHQx
CkBAIC0xNDk5LDcgKzE0OTksNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZF9k
aXJlY3QsIE9wR2V0QnlJZERpcmVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcAogICAgIGJpbmVx
IEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BHZXRCeUlkRGlyZWN0U2xvdwogICAg
IGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQ
cm9maWxlKE9wR2V0QnlJZERpcmVjdCwgbV9wcm9maWxlLCB0NSwgdDAsIHQxKQotICAgIHJldHVy
bih0MCwgdDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdl
dEJ5SWREaXJlY3RTbG93OgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9i
eV9pZF9kaXJlY3QpCkBAIC0xNTA4LDcgKzE1MDgsNyBAQCBlbmQpCiAKICMgQXNzdW1wdGlvbjog
VGhlIGJhc2Ugb2JqZWN0IGlzIGluIHQzCiAjIEZJWE1FOiB0aGlzIGlzIHZlcnkgY2xvc2UgdG8g
dGhlIDY0Yml0IHZlcnNpb24uIENvbnNpZGVyIHJlZmFjdG9yaW5nLgotbWFjcm8gcGVyZm9ybUdl
dEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1lLCB2YWx1ZVByb2ZpbGVO
YW1lLCBzbG93TGFiZWwsIHNpemUsIG1ldGFkYXRhLCByZXR1cm4pCittYWNybyBwZXJmb3JtR2V0
QnlJREhlbHBlcihvcGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5h
bWUsIHNsb3dMYWJlbCwgc2l6ZSwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gp
CiAgICAgbWV0YWRhdGEodDIsIHQxKQogICAgIGxvYWRiICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0
YTo6JW1vZGVNZXRhZGF0YU5hbWUlLm1vZGVbdDJdLCB0MQogICAgICAgICAKQEAgLTE1MjAsNyAr
MTUyMCw3IEBAIG1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9kZU1l
dGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvCiAgICAgbG9hZGlzICVvcGNvZGVTdHJ1
Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRhZGF0YU5hbWUlLmRlZmF1bHRNb2RlLmNhY2hlZE9mZnNl
dFt0Ml0sIHQxCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDMsIHQwLCB0
MSkKICAgICB2YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCB0Miwg
dDAsIHQxKQotICAgIHJldHVybih0MCwgdDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRQcm90b0xvYWQ6CiAgICAgYmJuZXEgdDEsIGNvbnN0ZXhw
ciBHZXRCeUlkTW9kZTo6UHJvdG9Mb2FkLCAub3BHZXRCeUlkQXJyYXlMZW5ndGgKQEAgLTE1MzEs
NyArMTUzMSw3IEBAIG1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9k
ZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvCiAgICAgbG9hZHAgJW9wY29kZVN0
cnVjdCU6Ok1ldGFkYXRhOjolbW9kZU1ldGFkYXRhTmFtZSUucHJvdG9Mb2FkTW9kZS5jYWNoZWRT
bG90W3QyXSwgdDMKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDAs
IHQxKQogICAgIHZhbHVlUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIHQy
LCB0MCwgdDEpCi0gICAgcmV0dXJuKHQwLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKHQwLCB0MSkKIAogLm9wR2V0QnlJZEFycmF5TGVuZ3RoOgogICAgIGJibmVxIHQxLCBjb25z
dGV4cHIgR2V0QnlJZE1vZGU6OkFycmF5TGVuZ3RoLCAub3BHZXRCeUlkVW5zZXQKQEAgLTE1NDMs
MTggKzE1NDMsMTggQEAgbWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBt
b2RlTWV0YWRhdGFOYW1lLCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG8KICAgICBsb2FkaSAtc2l6ZW9m
IEluZGV4aW5nSGVhZGVyICsgSW5kZXhpbmdIZWFkZXI6OnUubGVuZ3Rocy5wdWJsaWNMZW5ndGhb
dDBdLCB0MAogICAgIGJpbHQgdDAsIDAsIHNsb3dMYWJlbAogICAgIHZhbHVlUHJvZmlsZShvcGNv
ZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIHQyLCBJbnQzMlRhZywgdDApCi0gICAgcmV0dXJu
KEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEludDMyVGFnLCB0
MCkKICAgICAKIC5vcEdldEJ5SWRVbnNldDoKICAgICBsb2FkaSBKU0NlbGw6Om1fc3RydWN0dXJl
SURbdDNdLCB0MQogICAgIGxvYWRpICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRh
ZGF0YU5hbWUlLnVuc2V0TW9kZS5zdHJ1Y3R1cmVJRFt0Ml0sIHQwCiAgICAgYmluZXEgdDAsIHQx
LCBzbG93TGFiZWwKICAgICB2YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVO
YW1lLCB0MiwgVW5kZWZpbmVkVGFnLCAwKQotICAgIHJldHVybihVbmRlZmluZWRUYWcsIDApCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChVbmRlZmluZWRUYWcsIDApCiAKIGVuZAogCi1s
bGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bf
Z2V0X2J5X2lkLCBPcEdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDApCiAgICAg
bG9hZGIgT3BHZXRCeUlkOjpNZXRhZGF0YTo6bV9tb2RlTWV0YWRhdGEubW9kZVt0NV0sIHQxCiAg
ICAgZ2V0KG1fYmFzZSwgdDApCkBAIC0xNTY4LDcgKzE1NjgsNyBAQCBsbGludE9wV2l0aE1ldGFk
YXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdAogICAgIGxvYWRwIE9wR2V0QnlJZDo6TWV0YWRhdGE6Om1fbW9kZU1ldGFkYXRhLnBy
b3RvTG9hZE1vZGUuY2FjaGVkU2xvdFt0NV0sIHQzCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJs
ZU9mZnNldCh0MiwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkLCBtX3By
b2ZpbGUsIHQ1LCB0MCwgdDEpCi0gICAgcmV0dXJuKHQwLCB0MSkKKyAgICBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKHQwLCB0MSkKIAogLm9wR2V0QnlJZEFycmF5TGVuZ3RoOgogICAgIGJibmVx
IHQxLCBjb25zdGV4cHIgR2V0QnlJZE1vZGU6OkFycmF5TGVuZ3RoLCAub3BHZXRCeUlkVW5zZXQK
QEAgLTE1ODEsNyArMTU4MSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkLCBP
cEdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0CiAgICAgbG9hZGkg
LXNpemVvZiBJbmRleGluZ0hlYWRlciArIEluZGV4aW5nSGVhZGVyOjp1Lmxlbmd0aHMucHVibGlj
TGVuZ3RoW3QwXSwgdDAKICAgICBiaWx0IHQwLCAwLCAub3BHZXRCeUlkU2xvdwogICAgIHZhbHVl
UHJvZmlsZShPcEdldEJ5SWQsIG1fcHJvZmlsZSwgdDUsIEludDMyVGFnLCB0MCkKLSAgICByZXR1
cm4oSW50MzJUYWcsIHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goSW50MzJUYWcs
IHQwKQogCiAub3BHZXRCeUlkVW5zZXQ6CiAgICAgYmJuZXEgdDEsIGNvbnN0ZXhwciBHZXRCeUlk
TW9kZTo6VW5zZXQsIC5vcEdldEJ5SWREZWZhdWx0CkBAIC0xNTg5LDcgKzE1ODksNyBAQCBsbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgbWV0YWRhdAogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHNp
emUsIHQwLCBDZWxsVGFnLCB0MywgLm9wR2V0QnlJZFNsb3cpCiAgICAgYmluZXEgSlNDZWxsOjpt
X3N0cnVjdHVyZUlEW3QzXSwgdDEsIC5vcEdldEJ5SWRTbG93CiAgICAgdmFsdWVQcm9maWxlKE9w
R2V0QnlJZCwgbV9wcm9maWxlLCB0NSwgVW5kZWZpbmVkVGFnLCAwKQotICAgIHJldHVybihVbmRl
ZmluZWRUYWcsIDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChVbmRlZmluZWRUYWcs
IDApCiAKIC5vcEdldEJ5SWREZWZhdWx0OgogICAgIGxvYWRpIE9wR2V0QnlJZDo6TWV0YWRhdGE6
Om1fbW9kZU1ldGFkYXRhLmRlZmF1bHRNb2RlLnN0cnVjdHVyZUlEW3Q1XSwgdDEKQEAgLTE1OTgs
NyArMTU5OCw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkLCBPcEdldEJ5SWQs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0CiAgICAgYmluZXEgSlNDZWxsOjpt
X3N0cnVjdHVyZUlEW3QzXSwgdDEsIC5vcEdldEJ5SWRTbG93CiAgICAgbG9hZFByb3BlcnR5QXRW
YXJpYWJsZU9mZnNldCh0MiwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlk
LCBtX3Byb2ZpbGUsIHQ1LCB0MCwgdDEpCi0gICAgcmV0dXJuKHQwLCB0MSkKKyAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKHQwLCB0MSkKIAogLm9wR2V0QnlJZFNsb3c6CiAgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2J5X2lkKQpAQCAtMTYwOCwxMiArMTYwOCwxMiBA
QCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdAogICAgIGdldHRlclNldHRlck9TUkV4aXRSZXR1cm5Q
b2ludChvcF9nZXRfYnlfaWQsIHNpemUpCiAgICAgbWV0YWRhdGEodDIsIHQzKQogICAgIHZhbHVl
UHJvZmlsZShPcEdldEJ5SWQsIG1fcHJvZmlsZSwgdDIsIHIxLCByMCkKLSAgICByZXR1cm4ocjEs
IHIwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gocjEsIHIwKQogCiBlbmQpCiAKIAot
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9w
X3B1dF9ieV9pZCwgT3BQdXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgd3JpdGVCYXJyaWVyT25PcGVyYW5k
cyhzaXplLCBnZXQsIG1fYmFzZSwgbV92YWx1ZSkKICAgICBtZXRhZGF0YSh0NSwgdDMpCiAgICAg
Z2V0KG1fYmFzZSwgdDMpCkBAIC0xNjgwLDcgKzE2ODAsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRh
KG9wX3B1dF9ieV9pZCwgT3BQdXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdAogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X3ZhbCwgT3BHZXRC
eVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV92YWwsIE9wR2V0QnlWYWwsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBt
YWNybyBmaW5pc2hJbnRHZXRCeVZhbChyZXN1bHRQYXlsb2FkLCBzY3JhdGNoKQogICAgICAgICBn
ZXQobV9kc3QsIHNjcmF0Y2gpCiAgICAgICAgIHN0b3JlaSBJbnQzMlRhZywgVGFnT2Zmc2V0W2Nm
ciwgc2NyYXRjaCwgOF0KQEAgLTE3NTcsMTEgKzE3NTcsMTEgQEAgbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9nZXRfYnlfdmFsLCBPcEdldEJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWQKICAgICBnZXR0ZXJTZXR0ZXJPU1JFeGl0UmV0dXJuUG9pbnQob3BfZ2V0X2J5X3ZhbCwg
c2l6ZSkKICAgICBtZXRhZGF0YSh0MiwgdDMpCiAgICAgdmFsdWVQcm9maWxlKE9wR2V0QnlWYWws
IG1fcHJvZmlsZSwgdDIsIHIxLCByMCkKLSAgICByZXR1cm4ocjEsIHIwKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gocjEsIHIwKQogCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEo
b3BfZ2V0X3ByaXZhdGVfbmFtZSwgT3BHZXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9w
cml2YXRlX25hbWUsIE9wR2V0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwg
dDApCiAKICAgICAjIFNsb3cgcGF0aCBpZiB0aGUgcHJpdmF0ZSBmaWVsZCBpcyBzdGFsZQpAQCAt
MTc3OCwxNCArMTc3OCwxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9wcml2YXRlX25h
bWUsIE9wR2V0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXplLCBnZXQsIGRpcwogCiAgICAgbG9hZFBy
b3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MiwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVByb2ZpbGUo
T3BHZXRQcml2YXRlTmFtZSwgbV9wcm9maWxlLCB0NSwgdDAsIHQxKQotICAgIHJldHVybih0MCwg
dDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldFByaXZh
dGVOYW1lU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfcHJpdmF0
ZV9uYW1lKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9w
dXRfcHJpdmF0ZV9uYW1lLCBPcFB1dFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3ByaXZh
dGVfbmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIHdyaXRlQmFycmllck9uT3Bl
cmFuZHMoc2l6ZSwgZ2V0LCBtX2Jhc2UsIG1fdmFsdWUpCiAgICAgZ2V0KG1fYmFzZSwgdDMpCiAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQoc2l6ZSwgdDMsIENlbGxUYWcsIHQwLCAu
b3BQdXRQcml2YXRlTmFtZVNsb3cpCkBAIC0xODI5LDcgKzE4MjksNyBAQCBsbGludE9wV2l0aE1l
dGFkYXRhKG9wX3B1dF9wcml2YXRlX25hbWUsIE9wUHV0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXpl
LCBnZXQsIGRpcwogZW5kKQogCiBtYWNybyBwdXRCeVZhbE9wKG9wY29kZU5hbWUsIG9wY29kZVN0
cnVjdCwgb3NyRXhpdFBvaW50KQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5h
bWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
cmV0dXJuKQorICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVT
dHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCkKICAgICAgICAgbWFjcm8gY29udGlndW91c1B1dEJ5VmFsKHN0b3JlQ2Fs
bGJhY2spCiAgICAgICAgICAgICBiaWFlcSB0MywgLXNpemVvZiBJbmRleGluZ0hlYWRlciArIElu
ZGV4aW5nSGVhZGVyOjp1Lmxlbmd0aHMucHVibGljTGVuZ3RoW3QwXSwgLm91dE9mQm91bmRzCiAg
ICAgICAgIC5zdG9yZVJlc3VsdDoKQEAgLTIwMDksNyArMjAwOSw3IEBAIHVuZGVmaW5lZE9yTnVs
bEp1bXBPcChqdW5kZWZpbmVkX29yX251bGwsIE9wSnVuZGVmaW5lZE9yTnVsbCwKIHVuZGVmaW5l
ZE9yTnVsbEp1bXBPcChqbnVuZGVmaW5lZF9vcl9udWxsLCBPcEpudW5kZWZpbmVkT3JOdWxsLAog
ICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBiaW5lcSB2YWx1ZSwgTnVsbFRhZywgdGFyZ2V0IGVu
ZCkKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfamVxX3B0ciwgT3BKZXFQdHIsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2plcV9w
dHIsIE9wSmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBnZXQobV92YWx1ZSwgdDApCiAgICAgZ2V0KG1fc3BlY2lhbFBvaW50
ZXIsIHQxKQogICAgIGxvYWRDb25zdGFudChzaXplLCB0MSwgdDMsIHQyKQpAQCAtMjAyMyw3ICsy
MDIzLDcgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfamVxX3B0ciwgT3BKZXFQdHIsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9qbmVxX3B0ciwgT3BKbmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0
ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIGdldChtX3ZhbHVlLCB0MCkKICAgICBnZXQobV9zcGVjaWFsUG9pbnRl
ciwgdDEpCiAgICAgbG9hZENvbnN0YW50KHNpemUsIHQxLCB0MywgdDIpCkBAIC0yMDU1LDcgKzIw
NTUsNyBAQCBlbmQKIAogCiBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0
LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZFNldCkKLSAgICBsbGludE9w
V2l0aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wXyVvcGNv
ZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikKICAgICAgICAgZ2V0
KG1fcmhzLCB0MykKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDAs
IHQxKQpAQCAtMjA2Myw3ICsyMDYzLDcgQEAgbWFjcm8gY29tcGFyZU9wKG9wY29kZU5hbWUsIG9w
Y29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmVBbmRTZXQsIGRvdWJsZUNvbXBhcmVBbmQKICAgICAg
ICAgYmluZXEgdDAsIEludDMyVGFnLCAub3AxTm90SW50CiAgICAgICAgIGJpbmVxIHQyLCBJbnQz
MlRhZywgLm9wMk5vdEludAogICAgICAgICBpbnRlZ2VyQ29tcGFyZUFuZFNldCh0MSwgdDMsIHQx
KQotICAgICAgICByZXR1cm4oQm9vbGVhblRhZywgdDEpCisgICAgICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDEpCiAKICAgICAub3AxTm90SW50OgogICAgICAgICBi
aWEgdDAsIExvd2VzdFRhZywgLnNsb3cKQEAgLTIwNzYsMTQgKzIwNzYsMTQgQEAgbWFjcm8gY29t
cGFyZU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmVBbmRTZXQsIGRv
dWJsZUNvbXBhcmVBbmQKICAgICAub3AxTm90SW50UmVhZHk6CiAgICAgICAgIGZpaTJkIHQxLCB0
MCwgZnQwCiAgICAgICAgIGRvdWJsZUNvbXBhcmVBbmRTZXQoZnQwLCBmdDEsIHQxKQotICAgICAg
ICByZXR1cm4oQm9vbGVhblRhZywgdDEpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2goQm9vbGVhblRhZywgdDEpCiAKICAgICAub3AyTm90SW50OgogICAgICAgICBjaTJkcyB0MSwg
ZnQwCiAgICAgICAgIGJpYSB0MiwgTG93ZXN0VGFnLCAuc2xvdwogICAgICAgICBmaWkyZCB0Mywg
dDIsIGZ0MQogICAgICAgICBkb3VibGVDb21wYXJlQW5kU2V0KGZ0MCwgZnQxLCB0MSkKLSAgICAg
ICAgcmV0dXJuKEJvb2xlYW5UYWcsIHQxKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKEJvb2xlYW5UYWcsIHQxKQogCiAgICAgLnNsb3c6CiAgICAgICAgIGNhbGxTbG93UGF0aChf
c2xvd19wYXRoXyVvcGNvZGVOYW1lJSkKQEAgLTIwOTIsMTMgKzIwOTIsMTMgQEAgbWFjcm8gY29t
cGFyZU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmVBbmRTZXQsIGRv
dWJsZUNvbXBhcmVBbmQKIGVuZAogCiBtYWNybyBjb21wYXJlVW5zaWduZWRPcChvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0KQotICAgIGxsaW50T3BXaXRoUmV0
dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29kZU5hbWUl
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQyKQogICAgICAgICBnZXQobV9saHMs
IHQwKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0MywgdDEpCiAg
ICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUyUmVnKHNpemUsIHQwLCB0MiwgdDApCiAgICAg
ICAgIGludGVnZXJDb21wYXJlQW5kU2V0KHQwLCB0MSwgdDApCi0gICAgICAgIHJldHVybihCb29s
ZWFuVGFnLCB0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFn
LCB0MCkKICAgICBlbmQpCiBlbmQKIApAQCAtMjI3OCw3ICsyMjc4LDcgQEAgbWFjcm8gY2FsbEhl
bHBlcihvcGNvZGVOYW1lLCBzbG93UGF0aCwgb3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1l
LCBkc3RWaXJ0dWEKIGVuZAogICAgICAgICAKIG1hY3JvIGNvbW1vbkNhbGxPcChvcGNvZGVOYW1l
LCBzbG93UGF0aCwgb3Bjb2RlU3RydWN0LCBwcmVwYXJlQ2FsbCwgaW52b2tlQ2FsbCwgcHJlcGFy
ZVBvbHltb3JwaGljLCBwcmVwYXJlU2xvd0NhbGwsIHByb2xvZ3VlKQotICAgIGxsaW50T3BXaXRo
TWV0YWRhdGEob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBtZXRhZGF0YSh0NSwgdDApCiAKICAg
ICAgICAgcHJvbG9ndWUobWFjcm8gKGZpZWxkTmFtZSwgZHN0KQpAQCAtMjM2MywxNyArMjM2Mywx
NyBAQCBsbGludE9wKG9wX3JldCwgT3BSZXQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQog
ICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCiAgICAgZ2V0KG1fdmFsdWUsIHQyKQog
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQxLCB0MCkKLSAgICBkb1JldHVy
bigpCisgICAgZG9zZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKCkKIGVuZCkKIAogCi1sbGludE9w
V2l0aFJldHVybihvcF90b19wcmltaXRpdmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3RvX3ByaW1p
dGl2ZSwgT3BUb1ByaW1pdGl2ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fc3JjLCB0MikKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHNpemUsIHQyLCB0MSwgdDApCiAgICAgYmluZXEgdDEsIENlbGxUYWcsIC5vcFRv
UHJpbWl0aXZlSXNJbW0KICAgICBiYmFlcSBKU0NlbGw6Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUs
IC5vcFRvUHJpbWl0aXZlU2xvd0Nhc2UKIC5vcFRvUHJpbWl0aXZlSXNJbW06Ci0gICAgcmV0dXJu
KHQxLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MCkKIAogLm9wVG9Q
cmltaXRpdmVTbG93Q2FzZToKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19wcmltaXRp
dmUpCkBAIC0yMzgxLDcgKzIzODEsNyBAQCBsbGludE9wV2l0aFJldHVybihvcF90b19wcmltaXRp
dmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZQogZW5kKQog
CiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3Byb3BlcnR5X2tleSwgT3BUb1Byb3BlcnR5S2V5
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5h
dGlvbihvcF90b19wcm9wZXJ0eV9rZXksIE9wVG9Qcm9wZXJ0eUtleSwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fc3JjLCB0
MikKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0MSwgdDApCiAgICAgYmlu
ZXEgdDEsIENlbGxUYWcsIC5vcFRvUHJvcGVydHlLZXlTbG93CkBAIC0yMzg5LDcgKzIzODksNyBA
QCBsbGludE9wV2l0aFJldHVybihvcF90b19wcm9wZXJ0eV9rZXksIE9wVG9Qcm9wZXJ0eUtleSwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0YwogICAgIGJibmVxIEpTQ2VsbDo6bV90eXBlW3QwXSwg
U3RyaW5nVHlwZSwgLm9wVG9Qcm9wZXJ0eUtleVNsb3cKIAogLmRvbmU6Ci0gICAgcmV0dXJuKHQx
LCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MCkKIAogLm9wVG9Qcm9w
ZXJ0eUtleVNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9fcHJvcGVydHlfa2V5
KQpAQCAtMjQ0Nyw3ICsyNDQ3LDcgQEAgbGxpbnRPcChvcF9lbmQsIE9wRW5kLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCkKICAgICBhc3NlcnROb3RDb25zdGFudChzaXplLCB0MCkKICAgICBs
b2FkaSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0sIHQxCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtj
ZnIsIHQwLCA4XSwgdDAKLSAgICBkb1JldHVybigpCisgICAgZG9zZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKCkKIGVuZCkKIAogCkBAIC0yNTgzLDcgKzI1ODMsNyBAQCBtYWNybyB2YXJJbmplY3Rp
b25DaGVjayhzbG93UGF0aCkKIGVuZAogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2
ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJl
c29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogCiAgICAgbWFjcm8gZ2V0Q29uc3RhbnRTY29wZShkc3QpCiAg
ICAgICAgIGxvYWRwIE9wUmVzb2x2ZVNjb3BlOjpNZXRhZGF0YTo6bV9jb25zdGFudFNjb3BlW3Q1
XSwgZHN0CkBAIC0yNTkxLDcgKzI1OTEsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3Jlc29s
dmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAogCiAg
ICAgbWFjcm8gcmV0dXJuQ29uc3RhbnRTY29wZSgpCiAgICAgICAgIGdldENvbnN0YW50U2NvcGUo
dDApCi0gICAgICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaChDZWxsVGFnLCB0MCkKICAgICBlbmQKIAogICAgIG1hY3JvIGdsb2JhbExleGlj
YWxCaW5kaW5nRXBvY2hDaGVjayhzbG93UGF0aCwgZ2xvYmFsT2JqZWN0LCBzY3JhdGNoKQpAQCAt
MjYxMSw3ICsyNjExLDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBP
cFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICAgICAgYnRpbnog
dDIsIC5yZXNvbHZlU2NvcGVMb29wCiAKICAgICAucmVzb2x2ZVNjb3BlTG9vcEVuZDoKLSAgICAg
ICAgcmV0dXJuKENlbGxUYWcsIHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KENlbGxUYWcsIHQwKQogICAgIGVuZAogCiAgICAgbWV0YWRhdGEodDUsIHQwKQpAQCAtMjYyMSw3
ICsyNjIxLDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJlc29s
dmVTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBiaW5lcSB0MCwgR2xvYmFs
UHJvcGVydHksIC5yR2xvYmFsVmFyCiAgICAgZ2V0Q29uc3RhbnRTY29wZSh0MCkKICAgICBnbG9i
YWxMZXhpY2FsQmluZGluZ0Vwb2NoQ2hlY2soLnJEeW5hbWljLCB0MCwgdDIpCi0gICAgcmV0dXJu
KENlbGxUYWcsIHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQ2VsbFRhZywgdDAp
CiAKIC5yR2xvYmFsVmFyOgogICAgIGJpbmVxIHQwLCBHbG9iYWxWYXIsIC5yR2xvYmFsTGV4aWNh
bFZhcgpAQCAtMjY0NCw3ICsyNjQ0LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9yZXNvbHZl
X3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICB2
YXJJbmplY3Rpb25DaGVjayguckR5bmFtaWMpCiAgICAgZ2V0Q29uc3RhbnRTY29wZSh0MCkKICAg
ICBnbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2NoQ2hlY2soLnJEeW5hbWljLCB0MCwgdDIpCi0gICAg
cmV0dXJuKENlbGxUYWcsIHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQ2VsbFRh
ZywgdDApCiAKIC5yR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICBiaW5lcSB0
MCwgR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcywgLnJHbG9iYWxMZXhpY2FsVmFyV2l0
aFZhckluamVjdGlvbkNoZWNrcwpAQCAtMjY3NSwxMiArMjY3NSwxMiBAQCBtYWNybyBsb2FkV2l0
aFN0cnVjdHVyZUNoZWNrKG9wY29kZVN0cnVjdCwgZ2V0LCBvcGVyYW5kLCBzbG93UGF0aCkKIGVu
ZAogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9wR2V0RnJvbVNj
b3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50
T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9wR2V0RnJvbVNjb3BlLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gp
CiAgICAgbWFjcm8gZ2V0UHJvcGVydHkoKQogICAgICAgICBsb2FkcCBPcEdldEZyb21TY29wZTo6
TWV0YWRhdGE6Om1fb3BlcmFuZFt0NV0sIHQzCiAgICAgICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFi
bGVPZmZzZXQodDMsIHQwLCB0MSwgdDIpCiAgICAgICAgIHZhbHVlUHJvZmlsZShPcEdldEZyb21T
Y29wZSwgbV9wcm9maWxlLCB0NSwgdDEsIHQyKQotICAgICAgICByZXR1cm4odDEsIHQyKQorICAg
ICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MikKICAgICBlbmQKIAogICAgIG1h
Y3JvIGdldEdsb2JhbFZhcih0ZHpDaGVja0lmTmVjZXNzYXJ5KQpAQCAtMjY4OSw3ICsyNjg5LDcg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfZnJvbV9zY29wZSwgT3BHZXRGcm9tU2NvcGUs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGMKICAgICAgICAgbG9hZHAgUGF5bG9hZE9mZnNldFt0
MF0sIHQyCiAgICAgICAgIHRkekNoZWNrSWZOZWNlc3NhcnkodDEpCiAgICAgICAgIHZhbHVlUHJv
ZmlsZShPcEdldEZyb21TY29wZSwgbV9wcm9maWxlLCB0NSwgdDEsIHQyKQotICAgICAgICByZXR1
cm4odDEsIHQyKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MikKICAg
ICBlbmQKIAogICAgIG1hY3JvIGdldENsb3N1cmVWYXIoKQpAQCAtMjY5Nyw3ICsyNjk3LDcgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfZnJvbV9zY29wZSwgT3BHZXRGcm9tU2NvcGUsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGMKICAgICAgICAgbG9hZHAgSlNMZXhpY2FsRW52aXJvbm1l
bnRfdmFyaWFibGVzICsgVGFnT2Zmc2V0W3QwLCB0MywgOF0sIHQxCiAgICAgICAgIGxvYWRwIEpT
TGV4aWNhbEVudmlyb25tZW50X3ZhcmlhYmxlcyArIFBheWxvYWRPZmZzZXRbdDAsIHQzLCA4XSwg
dDIKICAgICAgICAgdmFsdWVQcm9maWxlKE9wR2V0RnJvbVNjb3BlLCBtX3Byb2ZpbGUsIHQ1LCB0
MSwgdDIpCi0gICAgICAgIHJldHVybih0MSwgdDIpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDEsIHQyKQogICAgIGVuZAogCiAgICAgbWV0YWRhdGEodDUsIHQwKQpAQCAtMjc1
NSw3ICsyNzU1LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfZnJvbV9zY29wZSwgT3BH
ZXRGcm9tU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGMKIGVuZCkKIAogCi1sbGludE9w
V2l0aE1ldGFkYXRhKG9wX3B1dF90b19zY29wZSwgT3BQdXRUb1Njb3BlLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bf
cHV0X3RvX3Njb3BlLCBPcFB1dFRvU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtYWNybyBwdXRQcm9wZXJ0
eSgpCiAgICAgICAgIGdldChtX3ZhbHVlLCB0MSkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZShzaXplLCB0MSwgdDIsIHQzKQpAQCAtMjg4OSwxMyArMjg4OSwxMyBAQCBsbGludE9wV2l0
aE1ldGFkYXRhKG9wX3B1dF90b19zY29wZSwgT3BQdXRUb1Njb3BlLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgbQogZW5kKQogCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfZnJvbV9h
cmd1bWVudHMsIE9wR2V0RnJvbUFyZ3VtZW50cywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfZnJvbV9hcmd1bWVudHMsIE9wR2V0
RnJvbUFyZ3VtZW50cywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fYXJndW1lbnRzLCB0MCkKICAgICBsb2FkaSBQYXlsb2Fk
T2Zmc2V0W2NmciwgdDAsIDhdLCB0MAogICAgIGdldHUoc2l6ZSwgT3BHZXRGcm9tQXJndW1lbnRz
LCBtX2luZGV4LCB0MSkKICAgICBsb2FkaSBEaXJlY3RBcmd1bWVudHNfc3RvcmFnZSArIFRhZ09m
ZnNldFt0MCwgdDEsIDhdLCB0MgogICAgIGxvYWRpIERpcmVjdEFyZ3VtZW50c19zdG9yYWdlICsg
UGF5bG9hZE9mZnNldFt0MCwgdDEsIDhdLCB0MwotICAgIHJldHVybih0MiwgdDMpCisgICAgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MiwgdDMpCiBlbmQpCiAKIApAQCAtMjkxMiwxNSArMjkx
MiwxNSBAQCBsbGludE9wKG9wX3B1dF90b19hcmd1bWVudHMsIE9wUHV0VG9Bcmd1bWVudHMsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9w
X2dldF9wYXJlbnRfc2NvcGUsIE9wR2V0UGFyZW50U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2dldF9wYXJlbnRfc2Nv
cGUsIE9wR2V0UGFyZW50U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3Njb3BlLCB0MCkKICAgICBsb2FkcCBQYXls
b2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0MAogICAgIGxvYWRwIEpTU2NvcGU6Om1fbmV4dFt0MF0s
IHQwCi0gICAgcmV0dXJuKENlbGxUYWcsIHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2goQ2VsbFRhZywgdDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxl
X3R5cGUsIE9wUHJvZmlsZVR5cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxlX3R5cGUsIE9wUHJvZmls
ZVR5cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKICAgICBsb2FkcCBD
b2RlQmxvY2s6Om1fdm1bdDFdLCB0MQogICAgICMgdDEgaXMgaG9sZGluZyB0aGUgcG9pbnRlciB0
byB0aGUgdHlwZVByb2ZpbGVyTG9nLgpAQCAtMjk2NSw3ICsyOTY1LDcgQEAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9wcm9maWxlX3R5cGUsIE9wUHJvZmlsZVR5cGUsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLAogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV9jb250
cm9sX2Zsb3csIE9wUHJvZmlsZUNvbnRyb2xGbG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV9jb250
cm9sX2Zsb3csIE9wUHJvZmlsZUNvbnRyb2xGbG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUs
IHQwKQogICAgIGxvYWRwIE9wUHJvZmlsZUNvbnRyb2xGbG93OjpNZXRhZGF0YTo6bV9iYXNpY0Js
b2NrTG9jYXRpb25bdDVdLCB0MAogICAgIGxvYWRpIEJhc2ljQmxvY2tMb2NhdGlvbjo6bV9leGVj
dXRpb25Db3VudFt0MF0sIHQxCkBAIC0yOTc2LDcgKzI5NzYsNyBAQCBsbGludE9wV2l0aE1ldGFk
YXRhKG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVDb250cm9sRmxvdywgbWFjcm8g
KHNpemUsCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3Jlc3RfbGVuZ3RoLCBP
cEdldFJlc3RMZW5ndGgsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGlu
dE9wV2l0aERlc3RpbmF0aW9uKG9wX2dldF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAg
ICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwg
dDAKICAgICBzdWJpIDEsIHQwCiAgICAgZ2V0dShzaXplLCBPcEdldFJlc3RMZW5ndGgsIG1fbnVt
UGFyYW1ldGVyc1RvU2tpcCwgdDEpCkBAIC0yOTg2LDEwICsyOTg2LDEwIEBAIGxsaW50T3BXaXRo
UmV0dXJuKG9wX2dldF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjCiAuc3RvcmVaZXJvOgogICAgIG1vdmUgMCwgdDAKIC5maW5pc2g6Ci0gICAg
cmV0dXJuKEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEludDMy
VGFnLCB0MCkKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVuLCBP
cEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX29wZW4sIE9wSXRlcmF0b3JPcGVu
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gpCiAgICAgbWFjcm8gZmFzdE5hcnJvdygpCiAgICAgICAgIGNhbGxTbG93UGF0aChf
aXRlcmF0b3Jfb3Blbl90cnlfZmFzdF9uYXJyb3cpCiAgICAgZW5kCkBAIC0zMDQ2LDcgKzMwNDYs
NyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX29wZW4sIE9wSXRlcmF0b3JPcGVu
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX2l0ZXJhdG9yX25leHQsIE9wSXRlcmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIAog
ICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fbmV4dCwgdDAsIHQxLCB0MCkKICAgICBiaW5lcSB0MSwg
RW1wdHlWYWx1ZVRhZywgLml0ZXJhdG9yTmV4dEdlbmVyaWMKQEAgLTMxMzYsMTMgKzMxMzYsMTMg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50
T3BXaXRoUHJvZmlsZShvcF9nZXRfaW50ZXJuYWxfZmllbGQsIE9wR2V0SW50ZXJuYWxGaWVsZCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShv
cF9nZXRfaW50ZXJuYWxfZmllbGQsIE9wR2V0SW50ZXJuYWxGaWVsZCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fYmFzZSwg
dDApCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBnZXR1KHNp
emUsIE9wR2V0SW50ZXJuYWxGaWVsZCwgbV9pbmRleCwgdDEpCiAgICAgbG9hZGkgSlNJbnRlcm5h
bEZpZWxkT2JqZWN0SW1wbF9pbnRlcm5hbEZpZWxkcyArIFRhZ09mZnNldFt0MCwgdDEsIFNsb3RT
aXplXSwgdDIKICAgICBsb2FkaSBKU0ludGVybmFsRmllbGRPYmplY3RJbXBsX2ludGVybmFsRmll
bGRzICsgUGF5bG9hZE9mZnNldFt0MCwgdDEsIFNsb3RTaXplXSwgdDMKLSAgICByZXR1cm4odDIs
IHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIsIHQzKQogZW5kKQogCiBsbGlu
dE9wKG9wX3B1dF9pbnRlcm5hbF9maWVsZCwgT3BQdXRJbnRlcm5hbEZpZWxkLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCkKQEAgLTMxOTgsMTEgKzMxOTgsMTEgQEAgZW5kKQogb3AoZnV6emVy
X3JldHVybl9lYXJseV9mcm9tX2xvb3BfaGludCwgbWFjcm8gKCkKICAgICBtb3ZlIFVuZGVmaW5l
ZFRhZywgcjEKICAgICBtb3ZlIDAsIHIwCi0gICAgZG9SZXR1cm4oKQorICAgIGRvc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCgpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9jaGVj
a19wcml2YXRlX2JyYW5kLCBPcENoZWNrUHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tf
cHJpdmF0ZV9icmFuZCwgT3BDaGVja1ByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRh
KHQ1LCB0MikKICAgICBnZXQobV9iYXNlLCB0MykKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
UGF5bG9hZChzaXplLCB0MywgQ2VsbFRhZywgdDAsIC5vcENoZWNrUHJpdmF0ZUJyYW5kU2xvdykK
QEAgLTMyMjIsNyArMzIyMiw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0
ZV9icmFuZCwgT3BDaGVja1ByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdlCiBlbmQpCiAKIAot
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9zZXRfcHJpdmF0ZV9icmFuZCwgT3BTZXRQcml2YXRlQnJh
bmQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9zZXRfcHJpdmF0ZV9icmFuZCwgT3BTZXRQcml2YXRlQnJhbmQsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgZ2V0KG1fYmFzZSwgdDMpCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQoc2l6ZSwgdDMsIENlbGxUYWcsIHQwLCAub3BTZXRQ
cml2YXRlQnJhbmRTbG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRleCA1ZGU3YmNjN2ZkMGQ0ZjA0MGYyZGY5NGJk
NDczNDVkODM1ODY5NDQ3Li42ODgyYzQ4MzQ3MmZhOTlmNTQzNjg4MmQxNDQ0NjlmYmM3ZjJhZWNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRl
cnByZXRlcjY0LmFzbQpAQCAtNzEsNyArNzEsNyBAQCBtYWNybyBnZXRPcGVyYW5kV2lkZTMyV2Fz
bShvcGNvZGVTdHJ1Y3QsIGZpZWxkTmFtZSwgZHN0KQogICAgIGxvYWRpcyBjb25zdGV4cHIgJW9w
Y29kZVN0cnVjdCVfJWZpZWxkTmFtZSVfaW5kZXggKiA0ICsgT3Bjb2RlSURXaWRlMzJTaXplV2Fz
bVtQQiwgUEMsIDFdLCBkc3QKIGVuZAogCi1tYWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gs
IGZuKQorbWFjcm8gbWFrZURlc3RpbmF0aW9uKGdldCwgZGlzcGF0Y2gsIGZuKQogICAgIGZuKG1h
Y3JvICh2YWx1ZSkKICAgICAgICAgbW92ZSB2YWx1ZSwgdDIKICAgICAgICAgZ2V0KG1fZHN0LCB0
MSkKQEAgLTgwLDcgKzgwLDcgQEAgbWFjcm8gbWFrZVJldHVybihnZXQsIGRpc3BhdGNoLCBmbikK
ICAgICBlbmQpCiBlbmQKIAotbWFjcm8gbWFrZVJldHVyblByb2ZpbGVkKG9wY29kZVN0cnVjdCwg
Z2V0LCBtZXRhZGF0YSwgZGlzcGF0Y2gsIGZuKQorbWFjcm8gbWFrZURlc3RpbmF0aW9uUHJvZmls
ZWQob3Bjb2RlU3RydWN0LCBnZXQsIG1ldGFkYXRhLCBkaXNwYXRjaCwgZm4pCiAgICAgZm4obWFj
cm8gKHZhbHVlKQogICAgICAgICBtb3ZlIHZhbHVlLCB0MwogICAgICAgICBtZXRhZGF0YSh0MSwg
dDIpCkBAIC04NzAsMzQgKzg3MCwzNCBAQCBfbGxpbnRfb3BfZW50ZXI6CiAgICAgZGlzcGF0Y2hP
cChuYXJyb3csIG9wX2VudGVyKQogCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfYXJndW1l
bnQsIE9wR2V0QXJndW1lbnQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCits
bGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2FyZ3VtZW50LCBPcEdldEFyZ3VtZW50LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQo
bV9pbmRleCwgdDIpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzW2Nmcl0sIHQwCiAgICAgYmlsdGVxIHQwLCB0MiwgLm9wR2V0QXJndW1lbnRPdXRP
ZkJvdW5kcwogICAgIGxvYWRxIFRoaXNBcmd1bWVudE9mZnNldFtjZnIsIHQyLCA4XSwgdDAKLSAg
ICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogLm9wR2V0
QXJndW1lbnRPdXRPZkJvdW5kczoKLSAgICByZXR1cm4oVmFsdWVVbmRlZmluZWQpCisgICAgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaChWYWx1ZVVuZGVmaW5lZCkKIGVuZCkKIAogCi1sbGludE9w
V2l0aFJldHVybihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50LCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9hcmd1
bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0ICsgQXJn
dW1lbnRDb3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwgdDAKICAgICBzdWJpIDEsIHQwCiAgICAgb3Jx
IFRhZ051bWJlciwgdDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9nZXRfc2NvcGUsIE9wR2V0
U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERl
c3RpbmF0aW9uKG9wX2dldF9zY29wZSwgT3BHZXRTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZHAgQ2FsbGVlW2Nmcl0s
IHQwCiAgICAgbG9hZHAgSlNDYWxsZWU6Om1fc2NvcGVbdDBdLCB0MAotICAgIHJldHVybih0MCkK
KyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRo
TWV0YWRhdGEob3BfdG9fdGhpcywgT3BUb1RoaXMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90b190aGlzLCBPcFRv
VGhpcywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyY0RzdCwgdDApCiAgICAgbG9hZHEgW2NmciwgdDAs
IDhdLCB0MAogICAgIGJ0cW56IHQwLCBub3RDZWxsTWFzaywgLm9wVG9UaGlzU2xvdwpAQCAtOTI1
LDIwICs5MjUsMjAgQEAgbGxpbnRPcChvcF9jaGVja190ZHosIE9wQ2hlY2tUZHosIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX21vdiwg
T3BNb3YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERl
c3RpbmF0aW9uKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDEpCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDIpCi0gICAgcmV0dXJuKHQyKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2godDIpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3Bfbm90
LCBPcE5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRo
RGVzdGluYXRpb24ob3Bfbm90LCBPcE5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDIpCiAgICAgeG9ycSBWYWx1ZUZhbHNlLCB0
MgogICAgIGJ0cW56IHQyLCB+MSwgLm9wTm90U2xvdwogICAgIHhvcnEgVmFsdWVUcnVlLCB0Mgot
ICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BO
b3RTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX25vdCkKQEAgLTk0NywxNCArOTQ3
LDE0IEBAIGVuZCkKIAogCiBtYWNybyBlcXVhbGl0eUNvbXBhcmlzb25PcChvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJpc29uKQotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9w
XyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
cmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29kZU5hbWUlLCBvcGNv
ZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQwKQogICAgICAgICBnZXQobV9saHMsIHQyKQog
ICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIoc2l6ZSwgdDAsIHQxLCAuc2xvdykK
ICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHNpemUsIHQyLCB0MCwgLnNsb3cp
CiAgICAgICAgIGludGVnZXJDb21wYXJpc29uKHQwLCB0MSwgdDApCiAgICAgICAgIG9ycSBWYWx1
ZUZhbHNlLCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDApCiAKICAgICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3Bh
dGhfJW9wY29kZU5hbWUlKQpAQCAtOTY0LDcgKzk2NCw3IEBAIGVuZAogCiAKIG1hY3JvIGVxdWFs
TnVsbENvbXBhcmlzb25PcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQotICAgIGxsaW50
T3BXaXRoUmV0dXJuKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX29wZXJhbmQsIHQwKQogICAgICAgICBsb2FkcSBb
Y2ZyLCB0MCwgOF0sIHQwCiAgICAgICAgIGJ0cW56IHQwLCBub3RDZWxsTWFzaywgLmltbWVkaWF0
ZQpAQCAtOTgyLDcgKzk4Miw3IEBAIG1hY3JvIGVxdWFsTnVsbENvbXBhcmlzb25PcChvcGNvZGVO
YW1lLCBvcGNvZGVTdHJ1Y3QsIGZuKQogICAgICAgICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCiAg
ICAgLmRvbmU6CiAgICAgICAgIGZuKHQwKQotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAgICAgZW5kKQogZW5kCiAKQEAgLTk5NCwxOCAr
OTk0LDE4IEBAIGVxdWFsTnVsbENvbXBhcmlzb25PcChvcF9uZXFfbnVsbCwgT3BOZXFOdWxsLAog
ICAgIG1hY3JvICh2YWx1ZSkgeG9ycSBWYWx1ZVRydWUsIHZhbHVlIGVuZCkKIAogCi1sbGludE9w
V2l0aFJldHVybihvcF9pc191bmRlZmluZWRfb3JfbnVsbCwgT3BJc1VuZGVmaW5lZE9yTnVsbCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRp
b24ob3BfaXNfdW5kZWZpbmVkX29yX251bGwsIE9wSXNVbmRlZmluZWRPck51bGwsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldCht
X29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQog
ICAgIGFuZHEgflRhZ1VuZGVmaW5lZCwgdDAKICAgICBjcWVxIHQwLCBWYWx1ZU51bGwsIHQwCiAg
ICAgb3JxIFZhbHVlRmFsc2UsIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIAogbWFjcm8gc3RyaWN0RXFPcChvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGNyZWF0ZUJvb2xlYW4pCi0gICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfJW9w
Y29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1
cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0
cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgICAgIGdldChtX3JocywgdDApCiAgICAgICAgIGdldChtX2xocywgdDIpCiAgICAg
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxKQpAQCAtMTAyMCw3ICsxMDIw
LDcgQEAgbWFjcm8gc3RyaWN0RXFPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGNyZWF0ZUJv
b2xlYW4pCiAgICAgICAgICMgaWYgKGxlZnQgaXMgQ2VsbCB8fCByaWdodCBpcyBDZWxsKQogICAg
ICAgICAjICAgICBnb3RvIHNsb3dQYXRoOwogICAgICAgICAjIGRvbmU6Ci0gICAgICAgICMgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICAgIyBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoIHJlc3VsdDsK
IAogICAgICAgICAjIFRoaXMgZnJhZ21lbnQgaW1wbGVtZW50cyAobGVmdCBpcyBEb3VibGUgfHwg
cmlnaHQgaXMgRG91YmxlKSwgd2l0aCBhIHNpbmdsZSBicmFuY2ggaW5zdGVhZCBvZiB0aGUgNCB0
aGF0IHdvdWxkIGJlIG5haXZlbHkgcmVxdWlyZWQgaWYgd2UgdXNlZCBicmFuY2hJZkludDMyL2Jy
YW5jaElmTnVtYmVyCiAgICAgICAgICMgVGhlIHRyaWNrIGlzIHRoYXQgaWYgYSBKU1ZhbHVlIGlz
IGFuIEludDMyLCB0aGVuIGFkZGluZyAxPDw0OSB0byBpdCB3aWxsIG1ha2UgaXQgb3ZlcmZsb3cs
IGxlYXZpbmcgYWxsIGhpZ2ggYml0cyBhdCAwCkBAIC0xMDQ1LDcgKzEwNDUsNyBAQCBtYWNybyBz
dHJpY3RFcU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgY3JlYXRlQm9vbGVhbikKIAogICAg
IC5kb25lOgogICAgICAgICBjcmVhdGVCb29sZWFuKHQ1KQotICAgICAgICByZXR1cm4odDUpCisg
ICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDUpCiAKICAgICAuc2xvdzoKICAgICAg
ICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpAQCAtMTExOSw3ICsxMTE5
LDcgQEAgc3RyaWN0RXF1YWxpdHlKdW1wT3Aoam5zdHJpY3RlcSwgT3BKbnN0cmljdGVxLAogICAg
IG1hY3JvIChqdW1wLCB0YXJnZXRMYWJlbCwgZGlzcGF0Y2gpIGp1bXAodGFyZ2V0TGFiZWwpIGVu
ZCkKIAogbWFjcm8gcHJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyT3BlcmF0
aW9uKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIGxs
aW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgbG9hZHEgW2NmciwgdDAsIDhdLCB0
MQogICAgICAgICAjIHNyY0RzdCBpbiB0MQpAQCAtMTEzOCwyNiArMTEzOCwyNiBAQCBtYWNybyBw
cmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb24pCiAKIGVuZAog
Ci1sbGludE9wV2l0aFByb2ZpbGUob3BfdG9fbnVtYmVyLCBPcFRvTnVtYmVyLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWJl
ciwgT3BUb051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZShzaXplLCB0MCwgdDIpCiAgICAgYnFhZXEgdDIsIG51bWJlclRhZywgLm9wVG9OdW1i
ZXJJc0ltbWVkaWF0ZQogICAgIGJ0cXogdDIsIG51bWJlclRhZywgLm9wVG9OdW1iZXJTbG93CiAu
b3BUb051bWJlcklzSW1tZWRpYXRlOgotICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKHQyKQogCiAub3BUb051bWJlclNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9z
bG93X3BhdGhfdG9fbnVtYmVyKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhQ
cm9maWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1l
cmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNp
emUsIHQwLCB0MikKICAgICBicWFlcSB0MiwgbnVtYmVyVGFnLCAub3BUb051bWVyaWNJc0ltbWVk
aWF0ZQogICAgIGJ0cXogdDIsIG51bWJlclRhZywgLm9wVG9OdW1lcmljU2xvdwogLm9wVG9OdW1l
cmljSXNJbW1lZGlhdGU6Ci0gICAgcmV0dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2godDIpCiAKIC5vcFRvTnVtZXJpY1Nsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3Bh
dGhfdG9fbnVtZXJpYykKQEAgLTExNjUsMTMgKzExNjUsMTMgQEAgbGxpbnRPcFdpdGhQcm9maWxl
KG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
cmV0dXIKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90b19zdHJpbmcsIE9wVG9TdHJp
bmcsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3Rp
bmF0aW9uKG9wX3RvX3N0cmluZywgT3BUb1N0cmluZywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAgICAgYnRxbnogdDAsIG5v
dENlbGxNYXNrLCAub3BUb1N0cmluZ1Nsb3cKICAgICBiYm5lcSBKU0NlbGw6Om1fdHlwZVt0MF0s
IFN0cmluZ1R5cGUsIC5vcFRvU3RyaW5nU2xvdwogLm9wVG9TdHJpbmdJc1N0cmluZzoKLSAgICBy
ZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogLm9wVG9TdHJp
bmdTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX3N0cmluZykKQEAgLTExNzks
MTIgKzExNzksMTIgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9fc3RyaW5nLCBPcFRvU3RyaW5n
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogZW5kKQogCiAKLWxsaW50T3BX
aXRoUHJvZmlsZShvcF90b19vYmplY3QsIE9wVG9PYmplY3QsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2Jq
ZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNp
emUsIHQwLCB0MikKICAgICBidHFueiB0Miwgbm90Q2VsbE1hc2ssIC5vcFRvT2JqZWN0U2xvdwog
ICAgIGJiYiBKU0NlbGw6Om1fdHlwZVt0Ml0sIE9iamVjdFR5cGUsIC5vcFRvT2JqZWN0U2xvdwot
ICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BU
b09iamVjdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9fb2JqZWN0KQpAQCAt
MTE5Miw3ICsxMTkyLDcgQEAgbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX29iamVjdCwgT3BUb09i
amVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKIGVuZCkKIAogCi1sbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9uZWdhdGUs
IE9wTmVnYXRlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDMpCiAgICAgYnFiIHQzLCBudW1iZXJUYWcsIC5vcE5l
Z2F0ZU5vdEludApAQCAtMTIwMCwxMiArMTIwMCwxMiBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9w
X25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
cgogICAgIG5lZ2kgdDMKICAgICBvcnEgbnVtYmVyVGFnLCB0MwogICAgIHVwZGF0ZVVuYXJ5QXJp
dGhQcm9maWxlKHNpemUsIE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQxLCB0MikKLSAgICBy
ZXR1cm4odDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MykKIC5vcE5lZ2F0ZU5v
dEludDoKICAgICBidHF6IHQzLCBudW1iZXJUYWcsIC5vcE5lZ2F0ZVNsb3cKICAgICB4b3JxIDB4
ODAwMDAwMDAwMDAwMDAwMCwgdDMKICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBP
cE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0MSwgdDIpCi0gICAgcmV0dXJuKHQzKQorICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDMpCiAKIC5vcE5lZ2F0ZVNsb3c6CiAgICAgY2Fs
bFNsb3dQYXRoKF9zbG93X3BhdGhfbmVnYXRlKQpAQCAtMTIxNCw3ICsxMjE0LDcgQEAgZW5kKQog
CiAKIG1hY3JvIGJpbmFyeU9wQ3VzdG9tU3RvcmUob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBp
bnRlZ2VyT3BlcmF0aW9uQW5kU3RvcmUsIGRvdWJsZU9wZXJhdGlvbikKLSAgICBsbGludE9wV2l0
aE1ldGFkYXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9w
XyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX3Jocywg
dDApCiAgICAgICAgIGdldChtX2xocywgdDIpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUoc2l6ZSwgdDAsIHQxKQpAQCAtMTMyOCw3ICsxMzI4LDcgQEAgYmluYXJ5T3Aoc3ViLCBPcFN1
YiwKICAgICBtYWNybyAobGhzLCByaHMpIHN1YmQgcmhzLCBsaHMgZW5kKQogCiBpZiBYODZfNjQg
b3IgWDg2XzY0X1dJTgotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wX21vZCwgT3BNb2QsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0aW5hdGlv
bihvcF9tb2QsIE9wTW9kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MCkKICAgICAgICAgZ2V0KG1fbGhz
LCB0MikKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHNpemUsIHQwLCB0MSwg
LnNsb3cpCkBAIC0xMzQ1LDEzICsxMzQ1LDEzIEBAIGlmIFg4Nl82NCBvciBYODZfNjRfV0lOCiAg
ICAgICAgIGNkcWkKICAgICAgICAgaWRpdmkgdDMKICAgICAgICAgb3JxIG51bWJlclRhZywgcjEK
LSAgICAgICAgcmV0dXJuKHIxKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIx
KQogICAgIC5uZWVkc05lZ1plcm9DaGVjazoKICAgICAgICAgY2RxaQogICAgICAgICBpZGl2aSB0
MwogICAgICAgICBidGl6IHIxLCAuc2xvdwogICAgICAgICBvcnEgbnVtYmVyVGFnLCByMQotICAg
ICAgICByZXR1cm4ocjEpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gocjEpCiAK
ICAgICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfbW9kKQpAQCAtMTM2
MSw3ICsxMzYxLDcgQEAgZWxzZQogICAgIHNsb3dQYXRoT3AobW9kKQogZW5kCiAKLWxsaW50T3BX
aXRoUmV0dXJuKG9wX3BvdywgT3BQb3csIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1
cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3BvdywgT3BQb3csIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3Jocywg
dDApCiAgICAgZ2V0KG1fbGhzLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIo
c2l6ZSwgdDAsIHQxLCAuc2xvdykKQEAgLTE0MDAsMTEgKzE0MDAsMTEgQEAgbGxpbnRPcFdpdGhS
ZXR1cm4ob3BfcG93LCBPcFBvdywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikK
ICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3Vuc2lnbmVkLCBP
cFVuc2lnbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdp
dGhEZXN0aW5hdGlvbihvcF91bnNpZ25lZCwgT3BVbnNpZ25lZCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwg
dDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDIpCiAgICAgYmlsdCB0
MiwgMCwgLm9wVW5zaWduZWRTbG93Ci0gICAgcmV0dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2godDIpCiAub3BVbnNpZ25lZFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93
X3BhdGhfdW5zaWduZWQpCiAgICAgZGlzcGF0Y2goKQpAQCAtMTQxMiw3ICsxNDEyLDcgQEAgZW5k
KQogCiAKIG1hY3JvIGNvbW1vbkJpdE9wKG9wS2luZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0
LCBvcGVyYXRpb24pCi0gICAgb3BLaW5kKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIG9wS2luZChvcF8lb3Bjb2Rl
TmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX3JocywgdDApCiAgICAgICAgIGdldCht
X2xocywgdDIpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxKQpA
QCAtMTQyMSw3ICsxNDIxLDcgQEAgbWFjcm8gY29tbW9uQml0T3Aob3BLaW5kLCBvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKICAgICAgICAgYnFiIHQxLCBudW1iZXJUYWcsIC5z
bG93CiAgICAgICAgIG9wZXJhdGlvbih0MCwgdDEpCiAgICAgICAgIG9ycSBudW1iZXJUYWcsIHQw
Ci0gICAgICAgIHJldHVybih0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MCkKIAogICAgIC5zbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2Rl
TmFtZSUpCkBAIC0xNDMwLDcgKzE0MzAsNyBAQCBtYWNybyBjb21tb25CaXRPcChvcEtpbmQsIG9w
Y29kZU5hbWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0aW9uKQogZW5kCiAKIG1hY3JvIGJpdE9wKG9w
Y29kZU5hbWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0aW9uKQotICAgIGNvbW1vbkJpdE9wKGxsaW50
T3BXaXRoUmV0dXJuLCBvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKKyAgICBj
b21tb25CaXRPcChsbGludE9wV2l0aERlc3RpbmF0aW9uLCBvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1
Y3QsIG9wZXJhdGlvbikKIGVuZAogCiBtYWNybyBiaXRPcFByb2ZpbGVkKG9wY29kZU5hbWUsIG9w
Y29kZVN0cnVjdCwgb3BlcmF0aW9uKQpAQCAtMTQ1NywxMiArMTQ1NywxMiBAQCBiaXRPcFByb2Zp
bGVkKGJpdG9yLCBPcEJpdG9yLAogYml0T3BQcm9maWxlZChiaXR4b3IsIE9wQml0eG9yLAogICAg
IG1hY3JvIChsaHMsIHJocykgeG9yaSByaHMsIGxocyBlbmQpCiAKLWxsaW50T3BXaXRoUHJvZmls
ZShvcF9iaXRub3QsIE9wQml0bm90LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJu
KQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX2JpdG5vdCwgT3BCaXRub3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJh
bmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMihzaXplLCB0MCwgdDMsIC5v
cEJpdE5vdFNsb3cpCiAgICAgbm90aSB0MwogICAgIG9ycSBudW1iZXJUYWcsIHQzCi0gICAgcmV0
dXJuKHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDMpCiAub3BCaXROb3RTbG93
OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2JpdG5vdCkKICAgICBkaXNwYXRjaCgpCkBA
IC0xNDkyLDY3ICsxNDkyLDY3IEBAIGxsaW50T3Aob3Bfb3ZlcnJpZGVzX2hhc19pbnN0YW5jZSwg
T3BPdmVycmlkZXNIYXNJbnN0YW5jZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzCiBlbmQpCiAKIAot
bGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfZW1wdHksIE9wSXNFbXB0eSwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfZW1wdHks
IE9wSXNFbXB0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZShzaXplLCB0MSwgdDApCiAgICAgY3FlcSB0MCwgVmFsdWVFbXB0eSwgdDMKICAgICBvcnEg
VmFsdWVGYWxzZSwgdDMKLSAgICByZXR1cm4odDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MykKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90eXBlb2ZfaXNfdW5kZWZp
bmVkLCBPcFR5cGVvZklzVW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0
dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90eXBlb2ZfaXNfdW5kZWZpbmVkLCBPcFR5
cGVvZklzVW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHNpemUsIHQxLCB0MCkKICAgICBidHF6IHQwLCBub3RDZWxsTWFzaywgLm9wSXNV
bmRlZmluZWRDZWxsCiAgICAgY3FlcSB0MCwgVmFsdWVVbmRlZmluZWQsIHQzCiAgICAgb3JxIFZh
bHVlRmFsc2UsIHQzCi0gICAgcmV0dXJuKHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDMpCiAub3BJc1VuZGVmaW5lZENlbGw6CiAgICAgYnRibnogSlNDZWxsOjptX2ZsYWdzW3Qw
XSwgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgLm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQKICAgICBt
b3ZlIFZhbHVlRmFsc2UsIHQxCi0gICAgcmV0dXJuKHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDEpCiAubWFzcXVlcmFkZXNBc1VuZGVmaW5lZDoKICAgICBsb2FkU3RydWN0dXJl
V2l0aFNjcmF0Y2godDAsIHQzLCB0MSkKICAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKICAg
ICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QxXSwgdDEKICAgICBjcGVxIFN0cnVj
dHVyZTo6bV9nbG9iYWxPYmplY3RbdDNdLCB0MSwgdDAKICAgICBvcnEgVmFsdWVGYWxzZSwgdDAK
LSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19ib29sZWFuLCBPcElzQm9vbGVhbiwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bf
aXNfYm9vbGVhbiwgT3BJc0Jvb2xlYW4sIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRD
b25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQogICAgIHhvcnEgVmFsdWVGYWxzZSwgdDAK
ICAgICB0cXogdDAsIH4xLCB0MAogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgIHJldHVybih0
MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKLWxsaW50T3BX
aXRoUmV0dXJuKG9wX2lzX251bWJlciwgT3BJc051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfbnVtYmVyLCBPcElz
TnVtYmVyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KHNpemUsIHQxLCB0MCkKICAgICB0cW56IHQwLCBudW1iZXJUYWcsIHQxCiAgICAgb3JxIFZhbHVl
RmFsc2UsIHQxCi0gICAgcmV0dXJuKHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDEpCiBlbmQpCiAKIGlmIEJJR0lOVDMyCi0gICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfYmln
X2ludCwgT3BJc0JpZ0ludCwgbWFjcm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAg
IGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfYmlnX2ludCwgT3BJc0JpZ0ludCwgbWFjcm8o
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAg
Z2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwg
dDEsIHQwKQogICAgICAgICBidHFueiB0MCwgbm90Q2VsbE1hc2ssIC5ub3RDZWxsQ2FzZQogICAg
ICAgICBjYmVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgSGVhcEJpZ0ludFR5cGUsIHQxCiAgICAgICAg
IG9ycSBWYWx1ZUZhbHNlLCB0MQotICAgICAgICByZXR1cm4odDEpCisgICAgICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2godDEpCiAgICAgLm5vdENlbGxDYXNlOgogICAgICAgICBhbmRxIE1h
c2tCaWdJbnQzMiwgdDAKICAgICAgICAgY3FlcSB0MCwgVGFnQmlnSW50MzIsIHQwCiAgICAgICAg
IG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2godDApCiAgICAgZW5kKQogZWxzZQogIyBpZiBCSUdJTlQzMiBpcyBu
b3Qgc3VwcG9ydGVkIHdlIGdlbmVyYXRlIG9wX2lzX2NlbGxfd2l0aF90eXBlIGluc3RlYWQgb2Yg
b3BfaXNfYmlnX2ludApAQCAtMTU2MSwyOCArMTU2MSwyOCBAQCBlbHNlCiAgICAgZW5kKQogZW5k
CiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX2NlbGxfd2l0aF90eXBlLCBPcElzQ2VsbFdpdGhU
eXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF9pc19jZWxsX3dpdGhfdHlwZSwgT3BJc0NlbGxXaXRoVHlwZSwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0dShz
aXplLCBPcElzQ2VsbFdpdGhUeXBlLCBtX3R5cGUsIHQwKQogICAgIGdldChtX29wZXJhbmQsIHQx
KQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQzKQogICAgIGJ0cW56IHQz
LCBub3RDZWxsTWFzaywgLm5vdENlbGxDYXNlCiAgICAgY2JlcSBKU0NlbGw6Om1fdHlwZVt0M10s
IHQwLCB0MQogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MQotICAgIHJldHVybih0MSkKKyAgICBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogLm5vdENlbGxDYXNlOgotICAgIHJldHVybihWYWx1
ZUZhbHNlKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goVmFsdWVGYWxzZSkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19vYmplY3QsIE9wSXNPYmplY3QsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lz
X29iamVjdCwgT3BJc09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAgICAgYnRxbnogdDAsIG5vdENlbGxNYXNrLCAu
b3BJc09iamVjdE5vdENlbGwKICAgICBjYmFlcSBKU0NlbGw6Om1fdHlwZVt0MF0sIE9iamVjdFR5
cGUsIHQxCiAgICAgb3JxIFZhbHVlRmFsc2UsIHQxCi0gICAgcmV0dXJuKHQxKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2godDEpCiAub3BJc09iamVjdE5vdENlbGw6Ci0gICAgcmV0dXJu
KFZhbHVlRmFsc2UpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChWYWx1ZUZhbHNlKQog
ZW5kKQogCiAKQEAgLTE2MTgsNyArMTYxOCw3IEBAIG1hY3JvIHN0b3JlUHJvcGVydHlBdFZhcmlh
YmxlT2Zmc2V0KHByb3BlcnR5T2Zmc2V0QXNJbnQsIG9iamVjdEFuZFN0b3JhZ2UsIHZhbHVlCiBl
bmQKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3RyeV9nZXRfYnlfaWQsIE9wVHJ5R2V0QnlJ
ZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9w
V2l0aE1ldGFkYXRhKG9wX3RyeV9nZXRfYnlfaWQsIE9wVHJ5R2V0QnlJZCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IG1ldGFkYXRhKHQyLCB0MCkKICAgICBnZXQobV9iYXNlLCB0MCkKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbChzaXplLCB0MCwgdDMsIC5vcFRyeUdldEJ5SWRTbG93KQpAQCAtMTYyOCwx
NCArMTYyOCwxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RyeV9nZXRfYnlfaWQsIE9wVHJ5
R2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsCiAgICAgbG9hZGkgT3BUcnlHZXRC
eUlkOjpNZXRhZGF0YTo6bV9vZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFi
bGVPZmZzZXQodDEsIHQzLCB0MCkKICAgICB2YWx1ZVByb2ZpbGUoT3BUcnlHZXRCeUlkLCBtX3By
b2ZpbGUsIHQyLCB0MCkKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MCkKIAogLm9wVHJ5R2V0QnlJZFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfdHJ5X2dldF9ieV9pZCkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BX
aXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkX2RpcmVjdCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRh
dGEob3BfZ2V0X2J5X2lkX2RpcmVjdCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0
YWRhdGEodDIsIHQwKQogICAgIGdldChtX2Jhc2UsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGVDZWxsKHNpemUsIHQwLCB0MywgLm9wR2V0QnlJZERpcmVjdFNsb3cpCkBAIC0xNjQ1LDcg
KzE2NDUsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZF9kaXJlY3QsIE9wR2V0
QnlJZERpcmVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcAogICAgIGxvYWRpIE9wR2V0QnlJZERp
cmVjdDo6TWV0YWRhdGE6Om1fb2Zmc2V0W3QyXSwgdDEKICAgICBsb2FkUHJvcGVydHlBdFZhcmlh
YmxlT2Zmc2V0KHQxLCB0MywgdDApCiAgICAgdmFsdWVQcm9maWxlKE9wR2V0QnlJZERpcmVjdCwg
bV9wcm9maWxlLCB0MiwgdDApCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDApCiAKIC5vcEdldEJ5SWREaXJlY3RTbG93OgogICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZF9kaXJlY3QpCkBAIC0xNjUzLDcgKzE2NTMsNyBAQCBs
bGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZF9kaXJlY3QsIE9wR2V0QnlJZERpcmVjdCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcAogZW5kKQogCiAjIFRoZSBiYXNlIG9iamVjdCBpcyBleHBl
Y3RlZCBpbiB0MwotbWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2Rl
TWV0YWRhdGFOYW1lLCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG93TGFiZWwsIHNpemUsIG1ldGFkYXRh
LCByZXR1cm4pCittYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNvZGVTdHJ1Y3QsIG1vZGVN
ZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsb3dMYWJlbCwgc2l6ZSwgbWV0YWRhdGEs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDIsIHQxKQogICAgIGxv
YWRiICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRhZGF0YU5hbWUlLm1vZGVbdDJd
LCB0MQogCkBAIC0xNjY1LDcgKzE2NjUsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihv
cGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAg
IGxvYWRpcyAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5kZWZh
dWx0TW9kZS5jYWNoZWRPZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVP
ZmZzZXQodDEsIHQzLCB0MCkKICAgICB2YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVBy
b2ZpbGVOYW1lLCB0MiwgdDApCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDApCiAKIC5vcEdldEJ5SWRQcm90b0xvYWQ6CiAgICAgYmJuZXEgdDEsIGNvbnN0
ZXhwciBHZXRCeUlkTW9kZTo6UHJvdG9Mb2FkLCAub3BHZXRCeUlkQXJyYXlMZW5ndGgKQEAgLTE2
NzYsNyArMTY3Niw3IEBAIG1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwg
bW9kZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvCiAgICAgbG9hZHAgJW9wY29k
ZVN0cnVjdCU6Ok1ldGFkYXRhOjolbW9kZU1ldGFkYXRhTmFtZSUucHJvdG9Mb2FkTW9kZS5jYWNo
ZWRTbG90W3QyXSwgdDMKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0Mywg
dDApCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgdDIs
IHQwKQotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQog
CiAub3BHZXRCeUlkQXJyYXlMZW5ndGg6CiAgICAgYmJuZXEgdDEsIGNvbnN0ZXhwciBHZXRCeUlk
TW9kZTo6QXJyYXlMZW5ndGgsIC5vcEdldEJ5SWRVbnNldApAQCAtMTY4OSwyMSArMTY4OSwyMSBA
QCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5h
bWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAgIGJpbHQgdDAsIDAsIHNsb3dMYWJlbAogICAg
IG9ycSBudW1iZXJUYWcsIHQwCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQ
cm9maWxlTmFtZSwgdDIsIHQwKQotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKHQwKQogCiAub3BHZXRCeUlkVW5zZXQ6CiAgICAgbG9hZGkgSlNDZWxsOjptX3N0
cnVjdHVyZUlEW3QzXSwgdDEKICAgICBsb2FkaSAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6OiVt
b2RlTWV0YWRhdGFOYW1lJS51bnNldE1vZGUuc3RydWN0dXJlSURbdDJdLCB0MAogICAgIGJpbmVx
IHQwLCB0MSwgc2xvd0xhYmVsCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQ
cm9maWxlTmFtZSwgdDIsIFZhbHVlVW5kZWZpbmVkKQotICAgIHJldHVybihWYWx1ZVVuZGVmaW5l
ZCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKFZhbHVlVW5kZWZpbmVkKQogCiBlbmQK
IAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRh
KG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fYmFzZSwgdDApCiAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwgdDAsIHQzLCAub3BHZXRCeUlkU2xv
dykKLSAgICBwZXJmb3JtR2V0QnlJREhlbHBlcihPcEdldEJ5SWQsIG1fbW9kZU1ldGFkYXRhLCBt
X3Byb2ZpbGUsIC5vcEdldEJ5SWRTbG93LCBzaXplLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIHBl
cmZvcm1HZXRCeUlESGVscGVyKE9wR2V0QnlJZCwgbV9tb2RlTWV0YWRhdGEsIG1fcHJvZmlsZSwg
Lm9wR2V0QnlJZFNsb3csIHNpemUsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KQogCiAub3BHZXRCeUlkU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9n
ZXRfYnlfaWQpCkBAIC0xNzEzLDEyICsxNzEzLDEyIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
Z2V0X2J5X2lkLCBPcEdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
CiAgICAgZ2V0dGVyU2V0dGVyT1NSRXhpdFJldHVyblBvaW50KG9wX2dldF9ieV9pZCwgc2l6ZSkK
ICAgICBtZXRhZGF0YSh0MiwgdDMpCiAgICAgdmFsdWVQcm9maWxlKE9wR2V0QnlJZCwgbV9wcm9m
aWxlLCB0MiwgcjApCi0gICAgcmV0dXJuKHIwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gocjApCiAKIGVuZCkKIAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X3Byb3RvdHlwZV9v
ZiwgT3BHZXRQcm90b3R5cGVPZiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikK
K2xsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfcHJvdG90eXBlX29mLCBPcEdldFByb3RvdHlwZU9m
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV92YWx1ZSwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0
MSwgdDApCiAKQEAgLTE3MzEsNyArMTczMSw3IEBAIGxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRf
cHJvdG90eXBlX29mLCBPcEdldFByb3RvdHlwZU9mLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwCiAK
ICAgICBsb2FkcSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlW3QyXSwgdDIKICAgICBidHF6IHQyLCAu
b3BHZXRQcm90b3R5cGVPZlBvbHlQcm90bwotICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BHZXRQcm90b3R5cGVPZlNsb3c6CiAgICAgY2FsbFNs
b3dQYXRoKF9zbG93X3BhdGhfZ2V0X3Byb3RvdHlwZV9vZikKQEAgLTE3NDAsMTEgKzE3NDAsMTEg
QEAgbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9wcm90b3R5cGVfb2YsIE9wR2V0UHJvdG90eXBl
T2YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3AKIC5vcEdldFByb3RvdHlwZU9mUG9seVByb3RvOgog
ICAgIG1vdmUga25vd25Qb2x5UHJvdG9PZmZzZXQsIHQxCiAgICAgbG9hZElubGluZU9mZnNldCh0
MSwgdDAsIHQzKQotICAgIHJldHVybih0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KHQzKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1dEJ5
SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldCht
X2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQzLCB0MCwg
Lm9wUHV0QnlJZFNsb3cpCiAgICAgbWV0YWRhdGEodDUsIHQyKQpAQCAtMTgxNyw3ICsxODE3LDcg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRh
KG9wX2dldF9ieV92YWwsIE9wR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdl
dEJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWFjcm8gZmluaXNoR2V0QnlWYWwocmVzdWx0LCBzY3JhdGNo
KQogICAgICAgICBnZXQobV9kc3QsIHNjcmF0Y2gpCiAgICAgICAgIHN0b3JlcSByZXN1bHQsIFtj
ZnIsIHNjcmF0Y2gsIDhdCkBAIC0xOTA1LDExICsxOTA1LDExIEBAIGxsaW50T3BXaXRoTWV0YWRh
dGEob3BfZ2V0X2J5X3ZhbCwgT3BHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IG1ldGFkCiAgICAgZ2V0dGVyU2V0dGVyT1NSRXhpdFJldHVyblBvaW50KG9wX2dldF9ieV92YWws
IHNpemUpCiAgICAgbWV0YWRhdGEodDUsIHQyKQogICAgIHZhbHVlUHJvZmlsZShPcEdldEJ5VmFs
LCBtX3Byb2ZpbGUsIHQ1LCByMCkKLSAgICByZXR1cm4ocjApCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaChyMCkKIAogZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9wcml2
YXRlX25hbWUsIE9wR2V0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfcHJpdmF0ZV9uYW1l
LCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDIsIHQwKQogCiAgICAg
IyBTbG93IHBhdGggaWYgdGhlIHByaXZhdGUgZmllbGQgaXMgc3RhbGUKQEAgLTE5MjcsMTQgKzE5
MjcsMTQgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFBy
aXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKICAgICBsb2FkaSBPcEdldFByaXZhdGVO
YW1lOjpNZXRhZGF0YTo6bV9vZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFi
bGVPZmZzZXQodDEsIHQzLCB0MCkKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRQcml2YXRlTmFtZSwg
bV9wcm9maWxlLCB0MiwgdDApCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDApCiAKIC5vcEdldFByaXZhdGVOYW1lU2xvdzoKICAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9nZXRfcHJpdmF0ZV9uYW1lKQogICAgIGRpc3BhdGNoKCkKIGVuZCkK
IAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfcHJpdmF0ZV9uYW1lLCBPcFB1dFByaXZhdGVO
YW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50
T3BXaXRoTWV0YWRhdGEob3BfcHV0X3ByaXZhdGVfbmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKQogICAgIGdldChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxs
KHNpemUsIHQzLCB0MCwgLm9wUHV0UHJpdmF0ZU5hbWVTbG93KQogICAgIGdldChtX3Byb3BlcnR5
LCB0MykKQEAgLTE5NzcsNyArMTk3Nyw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3By
aXZhdGVfbmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzCiAgICAg
ZGlzcGF0Y2goKQogZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3NldF9wcml2YXRlX2Jy
YW5kLCBPcFNldFByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFk
YXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3NldF9wcml2YXRlX2JyYW5kLCBP
cFNldFByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX2Jhc2UsIHQzKQogICAgIGxvYWRD
b25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQzLCB0MCwgLm9wU2V0UHJpdmF0ZUJyYW5kU2xv
dykKICAgICBnZXQobV9icmFuZCwgdDMpCkBAIC0xOTk5LDcgKzE5OTksNyBAQCBsbGludE9wV2l0
aE1ldGFkYXRhKG9wX3NldF9wcml2YXRlX2JyYW5kLCBPcFNldFByaXZhdGVCcmFuZCwgbWFjcm8g
KHNpemUsIGdldCwgZAogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9jaGVja19wcml2YXRlX2JyYW5kLCBPcENoZWNrUHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEo
b3BfY2hlY2tfcHJpdmF0ZV9icmFuZCwgT3BDaGVja1ByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IG1ldGFkYXRhKHQ1LCB0MikKICAgICBnZXQobV9iYXNlLCB0MykKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbChzaXplLCB0MywgdDAsIC5vcENoZWNrUHJpdmF0ZUJyYW5kU2xvdykKQEAg
LTIwMTksNyArMjAxOSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0ZV9i
cmFuZCwgT3BDaGVja1ByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdlCiBlbmQpCiAKIG1hY3Jv
IHB1dEJ5VmFsT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvc3JFeGl0UG9pbnQpCi0gICAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBt
YWNybyBjb250aWd1b3VzUHV0QnlWYWwoc3RvcmVDYWxsYmFjaykKICAgICAgICAgICAgIGJpYWVx
IHQzLCAtc2l6ZW9mIEluZGV4aW5nSGVhZGVyICsgSW5kZXhpbmdIZWFkZXI6OnUubGVuZ3Rocy5w
dWJsaWNMZW5ndGhbdDBdLCAub3V0T2ZCb3VuZHMKICAgICAgICAgLnN0b3JlUmVzdWx0OgpAQCAt
MjIwNCw3ICsyMjA0LDcgQEAgdW5kZWZpbmVkT3JOdWxsSnVtcE9wKGp1bmRlZmluZWRfb3JfbnVs
bCwgT3BKdW5kZWZpbmVkT3JOdWxsLAogdW5kZWZpbmVkT3JOdWxsSnVtcE9wKGpudW5kZWZpbmVk
X29yX251bGwsIE9wSm51bmRlZmluZWRPck51bGwsCiAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQp
IGJxbmVxIHZhbHVlLCBWYWx1ZU51bGwsIHRhcmdldCBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJu
KG9wX2plcV9wdHIsIE9wSmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJu
KQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9qZXFfcHRyLCBPcEplcVB0ciwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1f
dmFsdWUsIHQwKQogICAgIGdldChtX3NwZWNpYWxQb2ludGVyLCB0MSkKICAgICBsb2FkQ29uc3Rh
bnQoc2l6ZSwgdDEsIHQyKQpAQCAtMjIxNyw3ICsyMjE3LDcgQEAgbGxpbnRPcFdpdGhSZXR1cm4o
b3BfamVxX3B0ciwgT3BKZXFQdHIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9qbmVxX3B0ciwgT3BKbmVxUHRyLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRo
TWV0YWRhdGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3ZhbHVl
LCB0MCkKICAgICBnZXQobV9zcGVjaWFsUG9pbnRlciwgdDEpCiAgICAgbG9hZENvbnN0YW50KHNp
emUsIHQxLCB0MikKQEAgLTIzMTEsNyArMjMxMSw3IEBAIGVuZAogCiAKIG1hY3JvIGNvbXBhcmVP
cChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0LCBkb3VibGVD
b21wYXJlQW5kU2V0KQotICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bj
b2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50
T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBn
ZXQobV9saHMsIHQyKQogICAgICAgICBnZXQobV9yaHMsIHQwKQogICAgICAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSkKQEAgLTIzMjAsNyArMjMyMCw3IEBAIG1hY3JvIGNv
bXBhcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0LCBk
b3VibGVDb21wYXJlQW5kCiAgICAgICAgIGJxYiB0MSwgbnVtYmVyVGFnLCAub3AyTm90SW50CiAg
ICAgICAgIGludGVnZXJDb21wYXJlQW5kU2V0KHQwLCB0MSwgdDApCiAgICAgICAgIG9ycSBWYWx1
ZUZhbHNlLCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDApCiAKICAgICAub3AxTm90SW50OgogICAgICAgICBidHF6IHQwLCBudW1iZXJU
YWcsIC5zbG93CkBAIC0yMzM4LDcgKzIzMzgsNyBAQCBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFt
ZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZAog
ICAgICAgICBmcTJkIHQwLCBmdDAKICAgICAgICAgZG91YmxlQ29tcGFyZUFuZFNldChmdDAsIGZ0
MSwgdDApCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgICAgICByZXR1cm4odDApCisg
ICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKICAgICAub3AyTm90SW50Ogog
ICAgICAgICBjaTJkcyB0MCwgZnQwCkBAIC0yMzQ3LDcgKzIzNDcsNyBAQCBtYWNybyBjb21wYXJl
T3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91Ymxl
Q29tcGFyZUFuZAogICAgICAgICBmcTJkIHQxLCBmdDEKICAgICAgICAgZG91YmxlQ29tcGFyZUFu
ZFNldChmdDAsIGZ0MSwgdDApCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgICAgICBy
ZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKICAgICAu
c2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpAQCAt
MjM1NywxNCArMjM1NywxNCBAQCBlbmQKIAogCiBtYWNybyBjb21wYXJlVW5zaWduZWRPcChvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0KQotICAgIGxsaW50T3BX
aXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29k
ZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBnZXQo
bV9yaHMsICB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDEp
CiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQwKQogICAgICAgICBp
bnRlZ2VyQ29tcGFyZUFuZFNldCh0MCwgdDEsIHQwKQogICAgICAgICBvcnEgVmFsdWVGYWxzZSwg
dDAKLSAgICAgICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KHQwKQogICAgIGVuZCkKIGVuZAogCkBAIC0yNDc2LDcgKzI0NzYsNyBAQCBtYWNybyBjYWxsSGVs
cGVyKG9wY29kZU5hbWUsIHNsb3dQYXRoLCBvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUs
IGRzdFZpcnR1YQogCiAgICAgbG9hZHAgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjptX2NhbGxM
aW5rSW5mby5tX2NhbGxlZU9yQ29kZUJsb2NrW3Q1XSwgdDEKICAgICBidHB6IHQxLCAoY29uc3Rl
eHByIENhbGxMaW5rSW5mbzo6cG9seW1vcnBoaWNDYWxsZWVNYXNrKSwgLm5vdFBvbHltb3JwaGlj
Ci0gICAgIyBwcmVwYXJlQ2FsbCBpbiBMTEludCBkb2VzIG5vdCB1bnRhZyByZXR1cm4gYWRkcmVz
cy4gU28gd2UgbmVlZCB0byB1bnRhZyB0aGF0IGluIHRoZSB0cmFtcG9saW5lIHNlcGFyYXRlbHku
CisgICAgIyBwcmVwYXJlQ2FsbCBpbiBMTEludCBkb2VzIG5vdCB1bnRhZyBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoIGFkZHJlc3MuIFNvIHdlIG5lZWQgdG8gdW50YWcgdGhhdCBpbiB0aGUgdHJh
bXBvbGluZSBzZXBhcmF0ZWx5LgogICAgICMgQnV0IHdlIHNob3VsZCBub3QgdW50YWcgdGhhdCBm
b3IgcG9seW1vcnBoaWMgY2FsbCBjYXNlIHNpbmNlIGl0IHNob3VsZCBiZSBkb25lIGluIHRoZSBw
b2x5bW9ycGhpYyB0aHVuayBzaWRlLgogICAgIHByZXBhcmVQb2x5bW9ycGhpYyhvcGNvZGVOYW1l
LCBzaXplLCBvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIGRzdFZpcnR1YWxSZWdpc3Rl
ciwgZGlzcGF0Y2gsIEpTRW50cnlQdHJUYWcpCiAgICAgam1wIC5nb1BvbHltb3JwaGljCkBAIC0y
NTAyLDcgKzI1MDIsNyBAQCBtYWNybyBjYWxsSGVscGVyKG9wY29kZU5hbWUsIHNsb3dQYXRoLCBv
cGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIGRzdFZpcnR1YQogZW5kCiAKIG1hY3JvIGNv
bW1vbkNhbGxPcChvcGNvZGVOYW1lLCBzbG93UGF0aCwgb3Bjb2RlU3RydWN0LCBwcmVwYXJlQ2Fs
bCwgaW52b2tlQ2FsbCwgcHJlcGFyZVBvbHltb3JwaGljLCBwcmVwYXJlU2xvd0NhbGwsIHByb2xv
Z3VlKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9w
V2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBt
ZXRhZGF0YSh0NSwgdDApCiAKICAgICAgICAgcHJvbG9ndWUobWFjcm8gKGZpZWxkTmFtZSwgZHN0
KQpAQCAtMjU1NCw3ICsyNTU0LDcgQEAgbWFjcm8gZG9DYWxsVmFyYXJncyhvcGNvZGVOYW1lLCBz
aXplLCBnZXQsIG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgZHN0VmkKIAogICAgICAg
ICAgICAgbG9hZHAgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjptX2NhbGxMaW5rSW5mby5tX2Nh
bGxlZU9yQ29kZUJsb2NrW3Q1XSwgdDEKICAgICAgICAgICAgIGJ0cHogdDEsIChjb25zdGV4cHIg
Q2FsbExpbmtJbmZvOjpwb2x5bW9ycGhpY0NhbGxlZU1hc2spLCAubm90UG9seW1vcnBoaWMKLSAg
ICAgICAgICAgICMgcHJlcGFyZUNhbGwgaW4gTExJbnQgZG9lcyBub3QgdW50YWcgcmV0dXJuIGFk
ZHJlc3MuIFNvIHdlIG5lZWQgdG8gdW50YWcgdGhhdCBpbiB0aGUgdHJhbXBvbGluZSBzZXBhcmF0
ZWx5LgorICAgICAgICAgICAgIyBwcmVwYXJlQ2FsbCBpbiBMTEludCBkb2VzIG5vdCB1bnRhZyBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoIGFkZHJlc3MuIFNvIHdlIG5lZWQgdG8gdW50YWcgdGhh
dCBpbiB0aGUgdHJhbXBvbGluZSBzZXBhcmF0ZWx5LgogICAgICAgICAgICAgIyBCdXQgd2Ugc2hv
dWxkIG5vdCB1bnRhZyB0aGF0IGZvciBwb2x5bW9ycGhpYyBjYWxsIGNhc2Ugc2luY2UgaXQgc2hv
dWxkIGJlIGRvbmUgaW4gdGhlIHBvbHltb3JwaGljIHRodW5rIHNpZGUuCiAgICAgICAgICAgICBw
cmVwYXJlUG9seW1vcnBoaWMob3Bjb2RlTmFtZSwgc2l6ZSwgb3Bjb2RlU3RydWN0LCB2YWx1ZVBy
b2ZpbGVOYW1lLCBkc3RWaXJ0dWFsUmVnaXN0ZXIsIGRpc3BhdGNoLCBKU0VudHJ5UHRyVGFnKQog
ICAgICAgICAgICAgam1wIC5nb1BvbHltb3JwaGljCkBAIC0yNTkwLDEzICsyNTkwLDEzIEBAIGxs
aW50T3Aob3BfcmV0LCBPcFJldCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCiBlbmQpCiAK
IAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9fcHJpbWl0aXZlLCBPcFRvUHJpbWl0aXZlLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihv
cF90b19wcmltaXRpdmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDIpCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDApCiAgICAgYnRxbnogdDAsIG5vdENlbGxN
YXNrLCAub3BUb1ByaW1pdGl2ZUlzSW1tCiAgICAgYmJhZXEgSlNDZWxsOjptX3R5cGVbdDBdLCBP
YmplY3RUeXBlLCAub3BUb1ByaW1pdGl2ZVNsb3dDYXNlCiAub3BUb1ByaW1pdGl2ZUlzSW1tOgot
ICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BU
b1ByaW1pdGl2ZVNsb3dDYXNlOgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX3ByaW1p
dGl2ZSkKQEAgLTI2MDQsNyArMjYwNCw3IEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3ByaW1p
dGl2ZSwgT3BUb1ByaW1pdGl2ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJlCiBlbmQp
CiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9fcHJvcGVydHlfa2V5LCBPcFRvUHJvcGVydHlL
ZXksIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3Rp
bmF0aW9uKG9wX3RvX3Byb3BlcnR5X2tleSwgT3BUb1Byb3BlcnR5S2V5LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9zcmMs
IHQyKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQwKQogCkBAIC0yNjEz
LDcgKzI2MTMsNyBAQCBsbGludE9wV2l0aFJldHVybihvcF90b19wcm9wZXJ0eV9rZXksIE9wVG9Q
cm9wZXJ0eUtleSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0YwogICAgIGJibmVxIEpTQ2VsbDo6
bV90eXBlW3QwXSwgU3RyaW5nVHlwZSwgLm9wVG9Qcm9wZXJ0eUtleVNsb3cKIAogLmRvbmU6Ci0g
ICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcFRv
UHJvcGVydHlLZXlTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX3Byb3BlcnR5
X2tleSkKQEAgLTI2MjMsNyArMjYyMyw3IEBAIGVuZCkKIAogY29tbW9uT3AobGxpbnRfb3BfY2F0
Y2gsIG1hY3JvICgpIGVuZCwgbWFjcm8gKHNpemUpCiAgICAgIyBUaGlzIGlzIHdoZXJlIHdlIGVu
ZCB1cCBmcm9tIHRoZSBKSVQncyB0aHJvdyB0cmFtcG9saW5lIChiZWNhdXNlIHRoZQotICAgICMg
bWFjaGluZSBjb2RlIHJldHVybiBhZGRyZXNzIHdpbGwgYmUgc2V0IHRvIF9sbGludF9vcF9jYXRj
aCksIGFuZCBmcm9tCisgICAgIyBtYWNoaW5lIGNvZGUgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCBhZGRyZXNzIHdpbGwgYmUgc2V0IHRvIF9sbGludF9vcF9jYXRjaCksIGFuZCBmcm9tCiAgICAg
IyB0aGUgaW50ZXJwcmV0ZXIncyB0aHJvdyB0cmFtcG9saW5lIChzZWUgX2xsaW50X3Rocm93X3Ry
YW1wb2xpbmUpLgogICAgICMgVGhlIHRocm93aW5nIGNvZGUgbXVzdCBoYXZlIGtub3duIHRoYXQg
d2Ugd2VyZSB0aHJvd2luZyB0byB0aGUgaW50ZXJwcmV0ZXIsCiAgICAgIyBhbmQgaGF2ZSBzZXQg
Vk06OnRhcmdldEludGVycHJldGVyUENGb3JUaHJvdy4KQEAgLTI3ODUsMTYgKzI3ODUsMTYgQEAg
bWFjcm8gdmFySW5qZWN0aW9uQ2hlY2soc2xvd1BhdGgsIHNjcmF0Y2gpCiAgICAgYmJlcSBXYXRj
aHBvaW50U2V0OjptX3N0YXRlW3NjcmF0Y2hdLCBJc0ludmFsaWRhdGVkLCBzbG93UGF0aAogZW5k
CiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdp
dGhNZXRhZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IG1ldGFkYXRhKHQ1LCB0MCkKIAogICAgIG1hY3JvIGdldENvbnN0YW50U2NvcGUoZHN0KQogICAg
ICAgICBsb2FkcCBPcFJlc29sdmVTY29wZTo6TWV0YWRhdGE6Om1fY29uc3RhbnRTY29wZVt0NV0s
IGRzdAogICAgIGVuZAogCi0gICAgbWFjcm8gcmV0dXJuQ29uc3RhbnRTY29wZSgpCisgICAgbWFj
cm8gc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaENvbnN0YW50U2NvcGUoKQogICAgICAgICBnZXRD
b25zdGFudFNjb3BlKHQwKQotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2godDApCiAgICAgZW5kCiAKICAgICBtYWNybyBnbG9iYWxMZXhpY2FsQmlu
ZGluZ0Vwb2NoQ2hlY2soc2xvd1BhdGgsIGdsb2JhbE9iamVjdCwgc2NyYXRjaCkKQEAgLTI4MTQs
NyArMjgxNCw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNv
bHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAgICAgIGJ0aW56IHQyLCAu
cmVzb2x2ZVNjb3BlTG9vcAogCiAgICAgLnJlc29sdmVTY29wZUxvb3BFbmQ6Ci0gICAgICAgIHJl
dHVybih0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKICAgICBlbmQK
IAogICAgIGxvYWRpIE9wUmVzb2x2ZVNjb3BlOjpNZXRhZGF0YTo6bV9yZXNvbHZlVHlwZVt0NV0s
IHQwCkBAIC0yODIzLDE1ICsyODIzLDE1IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2
ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAg
YmluZXEgdDAsIEdsb2JhbFByb3BlcnR5LCAuckdsb2JhbFZhcgogICAgIGdldENvbnN0YW50U2Nv
cGUodDApCiAgICAgZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKC5yRHluYW1pYywgdDAs
IHQyKQotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQog
CiAuckdsb2JhbFZhcjoKICAgICBiaW5lcSB0MCwgR2xvYmFsVmFyLCAuckdsb2JhbExleGljYWxW
YXIKLSAgICByZXR1cm5Db25zdGFudFNjb3BlKCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoQ29uc3RhbnRTY29wZSgpCiAKIC5yR2xvYmFsTGV4aWNhbFZhcjoKICAgICBiaW5lcSB0MCwg
R2xvYmFsTGV4aWNhbFZhciwgLnJDbG9zdXJlVmFyCi0gICAgcmV0dXJuQ29uc3RhbnRTY29wZSgp
CisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaENvbnN0YW50U2NvcGUoKQogCiAuckNsb3N1
cmVWYXI6CiAgICAgYmluZXEgdDAsIENsb3N1cmVWYXIsIC5yTW9kdWxlVmFyCkBAIC0yODM5LDI0
ICsyODM5LDI0IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNv
bHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAKIC5yTW9kdWxlVmFyOgogICAg
IGJpbmVxIHQwLCBNb2R1bGVWYXIsIC5yR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hl
Y2tzCi0gICAgcmV0dXJuQ29uc3RhbnRTY29wZSgpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaENvbnN0YW50U2NvcGUoKQogCiAuckdsb2JhbFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNo
ZWNrczoKICAgICBiaW5lcSB0MCwgR2xvYmFsUHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tz
LCAuckdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MKICAgICB2YXJJbmplY3Rpb25DaGVj
ayguckR5bmFtaWMsIHQyKQogICAgIGdldENvbnN0YW50U2NvcGUodDApCiAgICAgZ2xvYmFsTGV4
aWNhbEJpbmRpbmdFcG9jaENoZWNrKC5yRHluYW1pYywgdDAsIHQyKQotICAgIHJldHVybih0MCkK
KyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAuckdsb2JhbFZhcldpdGhWYXJJ
bmplY3Rpb25DaGVja3M6CiAgICAgYmluZXEgdDAsIEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25D
aGVja3MsIC5yR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MKICAgICB2YXJJ
bmplY3Rpb25DaGVjayguckR5bmFtaWMsIHQyKQotICAgIHJldHVybkNvbnN0YW50U2NvcGUoKQor
ICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2hDb25zdGFudFNjb3BlKCkKIAogLnJHbG9iYWxM
ZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICBiaW5lcSB0MCwgR2xvYmFsTGV4
aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MsIC5yQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rp
b25DaGVja3MKICAgICB2YXJJbmplY3Rpb25DaGVjayguckR5bmFtaWMsIHQyKQotICAgIHJldHVy
bkNvbnN0YW50U2NvcGUoKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2hDb25zdGFudFNj
b3BlKCkKIAogLnJDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICBiaW5lcSB0
MCwgQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MsIC5yRHluYW1pYwpAQCAtMjg3Nywx
NCArMjg3NywxNCBAQCBtYWNybyBsb2FkV2l0aFN0cnVjdHVyZUNoZWNrKG9wY29kZVN0cnVjdCwg
Z2V0LCBzbG93UGF0aCkKICAgICBicG5lcSB0MiwgdDEsIHNsb3dQYXRoCiBlbmQKIAotbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9nZXRfZnJvbV9zY29wZSwgT3BHZXRGcm9tU2NvcGUsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9nZXRfZnJvbV9zY29wZSwgT3BHZXRGcm9tU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0
YSh0NSwgdDApCiAKICAgICBtYWNybyBnZXRQcm9wZXJ0eSgpCiAgICAgICAgIGxvYWRwIE9wR2V0
RnJvbVNjb3BlOjpNZXRhZGF0YTo6bV9vcGVyYW5kW3Q1XSwgdDEKICAgICAgICAgbG9hZFByb3Bl
cnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDAsIHQyKQogICAgICAgICB2YWx1ZVByb2ZpbGUoT3BH
ZXRGcm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQyKQotICAgICAgICByZXR1cm4odDIpCisgICAg
ICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIpCiAgICAgZW5kCiAKICAgICBtYWNybyBn
ZXRHbG9iYWxWYXIodGR6Q2hlY2tJZk5lY2Vzc2FyeSkKQEAgLTI4OTIsMTQgKzI4OTIsMTQgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfZnJvbV9zY29wZSwgT3BHZXRGcm9tU2NvcGUsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGMKICAgICAgICAgbG9hZHEgW3QwXSwgdDAKICAgICAgICAg
dGR6Q2hlY2tJZk5lY2Vzc2FyeSh0MCkKICAgICAgICAgdmFsdWVQcm9maWxlKE9wR2V0RnJvbVNj
b3BlLCBtX3Byb2ZpbGUsIHQ1LCB0MCkKLSAgICAgICAgcmV0dXJuKHQwKQorICAgICAgICBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogICAgIGVuZAogCiAgICAgbWFjcm8gZ2V0Q2xvc3Vy
ZVZhcigpCiAgICAgICAgIGxvYWRwIE9wR2V0RnJvbVNjb3BlOjpNZXRhZGF0YTo6bV9vcGVyYW5k
W3Q1XSwgdDEKICAgICAgICAgbG9hZHEgSlNMZXhpY2FsRW52aXJvbm1lbnRfdmFyaWFibGVzW3Qw
LCB0MSwgOF0sIHQwCiAgICAgICAgIHZhbHVlUHJvZmlsZShPcEdldEZyb21TY29wZSwgbV9wcm9m
aWxlLCB0NSwgdDApCi0gICAgICAgIHJldHVybih0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCh0MCkKICAgICBlbmQKIAogICAgIGxvYWRpIE9wR2V0RnJvbVNjb3BlOjpNZXRh
ZGF0YTo6bV9nZXRQdXRJbmZvICsgR2V0UHV0SW5mbzo6bV9vcGVyYW5kW3Q1XSwgdDAKQEAgLTI5
NTYsNyArMjk1Niw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9w
R2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiBlbmQpCiAKIAotbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29wZSwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9w
X3B1dF90b19zY29wZSwgT3BQdXRUb1Njb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWFjcm8gcHV0UHJvcGVy
dHkoKQogICAgICAgICBnZXQobV92YWx1ZSwgdDEpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoc2l6ZSwgdDEsIHQyKQpAQCAtMzA4NywxMSArMzA4NywxMSBAQCBsbGludE9wV2l0aE1l
dGFkYXRhKG9wX3B1dF90b19zY29wZSwgT3BQdXRUb1Njb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbQogZW5kKQogCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfZnJvbV9hcmd1
bWVudHMsIE9wR2V0RnJvbUFyZ3VtZW50cywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJl
dHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfZnJvbV9hcmd1bWVudHMsIE9wR2V0RnJv
bUFyZ3VtZW50cywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gpCiAgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9hcmd1bWVudHMsIHQwKQogICAgIGdl
dHUoc2l6ZSwgT3BHZXRGcm9tQXJndW1lbnRzLCBtX2luZGV4LCB0MSkKICAgICBsb2FkcSBEaXJl
Y3RBcmd1bWVudHNfc3RvcmFnZVt0MCwgdDEsIDhdLCB0MAotICAgIHJldHVybih0MCkKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKQEAgLTMxMDYsMTQgKzMxMDYs
MTQgQEAgbGxpbnRPcChvcF9wdXRfdG9fYXJndW1lbnRzLCBPcFB1dFRvQXJndW1lbnRzLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9n
ZXRfcGFyZW50X3Njb3BlLCBPcEdldFBhcmVudFNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfcGFyZW50X3Njb3Bl
LCBPcEdldFBhcmVudFNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX3Njb3BlLCB0MCkKICAg
ICBsb2FkcCBKU1Njb3BlOjptX25leHRbdDBdLCB0MAotICAgIHJldHVybih0MCkKKyAgICBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEo
b3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV90eXBl
LCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCiAg
ICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW3QxXSwgdDEKICAgICAjIHQxIGlzIGhvbGRpbmcgdGhl
IHBvaW50ZXIgdG8gdGhlIHR5cGVQcm9maWxlckxvZy4KQEAgLTMxNTUsMTQgKzMxNTUsMTQgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxlX3R5cGUsIE9wUHJvZmlsZVR5cGUsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLAogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
cHJvZmlsZV9jb250cm9sX2Zsb3csIE9wUHJvZmlsZUNvbnRyb2xGbG93LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bf
cHJvZmlsZV9jb250cm9sX2Zsb3csIE9wUHJvZmlsZUNvbnRyb2xGbG93LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
bWV0YWRhdGEodDUsIHQwKQogICAgIGxvYWRwIE9wUHJvZmlsZUNvbnRyb2xGbG93OjpNZXRhZGF0
YTo6bV9iYXNpY0Jsb2NrTG9jYXRpb25bdDVdLCB0MAogICAgIGFkZHEgMSwgQmFzaWNCbG9ja0xv
Y2F0aW9uOjptX2V4ZWN1dGlvbkNvdW50W3QwXQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxp
bnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3Jlc3RfbGVuZ3RoLCBPcEdldFJlc3RMZW5ndGgsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9w
X2dldF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0
ICsgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwgdDAKICAgICBzdWJpIDEsIHQwCiAg
ICAgZ2V0dShzaXplLCBPcEdldFJlc3RMZW5ndGgsIG1fbnVtUGFyYW1ldGVyc1RvU2tpcCwgdDEp
CkBAIC0zMTczLDExICszMTczLDExIEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX2dldF9yZXN0X2xl
bmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgbW92
ZSAwLCB0MAogLmJveFVwOgogICAgIG9ycSBudW1iZXJUYWcsIHQwCi0gICAgcmV0dXJuKHQwKQor
ICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVuLCBPcEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0
ZXJhdG9yX29wZW4sIE9wSXRlcmF0b3JPcGVuLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWFjcm8gZmFzdE5hcnJv
dygpCiAgICAgICAgIGNhbGxTbG93UGF0aChfaXRlcmF0b3Jfb3Blbl90cnlfZmFzdF9uYXJyb3cp
CiAgICAgZW5kCkBAIC0zMjMxLDcgKzMyMzEsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0
ZXJhdG9yX29wZW4sIE9wSXRlcmF0b3JPcGVuLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAog
CiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4dCwgT3BJdGVyYXRv
ck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KQogCiAgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9uZXh0LCB0MCkKICAgICBidHFueiB0MCwgdDAs
IC5pdGVyYXRvck5leHRHZW5lcmljCkBAIC0zMzE1LDcgKzMzMTUsNyBAQCBsbGludE9wV2l0aE1l
dGFkYXRhKG9wX2l0ZXJhdG9yX25leHQsIE9wSXRlcmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaAogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3Bf
Z2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0UHJvcGVydHlFbnVtZXJhdG9yLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9n
ZXRfcHJvcGVydHlfZW51bWVyYXRvciwgT3BHZXRQcm9wZXJ0eUVudW1lcmF0b3IsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldCht
X2Jhc2UsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQxLCB0MCwg
LnNsb3dQYXRoKQogCkBAIC0zMzMyLDcgKzMzMzIsNyBAQCBsbGludE9wV2l0aFJldHVybihvcF9n
ZXRfcHJvcGVydHlfZW51bWVyYXRvciwgT3BHZXRQcm9wZXJ0eUVudW1lcmF0b3IsIG1hY3JvIChz
aQogICAgIGJ0cHogdDEsIC5zbG93UGF0aAogICAgIGJ0cG56IHQxLCAoY29uc3RleHByIFN0cnVj
dHVyZVJhcmVEYXRhOjpjYWNoZWRQcm9wZXJ0eU5hbWVFbnVtZXJhdG9ySXNWYWxpZGF0ZWRWaWFU
cmF2ZXJzaW5nRmxhZyksIC5zbG93UGF0aAogCi0gICAgcmV0dXJuKHQxKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2godDEpCiAKIC5zbG93UGF0aDoKICAgICBjYWxsU2xvd1BhdGgoX3Ns
b3dfcGF0aF9nZXRfcHJvcGVydHlfZW51bWVyYXRvcikKQEAgLTMzNzAsNyArMzM3MCw3IEBAIGxs
aW50T3Aob3BfZW51bWVyYXRvcl9uZXh0LCBPcEVudW1lcmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRh
dGEob3BfZW51bWVyYXRvcl9nZXRfYnlfdmFsLCBPcEVudW1lcmF0b3JHZXRCeVZhbCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCwgT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCkKICAgICBtZXRhZGF0YSh0NSwgdDApCiAKICAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX21vZGUs
IHQwKQpAQCAtMzQwNiwxNCArMzQwNiwxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1l
cmF0b3JfZ2V0X2J5X3ZhbCwgT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1hY3JvIChzaXplLAogCiAu
ZG9uZToKICAgICB2YWx1ZVByb2ZpbGUoT3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1fcHJvZmlsZSwg
dDUsIHQyKQotICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQy
KQogCiAuZ2V0U2xvd1BhdGg6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfZW51bWVyYXRv
cl9nZXRfYnlfdmFsKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbWFjcm8gaGFzUHJvcGVydHlJ
bXBsKG9wY29kZVN0cnVjdCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybiwg
c2xvd1BhdGgpCittYWNybyBoYXNQcm9wZXJ0eUltcGwob3Bjb2RlU3RydWN0LCBzaXplLCBnZXQs
IGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCwgc2xvd1BhdGgp
CiAgICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9tb2RlLCB0
MCkKQEAgLTM0MzIsMjYgKzM0MzIsMjYgQEAgbWFjcm8gaGFzUHJvcGVydHlJbXBsKG9wY29kZVN0
cnVjdCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybiwgc2xvd1AKICAgICBi
aW5lcSB0MiwgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QwXSwgLmNhbGxTbG93UGF0aAogCiAgICAg
bW92ZSBWYWx1ZVRydWUsIHQyCi0gICAgcmV0dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2godDIpCiAKIC5jYWxsU2xvd1BhdGg6CiAgICAgY2FsbFNsb3dQYXRoKHNsb3dQYXRo
KQogICAgIGRpc3BhdGNoKCkKIGVuZAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0
b3JfaW5fYnlfdmFsLCBPcEVudW1lcmF0b3JJbkJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHJldHVybikKLSAgICBoYXNQcm9wZXJ0eUltcGwoT3BFbnVtZXJhdG9y
SW5CeVZhbCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybiwgX3Nsb3dfcGF0
aF9lbnVtZXJhdG9yX2luX2J5X3ZhbCkKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRv
cl9pbl9ieV92YWwsIE9wRW51bWVyYXRvckluQnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKKyAgICBoYXNQcm9wZXJ0
eUltcGwoT3BFbnVtZXJhdG9ySW5CeVZhbCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gsIF9zbG93X3BhdGhfZW51bWVyYXRvcl9pbl9ieV92
YWwpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9oYXNfb3duX3By
b3BlcnR5LCBPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCi0gICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRv
ckhhc093blByb3BlcnR5LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuLCBf
c2xvd19wYXRoX2VudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSkKK2xsaW50T3BXaXRoTWV0YWRh
dGEob3BfZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5LCBPcEVudW1lcmF0b3JIYXNPd25Qcm9w
ZXJ0eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQorICAgIGhhc1Byb3BlcnR5SW1wbChPcEVudW1lcmF0b3JIYXNPd25Qcm9w
ZXJ0eSwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gsIF9zbG93X3BhdGhfZW51bWVyYXRvcl9oYXNfb3duX3Byb3BlcnR5KQogZW5kKQogCi1s
bGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdldEludGVybmFsRmll
bGQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2Zp
bGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdldEludGVybmFsRmllbGQsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGxvYWRWYXJp
YWJsZShnZXQsIG1fYmFzZSwgdDEpCiAgICAgZ2V0dShzaXplLCBPcEdldEludGVybmFsRmllbGQs
IG1faW5kZXgsIHQyKQogICAgIGxvYWRxIEpTSW50ZXJuYWxGaWVsZE9iamVjdEltcGxfaW50ZXJu
YWxGaWVsZHNbdDEsIHQyLCBTbG90U2l6ZV0sIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIGxsaW50T3Aob3BfcHV0X2ludGVybmFs
X2ZpZWxkLCBPcFB1dEludGVybmFsRmllbGQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQo=
</data>
<flag name="commit-queue"
          id="481751"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454163</attachid>
            <date>2022-03-08 15:41:38 -0800</date>
            <delta_ts>2022-03-08 15:56:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237624-20220308184137.patch</filename>
            <type>text/plain</type>
            <size>86826</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NTVjOGY5NWIwZWM2MmJjYTExYTE2NmEyYWJkNWVmYTM2N2QxOGI1Li4wYWQ4YmU5MGEwMWI5YTFi
M2IwODQ3NjgzNzQxYzc0YThlNTM1ODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW5hbWUgTExJbnQgbWFjcm9zIHVzaW5nIHJldHVybiB0byBkZXN0
aW5hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3NjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpcyBqdXN0IGEgcmVmYWN0b3IvcmVuYW1lIHBhdGNoLCBubyBiZWhhdmlvcmFs
CisgICAgICAgIGNoYW5nZS4gSSBmaW5kIGl0IGNvbmZ1c2luZyB0aGF0IHRoZSBMTEludCBoYXMg
bWFjcm8gcGFyYW1ldGVycworICAgICAgICBuYW1lZCBgcmV0dXJuYCBidXQgY2xlYXJseSBzaG91
bGRuJ3QgZG8gYSBmdW5jdGlvbiByZXR1cm4KKyAgICAgICAgKGUuZy4gZ2V0X2J5X2lkKS4gIFRo
aXMgcGF0Y2ggcmVuYW1lcyB0aG9zZSBwYXJlbWV0ZXJzIHRvCisgICAgICAgICJzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoIiB0byBiZXR0ZXIgZGVzY3JpYmUgd2hhdCdzIGdvaW5nCisgICAgICAg
IG9uLiBBZGRpdGlvbmFsbHksIHRoZSBgbGxpbnRPcFdpdGhSZXR1cm5gIGhhcyBiZWVuIHJlbmFt
ZWQgdG8KKyAgICAgICAgYGxsaW50T3BXaXRoRGVzdGluYXRpb25gIGZvciBmdXJ0aGVyIGNsYXJp
dHkuCisKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisKIDIwMjItMDMtMDggIFNhYW0gQmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRW5hYmxlIFRoaW5MVE8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRl
eCBhOGU3YzczOTlkNTgxYTU5NjBkMGFhN2FhNzI0MzM1ZGIwMzU0Yzc1Li4wMmJiNjhmYjY3Njcx
ZjA4ZWUwNGVmODJlY2UyODBhOGU2YmMyY2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC00OTcsMjUgKzQ5NywyNSBA
QCBtYWNybyBsbGludE9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgZW5kKQog
ZW5kCiAKLW1hY3JvIGxsaW50T3BXaXRoUmV0dXJuKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwg
Zm4pCittYWNybyBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wY29kZU5hbWUsIG9wY29kZVN0cnVj
dCwgZm4pCiAgICAgbGxpbnRPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvKHNpemUs
IGdldCwgZGlzcGF0Y2gpCi0gICAgICAgIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgbWFjcm8g
KHJldHVybikKLSAgICAgICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAg
ICAgICAgbWFrZURlc3RpbmF0aW9uKGdldCwgZGlzcGF0Y2gsIG1hY3JvIChzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQorICAgICAgICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZW5kKQogICAgIGVuZCkKIGVuZAogCiBtYWNy
byBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCi0gICAg
bGxpbnRPcFdpdGhSZXR1cm4ob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWFjcm8gbWV0YShkc3QsIHNjcmF0Y2gpCiAgICAg
ICAgICAgICBtZXRhZGF0YShzaXplLCBvcGNvZGVTdHJ1Y3QsIGRzdCwgc2NyYXRjaCkKICAgICAg
ICAgZW5kCi0gICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGEsIHJldHVybikKKyAg
ICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBlbmQpCiBlbmQKIAogbWFjcm8gbGxpbnRPcFdpdGhKdW1wKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgaW1wbCkKLSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgbWFjcm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVy
bikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFj
cm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgICAgIG1hY3JvIGp1bXAoZmllbGROYW1lKQogICAgICAgICAgICAgZ2V0KGZpZWxk
TmFtZSwgdDApCiAgICAgICAgICAgICBqdW1wSW1wbChkaXNwYXRjaEluZGlyZWN0LCB0MCkKQEAg
LTUyNyw3ICs1MjcsNyBAQCBlbmQKIAogbWFjcm8gbGxpbnRPcFdpdGhQcm9maWxlKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCi0gICAgICAgIG1ha2VSZXR1cm5Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwgbWV0YWRh
dGEsIGRpc3BhdGNoLCBtYWNybyAocmV0dXJuUHJvZmlsZWQpCisgICAgICAgIG1ha2VEZXN0aW5h
dGlvblByb2ZpbGVkKG9wY29kZVN0cnVjdCwgZ2V0LCBtZXRhZGF0YSwgZGlzcGF0Y2gsIG1hY3Jv
IChyZXR1cm5Qcm9maWxlZCkKICAgICAgICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJl
dHVyblByb2ZpbGVkKQogICAgICAgICBlbmQpCiAgICAgZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRl
eCBhY2U4NzExNjcyZTcwMjE2ZDM5YTQ4ZGYxNWZkNjZkNmI1N2M0MTFlLi5mZmJjNGY5MzNmYTcz
MmI2YzNiZjM2OTE1MmZlZTMxMjgzY2I3YTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtNTAsNyAr
NTAsNyBAQCBtYWNybyBnZXRPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUs
IGRzdCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2lu
ZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKLW1h
Y3JvIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb24o
Z2V0LCBkaXNwYXRjaCwgZm4pCiAgICAgZm4obWFjcm8odGFnLCBwYXlsb2FkKQogICAgICAgICBt
b3ZlIHRhZywgdDUKICAgICAgICAgbW92ZSBwYXlsb2FkLCB0MwpAQCAtNjEsNyArNjEsNyBAQCBt
YWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gsIGZuKQogICAgIGVuZCkKIGVuZAogCi1tYWNy
byBtYWtlUmV0dXJuUHJvZmlsZWQob3Bjb2RlU3RydWN0LCBnZXQsIG1ldGFkYXRhLCBkaXNwYXRj
aCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb25Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwg
bWV0YWRhdGEsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyAodGFnLCBwYXlsb2FkKQogICAg
ICAgICBtb3ZlIHRhZywgdDEKICAgICAgICAgbW92ZSBwYXlsb2FkLCB0MApAQCAtODE2LDM0ICs4
MTYsMzQgQEAgX2xsaW50X29wX2VudGVyOgogICAgIGRpc3BhdGNoT3AobmFycm93LCBvcF9lbnRl
cikKIAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2FyZ3VtZW50LCBPcEdldEFyZ3VtZW50
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxl
KG9wX2dldF9hcmd1bWVudCwgT3BHZXRBcmd1bWVudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1faW5kZXgsIHQyKQogICAg
IGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1tjZnJdLCB0
MAogICAgIGJpbHRlcSB0MCwgdDIsIC5vcEdldEFyZ3VtZW50T3V0T2ZCb3VuZHMKICAgICBsb2Fk
aSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCiAgICAgbG9h
ZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XSwgdDMKLSAg
ICByZXR1cm4gKHQwLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwLCB0MykK
IAogLm9wR2V0QXJndW1lbnRPdXRPZkJvdW5kczoKLSAgICByZXR1cm4gKFVuZGVmaW5lZFRhZywg
MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKFVuZGVmaW5lZFRhZywgMCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5h
dGlvbihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkaSBQYXlsb2Fk
T2Zmc2V0ICsgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwgdDAKICAgICBzdWJpIDEs
IHQwCi0gICAgcmV0dXJuKEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKEludDMyVGFnLCB0MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9nZXRfc2Nv
cGUsIE9wR2V0U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGlu
dE9wV2l0aERlc3RpbmF0aW9uKG9wX2dldF9zY29wZSwgT3BHZXRTY29wZSwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZGkgQ2Fs
bGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MAogICAgIGxvYWRwIEpTQ2FsbGVlOjptX3Njb3Bl
W3QwXSwgdDAKLSAgICByZXR1cm4gKENlbGxUYWcsIHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2goQ2VsbFRhZywgdDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90
b190aGlzLCBPcFRvVGhpcywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBy
ZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RvX3RoaXMsIE9wVG9UaGlzLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gp
CiAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICBiaW5lcSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0s
IENlbGxUYWcsIC5vcFRvVGhpc1Nsb3cKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAs
IDhdLCB0MApAQCAtODcwLDE5ICs4NzAsMTkgQEAgbGxpbnRPcChvcF9jaGVja190ZHosIE9wQ2hl
Y2tUZHosIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQogZW5kKQogCiAKLWxsaW50T3BXaXRo
UmV0dXJuKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDEp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDIsIHQzKQotICAgIHJldHVy
bih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MiwgdDMpCiBlbmQpCiAK
IAotbGxpbnRPcFdpdGhSZXR1cm4ob3Bfbm90LCBPcE5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bfbm90LCBPcE5vdCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
Z2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwg
dDIsIHQzKQogICAgIGJpbmVxIHQyLCBCb29sZWFuVGFnLCAub3BOb3RTbG93CiAgICAgeG9yaSAx
LCB0MwotICAgIHJldHVybih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MiwgdDMpCiAKIC5vcE5vdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfbm90KQpA
QCAtODkxLDcgKzg5MSw3IEBAIGVuZCkKIAogCiBtYWNybyBlcXVhbGl0eUNvbXBhcmlzb25PcChv
cGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJpc29uKQotICAgIGxsaW50T3BX
aXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29k
ZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQyKQogICAgICAgICBnZXQo
bV9saHMsIHQwKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0Mywg
dDEpCkBAIC05MDAsNyArOTAwLDcgQEAgbWFjcm8gZXF1YWxpdHlDb21wYXJpc29uT3Aob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyaXNvbikKICAgICAgICAgYmllcSB0Miwg
Q2VsbFRhZywgLm9wRXFTbG93CiAgICAgICAgIGJpYiB0MiwgTG93ZXN0VGFnLCAub3BFcVNsb3cK
ICAgICAgICAgaW50ZWdlckNvbXBhcmlzb24odDAsIHQxLCB0MCkKLSAgICAgICAgcmV0dXJuKEJv
b2xlYW5UYWcsIHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5U
YWcsIHQwKQogCiAgICAgLm9wRXFTbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0
aF8lb3Bjb2RlTmFtZSUpCkBAIC05MzIsNyArOTMyLDcgQEAgZW5kCiAKIAogbWFjcm8gZXF1YWxO
dWxsQ29tcGFyaXNvbk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCi0gICAgbGxpbnRP
cFdpdGhSZXR1cm4ob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgICAgIGFzc2VydE5v
dENvbnN0YW50KHNpemUsIHQwKQogICAgICAgICBsb2FkaSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0s
IHQxCkBAIC05NTMsNyArOTUzLDcgQEAgbWFjcm8gZXF1YWxOdWxsQ29tcGFyaXNvbk9wKG9wY29k
ZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgICAgIG9yaSB0MiwgdDEKICAgICAub3BFcU51
bGxOb3RJbW1lZGlhdGU6CiAgICAgICAgIGZuKHQxKQotICAgICAgICByZXR1cm4oQm9vbGVhblRh
ZywgdDEpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDEp
CiAgICAgZW5kKQogZW5kCiAKQEAgLTk2MywxNyArOTYzLDE3IEBAIGVxdWFsTnVsbENvbXBhcmlz
b25PcChvcF9uZXFfbnVsbCwgT3BOZXFOdWxsLAogICAgIG1hY3JvICh2YWx1ZSkgeG9yaSAxLCB2
YWx1ZSBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfdW5kZWZpbmVkX29yX251bGws
IE9wSXNVbmRlZmluZWRPck51bGwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX3VuZGVmaW5lZF9vcl9udWxsLCBPcElzVW5k
ZWZpbmVkT3JOdWxsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlVGFnKHNpemUsIHQwLCB0MSkKICAgICBvcmkgMSwgdDEKICAgICBjaWVxIHQxLCBOdWxs
VGFnLCB0MQotICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogZW5kKQogCiAKIG1hY3JvIHN0cmljdEVxT3Aob3Bj
b2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBlcXVhbGl0eU9wZXJhdGlvbikKLSAgICBsbGludE9wV2l0
aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wXyVvcGNvZGVO
YW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1f
bGhzLCB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQx
KQpAQCAtOTg1LDcgKzk4NSw3IEBAIG1hY3JvIHN0cmljdEVxT3Aob3Bjb2RlTmFtZSwgb3Bjb2Rl
U3RydWN0LCBlcXVhbGl0eU9wZXJhdGlvbikKICAgICAgICAgYmJiIEpTQ2VsbDo6bV90eXBlW3Qx
XSwgT2JqZWN0VHlwZSwgLnNsb3cKICAgICAubm90U3RyaW5nT3JTeW1ib2w6CiAgICAgICAgIGVx
dWFsaXR5T3BlcmF0aW9uKHQwLCB0MSwgdDApCi0gICAgICAgIHJldHVybihCb29sZWFuVGFnLCB0
MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MCkKIAog
ICAgIC5zbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUp
CkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBzdHJpY3RFcXVhbGl0eUp1bXBPcChqbnN0cmljdGVxLCBP
cEpuc3RyaWN0ZXEsCiAKIAogbWFjcm8gcHJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBp
bnRlZ2VyT3BlcmF0aW9uKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUl
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0
dXJuKQorICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgYmluZXEgVGFn
T2Zmc2V0W2NmciwgdDAsIDhdLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldFtjZnIsIHQwLCA4XSwgdDIKQEAgLTEwNTMsMjYgKzEwNTMsMjYgQEAgbWFjcm8gcHJl
T3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyT3BlcmF0aW9uKQogZW5kCiAKIAot
bGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWJlciwgT3BUb051bWJlciwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF90b19udW1iZXIs
IE9wVG9OdW1iZXIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoc2l6ZSwgdDAsIHQyLCB0MykKICAgICBiaWVxIHQyLCBJbnQzMlRhZywgLm9wVG9OdW1i
ZXJJc0ludAogICAgIGJpYWVxIHQyLCBMb3dlc3RUYWcsIC5vcFRvTnVtYmVyU2xvdwogLm9wVG9O
dW1iZXJJc0ludDoKLSAgICByZXR1cm4odDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2godDIsIHQzKQogCiAub3BUb051bWJlclNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93
X3BhdGhfdG9fbnVtYmVyKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhQcm9m
aWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmlj
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUs
IHQwLCB0MiwgdDMpCiAgICAgYmllcSB0MiwgSW50MzJUYWcsIC5vcFRvTnVtZXJpY0lzSW50CiAg
ICAgYmlhZXEgdDIsIExvd2VzdFRhZywgLm9wVG9OdW1lcmljU2xvdwogLm9wVG9OdW1lcmljSXNJ
bnQ6Ci0gICAgcmV0dXJuKHQyLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQy
LCB0MykKIAogLm9wVG9OdW1lcmljU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90
b19udW1lcmljKQpAQCAtMTA4MCwxMyArMTA4MCwxMyBAQCBsbGludE9wV2l0aFByb2ZpbGUob3Bf
dG9fbnVtZXJpYywgT3BUb051bWVyaWMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1
cgogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0cmluZywgT3BUb1N0cmluZywg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRp
b24ob3BfdG9fc3RyaW5nLCBPcFRvU3RyaW5nLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MiwgdDMpCiAgICAgYmluZXEgdDIsIENl
bGxUYWcsIC5vcFRvU3RyaW5nU2xvdwogICAgIGJibmVxIEpTQ2VsbDo6bV90eXBlW3QzXSwgU3Ry
aW5nVHlwZSwgLm9wVG9TdHJpbmdTbG93CiAub3BUb1N0cmluZ0lzU3RyaW5nOgotICAgIHJldHVy
bih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MiwgdDMpCiAKIC5vcFRv
U3RyaW5nU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19zdHJpbmcpCkBAIC0x
MDk0LDEyICsxMDk0LDEyIEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0cmluZywgT3BUb1N0
cmluZywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKIGVuZCkKIAogCi1sbGlu
dE9wV2l0aFByb2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX29iamVjdCwgT3BU
b09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MCwgdDIsIHQzKQogICAgIGJpbmVxIHQyLCBDZWxsVGFnLCAub3BUb09iamVjdFNs
b3cKICAgICBiYmIgSlNDZWxsOjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCAub3BUb09iamVjdFNs
b3cKLSAgICByZXR1cm4odDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIs
IHQzKQogCiAub3BUb09iamVjdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9f
b2JqZWN0KQpAQCAtMTEwNywxOSArMTEwNywxOSBAQCBsbGludE9wV2l0aFByb2ZpbGUob3BfdG9f
b2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQog
ZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfbmVnYXRlLCBPcE5lZ2F0ZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkK
ICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSwgdDIpCiAgICAgYmluZXEg
dDEsIEludDMyVGFnLCAub3BOZWdhdGVTcmNOb3RJbnQKICAgICBidGl6IHQyLCAweDdmZmZmZmZm
LCAub3BOZWdhdGVTbG93CiAgICAgbmVnaSB0MgogICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxl
KHNpemUsIE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQwLCB0MykKLSAgICByZXR1cm4gKElu
dDMyVGFnLCB0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEludDMyVGFnLCB0MikK
IC5vcE5lZ2F0ZVNyY05vdEludDoKICAgICBiaWEgdDEsIExvd2VzdFRhZywgLm9wTmVnYXRlU2xv
dwogICAgIHhvcmkgMHg4MDAwMDAwMCwgdDEKICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShz
aXplLCBPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0MCwgdDMpCi0gICAgcmV0dXJuKHQx
LCB0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MikKIAogLm9wTmVnYXRl
U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9uZWdhdGUpCkBAIC0xMTI4LDcgKzEx
MjgsNyBAQCBlbmQpCiAKIAogbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uKQot
ICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIGxsaW50T3BX
aXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAg
ICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1fbGhzLCB0MCkKICAgICAgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQxKQpAQCAtMTIyNSw3ICsxMjI1LDcgQEAg
YmluYXJ5T3BDdXN0b21TdG9yZShkaXYsIE9wRGl2LAogICAgIGVuZCwKICAgICBtYWNybyAobGhz
LCByaHMpIGRpdmQgcmhzLCBsaHMgZW5kKQogCi1sbGludE9wV2l0aFJldHVybihvcF9wb3csIE9w
UG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF9wb3csIE9wUG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9yaHMsIHQyKQogICAgIGdldChtX2xocywg
dDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQxKQpAQCAtMTI2
MiwxMSArMTI2MiwxMSBAQCBsbGludE9wV2l0aFJldHVybihvcF9wb3csIE9wUG93LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxp
bnRPcFdpdGhSZXR1cm4ob3BfdW5zaWduZWQsIE9wVW5zaWduZWQsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3Vuc2lnbmVkLCBP
cFVuc2lnbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlUGF5bG9hZChzaXplLCB0MSwgSW50MzJUYWcsIHQyLCAub3BVbnNpZ25lZFNsb3cpCiAgICAg
YmlsdCB0MiwgMCwgLm9wVW5zaWduZWRTbG93Ci0gICAgcmV0dXJuIChJbnQzMlRhZywgdDIpCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChJbnQzMlRhZywgdDIpCiAub3BVbnNpZ25lZFNs
b3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdW5zaWduZWQpCiAgICAgZGlzcGF0Y2go
KQpAQCAtMTI3NCw3ICsxMjc0LDcgQEAgZW5kKQogCiAKIG1hY3JvIGNvbW1vbkJpdE9wKG9wS2lu
ZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCi0gICAgb3BLaW5kKG9wXyVv
cGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0
dXJuKQorICAgIG9wS2luZChvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdl
dChtX3JocywgdDIpCiAgICAgICAgIGdldChtX2xocywgdDApCiAgICAgICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQzLCB0MSkKQEAgLTEyODIsNyArMTI4Miw3IEBAIG1hY3Jv
IGNvbW1vbkJpdE9wKG9wS2luZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24p
CiAgICAgICAgIGJpbmVxIHQzLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgYmluZXEgdDIsIElu
dDMyVGFnLCAuc2xvdwogICAgICAgICBvcGVyYXRpb24odDAsIHQxKQotICAgICAgICByZXR1cm4g
KHQzLCB0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MywgdDApCiAKICAg
ICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpA
QCAtMTI5MSw3ICsxMjkxLDcgQEAgbWFjcm8gY29tbW9uQml0T3Aob3BLaW5kLCBvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKIGVuZAogCiBtYWNybyBiaXRPcChvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKLSAgICBjb21tb25CaXRPcChsbGludE9wV2l0aFJl
dHVybiwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCisgICAgY29tbW9uQml0
T3AobGxpbnRPcFdpdGhEZXN0aW5hdGlvbiwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVy
YXRpb24pCiBlbmQKIAogbWFjcm8gYml0T3BQcm9maWxlZChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1
Y3QsIG9wZXJhdGlvbikKQEAgLTEzMTksMTIgKzEzMTksMTIgQEAgYml0T3BQcm9maWxlZChiaXRh
bmQsIE9wQml0YW5kLAogYml0T3BQcm9maWxlZChiaXRvciwgT3BCaXRvciwKICAgICBtYWNybyAo
bGhzLCByaHMpIG9yaSByaHMsIGxocyBlbmQpCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9iaXRu
b3QsIE9wQml0bm90LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRP
cFdpdGhQcm9maWxlKG9wX2JpdG5vdCwgT3BCaXRub3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQwKQog
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQyLCB0MykKICAgICBiaW5lcSB0
MiwgSW50MzJUYWcsIC5vcEJpdE5vdFNsb3cKICAgICBub3RpIHQzCi0gICAgcmV0dXJuIChJbnQz
MlRhZywgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChJbnQzMlRhZywgdDMpCiAK
ICAub3BCaXROb3RTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2JpdG5vdCkKQEAg
LTEzNjEsNDYgKzEzNjEsNDYgQEAgbGxpbnRPcChvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlLCBP
cE92ZXJyaWRlc0hhc0luc3RhbmNlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKIGVuZCkKIAogCi1s
bGludE9wV2l0aFJldHVybihvcF9pc19lbXB0eSwgT3BJc0VtcHR5LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19lbXB0eSwg
T3BJc0VtcHR5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHNpemUsIHQxLCB0MiwgdDMpCiAgICAgY2llcSB0MiwgRW1wdHlWYWx1ZVRhZywgdDMKLSAg
ICByZXR1cm4oQm9vbGVhblRhZywgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChC
b29sZWFuVGFnLCB0MykKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90eXBlb2ZfaXNf
dW5kZWZpbmVkLCBPcFR5cGVvZklzVW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90eXBlb2ZfaXNfdW5kZWZpbmVk
LCBPcFR5cGVvZklzVW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MiwgdDMpCiAgICAgYmllcSB0MiwgQ2VsbFRhZywg
Lm9wSXNVbmRlZmluZWRDZWxsCiAgICAgY2llcSB0MiwgVW5kZWZpbmVkVGFnLCB0MwotICAgIHJl
dHVybihCb29sZWFuVGFnLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xl
YW5UYWcsIHQzKQogLm9wSXNVbmRlZmluZWRDZWxsOgogICAgIGJ0Ym56IEpTQ2VsbDo6bV9mbGFn
c1t0M10sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIC5vcElzVW5kZWZpbmVkTWFzcXVlcmFkZXNB
c1VuZGVmaW5lZAotICAgIHJldHVybihCb29sZWFuVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2goQm9vbGVhblRhZywgMCkKIC5vcElzVW5kZWZpbmVkTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZDoKICAgICBsb2FkaSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MQogICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCB0MwogICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmpl
Y3RbdDNdLCB0MwogICAgIGNwZXEgU3RydWN0dXJlOjptX2dsb2JhbE9iamVjdFt0MV0sIHQzLCB0
MQotICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKEJvb2xlYW5UYWcsIHQxKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX2Jv
b2xlYW4sIE9wSXNCb29sZWFuLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19ib29sZWFuLCBPcElzQm9vbGVhbiwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0
KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVRhZyhzaXplLCB0MSwg
dDApCiAgICAgY2llcSB0MCwgQm9vbGVhblRhZywgdDAKLSAgICByZXR1cm4oQm9vbGVhblRhZywg
dDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19udW1iZXIsIE9wSXNOdW1iZXIsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lz
X251bWJlciwgT3BJc051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZVRhZyhzaXplLCB0MSwgdDApCiAgICAgYWRkaSAxLCB0MAogICAgIGNpYiB0
MCwgTG93ZXN0VGFnICsgMSwgdDEKLSAgICByZXR1cm4oQm9vbGVhblRhZywgdDEpCisgICAgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MSkKIGVuZCkKIAogCkBAIC0xNDEw
LDI2ICsxNDEwLDI2IEBAIGxsaW50T3Aob3BfaXNfYmlnX2ludCwgT3BJc0JpZ0ludCwgbWFjcm8o
dW51c2VkLCB1bnVzZWQsIHVudXNlZCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9p
c19jZWxsX3dpdGhfdHlwZSwgT3BJc0NlbGxXaXRoVHlwZSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfY2VsbF93aXRoX3R5
cGUsIE9wSXNDZWxsV2l0aFR5cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwLCB0MykKICAgICBiaW5lcSB0MCwgQ2VsbFRhZywg
Lm5vdENlbGxDYXNlCiAgICAgZ2V0dShzaXplLCBPcElzQ2VsbFdpdGhUeXBlLCBtX3R5cGUsIHQw
KQogICAgIGNiZXEgSlNDZWxsOjptX3R5cGVbdDNdLCB0MCwgdDEKLSAgICByZXR1cm4oQm9vbGVh
blRhZywgdDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MSkK
IC5ub3RDZWxsQ2FzZToKLSAgICByZXR1cm4oQm9vbGVhblRhZywgMCkKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1
cm4ob3BfaXNfb2JqZWN0LCBPcElzT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
cmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19vYmplY3QsIE9wSXNPYmplY3Qs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwg
dDEsIHQwLCB0MykKICAgICBiaW5lcSB0MCwgQ2VsbFRhZywgLm9wSXNPYmplY3ROb3RDZWxsCiAg
ICAgY2JhZXEgSlNDZWxsOjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCB0MQotICAgIHJldHVybihC
b29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcs
IHQxKQogLm9wSXNPYmplY3ROb3RDZWxsOgotICAgIHJldHVybihCb29sZWFuVGFnLCAwKQorICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgMCkKIGVuZCkKIAogCkBAIC0x
NDc0LDcgKzE0NzQsNyBAQCBlbmQKICMgY29udmVydCBvcGNvZGUgaW50byBhIGdldF9ieV9pZF9w
cm90b19sb2FkL2dldF9ieV9pZF91bnNldCwgcmVzcGVjdGl2ZWx5LCBhZnRlciBhbgogIyBleGVj
dXRpb24gY291bnRlciBoaXRzIHplcm8uCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfdHJ5X2dl
dF9ieV9pZCwgT3BUcnlHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfdHJ5X2dldF9ieV9pZCwgT3BUcnlH
ZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdldChtX2Jhc2UsIHQw
KQogICAgIGxvYWRpIE9wVHJ5R2V0QnlJZDo6TWV0YWRhdGE6Om1fc3RydWN0dXJlSURbdDVdLCB0
MQpAQCAtMTQ4MywxNCArMTQ4MywxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RyeV9nZXRf
YnlfaWQsIE9wVHJ5R2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsCiAgICAgYmlu
ZXEgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEsIC5vcFRyeUdldEJ5SWRTbG93CiAgICAg
bG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MiwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVBy
b2ZpbGUoT3BUcnlHZXRCeUlkLCBtX3Byb2ZpbGUsIHQ1LCB0MCwgdDEpCi0gICAgcmV0dXJuKHQw
LCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwLCB0MSkKIAogLm9wVHJ5R2V0
QnlJZFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdHJ5X2dldF9ieV9p
ZCkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5
X2lkX2RpcmVjdCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkX2RpcmVj
dCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdl
dChtX2Jhc2UsIHQwKQogICAgIGxvYWRpIE9wR2V0QnlJZERpcmVjdDo6TWV0YWRhdGE6Om1fc3Ry
dWN0dXJlSURbdDVdLCB0MQpAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9nZXRfYnlfaWRfZGlyZWN0LCBPcEdldEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3AKICAgICBiaW5lcSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MSwgLm9wR2V0QnlJ
ZERpcmVjdFNsb3cKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQyLCB0MywgdDAs
IHQxKQogICAgIHZhbHVlUHJvZmlsZShPcEdldEJ5SWREaXJlY3QsIG1fcHJvZmlsZSwgdDUsIHQw
LCB0MSkKLSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDAsIHQxKQogCiAub3BHZXRCeUlkRGlyZWN0U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9nZXRfYnlfaWRfZGlyZWN0KQpAQCAtMTUwOCw3ICsxNTA4LDcgQEAgZW5kKQog
CiAjIEFzc3VtcHRpb246IFRoZSBiYXNlIG9iamVjdCBpcyBpbiB0MwogIyBGSVhNRTogdGhpcyBp
cyB2ZXJ5IGNsb3NlIHRvIHRoZSA2NGJpdCB2ZXJzaW9uLiBDb25zaWRlciByZWZhY3RvcmluZy4K
LW1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFt
ZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvd0xhYmVsLCBzaXplLCBtZXRhZGF0YSwgcmV0dXJuKQor
bWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1l
LCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG93TGFiZWwsIHNpemUsIG1ldGFkYXRhLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQyLCB0MSkKICAgICBsb2FkYiAlb3Bjb2Rl
U3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5tb2RlW3QyXSwgdDEKICAgICAg
ICAgCkBAIC0xNTIwLDcgKzE1MjAsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNv
ZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAgIGxv
YWRpcyAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5kZWZhdWx0
TW9kZS5jYWNoZWRPZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZz
ZXQodDEsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQ
cm9maWxlTmFtZSwgdDIsIHQwLCB0MSkKLSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2godDAsIHQxKQogCiAub3BHZXRCeUlkUHJvdG9Mb2FkOgogICAgIGJi
bmVxIHQxLCBjb25zdGV4cHIgR2V0QnlJZE1vZGU6OlByb3RvTG9hZCwgLm9wR2V0QnlJZEFycmF5
TGVuZ3RoCkBAIC0xNTMxLDcgKzE1MzEsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihv
cGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAg
IGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRhZGF0YU5hbWUlLnByb3Rv
TG9hZE1vZGUuY2FjaGVkU2xvdFt0Ml0sIHQzCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9m
ZnNldCh0MSwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1
ZVByb2ZpbGVOYW1lLCB0MiwgdDAsIHQxKQotICAgIHJldHVybih0MCwgdDEpCisgICAgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRBcnJheUxlbmd0aDoKICAg
ICBiYm5lcSB0MSwgY29uc3RleHByIEdldEJ5SWRNb2RlOjpBcnJheUxlbmd0aCwgLm9wR2V0QnlJ
ZFVuc2V0CkBAIC0xNTQzLDE4ICsxNTQzLDE4IEBAIG1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVy
KG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvCiAg
ICAgbG9hZGkgLXNpemVvZiBJbmRleGluZ0hlYWRlciArIEluZGV4aW5nSGVhZGVyOjp1Lmxlbmd0
aHMucHVibGljTGVuZ3RoW3QwXSwgdDAKICAgICBiaWx0IHQwLCAwLCBzbG93TGFiZWwKICAgICB2
YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCB0MiwgSW50MzJUYWcs
IHQwKQotICAgIHJldHVybihJbnQzMlRhZywgdDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaChJbnQzMlRhZywgdDApCiAgICAgCiAub3BHZXRCeUlkVW5zZXQ6CiAgICAgbG9hZGkgSlND
ZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEKICAgICBsb2FkaSAlb3Bjb2RlU3RydWN0JTo6TWV0
YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS51bnNldE1vZGUuc3RydWN0dXJlSURbdDJdLCB0MAog
ICAgIGJpbmVxIHQwLCB0MSwgc2xvd0xhYmVsCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVj
dCwgdmFsdWVQcm9maWxlTmFtZSwgdDIsIFVuZGVmaW5lZFRhZywgMCkKLSAgICByZXR1cm4oVW5k
ZWZpbmVkVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goVW5kZWZpbmVkVGFn
LCAwKQogCiBlbmQKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJ
ZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9w
V2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRh
dGEodDUsIHQwKQogICAgIGxvYWRiIE9wR2V0QnlJZDo6TWV0YWRhdGE6Om1fbW9kZU1ldGFkYXRh
Lm1vZGVbdDVdLCB0MQogICAgIGdldChtX2Jhc2UsIHQwKQpAQCAtMTU2OCw3ICsxNTY4LDcgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBsb2FkcCBPcEdldEJ5SWQ6Ok1ldGFkYXRhOjpt
X21vZGVNZXRhZGF0YS5wcm90b0xvYWRNb2RlLmNhY2hlZFNsb3RbdDVdLCB0MwogICAgIGxvYWRQ
cm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQcm9maWxl
KE9wR2V0QnlJZCwgbV9wcm9maWxlLCB0NSwgdDAsIHQxKQotICAgIHJldHVybih0MCwgdDEpCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRBcnJheUxl
bmd0aDoKICAgICBiYm5lcSB0MSwgY29uc3RleHByIEdldEJ5SWRNb2RlOjpBcnJheUxlbmd0aCwg
Lm9wR2V0QnlJZFVuc2V0CkBAIC0xNTgxLDcgKzE1ODEsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRh
KG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdAogICAgIGxvYWRpIC1zaXplb2YgSW5kZXhpbmdIZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6
dS5sZW5ndGhzLnB1YmxpY0xlbmd0aFt0MF0sIHQwCiAgICAgYmlsdCB0MCwgMCwgLm9wR2V0QnlJ
ZFNsb3cKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkLCBtX3Byb2ZpbGUsIHQ1LCBJbnQzMlRh
ZywgdDApCi0gICAgcmV0dXJuKEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKEludDMyVGFnLCB0MCkKIAogLm9wR2V0QnlJZFVuc2V0OgogICAgIGJibmVxIHQxLCBj
b25zdGV4cHIgR2V0QnlJZE1vZGU6OlVuc2V0LCAub3BHZXRCeUlkRGVmYXVsdApAQCAtMTU4OSw3
ICsxNTg5LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlUGF5bG9hZChzaXplLCB0MCwgQ2VsbFRhZywgdDMsIC5vcEdldEJ5SWRTbG93KQogICAg
IGJpbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BHZXRCeUlkU2xvdwogICAg
IHZhbHVlUHJvZmlsZShPcEdldEJ5SWQsIG1fcHJvZmlsZSwgdDUsIFVuZGVmaW5lZFRhZywgMCkK
LSAgICByZXR1cm4oVW5kZWZpbmVkVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2goVW5kZWZpbmVkVGFnLCAwKQogCiAub3BHZXRCeUlkRGVmYXVsdDoKICAgICBsb2FkaSBPcEdl
dEJ5SWQ6Ok1ldGFkYXRhOjptX21vZGVNZXRhZGF0YS5kZWZhdWx0TW9kZS5zdHJ1Y3R1cmVJRFt0
NV0sIHQxCkBAIC0xNTk4LDcgKzE1OTgsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9i
eV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdAogICAg
IGJpbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BHZXRCeUlkU2xvdwogICAg
IGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQ
cm9maWxlKE9wR2V0QnlJZCwgbV9wcm9maWxlLCB0NSwgdDAsIHQxKQotICAgIHJldHVybih0MCwg
dDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRT
bG93OgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZCkKQEAgLTE2
MDgsMTIgKzE2MDgsMTIgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0
QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBnZXR0ZXJTZXR0
ZXJPU1JFeGl0UmV0dXJuUG9pbnQob3BfZ2V0X2J5X2lkLCBzaXplKQogICAgIG1ldGFkYXRhKHQy
LCB0MykKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkLCBtX3Byb2ZpbGUsIHQyLCByMSwgcjAp
Ci0gICAgcmV0dXJuKHIxLCByMCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxLCBy
MCkKIAogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1dEJ5
SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIHdyaXRl
QmFycmllck9uT3BlcmFuZHMoc2l6ZSwgZ2V0LCBtX2Jhc2UsIG1fdmFsdWUpCiAgICAgbWV0YWRh
dGEodDUsIHQzKQogICAgIGdldChtX2Jhc2UsIHQzKQpAQCAtMTY4MCw3ICsxNjgwLDcgQEAgbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXQKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dl
dF9ieV92YWwsIE9wR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdldEJ5VmFs
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gpCiAgICAgbWFjcm8gZmluaXNoSW50R2V0QnlWYWwocmVzdWx0UGF5bG9hZCwgc2Ny
YXRjaCkKICAgICAgICAgZ2V0KG1fZHN0LCBzY3JhdGNoKQogICAgICAgICBzdG9yZWkgSW50MzJU
YWcsIFRhZ09mZnNldFtjZnIsIHNjcmF0Y2gsIDhdCkBAIC0xNzU3LDExICsxNzU3LDExIEBAIGxs
aW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X3ZhbCwgT3BHZXRCeVZhbCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkCiAgICAgZ2V0dGVyU2V0dGVyT1NSRXhpdFJldHVyblBvaW50
KG9wX2dldF9ieV92YWwsIHNpemUpCiAgICAgbWV0YWRhdGEodDIsIHQzKQogICAgIHZhbHVlUHJv
ZmlsZShPcEdldEJ5VmFsLCBtX3Byb2ZpbGUsIHQyLCByMSwgcjApCi0gICAgcmV0dXJuKHIxLCBy
MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxLCByMCkKIAogZW5kKQogCi1sbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2dldF9wcml2YXRlX25hbWUsIE9wR2V0UHJpdmF0ZU5hbWUsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAg
ICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgIyBTbG93IHBhdGggaWYgdGhlIHByaXZhdGUgZmll
bGQgaXMgc3RhbGUKQEAgLTE3NzgsMTQgKzE3NzgsMTQgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXMKIAogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAg
ICAgdmFsdWVQcm9maWxlKE9wR2V0UHJpdmF0ZU5hbWUsIG1fcHJvZmlsZSwgdDUsIHQwLCB0MSkK
LSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDAsIHQx
KQogCiAub3BHZXRQcml2YXRlTmFtZVNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfZ2V0X3ByaXZhdGVfbmFtZSkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BX
aXRoTWV0YWRhdGEob3BfcHV0X3ByaXZhdGVfbmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX3B1dF9wcml2YXRlX25hbWUsIE9wUHV0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICB3
cml0ZUJhcnJpZXJPbk9wZXJhbmRzKHNpemUsIGdldCwgbV9iYXNlLCBtX3ZhbHVlKQogICAgIGdl
dChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHNpemUsIHQz
LCBDZWxsVGFnLCB0MCwgLm9wUHV0UHJpdmF0ZU5hbWVTbG93KQpAQCAtMTgyOSw3ICsxODI5LDcg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfcHJpdmF0ZV9uYW1lLCBPcFB1dFByaXZhdGVO
YW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKIGVuZCkKIAogbWFjcm8gcHV0QnlWYWxPcChvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9zckV4aXRQb2ludCkKLSAgICBsbGludE9wV2l0aE1ldGFk
YXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNv
ZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIG1hY3JvIGNvbnRpZ3VvdXNQ
dXRCeVZhbChzdG9yZUNhbGxiYWNrKQogICAgICAgICAgICAgYmlhZXEgdDMsIC1zaXplb2YgSW5k
ZXhpbmdIZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6dS5sZW5ndGhzLnB1YmxpY0xlbmd0aFt0MF0s
IC5vdXRPZkJvdW5kcwogICAgICAgICAuc3RvcmVSZXN1bHQ6CkBAIC0yMDA5LDcgKzIwMDksNyBA
QCB1bmRlZmluZWRPck51bGxKdW1wT3AoanVuZGVmaW5lZF9vcl9udWxsLCBPcEp1bmRlZmluZWRP
ck51bGwsCiB1bmRlZmluZWRPck51bGxKdW1wT3Aoam51bmRlZmluZWRfb3JfbnVsbCwgT3BKbnVu
ZGVmaW5lZE9yTnVsbCwKICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYmluZXEgdmFsdWUsIE51
bGxUYWcsIHRhcmdldCBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2plcV9wdHIsIE9wSmVx
UHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF9qZXFfcHRyLCBPcEplcVB0ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fdmFsdWUsIHQwKQogICAgIGdl
dChtX3NwZWNpYWxQb2ludGVyLCB0MSkKICAgICBsb2FkQ29uc3RhbnQoc2l6ZSwgdDEsIHQzLCB0
MikKQEAgLTIwMjMsNyArMjAyMyw3IEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX2plcV9wdHIsIE9w
SmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogZW5kKQogCiAKLWxs
aW50T3BXaXRoTWV0YWRhdGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0ciwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2pu
ZXFfcHRyLCBPcEpuZXFQdHIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV92YWx1ZSwgdDApCiAgICAgZ2V0
KG1fc3BlY2lhbFBvaW50ZXIsIHQxKQogICAgIGxvYWRDb25zdGFudChzaXplLCB0MSwgdDMsIHQy
KQpAQCAtMjA1NSw3ICsyMDU1LDcgQEAgZW5kCiAKIAogbWFjcm8gY29tcGFyZU9wKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmVBbmRTZXQsIGRvdWJsZUNvbXBhcmVBbmRT
ZXQpCi0gICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3Qs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX2xocywg
dDIpCiAgICAgICAgIGdldChtX3JocywgdDMpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUoc2l6ZSwgdDIsIHQwLCB0MSkKQEAgLTIwNjMsNyArMjA2Myw3IEBAIG1hY3JvIGNvbXBhcmVP
cChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0LCBkb3VibGVD
b21wYXJlQW5kCiAgICAgICAgIGJpbmVxIHQwLCBJbnQzMlRhZywgLm9wMU5vdEludAogICAgICAg
ICBiaW5lcSB0MiwgSW50MzJUYWcsIC5vcDJOb3RJbnQKICAgICAgICAgaW50ZWdlckNvbXBhcmVB
bmRTZXQodDEsIHQzLCB0MSkKLSAgICAgICAgcmV0dXJuKEJvb2xlYW5UYWcsIHQxKQorICAgICAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogCiAgICAgLm9wMU5v
dEludDoKICAgICAgICAgYmlhIHQwLCBMb3dlc3RUYWcsIC5zbG93CkBAIC0yMDc2LDE0ICsyMDc2
LDE0IEBAIG1hY3JvIGNvbXBhcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJD
b21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJlQW5kCiAgICAgLm9wMU5vdEludFJlYWR5OgogICAg
ICAgICBmaWkyZCB0MSwgdDAsIGZ0MAogICAgICAgICBkb3VibGVDb21wYXJlQW5kU2V0KGZ0MCwg
ZnQxLCB0MSkKLSAgICAgICAgcmV0dXJuKEJvb2xlYW5UYWcsIHQxKQorICAgICAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogCiAgICAgLm9wMk5vdEludDoKICAg
ICAgICAgY2kyZHMgdDEsIGZ0MAogICAgICAgICBiaWEgdDIsIExvd2VzdFRhZywgLnNsb3cKICAg
ICAgICAgZmlpMmQgdDMsIHQyLCBmdDEKICAgICAgICAgZG91YmxlQ29tcGFyZUFuZFNldChmdDAs
IGZ0MSwgdDEpCi0gICAgICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICAgICAgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MSkKIAogICAgIC5zbG93OgogICAgICAg
ICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUpCkBAIC0yMDkyLDEzICsyMDky
LDEzIEBAIG1hY3JvIGNvbXBhcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJD
b21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJlQW5kCiBlbmQKIAogbWFjcm8gY29tcGFyZVVuc2ln
bmVkT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCkKLSAg
ICBsbGludE9wV2l0aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9u
KG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MikKICAg
ICAgICAgZ2V0KG1fbGhzLCB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXpl
LCB0MiwgdDMsIHQxKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyhzaXplLCB0
MCwgdDIsIHQwKQogICAgICAgICBpbnRlZ2VyQ29tcGFyZUFuZFNldCh0MCwgdDEsIHQwKQotICAg
ICAgICByZXR1cm4oQm9vbGVhblRhZywgdDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2goQm9vbGVhblRhZywgdDApCiAgICAgZW5kKQogZW5kCiAKQEAgLTIyNzgsNyArMjI3OCw3
IEBAIG1hY3JvIGNhbGxIZWxwZXIob3Bjb2RlTmFtZSwgc2xvd1BhdGgsIG9wY29kZVN0cnVjdCwg
dmFsdWVQcm9maWxlTmFtZSwgZHN0VmlydHVhCiBlbmQKICAgICAgICAgCiBtYWNybyBjb21tb25D
YWxsT3Aob3Bjb2RlTmFtZSwgc2xvd1BhdGgsIG9wY29kZVN0cnVjdCwgcHJlcGFyZUNhbGwsIGlu
dm9rZUNhbGwsIHByZXBhcmVQb2x5bW9ycGhpYywgcHJlcGFyZVNsb3dDYWxsLCBwcm9sb2d1ZSkK
LSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWV0YWRh
dGEodDUsIHQwKQogCiAgICAgICAgIHByb2xvZ3VlKG1hY3JvIChmaWVsZE5hbWUsIGRzdCkKQEAg
LTIzNjMsMTcgKzIzNjMsMTcgQEAgbGxpbnRPcChvcF9yZXQsIE9wUmV0LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCkKICAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQogICAgIGdl
dChtX3ZhbHVlLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0MSwg
dDApCi0gICAgZG9SZXR1cm4oKQorICAgIGRvc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCgpCiBl
bmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9fcHJpbWl0aXZlLCBPcFRvUHJpbWl0aXZl
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5h
dGlvbihvcF90b19wcmltaXRpdmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDIpCiAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDEsIHQwKQogICAgIGJpbmVxIHQx
LCBDZWxsVGFnLCAub3BUb1ByaW1pdGl2ZUlzSW1tCiAgICAgYmJhZXEgSlNDZWxsOjptX3R5cGVb
dDBdLCBPYmplY3RUeXBlLCAub3BUb1ByaW1pdGl2ZVNsb3dDYXNlCiAub3BUb1ByaW1pdGl2ZUlz
SW1tOgotICAgIHJldHVybih0MSwgdDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MSwgdDApCiAKIC5vcFRvUHJpbWl0aXZlU2xvd0Nhc2U6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93
X3BhdGhfdG9fcHJpbWl0aXZlKQpAQCAtMjM4MSw3ICsyMzgxLDcgQEAgbGxpbnRPcFdpdGhSZXR1
cm4ob3BfdG9fcHJpbWl0aXZlLCBPcFRvUHJpbWl0aXZlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmUKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90b19wcm9wZXJ0eV9rZXks
IE9wVG9Qcm9wZXJ0eUtleSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xs
aW50T3BXaXRoRGVzdGluYXRpb24ob3BfdG9fcHJvcGVydHlfa2V5LCBPcFRvUHJvcGVydHlLZXks
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX3NyYywgdDIpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0Miwg
dDEsIHQwKQogICAgIGJpbmVxIHQxLCBDZWxsVGFnLCAub3BUb1Byb3BlcnR5S2V5U2xvdwpAQCAt
MjM4OSw3ICsyMzg5LDcgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9fcHJvcGVydHlfa2V5LCBP
cFRvUHJvcGVydHlLZXksIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGMKICAgICBiYm5lcSBKU0Nl
bGw6Om1fdHlwZVt0MF0sIFN0cmluZ1R5cGUsIC5vcFRvUHJvcGVydHlLZXlTbG93CiAKIC5kb25l
OgotICAgIHJldHVybih0MSwgdDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MSwg
dDApCiAKIC5vcFRvUHJvcGVydHlLZXlTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRo
X3RvX3Byb3BlcnR5X2tleSkKQEAgLTI0NDcsNyArMjQ0Nyw3IEBAIGxsaW50T3Aob3BfZW5kLCBP
cEVuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCiAgICAgYXNzZXJ0Tm90Q29uc3RhbnQo
c2l6ZSwgdDApCiAgICAgbG9hZGkgVGFnT2Zmc2V0W2NmciwgdDAsIDhdLCB0MQogICAgIGxvYWRp
IFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0sIHQwCi0gICAgZG9SZXR1cm4oKQorICAgIGRvc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCgpCiBlbmQpCiAKIApAQCAtMjU4Myw3ICsyNTgzLDcgQEAg
bWFjcm8gdmFySW5qZWN0aW9uQ2hlY2soc2xvd1BhdGgpCiBlbmQKIAogCi1sbGludE9wV2l0aE1l
dGFkYXRhKG9wX3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVz
b2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKIAogICAgIG1hY3JvIGdldENvbnN0
YW50U2NvcGUoZHN0KQogICAgICAgICBsb2FkcCBPcFJlc29sdmVTY29wZTo6TWV0YWRhdGE6Om1f
Y29uc3RhbnRTY29wZVt0NV0sIGRzdApAQCAtMjU5MSw3ICsyNTkxLDcgQEAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gKIAogICAgIG1hY3JvIHJldHVybkNvbnN0YW50U2NvcGUoKQogICAgICAgICBn
ZXRDb25zdGFudFNjb3BlKHQwKQotICAgICAgICByZXR1cm4oQ2VsbFRhZywgdDApCisgICAgICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQ2VsbFRhZywgdDApCiAgICAgZW5kCiAKICAgICBt
YWNybyBnbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2NoQ2hlY2soc2xvd1BhdGgsIGdsb2JhbE9iamVj
dCwgc2NyYXRjaCkKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
cmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
CiAgICAgICAgIGJ0aW56IHQyLCAucmVzb2x2ZVNjb3BlTG9vcAogCiAgICAgLnJlc29sdmVTY29w
ZUxvb3BFbmQ6Ci0gICAgICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICAgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaChDZWxsVGFnLCB0MCkKICAgICBlbmQKIAogICAgIG1ldGFkYXRhKHQ1
LCB0MCkKQEAgLTI2MjEsNyArMjYyMSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2
ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAg
YmluZXEgdDAsIEdsb2JhbFByb3BlcnR5LCAuckdsb2JhbFZhcgogICAgIGdldENvbnN0YW50U2Nv
cGUodDApCiAgICAgZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKC5yRHluYW1pYywgdDAs
IHQyKQotICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKENlbGxUYWcsIHQwKQogCiAuckdsb2JhbFZhcjoKICAgICBiaW5lcSB0MCwgR2xvYmFsVmFy
LCAuckdsb2JhbExleGljYWxWYXIKQEAgLTI2NDQsNyArMjY0NCw3IEBAIGxsaW50T3BXaXRoTWV0
YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoCiAgICAgdmFySW5qZWN0aW9uQ2hlY2soLnJEeW5hbWljKQogICAgIGdldENvbnN0
YW50U2NvcGUodDApCiAgICAgZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKC5yRHluYW1p
YywgdDAsIHQyKQotICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKENlbGxUYWcsIHQwKQogCiAuckdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVj
a3M6CiAgICAgYmluZXEgdDAsIEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MsIC5yR2xv
YmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MKQEAgLTI2NzUsMTIgKzI2NzUsMTIg
QEAgbWFjcm8gbG9hZFdpdGhTdHJ1Y3R1cmVDaGVjayhvcGNvZGVTdHJ1Y3QsIGdldCwgb3BlcmFu
ZCwgc2xvd1BhdGgpCiBlbmQKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9tX3Nj
b3BlLCBPcEdldEZyb21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9tX3Njb3BlLCBPcEdldEZy
b21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIG1hY3JvIGdldFByb3BlcnR5KCkKICAgICAgICAgbG9hZHAg
T3BHZXRGcm9tU2NvcGU6Ok1ldGFkYXRhOjptX29wZXJhbmRbdDVdLCB0MwogICAgICAgICBsb2Fk
UHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQzLCB0MCwgdDEsIHQyKQogICAgICAgICB2YWx1ZVBy
b2ZpbGUoT3BHZXRGcm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQxLCB0MikKLSAgICAgICAgcmV0
dXJuKHQxLCB0MikKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MSwgdDIpCiAg
ICAgZW5kCiAKICAgICBtYWNybyBnZXRHbG9iYWxWYXIodGR6Q2hlY2tJZk5lY2Vzc2FyeSkKQEAg
LTI2ODksNyArMjY4OSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUs
IE9wR2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgICAgIGxvYWRw
IFBheWxvYWRPZmZzZXRbdDBdLCB0MgogICAgICAgICB0ZHpDaGVja0lmTmVjZXNzYXJ5KHQxKQog
ICAgICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRGcm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQxLCB0
MikKLSAgICAgICAgcmV0dXJuKHQxLCB0MikKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MSwgdDIpCiAgICAgZW5kCiAKICAgICBtYWNybyBnZXRDbG9zdXJlVmFyKCkKQEAgLTI2
OTcsNyArMjY5Nyw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9w
R2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgICAgIGxvYWRwIEpT
TGV4aWNhbEVudmlyb25tZW50X3ZhcmlhYmxlcyArIFRhZ09mZnNldFt0MCwgdDMsIDhdLCB0MQog
ICAgICAgICBsb2FkcCBKU0xleGljYWxFbnZpcm9ubWVudF92YXJpYWJsZXMgKyBQYXlsb2FkT2Zm
c2V0W3QwLCB0MywgOF0sIHQyCiAgICAgICAgIHZhbHVlUHJvZmlsZShPcEdldEZyb21TY29wZSwg
bV9wcm9maWxlLCB0NSwgdDEsIHQyKQotICAgICAgICByZXR1cm4odDEsIHQyKQorICAgICAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MikKICAgICBlbmQKIAogICAgIG1ldGFkYXRh
KHQ1LCB0MCkKQEAgLTI3NTUsNyArMjc1NSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0
X2Zyb21fc2NvcGUsIE9wR2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiBl
bmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29w
ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9w
V2l0aE1ldGFkYXRhKG9wX3B1dF90b19zY29wZSwgT3BQdXRUb1Njb3BlLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
bWFjcm8gcHV0UHJvcGVydHkoKQogICAgICAgICBnZXQobV92YWx1ZSwgdDEpCiAgICAgICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQyLCB0MykKQEAgLTI4ODksMTMgKzI4ODks
MTMgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29wZSwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG0KIGVuZCkKIAogCi1sbGludE9wV2l0aFByb2Zp
bGUob3BfZ2V0X2Zyb21fYXJndW1lbnRzLCBPcEdldEZyb21Bcmd1bWVudHMsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2Zyb21f
YXJndW1lbnRzLCBPcEdldEZyb21Bcmd1bWVudHMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX2FyZ3VtZW50cywgdDApCiAg
ICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBnZXR1KHNpemUsIE9w
R2V0RnJvbUFyZ3VtZW50cywgbV9pbmRleCwgdDEpCiAgICAgbG9hZGkgRGlyZWN0QXJndW1lbnRz
X3N0b3JhZ2UgKyBUYWdPZmZzZXRbdDAsIHQxLCA4XSwgdDIKICAgICBsb2FkaSBEaXJlY3RBcmd1
bWVudHNfc3RvcmFnZSArIFBheWxvYWRPZmZzZXRbdDAsIHQxLCA4XSwgdDMKLSAgICByZXR1cm4o
dDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIsIHQzKQogZW5kKQogCiAK
QEAgLTI5MTIsMTUgKzI5MTIsMTUgQEAgbGxpbnRPcChvcF9wdXRfdG9fYXJndW1lbnRzLCBPcFB1
dFRvQXJndW1lbnRzLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKIGVuZCkKIAogCi1sbGlu
dE9wV2l0aFJldHVybihvcF9nZXRfcGFyZW50X3Njb3BlLCBPcEdldFBhcmVudFNjb3BlLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihv
cF9nZXRfcGFyZW50X3Njb3BlLCBPcEdldFBhcmVudFNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9zY29wZSwgdDAp
CiAgICAgbG9hZHAgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBsb2FkcCBKU1Nj
b3BlOjptX25leHRbdDBdLCB0MAotICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKENlbGxUYWcsIHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0
YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmls
ZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHQxCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW3QxXSwgdDEKICAgICAjIHQxIGlzIGhvbGRp
bmcgdGhlIHBvaW50ZXIgdG8gdGhlIHR5cGVQcm9maWxlckxvZy4KQEAgLTI5NjUsNyArMjk2NSw3
IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRh
KG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVDb250cm9sRmxvdywgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRh
KG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVDb250cm9sRmxvdywgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIG1ldGFkYXRhKHQ1LCB0MCkKICAgICBsb2FkcCBPcFByb2ZpbGVDb250cm9sRmxvdzo6TWV0
YWRhdGE6Om1fYmFzaWNCbG9ja0xvY2F0aW9uW3Q1XSwgdDAKICAgICBsb2FkaSBCYXNpY0Jsb2Nr
TG9jYXRpb246Om1fZXhlY3V0aW9uQ291bnRbdDBdLCB0MQpAQCAtMjk3Niw3ICsyOTc2LDcgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxlX2NvbnRyb2xfZmxvdywgT3BQcm9maWxlQ29u
dHJvbEZsb3csIG1hY3JvIChzaXplLAogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2dl
dF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfcmVzdF9sZW5ndGgsIE9w
R2V0UmVzdExlbmd0aCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzW2Nmcl0sIHQwCiAgICAgc3ViaSAxLCB0MAogICAgIGdldHUoc2l6ZSwgT3BHZXRS
ZXN0TGVuZ3RoLCBtX251bVBhcmFtZXRlcnNUb1NraXAsIHQxKQpAQCAtMjk4NiwxMCArMjk4Niwx
MCBAQCBsbGludE9wV2l0aFJldHVybihvcF9nZXRfcmVzdF9sZW5ndGgsIE9wR2V0UmVzdExlbmd0
aCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0YwogLnN0b3JlWmVybzoKICAgICBtb3ZlIDAsIHQw
CiAuZmluaXNoOgotICAgIHJldHVybihJbnQzMlRhZywgdDApCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaChJbnQzMlRhZywgdDApCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
aXRlcmF0b3Jfb3BlbiwgT3BJdGVyYXRvck9wZW4sIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVu
LCBPcEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1hY3JvIGZhc3ROYXJyb3coKQogICAgICAg
ICBjYWxsU2xvd1BhdGgoX2l0ZXJhdG9yX29wZW5fdHJ5X2Zhc3RfbmFycm93KQogICAgIGVuZApA
QCAtMzA0Niw3ICszMDQ2LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVu
LCBPcEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRj
aCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4dCwgT3BJdGVy
YXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQor
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKQogICAgICAgICAKICAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX25leHQsIHQwLCB0MSwgdDAp
CiAgICAgYmluZXEgdDEsIEVtcHR5VmFsdWVUYWcsIC5pdGVyYXRvck5leHRHZW5lcmljCkBAIC0z
MTM2LDEzICszMTM2LDEzIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4dCwg
T3BJdGVyYXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAgZGlzcGF0Y2go
KQogZW5kKQogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdl
dEludGVybmFsRmllbGQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGlu
dE9wV2l0aFByb2ZpbGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdldEludGVybmFsRmllbGQs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX2Jhc2UsIHQwKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0s
IHQwCiAgICAgZ2V0dShzaXplLCBPcEdldEludGVybmFsRmllbGQsIG1faW5kZXgsIHQxKQogICAg
IGxvYWRpIEpTSW50ZXJuYWxGaWVsZE9iamVjdEltcGxfaW50ZXJuYWxGaWVsZHMgKyBUYWdPZmZz
ZXRbdDAsIHQxLCBTbG90U2l6ZV0sIHQyCiAgICAgbG9hZGkgSlNJbnRlcm5hbEZpZWxkT2JqZWN0
SW1wbF9pbnRlcm5hbEZpZWxkcyArIFBheWxvYWRPZmZzZXRbdDAsIHQxLCBTbG90U2l6ZV0sIHQz
Ci0gICAgcmV0dXJuKHQyLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyLCB0
MykKIGVuZCkKIAogbGxpbnRPcChvcF9wdXRfaW50ZXJuYWxfZmllbGQsIE9wUHV0SW50ZXJuYWxG
aWVsZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCkBAIC0zMTk4LDExICszMTk4LDExIEBA
IGVuZCkKIG9wKGZ1enplcl9yZXR1cm5fZWFybHlfZnJvbV9sb29wX2hpbnQsIG1hY3JvICgpCiAg
ICAgbW92ZSBVbmRlZmluZWRUYWcsIHIxCiAgICAgbW92ZSAwLCByMAotICAgIGRvUmV0dXJuKCkK
KyAgICBkb3NldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goKQogZW5kKQogCiAKLWxsaW50T3BXaXRo
TWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0ZV9icmFuZCwgT3BDaGVja1ByaXZhdGVCcmFuZCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1l
dGFkYXRhKG9wX2NoZWNrX3ByaXZhdGVfYnJhbmQsIE9wQ2hlY2tQcml2YXRlQnJhbmQsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCkKICAgICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgZ2V0KG1fYmFzZSwgdDMpCiAgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZVBheWxvYWQoc2l6ZSwgdDMsIENlbGxUYWcsIHQwLCAub3BDaGVja1By
aXZhdGVCcmFuZFNsb3cpCkBAIC0zMjIyLDcgKzMyMjIsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRh
KG9wX2NoZWNrX3ByaXZhdGVfYnJhbmQsIE9wQ2hlY2tQcml2YXRlQnJhbmQsIG1hY3JvIChzaXpl
LCBnZQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3ByaXZhdGVfYnJhbmQs
IE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3ByaXZhdGVfYnJhbmQsIE9wU2V0
UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQyKQogICAgIGdldChtX2Jh
c2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHNpemUsIHQzLCBDZWxs
VGFnLCB0MCwgLm9wU2V0UHJpdmF0ZUJyYW5kU2xvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5kZXggNWRlN2JjYzdm
ZDBkNGYwNDBmMmRmOTRiZDQ3MzQ1ZDgzNTg2OTQ0Ny4uNjg4MmM0ODM0NzJmYTk5ZjU0MzY4ODJk
MTQ0NDY5ZmJjN2YyYWVjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
aW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTcxLDcgKzcxLDcgQEAgbWFjcm8gZ2V0
T3BlcmFuZFdpZGUzMldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRzdCkKICAgICBsb2Fk
aXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4ICogNCArIE9wY29k
ZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAotbWFjcm8gbWFrZVJldHVy
bihnZXQsIGRpc3BhdGNoLCBmbikKK21hY3JvIG1ha2VEZXN0aW5hdGlvbihnZXQsIGRpc3BhdGNo
LCBmbikKICAgICBmbihtYWNybyAodmFsdWUpCiAgICAgICAgIG1vdmUgdmFsdWUsIHQyCiAgICAg
ICAgIGdldChtX2RzdCwgdDEpCkBAIC04MCw3ICs4MCw3IEBAIG1hY3JvIG1ha2VSZXR1cm4oZ2V0
LCBkaXNwYXRjaCwgZm4pCiAgICAgZW5kKQogZW5kCiAKLW1hY3JvIG1ha2VSZXR1cm5Qcm9maWxl
ZChvcGNvZGVTdHJ1Y3QsIGdldCwgbWV0YWRhdGEsIGRpc3BhdGNoLCBmbikKK21hY3JvIG1ha2VE
ZXN0aW5hdGlvblByb2ZpbGVkKG9wY29kZVN0cnVjdCwgZ2V0LCBtZXRhZGF0YSwgZGlzcGF0Y2gs
IGZuKQogICAgIGZuKG1hY3JvICh2YWx1ZSkKICAgICAgICAgbW92ZSB2YWx1ZSwgdDMKICAgICAg
ICAgbWV0YWRhdGEodDEsIHQyKQpAQCAtODcwLDM0ICs4NzAsMzQgQEAgX2xsaW50X29wX2VudGVy
OgogICAgIGRpc3BhdGNoT3AobmFycm93LCBvcF9lbnRlcikKIAogCi1sbGludE9wV2l0aFByb2Zp
bGUob3BfZ2V0X2FyZ3VtZW50LCBPcEdldEFyZ3VtZW50LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9hcmd1bWVudCwgT3BHZXRB
cmd1bWVudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgZ2V0KG1faW5kZXgsIHQyKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBB
cmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1tjZnJdLCB0MAogICAgIGJpbHRlcSB0MCwgdDIsIC5v
cEdldEFyZ3VtZW50T3V0T2ZCb3VuZHMKICAgICBsb2FkcSBUaGlzQXJndW1lbnRPZmZzZXRbY2Zy
LCB0MiwgOF0sIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDApCiAKIC5vcEdldEFyZ3VtZW50T3V0T2ZCb3VuZHM6Ci0gICAgcmV0dXJuKFZhbHVlVW5k
ZWZpbmVkKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goVmFsdWVVbmRlZmluZWQpCiBl
bmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfYXJndW1lbnRfY291bnQsIE9wQXJndW1lbnRD
b3VudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVz
dGluYXRpb24ob3BfYXJndW1lbnRfY291bnQsIE9wQXJndW1lbnRDb3VudCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZGkgUGF5
bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzW2Nmcl0sIHQwCiAgICAgc3Vi
aSAxLCB0MAogICAgIG9ycSBUYWdOdW1iZXIsIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3Bf
Z2V0X3Njb3BlLCBPcEdldFNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJu
KQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfc2NvcGUsIE9wR2V0U2NvcGUsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGxv
YWRwIENhbGxlZVtjZnJdLCB0MAogICAgIGxvYWRwIEpTQ2FsbGVlOjptX3Njb3BlW3QwXSwgdDAK
LSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3RvX3RoaXMsIE9wVG9UaGlzLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEo
b3BfdG9fdGhpcywgT3BUb1RoaXMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9zcmNEc3QsIHQwKQogICAg
IGxvYWRxIFtjZnIsIHQwLCA4XSwgdDAKICAgICBidHFueiB0MCwgbm90Q2VsbE1hc2ssIC5vcFRv
VGhpc1Nsb3cKQEAgLTkyNSwyMCArOTI1LDIwIEBAIGxsaW50T3Aob3BfY2hlY2tfdGR6LCBPcENo
ZWNrVGR6LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKIGVuZCkKIAogCi1sbGludE9wV2l0
aFJldHVybihvcF9tb3YsIE9wTW92LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJu
KQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9tb3YsIE9wTW92LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9zcmMsIHQx
KQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQyKQotICAgIHJldHVybih0
MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogZW5kKQogCiAKLWxsaW50T3BX
aXRoUmV0dXJuKG9wX25vdCwgT3BOb3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1
cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX25vdCwgT3BOb3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJh
bmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQyKQogICAgIHhv
cnEgVmFsdWVGYWxzZSwgdDIKICAgICBidHFueiB0MiwgfjEsIC5vcE5vdFNsb3cKICAgICB4b3Jx
IFZhbHVlVHJ1ZSwgdDIKLSAgICByZXR1cm4odDIpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MikKIAogLm9wTm90U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9ub3Qp
CkBAIC05NDcsMTQgKzk0NywxNCBAQCBlbmQpCiAKIAogbWFjcm8gZXF1YWxpdHlDb21wYXJpc29u
T3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyaXNvbikKLSAgICBsbGlu
dE9wV2l0aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wXyVv
cGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MCkKICAgICAgICAg
Z2V0KG1fbGhzLCB0MikKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHNpemUs
IHQwLCB0MSwgLnNsb3cpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMihzaXpl
LCB0MiwgdDAsIC5zbG93KQogICAgICAgICBpbnRlZ2VyQ29tcGFyaXNvbih0MCwgdDEsIHQwKQog
ICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICAgICAgcmV0dXJuKHQwKQorICAgICAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAgICAgLnNsb3c6CiAgICAgICAgIGNhbGxT
bG93UGF0aChfc2xvd19wYXRoXyVvcGNvZGVOYW1lJSkKQEAgLTk2NCw3ICs5NjQsNyBAQCBlbmQK
IAogCiBtYWNybyBlcXVhbE51bGxDb21wYXJpc29uT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0
LCBmbikKLSAgICBsbGludE9wV2l0aFJldHVybihvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0aW5h
dGlvbihvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9vcGVyYW5kLCB0MCkK
ICAgICAgICAgbG9hZHEgW2NmciwgdDAsIDhdLCB0MAogICAgICAgICBidHFueiB0MCwgbm90Q2Vs
bE1hc2ssIC5pbW1lZGlhdGUKQEAgLTk4Miw3ICs5ODIsNyBAQCBtYWNybyBlcXVhbE51bGxDb21w
YXJpc29uT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKICAgICAgICAgY3FlcSB0MCwg
VmFsdWVOdWxsLCB0MAogICAgIC5kb25lOgogICAgICAgICBmbih0MCkKLSAgICAgICAgcmV0dXJu
KHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogICAgIGVuZCkKIGVu
ZAogCkBAIC05OTQsMTggKzk5NCwxOCBAQCBlcXVhbE51bGxDb21wYXJpc29uT3Aob3BfbmVxX251
bGwsIE9wTmVxTnVsbCwKICAgICBtYWNybyAodmFsdWUpIHhvcnEgVmFsdWVUcnVlLCB2YWx1ZSBl
bmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfdW5kZWZpbmVkX29yX251bGwsIE9wSXNV
bmRlZmluZWRPck51bGwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGlu
dE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX3VuZGVmaW5lZF9vcl9udWxsLCBPcElzVW5kZWZpbmVk
T3JOdWxsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KHNpemUsIHQxLCB0MCkKICAgICBhbmRxIH5UYWdVbmRlZmluZWQsIHQwCiAgICAgY3FlcSB0MCwg
VmFsdWVOdWxsLCB0MAogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgIHJldHVybih0MCkKKyAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKIG1hY3JvIHN0cmljdEVx
T3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBjcmVhdGVCb29sZWFuKQotICAgIGxsaW50T3BX
aXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29k
ZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQwKQogICAgICAgICBnZXQo
bV9saHMsIHQyKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSkK
QEAgLTEwMjAsNyArMTAyMCw3IEBAIG1hY3JvIHN0cmljdEVxT3Aob3Bjb2RlTmFtZSwgb3Bjb2Rl
U3RydWN0LCBjcmVhdGVCb29sZWFuKQogICAgICAgICAjIGlmIChsZWZ0IGlzIENlbGwgfHwgcmln
aHQgaXMgQ2VsbCkKICAgICAgICAgIyAgICAgZ290byBzbG93UGF0aDsKICAgICAgICAgIyBkb25l
OgotICAgICAgICAjIHJldHVybiByZXN1bHQ7CisgICAgICAgICMgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCByZXN1bHQ7CiAKICAgICAgICAgIyBUaGlzIGZyYWdtZW50IGltcGxlbWVudHMgKGxl
ZnQgaXMgRG91YmxlIHx8IHJpZ2h0IGlzIERvdWJsZSksIHdpdGggYSBzaW5nbGUgYnJhbmNoIGlu
c3RlYWQgb2YgdGhlIDQgdGhhdCB3b3VsZCBiZSBuYWl2ZWx5IHJlcXVpcmVkIGlmIHdlIHVzZWQg
YnJhbmNoSWZJbnQzMi9icmFuY2hJZk51bWJlcgogICAgICAgICAjIFRoZSB0cmljayBpcyB0aGF0
IGlmIGEgSlNWYWx1ZSBpcyBhbiBJbnQzMiwgdGhlbiBhZGRpbmcgMTw8NDkgdG8gaXQgd2lsbCBt
YWtlIGl0IG92ZXJmbG93LCBsZWF2aW5nIGFsbCBoaWdoIGJpdHMgYXQgMApAQCAtMTA0NSw3ICsx
MDQ1LDcgQEAgbWFjcm8gc3RyaWN0RXFPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGNyZWF0
ZUJvb2xlYW4pCiAKICAgICAuZG9uZToKICAgICAgICAgY3JlYXRlQm9vbGVhbih0NSkKLSAgICAg
ICAgcmV0dXJuKHQ1KQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQ1KQogCiAg
ICAgLnNsb3c6CiAgICAgICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoXyVvcGNvZGVOYW1lJSkK
QEAgLTExMTksNyArMTExOSw3IEBAIHN0cmljdEVxdWFsaXR5SnVtcE9wKGpuc3RyaWN0ZXEsIE9w
Sm5zdHJpY3RlcSwKICAgICBtYWNybyAoanVtcCwgdGFyZ2V0TGFiZWwsIGRpc3BhdGNoKSBqdW1w
KHRhcmdldExhYmVsKSBlbmQpCiAKIG1hY3JvIHByZU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVj
dCwgaW50ZWdlck9wZXJhdGlvbikKLSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNvZGVO
YW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2Rl
U3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX3NyY0RzdCwgdDApCiAgICAgICAgIGxvYWRx
IFtjZnIsIHQwLCA4XSwgdDEKICAgICAgICAgIyBzcmNEc3QgaW4gdDEKQEAgLTExMzgsMjYgKzEx
MzgsMjYgQEAgbWFjcm8gcHJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyT3Bl
cmF0aW9uKQogCiBlbmQKIAotbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWJlciwgT3BUb051
bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJv
ZmlsZShvcF90b19udW1iZXIsIE9wVG9OdW1iZXIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQyKQogICAgIGJxYWVxIHQyLCBudW1i
ZXJUYWcsIC5vcFRvTnVtYmVySXNJbW1lZGlhdGUKICAgICBidHF6IHQyLCBudW1iZXJUYWcsIC5v
cFRvTnVtYmVyU2xvdwogLm9wVG9OdW1iZXJJc0ltbWVkaWF0ZToKLSAgICByZXR1cm4odDIpCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MikKIAogLm9wVG9OdW1iZXJTbG93OgogICAg
IGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX251bWJlcikKICAgICBkaXNwYXRjaCgpCiBlbmQp
CiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF90b19udW1lcmljLCBPcFRvTnVtZXJpYywgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF90b19u
dW1lcmljLCBPcFRvTnVtZXJpYywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDIpCiAgICAgYnFhZXEgdDIsIG51bWJlclRhZywgLm9w
VG9OdW1lcmljSXNJbW1lZGlhdGUKICAgICBidHF6IHQyLCBudW1iZXJUYWcsIC5vcFRvTnVtZXJp
Y1Nsb3cKIC5vcFRvTnVtZXJpY0lzSW1tZWRpYXRlOgotICAgIHJldHVybih0MikKKyAgICBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BUb051bWVyaWNTbG93OgogICAgIGNhbGxT
bG93UGF0aChfc2xvd19wYXRoX3RvX251bWVyaWMpCkBAIC0xMTY1LDEzICsxMTY1LDEzIEBAIGxs
aW50T3BXaXRoUHJvZmlsZShvcF90b19udW1lcmljLCBPcFRvTnVtZXJpYywgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHJldHVyCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9f
c3RyaW5nLCBPcFRvU3RyaW5nLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90b19zdHJpbmcsIE9wVG9TdHJpbmcsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldCht
X29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQog
ICAgIGJ0cW56IHQwLCBub3RDZWxsTWFzaywgLm9wVG9TdHJpbmdTbG93CiAgICAgYmJuZXEgSlND
ZWxsOjptX3R5cGVbdDBdLCBTdHJpbmdUeXBlLCAub3BUb1N0cmluZ1Nsb3cKIC5vcFRvU3RyaW5n
SXNTdHJpbmc6Ci0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDApCiAKIC5vcFRvU3RyaW5nU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19z
dHJpbmcpCkBAIC0xMTc5LDEyICsxMTc5LDEyIEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0
cmluZywgT3BUb1N0cmluZywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKIGVu
ZCkKIAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3Rv
X29iamVjdCwgT3BUb09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDIpCiAgICAgYnRxbnogdDIsIG5vdENlbGxNYXNrLCAu
b3BUb09iamVjdFNsb3cKICAgICBiYmIgSlNDZWxsOjptX3R5cGVbdDJdLCBPYmplY3RUeXBlLCAu
b3BUb09iamVjdFNsb3cKLSAgICByZXR1cm4odDIpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MikKIAogLm9wVG9PYmplY3RTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRo
X3RvX29iamVjdCkKQEAgLTExOTIsNyArMTE5Miw3IEBAIGxsaW50T3BXaXRoUHJvZmlsZShvcF90
b19vYmplY3QsIE9wVG9PYmplY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9uZWdhdGUsIE9wTmVnYXRlLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0
YWRhdGEob3BfbmVnYXRlLCBPcE5lZ2F0ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQw
KQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQzKQogICAgIGJxYiB0Mywg
bnVtYmVyVGFnLCAub3BOZWdhdGVOb3RJbnQKQEAgLTEyMDAsMTIgKzEyMDAsMTIgQEAgbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9uZWdhdGUsIE9wTmVnYXRlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHIKICAgICBuZWdpIHQzCiAgICAgb3JxIG51bWJlclRhZywgdDMKICAg
ICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlSW50
LCB0MSwgdDIpCi0gICAgcmV0dXJuKHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDMpCiAub3BOZWdhdGVOb3RJbnQ6CiAgICAgYnRxeiB0MywgbnVtYmVyVGFnLCAub3BOZWdhdGVT
bG93CiAgICAgeG9ycSAweDgwMDAwMDAwMDAwMDAwMDAsIHQzCiAgICAgdXBkYXRlVW5hcnlBcml0
aFByb2ZpbGUoc2l6ZSwgT3BOZWdhdGUsIEFyaXRoUHJvZmlsZU51bWJlciwgdDEsIHQyKQotICAg
IHJldHVybih0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQzKQogCiAub3BOZWdh
dGVTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX25lZ2F0ZSkKQEAgLTEyMTQsNyAr
MTIxNCw3IEBAIGVuZCkKIAogCiBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlLCBkb3VibGVPcGVyYXRpb24p
Ci0gICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
ICAgICBnZXQobV9yaHMsIHQwKQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSkKQEAgLTEzMjgsNyArMTMyOCw3IEBAIGJp
bmFyeU9wKHN1YiwgT3BTdWIsCiAgICAgbWFjcm8gKGxocywgcmhzKSBzdWJkIHJocywgbGhzIGVu
ZCkKIAogaWYgWDg2XzY0IG9yIFg4Nl82NF9XSU4KLSAgICBsbGludE9wV2l0aFJldHVybihvcF9t
b2QsIE9wTW9kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50
T3BXaXRoRGVzdGluYXRpb24ob3BfbW9kLCBPcE1vZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX3JocywgdDApCiAg
ICAgICAgIGdldChtX2xocywgdDIpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQz
MihzaXplLCB0MCwgdDEsIC5zbG93KQpAQCAtMTM0NSwxMyArMTM0NSwxMyBAQCBpZiBYODZfNjQg
b3IgWDg2XzY0X1dJTgogICAgICAgICBjZHFpCiAgICAgICAgIGlkaXZpIHQzCiAgICAgICAgIG9y
cSBudW1iZXJUYWcsIHIxCi0gICAgICAgIHJldHVybihyMSkKKyAgICAgICAgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaChyMSkKICAgICAubmVlZHNOZWdaZXJvQ2hlY2s6CiAgICAgICAgIGNkcWkK
ICAgICAgICAgaWRpdmkgdDMKICAgICAgICAgYnRpeiByMSwgLnNsb3cKICAgICAgICAgb3JxIG51
bWJlclRhZywgcjEKLSAgICAgICAgcmV0dXJuKHIxKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKHIxKQogCiAgICAgLnNsb3c6CiAgICAgICAgIGNhbGxTbG93UGF0aChfc2xvd19w
YXRoX21vZCkKQEAgLTEzNjEsNyArMTM2MSw3IEBAIGVsc2UKICAgICBzbG93UGF0aE9wKG1vZCkK
IGVuZAogCi1sbGludE9wV2l0aFJldHVybihvcF9wb3csIE9wUG93LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9wb3csIE9wUG93
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV9yaHMsIHQwKQogICAgIGdldChtX2xocywgdDIpCiAgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZUludDMyKHNpemUsIHQwLCB0MSwgLnNsb3cpCkBAIC0xNDAwLDExICsxNDAwLDEx
IEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3BvdywgT3BQb3csIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCByZXR1cm4pCiAgICAgZGlzcGF0Y2goKQogZW5kKQogCi1sbGludE9wV2l0aFJldHVy
bihvcF91bnNpZ25lZCwgT3BVbnNpZ25lZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJl
dHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfdW5zaWduZWQsIE9wVW5zaWduZWQsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEs
IHQyKQogICAgIGJpbHQgdDIsIDAsIC5vcFVuc2lnbmVkU2xvdwotICAgIHJldHVybih0MikKKyAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogLm9wVW5zaWduZWRTbG93OgogICAgIGNh
bGxTbG93UGF0aChfc2xvd19wYXRoX3Vuc2lnbmVkKQogICAgIGRpc3BhdGNoKCkKQEAgLTE0MTIs
NyArMTQxMiw3IEBAIGVuZCkKIAogCiBtYWNybyBjb21tb25CaXRPcChvcEtpbmQsIG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0aW9uKQotICAgIG9wS2luZChvcF8lb3Bjb2RlTmFtZSUs
IG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBv
cEtpbmQob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQw
KQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KHNpemUsIHQwLCB0MSkKQEAgLTE0MjEsNyArMTQyMSw3IEBAIG1hY3JvIGNvbW1vbkJpdE9wKG9w
S2luZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCiAgICAgICAgIGJxYiB0
MSwgbnVtYmVyVGFnLCAuc2xvdwogICAgICAgICBvcGVyYXRpb24odDAsIHQxKQogICAgICAgICBv
cnEgbnVtYmVyVGFnLCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2godDApCiAKICAgICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9z
bG93X3BhdGhfJW9wY29kZU5hbWUlKQpAQCAtMTQzMCw3ICsxNDMwLDcgQEAgbWFjcm8gY29tbW9u
Qml0T3Aob3BLaW5kLCBvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKIGVuZAog
CiBtYWNybyBiaXRPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKLSAgICBj
b21tb25CaXRPcChsbGludE9wV2l0aFJldHVybiwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBv
cGVyYXRpb24pCisgICAgY29tbW9uQml0T3AobGxpbnRPcFdpdGhEZXN0aW5hdGlvbiwgb3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCiBlbmQKIAogbWFjcm8gYml0T3BQcm9maWxl
ZChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKQEAgLTE0NTcsMTIgKzE0NTcs
MTIgQEAgYml0T3BQcm9maWxlZChiaXRvciwgT3BCaXRvciwKIGJpdE9wUHJvZmlsZWQoYml0eG9y
LCBPcEJpdHhvciwKICAgICBtYWNybyAobGhzLCByaHMpIHhvcmkgcmhzLCBsaHMgZW5kKQogCi1s
bGludE9wV2l0aFByb2ZpbGUob3BfYml0bm90LCBPcEJpdG5vdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF9iaXRub3QsIE9wQml0bm90
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIo
c2l6ZSwgdDAsIHQzLCAub3BCaXROb3RTbG93KQogICAgIG5vdGkgdDMKICAgICBvcnEgbnVtYmVy
VGFnLCB0MwotICAgIHJldHVybih0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQz
KQogLm9wQml0Tm90U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9iaXRub3QpCiAg
ICAgZGlzcGF0Y2goKQpAQCAtMTQ5Miw2NyArMTQ5Miw2NyBAQCBsbGludE9wKG9wX292ZXJyaWRl
c19oYXNfaW5zdGFuY2UsIE9wT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIG1hY3JvIChzaXplLCBnZXQs
IGRpcwogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX2VtcHR5LCBPcElzRW1wdHks
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0
aW9uKG9wX2lzX2VtcHR5LCBPcElzRW1wdHksIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQogICAgIGNxZXEgdDAsIFZhbHVlRW1w
dHksIHQzCiAgICAgb3JxIFZhbHVlRmFsc2UsIHQzCi0gICAgcmV0dXJuKHQzKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2godDMpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3Bf
dHlwZW9mX2lzX3VuZGVmaW5lZCwgT3BUeXBlb2ZJc1VuZGVmaW5lZCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfdHlwZW9mX2lz
X3VuZGVmaW5lZCwgT3BUeXBlb2ZJc1VuZGVmaW5lZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAgICAgYnRxeiB0MCwgbm90
Q2VsbE1hc2ssIC5vcElzVW5kZWZpbmVkQ2VsbAogICAgIGNxZXEgdDAsIFZhbHVlVW5kZWZpbmVk
LCB0MwogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MwotICAgIHJldHVybih0MykKKyAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKHQzKQogLm9wSXNVbmRlZmluZWRDZWxsOgogICAgIGJ0Ym56IEpT
Q2VsbDo6bV9mbGFnc1t0MF0sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIC5tYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkCiAgICAgbW92ZSBWYWx1ZUZhbHNlLCB0MQotICAgIHJldHVybih0MSkKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogLm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ6CiAg
ICAgbG9hZFN0cnVjdHVyZVdpdGhTY3JhdGNoKHQwLCB0MywgdDEpCiAgICAgbG9hZHAgQ29kZUJs
b2NrW2Nmcl0sIHQxCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MV0sIHQx
CiAgICAgY3BlcSBTdHJ1Y3R1cmU6Om1fZ2xvYmFsT2JqZWN0W3QzXSwgdDEsIHQwCiAgICAgb3Jx
IFZhbHVlRmFsc2UsIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2godDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfYm9vbGVhbiwgT3BJ
c0Jvb2xlYW4sIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0
aERlc3RpbmF0aW9uKG9wX2lzX2Jvb2xlYW4sIE9wSXNCb29sZWFuLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5k
LCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MCkKICAgICB4b3Jx
IFZhbHVlRmFsc2UsIHQwCiAgICAgdHF6IHQwLCB+MSwgdDAKICAgICBvcnEgVmFsdWVGYWxzZSwg
dDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIGVu
ZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19udW1iZXIsIE9wSXNOdW1iZXIsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9w
X2lzX251bWJlciwgT3BJc051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAgICAgdHFueiB0MCwgbnVtYmVyVGFnLCB0
MQogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MQotICAgIHJldHVybih0MSkKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQxKQogZW5kKQogCiBpZiBCSUdJTlQzMgotICAgIGxsaW50T3BXaXRo
UmV0dXJuKG9wX2lzX2JpZ19pbnQsIE9wSXNCaWdJbnQsIG1hY3JvKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX2JpZ19pbnQsIE9w
SXNCaWdJbnQsIG1hY3JvKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHNpemUsIHQxLCB0MCkKICAgICAgICAgYnRxbnogdDAsIG5vdENlbGxNYXNrLCAu
bm90Q2VsbENhc2UKICAgICAgICAgY2JlcSBKU0NlbGw6Om1fdHlwZVt0MF0sIEhlYXBCaWdJbnRU
eXBlLCB0MQogICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDEKLSAgICAgICAgcmV0dXJuKHQxKQor
ICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogICAgIC5ub3RDZWxsQ2FzZToK
ICAgICAgICAgYW5kcSBNYXNrQmlnSW50MzIsIHQwCiAgICAgICAgIGNxZXEgdDAsIFRhZ0JpZ0lu
dDMyLCB0MAogICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICAgICAgcmV0dXJuKHQwKQor
ICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogICAgIGVuZCkKIGVsc2UKICMg
aWYgQklHSU5UMzIgaXMgbm90IHN1cHBvcnRlZCB3ZSBnZW5lcmF0ZSBvcF9pc19jZWxsX3dpdGhf
dHlwZSBpbnN0ZWFkIG9mIG9wX2lzX2JpZ19pbnQKQEAgLTE1NjEsMjggKzE1NjEsMjggQEAgZWxz
ZQogICAgIGVuZCkKIGVuZAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19jZWxsX3dpdGhfdHlw
ZSwgT3BJc0NlbGxXaXRoVHlwZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikK
K2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfY2VsbF93aXRoX3R5cGUsIE9wSXNDZWxsV2l0
aFR5cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKQogICAgIGdldHUoc2l6ZSwgT3BJc0NlbGxXaXRoVHlwZSwgbV90eXBlLCB0MCkKICAgICBn
ZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0
MykKICAgICBidHFueiB0Mywgbm90Q2VsbE1hc2ssIC5ub3RDZWxsQ2FzZQogICAgIGNiZXEgSlND
ZWxsOjptX3R5cGVbdDNdLCB0MCwgdDEKICAgICBvcnEgVmFsdWVGYWxzZSwgdDEKLSAgICByZXR1
cm4odDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MSkKIC5ub3RDZWxsQ2FzZToK
LSAgICByZXR1cm4oVmFsdWVGYWxzZSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKFZh
bHVlRmFsc2UpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfb2JqZWN0LCBPcElz
T2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhE
ZXN0aW5hdGlvbihvcF9pc19vYmplY3QsIE9wSXNPYmplY3QsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQx
KQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQogICAgIGJ0cW56IHQw
LCBub3RDZWxsTWFzaywgLm9wSXNPYmplY3ROb3RDZWxsCiAgICAgY2JhZXEgSlNDZWxsOjptX3R5
cGVbdDBdLCBPYmplY3RUeXBlLCB0MQogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MQotICAgIHJldHVy
bih0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogLm9wSXNPYmplY3ROb3RD
ZWxsOgotICAgIHJldHVybihWYWx1ZUZhbHNlKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2goVmFsdWVGYWxzZSkKIGVuZCkKIAogCkBAIC0xNjE4LDcgKzE2MTgsNyBAQCBtYWNybyBzdG9y
ZVByb3BlcnR5QXRWYXJpYWJsZU9mZnNldChwcm9wZXJ0eU9mZnNldEFzSW50LCBvYmplY3RBbmRT
dG9yYWdlLCB2YWx1ZQogZW5kCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90cnlfZ2V0X2J5
X2lkLCBPcFRyeUdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
cmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90cnlfZ2V0X2J5X2lkLCBPcFRyeUdldEJ5
SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0MiwgdDApCiAgICAgZ2V0KG1fYmFzZSwgdDApCiAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwgdDAsIHQzLCAub3BUcnlHZXRCeUlk
U2xvdykKQEAgLTE2MjgsMTQgKzE2MjgsMTQgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90cnlf
Z2V0X2J5X2lkLCBPcFRyeUdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLAogICAg
IGxvYWRpIE9wVHJ5R2V0QnlJZDo6TWV0YWRhdGE6Om1fb2Zmc2V0W3QyXSwgdDEKICAgICBsb2Fk
UHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDApCiAgICAgdmFsdWVQcm9maWxlKE9w
VHJ5R2V0QnlJZCwgbV9wcm9maWxlLCB0MiwgdDApCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcFRyeUdldEJ5SWRTbG93OgogICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RyeV9nZXRfYnlfaWQpCiAgICAgZGlzcGF0Y2goKQog
ZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZF9kaXJlY3QsIE9wR2V0QnlJ
ZERpcmVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCits
bGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZF9kaXJlY3QsIE9wR2V0QnlJZERpcmVjdCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKQogICAgIG1ldGFkYXRhKHQyLCB0MCkKICAgICBnZXQobV9iYXNlLCB0MCkKICAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChzaXplLCB0MCwgdDMsIC5vcEdldEJ5SWREaXJlY3RT
bG93KQpAQCAtMTY0NSw3ICsxNjQ1LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlf
aWRfZGlyZWN0LCBPcEdldEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3AKICAgICBs
b2FkaSBPcEdldEJ5SWREaXJlY3Q6Ok1ldGFkYXRhOjptX29mZnNldFt0Ml0sIHQxCiAgICAgbG9h
ZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDMsIHQwKQogICAgIHZhbHVlUHJvZmlsZShP
cEdldEJ5SWREaXJlY3QsIG1fcHJvZmlsZSwgdDIsIHQwKQotICAgIHJldHVybih0MCkKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BHZXRCeUlkRGlyZWN0U2xvdzoKICAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWRfZGlyZWN0KQpAQCAtMTY1
Myw3ICsxNjUzLDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWRfZGlyZWN0LCBP
cEdldEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3AKIGVuZCkKIAogIyBUaGUgYmFz
ZSBvYmplY3QgaXMgZXhwZWN0ZWQgaW4gdDMKLW1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVyKG9w
Y29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvd0xhYmVs
LCBzaXplLCBtZXRhZGF0YSwgcmV0dXJuKQorbWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIob3Bj
b2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1lLCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG93TGFiZWws
IHNpemUsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRh
KHQyLCB0MSkKICAgICBsb2FkYiAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRh
dGFOYW1lJS5tb2RlW3QyXSwgdDEKIApAQCAtMTY2NSw3ICsxNjY1LDcgQEAgbWFjcm8gcGVyZm9y
bUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1lLCB2YWx1ZVByb2Zp
bGVOYW1lLCBzbG8KICAgICBsb2FkaXMgJW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjolbW9kZU1l
dGFkYXRhTmFtZSUuZGVmYXVsdE1vZGUuY2FjaGVkT2Zmc2V0W3QyXSwgdDEKICAgICBsb2FkUHJv
cGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDApCiAgICAgdmFsdWVQcm9maWxlKG9wY29k
ZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgdDIsIHQwKQotICAgIHJldHVybih0MCkKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BHZXRCeUlkUHJvdG9Mb2FkOgogICAg
IGJibmVxIHQxLCBjb25zdGV4cHIgR2V0QnlJZE1vZGU6OlByb3RvTG9hZCwgLm9wR2V0QnlJZEFy
cmF5TGVuZ3RoCkBAIC0xNjc2LDcgKzE2NzYsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBl
cihvcGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwog
ICAgIGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRhZGF0YU5hbWUlLnBy
b3RvTG9hZE1vZGUuY2FjaGVkU2xvdFt0Ml0sIHQzCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJs
ZU9mZnNldCh0MSwgdDMsIHQwKQogICAgIHZhbHVlUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIHZhbHVl
UHJvZmlsZU5hbWUsIHQyLCB0MCkKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCh0MCkKIAogLm9wR2V0QnlJZEFycmF5TGVuZ3RoOgogICAgIGJibmVxIHQxLCBj
b25zdGV4cHIgR2V0QnlJZE1vZGU6OkFycmF5TGVuZ3RoLCAub3BHZXRCeUlkVW5zZXQKQEAgLTE2
ODksMjEgKzE2ODksMjEgQEAgbWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0
LCBtb2RlTWV0YWRhdGFOYW1lLCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG8KICAgICBiaWx0IHQwLCAw
LCBzbG93TGFiZWwKICAgICBvcnEgbnVtYmVyVGFnLCB0MAogICAgIHZhbHVlUHJvZmlsZShvcGNv
ZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIHQyLCB0MCkKLSAgICByZXR1cm4odDApCisgICAg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogLm9wR2V0QnlJZFVuc2V0OgogICAgIGxv
YWRpIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxCiAgICAgbG9hZGkgJW9wY29kZVN0cnVj
dCU6Ok1ldGFkYXRhOjolbW9kZU1ldGFkYXRhTmFtZSUudW5zZXRNb2RlLnN0cnVjdHVyZUlEW3Qy
XSwgdDAKICAgICBiaW5lcSB0MCwgdDEsIHNsb3dMYWJlbAogICAgIHZhbHVlUHJvZmlsZShvcGNv
ZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIHQyLCBWYWx1ZVVuZGVmaW5lZCkKLSAgICByZXR1
cm4oVmFsdWVVbmRlZmluZWQpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChWYWx1ZVVu
ZGVmaW5lZCkKIAogZW5kCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkLCBPcEdl
dEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdl
dChtX2Jhc2UsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNpemUsIHQwLCB0
MywgLm9wR2V0QnlJZFNsb3cpCi0gICAgcGVyZm9ybUdldEJ5SURIZWxwZXIoT3BHZXRCeUlkLCBt
X21vZGVNZXRhZGF0YSwgbV9wcm9maWxlLCAub3BHZXRCeUlkU2xvdywgc2l6ZSwgbWV0YWRhdGEs
IHJldHVybikKKyAgICBwZXJmb3JtR2V0QnlJREhlbHBlcihPcEdldEJ5SWQsIG1fbW9kZU1ldGFk
YXRhLCBtX3Byb2ZpbGUsIC5vcEdldEJ5SWRTbG93LCBzaXplLCBtZXRhZGF0YSwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKIAogLm9wR2V0QnlJZFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfZ2V0X2J5X2lkKQpAQCAtMTcxMywxMiArMTcxMywxMiBAQCBsbGludE9w
V2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdAogICAgIGdldHRlclNldHRlck9TUkV4aXRSZXR1cm5Qb2ludChvcF9n
ZXRfYnlfaWQsIHNpemUpCiAgICAgbWV0YWRhdGEodDIsIHQzKQogICAgIHZhbHVlUHJvZmlsZShP
cEdldEJ5SWQsIG1fcHJvZmlsZSwgdDIsIHIwKQotICAgIHJldHVybihyMCkKKyAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKHIwKQogCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhQcm9maWxlKG9w
X2dldF9wcm90b3R5cGVfb2YsIE9wR2V0UHJvdG90eXBlT2YsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X3Byb3RvdHlwZV9vZiwg
T3BHZXRQcm90b3R5cGVPZiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fdmFsdWUsIHQxKQogICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGUoc2l6ZSwgdDEsIHQwKQogCkBAIC0xNzMxLDcgKzE3MzEsNyBAQCBsbGludE9wV2l0
aFByb2ZpbGUob3BfZ2V0X3Byb3RvdHlwZV9vZiwgT3BHZXRQcm90b3R5cGVPZiwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcAogCiAgICAgbG9hZHEgU3RydWN0dXJlOjptX3Byb3RvdHlwZVt0Ml0sIHQy
CiAgICAgYnRxeiB0MiwgLm9wR2V0UHJvdG90eXBlT2ZQb2x5UHJvdG8KLSAgICByZXR1cm4odDIp
CisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MikKIAogLm9wR2V0UHJvdG90eXBlT2ZT
bG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2dldF9wcm90b3R5cGVfb2YpCkBAIC0x
NzQwLDExICsxNzQwLDExIEBAIGxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfcHJvdG90eXBlX29m
LCBPcEdldFByb3RvdHlwZU9mLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwCiAub3BHZXRQcm90b3R5
cGVPZlBvbHlQcm90bzoKICAgICBtb3ZlIGtub3duUG9seVByb3RvT2Zmc2V0LCB0MQogICAgIGxv
YWRJbmxpbmVPZmZzZXQodDEsIHQwLCB0MykKLSAgICByZXR1cm4odDMpCisgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCh0MykKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3B1
dF9ieV9pZCwgT3BQdXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1dEJ5SWQsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBnZXQobV9iYXNlLCB0MykKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2Vs
bChzaXplLCB0MywgdDAsIC5vcFB1dEJ5SWRTbG93KQogICAgIG1ldGFkYXRhKHQ1LCB0MikKQEAg
LTE4MTcsNyArMTgxNyw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1
dEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0CiBlbmQpCiAKIAotbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdldEJ5VmFsLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bf
Z2V0X2J5X3ZhbCwgT3BHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFk
YXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1hY3JvIGZpbmlzaEdldEJ5VmFs
KHJlc3VsdCwgc2NyYXRjaCkKICAgICAgICAgZ2V0KG1fZHN0LCBzY3JhdGNoKQogICAgICAgICBz
dG9yZXEgcmVzdWx0LCBbY2ZyLCBzY3JhdGNoLCA4XQpAQCAtMTkwNSwxMSArMTkwNSwxMSBAQCBs
bGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV92YWwsIE9wR2V0QnlWYWwsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCBtZXRhZAogICAgIGdldHRlclNldHRlck9TUkV4aXRSZXR1cm5Qb2lu
dChvcF9nZXRfYnlfdmFsLCBzaXplKQogICAgIG1ldGFkYXRhKHQ1LCB0MikKICAgICB2YWx1ZVBy
b2ZpbGUoT3BHZXRCeVZhbCwgbV9wcm9maWxlLCB0NSwgcjApCi0gICAgcmV0dXJuKHIwKQorICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gocjApCiAKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRh
ZGF0YShvcF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bf
Z2V0X3ByaXZhdGVfbmFtZSwgT3BHZXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRh
KHQyLCB0MCkKIAogICAgICMgU2xvdyBwYXRoIGlmIHRoZSBwcml2YXRlIGZpZWxkIGlzIHN0YWxl
CkBAIC0xOTI3LDE0ICsxOTI3LDE0IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X3ByaXZh
dGVfbmFtZSwgT3BHZXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzCiAgICAgbG9h
ZGkgT3BHZXRQcml2YXRlTmFtZTo6TWV0YWRhdGE6Om1fb2Zmc2V0W3QyXSwgdDEKICAgICBsb2Fk
UHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDApCiAgICAgdmFsdWVQcm9maWxlKE9w
R2V0UHJpdmF0ZU5hbWUsIG1fcHJvZmlsZSwgdDIsIHQwKQotICAgIHJldHVybih0MCkKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BHZXRQcml2YXRlTmFtZVNsb3c6CiAg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X3ByaXZhdGVfbmFtZSkKICAgICBk
aXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3ByaXZhdGVfbmFt
ZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3B1dF9wcml2YXRlX25hbWUsIE9wUHV0
UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9iYXNlLCB0MykKICAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlQ2VsbChzaXplLCB0MywgdDAsIC5vcFB1dFByaXZhdGVOYW1lU2xvdykKICAg
ICBnZXQobV9wcm9wZXJ0eSwgdDMpCkBAIC0xOTc3LDcgKzE5NzcsNyBAQCBsbGludE9wV2l0aE1l
dGFkYXRhKG9wX3B1dF9wcml2YXRlX25hbWUsIE9wUHV0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXpl
LCBnZXQsIGRpcwogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF9zZXRfcHJpdmF0ZV9icmFuZCwgT3BTZXRQcml2YXRlQnJhbmQsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9zZXRf
cHJpdmF0ZV9icmFuZCwgT3BTZXRQcml2YXRlQnJhbmQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9iYXNl
LCB0MykKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChzaXplLCB0MywgdDAsIC5vcFNl
dFByaXZhdGVCcmFuZFNsb3cpCiAgICAgZ2V0KG1fYnJhbmQsIHQzKQpAQCAtMTk5OSw3ICsxOTk5
LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9zZXRfcHJpdmF0ZV9icmFuZCwgT3BTZXRQcml2
YXRlQnJhbmQsIG1hY3JvIChzaXplLCBnZXQsIGQKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxs
aW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0ZV9icmFuZCwgT3BDaGVja1ByaXZhdGVC
cmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2NoZWNrX3ByaXZhdGVfYnJhbmQsIE9wQ2hlY2tQcml2YXRlQnJh
bmQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgZ2V0KG1fYmFzZSwgdDMpCiAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwgdDMsIHQwLCAub3BDaGVja1ByaXZh
dGVCcmFuZFNsb3cpCkBAIC0yMDE5LDcgKzIwMTksNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9w
X2NoZWNrX3ByaXZhdGVfYnJhbmQsIE9wQ2hlY2tQcml2YXRlQnJhbmQsIG1hY3JvIChzaXplLCBn
ZQogZW5kKQogCiBtYWNybyBwdXRCeVZhbE9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgb3Ny
RXhpdFBvaW50KQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNv
ZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQor
ICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICAgICAgbWFjcm8gY29udGlndW91c1B1dEJ5VmFsKHN0b3JlQ2FsbGJhY2spCiAg
ICAgICAgICAgICBiaWFlcSB0MywgLXNpemVvZiBJbmRleGluZ0hlYWRlciArIEluZGV4aW5nSGVh
ZGVyOjp1Lmxlbmd0aHMucHVibGljTGVuZ3RoW3QwXSwgLm91dE9mQm91bmRzCiAgICAgICAgIC5z
dG9yZVJlc3VsdDoKQEAgLTIyMDQsNyArMjIwNCw3IEBAIHVuZGVmaW5lZE9yTnVsbEp1bXBPcChq
dW5kZWZpbmVkX29yX251bGwsIE9wSnVuZGVmaW5lZE9yTnVsbCwKIHVuZGVmaW5lZE9yTnVsbEp1
bXBPcChqbnVuZGVmaW5lZF9vcl9udWxsLCBPcEpudW5kZWZpbmVkT3JOdWxsLAogICAgIG1hY3Jv
ICh2YWx1ZSwgdGFyZ2V0KSBicW5lcSB2YWx1ZSwgVmFsdWVOdWxsLCB0YXJnZXQgZW5kKQogCi1s
bGludE9wV2l0aFJldHVybihvcF9qZXFfcHRyLCBPcEplcVB0ciwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfamVxX3B0ciwgT3BK
ZXFQdHIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKQogICAgIGdldChtX3ZhbHVlLCB0MCkKICAgICBnZXQobV9zcGVjaWFsUG9pbnRlciwgdDEp
CiAgICAgbG9hZENvbnN0YW50KHNpemUsIHQxLCB0MikKQEAgLTIyMTcsNyArMjIxNyw3IEBAIGxs
aW50T3BXaXRoUmV0dXJuKG9wX2plcV9wdHIsIE9wSmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgcmV0dXJuKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3Bfam5lcV9w
dHIsIE9wSm5lcVB0ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2puZXFfcHRyLCBPcEpuZXFQdHIsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV92YWx1ZSwgdDApCiAgICAgZ2V0KG1fc3BlY2lhbFBvaW50ZXIsIHQxKQogICAg
IGxvYWRDb25zdGFudChzaXplLCB0MSwgdDIpCkBAIC0yMzExLDcgKzIzMTEsNyBAQCBlbmQKIAog
CiBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFy
ZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZFNldCkKLSAgICBsbGludE9wV2l0aFJldHVybihvcF8l
b3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJl
dHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2Rl
U3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikKICAgICAgICAgZ2V0KG1fcmhzLCB0MCkKICAg
ICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDEpCkBAIC0yMzIwLDcgKzIz
MjAsNyBAQCBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2Vy
Q29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZAogICAgICAgICBicWIgdDEsIG51bWJlclRh
ZywgLm9wMk5vdEludAogICAgICAgICBpbnRlZ2VyQ29tcGFyZUFuZFNldCh0MCwgdDEsIHQwKQog
ICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICAgICAgcmV0dXJuKHQwKQorICAgICAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAgICAgLm9wMU5vdEludDoKICAgICAgICAg
YnRxeiB0MCwgbnVtYmVyVGFnLCAuc2xvdwpAQCAtMjMzOCw3ICsyMzM4LDcgQEAgbWFjcm8gY29t
cGFyZU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmVBbmRTZXQsIGRv
dWJsZUNvbXBhcmVBbmQKICAgICAgICAgZnEyZCB0MCwgZnQwCiAgICAgICAgIGRvdWJsZUNvbXBh
cmVBbmRTZXQoZnQwLCBmdDEsIHQwKQogICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICAg
ICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAg
ICAgLm9wMk5vdEludDoKICAgICAgICAgY2kyZHMgdDAsIGZ0MApAQCAtMjM0Nyw3ICsyMzQ3LDcg
QEAgbWFjcm8gY29tcGFyZU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBh
cmVBbmRTZXQsIGRvdWJsZUNvbXBhcmVBbmQKICAgICAgICAgZnEyZCB0MSwgZnQxCiAgICAgICAg
IGRvdWJsZUNvbXBhcmVBbmRTZXQoZnQwLCBmdDEsIHQwKQogICAgICAgICBvcnEgVmFsdWVGYWxz
ZSwgdDAKLSAgICAgICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKHQwKQogCiAgICAgLnNsb3c6CiAgICAgICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoXyVv
cGNvZGVOYW1lJSkKQEAgLTIzNTcsMTQgKzIzNTcsMTQgQEAgZW5kCiAKIAogbWFjcm8gY29tcGFy
ZVVuc2lnbmVkT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNl
dCkKLSAgICBsbGludE9wV2l0aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3Rp
bmF0aW9uKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fbGhzLCB0
MikKICAgICAgICAgZ2V0KG1fcmhzLCAgdDApCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUoc2l6ZSwgdDAsIHQxKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQy
LCB0MCkKICAgICAgICAgaW50ZWdlckNvbXBhcmVBbmRTZXQodDAsIHQxLCB0MCkKICAgICAgICAg
b3JxIFZhbHVlRmFsc2UsIHQwCi0gICAgICAgIHJldHVybih0MCkKKyAgICAgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCh0MCkKICAgICBlbmQpCiBlbmQKIApAQCAtMjQ3Niw3ICsyNDc2LDcg
QEAgbWFjcm8gY2FsbEhlbHBlcihvcGNvZGVOYW1lLCBzbG93UGF0aCwgb3Bjb2RlU3RydWN0LCB2
YWx1ZVByb2ZpbGVOYW1lLCBkc3RWaXJ0dWEKIAogICAgIGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpN
ZXRhZGF0YTo6bV9jYWxsTGlua0luZm8ubV9jYWxsZWVPckNvZGVCbG9ja1t0NV0sIHQxCiAgICAg
YnRweiB0MSwgKGNvbnN0ZXhwciBDYWxsTGlua0luZm86OnBvbHltb3JwaGljQ2FsbGVlTWFzayks
IC5ub3RQb2x5bW9ycGhpYwotICAgICMgcHJlcGFyZUNhbGwgaW4gTExJbnQgZG9lcyBub3QgdW50
YWcgcmV0dXJuIGFkZHJlc3MuIFNvIHdlIG5lZWQgdG8gdW50YWcgdGhhdCBpbiB0aGUgdHJhbXBv
bGluZSBzZXBhcmF0ZWx5LgorICAgICMgcHJlcGFyZUNhbGwgaW4gTExJbnQgZG9lcyBub3QgdW50
YWcgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCBhZGRyZXNzLiBTbyB3ZSBuZWVkIHRvIHVudGFn
IHRoYXQgaW4gdGhlIHRyYW1wb2xpbmUgc2VwYXJhdGVseS4KICAgICAjIEJ1dCB3ZSBzaG91bGQg
bm90IHVudGFnIHRoYXQgZm9yIHBvbHltb3JwaGljIGNhbGwgY2FzZSBzaW5jZSBpdCBzaG91bGQg
YmUgZG9uZSBpbiB0aGUgcG9seW1vcnBoaWMgdGh1bmsgc2lkZS4KICAgICBwcmVwYXJlUG9seW1v
cnBoaWMob3Bjb2RlTmFtZSwgc2l6ZSwgb3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCBk
c3RWaXJ0dWFsUmVnaXN0ZXIsIGRpc3BhdGNoLCBKU0VudHJ5UHRyVGFnKQogICAgIGptcCAuZ29Q
b2x5bW9ycGhpYwpAQCAtMjUwMiw3ICsyNTAyLDcgQEAgbWFjcm8gY2FsbEhlbHBlcihvcGNvZGVO
YW1lLCBzbG93UGF0aCwgb3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCBkc3RWaXJ0dWEK
IGVuZAogCiBtYWNybyBjb21tb25DYWxsT3Aob3Bjb2RlTmFtZSwgc2xvd1BhdGgsIG9wY29kZVN0
cnVjdCwgcHJlcGFyZUNhbGwsIGludm9rZUNhbGwsIHByZXBhcmVQb2x5bW9ycGhpYywgcHJlcGFy
ZVNsb3dDYWxsLCBwcm9sb2d1ZSkKLSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCisgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICAgICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgICAgIHByb2xvZ3VlKG1hY3Jv
IChmaWVsZE5hbWUsIGRzdCkKQEAgLTI1NTQsNyArMjU1NCw3IEBAIG1hY3JvIGRvQ2FsbFZhcmFy
Z3Mob3Bjb2RlTmFtZSwgc2l6ZSwgZ2V0LCBvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUs
IGRzdFZpCiAKICAgICAgICAgICAgIGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6bV9j
YWxsTGlua0luZm8ubV9jYWxsZWVPckNvZGVCbG9ja1t0NV0sIHQxCiAgICAgICAgICAgICBidHB6
IHQxLCAoY29uc3RleHByIENhbGxMaW5rSW5mbzo6cG9seW1vcnBoaWNDYWxsZWVNYXNrKSwgLm5v
dFBvbHltb3JwaGljCi0gICAgICAgICAgICAjIHByZXBhcmVDYWxsIGluIExMSW50IGRvZXMgbm90
IHVudGFnIHJldHVybiBhZGRyZXNzLiBTbyB3ZSBuZWVkIHRvIHVudGFnIHRoYXQgaW4gdGhlIHRy
YW1wb2xpbmUgc2VwYXJhdGVseS4KKyAgICAgICAgICAgICMgcHJlcGFyZUNhbGwgaW4gTExJbnQg
ZG9lcyBub3QgdW50YWcgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCBhZGRyZXNzLiBTbyB3ZSBu
ZWVkIHRvIHVudGFnIHRoYXQgaW4gdGhlIHRyYW1wb2xpbmUgc2VwYXJhdGVseS4KICAgICAgICAg
ICAgICMgQnV0IHdlIHNob3VsZCBub3QgdW50YWcgdGhhdCBmb3IgcG9seW1vcnBoaWMgY2FsbCBj
YXNlIHNpbmNlIGl0IHNob3VsZCBiZSBkb25lIGluIHRoZSBwb2x5bW9ycGhpYyB0aHVuayBzaWRl
LgogICAgICAgICAgICAgcHJlcGFyZVBvbHltb3JwaGljKG9wY29kZU5hbWUsIHNpemUsIG9wY29k
ZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgZHN0VmlydHVhbFJlZ2lzdGVyLCBkaXNwYXRjaCwg
SlNFbnRyeVB0clRhZykKICAgICAgICAgICAgIGptcCAuZ29Qb2x5bW9ycGhpYwpAQCAtMjU5MCwx
MyArMjU5MCwxMyBAQCBsbGludE9wKG9wX3JldCwgT3BSZXQsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3ByaW1pdGl2ZSwgT3BU
b1ByaW1pdGl2ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BX
aXRoRGVzdGluYXRpb24ob3BfdG9fcHJpbWl0aXZlLCBPcFRvUHJpbWl0aXZlLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9z
cmMsIHQyKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQwKQogICAgIGJ0
cW56IHQwLCBub3RDZWxsTWFzaywgLm9wVG9QcmltaXRpdmVJc0ltbQogICAgIGJiYWVxIEpTQ2Vs
bDo6bV90eXBlW3QwXSwgT2JqZWN0VHlwZSwgLm9wVG9QcmltaXRpdmVTbG93Q2FzZQogLm9wVG9Q
cmltaXRpdmVJc0ltbToKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MCkKIAogLm9wVG9QcmltaXRpdmVTbG93Q2FzZToKICAgICBjYWxsU2xvd1BhdGgoX3Ns
b3dfcGF0aF90b19wcmltaXRpdmUpCkBAIC0yNjA0LDcgKzI2MDQsNyBAQCBsbGludE9wV2l0aFJl
dHVybihvcF90b19wcmltaXRpdmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCByZQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3Byb3BlcnR5X2tl
eSwgT3BUb1Byb3BlcnR5S2V5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90b19wcm9wZXJ0eV9rZXksIE9wVG9Qcm9wZXJ0eUtl
eSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gp
CiAgICAgZ2V0KG1fc3JjLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQy
LCB0MCkKIApAQCAtMjYxMyw3ICsyNjEzLDcgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfdG9fcHJv
cGVydHlfa2V5LCBPcFRvUHJvcGVydHlLZXksIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGMKICAg
ICBiYm5lcSBKU0NlbGw6Om1fdHlwZVt0MF0sIFN0cmluZ1R5cGUsIC5vcFRvUHJvcGVydHlLZXlT
bG93CiAKIC5kb25lOgotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKHQwKQogCiAub3BUb1Byb3BlcnR5S2V5U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3df
cGF0aF90b19wcm9wZXJ0eV9rZXkpCkBAIC0yNjIzLDcgKzI2MjMsNyBAQCBlbmQpCiAKIGNvbW1v
bk9wKGxsaW50X29wX2NhdGNoLCBtYWNybyAoKSBlbmQsIG1hY3JvIChzaXplKQogICAgICMgVGhp
cyBpcyB3aGVyZSB3ZSBlbmQgdXAgZnJvbSB0aGUgSklUJ3MgdGhyb3cgdHJhbXBvbGluZSAoYmVj
YXVzZSB0aGUKLSAgICAjIG1hY2hpbmUgY29kZSByZXR1cm4gYWRkcmVzcyB3aWxsIGJlIHNldCB0
byBfbGxpbnRfb3BfY2F0Y2gpLCBhbmQgZnJvbQorICAgICMgbWFjaGluZSBjb2RlIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2ggYWRkcmVzcyB3aWxsIGJlIHNldCB0byBfbGxpbnRfb3BfY2F0Y2gp
LCBhbmQgZnJvbQogICAgICMgdGhlIGludGVycHJldGVyJ3MgdGhyb3cgdHJhbXBvbGluZSAoc2Vl
IF9sbGludF90aHJvd190cmFtcG9saW5lKS4KICAgICAjIFRoZSB0aHJvd2luZyBjb2RlIG11c3Qg
aGF2ZSBrbm93biB0aGF0IHdlIHdlcmUgdGhyb3dpbmcgdG8gdGhlIGludGVycHJldGVyLAogICAg
ICMgYW5kIGhhdmUgc2V0IFZNOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhyb3cuCkBAIC0yNzg1
LDE2ICsyNzg1LDE2IEBAIG1hY3JvIHZhckluamVjdGlvbkNoZWNrKHNsb3dQYXRoLCBzY3JhdGNo
KQogICAgIGJiZXEgV2F0Y2hwb2ludFNldDo6bV9zdGF0ZVtzY3JhdGNoXSwgSXNJbnZhbGlkYXRl
ZCwgc2xvd1BhdGgKIGVuZAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3Jlc29sdmVfc2NvcGUs
IE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJl
dHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2Nv
cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDApCiAKICAgICBtYWNybyBnZXRDb25zdGFu
dFNjb3BlKGRzdCkKICAgICAgICAgbG9hZHAgT3BSZXNvbHZlU2NvcGU6Ok1ldGFkYXRhOjptX2Nv
bnN0YW50U2NvcGVbdDVdLCBkc3QKICAgICBlbmQKIAotICAgIG1hY3JvIHJldHVybkNvbnN0YW50
U2NvcGUoKQorICAgIG1hY3JvIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2hDb25zdGFudFNjb3Bl
KCkKICAgICAgICAgZ2V0Q29uc3RhbnRTY29wZSh0MCkKLSAgICAgICAgcmV0dXJuKHQwKQorICAg
ICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogICAgIGVuZAogCiAgICAgbWFjcm8g
Z2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKHNsb3dQYXRoLCBnbG9iYWxPYmplY3QsIHNj
cmF0Y2gpCkBAIC0yODE0LDcgKzI4MTQsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3Jlc29s
dmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAogICAg
ICAgICBidGlueiB0MiwgLnJlc29sdmVTY29wZUxvb3AKIAogICAgIC5yZXNvbHZlU2NvcGVMb29w
RW5kOgotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2godDApCiAgICAgZW5kCiAKICAgICBsb2FkaSBPcFJlc29sdmVTY29wZTo6TWV0YWRhdGE6Om1f
cmVzb2x2ZVR5cGVbdDVdLCB0MApAQCAtMjgyMywxNSArMjgyMywxNSBAQCBsbGludE9wV2l0aE1l
dGFkYXRhKG9wX3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaAogICAgIGJpbmVxIHQwLCBHbG9iYWxQcm9wZXJ0eSwgLnJHbG9iYWxWYXIKICAg
ICBnZXRDb25zdGFudFNjb3BlKHQwKQogICAgIGdsb2JhbExleGljYWxCaW5kaW5nRXBvY2hDaGVj
ayguckR5bmFtaWMsIHQwLCB0MikKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCh0MCkKIAogLnJHbG9iYWxWYXI6CiAgICAgYmluZXEgdDAsIEdsb2JhbFZhciwg
LnJHbG9iYWxMZXhpY2FsVmFyCi0gICAgcmV0dXJuQ29uc3RhbnRTY29wZSgpCisgICAgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaENvbnN0YW50U2NvcGUoKQogCiAuckdsb2JhbExleGljYWxWYXI6
CiAgICAgYmluZXEgdDAsIEdsb2JhbExleGljYWxWYXIsIC5yQ2xvc3VyZVZhcgotICAgIHJldHVy
bkNvbnN0YW50U2NvcGUoKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2hDb25zdGFudFNj
b3BlKCkKIAogLnJDbG9zdXJlVmFyOgogICAgIGJpbmVxIHQwLCBDbG9zdXJlVmFyLCAuck1vZHVs
ZVZhcgpAQCAtMjgzOSwyNCArMjgzOSwyNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3Jlc29s
dmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAogCiAu
ck1vZHVsZVZhcjoKICAgICBiaW5lcSB0MCwgTW9kdWxlVmFyLCAuckdsb2JhbFByb3BlcnR5V2l0
aFZhckluamVjdGlvbkNoZWNrcwotICAgIHJldHVybkNvbnN0YW50U2NvcGUoKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2hDb25zdGFudFNjb3BlKCkKIAogLnJHbG9iYWxQcm9wZXJ0eVdp
dGhWYXJJbmplY3Rpb25DaGVja3M6CiAgICAgYmluZXEgdDAsIEdsb2JhbFByb3BlcnR5V2l0aFZh
ckluamVjdGlvbkNoZWNrcywgLnJHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzCiAgICAg
dmFySW5qZWN0aW9uQ2hlY2soLnJEeW5hbWljLCB0MikKICAgICBnZXRDb25zdGFudFNjb3BlKHQw
KQogICAgIGdsb2JhbExleGljYWxCaW5kaW5nRXBvY2hDaGVjayguckR5bmFtaWMsIHQwLCB0MikK
LSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogLnJH
bG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgogICAgIGJpbmVxIHQwLCBHbG9iYWxWYXJX
aXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAuckdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzCiAgICAgdmFySW5qZWN0aW9uQ2hlY2soLnJEeW5hbWljLCB0MikKLSAgICByZXR1cm5D
b25zdGFudFNjb3BlKCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoQ29uc3RhbnRTY29w
ZSgpCiAKIC5yR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3M6CiAgICAgYmlu
ZXEgdDAsIEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAuckNsb3N1cmVW
YXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzCiAgICAgdmFySW5qZWN0aW9uQ2hlY2soLnJEeW5hbWlj
LCB0MikKLSAgICByZXR1cm5Db25zdGFudFNjb3BlKCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoQ29uc3RhbnRTY29wZSgpCiAKIC5yQ2xvc3VyZVZhcldpdGhWYXJJbmplY3Rpb25DaGVj
a3M6CiAgICAgYmluZXEgdDAsIENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAuckR5
bmFtaWMKQEAgLTI4NzcsMTQgKzI4NzcsMTQgQEAgbWFjcm8gbG9hZFdpdGhTdHJ1Y3R1cmVDaGVj
ayhvcGNvZGVTdHJ1Y3QsIGdldCwgc2xvd1BhdGgpCiAgICAgYnBuZXEgdDIsIHQxLCBzbG93UGF0
aAogZW5kCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9wR2V0RnJv
bVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xs
aW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9wR2V0RnJvbVNjb3BlLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgbWFjcm8gZ2V0UHJvcGVydHkoKQogICAg
ICAgICBsb2FkcCBPcEdldEZyb21TY29wZTo6TWV0YWRhdGE6Om1fb3BlcmFuZFt0NV0sIHQxCiAg
ICAgICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDEsIHQwLCB0MikKICAgICAgICAg
dmFsdWVQcm9maWxlKE9wR2V0RnJvbVNjb3BlLCBtX3Byb2ZpbGUsIHQ1LCB0MikKLSAgICAgICAg
cmV0dXJuKHQyKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogICAgIGVu
ZAogCiAgICAgbWFjcm8gZ2V0R2xvYmFsVmFyKHRkekNoZWNrSWZOZWNlc3NhcnkpCkBAIC0yODky
LDE0ICsyODkyLDE0IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9w
R2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgICAgIGxvYWRxIFt0
MF0sIHQwCiAgICAgICAgIHRkekNoZWNrSWZOZWNlc3NhcnkodDApCiAgICAgICAgIHZhbHVlUHJv
ZmlsZShPcEdldEZyb21TY29wZSwgbV9wcm9maWxlLCB0NSwgdDApCi0gICAgICAgIHJldHVybih0
MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKICAgICBlbmQKIAogICAg
IG1hY3JvIGdldENsb3N1cmVWYXIoKQogICAgICAgICBsb2FkcCBPcEdldEZyb21TY29wZTo6TWV0
YWRhdGE6Om1fb3BlcmFuZFt0NV0sIHQxCiAgICAgICAgIGxvYWRxIEpTTGV4aWNhbEVudmlyb25t
ZW50X3ZhcmlhYmxlc1t0MCwgdDEsIDhdLCB0MAogICAgICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRG
cm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQwKQotICAgICAgICByZXR1cm4odDApCisgICAgICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAgICAgZW5kCiAKICAgICBsb2FkaSBPcEdl
dEZyb21TY29wZTo6TWV0YWRhdGE6Om1fZ2V0UHV0SW5mbyArIEdldFB1dEluZm86Om1fb3BlcmFu
ZFt0NV0sIHQwCkBAIC0yOTU2LDcgKzI5NTYsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dl
dF9mcm9tX3Njb3BlLCBPcEdldEZyb21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Ywog
ZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3RvX3Njb3BlLCBPcFB1dFRvU2Nv
cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29wZSwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IG1hY3JvIHB1dFByb3BlcnR5KCkKICAgICAgICAgZ2V0KG1fdmFsdWUsIHQxKQogICAgICAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MikKQEAgLTMwODcsMTEgKzMwODcsMTEg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29wZSwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG0KIGVuZCkKIAogCi1sbGludE9wV2l0aFByb2ZpbGUo
b3BfZ2V0X2Zyb21fYXJndW1lbnRzLCBPcEdldEZyb21Bcmd1bWVudHMsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2Zyb21fYXJn
dW1lbnRzLCBPcEdldEZyb21Bcmd1bWVudHMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fYXJndW1l
bnRzLCB0MCkKICAgICBnZXR1KHNpemUsIE9wR2V0RnJvbUFyZ3VtZW50cywgbV9pbmRleCwgdDEp
CiAgICAgbG9hZHEgRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2VbdDAsIHQxLCA4XSwgdDAKLSAgICBy
ZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIGVuZCkKIAogCkBA
IC0zMTA2LDE0ICszMTA2LDE0IEBAIGxsaW50T3Aob3BfcHV0X3RvX2FyZ3VtZW50cywgT3BQdXRU
b0FyZ3VtZW50cywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCiBlbmQpCiAKIAotbGxpbnRP
cFdpdGhSZXR1cm4ob3BfZ2V0X3BhcmVudF9zY29wZSwgT3BHZXRQYXJlbnRTY29wZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bf
Z2V0X3BhcmVudF9zY29wZSwgT3BHZXRQYXJlbnRTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZFZhcmlhYmxlKGdldCwg
bV9zY29wZSwgdDApCiAgICAgbG9hZHAgSlNTY29wZTo6bV9uZXh0W3QwXSwgdDAKLSAgICByZXR1
cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIGVuZCkKIAogCi1sbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX3Byb2ZpbGVfdHlwZSwgT3BQcm9maWxlVHlwZSwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRh
KG9wX3Byb2ZpbGVfdHlwZSwgT3BQcm9maWxlVHlwZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGxvYWRwIENvZGVC
bG9ja1tjZnJdLCB0MQogICAgIGxvYWRwIENvZGVCbG9jazo6bV92bVt0MV0sIHQxCiAgICAgIyB0
MSBpcyBob2xkaW5nIHRoZSBwb2ludGVyIHRvIHRoZSB0eXBlUHJvZmlsZXJMb2cuCkBAIC0zMTU1
LDE0ICszMTU1LDE0IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFBy
b2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwKIGVuZCkKIAogCi1sbGludE9w
V2l0aE1ldGFkYXRhKG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVDb250cm9sRmxv
dywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9w
V2l0aE1ldGFkYXRhKG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVDb250cm9sRmxv
dywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQ1LCB0MCkKICAgICBsb2FkcCBPcFByb2ZpbGVDb250
cm9sRmxvdzo6TWV0YWRhdGE6Om1fYmFzaWNCbG9ja0xvY2F0aW9uW3Q1XSwgdDAKICAgICBhZGRx
IDEsIEJhc2ljQmxvY2tMb2NhdGlvbjo6bV9leGVjdXRpb25Db3VudFt0MF0KICAgICBkaXNwYXRj
aCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2dldF9yZXN0X2xlbmd0aCwgT3BHZXRS
ZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdp
dGhEZXN0aW5hdGlvbihvcF9nZXRfcmVzdF9sZW5ndGgsIE9wR2V0UmVzdExlbmd0aCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9h
ZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzW2Nmcl0sIHQwCiAg
ICAgc3ViaSAxLCB0MAogICAgIGdldHUoc2l6ZSwgT3BHZXRSZXN0TGVuZ3RoLCBtX251bVBhcmFt
ZXRlcnNUb1NraXAsIHQxKQpAQCAtMzE3MywxMSArMzE3MywxMSBAQCBsbGludE9wV2l0aFJldHVy
bihvcF9nZXRfcmVzdF9sZW5ndGgsIE9wR2V0UmVzdExlbmd0aCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0YwogICAgIG1vdmUgMCwgdDAKIC5ib3hVcDoKICAgICBvcnEgbnVtYmVyVGFnLCB0MAot
ICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQog
CiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3Jfb3BlbiwgT3BJdGVyYXRvck9wZW4s
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdp
dGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVuLCBPcEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IG1hY3JvIGZhc3ROYXJyb3coKQogICAgICAgICBjYWxsU2xvd1BhdGgoX2l0ZXJhdG9yX29wZW5f
dHJ5X2Zhc3RfbmFycm93KQogICAgIGVuZApAQCAtMzIzMSw3ICszMjMxLDcgQEAgbGxpbnRPcFdp
dGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVuLCBPcEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gKIAogZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9y
X25leHQsIE9wSXRlcmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4dCwgT3BJdGVy
YXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKIAogICAgIGxvYWRWYXJpYWJsZShnZXQsIG1fbmV4dCwgdDApCiAg
ICAgYnRxbnogdDAsIHQwLCAuaXRlcmF0b3JOZXh0R2VuZXJpYwpAQCAtMzMxNSw3ICszMzE1LDcg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50
T3BXaXRoUmV0dXJuKG9wX2dldF9wcm9wZXJ0eV9lbnVtZXJhdG9yLCBPcEdldFByb3BlcnR5RW51
bWVyYXRvciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRo
RGVzdGluYXRpb24ob3BfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0UHJvcGVydHlFbnVt
ZXJhdG9yLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBnZXQobV9iYXNlLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2Vs
bChzaXplLCB0MSwgdDAsIC5zbG93UGF0aCkKIApAQCAtMzMzMiw3ICszMzMyLDcgQEAgbGxpbnRP
cFdpdGhSZXR1cm4ob3BfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0UHJvcGVydHlFbnVt
ZXJhdG9yLCBtYWNybyAoc2kKICAgICBidHB6IHQxLCAuc2xvd1BhdGgKICAgICBidHBueiB0MSwg
KGNvbnN0ZXhwciBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVkUHJvcGVydHlOYW1lRW51bWVyYXRv
cklzVmFsaWRhdGVkVmlhVHJhdmVyc2luZ0ZsYWcpLCAuc2xvd1BhdGgKIAotICAgIHJldHVybih0
MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogCiAuc2xvd1BhdGg6CiAgICAg
Y2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IpCkBAIC0zMzcw
LDcgKzMzNzAsNyBAQCBsbGludE9wKG9wX2VudW1lcmF0b3JfbmV4dCwgT3BFbnVtZXJhdG9yTmV4
dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCiAgICAgZGlzcGF0Y2goKQogZW5kKQogCi1s
bGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCwgT3BFbnVtZXJhdG9y
R2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQor
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2dldF9ieV92YWwsIE9wRW51bWVyYXRv
ckdldEJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgbG9hZFZhcmlh
YmxlKGdldCwgbV9tb2RlLCB0MCkKQEAgLTM0MDYsMTQgKzM0MDYsMTQgQEAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9lbnVtZXJhdG9yX2dldF9ieV92YWwsIE9wRW51bWVyYXRvckdldEJ5VmFsLCBt
YWNybyAoc2l6ZSwKIAogLmRvbmU6CiAgICAgdmFsdWVQcm9maWxlKE9wRW51bWVyYXRvckdldEJ5
VmFsLCBtX3Byb2ZpbGUsIHQ1LCB0MikKLSAgICByZXR1cm4odDIpCisgICAgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCh0MikKIAogLmdldFNsb3dQYXRoOgogICAgIGNhbGxTbG93UGF0aChfc2xv
d19wYXRoX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLW1h
Y3JvIGhhc1Byb3BlcnR5SW1wbChvcGNvZGVTdHJ1Y3QsIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCByZXR1cm4sIHNsb3dQYXRoKQorbWFjcm8gaGFzUHJvcGVydHlJbXBsKG9wY29kZVN0
cnVjdCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gsIHNsb3dQYXRoKQogICAgIG1ldGFkYXRhKHQ1LCB0MCkKIAogICAgIGxvYWRWYXJpYWJs
ZShnZXQsIG1fbW9kZSwgdDApCkBAIC0zNDMyLDI2ICszNDMyLDI2IEBAIG1hY3JvIGhhc1Byb3Bl
cnR5SW1wbChvcGNvZGVTdHJ1Y3QsIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4sIHNsb3dQCiAgICAgYmluZXEgdDIsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0MF0sIC5jYWxs
U2xvd1BhdGgKIAogICAgIG1vdmUgVmFsdWVUcnVlLCB0MgotICAgIHJldHVybih0MikKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAuY2FsbFNsb3dQYXRoOgogICAgIGNhbGxT
bG93UGF0aChzbG93UGF0aCkKICAgICBkaXNwYXRjaCgpCiBlbmQKIAotbGxpbnRPcFdpdGhNZXRh
ZGF0YShvcF9lbnVtZXJhdG9yX2luX2J5X3ZhbCwgT3BFbnVtZXJhdG9ySW5CeVZhbCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCi0gICAgaGFzUHJvcGVydHlJ
bXBsKE9wRW51bWVyYXRvckluQnlWYWwsIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBy
ZXR1cm4sIF9zbG93X3BhdGhfZW51bWVyYXRvcl9pbl9ieV92YWwpCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX2VudW1lcmF0b3JfaW5fYnlfdmFsLCBPcEVudW1lcmF0b3JJbkJ5VmFsLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gp
CisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckluQnlWYWwsIHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoLCBfc2xvd19wYXRoX2Vu
dW1lcmF0b3JfaW5fYnlfdmFsKQogZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1l
cmF0b3JfaGFzX293bl9wcm9wZXJ0eSwgT3BFbnVtZXJhdG9ySGFzT3duUHJvcGVydHksIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQotICAgIGhhc1Byb3BlcnR5
SW1wbChPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdGEsIHJldHVybiwgX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX2hhc19vd25fcHJvcGVydHkpCits
bGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSwgT3BFbnVt
ZXJhdG9ySGFzT3duUHJvcGVydHksIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKKyAgICBoYXNQcm9wZXJ0eUltcGwoT3BFbnVt
ZXJhdG9ySGFzT3duUHJvcGVydHksIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoLCBfc2xvd19wYXRoX2VudW1lcmF0b3JfaGFzX293bl9wcm9w
ZXJ0eSkKIGVuZCkKIAotbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9pbnRlcm5hbF9maWVsZCwg
T3BHZXRJbnRlcm5hbEZpZWxkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9pbnRlcm5hbF9maWVsZCwgT3BHZXRJbnRlcm5hbEZp
ZWxkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCkKICAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2Jhc2UsIHQxKQogICAgIGdldHUoc2l6ZSwgT3BH
ZXRJbnRlcm5hbEZpZWxkLCBtX2luZGV4LCB0MikKICAgICBsb2FkcSBKU0ludGVybmFsRmllbGRP
YmplY3RJbXBsX2ludGVybmFsRmllbGRzW3QxLCB0MiwgU2xvdFNpemVdLCB0MAotICAgIHJldHVy
bih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiBsbGludE9w
KG9wX3B1dF9pbnRlcm5hbF9maWVsZCwgT3BQdXRJbnRlcm5hbEZpZWxkLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCkK
</data>
<flag name="commit-queue"
          id="481757"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454164</attachid>
            <date>2022-03-08 15:47:35 -0800</date>
            <delta_ts>2022-03-08 16:01:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237624-20220308184734.patch</filename>
            <type>text/plain</type>
            <size>86325</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NTVjOGY5NWIwZWM2MmJjYTExYTE2NmEyYWJkNWVmYTM2N2QxOGI1Li4wYWQ4YmU5MGEwMWI5YTFi
M2IwODQ3NjgzNzQxYzc0YThlNTM1ODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW5hbWUgTExJbnQgbWFjcm9zIHVzaW5nIHJldHVybiB0byBkZXN0
aW5hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3NjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpcyBqdXN0IGEgcmVmYWN0b3IvcmVuYW1lIHBhdGNoLCBubyBiZWhhdmlvcmFs
CisgICAgICAgIGNoYW5nZS4gSSBmaW5kIGl0IGNvbmZ1c2luZyB0aGF0IHRoZSBMTEludCBoYXMg
bWFjcm8gcGFyYW1ldGVycworICAgICAgICBuYW1lZCBgcmV0dXJuYCBidXQgY2xlYXJseSBzaG91
bGRuJ3QgZG8gYSBmdW5jdGlvbiByZXR1cm4KKyAgICAgICAgKGUuZy4gZ2V0X2J5X2lkKS4gIFRo
aXMgcGF0Y2ggcmVuYW1lcyB0aG9zZSBwYXJlbWV0ZXJzIHRvCisgICAgICAgICJzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoIiB0byBiZXR0ZXIgZGVzY3JpYmUgd2hhdCdzIGdvaW5nCisgICAgICAg
IG9uLiBBZGRpdGlvbmFsbHksIHRoZSBgbGxpbnRPcFdpdGhSZXR1cm5gIGhhcyBiZWVuIHJlbmFt
ZWQgdG8KKyAgICAgICAgYGxsaW50T3BXaXRoRGVzdGluYXRpb25gIGZvciBmdXJ0aGVyIGNsYXJp
dHkuCisKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisKIDIwMjItMDMtMDggIFNhYW0gQmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRW5hYmxlIFRoaW5MVE8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRl
eCBhOGU3YzczOTlkNTgxYTU5NjBkMGFhN2FhNzI0MzM1ZGIwMzU0Yzc1Li4wMmJiNjhmYjY3Njcx
ZjA4ZWUwNGVmODJlY2UyODBhOGU2YmMyY2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC00OTcsMjUgKzQ5NywyNSBA
QCBtYWNybyBsbGludE9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgZW5kKQog
ZW5kCiAKLW1hY3JvIGxsaW50T3BXaXRoUmV0dXJuKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwg
Zm4pCittYWNybyBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wY29kZU5hbWUsIG9wY29kZVN0cnVj
dCwgZm4pCiAgICAgbGxpbnRPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvKHNpemUs
IGdldCwgZGlzcGF0Y2gpCi0gICAgICAgIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgbWFjcm8g
KHJldHVybikKLSAgICAgICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAg
ICAgICAgbWFrZURlc3RpbmF0aW9uKGdldCwgZGlzcGF0Y2gsIG1hY3JvIChzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQorICAgICAgICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZW5kKQogICAgIGVuZCkKIGVuZAogCiBtYWNy
byBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCi0gICAg
bGxpbnRPcFdpdGhSZXR1cm4ob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWFjcm8gbWV0YShkc3QsIHNjcmF0Y2gpCiAgICAg
ICAgICAgICBtZXRhZGF0YShzaXplLCBvcGNvZGVTdHJ1Y3QsIGRzdCwgc2NyYXRjaCkKICAgICAg
ICAgZW5kCi0gICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGEsIHJldHVybikKKyAg
ICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBlbmQpCiBlbmQKIAogbWFjcm8gbGxpbnRPcFdpdGhKdW1wKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgaW1wbCkKLSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgbWFjcm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVy
bikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFj
cm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgICAgIG1hY3JvIGp1bXAoZmllbGROYW1lKQogICAgICAgICAgICAgZ2V0KGZpZWxk
TmFtZSwgdDApCiAgICAgICAgICAgICBqdW1wSW1wbChkaXNwYXRjaEluZGlyZWN0LCB0MCkKQEAg
LTUyNyw3ICs1MjcsNyBAQCBlbmQKIAogbWFjcm8gbGxpbnRPcFdpdGhQcm9maWxlKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCi0gICAgICAgIG1ha2VSZXR1cm5Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwgbWV0YWRh
dGEsIGRpc3BhdGNoLCBtYWNybyAocmV0dXJuUHJvZmlsZWQpCisgICAgICAgIG1ha2VEZXN0aW5h
dGlvblByb2ZpbGVkKG9wY29kZVN0cnVjdCwgZ2V0LCBtZXRhZGF0YSwgZGlzcGF0Y2gsIG1hY3Jv
IChyZXR1cm5Qcm9maWxlZCkKICAgICAgICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJl
dHVyblByb2ZpbGVkKQogICAgICAgICBlbmQpCiAgICAgZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRl
eCBhY2U4NzExNjcyZTcwMjE2ZDM5YTQ4ZGYxNWZkNjZkNmI1N2M0MTFlLi5lMGZiMmNhYzBmMmEy
YzQ0N2E2YTNkZDIwZDgzNDY1ZGNiYjBiMzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtNTAsNyAr
NTAsNyBAQCBtYWNybyBnZXRPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUs
IGRzdCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2lu
ZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKLW1h
Y3JvIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb24o
Z2V0LCBkaXNwYXRjaCwgZm4pCiAgICAgZm4obWFjcm8odGFnLCBwYXlsb2FkKQogICAgICAgICBt
b3ZlIHRhZywgdDUKICAgICAgICAgbW92ZSBwYXlsb2FkLCB0MwpAQCAtNjEsNyArNjEsNyBAQCBt
YWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gsIGZuKQogICAgIGVuZCkKIGVuZAogCi1tYWNy
byBtYWtlUmV0dXJuUHJvZmlsZWQob3Bjb2RlU3RydWN0LCBnZXQsIG1ldGFkYXRhLCBkaXNwYXRj
aCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb25Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwg
bWV0YWRhdGEsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyAodGFnLCBwYXlsb2FkKQogICAg
ICAgICBtb3ZlIHRhZywgdDEKICAgICAgICAgbW92ZSBwYXlsb2FkLCB0MApAQCAtODE2LDM0ICs4
MTYsMzQgQEAgX2xsaW50X29wX2VudGVyOgogICAgIGRpc3BhdGNoT3AobmFycm93LCBvcF9lbnRl
cikKIAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2FyZ3VtZW50LCBPcEdldEFyZ3VtZW50
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxl
KG9wX2dldF9hcmd1bWVudCwgT3BHZXRBcmd1bWVudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1faW5kZXgsIHQyKQogICAg
IGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1tjZnJdLCB0
MAogICAgIGJpbHRlcSB0MCwgdDIsIC5vcEdldEFyZ3VtZW50T3V0T2ZCb3VuZHMKICAgICBsb2Fk
aSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCiAgICAgbG9h
ZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XSwgdDMKLSAg
ICByZXR1cm4gKHQwLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwLCB0MykK
IAogLm9wR2V0QXJndW1lbnRPdXRPZkJvdW5kczoKLSAgICByZXR1cm4gKFVuZGVmaW5lZFRhZywg
MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKFVuZGVmaW5lZFRhZywgMCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5h
dGlvbihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkaSBQYXlsb2Fk
T2Zmc2V0ICsgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwgdDAKICAgICBzdWJpIDEs
IHQwCi0gICAgcmV0dXJuKEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKEludDMyVGFnLCB0MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9nZXRfc2Nv
cGUsIE9wR2V0U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGlu
dE9wV2l0aERlc3RpbmF0aW9uKG9wX2dldF9zY29wZSwgT3BHZXRTY29wZSwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZGkgQ2Fs
bGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MAogICAgIGxvYWRwIEpTQ2FsbGVlOjptX3Njb3Bl
W3QwXSwgdDAKLSAgICByZXR1cm4gKENlbGxUYWcsIHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2goQ2VsbFRhZywgdDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90
b190aGlzLCBPcFRvVGhpcywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBy
ZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RvX3RoaXMsIE9wVG9UaGlzLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gp
CiAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICBiaW5lcSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0s
IENlbGxUYWcsIC5vcFRvVGhpc1Nsb3cKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAs
IDhdLCB0MApAQCAtODcwLDE5ICs4NzAsMTkgQEAgbGxpbnRPcChvcF9jaGVja190ZHosIE9wQ2hl
Y2tUZHosIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQogZW5kKQogCiAKLWxsaW50T3BXaXRo
UmV0dXJuKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDEp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDIsIHQzKQotICAgIHJldHVy
bih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MiwgdDMpCiBlbmQpCiAK
IAotbGxpbnRPcFdpdGhSZXR1cm4ob3Bfbm90LCBPcE5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bfbm90LCBPcE5vdCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
Z2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwg
dDIsIHQzKQogICAgIGJpbmVxIHQyLCBCb29sZWFuVGFnLCAub3BOb3RTbG93CiAgICAgeG9yaSAx
LCB0MwotICAgIHJldHVybih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MiwgdDMpCiAKIC5vcE5vdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfbm90KQpA
QCAtODkxLDcgKzg5MSw3IEBAIGVuZCkKIAogCiBtYWNybyBlcXVhbGl0eUNvbXBhcmlzb25PcChv
cGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJpc29uKQotICAgIGxsaW50T3BX
aXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29k
ZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQyKQogICAgICAgICBnZXQo
bV9saHMsIHQwKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0Mywg
dDEpCkBAIC05MDAsNyArOTAwLDcgQEAgbWFjcm8gZXF1YWxpdHlDb21wYXJpc29uT3Aob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyaXNvbikKICAgICAgICAgYmllcSB0Miwg
Q2VsbFRhZywgLm9wRXFTbG93CiAgICAgICAgIGJpYiB0MiwgTG93ZXN0VGFnLCAub3BFcVNsb3cK
ICAgICAgICAgaW50ZWdlckNvbXBhcmlzb24odDAsIHQxLCB0MCkKLSAgICAgICAgcmV0dXJuKEJv
b2xlYW5UYWcsIHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5U
YWcsIHQwKQogCiAgICAgLm9wRXFTbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0
aF8lb3Bjb2RlTmFtZSUpCkBAIC05MzIsNyArOTMyLDcgQEAgZW5kCiAKIAogbWFjcm8gZXF1YWxO
dWxsQ29tcGFyaXNvbk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCi0gICAgbGxpbnRP
cFdpdGhSZXR1cm4ob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgICAgIGFzc2VydE5v
dENvbnN0YW50KHNpemUsIHQwKQogICAgICAgICBsb2FkaSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0s
IHQxCkBAIC05NTMsNyArOTUzLDcgQEAgbWFjcm8gZXF1YWxOdWxsQ29tcGFyaXNvbk9wKG9wY29k
ZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgICAgIG9yaSB0MiwgdDEKICAgICAub3BFcU51
bGxOb3RJbW1lZGlhdGU6CiAgICAgICAgIGZuKHQxKQotICAgICAgICByZXR1cm4oQm9vbGVhblRh
ZywgdDEpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDEp
CiAgICAgZW5kKQogZW5kCiAKQEAgLTk2MywxNyArOTYzLDE3IEBAIGVxdWFsTnVsbENvbXBhcmlz
b25PcChvcF9uZXFfbnVsbCwgT3BOZXFOdWxsLAogICAgIG1hY3JvICh2YWx1ZSkgeG9yaSAxLCB2
YWx1ZSBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfdW5kZWZpbmVkX29yX251bGws
IE9wSXNVbmRlZmluZWRPck51bGwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX3VuZGVmaW5lZF9vcl9udWxsLCBPcElzVW5k
ZWZpbmVkT3JOdWxsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlVGFnKHNpemUsIHQwLCB0MSkKICAgICBvcmkgMSwgdDEKICAgICBjaWVxIHQxLCBOdWxs
VGFnLCB0MQotICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogZW5kKQogCiAKIG1hY3JvIHN0cmljdEVxT3Aob3Bj
b2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBlcXVhbGl0eU9wZXJhdGlvbikKLSAgICBsbGludE9wV2l0
aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wXyVvcGNvZGVO
YW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1f
bGhzLCB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQx
KQpAQCAtOTg1LDcgKzk4NSw3IEBAIG1hY3JvIHN0cmljdEVxT3Aob3Bjb2RlTmFtZSwgb3Bjb2Rl
U3RydWN0LCBlcXVhbGl0eU9wZXJhdGlvbikKICAgICAgICAgYmJiIEpTQ2VsbDo6bV90eXBlW3Qx
XSwgT2JqZWN0VHlwZSwgLnNsb3cKICAgICAubm90U3RyaW5nT3JTeW1ib2w6CiAgICAgICAgIGVx
dWFsaXR5T3BlcmF0aW9uKHQwLCB0MSwgdDApCi0gICAgICAgIHJldHVybihCb29sZWFuVGFnLCB0
MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MCkKIAog
ICAgIC5zbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUp
CkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBzdHJpY3RFcXVhbGl0eUp1bXBPcChqbnN0cmljdGVxLCBP
cEpuc3RyaWN0ZXEsCiAKIAogbWFjcm8gcHJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBp
bnRlZ2VyT3BlcmF0aW9uKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUl
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0
dXJuKQorICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgYmluZXEgVGFn
T2Zmc2V0W2NmciwgdDAsIDhdLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldFtjZnIsIHQwLCA4XSwgdDIKQEAgLTEwNTMsMjYgKzEwNTMsMjYgQEAgbWFjcm8gcHJl
T3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyT3BlcmF0aW9uKQogZW5kCiAKIAot
bGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWJlciwgT3BUb051bWJlciwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF90b19udW1iZXIs
IE9wVG9OdW1iZXIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoc2l6ZSwgdDAsIHQyLCB0MykKICAgICBiaWVxIHQyLCBJbnQzMlRhZywgLm9wVG9OdW1i
ZXJJc0ludAogICAgIGJpYWVxIHQyLCBMb3dlc3RUYWcsIC5vcFRvTnVtYmVyU2xvdwogLm9wVG9O
dW1iZXJJc0ludDoKLSAgICByZXR1cm4odDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2godDIsIHQzKQogCiAub3BUb051bWJlclNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93
X3BhdGhfdG9fbnVtYmVyKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhQcm9m
aWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmlj
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUs
IHQwLCB0MiwgdDMpCiAgICAgYmllcSB0MiwgSW50MzJUYWcsIC5vcFRvTnVtZXJpY0lzSW50CiAg
ICAgYmlhZXEgdDIsIExvd2VzdFRhZywgLm9wVG9OdW1lcmljU2xvdwogLm9wVG9OdW1lcmljSXNJ
bnQ6Ci0gICAgcmV0dXJuKHQyLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQy
LCB0MykKIAogLm9wVG9OdW1lcmljU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90
b19udW1lcmljKQpAQCAtMTA4MCwxMyArMTA4MCwxMyBAQCBsbGludE9wV2l0aFByb2ZpbGUob3Bf
dG9fbnVtZXJpYywgT3BUb051bWVyaWMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1
cgogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0cmluZywgT3BUb1N0cmluZywg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRp
b24ob3BfdG9fc3RyaW5nLCBPcFRvU3RyaW5nLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MiwgdDMpCiAgICAgYmluZXEgdDIsIENl
bGxUYWcsIC5vcFRvU3RyaW5nU2xvdwogICAgIGJibmVxIEpTQ2VsbDo6bV90eXBlW3QzXSwgU3Ry
aW5nVHlwZSwgLm9wVG9TdHJpbmdTbG93CiAub3BUb1N0cmluZ0lzU3RyaW5nOgotICAgIHJldHVy
bih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MiwgdDMpCiAKIC5vcFRv
U3RyaW5nU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19zdHJpbmcpCkBAIC0x
MDk0LDEyICsxMDk0LDEyIEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0cmluZywgT3BUb1N0
cmluZywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKIGVuZCkKIAogCi1sbGlu
dE9wV2l0aFByb2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX29iamVjdCwgT3BU
b09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MCwgdDIsIHQzKQogICAgIGJpbmVxIHQyLCBDZWxsVGFnLCAub3BUb09iamVjdFNs
b3cKICAgICBiYmIgSlNDZWxsOjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCAub3BUb09iamVjdFNs
b3cKLSAgICByZXR1cm4odDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIs
IHQzKQogCiAub3BUb09iamVjdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9f
b2JqZWN0KQpAQCAtMTEwNywxOSArMTEwNywxOSBAQCBsbGludE9wV2l0aFByb2ZpbGUob3BfdG9f
b2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQog
ZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfbmVnYXRlLCBPcE5lZ2F0ZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkK
ICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSwgdDIpCiAgICAgYmluZXEg
dDEsIEludDMyVGFnLCAub3BOZWdhdGVTcmNOb3RJbnQKICAgICBidGl6IHQyLCAweDdmZmZmZmZm
LCAub3BOZWdhdGVTbG93CiAgICAgbmVnaSB0MgogICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxl
KHNpemUsIE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQwLCB0MykKLSAgICByZXR1cm4gKElu
dDMyVGFnLCB0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEludDMyVGFnLCB0MikK
IC5vcE5lZ2F0ZVNyY05vdEludDoKICAgICBiaWEgdDEsIExvd2VzdFRhZywgLm9wTmVnYXRlU2xv
dwogICAgIHhvcmkgMHg4MDAwMDAwMCwgdDEKICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShz
aXplLCBPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0MCwgdDMpCi0gICAgcmV0dXJuKHQx
LCB0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MikKIAogLm9wTmVnYXRl
U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9uZWdhdGUpCkBAIC0xMTI4LDcgKzEx
MjgsNyBAQCBlbmQpCiAKIAogbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uKQot
ICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIGxsaW50T3BX
aXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAg
ICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1fbGhzLCB0MCkKICAgICAgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQxKQpAQCAtMTIyNSw3ICsxMjI1LDcgQEAg
YmluYXJ5T3BDdXN0b21TdG9yZShkaXYsIE9wRGl2LAogICAgIGVuZCwKICAgICBtYWNybyAobGhz
LCByaHMpIGRpdmQgcmhzLCBsaHMgZW5kKQogCi1sbGludE9wV2l0aFJldHVybihvcF9wb3csIE9w
UG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF9wb3csIE9wUG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9yaHMsIHQyKQogICAgIGdldChtX2xocywg
dDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQxKQpAQCAtMTI2
MiwxMSArMTI2MiwxMSBAQCBsbGludE9wV2l0aFJldHVybihvcF9wb3csIE9wUG93LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxp
bnRPcFdpdGhSZXR1cm4ob3BfdW5zaWduZWQsIE9wVW5zaWduZWQsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3Vuc2lnbmVkLCBP
cFVuc2lnbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlUGF5bG9hZChzaXplLCB0MSwgSW50MzJUYWcsIHQyLCAub3BVbnNpZ25lZFNsb3cpCiAgICAg
YmlsdCB0MiwgMCwgLm9wVW5zaWduZWRTbG93Ci0gICAgcmV0dXJuIChJbnQzMlRhZywgdDIpCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChJbnQzMlRhZywgdDIpCiAub3BVbnNpZ25lZFNs
b3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdW5zaWduZWQpCiAgICAgZGlzcGF0Y2go
KQpAQCAtMTI3NCw3ICsxMjc0LDcgQEAgZW5kKQogCiAKIG1hY3JvIGNvbW1vbkJpdE9wKG9wS2lu
ZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCi0gICAgb3BLaW5kKG9wXyVv
cGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0
dXJuKQorICAgIG9wS2luZChvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdl
dChtX3JocywgdDIpCiAgICAgICAgIGdldChtX2xocywgdDApCiAgICAgICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQzLCB0MSkKQEAgLTEyODIsNyArMTI4Miw3IEBAIG1hY3Jv
IGNvbW1vbkJpdE9wKG9wS2luZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24p
CiAgICAgICAgIGJpbmVxIHQzLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgYmluZXEgdDIsIElu
dDMyVGFnLCAuc2xvdwogICAgICAgICBvcGVyYXRpb24odDAsIHQxKQotICAgICAgICByZXR1cm4g
KHQzLCB0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MywgdDApCiAKICAg
ICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpA
QCAtMTI5MSw3ICsxMjkxLDcgQEAgbWFjcm8gY29tbW9uQml0T3Aob3BLaW5kLCBvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKIGVuZAogCiBtYWNybyBiaXRPcChvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKLSAgICBjb21tb25CaXRPcChsbGludE9wV2l0aFJl
dHVybiwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCisgICAgY29tbW9uQml0
T3AobGxpbnRPcFdpdGhEZXN0aW5hdGlvbiwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVy
YXRpb24pCiBlbmQKIAogbWFjcm8gYml0T3BQcm9maWxlZChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1
Y3QsIG9wZXJhdGlvbikKQEAgLTEzMTksMTIgKzEzMTksMTIgQEAgYml0T3BQcm9maWxlZChiaXRh
bmQsIE9wQml0YW5kLAogYml0T3BQcm9maWxlZChiaXRvciwgT3BCaXRvciwKICAgICBtYWNybyAo
bGhzLCByaHMpIG9yaSByaHMsIGxocyBlbmQpCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9iaXRu
b3QsIE9wQml0bm90LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRP
cFdpdGhQcm9maWxlKG9wX2JpdG5vdCwgT3BCaXRub3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQwKQog
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQyLCB0MykKICAgICBiaW5lcSB0
MiwgSW50MzJUYWcsIC5vcEJpdE5vdFNsb3cKICAgICBub3RpIHQzCi0gICAgcmV0dXJuIChJbnQz
MlRhZywgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChJbnQzMlRhZywgdDMpCiAK
ICAub3BCaXROb3RTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2JpdG5vdCkKQEAg
LTEzNjEsNDYgKzEzNjEsNDYgQEAgbGxpbnRPcChvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlLCBP
cE92ZXJyaWRlc0hhc0luc3RhbmNlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKIGVuZCkKIAogCi1s
bGludE9wV2l0aFJldHVybihvcF9pc19lbXB0eSwgT3BJc0VtcHR5LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19lbXB0eSwg
T3BJc0VtcHR5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHNpemUsIHQxLCB0MiwgdDMpCiAgICAgY2llcSB0MiwgRW1wdHlWYWx1ZVRhZywgdDMKLSAg
ICByZXR1cm4oQm9vbGVhblRhZywgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChC
b29sZWFuVGFnLCB0MykKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90eXBlb2ZfaXNf
dW5kZWZpbmVkLCBPcFR5cGVvZklzVW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90eXBlb2ZfaXNfdW5kZWZpbmVk
LCBPcFR5cGVvZklzVW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MiwgdDMpCiAgICAgYmllcSB0MiwgQ2VsbFRhZywg
Lm9wSXNVbmRlZmluZWRDZWxsCiAgICAgY2llcSB0MiwgVW5kZWZpbmVkVGFnLCB0MwotICAgIHJl
dHVybihCb29sZWFuVGFnLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xl
YW5UYWcsIHQzKQogLm9wSXNVbmRlZmluZWRDZWxsOgogICAgIGJ0Ym56IEpTQ2VsbDo6bV9mbGFn
c1t0M10sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIC5vcElzVW5kZWZpbmVkTWFzcXVlcmFkZXNB
c1VuZGVmaW5lZAotICAgIHJldHVybihCb29sZWFuVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2goQm9vbGVhblRhZywgMCkKIC5vcElzVW5kZWZpbmVkTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZDoKICAgICBsb2FkaSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MQogICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCB0MwogICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmpl
Y3RbdDNdLCB0MwogICAgIGNwZXEgU3RydWN0dXJlOjptX2dsb2JhbE9iamVjdFt0MV0sIHQzLCB0
MQotICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKEJvb2xlYW5UYWcsIHQxKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX2Jv
b2xlYW4sIE9wSXNCb29sZWFuLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19ib29sZWFuLCBPcElzQm9vbGVhbiwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0
KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVRhZyhzaXplLCB0MSwg
dDApCiAgICAgY2llcSB0MCwgQm9vbGVhblRhZywgdDAKLSAgICByZXR1cm4oQm9vbGVhblRhZywg
dDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19udW1iZXIsIE9wSXNOdW1iZXIsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lz
X251bWJlciwgT3BJc051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZVRhZyhzaXplLCB0MSwgdDApCiAgICAgYWRkaSAxLCB0MAogICAgIGNpYiB0
MCwgTG93ZXN0VGFnICsgMSwgdDEKLSAgICByZXR1cm4oQm9vbGVhblRhZywgdDEpCisgICAgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MSkKIGVuZCkKIAogCkBAIC0xNDEw
LDI2ICsxNDEwLDI2IEBAIGxsaW50T3Aob3BfaXNfYmlnX2ludCwgT3BJc0JpZ0ludCwgbWFjcm8o
dW51c2VkLCB1bnVzZWQsIHVudXNlZCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9p
c19jZWxsX3dpdGhfdHlwZSwgT3BJc0NlbGxXaXRoVHlwZSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfY2VsbF93aXRoX3R5
cGUsIE9wSXNDZWxsV2l0aFR5cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwLCB0MykKICAgICBiaW5lcSB0MCwgQ2VsbFRhZywg
Lm5vdENlbGxDYXNlCiAgICAgZ2V0dShzaXplLCBPcElzQ2VsbFdpdGhUeXBlLCBtX3R5cGUsIHQw
KQogICAgIGNiZXEgSlNDZWxsOjptX3R5cGVbdDNdLCB0MCwgdDEKLSAgICByZXR1cm4oQm9vbGVh
blRhZywgdDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MSkK
IC5ub3RDZWxsQ2FzZToKLSAgICByZXR1cm4oQm9vbGVhblRhZywgMCkKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1
cm4ob3BfaXNfb2JqZWN0LCBPcElzT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
cmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19vYmplY3QsIE9wSXNPYmplY3Qs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwg
dDEsIHQwLCB0MykKICAgICBiaW5lcSB0MCwgQ2VsbFRhZywgLm9wSXNPYmplY3ROb3RDZWxsCiAg
ICAgY2JhZXEgSlNDZWxsOjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCB0MQotICAgIHJldHVybihC
b29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcs
IHQxKQogLm9wSXNPYmplY3ROb3RDZWxsOgotICAgIHJldHVybihCb29sZWFuVGFnLCAwKQorICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgMCkKIGVuZCkKIAogCkBAIC0x
NDc0LDcgKzE0NzQsNyBAQCBlbmQKICMgY29udmVydCBvcGNvZGUgaW50byBhIGdldF9ieV9pZF9w
cm90b19sb2FkL2dldF9ieV9pZF91bnNldCwgcmVzcGVjdGl2ZWx5LCBhZnRlciBhbgogIyBleGVj
dXRpb24gY291bnRlciBoaXRzIHplcm8uCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfdHJ5X2dl
dF9ieV9pZCwgT3BUcnlHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfdHJ5X2dldF9ieV9pZCwgT3BUcnlH
ZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdldChtX2Jhc2UsIHQw
KQogICAgIGxvYWRpIE9wVHJ5R2V0QnlJZDo6TWV0YWRhdGE6Om1fc3RydWN0dXJlSURbdDVdLCB0
MQpAQCAtMTQ4MywxNCArMTQ4MywxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RyeV9nZXRf
YnlfaWQsIE9wVHJ5R2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsCiAgICAgYmlu
ZXEgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEsIC5vcFRyeUdldEJ5SWRTbG93CiAgICAg
bG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MiwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVBy
b2ZpbGUoT3BUcnlHZXRCeUlkLCBtX3Byb2ZpbGUsIHQ1LCB0MCwgdDEpCi0gICAgcmV0dXJuKHQw
LCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwLCB0MSkKIAogLm9wVHJ5R2V0
QnlJZFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdHJ5X2dldF9ieV9p
ZCkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5
X2lkX2RpcmVjdCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkX2RpcmVj
dCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdl
dChtX2Jhc2UsIHQwKQogICAgIGxvYWRpIE9wR2V0QnlJZERpcmVjdDo6TWV0YWRhdGE6Om1fc3Ry
dWN0dXJlSURbdDVdLCB0MQpAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9nZXRfYnlfaWRfZGlyZWN0LCBPcEdldEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3AKICAgICBiaW5lcSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MSwgLm9wR2V0QnlJ
ZERpcmVjdFNsb3cKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQyLCB0MywgdDAs
IHQxKQogICAgIHZhbHVlUHJvZmlsZShPcEdldEJ5SWREaXJlY3QsIG1fcHJvZmlsZSwgdDUsIHQw
LCB0MSkKLSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDAsIHQxKQogCiAub3BHZXRCeUlkRGlyZWN0U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9nZXRfYnlfaWRfZGlyZWN0KQpAQCAtMTUwOCw3ICsxNTA4LDcgQEAgZW5kKQog
CiAjIEFzc3VtcHRpb246IFRoZSBiYXNlIG9iamVjdCBpcyBpbiB0MwogIyBGSVhNRTogdGhpcyBp
cyB2ZXJ5IGNsb3NlIHRvIHRoZSA2NGJpdCB2ZXJzaW9uLiBDb25zaWRlciByZWZhY3RvcmluZy4K
LW1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFt
ZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvd0xhYmVsLCBzaXplLCBtZXRhZGF0YSwgcmV0dXJuKQor
bWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1l
LCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG93TGFiZWwsIHNpemUsIG1ldGFkYXRhLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQyLCB0MSkKICAgICBsb2FkYiAlb3Bjb2Rl
U3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5tb2RlW3QyXSwgdDEKICAgICAg
ICAgCkBAIC0xNTIwLDcgKzE1MjAsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNv
ZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAgIGxv
YWRpcyAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5kZWZhdWx0
TW9kZS5jYWNoZWRPZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZz
ZXQodDEsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQ
cm9maWxlTmFtZSwgdDIsIHQwLCB0MSkKLSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2godDAsIHQxKQogCiAub3BHZXRCeUlkUHJvdG9Mb2FkOgogICAgIGJi
bmVxIHQxLCBjb25zdGV4cHIgR2V0QnlJZE1vZGU6OlByb3RvTG9hZCwgLm9wR2V0QnlJZEFycmF5
TGVuZ3RoCkBAIC0xNTMxLDcgKzE1MzEsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihv
cGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAg
IGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRhZGF0YU5hbWUlLnByb3Rv
TG9hZE1vZGUuY2FjaGVkU2xvdFt0Ml0sIHQzCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9m
ZnNldCh0MSwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1
ZVByb2ZpbGVOYW1lLCB0MiwgdDAsIHQxKQotICAgIHJldHVybih0MCwgdDEpCisgICAgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRBcnJheUxlbmd0aDoKICAg
ICBiYm5lcSB0MSwgY29uc3RleHByIEdldEJ5SWRNb2RlOjpBcnJheUxlbmd0aCwgLm9wR2V0QnlJ
ZFVuc2V0CkBAIC0xNTQzLDE4ICsxNTQzLDE4IEBAIG1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVy
KG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvCiAg
ICAgbG9hZGkgLXNpemVvZiBJbmRleGluZ0hlYWRlciArIEluZGV4aW5nSGVhZGVyOjp1Lmxlbmd0
aHMucHVibGljTGVuZ3RoW3QwXSwgdDAKICAgICBiaWx0IHQwLCAwLCBzbG93TGFiZWwKICAgICB2
YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCB0MiwgSW50MzJUYWcs
IHQwKQotICAgIHJldHVybihJbnQzMlRhZywgdDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaChJbnQzMlRhZywgdDApCiAgICAgCiAub3BHZXRCeUlkVW5zZXQ6CiAgICAgbG9hZGkgSlND
ZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEKICAgICBsb2FkaSAlb3Bjb2RlU3RydWN0JTo6TWV0
YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS51bnNldE1vZGUuc3RydWN0dXJlSURbdDJdLCB0MAog
ICAgIGJpbmVxIHQwLCB0MSwgc2xvd0xhYmVsCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVj
dCwgdmFsdWVQcm9maWxlTmFtZSwgdDIsIFVuZGVmaW5lZFRhZywgMCkKLSAgICByZXR1cm4oVW5k
ZWZpbmVkVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goVW5kZWZpbmVkVGFn
LCAwKQogCiBlbmQKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJ
ZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9w
V2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRh
dGEodDUsIHQwKQogICAgIGxvYWRiIE9wR2V0QnlJZDo6TWV0YWRhdGE6Om1fbW9kZU1ldGFkYXRh
Lm1vZGVbdDVdLCB0MQogICAgIGdldChtX2Jhc2UsIHQwKQpAQCAtMTU2OCw3ICsxNTY4LDcgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBsb2FkcCBPcEdldEJ5SWQ6Ok1ldGFkYXRhOjpt
X21vZGVNZXRhZGF0YS5wcm90b0xvYWRNb2RlLmNhY2hlZFNsb3RbdDVdLCB0MwogICAgIGxvYWRQ
cm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQcm9maWxl
KE9wR2V0QnlJZCwgbV9wcm9maWxlLCB0NSwgdDAsIHQxKQotICAgIHJldHVybih0MCwgdDEpCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRBcnJheUxl
bmd0aDoKICAgICBiYm5lcSB0MSwgY29uc3RleHByIEdldEJ5SWRNb2RlOjpBcnJheUxlbmd0aCwg
Lm9wR2V0QnlJZFVuc2V0CkBAIC0xNTgxLDcgKzE1ODEsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRh
KG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdAogICAgIGxvYWRpIC1zaXplb2YgSW5kZXhpbmdIZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6
dS5sZW5ndGhzLnB1YmxpY0xlbmd0aFt0MF0sIHQwCiAgICAgYmlsdCB0MCwgMCwgLm9wR2V0QnlJ
ZFNsb3cKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkLCBtX3Byb2ZpbGUsIHQ1LCBJbnQzMlRh
ZywgdDApCi0gICAgcmV0dXJuKEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKEludDMyVGFnLCB0MCkKIAogLm9wR2V0QnlJZFVuc2V0OgogICAgIGJibmVxIHQxLCBj
b25zdGV4cHIgR2V0QnlJZE1vZGU6OlVuc2V0LCAub3BHZXRCeUlkRGVmYXVsdApAQCAtMTU4OSw3
ICsxNTg5LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlUGF5bG9hZChzaXplLCB0MCwgQ2VsbFRhZywgdDMsIC5vcEdldEJ5SWRTbG93KQogICAg
IGJpbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BHZXRCeUlkU2xvdwogICAg
IHZhbHVlUHJvZmlsZShPcEdldEJ5SWQsIG1fcHJvZmlsZSwgdDUsIFVuZGVmaW5lZFRhZywgMCkK
LSAgICByZXR1cm4oVW5kZWZpbmVkVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2goVW5kZWZpbmVkVGFnLCAwKQogCiAub3BHZXRCeUlkRGVmYXVsdDoKICAgICBsb2FkaSBPcEdl
dEJ5SWQ6Ok1ldGFkYXRhOjptX21vZGVNZXRhZGF0YS5kZWZhdWx0TW9kZS5zdHJ1Y3R1cmVJRFt0
NV0sIHQxCkBAIC0xNTk4LDcgKzE1OTgsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9i
eV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdAogICAg
IGJpbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BHZXRCeUlkU2xvdwogICAg
IGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQ
cm9maWxlKE9wR2V0QnlJZCwgbV9wcm9maWxlLCB0NSwgdDAsIHQxKQotICAgIHJldHVybih0MCwg
dDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRT
bG93OgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZCkKQEAgLTE2
MDgsMTIgKzE2MDgsMTIgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0
QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBnZXR0ZXJTZXR0
ZXJPU1JFeGl0UmV0dXJuUG9pbnQob3BfZ2V0X2J5X2lkLCBzaXplKQogICAgIG1ldGFkYXRhKHQy
LCB0MykKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkLCBtX3Byb2ZpbGUsIHQyLCByMSwgcjAp
Ci0gICAgcmV0dXJuKHIxLCByMCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxLCBy
MCkKIAogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1dEJ5
SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIHdyaXRl
QmFycmllck9uT3BlcmFuZHMoc2l6ZSwgZ2V0LCBtX2Jhc2UsIG1fdmFsdWUpCiAgICAgbWV0YWRh
dGEodDUsIHQzKQogICAgIGdldChtX2Jhc2UsIHQzKQpAQCAtMTY4MCw3ICsxNjgwLDcgQEAgbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXQKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dl
dF9ieV92YWwsIE9wR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdldEJ5VmFs
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gpCiAgICAgbWFjcm8gZmluaXNoSW50R2V0QnlWYWwocmVzdWx0UGF5bG9hZCwgc2Ny
YXRjaCkKICAgICAgICAgZ2V0KG1fZHN0LCBzY3JhdGNoKQogICAgICAgICBzdG9yZWkgSW50MzJU
YWcsIFRhZ09mZnNldFtjZnIsIHNjcmF0Y2gsIDhdCkBAIC0xNzU3LDExICsxNzU3LDExIEBAIGxs
aW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X3ZhbCwgT3BHZXRCeVZhbCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkCiAgICAgZ2V0dGVyU2V0dGVyT1NSRXhpdFJldHVyblBvaW50
KG9wX2dldF9ieV92YWwsIHNpemUpCiAgICAgbWV0YWRhdGEodDIsIHQzKQogICAgIHZhbHVlUHJv
ZmlsZShPcEdldEJ5VmFsLCBtX3Byb2ZpbGUsIHQyLCByMSwgcjApCi0gICAgcmV0dXJuKHIxLCBy
MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxLCByMCkKIAogZW5kKQogCi1sbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2dldF9wcml2YXRlX25hbWUsIE9wR2V0UHJpdmF0ZU5hbWUsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAg
ICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgIyBTbG93IHBhdGggaWYgdGhlIHByaXZhdGUgZmll
bGQgaXMgc3RhbGUKQEAgLTE3NzgsMTQgKzE3NzgsMTQgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXMKIAogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAg
ICAgdmFsdWVQcm9maWxlKE9wR2V0UHJpdmF0ZU5hbWUsIG1fcHJvZmlsZSwgdDUsIHQwLCB0MSkK
LSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDAsIHQx
KQogCiAub3BHZXRQcml2YXRlTmFtZVNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfZ2V0X3ByaXZhdGVfbmFtZSkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BX
aXRoTWV0YWRhdGEob3BfcHV0X3ByaXZhdGVfbmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX3B1dF9wcml2YXRlX25hbWUsIE9wUHV0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICB3
cml0ZUJhcnJpZXJPbk9wZXJhbmRzKHNpemUsIGdldCwgbV9iYXNlLCBtX3ZhbHVlKQogICAgIGdl
dChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHNpemUsIHQz
LCBDZWxsVGFnLCB0MCwgLm9wUHV0UHJpdmF0ZU5hbWVTbG93KQpAQCAtMTgyOSw3ICsxODI5LDcg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfcHJpdmF0ZV9uYW1lLCBPcFB1dFByaXZhdGVO
YW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKIGVuZCkKIAogbWFjcm8gcHV0QnlWYWxPcChvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9zckV4aXRQb2ludCkKLSAgICBsbGludE9wV2l0aE1ldGFk
YXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNv
ZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIG1hY3JvIGNvbnRpZ3VvdXNQ
dXRCeVZhbChzdG9yZUNhbGxiYWNrKQogICAgICAgICAgICAgYmlhZXEgdDMsIC1zaXplb2YgSW5k
ZXhpbmdIZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6dS5sZW5ndGhzLnB1YmxpY0xlbmd0aFt0MF0s
IC5vdXRPZkJvdW5kcwogICAgICAgICAuc3RvcmVSZXN1bHQ6CkBAIC0yMDA5LDcgKzIwMDksNyBA
QCB1bmRlZmluZWRPck51bGxKdW1wT3AoanVuZGVmaW5lZF9vcl9udWxsLCBPcEp1bmRlZmluZWRP
ck51bGwsCiB1bmRlZmluZWRPck51bGxKdW1wT3Aoam51bmRlZmluZWRfb3JfbnVsbCwgT3BKbnVu
ZGVmaW5lZE9yTnVsbCwKICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYmluZXEgdmFsdWUsIE51
bGxUYWcsIHRhcmdldCBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2plcV9wdHIsIE9wSmVx
UHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF9qZXFfcHRyLCBPcEplcVB0ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fdmFsdWUsIHQwKQogICAgIGdl
dChtX3NwZWNpYWxQb2ludGVyLCB0MSkKICAgICBsb2FkQ29uc3RhbnQoc2l6ZSwgdDEsIHQzLCB0
MikKQEAgLTIwMjMsNyArMjAyMyw3IEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX2plcV9wdHIsIE9w
SmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogZW5kKQogCiAKLWxs
aW50T3BXaXRoTWV0YWRhdGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0ciwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2pu
ZXFfcHRyLCBPcEpuZXFQdHIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV92YWx1ZSwgdDApCiAgICAgZ2V0
KG1fc3BlY2lhbFBvaW50ZXIsIHQxKQogICAgIGxvYWRDb25zdGFudChzaXplLCB0MSwgdDMsIHQy
KQpAQCAtMjA1NSw3ICsyMDU1LDcgQEAgZW5kCiAKIAogbWFjcm8gY29tcGFyZU9wKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmVBbmRTZXQsIGRvdWJsZUNvbXBhcmVBbmRT
ZXQpCi0gICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3Qs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX2xocywg
dDIpCiAgICAgICAgIGdldChtX3JocywgdDMpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUoc2l6ZSwgdDIsIHQwLCB0MSkKQEAgLTIwNjMsNyArMjA2Myw3IEBAIG1hY3JvIGNvbXBhcmVP
cChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0LCBkb3VibGVD
b21wYXJlQW5kCiAgICAgICAgIGJpbmVxIHQwLCBJbnQzMlRhZywgLm9wMU5vdEludAogICAgICAg
ICBiaW5lcSB0MiwgSW50MzJUYWcsIC5vcDJOb3RJbnQKICAgICAgICAgaW50ZWdlckNvbXBhcmVB
bmRTZXQodDEsIHQzLCB0MSkKLSAgICAgICAgcmV0dXJuKEJvb2xlYW5UYWcsIHQxKQorICAgICAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogCiAgICAgLm9wMU5v
dEludDoKICAgICAgICAgYmlhIHQwLCBMb3dlc3RUYWcsIC5zbG93CkBAIC0yMDc2LDE0ICsyMDc2
LDE0IEBAIG1hY3JvIGNvbXBhcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJD
b21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJlQW5kCiAgICAgLm9wMU5vdEludFJlYWR5OgogICAg
ICAgICBmaWkyZCB0MSwgdDAsIGZ0MAogICAgICAgICBkb3VibGVDb21wYXJlQW5kU2V0KGZ0MCwg
ZnQxLCB0MSkKLSAgICAgICAgcmV0dXJuKEJvb2xlYW5UYWcsIHQxKQorICAgICAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogCiAgICAgLm9wMk5vdEludDoKICAg
ICAgICAgY2kyZHMgdDEsIGZ0MAogICAgICAgICBiaWEgdDIsIExvd2VzdFRhZywgLnNsb3cKICAg
ICAgICAgZmlpMmQgdDMsIHQyLCBmdDEKICAgICAgICAgZG91YmxlQ29tcGFyZUFuZFNldChmdDAs
IGZ0MSwgdDEpCi0gICAgICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICAgICAgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MSkKIAogICAgIC5zbG93OgogICAgICAg
ICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUpCkBAIC0yMDkyLDEzICsyMDky
LDEzIEBAIG1hY3JvIGNvbXBhcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJD
b21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJlQW5kCiBlbmQKIAogbWFjcm8gY29tcGFyZVVuc2ln
bmVkT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCkKLSAg
ICBsbGludE9wV2l0aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9u
KG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MikKICAg
ICAgICAgZ2V0KG1fbGhzLCB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXpl
LCB0MiwgdDMsIHQxKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyhzaXplLCB0
MCwgdDIsIHQwKQogICAgICAgICBpbnRlZ2VyQ29tcGFyZUFuZFNldCh0MCwgdDEsIHQwKQotICAg
ICAgICByZXR1cm4oQm9vbGVhblRhZywgdDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2goQm9vbGVhblRhZywgdDApCiAgICAgZW5kKQogZW5kCiAKQEAgLTIyNzgsNyArMjI3OCw3
IEBAIG1hY3JvIGNhbGxIZWxwZXIob3Bjb2RlTmFtZSwgc2xvd1BhdGgsIG9wY29kZVN0cnVjdCwg
dmFsdWVQcm9maWxlTmFtZSwgZHN0VmlydHVhCiBlbmQKICAgICAgICAgCiBtYWNybyBjb21tb25D
YWxsT3Aob3Bjb2RlTmFtZSwgc2xvd1BhdGgsIG9wY29kZVN0cnVjdCwgcHJlcGFyZUNhbGwsIGlu
dm9rZUNhbGwsIHByZXBhcmVQb2x5bW9ycGhpYywgcHJlcGFyZVNsb3dDYWxsLCBwcm9sb2d1ZSkK
LSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWV0YWRh
dGEodDUsIHQwKQogCiAgICAgICAgIHByb2xvZ3VlKG1hY3JvIChmaWVsZE5hbWUsIGRzdCkKQEAg
LTIzNjcsMTMgKzIzNjcsMTMgQEAgbGxpbnRPcChvcF9yZXQsIE9wUmV0LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90b19wcmltaXRp
dmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCits
bGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3RvX3ByaW1pdGl2ZSwgT3BUb1ByaW1pdGl2ZSwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
Z2V0KG1fc3JjLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0MSwg
dDApCiAgICAgYmluZXEgdDEsIENlbGxUYWcsIC5vcFRvUHJpbWl0aXZlSXNJbW0KICAgICBiYmFl
cSBKU0NlbGw6Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIC5vcFRvUHJpbWl0aXZlU2xvd0Nhc2UK
IC5vcFRvUHJpbWl0aXZlSXNJbW06Ci0gICAgcmV0dXJuKHQxLCB0MCkKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQxLCB0MCkKIAogLm9wVG9QcmltaXRpdmVTbG93Q2FzZToKICAgICBj
YWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19wcmltaXRpdmUpCkBAIC0yMzgxLDcgKzIzODEsNyBA
QCBsbGludE9wV2l0aFJldHVybihvcF90b19wcmltaXRpdmUsIE9wVG9QcmltaXRpdmUsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCByZQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9w
X3RvX3Byb3BlcnR5X2tleSwgT3BUb1Byb3BlcnR5S2V5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90b19wcm9wZXJ0eV9rZXks
IE9wVG9Qcm9wZXJ0eUtleSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fc3JjLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlKHNpemUsIHQyLCB0MSwgdDApCiAgICAgYmluZXEgdDEsIENlbGxUYWcsIC5vcFRvUHJv
cGVydHlLZXlTbG93CkBAIC0yMzg5LDcgKzIzODksNyBAQCBsbGludE9wV2l0aFJldHVybihvcF90
b19wcm9wZXJ0eV9rZXksIE9wVG9Qcm9wZXJ0eUtleSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
YwogICAgIGJibmVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgU3RyaW5nVHlwZSwgLm9wVG9Qcm9wZXJ0
eUtleVNsb3cKIAogLmRvbmU6Ci0gICAgcmV0dXJuKHQxLCB0MCkKKyAgICBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKHQxLCB0MCkKIAogLm9wVG9Qcm9wZXJ0eUtleVNsb3c6CiAgICAgY2FsbFNs
b3dQYXRoKF9zbG93X3BhdGhfdG9fcHJvcGVydHlfa2V5KQpAQCAtMjU4Myw3ICsyNTgzLDcgQEAg
bWFjcm8gdmFySW5qZWN0aW9uQ2hlY2soc2xvd1BhdGgpCiBlbmQKIAogCi1sbGludE9wV2l0aE1l
dGFkYXRhKG9wX3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVz
b2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKIAogICAgIG1hY3JvIGdldENvbnN0
YW50U2NvcGUoZHN0KQogICAgICAgICBsb2FkcCBPcFJlc29sdmVTY29wZTo6TWV0YWRhdGE6Om1f
Y29uc3RhbnRTY29wZVt0NV0sIGRzdApAQCAtMjU5MSw3ICsyNTkxLDcgQEAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gKIAogICAgIG1hY3JvIHJldHVybkNvbnN0YW50U2NvcGUoKQogICAgICAgICBn
ZXRDb25zdGFudFNjb3BlKHQwKQotICAgICAgICByZXR1cm4oQ2VsbFRhZywgdDApCisgICAgICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQ2VsbFRhZywgdDApCiAgICAgZW5kCiAKICAgICBt
YWNybyBnbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2NoQ2hlY2soc2xvd1BhdGgsIGdsb2JhbE9iamVj
dCwgc2NyYXRjaCkKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
cmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
CiAgICAgICAgIGJ0aW56IHQyLCAucmVzb2x2ZVNjb3BlTG9vcAogCiAgICAgLnJlc29sdmVTY29w
ZUxvb3BFbmQ6Ci0gICAgICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICAgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaChDZWxsVGFnLCB0MCkKICAgICBlbmQKIAogICAgIG1ldGFkYXRhKHQ1
LCB0MCkKQEAgLTI2MjEsNyArMjYyMSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2
ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAg
YmluZXEgdDAsIEdsb2JhbFByb3BlcnR5LCAuckdsb2JhbFZhcgogICAgIGdldENvbnN0YW50U2Nv
cGUodDApCiAgICAgZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKC5yRHluYW1pYywgdDAs
IHQyKQotICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKENlbGxUYWcsIHQwKQogCiAuckdsb2JhbFZhcjoKICAgICBiaW5lcSB0MCwgR2xvYmFsVmFy
LCAuckdsb2JhbExleGljYWxWYXIKQEAgLTI2NDQsNyArMjY0NCw3IEBAIGxsaW50T3BXaXRoTWV0
YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoCiAgICAgdmFySW5qZWN0aW9uQ2hlY2soLnJEeW5hbWljKQogICAgIGdldENvbnN0
YW50U2NvcGUodDApCiAgICAgZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKC5yRHluYW1p
YywgdDAsIHQyKQotICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKENlbGxUYWcsIHQwKQogCiAuckdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVj
a3M6CiAgICAgYmluZXEgdDAsIEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MsIC5yR2xv
YmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MKQEAgLTI2NzUsMTIgKzI2NzUsMTIg
QEAgbWFjcm8gbG9hZFdpdGhTdHJ1Y3R1cmVDaGVjayhvcGNvZGVTdHJ1Y3QsIGdldCwgb3BlcmFu
ZCwgc2xvd1BhdGgpCiBlbmQKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9tX3Nj
b3BlLCBPcEdldEZyb21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9tX3Njb3BlLCBPcEdldEZy
b21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIG1hY3JvIGdldFByb3BlcnR5KCkKICAgICAgICAgbG9hZHAg
T3BHZXRGcm9tU2NvcGU6Ok1ldGFkYXRhOjptX29wZXJhbmRbdDVdLCB0MwogICAgICAgICBsb2Fk
UHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQzLCB0MCwgdDEsIHQyKQogICAgICAgICB2YWx1ZVBy
b2ZpbGUoT3BHZXRGcm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQxLCB0MikKLSAgICAgICAgcmV0
dXJuKHQxLCB0MikKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MSwgdDIpCiAg
ICAgZW5kCiAKICAgICBtYWNybyBnZXRHbG9iYWxWYXIodGR6Q2hlY2tJZk5lY2Vzc2FyeSkKQEAg
LTI2ODksNyArMjY4OSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUs
IE9wR2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgICAgIGxvYWRw
IFBheWxvYWRPZmZzZXRbdDBdLCB0MgogICAgICAgICB0ZHpDaGVja0lmTmVjZXNzYXJ5KHQxKQog
ICAgICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRGcm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQxLCB0
MikKLSAgICAgICAgcmV0dXJuKHQxLCB0MikKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MSwgdDIpCiAgICAgZW5kCiAKICAgICBtYWNybyBnZXRDbG9zdXJlVmFyKCkKQEAgLTI2
OTcsNyArMjY5Nyw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9w
R2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgICAgIGxvYWRwIEpT
TGV4aWNhbEVudmlyb25tZW50X3ZhcmlhYmxlcyArIFRhZ09mZnNldFt0MCwgdDMsIDhdLCB0MQog
ICAgICAgICBsb2FkcCBKU0xleGljYWxFbnZpcm9ubWVudF92YXJpYWJsZXMgKyBQYXlsb2FkT2Zm
c2V0W3QwLCB0MywgOF0sIHQyCiAgICAgICAgIHZhbHVlUHJvZmlsZShPcEdldEZyb21TY29wZSwg
bV9wcm9maWxlLCB0NSwgdDEsIHQyKQotICAgICAgICByZXR1cm4odDEsIHQyKQorICAgICAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MikKICAgICBlbmQKIAogICAgIG1ldGFkYXRh
KHQ1LCB0MCkKQEAgLTI3NTUsNyArMjc1NSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0
X2Zyb21fc2NvcGUsIE9wR2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiBl
bmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29w
ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9w
V2l0aE1ldGFkYXRhKG9wX3B1dF90b19zY29wZSwgT3BQdXRUb1Njb3BlLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
bWFjcm8gcHV0UHJvcGVydHkoKQogICAgICAgICBnZXQobV92YWx1ZSwgdDEpCiAgICAgICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQyLCB0MykKQEAgLTI4ODksMTMgKzI4ODks
MTMgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29wZSwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG0KIGVuZCkKIAogCi1sbGludE9wV2l0aFByb2Zp
bGUob3BfZ2V0X2Zyb21fYXJndW1lbnRzLCBPcEdldEZyb21Bcmd1bWVudHMsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2Zyb21f
YXJndW1lbnRzLCBPcEdldEZyb21Bcmd1bWVudHMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX2FyZ3VtZW50cywgdDApCiAg
ICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBnZXR1KHNpemUsIE9w
R2V0RnJvbUFyZ3VtZW50cywgbV9pbmRleCwgdDEpCiAgICAgbG9hZGkgRGlyZWN0QXJndW1lbnRz
X3N0b3JhZ2UgKyBUYWdPZmZzZXRbdDAsIHQxLCA4XSwgdDIKICAgICBsb2FkaSBEaXJlY3RBcmd1
bWVudHNfc3RvcmFnZSArIFBheWxvYWRPZmZzZXRbdDAsIHQxLCA4XSwgdDMKLSAgICByZXR1cm4o
dDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIsIHQzKQogZW5kKQogCiAK
QEAgLTI5MTIsMTUgKzI5MTIsMTUgQEAgbGxpbnRPcChvcF9wdXRfdG9fYXJndW1lbnRzLCBPcFB1
dFRvQXJndW1lbnRzLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKIGVuZCkKIAogCi1sbGlu
dE9wV2l0aFJldHVybihvcF9nZXRfcGFyZW50X3Njb3BlLCBPcEdldFBhcmVudFNjb3BlLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihv
cF9nZXRfcGFyZW50X3Njb3BlLCBPcEdldFBhcmVudFNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9zY29wZSwgdDAp
CiAgICAgbG9hZHAgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBsb2FkcCBKU1Nj
b3BlOjptX25leHRbdDBdLCB0MAotICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKENlbGxUYWcsIHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0
YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmls
ZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHQxCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW3QxXSwgdDEKICAgICAjIHQxIGlzIGhvbGRp
bmcgdGhlIHBvaW50ZXIgdG8gdGhlIHR5cGVQcm9maWxlckxvZy4KQEAgLTI5NjUsNyArMjk2NSw3
IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRh
KG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVDb250cm9sRmxvdywgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRh
KG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVDb250cm9sRmxvdywgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIG1ldGFkYXRhKHQ1LCB0MCkKICAgICBsb2FkcCBPcFByb2ZpbGVDb250cm9sRmxvdzo6TWV0
YWRhdGE6Om1fYmFzaWNCbG9ja0xvY2F0aW9uW3Q1XSwgdDAKICAgICBsb2FkaSBCYXNpY0Jsb2Nr
TG9jYXRpb246Om1fZXhlY3V0aW9uQ291bnRbdDBdLCB0MQpAQCAtMjk3Niw3ICsyOTc2LDcgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxlX2NvbnRyb2xfZmxvdywgT3BQcm9maWxlQ29u
dHJvbEZsb3csIG1hY3JvIChzaXplLAogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2dl
dF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfcmVzdF9sZW5ndGgsIE9w
R2V0UmVzdExlbmd0aCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzW2Nmcl0sIHQwCiAgICAgc3ViaSAxLCB0MAogICAgIGdldHUoc2l6ZSwgT3BHZXRS
ZXN0TGVuZ3RoLCBtX251bVBhcmFtZXRlcnNUb1NraXAsIHQxKQpAQCAtMjk4NiwxMCArMjk4Niwx
MCBAQCBsbGludE9wV2l0aFJldHVybihvcF9nZXRfcmVzdF9sZW5ndGgsIE9wR2V0UmVzdExlbmd0
aCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0YwogLnN0b3JlWmVybzoKICAgICBtb3ZlIDAsIHQw
CiAuZmluaXNoOgotICAgIHJldHVybihJbnQzMlRhZywgdDApCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaChJbnQzMlRhZywgdDApCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
aXRlcmF0b3Jfb3BlbiwgT3BJdGVyYXRvck9wZW4sIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVu
LCBPcEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1hY3JvIGZhc3ROYXJyb3coKQogICAgICAg
ICBjYWxsU2xvd1BhdGgoX2l0ZXJhdG9yX29wZW5fdHJ5X2Zhc3RfbmFycm93KQogICAgIGVuZApA
QCAtMzA0Niw3ICszMDQ2LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVu
LCBPcEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRj
aCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4dCwgT3BJdGVy
YXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQor
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKQogICAgICAgICAKICAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX25leHQsIHQwLCB0MSwgdDAp
CiAgICAgYmluZXEgdDEsIEVtcHR5VmFsdWVUYWcsIC5pdGVyYXRvck5leHRHZW5lcmljCkBAIC0z
MTM2LDEzICszMTM2LDEzIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4dCwg
T3BJdGVyYXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAgZGlzcGF0Y2go
KQogZW5kKQogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdl
dEludGVybmFsRmllbGQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGlu
dE9wV2l0aFByb2ZpbGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdldEludGVybmFsRmllbGQs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX2Jhc2UsIHQwKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0s
IHQwCiAgICAgZ2V0dShzaXplLCBPcEdldEludGVybmFsRmllbGQsIG1faW5kZXgsIHQxKQogICAg
IGxvYWRpIEpTSW50ZXJuYWxGaWVsZE9iamVjdEltcGxfaW50ZXJuYWxGaWVsZHMgKyBUYWdPZmZz
ZXRbdDAsIHQxLCBTbG90U2l6ZV0sIHQyCiAgICAgbG9hZGkgSlNJbnRlcm5hbEZpZWxkT2JqZWN0
SW1wbF9pbnRlcm5hbEZpZWxkcyArIFBheWxvYWRPZmZzZXRbdDAsIHQxLCBTbG90U2l6ZV0sIHQz
Ci0gICAgcmV0dXJuKHQyLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyLCB0
MykKIGVuZCkKIAogbGxpbnRPcChvcF9wdXRfaW50ZXJuYWxfZmllbGQsIE9wUHV0SW50ZXJuYWxG
aWVsZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCkBAIC0zMjAyLDcgKzMyMDIsNyBAQCBv
cChmdXp6ZXJfcmV0dXJuX2Vhcmx5X2Zyb21fbG9vcF9oaW50LCBtYWNybyAoKQogZW5kKQogCiAK
LWxsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0ZV9icmFuZCwgT3BDaGVja1ByaXZh
dGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCits
bGludE9wV2l0aE1ldGFkYXRhKG9wX2NoZWNrX3ByaXZhdGVfYnJhbmQsIE9wQ2hlY2tQcml2YXRl
QnJhbmQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgZ2V0KG1fYmFzZSwgdDMp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQoc2l6ZSwgdDMsIENlbGxUYWcsIHQw
LCAub3BDaGVja1ByaXZhdGVCcmFuZFNsb3cpCkBAIC0zMjIyLDcgKzMyMjIsNyBAQCBsbGludE9w
V2l0aE1ldGFkYXRhKG9wX2NoZWNrX3ByaXZhdGVfYnJhbmQsIE9wQ2hlY2tQcml2YXRlQnJhbmQs
IG1hY3JvIChzaXplLCBnZQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3By
aXZhdGVfYnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3ByaXZhdGVf
YnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQyKQog
ICAgIGdldChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHNp
emUsIHQzLCBDZWxsVGFnLCB0MCwgLm9wU2V0UHJpdmF0ZUJyYW5kU2xvdykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5k
ZXggNWRlN2JjYzdmZDBkNGYwNDBmMmRmOTRiZDQ3MzQ1ZDgzNTg2OTQ0Ny4uNjg4MmM0ODM0NzJm
YTk5ZjU0MzY4ODJkMTQ0NDY5ZmJjN2YyYWVjYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTcxLDcgKzcxLDcg
QEAgbWFjcm8gZ2V0T3BlcmFuZFdpZGUzMldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRz
dCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4
ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAotbWFj
cm8gbWFrZVJldHVybihnZXQsIGRpc3BhdGNoLCBmbikKK21hY3JvIG1ha2VEZXN0aW5hdGlvbihn
ZXQsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyAodmFsdWUpCiAgICAgICAgIG1vdmUgdmFs
dWUsIHQyCiAgICAgICAgIGdldChtX2RzdCwgdDEpCkBAIC04MCw3ICs4MCw3IEBAIG1hY3JvIG1h
a2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCiAgICAgZW5kKQogZW5kCiAKLW1hY3JvIG1ha2VS
ZXR1cm5Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwgbWV0YWRhdGEsIGRpc3BhdGNoLCBmbikK
K21hY3JvIG1ha2VEZXN0aW5hdGlvblByb2ZpbGVkKG9wY29kZVN0cnVjdCwgZ2V0LCBtZXRhZGF0
YSwgZGlzcGF0Y2gsIGZuKQogICAgIGZuKG1hY3JvICh2YWx1ZSkKICAgICAgICAgbW92ZSB2YWx1
ZSwgdDMKICAgICAgICAgbWV0YWRhdGEodDEsIHQyKQpAQCAtODcwLDM0ICs4NzAsMzQgQEAgX2xs
aW50X29wX2VudGVyOgogICAgIGRpc3BhdGNoT3AobmFycm93LCBvcF9lbnRlcikKIAogCi1sbGlu
dE9wV2l0aFByb2ZpbGUob3BfZ2V0X2FyZ3VtZW50LCBPcEdldEFyZ3VtZW50LCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9hcmd1
bWVudCwgT3BHZXRBcmd1bWVudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1faW5kZXgsIHQyKQogICAgIGxvYWRpIFBheWxv
YWRPZmZzZXQgKyBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1tjZnJdLCB0MAogICAgIGJpbHRl
cSB0MCwgdDIsIC5vcEdldEFyZ3VtZW50T3V0T2ZCb3VuZHMKICAgICBsb2FkcSBUaGlzQXJndW1l
bnRPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcEdldEFyZ3VtZW50T3V0T2ZCb3VuZHM6Ci0gICAgcmV0
dXJuKFZhbHVlVW5kZWZpbmVkKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goVmFsdWVV
bmRlZmluZWQpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfYXJndW1lbnRfY291bnQs
IE9wQXJndW1lbnRDb3VudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xs
aW50T3BXaXRoRGVzdGluYXRpb24ob3BfYXJndW1lbnRfY291bnQsIE9wQXJndW1lbnRDb3VudCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAg
ICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzW2Nmcl0s
IHQwCiAgICAgc3ViaSAxLCB0MAogICAgIG9ycSBUYWdOdW1iZXIsIHQwCi0gICAgcmV0dXJuKHQw
KQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIAotbGxpbnRPcFdp
dGhSZXR1cm4ob3BfZ2V0X3Njb3BlLCBPcEdldFNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfc2NvcGUsIE9wR2V0
U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKQogICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAogICAgIGxvYWRwIEpTQ2FsbGVlOjptX3Nj
b3BlW3QwXSwgdDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCh0MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3RvX3RoaXMsIE9wVG9UaGlz
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BX
aXRoTWV0YWRhdGEob3BfdG9fdGhpcywgT3BUb1RoaXMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9zcmNE
c3QsIHQwKQogICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgdDAKICAgICBidHFueiB0MCwgbm90Q2Vs
bE1hc2ssIC5vcFRvVGhpc1Nsb3cKQEAgLTkyNSwyMCArOTI1LDIwIEBAIGxsaW50T3Aob3BfY2hl
Y2tfdGR6LCBPcENoZWNrVGR6LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKIGVuZCkKIAog
Ci1sbGludE9wV2l0aFJldHVybihvcF9tb3YsIE9wTW92LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9tb3YsIE9wTW92LCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBn
ZXQobV9zcmMsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQyKQot
ICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogZW5kKQog
CiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX25vdCwgT3BOb3QsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX25vdCwgT3BOb3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IGdldChtX29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAs
IHQyKQogICAgIHhvcnEgVmFsdWVGYWxzZSwgdDIKICAgICBidHFueiB0MiwgfjEsIC5vcE5vdFNs
b3cKICAgICB4b3JxIFZhbHVlVHJ1ZSwgdDIKLSAgICByZXR1cm4odDIpCisgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCh0MikKIAogLm9wTm90U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Ns
b3dfcGF0aF9ub3QpCkBAIC05NDcsMTQgKzk0NywxNCBAQCBlbmQpCiAKIAogbWFjcm8gZXF1YWxp
dHlDb21wYXJpc29uT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyaXNv
bikKLSAgICBsbGludE9wV2l0aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3Rp
bmF0aW9uKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0
MCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZUludDMyKHNpemUsIHQwLCB0MSwgLnNsb3cpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGVJbnQzMihzaXplLCB0MiwgdDAsIC5zbG93KQogICAgICAgICBpbnRlZ2VyQ29tcGFyaXNvbih0
MCwgdDEsIHQwKQogICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICAgICAgcmV0dXJuKHQw
KQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAgICAgLnNsb3c6CiAg
ICAgICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoXyVvcGNvZGVOYW1lJSkKQEAgLTk2NCw3ICs5
NjQsNyBAQCBlbmQKIAogCiBtYWNybyBlcXVhbE51bGxDb21wYXJpc29uT3Aob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBmbikKLSAgICBsbGludE9wV2l0aFJldHVybihvcGNvZGVOYW1lLCBvcGNv
ZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRP
cFdpdGhEZXN0aW5hdGlvbihvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9v
cGVyYW5kLCB0MCkKICAgICAgICAgbG9hZHEgW2NmciwgdDAsIDhdLCB0MAogICAgICAgICBidHFu
eiB0MCwgbm90Q2VsbE1hc2ssIC5pbW1lZGlhdGUKQEAgLTk4Miw3ICs5ODIsNyBAQCBtYWNybyBl
cXVhbE51bGxDb21wYXJpc29uT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKICAgICAg
ICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAogICAgIC5kb25lOgogICAgICAgICBmbih0MCkKLSAg
ICAgICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQog
ICAgIGVuZCkKIGVuZAogCkBAIC05OTQsMTggKzk5NCwxOCBAQCBlcXVhbE51bGxDb21wYXJpc29u
T3Aob3BfbmVxX251bGwsIE9wTmVxTnVsbCwKICAgICBtYWNybyAodmFsdWUpIHhvcnEgVmFsdWVU
cnVlLCB2YWx1ZSBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfdW5kZWZpbmVkX29y
X251bGwsIE9wSXNVbmRlZmluZWRPck51bGwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBy
ZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX3VuZGVmaW5lZF9vcl9udWxsLCBP
cElzVW5kZWZpbmVkT3JOdWxsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MCkKICAgICBhbmRxIH5UYWdVbmRlZmluZWQsIHQwCiAg
ICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgIHJl
dHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKIG1h
Y3JvIHN0cmljdEVxT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBjcmVhdGVCb29sZWFuKQot
ICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRp
b24ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQwKQog
ICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNp
emUsIHQwLCB0MSkKQEAgLTEwMjAsNyArMTAyMCw3IEBAIG1hY3JvIHN0cmljdEVxT3Aob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBjcmVhdGVCb29sZWFuKQogICAgICAgICAjIGlmIChsZWZ0IGlz
IENlbGwgfHwgcmlnaHQgaXMgQ2VsbCkKICAgICAgICAgIyAgICAgZ290byBzbG93UGF0aDsKICAg
ICAgICAgIyBkb25lOgotICAgICAgICAjIHJldHVybiByZXN1bHQ7CisgICAgICAgICMgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCByZXN1bHQ7CiAKICAgICAgICAgIyBUaGlzIGZyYWdtZW50IGlt
cGxlbWVudHMgKGxlZnQgaXMgRG91YmxlIHx8IHJpZ2h0IGlzIERvdWJsZSksIHdpdGggYSBzaW5n
bGUgYnJhbmNoIGluc3RlYWQgb2YgdGhlIDQgdGhhdCB3b3VsZCBiZSBuYWl2ZWx5IHJlcXVpcmVk
IGlmIHdlIHVzZWQgYnJhbmNoSWZJbnQzMi9icmFuY2hJZk51bWJlcgogICAgICAgICAjIFRoZSB0
cmljayBpcyB0aGF0IGlmIGEgSlNWYWx1ZSBpcyBhbiBJbnQzMiwgdGhlbiBhZGRpbmcgMTw8NDkg
dG8gaXQgd2lsbCBtYWtlIGl0IG92ZXJmbG93LCBsZWF2aW5nIGFsbCBoaWdoIGJpdHMgYXQgMApA
QCAtMTA0NSw3ICsxMDQ1LDcgQEAgbWFjcm8gc3RyaWN0RXFPcChvcGNvZGVOYW1lLCBvcGNvZGVT
dHJ1Y3QsIGNyZWF0ZUJvb2xlYW4pCiAKICAgICAuZG9uZToKICAgICAgICAgY3JlYXRlQm9vbGVh
bih0NSkKLSAgICAgICAgcmV0dXJuKHQ1KQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKHQ1KQogCiAgICAgLnNsb3c6CiAgICAgICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoXyVv
cGNvZGVOYW1lJSkKQEAgLTExMTksNyArMTExOSw3IEBAIHN0cmljdEVxdWFsaXR5SnVtcE9wKGpu
c3RyaWN0ZXEsIE9wSm5zdHJpY3RlcSwKICAgICBtYWNybyAoanVtcCwgdGFyZ2V0TGFiZWwsIGRp
c3BhdGNoKSBqdW1wKHRhcmdldExhYmVsKSBlbmQpCiAKIG1hY3JvIHByZU9wKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgaW50ZWdlck9wZXJhdGlvbikKLSAgICBsbGludE9wV2l0aE1ldGFkYXRh
KG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNvZGVO
YW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX3NyY0RzdCwgdDApCiAg
ICAgICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgdDEKICAgICAgICAgIyBzcmNEc3QgaW4gdDEKQEAg
LTExMzgsMjYgKzExMzgsMjYgQEAgbWFjcm8gcHJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0
LCBpbnRlZ2VyT3BlcmF0aW9uKQogCiBlbmQKIAotbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251
bWJlciwgT3BUb051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xs
aW50T3BXaXRoUHJvZmlsZShvcF90b19udW1iZXIsIE9wVG9OdW1iZXIsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJh
bmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQyKQogICAgIGJx
YWVxIHQyLCBudW1iZXJUYWcsIC5vcFRvTnVtYmVySXNJbW1lZGlhdGUKICAgICBidHF6IHQyLCBu
dW1iZXJUYWcsIC5vcFRvTnVtYmVyU2xvdwogLm9wVG9OdW1iZXJJc0ltbWVkaWF0ZToKLSAgICBy
ZXR1cm4odDIpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MikKIAogLm9wVG9OdW1i
ZXJTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX251bWJlcikKICAgICBkaXNw
YXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF90b19udW1lcmljLCBPcFRvTnVt
ZXJpYywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJv
ZmlsZShvcF90b19udW1lcmljLCBPcFRvTnVtZXJpYywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDIpCiAgICAgYnFhZXEgdDIsIG51
bWJlclRhZywgLm9wVG9OdW1lcmljSXNJbW1lZGlhdGUKICAgICBidHF6IHQyLCBudW1iZXJUYWcs
IC5vcFRvTnVtZXJpY1Nsb3cKIC5vcFRvTnVtZXJpY0lzSW1tZWRpYXRlOgotICAgIHJldHVybih0
MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAub3BUb051bWVyaWNTbG93
OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3RvX251bWVyaWMpCkBAIC0xMTY1LDEzICsx
MTY1LDEzIEBAIGxsaW50T3BXaXRoUHJvZmlsZShvcF90b19udW1lcmljLCBPcFRvTnVtZXJpYywg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVyCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhS
ZXR1cm4ob3BfdG9fc3RyaW5nLCBPcFRvU3RyaW5nLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90b19zdHJpbmcsIE9wVG9TdHJp
bmcsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6
ZSwgdDEsIHQwKQogICAgIGJ0cW56IHQwLCBub3RDZWxsTWFzaywgLm9wVG9TdHJpbmdTbG93CiAg
ICAgYmJuZXEgSlNDZWxsOjptX3R5cGVbdDBdLCBTdHJpbmdUeXBlLCAub3BUb1N0cmluZ1Nsb3cK
IC5vcFRvU3RyaW5nSXNTdHJpbmc6Ci0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2godDApCiAKIC5vcFRvU3RyaW5nU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Ns
b3dfcGF0aF90b19zdHJpbmcpCkBAIC0xMTc5LDEyICsxMTc5LDEyIEBAIGxsaW50T3BXaXRoUmV0
dXJuKG9wX3RvX3N0cmluZywgT3BUb1N0cmluZywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHJldHVybikKIGVuZCkKIAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRv
T2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQ
cm9maWxlKG9wX3RvX29iamVjdCwgT3BUb09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDIpCiAgICAgYnRxbnogdDIsIG5v
dENlbGxNYXNrLCAub3BUb09iamVjdFNsb3cKICAgICBiYmIgSlNDZWxsOjptX3R5cGVbdDJdLCBP
YmplY3RUeXBlLCAub3BUb09iamVjdFNsb3cKLSAgICByZXR1cm4odDIpCisgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCh0MikKIAogLm9wVG9PYmplY3RTbG93OgogICAgIGNhbGxTbG93UGF0
aChfc2xvd19wYXRoX3RvX29iamVjdCkKQEAgLTExOTIsNyArMTE5Miw3IEBAIGxsaW50T3BXaXRo
UHJvZmlsZShvcF90b19vYmplY3QsIE9wVG9PYmplY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCByZXR1cm4pCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9uZWdhdGUsIE9w
TmVnYXRlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xs
aW50T3BXaXRoTWV0YWRhdGEob3BfbmVnYXRlLCBPcE5lZ2F0ZSwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldCht
X29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQzKQog
ICAgIGJxYiB0MywgbnVtYmVyVGFnLCAub3BOZWdhdGVOb3RJbnQKQEAgLTEyMDAsMTIgKzEyMDAs
MTIgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9uZWdhdGUsIE9wTmVnYXRlLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHIKICAgICBuZWdpIHQzCiAgICAgb3JxIG51bWJl
clRhZywgdDMKICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShzaXplLCBPcE5lZ2F0ZSwgQXJp
dGhQcm9maWxlSW50LCB0MSwgdDIpCi0gICAgcmV0dXJuKHQzKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2godDMpCiAub3BOZWdhdGVOb3RJbnQ6CiAgICAgYnRxeiB0MywgbnVtYmVyVGFn
LCAub3BOZWdhdGVTbG93CiAgICAgeG9ycSAweDgwMDAwMDAwMDAwMDAwMDAsIHQzCiAgICAgdXBk
YXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwgT3BOZWdhdGUsIEFyaXRoUHJvZmlsZU51bWJlciwg
dDEsIHQyKQotICAgIHJldHVybih0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQz
KQogCiAub3BOZWdhdGVTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX25lZ2F0ZSkK
QEAgLTEyMTQsNyArMTIxNCw3IEBAIGVuZCkKIAogCiBtYWNybyBiaW5hcnlPcEN1c3RvbVN0b3Jl
KG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlck9wZXJhdGlvbkFuZFN0b3JlLCBkb3Vi
bGVPcGVyYXRpb24pCi0gICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9w
Y29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4p
CisgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQwKQogICAgICAgICBnZXQobV9saHMsIHQyKQog
ICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSkKQEAgLTEzMjgsNyAr
MTMyOCw3IEBAIGJpbmFyeU9wKHN1YiwgT3BTdWIsCiAgICAgbWFjcm8gKGxocywgcmhzKSBzdWJk
IHJocywgbGhzIGVuZCkKIAogaWYgWDg2XzY0IG9yIFg4Nl82NF9XSU4KLSAgICBsbGludE9wV2l0
aFJldHVybihvcF9tb2QsIE9wTW9kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJu
KQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfbW9kLCBPcE1vZCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldCht
X3JocywgdDApCiAgICAgICAgIGdldChtX2xocywgdDIpCiAgICAgICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGVJbnQzMihzaXplLCB0MCwgdDEsIC5zbG93KQpAQCAtMTM0NSwxMyArMTM0NSwxMyBA
QCBpZiBYODZfNjQgb3IgWDg2XzY0X1dJTgogICAgICAgICBjZHFpCiAgICAgICAgIGlkaXZpIHQz
CiAgICAgICAgIG9ycSBudW1iZXJUYWcsIHIxCi0gICAgICAgIHJldHVybihyMSkKKyAgICAgICAg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChyMSkKICAgICAubmVlZHNOZWdaZXJvQ2hlY2s6CiAg
ICAgICAgIGNkcWkKICAgICAgICAgaWRpdmkgdDMKICAgICAgICAgYnRpeiByMSwgLnNsb3cKICAg
ICAgICAgb3JxIG51bWJlclRhZywgcjEKLSAgICAgICAgcmV0dXJuKHIxKQorICAgICAgICBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxKQogCiAgICAgLnNsb3c6CiAgICAgICAgIGNhbGxTbG93
UGF0aChfc2xvd19wYXRoX21vZCkKQEAgLTEzNjEsNyArMTM2MSw3IEBAIGVsc2UKICAgICBzbG93
UGF0aE9wKG1vZCkKIGVuZAogCi1sbGludE9wV2l0aFJldHVybihvcF9wb3csIE9wUG93LCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihv
cF9wb3csIE9wUG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBnZXQobV9yaHMsIHQwKQogICAgIGdldChtX2xocywgdDIpCiAgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHNpemUsIHQwLCB0MSwgLnNsb3cpCkBAIC0xNDAw
LDExICsxNDAwLDExIEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3BvdywgT3BQb3csIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCiAgICAgZGlzcGF0Y2goKQogZW5kKQogCi1sbGlu
dE9wV2l0aFJldHVybihvcF91bnNpZ25lZCwgT3BVbnNpZ25lZCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfdW5zaWduZWQsIE9w
VW5zaWduZWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUoc2l6ZSwgdDEsIHQyKQogICAgIGJpbHQgdDIsIDAsIC5vcFVuc2lnbmVkU2xvdwotICAgIHJl
dHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogLm9wVW5zaWduZWRT
bG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX3Vuc2lnbmVkKQogICAgIGRpc3BhdGNo
KCkKQEAgLTE0MTIsNyArMTQxMiw3IEBAIGVuZCkKIAogCiBtYWNybyBjb21tb25CaXRPcChvcEtp
bmQsIG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0aW9uKQotICAgIG9wS2luZChvcF8l
b3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJl
dHVybikKKyAgICBvcEtpbmQob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBn
ZXQobV9yaHMsIHQwKQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSkKQEAgLTE0MjEsNyArMTQyMSw3IEBAIG1hY3JvIGNv
bW1vbkJpdE9wKG9wS2luZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCiAg
ICAgICAgIGJxYiB0MSwgbnVtYmVyVGFnLCAuc2xvdwogICAgICAgICBvcGVyYXRpb24odDAsIHQx
KQogICAgICAgICBvcnEgbnVtYmVyVGFnLCB0MAotICAgICAgICByZXR1cm4odDApCisgICAgICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKICAgICAuc2xvdzoKICAgICAgICAgY2Fs
bFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpAQCAtMTQzMCw3ICsxNDMwLDcgQEAg
bWFjcm8gY29tbW9uQml0T3Aob3BLaW5kLCBvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJh
dGlvbikKIGVuZAogCiBtYWNybyBiaXRPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJh
dGlvbikKLSAgICBjb21tb25CaXRPcChsbGludE9wV2l0aFJldHVybiwgb3Bjb2RlTmFtZSwgb3Bj
b2RlU3RydWN0LCBvcGVyYXRpb24pCisgICAgY29tbW9uQml0T3AobGxpbnRPcFdpdGhEZXN0aW5h
dGlvbiwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCiBlbmQKIAogbWFjcm8g
Yml0T3BQcm9maWxlZChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKQEAgLTE0
NTcsMTIgKzE0NTcsMTIgQEAgYml0T3BQcm9maWxlZChiaXRvciwgT3BCaXRvciwKIGJpdE9wUHJv
ZmlsZWQoYml0eG9yLCBPcEJpdHhvciwKICAgICBtYWNybyAobGhzLCByaHMpIHhvcmkgcmhzLCBs
aHMgZW5kKQogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfYml0bm90LCBPcEJpdG5vdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF9iaXRu
b3QsIE9wQml0bm90LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlSW50MzIoc2l6ZSwgdDAsIHQzLCAub3BCaXROb3RTbG93KQogICAgIG5vdGkgdDMKICAg
ICBvcnEgbnVtYmVyVGFnLCB0MwotICAgIHJldHVybih0MykKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKHQzKQogLm9wQml0Tm90U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0
aF9iaXRub3QpCiAgICAgZGlzcGF0Y2goKQpAQCAtMTQ5Miw2NyArMTQ5Miw2NyBAQCBsbGludE9w
KG9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2UsIE9wT3ZlcnJpZGVzSGFzSW5zdGFuY2UsIG1hY3Jv
IChzaXplLCBnZXQsIGRpcwogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX2VtcHR5
LCBPcElzRW1wdHksIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9w
V2l0aERlc3RpbmF0aW9uKG9wX2lzX2VtcHR5LCBPcElzRW1wdHksIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQs
IHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQogICAgIGNxZXEg
dDAsIFZhbHVlRW1wdHksIHQzCiAgICAgb3JxIFZhbHVlRmFsc2UsIHQzCi0gICAgcmV0dXJuKHQz
KQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDMpCiBlbmQpCiAKIAotbGxpbnRPcFdp
dGhSZXR1cm4ob3BfdHlwZW9mX2lzX3VuZGVmaW5lZCwgT3BUeXBlb2ZJc1VuZGVmaW5lZCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24o
b3BfdHlwZW9mX2lzX3VuZGVmaW5lZCwgT3BUeXBlb2ZJc1VuZGVmaW5lZCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3Bl
cmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAgICAg
YnRxeiB0MCwgbm90Q2VsbE1hc2ssIC5vcElzVW5kZWZpbmVkQ2VsbAogICAgIGNxZXEgdDAsIFZh
bHVlVW5kZWZpbmVkLCB0MwogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MwotICAgIHJldHVybih0MykK
KyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQzKQogLm9wSXNVbmRlZmluZWRDZWxsOgog
ICAgIGJ0Ym56IEpTQ2VsbDo6bV9mbGFnc1t0MF0sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIC5t
YXNxdWVyYWRlc0FzVW5kZWZpbmVkCiAgICAgbW92ZSBWYWx1ZUZhbHNlLCB0MQotICAgIHJldHVy
bih0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogLm1hc3F1ZXJhZGVzQXNV
bmRlZmluZWQ6CiAgICAgbG9hZFN0cnVjdHVyZVdpdGhTY3JhdGNoKHQwLCB0MywgdDEpCiAgICAg
bG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9i
amVjdFt0MV0sIHQxCiAgICAgY3BlcSBTdHJ1Y3R1cmU6Om1fZ2xvYmFsT2JqZWN0W3QzXSwgdDEs
IHQwCiAgICAgb3JxIFZhbHVlRmFsc2UsIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNf
Ym9vbGVhbiwgT3BJc0Jvb2xlYW4sIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX2Jvb2xlYW4sIE9wSXNCb29sZWFuLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBn
ZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0
MCkKICAgICB4b3JxIFZhbHVlRmFsc2UsIHQwCiAgICAgdHF6IHQwLCB+MSwgdDAKICAgICBvcnEg
VmFsdWVGYWxzZSwgdDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19udW1iZXIsIE9wSXNO
dW1iZXIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERl
c3RpbmF0aW9uKG9wX2lzX251bWJlciwgT3BJc051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAgICAgdHFueiB0MCwg
bnVtYmVyVGFnLCB0MQogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MQotICAgIHJldHVybih0MSkKKyAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogZW5kKQogCiBpZiBCSUdJTlQzMgotICAg
IGxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX2JpZ19pbnQsIE9wSXNCaWdJbnQsIG1hY3JvKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lz
X2JpZ19pbnQsIE9wSXNCaWdJbnQsIG1hY3JvKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgICAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MCkKICAgICAgICAgYnRxbnogdDAsIG5v
dENlbGxNYXNrLCAubm90Q2VsbENhc2UKICAgICAgICAgY2JlcSBKU0NlbGw6Om1fdHlwZVt0MF0s
IEhlYXBCaWdJbnRUeXBlLCB0MQogICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDEKLSAgICAgICAg
cmV0dXJuKHQxKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogICAgIC5u
b3RDZWxsQ2FzZToKICAgICAgICAgYW5kcSBNYXNrQmlnSW50MzIsIHQwCiAgICAgICAgIGNxZXEg
dDAsIFRhZ0JpZ0ludDMyLCB0MAogICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICAgICAg
cmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogICAgIGVu
ZCkKIGVsc2UKICMgaWYgQklHSU5UMzIgaXMgbm90IHN1cHBvcnRlZCB3ZSBnZW5lcmF0ZSBvcF9p
c19jZWxsX3dpdGhfdHlwZSBpbnN0ZWFkIG9mIG9wX2lzX2JpZ19pbnQKQEAgLTE1NjEsMjggKzE1
NjEsMjggQEAgZWxzZQogICAgIGVuZCkKIGVuZAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19j
ZWxsX3dpdGhfdHlwZSwgT3BJc0NlbGxXaXRoVHlwZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfY2VsbF93aXRoX3R5cGUs
IE9wSXNDZWxsV2l0aFR5cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIGdldHUoc2l6ZSwgT3BJc0NlbGxXaXRoVHlwZSwgbV90eXBl
LCB0MCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
KHNpemUsIHQxLCB0MykKICAgICBidHFueiB0Mywgbm90Q2VsbE1hc2ssIC5ub3RDZWxsQ2FzZQog
ICAgIGNiZXEgSlNDZWxsOjptX3R5cGVbdDNdLCB0MCwgdDEKICAgICBvcnEgVmFsdWVGYWxzZSwg
dDEKLSAgICByZXR1cm4odDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MSkKIC5u
b3RDZWxsQ2FzZToKLSAgICByZXR1cm4oVmFsdWVGYWxzZSkKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKFZhbHVlRmFsc2UpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNf
b2JqZWN0LCBPcElzT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19vYmplY3QsIE9wSXNPYmplY3QsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldCht
X29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQog
ICAgIGJ0cW56IHQwLCBub3RDZWxsTWFzaywgLm9wSXNPYmplY3ROb3RDZWxsCiAgICAgY2JhZXEg
SlNDZWxsOjptX3R5cGVbdDBdLCBPYmplY3RUeXBlLCB0MQogICAgIG9ycSBWYWx1ZUZhbHNlLCB0
MQotICAgIHJldHVybih0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogLm9w
SXNPYmplY3ROb3RDZWxsOgotICAgIHJldHVybihWYWx1ZUZhbHNlKQorICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2goVmFsdWVGYWxzZSkKIGVuZCkKIAogCkBAIC0xNjE4LDcgKzE2MTgsNyBA
QCBtYWNybyBzdG9yZVByb3BlcnR5QXRWYXJpYWJsZU9mZnNldChwcm9wZXJ0eU9mZnNldEFzSW50
LCBvYmplY3RBbmRTdG9yYWdlLCB2YWx1ZQogZW5kCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF90cnlfZ2V0X2J5X2lkLCBPcFRyeUdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90cnlfZ2V0X2J5X2lk
LCBPcFRyeUdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0MiwgdDApCiAgICAgZ2V0KG1f
YmFzZSwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwgdDAsIHQzLCAu
b3BUcnlHZXRCeUlkU2xvdykKQEAgLTE2MjgsMTQgKzE2MjgsMTQgQEAgbGxpbnRPcFdpdGhNZXRh
ZGF0YShvcF90cnlfZ2V0X2J5X2lkLCBPcFRyeUdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLAogICAgIGxvYWRpIE9wVHJ5R2V0QnlJZDo6TWV0YWRhdGE6Om1fb2Zmc2V0W3QyXSwg
dDEKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDApCiAgICAgdmFs
dWVQcm9maWxlKE9wVHJ5R2V0QnlJZCwgbV9wcm9maWxlLCB0MiwgdDApCi0gICAgcmV0dXJuKHQw
KQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcFRyeUdldEJ5SWRTbG93
OgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RyeV9nZXRfYnlfaWQpCiAgICAg
ZGlzcGF0Y2goKQogZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZF9kaXJl
Y3QsIE9wR2V0QnlJZERpcmVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZF9kaXJlY3QsIE9wR2V0
QnlJZERpcmVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQyLCB0MCkKICAgICBnZXQobV9iYXNl
LCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChzaXplLCB0MCwgdDMsIC5vcEdl
dEJ5SWREaXJlY3RTbG93KQpAQCAtMTY0NSw3ICsxNjQ1LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9nZXRfYnlfaWRfZGlyZWN0LCBPcEdldEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3AKICAgICBsb2FkaSBPcEdldEJ5SWREaXJlY3Q6Ok1ldGFkYXRhOjptX29mZnNldFt0Ml0s
IHQxCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDMsIHQwKQogICAgIHZh
bHVlUHJvZmlsZShPcEdldEJ5SWREaXJlY3QsIG1fcHJvZmlsZSwgdDIsIHQwKQotICAgIHJldHVy
bih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BHZXRCeUlkRGly
ZWN0U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWRfZGly
ZWN0KQpAQCAtMTY1Myw3ICsxNjUzLDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlf
aWRfZGlyZWN0LCBPcEdldEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3AKIGVuZCkK
IAogIyBUaGUgYmFzZSBvYmplY3QgaXMgZXhwZWN0ZWQgaW4gdDMKLW1hY3JvIHBlcmZvcm1HZXRC
eUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFt
ZSwgc2xvd0xhYmVsLCBzaXplLCBtZXRhZGF0YSwgcmV0dXJuKQorbWFjcm8gcGVyZm9ybUdldEJ5
SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1lLCB2YWx1ZVByb2ZpbGVOYW1l
LCBzbG93TGFiZWwsIHNpemUsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIG1ldGFkYXRhKHQyLCB0MSkKICAgICBsb2FkYiAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6
OiVtb2RlTWV0YWRhdGFOYW1lJS5tb2RlW3QyXSwgdDEKIApAQCAtMTY2NSw3ICsxNjY1LDcgQEAg
bWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1l
LCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG8KICAgICBsb2FkaXMgJW9wY29kZVN0cnVjdCU6Ok1ldGFk
YXRhOjolbW9kZU1ldGFkYXRhTmFtZSUuZGVmYXVsdE1vZGUuY2FjaGVkT2Zmc2V0W3QyXSwgdDEK
ICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDApCiAgICAgdmFsdWVQ
cm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgdDIsIHQwKQotICAgIHJldHVy
bih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BHZXRCeUlkUHJv
dG9Mb2FkOgogICAgIGJibmVxIHQxLCBjb25zdGV4cHIgR2V0QnlJZE1vZGU6OlByb3RvTG9hZCwg
Lm9wR2V0QnlJZEFycmF5TGVuZ3RoCkBAIC0xNjc2LDcgKzE2NzYsNyBAQCBtYWNybyBwZXJmb3Jt
R2V0QnlJREhlbHBlcihvcGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmls
ZU5hbWUsIHNsbwogICAgIGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRh
ZGF0YU5hbWUlLnByb3RvTG9hZE1vZGUuY2FjaGVkU2xvdFt0Ml0sIHQzCiAgICAgbG9hZFByb3Bl
cnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDMsIHQwKQogICAgIHZhbHVlUHJvZmlsZShvcGNvZGVT
dHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIHQyLCB0MCkKLSAgICByZXR1cm4odDApCisgICAgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogLm9wR2V0QnlJZEFycmF5TGVuZ3RoOgogICAg
IGJibmVxIHQxLCBjb25zdGV4cHIgR2V0QnlJZE1vZGU6OkFycmF5TGVuZ3RoLCAub3BHZXRCeUlk
VW5zZXQKQEAgLTE2ODksMjEgKzE2ODksMjEgQEAgbWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIo
b3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1lLCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG8KICAg
ICBiaWx0IHQwLCAwLCBzbG93TGFiZWwKICAgICBvcnEgbnVtYmVyVGFnLCB0MAogICAgIHZhbHVl
UHJvZmlsZShvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIHQyLCB0MCkKLSAgICByZXR1
cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogLm9wR2V0QnlJZFVu
c2V0OgogICAgIGxvYWRpIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxCiAgICAgbG9hZGkg
JW9wY29kZVN0cnVjdCU6Ok1ldGFkYXRhOjolbW9kZU1ldGFkYXRhTmFtZSUudW5zZXRNb2RlLnN0
cnVjdHVyZUlEW3QyXSwgdDAKICAgICBiaW5lcSB0MCwgdDEsIHNsb3dMYWJlbAogICAgIHZhbHVl
UHJvZmlsZShvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIHQyLCBWYWx1ZVVuZGVmaW5l
ZCkKLSAgICByZXR1cm4oVmFsdWVVbmRlZmluZWQpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaChWYWx1ZVVuZGVmaW5lZCkKIAogZW5kCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0
X2J5X2lkLCBPcEdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
cmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKQogICAgIGdldChtX2Jhc2UsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxs
KHNpemUsIHQwLCB0MywgLm9wR2V0QnlJZFNsb3cpCi0gICAgcGVyZm9ybUdldEJ5SURIZWxwZXIo
T3BHZXRCeUlkLCBtX21vZGVNZXRhZGF0YSwgbV9wcm9maWxlLCAub3BHZXRCeUlkU2xvdywgc2l6
ZSwgbWV0YWRhdGEsIHJldHVybikKKyAgICBwZXJmb3JtR2V0QnlJREhlbHBlcihPcEdldEJ5SWQs
IG1fbW9kZU1ldGFkYXRhLCBtX3Byb2ZpbGUsIC5vcEdldEJ5SWRTbG93LCBzaXplLCBtZXRhZGF0
YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKIAogLm9wR2V0QnlJZFNsb3c6CiAgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2J5X2lkKQpAQCAtMTcxMywxMiArMTcxMywx
MiBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdAogICAgIGdldHRlclNldHRlck9TUkV4aXRSZXR1
cm5Qb2ludChvcF9nZXRfYnlfaWQsIHNpemUpCiAgICAgbWV0YWRhdGEodDIsIHQzKQogICAgIHZh
bHVlUHJvZmlsZShPcEdldEJ5SWQsIG1fcHJvZmlsZSwgdDIsIHIwKQotICAgIHJldHVybihyMCkK
KyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIwKQogCiBlbmQpCiAKIAotbGxpbnRPcFdp
dGhQcm9maWxlKG9wX2dldF9wcm90b3R5cGVfb2YsIE9wR2V0UHJvdG90eXBlT2YsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X3By
b3RvdHlwZV9vZiwgT3BHZXRQcm90b3R5cGVPZiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fdmFsdWUsIHQxKQogICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQogCkBAIC0xNzMxLDcgKzE3MzEsNyBA
QCBsbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X3Byb3RvdHlwZV9vZiwgT3BHZXRQcm90b3R5cGVP
ZiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcAogCiAgICAgbG9hZHEgU3RydWN0dXJlOjptX3Byb3Rv
dHlwZVt0Ml0sIHQyCiAgICAgYnRxeiB0MiwgLm9wR2V0UHJvdG90eXBlT2ZQb2x5UHJvdG8KLSAg
ICByZXR1cm4odDIpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MikKIAogLm9wR2V0
UHJvdG90eXBlT2ZTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2dldF9wcm90b3R5
cGVfb2YpCkBAIC0xNzQwLDExICsxNzQwLDExIEBAIGxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRf
cHJvdG90eXBlX29mLCBPcEdldFByb3RvdHlwZU9mLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwCiAu
b3BHZXRQcm90b3R5cGVPZlBvbHlQcm90bzoKICAgICBtb3ZlIGtub3duUG9seVByb3RvT2Zmc2V0
LCB0MQogICAgIGxvYWRJbmxpbmVPZmZzZXQodDEsIHQwLCB0MykKLSAgICByZXR1cm4odDMpCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MykKIGVuZCkKIAogCi1sbGludE9wV2l0aE1l
dGFkYXRhKG9wX3B1dF9ieV9pZCwgT3BQdXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBP
cFB1dEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9iYXNlLCB0MykKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbChzaXplLCB0MywgdDAsIC5vcFB1dEJ5SWRTbG93KQogICAgIG1ldGFkYXRh
KHQ1LCB0MikKQEAgLTE4MTcsNyArMTgxNyw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0
X2J5X2lkLCBPcFB1dEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0CiBl
bmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdldEJ5VmFsLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRo
TWV0YWRhdGEob3BfZ2V0X2J5X3ZhbCwgT3BHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1hY3JvIGZp
bmlzaEdldEJ5VmFsKHJlc3VsdCwgc2NyYXRjaCkKICAgICAgICAgZ2V0KG1fZHN0LCBzY3JhdGNo
KQogICAgICAgICBzdG9yZXEgcmVzdWx0LCBbY2ZyLCBzY3JhdGNoLCA4XQpAQCAtMTkwNSwxMSAr
MTkwNSwxMSBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV92YWwsIE9wR2V0QnlWYWws
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZAogICAgIGdldHRlclNldHRlck9TUkV4
aXRSZXR1cm5Qb2ludChvcF9nZXRfYnlfdmFsLCBzaXplKQogICAgIG1ldGFkYXRhKHQ1LCB0MikK
ICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeVZhbCwgbV9wcm9maWxlLCB0NSwgcjApCi0gICAgcmV0
dXJuKHIwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gocjApCiAKIGVuZCkKIAotbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRo
TWV0YWRhdGEob3BfZ2V0X3ByaXZhdGVfbmFtZSwgT3BHZXRQcml2YXRlTmFtZSwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIG1ldGFkYXRhKHQyLCB0MCkKIAogICAgICMgU2xvdyBwYXRoIGlmIHRoZSBwcml2YXRlIGZp
ZWxkIGlzIHN0YWxlCkBAIC0xOTI3LDE0ICsxOTI3LDE0IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEo
b3BfZ2V0X3ByaXZhdGVfbmFtZSwgT3BHZXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzCiAgICAgbG9hZGkgT3BHZXRQcml2YXRlTmFtZTo6TWV0YWRhdGE6Om1fb2Zmc2V0W3QyXSwg
dDEKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MywgdDApCiAgICAgdmFs
dWVQcm9maWxlKE9wR2V0UHJpdmF0ZU5hbWUsIG1fcHJvZmlsZSwgdDIsIHQwKQotICAgIHJldHVy
bih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BHZXRQcml2YXRl
TmFtZVNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X3ByaXZhdGVf
bmFtZSkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0
X3ByaXZhdGVfbmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3B1dF9wcml2YXRl
X25hbWUsIE9wUHV0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9iYXNlLCB0MykKICAg
ICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChzaXplLCB0MywgdDAsIC5vcFB1dFByaXZhdGVO
YW1lU2xvdykKICAgICBnZXQobV9wcm9wZXJ0eSwgdDMpCkBAIC0xOTc3LDcgKzE5NzcsNyBAQCBs
bGludE9wV2l0aE1ldGFkYXRhKG9wX3B1dF9wcml2YXRlX25hbWUsIE9wUHV0UHJpdmF0ZU5hbWUs
IG1hY3JvIChzaXplLCBnZXQsIGRpcwogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdp
dGhNZXRhZGF0YShvcF9zZXRfcHJpdmF0ZV9icmFuZCwgT3BTZXRQcml2YXRlQnJhbmQsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRh
ZGF0YShvcF9zZXRfcHJpdmF0ZV9icmFuZCwgT3BTZXRQcml2YXRlQnJhbmQsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAg
ICBnZXQobV9iYXNlLCB0MykKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlQ2VsbChzaXplLCB0
MywgdDAsIC5vcFNldFByaXZhdGVCcmFuZFNsb3cpCiAgICAgZ2V0KG1fYnJhbmQsIHQzKQpAQCAt
MTk5OSw3ICsxOTk5LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9zZXRfcHJpdmF0ZV9icmFu
ZCwgT3BTZXRQcml2YXRlQnJhbmQsIG1hY3JvIChzaXplLCBnZXQsIGQKICAgICBkaXNwYXRjaCgp
CiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0ZV9icmFuZCwgT3BD
aGVja1ByaXZhdGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBy
ZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2NoZWNrX3ByaXZhdGVfYnJhbmQsIE9wQ2hl
Y2tQcml2YXRlQnJhbmQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgZ2V0KG1f
YmFzZSwgdDMpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwgdDMsIHQwLCAu
b3BDaGVja1ByaXZhdGVCcmFuZFNsb3cpCkBAIC0yMDE5LDcgKzIwMTksNyBAQCBsbGludE9wV2l0
aE1ldGFkYXRhKG9wX2NoZWNrX3ByaXZhdGVfYnJhbmQsIE9wQ2hlY2tQcml2YXRlQnJhbmQsIG1h
Y3JvIChzaXplLCBnZQogZW5kKQogCiBtYWNybyBwdXRCeVZhbE9wKG9wY29kZU5hbWUsIG9wY29k
ZVN0cnVjdCwgb3NyRXhpdFBvaW50KQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29k
ZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNv
ZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWFjcm8gY29udGlndW91c1B1dEJ5VmFsKHN0b3Jl
Q2FsbGJhY2spCiAgICAgICAgICAgICBiaWFlcSB0MywgLXNpemVvZiBJbmRleGluZ0hlYWRlciAr
IEluZGV4aW5nSGVhZGVyOjp1Lmxlbmd0aHMucHVibGljTGVuZ3RoW3QwXSwgLm91dE9mQm91bmRz
CiAgICAgICAgIC5zdG9yZVJlc3VsdDoKQEAgLTIyMDQsNyArMjIwNCw3IEBAIHVuZGVmaW5lZE9y
TnVsbEp1bXBPcChqdW5kZWZpbmVkX29yX251bGwsIE9wSnVuZGVmaW5lZE9yTnVsbCwKIHVuZGVm
aW5lZE9yTnVsbEp1bXBPcChqbnVuZGVmaW5lZF9vcl9udWxsLCBPcEpudW5kZWZpbmVkT3JOdWxs
LAogICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBicW5lcSB2YWx1ZSwgVmFsdWVOdWxsLCB0YXJn
ZXQgZW5kKQogCi1sbGludE9wV2l0aFJldHVybihvcF9qZXFfcHRyLCBPcEplcVB0ciwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bf
amVxX3B0ciwgT3BKZXFQdHIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3ZhbHVlLCB0MCkKICAgICBnZXQobV9zcGVjaWFs
UG9pbnRlciwgdDEpCiAgICAgbG9hZENvbnN0YW50KHNpemUsIHQxLCB0MikKQEAgLTIyMTcsNyAr
MjIxNyw3IEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX2plcV9wdHIsIE9wSmVxUHRyLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRh
dGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2puZXFfcHRyLCBPcEpuZXFQ
dHIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBnZXQobV92YWx1ZSwgdDApCiAgICAgZ2V0KG1fc3BlY2lhbFBvaW50
ZXIsIHQxKQogICAgIGxvYWRDb25zdGFudChzaXplLCB0MSwgdDIpCkBAIC0yMzExLDcgKzIzMTEs
NyBAQCBlbmQKIAogCiBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBp
bnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZFNldCkKLSAgICBsbGludE9wV2l0
aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wXyVvcGNvZGVO
YW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikKICAgICAgICAgZ2V0KG1f
cmhzLCB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDEpCkBA
IC0yMzIwLDcgKzIzMjAsNyBAQCBtYWNybyBjb21wYXJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3Ry
dWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCwgZG91YmxlQ29tcGFyZUFuZAogICAgICAgICBicWIg
dDEsIG51bWJlclRhZywgLm9wMk5vdEludAogICAgICAgICBpbnRlZ2VyQ29tcGFyZUFuZFNldCh0
MCwgdDEsIHQwKQogICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICAgICAgcmV0dXJuKHQw
KQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAgICAgLm9wMU5vdElu
dDoKICAgICAgICAgYnRxeiB0MCwgbnVtYmVyVGFnLCAuc2xvdwpAQCAtMjMzOCw3ICsyMzM4LDcg
QEAgbWFjcm8gY29tcGFyZU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBh
cmVBbmRTZXQsIGRvdWJsZUNvbXBhcmVBbmQKICAgICAgICAgZnEyZCB0MCwgZnQwCiAgICAgICAg
IGRvdWJsZUNvbXBhcmVBbmRTZXQoZnQwLCBmdDEsIHQwKQogICAgICAgICBvcnEgVmFsdWVGYWxz
ZSwgdDAKLSAgICAgICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKHQwKQogCiAgICAgLm9wMk5vdEludDoKICAgICAgICAgY2kyZHMgdDAsIGZ0MApAQCAtMjM0
Nyw3ICsyMzQ3LDcgQEAgbWFjcm8gY29tcGFyZU9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwg
aW50ZWdlckNvbXBhcmVBbmRTZXQsIGRvdWJsZUNvbXBhcmVBbmQKICAgICAgICAgZnEyZCB0MSwg
ZnQxCiAgICAgICAgIGRvdWJsZUNvbXBhcmVBbmRTZXQoZnQwLCBmdDEsIHQwKQogICAgICAgICBv
cnEgVmFsdWVGYWxzZSwgdDAKLSAgICAgICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQwKQogCiAgICAgLnNsb3c6CiAgICAgICAgIGNhbGxTbG93UGF0aChf
c2xvd19wYXRoXyVvcGNvZGVOYW1lJSkKQEAgLTIzNTcsMTQgKzIzNTcsMTQgQEAgZW5kCiAKIAog
bWFjcm8gY29tcGFyZVVuc2lnbmVkT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2Vy
Q29tcGFyZUFuZFNldCkKLSAgICBsbGludE9wV2l0aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9w
Y29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGlu
dE9wV2l0aERlc3RpbmF0aW9uKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAg
Z2V0KG1fbGhzLCB0MikKICAgICAgICAgZ2V0KG1fcmhzLCAgdDApCiAgICAgICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQxKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHNpemUsIHQyLCB0MCkKICAgICAgICAgaW50ZWdlckNvbXBhcmVBbmRTZXQodDAsIHQxLCB0
MCkKICAgICAgICAgb3JxIFZhbHVlRmFsc2UsIHQwCi0gICAgICAgIHJldHVybih0MCkKKyAgICAg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKICAgICBlbmQpCiBlbmQKIApAQCAtMjQ3
Niw3ICsyNDc2LDcgQEAgbWFjcm8gY2FsbEhlbHBlcihvcGNvZGVOYW1lLCBzbG93UGF0aCwgb3Bj
b2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCBkc3RWaXJ0dWEKIAogICAgIGxvYWRwICVvcGNv
ZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6bV9jYWxsTGlua0luZm8ubV9jYWxsZWVPckNvZGVCbG9ja1t0
NV0sIHQxCiAgICAgYnRweiB0MSwgKGNvbnN0ZXhwciBDYWxsTGlua0luZm86OnBvbHltb3JwaGlj
Q2FsbGVlTWFzayksIC5ub3RQb2x5bW9ycGhpYwotICAgICMgcHJlcGFyZUNhbGwgaW4gTExJbnQg
ZG9lcyBub3QgdW50YWcgcmV0dXJuIGFkZHJlc3MuIFNvIHdlIG5lZWQgdG8gdW50YWcgdGhhdCBp
biB0aGUgdHJhbXBvbGluZSBzZXBhcmF0ZWx5LgorICAgICMgcHJlcGFyZUNhbGwgaW4gTExJbnQg
ZG9lcyBub3QgdW50YWcgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCBhZGRyZXNzLiBTbyB3ZSBu
ZWVkIHRvIHVudGFnIHRoYXQgaW4gdGhlIHRyYW1wb2xpbmUgc2VwYXJhdGVseS4KICAgICAjIEJ1
dCB3ZSBzaG91bGQgbm90IHVudGFnIHRoYXQgZm9yIHBvbHltb3JwaGljIGNhbGwgY2FzZSBzaW5j
ZSBpdCBzaG91bGQgYmUgZG9uZSBpbiB0aGUgcG9seW1vcnBoaWMgdGh1bmsgc2lkZS4KICAgICBw
cmVwYXJlUG9seW1vcnBoaWMob3Bjb2RlTmFtZSwgc2l6ZSwgb3Bjb2RlU3RydWN0LCB2YWx1ZVBy
b2ZpbGVOYW1lLCBkc3RWaXJ0dWFsUmVnaXN0ZXIsIGRpc3BhdGNoLCBKU0VudHJ5UHRyVGFnKQog
ICAgIGptcCAuZ29Qb2x5bW9ycGhpYwpAQCAtMjUwMiw3ICsyNTAyLDcgQEAgbWFjcm8gY2FsbEhl
bHBlcihvcGNvZGVOYW1lLCBzbG93UGF0aCwgb3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1l
LCBkc3RWaXJ0dWEKIGVuZAogCiBtYWNybyBjb21tb25DYWxsT3Aob3Bjb2RlTmFtZSwgc2xvd1Bh
dGgsIG9wY29kZVN0cnVjdCwgcHJlcGFyZUNhbGwsIGludm9rZUNhbGwsIHByZXBhcmVQb2x5bW9y
cGhpYywgcHJlcGFyZVNsb3dDYWxsLCBwcm9sb2d1ZSkKLSAgICBsbGludE9wV2l0aE1ldGFkYXRh
KG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcGNvZGVOYW1lLCBvcGNv
ZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgICAgIHBy
b2xvZ3VlKG1hY3JvIChmaWVsZE5hbWUsIGRzdCkKQEAgLTI1NTQsNyArMjU1NCw3IEBAIG1hY3Jv
IGRvQ2FsbFZhcmFyZ3Mob3Bjb2RlTmFtZSwgc2l6ZSwgZ2V0LCBvcGNvZGVTdHJ1Y3QsIHZhbHVl
UHJvZmlsZU5hbWUsIGRzdFZpCiAKICAgICAgICAgICAgIGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpN
ZXRhZGF0YTo6bV9jYWxsTGlua0luZm8ubV9jYWxsZWVPckNvZGVCbG9ja1t0NV0sIHQxCiAgICAg
ICAgICAgICBidHB6IHQxLCAoY29uc3RleHByIENhbGxMaW5rSW5mbzo6cG9seW1vcnBoaWNDYWxs
ZWVNYXNrKSwgLm5vdFBvbHltb3JwaGljCi0gICAgICAgICAgICAjIHByZXBhcmVDYWxsIGluIExM
SW50IGRvZXMgbm90IHVudGFnIHJldHVybiBhZGRyZXNzLiBTbyB3ZSBuZWVkIHRvIHVudGFnIHRo
YXQgaW4gdGhlIHRyYW1wb2xpbmUgc2VwYXJhdGVseS4KKyAgICAgICAgICAgICMgcHJlcGFyZUNh
bGwgaW4gTExJbnQgZG9lcyBub3QgdW50YWcgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCBhZGRy
ZXNzLiBTbyB3ZSBuZWVkIHRvIHVudGFnIHRoYXQgaW4gdGhlIHRyYW1wb2xpbmUgc2VwYXJhdGVs
eS4KICAgICAgICAgICAgICMgQnV0IHdlIHNob3VsZCBub3QgdW50YWcgdGhhdCBmb3IgcG9seW1v
cnBoaWMgY2FsbCBjYXNlIHNpbmNlIGl0IHNob3VsZCBiZSBkb25lIGluIHRoZSBwb2x5bW9ycGhp
YyB0aHVuayBzaWRlLgogICAgICAgICAgICAgcHJlcGFyZVBvbHltb3JwaGljKG9wY29kZU5hbWUs
IHNpemUsIG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgZHN0VmlydHVhbFJlZ2lzdGVy
LCBkaXNwYXRjaCwgSlNFbnRyeVB0clRhZykKICAgICAgICAgICAgIGptcCAuZ29Qb2x5bW9ycGhp
YwpAQCAtMjU5MCwxMyArMjU5MCwxMyBAQCBsbGludE9wKG9wX3JldCwgT3BSZXQsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3By
aW1pdGl2ZSwgT3BUb1ByaW1pdGl2ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVy
bikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfdG9fcHJpbWl0aXZlLCBPcFRvUHJpbWl0aXZl
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV9zcmMsIHQyKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDIs
IHQwKQogICAgIGJ0cW56IHQwLCBub3RDZWxsTWFzaywgLm9wVG9QcmltaXRpdmVJc0ltbQogICAg
IGJiYWVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgT2JqZWN0VHlwZSwgLm9wVG9QcmltaXRpdmVTbG93
Q2FzZQogLm9wVG9QcmltaXRpdmVJc0ltbToKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCh0MCkKIAogLm9wVG9QcmltaXRpdmVTbG93Q2FzZToKICAgICBjYWxs
U2xvd1BhdGgoX3Nsb3dfcGF0aF90b19wcmltaXRpdmUpCkBAIC0yNjA0LDcgKzI2MDQsNyBAQCBs
bGludE9wV2l0aFJldHVybihvcF90b19wcmltaXRpdmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCByZQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3Rv
X3Byb3BlcnR5X2tleSwgT3BUb1Byb3BlcnR5S2V5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90b19wcm9wZXJ0eV9rZXksIE9w
VG9Qcm9wZXJ0eUtleSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fc3JjLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHNpemUsIHQyLCB0MCkKIApAQCAtMjYxMyw3ICsyNjEzLDcgQEAgbGxpbnRPcFdpdGhSZXR1
cm4ob3BfdG9fcHJvcGVydHlfa2V5LCBPcFRvUHJvcGVydHlLZXksIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGMKICAgICBiYm5lcSBKU0NlbGw6Om1fdHlwZVt0MF0sIFN0cmluZ1R5cGUsIC5vcFRv
UHJvcGVydHlLZXlTbG93CiAKIC5kb25lOgotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BUb1Byb3BlcnR5S2V5U2xvdzoKICAgICBjYWxsU2xv
d1BhdGgoX3Nsb3dfcGF0aF90b19wcm9wZXJ0eV9rZXkpCkBAIC0yNjIzLDcgKzI2MjMsNyBAQCBl
bmQpCiAKIGNvbW1vbk9wKGxsaW50X29wX2NhdGNoLCBtYWNybyAoKSBlbmQsIG1hY3JvIChzaXpl
KQogICAgICMgVGhpcyBpcyB3aGVyZSB3ZSBlbmQgdXAgZnJvbSB0aGUgSklUJ3MgdGhyb3cgdHJh
bXBvbGluZSAoYmVjYXVzZSB0aGUKLSAgICAjIG1hY2hpbmUgY29kZSByZXR1cm4gYWRkcmVzcyB3
aWxsIGJlIHNldCB0byBfbGxpbnRfb3BfY2F0Y2gpLCBhbmQgZnJvbQorICAgICMgbWFjaGluZSBj
b2RlIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2ggYWRkcmVzcyB3aWxsIGJlIHNldCB0byBfbGxp
bnRfb3BfY2F0Y2gpLCBhbmQgZnJvbQogICAgICMgdGhlIGludGVycHJldGVyJ3MgdGhyb3cgdHJh
bXBvbGluZSAoc2VlIF9sbGludF90aHJvd190cmFtcG9saW5lKS4KICAgICAjIFRoZSB0aHJvd2lu
ZyBjb2RlIG11c3QgaGF2ZSBrbm93biB0aGF0IHdlIHdlcmUgdGhyb3dpbmcgdG8gdGhlIGludGVy
cHJldGVyLAogICAgICMgYW5kIGhhdmUgc2V0IFZNOjp0YXJnZXRJbnRlcnByZXRlclBDRm9yVGhy
b3cuCkBAIC0yNzg1LDE2ICsyNzg1LDE2IEBAIG1hY3JvIHZhckluamVjdGlvbkNoZWNrKHNsb3dQ
YXRoLCBzY3JhdGNoKQogICAgIGJiZXEgV2F0Y2hwb2ludFNldDo6bV9zdGF0ZVtzY3JhdGNoXSwg
SXNJbnZhbGlkYXRlZCwgc2xvd1BhdGgKIGVuZAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3Jl
c29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwg
T3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDApCiAKICAgICBtYWNy
byBnZXRDb25zdGFudFNjb3BlKGRzdCkKICAgICAgICAgbG9hZHAgT3BSZXNvbHZlU2NvcGU6Ok1l
dGFkYXRhOjptX2NvbnN0YW50U2NvcGVbdDVdLCBkc3QKICAgICBlbmQKIAotICAgIG1hY3JvIHJl
dHVybkNvbnN0YW50U2NvcGUoKQorICAgIG1hY3JvIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2hD
b25zdGFudFNjb3BlKCkKICAgICAgICAgZ2V0Q29uc3RhbnRTY29wZSh0MCkKLSAgICAgICAgcmV0
dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogICAgIGVuZAog
CiAgICAgbWFjcm8gZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKHNsb3dQYXRoLCBnbG9i
YWxPYmplY3QsIHNjcmF0Y2gpCkBAIC0yODE0LDcgKzI4MTQsNyBAQCBsbGludE9wV2l0aE1ldGFk
YXRhKG9wX3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaAogICAgICAgICBidGlueiB0MiwgLnJlc29sdmVTY29wZUxvb3AKIAogICAgIC5yZXNv
bHZlU2NvcGVMb29wRW5kOgotICAgICAgICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2godDApCiAgICAgZW5kCiAKICAgICBsb2FkaSBPcFJlc29sdmVTY29wZTo6
TWV0YWRhdGE6Om1fcmVzb2x2ZVR5cGVbdDVdLCB0MApAQCAtMjgyMywxNSArMjgyMywxNSBAQCBs
bGludE9wV2l0aE1ldGFkYXRhKG9wX3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaAogICAgIGJpbmVxIHQwLCBHbG9iYWxQcm9wZXJ0eSwgLnJH
bG9iYWxWYXIKICAgICBnZXRDb25zdGFudFNjb3BlKHQwKQogICAgIGdsb2JhbExleGljYWxCaW5k
aW5nRXBvY2hDaGVjayguckR5bmFtaWMsIHQwLCB0MikKLSAgICByZXR1cm4odDApCisgICAgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogLnJHbG9iYWxWYXI6CiAgICAgYmluZXEgdDAs
IEdsb2JhbFZhciwgLnJHbG9iYWxMZXhpY2FsVmFyCi0gICAgcmV0dXJuQ29uc3RhbnRTY29wZSgp
CisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaENvbnN0YW50U2NvcGUoKQogCiAuckdsb2Jh
bExleGljYWxWYXI6CiAgICAgYmluZXEgdDAsIEdsb2JhbExleGljYWxWYXIsIC5yQ2xvc3VyZVZh
cgotICAgIHJldHVybkNvbnN0YW50U2NvcGUoKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2hDb25zdGFudFNjb3BlKCkKIAogLnJDbG9zdXJlVmFyOgogICAgIGJpbmVxIHQwLCBDbG9zdXJl
VmFyLCAuck1vZHVsZVZhcgpAQCAtMjgzOSwyNCArMjgzOSwyNCBAQCBsbGludE9wV2l0aE1ldGFk
YXRhKG9wX3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaAogCiAuck1vZHVsZVZhcjoKICAgICBiaW5lcSB0MCwgTW9kdWxlVmFyLCAuckdsb2Jh
bFByb3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrcwotICAgIHJldHVybkNvbnN0YW50U2NvcGUo
KQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2hDb25zdGFudFNjb3BlKCkKIAogLnJHbG9i
YWxQcm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25DaGVja3M6CiAgICAgYmluZXEgdDAsIEdsb2JhbFBy
b3BlcnR5V2l0aFZhckluamVjdGlvbkNoZWNrcywgLnJHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzCiAgICAgdmFySW5qZWN0aW9uQ2hlY2soLnJEeW5hbWljLCB0MikKICAgICBnZXRDb25z
dGFudFNjb3BlKHQwKQogICAgIGdsb2JhbExleGljYWxCaW5kaW5nRXBvY2hDaGVjayguckR5bmFt
aWMsIHQwLCB0MikKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCh0MCkKIAogLnJHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgogICAgIGJpbmVxIHQw
LCBHbG9iYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzLCAuckdsb2JhbExleGljYWxWYXJXaXRo
VmFySW5qZWN0aW9uQ2hlY2tzCiAgICAgdmFySW5qZWN0aW9uQ2hlY2soLnJEeW5hbWljLCB0MikK
LSAgICByZXR1cm5Db25zdGFudFNjb3BlKCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
Q29uc3RhbnRTY29wZSgpCiAKIC5yR2xvYmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVj
a3M6CiAgICAgYmluZXEgdDAsIEdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tz
LCAuckNsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tzCiAgICAgdmFySW5qZWN0aW9uQ2hl
Y2soLnJEeW5hbWljLCB0MikKLSAgICByZXR1cm5Db25zdGFudFNjb3BlKCkKKyAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoQ29uc3RhbnRTY29wZSgpCiAKIC5yQ2xvc3VyZVZhcldpdGhWYXJJ
bmplY3Rpb25DaGVja3M6CiAgICAgYmluZXEgdDAsIENsb3N1cmVWYXJXaXRoVmFySW5qZWN0aW9u
Q2hlY2tzLCAuckR5bmFtaWMKQEAgLTI4NzcsMTQgKzI4NzcsMTQgQEAgbWFjcm8gbG9hZFdpdGhT
dHJ1Y3R1cmVDaGVjayhvcGNvZGVTdHJ1Y3QsIGdldCwgc2xvd1BhdGgpCiAgICAgYnBuZXEgdDIs
IHQxLCBzbG93UGF0aAogZW5kCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2Nv
cGUsIE9wR2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9wR2V0RnJv
bVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgbWFjcm8gZ2V0UHJv
cGVydHkoKQogICAgICAgICBsb2FkcCBPcEdldEZyb21TY29wZTo6TWV0YWRhdGE6Om1fb3BlcmFu
ZFt0NV0sIHQxCiAgICAgICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDEsIHQwLCB0
MikKICAgICAgICAgdmFsdWVQcm9maWxlKE9wR2V0RnJvbVNjb3BlLCBtX3Byb2ZpbGUsIHQ1LCB0
MikKLSAgICAgICAgcmV0dXJuKHQyKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KHQyKQogICAgIGVuZAogCiAgICAgbWFjcm8gZ2V0R2xvYmFsVmFyKHRkekNoZWNrSWZOZWNlc3Nh
cnkpCkBAIC0yODkyLDE0ICsyODkyLDE0IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zy
b21fc2NvcGUsIE9wR2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAg
ICAgIGxvYWRxIFt0MF0sIHQwCiAgICAgICAgIHRkekNoZWNrSWZOZWNlc3NhcnkodDApCiAgICAg
ICAgIHZhbHVlUHJvZmlsZShPcEdldEZyb21TY29wZSwgbV9wcm9maWxlLCB0NSwgdDApCi0gICAg
ICAgIHJldHVybih0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKICAg
ICBlbmQKIAogICAgIG1hY3JvIGdldENsb3N1cmVWYXIoKQogICAgICAgICBsb2FkcCBPcEdldEZy
b21TY29wZTo6TWV0YWRhdGE6Om1fb3BlcmFuZFt0NV0sIHQxCiAgICAgICAgIGxvYWRxIEpTTGV4
aWNhbEVudmlyb25tZW50X3ZhcmlhYmxlc1t0MCwgdDEsIDhdLCB0MAogICAgICAgICB2YWx1ZVBy
b2ZpbGUoT3BHZXRGcm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQwKQotICAgICAgICByZXR1cm4o
dDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAgICAgZW5kCiAKICAg
ICBsb2FkaSBPcEdldEZyb21TY29wZTo6TWV0YWRhdGE6Om1fZ2V0UHV0SW5mbyArIEdldFB1dElu
Zm86Om1fb3BlcmFuZFt0NV0sIHQwCkBAIC0yOTU2LDcgKzI5NTYsNyBAQCBsbGludE9wV2l0aE1l
dGFkYXRhKG9wX2dldF9mcm9tX3Njb3BlLCBPcEdldEZyb21TY29wZSwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0YwogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3RvX3Njb3Bl
LCBPcFB1dFRvU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0
dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29wZSwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKQogICAgIG1hY3JvIHB1dFByb3BlcnR5KCkKICAgICAgICAgZ2V0KG1fdmFsdWUsIHQx
KQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MikKQEAgLTMwODcs
MTEgKzMwODcsMTEgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0
VG9TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG0KIGVuZCkKIAogCi1sbGludE9w
V2l0aFByb2ZpbGUob3BfZ2V0X2Zyb21fYXJndW1lbnRzLCBPcEdldEZyb21Bcmd1bWVudHMsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3Bf
Z2V0X2Zyb21fYXJndW1lbnRzLCBPcEdldEZyb21Bcmd1bWVudHMsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGxvYWRWYXJpYWJsZShn
ZXQsIG1fYXJndW1lbnRzLCB0MCkKICAgICBnZXR1KHNpemUsIE9wR2V0RnJvbUFyZ3VtZW50cywg
bV9pbmRleCwgdDEpCiAgICAgbG9hZHEgRGlyZWN0QXJndW1lbnRzX3N0b3JhZ2VbdDAsIHQxLCA4
XSwgdDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkK
IGVuZCkKIAogCkBAIC0zMTA2LDE0ICszMTA2LDE0IEBAIGxsaW50T3Aob3BfcHV0X3RvX2FyZ3Vt
ZW50cywgT3BQdXRUb0FyZ3VtZW50cywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCiBlbmQp
CiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3BhcmVudF9zY29wZSwgT3BHZXRQYXJlbnRT
Y29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVz
dGluYXRpb24ob3BfZ2V0X3BhcmVudF9zY29wZSwgT3BHZXRQYXJlbnRTY29wZSwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZFZh
cmlhYmxlKGdldCwgbV9zY29wZSwgdDApCiAgICAgbG9hZHAgSlNTY29wZTo6bV9uZXh0W3QwXSwg
dDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIGVu
ZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3Byb2ZpbGVfdHlwZSwgT3BQcm9maWxlVHlw
ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9w
V2l0aE1ldGFkYXRhKG9wX3Byb2ZpbGVfdHlwZSwgT3BQcm9maWxlVHlwZSwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQogICAgIGxvYWRwIENvZGVCbG9jazo6bV92bVt0MV0s
IHQxCiAgICAgIyB0MSBpcyBob2xkaW5nIHRoZSBwb2ludGVyIHRvIHRoZSB0eXBlUHJvZmlsZXJM
b2cuCkBAIC0zMTU1LDE0ICszMTU1LDE0IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmls
ZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwKIGVuZCkK
IAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2Zp
bGVDb250cm9sRmxvdywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2Zp
bGVDb250cm9sRmxvdywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXRE
ZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQ1LCB0MCkKICAgICBsb2FkcCBP
cFByb2ZpbGVDb250cm9sRmxvdzo6TWV0YWRhdGE6Om1fYmFzaWNCbG9ja0xvY2F0aW9uW3Q1XSwg
dDAKICAgICBhZGRxIDEsIEJhc2ljQmxvY2tMb2NhdGlvbjo6bV9leGVjdXRpb25Db3VudFt0MF0K
ICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2dldF9yZXN0X2xl
bmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJu
KQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfcmVzdF9sZW5ndGgsIE9wR2V0UmVzdExl
bmd0aCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlz
W2Nmcl0sIHQwCiAgICAgc3ViaSAxLCB0MAogICAgIGdldHUoc2l6ZSwgT3BHZXRSZXN0TGVuZ3Ro
LCBtX251bVBhcmFtZXRlcnNUb1NraXAsIHQxKQpAQCAtMzE3MywxMSArMzE3MywxMSBAQCBsbGlu
dE9wV2l0aFJldHVybihvcF9nZXRfcmVzdF9sZW5ndGgsIE9wR2V0UmVzdExlbmd0aCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0YwogICAgIG1vdmUgMCwgdDAKIC5ib3hVcDoKICAgICBvcnEgbnVt
YmVyVGFnLCB0MAotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3Jfb3BlbiwgT3BJ
dGVyYXRvck9wZW4sIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJu
KQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVuLCBPcEl0ZXJhdG9yT3Blbiwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKQogICAgIG1hY3JvIGZhc3ROYXJyb3coKQogICAgICAgICBjYWxsU2xvd1BhdGgoX2l0
ZXJhdG9yX29wZW5fdHJ5X2Zhc3RfbmFycm93KQogICAgIGVuZApAQCAtMzIzMSw3ICszMjMxLDcg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVuLCBPcEl0ZXJhdG9yT3Blbiwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKIAogZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRh
KG9wX2l0ZXJhdG9yX25leHQsIE9wSXRlcmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3Jf
bmV4dCwgT3BJdGVyYXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKIAogICAgIGxvYWRWYXJpYWJsZShnZXQsIG1f
bmV4dCwgdDApCiAgICAgYnRxbnogdDAsIHQwLCAuaXRlcmF0b3JOZXh0R2VuZXJpYwpAQCAtMzMx
NSw3ICszMzE1LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0
ZXJhdG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRjaCgpCiBl
bmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2dldF9wcm9wZXJ0eV9lbnVtZXJhdG9yLCBPcEdl
dFByb3BlcnR5RW51bWVyYXRvciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikK
K2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0
UHJvcGVydHlFbnVtZXJhdG9yLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9iYXNlLCB0MSkKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbChzaXplLCB0MSwgdDAsIC5zbG93UGF0aCkKIApAQCAtMzMzMiw3ICszMzMy
LDcgQEAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfZ2V0X3Byb3BlcnR5X2VudW1lcmF0b3IsIE9wR2V0
UHJvcGVydHlFbnVtZXJhdG9yLCBtYWNybyAoc2kKICAgICBidHB6IHQxLCAuc2xvd1BhdGgKICAg
ICBidHBueiB0MSwgKGNvbnN0ZXhwciBTdHJ1Y3R1cmVSYXJlRGF0YTo6Y2FjaGVkUHJvcGVydHlO
YW1lRW51bWVyYXRvcklzVmFsaWRhdGVkVmlhVHJhdmVyc2luZ0ZsYWcpLCAuc2xvd1BhdGgKIAot
ICAgIHJldHVybih0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxKQogCiAuc2xv
d1BhdGg6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfZ2V0X3Byb3BlcnR5X2VudW1lcmF0
b3IpCkBAIC0zMzcwLDcgKzMzNzAsNyBAQCBsbGludE9wKG9wX2VudW1lcmF0b3JfbmV4dCwgT3BF
bnVtZXJhdG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCiAgICAgZGlzcGF0Y2go
KQogZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCwg
T3BFbnVtZXJhdG9yR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2dldF9ieV92YWws
IE9wRW51bWVyYXRvckdldEJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogCiAg
ICAgbG9hZFZhcmlhYmxlKGdldCwgbV9tb2RlLCB0MCkKQEAgLTM0MDYsMTQgKzM0MDYsMTQgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2dldF9ieV92YWwsIE9wRW51bWVyYXRv
ckdldEJ5VmFsLCBtYWNybyAoc2l6ZSwKIAogLmRvbmU6CiAgICAgdmFsdWVQcm9maWxlKE9wRW51
bWVyYXRvckdldEJ5VmFsLCBtX3Byb2ZpbGUsIHQ1LCB0MikKLSAgICByZXR1cm4odDIpCisgICAg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MikKIAogLmdldFNsb3dQYXRoOgogICAgIGNhbGxT
bG93UGF0aChfc2xvd19wYXRoX2VudW1lcmF0b3JfZ2V0X2J5X3ZhbCkKICAgICBkaXNwYXRjaCgp
CiBlbmQpCiAKLW1hY3JvIGhhc1Byb3BlcnR5SW1wbChvcGNvZGVTdHJ1Y3QsIHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4sIHNsb3dQYXRoKQorbWFjcm8gaGFzUHJvcGVydHlJ
bXBsKG9wY29kZVN0cnVjdCwgc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gsIHNsb3dQYXRoKQogICAgIG1ldGFkYXRhKHQ1LCB0MCkKIAogICAg
IGxvYWRWYXJpYWJsZShnZXQsIG1fbW9kZSwgdDApCkBAIC0zNDMyLDI2ICszNDMyLDI2IEBAIG1h
Y3JvIGhhc1Byb3BlcnR5SW1wbChvcGNvZGVTdHJ1Y3QsIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCByZXR1cm4sIHNsb3dQCiAgICAgYmluZXEgdDIsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJ
RFt0MF0sIC5jYWxsU2xvd1BhdGgKIAogICAgIG1vdmUgVmFsdWVUcnVlLCB0MgotICAgIHJldHVy
bih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogCiAuY2FsbFNsb3dQYXRo
OgogICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKICAgICBkaXNwYXRjaCgpCiBlbmQKIAotbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2luX2J5X3ZhbCwgT3BFbnVtZXJhdG9ySW5C
eVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCi0gICAg
aGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckluQnlWYWwsIHNpemUsIGdldCwgZGlzcGF0Y2gs
IG1ldGFkYXRhLCByZXR1cm4sIF9zbG93X3BhdGhfZW51bWVyYXRvcl9pbl9ieV92YWwpCitsbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfaW5fYnlfdmFsLCBPcEVudW1lcmF0b3JJbkJ5
VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCisgICAgaGFzUHJvcGVydHlJbXBsKE9wRW51bWVyYXRvckluQnlWYWwsIHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoLCBf
c2xvd19wYXRoX2VudW1lcmF0b3JfaW5fYnlfdmFsKQogZW5kKQogCi1sbGludE9wV2l0aE1ldGFk
YXRhKG9wX2VudW1lcmF0b3JfaGFzX293bl9wcm9wZXJ0eSwgT3BFbnVtZXJhdG9ySGFzT3duUHJv
cGVydHksIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQotICAg
IGhhc1Byb3BlcnR5SW1wbChPcEVudW1lcmF0b3JIYXNPd25Qcm9wZXJ0eSwgc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybiwgX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX2hhc19vd25f
cHJvcGVydHkpCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2VudW1lcmF0b3JfaGFzX293bl9wcm9w
ZXJ0eSwgT3BFbnVtZXJhdG9ySGFzT3duUHJvcGVydHksIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKKyAgICBoYXNQcm9wZXJ0
eUltcGwoT3BFbnVtZXJhdG9ySGFzT3duUHJvcGVydHksIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoLCBfc2xvd19wYXRoX2VudW1lcmF0b3Jf
aGFzX293bl9wcm9wZXJ0eSkKIGVuZCkKIAotbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9pbnRl
cm5hbF9maWVsZCwgT3BHZXRJbnRlcm5hbEZpZWxkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9pbnRlcm5hbF9maWVsZCwgT3BH
ZXRJbnRlcm5hbEZpZWxkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCkKICAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX2Jhc2UsIHQxKQogICAgIGdl
dHUoc2l6ZSwgT3BHZXRJbnRlcm5hbEZpZWxkLCBtX2luZGV4LCB0MikKICAgICBsb2FkcSBKU0lu
dGVybmFsRmllbGRPYmplY3RJbXBsX2ludGVybmFsRmllbGRzW3QxLCB0MiwgU2xvdFNpemVdLCB0
MAotICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5k
KQogCiBsbGludE9wKG9wX3B1dF9pbnRlcm5hbF9maWVsZCwgT3BQdXRJbnRlcm5hbEZpZWxkLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454168</attachid>
            <date>2022-03-08 16:01:42 -0800</date>
            <delta_ts>2022-03-08 22:38:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237624-20220308190140.patch</filename>
            <type>text/plain</type>
            <size>85753</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
NTVjOGY5NWIwZWM2MmJjYTExYTE2NmEyYWJkNWVmYTM2N2QxOGI1Li4wYWQ4YmU5MGEwMWI5YTFi
M2IwODQ3NjgzNzQxYzc0YThlNTM1ODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW5hbWUgTExJbnQgbWFjcm9zIHVzaW5nIHJldHVybiB0byBkZXN0
aW5hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3NjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpcyBqdXN0IGEgcmVmYWN0b3IvcmVuYW1lIHBhdGNoLCBubyBiZWhhdmlvcmFs
CisgICAgICAgIGNoYW5nZS4gSSBmaW5kIGl0IGNvbmZ1c2luZyB0aGF0IHRoZSBMTEludCBoYXMg
bWFjcm8gcGFyYW1ldGVycworICAgICAgICBuYW1lZCBgcmV0dXJuYCBidXQgY2xlYXJseSBzaG91
bGRuJ3QgZG8gYSBmdW5jdGlvbiByZXR1cm4KKyAgICAgICAgKGUuZy4gZ2V0X2J5X2lkKS4gIFRo
aXMgcGF0Y2ggcmVuYW1lcyB0aG9zZSBwYXJlbWV0ZXJzIHRvCisgICAgICAgICJzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoIiB0byBiZXR0ZXIgZGVzY3JpYmUgd2hhdCdzIGdvaW5nCisgICAgICAg
IG9uLiBBZGRpdGlvbmFsbHksIHRoZSBgbGxpbnRPcFdpdGhSZXR1cm5gIGhhcyBiZWVuIHJlbmFt
ZWQgdG8KKyAgICAgICAgYGxsaW50T3BXaXRoRGVzdGluYXRpb25gIGZvciBmdXJ0aGVyIGNsYXJp
dHkuCisKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXI2NC5hc206CisKIDIwMjItMDMtMDggIFNhYW0gQmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gRW5hYmxlIFRoaW5MVE8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRl
eCBhOGU3YzczOTlkNTgxYTU5NjBkMGFhN2FhNzI0MzM1ZGIwMzU0Yzc1Li4wMmJiNjhmYjY3Njcx
ZjA4ZWUwNGVmODJlY2UyODBhOGU2YmMyY2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCkBAIC00OTcsMjUgKzQ5NywyNSBA
QCBtYWNybyBsbGludE9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgZW5kKQog
ZW5kCiAKLW1hY3JvIGxsaW50T3BXaXRoUmV0dXJuKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwg
Zm4pCittYWNybyBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wY29kZU5hbWUsIG9wY29kZVN0cnVj
dCwgZm4pCiAgICAgbGxpbnRPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvKHNpemUs
IGdldCwgZGlzcGF0Y2gpCi0gICAgICAgIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgbWFjcm8g
KHJldHVybikKLSAgICAgICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAg
ICAgICAgbWFrZURlc3RpbmF0aW9uKGdldCwgZGlzcGF0Y2gsIG1hY3JvIChzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQorICAgICAgICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZW5kKQogICAgIGVuZCkKIGVuZAogCiBtYWNy
byBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCi0gICAg
bGxpbnRPcFdpdGhSZXR1cm4ob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWFjcm8gbWV0YShkc3QsIHNjcmF0Y2gpCiAgICAg
ICAgICAgICBtZXRhZGF0YShzaXplLCBvcGNvZGVTdHJ1Y3QsIGRzdCwgc2NyYXRjaCkKICAgICAg
ICAgZW5kCi0gICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGEsIHJldHVybikKKyAg
ICAgICAgZm4oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBlbmQpCiBlbmQKIAogbWFjcm8gbGxpbnRPcFdpdGhKdW1wKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgaW1wbCkKLSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgbWFjcm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVy
bikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFj
cm8oc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgICAgIG1hY3JvIGp1bXAoZmllbGROYW1lKQogICAgICAgICAgICAgZ2V0KGZpZWxk
TmFtZSwgdDApCiAgICAgICAgICAgICBqdW1wSW1wbChkaXNwYXRjaEluZGlyZWN0LCB0MCkKQEAg
LTUyNyw3ICs1MjcsNyBAQCBlbmQKIAogbWFjcm8gbGxpbnRPcFdpdGhQcm9maWxlKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1
cm4pCi0gICAgICAgIG1ha2VSZXR1cm5Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwgbWV0YWRh
dGEsIGRpc3BhdGNoLCBtYWNybyAocmV0dXJuUHJvZmlsZWQpCisgICAgICAgIG1ha2VEZXN0aW5h
dGlvblByb2ZpbGVkKG9wY29kZVN0cnVjdCwgZ2V0LCBtZXRhZGF0YSwgZGlzcGF0Y2gsIG1hY3Jv
IChyZXR1cm5Qcm9maWxlZCkKICAgICAgICAgICAgIGZuKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJl
dHVyblByb2ZpbGVkKQogICAgICAgICBlbmQpCiAgICAgZW5kKQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRl
eCBhY2U4NzExNjcyZTcwMjE2ZDM5YTQ4ZGYxNWZkNjZkNmI1N2M0MTFlLi5lMGZiMmNhYzBmMmEy
YzQ0N2E2YTNkZDIwZDgzNDY1ZGNiYjBiMzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtNTAsNyAr
NTAsNyBAQCBtYWNybyBnZXRPcGVyYW5kV2lkZTMySlMob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUs
IGRzdCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2lu
ZGV4ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZUpTW1BCLCBQQywgMV0sIGRzdAogZW5kCiAKLW1h
Y3JvIG1ha2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb24o
Z2V0LCBkaXNwYXRjaCwgZm4pCiAgICAgZm4obWFjcm8odGFnLCBwYXlsb2FkKQogICAgICAgICBt
b3ZlIHRhZywgdDUKICAgICAgICAgbW92ZSBwYXlsb2FkLCB0MwpAQCAtNjEsNyArNjEsNyBAQCBt
YWNybyBtYWtlUmV0dXJuKGdldCwgZGlzcGF0Y2gsIGZuKQogICAgIGVuZCkKIGVuZAogCi1tYWNy
byBtYWtlUmV0dXJuUHJvZmlsZWQob3Bjb2RlU3RydWN0LCBnZXQsIG1ldGFkYXRhLCBkaXNwYXRj
aCwgZm4pCittYWNybyBtYWtlRGVzdGluYXRpb25Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwg
bWV0YWRhdGEsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyAodGFnLCBwYXlsb2FkKQogICAg
ICAgICBtb3ZlIHRhZywgdDEKICAgICAgICAgbW92ZSBwYXlsb2FkLCB0MApAQCAtODE2LDM0ICs4
MTYsMzQgQEAgX2xsaW50X29wX2VudGVyOgogICAgIGRpc3BhdGNoT3AobmFycm93LCBvcF9lbnRl
cikKIAogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2FyZ3VtZW50LCBPcEdldEFyZ3VtZW50
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxl
KG9wX2dldF9hcmd1bWVudCwgT3BHZXRBcmd1bWVudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1faW5kZXgsIHQyKQogICAg
IGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1tjZnJdLCB0
MAogICAgIGJpbHRlcSB0MCwgdDIsIC5vcEdldEFyZ3VtZW50T3V0T2ZCb3VuZHMKICAgICBsb2Fk
aSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCiAgICAgbG9h
ZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XSwgdDMKLSAg
ICByZXR1cm4gKHQwLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwLCB0MykK
IAogLm9wR2V0QXJndW1lbnRPdXRPZkJvdW5kczoKLSAgICByZXR1cm4gKFVuZGVmaW5lZFRhZywg
MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKFVuZGVmaW5lZFRhZywgMCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5h
dGlvbihvcF9hcmd1bWVudF9jb3VudCwgT3BBcmd1bWVudENvdW50LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkaSBQYXlsb2Fk
T2Zmc2V0ICsgQXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXNbY2ZyXSwgdDAKICAgICBzdWJpIDEs
IHQwCi0gICAgcmV0dXJuKEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKEludDMyVGFnLCB0MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9nZXRfc2Nv
cGUsIE9wR2V0U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGlu
dE9wV2l0aERlc3RpbmF0aW9uKG9wX2dldF9zY29wZSwgT3BHZXRTY29wZSwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZGkgQ2Fs
bGVlICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MAogICAgIGxvYWRwIEpTQ2FsbGVlOjptX3Njb3Bl
W3QwXSwgdDAKLSAgICByZXR1cm4gKENlbGxUYWcsIHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2goQ2VsbFRhZywgdDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF90
b190aGlzLCBPcFRvVGhpcywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBy
ZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RvX3RoaXMsIE9wVG9UaGlzLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gp
CiAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICBiaW5lcSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0s
IENlbGxUYWcsIC5vcFRvVGhpc1Nsb3cKICAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAs
IDhdLCB0MApAQCAtODcwLDE5ICs4NzAsMTkgQEAgbGxpbnRPcChvcF9jaGVja190ZHosIE9wQ2hl
Y2tUZHosIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQogZW5kKQogCiAKLWxsaW50T3BXaXRo
UmV0dXJuKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX21vdiwgT3BNb3YsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDEp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDIsIHQzKQotICAgIHJldHVy
bih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MiwgdDMpCiBlbmQpCiAK
IAotbGxpbnRPcFdpdGhSZXR1cm4ob3Bfbm90LCBPcE5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bfbm90LCBPcE5vdCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
Z2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwg
dDIsIHQzKQogICAgIGJpbmVxIHQyLCBCb29sZWFuVGFnLCAub3BOb3RTbG93CiAgICAgeG9yaSAx
LCB0MwotICAgIHJldHVybih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MiwgdDMpCiAKIC5vcE5vdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfbm90KQpA
QCAtODkxLDcgKzg5MSw3IEBAIGVuZCkKIAogCiBtYWNybyBlcXVhbGl0eUNvbXBhcmlzb25PcChv
cGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJpc29uKQotICAgIGxsaW50T3BX
aXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfJW9wY29k
ZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQyKQogICAgICAgICBnZXQo
bV9saHMsIHQwKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0Mywg
dDEpCkBAIC05MDAsNyArOTAwLDcgQEAgbWFjcm8gZXF1YWxpdHlDb21wYXJpc29uT3Aob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyaXNvbikKICAgICAgICAgYmllcSB0Miwg
Q2VsbFRhZywgLm9wRXFTbG93CiAgICAgICAgIGJpYiB0MiwgTG93ZXN0VGFnLCAub3BFcVNsb3cK
ICAgICAgICAgaW50ZWdlckNvbXBhcmlzb24odDAsIHQxLCB0MCkKLSAgICAgICAgcmV0dXJuKEJv
b2xlYW5UYWcsIHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5U
YWcsIHQwKQogCiAgICAgLm9wRXFTbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0
aF8lb3Bjb2RlTmFtZSUpCkBAIC05MzIsNyArOTMyLDcgQEAgZW5kCiAKIAogbWFjcm8gZXF1YWxO
dWxsQ29tcGFyaXNvbk9wKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCi0gICAgbGxpbnRP
cFdpdGhSZXR1cm4ob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRpb24ob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgICAgIGFzc2VydE5v
dENvbnN0YW50KHNpemUsIHQwKQogICAgICAgICBsb2FkaSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0s
IHQxCkBAIC05NTMsNyArOTUzLDcgQEAgbWFjcm8gZXF1YWxOdWxsQ29tcGFyaXNvbk9wKG9wY29k
ZU5hbWUsIG9wY29kZVN0cnVjdCwgZm4pCiAgICAgICAgIG9yaSB0MiwgdDEKICAgICAub3BFcU51
bGxOb3RJbW1lZGlhdGU6CiAgICAgICAgIGZuKHQxKQotICAgICAgICByZXR1cm4oQm9vbGVhblRh
ZywgdDEpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgdDEp
CiAgICAgZW5kKQogZW5kCiAKQEAgLTk2MywxNyArOTYzLDE3IEBAIGVxdWFsTnVsbENvbXBhcmlz
b25PcChvcF9uZXFfbnVsbCwgT3BOZXFOdWxsLAogICAgIG1hY3JvICh2YWx1ZSkgeG9yaSAxLCB2
YWx1ZSBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfdW5kZWZpbmVkX29yX251bGws
IE9wSXNVbmRlZmluZWRPck51bGwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX3VuZGVmaW5lZF9vcl9udWxsLCBPcElzVW5k
ZWZpbmVkT3JOdWxsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlVGFnKHNpemUsIHQwLCB0MSkKICAgICBvcmkgMSwgdDEKICAgICBjaWVxIHQxLCBOdWxs
VGFnLCB0MQotICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogZW5kKQogCiAKIG1hY3JvIHN0cmljdEVxT3Aob3Bj
b2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBlcXVhbGl0eU9wZXJhdGlvbikKLSAgICBsbGludE9wV2l0
aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wXyVvcGNvZGVO
YW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1f
bGhzLCB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQx
KQpAQCAtOTg1LDcgKzk4NSw3IEBAIG1hY3JvIHN0cmljdEVxT3Aob3Bjb2RlTmFtZSwgb3Bjb2Rl
U3RydWN0LCBlcXVhbGl0eU9wZXJhdGlvbikKICAgICAgICAgYmJiIEpTQ2VsbDo6bV90eXBlW3Qx
XSwgT2JqZWN0VHlwZSwgLnNsb3cKICAgICAubm90U3RyaW5nT3JTeW1ib2w6CiAgICAgICAgIGVx
dWFsaXR5T3BlcmF0aW9uKHQwLCB0MSwgdDApCi0gICAgICAgIHJldHVybihCb29sZWFuVGFnLCB0
MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MCkKIAog
ICAgIC5zbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUp
CkBAIC0xMDM2LDcgKzEwMzYsNyBAQCBzdHJpY3RFcXVhbGl0eUp1bXBPcChqbnN0cmljdGVxLCBP
cEpuc3RyaWN0ZXEsCiAKIAogbWFjcm8gcHJlT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBp
bnRlZ2VyT3BlcmF0aW9uKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUl
LCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0
dXJuKQorICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1
Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fc3JjRHN0LCB0MCkKICAgICAgICAgYmluZXEgVGFn
T2Zmc2V0W2NmciwgdDAsIDhdLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldFtjZnIsIHQwLCA4XSwgdDIKQEAgLTEwNTMsMjYgKzEwNTMsMjYgQEAgbWFjcm8gcHJl
T3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyT3BlcmF0aW9uKQogZW5kCiAKIAot
bGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWJlciwgT3BUb051bWJlciwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF90b19udW1iZXIs
IE9wVG9OdW1iZXIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUoc2l6ZSwgdDAsIHQyLCB0MykKICAgICBiaWVxIHQyLCBJbnQzMlRhZywgLm9wVG9OdW1i
ZXJJc0ludAogICAgIGJpYWVxIHQyLCBMb3dlc3RUYWcsIC5vcFRvTnVtYmVyU2xvdwogLm9wVG9O
dW1iZXJJc0ludDoKLSAgICByZXR1cm4odDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2godDIsIHQzKQogCiAub3BUb051bWJlclNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93
X3BhdGhfdG9fbnVtYmVyKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhQcm9m
aWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmljLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX251bWVyaWMsIE9wVG9OdW1lcmlj
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUs
IHQwLCB0MiwgdDMpCiAgICAgYmllcSB0MiwgSW50MzJUYWcsIC5vcFRvTnVtZXJpY0lzSW50CiAg
ICAgYmlhZXEgdDIsIExvd2VzdFRhZywgLm9wVG9OdW1lcmljU2xvdwogLm9wVG9OdW1lcmljSXNJ
bnQ6Ci0gICAgcmV0dXJuKHQyLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQy
LCB0MykKIAogLm9wVG9OdW1lcmljU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90
b19udW1lcmljKQpAQCAtMTA4MCwxMyArMTA4MCwxMyBAQCBsbGludE9wV2l0aFByb2ZpbGUob3Bf
dG9fbnVtZXJpYywgT3BUb051bWVyaWMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1
cgogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0cmluZywgT3BUb1N0cmluZywg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRp
b24ob3BfdG9fc3RyaW5nLCBPcFRvU3RyaW5nLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MiwgdDMpCiAgICAgYmluZXEgdDIsIENl
bGxUYWcsIC5vcFRvU3RyaW5nU2xvdwogICAgIGJibmVxIEpTQ2VsbDo6bV90eXBlW3QzXSwgU3Ry
aW5nVHlwZSwgLm9wVG9TdHJpbmdTbG93CiAub3BUb1N0cmluZ0lzU3RyaW5nOgotICAgIHJldHVy
bih0MiwgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MiwgdDMpCiAKIC5vcFRv
U3RyaW5nU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19zdHJpbmcpCkBAIC0x
MDk0LDEyICsxMDk0LDEyIEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0cmluZywgT3BUb1N0
cmluZywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKIGVuZCkKIAogCi1sbGlu
dE9wV2l0aFByb2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX3RvX29iamVjdCwgT3BU
b09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MCwgdDIsIHQzKQogICAgIGJpbmVxIHQyLCBDZWxsVGFnLCAub3BUb09iamVjdFNs
b3cKICAgICBiYmIgSlNDZWxsOjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCAub3BUb09iamVjdFNs
b3cKLSAgICByZXR1cm4odDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIs
IHQzKQogCiAub3BUb09iamVjdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdG9f
b2JqZWN0KQpAQCAtMTEwNywxOSArMTEwNywxOSBAQCBsbGludE9wV2l0aFByb2ZpbGUob3BfdG9f
b2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQog
ZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfbmVnYXRlLCBPcE5lZ2F0ZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkK
ICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSwgdDIpCiAgICAgYmluZXEg
dDEsIEludDMyVGFnLCAub3BOZWdhdGVTcmNOb3RJbnQKICAgICBidGl6IHQyLCAweDdmZmZmZmZm
LCAub3BOZWdhdGVTbG93CiAgICAgbmVnaSB0MgogICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxl
KHNpemUsIE9wTmVnYXRlLCBBcml0aFByb2ZpbGVJbnQsIHQwLCB0MykKLSAgICByZXR1cm4gKElu
dDMyVGFnLCB0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEludDMyVGFnLCB0MikK
IC5vcE5lZ2F0ZVNyY05vdEludDoKICAgICBiaWEgdDEsIExvd2VzdFRhZywgLm9wTmVnYXRlU2xv
dwogICAgIHhvcmkgMHg4MDAwMDAwMCwgdDEKICAgICB1cGRhdGVVbmFyeUFyaXRoUHJvZmlsZShz
aXplLCBPcE5lZ2F0ZSwgQXJpdGhQcm9maWxlTnVtYmVyLCB0MCwgdDMpCi0gICAgcmV0dXJuKHQx
LCB0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MikKIAogLm9wTmVnYXRl
U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9uZWdhdGUpCkBAIC0xMTI4LDcgKzEx
MjgsNyBAQCBlbmQpCiAKIAogbWFjcm8gYmluYXJ5T3BDdXN0b21TdG9yZShvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uKQot
ICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorICAgIGxsaW50T3BX
aXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAg
ICAgZ2V0KG1fcmhzLCB0MikKICAgICAgICAgZ2V0KG1fbGhzLCB0MCkKICAgICAgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQxKQpAQCAtMTIyNSw3ICsxMjI1LDcgQEAg
YmluYXJ5T3BDdXN0b21TdG9yZShkaXYsIE9wRGl2LAogICAgIGVuZCwKICAgICBtYWNybyAobGhz
LCByaHMpIGRpdmQgcmhzLCBsaHMgZW5kKQogCi1sbGludE9wV2l0aFJldHVybihvcF9wb3csIE9w
UG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF9wb3csIE9wUG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9yaHMsIHQyKQogICAgIGdldChtX2xocywg
dDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDMsIHQxKQpAQCAtMTI2
MiwxMSArMTI2MiwxMSBAQCBsbGludE9wV2l0aFJldHVybihvcF9wb3csIE9wUG93LCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxp
bnRPcFdpdGhSZXR1cm4ob3BfdW5zaWduZWQsIE9wVW5zaWduZWQsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3Vuc2lnbmVkLCBP
cFVuc2lnbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlUGF5bG9hZChzaXplLCB0MSwgSW50MzJUYWcsIHQyLCAub3BVbnNpZ25lZFNsb3cpCiAgICAg
YmlsdCB0MiwgMCwgLm9wVW5zaWduZWRTbG93Ci0gICAgcmV0dXJuIChJbnQzMlRhZywgdDIpCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChJbnQzMlRhZywgdDIpCiAub3BVbnNpZ25lZFNs
b3c6CiAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfdW5zaWduZWQpCiAgICAgZGlzcGF0Y2go
KQpAQCAtMTI3NCw3ICsxMjc0LDcgQEAgZW5kKQogCiAKIG1hY3JvIGNvbW1vbkJpdE9wKG9wS2lu
ZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCi0gICAgb3BLaW5kKG9wXyVv
cGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0
dXJuKQorICAgIG9wS2luZChvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdl
dChtX3JocywgdDIpCiAgICAgICAgIGdldChtX2xocywgdDApCiAgICAgICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUoc2l6ZSwgdDIsIHQzLCB0MSkKQEAgLTEyODIsNyArMTI4Miw3IEBAIG1hY3Jv
IGNvbW1vbkJpdE9wKG9wS2luZCwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24p
CiAgICAgICAgIGJpbmVxIHQzLCBJbnQzMlRhZywgLnNsb3cKICAgICAgICAgYmluZXEgdDIsIElu
dDMyVGFnLCAuc2xvdwogICAgICAgICBvcGVyYXRpb24odDAsIHQxKQotICAgICAgICByZXR1cm4g
KHQzLCB0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MywgdDApCiAKICAg
ICAuc2xvdzoKICAgICAgICAgY2FsbFNsb3dQYXRoKF9zbG93X3BhdGhfJW9wY29kZU5hbWUlKQpA
QCAtMTI5MSw3ICsxMjkxLDcgQEAgbWFjcm8gY29tbW9uQml0T3Aob3BLaW5kLCBvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKIGVuZAogCiBtYWNybyBiaXRPcChvcGNvZGVOYW1l
LCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKLSAgICBjb21tb25CaXRPcChsbGludE9wV2l0aFJl
dHVybiwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVyYXRpb24pCisgICAgY29tbW9uQml0
T3AobGxpbnRPcFdpdGhEZXN0aW5hdGlvbiwgb3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVy
YXRpb24pCiBlbmQKIAogbWFjcm8gYml0T3BQcm9maWxlZChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1
Y3QsIG9wZXJhdGlvbikKQEAgLTEzMTksMTIgKzEzMTksMTIgQEAgYml0T3BQcm9maWxlZChiaXRh
bmQsIE9wQml0YW5kLAogYml0T3BQcm9maWxlZChiaXRvciwgT3BCaXRvciwKICAgICBtYWNybyAo
bGhzLCByaHMpIG9yaSByaHMsIGxocyBlbmQpCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9iaXRu
b3QsIE9wQml0bm90LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRP
cFdpdGhQcm9maWxlKG9wX2JpdG5vdCwgT3BCaXRub3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQwKQog
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQyLCB0MykKICAgICBiaW5lcSB0
MiwgSW50MzJUYWcsIC5vcEJpdE5vdFNsb3cKICAgICBub3RpIHQzCi0gICAgcmV0dXJuIChJbnQz
MlRhZywgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChJbnQzMlRhZywgdDMpCiAK
ICAub3BCaXROb3RTbG93OgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2JpdG5vdCkKQEAg
LTEzNjEsNDYgKzEzNjEsNDYgQEAgbGxpbnRPcChvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlLCBP
cE92ZXJyaWRlc0hhc0luc3RhbmNlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKIGVuZCkKIAogCi1s
bGludE9wV2l0aFJldHVybihvcF9pc19lbXB0eSwgT3BJc0VtcHR5LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19lbXB0eSwg
T3BJc0VtcHR5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmRE
aXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHNpemUsIHQxLCB0MiwgdDMpCiAgICAgY2llcSB0MiwgRW1wdHlWYWx1ZVRhZywgdDMKLSAg
ICByZXR1cm4oQm9vbGVhblRhZywgdDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChC
b29sZWFuVGFnLCB0MykKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90eXBlb2ZfaXNf
dW5kZWZpbmVkLCBPcFR5cGVvZklzVW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90eXBlb2ZfaXNfdW5kZWZpbmVk
LCBPcFR5cGVvZklzVW5kZWZpbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MiwgdDMpCiAgICAgYmllcSB0MiwgQ2VsbFRhZywg
Lm9wSXNVbmRlZmluZWRDZWxsCiAgICAgY2llcSB0MiwgVW5kZWZpbmVkVGFnLCB0MwotICAgIHJl
dHVybihCb29sZWFuVGFnLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xl
YW5UYWcsIHQzKQogLm9wSXNVbmRlZmluZWRDZWxsOgogICAgIGJ0Ym56IEpTQ2VsbDo6bV9mbGFn
c1t0M10sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIC5vcElzVW5kZWZpbmVkTWFzcXVlcmFkZXNB
c1VuZGVmaW5lZAotICAgIHJldHVybihCb29sZWFuVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2goQm9vbGVhblRhZywgMCkKIC5vcElzVW5kZWZpbmVkTWFzcXVlcmFkZXNBc1Vu
ZGVmaW5lZDoKICAgICBsb2FkaSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MQogICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCB0MwogICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmpl
Y3RbdDNdLCB0MwogICAgIGNwZXEgU3RydWN0dXJlOjptX2dsb2JhbE9iamVjdFt0MV0sIHQzLCB0
MQotICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKEJvb2xlYW5UYWcsIHQxKQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2lzX2Jv
b2xlYW4sIE9wSXNCb29sZWFuLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19ib29sZWFuLCBPcElzQm9vbGVhbiwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0
KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVRhZyhzaXplLCB0MSwg
dDApCiAgICAgY2llcSB0MCwgQm9vbGVhblRhZywgdDAKLSAgICByZXR1cm4oQm9vbGVhblRhZywg
dDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MCkKIGVuZCkK
IAogCi1sbGludE9wV2l0aFJldHVybihvcF9pc19udW1iZXIsIE9wSXNOdW1iZXIsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lz
X251bWJlciwgT3BJc051bWJlciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZVRhZyhzaXplLCB0MSwgdDApCiAgICAgYWRkaSAxLCB0MAogICAgIGNpYiB0
MCwgTG93ZXN0VGFnICsgMSwgdDEKLSAgICByZXR1cm4oQm9vbGVhblRhZywgdDEpCisgICAgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MSkKIGVuZCkKIAogCkBAIC0xNDEw
LDI2ICsxNDEwLDI2IEBAIGxsaW50T3Aob3BfaXNfYmlnX2ludCwgT3BJc0JpZ0ludCwgbWFjcm8o
dW51c2VkLCB1bnVzZWQsIHVudXNlZCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF9p
c19jZWxsX3dpdGhfdHlwZSwgT3BJc0NlbGxXaXRoVHlwZSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfY2VsbF93aXRoX3R5
cGUsIE9wSXNDZWxsV2l0aFR5cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwLCB0MykKICAgICBiaW5lcSB0MCwgQ2VsbFRhZywg
Lm5vdENlbGxDYXNlCiAgICAgZ2V0dShzaXplLCBPcElzQ2VsbFdpdGhUeXBlLCBtX3R5cGUsIHQw
KQogICAgIGNiZXEgSlNDZWxsOjptX3R5cGVbdDNdLCB0MCwgdDEKLSAgICByZXR1cm4oQm9vbGVh
blRhZywgdDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MSkK
IC5ub3RDZWxsQ2FzZToKLSAgICByZXR1cm4oQm9vbGVhblRhZywgMCkKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1
cm4ob3BfaXNfb2JqZWN0LCBPcElzT2JqZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
cmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19vYmplY3QsIE9wSXNPYmplY3Qs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwg
dDEsIHQwLCB0MykKICAgICBiaW5lcSB0MCwgQ2VsbFRhZywgLm9wSXNPYmplY3ROb3RDZWxsCiAg
ICAgY2JhZXEgSlNDZWxsOjptX3R5cGVbdDNdLCBPYmplY3RUeXBlLCB0MQotICAgIHJldHVybihC
b29sZWFuVGFnLCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcs
IHQxKQogLm9wSXNPYmplY3ROb3RDZWxsOgotICAgIHJldHVybihCb29sZWFuVGFnLCAwKQorICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQm9vbGVhblRhZywgMCkKIGVuZCkKIAogCkBAIC0x
NDc0LDcgKzE0NzQsNyBAQCBlbmQKICMgY29udmVydCBvcGNvZGUgaW50byBhIGdldF9ieV9pZF9w
cm90b19sb2FkL2dldF9ieV9pZF91bnNldCwgcmVzcGVjdGl2ZWx5LCBhZnRlciBhbgogIyBleGVj
dXRpb24gY291bnRlciBoaXRzIHplcm8uCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfdHJ5X2dl
dF9ieV9pZCwgT3BUcnlHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfdHJ5X2dldF9ieV9pZCwgT3BUcnlH
ZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdldChtX2Jhc2UsIHQw
KQogICAgIGxvYWRpIE9wVHJ5R2V0QnlJZDo6TWV0YWRhdGE6Om1fc3RydWN0dXJlSURbdDVdLCB0
MQpAQCAtMTQ4MywxNCArMTQ4MywxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3RyeV9nZXRf
YnlfaWQsIE9wVHJ5R2V0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsCiAgICAgYmlu
ZXEgSlNDZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEsIC5vcFRyeUdldEJ5SWRTbG93CiAgICAg
bG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MiwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVBy
b2ZpbGUoT3BUcnlHZXRCeUlkLCBtX3Byb2ZpbGUsIHQ1LCB0MCwgdDEpCi0gICAgcmV0dXJuKHQw
LCB0MSkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwLCB0MSkKIAogLm9wVHJ5R2V0
QnlJZFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdHJ5X2dldF9ieV9p
ZCkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5
X2lkX2RpcmVjdCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkX2RpcmVj
dCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogICAgIGdl
dChtX2Jhc2UsIHQwKQogICAgIGxvYWRpIE9wR2V0QnlJZERpcmVjdDo6TWV0YWRhdGE6Om1fc3Ry
dWN0dXJlSURbdDVdLCB0MQpAQCAtMTQ5OSw3ICsxNDk5LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9nZXRfYnlfaWRfZGlyZWN0LCBPcEdldEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3AKICAgICBiaW5lcSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0MSwgLm9wR2V0QnlJ
ZERpcmVjdFNsb3cKICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQyLCB0MywgdDAs
IHQxKQogICAgIHZhbHVlUHJvZmlsZShPcEdldEJ5SWREaXJlY3QsIG1fcHJvZmlsZSwgdDUsIHQw
LCB0MSkKLSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDAsIHQxKQogCiAub3BHZXRCeUlkRGlyZWN0U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9nZXRfYnlfaWRfZGlyZWN0KQpAQCAtMTUwOCw3ICsxNTA4LDcgQEAgZW5kKQog
CiAjIEFzc3VtcHRpb246IFRoZSBiYXNlIG9iamVjdCBpcyBpbiB0MwogIyBGSVhNRTogdGhpcyBp
cyB2ZXJ5IGNsb3NlIHRvIHRoZSA2NGJpdCB2ZXJzaW9uLiBDb25zaWRlciByZWZhY3RvcmluZy4K
LW1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFt
ZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvd0xhYmVsLCBzaXplLCBtZXRhZGF0YSwgcmV0dXJuKQor
bWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1l
LCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG93TGFiZWwsIHNpemUsIG1ldGFkYXRhLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQyLCB0MSkKICAgICBsb2FkYiAlb3Bjb2Rl
U3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5tb2RlW3QyXSwgdDEKICAgICAg
ICAgCkBAIC0xNTIwLDcgKzE1MjAsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNv
ZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAgIGxv
YWRpcyAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5kZWZhdWx0
TW9kZS5jYWNoZWRPZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZz
ZXQodDEsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVjdCwgdmFsdWVQ
cm9maWxlTmFtZSwgdDIsIHQwLCB0MSkKLSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2godDAsIHQxKQogCiAub3BHZXRCeUlkUHJvdG9Mb2FkOgogICAgIGJi
bmVxIHQxLCBjb25zdGV4cHIgR2V0QnlJZE1vZGU6OlByb3RvTG9hZCwgLm9wR2V0QnlJZEFycmF5
TGVuZ3RoCkBAIC0xNTMxLDcgKzE1MzEsNyBAQCBtYWNybyBwZXJmb3JtR2V0QnlJREhlbHBlcihv
cGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZhbHVlUHJvZmlsZU5hbWUsIHNsbwogICAg
IGxvYWRwICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRhZGF0YU5hbWUlLnByb3Rv
TG9hZE1vZGUuY2FjaGVkU2xvdFt0Ml0sIHQzCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9m
ZnNldCh0MSwgdDMsIHQwLCB0MSkKICAgICB2YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1
ZVByb2ZpbGVOYW1lLCB0MiwgdDAsIHQxKQotICAgIHJldHVybih0MCwgdDEpCisgICAgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRBcnJheUxlbmd0aDoKICAg
ICBiYm5lcSB0MSwgY29uc3RleHByIEdldEJ5SWRNb2RlOjpBcnJheUxlbmd0aCwgLm9wR2V0QnlJ
ZFVuc2V0CkBAIC0xNTQzLDE4ICsxNTQzLDE4IEBAIG1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVy
KG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvCiAg
ICAgbG9hZGkgLXNpemVvZiBJbmRleGluZ0hlYWRlciArIEluZGV4aW5nSGVhZGVyOjp1Lmxlbmd0
aHMucHVibGljTGVuZ3RoW3QwXSwgdDAKICAgICBiaWx0IHQwLCAwLCBzbG93TGFiZWwKICAgICB2
YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCB0MiwgSW50MzJUYWcs
IHQwKQotICAgIHJldHVybihJbnQzMlRhZywgdDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaChJbnQzMlRhZywgdDApCiAgICAgCiAub3BHZXRCeUlkVW5zZXQ6CiAgICAgbG9hZGkgSlND
ZWxsOjptX3N0cnVjdHVyZUlEW3QzXSwgdDEKICAgICBsb2FkaSAlb3Bjb2RlU3RydWN0JTo6TWV0
YWRhdGE6OiVtb2RlTWV0YWRhdGFOYW1lJS51bnNldE1vZGUuc3RydWN0dXJlSURbdDJdLCB0MAog
ICAgIGJpbmVxIHQwLCB0MSwgc2xvd0xhYmVsCiAgICAgdmFsdWVQcm9maWxlKG9wY29kZVN0cnVj
dCwgdmFsdWVQcm9maWxlTmFtZSwgdDIsIFVuZGVmaW5lZFRhZywgMCkKLSAgICByZXR1cm4oVW5k
ZWZpbmVkVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goVW5kZWZpbmVkVGFn
LCAwKQogCiBlbmQKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJ
ZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9w
V2l0aE1ldGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRh
dGEodDUsIHQwKQogICAgIGxvYWRiIE9wR2V0QnlJZDo6TWV0YWRhdGE6Om1fbW9kZU1ldGFkYXRh
Lm1vZGVbdDVdLCB0MQogICAgIGdldChtX2Jhc2UsIHQwKQpAQCAtMTU2OCw3ICsxNTY4LDcgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBsb2FkcCBPcEdldEJ5SWQ6Ok1ldGFkYXRhOjpt
X21vZGVNZXRhZGF0YS5wcm90b0xvYWRNb2RlLmNhY2hlZFNsb3RbdDVdLCB0MwogICAgIGxvYWRQ
cm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQcm9maWxl
KE9wR2V0QnlJZCwgbV9wcm9maWxlLCB0NSwgdDAsIHQxKQotICAgIHJldHVybih0MCwgdDEpCisg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRBcnJheUxl
bmd0aDoKICAgICBiYm5lcSB0MSwgY29uc3RleHByIEdldEJ5SWRNb2RlOjpBcnJheUxlbmd0aCwg
Lm9wR2V0QnlJZFVuc2V0CkBAIC0xNTgxLDcgKzE1ODEsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRh
KG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdAogICAgIGxvYWRpIC1zaXplb2YgSW5kZXhpbmdIZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6
dS5sZW5ndGhzLnB1YmxpY0xlbmd0aFt0MF0sIHQwCiAgICAgYmlsdCB0MCwgMCwgLm9wR2V0QnlJ
ZFNsb3cKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkLCBtX3Byb2ZpbGUsIHQ1LCBJbnQzMlRh
ZywgdDApCi0gICAgcmV0dXJuKEludDMyVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERp
c3BhdGNoKEludDMyVGFnLCB0MCkKIAogLm9wR2V0QnlJZFVuc2V0OgogICAgIGJibmVxIHQxLCBj
b25zdGV4cHIgR2V0QnlJZE1vZGU6OlVuc2V0LCAub3BHZXRCeUlkRGVmYXVsdApAQCAtMTU4OSw3
ICsxNTg5LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0QnlJZCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlUGF5bG9hZChzaXplLCB0MCwgQ2VsbFRhZywgdDMsIC5vcEdldEJ5SWRTbG93KQogICAg
IGJpbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BHZXRCeUlkU2xvdwogICAg
IHZhbHVlUHJvZmlsZShPcEdldEJ5SWQsIG1fcHJvZmlsZSwgdDUsIFVuZGVmaW5lZFRhZywgMCkK
LSAgICByZXR1cm4oVW5kZWZpbmVkVGFnLCAwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2goVW5kZWZpbmVkVGFnLCAwKQogCiAub3BHZXRCeUlkRGVmYXVsdDoKICAgICBsb2FkaSBPcEdl
dEJ5SWQ6Ok1ldGFkYXRhOjptX21vZGVNZXRhZGF0YS5kZWZhdWx0TW9kZS5zdHJ1Y3R1cmVJRFt0
NV0sIHQxCkBAIC0xNTk4LDcgKzE1OTgsNyBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9i
eV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdAogICAg
IGJpbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVJRFt0M10sIHQxLCAub3BHZXRCeUlkU2xvdwogICAg
IGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAgICAgdmFsdWVQ
cm9maWxlKE9wR2V0QnlJZCwgbV9wcm9maWxlLCB0NSwgdDAsIHQxKQotICAgIHJldHVybih0MCwg
dDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCwgdDEpCiAKIC5vcEdldEJ5SWRT
bG93OgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZCkKQEAgLTE2
MDgsMTIgKzE2MDgsMTIgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0
QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBnZXR0ZXJTZXR0
ZXJPU1JFeGl0UmV0dXJuUG9pbnQob3BfZ2V0X2J5X2lkLCBzaXplKQogICAgIG1ldGFkYXRhKHQy
LCB0MykKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkLCBtX3Byb2ZpbGUsIHQyLCByMSwgcjAp
Ci0gICAgcmV0dXJuKHIxLCByMCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxLCBy
MCkKIAogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X2J5X2lkLCBPcFB1dEJ5
SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIHdyaXRl
QmFycmllck9uT3BlcmFuZHMoc2l6ZSwgZ2V0LCBtX2Jhc2UsIG1fdmFsdWUpCiAgICAgbWV0YWRh
dGEodDUsIHQzKQogICAgIGdldChtX2Jhc2UsIHQzKQpAQCAtMTY4MCw3ICsxNjgwLDcgQEAgbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXQKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dl
dF9ieV92YWwsIE9wR2V0QnlWYWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0
YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFsLCBPcEdldEJ5VmFs
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gpCiAgICAgbWFjcm8gZmluaXNoSW50R2V0QnlWYWwocmVzdWx0UGF5bG9hZCwgc2Ny
YXRjaCkKICAgICAgICAgZ2V0KG1fZHN0LCBzY3JhdGNoKQogICAgICAgICBzdG9yZWkgSW50MzJU
YWcsIFRhZ09mZnNldFtjZnIsIHNjcmF0Y2gsIDhdCkBAIC0xNzU3LDExICsxNzU3LDExIEBAIGxs
aW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X3ZhbCwgT3BHZXRCeVZhbCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkCiAgICAgZ2V0dGVyU2V0dGVyT1NSRXhpdFJldHVyblBvaW50
KG9wX2dldF9ieV92YWwsIHNpemUpCiAgICAgbWV0YWRhdGEodDIsIHQzKQogICAgIHZhbHVlUHJv
ZmlsZShPcEdldEJ5VmFsLCBtX3Byb2ZpbGUsIHQyLCByMSwgcjApCi0gICAgcmV0dXJuKHIxLCBy
MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIxLCByMCkKIAogZW5kKQogCi1sbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2dldF9wcml2YXRlX25hbWUsIE9wR2V0UHJpdmF0ZU5hbWUsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAg
ICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgIyBTbG93IHBhdGggaWYgdGhlIHByaXZhdGUgZmll
bGQgaXMgc3RhbGUKQEAgLTE3NzgsMTQgKzE3NzgsMTQgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF9nZXRfcHJpdmF0ZV9uYW1lLCBPcEdldFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXMKIAogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDIsIHQzLCB0MCwgdDEpCiAg
ICAgdmFsdWVQcm9maWxlKE9wR2V0UHJpdmF0ZU5hbWUsIG1fcHJvZmlsZSwgdDUsIHQwLCB0MSkK
LSAgICByZXR1cm4odDAsIHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDAsIHQx
KQogCiAub3BHZXRQcml2YXRlTmFtZVNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93
X3BhdGhfZ2V0X3ByaXZhdGVfbmFtZSkKICAgICBkaXNwYXRjaCgpCiBlbmQpCiAKLWxsaW50T3BX
aXRoTWV0YWRhdGEob3BfcHV0X3ByaXZhdGVfbmFtZSwgT3BQdXRQcml2YXRlTmFtZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFk
YXRhKG9wX3B1dF9wcml2YXRlX25hbWUsIE9wUHV0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICB3
cml0ZUJhcnJpZXJPbk9wZXJhbmRzKHNpemUsIGdldCwgbV9iYXNlLCBtX3ZhbHVlKQogICAgIGdl
dChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHNpemUsIHQz
LCBDZWxsVGFnLCB0MCwgLm9wUHV0UHJpdmF0ZU5hbWVTbG93KQpAQCAtMTgyOSw3ICsxODI5LDcg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfcHJpdmF0ZV9uYW1lLCBPcFB1dFByaXZhdGVO
YW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKIGVuZCkKIAogbWFjcm8gcHV0QnlWYWxPcChvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9zckV4aXRQb2ludCkKLSAgICBsbGludE9wV2l0aE1ldGFk
YXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNv
ZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIG1hY3JvIGNvbnRpZ3VvdXNQ
dXRCeVZhbChzdG9yZUNhbGxiYWNrKQogICAgICAgICAgICAgYmlhZXEgdDMsIC1zaXplb2YgSW5k
ZXhpbmdIZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6dS5sZW5ndGhzLnB1YmxpY0xlbmd0aFt0MF0s
IC5vdXRPZkJvdW5kcwogICAgICAgICAuc3RvcmVSZXN1bHQ6CkBAIC0yMDA5LDcgKzIwMDksNyBA
QCB1bmRlZmluZWRPck51bGxKdW1wT3AoanVuZGVmaW5lZF9vcl9udWxsLCBPcEp1bmRlZmluZWRP
ck51bGwsCiB1bmRlZmluZWRPck51bGxKdW1wT3Aoam51bmRlZmluZWRfb3JfbnVsbCwgT3BKbnVu
ZGVmaW5lZE9yTnVsbCwKICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYmluZXEgdmFsdWUsIE51
bGxUYWcsIHRhcmdldCBlbmQpCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2plcV9wdHIsIE9wSmVx
UHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF9qZXFfcHRyLCBPcEplcVB0ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fdmFsdWUsIHQwKQogICAgIGdl
dChtX3NwZWNpYWxQb2ludGVyLCB0MSkKICAgICBsb2FkQ29uc3RhbnQoc2l6ZSwgdDEsIHQzLCB0
MikKQEAgLTIwMjMsNyArMjAyMyw3IEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX2plcV9wdHIsIE9w
SmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogZW5kKQogCiAKLWxs
aW50T3BXaXRoTWV0YWRhdGEob3Bfam5lcV9wdHIsIE9wSm5lcVB0ciwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2pu
ZXFfcHRyLCBPcEpuZXFQdHIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwg
c2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV92YWx1ZSwgdDApCiAgICAgZ2V0
KG1fc3BlY2lhbFBvaW50ZXIsIHQxKQogICAgIGxvYWRDb25zdGFudChzaXplLCB0MSwgdDMsIHQy
KQpAQCAtMjA1NSw3ICsyMDU1LDcgQEAgZW5kCiAKIAogbWFjcm8gY29tcGFyZU9wKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmVBbmRTZXQsIGRvdWJsZUNvbXBhcmVBbmRT
ZXQpCi0gICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3Qs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwg
ZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX2xocywg
dDIpCiAgICAgICAgIGdldChtX3JocywgdDMpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUoc2l6ZSwgdDIsIHQwLCB0MSkKQEAgLTIwNjMsNyArMjA2Myw3IEBAIG1hY3JvIGNvbXBhcmVP
cChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0LCBkb3VibGVD
b21wYXJlQW5kCiAgICAgICAgIGJpbmVxIHQwLCBJbnQzMlRhZywgLm9wMU5vdEludAogICAgICAg
ICBiaW5lcSB0MiwgSW50MzJUYWcsIC5vcDJOb3RJbnQKICAgICAgICAgaW50ZWdlckNvbXBhcmVB
bmRTZXQodDEsIHQzLCB0MSkKLSAgICAgICAgcmV0dXJuKEJvb2xlYW5UYWcsIHQxKQorICAgICAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogCiAgICAgLm9wMU5v
dEludDoKICAgICAgICAgYmlhIHQwLCBMb3dlc3RUYWcsIC5zbG93CkBAIC0yMDc2LDE0ICsyMDc2
LDE0IEBAIG1hY3JvIGNvbXBhcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJD
b21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJlQW5kCiAgICAgLm9wMU5vdEludFJlYWR5OgogICAg
ICAgICBmaWkyZCB0MSwgdDAsIGZ0MAogICAgICAgICBkb3VibGVDb21wYXJlQW5kU2V0KGZ0MCwg
ZnQxLCB0MSkKLSAgICAgICAgcmV0dXJuKEJvb2xlYW5UYWcsIHQxKQorICAgICAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKEJvb2xlYW5UYWcsIHQxKQogCiAgICAgLm9wMk5vdEludDoKICAg
ICAgICAgY2kyZHMgdDEsIGZ0MAogICAgICAgICBiaWEgdDIsIExvd2VzdFRhZywgLnNsb3cKICAg
ICAgICAgZmlpMmQgdDMsIHQyLCBmdDEKICAgICAgICAgZG91YmxlQ29tcGFyZUFuZFNldChmdDAs
IGZ0MSwgdDEpCi0gICAgICAgIHJldHVybihCb29sZWFuVGFnLCB0MSkKKyAgICAgICAgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaChCb29sZWFuVGFnLCB0MSkKIAogICAgIC5zbG93OgogICAgICAg
ICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUpCkBAIC0yMDkyLDEzICsyMDky
LDEzIEBAIG1hY3JvIGNvbXBhcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJD
b21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJlQW5kCiBlbmQKIAogbWFjcm8gY29tcGFyZVVuc2ln
bmVkT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyZUFuZFNldCkKLSAg
ICBsbGludE9wV2l0aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9u
KG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MikKICAg
ICAgICAgZ2V0KG1fbGhzLCB0MCkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXpl
LCB0MiwgdDMsIHQxKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyhzaXplLCB0
MCwgdDIsIHQwKQogICAgICAgICBpbnRlZ2VyQ29tcGFyZUFuZFNldCh0MCwgdDEsIHQwKQotICAg
ICAgICByZXR1cm4oQm9vbGVhblRhZywgdDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2goQm9vbGVhblRhZywgdDApCiAgICAgZW5kKQogZW5kCiAKQEAgLTIyNzgsNyArMjI3OCw3
IEBAIG1hY3JvIGNhbGxIZWxwZXIob3Bjb2RlTmFtZSwgc2xvd1BhdGgsIG9wY29kZVN0cnVjdCwg
dmFsdWVQcm9maWxlTmFtZSwgZHN0VmlydHVhCiBlbmQKICAgICAgICAgCiBtYWNybyBjb21tb25D
YWxsT3Aob3Bjb2RlTmFtZSwgc2xvd1BhdGgsIG9wY29kZVN0cnVjdCwgcHJlcGFyZUNhbGwsIGlu
dm9rZUNhbGwsIHByZXBhcmVQb2x5bW9ycGhpYywgcHJlcGFyZVNsb3dDYWxsLCBwcm9sb2d1ZSkK
LSAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgbWV0YWRh
dGEodDUsIHQwKQogCiAgICAgICAgIHByb2xvZ3VlKG1hY3JvIChmaWVsZE5hbWUsIGRzdCkKQEAg
LTIzNjcsMTMgKzIzNjcsMTMgQEAgbGxpbnRPcChvcF9yZXQsIE9wUmV0LCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90b19wcmltaXRp
dmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCits
bGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3RvX3ByaW1pdGl2ZSwgT3BUb1ByaW1pdGl2ZSwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
Z2V0KG1fc3JjLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0MSwg
dDApCiAgICAgYmluZXEgdDEsIENlbGxUYWcsIC5vcFRvUHJpbWl0aXZlSXNJbW0KICAgICBiYmFl
cSBKU0NlbGw6Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIC5vcFRvUHJpbWl0aXZlU2xvd0Nhc2UK
IC5vcFRvUHJpbWl0aXZlSXNJbW06Ci0gICAgcmV0dXJuKHQxLCB0MCkKKyAgICBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKHQxLCB0MCkKIAogLm9wVG9QcmltaXRpdmVTbG93Q2FzZToKICAgICBj
YWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19wcmltaXRpdmUpCkBAIC0yMzgxLDcgKzIzODEsNyBA
QCBsbGludE9wV2l0aFJldHVybihvcF90b19wcmltaXRpdmUsIE9wVG9QcmltaXRpdmUsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCByZQogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9w
X3RvX3Byb3BlcnR5X2tleSwgT3BUb1Byb3BlcnR5S2V5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF90b19wcm9wZXJ0eV9rZXks
IE9wVG9Qcm9wZXJ0eUtleSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fc3JjLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlKHNpemUsIHQyLCB0MSwgdDApCiAgICAgYmluZXEgdDEsIENlbGxUYWcsIC5vcFRvUHJv
cGVydHlLZXlTbG93CkBAIC0yMzg5LDcgKzIzODksNyBAQCBsbGludE9wV2l0aFJldHVybihvcF90
b19wcm9wZXJ0eV9rZXksIE9wVG9Qcm9wZXJ0eUtleSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
YwogICAgIGJibmVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgU3RyaW5nVHlwZSwgLm9wVG9Qcm9wZXJ0
eUtleVNsb3cKIAogLmRvbmU6Ci0gICAgcmV0dXJuKHQxLCB0MCkKKyAgICBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKHQxLCB0MCkKIAogLm9wVG9Qcm9wZXJ0eUtleVNsb3c6CiAgICAgY2FsbFNs
b3dQYXRoKF9zbG93X3BhdGhfdG9fcHJvcGVydHlfa2V5KQpAQCAtMjU4Myw3ICsyNTgzLDcgQEAg
bWFjcm8gdmFySW5qZWN0aW9uQ2hlY2soc2xvd1BhdGgpCiBlbmQKIAogCi1sbGludE9wV2l0aE1l
dGFkYXRhKG9wX3Jlc29sdmVfc2NvcGUsIE9wUmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVz
b2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKIAogICAgIG1hY3JvIGdldENvbnN0
YW50U2NvcGUoZHN0KQogICAgICAgICBsb2FkcCBPcFJlc29sdmVTY29wZTo6TWV0YWRhdGE6Om1f
Y29uc3RhbnRTY29wZVt0NV0sIGRzdApAQCAtMjU5MSw3ICsyNTkxLDcgQEAgbGxpbnRPcFdpdGhN
ZXRhZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdl
dCwgZGlzcGF0Y2gKIAogICAgIG1hY3JvIHJldHVybkNvbnN0YW50U2NvcGUoKQogICAgICAgICBn
ZXRDb25zdGFudFNjb3BlKHQwKQotICAgICAgICByZXR1cm4oQ2VsbFRhZywgdDApCisgICAgICAg
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goQ2VsbFRhZywgdDApCiAgICAgZW5kCiAKICAgICBt
YWNybyBnbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2NoQ2hlY2soc2xvd1BhdGgsIGdsb2JhbE9iamVj
dCwgc2NyYXRjaCkKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
cmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
CiAgICAgICAgIGJ0aW56IHQyLCAucmVzb2x2ZVNjb3BlTG9vcAogCiAgICAgLnJlc29sdmVTY29w
ZUxvb3BFbmQ6Ci0gICAgICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICAgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaChDZWxsVGFnLCB0MCkKICAgICBlbmQKIAogICAgIG1ldGFkYXRhKHQ1
LCB0MCkKQEAgLTI2MjEsNyArMjYyMSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcmVzb2x2
ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAg
YmluZXEgdDAsIEdsb2JhbFByb3BlcnR5LCAuckdsb2JhbFZhcgogICAgIGdldENvbnN0YW50U2Nv
cGUodDApCiAgICAgZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKC5yRHluYW1pYywgdDAs
IHQyKQotICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKENlbGxUYWcsIHQwKQogCiAuckdsb2JhbFZhcjoKICAgICBiaW5lcSB0MCwgR2xvYmFsVmFy
LCAuckdsb2JhbExleGljYWxWYXIKQEAgLTI2NDQsNyArMjY0NCw3IEBAIGxsaW50T3BXaXRoTWV0
YWRhdGEob3BfcmVzb2x2ZV9zY29wZSwgT3BSZXNvbHZlU2NvcGUsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoCiAgICAgdmFySW5qZWN0aW9uQ2hlY2soLnJEeW5hbWljKQogICAgIGdldENvbnN0
YW50U2NvcGUodDApCiAgICAgZ2xvYmFsTGV4aWNhbEJpbmRpbmdFcG9jaENoZWNrKC5yRHluYW1p
YywgdDAsIHQyKQotICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKENlbGxUYWcsIHQwKQogCiAuckdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVj
a3M6CiAgICAgYmluZXEgdDAsIEdsb2JhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MsIC5yR2xv
YmFsTGV4aWNhbFZhcldpdGhWYXJJbmplY3Rpb25DaGVja3MKQEAgLTI2NzUsMTIgKzI2NzUsMTIg
QEAgbWFjcm8gbG9hZFdpdGhTdHJ1Y3R1cmVDaGVjayhvcGNvZGVTdHJ1Y3QsIGdldCwgb3BlcmFu
ZCwgc2xvd1BhdGgpCiBlbmQKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9tX3Nj
b3BlLCBPcEdldEZyb21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9tX3Njb3BlLCBPcEdldEZy
b21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoKQogICAgIG1hY3JvIGdldFByb3BlcnR5KCkKICAgICAgICAgbG9hZHAg
T3BHZXRGcm9tU2NvcGU6Ok1ldGFkYXRhOjptX29wZXJhbmRbdDVdLCB0MwogICAgICAgICBsb2Fk
UHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQzLCB0MCwgdDEsIHQyKQogICAgICAgICB2YWx1ZVBy
b2ZpbGUoT3BHZXRGcm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQxLCB0MikKLSAgICAgICAgcmV0
dXJuKHQxLCB0MikKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MSwgdDIpCiAg
ICAgZW5kCiAKICAgICBtYWNybyBnZXRHbG9iYWxWYXIodGR6Q2hlY2tJZk5lY2Vzc2FyeSkKQEAg
LTI2ODksNyArMjY4OSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUs
IE9wR2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgICAgIGxvYWRw
IFBheWxvYWRPZmZzZXRbdDBdLCB0MgogICAgICAgICB0ZHpDaGVja0lmTmVjZXNzYXJ5KHQxKQog
ICAgICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRGcm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQxLCB0
MikKLSAgICAgICAgcmV0dXJuKHQxLCB0MikKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MSwgdDIpCiAgICAgZW5kCiAKICAgICBtYWNybyBnZXRDbG9zdXJlVmFyKCkKQEAgLTI2
OTcsNyArMjY5Nyw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2Zyb21fc2NvcGUsIE9w
R2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiAgICAgICAgIGxvYWRwIEpT
TGV4aWNhbEVudmlyb25tZW50X3ZhcmlhYmxlcyArIFRhZ09mZnNldFt0MCwgdDMsIDhdLCB0MQog
ICAgICAgICBsb2FkcCBKU0xleGljYWxFbnZpcm9ubWVudF92YXJpYWJsZXMgKyBQYXlsb2FkT2Zm
c2V0W3QwLCB0MywgOF0sIHQyCiAgICAgICAgIHZhbHVlUHJvZmlsZShPcEdldEZyb21TY29wZSwg
bV9wcm9maWxlLCB0NSwgdDEsIHQyKQotICAgICAgICByZXR1cm4odDEsIHQyKQorICAgICAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQxLCB0MikKICAgICBlbmQKIAogICAgIG1ldGFkYXRh
KHQ1LCB0MCkKQEAgLTI3NTUsNyArMjc1NSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0
X2Zyb21fc2NvcGUsIE9wR2V0RnJvbVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjCiBl
bmQpCiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29w
ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9w
V2l0aE1ldGFkYXRhKG9wX3B1dF90b19zY29wZSwgT3BQdXRUb1Njb3BlLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAg
bWFjcm8gcHV0UHJvcGVydHkoKQogICAgICAgICBnZXQobV92YWx1ZSwgdDEpCiAgICAgICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQyLCB0MykKQEAgLTI4ODksMTMgKzI4ODks
MTMgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfdG9fc2NvcGUsIE9wUHV0VG9TY29wZSwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG0KIGVuZCkKIAogCi1sbGludE9wV2l0aFByb2Zp
bGUob3BfZ2V0X2Zyb21fYXJndW1lbnRzLCBPcEdldEZyb21Bcmd1bWVudHMsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2Zyb21f
YXJndW1lbnRzLCBPcEdldEZyb21Bcmd1bWVudHMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX2FyZ3VtZW50cywgdDApCiAg
ICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBnZXR1KHNpemUsIE9w
R2V0RnJvbUFyZ3VtZW50cywgbV9pbmRleCwgdDEpCiAgICAgbG9hZGkgRGlyZWN0QXJndW1lbnRz
X3N0b3JhZ2UgKyBUYWdPZmZzZXRbdDAsIHQxLCA4XSwgdDIKICAgICBsb2FkaSBEaXJlY3RBcmd1
bWVudHNfc3RvcmFnZSArIFBheWxvYWRPZmZzZXRbdDAsIHQxLCA4XSwgdDMKLSAgICByZXR1cm4o
dDIsIHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIsIHQzKQogZW5kKQogCiAK
QEAgLTI5MTIsMTUgKzI5MTIsMTUgQEAgbGxpbnRPcChvcF9wdXRfdG9fYXJndW1lbnRzLCBPcFB1
dFRvQXJndW1lbnRzLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKIGVuZCkKIAogCi1sbGlu
dE9wV2l0aFJldHVybihvcF9nZXRfcGFyZW50X3Njb3BlLCBPcEdldFBhcmVudFNjb3BlLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihv
cF9nZXRfcGFyZW50X3Njb3BlLCBPcEdldFBhcmVudFNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9zY29wZSwgdDAp
CiAgICAgbG9hZHAgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKICAgICBsb2FkcCBKU1Nj
b3BlOjptX25leHRbdDBdLCB0MAotICAgIHJldHVybihDZWxsVGFnLCB0MCkKKyAgICBzZXREZXN0
aW5hdGlvbkFuZERpc3BhdGNoKENlbGxUYWcsIHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0
YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmls
ZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHQxCiAgICAgbG9hZHAgQ29kZUJsb2NrOjptX3ZtW3QxXSwgdDEKICAgICAjIHQxIGlzIGhvbGRp
bmcgdGhlIHBvaW50ZXIgdG8gdGhlIHR5cGVQcm9maWxlckxvZy4KQEAgLTI5NjUsNyArMjk2NSw3
IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHJvZmlsZV90eXBlLCBPcFByb2ZpbGVUeXBlLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRh
KG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVDb250cm9sRmxvdywgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRh
KG9wX3Byb2ZpbGVfY29udHJvbF9mbG93LCBPcFByb2ZpbGVDb250cm9sRmxvdywgbWFjcm8gKHNp
emUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIG1ldGFkYXRhKHQ1LCB0MCkKICAgICBsb2FkcCBPcFByb2ZpbGVDb250cm9sRmxvdzo6TWV0
YWRhdGE6Om1fYmFzaWNCbG9ja0xvY2F0aW9uW3Q1XSwgdDAKICAgICBsb2FkaSBCYXNpY0Jsb2Nr
TG9jYXRpb246Om1fZXhlY3V0aW9uQ291bnRbdDBdLCB0MQpAQCAtMjk3Niw3ICsyOTc2LDcgQEAg
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxlX2NvbnRyb2xfZmxvdywgT3BQcm9maWxlQ29u
dHJvbEZsb3csIG1hY3JvIChzaXplLAogZW5kKQogCiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2dl
dF9yZXN0X2xlbmd0aCwgT3BHZXRSZXN0TGVuZ3RoLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfcmVzdF9sZW5ndGgsIE9w
R2V0UmVzdExlbmd0aCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzW2Nmcl0sIHQwCiAgICAgc3ViaSAxLCB0MAogICAgIGdldHUoc2l6ZSwgT3BHZXRS
ZXN0TGVuZ3RoLCBtX251bVBhcmFtZXRlcnNUb1NraXAsIHQxKQpAQCAtMjk4NiwxMCArMjk4Niwx
MCBAQCBsbGludE9wV2l0aFJldHVybihvcF9nZXRfcmVzdF9sZW5ndGgsIE9wR2V0UmVzdExlbmd0
aCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0YwogLnN0b3JlWmVybzoKICAgICBtb3ZlIDAsIHQw
CiAuZmluaXNoOgotICAgIHJldHVybihJbnQzMlRhZywgdDApCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaChJbnQzMlRhZywgdDApCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3Bf
aXRlcmF0b3Jfb3BlbiwgT3BJdGVyYXRvck9wZW4sIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVu
LCBPcEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1hY3JvIGZhc3ROYXJyb3coKQogICAgICAg
ICBjYWxsU2xvd1BhdGgoX2l0ZXJhdG9yX29wZW5fdHJ5X2Zhc3RfbmFycm93KQogICAgIGVuZApA
QCAtMzA0Niw3ICszMDQ2LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9vcGVu
LCBPcEl0ZXJhdG9yT3BlbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBkaXNwYXRj
aCgpCiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4dCwgT3BJdGVy
YXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQor
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKQogICAgICAgICAKICAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX25leHQsIHQwLCB0MSwgdDAp
CiAgICAgYmluZXEgdDEsIEVtcHR5VmFsdWVUYWcsIC5pdGVyYXRvck5leHRHZW5lcmljCkBAIC0z
MTM2LDEzICszMTM2LDEzIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4dCwg
T3BJdGVyYXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAgZGlzcGF0Y2go
KQogZW5kKQogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdl
dEludGVybmFsRmllbGQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGlu
dE9wV2l0aFByb2ZpbGUob3BfZ2V0X2ludGVybmFsX2ZpZWxkLCBPcEdldEludGVybmFsRmllbGQs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX2Jhc2UsIHQwKQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0s
IHQwCiAgICAgZ2V0dShzaXplLCBPcEdldEludGVybmFsRmllbGQsIG1faW5kZXgsIHQxKQogICAg
IGxvYWRpIEpTSW50ZXJuYWxGaWVsZE9iamVjdEltcGxfaW50ZXJuYWxGaWVsZHMgKyBUYWdPZmZz
ZXRbdDAsIHQxLCBTbG90U2l6ZV0sIHQyCiAgICAgbG9hZGkgSlNJbnRlcm5hbEZpZWxkT2JqZWN0
SW1wbF9pbnRlcm5hbEZpZWxkcyArIFBheWxvYWRPZmZzZXRbdDAsIHQxLCBTbG90U2l6ZV0sIHQz
Ci0gICAgcmV0dXJuKHQyLCB0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyLCB0
MykKIGVuZCkKIAogbGxpbnRPcChvcF9wdXRfaW50ZXJuYWxfZmllbGQsIE9wUHV0SW50ZXJuYWxG
aWVsZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCkBAIC0zMjAyLDcgKzMyMDIsNyBAQCBv
cChmdXp6ZXJfcmV0dXJuX2Vhcmx5X2Zyb21fbG9vcF9oaW50LCBtYWNybyAoKQogZW5kKQogCiAK
LWxsaW50T3BXaXRoTWV0YWRhdGEob3BfY2hlY2tfcHJpdmF0ZV9icmFuZCwgT3BDaGVja1ByaXZh
dGVCcmFuZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCits
bGludE9wV2l0aE1ldGFkYXRhKG9wX2NoZWNrX3ByaXZhdGVfYnJhbmQsIE9wQ2hlY2tQcml2YXRl
QnJhbmQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDIpCiAgICAgZ2V0KG1fYmFzZSwgdDMp
CiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQoc2l6ZSwgdDMsIENlbGxUYWcsIHQw
LCAub3BDaGVja1ByaXZhdGVCcmFuZFNsb3cpCkBAIC0zMjIyLDcgKzMyMjIsNyBAQCBsbGludE9w
V2l0aE1ldGFkYXRhKG9wX2NoZWNrX3ByaXZhdGVfYnJhbmQsIE9wQ2hlY2tQcml2YXRlQnJhbmQs
IG1hY3JvIChzaXplLCBnZQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3By
aXZhdGVfYnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3ByaXZhdGVf
YnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0
YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQyKQog
ICAgIGdldChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHNp
emUsIHQzLCBDZWxsVGFnLCB0MCwgLm9wU2V0UHJpdmF0ZUJyYW5kU2xvdykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNtIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KaW5k
ZXggNWRlN2JjYzdmZDBkNGYwNDBmMmRmOTRiZDQ3MzQ1ZDgzNTg2OTQ0Ny4uMmYxZjAxOWMwNWU5
ZGRkMGI2YzM3YjBhZTZhZjNmYmFiNTNkMWUzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KQEAgLTcxLDcgKzcxLDcg
QEAgbWFjcm8gZ2V0T3BlcmFuZFdpZGUzMldhc20ob3Bjb2RlU3RydWN0LCBmaWVsZE5hbWUsIGRz
dCkKICAgICBsb2FkaXMgY29uc3RleHByICVvcGNvZGVTdHJ1Y3QlXyVmaWVsZE5hbWUlX2luZGV4
ICogNCArIE9wY29kZUlEV2lkZTMyU2l6ZVdhc21bUEIsIFBDLCAxXSwgZHN0CiBlbmQKIAotbWFj
cm8gbWFrZVJldHVybihnZXQsIGRpc3BhdGNoLCBmbikKK21hY3JvIG1ha2VEZXN0aW5hdGlvbihn
ZXQsIGRpc3BhdGNoLCBmbikKICAgICBmbihtYWNybyAodmFsdWUpCiAgICAgICAgIG1vdmUgdmFs
dWUsIHQyCiAgICAgICAgIGdldChtX2RzdCwgdDEpCkBAIC04MCw3ICs4MCw3IEBAIG1hY3JvIG1h
a2VSZXR1cm4oZ2V0LCBkaXNwYXRjaCwgZm4pCiAgICAgZW5kKQogZW5kCiAKLW1hY3JvIG1ha2VS
ZXR1cm5Qcm9maWxlZChvcGNvZGVTdHJ1Y3QsIGdldCwgbWV0YWRhdGEsIGRpc3BhdGNoLCBmbikK
K21hY3JvIG1ha2VEZXN0aW5hdGlvblByb2ZpbGVkKG9wY29kZVN0cnVjdCwgZ2V0LCBtZXRhZGF0
YSwgZGlzcGF0Y2gsIGZuKQogICAgIGZuKG1hY3JvICh2YWx1ZSkKICAgICAgICAgbW92ZSB2YWx1
ZSwgdDMKICAgICAgICAgbWV0YWRhdGEodDEsIHQyKQpAQCAtODcwLDM0ICs4NzAsMzQgQEAgX2xs
aW50X29wX2VudGVyOgogICAgIGRpc3BhdGNoT3AobmFycm93LCBvcF9lbnRlcikKIAogCi1sbGlu
dE9wV2l0aFByb2ZpbGUob3BfZ2V0X2FyZ3VtZW50LCBPcEdldEFyZ3VtZW50LCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9hcmd1
bWVudCwgT3BHZXRBcmd1bWVudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1faW5kZXgsIHQyKQogICAgIGxvYWRpIFBheWxv
YWRPZmZzZXQgKyBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1tjZnJdLCB0MAogICAgIGJpbHRl
cSB0MCwgdDIsIC5vcEdldEFyZ3VtZW50T3V0T2ZCb3VuZHMKICAgICBsb2FkcSBUaGlzQXJndW1l
bnRPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcEdldEFyZ3VtZW50T3V0T2ZCb3VuZHM6Ci0gICAgcmV0
dXJuKFZhbHVlVW5kZWZpbmVkKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2goVmFsdWVV
bmRlZmluZWQpCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfYXJndW1lbnRfY291bnQs
IE9wQXJndW1lbnRDb3VudCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xs
aW50T3BXaXRoRGVzdGluYXRpb24ob3BfYXJndW1lbnRfY291bnQsIE9wQXJndW1lbnRDb3VudCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAg
ICAgbG9hZGkgUGF5bG9hZE9mZnNldCArIEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzW2Nmcl0s
IHQwCiAgICAgc3ViaSAxLCB0MAogICAgIG9ycSBUYWdOdW1iZXIsIHQwCi0gICAgcmV0dXJuKHQw
KQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIAotbGxpbnRPcFdp
dGhSZXR1cm4ob3BfZ2V0X3Njb3BlLCBPcEdldFNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9nZXRfc2NvcGUsIE9wR2V0
U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3Bh
dGNoKQogICAgIGxvYWRwIENhbGxlZVtjZnJdLCB0MAogICAgIGxvYWRwIEpTQ2FsbGVlOjptX3Nj
b3BlW3QwXSwgdDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCh0MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3RvX3RoaXMsIE9wVG9UaGlz
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BX
aXRoTWV0YWRhdGEob3BfdG9fdGhpcywgT3BUb1RoaXMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9zcmNE
c3QsIHQwKQogICAgIGxvYWRxIFtjZnIsIHQwLCA4XSwgdDAKICAgICBidHFueiB0MCwgbm90Q2Vs
bE1hc2ssIC5vcFRvVGhpc1Nsb3cKQEAgLTkyNSwyMCArOTI1LDIwIEBAIGxsaW50T3Aob3BfY2hl
Y2tfdGR6LCBPcENoZWNrVGR6LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCkKIGVuZCkKIAog
Ci1sbGludE9wV2l0aFJldHVybihvcF9tb3YsIE9wTW92LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9tb3YsIE9wTW92LCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBn
ZXQobV9zcmMsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQyKQot
ICAgIHJldHVybih0MikKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQyKQogZW5kKQog
CiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX25vdCwgT3BOb3QsIG1hY3JvIChzaXplLCBnZXQsIGRp
c3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX25vdCwgT3BOb3QsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAg
IGdldChtX29wZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAs
IHQyKQogICAgIHhvcnEgVmFsdWVGYWxzZSwgdDIKICAgICBidHFueiB0MiwgfjEsIC5vcE5vdFNs
b3cKICAgICB4b3JxIFZhbHVlVHJ1ZSwgdDIKLSAgICByZXR1cm4odDIpCisgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCh0MikKIAogLm9wTm90U2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Ns
b3dfcGF0aF9ub3QpCkBAIC05NDcsMTQgKzk0NywxNCBAQCBlbmQpCiAKIAogbWFjcm8gZXF1YWxp
dHlDb21wYXJpc29uT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBpbnRlZ2VyQ29tcGFyaXNv
bikKLSAgICBsbGludE9wV2l0aFJldHVybihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3Rp
bmF0aW9uKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0
MCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZUludDMyKHNpemUsIHQwLCB0MSwgLnNsb3cpCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGVJbnQzMihzaXplLCB0MiwgdDAsIC5zbG93KQogICAgICAgICBpbnRlZ2VyQ29tcGFyaXNvbih0
MCwgdDEsIHQwKQogICAgICAgICBvcnEgVmFsdWVGYWxzZSwgdDAKLSAgICAgICAgcmV0dXJuKHQw
KQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAgICAgLnNsb3c6CiAg
ICAgICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoXyVvcGNvZGVOYW1lJSkKQEAgLTk2NCw3ICs5
NjQsNyBAQCBlbmQKIAogCiBtYWNybyBlcXVhbE51bGxDb21wYXJpc29uT3Aob3Bjb2RlTmFtZSwg
b3Bjb2RlU3RydWN0LCBmbikKLSAgICBsbGludE9wV2l0aFJldHVybihvcGNvZGVOYW1lLCBvcGNv
ZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRP
cFdpdGhEZXN0aW5hdGlvbihvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9v
cGVyYW5kLCB0MCkKICAgICAgICAgbG9hZHEgW2NmciwgdDAsIDhdLCB0MAogICAgICAgICBidHFu
eiB0MCwgbm90Q2VsbE1hc2ssIC5pbW1lZGlhdGUKQEAgLTk4Miw3ICs5ODIsNyBAQCBtYWNybyBl
cXVhbE51bGxDb21wYXJpc29uT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBmbikKICAgICAg
ICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAogICAgIC5kb25lOgogICAgICAgICBmbih0MCkKLSAg
ICAgICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQog
ICAgIGVuZCkKIGVuZAogCkBAIC05OTQsMTggKzk5NCwxOCBAQCBlcXVhbE51bGxDb21wYXJpc29u
T3Aob3BfbmVxX251bGwsIE9wTmVxTnVsbCwKICAgICBtYWNybyAodmFsdWUpIHhvcnEgVmFsdWVU
cnVlLCB2YWx1ZSBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNfdW5kZWZpbmVkX29y
X251bGwsIE9wSXNVbmRlZmluZWRPck51bGwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBy
ZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX3VuZGVmaW5lZF9vcl9udWxsLCBP
cElzVW5kZWZpbmVkT3JOdWxsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MCkKICAgICBhbmRxIH5UYWdVbmRlZmluZWQsIHQwCiAg
ICAgY3FlcSB0MCwgVmFsdWVOdWxsLCB0MAogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgIHJl
dHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKIG1h
Y3JvIHN0cmljdEVxT3Aob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBjcmVhdGVCb29sZWFuKQot
ICAgIGxsaW50T3BXaXRoUmV0dXJuKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoRGVzdGluYXRp
b24ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9yaHMsIHQwKQog
ICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNp
emUsIHQwLCB0MSkKQEAgLTEwNDUsNyArMTA0NSw3IEBAIG1hY3JvIHN0cmljdEVxT3Aob3Bjb2Rl
TmFtZSwgb3Bjb2RlU3RydWN0LCBjcmVhdGVCb29sZWFuKQogCiAgICAgLmRvbmU6CiAgICAgICAg
IGNyZWF0ZUJvb2xlYW4odDUpCi0gICAgICAgIHJldHVybih0NSkKKyAgICAgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCh0NSkKIAogICAgIC5zbG93OgogICAgICAgICBjYWxsU2xvd1BhdGgo
X3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUpCkBAIC0xMTE5LDcgKzExMTksNyBAQCBzdHJpY3RFcXVh
bGl0eUp1bXBPcChqbnN0cmljdGVxLCBPcEpuc3RyaWN0ZXEsCiAgICAgbWFjcm8gKGp1bXAsIHRh
cmdldExhYmVsLCBkaXNwYXRjaCkganVtcCh0YXJnZXRMYWJlbCkgZW5kKQogCiBtYWNybyBwcmVP
cChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb24pCi0gICAgbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9z
cmNEc3QsIHQwKQogICAgICAgICBsb2FkcSBbY2ZyLCB0MCwgOF0sIHQxCiAgICAgICAgICMgc3Jj
RHN0IGluIHQxCkBAIC0xMTM4LDI2ICsxMTM4LDI2IEBAIG1hY3JvIHByZU9wKG9wY29kZU5hbWUs
IG9wY29kZVN0cnVjdCwgaW50ZWdlck9wZXJhdGlvbikKIAogZW5kCiAKLWxsaW50T3BXaXRoUHJv
ZmlsZShvcF90b19udW1iZXIsIE9wVG9OdW1iZXIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCByZXR1cm4pCitsbGludE9wV2l0aFByb2ZpbGUob3BfdG9fbnVtYmVyLCBPcFRvTnVtYmVyLCBt
YWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAg
ICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQw
LCB0MikKICAgICBicWFlcSB0MiwgbnVtYmVyVGFnLCAub3BUb051bWJlcklzSW1tZWRpYXRlCiAg
ICAgYnRxeiB0MiwgbnVtYmVyVGFnLCAub3BUb051bWJlclNsb3cKIC5vcFRvTnVtYmVySXNJbW1l
ZGlhdGU6Ci0gICAgcmV0dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIp
CiAKIC5vcFRvTnVtYmVyU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19udW1i
ZXIpCiAgICAgZGlzcGF0Y2goKQogZW5kKQogCi1sbGludE9wV2l0aFByb2ZpbGUob3BfdG9fbnVt
ZXJpYywgT3BUb051bWVyaWMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCits
bGludE9wV2l0aFByb2ZpbGUob3BfdG9fbnVtZXJpYywgT3BUb051bWVyaWMsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29w
ZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQyKQogICAg
IGJxYWVxIHQyLCBudW1iZXJUYWcsIC5vcFRvTnVtZXJpY0lzSW1tZWRpYXRlCiAgICAgYnRxeiB0
MiwgbnVtYmVyVGFnLCAub3BUb051bWVyaWNTbG93CiAub3BUb051bWVyaWNJc0ltbWVkaWF0ZToK
LSAgICByZXR1cm4odDIpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MikKIAogLm9w
VG9OdW1lcmljU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19udW1lcmljKQpA
QCAtMTE2NSwxMyArMTE2NSwxMyBAQCBsbGludE9wV2l0aFByb2ZpbGUob3BfdG9fbnVtZXJpYywg
T3BUb051bWVyaWMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cgogZW5kKQogCiAK
LWxsaW50T3BXaXRoUmV0dXJuKG9wX3RvX3N0cmluZywgT3BUb1N0cmluZywgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfdG9fc3Ry
aW5nLCBPcFRvU3RyaW5nLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKHNpemUsIHQxLCB0MCkKICAgICBidHFueiB0MCwgbm90Q2VsbE1hc2ssIC5vcFRv
U3RyaW5nU2xvdwogICAgIGJibmVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgU3RyaW5nVHlwZSwgLm9w
VG9TdHJpbmdTbG93CiAub3BUb1N0cmluZ0lzU3RyaW5nOgotICAgIHJldHVybih0MCkKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BUb1N0cmluZ1Nsb3c6CiAgICAgY2Fs
bFNsb3dQYXRoKF9zbG93X3BhdGhfdG9fc3RyaW5nKQpAQCAtMTE3OSwxMiArMTE3OSwxMiBAQCBs
bGludE9wV2l0aFJldHVybihvcF90b19zdHJpbmcsIE9wVG9TdHJpbmcsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCByZXR1cm4pCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhQcm9maWxlKG9wX3Rv
X29iamVjdCwgT3BUb09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikK
K2xsaW50T3BXaXRoUHJvZmlsZShvcF90b19vYmplY3QsIE9wVG9PYmplY3QsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX29w
ZXJhbmQsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDAsIHQyKQogICAg
IGJ0cW56IHQyLCBub3RDZWxsTWFzaywgLm9wVG9PYmplY3RTbG93CiAgICAgYmJiIEpTQ2VsbDo6
bV90eXBlW3QyXSwgT2JqZWN0VHlwZSwgLm9wVG9PYmplY3RTbG93Ci0gICAgcmV0dXJuKHQyKQor
ICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIpCiAKIC5vcFRvT2JqZWN0U2xvdzoKICAg
ICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF90b19vYmplY3QpCkBAIC0xMTkyLDcgKzExOTIsNyBA
QCBsbGludE9wV2l0aFByb2ZpbGUob3BfdG9fb2JqZWN0LCBPcFRvT2JqZWN0LCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEo
b3BfbmVnYXRlLCBPcE5lZ2F0ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX25lZ2F0ZSwgT3BOZWdhdGUsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCkKICAgICBnZXQobV9vcGVyYW5kLCB0MCkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNp
emUsIHQwLCB0MykKICAgICBicWIgdDMsIG51bWJlclRhZywgLm9wTmVnYXRlTm90SW50CkBAIC0x
MjAwLDEyICsxMjAwLDEyIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfbmVnYXRlLCBPcE5lZ2F0
ZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByCiAgICAgbmVnaSB0Mwog
ICAgIG9ycSBudW1iZXJUYWcsIHQzCiAgICAgdXBkYXRlVW5hcnlBcml0aFByb2ZpbGUoc2l6ZSwg
T3BOZWdhdGUsIEFyaXRoUHJvZmlsZUludCwgdDEsIHQyKQotICAgIHJldHVybih0MykKKyAgICBz
ZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQzKQogLm9wTmVnYXRlTm90SW50OgogICAgIGJ0cXog
dDMsIG51bWJlclRhZywgLm9wTmVnYXRlU2xvdwogICAgIHhvcnEgMHg4MDAwMDAwMDAwMDAwMDAw
LCB0MwogICAgIHVwZGF0ZVVuYXJ5QXJpdGhQcm9maWxlKHNpemUsIE9wTmVnYXRlLCBBcml0aFBy
b2ZpbGVOdW1iZXIsIHQxLCB0MikKLSAgICByZXR1cm4odDMpCisgICAgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCh0MykKIAogLm9wTmVnYXRlU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3df
cGF0aF9uZWdhdGUpCkBAIC0xMjE0LDcgKzEyMTQsNyBAQCBlbmQpCiAKIAogbWFjcm8gYmluYXJ5
T3BDdXN0b21TdG9yZShvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIGludGVnZXJPcGVyYXRpb25B
bmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uKQotICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9w
Y29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfJW9wY29kZU5hbWUlLCBv
cGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MCkKICAgICAgICAgZ2V0
KG1fbGhzLCB0MikKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDEp
CkBAIC0xMzI4LDcgKzEzMjgsNyBAQCBiaW5hcnlPcChzdWIsIE9wU3ViLAogICAgIG1hY3JvIChs
aHMsIHJocykgc3ViZCByaHMsIGxocyBlbmQpCiAKIGlmIFg4Nl82NCBvciBYODZfNjRfV0lOCi0g
ICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfbW9kLCBPcE1vZCwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gsIHJldHVybikKKyAgICBsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX21vZCwgT3BNb2Qs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgICAgICBnZXQobV9yaHMsIHQwKQogICAgICAgICBnZXQobV9saHMsIHQyKQogICAgICAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlSW50MzIoc2l6ZSwgdDAsIHQxLCAuc2xvdykKQEAgLTEzNDUs
MTMgKzEzNDUsMTMgQEAgaWYgWDg2XzY0IG9yIFg4Nl82NF9XSU4KICAgICAgICAgY2RxaQogICAg
ICAgICBpZGl2aSB0MwogICAgICAgICBvcnEgbnVtYmVyVGFnLCByMQotICAgICAgICByZXR1cm4o
cjEpCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gocjEpCiAgICAgLm5lZWRzTmVn
WmVyb0NoZWNrOgogICAgICAgICBjZHFpCiAgICAgICAgIGlkaXZpIHQzCiAgICAgICAgIGJ0aXog
cjEsIC5zbG93CiAgICAgICAgIG9ycSBudW1iZXJUYWcsIHIxCi0gICAgICAgIHJldHVybihyMSkK
KyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChyMSkKIAogICAgIC5zbG93OgogICAg
ICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9tb2QpCkBAIC0xMzYxLDcgKzEzNjEsNyBAQCBl
bHNlCiAgICAgc2xvd1BhdGhPcChtb2QpCiBlbmQKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfcG93
LCBPcFBvdywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKK2xsaW50T3BXaXRo
RGVzdGluYXRpb24ob3BfcG93LCBPcFBvdywgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fcmhzLCB0MCkKICAgICBnZXQobV9s
aHMsIHQyKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVJbnQzMihzaXplLCB0MCwgdDEsIC5z
bG93KQpAQCAtMTQwMCwxMSArMTQwMCwxMSBAQCBsbGludE9wV2l0aFJldHVybihvcF9wb3csIE9w
UG93LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQogICAgIGRpc3BhdGNoKCkK
IGVuZCkKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfdW5zaWduZWQsIE9wVW5zaWduZWQsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9w
X3Vuc2lnbmVkLCBPcFVuc2lnbmVkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MikKICAgICBiaWx0IHQyLCAwLCAub3BVbnNpZ25l
ZFNsb3cKLSAgICByZXR1cm4odDIpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MikK
IC5vcFVuc2lnbmVkU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF91bnNpZ25lZCkK
ICAgICBkaXNwYXRjaCgpCkBAIC0xNDEyLDcgKzE0MTIsNyBAQCBlbmQpCiAKIAogbWFjcm8gY29t
bW9uQml0T3Aob3BLaW5kLCBvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9wZXJhdGlvbikKLSAg
ICBvcEtpbmQob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCByZXR1cm4pCisgICAgb3BLaW5kKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3Ry
dWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCkKICAgICAgICAgZ2V0KG1fcmhzLCB0MCkKICAgICAgICAgZ2V0KG1fbGhzLCB0MikKICAgICAg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MCwgdDEpCkBAIC0xNDIxLDcgKzE0MjEs
NyBAQCBtYWNybyBjb21tb25CaXRPcChvcEtpbmQsIG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwg
b3BlcmF0aW9uKQogICAgICAgICBicWIgdDEsIG51bWJlclRhZywgLnNsb3cKICAgICAgICAgb3Bl
cmF0aW9uKHQwLCB0MSkKICAgICAgICAgb3JxIG51bWJlclRhZywgdDAKLSAgICAgICAgcmV0dXJu
KHQwKQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAgICAgLnNsb3c6
CiAgICAgICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoXyVvcGNvZGVOYW1lJSkKQEAgLTE0MzAs
NyArMTQzMCw3IEBAIG1hY3JvIGNvbW1vbkJpdE9wKG9wS2luZCwgb3Bjb2RlTmFtZSwgb3Bjb2Rl
U3RydWN0LCBvcGVyYXRpb24pCiBlbmQKIAogbWFjcm8gYml0T3Aob3Bjb2RlTmFtZSwgb3Bjb2Rl
U3RydWN0LCBvcGVyYXRpb24pCi0gICAgY29tbW9uQml0T3AobGxpbnRPcFdpdGhSZXR1cm4sIG9w
Y29kZU5hbWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0aW9uKQorICAgIGNvbW1vbkJpdE9wKGxsaW50
T3BXaXRoRGVzdGluYXRpb24sIG9wY29kZU5hbWUsIG9wY29kZVN0cnVjdCwgb3BlcmF0aW9uKQog
ZW5kCiAKIG1hY3JvIGJpdE9wUHJvZmlsZWQob3Bjb2RlTmFtZSwgb3Bjb2RlU3RydWN0LCBvcGVy
YXRpb24pCkBAIC0xNDU3LDEyICsxNDU3LDEyIEBAIGJpdE9wUHJvZmlsZWQoYml0b3IsIE9wQml0
b3IsCiBiaXRPcFByb2ZpbGVkKGJpdHhvciwgT3BCaXR4b3IsCiAgICAgbWFjcm8gKGxocywgcmhz
KSB4b3JpIHJocywgbGhzIGVuZCkKIAotbGxpbnRPcFdpdGhQcm9maWxlKG9wX2JpdG5vdCwgT3BC
aXRub3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aFBy
b2ZpbGUob3BfYml0bm90LCBPcEJpdG5vdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDApCiAgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHNpemUsIHQwLCB0MywgLm9wQml0Tm90U2xvdykKICAg
ICBub3RpIHQzCiAgICAgb3JxIG51bWJlclRhZywgdDMKLSAgICByZXR1cm4odDMpCisgICAgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MykKIC5vcEJpdE5vdFNsb3c6CiAgICAgY2FsbFNsb3dQ
YXRoKF9zbG93X3BhdGhfYml0bm90KQogICAgIGRpc3BhdGNoKCkKQEAgLTE0OTIsNjcgKzE0OTIs
NjcgQEAgbGxpbnRPcChvcF9vdmVycmlkZXNfaGFzX2luc3RhbmNlLCBPcE92ZXJyaWRlc0hhc0lu
c3RhbmNlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVy
bihvcF9pc19lbXB0eSwgT3BJc0VtcHR5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0
dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19lbXB0eSwgT3BJc0VtcHR5LCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBn
ZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0
MCkKICAgICBjcWVxIHQwLCBWYWx1ZUVtcHR5LCB0MwogICAgIG9ycSBWYWx1ZUZhbHNlLCB0Mwot
ICAgIHJldHVybih0MykKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQzKQogZW5kKQog
CiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX3R5cGVvZl9pc191bmRlZmluZWQsIE9wVHlwZW9mSXNV
bmRlZmluZWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0
aERlc3RpbmF0aW9uKG9wX3R5cGVvZl9pc191bmRlZmluZWQsIE9wVHlwZW9mSXNVbmRlZmluZWQs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQog
ICAgIGdldChtX29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwg
dDEsIHQwKQogICAgIGJ0cXogdDAsIG5vdENlbGxNYXNrLCAub3BJc1VuZGVmaW5lZENlbGwKICAg
ICBjcWVxIHQwLCBWYWx1ZVVuZGVmaW5lZCwgdDMKICAgICBvcnEgVmFsdWVGYWxzZSwgdDMKLSAg
ICByZXR1cm4odDMpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MykKIC5vcElzVW5k
ZWZpbmVkQ2VsbDoKICAgICBidGJueiBKU0NlbGw6Om1fZmxhZ3NbdDBdLCBNYXNxdWVyYWRlc0Fz
VW5kZWZpbmVkLCAubWFzcXVlcmFkZXNBc1VuZGVmaW5lZAogICAgIG1vdmUgVmFsdWVGYWxzZSwg
dDEKLSAgICByZXR1cm4odDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MSkKIC5t
YXNxdWVyYWRlc0FzVW5kZWZpbmVkOgogICAgIGxvYWRTdHJ1Y3R1cmVXaXRoU2NyYXRjaCh0MCwg
dDMsIHQxKQogICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQogICAgIGxvYWRwIENvZGVCbG9j
azo6bV9nbG9iYWxPYmplY3RbdDFdLCB0MQogICAgIGNwZXEgU3RydWN0dXJlOjptX2dsb2JhbE9i
amVjdFt0M10sIHQxLCB0MAogICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgIHJldHVybih0MCkK
KyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogZW5kKQogCiAKLWxsaW50T3BXaXRo
UmV0dXJuKG9wX2lzX2Jvb2xlYW4sIE9wSXNCb29sZWFuLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19ib29sZWFuLCBPcElz
Qm9vbGVhbiwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2gpCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MSwgdDApCiAgICAgeG9ycSBWYWx1ZUZhbHNlLCB0MAogICAgIHRxeiB0MCwgfjEs
IHQwCiAgICAgb3JxIFZhbHVlRmFsc2UsIHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQpCiAKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfaXNf
bnVtYmVyLCBPcElzTnVtYmVyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQor
bGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF9pc19udW1iZXIsIE9wSXNOdW1iZXIsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldCht
X29wZXJhbmQsIHQxKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6ZSwgdDEsIHQwKQog
ICAgIHRxbnogdDAsIG51bWJlclRhZywgdDEKICAgICBvcnEgVmFsdWVGYWxzZSwgdDEKLSAgICBy
ZXR1cm4odDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MSkKIGVuZCkKIAogaWYg
QklHSU5UMzIKLSAgICBsbGludE9wV2l0aFJldHVybihvcF9pc19iaWdfaW50LCBPcElzQmlnSW50
LCBtYWNybyhzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0
aW5hdGlvbihvcF9pc19iaWdfaW50LCBPcElzQmlnSW50LCBtYWNybyhzaXplLCBnZXQsIGRpc3Bh
dGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgICAgICBnZXQobV9vcGVyYW5kLCB0
MSkKICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDApCiAgICAgICAg
IGJ0cW56IHQwLCBub3RDZWxsTWFzaywgLm5vdENlbGxDYXNlCiAgICAgICAgIGNiZXEgSlNDZWxs
OjptX3R5cGVbdDBdLCBIZWFwQmlnSW50VHlwZSwgdDEKICAgICAgICAgb3JxIFZhbHVlRmFsc2Us
IHQxCi0gICAgICAgIHJldHVybih0MSkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCh0MSkKICAgICAubm90Q2VsbENhc2U6CiAgICAgICAgIGFuZHEgTWFza0JpZ0ludDMyLCB0MAog
ICAgICAgICBjcWVxIHQwLCBUYWdCaWdJbnQzMiwgdDAKICAgICAgICAgb3JxIFZhbHVlRmFsc2Us
IHQwCi0gICAgICAgIHJldHVybih0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCh0MCkKICAgICBlbmQpCiBlbHNlCiAjIGlmIEJJR0lOVDMyIGlzIG5vdCBzdXBwb3J0ZWQgd2Ug
Z2VuZXJhdGUgb3BfaXNfY2VsbF93aXRoX3R5cGUgaW5zdGVhZCBvZiBvcF9pc19iaWdfaW50CkBA
IC0xNTYxLDI4ICsxNTYxLDI4IEBAIGVsc2UKICAgICBlbmQpCiBlbmQKIAotbGxpbnRPcFdpdGhS
ZXR1cm4ob3BfaXNfY2VsbF93aXRoX3R5cGUsIE9wSXNDZWxsV2l0aFR5cGUsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2lzX2Nl
bGxfd2l0aF90eXBlLCBPcElzQ2VsbFdpdGhUeXBlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXR1KHNpemUsIE9wSXNDZWxsV2l0
aFR5cGUsIG1fdHlwZSwgdDApCiAgICAgZ2V0KG1fb3BlcmFuZCwgdDEpCiAgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDMpCiAgICAgYnRxbnogdDMsIG5vdENlbGxNYXNrLCAu
bm90Q2VsbENhc2UKICAgICBjYmVxIEpTQ2VsbDo6bV90eXBlW3QzXSwgdDAsIHQxCiAgICAgb3Jx
IFZhbHVlRmFsc2UsIHQxCi0gICAgcmV0dXJuKHQxKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlz
cGF0Y2godDEpCiAubm90Q2VsbENhc2U6Ci0gICAgcmV0dXJuKFZhbHVlRmFsc2UpCisgICAgc2V0
RGVzdGluYXRpb25BbmREaXNwYXRjaChWYWx1ZUZhbHNlKQogZW5kKQogCiAKLWxsaW50T3BXaXRo
UmV0dXJuKG9wX2lzX29iamVjdCwgT3BJc09iamVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfaXNfb2JqZWN0LCBPcElzT2Jq
ZWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRj
aCkKICAgICBnZXQobV9vcGVyYW5kLCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNp
emUsIHQxLCB0MCkKICAgICBidHFueiB0MCwgbm90Q2VsbE1hc2ssIC5vcElzT2JqZWN0Tm90Q2Vs
bAogICAgIGNiYWVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgT2JqZWN0VHlwZSwgdDEKICAgICBvcnEg
VmFsdWVGYWxzZSwgdDEKLSAgICByZXR1cm4odDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCh0MSkKIC5vcElzT2JqZWN0Tm90Q2VsbDoKLSAgICByZXR1cm4oVmFsdWVGYWxzZSkKKyAg
ICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKFZhbHVlRmFsc2UpCiBlbmQpCiAKIApAQCAtMTYx
OCw3ICsxNjE4LDcgQEAgbWFjcm8gc3RvcmVQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQocHJvcGVy
dHlPZmZzZXRBc0ludCwgb2JqZWN0QW5kU3RvcmFnZSwgdmFsdWUKIGVuZAogCiAKLWxsaW50T3BX
aXRoTWV0YWRhdGEob3BfdHJ5X2dldF9ieV9pZCwgT3BUcnlHZXRCeUlkLCBtYWNybyAoc2l6ZSwg
Z2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3Bf
dHJ5X2dldF9ieV9pZCwgT3BUcnlHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDIsIHQw
KQogICAgIGdldChtX2Jhc2UsIHQwKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNp
emUsIHQwLCB0MywgLm9wVHJ5R2V0QnlJZFNsb3cpCkBAIC0xNjI4LDE0ICsxNjI4LDE0IEBAIGxs
aW50T3BXaXRoTWV0YWRhdGEob3BfdHJ5X2dldF9ieV9pZCwgT3BUcnlHZXRCeUlkLCBtYWNybyAo
c2l6ZSwgZ2V0LCBkaXNwYXRjaCwKICAgICBsb2FkaSBPcFRyeUdldEJ5SWQ6Ok1ldGFkYXRhOjpt
X29mZnNldFt0Ml0sIHQxCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDMs
IHQwKQogICAgIHZhbHVlUHJvZmlsZShPcFRyeUdldEJ5SWQsIG1fcHJvZmlsZSwgdDIsIHQwKQot
ICAgIHJldHVybih0MCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogCiAub3BU
cnlHZXRCeUlkU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90cnlfZ2V0
X2J5X2lkKQogICAgIGRpc3BhdGNoKCkKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9n
ZXRfYnlfaWRfZGlyZWN0LCBPcEdldEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3Bh
dGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWRf
ZGlyZWN0LCBPcEdldEJ5SWREaXJlY3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0MiwgdDApCiAg
ICAgZ2V0KG1fYmFzZSwgdDApCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwg
dDAsIHQzLCAub3BHZXRCeUlkRGlyZWN0U2xvdykKQEAgLTE2NDUsNyArMTY0NSw3IEBAIGxsaW50
T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkX2RpcmVjdCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwCiAgICAgbG9hZGkgT3BHZXRCeUlkRGlyZWN0OjpNZXRhZGF0YTo6
bV9vZmZzZXRbdDJdLCB0MQogICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDEsIHQz
LCB0MCkKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkRGlyZWN0LCBtX3Byb2ZpbGUsIHQyLCB0
MCkKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAog
Lm9wR2V0QnlJZERpcmVjdFNsb3c6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
Z2V0X2J5X2lkX2RpcmVjdCkKQEAgLTE2NTMsNyArMTY1Myw3IEBAIGxsaW50T3BXaXRoTWV0YWRh
dGEob3BfZ2V0X2J5X2lkX2RpcmVjdCwgT3BHZXRCeUlkRGlyZWN0LCBtYWNybyAoc2l6ZSwgZ2V0
LCBkaXNwCiBlbmQpCiAKICMgVGhlIGJhc2Ugb2JqZWN0IGlzIGV4cGVjdGVkIGluIHQzCi1tYWNy
byBwZXJmb3JtR2V0QnlJREhlbHBlcihvcGNvZGVTdHJ1Y3QsIG1vZGVNZXRhZGF0YU5hbWUsIHZh
bHVlUHJvZmlsZU5hbWUsIHNsb3dMYWJlbCwgc2l6ZSwgbWV0YWRhdGEsIHJldHVybikKK21hY3Jv
IHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFtZSwgdmFs
dWVQcm9maWxlTmFtZSwgc2xvd0xhYmVsLCBzaXplLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0MiwgdDEpCiAgICAgbG9hZGIgJW9wY29kZVN0cnVj
dCU6Ok1ldGFkYXRhOjolbW9kZU1ldGFkYXRhTmFtZSUubW9kZVt0Ml0sIHQxCiAKQEAgLTE2NjUs
NyArMTY2NSw3IEBAIG1hY3JvIHBlcmZvcm1HZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9k
ZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxlTmFtZSwgc2xvCiAgICAgbG9hZGlzICVvcGNvZGVT
dHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRhZGF0YU5hbWUlLmRlZmF1bHRNb2RlLmNhY2hlZE9m
ZnNldFt0Ml0sIHQxCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDMsIHQw
KQogICAgIHZhbHVlUHJvZmlsZShvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIHQyLCB0
MCkKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAog
Lm9wR2V0QnlJZFByb3RvTG9hZDoKICAgICBiYm5lcSB0MSwgY29uc3RleHByIEdldEJ5SWRNb2Rl
OjpQcm90b0xvYWQsIC5vcEdldEJ5SWRBcnJheUxlbmd0aApAQCAtMTY3Niw3ICsxNjc2LDcgQEAg
bWFjcm8gcGVyZm9ybUdldEJ5SURIZWxwZXIob3Bjb2RlU3RydWN0LCBtb2RlTWV0YWRhdGFOYW1l
LCB2YWx1ZVByb2ZpbGVOYW1lLCBzbG8KICAgICBsb2FkcCAlb3Bjb2RlU3RydWN0JTo6TWV0YWRh
dGE6OiVtb2RlTWV0YWRhdGFOYW1lJS5wcm90b0xvYWRNb2RlLmNhY2hlZFNsb3RbdDJdLCB0Mwog
ICAgIGxvYWRQcm9wZXJ0eUF0VmFyaWFibGVPZmZzZXQodDEsIHQzLCB0MCkKICAgICB2YWx1ZVBy
b2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCB0MiwgdDApCi0gICAgcmV0dXJu
KHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcEdldEJ5SWRBcnJh
eUxlbmd0aDoKICAgICBiYm5lcSB0MSwgY29uc3RleHByIEdldEJ5SWRNb2RlOjpBcnJheUxlbmd0
aCwgLm9wR2V0QnlJZFVuc2V0CkBAIC0xNjg5LDIxICsxNjg5LDIxIEBAIG1hY3JvIHBlcmZvcm1H
ZXRCeUlESGVscGVyKG9wY29kZVN0cnVjdCwgbW9kZU1ldGFkYXRhTmFtZSwgdmFsdWVQcm9maWxl
TmFtZSwgc2xvCiAgICAgYmlsdCB0MCwgMCwgc2xvd0xhYmVsCiAgICAgb3JxIG51bWJlclRhZywg
dDAKICAgICB2YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCB0Miwg
dDApCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAK
IC5vcEdldEJ5SWRVbnNldDoKICAgICBsb2FkaSBKU0NlbGw6Om1fc3RydWN0dXJlSURbdDNdLCB0
MQogICAgIGxvYWRpICVvcGNvZGVTdHJ1Y3QlOjpNZXRhZGF0YTo6JW1vZGVNZXRhZGF0YU5hbWUl
LnVuc2V0TW9kZS5zdHJ1Y3R1cmVJRFt0Ml0sIHQwCiAgICAgYmluZXEgdDAsIHQxLCBzbG93TGFi
ZWwKICAgICB2YWx1ZVByb2ZpbGUob3Bjb2RlU3RydWN0LCB2YWx1ZVByb2ZpbGVOYW1lLCB0Miwg
VmFsdWVVbmRlZmluZWQpCi0gICAgcmV0dXJuKFZhbHVlVW5kZWZpbmVkKQorICAgIHNldERlc3Rp
bmF0aW9uQW5kRGlzcGF0Y2goVmFsdWVVbmRlZmluZWQpCiAKIGVuZAogCi1sbGludE9wV2l0aE1l
dGFkYXRhKG9wX2dldF9ieV9pZCwgT3BHZXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X2lkLCBP
cEdldEJ5SWQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV9iYXNlLCB0MCkKICAgICBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlQ2VsbChzaXplLCB0MCwgdDMsIC5vcEdldEJ5SWRTbG93KQotICAgIHBlcmZvcm1H
ZXRCeUlESGVscGVyKE9wR2V0QnlJZCwgbV9tb2RlTWV0YWRhdGEsIG1fcHJvZmlsZSwgLm9wR2V0
QnlJZFNsb3csIHNpemUsIG1ldGFkYXRhLCByZXR1cm4pCisgICAgcGVyZm9ybUdldEJ5SURIZWxw
ZXIoT3BHZXRCeUlkLCBtX21vZGVNZXRhZGF0YSwgbV9wcm9maWxlLCAub3BHZXRCeUlkU2xvdywg
c2l6ZSwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAKIC5vcEdldEJ5SWRT
bG93OgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZCkKQEAgLTE3
MTMsMTIgKzE3MTMsMTIgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfaWQsIE9wR2V0
QnlJZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXQKICAgICBnZXR0ZXJTZXR0
ZXJPU1JFeGl0UmV0dXJuUG9pbnQob3BfZ2V0X2J5X2lkLCBzaXplKQogICAgIG1ldGFkYXRhKHQy
LCB0MykKICAgICB2YWx1ZVByb2ZpbGUoT3BHZXRCeUlkLCBtX3Byb2ZpbGUsIHQyLCByMCkKLSAg
ICByZXR1cm4ocjApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaChyMCkKIAogZW5kKQog
CiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfcHJvdG90eXBlX29mLCBPcEdldFByb3RvdHlw
ZU9mLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9m
aWxlKG9wX2dldF9wcm90b3R5cGVfb2YsIE9wR2V0UHJvdG90eXBlT2YsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGdldChtX3ZhbHVl
LCB0MSkKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQxLCB0MCkKIApAQCAtMTcz
MSw3ICsxNzMxLDcgQEAgbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dldF9wcm90b3R5cGVfb2YsIE9w
R2V0UHJvdG90eXBlT2YsIG1hY3JvIChzaXplLCBnZXQsIGRpc3AKIAogICAgIGxvYWRxIFN0cnVj
dHVyZTo6bV9wcm90b3R5cGVbdDJdLCB0MgogICAgIGJ0cXogdDIsIC5vcEdldFByb3RvdHlwZU9m
UG9seVByb3RvCi0gICAgcmV0dXJuKHQyKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDIpCiAKIC5vcEdldFByb3RvdHlwZU9mU2xvdzoKICAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0
aF9nZXRfcHJvdG90eXBlX29mKQpAQCAtMTc0MCwxMSArMTc0MCwxMSBAQCBsbGludE9wV2l0aFBy
b2ZpbGUob3BfZ2V0X3Byb3RvdHlwZV9vZiwgT3BHZXRQcm90b3R5cGVPZiwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcAogLm9wR2V0UHJvdG90eXBlT2ZQb2x5UHJvdG86CiAgICAgbW92ZSBrbm93blBv
bHlQcm90b09mZnNldCwgdDEKICAgICBsb2FkSW5saW5lT2Zmc2V0KHQxLCB0MCwgdDMpCi0gICAg
cmV0dXJuKHQzKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDMpCiBlbmQpCiAKIAot
bGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfYnlfaWQsIE9wUHV0QnlJZCwgbWFjcm8gKHNpemUs
IGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9w
X3B1dF9ieV9pZCwgT3BQdXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fYmFzZSwgdDMpCiAgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwgdDMsIHQwLCAub3BQdXRCeUlkU2xvdykK
ICAgICBtZXRhZGF0YSh0NSwgdDIpCkBAIC0xODE3LDcgKzE4MTcsNyBAQCBsbGludE9wV2l0aE1l
dGFkYXRhKG9wX3B1dF9ieV9pZCwgT3BQdXRCeUlkLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdAogZW5kKQogCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X2J5X3ZhbCwg
T3BHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4p
CitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9ieV92YWwsIE9wR2V0QnlWYWwsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkK
ICAgICBtYWNybyBmaW5pc2hHZXRCeVZhbChyZXN1bHQsIHNjcmF0Y2gpCiAgICAgICAgIGdldCht
X2RzdCwgc2NyYXRjaCkKICAgICAgICAgc3RvcmVxIHJlc3VsdCwgW2Nmciwgc2NyYXRjaCwgOF0K
QEAgLTE5MDUsMTEgKzE5MDUsMTEgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9nZXRfYnlfdmFs
LCBPcEdldEJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWQKICAgICBnZXR0
ZXJTZXR0ZXJPU1JFeGl0UmV0dXJuUG9pbnQob3BfZ2V0X2J5X3ZhbCwgc2l6ZSkKICAgICBtZXRh
ZGF0YSh0NSwgdDIpCiAgICAgdmFsdWVQcm9maWxlKE9wR2V0QnlWYWwsIG1fcHJvZmlsZSwgdDUs
IHIwKQotICAgIHJldHVybihyMCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHIwKQog
CiBlbmQpCiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3BfZ2V0X3ByaXZhdGVfbmFtZSwgT3BHZXRQ
cml2YXRlTmFtZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4p
CitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9wcml2YXRlX25hbWUsIE9wR2V0UHJpdmF0ZU5h
bWUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25B
bmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0MiwgdDApCiAKICAgICAjIFNsb3cgcGF0aCBpZiB0
aGUgcHJpdmF0ZSBmaWVsZCBpcyBzdGFsZQpAQCAtMTkyNywxNCArMTkyNywxNCBAQCBsbGludE9w
V2l0aE1ldGFkYXRhKG9wX2dldF9wcml2YXRlX25hbWUsIE9wR2V0UHJpdmF0ZU5hbWUsIG1hY3Jv
IChzaXplLCBnZXQsIGRpcwogICAgIGxvYWRpIE9wR2V0UHJpdmF0ZU5hbWU6Ok1ldGFkYXRhOjpt
X29mZnNldFt0Ml0sIHQxCiAgICAgbG9hZFByb3BlcnR5QXRWYXJpYWJsZU9mZnNldCh0MSwgdDMs
IHQwKQogICAgIHZhbHVlUHJvZmlsZShPcEdldFByaXZhdGVOYW1lLCBtX3Byb2ZpbGUsIHQyLCB0
MCkKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAog
Lm9wR2V0UHJpdmF0ZU5hbWVTbG93OgogICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X2dldF9wcml2YXRlX25hbWUpCiAgICAgZGlzcGF0Y2goKQogZW5kKQogCi1sbGludE9wV2l0aE1l
dGFkYXRhKG9wX3B1dF9wcml2YXRlX25hbWUsIE9wUHV0UHJpdmF0ZU5hbWUsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF9wdXRfcHJpdmF0ZV9uYW1lLCBPcFB1dFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1f
YmFzZSwgdDMpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUNlbGwoc2l6ZSwgdDMsIHQwLCAu
b3BQdXRQcml2YXRlTmFtZVNsb3cpCiAgICAgZ2V0KG1fcHJvcGVydHksIHQzKQpAQCAtMTk3Nyw3
ICsxOTc3LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wdXRfcHJpdmF0ZV9uYW1lLCBPcFB1
dFByaXZhdGVOYW1lLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXMKICAgICBkaXNwYXRjaCgpCiBlbmQp
CiAKLWxsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3ByaXZhdGVfYnJhbmQsIE9wU2V0UHJpdmF0
ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKK2xs
aW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0X3ByaXZhdGVfYnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5k
LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5k
RGlzcGF0Y2gpCiAgICAgZ2V0KG1fYmFzZSwgdDMpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZUNlbGwoc2l6ZSwgdDMsIHQwLCAub3BTZXRQcml2YXRlQnJhbmRTbG93KQogICAgIGdldChtX2Jy
YW5kLCB0MykKQEAgLTE5OTksNyArMTk5OSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bfc2V0
X3ByaXZhdGVfYnJhbmQsIE9wU2V0UHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkCiAg
ICAgZGlzcGF0Y2goKQogZW5kKQogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2NoZWNrX3ByaXZh
dGVfYnJhbmQsIE9wQ2hlY2tQcml2YXRlQnJhbmQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNo
LCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9jaGVja19wcml2YXRl
X2JyYW5kLCBPcENoZWNrUHJpdmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwg
bWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQy
KQogICAgIGdldChtX2Jhc2UsIHQzKQogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVDZWxsKHNp
emUsIHQzLCB0MCwgLm9wQ2hlY2tQcml2YXRlQnJhbmRTbG93KQpAQCAtMjAxOSw3ICsyMDE5LDcg
QEAgbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9jaGVja19wcml2YXRlX2JyYW5kLCBPcENoZWNrUHJp
dmF0ZUJyYW5kLCBtYWNybyAoc2l6ZSwgZ2UKIGVuZCkKIAogbWFjcm8gcHV0QnlWYWxPcChvcGNv
ZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG9zckV4aXRQb2ludCkKLSAgICBsbGludE9wV2l0aE1ldGFk
YXRhKG9wXyVvcGNvZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNw
YXRjaCwgbWV0YWRhdGEsIHJldHVybikKKyAgICBsbGludE9wV2l0aE1ldGFkYXRhKG9wXyVvcGNv
ZGVOYW1lJSwgb3Bjb2RlU3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRh
dGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIG1hY3JvIGNvbnRpZ3VvdXNQ
dXRCeVZhbChzdG9yZUNhbGxiYWNrKQogICAgICAgICAgICAgYmlhZXEgdDMsIC1zaXplb2YgSW5k
ZXhpbmdIZWFkZXIgKyBJbmRleGluZ0hlYWRlcjo6dS5sZW5ndGhzLnB1YmxpY0xlbmd0aFt0MF0s
IC5vdXRPZkJvdW5kcwogICAgICAgICAuc3RvcmVSZXN1bHQ6CkBAIC0yMjA0LDcgKzIyMDQsNyBA
QCB1bmRlZmluZWRPck51bGxKdW1wT3AoanVuZGVmaW5lZF9vcl9udWxsLCBPcEp1bmRlZmluZWRP
ck51bGwsCiB1bmRlZmluZWRPck51bGxKdW1wT3Aoam51bmRlZmluZWRfb3JfbnVsbCwgT3BKbnVu
ZGVmaW5lZE9yTnVsbCwKICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnFuZXEgdmFsdWUsIFZh
bHVlTnVsbCwgdGFyZ2V0IGVuZCkKIAotbGxpbnRPcFdpdGhSZXR1cm4ob3BfamVxX3B0ciwgT3BK
ZXFQdHIsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERl
c3RpbmF0aW9uKG9wX2plcV9wdHIsIE9wSmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBnZXQobV92YWx1ZSwgdDApCiAgICAg
Z2V0KG1fc3BlY2lhbFBvaW50ZXIsIHQxKQogICAgIGxvYWRDb25zdGFudChzaXplLCB0MSwgdDIp
CkBAIC0yMjE3LDcgKzIyMTcsNyBAQCBsbGludE9wV2l0aFJldHVybihvcF9qZXFfcHRyLCBPcEpl
cVB0ciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikKIGVuZCkKIAogCi1sbGlu
dE9wV2l0aE1ldGFkYXRhKG9wX2puZXFfcHRyLCBPcEpuZXFQdHIsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9qbmVx
X3B0ciwgT3BKbmVxUHRyLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fdmFsdWUsIHQwKQogICAgIGdldCht
X3NwZWNpYWxQb2ludGVyLCB0MSkKICAgICBsb2FkQ29uc3RhbnQoc2l6ZSwgdDEsIHQyKQpAQCAt
MjMxMSw3ICsyMzExLDcgQEAgZW5kCiAKIAogbWFjcm8gY29tcGFyZU9wKG9wY29kZU5hbWUsIG9w
Y29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmVBbmRTZXQsIGRvdWJsZUNvbXBhcmVBbmRTZXQpCi0g
ICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfJW9wY29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3Jv
IChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0aW5hdGlv
bihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIGdldChtX2xocywgdDIpCiAg
ICAgICAgIGdldChtX3JocywgdDApCiAgICAgICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUoc2l6
ZSwgdDAsIHQxKQpAQCAtMjMyMCw3ICsyMzIwLDcgQEAgbWFjcm8gY29tcGFyZU9wKG9wY29kZU5h
bWUsIG9wY29kZVN0cnVjdCwgaW50ZWdlckNvbXBhcmVBbmRTZXQsIGRvdWJsZUNvbXBhcmVBbmQK
ICAgICAgICAgYnFiIHQxLCBudW1iZXJUYWcsIC5vcDJOb3RJbnQKICAgICAgICAgaW50ZWdlckNv
bXBhcmVBbmRTZXQodDAsIHQxLCB0MCkKICAgICAgICAgb3JxIFZhbHVlRmFsc2UsIHQwCi0gICAg
ICAgIHJldHVybih0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAog
ICAgIC5vcDFOb3RJbnQ6CiAgICAgICAgIGJ0cXogdDAsIG51bWJlclRhZywgLnNsb3cKQEAgLTIz
MzgsNyArMjMzOCw3IEBAIG1hY3JvIGNvbXBhcmVPcChvcGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3Qs
IGludGVnZXJDb21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJlQW5kCiAgICAgICAgIGZxMmQgdDAs
IGZ0MAogICAgICAgICBkb3VibGVDb21wYXJlQW5kU2V0KGZ0MCwgZnQxLCB0MCkKICAgICAgICAg
b3JxIFZhbHVlRmFsc2UsIHQwCi0gICAgICAgIHJldHVybih0MCkKKyAgICAgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaCh0MCkKIAogICAgIC5vcDJOb3RJbnQ6CiAgICAgICAgIGNpMmRzIHQw
LCBmdDAKQEAgLTIzNDcsNyArMjM0Nyw3IEBAIG1hY3JvIGNvbXBhcmVPcChvcGNvZGVOYW1lLCBv
cGNvZGVTdHJ1Y3QsIGludGVnZXJDb21wYXJlQW5kU2V0LCBkb3VibGVDb21wYXJlQW5kCiAgICAg
ICAgIGZxMmQgdDEsIGZ0MQogICAgICAgICBkb3VibGVDb21wYXJlQW5kU2V0KGZ0MCwgZnQxLCB0
MCkKICAgICAgICAgb3JxIFZhbHVlRmFsc2UsIHQwCi0gICAgICAgIHJldHVybih0MCkKKyAgICAg
ICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIAogICAgIC5zbG93OgogICAgICAgICBj
YWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF8lb3Bjb2RlTmFtZSUpCkBAIC0yMzU3LDE0ICsyMzU3LDE0
IEBAIGVuZAogCiAKIG1hY3JvIGNvbXBhcmVVbnNpZ25lZE9wKG9wY29kZU5hbWUsIG9wY29kZVN0
cnVjdCwgaW50ZWdlckNvbXBhcmVBbmRTZXQpCi0gICAgbGxpbnRPcFdpdGhSZXR1cm4ob3BfJW9w
Y29kZU5hbWUlLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1
cm4pCisgICAgbGxpbnRPcFdpdGhEZXN0aW5hdGlvbihvcF8lb3Bjb2RlTmFtZSUsIG9wY29kZVN0
cnVjdCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0
Y2gpCiAgICAgICAgIGdldChtX2xocywgdDIpCiAgICAgICAgIGdldChtX3JocywgIHQwKQogICAg
ICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQwLCB0MSkKICAgICAgICAgbG9hZENv
bnN0YW50T3JWYXJpYWJsZShzaXplLCB0MiwgdDApCiAgICAgICAgIGludGVnZXJDb21wYXJlQW5k
U2V0KHQwLCB0MSwgdDApCiAgICAgICAgIG9ycSBWYWx1ZUZhbHNlLCB0MAotICAgICAgICByZXR1
cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAgICAgZW5kKQog
ZW5kCiAKQEAgLTI0NzYsNyArMjQ3Niw3IEBAIG1hY3JvIGNhbGxIZWxwZXIob3Bjb2RlTmFtZSwg
c2xvd1BhdGgsIG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwgZHN0VmlydHVhCiAKICAg
ICBsb2FkcCAlb3Bjb2RlU3RydWN0JTo6TWV0YWRhdGE6Om1fY2FsbExpbmtJbmZvLm1fY2FsbGVl
T3JDb2RlQmxvY2tbdDVdLCB0MQogICAgIGJ0cHogdDEsIChjb25zdGV4cHIgQ2FsbExpbmtJbmZv
Ojpwb2x5bW9ycGhpY0NhbGxlZU1hc2spLCAubm90UG9seW1vcnBoaWMKLSAgICAjIHByZXBhcmVD
YWxsIGluIExMSW50IGRvZXMgbm90IHVudGFnIHJldHVybiBhZGRyZXNzLiBTbyB3ZSBuZWVkIHRv
IHVudGFnIHRoYXQgaW4gdGhlIHRyYW1wb2xpbmUgc2VwYXJhdGVseS4KKyAgICAjIHByZXBhcmVD
YWxsIGluIExMSW50IGRvZXMgbm90IHVudGFnIHRoZSByZXR1cm4gYWRkcmVzcy4gU28gd2UgbmVl
ZCB0byB1bnRhZyB0aGF0IGluIHRoZSB0cmFtcG9saW5lIHNlcGFyYXRlbHkuCiAgICAgIyBCdXQg
d2Ugc2hvdWxkIG5vdCB1bnRhZyB0aGF0IGZvciBwb2x5bW9ycGhpYyBjYWxsIGNhc2Ugc2luY2Ug
aXQgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIHBvbHltb3JwaGljIHRodW5rIHNpZGUuCiAgICAgcHJl
cGFyZVBvbHltb3JwaGljKG9wY29kZU5hbWUsIHNpemUsIG9wY29kZVN0cnVjdCwgdmFsdWVQcm9m
aWxlTmFtZSwgZHN0VmlydHVhbFJlZ2lzdGVyLCBkaXNwYXRjaCwgSlNFbnRyeVB0clRhZykKICAg
ICBqbXAgLmdvUG9seW1vcnBoaWMKQEAgLTI1MDIsNyArMjUwMiw3IEBAIG1hY3JvIGNhbGxIZWxw
ZXIob3Bjb2RlTmFtZSwgc2xvd1BhdGgsIG9wY29kZVN0cnVjdCwgdmFsdWVQcm9maWxlTmFtZSwg
ZHN0VmlydHVhCiBlbmQKIAogbWFjcm8gY29tbW9uQ2FsbE9wKG9wY29kZU5hbWUsIHNsb3dQYXRo
LCBvcGNvZGVTdHJ1Y3QsIHByZXBhcmVDYWxsLCBpbnZva2VDYWxsLCBwcmVwYXJlUG9seW1vcnBo
aWMsIHByZXBhcmVTbG93Q2FsbCwgcHJvbG9ndWUpCi0gICAgbGxpbnRPcFdpdGhNZXRhZGF0YShv
cGNvZGVOYW1lLCBvcGNvZGVTdHJ1Y3QsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgcmV0dXJuKQorICAgIGxsaW50T3BXaXRoTWV0YWRhdGEob3Bjb2RlTmFtZSwgb3Bjb2Rl
U3RydWN0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgICAgIG1ldGFkYXRhKHQ1LCB0MCkKIAogICAgICAgICBwcm9s
b2d1ZShtYWNybyAoZmllbGROYW1lLCBkc3QpCkBAIC0yNTU0LDcgKzI1NTQsNyBAQCBtYWNybyBk
b0NhbGxWYXJhcmdzKG9wY29kZU5hbWUsIHNpemUsIGdldCwgb3Bjb2RlU3RydWN0LCB2YWx1ZVBy
b2ZpbGVOYW1lLCBkc3RWaQogCiAgICAgICAgICAgICBsb2FkcCAlb3Bjb2RlU3RydWN0JTo6TWV0
YWRhdGE6Om1fY2FsbExpbmtJbmZvLm1fY2FsbGVlT3JDb2RlQmxvY2tbdDVdLCB0MQogICAgICAg
ICAgICAgYnRweiB0MSwgKGNvbnN0ZXhwciBDYWxsTGlua0luZm86OnBvbHltb3JwaGljQ2FsbGVl
TWFzayksIC5ub3RQb2x5bW9ycGhpYwotICAgICAgICAgICAgIyBwcmVwYXJlQ2FsbCBpbiBMTElu
dCBkb2VzIG5vdCB1bnRhZyByZXR1cm4gYWRkcmVzcy4gU28gd2UgbmVlZCB0byB1bnRhZyB0aGF0
IGluIHRoZSB0cmFtcG9saW5lIHNlcGFyYXRlbHkuCisgICAgICAgICAgICAjIHByZXBhcmVDYWxs
IGluIExMSW50IGRvZXMgbm90IHVudGFnIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2ggYWRkcmVz
cy4gU28gd2UgbmVlZCB0byB1bnRhZyB0aGF0IGluIHRoZSB0cmFtcG9saW5lIHNlcGFyYXRlbHku
CiAgICAgICAgICAgICAjIEJ1dCB3ZSBzaG91bGQgbm90IHVudGFnIHRoYXQgZm9yIHBvbHltb3Jw
aGljIGNhbGwgY2FzZSBzaW5jZSBpdCBzaG91bGQgYmUgZG9uZSBpbiB0aGUgcG9seW1vcnBoaWMg
dGh1bmsgc2lkZS4KICAgICAgICAgICAgIHByZXBhcmVQb2x5bW9ycGhpYyhvcGNvZGVOYW1lLCBz
aXplLCBvcGNvZGVTdHJ1Y3QsIHZhbHVlUHJvZmlsZU5hbWUsIGRzdFZpcnR1YWxSZWdpc3Rlciwg
ZGlzcGF0Y2gsIEpTRW50cnlQdHJUYWcpCiAgICAgICAgICAgICBqbXAgLmdvUG9seW1vcnBoaWMK
QEAgLTI1OTAsMTMgKzI1OTAsMTMgQEAgbGxpbnRPcChvcF9yZXQsIE9wUmV0LCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCkKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90b19wcmlt
aXRpdmUsIE9wVG9QcmltaXRpdmUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4p
CitsbGludE9wV2l0aERlc3RpbmF0aW9uKG9wX3RvX3ByaW1pdGl2ZSwgT3BUb1ByaW1pdGl2ZSwg
bWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAg
ICAgZ2V0KG1fc3JjLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHNpemUsIHQyLCB0
MCkKICAgICBidHFueiB0MCwgbm90Q2VsbE1hc2ssIC5vcFRvUHJpbWl0aXZlSXNJbW0KICAgICBi
YmFlcSBKU0NlbGw6Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIC5vcFRvUHJpbWl0aXZlU2xvd0Nh
c2UKIC5vcFRvUHJpbWl0aXZlSXNJbW06Ci0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2godDApCiAKIC5vcFRvUHJpbWl0aXZlU2xvd0Nhc2U6CiAgICAgY2FsbFNs
b3dQYXRoKF9zbG93X3BhdGhfdG9fcHJpbWl0aXZlKQpAQCAtMjYwNCw3ICsyNjA0LDcgQEAgbGxp
bnRPcFdpdGhSZXR1cm4ob3BfdG9fcHJpbWl0aXZlLCBPcFRvUHJpbWl0aXZlLCBtYWNybyAoc2l6
ZSwgZ2V0LCBkaXNwYXRjaCwgcmUKIGVuZCkKIAogCi1sbGludE9wV2l0aFJldHVybihvcF90b19w
cm9wZXJ0eV9rZXksIE9wVG9Qcm9wZXJ0eUtleSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHJldHVybikKK2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfdG9fcHJvcGVydHlfa2V5LCBPcFRv
UHJvcGVydHlLZXksIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQogICAgIGdldChtX3NyYywgdDIpCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJs
ZShzaXplLCB0MiwgdDApCiAKQEAgLTI2MTMsNyArMjYxMyw3IEBAIGxsaW50T3BXaXRoUmV0dXJu
KG9wX3RvX3Byb3BlcnR5X2tleSwgT3BUb1Byb3BlcnR5S2V5LCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjCiAgICAgYmJuZXEgSlNDZWxsOjptX3R5cGVbdDBdLCBTdHJpbmdUeXBlLCAub3BUb1By
b3BlcnR5S2V5U2xvdwogCiAuZG9uZToKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRp
b25BbmREaXNwYXRjaCh0MCkKIAogLm9wVG9Qcm9wZXJ0eUtleVNsb3c6CiAgICAgY2FsbFNsb3dQ
YXRoKF9zbG93X3BhdGhfdG9fcHJvcGVydHlfa2V5KQpAQCAtMjYyMyw3ICsyNjIzLDcgQEAgZW5k
KQogCiBjb21tb25PcChsbGludF9vcF9jYXRjaCwgbWFjcm8gKCkgZW5kLCBtYWNybyAoc2l6ZSkK
ICAgICAjIFRoaXMgaXMgd2hlcmUgd2UgZW5kIHVwIGZyb20gdGhlIEpJVCdzIHRocm93IHRyYW1w
b2xpbmUgKGJlY2F1c2UgdGhlCi0gICAgIyBtYWNoaW5lIGNvZGUgcmV0dXJuIGFkZHJlc3Mgd2ls
bCBiZSBzZXQgdG8gX2xsaW50X29wX2NhdGNoKSwgYW5kIGZyb20KKyAgICAjIG1hY2hpbmUgY29k
ZSBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoIGFkZHJlc3Mgd2lsbCBiZSBzZXQgdG8gX2xsaW50
X29wX2NhdGNoKSwgYW5kIGZyb20KICAgICAjIHRoZSBpbnRlcnByZXRlcidzIHRocm93IHRyYW1w
b2xpbmUgKHNlZSBfbGxpbnRfdGhyb3dfdHJhbXBvbGluZSkuCiAgICAgIyBUaGUgdGhyb3dpbmcg
Y29kZSBtdXN0IGhhdmUga25vd24gdGhhdCB3ZSB3ZXJlIHRocm93aW5nIHRvIHRoZSBpbnRlcnBy
ZXRlciwKICAgICAjIGFuZCBoYXZlIHNldCBWTTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93
LgpAQCAtMjc4NSwxNiArMjc4NSwxNiBAQCBtYWNybyB2YXJJbmplY3Rpb25DaGVjayhzbG93UGF0
aCwgc2NyYXRjaCkKICAgICBiYmVxIFdhdGNocG9pbnRTZXQ6Om1fc3RhdGVbc2NyYXRjaF0sIElz
SW52YWxpZGF0ZWQsIHNsb3dQYXRoCiBlbmQKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9yZXNv
bHZlX3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1l
dGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX3Jlc29sdmVfc2NvcGUsIE9w
UmVzb2x2ZVNjb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAgICAgbWV0YWRhdGEodDUsIHQwKQogCiAgICAgbWFjcm8g
Z2V0Q29uc3RhbnRTY29wZShkc3QpCiAgICAgICAgIGxvYWRwIE9wUmVzb2x2ZVNjb3BlOjpNZXRh
ZGF0YTo6bV9jb25zdGFudFNjb3BlW3Q1XSwgZHN0CiAgICAgZW5kCiAKLSAgICBtYWNybyByZXR1
cm5Db25zdGFudFNjb3BlKCkKKyAgICBtYWNybyBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoQ29u
c3RhbnRTY29wZSgpCiAgICAgICAgIGdldENvbnN0YW50U2NvcGUodDApCi0gICAgICAgIHJldHVy
bih0MCkKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKICAgICBlbmQKIAog
ICAgIG1hY3JvIGdsb2JhbExleGljYWxCaW5kaW5nRXBvY2hDaGVjayhzbG93UGF0aCwgZ2xvYmFs
T2JqZWN0LCBzY3JhdGNoKQpAQCAtMjgxNCw3ICsyODE0LDcgQEAgbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gKICAgICAgICAgYnRpbnogdDIsIC5yZXNvbHZlU2NvcGVMb29wCiAKICAgICAucmVzb2x2
ZVNjb3BlTG9vcEVuZDoKLSAgICAgICAgcmV0dXJuKHQwKQorICAgICAgICBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKHQwKQogICAgIGVuZAogCiAgICAgbG9hZGkgT3BSZXNvbHZlU2NvcGU6Ok1l
dGFkYXRhOjptX3Jlc29sdmVUeXBlW3Q1XSwgdDAKQEAgLTI4MjMsMTUgKzI4MjMsMTUgQEAgbGxp
bnRPcFdpdGhNZXRhZGF0YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8g
KHNpemUsIGdldCwgZGlzcGF0Y2gKICAgICBiaW5lcSB0MCwgR2xvYmFsUHJvcGVydHksIC5yR2xv
YmFsVmFyCiAgICAgZ2V0Q29uc3RhbnRTY29wZSh0MCkKICAgICBnbG9iYWxMZXhpY2FsQmluZGlu
Z0Vwb2NoQ2hlY2soLnJEeW5hbWljLCB0MCwgdDIpCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERl
c3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAKIC5yR2xvYmFsVmFyOgogICAgIGJpbmVxIHQwLCBH
bG9iYWxWYXIsIC5yR2xvYmFsTGV4aWNhbFZhcgotICAgIHJldHVybkNvbnN0YW50U2NvcGUoKQor
ICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2hDb25zdGFudFNjb3BlKCkKIAogLnJHbG9iYWxM
ZXhpY2FsVmFyOgogICAgIGJpbmVxIHQwLCBHbG9iYWxMZXhpY2FsVmFyLCAuckNsb3N1cmVWYXIK
LSAgICByZXR1cm5Db25zdGFudFNjb3BlKCkKKyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
Q29uc3RhbnRTY29wZSgpCiAKIC5yQ2xvc3VyZVZhcjoKICAgICBiaW5lcSB0MCwgQ2xvc3VyZVZh
ciwgLnJNb2R1bGVWYXIKQEAgLTI4MzksMjQgKzI4MzksMjQgQEAgbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9yZXNvbHZlX3Njb3BlLCBPcFJlc29sdmVTY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlz
cGF0Y2gKIAogLnJNb2R1bGVWYXI6CiAgICAgYmluZXEgdDAsIE1vZHVsZVZhciwgLnJHbG9iYWxQ
cm9wZXJ0eVdpdGhWYXJJbmplY3Rpb25DaGVja3MKLSAgICByZXR1cm5Db25zdGFudFNjb3BlKCkK
KyAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoQ29uc3RhbnRTY29wZSgpCiAKIC5yR2xvYmFs
UHJvcGVydHlXaXRoVmFySW5qZWN0aW9uQ2hlY2tzOgogICAgIGJpbmVxIHQwLCBHbG9iYWxQcm9w
ZXJ0eVdpdGhWYXJJbmplY3Rpb25DaGVja3MsIC5yR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNo
ZWNrcwogICAgIHZhckluamVjdGlvbkNoZWNrKC5yRHluYW1pYywgdDIpCiAgICAgZ2V0Q29uc3Rh
bnRTY29wZSh0MCkKICAgICBnbG9iYWxMZXhpY2FsQmluZGluZ0Vwb2NoQ2hlY2soLnJEeW5hbWlj
LCB0MCwgdDIpCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2go
dDApCiAKIC5yR2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrczoKICAgICBiaW5lcSB0MCwg
R2xvYmFsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcywgLnJHbG9iYWxMZXhpY2FsVmFyV2l0aFZh
ckluamVjdGlvbkNoZWNrcwogICAgIHZhckluamVjdGlvbkNoZWNrKC5yRHluYW1pYywgdDIpCi0g
ICAgcmV0dXJuQ29uc3RhbnRTY29wZSgpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaENv
bnN0YW50U2NvcGUoKQogCiAuckdsb2JhbExleGljYWxWYXJXaXRoVmFySW5qZWN0aW9uQ2hlY2tz
OgogICAgIGJpbmVxIHQwLCBHbG9iYWxMZXhpY2FsVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcywg
LnJDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNoZWNrcwogICAgIHZhckluamVjdGlvbkNoZWNr
KC5yRHluYW1pYywgdDIpCi0gICAgcmV0dXJuQ29uc3RhbnRTY29wZSgpCisgICAgc2V0RGVzdGlu
YXRpb25BbmREaXNwYXRjaENvbnN0YW50U2NvcGUoKQogCiAuckNsb3N1cmVWYXJXaXRoVmFySW5q
ZWN0aW9uQ2hlY2tzOgogICAgIGJpbmVxIHQwLCBDbG9zdXJlVmFyV2l0aFZhckluamVjdGlvbkNo
ZWNrcywgLnJEeW5hbWljCkBAIC0yODc3LDE0ICsyODc3LDE0IEBAIG1hY3JvIGxvYWRXaXRoU3Ry
dWN0dXJlQ2hlY2sob3Bjb2RlU3RydWN0LCBnZXQsIHNsb3dQYXRoKQogICAgIGJwbmVxIHQyLCB0
MSwgc2xvd1BhdGgKIGVuZAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9tX3Njb3Bl
LCBPcEdldEZyb21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBy
ZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9tX3Njb3BlLCBPcEdldEZyb21T
Y29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlv
bkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQ1LCB0MCkKIAogICAgIG1hY3JvIGdldFByb3Bl
cnR5KCkKICAgICAgICAgbG9hZHAgT3BHZXRGcm9tU2NvcGU6Ok1ldGFkYXRhOjptX29wZXJhbmRb
dDVdLCB0MQogICAgICAgICBsb2FkUHJvcGVydHlBdFZhcmlhYmxlT2Zmc2V0KHQxLCB0MCwgdDIp
CiAgICAgICAgIHZhbHVlUHJvZmlsZShPcEdldEZyb21TY29wZSwgbV9wcm9maWxlLCB0NSwgdDIp
Ci0gICAgICAgIHJldHVybih0MikKKyAgICAgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MikKICAgICBlbmQKIAogICAgIG1hY3JvIGdldEdsb2JhbFZhcih0ZHpDaGVja0lmTmVjZXNzYXJ5
KQpAQCAtMjg5MiwxNCArMjg5MiwxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX2dldF9mcm9t
X3Njb3BlLCBPcEdldEZyb21TY29wZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0YwogICAgICAg
ICBsb2FkcSBbdDBdLCB0MAogICAgICAgICB0ZHpDaGVja0lmTmVjZXNzYXJ5KHQwKQogICAgICAg
ICB2YWx1ZVByb2ZpbGUoT3BHZXRGcm9tU2NvcGUsIG1fcHJvZmlsZSwgdDUsIHQwKQotICAgICAg
ICByZXR1cm4odDApCisgICAgICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiAgICAg
ZW5kCiAKICAgICBtYWNybyBnZXRDbG9zdXJlVmFyKCkKICAgICAgICAgbG9hZHAgT3BHZXRGcm9t
U2NvcGU6Ok1ldGFkYXRhOjptX29wZXJhbmRbdDVdLCB0MQogICAgICAgICBsb2FkcSBKU0xleGlj
YWxFbnZpcm9ubWVudF92YXJpYWJsZXNbdDAsIHQxLCA4XSwgdDAKICAgICAgICAgdmFsdWVQcm9m
aWxlKE9wR2V0RnJvbVNjb3BlLCBtX3Byb2ZpbGUsIHQ1LCB0MCkKLSAgICAgICAgcmV0dXJuKHQw
KQorICAgICAgICBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKHQwKQogICAgIGVuZAogCiAgICAg
bG9hZGkgT3BHZXRGcm9tU2NvcGU6Ok1ldGFkYXRhOjptX2dldFB1dEluZm8gKyBHZXRQdXRJbmZv
OjptX29wZXJhbmRbdDVdLCB0MApAQCAtMjk1Niw3ICsyOTU2LDcgQEAgbGxpbnRPcFdpdGhNZXRh
ZGF0YShvcF9nZXRfZnJvbV9zY29wZSwgT3BHZXRGcm9tU2NvcGUsIG1hY3JvIChzaXplLCBnZXQs
IGRpc3BhdGMKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX3B1dF90b19zY29wZSwg
T3BQdXRUb1Njb3BlLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVy
bikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3RvX3Njb3BlLCBPcFB1dFRvU2NvcGUsIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBtYWNybyBwdXRQcm9wZXJ0eSgpCiAgICAgICAgIGdldChtX3ZhbHVlLCB0MSkK
ICAgICAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZShzaXplLCB0MSwgdDIpCkBAIC0zMDg3LDEx
ICszMDg3LDExIEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfcHV0X3RvX3Njb3BlLCBPcFB1dFRv
U2NvcGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtCiBlbmQpCiAKIAotbGxpbnRPcFdp
dGhQcm9maWxlKG9wX2dldF9mcm9tX2FyZ3VtZW50cywgT3BHZXRGcm9tQXJndW1lbnRzLCBtYWNy
byAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgcmV0dXJuKQorbGxpbnRPcFdpdGhQcm9maWxlKG9wX2dl
dF9mcm9tX2FyZ3VtZW50cywgT3BHZXRGcm9tQXJndW1lbnRzLCBtYWNybyAoc2l6ZSwgZ2V0LCBk
aXNwYXRjaCwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBsb2FkVmFyaWFibGUoZ2V0
LCBtX2FyZ3VtZW50cywgdDApCiAgICAgZ2V0dShzaXplLCBPcEdldEZyb21Bcmd1bWVudHMsIG1f
aW5kZXgsIHQxKQogICAgIGxvYWRxIERpcmVjdEFyZ3VtZW50c19zdG9yYWdlW3QwLCB0MSwgOF0s
IHQwCi0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiBl
bmQpCiAKIApAQCAtMzEwNiwxNCArMzEwNiwxNCBAQCBsbGludE9wKG9wX3B1dF90b19hcmd1bWVu
dHMsIE9wUHV0VG9Bcmd1bWVudHMsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQogZW5kKQog
CiAKLWxsaW50T3BXaXRoUmV0dXJuKG9wX2dldF9wYXJlbnRfc2NvcGUsIE9wR2V0UGFyZW50U2Nv
cGUsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCitsbGludE9wV2l0aERlc3Rp
bmF0aW9uKG9wX2dldF9wYXJlbnRfc2NvcGUsIE9wR2V0UGFyZW50U2NvcGUsIG1hY3JvIChzaXpl
LCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIGxvYWRWYXJp
YWJsZShnZXQsIG1fc2NvcGUsIHQwKQogICAgIGxvYWRwIEpTU2NvcGU6Om1fbmV4dFt0MF0sIHQw
Ci0gICAgcmV0dXJuKHQwKQorICAgIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDApCiBlbmQp
CiAKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxlX3R5cGUsIE9wUHJvZmlsZVR5cGUs
IG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQorbGxpbnRPcFdp
dGhNZXRhZGF0YShvcF9wcm9maWxlX3R5cGUsIE9wUHJvZmlsZVR5cGUsIG1hY3JvIChzaXplLCBn
ZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCkKICAgICBs
b2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKICAgICBsb2FkcCBDb2RlQmxvY2s6Om1fdm1bdDFdLCB0
MQogICAgICMgdDEgaXMgaG9sZGluZyB0aGUgcG9pbnRlciB0byB0aGUgdHlwZVByb2ZpbGVyTG9n
LgpAQCAtMzE1NSwxNCArMzE1NSwxNCBAQCBsbGludE9wV2l0aE1ldGFkYXRhKG9wX3Byb2ZpbGVf
dHlwZSwgT3BQcm9maWxlVHlwZSwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsCiBlbmQpCiAK
IAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxlX2NvbnRyb2xfZmxvdywgT3BQcm9maWxl
Q29udHJvbEZsb3csIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJu
KQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9wcm9maWxlX2NvbnRyb2xfZmxvdywgT3BQcm9maWxl
Q29udHJvbEZsb3csIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVz
dGluYXRpb25BbmREaXNwYXRjaCkKICAgICBtZXRhZGF0YSh0NSwgdDApCiAgICAgbG9hZHAgT3BQ
cm9maWxlQ29udHJvbEZsb3c6Ok1ldGFkYXRhOjptX2Jhc2ljQmxvY2tMb2NhdGlvblt0NV0sIHQw
CiAgICAgYWRkcSAxLCBCYXNpY0Jsb2NrTG9jYXRpb246Om1fZXhlY3V0aW9uQ291bnRbdDBdCiAg
ICAgZGlzcGF0Y2goKQogZW5kKQogCi1sbGludE9wV2l0aFJldHVybihvcF9nZXRfcmVzdF9sZW5n
dGgsIE9wR2V0UmVzdExlbmd0aCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHJldHVybikK
K2xsaW50T3BXaXRoRGVzdGluYXRpb24ob3BfZ2V0X3Jlc3RfbGVuZ3RoLCBPcEdldFJlc3RMZW5n
dGgsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNo
KQogICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50SW5jbHVkaW5nVGhpc1tj
ZnJdLCB0MAogICAgIHN1YmkgMSwgdDAKICAgICBnZXR1KHNpemUsIE9wR2V0UmVzdExlbmd0aCwg
bV9udW1QYXJhbWV0ZXJzVG9Ta2lwLCB0MSkKQEAgLTMxNzMsMTEgKzMxNzMsMTEgQEAgbGxpbnRP
cFdpdGhSZXR1cm4ob3BfZ2V0X3Jlc3RfbGVuZ3RoLCBPcEdldFJlc3RMZW5ndGgsIG1hY3JvIChz
aXplLCBnZXQsIGRpc3BhdGMKICAgICBtb3ZlIDAsIHQwCiAuYm94VXA6CiAgICAgb3JxIG51bWJl
clRhZywgdDAKLSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0
MCkKIGVuZCkKIAogCi1sbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX29wZW4sIE9wSXRl
cmF0b3JPcGVuLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikK
K2xsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3Jfb3BlbiwgT3BJdGVyYXRvck9wZW4sIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNw
YXRjaCkKICAgICBtYWNybyBmYXN0TmFycm93KCkKICAgICAgICAgY2FsbFNsb3dQYXRoKF9pdGVy
YXRvcl9vcGVuX3RyeV9mYXN0X25hcnJvdykKICAgICBlbmQKQEAgLTMyMzEsNyArMzIzMSw3IEBA
IGxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3Jfb3BlbiwgT3BJdGVyYXRvck9wZW4sIG1h
Y3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShv
cF9pdGVyYXRvcl9uZXh0LCBPcEl0ZXJhdG9yTmV4dCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0
Y2gsIG1ldGFkYXRhLCByZXR1cm4pCitsbGludE9wV2l0aE1ldGFkYXRhKG9wX2l0ZXJhdG9yX25l
eHQsIE9wSXRlcmF0b3JOZXh0LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCiAKICAgICBsb2FkVmFyaWFibGUoZ2V0LCBtX25l
eHQsIHQwKQogICAgIGJ0cW56IHQwLCB0MCwgLml0ZXJhdG9yTmV4dEdlbmVyaWMKQEAgLTMzMTUs
NyArMzMxNSw3IEBAIGxsaW50T3BXaXRoTWV0YWRhdGEob3BfaXRlcmF0b3JfbmV4dCwgT3BJdGVy
YXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoCiAgICAgZGlzcGF0Y2goKQogZW5k
KQogCi1sbGludE9wV2l0aFJldHVybihvcF9nZXRfcHJvcGVydHlfZW51bWVyYXRvciwgT3BHZXRQ
cm9wZXJ0eUVudW1lcmF0b3IsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCByZXR1cm4pCits
bGludE9wV2l0aERlc3RpbmF0aW9uKG9wX2dldF9wcm9wZXJ0eV9lbnVtZXJhdG9yLCBPcEdldFBy
b3BlcnR5RW51bWVyYXRvciwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0
aW9uQW5kRGlzcGF0Y2gpCiAgICAgZ2V0KG1fYmFzZSwgdDEpCiAgICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZUNlbGwoc2l6ZSwgdDEsIHQwLCAuc2xvd1BhdGgpCiAKQEAgLTMzMzIsNyArMzMzMiw3
IEBAIGxsaW50T3BXaXRoUmV0dXJuKG9wX2dldF9wcm9wZXJ0eV9lbnVtZXJhdG9yLCBPcEdldFBy
b3BlcnR5RW51bWVyYXRvciwgbWFjcm8gKHNpCiAgICAgYnRweiB0MSwgLnNsb3dQYXRoCiAgICAg
YnRwbnogdDEsIChjb25zdGV4cHIgU3RydWN0dXJlUmFyZURhdGE6OmNhY2hlZFByb3BlcnR5TmFt
ZUVudW1lcmF0b3JJc1ZhbGlkYXRlZFZpYVRyYXZlcnNpbmdGbGFnKSwgLnNsb3dQYXRoCiAKLSAg
ICByZXR1cm4odDEpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MSkKIAogLnNsb3dQ
YXRoOgogICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRoX2dldF9wcm9wZXJ0eV9lbnVtZXJhdG9y
KQpAQCAtMzM3MCw3ICszMzcwLDcgQEAgbGxpbnRPcChvcF9lbnVtZXJhdG9yX25leHQsIE9wRW51
bWVyYXRvck5leHQsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoKQogICAgIGRpc3BhdGNoKCkK
IGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2dldF9ieV92YWwsIE9w
RW51bWVyYXRvckdldEJ5VmFsLCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEs
IHJldHVybikKK2xsaW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9nZXRfYnlfdmFsLCBP
cEVudW1lcmF0b3JHZXRCeVZhbCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRh
LCBzZXREZXN0aW5hdGlvbkFuZERpc3BhdGNoKQogICAgIG1ldGFkYXRhKHQ1LCB0MCkKIAogICAg
IGxvYWRWYXJpYWJsZShnZXQsIG1fbW9kZSwgdDApCkBAIC0zNDA2LDE0ICszNDA2LDE0IEBAIGxs
aW50T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9nZXRfYnlfdmFsLCBPcEVudW1lcmF0b3JH
ZXRCeVZhbCwgbWFjcm8gKHNpemUsCiAKIC5kb25lOgogICAgIHZhbHVlUHJvZmlsZShPcEVudW1l
cmF0b3JHZXRCeVZhbCwgbV9wcm9maWxlLCB0NSwgdDIpCi0gICAgcmV0dXJuKHQyKQorICAgIHNl
dERlc3RpbmF0aW9uQW5kRGlzcGF0Y2godDIpCiAKIC5nZXRTbG93UGF0aDoKICAgICBjYWxsU2xv
d1BhdGgoX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX2dldF9ieV92YWwpCiAgICAgZGlzcGF0Y2goKQog
ZW5kKQogCi1tYWNybyBoYXNQcm9wZXJ0eUltcGwob3Bjb2RlU3RydWN0LCBzaXplLCBnZXQsIGRp
c3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuLCBzbG93UGF0aCkKK21hY3JvIGhhc1Byb3BlcnR5SW1w
bChvcGNvZGVTdHJ1Y3QsIHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5h
dGlvbkFuZERpc3BhdGNoLCBzbG93UGF0aCkKICAgICBtZXRhZGF0YSh0NSwgdDApCiAKICAgICBs
b2FkVmFyaWFibGUoZ2V0LCBtX21vZGUsIHQwKQpAQCAtMzQzMiwyNiArMzQzMiwyNiBAQCBtYWNy
byBoYXNQcm9wZXJ0eUltcGwob3Bjb2RlU3RydWN0LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgcmV0dXJuLCBzbG93UAogICAgIGJpbmVxIHQyLCBKU0NlbGw6Om1fc3RydWN0dXJlSURb
dDBdLCAuY2FsbFNsb3dQYXRoCiAKICAgICBtb3ZlIFZhbHVlVHJ1ZSwgdDIKLSAgICByZXR1cm4o
dDIpCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MikKIAogLmNhbGxTbG93UGF0aDoK
ICAgICBjYWxsU2xvd1BhdGgoc2xvd1BhdGgpCiAgICAgZGlzcGF0Y2goKQogZW5kCiAKLWxsaW50
T3BXaXRoTWV0YWRhdGEob3BfZW51bWVyYXRvcl9pbl9ieV92YWwsIE9wRW51bWVyYXRvckluQnlW
YWwsIG1hY3JvIChzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgcmV0dXJuKQotICAgIGhh
c1Byb3BlcnR5SW1wbChPcEVudW1lcmF0b3JJbkJ5VmFsLCBzaXplLCBnZXQsIGRpc3BhdGNoLCBt
ZXRhZGF0YSwgcmV0dXJuLCBfc2xvd19wYXRoX2VudW1lcmF0b3JfaW5fYnlfdmFsKQorbGxpbnRP
cFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2luX2J5X3ZhbCwgT3BFbnVtZXJhdG9ySW5CeVZh
bCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIG1ldGFkYXRhLCBzZXREZXN0aW5hdGlvbkFu
ZERpc3BhdGNoKQorICAgIGhhc1Byb3BlcnR5SW1wbChPcEVudW1lcmF0b3JJbkJ5VmFsLCBzaXpl
LCBnZXQsIGRpc3BhdGNoLCBtZXRhZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCwgX3Ns
b3dfcGF0aF9lbnVtZXJhdG9yX2luX2J5X3ZhbCkKIGVuZCkKIAotbGxpbnRPcFdpdGhNZXRhZGF0
YShvcF9lbnVtZXJhdG9yX2hhc19vd25fcHJvcGVydHksIE9wRW51bWVyYXRvckhhc093blByb3Bl
cnR5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRjaCwgbWV0YWRhdGEsIHJldHVybikKLSAgICBo
YXNQcm9wZXJ0eUltcGwoT3BFbnVtZXJhdG9ySGFzT3duUHJvcGVydHksIHNpemUsIGdldCwgZGlz
cGF0Y2gsIG1ldGFkYXRhLCByZXR1cm4sIF9zbG93X3BhdGhfZW51bWVyYXRvcl9oYXNfb3duX3By
b3BlcnR5KQorbGxpbnRPcFdpdGhNZXRhZGF0YShvcF9lbnVtZXJhdG9yX2hhc19vd25fcHJvcGVy
dHksIE9wRW51bWVyYXRvckhhc093blByb3BlcnR5LCBtYWNybyAoc2l6ZSwgZ2V0LCBkaXNwYXRj
aCwgbWV0YWRhdGEsIHNldERlc3RpbmF0aW9uQW5kRGlzcGF0Y2gpCisgICAgaGFzUHJvcGVydHlJ
bXBsKE9wRW51bWVyYXRvckhhc093blByb3BlcnR5LCBzaXplLCBnZXQsIGRpc3BhdGNoLCBtZXRh
ZGF0YSwgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCwgX3Nsb3dfcGF0aF9lbnVtZXJhdG9yX2hh
c19vd25fcHJvcGVydHkpCiBlbmQpCiAKLWxsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfaW50ZXJu
YWxfZmllbGQsIE9wR2V0SW50ZXJuYWxGaWVsZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gs
IHJldHVybikKK2xsaW50T3BXaXRoUHJvZmlsZShvcF9nZXRfaW50ZXJuYWxfZmllbGQsIE9wR2V0
SW50ZXJuYWxGaWVsZCwgbWFjcm8gKHNpemUsIGdldCwgZGlzcGF0Y2gsIHNldERlc3RpbmF0aW9u
QW5kRGlzcGF0Y2gpCiAgICAgbG9hZFZhcmlhYmxlKGdldCwgbV9iYXNlLCB0MSkKICAgICBnZXR1
KHNpemUsIE9wR2V0SW50ZXJuYWxGaWVsZCwgbV9pbmRleCwgdDIpCiAgICAgbG9hZHEgSlNJbnRl
cm5hbEZpZWxkT2JqZWN0SW1wbF9pbnRlcm5hbEZpZWxkc1t0MSwgdDIsIFNsb3RTaXplXSwgdDAK
LSAgICByZXR1cm4odDApCisgICAgc2V0RGVzdGluYXRpb25BbmREaXNwYXRjaCh0MCkKIGVuZCkK
IAogbGxpbnRPcChvcF9wdXRfaW50ZXJuYWxfZmllbGQsIE9wUHV0SW50ZXJuYWxGaWVsZCwgbWFj
cm8gKHNpemUsIGdldCwgZGlzcGF0Y2gpCg==
</data>
<flag name="review"
          id="481759"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
    <flag name="commit-queue"
          id="481774"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>