<?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>154009</bug_id>
          
          <creation_ts>2016-02-08 14:18:11 -0800</creation_ts>
          <short_desc>GetValueFunc/PutValueFunc should not take both slotBase and thisValue</short_desc>
          <delta_ts>2016-02-10 07:41:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>154064</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1163018</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-08 14:18:11 -0800</bug_when>
    <thetext>In JavaScript there are two types of properties - regular value properties, and accessor properties. One difference between these is how they are reflected by getOwnPropertyDescriptor, and another is what object they operate on in the case of a prototype access. If you access a value property of a prototype object it return a value pertinent to the prototype, but in the case of a prototype object returning an accessor, then the accessor function is applied to the base object of the access.

JSC supports special &apos;custom&apos; properties implemented as a c++ callback, and these custom properties can be used to implement either value- or accessor-like behavior. getOwnPropertyDescriptor behavior is selected via the CustomAccessor attribute. Value- or accessor-like object selection is current supported by passing both the slotBase and the thisValue to the callback,and hoping it uses the right one. This is probably inefficient, bug-prone, and leads to crazy like JSBoundSlotBaseFunction.

Instead, just pass one thisValue to the callback functions, consistent with CustomAccessor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163152</commentid>
    <comment_count>1</comment_count>
      <attachid>270914</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-09 00:28:20 -0800</bug_when>
    <thetext>Created attachment 270914
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163153</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-09 00:29:39 -0800</bug_when>
    <thetext>Attachment 270914 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/CustomGetterSetter.h:73:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 59 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163154</commentid>
    <comment_count>3</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-09 00:32:28 -0800</bug_when>
    <thetext>As a follow up to this, more cleanup around JSBoundSlotBaseFunction/CustomGetter should be possible.

JSBoundSlotBaseFunction no longer needs to bind the slotBase (it&apos;s never used!), And we can probably merge these back with CustomGetters (reify of value/accessor properties always just creates a CustomGetter; lazily create a JSFunction derivate only if requested by getOwnPropertyDescriptor).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163155</commentid>
    <comment_count>4</comment_count>
      <attachid>270915</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-09 00:37:31 -0800</bug_when>
    <thetext>Created attachment 270915
With style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163244</commentid>
    <comment_count>5</comment_count>
      <attachid>270939</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-09 11:44:52 -0800</bug_when>
    <thetext>Created attachment 270939
Again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163258</commentid>
    <comment_count>6</comment_count>
      <attachid>270939</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-02-09 12:55:11 -0800</bug_when>
    <thetext>Comment on attachment 270939
Again

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163268</commentid>
    <comment_count>7</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2016-02-09 13:22:32 -0800</bug_when>
    <thetext>Fixed in r196331</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163445</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-02-10 04:41:40 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Fixed in r196331

It made ~180 JSC tests crash on ARMv7 Linux bots: bug154064

Do you think if it is a Linux specific bug or have you noticed
this regression on your internal iOS ARM JSC tester bots too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1163455</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-02-10 07:41:21 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Fixed in r196331
&gt; 
&gt; It made ~180 JSC tests crash on ARMv7 Linux bots: bug154064
&gt; 
&gt; Do you think if it is a Linux specific bug or have you noticed
&gt; this regression on your internal iOS ARM JSC tester bots too?

I found the bug and fixed it in bug154064. The problem is related to ARM EABI,
which says that 64 bits value should be aligned to even numbered register.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270914</attachid>
            <date>2016-02-09 00:28:20 -0800</date>
            <delta_ts>2016-02-09 00:37:31 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>154009.1.patch</filename>
            <type>text/plain</type>
            <size>287204</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzMSBA
QAorMjAxNi0wMi0wNyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+
CisKKyAgICAgICAgR2V0VmFsdWVGdW5jL1B1dFZhbHVlRnVuYyBzaG91bGQgbm90IHRha2UgYm90
aCBzbG90QmFzZSBhbmQgdGhpc1ZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTQwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJbiBKYXZhU2NyaXB0IHRoZXJlIGFyZSB0d28gdHlwZXMgb2YgcHJv
cGVydGllcyAtIHJlZ3VsYXIgdmFsdWUgcHJvcGVydGllcywgYW5kIGFjY2Vzc29yIHByb3BlcnRp
ZXMuCisgICAgICAgIE9uZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlc2UgaXMgaG93IHRoZXkgYXJl
IHJlZmxlY3RlZCBieSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsIGFuZCBhbm90aGVyIGlzCisg
ICAgICAgIHdoYXQgb2JqZWN0IHRoZXkgb3BlcmF0ZSBvbiBpbiB0aGUgY2FzZSBvZiBhIHByb3Rv
dHlwZSBhY2Nlc3MuIElmIHlvdSBhY2Nlc3MgYSB2YWx1ZSBwcm9wZXJ0eSBvZiBhCisgICAgICAg
IHByb3RvdHlwZSBvYmplY3QgaXQgcmV0dXJuIGEgdmFsdWUgcGVydGluZW50IHRvIHRoZSBwcm90
b3R5cGUsIGJ1dCBpbiB0aGUgY2FzZSBvZiBhIHByb3RvdHlwZSBvYmplY3QKKyAgICAgICAgcmV0
dXJuaW5nIGFuIGFjY2Vzc29yLCB0aGVuIHRoZSBhY2Nlc3NvciBmdW5jdGlvbiBpcyBhcHBsaWVk
IHRvIHRoZSBiYXNlIG9iamVjdCBvZiB0aGUgYWNjZXNzLgorCisgICAgICAgIEpTQyBzdXBwb3J0
cyBzcGVjaWFsICdjdXN0b20nIHByb3BlcnRpZXMgaW1wbGVtZW50ZWQgYXMgYSBjKysgY2FsbGJh
Y2ssIGFuZCB0aGVzZSBjdXN0b20gcHJvcGVydGllcworICAgICAgICBjYW4gYmUgdXNlZCB0byBp
bXBsZW1lbnQgZWl0aGVyIHZhbHVlLSBvciBhY2Nlc3Nvci1saWtlIGJlaGF2aW9yLiBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IgYmVoYXZpb3IKKyAgICAgICAgaXMgc2VsZWN0ZWQgdmlhIHRoZSBD
dXN0b21BY2Nlc3NvciBhdHRyaWJ1dGUuIFZhbHVlLSBvciBhY2Nlc3Nvci1saWtlIG9iamVjdCBz
ZWxlY3Rpb24gaXMgY3VycmVudAorICAgICAgICBzdXBwb3J0ZWQgYnkgcGFzc2luZyBib3RoIHRo
ZSBzbG90QmFzZSBhbmQgdGhlIHRoaXNWYWx1ZSB0byB0aGUgY2FsbGJhY2ssYW5kIGhvcGluZyBp
dCB1c2VzIHRoZQorICAgICAgICByaWdodCBvbmUuIFRoaXMgaXMgcHJvYmFibHkgaW5lZmZpY2ll
bnQsIGJ1Zy1wcm9uZSwgYW5kIGxlYWRzIHRvIGNyYXp5IGxpa2UgSlNCb3VuZFNsb3RCYXNlRnVu
Y3Rpb24uCisKKyAgICAgICAgSW5zdGVhZCwganVzdCBwYXNzIG9uZSB0aGlzVmFsdWUgdG8gdGhl
IGNhbGxiYWNrIGZ1bmN0aW9ucywgY29uc2lzdGVudCB3aXRoIEN1c3RvbUFjY2Vzc29yLgorCisg
ICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFj
a09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmdldFN0YXRpY1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmpl
Y3Q8UGFyZW50Pjo6Y2FsbGJhY2tHZXR0ZXIpOgorICAgICAgICAgICAgLSBNZXJnZWQgc2xvdEJh
c2UgJiB0aGlzVmFsdWUgdG8gY3VzdG9tIHByb3BlcnR5IGNhbGxiYWNrcy4KKyAgICAgICAgKiBi
eXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6
OmdlbmVyYXRlKToKKyAgICAgICAgICAgIC0gTW9kaWZpZWQgdGhlIGNhbGwgYmVpbmcgSklUIGdl
bmVyYXRlZCDigJPCoEdldFZhbHVlRnVuYy9QdXRWYWx1ZUZ1bmMgbm93IG9ubHkgdGFrZSAzLAor
ICAgICAgICAgICAgICByYXRoZXIgdGhhbiA0IGFyZ3VtZW50cy4gU2VsZWN0cyB3aGljaCBvbmUg
dG8ga2VlcC9kcm9wIGJhc2VkIG9uIGFjY2VzcyB0eXBlLgorICAgICAgICAoV1RGOjpwcmludElu
dGVybmFsKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oOgorICAgICAg
ICAoSlNDOjpBY2Nlc3NDYXNlOjppc0dldCk6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6Omlz
UHV0KToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6aXNJbik6CisgICAgICAgIChKU0M6OkFj
Y2Vzc0Nhc2U6OmRvZXNDYWxscyk6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmlzR2V0dGVy
KToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6
UHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKToKKyAgICAgICAgKiBqaXQvUmVwYXRj
aC5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OnRy
eUNhY2hlUHV0QnlJRCk6CisgICAgICAgICAgICAtIFNwbGl0IHRoZSBDdXN0b21HZXR0ZXIvU2V0
dGVyIGFjY2VzcyB0eXBlcyBpbnRvIFZhbHVlL0FjY2Vzc29yIHZhcmlhbnRzLgorICAgICAgICAq
IGpzYy5jcHA6CisgICAgICAgIChXVEY6OkN1c3RvbUdldHRlcjo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKFdURjo6Q3VzdG9tR2V0dGVyOjpjdXN0b21HZXR0ZXIpOgorICAgICAgICAo
V1RGOjpSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheSk6CisgICAgICAgIChXVEY6OlJ1bnRpbWVB
cnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgICAgIC0gTWVyZ2VkIHNsb3RCYXNlICYgdGhp
c1ZhbHVlIHRvIGN1c3RvbSBwcm9wZXJ0eSBjYWxsYmFja3MuCisgICAgICAgICogcnVudGltZS9D
dXN0b21HZXR0ZXJTZXR0ZXIuY3BwOgorICAgICAgICAoSlNDOjpjYWxsQ3VzdG9tU2V0dGVyKToK
KyAgICAgICAgICAgIC0gUGFzcyAzIGFyZ3VtZW50cyB3aGVuIGNhbGxpbmcgUHV0VmFsdWVGdW5j
LgorICAgICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmg6CisgICAgICAgICogcnVu
dGltZS9KU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmJvdW5kU2xv
dEJhc2VGdW5jdGlvbkNhbGwpOgorICAgICAgICAoSlNDOjpKU0JvdW5kU2xvdEJhc2VGdW5jdGlv
bjo6SlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1
ZS5jcHA6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnB1dFRvUHJpbWl0aXZlKToKKyAgICAgICAg
ICAgIC0gY2FsbEN1c3RvbVNldHRlciBjdXJyZW50bHkgdGFrZXMgYSBmbGFnIHRvIGRpc3Rpbmd1
aXNoIHZhbHVlL2FjY2Vzc29yIGNhbGxzLgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OnJldHJpZXZlQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6SlNG
dW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKToKKyAgICAgICAgKEpTQzo6cmV0cmlldmVDYWxsZXJG
dW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmNhbGxlckdldHRlcik6CisgICAg
ICAgIChKU0M6OkpTRnVuY3Rpb246Omxlbmd0aEdldHRlcik6CisgICAgICAgIChKU0M6OkpTRnVu
Y3Rpb246Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU01vZHVsZU5hbWVzcGFjZU9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgIChKU0M6
OmNhbGxiYWNrR2V0dGVyKToKKyAgICAgICAgICAgIC0gTWVyZ2VkIHNsb3RCYXNlICYgdGhpc1Zh
bHVlIHRvIGN1c3RvbSBwcm9wZXJ0eSBjYWxsYmFja3MuCisgICAgICAgICogcnVudGltZS9KU09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRJbmxpbmVTbG93KToKKyAgICAg
ICAgICAgIC0gY2FsbEN1c3RvbVNldHRlciBjdXJyZW50bHkgdGFrZXMgYSBmbGFnIHRvIGRpc3Rp
bmd1aXNoIHZhbHVlL2FjY2Vzc29yIGNhbGxzLgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6
CisgICAgICAgIChKU0M6OnB1dEVudHJ5KToKKyAgICAgICAgICAgIC0gc3BsaXQgUHV0UHJvcGVy
dHlTbG90IHNldEN1c3RvbSBpbnRvIFZhbHVlL0FjY2Vzc29yIHZhcmlhbnRzLgorICAgICAgICAq
IHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90Ojpm
dW5jdGlvbkdldHRlcik6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6Y3VzdG9tR2V0dGVy
KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5oOgorICAgICAgICAoSlNDOjpQcm9w
ZXJ0eVNsb3Q6OlByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6Z2V0
VmFsdWUpOgorICAgICAgICAgICAgLSBhZGRlZCBjdXN0b21HZXR0ZXIgaGVscGVyIHRvIGNhbGwg
R2V0VmFsdWVGdW5jLgorICAgICAgICAqIHJ1bnRpbWUvUHV0UHJvcGVydHlTbG90Lmg6CisgICAg
ICAgIChKU0M6OlB1dFByb3BlcnR5U2xvdDo6UHV0UHJvcGVydHlTbG90KToKKyAgICAgICAgKEpT
Qzo6UHV0UHJvcGVydHlTbG90OjpzZXROZXdQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OlB1dFBy
b3BlcnR5U2xvdDo6c2V0Q3VzdG9tVmFsdWUpOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNs
b3Q6OnNldEN1c3RvbUFjY2Vzc29yKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90Ojpz
ZXRUaGlzVmFsdWUpOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6OmN1c3RvbVNldHRl
cik6CisgICAgICAgIChKU0M6OlB1dFByb3BlcnR5U2xvdDo6Y29udGV4dCk6CisgICAgICAgIChK
U0M6OlB1dFByb3BlcnR5U2xvdDo6aXNTdHJpY3RNb2RlKToKKyAgICAgICAgKEpTQzo6UHV0UHJv
cGVydHlTbG90Ojppc0NhY2hlYWJsZVB1dCk6CisgICAgICAgIChKU0M6OlB1dFByb3BlcnR5U2xv
dDo6aXNDYWNoZWFibGVTZXR0ZXIpOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6Omlz
Q2FjaGVhYmxlQ3VzdG9tKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90Ojppc0N1c3Rv
bUFjY2Vzc29yKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90Ojppc0luaXRpYWxpemF0
aW9uKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90OjpjYWNoZWRPZmZzZXQpOgorICAg
ICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6OnNldEN1c3RvbVByb3BlcnR5KTogRGVsZXRlZC4K
KyAgICAgICAgICAgIC0gc3BsaXQgUHV0UHJvcGVydHlTbG90IHNldEN1c3RvbSBpbnRvIFZhbHVl
L0FjY2Vzc29yIHZhcmlhbnRzLgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKToKKyAgICAgICAgKEpT
Qzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIzKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0KToK
KyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KToKKyAgICAgICAgKEpTQzo6
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI3KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KToKKyAg
ICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5KToKKyAgICAgICAgKEpTQzo6cmVn
RXhwQ29uc3RydWN0b3JJbnB1dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTXVs
dGlsaW5lKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbik6CisgICAgICAgIChKU0M6OnJl
Z0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1
Y3RvclJpZ2h0Q29udGV4dCk6CisgICAgICAgIChKU0M6OnNldFJlZ0V4cENvbnN0cnVjdG9ySW5w
dXQpOgorICAgICAgICAoSlNDOjpzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSk6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmpl
Y3Q6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6cmVnRXhwT2JqZWN0U2V0TGFz
dEluZGV4U3RyaWN0KToKKyAgICAgICAgKEpTQzo6cmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4Tm9u
U3RyaWN0KToKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpwdXQpOgorICAgICAgICAgICAg
LSBNZXJnZWQgc2xvdEJhc2UgJiB0aGlzVmFsdWUgdG8gY3VzdG9tIHByb3BlcnR5IGNhbGxiYWNr
cy4KKwogMjAxNi0wMi0wNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIEZUTCBtdXN0IHN0b3JlIHRoZSBjYWxsIHNpdGUgaW5kZXggYmVmb3JlIHJ1bnRpbWUgY2Fs
bHMsIGV2ZW4gaWYgaXQncyB0aGUgdGFpbCBjYWxsIHNsb3cgcGF0aApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDksNyArMzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAg
ICBDdXN0b21HZXR0ZXIqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEN1c3RvbUdldHRlcio+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQpA
QCAtNDU0LDcgKzQ1NCw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAgIFJ1bnRpbWVBcnJheSogdGhpc09i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZUFycmF5Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAkocmV2aXNpb24gMTk2MjM4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTIxMSw4ICsyMTEsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdChFeGVjU3RhdGUqKTsKICAgIAogICAgIEpTVmFsdWUgZ2V0
U3RhdGljVmFsdWUoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2Fs
bGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIGNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tPYmplY3REYXRh
PiBtX2NhbGxiYWNrT2JqZWN0RGF0YTsKIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAkocmV2aXNpb24gMTk2
MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rp
b25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwMCw5ICs2MDAsOSBAQCBKU1ZhbHVlIEpTQ2FsbGJh
Y2tPYmplY3Q8UGFyZW50Pjo6Z2V0U3RhCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RQYXJlbnQsIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09i
amVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICBK
U0NhbGxiYWNrT2JqZWN0KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdChzbG90UGFyZW50KTsK
KyAgICBKU0NhbGxiYWNrT2JqZWN0KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdCh0aGlzVmFs
dWUpOwogICAgIAogICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHku
CiAgICAgUHJvcGVydHlTbG90IHNsb3QyKHRoaXNPYmopOwpAQCAtNjI4LDkgKzYyOCw5IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50PjoKIH0KIAogdGVtcGxhdGUgPGNs
YXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2Fs
bGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdFBhcmVudCwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU0Nh
bGxiYWNrT2JqZWN0PFBhcmVudD46OmNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewotICAg
IEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHNsb3RQYXJlbnQp
OworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHRoaXNW
YWx1ZSk7CiAgICAgCiAgICAgSlNPYmplY3RSZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXNPYmopOwog
ICAgIFJlZlB0cjxPcGFxdWVKU1N0cmluZz4gcHJvcGVydHlOYW1lUmVmOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3Bw
CShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9s
eW1vcnBoaWNBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjMsOCArNTIzLDEwIEBAIHZv
aWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGUoQWNjZXNzR2VuZXJhdGkKICAgICBjYXNlIExvYWQ6CiAg
ICAgY2FzZSBHZXR0ZXI6CiAgICAgY2FzZSBTZXR0ZXI6Ci0gICAgY2FzZSBDdXN0b21HZXR0ZXI6
Ci0gICAgY2FzZSBDdXN0b21TZXR0ZXI6IHsKKyAgICBjYXNlIEN1c3RvbVZhbHVlR2V0dGVyOgor
ICAgIGNhc2UgQ3VzdG9tQWNjZXNzb3JHZXR0ZXI6CisgICAgY2FzZSBDdXN0b21WYWx1ZVNldHRl
cjoKKyAgICBjYXNlIEN1c3RvbUFjY2Vzc29yU2V0dGVyOiB7CiAgICAgICAgIGlmIChpc1ZhbGlk
T2Zmc2V0KG1fb2Zmc2V0KSkgewogICAgICAgICAgICAgU3RydWN0dXJlKiBjdXJyU3RydWN0dXJl
OwogICAgICAgICAgICAgaWYgKG1fY29uZGl0aW9uU2V0LmlzRW1wdHkoKSkKQEAgLTU1Myw3ICs1
NTUsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlKEFjY2Vzc0dlbmVyYXRpCiAgICAgICAg
ICAgICBiYXNlRm9yQWNjZXNzR1BSID0gYmFzZUZvckdldEdQUjsKIAogICAgICAgICBHUFJSZWcg
bG9hZGVkVmFsdWVHUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgICAgICBpZiAobV90eXBlICE9IEN1
c3RvbUdldHRlciAmJiBtX3R5cGUgIT0gQ3VzdG9tU2V0dGVyKSB7CisgICAgICAgIGlmIChtX3R5
cGUgIT0gQ3VzdG9tVmFsdWVHZXR0ZXIgJiYgbV90eXBlICE9IEN1c3RvbUFjY2Vzc29yR2V0dGVy
ICYmIG1fdHlwZSAhPSBDdXN0b21WYWx1ZVNldHRlciAmJiBtX3R5cGUgIT0gQ3VzdG9tQWNjZXNz
b3JTZXR0ZXIpIHsKICAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gTG9hZCkKICAgICAgICAgICAg
ICAgICBsb2FkZWRWYWx1ZUdQUiA9IHZhbHVlUmVncy5wYXlsb2FkR1BSKCk7CiAgICAgICAgICAg
ICBlbHNlCkBAIC03NTAsMjQgKzc1MiwyNiBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlKEFj
Y2Vzc0dlbmVyYXRpCiAgICAgICAgICAgICBpZiAobmVlZHNUb01ha2VSb29tT25TdGFja0ZvckND
YWxsKQogICAgICAgICAgICAgICAgIGppdC5tYWtlU3BhY2VPblN0YWNrRm9yQ0NhbGwoKTsKIAot
ICAgICAgICAgICAgLy8gZ2V0dGVyOiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhl
Y1N0YXRlKiwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSk7Ci0gICAgICAgICAgICAvLyBzZXR0ZXI6IHZvaWQgKCpQdXRWYWx1ZUZ1bmMp
KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB2YWx1ZSk7CisgICAgICAgICAgICAvLyBnZXR0ZXI6IEVuY29kZWRKU1Zh
bHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSk7CisgICAgICAgICAgICAvLyBzZXR0ZXI6IHZvaWQgKCpQdXRWYWx1ZUZ1
bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHZhbHVlKTsKKyAgICAgICAgICAgIC8vIEN1c3RvbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aGUgc2xv
dEJhc2UgKHRoZSBwcm9wZXJ0eSBob2xkZXIpLCBjdXN0b20gYWNjZXNzb3JzIGFyZSBwYXNzZWQg
dGhlIHRoaXNWYXVsZSAocmVjaWV2ZXIpLgorICAgICAgICAgICAgR1BSUmVnIGJhc2VGb3JDdXN0
b21WYWx1ZSA9IG1fdHlwZSA9PSBDdXN0b21WYWx1ZUdldHRlciB8fCBtX3R5cGUgPT0gQ3VzdG9t
VmFsdWVTZXR0ZXIgPyBiYXNlRm9yQWNjZXNzR1BSIDogYmFzZUZvckdldEdQUjsKICNpZiBVU0Uo
SlNWQUxVRTY0KQotICAgICAgICAgICAgaWYgKG1fdHlwZSA9PSBDdXN0b21HZXR0ZXIpIHsKKyAg
ICAgICAgICAgIGlmIChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1
c3RvbUFjY2Vzc29yR2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKLSAgICAgICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUiwgYmFz
ZUZvckdldEdQUiwKKyAgICAgICAgICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAogICAg
ICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgp
KSk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGJhc2VGb3JBY2Nlc3NHUFIsIGJhc2VGb3JHZXRHUFIsIHZhbHVlUmVn
cy5ncHIoKSk7CisgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShiYXNlRm9yQ3VzdG9tVmFsdWUsIHZhbHVlUmVncy5ncHIoKSk7CiAjZWxzZQotICAgICAgICAg
ICAgaWYgKG1fdHlwZSA9PSBDdXN0b21HZXR0ZXIpIHsKKyAgICAgICAgICAgIGlmIChtX3R5cGUg
PT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1c3RvbUFjY2Vzc29yR2V0dGVyKSB7
CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKLSAgICAg
ICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUiwgYmFzZUZvckdldEdQUiwKKyAgICAgICAg
ICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAogICAgICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKICAgICAgICAgICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSkpOwogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKAotICAgICAgICAgICAgICAgICAgICBiYXNlRm9yQWNjZXNzR1BSLCBiYXNlRm9yR2V0
R1BSLAorICAgICAgICAgICAgICAgICAgICBiYXNlRm9yQ3VzdG9tVmFsdWUsCiAgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAog
ICAgICAgICAgICAgICAgICAgICB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCB2YWx1ZVJlZ3MudGFn
R1BSKCkpOwogICAgICAgICAgICAgfQpAQCAtNzc1LDcgKzc3OSw3IEBAIHZvaWQgQWNjZXNzQ2Fz
ZTo6Z2VuZXJhdGUoQWNjZXNzR2VuZXJhdGkKICAgICAgICAgICAgIGppdC5zdG9yZVB0cihHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgJnZtLnRvcENhbGxGcmFtZSk7CiAKICAgICAgICAgICAg
IG9wZXJhdGlvbkNhbGwgPSBqaXQuY2FsbCgpOwotICAgICAgICAgICAgaWYgKG1fdHlwZSA9PSBD
dXN0b21HZXR0ZXIpCisgICAgICAgICAgICBpZiAobV90eXBlID09IEN1c3RvbVZhbHVlR2V0dGVy
IHx8IG1fdHlwZSA9PSBDdXN0b21BY2Nlc3NvckdldHRlcikKICAgICAgICAgICAgICAgICBqaXQu
c2V0dXBSZXN1bHRzKHZhbHVlUmVncyk7CiAgICAgICAgICAgICBpZiAobmVlZHNUb01ha2VSb29t
T25TdGFja0ZvckNDYWxsKQogICAgICAgICAgICAgICAgIGppdC5yZWNsYWltU3BhY2VPblN0YWNr
Rm9yQ0NhbGwoKTsKQEAgLTE0MTgsMTEgKzE0MjIsMTcgQEAgdm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiBvdXQsIEFjYwogICAgIGNhc2UgQWNjZXNzQ2FzZTo6U2V0dGVyOgogICAgICAg
ICBvdXQucHJpbnQoIlNldHRlciIpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBBY2Nlc3ND
YXNlOjpDdXN0b21HZXR0ZXI6Ci0gICAgICAgIG91dC5wcmludCgiQ3VzdG9tR2V0dGVyIik7Cisg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21WYWx1ZUdldHRlcjoKKyAgICAgICAgb3V0LnByaW50
KCJDdXN0b21WYWx1ZUdldHRlciIpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBBY2Nlc3ND
YXNlOjpDdXN0b21TZXR0ZXI6Ci0gICAgICAgIG91dC5wcmludCgiQ3VzdG9tU2V0dGVyIik7Cisg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3NvckdldHRlcjoKKyAgICAgICAgb3V0LnBy
aW50KCJDdXN0b21BY2Nlc3NvckdldHRlciIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBB
Y2Nlc3NDYXNlOjpDdXN0b21WYWx1ZVNldHRlcjoKKyAgICAgICAgb3V0LnByaW50KCJDdXN0b21W
YWx1ZVNldHRlciIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0
b21BY2Nlc3NvclNldHRlcjoKKyAgICAgICAgb3V0LnByaW50KCJDdXN0b21BY2Nlc3NvclNldHRl
ciIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBY2Nlc3NDYXNlOjpJbnRyaW5zaWNHZXR0
ZXI6CiAgICAgICAgIG91dC5wcmludCgiSW50cmluc2ljR2V0dGVyIik7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAkocmV2
aXNpb24gMTk2MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDggKzU4LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgTWlzcywKICAgICAgICAgR2V0dGVyLAogICAgICAgICBTZXR0ZXIsCi0gICAgICAgIEN1
c3RvbUdldHRlciwKLSAgICAgICAgQ3VzdG9tU2V0dGVyLAorICAgICAgICBDdXN0b21WYWx1ZUdl
dHRlciwKKyAgICAgICAgQ3VzdG9tQWNjZXNzb3JHZXR0ZXIsCisgICAgICAgIEN1c3RvbVZhbHVl
U2V0dGVyLAorICAgICAgICBDdXN0b21BY2Nlc3NvclNldHRlciwKICAgICAgICAgSW50cmluc2lj
R2V0dGVyLAogICAgICAgICBJbkhpdCwKICAgICAgICAgSW5NaXNzLApAQCAtNzMsMTQgKzc1LDE2
IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBUcmFuc2l0aW9uOgogICAgICAgICBjYXNlIFJlcGxh
Y2U6CiAgICAgICAgIGNhc2UgU2V0dGVyOgotICAgICAgICBjYXNlIEN1c3RvbVNldHRlcjoKKyAg
ICAgICAgY2FzZSBDdXN0b21WYWx1ZVNldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21BY2Nlc3Nv
clNldHRlcjoKICAgICAgICAgY2FzZSBJbkhpdDoKICAgICAgICAgY2FzZSBJbk1pc3M6CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgTG9hZDoKICAgICAgICAgY2FzZSBN
aXNzOgogICAgICAgICBjYXNlIEdldHRlcjoKLSAgICAgICAgY2FzZSBDdXN0b21HZXR0ZXI6Cisg
ICAgICAgIGNhc2UgQ3VzdG9tVmFsdWVHZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tQWNjZXNz
b3JHZXR0ZXI6CiAgICAgICAgIGNhc2UgSW50cmluc2ljR2V0dGVyOgogICAgICAgICBjYXNlIEFy
cmF5TGVuZ3RoOgogICAgICAgICBjYXNlIFN0cmluZ0xlbmd0aDoKQEAgLTk0LDcgKzk4LDggQEAg
cHVibGljOgogICAgICAgICBjYXNlIExvYWQ6CiAgICAgICAgIGNhc2UgTWlzczoKICAgICAgICAg
Y2FzZSBHZXR0ZXI6Ci0gICAgICAgIGNhc2UgQ3VzdG9tR2V0dGVyOgorICAgICAgICBjYXNlIEN1
c3RvbVZhbHVlR2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yR2V0dGVyOgogICAg
ICAgICBjYXNlIEludHJpbnNpY0dldHRlcjoKICAgICAgICAgY2FzZSBJbkhpdDoKICAgICAgICAg
Y2FzZSBJbk1pc3M6CkBAIC0xMDQsNyArMTA5LDggQEAgcHVibGljOgogICAgICAgICBjYXNlIFRy
YW5zaXRpb246CiAgICAgICAgIGNhc2UgUmVwbGFjZToKICAgICAgICAgY2FzZSBTZXR0ZXI6Ci0g
ICAgICAgIGNhc2UgQ3VzdG9tU2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbVZhbHVlU2V0dGVy
OgorICAgICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yU2V0dGVyOgogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTUsMTIgKzEyMSwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIGNhc2UgTG9hZDoKICAgICAgICAgY2FzZSBNaXNzOgogICAgICAgICBjYXNlIEdldHRl
cjoKLSAgICAgICAgY2FzZSBDdXN0b21HZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tVmFsdWVH
ZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tQWNjZXNzb3JHZXR0ZXI6CiAgICAgICAgIGNhc2Ug
SW50cmluc2ljR2V0dGVyOgogICAgICAgICBjYXNlIFRyYW5zaXRpb246CiAgICAgICAgIGNhc2Ug
UmVwbGFjZToKICAgICAgICAgY2FzZSBTZXR0ZXI6Ci0gICAgICAgIGNhc2UgQ3VzdG9tU2V0dGVy
OgorICAgICAgICBjYXNlIEN1c3RvbVZhbHVlU2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbUFj
Y2Vzc29yU2V0dGVyOgogICAgICAgICBjYXNlIEFycmF5TGVuZ3RoOgogICAgICAgICBjYXNlIFN0
cmluZ0xlbmd0aDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIwOCw4ICsyMTYsMTAg
QEAgcHVibGljOgogICAgICAgICBzd2l0Y2ggKHR5cGUoKSkgewogICAgICAgICBjYXNlIEdldHRl
cjoKICAgICAgICAgY2FzZSBTZXR0ZXI6Ci0gICAgICAgIGNhc2UgQ3VzdG9tR2V0dGVyOgotICAg
ICAgICBjYXNlIEN1c3RvbVNldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21WYWx1ZUdldHRlcjoK
KyAgICAgICAgY2FzZSBDdXN0b21BY2Nlc3NvckdldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21W
YWx1ZVNldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21BY2Nlc3NvclNldHRlcjoKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMjIwLDcgKzIzMCw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgR2V0dGVyOgotICAgICAgICBjYXNlIEN1c3RvbUdldHRl
cjoKKyAgICAgICAgY2FzZSBDdXN0b21WYWx1ZUdldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21B
Y2Nlc3NvckdldHRlcjoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzgsNyArMjM4LDggQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yUwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21TZXR0ZXI6Cisg
ICAgICAgICAgICBjYXNlIEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlU2V0dGVyOgorICAgICAgICAg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3NvclNldHRlcjoKICAgICAgICAgICAgICAg
ICByZXR1cm4gUHV0QnlJZFN0YXR1cyhNYWtlc0NhbGxzKTsKIAogICAgICAgICAgICAgZGVmYXVs
dDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTk2
MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAzLDggKzMwMywxMCBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2Fj
aGVHZXRCeUlECiAgICAgICAgICAgICAgICAgdHlwZSA9IEFjY2Vzc0Nhc2U6Ok1pc3M7CiAgICAg
ICAgICAgICBlbHNlIGlmIChzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkpCiAgICAgICAgICAgICAg
ICAgdHlwZSA9IEFjY2Vzc0Nhc2U6OkdldHRlcjsKKyAgICAgICAgICAgIGVsc2UgaWYgKHNsb3Qu
YXR0cmlidXRlcygpICYgQ3VzdG9tQWNjZXNzb3IpCisgICAgICAgICAgICAgICAgdHlwZSA9IEFj
Y2Vzc0Nhc2U6OkN1c3RvbUFjY2Vzc29yR2V0dGVyOwogICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHR5cGUgPSBBY2Nlc3NDYXNlOjpDdXN0b21HZXR0ZXI7CisgICAgICAgICAgICAg
ICAgdHlwZSA9IEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlR2V0dGVyOwogCiAgICAgICAgICAgICBu
ZXdDYXNlID0gQWNjZXNzQ2FzZTo6Z2V0KAogICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ss
IHR5cGUsIG9mZnNldCwgc3RydWN0dXJlLCBjb25kaXRpb25TZXQsIGxvYWRUYXJnZXRGcm9tUHJv
eHksCkBAIC00MzQsNyArNDM2LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hl
UHV0QnlJRAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2Fz
ZTo6c2V0dGVyKAotICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIEFjY2Vzc0Nhc2U6OkN1
c3RvbVNldHRlciwgc3RydWN0dXJlLCBpbnZhbGlkT2Zmc2V0LCBjb25kaXRpb25TZXQsCisgICAg
ICAgICAgICAgICAgdm0sIGNvZGVCbG9jaywgc2xvdC5pc0N1c3RvbUFjY2Vzc29yKCkgPyBBY2Nl
c3NDYXNlOjpDdXN0b21BY2Nlc3NvclNldHRlciA6IEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlU2V0
dGVyLCBzdHJ1Y3R1cmUsIGludmFsaWRPZmZzZXQsIGNvbmRpdGlvblNldCwKICAgICAgICAgICAg
ICAgICBzbG90LmN1c3RvbVNldHRlcigpLCBzbG90LmJhc2UoKSk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjb25kaXRpb25TZXQ7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRl
clNldHRlci5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0N1c3RvbUdldHRlclNldHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJDdXN0b21HZXR0ZXJTZXR0ZXIuaCIKIAogI2luY2x1ZGUgIkpTQ0pT
VmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJTbG90Vmlz
aXRvcklubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCkBAIC0zNiwxMiAr
MzcsMTQgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKAogCiBjb25z
dCBDbGFzc0luZm8gQ3VzdG9tR2V0dGVyU2V0dGVyOjpzX2luZm8gPSB7ICJDdXN0b21HZXR0ZXJT
ZXR0ZXIiLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEN1c3RvbUdldHRlclNldHRlcikgfTsK
IAotdm9pZCBjYWxsQ3VzdG9tU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBjdXN0b21H
ZXR0ZXJTZXR0ZXIsIEpTT2JqZWN0KiBiYXNlLCBKU1ZhbHVlIHRoaXNWYWx1ZSwgSlNWYWx1ZSB2
YWx1ZSkKK3ZvaWQgY2FsbEN1c3RvbVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgY3Vz
dG9tR2V0dGVyU2V0dGVyLCBib29sIGlzQWNjZXNzb3IsIEpTT2JqZWN0KiBiYXNlLCBKU1ZhbHVl
IHRoaXNWYWx1ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OkN1
c3RvbVNldHRlciBzZXR0ZXIgPSBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oY3VzdG9tR2V0
dGVyU2V0dGVyKS0+c2V0dGVyKCk7CiAgICAgaWYgKCFzZXR0ZXIpCiAgICAgICAgIHJldHVybjsK
LSAgICBzZXR0ZXIoZXhlYywgYmFzZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSksIEpTVmFs
dWU6OmVuY29kZSh2YWx1ZSkpOworICAgIGlmICghaXNBY2Nlc3NvcikKKyAgICAgICAgdGhpc1Zh
bHVlID0gYmFzZTsKKyAgICBzZXR0ZXIoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSks
IEpTVmFsdWU6OmVuY29kZSh2YWx1ZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRl
ci5oCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
dXN0b21HZXR0ZXJTZXR0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQCBwcml2
YXRlOgogICAgIEN1c3RvbVNldHRlciBtX3NldHRlcjsKIH07CiAKLUpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgY2FsbEN1c3RvbVNldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIGN1c3RvbUdldHRlclNl
dHRlciwgSlNPYmplY3QqIGJhc2UsIEpTVmFsdWUgdGhpc1ZhbHVlLCBKU1ZhbHVlIHZhbHVlKTsK
K0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgY2FsbEN1c3RvbVNldHRlcihFeGVjU3RhdGUqLCBKU1Zh
bHVlIGN1c3RvbUdldHRlclNldHRlciwgYm9vbCBpc0FjY2Vzc29yLCBKU09iamVjdCogYmFzZSwg
SlNWYWx1ZSB0aGlzVmFsdWUsIEpTVmFsdWUgdmFsdWUpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNlRnVu
Y3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Qm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgYm91
bmRTbG90QmEKICAgICBDdXN0b21HZXR0ZXJTZXR0ZXIqIGN1c3RvbUdldHRlclNldHRlciA9IGJv
dW5kU2xvdEJhc2VGdW5jdGlvbi0+Y3VzdG9tR2V0dGVyU2V0dGVyKCk7CiAKICAgICBpZiAoYm91
bmRTbG90QmFzZUZ1bmN0aW9uLT5pc1NldHRlcigpKSB7Ci0gICAgICAgIGNhbGxDdXN0b21TZXR0
ZXIoZXhlYywgY3VzdG9tR2V0dGVyU2V0dGVyLCBiYXNlT2JqZWN0LCBleGVjLT50aGlzVmFsdWUo
KSwgZXhlYy0+YXJndW1lbnQoMCkpOworICAgICAgICBjYWxsQ3VzdG9tU2V0dGVyKGV4ZWMsIGN1
c3RvbUdldHRlclNldHRlciwgdHJ1ZSwgYmFzZU9iamVjdCwgZXhlYy0+dGhpc1ZhbHVlKCksIGV4
ZWMtPmFyZ3VtZW50KDApKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKICAgICB9CiAKQEAgLTUxLDcgKzUxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBib3VuZFNsb3RCYQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogCiAgICAgY29uc3QgU3RyaW5nJiBuYW1lID0gYm91bmRTbG90QmFzZUZ1bmN0
aW9uLT5uYW1lKGV4ZWMpOwotICAgIHJldHVybiBnZXR0ZXIoZXhlYywgYmFzZU9iamVjdCwgSlNW
YWx1ZTo6ZW5jb2RlKGV4ZWMtPnRoaXNWYWx1ZSgpKSwgUHJvcGVydHlOYW1lKElkZW50aWZpZXI6
OmZyb21TdHJpbmcoZXhlYywgbmFtZSkpKTsKKyAgICByZXR1cm4gZ2V0dGVyKGV4ZWMsIEpTVmFs
dWU6OmVuY29kZShleGVjLT50aGlzVmFsdWUoKSksIFByb3BlcnR5TmFtZShJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsIG5hbWUpKSk7CiB9CiAKIEpTQm91bmRTbG90QmFzZUZ1bmN0aW9uOjpK
U0JvdW5kU2xvdEJhc2VGdW5jdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBUeXBlIHR5cGUpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmNwcAkocmV2aXNpb24gMTk2MjM4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIEpTVmFsdWU6OnB1dFRvUHJpbWl0aXZl
KEV4ZWNTdGF0ZSogCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChncy5pc0N1c3Rv
bUdldHRlclNldHRlcigpKSB7Ci0gICAgICAgICAgICAgICAgY2FsbEN1c3RvbVNldHRlcihleGVj
LCBncywgb2JqLCBzbG90LnRoaXNWYWx1ZSgpLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgY2Fs
bEN1c3RvbVNldHRlcihleGVjLCBncywgYXR0cmlidXRlcyAmIEN1c3RvbUFjY2Vzc29yLCBvYmos
IHNsb3QudGhpc1ZhbHVlKCksIHZhbHVlKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVu
Y3Rpb24uY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0Z1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY5LDkgKzI2OSw5IEBAIHN0
YXRpYyBKU1ZhbHVlIHJldHJpZXZlQXJndW1lbnRzKEV4ZWNTdGEKICAgICByZXR1cm4gZnVuY3Rv
ci5yZXN1bHQoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6YXJndW1lbnRzR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7Ci0gICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oc2xvdEJh
c2UpOworICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0
aW9uKCkpOwogCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXRyaWV2ZUFyZ3VtZW50cyhl
eGVjLCB0aGlzT2JqKSk7CkBAIC0zMjQsOSArMzI0LDkgQEAgc3RhdGljIEpTVmFsdWUgcmV0cmll
dmVDYWxsZXJGdW5jdGlvbihFeAogICAgIHJldHVybiBmdW5jdG9yLnJlc3VsdCgpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBKU0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0Z1bmN0aW9uKiB0aGlz
T2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihzbG90QmFzZSk7CisgICAgSlNGdW5jdGlvbiogdGhp
c09iaiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIEFTU0VSVCghdGhpc09iai0+aXNIb3N0RnVuY3Rpb24oKSk7CiAgICAgSlNWYWx1ZSBjYWxs
ZXIgPSByZXRyaWV2ZUNhbGxlckZ1bmN0aW9uKGV4ZWMsIHRoaXNPYmopOwogCkBAIC0zNDMsMTYg
KzM0MywxNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpjYWxsZXJHZXR0ZXIoCiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZSh0aHJvd1R5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwo
IkZ1bmN0aW9uLmNhbGxlciB1c2VkIHRvIHJldHJpZXZlIHN0cmljdCBjYWxsZXIiKSkpOwogfQog
Ci1FbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSlNGdW5jdGlvbjo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBq
c0Nhc3Q8SlNGdW5jdGlvbio+KHNsb3RCYXNlKTsKKyAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0g
anNDYXN0PEpTRnVuY3Rpb24qPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNT
RVJUKCF0aGlzT2JqLT5pc0hvc3RGdW5jdGlvbigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGpzTnVtYmVyKHRoaXNPYmotPmpzRXhlY3V0YWJsZSgpLT5wYXJhbWV0ZXJDb3VudCgpKSk7
CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwg
SlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgSlNGdW5jdGlvbjo6bmFtZUdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0g
anNDYXN0PEpTRnVuY3Rpb24qPihzbG90QmFzZSk7CisgICAgSlNGdW5jdGlvbiogdGhpc09iaiA9
IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIEFT
U0VSVCghdGhpc09iai0+aXNIb3N0RnVuY3Rpb24oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0aGlzT2JqLT5qc0V4ZWN1dGFibGUoKS0+bmFtZVZhbHVlKCkpOwogfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAkocmV2aXNpb24gMTk2MjM4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNGdW5jdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xODksMTAgKzE4OSwxMCBAQCBwcml2YXRlOgogICAgIAogICAgIGZyaWVuZCBj
bGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
YXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNhbGxlckdldHRlcihFeGVj
U3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
bmFtZUdldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBhcmd1bWVudHNHZXR0ZXIoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRK
U1ZhbHVlIGNhbGxlckdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBuYW1lR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwog
CiAgICAgV3JpdGVCYXJyaWVyPEV4ZWN1dGFibGVCYXNlPiBtX2V4ZWN1dGFibGU7CiAgICAgV3Jp
dGVCYXJyaWVyPEZ1bmN0aW9uUmFyZURhdGE+IG1fcmFyZURhdGE7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZU5hbWVzcGFjZU9iamVjdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmpl
Y3QuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU01vZHVsZU5hbWVzcGFjZU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1
LDcgQEAgdm9pZCBKU01vZHVsZU5hbWVzcGFjZU9iamVjdDo6dmlzaXRDaGlsZAogICAgIHZpc2l0
b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX21vZHVsZVJlY29yZCk7CiB9CiAKLXN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIGNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIEpTTW9k
dWxlTmFtZXNwYWNlT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTTW9kdWxlTmFtZXNwYWNl
T2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIEpTTW9kdWxlUmVjb3Jk
KiBtb2R1bGVSZWNvcmQgPSB0aGlzT2JqZWN0LT5tb2R1bGVSZWNvcmQoKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlzaW9uIDE5NjIzOCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDAwLDggKzQwMCwxMSBAQCB2b2lkIEpTT2JqZWN0OjpwdXRJbmxpbmVTbG93KEV4
ZWNTdGF0ZSogCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgaWYgKGdzLmlzQ3VzdG9tR2V0dGVyU2V0dGVyKCkpIHsKLSAgICAgICAgICAgICAgICBj
YWxsQ3VzdG9tU2V0dGVyKGV4ZWMsIGdzLCBvYmosIHNsb3QudGhpc1ZhbHVlKCksIHZhbHVlKTsK
LSAgICAgICAgICAgICAgICBzbG90LnNldEN1c3RvbVByb3BlcnR5KG9iaiwganNDYXN0PEN1c3Rv
bUdldHRlclNldHRlcio+KGdzLmFzQ2VsbCgpKS0+c2V0dGVyKCkpOworICAgICAgICAgICAgICAg
IGNhbGxDdXN0b21TZXR0ZXIoZXhlYywgZ3MsIGF0dHJpYnV0ZXMgJiBDdXN0b21BY2Nlc3Nvciwg
b2JqLCBzbG90LnRoaXNWYWx1ZSgpLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGF0dHJp
YnV0ZXMgJiBDdXN0b21BY2Nlc3NvcikKKyAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0
b21BY2Nlc3NvcihvYmosIGpzQ2FzdDxDdXN0b21HZXR0ZXJTZXR0ZXIqPihncy5hc0NlbGwoKSkt
PnNldHRlcigpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNs
b3Quc2V0Q3VzdG9tVmFsdWUob2JqLCBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oZ3MuYXND
ZWxsKCkpLT5zZXR0ZXIoKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgQVNTRVJUKCEoYXR0cmlidXRlcyAmIEFjY2Vzc29yKSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAkocmV2aXNpb24gMTk2MjM4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3Niw4ICsyNzYsMTIgQEAgaW5saW5lIHZvaWQgcHV0RW50cnkoRXhlY1N0YXRlKiBleGVjLCBj
bwogICAgICAgICBpZiAoc2xvdC5pc1N0cmljdE1vZGUoKSkKICAgICAgICAgICAgIHRocm93VHlw
ZUVycm9yKGV4ZWMsIFN0cmljdE1vZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcik7CiAgICAg
fSBlbHNlIGlmICghKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBSZWFkT25seSkpIHsKLSAgICAgICAg
ZW50cnktPnByb3BlcnR5UHV0dGVyKCkoZXhlYywgYmFzZSwgSlNWYWx1ZTo6ZW5jb2RlKHNsb3Qu
dGhpc1ZhbHVlKCkpLCBKU1ZhbHVlOjplbmNvZGUodmFsdWUpKTsKLSAgICAgICAgc2xvdC5zZXRD
dXN0b21Qcm9wZXJ0eShiYXNlLCBlbnRyeS0+cHJvcGVydHlQdXR0ZXIoKSk7CisgICAgICAgIEpT
VmFsdWUgdGhpc1ZhbHVlID0gZW50cnktPmF0dHJpYnV0ZXMoKSAmIEN1c3RvbUFjY2Vzc29yID8g
c2xvdC50aGlzVmFsdWUoKSA6IEpTVmFsdWUoYmFzZSk7CisgICAgICAgIGVudHJ5LT5wcm9wZXJ0
eVB1dHRlcigpKGV4ZWMsIEpTVmFsdWU6OmVuY29kZSh0aGlzVmFsdWUpLCBKU1ZhbHVlOjplbmNv
ZGUodmFsdWUpKTsKKyAgICAgICAgaWYgKGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBDdXN0b21BY2Nl
c3NvcikKKyAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tQWNjZXNzb3IoYmFzZSwgZW50cnktPnBy
b3BlcnR5UHV0dGVyKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzbG90LnNldEN1c3Rv
bVZhbHVlKGJhc2UsIGVudHJ5LT5wcm9wZXJ0eVB1dHRlcigpKTsKICAgICB9IGVsc2UgaWYgKHNs
b3QuaXNTdHJpY3RNb2RlKCkpCiAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIFN0cmljdE1v
ZGVSZWFkb25seVByb3BlcnR5V3JpdGVFcnJvcik7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2lu
Y2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKQEAgLTMyLDQgKzMzLDEwIEBAIEpTVmFsdWUgUHJvcGVydHlTbG90Ojpm
dW5jdGlvbkdldHRlcihFeGUKICAgICByZXR1cm4gY2FsbEdldHRlcihleGVjLCBtX3RoaXNWYWx1
ZSwgbV9kYXRhLmdldHRlci5nZXR0ZXJTZXR0ZXIpOwogfQogCitKU1ZhbHVlIFByb3BlcnR5U2xv
dDo6Y3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSkgY29uc3QKK3sKKyAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IG1fYXR0cmlidXRlcyAmIEN1c3Rv
bUFjY2Vzc29yID8gbV90aGlzVmFsdWUgOiBKU1ZhbHVlKHNsb3RCYXNlKCkpOworICAgIHJldHVy
biBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbS5nZXRWYWx1ZShleGVjLCBKU1ZhbHVlOjpl
bmNvZGUodGhpc1ZhbHVlKSwgcHJvcGVydHlOYW1lKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIEpT
QwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgJ
KHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5U2xvdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICB7
CiAgICAgfQogCi0gICAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhl
Y1N0YXRlKiwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSk7CisgICAgdHlwZWRlZiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYyko
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwogCiAg
ICAgSlNWYWx1ZSBnZXRWYWx1ZShFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWUpIGNvbnN0OwogICAg
IEpTVmFsdWUgZ2V0VmFsdWUoRXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25z
dDsKQEAgLTI0OSw2ICsyNDksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgSlNWYWx1ZSBmdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqKSBjb25zdDsKKyAgICBK
U19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIGN1c3RvbUdldHRlcihFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWUpIGNvbnN0OwogCiAgICAgdW5zaWduZWQgbV9hdHRyaWJ1dGVzOwogICAgIHVuaW9uIHsK
QEAgLTI3NSw3ICsyNzYsNyBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgUHJvcGVydHlTbG90Ojpn
ZXRWCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLnZhbHVlKTsKICAgICBp
ZiAobV9wcm9wZXJ0eVR5cGUgPT0gVHlwZUdldHRlcikKICAgICAgICAgcmV0dXJuIGZ1bmN0aW9u
R2V0dGVyKGV4ZWMpOwotICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbS5n
ZXRWYWx1ZShleGVjLCBzbG90QmFzZSgpLCBKU1ZhbHVlOjplbmNvZGUobV90aGlzVmFsdWUpLCBw
cm9wZXJ0eU5hbWUpKTsKKyAgICByZXR1cm4gY3VzdG9tR2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFt
ZSk7CiB9CiAKIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmdldFZhbHVlKEV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lKSBjb25zdApAQCAtMjg0LDcgKzI4
NSw3IEBAIEFMV0FZU19JTkxJTkUgSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmdldFYKICAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmRlY29kZShtX2RhdGEudmFsdWUpOwogICAgIGlmIChtX3Byb3BlcnR5
VHlwZSA9PSBUeXBlR2V0dGVyKQogICAgICAgICByZXR1cm4gZnVuY3Rpb25HZXR0ZXIoZXhlYyk7
Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZShtX2RhdGEuY3VzdG9tLmdldFZhbHVlKGV4ZWMs
IHNsb3RCYXNlKCksIEpTVmFsdWU6OmVuY29kZShtX3RoaXNWYWx1ZSksIElkZW50aWZpZXI6OmZy
b20oZXhlYywgcHJvcGVydHlOYW1lKSkpOworICAgIHJldHVybiBjdXN0b21HZXR0ZXIoZXhlYywg
SWRlbnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdXRQcm9wZXJ0eVNs
b3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9QdXRQcm9w
ZXJ0eVNsb3QuaAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHV0UHJvcGVydHlTbG90LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDkgKzM4LDkgQEAg
Y2xhc3MgSlNGdW5jdGlvbjsKICAgICAKIGNsYXNzIFB1dFByb3BlcnR5U2xvdCB7CiBwdWJsaWM6
Ci0gICAgZW51bSBUeXBlIHsgVW5jYWNoYWJsZSwgRXhpc3RpbmdQcm9wZXJ0eSwgTmV3UHJvcGVy
dHksIFNldHRlclByb3BlcnR5LCBDdXN0b21Qcm9wZXJ0eSB9OworICAgIGVudW0gVHlwZSB7IFVu
Y2FjaGFibGUsIEV4aXN0aW5nUHJvcGVydHksIE5ld1Byb3BlcnR5LCBTZXR0ZXJQcm9wZXJ0eSwg
Q3VzdG9tVmFsdWUsIEN1c3RvbUFjY2Vzc29yIH07CiAgICAgZW51bSBDb250ZXh0IHsgVW5rbm93
bkNvbnRleHQsIFB1dEJ5SWQsIFB1dEJ5SWRFdmFsIH07Ci0gICAgdHlwZWRlZiB2b2lkICgqUHV0
VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBKU09iamVjdCogYmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c09iamVjdCwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpOworICAgIHR5cGVkZWYgdm9pZCAoKlB1dFZh
bHVlRnVuYykoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc09iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdmFsdWUpOwogCiAgICAgUHV0UHJvcGVydHlTbG90KEpTVmFsdWUgdGhpc1ZhbHVlLCBi
b29sIGlzU3RyaWN0TW9kZSA9IGZhbHNlLCBDb250ZXh0IGNvbnRleHQgPSBVbmtub3duQ29udGV4
dCwgYm9vbCBpc0luaXRpYWxpemF0aW9uID0gZmFsc2UpCiAgICAgICAgIDogbV90eXBlKFVuY2Fj
aGFibGUpCkBAIC02OCw5ICs2OCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIG1fb2Zmc2V0ID0gb2Zm
c2V0OwogICAgIH0KIAotICAgIHZvaWQgc2V0Q3VzdG9tUHJvcGVydHkoSlNPYmplY3QqIGJhc2Us
IFB1dFZhbHVlRnVuYyBmdW5jdGlvbikKKyAgICB2b2lkIHNldEN1c3RvbVZhbHVlKEpTT2JqZWN0
KiBiYXNlLCBQdXRWYWx1ZUZ1bmMgZnVuY3Rpb24pCiAgICAgewotICAgICAgICBtX3R5cGUgPSBD
dXN0b21Qcm9wZXJ0eTsKKyAgICAgICAgbV90eXBlID0gQ3VzdG9tVmFsdWU7CisgICAgICAgIG1f
YmFzZSA9IGJhc2U7CisgICAgICAgIG1fcHV0RnVuY3Rpb24gPSBmdW5jdGlvbjsKKyAgICB9CisK
KyAgICB2b2lkIHNldEN1c3RvbUFjY2Vzc29yKEpTT2JqZWN0KiBiYXNlLCBQdXRWYWx1ZUZ1bmMg
ZnVuY3Rpb24pCisgICAgeworICAgICAgICBtX3R5cGUgPSBDdXN0b21BY2Nlc3NvcjsKICAgICAg
ICAgbV9iYXNlID0gYmFzZTsKICAgICAgICAgbV9wdXRGdW5jdGlvbiA9IGZ1bmN0aW9uOwogICAg
IH0KQEAgLTg3LDcgKzk0LDExIEBAIHB1YmxpYzoKICAgICAgICAgbV90aGlzVmFsdWUgPSB0aGlz
VmFsdWU7CiAgICAgfQogCi0gICAgUHV0VmFsdWVGdW5jIGN1c3RvbVNldHRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fcHV0RnVuY3Rpb247IH0KKyAgICBQdXRWYWx1ZUZ1bmMgY3VzdG9tU2V0dGVyKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChpc0NhY2hlYWJsZUN1c3RvbSgpKTsKKyAgICAg
ICAgcmV0dXJuIG1fcHV0RnVuY3Rpb247CisgICAgfQogCiAgICAgQ29udGV4dCBjb250ZXh0KCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Q29udGV4dD4obV9jb250ZXh0KTsgfQogCkBAIC05
OCw3ICsxMDksOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1N0cmljdE1vZGUoKSBjb25zdCB7IHJl
dHVybiBtX2lzU3RyaWN0TW9kZTsgfQogICAgIGJvb2wgaXNDYWNoZWFibGVQdXQoKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gTmV3UHJvcGVydHkgfHwgbV90eXBlID09IEV4aXN0aW5nUHJvcGVy
dHk7IH0KICAgICBib29sIGlzQ2FjaGVhYmxlU2V0dGVyKCkgY29uc3QgeyByZXR1cm4gbV90eXBl
ID09IFNldHRlclByb3BlcnR5OyB9Ci0gICAgYm9vbCBpc0NhY2hlYWJsZUN1c3RvbSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZSA9PSBDdXN0b21Qcm9wZXJ0eTsgfQorICAgIGJvb2wgaXNDYWNoZWFi
bGVDdXN0b20oKSBjb25zdCB7IHJldHVybiBtX3R5cGUgPT0gQ3VzdG9tVmFsdWUgfHwgbV90eXBl
ID09IEN1c3RvbUFjY2Vzc29yOyB9CisgICAgYm9vbCBpc0N1c3RvbUFjY2Vzc29yKCkgY29uc3Qg
eyByZXR1cm4gbV90eXBlID09IEN1c3RvbUFjY2Vzc29yOyB9CiAgICAgYm9vbCBpc0luaXRpYWxp
emF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9pc0luaXRpYWxpemF0aW9uOyB9CiAKICAgICBQcm9w
ZXJ0eU9mZnNldCBjYWNoZWRPZmZzZXQoKSBjb25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTk2
MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwyNCArMzEsMjQgQEAKIAogbmFtZXNwYWNlIEpTQyB7
CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvcklucHV0KEV4ZWNTdGF0
ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgSlNPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yTGFzdFBhcmVuKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JM
ZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmlnaHRDb250
ZXh0KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKEV4ZWNTdGF0
ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXI0KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1
KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1z
dGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KEV4ZWNTdGF0ZSos
IEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI3KEV4ZWNTdGF0ZSosIEpTT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI4KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI5KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckxhc3RNYXRjaChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0
YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yUmln
aHRDb250ZXh0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjgoRXhl
Y1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwogCi1zdGF0aWMgdm9pZCBzZXRSZWdFeHBDb25zdHJ1Y3RvcklucHV0
KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsK
LXN0YXRpYyB2b2lkIHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEpT
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlKTsKK3N0YXRpYyB2b2lkIHNl
dFJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlKTsKK3N0YXRpYyB2b2lkIHNldFJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CiAKIH0gLy8gbmFtZXNw
YWNlIEpTQwogCkBAIC0xNTksOTAgKzE1OSw5MCBAQCBib29sIFJlZ0V4cENvbnN0cnVjdG9yOjpn
ZXRPd25Qcm9wZXJ0eVNsCiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxSZWdFeHBDb25z
dHJ1Y3RvciwgSW50ZXJuYWxGdW5jdGlvbj4oZXhlYywgcmVnRXhwQ29uc3RydWN0b3JUYWJsZSwg
anNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KICAgICAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUqIGV4
ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2ty
ZWYoZXhlYywgMSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1
Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywgMSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjIoRXhlY1N0YXRlKiBleGVjLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4
ZWMsIDIpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Io
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDIpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIzKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCAz
KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0QmFja3JlZihleGVjLCAzKSk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNChFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhlYywgNCkpOwor
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywgNCkpOwogfQogCi1FbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjUoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFz
UmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDUpKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDUpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXI2KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4
cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCA2KSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKS0+Z2V0QmFja3JlZihleGVjLCA2KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25z
dHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhlYywgNykpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSktPmdldEJhY2tyZWYoZXhlYywgNykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3RvckRvbGxhcjgoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckRvbGxhcjgoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0
b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5n
ZXRCYWNrcmVmKGV4ZWMsIDgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI5KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xs
YXI5KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNs
b3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCA5KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0QmFj
a3JlZihleGVjLCA5KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5w
dXQoRXhlY1N0YXRlKiwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5pbnB1dCgpKTsK
KyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpLT5pbnB1dCgpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oYXNSZWdFeHBD
b25zdHJ1Y3RvcihzbG90QmFzZSktPm11bHRpbGluZSgpKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc0Jvb2xlYW4oYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSktPm11bHRpbGluZSgpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9yTGFzdE1hdGNoKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3Ry
dWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDApKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
LT5nZXRCYWNrcmVmKGV4ZWMsIDApKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckxhc3RQYXJlbihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1
Y3RvcihzbG90QmFzZSktPmdldExhc3RQYXJlbihleGVjKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+
Z2V0TGFzdFBhcmVuKGV4ZWMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0
b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9y
TGVmdENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3Ry
dWN0b3Ioc2xvdEJhc2UpLT5nZXRMZWZ0Q29udGV4dChleGVjKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KS0+Z2V0TGVmdENvbnRleHQoZXhlYykpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3RvclJpZ2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9yUmlnaHRDb250ZXh0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4
cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0UmlnaHRDb250ZXh0KGV4ZWMpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpLT5nZXRSaWdodENvbnRleHQoZXhlYykpOwogfQogCi12b2lkIHNldFJlZ0V4cENv
bnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5j
b2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQordm9pZCBzZXRSZWdFeHBDb25zdHJ1
Y3RvcklucHV0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byBjb25zdHJ1Y3RvciA9IGpzRHluYW1p
Y0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihiYXNlT2JqZWN0KSkKKyAgICBpZiAoYXV0byBjb25z
dHJ1Y3RvciA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSkpCiAgICAgICAgIGNvbnN0cnVjdG9yLT5zZXRJbnB1dChleGVjLCBKU1Zh
bHVlOjpkZWNvZGUodmFsdWUpLnRvU3RyaW5nKGV4ZWMpKTsKIH0KIAotdm9pZCBzZXRSZWdFeHBD
b25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCit2b2lkIHNldFJlZ0V4cENv
bnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBpZiAoYXV0byBjb25zdHJ1Y3RvciA9
IGpzRHluYW1pY0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihiYXNlT2JqZWN0KSkKKyAgICBpZiAo
YXV0byBjb25zdHJ1Y3RvciA9IGpzRHluYW1pY0Nhc3Q8UmVnRXhwQ29uc3RydWN0b3IqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkpCiAgICAgICAgIGNvbnN0cnVjdG9yLT5zZXRNdWx0aWxp
bmUoSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKS50b0Jvb2xlYW4oZXhlYykpOwogfQogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5jcHAJKHJldmlz
aW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNywyMSArMTM3LDIxIEBAIGJvb2wgUmVnRXhwT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShKU08KICAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJv
cGVydHkob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93
KTsKIH0KIAotc3RhdGljIHZvaWQgcmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4U3RyaWN0KEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgdmFsdWUpCitzdGF0aWMgdm9pZCByZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhTdHJpY3Qo
RXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IHZhbHVlKQogewotICAgIGFzUmVnRXhwT2JqZWN0KHNsb3RCYXNlKS0+c2V0TGFzdEluZGV4KGV4
ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSksIHRydWUpOworICAgIGFzUmVnRXhwT2JqZWN0KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+c2V0TGFzdEluZGV4KGV4ZWMsIEpTVmFsdWU6OmRl
Y29kZSh2YWx1ZSksIHRydWUpOwogfQogCi1zdGF0aWMgdm9pZCByZWdFeHBPYmplY3RTZXRMYXN0
SW5kZXhOb25TdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyB2b2lkIHJlZ0V4cE9iamVj
dFNldExhc3RJbmRleE5vblN0cmljdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgYXNSZWdFeHBPYmplY3Qoc2xv
dEJhc2UpLT5zZXRMYXN0SW5kZXgoZXhlYywgSlNWYWx1ZTo6ZGVjb2RlKHZhbHVlKSwgZmFsc2Up
OworICAgIGFzUmVnRXhwT2JqZWN0KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+c2V0TGFz
dEluZGV4KGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSksIGZhbHNlKTsKIH0KIAogdm9pZCBS
ZWdFeHBPYmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gZXhlYy0+cHJvcGVydHlOYW1lcygpLmxhc3RJbmRl
eCkgewogICAgICAgICBhc1JlZ0V4cE9iamVjdChjZWxsKS0+c2V0TGFzdEluZGV4KGV4ZWMsIHZh
bHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKLSAgICAgICAgc2xvdC5zZXRDdXN0b21Qcm9wZXJ0
eShhc1JlZ0V4cE9iamVjdChjZWxsKSwgc2xvdC5pc1N0cmljdE1vZGUoKQorICAgICAgICBzbG90
LnNldEN1c3RvbVZhbHVlKGFzUmVnRXhwT2JqZWN0KGNlbGwpLCBzbG90LmlzU3RyaWN0TW9kZSgp
CiAgICAgICAgICAgICA/IHJlZ0V4cE9iamVjdFNldExhc3RJbmRleFN0cmljdAogICAgICAgICAg
ICAgOiByZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhOb25TdHJpY3QpOwogICAgICAgICByZXR1cm47
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2MSBAQAorMjAxNi0wMi0wNyAgR2F2aW4g
QmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CisKKyAgICAgICAgR2V0VmFsdWVG
dW5jL1B1dFZhbHVlRnVuYyBzaG91bGQgbm90IHRha2UgYm90aCBzbG90QmFzZSBhbmQgdGhpc1Zh
bHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQw
MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBK
YXZhU2NyaXB0IHRoZXJlIGFyZSB0d28gdHlwZXMgb2YgcHJvcGVydGllcyAtIHJlZ3VsYXIgdmFs
dWUgcHJvcGVydGllcywgYW5kIGFjY2Vzc29yIHByb3BlcnRpZXMuCisgICAgICAgIE9uZSBkaWZm
ZXJlbmNlIGJldHdlZW4gdGhlc2UgaXMgaG93IHRoZXkgYXJlIHJlZmxlY3RlZCBieSBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IsIGFuZCBhbm90aGVyIGlzCisgICAgICAgIHdoYXQgb2JqZWN0IHRo
ZXkgb3BlcmF0ZSBvbiBpbiB0aGUgY2FzZSBvZiBhIHByb3RvdHlwZSBhY2Nlc3MuIElmIHlvdSBh
Y2Nlc3MgYSB2YWx1ZSBwcm9wZXJ0eSBvZiBhCisgICAgICAgIHByb3RvdHlwZSBvYmplY3QgaXQg
cmV0dXJuIGEgdmFsdWUgcGVydGluZW50IHRvIHRoZSBwcm90b3R5cGUsIGJ1dCBpbiB0aGUgY2Fz
ZSBvZiBhIHByb3RvdHlwZSBvYmplY3QKKyAgICAgICAgcmV0dXJuaW5nIGFuIGFjY2Vzc29yLCB0
aGVuIHRoZSBhY2Nlc3NvciBmdW5jdGlvbiBpcyBhcHBsaWVkIHRvIHRoZSBiYXNlIG9iamVjdCBv
ZiB0aGUgYWNjZXNzLgorCisgICAgICAgIEpTQyBzdXBwb3J0cyBzcGVjaWFsICdjdXN0b20nIHBy
b3BlcnRpZXMgaW1wbGVtZW50ZWQgYXMgYSBjKysgY2FsbGJhY2ssIGFuZCB0aGVzZSBjdXN0b20g
cHJvcGVydGllcworICAgICAgICBjYW4gYmUgdXNlZCB0byBpbXBsZW1lbnQgZWl0aGVyIHZhbHVl
LSBvciBhY2Nlc3Nvci1saWtlIGJlaGF2aW9yLiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IgYmVo
YXZpb3IKKyAgICAgICAgaXMgc2VsZWN0ZWQgdmlhIHRoZSBDdXN0b21BY2Nlc3NvciBhdHRyaWJ1
dGUuIFZhbHVlLSBvciBhY2Nlc3Nvci1saWtlIG9iamVjdCBzZWxlY3Rpb24gaXMgY3VycmVudAor
ICAgICAgICBzdXBwb3J0ZWQgYnkgcGFzc2luZyBib3RoIHRoZSBzbG90QmFzZSBhbmQgdGhlIHRo
aXNWYWx1ZSB0byB0aGUgY2FsbGJhY2ssYW5kIGhvcGluZyBpdCB1c2VzIHRoZQorICAgICAgICBy
aWdodCBvbmUuIFRoaXMgaXMgcHJvYmFibHkgaW5lZmZpY2llbnQsIGJ1Zy1wcm9uZSwgYW5kIGxl
YWRzIHRvIGNyYXp5IGxpa2UgSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uCisKKyAgICAgICAgSW5z
dGVhZCwganVzdCBwYXNzIG9uZSB0aGlzVmFsdWUgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9ucywg
Y29uc2lzdGVudCB3aXRoIEN1c3RvbUFjY2Vzc29yLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByaW50RXJyb3JNZXNzYWdlRm9y
RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6b2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
Ojpwcm9wZXJ0eU5hbWVUb1N0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpnZXRTdGF0aWNWYWx1
ZVNsb3RFbnRyeVdpdGhvdXRDYWNoaW5nPEpTRE9NT2JqZWN0Pik6CisgICAgICAgIChXZWJDb3Jl
Ojpub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93Ojp2
aXNpdEFkZGl0aW9uYWxDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpjaGlsZEZyYW1lR2V0
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVkSXRlbUdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpqc0RPTVdpbmRvd1dlYktpdCk6CisgICAgICAgIChXZWJDb3JlOjpqc0RPTVdpbmRvd0lu
ZGV4ZWREQik6CisgICAgICAgICAgICAtIGFkZCBtaXNzaW5nIG51bGwgY2hlY2ssIGluIGNhc2Ug
aW5kZXhEQiBhY2Vzc29yIGlzIGFwcGxpZWQgdG8gbm9uLXdpbmRvdyBvYmplY3QuCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBsdWdpblNjcmlwdE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpwbHVnaW5FbGVt
ZW50UHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVu
dEZ1bmN0aW9ucy5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAo
SlNDOjpSdW50aW1lQXJyYXk6OmRlc3Ryb3kpOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6
Omxlbmd0aEdldHRlcik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoKKyAgICAg
ICAgKiBicmlkZ2UvcnVudGltZV9tZXRob2QuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0
aG9kOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6OlJ1bnRpbWVNZXRob2Q6Omxlbmd0
aEdldHRlcik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmg6CisgICAgICAgICog
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRp
bWVPYmplY3Q6OmludmFsaWRhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGltZU9i
amVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVu
dGltZU9iamVjdDo6ZmllbGRHZXR0ZXIpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UnVudGlt
ZU9iamVjdDo6bWV0aG9kR2V0dGVyKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3Qu
aDoKKyAgICAgICAgICAgIC0gTWVyZ2VkIHNsb3RCYXNlICYgdGhpc1ZhbHVlIHRvIGN1c3RvbSBw
cm9wZXJ0eSBjYWxsYmFja3MuCisKIDIwMTYtMDItMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjE5NTY2MSk6IFtHVEtd
IFNjcm9sbGJhciB0ZXN0cyBjcmFzaGluZyBhZnRlciBvdmVybGF5IHNjcm9sbGJhciBncm91bmR3
b3JrCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJ
KHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNCw3ICszMzQsNyBAQCB2b2lkIHByaW50RXJy
b3JNZXNzYWdlRm9yRnJhbWUoRnJhbWUqIGZyCiAgICAgZnJhbWUtPmRvY3VtZW50KCktPmRvbVdp
bmRvdygpLT5wcmludEVycm9yTWVzc2FnZShtZXNzYWdlKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUg
b2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBvYmplY3RUb1N0cmluZ0Z1bmN0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU0Z1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLCAwLCBwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgpLCBvYmplY3RQcm90b0Z1bmNU
b1N0cmluZykpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmgJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NTMsNyArNjUzLDcgQEAgYm9vbCBzaG91
bGRBbGxvd0FjY2Vzc1RvRnJhbWUoSlNDOjpFeGVjUwogYm9vbCBzaG91bGRBbGxvd0FjY2Vzc1Rv
RE9NV2luZG93KEpTQzo6RXhlY1N0YXRlKiwgRE9NV2luZG93JiwgU3RyaW5nJiBtZXNzYWdlKTsK
IAogdm9pZCBwcmludEVycm9yTWVzc2FnZUZvckZyYW1lKEZyYW1lKiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUgb2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRl
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIG9iamVjdFRvU3RyaW5nRnVu
Y3Rpb25HZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CiAKIGlubGluZSBTdHJpbmcgcHJvcGVydHlOYW1lVG9TdHJpbmcoSlNDOjpQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewpAQCAtNjgzLDcgKzY4Myw3IEBAIHRlbXBsYXRl
PD4gaW5saW5lIGNvbnN0IEpTQzo6SGFzaFRhYmxlVmEKIH0KIAogdGVtcGxhdGU8SlNDOjpOYXRp
dmVGdW5jdGlvbiBuYXRpdmVGdW5jdGlvbiwgaW50IGxlbmd0aD4KLUpTQzo6RW5jb2RlZEpTVmFs
dWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lKQorSlNDOjpFbmNvZGVkSlNWYWx1ZSBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25H
ZXR0ZXIoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICByZXR1cm4gSlNDOjpKU1ZhbHVlOjplbmNv
ZGUoSlNDOjpKU0Z1bmN0aW9uOjpjcmVhdGUoZXhlYy0+dm0oKSwgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLCBsZW5ndGgsIHByb3BlcnR5TmFtZS5wdWJsaWNOYW1lKCksIG5hdGl2ZUZ1bmN0
aW9uKSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dDdXN0b20uY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDE0ICs2
NiwxNCBAQCB2b2lkIEpTRE9NV2luZG93Ojp2aXNpdEFkZGl0aW9uYWxDaGlsZHJlCiAgICAgICAg
IHZpc2l0b3IuYWRkT3BhcXVlUm9vdChmcmFtZSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBjaGlsZEZyYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBjaGlsZEZyYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUodG9KUyhleGVjLCBqc0Nhc3Q8SlNET01XaW5kb3cqPihzbG90QmFzZSktPndy
YXBwZWQoKS5mcmFtZSgpLT50cmVlKCkuc2NvcGVkQ2hpbGQocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSktPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIGpzQ2FzdDxKU0RPTVdpbmRvdyo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+d3JhcHBlZCgpLmZyYW1lKCktPnRyZWUoKS5zY29wZWRD
aGlsZChwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKS0+ZG9jdW1lbnQo
KS0+ZG9tV2luZG93KCkpKTsKIH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIG5hbWVkSXRlbUdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbmFtZWRJ
dGVtR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewotICAgIEpTRE9NV2luZG93QmFzZSogdGhpc09iaiA9
IGpzQ2FzdDxKU0RPTVdpbmRvdyo+KHNsb3RCYXNlKTsKKyAgICBKU0RPTVdpbmRvd0Jhc2UqIHRo
aXNPYmogPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gdGhpc09iai0+d3JhcHBlZCgpLmZyYW1lKCktPmRv
Y3VtZW50KCk7CiAKICAgICBBU1NFUlQoQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vz
c1RvRE9NV2luZG93KGV4ZWMsIHRoaXNPYmotPndyYXBwZWQoKSkpOwpAQCAtOTMsNyArOTMsNyBA
QCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbmFtZWRJdGVtR2V0dGVyKEV4CiB9CiAKICNpZiBFTkFC
TEUoVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQotc3RhdGljIEVuY29kZWRKU1ZhbHVlIGpzRE9NV2lu
ZG93V2ViS2l0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1dl
YktpdChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIEpTRE9NV2luZG93KiBjYXN0ZWRUaGlzID0gdG9KU0RPTVdpbmRvdyhKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3Vs
ZEFsbG93QWNjZXNzVG9ET01XaW5kb3coZXhlYywgY2FzdGVkVGhpcy0+d3JhcHBlZCgpKSkKQEAg
LTEwMywxNSArMTAzLDEzIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1dlYktp
dCgKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUganNET01XaW5kb3dJbmRleGVkREIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIGpzRE9NV2luZG93SW5kZXhlZERCKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KGV4ZWMpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CiAgICAgYXV0byogY2FzdGVkVGhpcyA9IHRvSlNET01XaW5kb3coSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5pbmRleGVkREJFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci0gICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3Vs
ZEFsbG93QWNjZXNzVG9ET01XaW5kb3coZXhlYywgY2FzdGVkVGhpcy0+d3JhcHBlZCgpKSkKKyAg
ICBpZiAoIWNhc3RlZFRoaXMgfHwgIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NU
b0RPTVdpbmRvdyhleGVjLCBjYXN0ZWRUaGlzLT53cmFwcGVkKCkpKQogICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRU
aGlzLT53cmFwcGVkKCk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRo
aXMtPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihET01XaW5kb3dJbmRleGVkRGF0YWJhc2U6
OmluZGV4ZWREQigmaW1wbCkpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcAkocmV2aXNpb24gMTk2MjM4
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCBKU09iamVjdCogcGx1Z2luU2Ny
aXB0T2JqZWN0KEV4ZWNTdGF0ZSogCiAgICAgcmV0dXJuIGluc3RhbmNlLT5jcmVhdGVSdW50aW1l
T2JqZWN0KGV4ZWMpOwogfQogICAgIAotRW5jb2RlZEpTVmFsdWUgcGx1Z2luRWxlbWVudFByb3Bl
cnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBwbHVnaW5F
bGVtZW50UHJvcGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAKICAgICBKU0hUTUxFbGVtZW50
KiB0aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU0hUTUxFbGVtZW50Kj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQbHVn
aW5FbGVtZW50RnVuY3Rpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmgJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOCw3ICszOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBKU0M6
OkJpbmRpbmdzOjpJbnN0YW5jZSogcGx1Z2luSW5zdGFuY2UoSFRNTEVsZW1lbnQmKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBKU0M6OkpTT2JqZWN0KiBwbHVnaW5TY3JpcHRPYmplY3QoSlNDOjpFeGVj
U3RhdGUqLCBKU0hUTUxFbGVtZW50Kik7CiAKLSAgICBKU0M6OkVuY29kZWRKU1ZhbHVlIHBsdWdp
bkVsZW1lbnRQcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CisgICAgSlNDOjpFbmNvZGVk
SlNWYWx1ZSBwbHVnaW5FbGVtZW50UHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLAorICAg
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICAgICBib29sIHBsdWdp
bkVsZW1lbnRDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmLCBKU0hUTUxFbGVtZW50Kik7CiAgICAgYm9v
bCBwbHVnaW5FbGVtZW50Q3VzdG9tUHV0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5h
bWUsIEpTQzo6SlNWYWx1ZSwgSlNIVE1MRWxlbWVudCosIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7
CiAgICAgSlNDOjpDYWxsVHlwZSBwbHVnaW5FbGVtZW50R2V0Q2FsbERhdGEoSlNIVE1MRWxlbWVu
dCosIEpTQzo6Q2FsbERhdGEmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBj
b3B5KQpAQCAtMTMwMiwxMCArMTMwMiwxMCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAg
ICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRp
dGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9u
YWxTdHJpbmc7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFt
ZSgkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0g
ICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dl
dHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKICAgICAgICAgICAgIGlm
ICghSXNSZWFkb25seSgkYXR0cmlidXRlKSkgewogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXIg
PSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW50
ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAidm9pZCAke3NldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKKyAgICAgICAgICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAidm9pZCAke3NldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwogICAgICAgICB9CkBAIC0xODM1LDIxICsxODM1LDIxIEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcg
PSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5z
aWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHtjb25kaXRp
b25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIG15ICRn
ZXR0ZXIgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1l
LCAkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0
ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKICAg
ICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJm
YWNlTmFtZSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7c2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke3NldHRl
cn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTtcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgaWYgKE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eSgkaW50ZXJmYWNlKSkgewogICAg
ICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3Rv
ciI7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUg
JHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOwogICAgICAgICB9CiAK
ICAgICAgICAgbXkgJGNvbnN0cnVjdG9yRnVuY3Rpb25OYW1lID0gInNldEpTIiAuICRpbnRlcmZh
Y2VOYW1lIC4gIkNvbnN0cnVjdG9yIjsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lk
ICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
O1xuIik7CiAKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIpOwogICAgIH0KQEAgLTIy
NzgsMTEgKzIyNzgsMTAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
IG15ICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0
ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxuIikg
aWYgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nOwogCi0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1Zh
bHVlICR7Z2V0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKIAogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
VU5VU0VEX1BBUkFNKHNsb3RCYXNlKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7XG4iKTsKICAgICAgICAgICAgIGlmICgh
JGF0dHJpYnV0ZS0+aXNTdGF0aWMgfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9D
b25zdHJ1Y3RvciQvKSB7CiAgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21Qcm94eVRvSlNPYmplY3QifSkgewpAQCAtMjQ4NCwxNyArMjQ4
MywxNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGNvbnN0
cnVjdG9yRnVuY3Rpb25OYW1lID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gIkNvbnN0cnVjdG9y
IjsKIAogICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b21Qcm94eVRvSlNPYmplY3QifSkgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFs
dWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICR7Y2xhc3NOYW1lfSogZG9tT2JqZWN0ID0gdG8ke2NsYXNzTmFtZX0oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2lmIChDb25zdHJ1Y3Rv
clNob3VsZEJlT25JbnN0YW5jZSgkaW50ZXJmYWNlKSkgewotICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0o
RXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5j
b2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogZG9tT2JqZWN0ID0gIiAuIEdldENhc3RpbmdI
ZWxwZXJGb3JUaGlzT2JqZWN0KCRpbnRlcmZhY2UpIC4gIihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7XG4iKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKVxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNv
ZGVkSlNWYWx1ZSAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOwogICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFt
aWNDYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7XG4iKTsKKyAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUqIGRv
bU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWRvbU9iamVjdClcbiIpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTtc
biIpOwpAQCAtMjUxOCwxOCArMjUxNywxNSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
CiAgICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZSA9ICJzZXRKUyIgLiAkaW50ZXJm
YWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2
b2lkICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NvbnN0
cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSlcbiIpOwogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7XG4iKTsKICAgICAgICAg
aWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Qcm94eVRvSlNPYmpl
Y3QifSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFN
KGJhc2VWYWx1ZSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7
Y2xhc3NOYW1lfSogZG9tT2JqZWN0ID0gdG8ke2NsYXNzTmFtZX0oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpO1xuIik7CiAgICAgICAgIH0gZWxzaWYgKENvbnN0cnVjdG9yU2hvdWxkQmVPbklu
c3RhbmNlKCRpbnRlcmZhY2UpKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBVTlVTRURfUEFSQU0oYmFzZVZhbHVlKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBkb21PYmplY3QgPSAiIC4gR2V0Q2FzdGluZ0hlbHBl
ckZvclRoaXNPYmplY3QoJGludGVyZmFjZSkgLiAiKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTtcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPihiYXNlVmFsdWUpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUqIGRvbU9i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpO1xuIik7CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7XG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpO1xuIik7CkBAIC0y
NjE2LDEyICsyNjEyLDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAg
ICBteSAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJh
dGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHthdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZ31cbiIp
IGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKIAotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ2b2lkICR7cHV0RnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUiKTsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiIHRoaXNWYWx1ZSIpIGlmICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKLSAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke3B1dEZ1bmN0aW9u
TmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7XG4iKTsKLSAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTtcbiIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
XG4iKSBpZiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7CiAgICAgICAgICAgICBpZiAoISRhdHRyaWJ1
dGUtPmlzU3RhdGljKSB7CiAgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21Qcm94eVRvSlNPYmplY3QifSkgewogICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGNhc3RlZFRoaXMgPSB0
byR7Y2xhc3NOYW1lfShKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmpl
Y3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksOSArMzksOSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RFeGNpdGluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmpl
Y3RFeGNpdGluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVj
dENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwogCiBjbGFzcyBKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpK
U05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE0NCwxMCArMTQ0LDkgQEAgYm9vbCBKU1Rl
c3RBY3RpdmVET01PYmplY3Q6OmdldE93blByb3BlcgogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RFeGNpdGlu
Z0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xv
dEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdEFjdGl2ZURP
TU9iamVjdCogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKQEAgLTE2MSw3ICsxNjAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVE
T01PYmplY3RFeGNpCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9i
amVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdEFjdGl2ZURPTU9iamVjdCogZG9tT2JqZWN0
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCkBAIC0xNzEsMTAgKzE3MCw5IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdENvbnMKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTVGVzdEFjdGl2ZURPTU9iamVjdDo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZt
KCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RBY3Rp
dmVET01PYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgc2V0SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwotICAgIFVOVVNFRF9QQVJBTShiYXNlVmFsdWUpOwogICAgIEpTVGVzdEFjdGl2ZURPTU9iamVj
dCogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7
CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAx
OTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4
ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0
b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25z
dHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBz
ZXRKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNs
YXNzIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlIDogcHVibGlj
IEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMTksMTkgKzExOSwxOCBAQCB2
b2lkIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yCiAgICAgdGhpc09iamVjdC0+
SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3I6On5KU1Rlc3RDbGFzc1dpdGhKU0J1
aWx0aW5Db25zdHJ1Y3RvcigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAg
IEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90
eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
clByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDbGFzc1dpdGhKU0J1
aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGlu
Q29uc3RydWN0b3I6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2Jh
bE9iamVjdCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3Zv
aWQgc2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAgSlNUZXN0Q2xhc3NX
aXRoSlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUqPihiYXNlVmFs
dWUpOworICAgIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKiBk
b21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWSghZG9tT2JqZWN0KSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAg
ICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCShyZXZpc2lvbiAxOTYy
MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw4ICszMSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gQXR0cmlidXRlcwogCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNl
T2JqZWN0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RDdXN0b21D
b25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0lu
dGVyZmFjZU9iamVjdENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RDdXN0b21Db25zdHJ1Y3Rv
cldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEN1c3Rv
bUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlIDogcHVibGljIEpTQzo6
SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMTMsOSArMTEzLDkgQEAgdm9pZCBKU1Rl
c3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZgogICAgIHRoaXNPYmplY3QtPkpTVGVzdEN1
c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Ojp+SlNUZXN0Q3VzdG9tQ29uc3Ry
dWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3QoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZh
Y2VPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhO
b0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSo+KGJhc2VW
YWx1ZSk7CisgICAgSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RQ
cm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tQ29uc3RydWN0
b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKHN0YXRlKTsKICAgICBKU1ZhbHVlIGNvbnN0cnVjdG9yID0gSlNUZXN0Q3VzdG9tQ29uc3Ry
dWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlKHN0YXRlLT52bSgp
LCBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoc3RhdGUtPnZtKCksICpkb21PYmplY3QtPmdsb2JhbE9iamVjdCgp
LCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSksICpqc0Nhc3Q8
SlNET01HbG9iYWxPYmplY3QqPihkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CkBAIC0xMjQs
MTEgKzEyNCwxMCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpCiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjb25zdHJ1Y3Rvcik7CiB9CiAKLXZvaWQgc2V0SlNU
ZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0Q3VzdG9tQ29u
c3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAgSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JX
aXRoTm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUqPihi
YXNlVmFsdWUpOworICAgIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2Jq
ZWN0UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4ICszOCw4IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBqc1Rlc3QKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9p
ZCBzZXRKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9y
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNz
IEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNTEsMTkgKzE1MSwxOCBAQCBib29sIEpTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyOjpnZXRPd25Qcm9wCiAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAg
ICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAg
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwotICAgIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKiBkb21P
YmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKj4o
YmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSogZG9tT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkp
IHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDE5NjIzOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTAgKzM1LDEwIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEV2ZW50Q29uc3RydWN0b3JBdHRyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci12b2lkIHNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0
dHIxKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVz
dEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTE1NiwxMCArMTU2LDkgQEAgdm9pZCBKU1Rlc3RFdmVudENvbnN0cnVj
dG9yOjpkZXN0cm95KEpTQwogICAgIHRoaXNPYmplY3QtPkpTVGVzdEV2ZW50Q29uc3RydWN0b3I6
On5KU1Rlc3RFdmVudENvbnN0cnVjdG9yKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2
ZW50Q29uc3RydWN0b3JBdHRyMShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2Us
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU1Rlc3RFdmVudENvbnN0cnVjdG9yKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE3MSwxMCArMTcwLDkgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dAogfQogCiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9Q
QVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFS
QU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RFdmVudENvbnN0cnVjdG9yKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE4NiwxOSAr
MTg0LDE4IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHQKIH0KIAog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKLSAgICBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUqPihiYXNlVmFsdWUpOwor
ICAgIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3Ioc3RhdGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXZlbnRD
b25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEV2
ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVl
IHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KHRoaXNWYWx1ZSk7Ci0gICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKj4oYmFz
ZVZhbHVlKTsKKyAgICBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAg
ICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ3LDggKzQ3LDggQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdAogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEV2
ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEV2ZW50VGFy
Z2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGUgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE2NywxOSArMTY3LDE4
IEBAIGJvb2wgSlNUZXN0RXZlbnRUYXJnZXQ6OmdldE93blByb3BlcnR5U2wKICAgICByZXR1cm4g
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgs
IHNsb3QpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewotICAgIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rl
c3RFdmVudFRhcmdldFByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RF
dmVudFRhcmdldFByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0RXZlbnRUYXJnZXQ6OmdldENvbnN0cnVj
dG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLXZvaWQg
c2V0SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAgSlNUZXN0RXZlbnRUYXJn
ZXRQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXRQ
cm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlKiBk
b21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkg
ewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw5ICszMyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gQXR0cmli
dXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbk5hbWUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0
SlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0RXhjZXB0aW9uUHJv
dG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMzQs
MTAgKzEzNCw5IEBAIGJvb2wgSlNUZXN0RXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbk5hbWUo
RXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbk5hbWUo
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2Up
OwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdEV4Y2VwdGlvbiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXhjZXB0aW9uKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE0OSwx
OSArMTQ4LDE4IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbk5hbWUoRXhlY1MKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNU
ZXN0RXhjZXB0aW9uUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4
Y2VwdGlvblByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0RXhjZXB0aW9uUHJvdG90
eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0RXhjZXB0aW9uOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2Jq
ZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTVGVzdEV4Y2VwdGlvbkNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rl
c3RFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7Ci0gICAgSlNUZXN0RXhjZXB0aW9uUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNU
ZXN0RXhjZXB0aW9uUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4
Y2VwdGlvblByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7
CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZS5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzEsOCArMzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0
b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29u
c3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0R2VuZXJhdGVJc1Jl
YWNoYWJsZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQ
cm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEw
OCwxOSArMTA4LDE4IEBAIHZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6ZGVzdHJveSgK
ICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjp+SlNUZXN0R2VuZXJh
dGVJc1JlYWNoYWJsZSgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0R2VuZXJhdGVJ
c1JlYWNoYWJsZVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6Z2V0
Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0K
IAotdm9pZCBzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7Ci0gICAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlKj4oYmFzZVZh
bHVlKTsKKyAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlKiBkb21PYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7
CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTc4LDUxICs3OCw1MSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0CiAvLyBBdHRyaWJ1dGVzCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JJbXBsZW1lbnRzU3RhdGljUmVhZE9ubHlBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3Rh
dGljUmVhZE9ubHlBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9ySW1wbGVtZW50c1N0YXRpY0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvckltcGxlbWVudHNTdGF0aWNBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckltcGxl
bWVudHNTdGF0aWNBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckltcGxl
bWVudHNTdGF0aWNBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1w
bGVtZW50c1N0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VJbXBsZW1lbnRzU3RyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikg
fHwgRU5BQkxFKENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VJbXBsZW1lbnRzU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEludGVyZmFj
ZUltcGxlbWVudHNTdHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1w
bGVtZW50c1N0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBsZW1l
bnRzU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVu
dHNTdHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VJbXBsZW1lbnRzU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0
cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlv
bjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBs
ZW1lbnRzTm9kZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNl
bmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0
YXRpY1JlYWRPbmx5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwog
I2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFs
U3RhdGljQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNB
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRp
Y0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxT
dHIxKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
U3VwcGxlbWVudGFsU3RyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBw
bGVtZW50YWxTdHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3Vw
cGxlbWVudGFsU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbFN0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBw
bGVtZW50YWxTdHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBw
bGVtZW50YWxTdHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJM
RShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsTm9kZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKICNlbmRpZgotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Io
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKIAogY2xhc3MgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25G
aW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC00MDQsMTAgKzQwNCw5IEBAIHZvaWQgSlNUZXN0SW50
ZXJmYWNlOjpkZXN0cm95KEpTQzo6SlNDZWwKIH0KIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikg
fHwgRU5BQkxFKENvbmRpdGlvbjIzKQotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JJbXBsZW1lbnRzU3RhdGljUmVhZE9ubHlBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
T2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckltcGxlbWVudHNTdGF0
aWNSZWFkT25seUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURf
UEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVmFs
dWUgcmVzdWx0ID0ganNOdW1iZXIoVGVzdEludGVyZmFjZTo6aW1wbGVtZW50c1N0YXRpY1JlYWRP
bmx5QXR0cigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CkBAIC00MTYs
MTAgKzQxNSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG8KICNl
bmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckltcGxlbWVudHNTdGF0aWNB
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VD
b25zdHJ1Y3RvckltcGxlbWVudHNTdGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBUZXN0
SW50ZXJmYWNlOjppbXBsZW1lbnRzU3RhdGljQXR0cigpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CkBAIC00MjgsMTAgKzQyNiw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZUNvbnN0cnVjdG8KICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBs
ZW1lbnRzU3RyMShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlSW1wbGVtZW50c1N0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBV
TlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJm
YWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKQEAgLTQ0NSwxMCArNDQyLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlSW1wbGVtZW50cwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVO
QUJMRShDb25kaXRpb24yMykKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVu
dHNTdHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VJbXBsZW1lbnRzU3RyMihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNF
RF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNU
ZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2Uq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewpAQCAtNDYyLDEwICs0NTgsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VJbXBsZW1lbnRzCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0
cjMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUlt
cGxlbWVudHNTdHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RJ
bnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CkBAIC00NzcsMTAgKzQ3Miw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUlt
cGxlbWVudHMKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZShF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50c05vZGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0o
c2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdEludGVy
ZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
QEAgLTQ5NCwxMCArNDg4LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50cwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRp
b24xMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVu
dGFsU3RhdGljUmVhZE9ubHlBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFz
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFz
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBq
c051bWJlcihXZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdGF0aWNSZWFk
T25seUF0dHIoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNTA2
LDEwICs0OTksOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvCiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQot
RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0
aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmdXaXRoQ2FjaGUoc3RhdGUs
IFdlYkNvcmU6OlRlc3RTdXBwbGVtZW50YWw6OnN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoKSk7CiAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNTE4LDEwICs1MTAsOSBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotRW5jb2RlZEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtNTM1LDEwICs1MjYsOSBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotRW5jb2RlZEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtNTUyLDEwICs1NDIsOSBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotRW5jb2RlZEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtNTY3LDEwICs1NTYsOSBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotRW5jb2RlZEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtNTgzLDE5ICs1NzEsMTggQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudAogCiAjZW5kaWYKIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVzdEludGVy
ZmFjZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSogZG9t
T2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VGVzdEludGVyZmFjZTo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xv
YmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwotICAgIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdEludGVy
ZmFjZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2VQ
cm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFkb21PYmplY3QpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAg
ICByZXR1cm47CkBAIC02MjUsMTAgKzYxMiw5IEBAIHZvaWQgSlNUZXN0SW50ZXJmYWNlOjpwdXRC
eUluZGV4KEpTQ2VsbCoKIH0KIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENv
bmRpdGlvbjIzKQotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvckltcGxlbWVudHNT
dGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvckltcGxlbWVudHNTdGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBV
TlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CiAgICAgU3RyaW5nIG5hdGl2ZVZhbHVlID0gdmFsdWUu
dG9TdHJpbmcoc3RhdGUpLT52YWx1ZShzdGF0ZSk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5o
YWRFeGNlcHRpb24oKSkpCiAgICAgICAgIHJldHVybjsKQEAgLTYzOCwxMCArNjI0LDEwIEBAIHZv
aWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW0KICNlbmRpZgogCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi12b2lkIHNldEpTVGVzdElu
dGVyZmFjZUltcGxlbWVudHNTdHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjIoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwot
ICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dEludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwg
IlRlc3RJbnRlcmZhY2UiLCAiaW1wbGVtZW50c1N0cjIiKTsKQEAgLTY1NywxMCArNjQzLDEwIEBA
IHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjIoRXgKICNlbmRpZgogCiAjaWYg
RU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi12b2lkIHNldEpTVGVz
dEludGVyZmFjZUltcGxlbWVudHNTdHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjMoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0
ZSwgIlRlc3RJbnRlcmZhY2UiLCAiaW1wbGVtZW50c1N0cjMiKTsKQEAgLTY3MiwxMCArNjU4LDEw
IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjMoRXgKICNlbmRpZgogCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi12b2lkIHNldEpT
VGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3RJbnRlcmZhY2UiLCAiaW1wbGVtZW50c05vZGUiKTsKQEAgLTY5MSwxMCArNjc3
LDkgQEAgdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZShFeAogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLXZvaWQgc2V0
SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1
cHBsZW1lbnRhbFN0YXRpY0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNl
T2JqZWN0KTsKICAgICBTdHJpbmcgbmF0aXZlVmFsdWUgPSB2YWx1ZS50b1N0cmluZyhzdGF0ZSkt
PnZhbHVlKHN0YXRlKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNzA0LDEwICs2ODksMTAgQEAgdm9pZCBzZXRKU1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvclN1cHBsZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEp
IHx8IEVOQUJMRShDb25kaXRpb24xMikKLXZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVu
dGFsU3RyMihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpT
VGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9Q
QVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rl
c3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RJbnRlcmZh
Y2UiLCAic3VwcGxlbWVudGFsU3RyMiIpOwpAQCAtNzIzLDEwICs3MDgsMTAgQEAgdm9pZCBzZXRK
U1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLXZvaWQgc2V0SlNUZXN0SW50ZXJmYWNl
U3VwcGxlbWVudGFsU3RyMyhFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2
b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAg
IFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
ICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdElu
dGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRl
c3RJbnRlcmZhY2UiLCAic3VwcGxlbWVudGFsU3RyMyIpOwpAQCAtNzM4LDEwICs3MjMsMTAgQEAg
dm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKAogI2VuZGlmCiAKICNpZiBF
TkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLXZvaWQgc2V0SlNUZXN0
SW50ZXJmYWNlU3VwcGxlbWVudGFsTm9kZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFz
ZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCit2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3RJbnRlcmZhY2UiLCAic3VwcGxlbWVudGFsTm9kZSIpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SlNCdWlsdGlu
Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsMTEgQEAgSlNDOjpF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdAogCiAvLyBBdHRyaWJ1dGVzCiAKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRl
Q3VzdG9tKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9p
ZCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRl
UldDdXN0b20oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0
ZVJXQ3VzdG9tKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3Ry
dWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUgOiBw
dWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEyNSwxMCArMTI1LDkg
QEAgdm9pZCBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6ZGVzdHJveQogICAgIHRoaXNPYmpl
Y3QtPkpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yOjp+SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3IoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0
QXR0cmlidXRlQ3VzdG9tKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20oRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcio+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBA
IC0xMzgsMTAgKzEzNyw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG8KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RB
dHRyaWJ1dGVSV0N1c3RvbShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CkBAIC0xNTEsMTkgKzE0OSwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25z
dHJ1Y3RvCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclBy
b3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvclByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3JQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3JQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpnZXRD
b25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci12b2lkIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwotICAgIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKj4oYmFz
ZVZhbHVlKTsKKyAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVj
dCkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsK
QEAgLTE3MiwxMCArMTY5LDEwIEBAIHZvaWQgc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JD
b25zdHIKICAgICBkb21PYmplY3QtPnB1dERpcmVjdChzdGF0ZS0+dm0oKSwgc3RhdGUtPnByb3Bl
cnR5TmFtZXMoKS5jb25zdHJ1Y3RvciwgdmFsdWUpOwogfQogCi12b2lkIHNldEpTVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
T2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0
QXR0cmlidXRlUldDdXN0b20oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2Jq
ZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvciogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3IiLCAidGVzdEF0dHJpYnV0ZVJXQ3VzdG9tIik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCShyZXZpc2lv
biAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDggKzM4
LDggQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdAogCiAvLyBBdHRy
aWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7CiBwdWJsaWM6CkBAIC0xMTYsMTkgKzExNiwxOCBAQCB2b2lkIEpTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXI6OmRlc3RyCiAgICAgdGhpc09iamVjdC0+SlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcjo6fkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7Ci0gICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSogZG9tT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBl
Kj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBl
KiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQ
cm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmpl
Y3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmdldENvbnN0cnVj
dG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLXZvaWQg
c2V0SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwotICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqIGRvbU9iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSo+KGJh
c2VWYWx1ZSk7CisgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSogZG9t
T2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90
eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9t
T2JqZWN0KSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0
dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24g
MTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw4ICszMyw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lk
IHNldEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
dm9pZCBzZXRKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNU
ZXN0TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMTQzLDE5ICsxNDMsMTggQEAgdm9pZCBKU1Rlc3ROYW1lZENvbnN0
cnVjdG9yOjpkZXN0cm95KEpTQwogICAgIHRoaXNPYmplY3QtPkpTVGVzdE5hbWVkQ29uc3RydWN0
b3I6On5KU1Rlc3ROYW1lZENvbnN0cnVjdG9yKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
YmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVzdE5hbWVkQ29u
c3RydWN0b3JQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRD
b25zdHJ1Y3RvclByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0TmFtZWRDb25zdHJ1
Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1lZENvbnN0
cnVjdG9yUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICgh
ZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpnZXRDb25zdHJ1
Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lk
IHNldEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBK
U09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKLSAgICBKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdE5h
bWVkQ29uc3RydWN0b3JQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJv
cihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAJKHJldmlzaW9uIDE5
NjIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
b2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTAgKzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVO
YW1lKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0Tm9kZU5hbWUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZU5hbWUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE5v
ZGVOYW1lKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5vZGVQcm90b3R5
cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTExNiwxMCAr
MTE2LDkgQEAgSlNPYmplY3QqIEpTVGVzdE5vZGU6OmdldFByb3RvdHlwZShWTSYgdgogICAgIHJl
dHVybiBnZXRET01Qcm90b3R5cGU8SlNUZXN0Tm9kZT4odm0sIGdsb2JhbE9iamVjdCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVOYW1lKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlTmFtZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwot
ICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CiAgICAgSlNUZXN0Tm9kZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9kZSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CkBAIC0xMzEsMTkgKzEzMCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlTmFt
ZShFeGVjU3RhdGUqCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZUNvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0g
ICAgSlNUZXN0Tm9kZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RO
b2RlUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3ROb2RlUHJvdG90eXBlKiBkb21P
YmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vZGVQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5v
ZGU6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3ROb2RlQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTVGVzdE5vZGVQcm90
b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9kZVByb3RvdHlwZSo+KGJh
c2VWYWx1ZSk7CisgICAgSlNUZXN0Tm9kZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3ROb2RlUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTUyLDEwICsxNTAsMTAgQEAgdm9pZCBzZXRK
U1Rlc3ROb2RlQ29uc3RydWN0b3IoRXhlY1N0YXRlKgogICAgIGRvbU9iamVjdC0+cHV0RGlyZWN0
KHN0YXRlLT52bSgpLCBzdGF0ZS0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCB2YWx1ZSk7
CiB9CiAKLXZvaWQgc2V0SlNUZXN0Tm9kZU5hbWUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3ROb2RlTmFtZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdE5vZGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vZGUqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0Tm9kZSIsICJuYW1l
Iik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVybWluaXN0aWMuY3BwCShyZXZpc2lvbiAx
OTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDE3ICs0NSwxNyBAQCBK
U0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5p
c3RpY1JlYWRvbmx5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljV3JpdGVhYmxlQXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGlj
V3JpdGVhYmxlQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNFeGNlcHRpb25BdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNF
eGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY0dldHRlckV4Y2VwdGlvbkF0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5p
c3RpY0dldHRlckV4Y2VwdGlvbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljU2V0dGVyRXhjZXB0
aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNO
b25kZXRlcm1pbmlzdGljU2V0dGVyRXhjZXB0aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlz
dGljTm9uZGV0ZXJtaW5pc3RpY1JlYWRvbmx5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNXcml0ZWFibGVBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBz
ZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1dyaXRlYWJsZUF0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0
aWNFeGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJt
aW5pc3RpY0V4Y2VwdGlvbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0
ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNHZXR0ZXJFeGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRK
U1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY0dldHRlckV4Y2VwdGlvbkF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWlu
aXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGlj
Tm9uZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3ROb25k
ZXRlcm1pbmlzdGljQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Y1Byb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MTM3LDEwICsxMzcsOSBAQCB2b2lkIEpTVGVzdE5vbmRldGVybWluaXN0aWM6OmRlc3Ryb3koSlND
CiAgICAgdGhpc09iamVjdC0+SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYzo6fkpTVGVzdE5vbmRldGVy
bWluaXN0aWMoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05v
bmRldGVybWluaXN0aWNSZWFkb25seUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljUmVhZG9ubHlBdHRy
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNl
KTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3ROb25kZXRlcm1pbmlz
dGljKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKQEAgLTE3MiwxMCArMTcxLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJt
aW5pc3RpY05vbgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNO
b25kZXRlcm1pbmlzdGljV3JpdGVhYmxlQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNXcml0ZWFibGVB
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3ROb25kZXRlcm1p
bmlzdGljKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGlj
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKQEAgLTIwNywxMCArMjA1LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0
ZXJtaW5pc3RpY05vbgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0
aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNFeGNlcHRp
b25BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNs
b3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3ROb25kZXRl
cm1pbmlzdGljKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlz
dGljKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKQEAgLTI0MiwxMCArMjM5LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpY05vbgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWlu
aXN0aWNOb25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0
aWNHZXR0ZXJFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3ROb25kZXRlcm1pbmlzdGljKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3ROb25kZXRlcm1pbmlzdGljKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTI4MSwxMCArMjc3LDkgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljU2V0dGVyRXhjZXB0aW9uQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Y05vbmRldGVybWluaXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3ROb25kZXRlcm1pbmlzdGljKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTMxNiwxOSArMzEx
LDE4IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb24KIH0KIAogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
LSAgICBKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAg
IEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBl
RXJyb3Ioc3RhdGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Tm9uZGV0ZXJt
aW5pc3RpYzo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2Jq
ZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE5vbmRl
dGVybWluaXN0aWNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7Ci0gICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSogZG9tT2JqZWN0
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKj4oYmFzZVZh
bHVlKTsKKyAgICBKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKiBkb21PYmplY3QgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGUqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAg
ICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkBAIC0zMzcsMTAg
KzMzMSwxMCBAQCB2b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvCiAgICAg
ZG9tT2JqZWN0LT5wdXREaXJlY3Qoc3RhdGUtPnZtKCksIHN0YXRlLT5wcm9wZXJ0eU5hbWVzKCku
Y29uc3RydWN0b3IsIHZhbHVlKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGlj
Tm9uZGV0ZXJtaW5pc3RpY1dyaXRlYWJsZUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3Rp
Y1dyaXRlYWJsZUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3ROb25kZXRlcm1pbmlz
dGljKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE5vbmRldGVy
bWluaXN0aWMiLCAibm9uZGV0ZXJtaW5pc3RpY1dyaXRlYWJsZUF0dHIiKTsKQEAgLTM1NCwxMCAr
MzQ4LDEwIEBAIHZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWkKIH0KIAog
Ci12b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9u
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVz
dE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwogICAgIEpTVGVzdE5vbmRldGVybWluaXN0aWMqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE5vbmRldGVybWluaXN0aWMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRl
clR5cGVFcnJvcigqc3RhdGUsICJUZXN0Tm9uZGV0ZXJtaW5pc3RpYyIsICJub25kZXRlcm1pbmlz
dGljRXhjZXB0aW9uQXR0ciIpOwpAQCAtMzcxLDEwICszNjUsMTAgQEAgdm9pZCBzZXRKU1Rlc3RO
b25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaQogfQogCiAKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJt
aW5pc3RpY05vbmRldGVybWluaXN0aWNHZXR0ZXJFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05v
bmRldGVybWluaXN0aWNHZXR0ZXJFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVT
RURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3ROb25kZXRlcm1pbmlzdGljIiwgIm5vbmRldGVybWluaXN0aWNHZXR0ZXJFeGNl
cHRpb25BdHRyIik7CkBAIC0zODgsMTAgKzM4MiwxMCBAQCB2b2lkIHNldEpTVGVzdE5vbmRldGVy
bWluaXN0aWNOb25kZXRlcm1pCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGlj
Tm9uZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJt
aW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJB
TShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RO
b25kZXRlcm1pbmlzdGljKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRl
cm1pbmlzdGljKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAi
VGVzdE5vbmRldGVybWluaXN0aWMiLCAibm9uZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0
dHIiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTgwLDE1OSArMTgwLDE1OSBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
anNUZXN0CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpS
ZWFkT25seUxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqUmVhZE9ubHlUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlMb25nQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVj
dG9yU3RhdGljU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakNv
bnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialRlc3RTdWJPYmpF
bmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakVudW1BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNU
ZXN0T2JqRW51bUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakJ5dGVBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQnl0ZUF0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9jdGV0
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iak9jdGV0QXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nQXR0cihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
dm9pZCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLXZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12
b2lkIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
dm9pZCBzZXRKU1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
dm9pZCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rl
c3RPYmpDcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlYWRPbmx5U3ltYm9sQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlTeW1ib2xBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZEludGVncmFsQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialJlZmxlY3Rl
ZEludGVncmFsQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9p
ZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVk
VVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxl
Y3RlZFN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVh
bkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbVVSTEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpT
VGVzdE9ialR5cGVkQXJyYXlBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12
b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbldp
dGhNZXNzYWdlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
dm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb25X
aXRoTWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoU2V0
dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqU3Ry
aW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmljdFR5cGVDaGVja2luZ0F0dHJpYnV0ZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialN0cmljdFR5cGVDaGVja2luZ0F0dHJpYnV0ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tQXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9uZm9vKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLXZvaWQgc2V0SlNUZXN0T2JqT25mb28oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci12b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0
dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpX
aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
dHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNl
dEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZv
aWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0
dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2Ny
aXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNB
dHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
aldpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmli
dXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFk
T25seUxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVN0cmlu
Z0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlM
b25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNT
dHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0Nv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0Nv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakVudW1BdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9p
ZCBzZXRKU1Rlc3RPYmpFbnVtQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpC
eXRlQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQnl0ZUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqT2N0ZXRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpPY3RldEF0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpT
aG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRTaG9ydEF0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Cit2b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVz
dE9iakxvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25l
ZExvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0
T2JqU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0T2JqQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK3ZvaWQgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpMZW5pZW50VGVz
dE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpDcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpSZWFkT25seVN5bWJvbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlTeW1ib2xBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZEludGVncmFsQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxB
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQg
c2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJM
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0
b21VUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialR5cGVkQXJyYXlBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhT
ZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhT
ZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0
ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpT
dHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3Ry
aW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmlj
dFR5cGVDaGVja2luZ0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqU3RyaWN0VHlwZUNoZWNr
aW5nQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Cit2b2lkIHNldEpTVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqT25mb28oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iak9uZm9vKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
aldpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RP
YmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRy
aWJ1dGVSYWlzZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QXR0cmlidXRlUmFpc2VzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0
dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFj
a0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogI2lmIEVOQUJMRShDb25kaXRpb24xKQotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShD
b25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYg
RU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0
SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29u
c3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29u
ZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlv
bjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpD
b25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rl
c3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMShKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVudChKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQb2ludChK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iak11dGFibGVQb2ludChKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludChKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialN0cmF3YmVycnkoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmljdEZsb2F0KEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLXZvaWQgc2V0SlNUZXN0T2JqU3RyaWN0RmxvYXQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSWQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRK
U1Rlc3RPYmpJZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqSGFzaChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
cGxhY2VhYmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqUmVw
bGFjZWFibGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0cmli
dXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFi
bGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12
b2lkIHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1ZhbHVl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRl
V2l0aFJlc2VydmVkRW51bVR5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpB
dHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owotdm9pZCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJp
YnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFi
bGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQ29uc3Ry
dWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNh
Y2hlZEF0dHJpYnV0ZTEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJp
YnV0ZTIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFueUF0dHJpYnV0ZShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQg
c2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNvbnRlbnREb2N1bWVudChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTXV0YWJsZVBv
aW50KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwordm9pZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakltbXV0YWJsZVBv
aW50KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmF3YmVycnkoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNl
dEpTVGVzdE9ialN0cmF3YmVycnkoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3Ry
aWN0RmxvYXQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialN0cmljdEZsb2F0KEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpJZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqSWQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqSGFzaChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1
dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Cit2b2lkIHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RP
YmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1ZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0
cmluZ1ZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Cit2b2lkIHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRK
U1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpQdXRG
b3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U1Rlc3RPYmpQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1Ymxp
YzoKQEAgLTc0MiwxMCArNzQyLDkgQEAgYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xv
dChKU09iagogICAgIHJldHVybiBmYWxzZTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVhZE9ubHlMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVhZE9ubHlMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAg
IFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewpAQCAtNzU3LDEwICs3NTYsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seUxv
bmdBdHRyCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRy
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVN0
cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0o
c2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTc3MiwxMCAr
NzcwLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdAogfQogCiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwog
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTc4NywzMCArNzg0LDI3IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakEKIH0KIAogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVh
ZE9ubHlMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNWYWx1
ZSByZXN1bHQgPSBqc051bWJlcihUZXN0T2JqOjpzdGF0aWNSZWFkT25seUxvbmdBdHRyKCkpOwog
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc1N0
cmluZ1dpdGhDYWNoZShzdGF0ZSwgVGVzdE9iajo6c3RhdGljU3RyaW5nQXR0cigpKTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclRlc3RTdWJPYmooRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKQEAgLTgyMCwxMCArODE0LDkgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uc3RydWN0b3JUZXN0UwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRl
c3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xv
dEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTgzOCwxMCArODMx
LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZQogfQogCiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakVudW1BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewpAQCAtODUzLDEwICs4NDUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbnVt
QXR0cihFeGVjU3RhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQnl0ZUF0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakJ5dGVBdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC04NjgsMTAgKzg1OSw5IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakJ5dGVBdHRyKEV4ZWNTdGEKIH0KIAogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpPY3RldEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iak9jdGV0QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtODgzLDEwICs4NzMsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPY3RldEF0dHIoRXhl
Y1N0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTaG9ydEF0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTg5OCwxMCArODg3LDkgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialVuc2lnbmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFz
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewpAQCAtOTEzLDEwICs5MDEsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNp
Z25lZFNob3J0QXR0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0F0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC05MjgsMTAgKzkxNSw5IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGEKIH0KIAogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakxvbmdMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwot
ICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkgewpAQCAtOTQzLDEwICs5MjksOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nTG9u
Z0F0dHIoRXhlCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRMb25nTG9u
Z0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2ln
bmVkTG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC05
NTgsMTAgKzk0Myw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmcK
IH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNF
RF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC05NzMsMTAgKzk1Nyw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialN0cmluZ0F0dHIoRXhlY1MKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpUZXN0T2JqQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURf
UEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTk4
OCwxMCArOTcxLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdE9iakF0dHIoRXhlYwog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRy
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNl
KTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMDAzLDEwICs5ODUsOSBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0CiB9CiAKIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewpAQCAtMTAxOCwxMCArOTk5LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqWE1M
T2JqQXR0cihFeGVjUwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNyZWF0ZShFeGVj
U3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMDMzLDEwICsxMDEzLDkgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEV4ZWNTdGF0ZQogfQogCiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialJlYWRPbmx5U3ltYm9sQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTeW1ib2xBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CkBAIC0xMDQ4LDIwICsxMDI3LDE4IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialJlYWRPbmx5U3ltYm9sQXQKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpD
b25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5U3ltYm9sQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seVN5bWJvbEF0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJh
c2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0g
U3ltYm9sOjpjcmVhdGUoc3RhdGUtPnZtKCksICooVGVzdE9iajo6c3RhdGljUmVhZE9ubHlTeW1i
b2xBdHRyKCkpLnVpZCgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFz
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTA3MywxMCArMTA1MCw5
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0EKIH0KIAogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTA4OCwxMCArMTA2NCw5IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEludGVncmEKIH0KIAogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cihFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3Jh
bEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xv
dEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTExMDMsMTAgKzEw
NzgsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lCiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsK
ICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMTE4LDEwICsxMDkyLDkgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbgogfQogCiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKQEAgLTExMzMsMTAgKzExMDYsOSBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2Us
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewpAQCAtMTE0OCwxMCArMTEyMCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
ZmxlY3RlZFN0cmluZ0EKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21JbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewpAQCAtMTE2MywxMCArMTEzNCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZEN1c3RvbUkKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKQEAgLTExNzgsMTAgKzExNDgsOSBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21CCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewpAQCAtMTE5MywxMCArMTE2Miw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZEN1c3RvbVUKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUeXBl
ZEFycmF5QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
VHlwZWRBcnJheUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURf
UEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEy
MDgsMTAgKzExNzYsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cihF
CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
RXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMjI1
LDEwICsxMTkyLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeAog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0
aE1lc3NhZ2UoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0
YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKQEAgLTEyNDIsMTAgKzEyMDgsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpBdHRyV2l0aEdldHRlckV4CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldp
dGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CkBAIC0xMjU3LDEwICsxMjIyLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
QXR0cldpdGhTZXR0ZXJFeAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRo
U2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAg
IFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEyNzIsMTAgKzEyMzYsOSBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4CiB9CiAKIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMjg5LDEwICsxMjUy
LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZQogfQogCiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTMw
NCwxMCArMTI2Niw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoU2UK
IH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RUeXBlQ2hlY2tpbmdBdHRyaWJ1
dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmljdFR5
cGVDaGVja2luZ0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtMTMxOSwxMCArMTI4MCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmljdFR5cGVD
aGVja2kKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRyKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRyKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMzMyLDEwICsxMjkyLDkgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tQXR0cihFeGVjUwogfQogCiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iak9uZm9vKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpPbmZvbyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJB
TShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTM0Niwx
MCArMTMwNSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9uZm9vKEV4ZWNTdGF0ZSoKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0
ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJB
TShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTM2MSwx
MCArMTMxOSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUEKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0
aEF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
V2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKQEAgLTEzNzYsMTAgKzEzMzMsOSBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmli
dXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMzk0LDEwICsxMzUw
LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dAogfQogCiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVj
U3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0x
NDExLDEwICsxMzY2LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdFN0YXRl
QQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250
ZXh0QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTQzMSwxMCArMTM4NSw5IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXQKIH0KIAogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmli
dXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNF
RF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNDQ5LDEwICsxNDAyLDkgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlz
ZXMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE0NjksMTAgKzE0MjEsOSBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFj
ZXNBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
aldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmli
dXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNDg3LDEwICsxNDM4
LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dAogfQogCiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRy
aWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhT
Y3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpIHsKQEAgLTE1MDMsMTAgKzE0NTMsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpXaXRoU2NyaXB0QXJndW1lCiAKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKQotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTUyMCwxMCArMTQ2OSw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlv
bjEpICYmIEVOQUJMRShDb25kaXRpb24yKQotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyMihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyMihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNF
RF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAt
MTUzNywxMCArMTQ4NSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjIKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24y
KQotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTU1NCwxMCArMTUwMSw5IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMKICNlbmRpZgogCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjEpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29u
c3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwot
ICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkgewpAQCAtMTU2OSwxMCArMTUxNSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjQKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShD
b25kaXRpb24yKQotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI1Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAg
ICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
IHsKQEAgLTE1ODQsMTAgKzE1MjksOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRp
b25hbEF0dHI1CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CkBAIC0xNTk4LDEwICsxNTQyLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNgogCiAjZW5kaWYKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmli
dXRlMShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVk
QXR0cmlidXRlMShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJB
TShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTYxNiwx
MCArMTU1OSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNjM0LDEwICsxNTc2LDkgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMgogfQogCiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakFueUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xv
dEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqQW55QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CkBAIC0xNjQ5LDEwICsxNTkwLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQW55
QXR0cmlidXRlKEV4ZQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1
bWVudChFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29udGVu
dERvY3VtZW50KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNjYzLDEw
ICsxNjAzLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29udGVudERvY3VtZW50KAogfQog
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNF
RF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNjc4LDEwICsxNjE3LDkgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqTXV0YWJsZVBvaW50KEV4ZQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakltbXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpJbW11dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAg
IFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewpAQCAtMTY5MywxMCArMTYzMSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakltbXV0YWJs
ZVBvaW50KEUKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJhd2JlcnJ5KEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJhd2JlcnJ5KEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNzA4LDEwICsxNjQ1LDkgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeShFeGVjUwogfQogCiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialN0cmljdEZsb2F0KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90
QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpTdHJpY3RGbG9hdChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwot
ICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkgewpAQCAtMTcyMywxMCArMTY1OSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmlj
dEZsb2F0KEV4ZWMKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlvbihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24o
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2Up
OwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE3MzgsMTAgKzE2NzMsOSBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlvbihFeGVjCiB9CiAKIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqSWQoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iaklkKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNzUz
LDEwICsxNjg3LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSWQoRXhlY1N0YXRlKiBzdAog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakhhc2goRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakhhc2goRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRl
KTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKQEAgLTE3NjgsMTAgKzE3MDEsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpI
YXNoKEV4ZWNTdGF0ZSogCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVwbGFjZWFi
bGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alJlcGxhY2VhYmxlQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CkBAIC0xNzgzLDEwICsxNzE1LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVwbGFjZWFi
bGVBdHRyaQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91YmxlQXR0
cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxs
YWJsZURvdWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtMTc5OCwxMCArMTcyOSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlRG91
YmxlQXQKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1
dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxl
TG9uZ0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTgx
MywxMCArMTc0Myw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHIK
IH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUo
RXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9v
bGVhbkF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTgy
OCwxMCArMTc1Nyw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkEK
IH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZShF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJp
bmdBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE4NDMs
MTAgKzE3NzEsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0CiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1
dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxl
TG9uZ1NldHRhYmxlQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CkBAIC0xODU4LDEwICsxNzg1LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVM
b25nU2V0dAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nVmFs
dWUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxl
U3RyaW5nVmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE4NzUs
MTAgKzE4MDEsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1ZhCiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKQEAgLTE4OTAsMTAgKzE4MTUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpBdHRyaWJ1dGUoRXhlY1N0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
QXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xOTA1LDEwICsxODI5LDkgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlV2l0aFJlcwogfQogCiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTkyMCwxMCArMTg0Myw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialB1dEZvcndhcmRzQXR0cmkKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xOTM1LDE5ICsxODU3LDE4IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGEKIH0KIAogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0T2JqUHJvdG90eXBlKiBkb21PYmplY3QgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0
T2JqUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlw
ZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoSlNUZXN0T2JqOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0
LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAg
SlNUZXN0T2JqUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialBy
b3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0T2JqUHJvdG90eXBlKiBkb21PYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE5NTYsMTAgKzE4NzcsOSBA
QCB2b2lkIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogCiAgICAgZG9tT2JqZWN0
LT5wdXREaXJlY3Qoc3RhdGUtPnZtKCksIHN0YXRlLT5wcm9wZXJ0eU5hbWVzKCkuY29uc3RydWN0
b3IsIHZhbHVlKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmlu
Z0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakNvbnN0
cnVjdG9yU3RhdGljU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VPYmplY3QpOwogICAgIFN0cmluZyBuYXRpdmVWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKHN0YXRl
KS0+dmFsdWUoc3RhdGUpOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkp
KQogICAgICAgICByZXR1cm47CkBAIC0xOTY3LDEwICsxODg3LDEwIEBAIHZvaWQgc2V0SlNUZXN0
T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmcKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialRlc3RT
dWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGlu
Z0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7
CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5
cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIlRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nIik7
CkBAIC0xOTgxLDEwICsxOTAxLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqVGVzdFN1Yk9iakVuYWJs
ZWRCeVNldHQKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakVudW1BdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqRW51bUF0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRl
c3RPYmoiLCAiZW51bUF0dHIiKTsKQEAgLTIwMDAsMTAgKzE5MjAsMTAgQEAgdm9pZCBzZXRKU1Rl
c3RPYmpFbnVtQXR0cihFeGVjU3RhdGUqIHN0YQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqQnl0
ZUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rl
c3RPYmpCeXRlQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3Qp
OworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJU
eXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJieXRlQXR0ciIpOwpAQCAtMjAxNywxMCArMTkz
NywxMCBAQCB2b2lkIHNldEpTVGVzdE9iakJ5dGVBdHRyKEV4ZWNTdGF0ZSogc3RhCiB9CiAKIAot
dm9pZCBzZXRKU1Rlc3RPYmpPY3RldEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpPY3RldEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVO
VVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAib2N0ZXRB
dHRyIik7CkBAIC0yMDM0LDEwICsxOTU0LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqT2N0ZXRBdHRy
KEV4ZWNTdGF0ZSogc3QKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialNob3J0QXR0cihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialNob3J0QXR0
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0
YXRlLCAiVGVzdE9iaiIsICJzaG9ydEF0dHIiKTsKQEAgLTIwNTEsMTAgKzE5NzEsMTAgQEAgdm9p
ZCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoRXhlY1N0YXRlKiBzdAogfQogCiAKLXZvaWQgc2V0SlNU
ZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQordm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ1
bnNpZ25lZFNob3J0QXR0ciIpOwpAQCAtMjA2OCwxMCArMTk4OCwxMCBAQCB2b2lkIHNldEpTVGVz
dE9ialVuc2lnbmVkU2hvcnRBdHRyKEV4ZWNTCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpMb25n
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVz
dE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7
CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5
cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImxvbmdBdHRyIik7CkBAIC0yMDg1LDEwICsyMDA1
LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGEKIH0KIAogCi12
b2lkIHNldEpTVGVzdE9iakxvbmdMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
YmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakxvbmdMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJs
b25nTG9uZ0F0dHIiKTsKQEAgLTIxMDIsMTAgKzIwMjIsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpM
b25nTG9uZ0F0dHIoRXhlY1N0YXRlKgogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRM
b25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBz
ZXRKU1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBK
U1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAg
ICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ1bnNpZ25lZExv
bmdMb25nQXR0ciIpOwpAQCAtMjExOSwxMCArMjAzOSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialVu
c2lnbmVkTG9uZ0xvbmdBdHRyKEV4CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRy
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2Jq
U3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwor
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBl
RXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJzdHJpbmdBdHRyIik7CkBAIC0yMTM2LDEwICsyMDU2
LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cihFeGVjU3RhdGUqIHMKIH0KIAogCi12
b2lkIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAg
IFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAidGVz
dE9iakF0dHIiKTsKQEAgLTIxNTMsMTAgKzIwNzMsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpUZXN0
T2JqQXR0cihFeGVjU3RhdGUqIAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqTGVuaWVudFRlc3RP
YmpBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNU
ZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUg
dmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0o
YmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICBy
ZXR1cm47CkBAIC0yMTY5LDEwICsyMDg5LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqTGVuaWVudFRl
c3RPYmpBdHRyKEV4ZWMKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpYTUxPYmpB
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5V
U0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigq
c3RhdGUsICJUZXN0T2JqIiwgIlhNTE9iakF0dHIiKTsKQEAgLTIxODYsMTAgKzIxMDYsMTAgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEV4ZWNTdGF0ZSogcwogfQogCiAKLXZvaWQgc2V0
SlNUZXN0T2JqQ3JlYXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3Zv
aWQgc2V0SlNUZXN0T2JqQ3JlYXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFz
ZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJv
d1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImNyZWF0ZSIpOwpAQCAtMjIwMywx
MCArMjEyMywxMCBAQCB2b2lkIHNldEpTVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUqIHN0YXRlCiB9
CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5n
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJyZWZsZWN0ZWRTdHJpbmdBdHRyIik7CkBAIC0yMjIwLDEwICsy
MTQwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGUKIH0KIAog
Ci12b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFs
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJyZWZsZWN0ZWRJbnRlZ3JhbEF0dHIiKTsKQEAgLTIyMzcsMTAg
KzIxNTcsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoRQogfQog
CiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRVbnNpZ25lZEludGVncmFsQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhy
b3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJyZWZsZWN0ZWRVbnNpZ25lZElu
dGVncmFsQXR0ciIpOwpAQCAtMjI1NCwxMCArMjE3NCwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialJl
ZmxlY3RlZFVuc2lnbmVkSW50ZWdyCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRC
b29sZWFuQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNl
dEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURf
UEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAg
ICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgInJlZmxlY3RlZEJv
b2xlYW5BdHRyIik7CkBAIC0yMjcxLDEwICsyMTkxLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVm
bGVjdGVkQm9vbGVhbkF0dHIoRXgKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVS
TEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rl
c3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFz
ZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJv
d1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgInJlZmxlY3RlZFVSTEF0dHIiKTsK
QEAgLTIyODgsMTAgKzIyMDgsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRy
KEV4ZWNTdAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVj
U3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialJlZmxl
Y3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVy
VHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAicmVmbGVjdGVkU3RyaW5nQXR0ciIpOwpAQCAt
MjMwNSwxMCArMjIyNSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIo
RXhlCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIo
RXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJB
TShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAg
IHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAicmVmbGVjdGVkQ3VzdG9t
SW50ZWdyYWxBdHRyIik7CkBAIC0yMzIyLDEwICsyMjQyLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWwKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbUJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoi
LCAicmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIiKTsKQEAgLTIzMzksMTAgKzIyNTksMTAgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQQogfQogCiAKLXZvaWQgc2V0
SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFS
QU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwg
IlRlc3RPYmoiLCAicmVmbGVjdGVkQ3VzdG9tVVJMQXR0ciIpOwpAQCAtMjM1NiwxMCArMjI3Niwx
MCBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoCiB9CiAKIAotdm9p
ZCBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
YmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialR5cGVkQXJyYXlBdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
LSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwg
InR5cGVkQXJyYXlBdHRyIik7CkBAIC0yMzczLDEwICsyMjkzLDEwIEBAIHZvaWQgc2V0SlNUZXN0
T2JqVHlwZWRBcnJheUF0dHIoRXhlY1N0YXQKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K3ZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwot
ICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAi
YXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iKTsKQEAgLTIzOTAsMTAgKzIzMTAsMTAgQEAgdm9pZCBz
ZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbgogfQogCiAKLXZvaWQgc2V0SlNUZXN0
T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShFeGVjU3RhdGUqIHN0YXRlLCBK
U09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uV2l0aE1lc3NhZ2UoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVy
VHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAiYXR0cldpdGhHZXR0ZXJFeGNlcHRpb25XaXRo
TWVzc2FnZSIpOwpAQCAtMjQwNywxMCArMjMyNywxMCBAQCB2b2lkIHNldEpTVGVzdE9iakF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNl
dEpTVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVT
RURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewog
ICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImF0dHJXaXRo
U2V0dGVyRXhjZXB0aW9uIik7CkBAIC0yNDI2LDEwICsyMzQ2LDEwIEBAIHZvaWQgc2V0SlNUZXN0
T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24KIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakF0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbldpdGhN
ZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJv
cigqc3RhdGUsICJUZXN0T2JqIiwgImF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2Ui
KTsKQEAgLTI0NDUsMTAgKzIzNjUsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbgogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRK
U1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsK
ICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
IHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJzdHJp
bmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIpOwpAQCAtMjQ2MiwxMCArMjM4MiwxMCBAQCB2b2lk
IHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjCiB9CiAKIAotdm9pZCBzZXRKU1Rl
c3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJv
cigqc3RhdGUsICJUZXN0T2JqIiwgInN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIik7CkBA
IC0yNDgxLDEwICsyNDAxLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cldpdGhTZXR0
ZXJFeGMKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialN0cmljdFR5cGVDaGVja2luZ0F0dHJpYnV0
ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9i
alN0cmljdFR5cGVDaGVja2luZ0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAg
ICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJzdHJpY3RUeXBlQ2hl
Y2tpbmdBdHRyaWJ1dGUiKTsKQEAgLTI1MDIsMTAgKzI0MjIsMTAgQEAgdm9pZCBzZXRKU1Rlc3RP
YmpTdHJpY3RUeXBlQ2hlY2tpbmdBdHRyaQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqQ3VzdG9t
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVz
dE9iakN1c3RvbUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVy
VHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAiY3VzdG9tQXR0ciIpOwpAQCAtMjUxNSwxMCAr
MjQzNSwxMCBAQCB2b2lkIHNldEpTVGVzdE9iakN1c3RvbUF0dHIoRXhlY1N0YXRlKiBzCiB9CiAK
IAotdm9pZCBzZXRKU1Rlc3RPYmpPbmZvbyhFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFz
ZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCit2b2lkIHNldEpTVGVzdE9iak9uZm9vKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURf
UEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAg
ICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm9uZm9vIik7CkBA
IC0yNTI4LDEwICsyNDQ4LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqT25mb28oRXhlY1N0YXRlKiBz
dGF0ZSwKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialdp
dGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhy
b3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ3aXRoU2NyaXB0U3RhdGVBdHRy
aWJ1dGUiKTsKQEAgLTI1NDUsMTAgKzI0NjUsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2Ny
aXB0U3RhdGVBdHRyaWJ1dAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqV2l0aENhbGxXaXRoQW5k
U2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQordm9pZCBzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJp
YnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJ3aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0
ZSIpOwpAQCAtMjU2MiwxMCArMjQ4MiwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhDYWxsV2l0
aEFuZFNldHRlckNhCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2
b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFN
KHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJU
ZXN0T2JqIiwgIndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlIik7CkBAIC0yNTgy
LDEwICsyNTAyLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnQK
IH0KIAogCi12b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialdp
dGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAg
ICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ3aXRoU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVSYWlzZXMiKTsKQEAgLTI1OTksMTAgKzI1MTksMTAgQEAgdm9pZCBzZXRKU1Rl
c3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqV2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhy
b3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZVJhaXNlcyIpOwpAQCAtMjYxOSwxMCArMjUzOSwxMCBAQCB2b2lkIHNl
dEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIs
ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlIik7CkBA
IC0yNjM5LDEwICsyNTU5LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnQKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0
QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFs
dWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFS
QU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAg
ICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIndpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMiKTsKQEAgLTI2NTksMTAg
KzI1NzksMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udAogfQog
CiAKLXZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVl
IHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAg
dGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZSIpOwpAQCAtMjY3OSwx
MCArMjU5OSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250CiB9
CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0
cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNU
ZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9i
aiIsICJ3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlIik7CkBAIC0yNjk3
LDEwICsyNjE3LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZEMK
IAogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi12b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rl
c3RPYmpDb25kaXRpb25hbEF0dHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFz
ZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJv
d1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImNvbmRpdGlvbmFsQXR0cjEiKTsK
QEAgLTI3MTYsMTAgKzI2MzYsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIx
KEV4ZWNTdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRp
dGlvbjIpCi12b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIy
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3Rh
dGUsICJUZXN0T2JqIiwgImNvbmRpdGlvbmFsQXR0cjIiKTsKQEAgLTI3MzUsMTAgKzI2NTUsMTAg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEV4ZWNTdAogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi12b2lkIHNldEpTVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQordm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBV
TlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImNvbmRp
dGlvbmFsQXR0cjMiKTsKQEAgLTI3NTQsMTAgKzI2NzQsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpD
b25kaXRpb25hbEF0dHIzKEV4ZWNTdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkK
LXZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVj
dCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRl
clR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImNvbmRpdGlvbmFsQXR0cjQiKTsKQEAgLTI3
NzAsMTAgKzI2OTAsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3Ry
dQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIp
Ci12b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmpl
Y3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0
ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJjb25kaXRpb25hbEF0dHI1Iik7CkBAIC0y
Nzg2LDEwICsyNzA2LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0
cnUKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24y
KQotdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI2Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2Jq
ZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0
dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAiY29uZGl0aW9uYWxBdHRyNiIpOwpAQCAt
MjgwMSwxMCArMjcyMSwxMCBAQCB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25z
dHJ1CiAKICNlbmRpZgogCi12b2lkIHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZShFeGVjU3RhdGUq
IHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakFueUF0dHJpYnV0
ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0
YXRlLCAiVGVzdE9iaiIsICJhbnlBdHRyaWJ1dGUiKTsKQEAgLTI4MTgsMTAgKzI3MzgsMTAgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0YXRlKgogfQogCiAKLXZvaWQgc2V0
SlNUZXN0T2JqTXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVT
RURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewog
ICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm11dGFibGVQ
b2ludCIpOwpAQCAtMjgzNSwxMCArMjc1NSwxMCBAQCB2b2lkIHNldEpTVGVzdE9iak11dGFibGVQ
b2ludChFeGVjU3RhdGUqCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludChF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iaklt
bXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7
CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5
cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImltbXV0YWJsZVBvaW50Iik7CkBAIC0yODUyLDEw
ICsyNzcyLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhlY1N0YXQKIH0K
IAogCi12b2lkIHNldEpTVGVzdE9ialN0cmF3YmVycnkoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
LSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwg
InN0cmF3YmVycnkiKTsKQEAgLTI4NjksMTAgKzI3ODksMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpT
dHJhd2JlcnJ5KEV4ZWNTdGF0ZSogcwogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqU3RyaWN0Rmxv
YXQoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RP
YmpTdHJpY3RGbG9hdChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3Qp
OworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJU
eXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJzdHJpY3RGbG9hdCIpOwpAQCAtMjg4NiwxMCAr
MjgwNiwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialN0cmljdEZsb2F0KEV4ZWNTdGF0ZSogCiB9CiAK
IAotdm9pZCBzZXRKU1Rlc3RPYmpJZChFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCit2b2lkIHNldEpTVGVzdE9iaklkKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUg
dmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0o
YmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0
aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImlkIik7CkBAIC0yOTAzLDEw
ICsyODIzLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqSWQoRXhlY1N0YXRlKiBzdGF0ZSwgSlMKIH0K
IAogCi12b2lkIHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRy
aWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9y
KCpzdGF0ZSwgIlRlc3RPYmoiLCAicmVwbGFjZWFibGVBdHRyaWJ1dGUiKTsKQEAgLTI5MTcsMTAg
KzI4MzcsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShFeAogfQog
CiAKLXZvaWQgc2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpOdWxsYWJs
ZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhy
b3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJudWxsYWJsZUxvbmdTZXR0YWJs
ZUF0dHJpYnV0ZSIpOwpAQCAtMjkzNCwxMCArMjg1NCwxMCBAQCB2b2lkIHNldEpTVGVzdE9iak51
bGxhYmxlTG9uZ1NldHRhYmxlQXR0CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpOdWxsYWJsZVN0
cmluZ1ZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0
SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAg
ICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJudWxsYWJsZVN0cmlu
Z1ZhbHVlIik7CkBAIC0yOTUxLDEwICsyODcxLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqTnVsbGFi
bGVTdHJpbmdWYWx1ZShFeGUKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhS
ZXNlcnZlZEVudW1UeXBlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3Zv
aWQgc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoi
LCAiYXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUiKTsKQEAgLTI5NzAsMTAgKzI4OTAsMTAg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbgogfQogCiAKLXZvaWQg
c2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAi
VGVzdE9iaiIsICJwdXRGb3J3YXJkc0F0dHJpYnV0ZSIpOwpAQCAtMjk4OCwxMCArMjkwOCwxMCBA
QCB2b2lkIHNldEpTVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKEV4CiB9CiAKIAotdm9pZCBz
ZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJs
ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwor
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBl
RXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJwdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlIik7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCShy
ZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDggKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0xODgsMTkgKzE4OCwxOCBAQCB2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6
OmRlc3RyCiAgICAgdGhpc09iamVjdC0+SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6fkpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2Jq
ZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsK
KyAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKiBkb21PYmplY3QgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgp
LCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBi
YXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAg
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRp
bnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRp
bnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw4ICs0MCw4IEBAIEpTQzo6RW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci12b2lkIHNldEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVj
dG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwordm9pZCBzZXRKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xh
c3MgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc1Byb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmlu
YWxPYmplY3QgewogcHVibGljOgpAQCAtMTQ5LDE5ICsxNDksMTggQEAgYm9vbCBKU1Rlc3RPdmVy
cmlkZUJ1aWx0aW5zOjpnZXRPd25Qcm9wZQogICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAg
IEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T3ZlcnJpZGVCdWlsdGluc1Byb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNU
ZXN0T3ZlcnJpZGVCdWlsdGluc1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RPdmVycmlkZUJ1aWx0
aW5zOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi12b2lkIHNldEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T3ZlcnJpZGVC
dWlsdGluc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKLSAgICBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKiBkb21PYmplY3QgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqPihiYXNlVmFsdWUp
OworICAgIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T3ZlcnJpZGVCdWlsdGluc1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAgICAg
dGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCShy
ZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzgsMTUgKzM4LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gQXR0cmlidXRl
cwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZVZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRvbmx5VmFsdWUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VQb3J0cyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VW
YWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK3ZvaWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlUmVhZG9ubHlWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRzKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZh
bHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0xMjcsMTAgKzEyNyw5IEBAIHZvaWQgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWMKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2U6On5KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0x
NDIsMTAgKzE0MSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWwK
IH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VSZWFkb25seVZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVO
VVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNTcsMTAgKzE1NSw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWwKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q2FjaGVkVmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE3NSwxMCAr
MTcyLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbAogfQogCiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVBvcnRz
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAg
IFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtMTkwLDEwICsxODYsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xv
dEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlW
YWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90
QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMjA4LDE5ICsyMDMsMTgg
QEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbAogfQogCiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2VQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBl
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmdldENvbnN0cnVj
dG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLXZvaWQg
c2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKLSAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkg
ewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpAQCAt
MjI5LDEwICsyMjMsMTAgQEAgdm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cgogICAgIGRvbU9iamVjdC0+cHV0RGlyZWN0KHN0YXRlLT52bSgpLCBzdGF0ZS0+cHJvcGVydHlO
YW1lcygpLmNvbnN0cnVjdG9yLCB2YWx1ZSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1
ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRl
LCAiVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIsICJ2YWx1ZSIpOwpAQCAtMjQ2
LDEwICsyNDAsMTAgQEAgdm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcgog
fQogCiAKLXZvaWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVk
VmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwogICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSIsICJjYWNoZWRWYWx1ZSIpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCwy
MSArNTgsMjEgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdAogCiAv
LyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNVbnNpZ25l
ZExvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdFR5cGVkZWZzVW5z
aWduZWRMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFs
dWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZz
Q29uc3RydWN0b3JUZXN0U3ViT2JqKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci12b2lkIHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0
ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNT
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpT
VGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xv
bmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlw
dFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yVGVz
dFN1Yk9iaihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpT
VGVzdFR5cGVkZWZzUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CkBAIC0yMTAsMTAgKzIxMCw5IEBAIGJvb2wgSlNUZXN0VHlwZWRlZnM6OmdldE93blBy
b3BlcnR5U2xvdCgKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0yMjUsMTAgKzIyNCw5IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb24KIH0KIAogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJp
YWxpemVkU2NyaXB0VmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVT
RURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CkBAIC0yNDAsMTAgKzIzOCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZz
SW1tdXRhYmxlU2UKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVj
dG9yVGVzdFN1Yk9iaihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmooRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRl
KTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0yNTMsMTAgKzI1MCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzQ29uc3RydWN0b3IKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBl
ZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVO
VVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMjcwLDEwICsyNjYsOSBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0CiB9CiAKIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90
QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0VHlwZWRlZnMq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTI4
NSwxMCArMjgwLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldAog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVk
ZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0
YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0zMDIsMTAgKzI5Niw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0clcKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
T2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0
aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RUeXBlZGVmcyog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMzE3
LDE5ICszMTAsMTggQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyVwog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNU
ZXN0VHlwZWRlZnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlw
ZWRlZnNQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdFR5cGVkZWZzUHJvdG90eXBl
KiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3RUeXBlZGVmczo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RUeXBl
ZGVmc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKLSAgICBKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0VHlwZWRl
ZnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnNQcm90
b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFk
b21PYmplY3QpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICBy
ZXR1cm47CkBAIC0zMzgsMTAgKzMzMCwxMCBAQCB2b2lkIHNldEpTVGVzdFR5cGVkZWZzQ29uc3Ry
dWN0b3IoRXhlY1N0CiAgICAgZG9tT2JqZWN0LT5wdXREaXJlY3Qoc3RhdGUtPnZtKCksIHN0YXRl
LT5wcm9wZXJ0eU5hbWVzKCkuY29uc3RydWN0b3IsIHZhbHVlKTsKIH0KIAotdm9pZCBzZXRKU1Rl
c3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVy
cm9yKCpzdGF0ZSwgIlRlc3RUeXBlZGVmcyIsICJ1bnNpZ25lZExvbmdMb25nQXR0ciIpOwpAQCAt
MzU1LDEwICszNDcsMTAgQEAgdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdB
dAogfQogCiAKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0
VmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rl
c3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RU
eXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRl
c3RUeXBlZGVmcyIsICJpbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUiKTsKQEAgLTM3Miwx
MCArMzY0LDEwIEBAIHZvaWQgc2V0SlNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemUKIH0K
IAogCi12b2lkIHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFz
ZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0VHlwZWRl
ZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAg
ICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdFR5cGVkZWZzIiwgImF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uIik7CkBAIC0zODksMTAgKzM4MSwxMCBAQCB2b2lkIHNldEpTVGVz
dFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RUeXBlZGVm
c0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9y
KCpzdGF0ZSwgIlRlc3RUeXBlZGVmcyIsICJhdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIpOwpAQCAt
NDA4LDEwICs0MDAsMTAgQEAgdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhj
ZQogfQogCiAKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVz
dFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAg
IFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
ICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlw
ZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0
VHlwZWRlZnMiLCAic3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iKTsKQEAgLTQyNSwxMCAr
NDE3LDEwIEBAIHZvaWQgc2V0SlNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aEdldHQKIH0KIAog
Ci12b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RUeXBlZGVm
c1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURf
UEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNU
ZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdFR5cGVkZWZz
IiwgInN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAJ
KHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU2F0dHJpYnV0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDkgKzMzLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNhdHRyaWJ1dGVSZWFkb25seShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzYXR0cmlidXRlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU2F0dHJp
YnV0ZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c2F0dHJpYnV0ZVJlYWRvbmx5KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc2F0dHJpYnV0ZUNvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU2F0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTYXR0
cmlidXRlUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC0xMTIsMTAgKzExMiw5IEBAIHZvaWQgSlNhdHRyaWJ1dGU6OmRlc3Ryb3koSlNDOjpKU0Nl
bGwqIGMKICAgICB0aGlzT2JqZWN0LT5KU2F0dHJpYnV0ZTo6fkpTYXR0cmlidXRlKCk7CiB9CiAK
LUVuY29kZWRKU1ZhbHVlIGpzYXR0cmlidXRlUmVhZG9ubHkoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIGpzYXR0cmlidXRlUmVhZG9ubHkoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwogICAgIEpTYXR0cmlidXRlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U2F0dHJpYnV0ZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMjcsMTkgKzEyNiwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBq
c2F0dHJpYnV0ZVJlYWRvbmx5KEV4ZWNTCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1
dGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1dGVDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKLSAgICBKU2F0dHJpYnV0ZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU2F0dHJpYnV0ZVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNhdHRyaWJ1
dGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNhdHRyaWJ1dGVQcm90b3R5
cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAg
ICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKEpTYXR0cmlidXRlOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2Jq
ZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTYXR0cmlidXRlQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTYXR0cmli
dXRlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwotICAgIEpTYXR0cmlidXRlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpT
YXR0cmlidXRlUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU2F0dHJpYnV0ZVByb3RvdHlw
ZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU2F0dHJpYnV0ZVByb3RvdHlwZSo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsK
ICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNy
ZWFkb25seS5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOCAr
MzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc3JlYWRvbmx5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBz
ZXRKU3JlYWRvbmx5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzcmVhZG9ubHlDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNyZWFkb25seUNvbnN0cnVj
dG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAKIGNsYXNzIEpTcmVhZG9ubHlQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZp
bmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEwOCwxOSArMTA4LDE4IEBAIHZvaWQgSlNyZWFkb25s
eTo6ZGVzdHJveShKU0M6OkpTQ2VsbCogY2UKICAgICB0aGlzT2JqZWN0LT5KU3JlYWRvbmx5Ojp+
SlNyZWFkb25seSgpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc3JlYWRvbmx5Q29uc3RydWN0b3Io
RXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzcmVhZG9ubHlDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAg
ICBKU3JlYWRvbmx5UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTcmVhZG9u
bHlQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTcmVhZG9ubHlQcm90b3R5cGUqIGRvbU9i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNyZWFkb25seVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNyZWFkb25s
eTo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkp
KTsKIH0KIAotdm9pZCBzZXRKU3JlYWRvbmx5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTcmVhZG9ubHlDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAgSlNyZWFkb25seVByb3Rv
dHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU3JlYWRvbmx5UHJvdG90eXBlKj4oYmFz
ZVZhbHVlKTsKKyAgICBKU3JlYWRvbmx5UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWND
YXN0PEpTcmVhZG9ubHlQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBS
dW50aW1lQXJyYXk6OmRlc3Ryb3koSlNDZWxsKiBjZWxsKQogICAgIHN0YXRpY19jYXN0PFJ1bnRp
bWVBcnJheSo+KGNlbGwpLT5SdW50aW1lQXJyYXk6On5SdW50aW1lQXJyYXkoKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgUnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUgUnVudGltZUFycmF5OjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBSdW50aW1lQXJyYXkq
IHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PFJ1bnRpbWVBcnJheSo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIXRoaXNPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9hcnJheS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX2FycmF5LmgJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAg
cHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIFJ1bnRpbWVBcnJheShFeGVjU3RhdGUqLCBTdHJ1
Y3R1cmUqKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0
ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKTsKIAogICAgIEJpbmRpbmdzQXJyYXkqIG1fYXJyYXk7CiB9OwpJbmRleDog
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCShyZXZpc2lvbiAxOTYyMzgp
CisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgUnVudGltZU1ldGhvZDo6ZmluaXNoQ3JlYXRpb24o
Vk0mIHYKICAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IFJ1bnRpbWVNZXRob2Q6Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBS
dW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBSdW50aW1lTWV0aG9kKiB0aGlzT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxSdW50aW1lTWV0aG9kKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmICghdGhpc09iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX21ldGhvZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX21ldGhvZC5oCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9tZXRob2QuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiwgRXhl
Y1N0YXRlKiwgUHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKIAogcHJpdmF0ZToKLSAgICBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0Kiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
IAogICAgIEJpbmRpbmdzOjpNZXRob2QqIG1fbWV0aG9kOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIs
OSArNjIsOSBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmludmFsaWRhdGUoKQogICAgIG1faW5zdGFu
Y2UgPSBudWxscHRyOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmYWxsYmFj
a09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBSdW50
aW1lT2JqZWN0OjpmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICBSdW50
aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihzbG90QmFzZSk7Cisg
ICAgUnVudGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0
aGlzT2JqLT5tX2luc3RhbmNlOwogCiAgICAgaWYgKCFpbnN0YW5jZSkKQEAgLTgwLDkgKzgwLDkg
QEAgRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYgogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVj
dDo6ZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgUnVu
dGltZU9iamVjdDo6ZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7ICAgIAotICAgIFJ1bnRpbWVP
YmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KHNsb3RCYXNlKTsKKyAgICBS
dW50aW1lT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNP
YmotPm1faW5zdGFuY2U7CiAKICAgICBpZiAoIWluc3RhbmNlKQpAQCAtOTksOSArOTksOSBAQCBF
bmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0OjpmaWVsZEdldHRlCiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShyZXN1bHQpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1lT2JqZWN0Ojpt
ZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgUnVudGlt
ZU9iamVjdDo6bWV0aG9kR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewotICAgIFJ1bnRpbWVPYmplY3Qq
IHRoaXNPYmogPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KHNsb3RCYXNlKTsKKyAgICBSdW50aW1l
T2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSA9IHRoaXNPYmotPm1f
aW5zdGFuY2U7CiAKICAgICBpZiAoIWluc3RhbmNlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmgJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX29iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03OCw5ICs3OCw5IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKFZNJik7CiAKIHByaXZhdGU6Ci0gICAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIGZhbGxiYWNrT2JqZWN0R2V0dGVyKEV4ZWNTdGF0ZSosIEpT
T2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIGZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIG1ldGhvZEdldHRl
cihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwor
ICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgZmllbGRHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7
CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIG1ldGhvZEdldHRlcihFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogICAgIFJlZlB0cjxJbnN0YW5jZT4gbV9pbnN0
YW5jZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMSBAQAorMjAxNi0wMi0w
NyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CisKKyAgICAgICAg
R2V0VmFsdWVGdW5jL1B1dFZhbHVlRnVuYyBzaG91bGQgbm90IHRha2UgYm90aCBzbG90QmFzZSBh
bmQgdGhpc1ZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTQwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbiBKYXZhU2NyaXB0IHRoZXJlIGFyZSB0d28gdHlwZXMgb2YgcHJvcGVydGllcyAtIHJl
Z3VsYXIgdmFsdWUgcHJvcGVydGllcywgYW5kIGFjY2Vzc29yIHByb3BlcnRpZXMuCisgICAgICAg
IE9uZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlc2UgaXMgaG93IHRoZXkgYXJlIHJlZmxlY3RlZCBi
eSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsIGFuZCBhbm90aGVyIGlzCisgICAgICAgIHdoYXQg
b2JqZWN0IHRoZXkgb3BlcmF0ZSBvbiBpbiB0aGUgY2FzZSBvZiBhIHByb3RvdHlwZSBhY2Nlc3Mu
IElmIHlvdSBhY2Nlc3MgYSB2YWx1ZSBwcm9wZXJ0eSBvZiBhCisgICAgICAgIHByb3RvdHlwZSBv
YmplY3QgaXQgcmV0dXJuIGEgdmFsdWUgcGVydGluZW50IHRvIHRoZSBwcm90b3R5cGUsIGJ1dCBp
biB0aGUgY2FzZSBvZiBhIHByb3RvdHlwZSBvYmplY3QKKyAgICAgICAgcmV0dXJuaW5nIGFuIGFj
Y2Vzc29yLCB0aGVuIHRoZSBhY2Nlc3NvciBmdW5jdGlvbiBpcyBhcHBsaWVkIHRvIHRoZSBiYXNl
IG9iamVjdCBvZiB0aGUgYWNjZXNzLgorCisgICAgICAgIEpTQyBzdXBwb3J0cyBzcGVjaWFsICdj
dXN0b20nIHByb3BlcnRpZXMgaW1wbGVtZW50ZWQgYXMgYSBjKysgY2FsbGJhY2ssIGFuZCB0aGVz
ZSBjdXN0b20gcHJvcGVydGllcworICAgICAgICBjYW4gYmUgdXNlZCB0byBpbXBsZW1lbnQgZWl0
aGVyIHZhbHVlLSBvciBhY2Nlc3Nvci1saWtlIGJlaGF2aW9yLiBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IgYmVoYXZpb3IKKyAgICAgICAgaXMgc2VsZWN0ZWQgdmlhIHRoZSBDdXN0b21BY2Nlc3Nv
ciBhdHRyaWJ1dGUuIFZhbHVlLSBvciBhY2Nlc3Nvci1saWtlIG9iamVjdCBzZWxlY3Rpb24gaXMg
Y3VycmVudAorICAgICAgICBzdXBwb3J0ZWQgYnkgcGFzc2luZyBib3RoIHRoZSBzbG90QmFzZSBh
bmQgdGhlIHRoaXNWYWx1ZSB0byB0aGUgY2FsbGJhY2ssYW5kIGhvcGluZyBpdCB1c2VzIHRoZQor
ICAgICAgICByaWdodCBvbmUuIFRoaXMgaXMgcHJvYmFibHkgaW5lZmZpY2llbnQsIGJ1Zy1wcm9u
ZSwgYW5kIGxlYWRzIHRvIGNyYXp5IGxpa2UgSlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24uCisKKyAg
ICAgICAgSW5zdGVhZCwganVzdCBwYXNzIG9uZSB0aGlzVmFsdWUgdG8gdGhlIGNhbGxiYWNrIGZ1
bmN0aW9ucywgY29uc2lzdGVudCB3aXRoIEN1c3RvbUFjY2Vzc29yLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0
OjpKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdlYktpdDo6SlNO
UE9iamVjdDo6cHJvcGVydHlHZXR0ZXIpOgorICAgICAgICAoV2ViS2l0OjpKU05QT2JqZWN0Ojpt
ZXRob2RHZXR0ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05Q
T2JqZWN0Lmg6CisgICAgICAgICAgICAtIE1lcmdlZCBzbG90QmFzZSAmIHRoaXNWYWx1ZSB0byBj
dXN0b20gcHJvcGVydHkgY2FsbGJhY2tzLgorCiAyMDE2LTAyLTA2ICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBDYWxsIENGUmVsZWFzZSgpIG9uIFNlY1JlcXVp
cmVtZW50UmVmIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZApJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAko
cmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL0pTTlBPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzMsOSArNDMzLDkgQEAg
dm9pZCBKU05QT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTTwogICAgIG5wbk1lbUZyZWUo
aWRlbnRpZmllcnMpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0Ojpwcm9wZXJ0eUdl
dHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0Ojpw
cm9wZXJ0eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICBKU05QT2JqZWN0KiB0aGlzT2JqID0g
anNDYXN0PEpTTlBPYmplY3QqPihzbG90QmFzZSk7CisgICAgSlNOUE9iamVjdCogdGhpc09iaiA9
IGpzQ2FzdDxKU05QT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iaiwgaW5mbygpKTsKICAgICAKICAgICBpZiAo
IXRoaXNPYmotPm1fbnBPYmplY3QpCkBAIC00NzMsOSArNDczLDkgQEAgRW5jb2RlZEpTVmFsdWUg
SlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocHJv
cGVydHlWYWx1ZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTTlBPYmplY3Q6Om1ldGhvZEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0OjptZXRo
b2RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNOUE9iamVjdCogdGhpc09iaiA9IGpzQ2Fz
dDxKU05QT2JqZWN0Kj4oc2xvdEJhc2UpOworICAgIEpTTlBPYmplY3QqIHRoaXNPYmogPSBqc0Nh
c3Q8SlNOUE9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmosIGluZm8oKSk7CiAgICAgCiAgICAgaWYgKCF0aGlz
T2JqLT5tX25wT2JqZWN0KQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL0pTTlBPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5oCShyZXZpc2lvbiAxOTYyMzgpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC05NCw4ICs5NCw4IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMg
dm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmLCBKU0M6OkVudW1lcmF0aW9uTW9kZSk7CiAKLSAgICBz
dGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eUdldHRlcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci0gICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKKyAgICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBwcm9wZXJ0eUdldHRlcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKKyAg
ICBzdGF0aWMgSlNDOjpFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAgICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIHRocm93SW52YWxpZEFjY2Vzc0Vycm9yKEpTQzo6RXhlY1N0YXRlKik7CiAK
ICAgICBOUFJ1bnRpbWVPYmplY3RNYXAqIG1fb2JqZWN0TWFwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270915</attachid>
            <date>2016-02-09 00:37:31 -0800</date>
            <delta_ts>2016-02-09 11:44:52 -0800</delta_ts>
            <desc>With style fix</desc>
            <filename>154009.2.patch</filename>
            <type>text/plain</type>
            <size>287202</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzMSBA
QAorMjAxNi0wMi0wNyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+
CisKKyAgICAgICAgR2V0VmFsdWVGdW5jL1B1dFZhbHVlRnVuYyBzaG91bGQgbm90IHRha2UgYm90
aCBzbG90QmFzZSBhbmQgdGhpc1ZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTQwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJbiBKYXZhU2NyaXB0IHRoZXJlIGFyZSB0d28gdHlwZXMgb2YgcHJv
cGVydGllcyAtIHJlZ3VsYXIgdmFsdWUgcHJvcGVydGllcywgYW5kIGFjY2Vzc29yIHByb3BlcnRp
ZXMuCisgICAgICAgIE9uZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlc2UgaXMgaG93IHRoZXkgYXJl
IHJlZmxlY3RlZCBieSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsIGFuZCBhbm90aGVyIGlzCisg
ICAgICAgIHdoYXQgb2JqZWN0IHRoZXkgb3BlcmF0ZSBvbiBpbiB0aGUgY2FzZSBvZiBhIHByb3Rv
dHlwZSBhY2Nlc3MuIElmIHlvdSBhY2Nlc3MgYSB2YWx1ZSBwcm9wZXJ0eSBvZiBhCisgICAgICAg
IHByb3RvdHlwZSBvYmplY3QgaXQgcmV0dXJuIGEgdmFsdWUgcGVydGluZW50IHRvIHRoZSBwcm90
b3R5cGUsIGJ1dCBpbiB0aGUgY2FzZSBvZiBhIHByb3RvdHlwZSBvYmplY3QKKyAgICAgICAgcmV0
dXJuaW5nIGFuIGFjY2Vzc29yLCB0aGVuIHRoZSBhY2Nlc3NvciBmdW5jdGlvbiBpcyBhcHBsaWVk
IHRvIHRoZSBiYXNlIG9iamVjdCBvZiB0aGUgYWNjZXNzLgorCisgICAgICAgIEpTQyBzdXBwb3J0
cyBzcGVjaWFsICdjdXN0b20nIHByb3BlcnRpZXMgaW1wbGVtZW50ZWQgYXMgYSBjKysgY2FsbGJh
Y2ssIGFuZCB0aGVzZSBjdXN0b20gcHJvcGVydGllcworICAgICAgICBjYW4gYmUgdXNlZCB0byBp
bXBsZW1lbnQgZWl0aGVyIHZhbHVlLSBvciBhY2Nlc3Nvci1saWtlIGJlaGF2aW9yLiBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IgYmVoYXZpb3IKKyAgICAgICAgaXMgc2VsZWN0ZWQgdmlhIHRoZSBD
dXN0b21BY2Nlc3NvciBhdHRyaWJ1dGUuIFZhbHVlLSBvciBhY2Nlc3Nvci1saWtlIG9iamVjdCBz
ZWxlY3Rpb24gaXMgY3VycmVudAorICAgICAgICBzdXBwb3J0ZWQgYnkgcGFzc2luZyBib3RoIHRo
ZSBzbG90QmFzZSBhbmQgdGhlIHRoaXNWYWx1ZSB0byB0aGUgY2FsbGJhY2ssYW5kIGhvcGluZyBp
dCB1c2VzIHRoZQorICAgICAgICByaWdodCBvbmUuIFRoaXMgaXMgcHJvYmFibHkgaW5lZmZpY2ll
bnQsIGJ1Zy1wcm9uZSwgYW5kIGxlYWRzIHRvIGNyYXp5IGxpa2UgSlNCb3VuZFNsb3RCYXNlRnVu
Y3Rpb24uCisKKyAgICAgICAgSW5zdGVhZCwganVzdCBwYXNzIG9uZSB0aGlzVmFsdWUgdG8gdGhl
IGNhbGxiYWNrIGZ1bmN0aW9ucywgY29uc2lzdGVudCB3aXRoIEN1c3RvbUFjY2Vzc29yLgorCisg
ICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFj
a09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmdldFN0YXRpY1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmpl
Y3Q8UGFyZW50Pjo6Y2FsbGJhY2tHZXR0ZXIpOgorICAgICAgICAgICAgLSBNZXJnZWQgc2xvdEJh
c2UgJiB0aGlzVmFsdWUgdG8gY3VzdG9tIHByb3BlcnR5IGNhbGxiYWNrcy4KKyAgICAgICAgKiBi
eXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6
OmdlbmVyYXRlKToKKyAgICAgICAgICAgIC0gTW9kaWZpZWQgdGhlIGNhbGwgYmVpbmcgSklUIGdl
bmVyYXRlZCDigJPCoEdldFZhbHVlRnVuYy9QdXRWYWx1ZUZ1bmMgbm93IG9ubHkgdGFrZSAzLAor
ICAgICAgICAgICAgICByYXRoZXIgdGhhbiA0IGFyZ3VtZW50cy4gU2VsZWN0cyB3aGljaCBvbmUg
dG8ga2VlcC9kcm9wIGJhc2VkIG9uIGFjY2VzcyB0eXBlLgorICAgICAgICAoV1RGOjpwcmludElu
dGVybmFsKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oOgorICAgICAg
ICAoSlNDOjpBY2Nlc3NDYXNlOjppc0dldCk6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6Omlz
UHV0KToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6aXNJbik6CisgICAgICAgIChKU0M6OkFj
Y2Vzc0Nhc2U6OmRvZXNDYWxscyk6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmlzR2V0dGVy
KToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6
UHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKToKKyAgICAgICAgKiBqaXQvUmVwYXRj
aC5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OnRy
eUNhY2hlUHV0QnlJRCk6CisgICAgICAgICAgICAtIFNwbGl0IHRoZSBDdXN0b21HZXR0ZXIvU2V0
dGVyIGFjY2VzcyB0eXBlcyBpbnRvIFZhbHVlL0FjY2Vzc29yIHZhcmlhbnRzLgorICAgICAgICAq
IGpzYy5jcHA6CisgICAgICAgIChXVEY6OkN1c3RvbUdldHRlcjo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKFdURjo6Q3VzdG9tR2V0dGVyOjpjdXN0b21HZXR0ZXIpOgorICAgICAgICAo
V1RGOjpSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheSk6CisgICAgICAgIChXVEY6OlJ1bnRpbWVB
cnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgICAgIC0gTWVyZ2VkIHNsb3RCYXNlICYgdGhp
c1ZhbHVlIHRvIGN1c3RvbSBwcm9wZXJ0eSBjYWxsYmFja3MuCisgICAgICAgICogcnVudGltZS9D
dXN0b21HZXR0ZXJTZXR0ZXIuY3BwOgorICAgICAgICAoSlNDOjpjYWxsQ3VzdG9tU2V0dGVyKToK
KyAgICAgICAgICAgIC0gUGFzcyAzIGFyZ3VtZW50cyB3aGVuIGNhbGxpbmcgUHV0VmFsdWVGdW5j
LgorICAgICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmg6CisgICAgICAgICogcnVu
dGltZS9KU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmJvdW5kU2xv
dEJhc2VGdW5jdGlvbkNhbGwpOgorICAgICAgICAoSlNDOjpKU0JvdW5kU2xvdEJhc2VGdW5jdGlv
bjo6SlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1
ZS5jcHA6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnB1dFRvUHJpbWl0aXZlKToKKyAgICAgICAg
ICAgIC0gY2FsbEN1c3RvbVNldHRlciBjdXJyZW50bHkgdGFrZXMgYSBmbGFnIHRvIGRpc3Rpbmd1
aXNoIHZhbHVlL2FjY2Vzc29yIGNhbGxzLgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OnJldHJpZXZlQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6SlNG
dW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKToKKyAgICAgICAgKEpTQzo6cmV0cmlldmVDYWxsZXJG
dW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmNhbGxlckdldHRlcik6CisgICAg
ICAgIChKU0M6OkpTRnVuY3Rpb246Omxlbmd0aEdldHRlcik6CisgICAgICAgIChKU0M6OkpTRnVu
Y3Rpb246Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU01vZHVsZU5hbWVzcGFjZU9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgIChKU0M6
OmNhbGxiYWNrR2V0dGVyKToKKyAgICAgICAgICAgIC0gTWVyZ2VkIHNsb3RCYXNlICYgdGhpc1Zh
bHVlIHRvIGN1c3RvbSBwcm9wZXJ0eSBjYWxsYmFja3MuCisgICAgICAgICogcnVudGltZS9KU09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRJbmxpbmVTbG93KToKKyAgICAg
ICAgICAgIC0gY2FsbEN1c3RvbVNldHRlciBjdXJyZW50bHkgdGFrZXMgYSBmbGFnIHRvIGRpc3Rp
bmd1aXNoIHZhbHVlL2FjY2Vzc29yIGNhbGxzLgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6
CisgICAgICAgIChKU0M6OnB1dEVudHJ5KToKKyAgICAgICAgICAgIC0gc3BsaXQgUHV0UHJvcGVy
dHlTbG90IHNldEN1c3RvbSBpbnRvIFZhbHVlL0FjY2Vzc29yIHZhcmlhbnRzLgorICAgICAgICAq
IHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90Ojpm
dW5jdGlvbkdldHRlcik6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6Y3VzdG9tR2V0dGVy
KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5oOgorICAgICAgICAoSlNDOjpQcm9w
ZXJ0eVNsb3Q6OlByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6Z2V0
VmFsdWUpOgorICAgICAgICAgICAgLSBhZGRlZCBjdXN0b21HZXR0ZXIgaGVscGVyIHRvIGNhbGwg
R2V0VmFsdWVGdW5jLgorICAgICAgICAqIHJ1bnRpbWUvUHV0UHJvcGVydHlTbG90Lmg6CisgICAg
ICAgIChKU0M6OlB1dFByb3BlcnR5U2xvdDo6UHV0UHJvcGVydHlTbG90KToKKyAgICAgICAgKEpT
Qzo6UHV0UHJvcGVydHlTbG90OjpzZXROZXdQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OlB1dFBy
b3BlcnR5U2xvdDo6c2V0Q3VzdG9tVmFsdWUpOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNs
b3Q6OnNldEN1c3RvbUFjY2Vzc29yKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90Ojpz
ZXRUaGlzVmFsdWUpOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6OmN1c3RvbVNldHRl
cik6CisgICAgICAgIChKU0M6OlB1dFByb3BlcnR5U2xvdDo6Y29udGV4dCk6CisgICAgICAgIChK
U0M6OlB1dFByb3BlcnR5U2xvdDo6aXNTdHJpY3RNb2RlKToKKyAgICAgICAgKEpTQzo6UHV0UHJv
cGVydHlTbG90Ojppc0NhY2hlYWJsZVB1dCk6CisgICAgICAgIChKU0M6OlB1dFByb3BlcnR5U2xv
dDo6aXNDYWNoZWFibGVTZXR0ZXIpOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6Omlz
Q2FjaGVhYmxlQ3VzdG9tKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90Ojppc0N1c3Rv
bUFjY2Vzc29yKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90Ojppc0luaXRpYWxpemF0
aW9uKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90OjpjYWNoZWRPZmZzZXQpOgorICAg
ICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6OnNldEN1c3RvbVByb3BlcnR5KTogRGVsZXRlZC4K
KyAgICAgICAgICAgIC0gc3BsaXQgUHV0UHJvcGVydHlTbG90IHNldEN1c3RvbSBpbnRvIFZhbHVl
L0FjY2Vzc29yIHZhcmlhbnRzLgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKToKKyAgICAgICAgKEpT
Qzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIzKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0KToK
KyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KToKKyAgICAgICAgKEpTQzo6
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI3KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KToKKyAg
ICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5KToKKyAgICAgICAgKEpTQzo6cmVn
RXhwQ29uc3RydWN0b3JJbnB1dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTXVs
dGlsaW5lKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbik6CisgICAgICAgIChKU0M6OnJl
Z0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1
Y3RvclJpZ2h0Q29udGV4dCk6CisgICAgICAgIChKU0M6OnNldFJlZ0V4cENvbnN0cnVjdG9ySW5w
dXQpOgorICAgICAgICAoSlNDOjpzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSk6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmpl
Y3Q6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6cmVnRXhwT2JqZWN0U2V0TGFz
dEluZGV4U3RyaWN0KToKKyAgICAgICAgKEpTQzo6cmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4Tm9u
U3RyaWN0KToKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpwdXQpOgorICAgICAgICAgICAg
LSBNZXJnZWQgc2xvdEJhc2UgJiB0aGlzVmFsdWUgdG8gY3VzdG9tIHByb3BlcnR5IGNhbGxiYWNr
cy4KKwogMjAxNi0wMi0wNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIEZUTCBtdXN0IHN0b3JlIHRoZSBjYWxsIHNpdGUgaW5kZXggYmVmb3JlIHJ1bnRpbWUgY2Fs
bHMsIGV2ZW4gaWYgaXQncyB0aGUgdGFpbCBjYWxsIHNsb3cgcGF0aApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDksNyArMzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAg
ICBDdXN0b21HZXR0ZXIqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEN1c3RvbUdldHRlcio+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQpA
QCAtNDU0LDcgKzQ1NCw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAgIFJ1bnRpbWVBcnJheSogdGhpc09i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZUFycmF5Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAkocmV2aXNpb24gMTk2MjM4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTIxMSw4ICsyMTEsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdChFeGVjU3RhdGUqKTsKICAgIAogICAgIEpTVmFsdWUgZ2V0
U3RhdGljVmFsdWUoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2Fs
bGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIGNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tPYmplY3REYXRh
PiBtX2NhbGxiYWNrT2JqZWN0RGF0YTsKIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAkocmV2aXNpb24gMTk2
MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rp
b25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwMCw5ICs2MDAsOSBAQCBKU1ZhbHVlIEpTQ2FsbGJh
Y2tPYmplY3Q8UGFyZW50Pjo6Z2V0U3RhCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RQYXJlbnQsIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09i
amVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICBK
U0NhbGxiYWNrT2JqZWN0KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdChzbG90UGFyZW50KTsK
KyAgICBKU0NhbGxiYWNrT2JqZWN0KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdCh0aGlzVmFs
dWUpOwogICAgIAogICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHku
CiAgICAgUHJvcGVydHlTbG90IHNsb3QyKHRoaXNPYmopOwpAQCAtNjI4LDkgKzYyOCw5IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50PjoKIH0KIAogdGVtcGxhdGUgPGNs
YXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2Fs
bGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdFBhcmVudCwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU0Nh
bGxiYWNrT2JqZWN0PFBhcmVudD46OmNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewotICAg
IEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHNsb3RQYXJlbnQp
OworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHRoaXNW
YWx1ZSk7CiAgICAgCiAgICAgSlNPYmplY3RSZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXNPYmopOwog
ICAgIFJlZlB0cjxPcGFxdWVKU1N0cmluZz4gcHJvcGVydHlOYW1lUmVmOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3Bw
CShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9s
eW1vcnBoaWNBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjMsOCArNTIzLDEwIEBAIHZv
aWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGUoQWNjZXNzR2VuZXJhdGkKICAgICBjYXNlIExvYWQ6CiAg
ICAgY2FzZSBHZXR0ZXI6CiAgICAgY2FzZSBTZXR0ZXI6Ci0gICAgY2FzZSBDdXN0b21HZXR0ZXI6
Ci0gICAgY2FzZSBDdXN0b21TZXR0ZXI6IHsKKyAgICBjYXNlIEN1c3RvbVZhbHVlR2V0dGVyOgor
ICAgIGNhc2UgQ3VzdG9tQWNjZXNzb3JHZXR0ZXI6CisgICAgY2FzZSBDdXN0b21WYWx1ZVNldHRl
cjoKKyAgICBjYXNlIEN1c3RvbUFjY2Vzc29yU2V0dGVyOiB7CiAgICAgICAgIGlmIChpc1ZhbGlk
T2Zmc2V0KG1fb2Zmc2V0KSkgewogICAgICAgICAgICAgU3RydWN0dXJlKiBjdXJyU3RydWN0dXJl
OwogICAgICAgICAgICAgaWYgKG1fY29uZGl0aW9uU2V0LmlzRW1wdHkoKSkKQEAgLTU1Myw3ICs1
NTUsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlKEFjY2Vzc0dlbmVyYXRpCiAgICAgICAg
ICAgICBiYXNlRm9yQWNjZXNzR1BSID0gYmFzZUZvckdldEdQUjsKIAogICAgICAgICBHUFJSZWcg
bG9hZGVkVmFsdWVHUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgICAgICBpZiAobV90eXBlICE9IEN1
c3RvbUdldHRlciAmJiBtX3R5cGUgIT0gQ3VzdG9tU2V0dGVyKSB7CisgICAgICAgIGlmIChtX3R5
cGUgIT0gQ3VzdG9tVmFsdWVHZXR0ZXIgJiYgbV90eXBlICE9IEN1c3RvbUFjY2Vzc29yR2V0dGVy
ICYmIG1fdHlwZSAhPSBDdXN0b21WYWx1ZVNldHRlciAmJiBtX3R5cGUgIT0gQ3VzdG9tQWNjZXNz
b3JTZXR0ZXIpIHsKICAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gTG9hZCkKICAgICAgICAgICAg
ICAgICBsb2FkZWRWYWx1ZUdQUiA9IHZhbHVlUmVncy5wYXlsb2FkR1BSKCk7CiAgICAgICAgICAg
ICBlbHNlCkBAIC03NTAsMjQgKzc1MiwyNiBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlKEFj
Y2Vzc0dlbmVyYXRpCiAgICAgICAgICAgICBpZiAobmVlZHNUb01ha2VSb29tT25TdGFja0ZvckND
YWxsKQogICAgICAgICAgICAgICAgIGppdC5tYWtlU3BhY2VPblN0YWNrRm9yQ0NhbGwoKTsKIAot
ICAgICAgICAgICAgLy8gZ2V0dGVyOiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhl
Y1N0YXRlKiwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSk7Ci0gICAgICAgICAgICAvLyBzZXR0ZXI6IHZvaWQgKCpQdXRWYWx1ZUZ1bmMp
KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB2YWx1ZSk7CisgICAgICAgICAgICAvLyBnZXR0ZXI6IEVuY29kZWRKU1Zh
bHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSk7CisgICAgICAgICAgICAvLyBzZXR0ZXI6IHZvaWQgKCpQdXRWYWx1ZUZ1
bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHZhbHVlKTsKKyAgICAgICAgICAgIC8vIEN1c3RvbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aGUgc2xv
dEJhc2UgKHRoZSBwcm9wZXJ0eSBob2xkZXIpLCBjdXN0b20gYWNjZXNzb3JzIGFyZSBwYXNzZWQg
dGhlIHRoaXNWYXVsZSAocmVjaWV2ZXIpLgorICAgICAgICAgICAgR1BSUmVnIGJhc2VGb3JDdXN0
b21WYWx1ZSA9IG1fdHlwZSA9PSBDdXN0b21WYWx1ZUdldHRlciB8fCBtX3R5cGUgPT0gQ3VzdG9t
VmFsdWVTZXR0ZXIgPyBiYXNlRm9yQWNjZXNzR1BSIDogYmFzZUZvckdldEdQUjsKICNpZiBVU0Uo
SlNWQUxVRTY0KQotICAgICAgICAgICAgaWYgKG1fdHlwZSA9PSBDdXN0b21HZXR0ZXIpIHsKKyAg
ICAgICAgICAgIGlmIChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1
c3RvbUFjY2Vzc29yR2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKLSAgICAgICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUiwgYmFz
ZUZvckdldEdQUiwKKyAgICAgICAgICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAogICAg
ICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgp
KSk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGJhc2VGb3JBY2Nlc3NHUFIsIGJhc2VGb3JHZXRHUFIsIHZhbHVlUmVn
cy5ncHIoKSk7CisgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShiYXNlRm9yQ3VzdG9tVmFsdWUsIHZhbHVlUmVncy5ncHIoKSk7CiAjZWxzZQotICAgICAgICAg
ICAgaWYgKG1fdHlwZSA9PSBDdXN0b21HZXR0ZXIpIHsKKyAgICAgICAgICAgIGlmIChtX3R5cGUg
PT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1c3RvbUFjY2Vzc29yR2V0dGVyKSB7
CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKLSAgICAg
ICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUiwgYmFzZUZvckdldEdQUiwKKyAgICAgICAg
ICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAogICAgICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKICAgICAgICAgICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSkpOwogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKAotICAgICAgICAgICAgICAgICAgICBiYXNlRm9yQWNjZXNzR1BSLCBiYXNlRm9yR2V0
R1BSLAorICAgICAgICAgICAgICAgICAgICBiYXNlRm9yQ3VzdG9tVmFsdWUsCiAgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAog
ICAgICAgICAgICAgICAgICAgICB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCB2YWx1ZVJlZ3MudGFn
R1BSKCkpOwogICAgICAgICAgICAgfQpAQCAtNzc1LDcgKzc3OSw3IEBAIHZvaWQgQWNjZXNzQ2Fz
ZTo6Z2VuZXJhdGUoQWNjZXNzR2VuZXJhdGkKICAgICAgICAgICAgIGppdC5zdG9yZVB0cihHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgJnZtLnRvcENhbGxGcmFtZSk7CiAKICAgICAgICAgICAg
IG9wZXJhdGlvbkNhbGwgPSBqaXQuY2FsbCgpOwotICAgICAgICAgICAgaWYgKG1fdHlwZSA9PSBD
dXN0b21HZXR0ZXIpCisgICAgICAgICAgICBpZiAobV90eXBlID09IEN1c3RvbVZhbHVlR2V0dGVy
IHx8IG1fdHlwZSA9PSBDdXN0b21BY2Nlc3NvckdldHRlcikKICAgICAgICAgICAgICAgICBqaXQu
c2V0dXBSZXN1bHRzKHZhbHVlUmVncyk7CiAgICAgICAgICAgICBpZiAobmVlZHNUb01ha2VSb29t
T25TdGFja0ZvckNDYWxsKQogICAgICAgICAgICAgICAgIGppdC5yZWNsYWltU3BhY2VPblN0YWNr
Rm9yQ0NhbGwoKTsKQEAgLTE0MTgsMTEgKzE0MjIsMTcgQEAgdm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiBvdXQsIEFjYwogICAgIGNhc2UgQWNjZXNzQ2FzZTo6U2V0dGVyOgogICAgICAg
ICBvdXQucHJpbnQoIlNldHRlciIpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBBY2Nlc3ND
YXNlOjpDdXN0b21HZXR0ZXI6Ci0gICAgICAgIG91dC5wcmludCgiQ3VzdG9tR2V0dGVyIik7Cisg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21WYWx1ZUdldHRlcjoKKyAgICAgICAgb3V0LnByaW50
KCJDdXN0b21WYWx1ZUdldHRlciIpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBBY2Nlc3ND
YXNlOjpDdXN0b21TZXR0ZXI6Ci0gICAgICAgIG91dC5wcmludCgiQ3VzdG9tU2V0dGVyIik7Cisg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3NvckdldHRlcjoKKyAgICAgICAgb3V0LnBy
aW50KCJDdXN0b21BY2Nlc3NvckdldHRlciIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBB
Y2Nlc3NDYXNlOjpDdXN0b21WYWx1ZVNldHRlcjoKKyAgICAgICAgb3V0LnByaW50KCJDdXN0b21W
YWx1ZVNldHRlciIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0
b21BY2Nlc3NvclNldHRlcjoKKyAgICAgICAgb3V0LnByaW50KCJDdXN0b21BY2Nlc3NvclNldHRl
ciIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBY2Nlc3NDYXNlOjpJbnRyaW5zaWNHZXR0
ZXI6CiAgICAgICAgIG91dC5wcmludCgiSW50cmluc2ljR2V0dGVyIik7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAkocmV2
aXNpb24gMTk2MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDggKzU4LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgTWlzcywKICAgICAgICAgR2V0dGVyLAogICAgICAgICBTZXR0ZXIsCi0gICAgICAgIEN1
c3RvbUdldHRlciwKLSAgICAgICAgQ3VzdG9tU2V0dGVyLAorICAgICAgICBDdXN0b21WYWx1ZUdl
dHRlciwKKyAgICAgICAgQ3VzdG9tQWNjZXNzb3JHZXR0ZXIsCisgICAgICAgIEN1c3RvbVZhbHVl
U2V0dGVyLAorICAgICAgICBDdXN0b21BY2Nlc3NvclNldHRlciwKICAgICAgICAgSW50cmluc2lj
R2V0dGVyLAogICAgICAgICBJbkhpdCwKICAgICAgICAgSW5NaXNzLApAQCAtNzMsMTQgKzc1LDE2
IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBUcmFuc2l0aW9uOgogICAgICAgICBjYXNlIFJlcGxh
Y2U6CiAgICAgICAgIGNhc2UgU2V0dGVyOgotICAgICAgICBjYXNlIEN1c3RvbVNldHRlcjoKKyAg
ICAgICAgY2FzZSBDdXN0b21WYWx1ZVNldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21BY2Nlc3Nv
clNldHRlcjoKICAgICAgICAgY2FzZSBJbkhpdDoKICAgICAgICAgY2FzZSBJbk1pc3M6CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgTG9hZDoKICAgICAgICAgY2FzZSBN
aXNzOgogICAgICAgICBjYXNlIEdldHRlcjoKLSAgICAgICAgY2FzZSBDdXN0b21HZXR0ZXI6Cisg
ICAgICAgIGNhc2UgQ3VzdG9tVmFsdWVHZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tQWNjZXNz
b3JHZXR0ZXI6CiAgICAgICAgIGNhc2UgSW50cmluc2ljR2V0dGVyOgogICAgICAgICBjYXNlIEFy
cmF5TGVuZ3RoOgogICAgICAgICBjYXNlIFN0cmluZ0xlbmd0aDoKQEAgLTk0LDcgKzk4LDggQEAg
cHVibGljOgogICAgICAgICBjYXNlIExvYWQ6CiAgICAgICAgIGNhc2UgTWlzczoKICAgICAgICAg
Y2FzZSBHZXR0ZXI6Ci0gICAgICAgIGNhc2UgQ3VzdG9tR2V0dGVyOgorICAgICAgICBjYXNlIEN1
c3RvbVZhbHVlR2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yR2V0dGVyOgogICAg
ICAgICBjYXNlIEludHJpbnNpY0dldHRlcjoKICAgICAgICAgY2FzZSBJbkhpdDoKICAgICAgICAg
Y2FzZSBJbk1pc3M6CkBAIC0xMDQsNyArMTA5LDggQEAgcHVibGljOgogICAgICAgICBjYXNlIFRy
YW5zaXRpb246CiAgICAgICAgIGNhc2UgUmVwbGFjZToKICAgICAgICAgY2FzZSBTZXR0ZXI6Ci0g
ICAgICAgIGNhc2UgQ3VzdG9tU2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbVZhbHVlU2V0dGVy
OgorICAgICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yU2V0dGVyOgogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTUsMTIgKzEyMSwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIGNhc2UgTG9hZDoKICAgICAgICAgY2FzZSBNaXNzOgogICAgICAgICBjYXNlIEdldHRl
cjoKLSAgICAgICAgY2FzZSBDdXN0b21HZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tVmFsdWVH
ZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tQWNjZXNzb3JHZXR0ZXI6CiAgICAgICAgIGNhc2Ug
SW50cmluc2ljR2V0dGVyOgogICAgICAgICBjYXNlIFRyYW5zaXRpb246CiAgICAgICAgIGNhc2Ug
UmVwbGFjZToKICAgICAgICAgY2FzZSBTZXR0ZXI6Ci0gICAgICAgIGNhc2UgQ3VzdG9tU2V0dGVy
OgorICAgICAgICBjYXNlIEN1c3RvbVZhbHVlU2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbUFj
Y2Vzc29yU2V0dGVyOgogICAgICAgICBjYXNlIEFycmF5TGVuZ3RoOgogICAgICAgICBjYXNlIFN0
cmluZ0xlbmd0aDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIwOCw4ICsyMTYsMTAg
QEAgcHVibGljOgogICAgICAgICBzd2l0Y2ggKHR5cGUoKSkgewogICAgICAgICBjYXNlIEdldHRl
cjoKICAgICAgICAgY2FzZSBTZXR0ZXI6Ci0gICAgICAgIGNhc2UgQ3VzdG9tR2V0dGVyOgotICAg
ICAgICBjYXNlIEN1c3RvbVNldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21WYWx1ZUdldHRlcjoK
KyAgICAgICAgY2FzZSBDdXN0b21BY2Nlc3NvckdldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21W
YWx1ZVNldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21BY2Nlc3NvclNldHRlcjoKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMjIwLDcgKzIzMCw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgR2V0dGVyOgotICAgICAgICBjYXNlIEN1c3RvbUdldHRl
cjoKKyAgICAgICAgY2FzZSBDdXN0b21WYWx1ZUdldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21B
Y2Nlc3NvckdldHRlcjoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzgsNyArMjM4LDggQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yUwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21TZXR0ZXI6Cisg
ICAgICAgICAgICBjYXNlIEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlU2V0dGVyOgorICAgICAgICAg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3NvclNldHRlcjoKICAgICAgICAgICAgICAg
ICByZXR1cm4gUHV0QnlJZFN0YXR1cyhNYWtlc0NhbGxzKTsKIAogICAgICAgICAgICAgZGVmYXVs
dDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTk2
MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAzLDggKzMwMywxMCBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2Fj
aGVHZXRCeUlECiAgICAgICAgICAgICAgICAgdHlwZSA9IEFjY2Vzc0Nhc2U6Ok1pc3M7CiAgICAg
ICAgICAgICBlbHNlIGlmIChzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkpCiAgICAgICAgICAgICAg
ICAgdHlwZSA9IEFjY2Vzc0Nhc2U6OkdldHRlcjsKKyAgICAgICAgICAgIGVsc2UgaWYgKHNsb3Qu
YXR0cmlidXRlcygpICYgQ3VzdG9tQWNjZXNzb3IpCisgICAgICAgICAgICAgICAgdHlwZSA9IEFj
Y2Vzc0Nhc2U6OkN1c3RvbUFjY2Vzc29yR2V0dGVyOwogICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHR5cGUgPSBBY2Nlc3NDYXNlOjpDdXN0b21HZXR0ZXI7CisgICAgICAgICAgICAg
ICAgdHlwZSA9IEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlR2V0dGVyOwogCiAgICAgICAgICAgICBu
ZXdDYXNlID0gQWNjZXNzQ2FzZTo6Z2V0KAogICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ss
IHR5cGUsIG9mZnNldCwgc3RydWN0dXJlLCBjb25kaXRpb25TZXQsIGxvYWRUYXJnZXRGcm9tUHJv
eHksCkBAIC00MzQsNyArNDM2LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hl
UHV0QnlJRAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2Fz
ZTo6c2V0dGVyKAotICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIEFjY2Vzc0Nhc2U6OkN1
c3RvbVNldHRlciwgc3RydWN0dXJlLCBpbnZhbGlkT2Zmc2V0LCBjb25kaXRpb25TZXQsCisgICAg
ICAgICAgICAgICAgdm0sIGNvZGVCbG9jaywgc2xvdC5pc0N1c3RvbUFjY2Vzc29yKCkgPyBBY2Nl
c3NDYXNlOjpDdXN0b21BY2Nlc3NvclNldHRlciA6IEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlU2V0
dGVyLCBzdHJ1Y3R1cmUsIGludmFsaWRPZmZzZXQsIGNvbmRpdGlvblNldCwKICAgICAgICAgICAg
ICAgICBzbG90LmN1c3RvbVNldHRlcigpLCBzbG90LmJhc2UoKSk7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjb25kaXRpb25TZXQ7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRl
clNldHRlci5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0N1c3RvbUdldHRlclNldHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJDdXN0b21HZXR0ZXJTZXR0ZXIuaCIKIAogI2luY2x1ZGUgIkpTQ0pT
VmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJTbG90Vmlz
aXRvcklubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCkBAIC0zNiwxMiAr
MzcsMTQgQEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKAogCiBjb25z
dCBDbGFzc0luZm8gQ3VzdG9tR2V0dGVyU2V0dGVyOjpzX2luZm8gPSB7ICJDdXN0b21HZXR0ZXJT
ZXR0ZXIiLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEN1c3RvbUdldHRlclNldHRlcikgfTsK
IAotdm9pZCBjYWxsQ3VzdG9tU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBjdXN0b21H
ZXR0ZXJTZXR0ZXIsIEpTT2JqZWN0KiBiYXNlLCBKU1ZhbHVlIHRoaXNWYWx1ZSwgSlNWYWx1ZSB2
YWx1ZSkKK3ZvaWQgY2FsbEN1c3RvbVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgY3Vz
dG9tR2V0dGVyU2V0dGVyLCBib29sIGlzQWNjZXNzb3IsIEpTT2JqZWN0KiBiYXNlLCBKU1ZhbHVl
IHRoaXNWYWx1ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OkN1
c3RvbVNldHRlciBzZXR0ZXIgPSBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oY3VzdG9tR2V0
dGVyU2V0dGVyKS0+c2V0dGVyKCk7CiAgICAgaWYgKCFzZXR0ZXIpCiAgICAgICAgIHJldHVybjsK
LSAgICBzZXR0ZXIoZXhlYywgYmFzZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSksIEpTVmFs
dWU6OmVuY29kZSh2YWx1ZSkpOworICAgIGlmICghaXNBY2Nlc3NvcikKKyAgICAgICAgdGhpc1Zh
bHVlID0gYmFzZTsKKyAgICBzZXR0ZXIoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSks
IEpTVmFsdWU6OmVuY29kZSh2YWx1ZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRl
ci5oCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
dXN0b21HZXR0ZXJTZXR0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQCBwcml2
YXRlOgogICAgIEN1c3RvbVNldHRlciBtX3NldHRlcjsKIH07CiAKLUpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgY2FsbEN1c3RvbVNldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIGN1c3RvbUdldHRlclNl
dHRlciwgSlNPYmplY3QqIGJhc2UsIEpTVmFsdWUgdGhpc1ZhbHVlLCBKU1ZhbHVlIHZhbHVlKTsK
K0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgY2FsbEN1c3RvbVNldHRlcihFeGVjU3RhdGUqLCBKU1Zh
bHVlIGN1c3RvbUdldHRlclNldHRlciwgYm9vbCBpc0FjY2Vzc29yLCBKU09iamVjdCogc2xvdEJh
c2UsIEpTVmFsdWUgdGhpc1ZhbHVlLCBKU1ZhbHVlKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRTbG90QmFzZUZ1bmN0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jv
dW5kU2xvdEJhc2VGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDIsNyArNDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5k
U2xvdEJhCiAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBib3Vu
ZFNsb3RCYXNlRnVuY3Rpb24tPmN1c3RvbUdldHRlclNldHRlcigpOwogCiAgICAgaWYgKGJvdW5k
U2xvdEJhc2VGdW5jdGlvbi0+aXNTZXR0ZXIoKSkgewotICAgICAgICBjYWxsQ3VzdG9tU2V0dGVy
KGV4ZWMsIGN1c3RvbUdldHRlclNldHRlciwgYmFzZU9iamVjdCwgZXhlYy0+dGhpc1ZhbHVlKCks
IGV4ZWMtPmFyZ3VtZW50KDApKTsKKyAgICAgICAgY2FsbEN1c3RvbVNldHRlcihleGVjLCBjdXN0
b21HZXR0ZXJTZXR0ZXIsIHRydWUsIGJhc2VPYmplY3QsIGV4ZWMtPnRoaXNWYWx1ZSgpLCBleGVj
LT5hcmd1bWVudCgwKSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiAgICAgfQogCkBAIC01MSw3ICs1MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgYm91bmRTbG90QmEKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVm
aW5lZCgpKTsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSA9IGJvdW5kU2xvdEJhc2VGdW5jdGlv
bi0+bmFtZShleGVjKTsKLSAgICByZXR1cm4gZ2V0dGVyKGV4ZWMsIGJhc2VPYmplY3QsIEpTVmFs
dWU6OmVuY29kZShleGVjLT50aGlzVmFsdWUoKSksIFByb3BlcnR5TmFtZShJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsIG5hbWUpKSk7CisgICAgcmV0dXJuIGdldHRlcihleGVjLCBKU1ZhbHVl
OjplbmNvZGUoZXhlYy0+dGhpc1ZhbHVlKCkpLCBQcm9wZXJ0eU5hbWUoSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyhleGVjLCBuYW1lKSkpOwogfQogCiBKU0JvdW5kU2xvdEJhc2VGdW5jdGlvbjo6SlNC
b3VuZFNsb3RCYXNlRnVuY3Rpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVHlwZSB0eXBlKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAJKHJldmlzaW9uIDE5NjIzOCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBKU1ZhbHVlOjpwdXRUb1ByaW1pdGl2ZShF
eGVjU3RhdGUqIAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoZ3MuaXNDdXN0b21H
ZXR0ZXJTZXR0ZXIoKSkgewotICAgICAgICAgICAgICAgIGNhbGxDdXN0b21TZXR0ZXIoZXhlYywg
Z3MsIG9iaiwgc2xvdC50aGlzVmFsdWUoKSwgdmFsdWUpOworICAgICAgICAgICAgICAgIGNhbGxD
dXN0b21TZXR0ZXIoZXhlYywgZ3MsIGF0dHJpYnV0ZXMgJiBDdXN0b21BY2Nlc3Nvciwgb2JqLCBz
bG90LnRoaXNWYWx1ZSgpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0
aW9uLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNGdW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OSw5ICsyNjksOSBAQCBzdGF0
aWMgSlNWYWx1ZSByZXRyaWV2ZUFyZ3VtZW50cyhFeGVjU3RhCiAgICAgcmV0dXJuIGZ1bmN0b3Iu
cmVzdWx0KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewotICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KHNsb3RCYXNl
KTsKKyAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUKCF0aGlzT2JqLT5pc0hvc3RGdW5jdGlv
bigpKTsKIAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmV0cmlldmVBcmd1bWVudHMoZXhl
YywgdGhpc09iaikpOwpAQCAtMzI0LDkgKzMyNCw5IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZl
Q2FsbGVyRnVuY3Rpb24oRXgKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNGdW5jdGlvbiogdGhpc09i
aiA9IGpzQ2FzdDxKU0Z1bmN0aW9uKj4oc2xvdEJhc2UpOworICAgIEpTRnVuY3Rpb24qIHRoaXNP
YmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBBU1NFUlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwogICAgIEpTVmFsdWUgY2FsbGVy
ID0gcmV0cmlldmVDYWxsZXJGdW5jdGlvbihleGVjLCB0aGlzT2JqKTsKIApAQCAtMzQzLDE2ICsz
NDMsMTYgQEAgRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKAogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJG
dW5jdGlvbi5jYWxsZXIgdXNlZCB0byByZXRyaWV2ZSBzdHJpY3QgY2FsbGVyIikpKTsKIH0KIAot
RW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2Jq
ZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIEpTRnVuY3Rpb246Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0ganND
YXN0PEpTRnVuY3Rpb24qPihzbG90QmFzZSk7CisgICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGpz
Q2FzdDxKU0Z1bmN0aW9uKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIEFTU0VS
VCghdGhpc09iai0+aXNIb3N0RnVuY3Rpb24oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcih0aGlzT2JqLT5qc0V4ZWN1dGFibGUoKS0+cGFyYW1ldGVyQ291bnQoKSkpOwog
fQogCi1FbmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSosIEpT
T2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIEpTRnVuY3Rpb246Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGpz
Q2FzdDxKU0Z1bmN0aW9uKj4oc2xvdEJhc2UpOworICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBq
c0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NF
UlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUodGhpc09iai0+anNFeGVjdXRhYmxlKCktPm5hbWVWYWx1ZSgpKTsKIH0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgJKHJldmlzaW9uIDE5NjIzOCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMTg5LDEwICsxODksMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICBmcmllbmQgY2xh
c3MgTExJbnRPZmZzZXRzRXh0cmFjdG9yOwogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGFy
Z3VtZW50c0dldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0
YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIG5h
bWVHZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
bmFtZUdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAog
ICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gbV9leGVjdXRhYmxlOwogICAgIFdyaXRl
QmFycmllcjxGdW5jdGlvblJhcmVEYXRhPiBtX3JhcmVEYXRhOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0
LmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5NSw3
IEBAIHZvaWQgSlNNb2R1bGVOYW1lc3BhY2VPYmplY3Q6OnZpc2l0Q2hpbGQKICAgICB2aXNpdG9y
LmFwcGVuZCgmdGhpc09iamVjdC0+bV9tb2R1bGVSZWNvcmQpOwogfQogCi1zdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgY2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3N0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU01vZHVs
ZU5hbWVzcGFjZU9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU01vZHVsZU5hbWVzcGFjZU9i
amVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBKU01vZHVsZVJlY29yZCog
bW9kdWxlUmVjb3JkID0gdGhpc09iamVjdC0+bW9kdWxlUmVjb3JkKCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQwMCw4ICs0MDAsMTEgQEAgdm9pZCBKU09iamVjdDo6cHV0SW5saW5lU2xvdyhFeGVj
U3RhdGUqIAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGlmIChncy5pc0N1c3RvbUdldHRlclNldHRlcigpKSB7Ci0gICAgICAgICAgICAgICAgY2Fs
bEN1c3RvbVNldHRlcihleGVjLCBncywgb2JqLCBzbG90LnRoaXNWYWx1ZSgpLCB2YWx1ZSk7Ci0g
ICAgICAgICAgICAgICAgc2xvdC5zZXRDdXN0b21Qcm9wZXJ0eShvYmosIGpzQ2FzdDxDdXN0b21H
ZXR0ZXJTZXR0ZXIqPihncy5hc0NlbGwoKSktPnNldHRlcigpKTsKKyAgICAgICAgICAgICAgICBj
YWxsQ3VzdG9tU2V0dGVyKGV4ZWMsIGdzLCBhdHRyaWJ1dGVzICYgQ3VzdG9tQWNjZXNzb3IsIG9i
aiwgc2xvdC50aGlzVmFsdWUoKSwgdmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1
dGVzICYgQ3VzdG9tQWNjZXNzb3IpCisgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9t
QWNjZXNzb3Iob2JqLCBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oZ3MuYXNDZWxsKCkpLT5z
ZXR0ZXIoKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzbG90
LnNldEN1c3RvbVZhbHVlKG9iaiwganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KGdzLmFzQ2Vs
bCgpKS0+c2V0dGVyKCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIEFTU0VSVCghKGF0dHJpYnV0ZXMgJiBBY2Nlc3NvcikpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NzYsOCArMjc2LDEyIEBAIGlubGluZSB2b2lkIHB1dEVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgY28K
ICAgICAgICAgaWYgKHNsb3QuaXNTdHJpY3RNb2RlKCkpCiAgICAgICAgICAgICB0aHJvd1R5cGVF
cnJvcihleGVjLCBTdHJpY3RNb2RlUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwogICAgIH0g
ZWxzZSBpZiAoIShlbnRyeS0+YXR0cmlidXRlcygpICYgUmVhZE9ubHkpKSB7Ci0gICAgICAgIGVu
dHJ5LT5wcm9wZXJ0eVB1dHRlcigpKGV4ZWMsIGJhc2UsIEpTVmFsdWU6OmVuY29kZShzbG90LnRo
aXNWYWx1ZSgpKSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSk7Ci0gICAgICAgIHNsb3Quc2V0Q3Vz
dG9tUHJvcGVydHkoYmFzZSwgZW50cnktPnByb3BlcnR5UHV0dGVyKCkpOworICAgICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBDdXN0b21BY2Nlc3NvciA/IHNs
b3QudGhpc1ZhbHVlKCkgOiBKU1ZhbHVlKGJhc2UpOworICAgICAgICBlbnRyeS0+cHJvcGVydHlQ
dXR0ZXIoKShleGVjLCBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKSwgSlNWYWx1ZTo6ZW5jb2Rl
KHZhbHVlKSk7CisgICAgICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgQ3VzdG9tQWNjZXNz
b3IpCisgICAgICAgICAgICBzbG90LnNldEN1c3RvbUFjY2Vzc29yKGJhc2UsIGVudHJ5LT5wcm9w
ZXJ0eVB1dHRlcigpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2xvdC5zZXRDdXN0b21W
YWx1ZShiYXNlLCBlbnRyeS0+cHJvcGVydHlQdXR0ZXIoKSk7CiAgICAgfSBlbHNlIGlmIChzbG90
LmlzU3RyaWN0TW9kZSgpKQogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpY3RNb2Rl
UmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNs
dWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKIG5hbWVz
cGFjZSBKU0MgewogCkBAIC0zMiw0ICszMywxMCBAQCBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6ZnVu
Y3Rpb25HZXR0ZXIoRXhlCiAgICAgcmV0dXJuIGNhbGxHZXR0ZXIoZXhlYywgbV90aGlzVmFsdWUs
IG1fZGF0YS5nZXR0ZXIuZ2V0dGVyU2V0dGVyKTsKIH0KIAorSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6
OmN1c3RvbUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUp
IGNvbnN0Cit7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBtX2F0dHJpYnV0ZXMgJiBDdXN0b21B
Y2Nlc3NvciA/IG1fdGhpc1ZhbHVlIDogSlNWYWx1ZShzbG90QmFzZSgpKTsKKyAgICByZXR1cm4g
SlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20uZ2V0VmFsdWUoZXhlYywgSlNWYWx1ZTo6ZW5j
b2RlKHRoaXNWYWx1ZSksIHByb3BlcnR5TmFtZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCShy
ZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eVNsb3QuaAkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgewog
ICAgIH0KIAotICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNT
dGF0ZSosIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOworICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4
ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogICAg
IEpTVmFsdWUgZ2V0VmFsdWUoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKSBjb25zdDsKICAgICBK
U1ZhbHVlIGdldFZhbHVlKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29uc3Q7
CkBAIC0yNDksNiArMjQ5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIEpTVmFsdWUgZnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiwgUHJvcGVydHlO
YW1lKSBjb25zdDsKIAogICAgIHVuc2lnbmVkIG1fYXR0cmlidXRlczsKICAgICB1bmlvbiB7CkBA
IC0yNzUsNyArMjc2LDcgQEAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6Z2V0
VgogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS52YWx1ZSk7CiAgICAgaWYg
KG1fcHJvcGVydHlUeXBlID09IFR5cGVHZXR0ZXIpCiAgICAgICAgIHJldHVybiBmdW5jdGlvbkdl
dHRlcihleGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20uZ2V0
VmFsdWUoZXhlYywgc2xvdEJhc2UoKSwgSlNWYWx1ZTo6ZW5jb2RlKG1fdGhpc1ZhbHVlKSwgcHJv
cGVydHlOYW1lKSk7CisgICAgcmV0dXJuIGN1c3RvbUdldHRlcihleGVjLCBwcm9wZXJ0eU5hbWUp
OwogfQogCiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgUHJvcGVydHlTbG90OjpnZXRWYWx1ZShFeGVj
U3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29uc3QKQEAgLTI4NCw3ICsyODUs
NyBAQCBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgUHJvcGVydHlTbG90OjpnZXRWCiAgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLnZhbHVlKTsKICAgICBpZiAobV9wcm9wZXJ0eVR5
cGUgPT0gVHlwZUdldHRlcikKICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uR2V0dGVyKGV4ZWMpOwot
ICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbS5nZXRWYWx1ZShleGVjLCBz
bG90QmFzZSgpLCBKU1ZhbHVlOjplbmNvZGUobV90aGlzVmFsdWUpLCBJZGVudGlmaWVyOjpmcm9t
KGV4ZWMsIHByb3BlcnR5TmFtZSkpKTsKKyAgICByZXR1cm4gY3VzdG9tR2V0dGVyKGV4ZWMsIElk
ZW50aWZpZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHV0UHJvcGVydHlTbG90
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHV0UHJvcGVy
dHlTbG90LmgJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1B1dFByb3BlcnR5U2xvdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw5ICszOCw5IEBAIGNs
YXNzIEpTRnVuY3Rpb247CiAgICAgCiBjbGFzcyBQdXRQcm9wZXJ0eVNsb3QgewogcHVibGljOgot
ICAgIGVudW0gVHlwZSB7IFVuY2FjaGFibGUsIEV4aXN0aW5nUHJvcGVydHksIE5ld1Byb3BlcnR5
LCBTZXR0ZXJQcm9wZXJ0eSwgQ3VzdG9tUHJvcGVydHkgfTsKKyAgICBlbnVtIFR5cGUgeyBVbmNh
Y2hhYmxlLCBFeGlzdGluZ1Byb3BlcnR5LCBOZXdQcm9wZXJ0eSwgU2V0dGVyUHJvcGVydHksIEN1
c3RvbVZhbHVlLCBDdXN0b21BY2Nlc3NvciB9OwogICAgIGVudW0gQ29udGV4dCB7IFVua25vd25D
b250ZXh0LCBQdXRCeUlkLCBQdXRCeUlkRXZhbCB9OwotICAgIHR5cGVkZWYgdm9pZCAoKlB1dFZh
bHVlRnVuYykoRXhlY1N0YXRlKiwgSlNPYmplY3QqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKTsKKyAgICB0eXBlZGVmIHZvaWQgKCpQdXRWYWx1
ZUZ1bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHZhbHVlKTsKIAogICAgIFB1dFByb3BlcnR5U2xvdChKU1ZhbHVlIHRoaXNWYWx1ZSwgYm9v
bCBpc1N0cmljdE1vZGUgPSBmYWxzZSwgQ29udGV4dCBjb250ZXh0ID0gVW5rbm93bkNvbnRleHQs
IGJvb2wgaXNJbml0aWFsaXphdGlvbiA9IGZhbHNlKQogICAgICAgICA6IG1fdHlwZShVbmNhY2hh
YmxlKQpAQCAtNjgsOSArNjgsMTYgQEAgcHVibGljOgogICAgICAgICBtX29mZnNldCA9IG9mZnNl
dDsKICAgICB9CiAKLSAgICB2b2lkIHNldEN1c3RvbVByb3BlcnR5KEpTT2JqZWN0KiBiYXNlLCBQ
dXRWYWx1ZUZ1bmMgZnVuY3Rpb24pCisgICAgdm9pZCBzZXRDdXN0b21WYWx1ZShKU09iamVjdCog
YmFzZSwgUHV0VmFsdWVGdW5jIGZ1bmN0aW9uKQogICAgIHsKLSAgICAgICAgbV90eXBlID0gQ3Vz
dG9tUHJvcGVydHk7CisgICAgICAgIG1fdHlwZSA9IEN1c3RvbVZhbHVlOworICAgICAgICBtX2Jh
c2UgPSBiYXNlOworICAgICAgICBtX3B1dEZ1bmN0aW9uID0gZnVuY3Rpb247CisgICAgfQorCisg
ICAgdm9pZCBzZXRDdXN0b21BY2Nlc3NvcihKU09iamVjdCogYmFzZSwgUHV0VmFsdWVGdW5jIGZ1
bmN0aW9uKQorICAgIHsKKyAgICAgICAgbV90eXBlID0gQ3VzdG9tQWNjZXNzb3I7CiAgICAgICAg
IG1fYmFzZSA9IGJhc2U7CiAgICAgICAgIG1fcHV0RnVuY3Rpb24gPSBmdW5jdGlvbjsKICAgICB9
CkBAIC04Nyw3ICs5NCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fdGhpc1ZhbHVlID0gdGhpc1Zh
bHVlOwogICAgIH0KIAotICAgIFB1dFZhbHVlRnVuYyBjdXN0b21TZXR0ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3B1dEZ1bmN0aW9uOyB9CisgICAgUHV0VmFsdWVGdW5jIGN1c3RvbVNldHRlcigpIGNv
bnN0CisgICAgeworICAgICAgICBBU1NFUlQoaXNDYWNoZWFibGVDdXN0b20oKSk7CisgICAgICAg
IHJldHVybiBtX3B1dEZ1bmN0aW9uOworICAgIH0KIAogICAgIENvbnRleHQgY29udGV4dCgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PENvbnRleHQ+KG1fY29udGV4dCk7IH0KIApAQCAtOTgs
NyArMTA5LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNTdHJpY3RNb2RlKCkgY29uc3QgeyByZXR1
cm4gbV9pc1N0cmljdE1vZGU7IH0KICAgICBib29sIGlzQ2FjaGVhYmxlUHV0KCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlID09IE5ld1Byb3BlcnR5IHx8IG1fdHlwZSA9PSBFeGlzdGluZ1Byb3BlcnR5
OyB9CiAgICAgYm9vbCBpc0NhY2hlYWJsZVNldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9
PSBTZXR0ZXJQcm9wZXJ0eTsgfQotICAgIGJvb2wgaXNDYWNoZWFibGVDdXN0b20oKSBjb25zdCB7
IHJldHVybiBtX3R5cGUgPT0gQ3VzdG9tUHJvcGVydHk7IH0KKyAgICBib29sIGlzQ2FjaGVhYmxl
Q3VzdG9tKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEN1c3RvbVZhbHVlIHx8IG1fdHlwZSA9
PSBDdXN0b21BY2Nlc3NvcjsgfQorICAgIGJvb2wgaXNDdXN0b21BY2Nlc3NvcigpIGNvbnN0IHsg
cmV0dXJuIG1fdHlwZSA9PSBDdXN0b21BY2Nlc3NvcjsgfQogICAgIGJvb2wgaXNJbml0aWFsaXph
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faXNJbml0aWFsaXphdGlvbjsgfQogCiAgICAgUHJvcGVy
dHlPZmZzZXQgY2FjaGVkT2Zmc2V0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDE5NjIz
OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzEsMjQgKzMxLDI0IEBACiAKIG5hbWVzcGFjZSBKU0Mgewog
Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUq
LCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEpTT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25z
dHJ1Y3Rvckxhc3RQYXJlbihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGVm
dENvbnRleHQoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4
dChFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUq
LCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMihFeGVjU3RhdGUqLCBKU09iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyMyhFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyNChFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNShF
eGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNihFeGVjU3RhdGUqLCBK
U09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqLCBKU09iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4
cENvbnN0cnVjdG9yRG9sbGFyOChFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyOShFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgcmVnRXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JM
YXN0TWF0Y2goRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0
Q29udGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRp
YyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEoRXhlY1N0YXRlKiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyhFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNW
YWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI1KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNihFeGVjU3RhdGUqLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjcoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lKTsKIAotc3RhdGljIHZvaWQgc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dChF
eGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Ci1z
dGF0aWMgdm9pZCBzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqLCBKU09i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CitzdGF0aWMgdm9pZCBzZXRS
ZWdFeHBDb25zdHJ1Y3RvcklucHV0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSk7CitzdGF0aWMgdm9pZCBzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVj
U3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogCiB9IC8vIG5hbWVzcGFj
ZSBKU0MKIApAQCAtMTU5LDkwICsxNTksOTAgQEAgYm9vbCBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0
T3duUHJvcGVydHlTbAogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8UmVnRXhwQ29uc3Ry
dWN0b3IsIEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIHJlZ0V4cENvbnN0cnVjdG9yVGFibGUsIGpz
Q2FzdDxSZWdFeHBDb25zdHJ1Y3Rvcio+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAgICAgCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEoRXhlY1N0YXRlKiBleGVj
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVm
KGV4ZWMsIDEpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0
b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDEpKTsKIH0K
IAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVj
LCAyKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0QmFja3JlZihleGVjLCAyKSk7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyhFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhlYywgMykp
OworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywgMykpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDQpKTsKKyAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDQpKTsKIH0KIAotRW5jb2RlZEpTVmFs
dWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI1KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1Jl
Z0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCA1KSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKS0+Z2V0QmFja3JlZihleGVjLCA1KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyNihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFz
ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyNihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBD
b25zdHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhlYywgNikpOworICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSktPmdldEJhY2tyZWYoZXhlYywgNikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBD
b25zdHJ1Y3RvckRvbGxhcjcoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjcoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3Ry
dWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDcpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
LT5nZXRCYWNrcmVmKGV4ZWMsIDcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXI4KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI4KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9y
KHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCA4KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0
QmFja3JlZihleGVjLCA4KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9y
RG9sbGFyOShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
OShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90
QmFzZSktPmdldEJhY2tyZWYoZXhlYywgOSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
YXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2ty
ZWYoZXhlYywgOSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvcklucHV0
KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+aW5wdXQoKSk7Cisg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKS0+aW5wdXQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9y
TXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwQ29u
c3RydWN0b3Ioc2xvdEJhc2UpLT5tdWx0aWxpbmUoKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoanNCb29sZWFuKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpLT5tdWx0aWxpbmUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3Rvckxhc3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9y
TGFzdE1hdGNoKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVj
dG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCAwKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+
Z2V0QmFja3JlZihleGVjLCAwKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVj
dG9yTGFzdFBhcmVuKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JM
YXN0UGFyZW4oRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0
b3Ioc2xvdEJhc2UpLT5nZXRMYXN0UGFyZW4oZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdl
dExhc3RQYXJlbihleGVjKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9y
TGVmdENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxl
ZnRDb250ZXh0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVj
dG9yKHNsb3RCYXNlKS0+Z2V0TGVmdENvbnRleHQoZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkt
PmdldExlZnRDb250ZXh0KGV4ZWMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JSaWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3RvclJpZ2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBD
b25zdHJ1Y3RvcihzbG90QmFzZSktPmdldFJpZ2h0Q29udGV4dChleGVjKSk7CisgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKS0+Z2V0UmlnaHRDb250ZXh0KGV4ZWMpKTsKIH0KIAotdm9pZCBzZXRSZWdFeHBDb25z
dHJ1Y3RvcklucHV0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgc2V0UmVnRXhwQ29uc3RydWN0
b3JJbnB1dChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8gY29uc3RydWN0b3IgPSBqc0R5bmFtaWND
YXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oYmFzZU9iamVjdCkpCisgICAgaWYgKGF1dG8gY29uc3Ry
dWN0b3IgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpKQogICAgICAgICBjb25zdHJ1Y3Rvci0+c2V0SW5wdXQoZXhlYywgSlNWYWx1
ZTo6ZGVjb2RlKHZhbHVlKS50b1N0cmluZyhleGVjKSk7CiB9CiAKLXZvaWQgc2V0UmVnRXhwQ29u
c3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQordm9pZCBzZXRSZWdFeHBDb25z
dHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8gY29uc3RydWN0b3IgPSBq
c0R5bmFtaWNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oYmFzZU9iamVjdCkpCisgICAgaWYgKGF1
dG8gY29uc3RydWN0b3IgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQogICAgICAgICBjb25zdHJ1Y3Rvci0+c2V0TXVsdGlsaW5l
KEpTVmFsdWU6OmRlY29kZSh2YWx1ZSkudG9Cb29sZWFuKGV4ZWMpKTsKIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCShyZXZpc2lv
biAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsMjEgKzEzNywyMSBAQCBib29sIFJlZ0V4cE9iamVj
dDo6ZGVmaW5lT3duUHJvcGVydHkoSlNPCiAgICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3Bl
cnR5KG9iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7
CiB9CiAKLXN0YXRpYyB2b2lkIHJlZ0V4cE9iamVjdFNldExhc3RJbmRleFN0cmljdChFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIHZhbHVlKQorc3RhdGljIHZvaWQgcmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4U3RyaWN0KEV4
ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2
YWx1ZSkKIHsKLSAgICBhc1JlZ0V4cE9iamVjdChzbG90QmFzZSktPnNldExhc3RJbmRleChleGVj
LCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLCB0cnVlKTsKKyAgICBhc1JlZ0V4cE9iamVjdChKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNv
ZGUodmFsdWUpLCB0cnVlKTsKIH0KIAotc3RhdGljIHZvaWQgcmVnRXhwT2JqZWN0U2V0TGFzdElu
ZGV4Tm9uU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgdm9pZCByZWdFeHBPYmplY3RT
ZXRMYXN0SW5kZXhOb25TdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQogewotICAgIGFzUmVnRXhwT2JqZWN0KHNsb3RC
YXNlKS0+c2V0TGFzdEluZGV4KGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSksIGZhbHNlKTsK
KyAgICBhc1JlZ0V4cE9iamVjdChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJ
bmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLCBmYWxzZSk7CiB9CiAKIHZvaWQgUmVn
RXhwT2JqZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sYXN0SW5kZXgp
IHsKICAgICAgICAgYXNSZWdFeHBPYmplY3QoY2VsbCktPnNldExhc3RJbmRleChleGVjLCB2YWx1
ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSk7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tUHJvcGVydHko
YXNSZWdFeHBPYmplY3QoY2VsbCksIHNsb3QuaXNTdHJpY3RNb2RlKCkKKyAgICAgICAgc2xvdC5z
ZXRDdXN0b21WYWx1ZShhc1JlZ0V4cE9iamVjdChjZWxsKSwgc2xvdC5pc1N0cmljdE1vZGUoKQog
ICAgICAgICAgICAgPyByZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhTdHJpY3QKICAgICAgICAgICAg
IDogcmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4Tm9uU3RyaWN0KTsKICAgICAgICAgcmV0dXJuOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTYtMDItMDcgIEdhdmluIEJh
cnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIEdldFZhbHVlRnVu
Yy9QdXRWYWx1ZUZ1bmMgc2hvdWxkIG5vdCB0YWtlIGJvdGggc2xvdEJhc2UgYW5kIHRoaXNWYWx1
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MDA5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gSmF2
YVNjcmlwdCB0aGVyZSBhcmUgdHdvIHR5cGVzIG9mIHByb3BlcnRpZXMgLSByZWd1bGFyIHZhbHVl
IHByb3BlcnRpZXMsIGFuZCBhY2Nlc3NvciBwcm9wZXJ0aWVzLgorICAgICAgICBPbmUgZGlmZmVy
ZW5jZSBiZXR3ZWVuIHRoZXNlIGlzIGhvdyB0aGV5IGFyZSByZWZsZWN0ZWQgYnkgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yLCBhbmQgYW5vdGhlciBpcworICAgICAgICB3aGF0IG9iamVjdCB0aGV5
IG9wZXJhdGUgb24gaW4gdGhlIGNhc2Ugb2YgYSBwcm90b3R5cGUgYWNjZXNzLiBJZiB5b3UgYWNj
ZXNzIGEgdmFsdWUgcHJvcGVydHkgb2YgYQorICAgICAgICBwcm90b3R5cGUgb2JqZWN0IGl0IHJl
dHVybiBhIHZhbHVlIHBlcnRpbmVudCB0byB0aGUgcHJvdG90eXBlLCBidXQgaW4gdGhlIGNhc2Ug
b2YgYSBwcm90b3R5cGUgb2JqZWN0CisgICAgICAgIHJldHVybmluZyBhbiBhY2Nlc3NvciwgdGhl
biB0aGUgYWNjZXNzb3IgZnVuY3Rpb24gaXMgYXBwbGllZCB0byB0aGUgYmFzZSBvYmplY3Qgb2Yg
dGhlIGFjY2Vzcy4KKworICAgICAgICBKU0Mgc3VwcG9ydHMgc3BlY2lhbCAnY3VzdG9tJyBwcm9w
ZXJ0aWVzIGltcGxlbWVudGVkIGFzIGEgYysrIGNhbGxiYWNrLCBhbmQgdGhlc2UgY3VzdG9tIHBy
b3BlcnRpZXMKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGVpdGhlciB2YWx1ZS0g
b3IgYWNjZXNzb3ItbGlrZSBiZWhhdmlvci4gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIGJlaGF2
aW9yCisgICAgICAgIGlzIHNlbGVjdGVkIHZpYSB0aGUgQ3VzdG9tQWNjZXNzb3IgYXR0cmlidXRl
LiBWYWx1ZS0gb3IgYWNjZXNzb3ItbGlrZSBvYmplY3Qgc2VsZWN0aW9uIGlzIGN1cnJlbnQKKyAg
ICAgICAgc3VwcG9ydGVkIGJ5IHBhc3NpbmcgYm90aCB0aGUgc2xvdEJhc2UgYW5kIHRoZSB0aGlz
VmFsdWUgdG8gdGhlIGNhbGxiYWNrLGFuZCBob3BpbmcgaXQgdXNlcyB0aGUKKyAgICAgICAgcmln
aHQgb25lLiBUaGlzIGlzIHByb2JhYmx5IGluZWZmaWNpZW50LCBidWctcHJvbmUsIGFuZCBsZWFk
cyB0byBjcmF6eSBsaWtlIEpTQm91bmRTbG90QmFzZUZ1bmN0aW9uLgorCisgICAgICAgIEluc3Rl
YWQsIGp1c3QgcGFzcyBvbmUgdGhpc1ZhbHVlIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbnMsIGNv
bnNpc3RlbnQgd2l0aCBDdXN0b21BY2Nlc3Nvci4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcmludEVycm9yTWVzc2FnZUZvckZy
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6Om9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6
cHJvcGVydHlOYW1lVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0U3RhdGljVmFsdWVT
bG90RW50cnlXaXRob3V0Q2FjaGluZzxKU0RPTU9iamVjdD4pOgorICAgICAgICAoV2ViQ29yZTo6
bm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6dmlz
aXRBZGRpdGlvbmFsQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y2hpbGRGcmFtZUdldHRl
cik6CisgICAgICAgIChXZWJDb3JlOjpuYW1lZEl0ZW1HZXR0ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6anNET01XaW5kb3dXZWJLaXQpOgorICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dJbmRl
eGVkREIpOgorICAgICAgICAgICAgLSBhZGQgbWlzc2luZyBudWxsIGNoZWNrLCBpbiBjYXNlIGlu
ZGV4REIgYWNlc3NvciBpcyBhcHBsaWVkIHRvIG5vbi13aW5kb3cgb2JqZWN0LgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpwbHVnaW5TY3JpcHRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6cGx1Z2luRWxlbWVu
dFByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRG
dW5jdGlvbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50
YXRpb24pOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpT
Qzo6UnVudGltZUFycmF5OjpkZXN0cm95KToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5Ojps
ZW5ndGhHZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAg
ICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhv
ZDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpsZW5ndGhH
ZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5oOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1l
T2JqZWN0OjppbnZhbGlkYXRlKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmpl
Y3Q6OmZhbGxiYWNrT2JqZWN0R2V0dGVyKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRp
bWVPYmplY3Q6OmZpZWxkR2V0dGVyKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVP
YmplY3Q6Om1ldGhvZEdldHRlcik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6
CisgICAgICAgICAgICAtIE1lcmdlZCBzbG90QmFzZSAmIHRoaXNWYWx1ZSB0byBjdXN0b20gcHJv
cGVydHkgY2FsbGJhY2tzLgorCiAyMDE2LTAyLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxOTU2NjEpOiBbR1RLXSBT
Y3JvbGxiYXIgdGVzdHMgY3Jhc2hpbmcgYWZ0ZXIgb3ZlcmxheSBzY3JvbGxiYXIgZ3JvdW5kd29y
awpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCShy
ZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzQsNyArMzM0LDcgQEAgdm9pZCBwcmludEVycm9y
TWVzc2FnZUZvckZyYW1lKEZyYW1lKiBmcgogICAgIGZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5k
b3coKS0+cHJpbnRFcnJvck1lc3NhZ2UobWVzc2FnZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIG9i
amVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
b2JqZWN0VG9TdHJpbmdGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSwgMCwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwgb2JqZWN0UHJvdG9GdW5jVG9T
dHJpbmcpKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUJpbmRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNjUzLDcgKzY1Myw3IEBAIGJvb2wgc2hvdWxk
QWxsb3dBY2Nlc3NUb0ZyYW1lKEpTQzo6RXhlY1MKIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3NUb0RP
TVdpbmRvdyhKU0M6OkV4ZWNTdGF0ZSosIERPTVdpbmRvdyYsIFN0cmluZyYgbWVzc2FnZSk7CiAK
IHZvaWQgcHJpbnRFcnJvck1lc3NhZ2VGb3JGcmFtZShGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIG9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBvYmplY3RUb1N0cmluZ0Z1bmN0
aW9uR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwogCiBpbmxpbmUgU3RyaW5nIHByb3BlcnR5TmFtZVRvU3RyaW5nKEpTQzo6UHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKQEAgLTY4Myw3ICs2ODMsNyBAQCB0ZW1wbGF0ZTw+
IGlubGluZSBjb25zdCBKU0M6Okhhc2hUYWJsZVZhCiB9CiAKIHRlbXBsYXRlPEpTQzo6TmF0aXZl
RnVuY3Rpb24gbmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSkKK0pTQzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0
dGVyKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2Rl
KEpTQzo6SlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSwgbGVuZ3RoLCBwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgpLCBuYXRpdmVGdW5jdGlv
bikpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NiwxNCArNjYs
MTQgQEAgdm9pZCBKU0RPTVdpbmRvdzo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZQogICAgICAgICB2
aXNpdG9yLmFkZE9wYXF1ZVJvb3QoZnJhbWUpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUg
Y2hpbGRGcmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpT
VmFsdWUgY2hpbGRGcmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHRvSlMoZXhlYywganNDYXN0PEpTRE9NV2luZG93Kj4oc2xvdEJhc2UpLT53cmFw
cGVkKCkuZnJhbWUoKS0+dHJlZSgpLnNjb3BlZENoaWxkKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUodG9KUyhleGVjLCBqc0Nhc3Q8SlNET01XaW5kb3cqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSktPndyYXBwZWQoKS5mcmFtZSgpLT50cmVlKCkuc2NvcGVkQ2hp
bGQocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSktPmRvY3VtZW50KCkt
PmRvbVdpbmRvdygpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBuYW1lZEl0ZW1HZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIG5hbWVkSXRl
bUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmogPSBq
c0Nhc3Q8SlNET01XaW5kb3cqPihzbG90QmFzZSk7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlz
T2JqID0ganNDYXN0PEpTRE9NV2luZG93Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmotPndyYXBwZWQoKS5mcmFtZSgpLT5kb2N1
bWVudCgpOwogCiAgICAgQVNTRVJUKEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NU
b0RPTVdpbmRvdyhleGVjLCB0aGlzT2JqLT53cmFwcGVkKCkpKTsKQEAgLTkzLDcgKzkzLDcgQEAg
c3RhdGljIEVuY29kZWRKU1ZhbHVlIG5hbWVkSXRlbUdldHRlcihFeAogfQogCiAjaWYgRU5BQkxF
KFVTRVJfTUVTU0FHRV9IQU5ETEVSUykKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRv
d1dlYktpdChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dXZWJL
aXQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBKU0RPTVdpbmRvdyogY2FzdGVkVGhpcyA9IHRvSlNET01XaW5kb3coSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRB
bGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPndyYXBwZWQoKSkpCkBAIC0x
MDMsMTUgKzEwMywxMyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dXZWJLaXQo
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotc3RhdGljIEVuY29kZWRK
U1ZhbHVlIGpzRE9NV2luZG93SW5kZXhlZERCKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd0luZGV4ZWREQihFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShl
eGVjKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwogICAgIGF1dG8qIGNhc3RlZFRoaXMgPSB0b0pTRE9NV2luZG93KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuaW5kZXhlZERCRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRB
bGxvd0FjY2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPndyYXBwZWQoKSkpCisgICAg
aWYgKCFjYXN0ZWRUaGlzIHx8ICFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9E
T01XaW5kb3coZXhlYywgY2FzdGVkVGhpcy0+d3JhcHBlZCgpKSkKICAgICAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhp
cy0+d3JhcHBlZCgpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlz
LT5nbG9iYWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoRE9NV2luZG93SW5kZXhlZERhdGFiYXNlOjpp
bmRleGVkREIoJmltcGwpKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Bs
dWdpbkVsZW1lbnRGdW5jdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDE5NjIzOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgSlNPYmplY3QqIHBsdWdpblNjcmlw
dE9iamVjdChFeGVjU3RhdGUqIAogICAgIHJldHVybiBpbnN0YW5jZS0+Y3JlYXRlUnVudGltZU9i
amVjdChleGVjKTsKIH0KICAgICAKLUVuY29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0
eUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcGx1Z2luRWxl
bWVudFByb3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogCiAgICAgSlNIVE1MRWxlbWVudCog
dGhpc09iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNIVE1MRWxlbWVudCo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsNyArMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgSlNDOjpC
aW5kaW5nczo6SW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxFbGVtZW50Jik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgSlNDOjpKU09iamVjdCogcGx1Z2luU2NyaXB0T2JqZWN0KEpTQzo6RXhlY1N0
YXRlKiwgSlNIVE1MRWxlbWVudCopOwogCi0gICAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBwbHVnaW5F
bGVtZW50UHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworICAgIEpTQzo6RW5jb2RlZEpT
VmFsdWUgcGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwKKyAgICBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAgICAgYm9vbCBwbHVnaW5F
bGVtZW50Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90JiwgSlNIVE1MRWxlbWVudCopOwogICAgIGJvb2wg
cGx1Z2luRWxlbWVudEN1c3RvbVB1dChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1l
LCBKU0M6OkpTVmFsdWUsIEpTSFRNTEVsZW1lbnQqLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwog
ICAgIEpTQzo6Q2FsbFR5cGUgcGx1Z2luRWxlbWVudEdldENhbGxEYXRhKEpTSFRNTEVsZW1lbnQq
LCBKU0M6OkNhbGxEYXRhJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29w
eSkKQEAgLTEzMDIsMTAgKzEzMDIsMTAgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAg
ICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRp
b25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFs
U3RyaW5nOwogICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUo
JGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotICAg
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0
ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBpZiAo
IUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKICAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0g
R2V0QXR0cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGludGVy
ZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
InZvaWQgJHtzZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgInZvaWQgJHtzZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25k
aXRpb25hbFN0cmluZzsKICAgICAgICAgfQpAQCAtMTgzNSwyMSArMTgzNSwyMSBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0g
JGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9u
YWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICBteSAkZ2V0
dGVyID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwg
JGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOworICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVy
fShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTtcbiIpOwogICAgICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CiAgICAg
ICAgICAgICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFj
ZU5hbWUsICRjbGFzc05hbWUsICRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke3NldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtzZXR0ZXJ9
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7XG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
I2VuZGlmXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIGlmIChOZWVkc0NvbnN0cnVjdG9yUHJvcGVydHkoJGludGVyZmFjZSkpIHsKICAgICAg
ICAgICAgIG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3Ii
OwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlICR7
Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiSlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKICAgICAgICAgfQogCiAg
ICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZSA9ICJzZXRKUyIgLiAkaW50ZXJmYWNl
TmFtZSAuICJDb25zdHJ1Y3RvciI7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAk
e2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOworICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtc
biIpOwogCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iKTsKICAgICB9CkBAIC0yMjc4
LDExICsyMjc4LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBt
eSAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVD
b25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIjaWYgJHthdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZ31cbiIpIGlm
ICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKIAotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1
ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9Q
QVJBTShzdGF0ZSk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoISRh
dHRyaWJ1dGUtPmlzU3RhdGljIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29u
c3RydWN0b3IkLykgewogICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0pIHsKQEAgLTI0ODQsMTcgKzI0ODMs
MTcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRjb25zdHJ1
Y3RvckZ1bmN0aW9uTmFtZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7
CiAKICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tUHJveHlUb0pTT2JqZWN0In0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVl
ICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICAke2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9IHRvJHtjbGFzc05hbWV9KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgfSBlbHNpZiAoQ29uc3RydWN0b3JT
aG91bGRCZU9uSW5zdGFuY2UoJGludGVyZmFjZSkpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29k
ZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9ICIgLiBHZXRDYXN0aW5nSGVs
cGVyRm9yVGhpc09iamVjdCgkaW50ZXJmYWNlKSAuICIoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2Rl
ZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDwke2NsYXNzTmFtZX1Qcm90b3R5cGUqPihiYXNlVmFsdWUpO1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKiBkb21P
YmplY3QgPSBqc0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKCFkb21PYmplY3QpXG4iKTsKICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7XG4i
KTsKQEAgLTI1MTgsMTggKzI1MTcsMTUgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAog
ICAgICAgICBteSAkY29uc3RydWN0b3JGdW5jdGlvbk5hbWUgPSAic2V0SlMiIC4gJGludGVyZmFj
ZU5hbWUgLiAiQ29uc3RydWN0b3IiOwogCi0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9p
ZCAke2NvbnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
YmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjb25zdHJ1
Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1
ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpO1xuIik7CiAgICAgICAgIGlm
ICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0
In0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShi
YXNlVmFsdWUpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2Ns
YXNzTmFtZX0qIGRvbU9iamVjdCA9IHRvJHtjbGFzc05hbWV9KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTtcbiIpOwogICAgICAgICB9IGVsc2lmIChDb25zdHJ1Y3RvclNob3VsZEJlT25JbnN0
YW5jZSgkaW50ZXJmYWNlKSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
VU5VU0VEX1BBUkFNKGJhc2VWYWx1ZSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogZG9tT2JqZWN0ID0gIiAuIEdldENhc3RpbmdIZWxwZXJG
b3JUaGlzT2JqZWN0KCRpbnRlcmZhY2UpIC4gIihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8JHtjbGFzc05hbWV9UHJvdG90eXBlKj4oYmFzZVZhbHVlKTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKiBkb21PYmpl
Y3QgPSBqc0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkge1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTtcbiIpOwpAQCAtMjYx
NiwxMiArMjYxMiwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAg
bXkgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRl
Q29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiI2lmICR7YXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmd9XG4iKSBp
ZiAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmc7CiAKLSAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAidm9pZCAke3B1dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiB0aGlzVmFsdWUiKSBpZiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKVxu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtwdXRGdW5jdGlvbk5h
bWV9KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IntcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpO1xuIik7Ci0gICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpO1xu
IikgaWYgISRhdHRyaWJ1dGUtPmlzU3RhdGljOwogICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRl
LT5pc1N0YXRpYykgewogICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0pIHsKICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0gdG8k
e2NsYXNzTmFtZX0oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDkgKzM5LDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdAogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0
RXhjaXRpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
IAogY2xhc3MgSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNO
b25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNDQsMTAgKzE0NCw5IEBAIGJvb2wgSlNUZXN0
QWN0aXZlRE9NT2JqZWN0OjpnZXRPd25Qcm9wZXIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdEV4Y2l0aW5nQXR0cihFeGVjU3RhdGUq
IHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdB
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RBY3RpdmVET01P
YmplY3QqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CkBAIC0xNjEsNyArMTYwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9N
T2JqZWN0RXhjaQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdENv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmpl
Y3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RBY3RpdmVET01PYmplY3QqIGRvbU9iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQpAQCAtMTcxLDEwICsxNzAsOSBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RDb25zCiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgp
LCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0QWN0aXZl
RE9NT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Cit2b2lkIHNldEpTVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
LSAgICBVTlVTRURfUEFSQU0oYmFzZVZhbHVlKTsKICAgICBKU1Rlc3RBY3RpdmVET01PYmplY3Qq
IGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewog
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTk2
MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENs
YXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCAr
MzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9y
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0
SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFz
cyBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSA6IHB1YmxpYyBK
U0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTE5LDE5ICsxMTksMTggQEAgdm9p
ZCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvcgogICAgIHRoaXNPYmplY3QtPkpT
VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yOjp+SlNUZXN0Q2xhc3NXaXRoSlNCdWls
dGluQ29uc3RydWN0b3IoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
YmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBK
U1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlw
ZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JQ
cm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q2xhc3NXaXRoSlNCdWls
dGluQ29uc3RydWN0b3JQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRl
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxP
YmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lk
IHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKj4oYmFzZVZhbHVl
KTsKKyAgICBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSogZG9t
T2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rv
clByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWRvbU9iamVjdCkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAg
ICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1
c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcAkocmV2aXNpb24gMTk2MjM4
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzEsOCArMzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9i
amVjdENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0Q3VzdG9tQ29u
c3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRl
cmZhY2VPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JX
aXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RDdXN0b21D
b25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTEzLDkgKzExMyw5IEBAIHZvaWQgSlNUZXN0
Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmYKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RDdXN0
b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdDo6fkpTVGVzdEN1c3RvbUNvbnN0cnVj
dG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEN1
c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNl
T2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9J
bnRlcmZhY2VPYmplY3RQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUqPihiYXNlVmFs
dWUpOworICAgIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJv
dG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9y
V2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihzdGF0ZSk7CiAgICAgSlNWYWx1ZSBjb25zdHJ1Y3RvciA9IEpTVGVzdEN1c3RvbUNvbnN0cnVj
dG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZShzdGF0ZS0+dm0oKSwg
SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKHN0YXRlLT52bSgpLCAqZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwg
ZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpLCAqanNDYXN0PEpT
RE9NR2xvYmFsT2JqZWN0Kj4oZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTI0LDEx
ICsxMjQsMTAgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaQogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0b3IpOwogfQogCi12b2lkIHNldEpTVGVz
dEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAg
IFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0
aE5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlKj4oYmFz
ZVZhbHVlKTsKKyAgICBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVj
dFByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDdXN0b21Db25zdHJ1
Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAgICAgdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzgsOCArMzgsOCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQg
c2V0SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K3ZvaWQgc2V0SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBK
U1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxP
YmplY3QgewogcHVibGljOgpAQCAtMTUxLDE5ICsxNTEsMTggQEAgYm9vbCBKU1Rlc3RDdXN0b21O
YW1lZEdldHRlcjo6Z2V0T3duUHJvcAogICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAg
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2Jq
ZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RDdXN0
b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUg
dmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKLSAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSogZG9tT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSo+KGJh
c2VWYWx1ZSk7CisgICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqIGRvbU9iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7
CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDEwICszNSwxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RF
dmVudENvbnN0cnVjdG9yQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotdm9pZCBzZXRKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRy
MShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lk
IHNldEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RF
dmVudENvbnN0cnVjdG9yUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7
CiBwdWJsaWM6CkBAIC0xNTYsMTAgKzE1Niw5IEBAIHZvaWQgSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
cjo6ZGVzdHJveShKU0MKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RFdmVudENvbnN0cnVjdG9yOjp+
SlNUZXN0RXZlbnRDb25zdHJ1Y3RvcigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVu
dENvbnN0cnVjdG9yQXR0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpz
VGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwot
ICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CiAgICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNzEsMTAgKzE3MCw5IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHQKIH0KIAogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFS
QU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFN
KHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xODYsMTkgKzE4
NCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0CiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
Ci0gICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAg
ICBKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEV2ZW50Q29u
c3RydWN0b3I6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9i
amVjdCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RFdmVu
dENvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2
YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwotICAgIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUqIGRvbU9iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSo+KGJhc2VW
YWx1ZSk7CisgICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAg
ICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXZlbnRUYXJnZXQuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Nyw4ICs0Nyw4IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3QKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2
ZW50VGFyZ2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RFdmVu
dFRhcmdldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RFdmVudFRhcmdl
dENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNjcsMTkgKzE2NywxOCBA
QCBib29sIEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRPd25Qcm9wZXJ0eVNsCiAgICAgcmV0dXJuIEJh
c2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBz
bG90KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKLSAgICBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0
RXZlbnRUYXJnZXRQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZl
bnRUYXJnZXRQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRDb25zdHJ1Y3Rv
cihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNl
dEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTVGVzdEV2ZW50VGFyZ2V0
UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0UHJv
dG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSogZG9t
T2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsK
ICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzMsOSArMzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0
ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uTmFtZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpT
VGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEV4Y2VwdGlvblByb3Rv
dHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTM0LDEw
ICsxMzQsOSBAQCBib29sIEpTVGVzdEV4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90CiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsK
ICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RFeGNlcHRpb24qIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4Y2VwdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNDksMTkg
KzE0OCwxOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEV4ZWNTCiB9CiAK
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVz
dEV4Y2VwdGlvblByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNl
cHRpb25Qcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlw
ZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKEpTVGVzdEV4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVj
dC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0
RXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwotICAgIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVz
dEV4Y2VwdGlvblByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNl
cHRpb25Qcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwog
ICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDggKzMxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBBdHRyaWJ1dGVzCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9y
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5l
cmF0ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJv
dG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMDgs
MTkgKzEwOCwxOCBAQCB2b2lkIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmRlc3Ryb3koCiAg
ICAgdGhpc09iamVjdC0+SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6fkpTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNo
YWJsZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmdldENv
bnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
LXZvaWQgc2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwotICAgIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSo+KGJhc2VWYWx1
ZSk7CisgICAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewog
ICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03OCw1MSArNzgsNTEgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdAogLy8gQXR0cmlidXRlcwogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9ySW1wbGVtZW50c1N0YXRpY1JlYWRPbmx5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW1wbGVtZW50c1N0YXRp
Y1JlYWRPbmx5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3RvckltcGxlbWVudHNTdGF0aWNBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3RhdGljQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1l
bnRzU3RhdGljQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1l
bnRzU3RhdGljQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxl
bWVudHNTdHIxKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlSW1wbGVtZW50c1N0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8
IEVOQUJMRShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
SW1wbGVtZW50c1N0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJ
bXBsZW1lbnRzU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxl
bWVudHNTdHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShD
b25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50
c1N0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRz
U3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJm
YWNlSW1wbGVtZW50c1N0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIz
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24y
MykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50c05vZGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5k
aWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0
aWNSZWFkT25seUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNl
bmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0
YXRpY0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNB
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRp
b24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3Ry
MShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1
cHBsZW1lbnRhbFN0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJM
RShDb25kaXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbFN0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBs
ZW1lbnRhbFN0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVt
ZW50YWxTdHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxl
bWVudGFsU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbE5vZGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVt
ZW50YWxOb2RlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVt
ZW50YWxOb2RlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CiAKIGNsYXNzIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmlu
YWxPYmplY3QgewogcHVibGljOgpAQCAtNDA0LDEwICs0MDQsOSBAQCB2b2lkIEpTVGVzdEludGVy
ZmFjZTo6ZGVzdHJveShKU0M6OkpTQ2VsCiB9CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8
IEVOQUJMRShDb25kaXRpb24yMykKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9ySW1wbGVtZW50c1N0YXRpY1JlYWRPbmx5QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3RhdGlj
UmVhZE9ubHlBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1ZhbHVl
IHJlc3VsdCA9IGpzTnVtYmVyKFRlc3RJbnRlcmZhY2U6OmltcGxlbWVudHNTdGF0aWNSZWFkT25s
eUF0dHIoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNDE2LDEw
ICs0MTUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3RhdGljQXR0
cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JJbXBsZW1lbnRzU3RhdGljQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNWYWx1ZSByZXN1bHQgPSBqc1N0cmluZ1dpdGhDYWNoZShzdGF0ZSwgVGVzdElu
dGVyZmFjZTo6aW1wbGVtZW50c1N0YXRpY0F0dHIoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwpAQCAtNDI4LDEwICs0MjYsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJ
bnRlcmZhY2VDb25zdHJ1Y3RvCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwg
RU5BQkxFKENvbmRpdGlvbjIzKQotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50c1N0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZUltcGxlbWVudHNTdHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBK
U1Rlc3RJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFj
ZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CkBAIC00NDUsMTAgKzQ0Miw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZUltcGxlbWVudHMKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRz
U3RyMihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
SW1wbGVtZW50c1N0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURf
UEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKQEAgLTQ2MiwxMCArNDU4LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
SW1wbGVtZW50cwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShD
b25kaXRpb24yMykKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIz
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBs
ZW1lbnRzU3RyMyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJB
TShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0SW50
ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewpAQCAtNDc3LDEwICs0NzIsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBs
ZW1lbnRzCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRp
dGlvbjIzKQotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVu
dHNOb2RlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNs
b3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RJbnRlcmZh
Y2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBA
IC00OTQsMTAgKzQ4OCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVu
dHMKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MTIpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRh
bFN0YXRpY1JlYWRPbmx5QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2Us
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIo
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2Up
OwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNO
dW1iZXIoV2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RhdGljUmVhZE9u
bHlBdHRyKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTUwNiwx
MCArNDk5LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0bwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGlj
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBX
ZWJDb3JlOjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdGF0aWNBdHRyKCkpOwogICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTUxOCwxMCArNTEwLDkgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0bwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTUzNSwxMCArNTI2LDkgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudAogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTU1MiwxMCArNTQyLDkgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudAogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTU2NywxMCArNTU2LDkgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudAogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTU4MywxOSArNTcxLDE4IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnQKIAogI2VuZGlmCiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
T2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqIGRvbU9i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4g
dGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rl
c3RJbnRlcmZhY2U6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2Jh
bE9iamVjdCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEludGVyZmFj
ZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
LSAgICBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RJbnRlcmZh
Y2VQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
ZG9tT2JqZWN0KSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtNjI1LDEwICs2MTIsOSBAQCB2b2lkIEpTVGVzdEludGVyZmFjZTo6cHV0QnlJ
bmRleChKU0NlbGwqCiB9CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25k
aXRpb24yMykKLXZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3Rh
dGljQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpT
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3RhdGljQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKGJhc2VPYmplY3QpOwogICAgIFN0cmluZyBuYXRpdmVWYWx1ZSA9IHZhbHVlLnRv
U3RyaW5nKHN0YXRlKS0+dmFsdWUoc3RhdGUpOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFk
RXhjZXB0aW9uKCkpKQogICAgICAgICByZXR1cm47CkBAIC02MzgsMTAgKzYyNCwxMCBAQCB2b2lk
IHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW1wbGVtCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotdm9pZCBzZXRKU1Rlc3RJbnRl
cmZhY2VJbXBsZW1lbnRzU3RyMihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIyKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAg
ICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJU
ZXN0SW50ZXJmYWNlIiwgImltcGxlbWVudHNTdHIyIik7CkBAIC02NTcsMTAgKzY0MywxMCBAQCB2
b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIyKEV4CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotdm9pZCBzZXRKU1Rlc3RJ
bnRlcmZhY2VJbXBsZW1lbnRzU3RyMyhFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCit2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIzKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
LSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUs
ICJUZXN0SW50ZXJmYWNlIiwgImltcGxlbWVudHNTdHIzIik7CkBAIC02NzIsMTAgKzY1OCwxMCBA
QCB2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIzKEV4CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotdm9pZCBzZXRKU1Rl
c3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFz
ZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCit2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNW
YWx1ZSk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3Rh
dGUsICJUZXN0SW50ZXJmYWNlIiwgImltcGxlbWVudHNOb2RlIik7CkBAIC02OTEsMTAgKzY3Nyw5
IEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoRXgKICNlbmRpZgogCiAj
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihFeGVjU3RhdGUq
IHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBw
bGVtZW50YWxTdGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9i
amVjdCk7CiAgICAgU3RyaW5nIG5hdGl2ZVZhbHVlID0gdmFsdWUudG9TdHJpbmcoc3RhdGUpLT52
YWx1ZShzdGF0ZSk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTcwNCwxMCArNjg5LDEwIEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3JTdXBwbGUKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rl
c3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFs
dWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFS
QU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0SW50ZXJmYWNl
IiwgInN1cHBsZW1lbnRhbFN0cjIiKTsKQEAgLTcyMywxMCArNzA4LDEwIEBAIHZvaWQgc2V0SlNU
ZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMigKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpTVGVzdEludGVyZmFjZVN1
cHBsZW1lbnRhbFN0cjMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9p
ZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBV
TlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRl
cmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0
SW50ZXJmYWNlIiwgInN1cHBsZW1lbnRhbFN0cjMiKTsKQEAgLTczOCwxMCArNzIzLDEwIEBAIHZv
aWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMygKICNlbmRpZgogCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpTVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNW
YWx1ZSk7CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3Rh
dGUsICJUZXN0SW50ZXJmYWNlIiwgInN1cHBsZW1lbnRhbE5vZGUiKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNv
bnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTEgKzM3LDExIEBAIEpTQzo6RW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1
c3RvbShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRp
bkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQg
c2V0SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RKU0J1aWx0aW5D
b25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20oSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJX
Q3VzdG9tKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVS
V0N1c3RvbShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVj
dG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMjUsMTAgKzEyNSw5IEBA
IHZvaWQgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6OmRlc3Ryb3kKICAgICB0aGlzT2JqZWN0
LT5KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6fkpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0
dHJpYnV0ZUN1c3RvbShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlQ3VzdG9tKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9Q
QVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFS
QU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAt
MTM4LDEwICsxMzcsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rv
CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0
cmlidXRlUldDdXN0b20oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNF
RF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtMTUxLDE5ICsxNDksMTggQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3Ry
dWN0bwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90
b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3JQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICgh
ZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0Q29u
c3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAot
dm9pZCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKLSAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSo+KGJhc2VW
YWx1ZSk7CisgICAgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUqIGRvbU9iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3Qp
KSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkBA
IC0xNzIsMTAgKzE2OSwxMCBAQCB2b2lkIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RyCiAgICAgZG9tT2JqZWN0LT5wdXREaXJlY3Qoc3RhdGUtPnZtKCksIHN0YXRlLT5wcm9wZXJ0
eU5hbWVzKCkuY29uc3RydWN0b3IsIHZhbHVlKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RKU0J1aWx0
aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0
dHJpYnV0ZVJXQ3VzdG9tKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVj
dCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0SlNCdWlsdGluQ29u
c3RydWN0b3IqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVz
dEpTQnVpbHRpbkNvbnN0cnVjdG9yIiwgInRlc3RBdHRyaWJ1dGVSV0N1c3RvbSIpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAkocmV2aXNpb24g
MTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4ICszOCw4
IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKIAogLy8gQXR0cmli
dXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtMTE2LDE5ICsxMTYsMTggQEAgdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyOjpkZXN0cgogICAgIHRoaXNPYmplY3QtPkpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6On5KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKCk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewotICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqIGRvbU9iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSo+
KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSog
ZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJv
dG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0
KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRDb25zdHJ1Y3Rv
cihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNl
dEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
LSAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKiBkb21PYmplY3QgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqPihiYXNl
VmFsdWUpOworICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqIGRvbU9i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlw
ZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9i
amVjdCkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVy
bjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDE5
NjIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsOCArMzMsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBz
ZXRKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVz
dE5hbWVkQ29uc3RydWN0b3JQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTE0MywxOSArMTQzLDE4IEBAIHZvaWQgSlNUZXN0TmFtZWRDb25zdHJ1
Y3Rvcjo6ZGVzdHJveShKU0MKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3ROYW1lZENvbnN0cnVjdG9y
Ojp+SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RO
YW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJh
c2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpz
VGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3ROYW1lZENvbnN0
cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQ29u
c3RydWN0b3JQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdE5hbWVkQ29uc3RydWN0
b3JQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1
Y3RvclByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRv
bU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBz
ZXRKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAgSlNUZXN0
TmFtZWRDb25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5h
bWVkQ29uc3RydWN0b3JQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCShyZXZpc2lvbiAxOTYy
MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9k
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDEwICszNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlTmFt
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE5vZGVOYW1lKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVOYW1lKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3ROb2Rl
TmFtZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lk
IHNldEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROb2RlUHJvdG90eXBl
IDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMTYsMTAgKzEx
Niw5IEBAIEpTT2JqZWN0KiBKU1Rlc3ROb2RlOjpnZXRQcm90b3R5cGUoVk0mIHYKICAgICByZXR1
cm4gZ2V0RE9NUHJvdG90eXBlPEpTVGVzdE5vZGU+KHZtLCBnbG9iYWxPYmplY3QpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlTmFtZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0Tm9kZU5hbWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAg
ICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwog
ICAgIEpTVGVzdE5vZGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vZGUqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkgewpAQCAtMTMxLDE5ICsxMzAsMTggQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZU5hbWUo
RXhlY1N0YXRlKgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAg
IEpTVGVzdE5vZGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9k
ZVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0Tm9kZVByb3RvdHlwZSogZG9tT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb2RlUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROb2Rl
OjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkp
OwogfQogCi12b2lkIHNldEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBK
U09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZh
bHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKLSAgICBKU1Rlc3ROb2RlUHJvdG90
eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vZGVQcm90b3R5cGUqPihiYXNl
VmFsdWUpOworICAgIEpTVGVzdE5vZGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0Tm9kZVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE1MiwxMCArMTUwLDEwIEBAIHZvaWQgc2V0SlNU
ZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSoKICAgICBkb21PYmplY3QtPnB1dERpcmVjdChz
dGF0ZS0+dm0oKSwgc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5jb25zdHJ1Y3RvciwgdmFsdWUpOwog
fQogCi12b2lkIHNldEpTVGVzdE5vZGVOYW1lKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0Tm9kZU5hbWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
SlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNF
RF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBK
U1Rlc3ROb2RlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb2RlKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
ICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE5vZGUiLCAibmFtZSIp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
bmRldGVybWluaXN0aWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAkocmV2aXNpb24gMTk2
MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5v
bmRldGVybWluaXN0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxNyArNDUsMTcgQEAgSlND
OjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdAogCiAvLyBBdHRyaWJ1dGVzCiAK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0
aWNSZWFkb25seUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1dyaXRlYWJsZUF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1dy
aXRlYWJsZUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9uQXR0cihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci12b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhj
ZXB0aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNHZXR0ZXJFeGNlcHRpb25BdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0
aWNHZXR0ZXJFeGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlv
bkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9u
ZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Y05vbmRldGVybWluaXN0aWNSZWFkb25seUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljV3JpdGVhYmxlQXR0cihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0
SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNXcml0ZWFibGVBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGlj
RXhjZXB0aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWlu
aXN0aWNFeGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVy
bWluaXN0aWNOb25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNHZXR0ZXJFeGNlcHRpb25BdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlz
dGljU2V0dGVyRXhjZXB0aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05v
bmRldGVybWluaXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0
ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5vbmRldGVybWluaXN0aWNQ
cm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEz
NywxMCArMTM3LDkgQEAgdm9pZCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljOjpkZXN0cm95KEpTQwog
ICAgIHRoaXNPYmplY3QtPkpTVGVzdE5vbmRldGVybWluaXN0aWM6On5KU1Rlc3ROb25kZXRlcm1p
bmlzdGljKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25k
ZXRlcm1pbmlzdGljUmVhZG9ubHlBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90
QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1JlYWRvbmx5QXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
YyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CkBAIC0xNzIsMTAgKzE3MSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWlu
aXN0aWNOb24KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9u
ZGV0ZXJtaW5pc3RpY1dyaXRlYWJsZUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljV3JpdGVhYmxlQXR0
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFz
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJtaW5p
c3RpYyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CkBAIC0yMDcsMTAgKzIwNSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVy
bWluaXN0aWNOb24KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGlj
Tm9uZGV0ZXJtaW5pc3RpY0V4Y2VwdGlvbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9u
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90
QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJt
aW5pc3RpYyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CkBAIC0yNDIsMTAgKzIzOSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRl
dGVybWluaXN0aWNOb24KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlz
dGljTm9uZGV0ZXJtaW5pc3RpY0dldHRlckV4Y2VwdGlvbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGlj
R2V0dGVyRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0yODEsMTAgKzI3Nyw5IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb24KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNO
b25kZXRlcm1pbmlzdGljU2V0dGVyRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0zMTYsMTkgKzMxMSwx
OCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uCiB9CiAKIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0g
ICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBK
U1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5vbmRldGVybWlu
aXN0aWM6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3ROb25kZXRl
cm1pbmlzdGljQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwotICAgIEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGUqIGRvbU9iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSo+KGJhc2VWYWx1
ZSk7CisgICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAgICAg
ICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzM3LDEwICsz
MzEsMTAgQEAgdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0bwogICAgIGRv
bU9iamVjdC0+cHV0RGlyZWN0KHN0YXRlLT52bSgpLCBzdGF0ZS0+cHJvcGVydHlOYW1lcygpLmNv
bnN0cnVjdG9yLCB2YWx1ZSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05v
bmRldGVybWluaXN0aWNXcml0ZWFibGVBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNX
cml0ZWFibGVBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7
CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
YyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3ROb25kZXRlcm1p
bmlzdGljIiwgIm5vbmRldGVybWluaXN0aWNXcml0ZWFibGVBdHRyIik7CkBAIC0zNTQsMTAgKzM0
OCwxMCBAQCB2b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pCiB9CiAKIAot
dm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY0V4Y2VwdGlvbkF0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RO
b25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY0V4Y2VwdGlvbkF0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3ROb25kZXRlcm1pbmlzdGljKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJU
eXBlRXJyb3IoKnN0YXRlLCAiVGVzdE5vbmRldGVybWluaXN0aWMiLCAibm9uZGV0ZXJtaW5pc3Rp
Y0V4Y2VwdGlvbkF0dHIiKTsKQEAgLTM3MSwxMCArMzY1LDEwIEBAIHZvaWQgc2V0SlNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpY05vbmRldGVybWkKIH0KIAogCi12b2lkIHNldEpTVGVzdE5vbmRldGVybWlu
aXN0aWNOb25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25k
ZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBK
U1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE5vbmRldGVybWluaXN0aWMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5v
bmRldGVybWluaXN0aWMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3Rh
dGUsICJUZXN0Tm9uZGV0ZXJtaW5pc3RpYyIsICJub25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0
aW9uQXR0ciIpOwpAQCAtMzg4LDEwICszODIsMTAgQEAgdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1p
bmlzdGljTm9uZGV0ZXJtaQogfQogCiAKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05v
bmRldGVybWluaXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2Jq
ZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWlu
aXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUg
dmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0o
YmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpYyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJt
aW5pc3RpYyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRl
c3ROb25kZXRlcm1pbmlzdGljIiwgIm5vbmRldGVybWluaXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRy
Iik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4MCwxNTkgKzE4MCwxNTkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpz
VGVzdAogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVh
ZE9ubHlMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlYWRPbmx5U3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3Rv
clN0YXRpY1N0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpDb25z
dHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29u
c3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpUZXN0U3ViT2JqRW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVz
dE9iakVudW1BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpCeXRlQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakJ5dGVBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPY3RldEF0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpPY3RldEF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZv
aWQgc2V0SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci12b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLXZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9p
ZCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZv
aWQgc2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpYTUxPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZv
aWQgc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0
T2JqQ3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpSZWFkT25seVN5bWJvbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5U3ltYm9sQXR0cihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJ
bnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJ
bnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQg
c2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVS
TEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0
ZWRTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVk
U3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0
SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5B
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21VUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tVVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rl
c3RPYmpUeXBlZEFycmF5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9p
ZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25XaXRo
TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZv
aWQgc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0
aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbldpdGhNZXNzYWdlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci12b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialN0cmlu
Z0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RUeXBlQ2hlY2tpbmdBdHRyaWJ1dGUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RUeXBlQ2hlY2tpbmdBdHRyaWJ1dGUoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPbmZvbyhKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci12b2lkIHNldEpTVGVzdE9iak9uZm9vKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRl
ckNhbGxXaXRoQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqV2l0
aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0
cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci12b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lk
IHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRy
aWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0
cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpX
aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LXZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9u
bHlMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdB
dHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9u
Z0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3Ry
aW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQg
c2V0SlNUZXN0T2JqRW51bUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQnl0
ZUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakJ5dGVBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iak9jdGV0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqT2N0ZXRBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqU2hv
cnRBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RP
YmpMb25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRM
b25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9i
alN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdE9iakF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Cit2b2lkIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqTGVuaWVudFRlc3RP
YmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lk
IHNldEpTVGVzdE9ialhNTE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
Q3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpDcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqUmVhZE9ubHlTeW1ib2xBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5U3ltYm9sQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVj
dGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJ
bnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNl
dEpTVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVz
dE9ialJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tVVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9t
VVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K3ZvaWQgc2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoU2V0
dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0
dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3Ry
aW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmlu
Z0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RU
eXBlQ2hlY2tpbmdBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialN0cmljdFR5cGVDaGVja2lu
Z0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
dm9pZCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iak9uZm9vKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpPbmZvbyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialdp
dGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpX
aXRoQ2FsbFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2Jq
V2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lk
IHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmli
dXRlUmFpc2VzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRy
aWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tB
dHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVz
dE9iakNvbmRpdGlvbmFsQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29u
ZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Cit2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVO
QUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpT
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKQotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRp
dGlvbjIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI1Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24x
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lk
IHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQW55QXR0cmlidXRlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakltbXV0YWJsZVBvaW50KEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmF3YmVycnkoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RGbG9hdChKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci12b2lkIHNldEpTVGVzdE9ialN0cmljdEZsb2F0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iaklkKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNU
ZXN0T2JqSWQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akhhc2goSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZXBs
YWNlYWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialJlcGxh
Y2VhYmxlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxl
U3RyaW5nQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9p
ZCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nVmFsdWUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdp
dGhSZXNlcnZlZEVudW1UeXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQXR0
cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LXZvaWQgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1
dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxl
QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakNvbnN0cnVj
dG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNo
ZWRBdHRyaWJ1dGUxKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1
dGUyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNl
dEpTVGVzdE9iakFueUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpD
b250ZW50RG9jdW1lbnQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQb2lu
dChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK3ZvaWQgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakltbXV0YWJsZVBvaW50KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2lu
dChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJhd2JlcnJ5KEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRK
U1Rlc3RPYmpTdHJhd2JlcnJ5KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmlj
dEZsb2F0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RGbG9hdChKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
SWQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Cit2b2lkIHNldEpTVGVzdE9iaklkKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akhhc2goSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2Jq
TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJp
bmdWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGUoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
dm9pZCBzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNU
ZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUHV0Rm9y
d2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNU
ZXN0T2JqUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6
CkBAIC03NDIsMTAgKzc0Miw5IEBAIGJvb2wgSlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNPYmoKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
YWRPbmx5TG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlYWRPbmx5TG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBV
TlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
QEAgLTc1NywxMCArNzU2LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlMb25n
QXR0cgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTdHJp
bmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNs
b3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC03NzIsMTAgKzc3
MCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXQKIH0KIAogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC03ODcsMzAgKzc4NCwyNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBCiB9CiAKIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRP
bmx5TG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVmFsdWUg
cmVzdWx0ID0ganNOdW1iZXIoVGVzdE9iajo6c3RhdGljUmVhZE9ubHlMb25nQXR0cigpKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
T2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwog
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJp
bmdXaXRoQ2FjaGUoc3RhdGUsIFRlc3RPYmo6OnN0YXRpY1N0cmluZ0F0dHIoKSk7CiAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xv
dEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CkBAIC04MjAsMTAgKzgxNCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakNvbnN0cnVjdG9yVGVzdFMKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0
U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2Jq
ZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC04MzgsMTAgKzgzMSw5
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RTdWJPYmpFbmFibGUKIH0KIAogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqRW51bUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
LSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKQEAgLTg1MywxMCArODQ1LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRW51bUF0
dHIoRXhlY1N0YQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakJ5dGVBdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpCeXRlQXR0cihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtODY4LDEwICs4NTksOSBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpCeXRlQXR0cihFeGVjU3RhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqT2N0ZXRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpPY3RldEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVT
RURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAg
LTg4MywxMCArODczLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT2N0ZXRBdHRyKEV4ZWNT
dAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNF
RF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC04OTgsMTAgKzg4Nyw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialNob3J0QXR0cihFeGVjU3QKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpVbnNpZ25lZFNob3J0QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2Us
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
LSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKQEAgLTkxMywxMCArOTAxLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWdu
ZWRTaG9ydEF0dAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nQXR0cihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtOTI4LDEwICs5MTUsOSBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpMb25nQXR0cihFeGVjU3RhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFz
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAg
ICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
IHsKQEAgLTk0MywxMCArOTI5LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdB
dHRyKEV4ZQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdB
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25l
ZExvbmdMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtOTU4
LDEwICs5NDMsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nCiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtOTczLDEwICs5NTcsOSBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpTdHJpbmdBdHRyKEV4ZWNTCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
VGVzdE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC05ODgs
MTAgKzk3MSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RPYmpBdHRyKEV4ZWMKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTAwMywxMCArOTg1LDkgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdAogfQogCiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
LSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKQEAgLTEwMTgsMTAgKzk5OSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialhNTE9i
akF0dHIoRXhlY1MKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDcmVhdGUoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTAzMywxMCArMTAxMyw5IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpSZWFkT25seVN5bWJvbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5U3ltYm9sQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewpAQCAtMTA0OCwyMCArMTAyNywxOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpSZWFkT25seVN5bWJvbEF0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29u
c3RydWN0b3JTdGF0aWNSZWFkT25seVN5bWJvbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlTeW1ib2xBdHRy
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNl
KTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IFN5
bWJvbDo6Y3JlYXRlKHN0YXRlLT52bSgpLCAqKFRlc3RPYmo6OnN0YXRpY1JlYWRPbmx5U3ltYm9s
QXR0cigpKS51aWQoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQog
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIo
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2Up
OwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEwNzMsMTAgKzEwNTAsOSBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBCiB9CiAKIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAg
IFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEwODgsMTAgKzEwNjQsOSBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhCiB9CiAKIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxB
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMTAzLDEwICsxMDc4
LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZQogfQogCiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTExOCwxMCArMTA5Miw5IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW4KIH0KIAogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CkBAIC0xMTMzLDEwICsxMTA2LDkgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkVVJMQXR0cgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
ZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
LSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKQEAgLTExNDgsMTAgKzExMjAsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRTdHJpbmdBCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0
YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKQEAgLTExNjMsMTAgKzExMzQsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21JCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tQm9vbGVhbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CkBAIC0xMTc4LDEwICsxMTQ4LDkgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbVVSTEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0
YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKQEAgLTExOTMsMTAgKzExNjIsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21VCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVHlwZWRB
cnJheUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialR5
cGVkQXJyYXlBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMjA4
LDEwICsxMTc2LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVHlwZWRBcnJheUF0dHIoRQog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJB
TShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTIyNSwx
MCArMTE5Miw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXgKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbldpdGhN
ZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CkBAIC0xMjQyLDEwICsxMjA4LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
QXR0cldpdGhHZXR0ZXJFeAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRo
U2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewpAQCAtMTI1NywxMCArMTIyMiw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0
dHJXaXRoU2V0dGVyRXgKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90
QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMjcyLDEwICsxMjM2LDkgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeAogfQogCiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFz
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTI4OSwxMCArMTI1Miw5
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoR2UKIH0KIAogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cldpdGhTZXR0
ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEzMDQs
MTAgKzEyNjYsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNlCiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaWN0VHlwZUNoZWNraW5nQXR0cmlidXRl
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RUeXBl
Q2hlY2tpbmdBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVT
RURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAg
LTEzMTksMTAgKzEyODAsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RUeXBlQ2hl
Y2tpCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tQXR0cihFeGVjU3RhdGUq
IHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tQXR0cihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTMzMiwxMCArMTI5Miw5IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoRXhlY1MKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpPbmZvbyhFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqT25mb28oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0o
c2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEzNDYsMTAg
KzEzMDUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPbmZvbyhFeGVjU3RhdGUqCiB9CiAK
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVB
dHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0o
c2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEzNjEsMTAg
KzEzMTksOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBCiB9CiAK
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhB
dHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdp
dGhDYWxsV2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CkBAIC0xMzc2LDEwICsxMzMzLDkgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqV2l0aENhbGxXaXRoQW5kUwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2Jq
ZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0
ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFz
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTM5NCwxMCArMTM1MCw5
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXQKIH0KIAogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTQx
MSwxMCArMTM2Niw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUEK
IH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dEF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE0MzEsMTAgKzEzODUsOSBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0
ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTQ0OSwxMCArMTQwMiw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXQKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVO
VVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNDY5LDEwICsxNDIxLDkgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2Vz
QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpX
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0
ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFz
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTQ4NywxMCArMTQzOCw5
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXQKIH0KIAogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmli
dXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2Ny
aXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKSB7CkBAIC0xNTAzLDEwICsxNDUzLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqV2l0aFNjcmlwdEFyZ3VtZQogCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKQEAgLTE1MjAsMTAgKzE0NjksOSBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24x
KSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURf
UEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE1
MzcsMTAgKzE0ODUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIy
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE1NTQsMTAgKzE1MDEsOSBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzCiAjZW5kaWYKIAogI2lmIEVOQUJMRShD
b25kaXRpb24xKQotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25k
aXRpb25hbEF0dHI0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAg
ICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
IHsKQEAgLTE1NjksMTAgKzE1MTUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRp
b25hbEF0dHI0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29u
ZGl0aW9uMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CkBAIC0xNTg0LDEwICsxNTI5LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjIpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0
b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjZDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtMTU5OCwxMCArMTU0Miw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjYKIAogI2VuZGlmCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0
ZTEoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0
dHJpYnV0ZTEoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0o
c2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE2MTYsMTAg
KzE1NTksOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxCiB9CiAK
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTYzNCwxMCArMTU3Niw5IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIKIH0KIAogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakFueUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwot
ICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkgewpAQCAtMTY0OSwxMCArMTU5MCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFueUF0
dHJpYnV0ZShFeGUKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50RG9jdW1l
bnQoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnRE
b2N1bWVudChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShz
bG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTY2MywxMCAr
MTYwMyw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVudCgKIH0KIAog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpNdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTY3OCwxMCArMTYxNyw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iak11dGFibGVQb2ludChFeGUKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpJbW11dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBV
TlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
QEAgLTE2OTMsMTAgKzE2MzEsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJbW11dGFibGVQ
b2ludChFCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeShFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeShFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTcwOCwxMCArMTY0NSw5IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmF3YmVycnkoRXhlY1MKIH0KIAogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpTdHJpY3RGbG9hdChFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqU3RyaWN0RmxvYXQoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAg
ICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwog
ICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykp
IHsKQEAgLTE3MjMsMTAgKzE2NTksOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RG
bG9hdChFeGVjCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24oRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsK
ICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNzM4LDEwICsxNjczLDkgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24oRXhlYwogfQogCiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iaklkKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpJZChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJB
TShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTc1Mywx
MCArMTY4Nyw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iaklkKEV4ZWNTdGF0ZSogc3QKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpIYXNoKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2Jq
ZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpIYXNoKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CkBAIC0xNzY4LDEwICsxNzAxLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSGFz
aChFeGVjU3RhdGUqIAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlcGxhY2VhYmxl
QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpS
ZXBsYWNlYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtMTc4MywxMCArMTcxNSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlcGxhY2VhYmxl
QXR0cmkKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJp
YnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFi
bGVEb3VibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVT
RURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAg
LTE3OTgsMTAgKzE3MjksOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJs
ZUF0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRl
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxv
bmdBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE4MTMs
MTAgKzE3NDMsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyCiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0cmlidXRlKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xl
YW5BdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE4Mjgs
MTAgKzE3NTcsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BCiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5n
QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xODQzLDEw
ICsxNzcxLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdAogfQog
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRl
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxv
bmdTZXR0YWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtMTg1OCwxMCArMTc4NSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9u
Z1NldHQKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1ZhbHVl
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0
cmluZ1ZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xODc1LDEw
ICsxODAxLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYQogfQog
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBK
U09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CkBAIC0xODkwLDEwICsxODE1LDkgQEAgRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQXR0cmlidXRlKEV4ZWNTdAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0
dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTkwNSwxMCArMTgyOSw5IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXMKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BB
UkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKQEAgLTE5MjAsMTAgKzE4NDMsOSBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTkzNSwxOSArMTg1NywxOCBAQCBFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewotICAgIEpTVGVzdE9ialByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdE9i
alByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAg
ICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVGVzdE9iajo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+
Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpT
VGVzdE9ialByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90
b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdE9ialByb3RvdHlwZSogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAgICAgIHRocm93Vk1U
eXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkBAIC0xOTU2LDEwICsxODc3LDkgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIAogICAgIGRvbU9iamVjdC0+
cHV0RGlyZWN0KHN0YXRlLT52bSgpLCBzdGF0ZS0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9y
LCB2YWx1ZSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdB
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1
Y3RvclN0YXRpY1N0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNl
T2JqZWN0KTsKICAgICBTdHJpbmcgbmF0aXZlVmFsdWUgPSB2YWx1ZS50b1N0cmluZyhzdGF0ZSkt
PnZhbHVlKHN0YXRlKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTk2NywxMCArMTg4NywxMCBAQCB2b2lkIHNldEpTVGVzdE9i
akNvbnN0cnVjdG9yU3RhdGljU3RyaW5nCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpUZXN0U3Vi
T2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwor
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBl
RXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIpOwpA
QCAtMTk4MSwxMCArMTkwMSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialRlc3RTdWJPYmpFbmFibGVk
QnlTZXR0CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpFbnVtQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakVudW1BdHRyKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZh
bHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0
T2JqIiwgImVudW1BdHRyIik7CkBAIC0yMDAwLDEwICsxOTIwLDEwIEBAIHZvaWQgc2V0SlNUZXN0
T2JqRW51bUF0dHIoRXhlY1N0YXRlKiBzdGEKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakJ5dGVB
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0
T2JqQnl0ZUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsK
KyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlw
ZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAiYnl0ZUF0dHIiKTsKQEAgLTIwMTcsMTAgKzE5Mzcs
MTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpCeXRlQXR0cihFeGVjU3RhdGUqIHN0YQogfQogCiAKLXZv
aWQgc2V0SlNUZXN0T2JqT2N0ZXRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqT2N0ZXRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVT
RURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewog
ICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm9jdGV0QXR0
ciIpOwpAQCAtMjAzNCwxMCArMTk1NCwxMCBAQCB2b2lkIHNldEpTVGVzdE9iak9jdGV0QXR0cihF
eGVjU3RhdGUqIHN0CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIo
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0
ZSwgIlRlc3RPYmoiLCAic2hvcnRBdHRyIik7CkBAIC0yMDUxLDEwICsxOTcxLDEwIEBAIHZvaWQg
c2V0SlNUZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdGF0ZSogc3QKIH0KIAogCi12b2lkIHNldEpTVGVz
dE9ialVuc2lnbmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAg
IFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAidW5z
aWduZWRTaG9ydEF0dHIiKTsKQEAgLTIwNjgsMTAgKzE5ODgsMTAgQEAgdm9pZCBzZXRKU1Rlc3RP
YmpVbnNpZ25lZFNob3J0QXR0cihFeGVjUwogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqTG9uZ0F0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RP
YmpMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwor
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBl
RXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJsb25nQXR0ciIpOwpAQCAtMjA4NSwxMCArMjAwNSwx
MCBAQCB2b2lkIHNldEpTVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhCiB9CiAKIAotdm9p
ZCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAg
IFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAibG9u
Z0xvbmdBdHRyIik7CkBAIC0yMTAyLDEwICsyMDIyLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqTG9u
Z0xvbmdBdHRyKEV4ZWNTdGF0ZSoKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkTG9u
Z0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0
SlNUZXN0T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9Q
QVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAg
ICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAidW5zaWduZWRMb25n
TG9uZ0F0dHIiKTsKQEAgLTIxMTksMTAgKzIwMzksMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpVbnNp
Z25lZExvbmdMb25nQXR0cihFeAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialN0
cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVy
cm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAic3RyaW5nQXR0ciIpOwpAQCAtMjEzNiwxMCArMjA1Niwx
MCBAQCB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHIoRXhlY1N0YXRlKiBzCiB9CiAKIAotdm9p
ZCBzZXRKU1Rlc3RPYmpUZXN0T2JqQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFz
ZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBV
TlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgInRlc3RP
YmpBdHRyIik7CkBAIC0yMTUzLDEwICsyMDczLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqVGVzdE9i
akF0dHIoRXhlY1N0YXRlKiAKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2Jq
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVz
dE9iakxlbmllbnRUZXN0T2JqQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgcmV0
dXJuOwpAQCAtMjE2OSwxMCArMjA4OSwxMCBAQCB2b2lkIHNldEpTVGVzdE9iakxlbmllbnRUZXN0
T2JqQXR0cihFeGVjCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqWE1MT2JqQXR0
cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2Rl
KGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0
YXRlLCAiVGVzdE9iaiIsICJYTUxPYmpBdHRyIik7CkBAIC0yMTg2LDEwICsyMTA2LDEwIEBAIHZv
aWQgc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihFeGVjU3RhdGUqIHMKIH0KIAogCi12b2lkIHNldEpT
VGVzdE9iakNyZWF0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lk
IHNldEpTVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VP
YmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dT
ZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJjcmVhdGUiKTsKQEAgLTIyMDMsMTAg
KzIxMjMsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpDcmVhdGUoRXhlY1N0YXRlKiBzdGF0ZQogfQog
CiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3RPYmoiLCAicmVmbGVjdGVkU3RyaW5nQXR0ciIpOwpAQCAtMjIyMCwxMCArMjE0
MCwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlCiB9CiAKIAot
dm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3RPYmoiLCAicmVmbGVjdGVkSW50ZWdyYWxBdHRyIik7CkBAIC0yMjM3LDEwICsy
MTU3LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEUKIH0KIAog
Ci12b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVk
VW5zaWduZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNl
T2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93
U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAicmVmbGVjdGVkVW5zaWduZWRJbnRl
Z3JhbEF0dHIiKTsKQEAgLTIyNTQsMTAgKzIxNzQsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZs
ZWN0ZWRVbnNpZ25lZEludGVncgogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9v
bGVhbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRK
U1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAg
ICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJyZWZsZWN0ZWRCb29s
ZWFuQXR0ciIpOwpAQCAtMjI3MSwxMCArMjE5MSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxl
Y3RlZEJvb2xlYW5BdHRyKEV4CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxB
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0
T2JqUmVmbGVjdGVkVVJMQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VP
YmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dT
ZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJyZWZsZWN0ZWRVUkxBdHRyIik7CkBA
IC0yMjg4LDEwICsyMjA4LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihF
eGVjU3QKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0
ZWRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7
CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5
cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgInJlZmxlY3RlZFN0cmluZ0F0dHIiKTsKQEAgLTIz
MDUsMTAgKzIyMjUsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4
ZQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUg
dmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0o
YmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2Jq
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0
aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgInJlZmxlY3RlZEN1c3RvbUlu
dGVncmFsQXR0ciIpOwpAQCAtMjMyMiwxMCArMjI0MiwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbUludGVncmFsCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21Cb29sZWFuQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2
b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
LSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwg
InJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIik7CkBAIC0yMzM5LDEwICsyMjU5LDEwIEBAIHZv
aWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkEKIH0KIAogCi12b2lkIHNldEpT
VGVzdE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2Rl
ZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFN
KHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJU
ZXN0T2JqIiwgInJlZmxlY3RlZEN1c3RvbVVSTEF0dHIiKTsKQEAgLTIzNTYsMTAgKzIyNzYsMTAg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKAogfQogCiAKLXZvaWQg
c2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ0
eXBlZEFycmF5QXR0ciIpOwpAQCAtMjM3MywxMCArMjI5MywxMCBAQCB2b2lkIHNldEpTVGVzdE9i
alR5cGVkQXJyYXlBdHRyKEV4ZWNTdGF0CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2
b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAg
ICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImF0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uIik7CkBAIC0yMzkwLDEwICsyMzEwLDEwIEBAIHZvaWQgc2V0
SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24KIH0KIAogCi12b2lkIHNldEpTVGVzdE9i
akF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bldpdGhNZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7
CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5
cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1l
c3NhZ2UiKTsKQEAgLTI0MDcsMTAgKzIzMjcsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbgogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRK
U1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBK
U1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAg
ICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJhdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbiIpOwpAQCAtMjQyNiwxMCArMjM0NiwxMCBAQCB2b2lkIHNldEpTVGVzdE9i
akF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb25XaXRoTWVz
c2FnZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJhdHRyV2l0aFNldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlIik7
CkBAIC0yNDQ1LDEwICsyMzY1LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24KIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNU
ZXN0T2JqU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVO
VVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAic3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iKTsKQEAgLTI0NjIsMTAgKzIzODIsMTAgQEAgdm9pZCBz
ZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4YwogfQogCiAKLXZvaWQgc2V0SlNUZXN0
T2JqU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIpOwpAQCAt
MjQ4MSwxMCArMjQwMSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVy
RXhjCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RUeXBlQ2hlY2tpbmdBdHRyaWJ1dGUo
RXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpT
dHJpY3RUeXBlQ2hlY2tpbmdBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJB
TShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAg
IHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAic3RyaWN0VHlwZUNoZWNr
aW5nQXR0cmlidXRlIik7CkBAIC0yNTAyLDEwICsyNDIyLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2Jq
U3RyaWN0VHlwZUNoZWNraW5nQXR0cmkKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakN1c3RvbUF0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RP
YmpDdXN0b21BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7
CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5
cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImN1c3RvbUF0dHIiKTsKQEAgLTI1MTUsMTAgKzI0
MzUsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEV4ZWNTdGF0ZSogcwogfQogCiAK
LXZvaWQgc2V0SlNUZXN0T2JqT25mb28oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQordm9pZCBzZXRKU1Rlc3RPYmpPbmZvbyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAg
ICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJvbmZvbyIpOwpAQCAt
MjUyOCwxMCArMjQ0OCwxMCBAQCB2b2lkIHNldEpTVGVzdE9iak9uZm9vKEV4ZWNTdGF0ZSogc3Rh
dGUsCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNl
T2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93
U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAid2l0aFNjcmlwdFN0YXRlQXR0cmli
dXRlIik7CkBAIC0yNTQ1LDEwICsyNDY1LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlw
dFN0YXRlQXR0cmlidXQKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNl
dHRlckNhbGxXaXRoQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1
dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3RPYmoiLCAid2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUi
KTsKQEAgLTI1NjIsMTAgKzI0ODIsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhB
bmRTZXR0ZXJDYQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9p
ZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVz
dE9iaiIsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIpOwpAQCAtMjU4Miwx
MCArMjUwMiwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250CiB9
CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJB
TShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAg
IHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAid2l0aFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzIik7CkBAIC0yNTk5LDEwICsyNTE5LDEwIEBAIHZvaWQgc2V0SlNUZXN0
T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXQKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialdpdGhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
T2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1Zh
bHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNl
T2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93
U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGVSYWlzZXMiKTsKQEAgLTI2MTksMTAgKzI1MzksMTAgQEAgdm9pZCBzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwot
ICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAi
d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZSIpOwpAQCAt
MjYzOSwxMCArMjU1OSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVl
IHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAg
dGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzIik7CkBAIC0yNjU5LDEwICsy
NTc5LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnQKIH0KIAog
Ci12b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3Rh
dGVXaXRoU3BhY2VzQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2
YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShi
YXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRo
cm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAid2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUiKTsKQEAgLTI2NzksMTAg
KzI1OTksMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udAogfQog
CiAKLXZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJp
YnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVz
dE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoi
LCAid2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSIpOwpAQCAtMjY5Nywx
MCArMjYxNywxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDCiAK
IAogI2lmIEVOQUJMRShDb25kaXRpb24xKQotdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0
dHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyMShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VP
YmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dT
ZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJjb25kaXRpb25hbEF0dHIxIik7CkBA
IC0yNzE2LDEwICsyNjM2LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShF
eGVjU3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRp
b24yKQotdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRl
LCAiVGVzdE9iaiIsICJjb25kaXRpb25hbEF0dHIyIik7CkBAIC0yNzM1LDEwICsyNjU1LDEwIEBA
IHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihFeGVjU3QKICNlbmRpZgogCiAjaWYg
RU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotdm9pZCBzZXRKU1Rlc3RP
YmpDb25kaXRpb25hbEF0dHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
ICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJjb25kaXRp
b25hbEF0dHIzIik7CkBAIC0yNzU0LDEwICsyNjc0LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyMyhFeGVjU3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi12
b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3Qp
OworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJU
eXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJjb25kaXRpb25hbEF0dHI0Iik7CkBAIC0yNzcw
LDEwICsyNjkwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnUK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQot
dm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0
dHI1Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVy
VHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAiY29uZGl0aW9uYWxBdHRyNSIpOwpAQCAtMjc4
NiwxMCArMjcwNiwxMCBAQCB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikK
LXZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBK
U1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVj
dCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRl
clR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImNvbmRpdGlvbmFsQXR0cjYiKTsKQEAgLTI4
MDEsMTAgKzI3MjEsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3Ry
dQogCiAjZW5kaWYKIAotdm9pZCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUo
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0
ZSwgIlRlc3RPYmoiLCAiYW55QXR0cmlidXRlIik7CkBAIC0yODE4LDEwICsyNzM4LDEwIEBAIHZv
aWQgc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEV4ZWNTdGF0ZSoKIH0KIAogCi12b2lkIHNldEpT
VGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Cit2b2lkIHNldEpTVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBK
U1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAg
ICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJtdXRhYmxlUG9p
bnQiKTsKQEAgLTI4MzUsMTAgKzI3NTUsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9p
bnQoRXhlY1N0YXRlKgogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpJbW11
dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOwor
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBl
RXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJpbW11dGFibGVQb2ludCIpOwpAQCAtMjg1MiwxMCAr
Mjc3MiwxMCBAQCB2b2lkIHNldEpTVGVzdE9iakltbXV0YWJsZVBvaW50KEV4ZWNTdGF0CiB9CiAK
IAotdm9pZCBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqU3RyYXdiZXJyeShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
IHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJz
dHJhd2JlcnJ5Iik7CkBAIC0yODY5LDEwICsyNzg5LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqU3Ry
YXdiZXJyeShFeGVjU3RhdGUqIHMKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialN0cmljdEZsb2F0
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2Jq
U3RyaWN0RmxvYXQoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsK
KyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlw
ZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAic3RyaWN0RmxvYXQiKTsKQEAgLTI4ODYsMTAgKzI4
MDYsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RGbG9hdChFeGVjU3RhdGUqIAogfQogCiAK
LXZvaWQgc2V0SlNUZXN0T2JqSWQoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQordm9pZCBzZXRKU1Rlc3RPYmpJZChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhy
b3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJpZCIpOwpAQCAtMjkwMywxMCAr
MjgyMywxMCBAQCB2b2lkIHNldEpTVGVzdE9iaklkKEV4ZWNTdGF0ZSogc3RhdGUsIEpTCiB9CiAK
IAotdm9pZCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmli
dXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNv
ZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5V
U0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigq
c3RhdGUsICJUZXN0T2JqIiwgInJlcGxhY2VhYmxlQXR0cmlidXRlIik7CkBAIC0yOTE3LDEwICsy
ODM3LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoRXgKIH0KIAog
Ci12b2lkIHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqTnVsbGFibGVM
b25nU2V0dGFibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNl
T2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93
U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAibnVsbGFibGVMb25nU2V0dGFibGVB
dHRyaWJ1dGUiKTsKQEAgLTI5MzQsMTAgKzI4NTQsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpOdWxs
YWJsZUxvbmdTZXR0YWJsZUF0dAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJp
bmdWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpT
VGVzdE9iak51bGxhYmxlU3RyaW5nVmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJB
TShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAg
IHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAibnVsbGFibGVTdHJpbmdW
YWx1ZSIpOwpAQCAtMjk1MSwxMCArMjg3MSwxMCBAQCB2b2lkIHNldEpTVGVzdE9iak51bGxhYmxl
U3RyaW5nVmFsdWUoRXhlCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVz
ZXJ2ZWRFbnVtVHlwZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lk
IHNldEpTVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
LSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwg
ImF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlIik7CkBAIC0yOTcwLDEwICsyODkwLDEwIEBA
IHZvaWQgc2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW4KIH0KIAogCi12b2lkIHNl
dEpTVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRl
c3RPYmoiLCAicHV0Rm9yd2FyZHNBdHRyaWJ1dGUiKTsKQEAgLTI5ODgsMTAgKzI5MDgsMTAgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShFeAogfQogCiAKLXZvaWQgc2V0
SlNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBK
U09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVB
dHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVy
cm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAicHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSIpOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAkocmV2
aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4
ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1
Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc1Byb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMTg4LDE5ICsxODgsMTggQEAgdm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpk
ZXN0cgogICAgIHRoaXNPYmplY3QtPkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6On5KU1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUganNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSo+KGJhc2VWYWx1ZSk7Cisg
ICAgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1
cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwg
ZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFz
ZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKLSAgICBKU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsOCArNDAsOCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwganNUZXN0CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
dm9pZCBzZXRKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3Rv
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK3ZvaWQgc2V0SlNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNz
IEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFs
T2JqZWN0IHsKIHB1YmxpYzoKQEAgLTE0OSwxOSArMTQ5LDE4IEBAIGJvb2wgSlNUZXN0T3ZlcnJp
ZGVCdWlsdGluczo6Z2V0T3duUHJvcGUKICAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBK
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVz
dE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0T3ZlcnJpZGVCdWlsdGluc1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
c3RhdGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T3ZlcnJpZGVCdWlsdGlu
czo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkp
KTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE92ZXJyaWRlQnVp
bHRpbnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7Ci0gICAgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsK
KyAgICBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAgICAgIHRo
cm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAkocmV2
aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDE1ICszOCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMK
IAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2VWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlUG9ydHMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFs
dWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Cit2b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVJlYWRvbmx5VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGlj
OgpAQCAtMTI3LDEwICsxMjcsOSBAQCB2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjCiAgICAgdGhpc09iamVjdC0+SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlOjp+SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNF
RF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTQy
LDEwICsxNDEsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsCiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
UmVhZG9ubHlWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZShFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTU3LDEwICsxNTUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNh
Y2hlZFZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNzUsMTAgKzE3
Miw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWwKIH0KIAogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlUG9ydHMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBV
TlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAg
LTE5MCwxMCArMTg2LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZh
bAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFs
dWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJh
c2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTIwOCwxOSArMjAzLDE4IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWwKIH0KIAogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZSo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3Rv
cihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNl
dEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7Ci0gICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZSo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsK
ICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTIy
OSwxMCArMjIzLDEwIEBAIHZvaWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXIK
ICAgICBkb21PYmplY3QtPnB1dERpcmVjdChzdGF0ZS0+dm0oKSwgc3RhdGUtPnByb3BlcnR5TmFt
ZXMoKS5jb25zdHJ1Y3RvciwgdmFsdWUpOwogfQogCi12b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUo
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwg
IlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiLCAidmFsdWUiKTsKQEAgLTI0Niwx
MCArMjQwLDEwIEBAIHZvaWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXIKIH0K
IAogCi12b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZh
bHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwot
ICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UiLCAiY2FjaGVkVmFsdWUiKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVk
ZWZzLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsMjEg
KzU4LDIxIEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKIAogLy8g
QXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzVW5zaWduZWRM
b25nTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2ln
bmVkTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci12b2lkIHNldEpTVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0Nv
bnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
dm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci12b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3Ry
aW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rl
c3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25n
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFs
dWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RT
dWJPYmooSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24o
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVl
KTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhT
ZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0
ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1
Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rl
c3RUeXBlZGVmc1Byb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVi
bGljOgpAQCAtMjEwLDEwICsyMTAsOSBAQCBib29sIEpTVGVzdFR5cGVkZWZzOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNF
RF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMjI1LDEwICsyMjQsOSBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uCiB9CiAKIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFs
aXplZFNjcmlwdFZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rl
c3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihK
U1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlz
KSkgewpAQCAtMjQwLDEwICsyMzgsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0lt
bXV0YWJsZVNlCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3Rv
clRlc3RTdWJPYmooRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFR5
cGVkZWZzQ29uc3RydWN0b3JUZXN0U3ViT2JqKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewpAQCAtMjUzLDEwICsyNTAsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RUeXBlZGVmc0NvbnN0cnVjdG9yCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRl
ZnNBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xv
dEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTI3MCwxMCArMjY2LDkgQEAgRW5j
b2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldAogfQogCiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJFeGNlcHRp
b24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJh
c2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0yODUs
MTAgKzI4MCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cldpdGhTZXQKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhj
ZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVm
c1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMzAyLDEwICsyOTYsOSBAQCBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlw
ZWRlZnNTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlv
bihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFz
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTMxNywx
OSArMzEwLDE4IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0clcKIH0K
IAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVz
dFR5cGVkZWZzUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVk
ZWZzUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSog
ZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNUZXN0VHlwZWRlZnM6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmds
b2JhbE9iamVjdCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0VHlwZWRl
ZnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
Ci0gICAgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0VHlwZWRlZnNQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdFR5cGVkZWZz
UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzUHJvdG90
eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9t
T2JqZWN0KSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0
dXJuOwpAQCAtMzM4LDEwICszMzAsMTAgQEAgdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVj
dG9yKEV4ZWNTdAogICAgIGRvbU9iamVjdC0+cHV0RGlyZWN0KHN0YXRlLT52bSgpLCBzdGF0ZS0+
cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCB2YWx1ZSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0
VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
YmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFS
QU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJv
cigqc3RhdGUsICJUZXN0VHlwZWRlZnMiLCAidW5zaWduZWRMb25nTG9uZ0F0dHIiKTsKQEAgLTM1
NSwxMCArMzQ3LDEwIEBAIHZvaWQgc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXQK
IH0KIAogCi12b2lkIHNldEpTVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZh
bHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0
VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAg
IFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
ICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlw
ZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0
VHlwZWRlZnMiLCAiaW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlIik7CkBAIC0zNzIsMTAg
KzM2NCwxMCBAQCB2b2lkIHNldEpTVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplCiB9CiAK
IAotdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VP
YmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFR5cGVkZWZz
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAg
ICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RUeXBlZGVmcyIsICJhdHRyV2l0
aEdldHRlckV4Y2VwdGlvbiIpOwpAQCAtMzg5LDEwICszODEsMTAgQEAgdm9pZCBzZXRKU1Rlc3RU
eXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZQogfQogCiAKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCit2b2lkIHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigq
c3RhdGUsICJUZXN0VHlwZWRlZnMiLCAiYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iKTsKQEAgLTQw
OCwxMCArNDAwLDEwIEBAIHZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2UK
IH0KIAogCi12b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RU
eXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBV
TlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVk
ZWZzKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdFR5
cGVkZWZzIiwgInN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIik7CkBAIC00MjUsMTAgKzQx
NywxMCBAQCB2b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0CiB9CiAKIAot
dm9pZCBzZXRKU1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNT
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dFR5cGVkZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RUeXBlZGVmcyIs
ICJzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCShy
ZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNhdHRyaWJ1dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
YXR0cmlidXRlUmVhZG9ubHkoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c2F0dHJpYnV0ZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNhdHRyaWJ1
dGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNh
dHRyaWJ1dGVSZWFkb25seShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1dGVDb25zdHJ1
Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK3ZvaWQgc2V0SlNhdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU2F0dHJp
YnV0ZVByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMTEyLDEwICsxMTIsOSBAQCB2b2lkIEpTYXR0cmlidXRlOjpkZXN0cm95KEpTQzo6SlNDZWxs
KiBjCiAgICAgdGhpc09iamVjdC0+SlNhdHRyaWJ1dGU6On5KU2F0dHJpYnV0ZSgpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBqc2F0dHJpYnV0ZVJlYWRvbmx5KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2Jq
ZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBqc2F0dHJpYnV0ZVJlYWRvbmx5KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKICAgICBKU2F0dHJpYnV0ZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNh
dHRyaWJ1dGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewpAQCAtMTI3LDE5ICsxMjYsMTggQEAgRW5jb2RlZEpTVmFsdWUganNh
dHRyaWJ1dGVSZWFkb25seShFeGVjUwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzYXR0cmlidXRl
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzYXR0cmlidXRlQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7Ci0gICAgSlNhdHRyaWJ1dGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8SlNhdHRyaWJ1dGVQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTYXR0cmlidXRl
UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTYXR0cmlidXRlUHJvdG90eXBl
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU2F0dHJpYnV0ZTo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVj
dC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU2F0dHJpYnV0ZUNvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU2F0dHJpYnV0
ZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
LSAgICBKU2F0dHJpYnV0ZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU2F0
dHJpYnV0ZVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNhdHRyaWJ1dGVQcm90b3R5cGUq
IGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNhdHRyaWJ1dGVQcm90b3R5cGUqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAg
ICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVh
ZG9ubHkuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMx
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNyZWFkb25seUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0
SlNyZWFkb25seUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc3JlYWRvbmx5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTcmVhZG9ubHlDb25zdHJ1Y3Rv
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOwogCiBjbGFzcyBKU3JlYWRvbmx5UHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMDgsMTkgKzEwOCwxOCBAQCB2b2lkIEpTcmVhZG9ubHk6
OmRlc3Ryb3koSlNDOjpKU0NlbGwqIGNlCiAgICAgdGhpc09iamVjdC0+SlNyZWFkb25seTo6fkpT
cmVhZG9ubHkoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNyZWFkb25seUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc3JlYWRvbmx5Q29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAg
SlNyZWFkb25seVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU3JlYWRvbmx5
UHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU3JlYWRvbmx5UHJvdG90eXBlKiBkb21PYmpl
Y3QgPSBqc0R5bmFtaWNDYXN0PEpTcmVhZG9ubHlQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTcmVhZG9ubHk6
OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7
CiB9CiAKLXZvaWQgc2V0SlNyZWFkb25seUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
T2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU3JlYWRvbmx5Q29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTcmVhZG9ubHlQcm90b3R5
cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNyZWFkb25seVByb3RvdHlwZSo+KGJhc2VW
YWx1ZSk7CisgICAgSlNyZWFkb25seVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxKU3JlYWRvbmx5UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0
YXRlKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgUnVu
dGltZUFycmF5OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKICAgICBzdGF0aWNfY2FzdDxSdW50aW1l
QXJyYXkqPihjZWxsKS0+UnVudGltZUFycmF5Ojp+UnVudGltZUFycmF5KCk7CiB9CiAKLUVuY29k
ZWRKU1ZhbHVlIFJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIFJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgUnVudGltZUFycmF5KiB0
aGlzT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxSdW50aW1lQXJyYXkqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKCF0aGlzT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9hcnJheS5oCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9hcnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIHBy
b3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBSdW50aW1lQXJyYXkoRXhlY1N0YXRlKiwgU3RydWN0
dXJlKik7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUq
LCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSk7CiAKICAgICBCaW5kaW5nc0FycmF5KiBtX2FycmF5OwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAkocmV2aXNpb24gMTk2MjM4KQor
KysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTQsNyArNTQsNyBAQCB2b2lkIFJ1bnRpbWVNZXRob2Q6OmZpbmlzaENyZWF0aW9uKFZN
JiB2CiAgICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBS
dW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgUnVu
dGltZU1ldGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgUnVudGltZU1ldGhvZCogdGhpc09iamVj
dCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZU1ldGhvZCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoIXRoaXNPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9tZXRob2QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuaAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfbWV0aG9kLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgcHJvdGVj
dGVkOgogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAKIHByaXZhdGU6Ci0gICAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBs
ZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAK
ICAgICBCaW5kaW5nczo6TWV0aG9kKiBtX21ldGhvZDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDkg
KzYyLDkgQEAgdm9pZCBSdW50aW1lT2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBtX2luc3RhbmNl
ID0gbnVsbHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tP
YmplY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgUnVudGlt
ZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgUnVudGlt
ZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oc2xvdEJhc2UpOworICAg
IFJ1bnRpbWVPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhp
c09iai0+bV9pbnN0YW5jZTsKIAogICAgIGlmICghaW5zdGFuY2UpCkBAIC04MCw5ICs4MCw5IEBA
IEVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2IKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6
OmZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIFJ1bnRp
bWVPYmplY3Q6OmZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogeyAgICAKLSAgICBSdW50aW1lT2Jq
ZWN0KiB0aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihzbG90QmFzZSk7CisgICAgUnVu
dGltZU9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2Jq
LT5tX2luc3RhbmNlOwogCiAgICAgaWYgKCFpbnN0YW5jZSkKQEAgLTk5LDkgKzk5LDkgQEAgRW5j
b2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZQogICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6bWV0
aG9kR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVP
YmplY3Q6Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICBSdW50aW1lT2JqZWN0KiB0
aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihzbG90QmFzZSk7CisgICAgUnVudGltZU9i
amVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5tX2lu
c3RhbmNlOwogCiAgICAgaWYgKCFpbnN0YW5jZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5oCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsOSArNzgsOSBAQCBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogCiBwcml2YXRlOgotICAgIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqLCBKU09i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBmaWVsZEdldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIo
RXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAg
ICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwor
ICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKICAgICBSZWZQdHI8SW5zdGFuY2U+IG1faW5zdGFu
Y2U7CiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTYtMDItMDcg
IEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIEdl
dFZhbHVlRnVuYy9QdXRWYWx1ZUZ1bmMgc2hvdWxkIG5vdCB0YWtlIGJvdGggc2xvdEJhc2UgYW5k
IHRoaXNWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU0MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW4gSmF2YVNjcmlwdCB0aGVyZSBhcmUgdHdvIHR5cGVzIG9mIHByb3BlcnRpZXMgLSByZWd1
bGFyIHZhbHVlIHByb3BlcnRpZXMsIGFuZCBhY2Nlc3NvciBwcm9wZXJ0aWVzLgorICAgICAgICBP
bmUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIGlzIGhvdyB0aGV5IGFyZSByZWZsZWN0ZWQgYnkg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBhbmQgYW5vdGhlciBpcworICAgICAgICB3aGF0IG9i
amVjdCB0aGV5IG9wZXJhdGUgb24gaW4gdGhlIGNhc2Ugb2YgYSBwcm90b3R5cGUgYWNjZXNzLiBJ
ZiB5b3UgYWNjZXNzIGEgdmFsdWUgcHJvcGVydHkgb2YgYQorICAgICAgICBwcm90b3R5cGUgb2Jq
ZWN0IGl0IHJldHVybiBhIHZhbHVlIHBlcnRpbmVudCB0byB0aGUgcHJvdG90eXBlLCBidXQgaW4g
dGhlIGNhc2Ugb2YgYSBwcm90b3R5cGUgb2JqZWN0CisgICAgICAgIHJldHVybmluZyBhbiBhY2Nl
c3NvciwgdGhlbiB0aGUgYWNjZXNzb3IgZnVuY3Rpb24gaXMgYXBwbGllZCB0byB0aGUgYmFzZSBv
YmplY3Qgb2YgdGhlIGFjY2Vzcy4KKworICAgICAgICBKU0Mgc3VwcG9ydHMgc3BlY2lhbCAnY3Vz
dG9tJyBwcm9wZXJ0aWVzIGltcGxlbWVudGVkIGFzIGEgYysrIGNhbGxiYWNrLCBhbmQgdGhlc2Ug
Y3VzdG9tIHByb3BlcnRpZXMKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGVpdGhl
ciB2YWx1ZS0gb3IgYWNjZXNzb3ItbGlrZSBiZWhhdmlvci4gZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yIGJlaGF2aW9yCisgICAgICAgIGlzIHNlbGVjdGVkIHZpYSB0aGUgQ3VzdG9tQWNjZXNzb3Ig
YXR0cmlidXRlLiBWYWx1ZS0gb3IgYWNjZXNzb3ItbGlrZSBvYmplY3Qgc2VsZWN0aW9uIGlzIGN1
cnJlbnQKKyAgICAgICAgc3VwcG9ydGVkIGJ5IHBhc3NpbmcgYm90aCB0aGUgc2xvdEJhc2UgYW5k
IHRoZSB0aGlzVmFsdWUgdG8gdGhlIGNhbGxiYWNrLGFuZCBob3BpbmcgaXQgdXNlcyB0aGUKKyAg
ICAgICAgcmlnaHQgb25lLiBUaGlzIGlzIHByb2JhYmx5IGluZWZmaWNpZW50LCBidWctcHJvbmUs
IGFuZCBsZWFkcyB0byBjcmF6eSBsaWtlIEpTQm91bmRTbG90QmFzZUZ1bmN0aW9uLgorCisgICAg
ICAgIEluc3RlYWQsIGp1c3QgcGFzcyBvbmUgdGhpc1ZhbHVlIHRvIHRoZSBjYWxsYmFjayBmdW5j
dGlvbnMsIGNvbnNpc3RlbnQgd2l0aCBDdXN0b21BY2Nlc3Nvci4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
SlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChXZWJLaXQ6OkpTTlBP
YmplY3Q6OnByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6bWV0
aG9kR2V0dGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9i
amVjdC5oOgorICAgICAgICAgICAgLSBNZXJnZWQgc2xvdEJhc2UgJiB0aGlzVmFsdWUgdG8gY3Vz
dG9tIHByb3BlcnR5IGNhbGxiYWNrcy4KKwogMjAxNi0wMi0wNiAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbCBDRlJlbGVhc2UoKSBvbiBTZWNSZXF1aXJl
bWVudFJlZiB3aGVuIG5vIGxvbmdlciBuZWVkZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAJKHJl
dmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9KU05QT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMzLDkgKzQzMyw5IEBAIHZv
aWQgSlNOUE9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU08KICAgICBucG5NZW1GcmVlKGlk
ZW50aWZpZXJzKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6cHJv
cGVydHlHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNOUE9iamVjdCogdGhpc09iaiA9IGpz
Q2FzdDxKU05QT2JqZWN0Kj4oc2xvdEJhc2UpOworICAgIEpTTlBPYmplY3QqIHRoaXNPYmogPSBq
c0Nhc3Q8SlNOUE9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmosIGluZm8oKSk7CiAgICAgCiAgICAgaWYgKCF0
aGlzT2JqLT5tX25wT2JqZWN0KQpAQCAtNDczLDkgKzQ3Myw5IEBAIEVuY29kZWRKU1ZhbHVlIEpT
TlBPYmplY3Q6OnByb3BlcnR5R2V0dGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3Bl
cnR5VmFsdWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0OjptZXRob2RHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6bWV0aG9k
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lKQogewotICAgIEpTTlBPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8
SlNOUE9iamVjdCo+KHNsb3RCYXNlKTsKKyAgICBKU05QT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0
PEpTTlBPYmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqLCBpbmZvKCkpOwogICAgIAogICAgIGlmICghdGhpc09i
ai0+bV9ucE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9KU05QT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAkocmV2aXNpb24gMTk2MjM4KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAko
d29ya2luZyBjb3B5KQpAQCAtOTQsOCArOTQsOCBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIHZv
aWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUpOwogCi0gICAgc3Rh
dGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
ICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIG1ldGhvZEdldHRlcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CisgICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVydHlHZXR0ZXIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CisgICAg
c3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBKU0M6
OkpTT2JqZWN0KiB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihKU0M6OkV4ZWNTdGF0ZSopOwogCiAg
ICAgTlBSdW50aW1lT2JqZWN0TWFwKiBtX29iamVjdE1hcDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270939</attachid>
            <date>2016-02-09 11:44:52 -0800</date>
            <delta_ts>2016-02-09 12:55:11 -0800</delta_ts>
            <desc>Again</desc>
            <filename>154009.3.patch</filename>
            <type>text/plain</type>
            <size>288507</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzMSBA
QAorMjAxNi0wMi0wNyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+
CisKKyAgICAgICAgR2V0VmFsdWVGdW5jL1B1dFZhbHVlRnVuYyBzaG91bGQgbm90IHRha2UgYm90
aCBzbG90QmFzZSBhbmQgdGhpc1ZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTQwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJbiBKYXZhU2NyaXB0IHRoZXJlIGFyZSB0d28gdHlwZXMgb2YgcHJv
cGVydGllcyAtIHJlZ3VsYXIgdmFsdWUgcHJvcGVydGllcywgYW5kIGFjY2Vzc29yIHByb3BlcnRp
ZXMuCisgICAgICAgIE9uZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlc2UgaXMgaG93IHRoZXkgYXJl
IHJlZmxlY3RlZCBieSBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsIGFuZCBhbm90aGVyIGlzCisg
ICAgICAgIHdoYXQgb2JqZWN0IHRoZXkgb3BlcmF0ZSBvbiBpbiB0aGUgY2FzZSBvZiBhIHByb3Rv
dHlwZSBhY2Nlc3MuIElmIHlvdSBhY2Nlc3MgYSB2YWx1ZSBwcm9wZXJ0eSBvZiBhCisgICAgICAg
IHByb3RvdHlwZSBvYmplY3QgaXQgcmV0dXJuIGEgdmFsdWUgcGVydGluZW50IHRvIHRoZSBwcm90
b3R5cGUsIGJ1dCBpbiB0aGUgY2FzZSBvZiBhIHByb3RvdHlwZSBvYmplY3QKKyAgICAgICAgcmV0
dXJuaW5nIGFuIGFjY2Vzc29yLCB0aGVuIHRoZSBhY2Nlc3NvciBmdW5jdGlvbiBpcyBhcHBsaWVk
IHRvIHRoZSBiYXNlIG9iamVjdCBvZiB0aGUgYWNjZXNzLgorCisgICAgICAgIEpTQyBzdXBwb3J0
cyBzcGVjaWFsICdjdXN0b20nIHByb3BlcnRpZXMgaW1wbGVtZW50ZWQgYXMgYSBjKysgY2FsbGJh
Y2ssIGFuZCB0aGVzZSBjdXN0b20gcHJvcGVydGllcworICAgICAgICBjYW4gYmUgdXNlZCB0byBp
bXBsZW1lbnQgZWl0aGVyIHZhbHVlLSBvciBhY2Nlc3Nvci1saWtlIGJlaGF2aW9yLiBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IgYmVoYXZpb3IKKyAgICAgICAgaXMgc2VsZWN0ZWQgdmlhIHRoZSBD
dXN0b21BY2Nlc3NvciBhdHRyaWJ1dGUuIFZhbHVlLSBvciBhY2Nlc3Nvci1saWtlIG9iamVjdCBz
ZWxlY3Rpb24gaXMgY3VycmVudAorICAgICAgICBzdXBwb3J0ZWQgYnkgcGFzc2luZyBib3RoIHRo
ZSBzbG90QmFzZSBhbmQgdGhlIHRoaXNWYWx1ZSB0byB0aGUgY2FsbGJhY2ssYW5kIGhvcGluZyBp
dCB1c2VzIHRoZQorICAgICAgICByaWdodCBvbmUuIFRoaXMgaXMgcHJvYmFibHkgaW5lZmZpY2ll
bnQsIGJ1Zy1wcm9uZSwgYW5kIGxlYWRzIHRvIGNyYXp5IGxpa2UgSlNCb3VuZFNsb3RCYXNlRnVu
Y3Rpb24uCisKKyAgICAgICAgSW5zdGVhZCwganVzdCBwYXNzIG9uZSB0aGlzVmFsdWUgdG8gdGhl
IGNhbGxiYWNrIGZ1bmN0aW9ucywgY29uc2lzdGVudCB3aXRoIEN1c3RvbUFjY2Vzc29yLgorCisg
ICAgICAgICogQVBJL0pTQ2FsbGJhY2tPYmplY3QuaDoKKyAgICAgICAgKiBBUEkvSlNDYWxsYmFj
a09iamVjdEZ1bmN0aW9ucy5oOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrT2JqZWN0PFBhcmVu
dD46OmdldFN0YXRpY1ZhbHVlKToKKyAgICAgICAgKEpTQzo6SlNDYWxsYmFja09iamVjdDxQYXJl
bnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcik6CisgICAgICAgIChKU0M6OkpTQ2FsbGJhY2tPYmpl
Y3Q8UGFyZW50Pjo6Y2FsbGJhY2tHZXR0ZXIpOgorICAgICAgICAgICAgLSBNZXJnZWQgc2xvdEJh
c2UgJiB0aGlzVmFsdWUgdG8gY3VzdG9tIHByb3BlcnR5IGNhbGxiYWNrcy4KKyAgICAgICAgKiBi
eXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6
OmdlbmVyYXRlKToKKyAgICAgICAgICAgIC0gTW9kaWZpZWQgdGhlIGNhbGwgYmVpbmcgSklUIGdl
bmVyYXRlZCDigJPCoEdldFZhbHVlRnVuYy9QdXRWYWx1ZUZ1bmMgbm93IG9ubHkgdGFrZSAzLAor
ICAgICAgICAgICAgICByYXRoZXIgdGhhbiA0IGFyZ3VtZW50cy4gU2VsZWN0cyB3aGljaCBvbmUg
dG8ga2VlcC9kcm9wIGJhc2VkIG9uIGFjY2VzcyB0eXBlLgorICAgICAgICAoV1RGOjpwcmludElu
dGVybmFsKToKKyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5oOgorICAgICAg
ICAoSlNDOjpBY2Nlc3NDYXNlOjppc0dldCk6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6Omlz
UHV0KToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6aXNJbik6CisgICAgICAgIChKU0M6OkFj
Y2Vzc0Nhc2U6OmRvZXNDYWxscyk6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nhc2U6OmlzR2V0dGVy
KToKKyAgICAgICAgKiBieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6
UHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZvclN0dWJJbmZvKToKKyAgICAgICAgKiBqaXQvUmVwYXRj
aC5jcHA6CisgICAgICAgIChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OnRy
eUNhY2hlUHV0QnlJRCk6CisgICAgICAgICAgICAtIFNwbGl0IHRoZSBDdXN0b21HZXR0ZXIvU2V0
dGVyIGFjY2VzcyB0eXBlcyBpbnRvIFZhbHVlL0FjY2Vzc29yIHZhcmlhbnRzLgorICAgICAgICAq
IGpzYy5jcHA6CisgICAgICAgIChXVEY6OkN1c3RvbUdldHRlcjo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKFdURjo6Q3VzdG9tR2V0dGVyOjpjdXN0b21HZXR0ZXIpOgorICAgICAgICAo
V1RGOjpSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJheSk6CisgICAgICAgIChXVEY6OlJ1bnRpbWVB
cnJheTo6bGVuZ3RoR2V0dGVyKToKKyAgICAgICAgICAgIC0gTWVyZ2VkIHNsb3RCYXNlICYgdGhp
c1ZhbHVlIHRvIGN1c3RvbSBwcm9wZXJ0eSBjYWxsYmFja3MuCisgICAgICAgICogcnVudGltZS9D
dXN0b21HZXR0ZXJTZXR0ZXIuY3BwOgorICAgICAgICAoSlNDOjpjYWxsQ3VzdG9tU2V0dGVyKToK
KyAgICAgICAgICAgIC0gUGFzcyAzIGFyZ3VtZW50cyB3aGVuIGNhbGxpbmcgUHV0VmFsdWVGdW5j
LgorICAgICAgICAqIHJ1bnRpbWUvQ3VzdG9tR2V0dGVyU2V0dGVyLmg6CisgICAgICAgICogcnVu
dGltZS9KU0JvdW5kU2xvdEJhc2VGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmJvdW5kU2xv
dEJhc2VGdW5jdGlvbkNhbGwpOgorICAgICAgICAoSlNDOjpKU0JvdW5kU2xvdEJhc2VGdW5jdGlv
bjo6SlNCb3VuZFNsb3RCYXNlRnVuY3Rpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1
ZS5jcHA6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnB1dFRvUHJpbWl0aXZlKToKKyAgICAgICAg
ICAgIC0gY2FsbEN1c3RvbVNldHRlciBjdXJyZW50bHkgdGFrZXMgYSBmbGFnIHRvIGRpc3Rpbmd1
aXNoIHZhbHVlL2FjY2Vzc29yIGNhbGxzLgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OnJldHJpZXZlQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6SlNG
dW5jdGlvbjo6YXJndW1lbnRzR2V0dGVyKToKKyAgICAgICAgKEpTQzo6cmV0cmlldmVDYWxsZXJG
dW5jdGlvbik6CisgICAgICAgIChKU0M6OkpTRnVuY3Rpb246OmNhbGxlckdldHRlcik6CisgICAg
ICAgIChKU0M6OkpTRnVuY3Rpb246Omxlbmd0aEdldHRlcik6CisgICAgICAgIChKU0M6OkpTRnVu
Y3Rpb246Om5hbWVHZXR0ZXIpOgorICAgICAgICAqIHJ1bnRpbWUvSlNGdW5jdGlvbi5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwOgorICAgICAgICAoSlND
OjpKU01vZHVsZU5hbWVzcGFjZU9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgIChKU0M6
OmNhbGxiYWNrR2V0dGVyKToKKyAgICAgICAgICAgIC0gTWVyZ2VkIHNsb3RCYXNlICYgdGhpc1Zh
bHVlIHRvIGN1c3RvbSBwcm9wZXJ0eSBjYWxsYmFja3MuCisgICAgICAgICogcnVudGltZS9KU09i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpwdXRJbmxpbmVTbG93KToKKyAgICAg
ICAgICAgIC0gY2FsbEN1c3RvbVNldHRlciBjdXJyZW50bHkgdGFrZXMgYSBmbGFnIHRvIGRpc3Rp
bmd1aXNoIHZhbHVlL2FjY2Vzc29yIGNhbGxzLgorICAgICAgICAqIHJ1bnRpbWUvTG9va3VwLmg6
CisgICAgICAgIChKU0M6OnB1dEVudHJ5KToKKyAgICAgICAgICAgIC0gc3BsaXQgUHV0UHJvcGVy
dHlTbG90IHNldEN1c3RvbSBpbnRvIFZhbHVlL0FjY2Vzc29yIHZhcmlhbnRzLgorICAgICAgICAq
IHJ1bnRpbWUvUHJvcGVydHlTbG90LmNwcDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlTbG90Ojpm
dW5jdGlvbkdldHRlcik6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6Y3VzdG9tR2V0dGVy
KToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5U2xvdC5oOgorICAgICAgICAoSlNDOjpQcm9w
ZXJ0eVNsb3Q6OlByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5U2xvdDo6Z2V0
VmFsdWUpOgorICAgICAgICAgICAgLSBhZGRlZCBjdXN0b21HZXR0ZXIgaGVscGVyIHRvIGNhbGwg
R2V0VmFsdWVGdW5jLgorICAgICAgICAqIHJ1bnRpbWUvUHV0UHJvcGVydHlTbG90Lmg6CisgICAg
ICAgIChKU0M6OlB1dFByb3BlcnR5U2xvdDo6UHV0UHJvcGVydHlTbG90KToKKyAgICAgICAgKEpT
Qzo6UHV0UHJvcGVydHlTbG90OjpzZXROZXdQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OlB1dFBy
b3BlcnR5U2xvdDo6c2V0Q3VzdG9tVmFsdWUpOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNs
b3Q6OnNldEN1c3RvbUFjY2Vzc29yKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90Ojpz
ZXRUaGlzVmFsdWUpOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6OmN1c3RvbVNldHRl
cik6CisgICAgICAgIChKU0M6OlB1dFByb3BlcnR5U2xvdDo6Y29udGV4dCk6CisgICAgICAgIChK
U0M6OlB1dFByb3BlcnR5U2xvdDo6aXNTdHJpY3RNb2RlKToKKyAgICAgICAgKEpTQzo6UHV0UHJv
cGVydHlTbG90Ojppc0NhY2hlYWJsZVB1dCk6CisgICAgICAgIChKU0M6OlB1dFByb3BlcnR5U2xv
dDo6aXNDYWNoZWFibGVTZXR0ZXIpOgorICAgICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6Omlz
Q2FjaGVhYmxlQ3VzdG9tKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90Ojppc0N1c3Rv
bUFjY2Vzc29yKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90Ojppc0luaXRpYWxpemF0
aW9uKToKKyAgICAgICAgKEpTQzo6UHV0UHJvcGVydHlTbG90OjpjYWNoZWRPZmZzZXQpOgorICAg
ICAgICAoSlNDOjpQdXRQcm9wZXJ0eVNsb3Q6OnNldEN1c3RvbVByb3BlcnR5KTogRGVsZXRlZC4K
KyAgICAgICAgICAgIC0gc3BsaXQgUHV0UHJvcGVydHlTbG90IHNldEN1c3RvbSBpbnRvIFZhbHVl
L0FjY2Vzc29yIHZhcmlhbnRzLgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIxKToKKyAgICAgICAgKEpT
Qzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIzKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI0KToK
KyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1KToKKyAgICAgICAgKEpTQzo6
cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI2KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0
b3JEb2xsYXI3KToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KToKKyAg
ICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JEb2xsYXI5KToKKyAgICAgICAgKEpTQzo6cmVn
RXhwQ29uc3RydWN0b3JJbnB1dCk6CisgICAgICAgIChKU0M6OnJlZ0V4cENvbnN0cnVjdG9yTXVs
dGlsaW5lKToKKyAgICAgICAgKEpTQzo6cmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0Y2gpOgorICAg
ICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1Y3Rvckxhc3RQYXJlbik6CisgICAgICAgIChKU0M6OnJl
Z0V4cENvbnN0cnVjdG9yTGVmdENvbnRleHQpOgorICAgICAgICAoSlNDOjpyZWdFeHBDb25zdHJ1
Y3RvclJpZ2h0Q29udGV4dCk6CisgICAgICAgIChKU0M6OnNldFJlZ0V4cENvbnN0cnVjdG9ySW5w
dXQpOgorICAgICAgICAoSlNDOjpzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZSk6CisgICAg
ICAgICogcnVudGltZS9SZWdFeHBPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpSZWdFeHBPYmpl
Y3Q6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6cmVnRXhwT2JqZWN0U2V0TGFz
dEluZGV4U3RyaWN0KToKKyAgICAgICAgKEpTQzo6cmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4Tm9u
U3RyaWN0KToKKyAgICAgICAgKEpTQzo6UmVnRXhwT2JqZWN0OjpwdXQpOgorICAgICAgICAgICAg
LSBNZXJnZWQgc2xvdEJhc2UgJiB0aGlzVmFsdWUgdG8gY3VzdG9tIHByb3BlcnR5IGNhbGxiYWNr
cy4KKwogMjAxNi0wMi0wNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAg
ICAgIEZUTCBtdXN0IHN0b3JlIHRoZSBjYWxsIHNpdGUgaW5kZXggYmVmb3JlIHJ1bnRpbWUgY2Fs
bHMsIGV2ZW4gaWYgaXQncyB0aGUgdGFpbCBjYWxsIHNsb3cgcGF0aApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDksNyArMzQ5LDcgQEAgcHVibGljOgogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY3VzdG9tR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiAgICAgewogICAgICAg
ICBDdXN0b21HZXR0ZXIqIHRoaXNPYmplY3QgPSBqc0R5bmFtaWNDYXN0PEN1c3RvbUdldHRlcio+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICAgICAgaWYgKCF0aGlzT2JqZWN0KQpA
QCAtNDU0LDcgKzQ1NCw3IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAgIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKICAgICB7CiAgICAgICAgIFJ1bnRpbWVBcnJheSogdGhpc09i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8UnVudGltZUFycmF5Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgICAgICBpZiAoIXRoaXNPYmplY3QpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaAkocmV2aXNpb24gMTk2MjM4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTIxMSw4ICsyMTEsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGNvbnN0cnVjdChFeGVjU3RhdGUqKTsKICAgIAogICAgIEpTVmFsdWUgZ2V0
U3RhdGljVmFsdWUoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNv
ZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2Fs
bGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgc3RhdGljRnVuY3Rpb25HZXR0ZXIo
RXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIGNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEpTQ2FsbGJhY2tPYmplY3REYXRh
PiBtX2NhbGxiYWNrT2JqZWN0RGF0YTsKIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAkocmV2aXNpb24gMTk2
MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rp
b25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwMCw5ICs2MDAsOSBAQCBKU1ZhbHVlIEpTQ2FsbGJh
Y2tPYmplY3Q8UGFyZW50Pjo6Z2V0U3RhCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBQYXJlbnQ+Ci1F
bmNvZGVkSlNWYWx1ZSBKU0NhbGxiYWNrT2JqZWN0PFBhcmVudD46OnN0YXRpY0Z1bmN0aW9uR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RQYXJlbnQsIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNDYWxsYmFja09i
amVjdDxQYXJlbnQ+OjpzdGF0aWNGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICBK
U0NhbGxiYWNrT2JqZWN0KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdChzbG90UGFyZW50KTsK
KyAgICBKU0NhbGxiYWNrT2JqZWN0KiB0aGlzT2JqID0gYXNDYWxsYmFja09iamVjdCh0aGlzVmFs
dWUpOwogICAgIAogICAgIC8vIENoZWNrIGZvciBjYWNoZWQgb3Igb3ZlcnJpZGUgcHJvcGVydHku
CiAgICAgUHJvcGVydHlTbG90IHNsb3QyKHRoaXNPYmopOwpAQCAtNjI4LDkgKzYyOCw5IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50PjoKIH0KIAogdGVtcGxhdGUgPGNs
YXNzIFBhcmVudD4KLUVuY29kZWRKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8UGFyZW50Pjo6Y2Fs
bGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdFBhcmVudCwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBKU0Nh
bGxiYWNrT2JqZWN0PFBhcmVudD46OmNhbGxiYWNrR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewotICAg
IEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHNsb3RQYXJlbnQp
OworICAgIEpTQ2FsbGJhY2tPYmplY3QqIHRoaXNPYmogPSBhc0NhbGxiYWNrT2JqZWN0KHRoaXNW
YWx1ZSk7CiAgICAgCiAgICAgSlNPYmplY3RSZWYgdGhpc1JlZiA9IHRvUmVmKHRoaXNPYmopOwog
ICAgIFJlZlB0cjxPcGFxdWVKU1N0cmluZz4gcHJvcGVydHlOYW1lUmVmOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3Bw
CShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9s
eW1vcnBoaWNBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjMsOCArNTIzLDEwIEBAIHZv
aWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGUoQWNjZXNzR2VuZXJhdGkKICAgICBjYXNlIExvYWQ6CiAg
ICAgY2FzZSBHZXR0ZXI6CiAgICAgY2FzZSBTZXR0ZXI6Ci0gICAgY2FzZSBDdXN0b21HZXR0ZXI6
Ci0gICAgY2FzZSBDdXN0b21TZXR0ZXI6IHsKKyAgICBjYXNlIEN1c3RvbVZhbHVlR2V0dGVyOgor
ICAgIGNhc2UgQ3VzdG9tQWNjZXNzb3JHZXR0ZXI6CisgICAgY2FzZSBDdXN0b21WYWx1ZVNldHRl
cjoKKyAgICBjYXNlIEN1c3RvbUFjY2Vzc29yU2V0dGVyOiB7CiAgICAgICAgIGlmIChpc1ZhbGlk
T2Zmc2V0KG1fb2Zmc2V0KSkgewogICAgICAgICAgICAgU3RydWN0dXJlKiBjdXJyU3RydWN0dXJl
OwogICAgICAgICAgICAgaWYgKG1fY29uZGl0aW9uU2V0LmlzRW1wdHkoKSkKQEAgLTU1Myw3ICs1
NTUsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlKEFjY2Vzc0dlbmVyYXRpCiAgICAgICAg
ICAgICBiYXNlRm9yQWNjZXNzR1BSID0gYmFzZUZvckdldEdQUjsKIAogICAgICAgICBHUFJSZWcg
bG9hZGVkVmFsdWVHUFIgPSBJbnZhbGlkR1BSUmVnOwotICAgICAgICBpZiAobV90eXBlICE9IEN1
c3RvbUdldHRlciAmJiBtX3R5cGUgIT0gQ3VzdG9tU2V0dGVyKSB7CisgICAgICAgIGlmIChtX3R5
cGUgIT0gQ3VzdG9tVmFsdWVHZXR0ZXIgJiYgbV90eXBlICE9IEN1c3RvbUFjY2Vzc29yR2V0dGVy
ICYmIG1fdHlwZSAhPSBDdXN0b21WYWx1ZVNldHRlciAmJiBtX3R5cGUgIT0gQ3VzdG9tQWNjZXNz
b3JTZXR0ZXIpIHsKICAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gTG9hZCkKICAgICAgICAgICAg
ICAgICBsb2FkZWRWYWx1ZUdQUiA9IHZhbHVlUmVncy5wYXlsb2FkR1BSKCk7CiAgICAgICAgICAg
ICBlbHNlCkBAIC03NTAsMjQgKzc1MiwyNiBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlKEFj
Y2Vzc0dlbmVyYXRpCiAgICAgICAgICAgICBpZiAobmVlZHNUb01ha2VSb29tT25TdGFja0ZvckND
YWxsKQogICAgICAgICAgICAgICAgIGppdC5tYWtlU3BhY2VPblN0YWNrRm9yQ0NhbGwoKTsKIAot
ICAgICAgICAgICAgLy8gZ2V0dGVyOiBFbmNvZGVkSlNWYWx1ZSAoKkdldFZhbHVlRnVuYykoRXhl
Y1N0YXRlKiwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSk7Ci0gICAgICAgICAgICAvLyBzZXR0ZXI6IHZvaWQgKCpQdXRWYWx1ZUZ1bmMp
KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiBiYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB2YWx1ZSk7CisgICAgICAgICAgICAvLyBnZXR0ZXI6IEVuY29kZWRKU1Zh
bHVlICgqR2V0VmFsdWVGdW5jKShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSk7CisgICAgICAgICAgICAvLyBzZXR0ZXI6IHZvaWQgKCpQdXRWYWx1ZUZ1
bmMpKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHZhbHVlKTsKKyAgICAgICAgICAgIC8vIEN1c3RvbSB2YWx1ZXMgYXJlIHBhc3NlZCB0aGUgc2xv
dEJhc2UgKHRoZSBwcm9wZXJ0eSBob2xkZXIpLCBjdXN0b20gYWNjZXNzb3JzIGFyZSBwYXNzZWQg
dGhlIHRoaXNWYXVsZSAocmVjaWV2ZXIpLgorICAgICAgICAgICAgR1BSUmVnIGJhc2VGb3JDdXN0
b21WYWx1ZSA9IG1fdHlwZSA9PSBDdXN0b21WYWx1ZUdldHRlciB8fCBtX3R5cGUgPT0gQ3VzdG9t
VmFsdWVTZXR0ZXIgPyBiYXNlRm9yQWNjZXNzR1BSIDogYmFzZUZvckdldEdQUjsKICNpZiBVU0Uo
SlNWQUxVRTY0KQotICAgICAgICAgICAgaWYgKG1fdHlwZSA9PSBDdXN0b21HZXR0ZXIpIHsKKyAg
ICAgICAgICAgIGlmIChtX3R5cGUgPT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1
c3RvbUFjY2Vzc29yR2V0dGVyKSB7CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZSgKLSAgICAgICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUiwgYmFz
ZUZvckdldEdQUiwKKyAgICAgICAgICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAogICAg
ICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaWRlbnQuaW1wbCgp
KSk7CiAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGJhc2VGb3JBY2Nlc3NHUFIsIGJhc2VGb3JHZXRHUFIsIHZhbHVlUmVn
cy5ncHIoKSk7CisgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShiYXNlRm9yQ3VzdG9tVmFsdWUsIHZhbHVlUmVncy5ncHIoKSk7CiAjZWxzZQotICAgICAgICAg
ICAgaWYgKG1fdHlwZSA9PSBDdXN0b21HZXR0ZXIpIHsKKyAgICAgICAgICAgIGlmIChtX3R5cGUg
PT0gQ3VzdG9tVmFsdWVHZXR0ZXIgfHwgbV90eXBlID09IEN1c3RvbUFjY2Vzc29yR2V0dGVyKSB7
CiAgICAgICAgICAgICAgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKLSAgICAg
ICAgICAgICAgICAgICAgYmFzZUZvckFjY2Vzc0dQUiwgYmFzZUZvckdldEdQUiwKKyAgICAgICAg
ICAgICAgICAgICAgYmFzZUZvckN1c3RvbVZhbHVlLAogICAgICAgICAgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwKICAgICAgICAgICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlkZW50LmltcGwoKSkpOwogICAgICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBqaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKAotICAgICAgICAgICAgICAgICAgICBiYXNlRm9yQWNjZXNzR1BSLCBiYXNlRm9yR2V0
R1BSLAorICAgICAgICAgICAgICAgICAgICBiYXNlRm9yQ3VzdG9tVmFsdWUsCiAgICAgICAgICAg
ICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLAog
ICAgICAgICAgICAgICAgICAgICB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCB2YWx1ZVJlZ3MudGFn
R1BSKCkpOwogICAgICAgICAgICAgfQpAQCAtNzc1LDcgKzc3OSw3IEBAIHZvaWQgQWNjZXNzQ2Fz
ZTo6Z2VuZXJhdGUoQWNjZXNzR2VuZXJhdGkKICAgICAgICAgICAgIGppdC5zdG9yZVB0cihHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgJnZtLnRvcENhbGxGcmFtZSk7CiAKICAgICAgICAgICAg
IG9wZXJhdGlvbkNhbGwgPSBqaXQuY2FsbCgpOwotICAgICAgICAgICAgaWYgKG1fdHlwZSA9PSBD
dXN0b21HZXR0ZXIpCisgICAgICAgICAgICBpZiAobV90eXBlID09IEN1c3RvbVZhbHVlR2V0dGVy
IHx8IG1fdHlwZSA9PSBDdXN0b21BY2Nlc3NvckdldHRlcikKICAgICAgICAgICAgICAgICBqaXQu
c2V0dXBSZXN1bHRzKHZhbHVlUmVncyk7CiAgICAgICAgICAgICBpZiAobmVlZHNUb01ha2VSb29t
T25TdGFja0ZvckNDYWxsKQogICAgICAgICAgICAgICAgIGppdC5yZWNsYWltU3BhY2VPblN0YWNr
Rm9yQ0NhbGwoKTsKQEAgLTE0MTgsMTEgKzE0MjIsMTcgQEAgdm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiBvdXQsIEFjYwogICAgIGNhc2UgQWNjZXNzQ2FzZTo6U2V0dGVyOgogICAgICAg
ICBvdXQucHJpbnQoIlNldHRlciIpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBBY2Nlc3ND
YXNlOjpDdXN0b21HZXR0ZXI6Ci0gICAgICAgIG91dC5wcmludCgiQ3VzdG9tR2V0dGVyIik7Cisg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21WYWx1ZUdldHRlcjoKKyAgICAgICAgb3V0LnByaW50
KCJDdXN0b21WYWx1ZUdldHRlciIpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBBY2Nlc3ND
YXNlOjpDdXN0b21TZXR0ZXI6Ci0gICAgICAgIG91dC5wcmludCgiQ3VzdG9tU2V0dGVyIik7Cisg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3NvckdldHRlcjoKKyAgICAgICAgb3V0LnBy
aW50KCJDdXN0b21BY2Nlc3NvckdldHRlciIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBB
Y2Nlc3NDYXNlOjpDdXN0b21WYWx1ZVNldHRlcjoKKyAgICAgICAgb3V0LnByaW50KCJDdXN0b21W
YWx1ZVNldHRlciIpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0
b21BY2Nlc3NvclNldHRlcjoKKyAgICAgICAgb3V0LnByaW50KCJDdXN0b21BY2Nlc3NvclNldHRl
ciIpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBBY2Nlc3NDYXNlOjpJbnRyaW5zaWNHZXR0
ZXI6CiAgICAgICAgIG91dC5wcmludCgiSW50cmluc2ljR2V0dGVyIik7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuaAkocmV2
aXNpb24gMTk2MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3Jw
aGljQWNjZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDggKzU4LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgTWlzcywKICAgICAgICAgR2V0dGVyLAogICAgICAgICBTZXR0ZXIsCi0gICAgICAgIEN1
c3RvbUdldHRlciwKLSAgICAgICAgQ3VzdG9tU2V0dGVyLAorICAgICAgICBDdXN0b21WYWx1ZUdl
dHRlciwKKyAgICAgICAgQ3VzdG9tQWNjZXNzb3JHZXR0ZXIsCisgICAgICAgIEN1c3RvbVZhbHVl
U2V0dGVyLAorICAgICAgICBDdXN0b21BY2Nlc3NvclNldHRlciwKICAgICAgICAgSW50cmluc2lj
R2V0dGVyLAogICAgICAgICBJbkhpdCwKICAgICAgICAgSW5NaXNzLApAQCAtNzMsMTQgKzc1LDE2
IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBUcmFuc2l0aW9uOgogICAgICAgICBjYXNlIFJlcGxh
Y2U6CiAgICAgICAgIGNhc2UgU2V0dGVyOgotICAgICAgICBjYXNlIEN1c3RvbVNldHRlcjoKKyAg
ICAgICAgY2FzZSBDdXN0b21WYWx1ZVNldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21BY2Nlc3Nv
clNldHRlcjoKICAgICAgICAgY2FzZSBJbkhpdDoKICAgICAgICAgY2FzZSBJbk1pc3M6CiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGNhc2UgTG9hZDoKICAgICAgICAgY2FzZSBN
aXNzOgogICAgICAgICBjYXNlIEdldHRlcjoKLSAgICAgICAgY2FzZSBDdXN0b21HZXR0ZXI6Cisg
ICAgICAgIGNhc2UgQ3VzdG9tVmFsdWVHZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tQWNjZXNz
b3JHZXR0ZXI6CiAgICAgICAgIGNhc2UgSW50cmluc2ljR2V0dGVyOgogICAgICAgICBjYXNlIEFy
cmF5TGVuZ3RoOgogICAgICAgICBjYXNlIFN0cmluZ0xlbmd0aDoKQEAgLTk0LDcgKzk4LDggQEAg
cHVibGljOgogICAgICAgICBjYXNlIExvYWQ6CiAgICAgICAgIGNhc2UgTWlzczoKICAgICAgICAg
Y2FzZSBHZXR0ZXI6Ci0gICAgICAgIGNhc2UgQ3VzdG9tR2V0dGVyOgorICAgICAgICBjYXNlIEN1
c3RvbVZhbHVlR2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yR2V0dGVyOgogICAg
ICAgICBjYXNlIEludHJpbnNpY0dldHRlcjoKICAgICAgICAgY2FzZSBJbkhpdDoKICAgICAgICAg
Y2FzZSBJbk1pc3M6CkBAIC0xMDQsNyArMTA5LDggQEAgcHVibGljOgogICAgICAgICBjYXNlIFRy
YW5zaXRpb246CiAgICAgICAgIGNhc2UgUmVwbGFjZToKICAgICAgICAgY2FzZSBTZXR0ZXI6Ci0g
ICAgICAgIGNhc2UgQ3VzdG9tU2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbVZhbHVlU2V0dGVy
OgorICAgICAgICBjYXNlIEN1c3RvbUFjY2Vzc29yU2V0dGVyOgogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTUsMTIgKzEyMSwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgIGNhc2UgTG9hZDoKICAgICAgICAgY2FzZSBNaXNzOgogICAgICAgICBjYXNlIEdldHRl
cjoKLSAgICAgICAgY2FzZSBDdXN0b21HZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tVmFsdWVH
ZXR0ZXI6CisgICAgICAgIGNhc2UgQ3VzdG9tQWNjZXNzb3JHZXR0ZXI6CiAgICAgICAgIGNhc2Ug
SW50cmluc2ljR2V0dGVyOgogICAgICAgICBjYXNlIFRyYW5zaXRpb246CiAgICAgICAgIGNhc2Ug
UmVwbGFjZToKICAgICAgICAgY2FzZSBTZXR0ZXI6Ci0gICAgICAgIGNhc2UgQ3VzdG9tU2V0dGVy
OgorICAgICAgICBjYXNlIEN1c3RvbVZhbHVlU2V0dGVyOgorICAgICAgICBjYXNlIEN1c3RvbUFj
Y2Vzc29yU2V0dGVyOgogICAgICAgICBjYXNlIEFycmF5TGVuZ3RoOgogICAgICAgICBjYXNlIFN0
cmluZ0xlbmd0aDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTIwOCw4ICsyMTYsMTAg
QEAgcHVibGljOgogICAgICAgICBzd2l0Y2ggKHR5cGUoKSkgewogICAgICAgICBjYXNlIEdldHRl
cjoKICAgICAgICAgY2FzZSBTZXR0ZXI6Ci0gICAgICAgIGNhc2UgQ3VzdG9tR2V0dGVyOgotICAg
ICAgICBjYXNlIEN1c3RvbVNldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21WYWx1ZUdldHRlcjoK
KyAgICAgICAgY2FzZSBDdXN0b21BY2Nlc3NvckdldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21W
YWx1ZVNldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21BY2Nlc3NvclNldHRlcjoKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMjIwLDcgKzIzMCw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHN3aXRjaCAo
dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgR2V0dGVyOgotICAgICAgICBjYXNlIEN1c3RvbUdldHRl
cjoKKyAgICAgICAgY2FzZSBDdXN0b21WYWx1ZUdldHRlcjoKKyAgICAgICAgY2FzZSBDdXN0b21B
Y2Nlc3NvckdldHRlcjoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMzgsNyArMjM4LDggQEAgUHV0QnlJZFN0YXR1cyBQdXRCeUlkU3RhdHVzOjpj
b21wdXRlRm9yUwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21TZXR0ZXI6Cisg
ICAgICAgICAgICBjYXNlIEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlU2V0dGVyOgorICAgICAgICAg
ICAgY2FzZSBBY2Nlc3NDYXNlOjpDdXN0b21BY2Nlc3NvclNldHRlcjoKICAgICAgICAgICAgICAg
ICByZXR1cm4gUHV0QnlJZFN0YXR1cyhNYWtlc0NhbGxzKTsKIAogICAgICAgICAgICAgZGVmYXVs
dDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAkocmV2aXNp
b24gMTk2MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAko
d29ya2luZyBjb3B5KQpAQCAtNjc4LDYgKzY3OCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIGFkZENh
bGxBcmd1bWVudChhcmc0KTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBUcnVzdGVkSW1tMzIgYXJnMiwgR1BS
UmVnIGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAgICAgICAgcmVzZXRDYWxsQXJndW1lbnRz
KCk7CisgICAgICAgIGFkZENhbGxBcmd1bWVudChHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlcik7
CisgICAgICAgIGFkZENhbGxBcmd1bWVudChhcmcxKTsKKyAgICAgICAgYWRkQ2FsbEFyZ3VtZW50
KGFyZzIpOworICAgICAgICBhZGRDYWxsQXJndW1lbnQoYXJnMyk7CisgICAgICAgIGFkZENhbGxB
cmd1bWVudChhcmc0KTsKKyAgICB9CisgICAgCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBh
cmczLCBHUFJSZWcgYXJnNCwgR1BSUmVnIGFyZzUpCiAgICAgewogICAgICAgICByZXNldENhbGxB
cmd1bWVudHMoKTsKQEAgLTE2NzgsNiArMTY4OCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIHNldHVw
QXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKICAgICB9CiAKKyAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcx
LCBUcnVzdGVkSW1tMzIgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAg
ICAgICAgcG9rZShhcmc0LCBQT0tFX0FSR1VNRU5UX09GRlNFVCk7CisgICAgICAgIHNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisKICAgICBBTFdB
WVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBH
UFJSZWcgYXJnMiwgVHJ1c3RlZEltbTMyIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcgYXJnNSkK
ICAgICB7CiAgICAgICAgIHBva2UoYXJnNSwgUE9LRV9BUkdVTUVOVF9PRkZTRVQgKyAxKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTk2MjM4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzAzLDggKzMwMywxMCBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRC
eUlECiAgICAgICAgICAgICAgICAgdHlwZSA9IEFjY2Vzc0Nhc2U6Ok1pc3M7CiAgICAgICAgICAg
ICBlbHNlIGlmIChzbG90LmlzQ2FjaGVhYmxlR2V0dGVyKCkpCiAgICAgICAgICAgICAgICAgdHlw
ZSA9IEFjY2Vzc0Nhc2U6OkdldHRlcjsKKyAgICAgICAgICAgIGVsc2UgaWYgKHNsb3QuYXR0cmli
dXRlcygpICYgQ3VzdG9tQWNjZXNzb3IpCisgICAgICAgICAgICAgICAgdHlwZSA9IEFjY2Vzc0Nh
c2U6OkN1c3RvbUFjY2Vzc29yR2V0dGVyOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHR5cGUgPSBBY2Nlc3NDYXNlOjpDdXN0b21HZXR0ZXI7CisgICAgICAgICAgICAgICAgdHlw
ZSA9IEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlR2V0dGVyOwogCiAgICAgICAgICAgICBuZXdDYXNl
ID0gQWNjZXNzQ2FzZTo6Z2V0KAogICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIHR5cGUs
IG9mZnNldCwgc3RydWN0dXJlLCBjb25kaXRpb25TZXQsIGxvYWRUYXJnZXRGcm9tUHJveHksCkBA
IC00MzQsNyArNDM2LDcgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlUHV0QnlJ
RAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBuZXdDYXNlID0gQWNjZXNzQ2FzZTo6c2V0
dGVyKAotICAgICAgICAgICAgICAgIHZtLCBjb2RlQmxvY2ssIEFjY2Vzc0Nhc2U6OkN1c3RvbVNl
dHRlciwgc3RydWN0dXJlLCBpbnZhbGlkT2Zmc2V0LCBjb25kaXRpb25TZXQsCisgICAgICAgICAg
ICAgICAgdm0sIGNvZGVCbG9jaywgc2xvdC5pc0N1c3RvbUFjY2Vzc29yKCkgPyBBY2Nlc3NDYXNl
OjpDdXN0b21BY2Nlc3NvclNldHRlciA6IEFjY2Vzc0Nhc2U6OkN1c3RvbVZhbHVlU2V0dGVyLCBz
dHJ1Y3R1cmUsIGludmFsaWRPZmZzZXQsIGNvbmRpdGlvblNldCwKICAgICAgICAgICAgICAgICBz
bG90LmN1c3RvbVNldHRlcigpLCBzbG90LmJhc2UoKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvblNldCBjb25kaXRpb25TZXQ7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21HZXR0ZXJTZXR0ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRl
ci5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0N1c3RvbUdldHRlclNldHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJDdXN0b21HZXR0ZXJTZXR0ZXIuaCIKIAogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJ
bmxpbmVzLmgiCisjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJTbG90VmlzaXRvcklu
bGluZXMuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCkBAIC0zNiwxMiArMzcsMTQg
QEAgU1RBVElDX0FTU0VSVF9JU19UUklWSUFMTFlfREVTVFJVQ1RJQkxFKAogCiBjb25zdCBDbGFz
c0luZm8gQ3VzdG9tR2V0dGVyU2V0dGVyOjpzX2luZm8gPSB7ICJDdXN0b21HZXR0ZXJTZXR0ZXIi
LCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEN1c3RvbUdldHRlclNldHRlcikgfTsKIAotdm9p
ZCBjYWxsQ3VzdG9tU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBjdXN0b21HZXR0ZXJT
ZXR0ZXIsIEpTT2JqZWN0KiBiYXNlLCBKU1ZhbHVlIHRoaXNWYWx1ZSwgSlNWYWx1ZSB2YWx1ZSkK
K3ZvaWQgY2FsbEN1c3RvbVNldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgY3VzdG9tR2V0
dGVyU2V0dGVyLCBib29sIGlzQWNjZXNzb3IsIEpTT2JqZWN0KiBiYXNlLCBKU1ZhbHVlIHRoaXNW
YWx1ZSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBDdXN0b21HZXR0ZXJTZXR0ZXI6OkN1c3RvbVNl
dHRlciBzZXR0ZXIgPSBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oY3VzdG9tR2V0dGVyU2V0
dGVyKS0+c2V0dGVyKCk7CiAgICAgaWYgKCFzZXR0ZXIpCiAgICAgICAgIHJldHVybjsKLSAgICBz
ZXR0ZXIoZXhlYywgYmFzZSwgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSksIEpTVmFsdWU6OmVu
Y29kZSh2YWx1ZSkpOworICAgIGlmICghaXNBY2Nlc3NvcikKKyAgICAgICAgdGhpc1ZhbHVlID0g
YmFzZTsKKyAgICBzZXR0ZXIoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKHRoaXNWYWx1ZSksIEpTVmFs
dWU6OmVuY29kZSh2YWx1ZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0N1c3RvbUdldHRlclNldHRlci5oCShy
ZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DdXN0b21H
ZXR0ZXJTZXR0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgog
ICAgIEN1c3RvbVNldHRlciBtX3NldHRlcjsKIH07CiAKLUpTX0VYUE9SVF9QUklWQVRFIHZvaWQg
Y2FsbEN1c3RvbVNldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIGN1c3RvbUdldHRlclNldHRlciwg
SlNPYmplY3QqIGJhc2UsIEpTVmFsdWUgdGhpc1ZhbHVlLCBKU1ZhbHVlIHZhbHVlKTsKK0pTX0VY
UE9SVF9QUklWQVRFIHZvaWQgY2FsbEN1c3RvbVNldHRlcihFeGVjU3RhdGUqLCBKU1ZhbHVlIGN1
c3RvbUdldHRlclNldHRlciwgYm9vbCBpc0FjY2Vzc29yLCBKU09iamVjdCogc2xvdEJhc2UsIEpT
VmFsdWUgdGhpc1ZhbHVlLCBKU1ZhbHVlKTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQm91bmRTbG90QmFzZUZ1bmN0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JvdW5kU2xv
dEJhc2VGdW5jdGlvbi5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQm91bmRTbG90QmFzZUZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDIsNyArNDIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGJvdW5kU2xvdEJh
CiAgICAgQ3VzdG9tR2V0dGVyU2V0dGVyKiBjdXN0b21HZXR0ZXJTZXR0ZXIgPSBib3VuZFNsb3RC
YXNlRnVuY3Rpb24tPmN1c3RvbUdldHRlclNldHRlcigpOwogCiAgICAgaWYgKGJvdW5kU2xvdEJh
c2VGdW5jdGlvbi0+aXNTZXR0ZXIoKSkgewotICAgICAgICBjYWxsQ3VzdG9tU2V0dGVyKGV4ZWMs
IGN1c3RvbUdldHRlclNldHRlciwgYmFzZU9iamVjdCwgZXhlYy0+dGhpc1ZhbHVlKCksIGV4ZWMt
PmFyZ3VtZW50KDApKTsKKyAgICAgICAgY2FsbEN1c3RvbVNldHRlcihleGVjLCBjdXN0b21HZXR0
ZXJTZXR0ZXIsIHRydWUsIGJhc2VPYmplY3QsIGV4ZWMtPnRoaXNWYWx1ZSgpLCBleGVjLT5hcmd1
bWVudCgwKSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7
CiAgICAgfQogCkBAIC01MSw3ICs1MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Ym91bmRTbG90QmEKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSA9IGJvdW5kU2xvdEJhc2VGdW5jdGlvbi0+bmFt
ZShleGVjKTsKLSAgICByZXR1cm4gZ2V0dGVyKGV4ZWMsIGJhc2VPYmplY3QsIEpTVmFsdWU6OmVu
Y29kZShleGVjLT50aGlzVmFsdWUoKSksIFByb3BlcnR5TmFtZShJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKGV4ZWMsIG5hbWUpKSk7CisgICAgcmV0dXJuIGdldHRlcihleGVjLCBKU1ZhbHVlOjplbmNv
ZGUoZXhlYy0+dGhpc1ZhbHVlKCkpLCBQcm9wZXJ0eU5hbWUoSWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhleGVjLCBuYW1lKSkpOwogfQogCiBKU0JvdW5kU2xvdEJhc2VGdW5jdGlvbjo6SlNCb3VuZFNs
b3RCYXNlRnVuY3Rpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVHlwZSB0eXBlKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBKU1ZhbHVlOjpwdXRUb1ByaW1pdGl2ZShFeGVjU3Rh
dGUqIAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoZ3MuaXNDdXN0b21HZXR0ZXJT
ZXR0ZXIoKSkgewotICAgICAgICAgICAgICAgIGNhbGxDdXN0b21TZXR0ZXIoZXhlYywgZ3MsIG9i
aiwgc2xvdC50aGlzVmFsdWUoKSwgdmFsdWUpOworICAgICAgICAgICAgICAgIGNhbGxDdXN0b21T
ZXR0ZXIoZXhlYywgZ3MsIGF0dHJpYnV0ZXMgJiBDdXN0b21BY2Nlc3Nvciwgb2JqLCBzbG90LnRo
aXNWYWx1ZSgpLCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmNw
cAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNG
dW5jdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2OSw5ICsyNjksOSBAQCBzdGF0aWMgSlNW
YWx1ZSByZXRyaWV2ZUFyZ3VtZW50cyhFeGVjU3RhCiAgICAgcmV0dXJuIGZ1bmN0b3IucmVzdWx0
KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpTRnVuY3Rpb246OmFyZ3VtZW50c0dldHRlcihFeGVjU3Rh
dGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAg
IEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8SlNGdW5jdGlvbio+KHNsb3RCYXNlKTsKKyAg
ICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0ganNDYXN0PEpTRnVuY3Rpb24qPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUKCF0aGlzT2JqLT5pc0hvc3RGdW5jdGlvbigpKTsK
IAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmV0cmlldmVBcmd1bWVudHMoZXhlYywgdGhp
c09iaikpOwpAQCAtMzI0LDkgKzMyNCw5IEBAIHN0YXRpYyBKU1ZhbHVlIHJldHJpZXZlQ2FsbGVy
RnVuY3Rpb24oRXgKICAgICByZXR1cm4gZnVuY3Rvci5yZXN1bHQoKTsKIH0KIAotRW5jb2RlZEpT
VmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
SlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGpz
Q2FzdDxKU0Z1bmN0aW9uKj4oc2xvdEJhc2UpOworICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBq
c0Nhc3Q8SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NF
UlQoIXRoaXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwogICAgIEpTVmFsdWUgY2FsbGVyID0gcmV0
cmlldmVDYWxsZXJGdW5jdGlvbihleGVjLCB0aGlzT2JqKTsKIApAQCAtMzQzLDE2ICszNDMsMTYg
QEAgRW5jb2RlZEpTVmFsdWUgSlNGdW5jdGlvbjo6Y2FsbGVyR2V0dGVyKAogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJGdW5jdGlv
bi5jYWxsZXIgdXNlZCB0byByZXRyaWV2ZSBzdHJpY3QgY2FsbGVyIikpKTsKIH0KIAotRW5jb2Rl
ZEpTVmFsdWUgSlNGdW5jdGlvbjo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIEpT
RnVuY3Rpb246Omxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0Z1bmN0aW9uKiB0aGlzT2JqID0ganNDYXN0PEpT
RnVuY3Rpb24qPihzbG90QmFzZSk7CisgICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGpzQ2FzdDxK
U0Z1bmN0aW9uKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIEFTU0VSVCghdGhp
c09iai0+aXNIb3N0RnVuY3Rpb24oKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcih0aGlzT2JqLT5qc0V4ZWN1dGFibGUoKS0+cGFyYW1ldGVyQ291bnQoKSkpOwogfQogCi1F
bmNvZGVkSlNWYWx1ZSBKU0Z1bmN0aW9uOjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0
KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IEpTRnVuY3Rpb246Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNGdW5jdGlvbiogdGhpc09iaiA9IGpzQ2FzdDxK
U0Z1bmN0aW9uKj4oc2xvdEJhc2UpOworICAgIEpTRnVuY3Rpb24qIHRoaXNPYmogPSBqc0Nhc3Q8
SlNGdW5jdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlQoIXRo
aXNPYmotPmlzSG9zdEZ1bmN0aW9uKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhp
c09iai0+anNFeGVjdXRhYmxlKCktPm5hbWVWYWx1ZSgpKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0Z1bmN0aW9uLmgJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRnVuY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMTg5LDEwICsxODksMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICBmcmllbmQgY2xhc3MgTExJ
bnRPZmZzZXRzRXh0cmFjdG9yOwogCi0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGFyZ3VtZW50
c0dldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBjYWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwg
SlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKLSAgICBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgbGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSk7Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIG5hbWVHZXR0
ZXIoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
KyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgYXJndW1lbnRzR2V0dGVyKEV4ZWNTdGF0ZSosIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBj
YWxsZXJHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Cisg
ICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBFbmNvZGVk
SlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgbmFtZUdl
dHRlcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogICAgIFdy
aXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gbV9leGVjdXRhYmxlOwogICAgIFdyaXRlQmFycmll
cjxGdW5jdGlvblJhcmVEYXRhPiBtX3JhcmVEYXRhOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNNb2R1bGVOYW1lc3BhY2VPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTmFtZXNwYWNlT2JqZWN0LmNwcAko
cmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1
bGVOYW1lc3BhY2VPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSw3ICs5NSw3IEBAIHZv
aWQgSlNNb2R1bGVOYW1lc3BhY2VPYmplY3Q6OnZpc2l0Q2hpbGQKICAgICB2aXNpdG9yLmFwcGVu
ZCgmdGhpc09iamVjdC0+bV9tb2R1bGVSZWNvcmQpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFs
dWUgY2FsbGJhY2tHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBjYWxsYmFja0dldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBKU01vZHVsZU5hbWVz
cGFjZU9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU01vZHVsZU5hbWVzcGFjZU9iamVjdCo+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBKU01vZHVsZVJlY29yZCogbW9kdWxl
UmVjb3JkID0gdGhpc09iamVjdC0+bW9kdWxlUmVjb3JkKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQwMCw4ICs0MDAsMTEgQEAgdm9pZCBKU09iamVjdDo6cHV0SW5saW5lU2xvdyhFeGVjU3RhdGUq
IAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlm
IChncy5pc0N1c3RvbUdldHRlclNldHRlcigpKSB7Ci0gICAgICAgICAgICAgICAgY2FsbEN1c3Rv
bVNldHRlcihleGVjLCBncywgb2JqLCBzbG90LnRoaXNWYWx1ZSgpLCB2YWx1ZSk7Ci0gICAgICAg
ICAgICAgICAgc2xvdC5zZXRDdXN0b21Qcm9wZXJ0eShvYmosIGpzQ2FzdDxDdXN0b21HZXR0ZXJT
ZXR0ZXIqPihncy5hc0NlbGwoKSktPnNldHRlcigpKTsKKyAgICAgICAgICAgICAgICBjYWxsQ3Vz
dG9tU2V0dGVyKGV4ZWMsIGdzLCBhdHRyaWJ1dGVzICYgQ3VzdG9tQWNjZXNzb3IsIG9iaiwgc2xv
dC50aGlzVmFsdWUoKSwgdmFsdWUpOworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzICYg
Q3VzdG9tQWNjZXNzb3IpCisgICAgICAgICAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tQWNjZXNz
b3Iob2JqLCBqc0Nhc3Q8Q3VzdG9tR2V0dGVyU2V0dGVyKj4oZ3MuYXNDZWxsKCkpLT5zZXR0ZXIo
KSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzbG90LnNldEN1
c3RvbVZhbHVlKG9iaiwganNDYXN0PEN1c3RvbUdldHRlclNldHRlcio+KGdzLmFzQ2VsbCgpKS0+
c2V0dGVyKCkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIEFTU0VSVCghKGF0dHJpYnV0ZXMgJiBBY2Nlc3NvcikpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTG9va3VwLmgJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzYsOCAr
Mjc2LDEyIEBAIGlubGluZSB2b2lkIHB1dEVudHJ5KEV4ZWNTdGF0ZSogZXhlYywgY28KICAgICAg
ICAgaWYgKHNsb3QuaXNTdHJpY3RNb2RlKCkpCiAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihl
eGVjLCBTdHJpY3RNb2RlUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwogICAgIH0gZWxzZSBp
ZiAoIShlbnRyeS0+YXR0cmlidXRlcygpICYgUmVhZE9ubHkpKSB7Ci0gICAgICAgIGVudHJ5LT5w
cm9wZXJ0eVB1dHRlcigpKGV4ZWMsIGJhc2UsIEpTVmFsdWU6OmVuY29kZShzbG90LnRoaXNWYWx1
ZSgpKSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVlKSk7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tUHJv
cGVydHkoYmFzZSwgZW50cnktPnByb3BlcnR5UHV0dGVyKCkpOworICAgICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGVudHJ5LT5hdHRyaWJ1dGVzKCkgJiBDdXN0b21BY2Nlc3NvciA/IHNsb3QudGhp
c1ZhbHVlKCkgOiBKU1ZhbHVlKGJhc2UpOworICAgICAgICBlbnRyeS0+cHJvcGVydHlQdXR0ZXIo
KShleGVjLCBKU1ZhbHVlOjplbmNvZGUodGhpc1ZhbHVlKSwgSlNWYWx1ZTo6ZW5jb2RlKHZhbHVl
KSk7CisgICAgICAgIGlmIChlbnRyeS0+YXR0cmlidXRlcygpICYgQ3VzdG9tQWNjZXNzb3IpCisg
ICAgICAgICAgICBzbG90LnNldEN1c3RvbUFjY2Vzc29yKGJhc2UsIGVudHJ5LT5wcm9wZXJ0eVB1
dHRlcigpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2xvdC5zZXRDdXN0b21WYWx1ZShi
YXNlLCBlbnRyeS0+cHJvcGVydHlQdXR0ZXIoKSk7CiAgICAgfSBlbHNlIGlmIChzbG90LmlzU3Ry
aWN0TW9kZSgpKQogICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpY3RNb2RlUmVhZG9u
bHlQcm9wZXJ0eVdyaXRlRXJyb3IpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUHJvcGVydHlTbG90LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJHZXR0ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJK
U0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCiAKIG5hbWVzcGFjZSBK
U0MgewogCkBAIC0zMiw0ICszMywxMCBAQCBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6ZnVuY3Rpb25H
ZXR0ZXIoRXhlCiAgICAgcmV0dXJuIGNhbGxHZXR0ZXIoZXhlYywgbV90aGlzVmFsdWUsIG1fZGF0
YS5nZXR0ZXIuZ2V0dGVyU2V0dGVyKTsKIH0KIAorSlNWYWx1ZSBQcm9wZXJ0eVNsb3Q6OmN1c3Rv
bUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpIGNvbnN0
Cit7CisgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBtX2F0dHJpYnV0ZXMgJiBDdXN0b21BY2Nlc3Nv
ciA/IG1fdGhpc1ZhbHVlIDogSlNWYWx1ZShzbG90QmFzZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20uZ2V0VmFsdWUoZXhlYywgSlNWYWx1ZTo6ZW5jb2RlKHRo
aXNWYWx1ZSksIHByb3BlcnR5TmFtZSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5U2xvdC5oCShyZXZpc2lv
biAxOTYyMzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eVNsb3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgIH0K
IAotICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0ZSos
IEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpOworICAgIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNTdGF0
ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKIAogICAgIEpTVmFs
dWUgZ2V0VmFsdWUoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKSBjb25zdDsKICAgICBKU1ZhbHVl
IGdldFZhbHVlKEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29uc3Q7CkBAIC0y
NDksNiArMjQ5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEpTX0VYUE9SVF9QUklWQVRF
IEpTVmFsdWUgZnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKikgY29uc3Q7CisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgSlNWYWx1ZSBjdXN0b21HZXR0ZXIoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lKSBj
b25zdDsKIAogICAgIHVuc2lnbmVkIG1fYXR0cmlidXRlczsKICAgICB1bmlvbiB7CkBAIC0yNzUs
NyArMjc2LDcgQEAgQUxXQVlTX0lOTElORSBKU1ZhbHVlIFByb3BlcnR5U2xvdDo6Z2V0VgogICAg
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS52YWx1ZSk7CiAgICAgaWYgKG1fcHJv
cGVydHlUeXBlID09IFR5cGVHZXR0ZXIpCiAgICAgICAgIHJldHVybiBmdW5jdGlvbkdldHRlcihl
eGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1fZGF0YS5jdXN0b20uZ2V0VmFsdWUo
ZXhlYywgc2xvdEJhc2UoKSwgSlNWYWx1ZTo6ZW5jb2RlKG1fdGhpc1ZhbHVlKSwgcHJvcGVydHlO
YW1lKSk7CisgICAgcmV0dXJuIGN1c3RvbUdldHRlcihleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQog
CiBBTFdBWVNfSU5MSU5FIEpTVmFsdWUgUHJvcGVydHlTbG90OjpnZXRWYWx1ZShFeGVjU3RhdGUq
IGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29uc3QKQEAgLTI4NCw3ICsyODUsNyBAQCBB
TFdBWVNfSU5MSU5FIEpTVmFsdWUgUHJvcGVydHlTbG90OjpnZXRWCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjpkZWNvZGUobV9kYXRhLnZhbHVlKTsKICAgICBpZiAobV9wcm9wZXJ0eVR5cGUgPT0g
VHlwZUdldHRlcikKICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uR2V0dGVyKGV4ZWMpOwotICAgIHJl
dHVybiBKU1ZhbHVlOjpkZWNvZGUobV9kYXRhLmN1c3RvbS5nZXRWYWx1ZShleGVjLCBzbG90QmFz
ZSgpLCBKU1ZhbHVlOjplbmNvZGUobV90aGlzVmFsdWUpLCBJZGVudGlmaWVyOjpmcm9tKGV4ZWMs
IHByb3BlcnR5TmFtZSkpKTsKKyAgICByZXR1cm4gY3VzdG9tR2V0dGVyKGV4ZWMsIElkZW50aWZp
ZXI6OmZyb20oZXhlYywgcHJvcGVydHlOYW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHV0UHJvcGVydHlTbG90LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHV0UHJvcGVydHlTbG90
LmgJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1B1
dFByb3BlcnR5U2xvdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw5ICszOCw5IEBAIGNsYXNzIEpT
RnVuY3Rpb247CiAgICAgCiBjbGFzcyBQdXRQcm9wZXJ0eVNsb3QgewogcHVibGljOgotICAgIGVu
dW0gVHlwZSB7IFVuY2FjaGFibGUsIEV4aXN0aW5nUHJvcGVydHksIE5ld1Byb3BlcnR5LCBTZXR0
ZXJQcm9wZXJ0eSwgQ3VzdG9tUHJvcGVydHkgfTsKKyAgICBlbnVtIFR5cGUgeyBVbmNhY2hhYmxl
LCBFeGlzdGluZ1Byb3BlcnR5LCBOZXdQcm9wZXJ0eSwgU2V0dGVyUHJvcGVydHksIEN1c3RvbVZh
bHVlLCBDdXN0b21BY2Nlc3NvciB9OwogICAgIGVudW0gQ29udGV4dCB7IFVua25vd25Db250ZXh0
LCBQdXRCeUlkLCBQdXRCeUlkRXZhbCB9OwotICAgIHR5cGVkZWYgdm9pZCAoKlB1dFZhbHVlRnVu
YykoRXhlY1N0YXRlKiwgSlNPYmplY3QqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHZhbHVlKTsKKyAgICB0eXBlZGVmIHZvaWQgKCpQdXRWYWx1ZUZ1bmMp
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHZh
bHVlKTsKIAogICAgIFB1dFByb3BlcnR5U2xvdChKU1ZhbHVlIHRoaXNWYWx1ZSwgYm9vbCBpc1N0
cmljdE1vZGUgPSBmYWxzZSwgQ29udGV4dCBjb250ZXh0ID0gVW5rbm93bkNvbnRleHQsIGJvb2wg
aXNJbml0aWFsaXphdGlvbiA9IGZhbHNlKQogICAgICAgICA6IG1fdHlwZShVbmNhY2hhYmxlKQpA
QCAtNjgsOSArNjgsMTYgQEAgcHVibGljOgogICAgICAgICBtX29mZnNldCA9IG9mZnNldDsKICAg
ICB9CiAKLSAgICB2b2lkIHNldEN1c3RvbVByb3BlcnR5KEpTT2JqZWN0KiBiYXNlLCBQdXRWYWx1
ZUZ1bmMgZnVuY3Rpb24pCisgICAgdm9pZCBzZXRDdXN0b21WYWx1ZShKU09iamVjdCogYmFzZSwg
UHV0VmFsdWVGdW5jIGZ1bmN0aW9uKQogICAgIHsKLSAgICAgICAgbV90eXBlID0gQ3VzdG9tUHJv
cGVydHk7CisgICAgICAgIG1fdHlwZSA9IEN1c3RvbVZhbHVlOworICAgICAgICBtX2Jhc2UgPSBi
YXNlOworICAgICAgICBtX3B1dEZ1bmN0aW9uID0gZnVuY3Rpb247CisgICAgfQorCisgICAgdm9p
ZCBzZXRDdXN0b21BY2Nlc3NvcihKU09iamVjdCogYmFzZSwgUHV0VmFsdWVGdW5jIGZ1bmN0aW9u
KQorICAgIHsKKyAgICAgICAgbV90eXBlID0gQ3VzdG9tQWNjZXNzb3I7CiAgICAgICAgIG1fYmFz
ZSA9IGJhc2U7CiAgICAgICAgIG1fcHV0RnVuY3Rpb24gPSBmdW5jdGlvbjsKICAgICB9CkBAIC04
Nyw3ICs5NCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fdGhpc1ZhbHVlID0gdGhpc1ZhbHVlOwog
ICAgIH0KIAotICAgIFB1dFZhbHVlRnVuYyBjdXN0b21TZXR0ZXIoKSBjb25zdCB7IHJldHVybiBt
X3B1dEZ1bmN0aW9uOyB9CisgICAgUHV0VmFsdWVGdW5jIGN1c3RvbVNldHRlcigpIGNvbnN0Cisg
ICAgeworICAgICAgICBBU1NFUlQoaXNDYWNoZWFibGVDdXN0b20oKSk7CisgICAgICAgIHJldHVy
biBtX3B1dEZ1bmN0aW9uOworICAgIH0KIAogICAgIENvbnRleHQgY29udGV4dCgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PENvbnRleHQ+KG1fY29udGV4dCk7IH0KIApAQCAtOTgsNyArMTA5
LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNTdHJpY3RNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9p
c1N0cmljdE1vZGU7IH0KICAgICBib29sIGlzQ2FjaGVhYmxlUHV0KCkgY29uc3QgeyByZXR1cm4g
bV90eXBlID09IE5ld1Byb3BlcnR5IHx8IG1fdHlwZSA9PSBFeGlzdGluZ1Byb3BlcnR5OyB9CiAg
ICAgYm9vbCBpc0NhY2hlYWJsZVNldHRlcigpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBTZXR0
ZXJQcm9wZXJ0eTsgfQotICAgIGJvb2wgaXNDYWNoZWFibGVDdXN0b20oKSBjb25zdCB7IHJldHVy
biBtX3R5cGUgPT0gQ3VzdG9tUHJvcGVydHk7IH0KKyAgICBib29sIGlzQ2FjaGVhYmxlQ3VzdG9t
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEN1c3RvbVZhbHVlIHx8IG1fdHlwZSA9PSBDdXN0
b21BY2Nlc3NvcjsgfQorICAgIGJvb2wgaXNDdXN0b21BY2Nlc3NvcigpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZSA9PSBDdXN0b21BY2Nlc3NvcjsgfQogICAgIGJvb2wgaXNJbml0aWFsaXphdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1faXNJbml0aWFsaXphdGlvbjsgfQogCiAgICAgUHJvcGVydHlPZmZz
ZXQgY2FjaGVkT2Zmc2V0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzEsMjQgKzMxLDI0IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0
aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3RhdGUqLCBKU09i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Ci1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhw
Q29uc3RydWN0b3JMYXN0TWF0Y2goRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKTsKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rv
ckxhc3RQYXJlbihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENvbnRl
eHQoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsK
LXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4dChFeGVj
U3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMShFeGVjU3RhdGUqLCBKU09i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1Zh
bHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29k
ZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyMyhFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9s
bGFyNChFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
Owotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNShFeGVjU3Rh
dGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNihFeGVjU3RhdGUqLCBKU09iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNyhFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0
cnVjdG9yRG9sbGFyOChFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
OShFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwg
RW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0TWF0
Y2goRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFyZW4oRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29u
c3RydWN0b3JMZWZ0Q29udGV4dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJpZ2h0Q29udGV4
dChFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEoRXhlY1N0YXRlKiwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3Ry
dWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyhFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBy
ZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3Bl
cnR5TmFtZSk7CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI1
KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyNihFeGVjU3RhdGUqLCBFbmNvZGVkSlNW
YWx1ZSwgUHJvcGVydHlOYW1lKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjcoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7Citz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4KEV4ZWNTdGF0ZSos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIHJl
Z0V4cENvbnN0cnVjdG9yRG9sbGFyOShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVy
dHlOYW1lKTsKIAotc3RhdGljIHZvaWQgc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1dChFeGVjU3Rh
dGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7Ci1zdGF0aWMg
dm9pZCBzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUqLCBKU09iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSk7CitzdGF0aWMgdm9pZCBzZXRSZWdFeHBD
b25zdHJ1Y3RvcklucHV0KEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSk7CitzdGF0aWMgdm9pZCBzZXRSZWdFeHBDb25zdHJ1Y3Rvck11bHRpbGluZShFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IApAQCAtMTU5LDkwICsxNTksOTAgQEAgYm9vbCBSZWdFeHBDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJv
cGVydHlTbAogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8UmVnRXhwQ29uc3RydWN0b3Is
IEludGVybmFsRnVuY3Rpb24+KGV4ZWMsIHJlZ0V4cENvbnN0cnVjdG9yVGFibGUsIGpzQ2FzdDxS
ZWdFeHBDb25zdHJ1Y3Rvcio+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAgICAg
Ci1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjEoRXhlY1N0YXRlKiBleGVjLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMs
IDEpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDEpKTsKIH0KIAotRW5j
b2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpT
VmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXIyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCAyKSk7
CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0QmFja3JlZihleGVjLCAyKSk7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyMyhFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
YXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhlYywgMykpOworICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhlYywgMykpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSByZWdFeHBDb25zdHJ1Y3RvckRvbGxhcjQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xv
dEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSByZWdF
eHBDb25zdHJ1Y3RvckRvbGxhcjQoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVn
RXhwQ29uc3RydWN0b3Ioc2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDQpKTsKKyAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpLT5nZXRCYWNrcmVmKGV4ZWMsIDQpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVn
RXhwQ29uc3RydWN0b3JEb2xsYXI1KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29u
c3RydWN0b3JEb2xsYXI1KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENv
bnN0cnVjdG9yKHNsb3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCA1KSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKS0+Z2V0QmFja3JlZihleGVjLCA1KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENv
bnN0cnVjdG9yRG9sbGFyNihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVj
dG9yRG9sbGFyNihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1
Y3RvcihzbG90QmFzZSktPmdldEJhY2tyZWYoZXhlYywgNikpOworICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSkt
PmdldEJhY2tyZWYoZXhlYywgNikpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1
Y3RvckRvbGxhcjcoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckRv
bGxhcjcoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Io
c2xvdEJhc2UpLT5nZXRCYWNrcmVmKGV4ZWMsIDcpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpLT5nZXRC
YWNrcmVmKGV4ZWMsIDcpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JE
b2xsYXI4KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JEb2xsYXI4
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RC
YXNlKS0+Z2V0QmFja3JlZihleGVjLCA4KSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShh
c1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0QmFja3Jl
ZihleGVjLCA4KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFy
OShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yRG9sbGFyOShFeGVj
U3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihzbG90QmFzZSkt
PmdldEJhY2tyZWYoZXhlYywgOSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdF
eHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldEJhY2tyZWYoZXhl
YywgOSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvcklucHV0KEV4ZWNT
dGF0ZSosIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9ySW5wdXQoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNsb3RCYXNlKS0+aW5wdXQoKSk7CisgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKS0+aW5wdXQoKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVj
dG9yTXVsdGlsaW5lKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTXVsdGls
aW5lKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGFzUmVnRXhwQ29uc3RydWN0
b3Ioc2xvdEJhc2UpLT5tdWx0aWxpbmUoKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNCb29sZWFuKGFzUmVnRXhwQ29uc3RydWN0b3IoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
LT5tdWx0aWxpbmUoKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3Rvckxh
c3RNYXRjaChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFzdE1h
dGNoKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNs
b3RCYXNlKS0+Z2V0QmFja3JlZihleGVjLCAwKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKS0+Z2V0QmFj
a3JlZihleGVjLCAwKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGFz
dFBhcmVuKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JMYXN0UGFy
ZW4oRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzUmVnRXhwQ29uc3RydWN0b3Ioc2xv
dEJhc2UpLT5nZXRMYXN0UGFyZW4oZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
YXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldExhc3RQ
YXJlbihleGVjKSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIHJlZ0V4cENvbnN0cnVjdG9yTGVmdENv
bnRleHQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvckxlZnRDb250
ZXh0KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKHNs
b3RCYXNlKS0+Z2V0TGVmdENvbnRleHQoZXhlYykpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoYXNSZWdFeHBDb25zdHJ1Y3RvcihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPmdldExl
ZnRDb250ZXh0KGV4ZWMpKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgcmVnRXhwQ29uc3RydWN0b3JS
aWdodENvbnRleHQoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSByZWdFeHBDb25zdHJ1Y3RvclJp
Z2h0Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNSZWdFeHBDb25zdHJ1
Y3RvcihzbG90QmFzZSktPmdldFJpZ2h0Q29udGV4dChleGVjKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShhc1JlZ0V4cENvbnN0cnVjdG9yKEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KS0+Z2V0UmlnaHRDb250ZXh0KGV4ZWMpKTsKIH0KIAotdm9pZCBzZXRSZWdFeHBDb25zdHJ1Y3Rv
cklucHV0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKK3ZvaWQgc2V0UmVnRXhwQ29uc3RydWN0b3JJbnB1
dChFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8gY29uc3RydWN0b3IgPSBqc0R5bmFtaWNDYXN0PFJl
Z0V4cENvbnN0cnVjdG9yKj4oYmFzZU9iamVjdCkpCisgICAgaWYgKGF1dG8gY29uc3RydWN0b3Ig
PSBqc0R5bmFtaWNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpKQogICAgICAgICBjb25zdHJ1Y3Rvci0+c2V0SW5wdXQoZXhlYywgSlNWYWx1ZTo6ZGVj
b2RlKHZhbHVlKS50b1N0cmluZyhleGVjKSk7CiB9CiAKLXZvaWQgc2V0UmVnRXhwQ29uc3RydWN0
b3JNdWx0aWxpbmUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZhbHVlKQordm9pZCBzZXRSZWdFeHBDb25zdHJ1Y3Rv
ck11bHRpbGluZShFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgdmFsdWUpCiB7Ci0gICAgaWYgKGF1dG8gY29uc3RydWN0b3IgPSBqc0R5bmFt
aWNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oYmFzZU9iamVjdCkpCisgICAgaWYgKGF1dG8gY29u
c3RydWN0b3IgPSBqc0R5bmFtaWNDYXN0PFJlZ0V4cENvbnN0cnVjdG9yKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpKQogICAgICAgICBjb25zdHJ1Y3Rvci0+c2V0TXVsdGlsaW5lKEpTVmFs
dWU6OmRlY29kZSh2YWx1ZSkudG9Cb29sZWFuKGV4ZWMpKTsKIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCShyZXZpc2lvbiAxOTYy
MzgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBPYmplY3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzcsMjEgKzEzNywyMSBAQCBib29sIFJlZ0V4cE9iamVjdDo6ZGVm
aW5lT3duUHJvcGVydHkoSlNPCiAgICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAK
LXN0YXRpYyB2b2lkIHJlZ0V4cE9iamVjdFNldExhc3RJbmRleFN0cmljdChFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHZh
bHVlKQorc3RhdGljIHZvaWQgcmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4U3RyaWN0KEV4ZWNTdGF0
ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkK
IHsKLSAgICBhc1JlZ0V4cE9iamVjdChzbG90QmFzZSktPnNldExhc3RJbmRleChleGVjLCBKU1Zh
bHVlOjpkZWNvZGUodmFsdWUpLCB0cnVlKTsKKyAgICBhc1JlZ0V4cE9iamVjdChKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChleGVjLCBKU1ZhbHVlOjpkZWNvZGUodmFs
dWUpLCB0cnVlKTsKIH0KIAotc3RhdGljIHZvaWQgcmVnRXhwT2JqZWN0U2V0TGFzdEluZGV4Tm9u
U3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgdm9pZCByZWdFeHBPYmplY3RTZXRMYXN0
SW5kZXhOb25TdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIHZhbHVlKQogewotICAgIGFzUmVnRXhwT2JqZWN0KHNsb3RCYXNlKS0+
c2V0TGFzdEluZGV4KGV4ZWMsIEpTVmFsdWU6OmRlY29kZSh2YWx1ZSksIGZhbHNlKTsKKyAgICBh
c1JlZ0V4cE9iamVjdChKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSktPnNldExhc3RJbmRleChl
eGVjLCBKU1ZhbHVlOjpkZWNvZGUodmFsdWUpLCBmYWxzZSk7CiB9CiAKIHZvaWQgUmVnRXhwT2Jq
ZWN0OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBp
ZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sYXN0SW5kZXgpIHsKICAg
ICAgICAgYXNSZWdFeHBPYmplY3QoY2VsbCktPnNldExhc3RJbmRleChleGVjLCB2YWx1ZSwgc2xv
dC5pc1N0cmljdE1vZGUoKSk7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tUHJvcGVydHkoYXNSZWdF
eHBPYmplY3QoY2VsbCksIHNsb3QuaXNTdHJpY3RNb2RlKCkKKyAgICAgICAgc2xvdC5zZXRDdXN0
b21WYWx1ZShhc1JlZ0V4cE9iamVjdChjZWxsKSwgc2xvdC5pc1N0cmljdE1vZGUoKQogICAgICAg
ICAgICAgPyByZWdFeHBPYmplY3RTZXRMYXN0SW5kZXhTdHJpY3QKICAgICAgICAgICAgIDogcmVn
RXhwT2JqZWN0U2V0TGFzdEluZGV4Tm9uU3RyaWN0KTsKICAgICAgICAgcmV0dXJuOwpJbmRleDog
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTYtMDItMDcgIEdhdmluIEJhcnJhY2xv
dWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIEdldFZhbHVlRnVuYy9QdXRW
YWx1ZUZ1bmMgc2hvdWxkIG5vdCB0YWtlIGJvdGggc2xvdEJhc2UgYW5kIHRoaXNWYWx1ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0MDA5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gSmF2YVNjcmlw
dCB0aGVyZSBhcmUgdHdvIHR5cGVzIG9mIHByb3BlcnRpZXMgLSByZWd1bGFyIHZhbHVlIHByb3Bl
cnRpZXMsIGFuZCBhY2Nlc3NvciBwcm9wZXJ0aWVzLgorICAgICAgICBPbmUgZGlmZmVyZW5jZSBi
ZXR3ZWVuIHRoZXNlIGlzIGhvdyB0aGV5IGFyZSByZWZsZWN0ZWQgYnkgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yLCBhbmQgYW5vdGhlciBpcworICAgICAgICB3aGF0IG9iamVjdCB0aGV5IG9wZXJh
dGUgb24gaW4gdGhlIGNhc2Ugb2YgYSBwcm90b3R5cGUgYWNjZXNzLiBJZiB5b3UgYWNjZXNzIGEg
dmFsdWUgcHJvcGVydHkgb2YgYQorICAgICAgICBwcm90b3R5cGUgb2JqZWN0IGl0IHJldHVybiBh
IHZhbHVlIHBlcnRpbmVudCB0byB0aGUgcHJvdG90eXBlLCBidXQgaW4gdGhlIGNhc2Ugb2YgYSBw
cm90b3R5cGUgb2JqZWN0CisgICAgICAgIHJldHVybmluZyBhbiBhY2Nlc3NvciwgdGhlbiB0aGUg
YWNjZXNzb3IgZnVuY3Rpb24gaXMgYXBwbGllZCB0byB0aGUgYmFzZSBvYmplY3Qgb2YgdGhlIGFj
Y2Vzcy4KKworICAgICAgICBKU0Mgc3VwcG9ydHMgc3BlY2lhbCAnY3VzdG9tJyBwcm9wZXJ0aWVz
IGltcGxlbWVudGVkIGFzIGEgYysrIGNhbGxiYWNrLCBhbmQgdGhlc2UgY3VzdG9tIHByb3BlcnRp
ZXMKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGVpdGhlciB2YWx1ZS0gb3IgYWNj
ZXNzb3ItbGlrZSBiZWhhdmlvci4gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIGJlaGF2aW9yCisg
ICAgICAgIGlzIHNlbGVjdGVkIHZpYSB0aGUgQ3VzdG9tQWNjZXNzb3IgYXR0cmlidXRlLiBWYWx1
ZS0gb3IgYWNjZXNzb3ItbGlrZSBvYmplY3Qgc2VsZWN0aW9uIGlzIGN1cnJlbnQKKyAgICAgICAg
c3VwcG9ydGVkIGJ5IHBhc3NpbmcgYm90aCB0aGUgc2xvdEJhc2UgYW5kIHRoZSB0aGlzVmFsdWUg
dG8gdGhlIGNhbGxiYWNrLGFuZCBob3BpbmcgaXQgdXNlcyB0aGUKKyAgICAgICAgcmlnaHQgb25l
LiBUaGlzIGlzIHByb2JhYmx5IGluZWZmaWNpZW50LCBidWctcHJvbmUsIGFuZCBsZWFkcyB0byBj
cmF6eSBsaWtlIEpTQm91bmRTbG90QmFzZUZ1bmN0aW9uLgorCisgICAgICAgIEluc3RlYWQsIGp1
c3QgcGFzcyBvbmUgdGhpc1ZhbHVlIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbnMsIGNvbnNpc3Rl
bnQgd2l0aCBDdXN0b21BY2Nlc3Nvci4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwcmludEVycm9yTWVzc2FnZUZvckZyYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Om9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6cHJvcGVy
dHlOYW1lVG9TdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0U3RhdGljVmFsdWVTbG90RW50
cnlXaXRob3V0Q2FjaGluZzxKU0RPTU9iamVjdD4pOgorICAgICAgICAoV2ViQ29yZTo6bm9uQ2Fj
aGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6dmlzaXRBZGRp
dGlvbmFsQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6Y2hpbGRGcmFtZUdldHRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpuYW1lZEl0ZW1HZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6anNE
T01XaW5kb3dXZWJLaXQpOgorICAgICAgICAoV2ViQ29yZTo6anNET01XaW5kb3dJbmRleGVkREIp
OgorICAgICAgICAgICAgLSBhZGQgbWlzc2luZyBudWxsIGNoZWNrLCBpbiBjYXNlIGluZGV4REIg
YWNlc3NvciBpcyBhcHBsaWVkIHRvIG5vbi13aW5kb3cgb2JqZWN0LgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
bHVnaW5TY3JpcHRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6cGx1Z2luRWxlbWVudFByb3Bl
cnR5R2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlv
bnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAg
ICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24p
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVu
dGltZUFycmF5OjpkZXN0cm95KToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpsZW5ndGhH
ZXR0ZXIpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJp
ZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZU1ldGhvZDo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpSdW50aW1lTWV0aG9kOjpsZW5ndGhHZXR0ZXIp
OgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5oOgorICAgICAgICAqIGJyaWRnZS9y
dW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0
OjppbnZhbGlkYXRlKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OmZh
bGxiYWNrT2JqZWN0R2V0dGVyKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmpl
Y3Q6OmZpZWxkR2V0dGVyKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6
Om1ldGhvZEdldHRlcik6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0Lmg6CisgICAg
ICAgICAgICAtIE1lcmdlZCBzbG90QmFzZSAmIHRoaXNWYWx1ZSB0byBjdXN0b20gcHJvcGVydHkg
Y2FsbGJhY2tzLgorCiAyMDE2LTAyLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxOTU2NjEpOiBbR1RLXSBTY3JvbGxi
YXIgdGVzdHMgY3Jhc2hpbmcgYWZ0ZXIgb3ZlcmxheSBzY3JvbGxiYXIgZ3JvdW5kd29yawpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCShyZXZpc2lv
biAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMzQsNyArMzM0LDcgQEAgdm9pZCBwcmludEVycm9yTWVzc2Fn
ZUZvckZyYW1lKEZyYW1lKiBmcgogICAgIGZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+
cHJpbnRFcnJvck1lc3NhZ2UobWVzc2FnZSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIG9iamVjdFRv
U3RyaW5nRnVuY3Rpb25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgb2JqZWN0
VG9TdHJpbmdGdW5jdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSwgMCwgcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKSwgb2JqZWN0UHJvdG9GdW5jVG9TdHJpbmcp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCShy
ZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaAkod29ya2luZyBjb3B5KQpAQCAtNjUzLDcgKzY1Myw3IEBAIGJvb2wgc2hvdWxkQWxsb3dB
Y2Nlc3NUb0ZyYW1lKEpTQzo6RXhlY1MKIGJvb2wgc2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRv
dyhKU0M6OkV4ZWNTdGF0ZSosIERPTVdpbmRvdyYsIFN0cmluZyYgbWVzc2FnZSk7CiAKIHZvaWQg
cHJpbnRFcnJvck1lc3NhZ2VGb3JGcmFtZShGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIG9iamVjdFRvU3RyaW5nRnVuY3Rpb25HZXR0ZXIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBvYmplY3RUb1N0cmluZ0Z1bmN0aW9uR2V0
dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwogCiBpbmxpbmUgU3RyaW5nIHByb3BlcnR5TmFtZVRvU3RyaW5nKEpTQzo6UHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSkKIHsKQEAgLTY4Myw3ICs2ODMsNyBAQCB0ZW1wbGF0ZTw+IGlubGlu
ZSBjb25zdCBKU0M6Okhhc2hUYWJsZVZhCiB9CiAKIHRlbXBsYXRlPEpTQzo6TmF0aXZlRnVuY3Rp
b24gbmF0aXZlRnVuY3Rpb24sIGludCBsZW5ndGg+Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIG5vbkNh
Y2hpbmdTdGF0aWNGdW5jdGlvbkdldHRlcihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSkKK0pTQzo6RW5jb2RlZEpTVmFsdWUgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgcmV0dXJuIEpTQzo6SlNWYWx1ZTo6ZW5jb2RlKEpTQzo6
SlNGdW5jdGlvbjo6Y3JlYXRlKGV4ZWMtPnZtKCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSwgbGVuZ3RoLCBwcm9wZXJ0eU5hbWUucHVibGljTmFtZSgpLCBuYXRpdmVGdW5jdGlvbikpOwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NiwxNCArNjYsMTQgQEAg
dm9pZCBKU0RPTVdpbmRvdzo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyZQogICAgICAgICB2aXNpdG9y
LmFkZE9wYXF1ZVJvb3QoZnJhbWUpOwogfQogCi1zdGF0aWMgRW5jb2RlZEpTVmFsdWUgY2hpbGRG
cmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpT
VmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
Y2hpbGRGcmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKHRvSlMoZXhlYywganNDYXN0PEpTRE9NV2luZG93Kj4oc2xvdEJhc2UpLT53cmFwcGVkKCku
ZnJhbWUoKS0+dHJlZSgpLnNjb3BlZENoaWxkKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHBy
b3BlcnR5TmFtZSkpLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpOworICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUodG9KUyhleGVjLCBqc0Nhc3Q8SlNET01XaW5kb3cqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSktPndyYXBwZWQoKS5mcmFtZSgpLT50cmVlKCkuc2NvcGVkQ2hpbGQocHJv
cGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSktPmRvY3VtZW50KCktPmRvbVdp
bmRvdygpKSk7CiB9CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBuYW1lZEl0ZW1HZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lKQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIG5hbWVkSXRlbUdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkKIHsKLSAgICBKU0RPTVdpbmRvd0Jhc2UqIHRoaXNPYmogPSBqc0Nhc3Q8
SlNET01XaW5kb3cqPihzbG90QmFzZSk7CisgICAgSlNET01XaW5kb3dCYXNlKiB0aGlzT2JqID0g
anNDYXN0PEpTRE9NV2luZG93Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IHRoaXNPYmotPndyYXBwZWQoKS5mcmFtZSgpLT5kb2N1bWVudCgp
OwogCiAgICAgQVNTRVJUKEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdp
bmRvdyhleGVjLCB0aGlzT2JqLT53cmFwcGVkKCkpKTsKQEAgLTkzLDcgKzkzLDcgQEAgc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIG5hbWVkSXRlbUdldHRlcihFeAogfQogCiAjaWYgRU5BQkxFKFVTRVJf
TUVTU0FHRV9IQU5ETEVSUykKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBqc0RPTVdpbmRvd1dlYktp
dChFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitzdGF0aWMgRW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dXZWJLaXQoRXhl
Y1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBKU0RPTVdpbmRvdyogY2FzdGVkVGhpcyA9IHRvSlNET01XaW5kb3coSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0Fj
Y2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPndyYXBwZWQoKSkpCkBAIC0xMDMsMTUg
KzEwMywxMyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUganNET01XaW5kb3dXZWJLaXQoCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotc3RhdGljIEVuY29kZWRKU1ZhbHVl
IGpzRE9NV2luZG93SW5kZXhlZERCKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBqc0RPTVdpbmRvd0luZGV4ZWREQihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShleGVjKTsK
LSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIGF1dG8qIGNhc3RlZFRoaXMgPSB0b0pTRE9NV2luZG93KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuaW5kZXhlZERCRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwotICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0Fj
Y2Vzc1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPndyYXBwZWQoKSkpCisgICAgaWYgKCFj
YXN0ZWRUaGlzIHx8ICFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5k
b3coZXhlYywgY2FzdGVkVGhpcy0+d3JhcHBlZCgpKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3Jh
cHBlZCgpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9i
YWxPYmplY3QoKSwgV1RGOjpnZXRQdHIoRE9NV2luZG93SW5kZXhlZERhdGFiYXNlOjppbmRleGVk
REIoJmltcGwpKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVs
ZW1lbnRGdW5jdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTk0LDcgKzk0LDcgQEAgSlNPYmplY3QqIHBsdWdpblNjcmlwdE9iamVj
dChFeGVjU3RhdGUqIAogICAgIHJldHVybiBpbnN0YW5jZS0+Y3JlYXRlUnVudGltZU9iamVjdChl
eGVjKTsKIH0KICAgICAKLUVuY29kZWRKU1ZhbHVlIHBsdWdpbkVsZW1lbnRQcm9wZXJ0eUdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgcGx1Z2luRWxlbWVudFBy
b3BlcnR5R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogCiAgICAgSlNIVE1MRWxlbWVudCogdGhpc09i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNIVE1MRWxlbWVudCo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2luRWxlbWVu
dEZ1bmN0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5oCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1BsdWdpbkVsZW1lbnRGdW5jdGlvbnMuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNyArMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgSlNDOjpCaW5kaW5n
czo6SW5zdGFuY2UqIHBsdWdpbkluc3RhbmNlKEhUTUxFbGVtZW50Jik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgSlNDOjpKU09iamVjdCogcGx1Z2luU2NyaXB0T2JqZWN0KEpTQzo6RXhlY1N0YXRlKiwg
SlNIVE1MRWxlbWVudCopOwogCi0gICAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBwbHVnaW5FbGVtZW50
UHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworICAgIEpTQzo6RW5jb2RlZEpTVmFsdWUg
cGx1Z2luRWxlbWVudFByb3BlcnR5R2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwKKyAgICBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAgICAgYm9vbCBwbHVnaW5FbGVtZW50
Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlTbG90JiwgSlNIVE1MRWxlbWVudCopOwogICAgIGJvb2wgcGx1Z2lu
RWxlbWVudEN1c3RvbVB1dChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OkpTVmFsdWUsIEpTSFRNTEVsZW1lbnQqLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgIEpT
Qzo6Q2FsbFR5cGUgcGx1Z2luRWxlbWVudEdldENhbGxEYXRhKEpTSFRNTEVsZW1lbnQqLCBKU0M6
OkNhbGxEYXRhJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAg
LTEzMDIsMTAgKzEzMDIsMTAgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICBteSAk
Y29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0
cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5n
OwogICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVy
ZmFjZU5hbWUsICRjbGFzc05hbWUsICRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotICAgICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpT
Qzo6RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVh
ZG9ubHkoJGF0dHJpYnV0ZSkpIHsKICAgICAgICAgICAgICAgICBteSAkc2V0dGVyID0gR2V0QXR0
cmlidXRlU2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSwg
JGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInZvaWQg
JHtzZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgInZvaWQgJHtzZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25h
bFN0cmluZzsKICAgICAgICAgfQpAQCAtMTgzNSwyMSArMTgzNSwyMSBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVH
ZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJp
bmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0g
R2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGludGVy
ZmFjZSwgJGF0dHJpYnV0ZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6
RW5jb2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTtcbiIp
OwogICAgICAgICAgICAgaWYgKCFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7CiAgICAgICAgICAg
ICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZU5hbWUs
ICRjbGFzc05hbWUsICRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAidm9pZCAke3NldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4iKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtzZXR0ZXJ9KEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7XG4i
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlm
XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IGlmIChOZWVkc0NvbnN0cnVjdG9yUHJvcGVydHkoJGludGVyZmFjZSkpIHsKICAgICAgICAgICAg
IG15ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU0M6OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVy
fShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
SlNDOjpFbmNvZGVkSlNWYWx1ZSAke2dldHRlcn0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKICAgICAgICAgfQogCiAgICAgICAg
IG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZSA9ICJzZXRKUyIgLiAkaW50ZXJmYWNlTmFtZSAu
ICJDb25zdHJ1Y3RvciI7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NvbnN0
cnVjdG9yRnVuY3Rpb25OYW1lfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOworICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgInZvaWQgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTtcbiIpOwog
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4iKTsKICAgICB9CkBAIC0yMjc4LDExICsy
Mjc4LDEwIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkYXR0
cmlidXRlQ29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRp
b25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIjaWYgJHthdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRhdHRy
aWJ1dGVDb25kaXRpb25hbFN0cmluZzsKIAotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJFbmNvZGVkSlNWYWx1ZSAke2dldEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSlc
biIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJFbmNvZGVkSlNWYWx1ZSAke2dl
dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7CiAKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoISRhdHRyaWJ1
dGUtPmlzU3RhdGljIHx8ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0
b3IkLykgewogICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0pIHsKQEAgLTI0ODQsMTcgKzI0ODMsMTcgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1
bmN0aW9uTmFtZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAKICAg
ICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHJv
eHlUb0pTT2JqZWN0In0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVu
Y29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Y29u
c3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAk
e2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9IHRvJHtjbGFzc05hbWV9KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgfSBlbHNpZiAoQ29uc3RydWN0b3JTaG91bGRC
ZU9uSW5zdGFuY2UoJGludGVyZmFjZSkpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1Zh
bHVlICR7Y29uc3RydWN0b3JGdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKVxuIik7CiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAke2NsYXNzTmFtZX0qIGRvbU9iamVjdCA9ICIgLiBHZXRDYXN0aW5nSGVscGVyRm9y
VGhpc09iamVjdCgkaW50ZXJmYWNlKSAuICIoSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xu
Iik7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiRW5jb2RlZEpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSlcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5jb2RlZEpTVmFs
dWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDwk
e2NsYXNzTmFtZX1Qcm90b3R5cGUqPihiYXNlVmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKiBkb21PYmplY3Qg
PSBqc0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTtcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaWYgKCFkb21PYmplY3QpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7XG4iKTsKQEAg
LTI1MTgsMTggKzI1MTcsMTUgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAg
ICBteSAkY29uc3RydWN0b3JGdW5jdGlvbk5hbWUgPSAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUg
LiAiQ29uc3RydWN0b3IiOwogCi0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2Nv
bnN0cnVjdG9yRnVuY3Rpb25OYW1lfShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjb25zdHJ1Y3RvckZ1
bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpO1xuIik7CiAgICAgICAgIGlmICgkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0pIHsK
LSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShiYXNlVmFs
dWUpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFt
ZX0qIGRvbU9iamVjdCA9IHRvJHtjbGFzc05hbWV9KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTtcbiIpOwogICAgICAgICB9IGVsc2lmIChDb25zdHJ1Y3RvclNob3VsZEJlT25JbnN0YW5jZSgk
aW50ZXJmYWNlKSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VE
X1BBUkFNKGJhc2VWYWx1ZSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICR7Y2xhc3NOYW1lfSogZG9tT2JqZWN0ID0gIiAuIEdldENhc3RpbmdIZWxwZXJGb3JUaGlz
T2JqZWN0KCRpbnRlcmZhY2UpIC4gIihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7XG4iKTsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAke2NsYXNzTmFtZX1Qcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
JHtjbGFzc05hbWV9UHJvdG90eXBlKj4oYmFzZVZhbHVlKTtcbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90eXBlKiBkb21PYmplY3QgPSBq
c0R5bmFtaWNDYXN0PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkge1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTtcbiIpOwpAQCAtMjYxNiwxMiAr
MjYxMiwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGF0
dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0
aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiI2lmICR7YXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkYXR0
cmlidXRlQ29uZGl0aW9uYWxTdHJpbmc7CiAKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAidm9pZCAke3B1dEZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiB0aGlzVmFsdWUiKSBpZiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKVxuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtwdXRGdW5jdGlvbk5hbWV9KEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7XG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpO1xuIikgaWYg
ISRhdHRyaWJ1dGUtPmlzU3RhdGljOwogICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRlLT5pc1N0
YXRpYykgewogICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tUHJveHlUb0pTT2JqZWN0In0pIHsKICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiBjYXN0ZWRUaGlzID0gdG8ke2NsYXNz
TmFtZX0oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpO1xuIik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDkgKzM5LDkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGpzVGVzdAogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotdm9pZCBzZXRKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRp
bmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1
Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK3ZvaWQgc2V0SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xh
c3MgSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5h
bE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNDQsMTAgKzE0NCw5IEBAIGJvb2wgSlNUZXN0QWN0aXZl
RE9NT2JqZWN0OjpnZXRPd25Qcm9wZXIKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdEV4Y2l0aW5nQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0RXhjaXRpbmdBdHRyKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsK
ICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RBY3RpdmVET01PYmplY3Qq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CkBAIC0xNjEsNyArMTYwLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0QWN0aXZlRE9NT2JqZWN0
RXhjaQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICBKU1Rlc3RBY3RpdmVET01PYmplY3QqIGRvbU9iamVjdCA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQpAQCAtMTcxLDEwICsxNzAsOSBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RBY3RpdmVET01PYmplY3RDb25zCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21P
YmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lk
IHNldEpTVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBV
TlVTRURfUEFSQU0oYmFzZVZhbHVlKTsKICAgICBKU1Rlc3RBY3RpdmVET01PYmplY3QqIGRvbU9i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAgICAg
ICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTk2MjM4KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpT
Tm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTE5LDE5ICsxMTksMTggQEAgdm9pZCBKU1Rl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvcgogICAgIHRoaXNPYmplY3QtPkpTVGVzdENs
YXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yOjp+SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29u
c3RydWN0b3IoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0Q2xhc3NXaXRoSlNCdWlsdGlu
Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZh
bHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RD
bGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSo+KGJh
c2VWYWx1ZSk7CisgICAgSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5
cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29u
c3RydWN0b3JQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3Qo
KSkpOwogfQogCi12b2lkIHNldEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpT
VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTVGVzdENsYXNzV2l0aEpTQnVp
bHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAg
ICBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3Rv
dHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRv
bU9iamVjdCkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJl
dHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNv
bnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0
cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsOCAr
MzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdENv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0Q3VzdG9tQ29uc3RydWN0
b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VP
YmplY3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9J
bnRlcmZhY2VPYmplY3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RDdXN0b21Db25zdHJ1
Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmlu
YWxPYmplY3QgewogcHVibGljOgpAQCAtMTEzLDkgKzExMyw5IEBAIHZvaWQgSlNUZXN0Q3VzdG9t
Q29uc3RydWN0b3JXaXRoTm9JbnRlcmYKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RDdXN0b21Db25z
dHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdDo6fkpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0
aE5vSW50ZXJmYWNlT2JqZWN0KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbUNv
bnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZh
Y2VPYmplY3RQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9t
Q29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RQcm90b3R5cGUqPihiYXNlVmFsdWUpOwor
ICAgIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBl
KiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5v
SW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwog
ICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0
ZSk7CiAgICAgSlNWYWx1ZSBjb25zdHJ1Y3RvciA9IEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0
aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3I6OmNyZWF0ZShzdGF0ZS0+dm0oKSwgSlNUZXN0
Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKHN0YXRlLT52bSgpLCAqZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgZG9tT2Jq
ZWN0LT5nbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpLCAqanNDYXN0PEpTRE9NR2xv
YmFsT2JqZWN0Kj4oZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwpAQCAtMTI0LDExICsxMjQs
MTAgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaQogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoY29uc3RydWN0b3IpOwogfQogCi12b2lkIHNldEpTVGVzdEN1c3Rv
bUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9y
V2l0aE5vSW50ZXJmYWNlT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
SlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50
ZXJmYWNlT2JqZWN0UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEN1
c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0UHJvdG90eXBlKj4oYmFzZVZhbHVl
KTsKKyAgICBKU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdFByb3Rv
dHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RDdXN0b21Db25zdHJ1Y3Rvcldp
dGhOb0ludGVyZmFjZU9iamVjdFByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVF
cnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsOCArMzgsOCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwganNUZXN0CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RD
dXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQg
c2V0SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlclByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qg
ewogcHVibGljOgpAQCAtMTUxLDE5ICsxNTEsMTggQEAgYm9vbCBKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlcjo6Z2V0T3duUHJvcAogICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RDdXN0b21OYW1lZEdldHRl
cjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkp
KTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKLSAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSo+KGJhc2VWYWx1
ZSk7CisgICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAg
ICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDEwICszNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENv
bnN0cnVjdG9yQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RFdmVudENvbnN0cnVjdG9yQXR0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
dm9pZCBzZXRKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckF0dHIyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpT
VGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RFdmVudENv
bnN0cnVjdG9yUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJs
aWM6CkBAIC0xNTYsMTAgKzE1Niw5IEBAIHZvaWQgSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6ZGVz
dHJveShKU0MKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3RFdmVudENvbnN0cnVjdG9yOjp+SlNUZXN0
RXZlbnRDb25zdHJ1Y3RvcigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0
cnVjdG9yQXR0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEV2
ZW50Q29uc3RydWN0b3JBdHRyMShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0RXZlbnRDb25zdHJ1Y3RvciogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
RXZlbnRDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNzEsMTAgKzE3MCw5IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHQKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RFdmVudENvbnN0cnVjdG9yQXR0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIGpzVGVzdEV2ZW50Q29uc3RydWN0b3JBdHRyMihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3Rh
dGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNW
YWx1ZSk7CiAgICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xODYsMTkgKzE4NCwxOCBA
QCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQXR0CiB9CiAKIAotRW5jb2Rl
ZEpTVmFsdWUganNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAg
SlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rl
c3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEV2ZW50Q29uc3RydWN0
b3I6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgp
KSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RFdmVudENvbnN0
cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwotICAgIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7
CisgICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAgICAgICB0
aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRUYXJnZXQuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00Nyw4ICs0Nyw4IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rl
c3QKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEV2ZW50VGFy
Z2V0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RFdmVudFRhcmdl
dENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RFdmVudFRhcmdldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RFdmVudFRhcmdldENvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xNjcsMTkgKzE2NywxOCBAQCBib29s
IEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRPd25Qcm9wZXJ0eVNsCiAgICAgcmV0dXJuIEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsK
IH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0RXZlbnRUYXJnZXRDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAg
ICBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0RXZlbnRU
YXJnZXRQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0RXZlbnRUYXJn
ZXRQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21P
YmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRDb25zdHJ1Y3RvcihzdGF0
ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTVGVz
dEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCit2b2lkIHNldEpTVGVzdEV2ZW50VGFyZ2V0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwot
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90
eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBl
Kj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSogZG9tT2JqZWN0
ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzMsOSArMzMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uTmFtZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEV4
Y2VwdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSA6
IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTM0LDEwICsxMzQs
OSBAQCBib29sIEpTVGVzdEV4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RFeGNlcHRpb24qIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdEV4Y2VwdGlvbio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNDksMTkgKzE0OCwx
OCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RFeGNlcHRpb25OYW1lKEV4ZWNTCiB9CiAKIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVzdEV4Y2Vw
dGlvblByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNlcHRpb25Q
cm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSogZG9t
T2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpT
VGVzdEV4Y2VwdGlvbjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xv
YmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0RXhjZXB0
aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwotICAgIEpTVGVzdEV4Y2VwdGlvblByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RFeGNlcHRpb25Qcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdEV4Y2Vw
dGlvblByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RFeGNlcHRpb25Q
cm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFkb21PYmplY3QpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAg
ICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3Bw
CShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDggKzMxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9y
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBl
IDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMDgsMTkgKzEw
OCwxOCBAQCB2b2lkIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmRlc3Ryb3koCiAgICAgdGhp
c09iamVjdC0+SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZTo6fkpTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGUoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3Rv
dHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
UHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJv
dG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGVQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21P
YmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmdldENvbnN0cnVj
dG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAKLXZvaWQg
c2V0SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlQ29u
c3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAg
IEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7Cisg
ICAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAgICAg
ICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03OCw1MSArNzgsNTEgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVz
dAogLy8gQXR0cmlidXRlcwogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
SW1wbGVtZW50c1N0YXRpY1JlYWRPbmx5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW1wbGVtZW50c1N0YXRpY1JlYWRP
bmx5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRp
dGlvbjIzKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcklt
cGxlbWVudHNTdGF0aWNBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0SW50ZXJm
YWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3RhdGljQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3Rh
dGljQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3Rh
dGljQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNT
dHIxKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
SW1wbGVtZW50c1N0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50c1N0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1l
bnRzU3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50
ZXJmYWNlSW1wbGVtZW50c1N0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNT
dHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRp
b24yMykKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0cjMo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMyhK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1w
bGVtZW50c1N0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIzKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAj
ZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzTm9kZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05v
ZGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFk
T25seUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY1JlYWRPbmx5QXR0cihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKICNlbmRpZgog
I2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRpY0F0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1
cHBsZW1lbnRhbFN0YXRpY0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbFN0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25k
aXRpb24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
U3RyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVy
ZmFjZVN1cHBsZW1lbnRhbFN0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRh
bFN0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxT
dHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
U3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJm
YWNlU3VwcGxlbWVudGFsU3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFs
U3RyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5v
ZGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxO
b2RlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxO
b2RlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CiAjZW5kaWYKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNl
Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNs
YXNzIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewogcHVibGljOgpAQCAtNDA0LDEwICs0MDQsOSBAQCB2b2lkIEpTVGVzdEludGVyZmFjZTo6
ZGVzdHJveShKU0M6OkpTQ2VsCiB9CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJM
RShDb25kaXRpb24yMykKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
SW1wbGVtZW50c1N0YXRpY1JlYWRPbmx5QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3RhdGljUmVhZE9u
bHlBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNs
b3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1ZhbHVlIHJlc3Vs
dCA9IGpzTnVtYmVyKFRlc3RJbnRlcmZhY2U6OmltcGxlbWVudHNTdGF0aWNSZWFkT25seUF0dHIo
KSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwpAQCAtNDE2LDEwICs0MTUs
OSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvCiAjZW5kaWYKIAog
I2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotRW5jb2RlZEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3RhdGljQXR0cihFeGVj
U3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0
b3JJbXBsZW1lbnRzU3RhdGljQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAg
IFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNWYWx1ZSByZXN1bHQgPSBqc1N0cmluZ1dpdGhDYWNoZShzdGF0ZSwgVGVzdEludGVyZmFj
ZTo6aW1wbGVtZW50c1N0YXRpY0F0dHIoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShy
ZXN1bHQpOwpAQCAtNDI4LDEwICs0MjYsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZh
Y2VDb25zdHJ1Y3RvCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxF
KENvbmRpdGlvbjIzKQotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c1N0
cjEoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUlt
cGxlbWVudHNTdHIxKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RJ
bnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CkBAIC00NDUsMTAgKzQ0Miw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUlt
cGxlbWVudHMKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMjMpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRzU3RyMihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50c1N0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0o
c2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdEludGVy
ZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
QEAgLTQ2MiwxMCArNDU4LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVt
ZW50cwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRp
b24yMykKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIzKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRz
U3RyMyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90
QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0SW50ZXJmYWNl
KiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAt
NDc3LDEwICs0NzIsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJbXBsZW1lbnRz
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIz
KQotRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2Rl
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNl
KTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC00OTQs
MTAgKzQ4OCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUltcGxlbWVudHMKICNl
bmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvclN1cHBsZW1lbnRhbFN0YXRp
Y1JlYWRPbmx5QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50YWxTdGF0aWNSZWFkT25seUF0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAg
IFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1iZXIo
V2ViQ29yZTo6VGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsU3RhdGljUmVhZE9ubHlBdHRy
KCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTUwNiwxMCArNDk5
LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0bwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3JTdXBwbGVtZW50YWxTdGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBXZWJDb3Jl
OjpUZXN0U3VwcGxlbWVudGFsOjpzdXBwbGVtZW50YWxTdGF0aWNBdHRyKCkpOwogICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKQEAgLTUxOCwxMCArNTEwLDkgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3RydWN0bwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTUzNSwxMCArNTI2LDkgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTU1MiwxMCArNTQyLDkgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTU2NywxMCArNTU2LDkgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudAogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdElu
dGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFN
KHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwogICAgIEpTVGVzdEludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0SW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTU4MywxOSArNTcxLDE4IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdEludGVyZmFjZVN1cHBsZW1lbnQKIAogI2VuZGlmCiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
Kj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqIGRvbU9iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RJbnRl
cmZhY2U6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVj
dCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBF
bmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKLSAgICBK
U1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
SW50ZXJmYWNlUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RJbnRlcmZhY2VQcm90
b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2Jq
ZWN0KSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJu
OwpAQCAtNjI1LDEwICs2MTIsOSBAQCB2b2lkIEpTVGVzdEludGVyZmFjZTo6cHV0QnlJbmRleChK
U0NlbGwqCiB9CiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24y
MykKLXZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JJbXBsZW1lbnRzU3RhdGljQXR0
cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JJbXBsZW1lbnRzU3RhdGljQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKGJhc2VPYmplY3QpOwogICAgIFN0cmluZyBuYXRpdmVWYWx1ZSA9IHZhbHVlLnRvU3RyaW5n
KHN0YXRlKS0+dmFsdWUoc3RhdGUpOwogICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0
aW9uKCkpKQogICAgICAgICByZXR1cm47CkBAIC02MzgsMTAgKzYyNCwxMCBAQCB2b2lkIHNldEpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9ySW1wbGVtCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25k
aXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotdm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VJ
bXBsZW1lbnRzU3RyMihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lk
IHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVT
RURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZh
Y2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0SW50
ZXJmYWNlIiwgImltcGxlbWVudHNTdHIyIik7CkBAIC02NTcsMTAgKzY0MywxMCBAQCB2b2lkIHNl
dEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIyKEV4CiAjZW5kaWYKIAogI2lmIEVOQUJMRShD
b25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotdm9pZCBzZXRKU1Rlc3RJbnRlcmZh
Y2VJbXBsZW1lbnRzU3RyMyhFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2
b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBV
TlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRl
cmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0
SW50ZXJmYWNlIiwgImltcGxlbWVudHNTdHIzIik7CkBAIC02NzIsMTAgKzY1OCwxMCBAQCB2b2lk
IHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNTdHIzKEV4CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotdm9pZCBzZXRKU1Rlc3RJbnRl
cmZhY2VJbXBsZW1lbnRzTm9kZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Cit2b2lkIHNldEpTVGVzdEludGVyZmFjZUltcGxlbWVudHNOb2RlKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAg
ICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJU
ZXN0SW50ZXJmYWNlIiwgImltcGxlbWVudHNOb2RlIik7CkBAIC02OTEsMTAgKzY3Nyw5IEBAIHZv
aWQgc2V0SlNUZXN0SW50ZXJmYWNlSW1wbGVtZW50c05vZGUoRXgKICNlbmRpZgogCiAjaWYgRU5B
QkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpTVGVzdElu
dGVyZmFjZUNvbnN0cnVjdG9yU3VwcGxlbWVudGFsU3RhdGljQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3JTdXBwbGVtZW50
YWxTdGF0aWNBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7
CiAgICAgU3RyaW5nIG5hdGl2ZVZhbHVlID0gdmFsdWUudG9TdHJpbmcoc3RhdGUpLT52YWx1ZShz
dGF0ZSk7CiAgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCiAgICAgICAg
IHJldHVybjsKQEAgLTcwNCwxMCArNjg5LDEwIEBAIHZvaWQgc2V0SlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3JTdXBwbGUKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1lbnRhbFN0cjIo
RXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RJbnRl
cmZhY2VTdXBwbGVtZW50YWxTdHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFs
dWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFz
ZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0SW50ZXJm
YWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewog
ICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0SW50ZXJmYWNlIiwgInN1
cHBsZW1lbnRhbFN0cjIiKTsKQEAgLTcyMywxMCArNzA4LDEwIEBAIHZvaWQgc2V0SlNUZXN0SW50
ZXJmYWNlU3VwcGxlbWVudGFsU3RyMigKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEx
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpTVGVzdEludGVyZmFjZVN1cHBsZW1l
bnRhbFN0cjMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRK
U1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxTdHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURf
UEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNU
ZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJbnRlcmZhY2Uq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0SW50ZXJm
YWNlIiwgInN1cHBsZW1lbnRhbFN0cjMiKTsKQEAgLTczOCwxMCArNzIzLDEwIEBAIHZvaWQgc2V0
SlNUZXN0SW50ZXJmYWNlU3VwcGxlbWVudGFsU3RyMygKICNlbmRpZgogCiAjaWYgRU5BQkxFKENv
bmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi12b2lkIHNldEpTVGVzdEludGVyZmFj
ZVN1cHBsZW1lbnRhbE5vZGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
dm9pZCBzZXRKU1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQog
ewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAg
ICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7
CiAgICAgSlNUZXN0SW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJU
ZXN0SW50ZXJmYWNlIiwgInN1cHBsZW1lbnRhbE5vZGUiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEpTQnVpbHRpbkNvbnN0cnVj
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTEgKzM3LDExIEBAIEpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZUN1c3RvbShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0
cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNU
ZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlUldDdXN0b20oSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29u
c3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1
Y3RvckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVDdXN0b20oSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9t
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3Rv
bShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CiAKIGNsYXNzIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90eXBlIDogcHVibGljIEpT
Qzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMjUsMTAgKzEyNSw5IEBAIHZvaWQg
SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3I6OmRlc3Ryb3kKICAgICB0aGlzT2JqZWN0LT5KU1Rl
c3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6fkpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yKCk7CiB9
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0
ZUN1c3RvbShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWls
dGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRlQ3VzdG9tKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKICAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNvZGUo
dGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTM4LDEw
ICsxMzcsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvCiB9CiAK
IAotRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JUZXN0QXR0cmlidXRl
UldDdXN0b20oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0ZVJXQ3VzdG9tKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvciogY2FzdGVkVGhpcyA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3IqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTUx
LDE5ICsxNDksMTggQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SlNCdWlsdGluQ29uc3RydWN0bwog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUs
IFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUq
IGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90
b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yUHJvdG90
eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2Jq
ZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0
b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBz
ZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvckNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKLSAg
ICBKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RKU0J1aWx0aW5Db25zdHJ1Y3RvclByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7
CisgICAgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0SlNCdWlsdGluQ29uc3RydWN0b3JQcm90b3R5cGUqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAg
ICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkBAIC0xNzIs
MTAgKzE2OSwxMCBAQCB2b2lkIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yQ29uc3RyCiAg
ICAgZG9tT2JqZWN0LT5wdXREaXJlY3Qoc3RhdGUtPnZtKCksIHN0YXRlLT5wcm9wZXJ0eU5hbWVz
KCkuY29uc3RydWN0b3IsIHZhbHVlKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RKU0J1aWx0aW5Db25z
dHJ1Y3RvclRlc3RBdHRyaWJ1dGVSV0N1c3RvbShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
YmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9yVGVzdEF0dHJpYnV0
ZVJXQ3VzdG9tKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7Cisg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0SlNCdWlsdGluQ29uc3RydWN0
b3IqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdEpTQnVpbHRpbkNvbnN0cnVjdG9y
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdEpTQnVp
bHRpbkNvbnN0cnVjdG9yIiwgInRlc3RBdHRyaWJ1dGVSV0N1c3RvbSIpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAkocmV2aXNpb24gMTk2MjM4
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw4ICszOCw4IEBAIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKIAogLy8gQXR0cmlidXRlcwog
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1
Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lclByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3Qgewog
cHVibGljOgpAQCAtMTE2LDE5ICsxMTYsMTggQEAgdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyOjpkZXN0cgogICAgIHRoaXNPYmplY3QtPkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXI6On5KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewot
ICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSo+KGJhc2VW
YWx1ZSk7CisgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSogZG9tT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBl
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpnZXRDb25zdHJ1Y3RvcihzdGF0
ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKLSAgICBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqPihiYXNlVmFsdWUp
OworICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUqIGRvbU9iamVjdCA9
IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkp
IHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDE5NjIzOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENv
bnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsOCArMzMsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RO
YW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0
SlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5hbWVk
Q29uc3RydWN0b3JQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1
YmxpYzoKQEAgLTE0MywxOSArMTQzLDE4IEBAIHZvaWQgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6
ZGVzdHJveShKU0MKICAgICB0aGlzT2JqZWN0LT5KU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjp+SlNU
ZXN0TmFtZWRDb25zdHJ1Y3RvcigpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZENv
bnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE5h
bWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3ROYW1lZENvbnN0cnVjdG9y
UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQ29uc3RydWN0
b3JQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JQcm90
b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3RvclBy
b3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVj
dCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0Q29uc3RydWN0b3Ioc3Rh
dGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAgSlNUZXN0TmFtZWRD
b25zdHJ1Y3RvclByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3ROYW1lZENvbnN0
cnVjdG9yUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5hbWVkQ29u
c3RydWN0b3JQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUp
OwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCShyZXZpc2lvbiAxOTYyMzgpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDEwICszNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlTmFtZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE5vZGVOYW1lKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owotdm9pZCBzZXRKU1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVOYW1lKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3ROb2RlTmFtZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb2RlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpT
VGVzdE5vZGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3ROb2RlUHJvdG90eXBlIDogcHVi
bGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC0xMTYsMTAgKzExNiw5IEBA
IEpTT2JqZWN0KiBKU1Rlc3ROb2RlOjpnZXRQcm90b3R5cGUoVk0mIHYKICAgICByZXR1cm4gZ2V0
RE9NUHJvdG90eXBlPEpTVGVzdE5vZGU+KHZtLCBnbG9iYWxPYmplY3QpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3ROb2RlTmFtZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUganNUZXN0Tm9kZU5hbWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVT
RURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE5vZGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vZGUqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtMTMxLDE5ICsxMzAsMTggQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZU5hbWUoRXhlY1N0
YXRlKgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vZGVDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVz
dE5vZGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9kZVByb3Rv
dHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0Tm9kZVByb3RvdHlwZSogZG9tT2JqZWN0ID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3ROb2RlUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3ROb2RlOjpnZXRD
b25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQog
Ci12b2lkIHNldEpTVGVzdE5vZGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
LSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKLSAgICBKU1Rlc3ROb2RlUHJvdG90eXBlKiBk
b21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vZGVQcm90b3R5cGUqPihiYXNlVmFsdWUp
OworICAgIEpTVGVzdE5vZGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0Tm9kZVByb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7
CiAgICAgICAgIHJldHVybjsKQEAgLTE1MiwxMCArMTUwLDEwIEBAIHZvaWQgc2V0SlNUZXN0Tm9k
ZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSoKICAgICBkb21PYmplY3QtPnB1dERpcmVjdChzdGF0ZS0+
dm0oKSwgc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5jb25zdHJ1Y3RvciwgdmFsdWUpOwogfQogCi12
b2lkIHNldEpTVGVzdE5vZGVOYW1lKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgc2V0SlNUZXN0Tm9kZU5hbWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1
ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJB
TShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RO
b2RlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3ROb2RlKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAg
ICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE5vZGUiLCAibmFtZSIpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb25kZXRlcm1pbmlzdGljLmNwcAkocmV2aXNpb24gMTk2MjM4KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vbmRldGVy
bWluaXN0aWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxNyArNDUsMTcgQEAgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdAogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNSZWFk
b25seUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25k
ZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1dyaXRlYWJsZUF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owotdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1dyaXRlYWJs
ZUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRl
dGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci12b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9u
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0
ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNHZXR0ZXJFeGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNHZXR0
ZXJFeGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJt
aW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci12b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRl
dGVybWluaXN0aWNSZWFkb25seUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRl
dGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljV3JpdGVhYmxlQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNXcml0ZWFibGVBdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0
aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNF
eGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0
aWNOb25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0Tm9u
ZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNHZXR0ZXJFeGNlcHRpb25BdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljU2V0
dGVyRXhjZXB0aW9uQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVy
bWluaXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE5vbmRldGVybWluaXN0aWNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5p
c3RpY0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5
cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKIHB1YmxpYzoKQEAgLTEzNywxMCAr
MTM3LDkgQEAgdm9pZCBKU1Rlc3ROb25kZXRlcm1pbmlzdGljOjpkZXN0cm95KEpTQwogICAgIHRo
aXNPYmplY3QtPkpTVGVzdE5vbmRldGVybWluaXN0aWM6On5KU1Rlc3ROb25kZXRlcm1pbmlzdGlj
KCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1p
bmlzdGljUmVhZG9ubHlBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1JlYWRvbmx5QXR0cihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBA
IC0xNzIsMTAgKzE3MSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNO
b24KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJt
aW5pc3RpY1dyaXRlYWJsZUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljV3JpdGVhYmxlQXR0cihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CkBAIC0yMDcsMTAgKzIwNSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0
aWNOb24KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0
ZXJtaW5pc3RpY0V4Y2VwdGlvbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RC
YXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1Zh
bHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljRXhjZXB0aW9uQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
IHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
YyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyo+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CkBAIC0yNDIsMTAgKzIzOSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWlu
aXN0aWNOb24KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9u
ZGV0ZXJtaW5pc3RpY0dldHRlckV4Y2VwdGlvbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pbmlzdGljR2V0dGVy
RXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
Tm9uZGV0ZXJtaW5pc3RpYyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0
ZXJtaW5pc3RpYyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0yODEsMTAgKzI3Nyw5IEBAIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE5vbmRldGVybWluaXN0aWNOb24KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25k
ZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY1NldHRlckV4Y2VwdGlvbkF0dHIoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRl
cm1pbmlzdGljU2V0dGVyRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0zMTYsMTkgKzMxMSwxOCBAQCBF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uCiB9CiAKIAotRW5jb2RlZEpT
VmFsdWUganNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNU
ZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RO
b25kZXRlcm1pbmlzdGljUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE5vbmRldGVybWluaXN0aWNQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0
YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTVGVzdE5vbmRldGVybWluaXN0aWM6
OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7
CiB9CiAKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY0NvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlz
dGljQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwotICAgIEpTVGVzdE5vbmRldGVybWluaXN0aWNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSo+KGJhc2VWYWx1ZSk7Cisg
ICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3ROb25kZXRlcm1pbmlzdGljUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAgICAgICB0aHJv
d1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzM3LDEwICszMzEsMTAg
QEAgdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljQ29uc3RydWN0bwogICAgIGRvbU9iamVj
dC0+cHV0RGlyZWN0KHN0YXRlLT52bSgpLCBzdGF0ZS0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVj
dG9yLCB2YWx1ZSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVy
bWluaXN0aWNXcml0ZWFibGVBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNXcml0ZWFi
bGVBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpYyo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAg
ICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3ROb25kZXRlcm1pbmlzdGlj
IiwgIm5vbmRldGVybWluaXN0aWNXcml0ZWFibGVBdHRyIik7CkBAIC0zNTQsMTAgKzM0OCwxMCBA
QCB2b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1pCiB9CiAKIAotdm9pZCBz
ZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY0V4Y2VwdGlvbkF0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3ROb25kZXRl
cm1pbmlzdGljTm9uZGV0ZXJtaW5pc3RpY0V4Y2VwdGlvbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAg
IFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
ICAgICBKU1Rlc3ROb25kZXRlcm1pbmlzdGljKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3ROb25kZXRlcm1pbmlzdGljKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJy
b3IoKnN0YXRlLCAiVGVzdE5vbmRldGVybWluaXN0aWMiLCAibm9uZGV0ZXJtaW5pc3RpY0V4Y2Vw
dGlvbkF0dHIiKTsKQEAgLTM3MSwxMCArMzY1LDEwIEBAIHZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJt
aW5pc3RpY05vbmRldGVybWkKIH0KIAogCi12b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNO
b25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE5vbmRldGVybWluaXN0aWNOb25kZXRlcm1p
bmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVl
IHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE5v
bmRldGVybWluaXN0aWMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE5vbmRldGVy
bWluaXN0aWMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZ
KCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJU
ZXN0Tm9uZGV0ZXJtaW5pc3RpYyIsICJub25kZXRlcm1pbmlzdGljR2V0dGVyRXhjZXB0aW9uQXR0
ciIpOwpAQCAtMzg4LDEwICszODIsMTAgQEAgdm9pZCBzZXRKU1Rlc3ROb25kZXRlcm1pbmlzdGlj
Tm9uZGV0ZXJtaQogfQogCiAKLXZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVy
bWluaXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBi
YXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0Tm9uZGV0ZXJtaW5pc3RpY05vbmRldGVybWluaXN0aWNT
ZXR0ZXJFeGNlcHRpb25BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9i
amVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0Tm9uZGV0ZXJt
aW5pc3RpYyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0Tm9uZGV0ZXJtaW5pc3Rp
Yyo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3ROb25k
ZXRlcm1pbmlzdGljIiwgIm5vbmRldGVybWluaXN0aWNTZXR0ZXJFeGNlcHRpb25BdHRyIik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MCwx
NTkgKzE4MCwxNTkgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdAog
CiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlM
b25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
YWRPbmx5U3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialJlYWRPbmx5VGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRp
Y1N0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3Rv
clN0YXRpY1N0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RTdWJPYmpFbmFibGVkQnlTZXR0aW5nQ29uc3RydWN0
b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5
U2V0dGluZ0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpFbnVtQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakVu
dW1BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpC
eXRlQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakJ5dGVBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPY3RldEF0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpPY3RldEF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci12b2lkIHNldEpTVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owotdm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
dm9pZCBzZXRKU1Rlc3RPYmpMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0
SlNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lk
IHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZv
aWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqVGVzdE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRK
U1Rlc3RPYmpUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0
SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpYTUxPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0
SlNUZXN0T2JqWE1MT2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQ3Jl
YXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFk
T25seVN5bWJvbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5U3ltYm9sQXR0cihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3Jh
bEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3Jh
bEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
ZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNU
ZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJp
bmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5n
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0
T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRD
dXN0b21VUkxBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tVVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpU
eXBlZEFycmF5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRK
U1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2Fn
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0
SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3Nh
Z2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbldpdGhNZXNzYWdlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12
b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpTdHJpY3RUeXBlQ2hlY2tpbmdBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
dm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RUeXBlQ2hlY2tpbmdBdHRyaWJ1dGUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPbmZvbyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lk
IHNldEpTVGVzdE9iak9uZm9vKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9p
ZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNhbGxX
aXRoQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqV2l0aENhbGxX
aXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12
b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpT
VGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNj
cmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
V2l0aFNwYWNlc0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialdp
dGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2Ny
aXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQg
c2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlMb25n
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljU3RyaW5nQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yVGVzdFN1Yk9iaihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rv
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKK3ZvaWQgc2V0SlNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1Y3Rv
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpFbnVtQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNU
ZXN0T2JqRW51bUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQnl0ZUF0dHIo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Cit2b2lkIHNldEpTVGVzdE9iakJ5dGVBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iak9jdGV0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqT2N0ZXRBdHRyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqU2hvcnRBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkU2hvcnRBdHRyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9p
ZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZFNob3J0QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpMb25nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpMb25n
TG9uZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRMb25nTG9u
Z0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialN0cmlu
Z0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdE9iakF0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lk
IHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
akxlbmllbnRUZXN0T2JqQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdHRy
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpT
VGVzdE9ialhNTE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RPYmpDcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVhZE9ubHlTeW1ib2xBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25z
dHJ1Y3RvclN0YXRpY1JlYWRPbmx5U3ltYm9sQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3Ry
aW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3Jh
bEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0dHIoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVz
dE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alJlZmxlY3RlZFVSTEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFVSTEF0dHIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQg
c2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialJl
ZmxlY3RlZEN1c3RvbUludGVncmFsQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpSZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tQm9vbGVhbkF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVj
dGVkQ3VzdG9tVVJMQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tVVJMQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQg
c2V0SlNUZXN0T2JqVHlwZWRBcnJheUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0
cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0
aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RUeXBlQ2hl
Y2tpbmdBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialN0cmljdFR5cGVDaGVja2luZ0F0dHJp
YnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBz
ZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak9u
Zm9vKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwordm9pZCBzZXRKU1Rlc3RPYmpPbmZvbyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3Jp
cHRTdGF0ZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoQ2Fs
bFdpdGhBbmRTZXR0ZXJDYWxsV2l0aEF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aENh
bGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpT
VGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlcyhKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQg
c2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFp
c2VzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0
ZVJhaXNlcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpT
VmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdp
dGhTcGFjZXNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Cit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1
dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1Zh
bHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9u
MikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNW
YWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2
b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShD
b25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKQotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owotdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI0Q29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9y
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIp
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3Rv
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
Q29uZGl0aW9uYWxBdHRyNUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI1Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OkVuY29kZWRKU1ZhbHVlKTsKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyNkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpT
VGVzdE9iakNvbmRpdGlvbmFsQXR0cjZDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlmCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQW55QXR0cmlidXRlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQW55QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakltbXV0YWJsZVBvaW50KEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmF3YmVycnkoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owotdm9pZCBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RGbG9hdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lk
IHNldEpTVGVzdE9ialN0cmljdEZsb2F0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iaklkKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2Jq
SWQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakhhc2go
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlND
OjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZXBsYWNlYWJs
ZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9ialJlcGxhY2VhYmxl
QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1K
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5n
QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRK
U1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5nVmFsdWUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNl
cnZlZEVudW1UeXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cmlidXRl
V2l0aFJlc2VydmVkRW51bVR5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQg
c2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci1KU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQ
cm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhYmxlQXR0cmli
dXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdE9iakNvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6
RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRy
aWJ1dGUxKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVz
dE9iakFueUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50
RG9jdW1lbnQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQb2ludChKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iakltbXV0YWJsZVBvaW50KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludChKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwor
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJhd2JlcnJ5KEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RP
YmpTdHJhd2JlcnJ5KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmljdEZsb2F0
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RGbG9hdChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpEZXNjcmlwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSWQoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2
b2lkIHNldEpTVGVzdE9iaklkKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakhhc2go
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9p
ZCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iak51bGxhYmxlU3RyaW5nQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqTnVsbGFi
bGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
TnVsbGFibGVTdHJpbmdWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFs
dWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CitKU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBz
ZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2Jq
UHV0Rm9yd2FyZHNBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHV0
Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNO
dWxsYWJsZUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1
Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0T2Jq
UHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7CiBwdWJsaWM6CkBAIC03
NDIsMTAgKzc0Miw5IEBAIGJvb2wgSlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmoK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5
TG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJl
YWRPbmx5TG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURf
UEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTc1
NywxMCArNzU2LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlMb25nQXR0cgog
fQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXR0cihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRy
KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNl
KTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC03NzIsMTAgKzc3MCw5IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlYWRPbmx5U3RyaW5nQXQKIH0KIAogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
T2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVO
VVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC03ODcsMzAgKzc4NCwyNyBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWFkT25seVRlc3RPYmpBCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seUxvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9u
Z0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xv
dEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVmFsdWUgcmVzdWx0
ID0ganNOdW1iZXIoVGVzdE9iajo6c3RhdGljUmVhZE9ubHlMb25nQXR0cigpKTsKICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAg
VU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmdXaXRo
Q2FjaGUoc3RhdGUsIFRlc3RPYmo6OnN0YXRpY1N0cmluZ0F0dHIoKSk7CiAgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNv
bnN0cnVjdG9yVGVzdFN1Yk9iaihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2Us
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CkBAIC04MjAsMTAgKzgxNCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNv
bnN0cnVjdG9yVGVzdFMKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpUZXN0U3ViT2Jq
RW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsK
ICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC04MzgsMTAgKzgzMSw5IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RTdWJPYmpFbmFibGUKIH0KIAogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpFbnVtQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqRW51bUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBV
TlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
QEAgLTg1MywxMCArODQ1LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRW51bUF0dHIoRXhl
Y1N0YQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakJ5dGVBdHRyKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpCeXRlQXR0cihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtODY4LDEwICs4NTksOSBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpCeXRlQXR0cihFeGVjU3RhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqT2N0ZXRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpPY3RldEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTg4Mywx
MCArODczLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT2N0ZXRBdHRyKEV4ZWNTdAogfQog
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialNob3J0QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBK
U09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CkBAIC04OTgsMTAgKzg4Nyw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialNob3J0QXR0cihFeGVjU3QKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNp
Z25lZFNob3J0QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBV
TlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
QEAgLTkxMywxMCArOTAxLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVW5zaWduZWRTaG9y
dEF0dAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMb25nQXR0cihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtOTI4LDEwICs5MTUsOSBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpMb25nQXR0cihFeGVjU3RhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqTG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVT
RURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAg
LTk0MywxMCArOTI5LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTG9uZ0xvbmdBdHRyKEV4
ZQogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdBdHRyKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdM
b25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShz
bG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtOTU4LDEwICs5
NDMsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpVbnNpZ25lZExvbmdMb25nCiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQor
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewpAQCAtOTczLDEwICs5NTcsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpTdHJpbmdBdHRyKEV4ZWNTCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVGVzdE9i
akF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RP
YmpBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNs
b3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC05ODgsMTAgKzk3
MSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialRlc3RPYmpBdHRyKEV4ZWMKIH0KIAogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpMZW5pZW50VGVzdE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTAwMywxMCArOTg1LDkgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqTGVuaWVudFRlc3RPYmpBdAogfQogCiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialhNTE9iakF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBV
TlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
QEAgLTEwMTgsMTAgKzk5OSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialhNTE9iakF0dHIo
RXhlY1MKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDcmVhdGUoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTAzMywxMCArMTAxMyw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpSZWFkT25seVN5bWJvbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IGpzVGVzdE9ialJlYWRPbmx5U3ltYm9sQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUp
OwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewpAQCAtMTA0OCwyMCArMTAyNywxOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpS
ZWFkT25seVN5bWJvbEF0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0
b3JTdGF0aWNSZWFkT25seVN5bWJvbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGljUmVhZE9ubHlTeW1ib2xBdHRyKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewog
ICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1ZhbHVlIHJlc3VsdCA9IFN5bWJvbDo6
Y3JlYXRlKHN0YXRlLT52bSgpLCAqKFRlc3RPYmo6OnN0YXRpY1JlYWRPbmx5U3ltYm9sQXR0cigp
KS51aWQoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAg
IFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEwNzMsMTAgKzEwNTAsOSBAQCBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBCiB9CiAKIAotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2Jq
ZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5V
U0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNF
RF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEwODgsMTAgKzEwNjQsOSBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQog
ewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsK
ICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMTAzLDEwICsxMDc4LDkgQEAg
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZQogfQogCiAKLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpT
T2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBV
TlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5V
U0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTExOCwxMCArMTA5Miw5IEBAIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZEJvb2xlYW4KIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90
QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CkBAIC0xMTMzLDEwICsxMTA2LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVmbGVjdGVkVVJMQXR0cgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBV
TlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
QEAgLTExNDgsMTAgKzExMjAsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRT
dHJpbmdBCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50
ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpS
ZWZsZWN0ZWRDdXN0b21JbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
LSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKQEAgLTExNjMsMTAgKzExMzQsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21JCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUmVmbGVjdGVkQ3Vz
dG9tQm9vbGVhbkF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CkBAIC0xMTc4LDEwICsxMTQ4LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVmbGVjdGVkQ3VzdG9tQgogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbVVSTEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
LSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUp
OwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKQEAgLTExOTMsMTAgKzExNjIsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZs
ZWN0ZWRDdXN0b21VCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVHlwZWRBcnJheUF0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialR5cGVkQXJy
YXlBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNs
b3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMjA4LDEwICsx
MTc2LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqVHlwZWRBcnJheUF0dHIoRQogfQogCiAK
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90
QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTIyNSwxMCArMTE5
Miw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXgKIH0KIAogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdl
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CkBAIC0xMjQyLDEwICsxMjA4LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldp
dGhHZXR0ZXJFeAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAg
IFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewpAQCAtMTI1NywxMCArMTIyMiw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRo
U2V0dGVyRXgKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4
Y2VwdGlvbldpdGhNZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNF
RF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURf
UEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5M
SUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xMjcyLDEwICsxMjM2LDkgQEAgRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2Jq
ZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTI4OSwxMCArMTI1Miw5IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialN0cmluZ0F0dHJXaXRoR2UKIH0KIAogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNl
cHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xv
dEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEzMDQsMTAgKzEy
NjYsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNlCiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaWN0VHlwZUNoZWNraW5nQXR0cmlidXRlKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RUeXBlQ2hlY2tp
bmdBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEzMTks
MTAgKzEyODAsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RUeXBlQ2hlY2tpCiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3VzdG9tQXR0cihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTMzMiwxMCArMTI5Miw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakN1c3RvbUF0dHIoRXhlY1MKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpPbmZvbyhFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqT25m
b28oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJh
c2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEzNDYsMTAgKzEzMDUs
OSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpPbmZvbyhFeGVjU3RhdGUqCiB9CiAKIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1
dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJh
c2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTEzNjEsMTAgKzEzMTks
OSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBCiB9CiAKIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1
dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhDYWxs
V2l0aEFuZFNldHRlckNhbGxXaXRoQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CkBAIC0xMzc2LDEwICsxMzMzLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
V2l0aENhbGxXaXRoQW5kUwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTM5NCwxMCArMTM1MCw5IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXQKIH0KIAogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShz
bG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTQxMSwxMCAr
MTM2Niw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRTdGF0ZUEKIH0KIAog
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJp
YnV0ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
V2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE0MzEsMTAgKzEzODUsOSBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVj
U3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewpAQCAtMTQ0OSwxMCArMTQwMiw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9ialdpdGhTY3JpcHRFeGVjdXQKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9Q
QVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFS
QU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNDY5LDEwICsxNDIxLDkgQEAgRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
aldpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmli
dXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZShFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTQ4NywxMCArMTQzOCw5IEBAIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9ialdpdGhTY3JpcHRFeGVjdXQKIH0KIAogCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpXaXRoU2NyaXB0QXJn
dW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+
KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRo
aXMpKSB7CkBAIC0xNTAzLDEwICsxNDUzLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqV2l0
aFNjcmlwdEFyZ3VtZQogCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNs
b3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0
YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKQEAgLTE1MjAsMTAgKzE0NjksOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpDb25kaXRpb25hbEF0dHIxCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBF
TkFCTEUoQ29uZGl0aW9uMikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlv
bmFsQXR0cjIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0o
c2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE1MzcsMTAg
KzE0ODUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLUVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE1NTQsMTAgKzE1MDEsOSBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzCiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRp
b24xKQotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25h
bEF0dHI0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVT
RURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAg
LTE1NjksMTAgKzE1MTUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0
dHI0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9u
MikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyNUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VE
X1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0x
NTg0LDEwICsxNTI5LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRy
NQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIp
Ci1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0
cjZDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTU5
OCwxMCArMTU0Miw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjYK
IAogI2VuZGlmCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0
ZTEoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJh
c2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE2MTYsMTAgKzE1NTks
OSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxCiB9CiAKIAotRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihFeGVjU3RhdGUqIHN0YXRlLCBK
U09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1l
KQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTYzNCwxMCArMTU3Niw5IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakFueUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVO
VVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtMTY0OSwxMCArMTU5MCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakFueUF0dHJpYnV0
ZShFeGUKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVu
dChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFt
ZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFz
ZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVl
KSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTY2MywxMCArMTYwMyw5
IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVudCgKIH0KIAogCi1FbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RPYmpNdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0o
c3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rl
c3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewpAQCAtMTY3OCwxMCArMTYxNyw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVz
dE9iak11dGFibGVQb2ludChFeGUKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJbW11
dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
SW1tdXRhYmxlUG9pbnQoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURf
UEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE2
OTMsMTAgKzE2MzEsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpJbW11dGFibGVQb2ludChF
CiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeShFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyYXdiZXJyeShFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VE
X1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTcwOCwxMCArMTY0NSw5IEBAIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdE9ialN0cmF3YmVycnkoRXhlY1MKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RPYmpTdHJpY3RGbG9hdChFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNU
ZXN0T2JqU3RyaWN0RmxvYXQoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVT
RURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6
ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAg
LTE3MjMsMTAgKzE2NTksOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpY3RGbG9hdChF
eGVjCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24oRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakRlc2NyaXB0aW9uKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAg
IFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNzM4LDEwICsxNjczLDkgQEAgRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqRGVzY3JpcHRpb24oRXhlYwogfQogCiAKLUVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iaklkKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpJZChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90
QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTc1MywxMCArMTY4
Nyw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iaklkKEV4ZWNTdGF0ZSogc3QKIH0KIAogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpIYXNoKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpIYXNoKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CkBAIC0xNzY4LDEwICsxNzAxLDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqSGFzaChFeGVj
U3RhdGUqIAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmli
dXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZXBsYWNl
YWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTc4
MywxMCArMTcxNSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlcGxhY2VhYmxlQXR0cmkK
IH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJpYnV0ZShF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVEb3Vi
bGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFS
QU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE3OTgs
MTAgKzE3MjksOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0CiB9
CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVMb25nQXR0cmlidXRlKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRy
aWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xv
dEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE4MTMsMTAgKzE3
NDMsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyCiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0cmlidXRlKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BdHRy
aWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xv
dEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE4MjgsMTAgKzE3
NTcsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUJvb2xlYW5BCiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlU3RyaW5nQXR0cmli
dXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xODQzLDEwICsxNzcx
LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdBdAogfQogCiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdTZXR0
YWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTg1
OCwxMCArMTc4NSw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iak51bGxhYmxlTG9uZ1NldHQK
IH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1ZhbHVlKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ1Zh
bHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xODc1LDEwICsxODAx
LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYQogfQogCiAKLUVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CkBAIC0xODkwLDEwICsxODE1LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
QXR0cmlidXRlKEV4ZWNTdAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJpYnV0
ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFz
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTkwNSwxMCArMTgyOSw5IEBAIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE9iakF0dHJpYnV0ZVdpdGhSZXMKIH0KIAogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0
YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlz
VmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2Fz
dGVkVGhpcykpIHsKQEAgLTE5MjAsMTAgKzE4NDMsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpQdXRGb3J3YXJkc0F0dHJpCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHV0Rm9y
d2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJh
c2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTkzNSwxOSArMTg1NywxOCBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpQdXRGb3J3YXJkc051bGxhCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVy
dHlOYW1lKQogewotICAgIEpTVGVzdE9ialByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdE9ialByb3Rv
dHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJl
dHVybiB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdE9iajo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFs
T2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShl
bmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTVGVzdE9i
alByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUq
PihiYXNlVmFsdWUpOworICAgIEpTVGVzdE9ialByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5h
bWljQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7
CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAgICAgIHRocm93Vk1UeXBlRXJy
b3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkBAIC0xOTU2LDEwICsxODc3LDkgQEAgdm9pZCBz
ZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIAogICAgIGRvbU9iamVjdC0+cHV0RGly
ZWN0KHN0YXRlLT52bSgpLCBzdGF0ZS0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCB2YWx1
ZSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0
YXRpY1N0cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKICAgICBTdHJpbmcgbmF0aXZlVmFsdWUgPSB2YWx1ZS50b1N0cmluZyhzdGF0ZSktPnZhbHVl
KHN0YXRlKTsKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTk2NywxMCArMTg4NywxMCBAQCB2b2lkIHNldEpTVGVzdE9iakNvbnN0
cnVjdG9yU3RhdGljU3RyaW5nCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpUZXN0U3ViT2JqRW5h
YmxlZEJ5U2V0dGluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqVGVzdFN1Yk9iakVuYWJsZWRCeVNldHRpbmdDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJUZXN0U3ViT2JqRW5hYmxlZEJ5U2V0dGluZyIpOwpAQCAtMTk4
MSwxMCArMTkwMSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialRlc3RTdWJPYmpFbmFibGVkQnlTZXR0
CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpFbnVtQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakVudW1BdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsK
LSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1
ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwg
ImVudW1BdHRyIik7CkBAIC0yMDAwLDEwICsxOTIwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqRW51
bUF0dHIoRXhlY1N0YXRlKiBzdGEKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakJ5dGVBdHRyKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQnl0
ZUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9y
KCpzdGF0ZSwgIlRlc3RPYmoiLCAiYnl0ZUF0dHIiKTsKQEAgLTIwMTcsMTAgKzE5MzcsMTAgQEAg
dm9pZCBzZXRKU1Rlc3RPYmpCeXRlQXR0cihFeGVjU3RhdGUqIHN0YQogfQogCiAKLXZvaWQgc2V0
SlNUZXN0T2JqT2N0ZXRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K3ZvaWQgc2V0SlNUZXN0T2JqT2N0ZXRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFs
dWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFS
QU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0
T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAg
ICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm9jdGV0QXR0ciIpOwpA
QCAtMjAzNCwxMCArMTk1NCwxMCBAQCB2b2lkIHNldEpTVGVzdE9iak9jdGV0QXR0cihFeGVjU3Rh
dGUqIHN0CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpTaG9ydEF0dHIoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRl
c3RPYmoiLCAic2hvcnRBdHRyIik7CkBAIC0yMDUxLDEwICsxOTcxLDEwIEBAIHZvaWQgc2V0SlNU
ZXN0T2JqU2hvcnRBdHRyKEV4ZWNTdGF0ZSogc3QKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialVu
c2lnbmVkU2hvcnRBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3Zv
aWQgc2V0SlNUZXN0T2JqVW5zaWduZWRTaG9ydEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
SlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNF
RF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAg
ICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAidW5zaWduZWRT
aG9ydEF0dHIiKTsKQEAgLTIwNjgsMTAgKzE5ODgsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpVbnNp
Z25lZFNob3J0QXR0cihFeGVjUwogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqTG9uZ0F0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpMb25n
QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJsb25nQXR0ciIpOwpAQCAtMjA4NSwxMCArMjAwNSwxMCBAQCB2
b2lkIHNldEpTVGVzdE9iakxvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhCiB9CiAKIAotdm9pZCBzZXRK
U1Rlc3RPYmpMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQordm9pZCBzZXRKU1Rlc3RPYmpMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
SlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNF
RF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBK
U1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAg
ICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAibG9uZ0xvbmdB
dHRyIik7CkBAIC0yMTAyLDEwICsyMDIyLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqTG9uZ0xvbmdB
dHRyKEV4ZWNTdGF0ZSoKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialVuc2lnbmVkTG9uZ0xvbmdB
dHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0
T2JqVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2
YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShi
YXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoq
IGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRo
cm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAidW5zaWduZWRMb25nTG9uZ0F0
dHIiKTsKQEAgLTIxMTksMTAgKzIwMzksMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpVbnNpZ25lZExv
bmdMb25nQXR0cihFeAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqU3RyaW5nQXR0cihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3RPYmoiLCAic3RyaW5nQXR0ciIpOwpAQCAtMjEzNiwxMCArMjA1NiwxMCBAQCB2
b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHIoRXhlY1N0YXRlKiBzCiB9CiAKIAotdm9pZCBzZXRK
U1Rlc3RPYmpUZXN0T2JqQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVj
dCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
Cit2b2lkIHNldEpTVGVzdE9ialRlc3RPYmpBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURf
UEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNU
ZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpk
ZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAg
ICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgInRlc3RPYmpBdHRy
Iik7CkBAIC0yMTUzLDEwICsyMDczLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqVGVzdE9iakF0dHIo
RXhlY1N0YXRlKiAKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0cihF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakxl
bmllbnRUZXN0T2JqQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmpl
Y3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgcmV0dXJuOwpA
QCAtMjE2OSwxMCArMjA4OSwxMCBAQCB2b2lkIHNldEpTVGVzdE9iakxlbmllbnRUZXN0T2JqQXR0
cihFeGVjCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpYTUxPYmpBdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqWE1MT2JqQXR0cihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29k
ZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJB
TSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAi
VGVzdE9iaiIsICJYTUxPYmpBdHRyIik7CkBAIC0yMTg2LDEwICsyMTA2LDEwIEBAIHZvaWQgc2V0
SlNUZXN0T2JqWE1MT2JqQXR0cihFeGVjU3RhdGUqIHMKIH0KIAogCi12b2lkIHNldEpTVGVzdE9i
akNyZWF0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpT
VGVzdE9iakNyZWF0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3Qp
OworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJU
eXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJjcmVhdGUiKTsKQEAgLTIyMDMsMTAgKzIxMjMs
MTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpDcmVhdGUoRXhlY1N0YXRlKiBzdGF0ZQogfQogCiAKLXZv
aWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFS
QU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwg
IlRlc3RPYmoiLCAicmVmbGVjdGVkU3RyaW5nQXR0ciIpOwpAQCAtMjIyMCwxMCArMjE0MCwxMCBA
QCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlCiB9CiAKIAotdm9pZCBz
ZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFS
QU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwg
IlRlc3RPYmoiLCAicmVmbGVjdGVkSW50ZWdyYWxBdHRyIik7CkBAIC0yMjM3LDEwICsyMTU3LDEw
IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkSW50ZWdyYWxBdHRyKEUKIH0KIAogCi12b2lk
IHNldEpTVGVzdE9ialJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVW5zaWdu
ZWRJbnRlZ3JhbEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVy
VHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAicmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0
dHIiKTsKQEAgLTIyNTQsMTAgKzIxNzQsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRV
bnNpZ25lZEludGVncgogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQm9vbGVhbkF0
dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RP
YmpSZWZsZWN0ZWRCb29sZWFuQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhy
b3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJyZWZsZWN0ZWRCb29sZWFuQXR0
ciIpOwpAQCAtMjI3MSwxMCArMjE5MSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZEJv
b2xlYW5BdHRyKEV4CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRVUkxBdHRyKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUmVm
bGVjdGVkVVJMQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3Qp
OworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJU
eXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJyZWZsZWN0ZWRVUkxBdHRyIik7CkBAIC0yMjg4
LDEwICsyMjA4LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkVVJMQXR0cihFeGVjU3QK
IH0KIAogCi12b2lkIHNldEpTVGVzdE9ialJlZmxlY3RlZFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJp
bmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJv
cigqc3RhdGUsICJUZXN0T2JqIiwgInJlZmxlY3RlZFN0cmluZ0F0dHIiKTsKQEAgLTIzMDUsMTAg
KzIyMjUsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRTdHJpbmdBdHRyKEV4ZQogfQog
CiAKLXZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUmVmbGVjdGVk
Q3VzdG9tSW50ZWdyYWxBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9i
amVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1Nl
dHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgInJlZmxlY3RlZEN1c3RvbUludGVncmFs
QXR0ciIpOwpAQCAtMjMyMiwxMCArMjI0MiwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialJlZmxlY3Rl
ZEN1c3RvbUludGVncmFsCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21C
b29sZWFuQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNl
dEpTVGVzdE9ialJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBV
TlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgInJlZmxl
Y3RlZEN1c3RvbUJvb2xlYW5BdHRyIik7CkBAIC0yMzM5LDEwICsyMjU5LDEwIEBAIHZvaWQgc2V0
SlNUZXN0T2JqUmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkEKIH0KIAogCi12b2lkIHNldEpTVGVzdE9i
alJlZmxlY3RlZEN1c3RvbVVSTEF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VP
YmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQordm9pZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZh
bHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVl
KTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNW
YWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RP
YmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2Jq
IiwgInJlZmxlY3RlZEN1c3RvbVVSTEF0dHIiKTsKQEAgLTIzNTYsMTAgKzIyNzYsMTAgQEAgdm9p
ZCBzZXRKU1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKAogfQogCiAKLXZvaWQgc2V0SlNU
ZXN0T2JqVHlwZWRBcnJheUF0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmpl
Y3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVl
KQordm9pZCBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
ICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ0eXBlZEFy
cmF5QXR0ciIpOwpAQCAtMjM3MywxMCArMjI5MywxMCBAQCB2b2lkIHNldEpTVGVzdE9ialR5cGVk
QXJyYXlBdHRyKEV4ZWNTdGF0CiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNl
dEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29k
ZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAg
IEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVT
RURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAg
SlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewog
ICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImF0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uIik7CkBAIC0yMzkwLDEwICsyMzEwLDEwIEBAIHZvaWQgc2V0SlNUZXN0
T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24KIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3Qq
IGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbldpdGhN
ZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJv
cigqc3RhdGUsICJUZXN0T2JqIiwgImF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2Ui
KTsKQEAgLTI0MDcsMTAgKzIzMjcsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbgogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRp
b24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RP
YmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVl
IHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAg
dGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJhdHRyV2l0aFNldHRlckV4
Y2VwdGlvbiIpOwpAQCAtMjQyNiwxMCArMjM0NiwxMCBAQCB2b2lkIHNldEpTVGVzdE9iakF0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbldpdGhNZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRl
LCAiVGVzdE9iaiIsICJhdHRyV2l0aFNldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlIik7CkBAIC0y
NDQ1LDEwICsyMzY1LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRp
b24KIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2Jq
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNW
YWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9Q
QVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAg
ICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAic3RyaW5nQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb24iKTsKQEAgLTI0NjIsMTAgKzIzODIsMTAgQEAgdm9pZCBzZXRKU1Rl
c3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4YwogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqU3Ry
aW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJh
c2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihF
eGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVu
Y29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9Q
QVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRl
LCAiVGVzdE9iaiIsICJzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIpOwpAQCAtMjQ4MSwx
MCArMjQwMSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjCiB9
CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RUeXBlQ2hlY2tpbmdBdHRyaWJ1dGUoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RU
eXBlQ2hlY2tpbmdBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNl
T2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93
U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAic3RyaWN0VHlwZUNoZWNraW5nQXR0
cmlidXRlIik7CkBAIC0yNTAyLDEwICsyNDIyLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqU3RyaWN0
VHlwZUNoZWNraW5nQXR0cmkKIH0KIAogCi12b2lkIHNldEpTVGVzdE9iakN1c3RvbUF0dHIoRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpDdXN0
b21BdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAg
VU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNE
eW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAg
aWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJv
cigqc3RhdGUsICJUZXN0T2JqIiwgImN1c3RvbUF0dHIiKTsKQEAgLTI1MTUsMTAgKzI0MzUsMTAg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEV4ZWNTdGF0ZSogcwogfQogCiAKLXZvaWQg
c2V0SlNUZXN0T2JqT25mb28oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3Qs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQor
dm9pZCBzZXRKU1Rlc3RPYmpPbmZvbyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhy
b3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJvbmZvbyIpOwpAQCAtMjUyOCwx
MCArMjQ0OCwxMCBAQCB2b2lkIHNldEpTVGVzdE9iak9uZm9vKEV4ZWNTdGF0ZSogc3RhdGUsCiB9
CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVy
VHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAid2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlIik7
CkBAIC0yNTQ1LDEwICsyNDY1LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdFN0YXRl
QXR0cmlidXQKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialdpdGhDYWxsV2l0aEFuZFNldHRlckNh
bGxXaXRoQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3Zv
aWQgc2V0SlNUZXN0T2JqV2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFS
QU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtF
TFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwg
IlRlc3RPYmoiLCAid2l0aENhbGxXaXRoQW5kU2V0dGVyQ2FsbFdpdGhBdHRyaWJ1dGUiKTsKQEAg
LTI1NjIsMTAgKzI0ODIsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoQ2FsbFdpdGhBbmRTZXR0
ZXJDYQogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
dHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRK
U1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFs
dWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVk
VGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIs
ICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZSIpOwpAQCAtMjU4MiwxMCArMjUw
MiwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250CiB9CiAKIAot
dm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNl
T2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93
U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAid2l0aFNjcmlwdFN0YXRlQXR0cmli
dXRlUmFpc2VzIik7CkBAIC0yNTk5LDEwICsyNTE5LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0
aFNjcmlwdFN0YXRlQXR0cmlidXQKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRF
eGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVu
Y29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
dHRyaWJ1dGVSYWlzZXMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVy
VHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
dHRyaWJ1dGVSYWlzZXMiKTsKQEAgLTI2MTksMTAgKzI1MzksMTAgQEAgdm9pZCBzZXRKU1Rlc3RP
YmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqV2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0
YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVO
VVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7
CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAid2l0aFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZSIpOwpAQCAtMjYzOSwx
MCArMjU1OSwxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250CiB9
CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlw
dFN0YXRlQXR0cmlidXRlUmFpc2VzKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2Jq
ZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRT
dGF0ZUF0dHJpYnV0ZVJhaXNlcyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVl
ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VP
YmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dT
ZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzIik7CkBAIC0yNjU5LDEwICsyNTc5LDEw
IEBAIHZvaWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnQKIH0KIAogCi12b2lk
IHNldEpTVGVzdE9ialdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVXaXRo
U3BhY2VzQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3Zv
aWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdp
dGhTcGFjZXNBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2Jq
ZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3Rl
ZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFs
dWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0
dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUiKTsKQEAgLTI2NzksMTAgKzI1OTks
MTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpXaXRoU2NyaXB0RXhlY3V0aW9uQ29udAogfQogCiAKLXZv
aWQgc2V0SlNUZXN0T2JqV2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZShF
eGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialdp
dGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7
CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAg
IFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
ICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpT
VmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMp
KSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAid2l0
aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZSIpOwpAQCAtMjY5NywxMCArMjYx
NywxMCBAQCB2b2lkIHNldEpTVGVzdE9ialdpdGhTY3JpcHRBcmd1bWVudHNBbmRDCiAKIAogI2lm
IEVOQUJMRShDb25kaXRpb24xKQotdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQ29u
ZGl0aW9uYWxBdHRyMShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3Qp
OworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhp
cyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJU
eXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJjb25kaXRpb25hbEF0dHIxIik7CkBAIC0yNzE2
LDEwICsyNjM2LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShFeGVjU3QK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQot
dm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2Jq
ZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVl
IGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihFeGVjU3Rh
dGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29k
ZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRW
YWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0
aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSgh
Y2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVz
dE9iaiIsICJjb25kaXRpb25hbEF0dHIyIik7CkBAIC0yNzM1LDEwICsyNjU1LDEwIEBAIHZvaWQg
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihFeGVjU3QKICNlbmRpZgogCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQotdm9pZCBzZXRKU1Rlc3RPYmpDb25k
aXRpb25hbEF0dHIzKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQg
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAg
ICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJjb25kaXRpb25hbEF0
dHIzIik7CkBAIC0yNzU0LDEwICsyNjc0LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyMyhFeGVjU3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCi12b2lkIHNl
dEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBK
U09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjRDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAg
IFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpz
RHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJy
b3IoKnN0YXRlLCAiVGVzdE9iaiIsICJjb25kaXRpb25hbEF0dHI0Iik7CkBAIC0yNzcwLDEwICsy
NjkwLDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNENvbnN0cnUKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQotdm9pZCBz
ZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI1Q29u
c3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6
OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBq
c0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVy
cm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAiY29uZGl0aW9uYWxBdHRyNSIpOwpAQCAtMjc4NiwxMCAr
MjcwNiwxMCBAQCB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjVDb25zdHJ1CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLXZvaWQg
c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5j
b2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVl
OjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7Cisg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0g
anNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAg
ICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVF
cnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImNvbmRpdGlvbmFsQXR0cjYiKTsKQEAgLTI4MDEsMTAg
KzI3MjEsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2Q29uc3RydQogCiAj
ZW5kaWYKIAotdm9pZCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFko
IWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRl
c3RPYmoiLCAiYW55QXR0cmlidXRlIik7CkBAIC0yODE4LDEwICsyNzM4LDEwIEBAIHZvaWQgc2V0
SlNUZXN0T2JqQW55QXR0cmlidXRlKEV4ZWNTdGF0ZSoKIH0KIAogCi12b2lkIHNldEpTVGVzdE9i
ak11dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lk
IHNldEpTVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVl
IHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAg
dGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJtdXRhYmxlUG9pbnQiKTsK
QEAgLTI4MzUsMTAgKzI3NTUsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoRXhl
Y1N0YXRlKgogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQoRXhlY1N0YXRl
KiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RPYmpJbW11dGFibGVQ
b2ludChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHlu
YW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJpbW11dGFibGVQb2ludCIpOwpAQCAtMjg1MiwxMCArMjc3Miwx
MCBAQCB2b2lkIHNldEpTVGVzdE9iakltbXV0YWJsZVBvaW50KEV4ZWNTdGF0CiB9CiAKIAotdm9p
ZCBzZXRKU1Rlc3RPYmpTdHJhd2JlcnJ5KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqU3RyYXdiZXJyeShFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAg
ICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKGJhc2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAg
IEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1
ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsK
ICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJzdHJhd2Jl
cnJ5Iik7CkBAIC0yODY5LDEwICsyNzg5LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqU3RyYXdiZXJy
eShFeGVjU3RhdGUqIHMKIH0KIAogCi12b2lkIHNldEpTVGVzdE9ialN0cmljdEZsb2F0KEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqU3RyaWN0
RmxvYXQoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRl
Y29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9y
KCpzdGF0ZSwgIlRlc3RPYmoiLCAic3RyaWN0RmxvYXQiKTsKQEAgLTI4ODYsMTAgKzI4MDYsMTAg
QEAgdm9pZCBzZXRKU1Rlc3RPYmpTdHJpY3RGbG9hdChFeGVjU3RhdGUqIAogfQogCiAKLXZvaWQg
c2V0SlNUZXN0T2JqSWQoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9p
ZCBzZXRKU1Rlc3RPYmpJZChFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0g
SlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmpl
Y3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdE9iaiogY2FzdGVk
VGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKICAgICAgICAgdGhyb3dTZXR0
ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJpZCIpOwpAQCAtMjkwMywxMCArMjgyMywx
MCBAQCB2b2lkIHNldEpTVGVzdE9iaklkKEV4ZWNTdGF0ZSogc3RhdGUsIEpTCiB9CiAKIAotdm9p
ZCBzZXRKU1Rlc3RPYmpSZXBsYWNlYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialJlcGxhY2VhYmxlQXR0cmlidXRlKEV4
ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUg
ZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5j
b2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BB
UkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2Fz
dDxKU1Rlc3RPYmoqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUs
ICJUZXN0T2JqIiwgInJlcGxhY2VhYmxlQXR0cmlidXRlIik7CkBAIC0yOTE3LDEwICsyODM3LDEw
IEBAIHZvaWQgc2V0SlNUZXN0T2JqUmVwbGFjZWFibGVBdHRyaWJ1dGUoRXgKIH0KIAogCi12b2lk
IHNldEpTVGVzdE9iak51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqTnVsbGFibGVMb25nU2V0
dGFibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpT
VmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0
KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVy
VHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAibnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1
dGUiKTsKQEAgLTI5MzQsMTAgKzI4NTQsMTAgQEAgdm9pZCBzZXRKU1Rlc3RPYmpOdWxsYWJsZUxv
bmdTZXR0YWJsZUF0dAogfQogCiAKLXZvaWQgc2V0SlNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1
ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9i
ak51bGxhYmxlU3RyaW5nVmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1
ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNl
T2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93
U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAibnVsbGFibGVTdHJpbmdWYWx1ZSIp
OwpAQCAtMjk1MSwxMCArMjg3MSwxMCBAQCB2b2lkIHNldEpTVGVzdE9iak51bGxhYmxlU3RyaW5n
VmFsdWUoRXhlCiB9CiAKIAotdm9pZCBzZXRKU1Rlc3RPYmpBdHRyaWJ1dGVXaXRoUmVzZXJ2ZWRF
bnVtVHlwZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpT
VGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewog
ICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBV
TlVTRURfUEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RPYmoqPihKU1Zh
bHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkg
ewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImF0dHJp
YnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlIik7CkBAIC0yOTcwLDEwICsyODkwLDEwIEBAIHZvaWQg
c2V0SlNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW4KIH0KIAogCi12b2lkIHNldEpTVGVz
dE9ialB1dEZvcndhcmRzQXR0cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRW
YWx1ZSkKK3ZvaWQgc2V0SlNUZXN0T2JqUHV0Rm9yd2FyZHNBdHRyaWJ1dGUoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9i
aio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3Rl
ZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RPYmoi
LCAicHV0Rm9yd2FyZHNBdHRyaWJ1dGUiKTsKQEAgLTI5ODgsMTAgKzI5MDgsMTAgQEAgdm9pZCBz
ZXRKU1Rlc3RPYmpQdXRGb3J3YXJkc0F0dHJpYnV0ZShFeAogfQogCiAKLXZvaWQgc2V0SlNUZXN0
T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1
dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29k
ZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVT
RURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFt
aWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAo
VU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpz
dGF0ZSwgIlRlc3RPYmoiLCAicHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSIpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAkocmV2aXNpb24g
MTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4ICszNCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRK
U1ZhbHVlIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci12b2lkIHNldEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKIAogY2xhc3MgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1By
b3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTg4
LDE5ICsxODgsMTggQEAgdm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpkZXN0cgog
ICAgIHRoaXNPYmplY3QtPkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6On5KU1Rlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzKCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFz
ZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVj
b2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgZG9tT2Jq
ZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K3ZvaWQgc2V0SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2Rl
ZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZh
bHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKLSAgICBKU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAgICAgdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDAsOCArNDAsOCBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19I
T1NUX0NBTEwganNUZXN0CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBz
ZXRKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitK
U0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3Zv
aWQgc2V0SlNUZXN0T3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVz
dE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0
IHsKIHB1YmxpYzoKQEAgLTE0OSwxOSArMTQ5LDE4IEBAIGJvb2wgSlNUZXN0T3ZlcnJpZGVCdWls
dGluczo6Z2V0T3duUHJvcGUKICAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRK
U1ZhbHVlIGpzVGVzdE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKLSAgICBKU1Rlc3RP
dmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVz
dE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdE92ZXJy
aWRlQnVpbHRpbnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0T3Zl
cnJpZGVCdWlsdGluc1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAg
ICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0T3ZlcnJpZGVCdWlsdGluczo6Z2V0
Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpKTsKIH0K
IAotdm9pZCBzZXRKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNv
ZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2b2lkIHNldEpTVGVzdE92ZXJyaWRlQnVpbHRpbnND
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1
ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0g
ICAgSlNUZXN0T3ZlcnJpZGVCdWlsdGluc1Byb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWlj
Q2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBK
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0
PEpTVGVzdE92ZXJyaWRlQnVpbHRpbnNQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAgICAgIHRocm93Vk1U
eXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAkocmV2aXNpb24g
MTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4
LDE1ICszOCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEF0dHJpYnV0ZXMKIAotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWYWx1
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBK
U0M6OlByb3BlcnR5TmFtZSk7Ci12b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VSZWFkb25seVZhbHVlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlQ2FjaGVkVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUG9y
dHMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2VDYWNoZWRSZWFkb25seVZhbHVlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2
b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVJlYWRv
bmx5VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNhY2hlZFZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VDYWNoZWRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkUmVhZG9ubHlWYWx1ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29u
c3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7CiAKIGNsYXNzIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAt
MTI3LDEwICsxMjcsOSBAQCB2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
CiAgICAgdGhpc09iamVjdC0+SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjp+
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKCk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVZhbHVlKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFBy
b3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJB
TShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhp
c1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMTQyLDEwICsx
NDEsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsCiB9CiAKIAot
RW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9u
bHlWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUmVhZG9ubHlWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFS
QU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFN
KHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBj
YXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewpAQCAtMTU3LDEwICsxNTUsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmpl
Y3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0Vu
Y29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZh
bHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlO
YW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RC
YXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0xNzUsMTAgKzE3Miw5IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWwKIH0KIAogCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQb3J0cyhFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlUG9ydHMoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURf
UEFSQU0oc2xvdEJhc2UpOwogICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2Rl
KHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTE5MCwx
MCArMTg2LDkgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbAogfQog
CiAKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNh
Y2hlZFJlYWRvbmx5VmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpz
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFJlYWRvbmx5VmFsdWUoRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwog
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAg
IGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTIwOCwxOSArMjAzLDE4IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWwKIH0KIAogCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKQorRW5jb2RlZEpTVmFsdWUganNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
UHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZSo+KEpTVmFs
dWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRDb25zdHJ1Y3RvcihzdGF0
ZS0+dm0oKSwgZG9tT2JqZWN0LT5nbG9iYWxPYmplY3QoKSkpOwogfQogCi12b2lkIHNldEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRo
aXNWYWx1ZSk7Ci0gICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90
eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWRvbU9iamVjdCkpIHsKICAgICAg
ICAgdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTIyOSwxMCAr
MjIzLDEwIEBAIHZvaWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXIKICAgICBk
b21PYmplY3QtPnB1dERpcmVjdChzdGF0ZS0+dm0oKSwgc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5j
b25zdHJ1Y3RvciwgdmFsdWUpOwogfQogCi12b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZVZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkK
K3ZvaWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVmFsdWUoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
VmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNh
c3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZSo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNh
c3RlZFRoaXMpKSB7CiAgICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UiLCAidmFsdWUiKTsKQEAgLTI0NiwxMCArMjQw
LDEwIEBAIHZvaWQgc2V0SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXIKIH0KIAogCi12
b2lkIHNldEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNhY2hlZFZhbHVlKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2FjaGVkVmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5j
b2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAg
ICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVO
VVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAg
ICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UiLCAiY2FjaGVkVmFsdWUiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsMjEgKzU4LDIx
IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3QKIAogLy8gQXR0cmli
dXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9u
Z0F0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1
ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9u
Z0xvbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpT
VmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12
b2lkIHNldEpTVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5j
b2RlZEpTVmFsdWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVj
dG9yVGVzdFN1Yk9iaihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29k
ZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBz
ZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0F0dHJXaXRoU2V0dGVyRXhjZXB0
aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
VHlwZWRlZnNTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci12
b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0
cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotdm9pZCBzZXRKU1Rlc3RUeXBl
ZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotSlND
OjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1l
KTsKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXR0cihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0ltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsK
K0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RTdWJPYmoo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Cit2b2lkIHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUp
Owordm9pZCBzZXRKU1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7
CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNl
cHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU1Rlc3RUeXBl
ZGVmc1Byb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpA
QCAtMjEwLDEwICsyMTAsOSBAQCBib29sIEpTVGVzdFR5cGVkZWZzOjpnZXRPd25Qcm9wZXJ0eVNs
b3QoCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVm
c1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFz
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uZ0xvbmdBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0o
dGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYg
KFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpAQCAtMjI1LDEwICsyMjQsOSBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RUeXBlZGVmc1Vuc2lnbmVkTG9uCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNU
ZXN0VHlwZWRlZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUoRXhlY1N0YXRlKiBzdGF0
ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNj
cmlwdFZhbHVlKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5VU0VEX1BBUkFN
KHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBKU1Rlc3RUeXBl
ZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVl
OjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRUaGlzKSkgewpA
QCAtMjQwLDEwICsyMzgsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0ltbXV0YWJs
ZVNlCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvclRlc3RT
dWJPYmooRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZz
Q29uc3RydWN0b3JUZXN0U3ViT2JqKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAg
VU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAg
ICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRl
ZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewpAQCAtMjUzLDEwICsyNTAsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBl
ZGVmc0NvbnN0cnVjdG9yCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNBdHRy
V2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2Us
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUg
anNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBF
bmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFS
QU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAgICAgVU5VU0VEX1BBUkFN
KHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWND
YXN0PEpTVGVzdFR5cGVkZWZzKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlm
IChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTI3MCwxMCArMjY2LDkgQEAgRW5jb2RlZEpT
VmFsdWUganNUZXN0VHlwZWRlZnNBdHRyV2l0aEdldAogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpz
VGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkK
K0VuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhl
Y1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7
CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0oc2xvdEJhc2UpOwog
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CkBAIC0yODUsMTAgKzI4
MCw5IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzQXR0cldpdGhTZXQKIH0KIAogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9u
KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhp
c1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc1N0cmlu
Z0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsK
ICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlw
ZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewpAQCAtMzAyLDEwICsyOTYsOSBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RU
eXBlZGVmc1N0cmluZ0F0dHJXCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0VHlwZWRlZnNT
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0VHlwZWRlZnNTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsK
ICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTShzbG90QmFzZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNUZXN0VHlwZWRlZnMqIGNhc3RlZFRo
aXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNW
YWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhpcykpIHsKQEAgLTMxNywxOSArMzEw
LDE4IEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdFR5cGVkZWZzU3RyaW5nQXR0clcKIH0KIAogCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUs
IEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewotICAgIEpTVGVzdFR5cGVk
ZWZzUHJvdG90eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzUHJv
dG90eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSogZG9tT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSo+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoIWRvbU9iamVjdCkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0
VHlwZWRlZnM6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9i
amVjdCgpKSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIHN0YXRlLCBKU09iamVjdCogYmFzZVZhbHVlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAg
SlNUZXN0VHlwZWRlZnNQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0
VHlwZWRlZnNQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTVGVzdFR5cGVkZWZzUHJvdG90
eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzUHJvdG90eXBlKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghZG9tT2JqZWN0
KSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMzM4LDEwICszMzAsMTAgQEAgdm9pZCBzZXRKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yKEV4
ZWNTdAogICAgIGRvbU9iamVjdC0+cHV0RGlyZWN0KHN0YXRlLT52bSgpLCBzdGF0ZS0+cHJvcGVy
dHlOYW1lcygpLmNvbnN0cnVjdG9yLCB2YWx1ZSk7CiB9CiAKLXZvaWQgc2V0SlNUZXN0VHlwZWRl
ZnNVbnNpZ25lZExvbmdMb25nQXR0cihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCit2b2lkIHNldEpTVGVzdFR5cGVkZWZzVW5zaWduZWRMb25nTG9uZ0F0dHIoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
VmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFs
dWUpOwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhp
c1ZhbHVlKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVO
TElLRUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3Rh
dGUsICJUZXN0VHlwZWRlZnMiLCAidW5zaWduZWRMb25nTG9uZ0F0dHIiKTsKQEAgLTM1NSwxMCAr
MzQ3LDEwIEBAIHZvaWQgc2V0SlNUZXN0VHlwZWRlZnNVbnNpZ25lZExvbmdMb25nQXQKIH0KIAog
Ci12b2lkIHNldEpTVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlKEV4
ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0VHlwZWRl
ZnNJbW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCiB7CiAgICAg
SlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwotICAgIFVOVVNF
RF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKICAgICBK
U1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNUZXN0VHlwZWRlZnMq
PihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0ZWRU
aGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0VHlwZWRl
ZnMiLCAiaW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlIik7CkBAIC0zNzIsMTAgKzM2NCwx
MCBAQCB2b2lkIHNldEpTVGVzdFR5cGVkZWZzSW1tdXRhYmxlU2VyaWFsaXplCiB9CiAKIAotdm9p
ZCBzZXRKU1Rlc3RUeXBlZGVmc0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29k
ZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJhc2VPYmplY3Qp
OworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFR5cGVkZWZzKiBjYXN0
ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6OmRlY29kZSh0
aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAgICAgICAgIHRo
cm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RUeXBlZGVmcyIsICJhdHRyV2l0aEdldHRl
ckV4Y2VwdGlvbiIpOwpAQCAtMzg5LDEwICszODEsMTAgQEAgdm9pZCBzZXRKU1Rlc3RUeXBlZGVm
c0F0dHJXaXRoR2V0dGVyRXhjZQogfQogCiAKLXZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogYmFzZU9iamVjdCwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit2
b2lkIHNldEpTVGVzdFR5cGVkZWZzQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUp
OwotICAgIFVOVVNFRF9QQVJBTShiYXNlT2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1Zh
bHVlKTsKICAgICBKU1Rlc3RUeXBlZGVmcyogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNU
ZXN0VHlwZWRlZnMqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElL
RUxZKCFjYXN0ZWRUaGlzKSkgewogICAgICAgICB0aHJvd1NldHRlclR5cGVFcnJvcigqc3RhdGUs
ICJUZXN0VHlwZWRlZnMiLCAiYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iKTsKQEAgLTQwOCwxMCAr
NDAwLDEwIEBAIHZvaWQgc2V0SlNUZXN0VHlwZWRlZnNBdHRyV2l0aFNldHRlckV4Y2UKIH0KIAog
Ci12b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhl
Y1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3QsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU1Rlc3RUeXBlZGVm
c1N0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpT
VmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURf
UEFSQU0oYmFzZU9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHRoaXNWYWx1ZSk7CiAgICAgSlNU
ZXN0VHlwZWRlZnMqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdFR5cGVkZWZzKj4o
SlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChVTkxJS0VMWSghY2FzdGVkVGhp
cykpIHsKICAgICAgICAgdGhyb3dTZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdFR5cGVkZWZz
IiwgInN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIik7CkBAIC00MjUsMTAgKzQxNywxMCBA
QCB2b2lkIHNldEpTVGVzdFR5cGVkZWZzU3RyaW5nQXR0cldpdGhHZXR0CiB9CiAKIAotdm9pZCBz
ZXRKU1Rlc3RUeXBlZGVmc1N0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSog
c3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVu
Y29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3ZvaWQgc2V0SlNUZXN0VHlwZWRlZnNTdHJpbmdB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZh
bHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGJh
c2VPYmplY3QpOworICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwogICAgIEpTVGVzdFR5cGVk
ZWZzKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KEpTVmFsdWU6
OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CiAg
ICAgICAgIHRocm93U2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRlc3RUeXBlZGVmcyIsICJzdHJp
bmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCShyZXZpc2lv
biAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNh
dHRyaWJ1dGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogLy8gQXR0cmlidXRlcwogCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzYXR0cmli
dXRlUmVhZG9ubHkoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc2F0dHJp
YnV0ZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNhdHRyaWJ1dGVDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1
dGVSZWFkb25seShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1dGVDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsK
K3ZvaWQgc2V0SlNhdHRyaWJ1dGVDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogCiBjbGFzcyBKU2F0dHJpYnV0ZVBy
b3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgpAQCAtMTEy
LDEwICsxMTIsOSBAQCB2b2lkIEpTYXR0cmlidXRlOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjCiAg
ICAgdGhpc09iamVjdC0+SlNhdHRyaWJ1dGU6On5KU2F0dHJpYnV0ZSgpOwogfQogCi1FbmNvZGVk
SlNWYWx1ZSBqc2F0dHJpYnV0ZVJlYWRvbmx5KEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBz
bG90QmFzZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCitFbmNvZGVk
SlNWYWx1ZSBqc2F0dHJpYnV0ZVJlYWRvbmx5KEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQogewogICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKICAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVl
KTsKICAgICBKU2F0dHJpYnV0ZSogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNhdHRyaWJ1
dGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFjYXN0
ZWRUaGlzKSkgewpAQCAtMTI3LDE5ICsxMjYsMTggQEAgRW5jb2RlZEpTVmFsdWUganNhdHRyaWJ1
dGVSZWFkb25seShFeGVjUwogfQogCiAKLUVuY29kZWRKU1ZhbHVlIGpzYXR0cmlidXRlQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VWYWx1ZSwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIGpzYXR0cmlidXRlQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUp
CiB7Ci0gICAgSlNhdHRyaWJ1dGVQcm90b3R5cGUqIGRvbU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8
SlNhdHRyaWJ1dGVQcm90b3R5cGUqPihiYXNlVmFsdWUpOworICAgIEpTYXR0cmlidXRlUHJvdG90
eXBlKiBkb21PYmplY3QgPSBqc0R5bmFtaWNDYXN0PEpTYXR0cmlidXRlUHJvdG90eXBlKj4oSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmICghZG9tT2JqZWN0KQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihzdGF0ZSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShKU2F0dHJpYnV0ZTo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCksIGRvbU9iamVjdC0+Z2xv
YmFsT2JqZWN0KCkpKTsKIH0KIAotdm9pZCBzZXRKU2F0dHJpYnV0ZUNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQordm9pZCBzZXRKU2F0dHJpYnV0ZUNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQogewogICAgIEpTVmFsdWUgdmFsdWUgPSBKU1ZhbHVlOjpk
ZWNvZGUoZW5jb2RlZFZhbHVlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKLSAgICBK
U2F0dHJpYnV0ZVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU2F0dHJpYnV0
ZVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7CisgICAgSlNhdHRyaWJ1dGVQcm90b3R5cGUqIGRvbU9i
amVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNhdHRyaWJ1dGVQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNv
ZGUodGhpc1ZhbHVlKSk7CiAgICAgaWYgKFVOTElLRUxZKCFkb21PYmplY3QpKSB7CiAgICAgICAg
IHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHku
Y3BwCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNyZWFkb25seS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBBdHRyaWJ1dGVzCiAKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNyZWFkb25seUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLXZvaWQgc2V0SlNyZWFk
b25seUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5j
b2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOworSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c3JlYWRvbmx5Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVl
LCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTcmVhZG9ubHlDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwog
CiBjbGFzcyBKU3JlYWRvbmx5UHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVj
dCB7CiBwdWJsaWM6CkBAIC0xMDgsMTkgKzEwOCwxOCBAQCB2b2lkIEpTcmVhZG9ubHk6OmRlc3Ry
b3koSlNDOjpKU0NlbGwqIGNlCiAgICAgdGhpc09iamVjdC0+SlNyZWFkb25seTo6fkpTcmVhZG9u
bHkoKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUganNyZWFkb25seUNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCitFbmNvZGVkSlNWYWx1ZSBqc3JlYWRvbmx5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNyZWFk
b25seVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU3JlYWRvbmx5UHJvdG90
eXBlKj4oYmFzZVZhbHVlKTsKKyAgICBKU3JlYWRvbmx5UHJvdG90eXBlKiBkb21PYmplY3QgPSBq
c0R5bmFtaWNDYXN0PEpTcmVhZG9ubHlQcm90b3R5cGUqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKCFkb21PYmplY3QpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKHN0YXRlKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTcmVhZG9ubHk6OmdldENv
bnN0cnVjdG9yKHN0YXRlLT52bSgpLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKSk7CiB9CiAK
LXZvaWQgc2V0SlNyZWFkb25seUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0
KiBiYXNlVmFsdWUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5j
b2RlZFZhbHVlKQordm9pZCBzZXRKU3JlYWRvbmx5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUp
CiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpOwot
ICAgIFVOVVNFRF9QQVJBTSh0aGlzVmFsdWUpOwotICAgIEpTcmVhZG9ubHlQcm90b3R5cGUqIGRv
bU9iamVjdCA9IGpzRHluYW1pY0Nhc3Q8SlNyZWFkb25seVByb3RvdHlwZSo+KGJhc2VWYWx1ZSk7
CisgICAgSlNyZWFkb25seVByb3RvdHlwZSogZG9tT2JqZWN0ID0ganNEeW5hbWljQ2FzdDxKU3Jl
YWRvbmx5UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwogICAgIGlmIChV
TkxJS0VMWSghZG9tT2JqZWN0KSkgewogICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRlKTsK
ICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJy
YXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
YXJyYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgUnVudGltZUFy
cmF5OjpkZXN0cm95KEpTQ2VsbCogY2VsbCkKICAgICBzdGF0aWNfY2FzdDxSdW50aW1lQXJyYXkq
PihjZWxsKS0+UnVudGltZUFycmF5Ojp+UnVudGltZUFycmF5KCk7CiB9CiAKLUVuY29kZWRKU1Zh
bHVlIFJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVl
IFJ1bnRpbWVBcnJheTo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgUnVudGltZUFycmF5KiB0aGlzT2Jq
ZWN0ID0ganNEeW5hbWljQ2FzdDxSdW50aW1lQXJyYXkqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7CiAgICAgaWYgKCF0aGlzT2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfYXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9hcnJheS5oCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9hcnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIHByb3RlY3Rl
ZDoKIAogcHJpdmF0ZToKICAgICBSdW50aW1lQXJyYXkoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7
Ci0gICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU09i
amVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSk7CiAKICAgICBCaW5kaW5nc0FycmF5KiBtX2FycmF5OwogfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAkocmV2aXNpb24gMTk2MjM4KQorKysgU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTQsNyArNTQsNyBAQCB2b2lkIFJ1bnRpbWVNZXRob2Q6OmZpbmlzaENyZWF0aW9uKFZNJiB2CiAg
ICAgQVNTRVJUKGluaGVyaXRzKGluZm8oKSkpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBSdW50aW1l
TWV0aG9kOjpsZW5ndGhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZU1l
dGhvZDo6bGVuZ3RoR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCiB7CiAgICAgUnVudGltZU1ldGhvZCogdGhpc09iamVjdCA9IGpz
RHluYW1pY0Nhc3Q8UnVudGltZU1ldGhvZCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsK
ICAgICBpZiAoIXRoaXNPYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9tZXRob2QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuaAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfbWV0aG9kLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgog
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU09iamVjdCosIEV4ZWNTdGF0ZSos
IFByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90Jik7CiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIGxlbmd0aEdldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBsZW5ndGhH
ZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CiAKICAgICBC
aW5kaW5nczo6TWV0aG9kKiBtX21ldGhvZDsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5jcHAJKHJldmlzaW9uIDE5NjIzOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDkgKzYyLDkg
QEAgdm9pZCBSdW50aW1lT2JqZWN0OjppbnZhbGlkYXRlKCkKICAgICBtX2luc3RhbmNlID0gbnVs
bHB0cjsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6ZmFsbGJhY2tPYmplY3RH
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVj
dDo6ZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgUnVudGltZU9iamVj
dCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oc2xvdEJhc2UpOworICAgIFJ1bnRp
bWVPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8UnVudGltZU9iamVjdCo+KEpTVmFsdWU6OmRlY29k
ZSh0aGlzVmFsdWUpKTsKICAgICBSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlID0gdGhpc09iai0+
bV9pbnN0YW5jZTsKIAogICAgIGlmICghaW5zdGFuY2UpCkBAIC04MCw5ICs4MCw5IEBAIEVuY29k
ZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZhbGxiYWNrT2IKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6OmZpZWxk
R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmpl
Y3Q6OmZpZWxkR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogeyAgICAKLSAgICBSdW50aW1lT2JqZWN0KiB0
aGlzT2JqID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihzbG90QmFzZSk7CisgICAgUnVudGltZU9i
amVjdCogdGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRo
aXNWYWx1ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5tX2lu
c3RhbmNlOwogCiAgICAgaWYgKCFpbnN0YW5jZSkKQEAgLTk5LDkgKzk5LDkgQEAgRW5jb2RlZEpT
VmFsdWUgUnVudGltZU9iamVjdDo6ZmllbGRHZXR0ZQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUocmVzdWx0KTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgUnVudGltZU9iamVjdDo6bWV0aG9kR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKK0VuY29kZWRKU1ZhbHVlIFJ1bnRpbWVPYmplY3Q6
Om1ldGhvZEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKLSAgICBSdW50aW1lT2JqZWN0KiB0aGlzT2Jq
ID0ganNDYXN0PFJ1bnRpbWVPYmplY3QqPihzbG90QmFzZSk7CisgICAgUnVudGltZU9iamVjdCog
dGhpc09iaiA9IGpzQ2FzdDxSdW50aW1lT2JqZWN0Kj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1
ZSkpOwogICAgIFJlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UgPSB0aGlzT2JqLT5tX2luc3RhbmNl
OwogCiAgICAgaWYgKCFpbnN0YW5jZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5oCShyZXZpc2lvbiAxOTYyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzgsOSArNzgsOSBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYpOwogCiBwcml2YXRlOgotICAgIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBmYWxsYmFja09iamVjdEdldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCos
IEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBmaWVsZEdldHRlcihFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpOwotICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoRXhlY1N0
YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKTsKKyAgICBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgZmFsbGJhY2tPYmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2Rl
ZEpTVmFsdWUsIFByb3BlcnR5TmFtZSk7CisgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIGZpZWxk
R2V0dGVyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpOworICAgIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBtZXRob2RHZXR0ZXIoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSk7CiAKICAgICBSZWZQdHI8SW5zdGFuY2U+IG1faW5zdGFuY2U7CiB9
OwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTYtMDItMDcgIEdhdmlu
IEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgorCisgICAgICAgIEdldFZhbHVl
RnVuYy9QdXRWYWx1ZUZ1bmMgc2hvdWxkIG5vdCB0YWtlIGJvdGggc2xvdEJhc2UgYW5kIHRoaXNW
YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0
MDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4g
SmF2YVNjcmlwdCB0aGVyZSBhcmUgdHdvIHR5cGVzIG9mIHByb3BlcnRpZXMgLSByZWd1bGFyIHZh
bHVlIHByb3BlcnRpZXMsIGFuZCBhY2Nlc3NvciBwcm9wZXJ0aWVzLgorICAgICAgICBPbmUgZGlm
ZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIGlzIGhvdyB0aGV5IGFyZSByZWZsZWN0ZWQgYnkgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yLCBhbmQgYW5vdGhlciBpcworICAgICAgICB3aGF0IG9iamVjdCB0
aGV5IG9wZXJhdGUgb24gaW4gdGhlIGNhc2Ugb2YgYSBwcm90b3R5cGUgYWNjZXNzLiBJZiB5b3Ug
YWNjZXNzIGEgdmFsdWUgcHJvcGVydHkgb2YgYQorICAgICAgICBwcm90b3R5cGUgb2JqZWN0IGl0
IHJldHVybiBhIHZhbHVlIHBlcnRpbmVudCB0byB0aGUgcHJvdG90eXBlLCBidXQgaW4gdGhlIGNh
c2Ugb2YgYSBwcm90b3R5cGUgb2JqZWN0CisgICAgICAgIHJldHVybmluZyBhbiBhY2Nlc3Nvciwg
dGhlbiB0aGUgYWNjZXNzb3IgZnVuY3Rpb24gaXMgYXBwbGllZCB0byB0aGUgYmFzZSBvYmplY3Qg
b2YgdGhlIGFjY2Vzcy4KKworICAgICAgICBKU0Mgc3VwcG9ydHMgc3BlY2lhbCAnY3VzdG9tJyBw
cm9wZXJ0aWVzIGltcGxlbWVudGVkIGFzIGEgYysrIGNhbGxiYWNrLCBhbmQgdGhlc2UgY3VzdG9t
IHByb3BlcnRpZXMKKyAgICAgICAgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGVpdGhlciB2YWx1
ZS0gb3IgYWNjZXNzb3ItbGlrZSBiZWhhdmlvci4gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIGJl
aGF2aW9yCisgICAgICAgIGlzIHNlbGVjdGVkIHZpYSB0aGUgQ3VzdG9tQWNjZXNzb3IgYXR0cmli
dXRlLiBWYWx1ZS0gb3IgYWNjZXNzb3ItbGlrZSBvYmplY3Qgc2VsZWN0aW9uIGlzIGN1cnJlbnQK
KyAgICAgICAgc3VwcG9ydGVkIGJ5IHBhc3NpbmcgYm90aCB0aGUgc2xvdEJhc2UgYW5kIHRoZSB0
aGlzVmFsdWUgdG8gdGhlIGNhbGxiYWNrLGFuZCBob3BpbmcgaXQgdXNlcyB0aGUKKyAgICAgICAg
cmlnaHQgb25lLiBUaGlzIGlzIHByb2JhYmx5IGluZWZmaWNpZW50LCBidWctcHJvbmUsIGFuZCBs
ZWFkcyB0byBjcmF6eSBsaWtlIEpTQm91bmRTbG90QmFzZUZ1bmN0aW9uLgorCisgICAgICAgIElu
c3RlYWQsIGp1c3QgcGFzcyBvbmUgdGhpc1ZhbHVlIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbnMs
IGNvbnNpc3RlbnQgd2l0aCBDdXN0b21BY2Nlc3Nvci4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE9i
amVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgIChXZWJLaXQ6OkpTTlBPYmplY3Q6
OnByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKFdlYktpdDo6SlNOUE9iamVjdDo6bWV0aG9kR2V0
dGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5o
OgorICAgICAgICAgICAgLSBNZXJnZWQgc2xvdEJhc2UgJiB0aGlzVmFsdWUgdG8gY3VzdG9tIHBy
b3BlcnR5IGNhbGxiYWNrcy4KKwogMjAxNi0wMi0wNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0Bh
cHBsZS5jb20+CiAKICAgICAgICAgQ2FsbCBDRlJlbGVhc2UoKSBvbiBTZWNSZXF1aXJlbWVudFJl
ZiB3aGVuIG5vIGxvbmdlciBuZWVkZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9KU05QT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE9iamVjdC5jcHAJKHJldmlzaW9u
IDE5NjIzOCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9K
U05QT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMzLDkgKzQzMyw5IEBAIHZvaWQgSlNO
UE9iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU08KICAgICBucG5NZW1GcmVlKGlkZW50aWZp
ZXJzKTsKIH0KIAotRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlHZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6cHJvcGVydHlH
ZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgSlNOUE9iamVjdCogdGhpc09iaiA9IGpzQ2FzdDxK
U05QT2JqZWN0Kj4oc2xvdEJhc2UpOworICAgIEpTTlBPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8
SlNOUE9iamVjdCo+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKICAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKHRoaXNPYmosIGluZm8oKSk7CiAgICAgCiAgICAgaWYgKCF0aGlzT2Jq
LT5tX25wT2JqZWN0KQpAQCAtNDczLDkgKzQ3Myw5IEBAIEVuY29kZWRKU1ZhbHVlIEpTTlBPYmpl
Y3Q6OnByb3BlcnR5R2V0dGUKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHByb3BlcnR5VmFs
dWUpOwogfQogCi1FbmNvZGVkSlNWYWx1ZSBKU05QT2JqZWN0OjptZXRob2RHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lKQorRW5jb2RlZEpTVmFsdWUgSlNOUE9iamVjdDo6bWV0aG9kR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKQogewotICAgIEpTTlBPYmplY3QqIHRoaXNPYmogPSBqc0Nhc3Q8SlNOUE9i
amVjdCo+KHNsb3RCYXNlKTsKKyAgICBKU05QT2JqZWN0KiB0aGlzT2JqID0ganNDYXN0PEpTTlBP
YmplY3QqPihKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqLCBpbmZvKCkpOwogICAgIAogICAgIGlmICghdGhpc09iai0+bV9u
cE9iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9KU05QT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAkocmV2aXNpb24gMTk2MjM4KQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBPYmplY3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTQsOCArOTQsOCBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIHZvaWQgZ2V0
T3duUHJvcGVydHlOYW1lcyhKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlBy
b3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUpOwogCi0gICAgc3RhdGljIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotICAgIHN0
YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIG1ldGhvZEdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cisg
ICAgc3RhdGljIEpTQzo6RW5jb2RlZEpTVmFsdWUgcHJvcGVydHlHZXR0ZXIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CisgICAgc3RhdGlj
IEpTQzo6RW5jb2RlZEpTVmFsdWUgbWV0aG9kR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiB0aHJvd0ludmFsaWRBY2Nlc3NFcnJvcihKU0M6OkV4ZWNTdGF0ZSopOwogCiAgICAgTlBS
dW50aW1lT2JqZWN0TWFwKiBtX29iamVjdE1hcDsK
</data>
<flag name="review"
          id="295785"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>