<?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>238313</bug_id>
          
          <creation_ts>2022-03-23 23:58:45 -0700</creation_ts>
          <short_desc>[JSC] JSRemoteFunction thunk should materialize code-pointer</short_desc>
          <delta_ts>2022-03-24 16:42:57 -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>RESOLVED</bug_status>
          <resolution>FIXED</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>alecflett</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jfernandez</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>pascoe</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>rego</cc>
    
    <cc>saam</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>svillar</cc>
    
    <cc>tommyw</cc>
    
    <cc>toyoshim</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1854597</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-23 23:58:45 -0700</bug_when>
    <thetext>[JSC] JSRemoteFunction thunk should materialize code-pointer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854599</commentid>
    <comment_count>1</comment_count>
      <attachid>455615</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-23 23:59:58 -0700</bug_when>
    <thetext>Created attachment 455615
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854606</commentid>
    <comment_count>2</comment_count>
      <attachid>455619</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-24 00:33:13 -0700</bug_when>
    <thetext>Created attachment 455619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854858</commentid>
    <comment_count>3</comment_count>
      <attachid>455619</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-03-24 14:28:01 -0700</bug_when>
    <thetext>Comment on attachment 455619
Patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        Any GC can jettison CodeBlock&apos;s JITCode. It means that it is possible that JITCode is discarded because
&gt; +        of wrapper creation for arguments of remote function. It causes occasional crashes on JSTests/stress/shadow-realm-evaluate.js
&gt; +        test. This patch fixes it by materializing code pointer if it is already jettisoned.

I suggest rephrasing this as:

When invoking a JSRemoteFunction, we must first wrap the arguments passed to it.  The wrapping operation may trigger a GC, and GC can jettison JIT code.  As a result, even though we know that the target JSFunction has JIT code that we want to execute, the JIT code may be jettisoned (while wrapping the arguments for it) before we get to the call.  This resulted in occasional crashes on the JSTests/stress/shadow-realm-evaluate.js test.

This patch fixes this by doing a null check on the JIT code just before calling it, and if null (i.e. the JIT code has been jettisoned), re-materializing the JIT code first before making the call.

&gt; Source/JavaScriptCore/jit/ThunkGenerators.cpp:1539
&gt; +    // Any GC can potentially jettison JIT code in JSFunction. This means that calling operationGetWrappedValueForTarget already discarded
&gt; +    // the code. We should check and materialize it here. At this point, once we got the code. So, we can always materialize the code.

I suggest rephrasing this as:

The calls to operationGetWrappedValueForTarget above may GC, and any GC can potentially jettison the JIT code in the target JSFunction. If we find that the JIT code is null (i.e. has been jettisoned), then we need to re-materialize it for the call below. Note that we know that operationMaterializeRemoteFunctionTargetCode should be able to re-materialize the JIT code (except for any OOME) because we only went down this code path after we found a non-null JIT code (in the noCode check) above i.e. it should be possible to materialize the JIT code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854863</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-24 14:40:30 -0700</bug_when>
    <thetext>Sounds good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854864</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-24 14:42:09 -0700</bug_when>
    <thetext>Committed r291815 (248842@trunk): &lt;https://commits.webkit.org/248842@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854865</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-24 14:43:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/90791656&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854895</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 16:04:14 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854896</commentid>
    <comment_count>8</comment_count>
      <attachid>455699</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 16:04:16 -0700</bug_when>
    <thetext>Created attachment 455699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854933</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 16:42:57 -0700</bug_when>
    <thetext>Bad webkit-patch upload.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455615</attachid>
            <date>2022-03-23 23:59:58 -0700</date>
            <delta_ts>2022-03-24 00:33:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238313-20220323235957.patch</filename>
            <type>text/plain</type>
            <size>7824</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YWE2NWE0N2JkOThlOGI5M2I1ZjQ1N2IzNjRmZDdjOWJhMTczNmI5Li5lZjEwY2I5NzRlYzQxMmU4
MTkzYThhNjgzNTRlNmNjMDM1ZDdiOGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMi0wMy0yMyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEpTUmVtb3RlRnVuY3Rpb24gdGh1bmsgc2hvdWxkIG1hdGVyaWFs
aXplIGNvZGUtcG9pbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM4MzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQW55IEdDIGNhbiBqZXR0aXNvbiBDb2RlQmxvY2sncyBKSVRDb2RlLiBJdCBtZWFu
cyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRoYXQgSklUQ29kZSBpcyBkaXNjYXJkZWQgYmVjYXVzZQor
ICAgICAgICBvZiB3cmFwcGVyIGNyZWF0aW9uIGZvciBhcmd1bWVudHMgb2YgcmVtb3RlIGZ1bmN0
aW9uLiBXZSBzaG91bGQgbWF0ZXJpYWxpemUgY29kZS1wb2ludGVyIGp1c3QgYmVmb3JlCisgICAg
ICAgIGNhbGxpbmcgaXQuCisKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgIChKU0M6OkpTQ19ERUZJTkVfSklUX09QRVJBVElPTik6CisgICAgICAgICogaml0L0pJVE9w
ZXJhdGlvbnMuaDoKKyAgICAgICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmNwcDoKKyAgICAgICAg
KEpTQzo6cmVtb3RlRnVuY3Rpb25DYWxsR2VuZXJhdG9yKToKKwogMjAyMi0wMy0yMyAgR2V6YSBM
b3JlICA8Z2xvcmVAaWdhbGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBGaXggcmVtb3RlRnVuY3Rp
b25DYWxsR2VuZXJhdG9yIG9uIE1JUFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuY3BwCmluZGV4IGFiNjZlYTQyOWQ0ODUwZWI3YzFiYmRlNjZmYzkxZDJiZGQzY2Vl
MzYuLmEyZmQwY2Y2Njg3NmRkMDQzZWU2NmFlZDA5MGQyYTJjYTVmMTA4Y2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMTU4LDYgKzE1OCwyMiBA
QCBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uR2V0V3JhcHBlZFZhbHVlRm9yQ2Fs
bGVyLCBFbmNvZGVkSlNWYWx1ZSwgKEpTUgogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
SlNWYWx1ZTo6ZW5jb2RlKGdldFdyYXBwZWRWYWx1ZShnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVj
dCwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpKSk7CiB9CiAKK0pTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25NYXRlcmlhbGl6ZVJlbW90ZUZ1bmN0aW9uVGFyZ2V0Q29kZSwg
dm9pZCosIChKU1JlbW90ZUZ1bmN0aW9uKiBjYWxsZWUpKQoreworICAgIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSBjYWxsZWUtPmdsb2JhbE9iamVjdCgpOworICAgIFZNJiB2bSA9IGds
b2JhbE9iamVjdC0+dm0oKTsKKworICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gREVDTEFSRV9D
QUxMX0ZSQU1FKHZtKTsKKyAgICBKSVRPcGVyYXRpb25Qcm9sb2d1ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIodm0sIGNhbGxGcmFtZSk7CisgICAgQVNTRVJUKGlzUmVtb3RlRnVuY3Rpb24odm0sIGNh
bGxlZSkpOworCisgICAgYXV0byogdGFyZ2V0RnVuY3Rpb24gPSBqc0Nhc3Q8SlNGdW5jdGlvbio+
KGNhbGxlZS0+dGFyZ2V0RnVuY3Rpb24oKSk7IC8vIFdlIGNhbGwgdGhpcyBmdW5jdGlvbiBvbmx5
IHdoZW4gSlNSZW1vdGVGdW5jdGlvbidzIHRhcmdldCBpcyBKU0Z1bmN0aW9uLgorICAgIEV4ZWN1
dGFibGVCYXNlKiBleGVjdXRhYmxlID0gdGFyZ2V0RnVuY3Rpb24tPmV4ZWN1dGFibGUoKTsKKyAg
ICBBU1NFUlQoZXhlY3V0YWJsZS0+aGFzSklUQ29kZUZvckNhbGwoKSk7CisgICAgLy8gRm9yY2Ug
dGhlIGV4ZWN1dGFibGUgdG8gY2FjaGUgaXRzIGFyaXR5IGVudHJ5cG9pbnQuCisgICAgcmV0dXJu
IGV4ZWN1dGFibGUtPmVudHJ5cG9pbnRGb3IoQ29kZUZvckNhbGwsIE11c3RDaGVja0FyaXR5KS5l
eGVjdXRhYmxlQWRkcmVzcygpOworfQorCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0
aW9uVGhyb3dSZW1vdGVGdW5jdGlvbkV4Y2VwdGlvbiwgRW5jb2RlZEpTVmFsdWUsIChKU1JlbW90
ZUZ1bmN0aW9uKiBjYWxsZWUpKQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBjYWxsZWUtPmdsb2JhbE9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9w
ZXJhdGlvbnMuaAppbmRleCAyYTU5ZjY0ZTg4NWFkNWEyNWUxODY3MmY5NmMzZGQ1YmI4NjViZDBm
Li5hNjJhZTYwZTE5M2ZjNzljY2M0YjQ0NGJmNDcxYTAxN2I4MGEzOTc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTYxLDYgKzE2MSw3IEBAIEpTQ19E
RUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3JGcm9t
VGh1bmssIHZvaWQsIChKU0dsCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRo
cm93SXRlcmF0b3JSZXN1bHRJc05vdE9iamVjdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KikpOwog
SlNDX0RFQ0xBUkVfSklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXcmFwcGVkVmFsdWVGb3JDYWxs
ZXIsIEVuY29kZWRKU1ZhbHVlLCAoSlNSZW1vdGVGdW5jdGlvbiosIEVuY29kZWRKU1ZhbHVlKSk7
CiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdyYXBwZWRWYWx1ZUZvclRh
cmdldCwgRW5jb2RlZEpTVmFsdWUsIChKU1JlbW90ZUZ1bmN0aW9uKiwgRW5jb2RlZEpTVmFsdWUp
KTsKK0pTQ19ERUNMQVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0ZXJpYWxpemVSZW1vdGVG
dW5jdGlvblRhcmdldENvZGUsIHZvaWQqLCAoSlNSZW1vdGVGdW5jdGlvbiopKTsKIEpTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dSZW1vdGVGdW5jdGlvbkV4Y2VwdGlvbiwg
RW5jb2RlZEpTVmFsdWUsIChKU1JlbW90ZUZ1bmN0aW9uKikpOwogCiBKU0NfREVDTEFSRV9KSVRf
T1BFUkFUSU9OKG9wZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yLCB2b2lkLCAoQ29kZUJs
b2NrKikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVy
YXRvcnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3Bw
CmluZGV4IGQ3NTM4YWIzYjU2Y2JlNjQ1YzNjYWQ2ZmM2ZWNkOGZjNDk4NWRkN2MuLmRlNTU1Mjdi
YjBlMzdhZmU1OWNhZTJjNWY0M2VjNDA5NjIwZjBjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5jcHAKQEAgLTE1MDIsOCArMTUwMiw4IEBAIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gcmVtb3RlRnVuY3Rpb25DYWxsR2VuZXJh
dG9yKFZNJiB2bSkKIAogICAgICAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIGppdC5h
ZGRyZXNzRm9yKGxvb3BJbmRleCkpOwogCi0gICAgICAgIGppdC5wcmVwYXJlQ2FsbE9wZXJhdGlv
bih2bSk7CiAgICAgICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25HZXRX
cmFwcGVkVmFsdWVGb3JUYXJnZXQpPihHUFJJbmZvOjpyZWdUMCwgdmFsdWVSZWdzKTsKKyAgICAg
ICAgaml0LnByZXBhcmVDYWxsT3BlcmF0aW9uKHZtKTsKICAgICAgICAgaml0Lm1vdmUoQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRhZ0NGdW5jdGlvbjxPcGVyYXRpb25QdHJUYWc+KG9wZXJh
dGlvbkdldFdyYXBwZWRWYWx1ZUZvclRhcmdldCkpLCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAg
ICAgICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMCwgT3Bl
cmF0aW9uUHRyVGFnKTsKICAgICAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCwgT3Bl
cmF0aW9uUHRyVGFnKTsKQEAgLTE1MjQsMTYgKzE1MjQsMjcgQEAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPEpJVFRodW5rUHRyVGFnPiByZW1vdGVGdW5jdGlvbkNhbGxHZW5lcmF0b3IoVk0mIHZtKQog
ICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNS
ZW1vdGVGdW5jdGlvbjo6b2Zmc2V0T2ZUYXJnZXRGdW5jdGlvbigpKSwgR1BSSW5mbzo6cmVnVDIp
OwogICAgIGppdC5zdG9yZUNlbGwoR1BSSW5mbzo6cmVnVDIsIENDYWxsSGVscGVyczo6Y2FsbGVl
RnJhbWVTbG90KENhbGxGcmFtZVNsb3Q6OmNhbGxlZSkpOwogCi0gICAgaml0LmxvYWRQdHIoQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4
ZWN1dGFibGVPclJhcmVEYXRhKCkpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgYXV0byBoYXNFeGVj
dXRhYmxlID0gaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpy
ZWdUMCwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcp
KTsKLSAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAs
IEZ1bmN0aW9uUmFyZURhdGE6Om9mZnNldE9mRXhlY3V0YWJsZSgpIC0gSlNGdW5jdGlvbjo6cmFy
ZURhdGFUYWcpLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGVP
clJhcmVEYXRhKCkpLCBHUFJJbmZvOjpyZWdUMSk7CisgICAgYXV0byBoYXNFeGVjdXRhYmxlID0g
aml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMSwgQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpKTsKKyAgICBq
aXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDEsIEZ1bmN0aW9u
UmFyZURhdGE6Om9mZnNldE9mRXhlY3V0YWJsZSgpIC0gSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcp
LCBHUFJJbmZvOjpyZWdUMSk7CiAgICAgaGFzRXhlY3V0YWJsZS5saW5rKCZqaXQpOwogCiAgICAg
aml0LmxvYWRQdHIoCiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKLSAgICAgICAgICAg
IEdQUkluZm86OnJlZ1QwLCBFeGVjdXRhYmxlQmFzZTo6b2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5
Q2hlY2tGb3IoQ29kZUZvckNhbGwpKSwKKyAgICAgICAgICAgIEdQUkluZm86OnJlZ1QxLCBFeGVj
dXRhYmxlQmFzZTo6b2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3IoQ29kZUZvckNhbGwp
KSwKICAgICAgICAgR1BSSW5mbzo6cmVnVDApOworICAgIGF1dG8gY29kZUV4aXN0cyA9IGppdC5i
cmFuY2hUZXN0UHRyKENDYWxsSGVscGVyczo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDApOwogCisg
ICAgLy8gQW55IEdDIGNhbiBwb3RlbnRpYWxseSBqZXR0aXNvbiBKSVQgY29kZSBpbiBKU0Z1bmN0
aW9uLiBUaGlzIG1lYW5zIHRoYXQgY2FsbGluZyBvcGVyYXRpb25HZXRXcmFwcGVkVmFsdWVGb3JU
YXJnZXQgYWxyZWFkeSBkaXNjYXJkZWQKKyAgICAvLyB0aGUgY29kZS4gV2Ugc2hvdWxkIGNoZWNr
IGFuZCBtYXRlcmlhbGl6ZSBpdCBoZXJlLiBBdCB0aGlzIHBvaW50LCBvbmNlIHdlIGdvdCB0aGUg
Y29kZS4gU28sIHdlIGNhbiBhbHdheXMgbWF0ZXJpYWxpemUgdGhlIGNvZGUuCisgICAgaml0LnNl
dHVwQXJndW1lbnRzPGRlY2x0eXBlKG9wZXJhdGlvbk1hdGVyaWFsaXplUmVtb3RlRnVuY3Rpb25U
YXJnZXRDb2RlKT4oR1BSSW5mbzo6cmVnVDIpOworICAgIGppdC5wcmVwYXJlQ2FsbE9wZXJhdGlv
bih2bSk7CisgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRhZ0NGdW5j
dGlvbjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbk1hdGVyaWFsaXplUmVtb3RlRnVuY3Rpb25U
YXJnZXRDb2RlKSksIEdQUkluZm86Om5vbkFyZ0dQUjApOworICAgIGVtaXRQb2ludGVyVmFsaWRh
dGlvbihqaXQsIEdQUkluZm86Om5vbkFyZ0dQUjAsIE9wZXJhdGlvblB0clRhZyk7CisgICAgaml0
LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCwgT3BlcmF0aW9uUHRyVGFnKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KEdQUkluZm86OnJldHVyblZhbHVlR1BSID09IEdQUkluZm86OnJlZ1QwKTsKKworICAg
IGNvZGVFeGlzdHMubGluaygmaml0KTsKICAgICAvLyBCYXNlZCBvbiB0aGUgY2hlY2sgYWJvdmUs
IHdlIHNob3VsZCBiZSBnb29kIHdpdGggdGhpcy4gT24gQVJNNjQsIGVtaXRQb2ludGVyVmFsaWRh
dGlvbiB3aWxsIGRvIHRoaXMuCiAjaWYgQVNTRVJUX0VOQUJMRUQgJiYgIUNQVShBUk02NEUpCiAg
ICAgewpAQCAtMTU1NywxMiArMTU2OCwxMSBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1
bmtQdHJUYWc+IHJlbW90ZUZ1bmN0aW9uQ2FsbEdlbmVyYXRvcihWTSYgdm0pCiAgICAgcmVzdWx0
SXNQcmltaXRpdmUuYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwocmVzdWx0UmVncykpOwogICAg
IHJlc3VsdElzUHJpbWl0aXZlLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RPYmplY3QocmVzdWx0UmVn
cy5wYXlsb2FkR1BSKCkpKTsKIAotICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZElt
bVB0cih0YWdDRnVuY3Rpb248T3BlcmF0aW9uUHRyVGFnPihvcGVyYXRpb25HZXRXcmFwcGVkVmFs
dWVGb3JDYWxsZXIpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7Ci0gICAgZW1pdFBvaW50ZXJWYWxp
ZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMCwgT3BlcmF0aW9uUHRyVGFnKTsKLQogICAg
IGppdC5sb2FkQ2VsbChDQ2FsbEhlbHBlcnM6OmFkZHJlc3NGb3IoQ2FsbEZyYW1lU2xvdDo6Y2Fs
bGVlKSwgR1BSSW5mbzo6cmVnVDIpOwogICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShv
cGVyYXRpb25HZXRXcmFwcGVkVmFsdWVGb3JDYWxsZXIpPihHUFJJbmZvOjpyZWdUMiwgcmVzdWx0
UmVncyk7CiAgICAgaml0LnByZXBhcmVDYWxsT3BlcmF0aW9uKHZtKTsKKyAgICBqaXQubW92ZShD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIodGFnQ0Z1bmN0aW9uPE9wZXJhdGlvblB0clRhZz4o
b3BlcmF0aW9uR2V0V3JhcHBlZFZhbHVlRm9yQ2FsbGVyKSksIEdQUkluZm86Om5vbkFyZ0dQUjAp
OworICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86Om5vbkFyZ0dQUjAsIE9w
ZXJhdGlvblB0clRhZyk7CiAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCwgT3BlcmF0
aW9uUHRyVGFnKTsKICAgICBleGNlcHRpb25DaGVja3MuYXBwZW5kKGppdC5lbWl0SnVtcElmRXhj
ZXB0aW9uKHZtKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455619</attachid>
            <date>2022-03-24 00:33:13 -0700</date>
            <delta_ts>2022-03-24 16:06:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238313-20220324003312.patch</filename>
            <type>text/plain</type>
            <size>9142</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YWE2NWE0N2JkOThlOGI5M2I1ZjQ1N2IzNjRmZDdjOWJhMTczNmI5Li42NTg4NGI0YWZhZGI5M2E3
YzZhMjMzMWVjOWIyNjRlYzkzYTg3YmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAyMi0wMy0yNCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIEpTUmVtb3RlRnVuY3Rpb24gdGh1bmsgc2hvdWxkIG1hdGVyaWFs
aXplIGNvZGUtcG9pbnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM4MzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQW55IEdDIGNhbiBqZXR0aXNvbiBDb2RlQmxvY2sncyBKSVRDb2RlLiBJdCBtZWFu
cyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRoYXQgSklUQ29kZSBpcyBkaXNjYXJkZWQgYmVjYXVzZQor
ICAgICAgICBvZiB3cmFwcGVyIGNyZWF0aW9uIGZvciBhcmd1bWVudHMgb2YgcmVtb3RlIGZ1bmN0
aW9uLiBJdCBjYXVzZXMgb2NjYXNpb25hbCBjcmFzaGVzIG9uIEpTVGVzdHMvc3RyZXNzL3NoYWRv
dy1yZWFsbS1ldmFsdWF0ZS5qcworICAgICAgICB0ZXN0LiBUaGlzIHBhdGNoIGZpeGVzIGl0IGJ5
IG1hdGVyaWFsaXppbmcgY29kZSBwb2ludGVyIGlmIGl0IGlzIGFscmVhZHkgamV0dGlzb25lZC4K
KworICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6SlNDX0RF
RklORV9KSVRfT1BFUkFUSU9OKToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAg
ICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAgICAoSlNDOjpyZW1vdGVGdW5j
dGlvbkNhbGxHZW5lcmF0b3IpOgorCiAyMDIyLTAzLTIzICBHZXphIExvcmUgIDxnbG9yZUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtKU0NdIEZpeCByZW1vdGVGdW5jdGlvbkNhbGxHZW5lcmF0b3Ig
b24gTUlQUwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5k
ZXggYWI2NmVhNDI5ZDQ4NTBlYjdjMWJiZGU2NmZjOTFkMmJkZDNjZWUzNi4uMDRjYjlkY2I4OGI0
NTgzMzBhYjA4ODYyYmQ1ZjJkYWI2YTI5NTUwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuY3BwCkBAIC0xNTgsNiArMTU4LDM0IEBAIEpTQ19ERUZJTkVfSklU
X09QRVJBVElPTihvcGVyYXRpb25HZXRXcmFwcGVkVmFsdWVGb3JDYWxsZXIsIEVuY29kZWRKU1Zh
bHVlLCAoSlNSCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU1ZhbHVlOjplbmNvZGUo
Z2V0V3JhcHBlZFZhbHVlKGdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKSkpKTsKIH0KIAorSlNDX0RFRklORV9KSVRfT1BFUkFUSU9OKG9wZXJh
dGlvbk1hdGVyaWFsaXplUmVtb3RlRnVuY3Rpb25UYXJnZXRDb2RlLCB2b2lkKiwgKEpTUmVtb3Rl
RnVuY3Rpb24qIGNhbGxlZSkpCit7CisgICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9
IGNhbGxlZS0+Z2xvYmFsT2JqZWN0KCk7CisgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgp
OworCisgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwor
ICAgIEpJVE9wZXJhdGlvblByb2xvZ3VlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgY2FsbEZy
YW1lKTsKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKwor
ICAgIEFTU0VSVChpc1JlbW90ZUZ1bmN0aW9uKHZtLCBjYWxsZWUpKTsKKworICAgIGF1dG8qIHRh
cmdldEZ1bmN0aW9uID0ganNDYXN0PEpTRnVuY3Rpb24qPihjYWxsZWUtPnRhcmdldEZ1bmN0aW9u
KCkpOyAvLyBXZSBjYWxsIHRoaXMgZnVuY3Rpb24gb25seSB3aGVuIEpTUmVtb3RlRnVuY3Rpb24n
cyB0YXJnZXQgaXMgSlNGdW5jdGlvbi4KKyAgICBFeGVjdXRhYmxlQmFzZSogZXhlY3V0YWJsZSA9
IHRhcmdldEZ1bmN0aW9uLT5leGVjdXRhYmxlKCk7CisKKyAgICAvLyBGb3JjZSB0aGUgZXhlY3V0
YWJsZSB0byBjYWNoZSBpdHMgYXJpdHkgZW50cnlwb2ludC4KKyAgICB7CisgICAgICAgIERlZmVy
VHJhcHMgZGVmZXJUcmFwcyh2bSk7IC8vIFdlIGNhbid0IGpldHRpc29uIGFueSBjb2RlIHVudGls
IGFmdGVyIHdlIGxpbmsgdGhlIGNhbGwuCisgICAgICAgIGlmICghZXhlY3V0YWJsZS0+aXNIb3N0
RnVuY3Rpb24oKSkgeworICAgICAgICAgICAgSlNTY29wZSogc2NvcGUgPSB0YXJnZXRGdW5jdGlv
bi0+c2NvcGVVbmNoZWNrZWQoKTsKKyAgICAgICAgICAgIEZ1bmN0aW9uRXhlY3V0YWJsZSogZnVu
Y3Rpb25FeGVjdXRhYmxlID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0
YWJsZSk7CisgICAgICAgICAgICBDb2RlQmxvY2sqIGNvZGVCbG9ja1Nsb3QgPSBudWxscHRyOwor
ICAgICAgICAgICAgZnVuY3Rpb25FeGVjdXRhYmxlLT5wcmVwYXJlRm9yRXhlY3V0aW9uPEZ1bmN0
aW9uRXhlY3V0YWJsZT4odm0sIHRhcmdldEZ1bmN0aW9uLCBzY29wZSwgQ29kZUZvckNhbGwsIGNv
ZGVCbG9ja1Nsb3QpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCBudWxscHRyKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXhlY3V0YWJsZS0+ZW50cnlw
b2ludEZvcihDb2RlRm9yQ2FsbCwgTXVzdENoZWNrQXJpdHkpLmV4ZWN1dGFibGVBZGRyZXNzKCk7
CisgICAgfQorfQorCiBKU0NfREVGSU5FX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uVGhyb3dSZW1v
dGVGdW5jdGlvbkV4Y2VwdGlvbiwgRW5jb2RlZEpTVmFsdWUsIChKU1JlbW90ZUZ1bmN0aW9uKiBj
YWxsZWUpKQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBjYWxsZWUtPmds
b2JhbE9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRP
cGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApp
bmRleCAyYTU5ZjY0ZTg4NWFkNWEyNWUxODY3MmY5NmMzZGQ1YmI4NjViZDBmLi5hNjJhZTYwZTE5
M2ZjNzljY2M0YjQ0NGJmNDcxYTAxN2I4MGEzOTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMTYxLDYgKzE2MSw3IEBAIEpTQ19ERUNMQVJFX0pJVF9P
UEVSQVRJT04ob3BlcmF0aW9uVGhyb3dTdGFja092ZXJmbG93RXJyb3JGcm9tVGh1bmssIHZvaWQs
IChKU0dsCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvblRocm93SXRlcmF0b3JS
ZXN1bHRJc05vdE9iamVjdCwgdm9pZCwgKEpTR2xvYmFsT2JqZWN0KikpOwogSlNDX0RFQ0xBUkVf
SklUX09QRVJBVElPTihvcGVyYXRpb25HZXRXcmFwcGVkVmFsdWVGb3JDYWxsZXIsIEVuY29kZWRK
U1ZhbHVlLCAoSlNSZW1vdGVGdW5jdGlvbiosIEVuY29kZWRKU1ZhbHVlKSk7CiBKU0NfREVDTEFS
RV9KSVRfT1BFUkFUSU9OKG9wZXJhdGlvbkdldFdyYXBwZWRWYWx1ZUZvclRhcmdldCwgRW5jb2Rl
ZEpTVmFsdWUsIChKU1JlbW90ZUZ1bmN0aW9uKiwgRW5jb2RlZEpTVmFsdWUpKTsKK0pTQ19ERUNM
QVJFX0pJVF9PUEVSQVRJT04ob3BlcmF0aW9uTWF0ZXJpYWxpemVSZW1vdGVGdW5jdGlvblRhcmdl
dENvZGUsIHZvaWQqLCAoSlNSZW1vdGVGdW5jdGlvbiopKTsKIEpTQ19ERUNMQVJFX0pJVF9PUEVS
QVRJT04ob3BlcmF0aW9uVGhyb3dSZW1vdGVGdW5jdGlvbkV4Y2VwdGlvbiwgRW5jb2RlZEpTVmFs
dWUsIChKU1JlbW90ZUZ1bmN0aW9uKikpOwogCiBKU0NfREVDTEFSRV9KSVRfT1BFUkFUSU9OKG9w
ZXJhdGlvblRocm93U3RhY2tPdmVyZmxvd0Vycm9yLCB2b2lkLCAoQ29kZUJsb2NrKikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuY3BwCmluZGV4IGQ3NTM4
YWIzYjU2Y2JlNjQ1YzNjYWQ2ZmM2ZWNkOGZjNDk4NWRkN2MuLmExMTZhMWY3NWExNWI2ZGU3Nzcy
YTA0N2YzOGE0NWVlOTYyODE2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvVGh1bmtHZW5lcmF0b3JzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Ro
dW5rR2VuZXJhdG9ycy5jcHAKQEAgLTE1MDIsOCArMTUwMiw4IEBAIE1hY3JvQXNzZW1ibGVyQ29k
ZVJlZjxKSVRUaHVua1B0clRhZz4gcmVtb3RlRnVuY3Rpb25DYWxsR2VuZXJhdG9yKFZNJiB2bSkK
IAogICAgICAgICBqaXQuc3RvcmVQdHIoR1BSSW5mbzo6cmVnVDEsIGppdC5hZGRyZXNzRm9yKGxv
b3BJbmRleCkpOwogCi0gICAgICAgIGppdC5wcmVwYXJlQ2FsbE9wZXJhdGlvbih2bSk7CiAgICAg
ICAgIGppdC5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25HZXRXcmFwcGVkVmFsdWVG
b3JUYXJnZXQpPihHUFJJbmZvOjpyZWdUMCwgdmFsdWVSZWdzKTsKKyAgICAgICAgaml0LnByZXBh
cmVDYWxsT3BlcmF0aW9uKHZtKTsKICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tUHRyKHRhZ0NGdW5jdGlvbjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkdldFdyYXBw
ZWRWYWx1ZUZvclRhcmdldCkpLCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICAgICAgZW1pdFBv
aW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMCwgT3BlcmF0aW9uUHRyVGFn
KTsKICAgICAgICAgaml0LmNhbGwoR1BSSW5mbzo6bm9uQXJnR1BSMCwgT3BlcmF0aW9uUHRyVGFn
KTsKQEAgLTE1MjQsMjcgKzE1MjQsMzkgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5r
UHRyVGFnPiByZW1vdGVGdW5jdGlvbkNhbGxHZW5lcmF0b3IoVk0mIHZtKQogICAgIGppdC5sb2Fk
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMCwgSlNSZW1vdGVGdW5jdGlv
bjo6b2Zmc2V0T2ZUYXJnZXRGdW5jdGlvbigpKSwgR1BSSW5mbzo6cmVnVDIpOwogICAgIGppdC5z
dG9yZUNlbGwoR1BSSW5mbzo6cmVnVDIsIENDYWxsSGVscGVyczo6Y2FsbGVlRnJhbWVTbG90KENh
bGxGcmFtZVNsb3Q6OmNhbGxlZSkpOwogCi0gICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKEdQUkluZm86OnJlZ1QyLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGVPclJh
cmVEYXRhKCkpLCBHUFJJbmZvOjpyZWdUMCk7Ci0gICAgYXV0byBoYXNFeGVjdXRhYmxlID0gaml0
LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMCwgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpKTsKLSAgICBqaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDAsIEZ1bmN0aW9uUmFy
ZURhdGE6Om9mZnNldE9mRXhlY3V0YWJsZSgpIC0gSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpLCBH
UFJJbmZvOjpyZWdUMCk7CisgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQ
UkluZm86OnJlZ1QyLCBKU0Z1bmN0aW9uOjpvZmZzZXRPZkV4ZWN1dGFibGVPclJhcmVEYXRhKCkp
LCBHUFJJbmZvOjpyZWdUMSk7CisgICAgYXV0byBoYXNFeGVjdXRhYmxlID0gaml0LmJyYW5jaFRl
c3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMSwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpKTsKKyAgICBqaXQubG9hZFB0cihD
Q2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDEsIEZ1bmN0aW9uUmFyZURhdGE6Om9m
ZnNldE9mRXhlY3V0YWJsZSgpIC0gSlNGdW5jdGlvbjo6cmFyZURhdGFUYWcpLCBHUFJJbmZvOjpy
ZWdUMSk7CiAgICAgaGFzRXhlY3V0YWJsZS5saW5rKCZqaXQpOwogCiAgICAgaml0LmxvYWRQdHIo
CiAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcygKLSAgICAgICAgICAgIEdQUkluZm86OnJl
Z1QwLCBFeGVjdXRhYmxlQmFzZTo6b2Zmc2V0T2ZKSVRDb2RlV2l0aEFyaXR5Q2hlY2tGb3IoQ29k
ZUZvckNhbGwpKSwKLSAgICAgICAgR1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgR1BSSW5m
bzo6cmVnVDEsIEV4ZWN1dGFibGVCYXNlOjpvZmZzZXRPZkpJVENvZGVXaXRoQXJpdHlDaGVja0Zv
cihDb2RlRm9yQ2FsbCkpLAorICAgICAgICBHUFJJbmZvOjpyZWdUMSk7CisgICAgYXV0byBjb2Rl
RXhpc3RzID0gaml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpOb25aZXJvLCBHUFJJbmZv
OjpyZWdUMSk7CiAKKyAgICAvLyBBbnkgR0MgY2FuIHBvdGVudGlhbGx5IGpldHRpc29uIEpJVCBj
b2RlIGluIEpTRnVuY3Rpb24uIFRoaXMgbWVhbnMgdGhhdCBjYWxsaW5nIG9wZXJhdGlvbkdldFdy
YXBwZWRWYWx1ZUZvclRhcmdldCBhbHJlYWR5IGRpc2NhcmRlZAorICAgIC8vIHRoZSBjb2RlLiBX
ZSBzaG91bGQgY2hlY2sgYW5kIG1hdGVyaWFsaXplIGl0IGhlcmUuIEF0IHRoaXMgcG9pbnQsIG9u
Y2Ugd2UgZ290IHRoZSBjb2RlLiBTbywgd2UgY2FuIGFsd2F5cyBtYXRlcmlhbGl6ZSB0aGUgY29k
ZS4KKyAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVjbHR5cGUob3BlcmF0aW9uTWF0ZXJpYWxpemVS
ZW1vdGVGdW5jdGlvblRhcmdldENvZGUpPihHUFJJbmZvOjpyZWdUMCk7CisgICAgaml0LnByZXBh
cmVDYWxsT3BlcmF0aW9uKHZtKTsKKyAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIodGFnQ0Z1bmN0aW9uPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uTWF0ZXJpYWxpemVS
ZW1vdGVGdW5jdGlvblRhcmdldENvZGUpKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CisgICAgZW1p
dFBvaW50ZXJWYWxpZGF0aW9uKGppdCwgR1BSSW5mbzo6bm9uQXJnR1BSMCwgT3BlcmF0aW9uUHRy
VGFnKTsKKyAgICBqaXQuY2FsbChHUFJJbmZvOjpub25BcmdHUFIwLCBPcGVyYXRpb25QdHJUYWcp
OworICAgIGV4Y2VwdGlvbkNoZWNrcy5hcHBlbmQoaml0LmVtaXRKdW1wSWZFeGNlcHRpb24odm0p
KTsKKyAgICBqaXQubW92ZShHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUiwgR1BSSW5mbzo6cmVnVDEp
OworCisgICAgY29kZUV4aXN0cy5saW5rKCZqaXQpOwogICAgIC8vIEJhc2VkIG9uIHRoZSBjaGVj
ayBhYm92ZSwgd2Ugc2hvdWxkIGJlIGdvb2Qgd2l0aCB0aGlzLiBPbiBBUk02NCwgZW1pdFBvaW50
ZXJWYWxpZGF0aW9uIHdpbGwgZG8gdGhpcy4KICNpZiBBU1NFUlRfRU5BQkxFRCAmJiAhQ1BVKEFS
TTY0RSkKICAgICB7Ci0gICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBjaGVja05vdE51bGwgPSBq
aXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Ok5vblplcm8sIEdQUkluZm86OnJlZ1QwKTsK
KyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGNoZWNrTm90TnVsbCA9IGppdC5icmFuY2hUZXN0
UHRyKENDYWxsSGVscGVyczo6Tm9uWmVybywgR1BSSW5mbzo6cmVnVDEpOwogICAgICAgICBqaXQu
YWJvcnRXaXRoUmVhc29uKFRHSW52YWxpZFBvaW50ZXIpOwogICAgICAgICBjaGVja05vdE51bGwu
bGluaygmaml0KTsKICAgICB9CiAjZW5kaWYKIAotICAgIGVtaXRQb2ludGVyVmFsaWRhdGlvbihq
aXQsIEdQUkluZm86OnJlZ1QwLCBKU0VudHJ5UHRyVGFnKTsKLSAgICBqaXQuY2FsbChHUFJJbmZv
OjpyZWdUMCwgSlNFbnRyeVB0clRhZyk7CisgICAgZW1pdFBvaW50ZXJWYWxpZGF0aW9uKGppdCwg
R1BSSW5mbzo6cmVnVDEsIEpTRW50cnlQdHJUYWcpOworICAgIGppdC5jYWxsKEdQUkluZm86OnJl
Z1QxLCBKU0VudHJ5UHRyVGFnKTsKIAogICAgIC8vIFdyYXAgcmV0dXJuIHZhbHVlCiAjaWYgVVNF
KEpTVkFMVUU2NCkKQEAgLTE1NTcsMTIgKzE1NjksMTEgQEAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVm
PEpJVFRodW5rUHRyVGFnPiByZW1vdGVGdW5jdGlvbkNhbGxHZW5lcmF0b3IoVk0mIHZtKQogICAg
IHJlc3VsdElzUHJpbWl0aXZlLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKHJlc3VsdFJlZ3Mp
KTsKICAgICByZXN1bHRJc1ByaW1pdGl2ZS5hcHBlbmQoaml0LmJyYW5jaElmTm90T2JqZWN0KHJl
c3VsdFJlZ3MucGF5bG9hZEdQUigpKSk7CiAKLSAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIodGFnQ0Z1bmN0aW9uPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uR2V0V3Jh
cHBlZFZhbHVlRm9yQ2FsbGVyKSksIEdQUkluZm86Om5vbkFyZ0dQUjApOwotICAgIGVtaXRQb2lu
dGVyVmFsaWRhdGlvbihqaXQsIEdQUkluZm86Om5vbkFyZ0dQUjAsIE9wZXJhdGlvblB0clRhZyk7
Ci0KICAgICBqaXQubG9hZENlbGwoQ0NhbGxIZWxwZXJzOjphZGRyZXNzRm9yKENhbGxGcmFtZVNs
b3Q6OmNhbGxlZSksIEdQUkluZm86OnJlZ1QyKTsKICAgICBqaXQuc2V0dXBBcmd1bWVudHM8ZGVj
bHR5cGUob3BlcmF0aW9uR2V0V3JhcHBlZFZhbHVlRm9yQ2FsbGVyKT4oR1BSSW5mbzo6cmVnVDIs
IHJlc3VsdFJlZ3MpOwogICAgIGppdC5wcmVwYXJlQ2FsbE9wZXJhdGlvbih2bSk7CisgICAgaml0
Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHRhZ0NGdW5jdGlvbjxPcGVyYXRpb25Q
dHJUYWc+KG9wZXJhdGlvbkdldFdyYXBwZWRWYWx1ZUZvckNhbGxlcikpLCBHUFJJbmZvOjpub25B
cmdHUFIwKTsKKyAgICBlbWl0UG9pbnRlclZhbGlkYXRpb24oaml0LCBHUFJJbmZvOjpub25BcmdH
UFIwLCBPcGVyYXRpb25QdHJUYWcpOwogICAgIGppdC5jYWxsKEdQUkluZm86Om5vbkFyZ0dQUjAs
IE9wZXJhdGlvblB0clRhZyk7CiAgICAgZXhjZXB0aW9uQ2hlY2tzLmFwcGVuZChqaXQuZW1pdEp1
bXBJZkV4Y2VwdGlvbih2bSkpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455699</attachid>
            <date>2022-03-24 16:04:16 -0700</date>
            <delta_ts>2022-03-24 16:05:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238313-20220324160415.patch</filename>
            <type>text/plain</type>
            <size>434286</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
N2ViNDQ5Y2I1YmE5MTJjODBjZjViZTc4YmJkNmVlZjYxYTYzNWQ2Li41MDE2NzNjYjBkOGQ0OTE3
ZmRiOWI2ZjViMGVkNGE1OTRkMjkwYzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTIx
LDYgKzIxLDI1IEBACiAgICAgICAgICogaml0L1RodW5rR2VuZXJhdG9ycy5jcHA6CiAgICAgICAg
IChKU0M6OnJlbW90ZUZ1bmN0aW9uQ2FsbEdlbmVyYXRvcik6CiAKKzIwMjItMDMtMjQgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2Vi
Q29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxp
Y2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgz
MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFy
dCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNv
bnN0cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBs
aWNpdCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAg
ICAgICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICog
QVBJL0pTVmFsdWUubW06CisgICAgICAgIChjcmVhdGVTdHJ1Y3RIYW5kbGVyTWFwKToKKyAgICAg
ICAgKGhhbmRlckZvclN0cnVjdFRhZyk6CisgICAgICAgICogQVBJL0pTV3JhcHBlck1hcC5tbToK
KyAgICAgICAgKGFsbG9jYXRlQ29uc3RydWN0b3JGb3JDdXN0b21DbGFzcyk6CisgICAgICAgICog
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmNwcDoKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yQXVkaXRBZ2VudDo6cnVuKToKKwogMjAyMi0wMy0yMyAgR2V6YSBMb3Jl
ICA8Z2xvcmVAaWdhbGlhLmNvbT4KIAogICAgICAgICBbSlNDXSBGaXggcmVtb3RlRnVuY3Rpb25D
YWxsR2VuZXJhdG9yIG9uIE1JUFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggOWJjMzBiOGU2ZWNkMmQ3YzM5YmMyMjAwMTU3NTli
YzQ4NTIxYzc5ZC4uNzRkYjQ3Zjg3N2JjZDgzMGMzNjc0ZDUxMmJmMWYyM2ZlOTA0OWUyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0
cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZv
ciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisg
ICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNv
bXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2lu
ZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiB3dGYvdGV4dC9UZXh0U3RyZWFtLmg6
CisgICAgICAgIChXVEY6OlRleHRTdHJlYW06OmR1bXBQcm9wZXJ0eSk6CisKIDIwMjItMDMtMjQg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmcncyBmaW5k
KCkgLyByZXZlcnNlRmluZCgpIC8gcmVwbGFjZSgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmll
dyBpbnN0ZWFkIG9mIGEgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjViOGU1ODJjZjIzNDNlNjk3ZmVj
ZjhmY2E3YjcxMTAzYjYxYTA0Yy4uMDY0NTJiNjY2MGVlYzgzZWJkZDc2MGY3ZmE1ODJmOTRkYWNh
N2Y1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMTkyLDYgKzE5Miw1MTQgQEAKICAgICAgICAgKFdlYkNvcmU6
OmNsZWFuT2xkRGF0YWJhc2VzKToKICAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1Jl
Z2lzdHJhdGlvbkRhdGFiYXNlLmg6CiAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5n
IHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2Vi
Q29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxp
Y2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxwcyBjYXRj
aCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJlZml4IGlz
IG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBh
eS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KToKKyAgICAgICAgKiBN
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5k
VmFsaWRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGUpOgorICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vz
c2lvbjo6b3BlblBheW1lbnRTZXR1cCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Np
b246OmJlZ2luKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXR1cDo6YmVnaW4pOgorICAgICAgICAqIE1v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbi5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb246OmNyZWF0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRvdGFsKToK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlQ291bnRyeUNvZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsaWRhdGVDdXJyZW5jeUNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVNZXJj
aGFudENhcGFiaWxpdGllcyk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVN1cHBvcnRlZE5l
dHdvcmtzKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU2hpcHBpbmdNZXRob2QpOgorICAg
ICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGF5bWVudFNlc3Npb246OmNhbkNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIE1vZHVs
ZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBh
cnNlSWNvbnMpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6
cGFyc2VTY29wZSk6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2Jh
bFNjb3BlQ2FjaGVzLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXRE
YXRhUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2FuaXRpemVLZXlpZHMpOgorICAg
ICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Omxpc3REaXJlY3RvcnlXaXRoTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6dmFs
aWRhdGVQYXRoSXNFeHBlY3RlZFR5cGUpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hC
b2R5Q29uc3VtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Q29uc3VtZXI6OnBh
Y2thZ2VGb3JtRGF0YSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmlsbEhlYWRlck1hcCk6CisgICAgICAgICogTW9kdWxlcy9m
ZXRjaC9GZXRjaExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaExvYWRlcjo6c3Rh
cnRMb2FkaW5nQmxvYlVSTCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlOjppc1NhbWVFbnRyeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlOjptb3ZlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlk
ZW50aWZpZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJLZXlEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjppbmNsdWRl
cyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplSURCS2V5UGF0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpkZXNlcmlhbGl6ZUlEQktleVBhdGgpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0T3JpZ2lucyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2Rp
ZmllZFNpbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpjbG9z
ZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpyZW1vdmVBbGxEYXRhYmFzZXNGb3JGdWxsT3JpZ2luUGF0aCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjp1cGdyYWRlRmlsZXNJZk5lY2Vzc2FyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6dXBncmFkZWREYXRhYmFzZURpcmVj
dG9yeSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tp
bmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24p
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6Omdl
bmVyYXRlS2V5TnVtYmVyKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5T2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlP
YmplY3RTdG9yZTo6dXBkYXRlSW5kZXhlc0ZvclB1dFJlY29yZCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OnYxUmVjb3Jkc1RhYmxlU2NoZW1hKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6djFSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjp2MlJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OnYyUmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6djFJbmRleFJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6djJJbmRleFJlY29yZHNUYWJsZVNjaGVt
YUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZW5jb2RlRGF0YWJhc2VOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRP
ckVzdGFibGlzaERhdGFiYXNlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6dXBkYXRlQWxsSW5kZXhlc0ZvckFkZFJlY29yZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2Vk
R2V0S2V5R2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxp
dGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtl
eU51bWJlcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJh
c2U6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0b3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRl
SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
ZGVsZXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZTo6cmVuYW1lSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZTo6cHV0T3JBZGQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6cHV0T3JBZGRBZnRlclNwYWNlQ2hlY2spOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29yZHMpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0Q291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmVj
b3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6Om9w
ZW5DdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6aXRlcmF0ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkluZGV4SW5mbzo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbHNIb3N0OjpsYXlvdXRUcmFpdHNDbGFzc05hbWUgY29uc3QpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRWUDlGdWxsUmFuZ2VWaWRl
b0ZsYWdUb0NvbnRlbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlOjppc1R5
cGVTdXBwb3J0ZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0Nv
bnN0cmFpbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldCk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb252ZXJ0VG9JbnRlcm5hbEZvcm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDSWNlQ2FuZGlkYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZUNhbmRpZGF0ZTo6
Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2Ny
aXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjphZGRJY2VDYW5k
aWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmljZVNlcnZlcnNG
cm9tQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6
Y2VydGlmaWNhdGVzRnJvbUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVl
ckNvbm5lY3Rpb246OmluaXRpYWxpemVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1BlZXJDb25uZWN0aW9uOjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJUQ1BlZXJDb25uZWN0aW9uOjpjaGFpbk9wZXJhdGlvbik6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNmb3JtKToKKyAgICAgICAgKiBNb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0Ny
ZWF0ZUFuc3dlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvUnRw
Q29kZWNDYXBhYmlsaXR5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0V4Y2VwdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjp0b1JUQ0Vycm9yKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVsLWVs
ZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbExvYWRlclVTRC5tbToKKyAgICAgICAgKFdlYkNv
cmU6OndyaXRlVG9UZW1wb3JhcnlGaWxlKToKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQW5kQ2Fub25p
Y2FsaXplRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6c2hvdyk6
CisgICAgICAgICogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0
dXJlSW5QaWN0dXJlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnRQaWN0
dXJlSW5QaWN0dXJlOjpyZXF1ZXN0UGljdHVyZUluUGljdHVyZSk6CisgICAgICAgICogTW9kdWxl
cy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpwcm9jZXNzQW5kQ3JlYXRlWW91VHViZVVSTCk6CisgICAgICAgICogTW9kdWxl
cy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp1cGRhdGVEYXRh
U291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw6OnNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKiBNb2R1
bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW06CisgICAgICAg
ICgtW1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jayBhdWRpb1NhbXBsZXNBdmFpbGFibGU6XSk6
CisgICAgICAgICogTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNvbm5lY3Rpb25JbmZvKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nrcy9X
ZWJMb2NrTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6c2ln
bmFsVG9BYm9ydFRoZVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9M
aXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0xpc3RlbmVyOjpBdWRpb0xpc3Rl
bmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9QYXJhbTo6c2V0QXV0b21hdGlvblJhdGUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
YXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWRGaWx0
ZXJOb2RlOjpnZXRGcmVxdWVuY3lSZXNwb25zZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9CaXF1YWRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkUHJvY2Vzc29y
OjpCaXF1YWRQcm9jZXNzb3IpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9j
ZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsYXlQcm9jZXNzb3I6OkRlbGF5UHJvY2Vz
c29yKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldhdmVTaGFwZXJOb2RlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2F2ZVNoYXBlck5vZGU6OnNldEN1cnZlRm9yQmluZGluZ3MpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvckludGVybmFsOjpuZWVkc0FwcElkUXVpcmtzKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6YnVpbGRBdHRlc3RhdGlvbk1hcCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcDoKKyAgICAgICAgKGZp
ZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdXRobi9maWRvL1Bpbi5jcHA6CisgICAgICAgIChmaWRvOjpwaW46OktleUFncmVlbWVudFJl
c3BvbnNlOjpwYXJzZUZyb21DT1NFKToKKyAgICAgICAgKGZpZG86OnBpbjo6VG9rZW5SZXF1ZXN0
Ojp0cnlDcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25z
ZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkVTJmUmVnaXN0ZXJSZXNwb25zZSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVByZWZsaWdo
dCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNl
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZTo6cnVuVHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VBdXRob3JpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlQXV0aG9yaXplcjo6
YWRkQWxsb3dlZEZ1bmN0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyRGF0YWJhc2VQYXRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tl
cjo6b3BlblRyYWNrZXJEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpleGVjdXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6c2V0RGF0YWJhc2VEZWxldGVkRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzZXRWZXJzaW9uTWlzbWF0Y2hl
ZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6c2V0RmFpbHVyZUR1ZVRv
UXVvdGEpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmNhbGxFcnJvckNhbGxiYWNrRHVl
VG9JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246Om9wZW5U
cmFuc2FjdGlvbkFuZFByZWZsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlv
bjo6ZGVsaXZlclRyYW5zYWN0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJh
bnNhY3Rpb246OmRlbGl2ZXJTdGF0ZW1lbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpT
UUxUcmFuc2FjdGlvbjo6aGFuZGxlQ3VycmVudFN0YXRlbWVudEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNv
Y2tldDo6c3VicHJvdG9jb2xTZXBhcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
OjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnN1c3BlbmQpOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXRDaGFubmVsOjpkaWRPcGVuU29ja2V0U3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNv
Y2tldENoYW5uZWw6OmRpZFJlY2VpdmVTb2NrZXRTdHJlYW1EYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU6OnByb2Nlc3NSZXNwb25zZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpkZWZsYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVGcmFtZXI6OmluZmxhdGUpOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OnByb2Nlc3NI
ZWFkZXJWYWx1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1l
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEZyYW1lOjpwYXJzZUZyYW1lKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVPcGFxdWVGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUldl
YkdMTGF5ZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYTG9n
Z2VyOjpBWExvZ2dlcik6CisgICAgICAgIChXZWJDb3JlOjpBWExvZ2dlcjo6bG9nKToKKyAgICAg
ICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhMb2dn
ZXIuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aXNNb2RhbEVsZW1lbnQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlRnJvbVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVNZW51T3Bl
bmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90
aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6cG9zdE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpo
YW5kbGVNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnNlbGVjdGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6aGFuZGxlTW9kYWxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmpl
Y3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAg
ICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlYWRPbmx5VmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXV0b0NvbXBsZXRlVmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y3VycmVudFZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlcGxhY2VUZXh0SW5S
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21wdXRlZFJv
bGVTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6bm9kZUhhc1ByZXNlbnRhdGlvblJv
bGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVzb2x2ZWRFZGl0
aW5nU3R5bGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmlzUmFk
aW9CdXR0b25JbkRpZmZlcmVudEFkaG9jR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eTo6ZmluZE1hdGNoaW5nT2JqZWN0cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJDb3JlOjphY2Nlc3Np
YmlsaXR5Um9sZVRvU3RyaW5nKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6cmVuZGVyT2JqZWN0SXNPYnNlcnZhYmxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJv
bGVBZnRlckNoaWxkcmVuQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6bGl2ZVJlZ2lvblJlbGV2YW50IGNvbnN0KToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQgY29u
c3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRyZWU6Om5vZGVIYXNUcmVlSXRlbUNoaWxkIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUcmVlOjppc1RyZWVWYWxpZCBj
b25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXpl
QXR0cmlidXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpjbGFz
c0xpc3QgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpBWElzb2xh
dGVkVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0ZWRU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjbGVhcik6CisgICAgICAg
IChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dHJlZUZvcklEKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYSXNvbGF0ZWRUcmVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6Om9iamVjdHNGb3JJRHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OmdlbmVyYXRlU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xh
dGVkVHJlZTo6dXBkYXRlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
dXBkYXRlTm9kZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1
cGRhdGVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6Zm9jdXNl
ZE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnJvb3ROb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRCk6CisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNzKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
SXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXApOgorICAgICAgICAoV2ViQ29y
ZTo6QVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMpOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRmb3JtRGVzY3JpcHRp
b24gY29uc3QpOgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uRWZmZWN0OjpnZXRUaW1pbmcgY29uc3QpOgorICAgICAg
ICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50VGltZWxpbmU6OmFuaW1hdGUpOgorICAgICAgICAqIGFuaW1hdGlvbi9FZmZlY3RUaW1p
bmcuaDoKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OkNTU1Byb3BlcnR5SURUb0lETEF0dHJpYnV0ZU5hbWUp
OgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmdldEtleWZyYW1lcyk6CisgICAg
ICAgICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdD
Q29udHJvbGxlcjo6R0NDb250cm9sbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3Rv
bUVsZW1lbnRJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01D
b252ZXJ0TnVtYmVycy5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETEZsb2F0Pjo6
Y29udmVydCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50YXRp
b24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXhlY1N0YXRlOjppbnN0cnVtZW50RnVuY3Rpb24p
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y2FsbEluV29ybGQpOgorICAgICAgICAqIGJyaWRn
ZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNBcnJh
eTo6c2V0VmFsdWVBdCBjb25zdCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQXJyYXk6
OnZhbHVlQXQgY29uc3QpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoKKyAg
ICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpwdXQpOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJy
YXk6OnB1dEJ5SW5kZXgpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6Cisg
ICAgICAgIChKU0M6OkJpbmRpbmdzOjp0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJy
b3IpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25z
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpNb2RpZnlIZWFkZXJz
QWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpw
YXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rp
b246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnBhcnNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3Jt
QWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6UXVlcnlLZXlWYWx1ZTo6cGFyc2UpOgorICAgICAgICAq
IGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Y29tcGlsZVJ1bGVMaXN0KToKKyAgICAgICAg
KiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpnZXREb21haW5MaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpsb2FkVHJpZ2dlcik6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50RXh0ZW5zaW9uczo6bG9hZEFjdGlvbik6CisgICAgICAgICogY29udGVudGV4dGVu
c2lvbnMvU2VyaWFsaXplZE5GQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6U2VyaWFsaXplZE5GQTo6c2VyaWFsaXplKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5z
aW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKToKKyAgICAgICAgKiBjb250ZW50
ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaDoKKyAgICAgICAgKiBjcnlwdG8vU3VidGxlQ3J5
cHRvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6YWRkQXV0aGVudGljYXRl
ZEVuY3J5cHRpb25XYXJuaW5nSWZOZWNlc3NhcnkpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19HQ00uaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1BRVNfS1cuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1FQ0RILmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNEU0EuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1I
S0RGLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5o
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oOgor
ICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3Yx
XzUuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0Ff
UEtDUzFfdjFfNS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBX1BTUy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTEuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQu
aDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaDoK
KyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaDoKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaDoKKyAgICAg
ICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvS2V5QUVTOjpleHBvcnRKd2sgY29uc3QpOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0
b0tleUVDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpleHBvcnRKd2sgY29u
c3QpOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q3J5cHRvS2V5SE1BQzo6ZXhwb3J0SndrIGNvbnN0KToKKyAgICAgICAgKiBjcnlw
dG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5UlNB
OjpleHBvcnRKd2sgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6OmlzU3VwcG9ydGVkRm9y
bWF0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdGb3JQb3NpdGlvbik6CisgICAgICAgICogY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
Ojp1bml0VHlwZVN0cmluZyk6CisgICAgICAgICogY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdWJncmlkVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgor
ICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFs
dWVXaXRob3V0SW1wb3J0YW50KToKKyAgICAgICAgKiBjc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Q
cm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NSZWdpc3RlckN1c3RvbVByb3Bl
cnR5OjpyZWdpc3RlclByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09NVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1RleHQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9Gb250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250RmFjZTo6dW5pY29kZVJhbmdlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV4
cHJlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cHJlc3Npb246OnNl
cmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpzZXRDdXN0
b21Qcm9wZXJ0eSk6CisgICAgICAgICogY3NzL21ha2V2YWx1ZXMucGw6CisgICAgICAgICogY3Nz
L3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVl
cnlQYXJzZXI6OnNraXBVbnRpbENvbW1hKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlQ
YXJzZXI6OnBhcnNlSW50ZXJuYWwpOgorICAgICAgICAqIGNzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1
dGVQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2l6ZXNBdHRyaWJ1dGVQYXJzZXI6Om1l
ZGlhQ29uZGl0aW9uTWF0Y2hlcyk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0Zh
Y3RvcnkuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWx0aXBseUludGVybmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6dG8pOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
TnVtZXJpY1ZhbHVlOjpwYXJzZSk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1
ZUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVWYWx1ZUZhY3Rvcnk6OnJl
aWZ5VmFsdWUpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToKKyAg
ICAgICAgKEhUTUxDb252ZXJ0ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2RlKToKKyAgICAg
ICAgKEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzRWxlbWVudCk6CisgICAgICAgICogZWRpdGluZy9j
b2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjphdHRhY2ht
ZW50Rm9yRGF0YSk6CisgICAgICAgICogbG9hZGVyL2NvY29hL0J1bmRsZVJlc291cmNlTG9hZGVy
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QnVuZGxlUmVzb3VyY2VMb2FkZXI6OmxvYWRSZXNvdXJj
ZUZyb21CdW5kbGUpOgorICAgICAgICAqIGxvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW06
CisgICAgICAgIChzdWdnZXN0ZWRGaWxlbmFtZVdpdGhNSU1FVHlwZSk6CisgICAgICAgICogcGFn
ZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
SGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YTo6SGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpkcmF3Q3B1SGlzdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpkcmF3
R0NIaXN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdNZW1IaXN0b3J5KToKKyAgICAgICAg
KiBwYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3NCYXNlOjppbml0aWFsaXplRGVmYXVsdEZvbnRGYW1pbGllcyk6CisgICAgICAgICogcGFn
ZS9tYWMvUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXRmb3JtSW5pdGlh
bGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBWEFSSUFDb250ZW50R3JvdXBUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2FyZC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmg6CisgICAgICAgICogcGxhdGZv
cm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyk6Cisg
ICAgICAgICogcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNv
cmU6OmtleUlkZW50aWZpZXJGb3JDaGFyQ29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2Ev
UGFzdGVib2FyZENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6aW1hZ2VUeXBlVG9GYWtlRmls
ZW5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6cmVhZCk6CisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ZvdXJDQy5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJDb3Jl
OjpGb3VyQ0M+Ojp0b1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTEFOR0xFOjp2YWxpZGF0ZURlcHRoU3RlbmNpbCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYXJzZUtleVN5
c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnNl
dFN0b3JhZ2VEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9u
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjp1cGRhdGVMaWNlbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlk
ZVJlcXVlc3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6c3RvcmFnZVBhdGggY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlk
ZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkRhdGFEZXRlY3RvckhpZ2hsaWdodDo6ZmFkZUluKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGFEZXRlY3RvckhpZ2hsaWdodDo6ZmFkZU91dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0
b3J5TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6a2V5SWRlbnRpZmllckZvcktleUV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRmb3Jt
S2V5Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybVBh
c3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5
cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtUGFzdGVib2FyZDo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFzdGVi
b2FyZEl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW06Cisg
ICAgICAgIChXZWJDb3JlOjp3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyk6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tOgorICAgICAgICAoV2ViQ29yZVJlcG9ydFRocmVh
ZFZpb2xhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5tbToKKyAgICAgICAgKFdl
YkNvcmU6OnN5bnRoZXNpemVkUmVzcG9uc2VGb3JSYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6aWNvbkZvckF0dGFjaG1lbnQp
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVyRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuaDoKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAg
ICogc3ZnL1NWR01hcmtlckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0ltcGwuaDoKKyAgICAgICAgKiBzdmcvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlUcmFpdHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+Ojp0
b1N0cmluZyk6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmg6
CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjp1bmJsb2NrVVJM
SG9zdCk6CisgICAgICAgICogeG1sL1hQYXRoVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlhQ
YXRoOjpWYWx1ZTo6VmFsdWUpOgorICAgICAgICAqIHhtbC9YU0xTdHlsZVNoZWV0Lmg6CisKIDIw
MjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJp
bmcncyBmaW5kKCkgLyByZXZlcnNlRmluZCgpIC8gcmVwbGFjZSgpIHNob3VsZCB0YWtlIGluIGEg
U3RyaW5nVmlldyBpbnN0ZWFkIG9mIGEgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BV
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCmluZGV4IDdmOGVjM2VjN2M3ZWRm
MTM5ZDY3NTM3ZDk5MjYxYjY4NGUyYmQ0M2UuLmM3NTM5ZDcxMDY5NmEyZjUzNGVkOWZhYWUwMzIy
NTYwNjU1YTBjNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJHUFUvQ2hhbmdlTG9nCkBAIC04LDYgKzgsNDcgQEAKICAgICAgICAgKiBXZWJHUFUv
VGV4dHVyZS5tbToKICAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVUZXh0dXJlKToKIAor
MjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0
YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikg
Y29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlz
IGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3
aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJh
bHMuCisKKyAgICAgICAgKiBXR1NML1BhcnNlci5jcHA6CisgICAgICAgIChXR1NMOjpQYXJzZXI8
TGV4ZXI+OjpwYXJzZUdsb2JhbERlY2wpOgorICAgICAgICAoV0dTTDo6UGFyc2VyPExleGVyPjo6
cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV0dTTDo6UGFyc2VyPExleGVyPjo6cGFyc2VUeXBl
RGVjbCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0b3JhZ2VDbGFzcyk6
CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUFjY2Vzc01vZGUpOgorICAgICAg
ICAoV0dTTDo6UGFyc2VyPExleGVyPjo6cGFyc2VTdGF0ZW1lbnQpOgorICAgICAgICAoV0dTTDo6
UGFyc2VyPExleGVyPjo6cGFyc2VQcmltYXJ5RXhwcmVzc2lvbik6CisgICAgICAgIChXR1NMOjpQ
YXJzZXI8TGV4ZXI+OjpwYXJzZUNvcmVMSFNFeHByZXNzaW9uKToKKyAgICAgICAgKiBXR1NML1Rv
a2VuLmNwcDoKKyAgICAgICAgKFdHU0w6OnRvU3RyaW5nKToKKyAgICAgICAgKiBXZWJHUFUvQWRh
cHRlci5tbToKKyAgICAgICAgKFdlYkdQVTo6QWRhcHRlcjo6cmVxdWVzdERldmljZSk6CisgICAg
ICAgICogV2ViR1BVL0J1ZmZlci5tbToKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjptYXBBc3lu
Yyk6CisgICAgICAgIChXZWJHUFU6OkJ1ZmZlcjo6dW5tYXApOgorICAgICAgICAqIFdlYkdQVS9D
b21tYW5kRW5jb2Rlci5tbToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmNvcHlC
dWZmZXJUb0J1ZmZlcik6CisgICAgICAgIChXZWJHUFU6OkNvbW1hbmRFbmNvZGVyOjpjbGVhckJ1
ZmZlcik6CisgICAgICAgIChXZWJHUFU6OkNvbW1hbmRFbmNvZGVyOjpmaW5pc2gpOgorICAgICAg
ICAqIFdlYkdQVS9Db21wdXRlUGlwZWxpbmUubW06CisgICAgICAgIChXZWJHUFU6OmNyZWF0ZUNv
bnN0YW50VmFsdWVzKToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVDb21wdXRlUGlw
ZWxpbmUpOgorICAgICAgICAqIFdlYkdQVS9RdWV1ZS5tbToKKyAgICAgICAgKFdlYkdQVTo6UXVl
dWU6OnN1Ym1pdCk6CisgICAgICAgICogV2ViR1BVL1NhbXBsZXIubW06CisgICAgICAgIChXZWJH
UFU6OkRldmljZTo6Y3JlYXRlU2FtcGxlcik6CisgICAgICAgICogV2ViR1BVL1NoYWRlck1vZHVs
ZS5tbToKKyAgICAgICAgKFdlYkdQVTo6ZWFybHlDb21waWxlU2hhZGVyTW9kdWxlKToKKwogMjAy
Mi0wMy0yMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtXZWJHUFVdIEZpeCB0aGUgbm9uLW1hY09TIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1YTczY2Qx
ZTNjZGVlOWE0Njc1ZWNjZmE3ZjRmMGE5NmY4YTQ5OGUuLjk5ZTM5Mzc2ODA0MGQzMTQ4MTNmMzQ2
NzUyMjA0NjUwMWI1ZGIzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xNDEsNiArMTQxLDIxIEBACiAgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya1Byb2Nlc3Muc2Iu
aW46CiAgICAgICAgICogV2ViUHJvY2Vzcy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYi5pbjoKIAor
MjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0
YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikg
Y29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmlu
Zyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlz
IGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3
aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJh
bHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorCiAyMDIyLTAz
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3Mg
ZmluZCgpIC8gcmV2ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmlu
Z1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IGE0YzgxYjUyNDU3ZDk4NzVkMjgwZjc1MGQyNTczNWVlZTY3MGM2OGIuLjM4MmQ0ZWMyYjM0YmQ2
YzdjNjI0NDI3ZmU4ZjM0NTM3YTUwN2UxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0
cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZv
ciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisg
ICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNv
bXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2lu
ZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBNaXNjL1dlYk5TUGFzdGVib2FyZEV4
dHJhcy5tbToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJkIF93ZWJfZGVjbGFyZUFuZFdyaXRlRHJh
Z0ltYWdlRm9yRWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2ZTpzb3VyY2U6XSk6CisKIDIwMjItMDMt
MTggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1Mg
MTUuNF0gRml4IHVudXNlZCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5t
bQppbmRleCBkM2FkMDgwZTFkZGY0ZmU2ZWZiYTkxMzViYTI2ODc2Yzc3ZGNiYzI2Li5mMTJhMmM0
OTUzZjAwMzJkZmI0YjcyZjY4ZmY4MGZlZGRiNjkwMzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1ZhbHVlLm1tCkBAIC0xMTc5LDcgKzExNzksNyBAQCBzdGF0aWMgU3RydWN0SGFuZGxlcnMq
IGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAv
LyBUcnkgdG8gZmluZCBhIG1hdGNoaW5nIHZhbHVlV2l0aDxGb28+OmNvbnRleHQ6IG1ldGhvZC4K
ICAgICAgICAgYXV0byB0eXBlID0gYWRvcHRTeXN0ZW08Y2hhcltdPihtZXRob2RfY29weVJldHVy
blR5cGUobWV0aG9kKSk7Ci0gICAgICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0g
c3RydWN0SGFuZGxlcnMtPmZpbmQodHlwZS5nZXQoKSk7CisgICAgICAgIFN0cnVjdEhhbmRsZXJz
OjppdGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5nIHsgdHlwZS5nZXQo
KSB9KTsKICAgICAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVuZCgpKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICBTdHJ1Y3RUYWdIYW5kbGVyJiBoYW5kbGVyID0gaXRlci0+
dmFsdWU7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgU3RydWN0VGFnSGFuZGxlciogaGFu
ZGVyRm9yU3RydWN0VGFnKGNvbnN0IGNoYXIqIGVuY29kZWRUeXBlKQogCiAgICAgc3RhdGljIFN0
cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVycyA9IGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKTsK
IAotICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZp
bmQoZW5jb2RlZFR5cGUpOworICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3Ry
dWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5nIHsgZW5jb2RlZFR5cGUgfSk7CiAgICAgaWYgKGl0ZXIg
PT0gc3RydWN0SGFuZGxlcnMtPmVuZCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4g
Jml0ZXItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dy
YXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpp
bmRleCA5NmU0NDc4ODcwY2Q4MWE1ODk5N2QwMmRhNmZhNGZiYTM0NmFmMTk1Li5mODIxZGY4ZTNl
YmVkNTdmNTQwY2QyZjAxZDY0ZWM5NmRjZmE4NmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNDUxLDcgKzQ1MSw3IEBAIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBhbGxvY2F0ZUNvbnN0cnVjdG9yRm9yQ3VzdG9tQ2xhc3MoSlNDb250ZXh0ICpjb250ZXh0
LCBjb25zCiAgICAgICAgIGZvckVhY2hNZXRob2RJbkNsYXNzKGN1cnJlbnRDbGFzcywgXihNZXRo
b2QgbWV0aG9kKSB7CiAgICAgICAgICAgICBTRUwgc2VsZWN0b3IgPSBtZXRob2RfZ2V0TmFtZSht
ZXRob2QpOwogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSA9IHNlbF9nZXROYW1lKHNlbGVj
dG9yKTsKLSAgICAgICAgICAgIGF1dG8gaXRlciA9IGluaXRUYWJsZS5maW5kKG5hbWUpOworICAg
ICAgICAgICAgYXV0byBpdGVyID0gaW5pdFRhYmxlLmZpbmQoU3RyaW5nIHsgbmFtZSB9KTsKIAog
ICAgICAgICAgICAgaWYgKGl0ZXIgPT0gaW5pdFRhYmxlLmVuZCgpKQogICAgICAgICAgICAgICAg
IHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKaW5kZXggMzBhY2FmMzM0NTgwNTM3
NGQ4MWRiYjBiMWM1ZDQ5ZmY3YWYwYTZlMS4uYzI4NzczNmQ3MWU3ZWI5ZTg4NTU4ZmZjZDBiNzA0
NTI1YmZmY2Y5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKQEAgLTkyLDcgKzkyLDcg
QEAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8c3RkOjp0dXBsZTxSZWY8UHJvdG9jb2w6OlJ1bnRp
bWU6OlJlbW90ZU9iamVjdD4sIHN0ZDo6b3AKICAgICBpZiAoaW5qZWN0ZWRTY3JpcHQuaGFzTm9W
YWx1ZSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoZXJyb3JTdHJpbmcpOwogCi0g
ICAgYXV0byBmdW5jdGlvblN0cmluZyA9IG1ha2VTdHJpbmcoIihmdW5jdGlvbihXZWJJbnNwZWN0
b3JBdWRpdCkgeyBcInVzZSBzdHJpY3RcIjsgcmV0dXJuIGV2YWwoYCgiLCBTdHJpbmcgeyB0ZXN0
IH0ucmVwbGFjZSgnYCcsICJcXGAiKSwgIilgKShXZWJJbnNwZWN0b3JBdWRpdCk7IH0pIik7Cisg
ICAgYXV0byBmdW5jdGlvblN0cmluZyA9IG1ha2VTdHJpbmcoIihmdW5jdGlvbihXZWJJbnNwZWN0
b3JBdWRpdCkgeyBcInVzZSBzdHJpY3RcIjsgcmV0dXJuIGV2YWwoYCgiLCBTdHJpbmcgeyB0ZXN0
IH0ucmVwbGFjZSgnYCcsICJcXGAiX3MpLCAiKWApKFdlYkluc3BlY3RvckF1ZGl0KTsgfSkiKTsK
IAogICAgIEluamVjdGVkU2NyaXB0OjpFeGVjdXRlT3B0aW9ucyBvcHRpb25zOwogICAgIG9wdGlv
bnMub2JqZWN0R3JvdXAgPSAiYXVkaXQiX3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L1RleHRTdHJlYW0uaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCmluZGV4
IGM4NWRhNjY0MWUxMzE3M2M5NzExNTdiYTRhOTgzYjQ0ZjU0NjViYTUuLmRmNzEyZWQyMDVmNDc5
Nzk3YmI2ZDlmNTA2N2Q2MTQzMTFjNjUwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvVGV4dFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCkBA
IC0xMDAsNiArMTAwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgdHMuZW5kR3JvdXAoKTsKICAgICB9
CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgZHVtcFByb3BlcnR5KGNvbnN0
IGNoYXIqIG5hbWUsIGNvbnN0IFQmIHZhbHVlKQorICAgIHsKKyAgICAgICAgVGV4dFN0cmVhbSYg
dHMgPSAqdGhpczsKKyAgICAgICAgdHMuc3RhcnRHcm91cCgpOworICAgICAgICB0cyA8PCBuYW1l
IDw8ICIgIiA8PCB2YWx1ZTsKKyAgICAgICAgdHMuZW5kR3JvdXAoKTsKKyAgICB9CisKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHJlbGVhc2UoKTsKICAgICAKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBzdGFydEdyb3VwKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1l
bnRIYW5kbGVyLmNwcAppbmRleCBmNGRhZjhkMThhZWM0OTk3NzVkNWMwM2MwOGVhYTA0MzI0MTE0
M2ZiLi40YTMyMjVjZTljYTQwNmMwMGZlMTY4NDYwYTVkNmQwMzAwNDI4NTU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1z
LXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5QU1TVUlSZXF1ZXN0
PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheUFNU1VJUmVxdWVzdChEb2N1bWVudCYgZG9jdW1l
bnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQogewogICAgIGlmIChkYXRhLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2Qg
ZGF0YS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5n
IHBheW1lbnQgbWV0aG9kIGRhdGEuIl9zIH07CiAKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKGRvY3VtZW50LnZtKCkpOwogICAgIGF1dG8gYXBwbGVQYXlBTVNVSVJl
cXVlc3QgPSBjb252ZXJ0RGljdGlvbmFyeTxBcHBsZVBheUFNU1VJUmVxdWVzdD4oKmRvY3VtZW50
Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKaW5kZXggZGQzZGNiNGVjN2Rk
NGE2YWYzOTBiZWQ2YzFhN2YyYTE0MjMxMzUyNC4uMzcxYjllZDQyMzI4N2Q5NzczNTU5YTVjZjhh
NTFiNjc5N2VmM2FjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgRXhjZXB0
aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RGaWVsZHM+IGNvbnZl
cnRBbmRWYWxpZGF0ZSh1bnMKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFwcGxl
UGF5Q29udGFjdEZpZWxkOjpQaG9uZXRpY05hbWU6CiAgICAgICAgICAgICBpZiAodmVyc2lvbiA8
IDMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlwicGhv
bmV0aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4iIH07CisgICAgICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlwicGhvbmV0aWNOYW1lXCIgaXMg
bm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4iX3MgfTsKICAgICAgICAgICAgIHJlc3VsdC5waG9u
ZXRpY05hbWUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXBwbGVQ
YXlDb250YWN0RmllbGQ6OlBob25lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcAppbmRleCBh
NjJhMmM3M2VhMzA2NTUxYmVlODVkYzk1NjE3YzExNjI1NjUzYmMyLi5mNjg0YmM5YWM2MWQ0OTlh
NTVjYTRlMTgxZjU3YjQ2OTE3MjU3OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcApA
QCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBFeGNlcHRpb25PcjxBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXM+IGNvbnZlcnRBbmRW
YWxpZGF0ZShjb25zdCBWZWN0b3I8QXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHk+JiBtZXJjaGFu
dENhcGFiaWxpdGllcykKIHsKICAgICBpZiAobWVyY2hhbnRDYXBhYmlsaXRpZXMuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIG1l
cmNoYW50IGNhcGFiaWxpdHkgbXVzdCBiZSBwcm92aWRlZC4iIH07CisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUgbWVyY2hhbnQgY2FwYWJpbGl0eSBt
dXN0IGJlIHByb3ZpZGVkLiJfcyB9OwogCiAgICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzIHJlc3VsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMjQ1
ODZkNWRkNDc5YzkwOTNkNDlmOTYxMDExOTFjYWE4ZTg1MDk3ZS4uOGQzNjI3YTZmNmEyN2ZiOGM4
MmM5M2FkNTQ2ZDZhYWYwNjliZjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCkBAIC03Myw3ICs3Myw3IEBA
IEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiBjb252ZXJ0QW5kVmFs
aWRhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgcmVzdWx0LnNldE1lcmNoYW50Q2FwYWJpbGl0
aWVzKG1lcmNoYW50Q2FwYWJpbGl0aWVzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgIGlm
IChyZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtzKHZlcnNpb24sIHJlcXVlc3QpICYmIHJlcXVlc3Qu
c3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11c3QgYmUgcHJvdmlk
ZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qg
b25lIHN1cHBvcnRlZCBuZXR3b3JrIG11c3QgYmUgcHJvdmlkZWQuIl9zIH07CiAKICAgICBhdXRv
IHN1cHBvcnRlZE5ldHdvcmtzID0gY29udmVydEFuZFZhbGlkYXRlKGRvY3VtZW50LCB2ZXJzaW9u
LCByZXF1ZXN0LnN1cHBvcnRlZE5ldHdvcmtzLCBwYXltZW50Q29vcmRpbmF0b3IpOwogICAgIGlm
IChzdXBwb3J0ZWROZXR3b3Jrcy5oYXNFeGNlcHRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcAppbmRleCA2Y2JmY2YwNzk3
NTAxYTk5NjI5ZmNjNjkzNmI2ZjA1MGYwY2ZjODlhLi41OWUzMDBiZWI3MDkyNmVmOTgzYWVjYmE2
ZDRhZTViNmU3YjA2NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC0zMTAsMTAgKzMxMCwxMCBAQCBFeGNlcHRpb25P
cjxSZWY8QXBwbGVQYXlTZXNzaW9uPj4gQXBwbGVQYXlTZXNzaW9uOjpjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50LCB1bgogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9uKCk7
CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUo
KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3Qg
Y3JlYXRlIGEgbmV3IEFwcGxlUGF5U2Vzc2lvbiBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIu
IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVz
dCBjcmVhdGUgYSBuZXcgQXBwbGVQYXlTZXNzaW9uIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxl
ci4iX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiRnJhbWUgaXMgZGV0YWNoZWQiIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJGcmFtZSBpcyBkZXRh
Y2hlZCJfcyB9OwogCiAgICAgYXV0byBjb252ZXJ0ZWRQYXltZW50UmVxdWVzdCA9IGNvbnZlcnRB
bmRWYWxpZGF0ZShkb2N1bWVudCwgdmVyc2lvbiwgV1RGTW92ZShwYXltZW50UmVxdWVzdCksIGRv
Y3VtZW50LnBhZ2UoKS0+cGF5bWVudENvb3JkaW5hdG9yKCkpOwogICAgIGlmIChjb252ZXJ0ZWRQ
YXltZW50UmVxdWVzdC5oYXNFeGNlcHRpb24oKSkKQEAgLTQxMiw3ICs0MTIsNyBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50U2V0dXAoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdAogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9u
KCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1
cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11
c3QgY2FsbCBBcHBsZVBheVNlc3Npb24ub3BlblBheW1lbnRTZXR1cCBmcm9tIGEgdXNlciBnZXN0
dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5U2Vzc2lvbi5vcGVuUGF5bWVudFNldHVwIGZyb20g
YSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVu
dC5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtNDMxLDEzICs0MzEsMTMgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgU3QKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5U2Vzc2lvbjo6YmVnaW4o
RG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmICghY2FuQmVnaW4oKSkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBheW1lbnQgc2Vzc2lvbiBpcyBh
bHJlYWR5IGFjdGl2ZS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IsICJQYXltZW50IHNlc3Npb24gaXMgYWxyZWFkeSBhY3RpdmUuIl9zIH07CiAKICAg
ICBpZiAocGF5bWVudENvb3JkaW5hdG9yKCkuaGFzQWN0aXZlU2Vzc2lvbigpKQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiUGFnZSBhbHJlYWR5IGhhcyBh
biBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciwgIlBhZ2UgYWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQg
c2Vzc2lvbi4iX3MgfTsKIAogICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9yKCkuYmVnaW5QYXlt
ZW50U2Vzc2lvbihkb2N1bWVudCwgKnRoaXMsIG1fcGF5bWVudFJlcXVlc3QpKQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVGhlcmUgaXMgYWxyZWFkeSBo
YXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lvbi4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUaGVyZSBpcyBhbHJlYWR5IGhhcyBhbiBhY3RpdmUg
cGF5bWVudCBzZXNzaW9uLiJfcyB9OwogCiAgICAgbV9zdGF0ZSA9IFN0YXRlOjpBY3RpdmU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3Bw
CmluZGV4IGU4YjEzNjE2OTBiMjBlYWY3ZTFjNjE2YTc3MmE4ZjYxM2RlZmYzNDguLjg5ZTRhNDU1
ZjE4NWY4MTkwYzdlYzBkNzYxNzg0ZDU5NDZiYzYxNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcApAQCAtOTEsNyArOTEsNyBAQCB2
b2lkIEFwcGxlUGF5U2V0dXA6OmJlZ2luKERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPFJlZlB0
cjxBcHBsZVBheVNldHVwRmVhdHVyZQogICAgIH0KIAogICAgIGlmICghVXNlckdlc3R1cmVJbmRp
Y2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNldHVw
LmJlZ2luIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iIH0pOworICAgICAgICBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0IGNhbGwgQXBwbGVQ
YXlTZXR1cC5iZWdpbiBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIl9zIH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0KaW5k
ZXggNjRkMWRiYjIxMmU3MDJjMDJiMmI4MmNkMWU2OGU4MGU3NzNmMDg3MC4uOTljNzRkNjg5MTY0
OTA3MjI1MGRlYzQ5Yjk2ZDAwY2NhNmM2ZTE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmln
dXJhdGlvbi5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIEV4Y2VwdGlvbk9yPFBheW1lbnRJbnN0YWxs
bWVudENvbmZpZ3VyYXRpb24+IFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb246OmNyCiAg
ICAgICAgIE5TRGF0YSAqYXBwbGljYXRpb25NZXRhZGF0YSA9IFtjb25maWd1cmF0aW9uLmFwcGxp
Y2F0aW9uTWV0YWRhdGEgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddOwog
ICAgICAgICBhcHBsaWNhdGlvbk1ldGFkYXRhRGljdGlvbmFyeSA9IGR5bmFtaWNfb2JqY19jYXN0
PE5TRGljdGlvbmFyeT4oW05TSlNPTlNlcmlhbGl6YXRpb24gSlNPTk9iamVjdFdpdGhEYXRhOmFw
cGxpY2F0aW9uTWV0YWRhdGEgb3B0aW9uczowIGVycm9yOm5pbF0pOwogICAgICAgICBpZiAoIWFw
cGxpY2F0aW9uTWV0YWRhdGFEaWN0aW9uYXJ5KQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBhIEpTT04gb2JqZWN0
IiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImFwcGxpY2F0
aW9uTWV0YWRhdGEgbXVzdCBiZSBhIEpTT04gb2JqZWN0Il9zIH07CiAgICAgfQogCiAgICAgcmV0
dXJuIFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbiwgYXBwbGlj
YXRpb25NZXRhZGF0YURpY3Rpb25hcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbSBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0KaW5kZXggZjEwYzU1
ZDQ5NGExMWMzMGMwYTEwNWUxYmZiNjE0MzkwODY2OGM0MC4uYzUyZmQ5MmQwOGQzZGM0ZTMzYWY3
ZTBmZGJiZTNlMGM4ZThjZWNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCkBAIC05NSwxOCArOTUs
MTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlkYXRl
KGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnQKIEV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRS
ZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRvdGFsKGNvbnN0IEFwcGxlUGF5TGluZUl0ZW0mIHRv
dGFsKQogewogICAgIGlmICghdG90YWwubGFiZWwpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBUeXBlRXJyb3IsICJNaXNzaW5nIHRvdGFsIGxhYmVsLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgbGFiZWwuIl9zIH07CiAKICAgICBp
ZiAoIXRvdGFsLmFtb3VudCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwg
Ik1pc3NpbmcgdG90YWwgYW1vdW50LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiJfcyB9OwogCiAgICAgZG91YmxlIGFtb3Vu
dCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1hbE51bWJlcldpdGhTdHJpbmc6dG90YWwuYW1vdW50
IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxTZXBhcmF0b3IgOiBAIi4iIH1dLmRvdWJsZVZhbHVl
OwogCiAgICAgaWYgKGFtb3VudCA8IDApCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJUb3RhbCBhbW91bnQgbXVzdCBub3QgYmUgbmVnYXRpdmUuIiB9OworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVG90YWwgYW1vdW50IG11c3Qgbm90IGJlIG5l
Z2F0aXZlLiJfcyB9OwogCiAgICAgaWYgKGFtb3VudCA+IDEwMDAwMDAwMCkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBpcyB0b28gYmlnLiIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBpcyB0
b28gYmlnLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTExNCw3ICsxMTQsNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGVUb3RhbChj
b25zdCBBcHBsZVBheUxpbmVJdGVtJgogc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRl
Q291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5Q29kZSkKIHsKICAgICBpZiAoIWNvdW50
cnlDb2RlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBj
b3VudHJ5IGNvZGUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
TWlzc2luZyBjb3VudHJ5IGNvZGUuIl9zIH07CiAKICAgICBmb3IgKGF1dG8gKmNvdW50cnlDb2Rl
UHRyID0gdWxvY19nZXRJU09Db3VudHJpZXMoKTsgKmNvdW50cnlDb2RlUHRyOyArK2NvdW50cnlD
b2RlUHRyKSB7CiAgICAgICAgIGlmIChjb3VudHJ5Q29kZSA9PSAqY291bnRyeUNvZGVQdHIpCkBA
IC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ291bnRy
eUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5Q29kZSkKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lk
PiB2YWxpZGF0ZUN1cnJlbmN5Q29kZShjb25zdCBTdHJpbmcmIGN1cnJlbmN5Q29kZSkKIHsKICAg
ICBpZiAoIWN1cnJlbmN5Q29kZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgIk1pc3NpbmcgY3VycmVuY3kgY29kZS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBUeXBlRXJyb3IsICJNaXNzaW5nIGN1cnJlbmN5IGNvZGUuIl9zIH07CiAKICAgICBVRXJyb3JD
b2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKICAgICBhdXRvIGN1cnJlbmN5Q29kZXMgPSBz
dGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWN1
cnJfb3BlbklTT0N1cnJlbmNpZXMoVUNVUlJfQUxMLCAmZXJyb3JDb2RlKSk7CkBAIC0xNDQsNyAr
MTQ0LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ3VycmVuY3lDb2RlKGNv
bnN0IFN0cmluZyYgY3VycmVuY3lDb2RlKQogc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlk
YXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJiBtZXJjaGFudENhcGFiaWxpdGllcykKIHsKICAgICBp
ZiAoIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzM0RTICYmICFtZXJjaGFudENhcGFiaWxp
dGllcy5zdXBwb3J0c0VNViAmJiAhbWVyY2hhbnRDYXBhYmlsaXRpZXMuc3VwcG9ydHNDcmVkaXQg
JiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzRGViaXQpCi0gICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIG1lcmNoYW50IGNhcGFiaWxpdGllcy4iIH07
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIG1lcmNoYW50
IGNhcGFiaWxpdGllcy4iX3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9CkBAIC0xNTIsNyArMTUy
LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRp
ZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWUKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2
YWxpZGF0ZVN1cHBvcnRlZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdXBwb3J0ZWRO
ZXR3b3JrcykKIHsKICAgICBpZiAoc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBzdXBwb3J0ZWQgbmV0d29y
a3MuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBz
dXBwb3J0ZWQgbmV0d29ya3MuIl9zIH07CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtMTYxLDcg
KzE2MSw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9k
KGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoCiB7CiAgICAgTlNEZWNpbWFsTnVtYmVy
ICphbW91bnQgPSBbTlNEZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXJXaXRoU3RyaW5nOnNoaXBw
aW5nTWV0aG9kLmFtb3VudCBsb2NhbGU6QHsgTlNMb2NhbGVEZWNpbWFsU2VwYXJhdG9yIDogQCIu
IiB9XTsKICAgICBpZiAoYW1vdW50LmludGVnZXJWYWx1ZSA8IDApCi0gICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlwcGluZyBtZXRob2QgYW1vdW50IG11c3QgYmUgZ3Jl
YXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8uIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgbWV0aG9kIGFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhh
biBvciBlcXVhbCB0byB6ZXJvLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKaW5kZXgg
OTRmOTQ1OWI5YjQ0OGE5ODQyZWIwZjQwMjNjNjQyYTA2OGU4M2M3MS4uMmU4ZjY2ZWE4M2MxZDQ3
MmRhMTg3YzA4MzZiNTgxNzZjYmFkOTFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKQEAgLTUyLDI0ICs1MiwyNCBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lvbihEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAiVGhp
cmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgdG8gcmVxdWVzdCBwYXltZW50cyB1bmxl
c3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAocGF5bWVudCkiX3MgfTsK
IAogICAgIGlmICghZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lv
biBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vz
c2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50LiJfcyB9OwogCiAgICAgaWYgKCFpc1NlY3Vy
ZSgqZG9jdW1lbnQubG9hZGVyKCkpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20g
YW4gaW5zZWN1cmUgZG9jdW1lbnQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZy
b20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIl9zIH07CiAKICAgICBhdXRvJiB0b3BEb2N1bWVudCA9
IGRvY3VtZW50LnRvcERvY3VtZW50KCk7CiAgICAgaWYgKCZkb2N1bWVudCAhPSAmdG9wRG9jdW1l
bnQpIHsKICAgICAgICAgYXV0byYgdG9wT3JpZ2luID0gdG9wRG9jdW1lbnQudG9wT3JpZ2luKCk7
CiAKICAgICAgICAgaWYgKCFkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhv
c3RQb3J0KHRvcE9yaWdpbikpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20g
YSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9w
LWxldmVsIGZyYW1lLiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBh
IGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3At
bGV2ZWwgZnJhbWUuIl9zIH07CiAKICAgICAgICAgZm9yIChhdXRvKiBhbmNlc3RvckRvY3VtZW50
ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQoKTsgYW5jZXN0b3JEb2N1bWVudCAhPSAmdG9wRG9j
dW1lbnQ7IGFuY2VzdG9yRG9jdW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5wYXJlbnREb2N1bWVu
dCgpKSB7CiAgICAgICAgICAgICBpZiAoIWlzU2VjdXJlKCphbmNlc3RvckRvY3VtZW50LT5sb2Fk
ZXIoKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1l
bnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJhbWUuIiB9OworICAgICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4g
QXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gaW5zZWN1cmUgcGFyZW50
IGZyYW1lLiJfcyB9OwogCiAgICAgICAgICAgICBpZiAoIWFuY2VzdG9yRG9jdW1lbnQtPnNlY3Vy
aXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wT3JpZ2luKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0
YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVu
dCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIgfTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRv
IHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZl
cmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiJfcyB9OwogICAg
ICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5k
bGVyLmNwcAppbmRleCA3MDU1MWFlODY0NDg5YzllNjc3Y2Q5MjE1M2Y1ZDFlMjI3YTQwMjU0Li5l
YjU2YjkxZTVmZWRhYzY2YTc5ZDA0NmEzYmZlYzhkYjI5Mjc1ZDdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVu
dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVu
dHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgc3Rh
dGljIGlubGluZSBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGluYXRvcihEb2N1bWVu
dCYgZG9jdW1lbnQpCiBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252ZXJ0
QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBKU0M6OkpTVmFs
dWUgZGF0YSkKIHsKICAgICBpZiAoZGF0YS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRhdGEuIiB9OworICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhv
ZCBkYXRhLiJfcyB9OwogCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RShkb2N1bWVudC52bSgpKTsKICAgICBhdXRvIGFwcGxlUGF5UmVxdWVzdCA9IGNvbnZlcnREaWN0
aW9uYXJ5PEFwcGxlUGF5UmVxdWVzdD4oKmRvY3VtZW50Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9B
cHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcAppbmRleCA2ZGZm
ZjQ3YjdlMmNiODliNTRmOTVlYzQ2MjdkM2Q3Y2U2OTBmOTBiLi5jNWQxMzAzOGNmYzY3ZjQ1YTQ2
ZTY4YzljYzQ1MjEwNzNkNzZhNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFu
aWZlc3RQYXJzZXIuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgVmVjdG9yPEFwcGxpY2F0aW9uTWFu
aWZlc3Q6Okljb24+IEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNlSWNvbnMoY29uc3Qg
SlMKICAgICAgICAgICAgICAgICBjdXJyZW50SWNvbi5wdXJwb3NlcyA9IHB1cnBvc2VzOwogICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXJwb3NlU3RyaW5nVmFsdWUgPSBw
dXJwb3NlU3RyaW5nVmFsdWUuc3RyaXBXaGl0ZVNwYWNlKCkuY29udmVydFRvQVNDSUlMb3dlcmNh
c2UoKTsKLSAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBrZXl3b3JkcyA9IHB1cnBvc2VT
dHJpbmdWYWx1ZS5zcGxpdEFsbG93aW5nRW1wdHlFbnRyaWVzKCIgIik7CisgICAgICAgICAgICAg
ICAgVmVjdG9yPFN0cmluZz4ga2V5d29yZHMgPSBwdXJwb3NlU3RyaW5nVmFsdWUuc3BsaXRBbGxv
d2luZ0VtcHR5RW50cmllcygiICJfcyk7CiAKICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1
dG8mIGtleXdvcmQgOiBrZXl3b3JkcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoa2V5d29y
ZCA9PSAibW9ub2Nocm9tZSIpCkBAIC0yODIsOSArMjgyLDkgQEAgc3RhdGljIGJvb2wgaXNJblNj
b3BlKGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYgdGFyZ2V0VVJMKQogCiBVUkwgQXBw
bGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VTY29wZShjb25zdCBKU09OOjpPYmplY3QmIG1h
bmlmZXN0LCBjb25zdCBVUkwmIGRvY3VtZW50VVJMLCBjb25zdCBVUkwmIHN0YXJ0VVJMKQogewot
ICAgIFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIiB9OworICAgIFVSTCBkZWZhdWx0
U2NvcGUgeyBzdGFydFVSTCwgIi4vIl9zIH07CiAKLSAgICBhdXRvIHZhbHVlID0gbWFuaWZlc3Qu
Z2V0VmFsdWUoInNjb3BlIik7CisgICAgYXV0byB2YWx1ZSA9IG1hbmlmZXN0LmdldFZhbHVlKCJz
Y29wZSJfcyk7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIGRlZmF1bHRTY29wZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtl
ckdsb2JhbFNjb3BlQ2FjaGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2lu
ZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKaW5kZXggYTE3NDk1ZDc2NTk2NTZmZTJk
ZDljY2EzZDM3MTEyMjFmZTQ4ZDEwNC4uZGZlMTg4ZmMwZWZmZGFjMmJlZjBlOWFjZGU5NmMzZWY2
MmI4NmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9XaW5kb3dP
cldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCkBAIC0xMjcsNyArMTI3
LDcgQEAgRE9NQ2FjaGVTdG9yYWdlKiBXb3JrZXJHbG9iYWxTY29wZUNhY2hlczo6Y2FjaGVzKCkg
Y29uc3QKIEV4Y2VwdGlvbk9yPERPTUNhY2hlU3RvcmFnZSo+IFdpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGVDYWNoZXM6OmNhY2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01X
aW5kb3cmIHdpbmRvdykKIHsKICAgICBpZiAoZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmlz
U2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2Vj
dXJpdHlFcnJvciwgIkNhY2hlIHN0b3JhZ2UgaXMgZGlzYWJsZWQgYmVjYXVzZSB0aGUgY29udGV4
dCBpcyBzYW5kYm94ZWQgYW5kIGxhY2tzIHRoZSAnYWxsb3ctc2FtZS1vcmlnaW4nIGZsYWciIH07
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAiQ2FjaGUgc3RvcmFn
ZSBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBjb250ZXh0IGlzIHNhbmRib3hlZCBhbmQgbGFja3Mg
dGhlICdhbGxvdy1zYW1lLW9yaWdpbicgZmxhZyJfcyB9OwogCiAgICAgaWYgKCF3aW5kb3cuaXND
dXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJl
Z2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERh
dGFSZWdpc3RyeS5jcHAKaW5kZXggNmY4ODhlMTc4NThkZGE2ZDk0NzFlYzFmNmVmNWQwNjZkZjBl
NDk5MC4uOGNkYmNhNzdhZjM4MzA3YjJiNGMwYTRkMjVhMWYwZTkxMWFiYjFkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRh
UmVnaXN0cnkuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIFJlZlB0cjxGcmFnbWVudGVk
U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUtleWlkcyhjb25zdCBGcmFnbWVudGVkU2hhcmVkQnVmZmUK
ICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsKICAgICBmb3IgKGF1
dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyLnZhbHVlKCkpCiAgICAgICAgIGtpZHNBcnJheS0+cHVz
aFN0cmluZyhiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCkt
PmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKLSAgICBvYmplY3QtPnNldEFycmF5KCJraWRzIiwg
V1RGTW92ZShraWRzQXJyYXkpKTsKKyAgICBvYmplY3QtPnNldEFycmF5KCJraWRzIl9zLCBXVEZN
b3ZlKGtpZHNBcnJheSkpOwogCiAgICAgQ1N0cmluZyBqc29uRGF0YSA9IG9iamVjdC0+dG9KU09O
U3RyaW5nKCkudXRmOCgpOwogICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNyZWF0ZShqc29uRGF0
YS5kYXRhKCksIGpzb25EYXRhLmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCA5ZjQ4MWRjNjI5YWE3N2E2
MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwLi45YWNhNjE4YjVkNmM3MmUyNDI0NTk0YjlhMTlkZTFh
NGUwNGY5YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkv
RE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBp
L0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxW
ZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmlu
ZyYKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBpZiAoRmlsZVN5c3RlbTo6
ZmlsZVR5cGUoZnVsbFBhdGgpICE9IEZpbGVTeXN0ZW06OkZpbGVUeXBlOjpEaXJlY3RvcnkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIg
ZXhpc3RzIG9yIGlzIG5vIGxvbmdlciBhIGRpcmVjdG9yeSIgfTsKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQYXRoIG5vIGxvbmdlciBleGlzdHMgb3IgaXMgbm8g
bG9uZ2VyIGEgZGlyZWN0b3J5Il9zIH07CiAKICAgICBhdXRvIGNoaWxkTmFtZXMgPSBGaWxlU3lz
dGVtOjpsaXN0RGlyZWN0b3J5KGZ1bGxQYXRoKTsKICAgICBWZWN0b3I8TGlzdGVkQ2hpbGQ+IGxp
c3RlZENoaWxkcmVuOwpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxTdHJp
bmc+IHZhbGlkYXRlUGF0aElzRXhwZWN0ZWRUeXBlKGNvbnN0IFN0cmluZyYgZnVsbFBhdGgsIFN0
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0aCBkb2VzIG5v
dCBleGlzdCJfcyB9OwogCiAgICAgaWYgKCpmaWxlVHlwZSAhPSBleHBlY3RlZFR5cGUpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciwgIkVudHJ5IGF0IHBhdGgg
ZG9lcyBub3QgaGF2ZSBleHBlY3RlZCB0eXBlIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZU1pc21hdGNoRXJyb3IsICJFbnRyeSBhdCBwYXRoIGRvZXMgbm90IGhhdmUgZXhwZWN0
ZWQgdHlwZSJfcyB9OwogCiAgICAgcmV0dXJuIFdURk1vdmUodmlydHVhbFBhdGgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcApp
bmRleCA5MzZhN2U0MzA1NmM0NTVlMjliMjU1MGZiNDAxMGJlZWVjM2IzNWViLi42ZjZkYzY3Y2Mz
NGI4ZDQwN2FiZjZkZTQ2NGM1MjljNzQyMzZkNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcApAQCAtMTUwLDEwICsxNTAsMTAg
QEAgUmVmUHRyPERPTUZvcm1EYXRhPiBGZXRjaEJvZHlDb25zdW1lcjo6cGFja2FnZUZvcm1EYXRh
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGMKICAgICAgICAgICAgIGNvbnRlbnREaXNwb3NpdGlv
blBhcmFtZXRlcnNCZWdpbisrOwogCiAgICAgICAgIGF1dG8gcGFyYW1ldGVycyA9IHBhcnNlUGFy
YW1ldGVycyhTdHJpbmdWaWV3KGhlYWRlcikuc3Vic3RyaW5nKGNvbnRlbnREaXNwb3NpdGlvblBh
cmFtZXRlcnNCZWdpbiwgY29udGVudERpc3Bvc2l0aW9uRW5kIC0gY29udGVudERpc3Bvc2l0aW9u
UGFyYW1ldGVyc0JlZ2luKSwgMCk7Ci0gICAgICAgIFN0cmluZyBuYW1lID0gcGFyYW1ldGVycy5n
ZXQoIm5hbWUiKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBwYXJhbWV0ZXJzLmdldCgibmFtZSJf
cyk7CiAgICAgICAgIGlmICghbmFtZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgU3RyaW5nIGZpbGVuYW1lID0gcGFyYW1ldGVycy5nZXQoImZpbGVuYW1lIik7CisgICAgICAg
IFN0cmluZyBmaWxlbmFtZSA9IHBhcmFtZXRlcnMuZ2V0KCJmaWxlbmFtZSJfcyk7CiAgICAgICAg
IGlmICghZmlsZW5hbWUpCiAgICAgICAgICAgICBmb3JtLmFwcGVuZChuYW1lLCBTdHJpbmc6OmZy
b21VVEY4KGJvZHlCZWdpbiwgYm9keUxlbmd0aCkpOwogICAgICAgICBlbHNlIHsKQEAgLTE3Niw3
ICsxNzYsNyBAQCBSZWZQdHI8RE9NRm9ybURhdGE+IEZldGNoQm9keUNvbnN1bWVyOjpwYWNrYWdl
Rm9ybURhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogYwogICAgICAgICBpZiAoIW1pbWVUeXBl
KQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgaWYgKGVxdWFsSWdu
b3JpbmdBU0NJSUNhc2UobWltZVR5cGUtPnR5cGUsICJtdWx0aXBhcnQiKSAmJiBlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKG1pbWVUeXBlLT5zdWJ0eXBlLCAiZm9ybS1kYXRhIikpIHsKLSAgICAgICAg
ICAgIGF1dG8gaXRlcmF0b3IgPSBtaW1lVHlwZS0+cGFyYW1ldGVycy5maW5kKCJib3VuZGFyeSIp
OworICAgICAgICAgICAgYXV0byBpdGVyYXRvciA9IG1pbWVUeXBlLT5wYXJhbWV0ZXJzLmZpbmQo
ImJvdW5kYXJ5Il9zKTsKICAgICAgICAgICAgIGlmIChpdGVyYXRvciAhPSBtaW1lVHlwZS0+cGFy
YW1ldGVycy5lbmQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0b3ItPnZhbHVlOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
SGVhZGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5j
cHAKaW5kZXggMDkwZjVjZjRkMGZmMTE1ZDg0YmY3MzNiN2E3YjE1YjM0ZjJlM2E1Zi4uMjZhZjA4
ZjFhZDVlMTRjYmQxYWVkNzRlZmRlYTNmMWFkMzhiZTYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRp
YyBFeGNlcHRpb25Pcjx2b2lkPiBmaWxsSGVhZGVyTWFwKEhUVFBIZWFkZXJNYXAmIGhlYWRlcnMs
IGNvbnN0IEZldGNoSGVhZGVyCiAgICAgICAgIGF1dG8mIHNlcXVlbmNlID0gc3RkOjpnZXQ8VmVj
dG9yPFZlY3RvcjxTdHJpbmc+Pj4oaGVhZGVyc0luaXQpOwogICAgICAgICBmb3IgKGF1dG8mIGhl
YWRlciA6IHNlcXVlbmNlKSB7CiAgICAgICAgICAgICBpZiAoaGVhZGVyLnNpemUoKSAhPSAyKQot
ICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJIZWFkZXIgc3Vi
LXNlcXVlbmNlIG11c3QgY29udGFpbiBleGFjdGx5IHR3byBpdGVtcyIgfTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiSGVhZGVyIHN1Yi1zZXF1ZW5jZSBt
dXN0IGNvbnRhaW4gZXhhY3RseSB0d28gaXRlbXMiX3MgfTsKICAgICAgICAgICAgIGF1dG8gcmVz
dWx0ID0gYXBwZW5kVG9IZWFkZXJNYXAoaGVhZGVyWzBdLCBoZWFkZXJbMV0sIGhlYWRlcnMsIGd1
YXJkKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCmluZGV4IDdjZWEzMmE5NThmMTRiZDhjODc4
YmM1MWY0OWMxZDFhZGE2ZDZhMzcuLmY3NDMzOGU4ZDMyMjI3MGEzODBmMjQ5YTY0MmU0ZWEwZjky
Mjg2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3Bw
CkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgVVJMCiAKICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdChtX3VybEZvclJlYWRpbmcpOwogICAgIHJlcXVlc3Quc2V0SW5pdGlh
dG9ySWRlbnRpZmllcihjb250ZXh0LnJlc291cmNlUmVxdWVzdElkZW50aWZpZXIoKSk7Ci0gICAg
cmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJHRVQiKTsKKyAgICByZXF1ZXN0LnNldEhUVFBNZXRob2Qo
IkdFVCJfcyk7CiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAgIG9w
dGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxsYmFj
a3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCAwZTk1ZmZkZWU0YWY4NTRl
ODdlMjUzYTljZGU4NjM0MmY1YTJlZGY4Li5hYTMyYTliYjIyZmI0YmJmOTNiYWRkNjFkMTI4OGJi
ZjkwOGQzZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKQEAgLTU1LDcgKzU1
LDcgQEAgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmkKIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6
OmdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlPj4mJiBwcm9taXNl
KQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3Qo
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKyAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
LCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGNvbm5lY3Rpb24oKS5nZXRGaWxlKGlk
ZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYgcHJv
bQogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Q
cm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4m
JiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICByZXR1cm4gcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2Vk
IiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGNvbm5lY3Rpb24oKS5j
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYg
eyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuY3BwCmluZGV4IDBiOWY3ODhlNDkwM2ZhN2U3YWU0Mjg5N2EwMDJiOTZlOGRmZTEzZDcuLjll
MGNjODc0YjBjNzM0NDU3YzQ5YzRjMzg2ZGFjMmIzYmY0ZGU1OTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhh
bmRsZS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjpjbG9zZSgp
CiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhh
bmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlzZSkgY29uc3QKIHsK
ICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
IHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhh
bmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBpZiAobV9raW5kICE9IGhhbmRsZS5raW5kKCkg
fHwgbV9uYW1lICE9IGhhbmRsZS5uYW1lKCkpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29s
dmUoZmFsc2UpOwpAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2Ft
ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPAogdm9p
ZCBGaWxlU3lzdGVtSGFuZGxlOjptb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmIGRlc3RpbmF0aW9uSGFu
ZGxlLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHBy
b21pc2UpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiIH0p
OworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgaWYgKGRlc3RpbmF0aW9uSGFu
ZGxlLmtpbmQoKSAhPSBLaW5kOjpEaXJlY3RvcnkpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciB9KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKaW5k
ZXggMjcxZGVkNGRlZThiODg4ZDMxZTRjNGMxMWUxZDFmYzg4OWRiYTZhYi4uNDY1NzY4ZDhlNWU0
ZmU0ZGZhYjE4OTNiNzljZTZhYzZkNzdlNTU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKQEAgLTcwLDcg
KzcwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKCkgY29uc3Qg
eyByZXR1cm4gbV9vcmlnaW47IH0KICAgICBib29sIGlzVHJhbnNpZW50KCkgY29uc3QgeyByZXR1
cm4gbV9pc1RyYW5zaWVudDsgfQogCi0gICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UmVsYXRp
dmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHZlcnNp
b25TdHJpbmc9InYxIikgY29uc3Q7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UmVsYXRp
dmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHZlcnNp
b25TdHJpbmcgPSAidjEiX3MpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChjb25zdCBDbGllbnRPcmlnaW4mLCBj
b25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZyk7
CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3Bw
CmluZGV4IDJhMzdjNTI4ZWY1YmY5ZDk1NzczYTBiMTBmMDI1MjI5YmRlNWE0MTguLjQ2MGYxNzRh
MzgxYWI2YWJhNGNhMjk4MzE0NTI2OThiNWQ1MjkwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCkBAIC0xNDksMzUgKzE0OSwzNSBAQCB2
b2lkIElEQktleURhdGE6Omlzb2xhdGVkQ29weShjb25zdCBJREJLZXlEYXRhJiBzb3VyY2UsIElE
QktleURhdGEmIGRlc3RpbmF0aW9uKQogCiB2b2lkIElEQktleURhdGE6OmVuY29kZShLZXllZEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci5lbmNvZGVCb29sKCJudWxsIiwg
bV9pc051bGwpOworICAgIGVuY29kZXIuZW5jb2RlQm9vbCgibnVsbCJfcywgbV9pc051bGwpOwog
ICAgIGlmIChtX2lzTnVsbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZW5jb2Rlci5lbmNvZGVF
bnVtKCJ0eXBlIiwgbV90eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0oInR5cGUiX3MsIG1f
dHlwZSk7CiAKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlU
eXBlOjpJbnZhbGlkOgogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5
cGU6OkFycmF5OiB7CiAgICAgICAgIGF1dG8mIGFycmF5ID0gc3RkOjpnZXQ8VmVjdG9yPElEQktl
eURhdGE+PihtX3ZhbHVlKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGVPYmplY3RzKCJhcnJheSIs
IGFycmF5LmJlZ2luKCksIGFycmF5LmVuZCgpLCBbXShLZXllZEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IElEQktleURhdGEmIGtleSkgeworICAgICAgICBlbmNvZGVyLmVuY29kZU9iamVjdHMoImFy
cmF5Il9zLCBhcnJheS5iZWdpbigpLCBhcnJheS5lbmQoKSwgW10oS2V5ZWRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXkpIHsKICAgICAgICAgICAgIGtleS5lbmNvZGUoZW5j
b2Rlcik7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSW5k
ZXhlZERCOjpLZXlUeXBlOjpCaW5hcnk6IHsKICAgICAgICAgYXV0byogZGF0YSA9IHN0ZDo6Z2V0
PFRocmVhZFNhZmVEYXRhQnVmZmVyPihtX3ZhbHVlKS5kYXRhKCk7Ci0gICAgICAgIGVuY29kZXIu
ZW5jb2RlQm9vbCgiaGFzQmluYXJ5IiwgISFkYXRhKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVC
b29sKCJoYXNCaW5hcnkiX3MsICEhZGF0YSk7CiAgICAgICAgIGlmIChkYXRhKQotICAgICAgICAg
ICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5IiwgZGF0YS0+ZGF0YSgpLCBkYXRhLT5zaXpl
KCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5Il9zLCBkYXRhLT5k
YXRhKCksIGRhdGEtPnNpemUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBJ
bmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKLSAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmco
InN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkpOworICAgICAgICBlbmNvZGVyLmVu
Y29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlOgogICAgIGNhc2Ug
SW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlRG91Ymxl
KCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKTsKKyAgICAgICAgZW5jb2Rlci5l
bmNvZGVEb3VibGUoIm51bWJlciJfcywgc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVlKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TWF4OgogICAgIGNhc2Ug
SW5kZXhlZERCOjpLZXlUeXBlOjpNaW46CkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBJREJLZXlE
YXRhOjplbmNvZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBib29sIElEQktleURh
dGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEmIHJlc3VsdCkKIHsK
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgibnVsbCIsIHJlc3VsdC5tX2lzTnVsbCkpCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woIm51bGwiX3MsIHJlc3VsdC5tX2lzTnVsbCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQubV9pc051bGwpCkBAIC0yMDUs
NyArMjA1LDcgQEAgYm9vbCBJREJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVy
LCBJREJLZXlEYXRhJiByZXN1bHQpCiAgICAgICAgICAgICB8fCB2YWx1ZSA9PSBJbmRleGVkREI6
OktleVR5cGU6Ok51bWJlcgogICAgICAgICAgICAgfHwgdmFsdWUgPT0gSW5kZXhlZERCOjpLZXlU
eXBlOjpNaW47CiAgICAgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSgidHlwZSIsIHJl
c3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0o
InR5cGUiX3MsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6SW52
YWxpZCkKQEAgLTIxOSwyNiArMjE5LDI2IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVjb2RlKEtleWVk
RGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogCiAgICAgaWYgKHJlc3VsdC5t
X3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJpbmcpIHsKICAgICAgICAgcmVzdWx0Lm1f
dmFsdWUgPSBTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJz
dHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KHJlc3VsdC5tX3ZhbHVlKSk7CisgICAgICAgIHJldHVy
biBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxTdHJpbmc+KHJlc3Vs
dC5tX3ZhbHVlKSk7CiAgICAgfQogCiAgICAgaWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERC
OjpLZXlUeXBlOjpOdW1iZXIgfHwgcmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6
OkRhdGUpIHsKICAgICAgICAgcmVzdWx0Lm1fdmFsdWUgPSAwLjA7Ci0gICAgICAgIHJldHVybiBk
ZWNvZGVyLmRlY29kZURvdWJsZSgibnVtYmVyIiwgc3RkOjpnZXQ8ZG91YmxlPihyZXN1bHQubV92
YWx1ZSkpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVEb3VibGUoIm51bWJlciJfcywg
c3RkOjpnZXQ8ZG91YmxlPihyZXN1bHQubV92YWx1ZSkpOwogICAgIH0KIAogICAgIGlmIChyZXN1
bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6QmluYXJ5KSB7CiAgICAgICAgIHJlc3Vs
dC5tX3ZhbHVlID0gVGhyZWFkU2FmZURhdGFCdWZmZXIoKTsKIAogICAgICAgICBib29sIGhhc0Jp
bmFyeURhdGE7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJoYXNCaW5hcnkiLCBo
YXNCaW5hcnlEYXRhKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woImhhc0JpbmFy
eSJfcywgaGFzQmluYXJ5RGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAg
ICAgaWYgKCFoYXNCaW5hcnlEYXRhKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlQnl0
ZXMoImJpbmFyeSIsIGJ5dGVzKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJ5dGVzKCJi
aW5hcnkiX3MsIGJ5dGVzKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBy
ZXN1bHQubV92YWx1ZSA9IFRocmVhZFNhZmVEYXRhQnVmZmVyOjpjcmVhdGUoV1RGTW92ZShieXRl
cykpOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVj
b2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgIH07CiAgICAgCiAgICAgcmVz
dWx0Lm1fdmFsdWUgPSBWZWN0b3I8SURCS2V5RGF0YT4oKTsKLSAgICByZXR1cm4gZGVjb2Rlci5k
ZWNvZGVPYmplY3RzKCJhcnJheSIsIHN0ZDo6Z2V0PFZlY3RvcjxJREJLZXlEYXRhPj4ocmVzdWx0
Lm1fdmFsdWUpLCBhcnJheUZ1bmN0aW9uKTsKKyAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVPYmpl
Y3RzKCJhcnJheSJfcywgc3RkOjpnZXQ8VmVjdG9yPElEQktleURhdGE+PihyZXN1bHQubV92YWx1
ZSksIGFycmF5RnVuY3Rpb24pOwogfQogCiBpbnQgSURCS2V5RGF0YTo6Y29tcGFyZShjb25zdCBJ
REJLZXlEYXRhJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleVJhbmdlLmNwcAppbmRleCAxNGYzMDNhMDRjMjNhOGJmNDdiZjA2NTlmOTI4
NzkyNGY5NjEzYWZiLi5kZWY1MDQ4MTdhZDAzODIyNDc0ZGQyZjVkMTZkMzY5MGJiOTdmNGE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3Bw
CkBAIC0xMzcsNyArMTM3LDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSURCS2V5UmFuZ2U6OmluY2x1
ZGVzKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBKU0M6OkpTVmFsdWUKICAgICBhdXRvIGtl
eSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoc3RhdGUsIGtleVZhbHVlKTsKICAgICBFWENFUFRJT05f
QVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFrZXktPmlzVmFsaWQo
KSk7CiAgICAgaWYgKCFrZXktPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IERhdGFFcnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdpbmNsdWRlcycgb24gJ0lEQktleVJhbmdl
JzogVGhlIHBhc3NlZC1pbiB2YWx1ZSBpcyBub3QgYSB2YWxpZCBJbmRleGVkREIga2V5LiIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxlZCB0byBleGVjdXRl
ICdpbmNsdWRlcycgb24gJ0lEQktleVJhbmdlJzogVGhlIHBhc3NlZC1pbiB2YWx1ZSBpcyBub3Qg
YSB2YWxpZCBJbmRleGVkREIga2V5LiJfcyB9OwogCiAgICAgaWYgKG1fbG93ZXIpIHsKICAgICAg
ICAgaW50IGNvbXBhcmUgPSBtX2xvd2VyLT5jb21wYXJlKGtleS5nZXQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFs
aXphdGlvbi5jcHAKaW5kZXggMmEyYzFmYzMyOTU4MDVkNTJmZDU2YWYzMGI0NTVhZTJjY2NjNDg3
Ny4uMzNkNGQ0MWM5Mjc3YmZmMjk3MTM3NTJjODkxZDJjOTA5MWFkMzVjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJp
YWxpemF0aW9uLmNwcApAQCAtNDUsMTcgKzQ1LDE3IEBAIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNl
cmlhbGl6ZUlEQktleVBhdGgoY29uc3Qgc3RkOjpvcHRpb25hbDxJREJLZXlQYXRoPiYga2V5UGF0
CiAKICAgICBpZiAoa2V5UGF0aCkgewogICAgICAgICBhdXRvIHZpc2l0b3IgPSBXVEY6Om1ha2VW
aXNpdG9yKFsmXShjb25zdCBTdHJpbmcmIHN0cmluZykgewotICAgICAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlRW51bSgidHlwZSIsIEtleVBhdGhUeXBlOjpTdHJpbmcpOwotICAgICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJpbmcpOworICAgICAgICAgICAgZW5jb2Rl
ci0+ZW5jb2RlRW51bSgidHlwZSJfcywgS2V5UGF0aFR5cGU6OlN0cmluZyk7CisgICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywgc3RyaW5nKTsKICAgICAgICAgfSwg
WyZdKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2ZWN0b3IpIHsKLSAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZUVudW0oInR5cGUiLCBLZXlQYXRoVHlwZTo6QXJyYXkpOwotICAgICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0b3IuYmVnaW4oKSwgdmVjdG9yLmVuZCgp
LCBbXShXZWJDb3JlOjpLZXllZEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5n
KSB7Ci0gICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0cmluZyIsIHN0cmlu
Zyk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIl9zLCBLZXlQYXRoVHlw
ZTo6QXJyYXkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0cygiYXJyYXkiX3Ms
IHZlY3Rvci5iZWdpbigpLCB2ZWN0b3IuZW5kKCksIFtdKFdlYkNvcmU6OktleWVkRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsKKyAgICAgICAgICAgICAgICBlbmNvZGVy
LmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogICAgICAgICBzdGQ6OnZpc2l0KHZpc2l0b3IsIGtleVBhdGgudmFsdWUoKSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiLCBLZXlQYXRoVHlw
ZTo6TnVsbCk7CisgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiX3MsIEtleVBhdGhU
eXBlOjpOdWxsKTsKIAogICAgIHJldHVybiBlbmNvZGVyLT5maW5pc2hFbmNvZGluZygpOwogfQpA
QCAtNjgsNyArNjgsNyBAQCBib29sIGRlc2VyaWFsaXplSURCS2V5UGF0aChjb25zdCB1aW50OF90
KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc3RkOjpvcHRpb25hbDxJREJLZQogICAgIGF1dG8gZGVjb2Rl
ciA9IEtleWVkRGVjb2Rlcjo6ZGVjb2RlcihkYXRhLCBzaXplKTsKIAogICAgIEtleVBhdGhUeXBl
IHR5cGU7Ci0gICAgYm9vbCBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVFbnVtKCJ0eXBlIiwg
dHlwZSwgW10oS2V5UGF0aFR5cGUgdmFsdWUpIHsKKyAgICBib29sIHN1Y2NlZWRlZCA9IGRlY29k
ZXItPmRlY29kZUVudW0oInR5cGUiX3MsIHR5cGUsIFtdKEtleVBhdGhUeXBlIHZhbHVlKSB7CiAg
ICAgICAgIHJldHVybiB2YWx1ZSA9PSBLZXlQYXRoVHlwZTo6TnVsbCB8fCB2YWx1ZSA9PSBLZXlQ
YXRoVHlwZTo6U3RyaW5nIHx8IHZhbHVlID09IEtleVBhdGhUeXBlOjpBcnJheTsKICAgICB9KTsK
ICAgICBpZiAoIXN1Y2NlZWRlZCkKQEAgLTc5LDE1ICs3OSwxNSBAQCBib29sIGRlc2VyaWFsaXpl
SURCS2V5UGF0aChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc3RkOjpvcHRpb25h
bDxJREJLZQogICAgICAgICBicmVhazsKICAgICBjYXNlIEtleVBhdGhUeXBlOjpTdHJpbmc6IHsK
ICAgICAgICAgU3RyaW5nIHN0cmluZzsKLSAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVTdHJp
bmcoInN0cmluZyIsIHN0cmluZykpCisgICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlU3RyaW5n
KCJzdHJpbmciX3MsIHN0cmluZykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IHJlc3VsdCA9IElEQktleVBhdGgoV1RGTW92ZShzdHJpbmcpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIGNhc2UgS2V5UGF0aFR5cGU6OkFycmF5OiB7CiAgICAgICAgIFZlY3RvcjxTdHJp
bmc+IHZlY3RvcjsKLSAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVjb2RlT2JqZWN0cygi
YXJyYXkiLCB2ZWN0b3IsIFtdKEtleWVkRGVjb2RlciYgZGVjb2RlciwgU3RyaW5nJiByZXN1bHQp
IHsKLSAgICAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5nIiwgcmVz
dWx0KTsKKyAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVjb2RlT2JqZWN0cygiYXJyYXki
X3MsIHZlY3RvciwgW10oS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcmIHJlc3VsdCkgewor
ICAgICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJpbmciX3MsIHJlc3Vs
dCk7CiAgICAgICAgIH0pOwogICAgICAgICBpZiAoIXN1Y2NlZWRlZCkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggNzdkZjY2N2Q0MDk5ZDZmYjdkODVhMDU1YzIwMDRl
NjdiMmFiNWIxZC4uNDg2MDE1ZjdiOTZjMjZiZTZiYWE0MmFhNWZiZDc4ODZmMTQ4YjQ3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5jcHAKQEAgLTUzMCwxMCArNTMwLDEwIEBAIHZvaWQgSURCU2VydmVyOjpnZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29uCiAg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKFdURk1vdmUoKm5hbWVBbmRWZXJzaW9uKSk7CiAgICAg
fQogCi0gICAgYXV0byBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFi
YXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0
aCwgInYwIik7CisgICAgYXV0byBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6
OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYwIl9zKTsKICAgICBnZXREYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbU9yaWdp
bkRpcmVjdG9yeShvbGREaXJlY3RvcnksIHZpc2l0ZWREYXRhYmFzZVBhdGhzLCByZXN1bHQpOwog
Ci0gICAgYXV0byBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYx
Iik7CisgICAgYXV0byBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNl
RGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwg
InYxIl9zKTsKICAgICBnZXREYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbU9yaWdpbkRpcmVjdG9y
eShkaXJlY3RvcnksIHZpc2l0ZWREYXRhYmFzZVBhdGhzLCByZXN1bHQpOwogCiAgICAgYXV0byBj
b25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cik7CkBAIC01NjYsOCArNTY2LDggQEAgSGFzaFNldDxTZWN1cml0eU9yaWdpbkRhdGE+IElEQlNl
cnZlcjo6Z2V0T3JpZ2lucygpIGNvbnN0CiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBIYXNo
U2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gc2VjdXJpdHlPcmlnaW5zOwotICAgIGNv
bGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCIpLCBzZWN1cml0eU9yaWdpbnMpOwotICAg
IGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpLCBzZWN1cml0eU9yaWdpbnMpOwor
ICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCJfcyksIHNlY3VyaXR5T3JpZ2lu
cyk7CisgICAgY29sbGVjdE9yaWdpbnNGb3JWZXJzaW9uKEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKSwgc2VjdXJpdHlP
cmlnaW5zKTsKIAogICAgIHJldHVybiBzZWN1cml0eU9yaWdpbnM7CiB9CkBAIC01ODgsOCArNTg4
LDggQEAgdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5j
ZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQogICAgIG1fdW5pcXVlSURCRGF0YWJhc2VNYXAu
Y2xlYXIoKTsKIAogICAgIGlmICghbV9kYXRhYmFzZURpcmVjdG9yeVBhdGguaXNFbXB0eSgpKSB7
Ci0gICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJzaW9uKG1vZGlmaWNh
dGlvblRpbWUsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2RpZmllZFNpbmNlRm9y
VmVyc2lvbihtb2RpZmljYXRpb25UaW1lLCAidjEiKTsKKyAgICAgICAgcmVtb3ZlRGF0YWJhc2Vz
TW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYwIl9zKTsKKyAgICAg
ICAgcmVtb3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGlt
ZSwgInYxIl9zKTsKICAgICB9CiB9CiAKQEAgLTYyNCw4ICs2MjQsOCBAQCB2b2lkIElEQlNlcnZl
cjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0
eU9yaWdpbkRhdAogICAgIH0pOwogCiAgICAgaWYgKCFtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5p
c0VtcHR5KCkpIHsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdpbnNGb3JWZXJzaW9u
KG9yaWdpbnMsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRoT3JpZ2luc0ZvclZl
cnNpb24ob3JpZ2lucywgInYxIik7CisgICAgICAgIHJlbW92ZURhdGFiYXNlc1dpdGhPcmlnaW5z
Rm9yVmVyc2lvbihvcmlnaW5zLCAidjAiX3MpOworICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRo
T3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYxIl9zKTsKICAgICB9CiB9CiAKQEAgLTYzNiw3
ICs2MzYsNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVBbGxEYXRhYmFzZXNGb3JGdWxsT3JpZ2luUGF0
aChjb25zdCBTdHJpbmcmIG9yaWdpblBhdGgsIFdhbGxUaQogCiAgICAgZm9yIChhdXRvJiBkYXRh
YmFzZU5hbWUgOiBkYXRhYmFzZU5hbWVzKSB7CiAgICAgICAgIGF1dG8gZGF0YWJhc2VQYXRoID0g
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG9yaWdpblBhdGgsIGRhdGFiYXNl
TmFtZSk7Ci0gICAgICAgIFN0cmluZyBkYXRhYmFzZUZpbGUgPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VQYXRoLCAiSW5kZXhlZERCLnNxbGl0ZTMiKTsKKyAg
ICAgICAgU3RyaW5nIGRhdGFiYXNlRmlsZSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudChkYXRhYmFzZVBhdGgsICJJbmRleGVkREIuc3FsaXRlMyJfcyk7CiAgICAgICAgIGlm
IChtb2RpZmllZFNpbmNlID4gLVdhbGxUaW1lOjppbmZpbml0eSgpICYmIEZpbGVTeXN0ZW06OmZp
bGVFeGlzdHMoZGF0YWJhc2VGaWxlKSkgewogICAgICAgICAgICAgYXV0byBtb2RpZmljYXRpb25U
aW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNhdGlvblRpbWUoZGF0YWJhc2VGaWxlKTsKICAg
ICAgICAgICAgIGlmICghbW9kaWZpY2F0aW9uVGltZSkKQEAgLTczMiw3ICs3MzIsNyBAQCB2b2lk
IElEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgb2xkT3JpZ2luLCBjb25zdAogICAgICAgICByZXR1cm4gZGF0YWJhc2VPcmlnaW4udG9wT3Jp
Z2luID09IHRhcmdldE9yaWdpbjsKICAgICB9KTsKIAotICAgIGF1dG8gdmVyc2lvblBhdGggPSBG
aWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBh
dGgsICJ2MSIpOworICAgIGF1dG8gdmVyc2lvblBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSJfcyk7CiAgICAgYXV0
byBvbGRPcmlnaW5QYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHZl
cnNpb25QYXRoLCBvbGRPcmlnaW4uZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGF1dG8gbmV3
T3JpZ2luUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh2ZXJzaW9u
UGF0aCwgbmV3T3JpZ2luLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBpZiAoRmlsZVN5c3Rl
bTo6ZmlsZUV4aXN0cyhvbGRPcmlnaW5QYXRoKSkKQEAgLTc2OCwxNiArNzY4LDE2IEBAIHZvaWQg
SURCU2VydmVyOjp1cGdyYWRlRmlsZXNJZk5lY2Vzc2FyeSgpCiAgICAgaWYgKG1fZGF0YWJhc2VE
aXJlY3RvcnlQYXRoLmlzRW1wdHkoKSB8fCAhRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhtX2RhdGFi
YXNlRGlyZWN0b3J5UGF0aCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBuZXdWZXJz
aW9uRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0
YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiKTsKKyAgICBTdHJpbmcgbmV3VmVyc2lvbkRpcmVjdG9y
eSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYxIl9zKTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMobmV3VmVy
c2lvbkRpcmVjdG9yeSkpCiAgICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3Rvcmllcyhu
ZXdWZXJzaW9uRGlyZWN0b3J5KTsKIH0KIAogU3RyaW5nIElEQlNlcnZlcjo6dXBncmFkZWREYXRh
YmFzZURpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50aWZpZXImIGlkZW50
aWZpZXIpCiB7Ci0gICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0
YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYw
Iik7CisgICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VE
aXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYwIl9zKTsK
ICAgICBTdHJpbmcgb2xkRGF0YWJhc2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQob2xkT3JpZ2luRGlyZWN0b3J5LCBTUUxpdGVJREJCYWNraW5nU3RvcmU6
OmVuY29kZURhdGFiYXNlTmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpKSk7Ci0gICAgU3Ry
aW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxh
dGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7CisgICAgU3RyaW5nIG5l
d09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRv
Um9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBTdHJpbmcgZmlsZU5h
bWVIYXNoID0gU1FMaXRlRmlsZVN5c3RlbTo6Y29tcHV0ZUhhc2hGb3JGaWxlTmFtZShpZGVudGlm
aWVyLmRhdGFiYXNlTmFtZSgpKTsKICAgICBTdHJpbmcgbmV3RGF0YWJhc2VEaXJlY3RvcnkgPSBG
aWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobmV3T3JpZ2luRGlyZWN0b3J5LCBm
aWxlTmFtZUhhc2gpOwogICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhuZXdEYXRh
YmFzZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IGQ2
MzM1MDMwOTkzMDU1YjliMTJiNzg0NTY1NWRhODMzNzJiMWE1NTAuLjFjMjdhZDYxNzlmMWJlYWQw
ZmYxYTZkZWNmYjlhZTJiNWU5NTNmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUu
Y3BwCkBAIC03OCw3ICs3OCw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YmVn
aW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiAgICAgTE9HKElu
ZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbiIpOwogCiAg
ICAgaWYgKG1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKGluZm8uaWRlbnRpZmllcigpKSkKLSAgICAg
ICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGFz
a2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJlY29yZCBvZiIgfTsK
KyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0
b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJlY29yZCBv
ZiJfcyB9OwogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOwogCkBAIC0xMDQsNyArMTA0LDcgQEAgSURCRXJy
b3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHIKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9u
cy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKLSAg
ICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29yZCBvZiIgfTsK
KyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0
b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29yZCBvZiJf
cyB9OwogCiAgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CiAKQEAgLTExNyw3ICsxMTcsNyBAQCBJ
REJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdAogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNh
Y3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBpZiAoIXRyYW5zYWN0aW9u
KQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcg
c3RvcmUgYXNrZWQgdG8gY29tbWl0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29yZCBv
ZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2ZSByZWNv
cmQgb2YiX3MgfTsKIAogICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKIApAQCAtNDczLDcgKzQ3
Myw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAgICBrZXlOdW1iZXIgPSBvYmplY3RT
dG9yZS0+Y3VycmVudEtleUdlbmVyYXRvclZhbHVlKCk7CiAgICAgaWYgKGtleU51bWJlciA+IG1h
eEdlbmVyYXRlZEtleVZhbHVlKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50
RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJeNTMgZm9yIG9iamVj
dCBzdG9yZSBvcGVyYXRpb24iIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFp
bnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5IHZhbHVlIG92ZXIgMl41MyBmb3Igb2Jq
ZWN0IHN0b3JlIG9wZXJhdGlvbiJfcyB9OwogCiAgICAgb2JqZWN0U3RvcmUtPnNldEtleUdlbmVy
YXRvclZhbHVlKGtleU51bWJlciArIDEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcAppbmRl
eCA3ZWY5ZDBhMzg3ZjcyN2Q4NWVjMGRlZWY2ZDNjYWUwZGVkMDE1OGNmLi44OTIzMWI0YWUyNDk2
OGU4OWIwZDc1ODExNTFmNTI4ZWUzZTJmYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHAK
QEAgLTMxMCw3ICszMTAsNyBAQCBJREJFcnJvciBNZW1vcnlPYmplY3RTdG9yZTo6dXBkYXRlSW5k
ZXhlc0ZvclB1dFJlY29yZChjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbgogICAgICAgICBhdXRv
KiBpbmRleCA9IG1faW5kZXhlc0J5SWRlbnRpZmllci5nZXQoaW5kZXhJRCk7CiAgICAgICAgIEFT
U0VSVChpbmRleCk7CiAgICAgICAgIGlmICghaW5kZXgpIHsKLSAgICAgICAgICAgIGVycm9yID0g
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0YWRhdGEiIH07
CisgICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJNaXNz
aW5nIGluZGV4IG1ldGFkYXRhIl9zIH07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FM
aXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDJmYWYzZTk1ZDMxYzk4OWZj
ZTEyZTA1N2YwNmMyMmUyZmY3M2M0NmUuLmNiZDQ2Mjc5MDc4Nzc4MDJmMzhjNmE0ZGZiNjZjMWEy
MjMxZGIzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCkBAIC05OCwzNyAr
OTgsMzcgQEAgc3RhdGljIGludCBpZGJLZXlDb2xsYXRlKGludCBhTGVuZ3RoLCBjb25zdCB2b2lk
KiBhQnVmZmVyLCBpbnQgYkxlbmd0aCwgY29uc3Qgdm8KICAgICByZXR1cm4gYS5jb21wYXJlKGIp
OwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYxUmVjb3Jkc1RhYmxlU2NoZW1hKGNvbnN0IFN0
cmluZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MVJlY29yZHNUYWJsZVNjaGVt
YShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtlU3RyaW5nKCJDUkVB
VEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChvYmplY3RTdG9yZUlEIElOVEVHRVIgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwgT04gQ09O
RkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSwgdmFsdWUgTk9UIE5VTEwgT04g
Q09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjFSZWNvcmRzVGFi
bGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVjb3Jk
c1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIikpOworICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5n
KHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYxUmVjb3Jk
c1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MVJlY29yZHNU
YWJsZVNjaGVtYUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVTY2hlbWEoIlwiUmVj
b3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVjb3Jkc1Rh
YmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiJfcykpOwog
ICAgIHJldHVybiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAotc3RhdGljIGNvbnN0
IFN0cmluZyB2MlJlY29yZHNUYWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0
YXRpYyBjb25zdCBTdHJpbmcgdjJSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlMaXRlcmFsIHRhYmxl
TmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxFICIsIHRhYmxlTmFt
ZSwgIiAob2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIGtl
eSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIHZhbHVlIE5P
VCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHYy
UmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3Jk
cyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNj
aGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3JkcyJfcykpOwogICAgIHJldHVy
biB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYg
djJSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVjb3Jkc1RhYmxlU2No
ZW1hKCJcIlJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2
MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiXCJSZWNvcmRz
XCIiX3MpKTsKICAgICByZXR1cm4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKQEAg
LTE0NywzNyArMTQ3LDM3IEBAIHN0YXRpYyBBU0NJSUxpdGVyYWwgdjNSZWNvcmRzVGFibGVTY2hl
bWFUZW1wKCkKICAgICByZXR1cm4gVEFCTEVfU0NIRU1BX1BSRUZJWCAiX1RlbXBfUmVjb3JkcyIg
VjNfUkVDT1JEU19UQUJMRV9TQ0hFTUFfU1VGRklYOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5n
IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpCitzdGF0
aWMgY29uc3QgU3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlMaXRlcmFsIHRh
YmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxFICIsIHRhYmxl
TmFtZSwgIiAoaW5kZXhJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIG9iamVj
dFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBrZXkgVEVYVCBDT0xM
QVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCB2YWx1ZSBOT1QgTlVMTCBPTiBD
T05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MUluZGV4UmVjb3Jk
c1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MUlu
ZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoIklu
ZGV4UmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MUluZGV4
UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoIkluZGV4
UmVjb3JkcyJfcykpOwogICAgIHJldHVybiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5n
OwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hQWx0
ZXJuYXRlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MUluZGV4UmVj
b3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoIlwiSW5kZXhS
ZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjFJbmRleFJl
Y29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJcIkluZGV4
UmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJp
bmc7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYShj
b25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjJJbmRleFJlY29y
ZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtl
U3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChpbmRleElEIElOVEVHRVIgTk9U
IE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgb2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9O
IENPTkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9OIENPTkZM
SUNUIEZBSUwsIHZhbHVlIFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwgT04gQ09ORkxJQ1Qg
RkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJlY29yZHNUYWJsZVNj
aGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJbmRleFJlY29y
ZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJJbmRleFJlY29y
ZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJbmRleFJlY29yZHNU
YWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJJbmRleFJlY29yZHMi
X3MpKTsKICAgICByZXR1cm4gdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAog
c3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJbmRleFJlY29yZHNUYWJs
ZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJcIkluZGV4UmVjb3Jkc1wi
IikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYySW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgiXCJJbmRleFJlY29yZHNc
IiJfcykpOwogICAgIHJldHVybiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwogfQog
CkBAIC05MTQsNyArOTE0LDcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZW5jb2Rl
RGF0YWJhc2VOYW1lKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQogewogICAgIEFTU0VSVCgh
ZGF0YWJhc2VOYW1lLmlzRW1wdHkoKSk7CiAgICAgaWYgKGRhdGFiYXNlTmFtZS5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybiAiJTAwIjsKKyAgICAgICAgcmV0dXJuICIlMDAiX3M7CiAKICAgICBT
dHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFtZShkYXRhYmFzZU5h
bWUpOwogICAgIGZpbGVuYW1lLnJlcGxhY2VXaXRoTGl0ZXJhbCgnLicsICIlMkUiKTsKQEAgLTkz
NSw3ICs5MzUsNyBAQCBTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWNvZGVEYXRhYmFz
ZU5hbWUoY29uc3QgU3RyaW5nJiBlbmNvZGVkTmFtZSkKIAogU3RyaW5nIFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShjb25zdCBTdHJpbmcmIGZ1bGxE
YXRhYmFzZURpcmVjdG9yeSkKIHsKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KGZ1bGxEYXRhYmFzZURpcmVjdG9yeSwgIkluZGV4ZWREQi5zcWxpdGUzIik7
CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChmdWxsRGF0
YWJhc2VEaXJlY3RvcnksICJJbmRleGVkREIuc3FsaXRlMyJfcyk7CiB9CiAKIFN0cmluZyBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGgoKSBjb25zdApAQCAtOTk2LDcgKzk5
Niw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRh
YmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiBpbmZvCiAgICAgbV9zcWxpdGVEQi0+ZGlzYWJsZVRo
cmVhZGluZ0NoZWNrcygpOwogICAgIG1fc3FsaXRlREItPmVuYWJsZUF1dG9tYXRpY1dBTFRydW5j
YXRpb24oKTsKIAotICAgIG1fc3FsaXRlREItPnNldENvbGxhdGlvbkZ1bmN0aW9uKCJJREJLRVki
LCBbXShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgsIGNvbnN0IHZvaWQq
IGIpIHsKKyAgICBtX3NxbGl0ZURCLT5zZXRDb2xsYXRpb25GdW5jdGlvbigiSURCS0VZIl9zLCBb
XShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgsIGNvbnN0IHZvaWQqIGIp
IHsKICAgICAgICAgcmV0dXJuIGlkYktleUNvbGxhdGUoYUxlbmd0aCwgYSwgYkxlbmd0aCwgYik7
CiAgICAgfSk7CiAKQEAgLTE5MDksNyArMTkwOSw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6dXBkYXRlQWxsSW5kZXhlc0ZvckFkZFJlY29yZChjb25zdCBJREJPYmplY3RTdG9y
CiAgICAgICAgIEFTU0VSVChpbmRleEl0ZXJhdG9yICE9IGluZGV4TWFwLmVuZCgpKTsKIAogICAg
ICAgICBpZiAoaW5kZXhJdGVyYXRvciA9PSBpbmRleE1hcC5lbmQoKSkgewotICAgICAgICAgICAg
ZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiTWlzc2luZyBpbmRleCBtZXRh
ZGF0YSIgfTsKKyAgICAgICAgICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIk1pc3NpbmcgaW5kZXggbWV0YWRhdGEiX3MgfTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAKQEAgLTI1NzMsNyArMjU3Myw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6dW5jaGVja2VkR2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBvYmplY3RTdG9yCiAK
ICAgICBpbnQ2NF90IHZhbHVlID0gc3FsLT5jb2x1bW5JbnQ2NCgwKTsKICAgICBpZiAodmFsdWUg
PCAwKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDdXJyZW50
IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlkIiB9OworICAgICAg
ICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDdXJyZW50IGtleSBnZW5lcmF0
b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlkIl9zIH07CiAKICAgICBvdXRWYWx1ZSA9
IHZhbHVlOwogICAgIHJldHVybiBJREJFcnJvciB7IH07CkBAIC0yNTg3LDcgKzI1ODcsNyBAQCBJ
REJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZh
bHVlKGludDY0X3Qgb2JqZWN0U3RvcgogICAgICAgICB8fCBzcWwtPmJpbmRJbnQ2NCgyLCB2YWx1
ZSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNxbC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7
CiAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IHVwZGF0ZSBrZXkgZ2VuZXJhdG9yIHZhbHVl
ICglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJy
b3JNc2coKSk7Ci0gICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkVy
cm9yIHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJhc2UiIH07CisgICAg
ICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkVycm9yIHN0b3JpbmcgbmV3
IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJhc2UiX3MgfTsKICAgICB9CiAKICAgICByZXR1
cm4gSURCRXJyb3IgeyB9OwpAQCAtMjYxNSw3ICsyNjE1LDcgQEAgSURCRXJyb3IgU1FMaXRlSURC
QmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHQKICAgICAgICAgcmV0dXJuIGVycm9yOwogCiAgICAgaWYgKGN1cnJlbnRWYWx1ZSArIDEg
PiBtYXhHZW5lcmF0b3JWYWx1ZSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWlu
dEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFsdWUgb3ZlciAyXjUzIGZvciBvYmpl
Y3Qgc3RvcmUgb3BlcmF0aW9uIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJh
aW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJeNTMgZm9yIG9i
amVjdCBzdG9yZSBvcGVyYXRpb24iX3MgfTsKIAogICAgIGdlbmVyYXRlZEtleSA9IGN1cnJlbnRW
YWx1ZSArIDE7CiAgICAgcmV0dXJuIHVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKG9iamVj
dFN0b3JlSUQsIGdlbmVyYXRlZEtleSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCAy
M2U2ZDNmNWM4YmM2Mzc2YzMwYzY1YzRmNjcyZWU2NGMzZmFmNmYxLi43NGFkZWVlM2UzMWFhYWQy
ZDNkOTVjMjg1NWQ1MDhiOGE1NzZkMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAg
LTU4OSw3ICs1ODksNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9y
ZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgICAgICBhdXRvIHRh
c2tTaXplID0gZGVmYXVsdFdyaXRlT3BlcmF0aW9uQ29zdCArIGVzdGltYXRlU2l6ZShpbmZvKTsK
ICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0
YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2Fj
dGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBpbmZvLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFr
VGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFj
ayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24g
aXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJf
cyB9KTsKICAgICAgICAgICAgIGNyZWF0ZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIGlu
Zm8sIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6
IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwpA
QCAtNjAxLDcgKzYwMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0
b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAg
aWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGhhcyBjbG9zZWQiIH0pOworICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcg
c3RvcmUgaGFzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9y
ZS0+Y3JlYXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgaW5m
byk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAtNjIxLDcgKzYyMSw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVu
dGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
d2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVjdFN0b3JlTmFt
ZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAg
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRh
dGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0
cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGRlbGV0ZU9iamVjdFN0
b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlTmFtZSwgV1RGTW92ZShjYWxsYmFjayks
IGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFp
bCk7CiAgICAgICAgIH0pOwpAQCAtNjM2LDcgKzYzNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5z
YWN0CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNs
b3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9y
ID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5p
ZGVudGlmaWVyKCksIGluZm8tPmlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgp
KQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVj
dFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgICAgIGF1
dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25Db3N0ICsgbmV3TmFtZS5zaXplSW5C
eXRlcygpOwogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3Jp
Z2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vh
a1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgbmV3TmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVk
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlv
bikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJE
YXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIHJl
bmFtZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlSWRlbnRpZmllciwg
bmV3TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQ
YXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNjc2LDcgKzY3
Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tp
bmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9z
ZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPnJlbmFtZU9iamVj
dFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgbmV3TmFtZSk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAtNjk2LDcgKzY5Niw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0
U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9i
amVjdFN0b3JlSWRlbnRpZmllciwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBn
cmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFu
c2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAg
ICAgIGNsZWFyT2JqZWN0U3RvcmUoKndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3Mg
OiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC03MDUsNyArNzA1LDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZShVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0
ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0g
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwog
CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jbGVhck9iamVjdFN0b3JlKHRyYW5z
YWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAg
Y2FsbGJhY2soZXJyb3IpOwpAQCAtNzIzLDcgKzcyMyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmNyZWF0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9u
LCBjCiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25Db3N0ICsg
ZXN0aW1hdGVTaXplKGluZm8pOwogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lk
ZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGluZm8s
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRh
YmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVy
biBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJh
bnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjcmVhdGVJbmRleCgqd2Vh
a1RyYW5zYWN0aW9uLCBpbmZvLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hl
Y2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBA
IC03MzYsNyArNzM2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlSW5kZXgoVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGMKICAgICB9CiAKICAgICBp
ZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0
b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+
Y3JlYXRlSW5kZXgodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgaW5mbyk7CiAgICAg
aWYgKGVycm9yLmlzTnVsbCgpKSB7CkBAIC03NjEsNyArNzYxLDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6ZGVsZXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNh
Y3Rpb24sIHUKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIu
b3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJh
bnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBpbmRleE5hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24p
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0
YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBkZWxl
dGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4TmFt
ZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDog
U3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNzcwLDcgKzc3MCw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJh
bnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9
PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tp
bmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAog
ICAgIGF1dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fZGF0YWJhc2VJbmZvLT5pbmZvRm9yRXhpc3Rp
bmdPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIGlmICghb2JqZWN0U3Rv
cmVJbmZvKSB7CkBAIC04MDQsNyArODA0LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cmVu
YW1lSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIHUKICAg
ICAgICAgYXV0byB0YXNrU2l6ZSA9IGRlZmF1bHRXcml0ZU9wZXJhdGlvbkNvc3QgKyBuZXdOYW1l
LnNpemVJbkJ5dGVzKCk7CiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRp
Zmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUsIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdl
YWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlv
biBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2Vk
Il9zIH0pOwogCiAgICAgICAgICAgICByZW5hbWVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFtZSwgV1RGTW92ZShjYWxs
YmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3Vs
dDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtODE3LDcgKzgxNyw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OnJlbmFtZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uLCB1CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRv
KiBvYmplY3RTdG9yZUluZm8gPSBtX2RhdGFiYXNlSW5mby0+aW5mb0ZvckV4aXN0aW5nT2JqZWN0
U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBpZiAoIW9iamVjdFN0b3JlSW5mbykg
ewpAQCAtODQ2LDcgKzg0Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkKGNv
bnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAgICAgQVNTRVJU
KG1fZGF0YWJhc2VJbmZvKTsKIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9y
ZSBpcyBjbG9zZWQiIH0sIGtleURhdGEpOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIGtl
eURhdGEpOwogCiAgICAgYXV0byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSByZXF1ZXN0RGF0YS5v
YmplY3RTdG9yZUlkZW50aWZpZXIoKTsKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2Jh
Y2tpbmdTdG9yZS0+aW5mb0Zvck9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRlbnRpZmllcik7CkBA
IC05MDEsNyArOTAxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGQoY29uc3Qg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKICAgICBMT0coSW5kZXhl
ZERCLCAiVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkIHF1b3RhIGNoZWNrIHdpdGggdGFzayBz
aXplOiAlIiBQUkl1NjQgIiBrZXkgc2l6ZTogJSIgUFJJdTY0ICIgdmFsdWUgc2l6ZTogJSIgUFJJ
dTY0ICIgaW5kZXggc2l6ZTogJSIgUFJJdTY0LCB0YXNrU2l6ZSwga2V5U2l6ZSwgdmFsdWVTaXpl
LCBpbmRleFNpemUpOwogICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5v
cmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBy
ZXF1ZXN0RGF0YSwgdXNlZEtleSwgdmFsdWUsIG92ZXJ3cml0ZU1vZGUsIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayksIHVzZWRLZXlJc0dlbmVyYXRlZCwgaW5kZXhLZXlzLCBvYmplY3RTdG9y
ZUluZm8gPSAqb2JqZWN0U3RvcmVJbmZvXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAg
ICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIHVzZWRLZXkpOworICAg
ICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJE
YXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgdXNlZEtleSk7CiAKICAgICAgICAgcHV0T3JBZGRBZnRl
clNwYWNlQ2hlY2socmVxdWVzdERhdGEsIHVzZWRLZXksIHZhbHVlLCBvdmVyd3JpdGVNb2RlLCBX
VEZNb3ZlKGNhbGxiYWNrKSwgdXNlZEtleUlzR2VuZXJhdGVkLCBpbmRleEtleXMsIG9iamVjdFN0
b3JlSW5mbywgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVz
dWx0OjpGYWlsKTsKICAgICB9KTsKQEAgLTkxMyw3ICs5MTMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjpwdXRPckFkZEFmdGVyU3BhY2VDaGVjayhjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVx
dWVzdERhdAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAKICAgICBpZiAoIW1fYmFja2lu
Z1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBrZXlEYXRhKTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGlzIGNsb3NlZCJfcyB9LCBrZXlEYXRhKTsKIAogICAgIHVpbnQ2NF90IGtleU51bWJlciA9IGlz
S2V5R2VuZXJhdGVkID8ga2V5RGF0YS5udW1iZXIoKSA6IDA7CiAgICAgYXV0byBvYmplY3RTdG9y
ZUlkZW50aWZpZXIgPSBvYmplY3RTdG9yZUluZm8uaWRlbnRpZmllcigpOwpAQCAtOTUzLDcgKzk1
Myw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0
RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkdlCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1
ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGdldFJlY29yZERhdGEsIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAog
ICAgICAgICAgICAgZ2V0UmVjb3JkKHJlcXVlc3REYXRhLCBnZXRSZWNvcmREYXRhLCBXVEZNb3Zl
KGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNr
UmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC05NjIsNyArOTYyLDcgQEAgdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0
YSwgY29uc3QgSURCR2UKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hl
Y2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVy
biBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBp
cyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9z
IH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0UmVzdWx0IHJlc3VsdDsKICAgICBJ
REJFcnJvciBlcnJvcjsKQEAgLTk4Niw3ICs5ODYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3Qg
SQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4o
KSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBn
ZXRBbGxSZWNvcmRzRGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFu
dGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFz
ZSBpcyBjbG9zZWQiIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOworICAgICAgICAgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMg
Y2xvc2VkIl9zIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOwogCiAgICAgICAgICAgICBnZXRBbGxS
ZWNvcmRzKHJlcXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgV1RGTW92ZShjYWxsYmFjayks
IGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFp
bCk7CiAgICAgICAgIH0pOwpAQCAtOTk1LDcgKzk5NSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmdldEFsbFJlY29yZHMoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25z
dCBJCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQ
YXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9
LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJH
ZXRBbGxSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldEFsbFJlc3VsdCByZXN1bHQ7CiAgICAgYXV0
byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRBbGxSZWNvcmRzKHJlcXVlc3REYXRhLnRyYW5z
YWN0aW9uSWRlbnRpZmllcigpLCBnZXRBbGxSZWNvcmRzRGF0YSwgcmVzdWx0KTsKQEAgLTEwMTQs
NyArMTAxNCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50KGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAKICAgICAgICAgbV9tYW5hZ2Vy
LT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIHJhbmdlLCBjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3
ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSwgMCk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFz
ZSBpcyBjbG9zZWQiX3MgfSwgMCk7CiAKICAgICAgICAgICAgIGdldENvdW50KHJlcXVlc3REYXRh
LCByYW5nZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQ
YXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTAyMyw3ICsx
MDIzLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVz
dERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKIAogICAgIEFTU0VSVChzcGFjZUNoZWNr
UmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3Rv
cmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIDApOworICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2Vk
Il9zIH0sIDApOwogCiAgICAgdWludDY0X3QgY291bnQgPSAwOwogICAgIGF1dG8gZXJyb3IgPSBt
X2JhY2tpbmdTdG9yZS0+Z2V0Q291bnQocmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVy
KCksIHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCByZXF1ZXN0RGF0YS5pbmRl
eElkZW50aWZpZXIoKSwgcmFuZ2UsIGNvdW50KTsKQEAgLTEwNDIsNyArMTA0Miw3IEBAIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVx
dWVzdERhdGEsIGNvbnN0IElECiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9p
ZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fSwgcmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9z
IH0pOwogCiAgICAgICAgICAgICBkZWxldGVSZWNvcmQocmVxdWVzdERhdGEsIGtleVJhbmdlRGF0
YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDog
U3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTA1MSw3ICsxMDUxLDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3RE
YXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSUQKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0
ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0g
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwog
CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVSYW5nZShyZXF1ZXN0RGF0
YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEub2JqZWN0U3RvcmVJZGVudGlm
aWVyKCksIGtleVJhbmdlRGF0YSk7CiAKQEAgLTEwNjksNyArMTA2OSw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRh
LCBjb25zdCBJREJDCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlm
aWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVx
dWVzdERhdGEsIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRl
ZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ug
b3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRh
dGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsK
IAogICAgICAgICAgICAgb3BlbkN1cnNvcihyZXF1ZXN0RGF0YSwgaW5mbywgV1RGTW92ZShjYWxs
YmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3Vs
dDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAgdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6b3BlbkN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEs
IGNvbnN0IElEQkMKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tS
ZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBj
YWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBj
bG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0s
IElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0UmVzdWx0IHJlc3VsdDsKICAgICBhdXRv
IGVycm9yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5DdXJzb3IocmVxdWVzdERhdGEudHJhbnNhY3Rp
b25JZGVudGlmaWVyKCksIGluZm8sIHJlc3VsdCk7CkBAIC0xMDk3LDcgKzEwOTcsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiBy
ZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1f
aWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH0sIHJlcXVlc3REYXRhLCBkYXRhLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29s
IGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAg
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRh
dGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsgfSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0
IHsgfSk7CiAKICAgICAgICAgICAgIGl0ZXJhdGVDdXJzb3IocmVxdWVzdERhdGEsIGRhdGEsIFdU
Rk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNl
Q2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTExMDYsNyArMTEwNiw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBT
cGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcg
c3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNs
b3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJlc3VsdCByZXN1bHQ7
CiAgICAgYXV0byB0cmFuc2FjdGlvbklkZW50aWZpZXIgPSByZXF1ZXN0RGF0YS50cmFuc2FjdGlv
bklkZW50aWZpZXIoKTsKQEAgLTExMjcsNyArMTEyNyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmNvbW1pdFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5z
YWN0CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdp
bigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0
aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8
ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9z
ZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwog
CiAgICAgICAgICAgICBjb21taXRUcmFuc2FjdGlvbigqd2Vha1RyYW5zYWN0aW9uLCBXVEZNb3Zl
KGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNr
UmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMTM4LDcgKzExMzgsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdAogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5kYXRhYmFzZUNvbm5lY3Rp
b24oKS5kYXRhYmFzZSgpID09IHRoaXMpOwogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAK
ICAgICBhdXRvIHRha2VuVHJhbnNhY3Rpb24gPSBtX2luUHJvZ3Jlc3NUcmFuc2FjdGlvbnMudGFr
ZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKTsKICAgICBpZiAoIXRha2VuVHJhbnNh
Y3Rpb24pIHsKQEAgLTExNjYsNyArMTE2Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmFi
b3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAK
ICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAw
LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0g
V2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJv
b2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFr
VHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0p
OworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAg
ICAgICAgICBhYm9ydFRyYW5zYWN0aW9uKCp3ZWFrVHJhbnNhY3Rpb24sIFdURk1vdmUoY2FsbGJh
Y2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6
OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTEyMDIsNyArMTIwMiw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYg
dHJhbnNhY3RpCiAKICAgICBJREJFcnJvciBlcnJvcjsKICAgICBpZiAoIW1fYmFja2luZ1N0b3Jl
KQotICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCIgfTsKKyAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfTsKICAgICBlbHNlCiAgICAg
ICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25J
ZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAppbmRleCBlNzFkMmViZjIxYzRhZGZlZjI4YTJi
ZGFmYTFmZjg0YjNmN2YwMzk4Li43YWJhODMxZDcwMGVhOThmZWIyY2M5YWE0NGM5NjJjNGI1OTQ0
N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCSW5kZXhJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCSW5kZXhJbmZvLmNwcApAQCAtNjEsNyArNjEsNyBAQCBTdHJpbmcgSURCSW5kZXhJ
bmZvOjpsb2dnaW5nU3RyaW5nKGludCBpbmRlbnQpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGluZGVu
dFN0cmluZzsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVudDsgKytpKQotICAgICAgICBp
bmRlbnRTdHJpbmcuYXBwZW5kKCIgIik7CisgICAgICAgIGluZGVudFN0cmluZy5hcHBlbmQoJyAn
KTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhpbmRlbnRTdHJpbmcsICJJbmRleDogIiwgbV9uYW1l
LCAiICgiLCBtX2lkZW50aWZpZXIsICIpIGtleVBhdGg6ICIsIFdlYkNvcmU6OmxvZ2dpbmdTdHJp
bmcobV9rZXlQYXRoKSwgJ1xuJyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCmluZGV4IGI4MjVl
YzgwMDUxNDgwMjhlMmIwN2IxOWRjNzgzOTJhNDNhOGNiYTUuLjMzMmY0NjI2YmQzMmU4MzFhZDkw
OGE0NmFjNGRjMTQ2ZTZlY2NhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApAQCAtMTE4LDE0ICsx
MTgsMTQgQEAgTWVkaWFDb250cm9sc0hvc3Q6On5NZWRpYUNvbnRyb2xzSG9zdCgpCiBTdHJpbmcg
TWVkaWFDb250cm9sc0hvc3Q6OmxheW91dFRyYWl0c0NsYXNzTmFtZSgpIGNvbnN0CiB7CiAjaWYg
ZGVmaW5lZChNRURJQV9DT05UUk9MU19IT1NUX0xBWU9VVF9UUkFJVFNfQ0xBU1NfTkFNRV9PVkVS
UklERSkKLSAgICByZXR1cm4gTUVESUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRfVFJBSVRTX0NMQVNT
X05BTUVfT1ZFUlJJREU7CisgICAgcmV0dXJuIE1FRElBX0NPTlRST0xTX0hPU1RfTEFZT1VUX1RS
QUlUU19DTEFTU19OQU1FX09WRVJSSURFIiJfczsKICNlbHNlCiAjaWYgUExBVEZPUk0oTUFDKSB8
fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICByZXR1cm4gIk1hY09TTGF5b3V0VHJhaXRzIjsK
KyAgICByZXR1cm4gIk1hY09TTGF5b3V0VHJhaXRzIl9zOwogI2VsaWYgUExBVEZPUk0oSU9TKQot
ICAgIHJldHVybiAiSU9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIklPU0xheW91dFRyYWl0
cyJfczsKICNlbGlmIFBMQVRGT1JNKFdBVENIT1MpCi0gICAgcmV0dXJuICJXYXRjaE9TTGF5b3V0
VHJhaXRzIjsKKyAgICByZXR1cm4gIldhdGNoT1NMYXlvdXRUcmFpdHMiX3M7CiAjZWxzZQogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxsU3RyaW5nKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHAKaW5kZXggYTkxZTY2OTAwMDQ4MzE2YTlhOTEzY2EwZDUxMjhlYWExNTFkOWNjZS4uZmY5NDk5
OWMyMDJhMzIwNTRjNjE2YmYzNjZjNjczYWViNDI3ZjY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcApAQCAtNjYs
NyArNjYsNyBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVjb3JkZXI6
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZQogICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAogICAgIGlmICghaXNUeXBlU3VwcG9ydGVkKGRv
Y3VtZW50LCBvcHRpb25zLm1pbWVUeXBlKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yLCAibWltZVR5cGUgaXMgbm90IHN1cHBvcnRlZCIgfTsKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWltZVR5cGUgaXMgbm90IHN1
cHBvcnRlZCJfcyB9OwogCiAgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFS
ZWNvcmRlcihkb2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKG9wdGlvbnMpKSk7CiAg
ICAgcmVjb3JkZXItPnN1c3BlbmRJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCBhNTkwMzdhNDA1ODYzMThm
MjE2YTZlYTAxOWRiMjRhOWIwMzk3MjQ4Li44Y2I2ZDVjZmMzOGQ2ZWY4MGY3ZTM5NDFmYjk1OGEz
NGQ1MzVmY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNl
L01lZGlhU291cmNlLmNwcApAQCAtNjUwLDcgKzY1MCw3IEBAIHN0YXRpYyBDb250ZW50VHlwZSBh
ZGRWUDlGdWxsUmFuZ2VWaWRlb0ZsYWdUb0NvbnRlbnRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0
eXBlCiAgICAgICAgIGlmIChwb3NpdGlvbiA9PSBub3RGb3VuZCkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIHJhd1R5cGUuaW5zZXJ0KCIuMDAiLCBwb3NpdGlvbiArIGNvZGVjLmxl
bmd0aCgpKTsKKyAgICAgICAgcmF3VHlwZS5pbnNlcnQoIi4wMCJfcywgcG9zaXRpb24gKyBjb2Rl
Yy5sZW5ndGgoKSk7CiAgICAgICAgIHJldHVybiBDb250ZW50VHlwZShyYXdUeXBlKTsKICAgICB9
CiAgICAgcmV0dXJuIHR5cGU7CkBAIC04OTUsNyArODk1LDcgQEAgYm9vbCBNZWRpYVNvdXJjZTo6
aXNUeXBlU3VwcG9ydGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0
cmluZyYKICAgICBpZiAoY29udGV4dC5pc0RvY3VtZW50KCkgJiYgZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQpLnF1aXJrcygpLm5lZWRzVlA5RnVsbFJhbmdlRmxhZ1F1aXJrKCkpCiAgICAgICAg
IGNvbnRlbnRUeXBlID0gYWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlwZShjb250
ZW50VHlwZSk7CiAKLSAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUucGFyYW1ldGVyKCJj
b2RlY3MiKTsKKyAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUucGFyYW1ldGVyKCJjb2Rl
Y3MiX3MpOwogCiAgICAgLy8gMi4gSWYgdHlwZSBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgTUlN
RSB0eXBlIHN0cmluZywgdGhlbiByZXR1cm4gZmFsc2UuCiAgICAgaWYgKGNvbnRlbnRUeXBlLmNv
bnRhaW5lclR5cGUoKS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAKaW5kZXggMzEx
Mzg0N2RiNzU0ODQ3ZDYxNjJmYTJkNjFlNjczNGE2YTg4ODViMy4uMmY4ZDhiZDI3ZDczNTU0NmJh
ODRiNjE4MDhhNmNkYWIzZjMyOGUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcApAQCAtMzMs
NyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgQ29uc3RyYWludFNl
dFR5cGUgeyBNYW5kYXRvcnksIEFkdmFuY2VkIH07CiAKLXN0YXRpYyB2b2lkIHNldChNZWRpYVRy
YWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25z
dCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29u
c3RyYWluTG9uZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRT
ZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVB
c1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Mb25nJiB2
YWx1ZSkKIHsKICAgICBJbnRDb25zdHJhaW50IGNvbnN0cmFpbnQodHlwZUFzU3RyaW5nLCB0eXBl
KTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgdm9p
ZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUg
c2V0VHlwZSwgY29ucwogICAgIG1hcC5zZXQodHlwZSwgV1RGTW92ZShjb25zdHJhaW50KSk7CiB9
CiAKLXN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25z
dHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29u
c3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluRG91YmxlJiB2YWx1ZSkKK3N0YXRpYyB2
b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlw
ZSBzZXRUeXBlLCBBU0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBl
IHR5cGUsIGNvbnN0IENvbnN0cmFpbkRvdWJsZSYgdmFsdWUpCiB7CiAgICAgRG91YmxlQ29uc3Ry
YWludCBjb25zdHJhaW50KHR5cGVBc1N0cmluZywgdHlwZSk7CiAgICAgV1RGOjpzd2l0Y2hPbih2
YWx1ZSwKQEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAu
c2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVk
aWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwg
Y29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0
IENvbnN0cmFpbkJvb2xlYW4mIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0ZXJh
bCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWlu
Qm9vbGVhbiYgdmFsdWUpCiB7CiAgICAgQm9vbGVhbkNvbnN0cmFpbnQgY29uc3RyYWludCh0eXBl
QXNTdHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBAIC0xMDEsNyArMTAx
LDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENv
bnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUo
Y29uc3RyYWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRT
ZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFz
U3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRPTVN0cmlu
ZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1h
cCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywg
TWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5ET01TdHJpbmcmIHZhbHVl
KQogewogICAgIFN0cmluZ0NvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUp
OwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIHZv
aWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBl
IHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwog
fQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0
IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBzdGQ6
Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUg
dm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5
cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlw
ZSB0eXBlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKIHsKICAgICBpZiAoIXZhbHVl
KQogICAgICAgICByZXR1cm47CkBAIC0xNTgsMjEgKzE1OCwyMSBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBt
YXAsIENvbgogc3RhdGljIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIGNvbnZlcnRUb0ludGVy
bmFsRm9ybShDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBNZWRpYVRyYWNrQ29uc3Ry
YWludFNldCYgY29uc3RyYWludFNldCkKIHsKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1h
cCByZXN1bHQ7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgIndpZHRoIiwgTWVkaWFDb25zdHJh
aW50VHlwZTo6V2lkdGgsIGNvbnN0cmFpbnRTZXQud2lkdGgpOwotICAgIHNldChyZXN1bHQsIHNl
dFR5cGUsICJoZWlnaHQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQsIGNvbnN0cmFpbnRT
ZXQuaGVpZ2h0KTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiYXNwZWN0UmF0aW8iLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5hc3BlY3RSYXRpbyk7
Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZyYW1lUmF0ZSIsIE1lZGlhQ29uc3RyYWludFR5
cGU6OkZyYW1lUmF0ZSwgY29uc3RyYWludFNldC5mcmFtZVJhdGUpOwotICAgIHNldChyZXN1bHQs
IHNldFR5cGUsICJmYWNpbmdNb2RlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZSwg
Y29uc3RyYWludFNldC5mYWNpbmdNb2RlKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAidm9s
dW1lIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50U2V0LnZvbHVtZSk7
Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiLCBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpTYW1wbGVSYXRlLCBjb25zdHJhaW50U2V0LnNhbXBsZVJhdGUpOwotICAgIHNldChyZXN1
bHQsIHNldFR5cGUsICJzYW1wbGVTaXplIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlU2l6
ZSwgY29uc3RyYWludFNldC5zYW1wbGVTaXplKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAi
ZWNob0NhbmNlbGxhdGlvbiIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb24s
IGNvbnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlw
ZSwgIndpZHRoIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aCwgY29uc3RyYWludFNldC53
aWR0aCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImhlaWdodCJfcywgTWVkaWFDb25zdHJh
aW50VHlwZTo6SGVpZ2h0LCBjb25zdHJhaW50U2V0LmhlaWdodCk7CisgICAgc2V0KHJlc3VsdCwg
c2V0VHlwZSwgImFzcGVjdFJhdGlvIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRp
bywgY29uc3RyYWludFNldC5hc3BlY3RSYXRpbyk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwg
ImZyYW1lUmF0ZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlLCBjb25zdHJhaW50
U2V0LmZyYW1lUmF0ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZhY2luZ01vZGUiX3Ms
IE1lZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGUsIGNvbnN0cmFpbnRTZXQuZmFjaW5nTW9k
ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInZvbHVtZSJfcywgTWVkaWFDb25zdHJhaW50
VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50U2V0LnZvbHVtZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0
VHlwZSwgInNhbXBsZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVJhdGUsIGNv
bnN0cmFpbnRTZXQuc2FtcGxlUmF0ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBs
ZVNpemUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVNpemUsIGNvbnN0cmFpbnRTZXQu
c2FtcGxlU2l6ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImVjaG9DYW5jZWxsYXRpb24i
X3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb24sIGNvbnN0cmFpbnRTZXQu
ZWNob0NhbmNlbGxhdGlvbik7CiAgICAgLy8gRklYTUU6IGFkZCBsYXRlbmN5CiAgICAgLy8gRklY
TUU6IGFkZCBjaGFubmVsQ291bnQKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZGV2aWNlSWQi
LCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwgY29uc3RyYWludFNldC5kZXZpY2VJZCk7
Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3VwSWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpHcm91cElkLCBjb25zdHJhaW50U2V0Lmdyb3VwSWQpOwotICAgIHNldChyZXN1bHQsIHNldFR5
cGUsICJkaXNwbGF5U3VyZmFjZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJmYWNl
LCBjb25zdHJhaW50U2V0LmRpc3BsYXlTdXJmYWNlKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBl
LCAibG9naWNhbFN1cmZhY2UiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZSwg
Y29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFjZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwg
ImRldmljZUlkIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwgY29uc3RyYWludFNl
dC5kZXZpY2VJZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3VwSWQiX3MsIE1lZGlh
Q29uc3RyYWludFR5cGU6Okdyb3VwSWQsIGNvbnN0cmFpbnRTZXQuZ3JvdXBJZCk7CisgICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgImRpc3BsYXlTdXJmYWNlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpEaXNwbGF5U3VyZmFjZSwgY29uc3RyYWludFNldC5kaXNwbGF5U3VyZmFjZSk7CisgICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgImxvZ2ljYWxTdXJmYWNlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpMb2dpY2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFjZSk7CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCmluZGV4IDlmNzA2ZGY2ZGY2NWU3Zjk1ODE1NzUx
NDAyMjQ4ZTA4YzdhMjNmYTAuLmJiN2VmNzQxMjYxOWMwNTlkY2VjNzRkNjhlZTJkYmUwYzkzYWJj
MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNl
Q2FuZGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q0ljZUNhbmRpZGF0ZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUlRDSWNlQ2FuZGlkYXRlOjpSVENJ
Y2VDYW5kaWRhdGUoY29uc3QgU3RyaW5nJiBjYW5kaWRhdGUsIGNvbnN0IFN0cmluZyYgc2RwTWlk
LAogRXhjZXB0aW9uT3I8UmVmPFJUQ0ljZUNhbmRpZGF0ZT4+IFJUQ0ljZUNhbmRpZGF0ZTo6Y3Jl
YXRlKGNvbnN0IFJUQ0ljZUNhbmRpZGF0ZUluaXQmIGRpY3Rpb25hcnkpCiB7CiAgICAgaWYgKGRp
Y3Rpb25hcnkuc2RwTWlkLmlzTnVsbCgpICYmICFkaWN0aW9uYXJ5LnNkcE1MaW5lSW5kZXgpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJDYW5kaWRhdGUgbXVzdCBub3Qg
aGF2ZSBib3RoIG51bGwgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQ2FuZGlkYXRlIG11c3Qgbm90IGhhdmUgYm90aCBu
dWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCJfcyB9OwogCiAgICAgYXV0byBmaWVsZHMgPSB2
YWx1ZU9yRGVmYXVsdChwYXJzZUljZUNhbmRpZGF0ZVNEUChkaWN0aW9uYXJ5LmNhbmRpZGF0ZSkp
OwogICAgIGZpZWxkcy51c2VybmFtZUZyYWdtZW50ID0gZGljdGlvbmFyeS51c2VybmFtZUZyYWdt
ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA5MGRlNjM5OTM0ZWQ2MWM1YzBiMTAxMmMwYWE1Mzk3
ZGQwZDhiMzJhLi40MTU2NmE1NTVmNjJlZTUwOGUwZGQxYTFkZDcwODg0ZWY3NTBmNWFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJD
b25uZWN0aW9uLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246
OnNldExvY2FsRGVzY3JpcHRpb24oc3RkOjpvcHRpb25hbDxSVENMb2NhbFNlc3Npb25EZXNjcmlw
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIs
ICJTZXR0aW5nIGxvY2FsIGRlc2NyaXB0aW9uIHRvOlxuIiwgbG9jYWxEZXNjcmlwdGlvbiA/IGxv
Y2FsRGVzY3JpcHRpb24tPnNkcCA6ICInJyIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgIlNldHRpbmcgbG9jYWwgZGVzY3JpcHRpb24gdG86XG4iLCBsb2NhbERlc2NyaXB0aW9uID8g
bG9jYWxEZXNjcmlwdGlvbi0+c2RwIDogIicnIl9zKTsKICAgICBjaGFpbk9wZXJhdGlvbihXVEZN
b3ZlKHByb21pc2UpLCBbdGhpcywgbG9jYWxEZXNjcmlwdGlvbiA9IFdURk1vdmUobG9jYWxEZXNj
cmlwdGlvbildKGF1dG8mJiBwcm9taXNlKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byB0eXBlID0g
dHlwZUZvclNldExvY2FsRGVzY3JpcHRpb24obG9jYWxEZXNjcmlwdGlvbiwgbV9zaWduYWxpbmdT
dGF0ZSk7CiAgICAgICAgIFN0cmluZyBzZHA7CkBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBSVENQ
ZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKENhbmRpZGF0ZSYmIHJ0Y0NhbmRpZGF0ZSwg
UmVmPERlZmVycmVkUHIKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSLCAiUmVjZWl2ZWQgaWNlIGNhbmRpZGF0ZTpcbiIsIGNhbmRpZGF0ZSA/IGNhbmRp
ZGF0ZS0+Y2FuZGlkYXRlKCkgOiAibnVsbCIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgIlJlY2VpdmVkIGljZSBjYW5kaWRhdGU6XG4iLCBjYW5kaWRhdGUgPyBjYW5kaWRhdGUtPmNh
bmRpZGF0ZSgpIDogIm51bGwiX3MpOwogCiAgICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICBw
cm9taXNlLT5yZWplY3QoKmV4Y2VwdGlvbik7CkBAIC0zNzksMTMgKzM3OSwxMyBAQCBzdGQ6Om9w
dGlvbmFsPGJvb2w+IFJUQ1BlZXJDb25uZWN0aW9uOjpjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcygp
IGNvbnN0CiBFeGNlcHRpb25PcjxWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246Oklj
ZVNlcnZlckluZm8+PiBSVENQZWVyQ29ubmVjdGlvbjo6aWNlU2VydmVyc0Zyb21Db25maWd1cmF0
aW9uKFJUQ0NvbmZpZ3VyYXRpb24mIG5ld0NvbmZpZ3VyYXRpb24sIGNvbnN0IFJUQ0NvbmZpZ3Vy
YXRpb24qIGV4aXN0aW5nQ29uZmlndXJhdGlvbiwgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25TZXQp
CiB7CiAgICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLmJ1
bmRsZVBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmJ1bmRsZVBvbGljeSkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkJ1bmRsZVBv
bGljeSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiIH07CisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJCdW5kbGVQb2xpY3kgZG9lcyBu
b3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhpc3RpbmdDb25maWd1
cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24ucnRjcE11eFBvbGljeSAhPSBleGlzdGluZ0NvbmZp
Z3VyYXRpb24tPnJ0Y3BNdXhQb2xpY3kpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENQTXV4UG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0
aW5nIHBvbGljeSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmlj
YXRpb25FcnJvciwgIlJUQ1BNdXhQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5
Il9zIH07CiAKICAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRp
b24uaWNlQ2FuZGlkYXRlUG9vbFNpemUgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5pY2VDYW5k
aWRhdGVQb29sU2l6ZSAmJiBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCi0gICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJJY2VUcmFuc3BvcnRQb2xpY3kg
cG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvb2wgc2l6ZSIgfTsKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkljZVRyYW5zcG9y
dFBvbGljeSBwb29sIHNpemUgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9vbCBzaXplIl9zIH07
CiAKICAgICBWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+
IHNlcnZlcnM7CiAgICAgaWYgKG5ld0NvbmZpZ3VyYXRpb24uaWNlU2VydmVycykgewpAQCAtNDE0
LDE4ICs0MTQsMTggQEAgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0
aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gUlRDUGVlckNvbm5lY3Rpb24KIAogICAgICAgICAgICAgZm9y
IChhdXRvJiBzZXJ2ZXJVUkwgOiBzZXJ2ZXJVUkxzKSB7CiAgICAgICAgICAgICAgICAgaWYgKHNl
cnZlclVSTC5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVyIFVSTCIgfTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVyIFVSTCJfcyB9Owog
ICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkwucHJvdG9jb2xJcygidHVybiIpIHx8IHNlcnZl
clVSTC5wcm90b2NvbElzKCJ0dXJucyIpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2
ZXIuY3JlZGVudGlhbC5pc051bGwoKSB8fCBzZXJ2ZXIudXNlcm5hbWUuaXNOdWxsKCkpCi0gICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiVFVSTi9UVVJOUyBzZXJ2ZXIgcmVxdWlyZXMgYm90aCB1c2VybmFtZSBhbmQgY3JlZGVudGlh
bCIgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJUVVJOL1RVUk5TIHNlcnZlciByZXF1aXJlcyBib3RoIHVzZXJuYW1lIGFu
ZCBjcmVkZW50aWFsIl9zIH07CiAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vdG9vbHMu
aWV0Zi5vcmcvaHRtbC9yZmM4NDg5I3NlY3Rpb24tMTQuMwogICAgICAgICAgICAgICAgICAgICBp
ZiAoc2VydmVyLmNyZWRlbnRpYWwubGVuZ3RoKCkgPiA2NCB8fCBzZXJ2ZXIudXNlcm5hbWUubGVu
Z3RoKCkgPiA2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RleHByIHNpemVfdCBN
YXhUdXJuVXNlcm5hbWVMZW5ndGggPSA1MDk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
c2VydmVyLmNyZWRlbnRpYWwudXRmOCgpLmxlbmd0aCgpID4gTWF4VHVyblVzZXJuYW1lTGVuZ3Ro
IHx8IHNlcnZlci51c2VybmFtZS51dGY4KCkubGVuZ3RoKCkgPiBNYXhUdXJuVXNlcm5hbWVMZW5n
dGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgIlRVUk4vVFVSTlMgdXNlcm5hbWUgYW5kL29yIGNyZWRlbnRpYWwgYXJlIHRvbyBsb25n
IiB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJUVVJOL1RVUk5TIHVzZXJuYW1lIGFuZC9vciBjcmVkZW50aWFsIGFyZSB0b28gbG9u
ZyJfcyB9OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlm
ICghc2VydmVyVVJMLnByb3RvY29sSXMoInN0dW4iKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiSUNFIHNlcnZlciBwcm90b2NvbCBu
b3Qgc3VwcG9ydGVkIiB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm90U3VwcG9ydGVkRXJyb3IsICJJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQiX3Mg
fTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkxzLnNpemUoKSkKICAg
ICAgICAgICAgICAgICBzZXJ2ZXJzLnVuY2hlY2tlZEFwcGVuZCh7IFdURk1vdmUoc2VydmVyVVJM
cyksIHNlcnZlci5jcmVkZW50aWFsLCBzZXJ2ZXIudXNlcm5hbWUgfSk7CkBAIC00NDMsNyArNDQz
LDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpDZXJ0
aWZpY2F0ZVBFTT4+IFJUQ1BlZXJDb25uZWN0aW8KICAgICBjZXJ0aWZpY2F0ZXMucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXplKCkpOwogICAgIGZv
ciAoYXV0byYgY2VydGlmaWNhdGUgOiBjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcykgewogICAg
ICAgICBpZiAoIW9yaWdpbi5pc1NhbWVPcmlnaW5BcyhjZXJ0aWZpY2F0ZS0+b3JpZ2luKCkpKQot
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkNlcnRp
ZmljYXRlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBvcmlnaW4iIH07CisgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNhdGUgZG9lcyBub3Qg
aGF2ZSBhIHZhbGlkIG9yaWdpbiJfcyB9OwogCiAgICAgICAgIGlmIChjdXJyZW50TWlsbGlTZWNv
bmRzID4gY2VydGlmaWNhdGUtPmV4cGlyZXMoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJDZXJ0aWZpY2F0ZSBoYXMgZXhwaXJlZCJfcyB9OwpA
QCAtNDY2LDcgKzQ2Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJDb25uZWN0aW9uOjpp
bml0aWFsaXplQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYKICAgICAgICAgcmV0dXJu
IGNlcnRpZmljYXRlcy5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIW1fYmFja2VuZC0+
c2V0Q29uZmlndXJhdGlvbih7IHNlcnZlcnMucmVsZWFzZVJldHVyblZhbHVlKCksIGNvbmZpZ3Vy
YXRpb24uaWNlVHJhbnNwb3J0UG9saWN5LCBjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSwgY29u
ZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5LCBjb25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xT
aXplLCBjZXJ0aWZpY2F0ZXMucmVsZWFzZVJldHVyblZhbHVlKCkgfSkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJh
bWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJfcyB9OwogCiAgICAgbV9jb25maWd1cmF0
aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAgICByZXR1cm4geyB9OwpAQCAtNDg1LDE5
ICs0ODUsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OnNldENvbmZp
Z3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3UKIAogICAgIGlmIChjb25maWd1cmF0
aW9uLmNlcnRpZmljYXRlcy5zaXplKCkpIHsKICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24uY2Vy
dGlmaWNhdGVzLnNpemUoKSAhPSBtX2NvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSkK
LSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Is
ICJDZXJ0aWZpY2F0ZXMgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50IiB9OworICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkNlcnRpZmljYXRl
cyBwYXJhbWV0ZXJzIGFyZSBkaWZmZXJlbnQiX3MgfTsKIAogICAgICAgICBmb3IgKGF1dG8mIGNl
cnRpZmljYXRlIDogY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMpIHsKICAgICAgICAgICAgIGJv
b2wgaXNUaGVyZSA9IG1fY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuZmluZElmKFsmY2VydGlm
aWNhdGVdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5n
ZXQoKSA9PSBjZXJ0aWZpY2F0ZS5nZXQoKTsKICAgICAgICAgICAgIH0pICE9IG5vdEZvdW5kOwog
ICAgICAgICAgICAgaWYgKCFpc1RoZXJlKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJBIGNlcnRpZmljYXRlIGdpdmVuIGluIGNv
bnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50IiB9OworICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJBIGNlcnRpZmljYXRlIGdpdmVuIGlu
IGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50Il9zIH07CiAgICAgICAgIH0KICAgICB9CiAKICAg
ICBpZiAoIW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNlcnZlcnMucmVsZWFzZVJldHVy
blZhbHVlKCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5LCBjb25maWd1cmF0aW9u
LmJ1bmRsZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5LCBjb25maWd1cmF0aW9u
LmljZUNhbmRpZGF0ZVBvb2xTaXplLCB7IH0gfSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzIiB9Owor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZp
Z3VyYXRpb24gUGFyYW1ldGVycyJfcyB9OwogCiAgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92
ZShjb25maWd1cmF0aW9uKTsKICAgICByZXR1cm4geyB9OwpAQCAtOTE5LDcgKzkxOSw3IEBAIGNv
bnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwVHJhbnNjZWl2ZXI+PiYgUlRDUGVlckNvbm5lY3Rpb246
OmdldFRyYW5zY2VpdmVycygpIGNvCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjaGFpbk9wZXJh
dGlvbihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIEZ1bmN0aW9uPHZvaWQoUmVmPERl
ZmVycmVkUHJvbWlzZT4mJik+JiYgb3BlcmF0aW9uKQogewogICAgIGlmIChpc0Nsb3NlZCgpKSB7
Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlJUQ1BlZXJDb25u
ZWN0aW9uIGlzIGNsb3NlZCIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRl
RXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiX3MpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC05MjcsNyArOTI3LDcgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2hh
aW5PcGVyYXRpb24oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBGdW5jdGlvbjwKICAg
ICAgICAgQVNTRVJUKG1faGFzUGVuZGluZ09wZXJhdGlvbik7CiAgICAgICAgIGlmIChpc0Nsb3Nl
ZCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIG9wZXJhdGlvbiA6IHN0ZDo6ZXhjaGFuZ2Uo
bV9vcGVyYXRpb25zLCB7IH0pKQotICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5maXJzdC0+cmVq
ZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIik7Cisg
ICAgICAgICAgICAgICAgb3BlcmF0aW9uLmZpcnN0LT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3Is
ICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiX3MpOwogICAgICAgICAgICAgbV9oYXNQZW5k
aW5nT3BlcmF0aW9uID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENS
dHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKaW5kZXggY2IzZjdjZDliZjIxMjNlOTFkMmRmN2E0NTFk
MWM2ZTgxODllZDQ0ZC4uNGYyOWFiMTVlNmI1Njc3MTczMGFmOTQ0MmNlMGI0MTQyNzBlMTZjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJh
bWVUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKQEAgLTM0Niw3ICszNDYsNyBAQCBSVENSdHBT
RnJhbWVUcmFuc2Zvcm1lcjo6VHJhbnNmb3JtUmVzdWx0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVy
OjplbmNyeXB0RnJhbWUoUwogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlRyYW5zZm9ybVJlc3Vs
dCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNmb3JtKFNwYW48Y29uc3QgdWludDhfdD4g
ZGF0YSkKIHsKICAgICBpZiAoIW1faGFzS2V5KQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoRXJyb3JJbmZvcm1hdGlvbiB7IEVycm9yOjpLZXlJRCwgICJLZXkgaXMgbm90IGluaXRpYWxp
emVkIiwgMCB9KTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEVycm9ySW5mb3JtYXRp
b24geyBFcnJvcjo6S2V5SUQsICAiS2V5IGlzIG5vdCBpbml0aWFsaXplZCJfcywgMCB9KTsKIAog
ICAgIHJldHVybiBtX2lzRW5jcnlwdGluZyA/IGVuY3J5cHRGcmFtZShkYXRhKSA6IGRlY3J5cHRG
cmFtZShkYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDEzMzMxYWNjMDQ0MGNkMDE3ODljNzMxNTgwZWI1Njkw
NDFjMzgxY2QuLjMyM2MyODEzYzMyNGVmZWU2OThmNGMwZTRiOWZmZmNjNzlkNGQ2YjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNw
cApAQCAtMjYwLDcgKzI2MCw3IEBAIHZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5k
Ojpkb0NyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucyYmIG9wdGlvbnMpCiB2b2lkIExpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9ucyYm
KQogewogICAgIGlmICghbV9pc1JlbW90ZURlc2NyaXB0aW9uU2V0KSB7Ci0gICAgICAgIGNyZWF0
ZUFuc3dlckZhaWxlZChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIHJlbW90ZSBk
ZXNjcmlwdGlvbiBzZXQiIH0pOworICAgICAgICBjcmVhdGVBbnN3ZXJGYWlsZWQoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyByZW1vdGUgZGVzY3JpcHRpb24gc2V0Il9zIH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fZW5kcG9pbnQtPmRvQ3JlYXRlQW5zd2VyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5k
LmNwcAppbmRleCBkMWY3M2FkN2Y0NzhmNjA0NzI1YjA2MDk5ZmRlNjkwYzczZWQ1YjQ1Li40MTc2
ZThkNmY3ODNhNTI1YTgwZjdhNjBlYWRjNjdmNmJmZDcwMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Nl
aXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKQEAgLTg5LDcgKzg5
LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx3ZWJydGM6OlJ0cENvZGVjQ2FwYWJpbGl0
eT4gdG9SdHBDb2RlY0NhcGFiaWxpdHkoY29uc3QKICAgICBlbHNlIGlmIChjb2RlYy5taW1lVHlw
ZS5zdGFydHNXaXRoKCJhdWRpby8iKSkKICAgICAgICAgcnRjQ29kZWMua2luZCA9IGNyaWNrZXQ6
Ok1FRElBX1RZUEVfQVVESU87CiAgICAgZWxzZQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IGJhZCBtaW1l
VHlwZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25F
cnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBiYWQgbWltZVR5cGUiX3MgfTsKIAogICAgIHJ0
Y0NvZGVjLm5hbWUgPSBjb2RlYy5taW1lVHlwZS5zdWJzdHJpbmcoNikudXRmOCgpLmRhdGEoKTsK
ICAgICBydGNDb2RlYy5jbG9ja19yYXRlID0gY29kZWMuY2xvY2tSYXRlOwpAQCAtOTksNyArOTks
NyBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPHdlYnJ0Yzo6UnRwQ29kZWNDYXBhYmlsaXR5
PiB0b1J0cENvZGVjQ2FwYWJpbGl0eShjb25zdAogICAgIGZvciAoYXV0byBwYXJhbWV0ZXIgOiBT
dHJpbmdWaWV3KGNvZGVjLnNkcEZtdHBMaW5lKS5zcGxpdCgnOycpKSB7CiAgICAgICAgIGF1dG8g
cG9zaXRpb24gPSBwYXJhbWV0ZXIuZmluZCgnPScpOwogICAgICAgICBpZiAocG9zaXRpb24gPT0g
bm90Rm91bmQpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNh
dGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUgYmFkbHkgZm9ybWF0
ZWQiIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlv
bkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUgYmFkbHkgZm9ybWF0ZWQi
X3MgfTsKICAgICAgICAgcnRjQ29kZWMucGFyYW1ldGVycy5lbXBsYWNlKHBhcmFtZXRlci5zdWJz
dHJpbmcoMCwgcG9zaXRpb24pLnV0ZjgoKS5kYXRhKCksIHBhcmFtZXRlci5zdWJzdHJpbmcocG9z
aXRpb24gKyAxKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0
aWxzLmNwcAppbmRleCA0NWU0ZDE3MzYzZmYxYjY0MDdlM2MwOTljMGZjN2Y0MjgyZmE2OGIwLi45
ZjE5NmYzNzhiYjc3NzY3M2NmNzEyMGNhYTRmYjQ2NDUwMWY0YTg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENVdGlscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDVXRpbHMuY3BwCkBAIC0zNjAsNyArMzYwLDcgQEAgRXhjZXB0aW9uIHRvRXhjZXB0aW9u
KGNvbnN0IHdlYnJ0Yzo6UlRDRXJyb3ImIGVycm9yKQogewogICAgIEFTU0VSVCghZXJyb3Iub2so
KSk7CiAKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgdG9FeGNlcHRpb25Db2RlKGVycm9yLnR5cGUo
KSksIGVycm9yLm1lc3NhZ2UoKSB9OworICAgIHJldHVybiBFeGNlcHRpb24geyB0b0V4Y2VwdGlv
bkNvZGUoZXJyb3IudHlwZSgpKSwgU3RyaW5nIHsgZXJyb3IubWVzc2FnZSgpIH0gfTsKIH0KIAog
c3RhdGljIGlubGluZSBSVENJY2VDb21wb25lbnQgdG9SVENJY2VDb21wb25lbnQoaW50IGNvbXBv
bmVudCkKQEAgLTQ1NSw3ICs0NTUsNyBAQCBSZWZQdHI8UlRDRXJyb3I+IHRvUlRDRXJyb3IoY29u
c3Qgd2VicnRjOjpSVENFcnJvciYgcnRjRXJyb3IpCiAgICAgYXV0byBkZXRhaWwgPSB0b1JUQ0Vy
cm9yRGV0YWlsVHlwZShydGNFcnJvci5lcnJvcl9kZXRhaWwoKSk7CiAgICAgaWYgKCFkZXRhaWwp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSVENFcnJvcjo6Y3JlYXRlKCpk
ZXRhaWwsIHJ0Y0Vycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0dXJuIFJUQ0Vycm9yOjpjcmVhdGUo
KmRldGFpbCwgU3RyaW5nIHsgcnRjRXJyb3IubWVzc2FnZSgpIH0pOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVs
ZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbExvYWRlclVTRC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1t
CmluZGV4IDA5ZWM4ZjYwM2U5ZDAyMmIzNzhkZGEwZTQyN2ZlYzUyMWZkZDUyZDIuLmNhYjRiOGRl
MjAyZTc3ZDcwMjgyYjU5NGExYmVmYmQ3NWIwNmNiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNE
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9T
Y2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIFJldGFp
blB0cjxOU1VSTD4gd3JpdGVUb1RlbXBvcmFyeUZpbGUoV2ViQ29yZTo6TW9kZWwmIG1vZGVsU291
cmNlKQogICAgIC8vIGluaXRpYWxpemVyIGJ1dCBjdXJyZW50bHkgdGhhdCBkb2VzIG5vdCB3b3Jr
LgogCiAgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGVIYW5kbGU7Ci0gICAg
YXV0byBmaWxlUGF0aCA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJNb2RlbEZpbGUi
LCBmaWxlSGFuZGxlLCAiLnVzZHoiKTsKKyAgICBhdXRvIGZpbGVQYXRoID0gRmlsZVN5c3RlbTo6
b3BlblRlbXBvcmFyeUZpbGUoIk1vZGVsRmlsZSJfcywgZmlsZUhhbmRsZSwgIi51c2R6Il9zKTsK
ICAgICBBU1NFUlQoRmlsZVN5c3RlbTo6aXNIYW5kbGVWYWxpZChmaWxlSGFuZGxlKSk7CiAKICAg
ICBzaXplX3QgYnl0ZUNvdW50ID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUoZmlsZUhhbmRsZSwg
bW9kZWxTb3VyY2UuZGF0YSgpLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIG1vZGVsU291cmNl
LmRhdGEoKS0+c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5
bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggZGYyYjVjMjY0ZjNhNWNlMmMx
ZTFjYjZiNzYzNDBhMDBmYTQwY2NlMC4uNDIyMzVlZWExYmZkMWNkMWI3MDcwYjY5MDk0ODQyY2Y2
ZTkzNTRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVz
dC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50
cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdGF0aWMgRXhj
ZXB0aW9uT3I8c3RkOjp0dXBsZTxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4gY2hlY2tBbmRDYW5v
bmljYWxpemVEZXRhaQogCiAgICAgICAgICAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBzZWVuU2hp
cHBpbmdPcHRpb25JRHMuYWRkKHNoaXBwaW5nT3B0aW9uLmlkKTsKICAgICAgICAgICAgICAgICBp
ZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgb3B0aW9uIElEcyBtdXN0IGJlIHVuaXF1ZS4i
IH07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJT
aGlwcGluZyBvcHRpb24gSURzIG11c3QgYmUgdW5pcXVlLiJfcyB9OwogCiAjaWYgRU5BQkxFKFBB
WU1FTlRfUkVRVUVTVF9TRUxFQ1RFRF9TSElQUElOR19PUFRJT04pCiAgICAgICAgICAgICAgICAg
aWYgKHNoaXBwaW5nT3B0aW9uLnNlbGVjdGVkKQpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgUGF5
bWVudFJlcXVlc3Q6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8RE9NUHJvbWlzZT4m
JiBkZXRhaWxzUHJvbWlzCiAKICAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5mcmFtZSgpLT53
aW5kb3coKTsKICAgICBpZiAoIXdpbmRvdyB8fCAhd2luZG93LT5jb25zdW1lVHJhbnNpZW50QWN0
aXZhdGlvbigpKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5
RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgfSk7
CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJzaG93
KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiJfcyB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0
dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVy
ZUluUGljdHVyZS5jcHAKaW5kZXggZjJmMDIzMTAyNzQ1YjlmZDIzZThlOTQyZDYwOWE3ZTliZTA2
MTBkOC4uYmJlMmNiYzhiOWNiYWU0ZjJmYjBlYmRlOTRkNTk1YWY5ZDhmY2JiZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1l
bnRQaWN0dXJlSW5QaWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1
cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCkBAIC04MSwy
MyArODEsMjMgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cHJvdmlk
ZVBpY3R1cmVJblBpY3R1cmVUbyhIVE1MVmlkZW9FbGVtZW4KIHZvaWQgSFRNTFZpZGVvRWxlbWVu
dFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1l
bnQmIHZpZGVvRWxlbWVudCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAg
IGlmICghc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlIGlzIG5v
dCBzdXBwb3J0ZWQuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJv
ciwgIlRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZSBpcyBub3Qgc3VwcG9ydGVkLiJfcyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50LnJlYWR5U3RhdGUo
KSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkhBVkVfTk9USElORykgewotICAgICAgICBwcm9t
aXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBub3Qg
cmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLiIpOworICAgICAgICBw
cm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBu
b3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLiJfcyk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIXZpZGVvRWxlbWVudC52aWRlb1RyYWNrcygp
IHx8ICF2aWRlb0VsZW1lbnQudmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkpIHsKLSAgICAgICAgcHJv
bWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgZG9lcyBu
b3QgaGF2ZSBhIHZpZGVvIHRyYWNrIG9yIGl0IGhhcyBub3QgZGV0ZWN0ZWQgYSB2aWRlbyB0cmFj
ayB5ZXQuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlRo
ZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IGhhdmUgYSB2aWRlbyB0cmFjayBvciBpdCBoYXMgbm90
IGRldGVjdGVkIGEgdmlkZW8gdHJhY2sgeWV0LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBib29sIHVzZXJBY3RpdmF0aW9uUmVxdWlyZWQgPSAhdmlkZW9FbGVtZW50LmRvY3Vt
ZW50KCkucGljdHVyZUluUGljdHVyZUVsZW1lbnQoKTsKICAgICBpZiAodXNlckFjdGl2YXRpb25S
ZXF1aXJlZCAmJiAhVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgp
KSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3IsICJUaGUgcmVxdWVz
dCBpcyBub3QgdHJpZ2dlcmVkIGJ5IGEgdXNlciBhY3RpdmF0aW9uLiIpOworICAgICAgICBwcm9t
aXNlLT5yZWplY3QoTm90QWxsb3dlZEVycm9yLCAiVGhlIHJlcXVlc3QgaXMgbm90IHRyaWdnZXJl
ZCBieSBhIHVzZXIgYWN0aXZhdGlvbi4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0xMDgsNyArMTA4LDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6
cmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYKICAgICB9CiAKICAgICBp
ZiAodmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS0+bV9lbnRlclBpY3R1cmVJblBpY3R1cmVQ
cm9taXNlIHx8IHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUtPm1fZXhpdFBpY3R1cmVJblBp
Y3R1cmVQcm9taXNlKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3Is
ICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9jZXNzaW5nIGEgUGljdHVyZS1pbi1QaWN0dXJlIHJl
cXVlc3QuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3IsICJUaGUg
dmlkZW8gZWxlbWVudCBpcyBwcm9jZXNzaW5nIGEgUGljdHVyZS1pbi1QaWN0dXJlIHJlcXVlc3Qu
Il9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQg
SFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJl
KEhUTUxWaWRlb0VsZW1lbnQmCiAgICAgICAgIHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUt
Pm1fZW50ZXJQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSk7CiAgICAg
ICAgIHZpZGVvRWxlbWVudC53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKEhUTUxWaWRlb0VsZW1l
bnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSk7CiAgICAgfSBlbHNl
Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSB2aWRlbyBl
bGVtZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLiIpOwor
ICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IsICJUaGUgdmlkZW8gZWxl
bWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZS4iX3MpOwog
fQogCiBib29sIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjphdXRvUGljdHVyZUlu
UGljdHVyZShIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQu
Y3BwCmluZGV4IDk3OWYyMjQ1OTA3MjBmODI5MzM1ZDYwYTNhOGQ4YWU1YzNiNzIyNDMuLmRkMTZm
ODkzZjJkNjk1MmNjNWYwMDMwOGY5ZDBkOTlhYjhiMGU4YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQu
Y3BwCkBAIC04NCwxNiArODQsMTYgQEAgYXV0byBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Omlu
c3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290JiByb290KSAtPiBJbnN0YWxsUmUKICAgICByb290
LmFwcGVuZENoaWxkKCptX2VtYmVkU2hhZG93RWxlbWVudCk7CiAKICAgICBhdXRvIGlmcmFtZUVs
ZW1lbnQgPSBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6aWZyYW1lVGFnLCBt
X3BhcmVudEVsZW1lbnQtPmRvY3VtZW50KCkpOwotICAgIGlmIChtX2F0dHJpYnV0ZXMuY29udGFp
bnMoIndpZHRoIikpCisgICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygid2lkdGgiX3MpKQog
ICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KEhUTUxOYW1lczo6d2lkdGhBdHRyLCBBdG9tU3RyaW5nKCIxMDAlIiwgQXRvbVN0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKIAotICAgIGNvbnN0IGF1dG8mIGhlaWdodFZhbHVlID0gbV9h
dHRyaWJ1dGVzLmZpbmQoImhlaWdodCIpOworICAgIGNvbnN0IGF1dG8mIGhlaWdodFZhbHVlID0g
bV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdodCJfcyk7CiAgICAgaWYgKGhlaWdodFZhbHVlICE9IG1f
YXR0cmlidXRlcy5lbmQoKSkgewogICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGUo
SFRNTE5hbWVzOjpzdHlsZUF0dHIsIEF0b21TdHJpbmcoIm1heC1oZWlnaHQ6IDEwMCUiLCBBdG9t
U3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBpZnJhbWVFbGVtZW50LT5z
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6aGVpZ2h0QXR0ciwg
aGVpZ2h0VmFsdWUtPnZhbHVlKTsKICAgICB9CiAKLSAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c3JjQXR0ciwgeW91VHViZVVS
TChtX2F0dHJpYnV0ZXMuZ2V0KCJzcmMiKSkpOworICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpzcmNBdHRyLCB5b3VUdWJlVVJM
KG1fYXR0cmlidXRlcy5nZXQoInNyYyJfcykpKTsKICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6ZnJhbWVib3JkZXJBdHRyLCBB
dG9tU3RyaW5nKCIwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAK
ICAgICAvLyBEaXNhYmxlIGZyYW1lIGZsYXR0ZW5pbmcgZm9yIHRoaXMgaWZyYW1lLgpAQCAtMjMx
LDExICsyMzEsMTEgQEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91VHViZVVSTChjb25z
dCBVUkwmIHVybCwgYm9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICBpZiAoZXF1YWxMZXR0
ZXJzSWdub3JpbmdBU0NJSUNhc2UocGF0aCwgIi93YXRjaCIpKSB7CiAgICAgICAgIGlmICghcXVl
cnkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBjb25zdCBhdXRvJiBxdWVyeURpY3Rpb25hcnkg
PSBxdWVyeUtleXNBbmRWYWx1ZXMocXVlcnkpOwotICAgICAgICAgICAgU3RyaW5nIHZpZGVvSUQg
PSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ2Iik7CisgICAgICAgICAgICBTdHJpbmcg
dmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInYiX3MpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBpZiAoIXZpZGVvSUQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAg
ICAgY29uc3QgYXV0byYgZnJhZ21lbnREaWN0aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFsdWVzKHVy
bC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHRpbWVJRCA9
IHZhbHVlRm9yS2V5KGZyYWdtZW50RGljdGlvbmFyeSwgInQiKTsKKyAgICAgICAgICAgICAgICBT
dHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkoZnJhZ21lbnREaWN0aW9uYXJ5LCAidCJfcyk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVlvdVR1YmVVUkwodmlkZW9JRCwgdGltZUlEKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjQ2LDEwICsyNDYsMTAgQEAgc3RhdGljIFVS
TCBwcm9jZXNzQW5kQ3JlYXRlWW91VHViZVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCYgaXNZb3VU
dWJlU2hvcnRlbmVkVVIKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFxdWVyeS5pc0Vt
cHR5KCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBxdWVyeURpY3Rpb25hcnkgPSBx
dWVyeUtleXNBbmRWYWx1ZXMocXVlcnkpOwotICAgICAgICAgICAgICAgIFN0cmluZyB2aWRlb0lE
ID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidiIpOworICAgICAgICAgICAgICAgIFN0
cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidiJfcyk7CiAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCF2aWRlb0lELmlzRW1wdHkoKSkgewot
ICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0
aW9uYXJ5LCAidCIpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVG
b3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidCJfcyk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBjcmVhdGVZb3VUdWJlVVJMKHZpZGVvSUQsIHRpbWVJRCk7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRl
eCBjMjNhOGQ2N2NiNDgxMjMzZjdjYjRiNTE5YjEzNmIyMjE5MDZiZWJlLi42MDc1M2ZlY2UzNWEy
OWY4OGU5MjYyMGEyMGI4MDlhZmU5NmNjNzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsLmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIFNwZWVjaFJlY29nbml0aW9uQ2Fw
dHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UoY29uc3QgQ0FBdWRpb1N0cmVhbURlcwog
ICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgewog
ICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgbV9zdGF0
ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2Ns
aWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1dCBmb3JtYXQiIH0p
KTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFi
bGUgdG8gc2V0IGlucHV0IGZvcm1hdCJfcyB9KSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIGJvb2wgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZShjb25zdCBDQUF1ZGlvU3RyZWFt
RGVzCiAgICAgaWYgKGRhdGFTb3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9u
KSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICAgICAg
bV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJv
cihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9y
bWF0IiB9KSk7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJl
LCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0Il9zIH0pKTsKICAgICAgICAgfSk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNTcsMTMgKzE1NywxMyBAQCB2b2lkIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0b3BwZWQoKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0dXJlRGlkRmFp
bCgpKTsKLSAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6
OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJTb3VyY2UgaXMgc3Rv
cHBlZCIgfSkpOworICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVw
ZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlNvdXJjZSBp
cyBzdG9wcGVkIl9zIH0pKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7Ci0gICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpj
cmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiU291cmNlIGlzIG11dGVk
IiB9KSk7CisgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiU291cmNlIGlzIG11
dGVkIl9zIH0pKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBs
OjptdXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29h
L1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbQppbmRleCAyZDM0OGVk
MjBjMjFiNTEwMzQ4ODc5ZDVjMjYzZmMwZTNjZmVkODZiLi5iZWYzYTUyMjUxN2Y0YzJlMzJmNTgz
MjNkYTk4NDMwYmIwZDE5NWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0KKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1t
CkBAIC02MSw3ICs2MSw3IEBAIC0gKHZvaWQpYXVkaW9TYW1wbGVzQXZhaWxhYmxlOihDTVNhbXBs
ZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKICAgICB9CiAKICAgICAvLyBGYWtlIHNvbWUgcmVjb2du
aXRpb24gcmVzdWx0cy4KLSAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZl
RGF0YSBhbHRlcm5hdGl2ZSB7ICJUZXN0IiwgMS4wIH07CisgICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZURhdGEgYWx0ZXJuYXRpdmUgeyAiVGVzdCJfcywgMS4wIH07CiAg
ICAgX2RlbGVnYXRlQ2FsbGJhY2soV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNy
ZWF0ZVJlc3VsdChfaWRlbnRpZmllciwgeyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3Vs
dERhdGEgeyB7IFdURk1vdmUoYWx0ZXJuYXRpdmUpIH0sIHRydWUgfSB9KSk7CiAKICAgICBpZiAo
IV9kb011bHRpcGxlUmVjb2duaXRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMTg4ZDMwYjYxOThiMTYxZTFiNDdhZTk3
NjhlMGMxZTk1NzY2NTNhYi4uNjM2YjQ4YzlmMDQ3OWJjNWFlMzE5NGVhMWU4OTA1Njk2NTcxN2E0
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxDb25uZWN0aW9uSW5m
bz4gY29ubmVjdGlvbkluZm8oTmF2aWdhdG9yQmFzZSogbmF2aWdhdG9yKQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJPcmlnaW4gaXMgaW52YWxpZCJfcyB9
OwogCiAgICAgaWYgKCFvcmlnaW4tPmNhbkFjY2Vzc1N0b3JhZ2VNYW5hZ2VyKCkpCi0gICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJPcmlnaW4gc2hvdWxkIG5vdCBhY2Nlc3Mg
c3RvcmFnZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk9yaWdp
biBzaG91bGQgbm90IGFjY2VzcyBzdG9yYWdlIl9zIH07CiAKICAgICBpZiAoaXM8RG9jdW1lbnQ+
KGNvbnRleHQpKSB7CiAgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KGNvbnRleHQpLT5zdG9yYWdlQ29ubmVjdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCmluZGV4IDIxOTk5MmY2
YjViMTRjNWI2MDI3NTQ1NmFkZGIwODU3Nzg2ZTEyNWYuLmExNjFiM2QyYzA1YzNmNDljOWIwYThm
OWU2OTY2ZDQ1YmFhZGVmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
LWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
Yi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAKQEAgLTMzOCw3ICszMzgsNyBAQCB2b2lkIFdlYkxv
Y2tNYW5hZ2VyOjpzaWduYWxUb0Fib3J0VGhlUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2Nr
SWRlbnRpZmllcikKICAgICAgICAgaWYgKHdhc0Fib3J0ZWQgJiYgd2Vha1RoaXMpCiAgICAgICAg
ICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5nUmVxdWVzdHMucmVtb3ZlKGxvY2tJZGVudGlmaWVyKTsK
ICAgICB9KTsKLSAgICBzZXR0bGVSZWxlYXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgRXhjZXB0
aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sgcmVxdWVzdCB3YXMgYWJvcnRlZCB2aWEgQWJvcnRTaWdu
YWwiIH0pOworICAgIHNldHRsZVJlbGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRp
b24geyBBYm9ydEVycm9yLCAiTG9jayByZXF1ZXN0IHdhcyBhYm9ydGVkIHZpYSBBYm9ydFNpZ25h
bCJfcyB9KTsKIH0KIAogdm9pZCBXZWJMb2NrTWFuYWdlcjo6c2V0dGxlUmVsZWFzZVByb21pc2Uo
V2ViTG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1
ZT4mJiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvTGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0xpc3RlbmVyLmNwcAppbmRleCAwMjBlNzZmNDM2NGU2ZGVmOGY4MTcyNGRiN2MyZmQ4YWU1NzAy
MTc5Li43NmM3NmQ3NTQ0ZTcwYzlhY2QzYmRkZjk2ZjM0YzhhYzZiYTlmZGZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKQEAgLTQw
LDE1ICs0MCwxNSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBBdWRpb0xpc3RlbmVyOjpBdWRp
b0xpc3RlbmVyKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQpCi0gICAgOiBtX3Bvc2l0aW9uWChB
dWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9uWCIsIDAuMCwgLUZMVF9NQVgsIEZM
VF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWShBdWRpb1Bh
cmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9uWSIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgs
IEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpj
cmVhdGUoY29udGV4dCwgInBvc2l0aW9uWiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9t
YXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX2ZvcndhcmRYKEF1ZGlvUGFyYW06OmNyZWF0ZShj
b250ZXh0LCAiZm9yd2FyZFgiLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwg
ImZvcndhcmRZIiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRl
KSkKLSAgICAsIG1fZm9yd2FyZFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJk
WiIsIC0xLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAg
ICwgbV91cFgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFgiLCAwLjAsIC1GTFRfTUFY
LCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV91cFkoQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJ1cFkiLCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0
aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV91cFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQs
ICJ1cFoiLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQor
ICAgIDogbV9wb3NpdGlvblgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgi
X3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAg
LCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9uWSJfcywg
MC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1f
cG9zaXRpb25aKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAicG9zaXRpb25aIl9zLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3
YXJkWChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRYIl9zLCAwLjAsIC1GTFRf
TUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWShB
dWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRZIl9zLCAwLjAsIC1GTFRfTUFYLCBG
TFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWihBdWRpb1Bh
cmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRaIl9zLCAtMS4wLCAtRkxUX01BWCwgRkxUX01B
WCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fdXBYKEF1ZGlvUGFyYW06OmNyZWF0
ZShjb250ZXh0LCAidXBYIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQorICAgICwgbV91cFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFki
X3MsIDEuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAg
LCBtX3VwWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVwWiJfcywgMC4wLCAtRkxUX01B
WCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKICAgICAsIG1fcG9zaXRpb25YVmFs
dWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25Z
VmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRp
b25aVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCmluZGV4IGJlMTJiYjVhYTAy
N2U1M2ExMzQ2ODQ3ZTZjOTkzYzIzZjlmMDE4OTguLjBkNDZhM2Y5MDRjYzRkMDkzODhiNGZiMDEy
MzNjYjYwOGVjN2Y2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1BhcmFtLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlv
UGFyYW06OnNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCiBFeGNlcHRpb25Pcjx2b2lk
PiBBdWRpb1BhcmFtOjpzZXRBdXRvbWF0aW9uUmF0ZShBdXRvbWF0aW9uUmF0ZSBhdXRvbWF0aW9u
UmF0ZSkKIHsKICAgICBpZiAobV9hdXRvbWF0aW9uUmF0ZU1vZGUgPT0gQXV0b21hdGlvblJhdGVN
b2RlOjpGaXhlZCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
LCAiYXV0b21hdGlvblJhdGUgY2Fubm90IGJlIGNoYW5nZWQgZm9yIHRoaXMgbm9kZSIgfTsKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJh
dGUgY2Fubm90IGJlIGNoYW5nZWQgZm9yIHRoaXMgbm9kZSJfcyB9OwogCiAgICAgbV9hdXRvbWF0
aW9uUmF0ZSA9IGF1dG9tYXRpb25SYXRlOwogICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5k
ZXggZTU5YWE3ZTZkODQyZmFlYmZkYzM4YTA1OWVjOTVjODE5M2U1NDZhNi4uY2MzNGRjMzRlNTA3
MWQ3NGJkNTJjMWRiNjg4YmM5ZjIxNDhlNTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMTcyLDcgKzE3
Miw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQo
UGFyYW1FdmVudCYmIGV2ZW50KQogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBtYWtlIHN1cmUg
dGhpcyBldmVudCBkb2Vzbid0IG92ZXJsYXAgYW55IGV4aXN0aW5nIFNldFZhbHVlQ3VydmUgZXZl
bnQuCiAgICAgICAgICAgICBhdXRvIHBhcmVudEV2ZW50RW5kVGltZSA9IHBhcmFtRXZlbnQudGlt
ZSgpICsgcGFyYW1FdmVudC5kdXJhdGlvbigpOwogICAgICAgICAgICAgaWYgKGV2ZW50LnRpbWUo
KSA+PSBwYXJhbUV2ZW50LnRpbWUoKSAmJiBldmVudC50aW1lKCkgPCBwYXJlbnRFdmVudEVuZFRp
bWUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
LCAiRXZlbnRzIGFyZSBvdmVybGFwcGluZyIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIl9zIH07
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAocGFyYW1FdmVudC50aW1lKCkgPiBpbnNlcnRUaW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0
ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVy
Tm9kZS5jcHAKaW5kZXggMTQwZWQwYTI2ZTU3NTUxNzAxNGFjMzNhNjQzMTU1ODkwOWMwMjcyYy4u
NWQ3MzZjZmNiMjU1OTE4Zjg5NzVkN2IzYjFmNzhmYjBiMDM0NTE2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC03
NCw3ICs3NCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEJpcXVhZEZpbHRlck5vZGU6OmdldEZyZXF1
ZW5jeVJlc3BvbnNlKGNvbnN0IFJlZjxGbG9hdDMyQXJyYXk+CiB7CiAgICAgdW5zaWduZWQgbGVu
Z3RoID0gZnJlcXVlbmN5SHotPmxlbmd0aCgpOwogICAgIGlmIChtYWdSZXNwb25zZS0+bGVuZ3Ro
KCkgIT0gbGVuZ3RoIHx8IHBoYXNlUmVzcG9uc2UtPmxlbmd0aCgpICE9IGxlbmd0aCkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRoZSBhcnJheXMgcGFz
c2VkIGFzIGFyZ3VtZW50cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIiB9OworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVGhlIGFycmF5cyBwYXNzZWQg
YXMgYXJndW1lbnRzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGgiX3MgfTsKIAogICAgIGlmIChs
ZW5ndGgpCiAgICAgICAgIGJpcXVhZFByb2Nlc3NvcigpLT5nZXRGcmVxdWVuY3lSZXNwb25zZShs
ZW5ndGgsIGZyZXF1ZW5jeUh6LT5kYXRhKCksIG1hZ1Jlc3BvbnNlLT5kYXRhKCksIHBoYXNlUmVz
cG9uc2UtPmRhdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0JpcXVhZFByb2Nlc3Nvci5jcHAKaW5kZXggOWRmNjI5ZDdlYmZkZDZmYjc0MTVmM2ViNzc5NzI2
YmJhYmNhOGYxYy4uZjlhNTQzNGU4ODA1ZDdkZTQ5MThhNmZiZDg3NTRkMWE1ZWQyNzIxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29y
LmNwcApAQCAtMzUsMTAgKzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIEJpcXVh
ZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vzc29yKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZs
b2F0IHNhbXBsZVJhdGUsIHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBib29sIGF1dG9Jbml0aWFs
aXplKQogICAgIDogQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZD
aGFubmVscykKLSAgICAsIG1fcGFyYW1ldGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwg
ImZyZXF1ZW5jeSIsIDM1MC4wLCAwLjAsIDAuNSAqIHNhbXBsZVJhdGUsIEF1dG9tYXRpb25SYXRl
OjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjIoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQs
ICJRIiwgMSwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAg
LCBtX3BhcmFtZXRlcjMoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJnYWluIiwgMC4wLCAt
RkxUX01BWCwgNDAgKiBzdGQ6OmxvZzEwKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgo
KSksIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJkZXR1bmUiLCAwLjAsIC0xNTM2MDAsIDE1MzYwMCwgQXV0b21h
dGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcGFyYW1ldGVyMShBdWRpb1BhcmFtOjpjcmVhdGUo
Y29udGV4dCwgImZyZXF1ZW5jeSJfcywgMzUwLjAsIDAuMCwgMC41ICogc2FtcGxlUmF0ZSwgQXV0
b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcGFyYW1ldGVyMihBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgIlEiX3MsIDEsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQorICAgICwgbV9wYXJhbWV0ZXIzKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAi
Z2FpbiJfcywgMC4wLCAtRkxUX01BWCwgNDAgKiBzdGQ6OmxvZzEwKHN0ZDo6bnVtZXJpY19saW1p
dHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFt
ZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZXR1bmUiX3MsIDAuMCwgLTE1MzYw
MCwgMTUzNjAwLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogewogICAgIGlmIChhdXRvSW5pdGlh
bGl6ZSkKICAgICAgICAgaW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcAppbmRleCBhZWU0MGU5NGU2NWRlZTRiZjg0
NDI1MTI5NGUzMTQzNzhhZDA0MmE1Li4xZjkwY2JjOWYxOTcwN2E5YmMxN2ExMTNiY2M0YjFkNThm
OTQwNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5
UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5
UHJvY2Vzc29yLmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERl
bGF5UHJvY2Vzc29yOjpEZWxheVByb2Nlc3NvcihCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBm
bG9hdCBzYW1wbGVSYXRlLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBkb3VibGUgbWF4RGVs
YXlUaW1lKQogICAgIDogQXVkaW9EU1BLZXJuZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVy
T2ZDaGFubmVscykKLSAgICAsIG1fZGVsYXlUaW1lKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0
LCAiZGVsYXlUaW1lIiwgMC4wLCAwLjAsIG1heERlbGF5VGltZSwgQXV0b21hdGlvblJhdGU6OkFS
YXRlKSkKKyAgICAsIG1fZGVsYXlUaW1lKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVs
YXlUaW1lIl9zLCAwLjAsIDAuMCwgbWF4RGVsYXlUaW1lLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUp
KQogewogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dh
dmVTaGFwZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNo
YXBlck5vZGUuY3BwCmluZGV4IGZjMTUyODI3YjNhMGNjMjdhOGQ0M2I1NDU0NGZmNGJjNWJjNDlj
OWIuLjY0MjljMzA1MTYxMmFmZWU4MmIzZmNiZDU4YjJmNjA3NDBmZjk0ODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCkBAIC00
Myw3ICs0Myw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxXYXZlU2hhcGVyTm9kZT4+IFdhdmVTaGFwZXJO
b2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4CiAgICAgaWYgKG9wdGlvbnMuY3Vy
dmUpIHsKICAgICAgICAgY3VydmUgPSBGbG9hdDMyQXJyYXk6OnRyeUNyZWF0ZShvcHRpb25zLmN1
cnZlLT5kYXRhKCksIG9wdGlvbnMuY3VydmUtPnNpemUoKSk7CiAgICAgICAgIGlmICghY3VydmUp
Ci0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJJbnZh
bGlkIGN1cnZlIHBhcmFtZXRlciIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkludmFsaWQgY3VydmUgcGFyYW1ldGVyIl9zIH07CiAgICAgfQog
CiAgICAgYXV0byBub2RlID0gYWRvcHRSZWYoKm5ldyBXYXZlU2hhcGVyTm9kZShjb250ZXh0KSk7
CkBAIC03Niw3ICs3Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFdhdmVTaGFwZXJOb2RlOjpzZXRD
dXJ2ZUZvckJpbmRpbmdzKFJlZlB0cjxGbG9hdDMyQXJyYXk+JiYgY3VyCiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsgCiAgICAgREVCVUdfTE9HKExPR0lERU5USUZJRVIpOwogICAgIGlmIChj
dXJ2ZSAmJiBjdXJ2ZS0+bGVuZ3RoKCkgPCAyKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJMZW5ndGggb2YgY3VydmUgYXJyYXkgY2Fubm90IGJlIGxlc3Mg
dGhhbiAyIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJMZW5ndGggb2YgY3VydmUgYXJyYXkgY2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CiAKICAg
ICBpZiAoY3VydmUpIHsKICAgICAgICAgLy8gVGhlIHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQg
d2Ugc2hvdWxkIG1haW50YWluIGFuIGludGVybmFsIGNvcHkgb2YgdGhlIGN1cnZlIHNvIHRoYXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yLmNwcAppbmRleCBiYzViZWRmNzM0MjlhMGI1MmVkYzBlZDFkNGU3
NDVhOTM5OGZlZTk1Li5hNzdjZGFkNGQ1Y2RiYjU0MzE0NjhkNTVkYTNlYzM5NjRjMWM2NzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JD
b29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBib29sIG5l
ZWRzQXBwSWRRdWlya3MoY29uc3QgU3RyaW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGFwcElkKQog
ICAgIC8vIGV4aXN0aW5nIGRldmljZSByZWdpc3RyYXRpb25zIHRoYXQgYXV0aGVudGljYXRlICdn
b29nbGUuY29tJyBhZ2FpbnN0ICdnc3RhdGljLmNvbScuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dz
ZXJzCiAgICAgLy8gaGF2ZSBhZ3JlZWQgdG8gZ3JhbnQgYW4gZXhjZXB0aW9uIHRvIHRoZSBBcHBJ
ZCBydWxlcyBmb3IgYSBsaW1pdGVkIHRpbWUgcGVyaW9kICg1IHllYXJzIGZyb20gSmFudWFyeSwg
MjAxOCkgdG8KICAgICAvLyBhbGxvdyBleGlzdGluZyBHb29nbGUgdXNlcnMgdG8gc2VhbWxlc3Ns
eSB0cmFuc2l0aW9uIHRvIHByb3BlciBXZWJBdXRoTiBiZWhhdmlvci4KLSAgICBpZiAoZXF1YWxM
ZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgImdvb2dsZS5jb20iKSB8fCBob3N0LmVuZHNX
aXRoSWdub3JpbmdBU0NJSUNhc2UoIi5nb29nbGUuY29tIikpCisgICAgaWYgKGVxdWFsTGV0dGVy
c0lnbm9yaW5nQVNDSUlDYXNlKGhvc3QsICJnb29nbGUuY29tIikgfHwgaG9zdC5lbmRzV2l0aEln
bm9yaW5nQVNDSUlDYXNlKCIuZ29vZ2xlLmNvbSJfcykpCiAgICAgICAgIHJldHVybiAoYXBwSWQg
PT0gImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tL3NlY3VyaXR5a2V5L29yaWdpbnMuanNvbiJfcykg
fHwgKGFwcElkID09ICJodHRwczovL3d3dy5nc3RhdGljLmNvbS9zZWN1cml0eWtleS9hL2dvb2ds
ZS5jb20vb3JpZ2lucy5qc29uIl9zKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0
aWxzLmNwcAppbmRleCBjMWZiZjA1NmNjNmFiNWUxODI5ODgyMjQ2MzQ0MWI0YTg1ZWFiZDRjLi4z
MzJlMmJlNzk1YTAxZjFlMDQ2NjJkYzQxMTNiYWVhYzQ0MDcxZTc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGls
cy5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGJ1aWxk
QXR0ZXN0YXRpb25NYXAoVmVjdG9yPHVpbnQ4X3Q+JiYgYXV0aERhdGEsIFN0cmluZwogICAgICAg
ICBjb25zdCBzaXplX3QgYWFndWlkT2Zmc2V0ID0gcnBJZEhhc2hMZW5ndGggKyBmbGFnc0xlbmd0
aCArIHNpZ25Db3VudGVyTGVuZ3RoOwogICAgICAgICBpZiAoYXV0aERhdGEuc2l6ZSgpID49IGFh
Z3VpZE9mZnNldCArIGFhZ3VpZExlbmd0aCkKICAgICAgICAgICAgIG1lbXNldChhdXRoRGF0YS5k
YXRhKCkgKyBhYWd1aWRPZmZzZXQsIDAsIGFhZ3VpZExlbmd0aCk7Ci0gICAgICAgIGZvcm1hdCA9
IG5vbmVBdHRlc3RhdGlvblZhbHVlOworICAgICAgICBmb3JtYXQgPSBTdHJpbmcgeyBub25lQXR0
ZXN0YXRpb25WYWx1ZSB9OwogICAgICAgICBzdGF0ZW1lbnRNYXAuY2xlYXIoKTsKICAgICB9CiAg
ICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbY2Jvcjo6Q0JPUlZhbHVlKCJhdXRoRGF0YSIpXSA9IGNi
b3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGF1dGhEYXRhKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVy
dGVyLmNwcAppbmRleCBmMjFjNWVlN2EyNWY1ZTkyNzU0NDMxZDM1NGE4N2E4ZDIxYzU4M2M4Li43
MzVhOWJmOGUwM2E4NDJhOTdkNDY5NGFjY2M2YjIyZTEzZWZlMDQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNw
b25zZUNvbnZlcnRlci5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBSZWZQdHI8QXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb25z
dCBWZQogICAgICAgICAvLyBUaGUgcmVhc29uIHdoeSB3ZSBjYW4ndCBkaXJlY3RseSBwYXNzIGF1
dGhlbnRpY2F0b3JEYXRhL2Zvcm1hdC9hdHRTdG10IHRvIGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QK
ICAgICAgICAgLy8gaXMgdGhhdCB0aGV5IGFyZSBDQk9SVmFsdWUgaW5zdGVhZCBvZiB0aGUgcmF3
IHR5cGUuCiAgICAgICAgIC8vIEFsc28sIGZvcm1hdCBhbmQgYXR0U3RtdCBhcmUgb21pdHRlZCBh
cyB0aGV5IGFyZSBub3QgdXNlZnVsIGluIG5vbmUgYXR0ZXN0YXRpb24uCi0gICAgICAgIGF0dGVz
dGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4oYXV0
aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0cmluZygpKSwgIiIsIHsgfSwgYXR0ZXN0YXRpb24pOwor
ICAgICAgICBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoVmVjdG9y
PHVpbnQ4X3Q+KGF1dGhlbnRpY2F0b3JEYXRhLmdldEJ5dGVTdHJpbmcoKSksIFN0cmluZyB7IGVt
cHR5U3RyaW5nKCkgfSwgeyB9LCBhdHRlc3RhdGlvbik7CiAgICAgfSBlbHNlIHsKICAgICAgICAg
Q0JPUjo6TWFwVmFsdWUgYXR0ZXN0YXRpb25PYmplY3RNYXA7CiAgICAgICAgIGF0dGVzdGF0aW9u
T2JqZWN0TWFwW0NCT1IoImF1dGhEYXRhIildID0gV1RGTW92ZShhdXRoZW50aWNhdG9yRGF0YSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCmluZGV4IDlm
YTY3M2YxODJjY2NiMDQ2MjE3MzNhZTM4YzUyMzZkMzYyYjVjODguLmI0NGY5MGIwMTQzNDI3ZDE1
MjY3ZDdjOWY2N2YwY2ZiMDJjM2ZiM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9QaW4uY3BwCkBAIC0xNzEsNyArMTcxLDcgQEAgc3RkOjpvcHRpb25hbDxLZXlB
Z3JlZW1lbnRSZXNwb25zZT4gS2V5QWdyZWVtZW50UmVzcG9uc2U6OnBhcnNlRnJvbUNPU0UoY29u
c3QgQ0IKIAogICAgIGNvbnN0IGF1dG8mIHggPSB4SXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7
CiAgICAgY29uc3QgYXV0byYgeSA9IHlJdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKLSAgICBh
dXRvIHBlZXJLZXkgPSBDcnlwdG9LZXlFQzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkVDREgsICJQLTI1NiIsIGVuY29kZVJhd1B1YmxpY0tleSh4LCB5KSwgdHJ1ZSwgQ3J5
cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKTsKKyAgICBhdXRvIHBlZXJLZXkgPSBDcnlwdG9LZXlFQzo6
aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiJfcywgZW5j
b2RlUmF3UHVibGljS2V5KHgsIHkpLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpOwog
ICAgIGlmICghcGVlcktleSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIApAQCAtMjQ3
LDcgKzI0Nyw3IEBAIHN0ZDo6b3B0aW9uYWw8VG9rZW5SZXF1ZXN0PiBUb2tlblJlcXVlc3Q6OnRy
eUNyZWF0ZShjb25zdCBDU3RyaW5nJiBwaW4sIGNvbnN0IENyCiAgICAgLy8gVGhlIGZvbGxvd2lu
ZyBpbXBsZW1lbnRzIFNlY3Rpb24gNS41LjQgR2V0dGluZyBzaGFyZWRTZWNyZXQgZnJvbSBBdXRo
ZW50aWNhdG9yLgogICAgIC8vIGh0dHBzOi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYy
LjAtcHMtMjAxOTAxMzAvZmlkby1jbGllbnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4w
LXBzLTIwMTkwMTMwLmh0bWwjZ2V0dGluZ1NoYXJlZFNlY3JldAogICAgIC8vIDEuIEdlbmVyYXRl
IGEgUDI1NiBrZXkgcGFpci4KLSAgICBhdXRvIGtleVBhaXJSZXN1bHQgPSBDcnlwdG9LZXlFQzo6
Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiIsIHRy
dWUsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cyk7CisgICAgYXV0byBrZXlQYWlyUmVzdWx0ID0g
Q3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RI
LCAiUC0yNTYiX3MsIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cyk7CiAgICAgQVNTRVJU
KCFrZXlQYWlyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKTsKICAgICBhdXRvIGtleVBhaXIgPSBrZXlQ
YWlyUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNw
cAppbmRleCAzZjM2NmFhMjcwNjg0OTc0NWFjYTI4MTc5YjU5OTZlNjY2ZWUyNmVkLi5hNGZkZTE1
ZmZiZmQ1NTU3N2IyMjlkODY0OWM2NzY0OGNlN2ViOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRl
ci5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBSZWZQdHI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2U+IHJlYWRVMmZSZWdpc3RlclJlc3BvbnNlKGNvbnN0IFN0cmluZyYgcgogICAgIGlm
IChmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQuZW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVj
dChXVEZNb3ZlKGF1dGhEYXRhKSwgImZpZG8tdTJmIiwgV1RGTW92ZShmaWRvQXR0ZXN0YXRpb25T
dGF0ZW1lbnQpLCBhdHRlc3RhdGlvbik7CisgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1
aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICJmaWRvLXUyZiJfcywgV1RG
TW92ZShmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQpLCBhdHRlc3RhdGlvbik7CiAKICAgICByZXR1
cm4gQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQs
IGF0dGVzdGF0aW9uT2JqZWN0LCBhdHRhY2htZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAK
aW5kZXggOTRlZjUwOTU1OGI2YzI2NTlmZGZhM2Q2ODliNGIwZDI4MzczZDhhOC4uMzVjMGUxNmUz
ZTM1MTMyMzNjMjJkOGYzYWE1NjQ1MjAzZDk4NDc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAK
QEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVByZWZs
aWdodChTUUxUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiAgICAgfQogCiAgICAgaWYgKGFjdHVh
bFZlcnNpb24gIT0gbV9vbGRWZXJzaW9uKSB7Ci0gICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUg
ZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giKTsKKyAgICAg
ICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJSLCAi
Y3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50
IGRvIG5vdCBtYXRjaCJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dX
ZWJEYXRhYmFzZS5jcHAKaW5kZXggOGFjMmFkNmFmNWU0YTNiZmY4NGMyNjc2YzBlMjRlNmJiYzJm
M2I1Yy4uNTZhYzBlNDIyZGQ0ZGY5MzZlM2NjYjAwY2U1ZjQ1YzNkNjU1NDE1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dX
ZWJEYXRhYmFzZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPERhdGFi
YXNlPj4gRE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZShET01XaW5kb3cmIHdpbmQK
ICAgICBhdXRvKiBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1l
bnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yIH07Ci0gICAgZG9j
dW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlN0b3JhZ2UsIE1lc3NhZ2VM
ZXZlbDo6V2FybmluZywgIldlYiBTUUwgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBJbmRleGVk
REIgaW5zdGVhZC4iKTsKKyAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiV2ViIFNRTCBpcyBkZXByZWNh
dGVkLiBQbGVhc2UgdXNlIEluZGV4ZWREQiBpbnN0ZWFkLiJfcyk7CiAKICAgICBhdXRvJiBzZWN1
cml0eU9yaWdpbiA9IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwogICAgIGlmICghc2VjdXJp
dHlPcmlnaW4uY2FuQWNjZXNzRGF0YWJhc2UoJmRvY3VtZW50LT50b3BPcmlnaW4oKSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IDdj
ZmIxYzQxMGU2N2QwYjA3ZjdlMzQ5NDgyZGMwZWU5ZjZiMTE2ZGYuLmNkMGM0MTRmYjMxMDAyNDEz
ZWEyYmZkZDA5ODMwNWQ1MWI5ZjFmZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC0xOTgsNyArMTk4LDcgQEAgRGF0YWJhc2U6OkRh
dGFiYXNlKERhdGFiYXNlQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIGUKICAgICAsIG1fZGlzcGxheU5hbWUoZGlzcGxheU5hbWUuaXNvbGF0ZWRDb3B5
KCkpCiAgICAgLCBtX2VzdGltYXRlZFNpemUoZXN0aW1hdGVkU2l6ZSkKICAgICAsIG1fZmlsZW5h
bWUoRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5mdWxsUGF0aEZvckRhdGFiYXNlKG1fZG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIG1fbmFtZSkpCi0gICAgLCBtX2RhdGFiYXNlQXV0aG9y
aXplcihEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZSh1bnF1YWxpZmllZEluZm9UYWJsZU5hbWUp
KQorICAgICwgbV9kYXRhYmFzZUF1dGhvcml6ZXIoRGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGUo
U3RyaW5nIHsgdW5xdWFsaWZpZWRJbmZvVGFibGVOYW1lIH0pKQogewogICAgIHsKICAgICAgICAg
TG9ja2VyIGxvY2tlciB7IGd1aWRMb2NrIH07CkBAIC02ODcsNyArNjg3LDcgQEAgdm9pZCBEYXRh
YmFzZTo6cnVuVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2Fs
bGJhY2ssIFJlZlB0cjwKICAgICBpZiAoIW1faXNUcmFuc2FjdGlvblF1ZXVlRW5hYmxlZCkgewog
ICAgICAgICBpZiAoZXJyb3JDYWxsYmFjaykgewogICAgICAgICAgICAgbV9kb2N1bWVudC0+ZXZl
bnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFtlcnJvckNhbGxiYWNr
ID0gUmVmIHsgKmVycm9yQ2FsbGJhY2sgfV0oKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JDYWxs
YmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIs
ICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9zZWQiKSk7CisgICAgICAgICAgICAgICAgZXJyb3JDYWxs
YmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIs
ICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9zZWQiX3MpKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcAppbmRleCBlMmRjNzA2ZjVkOTY1
ZDJkN2E1Y2JhODcyMTY2Y2Y1M2E5ODA4YTFmLi5kY2Y5ZWI5NTJkZGQwM2I0YjBkN2FkODZhNmNj
ZDVmYjQzZTNkY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCkBAIC02Miw2NCArNjIsNjQgQEAgdm9p
ZCBEYXRhYmFzZUF1dGhvcml6ZXI6OmFkZEFsbG93ZWRGdW5jdGlvbnMoKQogewogICAgIC8vIFNR
TGl0ZSBmdW5jdGlvbnMgdXNlZCB0byBoZWxwIGltcGxlbWVudCBzb21lIG9wZXJhdGlvbnMKICAg
ICAvLyBBTFRFUiBUQUJMRSBoZWxwZXJzCi0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3Fs
aXRlX3JlbmFtZV90YWJsZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9y
ZW5hbWVfdHJpZ2dlciIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5h
bWVfdGFibGUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVf
dHJpZ2dlciJfcyk7CiAgICAgLy8gR0xPQiBoZWxwZXJzCi0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgiZ2xvYiIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiX3MpOwogCiAg
ICAgLy8gU1FMaXRlIGNvcmUgZnVuY3Rpb25zCi0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
YWJzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY2hhbmdlcyIpOwotICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoImNvYWxlc2NlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgiZ2xvYiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImlmbnVsbCIpOwotICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoImhleCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
Imxhc3RfaW5zZXJ0X3Jvd2lkIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGVuZ3Ro
Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGlrZSIpOwotICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoImxvd2VyIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibHRyaW0i
KTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtYXgiKTsKLSAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJtaW4iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJudWxsaWYiKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJxdW90ZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInJlcGxhY2UiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyb3VuZCIp
OwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJ0cmltIik7Ci0gICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgic291bmRleCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0
ZV9zb3VyY2VfaWQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfdmVyc2lv
biIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1YnN0ciIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInRvdGFsX2NoYW5nZXMiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJ0cmltIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidHlwZW9mIik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidXBwZXIiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJ6ZXJvYmxvYiIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImFicyJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY2hhbmdlcyJfcyk7CisgICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgiY29hbGVzY2UiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImds
b2IiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImlmbnVsbCJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgiaGV4Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJsYXN0X2luc2VydF9yb3dpZCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGVu
Z3RoIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsaWtlIl9zKTsKKyAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJsb3dlciJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgibHRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1heCJfcyk7CisgICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWluIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJudWxsaWYiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInF1b3RlIl9zKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZXBsYWNlIl9zKTsKKyAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJyb3VuZCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicnRy
aW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNvdW5kZXgiX3MpOworICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9zb3VyY2VfaWQiX3MpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV92ZXJzaW9uIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJzdWJzdHIiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFsX2No
YW5nZXMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRyaW0iX3MpOworICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoInR5cGVvZiJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgidXBwZXIiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInplcm9ibG9iIl9z
KTsKIAogICAgIC8vIFNRTGl0ZSBkYXRlIGFuZCB0aW1lIGZ1bmN0aW9ucwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImRhdGUiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0aW1l
Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZGF0ZXRpbWUiKTsKLSAgICBtX2FsbG93
ZWRGdW5jdGlvbnMuYWRkKCJqdWxpYW5kYXkiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJzdHJmdGltZSIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGUiX3MpOworICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRpbWUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImRhdGV0aW1lIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJqdWxpYW5k
YXkiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN0cmZ0aW1lIl9zKTsKIAogICAg
IC8vIFNRTGl0ZSBhZ2dyZWdhdGUgZnVuY3Rpb25zCiAgICAgLy8gbWF4KCkgYW5kIG1pbigpIGFy
ZSBhbHJlYWR5IGluIHRoZSBsaXN0Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiYXZnIik7
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY291bnQiKTsKLSAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJncm91cF9jb25jYXQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJz
dW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0b3RhbCIpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImF2ZyJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY291
bnQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImdyb3VwX2NvbmNhdCJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3VtIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJ0b3RhbCJfcyk7CiAKICAgICAvLyBTUUxpdGUgRlRTIGZ1bmN0aW9ucwotICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1hdGNoIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgic25pcHBldCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm9mZnNldHMiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJvcHRpbWl6ZSIpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoIm1hdGNoIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzbmlwcGV0
Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJvZmZzZXRzIl9zKTsKKyAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJvcHRpbWl6ZSJfcyk7CiAKICAgICAvLyBTUUxpdGUgSUNVIGZ1
bmN0aW9ucwogICAgIC8vIGxpa2UoKSwgbG93ZXIoKSBhbmQgdXBwZXIoKSBhcmUgYWxyZWFkeSBp
biB0aGUgbGlzdAotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJlZ2V4cCIpOworICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJlZ2V4cCJfcyk7CiB9CiAKIGludCBEYXRhYmFzZUF1dGhv
cml6ZXI6OmNyZWF0ZVRhYmxlKGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmlu
ZGV4IDllYjM5MWM2ZDBiZDZkNDg2MDUxMGVkYWI3Mjg5MzM5OTUwNmJjNzIuLmE0ZjBjNzQ0NTIz
NzFhNGRiZDhkZjA4NjA2OWVjZDEwYWJhMzIyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTkxLDcgKzkx
LDcgQEAgRGF0YWJhc2VUcmFja2VyOjpEYXRhYmFzZVRyYWNrZXIoY29uc3QgU3RyaW5nJiBkYXRh
YmFzZVBhdGgpCiAKIFN0cmluZyBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJEYXRhYmFzZVBhdGgo
KSBjb25zdAogewotICAgIHJldHVybiBTUUxpdGVGaWxlU3lzdGVtOjphcHBlbmREYXRhYmFzZUZp
bGVOYW1lVG9QYXRoKG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzb2xhdGVkQ29weSgpLCAiRGF0
YWJhc2VzLmRiIik7CisgICAgcmV0dXJuIFNRTGl0ZUZpbGVTeXN0ZW06OmFwcGVuZERhdGFiYXNl
RmlsZU5hbWVUb1BhdGgobV9kYXRhYmFzZURpcmVjdG9yeVBhdGguaXNvbGF0ZWRDb3B5KCksICJE
YXRhYmFzZXMuZGIiX3MpOwogfQogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6b3BlblRyYWNrZXJE
YXRhYmFzZShUcmFja2VyQ3JlYXRpb25BY3Rpb24gY3JlYXRlQWN0aW9uKQpAQCAtMTE4LDE0ICsx
MTgsMTQgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om9wZW5UcmFja2VyRGF0YWJhc2UoVHJhY2tl
ckNyZWF0aW9uQWN0aW9uIGNyZWF0ZUFjdGlvbikKICAgICB9CiAgICAgbV9kYXRhYmFzZS5kaXNh
YmxlVGhyZWFkaW5nQ2hlY2tzKCk7CiAKLSAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlzdHMo
Ik9yaWdpbnMiKSkgeworICAgIGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiT3JpZ2lucyJf
cykpIHsKICAgICAgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFC
TEUgT3JpZ2lucyAob3JpZ2luIFRFWFQgVU5JUVVFIE9OIENPTkZMSUNUIFJFUExBQ0UsIHF1b3Rh
IElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCk7Il9zKSkgewogICAgICAgICAgICAg
Ly8gRklYTUU6IGFuZCBoZXJlCiAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVh
dGUgT3JpZ2lucyB0YWJsZSIpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFtX2RhdGFi
YXNlLnRhYmxlRXhpc3RzKCJEYXRhYmFzZXMiKSkgeworICAgIGlmICghbV9kYXRhYmFzZS50YWJs
ZUV4aXN0cygiRGF0YWJhc2VzIl9zKSkgewogICAgICAgICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0
ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBEYXRhYmFzZXMgKGd1aWQgSU5URUdFUiBQUklNQVJZIEtF
WSBBVVRPSU5DUkVNRU5ULCBvcmlnaW4gVEVYVCwgbmFtZSBURVhULCBkaXNwbGF5TmFtZSBURVhU
LCBlc3RpbWF0ZWRTaXplIElOVEVHRVIsIHBhdGggVEVYVCk7Il9zKSkgewogICAgICAgICAgICAg
Ly8gRklYTUU6IGFuZCBoZXJlCiAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVh
dGUgRGF0YWJhc2VzIHRhYmxlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKaW5kZXggYjc4MDU4MmRjOTc5NTkyMzM0NjNmOGZk
OGFjMTlkMDM5YWViODgyMC4uZDkxZDAzMTQ1OTE1YjIxYTM1N2U4NWYwNWNjYmE0MGU1ZGJlYTEx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3Rh
dGVtZW50LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVjdXRl
KERhdGFiYXNlJiBkYikKICAgICAvLyBJZiB0aGlzIGlzIHRoZSBjYXNlLCB0aGV5IG1pZ2h0IGJl
IHRyeWluZyB0byBkbyBzb21ldGhpbmcgZmlzaHkgb3IgbWFsaWNpb3VzCiAgICAgaWYgKHN0YXRl
bWVudC0+YmluZFBhcmFtZXRlckNvdW50KCkgIT0gbV9hcmd1bWVudHMuc2l6ZSgpKSB7CiAgICAg
ICAgIExPRyhTdG9yYWdlQVBJLCAiQmluZCBwYXJhbWV0ZXIgY291bnQgZG9lc24ndCBtYXRjaCBu
dW1iZXIgb2YgcXVlc3Rpb24gbWFya3MiKTsKLSAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OlNZTlRBWF9FUlIsICJudW1iZXIgb2YgJz8ncyBpbiBzdGF0ZW1lbnQg
c3RyaW5nIGRvZXMgbm90IG1hdGNoIGFyZ3VtZW50IGNvdW50Iik7CisgICAgICAgIG1fZXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpTWU5UQVhfRVJSLCAibnVtYmVyIG9mICc/J3Mg
aW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5vdCBtYXRjaCBhcmd1bWVudCBjb3VudCJfcyk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTIzNCwxOSArMjM0LDE5IEBAIGJvb2wg
U1FMU3RhdGVtZW50OjpwZXJmb3JtQ2FsbGJhY2soU1FMVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9u
KQogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNldERhdGFiYXNlRGVsZXRlZEVycm9yKCkKIHsKICAgICBB
U1NFUlQoIW1fZXJyb3IgJiYgIW1fcmVzdWx0U2V0KTsKLSAgICBtX2Vycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gZXhlY3V0ZSBzdGF0ZW1l
bnQsIGJlY2F1c2UgdGhlIHVzZXIgZGVsZXRlZCB0aGUgZGF0YWJhc2UiKTsKKyAgICBtX2Vycm9y
ID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gZXhl
Y3V0ZSBzdGF0ZW1lbnQsIGJlY2F1c2UgdGhlIHVzZXIgZGVsZXRlZCB0aGUgZGF0YWJhc2UiX3Mp
OwogfQogCiB2b2lkIFNRTFN0YXRlbWVudDo6c2V0VmVyc2lvbk1pc21hdGNoZWRFcnJvcigpCiB7
CiAgICAgQVNTRVJUKCFtX2Vycm9yICYmICFtX3Jlc3VsdFNldCk7Ci0gICAgbV9lcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9m
IHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOwor
ICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1
cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBk
byBub3QgbWF0Y2giX3MpOwogfQogCiB2b2lkIFNRTFN0YXRlbWVudDo6c2V0RmFpbHVyZUR1ZVRv
UXVvdGEoKQogewogICAgIEFTU0VSVCghbV9lcnJvciAmJiAhbV9yZXN1bHRTZXQpOwotICAgIG1f
ZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpRVU9UQV9FUlIsICJ0aGVyZSB3YXMg
bm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEg
d2FzIHJlYWNoZWQgYW5kIHRoZSB1c2VyIGRlY2xpbmVkIHRvIGFsbG93IG1vcmUgc3BhY2UiKTsK
KyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6UVVPVEFfRVJSLCAidGhl
cmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UsIG9yIHRoZSBzdG9yYWdl
IHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0aGUgdXNlciBkZWNsaW5lZCB0byBhbGxvdyBtb3JlIHNw
YWNlIl9zKTsKIH0KIAogdm9pZCBTUUxTdGF0ZW1lbnQ6OmNsZWFyRmFpbHVyZUR1ZVRvUXVvdGEo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5z
YWN0aW9uLmNwcAppbmRleCA2ODMyYWNhOTBlZDZkOWViODFhYjlmMzU1OTU5M2JmNDY0MzBmZDBm
Li5lOWFkNzlmMzI4MmU4NDU5ZGQ3ZDMzZWZmMDJiNmI1NzlmMDI2YzBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcApA
QCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmNhbGxFcnJvckNhbGxiYWNr
RHVlVG9JbnRlcnJ1cHRpb24oKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2RhdGFiYXNlLT5k
b2N1bWVudCgpLmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBb
ZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFjayldKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OkRBVEFCQVNFX0VSUiwgInRoZSBkYXRhYmFzZSB3YXMgY2xvc2VkIikpOworICAgICAgICBlcnJv
ckNhbGxiYWNrLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFT
RV9FUlIsICJ0aGUgZGF0YWJhc2Ugd2FzIGNsb3NlZCJfcykpOwogICAgIH0pOwogfQogCkBAIC0y
MzYsNyArMjM2LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJl
ZmxpZ2h0KCkKIAogICAgIC8vIElmIHRoZSBkYXRhYmFzZSB3YXMgZGVsZXRlZCwganVtcCB0byB0
aGUgZXJyb3IgY2FsbGJhY2sKICAgICBpZiAobV9kYXRhYmFzZS0+ZGVsZXRlZCgpKSB7Ci0gICAg
ICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05P
V05fRVJSLCAidW5hYmxlIHRvIG9wZW4gYSB0cmFuc2FjdGlvbiwgYmVjYXVzZSB0aGUgdXNlciBk
ZWxldGVkIHRoZSBkYXRhYmFzZSIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxF
cnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJh
bnNhY3Rpb24sIGJlY2F1c2UgdGhlIHVzZXIgZGVsZXRlZCB0aGUgZGF0YWJhc2UiX3MpOwogCiAg
ICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjkw
LDcgKzI5MCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZs
aWdodCgpCiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKICAgICAgICAg
bV90cmFuc2FjdGlvbkVycm9yID0gbV93cmFwcGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAo
IW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1
cnJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcHJlZmxpZ2h0Iik7CisgICAgICAgICAgICBtX3RyYW5z
YWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVu
a25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHByZWZsaWdodCJfcyk7CiAK
ICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcigpOwogICAgICAgICByZXR1cm47CkBAIC0z
OTUsNyArMzk1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclRyYW5zYWN0aW9uQ2Fs
bGJhY2soKQogCiAgICAgLy8gU3BlYyA0LjMuMiA1OiBJZiB0aGUgdHJhbnNhY3Rpb24gY2FsbGJh
Y2sgd2FzIG51bGwgb3IgcmFpc2VkIGFuIGV4Y2VwdGlvbiwganVtcCB0byB0aGUgZXJyb3IgY2Fs
bGJhY2sKICAgICBpZiAoc2hvdWxkRGVsaXZlckVycm9yQ2FsbGJhY2spIHsKLSAgICAgICAgbV90
cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIs
ICJ0aGUgU1FMVHJhbnNhY3Rpb25DYWxsYmFjayB3YXMgbnVsbCBvciB0aHJldyBhbiBleGNlcHRp
b24iKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgU1FMVHJhbnNhY3Rpb25DYWxsYmFjayB3YXMgbnVsbCBv
ciB0aHJldyBhbiBleGNlcHRpb24iX3MpOwogICAgICAgICByZXR1cm4gZGVsaXZlclRyYW5zYWN0
aW9uRXJyb3JDYWxsYmFjaygpOwogICAgIH0KIApAQCAtNDMyLDcgKzQzMiw3IEBAIHZvaWQgU1FM
VHJhbnNhY3Rpb246OmRlbGl2ZXJTdGF0ZW1lbnRDYWxsYmFjaygpCiAgICAgbV9leGVjdXRlU3Fs
QWxsb3dlZCA9IGZhbHNlOwogCiAgICAgaWYgKHJlc3VsdCkgewotICAgICAgICBtX3RyYW5zYWN0
aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInRoZSBz
dGF0ZW1lbnQgY2FsbGJhY2sgcmFpc2VkIGFuIGV4Y2VwdGlvbiBvciBzdGF0ZW1lbnQgZXJyb3Ig
Y2FsbGJhY2sgZGlkIG5vdCByZXR1cm4gZmFsc2UiKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgc3RhdGVt
ZW50IGNhbGxiYWNrIHJhaXNlZCBhbiBleGNlcHRpb24gb3Igc3RhdGVtZW50IGVycm9yIGNhbGxi
YWNrIGRpZCBub3QgcmV0dXJuIGZhbHNlIl9zKTsKIAogICAgICAgICBpZiAobV9lcnJvckNhbGxi
YWNrV3JhcHBlci5oYXNDYWxsYmFjaygpKQogICAgICAgICAgICAgcmV0dXJuIGRlbGl2ZXJUcmFu
c2FjdGlvbkVycm9yQ2FsbGJhY2soKTsKQEAgLTU2OCw3ICs1NjgsNyBAQCB2b2lkIFNRTFRyYW5z
YWN0aW9uOjpoYW5kbGVDdXJyZW50U3RhdGVtZW50RXJyb3IoKQogCiAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gbV9jdXJyZW50U3RhdGVtZW50LT5zcWxFcnJvcigpOwogICAgIGlmICghbV90cmFu
c2FjdGlvbkVycm9yKQotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgc3RhdGVtZW50IGZhaWxlZCB0byBleGVj
dXRlIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBzdGF0ZW1lbnQgZmFpbGVkIHRvIGV4ZWN1dGUiX3Mp
OwogCiAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcigpOwogfQpAQCAtNTk0LDcgKzU5NCw3IEBA
IHZvaWQgU1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21taXQoKQogICAgIGlmIChtX3dy
YXBwZXIgJiYgIW1fd3JhcHBlci0+cGVyZm9ybVBvc3RmbGlnaHQoKnRoaXMpKSB7CiAgICAgICAg
IG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsKICAgICAgICAgaWYg
KCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2Nj
dXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBvc3RmbGlnaHQiKTsKKyAgICAgICAgICAgIG1fdHJh
bnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAi
dW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcG9zdGZsaWdodCJfcyk7
CiAKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcigpOwogICAgICAgICByZXR1cm47CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4
IGY5NzNlNWJkM2I5MGUzYTRjYzczNTIxNGQ5YTMxOWFkZjkyMWU0YjYuLjY5ZDJlNTQ3MzVhMzA2
NDYzODRjN2VmYjdlYTY0OTg3ZWMzNDAyY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0xMzcsOSArMTM3LDkgQEAgc3RhdGljIHVu
c2lnbmVkIHNhdHVyYXRlQWRkKHVuc2lnbmVkIGEsIHVuc2lnbmVkIGIpCiAgICAgcmV0dXJuIGEg
KyBiOwogfQogCi1jb25zdCBjaGFyKiBXZWJTb2NrZXQ6OnN1YnByb3RvY29sU2VwYXJhdG9yKCkK
K0FTQ0lJTGl0ZXJhbCBXZWJTb2NrZXQ6OnN1YnByb3RvY29sU2VwYXJhdG9yKCkKIHsKLSAgICBy
ZXR1cm4gIiwgIjsKKyAgICByZXR1cm4gIiwgIl9zOwogfQogCiBXZWJTb2NrZXQ6OldlYlNvY2tl
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQpAQCAtNDMwLDcgKzQzMCw3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IFdlYlNvY2tldDo6Y2xvc2Uoc3RkOjpvcHRpb25hbDx1bnNpZ25lZCBz
aG9ydD4gb3B0aW9uYWxDb2RlLCBjCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgaWYgKG1fc3Rh
dGUgPT0gQ09OTkVDVElORykgewogICAgICAgICBtX3N0YXRlID0gQ0xPU0lORzsKLSAgICAgICAg
bV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGJlZm9yZSB0aGUgY29ubmVjdGlv
biBpcyBlc3RhYmxpc2hlZC4iKTsKKyAgICAgICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQg
aXMgY2xvc2VkIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZC4iX3MpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KICAgICBtX3N0YXRlID0gQ0xPU0lORzsKQEAgLTUyMCw3
ICs1MjAsNyBAQCB2b2lkIFdlYlNvY2tldDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJl
YXNvbikKIAogICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0Zvcndh
cmRDYWNoZSkgewogICAgICAgICAvLyBUaGlzIHdpbGwgY2F1c2UgZGlkQ2xvc2UoKSB0byBiZSBj
YWxsZWQuCi0gICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgiV2ViU29ja2V0IGlzIGNsb3NlZCBkdWUg
dG8gc3VzcGVuc2lvbi4iKTsKKyAgICAgICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMg
Y2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAppbmRleCBl
Njg2M2U0NmRhMDdkMThiNmQ5MTVlYjE1YzI0Y2RmMjJkYjZhNmNiLi5lZmZjMDY4YmJmNjI2NWU3
YTNiMTU1Yzk0ZmY0NDhlNzY2ZDFlMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC01MSw3ICs1MSw3IEBAIGNsYXNzIFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOwogY2xhc3MgV2ViU29ja2V0IGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8V2ViU29ja2V0PiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBB
Y3RpdmVET01PYmplY3QsIHByaXZhdGUgV2ViU29ja2V0Q2hhbm5lbENsaWVudCB7CiAgICAgV1RG
X01BS0VfSVNPX0FMTE9DQVRFRChXZWJTb2NrZXQpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBzdWJwcm90b2NvbFNlcGFyYXRvcigpOworICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwg
c3VicHJvdG9jb2xTZXBhcmF0b3IoKTsKIAogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V2Vi
U29ja2V0Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVy
bCk7CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXZWJTb2NrZXQ+PiBjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHByb3Rv
Y29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcAppbmRleCBkZjU2MzU5YzZmZGEwNTIxMDNkOTdiM2Q4YTVkMTA4NDkx
OTc1ZjViLi42OWI4ZTJhNzc1NGE4OTc4YzE5NTQ4NTFmZjI2Yzk5NjE1MmY1ZGMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwCkBAIC0yODcsNyArMjg3LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRPcGVu
U29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlKQogICAgICAgICBjb29raWVS
ZXF1ZXN0SGVhZGVyRmllbGRQcm94eSA9IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZp
ZWxkUHJveHkoKm1fZG9jdW1lbnQsIG1faGFuZHNoYWtlLT5odHRwVVJMRm9yQXV0aGVudGljYXRp
b25BbmRDb29raWVzKCkpOwogICAgIGhhbmRsZS5zZW5kSGFuZHNoYWtlKFdURk1vdmUoaGFuZHNo
YWtlTWVzc2FnZSksIFdURk1vdmUoY29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkpLCBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nlc3MsIGJvb2wgZGlk
QWNjZXNzU2VjdXJlQ29va2llcykgewogICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAg
ICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgaGFuZHNoYWtlLiIpOworICAgICAgICAg
ICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGhhbmRzaGFrZS4iX3MpOwogCiAgICAg
ICAgIGlmIChkaWRBY2Nlc3NTZWN1cmVDb29raWVzICYmIG1fZG9jdW1lbnQpCiAgICAgICAgICAg
ICBtX2RvY3VtZW50LT5zZXRTZWN1cmVDb29raWVzQWNjZXNzZWQoKTsKQEAgLTM0MCw3ICszNDAs
NyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVTb2NrZXRTdHJlYW1EYXRhKFNv
Y2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlLCBjbwogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFh
cHBlbmRUb0J1ZmZlcihkYXRhLCBsZW5ndGgpKSB7CiAgICAgICAgIG1fc2hvdWxkRGlzY2FyZFJl
Y2VpdmVkRGF0YSA9IHRydWU7Ci0gICAgICAgIGZhaWwoIlJhbiBvdXQgb2YgbWVtb3J5IHdoaWxl
IHJlY2VpdmluZyBXZWJTb2NrZXQgZGF0YS4iKTsKKyAgICAgICAgZmFpbCgiUmFuIG91dCBvZiBt
ZW1vcnkgd2hpbGUgcmVjZWl2aW5nIFdlYlNvY2tldCBkYXRhLiJfcyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgd2hpbGUgKCFtX3N1c3BlbmRlZCAmJiBtX2NsaWVudCAmJiAhbV9idWZm
ZXIuaXNFbXB0eSgpKSB7CkBAIC01NzEsNyArNTcxLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVs
Ojpwcm9jZXNzRnJhbWUoKQogICAgIH0KIAogICAgIGlmIChmcmFtZS5tYXNrZWQpIHsKLSAgICAg
ICAgZmFpbCgiQSBzZXJ2ZXIgbXVzdCBub3QgbWFzayBhbnkgZnJhbWVzIHRoYXQgaXQgc2VuZHMg
dG8gdGhlIGNsaWVudC4iKTsKKyAgICAgICAgZmFpbCgiQSBzZXJ2ZXIgbXVzdCBub3QgbWFzayBh
bnkgZnJhbWVzIHRoYXQgaXQgc2VuZHMgdG8gdGhlIGNsaWVudC4iX3MpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCkBAIC01OTEsNyArNTkxLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFu
bmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIC8vIEEgbmV3IGRhdGEgZnJhbWUgaXMgcmVjZWl2ZWQg
YmVmb3JlIHRoZSBwcmV2aW91cyBjb250aW51b3VzIGZyYW1lIGZpbmlzaGVzLgogICAgIC8vIE5v
dGUgdGhhdCBjb250cm9sIGZyYW1lcyBhcmUgYWxsb3dlZCB0byBjb21lIGluIHRoZSBtaWRkbGUg
b2YgY29udGludW91cyBmcmFtZXMuCiAgICAgaWYgKG1faGFzQ29udGludW91c0ZyYW1lICYmIGZy
YW1lLm9wQ29kZSAhPSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ29udGludWF0aW9uICYmICFXZWJT
b2NrZXRGcmFtZTo6aXNDb250cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkpIHsKLSAgICAgICAgZmFp
bCgiUmVjZWl2ZWQgbmV3IGRhdGEgZnJhbWUgYnV0IHByZXZpb3VzIGNvbnRpbnVvdXMgZnJhbWUg
aXMgdW5maW5pc2hlZC4iKTsKKyAgICAgICAgZmFpbCgiUmVjZWl2ZWQgbmV3IGRhdGEgZnJhbWUg
YnV0IHByZXZpb3VzIGNvbnRpbnVvdXMgZnJhbWUgaXMgdW5maW5pc2hlZC4iX3MpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02MDEsNyArNjAxLDcgQEAgYm9vbCBXZWJTb2Nr
ZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIGNhc2UgV2ViU29ja2V0RnJhbWU6Ok9wQ29k
ZUNvbnRpbnVhdGlvbjoKICAgICAgICAgLy8gQW4gdW5leHBlY3RlZCBjb250aW51YXRpb24gZnJh
bWUgaXMgcmVjZWl2ZWQgd2l0aG91dCBhbnkgbGVhZGluZyBmcmFtZS4KICAgICAgICAgaWYgKCFt
X2hhc0NvbnRpbnVvdXNGcmFtZSkgewotICAgICAgICAgICAgZmFpbCgiUmVjZWl2ZWQgdW5leHBl
Y3RlZCBjb250aW51YXRpb24gZnJhbWUuIik7CisgICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCB1
bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBmcmFtZS4iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICB9CiAgICAgICAgIG1fY29udGludW91c0ZyYW1lRGF0YS5hcHBlbmQoZnJh
bWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCk7CkBAIC02MjAsNyArNjIwLDcgQEAgYm9v
bCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAg
ICAgICAgaWYgKG1lc3NhZ2UuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgIGZhaWwoIkNv
dWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiIpOworICAgICAgICAgICAgICAg
ICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iX3MpOwog
ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJl
Y2VpdmVNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmICht
X2NvbnRpbnVvdXNGcmFtZU9wQ29kZSA9PSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQmluYXJ5KQpA
QCAtNjM3LDcgKzYzNyw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkK
ICAgICAgICAgICAgICAgICBtZXNzYWdlID0gZW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAgIHNr
aXBCdWZmZXIoZnJhbWVFbmQgLSBtX2J1ZmZlci5kYXRhKCkpOwogICAgICAgICAgICAgaWYgKG1l
c3NhZ2UuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBh
IHRleHQgZnJhbWUgYXMgVVRGLTguIik7CisgICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90
IGRlY29kZSBhIHRleHQgZnJhbWUgYXMgVVRGLTguIl9zKTsKICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdl
KSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC02NjksMTMgKzY2OSwxMyBAQCBib29sIFdlYlNvY2tl
dENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0g
Q2xvc2VFdmVudENvZGVOb1N0YXR1c1JjdmQ7CiAgICAgICAgIGVsc2UgaWYgKGZyYW1lLnBheWxv
YWRMZW5ndGggPT0gMSkgewogICAgICAgICAgICAgbV9jbG9zZUV2ZW50Q29kZSA9IENsb3NlRXZl
bnRDb2RlQWJub3JtYWxDbG9zdXJlOwotICAgICAgICAgICAgZmFpbCgiUmVjZWl2ZWQgYSBicm9r
ZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBhbiBpbnZhbGlkIHNpemUgYm9keS4iKTsKKyAgICAg
ICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1lIGNvbnRhaW5pbmcgYW4g
aW52YWxpZCBzaXplIGJvZHkuIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fY2xvc2VFdmVudENvZGUgPSBmcmFtZS5wYXlsb2Fk
WzBdIDw8IDggfCBmcmFtZS5wYXlsb2FkWzFdOwogICAgICAgICAgICAgaWYgKG1fY2xvc2VFdmVu
dENvZGUgPT0gQ2xvc2VFdmVudENvZGVOb1N0YXR1c1JjdmQgfHwgbV9jbG9zZUV2ZW50Q29kZSA9
PSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZSB8fCBtX2Nsb3NlRXZlbnRDb2RlID09IENs
b3NlRXZlbnRDb2RlVExTSGFuZHNoYWtlKSB7CiAgICAgICAgICAgICAgICAgbV9jbG9zZUV2ZW50
Q29kZSA9IENsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlOwotICAgICAgICAgICAgICAgIGZh
aWwoIlJlY2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1lIGNvbnRhaW5pbmcgYSByZXNlcnZlZCBz
dGF0dXMgY29kZS4iKTsKKyAgICAgICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBj
bG9zZSBmcmFtZSBjb250YWluaW5nIGEgcmVzZXJ2ZWQgc3RhdHVzIGNvZGUuIl9zKTsKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc2
MSw3ICs3NjEsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1l
UXVldWUoKQogICAgICAgICBjYXNlIFF1ZXVlZEZyYW1lVHlwZVN0cmluZzogewogICAgICAgICAg
ICAgc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIGZyYW1lLT5zdHJpbmdEYXRhLmRhdGFBc1VJbnQ4
UHRyKCksIGZyYW1lLT5zdHJpbmdEYXRhLmxlbmd0aCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nlc3MpIHsKICAgICAgICAgICAgICAgICBpZiAoIXN1
Y2Nlc3MpCi0gICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tl
dCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2Vi
U29ja2V0IGZyYW1lLiJfcyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CkBAIC03NjksNyArNzY5LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpwcm9j
ZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgY2FzZSBRdWV1ZWRGcmFtZVR5cGVWZWN0
b3I6CiAgICAgICAgICAgICBzZW5kRnJhbWUoZnJhbWUtPm9wQ29kZSwgZnJhbWUtPnZlY3RvckRh
dGEuZGF0YSgpLCBmcmFtZS0+dmVjdG9yRGF0YS5zaXplKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gUmVmIHsgKnRoaXMgfV0gKGJvb2wgc3VjY2VzcykgewogICAgICAgICAgICAgICAgIGlmICgh
c3VjY2VzcykKLSAgICAgICAgICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29j
a2V0IGZyYW1lLiIpOworICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBX
ZWJTb2NrZXQgZnJhbWUuIl9zKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgYnJlYWs7
CiAKQEAgLTc5Niw3ICs3OTYsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRn
b2luZ0ZyYW1lUXVldWUoKQogICAgICAgICAgICAgICAgIG1fYmxvYkxvYWRlclN0YXR1cyA9IEJs
b2JMb2FkZXJOb3RTdGFydGVkOwogICAgICAgICAgICAgICAgIHNlbmRGcmFtZShmcmFtZS0+b3BD
b2RlLCBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocmVzdWx0LT5kYXRhKCkpLCByZXN1bHQt
PmJ5dGVMZW5ndGgoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9v
bCBzdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBm
cmFtZS4iX3MpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwCmluZGV4IDAxZmRmZTAyOWU0NmZj
ZTg2MmQ1ZTYxNmNmYzQ5NWQ2OWNjNjE0NjUuLmE4N2ZlNWQ3YWFlNWU4MGQzOTc1NDk5YzRjNTZh
NmUwMTdkZjExZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAKQEAgLTc2LDcgKzc2LDcgQEAg
Ym9vbCBXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU6OnByb2Nlc3NSZXNwb25zZShjb25z
dCBIYXNoTWFwPFN0cmluZywgU3RyaW4KIAogICAgIHVuc2lnbmVkIGV4cGVjdGVkTnVtUGFyYW1l
dGVycyA9IDA7CiAgICAgaW50IHdpbmRvd0JpdHMgPSAxNTsKLSAgICBhdXRvIHBhcmFtZXRlciA9
IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibWF4X3dpbmRvd19iaXRzIik7CisgICAgYXV0byBwYXJh
bWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJzLmZpbmQoIm1heF93aW5kb3dfYml0cyJfcyk7CiAgICAg
aWYgKHBhcmFtZXRlciAhPSBzZXJ2ZXJQYXJhbWV0ZXJzLmVuZCgpKSB7CiAgICAgICAgIHdpbmRv
d0JpdHMgPSBwYXJzZUludGVnZXJBbGxvd2luZ1RyYWlsaW5nSnVuazxpbnQ+KHBhcmFtZXRlci0+
dmFsdWUpLnZhbHVlX29yKDApOwogICAgICAgICBpZiAod2luZG93Qml0cyA8IDggfHwgd2luZG93
Qml0cyA+IDE1KSB7CkBAIC04Nyw3ICs4Nyw3IEBAIGJvb2wgV2ViU29ja2V0RXh0ZW5zaW9uRGVm
bGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9uc2UoY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluCiAg
ICAgfQogCiAgICAgV2ViU29ja2V0RGVmbGF0ZXI6OkNvbnRleHRUYWtlT3Zlck1vZGUgbW9kZSA9
IFdlYlNvY2tldERlZmxhdGVyOjpUYWtlT3ZlckNvbnRleHQ7Ci0gICAgcGFyYW1ldGVyID0gc2Vy
dmVyUGFyYW1ldGVycy5maW5kKCJub19jb250ZXh0X3Rha2VvdmVyIik7CisgICAgcGFyYW1ldGVy
ID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJub19jb250ZXh0X3Rha2VvdmVyIl9zKTsKICAgICBp
ZiAocGFyYW1ldGVyICE9IHNlcnZlclBhcmFtZXRlcnMuZW5kKCkpIHsKICAgICAgICAgaWYgKCFw
YXJhbWV0ZXItPnZhbHVlLmlzTnVsbCgpKSB7CiAgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24g
PSAiUmVjZWl2ZWQgaW52YWxpZCBub19jb250ZXh0X3Rha2VvdmVyIHBhcmFtZXRlciJfczsKQEAg
LTE2MSw3ICsxNjEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGVmbGF0ZVJlc3VsdEhvbGRlcj4gV2Vi
U29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVmbGF0ZShXZWJTb2NrZXRGcgogICAgIGlmICghZW5hYmxl
ZCgpIHx8ICFXZWJTb2NrZXRGcmFtZTo6aXNOb25Db250cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkg
fHwgIWZyYW1lLnBheWxvYWRMZW5ndGgpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgaWYg
KCFtX2RlZmxhdGVyLT5hZGRCeXRlcyhmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3Ro
KSB8fCAhbV9kZWZsYXRlci0+ZmluaXNoKCkpIHsKLSAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWls
ZWQgdG8gY29tcHJlc3MgZnJhbWUiKTsKKyAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8g
Y29tcHJlc3MgZnJhbWUiX3MpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBm
cmFtZS5jb21wcmVzcyA9IHRydWU7CkBAIC0xODAsMTcgKzE4MCwxNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8SW5mbGF0ZVJlc3VsdEhvbGRlcj4gV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6aW5mbGF0ZShX
ZWJTb2NrZXRGcgogewogICAgIGF1dG8gcmVzdWx0ID0gbWFrZVVuaXF1ZTxJbmZsYXRlUmVzdWx0
SG9sZGVyPigqdGhpcyk7CiAgICAgaWYgKCFlbmFibGVkKCkgJiYgZnJhbWUuY29tcHJlc3MpIHsK
LSAgICAgICAgcmVzdWx0LT5mYWlsKCJDb21wcmVzc2VkIGJpdCBtdXN0IGJlIDAgaWYgbm8gbmVn
b3RpYXRlZCBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiIpOworICAgICAgICByZXN1bHQtPmZhaWwo
IkNvbXByZXNzZWQgYml0IG11c3QgYmUgMCBpZiBubyBuZWdvdGlhdGVkIGRlZmxhdGUtZnJhbWUg
ZXh0ZW5zaW9uIl9zKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgaWYgKCFm
cmFtZS5jb21wcmVzcykKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICBpZiAoIVdlYlNvY2tl
dEZyYW1lOjppc05vbkNvbnRyb2xPcENvZGUoZnJhbWUub3BDb2RlKSkgewotICAgICAgICByZXN1
bHQtPmZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgY29tcHJlc3NlZCBmcmFtZSIpOworICAgICAg
ICByZXN1bHQtPmZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgY29tcHJlc3NlZCBmcmFtZSJfcyk7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIGlmICghbV9pbmZsYXRlci0+YWRk
Qnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCkgfHwgIW1faW5mbGF0ZXIt
PmZpbmlzaCgpKSB7Ci0gICAgICAgIHJlc3VsdC0+ZmFpbCgiRmFpbGVkIHRvIGRlY29tcHJlc3Mg
ZnJhbWUiKTsKKyAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gZGVjb21wcmVzcyBmcmFt
ZSJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIGZyYW1lLmNvbXByZXNz
ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKaW5kZXggN2FmMmMz
NzkxYTBhZThkNmVlOWU5Mjk5ODM1N2U4NjBhZmJiNzVkZC4uZTVjZjEyNTExZWYzZTU2NGY2M2I4
NWQ4Y2IwYmIxZWU0MGM1ZGEzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNw
cApAQCAtOTMsNyArOTMsNyBAQCBib29sIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OnBy
b2Nlc3NIZWFkZXJWYWx1ZShjb25zdCBTdHJpbmcmIGhlYWRlclZhbHVlKQogCiAgICAgLy8gSWYg
d2UgZG9uJ3Qgc2VuZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyLCB0aGUgc2VydmVy
IHNob3VsZCBub3QgcmV0dXJuIHRoZSBoZWFkZXIuCiAgICAgaWYgKCFtX3Byb2Nlc3NvcnMuc2l6
ZSgpKSB7Ci0gICAgICAgIGZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgU2VjLVdlYlNvY2tldC1F
eHRlbnNpb25zIGhlYWRlciIpOworICAgICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIFNl
Yy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIiX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25EaXNw
YXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUoY29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSkKICAg
ICAgICAgU3RyaW5nIGV4dGVuc2lvblRva2VuOwogICAgICAgICBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPiBleHRlbnNpb25QYXJhbWV0ZXJzOwogICAgICAgICBpZiAoIXBhcnNlci5wYXJzZUV4dGVu
c2lvbihleHRlbnNpb25Ub2tlbiwgZXh0ZW5zaW9uUGFyYW1ldGVycykpIHsKLSAgICAgICAgICAg
IGZhaWwoIlNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIgaXMgaW52YWxpZCIpOworICAg
ICAgICAgICAgZmFpbCgiU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciBpcyBpbnZhbGlk
Il9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmNwcAppbmRl
eCBlMzllMDE5YWUwMmQ5NjcyMzhmOTY1NzJkNTNlZTIzYzM0NTZmMjMzLi5iYTFlNjI1NDkxN2Fm
ZjRmYTdiODJjNjg4NGZlYjJhYzkwNzBkM2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHAKQEAgLTgyLDExICs4MiwxMSBA
QCBXZWJTb2NrZXRGcmFtZTo6UGFyc2VGcmFtZVJlc3VsdCBXZWJTb2NrZXRGcmFtZTo6cGFyc2VG
cmFtZSh1aW50OF90KiBkYXRhLCBzaXplXwogICAgICAgICAgICAgcGF5bG9hZExlbmd0aDY0IHw9
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCpwKyspOwogICAgICAgICB9CiAgICAgICAgIGlmIChleHRl
bmRlZFBheWxvYWRMZW5ndGhTaXplID09IDIgJiYgcGF5bG9hZExlbmd0aDY0IDw9IG1heFBheWxv
YWRMZW5ndGhXaXRob3V0RXh0ZW5kZWRMZW5ndGhGaWVsZCkgewotICAgICAgICAgICAgZXJyb3JT
dHJpbmcgPSAiVGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNv
ZGUgdGhlIGxlbmd0aCI7CisgICAgICAgICAgICBlcnJvclN0cmluZyA9ICJUaGUgbWluaW1hbCBu
dW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIl9zOwogICAg
ICAgICAgICAgcmV0dXJuIEZyYW1lRXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGV4dGVu
ZGVkUGF5bG9hZExlbmd0aFNpemUgPT0gOCAmJiBwYXlsb2FkTGVuZ3RoNjQgPD0gMHhGRkZGKSB7
Ci0gICAgICAgICAgICBlcnJvclN0cmluZyA9ICJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMg
TVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIjsKKyAgICAgICAgICAgIGVycm9yU3Ry
aW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2Rl
IHRoZSBsZW5ndGgiX3M7CiAgICAgICAgICAgICByZXR1cm4gRnJhbWVFcnJvcjsKICAgICAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJX
ZWJHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExh
eWVyLmNwcAppbmRleCA4MjZkZTE2YTcwNjkxZDQyMGM1OTQ2N2RjNGE3MWRlZGZiMGI2NWM2Li5k
NzQwZmJiODgzZDI1OGFkMWU1ZGI3ZjZiYmZkMTY2NWI0NDliOTg5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwCkBAIC02NCw3ICs2NCw3
IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1
ZmZlcj4+IGNyZWF0ZU9wYXF1ZUZyYW1lYnVmCiB7CiAgICAgYXV0byBkZXZpY2UgPSBzZXNzaW9u
LmRldmljZSgpOwogICAgIGlmICghZGV2aWNlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
T3BlcmF0aW9uRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIGFuIFhS
U2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBP
cGVyYXRpb25FcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggYW4gWFJT
ZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiJfcyB9OwogCiAgICAgLy8gOS4xLiBJbml0aWFsaXplIGxh
eWVy4oCZcyBhbnRpYWxpYXMgdG8gbGF5ZXJJbml04oCZcyBhbnRpYWxpYXMgdmFsdWUuCiAgICAg
Ly8gOS4yLiBMZXQgZnJhbWVidWZmZXJTaXplIGJlIHRoZSByZWNvbW1lbmRlZCBXZWJHTCBmcmFt
ZWJ1ZmZlciByZXNvbHV0aW9uIG11bHRpcGxpZWQgYnkgbGF5ZXJJbml0J3MgZnJhbWVidWZmZXJT
Y2FsZUZhY3Rvci4KQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dW5p
cXVlX3B0cjxXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyPj4gY3JlYXRlT3BhcXVlRnJhbWVidWYKICAg
ICAvLyA5LjUuIElmIGxheWVy4oCZcyByZXNvdXJjZXMgd2VyZSB1bmFibGUgdG8gYmUgY3JlYXRl
ZCBmb3IgYW55IHJlYXNvbiwgdGhyb3cgYW4gT3BlcmF0aW9uRXJyb3IgYW5kIGFib3J0IHRoZXNl
IHN0ZXBzLgogICAgIGF1dG8gbGF5ZXJIYW5kbGUgPSBkZXZpY2UtPmNyZWF0ZUxheWVyUHJvamVj
dGlvbih3aWR0aCwgaGVpZ2h0LCBpbml0LmFscGhhKTsKICAgICBpZiAoIWxheWVySGFuZGxlKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gYWxs
b2NhdGUgWFJXZWJHTExheWVyIEdQVSByZXNvdXJjZXMuIn07CisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBPcGVyYXRpb25FcnJvciwgIlVuYWJsZSB0byBhbGxvY2F0ZSBYUldlYkdMTGF5ZXIg
R1BVIHJlc291cmNlcy4iX3MgfTsKIAogICAgIFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OkF0dHJp
YnV0ZXMgYXR0cmlidXRlcyB7CiAgICAgICAgIC5hbHBoYSA9IGluaXQuYWxwaGEsCkBAIC05Myw3
ICs5Myw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVG
cmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1ZUZyYW1lYnVmCiAKICAgICBhdXRvIGZyYW1lYnVmZmVy
ID0gV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6Y3JlYXRlKCpsYXllckhhbmRsZSwgY29udGV4dCwg
V1RGTW92ZShhdHRyaWJ1dGVzKSwgd2lkdGgsIGhlaWdodCk7CiAgICAgaWYgKCFmcmFtZWJ1ZmZl
cikKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRv
IGNyZWF0ZSBhIGZyYW1lYnVmZmVyLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9w
ZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRvIGNyZWF0ZSBhIGZyYW1lYnVmZmVyLiJfcyB9OwogICAg
IAogICAgIHJldHVybiBmcmFtZWJ1ZmZlcjsKIH0KQEAgLTEwNCw3ICsxMDQsNyBAQCBFeGNlcHRp
b25PcjxSZWY8V2ViWFJXZWJHTExheWVyPj4gV2ViWFJXZWJHTExheWVyOjpjcmVhdGUoUmVmPFdl
YlhSU2Vzc2lvbj4mJiBzZQogICAgIC8vIDEuIExldCBsYXllciBiZSBhIG5ldyBYUldlYkdMTGF5
ZXIKICAgICAvLyAyLiBJZiBzZXNzaW9u4oCZcyBlbmRlZCB2YWx1ZSBpcyB0cnVlLCB0aHJvdyBh
biBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgaWYgKHNlc3Np
b24tPmVuZGVkKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggYW4gWFJTZXNzaW9uIHRoYXQg
aGFzIGVuZGVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhh
dCBoYXMgZW5kZWQuIl9zIH07CiAKICAgICAvLyAzLiBJZiBjb250ZXh0IGlzIGxvc3QsIHRocm93
IGFuIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICAvLyA0LiBJ
ZiBzZXNzaW9uIGlzIGFuIGltbWVyc2l2ZSBzZXNzaW9uIGFuZCBjb250ZXh04oCZcyBYUiBjb21w
YXRpYmxlIGJvb2xlYW4gaXMgZmFsc2UsIHRocm93CkBAIC0xMTMsMTEgKzExMywxMSBAQCBFeGNl
cHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVyPj4gV2ViWFJXZWJHTExheWVyOjpjcmVhdGUoUmVm
PFdlYlhSU2Vzc2lvbj4mJiBzZQogICAgICAgICBbJl0oY29uc3QgUmVmUHRyPFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U+JiBiYXNlQ29udGV4dCkgLT4gRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2Vi
R0xMYXllcj4+CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChiYXNlQ29udGV4dC0+aXNDb250
ZXh0TG9zdCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggYSBsb3N0IFdlYkdM
IGNvbnRleHQuIiB9OworICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggYSBsb3N0IFdl
YkdMIGNvbnRleHQuIl9zIH07CiAKICAgICAgICAgICAgIGF1dG8gbW9kZSA9IHNlc3Npb24tPm1v
ZGUoKTsKICAgICAgICAgICAgIGlmICgobW9kZSA9PSBYUlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVB
ciB8fCBtb2RlID09IFhSU2Vzc2lvbk1vZGU6OkltbWVyc2l2ZVZyKSAmJiAhYmFzZUNvbnRleHQt
PmlzWFJDb21wYXRpYmxlKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBXZWJH
TCBjb250ZXh0IG5vdCBtYXJrZWQgYXMgWFIgY29tcGF0aWJsZS4iIH07CisgICAgICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBh
biBYUldlYkdMTGF5ZXIgd2l0aCBXZWJHTCBjb250ZXh0IG5vdCBtYXJrZWQgYXMgWFIgY29tcGF0
aWJsZS4iX3MgfTsKIAogCiAgICAgICAgICAgICAvLyA1LiBJbml0aWFsaXplIGxheWVy4oCZcyBj
b250ZXh0IHRvIGNvbnRleHQuIChzZWUgY29uc3RydWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWEltYWdlLmNwcAppbmRleCA3NWZlYThiMTUyYjE2ZTY5NWQ2NGUyOTkyZDkzODNh
ODZjZmUyMmRhLi4yNjNiNzk2OTBiOTcyOTM3MDI1NzljZjBkMGU3ODI4MGQyZmZmN2I0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAg
QWNjZXNzaWJpbGl0eVJvbGUgQVhJbWFnZTo6cm9sZVZhbHVlKCkgY29uc3QKIAogc3RkOjpvcHRp
b25hbDxBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rvcj4gQVhJbWFnZTo6
aW1hZ2VPdmVybGF5RWxlbWVudHMoKQogewotICAgIEFYVFJBQ0UoIkFYSW1hZ2U6OmltYWdlT3Zl
cmxheUVsZW1lbnRzIik7CisgICAgQVhUUkFDRSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVu
dHMiX3MpOwogCiAgICAgYXV0byYgY2hpbGRyZW4gPSB0aGlzLT5jaGlsZHJlbigpOwogICAgIGlm
IChjaGlsZHJlbi5zaXplKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIu
Y3BwCmluZGV4IDBiNmNjZDNiN2U5MjhjZTg3ODBiZGM3ZjIxYjA4ZTczZTY0MjllMzMuLjk0MTQ2
MTgyYTVhYmRkYjJjOTBlNjE2MWIwZmRmYTBmNmMzZWU1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHN0YXRpYyBib29sIHNo
b3VsZExvZygpCiBBWExvZ2dlcjo6QVhMb2dnZXIoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lKQog
ICAgIDogbV9tZXRob2ROYW1lKG1ldGhvZE5hbWUpCiB7Ci0gICAgaWYgKGF1dG8qIGNoYW5uZWwg
PSBnZXRMb2dDaGFubmVsKCJBY2Nlc3NpYmlsaXR5IikpCisgICAgaWYgKGF1dG8qIGNoYW5uZWwg
PSBnZXRMb2dDaGFubmVsKCJBY2Nlc3NpYmlsaXR5Il9zKSkKICAgICAgICAgY2hhbm5lbC0+bGV2
ZWwgPSBXVEZMb2dMZXZlbDo6RGVidWc7CiAKICAgICBpZiAoc2hvdWxkTG9nKCkpIHsKQEAgLTc4
LDYgKzc4LDEyIEBAIHZvaWQgQVhMb2dnZXI6OmxvZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAg
ICAgICAgIExPRyhBY2Nlc3NpYmlsaXR5LCAiJXMiLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwog
fQogCit2b2lkIEFYTG9nZ2VyOjpsb2coY29uc3QgY2hhciogbWVzc2FnZSkKK3sKKyAgICBpZiAo
c2hvdWxkTG9nKCkpCisgICAgICAgIExPRyhBY2Nlc3NpYmlsaXR5LCAiJXMiLCBtZXNzYWdlKTsK
K30KKwogdm9pZCBBWExvZ2dlcjo6bG9nKFJlZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCkKIHsK
ICAgICBpZiAoc2hvdWxkTG9nKCkpIHsKQEAgLTMyOCwxNSArMzM0LDE1IEBAIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5IHNl
YXJjaEtleSkKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25z
dCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEmIGNyaXRlcmlhKQogewogICAgIFRleHRTdHJl
YW06Okdyb3VwU2NvcGUgZ3JvdXBTY29wZShzdHJlYW0pOwotICAgIGF1dG8gc3RyZWFtQ3JpdGVy
aWFPYmplY3QgPSBbJnN0cmVhbV0gKFN0cmluZyBvYmplY3RMYWJlbCwgYXV0byogYXhPYmplY3Qp
IHsKKyAgICBhdXRvIHN0cmVhbUNyaXRlcmlhT2JqZWN0ID0gWyZzdHJlYW1dIChBU0NJSUxpdGVy
YWwgb2JqZWN0TGFiZWwsIGF1dG8qIGF4T2JqZWN0KSB7CiAgICAgICAgIHN0cmVhbS5zdGFydEdy
b3VwKCk7Ci0gICAgICAgIHN0cmVhbSA8PCBvYmplY3RMYWJlbCA8PCAiICIgPDwgYXhPYmplY3Qg
PDwgIiwgSUQgIiA8PCAoYXhPYmplY3QgPyBheE9iamVjdC0+b2JqZWN0SUQoKSA6IEFYSUQoKSk7
CisgICAgICAgIHN0cmVhbSA8PCBvYmplY3RMYWJlbC5jaGFyYWN0ZXJzKCkgPDwgIiAiIDw8IGF4
T2JqZWN0IDw8ICIsIElEICIgPDwgKGF4T2JqZWN0ID8gYXhPYmplY3QtPm9iamVjdElEKCkgOiBB
WElEKCkpOwogICAgICAgICBzdHJlYW0uZW5kR3JvdXAoKTsKICAgICB9OwogCiAgICAgc3RyZWFt
IDw8ICJTZWFyY2hDcml0ZXJpYSAiIDw8ICZjcml0ZXJpYTsKLSAgICBzdHJlYW1Dcml0ZXJpYU9i
amVjdCgiYW5jaG9yT2JqZWN0IiwgY3JpdGVyaWEuYW5jaG9yT2JqZWN0KTsKLSAgICBzdHJlYW1D
cml0ZXJpYU9iamVjdCgic3RhcnRPYmplY3QiLCBjcml0ZXJpYS5zdGFydE9iamVjdCk7CisgICAg
c3RyZWFtQ3JpdGVyaWFPYmplY3QoImFuY2hvck9iamVjdCJfcywgY3JpdGVyaWEuYW5jaG9yT2Jq
ZWN0KTsKKyAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgic3RhcnRPYmplY3QiX3MsIGNyaXRlcmlh
LnN0YXJ0T2JqZWN0KTsKICAgICBzdHJlYW0uZHVtcFByb3BlcnR5KCJzZWFyY2hEaXJlY3Rpb24i
LCBjcml0ZXJpYS5zZWFyY2hEaXJlY3Rpb24pOwogCiAgICAgc3RyZWFtLm5leHRMaW5lKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmgKaW5kZXggZWE4OTJmMmY5NjZjNTRk
YzBjZWNlMWRhNzkyODRlNzk4MWEwYzk1Ni4uZDFmYmFmYjE3Y2JiZWMzMjRhZTIwYjlmMTZjYzAy
ZjcwY2EwNWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExv
Z2dlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuaApAQCAt
NDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgQVhMb2dnZXIoY29uc3QgU3RyaW5nJiBtZXRob2RO
YW1lKTsKICAgICB+QVhMb2dnZXIoKTsKICAgICBzdGF0aWMgdm9pZCBsb2coY29uc3QgU3RyaW5n
Jik7CisgICAgc3RhdGljIHZvaWQgbG9nKGNvbnN0IGNoYXIqKTsKICAgICBzdGF0aWMgdm9pZCBs
b2coUmVmUHRyPEFYQ29yZU9iamVjdD4pOwogICAgIHN0YXRpYyB2b2lkIGxvZyhjb25zdCBWZWN0
b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+Jik7CiAgICAgc3RhdGljIHZvaWQgbG9nKGNvbnN0IHN0
ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2JqZWN0PiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRp
b24+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cAppbmRleCA3NzIyYzZkMGQyOTc5OTllMmM1OTk2ZmMyYWQwOGViOTIwYjAyYzhhLi41M2NjMDdm
NDAwMWZhYjcyODI0YjJkMTlkMWVmZjA2NjI5N2E5YWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTI1Miw3ICsyNTIsNyBAQCBBWE9i
amVjdENhY2hlOjp+QVhPYmplY3RDYWNoZSgpCiAKIGJvb2wgQVhPYmplY3RDYWNoZTo6aXNNb2Rh
bEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsKLSAgICBib29sIGhhc0RpYWxvZ1Jv
bGUgPSBub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyIpIHx8IG5vZGVIYXNSb2xlKCZlbGVt
ZW50LCAiYWxlcnRkaWFsb2ciKTsKKyAgICBib29sIGhhc0RpYWxvZ1JvbGUgPSBub2RlSGFzUm9s
ZSgmZWxlbWVudCwgImRpYWxvZyJfcykgfHwgbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRp
YWxvZyJfcyk7CiAgICAgYm9vbCBpc0FyaWFNb2RhbCA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVND
SUlDYXNlKGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhcmlhX21vZGFs
QXR0ciksICJ0cnVlIik7CiAKICAgICByZXR1cm4gKGhhc0RpYWxvZ1JvbGUgJiYgaXNBcmlhTW9k
YWwpIHx8IChpczxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTERp
YWxvZ0VsZW1lbnQ+KGVsZW1lbnQpLmlzTW9kYWwoKSk7CkBAIC01NjAsMjIgKzU2MCwyMiBAQCBz
dGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJP
YmplY3QqIHJlbmRlcmVyKQogCiAgICAgLy8gSWYgdGhlIG5vZGUgaXMgYXJpYSByb2xlPSJsaXN0
IiBvciB0aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFuZCBpdHMgYQogICAgIC8vIHVsL29sL2RsIHR5
cGUgKGl0IHNob3VsZG4ndCBiZSBhIGxpc3QgaWYgYXJpYSBzYXlzIG90aGVyd2lzZSkuCi0gICAg
aWYgKG5vZGUgJiYgKChub2RlSGFzUm9sZShub2RlLCAibGlzdCIpIHx8IG5vZGVIYXNSb2xlKG5v
ZGUsICJkaXJlY3RvcnkiKSkKKyAgICBpZiAobm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUsICJs
aXN0Il9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiZGlyZWN0b3J5Il9zKSkKICAgICAgICAgICAg
ICAgICAgICAgICB8fCAobm9kZUhhc1JvbGUobm9kZSwgbnVsbEF0b20oKSkgJiYgKG5vZGUtPmhh
c1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUob2xUYWcpIHx8IG5vZGUtPmhhc1Rh
Z05hbWUoZGxUYWcpKSkpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0
ZShyZW5kZXJlcik7CiAKICAgICAvLyBhcmlhIHRhYmxlcwotICAgIGlmIChub2RlSGFzUm9sZShu
b2RlLCAiZ3JpZCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlZ3JpZCIpIHx8IG5vZGVIYXNS
b2xlKG5vZGUsICJ0YWJsZSIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZCJfcykg
fHwgbm9kZUhhc1JvbGUobm9kZSwgInRyZWVncmlkIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAi
dGFibGUiX3MpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkOjpjcmVhdGUo
cmVuZGVyZXIpOwotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAicm93IikpCisgICAgaWYgKG5v
ZGVIYXNSb2xlKG5vZGUsICJyb3ciX3MpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFS
SUFHcmlkUm93OjpjcmVhdGUocmVuZGVyZXIpOwotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAi
Z3JpZGNlbGwiKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY2VsbCIpIHx8IG5vZGVIYXNSb2xlKG5v
ZGUsICJjb2x1bW5oZWFkZXIiKSB8fCBub2RlSGFzUm9sZShub2RlLCAicm93aGVhZGVyIikpCisg
ICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9k
ZSwgImNlbGwiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiX3MpIHx8IG5v
ZGVIYXNSb2xlKG5vZGUsICJyb3doZWFkZXIiX3MpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eUFSSUFHcmlkQ2VsbDo6Y3JlYXRlKHJlbmRlcmVyKTsKIAogICAgIC8vIGFyaWEgdHJlZQot
ICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZSIpKQorICAgIGlmIChub2RlSGFzUm9sZShu
b2RlLCAidHJlZSJfcykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZTo6Y3JlYXRl
KHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRyZWVpdGVtIikpCisgICAg
aWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlaXRlbSJfcykpCiAgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZShyZW5kZXJlcik7CiAKICAgICBpZiAobm9kZSAmJiBp
czxIVE1MTGFiZWxFbGVtZW50Pihub2RlKSAmJiBub2RlSGFzUm9sZShub2RlLCBudWxsQXRvbSgp
KSkKQEAgLTg2NSw3ICs4NjUsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hl
OjpjcmVhdGUoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpy
ZW1vdmUoQVhJRCBheElEKQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnJlbW92ZSIp
OworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnJlbW92ZSJfcyk7CiAgICAgQVhMT0cobWFr
ZVN0cmluZygiQVhJRCAiLCBheElELmxvZ2dpbmdTdHJpbmcoKSkpOwogCiAgICAgaWYgKCFheElE
KQpAQCAtOTc3LDcgKzk3Nyw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQoTm9k
ZSogbm9kZSkKIAogdm9pZCBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6dGV4dENoYW5n
ZWQiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlZCJfcyk7CiAgICAg
QVhMT0cob2JqZWN0KTsKIAogICAgIGlmICghb2JqZWN0KQpAQCAtMTA4Miw3ICsxMDgyLDcgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVDaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9i
amVjdCYgb2JqZWN0KQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVPcGVuZWQoTm9k
ZSogbm9kZSkKIHsKLSAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkgfHwgIW5vZGVI
YXNSb2xlKG5vZGUsICJtZW51IikpCisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJlcigp
IHx8ICFub2RlSGFzUm9sZShub2RlLCAibWVudSJfcykpCiAgICAgICAgIHJldHVybjsKICAgICAK
ICAgICBwb3N0Tm90aWZpY2F0aW9uKGdldE9yQ3JlYXRlKG5vZGUpLCAmZG9jdW1lbnQoKSwgQVhN
ZW51T3BlbmVkKTsKQEAgLTExMzQsNyArMTEzNCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2hp
bGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKIAogdm9pZCBBWE9iamVj
dENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiB7Ci0gICAgQVhUUkFDRSgiQVhP
YmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQiKTsKKyAgICBBWFRSQUNFKCJB
WE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCJfcyk7CiAgICAgLy8gRHVy
aW5nIExheW91dFRlc3RzLCBhY2Nlc3NpYmlsaXR5IG1heSBiZSBkaXNhYmxlZCBiZXR3ZWVuIHRo
ZSB0aW1lIHRoZSBub3RpZmljYXRpb25zIGFyZSBxdWV1ZWQgYW5kIHRoZSB0aW1lciBmaXJlcy4K
ICAgICAvLyBUaHVzIGNoZWNrIGhlcmUgYW5kIHJldHVybiBpZiBhY2Nlc3NpYmlsaXR5IGlzIGRp
c2FibGVkLgogICAgIGlmICghYWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKQEAgLTExOTUsNyArMTE5
NSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJG
aXJlZCgpCiAgICAgYXV0byBub3RpZmljYXRpb25zID0gc3RkOjpleGNoYW5nZShtX3Bhc3N3b3Jk
Tm90aWZpY2F0aW9uc1RvUG9zdCwgeyB9KTsKIAogICAgIGZvciAoYXV0byYgbm90aWZpY2F0aW9u
IDogbm90aWZpY2F0aW9ucykKLSAgICAgICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90
aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQoKSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwg
VmlzaWJsZVBvc2l0aW9uKCkpOworICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1O
b3RpZmljYXRpb24obm90aWZpY2F0aW9uLmdldCgpLCBBWFRleHRFZGl0VHlwZUluc2VydCwgIiAi
X3MsIFZpc2libGVQb3NpdGlvbigpKTsKICNlbmRpZgogfQogCkBAIC0xMjQzLDcgKzEyNDMsNyBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhOb3Rp
ZmljYXRpb24gbm90aWZpY2F0aW9uLCBQbwogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3Rp
ZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmplY3QsIERvY3VtZW50KiBkb2N1bWVudCwgQVhOb3Rp
ZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBvc3RUYXJnZXQpCiB7Ci0gICAgQVhU
UkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbiIpOworICAgIEFYVFJBQ0UoIkFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24iX3MpOwogICAgIEFYTE9HKHN0ZDo6bWFrZV9w
YWlyKG9iamVjdCwgbm90aWZpY2F0aW9uKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
IApAQCAtMTI3Myw3ICsxMjczLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVNZW51SXRl
bVNlbGVjdGVkKE5vZGUqIG5vZGUpCiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAg
ICAgCi0gICAgaWYgKCFub2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW0iKSAmJiAhbm9kZUhhc1Jv
bGUobm9kZSwgIm1lbnVpdGVtcmFkaW8iKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVt
Y2hlY2tib3giKSkKKyAgICBpZiAoIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbSJfcykgJiYg
IW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbXJhZGlvIl9zKSAmJiAhbm9kZUhhc1JvbGUobm9k
ZSwgIm1lbnVpdGVtY2hlY2tib3giX3MpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYg
KCFkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuZm9jdXNlZCgpICYmICFlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihhcmlhX3NlbGVjdGVkQXR0ciksICJ0cnVlIikpCkBAIC0xMzQ3LDggKzEz
NDcsOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkU3RhdGVDaGFuZ2VkKE5vZGUqIG5v
ZGUpCiB7CiAgICAgLy8gRm9yIGEgdGFibGUgY2VsbCwgcG9zdCBBWFNlbGVjdGVkU3RhdGVDaGFu
Z2VkIG9uIHRoZSBjZWxsIGl0c2VsZi4KICAgICAvLyBGb3IgYW55IG90aGVyIGVsZW1lbnQsIHBv
c3QgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCBvbiB0aGUgcGFyZW50LgotICAgIGlmIChub2Rl
SGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY2VsbCIpCi0g
ICAgICAgIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiKSB8fCBub2RlSGFzUm9s
ZShub2RlLCAicm93aGVhZGVyIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2Vs
bCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwiX3MpCisgICAgICAgIHx8IG5vZGVIYXNS
b2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJyb3doZWFk
ZXIiX3MpKQogICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRTdGF0ZUNo
YW5nZWQpOwogICAgIGVsc2UKICAgICAgICAgc2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQobm9kZSk7
CkBAIC0xNTQyLDcgKzE1NDIsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oY29uc3QgUG9zaXRpb24mIHBvc2l0aW9uLCBjbwogCiB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0LCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50LCBj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmpl
Y3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiIpOworICAgIEFYVFJBQ0Uo
IkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24iX3MpOwogICAg
IHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CiAKICNpZiBQTEFURk9STShD
T0NPQSkgfHwgVVNFKEFUU1BJKQpAQCAtMTU3NCw3ICsxNTc0LDcgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iamVjdCwKIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4
dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKLSAgICBBWFRSQUNFKCJBWE9i
amVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIik7CisgICAgQVhUUkFD
RSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiJfcyk7CiAg
ICAgaWYgKCFub2RlIHx8IHR5cGUgPT0gQVhUZXh0RWRpdFR5cGVVbmtub3duKQogICAgICAgICBy
ZXR1cm47CiAKQEAgLTE5MTIsNyArMTkxMiw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxl
QXR0cmlidXRlQ2hhbmdlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBFbGVtZW50CiAK
IHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlTW9kYWxDaGFuZ2UoRWxlbWVudCYgZWxlbWVudCkK
IHsKLSAgICBpZiAoIWlzPEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50KSAmJiAhbm9kZUhhc1Jv
bGUoJmVsZW1lbnQsICJkaWFsb2ciKSAmJiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRp
YWxvZyIpKQorICAgIGlmICghaXM8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpICYmICFub2Rl
SGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyJfcykgJiYgIW5vZGVIYXNSb2xlKCZlbGVtZW50LCAi
YWxlcnRkaWFsb2ciX3MpKQogICAgICAgICByZXR1cm47CiAKICAgICBzdG9wQ2FjaGluZ0NvbXB1
dGVkT2JqZWN0QXR0cmlidXRlcygpOwpAQCAtMzI3Nyw3ICszMjc3LDcgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjpwcm9jZXNzRGVmZXJyZWRDaGlsZHJlbkNoYW5nZWRMaXN0KCkKIAogdm9pZCBBWE9i
amVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSgpCiB7Ci0gICAgQVhUUkFDRSgi
QVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUiKTsKKyAgICBBWFRSQUNF
KCJBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSJfcyk7CiAgICAgaWYg
KG1fcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVVcGRhdGUpCiAgICAgICAgIHJldHVybjsKICAgICBT
ZXRGb3JTY29wZSBwZXJmb3JtaW5nRGVmZXJyZWRDYWNoZVVwZGF0ZShtX3BlcmZvcm1pbmdEZWZl
cnJlZENhY2hlVXBkYXRlLCB0cnVlKTsKQEAgLTMzNzMsNyArMzM3Myw3IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBBWE5vdGlm
aWNhdGlvbiBub3RpCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNv
bnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjdD4sIEFYTm90aWZpY2F0aW9u
Pj4mIG5vdGlmaWNhdGlvbnMpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6dXBkYXRl
SXNvbGF0ZWRUcmVlIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0
ZWRUcmVlIl9zKTsKICAgICBBWExPRygqdGhpcyk7CiAKICAgICBpZiAoIW1fcGFnZUlEKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCmluZGV4IDE0MjkxMzcyY2ZjNDZjMWRlMjJlODM4Y2QyMjU5ZjcwOTNmZGE0
MDguLmIyZDhjNDk3MGYyYWQ2ZTM0MGVkYTVkNzNmOTQxYTEyODY1NmYyM2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwCkBAIC0yMzcsNyArMjM3LDcgQEAgRG9jdW1lbnQqIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Ojpkb2N1bWVudCgpIGNvbnN0CiAKIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCiB7Ci0gICAgQVhUUkFDRSgi
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIik7Cisg
ICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxp
dHlSb2xlIl9zKTsKICAgICBpZiAoKG1fYXJpYVJvbGUgPSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJp
YnV0ZSgpKSAhPSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93bikKICAgICAgICAgcmV0dXJuIG1f
YXJpYVJvbGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDM0ZjE1ZjI1NjQ1NjNmOWM5MjMzNTgyMWJlYWVkZmIw
OTk0YjhiYWUuLmJmYmU0MmYzZDhjMmRjMzdlOWU3NWZkNjM2MzY0MWYzYzk3OTFlODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcApAQCAtMTcyOSw3ICsxNzI5LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBw
b3J0c1JlYWRPbmx5KCkgY29uc3QKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZWFkT25s
eVZhbHVlKCkgY29uc3QKIHsKICAgICBpZiAoIWhhc0F0dHJpYnV0ZShhcmlhX3JlYWRvbmx5QXR0
cikpCi0gICAgICAgIHJldHVybiBhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IEFjY2Vzc2liaWxpdHlS
b2xlOjpVbmtub3duICYmIHN1cHBvcnRzUmVhZE9ubHkoKSA/ICJmYWxzZSIgOiBTdHJpbmcoKTsK
KyAgICAgICAgcmV0dXJuIGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6
OlVua25vd24gJiYgc3VwcG9ydHNSZWFkT25seSgpID8gImZhbHNlIl9zIDogU3RyaW5nKCk7CiAK
ICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKS5zdHJpbmcoKS5jb252
ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogfQpAQCAtMTc1Nyw3ICsxNzU3LDcgQEAgU3RyaW5nIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmF1dG9Db21wbGV0ZVZhbHVlKCkgY29uc3QKICAgICAgICAgfHwg
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoYXV0b0NvbXBsZXRlLCAiYm90aCIpKQogICAg
ICAgICByZXR1cm4gYXV0b0NvbXBsZXRlOwogCi0gICAgcmV0dXJuICJub25lIjsKKyAgICByZXR1
cm4gIm5vbmUiX3M7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udGVudEVkaXRh
YmxlQXR0cmlidXRlSXNFbmFibGVkKEVsZW1lbnQqIGVsZW1lbnQpCkBAIC0yMjMzLDIwICsyMjMz
LDIwIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjdXJyZW50VmFsdWUoKSBjb25zdAog
ewogICAgIHN3aXRjaCAoY3VycmVudFN0YXRlKCkpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlD
dXJyZW50U3RhdGU6OkZhbHNlOgotICAgICAgICByZXR1cm4gImZhbHNlIjsKKyAgICAgICAgcmV0
dXJuICJmYWxzZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlBhZ2U6
Ci0gICAgICAgIHJldHVybiAicGFnZSI7CisgICAgICAgIHJldHVybiAicGFnZSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlN0ZXA6Ci0gICAgICAgIHJldHVybiAic3Rl
cCI7CisgICAgICAgIHJldHVybiAic3RlcCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJy
ZW50U3RhdGU6OkxvY2F0aW9uOgotICAgICAgICByZXR1cm4gImxvY2F0aW9uIjsKKyAgICAgICAg
cmV0dXJuICJsb2NhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6
OlRpbWU6Ci0gICAgICAgIHJldHVybiAidGltZSI7CisgICAgICAgIHJldHVybiAidGltZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OkRhdGU6Ci0gICAgICAgIHJldHVy
biAiZGF0ZSI7CisgICAgICAgIHJldHVybiAiZGF0ZSJfczsKICAgICBkZWZhdWx0OgogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6VHJ1ZToKLSAgICAgICAgcmV0dXJuICJ0cnVl
IjsKKyAgICAgICAgcmV0dXJuICJ0cnVlIl9zOwogICAgIH0KIH0KIApAQCAtMjM1NSwxMSArMjM1
NSwxMSBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlcGxhY2VUZXh0SW5SYW5nZShjb25z
dCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjbwogICAgIH0KICAgICAKICAgICBpZiAoaXM8
SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4oZWxlbWVudCkuc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCByYW5nZS5z
dGFydCwgcmFuZ2UubGVuZ3RoLCAiIik7CisgICAgICAgIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1l
bnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4dChyZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQs
IHJhbmdlLmxlbmd0aCwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICBpZiAoaXM8SFRNTFRleHRBcmVhRWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAgICAg
ZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxlbWVudD4oZWxlbWVudCkuc2V0UmFuZ2VUZXh0KHJlcGxh
Y2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2UubGVuZ3RoLCAiIik7CisgICAgICAgIGRv
d25jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4dChyZXBsYWNl
bWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgZW1wdHlTdHJpbmcoKSk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjU5NCw3ICsyNTk0LDcgQEAgU3RyaW5n
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbXB1dGVkUm9sZVN0cmluZygpIGNvbnN0CiAKICAgICAv
LyBXZSBkbyBub3QgY29tcHV0ZSBhIHJvbGUgc3RyaW5nIGZvciBnZW5lcmljIGJsb2NrIGVsZW1l
bnRzIHdpdGggdXNlci1hZ2VudCBhc3NpZ25lZCByb2xlcy4KICAgICBpZiAocm9sZSA9PSBBY2Nl
c3NpYmlsaXR5Um9sZTo6R3JvdXAgfHwgcm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEdy
b3VwKQotICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwog
CiAgICAgLy8gV2UgZG8gY29tcHV0ZSBhIHJvbGUgc3RyaW5nIGZvciBibG9jayBlbGVtZW50cyB3
aXRoIGF1dGhvci1wcm92aWRlZCByb2xlcy4KICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXAKQEAgLTI3MjUsNyArMjcyNSw3IEBAIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlRGVzY3JpcHRpb24oKSBjb25zdAogCiBib29sIG5vZGVI
YXNQcmVzZW50YXRpb25Sb2xlKE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGVIYXNSb2xl
KG5vZGUsICJwcmVzZW50YXRpb24iKSB8fCBub2RlSGFzUm9sZShub2RlLCAibm9uZSIpOworICAg
IHJldHVybiBub2RlSGFzUm9sZShub2RlLCAicHJlc2VudGF0aW9uIl9zKSB8fCBub2RlSGFzUm9s
ZShub2RlLCAibm9uZSJfcyk7CiB9CiAgICAgCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1
cHBvcnRzUHJlc3NBY3Rpb24oKSBjb25zdApAQCAtMzIxMCwxMCArMzIxMCwxMCBAQCBIYXNoTWFw
PFN0cmluZywgQVhFZGl0aW5nU3R5bGVWYWx1ZVZhcmlhbnQ+IEFjY2Vzc2liaWxpdHlPYmplY3Q6
OnJlc29sdmVkRWRpdGluZwogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgSGFzaE1hcDxTdHJp
bmcsIEFYRWRpdGluZ1N0eWxlVmFsdWVWYXJpYW50PiBzdHlsZXM7Ci0gICAgc3R5bGVzLmFkZCgi
Ym9sZCIsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsICJi
b2xkIikpOwotICAgIHN0eWxlcy5hZGQoIml0YWxpYyIsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHls
ZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgIml0YWxpYyIpKTsKLSAgICBzdHlsZXMuYWRkKCJ1bmRl
cmxpbmUiLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVj
b3JhdGlvbnNJbkVmZmVjdCwgInVuZGVybGluZSIpKTsKLSAgICBzdHlsZXMuYWRkKCJmb250c2l6
ZSIsIHNlbGVjdGlvblN0eWxlLT5sZWdhY3lGb250U2l6ZSgqZG9jdW1lbnQpKTsKKyAgICBzdHls
ZXMuYWRkKCJib2xkIl9zLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlGb250
V2VpZ2h0LCAiYm9sZCJfcykpOworICAgIHN0eWxlcy5hZGQoIml0YWxpYyJfcywgc2VsZWN0aW9u
U3R5bGUtPmhhc1N0eWxlKENTU1Byb3BlcnR5Rm9udFN0eWxlLCAiaXRhbGljIl9zKSk7CisgICAg
c3R5bGVzLmFkZCgidW5kZXJsaW5lIl9zLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJv
cGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCwgInVuZGVybGluZSJfcykpOworICAg
IHN0eWxlcy5hZGQoImZvbnRzaXplIl9zLCBzZWxlY3Rpb25TdHlsZS0+bGVnYWN5Rm9udFNpemUo
KmRvY3VtZW50KSk7CiAgICAgcmV0dXJuIHN0eWxlczsKIH0KIApAQCAtNDA4OCw3ICs0MDg4LDcg
QEAgc3RhdGljIGJvb2wgaXNSYWRpb0J1dHRvbkluRGlmZmVyZW50QWRob2NHcm91cChSZWZQdHI8
QVhDb3JlT2JqZWN0PiBheE9iamVjdCwgQVgKICAgICBpZiAoIXJlZmVyZW5jZU9iamVjdCB8fCAh
cmVmZXJlbmNlT2JqZWN0LT5pc1JhZGlvQnV0dG9uKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgcmV0dXJuIGF4T2JqZWN0LT5hdHRyaWJ1dGVWYWx1ZSgibmFtZSIpICE9IHJlZmVyZW5j
ZU9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUiKTsKKyAgICByZXR1cm4gYXhPYmplY3QtPmF0
dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKSAhPSByZWZlcmVuY2VPYmplY3QtPmF0dHJpYnV0ZVZhbHVl
KCJuYW1lIl9zKTsKIH0KIAogc3RhdGljIGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNo
TWF0Y2hBdEluZGV4KFJlZlB0cjxBWENvcmVPYmplY3Q+IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5
U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBzaXplX3QgaW5kZXgpCkBAIC00Mjk1LDcg
KzQyOTUsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRDaGlsZHJlblRvQXJyYXkoUmVmUHRyPEFYQ29y
ZU9iamVjdD4gb2JqZWN0LCBib29sIGlzRm9yd2FyZCwgUgogCiB2b2lkIGZpbmRNYXRjaGluZ09i
amVjdHMoQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgQVhDb3Jl
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdHMpCiB7Ci0gICAgQVhU
UkFDRSgiQWNjZXNzaWJpbGl0eTo6ZmluZE1hdGNoaW5nT2JqZWN0cyIpOworICAgIEFYVFJBQ0Uo
IkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09iamVjdHMiX3MpOwogICAgIEFYTE9HKGNyaXRl
cmlhKTsKIAogICAgIC8vIFRoaXMgc2VhcmNoIGFsZ29yaXRobSBvbmx5IHNlYXJjaGVzIHRoZSBl
bGVtZW50cyBiZWZvcmUvYWZ0ZXIgdGhlIHN0YXJ0aW5nIG9iamVjdC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgKaW5kZXggNDZmNjAyODAyYTc2MjFjMDg2ZjUxNDVkMGE3MGVjZTZiZmI4MjdjZi4uZTBi
ZGRkOTMxYzRkMjQxZWQ3NzgwNDNlOWIyNDFmMTI5ZTNmZWQ3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgKQEAgLTI2NCwzMTIgKzI2NCwzMTIgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcgYWNjZXNz
aWJpbGl0eVJvbGVUb1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogewogICAgIHN3aXRj
aCAocm9sZSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFubm90YXRpb246Ci0gICAg
ICAgIHJldHVybiAiQW5ub3RhdGlvbiI7CisgICAgICAgIHJldHVybiAiQW5ub3RhdGlvbiJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbjoKLSAgICAgICAgcmV0dXJu
ICJBcHBsaWNhdGlvbiI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb24iX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25BbGVydDoKLSAgICAgICAgcmV0dXJuICJB
cHBsaWNhdGlvbkFsZXJ0IjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0Il9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnREaWFsb2c6Ci0gICAg
ICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydERpYWxvZyI7CisgICAgICAgIHJldHVybiAiQXBw
bGljYXRpb25BbGVydERpYWxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBs
aWNhdGlvbkRpYWxvZzoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkRpYWxvZyI7CisgICAg
ICAgIHJldHVybiAiQXBwbGljYXRpb25EaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXBwbGljYXRpb25Hcm91cDoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkdyb3Vw
IjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTG9nOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9u
TG9nIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkxvZyJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbk1hcnF1ZWU6Ci0gICAgICAgIHJldHVybiAiQXBwbGlj
YXRpb25NYXJxdWVlIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbk1hcnF1ZWUiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXM6Ci0gICAgICAgIHJl
dHVybiAiQXBwbGljYXRpb25TdGF0dXMiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uU3Rh
dHVzIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3Vw
OgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uVGV4dEdyb3VwIjsKKyAgICAgICAgcmV0dXJu
ICJBcHBsaWNhdGlvblRleHRHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpB
cHBsaWNhdGlvblRpbWVyOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uVGltZXIiOworICAg
ICAgICByZXR1cm4gIkFwcGxpY2F0aW9uVGltZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXVkaW86Ci0gICAgICAgIHJldHVybiAiQXVkaW8iOworICAgICAgICByZXR1cm4gIkF1
ZGlvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJsb2NrcXVvdGU6Ci0gICAgICAg
IHJldHVybiAiQmxvY2txdW90ZSI7CisgICAgICAgIHJldHVybiAiQmxvY2txdW90ZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCcm93c2VyOgotICAgICAgICByZXR1cm4gIkJyb3dz
ZXIiOworICAgICAgICByZXR1cm4gIkJyb3dzZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QnVzeUluZGljYXRvcjoKLSAgICAgICAgcmV0dXJuICJCdXN5SW5kaWNhdG9yIjsKKyAg
ICAgICAgcmV0dXJuICJCdXN5SW5kaWNhdG9yIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkJ1dHRvbjoKLSAgICAgICAgcmV0dXJuICJCdXR0b24iOworICAgICAgICByZXR1cm4gIkJ1
dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDYW52YXM6Ci0gICAgICAgIHJl
dHVybiAiQ2FudmFzIjsKKyAgICAgICAgcmV0dXJuICJDYW52YXMiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6Q2FwdGlvbjoKLSAgICAgICAgcmV0dXJuICJDYXB0aW9uIjsKKyAgICAg
ICAgcmV0dXJuICJDYXB0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNlbGw6
Ci0gICAgICAgIHJldHVybiAiQ2VsbCI7CisgICAgICAgIHJldHVybiAiQ2VsbCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVja0JveDoKLSAgICAgICAgcmV0dXJuICJDaGVja0Jv
eCI7CisgICAgICAgIHJldHVybiAiQ2hlY2tCb3giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6Q29sb3JXZWxsOgotICAgICAgICByZXR1cm4gIkNvbG9yV2VsbCI7CisgICAgICAgIHJl
dHVybiAiQ29sb3JXZWxsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbHVtbjoK
LSAgICAgICAgcmV0dXJuICJDb2x1bW4iOworICAgICAgICByZXR1cm4gIkNvbHVtbiJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDb2x1bW5IZWFkZXI6Ci0gICAgICAgIHJldHVybiAi
Q29sdW1uSGVhZGVyIjsKKyAgICAgICAgcmV0dXJuICJDb2x1bW5IZWFkZXIiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29tYm9Cb3g6Ci0gICAgICAgIHJldHVybiAiQ29tYm9Cb3gi
OworICAgICAgICByZXR1cm4gIkNvbWJvQm94Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkRlZmluaXRpb246Ci0gICAgICAgIHJldHVybiAiRGVmaW5pdGlvbiI7CisgICAgICAgIHJl
dHVybiAiRGVmaW5pdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZWxldGlv
bjoKLSAgICAgICAgcmV0dXJuICJEZWxldGlvbiI7CisgICAgICAgIHJldHVybiAiRGVsZXRpb24i
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0OgotICAgICAg
ICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdCI7CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25M
aXN0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06
Ci0gICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0VGVybSI7CisgICAgICAgIHJldHVybiAi
RGVzY3JpcHRpb25MaXN0VGVybSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNj
cmlwdGlvbkxpc3REZXRhaWw6Ci0gICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0RGV0YWls
IjsKKyAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3REZXRhaWwiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlsczoKLSAgICAgICAgcmV0dXJuICJEZXRhaWxzIjsKKyAg
ICAgICAgcmV0dXJuICJEZXRhaWxzIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRp
cmVjdG9yeToKLSAgICAgICAgcmV0dXJuICJEaXJlY3RvcnkiOworICAgICAgICByZXR1cm4gIkRp
cmVjdG9yeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEaXNjbG9zdXJlVHJpYW5n
bGU6Ci0gICAgICAgIHJldHVybiAiRGlzY2xvc3VyZVRyaWFuZ2xlIjsKKyAgICAgICAgcmV0dXJu
ICJEaXNjbG9zdXJlVHJpYW5nbGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGl2
OgotICAgICAgICByZXR1cm4gIkRpdiI7CisgICAgICAgIHJldHVybiAiRGl2Il9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50OgotICAgICAgICByZXR1cm4gIkRvY3VtZW50
IjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpEb2N1bWVudEFydGljbGU6Ci0gICAgICAgIHJldHVybiAiRG9jdW1lbnRBcnRpY2xlIjsK
KyAgICAgICAgcmV0dXJuICJEb2N1bWVudEFydGljbGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6RG9jdW1lbnRNYXRoOgotICAgICAgICByZXR1cm4gIkRvY3VtZW50TWF0aCI7Cisg
ICAgICAgIHJldHVybiAiRG9jdW1lbnRNYXRoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkRvY3VtZW50Tm90ZToKLSAgICAgICAgcmV0dXJuICJEb2N1bWVudE5vdGUiOworICAgICAg
ICByZXR1cm4gIkRvY3VtZW50Tm90ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpE
cmF3ZXI6Ci0gICAgICAgIHJldHVybiAiRHJhd2VyIjsKKyAgICAgICAgcmV0dXJuICJEcmF3ZXIi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RWRpdGFibGVUZXh0OgotICAgICAgICBy
ZXR1cm4gIkVkaXRhYmxlVGV4dCI7CisgICAgICAgIHJldHVybiAiRWRpdGFibGVUZXh0Il9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZlZWQ6Ci0gICAgICAgIHJldHVybiAiRmVlZCI7
CisgICAgICAgIHJldHVybiAiRmVlZCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpG
aWd1cmU6Ci0gICAgICAgIHJldHVybiAiRmlndXJlIjsKKyAgICAgICAgcmV0dXJuICJGaWd1cmUi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyOgotICAgICAgICByZXR1cm4g
IkZvb3RlciI7CisgICAgICAgIHJldHVybiAiRm9vdGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkZvb3Rub3RlOgotICAgICAgICByZXR1cm4gIkZvb3Rub3RlIjsKKyAgICAgICAg
cmV0dXJuICJGb290bm90ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb3JtOgot
ICAgICAgICByZXR1cm4gIkZvcm0iOworICAgICAgICByZXR1cm4gIkZvcm0iX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoKLSAgICAgICAgcmV0dXJuICJH
cmFwaGljc0RvY3VtZW50IjsKKyAgICAgICAgcmV0dXJuICJHcmFwaGljc0RvY3VtZW50Il9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzT2JqZWN0OgotICAgICAgICByZXR1
cm4gIkdyYXBoaWNzT2JqZWN0IjsKKyAgICAgICAgcmV0dXJuICJHcmFwaGljc09iamVjdCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc1N5bWJvbDoKLSAgICAgICAgcmV0
dXJuICJHcmFwaGljc1N5bWJvbCI7CisgICAgICAgIHJldHVybiAiR3JhcGhpY3NTeW1ib2wiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JpZDoKLSAgICAgICAgcmV0dXJuICJHcmlk
IjsKKyAgICAgICAgcmV0dXJuICJHcmlkIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkdyaWRDZWxsOgotICAgICAgICByZXR1cm4gIkdyaWRDZWxsIjsKKyAgICAgICAgcmV0dXJuICJH
cmlkQ2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcm91cDoKLSAgICAgICAg
cmV0dXJuICJHcm91cCI7CisgICAgICAgIHJldHVybiAiR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6R3Jvd0FyZWE6Ci0gICAgICAgIHJldHVybiAiR3Jvd0FyZWEiOworICAg
ICAgICByZXR1cm4gIkdyb3dBcmVhIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okhl
YWRpbmc6Ci0gICAgICAgIHJldHVybiAiSGVhZGluZyI7CisgICAgICAgIHJldHVybiAiSGVhZGlu
ZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpIZWxwVGFnOgotICAgICAgICByZXR1
cm4gIkhlbHBUYWciOworICAgICAgICByZXR1cm4gIkhlbHBUYWciX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGU6Ci0gICAgICAgIHJldHVybiAiSG9yaXpvbnRh
bFJ1bGUiOworICAgICAgICByZXR1cm4gIkhvcml6b250YWxSdWxlIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6Oklnbm9yZWQ6Ci0gICAgICAgIHJldHVybiAiSWdub3JlZCI7CisgICAg
ICAgIHJldHVybiAiSWdub3JlZCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbmxp
bmU6Ci0gICAgICAgIHJldHVybiAiSW5saW5lIjsKKyAgICAgICAgcmV0dXJuICJJbmxpbmUiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U6Ci0gICAgICAgIHJldHVybiAiSW1h
Z2UiOworICAgICAgICByZXR1cm4gIkltYWdlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkltYWdlTWFwOgotICAgICAgICByZXR1cm4gIkltYWdlTWFwIjsKKyAgICAgICAgcmV0dXJu
ICJJbWFnZU1hcCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcExpbms6
Ci0gICAgICAgIHJldHVybiAiSW1hZ2VNYXBMaW5rIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZU1h
cExpbmsiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW5jcmVtZW50b3I6Ci0gICAg
ICAgIHJldHVybiAiSW5jcmVtZW50b3IiOworICAgICAgICByZXR1cm4gIkluY3JlbWVudG9yIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okluc2VydGlvbjoKLSAgICAgICAgcmV0dXJu
ICJJbnNlcnRpb24iOworICAgICAgICByZXR1cm4gIkluc2VydGlvbiJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMYWJlbDoKLSAgICAgICAgcmV0dXJuICJMYWJlbCI7CisgICAgICAg
IHJldHVybiAiTGFiZWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtC
YW5uZXI6Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtCYW5uZXIiOworICAgICAgICByZXR1cm4g
IkxhbmRtYXJrQmFubmVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJr
Q29tcGxlbWVudGFyeToKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya0NvbXBsZW1lbnRhcnkiOwor
ICAgICAgICByZXR1cm4gIkxhbmRtYXJrQ29tcGxlbWVudGFyeSJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbnRlbnRJbmZvOgotICAgICAgICByZXR1cm4gIkxhbmRt
YXJrQ29udGVudEluZm8iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrQ29udGVudEluZm8iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtEb2NSZWdpb246Ci0gICAgICAg
IHJldHVybiAiTGFuZG1hcmtEb2NSZWdpb24iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrRG9j
UmVnaW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTWFpbjoKLSAg
ICAgICAgcmV0dXJuICJMYW5kbWFya01haW4iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrTWFp
biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya05hdmlnYXRpb246Ci0g
ICAgICAgIHJldHVybiAiTGFuZG1hcmtOYXZpZ2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJMYW5k
bWFya05hdmlnYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtS
ZWdpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtSZWdpb24iOworICAgICAgICByZXR1cm4g
IkxhbmRtYXJrUmVnaW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJr
U2VhcmNoOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrU2VhcmNoIjsKKyAgICAgICAgcmV0dXJu
ICJMYW5kbWFya1NlYXJjaCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMZWdlbmQ6
Ci0gICAgICAgIHJldHVybiAiTGVnZW5kIjsKKyAgICAgICAgcmV0dXJuICJMZWdlbmQiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGluazoKLSAgICAgICAgcmV0dXJuICJMaW5rIjsK
KyAgICAgICAgcmV0dXJuICJMaW5rIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxp
c3Q6Ci0gICAgICAgIHJldHVybiAiTGlzdCI7CisgICAgICAgIHJldHVybiAiTGlzdCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0Qm94OgotICAgICAgICByZXR1cm4gIkxpc3RC
b3giOworICAgICAgICByZXR1cm4gIkxpc3RCb3giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6TGlzdEJveE9wdGlvbjoKLSAgICAgICAgcmV0dXJuICJMaXN0Qm94T3B0aW9uIjsKKyAg
ICAgICAgcmV0dXJuICJMaXN0Qm94T3B0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6Okxpc3RJdGVtOgotICAgICAgICByZXR1cm4gIkxpc3RJdGVtIjsKKyAgICAgICAgcmV0dXJu
ICJMaXN0SXRlbSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0TWFya2VyOgot
ICAgICAgICByZXR1cm4gIkxpc3RNYXJrZXIiOworICAgICAgICByZXR1cm4gIkxpc3RNYXJrZXIi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWFyazoKLSAgICAgICAgcmV0dXJuICJN
YXJrIjsKKyAgICAgICAgcmV0dXJuICJNYXJrIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6Ok1hdGhFbGVtZW50OgotICAgICAgICByZXR1cm4gIk1hdGhFbGVtZW50IjsKKyAgICAgICAg
cmV0dXJuICJNYXRoRWxlbWVudCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNYXR0
ZToKLSAgICAgICAgcmV0dXJuICJNYXR0ZSI7CisgICAgICAgIHJldHVybiAiTWF0dGUiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudToKLSAgICAgICAgcmV0dXJuICJNZW51IjsK
KyAgICAgICAgcmV0dXJuICJNZW51Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1l
bnVCYXI6Ci0gICAgICAgIHJldHVybiAiTWVudUJhciI7CisgICAgICAgIHJldHVybiAiTWVudUJh
ciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51QnV0dG9uOgotICAgICAgICBy
ZXR1cm4gIk1lbnVCdXR0b24iOworICAgICAgICByZXR1cm4gIk1lbnVCdXR0b24iX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW06Ci0gICAgICAgIHJldHVybiAiTWVudUl0
ZW0iOworICAgICAgICByZXR1cm4gIk1lbnVJdGVtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6Ok1lbnVJdGVtQ2hlY2tib3g6Ci0gICAgICAgIHJldHVybiAiTWVudUl0ZW1DaGVja2Jv
eCI7CisgICAgICAgIHJldHVybiAiTWVudUl0ZW1DaGVja2JveCJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpNZW51SXRlbVJhZGlvOgotICAgICAgICByZXR1cm4gIk1lbnVJdGVtUmFk
aW8iOworICAgICAgICByZXR1cm4gIk1lbnVJdGVtUmFkaW8iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6TWVudUxpc3RQb3B1cDoKLSAgICAgICAgcmV0dXJuICJNZW51TGlzdFBvcHVw
IjsKKyAgICAgICAgcmV0dXJuICJNZW51TGlzdFBvcHVwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6Ok1lbnVMaXN0T3B0aW9uOgotICAgICAgICByZXR1cm4gIk1lbnVMaXN0T3B0aW9u
IjsKKyAgICAgICAgcmV0dXJuICJNZW51TGlzdE9wdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpNZXRlcjoKLSAgICAgICAgcmV0dXJuICJNZXRlciI7CisgICAgICAgIHJldHVy
biAiTWV0ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TW9kZWw6Ci0gICAgICAg
IHJldHVybiAiTW9kZWwiOworICAgICAgICByZXR1cm4gIk1vZGVsIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6Ok91dGxpbmU6Ci0gICAgICAgIHJldHVybiAiT3V0bGluZSI7CisgICAg
ICAgIHJldHVybiAiT3V0bGluZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQYXJh
Z3JhcGg6Ci0gICAgICAgIHJldHVybiAiUGFyYWdyYXBoIjsKKyAgICAgICAgcmV0dXJuICJQYXJh
Z3JhcGgiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b246Ci0gICAg
ICAgIHJldHVybiAiUG9wVXBCdXR0b24iOworICAgICAgICByZXR1cm4gIlBvcFVwQnV0dG9uIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlByZToKLSAgICAgICAgcmV0dXJuICJQcmUi
OworICAgICAgICByZXR1cm4gIlByZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQ
cmVzZW50YXRpb25hbDoKLSAgICAgICAgcmV0dXJuICJQcmVzZW50YXRpb25hbCI7CisgICAgICAg
IHJldHVybiAiUHJlc2VudGF0aW9uYWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
UHJvZ3Jlc3NJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVybiAiUHJvZ3Jlc3NJbmRpY2F0b3IiOwor
ICAgICAgICByZXR1cm4gIlByb2dyZXNzSW5kaWNhdG9yIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJhZGlvQnV0dG9uOgotICAgICAgICByZXR1cm4gIlJhZGlvQnV0dG9uIjsKKyAg
ICAgICAgcmV0dXJuICJSYWRpb0J1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpSYWRpb0dyb3VwOgotICAgICAgICByZXR1cm4gIlJhZGlvR3JvdXAiOworICAgICAgICByZXR1
cm4gIlJhZGlvR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Um93SGVhZGVy
OgotICAgICAgICByZXR1cm4gIlJvd0hlYWRlciI7CisgICAgICAgIHJldHVybiAiUm93SGVhZGVy
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJvdzoKLSAgICAgICAgcmV0dXJuICJS
b3ciOworICAgICAgICByZXR1cm4gIlJvdyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpSb3dHcm91cDoKLSAgICAgICAgcmV0dXJuICJSb3dHcm91cCI7CisgICAgICAgIHJldHVybiAi
Um93R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJhc2U6Ci0gICAg
ICAgIHJldHVybiAiUnVieUJhc2UiOworICAgICAgICByZXR1cm4gIlJ1YnlCYXNlIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCbG9jazoKLSAgICAgICAgcmV0dXJuICJSdWJ5
QmxvY2siOworICAgICAgICByZXR1cm4gIlJ1YnlCbG9jayJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpSdWJ5SW5saW5lOgotICAgICAgICByZXR1cm4gIlJ1YnlJbmxpbmUiOworICAg
ICAgICByZXR1cm4gIlJ1YnlJbmxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
UnVieVJ1bjoKLSAgICAgICAgcmV0dXJuICJSdWJ5UnVuIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5
UnVuIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlUZXh0OgotICAgICAgICBy
ZXR1cm4gIlJ1YnlUZXh0IjsKKyAgICAgICAgcmV0dXJuICJSdWJ5VGV4dCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWxlcjoKLSAgICAgICAgcmV0dXJuICJSdWxlciI7CisgICAg
ICAgIHJldHVybiAiUnVsZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVsZXJN
YXJrZXI6Ci0gICAgICAgIHJldHVybiAiUnVsZXJNYXJrZXIiOworICAgICAgICByZXR1cm4gIlJ1
bGVyTWFya2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNjcm9sbEFyZWE6Ci0g
ICAgICAgIHJldHVybiAiU2Nyb2xsQXJlYSI7CisgICAgICAgIHJldHVybiAiU2Nyb2xsQXJlYSJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTY3JvbGxCYXI6Ci0gICAgICAgIHJldHVy
biAiU2Nyb2xsQmFyIjsKKyAgICAgICAgcmV0dXJuICJTY3JvbGxCYXIiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6U2VhcmNoRmllbGQ6Ci0gICAgICAgIHJldHVybiAiU2VhcmNoRmll
bGQiOworICAgICAgICByZXR1cm4gIlNlYXJjaEZpZWxkIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlNoZWV0OgotICAgICAgICByZXR1cm4gIlNoZWV0IjsKKyAgICAgICAgcmV0dXJu
ICJTaGVldCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTbGlkZXI6Ci0gICAgICAg
IHJldHVybiAiU2xpZGVyIjsKKyAgICAgICAgcmV0dXJuICJTbGlkZXIiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6U2xpZGVyVGh1bWI6Ci0gICAgICAgIHJldHVybiAiU2xpZGVyVGh1
bWIiOworICAgICAgICByZXR1cm4gIlNsaWRlclRodW1iIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlNwaW5CdXR0b246Ci0gICAgICAgIHJldHVybiAiU3BpbkJ1dHRvbiI7CisgICAg
ICAgIHJldHVybiAiU3BpbkJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpT
cGluQnV0dG9uUGFydDoKLSAgICAgICAgcmV0dXJuICJTcGluQnV0dG9uUGFydCI7CisgICAgICAg
IHJldHVybiAiU3BpbkJ1dHRvblBhcnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3BsaXRHcm91cDoKLSAgICAgICAgcmV0dXJuICJTcGxpdEdyb3VwIjsKKyAgICAgICAgcmV0dXJu
ICJTcGxpdEdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNwbGl0dGVyOgot
ICAgICAgICByZXR1cm4gIlNwbGl0dGVyIjsKKyAgICAgICAgcmV0dXJuICJTcGxpdHRlciJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0OgotICAgICAgICByZXR1cm4g
IlN0YXRpY1RleHQiOworICAgICAgICByZXR1cm4gIlN0YXRpY1RleHQiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6U3Vic2NyaXB0OgotICAgICAgICByZXR1cm4gIlN1YnNjcmlwdCI7
CisgICAgICAgIHJldHVybiAiU3Vic2NyaXB0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlN1bW1hcnk6Ci0gICAgICAgIHJldHVybiAiU3VtbWFyeSI7CisgICAgICAgIHJldHVybiAi
U3VtbWFyeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTdXBlcnNjcmlwdDoKLSAg
ICAgICAgcmV0dXJuICJTdXBlcnNjcmlwdCI7CisgICAgICAgIHJldHVybiAiU3VwZXJzY3JpcHQi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3dpdGNoOgotICAgICAgICByZXR1cm4g
IlN3aXRjaCI7CisgICAgICAgIHJldHVybiAiU3dpdGNoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlN5c3RlbVdpZGU6Ci0gICAgICAgIHJldHVybiAiU3lzdGVtV2lkZSI7CisgICAg
ICAgIHJldHVybiAiU3lzdGVtV2lkZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpT
VkdSb290OgotICAgICAgICByZXR1cm4gIlNWR1Jvb3QiOworICAgICAgICByZXR1cm4gIlNWR1Jv
b3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHVGV4dDoKLSAgICAgICAgcmV0
dXJuICJTVkdUZXh0IjsKKyAgICAgICAgcmV0dXJuICJTVkdUZXh0Il9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlNWR1RTcGFuOgotICAgICAgICByZXR1cm4gIlNWR1RTcGFuIjsKKyAg
ICAgICAgcmV0dXJuICJTVkdUU3BhbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpT
VkdUZXh0UGF0aDoKLSAgICAgICAgcmV0dXJuICJTVkdUZXh0UGF0aCI7CisgICAgICAgIHJldHVy
biAiU1ZHVGV4dFBhdGgiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiR3JvdXA6
Ci0gICAgICAgIHJldHVybiAiVGFiR3JvdXAiOworICAgICAgICByZXR1cm4gIlRhYkdyb3VwIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYkxpc3Q6Ci0gICAgICAgIHJldHVybiAi
VGFiTGlzdCI7CisgICAgICAgIHJldHVybiAiVGFiTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpUYWJQYW5lbDoKLSAgICAgICAgcmV0dXJuICJUYWJQYW5lbCI7CisgICAgICAg
IHJldHVybiAiVGFiUGFuZWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiOgot
ICAgICAgICByZXR1cm4gIlRhYiI7CisgICAgICAgIHJldHVybiAiVGFiIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlOgotICAgICAgICByZXR1cm4gIlRhYmxlIjsKKyAgICAg
ICAgcmV0dXJuICJUYWJsZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZUhl
YWRlckNvbnRhaW5lcjoKLSAgICAgICAgcmV0dXJuICJUYWJsZUhlYWRlckNvbnRhaW5lciI7Cisg
ICAgICAgIHJldHVybiAiVGFibGVIZWFkZXJDb250YWluZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VGVybToKLSAgICAgICAgcmV0dXJuICJUZXJtIjsKKyAgICAgICAgcmV0dXJu
ICJUZXJtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRBcmVhOgotICAgICAg
ICByZXR1cm4gIlRleHRBcmVhIjsKKyAgICAgICAgcmV0dXJuICJUZXh0QXJlYSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0RmllbGQ6Ci0gICAgICAgIHJldHVybiAiVGV4dEZp
ZWxkIjsKKyAgICAgICAgcmV0dXJuICJUZXh0RmllbGQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGV4dEdyb3VwOgotICAgICAgICByZXR1cm4gIlRleHRHcm91cCI7CisgICAgICAg
IHJldHVybiAiVGV4dEdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRpbWU6
Ci0gICAgICAgIHJldHVybiAiVGltZSI7CisgICAgICAgIHJldHVybiAiVGltZSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlOgotICAgICAgICByZXR1cm4gIlRyZWUiOworICAg
ICAgICByZXR1cm4gIlRyZWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdy
aWQ6Ci0gICAgICAgIHJldHVybiAiVHJlZUdyaWQiOworICAgICAgICByZXR1cm4gIlRyZWVHcmlk
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRyZWVJdGVtOgotICAgICAgICByZXR1
cm4gIlRyZWVJdGVtIjsKKyAgICAgICAgcmV0dXJuICJUcmVlSXRlbSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0b246Ci0gICAgICAgIHJldHVybiAiVG9nZ2xlQnV0
dG9uIjsKKyAgICAgICAgcmV0dXJuICJUb2dnbGVCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VG9vbGJhcjoKLSAgICAgICAgcmV0dXJuICJUb29sYmFyIjsKKyAgICAgICAg
cmV0dXJuICJUb29sYmFyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd246
Ci0gICAgICAgIHJldHVybiAiVW5rbm93biI7CisgICAgICAgIHJldHVybiAiVW5rbm93biJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpVc2VySW50ZXJmYWNlVG9vbHRpcDoKLSAgICAg
ICAgcmV0dXJuICJVc2VySW50ZXJmYWNlVG9vbHRpcCI7CisgICAgICAgIHJldHVybiAiVXNlcklu
dGVyZmFjZVRvb2x0aXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmFsdWVJbmRp
Y2F0b3I6Ci0gICAgICAgIHJldHVybiAiVmFsdWVJbmRpY2F0b3IiOworICAgICAgICByZXR1cm4g
IlZhbHVlSW5kaWNhdG9yIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlZpZGVvOgot
ICAgICAgICByZXR1cm4gIlZpZGVvIjsKKyAgICAgICAgcmV0dXJuICJWaWRlbyJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuICJX
ZWJBcHBsaWNhdGlvbiI7CisgICAgICAgIHJldHVybiAiV2ViQXBwbGljYXRpb24iX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXJlYToKLSAgICAgICAgcmV0dXJuICJXZWJBcmVh
IjsKKyAgICAgICAgcmV0dXJuICJXZWJBcmVhIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OldlYkNvcmVMaW5rOgotICAgICAgICByZXR1cm4gIldlYkNvcmVMaW5rIjsKKyAgICAgICAg
cmV0dXJuICJXZWJDb3JlTGluayJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXaW5k
b3c6Ci0gICAgICAgIHJldHVybiAiV2luZG93IjsKKyAgICAgICAgcmV0dXJuICJXaW5kb3ciX3M7
CiAgICAgfQogICAgIFVOUkVBQ0hBQkxFKCk7Ci0gICAgcmV0dXJuICIiOworICAgIHJldHVybiAi
Il9zOwogfQogCiBlbnVtIGNsYXNzIEFjY2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSB7IENhY2hl
RGVzdHJveWVkLCBFbGVtZW50RGVzdHJveWVkLCBFbGVtZW50Q2hhbmdlZCB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKaW5kZXggNDQyMjk1NWEzODY1ZGJjNWRkNzIzNTRjYmJmYmYyMDI3NjcxNWIwNi4u
YTZkMzEwMmM4ODJhNjA5OGY0NzkyYjdiY2QwNmJhMjZkNDI4N2Q4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCkBAIC0yNzg3LDExICsyNzg3LDExIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6cmVuZGVyT2JqZWN0SXNPYnNlcnZhYmxlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAg
ICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgaWYgKG5vZGVI
YXNSb2xlKG5vZGUsICJsaXN0Ym94IikgfHwgKGlzPFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5k
ZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKS5pc0xpc3RC
b3goKSkpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Ym94Il9zKSB8fCAoaXM8UmVu
ZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKSAmJiBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9i
amVjdD4ocmVuZGVyZXIpLmlzTGlzdEJveCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAg
ICAvLyBUZXh0Ym94ZXMgc2hvdWxkIHNlbmQgb3V0IG5vdGlmaWNhdGlvbnMuCi0gICAgaWYgKG5v
ZGVIYXNSb2xlKG5vZGUsICJ0ZXh0Ym94IikgfHwgKGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBjb250
ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJsZWQoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpKSkK
KyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRleHRib3giX3MpIHx8IChpczxFbGVtZW50Pigq
bm9kZSkgJiYgY29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKGRvd25jYXN0PEVsZW1l
bnQ+KG5vZGUpKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIHJldHVybiBmYWxz
ZTsKQEAgLTI4NDAsNyArMjg0MCw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2hvdWxkSWdub3JlQXR0cmlidXRlUm9sZSgpIGNvbnN0CiAKIEFjY2Vzc2liaWxpdHlSb2xlIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKIHsK
LSAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZSIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRl
dGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIl9zKTsKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAg
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93bjsKIApAQCAtMzI4MCw3ICszMjgw
LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphZGRMaXN0SXRlbU1hcmtlcigp
CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRy
ZW5DcmVhdGlvbigpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbiIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24iX3MpOwog
ICAgIC8vIElmIGEgbWVudSBkb2VzIG5vdCBoYXZlIHZhbGlkIG1lbnVpdGVtIGNoaWxkcmVuLCBp
dCBzaG91bGQgbm90IGJlIGV4cG9zZWQgYXMgYSBtZW51LgogICAgIGF1dG8gcm9sZSA9IHJvbGVW
YWx1ZSgpOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51KSB7CkBAIC0z
MzY0LDcgKzMzNjQsNyBAQCBjb25zdCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
bGl2ZVJlZ2lvblJlbGV2YW50KCkgY29uc3QKIAogICAgIC8vIERlZmF1bHQgYXJpYS1yZWxldmFu
dCA9ICJhZGRpdGlvbnMgdGV4dCIuCiAgICAgaWYgKHJlbGV2YW50LmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuICJhZGRpdGlvbnMgdGV4dCI7CisgICAgICAgIHJldHVybiAiYWRkaXRpb25zIHRl
eHQiX3M7CiAgICAgCiAgICAgcmV0dXJuIHJlbGV2YW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKaW5kZXgg
MjdjZjg2OWY0ZDU3NzFjOTg0YjJiZTNmNDYxMjZiOTg3N2I2MDAxNS4uMzRhN2JhN2NjZGI0ZTUz
YWE1NTQ2MTk4MGYxNTRkMzg4YzJhZjQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwCkBAIC02NSw3ICs2NSw3
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0ln
bm9yZWQoKSBjb25zdAogICAgIAogICAgIC8vIElnbm9yZSBhbm9ueW1vdXMgdGFibGUgY2VsbHMg
YXMgbG9uZyBhcyB0aGV5J3JlIG5vdCBpbiBhIHRhYmxlIChpZS4gd2hlbiBkaXNwbGF5OnRhYmxl
IGlzIHVzZWQpLgogICAgIFJlbmRlck9iamVjdCogcmVuZGVyVGFibGUgPSBpczxSZW5kZXJUYWJs
ZUNlbGw+KHJlbmRlcmVyKCkpID8gZG93bmNhc3Q8UmVuZGVyVGFibGVDZWxsPigqbV9yZW5kZXJl
cikudGFibGUoKSA6IG51bGxwdHI7Ci0gICAgYm9vbCBpblRhYmxlID0gcmVuZGVyVGFibGUgJiYg
cmVuZGVyVGFibGUtPm5vZGUoKSAmJiAocmVuZGVyVGFibGUtPm5vZGUoKS0+aGFzVGFnTmFtZSh0
YWJsZVRhZykgfHwgbm9kZUhhc1JvbGUocmVuZGVyVGFibGUtPm5vZGUoKSwgImdyaWQiKSk7Cisg
ICAgYm9vbCBpblRhYmxlID0gcmVuZGVyVGFibGUgJiYgcmVuZGVyVGFibGUtPm5vZGUoKSAmJiAo
cmVuZGVyVGFibGUtPm5vZGUoKS0+aGFzVGFnTmFtZSh0YWJsZVRhZykgfHwgbm9kZUhhc1JvbGUo
cmVuZGVyVGFibGUtPm5vZGUoKSwgImdyaWQiX3MpKTsKICAgICBpZiAoIW5vZGUoKSAmJiAhaW5U
YWJsZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcAppbmRleCA1OTBjOTYxNTk2
MDYwZGI2ZGIxNTUzODk4ZWIxNmYzMGI0NTRlNjhkLi4xYzAwYmM5NTQyM2UyOTZhZDUxMjYzNzdl
NDgxYzdjZTc5ZGZiZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUcmVlLmNwcApAQCAtNjgsNyArNjgsNyBAQCBBY2Nlc3NpYmlsaXR5Um9s
ZSBBY2Nlc3NpYmlsaXR5VHJlZTo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogYm9vbCBB
Y2Nlc3NpYmlsaXR5VHJlZTo6bm9kZUhhc1RyZWVJdGVtQ2hpbGQoTm9kZSYgbm9kZSkgY29uc3QK
IHsKICAgICBmb3IgKGF1dG8qIGNoaWxkID0gbm9kZS5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGls
ZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmIChub2RlSGFzUm9sZShjaGls
ZCwgInRyZWVpdGVtIikpCisgICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwgInRyZWVpdGVt
Il9zKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7
CkBAIC05MiwxNCArOTIsMTQgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VHJlZTo6aXNUcmVlVmFsaWQo
KSBjb25zdAogCiAgICAgICAgIGlmICghaXM8RWxlbWVudD4oKmNoaWxkKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICBpZiAobm9kZUhhc1JvbGUoY2hpbGQsICJ0cmVlaXRlbSIpKQor
ICAgICAgICBpZiAobm9kZUhhc1JvbGUoY2hpbGQsICJ0cmVlaXRlbSJfcykpCiAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAicHJlc2VudGF0aW9u
IikpIHsKKyAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAicHJlc2VudGF0aW9uIl9zKSkg
ewogICAgICAgICAgICAgaWYgKCFub2RlSGFzVHJlZUl0ZW1DaGlsZCgqY2hpbGQpKQogICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
Ci0gICAgICAgIGlmICghbm9kZUhhc1JvbGUoY2hpbGQsICJncm91cCIpKQorICAgICAgICBpZiAo
IW5vZGVIYXNSb2xlKGNoaWxkLCAiZ3JvdXAiX3MpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIGZvciAoYXV0byogZ3JvdXBDaGlsZCA9IGNoaWxkLT5maXJzdENoaWxkKCk7
IGdyb3VwQ2hpbGQ7IGdyb3VwQ2hpbGQgPSBncm91cENoaWxkLT5uZXh0U2libGluZygpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCBhMTM0YWU3NTJmYTIwMTJlNzgwZDk5ZmExMDhj
M2Y0ODc5NmMxMTFjLi41ZjAyMDFmMDdiNTM1MDViNzBkZGUzMzlhMmNiMjk2NTdjZjc4NDVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElz
b2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIHZvaWQgQVhJ
c29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBjb3Jl
T2JqZWN0LCBib29sIGlzCiAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpUZXh0
TGVuZ3RoLCBvYmplY3QudGV4dExlbmd0aCgpKTsKIAogICAgIGlmIChvYmplY3QuaXNSYWRpb0J1
dHRvbigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG5hbWVBdHRyaWJ1dGUgPSBvYmplY3QuYXR0cmli
dXRlVmFsdWUoIm5hbWUiKSkKKyAgICAgICAgaWYgKGF1dG8gbmFtZUF0dHJpYnV0ZSA9IG9iamVj
dC5hdHRyaWJ1dGVWYWx1ZSgibmFtZSJfcykpCiAgICAgICAgICAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6TmFtZUF0dHJpYnV0ZSwgbmFtZUF0dHJpYnV0ZS0+aXNvbGF0ZWRDb3B5KCkp
OwogICAgIH0KIApAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5p
dGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBjb3JlT2JqZWN0LCBib29sIGlzCiAg
ICAgU3RyaW5nIGNvbWJpbmVkQ2xhc3NMaXN0OwogICAgIGZvciAoYXV0byBpdCA9IGNsYXNzTGlz
dC5iZWdpbigpLCBlbmQgPSBjbGFzc0xpc3QuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAg
ICAgICBjb21iaW5lZENsYXNzTGlzdC5hcHBlbmQoKml0KTsKLSAgICAgICAgY29tYmluZWRDbGFz
c0xpc3QuYXBwZW5kKCIgIik7CisgICAgICAgIGNvbWJpbmVkQ2xhc3NMaXN0LmFwcGVuZCgiICJf
cyk7CiAgICAgfQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpDbGFzc0xpc3QsIGNv
bWJpbmVkQ2xhc3NMaXN0KTsKIApAQCAtNjAwLDcgKzYwMCw3IEBAIHZvaWQgQVhJc29sYXRlZE9i
amVjdDo6YWNjZXNzaWJpbGl0eVRleHQoVmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYgdGV4dHMp
IGNvbnN0CiB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmNsYXNzTGlzdChWZWN0b3I8U3RyaW5nPiYg
bGlzdCkgY29uc3QKIHsKICAgICBTdHJpbmcgY2xhc3NMaXN0ID0gc3RyaW5nQXR0cmlidXRlVmFs
dWUoQVhQcm9wZXJ0eU5hbWU6OkNsYXNzTGlzdCk7Ci0gICAgbGlzdC5hcHBlbmRWZWN0b3IoY2xh
c3NMaXN0LnNwbGl0KCIgIikpOworICAgIGxpc3QuYXBwZW5kVmVjdG9yKGNsYXNzTGlzdC5zcGxp
dCgiICJfcykpOwogfQogCiBQQUw6OlNlc3Npb25JRCBBWElzb2xhdGVkT2JqZWN0OjpzZXNzaW9u
SUQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmluZGV4IDY3ZjViMWRlZmQ5YzQ3OGVk
ZWJiMDc5M2M2NTBlMzhjZjM5YTNjNGIuLjFjZTc4NTAyZDJlYzc3MjI3Y2JmM2RiMjc1MGMwN2Fi
Y2U4MzljZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKQEAgLTYyLDE4ICs2MiwxOCBAQCBB
WElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNo
ZSkKICAgICAsIG1fYXhPYmplY3RDYWNoZShheE9iamVjdENhY2hlKQogICAgICwgbV91c2VkT25B
WFRocmVhZChheE9iamVjdENhY2hlLT51c2VkT25BWFRocmVhZCgpKQogewotICAgIEFYVFJBQ0Uo
IkFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjpBWElzb2xhdGVkVHJlZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
IH0KIAogQVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSgpCiB7Ci0gICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUiX3MpOwogfQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpj
bGVhcigpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNsZWFyIik7CisgICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OmNsZWFyIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIG1fYXhPYmplY3RDYWNoZSA9IG51bGxwdHI7CiAgICAgbV9ub2RlTWFwLmNsZWFy
KCk7CkBAIC04NSwxNCArODUsMTQgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6Y2xlYXIoKQogCiBS
ZWZQdHI8QVhJc29sYXRlZFRyZWU+IEFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQoQVhJc29sYXRl
ZFRyZWVJRCB0cmVlSUQpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JJ
RCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQiX3MpOwogICAgIExv
Y2tlciBsb2NrZXIgeyBzX2NhY2hlTG9jayB9OwogICAgIHJldHVybiB0cmVlSURDYWNoZSgpLmdl
dCh0cmVlSUQpOwogfQogCiBSZWY8QVhJc29sYXRlZFRyZWU+IEFYSXNvbGF0ZWRUcmVlOjpjcmVh
dGUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xh
dGVkVHJlZTo6Y3JlYXRlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNyZWF0ZSJf
cyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoYXhPYmplY3RDYWNo
ZSAmJiBheE9iamVjdENhY2hlLT5wYWdlSUQoKSk7CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBSZWY8
QVhJc29sYXRlZFRyZWU+IEFYSXNvbGF0ZWRUcmVlOjpjcmVhdGUoQVhPYmplY3RDYWNoZSogYXhP
YmplY3RDYWNoZSkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRChQ
YWdlSWRlbnRpZmllciBwYWdlSUQpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJl
bW92ZVRyZWVGb3JQYWdlSUQiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3Zl
VHJlZUZvclBhZ2VJRCJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMb2Nr
ZXIgbG9ja2VyIHsgc19jYWNoZUxvY2sgfTsKIApAQCAtMTU3LDcgKzE1Nyw3IEBAIFJlZlB0cjxB
WElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6bm9kZUZvcklEKEFYSUQgYXhJRCkgY29u
c3QKIAogVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiBBWElzb2xhdGVkVHJlZTo6b2JqZWN0
c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJRD4mIGF4SURzKSBjb25zdAogewotICAgIEFYVFJBQ0Uo
IkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6Om9iamVjdHNGb3JJRHMiX3MpOwogICAgIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0
Pj4gcmVzdWx0OwogICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGF4SURzLnNpemUo
KSk7CiAgICAgZm9yIChhdXRvJiBheElEIDogYXhJRHMpIHsKQEAgLTE3OCw3ICsxNzgsNyBAQCBW
ZWN0b3I8QVhJRD4gQVhJc29sYXRlZFRyZWU6Omlkc0Zvck9iamVjdHMoY29uc3QgVmVjdG9yPFJl
ZlB0cjxBWENvcmVPYmplY3Q+PiYgbwogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1
YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhDb3JlT2JqZWN0KiBheFBhcmVudCwgYm9v
bCBhdHRhY2hXcmFwcGVyKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0
ZVN1YnRyZWUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVl
Il9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgaWYgKCFheE9iamVjdC5v
YmplY3RJRCgpLmlzVmFsaWQoKSkKQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIEFYSXNvbGF0ZWRU
cmVlOjpxdWV1ZUNoYW5nZXNBbmRSZW1vdmFscyhjb25zdCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNo
YW5nZXMsCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRy
ZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJlbnRJRCwgYm9vbCBhdHRhY2hXcmFw
cGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsIEhhc2hTZXQ8QVhJRD4qIGlkc0JlaW5n
Q2hhbmdlZCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFu
Z2VzRm9yU3VidHJlZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9k
ZUNoYW5nZXNGb3JTdWJ0cmVlIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAg
ICAgYXV0byBub2RlQ2hhbmdlID0gbm9kZUNoYW5nZUZvck9iamVjdChheE9iamVjdCwgcGFyZW50
SUQsIGF0dGFjaFdyYXBwZXIpOwpAQCAtMjk1LDcgKzI5NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRy
ZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwg
QVhJRCBwCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGUoQVhDb3JlT2JqZWN0JiBh
eE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZSIpOwor
ICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlIl9zKTsKICAgICBBWExPRygm
YXhPYmplY3QpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTMxMyw3ICszMTMs
NyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlKEFYQ29yZU9iamVjdCYgYXhPYmpl
Y3QpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0eShjb25zdCBBWENv
cmVPYmplY3QmIGF4T2JqZWN0LCBBWFByb3BlcnR5TmFtZSBwcm9wZXJ0eSkKIHsKLSAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnR5Iik7CisgICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0eSJfcyk7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIAogICAgIEFYUHJvcGVydHlNYXAgcHJvcGVydHlNYXA7CkBAIC0zNDgsNyAr
MzQ4LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnR5KGNvbnN0IEFY
Q29yZU9iamVjdCYgYXhPYmplY3QsIEFYUHJvcGVydHkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6
dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4iKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6dXBkYXRlQ2hpbGRyZW4iX3MpOwogICAgIEFYTE9HKCJGb3IgQVhPYmplY3Q6Iik7CiAg
ICAgQVhMT0coJmF4T2JqZWN0KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtNDIy
LDcgKzQyMiw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9i
amVjdCYgYXhPYmplY3QpCiAKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJl
ZTo6Zm9jdXNlZE5vZGUoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2Vk
Tm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSJfcyk7CiAg
ICAgUkVMRUFTRV9BU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICAvLyBBcHBseSBwZW5kaW5n
IGNoYW5nZXMgaW4gY2FzZSBmb2N1cyBoYXMgY2hhbmdlZCBhbmQgaGFzbid0IGJlZW4gdXBkYXRl
ZC4KICAgICBhcHBseVBlbmRpbmdDaGFuZ2VzKCk7CkBAIC00MzQsMTQgKzQzNCwxNCBAQCBSZWZQ
dHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIAogUmVm
UHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSgpCiB7Ci0gICAg
QVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJvb3ROb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29s
YXRlZFRyZWU6OnJvb3ROb2RlIl9zKTsKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dM
b2NrIH07CiAgICAgcmV0dXJuIG1fcm9vdE5vZGU7CiB9CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6
OnNldFJvb3ROb2RlKEFYSXNvbGF0ZWRPYmplY3QqIHJvb3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJ
c29sYXRlZFRyZWU6OnNldFJvb3ROb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6
OnNldFJvb3ROb2RlIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VS
VChtX2NoYW5nZUxvZ0xvY2suaXNMb2NrZWQoKSk7CiAgICAgQVNTRVJUKCFtX3Jvb3ROb2RlKTsK
QEAgLTQ1Miw3ICs0NTIsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZShBWElz
b2xhdGVkT2JqZWN0KiByb290KQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9k
ZUlEKEFYSUQgYXhJRCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNl
ZE5vZGVJRCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlE
Il9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJheElEICIsIGF4SUQubG9nZ2luZ1N0cmluZygp
KSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtNDY2LDcgKzQ2Niw3IEBAIHZv
aWQgQVhJc29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2RlSUQoQVhJRCBheElEKQogCiB2b2lkIEFY
SXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MoZG91YmxlIG5ld1Byb2dyZXNzVmFs
dWUpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVz
cyIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3Mi
X3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIlVwZGF0aW5nIGxvYWRpbmcgcHJvZ3Jlc3MgdG8g
IiwgbmV3UHJvZ3Jlc3NWYWx1ZSwgIiBmb3IgdHJlZUlEICIsIHRyZWVJRCgpKSk7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtNDc1LDcgKzQ3NSw3IEBAIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyhkb3VibGUgbmV3UHJvZ3Jlc3NWYWx1ZSkKIAog
dm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZShjb25zdCBBWENvcmVPYmplY3QmIGF4T2Jq
ZWN0KQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlIik7CisgICAg
QVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUiX3MpOwogICAgIEFYTE9HKG1ha2VT
dHJpbmcoIm9iamVjdElEICIsIGF4T2JqZWN0Lm9iamVjdElEKCkubG9nZ2luZ1N0cmluZygpKSk7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtNDg1LDcgKzQ4NSw3IEBAIHZvaWQg
QVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUoY29uc3QgQVhDb3JlT2JqZWN0JiBheE9iamVjdCkK
IAogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwKEFYSUQgb2Jq
ZWN0SUQsIEFYQ29yZU9iamVjdCogYXhQYXJlbnQsIGNvbnN0IEhhc2hTZXQ8QVhJRD4mIGlkc1Rv
S2VlcCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZUZyb21O
b2RlTWFwIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9t
Tm9kZU1hcCJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiUmVtb3Zpbmcgc3VidHJlZSBmb3Ig
b2JqZWN0SUQgIiwgb2JqZWN0SUQubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIApAQCAtNTIzLDcgKzUyMyw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJl
bW92ZVN1YnRyZWVGcm9tTm9kZU1hcChBWElEIG9iamVjdElELCBBWENvcmVPYmplY3QqIGF4UGFy
CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQogewotICAgIEFY
VFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzIik7CisgICAgQVhUUkFD
RSgiQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMiX3MpOwogCiAgICAgLy8gSW4g
aXNvbGF0ZWQgdHJlZSBtb2RlIDIsIG9ubHkgYXBwbHkgcGVuZGluZyBjaGFuZ2VzIG9uIHRoZSBB
WCB0aHJlYWQuCiAgICAgQVNTRVJUKG1fdXNlZE9uQVhUaHJlYWQgPyAhaXNNYWluVGhyZWFkKCkg
OiBpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQppbmRleCBhMjg5NTM4NzRjODA1
NTEyN2Y4MGIyZmMzNjJkOWNlODIxZTcwMWM0Li5mYzZlNDA4Y2ZjN2E5MjUzYTFlODk1MDdlMDA1
NDk0MDM4YzlmYjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21h
Yy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KQEAgLTIyMiwyMCArMjIyLDIwIEBA
IFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25z
dAogICAgIH0KIAogICAgIGlmIChpc01ldGVyKCkpCi0gICAgICAgIHJldHVybiAiQVhNZXRlciI7
CisgICAgICAgIHJldHVybiAiQVhNZXRlciJfczsKIAogI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5U
KQogICAgIGlmIChpc01vZGVsKCkpCi0gICAgICAgIHJldHVybiAiQVhNb2RlbCI7CisgICAgICAg
IHJldHVybiAiQVhNb2RlbCJfczsKICNlbmRpZgogCiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9s
ZSA9IHJvbGVWYWx1ZSgpOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jp
em9udGFsUnVsZSkKLSAgICAgICAgcmV0dXJuICJBWENvbnRlbnRTZXBhcmF0b3IiOworICAgICAg
ICByZXR1cm4gIkFYQ29udGVudFNlcGFyYXRvciJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uKQogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5
VG9nZ2xlU3Vicm9sZTsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVy
KQotICAgICAgICByZXR1cm4gIkFYRm9vdGVyIjsKKyAgICAgICAgcmV0dXJuICJBWEZvb3RlciJf
czsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3BpbkJ1dHRvblBhcnQpIHsK
ICAgICAgICAgaWYgKGlzSW5jcmVtZW50b3IoKSkKICAgICAgICAgICAgIHJldHVybiBOU0FjY2Vz
c2liaWxpdHlJbmNyZW1lbnRBcnJvd1N1YnJvbGU7CkBAIC0yNDMsNzkgKzI0Myw3OSBAQCBTdHJp
bmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKICAg
ICB9CiAKICAgICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9uKCkpCi0gICAgICAgIHJldHVybiAiQVhG
aWxlVXBsb2FkQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJBWEZpbGVVcGxvYWRCdXR0b24iX3M7
CiAKICAgICBpZiAoaXNUcmVlSXRlbSgpKQogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5
T3V0bGluZVJvd1N1YnJvbGU7CiAKICAgICBpZiAoaXNGaWVsZHNldCgpKQotICAgICAgICByZXR1
cm4gIkFYRmllbGRzZXQiOworICAgICAgICByZXR1cm4gIkFYRmllbGRzZXQiX3M7CiAKICAgICBp
ZiAoaXNMaXN0KCkpIHsKICAgICAgICAgaWYgKGlzVW5vcmRlcmVkTGlzdCgpIHx8IGlzT3JkZXJl
ZExpc3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhDb250ZW50TGlzdCI7CisgICAgICAgICAg
ICByZXR1cm4gIkFYQ29udGVudExpc3QiX3M7CiAgICAgICAgIGlmIChpc0Rlc2NyaXB0aW9uTGlz
dCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uTGlzdCI7CisgICAgICAgICAg
ICByZXR1cm4gIkFYRGVzY3JpcHRpb25MaXN0Il9zOwogICAgIH0KIAogICAgIC8vIEFSSUEgY29u
dGVudCBzdWJyb2xlcy4KICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpMYW5kbWFya0Jhbm5lcjoKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQmFubmVy
IjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQmFubmVyIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeToKLSAgICAgICAgcmV0dXJuICJBWExh
bmRtYXJrQ29tcGxlbWVudGFyeSI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya0NvbXBsZW1l
bnRhcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5m
bzoKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29udGVudEluZm8iOworICAgICAgICByZXR1
cm4gIkFYTGFuZG1hcmtDb250ZW50SW5mbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpMYW5kbWFya01haW46Ci0gICAgICAgIHJldHVybiAiQVhMYW5kbWFya01haW4iOworICAgICAg
ICByZXR1cm4gIkFYTGFuZG1hcmtNYWluIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkxhbmRtYXJrTmF2aWdhdGlvbjoKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrTmF2aWdhdGlv
biI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya05hdmlnYXRpb24iX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtEb2NSZWdpb246CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0gICAgICAgIHJldHVybiAiQVhMYW5kbWFya1JlZ2lv
biI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJr
U2VhcmNoIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrU2VhcmNoIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnQ6Ci0gICAgICAgIHJldHVybiAiQVhB
cHBsaWNhdGlvbkFsZXJ0IjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnQiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25BbGVydERpYWxvZzoKLSAg
ICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnREaWFsb2ciOworICAgICAgICByZXR1cm4g
IkFYQXBwbGljYXRpb25BbGVydERpYWxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uRGlhbG9n
IjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uRGlhbG9nIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
RmVlZDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90ZToKLSAgICAgICAgcmV0
dXJuICJBWEFwcGxpY2F0aW9uR3JvdXAiOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25H
cm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxvZzoKLSAg
ICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTG9nIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxp
Y2F0aW9uTG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTWFy
cXVlZToKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTWFycXVlZSI7CisgICAgICAgIHJl
dHVybiAiQVhBcHBsaWNhdGlvbk1hcnF1ZWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6QXBwbGljYXRpb25TdGF0dXM6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblN0YXR1
cyI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblN0YXR1cyJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRpbWVyOgotICAgICAgICByZXR1cm4gIkFYQXBw
bGljYXRpb25UaW1lciI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblRpbWVyIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50OgogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0gICAgICAgIHJldHVybiAiQVhEb2N1bWVudCI7
CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpEb2N1bWVudEFydGljbGU6Ci0gICAgICAgIHJldHVybiAiQVhEb2N1bWVudEFydGljbGUi
OworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRBcnRpY2xlIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkRvY3VtZW50TWF0aDoKLSAgICAgICAgcmV0dXJuICJBWERvY3VtZW50TWF0
aCI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudE1hdGgiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgotICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnROb3Rl
IjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50Tm90ZSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpVc2VySW50ZXJmYWNlVG9vbHRpcDoKLSAgICAgICAgcmV0dXJuICJBWFVzZXJJ
bnRlcmZhY2VUb29sdGlwIjsKKyAgICAgICAgcmV0dXJuICJBWFVzZXJJbnRlcmZhY2VUb29sdGlw
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYlBhbmVsOgotICAgICAgICByZXR1
cm4gIkFYVGFiUGFuZWwiOworICAgICAgICByZXR1cm4gIkFYVGFiUGFuZWwiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVmaW5pdGlvbjoKLSAgICAgICAgcmV0dXJuICJBWERlZmlu
aXRpb24iOworICAgICAgICByZXR1cm4gIkFYRGVmaW5pdGlvbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3RUZXJtOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRlcm06Ci0gICAgICAgIHJldHVybiAiQVhUZXJtIjsKKyAgICAgICAgcmV0dXJuICJB
WFRlcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0RGV0
YWlsOgotICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb24iOworICAgICAgICByZXR1cm4gIkFY
RGVzY3JpcHRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXBwbGljYXRp
b246Ci0gICAgICAgIHJldHVybiAiQVhXZWJBcHBsaWNhdGlvbiI7CisgICAgICAgIHJldHVybiAi
QVhXZWJBcHBsaWNhdGlvbiJfczsKICAgICAgICAgLy8gRGVmYXVsdCBkb2Vzbid0IHJldHVybiBh
bnl0aGluZywgc28gcm9sZXMgZGVmaW5lZCBiZWxvdyBjYW4gYmUgY2hvc2VuLgogICAgIGRlZmF1
bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMzIzLDUxICszMjMsNTEgQEAgU3RyaW5nIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAKICAgICBpZiAocm9s
ZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0aEVsZW1lbnQpIHsKICAgICAgICAgaWYgKGlzTWF0
aEZyYWN0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZyYWN0aW9uIjsKKyAgICAg
ICAgICAgIHJldHVybiAiQVhNYXRoRnJhY3Rpb24iX3M7CiAgICAgICAgIGlmIChpc01hdGhGZW5j
ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VkIjsKKyAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoRmVuY2VkIl9zOwogICAgICAgICBpZiAoaXNNYXRoU3Vic2NyaXB0U3VwZXJz
Y3JpcHQoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQi
OworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCJfczsKICAg
ICAgICAgaWYgKGlzTWF0aFJvdygpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhSb3ciOwor
ICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhSb3ciX3M7CiAgICAgICAgIGlmIChpc01hdGhVbmRl
ck92ZXIoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVW5kZXJPdmVyIjsKKyAgICAgICAg
ICAgIHJldHVybiAiQVhNYXRoVW5kZXJPdmVyIl9zOwogICAgICAgICBpZiAoaXNNYXRoU3F1YXJl
Um9vdCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTcXVhcmVSb290IjsKKyAgICAgICAg
ICAgIHJldHVybiAiQVhNYXRoU3F1YXJlUm9vdCJfczsKICAgICAgICAgaWYgKGlzTWF0aFJvb3Qo
KSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm9vdCI7CisgICAgICAgICAgICByZXR1cm4g
IkFYTWF0aFJvb3QiX3M7CiAgICAgICAgIGlmIChpc01hdGhUZXh0KCkpCi0gICAgICAgICAgICBy
ZXR1cm4gIkFYTWF0aFRleHQiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUZXh0Il9zOwog
ICAgICAgICBpZiAoaXNNYXRoTnVtYmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aE51
bWJlciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aE51bWJlciJfczsKICAgICAgICAgaWYg
KGlzTWF0aElkZW50aWZpZXIoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoSWRlbnRpZmll
ciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aElkZW50aWZpZXIiX3M7CiAgICAgICAgIGlm
IChpc01hdGhUYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZSI7CisgICAg
ICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlIl9zOwogICAgICAgICBpZiAoaXNNYXRoVGFibGVS
b3coKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVSb3ciOworICAgICAgICAgICAg
cmV0dXJuICJBWE1hdGhUYWJsZVJvdyJfczsKICAgICAgICAgaWYgKGlzTWF0aFRhYmxlQ2VsbCgp
KQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZUNlbGwiOworICAgICAgICAgICAgcmV0
dXJuICJBWE1hdGhUYWJsZUNlbGwiX3M7CiAgICAgICAgIGlmIChpc01hdGhGZW5jZU9wZXJhdG9y
KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlT3BlcmF0b3IiOworICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhGZW5jZU9wZXJhdG9yIl9zOwogICAgICAgICBpZiAoaXNNYXRoU2Vw
YXJhdG9yT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU2VwYXJhdG9yT3Bl
cmF0b3IiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTZXBhcmF0b3JPcGVyYXRvciJfczsK
ICAgICAgICAgaWYgKGlzTWF0aE9wZXJhdG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0
aE9wZXJhdG9yIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoT3BlcmF0b3IiX3M7CiAgICAg
ICAgIGlmIChpc01hdGhNdWx0aXNjcmlwdCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhN
dWx0aXNjcmlwdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aE11bHRpc2NyaXB0Il9zOwog
ICAgIH0KIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbykKLSAgICAg
ICAgcmV0dXJuICJBWFZpZGVvIjsKKyAgICAgICAgcmV0dXJuICJBWFZpZGVvIl9zOwogICAgIGlm
IChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRpbykKLSAgICAgICAgcmV0dXJuICJBWEF1
ZGlvIjsKKyAgICAgICAgcmV0dXJuICJBWEF1ZGlvIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vz
c2liaWxpdHlSb2xlOjpEZXRhaWxzKQotICAgICAgICByZXR1cm4gIkFYRGV0YWlscyI7CisgICAg
ICAgIHJldHVybiAiQVhEZXRhaWxzIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlS
b2xlOjpTdW1tYXJ5KQotICAgICAgICByZXR1cm4gIkFYU3VtbWFyeSI7CisgICAgICAgIHJldHVy
biAiQVhTdW1tYXJ5Il9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUaW1l
KQotICAgICAgICByZXR1cm4gIkFYVGltZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWFRpbWVH
cm91cCJfczsKIAogICAgIGlmIChpc01lZGlhVGltZWxpbmUoKSkKICAgICAgICAgcmV0dXJuIE5T
QWNjZXNzaWJpbGl0eVRpbWVsaW5lU3Vicm9sZTsKQEAgLTM3NiwyNSArMzc2LDI1IEBAIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAg
ICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U3dpdGNoU3Vicm9sZTsKIAogICAgIGlmIChyb2xl
ID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb24pCi0gICAgICAgIHJldHVybiAiQVhJbnNl
cnRTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWEluc2VydFN0eWxlR3JvdXAiX3M7CiAg
ICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkRlbGV0aW9uKQotICAgICAgICByZXR1
cm4gIkFYRGVsZXRlU3R5bGVHcm91cCI7CisgICAgICAgIHJldHVybiAiQVhEZWxldGVTdHlsZUdy
b3VwIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdXBlcnNjcmlwdCkK
LSAgICAgICAgcmV0dXJuICJBWFN1cGVyc2NyaXB0U3R5bGVHcm91cCI7CisgICAgICAgIHJldHVy
biAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJp
bGl0eVJvbGU6OlN1YnNjcmlwdCkKLSAgICAgICAgcmV0dXJuICJBWFN1YnNjcmlwdFN0eWxlR3Jv
dXAiOworICAgICAgICByZXR1cm4gIkFYU3Vic2NyaXB0U3R5bGVHcm91cCJfczsKIAogICAgIHN3
aXRjaCAocm9sZSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCYXNlOgotICAg
ICAgICByZXR1cm4gIkFYUnVieUJhc2UiOworICAgICAgICByZXR1cm4gIkFYUnVieUJhc2UiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJsb2NrOgotICAgICAgICByZXR1cm4g
IkFYUnVieUJsb2NrIjsKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlCbG9jayJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5SW5saW5lOgotICAgICAgICByZXR1cm4gIkFYUnVieUlu
bGluZSI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5SW5saW5lIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlJ1YnlSdW46Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5UnVuIjsKKyAgICAg
ICAgcmV0dXJuICJBWFJ1YnlSdW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVi
eVRleHQ6Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5VGV4dCI7CisgICAgICAgIHJldHVybiAiQVhS
dWJ5VGV4dCJfczsKICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CkBAIC00MDMs
MTcgKzQwMywxNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3Jt
U3RyaW5nKCkgY29uc3QKICAgICAgICAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICAgICAg
ICAgYXV0byB0YWcgPSB0YWdOYW1lKCk7CiAgICAgICAgIGlmICh0YWcgPT0ga2JkVGFnKQotICAg
ICAgICAgICAgcmV0dXJuIEAiQVhLZXlib2FyZElucHV0U3R5bGVHcm91cCI7CisgICAgICAgICAg
ICByZXR1cm4gIkFYS2V5Ym9hcmRJbnB1dFN0eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcg
PT0gY29kZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYQ29kZVN0eWxlR3JvdXAiOworICAg
ICAgICAgICAgcmV0dXJuICJBWENvZGVTdHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09
IHByZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYUHJlZm9ybWF0dGVkU3R5bGVHcm91cCI7
CisgICAgICAgICAgICByZXR1cm4gIkFYUHJlZm9ybWF0dGVkU3R5bGVHcm91cCJfczsKICAgICAg
ICAgaWYgKHRhZyA9PSBzYW1wVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhTYW1wbGVTdHls
ZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhTYW1wbGVTdHlsZUdyb3VwIl9zOwogICAg
ICAgICBpZiAodGFnID09IHZhclRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYVmFyaWFibGVT
dHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiX3M7
CiAgICAgICAgIGlmICh0YWcgPT0gY2l0ZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYQ2l0
ZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWENpdGVTdHlsZUdyb3VwIl9zOwog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwog
ICAgIH0KQEAgLTQzNiw3ICs0MzYsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9s
ZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdAogCiAgICAgICAgIHN3aXRjaCAocm9sZSkgewog
ICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRpbzoKLSAgICAgICAgICAgIHJldHVy
biBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKCJBdWRpb0VsZW1lbnQiKTsKKyAg
ICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKCJBdWRp
b0VsZW1lbnQiX3MpOwogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9u
OgogICAgICAgICAgICAgcmV0dXJuIEFYRGVmaW5pdGlvblRleHQoKTsKICAgICAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0VGVybToKQEAgLTQ1Myw5ICs0NTMsOSBA
QCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBj
b25zdAogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNYXJrOgogICAgICAgICAgICAg
cmV0dXJuIEFYTWFya1RleHQoKTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Vmlk
ZW86Ci0gICAgICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmlu
ZygiVmlkZW9FbGVtZW50Iik7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250
cm9sRWxlbWVudFN0cmluZygiVmlkZW9FbGVtZW50Il9zKTsKICAgICAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoKLSAgICAgICAgICAgIHJldHVybiBBWEFSSUFD
b250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3VtZW50Iik7CisgICAgICAgICAgICByZXR1cm4gQVhB
UklBQ29udGVudEdyb3VwVGV4dCgiQVJJQURvY3VtZW50Iik7CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKaW5kZXggMjM5YmQwNDVmODBhZWE4ZGNkZjMx
YzVlMGM0Mzg4YTAyYjUyOTU1Mi4uNDMxZmRlYTE1NzI2MjcyYTJiNjhmOTc0YjI2ZTBhZTZhNTVm
YzBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAK
QEAgLTY5LDcgKzY5LDcgQEAgRWZmZWN0VGltaW5nIEFuaW1hdGlvbkVmZmVjdDo6Z2V0VGltaW5n
KCkgY29uc3QKICAgICB0aW1pbmcuaXRlcmF0aW9uU3RhcnQgPSBtX2l0ZXJhdGlvblN0YXJ0Owog
ICAgIHRpbWluZy5pdGVyYXRpb25zID0gbV9pdGVyYXRpb25zOwogICAgIGlmIChtX2l0ZXJhdGlv
bkR1cmF0aW9uID09IDBfcykKLSAgICAgICAgdGltaW5nLmR1cmF0aW9uID0gImF1dG8iOworICAg
ICAgICB0aW1pbmcuZHVyYXRpb24gPSAiYXV0byJfczsKICAgICBlbHNlCiAgICAgICAgIHRpbWlu
Zy5kdXJhdGlvbiA9IHNlY29uZHNUb1dlYkFuaW1hdGlvbnNBUElUaW1lKG1faXRlcmF0aW9uRHVy
YXRpb24pOwogICAgIHRpbWluZy5kaXJlY3Rpb24gPSBtX2RpcmVjdGlvbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAppbmRleCAzYzk1OWU5Y2JkNGE4
NzEyNDRlZTJmNDViMGI1YWEwNmUxYzVmZDQ1Li5jODZmMmFkNTVjNGIxMjhlZWNlZGI4MDEwZjRj
NDcxM2JhZjQ2NzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1l
bnRUaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGlt
ZWxpbmUuY3BwCkBAIC00NTIsNyArNDUyLDcgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYkFuaW1hdGlv
bj4+IERvY3VtZW50VGltZWxpbmU6OmFuaW1hdGUoUmVmPEN1c3RvbUVmZmVjdENhbGxiYWMKICAg
ICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9OwogCi0gICAgU3RyaW5nIGlkID0gIiI7CisgICAgU3RyaW5nIGlkID0gZW1wdHlT
dHJpbmcoKTsKICAgICBzdGQ6OnZhcmlhbnQ8RnJhbWVzUGVyU2Vjb25kLCBBbmltYXRpb25GcmFt
ZVJhdGVQcmVzZXQ+IGZyYW1lUmF0ZSA9IEFuaW1hdGlvbkZyYW1lUmF0ZVByZXNldDo6QXV0bzsK
ICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxkb3VibGUsIEVmZmVjdFRpbWluZz4+IGN1
c3RvbUVmZmVjdE9wdGlvbnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9FZmZlY3RUaW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcu
aAppbmRleCA0ZGQ1ZGNjMzczY2NkODMzMGRlY2EzNjE3ZDk5OGU2MTMzOTMyZTYxLi4yMTA3M2Zh
NDczMDNmNjRmZDJiYTI2MTlhZTkxODdmNTgxNTk1MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0VmZmVjdFRpbWluZy5oCkBAIC0zMywxMiArMzMsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RydWN0IEVmZmVjdFRpbWluZyB7Ci0gICAgc3RkOjp2YXJpYW50PGRvdWJsZSwgU3Ry
aW5nPiBkdXJhdGlvbiB7ICJhdXRvIiB9OworICAgIHN0ZDo6dmFyaWFudDxkb3VibGUsIFN0cmlu
Zz4gZHVyYXRpb24geyAiYXV0byJfcyB9OwogICAgIGRvdWJsZSBkZWxheSB7IDAgfTsKICAgICBk
b3VibGUgZW5kRGVsYXkgeyAwIH07CiAgICAgZG91YmxlIGl0ZXJhdGlvblN0YXJ0IHsgMCB9Owog
ICAgIGRvdWJsZSBpdGVyYXRpb25zIHsgMSB9OwotICAgIFN0cmluZyBlYXNpbmcgeyAibGluZWFy
IiB9OworICAgIFN0cmluZyBlYXNpbmcgeyAibGluZWFyIl9zIH07CiAgICAgRmlsbE1vZGUgZmls
bCB7IEZpbGxNb2RlOjpBdXRvIH07CiAgICAgUGxheWJhY2tEaXJlY3Rpb24gZGlyZWN0aW9uIHsg
UGxheWJhY2tEaXJlY3Rpb246Ok5vcm1hbCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vS2V5ZnJhbWVFZmZlY3QuY3BwCmluZGV4IDcyMzc2ODUwM2QxMGRiNDk2N2IyZjhjNjBlYjkx
NDE4OTc2NmJmN2QuLmQ4NDExYzkzZTQ3NzAyZjU2N2FkNjE0MDM2NmVjZTc2NjM1YzA0NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAtODIsMTEg
KzgyLDExIEBAIFN0cmluZyBLZXlmcmFtZUVmZmVjdDo6Q1NTUHJvcGVydHlJRFRvSURMQXR0cmli
dXRlTmFtZShDU1NQcm9wZXJ0eUlEIGNzc1Byb3BlcnR5CiAKICAgICAvLyAyLiBJZiBwcm9wZXJ0
eSByZWZlcnMgdG8gdGhlIENTUyBmbG9hdCBwcm9wZXJ0eSwgcmV0dXJuIHRoZSBzdHJpbmcgImNz
c0Zsb2F0Ii4KICAgICBpZiAoY3NzUHJvcGVydHlJZCA9PSBDU1NQcm9wZXJ0eUZsb2F0KQotICAg
ICAgICByZXR1cm4gImNzc0Zsb2F0IjsKKyAgICAgICAgcmV0dXJuICJjc3NGbG9hdCJfczsKIAog
ICAgIC8vIDMuIElmIHByb3BlcnR5IHJlZmVycyB0byB0aGUgQ1NTIG9mZnNldCBwcm9wZXJ0eSwg
cmV0dXJuIHRoZSBzdHJpbmcgImNzc09mZnNldCIuCiAgICAgaWYgKGNzc1Byb3BlcnR5SWQgPT0g
Q1NTUHJvcGVydHlPZmZzZXQpCi0gICAgICAgIHJldHVybiAiY3NzT2Zmc2V0IjsKKyAgICAgICAg
cmV0dXJuICJjc3NPZmZzZXQiX3M7CiAKICAgICAvLyA0LiBPdGhlcndpc2UsIHJldHVybiB0aGUg
cmVzdWx0IG9mIGFwcGx5aW5nIHRoZSBDU1MgcHJvcGVydHkgdG8gSURMIGF0dHJpYnV0ZSBhbGdv
cml0aG0gW0NTU09NXSB0byBwcm9wZXJ0eS4KICAgICByZXR1cm4gZ2V0SlNQcm9wZXJ0eU5hbWUo
Y3NzUHJvcGVydHlJZCk7CkBAIC02NjAsNyArNjYwLDcgQEAgYXV0byBLZXlmcmFtZUVmZmVjdDo6
Z2V0S2V5ZnJhbWVzKERvY3VtZW50JiBkb2N1bWVudCkgLT4gVmVjdG9yPENvbXB1dGVkS2V5ZnJh
bWUKICAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5vZmZzZXQgPSBrZXlmcmFtZS5rZXkoKTsKICAg
ICAgICAgY29tcHV0ZWRLZXlmcmFtZS5jb21wdXRlZE9mZnNldCA9IGtleWZyYW1lLmtleSgpOwog
ICAgICAgICAvLyBGb3IgQ1NTIHRyYW5zaXRpb25zLCBhbGwga2V5ZnJhbWVzIHNob3VsZCByZXR1
cm4gImxpbmVhciIgc2luY2UgdGhlIGVmZmVjdCdzIGdsb2JhbCB0aW1pbmcgZnVuY3Rpb24gYXBw
bGllcy4KLSAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5lYXNpbmcgPSBpczxDU1NUcmFuc2l0aW9u
PihhbmltYXRpb24oKSkgPyAibGluZWFyIiA6IHRpbWluZ0Z1bmN0aW9uRm9yQmxlbmRpbmdLZXlm
cmFtZShrZXlmcmFtZSktPmNzc1RleHQoKTsKKyAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5lYXNp
bmcgPSBpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24oKSkgPyAibGluZWFyIl9zIDogdGltaW5n
RnVuY3Rpb25Gb3JCbGVuZGluZ0tleWZyYW1lKGtleWZyYW1lKS0+Y3NzVGV4dCgpOwogCiAgICAg
ICAgIGlmIChkb2N1bWVudC5zZXR0aW5ncygpLndlYkFuaW1hdGlvbnNDb21wb3NpdGVPcGVyYXRp
b25zRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byBjb21wb3NpdGVPcGVyYXRpb24g
PSBrZXlmcmFtZS5jb21wb3NpdGVPcGVyYXRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9HQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDVmMTFlMGM2MzQ4NzQxNDNhYjMxODVhMDFkZjlm
YjJlZTM2ZjI1YWQuLjVmOTM0OTE3NTZmMjdlYzA0ZDRkZWE5ZDM4MWI3YTY0YzZjNzkyMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcApAQCAtNTksNyAr
NTksNyBAQCBHQ0NvbnRyb2xsZXI6OkdDQ29udHJvbGxlcigpCiB7CiAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0g
ICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5kdW1w
R0NIZWFwIiwgW10geworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5h
cHBsZS5XZWJLaXQuZHVtcEdDSGVhcCJfcywgW10gewogICAgICAgICAgICAgR0NDb250cm9sbGVy
OjpzaW5nbGV0b24oKS5kdW1wSGVhcCgpOwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2Uu
Y3BwCmluZGV4IDRlMWQyNGVlOTQxNzRjOWRmNzZkMmIyZTUwNzliNzdkZDBlMjZmOTguLmE5MWUw
MmYyM2Q3NTAzMGE5YjlhYmY4OWEzNmY4NGFiMTliYTg4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcApAQCAt
MjEwLDcgKzIxMCw3IEBAIHZvaWQgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOjp1cGdyYWRlRWxl
bWVudChFbGVtZW50JiBlbGVtZW50KQogCiAgICAgaWYgKG1faXNTaGFkb3dEaXNhYmxlZCAmJiBl
bGVtZW50LnNoYWRvd1Jvb3QoKSkgewogICAgICAgICBlbGVtZW50LmNsZWFyUmVhY3Rpb25RdWV1
ZUZyb21GYWlsZWRDdXN0b21FbGVtZW50KCk7Ci0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
Tm90U3VwcG9ydGVkRXJyb3IsICJGYWlsZWQgdG8gdXBncmFkZSBhbiBlbGVtZW50IHdpdGggc2hh
ZG93IHJvb3Q6IHRoZSBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9uIGRpc2FsbG93cyBzaGFkb3cg
cm9vdHMuIikpOworICAgICAgICByZXBvcnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
Y3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIE5vdFN1cHBvcnRlZEVycm9y
LCAiRmFpbGVkIHRvIHVwZ3JhZGUgYW4gZWxlbWVudCB3aXRoIHNoYWRvdyByb290OiB0aGUgY3Vz
dG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBkaXNhbGxvd3Mgc2hhZG93IHJvb3RzLiJfcykpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgRWxl
bWVudCogd3JhcHBlZEVsZW1lbnQgPSBKU0VsZW1lbnQ6OnRvV3JhcHBlZCh2bSwgcmV0dXJuZWRF
bGVtZW50KTsKICAgICBpZiAoIXdyYXBwZWRFbGVtZW50IHx8IHdyYXBwZWRFbGVtZW50ICE9ICZl
bGVtZW50KSB7CiAgICAgICAgIGVsZW1lbnQuY2xlYXJSZWFjdGlvblF1ZXVlRnJvbUZhaWxlZEN1
c3RvbUVsZW1lbnQoKTsKLSAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmpl
Y3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBUeXBlRXJyb3IsICJD
dXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciByZXR1cm5lZCBhIHdyb25nIGVsZW1lbnQiKSk7Cisg
ICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNl
cHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgVHlwZUVycm9yLCAiQ3VzdG9tIGVsZW1lbnQgY29u
c3RydWN0b3IgcmV0dXJuZWQgYSB3cm9uZyBlbGVtZW50Il9zKSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgZWxlbWVudC5zZXRJc0RlZmluZWRDdXN0b21FbGVtZW50KCp0aGlzKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaAppbmRl
eCBiN2I2MTNkZDZjMzdlZDExN2I5MjIwMjBhYzEzYTNkN2M1NWJiY2FkLi4yOTQxM2Q4ZDk4OTY5
MDEwZmFhMWMzNTRlYTNhODliYWM0MDBiMDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnROdW1iZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5oCkBAIC0yOTMsNyArMjkzLDcgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQ29udmVydGVyPElETEZsb2F0PiA6IERlZmF1bHRDb252ZXJ0ZXI8SURMRmxv
YXQ+IHsKICAgICAgICAgZG91YmxlIG51bWJlciA9IHZhbHVlLnRvTnVtYmVyKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgMC4wKTsKICAg
ICAgICAgaWYgKFVOTElLRUxZKG51bWJlciA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojps
b3dlc3QoKSB8fCBudW1iZXIgPiBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpKQot
ICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJmxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAi
VGhlIHByb3ZpZGVkIHZhbHVlIGlzIG91dHNpZGUgdGhlIHJhbmdlIG9mIGEgZmxvYXQiKTsKKyAg
ICAgICAgICAgIHRocm93VHlwZUVycm9yKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgIlRo
ZSBwcm92aWRlZCB2YWx1ZSBpcyBvdXRzaWRlIHRoZSByYW5nZSBvZiBhIGZsb2F0Il9zKTsKICAg
ICAgICAgaWYgKFVOTElLRUxZKCFzdGQ6OmlzZmluaXRlKG51bWJlcikpKQogICAgICAgICAgICAg
dGhyb3dOb25GaW5pdGVUeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG51bWJlcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaAppbmRl
eCBjMDQ0YjA3YWJmYzdiNjllMzE5MTI4MzNiNDk0NDY4MWJjMzI4MDUzLi4zMTAwZmFiZjJkODU3
MTM1YzhhNTNlOTQ2N2JlMjFjNzc4OWU2NGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQ1LDcgKzQ1
LDcgQEAgaW5saW5lIHZvaWQgSlNFeGVjU3RhdGU6Omluc3RydW1lbnRGdW5jdGlvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb24KICAgICAgICAgbGluZU51bWJlciA9IGNhbGxE
YXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Zmlyc3RMaW5lKCk7CiAgICAgICAgIGNvbHVtbk51
bWJlciA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4oKTsKICAg
ICB9IGVsc2UKLSAgICAgICAgcmVzb3VyY2VOYW1lID0gInVuZGVmaW5lZCI7CisgICAgICAgIHJl
c291cmNlTmFtZSA9ICJ1bmRlZmluZWQiX3M7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnRleHQsIHJlc291cmNlTmFtZSwgbGluZU51bWJlciwgY29s
dW1uTnVtYmVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcAppbmRleCBjZDRiM2YwNzZkZjczOTkwNTZmMjc4YzY1ZTcyZDMyZDI0Nzlk
NDYwLi40ODRkOGMyZGYzN2JlZjdkMTdkYTQxYjcwMzIyOTRiMWQ5Y2ZmYjE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjMzLDcg
KzYzMyw3IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29udHJvbGxlcjo6Y2FsbEluV29ybGQo
UnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0CiAgICAgICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX0NBVENIX1NDT1BFKGdsb2JhbE9iamVjdC52bSgpKTsKICAgICAgICAgYXV0byBqc0Fy
Z3VtZW50ID0gc2VyaWFsaXplZEFyZ3VtZW50LT5kZXNlcmlhbGl6ZShnbG9iYWxPYmplY3QsICZn
bG9iYWxPYmplY3QpOwogICAgICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7
Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAiVW5hYmxlIHRvIGRlc2VyaWFsaXplIGFyZ3Vt
ZW50IHRvIGV4ZWN1dGUgYXN5bmNocm9ub3VzIEphdmFTY3JpcHQgZnVuY3Rpb24iOworICAgICAg
ICAgICAgZXJyb3JNZXNzYWdlID0gIlVuYWJsZSB0byBkZXNlcmlhbGl6ZSBhcmd1bWVudCB0byBl
eGVjdXRlIGFzeW5jaHJvbm91cyBKYXZhU2NyaXB0IGZ1bmN0aW9uIl9zOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLm1tCmluZGV4IDE1Y2I2YTA4ZTVjMzVjMTcyMmNkZDM3Y2EzOGFjNWNhOTQ0ZmExNTkuLmFl
NDIyMTE0MWVlY2I4OTE1MWM2MzE2MTBlMjIyMjI0Y2NmZGRmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTE3Niw3ICsxNzYsNyBAQCBib29sIE9i
amNBcnJheTo6c2V0VmFsdWVBdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
dW5zaWduZWQgaW50IGluZAogICAgIH0KIAogICAgIGlmIChpbmRleCA+IFtfYXJyYXkgY291bnRd
KSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBj
cmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5
IHNpemUuIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiSW5kZXggZXhjZWVk
cyBhcnJheSBzaXplLiJfcykpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIApA
QCAtMTg4LDcgKzE4OCw3IEBAIGJvb2wgT2JqY0FycmF5OjpzZXRWYWx1ZUF0KEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBpbnQgaW5kCiAgICAgICAgIFtfYXJy
YXkgaW5zZXJ0T2JqZWN0OihfX2JyaWRnZSBpZClvVmFsdWUub2JqZWN0VmFsdWUgYXRJbmRleDpp
bmRleF07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9uKiBs
b2NhbEV4Y2VwdGlvbikgewotICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIk9iamVjdGl2ZS1D
IGV4Y2VwdGlvbi4iKSk7CisgICAgICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMg
ZXhjZXB0aW9uLiJfcykpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogfQpAQCAtMTk5
LDEzICsxOTksMTMgQEAgSlNWYWx1ZSBPYmpjQXJyYXk6OnZhbHVlQXQoSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIHVuc2lnbmVkIGludCBpbmQKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAoaW5kZXggPiBbX2FycmF5IGNvdW50
XSkKLSAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNj
b3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRz
IGFycmF5IHNpemUuIikpOworICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
IkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iX3MpKTsKICAgICBAdHJ5IHsKICAgICAgICAgaWQg
b2JqID0gW19hcnJheSBvYmplY3RBdEluZGV4OmluZGV4XTsKICAgICAgICAgaWYgKG9iaikKICAg
ICAgICAgICAgIHJldHVybiBjb252ZXJ0T2JqY1ZhbHVlVG9WYWx1ZSAobGV4aWNhbEdsb2JhbE9i
amVjdCwgJm9iaiwgT2JqY09iamVjdFR5cGUsIG1fcm9vdE9iamVjdC5nZXQoKSk7CiAgICAgfSBA
Y2F0Y2goTlNFeGNlcHRpb24qIGxvY2FsRXhjZXB0aW9uKSB7Ci0gICAgICAgIHJldHVybiB0aHJv
d0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNh
bEdsb2JhbE9iamVjdCwgIk9iamVjdGl2ZS1DIGV4Y2VwdGlvbi4iKSk7CisgICAgICAgIHJldHVy
biB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgIk9iamVjdGl2ZS1DIGV4Y2VwdGlvbi4iX3MpKTsKICAgICB9
CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9hcnJheS5jcHAKaW5kZXggYzA1ZTNhNDBlODA1NjY1ZGMwZmRlZDAyYzMwNTE4ZWQ5NjI4NjBj
My4uYWYzOWJhMTE0MGRhMDMwNDM4ODVhM2E4NTVhMTMzMWU0ZjU2NWE5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIGJvb2wgUnVu
dGltZUFycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgUHJvcGVyCiAKICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
UnVudGltZUFycmF5Kj4oY2VsbCk7CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0
eU5hbWVzLT5sZW5ndGgpIHsKLSAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9i
amVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlJhbmdl
IGVycm9yIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3Ii
X3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAKQEAgLTE0NCw3ICsxNDQs
NyBAQCBib29sIFJ1bnRpbWVBcnJheTo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogCiAgICAgUnVudGltZUFycmF5KiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwogICAgIGlmIChpbmRleCA+PSB0aGlz
T2JqZWN0LT5nZXRMZW5ndGgoKSkgewotICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAi
UmFuZ2UgZXJyb3IiKSk7CisgICAgICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJSYW5nZSBl
cnJvciJfcykpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXggYjI0ZjJhZWYxOTRiYWQyNWIzYTYx
ZWI4OGU3NDE0N2RjZTkzMTBjNy4uMjBiZTFlZTJmZjI1MDQyZjM4ODE1ZWRhMDY4ZmQ5YTQ4ODk1
NWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0zMTAs
NyArMzEwLDcgQEAgdm9pZCBSdW50aW1lT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2Jq
ZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2EKIAogRXhjZXB0aW9uKiB0aHJvd1J1
bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9i
YWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3BlKQogewotICAgIHJldHVybiB0aHJvd0V4Y2VwdGlv
bihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmVmZXJlbmNlRXJyb3IobGV4aWNh
bEdsb2JhbE9iamVjdCwgIlRyeWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBs
dWctaW4uIikpOworICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0
LCBzY29wZSwgY3JlYXRlUmVmZXJlbmNlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlRyeWlu
ZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uIl9zKSk7CiB9CiAKIEpT
Qzo6R0NDbGllbnQ6Oklzb1N1YnNwYWNlKiBSdW50aW1lT2JqZWN0OjpzdWJzcGFjZUZvckltcGwo
SlNDOjpWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAKaW5kZXggMGNhNjFjMTAxNGQyNDM1
ZTg0YWEwZGFmZTMwMjBmZmIwNzhlODM3OS4uN2IyNjU5ZmM2NzNkNTM2MDllNWQxYjVlNDdmYjY4
M2ExNjNhZjA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcApAQCAtMjAxLDE1ICsyMDEsMTUg
QEAgYXV0byBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpwYXJzZShjb25z
dCBKU09OOjpWYWx1ZSYgaW5mb1ZhbHVlKQogICAgIGlmICghb2JqZWN0KQogICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVy
c0luZm9Ob3RBRGljdGlvbmFyeSk7CiAKLSAgICBTdHJpbmcgb3BlcmF0aW9uID0gb2JqZWN0LT5n
ZXRTdHJpbmcoIm9wZXJhdGlvbiIpOworICAgIFN0cmluZyBvcGVyYXRpb24gPSBvYmplY3QtPmdl
dFN0cmluZygib3BlcmF0aW9uIl9zKTsKICAgICBpZiAoIW9wZXJhdGlvbikKICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRl
cnNNaXNzaW5nT3BlcmF0aW9uKTsKIAotICAgIFN0cmluZyBoZWFkZXIgPSBvYmplY3QtPmdldFN0
cmluZygiaGVhZGVyIik7CisgICAgU3RyaW5nIGhlYWRlciA9IG9iamVjdC0+Z2V0U3RyaW5nKCJo
ZWFkZXIiX3MpOwogICAgIGlmICghaGVhZGVyKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdIZWFkZXIp
OwogCi0gICAgU3RyaW5nIHZhbHVlID0gb2JqZWN0LT5nZXRTdHJpbmcoInZhbHVlIik7CisgICAg
U3RyaW5nIHZhbHVlID0gb2JqZWN0LT5nZXRTdHJpbmcoInZhbHVlIl9zKTsKIAogICAgIGlmIChv
cGVyYXRpb24gPT0gInNldCIpIHsKICAgICAgICAgaWYgKCF2YWx1ZSkKQEAgLTI4OSwyNyArMjg5
LDI3IEBAIHNpemVfdCBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpzZXJp
YWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfCiAKIEV4cGVjdGVkPFJlZGlyZWN0QWN0aW9u
LCBzdGQ6OmVycm9yX2NvZGU+IFJlZGlyZWN0QWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmpl
Y3QmIHJlZGlyZWN0T2JqZWN0LCBjb25zdCBTdHJpbmcmIHVybEZpbHRlcikKIHsKLSAgICBhdXRv
IHJlZGlyZWN0ID0gcmVkaXJlY3RPYmplY3QuZ2V0T2JqZWN0KCJyZWRpcmVjdCIpOworICAgIGF1
dG8gcmVkaXJlY3QgPSByZWRpcmVjdE9iamVjdC5nZXRPYmplY3QoInJlZGlyZWN0Il9zKTsKICAg
ICBpZiAoIXJlZGlyZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RNaXNzaW5nKTsKIAotICAgIGlmIChhdXRvIGV4dGVu
c2lvblBhdGggPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJleHRlbnNpb24tcGF0aCIpOyAhIWV4dGVu
c2lvblBhdGgpIHsKKyAgICBpZiAoYXV0byBleHRlbnNpb25QYXRoID0gcmVkaXJlY3QtPmdldFN0
cmluZygiZXh0ZW5zaW9uLXBhdGgiX3MpOyAhIWV4dGVuc2lvblBhdGgpIHsKICAgICAgICAgaWYg
KCFleHRlbnNpb25QYXRoLnN0YXJ0c1dpdGgoJy8nKSkKICAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdEV4dGVuc2lvblBh
dGhEb2VzTm90U3RhcnRXaXRoU2xhc2gpOwogICAgICAgICByZXR1cm4gUmVkaXJlY3RBY3Rpb24g
eyBFeHRlbnNpb25QYXRoQWN0aW9uIHsgV1RGTW92ZShleHRlbnNpb25QYXRoKSB9IH07CiAgICAg
fQogCi0gICAgaWYgKGF1dG8gcmVnZXhTdWJzdGl0dXRpb24gPSByZWRpcmVjdC0+Z2V0U3RyaW5n
KCJyZWdleC1zdWJzdGl0dXRpb24iKTsgISFyZWdleFN1YnN0aXR1dGlvbikKKyAgICBpZiAoYXV0
byByZWdleFN1YnN0aXR1dGlvbiA9IHJlZGlyZWN0LT5nZXRTdHJpbmcoInJlZ2V4LXN1YnN0aXR1
dGlvbiJfcyk7ICEhcmVnZXhTdWJzdGl0dXRpb24pCiAgICAgICAgIHJldHVybiBSZWRpcmVjdEFj
dGlvbiB7IFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uIHsgV1RGTW92ZShyZWdleFN1YnN0aXR1dGlv
biksIHVybEZpbHRlciB9IH07CiAKLSAgICBpZiAoYXV0byB0cmFuc2Zvcm0gPSByZWRpcmVjdC0+
Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iKSkgeworICAgIGlmIChhdXRvIHRyYW5zZm9ybSA9IHJlZGly
ZWN0LT5nZXRPYmplY3QoInRyYW5zZm9ybSJfcykpIHsKICAgICAgICAgYXV0byBwYXJzZWRUcmFu
c2Zvcm0gPSBVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKCp0cmFuc2Zvcm0pOwogICAgICAgICBp
ZiAoIXBhcnNlZFRyYW5zZm9ybSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChw
YXJzZWRUcmFuc2Zvcm0uZXJyb3IoKSk7CiAgICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7
IFdURk1vdmUoKnBhcnNlZFRyYW5zZm9ybSkgfTsKICAgICB9CiAKLSAgICBpZiAoYXV0byB1cmxT
dHJpbmcgPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJ1cmwiKTsgISF1cmxTdHJpbmcpIHsKKyAgICBp
ZiAoYXV0byB1cmxTdHJpbmcgPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJ1cmwiX3MpOyAhIXVybFN0
cmluZykgewogICAgICAgICBVUkwgdXJsIHsgdXJsU3RyaW5nIH07CiAgICAgICAgIGlmICghdXJs
LmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFVSTEludmFsaWQpOwpAQCAtNDgzLDE1ICs0ODMsMTUg
QEAgdm9pZCBSZWRpcmVjdEFjdGlvbjo6UmVnZXhTdWJzdGl0dXRpb25BY3Rpb246OmFwcGx5VG9V
UkwoVVJMJiB1cmwpIGNvbnN0CiBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rp
b246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYgdHJhbnNmb3JtKSAtPiBFeHBlY3RlZDxVUkxU
cmFuc2Zvcm1BY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4KIHsKICAgICBVUkxUcmFuc2Zvcm1BY3Rp
b24gYWN0aW9uOwotICAgIGlmIChhdXRvIGZyYWdtZW50ID0gdHJhbnNmb3JtLmdldFN0cmluZygi
ZnJhZ21lbnQiKTsgISFmcmFnbWVudCkgeworICAgIGlmIChhdXRvIGZyYWdtZW50ID0gdHJhbnNm
b3JtLmdldFN0cmluZygiZnJhZ21lbnQiX3MpOyAhIWZyYWdtZW50KSB7CiAgICAgICAgIGlmICgh
ZnJhZ21lbnQuaXNFbXB0eSgpICYmICFmcmFnbWVudC5zdGFydHNXaXRoKCcjJykpCiAgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVk
aXJlY3RJbnZhbGlkRnJhZ21lbnQpOwogICAgICAgICBhY3Rpb24uZnJhZ21lbnQgPSBXVEZNb3Zl
KGZyYWdtZW50KTsKICAgICB9Ci0gICAgYWN0aW9uLmhvc3QgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5n
KCJob3N0Iik7Ci0gICAgYWN0aW9uLnBhc3N3b3JkID0gdHJhbnNmb3JtLmdldFN0cmluZygicGFz
c3dvcmQiKTsKLSAgICBhY3Rpb24ucGF0aCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBhdGgiKTsK
LSAgICBhdXRvIHBvcnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwb3J0Iik7CisgICAgYWN0aW9u
Lmhvc3QgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJob3N0Il9zKTsKKyAgICBhY3Rpb24ucGFzc3dv
cmQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXNzd29yZCJfcyk7CisgICAgYWN0aW9uLnBhdGgg
PSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXRoIl9zKTsKKyAgICBhdXRvIHBvcnQgPSB0cmFuc2Zv
cm0uZ2V0U3RyaW5nKCJwb3J0Il9zKTsKICAgICBpZiAoISFwb3J0KSB7CiAgICAgICAgIGlmIChw
b3J0LmlzRW1wdHkoKSkKICAgICAgICAgICAgIGFjdGlvbi5wb3J0ID0geyBzdGQ6Om9wdGlvbmFs
PHVpbnQxNl90PiB7IH0gfTsKQEAgLTUwMyw3ICs1MDMsNyBAQCBhdXRvIFJlZGlyZWN0QWN0aW9u
OjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYgdHJhbnNmb3Jt
KSAtPgogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKGF1dG8gdW5jYW5vbmljYWxpemVkU2No
ZW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygic2NoZW1lIik7ICEhdW5jYW5vbmljYWxpemVkU2No
ZW1lKSB7CisgICAgaWYgKGF1dG8gdW5jYW5vbmljYWxpemVkU2NoZW1lID0gdHJhbnNmb3JtLmdl
dFN0cmluZygic2NoZW1lIl9zKTsgISF1bmNhbm9uaWNhbGl6ZWRTY2hlbWUpIHsKICAgICAgICAg
YXV0byBzY2hlbWUgPSBXVEY6OlVSTFBhcnNlcjo6bWF5YmVDYW5vbmljYWxpemVTY2hlbWUodW5j
YW5vbmljYWxpemVkU2NoZW1lKTsKICAgICAgICAgaWYgKCFzY2hlbWUpCiAgICAgICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RV
UkxTY2hlbWVJbnZhbGlkKTsKQEAgLTUxMSwxNCArNTExLDE0IEBAIGF1dG8gUmVkaXJlY3RBY3Rp
b246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiB0cmFuc2Zv
cm0pIC0+CiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OUmVkaXJlY3RUb0phdmFTY3JpcHRVUkwpOwogICAgICAgICBhY3Rpb24uc2No
ZW1lID0gV1RGTW92ZSgqc2NoZW1lKTsKICAgICB9Ci0gICAgYWN0aW9uLnVzZXJuYW1lID0gdHJh
bnNmb3JtLmdldFN0cmluZygidXNlcm5hbWUiKTsKLSAgICBpZiAoYXV0byBxdWVyeVRyYW5zZm9y
bSA9IHRyYW5zZm9ybS5nZXRPYmplY3QoInF1ZXJ5LXRyYW5zZm9ybSIpKSB7CisgICAgYWN0aW9u
LnVzZXJuYW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygidXNlcm5hbWUiX3MpOworICAgIGlmIChh
dXRvIHF1ZXJ5VHJhbnNmb3JtID0gdHJhbnNmb3JtLmdldE9iamVjdCgicXVlcnktdHJhbnNmb3Jt
Il9zKSkgewogICAgICAgICBhdXRvIHBhcnNlZFF1ZXJ5VHJhbnNmb3JtID0gUXVlcnlUcmFuc2Zv
cm06OnBhcnNlKCpxdWVyeVRyYW5zZm9ybSk7CiAgICAgICAgIGlmICghcGFyc2VkUXVlcnlUcmFu
c2Zvcm0pCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQocGFyc2VkUXVlcnlUcmFu
c2Zvcm0uZXJyb3IoKSk7CiAgICAgICAgIGFjdGlvbi5xdWVyeVRyYW5zZm9ybSA9ICpwYXJzZWRR
dWVyeVRyYW5zZm9ybTsKICAgICB9IGVsc2UgewotICAgICAgICBhdXRvIHF1ZXJ5ID0gdHJhbnNm
b3JtLmdldFN0cmluZygicXVlcnkiKTsKKyAgICAgICAgYXV0byBxdWVyeSA9IHRyYW5zZm9ybS5n
ZXRTdHJpbmcoInF1ZXJ5Il9zKTsKICAgICAgICAgaWYgKCFxdWVyeS5pc0VtcHR5KCkgJiYgIXF1
ZXJ5LnN0YXJ0c1dpdGgoJz8nKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdEludmFsaWRRdWVyeSk7CiAgICAgICAg
IGFjdGlvbi5xdWVyeVRyYW5zZm9ybSA9IFdURk1vdmUocXVlcnkpOwpAQCAtNjk5LDcgKzY5OSw3
IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zv
cm06OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjCiB7CiAgICAgUXVlcnlUcmFuc2Zvcm0gcGFyc2Vk
UXVlcnlUcmFuc2Zvcm07CiAKLSAgICBpZiAoYXV0byByZW1vdmVQYXJhbWV0ZXJzVmFsdWUgPSBx
dWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgicmVtb3ZlLXBhcmFtZXRlcnMiKSkgeworICAgIGlmIChh
dXRvIHJlbW92ZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJyZW1v
dmUtcGFyYW1ldGVycyJfcykpIHsKICAgICAgICAgYXV0byByZW1vdmVQYXJhbWV0ZXJzQXJyYXkg
PSByZW1vdmVQYXJhbWV0ZXJzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFyZW1vdmVQ
YXJhbWV0ZXJzQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OUmVtb3ZlUGFyYW1ldGVyc05vdFN0cmluZ0FycmF5KTsKQEAg
LTcxMyw3ICs3MTMsNyBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246
OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZShjb25zdCBKU09OOjpPYmplYwogICAgICAgICBwYXJzZWRR
dWVyeVRyYW5zZm9ybS5yZW1vdmVQYXJhbXMgPSBXVEZNb3ZlKHJlbW92ZVBhcmFtZXRlcnNWZWN0
b3IpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNWYWx1ZSA9
IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJhZGQtb3ItcmVwbGFjZS1wYXJhbWV0ZXJzIikpIHsK
KyAgICBpZiAoYXV0byBhZGRPclJlcGxhY2VQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9y
bS5nZXRWYWx1ZSgiYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVycyJfcykpIHsKICAgICAgICAgYXV0
byBhZGRPclJlcGxhY2VQYXJhbWV0ZXJzQXJyYXkgPSBhZGRPclJlcGxhY2VQYXJhbWV0ZXJzVmFs
dWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFhZGRPclJlcGxhY2VQYXJhbWV0ZXJzQXJyYXkp
CiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc05vdEFycmF5KTsKQEAgLTg1OCwxNiArODU4LDE2
IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zv
cm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNlKGNvCiAgICAgaWYgKCFrZXlWYWx1ZSkKICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVw
bGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU5vdEFEaWN0aW9uYXJ5KTsKIAotICAgIFN0cmluZyBrZXkg
PSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJrZXkiKTsKKyAgICBTdHJpbmcga2V5ID0ga2V5VmFsdWUt
PmdldFN0cmluZygia2V5Il9zKTsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRl
cnNLZXlWYWx1ZU1pc3NpbmdLZXlTdHJpbmcpOwogCi0gICAgU3RyaW5nIHZhbHVlID0ga2V5VmFs
dWUtPmdldFN0cmluZygidmFsdWUiKTsKKyAgICBTdHJpbmcgdmFsdWUgPSBrZXlWYWx1ZS0+Z2V0
U3RyaW5nKCJ2YWx1ZSJfcyk7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRl
cnNLZXlWYWx1ZU1pc3NpbmdWYWx1ZVN0cmluZyk7CiAKICAgICBib29sIHJlcGxhY2VPbmx5IHsg
ZmFsc2UgfTsKLSAgICBpZiAoYXV0byBib29sZWFuID0ga2V5VmFsdWUtPmdldEJvb2xlYW4oInJl
cGxhY2Utb25seSIpKQorICAgIGlmIChhdXRvIGJvb2xlYW4gPSBrZXlWYWx1ZS0+Z2V0Qm9vbGVh
bigicmVwbGFjZS1vbmx5Il9zKSkKICAgICAgICAgcmVwbGFjZU9ubHkgPSAqYm9vbGVhbjsKIAog
ICAgIHJldHVybiB7IHsgV1RGTW92ZShrZXkpLCByZXBsYWNlT25seSwgV1RGTW92ZSh2YWx1ZSkg
fSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvbkNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKaW5kZXggY2ZlYmY1YzMwNzhhOTQxZDE5Yzc5
YTI5MmM0NzBjOWViYmYyODJjZi4uZTg3MjFkNGE3NDc5ZWQ2ODMwMTdmMGE0ODVlODQ2YTMyOWM5
MGUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvbkNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCkBAIC0zMTYsNyArMzE2LDcgQEAgc3Rk
OjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25D
bGllbnQmIGNsaWVudCwgU3RyaW4KICAgICAgICAgICAgIHN0YXR1cyA9IFVSTEZpbHRlclBhcnNl
cjo6T2s7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHN0YXR1cyAhPSBVUkxGaWx0ZXJQYXJzZXI6
Ok9rKSB7Ci0gICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNc
biIsIHRyaWdnZXIudXJsRmlsdGVyLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3Rh
dHVzU3RyaW5nKHN0YXR1cykudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBkYXRhTG9nRigi
RXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIHRyaWdnZXIudXJsRmlsdGVyLnV0ZjgoKS5k
YXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykuY2hhcmFjdGVycygp
KTsKICAgICAgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlk
UmVnZXg7CiAgICAgICAgIH0KIApAQCAtMzMzLDcgKzMzMyw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBj
b21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50JiBjbGllbnQs
IFN0cmluCiAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gVVJMRmls
dGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hp
bGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQ
YXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAg
ICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlv
bi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLmNo
YXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMzQ0LDcgKzM0NCw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVs
ZUxpc3QoQ29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAg
ICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gVVJMRmlsdGVyUGFyc2Vy
OjpPaykgewotICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2lu
ZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0
YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCku
ZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLmNoYXJhY3RlcnMo
KSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05JbnZhbGlkUmVnZXg7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4
dGVuc2lvblBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAppbmRleCA1MTNmZDkzOWU2NmRiNWNhMjUxMjlmNTc2Yjk4
MmI0ZjhjOTgyNGUxLi43NDQxNjVmMGI1MjAxNWNjZWZkNzdmNjg3Y2U1M2NjMDVjMWIxNTY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5z
aW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcApAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8
VmVjdG9yPFN0cmluZz4sIHN0ZDo6ZXJyb3JfY29kZT4gZ2V0RG9tYWluTGlzdChjb25zdCBKU09O
OjpBcnJheQogICAgICAgICAgICAgeyAnJCcsICJcXCQiIH0KICAgICAgICAgfSB9OwogICAgICAg
ICBmb3IgKGF1dG8mIHBhaXIgOiBlc2NhcGVUYWJsZSkKLSAgICAgICAgICAgIGRvbWFpbiA9IGRv
bWFpbi5yZXBsYWNlKHBhaXIuZmlyc3QsIHBhaXIuc2Vjb25kKTsKKyAgICAgICAgICAgIGRvbWFp
biA9IGRvbWFpbi5yZXBsYWNlKHBhaXIuZmlyc3QsIFN0cmluZyB7IHBhaXIuc2Vjb25kIH0pOwog
CiAgICAgICAgIGNvbnN0IGNoYXIqIHByb3RvY29sUmVnZXggPSAiW2Etel1bYS16Ky4tXSo6XFwv
XFwvIjsKICAgICAgICAgY29uc3QgY2hhciogYWxsb3dTdWJkb21haW5zUmVnZXggPSAiKC4qXFwu
KSoiOwpAQCAtMTE5LDI3ICsxMTksMjcgQEAgc3RhdGljIHN0ZDo6ZXJyb3JfY29kZSBnZXRUeXBl
RmxhZ3MoY29uc3QgSlNPTjo6QXJyYXkmIGFycmF5LCBSZXNvdXJjZUZsYWdzJiBmbGEKICAgICAK
IHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2VyLCBzdGQ6OmVycm9yX2NvZGU+IGxvYWRUcmlnZ2VyKGNv
bnN0IEpTT046Ok9iamVjdCYgcnVsZU9iamVjdCkKIHsKLSAgICBhdXRvIHRyaWdnZXJPYmplY3Qg
PSBydWxlT2JqZWN0LmdldE9iamVjdCgidHJpZ2dlciIpOworICAgIGF1dG8gdHJpZ2dlck9iamVj
dCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJ0cmlnZ2VyIl9zKTsKICAgICBpZiAoIXRyaWdnZXJP
YmplY3QpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05JbnZhbGlkVHJpZ2dlcik7CiAKLSAgICBTdHJpbmcgdXJsRmlsdGVyID0gdHJpZ2dl
ck9iamVjdC0+Z2V0U3RyaW5nKCJ1cmwtZmlsdGVyIik7CisgICAgU3RyaW5nIHVybEZpbHRlciA9
IHRyaWdnZXJPYmplY3QtPmdldFN0cmluZygidXJsLWZpbHRlciJfcyk7CiAgICAgaWYgKHVybEZp
bHRlci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVVJMRmlsdGVySW5UcmlnZ2VyKTsKIAogICAgIFRyaWdn
ZXIgdHJpZ2dlcjsKICAgICB0cmlnZ2VyLnVybEZpbHRlciA9IHVybEZpbHRlcjsKIAotICAgIGlm
IChzdGQ6Om9wdGlvbmFsPGJvb2w+IHVybEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdn
ZXJPYmplY3QtPmdldEJvb2xlYW4oInVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiKSkKKyAg
ICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB1cmxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0
cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ1cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIl9z
KSkKICAgICAgICAgdHJpZ2dlci51cmxGaWx0ZXJJc0Nhc2VTZW5zaXRpdmUgPSAqdXJsRmlsdGVy
Q2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0gICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdG9wVVJM
RmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigidG9w
LXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiKSkKKyAgICBpZiAoc3RkOjpvcHRpb25hbDxi
b29sPiB0b3BVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRC
b29sZWFuKCJ0b3AtdXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2ZSJfcykpCiAgICAgICAgIHRy
aWdnZXIudG9wVVJMRmlsdGVySXNDYXNlU2Vuc2l0aXZlID0gKnRvcFVSTEZpbHRlckNhc2VTZW5z
aXRpdmVWYWx1ZTsKIAotICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IGZyYW1lVVJMRmlsdGVy
Q2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigiZnJhbWUtdXJs
LWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2ZSIpKQorICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+
IGZyYW1lVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9v
bGVhbigiZnJhbWUtdXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2ZSJfcykpCiAgICAgICAgIHRy
aWdnZXIuZnJhbWVVUkxGaWx0ZXJJc0Nhc2VTZW5zaXRpdmUgPSAqZnJhbWVVUkxGaWx0ZXJDYXNl
U2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBpZiAoYXV0byByZXNvdXJjZVR5cGVWYWx1ZSA9IHRyaWdn
ZXJPYmplY3QtPmdldFZhbHVlKCJyZXNvdXJjZS10eXBlIikpIHsKKyAgICBpZiAoYXV0byByZXNv
dXJjZVR5cGVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJyZXNvdXJjZS10eXBlIl9z
KSkgewogICAgICAgICBhdXRvIHJlc291cmNlVHlwZUFycmF5ID0gcmVzb3VyY2VUeXBlVmFsdWUt
PmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFyZXNvdXJjZVR5cGVBcnJheSkKICAgICAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlk
VHJpZ2dlckZsYWdzQXJyYXkpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0YXRpYyBFeHBlY3RlZDxU
cmlnZ2VyLCBzdGQ6OmVycm9yX2NvZGU+IGxvYWRUcmlnZ2VyKGNvbnN0IEpTT046Ok9iamVjdCYg
cnVsZU9iCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoZXJyb3IpOwogICAgIH0K
IAotICAgIGlmIChhdXRvIGxvYWRUeXBlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgi
bG9hZC10eXBlIikpIHsKKyAgICBpZiAoYXV0byBsb2FkVHlwZVZhbHVlID0gdHJpZ2dlck9iamVj
dC0+Z2V0VmFsdWUoImxvYWQtdHlwZSJfcykpIHsKICAgICAgICAgYXV0byBsb2FkVHlwZUFycmF5
ID0gbG9hZFR5cGVWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIWxvYWRUeXBlQXJyYXkp
CiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKQEAgLTE1NSw3ICsxNTUsNyBAQCBzdGF0
aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBsb2FkVHJpZ2dlcihjb25zdCBK
U09OOjpPYmplY3QmIHJ1bGVPYgogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVy
cm9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBsb2FkQ29udGV4dFZhbHVlID0gdHJpZ2dlck9i
amVjdC0+Z2V0VmFsdWUoImxvYWQtY29udGV4dCIpKSB7CisgICAgaWYgKGF1dG8gbG9hZENvbnRl
eHRWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLWNvbnRleHQiX3MpKSB7CiAg
ICAgICAgIGF1dG8gbG9hZENvbnRleHRBcnJheSA9IGxvYWRDb250ZXh0VmFsdWUtPmFzQXJyYXko
KTsKICAgICAgICAgaWYgKCFsb2FkQ29udGV4dEFycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxh
Z3NBcnJheSk7CkBAIC0yMTIsMTEgKzIxMiwxMSBAQCBib29sIGlzVmFsaWRDU1NTZWxlY3Rvcihj
b25zdCBTdHJpbmcmIHNlbGVjdG9yKQogCiBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxB
Y3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rpb24oY29uc3QgSlNPTjo6T2JqZWN0JiBy
dWxlT2JqZWN0LCBjb25zdCBTdHJpbmcmIHVybEZpbHRlcikKIHsKLSAgICBhdXRvIGFjdGlvbk9i
amVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJhY3Rpb24iKTsKKyAgICBhdXRvIGFjdGlvbk9i
amVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJhY3Rpb24iX3MpOwogICAgIGlmICghYWN0aW9u
T2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OSW52YWxpZEFjdGlvbik7CiAKLSAgICBTdHJpbmcgYWN0aW9uVHlwZSA9IGFjdGlv
bk9iamVjdC0+Z2V0U3RyaW5nKCJ0eXBlIik7CisgICAgU3RyaW5nIGFjdGlvblR5cGUgPSBhY3Rp
b25PYmplY3QtPmdldFN0cmluZygidHlwZSJfcyk7CiAKICAgICBpZiAoYWN0aW9uVHlwZSA9PSAi
YmxvY2siKQogICAgICAgICByZXR1cm4gQWN0aW9uIHsgQmxvY2tMb2FkQWN0aW9uKCkgfTsKQEAg
LTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxBY3Rpb24sIHN0
ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rpb24oY29uc3QgSlNPTjo6TwogICAgIGlmIChhY3Rpb25U
eXBlID09ICJibG9jay1jb29raWVzIikKICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IEJsb2NrQ29v
a2llc0FjdGlvbigpIH07CiAgICAgaWYgKGFjdGlvblR5cGUgPT0gImNzcy1kaXNwbGF5LW5vbmUi
KSB7Ci0gICAgICAgIFN0cmluZyBzZWxlY3RvclN0cmluZyA9IGFjdGlvbk9iamVjdC0+Z2V0U3Ry
aW5nKCJzZWxlY3RvciIpOworICAgICAgICBTdHJpbmcgc2VsZWN0b3JTdHJpbmcgPSBhY3Rpb25P
YmplY3QtPmdldFN0cmluZygic2VsZWN0b3IiX3MpOwogICAgICAgICBpZiAoIXNlbGVjdG9yU3Ry
aW5nKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTkludmFsaWRDU1NEaXNwbGF5Tm9uZUFjdGlvblR5cGUpOwogICAgICAgICBpZiAo
IWlzVmFsaWRDU1NTZWxlY3RvcihzZWxlY3RvclN0cmluZykpCkBAIC0yMzUsNyArMjM1LDcgQEAg
c3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBs
b2FkQWN0aW9uKGNvbnN0IEpTT046Ok8KICAgICBpZiAoYWN0aW9uVHlwZSA9PSAibWFrZS1odHRw
cyIpCiAgICAgICAgIHJldHVybiBBY3Rpb24geyBNYWtlSFRUUFNBY3Rpb24oKSB9OwogICAgIGlm
IChhY3Rpb25UeXBlID09ICJub3RpZnkiKSB7Ci0gICAgICAgIFN0cmluZyBub3RpZmljYXRpb24g
PSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygibm90aWZpY2F0aW9uIik7CisgICAgICAgIFN0cmlu
ZyBub3RpZmljYXRpb24gPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygibm90aWZpY2F0aW9uIl9z
KTsKICAgICAgICAgaWYgKCFub3RpZmljYXRpb24pCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZE5vdGlmaWNhdGlvbik7
CiAgICAgICAgIHJldHVybiBBY3Rpb24geyBOb3RpZnlBY3Rpb24geyB7IFdURk1vdmUobm90aWZp
Y2F0aW9uKSB9IH0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL1NlcmlhbGl6ZWRORkEuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
U2VyaWFsaXplZE5GQS5jcHAKaW5kZXggMDRjNmRhNWE4NDhkMDg5MWYzM2Y0ZjgzOWRhOTUyYjhj
NzY3OWEwOS4uMDUyYjU5N2JjZmI5MmE3NDM3OTNmOTE1ZWQ2OTZlN2EwZTllNDhmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAK
QEAgLTUyLDcgKzUyLDcgQEAgYm9vbCB3cml0ZUFsbFRvRmlsZShGaWxlU3lzdGVtOjpQbGF0Zm9y
bUZpbGVIYW5kbGUgZmlsZSwgY29uc3QgVCYgY29udGFpbmVyKQogc3RkOjpvcHRpb25hbDxTZXJp
YWxpemVkTkZBPiBTZXJpYWxpemVkTkZBOjpzZXJpYWxpemUoTkZBJiYgbmZhKQogewogICAgIGF1
dG8gZmlsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7Ci0gICAgYXV0
byBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJTZXJpYWxpemVkTkZB
IiwgZmlsZSk7CisgICAgYXV0byBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlG
aWxlKCJTZXJpYWxpemVkTkZBIl9zLCBmaWxlKTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmlzSGFu
ZGxlVmFsaWQoZmlsZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCmlu
ZGV4IGQ4NzI5ZDM5MGQ5MDczMGEwZWI3ZGIzYThjOWYxNzE4Yzg2ZjdhM2EuLjRmZjEyMjVmYWE4
MjI4NWIzMWNlZDU3NTlkYjg5Nzc2OTE4OWU3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcApAQCAtMzY5LDM5ICszNjks
MzkgQEAgVVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1cyBVUkxGaWx0ZXJQYXJzZXI6OmFkZFBh
dHRlcm4oY29uc3QgU3RyaW5nJiBwYXR0ZXJuLAogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKLVN0
cmluZyBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhQYXJzZVN0YXR1cyBzdGF0dXMpCitB
U0NJSUxpdGVyYWwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoUGFyc2VTdGF0dXMgc3Rh
dHVzKQogewogICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgY2FzZSBPazoKLSAgICAgICAgcmV0
dXJuICJPayI7CisgICAgICAgIHJldHVybiAiT2siX3M7CiAgICAgY2FzZSBNYXRjaGVzRXZlcnl0
aGluZzoKLSAgICAgICAgcmV0dXJuICJNYXRjaGVzIGV2ZXJ5dGhpbmcuIjsKKyAgICAgICAgcmV0
dXJuICJNYXRjaGVzIGV2ZXJ5dGhpbmcuIl9zOwogICAgIGNhc2UgTm9uQVNDSUk6Ci0gICAgICAg
IHJldHVybiAiT25seSBBU0NJSSBjaGFyYWN0ZXJzIGFyZSBzdXBwb3J0ZWQgaW4gcGF0dGVybi4i
OworICAgICAgICByZXR1cm4gIk9ubHkgQVNDSUkgY2hhcmFjdGVycyBhcmUgc3VwcG9ydGVkIGlu
IHBhdHRlcm4uIl9zOwogICAgIGNhc2UgVW5zdXBwb3J0ZWRDaGFyYWN0ZXJDbGFzczoKLSAgICAg
ICAgcmV0dXJuICJDaGFyYWN0ZXIgY2xhc3MgaXMgbm90IHN1cHBvcnRlZC4iOworICAgICAgICBy
ZXR1cm4gIkNoYXJhY3RlciBjbGFzcyBpcyBub3Qgc3VwcG9ydGVkLiJfczsKICAgICBjYXNlIEJh
Y2tSZWZlcmVuY2U6Ci0gICAgICAgIHJldHVybiAiUGF0dGVybnMgY2Fubm90IGNvbnRhaW4gYmFj
a3JlZmVyZW5jZXMuIjsKKyAgICAgICAgcmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBi
YWNrcmVmZXJlbmNlcy4iX3M7CiAgICAgY2FzZSBGb3J3YXJkUmVmZXJlbmNlOgotICAgICAgICBy
ZXR1cm4gIlBhdHRlcm5zIGNhbm5vdCBjb250YWluIGZvcndhcmQgcmVmZXJlbmNlcy4iOworICAg
ICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5vdCBjb250YWluIGZvcndhcmQgcmVmZXJlbmNlcy4i
X3M7CiAgICAgY2FzZSBNaXNwbGFjZWRTdGFydE9mTGluZToKLSAgICAgICAgcmV0dXJuICJTdGFy
dCBvZiBsaW5lIGFzc2VydGlvbiBjYW4gb25seSBhcHBlYXIgYXMgdGhlIGZpcnN0IHRlcm0gaW4g
YSBmaWx0ZXIuIjsKKyAgICAgICAgcmV0dXJuICJTdGFydCBvZiBsaW5lIGFzc2VydGlvbiBjYW4g
b25seSBhcHBlYXIgYXMgdGhlIGZpcnN0IHRlcm0gaW4gYSBmaWx0ZXIuIl9zOwogICAgIGNhc2Ug
V29yZEJvdW5kYXJ5OgotICAgICAgICByZXR1cm4gIldvcmQgYm91bmRhcmllcyBhc3NlcnRpb25z
IGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iOworICAgICAgICByZXR1cm4gIldvcmQgYm91bmRhcmll
cyBhc3NlcnRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iX3M7CiAgICAgY2FzZSBBdG9tQ2hh
cmFjdGVyOgotICAgICAgICByZXR1cm4gIkJ1aWx0aW5zIGNoYXJhY3RlciBjbGFzcyBhdG9tcyBh
cmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJCdWlsdGlucyBjaGFyYWN0
ZXIgY2xhc3MgYXRvbXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIEdyb3Vw
OgotICAgICAgICByZXR1cm4gIkdyb3VwcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAg
ICAgcmV0dXJuICJHcm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIERp
c2p1bmN0aW9uOgotICAgICAgICByZXR1cm4gIkRpc2p1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRl
ZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJEaXNqdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQg
eWV0LiJfczsKICAgICBjYXNlIE1pc3BsYWNlZEVuZE9mTGluZToKLSAgICAgICAgcmV0dXJuICJU
aGUgZW5kIG9mIGxpbmUgYXNzZXJ0aW9uIG11c3QgYmUgdGhlIGxhc3QgdGVybSBpbiBhbiBleHBy
ZXNzaW9uLiI7CisgICAgICAgIHJldHVybiAiVGhlIGVuZCBvZiBsaW5lIGFzc2VydGlvbiBtdXN0
IGJlIHRoZSBsYXN0IHRlcm0gaW4gYW4gZXhwcmVzc2lvbi4iX3M7CiAgICAgY2FzZSBFbXB0eVBh
dHRlcm46Ci0gICAgICAgIHJldHVybiAiRW1wdHkgcGF0dGVybi4iOworICAgICAgICByZXR1cm4g
IkVtcHR5IHBhdHRlcm4uIl9zOwogICAgIGNhc2UgWWFyckVycm9yOgotICAgICAgICByZXR1cm4g
IkludGVybmFsIGVycm9yIGluIFlBUlIuIjsKKyAgICAgICAgcmV0dXJuICJJbnRlcm5hbCBlcnJv
ciBpbiBZQVJSLiJfczsKICAgICBjYXNlIEludmFsaWRRdWFudGlmaWVyOgotICAgICAgICByZXR1
cm4gIkFyYml0cmFyeSBhdG9tIHJlcGV0aXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkLiI7CisgICAg
ICAgIHJldHVybiAiQXJiaXRyYXJ5IGF0b20gcmVwZXRpdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQu
Il9zOwogICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5oCmluZGV4
IGI1YzFmNmQ5ZmQyZTdjOTRjYjI1NjU3NTY4OWRmNGI3MDcwNzlhOWQuLjg4OTgzYjU1YzNjYmVk
NTlmNGE0YTAxYWVkMjVhNDMyYzgwMjhiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5oCkBAIC01NCw3ICs1NCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgWWFyckVycm9yLAogICAgICAgICBJbnZhbGlkUXVhbnRpZmllciwKICAgICB9
OwotICAgIHN0YXRpYyBTdHJpbmcgc3RhdHVzU3RyaW5nKFBhcnNlU3RhdHVzKTsKKyAgICBzdGF0
aWMgQVNDSUlMaXRlcmFsIHN0YXR1c1N0cmluZyhQYXJzZVN0YXR1cyk7CiAgICAgZXhwbGljaXQg
VVJMRmlsdGVyUGFyc2VyKENvbWJpbmVkVVJMRmlsdGVycyYpOwogICAgIH5VUkxGaWx0ZXJQYXJz
ZXIoKTsKICAgICBQYXJzZVN0YXR1cyBhZGRQYXR0ZXJuKGNvbnN0IFN0cmluZyYgcGF0dGVybiwg
Ym9vbCBwYXR0ZXJuSXNDYXNlU2Vuc2l0aXZlLCB1aW50NjRfdCBwYXR0ZXJuSWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAppbmRleCBlYWEzMjE4ZmNmN2I3Nzg1NGZiMjM4
NWU1MDFhOTk5NDM2ZmJlYjU4Li45ZDZmNDMwMzY1OTgyZDZlOTUwZTljMWE2YTFkNmIyYzFhN2Qz
OTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcApAQCAtNTM0LDcgKzUz
NCw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjphZGRBdXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5p
bmdJZk5lY2Vzc2FyeShDcnlwdG9BbGdvcml0aG1JCiB7CiAgICAgaWYgKGFsZ29yaXRobUlkZW50
aWZpZXIgPT0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQyB8fCBhbGdvcml0aG1J
ZGVudGlmaWVyID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DVFIpIHsKICAgICAg
ICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmhhc0xvZ2dlZEF1dGhlbnRpY2F0ZWRF
bmNyeXB0aW9uV2FybmluZygpKSB7Ci0gICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2
ZWw6Oldhcm5pbmcsICJBRVMtQ0JDIGFuZCBBRVMtQ1RSIGRvIG5vdCBwcm92aWRlIGF1dGhlbnRp
Y2F0aW9uIGJ5IGRlZmF1bHQsIGFuZCBpbXBsZW1lbnRpbmcgaXQgbWFudWFsbHkgY2FuIHJlc3Vs
dCBpbiBtaW5vciwgYnV0IHNlcmlvdXMgbWlzdGFrZXMuIFdlIHJlY29tbWVuZGVkIHVzaW5nIGF1
dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiBsaWtlIEFFUy1HQ00gdG8gcHJvdGVjdCBhZ2FpbnN0IGNo
b3Nlbi1jaXBoZXJ0ZXh0IGF0dGFja3MuIik7CisgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsICJBRVMtQ0JDIGFuZCBBRVMtQ1RSIGRvIG5vdCBwcm92aWRlIGF1
dGhlbnRpY2F0aW9uIGJ5IGRlZmF1bHQsIGFuZCBpbXBsZW1lbnRpbmcgaXQgbWFudWFsbHkgY2Fu
IHJlc3VsdCBpbiBtaW5vciwgYnV0IHNlcmlvdXMgbWlzdGFrZXMuIFdlIHJlY29tbWVuZGVkIHVz
aW5nIGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiBsaWtlIEFFUy1HQ00gdG8gcHJvdGVjdCBhZ2Fp
bnN0IGNob3Nlbi1jaXBoZXJ0ZXh0IGF0dGFja3MuIl9zKTsKICAgICAgICAgICAgIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+c2V0SGFzTG9nZ2VkQXV0aGVudGljYXRlZEVuY3J5cHRpb25XYXJu
aW5nKHRydWUpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCmluZGV4IDI3MzI5
ODViNzdmZWRmYzM5Njc0ZDQ3NDlkODk1NTBhMGExNzFjMjYuLmI3NDQzYTczMzk4NDIwODhmODNj
Y2M2ZjM1Y2EyOTc3MTYwOGNjZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKQEAgLTQxLDcgKzQxLDcg
QEAgcHVibGljOgogICAgICAgICBObwogICAgIH07CiAKLSAgICBzdGF0aWMgY29uc3RleHByIGNv
bnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtQ0JDIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJ
TGl0ZXJhbCBzX25hbWUgPSAiQUVTLUNCQyJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6QUVTX0NCQzsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19DRkIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19DRkIuaAppbmRleCBjMjI3NDE5MWY2MzViODMzYTQ5MWU4MmNiMWRlN2Rh
ODEwM2M2ZDlhLi41MDhhMjAzMzY0YWNiYWNmYzBmZmM4NTcyNzUyNzllZjU0NmNmYzg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1B
RVNfQ0ZCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0NGQi5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAog
Y2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQiBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0
aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0g
IkFFUy1DRkItOCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0g
IkFFUy1DRkItOCJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NGQjsK
ICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DVFIu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19D
VFIuaAppbmRleCA3MThmNmUwZTMzODZlNmZlNjI1Mzk1YWZiYjc5YWQzMGM0ZmE0MTRhLi44YmQz
OTMzOWRjMzYwMGY2YzQ4NmVhNjEwYzFiODI0NmI4YzIyNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5o
CkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgY29uc3Qgc2l6ZV90IG1fY291bnRl
ckxlbmd0aDsKICAgICB9OwogCi0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25h
bWUgPSAiQUVTLUNUUiI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1l
ID0gIkFFUy1DVFIiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DVFI7
CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NN
LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNf
R0NNLmgKaW5kZXggZDBhZDFmMTNjMTc4YjVjYzliMTc2ZWIzMGU2Y2VjMmExYmNiNDY1OC4uNTMz
MTBlMTExMDc1ZTE2MzRlZjNlMDU3YjRhZGY2YTEzYzY5MjMxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19HQ00u
aApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0b0Fs
Z29yaXRobUFFU19HQ00gZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtR0NNIjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUdDTSJfczsKICAg
ICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVy
ID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0dDTTsKICAgICBzdGF0aWMgUmVmPENy
eXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKaW5kZXggNTdlNjljMTVj
MTJjN2VlMThlYjc2NTE4ZGZmODdiZjRiNTcyNGI5OS4uYTA4ZGVjM2YyNmNiYjU5OTE1NGEyMzU2
NTkwZWYwZmQxNzdjNjNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xh
c3MgQ3J5cHRvS2V5QUVTOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfS1cgZmluYWwgOiBw
dWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNv
bnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtS1ciOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlM
aXRlcmFsIHNfbmFtZSA9ICJBRVMtS1ciX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19LVzsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUVDREguaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUVDREguaAppbmRleCA5M2ExNWEyZGEzNTFkY2U3Mjc0MzM4MTk3ZDI2NjMxMDU4NWY3YmY1
Li4zMmQ1NTQ1NmM5NzA4MjVjY2U1NTJkN2RlMDQzYTQyOTUwZDBlMjNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5o
CkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleUVDOwogCiBjbGFzcyBDcnlwdG9BbGdv
cml0aG1FQ0RIIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiRUNESCI7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkVDREgiX3M7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkVDREg7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+
IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaAppbmRleCAzYTU5MWJkZmFmMjI4ODUwZGU4YzA4MmJm
Mjc3YTE5MDA2Mzg5ZTY2Li5iN2M3ODg5ZjhlMDMyMTM0YzNkZTAzYjdhYWJmNzVjNTJmODJiZDNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1FQ0RTQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUVDRFNBLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5RUM7CiAK
IGNsYXNzIENyeXB0b0FsZ29yaXRobUVDRFNBIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRo
bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAi
RUNEU0EiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJFQ0RT
QSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19p
ZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNEU0E7CiAgICAgc3RhdGlj
IFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1IS0RGLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1IS0RGLmgKaW5kZXggMWRkY2Q5
ZDFhMTQ2MzE2MDMyMWIxMTZhZTc0ZDlhMzZkOWNiMWQ2YS4uOGYzOTM5YjE5YjRlYzkyODY3ODA3
M2YyNzQ2YTk1YjBlZjNiMzVhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFz
cyBDcnlwdG9LZXlSYXc7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUhLREYgZmluYWwgOiBwdWJs
aWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0
IGNoYXIqIHNfbmFtZSA9ICJIS0RGIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJh
bCBzX25hbWUgPSAiSEtERiJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SEtE
RjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMu
aAppbmRleCBmYThmMGFkZGNjZTEyOGYyNDcxNTE3M2ZhZmJmYTkyNzMyNTI1MGQzLi45ZjEwODQ2
OThhYjQzZjdlNWVkOTliYmNhZDg1ZjgxMWFhYmI1YzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleUhNQUM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUhN
QUMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
Y29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJITUFDIjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiSE1BQyJfczsKICAgICBzdGF0aWMgY29uc3RleHBy
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6SE1BQzsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVBCS0RGMi5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUEJLREYyLmgKaW5kZXggYmQ5NzQ1YzcwMzU4ZTc4ZDUzYjQ4MGNjMjY2ZGM0
NDk3NzhmYjg0Mi4uMzQwNjllNTFmYWFlNmEyMDcyMjI5ODI4ZDE2ZDlhMzI5ZDVhOGJmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UEJLREYyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUEJLREYyLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UmF3OwogCiBj
bGFzcyBDcnlwdG9BbGdvcml0aG1QQktERjIgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGht
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJQ
QktERjIiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJQQktE
RjIiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNf
aWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlBCS0RGMjsKICAgICBzdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUu
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVT
X1BLQ1MxX3YxXzUuaAppbmRleCA4YjUxYjQxZTdjMGE1N2Y2NjhmNTg0NzlmYTI5ZTYzOGU5ZTFh
ZDBiLi5kMjFlNmMxZWUyODZmN2RjNjM4NzVhOTg0YWIyM2U3MDA0ZWUxODgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19Q
S0NTMV92MV81LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0
b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNSBmaW5hbCA6
IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
Y29uc3QgY2hhciogc19uYW1lID0gIlJTQUVTLVBLQ1MxLXYxXzUiOworICAgIHN0YXRpYyBjb25z
dGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJSU0FFUy1QS0NTMS12MV81Il9zOwogICAgIHN0
YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OwogICAgIHN0YXRpYyBS
ZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81LmgKaW5kZXggZDliN2I0NTA3MjNhZmNkYTk5OTk1Y2I4ODNjZGEzOWNhZjMyOGRj
ZS4uZDE4NWQzYTRiZGEyZGEzN2NkYjBkZjI4ZjY4YTI3M2RkZTk5Yjg2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0
b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUgZmluYWwg
OiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHBy
IGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0FTU0EtUEtDUzEtdjFfNSI7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlJTQVNTQS1QS0NTMS12MV81Il9zOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIg
PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNTsKICAgICBzdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oCmlu
ZGV4IDA5NmFmM2NhMjMwNzk1OWYyNDU0ZWUzY2ZkMmIzZjBlMjJiNDczZjIuLmRiYTdlYTlkNWQ3
MjJlNDI3YTNiMGFhNGY5ZGNkMzJmZjQ0NTlmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaApAQCAt
MzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBLU9BRVAiOworICAgIHN0
YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJSU0EtT0FFUCJfczsKICAgICBz
dGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0g
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVA7CiAgICAgc3RhdGljIFJlZjxDcnlw
dG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfUFNTLmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfUFNTLmgKaW5kZXggNTg3OWE1Njdj
Y2NjN2IwYTFjOWFkNGQ5MTc4OWQ5ZDA1NGIwMDk3NC4uYjFmN2Y3NzJjZTQyMjc4ZDRkOTRkNWMw
YTc2Y2FlNWVkZjBlNDBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaApAQCAtMzYsNyArMzYsNyBAQCBj
bGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQV9QU1MgZmluYWwg
OiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHBy
IGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0EtUFNTIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFT
Q0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBLVBTUyJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6UlNBX1BTUzsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTEuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTEuaAppbmRleCBkODA3YWJiOTc0Y2JhYWMzYjBhN2JjN2FkODY1OGZjYWZi
NWFkNmFlLi4xZmQ3NzVhODEzNjQzYzFiMmZhY2M3ZDNjOTQwOWQzMmZlMWNlODU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEx
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBMS5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtU0hBMSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0xIjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiU0hBLTEiX3M7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRv
QWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaAppbmRleCA3ODA0YmFjZmYyNTcy
ZDhkYzY1MTEwMDQwNGY5MDViZjkzYmZjNGM2Li40OTNlMTYyYWIzNjUyZTY2YzM1MDRhOGQ3OTVj
Mjg2OWQ0ZGRjZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTIyNCBmaW5hbCA6IHB1Ymxp
YyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3Qg
Y2hhciogc19uYW1lID0gIlNIQS0yMjQiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRl
cmFsIHNfbmFtZSA9ICJTSEEtMjI0Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpTSEFfMjI0OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMjU2LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1TSEEyNTYuaAppbmRleCBjZTI0MDRjNzRkNTVjOGYyNzQ0MDVlNTZmNGQ1OGE3ZmY2MTYx
NWY5Li5mNWE4NTQzYzgyYzU1NDhlZTQyYjNiOTMyNzExZTY4NTVlZjhmMGY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyNTYuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENy
eXB0b0FsZ29yaXRobVNIQTI1NiBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0yNTYi
OworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMjU2Il9z
OwogICAgIHN0YXRpYyBjb25zdCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmll
ciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yNTY7CiAgICAgc3RhdGljIFJlZjxD
cnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oCmluZGV4IDZjYzU3NDkx
MzI2YTAwOGU0MjZmMjY5MjEzODlhZDZmNGM0YmY4NDkuLmU1YmYyMjMyYWNmMmRhNmExMDA2ZWE1
MjAxOTM0MDhiMTgwNWYyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBMzg0IGZpbmFsIDog
cHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBj
b25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTM4NCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJ
SUxpdGVyYWwgc19uYW1lID0gIlNIQS0zODQiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlNIQV8zODQ7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1TSEE1MTIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTUxMi5oCmluZGV4IDBkNGEwYjk2YjY0MmE0Y2RmYTdiZjk5MGE5N2VmNzNi
OGI3NjEzZjguLjA1Zjk4ZmM0YTg2NjZkYWZkYTYwNTlhMTRmZTVlMTczN2E0YTc0MmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTUxMi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVNIQTUxMi5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQ3J5cHRvQWxnb3JpdGhtU0hBNTEyIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hB
LTUxMiI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNIQS01
MTIiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNf
aWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV81MTI7CiAgICAgc3Rh
dGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAppbmRleCA0MmZlM2E0YmU1MjE4MTk5NzM0ZGVkZDAz
YWI3Yzk3MWYzMDExYWQ0Li5jNzZjODYzZDVhZmM1YTQxNWIwNjU1ODg1MGQzMDc1MjBjMGM2N2Nl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKQEAgLTEw
Niw3ICsxMDYsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5QUVTPiBDcnlwdG9LZXlBRVM6OmltcG9ydEp3
ayhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobQogSnNvbldlYktleSBDcnlwdG9L
ZXlBRVM6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1bHQ7Ci0gICAg
cmVzdWx0Lmt0eSA9ICJvY3QiOworICAgIHJlc3VsdC5rdHkgPSAib2N0Il9zOwogICAgIHJlc3Vs
dC5rID0gYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcobV9rZXkpOwogICAgIHJlc3VsdC5rZXlfb3Bz
ID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJhY3RhYmxlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKaW5kZXggZDM2ZDM0MGY3MGE4ZjRhMTdm
ZjVmNjE5Y2ViMWQ5ZDg0NWNhMmEzMy4uZmNlODJiZWU5MWNhYjc0MjYyMDQwMGRjYTc3MzA1YzE3
ZjY4NTIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5
RUMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmNwcApA
QCAtMTQ4LDcgKzE0OCw3IEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvS2V5
RUM6OmV4cG9ydFJhdygpIGNvbnN0CiBFeGNlcHRpb25PcjxKc29uV2ViS2V5PiBDcnlwdG9LZXlF
Qzo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2ViS2V5IHJlc3VsdDsKLSAgICByZXN1
bHQua3R5ID0gIkVDIjsKKyAgICByZXN1bHQua3R5ID0gIkVDIl9zOwogICAgIHN3aXRjaCAobV9j
dXJ2ZSkgewogICAgIGNhc2UgTmFtZWRDdXJ2ZTo6UDI1NjoKICAgICAgICAgcmVzdWx0LmNydiA9
IFAyNTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlI
TUFDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCmlu
ZGV4IDQzNGYyNDA0NTVkYzhjZTM0MWUwMDU0MDNiZjA1Y2I5MDAzN2QxNDkuLjI1NDNlZDU0NjU3
ZTdhZTNmMmY3OTk2Yzc4NDQzZGZiMDlhNzI3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgUmVmUHRyPENyeXB0
b0tleUhNQUM+IENyeXB0b0tleUhNQUM6OmltcG9ydEp3ayhzaXplX3QgbGVuZ3RoQml0cywgQ3J5
cHRvQWxnb3JpdGgKIEpzb25XZWJLZXkgQ3J5cHRvS2V5SE1BQzo6ZXhwb3J0SndrKCkgY29uc3QK
IHsKICAgICBKc29uV2ViS2V5IHJlc3VsdDsKLSAgICByZXN1bHQua3R5ID0gIm9jdCI7CisgICAg
cmVzdWx0Lmt0eSA9ICJvY3QiX3M7CiAgICAgcmVzdWx0LmsgPSBiYXNlNjRVUkxFbmNvZGVUb1N0
cmluZyhtX2tleSk7CiAgICAgcmVzdWx0LmtleV9vcHMgPSB1c2FnZXMoKTsKICAgICByZXN1bHQu
ZXh0ID0gZXh0cmFjdGFibGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9r
ZXlzL0NyeXB0b0tleVJTQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlSU0EuY3BwCmluZGV4IDZiYmYxNGYyNDYwYjNkMWY1MDQ4OGFmMzkyOTcwOWY3NDIxNmVlMjQu
LjA1ODFkNjcwNzJjYjkzNjZkMzc3NTQyMjY4YTQ4ZmZkYTA2MzlhNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIFJl
ZlB0cjxDcnlwdG9LZXlSU0E+IENyeXB0b0tleVJTQTo6aW1wb3J0SndrKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgYWxnb3JpdGhtCiBKc29uV2ViS2V5IENyeXB0b0tleVJTQTo6ZXhwb3J0Sndr
KCkgY29uc3QKIHsKICAgICBKc29uV2ViS2V5IHJlc3VsdDsKLSAgICByZXN1bHQua3R5ID0gIlJT
QSI7CisgICAgcmVzdWx0Lmt0eSA9ICJSU0EiX3M7CiAgICAgcmVzdWx0LmtleV9vcHMgPSB1c2Fn
ZXMoKTsKICAgICByZXN1bHQuZXh0ID0gZXh0cmFjdGFibGUoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCmluZGV4IDMwNWMzMmVhODBjY2U1OTBiNGI2MWQw
NWQ5YTUwYzJmNjJlOWQ2ZTYuLmViNjg2NjM1NzU1YzNlMTE5ZDBiOGFlNjg1YzViNmVkMzI4MDU4
OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTU2
LDcgKzU2LDcgQEAgYm9vbCBDU1NGb250RmFjZVNyY1ZhbHVlOjppc1N1cHBvcnRlZEZvcm1hdCgp
IGNvbnN0CiAgICAgLy8gd2Ugd2lsbCBhbHNvIGNoZWNrIHRvIHNlZSBpZiB0aGUgVVJMIGVuZHMg
d2l0aCAuZW90LiBJZiBzbywgd2UnbGwgYXNzdW1lIHRoYXQgd2Ugc2hvdWxkbid0IGxvYWQgaXQu
CiAgICAgaWYgKG1fZm9ybWF0LmlzRW1wdHkoKSkgewogICAgICAgICAvLyBDaGVjayBmb3IgLmVv
dC4KLSAgICAgICAgaWYgKCFwcm90b2NvbElzKG1fcmVzb3VyY2UsICJkYXRhIikgJiYgbV9yZXNv
dXJjZS5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIuZW90IikpCisgICAgICAgIGlmICghcHJv
dG9jb2xJcyhtX3Jlc291cmNlLCAiZGF0YSIpICYmIG1fcmVzb3VyY2UuZW5kc1dpdGhJZ25vcmlu
Z0FTQ0lJQ2FzZSgiLmVvdCJfcykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NH
cmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVt
cGxhdGVBcmVhc1ZhbHVlLmNwcAppbmRleCBlMGI3ODY1OWFkYmQwMTQ4MzllNTdjMDYyMWRjMTYx
OWVmODEzMTA5Li5kZmQ3MjUxM2JjZGY1NDYxMDllNjkwMmI1YmU5Yjk3OTJlNmEyNzRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCkBA
IC02Myw3ICs2Myw3IEBAIHN0YXRpYyBTdHJpbmcgc3RyaW5nRm9yUG9zaXRpb24oY29uc3QgTmFt
ZWRHcmlkQXJlYU1hcCYgZ3JpZEFyZWFNYXAsIHNpemVfdCByb3csCiAgICAgICAgICAgICByZXR1
cm4gaXQua2V5OwogICAgIH0KIAotICAgIHJldHVybiAiLiI7CisgICAgcmV0dXJuICIuIl9zOwog
fQogCiBTdHJpbmcgQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCA3ODljNjM0
OTdmMjIxMDY0OWI0NGFhODgyYWUwMWI2OGViYjhkYTI5Li45ZmU2NGI1YmU5NDU2YTQ0OGVjZjUw
NDk3YTQxMzU3OTRmOGJkOWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5jcHAKQEAgLTEyMzEsNjQgKzEyMzEsNjQgQEAgTkVWRVJfSU5MSU5FIFN0cmluZyBDU1NQcmlt
aXRpdmVWYWx1ZTo6Zm9ybWF0SW50ZWdlclZhbHVlKFN0cmluZ1ZpZXcgc3VmZml4KSBjb24KIFN0
cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcoQ1NTVW5pdFR5cGUgdW5pdFR5
cGUpCiB7CiAgICAgc3dpdGNoICh1bml0VHlwZSkgewotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfUEVSQ0VOVEFHRTogcmV0dXJuICIlIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0VNUzogcmV0dXJuICJlbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6
IHJldHVybiAiZXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFg6IHJldHVybiAi
cHgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ006IHJldHVybiAiY20iOwotICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTU06IHJldHVybiAibW0iOwotICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfSU46IHJldHVybiAiaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfUFQ6IHJldHVybiAicHQiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
UEM6IHJldHVybiAicGMiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVHOiByZXR1
cm4gImRlZyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6IHJldHVybiAicmFk
IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ6IHJldHVybiAiZ3JhZCI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NUzogcmV0dXJuICJtcyI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TOiByZXR1cm4gInMiOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfSFo6IHJldHVybiAiaHoiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
S0haOiByZXR1cm4gImtoeiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WVzogcmV0
dXJuICJ2dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDogcmV0dXJuICJ2aCI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOiByZXR1cm4gInZtaW4iOwotICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDogcmV0dXJuICJ2bWF4IjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZCOiByZXR1cm4gInZiIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1ZJOiByZXR1cm4gInZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWVzogcmV0dXJuICJzdnciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZI
OiByZXR1cm4gInN2aCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogcmV0
dXJuICJzdm1pbiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDogcmV0dXJu
ICJzdm1heCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkI6IHJldHVybiAic3Zi
IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSTogcmV0dXJuICJzdmkiOwotICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOiByZXR1cm4gImx2dyI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6IHJldHVybiAibHZoIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWTUlOOiByZXR1cm4gImx2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWTUFYOiByZXR1cm4gImx2bWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWQjogcmV0dXJuICJsdmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TFZJOiByZXR1cm4gImx2aSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6IHJl
dHVybiAiZHZ3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogcmV0dXJuICJk
dmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46IHJldHVybiAiZHZtaW4i
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6IHJldHVybiAiZHZtYXgiOwot
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZCOiByZXR1cm4gImR2YiI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkk6IHJldHVybiAiZHZpIjsKLSAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RQUFg6IHJldHVybiAiZHBweCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19YOiByZXR1cm4gIngiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFBJOiByZXR1cm4gImRwaSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUENNOiBy
ZXR1cm4gImRwY20iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRlI6IHJldHVybiAi
ZnIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUTogcmV0dXJuICJxIjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzogcmV0dXJuICJsaCI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19STEhTOiByZXR1cm4gInJsaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19UVVJOOiByZXR1cm4gInR1cm4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfUkVNUzogcmV0dXJuICJyZW0iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Q0hTOiByZXR1cm4gImNoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lDOiByZXR1
cm4gImljIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRVzogcmV0dXJuICJjcXci
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FIOiByZXR1cm4gImNxaCI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUk6IHJldHVybiAiY3FpIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0NRQjogcmV0dXJuICJjcWIiOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfQ1FNQVg6IHJldHVybiAiY3FtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfQ1FNSU46IHJldHVybiAiY3FtaW4iOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfUEVSQ0VOVEFHRTogcmV0dXJuICIlIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRU1TOiByZXR1cm4gImVtIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RVhTOiByZXR1cm4gImV4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFg6IHJl
dHVybiAicHgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DTTogcmV0dXJuICJj
bSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01NOiByZXR1cm4gIm1tIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSU46IHJldHVybiAiaW4iX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QVDogcmV0dXJuICJwdCJfczsKKyAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1BDOiByZXR1cm4gInBjIl9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfREVHOiByZXR1cm4gImRlZyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1JBRDogcmV0dXJuICJyYWQiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19H
UkFEOiByZXR1cm4gImdyYWQiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NUzog
cmV0dXJuICJtcyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1M6IHJldHVybiAi
cyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0haOiByZXR1cm4gImh6Il9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfS0haOiByZXR1cm4gImtoeiJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOiByZXR1cm4gInZ3Il9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVkg6IHJldHVybiAidmgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WTUlOOiByZXR1cm4gInZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19WTUFYOiByZXR1cm4gInZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19WQjogcmV0dXJuICJ2YiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZJ
OiByZXR1cm4gInZpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiByZXR1
cm4gInN2dyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDogcmV0dXJuICJz
dmgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogcmV0dXJuICJzdm1p
biJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiByZXR1cm4gInN2bWF4
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZCOiByZXR1cm4gInN2YiJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSTogcmV0dXJuICJzdmkiX3M7CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6IHJldHVybiAibHZ3Il9zOworICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOiByZXR1cm4gImx2aCJfczsKKyAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0xWTUlOOiByZXR1cm4gImx2bWluIl9zOworICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfTFZNQVg6IHJldHVybiAibHZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19MVkI6IHJldHVybiAibHZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTFZJOiByZXR1cm4gImx2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RWVzogcmV0dXJuICJkdnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vkg6IHJldHVybiAiZHZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46
IHJldHVybiAiZHZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDog
cmV0dXJuICJkdm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWQjogcmV0
dXJuICJkdmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkk6IHJldHVybiAi
ZHZpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDogcmV0dXJuICJkcHB4
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDogcmV0dXJuICJ4Il9zOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOiByZXR1cm4gImRwaSJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQQ006IHJldHVybiAiZHBjbSJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOiByZXR1cm4gImZyIl9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfUTogcmV0dXJuICJxIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTEhTOiByZXR1cm4gImxoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkxI
UzogcmV0dXJuICJybGgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19UVVJOOiBy
ZXR1cm4gInR1cm4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SRU1TOiByZXR1
cm4gInJlbSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NIUzogcmV0dXJuICJj
aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lDOiByZXR1cm4gImljIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FXOiByZXR1cm4gImNxdyJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRSDogcmV0dXJuICJjcWgiX3M7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19DUUk6IHJldHVybiAiY3FpIl9zOworICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfQ1FCOiByZXR1cm4gImNxYiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0NRTUFYOiByZXR1cm4gImNxbWF4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfQ1FNSU46IHJldHVybiAiY3FtaW4iX3M7CiAKICAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1VOS05PV046CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwCmluZGV4IDRmOWQ0YTYwNDhjNjE0
YzhkMGZhZjU0OGJmY2NiYWFlNDhhMGM4NjUuLjZhNzk4NTlkYTI3ZGFlYWFhYTdiY2Y1Zjk5MTJk
M2U3N2M1YmQyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwCkBAIC0z
Niw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFN0cmluZyBDU1NTdWJncmlkVmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAogewogICAgIGlmICghbGVuZ3RoKCkpCi0gICAgICAgIHJl
dHVybiAic3ViZ3JpZCI7CisgICAgICAgIHJldHVybiAic3ViZ3JpZCJfczsKICAgICByZXR1cm4g
InN1YmdyaWQgIiArIENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCmluZGV4IGY3ZmNmNWUyN2RkYzYwYjJmZDQ1ZDVj
MzUxZDQ0N2Y2ZjFmMTBhY2IuLjgwMDc4NzIxM2QzM2IwNzIzOWQxMTgyYzc0MzU5ZTQ5YzY1YzE4
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCkBAIC00Myw3ICs0Myw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIFN0cmluZyB2YWx1ZVdpdGhvdXRJbXBv
cnRhbnQoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBpZiAoIXZhbHVlLmVuZHNXaXRoSWdu
b3JpbmdBU0NJSUNhc2UoImltcG9ydGFudCIpKQorICAgIGlmICghdmFsdWUuZW5kc1dpdGhJZ25v
cmluZ0FTQ0lJQ2FzZSgiaW1wb3J0YW50Il9zKSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogCiAg
ICAgU3RyaW5nIG5ld1ZhbHVlID0gdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKaW5kZXggYzJjODI1MGFiMjJkODNlZGQ4
MjIwMDEwYjgyZjYyNTFkZTdiODlmNy4uOTJhMmNiYzQwZmQzMTYxZTBmOWZjNzViMTg4YTJkOThk
M2U3MTkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3Vz
dG9tUHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1
c3RvbVByb3BlcnR5LmNwcApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBF
eGNlcHRpb25Pcjx2b2lkPiBET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5OjpyZWdpc3RlclBy
b3BlcnR5KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRE9NQ1NTQ3VzdG9tUHJvcGVydHlEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKQogewogICAgIGlmICghaXNDdXN0b21Qcm9wZXJ0eU5hbWUoZGVz
Y3JpcHRvci5uYW1lKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAi
VGhlIG5hbWUgb2YgdGhpcyBwcm9wZXJ0eSBpcyBub3QgYSBjdXN0b20gcHJvcGVydHkgbmFtZS4i
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBuYW1lIG9m
IHRoaXMgcHJvcGVydHkgaXMgbm90IGEgY3VzdG9tIHByb3BlcnR5IG5hbWUuIl9zIH07CiAKICAg
ICBSZWZQdHI8Q1NTQ3VzdG9tUHJvcGVydHlWYWx1ZT4gaW5pdGlhbFZhbHVlOwogICAgIGlmICgh
ZGVzY3JpcHRvci5pbml0aWFsVmFsdWUuaXNFbXB0eSgpKSB7CkBAIC01OSw3ICs1OSw3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHk6OnJlZ2lzdGVyUHJv
cGVydHkoRG9jdW1lbnQmIGRvY3VtCiAgICAgICAgIENTU1Byb3BlcnR5UGFyc2VyOjpjb2xsZWN0
UGFyc2VkQ3VzdG9tUHJvcGVydHlWYWx1ZURlcGVuZGVuY2llcyhkZXNjcmlwdG9yLnN5bnRheCwg
ZmFsc2UsIGRlcGVuZGVuY2llcywgdG9rZW5pemVyLnRva2VuUmFuZ2UoKSwgc3RyaWN0Q1NTUGFy
c2VyQ29udGV4dCgpKTsKIAogICAgICAgICBpZiAoIWRlcGVuZGVuY2llcy5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5p
dGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxseSBpbmRlcGVuZGVudC4iIH07CisgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlh
bCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxseSBpbmRlcGVuZGVudC4iX3MgfTsKIAogCiAg
ICAgICAgIFN0eWxlOjpNYXRjaFJlc3VsdCBtYXRjaFJlc3VsdDsKQEAgLTcwLDE4ICs3MCwxOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5OjpyZWdpc3Rl
clByb3BlcnR5KERvY3VtZW50JiBkb2N1bQogICAgICAgICBpbml0aWFsVmFsdWUgPSBDU1NQcm9w
ZXJ0eVBhcnNlcjo6cGFyc2VUeXBlZEN1c3RvbVByb3BlcnR5VmFsdWUoZGVzY3JpcHRvci5uYW1l
LCBkZXNjcmlwdG9yLnN5bnRheCwgdG9rZW5pemVyLnRva2VuUmFuZ2UoKSwgZHVtbXlCdWlsZGVy
LnN0YXRlKCksIHN0cmljdENTU1BhcnNlckNvbnRleHQoKSk7CiAKICAgICAgICAgaWYgKCFpbml0
aWFsVmFsdWUgfHwgIWluaXRpYWxWYWx1ZS0+aXNSZXNvbHZlZCgpKQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgZG9l
cyBub3QgcGFyc2UgZm9yIHRoZSBnaXZlbiBzeW50YXguIiB9OworICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgZG9lcyBu
b3QgcGFyc2UgZm9yIHRoZSBnaXZlbiBzeW50YXguIl9zIH07CiAKICAgICAgICAgaW5pdGlhbFZh
bHVlLT5jb2xsZWN0RGlyZWN0Q29tcHV0YXRpb25hbERlcGVuZGVuY2llcyhkZXBlbmRlbmNpZXMp
OwogICAgICAgICBpbml0aWFsVmFsdWUtPmNvbGxlY3REaXJlY3RSb290Q29tcHV0YXRpb25hbERl
cGVuZGVuY2llcyhkZXBlbmRlbmNpZXMpOwogCiAgICAgICAgIGlmICghZGVwZW5kZW5jaWVzLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRo
ZSBnaXZlbiBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5IGluZGVwZW5kZW50
LiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBn
aXZlbiBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5IGluZGVwZW5kZW50LiJf
cyB9OwogICAgIH0KIAogICAgIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eSBwcm9wZXJ0eSB7
IGRlc2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5zeW50YXgsIGRlc2NyaXB0b3IuaW5oZXJpdHMs
IFdURk1vdmUoaW5pdGlhbFZhbHVlKSB9OwogICAgIGlmICghZG9jdW1lbnQucmVnaXN0ZXJDU1NQ
cm9wZXJ0eShXVEZNb3ZlKHByb3BlcnR5KSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJUaGlzIHByb3BlcnR5IGhhcyBhbHJlYWR5IGJlZW4g
cmVnaXN0ZXJlZC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3IsICJUaGlzIHByb3BlcnR5IGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZC4i
X3MgfTsKIAogICAgIGRvY3VtZW50LnN0eWxlU2NvcGUoKS5kaWRDaGFuZ2VTdHlsZVNoZWV0RW52
aXJvbm1lbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRD
U1NPTVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5j
cHAKaW5kZXggMjMyNTA4NDVhYmE2YmM1MzIyYjNiMzc2OWZiOTNjMGU2NDBjN2Q4Mi4uNTA2N2Qw
ZTZjNjAxYmUyYTEzMTNmMDg5YTY0MGFjMWE2MjZiOWIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwCkBAIC03Niw3ICs3Niw3IEBAIFN0cmluZyBEZXBy
ZWNhdGVkQ1NTT01WYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBkb3duY2Fz
dDxEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+KCp0aGlzKS5jc3NUZXh0KCk7CiAgICAgfQogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAiIjsKKyAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKaW5kZXggZWZmZDYwN2MzNDZm
OWJjZmJjOWMyODg5YmY4MzE2OTRkYTM0MDMwNS4uNGQ1MTFiNWU2ODU0MTMwNWQ0MGMxYzMzYjc5
MDlhNjUwNjU1NmY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCkBAIC0zNzUsNyArMzc1LDcg
QEAgU3RyaW5nIEZvbnRGYWNlOjp1bmljb2RlUmFuZ2UoKSBjb25zdAogICAgIG1fYmFja2luZy0+
dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogICAgIGNvbnN0IGF1dG8mIHJhbmdlc1dyYXBwZWQgPSBt
X2JhY2tpbmctPnJhbmdlcygpOwogICAgIGlmICghcmFuZ2VzV3JhcHBlZCkKLSAgICAgICAgcmV0
dXJuICJVKzAtMTBGRkZGIjsKKyAgICAgICAgcmV0dXJuICJVKzAtMTBGRkZGIl9zOwogICAgIGF1
dG8gcmFuZ2VzID0gcmFuZ2VzV3JhcHBlZC52YWx1ZSgpOwogICAgIGlmICghcmFuZ2VzLnNpemUo
KSkKICAgICAgICAgcmV0dXJuICJVKzAtMTBGRkZGIl9zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKaW5kZXggMDhiNzA3MDY2YmE2ZGZiMjEyN2ZjZGE5MDg4
OTM3OTM1MTA4MTRlOC4uMWJkZGI1NTNlOGZiYTJjMjI1M2U0ZDE0NTZmNzg2OTNmMzY2OTMyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCkBAIC0yNzQs
NyArMjc0LDcgQEAgTWVkaWFRdWVyeUV4cHJlc3Npb246Ok1lZGlhUXVlcnlFeHByZXNzaW9uKGNv
bnN0IFN0cmluZyYgZmVhdHVyZSwgQ1NTUGFyc2VyVG9rZW4KIFN0cmluZyBNZWRpYVF1ZXJ5RXhw
cmVzc2lvbjo6c2VyaWFsaXplKCkgY29uc3QKIHsKICAgICBpZiAobV9zZXJpYWxpemF0aW9uQ2Fj
aGUuaXNOdWxsKCkpCi0gICAgICAgIG1fc2VyaWFsaXphdGlvbkNhY2hlID0gbWFrZVN0cmluZygn
KCcsIG1fbWVkaWFGZWF0dXJlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCksIG1fdmFsdWUgPyAi
OiAiIDogIiIsIG1fdmFsdWUgPyBtX3ZhbHVlLT5jc3NUZXh0KCkgOiAiIiwgJyknKTsKKyAgICAg
ICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSBtYWtlU3RyaW5nKCcoJywgbV9tZWRpYUZlYXR1cmUu
Y29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSwgbV92YWx1ZSA/ICI6ICIgOiAiIiwgbV92YWx1ZSA/
IG1fdmFsdWUtPmNzc1RleHQoKSA6IGVtcHR5U3RyaW5nKCksICcpJyk7CiAgICAgcmV0dXJuIG1f
c2VyaWFsaXphdGlvbkNhY2hlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMu
Y3BwCmluZGV4IGYwNDEzYzE3ZmZmYTI4MzgxMWZlMjUxN2ZkZmQ2MWJjZGNmOGIyNTkuLmE5MjNj
N2E0Zjk0ZmNmMzJiMDdmODExM2EyY2JlYTI0YjlkZjg5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVByb3BlcnRpZXMuY3BwCkBAIC03NjgsNyArNzY4LDcgQEAgU3RyaW5nIFN0eWxlUHJvcGVy
dGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhh
bmQmIHMKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBtYXNrSWQgPSBkb3duY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS52YWx1ZUlEKCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBhdXRvIG9yaWdpbklkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpvcmlnaW5W
YWx1ZSkudmFsdWVJRCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hc2tJZCA9
PSBvcmlnaW5JZCAmJiAoIWlzQ1NTV2lkZVZhbHVlS2V5d29yZChnZXRWYWx1ZU5hbWUobWFza0lk
KSkgfHwgdmFsdWUtPmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gbWFza0lkID09IG9yaWdpbklkICYmICghaXNDU1NXaWRlVmFsdWVLZXl3
b3JkKFN0cmluZ1ZpZXcgeyBnZXRWYWx1ZU5hbWUobWFza0lkKSB9KSB8fCB2YWx1ZS0+aXNJbXBs
aWNpdEluaXRpYWxWYWx1ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVydHlNYXNrT3JpZ2luKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBXZSBjYW4gc2tpcCBzZXJpYWxpemluZyBtYXNrLW9yaWdpbiBp
ZiBpdCdzIHRoZSBpbml0aWFsIHZhbHVlLCBidXQgb25seSBpZiB3ZSdyZSBhbHNvIGdvaW5nIHRv
IHNraXAgc2VyaWFsaXppbmcKQEAgLTExNTQsNyArMTE1NCw3IEBAIGJvb2wgTXV0YWJsZVN0eWxl
UHJvcGVydGllczo6c2V0Q3VzdG9tUHJvcGVydHkoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBj
b25zdCBTCiAKICAgICBwYXJzZXJDb250ZXh0Lm1vZGUgPSBjc3NQYXJzZXJNb2RlKCk7CiAKLSAg
ICBTdHJpbmcgc3ludGF4ID0gIioiOworICAgIFN0cmluZyBzeW50YXggPSAiKiJfczsKICAgICBh
dXRvKiByZWdpc3RlcmVkID0gZG9jdW1lbnQgPyBkb2N1bWVudC0+Z2V0Q1NTUmVnaXN0ZXJlZEN1
c3RvbVByb3BlcnR5U2V0KCkuZ2V0KHByb3BlcnR5TmFtZSkgOiBudWxscHRyOwogCiAgICAgaWYg
KHJlZ2lzdGVyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5w
bCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCmluZGV4IDBmODIxOWQ0Y2NiNTFl
Y2E1MjVkODI5YTc2MDZiMjdiMGZhMjczMDMuLmFlOWIzMjc4MzI3MjczNzNjNGNlN2YwMjMzMDUy
MTM2YjJkOTgzZDUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCkBAIC0xMTEsMTYgKzExMSwx
NiBAQCBmb3IgbXkgJGkgKDAgLi4gJCNuYW1lcykgewogCiBwcmludCBHUEVSRiA8PCAiRU9GIjsK
ICUlCi1zdGF0aWMgY29uc3QgY2hhciogY29uc3QgdmFsdWVMaXN0W10gPSB7Ci0gICAgIiIsCitz
dGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCB2YWx1ZUxpc3RbXSA9IHsKKyAgICAiIl9zLAog
RU9GCiAKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewotICBwcmludCBHUEVSRiAiICAgIFwi
IiAuICRuYW1lIC4gIlwiLFxuIjsKKyAgcHJpbnQgR1BFUkYgIiAgICBcIiIgLiAkbmFtZSAuICJc
Il9zLFxuIjsKIH0KIAogcHJpbnQgR1BFUkYgPDwgIkVPRiI7Ci0gICAgMAorICAgIEFTQ0lJTGl0
ZXJhbDo6bnVsbCgpCiB9OwogCiBjb25zdCBWYWx1ZSogZmluZFZhbHVlKGNvbnN0IGNoYXIqIHN0
ciwgdW5zaWduZWQgaW50IGxlbikKQEAgLTEyOCwxMCArMTI4LDEwIEBAIGNvbnN0IFZhbHVlKiBm
aW5kVmFsdWUoY29uc3QgY2hhciogc3RyLCB1bnNpZ25lZCBpbnQgbGVuKQogICAgIHJldHVybiBD
U1NWYWx1ZUtleXdvcmRzSGFzaDo6ZmluZFZhbHVlSW1wbChzdHIsIGxlbik7CiB9CiAKLWNvbnN0
IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkKK0FTQ0lJTGl0ZXJhbCBnZXRW
YWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpCiB7CiAgICAgaWYgKGlkID4gbGFzdENTU1ZhbHVl
S2V5d29yZCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWw6
Om51bGwoKTsKICAgICByZXR1cm4gdmFsdWVMaXN0W2lkXTsKIH0KIApAQCAtMjAzLDcgKzIwMyw3
IEBAIHByaW50IEhFQURFUiAiY29uc3QgaW50IGxhc3RDU1NWYWx1ZUtleXdvcmQgPSAkbGFzdDtc
biI7CiBwcmludCBIRUFERVIgImNvbnN0IHNpemVfdCBtYXhDU1NWYWx1ZUtleXdvcmRMZW5ndGgg
PSAiIC4gJG1heExlbiAuICI7XG4iOwogcHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCi1jb25zdCBj
aGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOworQVNDSUlMaXRlcmFsIGdldFZh
bHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCk7CiBjb25zdCBBdG9tU3RyaW5nJiBnZXRWYWx1ZU5h
bWVBdG9tU3RyaW5nKENTU1ZhbHVlSUQgaWQpOwogU3RyaW5nIGdldFZhbHVlTmFtZVN0cmluZyhD
U1NWYWx1ZUlEIGlkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9N
ZWRpYVF1ZXJ5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVy
eVBhcnNlci5jcHAKaW5kZXggY2I1YTA4YWEzZWI3ZDZiOGM4MjU3ZGM4NDhkY2VjMTEzNDE5Yzlj
ZC4uNjJjMDFlNWEzMjc3NDIyNDM2NjJmZWJjMjFlZGUwODBkOTIzNjU5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwCkBAIC0yNDcsNyArMjQ3
LDcgQEAgdm9pZCBNZWRpYVF1ZXJ5UGFyc2VyOjpza2lwVW50aWxDb21tYShDU1NQYXJzZXJUb2tl
blR5cGUgdHlwZSwgY29uc3QgQ1NTUGFyc2VyVG8KICAgICBpZiAoKHR5cGUgPT0gQ29tbWFUb2tl
biAmJiAhbV9ibG9ja1dhdGNoZXIuYmxvY2tMZXZlbCgpKSB8fCB0eXBlID09IEVPRlRva2VuKSB7
CiAgICAgICAgIG1fc3RhdGUgPSBSZWFkUmVzdHJpY3RvcjsKICAgICAgICAgbV9tZWRpYVF1ZXJ5
RGF0YS5jbGVhcigpOwotICAgICAgICBNZWRpYVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFRdWVyeShNZWRp
YVF1ZXJ5OjpOb3QsICJhbGwiLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+KCkpOworICAg
ICAgICBNZWRpYVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpOb3QsICJhbGwi
X3MsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4oKSk7CiAgICAgICAgIG1fcXVlcnlTZXQt
PmFkZE1lZGlhUXVlcnkoV1RGTW92ZShxdWVyeSkpOwogICAgIH0KIH0KQEAgLTMwOSw3ICszMDks
NyBAQCBSZWZQdHI8TWVkaWFRdWVyeVNldD4gTWVkaWFRdWVyeVBhcnNlcjo6cGFyc2VJbnRlcm5h
bChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZQogICAgICAgICBwcm9jZXNzVG9rZW4oQ1NTUGFy
c2VyVG9rZW4oRU9GVG9rZW4pLCByYW5nZSk7CiAKICAgICBpZiAobV9zdGF0ZSAhPSBSZWFkQW5k
ICYmIG1fc3RhdGUgIT0gUmVhZFJlc3RyaWN0b3IgJiYgbV9zdGF0ZSAhPSBEb25lICYmIG1fc3Rh
dGUgIT0gUmVhZE1lZGlhTm90KSB7Ci0gICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBNZWRpYVF1
ZXJ5KE1lZGlhUXVlcnk6Ok5vdCwgImFsbCIsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4o
KSk7CisgICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBNZWRpYVF1ZXJ5KE1lZGlhUXVlcnk6Ok5v
dCwgImFsbCJfcywgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPigpKTsKICAgICAgICAgbV9x
dWVyeVNldC0+YWRkTWVkaWFRdWVyeShXVEZNb3ZlKHF1ZXJ5KSk7CiAgICAgfSBlbHNlIGlmICht
X21lZGlhUXVlcnlEYXRhLmN1cnJlbnRNZWRpYVF1ZXJ5Q2hhbmdlZCgpKQogICAgICAgICBjb21t
aXRNZWRpYVF1ZXJ5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1Np
emVzQXR0cmlidXRlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNB
dHRyaWJ1dGVQYXJzZXIuY3BwCmluZGV4IGQ2ZTQ4YTIzZmY5N2UwYThiNzM2ZDgwMzc5NzQyNDc1
MDVjMzdmZjguLjRkYTQwMTZlNjA2NTdmYjM3NDUyZWUxYjkxYTYxZDU2ZTA4ODQ4ODkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3Bw
CkBAIC0xMTIsNyArMTEyLDcgQEAgYm9vbCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6bWVkaWFDb25k
aXRpb25NYXRjaGVzKGNvbnN0IE1lZGlhUXVlcnlTZXQmIG1lZGlhQ29uZGkKICAgICBpZiAoIXJl
bmRlcmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgYXV0byYgc3R5bGUgPSByZW5kZXJl
ci0+c3R5bGUoKTsKLSAgICByZXR1cm4gTWVkaWFRdWVyeUV2YWx1YXRvciB7ICJzY3JlZW4iLCBt
X2RvY3VtZW50LCAmc3R5bGUgfS5ldmFsdWF0ZShtZWRpYUNvbmRpdGlvbiwgbV9tZWRpYVF1ZXJ5
RHluYW1pY1Jlc3VsdHMpOworICAgIHJldHVybiBNZWRpYVF1ZXJ5RXZhbHVhdG9yIHsgInNjcmVl
biJfcywgbV9kb2N1bWVudCwgJnN0eWxlIH0uZXZhbHVhdGUobWVkaWFDb25kaXRpb24sIG1fbWVk
aWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKIH0KIAogYm9vbCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6
cGFyc2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSByYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oCmluZGV4IDgyMzUwYjk5ZDg3NGIwZmE5MDY1ZjY0
ZGRkNTk5M2RkNmQ4MzBiMzkuLjM1MzYyYjIxNmQwMmJiNzIzYjc4NmEyYzcyMTMzZDE1NjNiYjIw
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0
b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3Rvcnku
aApAQCAtNDMsNjQgKzQzLDY0IEBAIGNsYXNzIENTU051bWVyaWNGYWN0b3J5IGZpbmFsIDogcHVi
bGljIFN1cHBsZW1lbnQ8RE9NQ1NTTmFtZXNwYWNlPiB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
Q1NTTnVtZXJpY0ZhY3RvcnkoRE9NQ1NTTmFtZXNwYWNlJikgeyB9CiAKLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gbnVtYmVyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJudW1iZXIiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBwZXJjZW50KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJwZXJjZW50Iik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbnVtYmVyKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJudW1iZXIi
X3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHBlcmNlbnQoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInBlcmNlbnQiX3MpOyB9CiAK
IAogICAgIC8vIDxsZW5ndGg+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGVtKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJlbSIpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGV4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJleCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJjaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGljKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJpYyIpOyB9Ci0gICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmVtIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImxoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmxoKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJybGgiKTsgfQotICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiB2dyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAidnciKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2
aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmgi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2aShkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmkiKTsgfQotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiB2Yihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAidmIiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2bWluIik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1heChkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidm1heCIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGNtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJjbSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtbSIpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHEoZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInEiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBpbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiaW4iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHQiKTsgfQotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGMiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
cHgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXcoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxdyIpOyB9Ci0gICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGNxaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiY3FoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
Y3FpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJj
cWkiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxYiIpOyB9Ci0gICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGNxbWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJjcW1pbiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJjcW1heCIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGVtKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJlbSJfcyk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImV4Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBjaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiY2giX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGljKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJpYyJfcyk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmVtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyZW0iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJsaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmxoKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJybGgiX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZ3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2dyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gdmgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInZoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2aShkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmkiX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2YiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gdm1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAidm1pbiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1h
eChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidm1h
eCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY20oZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNtIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBtbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAibW0iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IHEoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInEi
X3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGluKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJpbiJfcyk7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gcHQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInB0Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBw
Yyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGMi
X3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB4KGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJweCJfcyk7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gY3F3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJjcXciX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGNxaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
Y3FoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWkoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxaSJfcyk7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWIiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGNxbWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJjcW1pbiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtYXgo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWF4
Il9zKTsgfQogCiAKICAgICAvLyA8YW5nbGU+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGRlZyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
ZGVnIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZ3JhZChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZ3JhZCIpOyB9Ci0gICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmFkIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gdHVybihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAidHVybiIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRlZyhkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZGVnIl9zKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBncmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJncmFkIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiByYWQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInJhZCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdHVybihk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidHVybiJf
cyk7IH0KIAogCiAgICAgLy8gPHRpbWU+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHMo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInMiKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBtcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibXMiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJzIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBtcyhkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibXMiX3MpOyB9CiAK
IAogICAgIC8vIDxmcmVxdWVuY3k+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGh6KGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJoeiIpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGtIeihkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAia2h6Iik7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gaHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgImh6Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBrSHooZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImtoeiJfcyk7
IH0KIAogCiAgICAgLy8gPHJlc29sdXRpb24+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGRwaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
ZHBpIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBjbShkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBjbSIpOyB9Ci0gICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwcHgiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBkcGkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgImRwaSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBjbShkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBjbSJfcyk7IH0K
KyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBweCJfcyk7IH0KIAogCiAgICAgLy8gPGZs
ZXg+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGZyKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJmciIpOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGZyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJmciJfcyk7IH0KIAogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAKaW5kZXggY2VlMTdjODcwOGY4Y2I2MzhhZTEx
M2EzNGU3MTJjNTQxMjMxMGNhZi4uZWQ3YmY5ODM4YjI4MzZmMDBmZGQ1YTk1YTQ5YjdiMGMwMzY2
NmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1Zh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUu
Y3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1Zh
bHVlOjptdWx0aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHUKICAgICAgICAg
ICAgIGRvdWJsZSBwcm9kdWN0ID0gMTsKICAgICAgICAgICAgIGZvciAoY29uc3QgUmVmPENTU051
bWVyaWNWYWx1ZT4mIHZhbHVlIDogdmFsdWVzKQogICAgICAgICAgICAgICAgIHByb2R1Y3QgKj0g
ZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZS5nZXQoKSkudmFsdWUoKTsKLSAgICAgICAgICAg
IFN0cmluZyB1bml0ID0gbm9uTnVtYmVyVW5pdEluZGV4ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVl
Pih2YWx1ZXNbKm5vbk51bWJlclVuaXRJbmRleF0uZ2V0KCkpLnVuaXQoKSA6ICJudW1iZXIiOwor
ICAgICAgICAgICAgU3RyaW5nIHVuaXQgPSBub25OdW1iZXJVbml0SW5kZXggPyBkb3duY2FzdDxD
U1NVbml0VmFsdWU+KHZhbHVlc1sqbm9uTnVtYmVyVW5pdEluZGV4XS5nZXQoKSkudW5pdCgpIDog
Im51bWJlciJfczsKICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZShwcm9k
dWN0LCB1bml0KTsKICAgICAgICAgfQogICAgIH0KQEAgLTIzNSw3ICsyMzUsNyBAQCBSZWY8Q1NT
VW5pdFZhbHVlPiBDU1NOdW1lcmljVmFsdWU6OnRvKFN0cmluZyYmIHVuaXQpCiAgICAgVU5VU0VE
X1BBUkFNKHVuaXQpOwogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3Mt
dHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtdG8KICAgICAvLyBGSVhNRTogYWRkIGltcGwu
Ci0gICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKDEuMCwgIm51bWJlciIpOworICAgIHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAsICJudW1iZXIiX3MpOwogfQogCiBSZWY8Q1NT
TWF0aFN1bT4gQ1NTTnVtZXJpY1ZhbHVlOjp0b1N1bShGaXhlZFZlY3RvcjxTdHJpbmc+JiYgdW5p
dHMpCkBAIC0yNTgsNyArMjU4LDcgQEAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+
IENTU051bWVyaWNWYWx1ZTo6cGFyc2UoU3RyaW5nJiYgY3NzVGV4dCkKICAgICBVTlVTRURfUEFS
QU0oY3NzVGV4dCk7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10
eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS1wYXJzZQogICAgIC8vIEZJWE1FOiBhZGQgaW1w
bC4KLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJOb3QgaW1wbGVt
ZW50ZWQgRXJyb3IiIH07CisgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
LCAiTm90IGltcGxlbWVudGVkIEVycm9yIl9zIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVG
YWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0
b3J5LmNwcAppbmRleCA5ZmM3MGZiMTAyNzE2ODcxNDc0NTM2NjUyZDRjYzEzMTA0ZGYzNDI0Li4w
YWJiM2E0ODI4NTJkYmQ0ZGQzMTc4ZjI0OTgzMmY1ODc4YjcxYmFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZUZhY3RvcnkuY3BwCkBAIC0yNjQs
NyArMjY0LDcgQEAgRXhjZXB0aW9uT3I8UmVmPENTU1N0eWxlVmFsdWU+PiBDU1NTdHlsZVZhbHVl
RmFjdG9yeTo6cmVpZnlWYWx1ZShSZWY8Q1NTVmFsdWU+JiYKICAgICAgICAgLy8gUmVmZXIgdG8g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVk
LW9tL3RoZS1zdHlsZXByb3BlcnR5bWFwL2lubGluZS9nZXQuaHRtbAogICAgICAgICBhdXRvIHZh
bHVlTGlzdCA9IGRvd25jYXN0PENTU1ZhbHVlTGlzdD4oY3NzVmFsdWUucHRyKCkpOwogICAgICAg
ICBpZiAoIXZhbHVlTGlzdC0+bGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiVGhlIENTU1ZhbHVlTGlzdCBzaG91bGQgbm90IGJlIGVtcHR5LiIgfTsK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUaGUgQ1NTVmFsdWVM
aXN0IHNob3VsZCBub3QgYmUgZW1wdHkuIl9zIH07CiAgICAgICAgIAogICAgICAgICByZXR1cm4g
cmVpZnlWYWx1ZShXVEZNb3ZlKCp2YWx1ZUxpc3QtPmJlZ2luKCkpLCBkb2N1bWVudCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVy
Lm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4
IGI2N2E2MzQ5NzM3Yjg1YmFjMjkzMmNlMThhYjgzZjczZjgxMzFhYjMuLjJkNTM5ZWQyYzcxZjIy
YmYyOGJmOWRmODU0NGE5YmU5ODhlYTg3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAgLTU5Niw3ICs1OTYsNyBAQCBTdHJpbmcgSFRNTENv
bnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYgbm9kZSwgQ1NTUHJvcGVy
dHlJRCBwcm9wZQogICAgIHN3aXRjaCAocHJvcGVydHlJZCkgewogICAgIGNhc2UgQ1NTUHJvcGVy
dHlEaXNwbGF5OgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGhlYWRUYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZShzY3JpcHRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShhcHBsZXRU
YWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShub2ZyYW1lc1RhZykpCi0gICAgICAgICAgICByZXR1
cm4gIm5vbmUiOworICAgICAgICAgICAgcmV0dXJuICJub25lIl9zOwogICAgICAgICBlbHNlIGlm
IChlbGVtZW50Lmhhc1RhZ05hbWUoYWRkcmVzc1RhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGJs
b2NrcXVvdGVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShib2R5VGFnKSB8fCBlbGVtZW50Lmhh
c1RhZ05hbWUoY2VudGVyVGFnKQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShk
ZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGRpclRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KGRpdlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGRsVGFnKQogICAgICAgICAgICAgIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZShkdFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGZpZWxkc2V0VGFn
KSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZm9ybVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGZy
YW1lVGFnKQpAQCAtNjA0LDYyICs2MDQsNjIgQEAgU3RyaW5nIEhUTUxDb252ZXJ0ZXJDYWNoZXM6
OnByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUsIENTU1Byb3BlcnR5SUQgcHJvcGUKICAg
ICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaDJUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShoM1RhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGg0VGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoaDVUYWcpCiAgICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGg2VGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUoaWZyYW1lVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUobWVu
dVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG5vc2NyaXB0VGFnKQogICAgICAgICAgICAgIHx8
IGVsZW1lbnQuaGFzVGFnTmFtZShvbFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHBUYWcpIHx8
IGVsZW1lbnQuaGFzVGFnTmFtZShwcmVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh1bFRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gImJsb2NrIjsKKyAgICAgICAgICAgIHJldHVybiAiYmxvY2si
X3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShsaVRhZykpCi0gICAgICAg
ICAgICByZXR1cm4gImxpc3QtaXRlbSI7CisgICAgICAgICAgICByZXR1cm4gImxpc3QtaXRlbSJf
czsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRhYmxlVGFnKSkKLSAgICAg
ICAgICAgIHJldHVybiAidGFibGUiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZSJfczsKICAg
ICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRyVGFnKSkKLSAgICAgICAgICAgIHJl
dHVybiAidGFibGUtcm93IjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtcm93Il9zOwogICAg
ICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZSh0ZFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNlbGwiOworICAgICAgICAg
ICAgcmV0dXJuICJ0YWJsZS1jZWxsIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1Rh
Z05hbWUodGhlYWRUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1oZWFkZXItZ3JvdXAi
OworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1oZWFkZXItZ3JvdXAiX3M7CiAgICAgICAgIGVs
c2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0Ym9keVRhZykpCi0gICAgICAgICAgICByZXR1cm4g
InRhYmxlLXJvdy1ncm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLXJvdy1ncm91cCJf
czsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRmb290VGFnKSkKLSAgICAg
ICAgICAgIHJldHVybiAidGFibGUtZm9vdGVyLWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAi
dGFibGUtZm9vdGVyLWdyb3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05h
bWUoY29sVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtY29sdW1uIjsKKyAgICAgICAg
ICAgIHJldHVybiAidGFibGUtY29sdW1uIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUoY29sZ3JvdXBUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1bW4t
Z3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1bW4tZ3JvdXAiX3M7CiAgICAg
ICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKLSAgICAgICAgICAg
IHJldHVybiAidGFibGUtY2FwdGlvbiI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNhcHRp
b24iX3M7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXaGl0ZVNwYWNlOgog
ICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHByZVRhZykpCi0gICAgICAgICAgICByZXR1
cm4gInByZSI7CisgICAgICAgICAgICByZXR1cm4gInByZSJfczsKICAgICAgICAgaW5oZXJpdCA9
IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5bGU6CiAg
ICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoaVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KGNpdGVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShlbVRhZykgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKHZhclRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGFkZHJlc3NUYWcpKQotICAgICAgICAg
ICAgcmV0dXJuICJpdGFsaWMiOworICAgICAgICAgICAgcmV0dXJuICJpdGFsaWMiX3M7CiAgICAg
ICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
Rm9udFdlaWdodDoKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShiVGFnKSB8fCBlbGVt
ZW50Lmhhc1RhZ05hbWUoc3Ryb25nVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpKQot
ICAgICAgICAgICAgcmV0dXJuICJib2xkZXIiOworICAgICAgICAgICAgcmV0dXJuICJib2xkZXIi
X3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENT
U1Byb3BlcnR5VGV4dERlY29yYXRpb25MaW5lOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdO
YW1lKHVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShpbnNUYWcpKQotICAgICAgICAgICAgcmV0
dXJuICJ1bmRlcmxpbmUiOworICAgICAgICAgICAgcmV0dXJuICJ1bmRlcmxpbmUiX3M7CiAgICAg
ICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShzVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05h
bWUoc3RyaWtlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGVsVGFnKSkKLSAgICAgICAgICAg
IHJldHVybiAibGluZS10aHJvdWdoIjsKKyAgICAgICAgICAgIHJldHVybiAibGluZS10aHJvdWdo
Il9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsgLy8gRklYTUU6IFRoaXMgaXMgbm90IHN0cmlj
dGx5IGNvcnJlY3QKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGln
bjoKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShjZW50ZXJUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShjYXB0aW9uVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJjZW50ZXIiOworICAgICAgICAgICAgcmV0dXJuICJjZW50ZXIiX3M7
CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1By
b3BlcnR5VmVydGljYWxBbGlnbjoKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShzdXBU
YWcpKQotICAgICAgICAgICAgcmV0dXJuICJzdXBlciI7CisgICAgICAgICAgICByZXR1cm4gInN1
cGVyIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoc3ViVGFnKSkKLSAg
ICAgICAgICAgIHJldHVybiAic3ViIjsKKyAgICAgICAgICAgIHJldHVybiAic3ViIl9zOwogICAg
ICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGhlYWRUYWcpIHx8IGVsZW1lbnQuaGFz
VGFnTmFtZSh0Ym9keVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHRmb290VGFnKSkKLSAgICAg
ICAgICAgIHJldHVybiAibWlkZGxlIjsKKyAgICAgICAgICAgIHJldHVybiAibWlkZGxlIl9zOwog
ICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodHJUYWcpIHx8IGVsZW1lbnQuaGFz
VGFnTmFtZSh0aFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHRkVGFnKSkKICAgICAgICAgICAg
IGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKQEAgLTE4NTIsNyArMTg1Miw3IEBAIEJP
T0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5TSW50
ZWdlciBkZXB0aCkKICAgICAgICAgUmV0YWluUHRyPE5TVGV4dExpc3Q+IGxpc3Q7CiAgICAgICAg
IFN0cmluZyBsaXN0U3R5bGVUeXBlID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxl
bWVudCwgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlKTsKICAgICAgICAgaWYgKCFsaXN0U3R5bGVU
eXBlLmxlbmd0aCgpKQotICAgICAgICAgICAgbGlzdFN0eWxlVHlwZSA9ICJkZWNpbWFsIjsKKyAg
ICAgICAgICAgIGxpc3RTdHlsZVR5cGUgPSAiZGVjaW1hbCJfczsKICAgICAgICAgbGlzdCA9IGFk
b3B0TlMoW1tQbGF0Zm9ybU5TVGV4dExpc3QgYWxsb2NdIGluaXRXaXRoTWFya2VyRm9ybWF0OlN0
cmluZygieyIgKyBsaXN0U3R5bGVUeXBlICsgIn0iKSBvcHRpb25zOjBdKTsKICAgICAgICAgaWYg
KGlzPEhUTUxPTGlzdEVsZW1lbnQ+KGVsZW1lbnQpKSB7CiAgICAgICAgICAgICBOU0ludGVnZXIg
c3RhcnRpbmdJdGVtTnVtYmVyID0gZG93bmNhc3Q8SFRNTE9MaXN0RWxlbWVudD4oZWxlbWVudCku
c3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29u
dGVudFJlYWRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250
ZW50UmVhZGVyQ29jb2EubW0KaW5kZXggZTg4NmEyN2RiZDYyMjQwYWQ5ODQyMDQ1Y2ViODMwNTBh
MmZjMDNkZi4uZDhkMTQwZGVmN2QzYTM4YjAyNGE0MTEzNGI2NThlN2YzMTQxNGUyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29j
b2EubW0KQEAgLTc2Miw3ICs3NjIsNyBAQCBzdGF0aWMgUmVmPEhUTUxFbGVtZW50PiBhdHRhY2ht
ZW50Rm9yRGF0YShGcmFtZSYgZnJhbWUsIEZyYWdtZW50ZWRTaGFyZWRCdWZmZXImCiAgICAgYXV0
byBhdHRhY2htZW50VHlwZSA9IHR5cGVGb3JBdHRhY2htZW50RWxlbWVudChjb250ZW50VHlwZSk7
CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGluc3RlYWQgYXNrIENvcmVTZXJ2aWNlcyBmb3Ig
YSBwcmVmZXJyZWQgbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBjb250ZW50IHR5cGUu
Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGRlZmF1bHRBdHRhY2htZW50TmFtZSA9ICJmaWxlIjsK
KyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBkZWZhdWx0QXR0YWNobWVudE5hbWUg
PSAiZmlsZSJfczsKIAogICAgIFN0cmluZyBmaWxlTmFtZTsKICAgICBpZiAobmFtZS5pc0VtcHR5
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3Vy
Y2VMb2FkZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VM
b2FkZXIubW0KaW5kZXggYzNiN2I3ZmU1NWRjMzMwNDNjYzhhZTM5Y2NmYTQ3ZGI3Njk2M2VjZi4u
OWMyNzkxMTM5NTc5ZTBkNDY3YzM4MGE1MjNkNTUxNTE0MjIzMWFiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1bmRsZVJlc291cmNlTG9hZGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbQpAQCAtNjUs
MTMgKzY1LDEzIEBAIHZvaWQgbG9hZFJlc291cmNlRnJvbUJ1bmRsZShSZXNvdXJjZUxvYWRlciYg
bG9hZGVyLCBjb25zdCBTdHJpbmcmIHN1YmRpcmVjdG9yeSkKIAogICAgICAgICBSdW5Mb29wOjpt
YWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZExvYWRlciA9IFdURk1vdmUocHJvdGVjdGVkTG9hZGVy
KSwgdXJsID0gV1RGTW92ZSh1cmwpLmlzb2xhdGVkQ29weSgpLCBidWZmZXIgPSBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZShkYXRhKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGF1dG8gbWltZVR5cGUg
PSBNSU1FVHlwZVJlZ2lzdHJ5OjptaW1lVHlwZUZvclBhdGgodXJsLnBhdGgoKSk7Ci0gICAgICAg
ICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlIHsgdXJsLCBtaW1lVHlwZSwgc3RhdGljX2Nh
c3Q8bG9uZyBsb25nPihidWZmZXItPnNpemUoKSksIE1JTUVUeXBlUmVnaXN0cnk6OmlzVGV4dE1J
TUVUeXBlKG1pbWVUeXBlKSA/ICJVVEYtOCJfcyA6IG51bGxwdHIgfTsKKyAgICAgICAgICAgIFJl
c291cmNlUmVzcG9uc2UgcmVzcG9uc2UgeyB1cmwsIG1pbWVUeXBlLCBzdGF0aWNfY2FzdDxsb25n
IGxvbmc+KGJ1ZmZlci0+c2l6ZSgpKSwgTUlNRVR5cGVSZWdpc3RyeTo6aXNUZXh0TUlNRVR5cGUo
bWltZVR5cGUpID8gIlVURi04Il9zIDogU3RyaW5nKCkgfTsKICAgICAgICAgICAgIHJlc3BvbnNl
LnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7CiAgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3Rh
dHVzVGV4dCgiT0siX3MpOwogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0U291cmNlKFJlc291cmNl
UmVzcG9uc2U6OlNvdXJjZTo6TmV0d29yayk7CiAKICAgICAgICAgICAgIC8vIEFsbG93IGltYWdl
cyB0byBsb2FkLgotICAgICAgICAgICAgcmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sQWxsb3dPcmlnaW4sICIqIik7CisgICAgICAgICAgICBy
ZXNwb25zZS5hZGRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xB
bGxvd09yaWdpbiwgIioiX3MpOwogCiAgICAgICAgICAgICBwcm90ZWN0ZWRMb2FkZXItPmRlbGl2
ZXJSZXNwb25zZUFuZERhdGEocmVzcG9uc2UsIFdURk1vdmUoYnVmZmVyKSk7CiAgICAgICAgIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4dHJh
cy5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0KaW5k
ZXggNTUwZGFiODBlZTNhYTQ2MDcyMWRlYjZjMzBjODVhOGU2ZGYwYTA0Ny4uZTU4ZjQ1NTRmZTQw
NDZlMWQzMjE0YzlmMTZhMGYxZWI3YjJiYWI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tCkBAIC02NCw3ICs2NCw3IEBAIE5TU3RyaW5nICpz
dWdnZXN0ZWRGaWxlbmFtZVdpdGhNSU1FVHlwZShOU1VSTCAqdXJsLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKQogICAgIC8vIGhhdmUgYSBmaWxlbmFtZSB3aGljaCBoYXMgLnRhciBpbiBpdCBvciBl
bmRzIGluIC50Z3oKICAgICBpZiAoKG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi90YXIiIHx8IG1p
bWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXRhciIpCiAgICAgICAgICYmIChTdHJpbmcoZmlsZW5h
bWUpLmNvbnRhaW5zSWdub3JpbmdBU0NJSUNhc2UoIi50YXIiKQotICAgICAgICB8fCBTdHJpbmco
ZmlsZW5hbWUpLmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi50Z3oiKSkpIHsKKyAgICAgICAg
fHwgU3RyaW5nKGZpbGVuYW1lKS5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIudGd6Il9zKSkp
IHsKICAgICAgICAgcmV0dXJuIGZpbGVuYW1lOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tCmluZGV4IDEx
NDg0ZDBjNTkyYzA3ZmY5NGVjMTc3YTAxMjgwMTA3OWMzOTU5NzEuLmUxZGMyOWI4NjJkNDIyNDNh
OWEyOTFhMGVkMWY1ZjQzM2ZjZGExZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Y29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0KQEAgLTE2MSwxOCArMTYxLDE4
IEBAIHN0cnVjdCBIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhIHsKIEhpc3RvcmljUmVzb3VyY2VV
c2FnZURhdGE6Okhpc3RvcmljUmVzb3VyY2VVc2FnZURhdGEoKQogewogICAgIC8vIFZNIHRhZyBj
YXRlZ29yaWVzLgotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkpTSklUXSA9IEhpc3Rv
cmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpKU0pJVCwgeyAyNTUsIDk2LCAy
NTUgfSwgIkpTIEpJVCIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdl
XSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHaWdhY2FnZSwg
eyAxMDEsIDc5LCAyNDAgfSwgIkdpZ2FjYWdlIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRl
Z29yeTo6SW1hZ2VzXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5
OjpJbWFnZXMsIENvbG9yOjp5ZWxsb3csICJJbWFnZXMiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9y
eUNhdGVnb3J5OjpMYXllcnNdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6OkxheWVycywgQ29sb3I6OmN5YW4sICJMYXllcnMiKTsKLSAgICBjYXRlZ29yaWVzW01l
bW9yeUNhdGVnb3J5OjpMaWJjTWFsbG9jXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1l
bW9yeUNhdGVnb3J5OjpMaWJjTWFsbG9jLCBDb2xvcjo6Z3JlZW4sICJsaWJjIG1hbGxvYyIpOwot
ICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OmJtYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlD
YXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OmJtYWxsb2MsIHsgMjU1LCA5NiwgOTYgfSwgImJt
YWxsb2MiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJc29IZWFwXSA9IEhpc3Rv
cmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJc29IZWFwLCB7IDEyOCwgMTU5
LCA2NCB9LCAiSXNvSGVhcCIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6Ok90aGVy
XSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpPdGhlciwgeyAx
OTIsIDI1NSwgMCB9LCAiT3RoZXIiKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpK
U0pJVF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SlNKSVQs
IHsgMjU1LCA5NiwgMjU1IH0sICJKUyBKSVQiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0
ZWdvcnk6OkdpZ2FjYWdlXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVn
b3J5OjpHaWdhY2FnZSwgeyAxMDEsIDc5LCAyNDAgfSwgIkdpZ2FjYWdlIl9zKTsKKyAgICBjYXRl
Z29yaWVzW01lbW9yeUNhdGVnb3J5OjpJbWFnZXNdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUlu
Zm8oTWVtb3J5Q2F0ZWdvcnk6OkltYWdlcywgQ29sb3I6OnllbGxvdywgIkltYWdlcyJfcyk7Cisg
ICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzXSA9IEhpc3RvcmljTWVtb3J5Q2F0
ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpMYXllcnMsIENvbG9yOjpjeWFuLCAiTGF5ZXJzIl9z
KTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpMaWJjTWFsbG9jXSA9IEhpc3Rvcmlj
TWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpMaWJjTWFsbG9jLCBDb2xvcjo6Z3Jl
ZW4sICJsaWJjIG1hbGxvYyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6Ym1h
bGxvY10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6Ym1hbGxv
YywgeyAyNTUsIDk2LCA5NiB9LCAiYm1hbGxvYyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlD
YXRlZ29yeTo6SXNvSGVhcF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRl
Z29yeTo6SXNvSGVhcCwgeyAxMjgsIDE1OSwgNjQgfSwgIklzb0hlYXAiX3MpOworICAgIGNhdGVn
b3JpZXNbTWVtb3J5Q2F0ZWdvcnk6Ok90aGVyXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZv
KE1lbW9yeUNhdGVnb3J5OjpPdGhlciwgeyAxOTIsIDI1NSwgMCB9LCAiT3RoZXIiX3MpOwogCiAg
ICAgLy8gU3ViIGNhdGVnb3JpZXMgKGUuZyBicmVha2Rvd24gb2YgYm1hbGxvYyB0YWcuKQotICAg
IGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcF0gPSBIaXN0b3JpY01lbW9yeUNhdGVn
b3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NIZWFwLCB7IDE2MCwgMTYwLCAyNTUgfSwgIkdDIGhl
YXAiLCB0cnVlKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ093bmVkXSA9IEhp
c3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHQ093bmVkLCB7IDI1NSwg
MTkyLCA5NiB9LCAiR0Mgb3duZWQiLCB0cnVlKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVn
b3J5OjpHQ0hlYXBdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6
OkdDSGVhcCwgeyAxNjAsIDE2MCwgMjU1IH0sICJHQyBoZWFwIl9zLCB0cnVlKTsKKyAgICBjYXRl
Z29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ093bmVkXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJ
bmZvKE1lbW9yeUNhdGVnb3J5OjpHQ093bmVkLCB7IDI1NSwgMTkyLCA5NiB9LCAiR0Mgb3duZWQi
X3MsIHRydWUpOwogCiAjaWZuZGVmIE5ERUJVRwogICAgIC8vIEVuc3VyZSB0aGlzIGFsaWducyB3
aXRoIFJlc291cmNlVXNhZ2VEYXRhJ3MgY2F0ZWdvcnkgb3JkZXIuCkBAIC0zMTEsNyArMzExLDcg
QEAgc3RhdGljIHZvaWQgZHJhd0NwdUhpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0
IHgxLCBmbG9hdCB5MSwgZmxvYXQgeTIsIFIKICAgICAgICAgaSsrOwogICAgIH0pOwogCi0gICAg
ZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiQ1BVIik7CisgICAgZHJhd0dyYXBoTGFi
ZWwoY29udGV4dCwgeDEsIHkyLCAiQ1BVIl9zKTsKIH0KIAogc3RhdGljIHZvaWQgZHJhd0dDSGlz
dG9yeShDR0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5Miwg
UmluZ0J1ZmZlcjxzaXplX3Q+JiBzaXplSGlzdG9yeSwgUmluZ0J1ZmZlcjxzaXplX3Q+JiBjYXBh
Y2l0eUhpc3RvcnkpCkBAIC0zNTQsNyArMzU0LDcgQEAgc3RhdGljIHZvaWQgZHJhd0dDSGlzdG9y
eShDR0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgUmkK
ICAgICAgICAgaSsrOwogICAgIH0pOwogCi0gICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEs
IHkyLCAiR0MiKTsKKyAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJHQyJfcyk7
CiB9CiAKIHN0YXRpYyB2b2lkIGRyYXdNZW1IaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBm
bG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhJiBk
YXRhKQpAQCAtNDAwLDcgKzQwMCw3IEBAIHN0YXRpYyB2b2lkIGRyYXdNZW1IaXN0b3J5KENHQ29u
dGV4dFJlZiBjb250ZXh0LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBICiAgICAgICAg
ICsraTsKICAgICB9CiAKLSAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJNZW0i
KTsKKyAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJNZW0iX3MpOwogfQogCiBz
dGF0aWMgY29uc3QgZmxvYXQgZnVsbENpcmNsZUluUmFkaWFucyA9IHBpRmxvYXQgKiAyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW0KaW5kZXggZDIx
ZDk5ZDg2MWI4ZmE5MjgyZTkxYTlhYTRhMzAxZjhmYjY0ZDE3Ny4uNDc3NGNlMDhhNWI4YjUwZjY0
YTE2MjAyZjUzOGI0ZjRmN2VmMmU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9j
b2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29h
L1NldHRpbmdzQmFzZUNvY29hLm1tCkBAIC00MywxNSArNDMsMTUgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB2b2lkIFNldHRpbmdzQmFzZTo6aW5pdGlhbGl6ZURlZmF1bHRGb250RmFtaWxpZXMo
KQogewotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFRDIiwgVVNDUklQVF9UUkFE
SVRJT05BTF9IQU4pOwotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFNDIiwgVVND
UklQVF9TSU1QTElGSUVEX0hBTik7Ci0gICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJIaXJhZ2lu
byBNaW5jaG8gUHJvTiIsIFVTQ1JJUFRfS0FUQUtBTkFfT1JfSElSQUdBTkEpOwotICAgIHNldFN0
YW5kYXJkRm9udEZhbWlseSgiQXBwbGVNeXVuZ2pvIiwgVVNDUklQVF9IQU5HVUwpOwotCi0gICAg
c2V0U3RhbmRhcmRGb250RmFtaWx5KCJUaW1lcyIsIFVTQ1JJUFRfQ09NTU9OKTsKLSAgICBzZXRG
aXhlZEZvbnRGYW1pbHkoIkNvdXJpZXIiLCBVU0NSSVBUX0NPTU1PTik7Ci0gICAgc2V0U2VyaWZG
b250RmFtaWx5KCJUaW1lcyIsIFVTQ1JJUFRfQ09NTU9OKTsKLSAgICBzZXRTYW5zU2VyaWZGb250
RmFtaWx5KCJIZWx2ZXRpY2EiLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0U3RhbmRhcmRGb250
RmFtaWx5KCJTb25ndGkgVEMiX3MsIFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKKyAgICBzZXRT
dGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBTQyJfcywgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7
CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJIaXJhZ2lubyBNaW5jaG8gUHJvTiJfcywgVVND
UklQVF9LQVRBS0FOQV9PUl9ISVJBR0FOQSk7CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJB
cHBsZU15dW5nam8iX3MsIFVTQ1JJUFRfSEFOR1VMKTsKKworICAgIHNldFN0YW5kYXJkRm9udEZh
bWlseSgiVGltZXMiX3MsIFVTQ1JJUFRfQ09NTU9OKTsKKyAgICBzZXRGaXhlZEZvbnRGYW1pbHko
IkNvdXJpZXIiX3MsIFVTQ1JJUFRfQ09NTU9OKTsKKyAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlRp
bWVzIl9zLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0U2Fuc1NlcmlmRm9udEZhbWlseSgiSGVs
dmV0aWNhIl9zLCBVU0NSSVBUX0NPTU1PTik7CiB9CiAKIGJvb2wgU2V0dGluZ3NCYXNlOjpwbGF0
Zm9ybURlZmF1bHRNZWRpYVNvdXJjZUVuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMu
bW0KaW5kZXggNDQ5YThmZjZjZDY5NGQyNGM1YWYxNGJkZWFmNTRjNjI0YzIyYzExYi4uOWYyZDNm
NWZkM2RmN2ZjNjViOGYyYmQ1MmNjNjlmMjJiYjFiYWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9Q
YWdlTWFjLm1tCkBAIC01NywxNSArNTcsMTUgQEAgdm9pZCBQYWdlOjpwbGF0Zm9ybUluaXRpYWxp
emUoKQogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxf
b25jZShvbmNlRmxhZywgW10gewogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKLSAgICAgICAg
UEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dSZW5kZXJU
cmVlIiwgcHJpbnRSZW5kZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7Ci0gICAgICAgIFBBTDo6cmVn
aXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5ZXJUcmVlIiwgcHJp
bnRMYXllclRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlm
eUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dHcmFwaGljc0xheWVyVHJlZSIsIHByaW50
R3JhcGhpY3NMYXllclRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKKyAgICAgICAgUEFMOjpyZWdpc3Rl
ck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dSZW5kZXJUcmVlIl9zLCBwcmlu
dFJlbmRlclRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKKyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlm
eUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dMYXllclRyZWUiX3MsIHByaW50TGF5ZXJU
cmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFj
aygiY29tLmFwcGxlLldlYktpdC5zaG93R3JhcGhpY3NMYXllclRyZWUiX3MsIHByaW50R3JhcGhp
Y3NMYXllclRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJ
TkdfQ09OVEVYVCkKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBw
bGUuV2ViS2l0LnNob3dMYXlvdXRUcmVlIiwgTGF5b3V0OjpwcmludExheW91dFRyZWVGb3JMaXZl
RG9jdW1lbnRzKTsKKyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBw
bGUuV2ViS2l0LnNob3dMYXlvdXRUcmVlIl9zLCBMYXlvdXQ6OnByaW50TGF5b3V0VHJlZUZvckxp
dmVEb2N1bWVudHMpOwogI2VuZGlmCiAjZW5kaWYgLy8gRU5BQkxFKFRSRUVfREVCVUdHSU5HKQog
Ci0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5z
aG93QWxsRG9jdW1lbnRzIiwgW10geworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJh
Y2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0FsbERvY3VtZW50cyJfcywgW10gewogICAgICAgICAg
ICAgdW5zaWduZWQgbnVtUGFnZXMgPSAwOwogICAgICAgICAgICAgUGFnZTo6Zm9yRWFjaFBhZ2Uo
WyZudW1QYWdlc10oUGFnZSYpIHsKICAgICAgICAgICAgICAgICArK251bVBhZ2VzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAppbmRleCBjZjVkMGUwMjZj
ZGY4MzM3MjJlNTFjYWMwYmNjN2YxMzRhNjI1ZTllLi44YTdlOGVmNmJjZTIzYzFmODRhZDQwMzA2
Y2Q2ZjVmNWM5MGU1OGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmNwcApAQCAtNjU1LDcgKzY1NSw3IEBAIFN0cmluZyBBWFdlZWtGaWVsZFRleHQoKQog
ICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ3ZWVrIGFuZCB5ZWFyIGZpZWxkIiwgImFjY2Vzc2li
aWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYSB0aW1lIGZpZWxkLiIpOwogfQogCi1TdHJpbmcg
QVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKQorU3RyaW5nIEFY
QVJJQUNvbnRlbnRHcm91cFRleHQoU3RyaW5nVmlldyBhcmlhVHlwZSkKIHsKICAgICBpZiAoYXJp
YVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFsZXJ0IikKICAgICAgICAgcmV0dXJuIFdFQl9VSV9T
VFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEgYWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMg
YW4gYWxlcnQuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgK
aW5kZXggYjE4MWYxZWQ4YTBiODhjMWZjZmNkMGU4NjE3MjM0YmIyOTQ5M2RhZS4uYTIwYjU4OGU2
OTM3MTY5YTEwNjdkMzlkN2MxMDlmMzQ1OWU4YzM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMTk1LDcgKzE5NSw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBTdHJpbmcgQVhNb250aEZpZWxkVGV4dCgpOwogICAgIFN0cmluZyBBWE51bWJl
ckZpZWxkVGV4dCgpOwogICAgIFN0cmluZyBBWFdlZWtGaWVsZFRleHQoKTsKLSAgICBTdHJpbmcg
QVhBUklBQ29udGVudEdyb3VwVGV4dChjb25zdCBTdHJpbmcmIGFyaWFUeXBlKTsKKyAgICBTdHJp
bmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChTdHJpbmdWaWV3IGFyaWFUeXBlKTsKICAgICBTdHJp
bmcgQVhIb3Jpem9udGFsUnVsZURlc2NyaXB0aW9uVGV4dCgpOwogICAgIFN0cmluZyBBWE1hcmtU
ZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCBhZWJhMGEzYjQ0
ZDg2NjZlY2RiMjIxYjMzNTcwZDRjY2RhNTY2NDI5Li4xY2Y0MTA4ZjA4ZTYzMDY1OGY5YTNlMzFm
ZTRiY2U5NjNlM2U0Y2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0
ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCkBAIC0z
NzUsOSArMzc1LDkgQEAgZXh0ZXJuIE5TU3RyaW5nICpVSUNvbG9yUGJvYXJkVHlwZTsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oTUFDKQotZXh0ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IFdlYkFyY2hp
dmVQYm9hcmRUeXBlOwotZXh0ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IFdlYlVSTE5hbWVQYm9hcmRU
eXBlOwotZXh0ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IFdlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlw
ZTsKK2V4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgV2ViQXJjaGl2ZVBib2FyZFR5cGU7CitleHRl
cm4gY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTE5hbWVQYm9hcmRUeXBlOworZXh0ZXJuIGNvbnN0
IEFTQ0lJTGl0ZXJhbCBXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGU7CiAjZW5kaWYKIAogI2lm
ICFQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0
ZWJvYXJkQ3VzdG9tRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1
c3RvbURhdGEuaAppbmRleCAyYmU4MWQyOTM4YTNkYmQwOTAyNmNhNmVjNjRhYzMyODdlNmFiYzAz
Li4yNTZmNDQ1NDI5MDMyYmI0MmYzMTNkOTIwYWZiZmZkMWIwMjNhNzdhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKQEAgLTc2LDcgKzc2LDcg
QEAgcHVibGljOgogICAgIHZvaWQgY2xlYXIoY29uc3QgU3RyaW5nJiB0eXBlKTsKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBjaGFyKiBjb2Nv
YVR5cGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQVNDSUlMaXRlcmFsIGNvY29hVHlw
ZSgpOwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBndGtUeXBl
KCkgeyByZXR1cm4gIm9yZy53ZWJraXRndGsuV2ViS2l0LmN1c3RvbS1wYXN0ZWJvYXJkLWRhdGEi
OyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQppbmRleCBhMGU5MDJmMTJj
ZTdlYjE3Yzc3NmQ0M2MxMzVjODUzMjZjNzVjZmUwLi45NmNkZmFhMzYyMWM1Yzk2MmRhMGUwNTMw
MmQ0ZWE5ZDljZDcwODdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCkBAIC00NTIs
OCArNDUyLDggQEAgdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZU5vd1BsYXlp
bmdJbmZvKCkKIAogICAgIGlmIChtX25vd1BsYXlpbmdNYW5hZ2VyLT5zZXROb3dQbGF5aW5nSW5m
bygqbm93UGxheWluZ0luZm8pKSB7CiAjaWZkZWYgTE9HX0RJU0FCTEVECi0gICAgICAgIFN0cmlu
ZyBzcmMgPSAic3JjIjsKLSAgICAgICAgU3RyaW5nIHRpdGxlID0gInRpdGxlIjsKKyAgICAgICAg
U3RyaW5nIHNyYyA9ICJzcmMiX3M7CisgICAgICAgIFN0cmluZyB0aXRsZSA9ICJ0aXRsZSJfczsK
ICNlbHNlCiAgICAgICAgIFN0cmluZyBzcmMgPSBub3dQbGF5aW5nSW5mby0+YXJ0d29yayA/IG5v
d1BsYXlpbmdJbmZvLT5hcnR3b3JrLT5zcmMgOiBTdHJpbmcoKTsKICAgICAgICAgU3RyaW5nIHRp
dGxlID0gbm93UGxheWluZ0luZm8tPnRpdGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW0KaW5kZXggZjRlZWU2NWYwOTkzYjlkNGQ5YmQ2ZmU5ZWRh
N2FkMGE2MTUzNzM1Mi4uMWM1ZTI0M2M4NTJhMzg1MDljODljYzU5MTljZmMxNDIwNjcxOTljMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCkBA
IC0yMjAsNyArMjIwLDcgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFy
IGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJBbHQiCiAgICAgICAgIGNhc2UgTlNNZW51RnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkFsdCI7CisgICAgICAgICAgICByZXR1cm4gIkFs
dCJfczsKIAogICAgICAgICAvLyAiQXBwcyIKICAgICAgICAgLy8gIkJyb3dzZXJCYWNrIgpAQCAt
MjMzLDcgKzIzMyw3IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBj
aGFyQ29kZSkKIAogICAgICAgICAvLyAiQ2xlYXIiCiAgICAgICAgIGNhc2UgTlNDbGVhckxpbmVG
dW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiQ2xlYXIiOworICAgICAgICAgICAgcmV0
dXJuICJDbGVhciJfczsKIAogICAgICAgICAvLyAiQ29kZUlucHV0IgogICAgICAgICAvLyAiQ29t
cG9zZSIKQEAgLTI0NSwxMDAgKzI0NSwxMDAgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFy
Q29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJEb3duIgogICAgICAgICBjYXNl
IE5TRG93bkFycm93RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkRvd24iOworICAg
ICAgICAgICAgcmV0dXJuICJEb3duIl9zOwogICAgICAgICAvLyAiRW5kIgogICAgICAgICBjYXNl
IE5TRW5kRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkVuZCI7CisgICAgICAgICAg
ICByZXR1cm4gIkVuZCJfczsKICAgICAgICAgLy8gIkVudGVyIgogICAgICAgICBjYXNlIDB4Mzog
Y2FzZSAweEE6IGNhc2UgMHhEOiAvLyBNYWNpbnRvc2ggY2FsbHMgdGhlIG9uZSBvbiB0aGUgbWFp
biBrZXlib2FyZCBSZXR1cm4sIGJ1dCBXaW5kb3dzIGNhbGxzIGl0IEVudGVyLCBzbyB3ZSdsbCBk
byB0aGUgc2FtZSBmb3IgdGhlIERPTQotICAgICAgICAgICAgcmV0dXJuICJFbnRlciI7CisgICAg
ICAgICAgICByZXR1cm4gIkVudGVyIl9zOwogCiAgICAgICAgIC8vICJFcmFzZUVvZiIKIAogICAg
ICAgICAvLyAiRXhlY3V0ZSIKICAgICAgICAgY2FzZSBOU0V4ZWN1dGVGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRXhlY3V0ZSI7CisgICAgICAgICAgICByZXR1cm4gIkV4ZWN1dGUi
X3M7CiAKICAgICAgICAgLy8gIkV4c2VsIgogCiAgICAgICAgIC8vICJGMSIKICAgICAgICAgY2Fz
ZSBOU0YxRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxIjsKKyAgICAgICAgICAg
IHJldHVybiAiRjEiX3M7CiAgICAgICAgIC8vICJGMiIKICAgICAgICAgY2FzZSBOU0YyRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyIjsKKyAgICAgICAgICAgIHJldHVybiAiRjIi
X3M7CiAgICAgICAgIC8vICJGMyIKICAgICAgICAgY2FzZSBOU0YzRnVuY3Rpb25LZXk6Ci0gICAg
ICAgICAgICByZXR1cm4gIkYzIjsKKyAgICAgICAgICAgIHJldHVybiAiRjMiX3M7CiAgICAgICAg
IC8vICJGNCIKICAgICAgICAgY2FzZSBOU0Y0RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIkY0IjsKKyAgICAgICAgICAgIHJldHVybiAiRjQiX3M7CiAgICAgICAgIC8vICJGNSIKICAg
ICAgICAgY2FzZSBOU0Y1RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY1IjsKKyAg
ICAgICAgICAgIHJldHVybiAiRjUiX3M7CiAgICAgICAgIC8vICJGNiIKICAgICAgICAgY2FzZSBO
U0Y2RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY2IjsKKyAgICAgICAgICAgIHJl
dHVybiAiRjYiX3M7CiAgICAgICAgIC8vICJGNyIKICAgICAgICAgY2FzZSBOU0Y3RnVuY3Rpb25L
ZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY3IjsKKyAgICAgICAgICAgIHJldHVybiAiRjciX3M7
CiAgICAgICAgIC8vICJGOCIKICAgICAgICAgY2FzZSBOU0Y4RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkY4IjsKKyAgICAgICAgICAgIHJldHVybiAiRjgiX3M7CiAgICAgICAgIC8v
ICJGOSIKICAgICAgICAgY2FzZSBOU0Y5RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkY5IjsKKyAgICAgICAgICAgIHJldHVybiAiRjkiX3M7CiAgICAgICAgIC8vICJGMTAiCiAgICAg
ICAgIGNhc2UgTlNGMTBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjEwIjsKKyAg
ICAgICAgICAgIHJldHVybiAiRjEwIl9zOwogICAgICAgICAvLyAiRjExIgogICAgICAgICBjYXNl
IE5TRjExRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxMSI7CisgICAgICAgICAg
ICByZXR1cm4gIkYxMSJfczsKICAgICAgICAgLy8gIkYxMiIKICAgICAgICAgY2FzZSBOU0YxMkZ1
bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTIiOworICAgICAgICAgICAgcmV0dXJu
ICJGMTIiX3M7CiAgICAgICAgIC8vICJGMTMiCiAgICAgICAgIGNhc2UgTlNGMTNGdW5jdGlvbktl
eToKLSAgICAgICAgICAgIHJldHVybiAiRjEzIjsKKyAgICAgICAgICAgIHJldHVybiAiRjEzIl9z
OwogICAgICAgICAvLyAiRjE0IgogICAgICAgICBjYXNlIE5TRjE0RnVuY3Rpb25LZXk6Ci0gICAg
ICAgICAgICByZXR1cm4gIkYxNCI7CisgICAgICAgICAgICByZXR1cm4gIkYxNCJfczsKICAgICAg
ICAgLy8gIkYxNSIKICAgICAgICAgY2FzZSBOU0YxNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAg
cmV0dXJuICJGMTUiOworICAgICAgICAgICAgcmV0dXJuICJGMTUiX3M7CiAgICAgICAgIC8vICJG
MTYiCiAgICAgICAgIGNhc2UgTlNGMTZGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
RjE2IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE2Il9zOwogICAgICAgICAvLyAiRjE3IgogICAg
ICAgICBjYXNlIE5TRjE3RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxNyI7Cisg
ICAgICAgICAgICByZXR1cm4gIkYxNyJfczsKICAgICAgICAgLy8gIkYxOCIKICAgICAgICAgY2Fz
ZSBOU0YxOEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTgiOworICAgICAgICAg
ICAgcmV0dXJuICJGMTgiX3M7CiAgICAgICAgIC8vICJGMTkiCiAgICAgICAgIGNhc2UgTlNGMTlG
dW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE5IjsKKyAgICAgICAgICAgIHJldHVy
biAiRjE5Il9zOwogICAgICAgICAvLyAiRjIwIgogICAgICAgICBjYXNlIE5TRjIwRnVuY3Rpb25L
ZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyMCI7CisgICAgICAgICAgICByZXR1cm4gIkYyMCJf
czsKICAgICAgICAgLy8gIkYyMSIKICAgICAgICAgY2FzZSBOU0YyMUZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGMjEiOworICAgICAgICAgICAgcmV0dXJuICJGMjEiX3M7CiAgICAg
ICAgIC8vICJGMjIiCiAgICAgICAgIGNhc2UgTlNGMjJGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRjIyIjsKKyAgICAgICAgICAgIHJldHVybiAiRjIyIl9zOwogICAgICAgICAvLyAi
RjIzIgogICAgICAgICBjYXNlIE5TRjIzRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkYyMyI7CisgICAgICAgICAgICByZXR1cm4gIkYyMyJfczsKICAgICAgICAgLy8gIkYyNCIKICAg
ICAgICAgY2FzZSBOU0YyNEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjQiOwor
ICAgICAgICAgICAgcmV0dXJuICJGMjQiX3M7CiAKICAgICAgICAgLy8gIkZpbmFsTW9kZSIKIAog
ICAgICAgICAvLyAiRmluZCIKICAgICAgICAgY2FzZSBOU0ZpbmRGdW5jdGlvbktleToKLSAgICAg
ICAgICAgIHJldHVybiAiRmluZCI7CisgICAgICAgICAgICByZXR1cm4gIkZpbmQiX3M7CiAKICAg
ICAgICAgLy8gIkZ1bGxXaWR0aCIKICAgICAgICAgLy8gIkhhbGZXaWR0aCIKQEAgLTM0NywxNiAr
MzQ3LDE2IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29k
ZSkKIAogICAgICAgICAvLyAiSGVscCIKICAgICAgICAgY2FzZSBOU0hlbHBGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiSGVscCI7CisgICAgICAgICAgICByZXR1cm4gIkhlbHAiX3M7
CiAKICAgICAgICAgLy8gIkhpcmFnYW5hIgogCiAgICAgICAgIC8vICJIb21lIgogICAgICAgICBj
YXNlIE5TSG9tZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJIb21lIjsKKyAgICAg
ICAgICAgIHJldHVybiAiSG9tZSJfczsKICAgICAgICAgLy8gIkluc2VydCIKICAgICAgICAgY2Fz
ZSBOU0luc2VydEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJJbnNlcnQiOworICAg
ICAgICAgICAgcmV0dXJuICJJbnNlcnQiX3M7CiAKICAgICAgICAgLy8gIkphcGFuZXNlSGlyYWdh
bmEiCiAgICAgICAgIC8vICJKYXBhbmVzZUthdGFrYW5hIgpAQCAtMzcxLDcgKzM3MSw3IEBAIFN0
cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAg
ICAvLyAiTGVmdCIKICAgICAgICAgY2FzZSBOU0xlZnRBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgcmV0dXJuICJMZWZ0IjsKKyAgICAgICAgICAgIHJldHVybiAiTGVmdCJfczsKIAogICAg
ICAgICAvLyAiTWV0YSIKICAgICAgICAgLy8gIk1lZGlhTmV4dFRyYWNrIgpAQCAtMzgxLDU5ICsz
ODEsNTkgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2Rl
KQogCiAgICAgICAgIC8vICJNb2RlQ2hhbmdlIgogICAgICAgICBjYXNlIE5TTW9kZVN3aXRjaEZ1
bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJNb2RlQ2hhbmdlIjsKKyAgICAgICAgICAg
IHJldHVybiAiTW9kZUNoYW5nZSJfczsKIAogICAgICAgICAvLyAiTm9uY29udmVydCIKICAgICAg
ICAgLy8gIk51bUxvY2siCiAKICAgICAgICAgLy8gIlBhZ2VEb3duIgogICAgICAgICBjYXNlIE5T
UGFnZURvd25GdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUGFnZURvd24iOworICAg
ICAgICAgICAgcmV0dXJuICJQYWdlRG93biJfczsKICAgICAgICAgLy8gIlBhZ2VVcCIKICAgICAg
ICAgY2FzZSBOU1BhZ2VVcEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJQYWdlVXAi
OworICAgICAgICAgICAgcmV0dXJuICJQYWdlVXAiX3M7CiAKICAgICAgICAgLy8gIlBhc3RlIgog
CiAgICAgICAgIC8vICJQYXVzZSIKICAgICAgICAgY2FzZSBOU1BhdXNlRnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIlBhdXNlIjsKKyAgICAgICAgICAgIHJldHVybiAiUGF1c2UiX3M7
CiAKICAgICAgICAgLy8gIlBsYXkiCiAgICAgICAgIC8vICJQcmV2aW91c0NhbmRpZGF0ZSIKIAog
ICAgICAgICAvLyAiUHJpbnRTY3JlZW4iCiAgICAgICAgIGNhc2UgTlNQcmludFNjcmVlbkZ1bmN0
aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJQcmludFNjcmVlbiI7CisgICAgICAgICAgICBy
ZXR1cm4gIlByaW50U2NyZWVuIl9zOwogCiAgICAgICAgIC8vICJQcm9jZXNzIgogICAgICAgICAv
LyAiUHJvcHMiCiAKICAgICAgICAgLy8gIlJpZ2h0IgogICAgICAgICBjYXNlIE5TUmlnaHRBcnJv
d0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJSaWdodCI7CisgICAgICAgICAgICBy
ZXR1cm4gIlJpZ2h0Il9zOwogCiAgICAgICAgIC8vICJSb21hbkNoYXJhY3RlcnMiCiAKICAgICAg
ICAgLy8gIlNjcm9sbCIKICAgICAgICAgY2FzZSBOU1Njcm9sbExvY2tGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiU2Nyb2xsIjsKKyAgICAgICAgICAgIHJldHVybiAiU2Nyb2xsIl9z
OwogICAgICAgICAvLyAiU2VsZWN0IgogICAgICAgICBjYXNlIE5TU2VsZWN0RnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIlNlbGVjdCI7CisgICAgICAgICAgICByZXR1cm4gIlNlbGVj
dCJfczsKIAogICAgICAgICAvLyAiU2VsZWN0TWVkaWEiCiAgICAgICAgIC8vICJTaGlmdCIKIAog
ICAgICAgICAvLyAiU3RvcCIKICAgICAgICAgY2FzZSBOU1N0b3BGdW5jdGlvbktleToKLSAgICAg
ICAgICAgIHJldHVybiAiU3RvcCI7CisgICAgICAgICAgICByZXR1cm4gIlN0b3AiX3M7CiAgICAg
ICAgIC8vICJVcCIKICAgICAgICAgY2FzZSBOU1VwQXJyb3dGdW5jdGlvbktleToKLSAgICAgICAg
ICAgIHJldHVybiAiVXAiOworICAgICAgICAgICAgcmV0dXJuICJVcCJfczsKICAgICAgICAgLy8g
IlVuZG8iCiAgICAgICAgIGNhc2UgTlNVbmRvRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIlVuZG8iOworICAgICAgICAgICAgcmV0dXJuICJVbmRvIl9zOwogCiAgICAgICAgIC8vICJW
b2x1bWVEb3duIgogICAgICAgICAvLyAiVm9sdW1lTXV0ZSIKQEAgLTQ0MywzOCArNDQzLDM4IEBA
IFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAg
ICAgICAvLyBNb3JlIGZ1bmN0aW9uIGtleXMsIG5vdCBpbiB0aGUga2V5IGlkZW50aWZpZXIgc3Bl
Y2lmaWNhdGlvbi4KICAgICAgICAgY2FzZSBOU0YyNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAg
cmV0dXJuICJGMjUiOworICAgICAgICAgICAgcmV0dXJuICJGMjUiX3M7CiAgICAgICAgIGNhc2Ug
TlNGMjZGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI2IjsKKyAgICAgICAgICAg
IHJldHVybiAiRjI2Il9zOwogICAgICAgICBjYXNlIE5TRjI3RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkYyNyI7CisgICAgICAgICAgICByZXR1cm4gIkYyNyJfczsKICAgICAgICAg
Y2FzZSBOU0YyOEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjgiOworICAgICAg
ICAgICAgcmV0dXJuICJGMjgiX3M7CiAgICAgICAgIGNhc2UgTlNGMjlGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRjI5IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI5Il9zOwogICAg
ICAgICBjYXNlIE5TRjMwRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzMCI7Cisg
ICAgICAgICAgICByZXR1cm4gIkYzMCJfczsKICAgICAgICAgY2FzZSBOU0YzMUZ1bmN0aW9uS2V5
OgotICAgICAgICAgICAgcmV0dXJuICJGMzEiOworICAgICAgICAgICAgcmV0dXJuICJGMzEiX3M7
CiAgICAgICAgIGNhc2UgTlNGMzJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMy
IjsKKyAgICAgICAgICAgIHJldHVybiAiRjMyIl9zOwogICAgICAgICBjYXNlIE5TRjMzRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzMyI7CisgICAgICAgICAgICByZXR1cm4gIkYz
MyJfczsKICAgICAgICAgY2FzZSBOU0YzNEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJGMzQiOworICAgICAgICAgICAgcmV0dXJuICJGMzQiX3M7CiAgICAgICAgIGNhc2UgTlNGMzVG
dW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjM1IjsKKyAgICAgICAgICAgIHJldHVy
biAiRjM1Il9zOwogCiAgICAgICAgIC8vIFR1cm4gMHg3RiBpbnRvIDB4MDgsIGJlY2F1c2UgYmFj
a3NwYWNlIG5lZWRzIHRvIGFsd2F5cyBiZSAweDA4LgogICAgICAgICBjYXNlIDB4N0Y6Ci0gICAg
ICAgICAgICByZXR1cm4gIlUrMDAwOCI7CisgICAgICAgICAgICByZXR1cm4gIlUrMDAwOCJfczsK
ICAgICAgICAgLy8gU3RhbmRhcmQgc2F5cyB0aGF0IERFTCBiZWNvbWVzIFUrMDA3Ri4KICAgICAg
ICAgY2FzZSBOU0RlbGV0ZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJVKzAwN0Yi
OworICAgICAgICAgICAgcmV0dXJuICJVKzAwN0YiX3M7CiAKICAgICAgICAgLy8gQWx3YXlzIHVz
ZSAweDA5IGZvciB0YWIgaW5zdGVhZCBvZiBBcHBLaXQncyBiYWNrdGFiIGNoYXJhY3Rlci4KICAg
ICAgICAgY2FzZSBOU0JhY2tUYWJDaGFyYWN0ZXI6Ci0gICAgICAgICAgICByZXR1cm4gIlUrMDAw
OSI7CisgICAgICAgICAgICByZXR1cm4gIlUrMDAwOSJfczsKIAogICAgICAgICBjYXNlIE5TQmVn
aW5GdW5jdGlvbktleToKICAgICAgICAgY2FzZSBOU0JyZWFrRnVuY3Rpb25LZXk6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KaW5kZXggMDY5
NjFmYmE0OGFkOTFiNDIzYmNhOTg1YjZjMmU1YzYyMTAxZmMyZi4uNTk4NDJmMTI2OWM1YjVlZGYw
OTViZDljYjhlZTMzMjZkNjg3YWUxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQpAQCAtMTA0LDI1ICsxMDQsMjUgQEAgc3RhdGljIGNv
bnN0IGNoYXIqIGltYWdlVHlwZVRvTUlNRVR5cGUoSW1hZ2VUeXBlIHR5cGUpCiAgICAgfQogfQog
Ci1zdGF0aWMgY29uc3QgY2hhciogaW1hZ2VUeXBlVG9GYWtlRmlsZW5hbWUoSW1hZ2VUeXBlIHR5
cGUpCitzdGF0aWMgQVNDSUlMaXRlcmFsIGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKEltYWdlVHlw
ZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgSW1hZ2VUeXBlOjpJbnZh
bGlkOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsKICAgICBjYXNlIEltYWdl
VHlwZTo6VElGRjoKICNpZiBQTEFURk9STShNQUMpCi0gICAgICAgIHJldHVybiAiaW1hZ2UucG5n
IjsgLy8gRm9yIFdlYiBjb21wYXRpYmlsaXR5LCB3ZSBwcmV0ZW5kIHRvIGhhdmUgUE5HIGluc3Rl
YWQuCisgICAgICAgIHJldHVybiAiaW1hZ2UucG5nIl9zOyAvLyBGb3IgV2ViIGNvbXBhdGliaWxp
dHksIHdlIHByZXRlbmQgdG8gaGF2ZSBQTkcgaW5zdGVhZC4KICNlbHNlCiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbDo6bnVsbCgpOwogI2VuZGlmCiAgICAgY2FzZSBJbWFnZVR5cGU6OlBORzoK
LSAgICAgICAgcmV0dXJuICJpbWFnZS5wbmciOworICAgICAgICByZXR1cm4gImltYWdlLnBuZyJf
czsKICAgICBjYXNlIEltYWdlVHlwZTo6SlBFRzoKLSAgICAgICAgcmV0dXJuICJpbWFnZS5qcGVn
IjsKKyAgICAgICAgcmV0dXJuICJpbWFnZS5qcGVnIl9zOwogICAgIGNhc2UgSW1hZ2VUeXBlOjpH
SUY6Ci0gICAgICAgIHJldHVybiAiaW1hZ2UuZ2lmIjsKKyAgICAgICAgcmV0dXJuICJpbWFnZS5n
aWYiX3M7CiAgICAgfQogfQogCkBAIC0yMzQsNyArMjM0LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpy
ZWFkKFBhc3RlYm9hcmRGaWxlUmVhZGVyJiByZWFkZXIsIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBp
dGVtSW4KICAgICAgICAgZm9yIChhdXRvIGNvY29hVHlwZSA6IGluZm8ucGxhdGZvcm1UeXBlc0J5
RmlkZWxpdHkpIHsKICAgICAgICAgICAgIGF1dG8gaW1hZ2VUeXBlID0gY29jb2FUeXBlVG9JbWFn
ZVR5cGUoY29jb2FUeXBlKTsKICAgICAgICAgICAgIGF1dG8qIG1pbWVUeXBlID0gaW1hZ2VUeXBl
VG9NSU1FVHlwZShpbWFnZVR5cGUpOwotICAgICAgICAgICAgaWYgKCFtaW1lVHlwZSB8fCAhcmVh
ZGVyLnNob3VsZFJlYWRCdWZmZXIobWltZVR5cGUpKQorICAgICAgICAgICAgaWYgKCFtaW1lVHlw
ZSB8fCAhcmVhZGVyLnNob3VsZFJlYWRCdWZmZXIoU3RyaW5nIHsgbWltZVR5cGUgfSkpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBhdXRvIGJ1ZmZlciA9IHJlYWRCdWZm
ZXIoaXRlbUluZGV4LCBjb2NvYVR5cGUpOwogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTI0Miw3ICsy
NDIsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZEZpbGVSZWFkZXImIHJlYWRl
ciwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGl0ZW1JbgogICAgICAgICAgICAgICAgIGJ1ZmZlciA9
IGNvbnZlcnRUSUZGVG9QTkcoYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkpOwogI2VuZGlmCiAgICAg
ICAgICAgICBpZiAoYnVmZmVyKSB7Ci0gICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRCdWZmZXIo
aW1hZ2VUeXBlVG9GYWtlRmlsZW5hbWUoaW1hZ2VUeXBlKSwgbWltZVR5cGUsIGJ1ZmZlci5yZWxl
YXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgICAgICByZWFkZXIucmVhZEJ1ZmZlcihpbWFnZVR5
cGVUb0Zha2VGaWxlbmFtZShpbWFnZVR5cGUpLCBTdHJpbmcgeyBtaW1lVHlwZSB9LCBidWZmZXIu
cmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bh
c3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tCmluZGV4IDI2MjEyODQ0ZjIxMDRhNzc3Y2Y2
NTU2ZDc1YTZlNWNhZWM5NzNkZTguLjNkZTUwYTBlOTJjMjkwNGMxOWViNmRlYmRhNzE2ODJlZmI2
ZDY3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9h
cmRDdXN0b21EYXRhQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2Ev
UGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQpAQCAtMzAsOSArMzAsOSBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNvbnN0IGNoYXIqIFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKQorQVNDSUlMaXRlcmFsIFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKQogewot
ICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5jdXN0b20tcGFzdGVib2FyZC1kYXRhIjsKKyAg
ICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuY3VzdG9tLXBhc3RlYm9hcmQtZGF0YSJfczsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm91ckNDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb3VyQ0MuaAppbmRleCBiMzdkMDUwZTljMGMzNjc3MDdkYWUwYjZhY2NiMWJjMzdmOGVhYzEz
Li42NmZiM2RlMDcxMTUxMzA2Nzg4ZGMxMjZjMjNmNGJjODYxMjU4MzY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaApAQCAtODUsNyArODUsNyBAQCBuYW1lc3Bh
Y2UgV1RGIHsKIHRlbXBsYXRlPHR5cGVuYW1lPiBzdHJ1Y3QgTG9nQXJndW1lbnQ7CiAKIHRlbXBs
YXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdlYkNvcmU6OkZvdXJDQz4gewotICAgIHN0YXRpYyBT
dHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6Rm91ckNDJiBjb2RlKSB7IHJldHVybiBjb2Rl
LnN0cmluZygpLmRhdGEoKTsgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2Vi
Q29yZTo6Rm91ckNDJiBjb2RlKSB7IHJldHVybiBTdHJpbmcgeyBjb2RlLnN0cmluZygpLmRhdGEo
KSB9OyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xB
TkdMRS5jcHAKaW5kZXggY2MyOWNmYjQ2NzNjNjYyMTFkZTFhNDFlZTJiZjZhMmU4YmExMWZkNS4u
ZTJjOTYxNWRkNGFmOGU1MTI3YTkxNGYxMDc4OTQyNmJmNWVjMGRkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdM
RS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5jcHAKQEAgLTUxMCw4ICs1MTAsOSBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKGNvbnN0IGNoYXIqIHBhY2tlZERlcHRo
U3RlbmNpbAogICAgIC8vIEZJWE1FOiBTaW5jZSB0aGUgY29uc3RydWN0b3JzIG9mIHZhcmlvdXMg
cGxhdGZvcm1zIGFyZSBub3Qgc2hhcmVkLCB3ZSBpbml0aWFsaXplIHRoaXMgaGVyZS4KICAgICAv
LyBVcG9uIGNvbnN0cnVjdGluZyB0aGUgY29udGV4dCwgYWx3YXlzIGluaXRpYWxpemUgdGhlIGV4
dGVuc2lvbnMgdGhhdCB0aGUgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiB3aWxsCiAgICAgLy8gdXNl
IHRvIHR1cm4gb24gZmVhdHVyZSBmbGFncy4KLSAgICBpZiAoc3VwcG9ydHNFeHRlbnNpb24ocGFj
a2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uKSkgewotICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFi
bGVkKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbik7CisgICAgU3RyaW5nIHBhY2tlZERlcHRo
U3RlbmNpbEV4dGVuc2lvblN0cmluZyB7IHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbiB9Owor
ICAgIGlmIChzdXBwb3J0c0V4dGVuc2lvbihwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJp
bmcpKSB7CisgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2ls
RXh0ZW5zaW9uU3RyaW5nKTsKICAgICAgICAgbV9pbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9
IEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTOwogICAgIH0gZWxzZQogICAgICAgICBtX2ludGVybmFs
RGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQVEhfQ09NUE9ORU5UMTY7CkBAIC01MjgsMTcgKzUy
OSwxNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnZhbGlkYXRlRGVwdGhTdGVuY2ls
KGNvbnN0IGNoYXIqIHBhY2tlZERlcHRoU3RlbmNpbAogCiAgICAgaWYgKGF0dHJzLmFudGlhbGlh
cykgewogICAgICAgICAvLyBGSVhNRTogbXVzdCBhZGp1c3QgdGhpcyB3aGVuIHVwZ3JhZGluZyB0
byBXZWJHTCAyLjAgLyBPcGVuR0wgRVMgMy4wIHN1cHBvcnQuCi0gICAgICAgIGlmICghc3VwcG9y
dHNFeHRlbnNpb24oIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIikgfHwgIXN1cHBv
cnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0IikgfHwgIXN1cHBvcnRzRXh0
ZW5zaW9uKCJHTF9PRVNfcmdiOF9yZ2JhOCIpKSB7CisgICAgICAgIGlmICghc3VwcG9ydHNFeHRl
bnNpb24oIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIl9zKSB8fCAhc3VwcG9ydHNF
eHRlbnNpb24oIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiX3MpIHx8ICFzdXBwb3J0c0V4dGVu
c2lvbigiR0xfT0VTX3JnYjhfcmdiYTgiX3MpKSB7CiAgICAgICAgICAgICBhdHRycy5hbnRpYWxp
YXMgPSBmYWxzZTsKICAgICAgICAgICAgIHNldENvbnRleHRBdHRyaWJ1dGVzKGF0dHJzKTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FO
R0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIik7Ci0gICAgICAgICAgICBlbnN1cmVFeHRlbnNp
b25FbmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Iik7Ci0gICAgICAgICAgICBlbnN1
cmVFeHRlbnNpb25FbmFibGVkKCJHTF9PRVNfcmdiOF9yZ2JhOCIpOworICAgICAgICAgICAgZW5z
dXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiX3Mp
OworICAgICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZm
ZXJfYmxpdCJfcyk7CisgICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9PRVNf
cmdiOF9yZ2JhOCJfcyk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGF0dHJzLnByZXNlcnZl
RHJhd2luZ0J1ZmZlcikgewogICAgICAgICAvLyBOZWVkZWQgZm9yIHByZXNlcnZlRHJhd2luZ0J1
ZmZlcjp0cnVlIHN1cHBvcnQgd2l0aG91dCBhbnRpYWxpYXNpbmcuCi0gICAgICAgIGVuc3VyZUV4
dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiKTsKKyAgICAgICAgZW5z
dXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCJfcyk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCmluZGV4IDJkYWY4ZWFhYzkwOGNlYmJiOTRkYTMzMDY0NGE1ZTc3MTdiMzY3MzkuLmFl
YTJlOGFiOTkwMTk1ODJlNGRkNDkzOGUyMDM3ZjAyMDY1ZDI0MjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC00Niw3ICs0Niw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYXV0byBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDOjpwYXJzZUtleVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkgLT4gc3RkOjpvcHRp
b25hbDxLZXlTeXN0ZW1QYXJhbWV0ZXJzPgogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxS
ZWd1bGFyRXhwcmVzc2lvbj4ga2V5U3lzdGVtUkUoIl5jb21cXC5hcHBsZVxcLmZwc1xcLlsyM11f
XFxkKyg/OixcXGQrKSokIiwgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVndWxhckV4cHJlc3Npb24+IGtleVN5c3RlbVJFKCJeY29t
XFwuYXBwbGVcXC5mcHNcXC5bMjNdX1xcZCsoPzosXFxkKykqJCJfcywgSlNDOjpZYXJyOjpUZXh0
Q2FzZUluc2Vuc2l0aXZlKTsKIAogICAgIGlmIChrZXlTeXN0ZW1SRS5nZXQoKS5tYXRjaChrZXlT
eXN0ZW0pIDwgMCkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCBhODFiOGUy
MjY5YTY4YjQzNmE1MzI2MDU1YmUwZmFmMTA1NzAyYzIxLi4wMTMyYTJmODQ3OGE2ZGVhOTdlOGVi
OWQ3Y2M3NmMwYWM1ZWRmNjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC0zMTEsNyArMzExLDcgQEAgcHJvdGVjdGVkOgog
ICAgIE1lZGlhUGxheWVyKiBwbGF5ZXIoKSB7IHJldHVybiBtX3BsYXllcjsgfQogICAgIGNvbnN0
IE1lZGlhUGxheWVyKiBwbGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3BsYXllcjsgfQogCi0gICAg
U3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkFWRm91
bmRhdGlvbiI7IH0KKyAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAiQVZGb3VuZGF0aW9uIl9zOyB9CiAgICAgbG9uZyBwbGF0Zm9ybUVycm9yQ29k
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGFzc2V0RXJyb3JDb2RlKCk7IH0KIAogICAgIHZv
aWQgdHJhY2tNb2RlQ2hhbmdlZCgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxh
eVN0cmVhbWluZ0FWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQpp
bmRleCAyMWEyNzk5MmQyMjcwOTg5OWQwZDNlYjYwYjU4ZGZjZTJjYWQwYzBhLi4yNmRjYmZjNTdk
NDlhZWE1N2JmMzYzZTBlNzc2ZGFmZWZjOTRlMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5t
bQpAQCAtMzk4LDcgKzM5OCw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakM6OnNldFN0b3JhZ2VEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBzdG9yCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBhdXRvIHN0b3JhZ2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Iik7
CisgICAgYXV0byBzdG9yYWdlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5wbGlzdCJfcyk7CiAKICAgICBhdXRv
IGZpbGVUeXBlID0gRmlsZVN5c3RlbTo6ZmlsZVR5cGVGb2xsb3dpbmdTeW1saW5rcyhzdG9yYWdl
RGlyZWN0b3J5KTsKICAgICBpZiAoIWZpbGVUeXBlKSB7CkBAIC04OTEsNyArODkxLDcgQEAgdm9p
ZCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vu
c2UoY29uc3QgU3RyaW5nJiwgTGkKICAgICAgICAgICAgIGlmICghb2JqZWN0KQogICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBrZXlJRFN0cmluZyA9IG9i
amVjdC0+Z2V0U3RyaW5nKCJrZXlJRCIpOworICAgICAgICAgICAgYXV0byBrZXlJRFN0cmluZyA9
IG9iamVjdC0+Z2V0U3RyaW5nKCJrZXlJRCJfcyk7CiAgICAgICAgICAgICBpZiAoIWtleUlEU3Ry
aW5nKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtOTExLDggKzkxMSw4IEBA
IHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjp1cGRhdGVM
aWNlbnNlKGNvbnN0IFN0cmluZyYsIExpCiAKICAgICAgICAgICAgIGF1dG8mIHJlcXVlc3QgPSBt
X2N1cnJlbnRSZXF1ZXN0LnZhbHVlKCkucmVxdWVzdHNbZm91bmRJbmRleF07CiAKLSAgICAgICAg
ICAgIGF1dG8gcGF5bG9hZEZpbmRSZXN1bHRzID0gb2JqZWN0LT5maW5kKCJwYXlsb2FkIik7Ci0g
ICAgICAgICAgICBhdXRvIGVycm9yRmluZFJlc3VsdHMgPSBvYmplY3QtPmZpbmQoImVycm9yIik7
CisgICAgICAgICAgICBhdXRvIHBheWxvYWRGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgicGF5
bG9hZCJfcyk7CisgICAgICAgICAgICBhdXRvIGVycm9yRmluZFJlc3VsdHMgPSBvYmplY3QtPmZp
bmQoImVycm9yIl9zKTsKICAgICAgICAgICAgIGJvb2wgaGFzUGF5bG9hZCA9IHBheWxvYWRGaW5k
UmVzdWx0cyAhPSBvYmplY3QtPmVuZCgpOwogICAgICAgICAgICAgYm9vbCBoYXNFcnJvciA9IGVy
cm9yRmluZFJlc3VsdHMgIT0gb2JqZWN0LT5lbmQoKTsKIApAQCAtMTI1Myw4ICsxMjUzLDggQEAg
dm9pZCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3Zp
ZGVSZXF1ZXN0cyhWZWN0b3I8UmV0YWkKICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBKU09OOjpP
YmplY3Q6OmNyZWF0ZSgpOwogICAgICAgICAgICAgYXV0byYga2V5SUQgPSByZXF1ZXN0RGF0YS5m
aXJzdDsKICAgICAgICAgICAgIGF1dG8mIHBheWxvYWQgPSByZXF1ZXN0RGF0YS5zZWNvbmQ7Ci0g
ICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJrZXlJRCIsIGJhc2U2NEVuY29kZVRvU3RyaW5n
KGtleUlELT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGtleUlELT5zaXplKCkpKTsKLSAgICAg
ICAgICAgIGVudHJ5LT5zZXRTdHJpbmcoInBheWxvYWQiLCBiYXNlNjRFbmNvZGVUb1N0cmluZyhw
YXlsb2FkLmdldCgpLmJ5dGVzLCBwYXlsb2FkLmdldCgpLmxlbmd0aCkpOworICAgICAgICAgICAg
ZW50cnktPnNldFN0cmluZygia2V5SUQiX3MsIGJhc2U2NEVuY29kZVRvU3RyaW5nKGtleUlELT5t
YWtlQ29udGlndW91cygpLT5kYXRhKCksIGtleUlELT5zaXplKCkpKTsKKyAgICAgICAgICAgIGVu
dHJ5LT5zZXRTdHJpbmcoInBheWxvYWQiX3MsIGJhc2U2NEVuY29kZVRvU3RyaW5nKHBheWxvYWQu
Z2V0KCkuYnl0ZXMsIHBheWxvYWQuZ2V0KCkubGVuZ3RoKSk7CiAgICAgICAgICAgICByZXF1ZXN0
SlNPTi0+cHVzaE9iamVjdChXVEZNb3ZlKGVudHJ5KSk7CiAgICAgICAgIH0KICAgICAgICAgYXV0
byByZXF1ZXN0QnVmZmVyID0gdXRmOEJ1ZmZlcihyZXF1ZXN0SlNPTi0+dG9KU09OU3RyaW5nKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakMubW0KaW5kZXggMjg2YTVhNDg4N2U4ZDk1NjAwZTdjOGJhYzNhZmJlNjY3NjE2MDU1
NC4uYTBjNmEzZTUyNmNhY2E0YWQxYzc4OGUzYzIyMmU4YTRlNTFjMjRmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vz
c2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1t
CkBAIC0xMTMsNyArMTEzLDcgQEAgU3RyaW5nIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6
OnN0b3JhZ2VQYXRoKCkgY29uc3QKICAgICBpZiAoc3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCi0gICAgcmV0dXJuIEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5w
bGlzdCIpOworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
c3RvcmFnZURpcmVjdG9yeSwgIlNlY3VyZVN0b3AucGxpc3QiX3MpOwogfQogCiAjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMDk5N2Q3OGI2
NmI1NGUxNTk2NWY2YjhmNjVmYWRjYzNjZmEzOTNmMi4uOWVkMDIzNjMzNjA5ODdkZTIxNjNkYjBk
ZjMzMTkwZTdjODEyNDUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZP
YmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTA5Niw3
ICsxMDk2LDcgQEAgQVZTdHJlYW1TZXNzaW9uKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakM6OnN0cmVhbVNlc3Npb24oKQogICAgICAgICAgICAgICAgIHJldHVybiBuaWw7CiAg
ICAgICAgIH0KIAotICAgICAgICBTdHJpbmcgc3RvcmFnZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwgIlNlY3VyZVN0b3AucGxpc3Qi
KTsKKyAgICAgICAgU3RyaW5nIHN0b3JhZ2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Il9zKTsKICAg
ICAgICAgbV9zdHJlYW1TZXNzaW9uID0gYWRvcHROUyhbUEFMOjphbGxvY0FWU3RyZWFtU2Vzc2lv
bkluc3RhbmNlKCkgaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6W05TVVJMIGZpbGVVUkxX
aXRoUGF0aDpzdG9yYWdlUGF0aF1dKTsKICAgICB9CiAgICAgcmV0dXJuIG1fc3RyZWFtU2Vzc2lv
bi5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0KaW5kZXggNmJhNmI5YmYxMmFkM2M5ZjM4OTA3YzJmZDM2ZmU4N2E1NTNi
MmE0NC4uMGU4ZWE2NGYwODM4ZTYyYWRlNWNmODk3MmNhZDE4OWFjNTVkMzU2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0K
QEAgLTYwMCw3ICs2MDAsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQ
cm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGbwogICAgIH0KIAogICAg
IG1fa2V5SURzID0gV1RGTW92ZShrZXlJRHMudmFsdWUoKSk7Ci0gICAgcGxheWVyLT5pbml0aWFs
aXphdGlvbkRhdGFFbmNvdW50ZXJlZCgic2luZiIsIG1faW5pdERhdGEtPnRyeUNyZWF0ZUFycmF5
QnVmZmVyKCkpOworICAgIHBsYXllci0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoInNp
bmYiX3MsIG1faW5pdERhdGEtPnRyeUNyZWF0ZUFycmF5QnVmZmVyKCkpOwogCiAgICAgbV93YWl0
aW5nRm9yS2V5ID0gdHJ1ZTsKICAgICBwbGF5ZXItPndhaXRpbmdGb3JLZXlDaGFuZ2VkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJk
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElP
Uy5tbQppbmRleCBkNjRiOTY4MzQ3Mzc4MzJkMmVlZDY4ODIzNjAxMjI3MDY1NTg1M2ZjLi4yZTA2
ODU3ZWYyNmI4YmZmZjlhYTE5MTgwNzg0ZmRhYzFhMmIyNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KQEAgLTE1OSw3
ICsxNTksNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gd2ViU2FmZVR5cGVzKE5TQXJyYXk8TlNT
dHJpbmcgKj4gKnBsYXRmb3JtVHlwZXMsIFBsYXRmb3JtUAogewogICAgIExpc3RIYXNoU2V0PFN0
cmluZz4gZG9tUGFzdGVib2FyZFR5cGVzOwogICAgIGZvciAoTlNTdHJpbmcgKnR5cGUgaW4gcGxh
dGZvcm1UeXBlcykgewotICAgICAgICBpZiAoW3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAoUGFzdGVi
b2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV0pCisgICAgICAgIGlmIChbdHlwZSBpc0VxdWFs
VG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygp
KV0pCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAoUGFzdGVib2FyZDo6aXNT
YWZlVHlwZUZvckRPTVRvUmVhZEFuZFdyaXRlKHR5cGUpKSB7CkBAIC01MDEsNyArNTAxLDcgQEAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBQYXN0ZWJvYXJkQ3VzdG9t
RGF0YSBjdXN0b21EYXRhOwogICAgIGN1c3RvbURhdGEuc2V0T3JpZ2luKGNvbnRlbnQuY29udGVu
dE9yaWdpbik7Ci0gICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpjdXN0b21E
YXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBmb3JUeXBlOkAo
UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgW3JlcHJlc2VudGF0aW9u
c1RvUmVnaXN0ZXIgYWRkRGF0YTpjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVh
dGVOU0RhdGEoKS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlw
ZSgpLmNoYXJhY3RlcnMoKSldOwogCiAgICAgcmVnaXN0ZXJJdGVtVG9QYXN0ZWJvYXJkKHJlcHJl
c2VudGF0aW9uc1RvUmVnaXN0ZXIuZ2V0KCksIG1fcGFzdGVib2FyZC5nZXQoKSk7CiB9CkBAIC02
MDgsNyArNjA4LDcgQEAgVmVjdG9yPFN0cmluZz4gUGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1Nh
ZmVGb3JET01Ub1JlYWRBbmRXcml0ZShjb25zdCBTdHJpbmcmIG8KICAgICB9CiAjZW5kaWYgLy8g
UEFTVEVCT0FSRF9TVVBQT1JUU19QUkVTRU5UQVRJT05fU1RZTEVfQU5EX1RFQU1fREFUQQogCi0g
ICAgaWYgKE5TRGF0YSAqc2VyaWFsaXplZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJkIGRhdGFG
b3JQYXN0ZWJvYXJkVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKSB7
CisgICAgaWYgKE5TRGF0YSAqc2VyaWFsaXplZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJkIGRh
dGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5j
aGFyYWN0ZXJzKCkpXSkgewogICAgICAgICBhdXRvIGRhdGEgPSBQYXN0ZWJvYXJkQ3VzdG9tRGF0
YTo6ZnJvbVNoYXJlZEJ1ZmZlcihTaGFyZWRCdWZmZXI6OmNyZWF0ZShzZXJpYWxpemVkQ3VzdG9t
RGF0YSkuZ2V0KCkpOwogICAgICAgICBpZiAoZGF0YS5vcmlnaW4oKSA9PSBvcmlnaW4pIHsKICAg
ICAgICAgICAgIGZvciAoYXV0byYgdHlwZSA6IGRhdGEub3JkZXJlZFR5cGVzKCkpCkBAIC02NDUs
NyArNjQ1LDcgQEAgc3RhdGljIFJldGFpblB0cjxXZWJJdGVtUHJvdmlkZXJSZWdpc3RyYXRpb25J
bmZvTGlzdD4gY3JlYXRlSXRlbVByb3ZpZGVyUmVnaXN0cmEKICAgICAgICAgICAgIE5TRGljdGlv
bmFyeSAqdGVhbURhdGFEaWN0aW9uYXJ5ID0gQHsgQChvcmlnaW5LZXlGb3JUZWFtRGF0YSkgOiBk
YXRhLm9yaWdpbigpLCBAKGN1c3RvbVR5cGVzS2V5Rm9yVGVhbURhdGEpIDogY3JlYXRlTlNBcnJh
eShkYXRhLm9yZGVyZWRUeXBlcygpKS5nZXQoKSB9OwogICAgICAgICAgICAgaWYgKE5TRGF0YSAq
dGVhbURhdGEgPSBbTlNLZXllZEFyY2hpdmVyIGFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0OnRl
YW1EYXRhRGljdGlvbmFyeSByZXF1aXJpbmdTZWN1cmVDb2Rpbmc6WUVTIGVycm9yOm51bGxwdHJd
KSB7CiAgICAgICAgICAgICAgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgc2V0VGVhbURh
dGE6dGVhbURhdGFdOwotICAgICAgICAgICAgICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVy
IGFkZERhdGE6c2VyaWFsaXplZFNoYXJlZEJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgICAgICAgICAgW3JlcHJlc2VudGF0
aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpzZXJpYWxpemVkU2hhcmVkQnVmZmVyLmdldCgpIGZvclR5
cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCmluZGV4IGQyYTFk
YmMzYTg5ZjkxYWVjMmEzMjIwMzg2NGEwY2VmMzE5MjMyZDMuLjc1YTc2ZjQzOTk0ZWU2NWU4MTM5
Yzg3NzY2YzMzYjc4YTRhM2QyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCkBAIC03NjEsNyArNzYxLDcg
QEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogICAgIC8vIEZvciBjb21w
YXRpYmlsaXR5IHdpdGggRGF0YVRyYW5zZmVyIEFQSXMsIGFkZGl0aW9uYWxseSBsb2FkIHdlYi1l
eHBvc2VkIHR5cGVzLiBTaW5jZSB0aGlzIGlzIHRoZSBvbmx5IGNoYW5jZSB0bwogICAgIC8vIGZh
dWx0IGluIGFueSBkYXRhIGF0IGFsbCwgd2UgbmVlZCB0byBsb2FkIHVwIGZyb250IGFueSBpbmZv
cm1hdGlvbiB0aGF0IHRoZSBwYWdlIG1heSBhc2sgZm9yIGxhdGVyIGRvd24gdGhlIGxpbmUuCi0g
ICAgTlNTdHJpbmcgKmN1c3RvbVBhc3RlYm9hcmREYXRhVVRJID0gQChQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6Y29jb2FUeXBlKCkpOworICAgIE5TU3RyaW5nICpjdXN0b21QYXN0ZWJvYXJkRGF0YVVU
SSA9IEAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSk7CiAg
ICAgZm9yIChOU1N0cmluZyAqcmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVyIGluIHJlZ2lzdGVyZWRU
eXBlSWRlbnRpZmllcnMpIHsKICAgICAgICAgaWYgKFtyZWdpc3RlcmVkVHlwZUlkZW50aWZpZXIg
aXNFcXVhbFRvU3RyaW5nOmhpZ2hlc3RGaWRlbGl0eUNvbnRlbnRUeXBlXQogICAgICAgICAgICAg
fHwgW3JlZ2lzdGVyZWRUeXBlSWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6aGlnaGVzdEZpZGVs
aXR5U3VwcG9ydGVkVHlwZV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
RGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tCmluZGV4IDNmMDY5NDA0NjAyOTRkY2ZlOGE4MzAyOGQx
ZmQ3ZDQ2NmRhODUzOTUuLjE1ZGI4N2IxZDk4YmEzODFlYTk1MWIxZjM0ZjhlNjAwODI5ODI1YTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdo
bGlnaHQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3Rvckhp
Z2hsaWdodC5tbQpAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgRGF0YURldGVjdG9ySGlnaGxpZ2h0
OjpmYWRlSW4oKQogICAgIFthbmltYXRpb24gc2V0VG9WYWx1ZTpAMV07CiAKICAgICBhdXRvIHBs
YXRmb3JtQW5pbWF0aW9uID0gUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpjcmVhdGUoYW5pbWF0
aW9uLmdldCgpKTsKLSAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxheWVyKCkpLnBsYXRm
b3JtQ0FMYXllcigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGlnaHRJbiIsIHBsYXRm
b3JtQW5pbWF0aW9uLmdldCgpKTsKKyAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxheWVy
KCkpLnBsYXRmb3JtQ0FMYXllcigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGlnaHRJ
biJfcywgcGxhdGZvcm1BbmltYXRpb24uZ2V0KCkpOwogfQogCiB2b2lkIERhdGFEZXRlY3Rvckhp
Z2hsaWdodDo6ZmFkZU91dCgpCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBEYXRhRGV0ZWN0b3JI
aWdobGlnaHQ6OmZhZGVPdXQoKQogICAgIH1dOwogCiAgICAgYXV0byBwbGF0Zm9ybUFuaW1hdGlv
biA9IFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6Y3JlYXRlKGFuaW1hdGlvbi5nZXQoKSk7Ci0g
ICAgZG93bmNhc3Q8R3JhcGhpY3NMYXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+
YWRkQW5pbWF0aW9uRm9yS2V5KCJGYWRlSGlnaGxpZ2h0T3V0IiwgcGxhdGZvcm1BbmltYXRpb24u
Z2V0KCkpOworICAgIGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1D
QUxheWVyKCktPmFkZEFuaW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodE91dCJfcywgcGxhdGZv
cm1BbmltYXRpb24uZ2V0KCkpOwogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggYTJjMjUw
YWEyYmVmOGRlOTY0YmFmMDkyNDBkNWUwZWM0MTUwZWY4NC4uZGMyZjVjNTNjNjU0MWUxOThiM2E4
NGU2YzVhODA1ZDFkZGZlMGQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Bhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW0KQEAgLTUwLDEyICs1MCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWNvbnN0IGNoYXIqIGNvbnN0IFdlYkFyY2hpdmVQYm9hcmRUeXBlID0gIkFwcGxlIFdlYiBB
cmNoaXZlIHBhc3RlYm9hcmQgdHlwZSI7Ci1jb25zdCBjaGFyKiBjb25zdCBXZWJVUkxOYW1lUGJv
YXJkVHlwZSA9ICJwdWJsaWMudXJsLW5hbWUiOwotY29uc3QgY2hhciogY29uc3QgV2ViVVJMc1dp
dGhUaXRsZXNQYm9hcmRUeXBlID0gIldlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSI7Citjb25z
dCBBU0NJSUxpdGVyYWwgV2ViQXJjaGl2ZVBib2FyZFR5cGUgPSAiQXBwbGUgV2ViIEFyY2hpdmUg
cGFzdGVib2FyZCB0eXBlIl9zOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTE5hbWVQYm9hcmRU
eXBlID0gInB1YmxpYy51cmwtbmFtZSJfczsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxzV2l0
aFRpdGxlc1Bib2FyZFR5cGUgPSAiV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlIl9zOwogCi1j
b25zdCBjaGFyIFdlYlNtYXJ0UGFzdGVQYm9hcmRUeXBlW10gPSAiTmVYVCBzbWFydCBwYXN0ZSBw
YXN0ZWJvYXJkIHR5cGUiOwotY29uc3QgY2hhciBXZWJVUkxQYm9hcmRUeXBlW10gPSAicHVibGlj
LnVybCI7Citjb25zdCBBU0NJSUxpdGVyYWwgV2ViU21hcnRQYXN0ZVBib2FyZFR5cGUgPSAiTmVY
VCBzbWFydCBwYXN0ZSBwYXN0ZWJvYXJkIHR5cGUiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgV2Vi
VVJMUGJvYXJkVHlwZSA9ICJwdWJsaWMudXJsIl9zOwogCiBzdGF0aWMgY29uc3QgVmVjdG9yPFN0
cmluZz4gd3JpdGFibGVUeXBlc0ZvclVSTCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggMzVmYzZhZjU5
YjZhZmNiNGY5NTU0YzBmMmE4NGEzMzQyODM5NmU1ZS4uYjdiNmUzNzQ3YjBmY2Q5NzhjODc0ZTAx
ODJmMjM1NjNjZTVkMmQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNTAyLDcgKzUwMiw3IEBAIFN0cmlu
ZyBrZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCogZXZlbnQpCiAgICAgTlNTdHJpbmcg
KnMgPSBbZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXTsKICAgICBpZiAoW3MgbGVu
Z3RoXSAhPSAxKSB7CiAgICAgICAgIExPRyhFdmVudHMsICJyZWNlaXZlZCBhbiB1bmV4cGVjdGVk
IG51bWJlciBvZiBjaGFyYWN0ZXJzIGluIGtleSBldmVudDogJXUiLCBbcyBsZW5ndGhdKTsKLSAg
ICAgICAgcmV0dXJuICJVbmlkZW50aWZpZWQiOworICAgICAgICByZXR1cm4gIlVuaWRlbnRpZmll
ZCJfczsKICAgICB9CiAgICAgcmV0dXJuIGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZShbcyBjaGFy
YWN0ZXJBdEluZGV4OjBdKTsKIH0KQEAgLTgwOSwyMCArODA5LDIwIEBAIHB1YmxpYzoKIAogICAg
ICAgICAvLyBBbHdheXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4gLS0gd2UgZG9uJ3Qgd2FudCB0
byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3IgRW50ZXIuCiAgICAgICAgIGlm
IChtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19SRVRVUk4pIHsKLSAgICAgICAgICAgIG1f
dGV4dCA9ICJcciI7Ci0gICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gIlxyIjsKKyAgICAg
ICAgICAgIG1fdGV4dCA9ICJcciJfczsKKyAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBt
X3RleHQ7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBBcHBLaXQgc2V0cyB0ZXh0IHRvICJceDdG
IiBmb3IgYmFja3NwYWNlLCBidXQgdGhlIGNvcnJlY3QgS2V5Ym9hcmRFdmVudCBjaGFyYWN0ZXIg
Y29kZSBpcyA4LgogICAgICAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfQkFD
SykgewotICAgICAgICAgICAgbV90ZXh0ID0gIlx4OCI7Ci0gICAgICAgICAgICBtX3VubW9kaWZp
ZWRUZXh0ID0gIlx4OCI7CisgICAgICAgICAgICBtX3RleHQgPSAiXHg4Il9zOworICAgICAgICAg
ICAgbV91bm1vZGlmaWVkVGV4dCA9IG1fdGV4dDsKICAgICAgICAgfQogCiAgICAgICAgIC8vIEFs
d2F5cyB1c2UgOSBmb3IgVGFiIC0tIHdlIGRvbid0IHdhbnQgdG8gdXNlIEFwcEtpdCdzIGRpZmZl
cmVudCBjaGFyYWN0ZXIgZm9yIHNoaWZ0LXRhYi4KICAgICAgICAgaWYgKG1fd2luZG93c1ZpcnR1
YWxLZXlDb2RlID09IFZLX1RBQikgewotICAgICAgICAgICAgbV90ZXh0ID0gIlx4OSI7Ci0gICAg
ICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gIlx4OSI7CisgICAgICAgICAgICBtX3RleHQgPSAi
XHg5Il9zOworICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IG1fdGV4dDsKICAgICAgICAg
fQogCiAgICAgICAgIC8vIE1hYyBzcGVjaWZpYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGE3ZmU3MjU1NDM3NjY1
ZThiOGEwYzc0NTNkMzA0NzQ5ZDQ1NjJmNjcuLjQ2ZGI1N2RlZWE5ZDcyNjlhZWI0ZDg3N2QxOTE3
ZDVkNjMwM2RhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybVBhc3RlYm9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtUGFzdGVib2FyZE1hYy5tbQpAQCAtMjE3LDcgKzIxNyw3IEBAIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogVmVjdG9yPFN0cmluZz4gUGxhdGZvcm1QYXN0ZWJvYXJkOjp0
eXBlc1NhZmVGb3JET01Ub1JlYWRBbmRXcml0ZShjb25zdCBTdHJpbmcmIG9yaWdpbikgY29uc3QK
IHsKICAgICBMaXN0SGFzaFNldDxTdHJpbmc+IGRvbVBhc3RlYm9hcmRUeXBlczsKLSAgICBpZiAo
TlNEYXRhICpzZXJpYWxpemVkQ3VzdG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6
QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXSkgeworICAgIGlmIChOU0RhdGEg
KnNlcmlhbGl6ZWRDdXN0b21EYXRhID0gW21fcGFzdGVib2FyZCBkYXRhRm9yVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXSkgewogICAgICAgICBh
dXRvIGRhdGEgPSBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcihTaGFyZWRC
dWZmZXI6OmNyZWF0ZShzZXJpYWxpemVkQ3VzdG9tRGF0YSkuZ2V0KCkpOwogICAgICAgICBpZiAo
ZGF0YS5vcmlnaW4oKSA9PSBvcmlnaW4pIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgdHlwZSA6
IGRhdGEub3JkZXJlZFR5cGVzKCkpCkBAIC0yMjcsNyArMjI3LDcgQEAgVmVjdG9yPFN0cmluZz4g
UGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JET01Ub1JlYWRBbmRXcml0ZShjb25zdCBT
dHJpbmcmIG8KIAogICAgIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFsbFR5cGVzID0gW21fcGFzdGVi
b2FyZCB0eXBlc107CiAgICAgZm9yIChOU1N0cmluZyAqdHlwZSBpbiBhbGxUeXBlcykgewotICAg
ICAgICBpZiAoW3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNv
Y29hVHlwZSgpKV0pCisgICAgICAgIGlmIChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QChQYXN0ZWJv
YXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0pCiAgICAgICAgICAgICBj
b250aW51ZTsKIAogICAgICAgICBpZiAoUGFzdGVib2FyZDo6aXNTYWZlVHlwZUZvckRPTVRvUmVh
ZEFuZFdyaXRlKHR5cGUpKQpAQCAtMjU0LDcgKzI1NCw3IEBAIGludDY0X3QgUGxhdGZvcm1QYXN0
ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSYgZGF0YSkKIAogICAgIGJv
b2wgc2hvdWxkV3JpdGVDdXN0b21EYXRhID0gZGF0YS5oYXNTYW1lT3JpZ2luQ3VzdG9tRGF0YSgp
IHx8ICFkYXRhLm9yaWdpbigpLmlzRW1wdHkoKTsKICAgICBpZiAoc2hvdWxkV3JpdGVDdXN0b21E
YXRhKQotICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNv
Y29hVHlwZSgpKV07CisgICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAKICAgICBbbV9wYXN0ZWJvYXJkIGRl
Y2xhcmVUeXBlczp0eXBlcyBvd25lcjpuaWxdOwogCkBAIC0yNzUsNyArMjc1LDcgQEAgaW50NjRf
dCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21EYXRhJiBk
YXRhKQogCiAgICAgaWYgKHNob3VsZFdyaXRlQ3VzdG9tRGF0YSkgewogICAgICAgICBpZiAoYXV0
byBzZXJpYWxpemVkQ3VzdG9tRGF0YSA9IGRhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0
ZU5TRGF0YSgpKQotICAgICAgICAgICAgW21fcGFzdGVib2FyZCBzZXREYXRhOnNlcmlhbGl6ZWRD
dXN0b21EYXRhLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBl
KCkpXTsKKyAgICAgICAgICAgIFttX3Bhc3RlYm9hcmQgc2V0RGF0YTpzZXJpYWxpemVkQ3VzdG9t
RGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNo
YXJhY3RlcnMoKSldOwogICAgIH0KIAogICAgIHJldHVybiBjaGFuZ2VDb3VudCgpOwpAQCAtNDk5
LDcgKzQ5OSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNQYXN0ZWJvYXJkSXRlbT4gY3JlYXRlUGFz
dGVib2FyZEl0ZW0oY29uc3QgUGFzdGVib2FyZEN1c3RvbURhCiAKICAgICBpZiAoZGF0YS5oYXNT
YW1lT3JpZ2luQ3VzdG9tRGF0YSgpIHx8ICFkYXRhLm9yaWdpbigpLmlzRW1wdHkoKSkgewogICAg
ICAgICBpZiAoYXV0byBzZXJpYWxpemVkQ3VzdG9tRGF0YSA9IGRhdGEuY3JlYXRlU2hhcmVkQnVm
ZmVyKCktPmNyZWF0ZU5TRGF0YSgpKQotICAgICAgICAgICAgW2l0ZW0gc2V0RGF0YTpzZXJpYWxp
emVkQ3VzdG9tRGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpKV07CisgICAgICAgICAgICBbaXRlbSBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRh
LmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFj
dGVycygpKV07CiAgICAgfQogCiAgICAgZGF0YS5mb3JFYWNoUGxhdGZvcm1TdHJpbmdPckJ1ZmZl
cihbJl0gKGF1dG8mIHR5cGUsIGF1dG8mIHN0cmluZ09yQnVmZmVyKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQppbmRleCA3Y2QxYmQ4MGFlOWUz
M2U3NTZmNjU5MTIyNDBmN2VkNmNjMzNjNWI1Li45MmJlNjY3ZTYzZWIzMWY0MWQ3NzlhOTY2MmYx
ZmI3NTZmNDY1NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3Ry
aW5nVXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdV
dGlsaXRpZXMubW0KQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAog
c3RhdGljIFN0cmluZyB3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykKIHsKLSAgICBTdHJpbmcgbWV0YUNoYXJhY3RlcnMgPSAiLnwrPygpW117fV4kIjsKKyAg
ICBTdHJpbmcgbWV0YUNoYXJhY3RlcnMgPSAiLnwrPygpW117fV4kIl9zOwogICAgIFVDaGFyIGVz
Y2FwZUNoYXJhY3RlciA9ICdcXCc7CiAgICAgVUNoYXIgd2lsZGNhcmRDaGFyYWN0ZXIgPSAnKic7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hl
Y2subW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KaW5kZXgg
ZjE1MTA4OGNlOTI1YTUwNmViNDY4YjIyMjFmYWYzMjc1MDMyYmE0Mi4uYmJkNzM0NDFlMDUwYjk2
ODc1N2E0ZjVhNmFkMTM0NjZiMWFkMDZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1RocmVhZENoZWNrLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9UaHJlYWRDaGVjay5tbQpAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgV2ViQ29yZVJlcG9ydFRo
cmVhZFZpb2xhdGlvbihjb25zdCBjaGFyKiBmdW5jdGlvbiwgV2ViQ29yZTo6VGhyZWFkVmlvbGF0
aW9uCiAgICAgICAgIGNhc2UgTm9UaHJlYWRDaGVjazoKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIExvZ09uRmlyc3RUaHJlYWRWaW9sYXRpb246Ci0gICAgICAgICAgICBpZiAobG9n
Z2VkRnVuY3Rpb25zLmdldCgpLmFkZChmdW5jdGlvbikuaXNOZXdFbnRyeSkgeworICAgICAgICAg
ICAgaWYgKGxvZ2dlZEZ1bmN0aW9ucy5nZXQoKS5hZGQoU3RyaW5nIHsgZnVuY3Rpb24gfSkuaXNO
ZXdFbnRyeSkgewogICAgICAgICAgICAgICAgIE5TTG9nKEAiV2ViS2l0IFRocmVhZGluZyBWaW9s
YXRpb24gLSAlcyBjYWxsZWQgZnJvbSBzZWNvbmRhcnkgdGhyZWFkIiwgZnVuY3Rpb24pOwogICAg
ICAgICAgICAgICAgIE5TTG9nKEAiQWRkaXRpb25hbCB0aHJlYWRpbmcgdmlvbGF0aW9ucyBmb3Ig
dGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBiZSBsb2dnZWQuIik7CiAgICAgICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbQppbmRleCBlNjJhOTdmMTk5
YWFjYzNjYTY5MmQ4ZGE0YjIwOWQyOTk0ZTNhMGQxLi5lZGMwNzlmNGUwMjRhZjMwMWU0NWZhYTEw
OTM1YThkYjNhMmIyYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
VXNlckFnZW50TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdl
bnRNYWMubW0KQEAgLTM4LDcgKzM4LDcgQEAgU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50V2l0aEFw
cGxpY2F0aW9uTmFtZShjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSwgY29uc3QKICAgICBp
ZiAoIW9zVmVyc2lvbi5zdGFydHNXaXRoKCIxMCIpKQogICAgICAgICBvc1ZlcnNpb24gPSAiMTBf
MTVfNyJfczsKICAgICAKLSAgICBTdHJpbmcgYXBwTmFtZVN1ZmZpeCA9IGFwcGxpY2F0aW9uTmFt
ZS5pc0VtcHR5KCkgPyAiIiA6IG1ha2VTdHJpbmcoIiAiLCBhcHBsaWNhdGlvbk5hbWUpOworICAg
IFN0cmluZyBhcHBOYW1lU3VmZml4ID0gYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSA/IGVtcHR5
U3RyaW5nKCkgOiBtYWtlU3RyaW5nKCIgIiwgYXBwbGljYXRpb25OYW1lKTsKIAogICAgIHJldHVy
biBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAiLCBv
c1ZlcnNpb24sICIpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykiLCBh
cHBOYW1lU3VmZml4KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHAKaW5kZXggNjdkMmVhYzA4ZmE3YjRiZjA2NGNjZGZh
YmMyNDlmY2M0NjI1MWNmZC4uZDAxOTNhYzZjOWI5NzRhYTJiZjFkNzE5NzlkM2U3MDE1YmMzMGQ5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVy
cm9yQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUVycm9yQmFzZS5jcHAKQEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbldlYktpdEludGVybmFsID0gIldlYktpdElu
dGVybmFsIjsKLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluV2ViS2l0U2VydmljZVdvcmtl
ciA9ICJXZWJLaXRTZXJ2aWNlV29ya2VyIjsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBlcnJvckRvbWFp
bldlYktpdEludGVybmFsID0gIldlYktpdEludGVybmFsIl9zOworY29uc3QgQVNDSUlMaXRlcmFs
IGVycm9yRG9tYWluV2ViS2l0U2VydmljZVdvcmtlciA9ICJXZWJLaXRTZXJ2aWNlV29ya2VyIl9z
OwogCiBpbmxpbmUgY29uc3QgUmVzb3VyY2VFcnJvciYgUmVzb3VyY2VFcnJvckJhc2U6OmFzUmVz
b3VyY2VFcnJvcigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgKaW5kZXggNDg4ZGViYzE0M2Q2M2Y0NTdlOGQzOGU5
YzZkYzIzYTlkMjBiYTgxNi4uZTEyMWM1MTRmNDg5NDI2YTM0M2QzNDQ4OTBiOTY2MzAyNTBjZDdj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVy
cm9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VF
cnJvckJhc2UuaApAQCAtMzQsOCArMzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFJlc291cmNlRXJyb3I7CiAKLVdFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyKiBjb25z
dCBlcnJvckRvbWFpbldlYktpdEludGVybmFsOyAvLyBVc2VkIGZvciBlcnJvcnMgdGhhdCB3b24n
dCBiZSBleHBvc2VkIHRvIGNsaWVudHMuCi1XRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgY2hh
ciogY29uc3QgZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2VyOyAvLyBVc2VkIGZvciBlcnJv
cnMgdGhhdCBoYXBwZW4gd2hlbiBsb2FkaW5nIGEgcmVzb3VyY2UgZnJvbSBhIHNlcnZpY2Ugd29y
a2VyLgorV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBlcnJvckRvbWFp
bldlYktpdEludGVybmFsOyAvLyBVc2VkIGZvciBlcnJvcnMgdGhhdCB3b24ndCBiZSBleHBvc2Vk
IHRvIGNsaWVudHMuCitXRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIGVy
cm9yRG9tYWluV2ViS2l0U2VydmljZVdvcmtlcjsgLy8gVXNlZCBmb3IgZXJyb3JzIHRoYXQgaGFw
cGVuIHdoZW4gbG9hZGluZyBhIHJlc291cmNlIGZyb20gYSBzZXJ2aWNlIHdvcmtlci4KIAogY2xh
c3MgUmVzb3VyY2VFcnJvckJhc2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3Bv
bnNlR2VuZXJhdG9yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9S
YW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tCmluZGV4IDE5ODE0YTM2NWM5ZjY2MWEyMWMyMjlhZGJk
MDQ2MTFjMjA5NDdlNjQuLjA0ZWZkYjRkZmYxZDE2NDFjM2Q2MDVhZjMwMTRkMWExMGMyNDY0M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VS
ZXNwb25zZUdlbmVyYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0KQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGlj
IFJlc291cmNlUmVzcG9uc2Ugc3ludGhlc2l6ZWRSZXNwb25zZUZvclJhbmdlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIG9yaWcKICAgICBhdXRvIGJlZ2luID0gcGFyc2VkUmVxdWVzdFJhbmdlLmJl
Z2luOwogICAgIGF1dG8gZW5kID0gcGFyc2VkUmVxdWVzdFJhbmdlLmVuZDsKIAotICAgIGF1dG8g
bmV3Q29udGVudFJhbmdlID0gbWFrZVN0cmluZygiYnl0ZXMgIiwgYmVnaW4sICItIiwgZW5kLCAi
LyIsICh0b3RhbENvbnRlbnRMZW5ndGggPyBtYWtlU3RyaW5nKCp0b3RhbENvbnRlbnRMZW5ndGgp
IDogIioiKSk7CisgICAgYXV0byBuZXdDb250ZW50UmFuZ2UgPSBtYWtlU3RyaW5nKCJieXRlcyAi
LCBiZWdpbiwgIi0iLCBlbmQsICIvIiwgKHRvdGFsQ29udGVudExlbmd0aCA/IG1ha2VTdHJpbmco
KnRvdGFsQ29udGVudExlbmd0aCkgOiAiKiJfcykpOwogICAgIGF1dG8gbmV3Q29udGVudExlbmd0
aCA9IG1ha2VTdHJpbmcoZW5kIC0gYmVnaW4gKyAxKTsKIAogICAgIFJlc291cmNlUmVzcG9uc2Ug
bmV3UmVzcG9uc2UgPSBvcmlnaW5hbFJlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDAxMGVjYmFlZDg3YTczYTQyMGFmYjk3ZThlODBmZWE2
Mzc5ZmVkM2UuLjhlOWQ0NmExYjM0Y2FiMDQ3ZmJhMzQzZDFiNTdhMmM1YjJkYzEwODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTI2MTksNyArMjYx
OSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgcmV0
dXJuIGljb247CiAgICAgfQogCi0gICAgcmV0dXJuIEljb246OmNyZWF0ZUljb25Gb3JVVEkoInB1
YmxpYy5kYXRhIik7CisgICAgcmV0dXJuIEljb246OmNyZWF0ZUljb25Gb3JVVEkoInB1YmxpYy5k
YXRhIl9zKTsKIH0KIAogUmV0YWluUHRyPE5TSW1hZ2U+IFJlbmRlclRoZW1lTWFjOjppY29uRm9y
QXR0YWNobWVudChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGF0dGFjaG1l
bnRUeXBlLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKaW5kZXggOTJiYzZhODEy
YTExOGE1MTlmMGI0NmM5NGY5NzJlMzJiM2E1ZWU1Ni4uNGM1MmM2NzFiZGJjZTY0YzkzZWNjMjRm
NTgzMDE1MmNmZjA1MDZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCkBAIC02NzEsNyArNjcxLDcgQEAgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgTGlzdFN0eWxlUG9zaXRpb24gcG9z
aXRpb24pCiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIExpc3RTdHls
ZVR5cGUgc3R5bGVUeXBlKQogewotICAgIHJldHVybiB0cyA8PCBnZXRWYWx1ZU5hbWUodG9DU1NW
YWx1ZUlEKHN0eWxlVHlwZSkpOworICAgIHJldHVybiB0cyA8PCBnZXRWYWx1ZU5hbWUodG9DU1NW
YWx1ZUlEKHN0eWxlVHlwZSkpLmNoYXJhY3RlcnMoKTsKIH0KIAogVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgTWFycXVlZUJlaGF2aW9yIG1hcnF1ZWVCZWhhdmlvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDFhY2QyYWU5NWExNTk0ZTlmMzM3
OWQyZTkzOWY5MTZkZDE1MDQ2ZmQuLjAwYzc2MTBhMTBjZWJhNDUzNDI0ZGE3OTQwOTZlMWE2ZmQz
MzUyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNjgsMTAgKzY4
LDEwIEBAIHByaXZhdGU6CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkg
eyAqdGhpcyB9OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX2ZpbHRlclVuaXRz
IHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZH
X1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvbj4gbV9wcmltaXRpdmVVbml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0
ZSh0aGlzLCBTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpIH07Ci0g
ICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRl
KHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1h
dGVkTGVuZ3RoPiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0
aE1vZGU6OkhlaWdodCwgIi0xMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93
aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lk
dGgsICIxMjAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZH
QW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMjAl
IikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICItMTAlIl9zKSB9OworICAgIFJl
ZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRl
ZExlbmd0aD4gbV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6V2lkdGgsICIxMjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6
OkhlaWdodCwgIjEyMCUiX3MpIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzLmgKaW5kZXggMzEwM2NjNmFjMjMzZTBmZDNiMmZiMWU5NzkwNDlhMjhiN2I2Zjhi
Yi4uNzhlMmFhMmMxZTgxNGU2OThlZDQ0NGVlYzc3ZjliMjA3NmUzZjk1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuaApAQCAtNzUsMTAgKzc1LDEwIEBAIHByaXZhdGU6CiAKICAgICAvLyBTcGVjOiBJZiB0
aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEg
dmFsdWUgb2YgIjAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgv
aGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEg
dmFsdWUgb2YgIjEwMCUiIHdlcmUgc3BlY2lmaWVkLgotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpX
aWR0aCwgIjAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMCUiKSB9Owot
ICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpj
cmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMDAlIikgfTsKLSAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMDAlIikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6V2lkdGgsICIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNW
R0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMCUi
X3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEwMCUiX3MpIH07Cisg
ICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpj
cmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTAwJSJfcykgfTsKICAgICBSZWY8
U1ZHQW5pbWF0ZWRTdHJpbmc+IG1fcmVzdWx0IHsgU1ZHQW5pbWF0ZWRTdHJpbmc6OmNyZWF0ZSh0
aGlzKSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdy
YWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxl
bWVudC5oCmluZGV4IGFlZmU2NGNlMTQ2NzY3ODRjMGQxYTkyNGNlM2RmZWFkN2JhY2MzNzMuLmRm
MjBiZDA1OWZhYzczYjIzZDc2OWU4OWM5MmRlZjBmYmVjOTc4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJp
dmF0ZToKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07
CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3gxIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1feTEgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OkhlaWdodCkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feDIgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTAwJSIpIH07
CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3gyIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEwMCUiX3MpIH07CiAgICAgUmVmPFNW
R0FuaW1hdGVkTGVuZ3RoPiBtX3kyIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpIZWlnaHQpIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVs
ZW1lbnQuaAppbmRleCA1YTEzNmUzZWY0NWE1N2E1MWM5MmZmNzY1OWJhNmFmNzYyZjJhZTkzLi5l
MWY3ZWU5YWM0NzFhYTRmNjgwZmI1NGMyNDNhZmQwNzczNzI3NWRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTg5LDggKzg5LDggQEAgcHJpdmF0ZToKICAgICBQcm9w
ZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgUmVmPFNWR0Fu
aW1hdGVkTGVuZ3RoPiBtX3JlZlggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6OldpZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9yZWZZ
IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQp
IH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21hcmtlcldpZHRoIHsgU1ZHQW5pbWF0
ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjMiKSB9OwotICAg
IFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9tYXJrZXJIZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0
aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjMiKSB9OworICAgIFJlZjxT
VkdBbmltYXRlZExlbmd0aD4gbV9tYXJrZXJXaWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVh
dGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIzIl9zKSB9OworICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV9tYXJrZXJIZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRo
aXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjMiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVk
RW51bWVyYXRpb24+IG1fbWFya2VyVW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVh
dGUodGhpcywgU1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0
ZWRBbmdsZT4gbV9vcmllbnRBbmdsZSB7IFNWR0FuaW1hdGVkQW5nbGU6OmNyZWF0ZSh0aGlzKSB9
OwogICAgIFJlZjxTVkdBbmltYXRlZE9yaWVudFR5cGU+IG1fb3JpZW50VHlwZSB7IFNWR0FuaW1h
dGVkT3JpZW50VHlwZTo6Y3JlYXRlKHRoaXMsIFNWR01hcmtlck9yaWVudEFuZ2xlKSB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAppbmRleCA0OTBkYzIyMWFiMjQ0YTNlZjVmZGRkMjg1
ZGYzN2E2ZTQ2MDAzNDJkLi5kYmQwNDJkMGQzYWY4MTIwZTAwZjU5OWI5NWIwMWQxMTM4Y2UyMWRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaApAQCAtNjMsMTAgKzYzLDEwIEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQogCiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkg
eyAqdGhpcyB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIi0xMCUiKSB9OwotICAg
IFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0
aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICItMTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0
ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xl
bmd0aE1vZGU6OldpZHRoLCAiMTIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBt
X2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
SGVpZ2h0LCAiMTIwJSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSJf
cykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSJfcykgfTsKKyAgICBS
ZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRl
KHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMjAlIl9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEVu
dW1lcmF0aW9uPiBtX21hc2tVbml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0
aGlzLCBTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpIH07CiAg
ICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IG1fbWFza0NvbnRlbnRVbml0cyB7IFNWR0Fu
aW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZ
UEVfVVNFUlNQQUNFT05VU0UpIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0ltcGwuaApp
bmRleCBhNjM2MTU0Mjk0ZmVhM2E1YjA1YmY5ZmU4ZjJmOTBjMThlYTEwODM0Li4zNGYyM2M1MTVm
OTRiOTM5MTcwZjNhNWNlOWFlOGZiNTI4ODY2MTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFNlZ0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0ltcGwuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNW
R1BhdGhTZWc6OlNWR1BhdGhTZWc7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NMT1NFUEFUSDsgfQotICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIloiOyB9CisgICAgU3RyaW5n
IHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiWiJfczsgfQogICAg
IFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHUGF0aFNlZ0Nsb3NlUGF0aCgpKTsgfQogfTsKIApAQCAtNDUsNyArNDUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOjpTVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfQUJTOyB9Ci0g
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiSCI7
IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
ICJIIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicz4o
KTsgfQogfTsKIApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5n
IFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOjpTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbDsK
ICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBB
VEhTRUdfTElORVRPX0hPUklaT05UQUxfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNM
ZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiaCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJoIl9zOyB9CiAgICAgUmVmPFNWR1Bh
dGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9u
ZTxTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbFJlbD4oKTsgfQogfTsKIApAQCAtNjUsNyArNjUs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNh
bDo6U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdU
eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTOyB9
Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
ViI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJWIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnM+
KCk7IH0KIH07CiAKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2lu
ZyBTVkdQYXRoU2VnTGluZXRvVmVydGljYWw6OlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDsKICAg
ICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhT
RUdfTElORVRPX1ZFUlRJQ0FMX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gInYiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNM
ZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAidiJfczsgfQogICAgIFJlZjxTVkdQYXRoU2Vn
PiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsPigpOyB9CiB9OwogCkBAIC04NSw3ICs4NSw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNW
R1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19NT1ZFVE9fQUJTOyB9Ci0gICAgU3RyaW5n
IHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTSI7IH0KKyAgICBT
dHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJNIl9zOyB9
CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0
aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTW92ZXRvQWJzPigpOyB9CiB9OwogCkBAIC05NSw3
ICs5NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNv
b3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0
IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19NT1ZFVE9fUkVMOyB9
Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
bSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJtIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTW92ZXRvUmVsPigpOyB9CiB9
OwogCkBAIC0xMDUsNyArMTA1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQ
YXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAg
dW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VH
X0xJTkVUT19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJMIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gIkwiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5l
dG9BYnM+KCk7IH0KIH07CiAKQEAgLTExNSw3ICsxMTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29v
cmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFBBVEhTRUdfTElORVRPX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0
dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImwiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBl
QXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAibCJfczsgfQogICAgIFJlZjxTVkdQYXRo
U2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8
U1ZHUGF0aFNlZ0xpbmV0b1JlbD4oKTsgfQogfTsKIApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM6OlNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19BQlM7IH0KLSAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJRIjsg
fQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IlEiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzPigp
OyB9CiB9OwogCkBAIC0xMzUsNyArMTM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2lu
ZyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM7
CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQ
QVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInEiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdU
eXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAicSJfczsgfQogICAgIFJlZjxTVkdQ
YXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xv
bmU8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWw+KCk7IH0KIH07CiAKQEAgLTE0NSw3ICsx
NDUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWM6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfQUJTOyB9Ci0g
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiQyI7
IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
ICJDIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzPigpOyB9
CiB9OwogCkBAIC0xNTUsNyArMTU1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBT
VkdQYXRoU2VnQ3VydmV0b0N1YmljOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljOwogICAgIHVuc2ln
bmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJW
RVRPX0NVQklDX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gImMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiAiYyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1
cnZldG9DdWJpY1JlbD4oKTsgfQogfTsKIApAQCAtMTY1LDcgKzE2NSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0FyYzo6U1ZHUGF0aFNlZ0FyYzsKICAgICB1bnNp
Z25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQVJD
X0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gIkEiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAiQSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0FyY0Ficz4oKTsg
fQogfTsKIApAQCAtMTc1LDcgKzE3NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcg
U1ZHUGF0aFNlZ0FyYzo6U1ZHUGF0aFNlZ0FyYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2Vn
VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQVJDX1JFTDsgfQotICAgIFN0cmlu
ZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImEiOyB9CisgICAg
U3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiYSJfczsg
fQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1Bh
dGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0FyY1JlbD4oKTsgfQogfTsKIApAQCAtMTg1LDcg
KzE4NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNv
b3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0
IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURS
QVRJQ19TTU9PVEhfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAiVCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJUIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY1Ntb290aEFicz4oKTsgfQogfTsKIApAQCAtMTk1LDcgKzE5NSw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6
OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdU
eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9P
VEhfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAidCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJ0Il9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY1Ntb290aFJlbD4oKTsgfQogfTsKIApAQCAtMjA1LDcgKzIwNSw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aDo6U1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfQUJTOyB9
Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
UyI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJTIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
QWJzPigpOyB9CiB9OwogCkBAIC0yMTUsNyArMjE1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB1c2luZyBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoOjpTVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUw7IH0KLSAgICBTdHJpbmcg
cGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJzIjsgfQorICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInMiX3M7IH0K
ICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRo
U2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWw+KCk7IH0KIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAppbmRl
eCA4NGYxMTU4OGYzZTI4MWU2ZjZlMDdhNjA5ZDA4OWE5Nzg3MDhhMzllLi4yNDE5N2Y3NDU3NzE2
NTdjMTdkOGQwN2IyY2QyNGU1NGUzNGM4MDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCkBAIC02MywxMiArNjMsMTIgQEAgcHJpdmF0ZToKICAg
ICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFBy
b3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKLSAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1fY3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6OldpZHRoLCAiNTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+
IG1fY3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Okhl
aWdodCwgIjUwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3IgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiNTAlIikgfTsK
KyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fY3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiNTAlIl9zKSB9OworICAgIFJlZjxTVkdB
bmltYXRlZExlbmd0aD4gbV9jeSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6SGVpZ2h0LCAiNTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV9yIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpP
dGhlciwgIjUwJSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnggeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoKSB9OwogICAg
IFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9meSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV9mciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
T3RoZXIsICIwJSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2ZyIHsgU1ZHQW5p
bWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjAlIl9zKSB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKaW5kZXggNDM5OTcwNDMwZjY1NmE5ODY1
ZTZlOWM5ZDllZjVlYTI0YmJhNTMwNC4uODQ1YWI0YWJmZmI3ODk1ODQ4NjlmOWZmMWFhNWU4MzIw
MTI4MGE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlUcmFpdHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eVRyYWl0cy5oCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxi
b29sPiB7CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBzdGF0aWMgYm9vbCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVy
biBzdHJpbmcgPT0gInRydWUiOyB9CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcGFy
c2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJp
bmcoYm9vbCB0eXBlKSB7IHJldHVybiB0eXBlID8gInRydWUiIDogImZhbHNlIjsgfQorICAgIHN0
YXRpYyBTdHJpbmcgdG9TdHJpbmcoYm9vbCB0eXBlKSB7IHJldHVybiB0eXBlID8gInRydWUiX3Mg
OiAiZmFsc2UiX3M7IH0KIH07CiAKIHRlbXBsYXRlPD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgKaW5kZXggMTgxZWZmNWI1YjhlYTAw
MThlOWYzYjBjMjQzYWM3ZDRlM2U5ZGNhNy4uZjNjOTdmM2Y4ZTEzYWEwZjEyN2RlZTg0MzlkNmI1
YzBkMGUzYzFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09S
RV9URVNUU1VQUE9SVF9FWFBPUlQgc3RhdGljIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MmIHNp
bmdsZXRvbigpOwogICAgIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIHN0YXRpYyB2b2lkIHJl
c2V0KCk7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHVuYmxvY2tVUkxIb3N0KCkgeyByZXR1cm4g
Im1vY2stdW5ibG9jayI7IH0KKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIHVuYmxvY2tVUkxIb3N0
KCkgeyByZXR1cm4gIm1vY2stdW5ibG9jayJfczsgfQogCiAgICAgLy8gVHJpY2sgdGhlIGdlbmVy
YXRlZCBiaW5kaW5ncyBpbnRvIHRoaW5raW5nIHdlJ3JlIFJlZkNvdW50ZWQuCiAgICAgdm9pZCBy
ZWYoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmggYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5oCmluZGV4IGQ5MWM3N2QxMDJkMjRhZDIzZTU5
Mzk4NmUwNDBiYTI1YzA5ZGIzNmIuLmVhODNmN2QwYmIxYWFmMTRhN2JhNzIxMDk0ZjNiMjE5YTIy
YjIzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBWYWx1ZShkb3VibGUgdmFsdWUpIDogbV90eXBlKE51
bWJlclZhbHVlKSwgbV9udW1iZXIodmFsdWUpIHsgfQogCiAgICAgICAgICAgICBWYWx1ZShjb25z
dCBTdHJpbmcmIHZhbHVlKSA6IG1fdHlwZShTdHJpbmdWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVh
dGUodmFsdWUpKSB7IH0KLSAgICAgICAgICAgIFZhbHVlKGNvbnN0IGNoYXIqIHZhbHVlKSA6IG1f
dHlwZShTdHJpbmdWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUodmFsdWUpKSB7IH0KKyAgICAg
ICAgICAgIFZhbHVlKGNvbnN0IGNoYXIqIHZhbHVlKSA6IG1fdHlwZShTdHJpbmdWYWx1ZSksIG1f
ZGF0YShEYXRhOjpjcmVhdGUoU3RyaW5nIHsgdmFsdWUgfSkpIHsgfQogCiAgICAgICAgICAgICBl
eHBsaWNpdCBWYWx1ZShOb2RlU2V0JiYgdmFsdWUpCiAgICAgICAgICAgICAgICAgOiBtX3R5cGUo
Tm9kZVNldFZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlKSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNv
cmUveG1sL1hTTFN0eWxlU2hlZXQuaAppbmRleCBhMmJmOGUzMzQ5YWI1NjM2ZjUyNzRlNDUyNGMz
MGJiMTg2YzZmZGVkLi41ZmJkNmViYTQ3OWQ4N2U5YjdlODIxYWY5ZWEzMmYwMzBmNDY4NTAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgbWFya0FzUHJvY2Vzc2VkKCk7CiAgICAgYm9vbCBwcm9jZXNzZWQoKSBjb25zdCB7
IHJldHVybiBtX3Byb2Nlc3NlZDsgfQogICAgIAotICAgIFN0cmluZyB0eXBlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gInRleHQveG1sIjsgfQorICAgIFN0cmluZyB0eXBlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gInRleHQveG1sIl9zOyB9CiAgICAgYm9vbCBkaXNhYmxlZCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNEaXNhYmxlZDsgfQogICAgIHZvaWQgc2V0RGlzYWJsZWQo
Ym9vbCBiKSBvdmVycmlkZSB7IG1faXNEaXNhYmxlZCA9IGI7IH0KICAgICBOb2RlKiBvd25lck5v
ZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX293bmVyTm9kZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkdQVS9XR1NML1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvUGFyc2Vy
LmNwcAppbmRleCA2MjU0ODdkZTE4NWZlZWNmOTRhMWQxYjNmMGJjOTg0NmUzZGI4YTBhLi5lNjJm
M2UwYzA4N2VmYTFjMWJjMmQwOGIxZjJkNzgxYWE5YzVjYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViR1BVL1dHU0wvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvUGFyc2VyLmNw
cApAQCAtMjM0LDcgKzIzNCw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6Okdsb2JhbERlY2w+
LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VHbG9iYWxEZWNsKCkKICAgICAgICAgcmV0dXJu
IHsgbWFrZVVuaXF1ZVJlZjxBU1Q6OkZ1bmN0aW9uRGVjbD4oV1RGTW92ZShmbikpIH07CiAgICAg
fQogICAgIGRlZmF1bHQ6Ci0gICAgICAgIEZBSUwoIlRyeWluZyB0byBwYXJzZSBhIEdsb2JhbERl
Y2wsIGV4cGVjdGVkICd2YXInLCAnZm4nLCBvciAnc3RydWN0Jy4iKTsKKyAgICAgICAgRkFJTCgi
VHJ5aW5nIHRvIHBhcnNlIGEgR2xvYmFsRGVjbCwgZXhwZWN0ZWQgJ3ZhcicsICdmbicsIG9yICdz
dHJ1Y3QnLiJfcyk7CiAgICAgfQogfQogCkBAIC0yODIsNyArMjgyLDcgQEAgRXhwZWN0ZWQ8VW5p
cXVlUmVmPEFTVDo6QXR0cmlidXRlPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQXR0cmli
dXRlKCkKICAgICAgICAgICAgIFJFVFVSTl9OT0RFX1JFRihTdGFnZUF0dHJpYnV0ZSwgQVNUOjpT
dGFnZUF0dHJpYnV0ZTo6U3RhZ2U6OlZlcnRleCk7CiAgICAgICAgIGlmIChzdGFnZS5tX2lkZW50
ID09ICJmcmFnbWVudCIpCiAgICAgICAgICAgICBSRVRVUk5fTk9ERV9SRUYoU3RhZ2VBdHRyaWJ1
dGUsIEFTVDo6U3RhZ2VBdHRyaWJ1dGU6OlN0YWdlOjpGcmFnbWVudCk7Ci0gICAgICAgIEZBSUwo
IkludmFsaWQgc3RhZ2UgYXR0cmlidXRlLCB0aGUgb25seSBvcHRpb25zIGFyZSAnY29tcHV0ZScs
ICd2ZXJ0ZXgnLCAnZnJhZ21lbnQnLiIpOworICAgICAgICBGQUlMKCJJbnZhbGlkIHN0YWdlIGF0
dHJpYnV0ZSwgdGhlIG9ubHkgb3B0aW9ucyBhcmUgJ2NvbXB1dGUnLCAndmVydGV4JywgJ2ZyYWdt
ZW50Jy4iX3MpOwogICAgIH0KICAgICBpZiAoaWRlbnQubV9pZGVudCA9PSAibG9jYXRpb24iKSB7
CiAgICAgICAgIENPTlNVTUVfVFlQRShQYXJlbkxlZnQpOwpAQCAtMjk3LDcgKzI5Nyw3IEBAIEV4
cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OkF0dHJpYnV0ZT4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+Ojpw
YXJzZUF0dHJpYnV0ZSgpCiAgICAgICAgIENPTlNVTUVfVFlQRShQYXJlblJpZ2h0KTsKICAgICAg
ICAgUkVUVVJOX05PREVfUkVGKEJ1aWx0aW5BdHRyaWJ1dGUsIG5hbWUubV9pZGVudCk7CiAgICAg
fQotICAgIEZBSUwoIlVua25vd24gYXR0cmlidXRlLCB0aGUgb25seSBzdXBwb3J0ZWQgYXR0cmli
dXRlcyBhcmUgJ2dyb3VwJywgJ2JpbmRpbmcnLCAnc3RhZ2UnLiIpOworICAgIEZBSUwoIlVua25v
d24gYXR0cmlidXRlLCB0aGUgb25seSBzdXBwb3J0ZWQgYXR0cmlidXRlcyBhcmUgJ2dyb3VwJywg
J2JpbmRpbmcnLCAnc3RhZ2UnLiJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpA
QCAtMzYwLDcgKzM2MCw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OlR5cGVEZWNsPiwgRXJy
b3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlVHlwZURlY2woKQogICAgICAgICByZXR1cm4gcGFyc2VU
eXBlRGVjbEFmdGVySWRlbnRpZmllcihXVEZNb3ZlKG5hbWUubV9pZGVudCksIF9zdGFydE9mRWxl
bWVudFBvc2l0aW9uKTsKICAgICB9CiAKLSAgICBGQUlMKCJUcmllZCBwYXJzaW5nIGEgdHlwZSBh
bmQgaXQgZGlkIG5vdCBzdGFydCB3aXRoIGFuIGlkZW50aWZpZXIiKTsKKyAgICBGQUlMKCJUcmll
ZCBwYXJzaW5nIGEgdHlwZSBhbmQgaXQgZGlkIG5vdCBzdGFydCB3aXRoIGFuIGlkZW50aWZpZXIi
X3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTQ1MCw3ICs0NTAsNyBAQCBF
eHBlY3RlZDxBU1Q6OlN0b3JhZ2VDbGFzcywgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlU3Rv
cmFnZUNsYXNzKCkKICAgICAgICAgcmV0dXJuIHsgQVNUOjpTdG9yYWdlQ2xhc3M6OlN0b3JhZ2Ug
fTsKICAgICB9CiAKLSAgICBGQUlMKCJFeHBlY3RlZCBvbmUgb2YgJ2Z1bmN0aW9uJy8ncHJpdmF0
ZScvJ3N0b3JhZ2UnLyd1bmlmb3JtJy8nd29ya2dyb3VwJyIpOworICAgIEZBSUwoIkV4cGVjdGVk
IG9uZSBvZiAnZnVuY3Rpb24nLydwcml2YXRlJy8nc3RvcmFnZScvJ3VuaWZvcm0nLyd3b3JrZ3Jv
dXAnIl9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC00NzEsNyArNDcxLDcg
QEAgRXhwZWN0ZWQ8QVNUOjpBY2Nlc3NNb2RlLCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VB
Y2Nlc3NNb2RlKCkKICAgICAgICAgcmV0dXJuIHsgQVNUOjpBY2Nlc3NNb2RlOjpSZWFkV3JpdGUg
fTsKICAgICB9CiAKLSAgICBGQUlMKCJFeHBlY3RlZCBvbmUgb2YgJ3JlYWQnLyd3cml0ZScvJ3Jl
YWRfd3JpdGUnIik7CisgICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdyZWFkJy8nd3JpdGUnLydy
ZWFkX3dyaXRlJyJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpAQCAtNTQ3LDcg
KzU0Nyw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OlN0YXRlbWVudD4sIEVycm9yPiBQYXJz
ZXI8TGV4ZXI+OjpwYXJzZVN0YXRlbWVudCgpCiAgICAgICAgIFJFVFVSTl9OT0RFX1JFRihBc3Np
Z25tZW50U3RhdGVtZW50LCBsaHMubW92ZVRvVW5pcXVlUHRyKCksIFdURk1vdmUocmhzKSk7CiAg
ICAgfQogICAgIGRlZmF1bHQ6Ci0gICAgICAgIEZBSUwoIk5vdCBhIHZhbGlkIHN0YXRlbWVudCIp
OworICAgICAgICBGQUlMKCJOb3QgYSB2YWxpZCBzdGF0ZW1lbnQiX3MpOwogICAgIH0KIH0KIApA
QCAtNjk0LDcgKzY5NCw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OkV4cHJlc3Npb24+LCBF
cnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VQcmltYXJ5RXhwcmVzc2lvCiAgICAgZGVmYXVsdDoK
ICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAnKCcsIGEg
bGl0ZXJhbCwgb3IgYW4gaWRlbnRpZmllciIpOworICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAn
KCcsIGEgbGl0ZXJhbCwgb3IgYW4gaWRlbnRpZmllciJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIExleGVyPgpAQCAtNzM0LDcgKzczNCw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OkV4
cHJlc3Npb24+LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VDb3JlTEhTRXhwcmVzc2lvCiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIEZBSUwoIlRyaWVkIHRvIHBhcnNlIHRoZSBsZWZ0
LWhhbmQgc2lkZSBvZiBhbiBhc3NpZ25tZW50IGFuZCBmYWlsZWQiKTsKKyAgICBGQUlMKCJUcmll
ZCB0byBwYXJzZSB0aGUgbGVmdC1oYW5kIHNpZGUgb2YgYW4gYXNzaWdubWVudCBhbmQgZmFpbGVk
Il9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViR1BVL1dHU0wvVG9rZW4uY3BwIGIvU291cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcAppbmRl
eCBkYjNjMGE0M2UxMDM3MmViOTk0MWZjZjE2ZDhiMjBlZGU3ZjA4OTEyLi42NzMxYWEyMmMxMmEz
MzAzNjhjZmIxYjc2MGM5NjZlZTEwZjFhYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dH
U0wvVG9rZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAKQEAgLTMyLDg5
ICszMiw4OSBAQCBTdHJpbmcgdG9TdHJpbmcoVG9rZW5UeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNo
ICh0eXBlKSB7CiAgICAgY2FzZSBUb2tlblR5cGU6OkludmFsaWQ6Ci0gICAgICAgIHJldHVybiAi
SW52YWxpZCI7CisgICAgICAgIHJldHVybiAiSW52YWxpZCJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6RW5kT2ZGaWxlOgotICAgICAgICByZXR1cm4gIkVPRiI7CisgICAgICAgIHJldHVybiAiRU9G
Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpJbnRlZ2VyTGl0ZXJhbDoKLSAgICAgICAgcmV0dXJu
ICJJbnRlZ2VyTGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWwiX3M7CiAg
ICAgY2FzZSBUb2tlblR5cGU6OkludGVnZXJMaXRlcmFsU2lnbmVkOgotICAgICAgICByZXR1cm4g
IkludGVnZXJMaXRlcmFsU2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbFNp
Z25lZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SW50ZWdlckxpdGVyYWxVbnNpZ25lZDoKLSAg
ICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbFVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJJ
bnRlZ2VyTGl0ZXJhbFVuc2lnbmVkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpEZWNpbWFsRmxv
YXRMaXRlcmFsOgotICAgICAgICByZXR1cm4gIkRlY2ltYWxGbG9hdExpdGVyYWwiOworICAgICAg
ICByZXR1cm4gIkRlY2ltYWxGbG9hdExpdGVyYWwiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6Okhl
eEZsb2F0TGl0ZXJhbDoKLSAgICAgICAgcmV0dXJuICJIZXhGbG9hdExpdGVyYWwiOworICAgICAg
ICByZXR1cm4gIkhleEZsb2F0TGl0ZXJhbCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SWRlbnRp
ZmllcjoKLSAgICAgICAgcmV0dXJuICJJZGVudGlmaWVyIjsKKyAgICAgICAgcmV0dXJuICJJZGVu
dGlmaWVyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpSZXNlcnZlZFdvcmQ6Ci0gICAgICAgIHJl
dHVybiAiUmVzZXJ2ZWRXb3JkIjsKKyAgICAgICAgcmV0dXJuICJSZXNlcnZlZFdvcmQiX3M7CiAg
ICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRTdHJ1Y3Q6Ci0gICAgICAgIHJldHVybiAic3RydWN0
IjsKKyAgICAgICAgcmV0dXJuICJzdHJ1Y3QiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdv
cmRGbjoKLSAgICAgICAgcmV0dXJuICJmbiI7CisgICAgICAgIHJldHVybiAiZm4iX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OktleXdvcmRGdW5jdGlvbjoKLSAgICAgICAgcmV0dXJuICJmdW5jdGlv
biI7CisgICAgICAgIHJldHVybiAiZnVuY3Rpb24iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6Oktl
eXdvcmRQcml2YXRlOgotICAgICAgICByZXR1cm4gInByaXZhdGUiOworICAgICAgICByZXR1cm4g
InByaXZhdGUiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRSZWFkOgotICAgICAgICBy
ZXR1cm4gInJlYWQiOworICAgICAgICByZXR1cm4gInJlYWQiX3M7CiAgICAgY2FzZSBUb2tlblR5
cGU6OktleXdvcmRSZWFkV3JpdGU6Ci0gICAgICAgIHJldHVybiAicmVhZF93cml0ZSI7CisgICAg
ICAgIHJldHVybiAicmVhZF93cml0ZSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFJl
dHVybjoKLSAgICAgICAgcmV0dXJuICJyZXR1cm4iOworICAgICAgICByZXR1cm4gInJldHVybiJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFN0b3JhZ2U6Ci0gICAgICAgIHJldHVybiAi
c3RvcmFnZSI7CisgICAgICAgIHJldHVybiAic3RvcmFnZSJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6S2V5d29yZFVuaWZvcm06Ci0gICAgICAgIHJldHVybiAidW5pZm9ybSI7CisgICAgICAgIHJl
dHVybiAidW5pZm9ybSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFZhcjoKLSAgICAg
ICAgcmV0dXJuICJ2YXIiOworICAgICAgICByZXR1cm4gInZhciJfczsKICAgICBjYXNlIFRva2Vu
VHlwZTo6S2V5d29yZFdvcmtncm91cDoKLSAgICAgICAgcmV0dXJuICJ3b3JrZ3JvdXAiOworICAg
ICAgICByZXR1cm4gIndvcmtncm91cCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFdy
aXRlOgotICAgICAgICByZXR1cm4gIndyaXRlIjsKKyAgICAgICAgcmV0dXJuICJ3cml0ZSJfczsK
ICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEkzMjoKLSAgICAgICAgcmV0dXJuICJpMzIiOwor
ICAgICAgICByZXR1cm4gImkzMiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFUzMjoK
LSAgICAgICAgcmV0dXJuICJ1MzIiOworICAgICAgICByZXR1cm4gInUzMiJfczsKICAgICBjYXNl
IFRva2VuVHlwZTo6S2V5d29yZEYzMjoKLSAgICAgICAgcmV0dXJuICJmMzIiOworICAgICAgICBy
ZXR1cm4gImYzMiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEJvb2w6Ci0gICAgICAg
IHJldHVybiAiYm9vbCI7CisgICAgICAgIHJldHVybiAiYm9vbCJfczsKICAgICBjYXNlIFRva2Vu
VHlwZTo6TGl0ZXJhbFRydWU6Ci0gICAgICAgIHJldHVybiAidHJ1ZSI7CisgICAgICAgIHJldHVy
biAidHJ1ZSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6TGl0ZXJhbEZhbHNlOgotICAgICAgICBy
ZXR1cm4gImZhbHNlIjsKKyAgICAgICAgcmV0dXJuICJmYWxzZSJfczsKICAgICBjYXNlIFRva2Vu
VHlwZTo6QXJyb3c6Ci0gICAgICAgIHJldHVybiAiLT4iOworICAgICAgICByZXR1cm4gIi0+Il9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpBdHRyaWJ1dGU6Ci0gICAgICAgIHJldHVybiAiQCI7Cisg
ICAgICAgIHJldHVybiAiQCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QnJhY2tldExlZnQ6Ci0g
ICAgICAgIHJldHVybiAiWyI7CisgICAgICAgIHJldHVybiAiWyJfczsKICAgICBjYXNlIFRva2Vu
VHlwZTo6QnJhY2tldFJpZ2h0OgotICAgICAgICByZXR1cm4gIl0iOworICAgICAgICByZXR1cm4g
Il0iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkJyYWNlTGVmdDoKLSAgICAgICAgcmV0dXJuICJ7
IjsKKyAgICAgICAgcmV0dXJuICJ7Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFjZVJpZ2h0
OgotICAgICAgICByZXR1cm4gIn0iOworICAgICAgICByZXR1cm4gIn0iX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OkNvbG9uOgotICAgICAgICByZXR1cm4gIjoiOworICAgICAgICByZXR1cm4gIjoi
X3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkNvbW1hOgotICAgICAgICByZXR1cm4gIiwiOworICAg
ICAgICByZXR1cm4gIiwiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkVxdWFsOgotICAgICAgICBy
ZXR1cm4gIj0iOworICAgICAgICByZXR1cm4gIj0iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkdU
OgotICAgICAgICByZXR1cm4gIj4iOworICAgICAgICByZXR1cm4gIj4iX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OkxUOgotICAgICAgICByZXR1cm4gIjwiOworICAgICAgICByZXR1cm4gIjwiX3M7
CiAgICAgY2FzZSBUb2tlblR5cGU6OlBlcmlvZDoKLSAgICAgICAgcmV0dXJuICIuIjsKKyAgICAg
ICAgcmV0dXJuICIuIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpQYXJlbkxlZnQ6Ci0gICAgICAg
IHJldHVybiAiKCI7CisgICAgICAgIHJldHVybiAiKCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6
UGFyZW5SaWdodDoKLSAgICAgICAgcmV0dXJuICIpIjsKKyAgICAgICAgcmV0dXJuICIpIl9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpTZW1pY29sb246Ci0gICAgICAgIHJldHVybiAiOyI7CisgICAg
ICAgIHJldHVybiAiOyJfczsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL0FkYXB0ZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCmluZGV4
IDFiYmFkNjFhNmNlN2UyOTc1NmRlMTU2MWFhNDYyZGU1ZDFhNjgyNjguLjYwMGQxZDZlN2JmMGY3
N2JkZDJmNTE4ZmY5NDM1MDc4MTI1MmZhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL0FkYXB0ZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbQpAQCAt
MTIzLDcgKzEyMyw3IEBAIHZvaWQgQWRhcHRlcjo6cmVxdWVzdERldmljZShjb25zdCBXR1BVRGV2
aWNlRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgQ29tcGxldGlvbkhhCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBjYWxsYmFjayhXR1BVUmVxdWVzdERldmljZVN0YXR1c19TdWNjZXNzLCBE
ZXZpY2U6OmNyZWF0ZShtX2RldmljZSwgZGVzY3JpcHRvci5sYWJlbCwgbV9pbnN0YW5jZSksIHsg
fSk7CisgICAgY2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXNfU3VjY2VzcywgRGV2aWNl
OjpjcmVhdGUobV9kZXZpY2UsIFN0cmluZyB7IGRlc2NyaXB0b3IubGFiZWwgfSwgbV9pbnN0YW5j
ZSksIHsgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1t
CmluZGV4IGZiYjJmNDRkZjllNTM2Y2U1Y2ZlZGUxMWY3ODVkYzhjZGExZmJkYzUuLjNiOTIyMDAz
MThkYzUxN2QyYTBlYjZlYzM5OWVhNTU0MWM2YTUxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL0J1ZmZlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0K
QEAgLTI5MSw3ICsyOTEsNyBAQCB2b2lkIEJ1ZmZlcjo6bWFwQXN5bmMoV0dQVU1hcE1vZGVGbGFn
cyBtb2RlLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgQ29tcGxldAogICAgIC8vICJJZiBh
bnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZDoiCiAgICAgaWYg
KCF2YWxpZGF0ZU1hcEFzeW5jKG1vZGUsIG9mZnNldCwgcmFuZ2VTaXplKSkgewogICAgICAgICAv
LyAiUmVjb3JkIGEgdmFsaWRhdGlvbiBlcnJvciBvbiB0aGUgY3VycmVudCBzY29wZS4iCi0gICAg
ICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVy
ZS4iKTsKKyAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRh
dGlvbiBmYWlsdXJlLiJfcyk7CiAKICAgICAgICAgLy8gIlJldHVybiBhIHByb21pc2UgcmVqZWN0
ZWQgd2l0aCBhbiBPcGVyYXRpb25FcnJvciBvbiB0aGUgRGV2aWNlIHRpbWVsaW5lLiIKICAgICAg
ICAgY2FsbGJhY2soV0dQVUJ1ZmZlck1hcEFzeW5jU3RhdHVzX0Vycm9yKTsKQEAgLTM2NSw3ICsz
NjUsNyBAQCB2b2lkIEJ1ZmZlcjo6dW5tYXAoKQogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxv
d2luZyByZXF1aXJlbWVudHMgYXJlIHVubWV0IgogICAgIGlmICghdmFsaWRhdGVVbm1hcCgpKSB7
CiAgICAgICAgIC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgotICAg
ICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1
cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlk
YXRpb24gZmFpbHVyZS4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbSBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tCmluZGV4IGFlNGJhYzYwODViNGM1ZjJlZTRjZDljN2Mz
YTNlMGIwM2Q3NmQ3OTIuLjk2OThjOGEwOTlmZmQ2YzA5Mzc4NDM5NGE4MTJjMTgyZjBlYjdkNWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tCisrKyBi
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tCkBAIC0xNDksNyArMTQ5LDcg
QEAgdm9pZCBDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKGNvbnN0IEJ1ZmZlciYg
c291cmNlLCB1aW50NjRfdCBzb3VyY2VPZmYKICAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUgdW5zYXRpc2ZpZWQKICAgICBpZiAoIXZhbGlkYXRlQ29weUJ1ZmZl
clRvQnVmZmVyKHNvdXJjZSwgc291cmNlT2Zmc2V0LCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb25P
ZmZzZXQsIHNpemUpKSB7CiAgICAgICAgIC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3Ig
YW5kIHN0b3AuIgotICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJW
YWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0
aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0yMjAsNyArMjIwLDcgQEAgdm9pZCBDb21tYW5kRW5jb2Rlcjo6Y2xlYXJCdWZmZXIo
Y29uc3QgQnVmZmVyJiBidWZmZXIsIHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3QKICAgICAvLyAi
SWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5zYXRpc2ZpZWQiCiAgICAg
aWYgKCF2YWxpZGF0ZUNsZWFyQnVmZmVyKGJ1ZmZlciwgb2Zmc2V0LCBzaXplKSkgewogICAgICAg
ICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yIGFuZCBzdG9wLiIKLSAgICAgICAgbV9k
ZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOwor
ICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZh
aWx1cmUuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjYyLDcgKzI2Miw3IEBA
IFJlZlB0cjxDb21tYW5kQnVmZmVyPiBDb21tYW5kRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdHUFVD
b21tYW5kQnVmZmVyRGVzY3JpcHRvciYKICAgICAvLyAiSWYgdmFsaWRhdGlvblN1Y2NlZWRlZCBp
cyBmYWxzZSwgdGhlbjoiCiAgICAgaWYgKHZhbGlkYXRpb25GYWlsZWQpIHsKICAgICAgICAgLy8g
IkdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvci4iCi0gICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0
ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZp
Y2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAK
ICAgICAgICAgLy8gRklYTUU6ICJSZXR1cm4gYSBuZXcgaW52YWxpZCBHUFVDb21tYW5kQnVmZmVy
LiIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9Db21wdXRlUGlwZWxpbmUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlw
ZWxpbmUubW0KaW5kZXggZWQ5YjhjZmY2NDE0MzAxMmU3N2IzZTIxZmM1ZTljYWIwNzU5MzY0Yy4u
ZTRhZDc3YWY5N2EzYzEzODkyMWI0N2QwMjY1OThiOGJjNzZkYTRhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbQpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgTVRMRnVu
Y3Rpb25Db25zdGFudFZhbHVlcyAqY3JlYXRlQ29uc3RhbnRWYWx1ZXModWludDMyX3QgY29uc3Rh
bnRDb3VudCwgYwogICAgIGF1dG8gY29uc3RhbnRWYWx1ZXMgPSBbTVRMRnVuY3Rpb25Db25zdGFu
dFZhbHVlcyBuZXddOwogICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb25zdGFudENvdW50
OyArK2kpIHsKICAgICAgICAgY29uc3QgYXV0byYgZW50cnkgPSBjb25zdGFudHNbaV07Ci0gICAg
ICAgIGF1dG8gbmFtZUl0ZXJhdG9yID0gZW50cnlQb2ludEluZm9ybWF0aW9uLnNwZWNpYWxpemF0
aW9uQ29uc3RhbnRJbmRpY2VzLmZpbmQoZW50cnkua2V5KTsKKyAgICAgICAgYXV0byBuYW1lSXRl
cmF0b3IgPSBlbnRyeVBvaW50SW5mb3JtYXRpb24uc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGlj
ZXMuZmluZChTdHJpbmcgeyBlbnRyeS5rZXkgfSk7CiAgICAgICAgIGlmIChuYW1lSXRlcmF0b3Ig
PT0gZW50cnlQb2ludEluZm9ybWF0aW9uLnNwZWNpYWxpemF0aW9uQ29uc3RhbnRJbmRpY2VzLmVu
ZCgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIGF1dG8gc3BlY2lhbGl6
YXRpb25Db25zdGFudEluZGV4ID0gbmFtZUl0ZXJhdG9yLT52YWx1ZTsKQEAgLTE1MCw3ICsxNTAs
NyBAQCBSZWZQdHI8Q29tcHV0ZVBpcGVsaW5lPiBEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGlu
ZShjb25zdCBXR1BVQ29tcHV0ZVBpcGVsaW5lRAogICAgIGNvbnN0IFBpcGVsaW5lTGF5b3V0JiBw
aXBlbGluZUxheW91dCA9IFdlYkdQVTo6ZnJvbUFQSShkZXNjcmlwdG9yLmxheW91dCk7CiAgICAg
YXV0byBsYWJlbCA9IGZyb21BUEkoZGVzY3JpcHRvci5sYWJlbCk7CiAKLSAgICBhdXRvIGxpYnJh
cnlDcmVhdGlvblJlc3VsdCA9IGNyZWF0ZUxpYnJhcnkobV9kZXZpY2UsIHNoYWRlck1vZHVsZSwg
cGlwZWxpbmVMYXlvdXQsIGRlc2NyaXB0b3IuY29tcHV0ZS5lbnRyeVBvaW50LCBsYWJlbCk7Cisg
ICAgYXV0byBsaWJyYXJ5Q3JlYXRpb25SZXN1bHQgPSBjcmVhdGVMaWJyYXJ5KG1fZGV2aWNlLCBz
aGFkZXJNb2R1bGUsIHBpcGVsaW5lTGF5b3V0LCBTdHJpbmcgeyBkZXNjcmlwdG9yLmNvbXB1dGUu
ZW50cnlQb2ludCB9LCBsYWJlbCk7CiAgICAgaWYgKCFsaWJyYXJ5Q3JlYXRpb25SZXN1bHQpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9RdWV1ZS5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCmluZGV4IGI3YmQ1N2Nm
NWE0MjZlYzI2ZTZmOWIxZTI5ZDk5ZmRlYWRmNzA1YzQuLjBkMWIzOWE4NGY2NDIzNTc5YTllYzAz
YjVhYTI0MWJkZTYzMWQ2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVl
Lm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCkBAIC0xMzEsNyArMTMxLDcg
QEAgdm9pZCBRdWV1ZTo6c3VibWl0KFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0
IENvbW1hbmRCdWZmZXI+PiYmIGNvbW1hbmQKICAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUgdW5zYXRpc2ZpZWQiCiAgICAgaWYgKCF2YWxpZGF0ZVN1Ym1pdCgp
KSB7CiAgICAgICAgIC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgot
ICAgICAgICBtX2RldmljZS5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFp
bHVyZS4iKTsKKyAgICAgICAgbV9kZXZpY2UuZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxp
ZGF0aW9uIGZhaWx1cmUuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L1NhbXBsZXIubW0KaW5kZXggMmY3ZjcyN2YxN2Q5NzNkMGE0OWNlMzRlZWZhYzcxMzg1NzMzNzZi
Ni4uODI3MzkwNDk5NGNiNzA5ZjA5NGUyNDU4Nzk5YWNlYzY3NzU4OWI3MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9TYW1wbGVyLm1tCkBAIC0xMzYsNyArMTM2LDcgQEAgUmVmUHRyPFNhbXBsZXI+IERldmljZTo6
Y3JlYXRlU2FtcGxlcihjb25zdCBXR1BVU2FtcGxlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiAg
ICAgLy8gIklmIHZhbGlkYXRpbmcgR1BVU2FtcGxlckRlc2NyaXB0b3IodGhpcywgZGVzY3JpcHRv
cikgcmV0dXJucyBmYWxzZToiCiAgICAgaWYgKCF2YWxpZGF0ZUNyZWF0ZVNhbXBsZXIoKnRoaXMs
IGRlc2NyaXB0b3IpKSB7CiAgICAgICAgIC8vICJHZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3Iu
IgotICAgICAgICBnZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4i
KTsKKyAgICAgICAgZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUu
Il9zKTsKIAogICAgICAgICAvLyAiQ3JlYXRlIGEgbmV3IGludmFsaWQgR1BVU2FtcGxlciBhbmQg
cmV0dXJuIHRoZSByZXN1bHQuIgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbSBiL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL1NoYWRlck1vZHVsZS5tbQppbmRleCBlMDA3NTVjZmI1NWI0YzY2YTg5MjdkZDNlNWUwMmVh
OTEwMTcwYzQ0Li42MDVlMzcyMzM2MTA1YWUwODcxMzdkYjYxNjQ2OTgxMTJiY2ZmODdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0KKysrIGIvU291cmNl
L1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1tCkBAIC04OCw5ICs4OCwxMCBAQCBzdGF0aWMg
UmVmUHRyPFNoYWRlck1vZHVsZT4gZWFybHlDb21waWxlU2hhZGVyTW9kdWxlKGlkPE1UTERldmlj
ZT4gZGV2aWNlLCBzdGQ6OgogICAgICAgICBjb25zdCBhdXRvJiBoaW50ID0gc3VwcGxpZWRIaW50
cy5oaW50c1tpXTsKICAgICAgICAgaWYgKGhpbnQubmV4dEluQ2hhaW4pCiAgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgaGludHMuYWRkKGhpbnQua2V5LCBXZWJHUFU6OmZyb21B
UEkoaGludC5oaW50LmxheW91dCkpOworICAgICAgICBTdHJpbmcgaGludEtleSB7IGhpbnQua2V5
IH07CisgICAgICAgIGhpbnRzLmFkZChoaW50S2V5LCBXZWJHUFU6OmZyb21BUEkoaGludC5oaW50
LmxheW91dCkpOwogICAgICAgICBhdXRvIGNvbnZlcnRlZFBpcGVsaW5lTGF5b3V0ID0gU2hhZGVy
TW9kdWxlOjpjb252ZXJ0UGlwZWxpbmVMYXlvdXQoV2ViR1BVOjpmcm9tQVBJKGhpbnQuaGludC5s
YXlvdXQpKTsKLSAgICAgICAgd2dzbEhpbnRzLmFkZChoaW50LmtleSwgV1RGTW92ZShjb252ZXJ0
ZWRQaXBlbGluZUxheW91dCkpOworICAgICAgICB3Z3NsSGludHMuYWRkKGhpbnRLZXksIFdURk1v
dmUoY29udmVydGVkUGlwZWxpbmVMYXlvdXQpKTsKICAgICB9CiAgICAgYXV0byBwcmVwYXJlUmVz
dWx0ID0gV0dTTDo6cHJlcGFyZShzdGQ6OmdldDxXR1NMOjpTdWNjZXNzZnVsQ2hlY2s+KGNoZWNr
UmVzdWx0KS5hc3QsIHdnc2xIaW50cyk7CiAgICAgYXV0byBsaWJyYXJ5ID0gU2hhZGVyTW9kdWxl
OjpjcmVhdGVMaWJyYXJ5KGRldmljZSwgcHJlcGFyZVJlc3VsdC5tc2wsIFdURk1vdmUobGFiZWwp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXgg
NDdlOWRjYTUwMGIxMDY0MDFlZGNiZGZjYmVhODIwYjM1YmU5NjU0Mi4uZmYzOGUxZjc2ODM3MDYz
MWZlNGFlYjExZDAwZDBhYzY3MGE5YTM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQ0NzgsNyArNDQ3OCw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKFdlYkNvcmU6OkltYWdlKiBpbWFnZSwgTlNTdHJp
bmcgKmZpbGVuCiAKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjdXN0b21EYXRhQnVmZmVyOwogICAg
IGlmIChvcmlnaW5JZGVudGlmaWVyLmxlbmd0aCkgewotICAgICAgICBbdHlwZXMgYWRkT2JqZWN0
OkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAg
IFt0eXBlcyBhZGRPYmplY3Q6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FU
eXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21E
YXRhIGN1c3RvbURhdGE7CiAgICAgICAgIGN1c3RvbURhdGEuc2V0T3JpZ2luKG9yaWdpbklkZW50
aWZpZXIpOwogICAgICAgICBjdXN0b21EYXRhQnVmZmVyID0gY3VzdG9tRGF0YS5jcmVhdGVTaGFy
ZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCk7CkBAIC00NDk3LDcgKzQ0OTcsNyBAQCBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAKICAgICBpZiAoY3VzdG9tRGF0YUJ1
ZmZlcikKLSAgICAgICAgW3Bhc3RlYm9hcmQgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgp
IGZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsK
KyAgICAgICAgW3Bhc3RlYm9hcmQgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZvclR5
cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVy
cygpKV07CiAKICAgICBtX3Byb21pc2VkSW1hZ2UgPSBpbWFnZTsKIH0KQEAgLTQ2MjQsNyArNDYy
NCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpE
T01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBhc3RlQWNjCiAgICAgQVNTRVJUKCFtX2RvbVBhc3RlUmVx
dWVzdEhhbmRsZXIpOwogICAgIGhpZGVET01QYXN0ZU1lbnVXaXRoUmVzdWx0KFdlYkNvcmU6OkRP
TVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmUpOwogCi0gICAgTlNEYXRhICpk
YXRhID0gW3Bhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSBk
YXRhRm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSld
OworICAgIE5TRGF0YSAqZGF0YSA9IFtwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkocGFzdGVB
Y2Nlc3NDYXRlZ29yeSkgZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0
YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgYXV0byBidWZmZXIgPSBXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKTsKICAgICBpZiAoV2ViQ29yZTo6UGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmZyb21TaGFyZWRCdWZmZXIoYnVmZmVyLmdldCgpKS5vcmlnaW4oKSA9PSBv
cmlnaW5JZGVudGlmaWVyKSB7CiAgICAgICAgIG1fcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQ
YXN0ZWJvYXJkRGF0YShwYXN0ZWJvYXJkTmFtZUZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNz
Q2F0ZWdvcnkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQppbmRl
eCBiZWU2YjkyMzgyY2FhZjNiNGY5ZjBlN2NlODJjMDFhNzY3MzMyODJjLi4yYTA1Y2Y0MDNkZWZj
M2I0NTA0ODkxOGE3ZTQ0ZDA5MDM5Yjg0ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxB
dXRoZW50aWNhdG9yLm1tCkBAIC00NDQsNyArNDQ0LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0
b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24oU2VjQWNjZXNz
Q28KICAgICAgICAgZGVsZXRlRHVwbGljYXRlQ3JlZGVudGlhbCgpOwogCiAgICAgICAgIGF1dG8g
YXV0aERhdGEgPSBidWlsZEF1dGhEYXRhKGNyZWF0aW9uT3B0aW9ucy5ycC5pZCwgZmxhZ3MsIGNv
dW50ZXIsIGJ1aWxkQXR0ZXN0ZWRDcmVkZW50aWFsRGF0YShWZWN0b3I8dWludDhfdD4oYWFndWlk
TGVuZ3RoLCAwKSwgY3JlZGVudGlhbElkLCBjb3NlUHVibGljS2V5KSk7Ci0gICAgICAgIGF1dG8g
YXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERh
dGEpLCAiIiwgeyB9LCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lKTsKKyAg
ICAgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RG
TW92ZShhdXRoRGF0YSksIFN0cmluZyB7IGVtcHR5U3RyaW5nKCkgfSwgeyB9LCBBdHRlc3RhdGlv
bkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lKTsKICAgICAgICAgcmVjZWl2ZVJlc3BvbmQoQXV0
aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVz
dGF0aW9uT2JqZWN0LCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0pKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3MSw3ICs0NzEsNyBAQCB2b2lkIExvY2FsQXV0aGVudGlj
YXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyQXR0ZXN0ZWQoVmVjdG9yPHVpbnQ4X3Q+
JiYgYwogCiAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgYXR0
ZXN0OiAlcyIsIFN0cmluZyhlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbikudXRmOCgpLmRhdGEo
KSk7Ci0gICAgICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2Jq
ZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiIiwgeyB9LCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVm
ZXJlbmNlOjpOb25lKTsKKyAgICAgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0
ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksIFN0cmluZyB7IGVtcHR5U3RyaW5nKCkg
fSwgeyB9LCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lKTsKICAgICAgICAg
cmVjZWl2ZVJlc3BvbmQoQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShj
cmVkZW50aWFsSWQsIGF0dGVzdGF0aW9uT2JqZWN0LCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6
UGxhdGZvcm0pKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ4OCw3ICs0ODgsNyBAQCB2
b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyQXR0ZXN0
ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgYwogICAgICAgICAgICAgY2JvckFycmF5LmFwcGVuZChjYm9y
OjpDQk9SVmFsdWUodmVjdG9yRnJvbU5TRGF0YSgoTlNEYXRhICopYWRvcHRDRihTZWNDZXJ0aWZp
Y2F0ZUNvcHlEYXRhKChfX2JyaWRnZSBTZWNDZXJ0aWZpY2F0ZVJlZiljZXJ0aWZpY2F0ZXNbaV0p
KS5nZXQoKSkpKTsKICAgICAgICAgYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXBbY2Jvcjo6Q0JPUlZh
bHVlKCJ4NWMiKV0gPSBjYm9yOjpDQk9SVmFsdWUoV1RGTW92ZShjYm9yQXJyYXkpKTsKICAgICB9
Ci0gICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RG
TW92ZShhdXRoRGF0YSksICJhcHBsZSIsIFdURk1vdmUoYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXAp
LCBjcmVhdGlvbk9wdGlvbnMuYXR0ZXN0YXRpb24pOworICAgIGF1dG8gYXR0ZXN0YXRpb25PYmpl
Y3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiYXBwbGUiX3Ms
IFdURk1vdmUoYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXApLCBjcmVhdGlvbk9wdGlvbnMuYXR0ZXN0
YXRpb24pOwogCiAgICAgZGVsZXRlRHVwbGljYXRlQ3JlZGVudGlhbCgpOwogICAgIHJlY2VpdmVS
ZXNwb25kKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUoY3JlZGVudGlh
bElkLCBhdHRlc3RhdGlvbk9iamVjdCwgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3Jt
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQppbmRleCBlYjdjNjkxZjljOTkwZjg0NzVmMDkwMjc0ZDliNmVlMjAx
YzM5MGIwLi45ZThiZjQ1YmFiNTEzYTUxMjEwNDlkMDUzMTEyMmU0NTYzZjBhNmYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KQEAgLTM5ODAsNyArMzk4MCw3IEBAIC0gKEJPT0wpY2FuUGVyZm9ybUFjdGlvbkZv
cldlYlZpZXc6KFNFTClhY3Rpb24gd2l0aFNlbmRlcjooaWQpc2VuZGVyCiAgICAgICAgIGlmIChm
b2N1c2VkRG9jdW1lbnRPcmlnaW4uaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIE5POwog
Ci0gICAgICAgIE5TQXJyYXkgKmFsbEN1c3RvbVBhc3RlYm9hcmREYXRhID0gW3Bhc3RlYm9hcmQg
ZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNv
Y29hVHlwZSgpKSBpbkl0ZW1TZXQ6aW5kaWNlc107CisgICAgICAgIE5TQXJyYXkgKmFsbEN1c3Rv
bVBhc3RlYm9hcmREYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoV2Vi
Q29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSkgaW5J
dGVtU2V0OmluZGljZXNdOwogICAgICAgICBmb3IgKE5TRGF0YSAqZGF0YSBpbiBhbGxDdXN0b21Q
YXN0ZWJvYXJkRGF0YSkgewogICAgICAgICAgICAgYXV0byBidWZmZXIgPSBXZWJDb3JlOjpTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShkYXRhKTsKICAgICAgICAgICAgIGlmIChXZWJDb3JlOjpQYXN0ZWJv
YXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcihidWZmZXIuZ2V0KCkpLm9yaWdpbigpID09
IGZvY3VzZWREb2N1bWVudE9yaWdpbikKQEAgLTY5NDUsNyArNjk0NSw3IEBAIHN0YXRpYyBCT09M
IGFsbFBhc3RlYm9hcmRJdGVtT3JpZ2luc01hdGNoT3JpZ2luKFVJUGFzdGVib2FyZCAqcGFzdGVi
b2FyZCwgY29uc3QKICAgICAgICAgcmV0dXJuIE5POwogCiAgICAgYXV0byAqaW5kaWNlcyA9IFtO
U0luZGV4U2V0IGluZGV4U2V0V2l0aEluZGV4ZXNJblJhbmdlOk5TTWFrZVJhbmdlKDAsIFtwYXN0
ZWJvYXJkIG51bWJlck9mSXRlbXNdKV07Ci0gICAgYXV0byAqYWxsQ3VzdG9tRGF0YSA9IFtwYXN0
ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21E
YXRhOjpjb2NvYVR5cGUoKSkgaW5JdGVtU2V0OmluZGljZXNdOworICAgIGF1dG8gKmFsbEN1c3Rv
bURhdGEgPSBbcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3JlOjpQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKSBpbkl0ZW1TZXQ6aW5k
aWNlc107CiAgICAgaWYgKCFhbGxDdXN0b21EYXRhLmNvdW50KQogICAgICAgICByZXR1cm4gTk87
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNQYXN0ZWJv
YXJkRXh0cmFzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9h
cmRFeHRyYXMubW0KaW5kZXggZTViNDQ0YmZhNWMyODcyODM4N2M3MjMzMjgyOTFhODIwM2QxYjI1
NC4uM2U1MmYxYmJhY2RiNTFiOGVhNTQ3N2M2YjBkOTliOTVjYmFkMGJjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0K
QEAgLTI3Niw3ICsyNzYsNyBAQCAtIChpZClfd2ViX2RlY2xhcmVBbmRXcml0ZURyYWdJbWFnZUZv
ckVsZW1lbnQ6KERPTUVsZW1lbnQgKillbGVtZW50CiAgICAgTlNTdHJpbmcgKm9yaWdpbklkZW50
aWZpZXIgPSBjb3JlKGVsZW1lbnQpLT5kb2N1bWVudCgpLm9yaWdpbklkZW50aWZpZXJGb3JQYXN0
ZWJvYXJkKCk7CiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY3VzdG9tRGF0YUJ1ZmZlcjsKICAgICBp
ZiAob3JpZ2luSWRlbnRpZmllci5sZW5ndGgpIHsKLSAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpA
KFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbdHlwZXMgYWRk
T2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSld
OwogICAgICAgICBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBjdXN0b21EYXRhOwogICAgICAgICBjdXN0
b21EYXRhLnNldE9yaWdpbihvcmlnaW5JZGVudGlmaWVyKTsKICAgICAgICAgY3VzdG9tRGF0YUJ1
ZmZlciA9IGN1c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpOwpA
QCAtMzA1LDcgKzMwNSw3IEBAIC0gKGlkKV93ZWJfZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9y
RWxlbWVudDooRE9NRWxlbWVudCAqKWVsZW1lbnQKIAogICAgIFtzZWxmIF93ZWJfd3JpdGVJbWFn
ZTpuaWwgZWxlbWVudDplbGVtZW50IFVSTDpVUkwgdGl0bGU6dGl0bGUgYXJjaGl2ZTphcmNoaXZl
IHR5cGVzOnR5cGVzLmdldCgpIHNvdXJjZTpzb3VyY2VdOwogICAgIGlmIChjdXN0b21EYXRhQnVm
ZmVyKQotICAgICAgICBbc2VsZiBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlw
ZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbc2VsZiBz
ZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21E
YXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIFtzZWxmIHNldFByb3BlcnR5
TGlzdDpAW2V4dGVuc2lvbl0gZm9yVHlwZTpsZWdhY3lGaWxlc1Byb21pc2VQYXN0ZWJvYXJkVHlw
ZSgpXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDg5NDAwMjk3ODI0NzdhM2VmMjYzMmU5MDhjNmVjOTY5YTc1MzY4NWUuLjJjMGUzZDQ5NTQ5
MTdkNDU0NzNjOTYxZGJiN2Y1ODlhN2U4MGEyOTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTY1LDYgKzY1LDIwIEBACiAKICAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW06CiAKKzIwMjItMDMtMjQg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJp
bmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9y
IGV4cGxpY2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzgzMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hh
ciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3Rv
ciBleHBsaWNpdCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIi
X3MKKyAgICAgICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbToKKyAg
ICAgICAgKFRFU1QpOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdXBkYXRlIG91dGRhdGVkIGNvbW1lbnQgYWZ0ZXIg
cjI5MTc4Ny4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdB
bmREcm9wVGVzdHNNYWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5k
RHJvcFRlc3RzTWFjLm1tCmluZGV4IDUyMTljOTRkZDM5ZGI0ODlmYjNhNDZhMTRkOGE5MzUxM2Qy
ODRlZmMuLjgxOGIwMGYzYjVmNjQ4ODc5ZTM1MzUxM2M1MzQzOWY3NGVkYmFlZTQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01hYy5t
bQpAQCAtMTgxLDcgKzE4MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ICAgIEVYUEVDVF9FUShpbWFnZUZyb21VbmlxdWVQYXN0ZWJvYXJkLlRJRkZSZXByZXNlbnRhdGlv
bi5sZW5ndGgsIGltYWdlRnJvbURyYWdQYXN0ZWJvYXJkLlRJRkZSZXByZXNlbnRhdGlvbi5sZW5n
dGgpOwogICAgIEVYUEVDVF9UUlVFKE5TRXF1YWxTaXplcyhpbWFnZUZyb21EcmFnUGFzdGVib2Fy
ZC5zaXplLCBpbWFnZUZyb21VbmlxdWVQYXN0ZWJvYXJkLnNpemUpKTsKICAgICBFWFBFQ1RfRkFM
U0UoTlNFcXVhbFNpemVzKE5TWmVyb1NpemUsIGltYWdlRnJvbVVuaXF1ZVBhc3RlYm9hcmQuc2l6
ZSkpOwotICAgIEVYUEVDVF9HVChbZHJhZ1Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6QChXZWJDb3Jl
OjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXS5sZW5ndGgsIDB1KTsKKyAgICBF
WFBFQ1RfR1QoW2RyYWdQYXN0ZWJvYXJkIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldLmxlbmd0aCwgMHUpOwogfQog
CiBURVNUKERyYWdBbmREcm9wVGVzdHMsIFByb3ZpZGVJbWFnZURhdGFBc1R5cGVJZGVudGlmaWVy
cykK
</data>

          </attachment>
      

    </bug>

</bugzilla>